From fc3f2e667eee9ca3586f26a45e6a698147d3d7ab Mon Sep 17 00:00:00 2001 From: mdm-code Date: Sun, 30 Nov 2025 19:01:07 +0100 Subject: [PATCH 01/23] Commit go.work to the repository --- .gitignore | 2 +- go.work | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 go.work diff --git a/.gitignore b/.gitignore index 3b735ec..9b0ee9c 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,4 @@ # vendor/ # Go workspace file -go.work +# go.work diff --git a/go.work b/go.work new file mode 100644 index 0000000..349edc2 --- /dev/null +++ b/go.work @@ -0,0 +1,6 @@ +go 1.24.0 + +use ( + . + ./tqweb +) From 3c30b78a46b7bb20471903ca3f743e90c080a5f5 Mon Sep 17 00:00:00 2001 From: mdm-code Date: Sun, 30 Nov 2025 19:08:32 +0100 Subject: [PATCH 02/23] Vendored dependencies in the workspace --- vendor/modules.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/vendor/modules.txt b/vendor/modules.txt index b3d6f2e..0c13ccc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,3 +1,4 @@ +## workspace # github.com/mdm-code/scanner v1.2.1 ## explicit; go 1.21 github.com/mdm-code/scanner From 0843e8ea9ece0e64d9cc0db11456909dd066d28d Mon Sep 17 00:00:00 2001 From: mdm-code Date: Sun, 30 Nov 2025 19:28:06 +0100 Subject: [PATCH 03/23] Added tqweb as a separate module --- tqweb/go.mod | 26 ++++++++++++++++++++++++++ tqweb/go.sum | 39 +++++++++++++++++++++++++++++++++++++++ tqweb/main.go | 7 +++++++ 3 files changed, 72 insertions(+) create mode 100644 tqweb/go.mod create mode 100644 tqweb/go.sum create mode 100644 tqweb/main.go diff --git a/tqweb/go.mod b/tqweb/go.mod new file mode 100644 index 0000000..dcfb133 --- /dev/null +++ b/tqweb/go.mod @@ -0,0 +1,26 @@ +module github.com/mdm-code/tqweb + +go 1.24.0 + +require ( + github.com/a-h/parse v0.0.0-20250122154542-74294addb73e // indirect + github.com/a-h/templ v0.3.960 // indirect + github.com/andybalholm/brotli v1.1.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/cli/browser v1.3.0 // indirect + github.com/fatih/color v1.16.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/hack-pad/safejs v0.1.1 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/natefinch/atomic v1.0.1 // indirect + github.com/nlepage/go-js-promise v1.0.0 // indirect + github.com/nlepage/go-wasm-http-server/v2 v2.2.1 // indirect + golang.org/x/mod v0.26.0 // indirect + golang.org/x/net v0.42.0 // indirect + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.34.0 // indirect + golang.org/x/tools v0.35.0 // indirect +) + +tool github.com/a-h/templ/cmd/templ diff --git a/tqweb/go.sum b/tqweb/go.sum new file mode 100644 index 0000000..ea2708b --- /dev/null +++ b/tqweb/go.sum @@ -0,0 +1,39 @@ +github.com/a-h/parse v0.0.0-20250122154542-74294addb73e h1:HjVbSQHy+dnlS6C3XajZ69NYAb5jbGNfHanvm1+iYlo= +github.com/a-h/parse v0.0.0-20250122154542-74294addb73e/go.mod h1:3mnrkvGpurZ4ZrTDbYU84xhwXW2TjTKShSwjRi2ihfQ= +github.com/a-h/templ v0.3.960 h1:trshEpGa8clF5cdI39iY4ZrZG8Z/QixyzEyUnA7feTM= +github.com/a-h/templ v0.3.960/go.mod h1:oCZcnKRf5jjsGpf2yELzQfodLphd2mwecwG4Crk5HBo= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cli/browser v1.3.0 h1:LejqCrpWr+1pRqmEPDGnTZOjsMe7sehifLynZJuqJpo= +github.com/cli/browser v1.3.0/go.mod h1:HH8s+fOAxjhQoBUAsKuPCbqUuxZDhQ2/aD+SzsEfBTk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/hack-pad/safejs v0.1.1 h1:d5qPO0iQ7h2oVtpzGnLExE+Wn9AtytxIfltcS2b9KD8= +github.com/hack-pad/safejs v0.1.1/go.mod h1:HdS+bKF1NrE72VoXZeWzxFOVQVUSqZJAG0xNCnb+Tio= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A= +github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= +github.com/nlepage/go-js-promise v1.0.0 h1:K7OmJ3+0BgWJ2LfXchg2sI6RDr7AW/KWR8182epFwGQ= +github.com/nlepage/go-js-promise v1.0.0/go.mod h1:bdOP0wObXu34euibyK39K1hoBCtlgTKXGc56AGflaRo= +github.com/nlepage/go-wasm-http-server/v2 v2.2.1 h1:4tzhSb3HKQ3Ykt2TPfqEnmcPfw8n1E8agv4OzAyckr8= +github.com/nlepage/go-wasm-http-server/v2 v2.2.1/go.mod h1:r8j7cEOeUqNp+c+C52sNuWaFTvvT/cNqIwBuEtA36HA= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= diff --git a/tqweb/main.go b/tqweb/main.go new file mode 100644 index 0000000..761237d --- /dev/null +++ b/tqweb/main.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello from tqweb") +} From d8cc0e054e2174a4e26a6f5fe1f5454467cc49ac Mon Sep 17 00:00:00 2001 From: mdm-code Date: Sun, 30 Nov 2025 19:45:00 +0100 Subject: [PATCH 04/23] Added vendored dependencies for tqweb --- vendor/github.com/a-h/parse/.gitignore | 1 + vendor/github.com/a-h/parse/LICENSE | 21 + vendor/github.com/a-h/parse/README.md | 145 + vendor/github.com/a-h/parse/all.go | 26 + vendor/github.com/a-h/parse/any.go | 22 + vendor/github.com/a-h/parse/convert.go | 14 + vendor/github.com/a-h/parse/digits.go | 4 + vendor/github.com/a-h/parse/eof.go | 15 + vendor/github.com/a-h/parse/error.go | 21 + vendor/github.com/a-h/parse/input.go | 79 + vendor/github.com/a-h/parse/optional.go | 26 + vendor/github.com/a-h/parse/or.go | 37 + vendor/github.com/a-h/parse/regexp.go | 46 + vendor/github.com/a-h/parse/rune.go | 58 + vendor/github.com/a-h/parse/sequenceof2.go | 27 + vendor/github.com/a-h/parse/sequenceof3.go | 35 + vendor/github.com/a-h/parse/sequenceof4.go | 41 + vendor/github.com/a-h/parse/sequenceof5.go | 48 + vendor/github.com/a-h/parse/sequenceof6.go | 55 + vendor/github.com/a-h/parse/sequenceof7.go | 62 + vendor/github.com/a-h/parse/sequenceof8.go | 69 + vendor/github.com/a-h/parse/sequenceof9.go | 76 + vendor/github.com/a-h/parse/string.go | 40 + vendor/github.com/a-h/parse/stringfrom.go | 30 + vendor/github.com/a-h/parse/stringuntil.go | 49 + vendor/github.com/a-h/parse/then.go | 9 + vendor/github.com/a-h/parse/times.go | 83 + vendor/github.com/a-h/parse/tuples.go | 69 + vendor/github.com/a-h/parse/types.go | 33 + vendor/github.com/a-h/parse/until.go | 68 + vendor/github.com/a-h/parse/whitespace.go | 29 + vendor/github.com/a-h/templ/.dockerignore | 3 + vendor/github.com/a-h/templ/.envrc | 1 + vendor/github.com/a-h/templ/.gitignore | 36 + vendor/github.com/a-h/templ/.goreleaser.yaml | 72 + vendor/github.com/a-h/templ/.ignore | 9 + vendor/github.com/a-h/templ/.version | 1 + .../github.com/a-h/templ/CODE_OF_CONDUCT.md | 128 + vendor/github.com/a-h/templ/CONTRIBUTING.md | 247 + vendor/github.com/a-h/templ/LICENSE | 21 + vendor/github.com/a-h/templ/README.md | 194 + vendor/github.com/a-h/templ/SECURITY.md | 9 + .../a-h/templ/cmd/templ/fmtcmd/main.go | 132 + .../a-h/templ/cmd/templ/fmtcmd/testdata.txtar | 66 + .../a-h/templ/cmd/templ/generatecmd/cmd.go | 388 + .../cmd/templ/generatecmd/eventhandler.go | 315 + .../templ/cmd/templ/generatecmd/fatalerror.go | 23 + .../a-h/templ/cmd/templ/generatecmd/main.go | 192 + .../templ/generatecmd/modcheck/modcheck.go | 82 + .../cmd/templ/generatecmd/proxy/proxy.go | 299 + .../cmd/templ/generatecmd/proxy/script.js | 10 + .../cmd/templ/generatecmd/run/run_unix.go | 85 + .../cmd/templ/generatecmd/run/run_windows.go | 72 + .../templ/cmd/templ/generatecmd/sse/server.go | 84 + .../cmd/templ/generatecmd/watcher/watch.go | 166 + .../a-h/templ/cmd/templ/infocmd/main.go | 157 + .../cmd/templ/lspcmd/httpdebug/handler.go | 130 + .../cmd/templ/lspcmd/httpdebug/list.templ | 22 + .../cmd/templ/lspcmd/httpdebug/list_templ.go | 114 + .../a-h/templ/cmd/templ/lspcmd/main.go | 145 + .../a-h/templ/cmd/templ/lspcmd/pls/main.go | 128 + .../templ/cmd/templ/lspcmd/proxy/client.go | 146 + .../cmd/templ/lspcmd/proxy/diagnosticcache.go | 61 + .../templ/lspcmd/proxy/documentcontents.go | 215 + .../templ/cmd/templ/lspcmd/proxy/rewrite.go | 24 + .../templ/cmd/templ/lspcmd/proxy/server.go | 1345 + .../templ/cmd/templ/lspcmd/proxy/snippets.go | 111 + .../cmd/templ/lspcmd/proxy/sourcemapcache.go | 52 + .../a-h/templ/cmd/templ/lspcmd/stdrwc.go | 50 + vendor/github.com/a-h/templ/cmd/templ/main.go | 280 + .../templ/cmd/templ/processor/processor.go | 66 + .../templ/cmd/templ/sloghandler/handler.go | 120 + .../visualize/sourcemapvisualisation.templ | 68 + .../visualize/sourcemapvisualisation_templ.go | 295 + .../a-h/templ/cmd/templ/visualize/types.go | 87 + vendor/github.com/a-h/templ/cosign.pub | 4 + vendor/github.com/a-h/templ/flake.lock | 124 + vendor/github.com/a-h/templ/flake.nix | 104 + vendor/github.com/a-h/templ/flush.go | 36 + vendor/github.com/a-h/templ/fragment.go | 70 + .../a-h/templ/generator/generator.go | 1815 + .../a-h/templ/generator/rangewriter.go | 122 + vendor/github.com/a-h/templ/handler.go | 163 + vendor/github.com/a-h/templ/ide-demo.gif | Bin 0 -> 544148 bytes .../templ/internal/format/scriptelement.go | 96 + .../a-h/templ/internal/format/styleelement.go | 25 + .../a-h/templ/internal/format/templ.go | 102 + .../a-h/templ/internal/htmlfind/htmlfind.go | 67 + .../a-h/templ/internal/imports/process.go | 174 + .../templ/internal/lazyloader/docheader.go | 27 + .../internal/lazyloader/docheaderparser.go | 53 + .../templ/internal/lazyloader/pkgloader.go | 55 + .../templ/internal/lazyloader/pkgtraverser.go | 110 + .../internal/lazyloader/templdoclazyloader.go | 161 + .../a-h/templ/internal/prettier/prettier.go | 116 + .../templ/internal/prettier/testdata.txtar | 12 + .../a-h/templ/internal/skipdir/skipdir.go | 20 + .../a-h/templ/internal/syncmap/map.go | 49 + .../a-h/templ/internal/syncset/set.go | 42 + vendor/github.com/a-h/templ/join.go | 19 + vendor/github.com/a-h/templ/js.go | 40 + vendor/github.com/a-h/templ/jsonscript.go | 85 + vendor/github.com/a-h/templ/jsonstring.go | 14 + vendor/github.com/a-h/templ/lsp/LICENSE | 29 + .../a-h/templ/lsp/jsonrpc2/codes.go | 86 + .../github.com/a-h/templ/lsp/jsonrpc2/conn.go | 244 + .../a-h/templ/lsp/jsonrpc2/errors.go | 70 + .../a-h/templ/lsp/jsonrpc2/handler.go | 120 + .../a-h/templ/lsp/jsonrpc2/jsonrpc2.go | 7 + .../a-h/templ/lsp/jsonrpc2/message.go | 354 + .../a-h/templ/lsp/jsonrpc2/serve.go | 131 + .../a-h/templ/lsp/jsonrpc2/stream.go | 225 + .../github.com/a-h/templ/lsp/jsonrpc2/wire.go | 140 + .../github.com/a-h/templ/lsp/protocol/base.go | 95 + .../a-h/templ/lsp/protocol/basic.go | 705 + .../a-h/templ/lsp/protocol/callhierarchy.go | 103 + .../templ/lsp/protocol/capabilities_client.go | 1068 + .../templ/lsp/protocol/capabilities_server.go | 523 + .../a-h/templ/lsp/protocol/client.go | 412 + .../a-h/templ/lsp/protocol/context.go | 26 + .../a-h/templ/lsp/protocol/deprecated.go | 264 + .../a-h/templ/lsp/protocol/diagnostics.go | 149 + .../github.com/a-h/templ/lsp/protocol/doc.go | 23 + .../a-h/templ/lsp/protocol/errors.go | 40 + .../a-h/templ/lsp/protocol/general.go | 461 + .../a-h/templ/lsp/protocol/handler.go | 88 + .../a-h/templ/lsp/protocol/language.go | 1401 + .../a-h/templ/lsp/protocol/progress.go | 119 + .../a-h/templ/lsp/protocol/protocol.go | 41 + .../a-h/templ/lsp/protocol/registration.go | 44 + .../a-h/templ/lsp/protocol/selectionrange.go | 110 + .../a-h/templ/lsp/protocol/semantic_token.go | 179 + .../a-h/templ/lsp/protocol/server.go | 1893 + .../github.com/a-h/templ/lsp/protocol/text.go | 111 + .../github.com/a-h/templ/lsp/protocol/util.go | 9 + .../a-h/templ/lsp/protocol/version.go | 7 + .../a-h/templ/lsp/protocol/window.go | 111 + .../a-h/templ/lsp/protocol/workspace.go | 213 + vendor/github.com/a-h/templ/lsp/uri/uri.go | 192 + .../a-h/templ/lsp/xcontext/xcontext.go | 22 + vendor/github.com/a-h/templ/once.go | 64 + .../a-h/templ/parser/v2/calltemplateparser.go | 37 + .../a-h/templ/parser/v2/childrenparser.go | 21 + .../parser/v2/conditionalattributeparser.go | 101 + .../a-h/templ/parser/v2/cssparser.go | 200 + .../a-h/templ/parser/v2/diagnostics.go | 64 + .../a-h/templ/parser/v2/doctypeparser.go | 32 + .../a-h/templ/parser/v2/elementparser.go | 560 + .../a-h/templ/parser/v2/expressionparser.go | 246 + .../templ/parser/v2/forexpressionparser.go | 57 + vendor/github.com/a-h/templ/parser/v2/fuzz.sh | 5 + .../a-h/templ/parser/v2/gocodeparser.go | 60 + .../a-h/templ/parser/v2/gocommentparser.go | 66 + .../a-h/templ/parser/v2/goexpression/fuzz.sh | 19 + .../a-h/templ/parser/v2/goexpression/parse.go | 343 + .../templ/parser/v2/goexpression/scanner.go | 180 + .../a-h/templ/parser/v2/goparser.go | 70 + .../a-h/templ/parser/v2/htmlcommentparser.go | 40 + .../a-h/templ/parser/v2/ifexpressionparser.go | 144 + .../a-h/templ/parser/v2/packageparser.go | 32 + .../github.com/a-h/templ/parser/v2/parser.go | 55 + vendor/github.com/a-h/templ/parser/v2/raw.go | 67 + .../a-h/templ/parser/v2/scriptparser.go | 335 + .../templ/parser/v2/scripttemplateparser.go | 91 + .../a-h/templ/parser/v2/sourcemap.go | 134 + .../templ/parser/v2/stringexpressionparser.go | 40 + .../a-h/templ/parser/v2/structure.go | 43 + .../templ/parser/v2/switchexpressionparser.go | 114 + .../a-h/templ/parser/v2/templatefile.go | 195 + .../a-h/templ/parser/v2/templateparser.go | 153 + .../a-h/templ/parser/v2/templelementparser.go | 59 + .../a-h/templ/parser/v2/textparser.go | 53 + .../github.com/a-h/templ/parser/v2/types.go | 1498 + .../github.com/a-h/templ/parser/v2/visitor.go | 35 + .../a-h/templ/parser/v2/visitor/visitor.go | 349 + .../a-h/templ/parser/v2/whitespaceparser.go | 12 + vendor/github.com/a-h/templ/runtime.go | 714 + vendor/github.com/a-h/templ/runtime/buffer.go | 62 + .../a-h/templ/runtime/bufferpool.go | 38 + .../github.com/a-h/templ/runtime/builder.go | 8 + .../github.com/a-h/templ/runtime/runtime.go | 21 + .../a-h/templ/runtime/scriptelement.go | 107 + .../a-h/templ/runtime/styleattribute.go | 217 + .../github.com/a-h/templ/runtime/watchmode.go | 148 + vendor/github.com/a-h/templ/safehtml/style.go | 199 + vendor/github.com/a-h/templ/scripttemplate.go | 151 + vendor/github.com/a-h/templ/templ.png | Bin 0 -> 15528 bytes vendor/github.com/a-h/templ/url.go | 31 + vendor/github.com/a-h/templ/version.go | 10 + vendor/github.com/a-h/templ/watchmode.go | 105 + vendor/github.com/andybalholm/brotli/LICENSE | 19 + .../github.com/andybalholm/brotli/README.md | 14 + .../andybalholm/brotli/backward_references.go | 185 + .../brotli/backward_references_hq.go | 796 + .../github.com/andybalholm/brotli/bit_cost.go | 436 + .../andybalholm/brotli/bit_reader.go | 266 + .../andybalholm/brotli/bitwriter.go | 56 + .../andybalholm/brotli/block_splitter.go | 144 + .../brotli/block_splitter_command.go | 434 + .../brotli/block_splitter_distance.go | 433 + .../brotli/block_splitter_literal.go | 433 + .../andybalholm/brotli/brotli_bit_stream.go | 1539 + .../github.com/andybalholm/brotli/cluster.go | 30 + .../andybalholm/brotli/cluster_command.go | 164 + .../andybalholm/brotli/cluster_distance.go | 326 + .../andybalholm/brotli/cluster_literal.go | 326 + .../github.com/andybalholm/brotli/command.go | 254 + .../andybalholm/brotli/compress_fragment.go | 834 + .../brotli/compress_fragment_two_pass.go | 773 + .../andybalholm/brotli/constants.go | 77 + .../github.com/andybalholm/brotli/context.go | 2176 + .../github.com/andybalholm/brotli/decode.go | 2581 + .../andybalholm/brotli/dictionary.go | 122890 +++++++++++++++ .../andybalholm/brotli/dictionary_hash.go | 32779 ++++ .../github.com/andybalholm/brotli/encode.go | 1220 + .../github.com/andybalholm/brotli/encoder.go | 168 + .../andybalholm/brotli/encoder_dict.go | 22 + .../andybalholm/brotli/entropy_encode.go | 592 + .../brotli/entropy_encode_static.go | 4399 + .../github.com/andybalholm/brotli/fast_log.go | 290 + .../andybalholm/brotli/find_match_length.go | 45 + vendor/github.com/andybalholm/brotli/h10.go | 287 + vendor/github.com/andybalholm/brotli/h5.go | 214 + vendor/github.com/andybalholm/brotli/h6.go | 216 + vendor/github.com/andybalholm/brotli/hash.go | 342 + .../andybalholm/brotli/hash_composite.go | 93 + .../brotli/hash_forgetful_chain.go | 252 + .../brotli/hash_longest_match_quickly.go | 214 + .../andybalholm/brotli/hash_rolling.go | 168 + .../andybalholm/brotli/histogram.go | 226 + vendor/github.com/andybalholm/brotli/http.go | 184 + .../github.com/andybalholm/brotli/huffman.go | 653 + .../andybalholm/brotli/literal_cost.go | 182 + .../andybalholm/brotli/matchfinder/emitter.go | 45 + .../andybalholm/brotli/matchfinder/m0.go | 169 + .../andybalholm/brotli/matchfinder/m4.go | 297 + .../brotli/matchfinder/matchfinder.go | 103 + .../brotli/matchfinder/textencoder.go | 53 + .../github.com/andybalholm/brotli/memory.go | 66 + .../andybalholm/brotli/metablock.go | 574 + .../andybalholm/brotli/metablock_command.go | 165 + .../andybalholm/brotli/metablock_distance.go | 165 + .../andybalholm/brotli/metablock_literal.go | 165 + .../github.com/andybalholm/brotli/params.go | 37 + .../github.com/andybalholm/brotli/platform.go | 103 + .../github.com/andybalholm/brotli/prefix.go | 30 + .../andybalholm/brotli/prefix_dec.go | 723 + .../github.com/andybalholm/brotli/quality.go | 196 + .../github.com/andybalholm/brotli/reader.go | 108 + .../andybalholm/brotli/ringbuffer.go | 134 + vendor/github.com/andybalholm/brotli/state.go | 294 + .../andybalholm/brotli/static_dict.go | 662 + .../andybalholm/brotli/static_dict_lut.go | 75094 +++++++++ .../andybalholm/brotli/symbol_list.go | 22 + .../andybalholm/brotli/transform.go | 641 + .../andybalholm/brotli/utf8_util.go | 70 + vendor/github.com/andybalholm/brotli/util.go | 7 + .../andybalholm/brotli/write_bits.go | 52 + .../github.com/andybalholm/brotli/writer.go | 162 + .../github.com/cenkalti/backoff/v4/.gitignore | 25 + vendor/github.com/cenkalti/backoff/v4/LICENSE | 20 + .../github.com/cenkalti/backoff/v4/README.md | 30 + .../github.com/cenkalti/backoff/v4/backoff.go | 66 + .../github.com/cenkalti/backoff/v4/context.go | 62 + .../cenkalti/backoff/v4/exponential.go | 216 + .../github.com/cenkalti/backoff/v4/retry.go | 146 + .../github.com/cenkalti/backoff/v4/ticker.go | 97 + .../github.com/cenkalti/backoff/v4/timer.go | 35 + .../github.com/cenkalti/backoff/v4/tries.go | 38 + vendor/github.com/cli/browser/LICENSE | 23 + vendor/github.com/cli/browser/README.md | 20 + vendor/github.com/cli/browser/browser.go | 57 + .../github.com/cli/browser/browser_darwin.go | 5 + .../github.com/cli/browser/browser_freebsd.go | 15 + .../github.com/cli/browser/browser_linux.go | 21 + .../github.com/cli/browser/browser_netbsd.go | 14 + .../github.com/cli/browser/browser_openbsd.go | 15 + .../cli/browser/browser_unsupported.go | 12 + .../github.com/cli/browser/browser_windows.go | 7 + vendor/github.com/fatih/color/LICENSE.md | 20 + vendor/github.com/fatih/color/README.md | 176 + vendor/github.com/fatih/color/color.go | 650 + .../github.com/fatih/color/color_windows.go | 19 + vendor/github.com/fatih/color/doc.go | 134 + .../github.com/fsnotify/fsnotify/.cirrus.yml | 13 + .../fsnotify/fsnotify/.editorconfig | 12 + .../fsnotify/fsnotify/.gitattributes | 1 + .../github.com/fsnotify/fsnotify/.gitignore | 7 + vendor/github.com/fsnotify/fsnotify/.mailmap | 2 + .../github.com/fsnotify/fsnotify/CHANGELOG.md | 541 + .../fsnotify/fsnotify/CONTRIBUTING.md | 26 + vendor/github.com/fsnotify/fsnotify/LICENSE | 25 + vendor/github.com/fsnotify/fsnotify/README.md | 184 + .../fsnotify/fsnotify/backend_fen.go | 640 + .../fsnotify/fsnotify/backend_inotify.go | 594 + .../fsnotify/fsnotify/backend_kqueue.go | 782 + .../fsnotify/fsnotify/backend_other.go | 205 + .../fsnotify/fsnotify/backend_windows.go | 827 + .../github.com/fsnotify/fsnotify/fsnotify.go | 146 + vendor/github.com/fsnotify/fsnotify/mkdoc.zsh | 259 + .../fsnotify/fsnotify/system_bsd.go | 8 + .../fsnotify/fsnotify/system_darwin.go | 9 + vendor/github.com/mattn/go-colorable/LICENSE | 21 + .../github.com/mattn/go-colorable/README.md | 48 + .../mattn/go-colorable/colorable_appengine.go | 38 + .../mattn/go-colorable/colorable_others.go | 38 + .../mattn/go-colorable/colorable_windows.go | 1047 + .../github.com/mattn/go-colorable/go.test.sh | 12 + .../mattn/go-colorable/noncolorable.go | 57 + vendor/github.com/mattn/go-isatty/LICENSE | 9 + vendor/github.com/mattn/go-isatty/README.md | 50 + vendor/github.com/mattn/go-isatty/doc.go | 2 + vendor/github.com/mattn/go-isatty/go.test.sh | 12 + .../github.com/mattn/go-isatty/isatty_bsd.go | 20 + .../mattn/go-isatty/isatty_others.go | 17 + .../mattn/go-isatty/isatty_plan9.go | 23 + .../mattn/go-isatty/isatty_solaris.go | 21 + .../mattn/go-isatty/isatty_tcgets.go | 20 + .../mattn/go-isatty/isatty_windows.go | 125 + vendor/github.com/natefinch/atomic/.gitignore | 24 + vendor/github.com/natefinch/atomic/LICENSE | 22 + vendor/github.com/natefinch/atomic/README.md | 35 + vendor/github.com/natefinch/atomic/atomic.go | 73 + .../github.com/natefinch/atomic/file_unix.go | 14 + .../natefinch/atomic/file_windows.go | 33 + .../natefinch/atomic/zfile_windows.go | 27 + vendor/golang.org/x/mod/LICENSE | 27 + vendor/golang.org/x/mod/PATENTS | 22 + .../x/mod/internal/lazyregexp/lazyre.go | 78 + vendor/golang.org/x/mod/modfile/print.go | 184 + vendor/golang.org/x/mod/modfile/read.go | 964 + vendor/golang.org/x/mod/modfile/rule.go | 1904 + vendor/golang.org/x/mod/modfile/work.go | 333 + vendor/golang.org/x/mod/module/module.go | 840 + vendor/golang.org/x/mod/module/pseudo.go | 250 + vendor/golang.org/x/mod/semver/semver.go | 407 + vendor/golang.org/x/net/LICENSE | 27 + vendor/golang.org/x/net/PATENTS | 22 + vendor/golang.org/x/net/html/atom/atom.go | 78 + vendor/golang.org/x/net/html/atom/table.go | 785 + vendor/golang.org/x/net/html/const.go | 111 + vendor/golang.org/x/net/html/doc.go | 122 + vendor/golang.org/x/net/html/doctype.go | 156 + vendor/golang.org/x/net/html/entity.go | 2253 + vendor/golang.org/x/net/html/escape.go | 339 + vendor/golang.org/x/net/html/foreign.go | 221 + vendor/golang.org/x/net/html/iter.go | 56 + vendor/golang.org/x/net/html/node.go | 229 + vendor/golang.org/x/net/html/parse.go | 2464 + vendor/golang.org/x/net/html/render.go | 293 + vendor/golang.org/x/net/html/token.go | 1286 + vendor/golang.org/x/sync/LICENSE | 27 + vendor/golang.org/x/sync/PATENTS | 22 + vendor/golang.org/x/sync/errgroup/errgroup.go | 151 + vendor/golang.org/x/sys/LICENSE | 27 + vendor/golang.org/x/sys/PATENTS | 22 + vendor/golang.org/x/sys/unix/.gitignore | 2 + vendor/golang.org/x/sys/unix/README.md | 184 + .../golang.org/x/sys/unix/affinity_linux.go | 86 + vendor/golang.org/x/sys/unix/aliases.go | 13 + vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 17 + vendor/golang.org/x/sys/unix/asm_bsd_386.s | 27 + vendor/golang.org/x/sys/unix/asm_bsd_amd64.s | 27 + vendor/golang.org/x/sys/unix/asm_bsd_arm.s | 27 + vendor/golang.org/x/sys/unix/asm_bsd_arm64.s | 27 + vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s | 29 + .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 27 + vendor/golang.org/x/sys/unix/asm_linux_386.s | 65 + .../golang.org/x/sys/unix/asm_linux_amd64.s | 57 + vendor/golang.org/x/sys/unix/asm_linux_arm.s | 56 + .../golang.org/x/sys/unix/asm_linux_arm64.s | 50 + .../golang.org/x/sys/unix/asm_linux_loong64.s | 51 + .../golang.org/x/sys/unix/asm_linux_mips64x.s | 54 + .../golang.org/x/sys/unix/asm_linux_mipsx.s | 52 + .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 42 + .../golang.org/x/sys/unix/asm_linux_riscv64.s | 47 + .../golang.org/x/sys/unix/asm_linux_s390x.s | 54 + .../x/sys/unix/asm_openbsd_mips64.s | 29 + .../golang.org/x/sys/unix/asm_solaris_amd64.s | 17 + vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 382 + vendor/golang.org/x/sys/unix/auxv.go | 36 + .../golang.org/x/sys/unix/auxv_unsupported.go | 13 + .../golang.org/x/sys/unix/bluetooth_linux.go | 36 + vendor/golang.org/x/sys/unix/bpxsvc_zos.go | 657 + vendor/golang.org/x/sys/unix/bpxsvc_zos.s | 192 + vendor/golang.org/x/sys/unix/cap_freebsd.go | 195 + vendor/golang.org/x/sys/unix/constants.go | 13 + vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 26 + vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 28 + vendor/golang.org/x/sys/unix/dev_darwin.go | 24 + vendor/golang.org/x/sys/unix/dev_dragonfly.go | 30 + vendor/golang.org/x/sys/unix/dev_freebsd.go | 30 + vendor/golang.org/x/sys/unix/dev_linux.go | 42 + vendor/golang.org/x/sys/unix/dev_netbsd.go | 29 + vendor/golang.org/x/sys/unix/dev_openbsd.go | 29 + vendor/golang.org/x/sys/unix/dev_zos.go | 28 + vendor/golang.org/x/sys/unix/dirent.go | 102 + vendor/golang.org/x/sys/unix/endian_big.go | 9 + vendor/golang.org/x/sys/unix/endian_little.go | 9 + vendor/golang.org/x/sys/unix/env_unix.go | 31 + vendor/golang.org/x/sys/unix/fcntl.go | 36 + vendor/golang.org/x/sys/unix/fcntl_darwin.go | 24 + .../x/sys/unix/fcntl_linux_32bit.go | 13 + vendor/golang.org/x/sys/unix/fdset.go | 29 + vendor/golang.org/x/sys/unix/gccgo.go | 59 + vendor/golang.org/x/sys/unix/gccgo_c.c | 44 + .../x/sys/unix/gccgo_linux_amd64.go | 20 + vendor/golang.org/x/sys/unix/ifreq_linux.go | 141 + vendor/golang.org/x/sys/unix/ioctl_linux.go | 334 + vendor/golang.org/x/sys/unix/ioctl_signed.go | 69 + .../golang.org/x/sys/unix/ioctl_unsigned.go | 69 + vendor/golang.org/x/sys/unix/ioctl_zos.go | 71 + vendor/golang.org/x/sys/unix/mkall.sh | 249 + vendor/golang.org/x/sys/unix/mkerrors.sh | 805 + vendor/golang.org/x/sys/unix/mmap_nomremap.go | 13 + vendor/golang.org/x/sys/unix/mremap.go | 57 + vendor/golang.org/x/sys/unix/pagesize_unix.go | 15 + .../golang.org/x/sys/unix/pledge_openbsd.go | 111 + vendor/golang.org/x/sys/unix/ptrace_darwin.go | 11 + vendor/golang.org/x/sys/unix/ptrace_ios.go | 11 + vendor/golang.org/x/sys/unix/race.go | 30 + vendor/golang.org/x/sys/unix/race0.go | 25 + .../x/sys/unix/readdirent_getdents.go | 12 + .../x/sys/unix/readdirent_getdirentries.go | 19 + .../x/sys/unix/sockcmsg_dragonfly.go | 16 + .../golang.org/x/sys/unix/sockcmsg_linux.go | 85 + vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 106 + .../x/sys/unix/sockcmsg_unix_other.go | 46 + vendor/golang.org/x/sys/unix/sockcmsg_zos.go | 58 + .../golang.org/x/sys/unix/symaddr_zos_s390x.s | 75 + vendor/golang.org/x/sys/unix/syscall.go | 86 + vendor/golang.org/x/sys/unix/syscall_aix.go | 582 + .../golang.org/x/sys/unix/syscall_aix_ppc.go | 52 + .../x/sys/unix/syscall_aix_ppc64.go | 83 + vendor/golang.org/x/sys/unix/syscall_bsd.go | 609 + .../golang.org/x/sys/unix/syscall_darwin.go | 854 + .../x/sys/unix/syscall_darwin_amd64.go | 50 + .../x/sys/unix/syscall_darwin_arm64.go | 50 + .../x/sys/unix/syscall_darwin_libSystem.go | 26 + .../x/sys/unix/syscall_dragonfly.go | 359 + .../x/sys/unix/syscall_dragonfly_amd64.go | 56 + .../golang.org/x/sys/unix/syscall_freebsd.go | 455 + .../x/sys/unix/syscall_freebsd_386.go | 64 + .../x/sys/unix/syscall_freebsd_amd64.go | 64 + .../x/sys/unix/syscall_freebsd_arm.go | 60 + .../x/sys/unix/syscall_freebsd_arm64.go | 60 + .../x/sys/unix/syscall_freebsd_riscv64.go | 60 + vendor/golang.org/x/sys/unix/syscall_hurd.go | 30 + .../golang.org/x/sys/unix/syscall_hurd_386.go | 28 + .../golang.org/x/sys/unix/syscall_illumos.go | 78 + vendor/golang.org/x/sys/unix/syscall_linux.go | 2647 + .../x/sys/unix/syscall_linux_386.go | 314 + .../x/sys/unix/syscall_linux_alarm.go | 12 + .../x/sys/unix/syscall_linux_amd64.go | 145 + .../x/sys/unix/syscall_linux_amd64_gc.go | 12 + .../x/sys/unix/syscall_linux_arm.go | 216 + .../x/sys/unix/syscall_linux_arm64.go | 186 + .../golang.org/x/sys/unix/syscall_linux_gc.go | 14 + .../x/sys/unix/syscall_linux_gc_386.go | 16 + .../x/sys/unix/syscall_linux_gc_arm.go | 13 + .../x/sys/unix/syscall_linux_gccgo_386.go | 30 + .../x/sys/unix/syscall_linux_gccgo_arm.go | 20 + .../x/sys/unix/syscall_linux_loong64.go | 218 + .../x/sys/unix/syscall_linux_mips64x.go | 188 + .../x/sys/unix/syscall_linux_mipsx.go | 174 + .../x/sys/unix/syscall_linux_ppc.go | 204 + .../x/sys/unix/syscall_linux_ppc64x.go | 115 + .../x/sys/unix/syscall_linux_riscv64.go | 191 + .../x/sys/unix/syscall_linux_s390x.go | 296 + .../x/sys/unix/syscall_linux_sparc64.go | 112 + .../golang.org/x/sys/unix/syscall_netbsd.go | 371 + .../x/sys/unix/syscall_netbsd_386.go | 37 + .../x/sys/unix/syscall_netbsd_amd64.go | 37 + .../x/sys/unix/syscall_netbsd_arm.go | 37 + .../x/sys/unix/syscall_netbsd_arm64.go | 37 + .../golang.org/x/sys/unix/syscall_openbsd.go | 342 + .../x/sys/unix/syscall_openbsd_386.go | 41 + .../x/sys/unix/syscall_openbsd_amd64.go | 41 + .../x/sys/unix/syscall_openbsd_arm.go | 41 + .../x/sys/unix/syscall_openbsd_arm64.go | 41 + .../x/sys/unix/syscall_openbsd_libc.go | 26 + .../x/sys/unix/syscall_openbsd_mips64.go | 39 + .../x/sys/unix/syscall_openbsd_ppc64.go | 41 + .../x/sys/unix/syscall_openbsd_riscv64.go | 41 + .../golang.org/x/sys/unix/syscall_solaris.go | 1191 + .../x/sys/unix/syscall_solaris_amd64.go | 27 + vendor/golang.org/x/sys/unix/syscall_unix.go | 615 + .../golang.org/x/sys/unix/syscall_unix_gc.go | 14 + .../x/sys/unix/syscall_unix_gc_ppc64x.go | 22 + .../x/sys/unix/syscall_zos_s390x.go | 3213 + vendor/golang.org/x/sys/unix/sysvshm_linux.go | 20 + vendor/golang.org/x/sys/unix/sysvshm_unix.go | 51 + .../x/sys/unix/sysvshm_unix_other.go | 13 + vendor/golang.org/x/sys/unix/timestruct.go | 76 + .../golang.org/x/sys/unix/unveil_openbsd.go | 51 + .../golang.org/x/sys/unix/vgetrandom_linux.go | 13 + .../x/sys/unix/vgetrandom_unsupported.go | 11 + vendor/golang.org/x/sys/unix/xattr_bsd.go | 280 + .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1384 + .../x/sys/unix/zerrors_aix_ppc64.go | 1385 + .../x/sys/unix/zerrors_darwin_amd64.go | 1922 + .../x/sys/unix/zerrors_darwin_arm64.go | 1922 + .../x/sys/unix/zerrors_dragonfly_amd64.go | 1737 + .../x/sys/unix/zerrors_freebsd_386.go | 2042 + .../x/sys/unix/zerrors_freebsd_amd64.go | 2039 + .../x/sys/unix/zerrors_freebsd_arm.go | 2033 + .../x/sys/unix/zerrors_freebsd_arm64.go | 2033 + .../x/sys/unix/zerrors_freebsd_riscv64.go | 2147 + vendor/golang.org/x/sys/unix/zerrors_linux.go | 3767 + .../x/sys/unix/zerrors_linux_386.go | 874 + .../x/sys/unix/zerrors_linux_amd64.go | 874 + .../x/sys/unix/zerrors_linux_arm.go | 879 + .../x/sys/unix/zerrors_linux_arm64.go | 876 + .../x/sys/unix/zerrors_linux_loong64.go | 866 + .../x/sys/unix/zerrors_linux_mips.go | 880 + .../x/sys/unix/zerrors_linux_mips64.go | 880 + .../x/sys/unix/zerrors_linux_mips64le.go | 880 + .../x/sys/unix/zerrors_linux_mipsle.go | 880 + .../x/sys/unix/zerrors_linux_ppc.go | 932 + .../x/sys/unix/zerrors_linux_ppc64.go | 936 + .../x/sys/unix/zerrors_linux_ppc64le.go | 936 + .../x/sys/unix/zerrors_linux_riscv64.go | 863 + .../x/sys/unix/zerrors_linux_s390x.go | 935 + .../x/sys/unix/zerrors_linux_sparc64.go | 978 + .../x/sys/unix/zerrors_netbsd_386.go | 1779 + .../x/sys/unix/zerrors_netbsd_amd64.go | 1769 + .../x/sys/unix/zerrors_netbsd_arm.go | 1758 + .../x/sys/unix/zerrors_netbsd_arm64.go | 1769 + .../x/sys/unix/zerrors_openbsd_386.go | 1905 + .../x/sys/unix/zerrors_openbsd_amd64.go | 1905 + .../x/sys/unix/zerrors_openbsd_arm.go | 1905 + .../x/sys/unix/zerrors_openbsd_arm64.go | 1905 + .../x/sys/unix/zerrors_openbsd_mips64.go | 1905 + .../x/sys/unix/zerrors_openbsd_ppc64.go | 1904 + .../x/sys/unix/zerrors_openbsd_riscv64.go | 1903 + .../x/sys/unix/zerrors_solaris_amd64.go | 1556 + .../x/sys/unix/zerrors_zos_s390x.go | 990 + .../x/sys/unix/zptrace_armnn_linux.go | 40 + .../x/sys/unix/zptrace_linux_arm64.go | 17 + .../x/sys/unix/zptrace_mipsnn_linux.go | 49 + .../x/sys/unix/zptrace_mipsnnle_linux.go | 49 + .../x/sys/unix/zptrace_x86_linux.go | 79 + .../x/sys/unix/zsymaddr_zos_s390x.s | 364 + .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1461 + .../x/sys/unix/zsyscall_aix_ppc64.go | 1420 + .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1188 + .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1069 + .../x/sys/unix/zsyscall_darwin_amd64.go | 2728 + .../x/sys/unix/zsyscall_darwin_amd64.s | 799 + .../x/sys/unix/zsyscall_darwin_arm64.go | 2728 + .../x/sys/unix/zsyscall_darwin_arm64.s | 799 + .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1666 + .../x/sys/unix/zsyscall_freebsd_386.go | 1886 + .../x/sys/unix/zsyscall_freebsd_amd64.go | 1886 + .../x/sys/unix/zsyscall_freebsd_arm.go | 1886 + .../x/sys/unix/zsyscall_freebsd_arm64.go | 1886 + .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1886 + .../x/sys/unix/zsyscall_illumos_amd64.go | 101 + .../golang.org/x/sys/unix/zsyscall_linux.go | 2240 + .../x/sys/unix/zsyscall_linux_386.go | 486 + .../x/sys/unix/zsyscall_linux_amd64.go | 653 + .../x/sys/unix/zsyscall_linux_arm.go | 601 + .../x/sys/unix/zsyscall_linux_arm64.go | 552 + .../x/sys/unix/zsyscall_linux_loong64.go | 486 + .../x/sys/unix/zsyscall_linux_mips.go | 653 + .../x/sys/unix/zsyscall_linux_mips64.go | 647 + .../x/sys/unix/zsyscall_linux_mips64le.go | 636 + .../x/sys/unix/zsyscall_linux_mipsle.go | 653 + .../x/sys/unix/zsyscall_linux_ppc.go | 658 + .../x/sys/unix/zsyscall_linux_ppc64.go | 704 + .../x/sys/unix/zsyscall_linux_ppc64le.go | 704 + .../x/sys/unix/zsyscall_linux_riscv64.go | 548 + .../x/sys/unix/zsyscall_linux_s390x.go | 495 + .../x/sys/unix/zsyscall_linux_sparc64.go | 648 + .../x/sys/unix/zsyscall_netbsd_386.go | 1848 + .../x/sys/unix/zsyscall_netbsd_amd64.go | 1848 + .../x/sys/unix/zsyscall_netbsd_arm.go | 1848 + .../x/sys/unix/zsyscall_netbsd_arm64.go | 1848 + .../x/sys/unix/zsyscall_openbsd_386.go | 2323 + .../x/sys/unix/zsyscall_openbsd_386.s | 699 + .../x/sys/unix/zsyscall_openbsd_amd64.go | 2323 + .../x/sys/unix/zsyscall_openbsd_amd64.s | 699 + .../x/sys/unix/zsyscall_openbsd_arm.go | 2323 + .../x/sys/unix/zsyscall_openbsd_arm.s | 699 + .../x/sys/unix/zsyscall_openbsd_arm64.go | 2323 + .../x/sys/unix/zsyscall_openbsd_arm64.s | 699 + .../x/sys/unix/zsyscall_openbsd_mips64.go | 2323 + .../x/sys/unix/zsyscall_openbsd_mips64.s | 699 + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2323 + .../x/sys/unix/zsyscall_openbsd_ppc64.s | 838 + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2323 + .../x/sys/unix/zsyscall_openbsd_riscv64.s | 699 + .../x/sys/unix/zsyscall_solaris_amd64.go | 2217 + .../x/sys/unix/zsyscall_zos_s390x.go | 3458 + .../x/sys/unix/zsysctl_openbsd_386.go | 280 + .../x/sys/unix/zsysctl_openbsd_amd64.go | 280 + .../x/sys/unix/zsysctl_openbsd_arm.go | 280 + .../x/sys/unix/zsysctl_openbsd_arm64.go | 280 + .../x/sys/unix/zsysctl_openbsd_mips64.go | 280 + .../x/sys/unix/zsysctl_openbsd_ppc64.go | 280 + .../x/sys/unix/zsysctl_openbsd_riscv64.go | 281 + .../x/sys/unix/zsysnum_darwin_amd64.go | 439 + .../x/sys/unix/zsysnum_darwin_arm64.go | 437 + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 316 + .../x/sys/unix/zsysnum_freebsd_386.go | 393 + .../x/sys/unix/zsysnum_freebsd_amd64.go | 393 + .../x/sys/unix/zsysnum_freebsd_arm.go | 393 + .../x/sys/unix/zsysnum_freebsd_arm64.go | 393 + .../x/sys/unix/zsysnum_freebsd_riscv64.go | 393 + .../x/sys/unix/zsysnum_linux_386.go | 465 + .../x/sys/unix/zsysnum_linux_amd64.go | 388 + .../x/sys/unix/zsysnum_linux_arm.go | 429 + .../x/sys/unix/zsysnum_linux_arm64.go | 332 + .../x/sys/unix/zsysnum_linux_loong64.go | 328 + .../x/sys/unix/zsysnum_linux_mips.go | 449 + .../x/sys/unix/zsysnum_linux_mips64.go | 379 + .../x/sys/unix/zsysnum_linux_mips64le.go | 379 + .../x/sys/unix/zsysnum_linux_mipsle.go | 449 + .../x/sys/unix/zsysnum_linux_ppc.go | 456 + .../x/sys/unix/zsysnum_linux_ppc64.go | 428 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 428 + .../x/sys/unix/zsysnum_linux_riscv64.go | 333 + .../x/sys/unix/zsysnum_linux_s390x.go | 394 + .../x/sys/unix/zsysnum_linux_sparc64.go | 407 + .../x/sys/unix/zsysnum_netbsd_386.go | 274 + .../x/sys/unix/zsysnum_netbsd_amd64.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm.go | 274 + .../x/sys/unix/zsysnum_netbsd_arm64.go | 274 + .../x/sys/unix/zsysnum_openbsd_386.go | 219 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 219 + .../x/sys/unix/zsysnum_openbsd_arm.go | 219 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 218 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 221 + .../x/sys/unix/zsysnum_openbsd_ppc64.go | 217 + .../x/sys/unix/zsysnum_openbsd_riscv64.go | 218 + .../x/sys/unix/zsysnum_zos_s390x.go | 2852 + .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 353 + .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 357 + .../x/sys/unix/ztypes_darwin_amd64.go | 878 + .../x/sys/unix/ztypes_darwin_arm64.go | 878 + .../x/sys/unix/ztypes_dragonfly_amd64.go | 473 + .../x/sys/unix/ztypes_freebsd_386.go | 651 + .../x/sys/unix/ztypes_freebsd_amd64.go | 656 + .../x/sys/unix/ztypes_freebsd_arm.go | 642 + .../x/sys/unix/ztypes_freebsd_arm64.go | 636 + .../x/sys/unix/ztypes_freebsd_riscv64.go | 638 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 6272 + .../golang.org/x/sys/unix/ztypes_linux_386.go | 705 + .../x/sys/unix/ztypes_linux_amd64.go | 719 + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 699 + .../x/sys/unix/ztypes_linux_arm64.go | 698 + .../x/sys/unix/ztypes_linux_loong64.go | 699 + .../x/sys/unix/ztypes_linux_mips.go | 704 + .../x/sys/unix/ztypes_linux_mips64.go | 701 + .../x/sys/unix/ztypes_linux_mips64le.go | 701 + .../x/sys/unix/ztypes_linux_mipsle.go | 704 + .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 712 + .../x/sys/unix/ztypes_linux_ppc64.go | 707 + .../x/sys/unix/ztypes_linux_ppc64le.go | 707 + .../x/sys/unix/ztypes_linux_riscv64.go | 786 + .../x/sys/unix/ztypes_linux_s390x.go | 721 + .../x/sys/unix/ztypes_linux_sparc64.go | 702 + .../x/sys/unix/ztypes_netbsd_386.go | 585 + .../x/sys/unix/ztypes_netbsd_amd64.go | 593 + .../x/sys/unix/ztypes_netbsd_arm.go | 590 + .../x/sys/unix/ztypes_netbsd_arm64.go | 593 + .../x/sys/unix/ztypes_openbsd_386.go | 568 + .../x/sys/unix/ztypes_openbsd_amd64.go | 568 + .../x/sys/unix/ztypes_openbsd_arm.go | 575 + .../x/sys/unix/ztypes_openbsd_arm64.go | 568 + .../x/sys/unix/ztypes_openbsd_mips64.go | 568 + .../x/sys/unix/ztypes_openbsd_ppc64.go | 570 + .../x/sys/unix/ztypes_openbsd_riscv64.go | 570 + .../x/sys/unix/ztypes_solaris_amd64.go | 516 + .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 552 + vendor/golang.org/x/sys/windows/aliases.go | 12 + .../golang.org/x/sys/windows/dll_windows.go | 415 + .../golang.org/x/sys/windows/env_windows.go | 57 + vendor/golang.org/x/sys/windows/eventlog.go | 20 + .../golang.org/x/sys/windows/exec_windows.go | 248 + .../x/sys/windows/memory_windows.go | 48 + vendor/golang.org/x/sys/windows/mkerrors.bash | 70 + .../x/sys/windows/mkknownfolderids.bash | 27 + vendor/golang.org/x/sys/windows/mksyscall.go | 9 + vendor/golang.org/x/sys/windows/race.go | 30 + vendor/golang.org/x/sys/windows/race0.go | 25 + .../x/sys/windows/security_windows.go | 1497 + vendor/golang.org/x/sys/windows/service.go | 257 + .../x/sys/windows/setupapi_windows.go | 1425 + vendor/golang.org/x/sys/windows/str.go | 22 + vendor/golang.org/x/sys/windows/syscall.go | 104 + .../x/sys/windows/syscall_windows.go | 1934 + .../golang.org/x/sys/windows/types_windows.go | 3842 + .../x/sys/windows/types_windows_386.go | 35 + .../x/sys/windows/types_windows_amd64.go | 34 + .../x/sys/windows/types_windows_arm.go | 35 + .../x/sys/windows/types_windows_arm64.go | 34 + .../x/sys/windows/zerrors_windows.go | 9468 ++ .../x/sys/windows/zknownfolderids_windows.go | 149 + .../x/sys/windows/zsyscall_windows.go | 4695 + vendor/golang.org/x/tools/LICENSE | 27 + vendor/golang.org/x/tools/PATENTS | 22 + .../x/tools/go/ast/astutil/enclosing.go | 663 + .../x/tools/go/ast/astutil/imports.go | 491 + .../x/tools/go/ast/astutil/rewrite.go | 490 + .../golang.org/x/tools/go/ast/astutil/util.go | 13 + .../x/tools/go/gcexportdata/gcexportdata.go | 236 + .../x/tools/go/gcexportdata/importer.go | 75 + vendor/golang.org/x/tools/go/packages/doc.go | 251 + .../x/tools/go/packages/external.go | 153 + .../golang.org/x/tools/go/packages/golist.go | 1092 + .../x/tools/go/packages/golist_overlay.go | 83 + .../x/tools/go/packages/loadmode_string.go | 56 + .../x/tools/go/packages/packages.go | 1559 + .../golang.org/x/tools/go/packages/visit.go | 68 + .../x/tools/go/types/objectpath/objectpath.go | 817 + .../x/tools/go/types/typeutil/callee.go | 85 + .../x/tools/go/types/typeutil/imports.go | 30 + .../x/tools/go/types/typeutil/map.go | 475 + .../tools/go/types/typeutil/methodsetcache.go | 71 + .../x/tools/go/types/typeutil/ui.go | 53 + vendor/golang.org/x/tools/imports/forward.go | 77 + .../x/tools/internal/aliases/aliases.go | 38 + .../x/tools/internal/aliases/aliases_go122.go | 80 + .../x/tools/internal/event/core/event.go | 85 + .../x/tools/internal/event/core/export.go | 70 + .../x/tools/internal/event/core/fast.go | 77 + .../golang.org/x/tools/internal/event/doc.go | 7 + .../x/tools/internal/event/event.go | 127 + .../x/tools/internal/event/keys/keys.go | 564 + .../x/tools/internal/event/keys/standard.go | 22 + .../x/tools/internal/event/keys/util.go | 21 + .../x/tools/internal/event/label/label.go | 214 + .../x/tools/internal/gcimporter/bimport.go | 89 + .../x/tools/internal/gcimporter/exportdata.go | 421 + .../x/tools/internal/gcimporter/gcimporter.go | 108 + .../x/tools/internal/gcimporter/iexport.go | 1596 + .../x/tools/internal/gcimporter/iimport.go | 1120 + .../internal/gcimporter/iimport_go122.go | 53 + .../tools/internal/gcimporter/predeclared.go | 91 + .../x/tools/internal/gcimporter/support.go | 30 + .../tools/internal/gcimporter/ureader_yes.go | 761 + .../x/tools/internal/gocommand/invoke.go | 567 + .../internal/gocommand/invoke_notunix.go | 13 + .../x/tools/internal/gocommand/invoke_unix.go | 13 + .../x/tools/internal/gocommand/vendor.go | 163 + .../x/tools/internal/gocommand/version.go | 71 + .../x/tools/internal/gopathwalk/walk.go | 336 + .../x/tools/internal/imports/fix.go | 1898 + .../x/tools/internal/imports/imports.go | 359 + .../x/tools/internal/imports/mod.go | 841 + .../x/tools/internal/imports/mod_cache.go | 331 + .../x/tools/internal/imports/sortimports.go | 298 + .../x/tools/internal/imports/source.go | 63 + .../x/tools/internal/imports/source_env.go | 129 + .../tools/internal/imports/source_modindex.go | 103 + .../x/tools/internal/modindex/directories.go | 135 + .../x/tools/internal/modindex/index.go | 266 + .../x/tools/internal/modindex/lookup.go | 178 + .../x/tools/internal/modindex/modindex.go | 164 + .../x/tools/internal/modindex/symbols.go | 218 + .../x/tools/internal/modindex/types.go | 25 + .../internal/packagesinternal/packages.go | 23 + .../x/tools/internal/pkgbits/codes.go | 77 + .../x/tools/internal/pkgbits/decoder.go | 519 + .../x/tools/internal/pkgbits/doc.go | 32 + .../x/tools/internal/pkgbits/encoder.go | 392 + .../x/tools/internal/pkgbits/flags.go | 9 + .../x/tools/internal/pkgbits/reloc.go | 42 + .../x/tools/internal/pkgbits/support.go | 17 + .../x/tools/internal/pkgbits/sync.go | 136 + .../internal/pkgbits/syncmarker_string.go | 92 + .../x/tools/internal/pkgbits/version.go | 85 + .../x/tools/internal/stdlib/deps.go | 359 + .../x/tools/internal/stdlib/import.go | 89 + .../x/tools/internal/stdlib/manifest.go | 17676 +++ .../x/tools/internal/stdlib/stdlib.go | 105 + .../x/tools/internal/typeparams/common.go | 68 + .../x/tools/internal/typeparams/coretype.go | 155 + .../x/tools/internal/typeparams/free.go | 131 + .../x/tools/internal/typeparams/normalize.go | 218 + .../x/tools/internal/typeparams/termlist.go | 169 + .../x/tools/internal/typeparams/typeterm.go | 172 + .../internal/typesinternal/classify_call.go | 137 + .../x/tools/internal/typesinternal/element.go | 133 + .../tools/internal/typesinternal/errorcode.go | 1560 + .../typesinternal/errorcode_string.go | 179 + .../tools/internal/typesinternal/qualifier.go | 46 + .../x/tools/internal/typesinternal/recv.go | 44 + .../x/tools/internal/typesinternal/toonew.go | 89 + .../x/tools/internal/typesinternal/types.go | 155 + .../x/tools/internal/typesinternal/varkind.go | 40 + .../tools/internal/typesinternal/zerovalue.go | 392 + .../x/tools/internal/versions/features.go | 43 + .../x/tools/internal/versions/gover.go | 172 + .../x/tools/internal/versions/types.go | 33 + .../x/tools/internal/versions/versions.go | 57 + vendor/modules.txt | 112 + 798 files changed, 571869 insertions(+) create mode 100644 vendor/github.com/a-h/parse/.gitignore create mode 100644 vendor/github.com/a-h/parse/LICENSE create mode 100644 vendor/github.com/a-h/parse/README.md create mode 100644 vendor/github.com/a-h/parse/all.go create mode 100644 vendor/github.com/a-h/parse/any.go create mode 100644 vendor/github.com/a-h/parse/convert.go create mode 100644 vendor/github.com/a-h/parse/digits.go create mode 100644 vendor/github.com/a-h/parse/eof.go create mode 100644 vendor/github.com/a-h/parse/error.go create mode 100644 vendor/github.com/a-h/parse/input.go create mode 100644 vendor/github.com/a-h/parse/optional.go create mode 100644 vendor/github.com/a-h/parse/or.go create mode 100644 vendor/github.com/a-h/parse/regexp.go create mode 100644 vendor/github.com/a-h/parse/rune.go create mode 100644 vendor/github.com/a-h/parse/sequenceof2.go create mode 100644 vendor/github.com/a-h/parse/sequenceof3.go create mode 100644 vendor/github.com/a-h/parse/sequenceof4.go create mode 100644 vendor/github.com/a-h/parse/sequenceof5.go create mode 100644 vendor/github.com/a-h/parse/sequenceof6.go create mode 100644 vendor/github.com/a-h/parse/sequenceof7.go create mode 100644 vendor/github.com/a-h/parse/sequenceof8.go create mode 100644 vendor/github.com/a-h/parse/sequenceof9.go create mode 100644 vendor/github.com/a-h/parse/string.go create mode 100644 vendor/github.com/a-h/parse/stringfrom.go create mode 100644 vendor/github.com/a-h/parse/stringuntil.go create mode 100644 vendor/github.com/a-h/parse/then.go create mode 100644 vendor/github.com/a-h/parse/times.go create mode 100644 vendor/github.com/a-h/parse/tuples.go create mode 100644 vendor/github.com/a-h/parse/types.go create mode 100644 vendor/github.com/a-h/parse/until.go create mode 100644 vendor/github.com/a-h/parse/whitespace.go create mode 100644 vendor/github.com/a-h/templ/.dockerignore create mode 100644 vendor/github.com/a-h/templ/.envrc create mode 100644 vendor/github.com/a-h/templ/.gitignore create mode 100644 vendor/github.com/a-h/templ/.goreleaser.yaml create mode 100644 vendor/github.com/a-h/templ/.ignore create mode 100644 vendor/github.com/a-h/templ/.version create mode 100644 vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/a-h/templ/CONTRIBUTING.md create mode 100644 vendor/github.com/a-h/templ/LICENSE create mode 100644 vendor/github.com/a-h/templ/README.md create mode 100644 vendor/github.com/a-h/templ/SECURITY.md create mode 100644 vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/main.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/processor/processor.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ create mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go create mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/types.go create mode 100644 vendor/github.com/a-h/templ/cosign.pub create mode 100644 vendor/github.com/a-h/templ/flake.lock create mode 100644 vendor/github.com/a-h/templ/flake.nix create mode 100644 vendor/github.com/a-h/templ/flush.go create mode 100644 vendor/github.com/a-h/templ/fragment.go create mode 100644 vendor/github.com/a-h/templ/generator/generator.go create mode 100644 vendor/github.com/a-h/templ/generator/rangewriter.go create mode 100644 vendor/github.com/a-h/templ/handler.go create mode 100644 vendor/github.com/a-h/templ/ide-demo.gif create mode 100644 vendor/github.com/a-h/templ/internal/format/scriptelement.go create mode 100644 vendor/github.com/a-h/templ/internal/format/styleelement.go create mode 100644 vendor/github.com/a-h/templ/internal/format/templ.go create mode 100644 vendor/github.com/a-h/templ/internal/htmlfind/htmlfind.go create mode 100644 vendor/github.com/a-h/templ/internal/imports/process.go create mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/docheader.go create mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/docheaderparser.go create mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/pkgloader.go create mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/pkgtraverser.go create mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/templdoclazyloader.go create mode 100644 vendor/github.com/a-h/templ/internal/prettier/prettier.go create mode 100644 vendor/github.com/a-h/templ/internal/prettier/testdata.txtar create mode 100644 vendor/github.com/a-h/templ/internal/skipdir/skipdir.go create mode 100644 vendor/github.com/a-h/templ/internal/syncmap/map.go create mode 100644 vendor/github.com/a-h/templ/internal/syncset/set.go create mode 100644 vendor/github.com/a-h/templ/join.go create mode 100644 vendor/github.com/a-h/templ/js.go create mode 100644 vendor/github.com/a-h/templ/jsonscript.go create mode 100644 vendor/github.com/a-h/templ/jsonstring.go create mode 100644 vendor/github.com/a-h/templ/lsp/LICENSE create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go create mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/base.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/basic.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/client.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/context.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/deprecated.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/doc.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/errors.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/general.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/handler.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/language.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/progress.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/protocol.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/registration.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/server.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/text.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/util.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/version.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/window.go create mode 100644 vendor/github.com/a-h/templ/lsp/protocol/workspace.go create mode 100644 vendor/github.com/a-h/templ/lsp/uri/uri.go create mode 100644 vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go create mode 100644 vendor/github.com/a-h/templ/once.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/childrenparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/cssparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/diagnostics.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/doctypeparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/elementparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/expressionparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/fuzz.sh create mode 100644 vendor/github.com/a-h/templ/parser/v2/gocodeparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/gocommentparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh create mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/goparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/packageparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/parser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/raw.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/scriptparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/scripttemplateparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/sourcemap.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/stringexpressionparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/structure.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/switchexpressionparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/templatefile.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/templateparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/templelementparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/textparser.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/types.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/visitor.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go create mode 100644 vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go create mode 100644 vendor/github.com/a-h/templ/runtime.go create mode 100644 vendor/github.com/a-h/templ/runtime/buffer.go create mode 100644 vendor/github.com/a-h/templ/runtime/bufferpool.go create mode 100644 vendor/github.com/a-h/templ/runtime/builder.go create mode 100644 vendor/github.com/a-h/templ/runtime/runtime.go create mode 100644 vendor/github.com/a-h/templ/runtime/scriptelement.go create mode 100644 vendor/github.com/a-h/templ/runtime/styleattribute.go create mode 100644 vendor/github.com/a-h/templ/runtime/watchmode.go create mode 100644 vendor/github.com/a-h/templ/safehtml/style.go create mode 100644 vendor/github.com/a-h/templ/scripttemplate.go create mode 100644 vendor/github.com/a-h/templ/templ.png create mode 100644 vendor/github.com/a-h/templ/url.go create mode 100644 vendor/github.com/a-h/templ/version.go create mode 100644 vendor/github.com/a-h/templ/watchmode.go create mode 100644 vendor/github.com/andybalholm/brotli/LICENSE create mode 100644 vendor/github.com/andybalholm/brotli/README.md create mode 100644 vendor/github.com/andybalholm/brotli/backward_references.go create mode 100644 vendor/github.com/andybalholm/brotli/backward_references_hq.go create mode 100644 vendor/github.com/andybalholm/brotli/bit_cost.go create mode 100644 vendor/github.com/andybalholm/brotli/bit_reader.go create mode 100644 vendor/github.com/andybalholm/brotli/bitwriter.go create mode 100644 vendor/github.com/andybalholm/brotli/block_splitter.go create mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_command.go create mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_distance.go create mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_literal.go create mode 100644 vendor/github.com/andybalholm/brotli/brotli_bit_stream.go create mode 100644 vendor/github.com/andybalholm/brotli/cluster.go create mode 100644 vendor/github.com/andybalholm/brotli/cluster_command.go create mode 100644 vendor/github.com/andybalholm/brotli/cluster_distance.go create mode 100644 vendor/github.com/andybalholm/brotli/cluster_literal.go create mode 100644 vendor/github.com/andybalholm/brotli/command.go create mode 100644 vendor/github.com/andybalholm/brotli/compress_fragment.go create mode 100644 vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go create mode 100644 vendor/github.com/andybalholm/brotli/constants.go create mode 100644 vendor/github.com/andybalholm/brotli/context.go create mode 100644 vendor/github.com/andybalholm/brotli/decode.go create mode 100644 vendor/github.com/andybalholm/brotli/dictionary.go create mode 100644 vendor/github.com/andybalholm/brotli/dictionary_hash.go create mode 100644 vendor/github.com/andybalholm/brotli/encode.go create mode 100644 vendor/github.com/andybalholm/brotli/encoder.go create mode 100644 vendor/github.com/andybalholm/brotli/encoder_dict.go create mode 100644 vendor/github.com/andybalholm/brotli/entropy_encode.go create mode 100644 vendor/github.com/andybalholm/brotli/entropy_encode_static.go create mode 100644 vendor/github.com/andybalholm/brotli/fast_log.go create mode 100644 vendor/github.com/andybalholm/brotli/find_match_length.go create mode 100644 vendor/github.com/andybalholm/brotli/h10.go create mode 100644 vendor/github.com/andybalholm/brotli/h5.go create mode 100644 vendor/github.com/andybalholm/brotli/h6.go create mode 100644 vendor/github.com/andybalholm/brotli/hash.go create mode 100644 vendor/github.com/andybalholm/brotli/hash_composite.go create mode 100644 vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go create mode 100644 vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go create mode 100644 vendor/github.com/andybalholm/brotli/hash_rolling.go create mode 100644 vendor/github.com/andybalholm/brotli/histogram.go create mode 100644 vendor/github.com/andybalholm/brotli/http.go create mode 100644 vendor/github.com/andybalholm/brotli/huffman.go create mode 100644 vendor/github.com/andybalholm/brotli/literal_cost.go create mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/emitter.go create mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/m0.go create mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/m4.go create mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go create mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go create mode 100644 vendor/github.com/andybalholm/brotli/memory.go create mode 100644 vendor/github.com/andybalholm/brotli/metablock.go create mode 100644 vendor/github.com/andybalholm/brotli/metablock_command.go create mode 100644 vendor/github.com/andybalholm/brotli/metablock_distance.go create mode 100644 vendor/github.com/andybalholm/brotli/metablock_literal.go create mode 100644 vendor/github.com/andybalholm/brotli/params.go create mode 100644 vendor/github.com/andybalholm/brotli/platform.go create mode 100644 vendor/github.com/andybalholm/brotli/prefix.go create mode 100644 vendor/github.com/andybalholm/brotli/prefix_dec.go create mode 100644 vendor/github.com/andybalholm/brotli/quality.go create mode 100644 vendor/github.com/andybalholm/brotli/reader.go create mode 100644 vendor/github.com/andybalholm/brotli/ringbuffer.go create mode 100644 vendor/github.com/andybalholm/brotli/state.go create mode 100644 vendor/github.com/andybalholm/brotli/static_dict.go create mode 100644 vendor/github.com/andybalholm/brotli/static_dict_lut.go create mode 100644 vendor/github.com/andybalholm/brotli/symbol_list.go create mode 100644 vendor/github.com/andybalholm/brotli/transform.go create mode 100644 vendor/github.com/andybalholm/brotli/utf8_util.go create mode 100644 vendor/github.com/andybalholm/brotli/util.go create mode 100644 vendor/github.com/andybalholm/brotli/write_bits.go create mode 100644 vendor/github.com/andybalholm/brotli/writer.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/.gitignore create mode 100644 vendor/github.com/cenkalti/backoff/v4/LICENSE create mode 100644 vendor/github.com/cenkalti/backoff/v4/README.md create mode 100644 vendor/github.com/cenkalti/backoff/v4/backoff.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/context.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/exponential.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/retry.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/ticker.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/timer.go create mode 100644 vendor/github.com/cenkalti/backoff/v4/tries.go create mode 100644 vendor/github.com/cli/browser/LICENSE create mode 100644 vendor/github.com/cli/browser/README.md create mode 100644 vendor/github.com/cli/browser/browser.go create mode 100644 vendor/github.com/cli/browser/browser_darwin.go create mode 100644 vendor/github.com/cli/browser/browser_freebsd.go create mode 100644 vendor/github.com/cli/browser/browser_linux.go create mode 100644 vendor/github.com/cli/browser/browser_netbsd.go create mode 100644 vendor/github.com/cli/browser/browser_openbsd.go create mode 100644 vendor/github.com/cli/browser/browser_unsupported.go create mode 100644 vendor/github.com/cli/browser/browser_windows.go create mode 100644 vendor/github.com/fatih/color/LICENSE.md create mode 100644 vendor/github.com/fatih/color/README.md create mode 100644 vendor/github.com/fatih/color/color.go create mode 100644 vendor/github.com/fatih/color/color_windows.go create mode 100644 vendor/github.com/fatih/color/doc.go create mode 100644 vendor/github.com/fsnotify/fsnotify/.cirrus.yml create mode 100644 vendor/github.com/fsnotify/fsnotify/.editorconfig create mode 100644 vendor/github.com/fsnotify/fsnotify/.gitattributes create mode 100644 vendor/github.com/fsnotify/fsnotify/.gitignore create mode 100644 vendor/github.com/fsnotify/fsnotify/.mailmap create mode 100644 vendor/github.com/fsnotify/fsnotify/CHANGELOG.md create mode 100644 vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md create mode 100644 vendor/github.com/fsnotify/fsnotify/LICENSE create mode 100644 vendor/github.com/fsnotify/fsnotify/README.md create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_fen.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_inotify.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_kqueue.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_other.go create mode 100644 vendor/github.com/fsnotify/fsnotify/backend_windows.go create mode 100644 vendor/github.com/fsnotify/fsnotify/fsnotify.go create mode 100644 vendor/github.com/fsnotify/fsnotify/mkdoc.zsh create mode 100644 vendor/github.com/fsnotify/fsnotify/system_bsd.go create mode 100644 vendor/github.com/fsnotify/fsnotify/system_darwin.go create mode 100644 vendor/github.com/mattn/go-colorable/LICENSE create mode 100644 vendor/github.com/mattn/go-colorable/README.md create mode 100644 vendor/github.com/mattn/go-colorable/colorable_appengine.go create mode 100644 vendor/github.com/mattn/go-colorable/colorable_others.go create mode 100644 vendor/github.com/mattn/go-colorable/colorable_windows.go create mode 100644 vendor/github.com/mattn/go-colorable/go.test.sh create mode 100644 vendor/github.com/mattn/go-colorable/noncolorable.go create mode 100644 vendor/github.com/mattn/go-isatty/LICENSE create mode 100644 vendor/github.com/mattn/go-isatty/README.md create mode 100644 vendor/github.com/mattn/go-isatty/doc.go create mode 100644 vendor/github.com/mattn/go-isatty/go.test.sh create mode 100644 vendor/github.com/mattn/go-isatty/isatty_bsd.go create mode 100644 vendor/github.com/mattn/go-isatty/isatty_others.go create mode 100644 vendor/github.com/mattn/go-isatty/isatty_plan9.go create mode 100644 vendor/github.com/mattn/go-isatty/isatty_solaris.go create mode 100644 vendor/github.com/mattn/go-isatty/isatty_tcgets.go create mode 100644 vendor/github.com/mattn/go-isatty/isatty_windows.go create mode 100644 vendor/github.com/natefinch/atomic/.gitignore create mode 100644 vendor/github.com/natefinch/atomic/LICENSE create mode 100644 vendor/github.com/natefinch/atomic/README.md create mode 100644 vendor/github.com/natefinch/atomic/atomic.go create mode 100644 vendor/github.com/natefinch/atomic/file_unix.go create mode 100644 vendor/github.com/natefinch/atomic/file_windows.go create mode 100644 vendor/github.com/natefinch/atomic/zfile_windows.go create mode 100644 vendor/golang.org/x/mod/LICENSE create mode 100644 vendor/golang.org/x/mod/PATENTS create mode 100644 vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go create mode 100644 vendor/golang.org/x/mod/modfile/print.go create mode 100644 vendor/golang.org/x/mod/modfile/read.go create mode 100644 vendor/golang.org/x/mod/modfile/rule.go create mode 100644 vendor/golang.org/x/mod/modfile/work.go create mode 100644 vendor/golang.org/x/mod/module/module.go create mode 100644 vendor/golang.org/x/mod/module/pseudo.go create mode 100644 vendor/golang.org/x/mod/semver/semver.go create mode 100644 vendor/golang.org/x/net/LICENSE create mode 100644 vendor/golang.org/x/net/PATENTS create mode 100644 vendor/golang.org/x/net/html/atom/atom.go create mode 100644 vendor/golang.org/x/net/html/atom/table.go create mode 100644 vendor/golang.org/x/net/html/const.go create mode 100644 vendor/golang.org/x/net/html/doc.go create mode 100644 vendor/golang.org/x/net/html/doctype.go create mode 100644 vendor/golang.org/x/net/html/entity.go create mode 100644 vendor/golang.org/x/net/html/escape.go create mode 100644 vendor/golang.org/x/net/html/foreign.go create mode 100644 vendor/golang.org/x/net/html/iter.go create mode 100644 vendor/golang.org/x/net/html/node.go create mode 100644 vendor/golang.org/x/net/html/parse.go create mode 100644 vendor/golang.org/x/net/html/render.go create mode 100644 vendor/golang.org/x/net/html/token.go create mode 100644 vendor/golang.org/x/sync/LICENSE create mode 100644 vendor/golang.org/x/sync/PATENTS create mode 100644 vendor/golang.org/x/sync/errgroup/errgroup.go create mode 100644 vendor/golang.org/x/sys/LICENSE create mode 100644 vendor/golang.org/x/sys/PATENTS create mode 100644 vendor/golang.org/x/sys/unix/.gitignore create mode 100644 vendor/golang.org/x/sys/unix/README.md create mode 100644 vendor/golang.org/x/sys/unix/affinity_linux.go create mode 100644 vendor/golang.org/x/sys/unix/aliases.go create mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_386.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_loong64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mips64x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_solaris_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/asm_zos_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/auxv.go create mode 100644 vendor/golang.org/x/sys/unix/auxv_unsupported.go create mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.go create mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.s create mode 100644 vendor/golang.org/x/sys/unix/cap_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/constants.go create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/dev_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/dev_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/dev_linux.go create mode 100644 vendor/golang.org/x/sys/unix/dev_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/dev_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/dev_zos.go create mode 100644 vendor/golang.org/x/sys/unix/dirent.go create mode 100644 vendor/golang.org/x/sys/unix/endian_big.go create mode 100644 vendor/golang.org/x/sys/unix/endian_little.go create mode 100644 vendor/golang.org/x/sys/unix/env_unix.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go create mode 100644 vendor/golang.org/x/sys/unix/fdset.go create mode 100644 vendor/golang.org/x/sys/unix/gccgo.go create mode 100644 vendor/golang.org/x/sys/unix/gccgo_c.c create mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ifreq_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl_signed.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl_unsigned.go create mode 100644 vendor/golang.org/x/sys/unix/ioctl_zos.go create mode 100644 vendor/golang.org/x/sys/unix/mkall.sh create mode 100644 vendor/golang.org/x/sys/unix/mkerrors.sh create mode 100644 vendor/golang.org/x/sys/unix/mmap_nomremap.go create mode 100644 vendor/golang.org/x/sys/unix/mremap.go create mode 100644 vendor/golang.org/x/sys/unix/pagesize_unix.go create mode 100644 vendor/golang.org/x/sys/unix/pledge_openbsd.go 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/race.go create mode 100644 vendor/golang.org/x/sys/unix/race0.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_linux.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_zos.go create mode 100644 vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/syscall.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_bsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_alarm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_386.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_linux_gccgo_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_loong64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_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_libc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/sysvshm_linux.go create mode 100644 vendor/golang.org/x/sys/unix/sysvshm_unix.go create mode 100644 vendor/golang.org/x/sys/unix/sysvshm_unix_other.go create mode 100644 vendor/golang.org/x/sys/unix/timestruct.go create mode 100644 vendor/golang.org/x/sys/unix/unveil_openbsd.go create mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_linux.go create mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go create mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.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_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zptrace_x86_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.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/zsysctl_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.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_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.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_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go create mode 100644 vendor/golang.org/x/sys/windows/aliases.go create mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go create mode 100644 vendor/golang.org/x/sys/windows/env_windows.go create mode 100644 vendor/golang.org/x/sys/windows/eventlog.go create mode 100644 vendor/golang.org/x/sys/windows/exec_windows.go create mode 100644 vendor/golang.org/x/sys/windows/memory_windows.go create mode 100644 vendor/golang.org/x/sys/windows/mkerrors.bash create mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash create mode 100644 vendor/golang.org/x/sys/windows/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/race.go create mode 100644 vendor/golang.org/x/sys/windows/race0.go create mode 100644 vendor/golang.org/x/sys/windows/security_windows.go create mode 100644 vendor/golang.org/x/sys/windows/service.go create mode 100644 vendor/golang.org/x/sys/windows/setupapi_windows.go create mode 100644 vendor/golang.org/x/sys/windows/str.go create mode 100644 vendor/golang.org/x/sys/windows/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_386.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_amd64.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm64.go create mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go create mode 100644 vendor/golang.org/x/tools/LICENSE create mode 100644 vendor/golang.org/x/tools/PATENTS create mode 100644 vendor/golang.org/x/tools/go/ast/astutil/enclosing.go create mode 100644 vendor/golang.org/x/tools/go/ast/astutil/imports.go create mode 100644 vendor/golang.org/x/tools/go/ast/astutil/rewrite.go create mode 100644 vendor/golang.org/x/tools/go/ast/astutil/util.go create mode 100644 vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go create mode 100644 vendor/golang.org/x/tools/go/gcexportdata/importer.go create mode 100644 vendor/golang.org/x/tools/go/packages/doc.go create mode 100644 vendor/golang.org/x/tools/go/packages/external.go create mode 100644 vendor/golang.org/x/tools/go/packages/golist.go create mode 100644 vendor/golang.org/x/tools/go/packages/golist_overlay.go create mode 100644 vendor/golang.org/x/tools/go/packages/loadmode_string.go create mode 100644 vendor/golang.org/x/tools/go/packages/packages.go create mode 100644 vendor/golang.org/x/tools/go/packages/visit.go create mode 100644 vendor/golang.org/x/tools/go/types/objectpath/objectpath.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/callee.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/imports.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/map.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/ui.go create mode 100644 vendor/golang.org/x/tools/imports/forward.go create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases.go create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go122.go create mode 100644 vendor/golang.org/x/tools/internal/event/core/event.go create mode 100644 vendor/golang.org/x/tools/internal/event/core/export.go create mode 100644 vendor/golang.org/x/tools/internal/event/core/fast.go create mode 100644 vendor/golang.org/x/tools/internal/event/doc.go create mode 100644 vendor/golang.org/x/tools/internal/event/event.go create mode 100644 vendor/golang.org/x/tools/internal/event/keys/keys.go create mode 100644 vendor/golang.org/x/tools/internal/event/keys/standard.go create mode 100644 vendor/golang.org/x/tools/internal/event/keys/util.go create mode 100644 vendor/golang.org/x/tools/internal/event/label/label.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/bimport.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/exportdata.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iexport.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/predeclared.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/support.go create mode 100644 vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go create mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke.go create mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go create mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go create mode 100644 vendor/golang.org/x/tools/internal/gocommand/vendor.go create mode 100644 vendor/golang.org/x/tools/internal/gocommand/version.go create mode 100644 vendor/golang.org/x/tools/internal/gopathwalk/walk.go create mode 100644 vendor/golang.org/x/tools/internal/imports/fix.go create mode 100644 vendor/golang.org/x/tools/internal/imports/imports.go create mode 100644 vendor/golang.org/x/tools/internal/imports/mod.go create mode 100644 vendor/golang.org/x/tools/internal/imports/mod_cache.go create mode 100644 vendor/golang.org/x/tools/internal/imports/sortimports.go create mode 100644 vendor/golang.org/x/tools/internal/imports/source.go create mode 100644 vendor/golang.org/x/tools/internal/imports/source_env.go create mode 100644 vendor/golang.org/x/tools/internal/imports/source_modindex.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/directories.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/index.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/lookup.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/modindex.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/symbols.go create mode 100644 vendor/golang.org/x/tools/internal/modindex/types.go create mode 100644 vendor/golang.org/x/tools/internal/packagesinternal/packages.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/codes.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/decoder.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/doc.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/encoder.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/flags.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/reloc.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/support.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/sync.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go create mode 100644 vendor/golang.org/x/tools/internal/pkgbits/version.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/deps.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/import.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/manifest.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/stdlib.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/common.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/coretype.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/free.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/normalize.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/termlist.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeterm.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/classify_call.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/element.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/qualifier.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/recv.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/toonew.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/types.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/varkind.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go create mode 100644 vendor/golang.org/x/tools/internal/versions/features.go create mode 100644 vendor/golang.org/x/tools/internal/versions/gover.go create mode 100644 vendor/golang.org/x/tools/internal/versions/types.go create mode 100644 vendor/golang.org/x/tools/internal/versions/versions.go diff --git a/vendor/github.com/a-h/parse/.gitignore b/vendor/github.com/a-h/parse/.gitignore new file mode 100644 index 0000000..2d83068 --- /dev/null +++ b/vendor/github.com/a-h/parse/.gitignore @@ -0,0 +1 @@ +coverage.out diff --git a/vendor/github.com/a-h/parse/LICENSE b/vendor/github.com/a-h/parse/LICENSE new file mode 100644 index 0000000..a866b28 --- /dev/null +++ b/vendor/github.com/a-h/parse/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Adrian Hesketh + +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/a-h/parse/README.md b/vendor/github.com/a-h/parse/README.md new file mode 100644 index 0000000..1293d54 --- /dev/null +++ b/vendor/github.com/a-h/parse/README.md @@ -0,0 +1,145 @@ +# Parse + +A set of parsing tools for Go inspired by [Sprache](https://github.com/sprache/Sprache/). + +Build up complex parsers from small, simple functions that chomp away at the input. + +## Input + +The input moves along as the parser succeeds. + +```go +input := parse.NewInput("ABCD") +item, ok, err := parse.String("A").Parse(input) +// Input is now at index 1. +item, ok, err := parse.String("B").Parse(input) +// Input is now at index 2. +item, ok, err := parse.String("XYZ").Parse(input) +// Input index didn't change and ok=false. +item, ok, err := parse.String("CD").Parse(input) +// Input is now at index 4. +``` + +## Design + +A parser must match the `parse.Parser` interface, or be created by the use of the `parser.Func` helper. These 3 parsers are equivalent. + +```go +parse.String("<") +``` + +```go +parse.Func(func(in *parse.Input) (item string, ok bool, err error) { + item, _ = in.Peek(1) + ok = item == "<" + return +}) +``` + +```go +type lessThanParser struct{} + +func (ltp lessThanParser) Parse(in *parse.Input) (item string, ok bool, err error) { + item, _ = in.Peek(1) + ok = item == "<" + return +} +``` + +## Functions + +Parser functions provide a way of matching patterns in a given input. They are designed to be able to be composed together to make more complex operations. + +The [examples](./examples) directory contains several examples of composing the primitive functions. + +* `Any` + * Parse any of the provided parse functions, or roll back. +* `AnyRune` + * Parse any rune. +* `AtLeast` + * Parse the provided function at least the number of times specified, or roll back. +* `AtMost` + * Parse the provided function at least once, and at most the number of times specified, or roll back. +* `Letter` + * Parse any letter in the Unicode Letter range or roll back. +* `Many` + * Parse the provided parse function a number of times or roll back. +* `Optional` + * Attempt to parse, but don't roll back if a match isn't found. +* `Or` + * Return the first successful result of the provided parse functions, or roll back. +* `Rune` + * Parse the specified rune (character) or fallback. +* `RuneIn` + * Parse a rune from the input stream if it's in the specified string, or roll back. +* `RuneInRanges` + * Parse a rune from the input stream if it's in the specified Unicode ranges, or roll back. +* `RuneNotIn` + * Parse a rune from the input stream if it's not in the specified string, or roll back. +* `RuneWhere` + * Parse a rune from the input stream if the predicate function passed in succeeds, or roll back. +* `String` + * Parse a string from the input stream if it exactly matches the provided string, or roll back. +* `StringUntil` + * Parse a string from the input stream until the specified _until_ parser is matched. +* `Then` + * Return the results of the first and second parser passed through the combiner function which converts the two results into a single output (a map / reduce operation), or roll back if either doesn't match. +* `Times` + * Parse using the specified function a set number of times or roll back. +* `Until` + * Parse from the input stream until the specified _until_ parser is matched. +* `ZeroToNine` + * Parse a rune from the input stream if it's within the set of 1234567890. + +## More complex parsers + +More complex parsers will need to store the start position, and rollback by using the input's `Seek` function if the current parser does not match the input. + +```go +func ExampleParser() { + type GotoStatement struct { + Line int64 + } + gotoParser := parse.Func(func(in *parse.Input) (item GotoStatement, ok bool, err error) { + start := in.Index() + + if _, ok, err = parse.String("GOTO ").Parse(in); err != nil || !ok { + // Rollback, and return. + in.Seek(start) + return + } + + // Read until the next newline or the EOF. + until := parse.Any(parse.NewLine, parse.EOF[string]()) + var lineNumber string + if lineNumber, ok, err = parse.StringUntil(until).Parse(in); err != nil || !ok { + err = parse.Error("Syntax error: GOTO is missing line number", in.Position()) + return + } + // We must have a valid line number now, or there is a syntax error. + item.Line, err = strconv.ParseInt(lineNumber, 10, 64) + if err != nil { + return item, false, parse.Error("Syntax error: GOTO has invalid line number", in.Position()) + } + + // Chomp the newline we read up to. + until.Parse(in) + + return item, true, nil + }) + + inputs := []string{ + "GOTO 10", + "GOTO abc", + "FOR i = 0", + } + for _, input := range inputs { + stmt, ok, err := gotoParser.Parse(parse.NewInput(input)) + fmt.Printf("%+v, ok=%v, err=%v\n", stmt, ok, err) + } + // Output: + // {Line:10}, ok=true, err= + // {Line:0}, ok=false, err=Syntax error: GOTO has invalid line number: line 1, col 8 + // {Line:0}, ok=false, err= +} +``` diff --git a/vendor/github.com/a-h/parse/all.go b/vendor/github.com/a-h/parse/all.go new file mode 100644 index 0000000..362db8c --- /dev/null +++ b/vendor/github.com/a-h/parse/all.go @@ -0,0 +1,26 @@ +package parse + +type allParser[T any] struct { + Parsers []Parser[T] +} + +func (p allParser[T]) Parse(in *Input) (match []T, ok bool, err error) { + start := in.Index() + for _, parser := range p.Parsers { + var m T + m, ok, err = parser.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match = append(match, m) + } + return +} + +// All parses all of the parsers in the list in sequence and combines the result. +func All[T any](parsers ...Parser[T]) Parser[[]T] { + return allParser[T]{ + Parsers: parsers, + } +} diff --git a/vendor/github.com/a-h/parse/any.go b/vendor/github.com/a-h/parse/any.go new file mode 100644 index 0000000..1469df8 --- /dev/null +++ b/vendor/github.com/a-h/parse/any.go @@ -0,0 +1,22 @@ +package parse + +type anyParser[T any] struct { + Parsers []Parser[T] +} + +func (p anyParser[T]) Parse(in *Input) (match T, ok bool, err error) { + for _, parser := range p.Parsers { + match, ok, err = parser.Parse(in) + if err != nil || ok { + return + } + } + return +} + +// Any parses any one of the parsers in the list. +func Any[T any](parsers ...Parser[T]) Parser[T] { + return anyParser[T]{ + Parsers: parsers, + } +} diff --git a/vendor/github.com/a-h/parse/convert.go b/vendor/github.com/a-h/parse/convert.go new file mode 100644 index 0000000..05e9438 --- /dev/null +++ b/vendor/github.com/a-h/parse/convert.go @@ -0,0 +1,14 @@ +package parse + +// Convert a parser's output type using the given conversion function. +func Convert[A, B any](parser Parser[A], converter func(a A) (B, error)) Parser[B] { + return Func(func(in *Input) (match B, ok bool, err error) { + var m A + m, ok, err = parser.Parse(in) + if err != nil || !ok { + return + } + match, err = converter(m) + return + }) +} diff --git a/vendor/github.com/a-h/parse/digits.go b/vendor/github.com/a-h/parse/digits.go new file mode 100644 index 0000000..d4b68c0 --- /dev/null +++ b/vendor/github.com/a-h/parse/digits.go @@ -0,0 +1,4 @@ +package parse + +// ZeroToNine matches a single rune from 0123456789. +var ZeroToNine Parser[string] = RuneIn("0123456789") diff --git a/vendor/github.com/a-h/parse/eof.go b/vendor/github.com/a-h/parse/eof.go new file mode 100644 index 0000000..6751e1d --- /dev/null +++ b/vendor/github.com/a-h/parse/eof.go @@ -0,0 +1,15 @@ +package parse + +type eofParser[T any] struct { +} + +func (p eofParser[T]) Parse(in *Input) (match T, ok bool, err error) { + _, canAdvance := in.Peek(1) + ok = !canAdvance + return +} + +// EOF matches the end of the input. +func EOF[T any]() Parser[T] { + return eofParser[T]{} +} diff --git a/vendor/github.com/a-h/parse/error.go b/vendor/github.com/a-h/parse/error.go new file mode 100644 index 0000000..cf82c87 --- /dev/null +++ b/vendor/github.com/a-h/parse/error.go @@ -0,0 +1,21 @@ +package parse + +import ( + "fmt" +) + +func Error(msg string, pos Position) ParseError { + return ParseError{ + Msg: msg, + Pos: pos, + } +} + +type ParseError struct { + Msg string + Pos Position +} + +func (e ParseError) Error() string { + return fmt.Sprintf("%s: %v", e.Msg, e.Pos) +} diff --git a/vendor/github.com/a-h/parse/input.go b/vendor/github.com/a-h/parse/input.go new file mode 100644 index 0000000..1404722 --- /dev/null +++ b/vendor/github.com/a-h/parse/input.go @@ -0,0 +1,79 @@ +package parse + +import ( + "sort" +) + +// NewInput creates an input from the given string. +func NewInput(s string) *Input { + ip := &Input{ + s: s, + charIndex: 0, + } + for i, r := range s { + if r == '\n' { + ip.newLines = append(ip.newLines, i) + } + } + return ip +} + +// InputString is an input used by parsers. It stores the current location +// and character positions. +type Input struct { + s string + charIndex int + // character positions of new line characters. + newLines []int +} + +func (in *Input) Peek(n int) (s string, ok bool) { + if in.charIndex+n > len(in.s) { + return + } + if n < 0 { + return in.s[in.charIndex:], true + } + return in.s[in.charIndex : in.charIndex+n], true +} + +func (in *Input) Take(n int) (s string, ok bool) { + if in.charIndex+n > len(in.s) { + return + } + from := in.charIndex + in.charIndex += n + return in.s[from:in.charIndex], true +} + +// Position returns the zero-bound index, line and column number of the current position within the stream. +func (in *Input) Position() Position { + return in.PositionAt(in.charIndex) +} + +// Position returns the zero-bound index, line and column number of the current position within the stream. +func (in *Input) PositionAt(index int) Position { + lineIndex := sort.Search(len(in.newLines), func(lineIndex int) bool { + return index <= in.newLines[lineIndex] + }) + var previousLineEnd int + if lineIndex > 0 { + previousLineEnd = in.newLines[lineIndex-1] + 1 + } + colIndex := index - previousLineEnd + return Position{Index: index, Line: lineIndex, Col: colIndex} +} + +// Index returns the current character index of the parser input. +func (in *Input) Index() int { + return in.charIndex +} + +// Seek to a position in the string. +func (in *Input) Seek(index int) (ok bool) { + if index < 0 || index > len(in.s) { + return + } + in.charIndex = index + return true +} diff --git a/vendor/github.com/a-h/parse/optional.go b/vendor/github.com/a-h/parse/optional.go new file mode 100644 index 0000000..5c28e41 --- /dev/null +++ b/vendor/github.com/a-h/parse/optional.go @@ -0,0 +1,26 @@ +package parse + +type optionalParser[T any] struct { + Parser Parser[T] + Insensitive bool +} + +func (p optionalParser[T]) Parse(in *Input) (match Match[T], ok bool, err error) { + match.Value, match.OK, err = p.Parser.Parse(in) + if err != nil { + return + } + return match, true, nil +} + +type Match[T any] struct { + Value T + OK bool +} + +// Optional converts the given parser into an optional parser. +func Optional[T any](parser Parser[T]) Parser[Match[T]] { + return optionalParser[T]{ + Parser: parser, + } +} diff --git a/vendor/github.com/a-h/parse/or.go b/vendor/github.com/a-h/parse/or.go new file mode 100644 index 0000000..8a15e54 --- /dev/null +++ b/vendor/github.com/a-h/parse/or.go @@ -0,0 +1,37 @@ +package parse + +type orParser[A any, B any] struct { + A Parser[A] + B Parser[B] +} + +func (p orParser[A, B]) Parse(in *Input) (match Tuple2[Match[A], Match[B]], ok bool, err error) { + match.A.Value, match.A.OK, err = p.A.Parse(in) + if err != nil { + return + } + if match.A.OK { + ok = true + return + } + + match.B.Value, match.B.OK, err = p.B.Parse(in) + if err != nil { + return + } + if match.B.OK { + ok = true + return + } + + return +} + +// Or returns a success if either a or b can be parsed. +// If both a and b match, a takes precedence. +func Or[A any, B any](a Parser[A], b Parser[B]) Parser[Tuple2[Match[A], Match[B]]] { + return orParser[A, B]{ + A: a, + B: b, + } +} diff --git a/vendor/github.com/a-h/parse/regexp.go b/vendor/github.com/a-h/parse/regexp.go new file mode 100644 index 0000000..66c49b4 --- /dev/null +++ b/vendor/github.com/a-h/parse/regexp.go @@ -0,0 +1,46 @@ +package parse + +import ( + "regexp" +) + +type regexpParser struct { + Expression *regexp.Regexp +} + +func (p regexpParser) Parse(in *Input) (match string, ok bool, err error) { + remainder, ok := in.Peek(-1) + if !ok { + return + } + startAndEndIndex := p.Expression.FindStringIndex(remainder) + ok = startAndEndIndex != nil && startAndEndIndex[0] == 0 + if !ok { + return + } + match = remainder[startAndEndIndex[0]:startAndEndIndex[1]] + in.Take(len(match)) + return +} + +// Regexp creates a parser that parses from the input's current position, or fails. +func Regexp(exp string) (p Parser[string], err error) { + r, err := regexp.Compile(exp) + if err != nil { + return + } + p = regexpParser{ + Expression: r, + } + return +} + +// MustRegexp creates a parse that parses from the input's current position. +// Passing in a regular expression that doesn't compile will result in a panic. +func MustRegexp(exp string) (p Parser[string]) { + p, err := Regexp(exp) + if err != nil { + panic(err) + } + return +} diff --git a/vendor/github.com/a-h/parse/rune.go b/vendor/github.com/a-h/parse/rune.go new file mode 100644 index 0000000..fd36440 --- /dev/null +++ b/vendor/github.com/a-h/parse/rune.go @@ -0,0 +1,58 @@ +package parse + +import ( + "strings" + "unicode" +) + +// Rune matches a single rune. +func Rune(r rune) Parser[string] { + return stringParser{ + Match: string(r), + } +} + +type runeWhereParser struct { + F func(r rune) bool +} + +func (p runeWhereParser) Parse(in *Input) (match string, ok bool, err error) { + match, ok = in.Peek(1) + if !ok { + return + } + ok = p.F(rune(match[0])) + if !ok { + return + } + in.Take(1) + return +} + +// RuneWhere matches a single rune using the given predicate function. +func RuneWhere(predicate func(r rune) bool) Parser[string] { + return runeWhereParser{ + F: predicate, + } +} + +// RuneIn matches a single rune when the rune is in the string s. +func RuneIn(s string) Parser[string] { + return RuneWhere(func(r rune) bool { return strings.Contains(s, string(r)) }) +} + +// RuneNotIn matches a single rune when the rune is not in the string s. +func RuneNotIn(s string) Parser[string] { + return RuneWhere(func(r rune) bool { return !strings.Contains(s, string(r)) }) +} + +// RuneInRanges matches a single rune when the rune is withig one of the given Unicode ranges. +func RuneInRanges(ranges ...*unicode.RangeTable) Parser[string] { + return RuneWhere(func(r rune) bool { return unicode.IsOneOf(ranges, r) }) +} + +// AnyRune matches any single rune. +var AnyRune = RuneWhere(func(r rune) bool { return true }) + +// Letter returns a parser which accepts a rune within the Letter Unicode range. +var Letter = RuneInRanges(unicode.Letter) diff --git a/vendor/github.com/a-h/parse/sequenceof2.go b/vendor/github.com/a-h/parse/sequenceof2.go new file mode 100644 index 0000000..8f31580 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof2.go @@ -0,0 +1,27 @@ +package parse + +type sequenceOf2Parser[A, B any] struct { + A Parser[A] + B Parser[B] +} + +func (p sequenceOf2Parser[A, B]) Parse(in *Input) (match Tuple2[A, B], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf2[A, B any](a Parser[A], b Parser[B]) Parser[Tuple2[A, B]] { + return sequenceOf2Parser[A, B]{ + A: a, + B: b, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof3.go b/vendor/github.com/a-h/parse/sequenceof3.go new file mode 100644 index 0000000..3c298a6 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof3.go @@ -0,0 +1,35 @@ +package parse + +type sequenceOf3Parser[A, B, C any] struct { + A Parser[A] + B Parser[B] + C Parser[C] +} + +func (p sequenceOf3Parser[A, B, C]) Parse(in *Input) (match Tuple3[A, B, C], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf3[A, B, C any](a Parser[A], b Parser[B], c Parser[C]) Parser[Tuple3[A, B, C]] { + return sequenceOf3Parser[A, B, C]{ + A: a, + B: b, + C: c, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof4.go b/vendor/github.com/a-h/parse/sequenceof4.go new file mode 100644 index 0000000..beeb04c --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof4.go @@ -0,0 +1,41 @@ +package parse + +type sequenceOf4Parser[A, B, C, D any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] +} + +func (p sequenceOf4Parser[A, B, C, D]) Parse(in *Input) (match Tuple4[A, B, C, D], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf4[A, B, C, D any](a Parser[A], b Parser[B], c Parser[C], d Parser[D]) Parser[Tuple4[A, B, C, D]] { + return sequenceOf4Parser[A, B, C, D]{ + A: a, + B: b, + C: c, + D: d, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof5.go b/vendor/github.com/a-h/parse/sequenceof5.go new file mode 100644 index 0000000..c4eb5e9 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof5.go @@ -0,0 +1,48 @@ +package parse + +type sequenceOf5Parser[A, B, C, D, E any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] + E Parser[E] +} + +func (p sequenceOf5Parser[A, B, C, D, E]) Parse(in *Input) (match Tuple5[A, B, C, D, E], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.E, ok, err = p.E.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf5[A, B, C, D, E any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E]) Parser[Tuple5[A, B, C, D, E]] { + return sequenceOf5Parser[A, B, C, D, E]{ + A: a, + B: b, + C: c, + D: d, + E: e, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof6.go b/vendor/github.com/a-h/parse/sequenceof6.go new file mode 100644 index 0000000..6aca462 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof6.go @@ -0,0 +1,55 @@ +package parse + +type sequenceOf6Parser[A, B, C, D, E, F any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] + E Parser[E] + F Parser[F] +} + +func (p sequenceOf6Parser[A, B, C, D, E, F]) Parse(in *Input) (match Tuple6[A, B, C, D, E, F], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.E, ok, err = p.E.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.F, ok, err = p.F.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf6[A, B, C, D, E, F any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F]) Parser[Tuple6[A, B, C, D, E, F]] { + return sequenceOf6Parser[A, B, C, D, E, F]{ + A: a, + B: b, + C: c, + D: d, + E: e, + F: f, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof7.go b/vendor/github.com/a-h/parse/sequenceof7.go new file mode 100644 index 0000000..29cc9c4 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof7.go @@ -0,0 +1,62 @@ +package parse + +type sequenceOf7Parser[A, B, C, D, E, F, G any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] + E Parser[E] + F Parser[F] + G Parser[G] +} + +func (p sequenceOf7Parser[A, B, C, D, E, F, G]) Parse(in *Input) (match Tuple7[A, B, C, D, E, F, G], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.E, ok, err = p.E.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.F, ok, err = p.F.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.G, ok, err = p.G.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf7[A, B, C, D, E, F, G any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G]) Parser[Tuple7[A, B, C, D, E, F, G]] { + return sequenceOf7Parser[A, B, C, D, E, F, G]{ + A: a, + B: b, + C: c, + D: d, + E: e, + F: f, + G: g, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof8.go b/vendor/github.com/a-h/parse/sequenceof8.go new file mode 100644 index 0000000..80e5fc2 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof8.go @@ -0,0 +1,69 @@ +package parse + +type sequenceOf8Parser[A, B, C, D, E, F, G, H any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] + E Parser[E] + F Parser[F] + G Parser[G] + H Parser[H] +} + +func (p sequenceOf8Parser[A, B, C, D, E, F, G, H]) Parse(in *Input) (match Tuple8[A, B, C, D, E, F, G, H], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.E, ok, err = p.E.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.F, ok, err = p.F.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.G, ok, err = p.G.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.H, ok, err = p.H.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf8[A, B, C, D, E, F, G, H any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G], h Parser[H]) Parser[Tuple8[A, B, C, D, E, F, G, H]] { + return sequenceOf8Parser[A, B, C, D, E, F, G, H]{ + A: a, + B: b, + C: c, + D: d, + E: e, + F: f, + G: g, + H: h, + } +} diff --git a/vendor/github.com/a-h/parse/sequenceof9.go b/vendor/github.com/a-h/parse/sequenceof9.go new file mode 100644 index 0000000..6edcab1 --- /dev/null +++ b/vendor/github.com/a-h/parse/sequenceof9.go @@ -0,0 +1,76 @@ +package parse + +type sequenceOf9Parser[A, B, C, D, E, F, G, H, I any] struct { + A Parser[A] + B Parser[B] + C Parser[C] + D Parser[D] + E Parser[E] + F Parser[F] + G Parser[G] + H Parser[H] + I Parser[I] +} + +func (p sequenceOf9Parser[A, B, C, D, E, F, G, H, I]) Parse(in *Input) (match Tuple9[A, B, C, D, E, F, G, H, I], ok bool, err error) { + start := in.Index() + match.A, ok, err = p.A.Parse(in) + if err != nil || !ok { + return + } + match.B, ok, err = p.B.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.C, ok, err = p.C.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.D, ok, err = p.D.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.E, ok, err = p.E.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.F, ok, err = p.F.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.G, ok, err = p.G.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.H, ok, err = p.H.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + match.I, ok, err = p.I.Parse(in) + if err != nil || !ok { + in.Seek(start) + return + } + return +} + +func SequenceOf9[A, B, C, D, E, F, G, H, I any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G], h Parser[H], i Parser[I]) Parser[Tuple9[A, B, C, D, E, F, G, H, I]] { + return sequenceOf9Parser[A, B, C, D, E, F, G, H, I]{ + A: a, + B: b, + C: c, + D: d, + E: e, + F: f, + G: g, + H: h, + I: i, + } +} diff --git a/vendor/github.com/a-h/parse/string.go b/vendor/github.com/a-h/parse/string.go new file mode 100644 index 0000000..e194b67 --- /dev/null +++ b/vendor/github.com/a-h/parse/string.go @@ -0,0 +1,40 @@ +package parse + +import "strings" + +type stringParser struct { + Match string + Insensitive bool +} + +func (p stringParser) Parse(in *Input) (match string, ok bool, err error) { + match, ok = in.Peek(len(p.Match)) + if !ok { + return + } + if p.Insensitive { + ok = strings.EqualFold(p.Match, match) + } else { + ok = p.Match == match + } + if !ok { + return "", false, nil + } + in.Take(len(p.Match)) + return +} + +// String matches a given string constant. +func String(s string) Parser[string] { + return stringParser{ + Match: s, + } +} + +// StringInsensitive matches a given string constant using Unicode case folding. +func StringInsensitive(s string) Parser[string] { + return stringParser{ + Match: s, + Insensitive: true, + } +} diff --git a/vendor/github.com/a-h/parse/stringfrom.go b/vendor/github.com/a-h/parse/stringfrom.go new file mode 100644 index 0000000..8984262 --- /dev/null +++ b/vendor/github.com/a-h/parse/stringfrom.go @@ -0,0 +1,30 @@ +package parse + +type stringFromParser[T any] struct { + Parsers []Parser[T] +} + +func (p stringFromParser[T]) Parse(in *Input) (match string, ok bool, err error) { + start := in.Index() + for _, parser := range p.Parsers { + _, ok, err = parser.Parse(in) + if err != nil { + return + } + if !ok { + in.Seek(start) + return + } + } + end := in.Index() + in.Seek(start) + match, ok = in.Take(end - start) + return +} + +// StringFrom returns the string range captured by the given parsers. +func StringFrom[T any](parsers ...Parser[T]) Parser[string] { + return stringFromParser[T]{ + Parsers: parsers, + } +} diff --git a/vendor/github.com/a-h/parse/stringuntil.go b/vendor/github.com/a-h/parse/stringuntil.go new file mode 100644 index 0000000..b2f77cb --- /dev/null +++ b/vendor/github.com/a-h/parse/stringuntil.go @@ -0,0 +1,49 @@ +package parse + +type stringUntilParser[T any] struct { + Delimiter Parser[T] + AllowEOF bool +} + +func (p stringUntilParser[T]) Parse(in *Input) (match string, ok bool, err error) { + start := in.Index() + for { + beforeDelimiter := in.Index() + _, ok, err = p.Delimiter.Parse(in) + if err != nil { + in.Seek(start) + return + } + if ok { + in.Seek(beforeDelimiter) + break + } + _, chompOK := in.Take(1) + if !chompOK { + if p.AllowEOF { + break + } + in.Seek(start) + return "", false, nil + } + } + end := in.Index() + in.Seek(start) + match, ok = in.Take(end - start) + return +} + +// StringUntil matches until the delimiter is reached. +func StringUntil[T any](delimiter Parser[T]) Parser[string] { + return stringUntilParser[T]{ + Delimiter: delimiter, + } +} + +// StringUntilEOF matches until the delimiter or the end of the file is reached. +func StringUntilEOF[T any](delimiter Parser[T]) Parser[string] { + return stringUntilParser[T]{ + Delimiter: delimiter, + AllowEOF: true, + } +} diff --git a/vendor/github.com/a-h/parse/then.go b/vendor/github.com/a-h/parse/then.go new file mode 100644 index 0000000..8b04228 --- /dev/null +++ b/vendor/github.com/a-h/parse/then.go @@ -0,0 +1,9 @@ +package parse + +// Then matches a sequence of two parsers. For multiples of the same type, use Times, Repeat, AtLeast, AtMost, ZeroOrMore, OneOrMore. +func Then[A any, B any](a Parser[A], b Parser[B]) Parser[Tuple2[A, B]] { + return sequenceOf2Parser[A, B]{ + A: a, + B: b, + } +} diff --git a/vendor/github.com/a-h/parse/times.go b/vendor/github.com/a-h/parse/times.go new file mode 100644 index 0000000..2cda33f --- /dev/null +++ b/vendor/github.com/a-h/parse/times.go @@ -0,0 +1,83 @@ +package parse + +type timesParser[T any] struct { + P Parser[T] + Min int + Max func(i int) bool +} + +func (p timesParser[T]) Parse(in *Input) (match []T, ok bool, err error) { + start := in.Index() + for i := 0; p.Max(i); i++ { + var m T + m, ok, err = p.P.Parse(in) + if err != nil { + return match, false, err + } + if !ok { + break + } + match = append(match, m) + } + ok = len(match) >= p.Min && p.Max(len(match)-1) + if !ok { + in.Seek(start) + return match, false, nil + } + return match, true, nil +} + +// Times matches the given parser n times. +func Times[T any](n int, p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: n, + Max: func(i int) bool { return i < n }, + } +} + +// Repeat matches the given parser between min and max times. +func Repeat[T any](min, max int, p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: min, + Max: func(i int) bool { return i < max }, + } +} + +// AtLeast matches the given parser at least min times. +func AtLeast[T any](min int, p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: min, + Max: func(i int) bool { return true }, + } +} + +// AtMost matches the given parser at most max times. +// It is equivalent to ZeroOrMore. +func AtMost[T any](max int, p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: 0, + Max: func(i int) bool { return i < max }, + } +} + +// ZeroOrMore matches the given parser zero or more times. +func ZeroOrMore[T any](p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: 0, + Max: func(i int) bool { return true }, + } +} + +// OneOrMore matches the given parser at least once. +func OneOrMore[T any](p Parser[T]) Parser[[]T] { + return timesParser[T]{ + P: p, + Min: 1, + Max: func(i int) bool { return true }, + } +} diff --git a/vendor/github.com/a-h/parse/tuples.go b/vendor/github.com/a-h/parse/tuples.go new file mode 100644 index 0000000..cb4e39d --- /dev/null +++ b/vendor/github.com/a-h/parse/tuples.go @@ -0,0 +1,69 @@ +package parse + +type Tuple2[A, B any] struct { + A A + B B +} + +type Tuple3[A, B, C any] struct { + A A + B B + C C +} + +type Tuple4[A, B, C, D any] struct { + A A + B B + C C + D D +} + +type Tuple5[A, B, C, D, E any] struct { + A A + B B + C C + D D + E E +} + +type Tuple6[A, B, C, D, E, F any] struct { + A A + B B + C C + D D + E E + F F +} + +type Tuple7[A, B, C, D, E, F, G any] struct { + A A + B B + C C + D D + E E + F F + G G +} + +type Tuple8[A, B, C, D, E, F, G, H any] struct { + A A + B B + C C + D D + E E + F F + G G + H H +} + +type Tuple9[A, B, C, D, E, F, G, H, I any] struct { + A A + B B + C C + D D + E E + F F + G G + H H + I I +} diff --git a/vendor/github.com/a-h/parse/types.go b/vendor/github.com/a-h/parse/types.go new file mode 100644 index 0000000..b500fdc --- /dev/null +++ b/vendor/github.com/a-h/parse/types.go @@ -0,0 +1,33 @@ +package parse + +import "fmt" + +type Position struct { + Index, Line, Col int +} + +func (pos Position) String() string { + // The line number is 0-based, but text editors are usually 1-based. + // So the number is incremented by 1 for display. + return fmt.Sprintf("line %d, col %d", pos.Line+1, pos.Col) +} + +type pf[T any] struct { + f func(in *Input) (item T, ok bool, err error) +} + +func (p pf[T]) Parse(in *Input) (item T, ok bool, err error) { + return p.f(in) +} + +// Func creates a parser from an input function. +func Func[T any](f func(in *Input) (item T, ok bool, err error)) Parser[T] { + return pf[T]{ + f: f, + } +} + +// Parser is implemented by all parsers. +type Parser[T any] interface { + Parse(in *Input) (item T, ok bool, err error) +} diff --git a/vendor/github.com/a-h/parse/until.go b/vendor/github.com/a-h/parse/until.go new file mode 100644 index 0000000..2d91a5e --- /dev/null +++ b/vendor/github.com/a-h/parse/until.go @@ -0,0 +1,68 @@ +package parse + +type untilParser[T, D any] struct { + Parser Parser[T] + Delimiter Parser[D] + AllowEOF bool +} + +func (p untilParser[T, D]) Parse(in *Input) (match []T, ok bool, err error) { + start := in.Index() + if _, ok = in.Peek(1); !ok && p.AllowEOF { + ok = true + return + } + var m T + m, ok, err = p.Parser.Parse(in) + if err != nil { + return + } + if !ok { + return + } + match = append(match, m) + for { + beforeDelimiter := in.Index() + _, ok, err = p.Delimiter.Parse(in) + if err != nil { + in.Seek(start) + return + } + if ok { + in.Seek(beforeDelimiter) + return + } + if _, ok = in.Peek(1); !ok && p.AllowEOF { + ok = true + return + } + var m T + m, ok, err = p.Parser.Parse(in) + if err != nil { + in.Seek(start) + return + } + if !ok { + in.Seek(start) + return + } + match = append(match, m) + } +} + +// Until matches until the delimiter is reached. +func Until[T, D any](parser Parser[T], delimiter Parser[D]) Parser[[]T] { + return untilParser[T, D]{ + Parser: parser, + Delimiter: delimiter, + } +} + +// UntilEOF matches until the delimiter or the end of the file is reached. +func UntilEOF[T, D any](parser Parser[T], delimiter Parser[D]) Parser[[]T] { + return untilParser[T, D]{ + Parser: parser, + Delimiter: delimiter, + AllowEOF: true, + } +} diff --git a/vendor/github.com/a-h/parse/whitespace.go b/vendor/github.com/a-h/parse/whitespace.go new file mode 100644 index 0000000..5f92f4f --- /dev/null +++ b/vendor/github.com/a-h/parse/whitespace.go @@ -0,0 +1,29 @@ +package parse + +import ( + "unicode" +) + +// Whitespace parses whitespace. +var Whitespace Parser[string] = StringFrom(OneOrMore(RuneInRanges(unicode.White_Space))) + +// OptionalWhitespace parses optional whitespace. +var OptionalWhitespace = Func(func(in *Input) (output string, ok bool, err error) { + output, ok, err = Whitespace.Parse(in) + if err != nil { + return + } + return output, true, nil +}) + +// CR is a carriage return. +var CR = Rune('\r') + +// CR parses a line feed, used by Unix systems as the newline. +var LF = Rune('\n') + +// CRLF parses a carriage returned, followed by a line feed, used by Windows systems as the newline. +var CRLF = String("\r\n") + +// NewLine matches either a Windows or Unix line break character. +var NewLine = Any(CRLF, LF) diff --git a/vendor/github.com/a-h/templ/.dockerignore b/vendor/github.com/a-h/templ/.dockerignore new file mode 100644 index 0000000..17896fe --- /dev/null +++ b/vendor/github.com/a-h/templ/.dockerignore @@ -0,0 +1,3 @@ +.git +Dockerfile +.dockerignore diff --git a/vendor/github.com/a-h/templ/.envrc b/vendor/github.com/a-h/templ/.envrc new file mode 100644 index 0000000..8392d15 --- /dev/null +++ b/vendor/github.com/a-h/templ/.envrc @@ -0,0 +1 @@ +use flake \ No newline at end of file diff --git a/vendor/github.com/a-h/templ/.gitignore b/vendor/github.com/a-h/templ/.gitignore new file mode 100644 index 0000000..8318e77 --- /dev/null +++ b/vendor/github.com/a-h/templ/.gitignore @@ -0,0 +1,36 @@ +# Output. +cmd/templ/templ + +# Logs. +cmd/templ/lspcmd/*log.txt + +# Go code coverage. +coverage.out +coverage + +# Mac filesystem jank. +.DS_Store + +# Docusaurus. +docs/build/ +docs/resources/_gen/ +node_modules/ +dist/ + +# Nix artifacts. +result + +# Editors +## nvim +.null-ls* +# vscode +.vscode/ + +# Go workspace. +go.work + +# direnv +.direnv + +# templ txt files. +*_templ.txt diff --git a/vendor/github.com/a-h/templ/.goreleaser.yaml b/vendor/github.com/a-h/templ/.goreleaser.yaml new file mode 100644 index 0000000..456187c --- /dev/null +++ b/vendor/github.com/a-h/templ/.goreleaser.yaml @@ -0,0 +1,72 @@ +builds: + - env: + - CGO_ENABLED=0 + dir: cmd/templ + mod_timestamp: '{{ .CommitTimestamp }}' + flags: + - -trimpath + ldflags: + - -s -w + goos: + - linux + - windows + - darwin + +checksum: + name_template: 'checksums.txt' + +signs: + - id: checksums + cmd: cosign + stdin: '{{ .Env.COSIGN_PASSWORD }}' + output: true + artifacts: checksum + args: + - sign-blob + - --yes + - --key + - env://COSIGN_PRIVATE_KEY + - '--output-certificate=${certificate}' + - '--output-signature=${signature}' + - '${artifact}' + +archives: + - format: tar.gz + name_template: >- + {{ .ProjectName }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + {{- if .Arm }}v{{ .Arm }}{{ end }} + +kos: + - repository: ghcr.io/a-h/templ + platforms: + - linux/amd64 + - linux/arm64 + tags: + - latest + - '{{.Tag}}' + bare: true + +docker_signs: + - cmd: cosign + artifacts: all + output: true + args: + - sign + - --yes + - --key + - env://COSIGN_PRIVATE_KEY + - '${artifact}' + +snapshot: + name_template: "{{ incpatch .Version }}-next" + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' diff --git a/vendor/github.com/a-h/templ/.ignore b/vendor/github.com/a-h/templ/.ignore new file mode 100644 index 0000000..9377535 --- /dev/null +++ b/vendor/github.com/a-h/templ/.ignore @@ -0,0 +1,9 @@ +*_templ.go +examples/integration-ct/static/index.js +examples/counter/assets/css/bulma.* +examples/counter/assets/js/htmx.min.js +examples/counter-basic/assets/css/bulma.* +examples/typescript/assets/index.js +package-lock.json +go.sum +docs/static/llms.md diff --git a/vendor/github.com/a-h/templ/.version b/vendor/github.com/a-h/templ/.version new file mode 100644 index 0000000..a127cf0 --- /dev/null +++ b/vendor/github.com/a-h/templ/.version @@ -0,0 +1 @@ +0.3.960 \ No newline at end of file diff --git a/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md b/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..08340d3 --- /dev/null +++ b/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +adrianhesketh@hushail.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/vendor/github.com/a-h/templ/CONTRIBUTING.md b/vendor/github.com/a-h/templ/CONTRIBUTING.md new file mode 100644 index 0000000..2726471 --- /dev/null +++ b/vendor/github.com/a-h/templ/CONTRIBUTING.md @@ -0,0 +1,247 @@ +# Contributing to templ + +## Vision + +Enable Go developers to build strongly typed, component-based HTML user interfaces with first-class developer tooling, and a short learning curve. + +## Come up with a design and share it + +Before starting work on any major pull requests or code changes, start a discussion at https://github.com/a-h/templ/discussions or raise an issue. + +We don't want you to spend time on a PR or feature that ultimately doesn't get merged because it doesn't fit with the project goals, or the design doesn't work for some reason. + +For issues, it really helps if you provide a reproduction repo, or can create a failing unit test to describe the behaviour. + +In designs, we need to consider: + +* Backwards compatibility - Not changing the public API between releases, introducing gradual deprecation - don't break people's code. +* Correctness over time - How can we reduce the risk of defects both now, and in future releases? +* Threat model - How could each change be used to inject vulnerabilities into web pages? +* Go version - We target the oldest supported version of Go as per https://go.dev/doc/devel/release +* Automatic migration - If we need to force through a change. +* Compile time vs runtime errors - Prefer compile time. +* Documentation - New features are only useful if people can understand the new feature, what would the documentation look like? +* Examples - How will we demonstrate the feature? + +## Project structure + +templ is structured into a few areas: + +### Parser `./parser` + +The parser directory currently contains both v1 and v2 parsers. + +The v1 parser is not maintained, it's only used to migrate v1 code over to the v2 syntax. + +The parser is responsible for parsing templ files into an object model. The types that make up the object model are in `types.go`. Automatic formatting of the types is tested in `types_test.go`. + +A templ file is parsed into the `TemplateFile` struct object model. + +```go +type TemplateFile struct { + // Header contains comments or whitespace at the top of the file. + Header []GoExpression + // Package expression. + Package Package + // Nodes in the file. + Nodes []TemplateFileNode +} +``` + +Parsers are individually tested using two types of unit test. + +One test covers the successful parsing of text into an object. For example, the `HTMLCommentParser` test checks for successful patterns. + +```go +func TestHTMLCommentParser(t *testing.T) { + var tests = []struct { + name string + input string + expected HTMLComment + }{ + { + name: "comment - single line", + input: ``, + expected: HTMLComment{ + Contents: " single line comment ", + }, + }, + { + name: "comment - no whitespace", + input: ``, + expected: HTMLComment{ + Contents: "no whitespace between sequence open and close", + }, + }, + { + name: "comment - multiline", + input: ``, + expected: HTMLComment{ + Contents: ` multiline + comment + `, + }, + }, + { + name: "comment - with tag", + input: ``, + expected: HTMLComment{ + Contents: `

tag

`, + }, + }, + { + name: "comments can contain tags", + input: ``, + expected: HTMLComment{ + Contents: `
hello world
`, + }, + }, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + input := parse.NewInput(tt.input) + result, ok, err := htmlComment.Parse(input) + if err != nil { + t.Fatalf("parser error: %v", err) + } + if !ok { + t.Fatalf("failed to parse at %d", input.Index()) + } + if diff := cmp.Diff(tt.expected, result); diff != "" { + t.Errorf(diff) + } + }) + } +} +``` + +Alongside each success test, is a similar test to check that invalid syntax is detected. + +```go +func TestHTMLCommentParserErrors(t *testing.T) { + var tests = []struct { + name string + input string + expected error + }{ + { + name: "unclosed HTML comment", + input: `' not found", + parse.Position{ + Index: 26, + Line: 0, + Col: 26, + }), + }, + { + name: "comment in comment", + input: ` -->`, + expected: parse.Error("comment contains invalid sequence '--'", parse.Position{ + Index: 8, + Line: 0, + Col: 8, + }), + }, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + input := parse.NewInput(tt.input) + _, _, err := htmlComment.Parse(input) + if diff := cmp.Diff(tt.expected, err); diff != "" { + t.Error(diff) + } + }) + } +} +``` + +### Generator + +The generator takes the object model and writes out Go code that produces the expected output. Any changes to Go code output by templ are made in this area. + +Testing of the generator is carried out by creating a templ file, and a matching expected output file. + +For example, `./generator/test-a-href` contains a templ file of: + +```templ +package testahref + +templ render() { + Ignored + Sanitized + Unsanitized +} +``` + +It also contains an expected output file. + +```html +Ignored +Sanitized +Unsanitized +``` + +These tests contribute towards the code coverage metrics by building an instrumented test CLI program. See the `test-cover` task in the `README.md` file. + +### CLI + +The command line interface for templ is used to generate Go code from templ files, format templ files, and run the LSP. + +The code for this is at `./cmd/templ`. + +Testing of the templ command line is done with unit tests to check the argument parsing. + +The `templ generate` command is tested by generating templ files in the project, and testing that the expected output HTML is present. + +### Runtime + +The runtime is used by generated code, and by template authors, to serve template content over HTTP, and to carry out various operations. + +It is in the root directory of the project at `./runtime.go`. The runtime is unit tested, as well as being tested as part of the `generate` tests. + +### LSP + +The LSP is structured within the command line interface, and proxies commands through to the `gopls` LSP. + +### Docs + +The docs are a Docusaurus project at `./docs`. + +## Coding + +### Build tasks + +templ uses the `xc` task runner - https://github.com/joerdav/xc + +If you run `xc` you can get see a list of the development tasks that can be run, or you can read the `README.md` file and see the `Tasks` section. + +The most useful tasks for local development are: + +* `install-snapshot` - this builds the templ CLI and installs it into `~/bin`. Ensure that this is in your path. +* `test` - this regenerates all templates, and runs the unit tests. +* `fmt` - run the `gofmt` tool to format all Go code. +* `lint` - run the same linting as run in the CI process. +* `docs-run` - run the Docusaurus documentation site. + +### Commit messages + +The project using https://www.conventionalcommits.org/en/v1.0.0/ + +Examples: + +* `feat: support Go comments in templates, fixes #234"` + +### Coding style + +* Reduce nesting - i.e. prefer early returns over an `else` block, as per https://danp.net/posts/reducing-go-nesting/ or https://go.dev/doc/effective_go#if +* Use line breaks to separate "paragraphs" of code - don't use line breaks in between lines, or at the start/end of functions etc. +* Use the `fmt` and `lint` build tasks to format and lint your code before submitting a PR. + +### LLM instructions + +See additional coding standards at `.github/copilot-instructions.md` diff --git a/vendor/github.com/a-h/templ/LICENSE b/vendor/github.com/a-h/templ/LICENSE new file mode 100644 index 0000000..15e6fb8 --- /dev/null +++ b/vendor/github.com/a-h/templ/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Adrian Hesketh + +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/a-h/templ/README.md b/vendor/github.com/a-h/templ/README.md new file mode 100644 index 0000000..9bb25e6 --- /dev/null +++ b/vendor/github.com/a-h/templ/README.md @@ -0,0 +1,194 @@ +![templ](https://github.com/a-h/templ/raw/main/templ.png) + +## An HTML templating language for Go that has great developer tooling. + +![templ](ide-demo.gif) + + +## Documentation + +See user documentation at https://templ.guide + +

+Go Reference +xc compatible +Go Coverage +Go Report Card +

+ +## Tasks + +### version-set + +Set the version of templ to the current version. + +```sh +version set --template="0.3.%d" +``` + +### build + +Build a local version. + +```sh +version set --template="0.3.%d" +cd cmd/templ +go build +``` + +### install-snapshot + +Build and install current version. + +```sh +# Remove templ from the non-standard ~/bin/templ path +# that this command previously used. +rm -f ~/bin/templ +# Clear LSP logs. +rm -f cmd/templ/lspcmd/*.txt +# Update version. +version set --template="0.3.%d" +# Install to $GOPATH/bin or $HOME/go/bin +cd cmd/templ && go install +``` + +### build-snapshot + +Use goreleaser to build the command line binary using goreleaser. + +```sh +goreleaser build --snapshot --clean +``` + +### generate + +Run templ generate using local version. + +```sh +go run ./cmd/templ generate -include-version=false +``` + +### test + +Run Go tests. + +```sh +version set --template="0.3.%d" +go run ./cmd/templ generate -include-version=false +go test ./... +``` + +### test-short + +Run Go tests. + +```sh +version set --template="0.3.%d" +go run ./cmd/templ generate -include-version=false +go test ./... -short +``` + +### test-cover + +Run Go tests. + +```sh +# Create test profile directories. +mkdir -p coverage/fmt +mkdir -p coverage/generate +mkdir -p coverage/version +mkdir -p coverage/unit +# Build the test binary. +go build -cover -o ./coverage/templ-cover ./cmd/templ +# Run the covered generate command. +GOCOVERDIR=coverage/fmt ./coverage/templ-cover fmt . +GOCOVERDIR=coverage/generate ./coverage/templ-cover generate -include-version=false +GOCOVERDIR=coverage/version ./coverage/templ-cover version +# Run the unit tests. +go test -cover ./... -coverpkg ./... -args -test.gocoverdir="$PWD/coverage/unit" +# Display the combined percentage. +go tool covdata percent -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit +# Generate a text coverage profile for tooling to use. +go tool covdata textfmt -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit -o coverage.out +# Print total +go tool cover -func coverage.out | grep total +``` + +### test-cover-watch + +interactive: true + +```sh +gotestsum --watch -- -coverprofile=coverage.out +``` + +### test-fuzz + +```sh +./parser/v2/fuzz.sh +./parser/v2/goexpression/fuzz.sh +``` + +### benchmark + +Run benchmarks. + +```sh +go run ./cmd/templ generate -include-version=false && go test ./... -bench=. -benchmem +``` + +### fmt + +Format all Go and templ code. + +```sh +gofmt -s -w . +go run ./cmd/templ fmt . +``` + +### lint + +Run the lint operations that are run as part of the CI. + +```sh +golangci-lint run --verbose +``` + +### ensure-generated + +Ensure that templ files have been generated with the local version of templ, and that those files have been added to git. + +Requires: generate + +```sh +git diff --exit-code +``` + +### push-release-tag + +Push a semantic version number to GitHub to trigger the release process. + +```sh +version push --template="0.3.%d" --prefix="v" +``` + +### docs-run + +Run the development server. + +Directory: docs + +```sh +npm run start +``` + +### docs-build + +Build production docs site. + +Directory: docs + +```sh +npm run build +``` + diff --git a/vendor/github.com/a-h/templ/SECURITY.md b/vendor/github.com/a-h/templ/SECURITY.md new file mode 100644 index 0000000..e8c820e --- /dev/null +++ b/vendor/github.com/a-h/templ/SECURITY.md @@ -0,0 +1,9 @@ +# Security Policy + +## Supported Versions + +The latest version of templ is supported. + +## Reporting a Vulnerability + +Use the "Security" tab in GitHub and fill out the "Report a vulnerability" form. diff --git a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go new file mode 100644 index 0000000..0fa5c19 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go @@ -0,0 +1,132 @@ +package fmtcmd + +import ( + "bytes" + "errors" + "fmt" + "io" + "log/slog" + "os" + "runtime" + "time" + + "github.com/a-h/templ/cmd/templ/processor" + "github.com/a-h/templ/internal/format" + "github.com/natefinch/atomic" +) + +type Arguments struct { + FailIfChanged bool + ToStdout bool + StdinFilepath string + Files []string + WorkerCount int + PrettierCommand string + PrettierRequired bool +} + +func Run(log *slog.Logger, stdin io.Reader, stdout io.Writer, args Arguments) (err error) { + // If no files are provided, read from stdin and write to stdout. + formatterConfig := format.Config{ + PrettierCommand: args.PrettierCommand, + PrettierRequired: args.PrettierRequired, + } + if len(args.Files) == 0 { + src, err := io.ReadAll(stdin) + if err != nil { + return fmt.Errorf("failed to read from stdin: %w", err) + } + formatted, _, err := format.Templ(src, args.StdinFilepath, formatterConfig) + if err != nil { + return fmt.Errorf("failed to format stdin: %w", err) + } + if _, err = stdout.Write(formatted); err != nil { + return fmt.Errorf("failed to write to stdout: %w", err) + } + return nil + } + // If files are provided, process each file. + process := func(fileName string) (error, bool) { + src, err := os.ReadFile(fileName) + if err != nil { + return fmt.Errorf("failed to read file %q: %w", fileName, err), false + } + formatted, changed, err := format.Templ(src, fileName, formatterConfig) + if err != nil { + return fmt.Errorf("failed to format file %q: %w", fileName, err), false + } + if !changed && !args.ToStdout { + return nil, false + } + if args.ToStdout { + if _, err := stdout.Write(formatted); err != nil { + return fmt.Errorf("failed to write to stdout: %w", err), false + } + return nil, true + } + if err := atomic.WriteFile(fileName, bytes.NewBuffer(formatted)); err != nil { + return fmt.Errorf("failed to write file %q: %w", fileName, err), false + } + return nil, true + } + dir := args.Files[0] + return NewFormatter(log, dir, process, args.WorkerCount, args.FailIfChanged).Run() +} + +type Formatter struct { + Log *slog.Logger + Dir string + Process func(fileName string) (error, bool) + WorkerCount int + FailIfChange bool +} + +func NewFormatter(log *slog.Logger, dir string, process func(fileName string) (error, bool), workerCount int, failIfChange bool) *Formatter { + f := &Formatter{ + Log: log, + Dir: dir, + Process: process, + WorkerCount: workerCount, + FailIfChange: failIfChange, + } + if f.WorkerCount == 0 { + f.WorkerCount = runtime.NumCPU() + } + return f +} + +func (f *Formatter) Run() (err error) { + var errs []error + changesMade := 0 + start := time.Now() + results := make(chan processor.Result) + f.Log.Debug("Walking directory", slog.String("path", f.Dir)) + go processor.Process(f.Dir, f.Process, f.WorkerCount, results) + var successCount, errorCount int + for r := range results { + if r.ChangesMade { + changesMade += 1 + } + if r.Error != nil { + f.Log.Error(r.FileName, slog.Any("error", r.Error)) + errorCount++ + errs = append(errs, r.Error) + continue + } + f.Log.Debug(r.FileName, slog.Duration("duration", r.Duration)) + successCount++ + } + + if f.FailIfChange && changesMade > 0 { + f.Log.Error("Templates were valid but not properly formatted", slog.Int("count", successCount+errorCount), slog.Int("changed", changesMade), slog.Int("errors", errorCount), slog.Duration("duration", time.Since(start))) + return fmt.Errorf("templates were not formatted properly") + } + + f.Log.Info("Format Complete", slog.Int("count", successCount+errorCount), slog.Int("errors", errorCount), slog.Int("changed", changesMade), slog.Duration("duration", time.Since(start))) + + if err = errors.Join(errs...); err != nil { + return fmt.Errorf("formatting failed: %w", err) + } + + return nil +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar new file mode 100644 index 0000000..a665b6a --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar @@ -0,0 +1,66 @@ +-- a.templ -- +package test + +templ a() { +

A +

+} +-- a.templ -- +package test + +templ a() { +
+

+ A +

+
+} +-- b.templ -- +package test + +templ b() { +

B +

+} +-- b.templ -- +package test + +templ b() { +
+

+ B +

+
+} +-- c.templ -- +package test + +templ c() { +
+

+ C +

+
+} +-- c.templ -- +package test + +templ c() { +
+

+ C +

+
+} +-- d.templ -- +package test + +templ c(s string) { +
+} +-- d.templ -- +package test + +templ c(s string) { +
+} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go new file mode 100644 index 0000000..4e991ad --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go @@ -0,0 +1,388 @@ +package generatecmd + +import ( + "context" + "errors" + "fmt" + "io/fs" + "log/slog" + "net/http" + "net/url" + "os" + "path" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/a-h/templ/internal/skipdir" + templruntime "github.com/a-h/templ/runtime" + "golang.org/x/sync/errgroup" + + "github.com/a-h/templ" + "github.com/a-h/templ/cmd/templ/generatecmd/modcheck" + "github.com/a-h/templ/cmd/templ/generatecmd/proxy" + "github.com/a-h/templ/cmd/templ/generatecmd/run" + "github.com/a-h/templ/cmd/templ/generatecmd/watcher" + "github.com/a-h/templ/generator" + "github.com/cenkalti/backoff/v4" + "github.com/cli/browser" + "github.com/fsnotify/fsnotify" +) + +func NewGenerate(log *slog.Logger, args Arguments) (g *Generate, err error) { + g = &Generate{ + Log: log, + Args: args, + } + return g, nil +} + +type Generate struct { + Log *slog.Logger + Args Arguments +} + +type GenerationEvent struct { + Event fsnotify.Event + WatchedFileUpdated bool + TemplFileTextUpdated bool + TemplFileGoUpdated bool +} + +func (cmd Generate) Run(ctx context.Context) (err error) { + if cmd.Args.NotifyProxy { + return proxy.NotifyProxy(cmd.Args.ProxyBind, cmd.Args.ProxyPort) + } + if cmd.Args.PPROFPort > 0 { + go func() { + _ = http.ListenAndServe(fmt.Sprintf("localhost:%d", cmd.Args.PPROFPort), nil) + }() + } + + // Use absolute path. + if !path.IsAbs(cmd.Args.Path) { + cmd.Args.Path, err = filepath.Abs(cmd.Args.Path) + if err != nil { + return fmt.Errorf("failed to get absolute path: %w", err) + } + } + + // Configure generator. + var opts []generator.GenerateOpt + if cmd.Args.IncludeVersion { + opts = append(opts, generator.WithVersion(templ.Version())) + } + if cmd.Args.IncludeTimestamp { + opts = append(opts, generator.WithTimestamp(time.Now())) + } + + // Check the version of the templ module. + if err := modcheck.Check(cmd.Args.Path); err != nil { + cmd.Log.Warn("templ version check: " + err.Error()) + } + + cmd.Log.Debug("Creating filesystem event handler") + fseh := NewFSEventHandler( + cmd.Log, + cmd.Args.Path, + cmd.Args.Watch, + opts, + cmd.Args.GenerateSourceMapVisualisations, + cmd.Args.KeepOrphanedFiles, + cmd.Args.FileWriter, + cmd.Args.Lazy, + ) + + // If we're processing a single file, don't bother setting up the channels/multithreaing. + if cmd.Args.FileName != "" { + _, err = fseh.HandleEvent(ctx, fsnotify.Event{ + Name: cmd.Args.FileName, + Op: fsnotify.Create, + }) + return err + } + + // Start timer. + start := time.Now() + + // For the initial filesystem walk and subsequent (optional) fsnotify events. + events := make(chan fsnotify.Event) + // For errs from the watcher. + errs := make(chan error) + + // Start process to push events into the events channel. + grp, ctx := errgroup.WithContext(ctx) + grp.Go(func() error { + defer close(events) + cmd.walkAndWatch(ctx, events, errs) + return nil + }) + + // For triggering actions after generation has completed. + postGeneration := make(chan *GenerationEvent, 256) + + // Start process to handle events. + grp.Go(func() error { + defer close(postGeneration) + cmd.handleEvents(ctx, events, errs, fseh, postGeneration) + return nil + }) + + // Start process to handle post-generation events. + var updates int + grp.Go(func() error { + defer close(errs) + updates, err = cmd.handlePostGenerationEvents(ctx, postGeneration) + return err + }) + + // Read errors. + var errorCount int + for err := range errs { + if err == nil { + continue + } + if errors.Is(err, FatalError{}) { + cmd.Log.Debug("Fatal error, exiting") + return err + } + cmd.Log.Error("Error", slog.Any("error", err)) + errorCount++ + } + + // Wait for everything to complete. + cmd.Log.Debug("Waiting for processes to complete") + if err = grp.Wait(); err != nil { + return err + } + if cmd.Args.Command != "" { + cmd.Log.Debug("Killing command", slog.String("command", cmd.Args.Command)) + if err := run.KillAll(); err != nil { + cmd.Log.Error("Error killing command", slog.Any("error", err)) + } + } + + // Clean up temporary watch mode text files. + if err := cmd.deleteWatchModeTextFiles(); err != nil { + cmd.Log.Warn("Failed to delete watch mode text files", slog.Any("error", err)) + } + + // Check for errors after everything has completed. + if errorCount > 0 { + return fmt.Errorf("generation completed with %d errors", errorCount) + } + + cmd.Log.Info("Complete", slog.Int("updates", updates), slog.Duration("duration", time.Since(start))) + return nil +} + +func (cmd Generate) groupUntilNoMessagesReceivedFor100ms(postGeneration chan *GenerationEvent) (grouped *GenerationEvent, updates int, ok bool, err error) { + timeout := time.NewTimer(time.Hour * 24 * 365) +loop: + for { + select { + case ge := <-postGeneration: + if ge == nil { + cmd.Log.Debug("Post-generation event channel closed, exiting") + return nil, 0, false, nil + } + if grouped == nil { + grouped = ge + } + grouped.WatchedFileUpdated = grouped.WatchedFileUpdated || ge.WatchedFileUpdated + grouped.TemplFileTextUpdated = grouped.TemplFileTextUpdated || ge.TemplFileTextUpdated + grouped.TemplFileGoUpdated = grouped.TemplFileGoUpdated || ge.TemplFileGoUpdated + if grouped.WatchedFileUpdated || grouped.TemplFileTextUpdated || grouped.TemplFileGoUpdated { + updates++ + } + // Now we have received an event, wait for 100ms. + // If no further messages are received in that time, the timeout will trigger. + timeout = time.NewTimer(time.Millisecond * 100) + case <-timeout.C: + // If grouped is nil, or if no updates were made, reset the timer and continue waiting. + if grouped == nil || (!grouped.WatchedFileUpdated && !grouped.TemplFileTextUpdated && !grouped.TemplFileGoUpdated) { + timeout = time.NewTimer(time.Hour * 24 * 365) + continue loop + } + // We have a grouped event, and no events have been sent in the last 100ms, so we need to return. + return grouped, updates, true, nil + } + } +} + +func (cmd Generate) handlePostGenerationEvents(ctx context.Context, postGeneration chan *GenerationEvent) (updates int, err error) { + cmd.Log.Debug("Starting post-generation handler") + var p *proxy.Handler +loop: + for { + grouped, updated, ok, err := cmd.groupUntilNoMessagesReceivedFor100ms(postGeneration) + if err != nil { + return 0, fmt.Errorf("error grouping post-generation events: %w", err) + } + if !ok { + break loop + } + + // The Go application needs to be restarted if any watched non-templ watched files (i.e. non-templ Go files) + // were updated, or if any Go code within a templ file was updated. + needsRestart := grouped.WatchedFileUpdated || grouped.TemplFileGoUpdated + // If the text in a templ file, or any other changes have happened, reload the browser. + needsBrowserReload := grouped.TemplFileTextUpdated || grouped.TemplFileGoUpdated || grouped.WatchedFileUpdated + + cmd.Log.Info("Post-generation event received, processing...", slog.Bool("needsRestart", needsRestart), slog.Bool("needsBrowserReload", needsBrowserReload)) + updates += updated + + if cmd.Args.Command != "" && needsRestart { + cmd.Log.Info("Executing command", slog.String("command", cmd.Args.Command)) + if cmd.Args.Watch { + if err := os.Setenv("TEMPL_DEV_MODE", "true"); err != nil { + cmd.Log.Error("Error setting TEMPL_DEV_MODE environment variable", slog.Any("error", err)) + } + } + if _, err := run.Run(ctx, cmd.Args.Path, cmd.Args.Command); err != nil { + cmd.Log.Error("Error executing command", slog.Any("error", err)) + } + } + if cmd.Args.Proxy != "" { + if p == nil { + cmd.Log.Debug("Starting proxy...") + p, err = cmd.startProxy() + if err != nil { + cmd.Log.Error("Failed to start proxy", slog.Any("error", err)) + } + } + if needsBrowserReload { + cmd.Log.Debug("Sending reload event") + p.SendSSE("message", "reload") + } + } + } + return updates, nil +} + +func (cmd Generate) handleEvents(ctx context.Context, events chan fsnotify.Event, errs chan error, fseh *FSEventHandler, postGeneration chan *GenerationEvent) { + var eventsWG sync.WaitGroup + sem := make(chan struct{}, cmd.Args.WorkerCount) + cmd.Log.Debug("Starting event handler") + for event := range events { + eventsWG.Add(1) + sem <- struct{}{} + go func(event fsnotify.Event) { + cmd.Log.Debug("Processing file", slog.String("file", event.Name)) + defer eventsWG.Done() + defer func() { <-sem }() + r, err := fseh.HandleEvent(ctx, event) + if err != nil { + errs <- err + } + if !r.WatchedFileUpdated && !r.TemplFileTextUpdated && !r.TemplFileGoUpdated { + cmd.Log.Debug("File not updated", slog.String("file", event.Name)) + return + } + e := &GenerationEvent{ + Event: event, + WatchedFileUpdated: r.WatchedFileUpdated, + TemplFileTextUpdated: r.TemplFileTextUpdated, + TemplFileGoUpdated: r.TemplFileGoUpdated, + } + cmd.Log.Debug("File updated", slog.String("file", event.Name)) + postGeneration <- e + }(event) + } + // Wait for all events to be processed before closing. + eventsWG.Wait() +} + +func (cmd *Generate) walkAndWatch(ctx context.Context, events chan fsnotify.Event, errs chan error) { + cmd.Log.Debug("Walking directory", slog.String("path", cmd.Args.Path), slog.Bool("devMode", cmd.Args.Watch)) + if err := watcher.WalkFiles(ctx, cmd.Args.Path, cmd.Args.WatchPattern, cmd.Args.IgnorePattern, events); err != nil { + cmd.Log.Error("WalkFiles failed, exiting", slog.Any("error", err)) + errs <- FatalError{Err: fmt.Errorf("failed to walk files: %w", err)} + return + } + if !cmd.Args.Watch { + cmd.Log.Debug("Dev mode not enabled, process can finish early") + return + } + cmd.Log.Info("Watching files") + rw, err := watcher.Recursive(ctx, cmd.Args.WatchPattern, cmd.Args.IgnorePattern, events, errs) + if err != nil { + cmd.Log.Error("Recursive watcher setup failed, exiting", slog.Any("error", err)) + errs <- FatalError{Err: fmt.Errorf("failed to setup recursive watcher: %w", err)} + return + } + if err = rw.Add(cmd.Args.Path); err != nil { + cmd.Log.Error("Failed to add path to watcher", slog.Any("error", err)) + errs <- FatalError{Err: fmt.Errorf("failed to add path to watcher: %w", err)} + return + } + defer func() { + if err := rw.Close(); err != nil { + cmd.Log.Error("Failed to close watcher", slog.Any("error", err)) + } + }() + cmd.Log.Debug("Waiting for context to be cancelled to stop watching files") + <-ctx.Done() +} + +func (cmd *Generate) deleteWatchModeTextFiles() error { + return fs.WalkDir(os.DirFS(cmd.Args.Path), ".", func(path string, info os.DirEntry, err error) error { + if err != nil { + return nil + } + absPath, err := filepath.Abs(filepath.Join(cmd.Args.Path, path)) + if err != nil { + return nil + } + if info.IsDir() && skipdir.ShouldSkip(absPath) { + return filepath.SkipDir + } + if !strings.HasSuffix(absPath, "_templ.go") && !strings.HasSuffix(absPath, ".templ") { + return nil + } + watchModeFileName := templruntime.GetDevModeTextFileName(absPath) + if err := os.Remove(watchModeFileName); err != nil && !errors.Is(err, os.ErrNotExist) { + cmd.Log.Warn("Failed to remove watch mode text file", slog.Any("error", err)) + } + return nil + }) +} + +func (cmd *Generate) startProxy() (p *proxy.Handler, err error) { + var target *url.URL + target, err = url.Parse(cmd.Args.Proxy) + if err != nil { + return nil, FatalError{Err: fmt.Errorf("failed to parse proxy URL: %w", err)} + } + p = proxy.New(cmd.Log, cmd.Args.ProxyBind, cmd.Args.ProxyPort, target) + go func() { + cmd.Log.Info("Proxying", slog.String("from", p.URL), slog.String("to", p.Target.String())) + if err := http.ListenAndServe(fmt.Sprintf("%s:%d", cmd.Args.ProxyBind, cmd.Args.ProxyPort), p); err != nil { + cmd.Log.Error("Proxy failed", slog.Any("error", err)) + } + }() + if !cmd.Args.OpenBrowser { + cmd.Log.Debug("Not opening browser") + return p, nil + } + go func() { + cmd.Log.Debug("Waiting for proxy to be ready", slog.String("url", p.URL)) + backoff := backoff.NewExponentialBackOff() + backoff.InitialInterval = time.Second + var client http.Client + client.Timeout = 1 * time.Second + for { + if _, err := client.Get(p.URL); err == nil { + break + } + d := backoff.NextBackOff() + cmd.Log.Debug("Proxy not ready, retrying", slog.String("url", p.URL), slog.Any("backoff", d)) + time.Sleep(d) + } + if err := browser.OpenURL(p.URL); err != nil { + cmd.Log.Error("Failed to open browser", slog.Any("error", err)) + } + }() + return p, nil +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go new file mode 100644 index 0000000..b0504aa --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go @@ -0,0 +1,315 @@ +package generatecmd + +import ( + "bufio" + "bytes" + "context" + "crypto/sha256" + "fmt" + "go/format" + "go/scanner" + "go/token" + "io" + "log/slog" + "os" + "path" + "path/filepath" + "strings" + "time" + + "github.com/a-h/templ/cmd/templ/visualize" + "github.com/a-h/templ/generator" + "github.com/a-h/templ/internal/syncmap" + "github.com/a-h/templ/internal/syncset" + "github.com/a-h/templ/parser/v2" + "github.com/a-h/templ/runtime" + "github.com/fsnotify/fsnotify" + "golang.org/x/sync/errgroup" +) + +type FileWriterFunc func(name string, contents []byte) error + +func FileWriter(fileName string, contents []byte) error { + return os.WriteFile(fileName, contents, 0o644) +} + +func WriterFileWriter(w io.Writer) FileWriterFunc { + return func(_ string, contents []byte) error { + _, err := w.Write(contents) + return err + } +} + +func NewFSEventHandler( + log *slog.Logger, + dir string, + devMode bool, + genOpts []generator.GenerateOpt, + genSourceMapVis bool, + keepOrphanedFiles bool, + fileWriter FileWriterFunc, + lazy bool, +) *FSEventHandler { + if !path.IsAbs(dir) { + dir, _ = filepath.Abs(dir) + } + fseh := &FSEventHandler{ + Log: log, + dir: dir, + fileNameToLastModTime: syncmap.New[string, time.Time](), + fileNameToError: syncset.New[string](), + fileNameToOutput: syncmap.New[string, generator.GeneratorOutput](), + devMode: devMode, + hashes: syncmap.New[string, [sha256.Size]byte](), + genOpts: genOpts, + genSourceMapVis: genSourceMapVis, + keepOrphanedFiles: keepOrphanedFiles, + writer: fileWriter, + lazy: lazy, + } + return fseh +} + +type FSEventHandler struct { + Log *slog.Logger + // dir is the root directory being processed. + dir string + fileNameToLastModTime *syncmap.Map[string, time.Time] + fileNameToError *syncset.Set[string] + fileNameToOutput *syncmap.Map[string, generator.GeneratorOutput] + devMode bool + hashes *syncmap.Map[string, [sha256.Size]byte] + genOpts []generator.GenerateOpt + genSourceMapVis bool + Errors []error + keepOrphanedFiles bool + writer FileWriterFunc + lazy bool +} + +type GenerateResult struct { + // WatchedFileUpdated indicates that a file matching the watch pattern was updated. + WatchedFileUpdated bool + // TemplFileTextUpdated indicates that text literals were updated. + TemplFileTextUpdated bool + // TemplFileGoUpdated indicates that Go expressions were updated. + TemplFileGoUpdated bool +} + +func (h *FSEventHandler) HandleEvent(ctx context.Context, event fsnotify.Event) (result GenerateResult, err error) { + // Handle _templ.go files. + if !event.Has(fsnotify.Remove) && strings.HasSuffix(event.Name, "_templ.go") { + _, err = os.Stat(strings.TrimSuffix(event.Name, "_templ.go") + ".templ") + if !os.IsNotExist(err) { + return GenerateResult{}, err + } + // File is orphaned. + if h.keepOrphanedFiles { + return GenerateResult{}, nil + } + h.Log.Debug("Deleting orphaned Go file", slog.String("file", event.Name)) + if err = os.Remove(event.Name); err != nil { + h.Log.Warn("Failed to remove orphaned file", slog.Any("error", err)) + } + return GenerateResult{WatchedFileUpdated: false, TemplFileGoUpdated: true, TemplFileTextUpdated: false}, nil + } + + // If the file hasn't been updated since the last time we processed it, ignore it. + fileInfo, err := os.Stat(event.Name) + if err != nil { + return GenerateResult{}, fmt.Errorf("failed to stat %q: %w", event.Name, err) + } + mustBeInTheFuture := func(previous, updated time.Time) bool { + return updated.After(previous) + } + updatedModTime := h.fileNameToLastModTime.CompareAndSwap(event.Name, mustBeInTheFuture, fileInfo.ModTime()) + if !updatedModTime { + h.Log.Debug("Skipping file because it wasn't updated", slog.String("file", event.Name)) + return GenerateResult{}, nil + } + + // Process anything that isn't a templ file. + if !strings.HasSuffix(event.Name, ".templ") { + if h.devMode { + h.Log.Info("Watched file updated", slog.String("file", event.Name)) + } + result.WatchedFileUpdated = true + return result, nil + } + + // Handle templ files. + + // If the go file is newer than the templ file, skip generation, because it's up-to-date. + if h.lazy && goFileIsUpToDate(event.Name, fileInfo.ModTime()) { + h.Log.Debug("Skipping file because the Go file is up-to-date", slog.String("file", event.Name)) + return GenerateResult{}, nil + } + + // Start a processor. + start := time.Now() + var diag []parser.Diagnostic + result, diag, err = h.generate(ctx, event.Name) + if err != nil { + h.fileNameToError.Set(event.Name) + return result, fmt.Errorf("failed to generate code for %q: %w", event.Name, err) + } + if len(diag) > 0 { + for _, d := range diag { + h.Log.Warn(d.Message, + slog.String("from", fmt.Sprintf("%d:%d", d.Range.From.Line, d.Range.From.Col)), + slog.String("to", fmt.Sprintf("%d:%d", d.Range.To.Line, d.Range.To.Col)), + ) + } + return result, nil + } + if errorCleared := h.fileNameToError.Delete(event.Name); errorCleared { + h.Log.Info("Error cleared", slog.String("file", event.Name), slog.Int("errors", h.fileNameToError.Count())) + } + h.Log.Debug("Generated code", slog.String("file", event.Name), slog.Duration("in", time.Since(start))) + + return result, nil +} + +func goFileIsUpToDate(templFileName string, templFileLastMod time.Time) (upToDate bool) { + goFileName := strings.TrimSuffix(templFileName, ".templ") + "_templ.go" + goFileInfo, err := os.Stat(goFileName) + if err != nil { + return false + } + return goFileInfo.ModTime().After(templFileLastMod) +} + +// generate Go code for a single template. +// If a basePath is provided, the filename included in error messages is relative to it. +func (h *FSEventHandler) generate(ctx context.Context, fileName string) (result GenerateResult, diagnostics []parser.Diagnostic, err error) { + t, err := parser.Parse(fileName) + if err != nil { + return GenerateResult{}, nil, fmt.Errorf("%s parsing error: %w", fileName, err) + } + targetFileName := strings.TrimSuffix(fileName, ".templ") + "_templ.go" + + // Only use relative filenames to the basepath for filenames in runtime error messages. + absFilePath, err := filepath.Abs(fileName) + if err != nil { + return GenerateResult{}, nil, fmt.Errorf("failed to get absolute path for %q: %w", fileName, err) + } + relFilePath, err := filepath.Rel(h.dir, absFilePath) + if err != nil { + return GenerateResult{}, nil, fmt.Errorf("failed to get relative path for %q: %w", fileName, err) + } + // Convert Windows file paths to Unix-style for consistency. + relFilePath = filepath.ToSlash(relFilePath) + + var b bytes.Buffer + generatorOutput, err := generator.Generate(t, &b, append(h.genOpts, generator.WithFileName(relFilePath))...) + if err != nil { + return GenerateResult{}, nil, fmt.Errorf("%s generation error: %w", fileName, err) + } + + formattedGoCode, err := format.Source(b.Bytes()) + if err != nil { + err = remapErrorList(err, generatorOutput.SourceMap, fileName) + return GenerateResult{}, nil, fmt.Errorf("%s source formatting error %w", fileName, err) + } + + // Hash output, and write out the file if the goCodeHash has changed. + goCodeHash := sha256.Sum256(formattedGoCode) + if h.hashes.CompareAndSwap(targetFileName, syncmap.UpdateIfChanged, goCodeHash) { + if err = h.writer(targetFileName, formattedGoCode); err != nil { + return result, nil, fmt.Errorf("failed to write target file %q: %w", targetFileName, err) + } + } + + // Add the txt file if it has changed. + if h.devMode { + txtFileName := runtime.GetDevModeTextFileName(fileName) + h.Log.Debug("Writing development mode text file", slog.String("file", fileName), slog.String("output", txtFileName)) + joined := strings.Join(generatorOutput.Literals, "\n") + txtHash := sha256.Sum256([]byte(joined)) + if h.hashes.CompareAndSwap(txtFileName, syncmap.UpdateIfChanged, txtHash) { + if err = os.WriteFile(txtFileName, []byte(joined), 0o644); err != nil { + return result, nil, fmt.Errorf("failed to write string literal file %q: %w", txtFileName, err) + } + } + // Check whether the change would require a recompilation or text update to take effect. + previous, hasPrevious := h.fileNameToOutput.Get(fileName) + if hasPrevious { + result.TemplFileTextUpdated = generator.HasTextChanged(previous, generatorOutput) + result.TemplFileGoUpdated = generator.HasGoChanged(previous, generatorOutput) + } + h.fileNameToOutput.Set(fileName, generatorOutput) + } + + parsedDiagnostics, err := parser.Diagnose(t) + if err != nil { + return result, nil, fmt.Errorf("%s diagnostics error: %w", fileName, err) + } + + if h.genSourceMapVis { + err = generateSourceMapVisualisation(ctx, fileName, targetFileName, generatorOutput.SourceMap) + } + + return result, parsedDiagnostics, err +} + +// Takes an error from the formatter and attempts to convert the positions reported in the target file to their positions +// in the source file. +func remapErrorList(err error, sourceMap *parser.SourceMap, fileName string) error { + list, ok := err.(scanner.ErrorList) + if !ok || len(list) == 0 { + return err + } + for i, e := range list { + // The positions in the source map are off by one line because of the package definition. + srcPos, ok := sourceMap.SourcePositionFromTarget(uint32(e.Pos.Line-1), uint32(e.Pos.Column)) + if !ok { + continue + } + list[i].Pos = token.Position{ + Filename: fileName, + Offset: int(srcPos.Index), + Line: int(srcPos.Line) + 1, + Column: int(srcPos.Col), + } + } + return list +} + +func generateSourceMapVisualisation(ctx context.Context, templFileName, goFileName string, sourceMap *parser.SourceMap) error { + if err := ctx.Err(); err != nil { + return err + } + var templContents, goContents []byte + var grp errgroup.Group + grp.Go(func() (err error) { + templContents, err = os.ReadFile(templFileName) + return err + }) + grp.Go(func() (err error) { + goContents, err = os.ReadFile(goFileName) + return err + }) + if err := grp.Wait(); err != nil { + return err + } + component := visualize.HTML(templFileName, string(templContents), string(goContents), sourceMap) + + targetFileName := strings.TrimSuffix(templFileName, ".templ") + "_templ_sourcemap.html" + w, err := os.Create(targetFileName) + if err != nil { + return fmt.Errorf("%s sourcemap visualisation error: %w", templFileName, err) + } + b := bufio.NewWriter(w) + if err = component.Render(ctx, b); err != nil { + _ = w.Close() + return fmt.Errorf("%s sourcemap visualisation render error: %w", templFileName, err) + } + if err = b.Flush(); err != nil { + _ = w.Close() + return fmt.Errorf("%s sourcemap visualisation flush error: %w", templFileName, err) + } + if err = w.Close(); err != nil { + return fmt.Errorf("%s sourcemap visualisation close error: %w", templFileName, err) + } + return nil +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go new file mode 100644 index 0000000..1081659 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go @@ -0,0 +1,23 @@ +package generatecmd + +type FatalError struct { + Err error +} + +func (e FatalError) Error() string { + return e.Err.Error() +} + +func (e FatalError) Unwrap() error { + return e.Err +} + +func (e FatalError) Is(target error) bool { + _, ok := target.(FatalError) + return ok +} + +func (e FatalError) As(target any) bool { + _, ok := target.(*FatalError) + return ok +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go new file mode 100644 index 0000000..da1fa2c --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go @@ -0,0 +1,192 @@ +package generatecmd + +import ( + "context" + _ "embed" + "flag" + "fmt" + "io" + "log/slog" + "regexp" + "runtime" + + _ "net/http/pprof" + + "github.com/a-h/templ/cmd/templ/sloghandler" +) + +const generateUsageText = `usage: templ generate [...] + +Generates Go code from templ files. + +Args: + -path + Generates code for all files in path. (default .) + -f + Optionally generates code for a single file, e.g. -f header.templ + -stdout + Prints to stdout instead of writing generated files to the filesystem. + Only applicable when -f is used. + -source-map-visualisations + Set to true to generate HTML files to visualise the templ code and its corresponding Go code. + -include-version + Set to false to skip inclusion of the templ version in the generated code. (default true) + -include-timestamp + Set to true to include the current time in the generated code. + -watch + Set to true to watch the path for changes and regenerate code. + -watch-pattern + Set the regexp pattern of files that will be watched for changes. (default: '(.+\.go$)|(.+\.templ$)|(.+_templ\.txt$)') + -ignore-pattern + Set the regexp pattern of files to ignore when watching for changes. (default: '') + -cmd + Set the command to run after generating code. + -proxy + Set the URL to proxy after generating code and executing the command. + -proxyport + The port the proxy will listen on. (default 7331) + -proxybind + The address the proxy will listen on. (default 127.0.0.1) + -notify-proxy + If present, the command will issue a reload event to the proxy 127.0.0.1:7331, or use proxyport and proxybind to specify a different address. + -w + Number of workers to use when generating code. (default runtime.NumCPUs) + -lazy + Only generate .go files if the source .templ file is newer. + -pprof + Port to run the pprof server on. + -keep-orphaned-files + Keeps orphaned generated templ files. (default false) + -v + Set log verbosity level to "debug". (default "info") + -log-level + Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") + -help + Print help and exit. + +Examples: + + Generate code for all files in the current directory and subdirectories: + + templ generate + + Generate code for a single file: + + templ generate -f header.templ + + Watch the current directory and subdirectories for changes and regenerate code: + + templ generate -watch +` + +const defaultWatchPattern = `(.+\.go$)|(.+\.templ$)` + +func NewArguments(stdout, stderr io.Writer, args []string) (cmdArgs Arguments, log *slog.Logger, help bool, err error) { + cmd := flag.NewFlagSet("generate", flag.ContinueOnError) + cmd.StringVar(&cmdArgs.FileName, "f", "", "") + cmd.StringVar(&cmdArgs.Path, "path", ".", "") + toStdoutFlag := cmd.Bool("stdout", false, "") + cmd.BoolVar(&cmdArgs.GenerateSourceMapVisualisations, "source-map-visualisations", false, "") + cmd.BoolVar(&cmdArgs.IncludeVersion, "include-version", true, "") + cmd.BoolVar(&cmdArgs.IncludeTimestamp, "include-timestamp", false, "") + cmd.BoolVar(&cmdArgs.Watch, "watch", false, "") + watchPatternFlag := cmd.String("watch-pattern", defaultWatchPattern, "") + ignorePatternFlag := cmd.String("ignore-pattern", "", "") + cmd.BoolVar(&cmdArgs.OpenBrowser, "open-browser", true, "") + cmd.StringVar(&cmdArgs.Command, "cmd", "", "") + cmd.StringVar(&cmdArgs.Proxy, "proxy", "", "") + cmd.IntVar(&cmdArgs.ProxyPort, "proxyport", 7331, "") + cmd.StringVar(&cmdArgs.ProxyBind, "proxybind", "127.0.0.1", "") + cmd.BoolVar(&cmdArgs.NotifyProxy, "notify-proxy", false, "") + cmd.IntVar(&cmdArgs.WorkerCount, "w", runtime.NumCPU(), "") + cmd.IntVar(&cmdArgs.PPROFPort, "pprof", 0, "") + cmd.BoolVar(&cmdArgs.KeepOrphanedFiles, "keep-orphaned-files", false, "") + cmd.BoolVar(&cmdArgs.Lazy, "lazy", false, "") + verboseFlag := cmd.Bool("v", false, "") + logLevelFlag := cmd.String("log-level", "info", "") + helpFlag := cmd.Bool("help", false, "") + if err = cmd.Parse(args); err != nil { + return Arguments{}, nil, false, fmt.Errorf("failed to parse arguments: %w", err) + } + + log = sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) + + if cmdArgs.Watch && cmdArgs.FileName != "" { + return Arguments{}, log, *helpFlag, fmt.Errorf("cannot watch a single file, remove the -f or -watch flag") + } + cmdArgs.WatchPattern, err = regexp.Compile(*watchPatternFlag) + if err != nil { + return cmdArgs, log, *helpFlag, fmt.Errorf("invalid watch pattern %q: %w", *watchPatternFlag, err) + } + if *ignorePatternFlag != "" { + cmdArgs.IgnorePattern, err = regexp.Compile(*ignorePatternFlag) + if err != nil { + return cmdArgs, log, *helpFlag, fmt.Errorf("invalid ignore pattern %q: %w", *ignorePatternFlag, err) + } + } + + // Default to writing to files unless the stdout flag is set. + cmdArgs.FileWriter = FileWriter + if *toStdoutFlag { + if cmdArgs.FileName == "" { + return Arguments{}, log, *helpFlag, fmt.Errorf("only a single file can be output to stdout, add the -f flag to specify the file to generate code for") + } + cmdArgs.FileWriter = WriterFileWriter(stdout) + } + + return cmdArgs, log, *helpFlag, nil +} + +type Arguments struct { + FileName string + FileWriter FileWriterFunc + Path string + Watch bool + WatchPattern *regexp.Regexp + IgnorePattern *regexp.Regexp + OpenBrowser bool + Command string + ProxyBind string + ProxyPort int + Proxy string + NotifyProxy bool + WorkerCount int + GenerateSourceMapVisualisations bool + IncludeVersion bool + IncludeTimestamp bool + // PPROFPort is the port to run the pprof server on. + PPROFPort int + KeepOrphanedFiles bool + Lazy bool +} + +type ArgumentError struct { + Message string +} + +func (e *ArgumentError) Error() string { + return e.Message +} + +func (a *ArgumentError) Code() int { + return 64 // EX_USAGE +} + +func Run(ctx context.Context, stdout, stderr io.Writer, args []string) (err error) { + cmdArgs, log, help, err := NewArguments(stdout, stderr, args) + if err != nil { + _, _ = fmt.Fprint(stderr, generateUsageText) + return &ArgumentError{ + Message: err.Error(), + } + } + if help { + _, _ = fmt.Fprint(stdout, generateUsageText) + return nil + } + g, err := NewGenerate(log, cmdArgs) + if err != nil { + return err + } + return g.Run(ctx) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go new file mode 100644 index 0000000..bc3fc03 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go @@ -0,0 +1,82 @@ +package modcheck + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/a-h/templ" + "golang.org/x/mod/modfile" + "golang.org/x/mod/semver" +) + +// WalkUp the directory tree, starting at dir, until we find a directory containing +// a go.mod file. +func WalkUp(dir string) (string, error) { + dir, err := filepath.Abs(dir) + if err != nil { + return "", fmt.Errorf("failed to get absolute path: %w", err) + } + + var modFile string + for { + modFile = filepath.Join(dir, "go.mod") + _, err := os.Stat(modFile) + if err != nil && !os.IsNotExist(err) { + return "", fmt.Errorf("failed to stat go.mod file: %w", err) + } + if os.IsNotExist(err) { + // Move up. + prev := dir + dir = filepath.Dir(dir) + if dir == prev { + break + } + continue + } + break + } + + // No file found. + if modFile == "" { + return dir, fmt.Errorf("could not find go.mod file") + } + return dir, nil +} + +func Check(dir string) error { + dir, err := WalkUp(dir) + if err != nil { + return err + } + + // Found a go.mod file. + // Read it and find the templ version. + modFile := filepath.Join(dir, "go.mod") + m, err := os.ReadFile(modFile) + if err != nil { + return fmt.Errorf("failed to read go.mod file: %w", err) + } + + mf, err := modfile.Parse(modFile, m, nil) + if err != nil { + return fmt.Errorf("failed to parse go.mod file: %w", err) + } + if mf.Module.Mod.Path == "github.com/a-h/templ" { + // The go.mod file is for templ itself. + return nil + } + for _, r := range mf.Require { + if r.Mod.Path == "github.com/a-h/templ" { + cmp := semver.Compare(r.Mod.Version, templ.Version()) + if cmp < 0 { + return fmt.Errorf("generator %v is newer than templ version %v found in go.mod file, consider running `go get -u github.com/a-h/templ` to upgrade", templ.Version(), r.Mod.Version) + } + if cmp > 0 { + return fmt.Errorf("generator %v is older than templ version %v found in go.mod file, consider upgrading templ CLI", templ.Version(), r.Mod.Version) + } + return nil + } + } + return fmt.Errorf("templ not found in go.mod file, run `go get github.com/a-h/templ` to install it") +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go new file mode 100644 index 0000000..b6fdeb7 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go @@ -0,0 +1,299 @@ +package proxy + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + stdlog "log" + "log/slog" + "math" + "net/http" + "net/http/httputil" + "net/url" + "os" + "strconv" + "strings" + "time" + + "github.com/a-h/templ/cmd/templ/generatecmd/sse" + "github.com/a-h/templ/internal/htmlfind" + "github.com/andybalholm/brotli" + "golang.org/x/net/html" + + _ "embed" +) + +//go:embed script.js +var script string + +type Handler struct { + log *slog.Logger + URL string + Target *url.URL + p *httputil.ReverseProxy + sse *sse.Handler +} + +func reloadScript(nonce string) *html.Node { + script := &html.Node{ + Type: html.ElementNode, + Data: "script", + Attr: []html.Attribute{ + {Key: "src", Val: "/_templ/reload/script.js"}, + }, + } + if nonce != "" { + script.Attr = append(script.Attr, html.Attribute{Key: "nonce", Val: nonce}) + } + return script +} + +var ErrBodyNotFound = fmt.Errorf("body not found") + +func insertScriptTagIntoBody(nonce, body string) (updated string, err error) { + n, err := html.Parse(strings.NewReader(body)) + if err != nil { + return body, err + } + bodyNodes := htmlfind.All(n, htmlfind.Element("body")) + if len(bodyNodes) == 0 { + return body, ErrBodyNotFound + } + bodyNodes[0].AppendChild(reloadScript(nonce)) + buf := new(bytes.Buffer) + if err = html.Render(buf, n); err != nil { + return body, err + } + return buf.String(), nil +} + +type passthroughWriteCloser struct { + io.Writer +} + +func (pwc passthroughWriteCloser) Close() error { + return nil +} + +const unsupportedContentEncoding = "Unsupported content encoding, hot reload script not inserted." + +func (h *Handler) modifyResponse(r *http.Response) error { + log := h.log.With(slog.String("url", r.Request.URL.String())) + if r.Header.Get("templ-skip-modify") == "true" { + log.Debug("Skipping response modification because templ-skip-modify header is set") + return nil + } + if contentType := r.Header.Get("Content-Type"); !strings.HasPrefix(contentType, "text/html") { + log.Debug("Skipping response modification because content type is not text/html", slog.String("content-type", contentType)) + return nil + } + + // Set up readers and writers. + newReader := func(in io.Reader) (out io.Reader, err error) { + return in, nil + } + newWriter := func(out io.Writer) io.WriteCloser { + return passthroughWriteCloser{out} + } + switch r.Header.Get("Content-Encoding") { + case "gzip": + newReader = func(in io.Reader) (out io.Reader, err error) { + return gzip.NewReader(in) + } + newWriter = func(out io.Writer) io.WriteCloser { + return gzip.NewWriter(out) + } + case "br": + newReader = func(in io.Reader) (out io.Reader, err error) { + return brotli.NewReader(in), nil + } + newWriter = func(out io.Writer) io.WriteCloser { + return brotli.NewWriter(out) + } + case "": + log.Debug("No content encoding header found") + default: + h.log.Warn(unsupportedContentEncoding, slog.String("encoding", r.Header.Get("Content-Encoding"))) + } + + // Read the encoded body. + encr, err := newReader(r.Body) + if err != nil { + return err + } + defer func() { + _ = r.Body.Close() + }() + body, err := io.ReadAll(encr) + if err != nil { + return err + } + + // Update it. + csp := r.Header.Get("Content-Security-Policy") + updated, err := insertScriptTagIntoBody(parseNonce(csp), string(body)) + if err != nil { + log.Warn("Unable to insert reload script", slog.Any("error", err)) + updated = string(body) + } + if len(updated) == len(body) { + log.Debug("Reload script not inserted") + } else { + log.Debug("Reload script inserted") + } + + // Encode the response. + var buf bytes.Buffer + encw := newWriter(&buf) + _, err = encw.Write([]byte(updated)) + if err != nil { + return err + } + err = encw.Close() + if err != nil { + return err + } + + // Update the response. + r.Body = io.NopCloser(&buf) + r.ContentLength = int64(buf.Len()) + r.Header.Set("Content-Length", strconv.Itoa(buf.Len())) + return nil +} + +func parseNonce(csp string) (nonce string) { +outer: + for _, rawDirective := range strings.Split(csp, ";") { + parts := strings.Fields(rawDirective) + if len(parts) < 2 { + continue + } + if parts[0] != "script-src" { + continue + } + for _, source := range parts[1:] { + source = strings.TrimPrefix(source, "'") + source = strings.TrimSuffix(source, "'") + if strings.HasPrefix(source, "nonce-") { + nonce = source[6:] + break outer + } + } + } + return nonce +} + +func New(log *slog.Logger, bind string, port int, target *url.URL) (h *Handler) { + p := httputil.NewSingleHostReverseProxy(target) + p.ErrorLog = stdlog.New(os.Stderr, "Proxy to target error: ", 0) + p.Transport = &roundTripper{ + maxRetries: 20, + initialDelay: 100 * time.Millisecond, + backoffExponent: 1.5, + } + h = &Handler{ + log: log, + URL: fmt.Sprintf("http://%s:%d", bind, port), + Target: target, + p: p, + sse: sse.New(), + } + p.ModifyResponse = h.modifyResponse + return h +} + +func (p *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/_templ/reload/script.js" { + // Provides a script that reloads the page. + w.Header().Add("Content-Type", "text/javascript") + _, err := io.WriteString(w, script) + if err != nil { + fmt.Printf("failed to write script: %v\n", err) + } + return + } + if r.URL.Path == "/_templ/reload/events" { + switch r.Method { + case http.MethodGet: + // Provides a list of messages including a reload message. + p.sse.ServeHTTP(w, r) + return + case http.MethodPost: + // Send a reload message to all connected clients. + p.sse.Send("message", "reload") + return + } + http.Error(w, "only GET or POST method allowed", http.StatusMethodNotAllowed) + return + } + p.p.ServeHTTP(w, r) +} + +func (p *Handler) SendSSE(eventType string, data string) { + p.sse.Send(eventType, data) +} + +type roundTripper struct { + maxRetries int + initialDelay time.Duration + backoffExponent float64 +} + +func (rt *roundTripper) setShouldSkipResponseModificationHeader(r *http.Request, resp *http.Response) { + // Instruct the modifyResponse function to skip modifying the response if the + // HTTP request has come from HTMX or Datastar. + if r.Header.Get("HX-Request") != "true" && r.Header.Get("Datastar-Request") != "true" { + return + } + resp.Header.Set("templ-skip-modify", "true") +} + +func (rt *roundTripper) RoundTrip(r *http.Request) (*http.Response, error) { + // Read and buffer the body. + var bodyBytes []byte + if r.Body != nil && r.Body != http.NoBody { + var err error + bodyBytes, err = io.ReadAll(r.Body) + if err != nil { + return nil, err + } + if err = r.Body.Close(); err != nil { + return nil, fmt.Errorf("failed to close request body: %w", err) + } + } + + // Retry logic. + var resp *http.Response + var err error + for retries := range rt.maxRetries { + // Clone the request and set the body. + req := r.Clone(r.Context()) + if bodyBytes != nil { + req.Body = io.NopCloser(bytes.NewReader(bodyBytes)) + } + + // Execute the request. + resp, err = http.DefaultTransport.RoundTrip(req) + if err != nil { + time.Sleep(rt.initialDelay * time.Duration(math.Pow(rt.backoffExponent, float64(retries)))) + continue + } + + rt.setShouldSkipResponseModificationHeader(r, resp) + + return resp, nil + } + + return nil, fmt.Errorf("max retries reached: %q", r.URL.String()) +} + +func NotifyProxy(host string, port int) error { + urlStr := fmt.Sprintf("http://%s:%d/_templ/reload/events", host, port) + req, err := http.NewRequest(http.MethodPost, urlStr, nil) + if err != nil { + return err + } + _, err = http.DefaultClient.Do(req) + return err +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js new file mode 100644 index 0000000..8e55791 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js @@ -0,0 +1,10 @@ +(function() { + let templ_reloadSrc = window.templ_reloadSrc || new EventSource("/_templ/reload/events"); + templ_reloadSrc.onmessage = (event) => { + if (event && event.data === "reload") { + window.location.reload(); + } + }; + window.templ_reloadSrc = templ_reloadSrc; + window.onbeforeunload = () => window.templ_reloadSrc.close(); +})(); diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go new file mode 100644 index 0000000..1ce9105 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go @@ -0,0 +1,85 @@ +//go:build unix + +package run + +import ( + "context" + "errors" + "fmt" + "os" + "os/exec" + "strings" + "sync" + "syscall" + "time" +) + +var ( + m = &sync.Mutex{} + running = map[string]*exec.Cmd{} +) + +func KillAll() (err error) { + m.Lock() + defer m.Unlock() + var errs []error + for _, cmd := range running { + if err := kill(cmd); err != nil { + errs = append(errs, fmt.Errorf("failed to kill process %d: %w", cmd.Process.Pid, err)) + } + } + running = map[string]*exec.Cmd{} + return errors.Join(errs...) +} + +func kill(cmd *exec.Cmd) (err error) { + errs := make([]error, 4) + errs[0] = ignoreExited(cmd.Process.Signal(syscall.SIGINT)) + errs[1] = ignoreExited(cmd.Process.Signal(syscall.SIGTERM)) + errs[2] = ignoreExited(cmd.Wait()) + errs[3] = ignoreExited(syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)) + return errors.Join(errs...) +} + +func ignoreExited(err error) error { + if errors.Is(err, syscall.ESRCH) { + return nil + } + // Ignore *exec.ExitError + if _, ok := err.(*exec.ExitError); ok { + return nil + } + return err +} + +func Run(ctx context.Context, workingDir string, input string) (cmd *exec.Cmd, err error) { + m.Lock() + defer m.Unlock() + cmd, ok := running[input] + if ok { + if err := kill(cmd); err != nil { + return cmd, fmt.Errorf("failed to kill process %d: %w", cmd.Process.Pid, err) + } + + delete(running, input) + } + parts := strings.Fields(input) + executable := parts[0] + args := []string{} + if len(parts) > 1 { + args = append(args, parts[1:]...) + } + + cmd = exec.CommandContext(ctx, executable, args...) + // Wait for the process to finish gracefully before termination. + cmd.WaitDelay = time.Second * 3 + cmd.Env = os.Environ() + cmd.Dir = workingDir + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + running[input] = cmd + err = cmd.Start() + return +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go new file mode 100644 index 0000000..b021607 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go @@ -0,0 +1,72 @@ +//go:build windows + +package run + +import ( + "context" + "os" + "os/exec" + "strconv" + "strings" + "sync" +) + +var ( + m = &sync.Mutex{} + running = map[string]*exec.Cmd{} +) + +func KillAll() (err error) { + m.Lock() + defer m.Unlock() + for _, cmd := range running { + kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) + kill.Stderr = os.Stderr + kill.Stdout = os.Stdout + err := kill.Run() + if err != nil { + return err + } + } + running = map[string]*exec.Cmd{} + return +} + +func Stop(cmd *exec.Cmd) (err error) { + kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) + kill.Stderr = os.Stderr + kill.Stdout = os.Stdout + return kill.Run() +} + +func Run(ctx context.Context, workingDir string, input string) (cmd *exec.Cmd, err error) { + m.Lock() + defer m.Unlock() + cmd, ok := running[input] + if ok { + kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) + kill.Stderr = os.Stderr + kill.Stdout = os.Stdout + err := kill.Run() + if err != nil { + return cmd, err + } + delete(running, input) + } + parts := strings.Fields(input) + executable := parts[0] + args := []string{} + if len(parts) > 1 { + args = append(args, parts[1:]...) + } + + cmd = exec.Command(executable, args...) + cmd.Env = os.Environ() + cmd.Dir = workingDir + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + running[input] = cmd + err = cmd.Start() + return +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go new file mode 100644 index 0000000..fb7fe92 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go @@ -0,0 +1,84 @@ +package sse + +import ( + _ "embed" + "fmt" + "net/http" + "sync" + "sync/atomic" + "time" +) + +func New() *Handler { + return &Handler{ + m: new(sync.Mutex), + requests: map[int64]chan event{}, + } +} + +type Handler struct { + m *sync.Mutex + counter int64 + requests map[int64]chan event +} + +type event struct { + Type string + Data string +} + +// Send an event to all connected clients. +func (s *Handler) Send(eventType string, data string) { + s.m.Lock() + defer s.m.Unlock() + for _, f := range s.requests { + f := f + go func(f chan event) { + f <- event{ + Type: eventType, + Data: data, + } + }(f) + } +} + +func (s *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Headers", "Content-Type") + w.Header().Set("Content-Type", "text/event-stream") + w.Header().Set("Cache-Control", "no-cache") + w.Header().Set("Connection", "keep-alive") + + id := atomic.AddInt64(&s.counter, 1) + s.m.Lock() + events := make(chan event) + s.requests[id] = events + s.m.Unlock() + defer func() { + s.m.Lock() + defer s.m.Unlock() + delete(s.requests, id) + close(events) + }() + + timer := time.NewTimer(0) +loop: + for { + select { + case <-timer.C: + if _, err := fmt.Fprintf(w, "event: message\ndata: ping\n\n"); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + timer.Reset(time.Second * 5) + case e := <-events: + if _, err := fmt.Fprintf(w, "event: %s\ndata: %s\n\n", e.Type, e.Data); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + case <-r.Context().Done(): + break loop + } + w.(http.Flusher).Flush() + } +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go new file mode 100644 index 0000000..4e10775 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go @@ -0,0 +1,166 @@ +package watcher + +import ( + "context" + "io/fs" + "os" + "path/filepath" + "regexp" + "sync" + "time" + + "github.com/a-h/templ/internal/skipdir" + "github.com/fsnotify/fsnotify" +) + +func Recursive( + ctx context.Context, + watchPattern *regexp.Regexp, + ignorePattern *regexp.Regexp, + out chan fsnotify.Event, + errors chan error, +) (w *RecursiveWatcher, err error) { + fsnw, err := fsnotify.NewWatcher() + if err != nil { + return nil, err + } + w = &RecursiveWatcher{ + ctx: ctx, + w: fsnw, + WatchPattern: watchPattern, + IgnorePattern: ignorePattern, + Events: out, + Errors: errors, + timers: make(map[timerKey]*time.Timer), + loopComplete: sync.WaitGroup{}, + } + w.loopComplete.Add(1) + go func() { + defer w.loopComplete.Done() + w.loop() + }() + return w, nil +} + +// WalkFiles walks the file tree rooted at path, sending a Create event for each +// file it encounters. +func WalkFiles(ctx context.Context, rootPath string, watchPattern, ignorePattern *regexp.Regexp, out chan fsnotify.Event) (err error) { + return fs.WalkDir(os.DirFS(rootPath), ".", func(path string, info os.DirEntry, err error) error { + if err != nil { + return nil + } + absPath, err := filepath.Abs(filepath.Join(rootPath, path)) + if err != nil { + return nil + } + if info.IsDir() && skipdir.ShouldSkip(absPath) { + return filepath.SkipDir + } + if !watchPattern.MatchString(absPath) { + return nil + } + if ignorePattern != nil && ignorePattern.MatchString(absPath) { + return nil + } + out <- fsnotify.Event{ + Name: absPath, + Op: fsnotify.Create, + } + return nil + }) +} + +type RecursiveWatcher struct { + ctx context.Context + w *fsnotify.Watcher + WatchPattern *regexp.Regexp + IgnorePattern *regexp.Regexp + Events chan fsnotify.Event + Errors chan error + timerMu sync.Mutex + timers map[timerKey]*time.Timer + loopComplete sync.WaitGroup +} + +type timerKey struct { + name string + op fsnotify.Op +} + +func timerKeyFromEvent(event fsnotify.Event) timerKey { + return timerKey{ + name: event.Name, + op: event.Op, + } +} + +func (w *RecursiveWatcher) Close() error { + w.loopComplete.Wait() + for _, timer := range w.timers { + timer.Stop() + } + return w.w.Close() +} + +func (w *RecursiveWatcher) loop() { + for { + select { + case <-w.ctx.Done(): + return + case event, ok := <-w.w.Events: + if !ok { + return + } + if event.Has(fsnotify.Create) { + if err := w.Add(event.Name); err != nil { + w.Errors <- err + } + } + // Only notify on templ related files. + if !w.WatchPattern.MatchString(event.Name) { + continue + } + // Skip files that match the ignore pattern. + if w.IgnorePattern != nil && w.IgnorePattern.MatchString(event.Name) { + continue + } + tk := timerKeyFromEvent(event) + w.timerMu.Lock() + t, ok := w.timers[tk] + w.timerMu.Unlock() + if !ok { + t = time.AfterFunc(100*time.Millisecond, func() { + if w.ctx.Err() != nil { + return + } + w.Events <- event + }) + w.timerMu.Lock() + w.timers[tk] = t + w.timerMu.Unlock() + continue + } + t.Reset(100 * time.Millisecond) + case err, ok := <-w.w.Errors: + if !ok { + return + } + w.Errors <- err + } + } +} + +func (w *RecursiveWatcher) Add(dir string) error { + return filepath.WalkDir(dir, func(dir string, info os.DirEntry, err error) error { + if err != nil { + return nil + } + if !info.IsDir() { + return nil + } + if skipdir.ShouldSkip(dir) { + return filepath.SkipDir + } + return w.w.Add(dir) + }) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go new file mode 100644 index 0000000..eddd932 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go @@ -0,0 +1,157 @@ +package infocmd + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io" + "log/slog" + "os" + "os/exec" + "runtime" + "strings" + + "github.com/a-h/templ" + "github.com/a-h/templ/cmd/templ/lspcmd/pls" +) + +type Arguments struct { + JSON bool `flag:"json" help:"Output info as JSON."` +} + +type Info struct { + OS struct { + GOOS string `json:"goos"` + GOARCH string `json:"goarch"` + } `json:"os"` + Go ToolInfo `json:"go"` + Gopls ToolInfo `json:"gopls"` + Templ ToolInfo `json:"templ"` +} + +type ToolInfo struct { + Location string `json:"location"` + Version string `json:"version"` + OK bool `json:"ok"` + Message string `json:"message,omitempty"` +} + +func getGoInfo() (d ToolInfo) { + // Find Go. + var err error + d.Location, err = exec.LookPath("go") + if err != nil { + d.Message = fmt.Sprintf("failed to find go: %v", err) + return + } + // Run go to find the version. + cmd := exec.Command(d.Location, "version") + v, err := cmd.Output() + if err != nil { + d.Message = fmt.Sprintf("failed to get go version, check that Go is installed: %v", err) + return + } + d.Version = strings.TrimSpace(string(v)) + d.OK = true + return +} + +func getGoplsInfo() (d ToolInfo) { + var err error + d.Location, err = pls.FindGopls() + if err != nil { + d.Message = fmt.Sprintf("failed to find gopls: %v", err) + return + } + cmd := exec.Command(d.Location, "version") + v, err := cmd.Output() + if err != nil { + d.Message = fmt.Sprintf("failed to get gopls version: %v", err) + return + } + d.Version = strings.TrimSpace(string(v)) + d.OK = true + return +} + +func getTemplInfo() (d ToolInfo) { + // Find templ. + var err error + d.Location, err = findTempl() + if err != nil { + d.Message = err.Error() + return + } + // Run templ to find the version. + cmd := exec.Command(d.Location, "version") + v, err := cmd.Output() + if err != nil { + d.Message = fmt.Sprintf("failed to get templ version: %v", err) + return + } + d.Version = strings.TrimSpace(string(v)) + if d.Version != templ.Version() { + d.Message = fmt.Sprintf("version mismatch - you're running %q at the command line, but the version in the path is %q", templ.Version(), d.Version) + return + } + d.OK = true + return +} + +func findTempl() (location string, err error) { + executableName := "templ" + if runtime.GOOS == "windows" { + executableName = "templ.exe" + } + executableName, err = exec.LookPath(executableName) + if err == nil { + // Found on the path. + return executableName, nil + } + + // Unexpected error. + if !errors.Is(err, exec.ErrNotFound) { + return "", fmt.Errorf("unexpected error looking for templ: %w", err) + } + + return "", fmt.Errorf("templ is not in the path (%q). You can install templ with `go install github.com/a-h/templ/cmd/templ@latest`", os.Getenv("PATH")) +} + +func getInfo() (d Info) { + d.OS.GOOS = runtime.GOOS + d.OS.GOARCH = runtime.GOARCH + d.Go = getGoInfo() + d.Gopls = getGoplsInfo() + d.Templ = getTemplInfo() + return +} + +func Run(ctx context.Context, log *slog.Logger, stdout io.Writer, args Arguments) (err error) { + info := getInfo() + if args.JSON { + enc := json.NewEncoder(stdout) + enc.SetIndent("", " ") + return enc.Encode(info) + } + log.Info("os", slog.String("goos", info.OS.GOOS), slog.String("goarch", info.OS.GOARCH)) + logInfo(ctx, log, "go", info.Go) + logInfo(ctx, log, "gopls", info.Gopls) + logInfo(ctx, log, "templ", info.Templ) + return nil +} + +func logInfo(ctx context.Context, log *slog.Logger, name string, ti ToolInfo) { + level := slog.LevelInfo + if !ti.OK { + level = slog.LevelError + } + args := []any{ + slog.String("location", ti.Location), + slog.String("version", ti.Version), + } + if ti.Message != "" { + args = append(args, slog.String("message", ti.Message)) + } + log.Log(ctx, level, name, args...) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go new file mode 100644 index 0000000..0f94502 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go @@ -0,0 +1,130 @@ +package httpdebug + +import ( + "encoding/json" + "io" + "log/slog" + "net/http" + "net/url" + + "github.com/a-h/templ" + "github.com/a-h/templ/cmd/templ/lspcmd/proxy" + "github.com/a-h/templ/cmd/templ/visualize" +) + +var log *slog.Logger + +func NewHandler(l *slog.Logger, s *proxy.Server) http.Handler { + m := http.NewServeMux() + log = l + m.HandleFunc("/templ", func(w http.ResponseWriter, r *http.Request) { + uri := r.URL.Query().Get("uri") + c, ok := s.TemplSource.Get(uri) + if !ok { + Error(w, "uri not found", http.StatusNotFound) + return + } + String(w, c.String()) + }) + m.HandleFunc("/sourcemap", func(w http.ResponseWriter, r *http.Request) { + uri := r.URL.Query().Get("uri") + sm, ok := s.SourceMapCache.Get(uri) + if !ok { + Error(w, "uri not found", http.StatusNotFound) + return + } + JSON(w, sm.SourceLinesToTarget) + }) + m.HandleFunc("/go", func(w http.ResponseWriter, r *http.Request) { + uri := r.URL.Query().Get("uri") + c, ok := s.GoSource[uri] + if !ok { + Error(w, "uri not found", http.StatusNotFound) + return + } + String(w, c) + }) + m.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + uri := r.URL.Query().Get("uri") + if uri == "" { + // List all URIs. + if err := list(s.TemplSource.URIs()).Render(r.Context(), w); err != nil { + Error(w, "failed to list URIs", http.StatusInternalServerError) + } + return + } + // Assume we've got a URI. + templSource, ok := s.TemplSource.Get(uri) + if !ok { + if !ok { + Error(w, "uri not found in document contents", http.StatusNotFound) + return + } + } + goSource, ok := s.GoSource[uri] + if !ok { + if !ok { + Error(w, "uri not found in document contents", http.StatusNotFound) + return + } + } + sm, ok := s.SourceMapCache.Get(uri) + if !ok { + Error(w, "uri not found", http.StatusNotFound) + return + } + if err := visualize.HTML(uri, templSource.String(), goSource, sm).Render(r.Context(), w); err != nil { + Error(w, "failed to visualize HTML", http.StatusInternalServerError) + } + }) + return m +} + +func getMapURL(uri string) templ.SafeURL { + return withQuery("/", uri) +} + +func getSourceMapURL(uri string) templ.SafeURL { + return withQuery("/sourcemap", uri) +} + +func getTemplURL(uri string) templ.SafeURL { + return withQuery("/templ", uri) +} + +func getGoURL(uri string) templ.SafeURL { + return withQuery("/go", uri) +} + +func withQuery(path, uri string) templ.SafeURL { + q := make(url.Values) + q.Set("uri", uri) + u := &url.URL{ + Path: path, + RawPath: path, + RawQuery: q.Encode(), + } + return templ.SafeURL(u.String()) +} + +func JSON(w http.ResponseWriter, v any) { + w.Header().Set("Content-Type", "application/json") + enc := json.NewEncoder(w) + enc.SetIndent("", " ") + if err := enc.Encode(v); err != nil { + log.Error("failed to write JSON response", slog.Any("error", err)) + } +} + +func String(w http.ResponseWriter, s string) { + if _, err := io.WriteString(w, s); err != nil { + log.Error("failed to write string response", slog.Any("error", err)) + } +} + +func Error(w http.ResponseWriter, msg string, status int) { + w.WriteHeader(status) + if _, err := io.WriteString(w, msg); err != nil { + log.Error("failed to write error response", slog.Any("error", err)) + } +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ new file mode 100644 index 0000000..a1e7296 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ @@ -0,0 +1,22 @@ +package httpdebug + +templ list(uris []string) { + + + + + + + + + for _, uri := range uris { + + + + + + + + } +
File
{ uri }MappingSource MapTemplGo
+} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go new file mode 100644 index 0000000..170a26c --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go @@ -0,0 +1,114 @@ +// Code generated by templ - DO NOT EDIT. + +package httpdebug + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import templruntime "github.com/a-h/templ/runtime" + +func list(uris []string) templ.Component { + return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context + if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { + return templ_7745c5c3_CtxErr + } + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if !templ_7745c5c3_IsBuffer { + defer func() { + templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + if templ_7745c5c3_Err == nil { + templ_7745c5c3_Err = templ_7745c5c3_BufErr + } + }() + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, uri := range uris { + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "
File
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var2 string + templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(uri) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 14, Col: 13} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "MappingSource MapTemplGo
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + return nil + }) +} + +var _ = templruntime.GeneratedTemplate diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go new file mode 100644 index 0000000..dbe522f --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go @@ -0,0 +1,145 @@ +package lspcmd + +import ( + "context" + "fmt" + "io" + "log/slog" + "net/http" + "os" + "os/signal" + + "github.com/a-h/templ/cmd/templ/lspcmd/httpdebug" + "github.com/a-h/templ/cmd/templ/lspcmd/pls" + "github.com/a-h/templ/cmd/templ/lspcmd/proxy" + "github.com/a-h/templ/lsp/jsonrpc2" + "github.com/a-h/templ/lsp/protocol" + + _ "net/http/pprof" +) + +type Arguments struct { + Log string + GoplsLog string + GoplsRPCTrace bool + GoplsRemote string + // PPROF sets whether to start a profiling server on localhost:9999 + PPROF bool + // HTTPDebug sets the HTTP endpoint to listen on. Leave empty for no web debug. + HTTPDebug string + // NoPreload disables preloading of templ files on server startup (useful for large monorepos) + NoPreload bool +} + +func Run(stdin io.Reader, stdout, stderr io.Writer, args Arguments) (err error) { + ctx := context.Background() + ctx, cancel := context.WithCancel(ctx) + signalChan := make(chan os.Signal, 1) + signal.Notify(signalChan, os.Interrupt) + defer func() { + signal.Stop(signalChan) + cancel() + }() + if args.PPROF { + go func() { + _ = http.ListenAndServe("localhost:9999", nil) + }() + } + go func() { + select { + case <-signalChan: // First signal, cancel context. + cancel() + case <-ctx.Done(): + } + <-signalChan // Second signal, hard exit. + os.Exit(2) + }() + log := slog.New(slog.NewJSONHandler(io.Discard, nil)) + if args.Log != "" { + file, err := os.OpenFile(args.Log, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) + if err != nil { + return fmt.Errorf("failed to open log file: %w", err) + } + defer func() { + _ = file.Close() + }() + + // Create a new logger with a file writer + log = slog.New(slog.NewJSONHandler(file, nil)) + log.Debug("Logging to file", slog.String("file", args.Log)) + } + templStream := jsonrpc2.NewStream(newStdRwc(log, "templStream", stdout, stdin)) + return run(ctx, log, templStream, args) +} + +func run(ctx context.Context, log *slog.Logger, templStream jsonrpc2.Stream, args Arguments) (err error) { + log.Info("lsp: starting up...") + defer func() { + if r := recover(); r != nil { + log.Error("handled panic", slog.Any("recovered", r)) + } + }() + + log.Info("lsp: starting gopls...") + rwc, err := pls.NewGopls(ctx, log, pls.Options{ + Log: args.GoplsLog, + RPCTrace: args.GoplsRPCTrace, + Remote: args.GoplsRemote, + }) + if err != nil { + log.Error("failed to start gopls", slog.Any("error", err)) + os.Exit(1) + } + + cache := proxy.NewSourceMapCache() + diagnosticCache := proxy.NewDiagnosticCache() + + log.Info("creating gopls client") + clientProxy, clientInit := proxy.NewClient(log, cache, diagnosticCache) + _, goplsConn, goplsServer := protocol.NewClient(ctx, clientProxy, jsonrpc2.NewStream(rwc), log) + defer func() { + if closeErr := goplsConn.Close(); closeErr != nil { + log.Error("failed to close gopls connection", slog.Any("error", closeErr)) + } + }() + + log.Info("creating proxy") + // Create the proxy to sit between. + serverProxy := proxy.NewServer(log, goplsServer, cache, diagnosticCache, args.NoPreload) + + // Create templ server. + log.Info("creating templ server") + _, templConn, templClient := protocol.NewServer(context.Background(), serverProxy, templStream, log) + defer func() { + if err = templConn.Close(); err != nil { + log.Error("failed to close templ connection", slog.Any("error", err)) + } + }() + + // Allow both the server and the client to initiate outbound requests. + clientInit(templClient) + + // Start the web server if required. + if args.HTTPDebug != "" { + log.Info("starting debug http server", slog.String("addr", args.HTTPDebug)) + h := httpdebug.NewHandler(log, serverProxy) + go func() { + if err := http.ListenAndServe(args.HTTPDebug, h); err != nil { + log.Error("web server failed", slog.Any("error", err)) + } + }() + } + + log.Info("listening") + + select { + case <-ctx.Done(): + log.Info("context closed") + case <-templConn.Done(): + log.Info("templConn closed") + case <-goplsConn.Done(): + log.Info("goplsConn closed") + } + log.Info("shutdown complete") + return +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go new file mode 100644 index 0000000..f5b4df5 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go @@ -0,0 +1,128 @@ +package pls + +import ( + "context" + "errors" + "fmt" + "io" + "log/slog" + "os" + "os/exec" + "path" + "runtime" +) + +// Options for the gopls client. +type Options struct { + Log string + RPCTrace bool + Remote string +} + +// AsArguments converts the options into command line arguments for gopls. +func (opts Options) AsArguments() []string { + var args []string + if opts.Log != "" { + args = append(args, "-logfile", opts.Log) + } + if opts.RPCTrace { + args = append(args, "-rpc.trace") + } + if opts.Remote != "" { + args = append(args, "-remote", opts.Remote) + } + return args +} + +func FindGopls() (location string, err error) { + executableName := "gopls" + if runtime.GOOS == "windows" { + executableName = "gopls.exe" + } + + pathLocation, err := exec.LookPath(executableName) + if err == nil { + // Found on the path. + return pathLocation, nil + } + // Unexpected error. + if !errors.Is(err, exec.ErrNotFound) { + return "", fmt.Errorf("unexpected error looking for gopls: %w", err) + } + + home, err := os.UserHomeDir() + if err != nil { + return "", fmt.Errorf("unexpected error looking for gopls: %w", err) + } + + // Probe standard locations. + locations := []string{ + path.Join(home, "go", "bin", executableName), + path.Join(home, ".local", "bin", executableName), + } + for _, location := range locations { + _, err = os.Stat(location) + if err != nil { + continue + } + // Found in a standard location. + return location, nil + } + + return "", fmt.Errorf("cannot find gopls on the path (%q), in $HOME/go/bin or $HOME/.local/bin/gopls. You can install gopls with `go install golang.org/x/tools/gopls@latest`", os.Getenv("PATH")) +} + +// NewGopls starts gopls and opens up a jsonrpc2 connection to it. +func NewGopls(ctx context.Context, log *slog.Logger, opts Options) (rwc io.ReadWriteCloser, err error) { + location, err := FindGopls() + if err != nil { + return nil, err + } + cmd := exec.Command(location, opts.AsArguments()...) + return newProcessReadWriteCloser(log, cmd) +} + +// newProcessReadWriteCloser creates a processReadWriteCloser to allow stdin/stdout to be used as +// a JSON RPC 2.0 transport. +func newProcessReadWriteCloser(logger *slog.Logger, cmd *exec.Cmd) (rwc processReadWriteCloser, err error) { + stdin, err := cmd.StdinPipe() + if err != nil { + return + } + stdout, err := cmd.StdoutPipe() + if err != nil { + return + } + rwc = processReadWriteCloser{ + in: stdin, + out: stdout, + } + go func() { + if err := cmd.Run(); err != nil { + logger.Error("gopls command error", slog.Any("error", err)) + } + }() + return +} + +type processReadWriteCloser struct { + in io.WriteCloser + out io.ReadCloser +} + +func (prwc processReadWriteCloser) Read(p []byte) (n int, err error) { + return prwc.out.Read(p) +} + +func (prwc processReadWriteCloser) Write(p []byte) (n int, err error) { + return prwc.in.Write(p) +} + +func (prwc processReadWriteCloser) Close() error { + errInClose := prwc.in.Close() + errOutClose := prwc.out.Close() + if errInClose != nil || errOutClose != nil { + return fmt.Errorf("error closing process - in: %v, out: %v", errInClose, errOutClose) + } + return nil +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go new file mode 100644 index 0000000..cf1248b --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go @@ -0,0 +1,146 @@ +package proxy + +import ( + "context" + "fmt" + "log/slog" + "strings" + + lsp "github.com/a-h/templ/lsp/protocol" +) + +// Client is responsible for rewriting messages that are +// originated from gopls, and are sent to the client. +// +// Since `gopls` is working on Go files, and this is the `templ` LSP, +// the job of this code is to rewrite incoming requests to adjust the +// file name from `*_templ.go` to `*.templ`, and to remap the char +// positions where required. +type Client struct { + Log *slog.Logger + Target lsp.Client + SourceMapCache *SourceMapCache + DiagnosticCache *DiagnosticCache +} + +func NewClient(log *slog.Logger, cache *SourceMapCache, diagnosticCache *DiagnosticCache) (c *Client, init func(lsp.Client)) { + c = &Client{ + Log: log, + SourceMapCache: cache, + DiagnosticCache: diagnosticCache, + } + return c, func(target lsp.Client) { + c.Target = target + } +} + +func (p Client) Progress(ctx context.Context, params *lsp.ProgressParams) (err error) { + p.Log.Info("client <- server: Progress") + return p.Target.Progress(ctx, params) +} + +func (p Client) WorkDoneProgressCreate(ctx context.Context, params *lsp.WorkDoneProgressCreateParams) (err error) { + p.Log.Info("client <- server: WorkDoneProgressCreate") + return p.Target.WorkDoneProgressCreate(ctx, params) +} + +func (p Client) LogMessage(ctx context.Context, params *lsp.LogMessageParams) (err error) { + p.Log.Info("client <- server: LogMessage", slog.String("message", params.Message)) + return p.Target.LogMessage(ctx, params) +} + +func (p Client) PublishDiagnostics(ctx context.Context, params *lsp.PublishDiagnosticsParams) (err error) { + p.Log.Info("client <- server: PublishDiagnostics") + if strings.HasSuffix(string(params.URI), "go.mod") { + p.Log.Info("client <- server: PublishDiagnostics: skipping go.mod diagnostics") + return nil + } + // Log diagnostics. + for i, diagnostic := range params.Diagnostics { + p.Log.Info(fmt.Sprintf("client <- server: PublishDiagnostics: [%d]", i), slog.Any("diagnostic", diagnostic)) + } + // Get the sourcemap from the cache. + uri := strings.TrimSuffix(string(params.URI), "_templ.go") + ".templ" + sourceMap, ok := p.SourceMapCache.Get(uri) + if !ok { + p.Log.Error("unable to complete because the sourcemap for the URI doesn't exist in the cache", slog.String("uri", uri)) + return fmt.Errorf("unable to complete because the sourcemap for %q doesn't exist in the cache, has the didOpen notification been sent yet?", uri) + } + params.URI = lsp.DocumentURI(uri) + // Rewrite the positions. + for i, item := range params.Diagnostics { + start, ok := sourceMap.SourcePositionFromTarget(item.Range.Start.Line, item.Range.Start.Character) + if !ok { + continue + } + if item.Range.Start.Line == item.Range.End.Line { + length := item.Range.End.Character - item.Range.Start.Character + item.Range.Start.Line = start.Line + item.Range.Start.Character = start.Col + item.Range.End.Line = start.Line + item.Range.End.Character = start.Col + length + params.Diagnostics[i] = item + p.Log.Info(fmt.Sprintf("diagnostic [%d] rewritten", i), slog.Any("diagnostic", item)) + continue + } + end, ok := sourceMap.SourcePositionFromTarget(item.Range.End.Line, item.Range.End.Character) + if !ok { + continue + } + item.Range.Start.Line = start.Line + item.Range.Start.Character = start.Col + item.Range.End.Line = end.Line + item.Range.End.Character = end.Col + params.Diagnostics[i] = item + p.Log.Info(fmt.Sprintf("diagnostic [%d] rewritten", i), slog.Any("diagnostic", item)) + } + params.Diagnostics = p.DiagnosticCache.AddTemplDiagnostics(uri, params.Diagnostics) + err = p.Target.PublishDiagnostics(ctx, params) + return err +} + +func (p Client) ShowMessage(ctx context.Context, params *lsp.ShowMessageParams) (err error) { + p.Log.Info("client <- server: ShowMessage", slog.String("message", params.Message)) + if strings.HasPrefix(params.Message, "Do not edit this file!") { + return + } + if strings.HasPrefix(params.Message, "Warning: editing") { + return + } + return p.Target.ShowMessage(ctx, params) +} + +func (p Client) ShowMessageRequest(ctx context.Context, params *lsp.ShowMessageRequestParams) (result *lsp.MessageActionItem, err error) { + p.Log.Info("client <- server: ShowMessageRequest", slog.String("message", params.Message)) + return p.Target.ShowMessageRequest(ctx, params) +} + +func (p Client) Telemetry(ctx context.Context, params any) (err error) { + p.Log.Info("client <- server: Telemetry") + return p.Target.Telemetry(ctx, params) +} + +func (p Client) RegisterCapability(ctx context.Context, params *lsp.RegistrationParams) (err error) { + p.Log.Info("client <- server: RegisterCapability") + return p.Target.RegisterCapability(ctx, params) +} + +func (p Client) UnregisterCapability(ctx context.Context, params *lsp.UnregistrationParams) (err error) { + p.Log.Info("client <- server: UnregisterCapability") + return p.Target.UnregisterCapability(ctx, params) +} + +func (p Client) ApplyEdit(ctx context.Context, params *lsp.ApplyWorkspaceEditParams) (result *lsp.ApplyWorkspaceEditResponse, err error) { + p.Log.Info("client <- server: ApplyEdit") + return p.Target.ApplyEdit(ctx, params) +} + +func (p Client) Configuration(ctx context.Context, params *lsp.ConfigurationParams) (result []any, err error) { + p.Log.Info("client <- server: Configuration") + return p.Target.Configuration(ctx, params) +} + +func (p Client) WorkspaceFolders(ctx context.Context) (result []lsp.WorkspaceFolder, err error) { + p.Log.Info("client <- server: WorkspaceFolders") + return p.Target.WorkspaceFolders(ctx) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go new file mode 100644 index 0000000..9af985b --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go @@ -0,0 +1,61 @@ +package proxy + +import ( + "sync" + + lsp "github.com/a-h/templ/lsp/protocol" +) + +func NewDiagnosticCache() *DiagnosticCache { + return &DiagnosticCache{ + m: &sync.Mutex{}, + cache: make(map[string]fileDiagnostic), + } +} + +type fileDiagnostic struct { + templDiagnostics []lsp.Diagnostic + goplsDiagnostics []lsp.Diagnostic +} + +type DiagnosticCache struct { + m *sync.Mutex + cache map[string]fileDiagnostic +} + +func zeroLengthSliceIfNil(diags []lsp.Diagnostic) []lsp.Diagnostic { + if diags == nil { + return make([]lsp.Diagnostic, 0) + } + return diags +} + +func (dc *DiagnosticCache) AddTemplDiagnostics(uri string, goDiagnostics []lsp.Diagnostic) []lsp.Diagnostic { + goDiagnostics = zeroLengthSliceIfNil(goDiagnostics) + dc.m.Lock() + defer dc.m.Unlock() + diag := dc.cache[uri] + diag.goplsDiagnostics = goDiagnostics + diag.templDiagnostics = zeroLengthSliceIfNil(diag.templDiagnostics) + dc.cache[uri] = diag + return append(diag.templDiagnostics, goDiagnostics...) +} + +func (dc *DiagnosticCache) ClearTemplDiagnostics(uri string) { + dc.m.Lock() + defer dc.m.Unlock() + diag := dc.cache[uri] + diag.templDiagnostics = make([]lsp.Diagnostic, 0) + dc.cache[uri] = diag +} + +func (dc *DiagnosticCache) AddGoDiagnostics(uri string, templDiagnostics []lsp.Diagnostic) []lsp.Diagnostic { + templDiagnostics = zeroLengthSliceIfNil(templDiagnostics) + dc.m.Lock() + defer dc.m.Unlock() + diag := dc.cache[uri] + diag.templDiagnostics = templDiagnostics + diag.goplsDiagnostics = zeroLengthSliceIfNil(diag.goplsDiagnostics) + dc.cache[uri] = diag + return append(diag.goplsDiagnostics, templDiagnostics...) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go new file mode 100644 index 0000000..07819ab --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go @@ -0,0 +1,215 @@ +package proxy + +import ( + "fmt" + "log/slog" + "strings" + "sync" + + lsp "github.com/a-h/templ/lsp/protocol" +) + +// newDocumentContents creates a document content processing tool. +func newDocumentContents(log *slog.Logger) *DocumentContents { + return &DocumentContents{ + m: new(sync.Mutex), + uriToContents: make(map[string]*Document), + log: log, + } +} + +type DocumentContents struct { + m *sync.Mutex + uriToContents map[string]*Document + log *slog.Logger +} + +// Set the contents of a document. +func (dc *DocumentContents) Set(uri string, d *Document) { + dc.m.Lock() + defer dc.m.Unlock() + dc.uriToContents[uri] = d +} + +// Get the contents of a document. +func (dc *DocumentContents) Get(uri string) (d *Document, ok bool) { + dc.m.Lock() + defer dc.m.Unlock() + d, ok = dc.uriToContents[uri] + return +} + +// Delete a document from memory. +func (dc *DocumentContents) Delete(uri string) { + dc.m.Lock() + defer dc.m.Unlock() + delete(dc.uriToContents, uri) +} + +func (dc *DocumentContents) URIs() (uris []string) { + dc.m.Lock() + defer dc.m.Unlock() + uris = make([]string, len(dc.uriToContents)) + var i int + for k := range dc.uriToContents { + uris[i] = k + i++ + } + return uris +} + +// Apply changes to the document from the client, and return a list of change requests to send back to the client. +func (dc *DocumentContents) Apply(uri string, changes []lsp.TextDocumentContentChangeEvent) (d *Document, err error) { + dc.m.Lock() + defer dc.m.Unlock() + var ok bool + d, ok = dc.uriToContents[uri] + if !ok { + err = fmt.Errorf("document not found") + return + } + for _, change := range changes { + d.Apply(change.Range, change.Text) + } + return +} + +func NewDocument(log *slog.Logger, s string) *Document { + return &Document{ + Log: log, + Lines: strings.Split(s, "\n"), + } +} + +type Document struct { + Log *slog.Logger + Lines []string +} + +func (d *Document) LineLengths() (lens []int) { + lens = make([]int, len(d.Lines)) + for i, l := range d.Lines { + lens[i] = len(l) + } + return +} + +func (d *Document) Len() (line, col int) { + line = len(d.Lines) + col = len(d.Lines[len(d.Lines)-1]) + return +} + +func (d *Document) Overwrite(fromLine, fromCol, toLine, toCol int, lines []string) { + suffix := d.Lines[toLine][toCol:] + toLen := d.LineLengths()[toLine] + d.Delete(fromLine, fromCol, toLine, toLen) + lines[len(lines)-1] = lines[len(lines)-1] + suffix + d.Insert(fromLine, fromCol, lines) +} + +func (d *Document) Insert(line, col int, lines []string) { + prefix := d.Lines[line][:col] + suffix := d.Lines[line][col:] + lines[0] = prefix + lines[0] + d.Lines[line] = lines[0] + + if len(lines) > 1 { + d.InsertLines(line+1, lines[1:]) + } + + d.Lines[line+len(lines)-1] = lines[len(lines)-1] + suffix +} + +func (d *Document) InsertLines(i int, withLines []string) { + d.Lines = append(d.Lines[:i], append(withLines, d.Lines[i:]...)...) +} + +func (d *Document) Delete(fromLine, fromCol, toLine, toCol int) { + prefix := d.Lines[fromLine][:fromCol] + suffix := d.Lines[toLine][toCol:] + + // Delete intermediate lines. + deleteFrom := fromLine + deleteTo := fromLine + (toLine - fromLine) + d.DeleteLines(deleteFrom, deleteTo) + + // Merge the contents of the final line. + d.Lines[fromLine] = prefix + suffix +} + +func (d *Document) DeleteLines(i, j int) { + d.Lines = append(d.Lines[:i], d.Lines[j:]...) +} + +func (d *Document) String() string { + return strings.Join(d.Lines, "\n") +} + +func (d *Document) Replace(with string) { + d.Lines = strings.Split(with, "\n") +} + +func (d *Document) Apply(r *lsp.Range, with string) { + withLines := strings.Split(with, "\n") + d.normalize(r) + if d.isWholeDocument(r) { + d.Lines = withLines + return + } + if d.isInsert(r, with) { + d.Insert(int(r.Start.Line), int(r.Start.Character), withLines) + return + } + if d.isDelete(r, with) { + d.Delete(int(r.Start.Line), int(r.Start.Character), int(r.End.Line), int(r.End.Character)) + return + } + if d.isOverwrite(r, with) { + d.Overwrite(int(r.Start.Line), int(r.Start.Character), int(r.End.Line), int(r.End.Character), withLines) + } +} + +func (d *Document) normalize(r *lsp.Range) { + if r == nil { + return + } + lens := d.LineLengths() + if r.Start.Line >= uint32(len(lens)) { + r.Start.Line = uint32(len(lens) - 1) + r.Start.Character = uint32(lens[r.Start.Line]) + } + if r.Start.Character > uint32(lens[r.Start.Line]) { + r.Start.Character = uint32(lens[r.Start.Line]) + } + if r.End.Line >= uint32(len(lens)) { + r.End.Line = uint32(len(lens) - 1) + r.End.Character = uint32(lens[r.End.Line]) + } + if r.End.Character > uint32(lens[r.End.Line]) { + r.End.Character = uint32(lens[r.End.Line]) + } +} + +func (d *Document) isOverwrite(r *lsp.Range, with string) bool { + return (r.End.Line != r.Start.Line || r.Start.Character != r.End.Character) && with != "" +} + +func (d *Document) isInsert(r *lsp.Range, with string) bool { + return r.End.Line == r.Start.Line && r.Start.Character == r.End.Character && with != "" +} + +func (d *Document) isDelete(r *lsp.Range, with string) bool { + return (r.End.Line != r.Start.Line || r.Start.Character != r.End.Character) && with == "" +} + +func (d *Document) isWholeDocument(r *lsp.Range) bool { + if r == nil { + return true + } + if r.Start.Line != 0 || r.Start.Character != 0 { + return false + } + l, c := d.Len() + return r.End.Line == uint32(l) || r.End.Character == uint32(c) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go new file mode 100644 index 0000000..3afb472 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go @@ -0,0 +1,24 @@ +package proxy + +import ( + "path" + "strings" + + lsp "github.com/a-h/templ/lsp/protocol" +) + +func convertTemplToGoURI(templURI lsp.DocumentURI) (isTemplFile bool, goURI lsp.DocumentURI) { + base, fileName := path.Split(string(templURI)) + if !strings.HasSuffix(fileName, ".templ") { + return + } + return true, lsp.DocumentURI(base + (strings.TrimSuffix(fileName, ".templ") + "_templ.go")) +} + +func convertTemplGoToTemplURI(goURI lsp.DocumentURI) (isTemplGoFile bool, templURI lsp.DocumentURI) { + base, fileName := path.Split(string(goURI)) + if !strings.HasSuffix(fileName, "_templ.go") { + return + } + return true, lsp.DocumentURI(base + (strings.TrimSuffix(fileName, "_templ.go") + ".templ")) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go new file mode 100644 index 0000000..d600e63 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go @@ -0,0 +1,1345 @@ +package proxy + +import ( + "context" + "fmt" + "log/slog" + "os" + "path/filepath" + "regexp" + "strings" + + "github.com/a-h/parse" + "github.com/a-h/templ/internal/imports" + "github.com/a-h/templ/internal/lazyloader" + lsp "github.com/a-h/templ/lsp/protocol" + "github.com/a-h/templ/lsp/uri" + + "github.com/a-h/templ" + "github.com/a-h/templ/generator" + "github.com/a-h/templ/parser/v2" +) + +// Server is responsible for rewriting messages that are +// originated from the text editor, and need to be sent to gopls. +// +// Since the editor is working on `templ` files, and `gopls` works +// on Go files, the job of this code is to rewrite incoming requests +// to adjust the file names from `*.templ` to `*_templ.go` and to +// remap the line/character positions in the `templ` files to their +// corresponding locations in the Go file. +// +// This allows gopls to operate as usual. +// +// This code also rewrites the responses back from gopls to do the +// inverse operation - to put the file names back, and readjust any +// character positions. +type Server struct { + Log *slog.Logger + Target lsp.Server + SourceMapCache *SourceMapCache + DiagnosticCache *DiagnosticCache + TemplSource *DocumentContents + GoSource map[string]string + NoPreload bool + preLoadURIs []*lsp.DidOpenTextDocumentParams + templDocLazyLoader lazyloader.TemplDocLazyLoader +} + +func NewServer(log *slog.Logger, target lsp.Server, cache *SourceMapCache, diagnosticCache *DiagnosticCache, noPreload bool) (s *Server) { + return &Server{ + Log: log, + Target: target, + SourceMapCache: cache, + DiagnosticCache: diagnosticCache, + TemplSource: newDocumentContents(log), + GoSource: make(map[string]string), + NoPreload: noPreload, + } +} + +// updatePosition maps positions and filenames from source templ files into the target *.go files. +func (p *Server) updatePosition(templURI lsp.DocumentURI, current lsp.Position) (ok bool, goURI lsp.DocumentURI, updated lsp.Position) { + log := p.Log.With(slog.String("uri", string(templURI))) + var isTemplFile bool + if isTemplFile, goURI = convertTemplToGoURI(templURI); !isTemplFile { + return false, templURI, current + } + sourceMap, ok := p.SourceMapCache.Get(string(templURI)) + if !ok { + log.Warn("completion: sourcemap not found in cache, it could be that didOpen was not called") + return + } + // Map from the source position to target Go position. + to, ok := sourceMap.TargetPositionFromSource(current.Line, current.Character) + if !ok { + log.Info("updatePosition: not found", slog.String("from", fmt.Sprintf("%d:%d", current.Line, current.Character))) + return false, templURI, current + } + log.Info("updatePosition: found", slog.String("fromTempl", fmt.Sprintf("%d:%d", current.Line, current.Character)), + slog.String("toGo", fmt.Sprintf("%d:%d", to.Line, to.Col))) + updated.Line = to.Line + updated.Character = to.Col + + return true, goURI, updated +} + +func (p *Server) convertTemplRangeToGoRange(templURI lsp.DocumentURI, input lsp.Range) (output lsp.Range, ok bool) { + output = input + var sourceMap *parser.SourceMap + sourceMap, ok = p.SourceMapCache.Get(string(templURI)) + if !ok { + p.Log.Warn("templ->go: sourcemap not found in cache") + return + } + // Map from the source position to target Go position. + start, ok := sourceMap.TargetPositionFromSource(input.Start.Line, input.Start.Character) + if ok { + output.Start.Line = start.Line + output.Start.Character = start.Col + } + end, ok := sourceMap.TargetPositionFromSource(input.End.Line, input.End.Character) + if ok { + output.End.Line = end.Line + output.End.Character = end.Col + } + return +} + +func (p *Server) convertGoRangeToTemplRange(templURI lsp.DocumentURI, input lsp.Range) (output lsp.Range) { + output = input + sourceMap, ok := p.SourceMapCache.Get(string(templURI)) + if !ok { + p.Log.Warn("go->templ: sourcemap not found in cache") + return + } + // Map from the source position to target Go position. + start, startPositionMapped := sourceMap.SourcePositionFromTarget(input.Start.Line, input.Start.Character) + if startPositionMapped { + output.Start.Line = start.Line + output.Start.Character = start.Col + } + end, endPositionMapped := sourceMap.SourcePositionFromTarget(input.End.Line, input.End.Character) + if endPositionMapped { + output.End.Line = end.Line + output.End.Character = end.Col + } + if !startPositionMapped || !endPositionMapped { + p.Log.Warn("go->templ: range not found in sourcemap", slog.Any("range", input)) + } + return +} + +// parseTemplate parses the templ file content, and notifies the end user via the LSP about how it went. +func (p *Server) parseTemplate(ctx context.Context, uri uri.URI, templateText string) (template *parser.TemplateFile, ok bool, err error) { + template, err = parser.ParseString(templateText) + if err != nil { + msg := &lsp.PublishDiagnosticsParams{ + URI: uri, + Diagnostics: []lsp.Diagnostic{ + { + Severity: lsp.DiagnosticSeverityError, + Code: "", + Source: "templ", + Message: err.Error(), + }, + }, + } + if pe, isParserError := err.(parse.ParseError); isParserError { + msg.Diagnostics[0].Range = lsp.Range{ + Start: lsp.Position{ + Line: uint32(pe.Pos.Line), + Character: uint32(pe.Pos.Col), + }, + End: lsp.Position{ + Line: uint32(pe.Pos.Line), + Character: uint32(pe.Pos.Col), + }, + } + } + msg.Diagnostics = p.DiagnosticCache.AddGoDiagnostics(string(uri), msg.Diagnostics) + err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, msg) + if err != nil { + p.Log.Error("failed to publish error diagnostics", slog.Any("error", err)) + } + // If the template was even partially parsed, it's still potentially useful. + if template != nil { + template.Filepath = string(uri) + } + return + } + template.Filepath = string(uri) + parsedDiagnostics, err := parser.Diagnose(template) + if err != nil { + return + } + ok = true + if len(parsedDiagnostics) > 0 { + msg := &lsp.PublishDiagnosticsParams{ + URI: uri, + } + for _, d := range parsedDiagnostics { + msg.Diagnostics = append(msg.Diagnostics, lsp.Diagnostic{ + Severity: lsp.DiagnosticSeverityWarning, + Code: "", + Source: "templ", + Message: d.Message, + Range: lsp.Range{ + Start: lsp.Position{ + Line: uint32(d.Range.From.Line), + Character: uint32(d.Range.From.Col), + }, + End: lsp.Position{ + Line: uint32(d.Range.To.Line), + Character: uint32(d.Range.To.Col), + }, + }, + }) + } + msg.Diagnostics = p.DiagnosticCache.AddGoDiagnostics(string(uri), msg.Diagnostics) + err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, msg) + if err != nil { + p.Log.Error("failed to publish error diagnostics", slog.Any("error", err)) + } + return + } + // Clear templ diagnostics. + p.DiagnosticCache.ClearTemplDiagnostics(string(uri)) + err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, &lsp.PublishDiagnosticsParams{ + URI: uri, + // Cannot be nil as per https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#publishDiagnosticsParams + Diagnostics: []lsp.Diagnostic{}, + }) + if err != nil { + p.Log.Error("failed to publish diagnostics", slog.Any("error", err)) + return + } + return +} + +func (p *Server) Initialize(ctx context.Context, params *lsp.InitializeParams) (result *lsp.InitializeResult, err error) { + p.Log.Info("client -> server: Initialize") + defer p.Log.Info("client -> server: Initialize end") + result, err = p.Target.Initialize(ctx, params) + if err != nil { + p.Log.Error("Initialize failed", slog.Any("error", err)) + } + // Add the '<' and '{' trigger so that we can do snippets for tags. + if result.Capabilities.CompletionProvider == nil { + result.Capabilities.CompletionProvider = &lsp.CompletionOptions{} + } + result.Capabilities.CompletionProvider.TriggerCharacters = append(result.Capabilities.CompletionProvider.TriggerCharacters, "{", "<") + // Remove all the gopls commands. + if result.Capabilities.ExecuteCommandProvider == nil { + result.Capabilities.ExecuteCommandProvider = &lsp.ExecuteCommandOptions{} + } + result.Capabilities.ExecuteCommandProvider.Commands = []string{} + result.Capabilities.DocumentFormattingProvider = true + result.Capabilities.SemanticTokensProvider = nil + result.Capabilities.DocumentRangeFormattingProvider = false + result.Capabilities.TextDocumentSync = lsp.TextDocumentSyncOptions{ + OpenClose: true, + Change: lsp.TextDocumentSyncKindFull, + WillSave: false, + WillSaveWaitUntil: false, + Save: &lsp.SaveOptions{IncludeText: true}, + } + + if p.NoPreload { + p.templDocLazyLoader = lazyloader.New(lazyloader.NewParams{ + TemplDocHandler: p, + OpenDocSources: p.GoSource, + }) + } else { + p.preload(ctx, params.WorkspaceFolders) + } + + result.ServerInfo.Name = "templ-lsp" + result.ServerInfo.Version = templ.Version() + + return result, err +} + +func (p *Server) preload(ctx context.Context, workspaceFolders []lsp.WorkspaceFolder) { + for _, c := range workspaceFolders { + path := strings.TrimPrefix(c.URI, "file://") + werr := filepath.Walk(path, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + p.Log.Info("found file", slog.String("path", path)) + uri := uri.URI("file://" + path) + isTemplFile, goURI := convertTemplToGoURI(uri) + + if !isTemplFile { + return nil + } + + b, err := os.ReadFile(path) + if err != nil { + return err + } + p.TemplSource.Set(string(uri), NewDocument(p.Log, string(b))) + // Parse the template. + template, _, err := p.parseTemplate(ctx, uri, string(b)) + if err != nil { + // It's expected to have some failures while parsing the template, since + // you are likely to have invalid docs while you're typing. + p.Log.Info("parseTemplate failure", slog.Any("error", err)) + } + w := new(strings.Builder) + generatorOutput, err := generator.Generate(template, w) + if err != nil { + // It's expected to have some failures while generating code from the template, since + // you are likely to have invalid docs while you're typing. + p.Log.Info("generator failure", slog.Any("error", err)) + } + p.Log.Info("setting source map cache contents", slog.String("uri", string(uri))) + p.SourceMapCache.Set(string(uri), generatorOutput.SourceMap) + // Set the Go contents. + p.GoSource[string(uri)] = w.String() + + didOpenParams := &lsp.DidOpenTextDocumentParams{ + TextDocument: lsp.TextDocumentItem{ + URI: goURI, + Text: w.String(), + Version: 1, + LanguageID: "go", + }, + } + + p.preLoadURIs = append(p.preLoadURIs, didOpenParams) + return nil + }) + if werr != nil { + p.Log.Error("walk error", slog.Any("error", werr)) + } + } +} + +func (p *Server) Initialized(ctx context.Context, params *lsp.InitializedParams) (err error) { + p.Log.Info("client -> server: Initialized") + defer p.Log.Info("client -> server: Initialized end") + goInitErr := p.Target.Initialized(ctx, params) + + for i, doParams := range p.preLoadURIs { + doErr := p.Target.DidOpen(ctx, doParams) + if doErr != nil { + return doErr + } + p.preLoadURIs[i] = nil + } + + return goInitErr +} + +func (p *Server) Shutdown(ctx context.Context) (err error) { + p.Log.Info("client -> server: Shutdown") + defer p.Log.Info("client -> server: Shutdown end") + return p.Target.Shutdown(ctx) +} + +func (p *Server) Exit(ctx context.Context) (err error) { + p.Log.Info("client -> server: Exit") + defer p.Log.Info("client -> server: Exit end") + return p.Target.Exit(ctx) +} + +func (p *Server) WorkDoneProgressCancel(ctx context.Context, params *lsp.WorkDoneProgressCancelParams) (err error) { + p.Log.Info("client -> server: WorkDoneProgressCancel") + defer p.Log.Info("client -> server: WorkDoneProgressCancel end") + return p.Target.WorkDoneProgressCancel(ctx, params) +} + +func (p *Server) LogTrace(ctx context.Context, params *lsp.LogTraceParams) (err error) { + p.Log.Info("client -> server: LogTrace", slog.String("message", params.Message)) + defer p.Log.Info("client -> server: LogTrace end") + return p.Target.LogTrace(ctx, params) +} + +func (p *Server) SetTrace(ctx context.Context, params *lsp.SetTraceParams) (err error) { + p.Log.Info("client -> server: SetTrace") + defer p.Log.Info("client -> server: SetTrace end") + return p.Target.SetTrace(ctx, params) +} + +var supportedCodeActions = map[string]bool{} + +func (p *Server) CodeAction(ctx context.Context, params *lsp.CodeActionParams) (result []lsp.CodeAction, err error) { + p.Log.Info("client -> server: CodeAction", slog.Any("params", params)) + defer p.Log.Info("client -> server: CodeAction end") + + if p.NoPreload && !p.templDocLazyLoader.HasLoaded(params.TextDocument) { + p.Log.Error("lazy loader has not loaded document", slog.Any("params", params)) + return nil, nil + } + + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.CodeAction(ctx, params) + } + templURI := params.TextDocument.URI + var ok bool + if params.Range, ok = p.convertTemplRangeToGoRange(templURI, params.Range); !ok { + // Don't pass the request to gopls if the range is not within a Go code block. + return + } + params.TextDocument.URI = goURI + result, err = p.Target.CodeAction(ctx, params) + if err != nil { + return + } + var updatedResults []lsp.CodeAction + // Filter out commands that are not yet supported. + // For example, "Fill Struct" runs the `gopls.apply_fix` command. + // This command has a set of arguments, including Fix, Range and URI. + // However, these are just a map[string]any so for each command that we want to support, + // we need to know what the arguments are so that we can rewrite them. + for _, r := range result { + if !supportedCodeActions[r.Title] { + continue + } + // Rewrite the Diagnostics range field. + for di, diag := range r.Diagnostics { + r.Diagnostics[di].Range = p.convertGoRangeToTemplRange(templURI, diag.Range) + } + // Rewrite the DocumentChanges. + if r.Edit != nil { + for dci, dc := range r.Edit.DocumentChanges { + for ei, edit := range dc.Edits { + dc.Edits[ei].Range = p.convertGoRangeToTemplRange(templURI, edit.Range) + } + dc.TextDocument.URI = templURI + r.Edit.DocumentChanges[dci] = dc + } + } + updatedResults = append(updatedResults, r) + } + return updatedResults, nil +} + +func (p *Server) CodeLens(ctx context.Context, params *lsp.CodeLensParams) (result []lsp.CodeLens, err error) { + p.Log.Info("client -> server: CodeLens") + defer p.Log.Info("client -> server: CodeLens end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.CodeLens(ctx, params) + } + templURI := params.TextDocument.URI + params.TextDocument.URI = goURI + result, err = p.Target.CodeLens(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + for i, cl := range result { + cl.Range = p.convertGoRangeToTemplRange(templURI, cl.Range) + result[i] = cl + } + return +} + +func (p *Server) CodeLensResolve(ctx context.Context, params *lsp.CodeLens) (result *lsp.CodeLens, err error) { + p.Log.Info("client -> server: CodeLensResolve") + defer p.Log.Info("client -> server: CodeLensResolve end") + return p.Target.CodeLensResolve(ctx, params) +} + +func (p *Server) ColorPresentation(ctx context.Context, params *lsp.ColorPresentationParams) (result []lsp.ColorPresentation, err error) { + p.Log.Info("client -> server: ColorPresentation ColorPresentation") + defer p.Log.Info("client -> server: ColorPresentation end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.ColorPresentation(ctx, params) + } + templURI := params.TextDocument.URI + params.TextDocument.URI = goURI + result, err = p.Target.ColorPresentation(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + for i, r := range result { + if r.TextEdit != nil { + r.TextEdit.Range = p.convertGoRangeToTemplRange(templURI, r.TextEdit.Range) + } + result[i] = r + } + return +} + +func (p *Server) Completion(ctx context.Context, params *lsp.CompletionParams) (result *lsp.CompletionList, err error) { + p.Log.Info("client -> server: Completion") + defer p.Log.Info("client -> server: Completion end") + if params.Context != nil && params.Context.TriggerCharacter == "<" { + result = &lsp.CompletionList{ + Items: htmlSnippets, + } + return + } + // Get the sourcemap from the cache. + templURI := params.TextDocument.URI + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) + if !ok { + return nil, nil + } + + // Ensure that Go source is available. + gosrc := strings.Split(p.GoSource[string(templURI)], "\n") + if len(gosrc) < int(params.Position.Line) { + p.Log.Info("completion: line position out of range") + return nil, nil + } + if len(gosrc[params.Position.Line]) < int(params.Position.Character) { + p.Log.Info("completion: col position out of range") + return nil, nil + } + + // Call the target. + result, err = p.Target.Completion(ctx, params) + if err != nil { + p.Log.Warn("completion: got gopls error", slog.Any("error", err)) + return + } + if result == nil { + return + } + // Rewrite the result positions. + p.Log.Info("completion: received items", slog.Int("count", len(result.Items))) + + for i, item := range result.Items { + item.FilterText = stripTemplStringable(item.FilterText) + if item.TextEdit != nil { + if item.TextEdit.TextEdit != nil { + item.TextEdit.TextEdit.Range = p.convertGoRangeToTemplRange(templURI, item.TextEdit.TextEdit.Range) + item.TextEdit.TextEdit.NewText = stripTemplStringable(item.TextEdit.TextEdit.NewText) + } + if item.TextEdit.InsertReplaceEdit != nil { + item.TextEdit.InsertReplaceEdit.Insert = p.convertGoRangeToTemplRange(templURI, item.TextEdit.InsertReplaceEdit.Insert) + item.TextEdit.InsertReplaceEdit.Replace = p.convertGoRangeToTemplRange(templURI, item.TextEdit.InsertReplaceEdit.Replace) + item.TextEdit.InsertReplaceEdit.NewText = stripTemplStringable(item.TextEdit.InsertReplaceEdit.NewText) + } + } + if len(item.AdditionalTextEdits) > 0 { + doc, ok := p.TemplSource.Get(string(templURI)) + if !ok { + continue + } + pkg := getPackageFromItemDetail(item.Detail) + imp := addImport(doc.Lines, pkg) + item.AdditionalTextEdits = []lsp.TextEdit{ + { + Range: lsp.Range{ + Start: lsp.Position{Line: uint32(imp.LineIndex), Character: 0}, + End: lsp.Position{Line: uint32(imp.LineIndex), Character: 0}, + }, + NewText: imp.Text, + }, + } + } + result.Items[i] = item + } + + // Add templ snippet. + result.Items = append(result.Items, snippet...) + + return +} + +// The LSP attempts to insert `templ.stringable(variable)` as a completion, but this isn't required. +func stripTemplStringable(s string) string { + if !strings.HasPrefix(s, "templ.stringable(") { + return s + } + s = strings.TrimPrefix(s, "templ.stringable(") + s = strings.TrimSuffix(s, ")") + return s +} + +var completionWithImport = regexp.MustCompile(`^.*\(from\s(".+")\)$`) + +func getPackageFromItemDetail(pkg string) string { + if m := completionWithImport.FindStringSubmatch(pkg); len(m) == 2 { + return m[1] + } + return pkg +} + +type importInsert struct { + Text string + LineIndex int +} + +var nonImportKeywordRegexp = regexp.MustCompile(`^(?:templ|func|css|script|var|const|type)\s`) + +func addImport(lines []string, pkg string) (result importInsert) { + var isInMultiLineImport bool + lastSingleLineImportIndex := -1 + for lineIndex, line := range lines { + if strings.HasPrefix(line, "import (") { + isInMultiLineImport = true + continue + } + if strings.HasPrefix(line, "import \"") { + lastSingleLineImportIndex = lineIndex + continue + } + if isInMultiLineImport && strings.HasPrefix(line, ")") { + return importInsert{ + LineIndex: lineIndex, + Text: fmt.Sprintf("\t%s\n", pkg), + } + } + // Only add import statements before templates, functions, css, and script templates. + if nonImportKeywordRegexp.MatchString(line) { + break + } + } + var suffix string + if lastSingleLineImportIndex == -1 { + lastSingleLineImportIndex = 1 + suffix = "\n" + } + return importInsert{ + LineIndex: lastSingleLineImportIndex + 1, + Text: fmt.Sprintf("import %s\n%s", pkg, suffix), + } +} + +func (p *Server) CompletionResolve(ctx context.Context, params *lsp.CompletionItem) (result *lsp.CompletionItem, err error) { + p.Log.Info("client -> server: CompletionResolve") + defer p.Log.Info("client -> server: CompletionResolve end") + return p.Target.CompletionResolve(ctx, params) +} + +func (p *Server) Declaration(ctx context.Context, params *lsp.DeclarationParams) (result []lsp.Location /* Declaration | DeclarationLink[] | null */, err error) { + p.Log.Info("client -> server: Declaration") + defer p.Log.Info("client -> server: Declaration end") + // Rewrite the request. + templURI := params.TextDocument.URI + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) + if !ok { + return nil, nil + } + // Call gopls and get the result. + result, err = p.Target.Declaration(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + for i, r := range result { + if isTemplGoFile, templURI := convertTemplGoToTemplURI(r.URI); isTemplGoFile { + result[i].URI = templURI + result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) + } + } + return +} + +func (p *Server) Definition(ctx context.Context, params *lsp.DefinitionParams) (result []lsp.Location /* Definition | DefinitionLink[] | null */, err error) { + p.Log.Info("client -> server: Definition") + defer p.Log.Info("client -> server: Definition end") + // Rewrite the request. + templURI := params.TextDocument.URI + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) + if !ok { + return result, nil + } + // Call gopls and get the result. + result, err = p.Target.Definition(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + for i, r := range result { + if isTemplGoFile, templURI := convertTemplGoToTemplURI(r.URI); isTemplGoFile { + result[i].URI = templURI + result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) + } + } + return +} + +func (p *Server) DidChange(ctx context.Context, params *lsp.DidChangeTextDocumentParams) (err error) { + p.Log.Info("client -> server: DidChange", slog.Any("params", params)) + defer p.Log.Info("client -> server: DidChange end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + p.Log.Error("not a templ file") + return + } + // Apply content changes to the cached template. + d, err := p.TemplSource.Apply(string(params.TextDocument.URI), params.ContentChanges) + if err != nil { + p.Log.Error("error applying changes", slog.Any("error", err)) + return + } + // Update the Go code. + p.Log.Info("parsing template") + template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, d.String()) + if err != nil { + p.Log.Error("parseTemplate failure", slog.Any("error", err)) + } + if !ok { + p.Log.Info("parseTemplate not OK, but attempting to generate anyway") + } + // Even if the template isn't parsed successfully, attempt to generate, because we + // need the LSP to have an up-to-date view of completions. + w := new(strings.Builder) + // In future updates, we may pass `WithSkipCodeGeneratedComment` to the generator. + // This will enable a number of actions within gopls that it doesn't currently apply because + // it recognises templ code as being auto-generated. + // + // This change would increase the surface area of gopls that we use, so may surface a number of issues + // if enabled. + generatorOutput, err := generator.Generate(template, w) + if err != nil { + p.Log.Error("generate failure", slog.Any("error", err)) + return + } + // Cache the sourcemap. + p.Log.Info("setting cache", slog.String("uri", string(params.TextDocument.URI))) + p.SourceMapCache.Set(string(params.TextDocument.URI), generatorOutput.SourceMap) + p.GoSource[string(params.TextDocument.URI)] = w.String() + + if p.NoPreload { + if err := p.templDocLazyLoader.Sync(ctx, params); err != nil { + p.Log.Error("lazy loader sync", slog.Any("error", err)) + } + } + + // Change the path. + params.TextDocument.URI = goURI + params.TextDocument.URI = goURI + // Overwrite all the Go contents. + params.ContentChanges = []lsp.TextDocumentContentChangeEvent{{ + Text: w.String(), + }} + return p.Target.DidChange(ctx, params) +} + +func (p *Server) DidChangeConfiguration(ctx context.Context, params *lsp.DidChangeConfigurationParams) (err error) { + p.Log.Info("client -> server: DidChangeConfiguration") + defer p.Log.Info("client -> server: DidChangeConfiguration end") + return p.Target.DidChangeConfiguration(ctx, params) +} + +func (p *Server) DidChangeWatchedFiles(ctx context.Context, params *lsp.DidChangeWatchedFilesParams) (err error) { + p.Log.Info("client -> server: DidChangeWatchedFiles") + defer p.Log.Info("client -> server: DidChangeWatchedFiles end") + return p.Target.DidChangeWatchedFiles(ctx, params) +} + +func (p *Server) DidChangeWorkspaceFolders(ctx context.Context, params *lsp.DidChangeWorkspaceFoldersParams) (err error) { + p.Log.Info("client -> server: DidChangeWorkspaceFolders") + defer p.Log.Info("client -> server: DidChangeWorkspaceFolders end") + return p.Target.DidChangeWorkspaceFolders(ctx, params) +} + +func (p *Server) DidClose(ctx context.Context, params *lsp.DidCloseTextDocumentParams) (err error) { + p.Log.Info("client -> server: DidClose") + defer p.Log.Info("client -> server: DidClose end") + + if p.NoPreload { + return p.templDocLazyLoader.Unload(ctx, params) + } + + return p.HandleDidClose(ctx, params) +} + +func (p *Server) HandleDidClose(ctx context.Context, params *lsp.DidCloseTextDocumentParams) (err error) { + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.DidClose(ctx, params) + } + // Delete the template and sourcemaps from caches. + p.TemplSource.Delete(string(params.TextDocument.URI)) + p.SourceMapCache.Delete(string(params.TextDocument.URI)) + // Get gopls to delete the Go file from its cache. + params.TextDocument.URI = goURI + return p.Target.DidClose(ctx, params) +} + +func (p *Server) DidOpen(ctx context.Context, params *lsp.DidOpenTextDocumentParams) (err error) { + p.Log.Info("client -> server: DidOpen", slog.String("uri", string(params.TextDocument.URI))) + defer p.Log.Info("client -> server: DidOpen end") + + if p.NoPreload { + return p.templDocLazyLoader.Load(ctx, params) + } + + return p.HandleDidOpen(ctx, params) +} + +func (p *Server) HandleDidOpen(ctx context.Context, params *lsp.DidOpenTextDocumentParams) (err error) { + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.DidOpen(ctx, params) + } + // Cache the template doc. + p.TemplSource.Set(string(params.TextDocument.URI), NewDocument(p.Log, params.TextDocument.Text)) + // Parse the template. + template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, params.TextDocument.Text) + if err != nil { + p.Log.Error("parseTemplate failure", slog.Any("error", err)) + } + if !ok { + p.Log.Info("parsing template did not succeed", slog.String("uri", string(params.TextDocument.URI))) + return nil + } + // Generate the output code and cache the source map and Go contents to use during completion + // requests. + w := new(strings.Builder) + generatorOutput, err := generator.Generate(template, w) + if err != nil { + return + } + p.Log.Info("setting source map cache contents", slog.String("uri", string(params.TextDocument.URI))) + p.SourceMapCache.Set(string(params.TextDocument.URI), generatorOutput.SourceMap) + // Set the Go contents. + params.TextDocument.Text = w.String() + p.GoSource[string(params.TextDocument.URI)] = params.TextDocument.Text + // Change the path. + params.TextDocument.URI = goURI + return p.Target.DidOpen(ctx, params) +} + +func (p *Server) DidSave(ctx context.Context, params *lsp.DidSaveTextDocumentParams) (err error) { + p.Log.Info("client -> server: DidSave") + defer p.Log.Info("client -> server: DidSave end") + if isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI); isTemplFile { + params.TextDocument.URI = goURI + } + return p.Target.DidSave(ctx, params) +} + +func (p *Server) DocumentColor(ctx context.Context, params *lsp.DocumentColorParams) (result []lsp.ColorInformation, err error) { + p.Log.Info("client -> server: DocumentColor") + defer p.Log.Info("client -> server: DocumentColor end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.DocumentColor(ctx, params) + } + templURI := params.TextDocument.URI + params.TextDocument.URI = goURI + result, err = p.Target.DocumentColor(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + for i, r := range result { + result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) + } + return +} + +func (p *Server) DocumentHighlight(ctx context.Context, params *lsp.DocumentHighlightParams) (result []lsp.DocumentHighlight, err error) { + p.Log.Info("client -> server: DocumentHighlight") + defer p.Log.Info("client -> server: DocumentHighlight end") + return +} + +func (p *Server) DocumentLink(ctx context.Context, params *lsp.DocumentLinkParams) (result []lsp.DocumentLink, err error) { + p.Log.Info("client -> server: DocumentLink", slog.String("uri", string(params.TextDocument.URI))) + defer p.Log.Info("client -> server: DocumentLink end") + return +} + +func (p *Server) DocumentLinkResolve(ctx context.Context, params *lsp.DocumentLink) (result *lsp.DocumentLink, err error) { + p.Log.Info("client -> server: DocumentLinkResolve") + defer p.Log.Info("client -> server: DocumentLinkResolve end") + isTemplFile, goURI := convertTemplToGoURI(params.Target) + if !isTemplFile { + return p.Target.DocumentLinkResolve(ctx, params) + } + templURI := params.Target + params.Target = goURI + var ok bool + if params.Range, ok = p.convertTemplRangeToGoRange(templURI, params.Range); !ok { + return + } + // Rewrite the result. + result, err = p.Target.DocumentLinkResolve(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + result.Target = templURI + result.Range = p.convertGoRangeToTemplRange(templURI, result.Range) + return +} + +func (p *Server) DocumentSymbol(ctx context.Context, params *lsp.DocumentSymbolParams) (result []lsp.SymbolInformationOrDocumentSymbol, err error) { + p.Log.Info("client -> server: DocumentSymbol") + defer p.Log.Info("client -> server: DocumentSymbol end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return p.Target.DocumentSymbol(ctx, params) + } + templURI := params.TextDocument.URI + params.TextDocument.URI = goURI + symbols, err := p.Target.DocumentSymbol(ctx, params) + if err != nil { + return nil, err + } + + for _, s := range symbols { + if s.DocumentSymbol != nil { + p.convertSymbolRange(templURI, s.DocumentSymbol) + result = append(result, s) + } + if s.SymbolInformation != nil { + s.SymbolInformation.Location.URI = templURI + s.SymbolInformation.Location.Range = p.convertGoRangeToTemplRange(templURI, s.SymbolInformation.Location.Range) + result = append(result, s) + } + } + + return result, err +} + +func (p *Server) convertSymbolRange(templURI lsp.DocumentURI, s *lsp.DocumentSymbol) { + sourceMap, ok := p.SourceMapCache.Get(string(templURI)) + if !ok { + p.Log.Warn("go->templ: sourcemap not found in cache") + return + } + src, ok := sourceMap.SymbolSourceRangeFromTarget(s.Range.Start.Line, s.Range.Start.Character) + if !ok { + p.Log.Warn("go->templ: symbol range not found", slog.Any("symbol", s), slog.Any("choices", sourceMap.TargetSymbolRangeToSource)) + return + } + s.Range = lsp.Range{ + Start: lsp.Position{ + Line: uint32(src.From.Line), + Character: uint32(src.From.Col), + }, + End: lsp.Position{ + Line: uint32(src.To.Line), + Character: uint32(src.To.Col), + }, + } + // Within the symbol, we can select sub-sections. + // These are Go expressions, in the standard source map. + s.SelectionRange = p.convertGoRangeToTemplRange(templURI, s.SelectionRange) + for i := range s.Children { + p.convertSymbolRange(templURI, &s.Children[i]) + if !isRangeWithin(s.Range, s.Children[i].Range) { + p.Log.Error("child symbol range not within parent range", slog.Any("symbol", s.Children[i]), slog.Int("index", i)) + } + } + if !isRangeWithin(s.Range, s.SelectionRange) { + p.Log.Error("selection range not within range", slog.Any("symbol", s)) + } +} + +func isRangeWithin(parent, child lsp.Range) bool { + if child.Start.Line < parent.Start.Line || child.End.Line > parent.End.Line { + return false + } + if child.Start.Line == parent.Start.Line && child.Start.Character < parent.Start.Character { + return false + } + if child.End.Line == parent.End.Line && child.End.Character > parent.End.Character { + return false + } + return true +} + +func (p *Server) ExecuteCommand(ctx context.Context, params *lsp.ExecuteCommandParams) (result any, err error) { + p.Log.Info("client -> server: ExecuteCommand") + defer p.Log.Info("client -> server: ExecuteCommand end") + return p.Target.ExecuteCommand(ctx, params) +} + +func (p *Server) FoldingRanges(ctx context.Context, params *lsp.FoldingRangeParams) (result []lsp.FoldingRange, err error) { + p.Log.Info("client -> server: FoldingRanges") + defer p.Log.Info("client -> server: FoldingRanges end") + // There are no folding ranges in templ files. + // return p.Target.FoldingRanges(ctx, params) + return []lsp.FoldingRange{}, nil +} + +func (p *Server) Formatting(ctx context.Context, params *lsp.DocumentFormattingParams) (result []lsp.TextEdit, err error) { + p.Log.Info("client -> server: Formatting") + defer p.Log.Info("client -> server: Formatting end") + // Format the current document. + d, _ := p.TemplSource.Get(string(params.TextDocument.URI)) + template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, d.String()) + if err != nil { + p.Log.Error("parseTemplate failure", slog.Any("error", err)) + return + } + if !ok { + return + } + p.Log.Info("attempting to organise imports", slog.String("uri", template.Filepath)) + template, err = imports.Process(template) + if err != nil { + p.Log.Error("organise imports failure", slog.Any("error", err)) + return + } + w := new(strings.Builder) + err = template.Write(w) + if err != nil { + p.Log.Error("handleFormatting: faled to write template", slog.Any("error", err)) + return + } + // Replace everything. + result = append(result, lsp.TextEdit{ + Range: lsp.Range{ + Start: lsp.Position{}, + End: lsp.Position{Line: uint32(len(d.Lines)), Character: 0}, + }, + NewText: w.String(), + }) + d.Replace(w.String()) + return +} + +func (p *Server) Hover(ctx context.Context, params *lsp.HoverParams) (result *lsp.Hover, err error) { + p.Log.Info("client -> server: Hover") + defer p.Log.Info("client -> server: Hover end") + // Rewrite the request. + templURI := params.TextDocument.URI + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + // Call gopls. + result, err = p.Target.Hover(ctx, params) + if err != nil { + return + } + // Rewrite the response. + if result != nil && result.Range != nil { + p.Log.Info("hover: result returned") + r := p.convertGoRangeToTemplRange(templURI, *result.Range) + p.Log.Info("hover: setting range") + result.Range = &r + } + return +} + +func (p *Server) Implementation(ctx context.Context, params *lsp.ImplementationParams) (result []lsp.Location, err error) { + p.Log.Info("client -> server: Implementation") + defer p.Log.Info("client -> server: Implementation end") + templURI := params.TextDocument.URI + // Rewrite the request. + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + result, err = p.Target.Implementation(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + // Rewrite the response. + for i, r := range result { + r.URI = templURI + r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) + result[i] = r + } + return +} + +func (p *Server) OnTypeFormatting(ctx context.Context, params *lsp.DocumentOnTypeFormattingParams) (result []lsp.TextEdit, err error) { + p.Log.Info("client -> server: OnTypeFormatting") + defer p.Log.Info("client -> server: OnTypeFormatting end") + templURI := params.TextDocument.URI + // Rewrite the request. + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + // Get the response. + result, err = p.Target.OnTypeFormatting(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + // Rewrite the response. + for i, r := range result { + r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) + result[i] = r + } + return +} + +func (p *Server) PrepareRename(ctx context.Context, params *lsp.PrepareRenameParams) (result *lsp.Range, err error) { + p.Log.Info("client -> server: PrepareRename") + defer p.Log.Info("client -> server: PrepareRename end") + templURI := params.TextDocument.URI + // Rewrite the request. + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + // Get the response. + result, err = p.Target.PrepareRename(ctx, params) + if err != nil { + return + } + if result == nil { + return + } + // Rewrite the response. + output := p.convertGoRangeToTemplRange(templURI, *result) + return &output, nil +} + +func (p *Server) RangeFormatting(ctx context.Context, params *lsp.DocumentRangeFormattingParams) (result []lsp.TextEdit, err error) { + p.Log.Info("client -> server: RangeFormatting") + defer p.Log.Info("client -> server: RangeFormatting end") + templURI := params.TextDocument.URI + // Rewrite the request. + var isTemplURI bool + isTemplURI, params.TextDocument.URI = convertTemplToGoURI(params.TextDocument.URI) + if !isTemplURI { + err = fmt.Errorf("not a templ file") + return + } + // Call gopls. + result, err = p.Target.RangeFormatting(ctx, params) + if err != nil { + return + } + // Rewrite the response. + for i, r := range result { + r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) + result[i] = r + } + return result, err +} + +func (p *Server) References(ctx context.Context, params *lsp.ReferenceParams) (result []lsp.Location, err error) { + p.Log.Info("client -> server: References") + defer p.Log.Info("client -> server: References end") + // Rewrite the request. + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + // Call gopls. + result, err = p.Target.References(ctx, params) + if err != nil { + return + } + // Rewrite the response. + for i, r := range result { + isTemplURI, templURI := convertTemplGoToTemplURI(r.URI) + if isTemplURI { + p.Log.Info(fmt.Sprintf("references-%d - range conversion for %s", i, r.URI)) + r.URI, r.Range = templURI, p.convertGoRangeToTemplRange(templURI, r.Range) + } + p.Log.Info(fmt.Sprintf("references-%d: %+v", i, r)) + result[i] = r + } + return result, err +} + +func (p *Server) Rename(ctx context.Context, params *lsp.RenameParams) (result *lsp.WorkspaceEdit, err error) { + p.Log.Info("client -> server: Rename") + defer p.Log.Info("client -> server: Rename end") + return p.Target.Rename(ctx, params) +} + +func (p *Server) SignatureHelp(ctx context.Context, params *lsp.SignatureHelpParams) (result *lsp.SignatureHelp, err error) { + p.Log.Info("client -> server: SignatureHelp") + defer p.Log.Info("client -> server: SignatureHelp end") + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + return p.Target.SignatureHelp(ctx, params) +} + +func (p *Server) Symbols(ctx context.Context, params *lsp.WorkspaceSymbolParams) (result []lsp.SymbolInformation, err error) { + p.Log.Info("client -> server: Symbols") + defer p.Log.Info("client -> server: Symbols end") + return p.Target.Symbols(ctx, params) +} + +func (p *Server) TypeDefinition(ctx context.Context, params *lsp.TypeDefinitionParams) (result []lsp.Location, err error) { + p.Log.Info("client -> server: TypeDefinition") + defer p.Log.Info("client -> server: TypeDefinition end") + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) + if !ok { + return nil, nil + } + return p.Target.TypeDefinition(ctx, params) +} + +func (p *Server) WillSave(ctx context.Context, params *lsp.WillSaveTextDocumentParams) (err error) { + p.Log.Info("client -> server: WillSave") + defer p.Log.Info("client -> server: WillSave end") + var ok bool + ok, params.TextDocument.URI = convertTemplToGoURI(params.TextDocument.URI) + if !ok { + p.Log.Error("not a templ file") + return nil + } + return p.Target.WillSave(ctx, params) +} + +func (p *Server) WillSaveWaitUntil(ctx context.Context, params *lsp.WillSaveTextDocumentParams) (result []lsp.TextEdit, err error) { + p.Log.Info("client -> server: WillSaveWaitUntil") + defer p.Log.Info("client -> server: WillSaveWaitUntil end") + return p.Target.WillSaveWaitUntil(ctx, params) +} + +func (p *Server) ShowDocument(ctx context.Context, params *lsp.ShowDocumentParams) (result *lsp.ShowDocumentResult, err error) { + p.Log.Info("client -> server: ShowDocument") + defer p.Log.Info("client -> server: ShowDocument end") + return p.Target.ShowDocument(ctx, params) +} + +func (p *Server) WillCreateFiles(ctx context.Context, params *lsp.CreateFilesParams) (result *lsp.WorkspaceEdit, err error) { + p.Log.Info("client -> server: WillCreateFiles") + defer p.Log.Info("client -> server: WillCreateFiles end") + return p.Target.WillCreateFiles(ctx, params) +} + +func (p *Server) DidCreateFiles(ctx context.Context, params *lsp.CreateFilesParams) (err error) { + p.Log.Info("client -> server: DidCreateFiles") + defer p.Log.Info("client -> server: DidCreateFiles end") + return p.Target.DidCreateFiles(ctx, params) +} + +func (p *Server) WillRenameFiles(ctx context.Context, params *lsp.RenameFilesParams) (result *lsp.WorkspaceEdit, err error) { + p.Log.Info("client -> server: WillRenameFiles") + defer p.Log.Info("client -> server: WillRenameFiles end") + return p.Target.WillRenameFiles(ctx, params) +} + +func (p *Server) DidRenameFiles(ctx context.Context, params *lsp.RenameFilesParams) (err error) { + p.Log.Info("client -> server: DidRenameFiles") + defer p.Log.Info("client -> server: DidRenameFiles end") + return p.Target.DidRenameFiles(ctx, params) +} + +func (p *Server) WillDeleteFiles(ctx context.Context, params *lsp.DeleteFilesParams) (result *lsp.WorkspaceEdit, err error) { + p.Log.Info("client -> server: WillDeleteFiles") + defer p.Log.Info("client -> server: WillDeleteFiles end") + return p.Target.WillDeleteFiles(ctx, params) +} + +func (p *Server) DidDeleteFiles(ctx context.Context, params *lsp.DeleteFilesParams) (err error) { + p.Log.Info("client -> server: DidDeleteFiles") + defer p.Log.Info("client -> server: DidDeleteFiles end") + return p.Target.DidDeleteFiles(ctx, params) +} + +func (p *Server) CodeLensRefresh(ctx context.Context) (err error) { + p.Log.Info("client -> server: CodeLensRefresh") + defer p.Log.Info("client -> server: CodeLensRefresh end") + return p.Target.CodeLensRefresh(ctx) +} + +func (p *Server) PrepareCallHierarchy(ctx context.Context, params *lsp.CallHierarchyPrepareParams) (result []lsp.CallHierarchyItem, err error) { + p.Log.Info("client -> server: PrepareCallHierarchy") + defer p.Log.Info("client -> server: PrepareCallHierarchy end") + return p.Target.PrepareCallHierarchy(ctx, params) +} + +func (p *Server) IncomingCalls(ctx context.Context, params *lsp.CallHierarchyIncomingCallsParams) (result []lsp.CallHierarchyIncomingCall, err error) { + p.Log.Info("client -> server: IncomingCalls") + defer p.Log.Info("client -> server: IncomingCalls end") + return p.Target.IncomingCalls(ctx, params) +} + +func (p *Server) OutgoingCalls(ctx context.Context, params *lsp.CallHierarchyOutgoingCallsParams) (result []lsp.CallHierarchyOutgoingCall, err error) { + p.Log.Info("client -> server: OutgoingCalls") + defer p.Log.Info("client -> server: OutgoingCalls end") + return p.Target.OutgoingCalls(ctx, params) +} + +func (p *Server) SemanticTokensFull(ctx context.Context, params *lsp.SemanticTokensParams) (result *lsp.SemanticTokens, err error) { + p.Log.Info("client -> server: SemanticTokensFull") + defer p.Log.Info("client -> server: SemanticTokensFull end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return nil, nil + } + params.TextDocument.URI = goURI + return p.Target.SemanticTokensFull(ctx, params) +} + +func (p *Server) SemanticTokensFullDelta(ctx context.Context, params *lsp.SemanticTokensDeltaParams) (result any /* SemanticTokens | SemanticTokensDelta */, err error) { + p.Log.Info("client -> server: SemanticTokensFullDelta") + defer p.Log.Info("client -> server: SemanticTokensFullDelta end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return nil, nil + } + params.TextDocument.URI = goURI + return p.Target.SemanticTokensFullDelta(ctx, params) +} + +func (p *Server) SemanticTokensRange(ctx context.Context, params *lsp.SemanticTokensRangeParams) (result *lsp.SemanticTokens, err error) { + p.Log.Info("client -> server: SemanticTokensRange") + defer p.Log.Info("client -> server: SemanticTokensRange end") + isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) + if !isTemplFile { + return nil, nil + } + params.TextDocument.URI = goURI + return p.Target.SemanticTokensRange(ctx, params) +} + +func (p *Server) SemanticTokensRefresh(ctx context.Context) (err error) { + p.Log.Info("client -> server: SemanticTokensRefresh") + defer p.Log.Info("client -> server: SemanticTokensRefresh end") + return p.Target.SemanticTokensRefresh(ctx) +} + +func (p *Server) LinkedEditingRange(ctx context.Context, params *lsp.LinkedEditingRangeParams) (result *lsp.LinkedEditingRanges, err error) { + p.Log.Info("client -> server: LinkedEditingRange") + defer p.Log.Info("client -> server: LinkedEditingRange end") + return p.Target.LinkedEditingRange(ctx, params) +} + +func (p *Server) Moniker(ctx context.Context, params *lsp.MonikerParams) (result []lsp.Moniker, err error) { + p.Log.Info("client -> server: Moniker") + defer p.Log.Info("client -> server: Moniker end") + templURI := params.TextDocument.URI + var ok bool + ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) + if !ok { + return nil, nil + } + return p.Target.Moniker(ctx, params) +} + +func (p *Server) Request(ctx context.Context, method string, params any) (result any, err error) { + p.Log.Info("client -> server: Request") + defer p.Log.Info("client -> server: Request end") + return p.Target.Request(ctx, method, params) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go new file mode 100644 index 0000000..94580f1 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go @@ -0,0 +1,111 @@ +package proxy + +import lsp "github.com/a-h/templ/lsp/protocol" + +var htmlSnippets = []lsp.CompletionItem{ + { + Label: "", + InsertText: `${1}> + ${0} +`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "a", + InsertText: `a href="${1:}">${2:}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "button", + InsertText: `button type="button" ${1:}>${2:}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "div", + InsertText: `div> + ${0} +
`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "p", + InsertText: `p> + ${0} +

`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "head", + InsertText: `head> + ${0} +`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "body", + InsertText: `body> + ${0} +`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "title", + InsertText: `title>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h1", + InsertText: `h1>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h2", + InsertText: `h2>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h3", + InsertText: `h3>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h4", + InsertText: `h4>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h5", + InsertText: `h5>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, + { + Label: "h6", + InsertText: `h6>${0}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, +} + +var snippet = []lsp.CompletionItem{ + { + Label: "templ", + InsertText: `templ ${2:TemplateName}() { + ${0} +}`, + Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), + InsertTextFormat: lsp.InsertTextFormatSnippet, + }, +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go new file mode 100644 index 0000000..ccf9024 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go @@ -0,0 +1,52 @@ +package proxy + +import ( + "sync" + + "github.com/a-h/templ/parser/v2" +) + +// NewSourceMapCache creates a cache of .templ file URIs to the source map. +func NewSourceMapCache() *SourceMapCache { + return &SourceMapCache{ + m: new(sync.Mutex), + uriToSourceMap: make(map[string]*parser.SourceMap), + } +} + +// SourceMapCache is a cache of .templ file URIs to the source map. +type SourceMapCache struct { + m *sync.Mutex + uriToSourceMap map[string]*parser.SourceMap +} + +func (fc *SourceMapCache) Set(uri string, m *parser.SourceMap) { + fc.m.Lock() + defer fc.m.Unlock() + fc.uriToSourceMap[uri] = m +} + +func (fc *SourceMapCache) Get(uri string) (m *parser.SourceMap, ok bool) { + fc.m.Lock() + defer fc.m.Unlock() + m, ok = fc.uriToSourceMap[uri] + return +} + +func (fc *SourceMapCache) Delete(uri string) { + fc.m.Lock() + defer fc.m.Unlock() + delete(fc.uriToSourceMap, uri) +} + +func (fc *SourceMapCache) URIs() (uris []string) { + fc.m.Lock() + defer fc.m.Unlock() + uris = make([]string, len(fc.uriToSourceMap)) + var i int + for k := range fc.uriToSourceMap { + uris[i] = k + i++ + } + return uris +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go new file mode 100644 index 0000000..28d9f44 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go @@ -0,0 +1,50 @@ +package lspcmd + +import ( + "errors" + "io" + "log/slog" +) + +// stdrwc (standard read/write closer) reads from stdin, and writes to stdout. +func newStdRwc(log *slog.Logger, name string, w io.Writer, r io.Reader) stdrwc { + return stdrwc{ + log: log, + name: name, + w: w, + r: r, + } +} + +type stdrwc struct { + log *slog.Logger + name string + w io.Writer + r io.Reader +} + +func (s stdrwc) Read(p []byte) (int, error) { + return s.r.Read(p) +} + +func (s stdrwc) Write(p []byte) (int, error) { + return s.w.Write(p) +} + +func (s stdrwc) Close() error { + s.log.Info("rwc: closing", slog.String("name", s.name)) + var errs []error + if closer, isCloser := s.r.(io.Closer); isCloser { + if err := closer.Close(); err != nil { + s.log.Error("rwc: error closing reader", slog.String("name", s.name), slog.Any("error", err)) + errs = append(errs, err) + } + } + if closer, isCloser := s.w.(io.Closer); isCloser { + if err := closer.Close(); err != nil { + s.log.Error("rwc: error closing writer", slog.String("name", s.name), slog.Any("error", err)) + errs = append(errs, err) + } + } + return errors.Join(errs...) +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/main.go b/vendor/github.com/a-h/templ/cmd/templ/main.go new file mode 100644 index 0000000..3f15d24 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/main.go @@ -0,0 +1,280 @@ +package main + +import ( + "context" + "flag" + "fmt" + "io" + "os" + "os/signal" + "runtime" + "syscall" + + "github.com/a-h/templ" + "github.com/a-h/templ/cmd/templ/fmtcmd" + "github.com/a-h/templ/cmd/templ/generatecmd" + "github.com/a-h/templ/cmd/templ/infocmd" + "github.com/a-h/templ/cmd/templ/lspcmd" + "github.com/a-h/templ/cmd/templ/sloghandler" + "github.com/fatih/color" +) + +func main() { + code := run(os.Stdin, os.Stdout, os.Stderr, os.Args) + if code != 0 { + os.Exit(code) + } +} + +const usageText = `usage: templ [...] + +templ - build HTML UIs with Go + +See docs at https://templ.guide + +commands: + generate Generates Go code from templ files + fmt Formats templ files + lsp Starts a language server for templ files + info Displays information about the templ environment + version Prints the version +` + +func run(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { + if len(args) < 2 { + _, _ = fmt.Fprint(stderr, usageText) + return 64 // EX_USAGE + } + switch args[1] { + case "info": + return infoCmd(stdout, stderr, args[2:]) + case "generate": + return generateCmd(stdout, stderr, args[2:]) + case "fmt": + return fmtCmd(stdin, stdout, stderr, args[2:]) + case "lsp": + return lspCmd(stdin, stdout, stderr, args[2:]) + case "version", "--version": + _, _ = fmt.Fprintln(stdout, templ.Version()) + return 0 + case "help", "-help", "--help", "-h": + _, _ = fmt.Fprint(stdout, usageText) + return 0 + } + _, _ = fmt.Fprint(stderr, usageText) + return 64 // EX_USAGE +} + +const infoUsageText = `usage: templ info [...] + +Displays information about the templ environment. + +Args: + -json + Output information in JSON format to stdout. (default false) + -v + Set log verbosity level to "debug". (default "info") + -log-level + Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") + -help + Print help and exit. +` + +func infoCmd(stdout, stderr io.Writer, args []string) (code int) { + cmd := flag.NewFlagSet("diagnose", flag.ExitOnError) + jsonFlag := cmd.Bool("json", false, "") + verboseFlag := cmd.Bool("v", false, "") + logLevelFlag := cmd.String("log-level", "info", "") + helpFlag := cmd.Bool("help", false, "") + err := cmd.Parse(args) + if err != nil { + _, _ = fmt.Fprint(stderr, infoUsageText) + return 64 // EX_USAGE + } + if *helpFlag { + _, _ = fmt.Fprint(stdout, infoUsageText) + return + } + + log := sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) + + ctx, cancel := context.WithCancel(context.Background()) + signalChan := make(chan os.Signal, 1) + signal.Notify(signalChan, os.Interrupt) + go func() { + <-signalChan + _, _ = fmt.Fprintln(stderr, "Stopping...") + cancel() + }() + + err = infocmd.Run(ctx, log, stdout, infocmd.Arguments{ + JSON: *jsonFlag, + }) + if err != nil { + _, _ = color.New(color.FgRed).Fprint(stderr, "(✗) ") + _, _ = fmt.Fprintln(stderr, "Command failed: "+err.Error()) + return 1 + } + return 0 +} + +func generateCmd(stdout, stderr io.Writer, args []string) (code int) { + ctx, cancel := context.WithCancel(context.Background()) + signalChan := make(chan os.Signal, 1) + signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM) + go func() { + <-signalChan + _, _ = fmt.Fprintln(stderr, "Stopping...") + cancel() + }() + + err := generatecmd.Run(ctx, stdout, stderr, args) + if err != nil { + _, _ = color.New(color.FgRed).Fprint(stderr, "(✗) ") + _, _ = fmt.Fprintln(stderr, "Command failed: "+err.Error()) + exitCode := 1 + if e, ok := err.(ErrorCode); ok { + exitCode = e.Code() + } + return exitCode + } + return 0 +} + +type ErrorCode interface { + error + Code() int +} + +const fmtUsageText = `usage: templ fmt [ ...] + +Format all files in directory: + + templ fmt . + +Format stdin to stdout: + + templ fmt < header.templ + +Format file or directory to stdout: + + templ fmt -stdout FILE + +Args: + -stdout + Prints to stdout instead of in-place format + -stdin-filepath + Provides the formatter with filepath context when using -stdout. + Required for organising imports. + -v + Set log verbosity level to "debug". (default "info") + -log-level + Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") + -w + Number of workers to use when formatting code. (default runtime.NumCPUs). + -prettier-command + Set the command to use for formatting HTML, CSS, and JS blocks. Default is "prettier --stdin-filepath $TEMPL_PRETTIER_FILENAME". + -prettier-required + Set to true to return an error the prettier command is not available. Default is false. + -fail + Fails with exit code 1 if files are changed. (e.g. in CI) + -help + Print help and exit. +` + +func fmtCmd(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { + cmd := flag.NewFlagSet("fmt", flag.ExitOnError) + helpFlag := cmd.Bool("help", false, "") + workerCountFlag := cmd.Int("w", runtime.NumCPU(), "") + verboseFlag := cmd.Bool("v", false, "") + logLevelFlag := cmd.String("log-level", "info", "") + failIfChanged := cmd.Bool("fail", false, "") + prettierCommand := cmd.String("prettier-command", "", "") + prettierRequired := cmd.Bool("prettier-required", false, "") + stdoutFlag := cmd.Bool("stdout", false, "") + stdinFilepath := cmd.String("stdin-filepath", "", "") + err := cmd.Parse(args) + if err != nil { + _, _ = fmt.Fprint(stderr, fmtUsageText) + return 64 // EX_USAGE + } + if *helpFlag { + _, _ = fmt.Fprint(stdout, fmtUsageText) + return + } + + log := sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) + + err = fmtcmd.Run(log, stdin, stdout, fmtcmd.Arguments{ + ToStdout: *stdoutFlag, + Files: cmd.Args(), + WorkerCount: *workerCountFlag, + StdinFilepath: *stdinFilepath, + FailIfChanged: *failIfChanged, + PrettierCommand: *prettierCommand, + PrettierRequired: *prettierRequired, + }) + if err != nil { + return 1 + } + return 0 +} + +const lspUsageText = `usage: templ lsp [ ...] + +Starts a language server for templ. + +Args: + -log string + The file to log templ LSP output to, or leave empty to disable logging. + -goplsLog string + The file to log gopls output, or leave empty to disable logging. + -goplsRPCTrace + Set gopls to log input and output messages. + -gopls-remote + Specify remote gopls instance to connect to. + -help + Print help and exit. + -pprof + Enable pprof web server (default address is localhost:9999) + -http string + Enable http debug server by setting a listen address (e.g. localhost:7474) + -no-preload + Disable preloading of templ files on server startup and use custom GOPACKAGESDRIVER for lazy loading (useful for large monorepos). GOPACKAGESDRIVER environment variable must be set. +` + +func lspCmd(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { + cmd := flag.NewFlagSet("lsp", flag.ExitOnError) + logFlag := cmd.String("log", "", "") + goplsLog := cmd.String("goplsLog", "", "") + goplsRPCTrace := cmd.Bool("goplsRPCTrace", false, "") + goplsRemote := cmd.String("gopls-remote", "", "") + helpFlag := cmd.Bool("help", false, "") + pprofFlag := cmd.Bool("pprof", false, "") + httpDebugFlag := cmd.String("http", "", "") + noPreloadFlag := cmd.Bool("no-preload", false, "") + err := cmd.Parse(args) + if err != nil { + _, _ = fmt.Fprint(stderr, lspUsageText) + return 64 // EX_USAGE + } + if *helpFlag { + _, _ = fmt.Fprint(stdout, lspUsageText) + return + } + + err = lspcmd.Run(stdin, stdout, stderr, lspcmd.Arguments{ + Log: *logFlag, + GoplsLog: *goplsLog, + GoplsRPCTrace: *goplsRPCTrace, + GoplsRemote: *goplsRemote, + PPROF: *pprofFlag, + HTTPDebug: *httpDebugFlag, + NoPreload: *noPreloadFlag && os.Getenv("GOPACKAGESDRIVER") != "", + }) + if err != nil { + _, _ = fmt.Fprintln(stderr, err.Error()) + return 1 + } + return 0 +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go b/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go new file mode 100644 index 0000000..aa2d00d --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go @@ -0,0 +1,66 @@ +package processor + +import ( + "io/fs" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/a-h/templ/internal/skipdir" +) + +type Result struct { + FileName string + Duration time.Duration + Error error + ChangesMade bool +} + +func Process(dir string, f func(fileName string) (error, bool), workerCount int, results chan<- Result) { + templates := make(chan string) + go func() { + defer close(templates) + if err := FindTemplates(dir, templates); err != nil { + results <- Result{Error: err} + } + }() + ProcessChannel(templates, dir, f, workerCount, results) +} + +func FindTemplates(srcPath string, output chan<- string) (err error) { + return filepath.WalkDir(srcPath, func(currentPath string, info fs.DirEntry, err error) error { + if err != nil { + return err + } + if info.IsDir() && skipdir.ShouldSkip(currentPath) { + return filepath.SkipDir + } + if !info.IsDir() && strings.HasSuffix(currentPath, ".templ") { + output <- currentPath + } + return nil + }) +} + +func ProcessChannel(templates <-chan string, dir string, f func(fileName string) (error, bool), workerCount int, results chan<- Result) { + defer close(results) + var wg sync.WaitGroup + wg.Add(workerCount) + for range workerCount { + go func() { + defer wg.Done() + for sourceFileName := range templates { + start := time.Now() + outErr, outChanged := f(sourceFileName) + results <- Result{ + FileName: sourceFileName, + Error: outErr, + Duration: time.Since(start), + ChangesMade: outChanged, + } + } + }() + } + wg.Wait() +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go b/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go new file mode 100644 index 0000000..7b87603 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go @@ -0,0 +1,120 @@ +package sloghandler + +import ( + "context" + "io" + "log/slog" + "strings" + "sync" + + "github.com/fatih/color" +) + +func NewLogger(logLevel string, verbose bool, stderr io.Writer) *slog.Logger { + if verbose { + logLevel = "debug" + } + level := slog.LevelInfo.Level() + switch logLevel { + case "debug": + level = slog.LevelDebug.Level() + case "warn": + level = slog.LevelWarn.Level() + case "error": + level = slog.LevelError.Level() + } + return slog.New(NewHandler(stderr, &slog.HandlerOptions{ + AddSource: logLevel == "debug", + Level: level, + })) +} + +var _ slog.Handler = &Handler{} + +type Handler struct { + h slog.Handler + m *sync.Mutex + w io.Writer +} + +var levelToIcon = map[slog.Level]string{ + slog.LevelDebug: "(✓)", + slog.LevelInfo: "(✓)", + slog.LevelWarn: "(!)", + slog.LevelError: "(✗)", +} +var levelToColor = map[slog.Level]*color.Color{ + slog.LevelDebug: color.New(color.FgCyan), + slog.LevelInfo: color.New(color.FgGreen), + slog.LevelWarn: color.New(color.FgYellow), + slog.LevelError: color.New(color.FgRed), +} + +func NewHandler(w io.Writer, opts *slog.HandlerOptions) *Handler { + if opts == nil { + opts = &slog.HandlerOptions{} + } + return &Handler{ + w: w, + h: slog.NewTextHandler(w, &slog.HandlerOptions{ + Level: opts.Level, + AddSource: opts.AddSource, + ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr { + if opts.ReplaceAttr != nil { + a = opts.ReplaceAttr(groups, a) + } + if a.Key == slog.LevelKey { + level, ok := levelToIcon[a.Value.Any().(slog.Level)] + if !ok { + level = a.Value.Any().(slog.Level).String() + } + a.Value = slog.StringValue(level) + return a + } + if a.Key == slog.TimeKey { + return slog.Attr{} + } + return a + }, + }), + m: &sync.Mutex{}, + } +} + +func (h *Handler) Enabled(ctx context.Context, level slog.Level) bool { + return h.h.Enabled(ctx, level) +} + +func (h *Handler) WithAttrs(attrs []slog.Attr) slog.Handler { + return &Handler{h: h.h.WithAttrs(attrs), w: h.w, m: h.m} +} + +func (h *Handler) WithGroup(name string) slog.Handler { + return &Handler{h: h.h.WithGroup(name), w: h.w, m: h.m} +} + +var keyValueColor = color.New(color.Faint & color.FgBlack) + +func (h *Handler) Handle(ctx context.Context, r slog.Record) (err error) { + var sb strings.Builder + + sb.WriteString(levelToColor[r.Level].Sprint(levelToIcon[r.Level])) + sb.WriteString(" ") + sb.WriteString(r.Message) + + if r.NumAttrs() != 0 { + sb.WriteString(" [") + r.Attrs(func(a slog.Attr) bool { + sb.WriteString(keyValueColor.Sprintf(" %s=%s", a.Key, a.Value.String())) + return true + }) + sb.WriteString(" ]") + } + + sb.WriteString("\n") + + h.m.Lock() + defer h.m.Unlock() + _, err = io.WriteString(h.w, sb.String()) + return err +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ new file mode 100644 index 0000000..c0c6159 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ @@ -0,0 +1,68 @@ +package visualize + +css row() { + display: flex; +} + +css column() { + flex: 50%; + overflow-y: scroll; + max-height: 100vh; +} + +css code() { + font-family: monospace; +} + +templ combine(templFileName string, left, right templ.Component) { + + + { templFileName }- Source Map Visualisation + + + +

{ templFileName }

+
+
+ @left +
+
+ @right +
+
+ + +} + +script highlight(sourceId, targetId string) { + let items = document.getElementsByClassName(sourceId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.add("highlighted"); + } + items = document.getElementsByClassName(targetId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.add("highlighted"); + } +} + +script removeHighlight(sourceId, targetId string) { + let items = document.getElementsByClassName(sourceId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.remove("highlighted"); + } + items = document.getElementsByClassName(targetId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.remove("highlighted"); + } +} + +templ mappedCharacter(s string, sourceID, targetID string) { + { s } +} diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go new file mode 100644 index 0000000..5021399 --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go @@ -0,0 +1,295 @@ +// Code generated by templ - DO NOT EDIT. + +package visualize + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import templruntime "github.com/a-h/templ/runtime" + +func row() templ.CSSClass { + templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() + templ_7745c5c3_CSSBuilder.WriteString(`display:flex;`) + templ_7745c5c3_CSSID := templ.CSSID(`row`, templ_7745c5c3_CSSBuilder.String()) + return templ.ComponentCSSClass{ + ID: templ_7745c5c3_CSSID, + Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), + } +} + +func column() templ.CSSClass { + templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() + templ_7745c5c3_CSSBuilder.WriteString(`flex:50%;`) + templ_7745c5c3_CSSBuilder.WriteString(`overflow-y:scroll;`) + templ_7745c5c3_CSSBuilder.WriteString(`max-height:100vh;`) + templ_7745c5c3_CSSID := templ.CSSID(`column`, templ_7745c5c3_CSSBuilder.String()) + return templ.ComponentCSSClass{ + ID: templ_7745c5c3_CSSID, + Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), + } +} + +func code() templ.CSSClass { + templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() + templ_7745c5c3_CSSBuilder.WriteString(`font-family:monospace;`) + templ_7745c5c3_CSSID := templ.CSSID(`code`, templ_7745c5c3_CSSBuilder.String()) + return templ.ComponentCSSClass{ + ID: templ_7745c5c3_CSSID, + Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), + } +} + +func combine(templFileName string, left, right templ.Component) templ.Component { + return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context + if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { + return templ_7745c5c3_CtxErr + } + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if !templ_7745c5c3_IsBuffer { + defer func() { + templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + if templ_7745c5c3_Err == nil { + templ_7745c5c3_Err = templ_7745c5c3_BufErr + } + }() + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var2 string + templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(templFileName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 20, Col: 25} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "- Source Map Visualisation

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var3 string + templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(templFileName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 31, Col: 22} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var4 = []any{templ.Classes(row())} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var4...) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var6 = []any{templ.Classes(column(), code())} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var6...) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = left.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var8 = []any{templ.Classes(column(), code())} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var8...) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = right.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + return nil + }) +} + +func highlight(sourceId, targetId string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_highlight_ae80`, + Function: `function __templ_highlight_ae80(sourceId, targetId){let items = document.getElementsByClassName(sourceId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.add("highlighted"); + } + items = document.getElementsByClassName(targetId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.add("highlighted"); + } +}`, + Call: templ.SafeScript(`__templ_highlight_ae80`, sourceId, targetId), + CallInline: templ.SafeScriptInline(`__templ_highlight_ae80`, sourceId, targetId), + } +} + +func removeHighlight(sourceId, targetId string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_removeHighlight_58f2`, + Function: `function __templ_removeHighlight_58f2(sourceId, targetId){let items = document.getElementsByClassName(sourceId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.remove("highlighted"); + } + items = document.getElementsByClassName(targetId); + for(let i = 0; i < items.length; i ++) { + items[i].classList.remove("highlighted"); + } +}`, + Call: templ.SafeScript(`__templ_removeHighlight_58f2`, sourceId, targetId), + CallInline: templ.SafeScriptInline(`__templ_removeHighlight_58f2`, sourceId, targetId), + } +} + +func mappedCharacter(s string, sourceID, targetID string) templ.Component { + return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context + if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { + return templ_7745c5c3_CtxErr + } + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if !templ_7745c5c3_IsBuffer { + defer func() { + templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + if templ_7745c5c3_Err == nil { + templ_7745c5c3_Err = templ_7745c5c3_BufErr + } + }() + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var10 := templ.GetChildren(ctx) + if templ_7745c5c3_Var10 == nil { + templ_7745c5c3_Var10 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + var templ_7745c5c3_Var11 = []any{templ.Classes(templ.Class("mapped"), templ.Class(sourceID), templ.Class(targetID))} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var11...) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, highlight(sourceID, targetID), removeHighlight(sourceID, targetID)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var15 string + templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(s) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 67, Col: 200} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + return nil + }) +} + +var _ = templruntime.GeneratedTemplate diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go b/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go new file mode 100644 index 0000000..4a8c49a --- /dev/null +++ b/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go @@ -0,0 +1,87 @@ +package visualize + +import ( + "context" + "fmt" + "html" + "io" + "strconv" + "strings" + + "github.com/a-h/templ" + "github.com/a-h/templ/parser/v2" +) + +func HTML(templFileName string, templContents, goContents string, sourceMap *parser.SourceMap) templ.Component { + tl := templLines{contents: string(templContents), sourceMap: sourceMap} + gl := goLines{contents: string(goContents), sourceMap: sourceMap} + return combine(templFileName, tl, gl) +} + +type templLines struct { + contents string + sourceMap *parser.SourceMap +} + +func (tl templLines) Render(ctx context.Context, w io.Writer) (err error) { + templLines := strings.Split(tl.contents, "\n") + for lineIndex, line := range templLines { + if _, err = w.Write([]byte("" + strconv.Itoa(lineIndex) + " \n")); err != nil { + return + } + for colIndex, c := range line { + if tgt, ok := tl.sourceMap.TargetPositionFromSource(uint32(lineIndex), uint32(colIndex)); ok { + sourceID := fmt.Sprintf("src_%d_%d", lineIndex, colIndex) + targetID := fmt.Sprintf("tgt_%d_%d", tgt.Line, tgt.Col) + if err := mappedCharacter(string(c), sourceID, targetID).Render(ctx, w); err != nil { + return err + } + } else { + s := html.EscapeString(string(c)) + s = strings.ReplaceAll(s, "\t", " ") + s = strings.ReplaceAll(s, " ", " ") + if _, err := w.Write([]byte(s)); err != nil { + return err + } + } + } + if _, err = w.Write([]byte("\n
\n")); err != nil { + return + } + } + return nil +} + +type goLines struct { + contents string + sourceMap *parser.SourceMap +} + +func (gl goLines) Render(ctx context.Context, w io.Writer) (err error) { + templLines := strings.Split(gl.contents, "\n") + for lineIndex, line := range templLines { + if _, err = w.Write([]byte("" + strconv.Itoa(lineIndex) + " \n")); err != nil { + return + } + for colIndex, c := range line { + if src, ok := gl.sourceMap.SourcePositionFromTarget(uint32(lineIndex), uint32(colIndex)); ok { + sourceID := fmt.Sprintf("src_%d_%d", src.Line, src.Col) + targetID := fmt.Sprintf("tgt_%d_%d", lineIndex, colIndex) + if err := mappedCharacter(string(c), sourceID, targetID).Render(ctx, w); err != nil { + return err + } + } else { + s := html.EscapeString(string(c)) + s = strings.ReplaceAll(s, "\t", " ") + s = strings.ReplaceAll(s, " ", " ") + if _, err := w.Write([]byte(s)); err != nil { + return err + } + } + } + if _, err = w.Write([]byte("\n
\n")); err != nil { + return + } + } + return nil +} diff --git a/vendor/github.com/a-h/templ/cosign.pub b/vendor/github.com/a-h/templ/cosign.pub new file mode 100644 index 0000000..9d7967b --- /dev/null +++ b/vendor/github.com/a-h/templ/cosign.pub @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqHp75uAj8XqKrLO2YvY0M2EddckH +evQnNAj+0GmBptqdf3NJcUCjL6w4z2Ikh/Zb8lh6b13akAwO/dJQaMLoMA== +-----END PUBLIC KEY----- diff --git a/vendor/github.com/a-h/templ/flake.lock b/vendor/github.com/a-h/templ/flake.lock new file mode 100644 index 0000000..10dde36 --- /dev/null +++ b/vendor/github.com/a-h/templ/flake.lock @@ -0,0 +1,124 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1754937576, + "narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1755027561, + "narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "005433b926e16227259a1843015b5b2b7f7d1fc3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "gitignore": "gitignore", + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", + "version": "version", + "xc": "xc" + } + }, + "version": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749991223, + "narHash": "sha256-K6OM2m+Bdkbq7MvTIwI1t0aPIwmkLUDeUfev5VHpiwg=", + "owner": "a-h", + "repo": "version", + "rev": "da721166410c6e7e2bea37cf3dee3948b5d0c83f", + "type": "github" + }, + "original": { + "owner": "a-h", + "ref": "0.0.10", + "repo": "version", + "type": "github" + } + }, + "xc": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737995220, + "narHash": "sha256-1BTm0vPG6H7Xb6aGzA+v0Bv6+ONZm/kOebI4iKoZkSE=", + "owner": "joerdav", + "repo": "xc", + "rev": "85ad0fa8b705f290b050d93ae6be65d994d15528", + "type": "github" + }, + "original": { + "owner": "joerdav", + "repo": "xc", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/vendor/github.com/a-h/templ/flake.nix b/vendor/github.com/a-h/templ/flake.nix new file mode 100644 index 0000000..1c18f12 --- /dev/null +++ b/vendor/github.com/a-h/templ/flake.nix @@ -0,0 +1,104 @@ +{ + description = "templ"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + gitignore = { + url = "github:hercules-ci/gitignore.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + version = { + url = "github:a-h/version/0.0.10"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + xc = { + url = "github:joerdav/xc"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, nixpkgs-unstable, gitignore, version, xc }: + let + allSystems = [ + "x86_64-linux" # 64-bit Intel/AMD Linux + "aarch64-linux" # 64-bit ARM Linux + "x86_64-darwin" # 64-bit Intel macOS + "aarch64-darwin" # 64-bit ARM macOS + ]; + forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f { + inherit system; + pkgs = + let + pkgs-unstable = import nixpkgs-unstable { inherit system; }; + in + import nixpkgs { + inherit system; + overlays = [ + (final: prev: { + gopls = pkgs-unstable.gopls; + version = version.packages.${system}.default; # Used to apply version numbers to the repo. + xc = xc.packages.${system}.xc; + }) + ]; + }; + }); + in + { + packages = forAllSystems ({ pkgs, ... }: + rec { + default = templ; + + templ = pkgs.buildGo124Module { + name = "templ"; + subPackages = [ "cmd/templ" ]; + src = gitignore.lib.gitignoreSource ./.; + vendorHash = "sha256-pVZjZCXT/xhBCMyZdR7kEmB9jqhTwRISFp63bQf6w5A="; + env = { + CGO_ENABLED = 0; + }; + flags = [ + "-trimpath" + ]; + ldflags = [ + "-s" + "-w" + "-extldflags -static" + ]; + }; + }); + + # `nix develop` provides a shell containing development tools. + devShell = forAllSystems ({ pkgs, ... }: + pkgs.mkShell { + buildInputs = [ + pkgs.golangci-lint + pkgs.cosign # Used to sign container images. + pkgs.esbuild # Used to package JS examples. + pkgs.go + pkgs.gopls + pkgs.goreleaser + pkgs.gotestsum + pkgs.ko # Used to build Docker images. + pkgs.nodejs # Used to build templ-docs. + pkgs.nodePackages.prettier # Used for formatting JS and CSS. + pkgs.version + pkgs.xc + ]; + }); + + # This flake outputs an overlay that can be used to add templ and + # templ-docs to nixpkgs as per https://templ.guide/quick-start/installation/#nix + # + # Example usage: + # + # nixpkgs.overlays = [ + # inputs.templ.overlays.default + # ]; + overlays.default = final: prev: { + templ = self.packages.${final.stdenv.system}.templ; + templ-docs = self.packages.${final.stdenv.system}.templ-docs; + }; + }; +} + diff --git a/vendor/github.com/a-h/templ/flush.go b/vendor/github.com/a-h/templ/flush.go new file mode 100644 index 0000000..56d7d3a --- /dev/null +++ b/vendor/github.com/a-h/templ/flush.go @@ -0,0 +1,36 @@ +package templ + +import ( + "context" + "io" +) + +// Flush flushes the output buffer after all its child components have been rendered. +func Flush() FlushComponent { + return FlushComponent{} +} + +type FlushComponent struct { +} + +type flusherError interface { + Flush() error +} + +type flusher interface { + Flush() +} + +func (f FlushComponent) Render(ctx context.Context, w io.Writer) (err error) { + if err = GetChildren(ctx).Render(ctx, w); err != nil { + return err + } + switch w := w.(type) { + case flusher: + w.Flush() + return nil + case flusherError: + return w.Flush() + } + return nil +} diff --git a/vendor/github.com/a-h/templ/fragment.go b/vendor/github.com/a-h/templ/fragment.go new file mode 100644 index 0000000..0b8624d --- /dev/null +++ b/vendor/github.com/a-h/templ/fragment.go @@ -0,0 +1,70 @@ +package templ + +import ( + "context" + "io" + "slices" +) + +// RenderFragments renders the specified fragments to w. +func RenderFragments(ctx context.Context, w io.Writer, c Component, ids ...any) error { + ctx = context.WithValue(ctx, fragmentContextKey, &FragmentContext{ + W: w, + IDs: ids, + }) + return c.Render(ctx, io.Discard) +} + +type fragmentContextKeyType int + +const fragmentContextKey fragmentContextKeyType = iota + +// FragmentContext is used to control rendering of fragments within a template. +type FragmentContext struct { + W io.Writer + IDs []any + Active bool +} + +// Fragment defines a fragment within a template that can be rendered conditionally based on the id. +// You can use it to render a specific part of a page, e.g. to reduce the amount of HTML returned from a HTMX-initiated request. +// Any non-matching contents of the template are rendered, but discarded by the FramentWriter. +func Fragment(id any) Component { + return &fragment{ + ID: id, + } +} + +type fragment struct { + ID any +} + +func (f *fragment) Render(ctx context.Context, w io.Writer) (err error) { + // If not in a fragment context, if we're a child fragment, or in a mismatching fragment context, render children normally. + fragmentCtx := getFragmentContext(ctx) + if fragmentCtx == nil || fragmentCtx.Active || !slices.Contains(fragmentCtx.IDs, f.ID) { + return GetChildren(ctx).Render(ctx, w) + } + + // Instruct child fragments to render their contents normally, because the writer + // passed to them is already the FragmentContext's writer. + fragmentCtx.Active = true + defer func() { + fragmentCtx.Active = false + }() + return GetChildren(ctx).Render(ctx, fragmentCtx.W) +} + +// getFragmentContext retrieves the FragmentContext from the provided context. It returns nil if no +// FragmentContext is found or if the context value is of an unexpected type. +func getFragmentContext(ctx context.Context) *FragmentContext { + ctxValue := ctx.Value(fragmentContextKey) + if ctxValue == nil { + return nil + } + v, ok := ctxValue.(*FragmentContext) + if !ok { + return nil + } + return v +} diff --git a/vendor/github.com/a-h/templ/generator/generator.go b/vendor/github.com/a-h/templ/generator/generator.go new file mode 100644 index 0000000..6476741 --- /dev/null +++ b/vendor/github.com/a-h/templ/generator/generator.go @@ -0,0 +1,1815 @@ +package generator + +import ( + "crypto/sha256" + "encoding/hex" + "errors" + "fmt" + "html" + "io" + "path/filepath" + "reflect" + "strconv" + "strings" + "time" + "unicode" + + _ "embed" + + "github.com/a-h/templ/parser/v2" +) + +type GenerateOpt func(g *generator) error + +// WithVersion enables the version to be included in the generated code. +func WithVersion(v string) GenerateOpt { + return func(g *generator) error { + g.options.Version = v + return nil + } +} + +// WithTimestamp enables the generated date to be included in the generated code. +func WithTimestamp(d time.Time) GenerateOpt { + return func(g *generator) error { + g.options.GeneratedDate = d.Format(time.RFC3339) + return nil + } +} + +// WithFileName sets the filename of the templ file in template rendering error messages. +func WithFileName(name string) GenerateOpt { + return func(g *generator) error { + if filepath.IsAbs(name) { + _, g.options.FileName = filepath.Split(name) + return nil + } + g.options.FileName = name + return nil + } +} + +// WithSkipCodeGeneratedComment skips the code generated comment at the top of the file. +// gopls disables edit related functionality for generated files, so the templ LSP may +// wish to skip generation of this comment so that gopls provides expected results. +func WithSkipCodeGeneratedComment() GenerateOpt { + return func(g *generator) error { + g.options.SkipCodeGeneratedComment = true + return nil + } +} + +type GeneratorOutput struct { + Options GeneratorOptions `json:"meta"` + SourceMap *parser.SourceMap `json:"sourceMap"` + Literals []string `json:"literals"` +} + +type GeneratorOptions struct { + // Version of templ. + Version string + // FileName to include in error messages if string expressions return an error. + FileName string + // SkipCodeGeneratedComment skips the code generated comment at the top of the file. + SkipCodeGeneratedComment bool + // GeneratedDate to include as a comment. + GeneratedDate string +} + +// HasGoChanged returns true if the Go code has changed between the previous and updated GeneratorOutput. +func HasGoChanged(previous, updated GeneratorOutput) bool { + // If generator options have changed, we need to recompile. + if previous.Options.Version != updated.Options.Version { + return true + } + if previous.Options.FileName != updated.Options.FileName { + return true + } + if previous.Options.SkipCodeGeneratedComment != updated.Options.SkipCodeGeneratedComment { + return true + } + // We don't check the generated date as it's not used for determining if the file has changed. + // If the number of literals has changed, we need to recompile. + if len(previous.Literals) != len(updated.Literals) { + return true + } + // If the Go code has changed, we need to recompile. + if len(previous.SourceMap.Expressions) != len(updated.SourceMap.Expressions) { + return true + } + for i, prev := range previous.SourceMap.Expressions { + if prev != updated.SourceMap.Expressions[i] { + return true + } + } + return false +} + +// HasTextChanged returns true if the text literals have changed between the previous and updated GeneratorOutput. +func HasTextChanged(previous, updated GeneratorOutput) bool { + if len(previous.Literals) != len(updated.Literals) { + return true + } + for i, prev := range previous.Literals { + if prev != updated.Literals[i] { + return true + } + } + return false +} + +// Generate generates Go code from the input template file to w, and returns a map of the location of Go expressions in the template +// to the location of the generated Go code in the output. +func Generate(template *parser.TemplateFile, w io.Writer, opts ...GenerateOpt) (op GeneratorOutput, err error) { + g := &generator{ + tf: template, + w: NewRangeWriter(w), + sourceMap: parser.NewSourceMap(), + } + for _, opt := range opts { + if err = opt(g); err != nil { + return + } + } + err = g.generate() + if err != nil { + return op, err + } + op.Options = g.options + op.SourceMap = g.sourceMap + op.Literals = g.w.Literals + return op, nil +} + +type generator struct { + tf *parser.TemplateFile + w *RangeWriter + sourceMap *parser.SourceMap + variableID int + childrenVar string + + options GeneratorOptions +} + +func (g *generator) generate() (err error) { + if err = g.writeCodeGeneratedComment(); err != nil { + return + } + if err = g.writeVersionComment(); err != nil { + return + } + if err = g.writeGeneratedDateComment(); err != nil { + return + } + if err = g.writeHeader(); err != nil { + return + } + if err = g.writePackage(); err != nil { + return + } + if err = g.writeImports(); err != nil { + return + } + if err = g.writeTemplateNodes(); err != nil { + return + } + if err = g.writeBlankAssignmentForRuntimeImport(); err != nil { + return + } + return err +} + +// See https://pkg.go.dev/cmd/go#hdr-Generate_Go_files_by_processing_source +// Automatically generated files have a comment in the header that instructs the LSP +// to stop operating. +func (g *generator) writeCodeGeneratedComment() (err error) { + if g.options.SkipCodeGeneratedComment { + // Write an empty comment so that the file is the same shape. + _, err = g.w.Write("//\n\n") + return err + } + _, err = g.w.Write("// Code generated by templ - DO NOT EDIT.\n\n") + return err +} + +func (g *generator) writeVersionComment() (err error) { + if g.options.Version != "" { + _, err = g.w.Write("// templ: version: " + g.options.Version + "\n") + } + return err +} + +func (g *generator) writeGeneratedDateComment() (err error) { + if g.options.GeneratedDate != "" { + _, err = g.w.Write("// templ: generated: " + g.options.GeneratedDate + "\n") + } + return err +} + +func (g *generator) writeHeader() (err error) { + if len(g.tf.Header) == 0 { + return nil + } + for _, n := range g.tf.Header { + if err := g.writeGoExpression(n); err != nil { + return err + } + } + return err +} + +func (g *generator) writePackage() error { + var r parser.Range + var err error + // package ... + if r, err = g.w.Write(g.tf.Package.Expression.Value + "\n\n"); err != nil { + return err + } + g.sourceMap.Add(g.tf.Package.Expression, r) + if _, err = g.w.Write("//lint:file-ignore SA4006 This context is only used if a nested component is present.\n\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeImports() error { + var err error + // Always import templ because it's the interface type of all templates. + if _, err = g.w.Write("import \"github.com/a-h/templ\"\n"); err != nil { + return err + } + if _, err = g.w.Write("import templruntime \"github.com/a-h/templ/runtime\"\n"); err != nil { + return err + } + if _, err = g.w.Write("\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeTemplateNodes() error { + for i, n := range g.tf.Nodes { + switch n := n.(type) { + case *parser.TemplateFileGoExpression: + if err := g.writeGoExpression(n); err != nil { + return err + } + case *parser.HTMLTemplate: + if err := g.writeTemplate(i, n); err != nil { + return err + } + case *parser.CSSTemplate: + if err := g.writeCSS(n); err != nil { + return err + } + case *parser.ScriptTemplate: + if err := g.writeScript(n); err != nil { + return err + } + default: + return fmt.Errorf("unknown node type: %v", reflect.TypeOf(n)) + } + } + return nil +} + +func (g *generator) writeCSS(n *parser.CSSTemplate) error { + if n == nil { + return errors.New("CSS template is nil") + } + var r parser.Range + var tgtSymbolRange parser.Range + var err error + var indentLevel int + + // func + if r, err = g.w.Write("func "); err != nil { + return err + } + tgtSymbolRange.From = r.From + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // templ.CSSClass { + if _, err = g.w.Write(" templ.CSSClass {\n"); err != nil { + return err + } + { + indentLevel++ + // templ_7745c5c3_CSSBuilder := templruntim.GetBuilder() + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_CSSBuilder := templruntime.GetBuilder()\n"); err != nil { + return err + } + for _, p := range n.Properties { + switch p := p.(type) { + case *parser.ConstantCSSProperty: + // Constant CSS property values are not sanitized. + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_CSSBuilder.WriteString("+createGoString(p.String(true))+")\n"); err != nil { + return err + } + case *parser.ExpressionCSSProperty: + // templ_7745c5c3_CSSBuilder.WriteString(templ.SanitizeCSS('name', p.Expression())) + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_CSSBuilder.WriteString(string(templ.SanitizeCSS(`%s`, ", p.Name)); err != nil { + return err + } + if r, err = g.w.Write(p.Value.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(p.Value.Expression, r) + if _, err = g.w.Write(")))\n"); err != nil { + return err + } + default: + return fmt.Errorf("unknown CSS property type: %v", reflect.TypeOf(p)) + } + } + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_CSSID := templ.CSSID(`%s`, templ_7745c5c3_CSSBuilder.String())\n", n.Name)); err != nil { + return err + } + // return templ.CSS { + if _, err = g.w.WriteIndent(indentLevel, "return templ.ComponentCSSClass{\n"); err != nil { + return err + } + { + indentLevel++ + // ID: templ_7745c5c3_CSSID, + if _, err = g.w.WriteIndent(indentLevel, "ID: templ_7745c5c3_CSSID,\n"); err != nil { + return err + } + // Class: templ.SafeCSS(".cssID{" + templ.CSSBuilder.String() + "}"), + if _, err = g.w.WriteIndent(indentLevel, "Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`),\n"); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + indentLevel-- + } + // } + if r, err = g.w.WriteIndent(indentLevel, "}\n\n"); err != nil { + return err + } + + // Keep a track of symbol ranges for the LSP. + tgtSymbolRange.To = r.To + g.sourceMap.AddSymbolRange(n.Range, tgtSymbolRange) + + return nil +} + +func (g *generator) writeGoExpression(n *parser.TemplateFileGoExpression) (err error) { + if n == nil { + return errors.New("go expression is nil") + } + var tgtSymbolRange parser.Range + + r, err := g.w.Write(n.Expression.Value) + if err != nil { + return err + } + tgtSymbolRange.From = r.From + g.sourceMap.Add(n.Expression, r) + v := n.Expression.Value + lineSlice := strings.Split(v, "\n") + lastLine := lineSlice[len(lineSlice)-1] + if strings.HasPrefix(lastLine, "//") { + if _, err = g.w.WriteIndent(0, "\n"); err != nil { + return err + } + return err + } + if r, err = g.w.WriteIndent(0, "\n\n"); err != nil { + return err + } + + // Keep a track of symbol ranges for the LSP. + tgtSymbolRange.To = r.To + g.sourceMap.AddSymbolRange(n.Expression.Range, tgtSymbolRange) + + return err +} + +func (g *generator) writeTemplBuffer(indentLevel int) (err error) { + // templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)\n"); err != nil { + return err + } + // if !templ_7745c5c3_IsBuffer { + // defer func() { + // templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + // if templ_7745c5c3_Err == nil { + // templ_7745c5c3_Err = templ_7745c5c3_BufErr + // } + // }() + // } + if _, err = g.w.WriteIndent(indentLevel, "if !templ_7745c5c3_IsBuffer {\n"); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "defer func() {\n"); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)\n"); err != nil { + return err + } + if _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err == nil {\n"); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ_7745c5c3_BufErr\n"); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}()\n"); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + return +} + +func (g *generator) writeTemplate(nodeIdx int, t *parser.HTMLTemplate) error { + if t == nil { + return errors.New("template is nil") + } + var r parser.Range + var tgtSymbolRange parser.Range + var err error + var indentLevel int + + // func + if r, err = g.w.Write("func "); err != nil { + return err + } + tgtSymbolRange.From = r.From + // (r *Receiver) Name(params []string) + if r, err = g.w.Write(t.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(t.Expression, r) + // templ.Component { + if _, err = g.w.Write(" templ.Component {\n"); err != nil { + return err + } + indentLevel++ + // return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + if _, err = g.w.WriteIndent(indentLevel, "return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {\n"); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context\n"); err != nil { + return err + } + if _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {\n"); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "return templ_7745c5c3_CtxErr"); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + if err := g.writeTemplBuffer(indentLevel); err != nil { + return err + } + // ctx = templ.InitializeContext(ctx) + if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.InitializeContext(ctx)\n"); err != nil { + return err + } + g.childrenVar = g.createVariableName() + // templ_7745c5c3_Var1 := templ.GetChildren(ctx) + // if templ_7745c5c3_Var1 == nil { + // templ_7745c5c3_Var1 = templ.NopComponent + // } + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("%s := templ.GetChildren(ctx)\n", g.childrenVar)); err != nil { + return err + } + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("if %s == nil {\n", g.childrenVar)); err != nil { + return err + } + { + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("%s = templ.NopComponent\n", g.childrenVar)); err != nil { + return err + } + indentLevel-- + } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + // ctx = templ.ClearChildren(children) + if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.ClearChildren(ctx)\n"); err != nil { + return err + } + // Nodes. + if err = g.writeNodes(indentLevel, stripWhitespace(t.Children), nil); err != nil { + return err + } + // return nil + if _, err = g.w.WriteIndent(indentLevel, "return nil\n"); err != nil { + return err + } + indentLevel-- + } + // }) + if _, err = g.w.WriteIndent(indentLevel, "})\n"); err != nil { + return err + } + indentLevel-- + // } + + // Note: gofmt wants to remove a single empty line at the end of a file + // so we have to make sure we don't output one if this is the last node. + closingBrace := "}\n\n" + if nodeIdx+1 >= len(g.tf.Nodes) { + closingBrace = "}\n" + } + + if r, err = g.w.WriteIndent(indentLevel, closingBrace); err != nil { + return err + } + + // Keep a track of symbol ranges for the LSP. + tgtSymbolRange.To = r.To + g.sourceMap.AddSymbolRange(t.Range, tgtSymbolRange) + + return nil +} + +func stripWhitespace(input []parser.Node) (output []parser.Node) { + for i, n := range input { + if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { + output = append(output, input[i]) + } + } + return output +} + +func stripLeadingWhitespace(nodes []parser.Node) []parser.Node { + for i, n := range nodes { + if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { + return nodes[i:] + } + } + return []parser.Node{} +} + +func stripTrailingWhitespace(nodes []parser.Node) []parser.Node { + for i := len(nodes) - 1; i >= 0; i-- { + n := nodes[i] + if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { + return nodes[0 : i+1] + } + } + return []parser.Node{} +} + +func stripLeadingAndTrailingWhitespace(nodes []parser.Node) []parser.Node { + return stripTrailingWhitespace(stripLeadingWhitespace(nodes)) +} + +func (g *generator) writeNodes(indentLevel int, nodes []parser.Node, next parser.Node) error { + for i, curr := range nodes { + var nextNode parser.Node + if i+1 < len(nodes) { + nextNode = nodes[i+1] + } + if nextNode == nil { + nextNode = next + } + if err := g.writeNode(indentLevel, curr, nextNode); err != nil { + return err + } + } + return nil +} + +func (g *generator) writeNode(indentLevel int, current parser.Node, next parser.Node) (err error) { + switch n := current.(type) { + case *parser.DocType: + err = g.writeDocType(indentLevel, n) + case *parser.Element: + err = g.writeElement(indentLevel, n) + case *parser.HTMLComment: + err = g.writeComment(indentLevel, n) + case *parser.ChildrenExpression: + err = g.writeChildrenExpression(indentLevel) + case *parser.RawElement: + err = g.writeRawElement(indentLevel, n) + case *parser.ScriptElement: + err = g.writeScriptElement(indentLevel, n) + case *parser.ForExpression: + err = g.writeForExpression(indentLevel, n, next) + case *parser.CallTemplateExpression: + err = g.writeCallTemplateExpression(indentLevel, n) + case *parser.TemplElementExpression: + err = g.writeTemplElementExpression(indentLevel, n) + case *parser.IfExpression: + err = g.writeIfExpression(indentLevel, n, next) + case *parser.SwitchExpression: + err = g.writeSwitchExpression(indentLevel, n, next) + case *parser.StringExpression: + err = g.writeStringExpression(indentLevel, n.Expression) + case *parser.GoCode: + err = g.writeGoCode(indentLevel, n.Expression) + case *parser.Whitespace: + err = g.writeWhitespace(indentLevel, n) + case *parser.Text: + err = g.writeText(indentLevel, n) + case *parser.GoComment: + // Do not render Go comments in the output HTML. + return + default: + return fmt.Errorf("unhandled type: %v", reflect.TypeOf(n)) + } + // Write trailing whitespace, if there is a next node that might need the space. + // If the next node is inline or text, we might need it. + // If the current node is a block element, we don't need it. + needed := (isInlineOrText(current) && isInlineOrText(next)) + if ws, ok := current.(parser.WhitespaceTrailer); ok && needed { + if err := g.writeWhitespaceTrailer(indentLevel, ws.Trailing()); err != nil { + return err + } + } + return +} + +func isInlineOrText(next parser.Node) bool { + // While these are formatted as blocks when they're written in the HTML template. + // They're inline - i.e. there's no whitespace rendered around them at runtime for minification. + if next == nil { + return false + } + switch n := next.(type) { + case *parser.IfExpression: + return true + case *parser.SwitchExpression: + return true + case *parser.ForExpression: + return true + case *parser.Element: + return !n.IsBlockElement() + case *parser.Text: + return true + case *parser.StringExpression: + return true + } + return false +} + +func (g *generator) writeWhitespaceTrailer(indentLevel int, n parser.TrailingSpace) (err error) { + if n == parser.SpaceNone { + return nil + } + // Normalize whitespace for minified output. In HTML, a single space is equivalent to + // any number of spaces, tabs, or newlines. + if n == parser.SpaceVertical { + n = parser.SpaceHorizontal + } + if _, err = g.w.WriteStringLiteral(indentLevel, string(n)); err != nil { + return err + } + return nil +} + +func (g *generator) writeDocType(indentLevel int, n *parser.DocType) (err error) { + if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf("", escapeQuotes(n.Value))); err != nil { + return err + } + return nil +} + +func escapeQuotes(s string) string { + quoted := strconv.Quote(s) + return quoted[1 : len(quoted)-1] +} + +func (g *generator) writeIfExpression(indentLevel int, n *parser.IfExpression, nextNode parser.Node) (err error) { + var r parser.Range + // if + if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { + return err + } + // x == y { + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Then), nextNode); err != nil { + return err + } + indentLevel-- + } + for _, elseIf := range n.ElseIfs { + // } else if { + if _, err = g.w.WriteIndent(indentLevel, `} else if `); err != nil { + return err + } + // x == y { + if r, err = g.w.Write(elseIf.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(elseIf.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(elseIf.Then), nextNode); err != nil { + return err + } + indentLevel-- + } + } + if len(n.Else) > 0 { + // } else { + if _, err = g.w.WriteIndent(indentLevel, `} else {`+"\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Else), nextNode); err != nil { + return err + } + indentLevel-- + } + } + // } + if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeSwitchExpression(indentLevel int, n *parser.SwitchExpression, next parser.Node) (err error) { + var r parser.Range + // switch + if _, err = g.w.WriteIndent(indentLevel, `switch `); err != nil { + return err + } + // val + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + + if len(n.Cases) > 0 { + for _, c := range n.Cases { + // case x: + // default: + if r, err = g.w.WriteIndent(indentLevel, c.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(c.Expression, r) + indentLevel++ + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(c.Children), next); err != nil { + return err + } + indentLevel-- + } + } + // } + if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeChildrenExpression(indentLevel int) (err error) { + if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_Err = %s.Render(ctx, templ_7745c5c3_Buffer)\n", g.childrenVar)); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { + if len(n.Children) == 0 { + return g.writeSelfClosingTemplElementExpression(indentLevel, n) + } + return g.writeBlockTemplElementExpression(indentLevel, n) +} + +func (g *generator) writeBlockTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { + var r parser.Range + childrenName := g.createVariableName() + if _, err = g.w.WriteIndent(indentLevel, childrenName+" := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {\n"); err != nil { + return err + } + indentLevel++ + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context\n"); err != nil { + return err + } + if err := g.writeTemplBuffer(indentLevel); err != nil { + return err + } + // ctx = templ.InitializeContext(ctx) + if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.InitializeContext(ctx)\n"); err != nil { + return err + } + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Children), nil); err != nil { + return err + } + // return nil + if _, err = g.w.WriteIndent(indentLevel, "return nil\n"); err != nil { + return err + } + indentLevel-- + if _, err = g.w.WriteIndent(indentLevel, "})\n"); err != nil { + return err + } + if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { + return err + } + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // .Render(templ.WithChildren(ctx, children), templ_7745c5c3_Buffer) + if _, err = g.w.Write(".Render(templ.WithChildren(ctx, " + childrenName + "), templ_7745c5c3_Buffer)\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeSelfClosingTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { + if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { + return err + } + // Template expression. + var r parser.Range + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // .Render(ctx, templ_7745c5c3_Buffer) + if _, err = g.w.Write(".Render(ctx, templ_7745c5c3_Buffer)\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeCallTemplateExpression(indentLevel int, n *parser.CallTemplateExpression) (err error) { + if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { + return err + } + // Template expression. + var r parser.Range + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // .Render(ctx, templ_7745c5c3_Buffer) + if _, err = g.w.Write(".Render(ctx, templ_7745c5c3_Buffer)\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeForExpression(indentLevel int, n *parser.ForExpression, next parser.Node) (err error) { + var r parser.Range + // for + if _, err = g.w.WriteIndent(indentLevel, `for `); err != nil { + return err + } + // i, v := range p.Stuff + if r, err = g.w.Write(n.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(n.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + // Children. + indentLevel++ + if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Children), next); err != nil { + return err + } + indentLevel-- + // } + if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeErrorHandler(indentLevel int) (err error) { + _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") + if err != nil { + return err + } + indentLevel++ + _, err = g.w.WriteIndent(indentLevel, "return templ_7745c5c3_Err\n") + if err != nil { + return err + } + indentLevel-- + _, err = g.w.WriteIndent(indentLevel, "}\n") + if err != nil { + return err + } + return err +} + +func (g *generator) writeExpressionErrorHandler(indentLevel int, expression parser.Expression) (err error) { + _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") + if err != nil { + return err + } + indentLevel++ + line := int(expression.Range.To.Line + 1) + col := int(expression.Range.To.Col) + _, err = g.w.WriteIndent(indentLevel, "return templ.Error{Err: templ_7745c5c3_Err, FileName: "+createGoString(g.options.FileName)+", Line: "+strconv.Itoa(line)+", Col: "+strconv.Itoa(col)+"}\n") + if err != nil { + return err + } + indentLevel-- + _, err = g.w.WriteIndent(indentLevel, "}\n") + if err != nil { + return err + } + return err +} + +func (g *generator) writeElement(indentLevel int, n *parser.Element) (err error) { + if len(n.Attributes) == 0 { + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s>`, html.EscapeString(n.Name))); err != nil { + return err + } + } else { + attrs := parser.CopyAttributes(n.Attributes) + // + if err = g.writeElementCSS(indentLevel, attrs); err != nil { + return err + } + // + if err = g.writeElementScript(indentLevel, attrs); err != nil { + return err + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { + return err + } + } + // Skip children and close tag for void elements. + if n.IsVoidElement() && len(n.Children) == 0 { + return nil + } + // Children. + if err = g.writeNodes(indentLevel, stripWhitespace(n.Children), nil); err != nil { + return err + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(``, html.EscapeString(n.Name))); err != nil { + return err + } + return err +} + +func (g *generator) writeAttributeCSS(indentLevel int, attr *parser.ExpressionAttribute) (result *parser.ExpressionAttribute, ok bool, err error) { + var r parser.Range + name := html.EscapeString(attr.Key.String()) + if name != "class" { + ok = false + return + } + // Create a class name for the style. + // The expression can either be expecting a templ.Classes call, or an expression that returns + // var templ_7745c5c3_CSSClasses = []any{ + classesName := g.createVariableName() + if _, err = g.w.WriteIndent(indentLevel, "var "+classesName+" = []any{"); err != nil { + return + } + // p.Name() + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return + } + g.sourceMap.Add(attr.Expression, r) + // }\n + if _, err = g.w.Write("}\n"); err != nil { + return + } + // Render the CSS before the element if required. + // templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_CSSClasses...) + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, "+classesName+"...)\n"); err != nil { + return + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return + } + // Rewrite the ExpressionAttribute to point at the new variable. + newAttr := &parser.ExpressionAttribute{ + Key: attr.Key, + Expression: parser.Expression{ + Value: "templ.CSSClasses(" + classesName + ").String()", + }, + } + return newAttr, true, nil +} + +func (g *generator) writeAttributesCSS(indentLevel int, attrs []parser.Attribute) (err error) { + for i, attr := range attrs { + if attr, ok := attr.(*parser.ExpressionAttribute); ok { + attr, ok, err = g.writeAttributeCSS(indentLevel, attr) + if err != nil { + return err + } + if ok { + attrs[i] = attr + } + } + if cattr, ok := attr.(*parser.ConditionalAttribute); ok { + err = g.writeAttributesCSS(indentLevel, cattr.Then) + if err != nil { + return err + } + err = g.writeAttributesCSS(indentLevel, cattr.Else) + if err != nil { + return err + } + attrs[i] = cattr + } + } + return nil +} + +func (g *generator) writeElementCSS(indentLevel int, attrs []parser.Attribute) (err error) { + return g.writeAttributesCSS(indentLevel, attrs) +} + +func isScriptAttribute(name string) bool { + for _, prefix := range []string{"on", "hx-on:"} { + if strings.HasPrefix(name, prefix) { + return true + } + } + return false +} + +func (g *generator) writeElementScript(indentLevel int, attrs []parser.Attribute) (err error) { + var scriptExpressions []string + for _, attr := range attrs { + scriptExpressions = append(scriptExpressions, getAttributeScripts(attr)...) + } + if len(scriptExpressions) == 0 { + return + } + // Render the scripts before the element if required. + // templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, a, b, c) + if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, "+strings.Join(scriptExpressions, ", ")+")\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return err +} + +func getAttributeScripts(attr parser.Attribute) (scripts []string) { + if attr, ok := attr.(*parser.ConditionalAttribute); ok { + for _, attr := range attr.Then { + scripts = append(scripts, getAttributeScripts(attr)...) + } + for _, attr := range attr.Else { + scripts = append(scripts, getAttributeScripts(attr)...) + } + } + if attr, ok := attr.(*parser.ExpressionAttribute); ok { + name := html.EscapeString(attr.Key.String()) + if isScriptAttribute(name) { + scripts = append(scripts, attr.Expression.Value) + } + } + return scripts +} + +func (g *generator) writeAttributeKey(indentLevel int, attr parser.AttributeKey) (err error) { + if attr, ok := attr.(parser.ConstantAttributeKey); ok { + name := html.EscapeString(attr.Name) + if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(` %s`, name)); err != nil { + return err + } + return nil + } + if attr, ok := attr.(parser.ExpressionAttributeKey); ok { + var r parser.Range + vn := g.createVariableName() + // var vn string + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { + return err + } + // vn, templ_7745c5c3_Err = templ.JoinStringErrs( + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { + return err + } + // p.Name() + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + // Attribute expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) + if err != nil { + return err + } + + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(` `+"+vn+"))\n"); err != nil { + return err + } + return g.writeErrorHandler(indentLevel) + } + return fmt.Errorf("unknown attribute key type %T", attr) +} + +func (g *generator) writeBoolConstantAttribute(indentLevel int, attr *parser.BoolConstantAttribute) (err error) { + return g.writeAttributeKey(indentLevel, attr.Key) +} + +func (g *generator) writeConstantAttribute(indentLevel int, attr *parser.ConstantAttribute) (err error) { + if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { + return err + } + quote := `"` + if attr.SingleQuote { + quote = "'" + } + value := escapeQuotes("=" + quote + attr.Value + quote) + if _, err = g.w.WriteStringLiteral(indentLevel, value); err != nil { + return err + } + return nil +} + +func (g *generator) writeBoolExpressionAttribute(indentLevel int, attr *parser.BoolExpressionAttribute) (err error) { + // if + if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { + return err + } + // x == y + var r parser.Range + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { + return err + } + indentLevel-- + } + // } + if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeExpressionAttributeValueURL(indentLevel int, attr *parser.ExpressionAttribute) (err error) { + vn := g.createVariableName() + // var vn templ.SafeURL + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" templ.SafeURL\n"); err != nil { + return err + } + // vn, templ_7745c5c3_Err = templ.JoinURLErrs( + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinURLErrs("); err != nil { + return err + } + // p.Name() + var r parser.Range + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + // Attribute expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) + if err != nil { + return err + } + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { + return err + } + return g.writeErrorHandler(indentLevel) +} + +func (g *generator) writeExpressionAttributeValueScript(indentLevel int, attr *parser.ExpressionAttribute) (err error) { + // It's a JavaScript handler, and requires special handling, because we expect a JavaScript expression. + vn := g.createVariableName() + // var vn templ.ComponentScript = + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" templ.ComponentScript = "); err != nil { + return err + } + // p.Name() + var r parser.Range + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + if _, err = g.w.Write("\n"); err != nil { + return err + } + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("+vn+".Call)\n"); err != nil { + return err + } + return g.writeErrorHandler(indentLevel) +} + +func (g *generator) writeExpressionAttributeValueDefault(indentLevel int, attr *parser.ExpressionAttribute) (err error) { + var r parser.Range + vn := g.createVariableName() + // var vn string + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { + return err + } + // vn, templ_7745c5c3_Err = templ.JoinStringErrs( + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { + return err + } + // p.Name() + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + // Attribute expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) + if err != nil { + return err + } + + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { + return err + } + return g.writeErrorHandler(indentLevel) +} + +func (g *generator) writeExpressionAttributeValueStyle(indentLevel int, attr *parser.ExpressionAttribute) (err error) { + var r parser.Range + vn := g.createVariableName() + // var vn string + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { + return err + } + // vn, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues( + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("); err != nil { + return err + } + // value + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + // Attribute expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) + if err != nil { + return err + } + + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(vn)) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { + return err + } + return g.writeErrorHandler(indentLevel) +} + +func (g *generator) writeExpressionAttribute(indentLevel int, elementName string, attr *parser.ExpressionAttribute) (err error) { + if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { + return err + } + // =" + if _, err = g.w.WriteStringLiteral(indentLevel, `=\"`); err != nil { + return err + } + attrKey := html.EscapeString(attr.Key.String()) + // Value. + if isExpressionAttributeValueURL(elementName, attrKey) { + if err := g.writeExpressionAttributeValueURL(indentLevel, attr); err != nil { + return err + } + } else if isScriptAttribute(attrKey) { + if err := g.writeExpressionAttributeValueScript(indentLevel, attr); err != nil { + return err + } + } else if attrKey == "style" { + if err := g.writeExpressionAttributeValueStyle(indentLevel, attr); err != nil { + return err + } + } else { + if err := g.writeExpressionAttributeValueDefault(indentLevel, attr); err != nil { + return err + } + } + // Close quote. + if _, err = g.w.WriteStringLiteral(indentLevel, `\"`); err != nil { + return err + } + return nil +} + +func (g *generator) writeSpreadAttributes(indentLevel int, attr *parser.SpreadAttributes) (err error) { + // templ.RenderAttributes(ctx, w, spreadAttrs) + if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = templ.RenderAttributes(ctx, templ_7745c5c3_Buffer, `); err != nil { + return err + } + // spreadAttrs + var r parser.Range + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeConditionalAttribute(indentLevel int, elementName string, attr *parser.ConditionalAttribute) (err error) { + // if + if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { + return err + } + // x == y + var r parser.Range + if r, err = g.w.Write(attr.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(attr.Expression, r) + // { + if _, err = g.w.Write(` {` + "\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeElementAttributes(indentLevel, elementName, attr.Then); err != nil { + return err + } + indentLevel-- + } + if len(attr.Else) > 0 { + // } else { + if _, err = g.w.WriteIndent(indentLevel, `} else {`+"\n"); err != nil { + return err + } + { + indentLevel++ + if err = g.writeElementAttributes(indentLevel, elementName, attr.Else); err != nil { + return err + } + indentLevel-- + } + } + // } + if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { + return err + } + return nil +} + +func (g *generator) writeElementAttributes(indentLevel int, name string, attrs []parser.Attribute) (err error) { + for _, attr := range attrs { + switch attr := attr.(type) { + case *parser.BoolConstantAttribute: + err = g.writeBoolConstantAttribute(indentLevel, attr) + case *parser.ConstantAttribute: + err = g.writeConstantAttribute(indentLevel, attr) + case *parser.BoolExpressionAttribute: + err = g.writeBoolExpressionAttribute(indentLevel, attr) + case *parser.ExpressionAttribute: + err = g.writeExpressionAttribute(indentLevel, name, attr) + case *parser.SpreadAttributes: + err = g.writeSpreadAttributes(indentLevel, attr) + case *parser.ConditionalAttribute: + err = g.writeConditionalAttribute(indentLevel, name, attr) + default: + err = fmt.Errorf("unknown attribute type %T", attr) + } + } + return +} + +func (g *generator) writeRawElement(indentLevel int, n *parser.RawElement) (err error) { + if len(n.Attributes) == 0 { + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s>`, html.EscapeString(n.Name))); err != nil { + return err + } + } else { + // + if err = g.writeElementScript(indentLevel, n.Attributes); err != nil { + return err + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { + return err + } + } + // Contents. + if err = g.writeText(indentLevel, &parser.Text{Value: n.Contents}); err != nil { + return err + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(``, html.EscapeString(n.Name))); err != nil { + return err + } + return err +} + +func (g *generator) writeScriptElement(indentLevel int, n *parser.ScriptElement) (err error) { + if len(n.Attributes) == 0 { + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, ` + if err = g.writeElementScript(indentLevel, n.Attributes); err != nil { + return err + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { + return err + } + } + // Contents. + for _, c := range n.Contents { + if err = g.writeScriptContents(indentLevel, c); err != nil { + return err + } + } + //
+ if _, err = g.w.WriteStringLiteral(indentLevel, ""); err != nil { + return err + } + return err +} + +func (g *generator) writeScriptContents(indentLevel int, c parser.ScriptContents) (err error) { + if c.Value != nil { + if *c.Value == "" { + return nil + } + // This is a JS expression and can be written directly to the output. + return g.writeText(indentLevel, &parser.Text{Value: *c.Value}) + } + if c.GoCode != nil { + // This is a Go code block. The code needs to be evaluated, and the result written to the output. + // The variable is JSON encoded to ensure that it is safe to use within a script tag. + var r parser.Range + vn := g.createVariableName() + // Here, we need to get the result, which might be any type. We can use templ.ScriptContent to get the result. + // vn, templ_7745c5c3_Err := templruntime.ScriptContent( + fnCall := "templruntime.ScriptContentOutsideStringLiteral" + if c.InsideStringLiteral { + fnCall = "templruntime.ScriptContentInsideStringLiteral" + } + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err := "+fnCall+"("); err != nil { + return err + } + // p.Name() + if r, err = g.w.Write(c.GoCode.Expression.Value); err != nil { + return err + } + g.sourceMap.Add(c.GoCode.Expression, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + + // Expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, c.GoCode.Expression) + if err != nil { + return err + } + + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(jvn) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("+vn+")\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + + // Write any trailing space. + if c.GoCode.TrailingSpace != "" { + if err = g.writeText(indentLevel, &parser.Text{Value: string(c.GoCode.TrailingSpace)}); err != nil { + return err + } + } + + return nil + } + return errors.New("unknown script content") +} + +func (g *generator) writeComment(indentLevel int, c *parser.HTMLComment) (err error) { + // + if _, err = g.w.WriteStringLiteral(indentLevel, "-->"); err != nil { + return err + } + return err +} + +func (g *generator) createVariableName() string { + g.variableID++ + return "templ_7745c5c3_Var" + strconv.Itoa(g.variableID) +} + +func (g *generator) writeGoCode(indentLevel int, e parser.Expression) (err error) { + if strings.TrimSpace(e.Value) == "" { + return + } + var r parser.Range + if r, err = g.w.WriteIndent(indentLevel, e.Value+"\n"); err != nil { + return err + } + g.sourceMap.Add(e, r) + return nil +} + +func (g *generator) writeStringExpression(indentLevel int, e parser.Expression) (err error) { + if strings.TrimSpace(e.Value) == "" { + return + } + var r parser.Range + vn := g.createVariableName() + // var vn string + if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { + return err + } + // vn, templ_7745c5c3_Err = templ.JoinStringErrs( + if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { + return err + } + // p.Name() + if r, err = g.w.Write(e.Value); err != nil { + return err + } + g.sourceMap.Add(e, r) + // ) + if _, err = g.w.Write(")\n"); err != nil { + return err + } + + // String expression error handler. + err = g.writeExpressionErrorHandler(indentLevel, e) + if err != nil { + return err + } + + // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) + if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { + return err + } + if err = g.writeErrorHandler(indentLevel); err != nil { + return err + } + return nil +} + +func (g *generator) writeWhitespace(indentLevel int, n *parser.Whitespace) (err error) { + if len(n.Value) == 0 { + return + } + // _, err = templ_7745c5c3_Buffer.WriteString(` `) + if _, err = g.w.WriteStringLiteral(indentLevel, " "); err != nil { + return err + } + return nil +} + +func (g *generator) writeText(indentLevel int, n *parser.Text) (err error) { + _, err = g.w.WriteStringLiteral(indentLevel, escapeQuotes(n.Value)) + return err +} + +func createGoString(s string) string { + var sb strings.Builder + sb.WriteRune('`') + sects := strings.Split(s, "`") + for i, sect := range sects { + sb.WriteString(sect) + if len(sects) > i+1 { + sb.WriteString("` + \"`\" + `") + } + } + sb.WriteRune('`') + return sb.String() +} + +func (g *generator) writeScript(t *parser.ScriptTemplate) error { + if t == nil { + return errors.New("script template is nil") + } + var r parser.Range + var tgtSymbolRange parser.Range + var err error + var indentLevel int + + // func + if r, err = g.w.Write("func "); err != nil { + return err + } + tgtSymbolRange.From = r.From + if r, err = g.w.Write(t.Name.Value); err != nil { + return err + } + g.sourceMap.Add(t.Name, r) + // ( + if _, err = g.w.Write("("); err != nil { + return err + } + // Write parameters. + if r, err = g.w.Write(t.Parameters.Value); err != nil { + return err + } + g.sourceMap.Add(t.Parameters, r) + // ) templ.ComponentScript { + if _, err = g.w.Write(") templ.ComponentScript {\n"); err != nil { + return err + } + indentLevel++ + // return templ.ComponentScript{ + if _, err = g.w.WriteIndent(indentLevel, "return templ.ComponentScript{\n"); err != nil { + return err + } + { + indentLevel++ + fn := functionName(t.Name.Value, t.Value) + goFn := createGoString(fn) + // Name: "scriptName", + if _, err = g.w.WriteIndent(indentLevel, "Name: "+goFn+",\n"); err != nil { + return err + } + // Function: `function scriptName(a, b, c){` + `constantScriptValue` + `}`, + prefix := "function " + fn + "(" + stripTypes(t.Parameters.Value) + "){" + body := strings.TrimLeftFunc(t.Value, unicode.IsSpace) + suffix := "}" + if _, err = g.w.WriteIndent(indentLevel, "Function: "+createGoString(prefix+body+suffix)+",\n"); err != nil { + return err + } + // Call: templ.SafeScript(scriptName, a, b, c) + if _, err = g.w.WriteIndent(indentLevel, "Call: templ.SafeScript("+goFn+", "+stripTypes(t.Parameters.Value)+"),\n"); err != nil { + return err + } + // CallInline: templ.SafeScriptInline(scriptName, a, b, c) + if _, err = g.w.WriteIndent(indentLevel, "CallInline: templ.SafeScriptInline("+goFn+", "+stripTypes(t.Parameters.Value)+"),\n"); err != nil { + return err + } + indentLevel-- + } + // } + if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { + return err + } + indentLevel-- + // } + if r, err = g.w.WriteIndent(indentLevel, "}\n\n"); err != nil { + return err + } + + // Keep track of the symbol range for the LSP. + tgtSymbolRange.To = r.To + g.sourceMap.AddSymbolRange(t.Range, tgtSymbolRange) + + return nil +} + +// writeBlankAssignmentForRuntimeImport writes out a blank identifier assignment. +// This ensures that even if the github.com/a-h/templ/runtime package is not used in the generated code, +// the Go compiler will not complain about the unused import. +func (g *generator) writeBlankAssignmentForRuntimeImport() error { + var err error + if _, err = g.w.Write("var _ = templruntime.GeneratedTemplate"); err != nil { + return err + } + return nil +} + +func functionName(name string, body string) string { + h := sha256.New() + h.Write([]byte(body)) + hp := hex.EncodeToString(h.Sum(nil))[0:4] + return "__templ_" + name + "_" + hp +} + +func stripTypes(parameters string) string { + variableNames := []string{} + params := strings.Split(parameters, ",") + for _, param := range params { + p := strings.Split(strings.TrimSpace(param), " ") + variableNames = append(variableNames, strings.TrimSpace(p[0])) + } + return strings.Join(variableNames, ", ") +} + +func isExpressionAttributeValueURL(elementName, attrName string) bool { + switch elementName { + case "a", "link": + return attrName == "href" + case "form": + return attrName == "action" + case "object": + return attrName == "data" + } + return false +} diff --git a/vendor/github.com/a-h/templ/generator/rangewriter.go b/vendor/github.com/a-h/templ/generator/rangewriter.go new file mode 100644 index 0000000..5c28615 --- /dev/null +++ b/vendor/github.com/a-h/templ/generator/rangewriter.go @@ -0,0 +1,122 @@ +package generator + +import ( + "io" + "strconv" + "strings" + "unicode/utf8" + + "github.com/a-h/templ/parser/v2" +) + +func NewRangeWriter(w io.Writer) *RangeWriter { + return &RangeWriter{ + w: w, + builder: &strings.Builder{}, + } +} + +type RangeWriter struct { + Current parser.Position + inLiteral bool + w io.Writer + + // Extract strings. + index int + builder *strings.Builder + Literals []string +} + +func (rw *RangeWriter) closeLiteral(indent int) (r parser.Range, err error) { + rw.inLiteral = false + rw.index++ + + var sb strings.Builder + sb.WriteString(strings.Repeat("\t", indent)) + sb.WriteString(`templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, `) + sb.WriteString(strconv.Itoa(rw.index)) + sb.WriteString(`, "`) + literal := rw.builder.String() + rw.Literals = append(rw.Literals, literal) + sb.WriteString(literal) + rw.builder.Reset() + sb.WriteString(`")`) + sb.WriteString("\n") + + if _, err := rw.write(sb.String()); err != nil { + return r, err + } + + err = rw.writeErrorHandler(indent) + return +} + +func (rw *RangeWriter) WriteIndent(level int, s string) (r parser.Range, err error) { + if rw.inLiteral { + if _, err = rw.closeLiteral(level); err != nil { + return + } + } + _, err = rw.write(strings.Repeat("\t", level)) + if err != nil { + return + } + return rw.write(s) +} + +func (rw *RangeWriter) WriteStringLiteral(level int, s string) (r parser.Range, err error) { + rw.inLiteral = true + rw.builder.WriteString(s) + return +} + +func (rw *RangeWriter) Write(s string) (r parser.Range, err error) { + if rw.inLiteral { + if _, err = rw.closeLiteral(0); err != nil { + return + } + } + return rw.write(s) +} + +func (rw *RangeWriter) write(s string) (r parser.Range, err error) { + r.From = parser.Position{ + Index: rw.Current.Index, + Line: rw.Current.Line, + Col: rw.Current.Col, + } + utf8Bytes := make([]byte, 4) + for _, c := range s { + rlen := utf8.EncodeRune(utf8Bytes, c) + rw.Current.Col += uint32(rlen) + if c == '\n' { + rw.Current.Line++ + rw.Current.Col = 0 + } + _, err = rw.w.Write(utf8Bytes[:rlen]) + rw.Current.Index += int64(rlen) + if err != nil { + return r, err + } + } + r.To = rw.Current + return r, err +} + +func (rw *RangeWriter) writeErrorHandler(indentLevel int) (err error) { + _, err = rw.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") + if err != nil { + return err + } + indentLevel++ + _, err = rw.WriteIndent(indentLevel, "return templ_7745c5c3_Err\n") + if err != nil { + return err + } + indentLevel-- + _, err = rw.WriteIndent(indentLevel, "}\n") + if err != nil { + return err + } + return err +} diff --git a/vendor/github.com/a-h/templ/handler.go b/vendor/github.com/a-h/templ/handler.go new file mode 100644 index 0000000..ae1552b --- /dev/null +++ b/vendor/github.com/a-h/templ/handler.go @@ -0,0 +1,163 @@ +package templ + +import ( + "net/http" +) + +// ComponentHandler is a http.Handler that renders components. +type ComponentHandler struct { + Component Component + Status int + ContentType string + ErrorHandler func(r *http.Request, err error) http.Handler + StreamResponse bool + FragmentIDs []any +} + +const componentHandlerErrorMessage = "templ: failed to render template" + +func (ch *ComponentHandler) handleRenderErr(w http.ResponseWriter, r *http.Request, err error) { + if ch.ErrorHandler != nil { + w.Header().Set("Content-Type", ch.ContentType) + ch.ErrorHandler(r, err).ServeHTTP(w, r) + return + } + http.Error(w, componentHandlerErrorMessage, http.StatusInternalServerError) +} + +func (ch *ComponentHandler) ServeHTTPBufferedFragment(w http.ResponseWriter, r *http.Request) { + // Since the component may error, write to a buffer first. + // This prevents partial responses from being written to the client. + buf := GetBuffer() + defer ReleaseBuffer(buf) + + // Render the component into io.Discard, but use the buffer for fragments. + if err := RenderFragments(r.Context(), buf, ch.Component, ch.FragmentIDs...); err != nil { + ch.handleRenderErr(w, r, err) + return + } + + // The component rendered successfully, we can write the Content-Type and Status. + w.Header().Set("Content-Type", ch.ContentType) + if ch.Status != 0 { + w.WriteHeader(ch.Status) + } + // Ignore write error like http.Error() does, because there is + // no way to recover at this point. + _, _ = w.Write(buf.Bytes()) +} + +func (ch *ComponentHandler) ServeHTTPBufferedComplete(w http.ResponseWriter, r *http.Request) { + // Since the component may error, write to a buffer first. + // This prevents partial responses from being written to the client. + buf := GetBuffer() + defer ReleaseBuffer(buf) + + // Render the component into the buffer. + if err := ch.Component.Render(r.Context(), buf); err != nil { + ch.handleRenderErr(w, r, err) + return + } + + // The component rendered successfully, we can write the Content-Type and Status. + w.Header().Set("Content-Type", ch.ContentType) + if ch.Status != 0 { + w.WriteHeader(ch.Status) + } + // Ignore write error like http.Error() does, because there is + // no way to recover at this point. + _, _ = w.Write(buf.Bytes()) +} + +func (ch *ComponentHandler) ServeHTTPBuffered(w http.ResponseWriter, r *http.Request) { + // If fragments are specified, render only those. + if len(ch.FragmentIDs) > 0 { + ch.ServeHTTPBufferedFragment(w, r) + return + } + + // Otherwise, render the complete component. + ch.ServeHTTPBufferedComplete(w, r) +} + +func (ch *ComponentHandler) ServeHTTPStreamed(w http.ResponseWriter, r *http.Request) { + // If streaming, we do not buffer the response, so set the headers immediately. + w.Header().Set("Content-Type", ch.ContentType) + if ch.Status != 0 { + w.WriteHeader(ch.Status) + } + + // Pass fragment names to the context if specified. + if len(ch.FragmentIDs) > 0 { + + // Render the component into io.Discard, but use the buffer for fragments. + if err := RenderFragments(r.Context(), w, ch.Component, ch.FragmentIDs...); err != nil { + ch.handleRenderErr(w, r, err) + return + } + return + } + + // Render the component into the buffer. + if err := ch.Component.Render(r.Context(), w); err != nil { + ch.handleRenderErr(w, r, err) + return + } +} + +// ServeHTTP implements the http.Handler interface. +func (ch ComponentHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if ch.StreamResponse { + ch.ServeHTTPStreamed(w, r) + return + } + ch.ServeHTTPBuffered(w, r) +} + +// Handler creates a http.Handler that renders the template. +func Handler(c Component, options ...func(*ComponentHandler)) *ComponentHandler { + ch := &ComponentHandler{ + Component: c, + ContentType: "text/html; charset=utf-8", + } + for _, o := range options { + o(ch) + } + return ch +} + +// WithStatus sets the HTTP status code returned by the ComponentHandler. +func WithStatus(status int) func(*ComponentHandler) { + return func(ch *ComponentHandler) { + ch.Status = status + } +} + +// WithContentType sets the Content-Type header returned by the ComponentHandler. +func WithContentType(contentType string) func(*ComponentHandler) { + return func(ch *ComponentHandler) { + ch.ContentType = contentType + } +} + +// WithErrorHandler sets the error handler used if rendering fails. +func WithErrorHandler(eh func(r *http.Request, err error) http.Handler) func(*ComponentHandler) { + return func(ch *ComponentHandler) { + ch.ErrorHandler = eh + } +} + +// WithStreaming sets the ComponentHandler to stream the response instead of buffering it. +func WithStreaming() func(*ComponentHandler) { + return func(ch *ComponentHandler) { + ch.StreamResponse = true + } +} + +// WithFragments sets the ids of the fragments to render. +// If not set, all content is rendered. +func WithFragments(ids ...any) func(*ComponentHandler) { + return func(ch *ComponentHandler) { + ch.FragmentIDs = ids + } +} diff --git a/vendor/github.com/a-h/templ/ide-demo.gif b/vendor/github.com/a-h/templ/ide-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..e35fd68e766d02a19e3742bf7a9c04dd128670fa GIT binary patch literal 544148 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 $5|n6U-u|w|#`Wplq1C*{+aHWG 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%0Dn7lhl@^uk)Fi7pwym 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

o~Uiy`(Ll7++%1J*OU1% z7H9&ATXLtr_v1@$b$1P`%~o7=c+ZRF$i!|vf4k9(0(HR4Ff{+6jDo+orgSyDv3By( zfq|R9M(isqvIq`l&z0j1nb*fIJLj>zsg97$LyAtD36RZpc<*{M+yV6HT1x`GLXnrW-r zuzGgJnk+B0a*z*$HQ7owU=b@%YLU3rc4pC`edmF_@MEYe=X$Lt%uB^p$P94*_BD>- zuQim2|$=tCyFAhmB=92gTLlxZl51EJUp{2jNn=lGldF@+*{K#4Zo15uBYX zHMBgCga1_+AAu( zAPK^~J+5_B{KN(Yh`P9&nw~$vU};pwOF{>kxis49HH^Uqe+adQIFv>Fl>$OuX}rQf z;L4<7P=z@51@gnQ2cc*=Ivc_O#}jUKy%0%l?K?~d2GMh--XP?grz|?ec&hN-%?sGk z0~dSWiUgz$z|rsTQ}!Nh1{?PO#KUG8+X=^Y*`jF`d-u_IWs8Pzx0;KEc(-Qjob&%^ zCL*qtAts_ri54Z0+3Gicd=MBf82&L-W2YkWLk6K(-5c!LT!Xi9rw9&H)}wx6C)+)F#TZ2*_RPjQ>37pW1!NfK3{F?&C8aT-$qBPl_CjZIxEvwH*9s7Mvfs8j9`>H^3GJhAG7JnTW*t1 zZf^4{DPoz3m=MX$kVE)iTKRPB#@;oJaVVi{*l6i}zDnW3ZNm=?MA&=9Stl^uln?4S zx}H}1osKYN?0R>z7lSI=YR-n-3qeezo^0ogYL>xok-kKod@w)icq)W~GdCr+nqKKv+8N=CplZUp%id-j| zty%Me^Lkxcq&>&44Hp7DA99@b_M9YO$waW{Ou3~plRn}~zbttTX}yKZ6j33E z<6L=1uZwTZ8Fz$R>7+v8QZPKK%^5JnSMC9GBs8GT@;<6Mf0WY^3LS&Zkp z(0W?Owq`l**5Ah%5Y$30iOwmIhiS6R^PZ6{XiC%@!R1ESCXbxjxy8Kt<`7tzSJeF* zyNM^fBbXrQ<)u=Ej-tI$4(d**+m%$gs-h#?Bxlb<5Uw7+NhH%aHkzGm!c2u3? zVi+>4EBXG9FWqOJX45k4A3c@*+B0fxj_P^Ju<+O-LuQ-fYr<2cxztTswjf&fr0*h& z*T=)|ibI?&{ZRh3f6eh~!h;Ga+&6P!z5%MLZ+_^<@xz<+xRJ46Cl8GgySpKS4uLir zJn(^04%CLt!1q%@?f}xAbxTUc0VZ<55cT^GJN@~sR9xb>A%%1cjEI%-4O5-`Khx^j zt|rEt6zjoyz%2`HB0*L#G-}v-EkCONncPRAj~aKpAOjPijP4z`HElbaH?^u_5I?a$ zU%RO8*Q&bx;%%3kZ6)nfftrc&lZW1FmyKz@(9ZZi6=2hT{{GZ6SO8T3icJ4l@l5U| zah7bYlYGR|Y(})|LocnnfsRdPuUKp@-wC$uxGdGOMqB{y!9VEi2jthx5o7?_tLqD< zt?e&}23WYxdP{j=ujSH?qOLqv3MVwhX9))7>bh86B!H2e`O3R``}f`nrmW(2v4!>N+&rfZv%v6%|YUgzyUaV>wzTT zK!(Be?mfV9LG}89;Mj#GzvyJn=Ec?1M)zKtYF_#&yGBIxj1T5#o;JL^Zuf4le0k&> zVayYUT~M0i)K5k4mkd<@J)y$x&ucBgP5e&NAGt68 z{Q0{0d+gNJSU0o^fCTWrdC+~^;;tIdproXHCjKM)IG7uyPCZ3%Pc#Lh&u&YEX`Q&B z3V6q!GUd}u3CF-JaDH%!pm znNCF1bQ)N=e#wDYv57Gfrm|RG*dvJ7)WZ35ykS=&?X+}iYx8!S* zStcy-@!)iWxD2+MV*J9>yYxvqJkl8vmIVh=)}U8|iil_l=C2>yOr3-rr7-sR!l5zV1Vr|`j1S2NF#+ewvYg+(r&&so58WiE2R#|~v6^9>1d^<`}@6Uvcv!?Cz`V~mS} zZOI3}mDkpR4TuC47I?)Ve&c+|+wbvNF`*a^fFuLULU7tVpm;QL)=KBbrU zU6<6jF4Ae(QS4YJbG$;!fIo>&m7%d37d@W5@!ckTx(vINdeoS6OijsX%raUQCs*e6z{6vC;sYh*r(pl5nA;GfsxdN|E zDY6zjWFyad#S|Gelz26iB{YhP`T8=y58U`(^&JP;fhydeL`bnd1LeS#@3}q z_K(Ik*`^L7VgIA4C!y(jc~k%OrkhK`XBsQL!eVXm)7ryQQ^8wU%~RK#?=CfSe>Bg? zw#*u}%zL#gB(&VSP7rE(mm6E2$hPu~TAzBgt|qj;C~sZ6-uil}b>m0tTiL68qpKgh zu6|0m`lbBpx9qEm)ZmV_n%`33JR`P(E*PH3MkcbAI4Kn}Z27Znq$s#p6x?RXmh=`w zRa}Gju@lsaBxRuB95Hww!8%%OOB2D!UrZ*E@E?wha?RlwTSUl_2?%XceaB=guF3tp zdeW%KFz1?X4nc#C2&I5kuC?zt4p!y}h2z@V8U!VR_CaHUY&b!hc}_@?+5QyWLMI&3 z=oGal5W)#tc>ie12_4=eptPd)^saW)!}if1hf_woln-{n|E0*7lJOed&?<-l>5K{u zvYQBwGWM1sL9~hBxWrDFkRYQ*c|Yt#Rds`_*!paA70}}i`v)JR*p~P8ZlQpxX!tl1 z1)T`X0ClISb|dY(CE}Z7!#nFVI+dSkZ>6)5E1H{uRw&J zWsaVuA}l$ez=%$*Ac)We9<`xuM-n&ZX$y#hmbIM(>gMf0d)pQ;c;%GP_?;PX9Vz$) zQX~BZ$*$OsYZ7+s&*2ET9h!WQChxC~+%1VMRK#D1kjnhk@s}mzjVkHr`MC=CrFHm+nn{&$;&F9_|0%fl% z1`?-0MPKno1duqobJ@FR()bK+5!~woE?g7hN+s&VYrDCpg-qFE4#?jaoE8qY;GGf* z$s;#zSaHg>-+@?hhriGfo0!mQZwOw%`b(5uivXnoe~GfSe~B`(O9CIi!N>C`16#cR z5@j2-*)=|X4Zx?7W#u@~0q#8^oK{5YP@`cUF`<3H>_;M2gLiAO-|8V|R8yn_;SF|T zjvggL5~e`9L{vBzT=E{WkqhRUjHuBOX#^CXrRJUs9-!d|NRksYd<*~XK4Y#Gk+7Jf ztv~~BlFNF~y?8I2t;UL%8cP%MFT1I^kZYZX`h*Z?g$jL9T=UGE;3#!25dU9TS$*?g ztjzM_^*qvFdHBC%nci}1(S{C`|~HwE%#jdpP1nHwE{88g~q+t5FZ8I=MOp?z{OwVwho2Sw_8ZB-rGt_Q)mSjG()81!4(%kjhRdE zpP)utur?1IWO(P&j)%Kgkaii6KM7yO0_sU~*<9e)1*n@3D4T@mbFWKKKx*W%;BXLv zjk@<{v|?Q-4g<>gkFZeUCX>I2nV#N%5HmYbuwleMh#5ub0Ee(PKMC70_{itU@~^uJ zJXi;7^ei8r>bC|Jh~7QRhx)YkSz@4TT;7(Ze@HX3>?UE6fPj)9a)l_OHtp1tz0lNv z(akz(sszYp9dCFdSiKcoQUwzK2@>-L3Fj$YQ?Pzy)L+<)&D5rYcG2QHMnH}AV99@A zGo^oFGwueDKDGZezK=C_xNods66O6?=>K{XN0?+`Ud?krSh6#Wi`?~Clvat^)uPOA zd8w%T#MHhXWIXK2dUBQtJ3tgZ5NCN0K&pQ!vlkb6htNU+P1gVk@6I)AiNLooR|;Ef z)p+2vpQpV0#y<2jwV0F8mDlr9yloV4TMFAVyjQ{ZS)(+s?=ED}Z_q?QgTSXi$=X8VNu3b}hkpSdsXwv{bxJ zF8jO>L0N#`#eeX}zE}MWdzaz{@o1Db6{LL?49@`>6l}ytVQF-nuyU|QgRPO!zn`ss zq0HI6`}D|fU>W!JX)BM$p4%IjDs1?^+<{%=FCU89_sOsO(Y3I5x#BuZSTG&RO#T0mJj)OfuK{=?7i;#jY|&gMvTSkJ79%hca`r!DyP0pZ{{I$ zKX~^CvJ8c6N)bw6{fyx&Krcoa-~Tjqhxa}s7UBqSlpVl%i8}m8>h*-zIJJJ zZSkv3a9W=i6{0w0nXVCgv4M9g^}Gjdm;^7pg30uUO9e!|_!42Y# z_tglzr~v+fE6Vtii8nyr=5T)+z$I1VzA;5XBd?O>)U6H&zwyYFm~XDSe}r+_I#)LB zvbdcXe+*UO()MUg329UyXVL#o&SKkvOXRWTu}g;pr~mx^EkJP9TH&8Wnt^Hyjls6r z!;{q@gQw#u5}6**T}od3a1F%8L;xO>zd}tGq0a!g#Qg1p$*99@c%_D+VOEL;$2_B^ z#Dr4Ck_(^>8YtL$3=Td=I{Cw;0>1I8=i}mbbQMszQ)zN&?c?cq3%;n`N*r@=m!cgp zdAGs^4gfI`8g8rg#y}<$| zN|VD%CX~@vQqIJ@epLtAHKOb6Xz;wl`Io|@Mh@FVZ{HwPrs!UcS(bW3nxrleJ)Z;{RY2xX@XO{xrhK|_bZqfH{^$4ywtGr3=sZs|1tlS_(9(haBcB>r= zso&z4DCw;#K<$8OqRN$eH1{A^U|jZRkZy`0EBRtPpUX3z{j34R@zPpz-|dOP8&(s+(y8U$DPrlPrRQW?sCZ7C3Eq|E*4cY;bb zOI1M&Is|*683TbUijubk!Hl;DzX6G&Dz1l|#Gwa3(1*wwuNmpXbatvNRXQq-H&BZV zOma_={*^+P%PIs?9*BNbQNqUcSR6{W*z~sdZnD%c74D4aD;RbVM0eUxzNr+`$mfiu zDzOjjg^n@AmDwrjVj?20C))Eu4w%-jv+feU6@(sjblPU?>b{(Eo{-z>Yrq}EXtN;C z_*A%eh4|a$XSc#a>r?sDsJ@Ve;$AL=CQUnlIaX(`T{4{;Jc~#4Dfi7WXy(chi-$6u zl12XPjXigk(Zh~T39XtgI0FqJLKUEhQ#{x-+FahOcb{9=OmXiss#55K39FmO)!i^6Ngm%6T$g4_ z2cSV)^+JjJley;xt%9_RdmVxz-v_ouEGiW&I)u61FMlBT^o$fN<>;l4tat(qHXO;) zKH7Dy;)sLH&Xf-&n?4=C@Gdpj#M8h5Rd&Cu(_tHs=9DbAMn+Vh3l?TRx#yN6Bl{(MI3v<(hbcwJqN}8;M#VA?wy;qV;DNAZ94K$CM22yM zpm|Z;s%GVC=G{++bx3!yhm902pq>|+5|$}**WJ2eQki;8Ya=?_vAAjkvcu3E;zdo< z{zL`q@n2lB;iE&LZrfbqGG}R7GK0rd>MouK3Ctt8))yS#q`mcYw6`FF@0RFgO9cAw zcU0~n45yXKzsiNjEV|8il@wdcr|tf8@W6RHjwV*k(g=4jJ+h-({#6eIgYn+6nO;r6 zOYehuDdoNUy_IzL1nAR;*gaCVF-Z?}?Dp%AC9mD2dnps1L_f1C6!YnhEbnzf?WNZ2 z^u+g7cn?Y#jY8jCpTGGP7H}}oTy&`m0~b}ZhfMMF{Z3j+3NKFX!YTPYa-CF)qiyi>tZ}H5dltNCD>#-kW(2$kV7dSV zwz)Nd16rwaSddlgp;3J}h3)z?hDyu9$N;{kVrtpxLpv+lZFKY`Gd&87gw4Su=+!4& zRitjV)q5dKrlN9wq99#&_Yo9yGsz`dj@n3nIEZ;!Gy)c@e=c-;6W$~LQe&e(W87M{ z_p&-Px#l?np@Vsfo~4#AhCaK>Fwves7>(15jC_)v8W-wnQ0B)nhm*IzFN736r@@l~ zz%r@ie^D{2r1Y%8%oBKQ9j4LfXcFsy`{|5rjdHhEN&pESuaT0UmT&IUlNz`s8EL_p zeU+5}=H6t)sOnV+q%z~+1X|XoHEG2M9z7|#g!d>-3SY4nfOH>Zgqit-VAci|+Usqf z$jL{ZExlm&+~+Y;dk=4)8YhPF8Q64o5N9R~FxFEuNX!W9@VrTc0nq|p^OA@MOf0w7 z#39^B$zm6XJH5VR&Rv){4}@%A90kpodA(uukm~G{SJL;Ky@oQ$j969Oo49mHYSQsa zWR=^^A!DyU$7e^9UZk$x#fjkvX~degwBs&0fpEC zkn7Z=FzGG%j=JBr;Xx=4#7an63%+22>VOR zKcDQ~_u6^P1OHmJ3I0o@KH{a4@->MutvRnWty(Tufn4c8Cu!WY7{b z$MYl?YMZ=o2H2b6dL+fs3=z8i>zvEIJUX1;zmN(kFrPIiSL{9~3p1D;2ky%LOSkZq6Rp zQXB^0-w>S*I&7^>e4^#Z!=BAOCfARF#5ffSN}0;TbX^|2)=oB(lX9(bI0Vye?<3RU zq25t;<=i(|I5N4atk997dFt|JQQ+2^h1gRx2B*gO5-*m`uZ-Fa`h(i_K~#}nK31T1 zb$z;0lmNnp{4Gl2x%Iy)iX^DXPkWPRnWJePR$W_EEseIdJ^crb;`9l`o~Gizqpp^V zFA?OVk5_5jQktBpYcN;JE*C!+S5UW}-O5#fyD+w#XKX*;?^38lGBQq|wfl8>^m?{! z76#lFuCzxDips7w4zt{&j8y8mb@Alwj`fKmtp<)$eTLUI^tj!zElQ;XFgvTX`TTI5 zxV>%8zM}KDo2OWm%gF2I3@No*XW8r5iYB8pCeQ7*w|+XVrrgrIYJdHt?e)gdOB<7e zDpSP`_D;Q%w_K)1R*Qx{6%7Xn0UiedZEC;Pb|QIlLJ06!-LOj>_q<+5B<{H@1bAFT z#L0gFo>@&s7sN3&TX@Lv7vQO-CO;g$^Jv&nEfd5EIBzL3Nn8@&zw~Kb2=GXV+~q*4 zR)l6_2TL^l?po3QwT(@m)+8WPeJ`!4){ zbfV)6S!DkTwTYsv?W(zAYWsvVMSI=7OXL(0`F$Pr|Cdg*P=_+tB-EkoFrru@#kV`r zr8Oi|J#hbLC;DFwfoylY&;<|Lg0Ur{n+XQ2x>s z1ExD~T>rej&>sHeuCL+ex4fYof#LySCwlqGy{3P4C^Pqm{-G&;e%n2H@7}N;vXaCSHF@j7t`aNu8^+wG*jg?{BV{~hjKZ6 zTkG1>91?utaIWrr$d*K%<-eV1ztSTGWcc=)SOF$2(EGq2}cVxB~5v>sb=GJ4zV;Me5YE8dp#wj=y{6E*R}&G4v>&zDQ0 z;^vpvqrzYR(O@${_y~SJOtG1ihuXEl&&HZ*YGsKYh&YxZaj5xPnoQKj`xN;z5v$Nm zN#)B>Y*GJt7+#mlft2Y5nFm(iaag=vH0{$KV3gy=0E;HUPu{C^wb4DUtGLGtDx!8V z5QbIbl0zipxK?;lRIvH&OPw1hkL^0w)p@(#lkW>Nd-Og9TJFd(-xT!7ABH&VN?;%q z<7hfTG3|oKu>oRM^g%@YUQSnF%n5Q2G$Tj=&wnRDA0ea(;Jn`tlw7s?%m#XPOiuD>=K-X5=A})3BonR)3)2>2Av7Q5NJ`(+!P0M$Btf7$ zR~EFx!y5T|Oa@J3iPi8pW&xngsb4JA$(%gcelAp+&;s5@^@o%bbF?+@9TW2yCJD~+ zfvNa>xHj2*bF_Vb5U`&$rY@pOrK z^X%!sD_U(K8T|4sBPR(d5G&&&vJVzU@0;*&zSkTeZ>jmlx)f$sT!uz7HBFIwH0S_3 zMY4pSs>kNUVF}6deoVmeCJ!V+PL`i%!nR-VFS-RR@zF#|zZGh&1aiVw~6=FU~ z?MSdJ5#j|s9CiLXPs2~k;@&Zq%ws-BWPUma_aPT@gFh-_8#kg|Q!SQ}n=AfM2@NY# zQpg}23YFbrCBtnE!IPo8SWL%t7b3LD1NP}~HC+pH1oJdC4|PsUP+*~=1h0-KV>+hM zCfaqvD_=I|(N}EruWJQK5Uma9Ec>S}R2cNL@>8+vlu6x=f-9l)ZOi8JXO9t~3Yjt! z3H~@~IbwutJ%CmP(2XUMnlK||a1(5z>< zUzZQ2!+S2*&Te3y=~9vjA*wVoqzc*o!v;sN+t{2gv7Xy-g7$9rj^zl_`{v9CD1&AK~W!t8$9&9YfFW#vD4w= zl!JFSxSPy+!Y7?Knu!<~n14&M7jyB9Vaz!IbwY8Ql|Oc|yxQ(#Qtb<4V-Quuw`UUUxr~#2QrhGfy$!EHk9& zAun#qJb(%WKqL(`3Y`Cs0yDlzJ~?# z@3KI%LZ0smKM#TBJ0P#zu^kQQEh|*=#NWa|M69k(nUN6MV$DI=Bo`1#Ek$BK$p{@` zJUBZ~KCegvlZNP{5@j6xs$=&im-xVkracUAnje<^6KZ7HeSJ~>eC$}_@*VxRbODHQ zMva`eOxin+ozOv#E6cwSkoFo`+pH{9v_b|rR zO?%d7^h=jzK4i-Fg~*H&dUR@Ib^D?C+bITm>&q*$YxZNh&0LPiM%8Auy@%ABBVbW% zpH=k(BX?de+|j1D&-E3VZ@YaLZHg?+RNa8=NFPMc?7B>s4IwMq9!j{HctZq5i{W(;wi5Ks_lq7Q0z$`uA6igHkT3J*r*-08p#u14*WMe@rTu3NWH-xC_#MAv$V5h| zEXx)1eRNL5G4^6k%mT$+tmcSKF%$QOi%wGo?I5DnGmclX40gq0w|6s?q_9dH?eJBU zP(<^Fi!mdg7>Y)&6OTXULsCBDACNJDbS!QG8$>o%T}4UQViI}SEM{VKbf%!WSs_utALMF5f)5G ztbhuKOM^1F==)Gv*ZZ&|9K>ev(6fc+ei?9AF2Zk{h44x*g#)cG%XXk;#}%ctafEO; zI*Y6m7?&OzlAg!~-|s}cp<@#%@C;sD__>5YHts$R;cp|-#%F92-nm#qO`Sv}0!TNC zjMUZ~V=IgSQg)#B)F}!qgpBqJ-me%Sl23wHq#!4`C(N{ zdbI4uvTQrR`fKT#)@dM-j~gc%#4<&45HcyBa5p{R+)Qk*iqku;xT4oKI_yH7H) zQVB%jMq5$<8A;)*XNYhRlN>#3$Xgjm2N_K<@=?+cljK)knDf=A z)#~yqQ7q^r9T@{VW%s%gMnO!{;n%i-NK3G8>*|h_)8YHBsMY>m-@Y<0eGA3UGi$ve z!s#3XACa9;i#8L`fE~_NS`uJkdtp~CP)xuVb9A@NL1AQjIt6g#;#P*s&dg~$o-my# zPC)QM%VbRNB2c!a^aZ&AO8|$AUn+_QTKT1EU-3&^Tq32RfsZp-$VG}kL|A};gniFX z@sa>9a53=DwyGJfkD~zrw=t{nWYbdPRoSM7-A%g!n|8SRlrbd1qA`gCd?I(h>aY`u zt>$_Tc9aSg7GIT#Ani1>q!Ca!4~pVl-Om=jMLLy3>aa5(Pw2e0 zgzlnR+q7GieZcp3WX<=0-MzrNb$|m0-NXmUbfDDx+SDge=ZI%x5WDw$Y<;e7yDmsT z!uU?R<}eGa0524h^g$7Db_uIQ117wHAX>#z z2YBf=#f^!(Q&ZZ?#w|g1OR$?x)HvQ;!hWm)>}B>lzd{WiX($uit~Rt}jEBMQP@`{V zW3mzsKCC?$ozfp$(?7NDAja>X4$pd0RrHSAs&&Lo&-++;5d_9^Il$J_p(1qnmAi-t za6iYA2IL*FNc{+Iwt{xwH}xXg+47-BiLm2rsIR{9i|actiGpN1kgq(C=~5HndLT7| zP(uR}q4wzd48aIgRp|NWs!?M0%rXfZr-otwDR2L73-K7K4q+p&&AS5J>`Vw6Ld}YmY9j2P|oY->rIHZ1dD) zF)y+U?$$-=L=5RYGSlLtg&vkZ!pK!oP%IZ0W}TsA;E*@#sQW* zxD6W$)SN*4hVJK|FtL;o<%4DxFDSF2;dHhIjbqClZkxWA!^wI(UvrTZe^>%sYgp7U zp3N`5_iIA>^F!QY{tPJ(JIy>IDdJQI-J2aH~0wHQ4(vq!RklGaOV>T0^9bz7^PikKIw&kamR-E z1 zpx`H>8^7%9fVjMK1Ti#RK3=hsud8=4PqqwjU? zxcANJ-p}>cKa-cf2)f{2BpF2>jC2Kp>Vr!>hOg~FynYO~WgZg+xVwq_#ra&rIlCAp zWbu=9oBypfPZ=y9+_kM-3O4j9^b)=Cl7_EE&~vQuqpTWo^R{U47wZ)YROfw(h(>Jk zMUM_yU)cjwXxHI+tp*^{3qc@X?wXr*`!bR-{2-qXQn?NF@C{dH?>5|dJu1ojskgx{ z2Xx>bpV-{_z8Ik3*_bXcE&v`RyNtW?K!(>g3AoM${SVGHcc1=!WzSBTbjyHAsd=HZ z=S(>-xx6;F8u^_fq8KTwIRttpnZ87Fyw>cfBvd6+CoelLy<$(^*bI4?<|Gk$$aVg1 zyS(4~+=nxQriU|A4{!d)J=kb?6N^|`moZ$$w(%iLRM`1t`cPc|x}4YS@4Lj$K=+<| zy-&CQNW9lxJ2QPm-;WCyP_(TQt_s4!mAP;sjL==V9uG0J+XO1qg=FaHM4JL_W44Fq5Mw~kT5oY_Ggr(2I# z984A^Xx%#`!M?%!bBm#lTk2kqKRy1qv!oF4=$lUp^UmS8O?dH3(7l=bu0l7xJdF`? zcE>(0fMSg$nT#AgW%y1v%>3=BMkPStNymIV<$BsUDet-5y=O_5G7RU-kvZ12tT&4a zB2@z83bL@RO?udL?5#K#5F@0!aU!m6?rZn%i}zcqyNIh~0R#3k!#j-vKAMkf%A}uu zoM|eP9eE>nXYs%ez0=P{U}1e1eRXApzaW{&DLUu|6Lo|0C`ID&+a|}YgwGQ04{P!t zUp^*x(7EDgUsceg^y9~dc#4apiSf6`@HodBOcJ2Y;h^}23ak*FD}Xi^ZtJd{ZTU@t zWe2;UtHggTbMZDQp)!+P9kI#k&3OPpxO9c-e0<-PRzaoVh3j`T`+c5OFVnGkw_}ue z$v@x_Iienxcz4*ysCBZRrJ`q3B%5k{nG|+eYY`}Mg~3R|>jvJ(>Om-ajW7Afg5W@1 z66rUJ4z}IHzqZAiyzh!A8KT(p>=gO3;|~!vx_0Q%Rp(!0QQh&n4rmy8ej9v9<`xgj|;c4Di=^x$l-Y3}ITf{+Y~3Mrlqr2LAkb^iglL;N8rPq>oR` zu#&>ScgNm&V^7Z4INsw5h}H>Gkh1v7NPdxw4)a3cma*{zO2_|fUHcPtC5;f=PtZ~h zu-j~GW%Kj&QB&-l-1^ISguCcF zGqi@qhJ1wj?p3CwTmrQqhP}H6qodwyQ-ad0=ST$X)2u#wvh_R33}3GFmT7gHw0`T6 ziidx({|^FF5)nvm%=Y(_IfB#;i4T;~72`x?`iHDQ@{GibIPfj&(wEWBelkIYA_W_$Q>@ptx#@Ut>ZS!w96n&(n*x+`J`X>z_#mcH2frM>!vH}mkX7|8@l`+Xy)mZ&Jyv%tD>(@7t-;$%{8{~A8YELB%?a<;uA z-;gY6r9!?xfNUgfJ%JFlTRJ{vR~LvuPhDR#&(`EnMZJ)}KSB0Q=C9m9UT5w(;e5TP zsec9a$b_?LnQh_T zOgAVU)RezLoi=NI-!$}SP%gt`dAYR^hg3~JBoH2rc4*~^+49`t*Cp}ZNSzaps*>_n zh?Az$w?u`9o7;6|ZtHRwn>tu9-;JkIyD8@g9X!>ZBj(X>H!;p+@*tAmI0$vIu}8wI z3cKosryF$RavCvDhYEss*qnn;ad4iQvVUmWV9{n)p)wt$vWIgPnMp;u(#@e1I@o&V z4ai6Q$Z1&~Lv`adLXN2zzt1z>`AdeXhLO3HC3m9SiUTRF8HAV;leNkVV6M_&Yy=8I zm_G|qqphkWRs-TbPH>4#j)*D05$#C?33YIc3J+56jwS61%W;)*3n0aytp?iPjMBBF zC)<1xQxZWA8l>PY;i^E2uV)o3Dd{=%_O}s*W5-G~QG=+23DB<7*RE`f zYY?s`SC}!YAO*TPy6iKKEIn&x++r&;67O8mMLw^2p1$vfN67_Vk*Zd7T|q}ClN;UH zr0*~KScSkq@(Zn<)~DY`T7cS0I`ePHghL}^&LK1haXQRPX=k5Z60zl66=%^89rP0I zQl;uvRd0QKvwT1DTY&YeB(fkt(cVDPQUBVdY>th`EVrvM&pXOGlX}A4`3t z+MFn#>krcJUc3W0{aEqbB-rS|;@#NMV;A1{2b+FfymtovX@V^mVj;D}&9Lbx{CpwA z#$ai>Aicv6As@QWU5NJl`FL6DM(F<7rTYh#^Mo;uFsIU`SsLzh&4C+XZrw|By>`+6 z{~`}^fFbY$HuPVs=6~*pOU`ospI1!@3EV6n|G!2aumZafE>X#@?4QWP|83R$L8%c& z9?lCR4|CP2MCCmm^|w2l9$a-_;n>xGZdz>rUslb^)P3DM&3ofM21NiFGiKN5BY&Q` zTuxpd%DnTTR@{)!yOp)YzS5!hpH*{L=j86j7x#R=k8bC&PQE%*XCDE(bN#c;bd5Z# zj4`r~9Rw|q4`rO>To6nd(n>fWWB_ zgHj2yx+^K)>dBNRo7lF6vZkf(oFO=0Ar>+h;Ls`l*fs`)Gr7e*b-SAU)H z?C+|%%CwRUt+9Q+ojX)0j6AHKquBgiHQhqD7Gqs_=Ey&L=$B*Ve1xlJw7-RL)r2or zMf|CG^`e3{y8Y#azmbP*m$j;K)e_9DVY96-#+fkx<rGAi`j?rUst~6g>3v6Ov7W7^*Cq{^^xAeSdTyO3F zV#Gu^G*d#bMJ%yYsA?EF6z`6^Jbn_F^Y@^nZKN^zP=bFfU%u^PB4R2nn1^$Uy1-Z2qlZcYYqY zf!VA1epuZ7*RvSOS*o3yK5_GkP`KG{F)sP!RaNKKx(McwdiTbMNz#}P0TH&Qh1^!C zBKmeLMM3l9g^fQx*M>y!MYrx+Y-{;6B^59+9s5=A=IaxBRL>EZh|jc$!q)fA z)%O?%Z@)QfN~KO@7Pv=#e_m!!uvE(i8o#-fWkklW!X$S5cvWBb_QNrRP^w!mSJXm0 z*7(5B;8oYl)}L>GdI1oO1lMJgLJP;g?5XVdou40eJ-hqsBlrKH?7icu{{R2~vz&7r z>)0ddkS(Glq(b&4*(AwIg)&ne$2#_mV;_5DrIOJ&R91Gf=@=nNsO+5Y^Qd0$*L(gx zzyG>i`uAMi@6YSwdcWN??_GtOd*o?ynT8l^Nq9({#eC@xKl|9)6TNG!EYQ5S+93b44eLvbVdzB$O+GRAos71xg_B}N`V==D`0?%x4dNjPI^&UzRuDN12?D|C&2q%8RwFGs^ElqIH-rRVPUw;T{di84Z`7YE#kBlSywk_V%UI*Cy25*1ouoxVt`?|EEZB^oC?`eFmV z=YL)emi1wV#;1QT5Y;c$F}E`2dQC1ofmhMHw$jg4jx7Xk#0`8q-em(N56TQ>>bBzV zQu`m5$S4OHrFIMyDgG!miYYTK)_GrM^`p$9tIX_a$9tfRA&=<_PR(3-uqORSxr_b- ztD%m;+J+w$9--+c5@pQlMt@ZLbv>}#XfP`@Gc6S}5=U+73^((vSL5}|9XQ_(w@kmU z5(1Umi!2UzSgqF(y2_nS0=*3Z>yL;G6)u{(qy6dYk4rANTU;d-4mPYmsg9{|ch(&n zrHroE)_qKb!7njfCfV!OGgSV$5pUD4^h$j@KBu@*-y2hTt5|np(Q2b%xU16V>D!6r zfDPbAyvnatcXBPAv+>fCATz7>$@PYf=PNN)f%6%abB|Niuz6K?S&8A3dCHJ&hH5NA zj|@4mNkSS_<2XCX@Kc*j=-BEI5xpst^=30ycXimw&ME4RIEL{dUQ=(HC1dlo=-`cj zCy8Qv+nlb#K=+!n-epEBtgy6GJY1dx`_U0=EF}j=dD+Ye9N22p8nnGhP!8onZ{1c} z_l(++m=zJ(>aggpN$Hc5@*rMDKiIZNwu~;tF!{fAF?f_dRDO)M976$eVm0}jGxKFA ze#TC<$1;F2hBG^9<_yCjvZ~-Xh5U~0^LJNsIJ*`!PNkbLU?K8kBfRQ6?yGpI;{YRD zFu1+_j+l~|61y4&6>aVhUzSNb>J2(8syI*``=s3YrvMEbgjY{g`LL0s(}fR~#yrE1 zvt9L<91iRZ$Dknca=B%;2O5Sln2lGi_e=&|U@tEdXkk$~Z#JsA% zvTZ`^;e8)$uo`Kd8B#%p%ga`JdidEerDjjOlDt13m9aZ3N-?}h+qnqVC7olo-u`jV zXX&$=q0&eBp8D>qsk|$MhTeqcr=1KJ*0K)#T+q5_0}=LQQV$uQIx!^sGRfdanRS*c z6A>pwtX9n(%Y0|f)HvK~cZ^Y%3}Uk99cb0}x|#Izi$`4J2bb=39d_Ggzn;d)Pz_(? z3E5m!{3dE;YoqzV-U{CE*)(U*X3MF))%dt)vm%CD9oBnmDHp$(H+Fz0dGZS~n4T|a z8gBPz?0qjWe7u`PNZjxRJ2>Id8wc=zg zg5`$grQ~sREWx6F!Dlvul?ieR$Y9~&U=_a*EkcOY@eqmT;NvABMqHsLB~p4N0tWJ- z7KBi%I>`$J0rR?0d#*4Cq=YSA;G%q(3n9$SMdXT~fOB1#2Uob4h0rw@fgAGSeuVG< zq@Z^lzi(YQmJ5#~s3@)D^esXRunnI61EAVced4JZ$7F zXoMSL8IP)upSlU~mUw#Z1eUZ@jINw$g#@m&gw*p1-ku3OTM3wvlf2rTeB6n`{)tw{ z6M3g2MMn~)xaGyS*o3wcWi6A~Sd(HX&53gLNlIz5@)3fHBT1?X$ztDmm?)&Ba$;j1Y6aV`b^`fT!XtT8Yc3by7YwpAQ?%P|YIQa`XSfU;MQ-G2O z{lpa5!<6d^skgQcdnlm2EK>vOQ;&M3LK0E~xe2&5w=kDb6$Ju5jSy&oSJa9MFD1lt zrwM3<91~4T@lTVSPNjedgpsuD(zMJ^X?bF4#4SR;e|pI$e6)6&1|hw2D?OzyJ=`L# z+A^cI9$n)~ch#DnMw-Fh6az~K4ELORlTDctQxi9g# zJfpd_ZMl3rd8Noa0js=BtvuoMyd->{_-I~aTb>k8{%vIbF{}IsqFGK_S#k~eS@`_x zCHYD`1z4?oRjUF^tpbho0wa8Z&S-&3TY&*jp&YW%#HvtStI#aH&@a5uYP8U?wa|{I z$P7{BU{$24S>%*nBp+VnHd@5lT6CSKm;x{MvMOHCDE3J&9t>n+;ZI&Ktlo_j7>bsaPyaqBNA`*3g8}Z^4Hv#MZ(!9|d>1h}9 z1Ip&j%1Ro_hKtI|x64}Q%BmF~)CfO#9Pl8==|Nq?gP5WR&$b`jnR`G|EO!$we;rV6 z=~UjsGopdG8`E%0GH z@DP1VoW=T~3oH6>R;w~t9;5?4^y@Rvl}oFdOu7d|f!X|Lc{K!n&P`dgX14VoU4C@B zK$jmHhytU2=4~Yw873(Gl2_m69GA3^cG>Up%i=MOG<^kQg?kPkFXjouso0=&CB`rT2p5A!wODirf zG3;Z-pz{%B_^q-2W)%vhsuk25{AGbhJXv`d(rm$i>L*cd8@vcKUV=*aX}Ro>lxd~W zUhziKyDu$ob$$N8#CqC`(Mf&97V?#UmeJ~mOzQ_6eHq)hGRLg5I*gHY-;NF$>M^c- zWrS5H7!yVS6i0hvrV4wAhrKWDWNHpxx@EXGcqE2o3ro|dQBj3Rot#7+1LW0vOxO@! zm4{tEC~aPG(b*)KZS!F<{KpcNIG!aJ$0Q>kF@XS%g_QXFnyMBAc9_?vkLh%I=7Mp& zZ6Vf>%Ok)oo?ps_{iQ2{%0*hJBMO&7edb(UZl;SlW@uxyH2D48c*R|BJiO4W%I(9? z4t7Al7Mm*|-W9fmMfD5z`sRg}m0do6$Naw8gO+0r<`;Me0C}~pqwK0(-Fm?1vqCV5 zrRwHoH+SpT!UvA1O2~d*dep@y@x{E?jBfTU&>G3V1*1WMD4-*}pz{DNIQ1{I;IE$% z&w#RV-kYd@u7va|2uu8zO32?oqxPh{e{!JBO#fa9x$i(ze?~)9_OBuj>eiP36D=ru zLz|Bq|4$AykSJHq=}g}k{SR93$AKQ{59R$A2ilrX(t@l_tfjR7&4GSaw~*m&xK_@6 zYd=v=H^<;F2l{#A##eIjRZ2Xj3HNq(>a3jMekJ5@TJUpc^V{cCzkZE)_PK{4lXp=S znt%f>yiW@N2O6y*n(MDMLd*1#hDVG!x(mkUA0do1u1Ter6olH35PP0F-=9`-4t4WGz-3L@i#3vBL-$G zk?zC7XhUS)veUv!5{u~*&5WyhH6*?~9xyxg0aHlMmE?^i<{|l1w0cVu?ML0d)Gtsg zA(!$B5F#th2Rfb=+5|c3bV{{3Htw!}{`wN6d7v2yiz5Z`R1`D?A#SB4SK)Tx`?SFQ zVcMLfeKsVlL-cc^uN_bcDVXZ+70E!7(dFTb8>@c7pL66}r|gjXx7#c*FaphlLDkfs zL`Z(`RpUJU&hOQWCFyzw4fpRrqMYQ9fi{^g;yY94iXVeEz7s~a4csE@!;Y!@w4h>r z^hICG`j|(nqg~Xb|W1%_+P{B~S?o(1MwGO{uNfu&eee z5LzXBg^!uO%UkoraH;Kug4F9&T2Q&YSpIZ*`*U@x)Xvi5q3b(eq9u?pHcCjf4U&Yo zQG*a7%OKfwZddHCb)GzH#2{3T`T2do{Kn58!8t1&JEFthDK_X{nj!}=h=ul^7lxmA^CEgr8|@P`(} zM;8c+Xt(QFttApV3xrR$w;KekB@yYb@IPDtU&(D#n(o)HG)g-VW=e$N^swKYwBK5( zzD-IGkDi$j8cnp|J-j z7gR;5Y}IAY47>HwjTb62S3V<6z~l8m3u7BKQ5Dvj_gewa7Xu~b?x!&5vAl`oQsz34u}x3k$QGAR=uuH?u>B83HGK?$jy zv%;sg+Kpmsl8f~|id+Ap1y4IaO5NUiYtQ(I(5g3gEMu!vx6=MQS{^6O)*O4AHTw7_ zZ2Pprm?d`gRM?3{Uw{^D^6mhjEH_Hps^;{VhA5-;cmFuOhfWp)evMf#IBdsIUs{&{u- zb?yQXyPDLiMp+$dQ4 zLhZlbFKJJS`$#->1~Q_T1^$r!-?LklGsG@a_VB}$lHAC><(y}>ybDX>ast(|J*NqTX^^TerbPpQ|^5G z{4pv+^X|(Rz+cX=R@>kAOMjo;Q-S3dT!Q?!@3(#k;q{T9#QwTp`Zc?$q~D;`h%4YV zSN@?((z148v)6{FV})>S{~-Oq{Zh@mrbMQDzoTe?jo*y={3pWf{k<*x#}pf%Pajk5 z!+_b{{E0b|fiHwugxE5!Kjhe+AU5x7MZI78J-fBD(xjC@2d-XQPd%I&wq07H>MiwW zb|*`@%%N~{@dy3oW1X)QM(HS9=MjI+?lQNsfMgtkFCc^xfH(jRF#a1mXSogz^xS^gd?@-|Qm4 zcca!hd)yFHL8m0+IwmqmQ%yxvUnokRJ)Vd*A94tFb{}*@t1@T{GON+DtW2DI6kZhL zcPIE_<|#JHd2+$-|72agAKu zlc7HI;Oicc278oZ*JVv=`ZK#fyrjXe<@~4FElWNtpw)!3S^;J^2F@Oiqjg&e#?a>? zsigm3XLl~W`ersyGC54X^Y`qohRJC)qbPU(>+Ieq{Q_*1DTM2i0Ne_g-K|MEU<~cB=&t(SurH45zd^ zOn@}l61_rk^Y#w2hPC_E(S=8xf!Pg^{>bv&bf5OOcKf8?38_SqzqC*Ki;ktXcRDG4 z`-}7gb2?1?`q%C*M;HI9bN-gSX~U}YjhlkoAhxUiBK<~K z9gqRL*#7JeGb_Px;7ZPk=op6!6y!1JFNC7XWP|jS^SKyGRRP~Hf$_1x&r#9bWFh0E z$nOe0O)fO{Iz|NCz&`1xO9!3CveJx1jB3-Gm|#aui)0Tj7|WFPWjK95L`z^$c>+}` z=8(-bn*h2Z7fpbm-y$m@4YpOsEKFRYjN@l3)1FLFO~ZQy3VQLv>GTUvkC~qGKK<$D zthh<#=#MIqJEHc*Zb8Y6>($l=@g)SF_ixGV%mn3RO9rN{cU z;muYjv4JY)WD@kJK#yae#*>}~AEmSta8%y*D3$bE)<5XcdnZkI75j+Uou|hw<4XPc zt?ma;@1J*f&HzZi`L&Hmm?CL4%2F#B$mVqQ3$v~tJhRc5r;R;Cvc!$!fHYWJOK3kf z)=_#&^)OcTZ0KjO81qnLG0(XR@1hE!n*&@|KUQH8&!icb0PMZFsHa;tx@{tN;jub2 zsLB+sWO0s%6(Ic|egLJ^mpK_W-Jt8b7k7M~)+F(~3X6du=?=}HC4kv|=ZT$9~^1>B6;dt9RVJP&RIKKMxf zI*qEw1dmI@DZ4YA1nuVyM(?%<>*jh@>Jy?RH~eVEt6NZY?pYS!=zHpyZQN6B8t>U- zMtWoAg2biiZWZK$faFKMnsNJ6Z+S-gHEf*X67U`wJL7w+Jo0tMcv(^00WuMi)pU93 zWzd0%ptt3+&s5NNXLde-jv7LnF+gY%^k6^P{3-jvl|af#xQL6&YsB=YFzelEJy+$x zcc4(#&QpCVE%M_I)^-U1>2INwlJF<4WCvti9~7+`^@=$7Eq#pl3`Na7lrfzrYiD={LFi?pw+PRYe@*F+2cK1-M9C?rJFZSE8p|uN}f983wSZohTAUUFX+we z?|gR7>ER&m9l9b4MhuDtj2M24tz;AAzZij2oi<5wQ*2sI?Fl@WXAdj729W-HZH8f9 z$pbwv)}QwLT)s`&i8|6mLA0EO%mlwo6y>694fX8K$5Ehj&J@&gTMLHKGe#8K^z(BY zWp4-A1Gunztzg^l>JUFHl7L0kVgEt;7c^EbofU&A3n!@pDR#jm7_0O-3>Qv79w%sl z6D~P>01s*K#T^;ONp0e!xq^?$2UAJEU$7)huq}u$)EsFfZFRC$Vu>|G%_2m}OYuWr z@L87-z2Oi87i+DBgQweIRqG*UexVjF^2Wmlb&w&Jn^e+o`6zTyCiH^nKIt!!akMyS z`-}98N?+4D==7WPAMutyc;gr8*AlxUdeB!Mk0;aWGlbx?vKB|ro)gaGX zA>(3SI(G;^V9J}liy12>lelzyFMVty(-1Vl|^}4uS7thUMwr|66 z5QX@;^*DWINMv;gtUjJz>>9kDjROdxG=jun_)eUdTYzHe%IA9?&f!1%4wq%7*Gr2l3AeS3uz#|Uu;%M_Qilz6Wc zw~>_VX(H}hDP9Vx_AIHl{8Rn>1%1*|14mL%)ui49NWZoKR)G-aPe7Xx@b!dfS4`vx zmGrNz5)v)bQX=@0{nOIx(?YQEDnc@($a5n|DEEp!zTb52L@Jn z7>GgxTr&TI%S8gaz2d*@_WN8;m4Wd;XA_tZ!;*x~m)ZP>-9G7ZXwsi-0u(IfpPL^3 z&gC-p=>C<eN{jHz3rU`FeayHy4+4=r?EGLKQ$LV{(wX%Jp@#UYaO<0gg zxQ(AV4W2JBm|uu|9&%!p$v5W9$w?FF>5_@7#;%(e@$|U4LpGB!3p^_6p`!LtR@?=A zdJlg%&ivtW!|_I1TcZ0G&#YP{FVOU$Cs$ekT*&q&!H4|O5Clt|X@1hL-5w{FjJ@=W z%azWhyQimpj9HYK3Kz-{O@t#PuZ_%QBmJe(X@PL@g#=Y?g@s(aFktaS16)px$21-; zUdT4BDVQ0JF3<@$14Nh+!+4C1UPkP5xw6Hwa`EpV))HBY15}L&RofxRL%Xo} zxlGx!x4DYi^zg7vI4TJqn(S~6x@d`Mx+?Lp%stjI*7Hkk_+%~#YUUxaTsNC?_4)&L z61oG!qAbzmZMAnxD%Pd*YE^24X#6tY#y*!rbk0DvAG5$wZks^}Hi~;k=`+ZftOjgO z-F-Divf4Q)mjd!yZN-EGT#n|1GL5*OC=05nVqr?<4byquwNBaac0MDMmh<1bl{S_h zl`+@^>4@GfU+F;wbJ5@EJbUuXcVF`GAF z@c>*->;y<%B9!c(jY#n@!Mzf+e7imwc!+Y#=K~fYCI5j578H4?%90E&k|3W>oD9}9 zSpSenwRn!3S3^W%JnZdg4!hTABc)Se3UejjqK^|H+Li%}R4(_BV>1ZF`ayi9md{^R zY3J+VtHez{J}7m!&k+Zsb3IrzST1?6=%8;zX6^pi)3CzH&7lWQQ@PxW3~ekHw~yDGcb zp6Adk+H$P22*O~b4DFOp<_LL9e^%Py8k=*d@OX60ecGn89V<){eq_9h_GPGj@_pg! za}mCdblejTK`6D)2{C#F7sQDzN2gb%V%(LXg5)+$sosQC`a)4nZJj|2%_P=%!K-rc zHWRrb2)bABu~a@Mod17!vyD-F*s0pEh z#l!3Yi^oOfG*FRY-^_wx5X(9OhQ|D{cslx18j|z**h{q(_@f;+rw&Q|ws@S_iq9~V z8HMW%y!yxD(fzOuaJkK{s=FI+KkRL9yaX}+!{XVKGH_oxrlm;b za?&9WL;#DYu2}_#gGd1u&jU?xk2e-yEHS-cB0y6b&0(U{In8mZ4%3Gk1MekZe<=H5 zBzzvm`qHfj|;ZKG%T$G z!i6rac73^yI06o^M<}+O zzV3mY;bgFmsM;F%L_k`YpK-_5XTs#zX6Q28v%Z&rOWTeQ@ z1GZees&pW_(HIn9>oV~!>bu=b`TtzXc>oD*3vOSFf zOB<5noxzO4Mwx=2C(k#Ytyp!vOq#)bJpl7qice&6B*(13%D3+RUUcfGF#}M0>XUHx z{_Hb-u6h3wg>Eo$=)g6C6TXj<>tcS{dd$$UadaqFm_`kE(0KXD8}H>$sn5p12iF4D zmiL$fNT5$N&W&V*p`S32r_xW>V8F(FtG}GJD(?Rjq1LDPTzC01w0=hjw)RcE_}K~( zuy}639DD$Qz^gTo;B(zq{`J&TD0dM4{EFxM;)+F7{cZX{6($$?!|+V4?S4(F#gik% zLZDG>#;&)F?de+HIL+&G7R}cAVm-QkWY;h9LcY)m=Qi4VikxRYEuKB>1DW1A=w+5W<1s`|W ze(LD;&G+YqKNPTd$`a>v=*Yhf@B)L=ZM4u7S91eFd`m% z7$54!5+1?j=BMdav>ulD$PL!##?=-9?Dl!ic*)$zLqT{6V=n9I)H3`^9Y%;TWN! zl_<@fq!fCg^n}@!P%F{bE1c%>7fLRe6F>+*bh4_ed8V>ajd!w^zttJq4f&QY%yJFUrb(FdRcvX`3TkGspih8QOI}5K)z1X=HaSg9-s} zKi{cb*$7A@GopBIhCjJ#UTOD_mv}3h+xII*pZ>2jGVtNhzVA0exvap}$kn*^;Me~- zjqJI<=jE4ihbdV$NFCVVKc|sBt6Lqf1h>v%(rUiU^zPIAKWSvAuY0vZh3F`b0$`aC zI0Huh$8f`<2A;z9I-GC;v(ra8(&qg3$3-0F=R>w^Yul_;6W_nR#24KkH&Gm!OFECH z4|#KK#aJtej?Qm3*M#d5e=qXm=@b9v?aR-(ECI-W49xa*Hlm{j8+*yJD$J7;dsfA=Yn+e+3(N#U?_bZ zg(AG?-V7AZatU^hb;^=#N~CW5zh2^#%@)s7Nq9$5Mv93J|JIaXLB2+RS_14W@)ikt zXWLaQnF&L&$1x(%Zhh+1?zrQW@?JNMDmWl?{NDIanb4dlU~YNTv)zZ{RgXY9=igi_ z=!2;s)tah0=J2>X%vaQc5F&e##&t`zzi9r~X9^dvlg}9z072mWq^w(hq1#odJW7e~ z*C=NCfv>9Emeu#4M)Cc6iC=xg6)vX2kkg>}?q#&oDN_wrbUC<=TjV`Ro#Ct!uEC(_ z_e*@2{PFKto(iLfUIrKh&q^Do<;u+_$&b4ZZz;*=&%q*vE4~98|Fs|QEs_*01vAQ( z*?Wh=GOJ6uJV8-qT%ZhZ16KJ0V`v_-V0v`_CEjoT^gF2DV+u~w|3<)(xn4zEL6xUa zfBWi5nGwapdTIId1`01W%j9MV&QzK|V-v(zBDhL2P-zwOni8Rqt~QwX?inL+oCU`B zVNKYY&vjI9|Cy$^3Vo*9G?+Np!YDkYa7k7L%9i=F2VAkS+zWdxQqZ?B*?i19 z^lSiZXK-ixBq>;$!C^P}A`SH=J^+1_NedzlS5YA(SL%JbZLh(H6?Nt%-T6F#2_a1W3X`!Dg*mw7gABq&6W$KSx6LB;}>up1laMn*$Dur~hv8N6IA{QT=S|071R_oB%sQXBICn%}B;J;Kt>zS+<~OL(>veVC2d zd6vEpHdc5oma7!ZLC^n`H?J>t|0ONv>K(}$9?5WXeCuW5{G4wZY zzj%g+j_WUPKWxuHg1YgGxb>psi@|KbOT0+rtB7p1bdiw~Elr*N#Qlw5O#M_Du<-+i zKuoEgv(CHp(eFk7?Ct;A_>VoYqOAmlgs%$1_PzadG*dE&DHy9t+j#PQrOyw7J(cG3 zB=IEM)BNS_zpoGisa6@S3^o8S@h<8r$nMCY7u!Foyd_l_3Yub6{XlU1%xNCzkB;~3-7P_z8#wcy4^^?#{WmzK>uI8{ombgZztE+IKlMhF>}#t31T!@qhI84IW0C0~>$i<{N1znZR()WZTNN z7HESujSi6vi~rH8%vcleX&xl7A^1YRWi0l#(yy2J7naZ^Q`|jSP{eT+ulW>rhO?XU z9s4iwndJz_4xVwX7C{FO?F^SR%1xW~V`=kx^NM5sdJINTd6G<&K5y{BRxNvj$!GQQ z_qMu!y~GPd2}2KhxL^aV07as@r%N{McwA$kiw4!(XZ$gV1u?qr=3k=)8s(i5W>e8t zH^Vr9jbHz>)zMks@%R=*WTM-x$GEf;{@!zf)vgL-+rz+1e6e#-tSku0zJz^M7@YN~ z%au5sWma1YZ2ZD!L2y8|7eDfl?)oObsXVjX+%5EURA1e z!mZI#0NzY~{0w2Rg6rvn0FfPvs?0Dh8xkxK!I#xF zfQ<+XybT&=qkQ$9;K6#vHtv3u{%Q-^1u^Lcj^w#if>Ug5S3BP*&M7lB^sc60RY;dv zQ4%WMzRN7$$Cu~N#Wf5RUw=e>!05*|f!T~e^2Ed3{L1xunUyC?&i`C;F+BC$3Cwhv z%+C->2E-xhYw7W)Z#bDZPHuGj9%;s~c_9#ktJvj?aocvuuZ@7W@2Byj1a7VcWi^ua zY~0|z>3`$d+{qq)fz<^&hxv^Z)(=}$Z~u*Ijp0t{z@TRG@M)iYZ+~=bZ@sSP`Lb`% z&g9PC28rp#3gGR>Gz>o2_x8VnPfGs7+duan`sIuito#?vCo{c#4Q%{-YZ;W?1;hX0 z?eC3!coIls<$1!q`~voxkVUIKL)ewS(foh&_IZ%lkN2%b$##N%)-u&}{bWS@h5tbF zi^v-nVI?UE3r1a@K0i`Frgodq9)d&HMB6nEM_iKpa-=5K&L(}8q}{*mEWBxA z_iIPAO0lCFAC8J}C&1POsPNUS_FuQ1Cf9!%AN3|#0f4QUgH?R(Obp?0TgVFLqf+63 zG?)DyF(J-?dfWNJ!nG*VXHhIH_etQkvt{lrU~7&oem%?Mf(DF_I7Mj$?a8H;!YwzF z3X8Pq%E}wA13WSaz1Q}hEtv4=`4&CXBWvxVkF;yr#hxzJR!dbS^W>He+DsM6** zK!uMKbOXl6typEIYv21MIbwj@&U+=d09&)dvGYh*XU%|x^BwX#E8j0C?%LdwTpuns zd7k+GR1!dir$W1^#)nI-j!P?GYxdN~Y)l4zr4;!BRCsUn1CH~$pKHh=z}9@-onXt!aHF0I)SHjhp`1nzygO#;7}@HR)mN zGsMx|6%JU=?WR_yDypsdm3rIxHE^|m-`4!g`1p5Q6EHr8?wYYi+VE+g7#ph5b_}w ztugJk;lv;nni#jv%XNZi*l7y~))=iCC_mSb_=kGKoi(@&4h{7NL!jSM2m!8B@D}^@L45aYJY%AR%Xf|L3vRRBP7sz=^vG5C0J)DslmB6k|03W51+je4x=W(rfnpuz%AZ+bDIXqQ(mHTK?sZ? z0@kaaG7S$X#6%Pab>MB6H9n?StfibK!BAH6xF01ScwCf^02498Y9}mx7d(AUMR zQT#vMcAhb=pQFp$Ic_2g^vav!la_L^!BOnulw6yRCs)n z!t(#~wiDP9S8pc+rqW-w=9oO}5*JMKS|?y@*1;$%z@crz%R|)LPJ^1n|EsO}hYIV~ zQ{DhzK68IZ-0Jpg`G#yZLUIu?`?jVzdB6QwijQh*0=J#peN-w;wKc7``w88Ti%xd^ zXIpd8ta1B2aNAjE&5NVjnswbzDt)`IGTP*#g**;dQEg3Kd-R|*oIb>M$?4P%V0-|! zrv4W<>TPHD{*HM4_RbiY@o8PF{<0Tfd;qtd4MSbaK8@5J@#(X9{jUL>JEC$6I$RrF zU#Yj9pr^`Lj&XV1W0D~w<~Pv5Nv&f(Hijmy?zIT@wsUuyYkx;vjlI1)gJG&~(==F1 z{B_$|4^ZK?6zYx`SKsMu02m*;bJW|;82pWawSfY-jKvk2ykV(h<5PBB75z`%V_||s zu=XMC7t9CDh)ik=)pUwReSWtt+jxDlr=+M=lEYO(_+gqC+6N4Ey(} zqk8P81yf0rR4H+h`U6sPO6g zAob3CGy<&!C4d+&&mI$cceZ@`Aw_qRIqUO8>cX_|$-O;iad0p;@Y4oUCxUU%2;x1& zyc%x#KGi#6BJX9JdrRF?!u#Gq zyWIKiEX~dp@U1vV)=!k341P&sB-le`jF96i!FpG4eIhKQ-hOdUy~n~s8aacHl-yym z2sT2BGN57YB;Pyc$aW7bZ5uP4mi|w{0DZiMlwXiE;U1T0kTD@Fs2?N*LL>mienyaS zdwRa=&;xy;XE#C}2!7<^5H^>vyCqg`@^~*3Fp7MO2Ix^kqk2U`+$krOt`FUQ@+#!U z$>0#b2!8>v(aG~H(sT>)aFo$)cg=ff3v}qs zULUdgej#1wA~f3~NdysEBjjNh1~Q4U*&aG0>nCDij+YIS@C!>q;>)9u-4lG4`Y|>;+l?m zOP};Wrg~t8{LoKt!u{isY1G?J`jL3Xt#~wW+o_PiW|;sOAHZ#=u;$gJxvQiW_XT0_ z-FWx6PB;FY3LjHQ0&Y72<3pa3mNWx*E~$0Cv+i7E<`SObQe&2^;h(Gp+;-L{>y0EE z0LBOReUrba@F!P|CYY3l6Th<0DPbpGjHB9|laoKy_;9PI-gaK!O7Y-M1*q^X%Tyo0 z_()5&F=OLRvg2Q8x-RHI>Afga?eL$da9T28eE6pk($aWZQe~m6O7m$sZ{qT_{j(I( zi%RA0h#4EUv0f7aGh;L=6=I7OG71vYZ}_rtT#kZY0v{zq4lDCK`vloOm+_igqSiH5 zo}cX!7V*jwt??b^LxS`PqQ_~njv86LNy~boeH_QdI>LntK(jScT){x2;L+-6_G;KQ zARV8WwQMQg8j&g4WQ*Vj$I-yvx`2T;5l_?Xe(kKBH{e6|=-f}4hmusjrV&F~a^5en z0IwFj)sO};Gz%JHj^MK^Y9{=s~W;2o`K@Y zcWEX*h+yHc*Evjr1rrhS>S!hqqA(sdBM3f1r1A17P$TE`4S-ZJh-ITGbA=?u83@5YcYX>sl4AAn3dH^6dbjZnp@5OF0$2NIhjNQ~Y@* z51K+{nwbF&J2L!Yc%j!y4k+@$5bc2)9azzKh}R0N@COk^0-M^?mJ0gqSk)NzS8-Xe zu!Cq~NVJh?_@MatZf-~nnl_W7nZ@q`zee)!an1hXT3N4%=2!tcd%#`7VLsB(5O!u> z5X`j~nL$MIU#T&@U6b{xN+9=w9;hr&hbCCiq|yR)3FAlqxtas|kmUdyyYj=rA0XZ8 zN)9p&@JVq@y*!jen?Wx0ws;aaRz99qBeI$&6AwScZYUaR8YxX1d$Q03gIJ0*ow2HP zyIo1M3OW{Fd=z-_Rt7^8U@L5>qt-GsV^0fi3pxc933=u-p&@!iL|){1CK9ZWr~_{* zt1JUCqaXMH#p9?4bsZ4e>KxU#U^@@^qByj95iA*n&<6TDts8o+1v3`YXbwQ3pHBr> z(@JBr*gcB<8;b8x+_I0ofoMpV*kKTA_ApgxXm!wIFAw;wJ`LI94Sm)xRaEn3J@Z4p zgS62o4{R2jRe|OrT+67i-?jekBHU=Zzzah&O{;mdw^*w>y65Ukj@`rWGG3~*(9+&V zvsC9E)B*F^=Rx?10@8V+fz9IL5H3s+=Weqk?xmbDScZsnBcV_7fHQS-peo=qyRUMD zG|ntFOWV8_5qKrn1m^R|(-?p4-b_?X$Td)UlfM15ME8vay+m!=8=G>87w=>`M&CG$ zi*3Hkyd2n4g(JE=YjGcMxxU-t;eM3UfpesbK-4(D0|j$<8Ar#vrlWy>(6=ddFVG(@&us6{>|W*- zD0lDvvfKSVlb=Hx9JAZ@<5`b%GdMW9J-WJmSE-jduQhO~6_(X2Ermx|1GeO=XoFRL?7SJKFq;>fz$obx2zTVh`3>*R&M`6<9s&$96|jzQu-_w z6l>O?w*Fyf1@lg{a2NCOFKFz6cNWp_WNqIa_k1Tmk%a-jqw9ND^=d%>;DGAHYn`9W zCfD9w@_QfUD`(L4&gdHRg=>+QPQNcWaJOe0cf=xsspP$#ZH%_Ov5Kvpx#W;-7TVJ} zqJhg_`1DYN=%88!T0?)3<4DlAq1%oNgWfUdNauT_;e#GS?{0Su&JzZKI>}pi2E+AD z$mYzYb?3=W$1`xaM0<|pEDu(^TQ+IVV5UxIbUAyikz@spe4(GQHcfA_DVLNj1=UBGw7*R5!Z)WsE>Uj0@@a_r&6a68}YlD%JfmI9> z1r+D;w=-i*{3D&VFMWTWc9frdpEUL=z7~;hQK5J+V`e9=LJv#9rIA);k`FqISu^#keYh*e0n=z z`ZL3fc=kx|%#5}E%vrnX-JhcZu?>QiQ<9Y*zDv#?wVB|kn|yxoeV*hPR(EzndpI;E zbMp(i`TWeHBVrPJURSlzvkqe(1H1(o8+6> za}$)A;co}WeI_P^V&`ueOt>(HF(Mb-r51Lq<}~;|oo8Q&s~q%@`s8^~m(n#i+BGk( z|M3T6$mq;iDgKjX_M(>GJ*~Z=)a;pf&WXs_*`#Y^J;njOiTM*96Y0+v(+x&rmOoWX zwW!=>?_iu2H8|-QyVSn7^!CiaU@ZGh#z95!T;GeCvAbU`2WH$b{^WFNaA5i4C#hxI zz|WUfznJzdH8Ol%s?7R4iP^CGYPqz$J^8gX;maQ1N^a9v$ix7N?#lfwR+xnbwbfWo|SFgWQ4P z2YFG=@ZN|auQxjR#TrvC$TOb76CKIM1Dz!@E-EvYNrO!h;5ahID~L4Va%cr}^68x1+l^1;j|6^MH#``4 z`QGOTlH-Ce=Uj7?q?t!*zi!;PxWoAd9EL#^Hn3d#j)?Q1ohH)-zVvQB#DY*p?ht9A z6oRf0kv83fZWBZw^2{?@i5Od_ zXBO47I%%vIC!Z-K2^(aeww~J^NxGt!tLn^AvBmtUKUY|iB~(87(|-T&oAe8x%_?o5 z-=#TVwq#KQ^#4BR>4P9HPTQLfyQoyQ)KeDCo>?0;ff>hc`FkLbFDTb@_^^~`aC%;f zVSf?mz%q3y6iS0_Yy7yf@)A+K(By}%sh$c~SrxC{IoiR?>~SJpO)^NGnVXTKGZy_| zL~Ob{=Ulj&rBUVlNdzCvAaX~@w5iH``Gx)?LBj;a3JLGnof7r5?(^a~du+GAl`F=m zZYb;t-XtD6*(f`)_j7|he?JcP_DtZwj?4dJ?7f4U>fV0uon8nKs-cG-iWm?vQbTA# z5rd+F0tP_@6b*=qh`N)|Yp8~zhK>jr5f#A_LNO{TDk2JMzy^ripopj_C;sl|ea?BG zdC$!I_nOJfo;_=4UF-T@pO4J{OQu3lMnWn~(VgsyxT4&^hHEzLDOXltP$BRBoTsv} zlm-FhohAc-%9(>ycR3;n-J^hsrb08#146ZSX^I~@rt1oMFuY!)5b{uWc8-lgK9REF zx>Bl_oL(6yhGHqqwS|0<>FNj31yWRst^hQUQ>AXc1Gj3rC_o#CKp56wqCkLFPA6jR z)`N%c7ItKdIA~iDxUuJ*#tC0%J zxrZI!?pdnTOgVnD?VP*1<*t$0E3Vb8I+NPLttHciR}8s;l($nR8Z5AkR|yk%aZ za`2gN8e%~h)(um0+V*iLc}G-z?bRLoF812(j5)2Gp1Z;7d_?)dRma|~j>+j_-+E~{@ z3i?>88i9NZfkxX30W?iFbumi`QvjrI^8W#E&CA%&ySLMv?6Z}vn~;2VZE6o4RyM{r zE)9=(Tn&F7(oE;9$V{)A)Cr)@>1k(@ILkP@hB{5z@KD_YNL@9FlcMAy>OdQ-CeWeA znRwUKy558?yCSFI%1Hypuq;QYU&c(1tI%L`&U))eHYaYwCz&qnzcSbGsU=GxFf{bY zjX|F?TM1wKf`iqc{Vu55y1mc%oc4|0qg%gi;d`Ym#68|<{K~ed|G3kaEmx|4*Z=f< zb@k|*Qz++zu{6`yJFdH*HyMp7*mNt^${4I{j*dU?sqN>;7jSm;obOYgIgx)0ju}?= zTA^{_dv6d2clJ_*!LBn6>{WwZrsezJb*1spMkMy1{gU%~>&{+MWcoAR9*NTI&&IkW zMec?w-OE%nxwQd4lCrw z78y?a-m#yWetcyAenYuU+Z|>Y(d)97wEfZb7AeMe%=TzMn@+E~Gk*9<;W_volE=Dx z`!GE)T{QbgG|xzpMO-tox(EHo59*ixRuRhwEPEgbtf&=|ibttyirAmGR$~aWBIBOe zjD{bUo}Yicg+)^pj`gr%D$ByI-+UgR>VrpG0MZpE0Pa{5;GN9q#w2ay?w7)F@_00o z#(>bKxp<67fPA$=iSTp-c#X-I?8Z6y-6tV6SbuP%+f5+#71^*98U71G|Rrm?|@% zklYE4FC^JnovoM`CEbXjQ1=W96*mUq!;8*;bov@tE8p=E5+F!hZE2K`Ob*p;CQ-AD z1eI>Sb#UkTm5BMl{;p`MuLTG~&Oo266S5KdaiUUe9bh~-;DulV8y_Pf>h6#CYO_dk zn#Np0B9nxbT@hEsdw-%5Atx>FxTtszIe4nIu-a;N_+9XN>{k#Me?=JlYxR)N%l!Oz zuHlzBhb2nKxAJ1Yjb=P58(hI{-+H}q^yIr8eTCEcU7Nca{Vh=e1}pw0*4|yNQdi(B zBGYXohWjVk%CgQoX*MNU6Ud4Ii4f6f#O{L`kl=JfOhK$t4qqm@2}(w&3F6*MIRyGu z&3I^pvMMnG!8@k4W-$jIoq@1(d0Kq#79HU^;Crm0`rQ}NF1tV0(8EBO`zeKaf#EDj z0fg^N?xdNkTjIS&RG#P+&wG&MV0Xs!Oe25XhXezz+%dq1hgvs2z*S9<0T@>%J}S1D7r^Fc#?Pc9 zbVYCv**xb06{Y5=V=kj?qjn4Q?S>($N|p-rHQzNb7cb}wcVYsoubd)vzN9(??*lX= z9W<4$U%$`^f2$m3U1B1F?&Z1+aMvEWaCIZiRkPDk?}GWdf=dq!Zw~xwyHoD^@V;XG zZVTmZyE|cBC)}>BP`#FEer(bjcifyHo`*d$(Tnk+ugb9%W!X-@}d+8)54 z$19&lNVD3_|~J3qa}4};EJuAin^ z&F^b_mspJ3-Lhs7w9K%QUv%hX@sK1oqdhHV88hGjWtgYbe^gqb=2!gqQXh(bU8H)~fXN%8B=8 zix0WqiTA&Aa!b~!be`q_{<+X07DS-vtCZ*P=xJKIit{+vcpwpY+=%Q6Jcp<2%7XxA z!rg8Vc-C4E6O>{_O6O#NTyWj;%pucPFVj{LREUsNnMSNq=Cr3V<#FFopG@uz5(-+;5ZCN;dVW5L0I@thIVH|9j z{w#rwYyjZ|gR`2MXre-8qelr|TXDVn9?PysL)wWEoluVj0Vc zfBCgS)k-n~stpd-<{c=ILld%7XMqjvDBpyR zNg<$0;;fh@$ul@te}UCeK$*e$T!VWTRWOQ+0E%gbTLcvo%r39?2)+y~jC0ycJGRB^ z-FL4xHN3WFN)WdQ3Ez-g)!x?{Z=qx{aOkOnc2ZYsP+nKkfNKAMPO@i6+x;X5&jz>t zj%m-Mhq^?AcJA1IUAWhMxBkB5$Asd?8fVlq=%rJx?a{>UQ#_CmDR*09^J%U>hRT+9 zb6|8!H@w?zie4=JT=k_aVuNn1zzao`|CBB`ffxLG(XA|5opM7)luOQW1XTz`NSR>g zFlu=l9l!*z_cKt1BWbf+()K50<(26rp&xD{bz~HJoK-?2K<+UnDvFFeAVft8+4@R1 zu~Z15KtF9a_a!wK!-O=3!E~Ti)IDYiW$Bhv`h;zd&I#}g%Q&V0$ z0~N_x>BqR_le3{x9JAzz+Sn(L@OwGeJE-9k_3qhYH>Z1A+b$6wtM_`V zFG&DZ0|K@&IeLr9s|2M=1IZCUE z8wy2$#-gS$6ms2LONp=97$u+112iWz;XzqCr1Dl*Ha6hAFt*A-bcF-i(Nx^IOAaR= z3HS-ptTk_DQ>x?AA#+n6@>{SU!X!eQ`(anEDjIug7!B?I9H_41q-&YAPo8$`0fzYL z(xvbb{Kg?WT1nrS`p#!VF`si;DWj6&(Yv+S^5GUNCjV}vj0vH9Cr%!9+yN~a#n1tz zD4SF_GcL;@lLz3B;k$O`Awjyrk2K>k5Kc8y7|y!F3w}P_vTPJ;iILEH&@JO@LSCh( zf5uvQ?#b9)jk0Hkbn@Kfr93+w^$#FmHwL`H4!d^+yXdD&>{S{P3cvh*4Ubg0OVMm+ zoj*k>e3Qw(x=$4s$iDsJdQx>3`AKQtj;=??vBaI`UDLY`ARO;ncxgLay86CauJ@X{ zn>6gE_I~!r6l>`Fi)Yw{5n^}olQG7naVhsqAFggx$z)6!`TSQqp5Z2+8zA@f`g1j8 zW-cpTwGTrG8Tcwx6|q};1!J05$ATdkt(nlySuj8DO=%gd$pT$rmbRvQLnbRE1x!f= zgFB|BD~iPm4?UGm)?8eV@%xdx=}FPep79mOcXzK0TMm|gtFY19u9c~h`j%1>MzISz z8yOng{@n1;7E8f+%#ZeRmh%OOR$~^lOevQb$w7(0^O1IYS*gwkwgG|L5T)W_maTY&Bza7o*%-uMOgfKe^v-o1xGZ2fW_fAKM+?gFtgX_@;2pu zcs&+zKt1o)iSYv_ALH!y#vQn|^=+n}^InIC5l6H?9vLc$DEXLp_2cork4ZxxPki`z za^d4Cd47absolBp9aW_m&M>jpgC_qyH4G9P>+*ax>33Lm0z zA`lz7t7am)$3(6tMCAg(l53KM<@0lx(V3F{RUf7wE^Mo|i)amyGnH@@skv7IIF&5nCEKgUz8U7;J?JVC&_# zD8ckaI^fa}b3mF(POv}C`n(F@IE%^lLj9?qMg^;Ej5Udc% z(HkaNOt5uYGLd9%1Q~XkqZBiddO(ESlt8?^lGU~dv0&Bycs&Ii1HSvRpPk6K5-_7h z1)hdvVkLkYk*y#BmR@J38$gs95O^d@xBw8-Ac?r71X|j6+Iw#<1qXHGc9`!9)V8YL*Vp2%)G)%-a|%s zv63x5VlWawh0NAsK$eyG;Kd^uKSmIak^{m>fHa&;=OK@STvR*;kq%1&Qt3q|hlwcr zAJC%iG}>ttlh}5OWt+rA1P`U7CLkvnse>eX3^5fG2|d)1ytW>Tpd=^I;X5vaD)i*_ z#FV2vM6nfGwi?(D^IgtVibWg@fGD&hcZ1=O48UR*wTA@UZwkdRWeM4F1B*qy&nmgq6-E=gTm3#O) z`nw(BXqp6~zj&m1HcBldyFz#O$1QM2$zep~$}nb{W5~w{Q#4`%X7Nbn$gQKg57Uu! z&T=RVKAmwOHv!n~1!AOD6%1gFByBTwrlKzEY2DL z5;1M^X)V^X`>ClxsPN`plc{;D_DE5S>X~aa4k-)f&!z)9 zWC$_=*tZaR_5=7ij%{-gScCe6k4&Z$z9%hbq6AR?b|_|5_R+lWr}*C!H+}Daz69<( zdgPy|3H4mZNfkK>lz24f`-uY8A@9t96By>NK1#uq$0Jl_sqAN0%(XSTmoJMpfm^o$ z(nMu$NLCnOaYik-0Ex-4fAhQ$E#;xI!B_QvzF~^=15)i1 zlqr)K3~@nY@yF?gd(d|1aS@zU$!q>-`Rc)mb?yb~8YYeIrIz7M!LW4XGE$+9#VmB9 zV9_@FB@9>XB#~~w;&)N1W1O*aQrGvUE;elWz~|0qA{vxttmYq2VbHKA-)gsM2ZScu z?N%$R`Pw#nE(IyC8&E-w7sEL!sc}MjekcM#l(Q8{8PHAJ)uN$W8KQfg>k+E-D?5Z; za0S;w`!?Y-;~>s~J*7LxAX+w8V#junl)AfLx08%n(g7mm`SL03%%a14fW|znM&VD) zvM<0f8NudEQFn?+B9B_(d}G}#OsV)BvV}T01|!vqZ~WP=PlMyMjoce1f6j-IP{5at;@Q&5pB^x^0-HDfK95ww#PR)CIH%{AqD+txCB^35saRsxQsVT{= zcTEx}dU*(K?QUP3vgkboOR_Z{hAB6(JY<8W%w(12!0@pi93lQW4|)Pu-Gk4H=Sc7_ zklrrBVHO!~aE9_EB?NmzsN?s&UAND>y3w-hLWu}*jygy+X_XS z!FAo0oxV}!HO`3gy(0b;Qr%y$7_RGo3B_d_Fu;=li2SR;9AC#D@Ig#5-w$J5oXkR7 z*R)Y95H7$t)_Sg_vUH=1|G2ktu`MLf4G-k!S|0qSCA9oRR1umU6{?-rXvIIhufMY5 z9v)>{L3|x__*L=q(pR1wU*#*uwzE;oiNJ9miv$*(2eY1g3)a039cE*wYO3Su-JjLi zd(rNA-TPLiu*?0%Sr>MomcA6fFA27pbk#2r2r3Y}QrAV4s>L!4Q8X_*CVPW|476}L zCR@P4*`q6yRSm3Hr)oZQAOL;oHJ!CMe8JGJj3D^MT7hM$Z1j$%-D>v*9?FfowG{cB6=71ust`z* z8l4IWmL>3f9%qEkR$(`>eyD83kXRmuk!}F6o?J|(EamiYHd&NEBb%1L1?gN z59gKkfRN12S({!baEK9l_ zWc&Gst?Q4K4&>K5*K>ce>^1+aztz)s2sH z;@YZpf0O8L=IxSid*j%La!>`#+YFKc&Ki9WH_byR#jlh*cYJ_Kk+KyX>kq@Cs6MA> z%aG_U1y4L0FJ)$I_Myq!0Trwrv5NizsowQYl!-!j#_@?U;Qqc|$ULJLZcD^*7qfg< z#^y09mcxnqv!MKNEH3Ebq_^Lcy6y*vA}J{LT&Y8WE}y9{_l}7)5CKScpi@I=Opdab z;^SYY?U^4lwHzU?oC3ItLMF~Q62v9A${FL_kp?wvIQ|y|=g)5aD`z_r#tj^}diCla zS`3*5^I4Y@roV{Np6<$+%>l^Eq)(1bUGSa|h|Um|4HW>2p>!$s5f_3J>1RjPvNJ2m zhO&dc!a;?a08C{~nBfzTEZZ#YM^lp3s(59DkhYWCKXet`!d98(>JceB+$c3t z3y8<{KhDN4iL^e*I3!ip@~h(j{2sLH7N#isFwU}G9opkya;&(C)Ze|lEMqeTeqdXy z0eTFvlPrY9=_AHJ87JEs7i zTmxtWX|^;$1=bcoPSBCT<>A{Gl-waKDvFX2$SZo8r;>t(IR_ppM;n3mt0Zmr#=itO zs}jv^0|s|mZFrHo9bBuP4j7d9r9h>1KyUz3Q<+%^_YWl`QK*QkV!P1R>JN4ouWN>= zLC~|=2o>`Ed&;si=YHsigBgRXKDeep9i-YZs1B2GV&ZdQ1+jUE>T9314^$98+Elr zf~Xd2*?pB*t8O0QULD(gWi|_BuFEZsj@;W_C+676>92E(*)RpHSX{vSr>qvYRT4igxv1x4cp4T zx0Q++;F$3rLu2r&Bw!%rk@+lCJ_$rOiO@JUU{(liQ`h6aq9y=GimS}-g?fa8azXdx z{ShdIWGL>;3LAIL*La*jq>>8g4s(s^Ivr{NR?uw~nQG1I_N?i0>=*AOQ3*zd`}of< zC81U{>kv+`9i=e488`0=YNT|9owYkG!1aw%X=G6DIv#Y~1GbvrX+DUEbrfNWy7c?2 zEs~de)viDJa9DR+4cCJAwl*ikIOy@lAnsbpYgmogfe!&89_TizT#)w(CfancWR0kM z)xeMyc?VxdW38x5mI#Bo2OTSQ{nF)^-~+(;B6*@{P5#rfI-w+^$_PtPt|lBcy)i$w z#*0%!&qO|+1+hdblJBSUI#hRNEHVJpWr@GfR_Z~k@Mr`5dmbeMK-KcS30_Gqjw2_Q zuH6C0Cqs1yQxW}4`6qG;e|BWpVia2*DBknMD^wn2Br6$&;#CbWA8JEpjCU>6?)qaK z#3y2ZqE65OZGqT`;hM$DGPv5Msy$K>>8d55hFz+aB?EEuc?{L93YIk+lb7FMYr0GX zP*uk>PCkm!RWP-cXVlC?L!$IoB#wCyV2;A>`9Yp_30<=#boa!_&soG#DigP#c77PR znQ|5`5ot)+T5aq@3wbV@Rb?c0t^hE6Dcv&%m22qN$-%=PL*a8`8wzJIsp@`)K_faP zvBmUe(E2@=)Q>UwmQ{OUWOj629r?YR+2U>^pqjk7XE7NZc;RNYxK5nv z53#S)=fWm_t5UJyn1t>%)Vkf0Vcp35ownOfByaL~85A=#>KL#LP5jd9!h$+h)HT3e zKY9S(xv<^oUX|_jm_@^zQ5lg15sSfC#ds=Gb^WR}lZCHGOz4vdNdSf~;?MN4)IY`^ zK-ROMy6=4Ato9yqu2HTkgntS3V1N*Wf86oFy1h(fx_o_h#X zTdhZUoyz_?o%p(T@WbgZYRrlzyka+y_3_X8O^2cUv0=@HX(tqMq*|5SL{ zq(aCC(XlSgpw!y9jU`2*t%>WIDIy4y<5*%)KPF!EOeAnY?$zfVL zDjvG33FN)@gIBV}R+gFxjN9xgl6bwvuzK&fIx-x92*II4CCp9C{ z;J3Zx87P=I0;Y1bFw#CZ zGD8ePZ6VX8Y_~X(4(W+gU*yLVXSeP5gpHE?-%aFRO@{i@oON>%O~8>9s_ZXYO#mFp zp&snjuAG6|kHXdpo)(_SvM~}BJqTIfVuVw3zofgbfZTP-TLcXUH-4EoDvB|ZtbFzI z^LSki7EeVsAUem{o#G2OXoBj3<W!84{sf^%Ty#{UlW6yt@lK zxv>elk~tDj)=n(jOA0AF@wy_v)$QSL*pc~B80%b;vQFYqm91pOQfoP*qUls)69NsR z#Ov6Yhk200Y|Q&zjd}|1Eql=20e5q%mn^m%lss}+C+UX|G)e57#JLwrVg-N?2A+lR z!_qyuPs$>pM&b`TB9e|sr^k&do*1_4agJzq+y6O>#zf<5Tn%byHa&2j$6S@y9dGK) z=a7Gb{aM*= z_C&f6(RlIC;P;2rMf(j1625-mN1?LShv>LCr< zqkZ)uY`MeZ<}0m?r7Z|>y|Okn!nVg{C(X#Vc8NvZthCo?mCrSQ*Yw+-otzUeM}EyZ83(qIuRY1bn+5Za(UQ~?bJrwspJlA%h#ZY zUZ3;|w0oMueBf+qG0k~<`dI7!r$->eb_Wg-DWw3WJ)WKyZ&ozls&wd{0JHuhxZVrc z;6m0;rjb;kYK(!k1z)lJ)yKNo7K$7f&rExZKDoBlH*KYdh>skfe|369byivH^0aZ^ z@zv}V?QA^?hl`?Y$(7<{?!!Te&9> zU0sh5;^ksfWUnzHs7Kzf3yoW6X;2;49DpW6OvB^1F4rTLp!bhFcTC!jNPeDh{cOD1 zX~sVfU;xB1=?baU$4&~1d$y()VG`cio98ArX= z%z=-4c!9mtj*GvPPQ_CEj_&l|Q>=)>F~!7zXRx4k8~6MuQ87SKDfsjqK@>{zgL ztJ(gwUYinXf)i2?Ce&U6({`cL&#}{Ch+F&OICpOJKXQEV+|ku?5u@o_aXCALFgPKB z>@lC!#NE^$?i#oTQJOXPd*Qk~nCh#uRvV^Rv>rwob>k#Hb7F=%i$3`0Z`BXqWJ7sm zIZFBB2$%xel;Q5LqZHlnL`;H(+T6io>(&+Bv4e9eQsVPisk_8o#a#&XE|8 zV{zT)%)My7m^^5!w+(`9rkOU0$vBvS^Rx|oSuDyzB8S&W=-|u?yh9r&0_~+}{M>q) z;y~_#FkGGI$FTu55v-@yshO&N`Fiuk@cm-P2{i}zbpavv0bD}@uiKgDW+&-(2D&ev z{^=afjal-?OSq1JE2IH#7vbV;xm+wC<8AV7t4QQf106Rz8`@5D=nq8WyB(Nrt5}R=8P#~8UN=3!z|eT;0O9vA^GuBhl4#WH?tND zY2s5@h2GVuYK~W-sb8J{CX=)!0tBN?Nt+ECXt3ryWcMXk3!#(DxxH9ayE zJ~tkbp<|}}=U4;z@U)AZvU!4(5t>p<^O*c|Xm|a_61$Lx5?AX=*W5Md-b;g@rlJw& zXw$>7Hs7QC#VMh8N}S4%#Ee{v{Wx^9{OG|qx7o5g)ry4Jw|DZ-y%QzZAU{4Tyb!;G z?WSNBn4T`FH0&8$K^LW=T)5E)b?GjlC*RI^r{m>Zo$}iHzL(?@CW*;0^M(;h#0eq} zRyu548azMC<3i*V%)cISB*k#YeM?r8GDT}iPak%-w~a30dlH`y$K>9-uB zA(eQ1S<|zzfr}JbF3$ov*2E3b+4fX-GpObit476ZkpQ(xHWKK2U)tSGMW}=itiPJk z!hoyzN+<4ekbJ2-A7;oN*TY1M-en?bk#I%P>>`>FRj(G5Oj*6uxEMDk z5DzWOM&X0U&wM9g?isj>noSx3#0KYZ#mb(5ez6B(k5RE*wJy54$n9C9Y{LKQzFCJk zvEju>UwQO@-o!<Y~QpW7QLB%5^uHX1ZA$;qgo;QriSHjV&MgQh&YCU4$@UK#-d4*T@16_S0%_1Yk<3 zdy!+OT+P3|nPXdmZ_-dX^%TVMMV99HF8IT1TBKYL$c6HAD#tH-yrBZnd(`4aF+pV15^Egj zQyFhF;nto0*tA}nrdEO~uOUm3{yi01a$i9NBOh)aK-I4Hxbxr`6>-9L83I*RFEk=U zQdsjjh;3Aa7JYVy1w^3jsCF;<^|+|m}hD>MjT=2Q_%NY}!KGfRvlRHIdsYz12t$W?9*T-WpR zs?b9Id)tre9+&zaZdskyn5^J1cK2ajtc|@Q6Uxa(tw*~POXv0*qrN-4Q!lL6vpCQ4)!ba%QdGP0 z@Z^T0?G=OpmAW;>k?Uj1o<7L&uXp-3xrwdmUs-2^A!|(eE$5f{*IE^y-*|XxOQq)K zC6D69tyiYDUMkz#e4zM3@VBY$U7Fi2qekakGmxV&hs1T}o z$>lTOruVvP?P%Xdw6+Fl@;5T@PoeB9R5T4&1>>4Ha&(0vFv`7r=c}2LYd62eY%&Jm zPBQdBEh)Lxq$+K*fOEYeGDR><0Hp(J?=jm{dT*;;J#X!jq9e{g zK2+3gvZFFhdBb;9@!{0ftmr*!E|xxsIkGxd*kt)B2izy0K$SOPW3RjKg}RbgTT+0r zwTfi}DR%RfZ$FN=k^CTIC$_{{QrY)zjX}oT=WGAopMIr0gd|b%4C{2;w0zjto6Wgv z&qQy%SoZA9=eG5lJh(q~#j`8kK3u)g=-}u7ls&&`G99|4!n~I5VXl%-h0P9R+8QNL z2%C#-NWZMotaujqyIMn{{IRA`oAtT1Eau6 zXwbjR_$b2SML`!=-Q1rdqXTuP;s3vx@iHHjObL4Sou~ljF0aohV*C$+WNZn+eqJBt z^5jS_`u}h_MoZKJF5AyDBs*F)S2zE+%W(?Vb+y?I!)?;wj=46!`q$<7y)NZ8D7T)$ zBf4_oiSMd-1J^FSy(6Oowb%<=Q%}h=lDoKRciBCC49g0ie_f8Z+nOpND*L_;Kd{&e zv_(Gq4?(ire4pI%$p>59-(z`?GQGZsJiH-uIclxk5Xpd6TtT96rn80G9e?RSpO#zt zA;@f_iCf}yKWOaHxxYTBb4Qpd%A>=TT$G|t$FYjR1>F;H^++k(US8IyO~6&59Y%5E zUi$vT6=iYgh=#FL?U3+5C?c7sd*o&8(a^Qtc=eO$>g=nb^#3s9OY$8J)(Hyzw?!HIGZq#f<*g6->w|hyR9j@5`q$-{ zSYznm_mdx9#_BWs7+riF{cx2oaP58hp@m7)vZi2@r>;SNq9!W0A%Eu4lD}lg2$JIs zk!~rTGCGhBRGm4P($g+es zog%y#Eu#bdH$n2k^j|vA^yU9@IsV57b>Z{X(IbE9K$~|mHdr}@cOCN{7W_Rs{67TA z`JsLP++6%1qXYfxazt6qir_2$^+AzE7D3xI+|>p}aCuv}-(0Wy-t4(P&7=KucXZQm zUnB;neZJf^sn7m$&-_~dm-|+Ca9{gvp8I@#VD~Zm>qGnR{a+tBqvYoYY@Uje<%8}0 z+458XFZ$Qz_%A{7Uzg+OZ_k-&GCI)zb~*0<>w^k|0q`fPD|OrfC{7@w1O1oF(Q5Hu zAJqSFITrn8#>)tj$KFEVuHW5{poBmEr^~VW=%4HEm4$!Wo}NZY<6j^Dq#*hSm{s`o z-##eExmMFxjL&5#DgYZ?4T7`zC;?0lJ*xvi)06Wg%7Ep6yBtrycJxplW?hqR3Okno z;NnHye;mogpYH&PhszY+@g@XB|E4ot;`~Gl>;82)no2spZ-m3X{L+)+K>*6ih5!1> zMr$yf0jny#O{B5c_L8)d@zA5H|3wG7H^5QJ=vo3$fY&=1MAN-uemO}5QwiDxBz)4D zEf{t%n(;mAGdS`TP4&1vsUR=6pQ+MJ@X-1%m*cvR>pohCL)Q#fe*dB_I*AvYJn?Dw zn}&2iWmbgpHv)l#?>CJFT^K8>!9Vutfb9eTq!>X}Fe29#@#J)55>5Tm9aqJL9B$Zu zT#nva<75M@g!rc7L)V*iReHw^sW9$GSNeLT&gf zFukBKKWCtg!S-d0y#^Sl6=D_uOt`sdSBfKjx0Igw>w~(xarlI?!Q7U&zUv8AB71fc%66@|A!!%_v?e3_{Z&kzQMG!c=dp9yT})< z3Sd0a42LhJ?`;`K)OQEJ^WrGusl6SHl0PLJ%DQ zKu$}%+2V_j=hc9KcaxYmjW1yf)mMyEn}2_x_uNd}ghC?H48^AXqaUh;kge}A+)f{e z^3kFI#{;oSv5aXea??|JA&APpF=Yc!1f+eA*)M%`dc;?5KcKm!Pug}ueXo89uG?s~ zF?`KNPytxJjmm~kuflds)@PH@kHeZk{Y6>@>5}m2^1QlM>KN#oPR4z1d zRpLSiGNX&MZX7nueRxU0V&BXqEG4QaBtq7gEk@Mpe zJ?Z7^FWX#fEMA~YW?k_frc?wH+H&g39gEqk*jy-h+u)nIl^R;nX(~rxw^3T_bxh1o zba)9UE=JVH;2Ed`eSmre(7>NPE=NV3!WkI`zH+^3{bc;1E`YMQK9`-Am|1MuQi71t zfew{O5zE%??-wT4=e=&ZSoQhL_i!tZ#{9sM`^hpGQuLRzzea0FyZj@!to?8*%op&L za>*G{^XD9XPoDMvTA$W(*W}}q*9@5t%E{tzy5EUH`vA^vty|w(%bhr`+kco;(ibjw z{{B3%p>rwI_j||4@0o;0e+iP`Z~glH52$!U#*AMS%Y0Djn{LPml8b!~f97Nx?``KF zeCJB(7yhHa1j+ySp#C!By*B;)OOR~XbaQI^qn|^af4&Lx{+l4#e6C#M{7M(a3L@Ne z@x&~9)zY}i@?!U&KLe-eTh?vYI83G_Q01BalumBL9 zAPcF=iZxKa9aJE&@f5aV09!edt(w5rNY*}Ae@&0#i?!Z8To=qGTD(m5u4j%7Q? zs)0iu=2$OsYy!Bp3Eb5ZP@j5C@cz`8f#vNlTpH!C56Uwkna=+&g5+o`_w0wm&IBvj z*tRhUHIOF%B}fjZg#5<`wL3DI(S96Z>f*Y%k|cnwr9zF!2rDT>kGE1^3JFU{OW>y^ zwx=Zxr+EjY{yv@ByLrXnIK&*>vvS)q6mn((KBzDRD8!vdF5}^S#M9FP zvE=#deNc0w& zG*KWWOvOY&kw{rEi_dy@tddYxxgz>(y+*P=9(Ea27{#CVVPgK_pJRyR#UgocY5tur zqG<+{cN`1Jyn#vJv=O3%a^x_Nd;lEmb*WpNwr^S3jwMJxoD0eg~(Y8GO2&gc4zFwJDNc(H1i zxn;^Rel%d|=3RccU9i_48r4y!EG?JijY69gRRa942v|*j%-P!7Lo+6i6sS*Wyg4g<^e`!&()xe>(x9Z}N zuV-Fxpg18MHvsJsL!jO~WCl(j+&hvb;mmz$~zi6JDNs1T7Gp1 zwK`iJI@@-3UOnE~-q~TyEJLZo7$Uex>xS6jM$gV0eaCM|%5U83ywN{$!$S3zMBj@EFuB_q`i8g{MJL`K-iI7R6r4i*7m1ek6k;0M)uid5W*rgiO zrJmG9sOZwX(WO1wrMuKc)D{~!ij9KACP`vah1fI*|9=91J7jhEiT_s}?#fj&5BUFE zhxaIxXp#T34nHWX!v{mNgP$z5r zc~BM|{NtnzP#^E zu3cLSmMeO&%w4-mLj^H({jZn##3qcU=ES8tF^n?C*Y+3a(3dx5j8tTMKC(ErTR|0J z#1fhO*gx)i3hGH3O9uM9dL3^sU1q>sMTQTsV!YQ_x=~4b1rj5T-9*Bw`V%R3O9oXL zwnLF&dr3cIADPr|jgYseCR0Xo+|{FuLP(90sw`s`tUBB6e=+x-QBAGu`uChOfrOgS zqy-2?Km?3ZMU>D4R1mDFpeQOu#EA47dMIMR0!lGp0TC1dDN+nYX$ql8S0kdJAVxqs z=0AgLueJ6*`<%1Sc)z@#9m6r4&Y9=AuKT*LpX>&>rFZ8U`538R-9+I@OGG5K?;xk8 zchJn~DoVM+DH79e&uQsh>?BTiy2ynt{TRES5j^)L*YtI`iflj&F_{<`rktObk+KzK zD&bD}VC;j{gmw7-sotRrbpqn+@6%$Aj(BP%$K>VZ-B)vR3K#Ir&o6q(Zgo87DT7RP z@NR)ydRxxidt>Ynz_ku$x9yg;YgP_AuqE)CJFLS$>(rO_9NKo?SmR83AvX@0Y=+e_ zgV}8^15Q(wU+iLZG@(kX=wfJ#4RFfe2nRK z!)0xH2NAWZ^;$N~qohiIzF@XXkLTMgU?v^1rAsYRwA6GHf>pfpu=K2Uw^Qn3DZ_4P z*r8SK@@p)_U;3H|NccF~GLG^Qi2eSDxB4>9h_F?EzUEuuw*w4JOXrQ17U&HlGFWUm z;}UxhAhZ?jAo}7eub(U1!MBdlO+41q)sy?*$`}P^6F9u|PE0NtF{N3$EHb zFTTAwfBfTT)6^9VDtbKG42`jL+VbVzP!iE79H1?I00CP4h}yWrf)TMnK###yN%TwclBnP=-D0ooOI0{aTl$#O5eL`_`w54nS5px==?6Kokx2p^4;) zANU~tmDqM}EC7`XfJl4>6Ac%tV?hBkD$UqtEGm@r(OZ)UEDtu-E>zlXn@Jc%{DLw~ zND(4|P9|t6I+($e6aiq#AKBdf7&Cx=(fIURA+0?6LwPbv+22t#fB{a~QNbN)Ihc34 zwGOj)1cy~Er_}wbf@eP_vh|&f=ufs)zL|<9Y1{Dcp1Z|sNJi+AO_lUJDcX&Ap77-X z;8I;uFg}9PTeNdW{|98DJYIaU*+L~t8Q|XY!zWP@;F6(O$yT3-RkWGWG?=80tWOLf zoyIRQUj!gWuKT3Xq~A+49ql@sWIkj)E=mX0>~qB20VM{&G`H{`k@N9CZq)w)?K>NZ zMiyBZ;gS;rXpiDVaRB0%F*LcEd>*J65`F$4LUoA@7|bXbAc?iYUXh8T4VgN3Eo$qH z+uh1ujcJ7UvCG5zlMzHqQ$^iuv@&|e1tLKZKqd#-e+=+A?P}!pf#S03aimS#ErcZP zDd|^3xE}rl@a&7#bX+l}Kv7{E!>w}Wa;Mi&`t2Pq`BDzICPA@0c@^E0hL~9bRaA+t zz7Y&N0DnG5jOgUBD{GSSFw$A1_q3Qvj6G&dPORneO|;&bOb?#oC%FVOb` ze;35AmwL8Tef?;XPsPU=Zpq@xl0aWAU7y2>`r)xkBp}yiMxN{9VH5(O%VIKB7qe3N z_OnMLfzjnyJE!JqcL=b3kXlo(Ty4-RhMuJ^FF`y8t7vuShMvowRFJr(zP zANa)SUZY8=biRICbgy_~a?W6Loorcg<~|R)-F$CblJDMInS=Qn+=E^1zBYNQsm|w? zhm`g`t90L`HJETq?>uB?tL6RtAyVG8ycXddAreJ<&z{qx+YvIK zUtf|d-BnR9-p-2Iw(U4Uhey!~K?xYL7=sR5W^|SW*714zC_n*}K?!?AJf*@a?0~kqZ%ktZweV)!~09 zIg}5WMR3?{?1eRwL&wVJZ7|8fWffNE)HjE3JHB}yI{OEg874Wf7hV{xUUduG^6_sZ zhrW=-s<2-RL+oD*9nXKw%l%p`ul=RMAMJIyAUBJ^dA9%U%;12FNpYi zxUVIcK=@UoVwk8#%+B|8l9kwKm-OmrLd0yYO&F zW|yjb-`#tmcjtkg>)?@4{Ux>(xbkdq zX1u!_nc@hOWG4%bT)pqgC^)h)>d1{pwa?*8<<7f+@%L=44s{%kN<`RS7w4cK{2kF^ z6)p&a@gfx}7sgEGLo7ZklUy0$``lbukDo5ULR)9K|hFsKY(yu zdgPsJRw-XTr+a!nsPkn`rrb$AU;kh%YmaQX2~XjtmN8mXEoCU)-@qP5KbTb9GCiTI z_T}y>xX#}6d8Or-`x!QU@LZ>Ey|`oM4R^Kkf6R4!VD!Tc_RgMy(i@}$`*1xR^uyfO z2@d+qf6%aL_-u+gFqhYUd56Aol0>hWe`yBMczZ>qfFJn*-x%N;^)}en7cUblO zF#4eZYw;%@%%$MROPt^2A3$KGR1X;akXta_s$M=h4PPq%#Dk3$tO0>%;7g^(EW=D3 zMn71p6vF5Sy>GMs(Qv0@g&2LlNn?K4yKM!-FVa)U8SaE;{xEVY9h+Yp?(DJZ@n0B8 z)XVZUNwUyf96ct!XKlCxmuw z{GHB0KQxMSfWRt$p&vG_&i06Jvi;fb686M+(C>Rl1H|<=M)yAWlS~0#{5wW>LoBb3 zrI~BC2~7UfavyF^R*b!Z<9A1g=a@CY^VWO^`WW49Jik5bEqq%Td(z4y;e$of}pc|TC)HZSYC)sHpU zz_kt)iu0KcYfGO9m34f^dQ-don4k6P{9NDLr(tZ=Wu1*vk3a6+=y=pN;&!fG_wCOE zCCm<*>8IPii^Wc_Zt8sTld_Z_*ePrWMZCOeEVen7^GU)wPxLp9g)?vcO=D3Vfpwni zNE~P08n6DF#-jQ$5!QKsGP>7jEbzP))_E|EMR|?U4bxa`cXD(d=aaPm7h>OEjP5e{ zljO`>GrW7<#xngs!=EIq^I#ea%;;XDvHZp8{s*y-Lt{Cc4}X%rYm9D~#*(y)`yQ7_ zDLp*WbO#>Gg&{cST-jlr z(`~2WAO1ht@c(T9;Q#&y@8DNh1dxMY;a-6KS7bo7Ia@w95~~wMw99ddOAwcr8f97x zK9XP`qTn9laWrXh8vCIdvj z*xt8{R$K3`{k1#CI`VkoS8uhRN7&R;Prv%8_eY+pbk}&eZoId^bD-W@>c&@x2R_dq zy*}r=>1fsI#Y0c=*+m~3ga!KxZ6V6#CaOF_()g!Knj_~_xo4?tjZrvRfED<7;!C%@ zZGI!=$*571tg%7x_)!J($cv6D4hx&`|G`t6fS-ZT+B0DN@eJ1NnuVsdXRw=w&d!c9 zPr&lM>|g&H6Dx){-C1z))lqqj{J#9CaWH1{xk$Wynw3aSl<=liC5h(!h(=!h!Y`9n zEIcD)Tih>xg98uj?ppmI@ks&$L;dB$m3^n{HBV71op3|GY3Be;kAcA2iR-Z3*+C}5za$^I4?r|+Kce(<6kdAr>Xq87WZrD zy5f5~e`h}GB3`FUiHs-5nLu^7rM#xJV{#xy1lDI-JMh4G*B#@lf*QPUHrU-K7VbN* z_H#pD{_h{kJ|Gpu0=)2R zuLrPsaH_VE+!1J$ltUUzE;@owQ81VYMmA7{0^WO{oGdPx4 z#{FufoLki?tmEJ8#;;bG=z{eR?Yi^({)B>M{r(AP82A$$o60j=U@rgR(fj9Q1fT34 zf46rv;(QyAzp8*^KM5FV(`1R_Pis)H>it{Jw9`xzWUUQKqqupc?6KpOUSHtTsx52v zjY*`~;U2;d2J^(ZK|1GV7<`6{FPdHlTZ%_gxSuENUb`8F3n;%Wxvz40z3=cTQJ5;T zuy!*%;YmkkJrzTViZU);=vtZnIy3RUgY6MvJUe;{AMQ+4pgmVlj8jDUr7%|yv%sW>U z&HO&X$56}rFmRnyvbg}!LN;km89s&{^k0l5X?1uVzAxlL@#P#tq=7?_C@Bg=a%0d|9B{0`L9RRz>|7|ZSArLclN0KQ|C(EiK7{KQ-Eh5mMKZ!(Ik4f4cW)`ZeN z%C0tB;3qd5%@14-nVmrCVaeM7A~n>;)d>#m#G-AemudX>R4v>L^>*?mA&3aQX;4sx z|Dw=bbFAVm3b*%Yq|8l2XF!69ATH67WZY@_N{eWS|E z9NR*cKu=Ht?(zb($WStz3bRy_trMzO;wAe5MLUhWDqp?bz(@}KcvrHmr86mT_RiQ) z#x$DC0!hFEA>*-vqW=4Cw9jNi*lZq2?5lUyLR6WwQ^*spR|1%Jx2_eq?!n~IiP}Xu zlg`X{&Er-(B4!`J;8>}S%4+ZYOFX?!cXwShHXCZWBCYoA?UvMC`(+o%NLPWpBhChU zqXr{y34M#5%^RZxm=()W7^AoeN~g8&boxGl0w+|Eaej(+CO|v6L#(3f(aXIlt4`#( zqx##$fa&5iojQP5%@}&+EQ`6GyHUvLu(!Sfys3ZgxL!+bZBlX!d3}M0%kE=SY)M~R zB9fdXJ7^`-s8GN&X|ZnUWY4`8@2fXHfjkH34q^m)rN_Nomk(-oNMxVTvxh3je=gOX z&q{tE?CpNOY4^M78&hQwtr{mbJ%}_Yz9UF+eQ1UV=RP;C6;g#%=E29CApKK-Is2Em zPa8~%o)zZ^zn(zH=Jh1j-$?&_xhP77f9ouFd_bESU_bMOHwZ0{T`W3>OrQX9%3D&q zrHPvYXb?i}2?C+vy5)F)j8_dy3*S_@gwJ4M4oMSoDE)%lHAH|wn4Y`92hXk!5;7=MI4cmUX^W93JUVJO(g_1>Ab1LYPLl5r*bM}!mdED)ZOZy?sG zDXeX*nnDlRf1?vvlQ&sye$(yM4txO&1*5m#vMJ4S@STXM0u`h>uf36}$Q6HT@&2;g z8yE_6Q&V^=3n zTT~5nx6eJTa{NZR5H$Q=bN*TP>eQucx^xrExW^>sqZ(@m` zas2g<>tC!2d4$=^quK2Fs(%5;8XfKPo0cBa{WWjF$F*^xy2uuYl$Z_Un)}mk^e3Y$ zLVu+Cd@&E>$x~-j#ZJ<}x_a;cLxIUaOR&he{&3laaJ)o>f~5vuML_e&Iv#s4kBSLo zVd_ReV=_-#5#KzPS5rUYPjKwJeGyuR!|Ln7cOV(AT63fGSP??yZ9xV3cs7i_vRaKWI;il_i8mBQN zZ1jFhb$KUH>tc*vS~Mk%V>c#Ns2^i5oF3Fu#}&mWI)UkQ0RlT&Q~3*>5JM=gLB)z1t;mqjpQrmVI&cjo4^Wyvnu0MWO{R$JeHH0@l#b7kfiWGK+O^OeC#1( z8tQ9*^64WtU?>kV7LG%6;P1dztToVXj07H<^| zB+JFw^y@<_P5&jT!&K%(b;vPIlr%#ULX(l9$=Iz_1Z^MSl>iV6{V^qU!D9ayA{lj= z$dk_fokx6Cid`!jrAHXOG;D(@#GbeK}X3Po_8pPVc1o zXIR5A2jF_s2x!JiN{NAt0ZgG2Xud%}l?)aF7-Jx|Wiw{HD0`fcC1#sNbGtt7mRK(g zZ6xr`;FFukJVgBMxy2lU)SaVwH~K0XAmrHb#JFbli6B zf?U>T3i4*d0RmC?Y%u^e<0L?`MQpZ(ZaqNDeT|kMymgl+RFN80@3gzOD09oR`yPY$ zLCWpe=*u_)pRfV6(t=Ee>FlKV7AFB?x&Td|+0}LTpA6)zp$=h3B8QMc@5;zhE%`(Vzw?-^c3~Hxqjg z4sfv_WY3`m-B>`qn?Ms;FiT1ursi!Tq^aYva8^%~fG}LVn{058h`kB_?`k%Ks(68U zV%EFz2lBfpADh6##MDcwx8`v2NX%Mx{Lc0{$5pT3U+?Rb7nv z9T~dD6Wa0#p+>$6K1GTU5e%t&Del>-53T@cL?P=))=`K6AQWwRd0L*xN~`DkQ~e2g zif!OXvzVeS;yIQ2Q0noPZ6#Zz9}2MT)33)V>>pnzL5QnbOBAsg(ejKW-d2Pe{i-8R z_LWLVg1|S2MQYwWI1F4R-@+slK)3;X7<+Y&EU2EszmXN9mLNDs$7LM_v+28Dp#>d} z#A-{Ido4fG4LT{`qLDEMsS%<5L})J=P-lX0R*yuCjkZNsqfu$BEJ8C+3za{QinOKk zJWC5mgCSx?@DC(UT^^crEZmlXuG0^HCytCJ@Lj3m3$!h`1jl~b?)w~b^&8S~KtW{* zF?eQ(2q{(+QpYhKRWD#}t6Y(#Jsr>o;n+{}!|VR`VDpe7eFRk92dR=H9>cMp-M61? zJ6FQ@@V1KY09(3tWLqtxxTe3iW^^s~GwM=16;nI87W?TQsa@oLKD!qCS-E~TLCk>(t8r1e~JC5RoANz z*K4lS6L1Y%3>&l^8gzpj^fMX^sv8W48(=6H(Xhd3psr1XlVP&VXxvrZxM#T0W~I>< z_hO&nivtcX4h6rk&vaG{*!tQ!<+4+11U7!_7$!%{XjJj*0v= zhn5?`Eom7ox2jt*hFh{$T4=b|9K+VT4z2ftTk|qn^Q&76hFc%4v=-soiVfQeGB%b4 zw^d}cJ*#f39&W2$X`|y_)f>KQba?eL_*HYptJdmQuZCZ>ue@U5UUwP3?s0hC8~nOI z*3+o?^a$jaqT09?V}FupM%@SGuppaw@(hYPp!1Ga2?Zz9kUJ{bHN=8868X2 z9V^2fzg9W`83weSfplbWhcM8Y4Bi?B|67LODg!IiDZIT?)Uk72NT)>Rze2&39J`c5 zx>Pf})M~oa-*#!Pb`fN{w`}j$W;=H4hIH#^b{o`m8@}z{0sB}m{A+uUnPbn+kRHp- zo?SIC~= zHN75hdp%csNiuz2+xxs7`+P(C{4@IkYx;uU_JywYk!AWLw)aOl_Q!Uvf_s;S&nzPr( zCat%PViXnsvjG*MZhUS0r9{=;#efZ^54v-0@9fIl^)&xY{KjJU*Y-ItH=m0(bdcFy zRxnWF+MRz;GN*7TQPxSKL>FB@_~8#f-fb*0 zg=b$`;$q2{ZaDAeD+SjIwZ;fN{!OJ9M{Ox!(CX^n2?`wYrxA@KdAUxWxN*4(-aBLH zVI1ITj+C;1NmO>dd_@%2sw-4%5StT;Bp{^*c$&jRK8;%Nk!st3b%e?=|pZdzn;S+akHCK9eShpSRJptXb+wDWL`4TY2!6gR=8lQM=|Z$L0USJ z>j>VM^n3&Dy^%0Mbh1T%Eco;}$;$=sXfjtK%}GM&vnRt+B{S>Tg_ELv4n7++e)d$j zJr&#ODAVv7f65NtJIfVY&)GY>3`h1VxaS5vcI(s+kvOBti{hhQumP1>4(ImRoZw!m z#sbr1z-i$FXYcGoc=_jrk0~`xNC9J8&wx*9CmscS&bTlYFh&d03>?3E#WV0r-t9*) zmHzQm;6%}L&7jHB4$q)(74IJfO;vxN3i?iG?^rgfL)As0))5~CyQW}>3p0!{QTl8T zhf4n@l@vVP=C>(emKl4c3m8r1?46}wsh@ir^c@r#Y1+iL_|kWQ4NNG$|26#{apsrt zmq<$hzycudG#RkO1N{2WxwFPYu?OUq=TMcu7DvOlAG|k(XowwnCK*kPLJK`X0{W~d zo_HGXOw)E=gZ2n%b*Ej7!`S5wNT71uLS~&k7Qkl95hpD)+5VJzg?x)>q0`xXawyYi zJOCooo@WA=^+QaeW?JJJlTb}_EdO~C|UQi6jS0YK?V?g#T2 z{dGzJHxICQA4Q*7e>xC}9+d;h-15Q~6Dg(ElHdJyYVVv1;Z2qoTs9_u;h`rXRB7CN z3ILKo2GR68GX{$oklaPiJ0B2-#R=cqC2ehWg3w4Vzi;CX_bAopoHiXS~@ z1TbIV4NfLB6f}r8RI~-=+)w?vyq=J5!LE&tZveXp3tlTra%xgQQ+9Z6A;Uf-sB@5YB{8KZ|Mp#F2uTEl4SfO+ ztp{bf$VBxiLMlKV+kK|B_ccQ_MAux=h%W-rfM}Ri2Dt8aQG1QxL4c3{(_(Q8LRcLO zplN4O#a|GIY-Zy=seb{s4YbDj;^Xh(oCKe`zBm@~dc4d-`(wH2CnX?_mSQ*s`{ z!PbjxG`jP+xaFZ)Hb~Fkfe-h*7ufC*sQtvyUqNTL8X$J9Btt5Cz4YPuLr;qjlrlc? zxvkGLa@xuLG-@(--;=z)zNI3$VhuNCdG}f%kDf7J_!%f@ZS^v_aTn0vWWEjGmGo$H ztc#{Cp*0sKar5ntXFd)##j&7 z<+D70__T78g&-^t2<=f;9l7l=q~%R zMf>ROQCLdwD+HU8nWqF5{J0W2`Z4>H41MQ8z~y$-v$ zP6-L{9$1fB-i$dTjJwpYNOK2Q_Es$RY^0u{_mI`3Vn0x9y z++~e1+FA@S3o+y8Y(z%2v8v`xw##Jnj=Yot;!bx>+59hOcSm=hD${h|&GU6okX+Ec z@%?&@FYdg%MQRkz5D&I|u@@n(%T&gxn6FpcNB@eau%=Lk$6Ks;_{88Am*SFn8By26 zey`l`o|37ut|fWyyOy;wYNXuu=5Uf!&qHnItne>8ME*?N-YB(~7-1XY*^Kvi@%ZP* zRL@)PQX>1X3*=iTC{5^xSK~hB&gn}uRPYzuy>{K8=4{?E$FG~GyqB{=e?BU4`MN&#c3)E#KAn?y!{qk9Rq-vZ z3fay_`JH!b3;DJZ^q%+K+!dh=CuGR?<@bp1est+jR;*q%Q|yF)y<+H(B$t(s(zh3y zkJV16#Rh-g@OZKP(yy7Tn3_?Guz-$)+F6>)>gT=B1K*^-`}x3P`^1S&LH!*&<_aIz zz~)xa;JhqsKt zVT{-dP3+a_g!k|>d%o1&5jtBHw)*{o(aP8+_EHo3*KE`C)tL_V>hcLT&>sdaghBRX zq(2#v2B+R&8;Z=b(1Y`Cie$f5#jUDXQF1EQM^Q-fDt6C|FMeD|SU=*TX}DNa2ocmn zZ`KnEhvXx%ssLg$K5`>ALN`rFDJ@dD*-Uj@#LF3rUBF7&qIatod4ua4sQ8j0Ctj!FW(DPxb;O1RaZ2jdk;m=CK2p zgb`uQe#w@4M7Z7G7UKEpkIPQ`hr30hY@tCW zObG69)TSYrst89dgc<8HGY_H8(D}>PDvF~$Nw_RQfqgBji~NNED#t$2(J%3;YlvQS zh@?c~A8TdA%fC&n&IQaLYh^4@T@})!9yg>RBhbD>_5@-`@mU)s79@EG6lT{8 zOgdrwX`otK0x*yu5B$T=!Yka$qaJRedYi@}I}-=yF{X>~R+hjx1C1f`j5`VJ&f}KC zB7OI1!e*Ab>IsgSRb&TySsDY@DlG^-Z0b)mqVgxwfS%M-inP%W-z>?ou!hi-XUz%d zY%tJPLwwD`Qf#?)Xzbc0#Pus?vE(t(s)(~+2Jg6SCh!EELJ(;>f9{vL5z;P*K-vU& z@fw0b@tTB#Y}<50I#jU;NfNE6C=k5VhGhaU0bRr#-VMJ6TUg-($!ym&)aEq{i=iRQ z1TD}vZB=f1l|;T$z0NHZxra?gl>mZ!i10rNAw>X5fMDhW)Ic5Buc{|YPS;~X3tyn7 z4Uh@LP92ZvnT0kHt+hy*>NLb9D`>ydscw{BT7O1`D%Ln4EzV8A4U2#}bp|Ulhk5j_ z1vqY(fHo8O#_0mbTaY(wFF!_e4deNTsmK{CJy{}B^?{unIbDH(kXcXrGzv)(5YpF= ztCYnlvS<-4aYUZX+6vAZ-p&C2Gyo~}EPH!jw(M7`*PBQj<0i+pa^ftb5t!g4kKjE( z@Gu!vBxPQT1S{6>Q_!(#9!P;HX9leZXqUAn9jv~7Bf#yH4BEdL%(gt52F76}wJ7y; z+g`R4BF6Hbyvw}{Gud^sm>Y3XC3t}Wi$8YN6n^ij74bRm;yQ`FbD;rT9k7;SfpU0A zowEfBdb{UtTY^4mBh;O2HZcJ#6)IW;Q77+4x?yoe2^qvhOLXFI^Xe7vgImfEL@4)i zxsomY3B5GUadOTKS+I-FS!Bd8vi{g;!|HMTDJ5^o#Z%*%DT=*mvZ>&CX|5-NX75nmwdQ5v7uiRB9?bE`8a z;*926;w+!tR{@~UZ6F>SFOLPKSbpoUpb7)pB)?7$HX})p91~C>KGq;!7hydIR-V_W zCa@F46!FIP%FiJw0fzaAgL69DD-*YPZ3#D~Mh)kFCAz-E9~ z-&mqzM*V)fdSc&`cMt0c>Z0nC-dJ3N?y!i~9v{`<2E$h(TZe15;~EWqG^ni9n*=uo zJeGaevPj{jc%m`*3{O)b!tV z(_Dh%%ccKKH;wMU?WQ^Z@49KibSy1d#7O!-chl@D@`{%7Pczid=$D9(zRC%yJS%mh zT<3v(+AI5^_ITslzdeF|`_H*jV;t}Hv9V1rt*a~Gow#lHZ_q2u9Q(7*sBl6mKfAAQ zZ=`^TmuNnQ(FwNP-rDMbr${*@*d&;Ffmwg&_U*mTYeTZ4Hx@ANVn;t|EZ3zU-fYl+5Qw#n$nRXHz&?$i{t9H7 z+O@3YLE|_nc();5__HdUmE0+ICrTH3-7lloo7EW1$Qz<0B7|BH8olb^`{j%U zZvfdsK5{`NQSNjMZ6wvB?2EG5I!kPXHj5T1sP9{hND|1rUNn+U<{mtKM)mZWabDhn z4RCx}&`t6Zb<1I6=xA#n>=6{_rJv;Au;>Es#JS5kk#+7WIp^HZ{~CP0@&y%ny=$$T z=8)ew?=hdB2koE2@#XVoT+-^OK&28se)*OB$>N~POn4_Q2~XXvad0SwlS)CB4ErYB z5Mah^)U4R(;XZX{&x)xjcA~6ps%q*b-~W9ljv%n7-!{DR*+C}+7Vtke-LjvH2FI6C zurQX5%(&HTjKl-2`eQ5IfZ_b)3@l=WN?sv5almm+xx$&Q^S>s&8KxrVOAqdl8`VOn z5s38HP$fUT4|D=0Fi0q|#B!%y7XFIsouSA-xjPdDymoSfD4{xBMzixWm+VTENqL zyXo(&NWo*dgd&R_xQj;GG)1{dl1YF2OF(YrqmQz_Gw)TU#Va) zB1iDkPP5jnwwJIDIr!x6#=Ij~e@>|j{Rx`D>m-!gX0EbyQUE~a$c>Yb+tyv&mg~bz zWE1h&lW1UFS?4u2K_0VU0SLQVpSiCT-ZdUe#_f6}zcZML_p{10x$&Jk_E8ebVm;k4 zYl@;ODFZ21R$$a+&wLSh_Yhl_@}&sjF&oYvIr|JZ(s^d_;R(rO`ddMqfLCziJ;Zsv z?Z=2^~7m;eD;=lf7~J>BB=}Ifm476U7u-<*a2$I z*&2STx>+x*)AL&%h?auP0WP3YTtQpNKX3fz}2MFUPp_oZRzC7g!gQ z0&bmD#<21twlC2TKG)LUaN`?y@SYBOHkr52WyWqs=eyi+TCCQUyh!_%OE*`WO^l!) zI#tP37l8Ib`yjEm;EXk(ejra!+C4&ca32?-L==3zpqq35s=R>NscosPhg-D8(q1bb zH~LDC4a1d0PUayLRC$1N9%2H$_GSV>%2e%rA|B;hxz?+xrUL={9|e04n4Iv_y3vAl zRl9?m*B$KZwfX!QFP*tnh}jX$E~u9^L7VOPe6iA|0s|&}v)Iu%zK=2B6O+694C;Vw ztGAa3C@4T2mB3p_-sseSKeyccZgptp14S{b`ck@JY#u@mE>Bok*WjMF&uS$m+PDP;g{XQn$hf zs=RRM-AEe7D7P47JPw`Oc!XW1Ok6aXCp{>9KT{S{vtAMFbG0EW_+SiubZVi^<;#y( zv$mA)-pn=xV zveHcJZ)cCC5A-MbJ}nXW=DBxyaFDyayj;f9Gi+#hRJOdL!*R;@q4e7c8@;Oc-=+eF zj=ft*DzE+U`g`D5)%#h&io(4`6A|5kz4ES44I{A;Ir_oM7`8>Dir|m<-NPfI&nsSP z$^LM-g!_np@84{sIh}HK1rF)#t!z1%G=06Q`V+yW^3{nQGilu`pLII|Ui&3o%9^Mi zBeE+QAvUwL$Y7+YaUjn%S;#JZ(~(2ThfK59N951!!WV9N+IvyB@R8nI>f^KiJ((}4 zF4@c&B?{QX4u>R2D%=%=&xZGR{d5g^`({jR+rgYOSl2?l*G94dDi27ikGvx!kybUb zd!L`{+mH|E{3s~>HzKus$fN5i8EF2IaJ&;FQdME0s``APE9mZzj=+^XQ@qceyLG}B zbGMmgyjbdGBaRw40YbVLsMrHcz^%wamF~PWatZmf)X#u$?mHEBt8wmO%_W|DeZO8I zBLtq;qHKskH#}}@43+D!9~T*2gMVaup$7@v3iMy=v{&#_`kkzY?}PXnN9Az%njiC5 zR)q3oPa}-Ao?7@WHi2EmoCX!S8C>@%kh|Hh^f0uQgisSknFP&^agW&5ee3@;o->8TUt9JprQ$v5pIhq)}B$Cha;o#Nzu(s4dRU%g?mRp_x zqSKK6Oq3Nz0ez*!CzB`lofz)=xfewucfLCwXG$Wseg_O=K^fu$CmegQhF zVfy+Ze@R}N$|ZQ=juO06!uM%v>~lEjL0)T8VZ&7_PX6vR5KeDIH*wM%j$_~{b7(gW zx;TS@HScMCQ$3og9y8joD1yL5z}IyHe1t(MQi27tNfEiKdg0^hy82<=xnQ6Zri2U$ ziz5SR(Gjk}=6S&}IFBut1!JlN4sCMUL9QeLI`A^Lsy{1?gF zlZO&;3YCaKT`s zE49WymK#i*a}sbX5|yHpg^vWbp?%j`1#x6A3zOW8yg?;@M*SgsHyrVUWp7u{PVUbL zIaU&^d`Wk&Ze3Hp(ADX9qoEs05D6a6Q_+?QYW5Ik;XP+qFjl>vO{Ay9JZfiln;x}+K?uq{4@PKQ| zSW0>MHAaNb%@&?|mU*ueA{lk_n95D+m^vKT=psXk^y|M%THwsl@5}}qH95e>a=Y=s z%kn$bXdtlR59PZRuqfW3=i7qNqC-KmkRSkVAla2sd{l_kwiZyOo=1w1!CeQ=r6TJ| zm}pwqD>wJ{%0R|VZYIoEVPVFB8-IykLdqZFmmDC^g2Z1y$U0Dk3C-srp6RD6)2_OV zLJCg12}G>+k^$T8T-dyUf>ThRA6Gy8W9pW+-|bwS7bcwm3Q64*jk|uWh14~N$HE^-Y&Cv>*Z^A? zbU}Yx{deJEc5L)IHk{jlZ6Y9h|Dc=5k~brV#te_VsuE*upaH90f}Ni{Bl?W$elsSZ zy@V;=fR(gO*92~J>soJ9f+QIGOP*Qi0Z>Oh=uZ~p2wrjy+ZN0wn(sgh)>|fCAIvyt zaC66fKgrIpUxy)0Aa_42{L2~iL7=R-bKjqetwFTjZ8CmQ)*-|EXJsG;1TIA*Tpv^C^YfDJO z&5(*1Z=^+tN|86#1-st%ny>|Fyss2i%}9%<7HuUw6D2W}rw&8vd{u#t(q(?xPuFcI zJDafXbkIF?P?^UzF*oVLb3U?iXAOn@4l*W70+^Craa z7C&ng|GUD~f`#n=FH2Ur1lEb-Br=G!x_=h3ylDto^LXAbADljrPC2Wtv*8F?c-Vd7 zC<~t`V-PgFi}EYh{>Nm`TFL6RuS5Z@bEJgrRl4ItHSpGMdv(Ce_hM2}5}HFL=g0ct za+gQTCbgA8rj929Sbl0ojQ(B%KZ=r3)!3tjA$nT zeR;wS`QS~T^FAi&A7mYKsd{zE9OTi)kHi~tmi}bwm>-F}^vxLk?5Hhh6!*^N(HjoF zZnnah6;D+CS{8mcg6Hl76&NRR!t8J6KfjgHS1=jRx-`Rw3WrMzL z-^$;`@J&^W+}J%;`T2gr)U&Vui;%7UX7qi_$%d<4CN7cuEj!hp8~_h^z~wHRiqsnf z!dx2oAvEDfv(mga9p1xDoQ8<%!%rIU35H^=SS|nnz-t9FH`L~Xx3pY1MPOT$_WoSs8nle~DQm+=M^9l#joF@74M35B|l%l>b3QHLHT zK4qA)6-!LP;hL+RPKxY8Xh09Z7x$kQe`NCRf=aE^@P-bJ*)EBBbW=S@C;8y?&4p>G|NX$-qFlL7eo%R*8` z&V3u-8L_=MB`gZQze`x6xIZh%EsjUMK{CR{emTdeui(Ladun}hk%#VnV`B&V3PCe? zzN$JrKBx@fB7OuICMsSEwy$ZrC=kS{g2i>lh4zF8tvbOqqn#K9EL}Ee&r8Emab4~L zDw3d-je!Tdf+s-B zHYK91i%c2~m6JNPyhkZIn38p!}R zj0F_irU+cMSKlDU-h8MjdjF$+QUvqEIQSeI&o4ZcT>yBcuM!PP2|%1 zDy3wbpr!82b)bNz#%_ER6ZzESr_q7eUk_9TzIp7aQ{bX8akOcvxAf)H!b`6w9G8#w z(WiWh!ZapNi7fXwz(V%=<;gSKssDP-t zV#TPeeBh6*Xi&8I5qHdCMB=gk%T14dBwd21$(YI}bHVB4^y*Pnwn}B|-W}J3N~=FT z;{~53v`*!-;^nJM!qH~rh?t)IL+OIgtOLzw(>jJ>#tLtzK=DS*DBjzEPBz{}yCiDw zIBvh!sxwaW(!R&~U-lhYGV+fGWfI#Vm4#T;|KsjX{Gn|4zVRQ&F~f{?#x9Am3u$Cc zVq{;cse~lwh(e@Mma)$uB+H1h#)z_nwAfpQ6j~=qNHs+W)s(W8=68(F?Yi#k{@vI8 z`#tybdS1^TaC*I()6DoD-|y%B@uWUpo6h1RJZ>AYy7J8{Z1c-#uZWQ~=V)zTE8Lu4 z?;h$MN1}e*n>nNk@tfo4??zXAyxz9y;rt`4Y>=|B?vp6%V1)%S3J&2!>=4G|b1*#w zl&OgtM)EPGyWL!c{`&OT@j1+mTSYELBs*124)(XjLo;nlDAYC_=MAbj%($;|1>kI*hqP7(R#P0rb%RWCQHUzUDl)vbMJi+Ay$d8{Pu<0U zblDL~I4V4_Dw-hbD&u4cNZ)cwhaXmf%p*dtY!D#j#bq?dK@p*&lJRYC;kY0w3f|?B z;?tPO<8*#CqP9F18OcC7|;Y(dxxCBTCE1^`eeTO@7BNbHZ!TOdX(kDQD(r;S$ zm?>j;2}G>TOE}XZ%E5_rv$o~n!3~p91}4$QJxOOk(GdU+5+L=MDQrM=5-)^jg2%C` z@Um8qnFLaH!D$0zPbfm60XjE^aAJGrxf|iA@J?w<)$9`!u%5ljwix1SbhTpU$hqih$u8ln~s8AOK+;^c@n|_ zkH)i-_IDvn8L{$Y2QCLvBYKPC9F5sPWhes22G=toQQndke0Y_{;fF+V$Z`ZYFmY5K zh`V?Y3(s9AG~uOwY)k&hJvJ5quq4a0+|F9H{~Zu-1+BwEfyUJHgU5FohbML;DhH$5b|z?W?W2}jpgt0& zh>p}|#Y68Y$P*E?oa61zW%FecKhK!|5RU}Q#sV;nXh4Q(K=R?p)t8{Sd(UG~-f?ga zBo4rg5VTv@hPFqhv?W08fasAP(Gvo2B1NPRpQ_mawNpjANg^W+sc^$s+C;qc0=Q=p zj_AtJJp&F{|!o&n*_HoXi98oJN}$91EET%!6A$7a8ij1 zYBPZ{nJ7isC}Aw(WB7%wZPc<9#Lg55&QsmOiQI()N{pI|HU4#S2lP_m9}CLDPiyFq zJR9hm2j#G!b}u;Rk%?uC`)S4En5P!x!0LhcDfb3N!E+BQwG{~sr@do~KVvpOk9gM> zFmZ@}$x*ChBKnpFdCVxBGjRE>ZOmHtQ12aBHA1lF$t&6cv8e1TI-4#ZbGsawSMLv& zvW~l5!Eegl5S=Sibk#iY*tB1Y$c!Ryy99K)(ZNl!&x#qOG(fP?W&hx7~ zqZ>^v8~6Gga(~fixg#ZG;H1fPqi>OfYebX($tE@CNe?(EKx`tnOE}|s$ZDt%pB_#w z)T%z@MYCph40Ux2?S(kMrEy$zi{Tqhc#u8&8T0qUZ2~-*hWx`B_KIWiZ?L1m|F1&S zzhX!4{7ZJU;U{W_cQD#z^{qh_49-=8$QGK-$|QVI|(}gJAFI+TJFfa zIWBt;t#JJIawWWC740Fx9F6;O?{G9Fdx%by@yG+ta+CiCM`QZ_P_ep! z63+pcs;W41i01&*Ox4sj@y@XCaOS{l~u{ME#Qkpi%q3Ux-?B zm2j{U-k}CHuUj`9-2G5*UaOt{+SprRM}i zjIGpvbPsQxAI)D8qWtb}tSR4Rvg>8pe<4Jbeje+TDXq7>t8paQ^6ziF|9)cPzyDu2 z!Ef$gKFi|&u+Or)lZF)Hu2sADwK7RHL-LM$%V{lEJZ0u#Vjp3;zn<^&$le!CI-Vk! zQ$bf;tP);S+Nr5BwOG0?m7ZlDboi;tn`YwX)R+ZhJt7~OMf2Gy^JS0OEc zhs6%BpW!0;4&1hrF^&^nsO>**9P&zCtL(f}s`!tdijAjKt#dSY|Gb?qrfipm<1?*@ zAu8XQvNu$JAon+|=D+{?xxugBFX#w<{r=~nqjd&@_Zp``3*x$T(v~KjJ(|vD#LdI- zX=NmN^zMxW)S=_D`9|+wwm;{8BED5kQr5YJ3^uqMrWyuH*LhSOetqw>lT1yLY>`R8 ztLsCboS6u1RoSg=Uuli5m0QAUO!Wd&o%W$_czpZTF=!hy9`xbqJEshB>~ndCouj?E z+Ik0ddY`D+r(m1}i`_5di0}C%bbr84G5>2A#}|H?epyKO{%0+uLmg|kRB6|IDb_Ne z$?@$hRo?mqH?z9}W0Jp)axHM6kvlx~L(nZaK~-dG%W2Z-buQ=3?}YO`Xsq_CNa9=l zs>TF-Scp2Jyu0-a>3*J`RhpT5f@-s+g6{qYEjv6EQbhFSa_x7Jc03c1`8$y% z?(grSUx*@!o@gbC#+)IDZMl6*TvpFkQr0KWz(OA8u39f!XZQ>VM#9R`JKJCQAx}A4 zt(HrFuK{+HN~^dI2GnV=61JR>+uRnSxxJLI&c2G?KubWGmMVP1B5V@H-Pp*>3`wmH zej+QRt@CinjmR`J|K%a7;B{Yi`dYbb+AgWBe$@>{&DEVWggB7_)RyU*1#8QpuW=YU zthU+kbq15ys)p{mj5nTQ5=j&1X*N0IK?T8+PtHp;Z4)Un^m%YquFHIR)jCrbO!#B< zN$)%8r0ZFZ=cDi&pH^%?@-{vH*)gX)G4Ffu8_bvY2J@1B;J$zKR;HrT&*-YS^0#SF ze4+7;jkv#lMPmN^!1?2)`d<5tzY z;lH%bEbx$=?>djE4%*fc<&GWYX!%WAd_Q#db(C#M7ek4vYSQm|U4;Ck#B=G4PPC*- zLWBMV+y+>a=KOe@EGpj?*)2zD!g=Rx4z5x*97e7$m^v?~fTU@xvwaKU2Z!crfy~WL zd`NYB{UatH`MqZzb{0|-FGp8zb|ZW~qELyaWQKSI#_iRH|KHWNZVf+P)bPb7UQ5=} zrWPfj?fBrpQo$5Lh^v`PC5;=NcJVcS6N=j|er-(LS{!Tt)LzxnSKLu+IdO+AHe^i9 z9@_X7Yc0Mbl(k(>AeXiK@82P*f4=eHmwV;&>3=ao7E0n1&|j_TPkK|us*rZ<;`Aa# za|AK@>W7&EYl`=A#ybMtFHT}O@mme<#+-bY9Kg8*36lG?etTrLK0V=)HtTp(t;DgBzDn&1ugy!10sS>L z&FZmx!-EF|Jj<^%uWD|TV(J+Wc4Z3sJswGazpci*OAy0vkx8KCR`ONZ-VWDwJLIDC zAKu&*4j37|gCm1ayluUhU0`6N|9W&V598iE!zVv5=GV0SXJ8@P6Y~~ zX_8Yr1w`cR?W;KceS%i2YtcFCwg^eJD)nz98VT-39`8U**m+#Rs+9bEnnSQcXilPH=$TPDrh8OAYpS&u!FJDs!%v=jyJ zS|-t1|Jm2a_R6QR2`Gi2h$jvs!dG@uSDkKnVzI^{2W1UyMjmjG)Klv}1+DEO5`e!x zbQu5hA3A;I(y9hT4zttZymf(iu7`?qAx>PCw9d415+PZ|>e#y}&<3<{a?LsD`4H$0wo4pckeHdqi0S?jt@phv+VFw~XrlEeL-byP=$XZ6v7WU`?2 zG~#CD<-7iJ5g$BF1pDQD_bT=L#_+rf83~7ddE4sxUG7f7uB*tr^@ffd{j1~lr{uO@ z@I0aC%I=+_^rdFzRiJAeeV0a*V&>gOcCPl@@%Auxm4D_SG}js1nXfOF1cR#lWY#hjbN`(sW13=C=~wh5s?mM>0vir|eQdjCV?Uk7$NOyN=;gDv{QcXl3tadM zuNH8=V0SwePKaxH{#VVU@_dIDWKppK! zq4f zQD;iSo6gkb4WCJGv~oaD*{Q_2^>?E1LF?5Cn6X{C{$5Fldp&GxoQ8?QBHha^dIR9f z(wz5bVudJNc{H)IG+%i%u|gDnn;tw{UiHDGo!3lya^?DaWoeGObv9)F+d~8#;3PE1 z01IG$%F5Clel)?RjyL+f@Iea7@T@tKB9v;K3U^AX`tu%5@T6QLKX&vjo2K8Wz*yh* zHA`>!0kP$4gWGl2hW{bu4#ZMcli{Dtgqe=M#}ZOg<0|mc@CL<9-t~75@lcgY!cCBE zZw~i6jQF-Y7?lEW@yTy-`@>fOp#K+jMY;8NW#9dha-VD+D#}-zv!bT%%cN8Su(wAz z6%3d?xlkIq@@T>~K%>%6lv=8?+;2xn zUs~q21my8LFzeLm4H^~8jAPp^7Loh6pVS=iJ9l!KoXCs=aPQAa*c|n+JLPod(1*ss zgHG(~*0PSR=IlxOg!0_jD7ws_k%QU9N{|B(<|9*y0?kwR0xe?ELs=^J=Md`9EIAP^ z7na|L*%X~nZH0@a9y?d06$M``47n^c%uG9ld<9!Ym0|3_kQf9+d`^L7R zdk93{De^@@V3LI~fg{p07uh6-*H;!n(pHNP2`5VFcRunnuSxjL@bGF8`DO%;pbEr( zEl;Go9ou>ZSUTVkcw=c@R3Pf4dgO)8v)2#7T`7pAaym^i;Mxi6F9T~EuR5*}g?Wx) zfRnp^?Lf=qTE&wi{&kA^QTn*`0=f4eBx0ziimz@)3%$%rq?>NQTv^76*VWXjulrC* znwyO8t*;By$wUopmtOAQTsl|`Jw^y;W7mGI_HQqNzq{?7i z*yV&U>Omu?y9MK5mfQRFfQpq^To6B@XUxvtzvpqPbbnUUo9+lB9#LolYr<$_2*?%U z=cpKn!8I6i1bG;POR5&|YB~4(LEpfM#^YI$gZJ$ei>awGV+bl;5P6$rdBq%;fKh>- zvRH3YJ>|1`M4?=@YpKbWZCR&!x5ipq>q$Lxq?mKSPgs^Z)R4G_v|+~?B*9YV-CN(O zQRVkbJMJw12=rZ7SfZKN`vAG~gK=HD3R!uVp=F1&In*Kv&b2%YGDREHYplwTj+c*o zt+LBAtqguETM+uQs(_PTIbE`64flzk#qka2*TzP0OJj$-H`E~~z;_O;1h4dxcLG%k zTLW0hrlHB`*eYuc#~tI=*Urg4tg?+b_9O!)3PsPJGPiSFX(rX&TJ7j|ukTFT*Yo&{ zYG*&kr-j2`FPJ>6-WGB1Y01*pO2WJMxzdFGb8_FR?6=nJ%)8fr!SoxCD0HcGd{*P} zt;YRfjcfD0XZ2CvE|Nqp!p)?vb=v~?P#ZhY{r3hM+ZyZ0u@^l@9iO)jH`Y^bT=bf~ z_x#3E<0b0yMH0ekutTn?A$4=@eu?{ocTAfu(_?FWRh));J({lMFHZ|>!zM_zWD95# zPWan74fhq!U8~w!cgXGj@IYJmwOxWA0ym07$=oD%Q{&mX;E4M#UMpMu&mHK%BpL$!29RP}dXWtv#PHTjQP1zc znro9$9Xgzf`l&P`$WT^{VtleR!y=tY`(@_Q$Kzf*v7yxqOtfflj7%rZ!2NCOt#1T5 zlkB7s1y!V!2|;c~Oi)O5;Wke6a;n`(HlKC{R1DY&>ja63CgED;IaCkKPFg&ffz-Qs z8D_b$cPY4Q^1zWTW<*d(lK~ie^;oc(-k9~ONNF@kM>)UM+Piqqy`=ucM$)L5J4s@M zYMBu!?Wnj~0Db8hSXlo{^DhYX(S6HrPf!V~YFG^VX#0 zQ!8HDC8$*qPHbQju!G(rvUqUK45?F)Dw6162lwgN>q@rJGF9o3txD+Qo7v=pNji(e z0*fgMGkPakXK?5!F8y1p+oLaMqD|Ws>^pU<*tD%x6!F>o<04eDaBx3KW&~{|%%&%2 zX5o+qsd*RzmWFO29h8?{&@pL%g57=i952bsDin)*SP*G#&Ny`Y;XK*{Gb$tMVe4zd*`s0fpw`V{^o+}%@grkG%M z!o7B!m#TXQb1x0vBCYPeN*8ITLQ42dYt1Q6NsFH)WcZDBK4LN0HvmK4o){Sl`f|2Z=AbnMmx>*WZ`mMwHvj%a$gjSp(RJxPuZE$)o&I z)FvB!glOQYV;e6^I;pY|1;(+@B4US{V=ajw8IKtNP=;898X-K56o-Bj^}Z4ttPwq9 z3`wX9Pwf{ePl;b?L=hjl174-Zs^DUN9p#3cS!qse5E8ND^CrZ@kedGNACMXjYImg# zP~nfN*uOh!MP!T$CGJusR-WlwOgwx*8v2z+4RTKmbx#RLiy7zhv&qL{M-BGn-b@7Y zqNofC?;4kwjNSpk*SL<{ZU|aA$JNJ?`~70wC^Qa$+=Idp3BSoxp*}+LQh2C$YTS;y z`{l`e8zZDzWgsr#2WL^|8wAc%Qs6~)tL$&^LBM%}fEyldh)t)k1dAGE_u26kv*5dyOPxa1Rf8a#~&Vb&zzA#JV{0wVUbfk zV2vxHcQ@h|{_wG?lS?gGH=0Raeg_qdev@S$IDVIxK;`0s?c4%c-3V(OS=BGrwfT2P zO~>10gmlCvpXaE#cZkd%#7q*rdK(~V^{h#FgH4Q6fiH6b-8_C#RgJwrC^;tF>S%R- z@%7`-KPze+A6QXK=11j|qkr7_OHoUbhW?g9^-m+^d`H14RR7mup}bu-{&YJ7m7bq- zbYq@QbB>ad500Lv#}C;VgIfkq?UK-!0;) zF@UuzRO-Ldu9A7$)$M<+U4{Ki?P_nzztXNY{gZZuRCyZoPui8xKWJAQI{&6!skqUJ zWtIr$&2`M1I;&UO9gk#Qhip^vL@jd5(L1*heRod7Yt|dz2VYBh(750EFeT?*XU7}m zyoTGq&vQm!#}K^-Zn%QaAAMN0cKY;sg_9XgyrB0+PWxdV`&Wp>c0 zDBdjdIfTR1on#Q1s%QH--OtveTiyQM=KUxRSa`t$i4CC<@l^hGl_wVvZf_$$|+aGH6&G~S=db}{G z28lf4d$3wHZyWCbm~ynM7j#W_A1{^}D1eK2q@##(g8khhf+)=dxQEh{mYJ3y2e*C% zniGfu+GLU?TAMv8KHgVR;n8YHi>Z8u^z6O-_`vL0twa@sq;BPZ;l#^D!w#&A=1<* zrbGq6%`el54_5|I^6Joy@Bk{_I9e5r+W5$H`>QViW@P|PeTf}9@chT)K9Che{G{?! z=gL#A`?|1?$`XtiD`I(>$!N7*>By8#^UY&}Z9-#T0C?ubfYF<7Z2s6OL)5{}tThfmbzvR8m=#O8Y;x&V@0GPCq~ z1BCy0NNi@!6NpI_<**agao~bUPogM=j?ywI6GX!2Tw|TM)KPw@fgk8wMucobp9Q9g zZBLarDUCaD2=4CW8--=Ryr;J3SvG?zikU>k74K=R;keN#17kjkkcc5BaY;;6WP^?F z7bY@ag=xkVOEvvbE&-qVeow1RBzy(s6B51Npj%83(C4g5v2)*2s|?;KF%;SE)>6ME zw|Fw2$N^|;3l?0+sH1$yYLgOT$u0p?0|5KSz$J4NM}>;Ic&K66qV`FawjlLT$?9T7 zka^o2`f`R=@d~T&+67kB9pdrkW~jDDvGs}r_U9K3-1Wu3P?2s305Ts0#g_bA}`mjoXH5Sy1Q~?dFPjdwn=< zg;0}mAh5Qb%1-hxzOYv6-qwKegf+&_^2%)6s{;4Lm9FWKHW^QC+b4P|@Az2Btj_yZ z@2RKcxr}UaK`-ouzjlB$!;3rVfLm7aqIN+;=m9D>px-FMnsed(`ugY?^S0 zi#|wv-o4pwEaVK*;H7Eaz30~rz6IM{(|n&4;1=GmR803hfMby|Y<`rV|K>xLDcjTd z)}ijgseO}1AoHHu&7-H6^8;;;P`0Hj@6L+d`oZJpRNJc?;^6XwZmk)mBm#HLr}F%5 zdB}YzE5=jrBto-XurK_kXw1%Ze_w*ps(W1>yFZZ2KFB^xKau>_ay?)=*=?rNV(~0W zW?gM8j2NZ@GQzlodn#1XL(K+Xrhpi_RLN1xNt^A-pA!R~1#J_^&oVaw#o%Vo&~`cW zrgMmbSOQW}^oyhG&J8kdKkAdZ#l5!h)9SON&_eH*?!5_UiPJr~e!^6Cm*N7o=-$>~ zna0SsRZ4Ght@JSykp8l(1FLW>CdlngYD??3g>Ii&O|x~^-Gl=d!gZ30dq^qf{4*a* z?*)42K5Txov|KLg@4jEo#;^67K-W>>k7TYcYHWkk`A*!!7q+Q$&9}DBb1AL*XrasF z?KOu@sA^A36f0eQ^}i2k_#3$ox`O926XwCa`sM3ee&n7 z-PKHazs=A7srGb1rQKo1#-gQuXz)D4X6uw|w;$M$*;wmSH)S{f0HJ~I5cnyU5I+|6 z{KikiOR;s+-a?xO@7NkOoVYRLqyJ*CH?HYQ*~=OKO}`%iZ{;OfU-XF@H?@j<42j-5 zGHl-5djD*2c+TpVpS+B(KYRHxvc2fl=lbUB^Y8)i#P`<=q6;@r!JiUlSF@25&6e9Z z)5+6I&l~GQA8#S$rsc5}rMnmI=s)_L5$!pO`}F@I$tn{&X}jIDFVAaM414Fj8nvxo z<>q_b*ETH`vVD82)wNGfGs&=%nHx{03bO6ZOyp=_`z9|H%5UH8+#b%SP?(;kpW6u|yFr(+ za!>xx1T3C*V&900WPbehDHZX>@b_nNI_+&%CUkx$)>)0h*JkZzbpCC?Bu=S{3HFh) zh~j0_z{Ijqf6q^sIMq$ zojO&86Gf4Lq*I~a87CI?7vr?PEbb4RJX{F}8RK^S&N$(A@qcs1V`X;U5$VN=yc3g# z%D_Ki^7;;4Gyj+&85jT*o&!Yh;zVW$u>*cdCCN#ST-oSp<vrk`)z)DaB7TG8i87qo$6xgN%I3=j$&P#!>1Sm<1=z%4xH zTvfCbmEKVm8$U?r4_QgIVi5>2n#_sp`^Fjai?m;uQz4vcWmDheo$O?aT$hc6BdxwB zw(#S)ubPlP+1BE{4IDXDAfnlL%p^X4l9?;T&LvjUZx1Fep|s#g>+zLHtLM<^yzx}I zJz>r*vBUYiJgYLCXNB)r|H!jW&Y${_0G9dgZ*YLj36M6O7io>`MOZ9a>S963{l81( zU^P0W8vYH+6^M*QbkK*4gKlUDyZDM2HKd;D_0M;p<~A4bvaJnqzA#44g*9?4q(}dK zjy`P9=glmf?gULwY?1q$>eO_iC~6UkS*7sHBj;}wm?sr)Tg2QS!p?UK$Z?7}U)KJb zqq!0A>EqdL2fRlXVFh2L4?a7mo=I3M0w1EoB>CDElKk$FE{}9#X6g`DNGCi(mVxk- zL_`Ka?Y#)IHX#@$7rV!U$puV7wjZ6ixYkXk)QuN})>81t>MKbrF@PvCrifi3rxhSC z=#I({`x7P)T8X#H_)vbqH$@R{cMXe0f z4Jk4xM9cY(ZCV6nk)!ZYiwE!gSsglJazjcX}wv;Sl1ti#@GyNPJ*fB|`zyo#lJzm-se#J9k zn4E6iM}{8~r7yeHWQW&$_B|^}OOpIMOil$?!O3?VBt$@JQA>r{$W??mOXgow^)s=* zP1PJsF#|pQTvs08%OEEvbqB5t)(!Art?yX>t}uHzAn@s)6*Xw%Tbi$;Gw?q4p0E#&vt!l|Y>qA)SAmZlA!@?f;=p z6LqyZOGV~5+?%>$Ifv{{pc|sqgM{yF`BgL9s^8Vaw@OquX6TpYd`8gYivPVcZYwpj zA2PFl-5R}na@y&&!nW%zA&;fdjvTCNhMc;R+z*7p_ZE0lceU~vsf;EU%;~(%y?WsS z81`nEXE~euB_fJiY!b?C#Z1Co1Q(QEuGGvPO0t8by6~MKN|i{Eo4d9X2%6;M#aru* zdq6pR0voNFjzw;|s|k1?hvTivA;+=)pu#OOtSL=CIOdE{Dd9OyN6%1^MT56Rw6YDZ z2$=P^_>f?hfga8s5T23TGkOX>B0lfJ$Mnup<3s1dgR*<%*ctx|)#}^$ zlDr@5JXK@T^yVK>-W9@~mVS0=lGIL%S+Y34LN|HWh3t+G)x4Tn1A9n>;GIF~_3X&N zr@B6$yih#8DuGW<6Awu}j>L5csue$fUsHQXK+95!!=0n@!G}%ExD!qA5wTH|(NMv4 zxMnt<$~WiXog#8^=F0oVchXkkY)6@^{jPgGT|M-=PP>uzOn+#;BBoZ~B0rh^Ko_3` zz%{cU4Lf1Wc~b&m-Lt)y_~n6YYw-_r)9XEqkUAVDc!}i^C{1BnV-0>xb8hc?!sK*` zyU8OZj8r4=z5@D}fi7H%ybA!=%pL`VkZ|?v$l4#50p)I;t6LHML9-7LI)L?E9f|(W z-TJ6?p$;Z8b^4Dtb9DwDqVzss0iu=2EX$?H-QbbkrR$gbc5j4-R%AacFQEjeca>9d zeJF5u^S(FFjQw67yRYzEcn7d+-sS6aLll?Fw3xwCn+c%%)5mX?TX2L|!N#u?MvU&C zy>>sGmvIFblJu<*3(FYeldDw$Fz@P943xg9J}Qd-Txa8bix(sG*ULzVVC@wjOB_GV z&1wAWn@M04~xm-n@h7(jU}^>JQU^IpHiOQL<6@zZJT@Llk>wE5kI<5 z|2!Ogav`7HLM5` z$&sbB@awDdnJ6xshLI)R6y;En=4?xp3lkx-Ul$PO&;%T-Iz$x&Uw?QE$6Lz}$D|qzijjfezGAww^8`D&x$5V5=AUw^dN^JR}MK!&GyUc6PZhj9JIeuc$`yI^&sp_9kuq*Xd) zg899PtC2W{@d5+Dl33DlJ7RaeIJo*o^}Up(em$|qQELQTQr6!A01YXo$Hbhy3Y8U+ zRJkwp$sO@k>>4c+bN7yk?bN2P=Qpe=$DGoj>eU-m#*ZGf+F5?KH3?%&Ot?6TrgEo7&4JQ9rjORt1#`KJed;=O!2y>U|&pcl~Wa>zxHz zBI>ho5t|YLhQu=4s()Mc(D<3-R~w2o4gItp#0yJ=p;;Yf8Fs)L%BhlmRf3)q#WGR- zQbDuSr1Om)o6`zpfmEW8MY=57dJ+ftN&vtaa*JoEvUKmUdg^0n9}AfsRAv2cX@eh= zwOiuI$@byTF2r3TwmE5}uZLuP9HG(kEQTuX4ga@`c3lsNxLA_?p#%9@Hlho6oC41R zo2D;c-dJ(eNOIpKuKVR&_TvahZ2T?V&b4WG4)A#wK3gWDRsFYZMF%!{<#;yCcC&jgvNwiml)o0q(73MEzLBftHlBZmVBg6DL#Punf|-ZuQe6Q5Ytj2xyEC%=?*|T#`9jU- zmDeXSwULJKIygPXn80q!)3Q35>w3X zilsJuirYJ)#EqM;d-}4>*BHrPgidsdO5h~H%QrkXHA$gs>!m%b64wy$3wQiVKBSk% zj6&UWmS!YGxOD=A-DA}B`W=|};Qr*N{k;}uWC+u69=QPnqVl~GBK4MWa#c*EC{8Pd zfm?;2XSU0Bo)Tv;5d!5KFCC7X-ETLpxMsSgb0d*llE_PoGJE*mf(fZNURuY~1cM2X zUm9UXjYShYh^MUaW%C>363|;XptNQQXBUwsjQDJ%Vuax7qN> z@C44q^TVlw(ahso^I|&kqESEse-JrBT~b*@bb^5W!az;tzd-0#9pW$TO~|KkPAd9( zi^6ccvV87w(*>r*mIlb1nz(wA&d(Lp`dQ!CZRW*g0}6wmE4B>zh)YnHD-UEH8@}zd z{2G;FNW~(S6A`vo0fame%}o&lHZAd*<#LwhUYQv*~r~jg5ROSC+35-Ng^{?e&{k3faTwy5ua`wAMAE`Dm)(6N42p? zZi4`x6H9J@B6%|h|0Ge+h>lDI5KqRz%x@S|xP^)dGQMKg6Cp+gtmp6oqIzKnTmw}H z&aRR`F}!V&26pH3W4(+7`OX9`KKz9Yg5LzY%{a_tGQiaS@X4t(=TBpbTxG=< zvw&^f2;o}|LT`=3QEw6OyXP6oSy8&S8AM!=p7^^c3s3xf4&I1xIkCq(8%-IVpG*>AgTvYtRqC*YxW zywJTtv;jKR@;aL|#W8RrbBh)Op^M!$ zHklR^k$J`BZHX8`(qhe#h)6jrRX;odN^@BmW;O$pAtgRrK8aek4C#0;|rq#`jHOH6aA z+PP;C>dlQEuGBqhvVKek{+DBj4f64J>jl<^DUd`aiHNV7dAn`%j;ck#$=_emP&>F} z?N>CEn)Z7%loSj{L+7m_Cp<+KiO56SDljuV-veu^Epcm4sRShGH9(sA!mqjfi1s;M zX$E?}LCCT}e>ds~FCL1+QaGxk8byWz>EGOnfD|w)FHVJ{73zmoqOOmcKhiUAqwx-* zNrxDz;C}mLMK~JDJgb)Lobetk<0yYZW4I{MDBP;s{D@8 z5p#TF!r+)_k{g8=6QxrMC*YW9Brhh)E?9|)M*bNSRRltc;GQYsdB~D4 ztcrEZhKNO_U5w1Xme;Txw$wP|Zxbd^lHf#Bg;<yk+(nkEX3N#TaD{r(@Q0@ACbh(! z8|r6<>tUxTPtSOwu>NbCm;(9ILgA%#-q>TiF8y2*yCdEJ_uBpa=JG#1haZ7Qyp#X5 zz(h+3*8UrHJr)0HUC+t_^FP-0>^}J~>w5P6tGb@`jzUy0u!_zAx6%xxe$;`edG$WDiU*=(bw#w<^pG60$6sI%O$bcVdSwZ@20lcXuPa zz`T(5q>wDR0j)7>&)wBiYhuyq zFAW*xe*2MGHyO~mJQBVsz)y|Ic-FFijc-TH9;N2G=9#8VetuHdG%j7=soSq$HQjdc z(@p0oSFG*%FWMZYF~79CEq$K@oD;R09N2sDo=x695x1brQKJX%oOT-#-udwkE@j4Z z2R!0^>9toY@Ag)1p84XU(xo%|z~H&rRd_X8F$?!a2XzQKsES#Otd}`_jcBA=_qEU2 zxX$3oPg}UIM{1CX6tVNGYusjleDdwNSBl8opf{?+`uwiSt&JiCpyAsKa;YS9B=q^= z`IljNIuNB>v@~5o!R*+&dw{0P2mFwK(b%(!O`LfbLObO z-K+Vrd~UAEmUO!=s-Q3y-$FR{n|bs2wVcVt51CfFZNn8snI==!R$~Z^I*zzxA*^~S z=EDQ0)bF#5*&E-7bFB>Kr_~L0i4%eXcry%A{_AE;7yPJbc5-6g?BkQ|rQx68&rrgG z1|JtQfe~PV7;_SLJIZ{)i`!>M_*VD$*oR}K{p?D3;j65OCiVayjV%RTSvVPIdw`$X zDsq%VNo_CU=e{uo7ak`e@gUdJjVWC?K}GkUg_iFS64Ajclh}iZ+aE%Rz^%O_%Uq<4 z<=`r7U{(S^{8R#9rX5rtDUry@>*C43v+esO58G4U6fk3Sg;hdHgRRI%L}SD2@*sH< zKGV&HWvRCoZ(D3J8{mm@l4|KpfD|@RQELVjF)lcJDeG*cIZMyYJ59!t_F( zgZbhc{Y))lnX*hZ>&tlY83oR(S+f@4JRg3 zVUY@Be^?jp$3Y*3`*CV)5)B6h2C*A}ytdHQfrkqRKTS!1>ue@v*5$oO`gkfhA?DNK z^;BR;YW}9r#*Y)evd`Z&%~k)^k5haWuLw1~$cpK@(k>xSSclqpixy5QiT|ODa2@vI zN3x?8)Ty}d&pqBnW~UM5J%Lk0k7;k`@3=fUa7EXR+Q_mj*Y6gn4qMr%(Fg6U7$yS-U(8*smBe znD|lQO7qL9(MOaB!?C88fQp#|m5vbE;62aZtqJ@Cb2bdb1UV=CfLSqzRAZq z{N&m9SHQ$$h#&5YUj2j3_o;adn7>Tj^utWU#1gG+9&%#WkGIl~7rLZAHurW+=&CF% z+_n?V5l^RTYH*D=-gB$}a;7o{DX+MOZT%`o%xvtSm>BJmP$+g`p?E?S)3znZ_UpOZ z*I#ZqyOFs648712$(O2XDQumYP_q{njE=NDY1X}(KfCR{VRtJb^(S2_<_MpnU57}m zDc{8=U~-R)>GKJNSsF2G{LcOYhvHyt(dG)|YYCd=1Fr*$Og19q@zO}^$8YnreM<87 ziE6G?@j|7fgGvpHR-sHl8T|@pie6T>D5bQne>ItLYm>DWQ-IvXR&-X3e)8QM#&7n) zo5&L=RfU9?&BrGc8aD4ZY7vr1q2k2sJHsQjjIeKHR5 zZUe%)Asm8fU5?(Lv@V_*^WyU=uUzO3#M?viTwNgIMMTg`w@^Wuxc;Zd{-kx^=dIAX zq`2Q{T{6W`0)}Pc1!z21clW^qH>@Fv7Rbfc9Cmfh^PF!OgcWLFH3<$Io*esY{m71L zmPtr4O0dq05;8bu1aBref2)#d(1ZuRLo2xMu^t|-Yp5da*n&(_L&)Ni5Z}AwTPNr6)<|_iCAwoyaqcxYj?6T}*&JypT*hkA)YKPvM0m!A!Aw zi!KB12{AuDk13GRC)$}^O2O{xvDgil7Ofb&dsY^bCIva3O*#7IS^mgydD2NUm zW~E>T{l`vH1)pV@2s-8NrVgZLv_M<@AszbZe)K7L$0pC*?}UxY{Tib8^i+O+WTC(7 z*;Fhio4*(*Tn}#}Img2zf1?bAZFca9*|;L@;&Oi-^%4qxUq&8x;Pd9>e$qfbtOCb0 zpqtQ_`6|0g$4Dxh@V$Ln4ru%YKZW zP-@QHa17f!22qTEua<$&c_oOY`@&1@n*F_v;_gQLanXyf;9c~RjT(Pl^a988DH{+1&+HpHPsjgsgdO3hzP!&2p+LZ zC^d2PG@S}d^-g&6nKFoyt$mU&2P7G<)t9G&vRnq}b0Tsx1-okzBT70q+>2PnEYPK% zwVL!*rh-|9NhxTkr5oBNo6#>LcutkqD07Yy8!hM)TUh#2z3N&-(Sr%dbvPV<2jbE} zQJ$_#?f+BPZMe9i>(YMdy1SRCP5=$ob@_He8cb*-@w_k#ewG6LtxHDXvew1<>bwWG zMcVH}JvE}aWC%yUBu}XMBnHZnp$QpYk4)`KkBr1T_}H&(9W_>r4PY*UnET-4%2PqT zpu~Ofz8iG<+&WEi%!jDFPmULbCd$QW$9(6plA1?Hq9C)0E4QGlFO)*`SBDsuzktM2 zt{N3#*PXm7DSKs}QpC}6`yzPFwq4@tz4DI-uh_k~W}bcR(m=V*^fi|vabjTb#NBJV z+Zzo-8pr3-JXbeqy=nY<@Z$dHCS}W}bbjQnlTE=V#SXnF$1OC4UKDeUXr>f3N3}z$ zFGBPHzOdCTYdVlgds~vDTT-K2YH70Lu2~7+Tcq@|PHk$<-P?M4y2V|nwJ=(Y|7mN< z_g2*GKln!9{;yq4GS-<9c?`l|tI2FdfBRGX@Yl37wcDImAu}DIWC45;QZNhWFn4g* z0((v7c=B$y0}DcV&pDoV(C?8|_)_tF`ZXLPv`u(%Ima0xfbFqF_Z3XMP7pTASD+Fa zd_;r=R5=8`C#NUau)J&U87((+6k}Y>&Q9VJSDk#5rqk53%2%9;6*Qh5L_F5T%QMPO zn$1nBcx5|q2m;Qbr!iU!eDkBHoQ*b0`D&{76F>sPXDi<()9QC;JYV%I2;wz~B+#fq zWh-J&IPdT_yo<&sLg?74O-Z7q7|cnY8Vfx<2m3~%kwhBONFGrV!M5(~0OQ6`ljZa) z0%|CuB(PgbZ{foJisJBlzP_49tQX$gpecB6jT#*G&Ab5nM#~^qdNA;Kwjk^q?T4LS zVTb>Ry!Q%g`v1~)ziA|d7J7$(lqgl26ot@34;?8|rI(;0h=>VY0YODYK?Jc-1?eJa zDAK!tNHcVhVn9R`Bs>0pGxNUho|!%Sc<(bVIDiAV_^h>_=e~zlT_cwMYG%(r=l&O` z_jR9|jG*<9UN1?co5B}YJ>mQI6Jq-E`X&NgEAgs9fB+b9nE01&HTr+1Y`vv6zSRpV zKT82|>JE|V!COm1{dWLOhJd0=VnEILvv0BV;4S?Ei87WA2bdbJDz^HBDQtsApPdhm%>-eJ@t4nKxu$@4Vw{;L)a%$jnr$XxDtullndIa#oN(P{qnU7;m zY$zhq`3nGaf)r_$Kfau3zqUs?dM>v!sU>r`r;k7@exE)j%B2J_XOn--(sno7mR;cT zr{?ls`bBl6Se5V3!x?9+(8l^)Zx)Mb@xK?U*wCm=oN=($P&gYF`&sDfW-aou_v}!6 zf%NsMRmmr^s;!~#Me4t%%J$=dx-V&}?FhQj{Acrl<>jB?iKAvpc(R+yJ_F;>888%8 zxxE6Q25TwBZ{KTwej@XY7SJanylW|~mCcBaEzySpi^&?<9~5FFm;g|y2UygUd`6+aDnvLE8pD+G!0h+{1wM}dpox3xdjvmEt9^A4V{T5w`lUdu&a z*2l`zCT_DC6b%TBcfqxC(aK`D4TtU)(#3!z zE9J4w?(F1+9%-e?+r(fQ<~h)teKxSut2DbNVMr)h2b}2<^!#v^WyDF1R5={05L5W2 zVObT-Remq3PttpL|8z9S8nDFDe;){JL3|uS!74uTLM>g{E#Cqph6HE;!Bm7VBtBY8 zlCkI)8wWEbsP6EbDnCUv#roF0pkQy-Fu(U^Rl~O$)BL=mezkr4oDQU-y>!w((=xv5 zrU~v(a`DBf#5&#HfRH4?bwSOkmzI3U%_Ir5r2LYJ zP4kd)__Z2g5P3Vp5*jC5q4*5Euy^yyVw=F#gXNE>Kev>-?OvE*#u_-9fPdc0jK4T7 zpz;2Nwet(k`#zPl#nHBu!O7VajNo(ARgy_gv~{xVi~Gf zSLqSue?Maqru+4d_ho-Dj}n~rH7M+!nT+&h>3We z&LVFwvTk;jA)oaZRzgdY1YDJ^65aC<2QshXf)HUo8BB8>tuNw~#CK!$`{!r6_TLuY z`FM3&6*r-@($kZO4}QNcIGo`3o_WuzVLuTWzJA`SLe(-B%17S6gde)VfrTFyKI>xT z>o2#jOnA@qHSl|M2UC&_T0w|xEqJH(p}lfK&9muoOD8?{R^|7Y(4N?f-h(r+iWp^O zN~+l9nH&>5%$Q|P?Io_)pJAYWSYmD*hds?4y3^ud_pPJO49qif@2c9N3q0-e7cQ62 z(lVA#gO@uqKgc;m)n0YhWz5&6hBL?3X1UAVUT!A8xmFG~*n!KdN{WAvo$-p8VqjT!uE&krRoA|9ObBxR_WKiaNlj&Q9TC03 zUL~stR6f{z0#iTuJamqT@FxUYJ)k)E4eUkJ>z|y2si~Re%ZRiYvm>QB(YL1cji36r zF26mP3D!N;v|{lsdg@?ypFX$#?Ee;faPS3SYaqk_nOhOGdU#B>ItB_t=%zHZOIvQ= zbUB>o8*Jz}HL!i_>fr*K?M;`l<<6a)Lppia>P^qz65-p!CB=*@-6VYFg^w}}+dXdv zA_u z2ix0;PRqTjznWRAx09a+_UhjL*(7BAqnVxhvlaEXL^u%n*2M$uqJX2ot@c|5kEkhD zP4m2i`yERr8!i#qWMd ztbNM$YwLb=)6UegemSr-#d0v|mFR?{;5) z`86x5z2DWT{iA;H&(>AiL0-K!b-&Z?_BeNV|99-kpj+JrS?n z72EeSUXN~h>AJ4!lz_`lFkOw+ZAh@(Pr&bAx8O^(b4qkbi8hW(bZ$s=Es8ojk?6sf z4xq{>5S%{8#2dW4d{8_rEX?{>5Ty{wMR`eL5Di z{Qqtqbo`6O6#hRFZQEA=mS}_N|C4AtdvP(21jlx4ryVU(0}LoXv}ty!rRs z(H(wj@YcKLgP$d1?$<4Z-u*e)KQKjv5n}!v(%BRF_H0D>L&73U5hafKNJS5JTWsGw zp3A|%04IcvqC_*ETcu+$9co+?ge>{yZ(ySRDM{Zo9?YjI+F+hU?S7!2J3s>y?sPWh z>al1|hM1D;}G4^ntkHr+gU*3~6cRe~gXVR&irp3}(vdk!q&OWaOplaBia7~Bi+ zWi*!LZhJ^K4=(@1p13srx39Haypk95_t{84cdXL;T7jztvB*Umvotm2UGsGMx#L-u z1HG@6?OU?;BKI;~*zljQm?usIRdUdtWhTA;|1=geWbd>8KUmDoy(vPc+|OxsCWD_d zQShKhIu;Wavaa+0>O%P6{w-Ak(?B$RYXczulC*?ymH93IHOGa^zo5`KgImvGe?NS& z<1WUw#I?KXdG7;7+7--pMM8g$`o*uz?A0#^pJ4xTT!!NXEVE^gyOmt}Sm9lstu*7q z$S_>$R2?|e!|jPU9c?p_aySx!>8UXJ9zdt<++JB@)Wi z{!6Flm+r*3Qs#iZEN%}j2pkl!b zsSp~5iq%y%dT~w`|3se!8YcnLc_vyWaQU{5R;i z6@td?+vi5$Pa%A(j`84v=N%+`s__gN%bbui4J4?3dEC!yJpD^xx1yGaxYxOgQh9)TeS4rN7z(<=2C z+0(GXD1nCGkO-5gN_v?#tr85UK}jF-Zy~t^BNR_7wmyOM^I>>s4M=N7yF-1Ll}O$i zF;-?Y;E`y-nz3Kb=X89(8s#-pUKHeyb-McQZ;ti~njN68D)Cz{EK0{KkwLDFYx)MW z$z?B7={9Oy(lOYla2JSu*$AQKg zeiK|{ywt50HY#3?X=klbY91S!OI1L3b&E>FM1PGySh5tO@h zZW7}yIofjG2q7rvKK-a)BI8#`NC_$_UE_qudBnO@IN3WR;nOu(q|7D}9Q+iRvsdCv zI)373#!1;iR`42BPA?NkVT7`@@x_59$Z?z!6j9!?RweK@u<7sNZK7@kXN%K(#iejs z18G|-OU~Z=vw)mO!DgcC82wV_To<0g(~>t$)0v|ahFQTaCJk-xl7_6EC`CYsc~!jLuMvF8PE*# zQ-CEVA1XF+b7onTO*gW?%gG8i=)J(#^3PA9omutTkh zstwk0GPhRDo$}!-rwM$gB2KD2&F?(+>SBJ(^ATQOp%n1s=8IW;eBEQ%0Hj8w96WuB$g@9cjuTJp zO`J6T)}qVxo76Gc{=*zzM&|9g)PbzzJa)@XIS2e%3aPPU!DVNZTlkEr&0lw{SL6?K^gb&$-|{jgE2Q z+GvF7MSEinG$`Uth+BE^c{za{;#qXNfU2U@g^lkBzpO$blWeSVCmhnN3E@!$NRl@L z`<0H0K+~>8aOclOF*6ptz>Fyj&5%f=c?RB2O_g>`Zi#~uRY58!%5(V%u5xq0|By)dV8Ie zaFrEADAU}}sq^8vwB=)p=tqHf*mL~M{pCi#6W8vH)J_rQ+_sz&A;C6acHA8Y*vQy* zA)t&lga*qvCRTSil;4$IIpJ^ppuXdtNf;_wOl?m|=$2B&Rc=I-K7Jyiz$1zAhd(a# zA@QW1M*-8DJaJ^4Le3oqfn6-f>JNda5Ne%fq`GM|R?G5hyCQaGaU$qTDfjnmJ?JBL z1dB+f3-bGT{ZAqAqS9Srq&$RHe($$2f}Pajti>r zXxTJhCXy1wJ%rW-A^n(Dun|egx~bZ`p3G8*7hz9>obEM~A`+5b-y;hid)sful~iQt z_24ClZaU%(ENtsPLZ3~*klDr{QbInOsp6uXLHEl^`_VUjD%m5_F#f_1Xkr!Df5lxL zo^+IpEx&itHHVjlru+dV|B;=tBgj2-NA57S7Z zeg5H-B`#B0h1a3+&=&VE+b~X*SC4ZxEw#Rmz%=AIp^wYu8L!9$!cG%wzQq{xn&e|g z_>rnXsCI#Y(b7`JS+F8a~5wc{Z60m7#Qsh{6s%q9zFirTRO z>*{)|qevV$Qw9-Y7VSiI@jx3Es)!GJZa^-1MF3#aO1OetPN)}qUX~aJgjL0ZcR8St zM=!AHty(B1*;LJR8!ZDpVz1Yge9EQw84#ktS@~8I%N5PxS$>-$2FwHW`KL??_p+`f z8BCbK3y8Er%x8WUr&aW1_Z{6wzJ&F8{ADQUZnpf$pT%Sba0VYcPaHw~BUT*oYejt2 zz*%GjC2UP>@B|&BXgUGVuu6F>g@B0S@QVYf=8GQAi2^pP5F7MIX)YC1oVa?N3Yo6l zAYtfNr60oG@i5u@ae3Qk=(-7Ag4Q2DmK>~bpM-#??e#M!p|>cA)JlXNEuMAD3wWal!X+T^{+Q2=VO|D~Xh%p&TY7%PD*sj2BU`}B^+~O2jU5WpAd3yiX1VPLPI1BWGVoy!+ z$Cvm*)5oT@C1d}*JZnoorEx@K1Xs4~Kw0h|OWb)_Os4@yJZ&pxOUL5L9guzTSg0NBX?-Z9*ly{yz z>wybY{6*0`efhsS@6XER;T959XhzEj^0zYiHJ{Mj9K4EytA!mol(5RClx=O-mu;b?#HLD+P-$EX(wQ2^*O$+5 zs;h-Hni`L0EQ-Zr#Af zijckdKXrAeHEyR9(h7xEaGjcy+qa_n3Ppa>H)|Jei-}PS(QuP4J%OFf6!T}|yxm`zgk5&#bl;jCN zlV0b^o%;=a&*dY#d(Zvec|ev}kkb0xWyLC<-eUejiB1qyRRdU~0FsKWq6O*@!YPUN zRj%*u4~_nwLt%cY-f3d#%liFxhk>ugr|yBv%iC$RA*<6L7w8Ql+xuI6FSUPm(*|RI ze}4k76bTKk;o>ODcesgI2p8cv>E^ZsdnQ?@v516l8hz?>VfDCG>(C9~@TW8!5vSW| z93=vU=3rWMRsT1FU{A+Ifo||IJ}^sVRPlA@0wh+r)#m1jfbpmRt^92hRq!%-rz zR+7RO4^@0lLdAH%NT^af_x2P5bO9k(`O^7QmqUQP2P__Ic-)kPG$a#Wop>EYROB3n zy*7C&)l!C)MT59ZJaoAmybwu&_!|sr>3U$&+3(-kKG0sNq@}0dXE+=}o}NH61QcyJ zDKi;?u2Eq4s1{eaQXE?hmO&+x2+!|z?yJNybf4eE;?ZC(^`B@SL`x8SUA(#ui$314 zVsmj_mJukZ5{e?)ZVw?bmsBJlZDyF1pb*Bgt?Uu`B%7~8$(sB1NPj}Yu@d43co!O# zno@ae9}THV16os@+WD}7_-zJoo$j3w^?`$oUHQ7SjR*(Gt0AOn?l#DTZlS)J>Mrop z7;K+SMfnUR8bZM^4pjng7T}OK(Y~Lfcn0;f&1r`Ww zR{+UEo=1H}Aq@5f$*?zp_ZOyv6;@K%eOWr$zn*omR34w~t^(l5VWc`4fO%4&(yeE< zQnLiL8TKOI{t-^mOdyWO&?w|4Uh8jHQyF_n_@9j#o1i$%+aAdAs7~DkYPJ07K33zC z?G?fh!Ka*k}dIBQ=lr30~UC3X{Fn?AAR;CGZJT!($pslrE z#w^K2Lb+IhL|9}ENC{}@4^Rxq%@~K^_J}JNp>gJg^;_OeZ>wa9Squ{BsVKsw^o5N) zjqe4}8+HElWjuem{=4#ONg%mkA@j5NlEO&ph0PMMtCJALkL*5crvk7a>@br z)N~TLTEJ}*MW&e|21QsX6YQ4vNgNY1iSwVL*Bh5>k7W^v?7J=OZg`#dgQ0gY?q@r( zl3;r&&^_LZZXVE@6>;&)=UCCcWB0GM*?_Pp=rIaN5$hhGNkr?$ZjcP^3D?={5L|m~ zZjwPINeH=Q#J(Cxg$zH62sXiA5F+xQ`(b~yXP=6Oz)phnhv4iEaMhQ`Mo)RYjJ#G1 zC$&E{rT8)y3?XmQeRw}Esf~+fvx8L>p(bST@+s>9L#fzAkk1b2z85|G=Bj`Sc8lT= z!-J2Jla5i`B=g-Mb0A4PxV`R}_}<0Q@cTdL~#y*(w*L^^kA(UtY2Vs}Z7=KZK3Pk3!?L|So zInwt0Gj5*BNUO|fL4#5G83!pD0@%#oC}uBA7|lNeqya(=fe(t<_{S_R&D%(+MjA#y z&!8A9aJFdvJK}T$&e=Os4^5!<=5_@0`7R5;8Uz@0mxjJu_}s`5YRp0-BSr~;#=}e< zLIw-^_HPfEab~9I5b&djjgNpZx&hk5WnqtJIZ!k5JgjLr77-Nl?@Blvea|oeB*$+q zhJuDs8R!gu7OIU22);dfA4-ar=6^sZ2wpn-;PTl!$GdTBT=%CFKzwviD3Bf34N3?w z7NTafRKkB_S%e6HVKJKpidCO6K<6x@<3oTQ3%Zw?d9xdF`uM#&0WdB_u=B(0y?ua_ z3NkOg`+PRDwSfD*1uZk=pfBhv0wrb?I^PA^LgeN@A{WpT( zS}t4V9nx;@e-H!*is_|FkjJmbUy4DKwC-HK{6`1b02dLY`zGT&iXNWKV<~2XW9c6} zbfyanl0aRBSBEbxlk>-Q2kM%!U--_eDeQB5Cn^%80d98!~Y-%Iw#X8@R3TU zlc?ub(O^01Urffio8Z|Wpp#U{u_5qzBt(%4F{Xk-CctuNu&m+>cW1B+Hu)p~k;8*A z_+*!xPVSmu0uo}Z_|nO_C@H!qoy$6+%eo$wHGc)sz1!VGg*}hTFdi==ib}8kP8vtPsJ{u80bXE;0 zPdAoF|4y2Yel@T8YPj)lFKO%dE2==nPS2~W&d zlHqD4BBv7hwvu_OlJ%f+y{Ax2@imvrYo4pG`Ep(h^nx7m2uTV^K(I<&t4hM9N-F0y zhazI!gPxhGl0K+X6s+c1ui`VSR-#?4R?n%{d|Q2bs#^P?8Y@_%r&VL%Qe$+r2A5M~ z`nJY=s>br51}|7^qg89?QtJ>@tLF&`fabYQ)t)=3^yJ;HYPfaKkSX})pU~Q0 z>PF6+%$!<=dXB67?EHx+pK-jK9VbDizR>vAPjAo^+#azFh>roqS{%+Usl3~7Sgmhw z;!q8SjnB*(`6}40-*wN$b|ns|kf~-%m_o z_Iuf9wBCMU(qYU;tm2L%eaANW@+Nso#NP=dN1<)z3?Hvvf;gb z;x)mOWLS*O)(0pJ1*Lc}^U9*Q6`3{wIE-qi#0=kI;^6P&cw*LC*z0s?=G%BRf#0)L zI#|bY43OPub&&*}B(sbwg0pV}fn?Tlg7b;jZFz6+bnUjhU;h9ww~NWPFW_3aJ==|g zbri>26`H*0de!`S8_wNsTIZpPqA8L1$bwvSeIr#uRmK=fTeZbxSz?FTptk*rQzlphT zT&TT3wkO`T`wO$qoNQPCk+qx>!Z-w|0v~Mp21a{7cr$eTa_OKRet6R7_%m&==)Z91p!_}B&b4VzSeRgAH)fQ|{h7thQZY<0^6WUz>M3Y(H0uUMj zb~hNJ`j|sJq*rfd=$ve$k#I+g5LvQs#JpcyX8GN!;-`ypEH#x{~QR0Q;EIGIE+@@9HS? z+>r6(QIs4=TQhpx>`Jf4|so|&GRnWg=ip$N~;pP5~Bn_a#( zyZU(ct6M>BV~O#jXVo`Lgz~F82+y~#ec6Bf<#+R!!Uxc0onxp}GBc}(8?iFfm| zv-9#t^NQLPx-HO?9@VD3uSJ3uaJ?WpT1@+B0sD%9Tbs@Xhs6`&nEVCDw~OYpiHt4Xn|DYU#*U%_SX*%2|_={jb3cs?f8 zX6{kYlZt=f7Gu^oP=E*s$0{O3nw+x==O`wO@^8c*G zDzUxc0Dm-e;w-22jV0Gc4$^U9`g zc4HZ_k&*W`N_H(342~&SZ_3-$+g*RDy*?|lMnG*XoU`f;-CEh&sM=z$(Vi|nXBBfB zOue8+moCK&!LBkx=2JUy(mnS~Bz5;b^!)Ey_h zDbVz_F;-v!Ktxg*(fL&V>w1DZ?ZGqbD4lhVZ$J-?fIcE4Eg$ThuGxt`O%)kz;|LQD z_hOLB_^vZbogVo9B>fvhg=oxeQC2D=hPY#(qi4i6BCx$9x@~Tzv;B)?Bdzm8!|I#y zlOIs`bu)#nBkWc-^@m4=zP--KnToG|I;{NjKWx72iSF+C2><+|{WHMbDu)1$%=jtn zv+L6LbK@Q63_&#T3HX-fzO2ta;mI!hm#vOl8$E>0c(z{x62Gom{ZeFuGb-{lh-@9N z{gs=coA+fq|H%)^z*kcntEIf(Cr7ELUH44czRrn!t8qU_AMmVqN0f(s8cOw~Gc3IcbZB3ZN<_-DK_PLwc7vxa*Jd;vad? zeWjL0_nfHJZwEOdwC#!`eKGszwdh|~G(*|}ux&-b#=%%b46^YBtw@?Wx`x{N0l@@4 z)`+nVpEJ58d?pskZ?lNIBWaOm@X%(-^uCA+zldZC5Pw&Rjc!3fQgU zpBkRI-~lcyuuh@1Qo8+z;u57VJDKzO7wC=ga%9KC1RXYeVou|0x$~Ms>Q8MJ5L3WPQwpT~GuuhWD*&Uyrdvfj_8;WZ-Po3FJ z$!&}&lrna4+{B5M5^OoQdW@nI>EifvZrX3(4!SQXbhh~#jX}h9pD-`BKEMz-2TJB< zV>C^9-90!;;!tnOZkcc4B&W#5pxBS%zmw*|uJg`;+K@~2sqd3T-H&2^|JeM}`Q*vg zaz2m5X+F{o-CYW$4o<;HGL9VGCc@+viJ6EkhafCMW76L{o$ORiW^8MkUl%<-?m>#z z+r^0|z$FM)I=t=)Cyn_1p1n2_3>#f*cya<&#-J*G{QOcP|P7E;jV5zwxt<9f=Q&^fC(zLvPzqqc`#@dwcl((a1gwDNhh!cEDEQKiuAND zp!&dkuP_q$Gue3dH>cebRUOXyJ+F0e`7&iI&E&Oz`>xSQ(cBYwW@&zc2^Z*|{_zd< z;1g^EgayUPhV`!+(i@p#U?%m6r!4G&E&~ke;@he$d?%V!-6B4nuXl_5l34%T^&+_Z zo>BI`F$wO>wRh8|$Y}`7)xqxfqX4crsO?6O6?9N!5=A{g3&*JGyhfc2vlBGhTTB zQ2>(I$e!~O(E!BLjnu3qXg5-=J2ZpJ>z5mYD&lRfETOUiJNyZUOkyuQA0x?}c~-E2 z5^rdiU6)i5>%kZ-NA+TPk|@VvZ>gp`3~_vKbUOS4uU}JmR$E7LGv7#xM3w~=cq&ff ze%S8uo@3yCg)Xy_;-O#WU?`U$cAtVF1J?@frpK!Zb)%^3oJhJz43f-dbc!kLPVlj!?6USi^Sf_?1cndA5ck+h6mKLG{S5_O0wfBZIt|#0TzN#mTwcN@8fMPpBlqju&&x-=F|!UNKX}L7tH82j<{|$qJ5WQ)?9N#Z&z+Hng9*!9 zxe$`_QbM)>4Y90Lal;}Jby0d+!bI66&Vq1j@zJn>pXS&bRaR)*0u#{IuWu5&3rnRPvG>Dg$J`nBe{$`ZmX z$l11lRr!Us9M1a2r0ugnyBEh21MQxdh%$Q+!9oaQbwxbMM_ctNrM*~9>k%rC)gaps zwr+c4a<2x*b{K|!>~k|bDt*1FWkCUZ2CCR1Ew`GyMMt2vxIfJqB&Hd z#8VM{FNo$XW9s-0$z2s=5oq}M#K(>;yDIJH!RL>Ebu6s9SNYN~Bv4r2oXG=SYHP6W zcV5eJWIUp-o_o_e=d07yIklJdwbF#QC#HuV)#cRMhg`V#*0qXnytW0n=Qj1oWnScC z{q^!Kjb4FIJ@@bDrNV;4Y6T|;E}yE{f3_8wZsxG4^r`t3AKuIW$J{v?p?~y)q5E#(s-J+I5I5y6G0? zd)~|q2A_C)$}o_`Qs&hqzt_&TB}>wmJ$J)lqT^J@YZK;D(r;hY#)BoCr$I_Yp;F{Fujv0 zBx$Zd%pQ(p3~c79HU}Vo@|Vt`YRu$VdCcv z_#388n%Q98+ofjJgek4Cq*J-~c(TbRwmn~!rtVSjM~Fvqmc9{FlkI*-$D6)1jS^fO ziwiC5-xyxox|8#HP9gahMx%15OewC^ykETm^mQlCS$#ltHrQP1&!;2#+>VpR(Ie-# zEEPI0u8jGn4JU&yZLsEiJ#dH~uRYgYY)%HT6n!;~Diyrn_F-&gEc|o*yUTSSUzgZk zVjSe>o$}Of-i++j5=~v}xZ8DYD{$~C1xCXavCUGGjhhJ1@}fFU&2Ha4ez+j1bEW6K z-c;?b^>VmmhQPp=4*q+V{qbxe2jy58p>GowxF-p&JQuBhMJw zf3qq!rfKgfiv0=Gx7->t9xr+!;+NBQaJ3+H60?}Qwl(H@xA#GvG_m&2My*{Y`D z&HGrwnWMWOuKFCNyi(gQ{BmyldfoIYE%MickPC#;CxvO{(xZd#ziqvAJ9>Wf;z>{) zZA!bPRQqwZ%)GvS+ER+mOMd+FS{kifG*|b&ZwkclX<>A1I#ToIXBRssvA{$#v1rSJpr; zV#Ui;*}jw6gcPg4YNVOzWqMaEe%H-)d4FQz48wG5>qi}?(=D-IvB=YnS4(vH%1-lh zY5iVrps8`5TrAa;UTkePea)ky_r_b_y!X_+%ZZyV>WqunrC$A8Oc?AXCAhx2Trl}w zn~qvS8%ajJqOoj1P?u$+Rdcu1OsmBV+C+(O1|=vb+8V$tRur)AG99S*GwUo`YtICZwnuc8e@lDIl`fFxQ{VN$iQ>7K6;~l*S1!y&&Vj(_)KsYSFpxS z7Xw<ba!!m3SkF4bGN_dK)HNRu_Od8=o9vG?Jjx|h!>ml!o$!IL{x z`fp@=zpd*E^?kU=q#kI{>#Ndk8r+(Zt8|jNgOIDNe_&QF)a!7%_Z64PfmvtVMqLea zdpuWNuj~iEcyn`T+l7P9RN3mfT(e3ai|A(`k`KExn#e8F-LXQ3kJ9=Zci%j9?X!w8 zq80D<7uq#H*zFs%v+#S?Bbn7!*M#fq>pR(`Q@Y-lV5b%<+cT_Ez7*W|v0e6Rj75r% zMNMA^b+KZm#w>uT%iUac)*Lr$Flam4Jm-2`J7zHdrfPhz`az8a%C#qVbkG}WwcdBC zE@2?(pyx=USJ&>%V7ukkCG*EI=I^~e92%&TRV%iQH~y(&S}b85 z^mOp%p_Q1dChJ&d!>*a(G2__XK2YtD+U@{krWR^HguG@2T*JRpv3Mk4!~26A&pCiI z9~hS%lnklgZ|Zq`SjpC`&mJqrtD{$Y>C6N z5hM7e9wk+r)27j~tAo9peZQ-|DGROJ-5H~ zqlm-BQ8e8;a?>tq#?GMGjmf^uzF5 zT8*f=iH`+6r)evHCbe8n1sUvQ_1NKl`Puibh8hdz9}hpjWtz0#c)_x$Tf8~GctKlFIQQhJA$B5>yVG80=-Sz_4>R(QU0v?DW!pce(NTY& z++I&h&Q@`s6I`FsFrA%0Kg$c6Sx%f?U8yYBo#pP z_v3Y%Tv{SFaDVh+8b)Bu6+ zQxdZQ*2*|70177%X|;2L4lmqGNK#bdQvXd9F)3t%A)K1%bMht>op5a^0bF#84-dbR znS2dk2+>VJs)Hi=;3$-5jt7aC0x%qD-e zI`+`N9ODtswf`&~5Ab`$i{psOmw{NmWHlZ}7@pxeK1pO11n*kZda>lJoq{9+Ohbuh zLWwmuSP=dIB0F6*j_6uP^x8^AQg0$BzLd`0=H^?}W4OWS4_teb&R9hJ&Ygy=^qnkP zW+3L5WfPawNoTd)rO3%HDbFXUfZdCQI1k^QKZ^;KM3fqfxF@^iIgru?;naNM&B~Qn z9t4t*j>=w&&OWG>gro01pd6s_-Z;&3I~zIO-&3z#PRI= zAFCrWAV?BX@lyEPBnf>ePx1P-L?5$DR2!l(|CN{Ls%#oZl1vJpvi0hn>%4TjOSwfs$2r_kU{)WAQai1iUL`_0HF|UXLg8EHv#rckPwQbwoIe~!K^X}Dk_DS z4C3+dj7uT1sRyGniEPC5kyX%jzGO&tP%0Tnec^S>D8xAr>4budg@%antSQ|go+?Tj zm-3SBT0)`{1B()A(a==e5AIdhjbCU>U(k1uXFJm`r#KkR<9) z^y*I9?0`q06a4Z+^;QFzhM*Vnx4tqYN#xHn5Phyhc^Rr9sw`I`>JSM3B_#q;PHNpJ z8y-as3&O?yv_Np&0xNmMYj{A^$RJoY($bO&x1#2=d#g==gwXLCSb`A3mq(EbRq%$M z0K-;%pbB6%o)kD4B#$L1O@QQ6;!q7Na6WkKDv0YSCFJ3@NcPQP%T1BabF%yK3$qOR z`SIc_3-Se!aK%trMW|S8Ak%7yb$&?r5KMLm79REWdc#gg=FS2Se0nx(c{#kiA@N#N z5=}h?Voy#E#RaiY z6nJd@oR2&xh?s1Fi&w!X&}9@L9Yi@MP9r6*t%HP_0JY}>{1YS|(epx>2$T~N#k6 zBB~+pH+KqxOoFieNYcLiu7OJuy|9x=-#dblMN#~eOCiO8ZToj@@ zem;FA6|%ptXNV8r~vmKqS1k8juk+dUwr`P?w za3;=E7dCJw4b-lbsoWlYhWw(;D%M5knS!z#IbbSt-eBEUM!nBn#dlwZet8KM;zUi- zb+(-h=G2*z{MUtG>`~TnBKdVIBH(A4XB?-29xTI)-vOhPY<^oBaHQxD{o!rtvx9qoaHi(>J=Tdl zFXS{6{9EPgXo+KW=;m+LjfpD1kFP=w)V8J@BfoEL9-N|5T9Y{yLJ!q<7JD8jhix71 zxg;oJ{EI>h;xOT3B_UJqW*nIjwI%m(9yr%KPzaOAG*6*i!iJNCd0EuSg}}1U)NQ+! zCqibltb9u|Zn6ZYg$D-Js(j${{f1QLbX>*>oP|M_HBaa>E?dhhS!7{b!+d^YHh`Y# z`99IcdO|Yc-XoYOSIY;Xiz*#@0n9Cuj^{Z)Cq4k@s1h96bwi<~vr10(x{Seu7F~#f zN=K&WU3(tglpgh=1>dma%B(uH!>rrDjlqXkq#gy7yphTYY5XOX8{VTK{WxOsigaFp zQGNfVu>h)7%zQ$@2%}^gUXPJ@%W?L~TDf1Q{QM|-ID$==UH2N#+Ky8!y4zMCA)T8E zMoQz==!&-iJ6llH#>Y_*oGYIJZ*9k@COfW{Vl~JatGT`douN57ZA+cLxa63Xc42AU|MJ+x|&Wncf z+oh^I$?o1)m~Y358qy@EJI_C0Gv7A^@mUR#A?6%Wk4qSNsNLG`i1RJx2Sqk~O%0cW z&T{MkbiOJp5hdj!>=yGF40Am>s4)JtPQDZQ49g&RtZAR8PGQ_|aYT@#yUgQaS3dvU zWjz#_*Cz$#kY#DpVGY{Jv%x+r@}yHK@_!JIx20i6|p=~0IE@|^o&^6z(dh+<0#8#)ld}5Bz6(|Ozk-W{FLVaJBnw$V@&CyJv!9Tln8xs zkFU{*3|gQXv*A8I8i*l;KhzRK+7`8PS5+p;$A~d|tFzw-=tL#$w_OrfdmYFJW(rd@ zP&Fth3Q3@NJ5>tn0-VJmDPX4SMMm8hphY_VD;y8<Pe8e&p+w9jfGL59x(w~0Zs1bhpL_hpl(H5EMf=q4*XZ2_rMty_=as4-4#Y^QC?}JoLkl12=4U}? z$-?0&g<4@l*_e`T67-2 zX6y=QN&=1v%3uJA(Ut@RmWVpYNbF zgOGyybwLBj5Rnb~|GZsFf$uf6d~m~Y!J7cs>fL#`EBQE!sW-3M20HceuQiMA`=j~d zH(2Q05{Cu~UpkHgQ%jFy?lZ&{GruB~9G61q2=u?cL*J5~k#YW5;!x{MdkNyh=oVl2 zX~G5tF*y~r{9lyac|4SF-0=PLoPEYN_I-?fXYAX^%n*{Kl9XsfND|tFn6Yn_O8sPO z2&pJrvYQ#Zh!8>=l!QtpDa$M=>tU%mdpdFaqZYTnvcs zg@6#bo^pGarZ}p1y&$;3dIiY7;oVhhnwJw6dB@w- z@b8`vzi3@=(U1B03v<$oRkAOeoTS0RDB9Y z-pH2l8269~&qtrHbdcFWA_pNd^;bOpMEItQOi?0iB~ifipis9Q+F8` ziB>G`Hfnr5AZ%2;y_xf3lx-bYkO#FNmDN#3o;7XMlw7cvfX|T35qsZnk}8{+F=ZP16gz%o@Xt4jCTu9R4imVmqVz?aD~g%zCR? zh&eW1gs3_!`pC2u${U#yZRQ|s>aS;Gq0j%wa!|469m;y&Qx6?)lcPfTiRjPQIE`~S zu6d8G-jACOU+1L1Id;Dh`}Q$ScHiZ3K8e-sR^H7-vh*Z-4$OW>6 z$`Zuam?dxRq1j}kY!=~gg6RcYGitngid29jK75NNzRCyOEeLl5pwmobnUp~ophJS{ zNKwGLBp8*vZec6hBN;k$bDhPOy?{H{NeZtN!fuFs;l04$+yCXA_t(M#tl;dCJwVc1 zq0tBuDwIphfG00^_Id`=W$RNsx8fxySTm!kunwBF2XuEmTrQZc77Dc*rG3{;hQQc{ z{Pe=lU7qG_!|XU^bBOF1pTv-@#RfztgNY95f)ZGI9Qq%)1C+#4vx_sHfb#NQL9oG9 z(tr(-BtYALB^tDwg{oN&P~Ks7RYFuk?BOXi^fb-$tQ|aoW{Pcx8PhG?*!Zy|h#ZBe z5?A5DM5|C#Guc)>?3eozcvp3%S=y~sczv8%Ie5XB-=kRvAYwoK=t zJsxNc2#(-8ra?2PZ0}RaKchiXD4)fjRdI;+a}M!?s;~&=aY$#{uE+!k5n?SB_i1g` zUxOy|!B*4H*8y?#CMfR^%7pefsc0xE7uc_^KneT@RVD$4!%DFeH`R<&ELB)|dD4Mt z$fvVOFaizjM>>^PWQvEv0J2pC+bulvV9_a2H;SlK4xBnDR2;8ktmt4&lJ0p1;@NrK(M;>o~{-Trl?V-oX+O-g^T8eV> z-mAr+Ru)BZgRBx7_tspo>x*9)$~#o>)~%x?3Fp~#oww_2Jv$6_cPFM_+HQE};0aaQ zWM%2Kqrj^nhiz3-CZRBzvK!LlG@v7il!H1IC>{+BfRB2?SA-A*MR&;ly@F&gjJdPw z2Qh!yn&9rW5|Eg45+cUL>e$K$?+1lN;hD-3s6^|+uBf1E)>I1Efl)4UdE=Fxti^5fd0n0-jF2rkD|b5uQJJ~tA`?SKZVT7-TyGA5O8K_%~%z^OgD#aU5lN@y{8 z_u`XqW3r{3zruHUj&4Wl*^Yq^fhsX4uO81X&pPR_b<(n){qol-UaQ>7E$-9tiRibV zV19PcK!4|Tr3^RbNz(;i`-RgTNBMPd20pHDs{C&l)A&frmZp60P?ANK?dvM_hrfy~ z?haNRegv~yO02W5iuMmacHhdS14<%mCeY&y%i{f|a%1lNF1&@*pq!0)NE8^3n0#Euk=o^^3rScMxo&|Ah(wc639O|LOYg4$xD|@w78{?yq!39m9u%1sw!SM_ zWF^jk$)dOc7!Fxe%GPj&jc3rxB1wt~aZ*cU+g3QewAdp8z%XctoIz;Bp!g{5Pzp`B z!&}0f#a|w%yv`zMu&_E5bvzq8s)WoS%ZD%L(;znRbH&iU=$fHo;U& z@G%r)V}c=*jVUk~sGb0d_EQY|XWFCh`W1>ox;2F)ST#y;>Zl4=A+ zb@Ai%PF3pDsjoXvb;_ZJTTj)eL6m8NbPvQ}jjdQq`yNIstIRJnEcK<7)~k|K7`7s{ zTB=uQIP6!0S_sZ>85T`LUm(@R97biu8!ZyY`Y@-ajdd)F?mn)$c`&w$YAHd5jqK+L?xeC$h!Mjdj{0 z%}E)Ur;oQ)aRb`dnL}AW@{K4 zZ@oo9JCYy_%C1o8UV6NVBh->%izNaZ6)DEGRn{u;(lH(SsQ1>6?I#L{X%b}~*pgKP z7C}wJYnG+fbC#i0C8A#?Zw?ORAodDEm4?__JV0THB9b*1au1@P0qU=^wVSIQG)a=H zY(h3gogb?22F6fW+RYGMeyHx2p{^UfvQphpy@t9Ym8K*RPGN1(p+ttQadKRS2}!Xw z%h<7<$Y>YOyS~M+HFT^o_J}u`j#rAlE~8StstP6c$K$fOC+1{62jMkUoKAjl3Hcb5 zz>Cu%n*)xXeB|KFJmpW4Z7k7(kUv)o@)yTj;Gw3qwnomjM$Pf+D(?Et@rz3FX0^7e zG!E1lG^NIybwKgXC3%hPp^FP9R9my+c(aTPW_FCsD{QN5r~$Rz%Fb4Za00qQH*;>s zG!u@>Ev;)kK8^iMbTl;Bw$&~-=q!R-Y1lc~(J6w-xMlEfg5A$V%nnXfV5RB$XttW2?~7gCrCR^v7iknqSjbpx^Wr zC6WRo6P&i7auZPXyg5{l7c_y(B6>hY?Z(9!@g@u!gai^%@v!5dGYjCS#S?h5Tg5D^ zWVVehXwHZ~cBWy@MODM>tF^73g`?ibUC{LnLG2Z&b})ZZXh^0H37Jh2GA$AJAj9)W z(pw}Cw_6s*wx}(dS#~=Q&oy>#w>b|y(Vewn0!HPwqFMG6M*)0u`<^H}r?%r0+wsyK zYaxYR9T|~EC`+Upg$Pqql4tL`FK1vvmUi>HFM7yUjWTPR0{G4a8a z?+uA`WpjiEw_cu55APsJ8AH0~$RfupHQ5(~PgE-nT{=Z1iDbp8ob7;4UkZ_wJokcr zF8Li2_B&eSMVRu7aBh2z&E*U8&jQbF1$L88HwB5*QluC(nGFy}Vkw;oc%gvgPXKAY z5FCttGNR`c-;v=yuw7fKBXDBcd9(S{ZOf`iol)*w z7Gag%Y2K;eWMY-jx|rN514BRBjyD==kBT-_J=Qvv-h9V4sV>k%A{G;Q=kz{6K7~vPn?;Z=@NB6m`x_iQFOJKxMnD6<@D+eDj7u@ z?tM%x#FP01`kJ2Kd4du5veT>7&z-2(OQad$A(<#nNN4$on85n7njGY0>)eOqb`4Y&q|iGDTu!E^V92xN1l06GG5`T zO&M{R!9~ZsW1s2I3ZSA=kH>SD)7sW(ki>tgd8ZvsCQ)QnKBBp=*_&dBOMMc~Bd!jq zLM01oN@y(_@|~lj&LKW^yV?l+FXe8Wr90uazN8QsnQ0WXTB}Mf^1kZ*L zTlBrB6<5xH9drIpD!~vJ{iHO+BGT}U?z4$WLUtZL35rQ%mAG=TvXj!g;&ghTQiK7w zk?ouas6-^SkQTQr=GczI%LeK1k#eOOz=$hV#el{_YB3--^maFdFJrbe0XCc+a2G3% zvYlX~oT#Ev9M^P9_#6`{<)=_a#)Z2$a`>*Se!g`7YKVmoBUS|Or{JDhp$QdrtPE_# zPzlLd2x3Z-w4jV*XI|Dx%fbv>;L`4*Ff>=|vpn7779;h-@vs+)DTsnI31^yT%}U*7 z43y*I#DWXqf{=vF+eaPi5Ctb3XW)Wyu|b@)EA@0=xS&`zy1m4WNg7(h5fX3#Gt9Uu zwiD5y(lC(w7@Eh+O%Ea9N`pQ&sUw6e zsQub1S8Y z@5!bKMg;GVTIq4n^gsN>^W$Se8{mMVow{+*{0ZnxOEy?^czVj@iRI8O-XX_C-LtdG zvSBGu#h$|J=H^e1b0}$z6Q|ghJI{Fkq99rweXesInf&h@lP#KG3!JmdP>C{^dWoth z9O2JY5q<=Fx$@!KnYFJ9m@=*%ah;=+>_& zc;9M0k-RF)qBI|iHJCNp@kXR;AQSr3{ziC8hh?Fhs-@GFzGYV?)a}pP?2S)00A}d4 z2mn!EU471bHKy}jh-=s3$pr~C%uU9AsQ;0ssgiVq2vnlLOtICBft^+x-^?l|xo}?f z+?9c-f|Me&mZicU=eO5B*?=;xbiphJ+@$OR42^c?SgeH?kDRhw?Ty9mf z;45d^JB=It?)=;i|gdIfSnX_8~SU4{A@GdV5R6!9@qErA1MS9a?l z3R5T=l(NJW7RU`LF8cnx$AL7*)L-#&63fCPrfCYd7bI0T4{L^>nWg#bu+Y1YgNV1& zw^34AP~m8f^I0X8eRH)LioqGhV$+B2M^wc*iC_`U5pWqm*2CCscHhmMQFT>nynALw z)wNS>sQC~~CmJIm=W$y6?8crXL%RGJb}1k^G7&b^=UzX#TeyK9r;-$x>LO+@cBfNk zk5hNr$VtcNPZK-zIrGvO-db07XoXa8dB$S(;%*Nf=iK3c?MKlO)<;Ymh4$me!ln5;^#?U?)y#=!j;x1{SKLGa!wtUupUwo4URJyKStH`G!iT^1E`L zM4*;EUOK4>-xEcdJ^_wRG2H9=m=)qz&?iix+1kZ0xcqjYqlK6xdXy#_DTUv&FYTaU z{m*J~tr^S-nUQ;tXQljIpVe^D@8d)6z4TiD@efPR-{7HoA>Ua*?AQU+U$REIYR}^C z?VtX8Degvjr|o2dm|!F9E153`OT52DP?_*S=#UD6457$ZG)=_YS`q{ic7r0u0ML~e zAc8yzUFC4}hciK793bSQp-&?K-G|W=#p?FgRurD#FAPx(Dua&?e%qD9x(lLDN;g zZ%$&S-Ve#;ALB7#r_MT%ak^Yll)zWjeTbg>!B73~gIBf@BJoG3eMKSXXoAj6S`_Z8 z)|wOx#8nR4>01h1bCHBcr{8_+g8cmDXyl0XE=W@-uq;*oMMpmQ%w}mMS2QM&^Do>x zg^D^NS4NhR5l*{-V4dkL{pn8$`$TMl36`MZ2E;l(rEeS!Js7092jR77>#2oGvp+B{ zZ|(p3M!{N%+4koHHyR8BK7wRYqQXgN;ikt5QR?iuibtVE9aKM4Lsz~Kk^17aGMKq) zCKFK2lvQ7(4Jp%I6`c-z$Vc463#}e7#GUkom-&s%dItS57w$N!!hnb`t{pZQ2BZKZ zHE2hV-i2@=cgPZbHwE_ABV1aL*FM=!PY@7cqH>azWO(aajME>Ko@VZQn>`TsBj}ml z9EkOC!Eg>d9w6{*Podb*lMJZ!DpdN>>0NL>L5`&i)5Dd#!=)4}CHUa7X&B&yL)5Fx@8HH}kJBSHM=AG=DFL^w?vYyuwd zouVjsK+v|FBTpoQYE-zuQrshr-NW`X`+T*hDbIpFSsK$nZ279jfa8DLr^s(KTzL4{{0L8e3W@afzw zq5RsS@3&|{VkF=^4NztRxd=guq8Nsb;kq+J+)=+T2njBRU}egbBES9i#&6&{%+kJX zBsl-cK8MH~gfjO3wbPP3q>uX;hWlKF`y$K`d2KC59z>jin->Z%CYzi3h)O+LpDRDV zCWKlAgjP=>R`7hhUWXl?Z-pVSi==AKff6~;EM;X$t&&&xQd}_%1FrS-D&iR8UqNvy z4eAXOQer_H_dg`tGTBUBTN>J25iLkVr1n5!6rYEN;wa?(3_xzE zu+tHO;jjo+p@k&91N+5VEDn@spSahjM(S`B-MSKF^G2`OFBDURe~R0X=p;_`40%i zG|U`$9jT_r6fh1a3lezS*dSbie49#w0|gZS;`i}0v=3dQNLbi zCl!4Nr9}|;EzIdrty9ICQD_BVUIpc zn`H6{YD8Q*E3o1wxWaUqqM`Jj6l4adnFA)H8b0n+NnSRNIg4W~0Ta218@AXQNY zh+*L-6s3zn-q$Y2WNqMRqC@mUUqGC>xZEnkcrWm{5&5QPx7MSBHUj#tC)UtEjQN_G z0>*Y2#2Y%q$7RV6p5!C0r2%vHkt(QgeoT{$doJqkBb7vV!LTd25V~ziJ4Az~|4do< z{K@2rLh(zgxtPMJ@>!|KTk_c)pbW3zcM9&}f8-V@AEWAVYj*TjVbm7wlt`H9f)8%& zq1KcA#(RGHFlln@bh&CWZXJ}mYh?OcQTA2^HI9V)0HQF=BNcVo~BeU8mK1ttYOOu)bWg|h^MlzL1ra4h%8p*Q#v-16*|HE1JCxe*AS^2#4 z*iS_w!;13FWN(QgrRgErlv$Y>MVT1t62}Pl!SU75JeUHzRA#IB4U{h~Jo1$+rPrZ4 zwj16@@LXn#%`3Sc{jMIGikso6jI+1N(nv?cWo3Wv3QDEfHRG z;o{L37rlO8>@0_zBnhoju}Vi50L6rs>JnKDSxt15XX?s6e&wb6K30}Oc4*HGKVU8 z%SUp}7mHDhoTZ5pd_>h)B8YI&Y(_8#!7jgHH&aElzoN9iB0v7JA{#HV@sHG| zF#1ktq6`yZJS$xQO3mS6621@`NfbrToFj>QXQFqJMHlO@+b9ZVzdY9I3d0&}x!{HS zNDyn-2fjyDK%eIHUHW#voNBFDoE1m+Lx)#;FE`lT96=hgTs!L zF{(`I!w}c$FYiR`$AT=lxKkynlLkGnUX;Enp~r2-C_zRcyYTGfbX5zXF)AAwB0x;AMC<(wKXk zf8}+k626q{E0d{2^(y|l7*tB_`Ut)XgdiX%@KlKawvJR&)wz0|>3!zUZdNHi1JwX0 zohG%I>o1M>A&%sfeWJjeIS9;r(m2F4mlM!&#ZrtJU{~nRsjBfh2qEQKQhy4N5%htH4 z3YGj_Tx#NdE@s1MYw~S<*TgDh*M70kLNqhvh(0tUXqr{H1xGlqP;QZh?LTIDY_OgC zD=MkzPuqjHP^w}Q^|j?K>cf-@rd1@o44{=uXH8f&U5xI&(%k*Cfu)`2>rJ^RP+fR+ zt4IA4sP(%!>;*izgpJ}VgzY6%~@a)VOpEnF#0 z_8TATvG2_`C-DzYZI8Wq@Fwi)_?4FNtJ~xBcW*54=nUe-we5+U)^G1zeS5FvE%(K= zYQFVk$<@h6Et3`7lU3GJ&#z83v`n>ZPqD10JFianwoDIfPrtT)xBMLp(LDQR``xVd z%*U%UpWnUF#q=D=8@6Eb1BLu@%&}!_4m^e@AaMk|*F;`xjLN?MX>GmXC%45?m@ecO z;bpRS<_vbto5ajp?6SspAj$xtHIhJ4&;4zZkn66G=a1|jd4P=MtsIl3cUtC8w=SIB zSqR(Vc$JDD1I3RO3itD4TIck4AT|ia?(TMo93CXm6gEHz9{;H%X6aGuQbob!y-HFx zm4S|fGJY;w0D{M6^UlA6;2EFaDZ-0(mfp60dAIXr7WewO45EHVNoHD^i%YiT8_09Dj=7betr#2wk7l7WC|f7zZOPQG_~rjGt8^zIx}RgV)!kpKlEm4 zd+KQ_q8_^DnVy|2@3Cd|=OMN|kDZT$Jl-NuTllT&R^Ha0nQFae_2TQh=Js$Ykhqb8 zMOkO8(r(+{FznmXJVR@IvG#fNiD%n&>!$TD(@~xqf;(0eJ|}px)ThDs=GvIXrdT1H z)~!El%TsMP-WS6KPkqe_!;)hlf{s)=0+&LK!|0_PgrR{Rb83Q!i=$7Xgm;QhlJ`*# z0DFBJbuvZiy5q@IwSttBXz+6@-`rcYt=_ ze~HNo$~xvbR?%T8Qbs}lVzMMY9GfY$VlDC?rBAqOfhtNI0G>v{u zLGQ)Oq2!ksBsp_TgqBy|sJd&BorBsb9wzJbkQ`5uPaSzY{>(ZyNWe1mc$N7f)?=?T zL+WZ3f+TG7uf&RXO(8Xw1Z8Z(>)gxG_yMb|XC$OU6UKYGwqvT0hEPKE*BkCoElvKW@d5`pqZ%J3kfxCh?UxX!i zm`UcXFxlTf!O-VSo2{zOFAmv$Q_YrYzqryB&&Rz+40Yg%@->4vE$Q#eYu%mPk*(jx zTT_!ScYMXw!KBSLAGJxF`Rv1zH1Mh9xPQ}g35WBjxl(zz&fQW|d$T(Lc9I-IRTTFA zXi5%T(W4rzrXCWmq?VN+l5|xm#*~6qz0gyLlIzg$flI6{&f7?=md*c*$$q%$_-_H- z+4S>=+phMSAG6%tPyY{0_V}gGAOE2yX)a{@{U;{-Z%OX|oCHZxd%RebVfvq#?Eg6l z@*kM&mez84?f*v-Bn#1Rx~x-kb(eMpBHHClMZuU$`q{d{kj-+q=#~+P7>JxIhg)FQ zfQHe9KVO7lSCAD=uac~WghjIUKC6Mq7Xq-Ay7W&qpLcHSw{04F65#LD%6S$iacGtK zY3KJ1UKb+zQwPqm>Fo7c{*KD7OIk!%0yl84K2qkmq{|JJ@jvBANLZ!;Tg>dtcN^v9 z+?rm#Q;d>r2>i3vHk5)6mGo4(MiGDWN%`Q(zRr@Z&XzF#k7h(piE4L#Gr zk;rhy`eg8n7WHeP-STGlwMYLgp#PNqpKgf%ExY{x|H2IL8{h~2O@y2QxM3U)oxzHO zn|OF^JS%LERaLT&UJOm_Oc&!OPV^Yevu{Wk21)HXsM32=ZGWlGp6@DsclD06MlT+W zcg`goUhvyvwD9Vl;F%e@zoG&A^Bt}re*Fn$91@gPb?J`~R^EMGUNde>^43Yxf8X2A zyww*hwB^5`XpKr1G!CL`ht(j*C&r2^De0K|6xpSVt2xnDLyH_zq=k>6{!|tB{!fXL z{{<91SxzW~BX4olLIY>%5Ed`5dBM4n*W@XYC{;TveDU$YQkMe~){!QUhiU@4Ctk%Nlhg z_gjhc!>I?($p%zzAT940;i?UeG~VqP{pI)S{LB0M+jzMjHQjR5Ij1Y@;CJNlxugZIk#3zDFCU}~n+$B3mtK!`w=1R=fTw2`h!~cY$(+PEp zx!$unnKVe*wmpbIu07muuCS8A%J}P{=mE7@8nJ^pi=b8D&IP}7;qxCI_l3D0ER!_h zx(<=(*Am6&|LfkqCjyrv97JEzjOp!B{Bq!PR&GWmjdeZvRd0`PyyEA80I#~EdkTDf zR_XWWtW_2Zc~uAy9)cJdy?$fo^FKNNBlm-mL<-3Pi?(hqLo}+q&noG}V>Gve{y47T z_l<}rT~15BSJ8GXWbNeN8_1F|t!3zw^*f6&q?Gnj&5*tJm)g;^@kP>DSLBoD$IeFS z*1bQOzGNGJ%IZJ^`kMb!(%TTHFHNgm+TWUgpk)ua8(%y#Ox+k>{?-N{byk@$$>3EM zO1*rQ&2P4{+Rm#)e(w-F68ybWDxmy(m)zx*@7?%hUL{iHpMSZJhvh%|bY86dcuDBi z`Ppwg9{h8_{8RbQSH#~dKL<%j-L)Y*$+K&(9n~w=hMmp6tc|!j=>8gYJ975d8;^jB zUt`BFfB7{|P1aqX@cZZghN6YaS-jlO_NA!{py*g`&hPhEk$MsLVn12) zpy+2F8&eX@d>$0t{rd$xD~uEIAv@sfu^9Scs7qJAbw~;wn#o9LPg!o4?#HI=%<_?$o%i2=)d1@(D;l04^VV} zv6@+LuS?{Q+YJ5^jZcQR4&;RIev!(u8NS@-&VC3np;E-X_UxVHfh&8mPw8I%ljFH? z>rOMjzgP65y*@HVdL6I@gMWJO`WgPb7ZRps{P3Q{>4QIWNL6a4FB(M8hX2g9Wt}o$ z?QzMDsL5Ll?zI@{b;&BP$zNUTv6|nrpWa_n@V!}m*VH5K;MLNa`#U=7Bq-(;T_h_P zVXa{*`q(wdu(oh0TEp(1=Ic~kO_7ASn!Qoq%WL7acX8Wg+O}H5hi=stKOky4**+S+ z6H{HH_eI6ox3Tx$u<>ovmd~o^ACEZwsC{^QOVd?ZbF^?*b(#HHm4mk%drAyVZn|7u zQhcEGhH~)vl1Z@nx(@_5X$`gz6qXzk&fvEgBK0OQF<4Q)Zcx!f7&>9Rqj$vdi|I1%b_#dAsn{0 zck9g;&6lk7BR`kU{Hm^K`FdD3dOp4G&+vFK?->8vA5TtHeSgtL-PEVGsBysa6->mK zOx(Ent#b1TmiW;4?#@U3v`7X_>Q!ZuEyoqJzZUf2B&gau&k6hTyztCWf@EG7g2}^5 zQ^GKQ{Bcs$BADa7Rec+Nq`5h#o3vwq3Mrqv9_bMv?#iTKi)b)&3()s`)s4ih`B-ym zkE+HGy`ysXF)0i_*Tpx1I|mXi8K8jIDs7@z&JU|H%N01stiDT*^vg2=Fzp^N7;28r zi!DmNjDTNn?^;k8XG*Uz94ro!Qgs|^Uzweu@dpa0poBUg3Rp6~x8kDQ`HCUIdYCm; zI6;aq`Fij}wTlWi2Nhx2%h%g;3we-^O6htdbJ`JYo{@Qs8$S|{@GLZ-Ey@^k`s`xX zu4}8sDY}snxa{XBS6ZARsSs3 zC9Sm^#vzXJ&(Gv%(n)`V(_HxDB?Ch{T9)y55Nl1_meHjM4c2lh znT4xD#{9l0OeVnRvibqy<|9pyAUTM+(o{bD(Gx$?*!Ua~6qp4?xH>%V`A5LuKjKCk z4xkuU=-7oh1vx^e79}3#Jw#n@FQY(=@pPCQZ;WIEDG>1*UEy|B*l{qb(P-Bxogt`< z`z4?UuK(+%nKLJ)EdJ{b=&mRiHag5?YT!=ZpkrmzT8rTrvky)v?C{E~mHxE(-||Ggyemh5MypN7gS?OJ1~ePel8I0@UzQ0^;xxJetH89SY#^ zSHv8nZ8YNlB|=f%NZTQJ{wl`7L-;Tau{+?RFC*1BGZI5hs2xIHB_RI(PPnuPKs}&` zJfif?&q)vvcYFA_{uo<=PX1~HW(Zl!iT7gi^T!gA6#`7BHl5#S9%5HBe65D}w%idUwmWZbrb7VbV)>!ip{ zz1{9>ZkcL-#3(rVZeaRYpx#@jIZ4q-U-N(uyRWxrrPnxJG(V-Y2$E^=Fn{!PptHjj zqRZPm-hb|>N}Dhw{E(TMdJ$>Cul4J~gmuBYA%E@?doSxt_~Hq^7fwU3`NuW+fpZ@u z6gi;JTL}p)k1dAiv%r*l*=Y^gf4j3&&{wWY-@9dT@5Z0gy#2_#G;~hGz1(|u*lrNh zOqlkN1c88Z#fCiL^}q1~O$;Z!LZ3?M-0IWWHG6XF_T)ki`P0rGVAKd@p~Xwq8|?a=)3RP4kao)VTX_*-bIH(!wZDSy5ppMx%# z)ih0flsozXG|7Z1(sBZ3K@C@w8}05BMKGQ!&;>wuG-QA5!Gbx|9VKwiEz9BnsOXAv zB_&_H$#YZhYj6@^X~xG)vJ;swF-u9TR$=7PLdy9rwhq*0*~nSiBJvEMOc z_elv60G7)X_z4J>gx*KvFB@2vUJNqw?~_1QqW{nYOR<&#>i$Ggan_vG9aVgSkvL=Ei`cl8l-$>@2SGlupg0$XDBx7_-C*#)vxWn{%f zqtWZXj8}gv9M#IL$>mSKKlyO1bfHgF>hFV!!l%oTMjcsqm5-InSw8(4WE6dG?|L6& zLrW4vc&JTdY~~m;QuBgA=(+_XoCR*4=6`yn($qH(^F*SrmqG8980r=1#X=jU{|kza zs@BM@*5V=iQ`LI^0Yw{H)fju$nEodeZ6+HTHe0azxst?!<+-91ZX&`8K}8Al9sovW z*1Am9x^C7Ulzr}I#RC$bdqh1ymizp8({t~s=hV&TCuQsWtm^zd>jIOwc`!ew7vuzGRH^F>6|i^%l4earX5d>9RWl@`M2%CNm;Cd3#EOKqx8o2t*)tiLYX zkZIL$%d;UXs^M;KLv~X`&QwF*W{EcGiOtba2*aW$DLt?w}@pjYbcJux=>1I}_k2^2g*Gfe- z--Uz=v)A_mDVhAGnf&=wfqZ6%3xDVSU`zuI;OB2!&22x{+>|OyX3agPQRAM08khTa>1wL2Or=vB(#^oh7o#-+nqV{@IJ(kP7yYt6?`322%Le{l>uHu1h=du?2${WMI_%tL*ft3kSI&O5)&I&F z_>q z!hsYv_tx^aRhB~mQje6^kc!u^+SOqVfgYLQE+YNa8sn9KH2@5~O5(1xl}~p|478~@ z0~Z0opETg;@iu?~-E!{!LlwC1+^n59?EG%jWqWicdZ;dEXxD*E4+8d$^uFblq5cfk za9-cL;5ND(V97yMP7CFe03QJWMHSk{qEs?~mCAviSQN=?#5I3BvSmEFqVwQ8XSWtn z!BwGiu7X2AKyK!ny2dw#`$nX624kb!=ox_ZzVQ?Wv{QTR?6p3nm3}+w*i^893w~tp zyYbSilV$mnS_AE$kRo6h^iO^zRb z{Z6hY_!?q-T8MX0k5n-^Z2fL@-@DiriF3aYYaIS_G!EKut-AwhV@(6E?K1fS-l0WYW>sT8I2L^Hjh<`O?hU^A%Hzx2 zJN|i_r|l@hfU#cNx-MW@iTYhRz*&X;-rEDikHN60^SbXZc}*)m{SdOV5Q=Mej*(d0 zx(s(rhkyDa;iKI@%}?9SrToux_~^CnI#_%Iaah%HDh zsejkI*Y)G3)$6jA~k`}<_QUOoK!6?K30so*yo&^>erz|nZojL_=jFOda8mafP@Lw&zVKm${7HUtA> z3O0}ci-K8r^H)sU4;}qE{=wECE^2dJfoVMwET0DWa!^oLWI7%wb_CL0kq{0lkoH42 zcFj>}SwFVR;Do5%mXO`nT2|&agR}4Bh+|S-({$pjd+h2S?l0>5#l7!`_vwoklF)~2 zer40vbE)6cUD{%H`qyOJycO0j#r}5OwN5;6FYKm|ChhYvd6=;EM#71Wq}Yv=`x|L( z8yW96u5&js75?0^`IB|x&)wKR+4ukCwEf9@|0iAOi$hZtQ?{GW^>1nH-?ICEAGiH2 zfB*L>_iv@bX0^>G4~MRc-K@XA+1R$({C=~QyUA48V%uzWoY-o*->UP@;OjD|j)kZX zZ4G|g8nW3QKC%5ec6;>3_SpUHX>Qy0%(HFI`|Vlo_S}h`53xJ*_jeYa?JTzKe0{&O zI=J(LyYo|lyB5n`zt8>E#@!g?0>X10XgUljVHe?ANKQh_>RpiHeUvP&daO9&fUo^^ zDeEA9u){tv_WunMfAZ9VL_B7;@7uF%>nVF@Vo!3eCt?*{IRvb;gWs#?emZQ3L2~MYD<#$ zTo0an&OQ6SD}Ty>dMo8$D0;eb4tvcSR)ui+6TUET=iw~F^Y4YFHx(zk3%oWjeSO!G zz9Z|g5%J?=ujsjcMgICdp{vcw3JR^b(3@J(-So~vHov*002V%ar z{-}!JV=@f)nT-3@3}7DC8oF2gUebXBADQ=*gaYN^&4H?U$=}H3@H^6C!JY@Jf0t3ckIlw&P$d)sUOEk zzTdMh8VLnWz;Ty`$Vj<};&&#VJSf`CdsXgB-3+v?qIR#dXTw8rwIEtylHUYa<@T-K}M#_~p;IGCAsE<%$#3L>q*KpQ-ev`VVY;lK9b6bgH_vP*xs3 z<079#gMaS1x|@EtFPEZE4XP~YB#4*Ok%FrCD*bVn!u%UgKYU;OPrxJO&jzlMp7K3& zYa-{Ky7cJ@VYScrva5~3HG{1#pB{~SKXTFX-nKx5i1kj^8~fk1&!$j^+C{uxBZ#4_ zfJ3=w+f_RsdGQX#v7i`vv+oL`4>psbV%e3fdAPN?;e6~ZdE$lF4)>2Vx9>k^6_!R{ zeSlC~FFlzlGCcHvcfL-8e8V_AIWBlO7P%_||G>T_qC?U%)LL!z|6=dX!=e8F$KStZ zUko$$olz>H8ii!ZSh81RP1;5%TaqMeUSpS~5kiy^MOhkawltRPX~<3*LXv7K6_Ppg zet*8--}#;E{PDZab*}4Nzdz1j{NP`ngw$>bq6Q?pE2q{oX2`OtS!Et9K{8w#-eQ1o9WGq!ZwJ1l?kmV?+}g1PD3PERu#F$U|v(Ro*~ zhuMmXTLe3UM*ec`x+7lxX-Pw1{5En{)wz}Ph&&@BwcEDQa>oW!F4r6tFV`uyj9?^Q z@7S)e5TwfO0OY2@)(T^$MwpF2DnAr0mw3>e_jqpzCwR(JpIFrR*Y^nMd*aJBNVI9t zP?AU9f+Us;^$n<1X?ug3A z9LwG3ZTRB-N^dqHd{$Z*`Lr!VRpayB} zr2#7q7ibZkSuqdn+FIIWvcD7d(FTTG$%!$P@5$xmZPRH#^x%q}Z+70g`SvfB0%vx# z%0%B@#5xh8X&x0CJXW*;g=Qt7GN%v-^Rx(2VbkJD7|E&^*>RmhJ1zX6!P(|&*B=($ z#M=2y*S}-k=IEvUa)?&mqZ)NAbU1LhCIK<>HE8@&_^8wIi|- zjgD}rR>{owhqqE6J}ohZD0FfX-8Q>Ziu@KIuP{ABhe)@a{5gsl%y`A!J&r9w*V4}I z7^TphMynrbSw#B!xXs9%$Y>)T%FBr3)dWwT=)Li}6x?%*dekeA$ZVInbmoc8TkOcI z&1lhIAWU>oBdN!UAAfFAztB}U@!+;7g6eMEc~-{WYs(!DD}|sYUqW`X#YKOyV7t#X zo#y^^tV?^aNAX}ZY<_m4HRl0ILhnN0cH`XWA_ zzNj}ydqdcaKHN)-H^_)irBFU8rgfViUJgAAy|wrG@=w7#Y@^2sEF*J?zN{p6#^U20f3EJ0T5#BgC$*kyJK~kBx=0hRfeN(-;&y9r zXjq$mm?#iHr)@q_JkF@yWww7nh*vf@yEbG&;)-RA9E|#5yPiy{=O3aqd&uw2>4|CG zR={Nm%HrB&c5pg0hI9nPh0IK>&*)WmqW*< zW`1{GZ~6KB@{Qk9?|8^y7UHl!FG_NngE9|p6K~;0!XQ@{w0|e4gHTzA={d=+;7+ZU zE2-C~-z%a*x{n+VxScgUzso$N*Rdtw&a>%-eeogv9*3{q9cx}tVUjx@JE%GTn*Lyj z3gxdW416H@cFCL{iq32ae01>b$K&y#!w(N%dvfCK@`)~fD7xiZg}uQCT~rwV z>+Q-#^RUSgekl6c+s~Kd!=@JwUvC_H`{jC9*v!wC>n*?EevL$ha}b8XZIb_lqQmFJ zU;G=2z7-!n|4%6T#LV}suJA>z7a;@JXMW_PB9@LAh7M)TtQMO`EIYmk9epx2(Sm2fkO+F8!SOkd5we8N(7eLbjRN@KQ#^TY3Z5iZfX63H7qh{!>KsUP;#RLzTVlYg=lM%mms-2wIjAB8tHYPj60O=TnN(@Fo z#q{DD*(k%bE6E63)S{dZFE;Q-D{h8KxO=)4YF(`Ks}g#PA!V@*>7O^jf0%$8cb zvilLcq9f0Jz@5SEsP+B!HXtz>Bkyp;Vx`SRxsz20h^e4FOP)I9kxiV9nxZgEu&OOJ zh?#n)Plui$wM{G>+*b&0{h_($VZ@5!6+1ew&g&sc40TJ4;H7|jVBG4DBX^e!rI==c z9bNTdfK+fhj9O(C9s_5awUXMU>bt^CyX))$(k9K%lq5iE-=&Q6-$bFaU-Du)x|vg5 z0nQysn@W!1F)(g-I>89r5v9mtB|G%g76Q5;f*ihAfE1G|XPM3b6_;M{et`VdP4|;^ z`4EE%)2(22Mz!NZT!Tyw|w(SNT8k|3;6lQ zszSN1O0%!pw6DgYuhzYem)Pj;nLcQfR27^wJJc8KSj0#2s5p#>_K~}c!li4{b9g>4efPaVsA49z6SQk zBx1V(aUxBq8@QrQ5FtXu$v{DJztC+EM}mmfL&OO*9)@dO6$UDBP##hiud1Q^qAQfz zmcs&&6xxhC(9$e2vwBqA85qF{2~k1WrK6I;;B5b^xe)N9DTpDa)!G9dT$EY@@Fhkc zl>m5fP_K&;kIo+zu{d@&0gxv_kip=Zob_D}fS~}A+*e5A>+kw`+wumaJwbhSig-FG z#)-e;4-VLadfa$>e_$xt>^6xev<9?M0R?}^nKJfW{>t`i7ASE=e&Xe0KXBXA7H$oY z*VxeR!Pct)ZUKb?>$AC_5Q(-`lqhxt=+=BJ`5C~_2e$^zWdGX!tOC&fulJ*E2m0)O z#~fd`!3eB@A_lgt!JwGBaH@)i#nqHdd4}If;eUX#tBua6vlRZgR zaUO^UgvKWnRK{;#!U%AH1JB3PE$kIM?c_t=T+5vFgIKFw(u;INZu@((#RuHabwHsf zu9!}KvmS1|ggK}M5ur}iElA+9k4ZC~Sn?`@{@|7R*GFrc89z~b-;R0~wTSG%VJL5c z;KEB`Z=|%Q?;ScW%7%!zp4RP{vR|95I?^ogiXHW;At|C?l0DtJ_8O=KLypkR9Vt9< z&&k1sJ4n{RByNC{qJw4+b&oV7br3h0QDtZBxSDTaA*bYhK|A$6CRb(V|y4?!@pOOkd5b46$?fC;G75 zcel?UUa!>`8mA!Q65G`K*VJ(-DFBAWg6$M0hB@FAsNYG$LVGbTSKg*)zkQc&#s6Lm zIV)~P5Ac|kjGL9ZGb{aQR;F%N_QDGk4S;pdD*V!0YL7a|g5n8h6t&Mc^)=)L#_eQ) zpA6=99n+KYjKajkGGpe{QuX8=K;dAMgqL&sE;MmZk@plilC<4w-*ncf#~`!y-)n0( zsjJ81gWey~ekKHGaUZ_duhT;780%784UqG-4L!#Lk&;65CQg+YG=Bmi_Mz##`JM91 zxOSAvd5gMvn#igBH(1t-^NjN>t-aI7Bs|`?8t+$_wKem2YRx!{ey^3p$P-!!cHg-fw$r zOUIs4+i%KS*Og6Fdq^7V>jpfTdUp9<+r7SFsPUn*D!t{)66Nn+fc%cCO+9nAJ>imH z4c7=MfD7DieP4aOJxTh|+3*DNA)mR|43i{W6Q3FO?*?!)z0 zKh3;qdiM3*0apRVFQJzmIo;`M=LVV^e&qY781C4sQL$S0RL}6;!1JcxUpbatyxJMb zPv5>T^;sWObc|U05B)l~c;&s_(<<|2>C!hpw`H!fBYuxu26Q}m2e*TWnmxiTBrC%CX z>OOt>5B*vl_4)dIZL#!g%jU2Djp*02&%gNeYtQfLz%f4S4E|8gr(eH$pMSptQG3@o zF_M0K`n9WKZ7%uX7e4(m-@87aal&tXA^T#*`eNSoFY6x|@q0Ixin9DRK9&?$Y%G^O z`?B$g*|qo2O3j$xpU?FlD){v4_m@9kS*U%R+z!dho8P*3J>C4?e~?eV*yj8Gt`48L z%x7K~pZ@(def{g--<v*5>c8 zJl>0Cys`dyNub3NCTGF0v;w0Drrn_DZW???cAC_RvCIuV?VhTM5(*_K?I>y0D6>W5 zed$M)EDEr~a}X)1cA039g&A|tkddHoL#nn4{H24^Paf;b(P;v_tpXDtE<4_9ISHY| zh}BMJ{Bx+0lhJLu%eXS$PW_F!gNZE0;aj2}fBRLdI}PPbMaYd?z-11=gg3Vf_@P_H zyViDK^jR=VwuzE4Q${-2NGQNFn!r)%A`M-!_NXD_+SmzpzEB}Kz6Kd3qLljq%%$#m z)M9YAnj;6IM2%9=X-zaf?TR3T0KzLoIKq?&F=m>`YI}7bb9xLVSwwHs5yof%5Eyb%IA@tH9fsZpoL2j;S~Tw?fBFRi6U9=;Ifz=7wkN(rNWH)fhcs<`%ugfH}4LOBtG6OZ_=l(KId@MrT<~vh42EsF#>M&7eq;T4A?~igsuu z+GbX)TFFJQ%#=CidT=|mowJG3rBHkI9UdwBvs*O``NaZub&12xqmoKRalWGXJ;`(26!P~7V#_ZZi z{*)!WtEjC_Vicz43E#z`MiYV7N_s?@`*!Pz9+$eR?B`_{4)jgD3azVV{4Mh|v7Y2_ zv8pLCDEGGSn;dDZt7S%%`?^_AP4Fh`>gu1D`(5oj)q_>8ajPou_vxl7ckrj@1fYT$ zebWoN2hsb)?cL*gVh{ic7=Kj}RM`Y(&9JTC{3KuFDFNv?V8?>NJ7BbL=2ykDrf+cj z;L=YsfDIg2d-e3jx7?ZU4ZmN&z^~VvG~Xd=4g#j#v8uNRF+PD&twM3!Xjyf{p9k*G zc>oxT5dj2$9}MAF#=&+z__4fA14`4S_8;&=S~P2Pz)rx&BxY1 z-+pJ`nGzrBFDxMUln4SD{qsBYPWC{_riSP9(qP*`l>QO`8Bikt!v%^B04x61Z?|8_ zb?Y4$z8bPxQ)p-o@0EXQH2@GjpsUWrFV6$+V8{eOr$8|k0Dkmtp8a||xO;BT{&=+4$VV@UwK9)R3eKtsS3x~qN2^@oQK1PdFSJ$PVpi?ODp- z=NEs?jbV5^(!m-CJMo5&5gW3mt;?DIvj0V{HKJ1|_mli*T3OZrulsr!f(=nW0KCAh zJuBAOTp&M_1U!Ksx!dK@8b4C!zSRal5iP%(Vv_ql_)A^Jk>}n}>eSF7r_lU-sz0Pg z60#0zluT%NymO6U>AYBL4ym|cm2_rE)^HzW^E2$(dza5}FI`}|@B0l#>(pPyvyMyG zf16x>J|P%c_dFu?D^NeSqEDjT!$19)S^akU!{2q04gU42`UAxX=Elg|Gv7SUot??a z+FV2pt$Rw|cFWZZw)H~k1C3wRzBG4T z_63im!@H4-2h3Ls7kU^CKO)0_>{$r^>i0Dy-*8~2#!Y%^=7R|l>Y8!`bmP%Lp!xSD z&M)|inRiXrwK|lfY21}1vcUL`$RAzd=i>cGM=y^q!d#quxCB21^p&b-7ygp)U2)*+ zVsNkvOpJ5=P>W7rUSVADTF~;Ak3)_E9_&&7+6!)LM}WiVi_b@WI!ArbmF^u#{mfn4 zyno{N!=-lIiI)H1eOM|md?#qAas|qEO&at6TYF|wOE^zL-*Q|@lt>U|LpK=sRw9&t znJfrOc#U4?0eI*YJR}=`jR9L{z^(yqG=IE?c1Z9e1Gf?-JPXa=<9M+IKTH74{O5NP1Xn-c&`9AHfsxP0MoY_^i1KYGI-ZcdNO;o_4Saq0lnU+QwQ zxz~d`u9uPCSMS80-+b_@OJWIYv1&9 zIy-7{6O(XV>N|j^KuH{k7z?tUlDfwqu0%Gy@a+cghiAYY{-)q4nez~F62zmMAV!A# z%C@TQ*ePT$jS?@~2d(1D7p-jY^@$gJZ{CgbY9z`ypEH3ogsPMIeEPedHoZ411Iw$N94RU z2oh|dnuI^WPTO3v@|n1UC;f94qQIj-2iNg$R0&nK=_X3jJ{qULOx*t>o&Wt%{_4s6 zUm^KxIr$q6`I{5@TkH9N3ux zWpoXA+O?qY&upQ0<0Ie6M}8ZR{AG#*bc+LfAIyAXY(I(RQ28CbFL11qB-{YG-2}u8UujdGbK_Ns-HwN1;zj z?mh|Vl{dn|Lg~2OLAV>>op+f)u0KAQXoevn`v_vI84*DG) z2i;DBV^|O|e`qPE#9K8>kU|~_DYIh6JR%EdaqnGRE=T7wu}w_e6jMk~?zQc`YC4_+ zq9iE5ur7hWzy3D~ecplpaD{Cqz`T{7`WMLtSMa_PRggnr!jzwyFr0{g zup7Fy?Eu2jnjlDm_pwp?*`;Uy)YA2uYECuPg*8onlQ+5v4Q2{lQX^nM)GroBx~cT} zMro^V*}HW{r!H}ASe;Agz|PKb{Ft;eCqjs=-23O#Ve(N7ZqPlt`=D? zqU?T{zse-}1I4&xX7dA+jQA z9skg;3_z(RGdeWUL*K=FH=Va{8jPRc9{_dE(p1kRv(B__Z%RLYD zdnW{Xi^6+LaGmtL-m>Xlq;GG9Twj%b6H~vBPrqiGdUc+3dg&|FZ}zc#I~(QtJ5Kjw zPxW=?_4npI>E3+M+<)JyvVW+o|CM^-YyDT_d9R@EJ(JU~W~LvF=y$)(%hrUwmI{P7Zude!XSWwXyjcdhZoPuo4!*EiV()G9yMnl=`{J~ILZ=Q^2hg(OK#Yr*C}XZ?S&gM)JY9ji0h^M?DEFF!uL%BC&!fum4By=uZ)t^ zSk1i8Q-Xy1usZ&GPm%ejX_PH=H08d4a1o)b!ms4*QZ-bA0Q-;&CsE#cnG$x85#D4( zrvX6?fGH7>6sqtEe}n>X8@2_g5sW>JVz;d_(E`FGD z#`$uha1*7{SP#!(@CSs;#J5E7{P{aNe?gmo8j~xEVi`z(7KRU!*=HbH98@S%;1>nG=di#TB}lnHe)&E!l!(hKhxE;? ztZ-KbTiRhX)DM3ghba(CL3a``C=Qpv+xIQcfPkf7=Qjj`Szms!COZWYnF<&$7AECO zMbELrmrH;)mXI3o977crp~5(T5ZNEVQUF&D>vHgdHWy#ukAEP9`T?R)l&SP`fF*-e zJ$~ZT-4A;;&@%bUY+hm$57^Ez?LMSL9$G?*5|qWRQ*jdf-xfOZ2YI3@?Q1CToNu>( zQ3boV4nL2WVhQ|C;o=e04J=h~n)|*96jGr8>EOL$Lwq!0?Sl{s!zIWuev`>rmlVIM zx3+QFKVcBW4;F^T%U=vq!f}AwY)+f!E3yKyc_4w{|8z+y?c*t1sJ$Zmh0Kh!?VrT3 z_2?(|l2?FFmnlF2W7xm|wPgv?_D;M&sj;q{`u6o)wDL+>W(m>uy;-Wf!40^y-Mq!^ z|2zHCx-`>a`9`WqN<@1%+2eB7Hk&)@u5+C~-tF~Q!^k?Fai_&-Y6HQxlH8#WWejsiR|8l?z%FhuX5g6#R@4TryKZ7JMpc~(hQN# zy|4gRg^U>Zm9LU!xs3M%_xX<*mGM@zxLX)8ycM@v%(;R`0jsq&FwO3AJY}cg2#xLT zGtd8_U#Hjn=U%2Lntw^FKAwVa!NzT|T~d%X_lz^GYAMjN72mZQHe*CzE1~DEK_WrE zX(_6q;5)`I%d}afz_{S@ahYO^n-`?bYzp7VgxS<%`Hw5I!7H>bDWc|-=b_h}dX#9i zmEIn$6gX5sBfdzQpGM;dcWNgtR$YjBd)uw@h~$6KufZc2EpMWV&X#HcTtVwLtFidO z-6y-h1WkIEJ#F($Q4dPh7*vk0r@6)`gqhCfC(jq|dm8yAed)f_1Dke*W13?A8qgep ziYTP9g)!di%lb=bs^4a!vGv~7?wXhE&G>ev#VLrq*I^2ghYl)grK-mVmTK5p?s`~b zXT9%b%?^FuH~TcGb|_eijp?Z9{;Wf|prB*dXCV`$5I9W1IVmSbyEO~YUq#k$7PstM z--s6tYhy0~Hs24W7ee%gaQDx+zy_fCyMsA^RK3wf#F>McOVwe&;62BO9X?SW7~?aO zWc|;xZ6GR~%0;-#frrn|hJAf`@LYuXZE8=X5St5;WzQlLU}6?Tnn)Bq!C_nN`!88x zK}PkU+Tuxz!sIfe_*pnZ-m=n3+2Zqinen&RTFyR)Ulq~Pnp?boRMTor(Ez<6Nl8?= zX|#=gwTcK|KCEqVMv->93W#=El{lTMUb23{AmB?7ua?=bwF<+^NU7Y0V?8;B7Qc5i z@#&YD-se0qcDsTf$<{PYYQG%||4h~rCR8+s6_FQ<>-SSQg4^&=2)tm~j`wpwIM9ry z7mLL7)tUB1SpBt^_s^|bnA~z=pS(79Zhu>!x%Gqn3G#thj2pqPUc=tR5c|zdvS5|* zyzuCkiKk*(3Pi#E7;nx634=DUJv&S%gb|Q9c|-3@L(@x>3x~C^uD>QP7aPQ2L76&; z@nB^q%$w#ME^*{WtMmQ2WofQ(Bb-uRKB@Dp(EYi$@a#}oUHAz-Q2i(Sn zAd(8)2uKa2?ka;30=DB{z3={ed;hJI&0l%j1270(C>kHMvJHK@vUBgsegVH^B5jFk z!DDIQgP4Wl!Q}WIn){{NxODk<cCqy%BI!m5Kj-$apV4k|3p(by*j;cn)_cP!$@>Hn zM938#g>tcv63_NTC@?{k6SwnT{Z5=~LhEZ~yM_e0a^=H`MpDE6u^<0N!_>HGNc1{h zPyTksX^e?X6h~A_)ArWMn-->9O4hfM`PO8RjH}>w$>_79FSofVMHfSk%mi$gAsdl0 zPg)qHvNB{K56v{$fItV;ZwHTJAz#~Y)Gz2wu2LEZ&%2(BOn8~4DEz@$vr1GpTRBew zmsoRb|3EZob3z<_@$fro=`%mgTo!!Ex`wyY{D-RZWm}66|HdeXULd)ivyaY!t{%PV zH2gsFrHUT@=3u5LtB}<8ic&&{>*Fq{wZ8YXa%{A_^W~G|(%LcWlTmh(jzstn!&Rib zRrzl3aIqo6o060c-z{ZdvO2^N;k60>%!nGIIGjP|NcprRNYn z&M##OZ>5fuT|DCBGScW&S2t3AIo9X&g6@gN(UFROi@A*_S`=yvB3?NhpG6%H9vFmO z{MhXZX>#tA>C%oYKgWZ+&pk@n+UcNV>w8|f=@mAaDp?);{*o~>=}b&rWfuSb^EVf- zMz)3?9q(4UzuUf7)kJzR+6`gKh9uTAN>v^MxC$Vq&G-@2sNVR_;UTOWJZ*c44idMM zHPKK*C>V#w?>Mga7)eNSj`-PO_ywd$IcyWIT8rOh_TvpK`L~#eaM`3O1DfK_f_~FV zgc`Tj&k~DL)PmnF6hUr@+x*s+TRSJX`_v2A^MMitsScv{r#HP1>rx-BcX7z)XH&*8 zFXR?TKD=+yVOxcOQ?U7t3!m(TlHV&5ok^1|*8w;egov$iE#Mba3Z10(V^lf}WHfA3 zLWt5!ppoG>9s~VZ$O&@d?|lVP5_H_R2!g3+JMOSMkm}z6d2uusp}+up4Tumt^XQ=$ zJ$cLPtsSBtNqLr69rOJk7JFQMOejOyz6GWR5sm0#>J$ZR5K^_wGMJZfgTfC)H)Lk8mVm! zqIp6I(uNd9Teyo+tnuX^&Ag?ThIau7QL9xnla5Z*+vaKfL8=hDL^C|CKOyccJEhgj zGISt)q&?b+Ndusa9;oc+xPPS^fal2P}}pRL~pvgT0LbBFr0L=<9MT_w5MU5#Fk62g2h-gdUtfB#`N*irGl z!YHL9+D_iPA}(UZcIY;$h$ciN_d&~b!l-4mJ(rHUi{c@S0jZ=j*-ed2dOqEH3qSN& zNy4q$_1nX8mHGRnIW1>cXdzm`>j46dFS;e3acHgNv5!ZU0&MHJ1{%#Rxaq_n6dp|z(b*4~&)`pn5r4GkHn*o=6&658S#bEP zAz=Aort8u1M2i#{x$V49Dk1pZ&Qmmx>6BBn%ze=igEhp8HPQftL`c&#$qz!vFC2$z zVh#b(47yppf^Jnh%>O_qxrD%xiq1)ZN#QpE!Om>KoepMhY~Wf={3JUWPSDZkKC;z| zxh}OYm8GLKU9at1e@7Smt&2F4j`1oo^XV|-Nx4E2>4(Qy(cT@|#tflt)?n^8nN-pN z_3h?L2hazmI!}`0LpX6}XlU=?k+Wi^9gxoAo}0=!%2OCvv;}w_f^zJyKBd%qGQcbm zG<(IcxWzw$@J&NeVw9JgEL>hhmq3z8X|qa-pS?-=)#nVV$W1W5G5hdsn&~DD<-b-D z#*oCYjk0lw-CWSRLs*IuUH=W=o~@;81srtKR+CM0W9-0F;JNGZ@;P@^)MHiEwhK|Z z7F@NCHRQCTTh=PmCAy!RuAx?4_QY(WVpk2~n){PN_lcg;%%R_bTUh%zTkrG|7GMGV z6J@WPz)oj5pK*9aJ0nO_OIE6uhh$kl-^3Tbk*c^!yXlTPVgWw(B^WS!f7=32vJu{m zDI%1ttxxK{G|0^%BX32SNz-aL*WwHcI$*vRpaY;pjN@B5eM8ClFE-;@ z({xQ@L27+``?RpW4%j3R3->qo0&NVX1_f+EP3~*0e&j;FL9W3Ikh83JmPAh4;r`F^ZOYqZE(MrdU^$=~vFMo)U_ z@jY-IF%H1i6BUeA6#B{bOB-}ofgc%nOrb_WRR%?4=-3gmwYd(p`N1`d>akhwB&p}{gBOXTr648)PQ+j9qrW!2( zoq9^GfsRt3vd0lOhu7LGnDaE^n6**%202RYw0Dug0UY; z16c$SF*-ztvvhpkqKRj^Qw5$t6HL6KFn9mTb+=C3?d=xIuE1KS5E(HqRh4v@MIUS8 zRaf>GjKCh01BID3iTviQejcf$ulUb6{hI9U+Vo#?cM`pskFxIwa|UkQcD@@jp_wqT zoHtDI z8@LAPxy?Tih`UZam11FG84B+7M4j*iWE@omEM6&Omx&N&syd?QV$(j@HyjSXt0n-^ z8b<^&k}Vqrf|ru^x}E*7gM5sXz{o~<0X+eCvo4)_J9;G6{z-y6q0APN1OsIX9FBO; z+AF8C-+q4k&O@9hKLZ?gmKHuxSs!&W8_&16;Y=2mMcyR`N#uee9M+iEL&{{r_AvRA z#^|>;QHG{xLcdW*`A;Zs5i-d!2-P=!-r(C>WZZ0m5)L{gMdPWdAfy1J$Kp=sYbPaY zjgPR5_e{SzWEB(4jfoO~9Cwaa5KmIU>^s19+H;8JLyGtO8&5!2YFR^Wa8M|Ju*y48 zWhO>7)m~bOvm~n`=?nL&uR}7Rv7etGZ_e4%lDAhI7o8n@vL1>Lt{U#0jU1m{U%OAC z&tg8B+nc^DSWVn61QDa^%X+>fFjRNNB~*eC)kkwyS411wBGo2(v25dH&jEpZ1y~u} z;&e+m^-W@^!$#VjTY?b&Uhsukq#GscWPN<+yi4sMKzoy5na%h8L@#HwQNJ1ObpHzj zz$4uF+Prd;M4A|WoaJ}z=8&W9cwtOMsE=%Avf=fs;qzcti(a#0EicGWXJ za>+K|4)`4aq8aX4=npaz?a-O-V(DrEb)E@HI;lqpbh_wI{m?lNil8%h-?*SSq2Wa; z7iu@Gi55gyR=ti+MF`^psrP%mj$QUc__xfSni4#x7ITiEEu|7u@M-TcN}Xjk+=c}| z2EM9f(k$!UQ%mNmCQ{-O;I0;NPE@Gucnpd4?vPzA$rGMv;p5!^UAm1vVgc27|I8;E zVnsiQegm8GA2hb8k94kA%G@4P0zbcmIKDYQ1E*-sf z$vr*z(|fQ56a0~qn;@)#?7r>OSm(oQ9`)H1^0~M`)|x<}Gt3^ALi7{hiIjsLQ*dkQ zr=uLW4pp??-RFi$NyNH|!Gon3B|#xi@QT>iD=VYMa^^|jorl);qYak)8tKS{+gFCf z^Hn_77Blu-9c*9C`Pp9{$pVJZ#VfxODwYqB?H?mOp^?s~hJrtY4MGxiz#*{%oAxl0 z_18pnNwiUmR4_Ufk>~)seBgb$xAf(2JNZA^{Lp#sXRFC>v*ArGH31ORS%GB4Z5Lic ziO>@=4kVhk!Su699I($Qn4RT(MZ!GbJ&SbJCO~KI9rBsv+um=HL=dgwo<^2>zh<)K z_kC|x+LsN4@oGSS450EtlGwW*Z>R7>>*5b>L!n#yuO7_$ap+m1PVom0NZpE)hK6sh*U-ihYTSOBlUvgDZ4^qUG zUyrPM*q256p9*uso~J>@e)QMI%E&igoZmk_Ye zll4^#ec1>26}@kjQ*{OzDY7TjkGT$%*q5Gt)p*UmHhY^MpfT`H$KzQG+5cZ=$cjD~ zBRD~mo+8c%i2uV3Kd}FbM24L{2|-;|HUAGY)Glt~A?9D}{#xL?DLwbP#i0G;CH~hh zE&RgVT5QsF@=SQ9&g8-_4hWYB&JIT8&AnFjdkJCC2xcm?F?PaZ(bC1-_TzZL2j>4W z!}HeQw-2uq!R90H64dLK=8}YjQP4P1SEuTSJhuq1 zyh~TgEk4{2{}nQPLugoAM(v6+NXzHfBTKBg4dRoYFT-b94>Fv*Rn6vlel60of|frP zqafI<`;0r@%MTn}MPTT%y2(*Tf;%r{xvZww%LskPH!86rcj+c(M?nnDt-M2`X#u?> zgX3Mg&7b-YGxRb-NI3X>Hhj}7^Zzr$|8JQgfMWpsj#HZ#2SnR&AOaTq5xNu@PHY0U zORDwOQ7%n-&3?>ij*%kSROb=j#c+%350yK67%Lj+Tb3LOiQ|#BZDs5!P>3X zP4m_*CCZ>7SSvuoC-g_|Xfm~`(~BUqW+c;;0O{!L83+nUr>Q0Im$}Z-jGebjYXx6y zpYP$lzTrfI1A-++$|SUp6bz|A+}S$nxo6uEA~ayr9J)%Sh>0C3fF!w#dyt~>1g{6; z5j)LbaZy+zDb|H)u<()O%R=eB1?+&{iv`WI={wIq^N-PG|R*0|NXpTctcBp)&C{f$!AGH@vo_ zQo(MTY}J#IvR)c`Pv+xGAATC+8Q|k?@mADM_SkIiry_9%7+8FY2G7v09*7;2!`vQS zY4mA=eXO`XfjAbe!f8}vj|RV47zmIUmRdf2xoN}lo%nFNY)`_|aG$w>pa(=Nh#(W> zUp*c(-G=#7Ye@i^9OQxER&=J5$u9jp*Q!9I5sMjjpnp~{tiGMN#Y`~a7v^&7J5&x= z-n8$Z6K|@2NxD&)>}K;`daAxtr=>FWYX5urKlS{=TqQl)W?o6Qp;MC@CAc@VNKkCSnqp9ZO4=QBeEG7!b~80lYB zrAk}{=E4cU+WKn{2?C=w!hrLkrYpx*^FHNCd(^wh6$3P~^4kpkDQds}PGH+@*PFD! zZPNFcoy8`9z3k_q5LigH(ex(XL^cM%Q6MmM`Gjd#$l%!v{g7h?xEuAD-FG@`av|iH z8}n|&9~O00S@%|M5YP99AFIt3=1(;dK{lEL!RwNN50f$j^#lDySpF%>QS9quqd#&X zoR}Nx1^sXWx%tDMuc6x+iboJ`#b_Am(kGOkI?Yzv)%`p_ z<(iWyd5OQ}5fx000`VYlm;`wrLWahQ0`lu@8iNN33LA$(+$);;zEtnSe_NW>B7y&GVOzL!tiiKip|Rh z-tGV3)S0;1dXrFc!EYrI7mq$^r{ zE!wK<#uAA(%JH*sj;srcTpNplR$_+Z#q4yz$z2y+4~G4f09=BjMN6WOj9qpu@pkGI zln%bULbzPhX>BES?P1n+7*9CfTq9n+BqA>!s5%i0VS-bSJm@EGK)WI)okH@nuL5jT z+r@CjG5aK`tC<=?vftzA*-=1uXu2~9Z;ddx?!&nljV42z%mZQmH|{RMKEx-~cMEao zw4SUOVs}Eek!tFdpX=Zb*%v&2;ZfO_4G#hd{QT%rY?K)^?E_5Uae&G7 zfR|(Vwyd~*sapfi(#?xLz5af}&#n`nMd(rm?;i9FSPUwNkEUJ}^kiLow$mR+zxq8c z0eBqr)+zncL4SWkjHa+_ant;ei*UlITHd;2jf}o*+9D#UG!AE3Zg)RW6;$PoMK&2%(emvun zDBVg(GWAM1QS8r85bfpS?{V>N|DAG)V58tn^fe-o3L?dNE(l)9%KV1P>A6;oMR7IfKKZ-T2!+t z9ut^3QUi04J!~k?AI@XtIEuC3PyoPQe$)#|=ccErzq3+#6{hNh{8w(953(2}g#x6xhp+%-Qi_Gp8 z*)$d%ds0N1EVA7wvU7Rp5c<&m?n9?151ktyo}GM1?R|KDIcqxZSz$oP6eXZ~)-I5qALW6q$5cI+ryhM#R3rXE5 zq01bzgI-APRS_GdWZr#zxAAe_N!jF+ij5~snbInLPtK*ZF0{1% zZfRpPrvIvU3Gc-EA;8w-KQH?6?lf#6NQb z0PGx7m|2o73=v}C-*W(!B?6Wa*~??YLNKkplSXu`G9_pjf8pTm9iCz-@}W&KD2jaXH-b1f{5=8c zuJ#nmR^*WyN-C8t!Uzf+&n=G7nWP5pUEp;wZf}!}Fs1QQA3=^NBQsY?6nH93LDmh{ zmk8H5Ry82M0ak%>@9CAge=4e7{mN#a75mFKS`*@-5E)Xv0k`&>?j9LxU3i!@Z4NKD ztr0g1G4pv^AJ#m=o01ZtLk)84J(`pfo>Wi-s_ROnF=T}!Nk@-K^ zd-HH8|G)qHJZGO_X3nwi#=cfV3Pr}ggeaj!jZ&7PA)(dSN5~{eLSrerhJ;i;LnW1E zL{VA>WlJ@rven$<^SQp?>$;EozV72X?&Yuh_qSvIa4_fje!pJN=i~9n#^RCPnOk;Q zt=(-8MG(JuxTFRuMj_Z5T-1k=A)f3&tB<^o%4Vg zHQ$VH*n<}IzUu?7b^#=I@7g(FVlP+3AN|A^*X2Ej)Nu0x)C*}zJgiCZkuOyU!}aOuHKFp%Q~#dBa7!wRzyqbZs1mu}+j@X#;)maJ1kd z!M`0xf9cBx0t!e(2;NiOExlsu=F#!n&@cRpf&>fH=0=1|fLE(wSZI()>FyDreCdy^ z1gPefuJvkub$dJAs9=hrS=~&R6|3*V>|k7Xz~MRIbqDZJi8NyP{1YFX`aDqi8-De- zgcPN-UR-Sb7gHr3;_TaAB~CxjA2j5>Ov%=k;P!}f9NlV$e0d1b93E~B8ZnR;zkodt zBrazl3*J2!knynzuhBxPXvGXSo>5liy;S85n!ft z!UNv30(^M)^r@kl6b*zGs7UkE40-SUiow=g@Pr~sgVGBnb`!#ZU*dyi-F+{TK+_B} zI6-Cl?7-Sc?WPwmL*`#VczmV>X+uVz@x^|X2P4UnFMKI4__Hu=Hta2}=)d!x?-!fPIP&xlJG0sV$J95k$6bmy(bv%&&1DRw6bFJ{0W z>njq0jcEg_9`E*hgXjNzfMzj0ehFQ$l#CvQM5aN zV({)b-T#_D>#8Bv5@GPIHSYGt&%o@3Z@K;;fdzc(Aa0rY*6O(i@(BCNf<=c4+^ZTD z+QHvn1y?*_D;xoS+iYIj?G*@is&-b0Yx*rVSKiikXEsQVGOL*>CqYBT7mKU0=L|xR z$t`~->PfV(|7%u_7N%G5J%1LI?Gy`fjV49%i^7lGEVvzB%_G~x z`S#83Yi1&`&C}auz1OMXIdYrk)zDTiq8?-ZV>Ibf;BqIVQ`-0Trg@Lf-SrCVYyP7F z9n?Q9-qu)Si%qDOPZ+WO*J$$B&7{8=%Gx{)*`&nQzekhJ;VF41OvnmZ2Q+2;@HXWyA z#|&Dqwu3**$=G_`{Xxrayo_1EE{%2@YcaL^`NBHDukpwC$^NP*<{VIBvj}H(hWzlt zB^dYMtq;9_{Uv;>;KYqr+P*SYfN&pDgP&{rJ;6_a=1f^gg@6&1n1mOlT_G?A*b_-w zZ9unMzhaQ0Fhx|v`XOsOgleASsHg!wDHkBg;W^02kb|CxNjwT#728~u4Zu39p~X}i zM8*&qOz=mM*yd?os(I;9F+^O^xN&(^Y~x0vYJ<2VL28eaBx82H&!u7OamC@6)mh#~HS?3(q zpDtHx+$djCdb2Vl_U8GYJEDD_=h!`wI{n(76cWQFr}tuI`>q&EPd{oepA=n^R-XJzjqlAx_=FxWKm`J9V?ZN{EIU6Bc8-%;KWVb7r#E(7j|+y=-3t> z{}fzQ!(5ay=@m7gd(T)g0gq6n%+mr5aT5p*y8eme@(g(kNbaDCCZT> zfDK<%5tw2?IOh#LHG0I_C{p6C_R*3xtFN;gzYJFQhEfK!#?T+@4|n?c_l>0c!QpfOtL zroK@!i#B{y?zD4HeC?C`aoY*yG-sEnpKH=katCG+mGO;8YKp~2RjUV%b{%Rj(1P3A z>#!lbtU`1VTXWnheV5B!<2s5A~I;Eb9^VE4QWRL@?fs(MXG__k^L{^Nwp0{okz=5cT7>c zx^Kg8Yj7>sD{MUHV0?7ZE&#pqQ&L*cj8kpW^1BKfCnSy|EtNc_zqSLr!Ais=Q zjI~yaEIA^F^UfbYQhJHPtnAy( z_8Ecjvh6?WZr#A|`m}jNXBRk0uN)5ef^gpLHOA8SBGtOUcL@!B>4MO8P;bnhnKzR?MK{+^A)%e>X9J|P~R-PMaISr9zXUL2VuGT=*$9Ui; zvoL0V$dKuFk9LX-Aqg2c0!(sAYsoe`5C!EZ&L*TmRMjOa!+yXTxIl$_9_;$~r_0RP zBl4P=hUvY_?wn^A`vYUHb$$A6arJoNm`1E$NZXmbyU&B%d#~(~OEkInTIl56z^0rW zzAGZCIf!-MF8oy;cv~yG$6CO}+6XeOW%GE+?k2^uXD1yD-t?uPYbe!l3wGKg;)>Op z+%&D3at~bU&qv)Uvvr&HytaFweC>(KZ8g*0x0ha4UAR+q2>*H4aLcRan|ErD6-?U@ zmk@suHtt!;e^E_pL1-+X>n|6~9NK*EHScg^!*$CqK|7Y;yy}U%)07b!cI4hL|BtAg z?)H^_<@DQechi=^vtOgChTqMcYq~$?b}VLCgf6Q!ZT(gA?cBujhn3`C9u5>i{1r0d z(b^-vU%LdDBK`=JY4&I!GoRYI z-O`9`oy?Q58y&vKBM|?C6U2W@UD+n`dYQx9{?DCxt6NVqkA%mG()zw^kuz^~>-q1a z#edm)US%b?5wKg?n4-9wqN7CuPT8fQ{GYAoruxJkW$1%5S>tG({wm+w|AwnX?6qz@ z+9t8#!Y+f4*44vJ^s#3JTbpYAuBy#VubBjsjgBOc-zxtDSCKSu4=$=3i z_s`a|>uUMqUQ4Vu>u5&A#Ol#vU$?^g$+TkUYhiyMEt-$_o>4xv;aA%&Ev<4i9e=+?1Xp>OCcLufZ>MQtZDCQ)-}CeP?B8Ck>wGvd z#w=-jB(ekXrMuhvgJ|m+L=Gbc(X7S&btRr@$7r@$!@ny34Oe02B5^MC{Se)^9UHp= zGnSwHH(X`cgTvNvTq4w=U7k4mJk{`TxJv!}Riw%(;DF{esjNpCu%G3t&b$hi{Tri6 za-#Lhj-pGxhbs<4fY)NQ6R>_*qDWrm}P2&YIZ!=kMxTj5Ud>A>WW z>5B4J6aA7KH&>l`r-YIHZpdAX_5j?YO3~3me_qN9nE^fApWyrQb6scq?pO8C|LjOG zd8^wF-X8cLz*VxISM8gB@!1+1BMwVK{rI22Rb~XW7f!sbi^pn0aq%ku6R(!v_uBi? z{{yd9hDqOn|MY7816O&l;dR9S4z6N45Gh>qZ@9|7DE|3>!&UaLcmEe$W^jx@<*bjW0jlfWkx^;9#w&$?$c#pqPpv(OAL`p}z10 zZN|G+m{?C%h2qc@R<(CaguRLaD2XaUi#Xzh8%{PVLN!n($eO^_w9x@y18SW`_)y;j zdE0}aPPHejsE;A_iW~2<`+FYp*@fE!Q0n%h>f*v&b#aO(Gxlg1OjQuC%%s58s*CVp zKmc+dEm7%cQ94h`2_8WcqBX@!uSBt626fK7`1mKbS`1jOSCa!IYv@Lz~$6ilfmNR)U|x{0)j$Pki&!REN?cl+d@g*kL`^ zK8BIHo%2vEAP6Mpx8aXUx#`r%xna%P2*!*Nt41D*Bxiinw>#v>G&9B9Bp$2a!Pxrc zc+z$c|10)C;uSq;PI@bz=Ue3~q_Ho63leR%>sSvZ=PF*dF8wf(X4q&rNTKql8&cJR z>@*!{PFo6!@K#b7`AgH+Zp^*RS2cSmZ^HvLhx}1KD^)>`r?27?`CId8y3(CeZ}M%5 zr2K=Zl9p`mMj_!*jc0!G-aQ5^v>{k2BWPEU+xliyVUUu!*F!;lmTUo7*Q5cJ`@!UA`nbC@`{<)Zab80!9w9h(MU_eAG}TN+YqEFX~3>T=eY z^@3Y2mIf*7SESl>-Rpcb>5tKxYEtxOL+ewETg{t6Y)^V|^vG0lfcg%?_S{*q_o<1n zs)bG`hw~_|R|2M2?owVUL-ha0TI;#^tXN7*at-xUoc7{#nzjq_02{M`i&CSW2ar+$ zojeZ_Tt%uABl*yEViPe59!e@H_|+BY)_u2^L1pKfTn?Cfq4^berCOZE2v~{Z6G%_q6xDrI(xwcd7&3KJOl0 zdez)>r#8C#^Se0m zv6+h&3BeRs_?T_Y?Xo?BqB;}Fn9|1~ya+fZZ35RNzh&GUoWTMBz=b1KO#r9H|I=4+MxhEpv zB^#?AhP}?N%LrvYl-0Axsr@WUg-O{d&#|6tVfaUuaQH|iL4=(GBf(rs&Btw<_nJl! zK3A!a?0J*CF8z=c60%WAq?%iAr^m1B9FvKa!J&$|$x?z9H5?06JP$<&U>#&5Z!xXO zJm6;kQy3I;a#CZCAw5~}4eA4);^+Ea{@SQ6TzrD{5E8S-#$+<1o%_~rnlLavhYZ`s_mHCJ{RV0fM{z9>IjJ80;IDb zaPAi|@e0&rDk=K785zC~fbGk1QRl{(h`9o|sK*I=-xIF~&m8l>+sB;n6+{$!;O}@OW|DEE zWI{2;A;rB;_QXWRU?})NwBAC<6``w#B5&rKX#CEhWN_a^PlE)Nu~ejCazI z#Y|s_LV6-HI%Cp&5o8KPWWe`wm;oI4UI?kiim}Pn@)e-{n(@h0^!){5lp}hSo8(Kw z?9^e%P?Cy8G()zSFI#Ms%uwK`53|z!bP3xg6@NIM7V`(C>0-+Q@o)%T$soRlV4~Xd zM<6CPg;))tKT-*yv!dTbJQ2DumWxMqZZ+Z`e;<>Q7$auv3EET8o~(E?2)P-sl_JA8 z18J91;P|WO;eAm|CTlZhs#$I506I}fg zpl+UKl&X{K6OAYWxIviXCnF%f*h>foQKGe2Kr)%&O1T_K-qW*?Se*zC4F*JJWspc< z6N9*)3K`L3d`bzubo*X5!KM_uz(O2~hUsy^aPA3|=M@PI%ZLOEprQ;}o~gnJ=&xUa zDbB0|3xWPGql(QSh{D>;GLT`xjzY-$9}5CljMH}TQ`o$syV@mFv3N%I9U2A|g1N#^ znsdx1ldp}k5I871mJP@;PR3~Nvg<@d1zvtr4yk$MREr)ImDsW7%W6~t7trLg2{5q0 zl`N-2#k{5xXk~x^;(V(JE zF9L=h*JsT@E%FT!<|SByUF@IqlAq+SaI+PH-`a(*GruNk@k_WA<;uc8-T)z5k}tGd z2}csmZeKHqCY6M9OBc92$!T87TxYQmD4>y{UJmiKP=L(?un#M6=1Z4{^(6OtBWjwN zo?KX=W2wV*6g?U`impV=79JOUw|!uz%+>Vdkq<~W_Hu6QZPD5{UFeN*S7R|Q9%Agt zy-9p_bCgmftxwp%DYC;Lw{J*pfij7+MROkTyDkN~EQX>{IjpXD&3U3L8CqtXh8Lks z6)IsxCDBtgMt!-eT$rpgYt6?BRCuBMRS3r^y%=0+%t{afRia7F&Syx)%F4aGv$tKU zB6ZkhdRI`oa)HxTN8a3&qa^v#9TZ2zMj?3AZde)m5_%SRxQN`R1JwrBB<0nl;;uZ_ zgOL2ol?;xhW5u^6;v69EkRzc$-NzP|0eURvqaVzpw4L9c6-L?k%;?ohP*}g-oZH@V zOO1;R;NQlxvg#`9;LkOrsfoSnBFm|#)udF`q)gYttO=%@Af3VbXkTDdADX5Th-SAnjpEe> zHVQw8ALL=hZ865Y{p%68tgArzAH*xpCrLoG{pm`>AT8%T;Em-dEE)8qph1H>JE}DB zK>AA>JC>SvM=?E_fjmaTyd>iyHbp0xU-PA0j%8f4*Tpq;CJs&(#zN^==-5aAG>vw8 z@01w=p{pq=ca6&}g>}Wcye1W~+s7A>iGm9Yocgip<6Lg?mcT1;@Jhy;3&sr+(f~Yw zjM~hKzqJR!)PzDOO7KrBlFb`XZ6I_Pe(AO7!E^UU6+$XRtLjp4=-y zUbZGQvB_K(-oOK3af?X+n8-@@j}{9j6Z0t0lpOP%Lexj9HgXm_#Ux&5HS4q;V#%eJ z$3TRqOcOyw%E{D1AFsVoD!UUE!0Gt*6lF|-G@vv+EpQ!>ioDuTKisw{9^7PIv-2ik zBP>3*fpZIH1k-{Pw76h=B1|XwJrZH`Zs1$QLF6wEy0vtic02C6`Omm!SIjuSG# z=haa?77lLWE(8en!?`nL?(mvNXK-87m;p}5mY@h3Qe{e6ms)MDDR^unC|K#ig1r>A zGR73}>KdeI1cHXpA0LB^i=>FgLxYOlqgR2gEl=Mn=^tC_{V*$M?+dAy_y7rdpIx|e=SwWcpq0`WOe|HaV+7c>l_zt9cUT_?=aXXqK@Ec-Eo za+}`u{~NBd&y#1Q)ql)7&B;%8V>smIHgF;ibUr1&H58&|onBkif}0&cw!QS~2Hjc6 zb>Bu6wH)syaU}Nf+_GkLRGB&)9;@{q1gA9dUOJ9WB(1toa4^igET18FNqw%x@SrB@2Gc0$+F_}d>JIA3Iog`FjFUDhQk z9FIi)WMGe{-cc_fF$1$^E*g}ZI{IktssGe`b!5A1!z9f4cS{;|uQY~|h7`V4sqK0W!ihDGQbX8qt7R_2odlrq0bhNBY^Ek?Ku2!is;JWt z{sl;P3S16)?>E0!$Pp6?S>o5oPzS}V474Y*SR z)RT^N6JC4Yh3I(E<#HH_)9VFcB|rR`&X=B2nteA7T&ZbI`n+s@2p; zkLVz?AGvK#`x|2DE4rMk`UlkYexS10`tA37J0%ZHE<;(`dJca5!<}dW_Al>bFA#s- z5n4AZb!=Ad)~tQstTX+Wh*M-FP*=K)wAY92qM<{nP|Qyd-YU?4?75ZYXmAKok3^_# z$6aEha>Bla#eG})Lq5etSRDe*DR6c2OLfR=J!|l45l9yh^J%*yrBUC7G`uVMr4NJf ziUGp`NC8<~Lc}cs2owO$CyQHNL|LoiR3Kjw3rDs^UgQ)!#6APe5>dBLxRF&H@uuz+R^bBTH5>leP{p2R)G=}n+5@u zFKu76amqid50+wmjYb`ysXY-V$x)cB1A!d~F{5@9;Zs6aun>?r%mHshw(RjQo&&)D* z0MKytbd8CRDG#=`^_D*=eV=7(b^wV_6M6!c_KI9KVfyu`*mb(0=Qr7mjC0d#aKj>oI;KrOiFJ zH{g{+Zc2)x)SNy!D^^N=oi)-qkF2qN)ZDJb^3Q9HTj^v#U3u5q-5guuwKOhL(klo^ znALyN?T*a?Z5)RGsel+B)YBz z$`GV6CA%yR-FUVBw!7}wb&TI)nFLm^fl{2RUr(zI>HW>yR3(w#VBoR_5A%*(Z?jd3 z$ysnL+h&W5zqwsQ--qZP!umDfjwf)!*w)OEWoJ4NLnOy!^%YxCS|O-jkN*sjGVbJ6-( z*&?jLK+xW_uFLo5FB?p+DhWC9e;l}uyPjjIC+i1f_YGSj{Z{6CHbnkxSQ9**v1ta5x+%* z>q2EeF>iMECAUX!70CK-Wxl~MTj%0Pj>q} z-*Z##%BxFzkq%^yPOSZg)-yg7wfHKxg}6vO`KHmu3fIlLGpZY$;J#mF5!?MHKz6_j z-L1hnd2K~f*108xPTIyha}2XSK6ireGf(i{-Nui-Vw^46;A9~3M zDjEg$=wG3Xw42<&`Wr4Vs`(+JjMlZ+lA=8hCs=b6gIBwnRFN)1+MBNP;>Ud1UpKaOw{OI}+C?k3KilRhud8iJ`Qg1SV_N*C%Nxw$ z%jfqZVJhd4S6f%KC<%*zjhP_s(Zb;eDrruAJq)hZWj6Fj9A~~^_# U*^m%-*3o> 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 z%0D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∓(m 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 elements can have a type attribute that specifies the script type. This is important + // to avoid formatting errors, e.g. attempting to format +func JSONScript(id string, data any) JSONScriptElement { + return JSONScriptElement{ + ID: id, + Type: "application/json", + Data: data, + Nonce: GetNonce, + } +} + +// WithType sets the value of the type attribute of the script element. +func (j JSONScriptElement) WithType(t string) JSONScriptElement { + j.Type = t + return j +} + +// WithNonceFromString sets the value of the nonce attribute of the script element to the given string. +func (j JSONScriptElement) WithNonceFromString(nonce string) JSONScriptElement { + j.Nonce = func(context.Context) string { + return nonce + } + return j +} + +// WithNonceFrom sets the value of the nonce attribute of the script element to the value returned by the given function. +func (j JSONScriptElement) WithNonceFrom(f func(context.Context) string) JSONScriptElement { + j.Nonce = f + return j +} + +type JSONScriptElement struct { + // ID of the element in the DOM. + ID string + // Type of the script element, defaults to "application/json". + Type string + // Data that will be encoded as JSON. + Data any + // Nonce is a function that returns a CSP nonce. + // Defaults to CSPNonceFromContext. + // See https://content-security-policy.com/nonce for more information. + Nonce func(ctx context.Context) string +} + +func (j JSONScriptElement) Render(ctx context.Context, w io.Writer) (err error) { + if _, err = io.WriteString(w, ""); err != nil { + return err + } + if err = json.NewEncoder(w).Encode(j.Data); err != nil { + return err + } + if _, err = io.WriteString(w, ""); err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/a-h/templ/jsonstring.go b/vendor/github.com/a-h/templ/jsonstring.go new file mode 100644 index 0000000..425e4e8 --- /dev/null +++ b/vendor/github.com/a-h/templ/jsonstring.go @@ -0,0 +1,14 @@ +package templ + +import ( + "encoding/json" +) + +// JSONString returns a JSON encoded string of v. +func JSONString(v any) (string, error) { + b, err := json.Marshal(v) + if err != nil { + return "", err + } + return string(b), nil +} diff --git a/vendor/github.com/a-h/templ/lsp/LICENSE b/vendor/github.com/a-h/templ/lsp/LICENSE new file mode 100644 index 0000000..e874870 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019, The Go Language Server Authors +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. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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/a-h/templ/lsp/jsonrpc2/codes.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go new file mode 100644 index 0000000..5da58ea --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go @@ -0,0 +1,86 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +// Code is an error code as defined in the JSON-RPC spec. +type Code int32 + +// list of JSON-RPC error codes. +const ( + // ParseError is the invalid JSON was received by the server. + // An error occurred on the server while parsing the JSON text. + ParseError Code = -32700 + + // InvalidRequest is the JSON sent is not a valid Request object. + InvalidRequest Code = -32600 + + // MethodNotFound is the method does not exist / is not available. + MethodNotFound Code = -32601 + + // InvalidParams is the invalid method parameter(s). + InvalidParams Code = -32602 + + // InternalError is the internal JSON-RPC error. + InternalError Code = -32603 + + // JSONRPCReservedErrorRangeStart is the start range of JSON RPC reserved error codes. + // + // It doesn't denote a real error code. No LSP error codes should + // be defined between the start and end range. For backwards + // compatibility the "ServerNotInitialized" and the "UnknownErrorCode" + // are left in the range. + // + // @since 3.16.0. + JSONRPCReservedErrorRangeStart Code = -32099 + + // CodeServerErrorStart reserved for implementation-defined server-errors. + // + // Deprecated: Use JSONRPCReservedErrorRangeStart instead. + CodeServerErrorStart = JSONRPCReservedErrorRangeStart + + // ServerNotInitialized is the error of server not initialized. + ServerNotInitialized Code = -32002 + + // UnknownError should be used for all non coded errors. + UnknownError Code = -32001 + + // JSONRPCReservedErrorRangeEnd is the start range of JSON RPC reserved error codes. + // + // It doesn't denote a real error code. + // + // @since 3.16.0. + JSONRPCReservedErrorRangeEnd Code = -32000 + + // CodeServerErrorEnd reserved for implementation-defined server-errors. + // + // Deprecated: Use JSONRPCReservedErrorRangeEnd instead. + CodeServerErrorEnd = JSONRPCReservedErrorRangeEnd +) + +// This file contains the Go forms of the wire specification. +// +// See http://www.jsonrpc.org/specification for details. +// +// list of JSON-RPC errors. +var ( + // ErrUnknown should be used for all non coded errors. + ErrUnknown = NewError(UnknownError, "JSON-RPC unknown error") + + // ErrParse is used when invalid JSON was received by the server. + ErrParse = NewError(ParseError, "JSON-RPC parse error") + + // ErrInvalidRequest is used when the JSON sent is not a valid Request object. + ErrInvalidRequest = NewError(InvalidRequest, "JSON-RPC invalid request") + + // ErrMethodNotFound should be returned by the handler when the method does + // not exist / is not available. + ErrMethodNotFound = NewError(MethodNotFound, "JSON-RPC method not found") + + // ErrInvalidParams should be returned by the handler when method + // parameter(s) were invalid. + ErrInvalidParams = NewError(InvalidParams, "JSON-RPC invalid params") + + // ErrInternal is not currently returned but defined for completeness. + ErrInternal = NewError(InternalError, "JSON-RPC internal error") +) diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go new file mode 100644 index 0000000..e7aeec4 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go @@ -0,0 +1,244 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "bytes" + "context" + "fmt" + "sync" + "sync/atomic" + + "encoding/json" +) + +// Conn is the common interface to jsonrpc clients and servers. +// +// Conn is bidirectional; it does not have a designated server or client end. +// It manages the jsonrpc2 protocol, connecting responses back to their calls. +type Conn interface { + // Call invokes the target method and waits for a response. + // + // The params will be marshaled to JSON before sending over the wire, and will + // be handed to the method invoked. + // + // The response will be unmarshaled from JSON into the result. + // + // The id returned will be unique from this connection, and can be used for + // logging or tracking. + Call(ctx context.Context, method string, params, result any) (ID, error) + + // Notify invokes the target method but does not wait for a response. + // + // The params will be marshaled to JSON before sending over the wire, and will + // be handed to the method invoked. + Notify(ctx context.Context, method string, params any) error + + // Go starts a goroutine to handle the connection. + // + // It must be called exactly once for each Conn. It returns immediately. + // Must block on Done() to wait for the connection to shut down. + // + // This is a temporary measure, this should be started automatically in the + // future. + Go(ctx context.Context, handler Handler) + + // Close closes the connection and it's underlying stream. + // + // It does not wait for the close to complete, use the Done() channel for + // that. + Close() error + + // Done returns a channel that will be closed when the processing goroutine + // has terminated, which will happen if Close() is called or an underlying + // stream is closed. + Done() <-chan struct{} + + // Err returns an error if there was one from within the processing goroutine. + // + // If err returns non nil, the connection will be already closed or closing. + Err() error +} + +type conn struct { + seq int32 // access atomically + writeMu sync.Mutex // protects writes to the stream + stream Stream // supplied stream + pendingMu sync.Mutex // protects the pending map + pending map[ID]chan *Response // holds the pending response channel with the ID as the key. + + done chan struct{} // closed when done + err atomic.Value // holds run error +} + +// NewConn creates a new connection object around the supplied stream. +func NewConn(s Stream) Conn { + conn := &conn{ + stream: s, + pending: make(map[ID]chan *Response), + done: make(chan struct{}), + } + return conn +} + +// Call implements Conn. +func (c *conn) Call(ctx context.Context, method string, params, result any) (id ID, err error) { + // generate a new request identifier + id = NewNumberID(atomic.AddInt32(&c.seq, 1)) + call, err := NewCall(id, method, params) + if err != nil { + return id, fmt.Errorf("marshaling call parameters: %w", err) + } + + // We have to add ourselves to the pending map before we send, otherwise we + // are racing the response. Also add a buffer to rchan, so that if we get a + // wire response between the time this call is cancelled and id is deleted + // from c.pending, the send to rchan will not block. + rchan := make(chan *Response, 1) + + c.pendingMu.Lock() + c.pending[id] = rchan + c.pendingMu.Unlock() + + defer func() { + c.pendingMu.Lock() + delete(c.pending, id) + c.pendingMu.Unlock() + }() + + // now we are ready to send + _, err = c.write(ctx, call) + if err != nil { + // sending failed, we will never get a response, so don't leave it pending + return id, err + } + + // now wait for the response + select { + case resp := <-rchan: + // is it an error response? + if resp.err != nil { + return id, resp.err + } + + if result == nil || len(resp.result) == 0 { + return id, nil + } + + dec := json.NewDecoder(bytes.NewReader(resp.result)) + if err := dec.Decode(result); err != nil { + return id, fmt.Errorf("unmarshaling result: %w", err) + } + + return id, nil + + case <-ctx.Done(): + return id, ctx.Err() + } +} + +// Notify implements Conn. +func (c *conn) Notify(ctx context.Context, method string, params any) (err error) { + notify, err := NewNotification(method, params) + if err != nil { + return fmt.Errorf("marshaling notify parameters: %w", err) + } + + _, err = c.write(ctx, notify) + + return err +} + +func (c *conn) replier(req Message) Replier { + return func(ctx context.Context, result any, err error) error { + call, ok := req.(*Call) + if !ok { + // request was a notify, no need to respond + return nil + } + + response, err := NewResponse(call.id, result, err) + if err != nil { + return err + } + + _, err = c.write(ctx, response) + if err != nil { + // TODO(iancottrell): if a stream write fails, we really need to shut down the whole stream + return err + } + return nil + } +} + +func (c *conn) write(ctx context.Context, msg Message) (int64, error) { + c.writeMu.Lock() + n, err := c.stream.Write(ctx, msg) + c.writeMu.Unlock() + if err != nil { + return 0, fmt.Errorf("write to stream: %w", err) + } + + return n, nil +} + +// Go implements Conn. +func (c *conn) Go(ctx context.Context, handler Handler) { + go c.run(ctx, handler) +} + +func (c *conn) run(ctx context.Context, handler Handler) { + defer close(c.done) + + for { + // get the next message + msg, _, err := c.stream.Read(ctx) + if err != nil { + // The stream failed, we cannot continue. + c.fail(err) + return + } + + switch msg := msg.(type) { + case Request: + if err := handler(ctx, c.replier(msg), msg); err != nil { + c.fail(err) + } + + case *Response: + // If method is not set, this should be a response, in which case we must + // have an id to send the response back to the caller. + c.pendingMu.Lock() + rchan, ok := c.pending[msg.id] + c.pendingMu.Unlock() + if ok { + rchan <- msg + } + } + } +} + +// Close implements Conn. +func (c *conn) Close() error { + return c.stream.Close() +} + +// Done implements Conn. +func (c *conn) Done() <-chan struct{} { + return c.done +} + +// Err implements Conn. +func (c *conn) Err() error { + if err := c.err.Load(); err != nil { + return err.(error) + } + return nil +} + +// fail sets a failure condition on the stream and closes it. +func (c *conn) fail(err error) { + c.err.Store(err) + _ = c.stream.Close() +} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go new file mode 100644 index 0000000..ce8427b --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go @@ -0,0 +1,70 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "errors" + "fmt" + + "encoding/json" +) + +// Error represents a JSON-RPC error. +type Error struct { + // Code a number indicating the error type that occurred. + Code Code `json:"code"` + + // Message a string providing a short description of the error. + Message string `json:"message"` + + // Data a Primitive or Structured value that contains additional + // information about the error. Can be omitted. + Data *json.RawMessage `json:"data,omitempty"` +} + +// compile time check whether the Error implements error interface. +var _ error = (*Error)(nil) + +// Error implements error.Error. +func (e *Error) Error() string { + if e == nil { + return "" + } + return e.Message +} + +// Unwrap implements errors.Unwrap. +// +// Returns the error underlying the receiver, which may be nil. +func (e *Error) Unwrap() error { return errors.New(e.Message) } + +// NewError builds a Error struct for the suppied code and message. +func NewError(c Code, message string) *Error { + return &Error{ + Code: c, + Message: message, + } +} + +// Errorf builds a Error struct for the suppied code, format and args. +func Errorf(c Code, format string, args ...any) *Error { + return &Error{ + Code: c, + Message: fmt.Sprintf(format, args...), + } +} + +// constErr represents a error constant. +type constErr string + +// compile time check whether the constErr implements error interface. +var _ error = (*constErr)(nil) + +// Error implements error.Error. +func (e constErr) Error() string { return string(e) } + +const ( + // ErrIdleTimeout is returned when serving timed out waiting for new connections. + ErrIdleTimeout = constErr("timed out waiting for new connections") +) diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go new file mode 100644 index 0000000..4992979 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go @@ -0,0 +1,120 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "context" + "fmt" + "sync" +) + +// Handler is invoked to handle incoming requests. +// +// The Replier sends a reply to the request and must be called exactly once. +type Handler func(ctx context.Context, reply Replier, req Request) error + +// Replier is passed to handlers to allow them to reply to the request. +// +// If err is set then result will be ignored. +type Replier func(ctx context.Context, result any, err error) error + +// MethodNotFoundHandler is a Handler that replies to all call requests with the +// standard method not found response. +// +// This should normally be the final handler in a chain. +func MethodNotFoundHandler(ctx context.Context, reply Replier, req Request) error { + return reply(ctx, nil, fmt.Errorf("%q: %w", req.Method(), ErrMethodNotFound)) +} + +// ReplyHandler creates a Handler that panics if the wrapped handler does +// not call Reply for every request that it is passed. +func ReplyHandler(handler Handler) (h Handler) { + h = Handler(func(ctx context.Context, reply Replier, req Request) error { + called := false + err := handler(ctx, func(ctx context.Context, result any, err error) error { + if called { + panic(fmt.Errorf("request %q replied to more than once", req.Method())) + } + called = true + + return reply(ctx, result, err) + }, req) + if !called { + panic(fmt.Errorf("request %q was never replied to", req.Method())) + } + return err + }) + + return h +} + +// CancelHandler returns a handler that supports cancellation, and a function +// that can be used to trigger canceling in progress requests. +func CancelHandler(handler Handler) (h Handler, canceller func(id ID)) { + var mu sync.Mutex + handling := make(map[ID]context.CancelFunc) + + h = Handler(func(ctx context.Context, reply Replier, req Request) error { + if call, ok := req.(*Call); ok { + cancelCtx, cancel := context.WithCancel(ctx) + ctx = cancelCtx + + mu.Lock() + handling[call.ID()] = cancel + mu.Unlock() + + innerReply := reply + reply = func(ctx context.Context, result any, err error) error { + mu.Lock() + delete(handling, call.ID()) + mu.Unlock() + return innerReply(ctx, result, err) + } + } + return handler(ctx, reply, req) + }) + + canceller = func(id ID) { + mu.Lock() + cancel, found := handling[id] + mu.Unlock() + if found { + cancel() + } + } + + return h, canceller +} + +// AsyncHandler returns a handler that processes each request goes in its own +// goroutine. +// +// The handler returns immediately, without the request being processed. +// Each request then waits for the previous request to finish before it starts. +// +// This allows the stream to unblock at the cost of unbounded goroutines +// all stalled on the previous one. +func AsyncHandler(handler Handler) (h Handler) { + nextRequest := make(chan struct{}) + close(nextRequest) + + h = Handler(func(ctx context.Context, reply Replier, req Request) error { + waitForPrevious := nextRequest + nextRequest = make(chan struct{}) + unlockNext := nextRequest + innerReply := reply + reply = func(ctx context.Context, result any, err error) error { + close(unlockNext) + return innerReply(ctx, result, err) + } + + go func() { + <-waitForPrevious + _ = handler(ctx, reply, req) + }() + return nil + }) + + return h +} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go new file mode 100644 index 0000000..ff428cc --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go @@ -0,0 +1,7 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +// Package jsonrpc2 is an implementation of the JSON-RPC 2 specification for Go. +// +// https://www.jsonrpc.org/specification +package jsonrpc2 // import "github.com/a-h/templ/lsp/jsonrpc2" diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go new file mode 100644 index 0000000..6ea146b --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go @@ -0,0 +1,354 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "bytes" + "errors" + "fmt" + + "encoding/json" +) + +// Message is the interface to all JSON-RPC message types. +// +// They share no common functionality, but are a closed set of concrete types +// that are allowed to implement this interface. +// +// The message types are *Call, *Response and *Notification. +type Message interface { + // jsonrpc2Message is used to make the set of message implementations a + // closed set. + jsonrpc2Message() +} + +// Request is the shared interface to jsonrpc2 messages that request +// a method be invoked. +// +// The request types are a closed set of *Call and *Notification. +type Request interface { + Message + + // Method is a string containing the method name to invoke. + Method() string + // Params is either a struct or an array with the parameters of the method. + Params() json.RawMessage + + // jsonrpc2Request is used to make the set of request implementations closed. + jsonrpc2Request() +} + +// Call is a request that expects a response. +// +// The response will have a matching ID. +type Call struct { + // Method is a string containing the method name to invoke. + method string + // Params is either a struct or an array with the parameters of the method. + params json.RawMessage + // id of this request, used to tie the Response back to the request. + id ID +} + +// make sure a Call implements the Request, json.Marshaler and json.Unmarshaler and interfaces. +var ( + _ Request = (*Call)(nil) + _ json.Marshaler = (*Call)(nil) + _ json.Unmarshaler = (*Call)(nil) +) + +// NewCall constructs a new Call message for the supplied ID, method and +// parameters. +func NewCall(id ID, method string, params any) (*Call, error) { + p, merr := marshalInterface(params) + req := &Call{ + id: id, + method: method, + params: p, + } + return req, merr +} + +// ID returns the current call id. +func (c *Call) ID() ID { return c.id } + +// Method implements Request. +func (c *Call) Method() string { return c.method } + +// Params implements Request. +func (c *Call) Params() json.RawMessage { return c.params } + +// jsonrpc2Message implements Request. +func (Call) jsonrpc2Message() {} + +// jsonrpc2Request implements Request. +func (Call) jsonrpc2Request() {} + +// MarshalJSON implements json.Marshaler. +func (c Call) MarshalJSON() ([]byte, error) { + req := wireRequest{ + Method: c.method, + Params: &c.params, + ID: &c.id, + } + data, err := json.Marshal(req) + if err != nil { + return data, fmt.Errorf("marshaling call: %w", err) + } + + return data, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (c *Call) UnmarshalJSON(data []byte) error { + var req wireRequest + dec := json.NewDecoder(bytes.NewReader(data)) + if err := dec.Decode(&req); err != nil { + return fmt.Errorf("unmarshaling call: %w", err) + } + + c.method = req.Method + if req.Params != nil { + c.params = *req.Params + } + if req.ID != nil { + c.id = *req.ID + } + + return nil +} + +// Response is a reply to a Request. +// +// It will have the same ID as the call it is a response to. +type Response struct { + // result is the content of the response. + result json.RawMessage + // err is set only if the call failed. + err error + // ID of the request this is a response to. + id ID +} + +// make sure a Response implements the Message, json.Marshaler and json.Unmarshaler and interfaces. +var ( + _ Message = (*Response)(nil) + _ json.Marshaler = (*Response)(nil) + _ json.Unmarshaler = (*Response)(nil) +) + +// NewResponse constructs a new Response message that is a reply to the +// supplied. If err is set result may be ignored. +func NewResponse(id ID, result any, err error) (*Response, error) { + r, merr := marshalInterface(result) + resp := &Response{ + id: id, + result: r, + err: err, + } + return resp, merr +} + +// ID returns the current response id. +func (r *Response) ID() ID { return r.id } + +// Result returns the Response result. +func (r *Response) Result() json.RawMessage { return r.result } + +// Err returns the Response error. +func (r *Response) Err() error { return r.err } + +// jsonrpc2Message implements Message. +func (r *Response) jsonrpc2Message() {} + +// MarshalJSON implements json.Marshaler. +func (r Response) MarshalJSON() ([]byte, error) { + resp := &wireResponse{ + Error: toError(r.err), + ID: &r.id, + } + if resp.Error == nil { + resp.Result = &r.result + } + + data, err := json.Marshal(resp) + if err != nil { + return data, fmt.Errorf("marshaling notification: %w", err) + } + + return data, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (r *Response) UnmarshalJSON(data []byte) error { + var resp wireResponse + dec := json.NewDecoder(bytes.NewReader(data)) + if err := dec.Decode(&resp); err != nil { + return fmt.Errorf("unmarshaling jsonrpc response: %w", err) + } + + if resp.Result != nil { + r.result = *resp.Result + } + if resp.Error != nil { + r.err = resp.Error + } + if resp.ID != nil { + r.id = *resp.ID + } + + return nil +} + +func toError(err error) *Error { + if err == nil { + // no error, the response is complete + return nil + } + + var wrapped *Error + if errors.As(err, &wrapped) { + // already a wire error, just use it + return wrapped + } + + result := &Error{Message: err.Error()} + if errors.As(err, &wrapped) { + // if we wrapped a wire error, keep the code from the wrapped error + // but the message from the outer error + result.Code = wrapped.Code + } + + return result +} + +// Notification is a request for which a response cannot occur, and as such +// it has not ID. +type Notification struct { + // Method is a string containing the method name to invoke. + method string + + params json.RawMessage +} + +// make sure a Notification implements the Request, json.Marshaler and json.Unmarshaler and interfaces. +var ( + _ Request = (*Notification)(nil) + _ json.Marshaler = (*Notification)(nil) + _ json.Unmarshaler = (*Notification)(nil) +) + +// NewNotification constructs a new Notification message for the supplied +// method and parameters. +func NewNotification(method string, params any) (*Notification, error) { + p, merr := marshalInterface(params) + notify := &Notification{ + method: method, + params: p, + } + return notify, merr +} + +// Method implements Request. +func (n *Notification) Method() string { return n.method } + +// Params implements Request. +func (n *Notification) Params() json.RawMessage { return n.params } + +// jsonrpc2Message implements Request. +func (Notification) jsonrpc2Message() {} + +// jsonrpc2Request implements Request. +func (Notification) jsonrpc2Request() {} + +// MarshalJSON implements json.Marshaler. +func (n Notification) MarshalJSON() ([]byte, error) { + req := wireRequest{ + Method: n.method, + Params: &n.params, + } + data, err := json.Marshal(req) + if err != nil { + return data, fmt.Errorf("marshaling notification: %w", err) + } + + return data, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (n *Notification) UnmarshalJSON(data []byte) error { + var req wireRequest + dec := json.NewDecoder(bytes.NewReader(data)) + if err := dec.Decode(&req); err != nil { + return fmt.Errorf("unmarshaling notification: %w", err) + } + + n.method = req.Method + if req.Params != nil { + n.params = *req.Params + } + + return nil +} + +// DecodeMessage decodes data to Message. +func DecodeMessage(data []byte) (Message, error) { + var msg combined + dec := json.NewDecoder(bytes.NewReader(data)) + if err := dec.Decode(&msg); err != nil { + return nil, fmt.Errorf("unmarshaling jsonrpc message: %w", err) + } + + if msg.Method == "" { + // no method, should be a response + if msg.ID == nil { + return nil, ErrInvalidRequest + } + + resp := &Response{ + id: *msg.ID, + } + if msg.Error != nil { + resp.err = msg.Error + } + if msg.Result != nil { + resp.result = *msg.Result + } + + return resp, nil + } + + // has a method, must be a request + if msg.ID == nil { + // request with no ID is a notify + notify := &Notification{ + method: msg.Method, + } + if msg.Params != nil { + notify.params = *msg.Params + } + + return notify, nil + } + + // request with an ID, must be a call + call := &Call{ + method: msg.Method, + id: *msg.ID, + } + if msg.Params != nil { + call.params = *msg.Params + } + + return call, nil +} + +// marshalInterface marshal obj to json.RawMessage. +func marshalInterface(obj any) (json.RawMessage, error) { + data, err := json.Marshal(obj) + if err != nil { + return json.RawMessage{}, fmt.Errorf("failed to marshal json: %w", err) + } + return json.RawMessage(data), nil +} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go new file mode 100644 index 0000000..48b63cb --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go @@ -0,0 +1,131 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "context" + "fmt" + "net" + "os" + "time" +) + +// NOTE: This file provides an experimental API for serving multiple remote +// jsonrpc2 clients over the network. For now, it is intentionally similar to +// net/http, but that may change in the future as we figure out the correct +// semantics. + +// StreamServer is used to serve incoming jsonrpc2 clients communicating over +// a newly created connection. +type StreamServer interface { + ServeStream(context.Context, Conn) error +} + +// ServerFunc is an adapter that implements the StreamServer interface +// using an ordinary function. +type ServerFunc func(context.Context, Conn) error + +// ServeStream implements StreamServer. +// +// ServeStream calls f(ctx, s). +func (f ServerFunc) ServeStream(ctx context.Context, c Conn) error { + return f(ctx, c) +} + +// HandlerServer returns a StreamServer that handles incoming streams using the +// provided handler. +func HandlerServer(h Handler) StreamServer { + return ServerFunc(func(ctx context.Context, conn Conn) error { + conn.Go(ctx, h) + <-conn.Done() + return conn.Err() + }) +} + +// ListenAndServe starts an jsonrpc2 server on the given address. +// +// If idleTimeout is non-zero, ListenAndServe exits after there are no clients for +// this duration, otherwise it exits only on error. +func ListenAndServe(ctx context.Context, network, addr string, server StreamServer, idleTimeout time.Duration) error { + ln, err := net.Listen(network, addr) + if err != nil { + return fmt.Errorf("failed to listen %s:%s: %w", network, addr, err) + } + defer func() { + _ = ln.Close() + }() + + if network == "unix" { + defer func() { _ = os.Remove(addr) }() + } + + return Serve(ctx, ln, server, idleTimeout) +} + +// Serve accepts incoming connections from the network, and handles them using +// the provided server. If idleTimeout is non-zero, ListenAndServe exits after +// there are no clients for this duration, otherwise it exits only on error. +func Serve(ctx context.Context, ln net.Listener, server StreamServer, idleTimeout time.Duration) error { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + // Max duration: ~290 years; surely that's long enough. + const forever = 1<<63 - 1 + if idleTimeout <= 0 { + idleTimeout = forever + } + connTimer := time.NewTimer(idleTimeout) + + newConns := make(chan net.Conn) + doneListening := make(chan error) + closedConns := make(chan error) + + go func() { + for { + nc, err := ln.Accept() + if err != nil { + select { + case doneListening <- fmt.Errorf("accept: %w", err): + case <-ctx.Done(): + } + return + } + + newConns <- nc + } + }() + + activeConns := 0 + for { + select { + case netConn := <-newConns: + activeConns++ + connTimer.Stop() + stream := NewStream(netConn) + go func() { + conn := NewConn(stream) + closedConns <- server.ServeStream(ctx, conn) + _ = stream.Close() + }() + + case err := <-doneListening: + return err + + case <-closedConns: + // if !isClosingError(err) { + // } + + activeConns-- + if activeConns == 0 { + connTimer.Reset(idleTimeout) + } + + case <-connTimer.C: + return ErrIdleTimeout + + case <-ctx.Done(): + return ctx.Err() + } + } +} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go new file mode 100644 index 0000000..e7d24c6 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go @@ -0,0 +1,225 @@ +// SPDX-FileCopyrightText: 2018 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "bufio" + "context" + "fmt" + "io" + "strconv" + "strings" + + "encoding/json" +) + +const ( + // HdrContentLength is the HTTP header name of the length of the content part in bytes. This header is required. + // This entity header indicates the size of the entity-body, in bytes, sent to the recipient. + // + // RFC 7230, section 3.3.2: Content-Length: + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + HdrContentLength = "Content-Length" + + // HeaderContentType is the mime type of the content part. Defaults to "application/vscode-jsonrpc; charset=utf-8". + // This entity header is used to indicate the media type of the resource. + // + // RFC 7231, section 3.1.1.5: Content-Type: + // https://tools.ietf.org/html/rfc7231#section-3.1.1.5 + HdrContentType = "Content-Type" + + // HeaderContentSeparator is the header and content part separator. + HdrContentSeparator = "\r\n\r\n" +) + +// Framer wraps a network connection up into a Stream. +// +// It is responsible for the framing and encoding of messages into wire form. +// NewRawStream and NewStream are implementations of a Framer. +type Framer func(conn io.ReadWriteCloser) Stream + +// Stream abstracts the transport mechanics from the JSON RPC protocol. +// +// A Conn reads and writes messages using the stream it was provided on +// construction, and assumes that each call to Read or Write fully transfers +// a single message, or returns an error. +// +// A stream is not safe for concurrent use, it is expected it will be used by +// a single Conn in a safe manner. +type Stream interface { + // Read gets the next message from the stream. + Read(context.Context) (Message, int64, error) + + // Write sends a message to the stream. + Write(context.Context, Message) (int64, error) + + // Close closes the connection. + // Any blocked Read or Write operations will be unblocked and return errors. + Close() error +} + +type rawStream struct { + conn io.ReadWriteCloser + in *json.Decoder +} + +// NewRawStream returns a Stream built on top of a io.ReadWriteCloser. +// +// The messages are sent with no wrapping, and rely on json decode consistency +// to determine message boundaries. +func NewRawStream(conn io.ReadWriteCloser) Stream { + return &rawStream{ + conn: conn, + in: json.NewDecoder(conn), // TODO(zchee): why test fail using segmentio json.Decoder? + } +} + +// Read implements Stream.Read. +func (s *rawStream) Read(ctx context.Context) (Message, int64, error) { + select { + case <-ctx.Done(): + return nil, 0, ctx.Err() + default: + } + + var raw json.RawMessage + if err := s.in.Decode(&raw); err != nil { + return nil, 0, fmt.Errorf("decoding raw message: %w", err) + } + + msg, err := DecodeMessage(raw) + return msg, int64(len(raw)), err +} + +// Write implements Stream.Write. +func (s *rawStream) Write(ctx context.Context, msg Message) (int64, error) { + select { + case <-ctx.Done(): + return 0, ctx.Err() + default: + } + + data, err := json.Marshal(msg) + if err != nil { + return 0, fmt.Errorf("marshaling message: %w", err) + } + + n, err := s.conn.Write(data) + if err != nil { + return 0, fmt.Errorf("write to stream: %w", err) + } + + return int64(n), nil +} + +// Close implements Stream.Close. +func (s *rawStream) Close() error { + return s.conn.Close() +} + +type stream struct { + conn io.ReadWriteCloser + in *bufio.Reader +} + +// NewStream returns a Stream built on top of a io.ReadWriteCloser. +// +// The messages are sent with HTTP content length and MIME type headers. +// This is the format used by LSP and others. +func NewStream(conn io.ReadWriteCloser) Stream { + return &stream{ + conn: conn, + in: bufio.NewReader(conn), + } +} + +// Read implements Stream.Read. +func (s *stream) Read(ctx context.Context) (Message, int64, error) { + select { + case <-ctx.Done(): + return nil, 0, ctx.Err() + default: + } + + var total int64 + var length int64 + // read the header, stop on the first empty line + for { + line, err := s.in.ReadString('\n') + total += int64(len(line)) + if err != nil { + return nil, total, fmt.Errorf("failed reading header line: %w", err) + } + + line = strings.TrimSpace(line) + // check we have a header line + if line == "" { + break + } + + colon := strings.IndexRune(line, ':') + if colon < 0 { + return nil, total, fmt.Errorf("invalid header line %q", line) + } + + name, value := line[:colon], strings.TrimSpace(line[colon+1:]) + switch name { + case HdrContentLength: + if length, err = strconv.ParseInt(value, 10, 32); err != nil { + return nil, total, fmt.Errorf("failed parsing %s: %v: %w", HdrContentLength, value, err) + } + if length <= 0 { + return nil, total, fmt.Errorf("invalid %s: %v", HdrContentLength, length) + } + default: + // ignoring unknown headers + } + } + + if length == 0 { + return nil, total, fmt.Errorf("missing %s header", HdrContentLength) + } + + data := make([]byte, length) + if _, err := io.ReadFull(s.in, data); err != nil { + return nil, total, fmt.Errorf("read full of data: %w", err) + } + + total += length + msg, err := DecodeMessage(data) + return msg, total, err +} + +// Write implements Stream.Write. +func (s *stream) Write(ctx context.Context, msg Message) (int64, error) { + select { + case <-ctx.Done(): + return 0, ctx.Err() + default: + } + + data, err := json.Marshal(msg) + if err != nil { + return 0, fmt.Errorf("marshaling message: %w", err) + } + + n, err := fmt.Fprintf(s.conn, "%s: %v%s", HdrContentLength, len(data), HdrContentSeparator) + total := int64(n) + if err != nil { + return 0, fmt.Errorf("write data to conn: %w", err) + } + + n, err = s.conn.Write(data) + total += int64(n) + if err != nil { + return 0, fmt.Errorf("write data to conn: %w", err) + } + + return total, nil +} + +// Close implements Stream.Close. +func (s *stream) Close() error { + return s.conn.Close() +} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go new file mode 100644 index 0000000..a322402 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package jsonrpc2 + +import ( + "fmt" + + "encoding/json" +) + +// Version represents a JSON-RPC version. +const Version = "2.0" + +// version is a special 0 sized struct that encodes as the jsonrpc version tag. +// +// It will fail during decode if it is not the correct version tag in the stream. +type version struct{} + +// compile time check whether the version implements a json.Marshaler and json.Unmarshaler interfaces. +var ( + _ json.Marshaler = (*version)(nil) + _ json.Unmarshaler = (*version)(nil) +) + +// MarshalJSON implements json.Marshaler. +func (version) MarshalJSON() ([]byte, error) { + return json.Marshal(Version) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (version) UnmarshalJSON(data []byte) error { + version := "" + if err := json.Unmarshal(data, &version); err != nil { + return fmt.Errorf("failed to Unmarshal: %w", err) + } + if version != Version { + return fmt.Errorf("invalid RPC version %v", version) + } + return nil +} + +// ID is a Request identifier. +// +// Only one of either the Name or Number members will be set, using the +// number form if the Name is the empty string. +type ID struct { + name string + number int32 +} + +// compile time check whether the ID implements a fmt.Formatter, json.Marshaler and json.Unmarshaler interfaces. +var ( + _ fmt.Formatter = (*ID)(nil) + _ json.Marshaler = (*ID)(nil) + _ json.Unmarshaler = (*ID)(nil) +) + +// NewNumberID returns a new number request ID. +func NewNumberID(v int32) ID { return ID{number: v} } + +// NewStringID returns a new string request ID. +func NewStringID(v string) ID { return ID{name: v} } + +// Format writes the ID to the formatter. +// +// If the rune is q the representation is non ambiguous, +// string forms are quoted, number forms are preceded by a #. +func (id ID) Format(f fmt.State, r rune) { + numF, strF := `%d`, `%s` + if r == 'q' { + numF, strF = `#%d`, `%q` + } + + switch { + case id.name != "": + _, _ = fmt.Fprintf(f, strF, id.name) + default: + _, _ = fmt.Fprintf(f, numF, id.number) + } +} + +// MarshalJSON implements json.Marshaler. +func (id *ID) MarshalJSON() ([]byte, error) { + if id.name != "" { + return json.Marshal(id.name) + } + return json.Marshal(id.number) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (id *ID) UnmarshalJSON(data []byte) error { + *id = ID{} + if err := json.Unmarshal(data, &id.number); err == nil { + return nil + } + return json.Unmarshal(data, &id.name) +} + +// wireRequest is sent to a server to represent a Call or Notify operaton. +type wireRequest struct { + // VersionTag is always encoded as the string "2.0" + VersionTag version `json:"jsonrpc"` + // Method is a string containing the method name to invoke. + Method string `json:"method"` + // Params is either a struct or an array with the parameters of the method. + Params *json.RawMessage `json:"params,omitempty"` + // The id of this request, used to tie the Response back to the request. + // Will be either a string or a number. If not set, the Request is a notify, + // and no response is possible. + ID *ID `json:"id,omitempty"` +} + +// wireResponse is a reply to a Request. +// +// It will always have the ID field set to tie it back to a request, and will +// have either the Result or Error fields set depending on whether it is a +// success or failure wireResponse. +type wireResponse struct { + // VersionTag is always encoded as the string "2.0" + VersionTag version `json:"jsonrpc"` + // Result is the response value, and is required on success. + Result *json.RawMessage `json:"result,omitempty"` + // Error is a structured error response if the call fails. + Error *Error `json:"error,omitempty"` + // ID must be set and is the identifier of the Request this is a response to. + ID *ID `json:"id,omitempty"` +} + +// combined has all the fields of both Request and Response. +// +// We can decode this and then work out which it is. +type combined struct { + VersionTag version `json:"jsonrpc"` + ID *ID `json:"id,omitempty"` + Method string `json:"method"` + Params *json.RawMessage `json:"params,omitempty"` + Result *json.RawMessage `json:"result,omitempty"` + Error *Error `json:"error,omitempty"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/base.go b/vendor/github.com/a-h/templ/lsp/protocol/base.go new file mode 100644 index 0000000..5e92e69 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/base.go @@ -0,0 +1,95 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "encoding/json" + "fmt" +) + +// CancelParams params of cancelRequest. +type CancelParams struct { + // ID is the request id to cancel. + ID any `json:"id"` // int32 | string +} + +// ProgressParams params of Progress netification. +// +// @since 3.15.0. +type ProgressParams struct { + // Token is the progress token provided by the client or server. + Token ProgressToken `json:"token"` + + // Value is the progress data. + Value any `json:"value"` +} + +// ProgressToken is the progress token provided by the client or server. +// +// @since 3.15.0. +type ProgressToken struct { + name string + number int32 +} + +// compile time check whether the ProgressToken implements a fmt.Formatter, fmt.Stringer, json.Marshaler and json.Unmarshaler interfaces. +var ( + _ fmt.Formatter = (*ProgressToken)(nil) + _ fmt.Stringer = (*ProgressToken)(nil) + _ json.Marshaler = (*ProgressToken)(nil) + _ json.Unmarshaler = (*ProgressToken)(nil) +) + +// NewProgressToken returns a new ProgressToken. +func NewProgressToken(s string) *ProgressToken { + return &ProgressToken{name: s} +} + +// NewNumberProgressToken returns a new number ProgressToken. +func NewNumberProgressToken(n int32) *ProgressToken { + return &ProgressToken{number: n} +} + +// Format writes the ProgressToken to the formatter. +// +// If the rune is q the representation is non ambiguous, +// string forms are quoted. +func (v ProgressToken) Format(f fmt.State, r rune) { + const numF = `%d` + strF := `%s` + if r == 'q' { + strF = `%q` + } + + switch { + case v.name != "": + _, _ = fmt.Fprintf(f, strF, v.name) + default: + _, _ = fmt.Fprintf(f, numF, v.number) + } +} + +// String returns a string representation of the ProgressToken. +func (v ProgressToken) String() string { + return fmt.Sprint(v) +} + +// MarshalJSON implements json.Marshaler. +func (v *ProgressToken) MarshalJSON() ([]byte, error) { + if v.name != "" { + return json.Marshal(v.name) + } + + return json.Marshal(v.number) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (v *ProgressToken) UnmarshalJSON(data []byte) error { + *v = ProgressToken{} + if err := json.Unmarshal(data, &v.number); err == nil { + return nil + } + + return json.Unmarshal(data, &v.name) +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/basic.go b/vendor/github.com/a-h/templ/lsp/protocol/basic.go new file mode 100644 index 0000000..0830fa7 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/basic.go @@ -0,0 +1,705 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "github.com/a-h/templ/lsp/uri" +) + +// DocumentURI represents the URI of a document. +// +// Many of the interfaces contain fields that correspond to the URI of a document. +// For clarity, the type of such a field is declared as a DocumentURI. +// Over the wire, it will still be transferred as a string, but this guarantees +// that the contents of that string can be parsed as a valid URI. +type DocumentURI = uri.URI + +// URI a tagging interface for normal non document URIs. +// +// @since 3.16.0. +type URI = uri.URI + +// EOL denotes represents the character offset. +var EOL = []string{"\n", "\r\n", "\r"} + +// Position represents a text document expressed as zero-based line and zero-based character offset. +// +// The offsets are based on a UTF-16 string representation. +// So a string of the form "a𐐀b" the character offset of the character "a" is 0, +// the character offset of "𐐀" is 1 and the character offset of "b" is 3 since 𐐀 is represented using two code +// units in UTF-16. +// +// Positions are line end character agnostic. So you can not specify a position that +// denotes "\r|\n" or "\n|" where "|" represents the character offset. +// +// Position is between two characters like an "insert" cursor in a editor. +// Special values like for example "-1" to denote the end of a line are not supported. +type Position struct { + // Line position in a document (zero-based). + // + // If a line number is greater than the number of lines in a document, it defaults back to the number of lines in + // the document. + // If a line number is negative, it defaults to 0. + Line uint32 `json:"line"` + + // Character offset on a line in a document (zero-based). + // + // Assuming that the line is represented as a string, the Character value represents the gap between the + // "character" and "character + 1". + // + // If the character value is greater than the line length it defaults back to the line length. + // If a line number is negative, it defaults to 0. + Character uint32 `json:"character"` +} + +// Range represents a text document expressed as (zero-based) start and end positions. +// +// A range is comparable to a selection in an editor. Therefore the end position is exclusive. +// If you want to specify a range that contains a line including the line ending character(s) then use an end position +// denoting the start of the next line. +type Range struct { + // Start is the range's start position. + Start Position `json:"start"` + + // End is the range's end position. + End Position `json:"end"` +} + +// Location represents a location inside a resource, such as a line inside a text file. +type Location struct { + URI DocumentURI `json:"uri"` + Range Range `json:"range"` +} + +// LocationLink represents a link between a source and a target location. +type LocationLink struct { + // OriginSelectionRange span of the origin of this link. + // + // Used as the underlined span for mouse interaction. Defaults to the word range at the mouse position. + OriginSelectionRange *Range `json:"originSelectionRange,omitempty"` + + // TargetURI is the target resource identifier of this link. + TargetURI DocumentURI `json:"targetUri"` + + // TargetRange is the full target range of this link. + // + // If the target for example is a symbol then target range is the range enclosing this symbol not including + // leading/trailing whitespace but everything else like comments. + // + // This information is typically used to highlight the range in the editor. + TargetRange Range `json:"targetRange"` + + // TargetSelectionRange is the range that should be selected and revealed when this link is being followed, + // e.g the name of a function. + // + // Must be contained by the the TargetRange. See also DocumentSymbol#range + TargetSelectionRange Range `json:"targetSelectionRange"` +} + +// Command represents a reference to a command. Provides a title which will be used to represent a command in the UI. +// +// Commands are identified by a string identifier. +// The recommended way to handle commands is to implement their execution on the server side if the client and +// server provides the corresponding capabilities. +// +// Alternatively the tool extension code could handle the command. The protocol currently doesn't specify +// a set of well-known commands. +type Command struct { + // Title of the command, like `save`. + Title string `json:"title"` + + // Command is the identifier of the actual command handler. + Command string `json:"command"` + + // Arguments that the command handler should be invoked with. + Arguments []any `json:"arguments,omitempty"` +} + +// TextEdit is a textual edit applicable to a text document. +type TextEdit struct { + // Range is the range of the text document to be manipulated. + // + // To insert text into a document create a range where start == end. + Range Range `json:"range"` + + // NewText is the string to be inserted. For delete operations use an + // empty string. + NewText string `json:"newText"` +} + +// ChangeAnnotation is the additional information that describes document changes. +// +// @since 3.16.0. +type ChangeAnnotation struct { + // Label a human-readable string describing the actual change. + // The string is rendered prominent in the user interface. + Label string `json:"label"` + + // NeedsConfirmation is a flag which indicates that user confirmation is needed + // before applying the change. + NeedsConfirmation bool `json:"needsConfirmation,omitempty"` + + // Description is a human-readable string which is rendered less prominent in + // the user interface. + Description string `json:"description,omitempty"` +} + +// ChangeAnnotationIdentifier an identifier referring to a change annotation managed by a workspace +// edit. +// +// @since 3.16.0. +type ChangeAnnotationIdentifier string + +// AnnotatedTextEdit is a special text edit with an additional change annotation. +// +// @since 3.16.0. +type AnnotatedTextEdit struct { + TextEdit + + // AnnotationID is the actual annotation identifier. + AnnotationID ChangeAnnotationIdentifier `json:"annotationId"` +} + +// TextDocumentEdit describes textual changes on a single text document. +// +// The TextDocument is referred to as a OptionalVersionedTextDocumentIdentifier to allow clients to check the +// text document version before an edit is applied. +// +// TextDocumentEdit describes all changes on a version "Si" and after they are applied move the document to +// version "Si+1". +// So the creator of a TextDocumentEdit doesn't need to sort the array or do any kind of ordering. However the +// edits must be non overlapping. +type TextDocumentEdit struct { + // TextDocument is the text document to change. + TextDocument OptionalVersionedTextDocumentIdentifier `json:"textDocument"` + + // Edits is the edits to be applied. + // + // @since 3.16.0 - support for AnnotatedTextEdit. + // This is guarded by the client capability Workspace.WorkspaceEdit.ChangeAnnotationSupport. + Edits []TextEdit `json:"edits"` // []TextEdit | []AnnotatedTextEdit +} + +// ResourceOperationKind is the file event type. +type ResourceOperationKind string + +const ( + // CreateResourceOperation supports creating new files and folders. + CreateResourceOperation ResourceOperationKind = "create" + + // RenameResourceOperation supports renaming existing files and folders. + RenameResourceOperation ResourceOperationKind = "rename" + + // DeleteResourceOperation supports deleting existing files and folders. + DeleteResourceOperation ResourceOperationKind = "delete" +) + +// CreateFileOptions represents an options to create a file. +type CreateFileOptions struct { + // Overwrite existing file. Overwrite wins over `ignoreIfExists`. + Overwrite bool `json:"overwrite,omitempty"` + + // IgnoreIfExists ignore if exists. + IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` +} + +// CreateFile represents a create file operation. +type CreateFile struct { + // Kind a create. + Kind ResourceOperationKind `json:"kind"` // should be `create` + + // URI is the resource to create. + URI DocumentURI `json:"uri"` + + // Options additional options. + Options *CreateFileOptions `json:"options,omitempty"` + + // AnnotationID an optional annotation identifier describing the operation. + // + // @since 3.16.0. + AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` +} + +// RenameFileOptions represents a rename file options. +type RenameFileOptions struct { + // Overwrite target if existing. Overwrite wins over `ignoreIfExists`. + Overwrite bool `json:"overwrite,omitempty"` + + // IgnoreIfExists ignores if target exists. + IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` +} + +// RenameFile represents a rename file operation. +type RenameFile struct { + // Kind a rename. + Kind ResourceOperationKind `json:"kind"` // should be `rename` + + // OldURI is the old (existing) location. + OldURI DocumentURI `json:"oldUri"` + + // NewURI is the new location. + NewURI DocumentURI `json:"newUri"` + + // Options rename options. + Options *RenameFileOptions `json:"options,omitempty"` + + // AnnotationID an optional annotation identifier describing the operation. + // + // @since 3.16.0. + AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` +} + +// DeleteFileOptions represents a delete file options. +type DeleteFileOptions struct { + // Recursive delete the content recursively if a folder is denoted. + Recursive bool `json:"recursive,omitempty"` + + // IgnoreIfNotExists ignore the operation if the file doesn't exist. + IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"` +} + +// DeleteFile represents a delete file operation. +type DeleteFile struct { + // Kind is a delete. + Kind ResourceOperationKind `json:"kind"` // should be `delete` + + // URI is the file to delete. + URI DocumentURI `json:"uri"` + + // Options delete options. + Options *DeleteFileOptions `json:"options,omitempty"` + + // AnnotationID an optional annotation identifier describing the operation. + // + // @since 3.16.0. + AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` +} + +// WorkspaceEdit represent a changes to many resources managed in the workspace. +// +// The edit should either provide changes or documentChanges. +// If the client can handle versioned document edits and if documentChanges are present, the latter are preferred over +// changes. +type WorkspaceEdit struct { + // Changes holds changes to existing resources. + Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"` + + // DocumentChanges depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes + // are either an array of `TextDocumentEdit`s to express changes to n different text documents + // where each text document edit addresses a specific version of a text document. Or it can contain + // above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations. + // + // Whether a client supports versioned document edits is expressed via + // `workspace.workspaceEdit.documentChanges` client capability. + // + // If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then + // only plain `TextEdit`s using the `changes` property are supported. + DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"` + + // ChangeAnnotations is a map of change annotations that can be referenced in + // "AnnotatedTextEdit"s or create, rename and delete file / folder + // operations. + // + // Whether clients honor this property depends on the client capability + // "workspace.changeAnnotationSupport". + // + // @since 3.16.0. + ChangeAnnotations map[ChangeAnnotationIdentifier]ChangeAnnotation `json:"changeAnnotations,omitempty"` +} + +// TextDocumentIdentifier indicates the using a URI. On the protocol level, URIs are passed as strings. +type TextDocumentIdentifier struct { + // URI is the text document's URI. + URI DocumentURI `json:"uri"` +} + +// TextDocumentItem represent an item to transfer a text document from the client to the server. +type TextDocumentItem struct { + // URI is the text document's URI. + URI DocumentURI `json:"uri"` + + // LanguageID is the text document's language identifier. + LanguageID LanguageIdentifier `json:"languageId"` + + // Version is the version number of this document (it will increase after each + // change, including undo/redo). + Version int32 `json:"version"` + + // Text is the content of the opened text document. + Text string `json:"text"` +} + +// LanguageIdentifier represent a text document's language identifier. +type LanguageIdentifier string + +const ( + // ABAPLanguage ABAP Language. + ABAPLanguage LanguageIdentifier = "abap" + + // BatLanguage Windows Bat Language. + BatLanguage LanguageIdentifier = "bat" + + // BibtexLanguage BibTeX Language. + BibtexLanguage LanguageIdentifier = "bibtex" + + // ClojureLanguage Clojure Language. + ClojureLanguage LanguageIdentifier = "clojure" + + // CoffeescriptLanguage CoffeeScript Language. + CoffeeScriptLanguage LanguageIdentifier = "coffeescript" + + // CLanguage C Language. + CLanguage LanguageIdentifier = "c" + + // CppLanguage C++ Language. + CppLanguage LanguageIdentifier = "cpp" + + // CsharpLanguage C# Language. + CsharpLanguage LanguageIdentifier = "csharp" + + // CSSLanguage CSS Language. + CSSLanguage LanguageIdentifier = "css" + + // DiffLanguage Diff Language. + DiffLanguage LanguageIdentifier = "diff" + + // DartLanguage Dart Language. + DartLanguage LanguageIdentifier = "dart" + + // DockerfileLanguage Dockerfile Language. + DockerfileLanguage LanguageIdentifier = "dockerfile" + + // ElixirLanguage Elixir Language. + ElixirLanguage LanguageIdentifier = "elixir" + + // ErlangLanguage Erlang Language. + ErlangLanguage LanguageIdentifier = "erlang" + + // FsharpLanguage F# Language. + FsharpLanguage LanguageIdentifier = "fsharp" + + // GitCommitLanguage Git Language. + GitCommitLanguage LanguageIdentifier = "git-commit" + + // GitRebaseLanguage Git Language. + GitRebaseLanguage LanguageIdentifier = "git-rebase" + + // GoLanguage Go Language. + GoLanguage LanguageIdentifier = "go" + + // GroovyLanguage Groovy Language. + GroovyLanguage LanguageIdentifier = "groovy" + + // HandlebarsLanguage Handlebars Language. + HandlebarsLanguage LanguageIdentifier = "handlebars" + + // HTMLLanguage HTML Language. + HTMLLanguage LanguageIdentifier = "html" + + // IniLanguage Ini Language. + IniLanguage LanguageIdentifier = "ini" + + // JavaLanguage Java Language. + JavaLanguage LanguageIdentifier = "java" + + // JavaScriptLanguage JavaScript Language. + JavaScriptLanguage LanguageIdentifier = "javascript" + + // JavaScriptReactLanguage JavaScript React Language. + JavaScriptReactLanguage LanguageIdentifier = "javascriptreact" + + // JSONLanguage JSON Language. + JSONLanguage LanguageIdentifier = "json" + + // LatexLanguage LaTeX Language. + LatexLanguage LanguageIdentifier = "latex" + + // LessLanguage Less Language. + LessLanguage LanguageIdentifier = "less" + + // LuaLanguage Lua Language. + LuaLanguage LanguageIdentifier = "lua" + + // MakefileLanguage Makefile Language. + MakefileLanguage LanguageIdentifier = "makefile" + + // MarkdownLanguage Markdown Language. + MarkdownLanguage LanguageIdentifier = "markdown" + + // ObjectiveCLanguage Objective-C Language. + ObjectiveCLanguage LanguageIdentifier = "objective-c" + + // ObjectiveCppLanguage Objective-C++ Language. + ObjectiveCppLanguage LanguageIdentifier = "objective-cpp" + + // PerlLanguage Perl Language. + PerlLanguage LanguageIdentifier = "perl" + + // Perl6Language Perl Language. + Perl6Language LanguageIdentifier = "perl6" + + // PHPLanguage PHP Language. + PHPLanguage LanguageIdentifier = "php" + + // PowershellLanguage Powershell Language. + PowershellLanguage LanguageIdentifier = "powershell" + + // JadeLanguage Pug Language. + JadeLanguage LanguageIdentifier = "jade" + + // PythonLanguage Python Language. + PythonLanguage LanguageIdentifier = "python" + + // RLanguage R Language. + RLanguage LanguageIdentifier = "r" + + // RazorLanguage Razor(cshtml) Language. + RazorLanguage LanguageIdentifier = "razor" + + // RubyLanguage Ruby Language. + RubyLanguage LanguageIdentifier = "ruby" + + // RustLanguage Rust Language. + RustLanguage LanguageIdentifier = "rust" + + // SCSSLanguage SCSS Languages syntax using curly brackets. + SCSSLanguage LanguageIdentifier = "scss" + + // SASSLanguage SCSS Languages indented syntax. + SASSLanguage LanguageIdentifier = "sass" + + // ScalaLanguage Scala Language. + ScalaLanguage LanguageIdentifier = "scala" + + // ShaderlabLanguage ShaderLab Language. + ShaderlabLanguage LanguageIdentifier = "shaderlab" + + // ShellscriptLanguage Shell Script (Bash) Language. + ShellscriptLanguage LanguageIdentifier = "shellscript" + + // SQLLanguage SQL Language. + SQLLanguage LanguageIdentifier = "sql" + + // SwiftLanguage Swift Language. + SwiftLanguage LanguageIdentifier = "swift" + + // TypeScriptLanguage TypeScript Language. + TypeScriptLanguage LanguageIdentifier = "typescript" + + // TypeScriptReactLanguage TypeScript React Language. + TypeScriptReactLanguage LanguageIdentifier = "typescriptreact" + + // TeXLanguage TeX Language. + TeXLanguage LanguageIdentifier = "tex" + + // VBLanguage Visual Basic Language. + VBLanguage LanguageIdentifier = "vb" + + // XMLLanguage XML Language. + XMLLanguage LanguageIdentifier = "xml" + + // XslLanguage XSL Language. + XslLanguage LanguageIdentifier = "xsl" + + // YamlLanguage YAML Language. + YamlLanguage LanguageIdentifier = "yaml" +) + +// languageIdentifierMap map of LanguageIdentifiers. +var languageIdentifierMap = map[string]LanguageIdentifier{ + "abap": ABAPLanguage, + "bat": BatLanguage, + "bibtex": BibtexLanguage, + "clojure": ClojureLanguage, + "coffeescript": CoffeeScriptLanguage, + "c": CLanguage, + "cpp": CppLanguage, + "csharp": CsharpLanguage, + "css": CSSLanguage, + "diff": DiffLanguage, + "dart": DartLanguage, + "dockerfile": DockerfileLanguage, + "elixir": ElixirLanguage, + "erlang": ErlangLanguage, + "fsharp": FsharpLanguage, + "git-commit": GitCommitLanguage, + "git-rebase": GitRebaseLanguage, + "go": GoLanguage, + "groovy": GroovyLanguage, + "handlebars": HandlebarsLanguage, + "html": HTMLLanguage, + "ini": IniLanguage, + "java": JavaLanguage, + "javascript": JavaScriptLanguage, + "javascriptreact": JavaScriptReactLanguage, + "json": JSONLanguage, + "latex": LatexLanguage, + "less": LessLanguage, + "lua": LuaLanguage, + "makefile": MakefileLanguage, + "markdown": MarkdownLanguage, + "objective-c": ObjectiveCLanguage, + "objective-cpp": ObjectiveCppLanguage, + "perl": PerlLanguage, + "perl6": Perl6Language, + "php": PHPLanguage, + "powershell": PowershellLanguage, + "jade": JadeLanguage, + "python": PythonLanguage, + "r": RLanguage, + "razor": RazorLanguage, + "ruby": RubyLanguage, + "rust": RustLanguage, + "scss": SCSSLanguage, + "sass": SASSLanguage, + "scala": ScalaLanguage, + "shaderlab": ShaderlabLanguage, + "shellscript": ShellscriptLanguage, + "sql": SQLLanguage, + "swift": SwiftLanguage, + "typescript": TypeScriptLanguage, + "typescriptreact": TypeScriptReactLanguage, + "tex": TeXLanguage, + "vb": VBLanguage, + "xml": XMLLanguage, + "xsl": XslLanguage, + "yaml": YamlLanguage, +} + +// ToLanguageIdentifier converts ft to LanguageIdentifier. +func ToLanguageIdentifier(ft string) LanguageIdentifier { + langID, ok := languageIdentifierMap[ft] + if ok { + return langID + } + + return LanguageIdentifier(ft) +} + +// VersionedTextDocumentIdentifier represents an identifier to denote a specific version of a text document. +// +// This information usually flows from the client to the server. +type VersionedTextDocumentIdentifier struct { + TextDocumentIdentifier + + // Version is the version number of this document. + // + // The version number of a document will increase after each change, including + // undo/redo. The number doesn't need to be consecutive. + Version int32 `json:"version"` +} + +// OptionalVersionedTextDocumentIdentifier represents an identifier which optionally denotes a specific version of +// a text document. +// +// This information usually flows from the server to the client. +// +// @since 3.16.0. +type OptionalVersionedTextDocumentIdentifier struct { + TextDocumentIdentifier + + // Version is the version number of this document. If an optional versioned text document + // identifier is sent from the server to the client and the file is not + // open in the editor (the server has not received an open notification + // before) the server can send `null` to indicate that the version is + // known and the content on disk is the master (as specified with document + // content ownership). + // + // The version number of a document will increase after each change, + // including undo/redo. The number doesn't need to be consecutive. + Version *int32 `json:"version"` // int32 | null +} + +// TextDocumentPositionParams is a parameter literal used in requests to pass a text document and a position +// inside that document. +// +// It is up to the client to decide how a selection is converted into a position when issuing a request for a text +// document. +// +// The client can for example honor or ignore the selection direction to make LSP request consistent with features +// implemented internally. +type TextDocumentPositionParams struct { + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Position is the position inside the text document. + Position Position `json:"position"` +} + +// DocumentFilter is a document filter denotes a document through properties like language, scheme or pattern. +// +// An example is a filter that applies to TypeScript files on disk. +type DocumentFilter struct { + // Language a language id, like `typescript`. + Language string `json:"language,omitempty"` + + // Scheme a URI scheme, like `file` or `untitled`. + Scheme string `json:"scheme,omitempty"` + + // Pattern a glob pattern, like `*.{ts,js}`. + // + // Glob patterns can have the following syntax: + // "*" + // "*" to match one or more characters in a path segment + // "?" + // "?" to match on one character in a path segment + // "**" + // "**" to match any number of path segments, including none + // "{}" + // "{}" to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) + // "[]" + // "[]" to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) + // "[!...]" + // "[!...]" to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) + Pattern string `json:"pattern,omitempty"` +} + +// DocumentSelector is a document selector is the combination of one or more document filters. +type DocumentSelector []*DocumentFilter + +// MarkupKind describes the content type that a client supports in various +// result literals like `Hover`, `ParameterInfo` or `CompletionItem`. +// +// Please note that `MarkupKinds` must not start with a `$`. This kinds +// are reserved for internal usage. +type MarkupKind string + +const ( + // PlainText is supported as a content format. + PlainText MarkupKind = "plaintext" + + // Markdown is supported as a content format. + Markdown MarkupKind = "markdown" +) + +// MarkupContent a `MarkupContent` literal represents a string value which content is interpreted base on its +// kind flag. +// +// Currently the protocol supports `plaintext` and `markdown` as markup kinds. +// +// If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues. +// See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting +// +// Here is an example how such a string can be constructed using JavaScript / TypeScript: +// +// let markdown: MarkdownContent = { +// kind: MarkupKind.Markdown, +// value: [ +// '# Header', +// 'Some text', +// '```typescript', +// 'someCode();', +// '```' +// ].join('\n') +// }; +// +// NOTE: clients might sanitize the return markdown. A client could decide to +// remove HTML from the markdown to avoid script execution. +type MarkupContent struct { + // Kind is the type of the Markup + Kind MarkupKind `json:"kind"` + + // Value is the content itself + Value string `json:"value"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go b/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go new file mode 100644 index 0000000..69a4d13 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go @@ -0,0 +1,103 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// CallHierarchy capabilities specific to the "textDocument/callHierarchy". +// +// @since 3.16.0. +type CallHierarchy struct { + // DynamicRegistration whether implementation supports dynamic registration. + // + // If this is set to "true" the client supports the new + // TextDocumentRegistrationOptions && StaticRegistrationOptions return + // value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// CallHierarchyPrepareParams params of CallHierarchyPrepare. +// +// @since 3.16.0. +type CallHierarchyPrepareParams struct { + TextDocumentPositionParams + WorkDoneProgressParams +} + +// CallHierarchyItem is the result of a "textDocument/prepareCallHierarchy" request. +// +// @since 3.16.0. +type CallHierarchyItem struct { + // name is the name of this item. + Name string `json:"name"` + + // Kind is the kind of this item. + Kind SymbolKind `json:"kind"` + + // Tags for this item. + Tags []SymbolTag `json:"tags,omitempty"` + + // Detail more detail for this item, e.g. the signature of a function. + Detail string `json:"detail,omitempty"` + + // URI is the resource identifier of this item. + URI DocumentURI `json:"uri"` + + // Range is the range enclosing this symbol not including leading/trailing whitespace + // but everything else, e.g. comments and code. + Range Range `json:"range"` + + // SelectionRange is the range that should be selected and revealed when this symbol is being + // picked, e.g. the name of a function. Must be contained by the + // Range. + SelectionRange Range `json:"selectionRange"` + + // Data is a data entry field that is preserved between a call hierarchy prepare and + // incoming calls or outgoing calls requests. + Data any `json:"data,omitempty"` +} + +// CallHierarchyIncomingCallsParams params of CallHierarchyIncomingCalls. +// +// @since 3.16.0. +type CallHierarchyIncomingCallsParams struct { + WorkDoneProgressParams + PartialResultParams + + // Item is the IncomingCalls item. + Item CallHierarchyItem `json:"item"` +} + +// CallHierarchyIncomingCall is the result of a "callHierarchy/incomingCalls" request. +// +// @since 3.16.0. +type CallHierarchyIncomingCall struct { + // From is the item that makes the call. + From CallHierarchyItem `json:"from"` + + // FromRanges is the ranges at which the calls appear. This is relative to the caller + // denoted by From. + FromRanges []Range `json:"fromRanges"` +} + +// CallHierarchyOutgoingCallsParams params of CallHierarchyOutgoingCalls. +// +// @since 3.16.0. +type CallHierarchyOutgoingCallsParams struct { + WorkDoneProgressParams + PartialResultParams + + // Item is the OutgoingCalls item. + Item CallHierarchyItem `json:"item"` +} + +// CallHierarchyOutgoingCall is the result of a "callHierarchy/outgoingCalls" request. +// +// @since 3.16.0. +type CallHierarchyOutgoingCall struct { + // To is the item that is called. + To CallHierarchyItem `json:"to"` + + // FromRanges is the range at which this item is called. This is the range relative to + // the caller, e.g the item passed to "callHierarchy/outgoingCalls" request. + FromRanges []Range `json:"fromRanges"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go new file mode 100644 index 0000000..3d80bef --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go @@ -0,0 +1,1068 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import "strconv" + +// ClientCapabilities now define capabilities for dynamic registration, workspace and text document features +// the client supports. +// +// The experimental can be used to pass experimental capabilities under development. +// +// For future compatibility a ClientCapabilities object literal can have more properties set than currently defined. +// Servers receiving a ClientCapabilities object literal with unknown properties should ignore these properties. +// +// A missing property should be interpreted as an absence of the capability. +// If a missing property normally defines sub properties, all missing sub properties should be interpreted +// as an absence of the corresponding capability. +type ClientCapabilities struct { + // Workspace specific client capabilities. + Workspace *WorkspaceClientCapabilities `json:"workspace,omitempty"` + + // TextDocument specific client capabilities. + TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitempty"` + + // Window specific client capabilities. + Window *WindowClientCapabilities `json:"window,omitempty"` + + // General client capabilities. + // + // @since 3.16.0. + General *GeneralClientCapabilities `json:"general,omitempty"` + + // Experimental client capabilities. + Experimental any `json:"experimental,omitempty"` +} + +// WorkspaceClientCapabilities Workspace specific client capabilities. +type WorkspaceClientCapabilities struct { + // The client supports applying batch edits to the workspace by supporting + // the request "workspace/applyEdit". + ApplyEdit bool `json:"applyEdit,omitempty"` + + // WorkspaceEdit capabilities specific to `WorkspaceEdit`s. + WorkspaceEdit *WorkspaceClientCapabilitiesWorkspaceEdit `json:"workspaceEdit,omitempty"` + + // DidChangeConfiguration capabilities specific to the `workspace/didChangeConfiguration` notification. + DidChangeConfiguration *DidChangeConfigurationWorkspaceClientCapabilities `json:"didChangeConfiguration,omitempty"` + + // DidChangeWatchedFiles capabilities specific to the `workspace/didChangeWatchedFiles` notification. + DidChangeWatchedFiles *DidChangeWatchedFilesWorkspaceClientCapabilities `json:"didChangeWatchedFiles,omitempty"` + + // Symbol capabilities specific to the "workspace/symbol" request. + Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"` + + // ExecuteCommand capabilities specific to the "workspace/executeCommand" request. + ExecuteCommand *ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"` + + // WorkspaceFolders is the client has support for workspace folders. + // + // @since 3.6.0. + WorkspaceFolders bool `json:"workspaceFolders,omitempty"` + + // Configuration is the client supports "workspace/configuration" requests. + // + // @since 3.6.0. + Configuration bool `json:"configuration,omitempty"` + + // SemanticTokens is the capabilities specific to the semantic token requests scoped to the + // workspace. + // + // @since 3.16.0. + SemanticTokens *SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"` + + // CodeLens is the Capabilities specific to the code lens requests scoped to the + // workspace. + // + // @since 3.16.0. + CodeLens *CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"` + + // FileOperations is the client has support for file requests/notifications. + // + // @since 3.16.0. + FileOperations *WorkspaceClientCapabilitiesFileOperations `json:"fileOperations,omitempty"` +} + +// WorkspaceClientCapabilitiesWorkspaceEdit capabilities specific to "WorkspaceEdit"s. +type WorkspaceClientCapabilitiesWorkspaceEdit struct { + // DocumentChanges is the client supports versioned document changes in `WorkspaceEdit`s + DocumentChanges bool `json:"documentChanges,omitempty"` + + // FailureHandling is the failure handling strategy of a client if applying the workspace edit + // fails. + // + // Mostly FailureHandlingKind. + FailureHandling string `json:"failureHandling,omitempty"` + + // ResourceOperations is the resource operations the client supports. Clients should at least + // support "create", "rename" and "delete" files and folders. + ResourceOperations []string `json:"resourceOperations,omitempty"` + + // NormalizesLineEndings whether the client normalizes line endings to the client specific + // setting. + // If set to `true` the client will normalize line ending characters + // in a workspace edit to the client specific new line character(s). + // + // @since 3.16.0. + NormalizesLineEndings bool `json:"normalizesLineEndings,omitempty"` + + // ChangeAnnotationSupport whether the client in general supports change annotations on text edits, + // create file, rename file and delete file changes. + // + // @since 3.16.0. + ChangeAnnotationSupport *WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport `json:"changeAnnotationSupport,omitempty"` +} + +// FailureHandlingKind is the kind of failure handling . +type FailureHandlingKind string + +const ( + // FailureHandlingKindAbort applying the workspace change is simply aborted if one of the changes provided + // fails. All operations executed before the failing operation stay executed. + FailureHandlingKindAbort FailureHandlingKind = "abort" + + // FailureHandlingKindTransactional all operations are executed transactional. That means they either all + // succeed or no changes at all are applied to the workspace. + FailureHandlingKindTransactional FailureHandlingKind = "transactional" + + // FailureHandlingKindTextOnlyTransactional if the workspace edit contains only textual file changes they are executed transactional. + // If resource changes (create, rename or delete file) are part of the change the failure + // handling strategy is abort. + FailureHandlingKindTextOnlyTransactional FailureHandlingKind = "textOnlyTransactional" + + // FailureHandlingKindUndo the client tries to undo the operations already executed. But there is no + // guarantee that this is succeeding. + FailureHandlingKindUndo FailureHandlingKind = "undo" +) + +// WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport is the ChangeAnnotationSupport of WorkspaceClientCapabilitiesWorkspaceEdit. +// +// @since 3.16.0. +type WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport struct { + // GroupsOnLabel whether the client groups edits with equal labels into tree nodes, + // for instance all edits labeled with "Changes in Strings" would + // be a tree node. + GroupsOnLabel bool `json:"groupsOnLabel,omitempty"` +} + +// DidChangeConfigurationWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeConfiguration" notification. +// +// @since 3.16.0. +type DidChangeConfigurationWorkspaceClientCapabilities struct { + // DynamicRegistration whether the did change configuration notification supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DidChangeWatchedFilesWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeWatchedFiles" notification. +// +// @since 3.16.0. +type DidChangeWatchedFilesWorkspaceClientCapabilities struct { + // Did change watched files notification supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// WorkspaceSymbolClientCapabilities capabilities specific to the `workspace/symbol` request. +// +// WorkspaceSymbolClientCapabilities is the workspace symbol request is sent from the client to the server to +// list project-wide symbols matching the query string. +type WorkspaceSymbolClientCapabilities struct { + // DynamicRegistration is the Symbol request supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // SymbolKindCapabilities is the specific capabilities for the SymbolKindCapabilities in the "workspace/symbol" request. + SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` + + // TagSupport is the client supports tags on `SymbolInformation`. + // Clients supporting tags have to handle unknown tags gracefully. + // + // @since 3.16.0 + TagSupport *TagSupportCapabilities `json:"tagSupport,omitempty"` +} + +type SymbolKindCapabilities struct { + // ValueSet is the symbol kind values the client supports. When this + // property exists the client also guarantees that it will + // handle values outside its set gracefully and falls back + // to a default value when unknown. + // + // If this property is not present the client only supports + // the symbol kinds from `File` to `Array` as defined in + // the initial version of the protocol. + ValueSet []SymbolKind `json:"valueSet,omitempty"` +} + +type TagSupportCapabilities struct { + // ValueSet is the tags supported by the client. + ValueSet []SymbolTag `json:"valueSet,omitempty"` +} + +// ExecuteCommandClientCapabilities capabilities specific to the "workspace/executeCommand" request. +type ExecuteCommandClientCapabilities struct { + // DynamicRegistration Execute command supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// SemanticTokensWorkspaceClientCapabilities capabilities specific to the "workspace/semanticToken" request. +// +// @since 3.16.0. +type SemanticTokensWorkspaceClientCapabilities struct { + // RefreshSupport whether the client implementation supports a refresh request sent from + // the server to the client. + // + // Note that this event is global and will force the client to refresh all + // semantic tokens currently shown. It should be used with absolute care + // and is useful for situation where a server for example detect a project + // wide change that requires such a calculation. + RefreshSupport bool `json:"refreshSupport,omitempty"` +} + +// CodeLensWorkspaceClientCapabilities capabilities specific to the "workspace/codeLens" request. +// +// @since 3.16.0. +type CodeLensWorkspaceClientCapabilities struct { + // RefreshSupport whether the client implementation supports a refresh request sent from the + // server to the client. + // + // Note that this event is global and will force the client to refresh all + // code lenses currently shown. It should be used with absolute care and is + // useful for situation where a server for example detect a project wide + // change that requires such a calculation. + RefreshSupport bool `json:"refreshSupport,omitempty"` +} + +// WorkspaceClientCapabilitiesFileOperations capabilities specific to the fileOperations. +// +// @since 3.16.0. +type WorkspaceClientCapabilitiesFileOperations struct { + // DynamicRegistration whether the client supports dynamic registration for file + // requests/notifications. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // DidCreate is the client has support for sending didCreateFiles notifications. + DidCreate bool `json:"didCreate,omitempty"` + + // WillCreate is the client has support for sending willCreateFiles requests. + WillCreate bool `json:"willCreate,omitempty"` + + // DidRename is the client has support for sending didRenameFiles notifications. + DidRename bool `json:"didRename,omitempty"` + + // WillRename is the client has support for sending willRenameFiles requests. + WillRename bool `json:"willRename,omitempty"` + + // DidDelete is the client has support for sending didDeleteFiles notifications. + DidDelete bool `json:"didDelete,omitempty"` + + // WillDelete is the client has support for sending willDeleteFiles requests. + WillDelete bool `json:"willDelete,omitempty"` +} + +// TextDocumentClientCapabilities Text document specific client capabilities. +type TextDocumentClientCapabilities struct { + // Synchronization defines which synchronization capabilities the client supports. + Synchronization *TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"` + + // Completion Capabilities specific to the "textDocument/completion". + Completion *CompletionTextDocumentClientCapabilities `json:"completion,omitempty"` + + // Hover capabilities specific to the "textDocument/hover". + Hover *HoverTextDocumentClientCapabilities `json:"hover,omitempty"` + + // SignatureHelp capabilities specific to the "textDocument/signatureHelp". + SignatureHelp *SignatureHelpTextDocumentClientCapabilities `json:"signatureHelp,omitempty"` + + // Declaration capabilities specific to the "textDocument/declaration". + Declaration *DeclarationTextDocumentClientCapabilities `json:"declaration,omitempty"` + + // Definition capabilities specific to the "textDocument/definition". + // + // @since 3.14.0. + Definition *DefinitionTextDocumentClientCapabilities `json:"definition,omitempty"` + + // TypeDefinition capabilities specific to the "textDocument/typeDefinition". + // + // @since 3.6.0. + TypeDefinition *TypeDefinitionTextDocumentClientCapabilities `json:"typeDefinition,omitempty"` + + // Implementation capabilities specific to the "textDocument/implementation". + // + // @since 3.6.0. + Implementation *ImplementationTextDocumentClientCapabilities `json:"implementation,omitempty"` + + // References capabilities specific to the "textDocument/references". + References *ReferencesTextDocumentClientCapabilities `json:"references,omitempty"` + + // DocumentHighlight capabilities specific to the "textDocument/documentHighlight". + DocumentHighlight *DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"` + + // DocumentSymbol capabilities specific to the "textDocument/documentSymbol". + DocumentSymbol *DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"` + + // CodeAction capabilities specific to the "textDocument/codeAction". + CodeAction *CodeActionClientCapabilities `json:"codeAction,omitempty"` + + // CodeLens capabilities specific to the "textDocument/codeLens". + CodeLens *CodeLensClientCapabilities `json:"codeLens,omitempty"` + + // DocumentLink capabilities specific to the "textDocument/documentLink". + DocumentLink *DocumentLinkClientCapabilities `json:"documentLink,omitempty"` + + // ColorProvider capabilities specific to the "textDocument/documentColor" and the + // "textDocument/colorPresentation" request. + // + // @since 3.6.0. + ColorProvider *DocumentColorClientCapabilities `json:"colorProvider,omitempty"` + + // Formatting Capabilities specific to the "textDocument/formatting" request. + Formatting *DocumentFormattingClientCapabilities `json:"formatting,omitempty"` + + // RangeFormatting Capabilities specific to the "textDocument/rangeFormatting" request. + RangeFormatting *DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"` + + // OnTypeFormatting Capabilities specific to the "textDocument/onTypeFormatting" request. + OnTypeFormatting *DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"` + + // PublishDiagnostics capabilities specific to "textDocument/publishDiagnostics". + PublishDiagnostics *PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"` + + // Rename capabilities specific to the "textDocument/rename". + Rename *RenameClientCapabilities `json:"rename,omitempty"` + + // FoldingRange capabilities specific to "textDocument/foldingRange" requests. + // + // @since 3.10.0. + FoldingRange *FoldingRangeClientCapabilities `json:"foldingRange,omitempty"` + + // SelectionRange capabilities specific to "textDocument/selectionRange" requests. + // + // @since 3.15.0. + SelectionRange *SelectionRangeClientCapabilities `json:"selectionRange,omitempty"` + + // CallHierarchy capabilities specific to the various call hierarchy requests. + // + // @since 3.16.0. + CallHierarchy *CallHierarchyClientCapabilities `json:"callHierarchy,omitempty"` + + // SemanticTokens capabilities specific to the various semantic token requests. + // + // @since 3.16.0. + SemanticTokens *SemanticTokensClientCapabilities `json:"semanticTokens,omitempty"` + + // LinkedEditingRange capabilities specific to the "textDocument/linkedEditingRange" request. + // + // @since 3.16.0. + LinkedEditingRange *LinkedEditingRangeClientCapabilities `json:"linkedEditingRange,omitempty"` + + // Moniker capabilities specific to the "textDocument/moniker" request. + // + // @since 3.16.0. + Moniker *MonikerClientCapabilities `json:"moniker,omitempty"` +} + +// TextDocumentSyncClientCapabilities defines which synchronization capabilities the client supports. +type TextDocumentSyncClientCapabilities struct { + // DynamicRegistration whether text document synchronization supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // WillSave is the client supports sending will save notifications. + WillSave bool `json:"willSave,omitempty"` + + // WillSaveWaitUntil is the client supports sending a will save request and + // waits for a response providing text edits which will + // be applied to the document before it is saved. + WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` + + // DidSave is the client supports did save notifications. + DidSave bool `json:"didSave,omitempty"` +} + +// CompletionTextDocumentClientCapabilities Capabilities specific to the "textDocument/completion". +type CompletionTextDocumentClientCapabilities struct { + // Whether completion supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // The client supports the following `CompletionItem` specific + // capabilities. + CompletionItem *CompletionTextDocumentClientCapabilitiesItem `json:"completionItem,omitempty"` + + CompletionItemKind *CompletionTextDocumentClientCapabilitiesItemKind `json:"completionItemKind,omitempty"` + + // ContextSupport is the client supports to send additional context information for a + // `textDocument/completion` request. + ContextSupport bool `json:"contextSupport,omitempty"` +} + +// CompletionTextDocumentClientCapabilitiesItem is the client supports the following "CompletionItem" specific +// capabilities. +type CompletionTextDocumentClientCapabilitiesItem struct { + // SnippetSupport client supports snippets as insert text. + // + // A snippet can define tab stops and placeholders with `$1`, `$2` + // and `${3:foo}`. `$0` defines the final tab stop, it defaults to + // the end of the snippet. Placeholders with equal identifiers are linked, + // that is typing in one will update others too. + SnippetSupport bool `json:"snippetSupport,omitempty"` + + // CommitCharactersSupport client supports commit characters on a completion item. + CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"` + + // DocumentationFormat client supports the follow content formats for the documentation + // property. The order describes the preferred format of the client. + DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` + + // DeprecatedSupport client supports the deprecated property on a completion item. + DeprecatedSupport bool `json:"deprecatedSupport,omitempty"` + + // PreselectSupport client supports the preselect property on a completion item. + PreselectSupport bool `json:"preselectSupport,omitempty"` + + // TagSupport is the client supports the tag property on a completion item. + // + // Clients supporting tags have to handle unknown tags gracefully. + // Clients especially need to preserve unknown tags when sending + // a completion item back to the server in a resolve call. + // + // @since 3.15.0. + TagSupport *CompletionTextDocumentClientCapabilitiesItemTagSupport `json:"tagSupport,omitempty"` + + // InsertReplaceSupport client supports insert replace edit to control different behavior if + // a completion item is inserted in the text or should replace text. + // + // @since 3.16.0. + InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"` + + // ResolveSupport indicates which properties a client can resolve lazily on a + // completion item. Before version 3.16.0 only the predefined properties + // `documentation` and `details` could be resolved lazily. + // + // @since 3.16.0. + ResolveSupport *CompletionTextDocumentClientCapabilitiesItemResolveSupport `json:"resolveSupport,omitempty"` + + // InsertTextModeSupport is the client supports the `insertTextMode` property on + // a completion item to override the whitespace handling mode + // as defined by the client (see `insertTextMode`). + // + // @since 3.16.0. + InsertTextModeSupport *CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport `json:"insertTextModeSupport,omitempty"` +} + +// CompletionTextDocumentClientCapabilitiesItemTagSupport specific capabilities for the "TagSupport" in the "textDocument/completion" request. +// +// @since 3.15.0. +type CompletionTextDocumentClientCapabilitiesItemTagSupport struct { + // ValueSet is the tags supported by the client. + // + // @since 3.15.0. + ValueSet []CompletionItemTag `json:"valueSet,omitempty"` +} + +// CompletionTextDocumentClientCapabilitiesItemResolveSupport specific capabilities for the ResolveSupport in the CompletionTextDocumentClientCapabilitiesItem. +// +// @since 3.16.0. +type CompletionTextDocumentClientCapabilitiesItemResolveSupport struct { + // Properties is the properties that a client can resolve lazily. + Properties []string `json:"properties"` +} + +// CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport specific capabilities for the InsertTextModeSupport in the CompletionTextDocumentClientCapabilitiesItem. +// +// @since 3.16.0. +type CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport struct { + // ValueSet is the tags supported by the client. + // + // @since 3.16.0. + ValueSet []InsertTextMode `json:"valueSet,omitempty"` +} + +// CompletionTextDocumentClientCapabilitiesItemKind specific capabilities for the "CompletionItemKind" in the "textDocument/completion" request. +type CompletionTextDocumentClientCapabilitiesItemKind struct { + // The completion item kind values the client supports. When this + // property exists the client also guarantees that it will + // handle values outside its set gracefully and falls back + // to a default value when unknown. + // + // If this property is not present the client only supports + // the completion items kinds from `Text` to `Reference` as defined in + // the initial version of the protocol. + // + ValueSet []CompletionItemKind `json:"valueSet,omitempty"` +} + +// HoverTextDocumentClientCapabilities capabilities specific to the "textDocument/hover". +type HoverTextDocumentClientCapabilities struct { + // DynamicRegistration whether hover supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // ContentFormat is the client supports the follow content formats for the content + // property. The order describes the preferred format of the client. + ContentFormat []MarkupKind `json:"contentFormat,omitempty"` +} + +// SignatureHelpTextDocumentClientCapabilities capabilities specific to the "textDocument/signatureHelp". +type SignatureHelpTextDocumentClientCapabilities struct { + // DynamicRegistration whether signature help supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // SignatureInformation is the client supports the following "SignatureInformation" + // specific properties. + SignatureInformation *TextDocumentClientCapabilitiesSignatureInformation `json:"signatureInformation,omitempty"` + + // ContextSupport is the client supports to send additional context information for a "textDocument/signatureHelp" request. + // + // A client that opts into contextSupport will also support the "retriggerCharacters" on "SignatureHelpOptions". + // + // @since 3.15.0. + ContextSupport bool `json:"contextSupport,omitempty"` +} + +// TextDocumentClientCapabilitiesSignatureInformation is the client supports the following "SignatureInformation" +// specific properties. +type TextDocumentClientCapabilitiesSignatureInformation struct { + // DocumentationFormat is the client supports the follow content formats for the documentation + // property. The order describes the preferred format of the client. + DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` + + // ParameterInformation is the Client capabilities specific to parameter information. + ParameterInformation *TextDocumentClientCapabilitiesParameterInformation `json:"parameterInformation,omitempty"` + + // ActiveParameterSupport is the client supports the `activeParameter` property on + // `SignatureInformation` literal. + // + // @since 3.16.0. + ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"` +} + +// TextDocumentClientCapabilitiesParameterInformation is the client capabilities specific to parameter information. +type TextDocumentClientCapabilitiesParameterInformation struct { + // LabelOffsetSupport is the client supports processing label offsets instead of a + // simple label string. + // + // @since 3.14.0. + LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"` +} + +// DeclarationTextDocumentClientCapabilities capabilities specific to the "textDocument/declaration". +type DeclarationTextDocumentClientCapabilities struct { + // DynamicRegistration whether declaration supports dynamic registration. If this is set to `true` + // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // LinkSupport is the client supports additional metadata in the form of declaration links. + // + // @since 3.14.0. + LinkSupport bool `json:"linkSupport,omitempty"` +} + +// DefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/definition". +// +// @since 3.14.0. +type DefinitionTextDocumentClientCapabilities struct { + // DynamicRegistration whether definition supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // LinkSupport is the client supports additional metadata in the form of definition links. + LinkSupport bool `json:"linkSupport,omitempty"` +} + +// TypeDefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/typeDefinition". +// +// @since 3.6.0. +type TypeDefinitionTextDocumentClientCapabilities struct { + // DynamicRegistration whether typeDefinition supports dynamic registration. If this is set to `true` + // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // LinkSupport is the client supports additional metadata in the form of definition links. + // + // @since 3.14.0 + LinkSupport bool `json:"linkSupport,omitempty"` +} + +// ImplementationTextDocumentClientCapabilities capabilities specific to the "textDocument/implementation". +// +// @since 3.6.0. +type ImplementationTextDocumentClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration. If this is set to `true` + // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // LinkSupport is the client supports additional metadata in the form of definition links. + // + // @since 3.14.0 + LinkSupport bool `json:"linkSupport,omitempty"` +} + +// ReferencesTextDocumentClientCapabilities capabilities specific to the "textDocument/references". +type ReferencesTextDocumentClientCapabilities struct { + // DynamicRegistration whether references supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentHighlightClientCapabilities capabilities specific to the "textDocument/documentHighlight". +type DocumentHighlightClientCapabilities struct { + // DynamicRegistration Whether document highlight supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentSymbolClientCapabilities capabilities specific to the "textDocument/documentSymbol". +type DocumentSymbolClientCapabilities struct { + // DynamicRegistration whether document symbol supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // SymbolKind specific capabilities for the "SymbolKindCapabilities". + SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` + + // HierarchicalDocumentSymbolSupport is the client support hierarchical document symbols. + HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"` + + // TagSupport is the client supports tags on "SymbolInformation". Tags are supported on + // "DocumentSymbol" if "HierarchicalDocumentSymbolSupport" is set to true. + // Clients supporting tags have to handle unknown tags gracefully. + // + // @since 3.16.0. + TagSupport *DocumentSymbolClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` + + // LabelSupport is the client supports an additional label presented in the UI when + // registering a document symbol provider. + // + // @since 3.16.0. + LabelSupport bool `json:"labelSupport,omitempty"` +} + +// DocumentSymbolClientCapabilitiesTagSupport TagSupport in the DocumentSymbolClientCapabilities. +// +// @since 3.16.0. +type DocumentSymbolClientCapabilitiesTagSupport struct { + // ValueSet is the tags supported by the client. + ValueSet []SymbolTag `json:"valueSet"` +} + +// CodeActionClientCapabilities capabilities specific to the "textDocument/codeAction". +type CodeActionClientCapabilities struct { + // DynamicRegistration whether code action supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // CodeActionLiteralSupport is the client support code action literals as a valid + // response of the "textDocument/codeAction" request. + // + // @since 3.8.0 + CodeActionLiteralSupport *CodeActionClientCapabilitiesLiteralSupport `json:"codeActionLiteralSupport,omitempty"` + + // IsPreferredSupport whether code action supports the "isPreferred" property. + // + // @since 3.15.0. + IsPreferredSupport bool `json:"isPreferredSupport,omitempty"` + + // DisabledSupport whether code action supports the `disabled` property. + // + // @since 3.16.0. + DisabledSupport bool `json:"disabledSupport,omitempty"` + + // DataSupport whether code action supports the `data` property which is + // preserved between a `textDocument/codeAction` and a + // `codeAction/resolve` request. + // + // @since 3.16.0. + DataSupport bool `json:"dataSupport,omitempty"` + + // ResolveSupport whether the client supports resolving additional code action + // properties via a separate `codeAction/resolve` request. + // + // @since 3.16.0. + ResolveSupport *CodeActionClientCapabilitiesResolveSupport `json:"resolveSupport,omitempty"` + + // HonorsChangeAnnotations whether the client honors the change annotations in + // text edits and resource operations returned via the + // `CodeAction#edit` property by for example presenting + // the workspace edit in the user interface and asking + // for confirmation. + // + // @since 3.16.0. + HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` +} + +// CodeActionClientCapabilitiesLiteralSupport is the client support code action literals as a valid response of the "textDocument/codeAction" request. +type CodeActionClientCapabilitiesLiteralSupport struct { + // CodeActionKind is the code action kind is support with the following value + // set. + CodeActionKind *CodeActionClientCapabilitiesKind `json:"codeActionKind"` +} + +// CodeActionClientCapabilitiesKind is the code action kind is support with the following value set. +type CodeActionClientCapabilitiesKind struct { + // ValueSet is the code action kind values the client supports. When this + // property exists the client also guarantees that it will + // handle values outside its set gracefully and falls back + // to a default value when unknown. + ValueSet []CodeActionKind `json:"valueSet"` +} + +// CodeActionClientCapabilitiesResolveSupport ResolveSupport in the CodeActionClientCapabilities. +// +// @since 3.16.0. +type CodeActionClientCapabilitiesResolveSupport struct { + // Properties is the properties that a client can resolve lazily. + Properties []string `json:"properties"` +} + +// CodeLensClientCapabilities capabilities specific to the "textDocument/codeLens". +type CodeLensClientCapabilities struct { + // DynamicRegistration Whether code lens supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentLinkClientCapabilities capabilities specific to the "textDocument/documentLink". +type DocumentLinkClientCapabilities struct { + // DynamicRegistration whether document link supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // TooltipSupport whether the client supports the "tooltip" property on "DocumentLink". + // + // @since 3.15.0. + TooltipSupport bool `json:"tooltipSupport,omitempty"` +} + +// DocumentColorClientCapabilities capabilities specific to the "textDocument/documentColor" and the +// "textDocument/colorPresentation" request. +// +// @since 3.6.0. +type DocumentColorClientCapabilities struct { + // DynamicRegistration whether colorProvider supports dynamic registration. If this is set to `true` + // the client supports the new "(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentFormattingClientCapabilities capabilities specific to the "textDocument/formatting". +type DocumentFormattingClientCapabilities struct { + // DynamicRegistration whether code lens supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentRangeFormattingClientCapabilities capabilities specific to the "textDocument/rangeFormatting". +type DocumentRangeFormattingClientCapabilities struct { + // DynamicRegistration whether code lens supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// DocumentOnTypeFormattingClientCapabilities capabilities specific to the "textDocument/onTypeFormatting". +type DocumentOnTypeFormattingClientCapabilities struct { + // DynamicRegistration whether code lens supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// PublishDiagnosticsClientCapabilities capabilities specific to "textDocument/publishDiagnostics". +type PublishDiagnosticsClientCapabilities struct { + // RelatedInformation whether the clients accepts diagnostics with related information. + RelatedInformation bool `json:"relatedInformation,omitempty"` + + // TagSupport clients supporting tags have to handle unknown tags gracefully. + // + // @since 3.15.0. + TagSupport *PublishDiagnosticsClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` + + // VersionSupport whether the client interprets the version property of the + // "textDocument/publishDiagnostics" notification`s parameter. + // + // @since 3.15.0. + VersionSupport bool `json:"versionSupport,omitempty"` + + // CodeDescriptionSupport client supports a codeDescription property + // + // @since 3.16.0. + CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"` + + // DataSupport whether code action supports the `data` property which is + // preserved between a `textDocument/publishDiagnostics` and + // `textDocument/codeAction` request. + // + // @since 3.16.0. + DataSupport bool `json:"dataSupport,omitempty"` +} + +// PublishDiagnosticsClientCapabilitiesTagSupport is the client capacity of TagSupport. +// +// @since 3.15.0. +type PublishDiagnosticsClientCapabilitiesTagSupport struct { + // ValueSet is the tags supported by the client. + ValueSet []DiagnosticTag `json:"valueSet"` +} + +// RenameClientCapabilities capabilities specific to the "textDocument/rename". +type RenameClientCapabilities struct { + // DynamicRegistration whether rename supports dynamic registration. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // PrepareSupport is the client supports testing for validity of rename operations + // before execution. + PrepareSupport bool `json:"prepareSupport,omitempty"` + + // PrepareSupportDefaultBehavior client supports the default behavior result + // (`{ defaultBehavior: boolean }`). + // + // The value indicates the default behavior used by the + // client. + // + // @since 3.16.0. + PrepareSupportDefaultBehavior PrepareSupportDefaultBehavior `json:"prepareSupportDefaultBehavior,omitempty"` + + // HonorsChangeAnnotations whether th client honors the change annotations in + // text edits and resource operations returned via the + // rename request's workspace edit by for example presenting + // the workspace edit in the user interface and asking + // for confirmation. + // + // @since 3.16.0. + HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` +} + +// PrepareSupportDefaultBehavior default behavior of PrepareSupport. +// +// @since 3.16.0. +type PrepareSupportDefaultBehavior float64 + +// list of PrepareSupportDefaultBehavior. +const ( + // PrepareSupportDefaultBehaviorIdentifier is the client's default behavior is to select the identifier + // according the to language's syntax rule. + PrepareSupportDefaultBehaviorIdentifier PrepareSupportDefaultBehavior = 1 +) + +// String returns a string representation of the PrepareSupportDefaultBehavior. +func (k PrepareSupportDefaultBehavior) String() string { + switch k { + case PrepareSupportDefaultBehaviorIdentifier: + return "Identifier" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// FoldingRangeClientCapabilities capabilities specific to "textDocument/foldingRange" requests. +// +// @since 3.10.0. +type FoldingRangeClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration for folding range providers. If this is set to `true` + // the client supports the new "(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // RangeLimit is the maximum number of folding ranges that the client prefers to receive per document. The value serves as a + // hint, servers are free to follow the limit. + RangeLimit uint32 `json:"rangeLimit,omitempty"` + + // LineFoldingOnly if set, the client signals that it only supports folding complete lines. If set, client will + // ignore specified "startCharacter" and "endCharacter" properties in a FoldingRange. + LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"` +} + +// SelectionRangeClientCapabilities capabilities specific to "textDocument/selectionRange" requests. +// +// @since 3.16.0. +type SelectionRangeClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration for selection range providers. If this is set to `true` + // the client supports the new "(SelectionRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// CallHierarchyClientCapabilities capabilities specific to "textDocument/callHierarchy" requests. +// +// @since 3.16.0. +type CallHierarchyClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration. If this is set to + // `true` the client supports the new `(TextDocumentRegistrationOptions & + // StaticRegistrationOptions)` return value for the corresponding server + // capability as well.} + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// SemanticTokensClientCapabilities capabilities specific to the "textDocument.semanticTokens" request. +// +// @since 3.16.0. +type SemanticTokensClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration. If this is set to + // `true` the client supports the new `(TextDocumentRegistrationOptions & + // StaticRegistrationOptions)` return value for the corresponding server + // capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` + + // Requests which requests the client supports and might send to the server + // depending on the server's capability. Please note that clients might not + // show semantic tokens or degrade some of the user experience if a range + // or full request is advertised by the client but not provided by the + // server. If for example the client capability `requests.full` and + // `request.range` are both set to true but the server only provides a + // range provider the client might not render a minimap correctly or might + // even decide to not show any semantic tokens at all. + Requests SemanticTokensWorkspaceClientCapabilitiesRequests `json:"requests"` + + // TokenTypes is the token types that the client supports. + TokenTypes []string `json:"tokenTypes"` + + // TokenModifiers is the token modifiers that the client supports. + TokenModifiers []string `json:"tokenModifiers"` + + // Formats is the formats the clients supports. + Formats []TokenFormat `json:"formats"` + + // OverlappingTokenSupport whether the client supports tokens that can overlap each other. + OverlappingTokenSupport bool `json:"overlappingTokenSupport,omitempty"` + + // MultilineTokenSupport whether the client supports tokens that can span multiple lines. + MultilineTokenSupport bool `json:"multilineTokenSupport,omitempty"` +} + +// SemanticTokensWorkspaceClientCapabilitiesRequests capabilities specific to the "textDocument/semanticTokens/xxx" request. +// +// @since 3.16.0. +type SemanticTokensWorkspaceClientCapabilitiesRequests struct { + // Range is the client will send the "textDocument/semanticTokens/range" request + // if the server provides a corresponding handler. + Range bool `json:"range,omitempty"` + + // Full is the client will send the "textDocument/semanticTokens/full" request + // if the server provides a corresponding handler. The client will send the + // `textDocument/semanticTokens/full/delta` request if the server provides a + // corresponding handler. + Full any `json:"full,omitempty"` +} + +// LinkedEditingRangeClientCapabilities capabilities specific to "textDocument/linkedEditingRange" requests. +// +// @since 3.16.0. +type LinkedEditingRangeClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration. + // If this is set to `true` the client supports the new + // `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` + // return value for the corresponding server capability as well. + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// MonikerClientCapabilities capabilities specific to the "textDocument/moniker" request. +// +// @since 3.16.0. +type MonikerClientCapabilities struct { + // DynamicRegistration whether implementation supports dynamic registration. If this is set to + // `true` the client supports the new `(TextDocumentRegistrationOptions & + // StaticRegistrationOptions)` return value for the corresponding server + // capability as well.// DynamicRegistration whether implementation supports dynamic registration. If this is set to + DynamicRegistration bool `json:"dynamicRegistration,omitempty"` +} + +// WindowClientCapabilities represents a WindowClientCapabilities specific client capabilities. +// +// @since 3.15.0. +type WindowClientCapabilities struct { + // WorkDoneProgress whether client supports handling progress notifications. If set servers are allowed to + // report in "workDoneProgress" property in the request specific server capabilities. + // + // @since 3.15.0. + WorkDoneProgress bool `json:"workDoneProgress,omitempty"` + + // ShowMessage capabilities specific to the showMessage request. + // + // @since 3.16.0. + ShowMessage *ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"` + + // ShowDocument client capabilities for the show document request. + // + // @since 3.16.0. + ShowDocument *ShowDocumentClientCapabilities `json:"showDocument,omitempty"` +} + +// ShowMessageRequestClientCapabilities show message request client capabilities. +// +// @since 3.16.0. +type ShowMessageRequestClientCapabilities struct { + // MessageActionItem capabilities specific to the "MessageActionItem" type. + MessageActionItem *ShowMessageRequestClientCapabilitiesMessageActionItem `json:"messageActionItem,omitempty"` +} + +// ShowMessageRequestClientCapabilitiesMessageActionItem capabilities specific to the "MessageActionItem" type. +// +// @since 3.16.0. +type ShowMessageRequestClientCapabilitiesMessageActionItem struct { + // AdditionalPropertiesSupport whether the client supports additional attributes which + // are preserved and sent back to the server in the + // request's response. + AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"` +} + +// ShowDocumentClientCapabilities client capabilities for the show document request. +// +// @since 3.16.0. +type ShowDocumentClientCapabilities struct { + // Support is the client has support for the show document + // request. + Support bool `json:"support"` +} + +// GeneralClientCapabilities represents a General specific client capabilities. +// +// @since 3.16.0. +type GeneralClientCapabilities struct { + // RegularExpressions is the client capabilities specific to regular expressions. + // + // @since 3.16.0. + RegularExpressions *RegularExpressionsClientCapabilities `json:"regularExpressions,omitempty"` + + // Markdown client capabilities specific to the client's markdown parser. + // + // @since 3.16.0. + Markdown *MarkdownClientCapabilities `json:"markdown,omitempty"` +} + +// RegularExpressionsClientCapabilities represents a client capabilities specific to regular expressions. +// +// The following features from the ECMAScript 2020 regular expression specification are NOT mandatory for a client: +// +// Assertions +// +// Lookahead assertion, Negative lookahead assertion, lookbehind assertion, negative lookbehind assertion. +// +// Character classes +// +// Matching control characters using caret notation (e.g. "\cX") and matching UTF-16 code units (e.g. "\uhhhh"). +// +// Group and ranges +// +// Named capturing groups. +// +// Unicode property escapes +// +// None of the features needs to be supported. +// +// The only regular expression flag that a client needs to support is "i" to specify a case insensitive search. +// +// @since 3.16.0. +type RegularExpressionsClientCapabilities struct { + // Engine is the engine's name. + // + // Well known engine name is "ECMAScript". + // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + Engine string `json:"engine"` + + // Version is the engine's version. + // + // Well known engine version is "ES2020". + // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions + Version string `json:"version,omitempty"` +} + +// MarkdownClientCapabilities represents a client capabilities specific to the used markdown parser. +// +// @since 3.16.0. +type MarkdownClientCapabilities struct { + // Parser is the name of the parser. + Parser string `json:"parser"` + + // version is the version of the parser. + Version string `json:"version,omitempty"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go new file mode 100644 index 0000000..1a8dc05 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go @@ -0,0 +1,523 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "strconv" +) + +// ServerCapabilities efines the capabilities provided by a language server. +type ServerCapabilities struct { + // TextDocumentSync defines how text documents are synced. Is either a detailed structure defining each notification + // or for backwards compatibility the TextDocumentSyncKind number. + // + // If omitted it defaults to TextDocumentSyncKind.None` + TextDocumentSync any `json:"textDocumentSync,omitempty"` // *TextDocumentSyncOptions | TextDocumentSyncKind + + // CompletionProvider is The server provides completion support. + CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"` + + // HoverProvider is the server provides hover support. + HoverProvider any `json:"hoverProvider,omitempty"` // TODO(zchee): bool | *HoverOptions + + // SignatureHelpProvider is the server provides signature help support. + SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"` + + // DeclarationProvider is the server provides Goto Declaration support. + // + // @since 3.14.0. + DeclarationProvider any `json:"declarationProvider,omitempty"` // TODO(zchee): bool | *DeclarationOptions | *DeclarationRegistrationOptions + + // DefinitionProvider is the server provides Goto definition support. + DefinitionProvider any `json:"definitionProvider,omitempty"` // TODO(zchee): bool | *DefinitionOptions + + // TypeDefinitionProvider is the provides Goto Type Definition support. + // + // @since 3.6.0. + TypeDefinitionProvider any `json:"typeDefinitionProvider,omitempty"` // TODO(zchee): bool | *TypeDefinitionOptions | *TypeDefinitionRegistrationOptions + + // ImplementationProvider is the provides Goto Implementation support. + // + // @since 3.6.0. + ImplementationProvider any `json:"implementationProvider,omitempty"` // TODO(zchee): bool | *ImplementationOptions | *ImplementationRegistrationOptions + + // ReferencesProvider is the server provides find references support. + ReferencesProvider any `json:"referencesProvider,omitempty"` // TODO(zchee): bool | *ReferenceOptions + + // DocumentHighlightProvider is the server provides document highlight support. + DocumentHighlightProvider any `json:"documentHighlightProvider,omitempty"` // TODO(zchee): bool | *DocumentHighlightOptions + + // DocumentSymbolProvider is the server provides document symbol support. + DocumentSymbolProvider any `json:"documentSymbolProvider,omitempty"` // TODO(zchee): bool | *DocumentSymbolOptions + + // CodeActionProvider is the server provides code actions. + // + // CodeActionOptions may only be specified if the client states that it supports CodeActionLiteralSupport in its + // initial Initialize request. + CodeActionProvider any `json:"codeActionProvider,omitempty"` // TODO(zchee): bool | *CodeActionOptions + + // CodeLensProvider is the server provides code lens. + CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"` + + // The server provides document link support. + DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"` + + // ColorProvider is the server provides color provider support. + // + // @since 3.6.0. + ColorProvider any `json:"colorProvider,omitempty"` // TODO(zchee): bool | *DocumentColorOptions | *DocumentColorRegistrationOptions + + // WorkspaceSymbolProvider is the server provides workspace symbol support. + WorkspaceSymbolProvider any `json:"workspaceSymbolProvider,omitempty"` // TODO(zchee): bool | *WorkspaceSymbolOptions + + // DocumentFormattingProvider is the server provides document formatting. + DocumentFormattingProvider any `json:"documentFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentFormattingOptions + + // DocumentRangeFormattingProvider is the server provides document range formatting. + DocumentRangeFormattingProvider any `json:"documentRangeFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentRangeFormattingOptions + + // DocumentOnTypeFormattingProvider is the server provides document formatting on typing. + DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"` + + // RenameProvider is the server provides rename support. + // + // RenameOptions may only be specified if the client states that it supports PrepareSupport in its + // initial Initialize request. + RenameProvider any `json:"renameProvider,omitempty"` // TODO(zchee): bool | *RenameOptions + + // FoldingRangeProvider is the server provides folding provider support. + // + // @since 3.10.0. + FoldingRangeProvider any `json:"foldingRangeProvider,omitempty"` // TODO(zchee): bool | *FoldingRangeOptions | *FoldingRangeRegistrationOptions + + // SelectionRangeProvider is the server provides selection range support. + // + // @since 3.15.0. + SelectionRangeProvider any `json:"selectionRangeProvider,omitempty"` // TODO(zchee): bool | *SelectionRangeOptions | *SelectionRangeRegistrationOptions + + // ExecuteCommandProvider is the server provides execute command support. + ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"` + + // CallHierarchyProvider is the server provides call hierarchy support. + // + // @since 3.16.0. + CallHierarchyProvider any `json:"callHierarchyProvider,omitempty"` // TODO(zchee): bool | *CallHierarchyOptions | *CallHierarchyRegistrationOptions + + // LinkedEditingRangeProvider is the server provides linked editing range support. + // + // @since 3.16.0. + LinkedEditingRangeProvider any `json:"linkedEditingRangeProvider,omitempty"` // TODO(zchee): bool | *LinkedEditingRangeOptions | *LinkedEditingRangeRegistrationOptions + + // SemanticTokensProvider is the server provides semantic tokens support. + // + // @since 3.16.0. + SemanticTokensProvider any `json:"semanticTokensProvider,omitempty"` // TODO(zchee): *SemanticTokensOptions | *SemanticTokensRegistrationOptions + + // Workspace is the window specific server capabilities. + Workspace *ServerCapabilitiesWorkspace `json:"workspace,omitempty"` + + // MonikerProvider is the server provides moniker support. + // + // @since 3.16.0. + MonikerProvider any `json:"monikerProvider,omitempty"` // TODO(zchee): bool | *MonikerOptions | *MonikerRegistrationOptions + + // Experimental server capabilities. + Experimental any `json:"experimental,omitempty"` +} + +// TextDocumentSyncOptions TextDocumentSync options. +type TextDocumentSyncOptions struct { + // OpenClose open and close notifications are sent to the server. + OpenClose bool `json:"openClose,omitempty"` + + // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full + // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. + Change TextDocumentSyncKind `json:"change,omitempty"` + + // WillSave notifications are sent to the server. + WillSave bool `json:"willSave,omitempty"` + + // WillSaveWaitUntil will save wait until requests are sent to the server. + WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` + + // Save notifications are sent to the server. + Save *SaveOptions `json:"save,omitempty"` +} + +// SaveOptions save options. +type SaveOptions struct { + // IncludeText is the client is supposed to include the content on save. + IncludeText bool `json:"includeText,omitempty"` +} + +// TextDocumentSyncKind defines how the host (editor) should sync document changes to the language server. +type TextDocumentSyncKind float64 + +const ( + // TextDocumentSyncKindNone documents should not be synced at all. + TextDocumentSyncKindNone TextDocumentSyncKind = 0 + + // TextDocumentSyncKindFull documents are synced by always sending the full content + // of the document. + TextDocumentSyncKindFull TextDocumentSyncKind = 1 + + // TextDocumentSyncKindIncremental documents are synced by sending the full content on open. + // After that only incremental updates to the document are + // send. + TextDocumentSyncKindIncremental TextDocumentSyncKind = 2 +) + +// String implements fmt.Stringer. +func (k TextDocumentSyncKind) String() string { + switch k { + case TextDocumentSyncKindNone: + return "None" + case TextDocumentSyncKindFull: + return "Full" + case TextDocumentSyncKindIncremental: + return "Incremental" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// CompletionOptions Completion options. +type CompletionOptions struct { + // The server provides support to resolve additional + // information for a completion item. + ResolveProvider bool `json:"resolveProvider,omitempty"` + + // The characters that trigger completion automatically. + TriggerCharacters []string `json:"triggerCharacters,omitempty"` +} + +// HoverOptions option of hover provider server capabilities. +type HoverOptions struct { + WorkDoneProgressOptions +} + +// SignatureHelpOptions SignatureHelp options. +type SignatureHelpOptions struct { + // The characters that trigger signature help + // automatically. + TriggerCharacters []string `json:"triggerCharacters,omitempty"` + + // RetriggerCharacters is the slist of characters that re-trigger signature help. + // + // These trigger characters are only active when signature help is already + // showing. + // All trigger characters are also counted as re-trigger characters. + // + // @since 3.15.0. + RetriggerCharacters []string `json:"retriggerCharacters,omitempty"` +} + +// DeclarationOptions registration option of Declaration server capability. +// +// @since 3.15.0. +type DeclarationOptions struct { + WorkDoneProgressOptions +} + +// DeclarationRegistrationOptions registration option of Declaration server capability. +// +// @since 3.15.0. +type DeclarationRegistrationOptions struct { + DeclarationOptions + TextDocumentRegistrationOptions + StaticRegistrationOptions +} + +// DefinitionOptions registration option of Definition server capability. +// +// @since 3.15.0. +type DefinitionOptions struct { + WorkDoneProgressOptions +} + +// TypeDefinitionOptions registration option of TypeDefinition server capability. +// +// @since 3.15.0. +type TypeDefinitionOptions struct { + WorkDoneProgressOptions +} + +// TypeDefinitionRegistrationOptions registration option of TypeDefinition server capability. +// +// @since 3.15.0. +type TypeDefinitionRegistrationOptions struct { + TextDocumentRegistrationOptions + TypeDefinitionOptions + StaticRegistrationOptions +} + +// ImplementationOptions registration option of Implementation server capability. +// +// @since 3.15.0. +type ImplementationOptions struct { + WorkDoneProgressOptions +} + +// ImplementationRegistrationOptions registration option of Implementation server capability. +// +// @since 3.15.0. +type ImplementationRegistrationOptions struct { + TextDocumentRegistrationOptions + ImplementationOptions + StaticRegistrationOptions +} + +// ReferenceOptions registration option of Reference server capability. +type ReferenceOptions struct { + WorkDoneProgressOptions +} + +// DocumentHighlightOptions registration option of DocumentHighlight server capability. +// +// @since 3.15.0. +type DocumentHighlightOptions struct { + WorkDoneProgressOptions +} + +// DocumentSymbolOptions registration option of DocumentSymbol server capability. +// +// @since 3.15.0. +type DocumentSymbolOptions struct { + WorkDoneProgressOptions + + // Label a human-readable string that is shown when multiple outlines trees + // are shown for the same document. + // + // @since 3.16.0. + Label string `json:"label,omitempty"` +} + +// CodeActionOptions CodeAction options. +type CodeActionOptions struct { + // CodeActionKinds that this server may return. + // + // The list of kinds may be generic, such as "CodeActionKind.Refactor", or the server + // may list out every specific kind they provide. + CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"` + + // ResolveProvider is the server provides support to resolve additional + // information for a code action. + // + // @since 3.16.0. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// CodeLensOptions CodeLens options. +type CodeLensOptions struct { + // Code lens has a resolve provider as well. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// DocumentLinkOptions document link options. +type DocumentLinkOptions struct { + // ResolveProvider document links have a resolve provider as well. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// DocumentColorOptions registration option of DocumentColor server capability. +// +// @since 3.15.0. +type DocumentColorOptions struct { + WorkDoneProgressOptions +} + +// DocumentColorRegistrationOptions registration option of DocumentColor server capability. +// +// @since 3.15.0. +type DocumentColorRegistrationOptions struct { + TextDocumentRegistrationOptions + StaticRegistrationOptions + DocumentColorOptions +} + +// WorkspaceSymbolOptions registration option of WorkspaceSymbol server capability. +// +// @since 3.15.0. +type WorkspaceSymbolOptions struct { + WorkDoneProgressOptions +} + +// DocumentFormattingOptions registration option of DocumentFormatting server capability. +// +// @since 3.15.0. +type DocumentFormattingOptions struct { + WorkDoneProgressOptions +} + +// DocumentRangeFormattingOptions registration option of DocumentRangeFormatting server capability. +// +// @since 3.15.0. +type DocumentRangeFormattingOptions struct { + WorkDoneProgressOptions +} + +// DocumentOnTypeFormattingOptions format document on type options. +type DocumentOnTypeFormattingOptions struct { + // FirstTriggerCharacter a character on which formatting should be triggered, like "}". + FirstTriggerCharacter string `json:"firstTriggerCharacter"` + + // MoreTriggerCharacter more trigger characters. + MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"` +} + +// RenameOptions rename options. +type RenameOptions struct { + // PrepareProvider renames should be checked and tested before being executed. + PrepareProvider bool `json:"prepareProvider,omitempty"` +} + +// FoldingRangeOptions registration option of FoldingRange server capability. +// +// @since 3.15.0. +type FoldingRangeOptions struct { + WorkDoneProgressOptions +} + +// FoldingRangeRegistrationOptions registration option of FoldingRange server capability. +// +// @since 3.15.0. +type FoldingRangeRegistrationOptions struct { + TextDocumentRegistrationOptions + FoldingRangeOptions + StaticRegistrationOptions +} + +// ExecuteCommandOptions execute command options. +type ExecuteCommandOptions struct { + // Commands is the commands to be executed on the server + Commands []string `json:"commands"` +} + +// CallHierarchyOptions option of CallHierarchy. +// +// @since 3.16.0. +type CallHierarchyOptions struct { + WorkDoneProgressOptions +} + +// CallHierarchyRegistrationOptions registration options of CallHierarchy. +// +// @since 3.16.0. +type CallHierarchyRegistrationOptions struct { + TextDocumentRegistrationOptions + CallHierarchyOptions + StaticRegistrationOptions +} + +// LinkedEditingRangeOptions option of linked editing range provider server capabilities. +// +// @since 3.16.0. +type LinkedEditingRangeOptions struct { + WorkDoneProgressOptions +} + +// LinkedEditingRangeRegistrationOptions registration option of linked editing range provider server capabilities. +// +// @since 3.16.0. +type LinkedEditingRangeRegistrationOptions struct { + TextDocumentRegistrationOptions + LinkedEditingRangeOptions + StaticRegistrationOptions +} + +// SemanticTokensOptions option of semantic tokens provider server capabilities. +// +// @since 3.16.0. +type SemanticTokensOptions struct { + WorkDoneProgressOptions +} + +// SemanticTokensRegistrationOptions registration option of semantic tokens provider server capabilities. +// +// @since 3.16.0. +type SemanticTokensRegistrationOptions struct { + TextDocumentRegistrationOptions + SemanticTokensOptions + StaticRegistrationOptions +} + +// ServerCapabilitiesWorkspace specific server capabilities. +type ServerCapabilitiesWorkspace struct { + // WorkspaceFolders is the server supports workspace folder. + // + // @since 3.6.0. + WorkspaceFolders *ServerCapabilitiesWorkspaceFolders `json:"workspaceFolders,omitempty"` + + // FileOperations is the server is interested in file notifications/requests. + // + // @since 3.16.0. + FileOperations *ServerCapabilitiesWorkspaceFileOperations `json:"fileOperations,omitempty"` +} + +// ServerCapabilitiesWorkspaceFolders is the server supports workspace folder. +// +// @since 3.6.0. +type ServerCapabilitiesWorkspaceFolders struct { + // Supported is the server has support for workspace folders + Supported bool `json:"supported,omitempty"` + + // ChangeNotifications whether the server wants to receive workspace folder + // change notifications. + // + // If a strings is provided the string is treated as a ID + // under which the notification is registered on the client + // side. The ID can be used to unregister for these events + // using the `client/unregisterCapability` request. + ChangeNotifications any `json:"changeNotifications,omitempty"` // string | boolean +} + +// ServerCapabilitiesWorkspaceFileOperations is the server is interested in file notifications/requests. +// +// @since 3.16.0. +type ServerCapabilitiesWorkspaceFileOperations struct { + // DidCreate is the server is interested in receiving didCreateFiles + // notifications. + DidCreate *FileOperationRegistrationOptions `json:"didCreate,omitempty"` + + // WillCreate is the server is interested in receiving willCreateFiles requests. + WillCreate *FileOperationRegistrationOptions `json:"willCreate,omitempty"` + + // DidRename is the server is interested in receiving didRenameFiles + // notifications. + DidRename *FileOperationRegistrationOptions `json:"didRename,omitempty"` + + // WillRename is the server is interested in receiving willRenameFiles requests. + WillRename *FileOperationRegistrationOptions `json:"willRename,omitempty"` + + // DidDelete is the server is interested in receiving didDeleteFiles file + // notifications. + DidDelete *FileOperationRegistrationOptions `json:"didDelete,omitempty"` + + // WillDelete is the server is interested in receiving willDeleteFiles file + // requests. + WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitempty"` +} + +// FileOperationRegistrationOptions is the options to register for file operations. +// +// @since 3.16.0. +type FileOperationRegistrationOptions struct { + // filters is the actual filters. + Filters []FileOperationFilter `json:"filters"` +} + +// MonikerOptions option of moniker provider server capabilities. +// +// @since 3.16.0. +type MonikerOptions struct { + WorkDoneProgressOptions +} + +// MonikerRegistrationOptions registration option of moniker provider server capabilities. +// +// @since 3.16.0. +type MonikerRegistrationOptions struct { + TextDocumentRegistrationOptions + MonikerOptions +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/client.go b/vendor/github.com/a-h/templ/lsp/protocol/client.go new file mode 100644 index 0000000..0526514 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/client.go @@ -0,0 +1,412 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "bytes" + "context" + "fmt" + "log/slog" + + "encoding/json" + + "github.com/a-h/templ/lsp/jsonrpc2" + "github.com/a-h/templ/lsp/xcontext" +) + +// ClientDispatcher returns a Client that dispatches LSP requests across the +// given jsonrpc2 connection. +func ClientDispatcher(conn jsonrpc2.Conn, logger *slog.Logger) Client { + return &client{ + Conn: conn, + logger: logger, + } +} + +// ClientHandler handler of LSP client. +func ClientHandler(log *slog.Logger, client Client, handler jsonrpc2.Handler) jsonrpc2.Handler { + h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { + if ctx.Err() != nil { + xctx := xcontext.Detach(ctx) + + return reply(xctx, nil, ErrRequestCancelled) + } + + handled, err := clientDispatch(ctx, log, client, reply, req) + if handled || err != nil { + return err + } + + return handler(ctx, reply, req) + } + + return h +} + +// clientDispatch implements jsonrpc2.Handler. +// +//nolint:funlen,cyclop +func clientDispatch(ctx context.Context, log *slog.Logger, client Client, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { + if ctx.Err() != nil { + return true, reply(ctx, nil, ErrRequestCancelled) + } + + dec := json.NewDecoder(bytes.NewReader(req.Params())) + + switch req.Method() { + case MethodProgress: // notification + defer log.Debug(MethodProgress, slog.Any("error", err)) + + var params ProgressParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.Progress(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWorkDoneProgressCreate: // request + defer log.Debug(MethodWorkDoneProgressCreate, slog.Any("error", err)) + + var params WorkDoneProgressCreateParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.WorkDoneProgressCreate(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWindowLogMessage: // notification + defer log.Debug(MethodWindowLogMessage, slog.Any("error", err)) + + var params LogMessageParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.LogMessage(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentPublishDiagnostics: // notification + defer log.Debug(MethodTextDocumentPublishDiagnostics, slog.Any("error", err)) + + var params PublishDiagnosticsParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.PublishDiagnostics(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWindowShowMessage: // notification + defer log.Debug(MethodWindowShowMessage, slog.Any("error", err)) + + var params ShowMessageParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.ShowMessage(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWindowShowMessageRequest: // request + defer log.Debug(MethodWindowShowMessageRequest, slog.Any("error", err)) + + var params ShowMessageRequestParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := client.ShowMessageRequest(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTelemetryEvent: // notification + defer log.Debug(MethodTelemetryEvent, slog.Any("error", err)) + + var params any + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.Telemetry(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodClientRegisterCapability: // request + defer log.Debug(MethodClientRegisterCapability, slog.Any("error", err)) + + var params RegistrationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.RegisterCapability(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodClientUnregisterCapability: // request + defer log.Debug(MethodClientUnregisterCapability, slog.Any("error", err)) + + var params UnregistrationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := client.UnregisterCapability(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWorkspaceApplyEdit: // request + defer log.Debug(MethodWorkspaceApplyEdit, slog.Any("error", err)) + + var params ApplyWorkspaceEditParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := client.ApplyEdit(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodWorkspaceConfiguration: // request + defer log.Debug(MethodWorkspaceConfiguration, slog.Any("error", err)) + + var params ConfigurationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := client.Configuration(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodWorkspaceWorkspaceFolders: // request + defer log.Debug(MethodWorkspaceWorkspaceFolders, slog.Any("error", err)) + + if len(req.Params()) > 0 { + return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) + } + + resp, err := client.WorkspaceFolders(ctx) + + return true, reply(ctx, resp, err) + + default: + return false, nil + } +} + +// Client represents a Language Server Protocol client. +type Client interface { + Progress(ctx context.Context, params *ProgressParams) (err error) + WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) + LogMessage(ctx context.Context, params *LogMessageParams) (err error) + PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) + ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) + ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (result *MessageActionItem, err error) + Telemetry(ctx context.Context, params any) (err error) + RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) + UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) + ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result *ApplyWorkspaceEditResponse, err error) + Configuration(ctx context.Context, params *ConfigurationParams) (result []any, err error) + WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) +} + +// list of client methods. +const ( + // MethodProgress method name of "$/progress". + MethodProgress = "$/progress" + + // MethodWorkDoneProgressCreate method name of "window/workDoneProgress/create". + MethodWorkDoneProgressCreate = "window/workDoneProgress/create" + + // MethodWindowShowMessage method name of "window/showMessage". + MethodWindowShowMessage = "window/showMessage" + + // MethodWindowShowMessageRequest method name of "window/showMessageRequest. + MethodWindowShowMessageRequest = "window/showMessageRequest" + + // MethodWindowLogMessage method name of "window/logMessage. + MethodWindowLogMessage = "window/logMessage" + + // MethodTelemetryEvent method name of "telemetry/event. + MethodTelemetryEvent = "telemetry/event" + + // MethodClientRegisterCapability method name of "client/registerCapability. + MethodClientRegisterCapability = "client/registerCapability" + + // MethodClientUnregisterCapability method name of "client/unregisterCapability. + MethodClientUnregisterCapability = "client/unregisterCapability" + + // MethodTextDocumentPublishDiagnostics method name of "textDocument/publishDiagnostics. + MethodTextDocumentPublishDiagnostics = "textDocument/publishDiagnostics" + + // MethodWorkspaceApplyEdit method name of "workspace/applyEdit. + MethodWorkspaceApplyEdit = "workspace/applyEdit" + + // MethodWorkspaceConfiguration method name of "workspace/configuration. + MethodWorkspaceConfiguration = "workspace/configuration" + + // MethodWorkspaceWorkspaceFolders method name of "workspace/workspaceFolders". + MethodWorkspaceWorkspaceFolders = "workspace/workspaceFolders" +) + +// client implements a Language Server Protocol client. +type client struct { + jsonrpc2.Conn + + logger *slog.Logger +} + +// compiler time check whether the Client implements ClientInterface interface. +var _ Client = (*client)(nil) + +// Progress is the base protocol offers also support to report progress in a generic fashion. +// +// This mechanism can be used to report any kind of progress including work done progress (usually used to report progress in the user interface using a progress bar) and +// partial result progress to support streaming of results. +// +// @since 3.16.0. +func (c *client) Progress(ctx context.Context, params *ProgressParams) (err error) { + c.logger.Debug("call " + MethodProgress) + defer c.logger.Debug("end "+MethodProgress, slog.Any("error", err)) + + return c.Notify(ctx, MethodProgress, params) +} + +// WorkDoneProgressCreate sends the request is sent from the server to the client to ask the client to create a work done progress. +// +// @since 3.16.0. +func (c *client) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) { + c.logger.Debug("call " + MethodWorkDoneProgressCreate) + defer c.logger.Debug("end "+MethodWorkDoneProgressCreate, slog.Any("error", err)) + + return Call(ctx, c.Conn, MethodWorkDoneProgressCreate, params, nil) +} + +// LogMessage sends the notification from the server to the client to ask the client to log a particular message. +func (c *client) LogMessage(ctx context.Context, params *LogMessageParams) (err error) { + c.logger.Debug("call " + MethodWindowLogMessage) + defer c.logger.Debug("end "+MethodWindowLogMessage, slog.Any("error", err)) + + return c.Notify(ctx, MethodWindowLogMessage, params) +} + +// PublishDiagnostics sends the notification from the server to the client to signal results of validation runs. +// +// Diagnostics are “owned” by the server so it is the server’s responsibility to clear them if necessary. The following rule is used for VS Code servers that generate diagnostics: +// +// - if a language is single file only (for example HTML) then diagnostics are cleared by the server when the file is closed. +// - if a language has a project system (for example C#) diagnostics are not cleared when a file closes. When a project is opened all diagnostics for all files are recomputed (or read from a cache). +// +// When a file changes it is the server’s responsibility to re-compute diagnostics and push them to the client. +// If the computed set is empty it has to push the empty array to clear former diagnostics. +// Newly pushed diagnostics always replace previously pushed diagnostics. There is no merging that happens on the client side. +func (c *client) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) { + c.logger.Debug("call " + MethodTextDocumentPublishDiagnostics) + defer c.logger.Debug("end "+MethodTextDocumentPublishDiagnostics, slog.Any("error", err)) + + return c.Notify(ctx, MethodTextDocumentPublishDiagnostics, params) +} + +// ShowMessage sends the notification from a server to a client to ask the +// client to display a particular message in the user interface. +func (c *client) ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) { + return c.Notify(ctx, MethodWindowShowMessage, params) +} + +// ShowMessageRequest sends the request from a server to a client to ask the client to display a particular message in the user interface. +// +// In addition to the show message notification the request allows to pass actions and to wait for an answer from the client. +func (c *client) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (_ *MessageActionItem, err error) { + c.logger.Debug("call " + MethodWindowShowMessageRequest) + defer c.logger.Debug("end "+MethodWindowShowMessageRequest, slog.Any("error", err)) + + var result *MessageActionItem + if err := Call(ctx, c.Conn, MethodWindowShowMessageRequest, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Telemetry sends the notification from the server to the client to ask the client to log a telemetry event. +func (c *client) Telemetry(ctx context.Context, params any) (err error) { + c.logger.Debug("call " + MethodTelemetryEvent) + defer c.logger.Debug("end "+MethodTelemetryEvent, slog.Any("error", err)) + + return c.Notify(ctx, MethodTelemetryEvent, params) +} + +// RegisterCapability sends the request from the server to the client to register for a new capability on the client side. +// +// Not all clients need to support dynamic capability registration. +// +// A client opts in via the dynamicRegistration property on the specific client capabilities. +// A client can even provide dynamic registration for capability A but not for capability B (see TextDocumentClientCapabilities as an example). +func (c *client) RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) { + c.logger.Debug("call " + MethodClientRegisterCapability) + defer c.logger.Debug("end "+MethodClientRegisterCapability, slog.Any("error", err)) + + return Call(ctx, c.Conn, MethodClientRegisterCapability, params, nil) +} + +// UnregisterCapability sends the request from the server to the client to unregister a previously registered capability. +func (c *client) UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) { + c.logger.Debug("call " + MethodClientUnregisterCapability) + defer c.logger.Debug("end "+MethodClientUnregisterCapability, slog.Any("error", err)) + + return Call(ctx, c.Conn, MethodClientUnregisterCapability, params, nil) +} + +// ApplyEdit sends the request from the server to the client to modify resource on the client side. +func (c *client) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result *ApplyWorkspaceEditResponse, err error) { + c.logger.Debug("call " + MethodWorkspaceApplyEdit) + defer c.logger.Debug("end "+MethodWorkspaceApplyEdit, slog.Any("error", err)) + + if err := Call(ctx, c.Conn, MethodWorkspaceApplyEdit, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Configuration sends the request from the server to the client to fetch configuration settings from the client. +// +// The request can fetch several configuration settings in one roundtrip. +// The order of the returned configuration settings correspond to the order of the +// passed ConfigurationItems (e.g. the first item in the response is the result for the first configuration item in the params). +func (c *client) Configuration(ctx context.Context, params *ConfigurationParams) (_ []any, err error) { + c.logger.Debug("call " + MethodWorkspaceConfiguration) + defer c.logger.Debug("end "+MethodWorkspaceConfiguration, slog.Any("error", err)) + + var result []any + if err := Call(ctx, c.Conn, MethodWorkspaceConfiguration, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// WorkspaceFolders sends the request from the server to the client to fetch the current open list of workspace folders. +// +// Returns null in the response if only a single file is open in the tool. Returns an empty array if a workspace is open but no folders are configured. +// +// @since 3.6.0. +func (c *client) WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) { + c.logger.Debug("call " + MethodWorkspaceWorkspaceFolders) + defer c.logger.Debug("end "+MethodWorkspaceWorkspaceFolders, slog.Any("error", err)) + + if err := Call(ctx, c.Conn, MethodWorkspaceWorkspaceFolders, nil, &result); err != nil { + return nil, err + } + + return result, nil +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/context.go b/vendor/github.com/a-h/templ/lsp/protocol/context.go new file mode 100644 index 0000000..253f93b --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/context.go @@ -0,0 +1,26 @@ +// SPDX-FileCopyrightText: 2020 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "context" +) + +type ctxClientKey int + +var ctxClient ctxClientKey = 0 + +// WithClient returns the context with Client value. +func WithClient(ctx context.Context, client Client) context.Context { + return context.WithValue(ctx, ctxClient, client) +} + +// ClientFromContext extracts Client from context. +func ClientFromContext(ctx context.Context) Client { + client, ok := ctx.Value(ctxClient).(Client) + if !ok { + return nil + } + return client +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go b/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go new file mode 100644 index 0000000..fa4b216 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go @@ -0,0 +1,264 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// ClientCapabilitiesShowDocument alias of ShowDocumentClientCapabilities. +// +// Deprecated: Use ShowDocumentClientCapabilities instead. +type ClientCapabilitiesShowDocument = ShowDocumentClientCapabilities + +// ClientCapabilitiesShowMessageRequest alias of ShowMessageRequestClientCapabilities. +// +// Deprecated: Use ShowMessageRequestClientCapabilities instead. +type ClientCapabilitiesShowMessageRequest = ShowMessageRequestClientCapabilities + +// ClientCapabilitiesShowMessageRequestMessageActionItem alias of ShowMessageRequestClientCapabilitiesMessageActionItem. +// +// Deprecated: Use ShowMessageRequestClientCapabilitiesMessageActionItem instead. +type ClientCapabilitiesShowMessageRequestMessageActionItem = ShowMessageRequestClientCapabilitiesMessageActionItem + +// ReferencesParams alias of ReferenceParams. +// +// Deprecated: Use ReferenceParams instead. +type ReferencesParams = ReferenceParams + +// TextDocumentClientCapabilitiesCallHierarchy alias of CallHierarchyClientCapabilities. +// +// Deprecated: Use CallHierarchyClientCapabilities instead. +type TextDocumentClientCapabilitiesCallHierarchy = CallHierarchyClientCapabilities + +// TextDocumentClientCapabilitiesCodeAction alias of CodeActionClientCapabilities. +// +// Deprecated: Use CodeActionClientCapabilities instead. +type TextDocumentClientCapabilitiesCodeAction = CodeActionClientCapabilities + +// TextDocumentClientCapabilitiesCodeActionKind alias of CodeActionClientCapabilitiesKind. +// +// Deprecated: Use CodeActionClientCapabilitiesKind instead. +type TextDocumentClientCapabilitiesCodeActionKind = CodeActionClientCapabilitiesKind + +// TextDocumentClientCapabilitiesCodeActionLiteralSupport alias of CodeActionClientCapabilitiesLiteralSupport. +// +// Deprecated: Use CodeActionClientCapabilitiesLiteralSupport instead. +type TextDocumentClientCapabilitiesCodeActionLiteralSupport = CodeActionClientCapabilitiesLiteralSupport + +// TextDocumentClientCapabilitiesCodeActionResolveSupport alias of CodeActionClientCapabilitiesResolveSupport. +// +// Deprecated: Use CodeActionClientCapabilitiesResolveSupport instead. +type TextDocumentClientCapabilitiesCodeActionResolveSupport = CodeActionClientCapabilitiesResolveSupport + +// TextDocumentClientCapabilitiesCodeLens alias of CodeLensClientCapabilities. +// +// Deprecated: Use CodeLensClientCapabilities instead. +type TextDocumentClientCapabilitiesCodeLens = CodeLensClientCapabilities + +// TextDocumentClientCapabilitiesColorProvider alias of DocumentColorClientCapabilities. +// +// Deprecated: Use DocumentColorClientCapabilities instead. +type TextDocumentClientCapabilitiesColorProvider = DocumentColorClientCapabilities + +// TextDocumentClientCapabilitiesCompletion alias of CompletionTextDocumentClientCapabilities. +// +// Deprecated: Use CompletionTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesCompletion = CompletionTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesCompletionItem alias of CompletionTextDocumentClientCapabilitiesItem. +// +// Deprecated: Use CompletionTextDocumentClientCapabilitiesItem instead. +type TextDocumentClientCapabilitiesCompletionItem = CompletionTextDocumentClientCapabilitiesItem + +// TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport alias of CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport. +// +// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport instead. +type TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport = CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport + +// TextDocumentClientCapabilitiesCompletionItemKind alias of CompletionTextDocumentClientCapabilitiesItemKind. +// +// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemKind instead. +type TextDocumentClientCapabilitiesCompletionItemKind = CompletionTextDocumentClientCapabilitiesItemKind + +// TextDocumentClientCapabilitiesCompletionItemResolveSupport alias of CompletionTextDocumentClientCapabilitiesItemResolveSupport. +// +// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemResolveSupport instead. +type TextDocumentClientCapabilitiesCompletionItemResolveSupport = CompletionTextDocumentClientCapabilitiesItemResolveSupport + +// TextDocumentClientCapabilitiesCompletionItemTagSupport alias of CompletionTextDocumentClientCapabilitiesItemTagSupport. +// +// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemTagSupport instead. +type TextDocumentClientCapabilitiesCompletionItemTagSupport = CompletionTextDocumentClientCapabilitiesItemTagSupport + +// TextDocumentClientCapabilitiesDeclaration alias of DeclarationTextDocumentClientCapabilities. +// +// Deprecated: Use DeclarationTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesDeclaration = DeclarationTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesDefinition alias of DefinitionTextDocumentClientCapabilities. +// +// Deprecated: Use DefinitionTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesDefinition = DefinitionTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesDocumentHighlight alias of DocumentHighlightClientCapabilities. +// +// Deprecated: Use DocumentHighlightClientCapabilities instead. +type TextDocumentClientCapabilitiesDocumentHighlight = DocumentHighlightClientCapabilities + +// TextDocumentClientCapabilitiesDocumentLink alias of DocumentLinkClientCapabilities. +// +// Deprecated: Use DocumentLinkClientCapabilities instead. +type TextDocumentClientCapabilitiesDocumentLink = DocumentLinkClientCapabilities + +// TextDocumentClientCapabilitiesDocumentSymbol alias of DocumentSymbolClientCapabilities. +// +// Deprecated: Use DocumentSymbolClientCapabilities instead. +type TextDocumentClientCapabilitiesDocumentSymbol = DocumentSymbolClientCapabilities + +// TextDocumentClientCapabilitiesDocumentSymbolTagSupport alias of DocumentSymbolClientCapabilitiesTagSupport. +// +// Deprecated: Use DocumentSymbolClientCapabilitiesTagSupport instead. +type TextDocumentClientCapabilitiesDocumentSymbolTagSupport = DocumentSymbolClientCapabilitiesTagSupport + +// TextDocumentClientCapabilitiesFoldingRange alias of FoldingRangeClientCapabilities. +// +// Deprecated: Use FoldingRangeClientCapabilities instead. +type TextDocumentClientCapabilitiesFoldingRange = FoldingRangeClientCapabilities + +// TextDocumentClientCapabilitiesFormatting alias of DocumentFormattingClientCapabilities. +// +// Deprecated: Use DocumentFormattingClientCapabilities instead. +type TextDocumentClientCapabilitiesFormatting = DocumentFormattingClientCapabilities + +// TextDocumentClientCapabilitiesHover alias of HoverTextDocumentClientCapabilities. +// +// Deprecated: Use HoverTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesHover = HoverTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesImplementation alias of ImplementationTextDocumentClientCapabilities. +// +// Deprecated: Use ImplementationTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesImplementation = ImplementationTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesLinkedEditingRange alias of LinkedEditingRangeClientCapabilities. +// +// Deprecated: Use LinkedEditingRangeClientCapabilities instead. +type TextDocumentClientCapabilitiesLinkedEditingRange = LinkedEditingRangeClientCapabilities + +// TextDocumentClientCapabilitiesMoniker of MonikerClientCapabilities. +// +// Deprecated: Use MonikerClientCapabilities instead. +type TextDocumentClientCapabilitiesMoniker = MonikerClientCapabilities + +// TextDocumentClientCapabilitiesOnTypeFormatting of DocumentOnTypeFormattingClientCapabilities. +// +// Deprecated: Use DocumentOnTypeFormattingClientCapabilities instead. +type TextDocumentClientCapabilitiesOnTypeFormatting = DocumentOnTypeFormattingClientCapabilities + +// TextDocumentClientCapabilitiesPublishDiagnostics of PublishDiagnosticsClientCapabilities. +// +// Deprecated: Use PublishDiagnosticsClientCapabilities instead. +type TextDocumentClientCapabilitiesPublishDiagnostics = PublishDiagnosticsClientCapabilities + +// TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport of PublishDiagnosticsClientCapabilitiesTagSupport. +// +// Deprecated: Use PublishDiagnosticsClientCapabilitiesTagSupport instead. +type TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport = PublishDiagnosticsClientCapabilitiesTagSupport + +// TextDocumentClientCapabilitiesRangeFormatting of DocumentRangeFormattingClientCapabilities. +// +// Deprecated: Use DocumentRangeFormattingClientCapabilities instead. +type TextDocumentClientCapabilitiesRangeFormatting = DocumentRangeFormattingClientCapabilities + +// TextDocumentClientCapabilitiesReferences of ReferencesTextDocumentClientCapabilities. +// +// Deprecated: Use ReferencesTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesReferences = ReferencesTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesRename of RenameClientCapabilities. +// +// Deprecated: Use RenameClientCapabilities instead. +type TextDocumentClientCapabilitiesRename = RenameClientCapabilities + +// TextDocumentClientCapabilitiesSelectionRange of SelectionRangeClientCapabilities. +// +// Deprecated: Use SelectionRangeClientCapabilities instead. +type TextDocumentClientCapabilitiesSelectionRange = SelectionRangeClientCapabilities + +// TextDocumentClientCapabilitiesSemanticTokens of SemanticTokensClientCapabilities. +// +// Deprecated: Use SemanticTokensClientCapabilities instead. +type TextDocumentClientCapabilitiesSemanticTokens = SemanticTokensClientCapabilities + +// TextDocumentClientCapabilitiesSignatureHelp of SignatureHelpTextDocumentClientCapabilities. +// +// Deprecated: Use SignatureHelpTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesSignatureHelp = SignatureHelpTextDocumentClientCapabilities + +// TextDocumentClientCapabilitiesSynchronization of TextDocumentSyncClientCapabilities. +// +// Deprecated: Use TextDocumentSyncClientCapabilities instead. +type TextDocumentClientCapabilitiesSynchronization = TextDocumentSyncClientCapabilities + +// TextDocumentClientCapabilitiesTypeDefinition of TypeDefinitionTextDocumentClientCapabilities. +// +// Deprecated: Use TypeDefinitionTextDocumentClientCapabilities instead. +type TextDocumentClientCapabilitiesTypeDefinition = TypeDefinitionTextDocumentClientCapabilities + +// Abort alias of FailureHandlingKindAbort. +// +// Deprecated: Use FailureHandlingKindAbort instead. +const Abort = FailureHandlingKindAbort + +// TextOnlyTransactional alias of FailureHandlingKindTextOnlyTransactional. +// +// Deprecated: Use FailureHandlingKindTextOnlyTransactional instead. +const TextOnlyTransactional = FailureHandlingKindTextOnlyTransactional + +// Transactional alias of FailureHandlingKindTransactional. +// +// Deprecated: Use FailureHandlingKindTransactional instead. +const Transactional = FailureHandlingKindTransactional + +// Undo alias of FailureHandlingKindUndo. +// +// Deprecated: Use FailureHandlingKindUndo instead. +const Undo = FailureHandlingKindUndo + +// WorkspaceClientCapabilitiesSymbol alias of WorkspaceSymbolClientCapabilities. +// +// Deprecated: Use WorkspaceSymbolClientCapabilities instead. +type WorkspaceClientCapabilitiesSymbol = WorkspaceSymbolClientCapabilities + +// WorkspaceClientCapabilitiesSymbolKind alias of SymbolKindCapabilities. +// +// Deprecated: Use SymbolKindCapabilities instead. +type WorkspaceClientCapabilitiesSymbolKind = SymbolKindCapabilities + +// WorkspaceClientCapabilitiesCodeLens alias of CodeLensWorkspaceClientCapabilities. +// +// Deprecated: Use CodeLensWorkspaceClientCapabilities instead. +type WorkspaceClientCapabilitiesCodeLens = CodeLensWorkspaceClientCapabilities + +// WorkspaceClientCapabilitiesDidChangeConfiguration alias of DidChangeConfigurationWorkspaceClientCapabilities. +// +// Deprecated: Use DidChangeConfigurationWorkspaceClientCapabilities instead. +type WorkspaceClientCapabilitiesDidChangeConfiguration = DidChangeConfigurationWorkspaceClientCapabilities + +// WorkspaceClientCapabilitiesDidChangeWatchedFiles alias of DidChangeWatchedFilesWorkspaceClientCapabilities. +// +// Deprecated: Use DidChangeWatchedFilesWorkspaceClientCapabilities instead. +type WorkspaceClientCapabilitiesDidChangeWatchedFiles = DidChangeWatchedFilesWorkspaceClientCapabilities + +// WorkspaceClientCapabilitiesExecuteCommand alias of ExecuteCommandClientCapabilities. +// +// Deprecated: Use ExecuteCommandClientCapabilities instead. +type WorkspaceClientCapabilitiesExecuteCommand = ExecuteCommandClientCapabilities + +// WorkspaceClientCapabilitiesSemanticTokens alias of SemanticTokensWorkspaceClientCapabilities. +// +// Deprecated: Use SemanticTokensWorkspaceClientCapabilities instead. +type WorkspaceClientCapabilitiesSemanticTokens = SemanticTokensWorkspaceClientCapabilities + +// WorkspaceClientCapabilitiesSemanticTokensRequests alias of SemanticTokensWorkspaceClientCapabilitiesRequests. +// +// Deprecated: Use SemanticTokensWorkspaceClientCapabilitiesRequests instead. +type WorkspaceClientCapabilitiesSemanticTokensRequests = SemanticTokensWorkspaceClientCapabilitiesRequests diff --git a/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go b/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go new file mode 100644 index 0000000..f88605e --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go @@ -0,0 +1,149 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "strconv" +) + +// Diagnostic represents a diagnostic, such as a compiler error or warning. +// +// Diagnostic objects are only valid in the scope of a resource. +type Diagnostic struct { + // Range is the range at which the message applies. + Range Range `json:"range"` + + // Severity is the diagnostic's severity. Can be omitted. If omitted it is up to the + // client to interpret diagnostics as error, warning, info or hint. + Severity DiagnosticSeverity `json:"severity,omitempty"` + + // Code is the diagnostic's code, which might appear in the user interface. + Code any `json:"code,omitempty"` // int32 | string; + + // CodeDescription an optional property to describe the error code. + // + // @since 3.16.0. + CodeDescription *CodeDescription `json:"codeDescription,omitempty"` + + // Source a human-readable string describing the source of this + // diagnostic, e.g. 'typescript' or 'super lint'. + Source string `json:"source,omitempty"` + + // Message is the diagnostic's message. + Message string `json:"message"` + + // Tags is the additional metadata about the diagnostic. + // + // @since 3.15.0. + Tags []DiagnosticTag `json:"tags,omitempty"` + + // RelatedInformation an array of related diagnostic information, e.g. when symbol-names within + // a scope collide all definitions can be marked via this property. + RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"` + + // Data is a data entry field that is preserved between a + // "textDocument/publishDiagnostics" notification and + // "textDocument/codeAction" request. + // + // @since 3.16.0. + Data any `json:"data,omitempty"` +} + +// DiagnosticSeverity indicates the severity of a Diagnostic message. +type DiagnosticSeverity float64 + +const ( + // DiagnosticSeverityError reports an error. + DiagnosticSeverityError DiagnosticSeverity = 1 + + // DiagnosticSeverityWarning reports a warning. + DiagnosticSeverityWarning DiagnosticSeverity = 2 + + // DiagnosticSeverityInformation reports an information. + DiagnosticSeverityInformation DiagnosticSeverity = 3 + + // DiagnosticSeverityHint reports a hint. + DiagnosticSeverityHint DiagnosticSeverity = 4 +) + +// String implements fmt.Stringer. +func (d DiagnosticSeverity) String() string { + switch d { + case DiagnosticSeverityError: + return "Error" + case DiagnosticSeverityWarning: + return "Warning" + case DiagnosticSeverityInformation: + return "Information" + case DiagnosticSeverityHint: + return "Hint" + default: + return strconv.FormatFloat(float64(d), 'f', -10, 64) + } +} + +// CodeDescription is the structure to capture a description for an error code. +// +// @since 3.16.0. +type CodeDescription struct { + // Href an URI to open with more information about the diagnostic error. + Href URI `json:"href"` +} + +// DiagnosticTag is the diagnostic tags. +// +// @since 3.15.0. +type DiagnosticTag float64 + +// list of DiagnosticTag. +const ( + // DiagnosticTagUnnecessary unused or unnecessary code. + // + // Clients are allowed to render diagnostics with this tag faded out instead of having + // an error squiggle. + DiagnosticTagUnnecessary DiagnosticTag = 1 + + // DiagnosticTagDeprecated deprecated or obsolete code. + // + // Clients are allowed to rendered diagnostics with this tag strike through. + DiagnosticTagDeprecated DiagnosticTag = 2 +) + +// String implements fmt.Stringer. +func (d DiagnosticTag) String() string { + switch d { + case DiagnosticTagUnnecessary: + return "Unnecessary" + case DiagnosticTagDeprecated: + return "Deprecated" + default: + return strconv.FormatFloat(float64(d), 'f', -10, 64) + } +} + +// DiagnosticRelatedInformation represents a related message and source code location for a diagnostic. +// +// This should be used to point to code locations that cause or related to a diagnostics, e.g when duplicating +// a symbol in a scope. +type DiagnosticRelatedInformation struct { + // Location is the location of this related diagnostic information. + Location Location `json:"location"` + + // Message is the message of this related diagnostic information. + Message string `json:"message"` +} + +// PublishDiagnosticsParams represents a params of PublishDiagnostics notification. +type PublishDiagnosticsParams struct { + // URI is the URI for which diagnostic information is reported. + URI DocumentURI `json:"uri"` + + // Version optional the version number of the document the diagnostics are published for. + // + // @since 3.15 + Version uint32 `json:"version,omitempty"` + + // Diagnostics an array of diagnostic information items. + Diagnostics []Diagnostic `json:"diagnostics"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/doc.go b/vendor/github.com/a-h/templ/lsp/protocol/doc.go new file mode 100644 index 0000000..a53cc37 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/doc.go @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +// Package protocol implements Language Server Protocol specification in Go. +// +// This package contains the structs that map directly to the wire format +// of the Language Server Protocol. +// +// It is a literal transcription, with unmodified comments, and only the changes +// required to make it Go code. +// +// - Names are uppercased to export them. +// +// - All fields have JSON tags added to correct the names. +// +// - Fields marked with a ? are also marked as "omitempty". +// +// - Fields that are "|| null" are made pointers. +// +// - Fields that are string or number are left as string. +// +// - Fields that are type "number" are made float64. +package protocol // import "github.com/a-h/templ/lsp/protocol" diff --git a/vendor/github.com/a-h/templ/lsp/protocol/errors.go b/vendor/github.com/a-h/templ/lsp/protocol/errors.go new file mode 100644 index 0000000..e37025f --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/errors.go @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import "github.com/a-h/templ/lsp/jsonrpc2" + +const ( + // LSPReservedErrorRangeStart is the start range of LSP reserved error codes. + // + // It doesn't denote a real error code. + // + // @since 3.16.0. + LSPReservedErrorRangeStart jsonrpc2.Code = -32899 + + // ContentModified is the state change that invalidates the result of a request in execution. + // + // Defined by the protocol. + CodeContentModified jsonrpc2.Code = -32801 + + // RequestCancelled is the cancellation error. + // + // Defined by the protocol. + CodeRequestCancelled jsonrpc2.Code = -32800 + + // LSPReservedErrorRangeEnd is the end range of LSP reserved error codes. + // + // It doesn't denote a real error code. + // + // @since 3.16.0. + LSPReservedErrorRangeEnd jsonrpc2.Code = -32800 +) + +var ( + // ErrContentModified should be used when a request is canceled early. + ErrContentModified = jsonrpc2.NewError(CodeContentModified, "cancelled JSON-RPC") + + // ErrRequestCancelled should be used when a request is canceled early. + ErrRequestCancelled = jsonrpc2.NewError(CodeRequestCancelled, "cancelled JSON-RPC") +) diff --git a/vendor/github.com/a-h/templ/lsp/protocol/general.go b/vendor/github.com/a-h/templ/lsp/protocol/general.go new file mode 100644 index 0000000..9fe9ab4 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/general.go @@ -0,0 +1,461 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// TraceValue represents a InitializeParams Trace mode. +type TraceValue string + +// list of TraceValue. +const ( + // TraceOff disable tracing. + TraceOff TraceValue = "off" + + // TraceMessage normal tracing mode. + TraceMessage TraceValue = "message" + + // TraceVerbose verbose tracing mode. + TraceVerbose TraceValue = "verbose" +) + +// ClientInfo information about the client. +// +// @since 3.15.0. +type ClientInfo struct { + // Name is the name of the client as defined by the client. + Name string `json:"name"` + + // Version is the client's version as defined by the client. + Version string `json:"version,omitempty"` +} + +// InitializeParams params of Initialize request. +type InitializeParams struct { + WorkDoneProgressParams + + // ProcessID is the process Id of the parent process that started + // the server. Is null if the process has not been started by another process. + // If the parent process is not alive then the server should exit (see exit notification) its process. + ProcessID int32 `json:"processId"` + + // ClientInfo is the information about the client. + // + // @since 3.15.0 + ClientInfo *ClientInfo `json:"clientInfo,omitempty"` + + // Locale is the locale the client is currently showing the user interface + // in. This must not necessarily be the locale of the operating + // system. + // + // Uses IETF language tags as the value's syntax + // (See https://en.wikipedia.org/wiki/IETF_language_tag) + // + // @since 3.16.0. + Locale string `json:"locale,omitempty"` + + // RootPath is the rootPath of the workspace. Is null + // if no folder is open. + // + // Deprecated: Use RootURI instead. + RootPath string `json:"rootPath,omitempty"` + + // RootURI is the rootUri of the workspace. Is null if no + // folder is open. If both `rootPath` and "rootUri" are set + // "rootUri" wins. + // + // Deprecated: Use WorkspaceFolders instead. + RootURI DocumentURI `json:"rootUri,omitempty"` + + // InitializationOptions user provided initialization options. + InitializationOptions any `json:"initializationOptions,omitempty"` + + // Capabilities is the capabilities provided by the client (editor or tool) + Capabilities ClientCapabilities `json:"capabilities"` + + // Trace is the initial trace setting. If omitted trace is disabled ('off'). + Trace TraceValue `json:"trace,omitempty"` + + // WorkspaceFolders is the workspace folders configured in the client when the server starts. + // This property is only available if the client supports workspace folders. + // It can be `null` if the client supports workspace folders but none are + // configured. + // + // @since 3.6.0. + WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders,omitempty"` +} + +// InitializeResult result of ClientCapabilities. +type InitializeResult struct { + // Capabilities is the capabilities the language server provides. + Capabilities ServerCapabilities `json:"capabilities"` + + // ServerInfo Information about the server. + // + // @since 3.15.0. + ServerInfo *ServerInfo `json:"serverInfo,omitempty"` +} + +// LogTraceParams params of LogTrace notification. +// +// @since 3.16.0. +type LogTraceParams struct { + // Message is the message to be logged. + Message string `json:"message"` + + // Verbose is the additional information that can be computed if the "trace" configuration + // is set to "verbose". + Verbose TraceValue `json:"verbose,omitempty"` +} + +// SetTraceParams params of SetTrace notification. +// +// @since 3.16.0. +type SetTraceParams struct { + // Value is the new value that should be assigned to the trace setting. + Value TraceValue `json:"value"` +} + +// FileOperationPatternKind is a pattern kind describing if a glob pattern matches a file a folder or +// both. +// +// @since 3.16.0. +type FileOperationPatternKind string + +// list of FileOperationPatternKind. +const ( + // FileOperationPatternKindFile is the pattern matches a file only. + FileOperationPatternKindFile FileOperationPatternKind = "file" + + // FileOperationPatternKindFolder is the pattern matches a folder only. + FileOperationPatternKindFolder FileOperationPatternKind = "folder" +) + +// FileOperationPatternOptions matching options for the file operation pattern. +// +// @since 3.16.0. +type FileOperationPatternOptions struct { + // IgnoreCase is The pattern should be matched ignoring casing. + IgnoreCase bool `json:"ignoreCase,omitempty"` +} + +// FileOperationPattern a pattern to describe in which file operation requests or notifications +// the server is interested in. +// +// @since 3.16.0. +type FileOperationPattern struct { + // The glob pattern to match. Glob patterns can have the following syntax: + // - `*` to match one or more characters in a path segment + // - `?` to match on one character in a path segment + // - `**` to match any number of path segments, including none + // - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript + // and JavaScript files) + // - `[]` to declare a range of characters to match in a path segment + // (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) + // - `[!...]` to negate a range of characters to match in a path segment + // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but + // not `example.0`) + Glob string `json:"glob"` + + // Matches whether to match files or folders with this pattern. + // + // Matches both if undefined. + Matches FileOperationPatternKind `json:"matches,omitempty"` + + // Options additional options used during matching. + Options FileOperationPatternOptions `json:"options,omitempty"` +} + +// FileOperationFilter is a filter to describe in which file operation requests or notifications +// the server is interested in. +// +// @since 3.16.0. +type FileOperationFilter struct { + // Scheme is a URI like "file" or "untitled". + Scheme string `json:"scheme,omitempty"` + + // Pattern is the actual file operation pattern. + Pattern FileOperationPattern `json:"pattern"` +} + +// CreateFilesParams is the parameters sent in notifications/requests for user-initiated creation +// of files. +// +// @since 3.16.0. +type CreateFilesParams struct { + // Files an array of all files/folders created in this operation. + Files []FileCreate `json:"files"` +} + +// FileCreate nepresents information on a file/folder create. +// +// @since 3.16.0. +type FileCreate struct { + // URI is a file:// URI for the location of the file/folder being created. + URI string `json:"uri"` +} + +// RenameFilesParams is the parameters sent in notifications/requests for user-initiated renames +// of files. +// +// @since 3.16.0. +type RenameFilesParams struct { + // Files an array of all files/folders renamed in this operation. When a folder + // is renamed, only the folder will be included, and not its children. + Files []FileRename `json:"files"` +} + +// FileRename represents information on a file/folder rename. +// +// @since 3.16.0. +type FileRename struct { + // OldURI is a file:// URI for the original location of the file/folder being renamed. + OldURI string `json:"oldUri"` + + // NewURI is a file:// URI for the new location of the file/folder being renamed. + NewURI string `json:"newUri"` +} + +// DeleteFilesParams is the parameters sent in notifications/requests for user-initiated deletes +// of files. +// +// @since 3.16.0. +type DeleteFilesParams struct { + // Files an array of all files/folders deleted in this operation. + Files []FileDelete `json:"files"` +} + +// FileDelete represents information on a file/folder delete. +// +// @since 3.16.0. +type FileDelete struct { + // URI is a file:// URI for the location of the file/folder being deleted. + URI string `json:"uri"` +} + +// DocumentHighlightParams params of DocumentHighlight request. +// +// @since 3.15.0. +type DocumentHighlightParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// DeclarationParams params of Declaration request. +// +// @since 3.15.0. +type DeclarationParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// DefinitionParams params of Definition request. +// +// @since 3.15.0. +type DefinitionParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// TypeDefinitionParams params of TypeDefinition request. +// +// @since 3.15.0. +type TypeDefinitionParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// ImplementationParams params of Implementation request. +// +// @since 3.15.0. +type ImplementationParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// ShowDocumentParams params to show a document. +// +// @since 3.16.0. +type ShowDocumentParams struct { + // URI is the document uri to show. + URI URI `json:"uri"` + + // External indicates to show the resource in an external program. + // To show for example `https://code.visualstudio.com/` + // in the default WEB browser set `external` to `true`. + External bool `json:"external,omitempty"` + + // TakeFocus an optional property to indicate whether the editor + // showing the document should take focus or not. + // Clients might ignore this property if an external + // program is started. + TakeFocus bool `json:"takeFocus,omitempty"` + + // Selection an optional selection range if the document is a text + // document. Clients might ignore the property if an + // external program is started or the file is not a text + // file. + Selection *Range `json:"selection,omitempty"` +} + +// ShowDocumentResult is the result of an show document request. +// +// @since 3.16.0. +type ShowDocumentResult struct { + // Success a boolean indicating if the show was successful. + Success bool `json:"success"` +} + +// ServerInfo Information about the server. +// +// @since 3.15.0. +type ServerInfo struct { + // Name is the name of the server as defined by the server. + Name string `json:"name"` + + // Version is the server's version as defined by the server. + Version string `json:"version,omitempty"` +} + +// InitializeError known error codes for an "InitializeError". +type InitializeError struct { + // Retry indicates whether the client execute the following retry logic: + // (1) show the message provided by the ResponseError to the user + // (2) user selects retry or cancel + // (3) if user selected retry the initialize method is sent again. + Retry bool `json:"retry,omitempty"` +} + +// ReferencesOptions ReferencesProvider options. +// +// @since 3.15.0. +type ReferencesOptions struct { + WorkDoneProgressOptions +} + +// WorkDoneProgressOptions WorkDoneProgress options. +// +// @since 3.15.0. +type WorkDoneProgressOptions struct { + WorkDoneProgress bool `json:"workDoneProgress,omitempty"` +} + +// LinkedEditingRangeParams params for the LinkedEditingRange request. +// +// @since 3.16.0. +type LinkedEditingRangeParams struct { + TextDocumentPositionParams + WorkDoneProgressParams +} + +// LinkedEditingRanges result of LinkedEditingRange request. +// +// @since 3.16.0. +type LinkedEditingRanges struct { + // Ranges a list of ranges that can be renamed together. + // + // The ranges must have identical length and contain identical text content. + // + // The ranges cannot overlap. + Ranges []Range `json:"ranges"` + + // WordPattern an optional word pattern (regular expression) that describes valid contents for + // the given ranges. + // + // If no pattern is provided, the client configuration's word pattern will be used. + WordPattern string `json:"wordPattern,omitempty"` +} + +// MonikerParams params for the Moniker request. +// +// @since 3.16.0. +type MonikerParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams +} + +// UniquenessLevel is the Moniker uniqueness level to define scope of the moniker. +// +// @since 3.16.0. +type UniquenessLevel string + +// list of UniquenessLevel. +const ( + // UniquenessLevelDocument is the moniker is only unique inside a document. + UniquenessLevelDocument UniquenessLevel = "document" + + // UniquenessLevelProject is the moniker is unique inside a project for which a dump got created. + UniquenessLevelProject UniquenessLevel = "project" + + // UniquenessLevelGroup is the moniker is unique inside the group to which a project belongs. + UniquenessLevelGroup UniquenessLevel = "group" + + // UniquenessLevelScheme is the moniker is unique inside the moniker scheme. + UniquenessLevelScheme UniquenessLevel = "scheme" + + // UniquenessLevelGlobal is the moniker is globally unique. + UniquenessLevelGlobal UniquenessLevel = "global" +) + +// MonikerKind is the moniker kind. +// +// @since 3.16.0. +type MonikerKind string + +// list of MonikerKind. +const ( + // MonikerKindImport is the moniker represent a symbol that is imported into a project. + MonikerKindImport MonikerKind = "import" + + // MonikerKindExport is the moniker represents a symbol that is exported from a project. + MonikerKindExport MonikerKind = "export" + + // MonikerKindLocal is the moniker represents a symbol that is local to a project (e.g. a local + // variable of a function, a class not visible outside the project, ...). + MonikerKindLocal MonikerKind = "local" +) + +// Moniker definition to match LSIF 0.5 moniker definition. +// +// @since 3.16.0. +type Moniker struct { + // Scheme is the scheme of the moniker. For example tsc or .Net. + Scheme string `json:"scheme"` + + // Identifier is the identifier of the moniker. + // + // The value is opaque in LSIF however schema owners are allowed to define the structure if they want. + Identifier string `json:"identifier"` + + // Unique is the scope in which the moniker is unique. + Unique UniquenessLevel `json:"unique"` + + // Kind is the moniker kind if known. + Kind MonikerKind `json:"kind,omitempty"` +} + +// StaticRegistrationOptions staticRegistration options to be returned in the initialize request. +type StaticRegistrationOptions struct { + // ID is the id used to register the request. The id can be used to deregister + // the request again. See also Registration#id. + ID string `json:"id,omitempty"` +} + +// DocumentLinkRegistrationOptions DocumentLinkRegistration options. +type DocumentLinkRegistrationOptions struct { + TextDocumentRegistrationOptions + + // ResolveProvider document links have a resolve provider as well. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// InitializedParams params of Initialized notification. +type InitializedParams struct{} + +// WorkspaceFolders represents a slice of WorkspaceFolder. +type WorkspaceFolders []WorkspaceFolder diff --git a/vendor/github.com/a-h/templ/lsp/protocol/handler.go b/vendor/github.com/a-h/templ/lsp/protocol/handler.go new file mode 100644 index 0000000..0cd437a --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/handler.go @@ -0,0 +1,88 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "context" + "fmt" + + "encoding/json" + + "github.com/a-h/templ/lsp/jsonrpc2" + "github.com/a-h/templ/lsp/xcontext" +) + +// CancelHandler handler of cancelling. +func CancelHandler(handler jsonrpc2.Handler) jsonrpc2.Handler { + handler, canceller := jsonrpc2.CancelHandler(handler) + + h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { + if req.Method() != MethodCancelRequest { + // TODO(iancottrell): See if we can generate a reply for the request to be cancelled + // at the point of cancellation rather than waiting for gopls to naturally reply. + // To do that, we need to keep track of whether a reply has been sent already and + // be careful about racing between the two paths. + // TODO(iancottrell): Add a test that watches the stream and verifies the response + // for the cancelled request flows. + reply := func(ctx context.Context, resp any, err error) error { + // https://microsoft.github.io/language-server-protocol/specifications/specification-current/#cancelRequest + if ctx.Err() != nil && err == nil { + err = ErrRequestCancelled + } + ctx = xcontext.Detach(ctx) + + return reply(ctx, resp, err) + } + + return handler(ctx, reply, req) + } + + var params CancelParams + if err := json.Unmarshal(req.Params(), ¶ms); err != nil { + return replyParseError(ctx, reply, err) + } + + switch id := params.ID.(type) { + case int32: + canceller(jsonrpc2.NewNumberID(id)) + case string: + canceller(jsonrpc2.NewStringID(id)) + default: + return replyParseError(ctx, reply, fmt.Errorf("request ID %v malformed", id)) + } + + return reply(ctx, nil, nil) + } + + return h +} + +// Handlers default jsonrpc2.Handler. +func Handlers(handler jsonrpc2.Handler) jsonrpc2.Handler { + return CancelHandler( + jsonrpc2.AsyncHandler( + jsonrpc2.ReplyHandler(handler), + ), + ) +} + +// Call calls method to params and result. +func Call(ctx context.Context, conn jsonrpc2.Conn, method string, params, result any) error { + id, err := conn.Call(ctx, method, params, result) + if ctx.Err() != nil { + notifyCancel(ctx, conn, id) + } + + return err +} + +func notifyCancel(ctx context.Context, conn jsonrpc2.Conn, id jsonrpc2.ID) { + ctx = xcontext.Detach(ctx) + // Note that only *jsonrpc2.ID implements json.Marshaler. + _ = conn.Notify(ctx, MethodCancelRequest, &CancelParams{ID: &id}) +} + +func replyParseError(ctx context.Context, reply jsonrpc2.Replier, err error) error { + return reply(ctx, nil, fmt.Errorf("%s: %w", jsonrpc2.ErrParse, err)) +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/language.go b/vendor/github.com/a-h/templ/lsp/protocol/language.go new file mode 100644 index 0000000..37e60c8 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/language.go @@ -0,0 +1,1401 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "strconv" + + "encoding/json" +) + +// CompletionParams params of Completion request. +type CompletionParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams + + // Context is the completion context. This is only available if the client specifies + // to send this using `ClientCapabilities.textDocument.completion.contextSupport === true` + Context *CompletionContext `json:"context,omitempty"` +} + +// CompletionTriggerKind how a completion was triggered. +type CompletionTriggerKind float64 + +const ( + // CompletionTriggerKindInvoked completion was triggered by typing an identifier (24x7 code + // complete), manual invocation (e.g Ctrl+Space) or via API. + CompletionTriggerKindInvoked CompletionTriggerKind = 1 + + // CompletionTriggerKindTriggerCharacter completion was triggered by a trigger character specified by + // the `triggerCharacters` properties of the `CompletionRegistrationOptions`. + CompletionTriggerKindTriggerCharacter CompletionTriggerKind = 2 + + // CompletionTriggerKindTriggerForIncompleteCompletions completion was re-triggered as the current completion list is incomplete. + CompletionTriggerKindTriggerForIncompleteCompletions CompletionTriggerKind = 3 +) + +// String implements fmt.Stringer. +func (k CompletionTriggerKind) String() string { + switch k { + case CompletionTriggerKindInvoked: + return "Invoked" + case CompletionTriggerKindTriggerCharacter: + return "TriggerCharacter" + case CompletionTriggerKindTriggerForIncompleteCompletions: + return "TriggerForIncompleteCompletions" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// CompletionContext contains additional information about the context in which a completion request is triggered. +type CompletionContext struct { + // TriggerCharacter is the trigger character (a single character) that has trigger code complete. + // Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` + TriggerCharacter string `json:"triggerCharacter,omitempty"` + + // TriggerKind how the completion was triggered. + TriggerKind CompletionTriggerKind `json:"triggerKind"` +} + +// CompletionList represents a collection of [completion items](#CompletionItem) to be presented +// in the editor. +type CompletionList struct { + // IsIncomplete this list it not complete. Further typing should result in recomputing + // this list. + IsIncomplete bool `json:"isIncomplete"` + + // Items is the completion items. + Items []CompletionItem `json:"items"` +} + +// InsertTextFormat defines whether the insert text in a completion item should be interpreted as +// plain text or a snippet. +type InsertTextFormat float64 + +const ( + // InsertTextFormatPlainText is the primary text to be inserted is treated as a plain string. + InsertTextFormatPlainText InsertTextFormat = 1 + + // InsertTextFormatSnippet is the primary text to be inserted is treated as a snippet. + // + // A snippet can define tab stops and placeholders with `$1`, `$2` + // and `${3:foo}`. `$0` defines the final tab stop, it defaults to + // the end of the snippet. Placeholders with equal identifiers are linked, + // that is typing in one will update others too. + InsertTextFormatSnippet InsertTextFormat = 2 +) + +// String implements fmt.Stringer. +func (tf InsertTextFormat) String() string { + switch tf { + case InsertTextFormatPlainText: + return "PlainText" + case InsertTextFormatSnippet: + return "Snippet" + default: + return strconv.FormatFloat(float64(tf), 'f', -10, 64) + } +} + +// InsertReplaceEdit is a special text edit to provide an insert and a replace operation. +// +// @since 3.16.0. +type InsertReplaceEdit struct { + // NewText is the string to be inserted. + NewText string `json:"newText"` + + // Insert is the range if the insert is requested. + Insert Range `json:"insert"` + + // Replace is the range if the replace is requested. + Replace Range `json:"replace"` +} + +// InsertTextMode how whitespace and indentation is handled during completion +// item insertion. +// +// @since 3.16.0. +type InsertTextMode float64 + +const ( + // AsIs is the insertion or replace strings is taken as it is. If the + // value is multi line the lines below the cursor will be + // inserted using the indentation defined in the string value. + // The client will not apply any kind of adjustments to the + // string. + InsertTextModeAsIs InsertTextMode = 1 + + // AdjustIndentation is the editor adjusts leading whitespace of new lines so that + // they match the indentation up to the cursor of the line for + // which the item is accepted. + // + // Consider a line like this: <2tabs><3tabs>foo. Accepting a + // multi line completion item is indented using 2 tabs and all + // following lines inserted will be indented using 2 tabs as well. + InsertTextModeAdjustIndentation InsertTextMode = 2 +) + +// String returns a string representation of the InsertTextMode. +func (k InsertTextMode) String() string { + switch k { + case InsertTextModeAsIs: + return "AsIs" + case InsertTextModeAdjustIndentation: + return "AdjustIndentation" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// CompletionItem item of CompletionList. +type CompletionItem struct { + // AdditionalTextEdits an optional array of additional text edits that are applied when + // selecting this completion. Edits must not overlap (including the same insert position) + // with the main edit nor with themselves. + // + // Additional text edits should be used to change text unrelated to the current cursor position + // (for example adding an import statement at the top of the file if the completion item will + // insert an unqualified type). + AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` + + // Command an optional command that is executed *after* inserting this completion. *Note* that + // additional modifications to the current document should be described with the + // additionalTextEdits-property. + Command *Command `json:"command,omitempty"` + + // CommitCharacters an optional set of characters that when pressed while this completion is active will accept it first and + // then type that character. *Note* that all commit characters should have `length=1` and that superfluous + // characters will be ignored. + CommitCharacters []string `json:"commitCharacters,omitempty"` + + // Tags is the tag for this completion item. + // + // @since 3.15.0. + Tags []CompletionItemTag `json:"tags,omitempty"` + + // Data an data entry field that is preserved on a completion item between + // a completion and a completion resolve request. + Data any `json:"data,omitempty"` + + // Deprecated indicates if this item is deprecated. + Deprecated bool `json:"deprecated,omitempty"` + + // Detail a human-readable string with additional information + // about this item, like type or symbol information. + Detail string `json:"detail,omitempty"` + + // Documentation a human-readable string that represents a doc-comment. + Documentation any `json:"documentation,omitempty"` + + // FilterText a string that should be used when filtering a set of + // completion items. When `falsy` the label is used. + FilterText string `json:"filterText,omitempty"` + + // InsertText a string that should be inserted into a document when selecting + // this completion. When `falsy` the label is used. + // + // The `insertText` is subject to interpretation by the client side. + // Some tools might not take the string literally. For example + // VS Code when code complete is requested in this example `con` + // and a completion item with an `insertText` of `console` is provided it + // will only insert `sole`. Therefore it is recommended to use `textEdit` instead + // since it avoids additional client side interpretation. + InsertText string `json:"insertText,omitempty"` + + // InsertTextFormat is the format of the insert text. The format applies to both the `insertText` property + // and the `newText` property of a provided `textEdit`. + InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"` + + // InsertTextMode how whitespace and indentation is handled during completion + // item insertion. If not provided the client's default value depends on + // the `textDocument.completion.insertTextMode` client capability. + // + // @since 3.16.0. + InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"` + + // Kind is the kind of this completion item. Based of the kind + // an icon is chosen by the editor. + Kind CompletionItemKind `json:"kind,omitempty"` + + // Label is the label of this completion item. By default + // also the text that is inserted when selecting + // this completion. + Label string `json:"label"` + + // Preselect select this item when showing. + // + // *Note* that only one completion item can be selected and that the + // tool / client decides which item that is. The rule is that the *first* + // item of those that match best is selected. + Preselect bool `json:"preselect,omitempty"` + + // SortText a string that should be used when comparing this item + // with other items. When `falsy` the label is used. + SortText string `json:"sortText,omitempty"` + + // TextEdit an edit which is applied to a document when selecting this completion. When an edit is provided the value of + // `insertText` is ignored. + // + // NOTE: The range of the edit must be a single line range and it must contain the position at which completion + // has been requested. + // + // Most editors support two different operations when accepting a completion + // item. One is to insert a completion text and the other is to replace an + // existing text with a completion text. Since this can usually not be + // predetermined by a server it can report both ranges. Clients need to + // signal support for `InsertReplaceEdits` via the + // "textDocument.completion.insertReplaceSupport" client capability + // property. + // + // NOTE 1: The text edit's range as well as both ranges from an insert + // replace edit must be a [single line] and they must contain the position + // at which completion has been requested. + // + // NOTE 2: If an "InsertReplaceEdit" is returned the edit's insert range + // must be a prefix of the edit's replace range, that means it must be + // contained and starting at the same position. + // + // @since 3.16.0 additional type "InsertReplaceEdit". + TextEdit *TextEditOrInsertReplaceEdit `json:"textEdit,omitempty"` // *TextEdit | *InsertReplaceEdit +} + +type TextEditOrInsertReplaceEdit struct { + TextEdit *TextEdit + InsertReplaceEdit *InsertReplaceEdit +} + +func (t *TextEditOrInsertReplaceEdit) MarshalJSON() ([]byte, error) { + if t.TextEdit != nil { + return json.Marshal(t.TextEdit) + } + return json.Marshal(t.InsertReplaceEdit) +} + +type textEditAndInsertReplaceEdit struct { + // NewText is in both types. + NewText string `json:"newText"` + + // Range is only present in TextEdit. + Range *Range `json:"range"` + + // Insert is only present in InsertReplaceEdit. + Insert Range `json:"insert"` + // Replace is only present in InsertReplaceEdit. + Replace Range `json:"replace"` +} + +func (t *TextEditOrInsertReplaceEdit) UnmarshalJSON(data []byte) error { + var teaire textEditAndInsertReplaceEdit + if err := json.Unmarshal(data, &teaire); err != nil { + return err + } + if teaire.Range != nil { + t.TextEdit = &TextEdit{ + NewText: teaire.NewText, + Range: *teaire.Range, + } + return nil + } + t.InsertReplaceEdit = &InsertReplaceEdit{ + NewText: teaire.NewText, + Insert: teaire.Insert, + Replace: teaire.Replace, + } + return nil +} + +// CompletionItemKind is the completion item kind values the client supports. When this +// property exists the client also guarantees that it will +// handle values outside its set gracefully and falls back +// to a default value when unknown. +// +// If this property is not present the client only supports +// the completion items kinds from `Text` to `Reference` as defined in +// the initial version of the protocol. +type CompletionItemKind float64 + +const ( + // CompletionItemKindText text completion kind. + CompletionItemKindText CompletionItemKind = 1 + // CompletionItemKindMethod method completion kind. + CompletionItemKindMethod CompletionItemKind = 2 + // CompletionItemKindFunction function completion kind. + CompletionItemKindFunction CompletionItemKind = 3 + // CompletionItemKindConstructor constructor completion kind. + CompletionItemKindConstructor CompletionItemKind = 4 + // CompletionItemKindField field completion kind. + CompletionItemKindField CompletionItemKind = 5 + // CompletionItemKindVariable variable completion kind. + CompletionItemKindVariable CompletionItemKind = 6 + // CompletionItemKindClass class completion kind. + CompletionItemKindClass CompletionItemKind = 7 + // CompletionItemKindInterface interface completion kind. + CompletionItemKindInterface CompletionItemKind = 8 + // CompletionItemKindModule module completion kind. + CompletionItemKindModule CompletionItemKind = 9 + // CompletionItemKindProperty property completion kind. + CompletionItemKindProperty CompletionItemKind = 10 + // CompletionItemKindUnit unit completion kind. + CompletionItemKindUnit CompletionItemKind = 11 + // CompletionItemKindValue value completion kind. + CompletionItemKindValue CompletionItemKind = 12 + // CompletionItemKindEnum enum completion kind. + CompletionItemKindEnum CompletionItemKind = 13 + // CompletionItemKindKeyword keyword completion kind. + CompletionItemKindKeyword CompletionItemKind = 14 + // CompletionItemKindSnippet snippet completion kind. + CompletionItemKindSnippet CompletionItemKind = 15 + // CompletionItemKindColor color completion kind. + CompletionItemKindColor CompletionItemKind = 16 + // CompletionItemKindFile file completion kind. + CompletionItemKindFile CompletionItemKind = 17 + // CompletionItemKindReference reference completion kind. + CompletionItemKindReference CompletionItemKind = 18 + // CompletionItemKindFolder folder completion kind. + CompletionItemKindFolder CompletionItemKind = 19 + // CompletionItemKindEnumMember enum member completion kind. + CompletionItemKindEnumMember CompletionItemKind = 20 + // CompletionItemKindConstant constant completion kind. + CompletionItemKindConstant CompletionItemKind = 21 + // CompletionItemKindStruct struct completion kind. + CompletionItemKindStruct CompletionItemKind = 22 + // CompletionItemKindEvent event completion kind. + CompletionItemKindEvent CompletionItemKind = 23 + // CompletionItemKindOperator operator completion kind. + CompletionItemKindOperator CompletionItemKind = 24 + // CompletionItemKindTypeParameter type parameter completion kind. + CompletionItemKindTypeParameter CompletionItemKind = 25 +) + +// String implements fmt.Stringer. +// +//nolint:cyclop +func (k CompletionItemKind) String() string { + switch k { + case CompletionItemKindText: + return "Text" + case CompletionItemKindMethod: + return "Method" + case CompletionItemKindFunction: + return "Function" + case CompletionItemKindConstructor: + return "Constructor" + case CompletionItemKindField: + return "Field" + case CompletionItemKindVariable: + return "Variable" + case CompletionItemKindClass: + return "Class" + case CompletionItemKindInterface: + return "Interface" + case CompletionItemKindModule: + return "Module" + case CompletionItemKindProperty: + return "Property" + case CompletionItemKindUnit: + return "Unit" + case CompletionItemKindValue: + return "Value" + case CompletionItemKindEnum: + return "Enum" + case CompletionItemKindKeyword: + return "Keyword" + case CompletionItemKindSnippet: + return "Snippet" + case CompletionItemKindColor: + return "Color" + case CompletionItemKindFile: + return "File" + case CompletionItemKindReference: + return "Reference" + case CompletionItemKindFolder: + return "Folder" + case CompletionItemKindEnumMember: + return "EnumMember" + case CompletionItemKindConstant: + return "Constant" + case CompletionItemKindStruct: + return "Struct" + case CompletionItemKindEvent: + return "Event" + case CompletionItemKindOperator: + return "Operator" + case CompletionItemKindTypeParameter: + return "TypeParameter" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// CompletionItemTag completion item tags are extra annotations that tweak the rendering of a completion +// item. +// +// @since 3.15.0. +type CompletionItemTag float64 + +// list of CompletionItemTag. +const ( + // CompletionItemTagDeprecated is the render a completion as obsolete, usually using a strike-out. + CompletionItemTagDeprecated CompletionItemTag = 1 +) + +// String returns a string representation of the type. +func (c CompletionItemTag) String() string { + switch c { + case CompletionItemTagDeprecated: + return "Deprecated" + default: + return strconv.FormatFloat(float64(c), 'f', -10, 64) + } +} + +// CompletionRegistrationOptions CompletionRegistration options. +type CompletionRegistrationOptions struct { + TextDocumentRegistrationOptions + + // TriggerCharacters most tools trigger completion request automatically without explicitly requesting + // it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user + // starts to type an identifier. For example if the user types `c` in a JavaScript file + // code complete will automatically pop up present `console` besides others as a + // completion item. Characters that make up identifiers don't need to be listed here. + // + // If code complete should automatically be trigger on characters not being valid inside + // an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. + TriggerCharacters []string `json:"triggerCharacters,omitempty"` + + // ResolveProvider is the server provides support to resolve additional + // information for a completion item. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// HoverParams params of Hover request. +// +// @since 3.15.0. +type HoverParams struct { + TextDocumentPositionParams + WorkDoneProgressParams +} + +// Hover is the result of a hover request. +type Hover struct { + // Contents is the hover's content + Contents MarkupContent `json:"contents"` + + // Range an optional range is a range inside a text document + // that is used to visualize a hover, e.g. by changing the background color. + Range *Range `json:"range,omitempty"` +} + +// SignatureHelpParams params of SignatureHelp request. +// +// @since 3.15.0. +type SignatureHelpParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + + // context is the signature help context. + // + // This is only available if the client specifies to send this using the + // client capability `textDocument.signatureHelp.contextSupport === true`. + // + // @since 3.15.0. + Context *SignatureHelpContext `json:"context,omitempty"` +} + +// SignatureHelpTriggerKind is the how a signature help was triggered. +// +// @since 3.15.0. +type SignatureHelpTriggerKind float64 + +// list of SignatureHelpTriggerKind. +const ( + // SignatureHelpTriggerKindInvoked is the signature help was invoked manually by the user or by a command. + SignatureHelpTriggerKindInvoked SignatureHelpTriggerKind = 1 + + // SignatureHelpTriggerKindTriggerCharacter is the signature help was triggered by a trigger character. + SignatureHelpTriggerKindTriggerCharacter SignatureHelpTriggerKind = 2 + + // SignatureHelpTriggerKindContentChange is the signature help was triggered by the cursor moving or + // by the document content changing. + SignatureHelpTriggerKindContentChange SignatureHelpTriggerKind = 3 +) + +// String returns a string representation of the type. +func (s SignatureHelpTriggerKind) String() string { + switch s { + case SignatureHelpTriggerKindInvoked: + return "Invoked" + case SignatureHelpTriggerKindTriggerCharacter: + return "TriggerCharacter" + case SignatureHelpTriggerKindContentChange: + return "ContentChange" + default: + return strconv.FormatFloat(float64(s), 'f', -10, 64) + } +} + +// SignatureHelpContext is the additional information about the context in which a +// signature help request was triggered. +// +// @since 3.15.0. +type SignatureHelpContext struct { + // TriggerKind is the action that caused signature help to be triggered. + TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` + + // Character that caused signature help to be triggered. + // + // This is undefined when + // TriggerKind != SignatureHelpTriggerKindTriggerCharacter + TriggerCharacter string `json:"triggerCharacter,omitempty"` + + // IsRetrigger is the `true` if signature help was already showing when it was triggered. + // + // Retriggers occur when the signature help is already active and can be + // caused by actions such as typing a trigger character, a cursor move, + // or document content changes. + IsRetrigger bool `json:"isRetrigger"` + + // ActiveSignatureHelp is the currently active SignatureHelp. + // + // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field + // updated based on the user navigating through available signatures. + ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitempty"` +} + +// SignatureHelp signature help represents the signature of something +// callable. There can be multiple signature but only one +// active and only one active parameter. +type SignatureHelp struct { + // Signatures one or more signatures. + Signatures []SignatureInformation `json:"signatures"` + + // ActiveParameter is the active parameter of the active signature. If omitted or the value + // lies outside the range of `signatures[activeSignature].parameters` + // defaults to 0 if the active signature has parameters. If + // the active signature has no parameters it is ignored. + // In future version of the protocol this property might become + // mandatory to better express the active parameter if the + // active signature does have any. + ActiveParameter uint32 `json:"activeParameter,omitempty"` + + // ActiveSignature is the active signature. If omitted or the value lies outside the + // range of `signatures` the value defaults to zero or is ignored if + // `signatures.length === 0`. Whenever possible implementors should + // make an active decision about the active signature and shouldn't + // rely on a default value. + // In future version of the protocol this property might become + // mandatory to better express this. + ActiveSignature uint32 `json:"activeSignature,omitempty"` +} + +// SignatureInformation is the client supports the following `SignatureInformation` +// specific properties. +type SignatureInformation struct { + // Label is the label of this signature. Will be shown in + // the UI. + // + // @since 3.16.0. + Label string `json:"label"` + + // Documentation is the human-readable doc-comment of this signature. Will be shown + // in the UI but can be omitted. + // + // @since 3.16.0. + Documentation any `json:"documentation,omitempty"` // string | *MarkupContent + + // Parameters is the parameters of this signature. + // + // @since 3.16.0. + Parameters []ParameterInformation `json:"parameters,omitempty"` + + // ActiveParameterSupport is the client supports the `activeParameter` property on + // `SignatureInformation` literal. + // + // @since 3.16.0. + ActiveParameter uint32 `json:"activeParameter,omitempty"` +} + +// ParameterInformation represents a parameter of a callable-signature. A parameter can +// have a label and a doc-comment. +type ParameterInformation struct { + // Label is the label of this parameter information. + // + // Either a string or an inclusive start and exclusive end offsets within its containing + // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 + // string representation as "Position" and "Range" does. + // + // *Note*: a label of type string should be a substring of its containing signature label. + // Its intended use case is to highlight the parameter label part in the "SignatureInformation.label". + Label string `json:"label"` // string | [uint32, uint32] + + // Documentation is the human-readable doc-comment of this parameter. Will be shown + // in the UI but can be omitted. + Documentation any `json:"documentation,omitempty"` // string | MarkupContent +} + +// SignatureHelpRegistrationOptions SignatureHelp Registration options. +type SignatureHelpRegistrationOptions struct { + TextDocumentRegistrationOptions + + // TriggerCharacters is the characters that trigger signature help + // automatically. + TriggerCharacters []string `json:"triggerCharacters,omitempty"` +} + +// ReferenceParams params of References request. +// +// @since 3.15.0. +type ReferenceParams struct { + TextDocumentPositionParams + WorkDoneProgressParams + PartialResultParams + + // Context is the ReferenceParams context. + Context ReferenceContext `json:"context"` +} + +// ReferenceContext context of ReferenceParams. +type ReferenceContext struct { + // IncludeDeclaration include the declaration of the current symbol. + IncludeDeclaration bool `json:"includeDeclaration"` +} + +// DocumentHighlight a document highlight is a range inside a text document which deserves +// special attention. Usually a document highlight is visualized by changing +// the background color of its range. +type DocumentHighlight struct { + // Range is the range this highlight applies to. + Range Range `json:"range"` + + // Kind is the highlight kind, default is DocumentHighlightKind.Text. + Kind DocumentHighlightKind `json:"kind,omitempty"` +} + +// DocumentHighlightKind a document highlight kind. +type DocumentHighlightKind float64 + +const ( + // DocumentHighlightKindText a textual occurrence. + DocumentHighlightKindText DocumentHighlightKind = 1 + + // DocumentHighlightKindRead read-access of a symbol, like reading a variable. + DocumentHighlightKindRead DocumentHighlightKind = 2 + + // DocumentHighlightKindWrite write-access of a symbol, like writing to a variable. + DocumentHighlightKindWrite DocumentHighlightKind = 3 +) + +// String implements fmt.Stringer. +func (k DocumentHighlightKind) String() string { + switch k { + case DocumentHighlightKindText: + return "Text" + case DocumentHighlightKindRead: + return "Read" + case DocumentHighlightKindWrite: + return "Write" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// DocumentSymbolParams params of Document Symbols request. +type DocumentSymbolParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// SymbolKind specific capabilities for the `SymbolKind`. +// The symbol kind values the client supports. When this +// property exists the client also guarantees that it will +// handle values outside its set gracefully and falls back +// to a default value when unknown. +// +// If this property is not present the client only supports +// the symbol kinds from `File` to `Array` as defined in +// the initial version of the protocol. +type SymbolKind float64 + +const ( + // SymbolKindFile symbol of file. + SymbolKindFile SymbolKind = 1 + // SymbolKindModule symbol of module. + SymbolKindModule SymbolKind = 2 + // SymbolKindNamespace symbol of namespace. + SymbolKindNamespace SymbolKind = 3 + // SymbolKindPackage symbol of package. + SymbolKindPackage SymbolKind = 4 + // SymbolKindClass symbol of class. + SymbolKindClass SymbolKind = 5 + // SymbolKindMethod symbol of method. + SymbolKindMethod SymbolKind = 6 + // SymbolKindProperty symbol of property. + SymbolKindProperty SymbolKind = 7 + // SymbolKindField symbol of field. + SymbolKindField SymbolKind = 8 + // SymbolKindConstructor symbol of constructor. + SymbolKindConstructor SymbolKind = 9 + // SymbolKindEnum symbol of enum. + SymbolKindEnum SymbolKind = 10 + // SymbolKindInterface symbol of interface. + SymbolKindInterface SymbolKind = 11 + // SymbolKindFunction symbol of function. + SymbolKindFunction SymbolKind = 12 + // SymbolKindVariable symbol of variable. + SymbolKindVariable SymbolKind = 13 + // SymbolKindConstant symbol of constant. + SymbolKindConstant SymbolKind = 14 + // SymbolKindString symbol of string. + SymbolKindString SymbolKind = 15 + // SymbolKindNumber symbol of number. + SymbolKindNumber SymbolKind = 16 + // SymbolKindBoolean symbol of boolean. + SymbolKindBoolean SymbolKind = 17 + // SymbolKindArray symbol of array. + SymbolKindArray SymbolKind = 18 + // SymbolKindObject symbol of object. + SymbolKindObject SymbolKind = 19 + // SymbolKindKey symbol of key. + SymbolKindKey SymbolKind = 20 + // SymbolKindNull symbol of null. + SymbolKindNull SymbolKind = 21 + // SymbolKindEnumMember symbol of enum member. + SymbolKindEnumMember SymbolKind = 22 + // SymbolKindStruct symbol of struct. + SymbolKindStruct SymbolKind = 23 + // SymbolKindEvent symbol of event. + SymbolKindEvent SymbolKind = 24 + // SymbolKindOperator symbol of operator. + SymbolKindOperator SymbolKind = 25 + // SymbolKindTypeParameter symbol of type parameter. + SymbolKindTypeParameter SymbolKind = 26 +) + +// String implements fmt.Stringer. +// +//nolint:cyclop +func (k SymbolKind) String() string { + switch k { + case SymbolKindFile: + return "File" + case SymbolKindModule: + return "Module" + case SymbolKindNamespace: + return "Namespace" + case SymbolKindPackage: + return "Package" + case SymbolKindClass: + return "Class" + case SymbolKindMethod: + return "Method" + case SymbolKindProperty: + return "Property" + case SymbolKindField: + return "Field" + case SymbolKindConstructor: + return "Constructor" + case SymbolKindEnum: + return "Enum" + case SymbolKindInterface: + return "Interface" + case SymbolKindFunction: + return "Function" + case SymbolKindVariable: + return "Variable" + case SymbolKindConstant: + return "Constant" + case SymbolKindString: + return "String" + case SymbolKindNumber: + return "Number" + case SymbolKindBoolean: + return "Boolean" + case SymbolKindArray: + return "Array" + case SymbolKindObject: + return "Object" + case SymbolKindKey: + return "Key" + case SymbolKindNull: + return "Null" + case SymbolKindEnumMember: + return "EnumMember" + case SymbolKindStruct: + return "Struct" + case SymbolKindEvent: + return "Event" + case SymbolKindOperator: + return "Operator" + case SymbolKindTypeParameter: + return "TypeParameter" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// SymbolTag symbol tags are extra annotations that tweak the rendering of a symbol. +// +// @since 3.16.0. +type SymbolTag float64 + +// list of SymbolTag. +const ( + // SymbolTagDeprecated render a symbol as obsolete, usually using a strike-out. + SymbolTagDeprecated SymbolTag = 1 +) + +// String returns a string representation of the SymbolTag. +func (k SymbolTag) String() string { + switch k { + case SymbolTagDeprecated: + return "Deprecated" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// DocumentSymbol represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be +// hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, +// e.g. the range of an identifier. +type DocumentSymbol struct { + // Name is the name of this symbol. Will be displayed in the user interface and therefore must not be + // an empty string or a string only consisting of white spaces. + Name string `json:"name"` + + // Detail is the more detail for this symbol, e.g the signature of a function. + Detail string `json:"detail,omitempty"` + + // Kind is the kind of this symbol. + Kind SymbolKind `json:"kind"` + + // Tags for this document symbol. + // + // @since 3.16.0. + Tags []SymbolTag `json:"tags,omitempty"` + + // Deprecated indicates if this symbol is deprecated. + Deprecated bool `json:"deprecated,omitempty"` + + // Range is the range enclosing this symbol not including leading/trailing whitespace but everything else + // like comments. This information is typically used to determine if the clients cursor is + // inside the symbol to reveal in the symbol in the UI. + Range Range `json:"range"` + + // SelectionRange is the range that should be selected and revealed when this symbol is being picked, e.g the name of a function. + // Must be contained by the `range`. + SelectionRange Range `json:"selectionRange"` + + // Children children of this symbol, e.g. properties of a class. + Children []DocumentSymbol `json:"children,omitempty"` +} + +// SymbolInformation represents information about programming constructs like variables, classes, +// interfaces etc. +type SymbolInformation struct { + // Name is the name of this symbol. + Name string `json:"name"` + + // Kind is the kind of this symbol. + Kind SymbolKind `json:"kind"` + + // Tags for this completion item. + // + // @since 3.16.0. + Tags []SymbolTag `json:"tags,omitempty"` + + // Deprecated indicates if this symbol is deprecated. + Deprecated bool `json:"deprecated,omitempty"` + + // Location is the location of this symbol. The location's range is used by a tool + // to reveal the location in the editor. If the symbol is selected in the + // tool the range's start information is used to position the cursor. So + // the range usually spans more then the actual symbol's name and does + // normally include things like visibility modifiers. + // + // The range doesn't have to denote a node range in the sense of a abstract + // syntax tree. It can therefore not be used to re-construct a hierarchy of + // the symbols. + Location Location `json:"location"` + + // ContainerName is the name of the symbol containing this symbol. This information is for + // user interface purposes (e.g. to render a qualifier in the user interface + // if necessary). It can't be used to re-infer a hierarchy for the document + // symbols. + ContainerName string `json:"containerName,omitempty"` +} + +type SymbolInformationOrDocumentSymbol struct { + SymbolInformation *SymbolInformation + DocumentSymbol *DocumentSymbol +} + +func (s *SymbolInformationOrDocumentSymbol) MarshalJSON() ([]byte, error) { + if s.SymbolInformation != nil { + return json.Marshal(s.SymbolInformation) + } + return json.Marshal(s.DocumentSymbol) +} + +func (s *SymbolInformationOrDocumentSymbol) UnmarshalJSON(data []byte) error { + var si SymbolInformation + if err := json.Unmarshal(data, &si); err != nil { + return err + } + s.SymbolInformation = &si + + var ds DocumentSymbol + err := json.Unmarshal(data, &ds) + if err != nil { + return err + } + s.DocumentSymbol = &ds + + // Only SymbolInformation has a location URI. + if s.SymbolInformation.Location.URI == "" { + s.SymbolInformation = nil + } else { + s.DocumentSymbol = nil + } + + return nil +} + +// CodeActionParams params for the CodeActionRequest. +type CodeActionParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the document in which the command was invoked. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Context carrying additional information. + Context CodeActionContext `json:"context"` + + // Range is the range for which the command was invoked. + Range Range `json:"range"` +} + +// CodeActionKind is the code action kind values the client supports. When this +// property exists the client also guarantees that it will +// handle values outside its set gracefully and falls back +// to a default value when unknown. +type CodeActionKind string + +// A set of predefined code action kinds. +const ( + // QuickFix base kind for quickfix actions: 'quickfix'. + QuickFix CodeActionKind = "quickfix" + + // Refactor base kind for refactoring actions: 'refactor'. + Refactor CodeActionKind = "refactor" + + // RefactorExtract base kind for refactoring extraction actions: 'refactor.extract' + // + // Example extract actions: + // + // - Extract method + // - Extract function + // - Extract variable + // - Extract interface from class + // - ... + RefactorExtract CodeActionKind = "refactor.extract" + + // RefactorInline base kind for refactoring inline actions: 'refactor.inline' + // + // Example inline actions: + // + // - Inline function + // - Inline variable + // - Inline constant + // - ... + RefactorInline CodeActionKind = "refactor.inline" + + // RefactorRewrite base kind for refactoring rewrite actions: 'refactor.rewrite' + // + // Example rewrite actions: + // + // - Convert JavaScript function to class + // - Add or remove parameter + // - Encapsulate field + // - Make method static + // - Move method to base class + // - ... + RefactorRewrite CodeActionKind = "refactor.rewrite" + + // Source base kind for source actions: `source` + // + // Source code actions apply to the entire file. + Source CodeActionKind = "source" + + // SourceOrganizeImports base kind for an organize imports source action: `source.organizeImports`. + SourceOrganizeImports CodeActionKind = "source.organizeImports" +) + +// CodeActionContext contains additional diagnostic information about the context in which +// a code action is run. +type CodeActionContext struct { + // Diagnostics is an array of diagnostics. + Diagnostics []Diagnostic `json:"diagnostics"` + + // Only requested kind of actions to return. + // + // Actions not of this kind are filtered out by the client before being shown. So servers + // can omit computing them. + Only []CodeActionKind `json:"only,omitempty"` +} + +// CodeAction capabilities specific to the `textDocument/codeAction`. +type CodeAction struct { + // Title is a short, human-readable, title for this code action. + Title string `json:"title"` + + // Kind is the kind of the code action. + // + // Used to filter code actions. + Kind CodeActionKind `json:"kind,omitempty"` + + // Diagnostics is the diagnostics that this code action resolves. + Diagnostics []Diagnostic `json:"diagnostics,omitempty"` + + // IsPreferred marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted + // by keybindings. + // + // A quick fix should be marked preferred if it properly addresses the underlying error. + // A refactoring should be marked preferred if it is the most reasonable choice of actions to take. + // + // @since 3.15.0. + IsPreferred bool `json:"isPreferred,omitempty"` + + // Disabled marks that the code action cannot currently be applied. + // + // Clients should follow the following guidelines regarding disabled code + // actions: + // + // - Disabled code actions are not shown in automatic lightbulbs code + // action menus. + // + // - Disabled actions are shown as faded out in the code action menu when + // the user request a more specific type of code action, such as + // refactorings. + // + // - If the user has a keybinding that auto applies a code action and only + // a disabled code actions are returned, the client should show the user + // an error message with `reason` in the editor. + // + // @since 3.16.0. + Disabled *CodeActionDisable `json:"disabled,omitempty"` + + // Edit is the workspace edit this code action performs. + Edit *WorkspaceEdit `json:"edit,omitempty"` + + // Command is a command this code action executes. If a code action + // provides an edit and a command, first the edit is + // executed and then the command. + Command *Command `json:"command,omitempty"` + + // Data is a data entry field that is preserved on a code action between + // a "textDocument/codeAction" and a "codeAction/resolve" request. + // + // @since 3.16.0. + Data any `json:"data,omitempty"` +} + +// CodeActionDisable Disable in CodeAction. +// +// @since 3.16.0. +type CodeActionDisable struct { + // Reason human readable description of why the code action is currently + // disabled. + // + // This is displayed in the code actions UI. + Reason string `json:"reason"` +} + +// CodeActionRegistrationOptions CodeAction Registrationi options. +type CodeActionRegistrationOptions struct { + TextDocumentRegistrationOptions + + CodeActionOptions +} + +// CodeLensParams params of Code Lens request. +type CodeLensParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the document to request code lens for. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// CodeLens is a code lens represents a command that should be shown along with +// source text, like the number of references, a way to run tests, etc. +// +// A code lens is _unresolved_ when no command is associated to it. For performance +// reasons the creation of a code lens and resolving should be done in two stages. +type CodeLens struct { + // Range is the range in which this code lens is valid. Should only span a single line. + Range Range `json:"range"` + + // Command is the command this code lens represents. + Command *Command `json:"command,omitempty"` + + // Data is a data entry field that is preserved on a code lens item between + // a code lens and a code lens resolve request. + Data any `json:"data,omitempty"` +} + +// CodeLensRegistrationOptions CodeLens Registration options. +type CodeLensRegistrationOptions struct { + TextDocumentRegistrationOptions + + // ResolveProvider code lens has a resolve provider as well. + ResolveProvider bool `json:"resolveProvider,omitempty"` +} + +// DocumentLinkParams params of Document Link request. +type DocumentLinkParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the document to provide document links for. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// DocumentLink is a document link is a range in a text document that links to an internal or external resource, like another +// text document or a web site. +type DocumentLink struct { + // Range is the range this link applies to. + Range Range `json:"range"` + + // Target is the uri this link points to. If missing a resolve request is sent later. + Target DocumentURI `json:"target,omitempty"` + + // Tooltip is the tooltip text when you hover over this link. + // + // If a tooltip is provided, is will be displayed in a string that includes instructions on how to + // trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS, + // user settings, and localization. + // + // @since 3.15.0. + Tooltip string `json:"tooltip,omitempty"` + + // Data is a data entry field that is preserved on a document link between a + // DocumentLinkRequest and a DocumentLinkResolveRequest. + Data any `json:"data,omitempty"` +} + +// DocumentColorParams params of Document Color request. +type DocumentColorParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the document to format. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// ColorInformation response of Document Color request. +type ColorInformation struct { + // Range is the range in the document where this color appears. + Range Range `json:"range"` + + // Color is the actual color value for this color range. + Color Color `json:"color"` +} + +// Color represents a color in RGBA space. +type Color struct { + // Alpha is the alpha component of this color in the range [0-1]. + Alpha float64 `json:"alpha"` + + // Blue is the blue component of this color in the range [0-1]. + Blue float64 `json:"blue"` + + // Green is the green component of this color in the range [0-1]. + Green float64 `json:"green"` + + // Red is the red component of this color in the range [0-1]. + Red float64 `json:"red"` +} + +// ColorPresentationParams params of Color Presentation request. +type ColorPresentationParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Color is the color information to request presentations for. + Color Color `json:"color"` + + // Range is the range where the color would be inserted. Serves as a context. + Range Range `json:"range"` +} + +// ColorPresentation response of Color Presentation request. +type ColorPresentation struct { + // Label is the label of this color presentation. It will be shown on the color + // picker header. By default this is also the text that is inserted when selecting + // this color presentation. + Label string `json:"label"` + + // TextEdit an edit which is applied to a document when selecting + // this presentation for the color. When `falsy` the label is used. + TextEdit *TextEdit `json:"textEdit,omitempty"` + + // AdditionalTextEdits an optional array of additional [text edits](#TextEdit) that are applied when + // selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves. + AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` +} + +// DocumentFormattingParams params of Document Formatting request. +type DocumentFormattingParams struct { + WorkDoneProgressParams + + // Options is the format options. + Options FormattingOptions `json:"options"` + + // TextDocument is the document to format. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// FormattingOptions value-object describing what options formatting should use. +type FormattingOptions struct { + // InsertSpaces prefer spaces over tabs. + InsertSpaces bool `json:"insertSpaces"` + + // TabSize size of a tab in spaces. + TabSize uint32 `json:"tabSize"` + + // TrimTrailingWhitespace trim trailing whitespaces on a line. + // + // @since 3.15.0. + TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"` + + // InsertFinalNewlines insert a newline character at the end of the file if one does not exist. + // + // @since 3.15.0. + InsertFinalNewline bool `json:"insertFinalNewline,omitempty"` + + // TrimFinalNewlines trim all newlines after the final newline at the end of the file. + // + // @since 3.15.0. + TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"` + + // Key is the signature for further properties. + Key map[string]any `json:"key,omitempty"` // bool | int32 | string +} + +// DocumentRangeFormattingParams params of Document Range Formatting request. +type DocumentRangeFormattingParams struct { + WorkDoneProgressParams + + // TextDocument is the document to format. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Range is the range to format + Range Range `json:"range"` + + // Options is the format options. + Options FormattingOptions `json:"options"` +} + +// DocumentOnTypeFormattingParams params of Document on Type Formatting request. +type DocumentOnTypeFormattingParams struct { + // TextDocument is the document to format. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Position is the position at which this request was sent. + Position Position `json:"position"` + + // Ch is the character that has been typed. + Ch string `json:"ch"` + + // Options is the format options. + Options FormattingOptions `json:"options"` +} + +// DocumentOnTypeFormattingRegistrationOptions DocumentOnTypeFormatting Registration options. +type DocumentOnTypeFormattingRegistrationOptions struct { + TextDocumentRegistrationOptions + + // FirstTriggerCharacter a character on which formatting should be triggered, like `}`. + FirstTriggerCharacter string `json:"firstTriggerCharacter"` + + // MoreTriggerCharacter a More trigger characters. + MoreTriggerCharacter []string `json:"moreTriggerCharacter"` +} + +// RenameParams params of Rename request. +type RenameParams struct { + TextDocumentPositionParams + PartialResultParams + + // NewName is the new name of the symbol. If the given name is not valid the + // request must return a [ResponseError](#ResponseError) with an + // appropriate message set. + NewName string `json:"newName"` +} + +// RenameRegistrationOptions Rename Registration options. +type RenameRegistrationOptions struct { + TextDocumentRegistrationOptions + + // PrepareProvider is the renames should be checked and tested for validity before being executed. + PrepareProvider bool `json:"prepareProvider,omitempty"` +} + +// PrepareRenameParams params of PrepareRenameParams request. +// +// @since 3.15.0. +type PrepareRenameParams struct { + TextDocumentPositionParams +} + +// FoldingRangeParams params of Folding Range request. +type FoldingRangeParams struct { + TextDocumentPositionParams + PartialResultParams +} + +// FoldingRangeKind is the enum of known range kinds. +type FoldingRangeKind string + +const ( + // CommentFoldingRange is the folding range for a comment. + CommentFoldingRange FoldingRangeKind = "comment" + + // ImportsFoldingRange is the folding range for a imports or includes. + ImportsFoldingRange FoldingRangeKind = "imports" + + // RegionFoldingRange is the folding range for a region (e.g. `#region`). + RegionFoldingRange FoldingRangeKind = "region" +) + +// FoldingRange capabilities specific to `textDocument/foldingRange` requests. +// +// @since 3.10.0. +type FoldingRange struct { + // StartLine is the zero-based line number from where the folded range starts. + StartLine uint32 `json:"startLine"` + + // StartCharacter is the zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line. + StartCharacter uint32 `json:"startCharacter,omitempty"` + + // EndLine is the zero-based line number where the folded range ends. + EndLine uint32 `json:"endLine"` + + // EndCharacter is the zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line. + EndCharacter uint32 `json:"endCharacter,omitempty"` + + // Kind describes the kind of the folding range such as `comment' or 'region'. The kind + // is used to categorize folding ranges and used by commands like 'Fold all comments'. + // See FoldingRangeKind for an enumeration of standardized kinds. + Kind FoldingRangeKind `json:"kind,omitempty"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/progress.go b/vendor/github.com/a-h/templ/lsp/protocol/progress.go new file mode 100644 index 0000000..d1a2e9f --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/progress.go @@ -0,0 +1,119 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// WorkDoneProgressKind kind of WorkDoneProgress. +// +// @since 3.15.0. +type WorkDoneProgressKind string + +// list of WorkDoneProgressKind. +const ( + // WorkDoneProgressKindBegin kind of WorkDoneProgressBegin. + WorkDoneProgressKindBegin WorkDoneProgressKind = "begin" + + // WorkDoneProgressKindReport kind of WorkDoneProgressReport. + WorkDoneProgressKindReport WorkDoneProgressKind = "report" + + // WorkDoneProgressKindEnd kind of WorkDoneProgressEnd. + WorkDoneProgressKindEnd WorkDoneProgressKind = "end" +) + +// WorkDoneProgressBegin is the to start progress reporting a "$/progress" notification. +// +// @since 3.15.0. +type WorkDoneProgressBegin struct { + // Kind is the kind of WorkDoneProgressBegin. + // + // It must be WorkDoneProgressKindBegin. + Kind WorkDoneProgressKind `json:"kind"` + + // Title mandatory title of the progress operation. Used to briefly inform about + // the kind of operation being performed. + // + // Examples: "Indexing" or "Linking dependencies". + Title string `json:"title"` + + // Cancellable controls if a cancel button should show to allow the user to cancel the + // long running operation. Clients that don't support cancellation are allowed + // to ignore the setting. + Cancellable bool `json:"cancellable,omitempty"` + + // Message is optional, more detailed associated progress message. Contains + // complementary information to the `title`. + // + // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". + // If unset, the previous progress message (if any) is still valid. + Message string `json:"message,omitempty"` + + // Percentage is optional progress percentage to display (value 100 is considered 100%). + // If not provided infinite progress is assumed and clients are allowed + // to ignore the `percentage` value in subsequent in report notifications. + // + // The value should be steadily rising. Clients are free to ignore values + // that are not following this rule. + Percentage uint32 `json:"percentage,omitempty"` +} + +// WorkDoneProgressReport is the reporting progress is done. +// +// @since 3.15.0. +type WorkDoneProgressReport struct { + // Kind is the kind of WorkDoneProgressReport. + // + // It must be WorkDoneProgressKindReport. + Kind WorkDoneProgressKind `json:"kind"` + + // Cancellable controls enablement state of a cancel button. + // + // Clients that don't support cancellation or don't support controlling the button's + // enablement state are allowed to ignore the property. + Cancellable bool `json:"cancellable,omitempty"` + + // Message is optional, more detailed associated progress message. Contains + // complementary information to the `title`. + // + // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". + // If unset, the previous progress message (if any) is still valid. + Message string `json:"message,omitempty"` + + // Percentage is optional progress percentage to display (value 100 is considered 100%). + // If not provided infinite progress is assumed and clients are allowed + // to ignore the `percentage` value in subsequent in report notifications. + // + // The value should be steadily rising. Clients are free to ignore values + // that are not following this rule. + Percentage uint32 `json:"percentage,omitempty"` +} + +// WorkDoneProgressEnd is the signaling the end of a progress reporting is done. +// +// @since 3.15.0. +type WorkDoneProgressEnd struct { + // Kind is the kind of WorkDoneProgressEnd. + // + // It must be WorkDoneProgressKindEnd. + Kind WorkDoneProgressKind `json:"kind"` + + // Message is optional, a final message indicating to for example indicate the outcome + // of the operation. + Message string `json:"message,omitempty"` +} + +// WorkDoneProgressParams is a parameter property of report work done progress. +// +// @since 3.15.0. +type WorkDoneProgressParams struct { + // WorkDoneToken an optional token that a server can use to report work done progress. + WorkDoneToken *ProgressToken `json:"workDoneToken,omitempty"` +} + +// PartialResultParams is the parameter literal used to pass a partial result token. +// +// @since 3.15.0. +type PartialResultParams struct { + // PartialResultToken an optional token that a server can use to report partial results + // (for example, streaming) to the client. + PartialResultToken *ProgressToken `json:"partialResultToken,omitempty"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/protocol.go b/vendor/github.com/a-h/templ/lsp/protocol/protocol.go new file mode 100644 index 0000000..e8f7ccb --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/protocol.go @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "context" + "log/slog" + + "github.com/a-h/templ/lsp/jsonrpc2" +) + +// NewServer returns the context in which client is embedded, jsonrpc2.Conn, and the Client. +func NewServer(ctx context.Context, server Server, stream jsonrpc2.Stream, logger *slog.Logger) (context.Context, jsonrpc2.Conn, Client) { + conn := jsonrpc2.NewConn(stream) + cliint := ClientDispatcher(conn, logger.With(slog.String("name", "client"))) + ctx = WithClient(ctx, cliint) + + conn.Go(ctx, + Handlers( + ServerHandler(logger, server, jsonrpc2.MethodNotFoundHandler), + ), + ) + + return ctx, conn, cliint +} + +// NewClient returns the context in which Client is embedded, jsonrpc2.Conn, and the Server. +func NewClient(ctx context.Context, client Client, stream jsonrpc2.Stream, logger *slog.Logger) (context.Context, jsonrpc2.Conn, Server) { + ctx = WithClient(ctx, client) + + conn := jsonrpc2.NewConn(stream) + conn.Go(ctx, + Handlers( + ClientHandler(logger, client, jsonrpc2.MethodNotFoundHandler), + ), + ) + server := ServerDispatcher(conn, logger.With(slog.String("name", "server"))) + + return ctx, conn, server +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/registration.go b/vendor/github.com/a-h/templ/lsp/protocol/registration.go new file mode 100644 index 0000000..1cb7ab7 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/registration.go @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// Registration general parameters to register for a capability. +type Registration struct { + // ID is the id used to register the request. The id can be used to deregister + // the request again. + ID string `json:"id"` + + // Method is the method / capability to register for. + Method string `json:"method"` + + // RegisterOptions options necessary for the registration. + RegisterOptions any `json:"registerOptions,omitempty"` +} + +// RegistrationParams params of Register Capability. +type RegistrationParams struct { + Registrations []Registration `json:"registrations"` +} + +// TextDocumentRegistrationOptions TextDocumentRegistration options. +type TextDocumentRegistrationOptions struct { + // DocumentSelector a document selector to identify the scope of the registration. If set to null + // the document selector provided on the client side will be used. + DocumentSelector DocumentSelector `json:"documentSelector"` +} + +// Unregistration general parameters to unregister a capability. +type Unregistration struct { + // ID is the id used to unregister the request or notification. Usually an id + // provided during the register request. + ID string `json:"id"` + + // Method is the method / capability to unregister for. + Method string `json:"method"` +} + +// UnregistrationParams params of Unregistration. +type UnregistrationParams struct { + Unregisterations []Unregistration `json:"unregisterations"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go b/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go new file mode 100644 index 0000000..a45b758 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go @@ -0,0 +1,110 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// SelectionRangeProviderOptions selection range provider options interface. +type SelectionRangeProviderOptions any + +// SelectionRange represents a selection range represents a part of a selection hierarchy. +// +// A selection range may have a parent selection range that contains it. +// +// @since 3.15.0. +type SelectionRange struct { + // Range is the Range of this selection range. + Range Range `json:"range"` + + // Parent is the parent selection range containing this range. Therefore `parent.range` must contain this Range. + Parent *SelectionRange `json:"parent,omitempty"` +} + +// EnableSelectionRange is the whether the selection range. +type EnableSelectionRange bool + +// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. +var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) + +// Value implements SelectionRangeProviderOptions interface. +func (v EnableSelectionRange) Value() any { + return bool(v) +} + +// NewEnableSelectionRange returns the new EnableSelectionRange underlying types SelectionRangeProviderOptions. +func NewEnableSelectionRange(enable bool) SelectionRangeProviderOptions { + v := EnableSelectionRange(enable) + + return &v +} + +// SelectionRangeOptions is the server capability of selection range. +type SelectionRangeOptions struct { + WorkDoneProgressOptions +} + +// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. +var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) + +// Value implements SelectionRangeProviderOptions interface. +func (v *SelectionRangeOptions) Value() any { + return v +} + +// NewSelectionRangeOptions returns the new SelectionRangeOptions underlying types SelectionRangeProviderOptions. +func NewSelectionRangeOptions(enableWorkDoneProgress bool) SelectionRangeProviderOptions { + v := SelectionRangeOptions{ + WorkDoneProgressOptions: WorkDoneProgressOptions{ + WorkDoneProgress: enableWorkDoneProgress, + }, + } + + return &v +} + +// SelectionRangeRegistrationOptions is the server capability of selection range registration. +type SelectionRangeRegistrationOptions struct { + SelectionRangeOptions + TextDocumentRegistrationOptions + StaticRegistrationOptions +} + +// compile time check whether the SelectionRangeRegistrationOptions implements a SelectionRangeProviderOptions interface. +var _ SelectionRangeProviderOptions = (*SelectionRangeRegistrationOptions)(nil) + +// Value implements SelectionRangeProviderOptions interface. +func (v *SelectionRangeRegistrationOptions) Value() any { + return v +} + +// NewSelectionRangeRegistrationOptions returns the new SelectionRangeRegistrationOptions underlying types SelectionRangeProviderOptions. +func NewSelectionRangeRegistrationOptions(enableWorkDoneProgress bool, selector DocumentSelector, id string) SelectionRangeProviderOptions { + v := SelectionRangeRegistrationOptions{ + SelectionRangeOptions: SelectionRangeOptions{ + WorkDoneProgressOptions: WorkDoneProgressOptions{ + WorkDoneProgress: enableWorkDoneProgress, + }, + }, + TextDocumentRegistrationOptions: TextDocumentRegistrationOptions{ + DocumentSelector: selector, + }, + StaticRegistrationOptions: StaticRegistrationOptions{ + ID: id, + }, + } + + return &v +} + +// SelectionRangeParams represents a parameter literal used in selection range requests. +// +// @since 3.15.0. +type SelectionRangeParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Positions is the positions inside the text document. + Positions []Position `json:"positions"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go b/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go new file mode 100644 index 0000000..c2d1f3a --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go @@ -0,0 +1,179 @@ +// SPDX-FileCopyrightText: 2021 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// SemanticTokenTypes represents a type of semantic token. +// +// @since 3.16.0. +type SemanticTokenTypes string + +// list of SemanticTokenTypes. +const ( + SemanticTokenNamespace SemanticTokenTypes = "namespace" + + // Represents a generic type. Acts as a fallback for types which + // can't be mapped to a specific type like class or enum. + SemanticTokenType SemanticTokenTypes = "type" + SemanticTokenClass SemanticTokenTypes = "class" + SemanticTokenEnum SemanticTokenTypes = "enum" + SemanticTokenInterface SemanticTokenTypes = "interface" + SemanticTokenStruct SemanticTokenTypes = "struct" + SemanticTokenTypeParameter SemanticTokenTypes = "typeParameter" + SemanticTokenParameter SemanticTokenTypes = "parameter" + SemanticTokenVariable SemanticTokenTypes = "variable" + SemanticTokenProperty SemanticTokenTypes = "property" + SemanticTokenEnumMember SemanticTokenTypes = "enumMember" + SemanticTokenEvent SemanticTokenTypes = "event" + SemanticTokenFunction SemanticTokenTypes = "function" + SemanticTokenMethod SemanticTokenTypes = "method" + SemanticTokenMacro SemanticTokenTypes = "macro" + SemanticTokenKeyword SemanticTokenTypes = "keyword" + SemanticTokenModifier SemanticTokenTypes = "modifier" + SemanticTokenComment SemanticTokenTypes = "comment" + SemanticTokenString SemanticTokenTypes = "string" + SemanticTokenNumber SemanticTokenTypes = "number" + SemanticTokenRegexp SemanticTokenTypes = "regexp" + SemanticTokenOperator SemanticTokenTypes = "operator" +) + +// SemanticTokenModifiers represents a modifiers of semantic token. +// +// @since 3.16.0. +type SemanticTokenModifiers string + +// list of SemanticTokenModifiers. +const ( + SemanticTokenModifierDeclaration SemanticTokenModifiers = "declaration" + SemanticTokenModifierDefinition SemanticTokenModifiers = "definition" + SemanticTokenModifierReadonly SemanticTokenModifiers = "readonly" + SemanticTokenModifierStatic SemanticTokenModifiers = "static" + SemanticTokenModifierDeprecated SemanticTokenModifiers = "deprecated" + SemanticTokenModifierAbstract SemanticTokenModifiers = "abstract" + SemanticTokenModifierAsync SemanticTokenModifiers = "async" + SemanticTokenModifierModification SemanticTokenModifiers = "modification" + SemanticTokenModifierDocumentation SemanticTokenModifiers = "documentation" + SemanticTokenModifierDefaultLibrary SemanticTokenModifiers = "defaultLibrary" +) + +// TokenFormat is an additional token format capability to allow future extensions of the format. +// +// @since 3.16.0. +type TokenFormat string + +// TokenFormatRelative described using relative positions. +const TokenFormatRelative TokenFormat = "relative" + +// SemanticTokensLegend is the on the capability level types and modifiers are defined using strings. +// +// However the real encoding happens using numbers. +// +// The server therefore needs to let the client know which numbers it is using for which types and modifiers. +// +// @since 3.16.0. +type SemanticTokensLegend struct { + // TokenTypes is the token types a server uses. + TokenTypes []SemanticTokenTypes `json:"tokenTypes"` + + // TokenModifiers is the token modifiers a server uses. + TokenModifiers []SemanticTokenModifiers `json:"tokenModifiers"` +} + +// SemanticTokensParams params for the SemanticTokensFull request. +// +// @since 3.16.0. +type SemanticTokensParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// SemanticTokens is the result of SemanticTokensFull request. +// +// @since 3.16.0. +type SemanticTokens struct { + // ResultID an optional result id. If provided and clients support delta updating + // the client will include the result id in the next semantic token request. + // + // A server can then instead of computing all semantic tokens again simply + // send a delta. + ResultID string `json:"resultId,omitempty"` + + // Data is the actual tokens. + Data []uint32 `json:"data"` +} + +// SemanticTokensPartialResult is the partial result of SemanticTokensFull request. +// +// @since 3.16.0. +type SemanticTokensPartialResult struct { + // Data is the actual tokens. + Data []uint32 `json:"data"` +} + +// SemanticTokensDeltaParams params for the SemanticTokensFullDelta request. +// +// @since 3.16.0. +type SemanticTokensDeltaParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // PreviousResultID is the result id of a previous response. + // + // The result Id can either point to a full response or a delta response depending on what was received last. + PreviousResultID string `json:"previousResultId"` +} + +// SemanticTokensDelta result of SemanticTokensFullDelta request. +// +// @since 3.16.0. +type SemanticTokensDelta struct { + // ResultID is the result id. + // + // This field is readonly. + ResultID string `json:"resultId,omitempty"` + + // Edits is the semantic token edits to transform a previous result into a new + // result. + Edits []SemanticTokensEdit `json:"edits"` +} + +// SemanticTokensDeltaPartialResult is the partial result of SemanticTokensFullDelta request. +// +// @since 3.16.0. +type SemanticTokensDeltaPartialResult struct { + Edits []SemanticTokensEdit `json:"edits"` +} + +// SemanticTokensEdit is the semantic token edit. +// +// @since 3.16.0. +type SemanticTokensEdit struct { + // Start is the start offset of the edit. + Start uint32 `json:"start"` + + // DeleteCount is the count of elements to remove. + DeleteCount uint32 `json:"deleteCount"` + + // Data is the elements to insert. + Data []uint32 `json:"data,omitempty"` +} + +// SemanticTokensRangeParams params for the SemanticTokensRange request. +// +// @since 3.16.0. +type SemanticTokensRangeParams struct { + WorkDoneProgressParams + PartialResultParams + + // TextDocument is the text document. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Range is the range the semantic tokens are requested for. + Range Range `json:"range"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/server.go b/vendor/github.com/a-h/templ/lsp/protocol/server.go new file mode 100644 index 0000000..feba2bb --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/server.go @@ -0,0 +1,1893 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "bytes" + "context" + "fmt" + "log/slog" + + "encoding/json" + + "github.com/a-h/templ/lsp/jsonrpc2" + "github.com/a-h/templ/lsp/xcontext" +) + +// ServerDispatcher returns a Server that dispatches LSP requests across the +// given jsonrpc2 connection. +func ServerDispatcher(conn jsonrpc2.Conn, logger *slog.Logger) Server { + return &server{ + Conn: conn, + logger: logger, + } +} + +// ServerHandler jsonrpc2.Handler of Language Server Prococol Server. +// +//nolint:unparam +func ServerHandler(log *slog.Logger, server Server, handler jsonrpc2.Handler) jsonrpc2.Handler { + h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { + if ctx.Err() != nil { + xctx := xcontext.Detach(ctx) + + return reply(xctx, nil, ErrRequestCancelled) + } + handled, err := serverDispatch(ctx, log, server, reply, req) + if handled || err != nil { + return err + } + + // TODO: This code is wrong, it ignores handler and assumes non standard + // request handles everything + // non standard request should just be a layered handler. + var params any + if err := json.Unmarshal(req.Params(), ¶ms); err != nil { + return replyParseError(ctx, reply, err) + } + + resp, err := server.Request(ctx, req.Method(), params) + + return reply(ctx, resp, err) + } + + return h +} + +// serverDispatch implements jsonrpc2.Handler. +// +//nolint:gocognit,funlen,gocyclo,cyclop +func serverDispatch(ctx context.Context, logger *slog.Logger, server Server, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { + if ctx.Err() != nil { + return true, reply(ctx, nil, ErrRequestCancelled) + } + + dec := json.NewDecoder(bytes.NewReader(req.Params())) + + switch req.Method() { + case MethodInitialize: // request + defer logger.Debug(MethodInitialize, slog.Any("error", err)) + + var params InitializeParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Initialize(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodInitialized: // notification + defer logger.Debug(MethodInitialized, slog.Any("error", err)) + + var params InitializedParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.Initialized(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodShutdown: // request + defer logger.Debug(MethodShutdown, slog.Any("error", err)) + + if len(req.Params()) > 0 { + return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) + } + + err := server.Shutdown(ctx) + + return true, reply(ctx, nil, err) + + case MethodExit: // notification + defer logger.Debug(MethodExit, slog.Any("error", err)) + + if len(req.Params()) > 0 { + return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) + } + + err := server.Exit(ctx) + + return true, reply(ctx, nil, err) + + case MethodWorkDoneProgressCancel: // notification + defer logger.Debug(MethodWorkDoneProgressCancel, slog.Any("error", err)) + + var params WorkDoneProgressCancelParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.WorkDoneProgressCancel(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodLogTrace: // notification + defer logger.Debug(MethodLogTrace, slog.Any("error", err)) + + var params LogTraceParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.LogTrace(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodSetTrace: // notification + defer logger.Debug(MethodSetTrace, slog.Any("error", err)) + + var params SetTraceParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.SetTrace(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentCodeAction: // request + defer logger.Debug(MethodTextDocumentCodeAction, slog.Any("error", err)) + + var params CodeActionParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.CodeAction(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentCodeLens: // request + defer logger.Debug(MethodTextDocumentCodeLens, slog.Any("error", err)) + + var params CodeLensParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.CodeLens(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodCodeLensResolve: // request + defer logger.Debug(MethodCodeLensResolve, slog.Any("error", err)) + + var params CodeLens + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.CodeLensResolve(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentColorPresentation: // request + defer logger.Debug(MethodTextDocumentColorPresentation, slog.Any("error", err)) + + var params ColorPresentationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.ColorPresentation(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentCompletion: // request + defer logger.Debug(MethodTextDocumentCompletion, slog.Any("error", err)) + + var params CompletionParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Completion(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodCompletionItemResolve: // request + defer logger.Debug(MethodCompletionItemResolve, slog.Any("error", err)) + + var params CompletionItem + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.CompletionResolve(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDeclaration: // request + defer logger.Debug(MethodTextDocumentDeclaration, slog.Any("error", err)) + + var params DeclarationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Declaration(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDefinition: // request + defer logger.Debug(MethodTextDocumentDefinition, slog.Any("error", err)) + + var params DefinitionParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Definition(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDidChange: // notification + defer logger.Debug(MethodTextDocumentDidChange, slog.Any("error", err)) + + var params DidChangeTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidChange(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWorkspaceDidChangeConfiguration: // notification + defer logger.Debug(MethodWorkspaceDidChangeConfiguration, slog.Any("error", err)) + + var params DidChangeConfigurationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidChangeConfiguration(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWorkspaceDidChangeWatchedFiles: // notification + defer logger.Debug(MethodWorkspaceDidChangeWatchedFiles, slog.Any("error", err)) + + var params DidChangeWatchedFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidChangeWatchedFiles(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWorkspaceDidChangeWorkspaceFolders: // notification + defer logger.Debug(MethodWorkspaceDidChangeWorkspaceFolders, slog.Any("error", err)) + + var params DidChangeWorkspaceFoldersParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidChangeWorkspaceFolders(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentDidClose: // notification + defer logger.Debug(MethodTextDocumentDidClose, slog.Any("error", err)) + + var params DidCloseTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidClose(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentDidOpen: // notification + defer logger.Debug(MethodTextDocumentDidOpen, slog.Any("error", err)) + + var params DidOpenTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidOpen(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentDidSave: // notification + defer logger.Debug(MethodTextDocumentDidSave, slog.Any("error", err)) + + var params DidSaveTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidSave(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentDocumentColor: // request + defer logger.Debug(MethodTextDocumentDocumentColor, slog.Any("error", err)) + + var params DocumentColorParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.DocumentColor(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDocumentHighlight: // request + defer logger.Debug(MethodTextDocumentDocumentHighlight, slog.Any("error", err)) + + var params DocumentHighlightParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.DocumentHighlight(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDocumentLink: // request + defer logger.Debug(MethodTextDocumentDocumentLink, slog.Any("error", err)) + + var params DocumentLinkParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.DocumentLink(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodDocumentLinkResolve: // request + defer logger.Debug(MethodDocumentLinkResolve, slog.Any("error", err)) + + var params DocumentLink + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.DocumentLinkResolve(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentDocumentSymbol: // request + defer logger.Debug(MethodTextDocumentDocumentSymbol, slog.Any("error", err)) + + var params DocumentSymbolParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.DocumentSymbol(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodWorkspaceExecuteCommand: // request + defer logger.Debug(MethodWorkspaceExecuteCommand, slog.Any("error", err)) + + var params ExecuteCommandParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.ExecuteCommand(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentFoldingRange: // request + defer logger.Debug(MethodTextDocumentFoldingRange, slog.Any("error", err)) + + var params FoldingRangeParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.FoldingRanges(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentFormatting: // request + defer logger.Debug(MethodTextDocumentFormatting, slog.Any("error", err)) + + var params DocumentFormattingParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Formatting(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentHover: // request + defer logger.Debug(MethodTextDocumentHover, slog.Any("error", err)) + + var params HoverParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Hover(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentImplementation: // request + defer logger.Debug(MethodTextDocumentImplementation, slog.Any("error", err)) + + var params ImplementationParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Implementation(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentOnTypeFormatting: // request + defer logger.Debug(MethodTextDocumentOnTypeFormatting, slog.Any("error", err)) + + var params DocumentOnTypeFormattingParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.OnTypeFormatting(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentPrepareRename: // request + defer logger.Debug(MethodTextDocumentPrepareRename, slog.Any("error", err)) + + var params PrepareRenameParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.PrepareRename(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentRangeFormatting: // request + defer logger.Debug(MethodTextDocumentRangeFormatting, slog.Any("error", err)) + + var params DocumentRangeFormattingParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.RangeFormatting(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentReferences: // request + defer logger.Debug(MethodTextDocumentReferences, slog.Any("error", err)) + + var params ReferenceParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.References(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentRename: // request + defer logger.Debug(MethodTextDocumentRename, slog.Any("error", err)) + + var params RenameParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Rename(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentSignatureHelp: // request + defer logger.Debug(MethodTextDocumentSignatureHelp, slog.Any("error", err)) + + var params SignatureHelpParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.SignatureHelp(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodWorkspaceSymbol: // request + defer logger.Debug(MethodWorkspaceSymbol, slog.Any("error", err)) + + var params WorkspaceSymbolParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Symbols(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentTypeDefinition: // request + defer logger.Debug(MethodTextDocumentTypeDefinition, slog.Any("error", err)) + + var params TypeDefinitionParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.TypeDefinition(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodTextDocumentWillSave: // notification + defer logger.Debug(MethodTextDocumentWillSave, slog.Any("error", err)) + + var params WillSaveTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.WillSave(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentWillSaveWaitUntil: // request + defer logger.Debug(MethodTextDocumentWillSaveWaitUntil, slog.Any("error", err)) + + var params WillSaveTextDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.WillSaveWaitUntil(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodShowDocument: // request + defer logger.Debug(MethodShowDocument, slog.Any("error", err)) + + var params ShowDocumentParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.ShowDocument(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodWillCreateFiles: // request + defer logger.Debug(MethodWillCreateFiles, slog.Any("error", err)) + + var params CreateFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.WillCreateFiles(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodDidCreateFiles: // notification + defer logger.Debug(MethodDidCreateFiles, slog.Any("error", err)) + + var params CreateFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidCreateFiles(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWillRenameFiles: // request + defer logger.Debug(MethodWillRenameFiles, slog.Any("error", err)) + + var params RenameFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.WillRenameFiles(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodDidRenameFiles: // notification + defer logger.Debug(MethodDidRenameFiles, slog.Any("error", err)) + + var params RenameFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidRenameFiles(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodWillDeleteFiles: // request + defer logger.Debug(MethodWillDeleteFiles, slog.Any("error", err)) + + var params DeleteFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.WillDeleteFiles(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodDidDeleteFiles: // notification + defer logger.Debug(MethodDidDeleteFiles, slog.Any("error", err)) + + var params DeleteFilesParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + err := server.DidDeleteFiles(ctx, ¶ms) + + return true, reply(ctx, nil, err) + + case MethodCodeLensRefresh: // request + defer logger.Debug(MethodCodeLensRefresh, slog.Any("error", err)) + + if len(req.Params()) > 0 { + return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) + } + + err := server.CodeLensRefresh(ctx) + + return true, reply(ctx, nil, err) + + case MethodTextDocumentPrepareCallHierarchy: // request + defer logger.Debug(MethodTextDocumentPrepareCallHierarchy, slog.Any("error", err)) + + var params CallHierarchyPrepareParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.PrepareCallHierarchy(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodCallHierarchyIncomingCalls: // request + defer logger.Debug(MethodCallHierarchyIncomingCalls, slog.Any("error", err)) + + var params CallHierarchyIncomingCallsParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.IncomingCalls(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodCallHierarchyOutgoingCalls: // request + defer logger.Debug(MethodCallHierarchyOutgoingCalls, slog.Any("error", err)) + + var params CallHierarchyOutgoingCallsParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.OutgoingCalls(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodSemanticTokensFull: // request + defer logger.Debug(MethodSemanticTokensFull, slog.Any("error", err)) + + var params SemanticTokensParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.SemanticTokensFull(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodSemanticTokensFullDelta: // request + defer logger.Debug(MethodSemanticTokensFullDelta, slog.Any("error", err)) + + var params SemanticTokensDeltaParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.SemanticTokensFullDelta(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodSemanticTokensRange: // request + defer logger.Debug(MethodSemanticTokensRange, slog.Any("error", err)) + + var params SemanticTokensRangeParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.SemanticTokensRange(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodSemanticTokensRefresh: // request + defer logger.Debug(MethodSemanticTokensRefresh, slog.Any("error", err)) + + if len(req.Params()) > 0 { + return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) + } + + err := server.SemanticTokensRefresh(ctx) + + return true, reply(ctx, nil, err) + + case MethodLinkedEditingRange: // request + defer logger.Debug(MethodLinkedEditingRange, slog.Any("error", err)) + + var params LinkedEditingRangeParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.LinkedEditingRange(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + case MethodMoniker: // request + defer logger.Debug(MethodMoniker, slog.Any("error", err)) + + var params MonikerParams + if err := dec.Decode(¶ms); err != nil { + return true, replyParseError(ctx, reply, err) + } + + resp, err := server.Moniker(ctx, ¶ms) + + return true, reply(ctx, resp, err) + + default: + return false, nil + } +} + +// Server represents a Language Server Protocol server. +type Server interface { + Initialize(ctx context.Context, params *InitializeParams) (result *InitializeResult, err error) + Initialized(ctx context.Context, params *InitializedParams) (err error) + Shutdown(ctx context.Context) (err error) + Exit(ctx context.Context) (err error) + WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) + LogTrace(ctx context.Context, params *LogTraceParams) (err error) + SetTrace(ctx context.Context, params *SetTraceParams) (err error) + CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) + CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) + CodeLensResolve(ctx context.Context, params *CodeLens) (result *CodeLens, err error) + ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) + Completion(ctx context.Context, params *CompletionParams) (result *CompletionList, err error) + CompletionResolve(ctx context.Context, params *CompletionItem) (result *CompletionItem, err error) + Declaration(ctx context.Context, params *DeclarationParams) (result []Location /* Declaration | DeclarationLink[] | null */, err error) + Definition(ctx context.Context, params *DefinitionParams) (result []Location /* Definition | DefinitionLink[] | null */, err error) + DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) + DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) + DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) + DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) + DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) + DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) + DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) + DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) + DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) + DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) + DocumentLinkResolve(ctx context.Context, params *DocumentLink) (result *DocumentLink, err error) + DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []SymbolInformationOrDocumentSymbol, err error) + ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result any, err error) + FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) + Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) + Hover(ctx context.Context, params *HoverParams) (result *Hover, err error) + Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) + OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) + PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) + RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) + References(ctx context.Context, params *ReferenceParams) (result []Location, err error) + Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) + SignatureHelp(ctx context.Context, params *SignatureHelpParams) (result *SignatureHelp, err error) + Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) + TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) + WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) + WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) + ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) + WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) + DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) + WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) + DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) + WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) + DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) + CodeLensRefresh(ctx context.Context) (err error) + PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) + IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) + OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) + SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) + SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result any /* SemanticTokens | SemanticTokensDelta */, err error) + SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) + SemanticTokensRefresh(ctx context.Context) (err error) + LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) + Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) + Request(ctx context.Context, method string, params any) (result any, err error) +} + +// list of server methods. +const ( + // MethodCancelRequest method name of "$/cancelRequest". + MethodCancelRequest = "$/cancelRequest" + + // MethodInitialize method name of "initialize". + MethodInitialize = "initialize" + + // MethodInitialized method name of "initialized". + MethodInitialized = "initialized" + + // MethodShutdown method name of "shutdown". + MethodShutdown = "shutdown" + + // MethodExit method name of "exit". + MethodExit = "exit" + + // MethodWorkDoneProgressCancel method name of "window/workDoneProgress/cancel". + MethodWorkDoneProgressCancel = "window/workDoneProgress/cancel" + + // MethodLogTrace method name of "$/logTrace". + MethodLogTrace = "$/logTrace" + + // MethodSetTrace method name of "$/setTrace". + MethodSetTrace = "$/setTrace" + + // MethodTextDocumentCodeAction method name of "textDocument/codeAction". + MethodTextDocumentCodeAction = "textDocument/codeAction" + + // MethodTextDocumentCodeLens method name of "textDocument/codeLens". + MethodTextDocumentCodeLens = "textDocument/codeLens" + + // MethodCodeLensResolve method name of "codeLens/resolve". + MethodCodeLensResolve = "codeLens/resolve" + + // MethodTextDocumentColorPresentation method name of "textDocument/colorPresentation". + MethodTextDocumentColorPresentation = "textDocument/colorPresentation" + + // MethodTextDocumentCompletion method name of "textDocument/completion". + MethodTextDocumentCompletion = "textDocument/completion" + + // MethodCompletionItemResolve method name of "completionItem/resolve". + MethodCompletionItemResolve = "completionItem/resolve" + + // MethodTextDocumentDeclaration method name of "textDocument/declaration". + MethodTextDocumentDeclaration = "textDocument/declaration" + + // MethodTextDocumentDefinition method name of "textDocument/definition". + MethodTextDocumentDefinition = "textDocument/definition" + + // MethodTextDocumentDidChange method name of "textDocument/didChange". + MethodTextDocumentDidChange = "textDocument/didChange" + + // MethodWorkspaceDidChangeConfiguration method name of "workspace/didChangeConfiguration". + MethodWorkspaceDidChangeConfiguration = "workspace/didChangeConfiguration" + + // MethodWorkspaceDidChangeWatchedFiles method name of "workspace/didChangeWatchedFiles". + MethodWorkspaceDidChangeWatchedFiles = "workspace/didChangeWatchedFiles" + + // MethodWorkspaceDidChangeWorkspaceFolders method name of "workspace/didChangeWorkspaceFolders". + MethodWorkspaceDidChangeWorkspaceFolders = "workspace/didChangeWorkspaceFolders" + + // MethodTextDocumentDidClose method name of "textDocument/didClose". + MethodTextDocumentDidClose = "textDocument/didClose" + + // MethodTextDocumentDidOpen method name of "textDocument/didOpen". + MethodTextDocumentDidOpen = "textDocument/didOpen" + + // MethodTextDocumentDidSave method name of "textDocument/didSave". + MethodTextDocumentDidSave = "textDocument/didSave" + + // MethodTextDocumentDocumentColor method name of"textDocument/documentColor". + MethodTextDocumentDocumentColor = "textDocument/documentColor" + + // MethodTextDocumentDocumentHighlight method name of "textDocument/documentHighlight". + MethodTextDocumentDocumentHighlight = "textDocument/documentHighlight" + + // MethodTextDocumentDocumentLink method name of "textDocument/documentLink". + MethodTextDocumentDocumentLink = "textDocument/documentLink" + + // MethodDocumentLinkResolve method name of "documentLink/resolve". + MethodDocumentLinkResolve = "documentLink/resolve" + + // MethodTextDocumentDocumentSymbol method name of "textDocument/documentSymbol". + MethodTextDocumentDocumentSymbol = "textDocument/documentSymbol" + + // MethodWorkspaceExecuteCommand method name of "workspace/executeCommand". + MethodWorkspaceExecuteCommand = "workspace/executeCommand" + + // MethodTextDocumentFoldingRange method name of "textDocument/foldingRange". + MethodTextDocumentFoldingRange = "textDocument/foldingRange" + + // MethodTextDocumentFormatting method name of "textDocument/formatting". + MethodTextDocumentFormatting = "textDocument/formatting" + + // MethodTextDocumentHover method name of "textDocument/hover". + MethodTextDocumentHover = "textDocument/hover" + + // MethodTextDocumentImplementation method name of "textDocument/implementation". + MethodTextDocumentImplementation = "textDocument/implementation" + + // MethodTextDocumentOnTypeFormatting method name of "textDocument/onTypeFormatting". + MethodTextDocumentOnTypeFormatting = "textDocument/onTypeFormatting" + + // MethodTextDocumentPrepareRename method name of "textDocument/prepareRename". + MethodTextDocumentPrepareRename = "textDocument/prepareRename" + + // MethodTextDocumentRangeFormatting method name of "textDocument/rangeFormatting". + MethodTextDocumentRangeFormatting = "textDocument/rangeFormatting" + + // MethodTextDocumentReferences method name of "textDocument/references". + MethodTextDocumentReferences = "textDocument/references" + + // MethodTextDocumentRename method name of "textDocument/rename". + MethodTextDocumentRename = "textDocument/rename" + + // MethodTextDocumentSignatureHelp method name of "textDocument/signatureHelp". + MethodTextDocumentSignatureHelp = "textDocument/signatureHelp" + + // MethodWorkspaceSymbol method name of "workspace/symbol". + MethodWorkspaceSymbol = "workspace/symbol" + + // MethodTextDocumentTypeDefinition method name of "textDocument/typeDefinition". + MethodTextDocumentTypeDefinition = "textDocument/typeDefinition" + + // MethodTextDocumentWillSave method name of "textDocument/willSave". + MethodTextDocumentWillSave = "textDocument/willSave" + + // MethodTextDocumentWillSaveWaitUntil method name of "textDocument/willSaveWaitUntil". + MethodTextDocumentWillSaveWaitUntil = "textDocument/willSaveWaitUntil" + + // MethodShowDocument method name of "window/showDocument". + MethodShowDocument = "window/showDocument" + + // MethodWillCreateFiles method name of "workspace/willCreateFiles". + MethodWillCreateFiles = "workspace/willCreateFiles" + + // MethodDidCreateFiles method name of "workspace/didCreateFiles". + MethodDidCreateFiles = "workspace/didCreateFiles" + + // MethodWillRenameFiles method name of "workspace/willRenameFiles". + MethodWillRenameFiles = "workspace/willRenameFiles" + + // MethodDidRenameFiles method name of "workspace/didRenameFiles". + MethodDidRenameFiles = "workspace/didRenameFiles" + + // MethodWillDeleteFiles method name of "workspace/willDeleteFiles". + MethodWillDeleteFiles = "workspace/willDeleteFiles" + + // MethodDidDeleteFiles method name of "workspace/didDeleteFiles". + MethodDidDeleteFiles = "workspace/didDeleteFiles" + + // MethodCodeLensRefresh method name of "workspace/codeLens/refresh". + MethodCodeLensRefresh = "workspace/codeLens/refresh" + + // MethodTextDocumentPrepareCallHierarchy method name of "textDocument/prepareCallHierarchy". + MethodTextDocumentPrepareCallHierarchy = "textDocument/prepareCallHierarchy" + + // MethodCallHierarchyIncomingCalls method name of "callHierarchy/incomingCalls". + MethodCallHierarchyIncomingCalls = "callHierarchy/incomingCalls" + + // MethodCallHierarchyOutgoingCalls method name of "callHierarchy/outgoingCalls". + MethodCallHierarchyOutgoingCalls = "callHierarchy/outgoingCalls" + + // MethodSemanticTokensFull method name of "textDocument/semanticTokens/full". + MethodSemanticTokensFull = "textDocument/semanticTokens/full" + + // MethodSemanticTokensFullDelta method name of "textDocument/semanticTokens/full/delta". + MethodSemanticTokensFullDelta = "textDocument/semanticTokens/full/delta" + + // MethodSemanticTokensRange method name of "textDocument/semanticTokens/range". + MethodSemanticTokensRange = "textDocument/semanticTokens/range" + + // MethodSemanticTokensRefresh method name of "workspace/semanticTokens/refresh". + MethodSemanticTokensRefresh = "workspace/semanticTokens/refresh" + + // MethodLinkedEditingRange method name of "textDocument/linkedEditingRange". + MethodLinkedEditingRange = "textDocument/linkedEditingRange" + + // MethodMoniker method name of "textDocument/moniker". + MethodMoniker = "textDocument/moniker" +) + +// server implements a Language Server Protocol server. +type server struct { + jsonrpc2.Conn + + logger *slog.Logger +} + +var _ Server = (*server)(nil) + +// Initialize sents the request as the first request from the client to the server. +// +// If the server receives a request or notification before the initialize request it should act as follows: +// +// - For a request the response should be an error with code: -32002. The message can be picked by the server. +// - Notifications should be dropped, except for the exit notification. This will allow the exit of a server without an initialize request. +// +// Until the server has responded to the initialize request with an InitializeResult, the client +// must not send any additional requests or notifications to the server. +// In addition the server is not allowed to send any requests or notifications to the client until +// it has responded with an InitializeResult, with the exception that during the initialize request +// the server is allowed to send the notifications window/showMessage, window/logMessage and telemetry/event +// as well as the window/showMessageRequest request to the client. +func (s *server) Initialize(ctx context.Context, params *InitializeParams) (_ *InitializeResult, err error) { + s.logger.Debug("call " + MethodInitialize) + defer s.logger.Debug("end "+MethodInitialize, slog.Any("error", err)) + + var result *InitializeResult + if err := Call(ctx, s.Conn, MethodInitialize, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Initialized sends the notification from the client to the server after the client received the result of the +// initialize request but before the client is sending any other request or notification to the server. +// +// The server can use the initialized notification for example to dynamically register capabilities. +// The initialized notification may only be sent once. +func (s *server) Initialized(ctx context.Context, params *InitializedParams) (err error) { + s.logger.Debug("notify " + MethodInitialized) + defer s.logger.Debug("end "+MethodInitialized, slog.Any("error", err)) + + return s.Notify(ctx, MethodInitialized, params) +} + +// Shutdown sents the request from the client to the server. +// +// It asks the server to shut down, but to not exit (otherwise the response might not be delivered correctly to the client). +// There is a separate exit notification that asks the server to exit. +// +// Clients must not sent any notifications other than `exit` or requests to a server to which they have sent a shutdown requests. +// If a server receives requests after a shutdown request those requests should be errored with `InvalidRequest`. +func (s *server) Shutdown(ctx context.Context) (err error) { + s.logger.Debug("call " + MethodShutdown) + defer s.logger.Debug("end "+MethodShutdown, slog.Any("error", err)) + + return Call(ctx, s.Conn, MethodShutdown, nil, nil) +} + +// Exit a notification to ask the server to exit its process. +// +// The server should exit with success code 0 if the shutdown request has been received before; otherwise with error code 1. +func (s *server) Exit(ctx context.Context) (err error) { + s.logger.Debug("notify " + MethodExit) + defer s.logger.Debug("end "+MethodExit, slog.Any("error", err)) + + return s.Notify(ctx, MethodExit, nil) +} + +// LogTrace a notification to log the trace of the server’s execution. +// +// The amount and content of these notifications depends on the current trace configuration. +// +// If trace is "off", the server should not send any logTrace notification. If trace is "message", +// the server should not add the "verbose" field in the LogTraceParams. +// +// @since 3.16.0. +func (s *server) LogTrace(ctx context.Context, params *LogTraceParams) (err error) { + s.logger.Debug("notify " + MethodLogTrace) + defer s.logger.Debug("end "+MethodLogTrace, slog.Any("error", err)) + + return s.Notify(ctx, MethodLogTrace, params) +} + +// SetTrace a notification that should be used by the client to modify the trace setting of the server. +// +// @since 3.16.0. +func (s *server) SetTrace(ctx context.Context, params *SetTraceParams) (err error) { + s.logger.Debug("notify " + MethodSetTrace) + defer s.logger.Debug("end "+MethodSetTrace, slog.Any("error", err)) + + return s.Notify(ctx, MethodSetTrace, params) +} + +// WorkDoneProgressCancel is the sends notification from the client to the server to cancel a progress initiated on the +// server side using the "window/workDoneProgress/create". +func (s *server) WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) { + s.logger.Debug("call " + MethodWorkDoneProgressCancel) + defer s.logger.Debug("end "+MethodWorkDoneProgressCancel, slog.Any("error", err)) + + return s.Notify(ctx, MethodWorkDoneProgressCancel, params) +} + +// CodeAction sends the request is from the client to the server to compute commands for a given text document and range. +// +// These commands are typically code fixes to either fix problems or to beautify/refactor code. The result of a `textDocument/codeAction` +// request is an array of `Command` literals which are typically presented in the user interface. +// +// To ensure that a server is useful in many clients the commands specified in a code actions should be handled by the +// server and not by the client (see `workspace/executeCommand` and `ServerCapabilities.executeCommandProvider`). +// If the client supports providing edits with a code action then the mode should be used. +func (s *server) CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) { + s.logger.Debug("call " + MethodTextDocumentCodeAction) + defer s.logger.Debug("end "+MethodTextDocumentCodeAction, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentCodeAction, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// CodeLens sends the request from the client to the server to compute code lenses for a given text document. +func (s *server) CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) { + s.logger.Debug("call " + MethodTextDocumentCodeLens) + defer s.logger.Debug("end "+MethodTextDocumentCodeLens, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentCodeLens, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// CodeLensResolve sends the request from the client to the server to resolve the command for a given code lens item. +func (s *server) CodeLensResolve(ctx context.Context, params *CodeLens) (_ *CodeLens, err error) { + s.logger.Debug("call " + MethodCodeLensResolve) + defer s.logger.Debug("end "+MethodCodeLensResolve, slog.Any("error", err)) + + var result *CodeLens + if err := Call(ctx, s.Conn, MethodCodeLensResolve, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// ColorPresentation sends the request from the client to the server to obtain a list of presentations for a color value at a given location. +// +// # Clients can use the result to +// +// - modify a color reference. +// - show in a color picker and let users pick one of the presentations. +func (s *server) ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) { + s.logger.Debug("call " + MethodTextDocumentColorPresentation) + defer s.logger.Debug("end "+MethodTextDocumentColorPresentation, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentColorPresentation, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Completion sends the request from the client to the server to compute completion items at a given cursor position. +// +// Completion items are presented in the IntelliSense user interface. +// If computing full completion items is expensive, servers can additionally provide a handler for the completion item resolve request (‘completionItem/resolve’). +// +// This request is sent when a completion item is selected in the user interface. +// A typical use case is for example: the ‘textDocument/completion’ request doesn’t fill in the documentation property +// for returned completion items since it is expensive to compute. When the item is selected in the user interface then +// a ‘completionItem/resolve’ request is sent with the selected completion item as a parameter. +// +// The returned completion item should have the documentation property filled in. The request can delay the computation of +// the `detail` and `documentation` properties. However, properties that are needed for the initial sorting and filtering, +// like `sortText`, `filterText`, `insertText`, and `textEdit` must be provided in the `textDocument/completion` response and must not be changed during resolve. +func (s *server) Completion(ctx context.Context, params *CompletionParams) (_ *CompletionList, err error) { + s.logger.Debug("call " + MethodTextDocumentCompletion) + defer s.logger.Debug("end "+MethodTextDocumentCompletion, slog.Any("error", err)) + + var result *CompletionList + if err := Call(ctx, s.Conn, MethodTextDocumentCompletion, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// CompletionResolve sends the request from the client to the server to resolve additional information for a given completion item. +func (s *server) CompletionResolve(ctx context.Context, params *CompletionItem) (_ *CompletionItem, err error) { + s.logger.Debug("call " + MethodCompletionItemResolve) + defer s.logger.Debug("end "+MethodCompletionItemResolve, slog.Any("error", err)) + + var result *CompletionItem + if err := Call(ctx, s.Conn, MethodCompletionItemResolve, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Declaration sends the request from the client to the server to resolve the declaration location of a symbol at a given text document position. +// +// The result type LocationLink[] got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.declaration.linkSupport`. +// +// @since 3.14.0. +func (s *server) Declaration(ctx context.Context, params *DeclarationParams) (result []Location, err error) { + s.logger.Debug("call " + MethodTextDocumentDeclaration) + defer s.logger.Debug("end "+MethodTextDocumentDeclaration, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDeclaration, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Definition sends the request from the client to the server to resolve the definition location of a symbol at a given text document position. +// +// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.definition.linkSupport`. +// +// @since 3.14.0. +func (s *server) Definition(ctx context.Context, params *DefinitionParams) (result []Location, err error) { + s.logger.Debug("call " + MethodTextDocumentDefinition) + defer s.logger.Debug("end "+MethodTextDocumentDefinition, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDefinition, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DidChange sends the notification from the client to the server to signal changes to a text document. +// +// In 2.0 the shape of the params has changed to include proper version numbers and language ids. +func (s *server) DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) { + s.logger.Debug("notify " + MethodTextDocumentDidChange) + defer s.logger.Debug("end "+MethodTextDocumentDidChange, slog.Any("error", err)) + + return s.Notify(ctx, MethodTextDocumentDidChange, params) +} + +// DidChangeConfiguration sends the notification from the client to the server to signal the change of configuration settings. +func (s *server) DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) { + s.logger.Debug("call " + MethodWorkspaceDidChangeConfiguration) + defer s.logger.Debug("end "+MethodWorkspaceDidChangeConfiguration, slog.Any("error", err)) + + return s.Notify(ctx, MethodWorkspaceDidChangeConfiguration, params) +} + +// DidChangeWatchedFiles sends the notification from the client to the server when the client detects changes to files watched by the language client. +// +// It is recommended that servers register for these file events using the registration mechanism. +// In former implementations clients pushed file events without the server actively asking for it. +func (s *server) DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) { + s.logger.Debug("call " + MethodWorkspaceDidChangeWatchedFiles) + defer s.logger.Debug("end "+MethodWorkspaceDidChangeWatchedFiles, slog.Any("error", err)) + + return s.Notify(ctx, MethodWorkspaceDidChangeWatchedFiles, params) +} + +// DidChangeWorkspaceFolders sents the notification from the client to the server to inform the server about workspace folder configuration changes. +// +// The notification is sent by default if both ServerCapabilities/workspace/workspaceFolders and ClientCapabilities/workspace/workspaceFolders are true; +// or if the server has registered itself to receive this notification. +// To register for the workspace/didChangeWorkspaceFolders send a client/registerCapability request from the server to the client. +// +// The registration parameter must have a registrations item of the following form, where id is a unique id used to unregister the capability (the example uses a UUID). +func (s *server) DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) { + s.logger.Debug("call " + MethodWorkspaceDidChangeWorkspaceFolders) + defer s.logger.Debug("end "+MethodWorkspaceDidChangeWorkspaceFolders, slog.Any("error", err)) + + return s.Notify(ctx, MethodWorkspaceDidChangeWorkspaceFolders, params) +} + +// DidClose sends the notification from the client to the server when the document got closed in the client. +// +// The document’s truth now exists where the document’s Uri points to (e.g. if the document’s Uri is a file Uri the truth now exists on disk). +// As with the open notification the close notification is about managing the document’s content. +// Receiving a close notification doesn’t mean that the document was open in an editor before. +// +// A close notification requires a previous open notification to be sent. +// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. +func (s *server) DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) { + s.logger.Debug("call " + MethodTextDocumentDidClose) + defer s.logger.Debug("end "+MethodTextDocumentDidClose, slog.Any("error", err)) + + return s.Notify(ctx, MethodTextDocumentDidClose, params) +} + +// DidOpen sends the open notification from the client to the server to signal newly opened text documents. +// +// The document’s truth is now managed by the client and the server must not try to read the document’s truth using the document’s Uri. +// Open in this sense means it is managed by the client. It doesn’t necessarily mean that its content is presented in an editor. +// +// An open notification must not be sent more than once without a corresponding close notification send before. +// This means open and close notification must be balanced and the max open count for a particular textDocument is one. +// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. +func (s *server) DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) { + s.logger.Debug("call " + MethodTextDocumentDidOpen) + defer s.logger.Debug("end "+MethodTextDocumentDidOpen, slog.Any("error", err)) + + return s.Notify(ctx, MethodTextDocumentDidOpen, params) +} + +// DidSave sends the notification from the client to the server when the document was saved in the client. +func (s *server) DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) { + s.logger.Debug("call " + MethodTextDocumentDidSave) + defer s.logger.Debug("end "+MethodTextDocumentDidSave, slog.Any("error", err)) + + return s.Notify(ctx, MethodTextDocumentDidSave, params) +} + +// DocumentColor sends the request from the client to the server to list all color references found in a given text document. +// +// Along with the range, a color value in RGB is returned. +// +// Clients can use the result to decorate color references in an editor. +// For example: +// +// - Color boxes showing the actual color next to the reference +// - Show a color picker when a color reference is edited. +func (s *server) DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) { + s.logger.Debug("call " + MethodTextDocumentDocumentColor) + defer s.logger.Debug("end "+MethodTextDocumentDocumentColor, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDocumentColor, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DocumentHighlight sends the request is from the client to the server to resolve a document highlights for a given text document position. +// +// For programming languages this usually highlights all references to the symbol scoped to this file. +// However we kept ‘textDocument/documentHighlight’ and ‘textDocument/references’ separate requests since the first one is allowed to be more fuzzy. +// +// Symbol matches usually have a `DocumentHighlightKind` of `Read` or `Write` whereas fuzzy or textual matches use `Text` as the kind. +func (s *server) DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) { + s.logger.Debug("call " + MethodTextDocumentDocumentHighlight) + defer s.logger.Debug("end "+MethodTextDocumentDocumentHighlight, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDocumentHighlight, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DocumentLink sends the request from the client to the server to request the location of links in a document. +func (s *server) DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) { + s.logger.Debug("call " + MethodTextDocumentDocumentLink) + defer s.logger.Debug("end "+MethodTextDocumentDocumentLink, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDocumentLink, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DocumentLinkResolve sends the request from the client to the server to resolve the target of a given document link. +func (s *server) DocumentLinkResolve(ctx context.Context, params *DocumentLink) (_ *DocumentLink, err error) { + s.logger.Debug("call " + MethodDocumentLinkResolve) + defer s.logger.Debug("end "+MethodDocumentLinkResolve, slog.Any("error", err)) + + var result *DocumentLink + if err := Call(ctx, s.Conn, MethodDocumentLinkResolve, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DocumentSymbol sends the request from the client to the server to return a flat list of all symbols found in a given text document. +// +// Neither the symbol’s location range nor the symbol’s container name should be used to infer a hierarchy. +func (s *server) DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []SymbolInformationOrDocumentSymbol, err error) { + s.logger.Debug("call " + MethodTextDocumentDocumentSymbol) + defer s.logger.Debug("end "+MethodTextDocumentDocumentSymbol, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentDocumentSymbol, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// ExecuteCommand sends the request from the client to the server to trigger command execution on the server. +// +// In most cases the server creates a `WorkspaceEdit` structure and applies the changes to the workspace using the +// request `workspace/applyEdit` which is sent from the server to the client. +func (s *server) ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result any, err error) { + s.logger.Debug("call " + MethodWorkspaceExecuteCommand) + defer s.logger.Debug("end "+MethodWorkspaceExecuteCommand, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodWorkspaceExecuteCommand, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// FoldingRanges sends the request from the client to the server to return all folding ranges found in a given text document. +// +// @since version 3.10.0. +func (s *server) FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) { + s.logger.Debug("call " + MethodTextDocumentFoldingRange) + defer s.logger.Debug("end "+MethodTextDocumentFoldingRange, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentFoldingRange, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Formatting sends the request from the client to the server to format a whole document. +func (s *server) Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) { + s.logger.Debug("call " + MethodTextDocumentFormatting) + defer s.logger.Debug("end "+MethodTextDocumentFormatting, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentFormatting, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Hover sends the request is from the client to the server to request hover information at a given text document position. +func (s *server) Hover(ctx context.Context, params *HoverParams) (_ *Hover, err error) { + s.logger.Debug("call " + MethodTextDocumentHover) + defer s.logger.Debug("end "+MethodTextDocumentHover, slog.Any("error", err)) + + var result *Hover + if err := Call(ctx, s.Conn, MethodTextDocumentHover, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Implementation sends the request from the client to the server to resolve the implementation location of a symbol at a given text document position. +// +// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.implementation.typeDefinition.linkSupport`. +func (s *server) Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) { + s.logger.Debug("call " + MethodTextDocumentImplementation) + defer s.logger.Debug("end "+MethodTextDocumentImplementation, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentImplementation, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// OnTypeFormatting sends the request from the client to the server to format parts of the document during typing. +func (s *server) OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) { + s.logger.Debug("call " + MethodTextDocumentOnTypeFormatting) + defer s.logger.Debug("end "+MethodTextDocumentOnTypeFormatting, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentOnTypeFormatting, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// PrepareRename sends the request from the client to the server to setup and test the validity of a rename operation at a given location. +// +// @since version 3.12.0. +func (s *server) PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) { + s.logger.Debug("call " + MethodTextDocumentPrepareRename) + defer s.logger.Debug("end "+MethodTextDocumentPrepareRename, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentPrepareRename, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// RangeFormatting sends the request from the client to the server to format a given range in a document. +func (s *server) RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) { + s.logger.Debug("call " + MethodTextDocumentRangeFormatting) + defer s.logger.Debug("end "+MethodTextDocumentRangeFormatting, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentRangeFormatting, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// References sends the request from the client to the server to resolve project-wide references for the symbol denoted by the given text document position. +func (s *server) References(ctx context.Context, params *ReferenceParams) (result []Location, err error) { + s.logger.Debug("call " + MethodTextDocumentReferences) + defer s.logger.Debug("end "+MethodTextDocumentReferences, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentReferences, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Rename sends the request from the client to the server to perform a workspace-wide rename of a symbol. +func (s *server) Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) { + s.logger.Debug("call " + MethodTextDocumentRename) + defer s.logger.Debug("end "+MethodTextDocumentRename, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentRename, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// SignatureHelp sends the request from the client to the server to request signature information at a given cursor position. +func (s *server) SignatureHelp(ctx context.Context, params *SignatureHelpParams) (_ *SignatureHelp, err error) { + s.logger.Debug("call " + MethodTextDocumentSignatureHelp) + defer s.logger.Debug("end "+MethodTextDocumentSignatureHelp, slog.Any("error", err)) + + var result *SignatureHelp + if err := Call(ctx, s.Conn, MethodTextDocumentSignatureHelp, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Symbols sends the request from the client to the server to list project-wide symbols matching the query string. +func (s *server) Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) { + s.logger.Debug("call " + MethodWorkspaceSymbol) + defer s.logger.Debug("end "+MethodWorkspaceSymbol, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodWorkspaceSymbol, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// TypeDefinition sends the request from the client to the server to resolve the type definition location of a symbol at a given text document position. +// +// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.typeDefinition.linkSupport`. +// +// @since version 3.6.0. +func (s *server) TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) { + s.logger.Debug("call " + MethodTextDocumentTypeDefinition) + defer s.logger.Debug("end "+MethodTextDocumentTypeDefinition, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentTypeDefinition, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// WillSave sends the notification from the client to the server before the document is actually saved. +func (s *server) WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) { + s.logger.Debug("call " + MethodTextDocumentWillSave) + defer s.logger.Debug("end "+MethodTextDocumentWillSave, slog.Any("error", err)) + + return s.Notify(ctx, MethodTextDocumentWillSave, params) +} + +// WillSaveWaitUntil sends the request from the client to the server before the document is actually saved. +// +// The request can return an array of TextEdits which will be applied to the text document before it is saved. +// Please note that clients might drop results if computing the text edits took too long or if a server constantly fails on this request. +// This is done to keep the save fast and reliable. +func (s *server) WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) { + s.logger.Debug("call " + MethodTextDocumentWillSaveWaitUntil) + defer s.logger.Debug("end "+MethodTextDocumentWillSaveWaitUntil, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentWillSaveWaitUntil, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// ShowDocument sends the request from a server to a client to ask the client to display a particular document in the user interface. +// +// @since 3.16.0. +func (s *server) ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) { + s.logger.Debug("call " + MethodShowDocument) + defer s.logger.Debug("end "+MethodShowDocument, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodShowDocument, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// WillCreateFiles sends the will create files request is sent from the client to the server before files are actually created as long as the creation is triggered from within the client. +// +// The request can return a WorkspaceEdit which will be applied to workspace before the files are created. +// +// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep creates fast and reliable. +// +// @since 3.16.0. +func (s *server) WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) { + s.logger.Debug("call " + MethodWillCreateFiles) + defer s.logger.Debug("end "+MethodWillCreateFiles, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodWillCreateFiles, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DidCreateFiles sends the did create files notification is sent from the client to the server when files were created from within the client. +// +// @since 3.16.0. +func (s *server) DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) { + s.logger.Debug("call " + MethodDidCreateFiles) + defer s.logger.Debug("end "+MethodDidCreateFiles, slog.Any("error", err)) + + return s.Notify(ctx, MethodDidCreateFiles, params) +} + +// WillRenameFiles sends the will rename files request is sent from the client to the server before files are actually renamed as long as the rename is triggered from within the client. +// +// The request can return a WorkspaceEdit which will be applied to workspace before the files are renamed. +// +// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep renames fast and reliable. +// +// @since 3.16.0. +func (s *server) WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) { + s.logger.Debug("call " + MethodWillRenameFiles) + defer s.logger.Debug("end "+MethodWillRenameFiles, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodWillRenameFiles, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DidRenameFiles sends the did rename files notification is sent from the client to the server when files were renamed from within the client. +// +// @since 3.16.0. +func (s *server) DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) { + s.logger.Debug("call " + MethodDidRenameFiles) + defer s.logger.Debug("end "+MethodDidRenameFiles, slog.Any("error", err)) + + return s.Notify(ctx, MethodDidRenameFiles, params) +} + +// WillDeleteFiles sends the will delete files request is sent from the client to the server before files are actually deleted as long as the deletion is triggered from within the client. +// +// The request can return a WorkspaceEdit which will be applied to workspace before the files are deleted. +// +// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep deletes fast and reliable. +// +// @since 3.16.0. +func (s *server) WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) { + s.logger.Debug("call " + MethodWillDeleteFiles) + defer s.logger.Debug("end "+MethodWillDeleteFiles, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodWillDeleteFiles, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// DidDeleteFiles sends the did delete files notification is sent from the client to the server when files were deleted from within the client. +// +// @since 3.16.0. +func (s *server) DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) { + s.logger.Debug("call " + MethodDidDeleteFiles) + defer s.logger.Debug("end "+MethodDidDeleteFiles, slog.Any("error", err)) + + return s.Notify(ctx, MethodDidDeleteFiles, params) +} + +// CodeLensRefresh sent from the server to the client. +// +// Servers can use it to ask clients to refresh the code lenses currently shown in editors. +// As a result the client should ask the server to recompute the code lenses for these editors. +// This is useful if a server detects a configuration change which requires a re-calculation of all code lenses. +// +// Note that the client still has the freedom to delay the re-calculation of the code lenses if for example an editor is currently not visible. +// +// @since 3.16.0. +func (s *server) CodeLensRefresh(ctx context.Context) (err error) { + s.logger.Debug("call " + MethodCodeLensRefresh) + defer s.logger.Debug("end "+MethodCodeLensRefresh, slog.Any("error", err)) + + return Call(ctx, s.Conn, MethodCodeLensRefresh, nil, nil) +} + +// PrepareCallHierarchy sent from the client to the server to return a call hierarchy for the language element of given text document positions. +// +// The call hierarchy requests are executed in two steps: +// 1. first a call hierarchy item is resolved for the given text document position +// 2. for a call hierarchy item the incoming or outgoing call hierarchy items are resolved. +// +// @since 3.16.0. +func (s *server) PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) { + s.logger.Debug("call " + MethodTextDocumentPrepareCallHierarchy) + defer s.logger.Debug("end "+MethodTextDocumentPrepareCallHierarchy, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodTextDocumentPrepareCallHierarchy, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// IncomingCalls is the request is sent from the client to the server to resolve incoming calls for a given call hierarchy item. +// +// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. +// +// @since 3.16.0. +func (s *server) IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) { + s.logger.Debug("call " + MethodCallHierarchyIncomingCalls) + defer s.logger.Debug("end "+MethodCallHierarchyIncomingCalls, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodCallHierarchyIncomingCalls, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// OutgoingCalls is the request is sent from the client to the server to resolve outgoing calls for a given call hierarchy item. +// +// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. +// +// @since 3.16.0. +func (s *server) OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) { + s.logger.Debug("call " + MethodCallHierarchyOutgoingCalls) + defer s.logger.Debug("end "+MethodCallHierarchyOutgoingCalls, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodCallHierarchyOutgoingCalls, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// SemanticTokensFull is the request is sent from the client to the server to resolve semantic tokens for a given file. +// +// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. +// +// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. +// +// @since 3.16.0. +func (s *server) SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) { + s.logger.Debug("call " + MethodSemanticTokensFull) + defer s.logger.Debug("end "+MethodSemanticTokensFull, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodSemanticTokensFull, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// SemanticTokensFullDelta is the request is sent from the client to the server to resolve semantic token delta for a given file. +// +// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. +// +// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. +// +// @since 3.16.0. +func (s *server) SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result any, err error) { + s.logger.Debug("call " + MethodSemanticTokensFullDelta) + defer s.logger.Debug("end "+MethodSemanticTokensFullDelta, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodSemanticTokensFullDelta, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// SemanticTokensRange is the request is sent from the client to the server to resolve semantic token delta for a given file. +// +// When a user opens a file it can be beneficial to only compute the semantic tokens for the visible range (faster rendering of the tokens in the user interface). +// If a server can compute these tokens faster than for the whole file it can provide a handler for the "textDocument/semanticTokens/range" request to handle this case special. +// +// Please note that if a client also announces that it will send the "textDocument/semanticTokens/range" server should implement this request as well to allow for flicker free scrolling and semantic coloring of a minimap. +// +// @since 3.16.0. +func (s *server) SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) { + s.logger.Debug("call " + MethodSemanticTokensRange) + defer s.logger.Debug("end "+MethodSemanticTokensRange, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodSemanticTokensRange, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// SemanticTokensRefresh is sent from the server to the client. Servers can use it to ask clients to refresh the editors for which this server provides semantic tokens. +// +// As a result the client should ask the server to recompute the semantic tokens for these editors. +// This is useful if a server detects a project wide configuration change which requires a re-calculation of all semantic tokens. +// +// Note that the client still has the freedom to delay the re-calculation of the semantic tokens if for example an editor is currently not visible. +// +// @since 3.16.0. +func (s *server) SemanticTokensRefresh(ctx context.Context) (err error) { + s.logger.Debug("call " + MethodSemanticTokensRefresh) + defer s.logger.Debug("end "+MethodSemanticTokensRefresh, slog.Any("error", err)) + + return Call(ctx, s.Conn, MethodSemanticTokensRefresh, nil, nil) +} + +// LinkedEditingRange is the linked editing request is sent from the client to the server to return for a given position in a document the range of the symbol at the position and all ranges that have the same content. +// +// Optionally a word pattern can be returned to describe valid contents. +// +// A rename to one of the ranges can be applied to all other ranges if the new content is valid. If no result-specific word pattern is provided, the word pattern from the client’s language configuration is used. +// +// @since 3.16.0. +func (s *server) LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) { + s.logger.Debug("call " + MethodLinkedEditingRange) + defer s.logger.Debug("end "+MethodLinkedEditingRange, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodLinkedEditingRange, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Moniker is the request is sent from the client to the server to get the symbol monikers for a given text document position. +// +// An array of Moniker types is returned as response to indicate possible monikers at the given location. +// +// If no monikers can be calculated, an empty array or null should be returned. +// +// @since 3.16.0. +func (s *server) Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) { + s.logger.Debug("call " + MethodMoniker) + defer s.logger.Debug("end "+MethodMoniker, slog.Any("error", err)) + + if err := Call(ctx, s.Conn, MethodMoniker, params, &result); err != nil { + return nil, err + } + + return result, nil +} + +// Request sends a request from the client to the server that non-compliant with the Language Server Protocol specifications. +func (s *server) Request(ctx context.Context, method string, params any) (any, error) { + s.logger.Debug("call " + method) + defer s.logger.Debug("end " + method) + + var result any + if err := Call(ctx, s.Conn, method, params, &result); err != nil { + return nil, err + } + + return result, nil +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/text.go b/vendor/github.com/a-h/templ/lsp/protocol/text.go new file mode 100644 index 0000000..a67d5c2 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/text.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "strconv" +) + +// DidOpenTextDocumentParams params of DidOpenTextDocument notification. +type DidOpenTextDocumentParams struct { + // TextDocument is the document that was opened. + TextDocument TextDocumentItem `json:"textDocument"` +} + +// DidChangeTextDocumentParams params of DidChangeTextDocument notification. +type DidChangeTextDocumentParams struct { + // TextDocument is the document that did change. The version number points + // to the version after all provided content changes have + // been applied. + TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` + + // ContentChanges is the actual content changes. The content changes describe single state changes + // to the document. So if there are two content changes c1 and c2 for a document + // in state S then c1 move the document to S' and c2 to S''. + ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"` // []TextDocumentContentChangeEvent | text +} + +// TextDocumentSaveReason represents reasons why a text document is saved. +type TextDocumentSaveReason float64 + +const ( + // TextDocumentSaveReasonManual is the manually triggered, e.g. by the user pressing save, by starting debugging, + // or by an API call. + TextDocumentSaveReasonManual TextDocumentSaveReason = 1 + + // TextDocumentSaveReasonAfterDelay is the automatic after a delay. + TextDocumentSaveReasonAfterDelay TextDocumentSaveReason = 2 + + // TextDocumentSaveReasonFocusOut when the editor lost focus. + TextDocumentSaveReasonFocusOut TextDocumentSaveReason = 3 +) + +// String implements fmt.Stringer. +func (t TextDocumentSaveReason) String() string { + switch t { + case TextDocumentSaveReasonManual: + return "Manual" + case TextDocumentSaveReasonAfterDelay: + return "AfterDelay" + case TextDocumentSaveReasonFocusOut: + return "FocusOut" + default: + return strconv.FormatFloat(float64(t), 'f', -10, 64) + } +} + +// TextDocumentChangeRegistrationOptions describe options to be used when registering for text document change events. +type TextDocumentChangeRegistrationOptions struct { + TextDocumentRegistrationOptions + + // SyncKind how documents are synced to the server. See TextDocumentSyncKind.Full + // and TextDocumentSyncKind.Incremental. + SyncKind TextDocumentSyncKind `json:"syncKind"` +} + +// WillSaveTextDocumentParams is the parameters send in a will save text document notification. +type WillSaveTextDocumentParams struct { + // TextDocument is the document that will be saved. + TextDocument TextDocumentIdentifier `json:"textDocument"` + + // Reason is the 'TextDocumentSaveReason'. + Reason TextDocumentSaveReason `json:"reason,omitempty"` +} + +// DidSaveTextDocumentParams params of DidSaveTextDocument notification. +type DidSaveTextDocumentParams struct { + // Text optional the content when saved. Depends on the includeText value + // when the save notification was requested. + Text string `json:"text,omitempty"` + + // TextDocument is the document that was saved. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} + +// TextDocumentContentChangeEvent an event describing a change to a text document. If range and rangeLength are omitted +// the new text is considered to be the full content of the document. +type TextDocumentContentChangeEvent struct { + // Range is the range of the document that changed. + Range *Range `json:"range,omitempty"` + + // RangeLength is the length of the range that got replaced. + RangeLength uint32 `json:"rangeLength,omitempty"` + + // Text is the new text of the document. + Text string `json:"text"` +} + +// TextDocumentSaveRegistrationOptions TextDocumentSave Registration options. +type TextDocumentSaveRegistrationOptions struct { + TextDocumentRegistrationOptions + + // IncludeText is the client is supposed to include the content on save. + IncludeText bool `json:"includeText,omitempty"` +} + +// DidCloseTextDocumentParams params of DidCloseTextDocument notification. +type DidCloseTextDocumentParams struct { + // TextDocument the document that was closed. + TextDocument TextDocumentIdentifier `json:"textDocument"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/util.go b/vendor/github.com/a-h/templ/lsp/protocol/util.go new file mode 100644 index 0000000..4dc29c4 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/util.go @@ -0,0 +1,9 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// NewVersion returns the int32 pointer converted i. +func NewVersion(i int32) *int32 { + return &i +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/version.go b/vendor/github.com/a-h/templ/lsp/protocol/version.go new file mode 100644 index 0000000..79a27f3 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/version.go @@ -0,0 +1,7 @@ +// SPDX-FileCopyrightText: 2018 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +// Version is the version of the language-server-protocol specification being implemented. +const Version = "3.15.3" diff --git a/vendor/github.com/a-h/templ/lsp/protocol/window.go b/vendor/github.com/a-h/templ/lsp/protocol/window.go new file mode 100644 index 0000000..b6af6f4 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/window.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import "strconv" + +// ShowMessageParams params of ShowMessage notification. +type ShowMessageParams struct { + // Message is the actual message. + Message string `json:"message"` + + // Type is the message type. + Type MessageType `json:"type"` +} + +// MessageType type of ShowMessageParams type. +type MessageType float64 + +const ( + // MessageTypeError an error message. + MessageTypeError MessageType = 1 + // MessageTypeWarning a warning message. + MessageTypeWarning MessageType = 2 + // MessageTypeInfo an information message. + MessageTypeInfo MessageType = 3 + // MessageTypeLog a log message. + MessageTypeLog MessageType = 4 +) + +// String implements fmt.Stringer. +func (m MessageType) String() string { + switch m { + case MessageTypeError: + return "error" + case MessageTypeWarning: + return "warning" + case MessageTypeInfo: + return "info" + case MessageTypeLog: + return "log" + default: + return strconv.FormatFloat(float64(m), 'f', -10, 64) + } +} + +// Enabled reports whether the level is enabled. +func (m MessageType) Enabled(level MessageType) bool { + return level > 0 && m >= level +} + +// messageTypeMap map of MessageTypes. +var messageTypeMap = map[string]MessageType{ + "error": MessageTypeError, + "warning": MessageTypeWarning, + "info": MessageTypeInfo, + "log": MessageTypeLog, +} + +// ToMessageType converts level to the MessageType. +func ToMessageType(level string) MessageType { + mt, ok := messageTypeMap[level] + if !ok { + return MessageType(0) // unknown + } + + return mt +} + +// ShowMessageRequestParams params of ShowMessage request. +type ShowMessageRequestParams struct { + // Actions is the message action items to present. + Actions []MessageActionItem `json:"actions"` + + // Message is the actual message + Message string `json:"message"` + + // Type is the message type. See {@link MessageType} + Type MessageType `json:"type"` +} + +// MessageActionItem item of ShowMessageRequestParams action. +type MessageActionItem struct { + // Title a short title like 'Retry', 'Open Log' etc. + Title string `json:"title"` +} + +// LogMessageParams params of LogMessage notification. +type LogMessageParams struct { + // Message is the actual message + Message string `json:"message"` + + // Type is the message type. See {@link MessageType} + Type MessageType `json:"type"` +} + +// WorkDoneProgressCreateParams params of WorkDoneProgressCreate request. +// +// @since 3.15.0. +type WorkDoneProgressCreateParams struct { + // Token is the token to be used to report progress. + Token ProgressToken `json:"token"` +} + +// WorkDoneProgressCreateParams params of WorkDoneProgressCancel request. +// +// @since 3.15.0. +type WorkDoneProgressCancelParams struct { + // Token is the token to be used to report progress. + Token ProgressToken `json:"token"` +} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/workspace.go b/vendor/github.com/a-h/templ/lsp/protocol/workspace.go new file mode 100644 index 0000000..4838918 --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/protocol/workspace.go @@ -0,0 +1,213 @@ +// SPDX-FileCopyrightText: 2019 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +package protocol + +import ( + "strconv" + + "github.com/a-h/templ/lsp/uri" +) + +// WorkspaceFolder response of Workspace folders request. +type WorkspaceFolder struct { + // URI is the associated URI for this workspace folder. + URI string `json:"uri"` + + // Name is the name of the workspace folder. Used to refer to this + // workspace folder in the user interface. + Name string `json:"name"` +} + +// DidChangeWorkspaceFoldersParams params of DidChangeWorkspaceFolders notification. +type DidChangeWorkspaceFoldersParams struct { + // Event is the actual workspace folder change event. + Event WorkspaceFoldersChangeEvent `json:"event"` +} + +// WorkspaceFoldersChangeEvent is the workspace folder change event. +type WorkspaceFoldersChangeEvent struct { + // Added is the array of added workspace folders + Added []WorkspaceFolder `json:"added"` + + // Removed is the array of the removed workspace folders + Removed []WorkspaceFolder `json:"removed"` +} + +// DidChangeConfigurationParams params of DidChangeConfiguration notification. +type DidChangeConfigurationParams struct { + // Settings is the actual changed settings + Settings any `json:"settings,omitempty"` +} + +// ConfigurationParams params of Configuration request. +type ConfigurationParams struct { + Items []ConfigurationItem `json:"items"` +} + +// ConfigurationItem a ConfigurationItem consists of the configuration section to ask for and an additional scope URI. +// The configuration section ask for is defined by the server and doesn’t necessarily need to correspond to the configuration store used be the client. +// So a server might ask for a configuration cpp.formatterOptions but the client stores the configuration in a XML store layout differently. +// It is up to the client to do the necessary conversion. If a scope URI is provided the client should return the setting scoped to the provided resource. +// If the client for example uses EditorConfig to manage its settings the configuration should be returned for the passed resource URI. If the client can’t provide a configuration setting for a given scope then null need to be present in the returned array. +type ConfigurationItem struct { + // ScopeURI is the scope to get the configuration section for. + ScopeURI uri.URI `json:"scopeUri,omitempty"` + + // Section is the configuration section asked for. + Section string `json:"section,omitempty"` +} + +// DidChangeWatchedFilesParams params of DidChangeWatchedFiles notification. +type DidChangeWatchedFilesParams struct { + // Changes is the actual file events. + Changes []*FileEvent `json:"changes,omitempty"` +} + +// FileEvent an event describing a file change. +type FileEvent struct { + // Type is the change type. + Type FileChangeType `json:"type"` + + // URI is the file's URI. + URI uri.URI `json:"uri"` +} + +// FileChangeType is the file event type. +type FileChangeType float64 + +const ( + // FileChangeTypeCreated is the file got created. + FileChangeTypeCreated FileChangeType = 1 + // FileChangeTypeChanged is the file got changed. + FileChangeTypeChanged FileChangeType = 2 + // FileChangeTypeDeleted is the file got deleted. + FileChangeTypeDeleted FileChangeType = 3 +) + +// String implements fmt.Stringer. +func (t FileChangeType) String() string { + switch t { + case FileChangeTypeCreated: + return "Created" + case FileChangeTypeChanged: + return "Changed" + case FileChangeTypeDeleted: + return "Deleted" + default: + return strconv.FormatFloat(float64(t), 'f', -10, 64) + } +} + +// DidChangeWatchedFilesRegistrationOptions describe options to be used when registering for file system change events. +type DidChangeWatchedFilesRegistrationOptions struct { + // Watchers is the watchers to register. + Watchers []FileSystemWatcher `json:"watchers"` +} + +// FileSystemWatcher watchers of DidChangeWatchedFiles Registration options. +type FileSystemWatcher struct { + // GlobPattern is the glob pattern to watch. + // + // Glob patterns can have the following syntax: + // - `*` to match one or more characters in a path segment + // - `?` to match on one character in a path segment + // - `**` to match any number of path segments, including none + // - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) + // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) + // - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) + GlobPattern string `json:"globPattern"` + + // Kind is the kind of events of interest. If omitted it defaults + // to WatchKind.Create | WatchKind.Change | WatchKind.Delete + // which is 7. + Kind WatchKind `json:"kind,omitempty"` +} + +// WatchKind kind of FileSystemWatcher kind. +type WatchKind float64 + +const ( + // WatchKindCreate interested in create events. + WatchKindCreate WatchKind = 1 + + // WatchKindChange interested in change events. + WatchKindChange WatchKind = 2 + + // WatchKindDelete interested in delete events. + WatchKindDelete WatchKind = 4 +) + +// String implements fmt.Stringer. +func (k WatchKind) String() string { + switch k { + case WatchKindCreate: + return "Create" + case WatchKindChange: + return "Change" + case WatchKindDelete: + return "Delete" + default: + return strconv.FormatFloat(float64(k), 'f', -10, 64) + } +} + +// WorkspaceSymbolParams is the parameters of a Workspace Symbol request. +type WorkspaceSymbolParams struct { + WorkDoneProgressParams + PartialResultParams + + // Query a query string to filter symbols by. + // + // Clients may send an empty string here to request all symbols. + Query string `json:"query"` +} + +// ExecuteCommandParams params of Execute a command. +type ExecuteCommandParams struct { + WorkDoneProgressParams + + // Command is the identifier of the actual command handler. + Command string `json:"command"` + + // Arguments that the command should be invoked with. + Arguments []any `json:"arguments,omitempty"` +} + +// ExecuteCommandRegistrationOptions execute command registration options. +type ExecuteCommandRegistrationOptions struct { + // Commands is the commands to be executed on the server + Commands []string `json:"commands"` +} + +// ApplyWorkspaceEditParams params of Applies a WorkspaceEdit. +type ApplyWorkspaceEditParams struct { + // Label an optional label of the workspace edit. This label is + // presented in the user interface for example on an undo + // stack to undo the workspace edit. + Label string `json:"label,omitempty"` + + // Edit is the edits to apply. + Edit WorkspaceEdit `json:"edit"` +} + +// ApplyWorkspaceEditResponse response of Applies a WorkspaceEdit. +type ApplyWorkspaceEditResponse struct { + // Applied indicates whether the edit was applied or not. + Applied bool `json:"applied"` + + // FailureReason an optional textual description for why the edit was not applied. + // This may be used by the server for diagnostic logging or to provide + // a suitable error for a request that triggered the edit. + // + // @since 3.16.0. + FailureReason string `json:"failureReason,omitempty"` + + // FailedChange depending on the client's failure handling strategy "failedChange" + // might contain the index of the change that failed. This property is + // only available if the client signals a "failureHandlingStrategy" + // in its client capabilities. + // + // @since 3.16.0. + FailedChange uint32 `json:"failedChange,omitempty"` +} diff --git a/vendor/github.com/a-h/templ/lsp/uri/uri.go b/vendor/github.com/a-h/templ/lsp/uri/uri.go new file mode 100644 index 0000000..454dd6e --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/uri/uri.go @@ -0,0 +1,192 @@ +// Copyright 2019 The Go Language Server 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 uri + +import ( + "errors" + "fmt" + "net/url" + "path/filepath" + "runtime" + "strings" + "unicode" +) + +const ( + // FileScheme schema of filesystem path. + FileScheme = "file" + + // HTTPScheme schema of http. + HTTPScheme = "http" + + // HTTPSScheme schema of https. + HTTPSScheme = "https" +) + +const ( + hierPart = "://" +) + +// URI Uniform Resource Identifier (URI) https://tools.ietf.org/html/rfc3986. +// +// This class is a simple parser which creates the basic component parts +// (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation +// and encoding. +// +// foo://example.com:8042/over/there?name=ferret#nose +// \_/ \______________/\_________/ \_________/ \__/ +// | | | | | +// scheme authority path query fragment +// | _____________________|__ +// / \ / \ +// urn:example:animal:ferret:nose +type URI string + +// Filename returns the file path for the given URI. +// It is an error to call this on a URI that is not a valid filename. +func (u URI) Filename() string { + filename, err := filename(u) + if err != nil { + panic(err) + } + + return filepath.FromSlash(filename) +} + +func filename(uri URI) (string, error) { + u, err := url.ParseRequestURI(string(uri)) + if err != nil { + return "", fmt.Errorf("failed to parse request URI: %w", err) + } + + if u.Scheme != FileScheme { + return "", fmt.Errorf("only file URIs are supported, got %v", u.Scheme) + } + + if isWindowsDriveURI(u.Path) { + u.Path = u.Path[1:] + } + + return u.Path, nil +} + +// New parses and creates a new URI from s. +func New(s string) URI { + if u, err := url.PathUnescape(s); err == nil { + s = u + } + + if strings.HasPrefix(s, FileScheme+hierPart) { + return URI(s) + } + + return File(s) +} + +// File parses and creates a new filesystem URI from path. +func File(path string) URI { + const goRootPragma = "$GOROOT" + if len(path) >= len(goRootPragma) && strings.EqualFold(goRootPragma, path[:len(goRootPragma)]) { + path = runtime.GOROOT() + path[len(goRootPragma):] + } + + if !isWindowsDrivePath(path) { + if abs, err := filepath.Abs(path); err == nil { + path = abs + } + } + + if isWindowsDrivePath(path) { + path = "/" + path + } + + path = filepath.ToSlash(path) + u := url.URL{ + Scheme: FileScheme, + Path: path, + } + + return URI(u.String()) +} + +// Parse parses and creates a new URI from s. +func Parse(s string) (u URI, err error) { + us, err := url.Parse(s) + if err != nil { + return u, fmt.Errorf("url.Parse: %w", err) + } + + switch us.Scheme { + case FileScheme: + ut := url.URL{ + Scheme: FileScheme, + Path: us.Path, + RawPath: filepath.FromSlash(us.Path), + } + u = URI(ut.String()) + + case HTTPScheme, HTTPSScheme: + ut := url.URL{ + Scheme: us.Scheme, + Host: us.Host, + Path: us.Path, + RawQuery: us.Query().Encode(), + Fragment: us.Fragment, + } + u = URI(ut.String()) + + default: + return u, errors.New("unknown scheme") + } + + return +} + +// From returns the new URI from args. +func From(scheme, authority, path, query, fragment string) URI { + switch scheme { + case FileScheme: + u := url.URL{ + Scheme: FileScheme, + Path: path, + RawPath: filepath.FromSlash(path), + } + return URI(u.String()) + + case HTTPScheme, HTTPSScheme: + u := url.URL{ + Scheme: scheme, + Host: authority, + Path: path, + RawQuery: url.QueryEscape(query), + Fragment: fragment, + } + return URI(u.String()) + + default: + panic(fmt.Sprintf("unknown scheme: %s", scheme)) + } +} + +// isWindowsDrivePath returns true if the file path is of the form used by Windows. +// +// We check if the path begins with a drive letter, followed by a ":". +func isWindowsDrivePath(path string) bool { + if len(path) < 4 { + return false + } + return unicode.IsLetter(rune(path[0])) && path[1] == ':' +} + +// isWindowsDriveURI returns true if the file URI is of the format used by +// Windows URIs. The url.Parse package does not specially handle Windows paths +// (see https://golang.org/issue/6027). We check if the URI path has +// a drive prefix (e.g. "/C:"). If so, we trim the leading "/". +func isWindowsDriveURI(uri string) bool { + if len(uri) < 4 { + return false + } + return uri[0] == '/' && unicode.IsLetter(rune(uri[1])) && uri[2] == ':' +} diff --git a/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go b/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go new file mode 100644 index 0000000..df35beb --- /dev/null +++ b/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go @@ -0,0 +1,22 @@ +// Copyright 2020 The Go Language Server Authors +// SPDX-License-Identifier: BSD-3-Clause + +// Package xcontext is a package to offer the extra functionality we need +// from contexts that is not available from the standard context package. +package xcontext + +import ( + "context" + "time" +) + +// Detach returns a context that keeps all the values of its parent context +// but detaches from the cancellation and error handling. +func Detach(ctx context.Context) context.Context { return detachedContext{ctx} } + +type detachedContext struct{ parent context.Context } + +func (v detachedContext) Deadline() (time.Time, bool) { return time.Time{}, false } +func (v detachedContext) Done() <-chan struct{} { return nil } +func (v detachedContext) Err() error { return nil } +func (v detachedContext) Value(key any) any { return v.parent.Value(key) } diff --git a/vendor/github.com/a-h/templ/once.go b/vendor/github.com/a-h/templ/once.go new file mode 100644 index 0000000..7860ab8 --- /dev/null +++ b/vendor/github.com/a-h/templ/once.go @@ -0,0 +1,64 @@ +package templ + +import ( + "context" + "io" + "sync/atomic" +) + +// onceHandleIndex is used to identify unique once handles in a program run. +var onceHandleIndex int64 + +type OnceOpt func(*OnceHandle) + +// WithOnceComponent sets the component to be rendered once per context. +// This can be used instead of setting the children of the `Once` method, +// for example, if creating a code component outside of a templ HTML template. +func WithComponent(c Component) OnceOpt { + return func(o *OnceHandle) { + o.c = c + } +} + +// NewOnceHandle creates a OnceHandle used to ensure that the children of its +// `Once` method are only rendered once per context. +func NewOnceHandle(opts ...OnceOpt) *OnceHandle { + oh := &OnceHandle{ + id: atomic.AddInt64(&onceHandleIndex, 1), + } + for _, opt := range opts { + opt(oh) + } + return oh +} + +// OnceHandle is used to ensure that the children of its `Once` method are are only +// rendered once per context. +type OnceHandle struct { + // id is used to identify which instance of the OnceHandle is being used. + // The OnceHandle can't be an empty struct, because: + // + // | Two distinct zero-size variables may + // | have the same address in memory + // + // https://go.dev/ref/spec#Size_and_alignment_guarantees + id int64 + // c is the component to be rendered once per context. + // if c is nil, the children of the `Once` method are rendered. + c Component +} + +// Once returns a component that renders its children once per context. +func (o *OnceHandle) Once() Component { + return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + _, v := getContext(ctx) + if v.getHasBeenRendered(o) { + return nil + } + v.setHasBeenRendered(o) + if o.c != nil { + return o.c.Render(ctx, w) + } + return GetChildren(ctx).Render(ctx, w) + }) +} diff --git a/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go b/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go new file mode 100644 index 0000000..9000306 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go @@ -0,0 +1,37 @@ +package parser + +import ( + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +var callTemplateExpression callTemplateExpressionParser + +var callTemplateExpressionStart = parse.Or(parse.String("{! "), parse.String("{!")) + +type callTemplateExpressionParser struct{} + +func (p callTemplateExpressionParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + start := pi.Position() + + // Check the prefix first. + if _, ok, err = callTemplateExpressionStart.Parse(pi); err != nil || !ok { + return + } + + // Once we have a prefix, we must have an expression that returns a template. + r := &CallTemplateExpression{} + if r.Expression, err = parseGo("call template expression", pi, goexpression.Expression); err != nil { + return + } + + // Eat the final brace. + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("call template expression: missing closing brace", pi.Position()) + return + } + + r.Range = NewRange(start, pi.Position()) + + return r, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/childrenparser.go b/vendor/github.com/a-h/templ/parser/v2/childrenparser.go new file mode 100644 index 0000000..a829c4a --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/childrenparser.go @@ -0,0 +1,21 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +var childrenExpressionParser = parse.StringFrom( + openBraceWithOptionalPadding, + parse.OptionalWhitespace, + parse.String("children..."), + parse.OptionalWhitespace, + closeBraceWithOptionalPadding, +) + +var childrenExpression = parse.Func(func(in *parse.Input) (n Node, ok bool, err error) { + _, ok, err = childrenExpressionParser.Parse(in) + if err != nil || !ok { + return + } + return &ChildrenExpression{}, true, nil +}) diff --git a/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go b/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go new file mode 100644 index 0000000..e686a15 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go @@ -0,0 +1,101 @@ +package parser + +import ( + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +var conditionalAttribute parse.Parser[*ConditionalAttribute] = conditionalAttributeParser{} + +type conditionalAttributeParser struct{} + +func (conditionalAttributeParser) Parse(pi *parse.Input) (r *ConditionalAttribute, ok bool, err error) { + start := pi.Index() + + // Strip leading whitespace and look for `if `. + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + return + } + if !peekPrefix(pi, "if ") { + pi.Seek(start) + return + } + + // Parse the Go if expression. + r = &ConditionalAttribute{} + if r.Expression, err = parseGo("if attribute", pi, goexpression.If); err != nil { + return + } + + // Eat " {\n". + if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("attribute if: unterminated (missing closing '{\n')", pi.PositionAt(start)) + return + } + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + return + } + + // Read the 'Then' attributes. + // If there's no match, there's a problem reading the attributes. + if r.Then, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { + err = parse.Error("attribute if: expected attributes in block, but none were found", pi.Position()) + return + } + + if len(r.Then) == 0 { + err = parse.Error("attribute if: invalid content or no attributes were found in the if block", pi.Position()) + return + } + + // Read the optional 'Else' Nodes. + if r.Else, ok, err = attributeElseExpression.Parse(pi); err != nil { + return + } + if ok && len(r.Else) == 0 { + err = parse.Error("attribute if: invalid content or no attributes were found in the else block", pi.Position()) + return + } + + // Clear any optional whitespace. + _, _, _ = parse.OptionalWhitespace.Parse(pi) + + // Read the required closing brace. + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("attribute if: missing end (expected '}')", pi.Position()) + return + } + + return r, true, nil +} + +var attributeElseExpression parse.Parser[[]Attribute] = attributeElseExpressionParser{} + +type attributeElseExpressionParser struct{} + +func (attributeElseExpressionParser) Parse(in *parse.Input) (r []Attribute, ok bool, err error) { + start := in.Index() + + // Strip any initial whitespace. + _, _, _ = parse.OptionalWhitespace.Parse(in) + + // } else { + var endElseParser = parse.All( + parse.Rune('}'), + parse.OptionalWhitespace, + parse.String("else"), + parse.OptionalWhitespace, + parse.Rune('{')) + if _, ok, err = endElseParser.Parse(in); err != nil || !ok { + in.Seek(start) + return + } + + // Else contents + if r, ok, err = (attributesParser{}).Parse(in); err != nil || !ok { + err = parse.Error("attribute if: expected attributes in else block, but none were found", in.Position()) + return + } + + return r, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/cssparser.go b/vendor/github.com/a-h/templ/parser/v2/cssparser.go new file mode 100644 index 0000000..9b63d20 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/cssparser.go @@ -0,0 +1,200 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +// CSS. + +// CSS Parser. +var cssParser = parse.Func(func(pi *parse.Input) (r *CSSTemplate, ok bool, err error) { + from := pi.Position() + + r = &CSSTemplate{ + Properties: []CSSProperty{}, + } + defer func() { + r.Range = NewRange(from, pi.Position()) + }() + + // Parse the name. + var exp cssExpression + if exp, ok, err = cssExpressionParser.Parse(pi); err != nil || !ok { + return + } + r.Name = exp.Name + r.Expression = exp.Expression + + for { + var cssProperty CSSProperty + + // Try for an expression CSS declaration. + // background-color: { constants.BackgroundColor }; + cssProperty, ok, err = expressionCSSPropertyParser.Parse(pi) + if err != nil { + return + } + if ok { + r.Properties = append(r.Properties, cssProperty) + continue + } + + // Try for a constant CSS declaration. + // color: #ffffff; + cssProperty, ok, err = constantCSSPropertyParser.Parse(pi) + if err != nil { + return + } + if ok { + r.Properties = append(r.Properties, cssProperty) + continue + } + + // Eat any whitespace. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + + // Try for } + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("css property expression: missing closing brace", pi.Position()) + return + } + + return r, true, nil + } +}) + +// css Func() { +type cssExpression struct { + Expression Expression + Name string +} + +var cssExpressionParser = parse.Func(func(pi *parse.Input) (r cssExpression, ok bool, err error) { + start := pi.Index() + + if !peekPrefix(pi, "css ") { + return r, false, nil + } + + // Once we have the prefix, everything to the brace is Go. + // e.g. + // css (x []string) Test() { + // becomes: + // func (x []string) Test() templ.CSSComponent { + if r.Name, r.Expression, err = parseCSSFuncDecl(pi); err != nil { + return r, false, err + } + + // Eat " {\n". + if _, ok, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !ok { + err = parse.Error("css expression: parameters missing open bracket", pi.PositionAt(start)) + return + } + + return r, true, nil +}) + +// CSS property name parser. +var cssPropertyNameFirst = "abcdefghijklmnopqrstuvwxyz-" +var cssPropertyNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-" +var cssPropertyNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { + start := in.Position() + var prefix, suffix string + if prefix, ok, err = parse.RuneIn(cssPropertyNameFirst).Parse(in); err != nil || !ok { + return + } + if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(cssPropertyNameSubsequent)).Parse(in); err != nil || !ok { + in.Seek(start.Index) + return + } + if len(suffix)+1 > 128 { + ok = false + err = parse.Error("css property names must be < 128 characters long", in.Position()) + return + } + return prefix + suffix, true, nil +}) + +// background-color: {%= constants.BackgroundColor %}; +var expressionCSSPropertyParser = parse.Func(func(pi *parse.Input) (r *ExpressionCSSProperty, ok bool, err error) { + start := pi.Index() + + // Optional whitespace. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + // Property name. + r = &ExpressionCSSProperty{} + if r.Name, ok, err = cssPropertyNameParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + // : + if _, ok, err = parse.All(parse.OptionalWhitespace, parse.Rune(':'), parse.OptionalWhitespace).Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // { string } + var se Node + if se, ok, err = stringExpression.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + r.Value = se.(*StringExpression) + + // ; + if _, ok, err = parse.String(";").Parse(pi); err != nil || !ok { + err = parse.Error("missing expected semicolon (;)", pi.Position()) + return + } + // \n + if _, ok, err = parse.NewLine.Parse(pi); err != nil || !ok { + err = parse.Error("missing expected linebreak", pi.Position()) + return + } + + return r, true, nil +}) + +// background-color: #ffffff; +var constantCSSPropertyParser = parse.Func(func(pi *parse.Input) (r *ConstantCSSProperty, ok bool, err error) { + start := pi.Index() + + // Optional whitespace. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + // Property name. + r = &ConstantCSSProperty{} + if r.Name, ok, err = cssPropertyNameParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + // : + if _, ok, err = parse.All(parse.OptionalWhitespace, parse.Rune(':'), parse.OptionalWhitespace).Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Everything until ';\n' + untilEnd := parse.All( + parse.OptionalWhitespace, + parse.Rune(';'), + parse.NewLine, + ) + if r.Value, ok, err = parse.StringUntil(untilEnd).Parse(pi); err != nil || !ok { + err = parse.Error("missing expected semicolon and linebreak (;\\n", pi.Position()) + return + } + + // Chomp the ;\n + if _, ok, err = untilEnd.Parse(pi); err != nil || !ok { + err = parse.Error("failed to chomp semicolon and linebreak (;\\n)", pi.Position()) + return + } + + return r, true, nil +}) diff --git a/vendor/github.com/a-h/templ/parser/v2/diagnostics.go b/vendor/github.com/a-h/templ/parser/v2/diagnostics.go new file mode 100644 index 0000000..aef94a4 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/diagnostics.go @@ -0,0 +1,64 @@ +package parser + +import ( + "errors" +) + +type diagnoser func(Node) ([]Diagnostic, error) + +// Diagnostic for template file. +type Diagnostic struct { + Message string + Range Range +} + +func walkTemplate(t *TemplateFile, f func(Node) bool) { + for _, n := range t.Nodes { + hn, ok := n.(*HTMLTemplate) + if !ok { + continue + } + walkNodes(hn.Children, f) + } +} +func walkNodes(t []Node, f func(Node) bool) { + for _, n := range t { + if !f(n) { + continue + } + if h, ok := n.(CompositeNode); ok { + walkNodes(h.ChildNodes(), f) + } + } +} + +var diagnosers = []diagnoser{ + useOfLegacyCallSyntaxDiagnoser, +} + +func Diagnose(t *TemplateFile) ([]Diagnostic, error) { + var diags []Diagnostic + var errs error + walkTemplate(t, func(n Node) bool { + for _, d := range diagnosers { + diag, err := d(n) + if err != nil { + errs = errors.Join(errs, err) + return false + } + diags = append(diags, diag...) + } + return true + }) + return diags, errs +} + +func useOfLegacyCallSyntaxDiagnoser(n Node) ([]Diagnostic, error) { + if c, ok := n.(*CallTemplateExpression); ok { + return []Diagnostic{{ + Message: "`{! foo }` syntax is deprecated. Use `@foo` syntax instead. Run `templ fmt .` to fix all instances.", + Range: c.Expression.Range, + }}, nil + } + return nil, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go b/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go new file mode 100644 index 0000000..8e82b09 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go @@ -0,0 +1,32 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +var doctypeStartParser = parse.StringInsensitive("'. + if _, ok, err = gt.Parse(pi); err != nil || !ok { + err = parse.Error("unclosed DOCTYPE", start) + return + } + + return r, true, nil +}) diff --git a/vendor/github.com/a-h/templ/parser/v2/elementparser.go b/vendor/github.com/a-h/templ/parser/v2/elementparser.go new file mode 100644 index 0000000..a7cb8db --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/elementparser.go @@ -0,0 +1,560 @@ +package parser + +import ( + "fmt" + "strings" + + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +// Element. + +// Element open tag. +type elementOpenTag struct { + Name string + Attributes []Attribute + IndentAttrs bool + NameRange Range + Void bool +} + +var elementOpenTagParser = parse.Func(func(pi *parse.Input) (e elementOpenTag, matched bool, err error) { + if next, _ := pi.Peek(2); len(next) < 2 || next[0] != '<' || next == " + if _, matched, err = parse.String("/>").Parse(pi); err != nil { + return e, true, err + } + if matched { + e.Void = true + return e, true, nil + } + + // > + if _, matched, err = gt.Parse(pi); err != nil { + return e, true, err + } + + // If it's not a self-closing or complete open element, we have an error. + if !matched { + err = parse.Error(fmt.Sprintf("<%s>: malformed open element", e.Name), pi.Position()) + return + } + + return e, true, nil +}) + +// Attribute name. +var ( + attributeNameFirst = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:_@" + attributeNameSubsequent = attributeNameFirst + "-.0123456789*" + attributeNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { + start := in.Index() + var prefix, suffix string + if prefix, ok, err = parse.RuneIn(attributeNameFirst).Parse(in); err != nil || !ok { + return + } + if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(attributeNameSubsequent)).Parse(in); err != nil { + in.Seek(start) + return + } + if len(suffix)+1 > 128 { + ok = false + err = parse.Error("attribute names must be < 128 characters long", in.Position()) + return + } + return prefix + suffix, true, nil + }) +) + +type attributeValueParser struct { + EqualsAndQuote parse.Parser[string] + Suffix parse.Parser[string] + UseSingleQuote bool +} + +func (avp attributeValueParser) Parse(pi *parse.Input) (value string, ok bool, err error) { + start := pi.Index() + if _, ok, err = avp.EqualsAndQuote.Parse(pi); err != nil || !ok { + return + } + if value, ok, err = parse.StringUntil(avp.Suffix).Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + if _, ok, err = avp.Suffix.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + return value, true, nil +} + +// Constant attribute. +var ( + attributeValueParsers = []attributeValueParser{ + // Double quoted. + {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String(`="`)), Suffix: parse.String(`"`), UseSingleQuote: false}, + // Single quoted. + {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String(`='`)), Suffix: parse.String(`'`), UseSingleQuote: true}, + // Unquoted. + // A valid unquoted attribute value in HTML is any string of text that is not an empty string, + // and that doesn’t contain spaces, tabs, line feeds, form feeds, carriage returns, ", ', `, =, <, or >. + {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String("=")), Suffix: parse.Any(parse.RuneIn(" \t\n\r\"'`=<>/"), parse.EOF[string]()), UseSingleQuote: false}, + } + constantAttributeParser = parse.Func(func(pi *parse.Input) (attr *ConstantAttribute, ok bool, err error) { + start := pi.Index() + + // Optional whitespace leader. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + + attr = &ConstantAttribute{} + + // Attribute name. + if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + for _, p := range attributeValueParsers { + attr.Value, ok, err = p.Parse(pi) + if err != nil { + pos := pi.Position() + if pErr, isParseError := err.(parse.ParseError); isParseError { + pos = pErr.Pos + } + return attr, false, parse.Error(fmt.Sprintf("%s: %v", attr.Key, err), pos) + } + if ok { + attr.SingleQuote = p.UseSingleQuote + break + } + } + + if !ok { + pi.Seek(start) + return attr, false, nil + } + + // Only use single quotes if actually required, due to double quote in the value (prefer double quotes). + attr.SingleQuote = attr.SingleQuote && strings.Contains(attr.Value, "\"") + + return attr, true, nil + }) +) + +var expressionAttributeKeyParser = parse.Func(func(pi *parse.Input) (attr AttributeKey, ok bool, err error) { + start := pi.Index() + // Eat the first brace. + if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + var ek ExpressionAttributeKey + + // Expression. + if ek.Expression, err = parseGoSliceArgs(pi); err != nil { + return attr, false, err + } + + // Eat the Final brace. + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("attribute key: missing closing brace", pi.Position()) + pi.Seek(start) + return + } + return ek, true, nil +}) + +var constantAttributeKeyParser = parse.Func(func(pi *parse.Input) (k AttributeKey, ok bool, err error) { + start := pi.Index() + n, ok, err := attributeNameParser.Parse(pi) + if err != nil || !ok { + pi.Seek(start) + return + } + r := NewRange(pi.PositionAt(start), pi.Position()) + k = ConstantAttributeKey{Name: n, NameRange: r} + return k, true, nil +}) + +var attributeKeyParser = parse.Any(constantAttributeKeyParser, expressionAttributeKeyParser) + +// BoolConstantAttribute. +var boolConstantAttributeParser = parse.Func(func(pi *parse.Input) (attr *BoolConstantAttribute, ok bool, err error) { + start := pi.Index() + + // Optional whitespace leader. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + + attr = &BoolConstantAttribute{} + + // Attribute name. + if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // We have a name, but if we have an equals sign, it's not a constant boolean attribute. + next, ok := pi.Peek(1) + if !ok { + err = parse.Error("boolConstantAttributeParser: unexpected EOF after attribute name", pi.Position()) + return + } + if next == "=" || next == "?" { + // It's one of the other attribute types. + pi.Seek(start) + return attr, false, nil + } + if next != " " && next != "\t" && next != "\r" && next != "\n" && next != "/" && next != ">" { + err = parse.Error(fmt.Sprintf("boolConstantAttributeParser: expected attribute name to end with space, newline, '/>' or '>', but got %q", next), pi.Position()) + return attr, false, err + } + + return attr, true, nil +}) + +// BoolExpressionAttribute. +var boolExpressionStart = parse.Or(parse.String("?={ "), parse.String("?={")) + +var boolExpressionAttributeParser = parse.Func(func(pi *parse.Input) (r *BoolExpressionAttribute, ok bool, err error) { + start := pi.Index() + + // Optional whitespace leader. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + r = &BoolExpressionAttribute{} + + // Attribute name. + if r.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Check whether this is a boolean expression attribute. + if _, ok, err = boolExpressionStart.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Once we have a prefix, we must have an expression that returns a boolean. + if r.Expression, err = parseGo("boolean attribute", pi, goexpression.Expression); err != nil { + return r, false, err + } + + // Eat the Final brace. + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("boolean expression: missing closing brace", pi.Position()) + pi.Seek(start) + return + } + + return r, true, nil +}) + +var expressionAttributeStartParser = parse.StringFrom(parse.OptionalWhitespace, parse.String("="), parse.OptionalWhitespace, parse.String("{"), parse.OptionalWhitespace) + +var expressionAttributeParser = parse.Func(func(pi *parse.Input) (attr *ExpressionAttribute, ok bool, err error) { + start := pi.Index() + + // Optional whitespace leader. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + + attr = &ExpressionAttribute{} + + // Attribute name. + if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // ={ + if _, ok, err = expressionAttributeStartParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Expression. + if attr.Expression, err = parseGoSliceArgs(pi); err != nil { + return attr, false, err + } + + // Eat whitespace, plus the final brace. + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + return attr, false, err + } + if _, ok, err = closeBrace.Parse(pi); err != nil || !ok { + err = parse.Error("string expression attribute: missing closing brace", pi.Position()) + return + } + + return attr, true, nil +}) + +var spreadAttributesParser = parse.Func(func(pi *parse.Input) (attr *SpreadAttributes, ok bool, err error) { + start := pi.Index() + + // Optional whitespace leader. + if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + + // Eat the first brace. + if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || + !ok { + pi.Seek(start) + return + } + + // Expression. + attr = &SpreadAttributes{} + if attr.Expression, err = parseGo("spread attributes", pi, goexpression.Expression); err != nil { + return + } + + // Check if end of expression has "..." for spread. + if !strings.HasSuffix(attr.Expression.Value, "...") { + pi.Seek(start) + ok = false + return + } + + // Remove extra spread characters from expression. + attr.Expression.Value = strings.TrimSuffix(attr.Expression.Value, "...") + attr.Expression.Range.To.Col -= 3 + attr.Expression.Range.To.Index -= 3 + + // Eat the final brace. + if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("attribute spread expression: missing closing brace", pi.Position()) + return + } + + return attr, true, nil +}) + +// Attributes. +type attributeParser struct{} + +func (attributeParser) Parse(in *parse.Input) (out Attribute, ok bool, err error) { + if out, ok, err = spreadAttributesParser.Parse(in); err != nil || ok { + return + } + if out, ok, err = boolExpressionAttributeParser.Parse(in); err != nil || ok { + return + } + if out, ok, err = expressionAttributeParser.Parse(in); err != nil || ok { + return + } + if out, ok, err = conditionalAttribute.Parse(in); err != nil || ok { + return + } + if out, ok, err = boolConstantAttributeParser.Parse(in); err != nil || ok { + return + } + if out, ok, err = constantAttributeParser.Parse(in); err != nil || ok { + return + } + return +} + +var attribute attributeParser + +type attributesParser struct{} + +func (attributesParser) Parse(in *parse.Input) (attributes []Attribute, ok bool, err error) { + for { + var attr Attribute + attr, ok, err = attribute.Parse(in) + if err != nil { + return + } + if !ok { + break + } + attributes = append(attributes, attr) + } + return attributes, true, nil +} + +// Element name. +var ( + elementNameFirst = "abcdefghijklmnopqrstuvwxyz" + elementNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:" + elementNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { + start := in.Index() + var prefix, suffix string + if prefix, ok, err = parse.RuneIn(elementNameFirst).Parse(in); err != nil || !ok { + return + } + if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(elementNameSubsequent)).Parse(in); err != nil || !ok { + in.Seek(start) + return + } + if len(suffix)+1 > 128 { + ok = false + err = parse.Error("element names must be < 128 characters long", in.Position()) + return + } + return prefix + suffix, true, nil + }) +) + +// Void element closer. +var voidElementCloser voidElementCloserParser + +type voidElementCloserParser struct{} + +var voidElementCloseTags = []string{"", "", "
", "", "", "", "", "", "", "", "", "", "", "", "", ""} + +func (voidElementCloserParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + var ve string + for _, ve = range voidElementCloseTags { + s, canPeekLen := pi.Peek(len(ve)) + if !canPeekLen { + continue + } + if !strings.EqualFold(s, ve) { + continue + } + // Found a match. + ok = true + break + } + if !ok { + return nil, false, nil + } + pi.Take(len(ve)) + return nil, true, nil +} + +// Element. +var element elementParser + +type elementParser struct{} + +func (elementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + start := pi.Position() + + if prefix, _ := pi.Peek(len("'))) + tnp := newTemplateNodeParser(closer, fmt.Sprintf("<%s>: close tag", ot.Name)) + nodes, _, err := tnp.Parse(pi) + if err != nil { + notFoundErr, isNotFoundError := err.(UntilNotFoundError) + if isNotFoundError { + err = notFoundErr.ParseError + } + // If we got any nodes, take them, because the LSP might want to use them. + r.Children = nodes.Nodes + return r, true, err + } + r.Children = nodes.Nodes + // If the children are not all on the same line, indent them. + if l != pi.Position().Line { + r.IndentChildren = true + } + + // Close tag. + _, ok, err = closer.Parse(pi) + if err != nil { + return r, true, err + } + if !ok { + err = parse.Error(fmt.Sprintf("<%s>: expected end tag not present or invalid tag contents", r.Name), pi.Position()) + return r, true, err + } + + return addTrailingSpaceAndValidate(start, r, pi) +} + +func addTrailingSpaceAndValidate(start parse.Position, e *Element, pi *parse.Input) (n Node, ok bool, err error) { + // Elide any void close tags. + if _, _, err = voidElementCloser.Parse(pi); err != nil { + return e, false, err + } + // Add trailing space. + ws, _, err := parse.Whitespace.Parse(pi) + if err != nil { + return e, false, err + } + e.TrailingSpace, err = NewTrailingSpace(ws) + if err != nil { + return e, false, err + } + + // Validate. + var msgs []string + if msgs, ok = e.Validate(); !ok { + err = parse.Error(fmt.Sprintf("<%s>: %s", e.Name, strings.Join(msgs, ", ")), start) + return e, false, err + } + + e.Range = NewRange(start, pi.Position()) + return e, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/expressionparser.go b/vendor/github.com/a-h/templ/parser/v2/expressionparser.go new file mode 100644 index 0000000..87128ec --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/expressionparser.go @@ -0,0 +1,246 @@ +package parser + +import ( + "strings" + + "github.com/a-h/parse" +) + +// StripType takes the parser and throws away the return value. +func StripType[T any](p parse.Parser[T]) parse.Parser[any] { + return parse.Func(func(in *parse.Input) (out any, matched bool, err error) { + return p.Parse(in) + }) +} + +func ExpressionOf(p parse.Parser[string]) parse.Parser[Expression] { + return parse.Func(func(in *parse.Input) (out Expression, matched bool, err error) { + from := in.Position() + + var exp string + if exp, matched, err = p.Parse(in); err != nil || !matched { + return + } + + return NewExpression(exp, from, in.Position()), true, nil + }) +} + +var lt = parse.Rune('<') +var gt = parse.Rune('>') +var spaceOrTab = parse.Any(parse.Rune(' '), parse.Rune('\t')) +var spaceOrTabOrNewLine = parse.Any(spaceOrTab, parse.Rune('\n')) +var openBrace = parse.String("{") +var optionalSpaces = parse.StringFrom(parse.Optional( + parse.AtLeast(1, spaceOrTab))) +var optionalSpacesOrNewLine = parse.StringFrom(parse.Optional( + parse.AtLeast(1, spaceOrTabOrNewLine))) +var openBraceWithPadding = parse.StringFrom(optionalSpaces, + openBrace, + optionalSpaces) +var openBraceWithOptionalPadding = parse.Any(openBraceWithPadding, openBrace) + +var closeBrace = parse.String("}") +var closeBraceWithOptionalPadding = parse.StringFrom(optionalSpaces, closeBrace) + +var dblOpenBrace = parse.String("{{") +var dblOpenBraceWithOptionalPaddingOrNewLine = parse.StringFrom(dblOpenBrace, optionalSpacesOrNewLine) + +var dblCloseBrace = parse.String("}}") +var dblCloseBraceWithOptionalPadding = parse.StringFrom(optionalSpaces, dblCloseBrace) + +var openBracket = parse.String("(") +var closeBracket = parse.String(")") + +var stringUntilNewLine = parse.StringUntil(parse.NewLine) +var newLineOrEOF = parse.Or(parse.NewLine, parse.EOF[string]()) +var stringUntilNewLineOrEOF = parse.StringUntil(newLineOrEOF) + +var jsOrGoSingleLineComment = parse.StringFrom(parse.String("//"), parse.StringUntil(parse.Any(parse.NewLine, parse.EOF[string]()))) +var jsOrGoMultiLineComment = parse.StringFrom(parse.String("/*"), parse.StringUntil(parse.String("*/"))) + +var exp = expressionParser{ + startBraceCount: 1, +} + +type expressionParser struct { + startBraceCount int +} + +func (p expressionParser) Parse(pi *parse.Input) (s Expression, matched bool, err error) { + from := pi.Position() + + braceCount := p.startBraceCount + + sb := new(strings.Builder) +loop: + for { + var result string + + // Try to parse a single line comment. + if result, matched, err = jsOrGoSingleLineComment.Parse(pi); err != nil { + return + } + if matched { + sb.WriteString(result) + continue + } + + // Try to parse a multi-line comment. + if result, matched, err = jsOrGoMultiLineComment.Parse(pi); err != nil { + return + } + if matched { + sb.WriteString(result) + continue + } + + // Try to read a string literal. + if result, matched, err = string_lit.Parse(pi); err != nil { + return + } + if matched { + sb.WriteString(result) + continue + } + // Also try for a rune literal. + if result, matched, err = rune_lit.Parse(pi); err != nil { + return + } + if matched { + sb.WriteString(result) + continue + } + // Try opener. + if result, matched, err = openBrace.Parse(pi); err != nil { + return + } + if matched { + braceCount++ + sb.WriteString(result) + continue + } + // Try closer. + startOfCloseBrace := pi.Index() + if result, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil { + return + } + if matched { + braceCount-- + if braceCount < 0 { + err = parse.Error("expression: too many closing braces", pi.Position()) + return + } + if braceCount == 0 { + pi.Seek(startOfCloseBrace) + break loop + } + sb.WriteString(result) + continue + } + + // Read anything else. + var c string + c, matched = pi.Take(1) + if !matched { + break loop + } + if rune(c[0]) == 65533 { // Invalid Unicode. + break loop + } + sb.WriteString(c) + } + if braceCount != 0 { + err = parse.Error("expression: unexpected brace count", pi.Position()) + return + } + + return NewExpression(sb.String(), from, pi.Position()), true, nil +} + +// Letters and digits + +var octal_digit = parse.RuneIn("01234567") +var hex_digit = parse.RuneIn("0123456789ABCDEFabcdef") + +// https://go.dev/ref/spec#Rune_literals + +var rune_lit = parse.StringFrom( + parse.Rune('\''), + parse.StringFrom(parse.Until( + parse.Any(unicode_value_rune, byte_value), + parse.Rune('\''), + )), + parse.Rune('\''), +) +var unicode_value_rune = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("'")) + +// byte_value = octal_byte_value | hex_byte_value . +var byte_value = parse.Any(octal_byte_value, hex_byte_value) + +// octal_byte_value = `\` octal_digit octal_digit octal_digit . +var octal_byte_value = parse.StringFrom( + parse.String(`\`), + octal_digit, octal_digit, octal_digit, +) + +// hex_byte_value = `\` "x" hex_digit hex_digit . +var hex_byte_value = parse.StringFrom( + parse.String(`\x`), + hex_digit, hex_digit, +) + +// little_u_value = `\` "u" hex_digit hex_digit hex_digit hex_digit . +var little_u_value = parse.StringFrom( + parse.String(`\u`), + hex_digit, hex_digit, + hex_digit, hex_digit, +) + +// big_u_value = `\` "U" hex_digit hex_digit hex_digit hex_digit +var big_u_value = parse.StringFrom( + parse.String(`\U`), + hex_digit, hex_digit, hex_digit, hex_digit, + hex_digit, hex_digit, hex_digit, hex_digit, +) + +// escaped_char = `\` ( "a" | "b" | "f" | "n" | "r" | "t" | "v" | `\` | "'" | `"` ) . +var escaped_char = parse.StringFrom( + parse.Rune('\\'), + parse.Any( + parse.Rune('a'), + parse.Rune('b'), + parse.Rune('f'), + parse.Rune('n'), + parse.Rune('r'), + parse.Rune('t'), + parse.Rune('v'), + parse.Rune('\\'), + parse.Rune('\''), + parse.Rune('"'), + ), +) + +// https://go.dev/ref/spec#String_literals + +var string_lit = parse.Any(parse.String(`""`), parse.String(`''`), interpreted_string_lit, raw_string_lit) + +var interpreted_string_lit = parse.StringFrom( + parse.Rune('"'), + parse.StringFrom(parse.Until( + parse.Any(unicode_value_interpreted, byte_value), + parse.Rune('"'), + )), + parse.Rune('"'), +) +var unicode_value_interpreted = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("\n\"")) + +var raw_string_lit = parse.StringFrom( + parse.Rune('`'), + parse.StringFrom(parse.Until( + unicode_value_raw, + parse.Rune('`'), + )), + parse.Rune('`'), +) +var unicode_value_raw = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("`")) diff --git a/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go new file mode 100644 index 0000000..6dd57e8 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go @@ -0,0 +1,57 @@ +package parser + +import ( + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +var forExpression parse.Parser[Node] = forExpressionParser{} + +type forExpressionParser struct{} + +func (forExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { + r := &ForExpression{} + start := pi.Index() + + // Strip leading whitespace and look for `for `. + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + return r, false, err + } + if !peekPrefix(pi, "for ") { + pi.Seek(start) + return r, false, nil + } + + // Parse the Go for expression. + if r.Expression, err = parseGo("for", pi, goexpression.For); err != nil { + return r, true, err + } + + // Eat " {\n". + _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi) + if err != nil { + return r, true, err + } + if !matched { + err = parse.Error("for: "+unterminatedMissingCurly, pi.PositionAt(start)) + return r, true, err + } + + // Node contents. + tnp := newTemplateNodeParser(closeBraceWithOptionalPadding, "for expression closing brace") + var nodes Nodes + if nodes, matched, err = tnp.Parse(pi); err != nil || !matched { + // If we got any nodes, take them, because the LSP might want to use them. + r.Children = nodes.Nodes + return r, true, parse.Error("for: expected nodes, but none were found", pi.Position()) + } + r.Children = nodes.Nodes + + // Read the required closing brace. + if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { + return r, true, parse.Error("for: "+unterminatedMissingEnd, pi.Position()) + } + + r.Range = NewRange(pi.PositionAt(start), pi.Position()) + return r, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/fuzz.sh b/vendor/github.com/a-h/templ/parser/v2/fuzz.sh new file mode 100644 index 0000000..c74517c --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/fuzz.sh @@ -0,0 +1,5 @@ +#!/bin/bash +echo Element +go test -fuzz=FuzzElement -fuzztime=120s +echo Script +go test -fuzz=FuzzScript -fuzztime=120s diff --git a/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go b/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go new file mode 100644 index 0000000..2d58205 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go @@ -0,0 +1,60 @@ +package parser + +import ( + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +// goCode is the parser used to parse Raw Go code within templates. +// +// goCodeInJavaScript is the same, but handles the case where Go expressions +// are embedded within JavaScript. +// +// The only difference is that goCode normalises whitespace after the +// closing brace pair, whereas goCodeInJavaScript retains all whitespace. +var goCode = getGoCodeParser(true) +var goCodeInJavaScript = getGoCodeParser(false) + +func getGoCodeParser(normalizeWhitespace bool) parse.Parser[Node] { + return parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { + // Check the prefix first. + if _, ok, err = dblOpenBraceWithOptionalPaddingOrNewLine.Parse(pi); err != nil || !ok { + return + } + + // Once we have a prefix, we must have an expression that returns a string, with optional err. + l := pi.Position().Line + r := &GoCode{} + if r.Expression, err = parseGo("go code", pi, goexpression.Expression); err != nil { + return r, false, err + } + + if l != pi.Position().Line { + r.Multiline = true + } + + // Clear any optional whitespace. + _, _, _ = parse.OptionalWhitespace.Parse(pi) + + // }} + if _, ok, err = dblCloseBraceWithOptionalPadding.Parse(pi); err != nil || !ok { + err = parse.Error("go code: missing close braces", pi.Position()) + return + } + + // Parse trailing whitespace. + ws, _, err := parse.Whitespace.Parse(pi) + if err != nil { + return r, false, err + } + if normalizeWhitespace { + if r.TrailingSpace, err = NewTrailingSpace(ws); err != nil { + return r, false, err + } + } else { + r.TrailingSpace = TrailingSpace(ws) + } + + return r, true, nil + }) +} diff --git a/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go b/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go new file mode 100644 index 0000000..e8b0ec9 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go @@ -0,0 +1,66 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +var ( + goSingleLineCommentStart = parse.String("//") + goSingleLineCommentEnd = parse.Any(parse.NewLine, parse.EOF[string]()) +) + +type goSingleLineCommentParser struct{} + +var goSingleLineComment = goSingleLineCommentParser{} + +func (p goSingleLineCommentParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + // Comment start. + start := pi.Position() + if _, ok, err = goSingleLineCommentStart.Parse(pi); err != nil || !ok { + return + } + // Once we've got the comment start sequence, parse anything until the end + // sequence as the comment contents. + c := &GoComment{} + if c.Contents, ok, err = parse.StringUntil(goSingleLineCommentEnd).Parse(pi); err != nil || !ok { + err = parse.Error("expected end comment literal '\n' not found", pi.Position()) + return + } + // Return the comment. + c.Multiline = false + c.Range = NewRange(start, pi.Position()) + return c, true, nil +} + +var ( + goMultiLineCommentStart = parse.String("/*") + goMultiLineCommentEnd = parse.String("*/") +) + +type goMultiLineCommentParser struct{} + +var goMultiLineComment = goMultiLineCommentParser{} + +func (p goMultiLineCommentParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + // Comment start. + start := pi.Position() + if _, ok, err = goMultiLineCommentStart.Parse(pi); err != nil || !ok { + return + } + + // Once we've got the comment start sequence, parse anything until the end + // sequence as the comment contents. + c := &GoComment{} + if c.Contents, ok, err = parse.StringUntil(goMultiLineCommentEnd).Parse(pi); err != nil || !ok { + err = parse.Error("expected end comment literal '*/' not found", start) + return + } + // Move past the end element. + _, _, _ = goMultiLineCommentEnd.Parse(pi) + // Return the comment. + c.Multiline = true + c.Range = NewRange(start, pi.Position()) + return c, true, nil +} + +var goComment = parse.Any(goSingleLineComment, goMultiLineComment) diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh b/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh new file mode 100644 index 0000000..08c800e --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh @@ -0,0 +1,19 @@ +#!/bin/bash +echo If +go test -fuzz=FuzzIf -fuzztime=120s +echo For +go test -fuzz=FuzzFor -fuzztime=120s +echo Switch +go test -fuzz=FuzzSwitch -fuzztime=120s +echo Case +go test -fuzz=FuzzCaseStandard -fuzztime=120s +echo Default +go test -fuzz=FuzzCaseDefault -fuzztime=120s +echo TemplExpression +go test -fuzz=FuzzTemplExpression -fuzztime=120s +echo Expression +go test -fuzz=FuzzExpression -fuzztime=120s +echo SliceArgs +go test -fuzz=FuzzSliceArgs -fuzztime=120s +echo Funcs +go test -fuzz=FuzzFuncs -fuzztime=120s diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go b/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go new file mode 100644 index 0000000..6788954 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go @@ -0,0 +1,343 @@ +package goexpression + +import ( + "errors" + "fmt" + "go/ast" + "go/parser" + "go/scanner" + "go/token" + "regexp" + "strings" + "unicode" +) + +var ( + ErrContainerFuncNotFound = errors.New("parser error: templ container function not found") + ErrExpectedNodeNotFound = errors.New("parser error: expected node not found") +) + +var defaultRegexp = regexp.MustCompile(`^default\s*:`) + +func Case(content string) (start, end int, err error) { + if !strings.HasPrefix(content, "case ") && !defaultRegexp.MatchString(content) { + return 0, 0, ErrExpectedNodeNotFound + } + prefix := "switch {\n" + src := prefix + content + start, end, err = extract(src, func(body []ast.Stmt) (start, end int, err error) { + sw, ok := body[0].(*ast.SwitchStmt) + if !ok { + return 0, 0, ErrExpectedNodeNotFound + } + if sw.Body == nil || len(sw.Body.List) == 0 { + return 0, 0, ErrExpectedNodeNotFound + } + stmt, ok := sw.Body.List[0].(*ast.CaseClause) + if !ok { + return 0, 0, ErrExpectedNodeNotFound + } + start = int(stmt.Case) - 1 + end = int(stmt.Colon) + return start, end, nil + }) + if err != nil { + return 0, 0, err + } + // Since we added a `switch {` prefix, we need to remove it. + start -= len(prefix) + end -= len(prefix) + return start, end, nil +} + +func If(content string) (start, end int, err error) { + if !strings.HasPrefix(content, "if") { + return 0, 0, ErrExpectedNodeNotFound + } + return extract(content, func(body []ast.Stmt) (start, end int, err error) { + stmt, ok := body[0].(*ast.IfStmt) + if !ok { + return 0, 0, ErrExpectedNodeNotFound + } + start = int(stmt.If) + len("if") + end = latestEnd(start, stmt.Init, stmt.Cond) + return start, end, nil + }) +} + +func For(content string) (start, end int, err error) { + if !strings.HasPrefix(content, "for") { + return 0, 0, ErrExpectedNodeNotFound + } + return extract(content, func(body []ast.Stmt) (start, end int, err error) { + stmt := body[0] + switch stmt := stmt.(type) { + case *ast.ForStmt: + start = int(stmt.For) + len("for") + end = latestEnd(start, stmt.Init, stmt.Cond, stmt.Post) + return start, end, nil + case *ast.RangeStmt: + start = int(stmt.For) + len("for") + end = latestEnd(start, stmt.Key, stmt.Value, stmt.X) + return start, end, nil + } + return 0, 0, ErrExpectedNodeNotFound + }) +} + +func Switch(content string) (start, end int, err error) { + if !strings.HasPrefix(content, "switch") { + return 0, 0, ErrExpectedNodeNotFound + } + return extract(content, func(body []ast.Stmt) (start, end int, err error) { + stmt := body[0] + switch stmt := stmt.(type) { + case *ast.SwitchStmt: + start = int(stmt.Switch) + len("switch") + end = latestEnd(start, stmt.Init, stmt.Tag) + return start, end, nil + case *ast.TypeSwitchStmt: + start = int(stmt.Switch) + len("switch") + end = latestEnd(start, stmt.Init, stmt.Assign) + return start, end, nil + } + return 0, 0, ErrExpectedNodeNotFound + }) +} + +func TemplExpression(src string) (start, end int, err error) { + var s scanner.Scanner + fset := token.NewFileSet() + file := fset.AddFile("", fset.Base(), len(src)) + errorHandler := func(pos token.Position, msg string) { + err = fmt.Errorf("error parsing expression: %v", msg) + } + s.Init(file, []byte(src), errorHandler, scanner.ScanComments) + + // Read chains of identifiers, e.g.: + // components.Variable + // components[0].Variable + // components["name"].Function() + // functionCall(withLots(), func() { return true }) + ep := NewExpressionParser() + for { + pos, tok, lit := s.Scan() + stop, err := ep.Insert(pos, tok, lit) + if err != nil { + return 0, 0, err + } + if stop { + break + } + } + return 0, ep.End, nil +} + +func Expression(src string) (start, end int, err error) { + var s scanner.Scanner + fset := token.NewFileSet() + file := fset.AddFile("", fset.Base(), len(src)) + errorHandler := func(pos token.Position, msg string) { + err = fmt.Errorf("error parsing expression: %v", msg) + } + s.Init(file, []byte(src), errorHandler, scanner.ScanComments) + + // Read chains of identifiers and constants up until RBRACE, e.g.: + // true + // 123.45 == true + // components.Variable + // components[0].Variable + // components["name"].Function() + // functionCall(withLots(), func() { return true }) + // !true + parenDepth := 0 + bracketDepth := 0 + braceDepth := 0 +loop: + for { + pos, tok, lit := s.Scan() + if tok == token.EOF { + break loop + } + switch tok { + case token.LPAREN: // ( + parenDepth++ + case token.RPAREN: // ) + end = int(pos) + parenDepth-- + case token.LBRACK: // [ + bracketDepth++ + case token.RBRACK: // ] + end = int(pos) + bracketDepth-- + case token.LBRACE: // { + braceDepth++ + case token.RBRACE: // } + braceDepth-- + if braceDepth < 0 { + // We've hit the end of the expression. + break loop + } + end = int(pos) + case token.IDENT, token.INT, token.FLOAT, token.IMAG, token.CHAR, token.STRING: + end = int(pos) + len(lit) - 1 + case token.SEMICOLON: + continue + case token.COMMENT: + end = int(pos) + len(lit) - 1 + case token.ILLEGAL: + return 0, 0, fmt.Errorf("illegal token: %v", lit) + default: + end = int(pos) + len(tok.String()) - 1 + } + } + return start, end, nil +} + +func SliceArgs(content string) (expr string, err error) { + prefix := "package main\nvar templ_args = []any{" + src := prefix + content + "}" + + node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) + if node == nil { + return expr, parseErr + } + + var from, to int + inspectFirstNode(node, func(n ast.Node) bool { + decl, ok := n.(*ast.CompositeLit) + if !ok { + return true + } + from = int(decl.Lbrace) + to = int(decl.Rbrace) - 1 + for _, e := range decl.Elts { + to = int(e.End()) - 1 + } + if to > int(decl.Rbrace)-1 { + to = int(decl.Rbrace) - 1 + } + betweenEndAndBrace := src[to : decl.Rbrace-1] + var hasCodeBetweenEndAndBrace bool + for _, r := range betweenEndAndBrace { + if !unicode.IsSpace(r) { + hasCodeBetweenEndAndBrace = true + break + } + } + if hasCodeBetweenEndAndBrace { + to = int(decl.Rbrace) - 1 + } + return false + }) + + return src[from:to], err +} + +// Func returns the Go code up to the opening brace of the function body. +func Func(content string) (name, expr string, err error) { + prefix := "package main\n" + src := prefix + content + + node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) + if node == nil { + return name, expr, parseErr + } + + inspectFirstNode(node, func(n ast.Node) bool { + // Find the first function declaration. + fn, ok := n.(*ast.FuncDecl) + if !ok { + return true + } + start := int(fn.Pos()) + len("func") + end := fn.Type.Params.End() - 1 + if len(src) < int(end) { + err = errors.New("parser error: function identifier") + return false + } + expr = strings.Clone(src[start:end]) + name = fn.Name.Name + return false + }) + + return name, expr, err +} + +func latestEnd(start int, nodes ...ast.Node) (end int) { + end = start + for _, n := range nodes { + if n == nil { + continue + } + if int(n.End())-1 > end { + end = int(n.End()) - 1 + } + } + return end +} + +func inspectFirstNode(node ast.Node, f func(ast.Node) bool) { + var stop bool + ast.Inspect(node, func(n ast.Node) bool { + if stop { + return true + } + if f(n) { + return true + } + stop = true + return false + }) +} + +// Extract a Go expression from the content. +// The Go expression starts at "start" and ends at "end". +// The reader should skip until "length" to pass over the expression and into the next +// logical block. +type Extractor func(body []ast.Stmt) (start, end int, err error) + +func extract(content string, extractor Extractor) (start, end int, err error) { + prefix := "package main\nfunc templ_container() {\n" + src := prefix + content + + node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) + if node == nil { + return 0, 0, parseErr + } + + var found bool + inspectFirstNode(node, func(n ast.Node) bool { + // Find the "templ_container" function. + fn, ok := n.(*ast.FuncDecl) + if !ok { + return true + } + if fn.Name == nil || fn.Name.Name != "templ_container" { + err = ErrContainerFuncNotFound + return false + } + if fn.Body == nil || len(fn.Body.List) == 0 { + err = ErrExpectedNodeNotFound + return false + } + found = true + start, end, err = extractor(fn.Body.List) + return false + }) + if !found { + return 0, 0, ErrExpectedNodeNotFound + } + + start -= len(prefix) + end -= len(prefix) + + if end > len(content) { + end = len(content) + } + if start > end { + start = end + } + + return start, end, err +} diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go b/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go new file mode 100644 index 0000000..82ad94a --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go @@ -0,0 +1,180 @@ +package goexpression + +import ( + "fmt" + "go/token" +) + +type Stack[T any] []T + +func (s *Stack[T]) Push(v T) { + *s = append(*s, v) +} + +func (s *Stack[T]) Pop() (v T) { + if len(*s) == 0 { + return v + } + v = (*s)[len(*s)-1] + *s = (*s)[:len(*s)-1] + return v +} + +func (s *Stack[T]) Peek() (v T) { + if len(*s) == 0 { + return v + } + return (*s)[len(*s)-1] +} + +var goTokenOpenToClose = map[token.Token]token.Token{ + token.LPAREN: token.RPAREN, + token.LBRACE: token.RBRACE, + token.LBRACK: token.RBRACK, +} + +var goTokenCloseToOpen = map[token.Token]token.Token{ + token.RPAREN: token.LPAREN, + token.RBRACE: token.LBRACE, + token.RBRACK: token.LBRACK, +} + +type ErrUnbalanced struct { + Token token.Token +} + +func (e ErrUnbalanced) Error() string { + return fmt.Sprintf("unbalanced '%s'", e.Token) +} + +func NewExpressionParser() *ExpressionParser { + return &ExpressionParser{ + Stack: make(Stack[token.Token], 0), + Previous: token.PERIOD, + Fns: make(Stack[int], 0), + } +} + +type ExpressionParser struct { + Stack Stack[token.Token] + End int + Previous token.Token + Fns Stack[int] // Stack of function depths. +} + +func (ep *ExpressionParser) setEnd(pos token.Pos, tok token.Token, lit string) { + ep.End = int(pos) + len(tokenString(tok, lit)) - 1 +} + +func (ep *ExpressionParser) hasSpaceBeforeCurrentToken(pos token.Pos) bool { + return (int(pos) - 1) > ep.End +} + +func (ep *ExpressionParser) isTopLevel() bool { + return len(ep.Fns) == 0 && len(ep.Stack) == 0 +} + +func (ep *ExpressionParser) Insert( + pos token.Pos, + tok token.Token, + lit string, +) (stop bool, err error) { + defer func() { + ep.Previous = tok + }() + + // If we've reach the end of the file, terminate reading. + if tok == token.EOF { + // If the EOF was reached, but we're not at the top level, we must have an unbalanced expression. + if !ep.isTopLevel() { + return true, ErrUnbalanced{ep.Stack.Pop()} + } + return true, nil + } + + // Handle function literals e.g. func() { fmt.Println("Hello") } + // By pushing the current depth onto the stack, we prevent stopping + // until we've closed the function. + if tok == token.FUNC { + ep.Fns.Push(len(ep.Stack)) + ep.setEnd(pos, tok, lit) + return false, nil + } + // If we're opening a pair, we don't stop until we've closed it. + if _, isOpener := goTokenOpenToClose[tok]; isOpener { + // If we're at an open brace, at the top level, where a space has been used, stop. + if tok == token.LBRACE && ep.isTopLevel() { + // Previous was paren, e.g. () { + if ep.Previous == token.RPAREN { + return true, nil + } + // Previous was ident that isn't a type. + // In `name {`, `name` is considered to be a variable. + // In `name{`, `name` is considered to be a type name. + if ep.Previous == token.IDENT && ep.hasSpaceBeforeCurrentToken(pos) { + return true, nil + } + } + ep.Stack.Push(tok) + ep.setEnd(pos, tok, lit) + return false, nil + } + if opener, isCloser := goTokenCloseToOpen[tok]; isCloser { + if len(ep.Stack) == 0 { + // We've got a close token, but there's nothing to close, so we must be done. + return true, nil + } + actual := ep.Stack.Pop() + if !isCloser { + return false, ErrUnbalanced{tok} + } + if actual != opener { + return false, ErrUnbalanced{tok} + } + if tok == token.RBRACE { + // If we're closing a function, pop the function depth. + if len(ep.Stack) == ep.Fns.Peek() { + ep.Fns.Pop() + } + } + ep.setEnd(pos, tok, lit) + return false, nil + } + // If we're in a function literal slice, or pair, we allow anything until we close it. + if len(ep.Fns) > 0 || len(ep.Stack) > 0 { + ep.setEnd(pos, tok, lit) + return false, nil + } + // We allow an ident to follow a period or a closer. + // e.g. "package.name", "typeName{field: value}.name()". + // or "call().name", "call().name()". + // But not "package .name" or "typeName{field: value} .name()". + if tok == token.IDENT && (ep.Previous == token.PERIOD || isCloser(ep.Previous)) { + if isCloser(ep.Previous) && ep.hasSpaceBeforeCurrentToken(pos) { + // This token starts later than the last ending, which means + // there's a space. + return true, nil + } + ep.setEnd(pos, tok, lit) + return false, nil + } + if tok == token.PERIOD && (ep.Previous == token.IDENT || isCloser(ep.Previous)) { + ep.setEnd(pos, tok, lit) + return false, nil + } + + // No match, so stop. + return true, nil +} + +func tokenString(tok token.Token, lit string) string { + if tok.IsKeyword() || tok.IsOperator() { + return tok.String() + } + return lit +} + +func isCloser(tok token.Token) bool { + _, ok := goTokenCloseToOpen[tok] + return ok +} diff --git a/vendor/github.com/a-h/templ/parser/v2/goparser.go b/vendor/github.com/a-h/templ/parser/v2/goparser.go new file mode 100644 index 0000000..2441299 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/goparser.go @@ -0,0 +1,70 @@ +package parser + +import ( + "fmt" + "strings" + + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +func parseGoFuncDecl(prefix string, pi *parse.Input) (name string, expression Expression, err error) { + prefix = prefix + " " + from := pi.Index() + src, _ := pi.Peek(-1) + src = strings.TrimPrefix(src, prefix) + name, expr, err := goexpression.Func("func " + src) + if err != nil { + return name, expression, parse.Error(fmt.Sprintf("invalid %s declaration: %v", prefix, err.Error()), pi.Position()) + } + pi.Take(len(prefix) + len(expr)) + to := pi.Position() + return name, NewExpression(expr, pi.PositionAt(from+len(prefix)), to), nil +} + +func parseTemplFuncDecl(pi *parse.Input) (name string, expression Expression, err error) { + return parseGoFuncDecl("templ", pi) +} + +func parseCSSFuncDecl(pi *parse.Input) (name string, expression Expression, err error) { + return parseGoFuncDecl("css", pi) +} + +func parseGoSliceArgs(pi *parse.Input) (r Expression, err error) { + from := pi.Position() + src, _ := pi.Peek(-1) + expr, err := goexpression.SliceArgs(src) + if err != nil { + return r, err + } + pi.Take(len(expr)) + to := pi.Position() + return NewExpression(expr, from, to), nil +} + +func peekPrefix(pi *parse.Input, prefixes ...string) bool { + for _, prefix := range prefixes { + pp, ok := pi.Peek(len(prefix)) + if !ok { + continue + } + if prefix == pp { + return true + } + } + return false +} + +type extractor func(content string) (start, end int, err error) + +func parseGo(name string, pi *parse.Input, e extractor) (r Expression, err error) { + from := pi.Index() + src, _ := pi.Peek(-1) + start, end, err := e(src) + if err != nil { + return r, parse.Error(fmt.Sprintf("%s: invalid go expression: %v", name, err.Error()), pi.Position()) + } + expr := src[start:end] + pi.Take(end) + return NewExpression(expr, pi.PositionAt(from+start), pi.PositionAt(from+end)), nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go b/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go new file mode 100644 index 0000000..6f80a79 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go @@ -0,0 +1,40 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +var htmlCommentStart = parse.String("' not found", start) + return + } + // Cut the end element. + _, _, _ = htmlCommentEnd.Parse(pi) + + // Cut the gt. + if _, ok, err = gt.Parse(pi); err != nil || !ok { + err = parse.Error("comment contains invalid sequence '--'", pi.Position()) + return + } + + c.Range = NewRange(start, pi.Position()) + return c, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go new file mode 100644 index 0000000..7e51b78 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go @@ -0,0 +1,144 @@ +package parser + +import ( + "github.com/a-h/parse" + "github.com/a-h/templ/parser/v2/goexpression" +) + +var ifExpression ifExpressionParser + +var untilElseIfElseOrEnd = parse.Any(StripType(elseIfExpression), StripType(elseExpression), StripType(closeBraceWithOptionalPadding)) + +type ifExpressionParser struct{} + +// Parsers return: +// as much of a Node as they can +// matched=true if the start of a complete, incomplete or invalid node was found, e.g. "if " or "{ " +// err if an error occurred or a node was started and not completed + +func (ifExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { + start := pi.Index() + + if !peekPrefix(pi, "if ") { + return nil, false, nil + } + + // Parse the Go if expression using the Go parser. + r := &IfExpression{} + if r.Expression, err = parseGo("if", pi, goexpression.If); err != nil { + return r, true, err + } + + // Eat " {\n". + if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !matched { + err = parse.Error("if: "+unterminatedMissingCurly, pi.PositionAt(start)) + return r, true, err + } + + // Once we've had the start of an if block, we must conclude the block. + + // Read the 'Then' nodes. + // If there's no match, there's a problem in the template nodes. + np := newTemplateNodeParser(untilElseIfElseOrEnd, "else expression or closing brace") + var thenNodes Nodes + if thenNodes, matched, err = np.Parse(pi); err != nil || !matched { + // Populate the nodes anyway, so that the LSP can use them. + r.Then = thenNodes.Nodes + return r, true, parse.Error("if: expected nodes, but none were found", pi.Position()) + } + r.Then = thenNodes.Nodes + + // Read the optional 'ElseIf' Nodes. + if r.ElseIfs, _, err = parse.ZeroOrMore(elseIfExpression).Parse(pi); err != nil { + return r, true, err + } + + // Read the optional 'Else' Nodes. + var elseNodes Nodes + if elseNodes, _, err = elseExpression.Parse(pi); err != nil { + // Populate the nodes anyway, so that the LSP can use them. + r.Else = elseNodes.Nodes + return r, true, err + } + r.Else = elseNodes.Nodes + + // Read the required closing brace. + if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { + return r, true, parse.Error("if: expected closing brace", pi.Position()) + } + + r.Range = NewRange(pi.PositionAt(start), pi.Position()) + return r, true, nil +} + +var elseIfExpression parse.Parser[ElseIfExpression] = elseIfExpressionParser{} + +type elseIfExpressionParser struct{} + +func (elseIfExpressionParser) Parse(pi *parse.Input) (r ElseIfExpression, matched bool, err error) { + start := pi.Index() + + // Check the prefix first. + if _, matched, err = parse.All(parse.OptionalWhitespace, closeBrace, parse.OptionalWhitespace, parse.String("else if")).Parse(pi); err != nil || !matched { + pi.Seek(start) + return + } + + // Rewind to the start of the `if` statement. + pi.Seek(pi.Index() - 2) + // Parse the Go if expression. + if r.Expression, err = parseGo("else if", pi, goexpression.If); err != nil { + return r, false, err + } + + // Eat " {\n". + if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !matched { + err = parse.Error("else if: "+unterminatedMissingCurly, pi.PositionAt(start)) + return + } + + // Once we've had the start of an if block, we must conclude the block. + + // Read the 'Then' nodes. + // If there's no match, there's a problem in the template nodes. + np := newTemplateNodeParser(untilElseIfElseOrEnd, "else expression or closing brace") + var thenNodes Nodes + if thenNodes, matched, err = np.Parse(pi); err != nil || !matched { + err = parse.Error("if: expected nodes, but none were found", pi.Position()) + return + } + r.Then = thenNodes.Nodes + + r.Range = NewRange(pi.PositionAt(start), pi.Position()) + return r, true, nil +} + +var endElseParser = parse.All( + parse.Rune('}'), + parse.OptionalWhitespace, + parse.String("else"), + parse.OptionalWhitespace, + parse.Rune('{'), + parse.OptionalWhitespace) + +var elseExpression parse.Parser[Nodes] = elseExpressionParser{} + +type elseExpressionParser struct{} + +func (elseExpressionParser) Parse(in *parse.Input) (r Nodes, matched bool, err error) { + start := in.Index() + + // } else { + if _, matched, err = endElseParser.Parse(in); err != nil || !matched { + in.Seek(start) + return + } + + // Else contents + if r, matched, err = newTemplateNodeParser(closeBraceWithOptionalPadding, "else expression closing brace").Parse(in); err != nil || !matched { + in.Seek(start) + return + } + + return r, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/packageparser.go b/vendor/github.com/a-h/templ/parser/v2/packageparser.go new file mode 100644 index 0000000..98e38a6 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/packageparser.go @@ -0,0 +1,32 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +// Package. +var pkg = parse.Func(func(pi *parse.Input) (pkg Package, ok bool, err error) { + start := pi.Position() + + // Package prefix. + if _, ok, err = parse.String("package ").Parse(pi); err != nil || !ok { + return + } + + // Once we have the prefix, it's an expression until the end of the line. + var exp string + if exp, ok, err = stringUntilNewLine.Parse(pi); err != nil || !ok { + err = parse.Error("package literal not terminated", pi.Position()) + return + } + if len(exp) == 0 { + ok = false + err = parse.Error("package literal not terminated", start) + return + } + + // Success! + pkg.Expression = NewExpression("package "+exp, start, pi.Position()) + + return pkg, true, nil +}) diff --git a/vendor/github.com/a-h/templ/parser/v2/parser.go b/vendor/github.com/a-h/templ/parser/v2/parser.go new file mode 100644 index 0000000..f805542 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/parser.go @@ -0,0 +1,55 @@ +package parser + +import ( + "github.com/a-h/parse" +) + +// ) { +var expressionFuncEnd = parse.All(parse.Rune(')'), openBraceWithOptionalPadding) + +// Template + +var template = parse.Func(func(pi *parse.Input) (r *HTMLTemplate, matched bool, err error) { + start := pi.Position() + + // templ FuncName(p Person, other Other) { + var te templateExpression + if te, matched, err = templateExpressionParser.Parse(pi); err != nil || !matched { + return r, matched, err + } + r = &HTMLTemplate{ + Expression: te.Expression, + } + defer func() { + r.Range = NewRange(start, pi.Position()) + }() + + // Once we're in a template, we should expect some template whitespace, if/switch/for, + // or node string expressions etc. + var nodes Nodes + nodes, matched, err = newTemplateNodeParser(closeBraceWithOptionalPadding, "template closing brace").Parse(pi) + if err != nil { + // The LSP wants as many nodes as possible, so even though there was an error, + // we probably have some valid nodes that the LSP can use. + r.Children = nodes.Nodes + return r, true, err + } + if !matched { + return r, true, parse.Error("templ: expected nodes in templ body, but found none", pi.Position()) + } + r.Children = nodes.Nodes + + // Eat any whitespace. + _, _, err = parse.OptionalWhitespace.Parse(pi) + if err != nil { + return + } + + // Try for } + if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { + err = parse.Error("template: missing closing brace", pi.Position()) + return + } + + return r, true, nil +}) diff --git a/vendor/github.com/a-h/templ/parser/v2/raw.go b/vendor/github.com/a-h/templ/parser/v2/raw.go new file mode 100644 index 0000000..c18c771 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/raw.go @@ -0,0 +1,67 @@ +package parser + +import ( + "fmt" + + "github.com/a-h/parse" +) + +var styleElement = rawElementParser{ + name: "style", +} + +type rawElementParser struct { + name string +} + +func (p rawElementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + start := pi.Index() + + // < + if _, ok, err = lt.Parse(pi); err != nil || !ok { + return + } + + // Element name. + e := &RawElement{} + if e.Name, ok, err = elementNameParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + if e.Name != p.name { + pi.Seek(start) + ok = false + return + } + + if e.Attributes, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Optional whitespace. + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + pi.Seek(start) + return + } + + // > + if _, ok, err = gt.Parse(pi); err != nil || !ok { + pi.Seek(start) + return + } + + // Once we've got an open tag, parse anything until the end tag as the tag contents. + // It's going to be rendered out raw. + end := parse.All(parse.String("")) + if e.Contents, ok, err = parse.StringUntil(end).Parse(pi); err != nil || !ok { + err = parse.Error(fmt.Sprintf("<%s>: expected end tag not present", e.Name), pi.Position()) + return + } + // Cut the end element. + _, _, _ = end.Parse(pi) + + e.Range = NewRange(pi.PositionAt(start), pi.Position()) + return e, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/scriptparser.go b/vendor/github.com/a-h/templ/parser/v2/scriptparser.go new file mode 100644 index 0000000..68284f8 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/scriptparser.go @@ -0,0 +1,335 @@ +package parser + +import ( + "strings" + + "github.com/a-h/parse" +) + +var scriptElement = scriptElementParser{} + +type jsQuote string + +const ( + jsQuoteNone jsQuote = "" + jsQuoteSingle jsQuote = `'` + jsQuoteDouble jsQuote = `"` + jsQuoteBacktick jsQuote = "`" +) + +type scriptElementParser struct{} + +func (p scriptElementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { + start := pi.Index() + + // < + if _, ok, err = lt.Parse(pi); err != nil || !ok { + return + } + + // Element name. + e := &ScriptElement{} + var name string + if name, ok, err = elementNameParser.Parse(pi); err != nil || !ok { + pi.Seek(start) + return n, false, err + } + + if name != "script" { + pi.Seek(start) + return n, false, nil + } + + if e.Attributes, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { + pi.Seek(start) + return n, false, err + } + + // Optional whitespace. + if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { + pi.Seek(start) + return n, false, err + } + + // > + if _, ok, err = gt.Parse(pi); err != nil || !ok { + pi.Seek(start) + return n, false, parse.Error(" - End of the script, break out of the loop. + // - ' - Start of a single quoted string. + // - " - Start of a double quoted string. + // - ` - Start of a backtick quoted string. + // - // - Start of a single line comment - can read to the end of the line without parsing. + // - /* - Start of a multi-line comment - can read to the end of the comment without parsing. + // - \ - Start of an escape sequence, we can just take the value. + // - Anything else - Add it to the script. + + _, ok, err = jsEndTag.Parse(pi) + if err != nil { + return nil, false, err + } + if ok { + // We've reached the end of the script. + break loop + } + + _, ok, err = endTagStart.Parse(pi) + if err != nil { + return nil, false, err + } + if ok { + return nil, false, parse.Error(" not found", pi.Position()) + } + + // Try for a Go code expression, i.e. {{ goCode }}. + code, ok, err := goCodeInJavaScript.Parse(pi) + if err != nil { + return nil, false, err + } + if ok { + e.Contents = append(e.Contents, NewScriptContentsGo(code.(*GoCode), stringLiteralDelimiter != jsQuoteNone)) + continue loop + } + + // Try for a comment. + comment, ok, err := jsComment.Parse(pi) + if err != nil { + return nil, false, err + } + if ok { + e.Contents = append(e.Contents, NewScriptContentsScriptCode(comment)) + continue loop + } + + // Read JavaScript characters. + charLoop: + for { + before := pi.Index() + + // If we're outside of a string literal, check for a regexp literal. + // Check for a regular expression literal. + if stringLiteralDelimiter == jsQuoteNone { + r, ok, err := regexpLiteral.Parse(pi) + if err != nil { + return nil, false, err + } + if ok { + sb.WriteString(r) + continue charLoop + } + } + + // Check for EOF. + if _, ok, _ = parse.EOF[string]().Parse(pi); ok { + return nil, false, parse.Error("script: unclosed ") + endTagStart = parse.String(" 0 && unicode.IsDigit(r) { + continue + } + return false + } + return true +} + +func ParseString(template string) (*TemplateFile, error) { + tf, matched, err := NewTemplateFileParser("main").Parse(parse.NewInput(template)) + if err != nil { + return tf, err + } + if !matched { + err = ErrTemplateNotFound + } + return tf, err +} + +// NewTemplateFileParser creates a new TemplateFileParser. +func NewTemplateFileParser(pkg string) TemplateFileParser { + return TemplateFileParser{ + DefaultPackage: pkg, + } +} + +var ErrLegacyFileFormat = errors.New("legacy file format - run templ migrate") +var ErrTemplateNotFound = errors.New("template not found") + +type TemplateFileParser struct { + DefaultPackage string +} + +var legacyPackageParser = parse.String("{% package") + +func (p TemplateFileParser) Parse(pi *parse.Input) (tf *TemplateFile, matched bool, err error) { + // If we're parsing a legacy file, complain that migration needs to happen. + _, matched, err = legacyPackageParser.Parse(pi) + if err != nil { + return + } + if matched { + return tf, false, ErrLegacyFileFormat + } + + // Read until the package. + tf = &TemplateFile{} + for { + // Package. + // package name + from := pi.Position() + tf.Package, matched, err = pkg.Parse(pi) + if err != nil { + return + } + if matched { + break + } + + var line string + line, matched, err = stringUntilNewLine.Parse(pi) + if err != nil { + return + } + if !matched { + break + } + var newLine string + newLine, _, _ = parse.NewLine.Parse(pi) + tf.Header = append(tf.Header, &TemplateFileGoExpression{Expression: NewExpression(line+newLine, from, pi.Position()), BeforePackage: true}) + } + + // Strip any whitespace between the template declaration and the first template. + _, _, _ = parse.OptionalWhitespace.Parse(pi) + +outer: + for { + // Optional templates, CSS, and script templates. + // templ Name(p Parameter) + var tn *HTMLTemplate + tn, matched, err = template.Parse(pi) + if err != nil { + tf.Nodes = append(tf.Nodes, tn) + return tf, false, err + } + if matched { + tf.Nodes = append(tf.Nodes, tn) + _, _, _ = parse.OptionalWhitespace.Parse(pi) + continue + } + + // css Name() + var cn *CSSTemplate + cn, matched, err = cssParser.Parse(pi) + if err != nil { + return tf, false, err + } + if matched { + tf.Nodes = append(tf.Nodes, cn) + _, _, _ = parse.OptionalWhitespace.Parse(pi) + continue + } + + // script Name() + var sn *ScriptTemplate + sn, matched, err = scriptTemplateParser.Parse(pi) + if err != nil { + return tf, false, err + } + if matched { + tf.Nodes = append(tf.Nodes, sn) + _, _, _ = parse.OptionalWhitespace.Parse(pi) + continue + } + + // Anything that isn't template content is Go code. + code := new(strings.Builder) + from := pi.Position() + inner: + for { + // Check to see if this line isn't Go code. + last := pi.Index() + var l string + if l, matched, err = stringUntilNewLineOrEOF.Parse(pi); err != nil { + return + } + hasTemplatePrefix := strings.HasPrefix(l, "templ ") || strings.HasPrefix(l, "css ") || strings.HasPrefix(l, "script ") + if hasTemplatePrefix && strings.Contains(l, "(") { + // Unread the line. + pi.Seek(last) + // Take the code so far. + if code.Len() > 0 { + expr := NewExpression(strings.TrimSpace(code.String()), from, pi.Position()) + tf.Nodes = append(tf.Nodes, &TemplateFileGoExpression{Expression: expr}) + } + // Carry on parsing. + break inner + } + code.WriteString(l) + + // Eat the newline or EOF that we read until. + var newLine string + if newLine, matched, err = parse.NewLine.Parse(pi); err != nil { + return + } + code.WriteString(newLine) + if _, isEOF, _ := parse.EOF[string]().Parse(pi); isEOF { + if code.Len() > 0 { + expr := NewExpression(strings.TrimSpace(code.String()), from, pi.Position()) + tf.Nodes = append(tf.Nodes, &TemplateFileGoExpression{Expression: expr}) + } + // Stop parsing. + break outer + } + } + } + + return tf, true, nil +} diff --git a/vendor/github.com/a-h/templ/parser/v2/templateparser.go b/vendor/github.com/a-h/templ/parser/v2/templateparser.go new file mode 100644 index 0000000..59149df --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/templateparser.go @@ -0,0 +1,153 @@ +package parser + +import ( + "fmt" + + "github.com/a-h/parse" +) + +// TemplateExpression. + +// TemplateExpression. +// templ Func(p Parameter) { +// templ (data Data) Func(p Parameter) { +// templ (data []string) Func(p Parameter) { +type templateExpression struct { + Expression Expression +} + +var templateExpressionParser = parse.Func(func(pi *parse.Input) (r templateExpression, matched bool, err error) { + start := pi.Index() + + if !peekPrefix(pi, "templ ") { + return r, false, nil + } + + // Once we have the prefix, everything to the brace is Go. + // e.g. + // templ (x []string) Test() { + // becomes: + // func (x []string) Test() templ.Component { + if _, r.Expression, err = parseTemplFuncDecl(pi); err != nil { + return r, true, err + } + + // Eat " {\n". + if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.StringFrom(parse.Optional(parse.NewLine))).Parse(pi); err != nil || !matched { + return r, true, parse.Error("templ: malformed templ expression, expected `templ functionName() {`", pi.PositionAt(start)) + } + + return r, true, nil +}) + +const ( + unterminatedMissingCurly = `unterminated (missing closing '{\n') - to escape "for", "if", "switch" etc. with braces, e.g. '{ "for" }' - https://templ.guide/syntax-and-usage/statements#ifswitchfor-within-text` + unterminatedMissingEnd = `missing end (expected '}') - https://templ.guide/syntax-and-usage/statements#ifswitchfor-within-text` +) + +// Template node (element, call, if, switch, for, whitespace etc.) +func newTemplateNodeParser[TUntil any](until parse.Parser[TUntil], untilName string) templateNodeParser[TUntil] { + return templateNodeParser[TUntil]{ + until: until, + untilName: untilName, + } +} + +type templateNodeParser[TUntil any] struct { + until parse.Parser[TUntil] + untilName string +} + +var rawElements = parse.Any(styleElement, scriptElement) + +var templateNodeSkipParsers = []parse.Parser[Node]{ + voidElementCloser, //
, etc. - should be ignored. +} + +var templateNodeParsers = []parse.Parser[Node]{ + docType, // + htmlComment, // ") +} + +func (c *HTMLComment) Visit(v Visitor) error { + return v.VisitHTMLComment(c) +} + +// Nodes. + +// CallTemplateExpression can be used to create and render a template using data. +// {! Other(p.First, p.Last) } +// or it can be used to render a template parameter. +// {! v } +type CallTemplateExpression struct { + // Expression returns a template to execute. + Expression Expression + Range Range +} + +func (cte *CallTemplateExpression) IsNode() bool { return true } +func (cte *CallTemplateExpression) Write(w io.Writer, indent int) error { + // Rewrite to new call syntax + return writeIndent(w, indent, `@`, cte.Expression.Value) +} + +func (cte *CallTemplateExpression) Visit(v Visitor) error { + return v.VisitCallTemplateExpression(cte) +} + +// TemplElementExpression can be used to create and render a template using data. +// @Other(p.First, p.Last) +// or it can be used to render a template parameter. +// @v +type TemplElementExpression struct { + // Expression returns a template to execute. + Expression Expression + // Children returns the elements in a block element. + Children []Node + Range Range +} + +func (tee TemplElementExpression) ChildNodes() []Node { + return tee.Children +} +func (tee *TemplElementExpression) IsNode() bool { return true } +func (tee *TemplElementExpression) Write(w io.Writer, indent int) error { + source, err := format.Source([]byte(tee.Expression.Value)) + if err != nil { + source = []byte(tee.Expression.Value) + } + // Indent all lines and re-format, we can then use this to only re-indent lines that gofmt would modify. + reformattedSource, err := format.Source(bytes.ReplaceAll(source, []byte("\n"), []byte("\n\t"))) + if err != nil { + reformattedSource = source + } + sourceLines := bytes.Split(source, []byte("\n")) + reformattedSourceLines := bytes.Split(reformattedSource, []byte("\n")) + for i := range sourceLines { + if i == 0 { + if err := writeIndent(w, indent, "@"+string(sourceLines[i])); err != nil { + return err + } + continue + } + if _, err := io.WriteString(w, "\n"); err != nil { + return err + } + if string(sourceLines[i]) != string(reformattedSourceLines[i]) { + if _, err := w.Write(sourceLines[i]); err != nil { + return err + } + continue + } + if err := writeIndent(w, indent, string(sourceLines[i])); err != nil { + return err + } + } + if len(tee.Children) == 0 { + return nil + } + if _, err = io.WriteString(w, " {\n"); err != nil { + return err + } + if err := writeNodesIndented(w, indent+1, tee.Children); err != nil { + return err + } + if err := writeIndent(w, indent, "}"); err != nil { + return err + } + return nil +} + +func (tee *TemplElementExpression) Visit(v Visitor) error { + return v.VisitTemplElementExpression(tee) +} + +// ChildrenExpression can be used to rended the children of a templ element. +// { children ... } +type ChildrenExpression struct{} + +func (*ChildrenExpression) IsNode() bool { return true } +func (*ChildrenExpression) Write(w io.Writer, indent int) error { + if err := writeIndent(w, indent, "{ children... }"); err != nil { + return err + } + return nil +} + +func (ce *ChildrenExpression) Visit(v Visitor) error { + return v.VisitChildrenExpression(ce) +} + +// if p.Type == "test" && p.thing { +// } +type IfExpression struct { + Expression Expression + Then []Node + ElseIfs []ElseIfExpression + Else []Node + Range Range +} + +type ElseIfExpression struct { + Expression Expression + Then []Node + Range Range +} + +func (n IfExpression) ChildNodes() []Node { + var nodes []Node + nodes = append(nodes, n.Then...) + nodes = append(nodes, n.Else...) + for _, elseIf := range n.ElseIfs { + nodes = append(nodes, elseIf.Then...) + } + return nodes +} +func (n *IfExpression) IsNode() bool { return true } +func (n *IfExpression) Write(w io.Writer, indent int) error { + if err := writeIndent(w, indent, "if ", n.Expression.Value, " {\n"); err != nil { + return err + } + indent++ + if err := writeNodesIndented(w, indent, n.Then); err != nil { + return err + } + indent-- + for _, elseIf := range n.ElseIfs { + if err := writeIndent(w, indent, "} else if ", elseIf.Expression.Value, " {\n"); err != nil { + return err + } + indent++ + if err := writeNodesIndented(w, indent, elseIf.Then); err != nil { + return err + } + indent-- + } + if len(n.Else) > 0 { + if err := writeIndent(w, indent, "} else {\n"); err != nil { + return err + } + if err := writeNodesIndented(w, indent+1, n.Else); err != nil { + return err + } + } + if err := writeIndent(w, indent, "}"); err != nil { + return err + } + return nil +} + +func (n *IfExpression) Visit(v Visitor) error { + return v.VisitIfExpression(n) +} + +// switch p.Type { +// case "Something": +// } +type SwitchExpression struct { + Expression Expression + Cases []CaseExpression + Range Range +} + +func (se SwitchExpression) ChildNodes() []Node { + var nodes []Node + for _, c := range se.Cases { + nodes = append(nodes, c.Children...) + } + return nodes +} +func (se *SwitchExpression) IsNode() bool { return true } +func (se *SwitchExpression) Write(w io.Writer, indent int) error { + if err := writeIndent(w, indent, "switch ", se.Expression.Value, " {\n"); err != nil { + return err + } + indent++ + for _, c := range se.Cases { + if err := writeIndent(w, indent, c.Expression.Value, "\n"); err != nil { + return err + } + if err := writeNodesIndented(w, indent+1, c.Children); err != nil { + return err + } + } + indent-- + if err := writeIndent(w, indent, "}"); err != nil { + return err + } + return nil +} + +func (se *SwitchExpression) Visit(v Visitor) error { + return v.VisitSwitchExpression(se) +} + +// case "Something": +type CaseExpression struct { + Expression Expression + Children []Node +} + +// for i, v := range p.Addresses { +// {! Address(v) } +// } +type ForExpression struct { + Expression Expression + Children []Node + Range Range +} + +func (fe ForExpression) ChildNodes() []Node { + return fe.Children +} +func (fe *ForExpression) IsNode() bool { return true } +func (fe *ForExpression) Write(w io.Writer, indent int) error { + if err := writeIndent(w, indent, "for ", fe.Expression.Value, " {\n"); err != nil { + return err + } + if err := writeNodesIndented(w, indent+1, fe.Children); err != nil { + return err + } + if err := writeIndent(w, indent, "}"); err != nil { + return err + } + return nil +} + +func (fe *ForExpression) Visit(v Visitor) error { + return v.VisitForExpression(fe) +} + +// GoCode is used within HTML elements, and allows arbitrary go code. +// {{ ... }} +type GoCode struct { + Expression Expression + // TrailingSpace lists what happens after the expression. + TrailingSpace TrailingSpace + Multiline bool +} + +func (gc *GoCode) Trailing() TrailingSpace { + return gc.TrailingSpace +} + +func (gc *GoCode) IsNode() bool { return true } +func (gc *GoCode) Write(w io.Writer, indent int) error { + if isWhitespace(gc.Expression.Value) { + gc.Expression.Value = "" + } + if !gc.Multiline { + source, err := format.Source([]byte(gc.Expression.Value)) + if err != nil { + source = []byte(gc.Expression.Value) + } + return writeIndent(w, indent, `{{ `, string(source), ` }}`) + } + source, err := format.Source([]byte(strings.Repeat("\t", indent+1) + gc.Expression.Value)) + if err != nil { + source = []byte(gc.Expression.Value) + } + if err := writeIndent(w, indent, "{{\n"+string(source)+"\n"); err != nil { + return err + } + return writeIndent(w, indent, "}}") +} + +func (gc *GoCode) Visit(v Visitor) error { + return v.VisitGoCode(gc) +} + +// StringExpression is used within HTML elements, and for style values. +// { ... } +type StringExpression struct { + Expression Expression + // TrailingSpace lists what happens after the expression. + TrailingSpace TrailingSpace +} + +func (se *StringExpression) Trailing() TrailingSpace { + return se.TrailingSpace +} + +func (se *StringExpression) IsNode() bool { return true } +func (se *StringExpression) IsStyleDeclarationValue() bool { return true } +func (se *StringExpression) Write(w io.Writer, indent int) error { + if isWhitespace(se.Expression.Value) { + se.Expression.Value = "" + } + return writeIndent(w, indent, `{ `, se.Expression.Value, ` }`) +} + +func (se *StringExpression) Visit(v Visitor) error { + return v.VisitStringExpression(se) +} + +// ScriptTemplate is a script block. +type ScriptTemplate struct { + Range Range + Name Expression + Parameters Expression + Value string +} + +func (s *ScriptTemplate) IsTemplateFileNode() bool { return true } +func (s *ScriptTemplate) Write(w io.Writer, indent int) error { + source := formatFunctionArguments(s.Name.Value + "(" + s.Parameters.Value + ")") + if err := writeIndent(w, indent, "script ", string(source), " {\n"); err != nil { + return err + } + if _, err := io.WriteString(w, s.Value); err != nil { + return err + } + if err := writeIndent(w, indent, "}"); err != nil { + return err + } + return nil +} + +func (s *ScriptTemplate) Visit(v Visitor) error { + return v.VisitScriptTemplate(s) +} + +// formatFunctionArguments formats the function arguments, if possible. +func formatFunctionArguments(expression string) string { + source := []byte(expression) + formatted, err := format.Source([]byte("func " + expression)) + if err == nil { + formatted = bytes.TrimPrefix(formatted, []byte("func ")) + source = formatted + } + return string(source) +} diff --git a/vendor/github.com/a-h/templ/parser/v2/visitor.go b/vendor/github.com/a-h/templ/parser/v2/visitor.go new file mode 100644 index 0000000..185a4fa --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/visitor.go @@ -0,0 +1,35 @@ +package parser + +// Visitor is an interface for visiting nodes in the parse tree. +type Visitor interface { + VisitTemplateFile(*TemplateFile) error + VisitTemplateFileGoExpression(*TemplateFileGoExpression) error + VisitPackage(*Package) error + VisitWhitespace(*Whitespace) error + VisitCSSTemplate(*CSSTemplate) error + VisitConstantCSSProperty(*ConstantCSSProperty) error + VisitExpressionCSSProperty(*ExpressionCSSProperty) error + VisitDocType(*DocType) error + VisitHTMLTemplate(*HTMLTemplate) error + VisitText(*Text) error + VisitElement(*Element) error + VisitScriptElement(*ScriptElement) error + VisitRawElement(*RawElement) error + VisitBoolConstantAttribute(*BoolConstantAttribute) error + VisitConstantAttribute(*ConstantAttribute) error + VisitBoolExpressionAttribute(*BoolExpressionAttribute) error + VisitExpressionAttribute(*ExpressionAttribute) error + VisitSpreadAttributes(*SpreadAttributes) error + VisitConditionalAttribute(*ConditionalAttribute) error + VisitGoComment(*GoComment) error + VisitHTMLComment(*HTMLComment) error + VisitCallTemplateExpression(*CallTemplateExpression) error + VisitTemplElementExpression(*TemplElementExpression) error + VisitChildrenExpression(*ChildrenExpression) error + VisitIfExpression(*IfExpression) error + VisitSwitchExpression(*SwitchExpression) error + VisitForExpression(*ForExpression) error + VisitGoCode(*GoCode) error + VisitStringExpression(*StringExpression) error + VisitScriptTemplate(*ScriptTemplate) error +} diff --git a/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go b/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go new file mode 100644 index 0000000..e836c08 --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go @@ -0,0 +1,349 @@ +package visitor + +import "github.com/a-h/templ/parser/v2" + +// New returns a default Visitor. Each function in the Visitor struct can be +// overridden to provide custom behavior when visiting nodes in the parse tree. +func New() *Visitor { + v := &Visitor{} + + // Set default implementations for all visitor functions. + v.TemplateFile = func(n *parser.TemplateFile) error { + for _, header := range n.Header { + if err := v.VisitTemplateFileGoExpression(header); err != nil { + return err + } + } + if err := v.VisitPackage(&n.Package); err != nil { + return err + } + for _, node := range n.Nodes { + if err := node.Visit(v); err != nil { + return err + } + } + return nil + } + v.TemplateFileGoExpression = func(n *parser.TemplateFileGoExpression) error { + return nil + } + v.Package = func(n *parser.Package) error { + return nil + } + v.Whitespace = func(n *parser.Whitespace) error { + return nil + } + v.CSSTemplate = func(n *parser.CSSTemplate) error { + for _, prop := range n.Properties { + if err := prop.Visit(v); err != nil { + return err + } + } + return nil + } + v.ConstantCSSProperty = func(n *parser.ConstantCSSProperty) error { + return nil + } + v.ExpressionCSSProperty = func(n *parser.ExpressionCSSProperty) error { + if err := n.Value.Visit(v); err != nil { + return err + } + return nil + } + v.DocType = func(n *parser.DocType) error { + return nil + } + v.HTMLTemplate = func(n *parser.HTMLTemplate) error { + for _, child := range n.Children { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.Text = func(n *parser.Text) error { + return nil + } + v.Element = func(n *parser.Element) error { + for _, attr := range n.Attributes { + if err := attr.Visit(v); err != nil { + return err + } + } + for _, child := range n.Children { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.RawElement = func(n *parser.RawElement) error { + for _, attr := range n.Attributes { + if err := attr.Visit(v); err != nil { + return err + } + } + return nil + } + v.ScriptElement = func(n *parser.ScriptElement) error { + for _, attr := range n.Attributes { + if err := attr.Visit(v); err != nil { + return err + } + } + return nil + } + v.BoolConstantAttribute = func(n *parser.BoolConstantAttribute) error { + return nil + } + v.ConstantAttribute = func(n *parser.ConstantAttribute) error { + return nil + } + v.BoolExpressionAttribute = func(n *parser.BoolExpressionAttribute) error { + return nil + } + v.ExpressionAttribute = func(n *parser.ExpressionAttribute) error { + return nil + } + v.SpreadAttributes = func(n *parser.SpreadAttributes) error { + return nil + } + v.ConditionalAttribute = func(n *parser.ConditionalAttribute) error { + for _, child := range n.Then { + if err := child.Visit(v); err != nil { + return err + } + } + for _, child := range n.Else { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.GoComment = func(n *parser.GoComment) error { + return nil + } + v.HTMLComment = func(n *parser.HTMLComment) error { + return nil + } + v.CallTemplateExpression = func(n *parser.CallTemplateExpression) error { + return nil + } + v.TemplElementExpression = func(n *parser.TemplElementExpression) error { + for _, child := range n.Children { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.ChildrenExpression = func(n *parser.ChildrenExpression) error { + return nil + } + v.IfExpression = func(n *parser.IfExpression) error { + for _, child := range n.Then { + if err := child.Visit(v); err != nil { + return err + } + } + for _, child := range n.ElseIfs { + for _, child := range child.Then { + if err := child.Visit(v); err != nil { + return err + } + } + } + for _, child := range n.Else { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.SwitchExpression = func(n *parser.SwitchExpression) error { + for _, node := range n.Cases { + for _, child := range node.Children { + if err := child.Visit(v); err != nil { + return err + } + } + } + return nil + } + v.ForExpression = func(n *parser.ForExpression) error { + for _, child := range n.Children { + if err := child.Visit(v); err != nil { + return err + } + } + return nil + } + v.GoCode = func(n *parser.GoCode) error { + return nil + } + v.StringExpression = func(n *parser.StringExpression) error { + return nil + } + v.ScriptTemplate = func(n *parser.ScriptTemplate) error { + return nil + } + + return v +} + +// Visitor implements the parser.Visitor interface. Each function corresponds to a node type in the parse tree. +// Override these functions to provide custom behavior when visiting nodes. +type Visitor struct { + TemplateFile func(n *parser.TemplateFile) error + TemplateFileGoExpression func(n *parser.TemplateFileGoExpression) error + Package func(n *parser.Package) error + Whitespace func(n *parser.Whitespace) error + CSSTemplate func(n *parser.CSSTemplate) error + ConstantCSSProperty func(n *parser.ConstantCSSProperty) error + ExpressionCSSProperty func(n *parser.ExpressionCSSProperty) error + DocType func(n *parser.DocType) error + HTMLTemplate func(n *parser.HTMLTemplate) error + Text func(n *parser.Text) error + Element func(n *parser.Element) error + RawElement func(n *parser.RawElement) error + ScriptElement func(n *parser.ScriptElement) error + BoolConstantAttribute func(n *parser.BoolConstantAttribute) error + ConstantAttribute func(n *parser.ConstantAttribute) error + BoolExpressionAttribute func(n *parser.BoolExpressionAttribute) error + ExpressionAttribute func(n *parser.ExpressionAttribute) error + SpreadAttributes func(n *parser.SpreadAttributes) error + ConditionalAttribute func(n *parser.ConditionalAttribute) error + GoComment func(n *parser.GoComment) error + HTMLComment func(n *parser.HTMLComment) error + CallTemplateExpression func(n *parser.CallTemplateExpression) error + TemplElementExpression func(n *parser.TemplElementExpression) error + ChildrenExpression func(n *parser.ChildrenExpression) error + IfExpression func(n *parser.IfExpression) error + SwitchExpression func(n *parser.SwitchExpression) error + ForExpression func(n *parser.ForExpression) error + GoCode func(n *parser.GoCode) error + StringExpression func(n *parser.StringExpression) error + ScriptTemplate func(n *parser.ScriptTemplate) error +} + +var _ parser.Visitor = (*Visitor)(nil) + +func (v *Visitor) VisitTemplateFile(n *parser.TemplateFile) error { + return v.TemplateFile(n) +} + +func (v *Visitor) VisitTemplateFileGoExpression(n *parser.TemplateFileGoExpression) error { + return v.TemplateFileGoExpression(n) +} + +func (v *Visitor) VisitPackage(n *parser.Package) error { + return v.Package(n) +} + +func (v *Visitor) VisitWhitespace(n *parser.Whitespace) error { + return v.Whitespace(n) +} + +func (v *Visitor) VisitCSSTemplate(n *parser.CSSTemplate) error { + return v.CSSTemplate(n) +} +func (v *Visitor) VisitConstantCSSProperty(n *parser.ConstantCSSProperty) error { + return v.ConstantCSSProperty(n) +} + +func (v *Visitor) VisitExpressionCSSProperty(n *parser.ExpressionCSSProperty) error { + return v.ExpressionCSSProperty(n) +} + +func (v *Visitor) VisitDocType(n *parser.DocType) error { + return v.DocType(n) +} + +func (v *Visitor) VisitHTMLTemplate(n *parser.HTMLTemplate) error { + return v.HTMLTemplate(n) +} + +func (v *Visitor) VisitText(n *parser.Text) error { + return v.Text(n) +} + +func (v *Visitor) VisitElement(n *parser.Element) error { + return v.Element(n) +} + +func (v *Visitor) VisitRawElement(n *parser.RawElement) error { + return v.RawElement(n) +} + +func (v *Visitor) VisitScriptElement(n *parser.ScriptElement) error { + return v.ScriptElement(n) +} + +func (v *Visitor) VisitBoolConstantAttribute(n *parser.BoolConstantAttribute) error { + return v.BoolConstantAttribute(n) +} + +func (v *Visitor) VisitConstantAttribute(n *parser.ConstantAttribute) error { + return v.ConstantAttribute(n) +} + +func (v *Visitor) VisitBoolExpressionAttribute(n *parser.BoolExpressionAttribute) error { + return v.BoolExpressionAttribute(n) +} + +func (v *Visitor) VisitExpressionAttribute(n *parser.ExpressionAttribute) error { + return v.ExpressionAttribute(n) +} + +func (v *Visitor) VisitSpreadAttributes(n *parser.SpreadAttributes) error { + return v.SpreadAttributes(n) +} + +func (v *Visitor) VisitConditionalAttribute(n *parser.ConditionalAttribute) error { + return v.ConditionalAttribute(n) +} + +func (v *Visitor) VisitGoComment(n *parser.GoComment) error { + return v.GoComment(n) +} + +func (v *Visitor) VisitHTMLComment(n *parser.HTMLComment) error { + return v.HTMLComment(n) +} + +func (v *Visitor) VisitCallTemplateExpression(n *parser.CallTemplateExpression) error { + return v.CallTemplateExpression(n) +} + +func (v *Visitor) VisitTemplElementExpression(n *parser.TemplElementExpression) error { + return v.TemplElementExpression(n) +} + +func (v *Visitor) VisitChildrenExpression(n *parser.ChildrenExpression) error { + return v.ChildrenExpression(n) +} + +func (v *Visitor) VisitIfExpression(n *parser.IfExpression) error { + return v.IfExpression(n) +} + +func (v *Visitor) VisitSwitchExpression(n *parser.SwitchExpression) error { + return v.SwitchExpression(n) +} + +func (v *Visitor) VisitForExpression(n *parser.ForExpression) error { + return v.ForExpression(n) +} + +func (v *Visitor) VisitGoCode(n *parser.GoCode) error { + return v.GoCode(n) +} + +func (v *Visitor) VisitStringExpression(n *parser.StringExpression) error { + return v.StringExpression(n) +} + +func (v *Visitor) VisitScriptTemplate(n *parser.ScriptTemplate) error { + return v.ScriptTemplate(n) +} diff --git a/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go b/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go new file mode 100644 index 0000000..558e12a --- /dev/null +++ b/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go @@ -0,0 +1,12 @@ +package parser + +import "github.com/a-h/parse" + +// Eat any whitespace. +var whitespaceExpression = parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { + r := &Whitespace{} + if r.Value, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { + return + } + return r, len(r.Value) > 0, nil +}) diff --git a/vendor/github.com/a-h/templ/runtime.go b/vendor/github.com/a-h/templ/runtime.go new file mode 100644 index 0000000..c804b08 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime.go @@ -0,0 +1,714 @@ +package templ + +import ( + "bytes" + "context" + "crypto/sha256" + "encoding/hex" + "errors" + "fmt" + "html" + "html/template" + "io" + "net/http" + "reflect" + "sort" + "strings" + "sync" + + "github.com/a-h/templ/safehtml" +) + +// Types exposed by all components. + +// Component is the interface that all templates implement. +type Component interface { + // Render the template. + Render(ctx context.Context, w io.Writer) error +} + +// ComponentFunc converts a function that matches the Component interface's +// Render method into a Component. +type ComponentFunc func(ctx context.Context, w io.Writer) error + +// Render the template. +func (cf ComponentFunc) Render(ctx context.Context, w io.Writer) error { + return cf(ctx, w) +} + +// WithNonce sets a CSP nonce on the context and returns it. +func WithNonce(ctx context.Context, nonce string) context.Context { + ctx, v := getContext(ctx) + v.nonce = nonce + return ctx +} + +// GetNonce returns the CSP nonce value set with WithNonce, or an +// empty string if none has been set. +func GetNonce(ctx context.Context) (nonce string) { + if ctx == nil { + return "" + } + _, v := getContext(ctx) + return v.nonce +} + +func WithChildren(ctx context.Context, children Component) context.Context { + ctx, v := getContext(ctx) + v.children = &children + return ctx +} + +func ClearChildren(ctx context.Context) context.Context { + _, v := getContext(ctx) + v.children = nil + return ctx +} + +// NopComponent is a component that doesn't render anything. +var NopComponent = ComponentFunc(func(ctx context.Context, w io.Writer) error { return nil }) + +// GetChildren from the context. +func GetChildren(ctx context.Context) Component { + _, v := getContext(ctx) + if v.children == nil { + return NopComponent + } + return *v.children +} + +// EscapeString escapes HTML text within templates. +func EscapeString[T ~string](s T) string { + return html.EscapeString(string(s)) +} + +// Bool attribute value. +func Bool(value bool) bool { + return value +} + +// Classes for CSS. +// Supported types are string, ConstantCSSClass, ComponentCSSClass, map[string]bool. +func Classes(classes ...any) CSSClasses { + return CSSClasses(classes) +} + +// CSSClasses is a slice of CSS classes. +type CSSClasses []any + +// String returns the names of all CSS classes. +func (classes CSSClasses) String() string { + if len(classes) == 0 { + return "" + } + cp := newCSSProcessor() + for _, v := range classes { + cp.Add(v) + } + return cp.String() +} + +func newCSSProcessor() *cssProcessor { + return &cssProcessor{ + classNameToEnabled: make(map[string]bool), + } +} + +type cssProcessor struct { + classNameToEnabled map[string]bool + orderedNames []string +} + +func (cp *cssProcessor) Add(item any) { + switch c := item.(type) { + case []string: + for _, className := range c { + cp.AddClassName(className, true) + } + case string: + cp.AddClassName(c, true) + case ConstantCSSClass: + cp.AddClassName(c.ClassName(), true) + case ComponentCSSClass: + cp.AddClassName(c.ClassName(), true) + case map[string]bool: + // In Go, map keys are iterated in a randomized order. + // So the keys in the map must be sorted to produce consistent output. + keys := make([]string, len(c)) + var i int + for key := range c { + keys[i] = key + i++ + } + sort.Strings(keys) + for _, className := range keys { + cp.AddClassName(className, c[className]) + } + case []KeyValue[string, bool]: + for _, kv := range c { + cp.AddClassName(kv.Key, kv.Value) + } + case KeyValue[string, bool]: + cp.AddClassName(c.Key, c.Value) + case []KeyValue[CSSClass, bool]: + for _, kv := range c { + cp.AddClassName(kv.Key.ClassName(), kv.Value) + } + case KeyValue[CSSClass, bool]: + cp.AddClassName(c.Key.ClassName(), c.Value) + case CSSClasses: + for _, item := range c { + cp.Add(item) + } + case []CSSClass: + for _, item := range c { + cp.Add(item) + } + case func() CSSClass: + cp.AddClassName(c().ClassName(), true) + default: + cp.AddClassName(unknownTypeClassName, true) + } +} + +func (cp *cssProcessor) AddClassName(className string, enabled bool) { + cp.classNameToEnabled[className] = enabled + cp.orderedNames = append(cp.orderedNames, className) +} + +func (cp *cssProcessor) String() string { + // Order the outputs according to how they were input, and remove disabled names. + rendered := make(map[string]any, len(cp.classNameToEnabled)) + var names []string + for _, name := range cp.orderedNames { + if enabled := cp.classNameToEnabled[name]; !enabled { + continue + } + if _, hasBeenRendered := rendered[name]; hasBeenRendered { + continue + } + names = append(names, name) + rendered[name] = struct{}{} + } + + return strings.Join(names, " ") +} + +// KeyValue is a key and value pair. +type KeyValue[TKey comparable, TValue any] struct { + Key TKey `json:"name"` + Value TValue `json:"value"` +} + +// KV creates a new key/value pair from the input key and value. +func KV[TKey comparable, TValue any](key TKey, value TValue) KeyValue[TKey, TValue] { + return KeyValue[TKey, TValue]{ + Key: key, + Value: value, + } +} + +const unknownTypeClassName = "--templ-css-class-unknown-type" + +// Class returns a CSS class name. +// Deprecated: use a string instead. +func Class(name string) CSSClass { + return SafeClass(name) +} + +// SafeClass bypasses CSS class name validation. +// Deprecated: use a string instead. +func SafeClass(name string) CSSClass { + return ConstantCSSClass(name) +} + +// CSSClass provides a class name. +type CSSClass interface { + ClassName() string +} + +// ConstantCSSClass is a string constant of a CSS class name. +// Deprecated: use a string instead. +type ConstantCSSClass string + +// ClassName of the CSS class. +func (css ConstantCSSClass) ClassName() string { + return string(css) +} + +// ComponentCSSClass is a templ.CSS +type ComponentCSSClass struct { + // ID of the class, will be autogenerated. + ID string + // Definition of the CSS. + Class SafeCSS +} + +// ClassName of the CSS class. +func (css ComponentCSSClass) ClassName() string { + return css.ID +} + +// CSSID calculates an ID. +func CSSID(name string, css string) string { + sum := sha256.Sum256([]byte(css)) + hs := hex.EncodeToString(sum[:])[0:8] // NOTE: See issue #978. Minimum recommended hs length is 6. + // Benchmarking showed this was fastest, and with fewest allocations (1). + // Using strings.Builder (2 allocs). + // Using fmt.Sprintf (3 allocs). + return name + "_" + hs +} + +// NewCSSMiddleware creates HTTP middleware that renders a global stylesheet of ComponentCSSClass +// CSS if the request path matches, or updates the HTTP context to ensure that any handlers that +// use templ.Components skip rendering `) +} + +func renderCSSItemsToBuilder(sb *strings.Builder, v *contextValue, classes ...any) { + for _, c := range classes { + switch ccc := c.(type) { + case ComponentCSSClass: + if !v.hasClassBeenRendered(ccc.ID) { + sb.WriteString(string(ccc.Class)) + v.addClass(ccc.ID) + } + case KeyValue[ComponentCSSClass, bool]: + if !ccc.Value { + continue + } + renderCSSItemsToBuilder(sb, v, ccc.Key) + case KeyValue[CSSClass, bool]: + if !ccc.Value { + continue + } + renderCSSItemsToBuilder(sb, v, ccc.Key) + case CSSClasses: + renderCSSItemsToBuilder(sb, v, ccc...) + case []CSSClass: + for _, item := range ccc { + renderCSSItemsToBuilder(sb, v, item) + } + case func() CSSClass: + renderCSSItemsToBuilder(sb, v, ccc()) + case []string: + // Skip. These are class names, not CSS classes. + case string: + // Skip. This is a class name, not a CSS class. + case ConstantCSSClass: + // Skip. This is a class name, not a CSS class. + case CSSClass: + // Skip. This is a class name, not a CSS class. + case map[string]bool: + // Skip. These are class names, not CSS classes. + case KeyValue[string, bool]: + // Skip. These are class names, not CSS classes. + case []KeyValue[string, bool]: + // Skip. These are class names, not CSS classes. + case KeyValue[ConstantCSSClass, bool]: + // Skip. These are class names, not CSS classes. + case []KeyValue[ConstantCSSClass, bool]: + // Skip. These are class names, not CSS classes. + } + } +} + +// SafeCSS is CSS that has been sanitized. +type SafeCSS string + +type SafeCSSProperty string + +var safeCSSPropertyType = reflect.TypeOf(SafeCSSProperty("")) + +// SanitizeCSS sanitizes CSS properties to ensure that they are safe. +func SanitizeCSS[T ~string](property string, value T) SafeCSS { + if reflect.TypeOf(value) == safeCSSPropertyType { + return SafeCSS(safehtml.SanitizeCSSProperty(property) + ":" + string(value) + ";") + } + p, v := safehtml.SanitizeCSS(property, string(value)) + return SafeCSS(p + ":" + v + ";") +} + +type Attributer interface { + Items() []KeyValue[string, any] +} + +// Attributes is an alias to map[string]any made for spread attributes. +type Attributes map[string]any + +var _ Attributer = Attributes{} + +// Returns the items of the attributes map in key sorted order. +func (a Attributes) Items() []KeyValue[string, any] { + var ( + items = make([]KeyValue[string, any], len(a)) + i int + ) + for k, v := range a { + items[i] = KeyValue[string, any]{Key: k, Value: v} + i++ + } + sort.Slice(items, func(i, j int) bool { + return items[i].Key < items[j].Key + }) + return items +} + +// OrderedAttributes stores attributes in order of insertion. +type OrderedAttributes []KeyValue[string, any] + +var _ Attributer = OrderedAttributes{} + +func (a OrderedAttributes) Items() []KeyValue[string, any] { + return a +} + +func writeStrings(w io.Writer, ss ...string) (err error) { + for _, s := range ss { + if _, err = io.WriteString(w, s); err != nil { + return err + } + } + return nil +} + +func RenderAttributes(ctx context.Context, w io.Writer, attributes Attributer) (err error) { + for _, item := range attributes.Items() { + key := item.Key + value := item.Value + switch value := value.(type) { + case string: + if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(value), `"`); err != nil { + return err + } + case *string: + if value == nil { + continue + } + if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(*value), `"`); err != nil { + return err + } + case bool: + if !value { + continue + } + if err = writeStrings(w, ` `, EscapeString(key)); err != nil { + return err + } + case *bool: + if value == nil || !*value { + continue + } + if err = writeStrings(w, ` `, EscapeString(key)); err != nil { + return err + } + case int, int8, int16, int32, int64, + uint, uint8, uint16, uint32, uint64, uintptr, + float32, float64, complex64, complex128: + if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(fmt.Sprint(value)), `"`); err != nil { + return err + } + case *int, *int8, *int16, *int32, *int64, + *uint, *uint8, *uint16, *uint32, *uint64, *uintptr, + *float32, *float64, *complex64, *complex128: + value = ptrValue(value) + if value == nil { + continue + } + if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(fmt.Sprint(value)), `"`); err != nil { + return err + } + case KeyValue[string, bool]: + if !value.Value { + continue + } + if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(value.Key), `"`); err != nil { + return err + } + case KeyValue[bool, bool]: + if !value.Value || !value.Key { + continue + } + if err = writeStrings(w, ` `, EscapeString(key)); err != nil { + return err + } + case func() bool: + if !value() { + continue + } + if err = writeStrings(w, ` `, EscapeString(key)); err != nil { + return err + } + } + } + return nil +} + +func ptrValue(v any) any { + if v == nil { + return nil + } + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Ptr { + return v + } + if rv.IsNil() { + return nil + } + return rv.Elem().Interface() +} + +// Context. + +type contextKeyType int + +const contextKey = contextKeyType(0) + +type contextValue struct { + ss map[string]struct{} + onceHandles map[*OnceHandle]struct{} + children *Component + nonce string +} + +func (v *contextValue) setHasBeenRendered(h *OnceHandle) { + if v.onceHandles == nil { + v.onceHandles = map[*OnceHandle]struct{}{} + } + v.onceHandles[h] = struct{}{} +} + +func (v *contextValue) getHasBeenRendered(h *OnceHandle) (ok bool) { + if v.onceHandles == nil { + v.onceHandles = map[*OnceHandle]struct{}{} + } + _, ok = v.onceHandles[h] + return +} + +func (v *contextValue) addScript(s string) { + if v.ss == nil { + v.ss = map[string]struct{}{} + } + v.ss["script_"+s] = struct{}{} +} + +func (v *contextValue) hasScriptBeenRendered(s string) (ok bool) { + if v.ss == nil { + v.ss = map[string]struct{}{} + } + _, ok = v.ss["script_"+s] + return +} + +func (v *contextValue) addClass(s string) { + if v.ss == nil { + v.ss = map[string]struct{}{} + } + v.ss["class_"+s] = struct{}{} +} + +func (v *contextValue) hasClassBeenRendered(s string) (ok bool) { + if v.ss == nil { + v.ss = map[string]struct{}{} + } + _, ok = v.ss["class_"+s] + return +} + +// InitializeContext initializes context used to store internal state used during rendering. +func InitializeContext(ctx context.Context) context.Context { + if _, ok := ctx.Value(contextKey).(*contextValue); ok { + return ctx + } + v := &contextValue{} + ctx = context.WithValue(ctx, contextKey, v) + return ctx +} + +func getContext(ctx context.Context) (context.Context, *contextValue) { + v, ok := ctx.Value(contextKey).(*contextValue) + if !ok { + ctx = InitializeContext(ctx) + v = ctx.Value(contextKey).(*contextValue) + } + return ctx, v +} + +var bufferPool = sync.Pool{ + New: func() any { + return new(bytes.Buffer) + }, +} + +func GetBuffer() *bytes.Buffer { + return bufferPool.Get().(*bytes.Buffer) +} + +func ReleaseBuffer(b *bytes.Buffer) { + b.Reset() + bufferPool.Put(b) +} + +type ints interface { + ~int | ~int8 | ~int16 | ~int32 | ~int64 +} + +type uints interface { + ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr +} + +type floats interface { + ~float32 | ~float64 +} + +type complexNumbers interface { + ~complex64 | ~complex128 +} + +type stringable interface { + ints | uints | floats | complexNumbers | ~string | ~bool +} + +// JoinStringErrs joins an optional list of errors. +func JoinStringErrs[T stringable](s T, errs ...error) (string, error) { + return fmt.Sprint(s), errors.Join(errs...) +} + +// Error returned during template rendering. +type Error struct { + Err error + // FileName of the template file. + FileName string + // Line index of the error. + Line int + // Col index of the error. + Col int +} + +func (e Error) Error() string { + if e.FileName == "" { + e.FileName = "templ" + } + return fmt.Sprintf("%s: error at line %d, col %d: %v", e.FileName, e.Line, e.Col, e.Err) +} + +func (e Error) Unwrap() error { + return e.Err +} + +// Raw renders the input HTML to the output without applying HTML escaping. +// +// Use of this component presents a security risk - the HTML should come from +// a trusted source, because it will be included as-is in the output. +func Raw[T ~string](html T, errs ...error) Component { + return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + if err = errors.Join(errs...); err != nil { + return err + } + _, err = io.WriteString(w, string(html)) + return err + }) +} + +// FromGoHTML creates a templ Component from a Go html/template template. +func FromGoHTML(t *template.Template, data any) Component { + return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + return t.Execute(w, data) + }) +} + +// ToGoHTML renders the component to a Go html/template template.HTML string. +func ToGoHTML(ctx context.Context, c Component) (s template.HTML, err error) { + b := GetBuffer() + defer ReleaseBuffer(b) + if err = c.Render(ctx, b); err != nil { + return + } + s = template.HTML(b.String()) + return +} diff --git a/vendor/github.com/a-h/templ/runtime/buffer.go b/vendor/github.com/a-h/templ/runtime/buffer.go new file mode 100644 index 0000000..63e4acd --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/buffer.go @@ -0,0 +1,62 @@ +package runtime + +import ( + "bufio" + "io" + "net/http" +) + +// DefaultBufferSize is the default size of buffers. It is set to 4KB by default, which is the +// same as the default buffer size of bufio.Writer. +var DefaultBufferSize = 4 * 1024 // 4KB + +// Buffer is a wrapper around bufio.Writer that enables flushing and closing of +// the underlying writer. +type Buffer struct { + Underlying io.Writer + b *bufio.Writer +} + +// Write the contents of p into the buffer. +func (b *Buffer) Write(p []byte) (n int, err error) { + return b.b.Write(p) +} + +// Flush writes any buffered data to the underlying io.Writer and +// calls the Flush method of the underlying http.Flusher if it implements it. +func (b *Buffer) Flush() error { + if err := b.b.Flush(); err != nil { + return err + } + if f, ok := b.Underlying.(http.Flusher); ok { + f.Flush() + } + return nil +} + +// Close closes the buffer and the underlying io.Writer if it implements io.Closer. +func (b *Buffer) Close() error { + if c, ok := b.Underlying.(io.Closer); ok { + return c.Close() + } + return nil +} + +// Reset sets the underlying io.Writer to w and resets the buffer. +func (b *Buffer) Reset(w io.Writer) { + if b.b == nil { + b.b = bufio.NewWriterSize(b, DefaultBufferSize) + } + b.Underlying = w + b.b.Reset(w) +} + +// Size returns the size of the underlying buffer in bytes. +func (b *Buffer) Size() int { + return b.b.Size() +} + +// WriteString writes the contents of s into the buffer. +func (b *Buffer) WriteString(s string) (n int, err error) { + return b.b.WriteString(s) +} diff --git a/vendor/github.com/a-h/templ/runtime/bufferpool.go b/vendor/github.com/a-h/templ/runtime/bufferpool.go new file mode 100644 index 0000000..ca2a131 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/bufferpool.go @@ -0,0 +1,38 @@ +package runtime + +import ( + "io" + "sync" +) + +var bufferPool = sync.Pool{ + New: func() any { + return new(Buffer) + }, +} + +// GetBuffer creates and returns a new buffer if the writer is not already a buffer, +// or returns the existing buffer if it is. +func GetBuffer(w io.Writer) (b *Buffer, existing bool) { + if w == nil { + return nil, false + } + b, ok := w.(*Buffer) + if ok { + return b, true + } + b = bufferPool.Get().(*Buffer) + b.Reset(w) + return b, false +} + +// ReleaseBuffer flushes the buffer and returns it to the pool. +func ReleaseBuffer(w io.Writer) (err error) { + b, ok := w.(*Buffer) + if !ok { + return nil + } + err = b.Flush() + bufferPool.Put(b) + return err +} diff --git a/vendor/github.com/a-h/templ/runtime/builder.go b/vendor/github.com/a-h/templ/runtime/builder.go new file mode 100644 index 0000000..0f4c9d4 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/builder.go @@ -0,0 +1,8 @@ +package runtime + +import "strings" + +// GetBuilder returns a strings.Builder. +func GetBuilder() (sb strings.Builder) { + return sb +} diff --git a/vendor/github.com/a-h/templ/runtime/runtime.go b/vendor/github.com/a-h/templ/runtime/runtime.go new file mode 100644 index 0000000..aaa4a2c --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/runtime.go @@ -0,0 +1,21 @@ +package runtime + +import ( + "context" + "io" + + "github.com/a-h/templ" +) + +// GeneratedComponentInput is used to avoid generated code needing to import the `context` and `io` packages. +type GeneratedComponentInput struct { + Context context.Context + Writer io.Writer +} + +// GeneratedTemplate is used to avoid generated code needing to import the `context` and `io` packages. +func GeneratedTemplate(f func(GeneratedComponentInput) error) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, w io.Writer) error { + return f(GeneratedComponentInput{ctx, w}) + }) +} diff --git a/vendor/github.com/a-h/templ/runtime/scriptelement.go b/vendor/github.com/a-h/templ/runtime/scriptelement.go new file mode 100644 index 0000000..a742e93 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/scriptelement.go @@ -0,0 +1,107 @@ +package runtime + +import ( + "encoding/json" + "errors" + "strings" + "unicode/utf8" +) + +func ScriptContentInsideStringLiteral[T any](v T, errs ...error) (string, error) { + return scriptContent(v, true, errs...) +} + +func ScriptContentOutsideStringLiteral[T any](v T, errs ...error) (string, error) { + return scriptContent(v, false, errs...) +} + +func scriptContent[T any](v T, insideStringLiteral bool, errs ...error) (string, error) { + if errors.Join(errs...) != nil { + return "", errors.Join(errs...) + } + if vs, ok := any(v).(string); ok && insideStringLiteral { + return replace(vs, jsStrReplacementTable), nil + } + jd, err := json.Marshal(v) + if err != nil { + return "", err + } + if insideStringLiteral { + return replace(string(jd), jsStrReplacementTable), nil + } + return string(jd), nil +} + +// See https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/html/template/js.go + +// replace replaces each rune r of s with replacementTable[r], provided that +// r < len(replacementTable). If replacementTable[r] is the empty string then +// no replacement is made. +// It also replaces runes U+2028 and U+2029 with the raw strings `\u2028` and +// `\u2029`. +func replace(s string, replacementTable []string) string { + var b strings.Builder + r, w, written := rune(0), 0, 0 + for i := 0; i < len(s); i += w { + // See comment in htmlEscaper. + r, w = utf8.DecodeRuneInString(s[i:]) + var repl string + switch { + case int(r) < len(lowUnicodeReplacementTable): + repl = lowUnicodeReplacementTable[r] + case int(r) < len(replacementTable) && replacementTable[r] != "": + repl = replacementTable[r] + case r == '\u2028': + repl = `\u2028` + case r == '\u2029': + repl = `\u2029` + default: + continue + } + if written == 0 { + b.Grow(len(s)) + } + b.WriteString(s[written:i]) + b.WriteString(repl) + written = i + w + } + if written == 0 { + return s + } + b.WriteString(s[written:]) + return b.String() +} + +var lowUnicodeReplacementTable = []string{ + 0: `\u0000`, 1: `\u0001`, 2: `\u0002`, 3: `\u0003`, 4: `\u0004`, 5: `\u0005`, 6: `\u0006`, + '\a': `\u0007`, + '\b': `\u0008`, + '\t': `\t`, + '\n': `\n`, + '\v': `\u000b`, // "\v" == "v" on IE 6. + '\f': `\f`, + '\r': `\r`, + 0xe: `\u000e`, 0xf: `\u000f`, 0x10: `\u0010`, 0x11: `\u0011`, 0x12: `\u0012`, 0x13: `\u0013`, + 0x14: `\u0014`, 0x15: `\u0015`, 0x16: `\u0016`, 0x17: `\u0017`, 0x18: `\u0018`, 0x19: `\u0019`, + 0x1a: `\u001a`, 0x1b: `\u001b`, 0x1c: `\u001c`, 0x1d: `\u001d`, 0x1e: `\u001e`, 0x1f: `\u001f`, +} + +var jsStrReplacementTable = []string{ + 0: `\u0000`, + '\t': `\t`, + '\n': `\n`, + '\v': `\u000b`, // "\v" == "v" on IE 6. + '\f': `\f`, + '\r': `\r`, + // Encode HTML specials as hex so the output can be embedded + // in HTML attributes without further encoding. + '"': `\u0022`, + '`': `\u0060`, + '&': `\u0026`, + '\'': `\u0027`, + '+': `\u002b`, + '/': `\/`, + '<': `\u003c`, + '>': `\u003e`, + '\\': `\\`, +} diff --git a/vendor/github.com/a-h/templ/runtime/styleattribute.go b/vendor/github.com/a-h/templ/runtime/styleattribute.go new file mode 100644 index 0000000..c94f4e3 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/styleattribute.go @@ -0,0 +1,217 @@ +package runtime + +import ( + "errors" + "fmt" + "html" + "maps" + "reflect" + "slices" + "strings" + + "github.com/a-h/templ" + "github.com/a-h/templ/safehtml" +) + +// SanitizeStyleAttributeValues renders a style attribute value. +// The supported types are: +// - string +// - templ.SafeCSS +// - map[string]string +// - map[string]templ.SafeCSSProperty +// - templ.KeyValue[string, string] - A map of key/values where the key is the CSS property name and the value is the CSS property value. +// - templ.KeyValue[string, templ.SafeCSSProperty] - A map of key/values where the key is the CSS property name and the value is the CSS property value. +// - templ.KeyValue[string, bool] - The bool determines whether the value should be included. +// - templ.KeyValue[templ.SafeCSS, bool] - The bool determines whether the value should be included. +// - func() (anyOfTheAboveTypes) +// - func() (anyOfTheAboveTypes, error) +// - []anyOfTheAboveTypes +// +// In the above, templ.SafeCSS and templ.SafeCSSProperty are types that are used to indicate that the value is safe to render as CSS without sanitization. +// All other types are sanitized before rendering. +// +// If an error is returned by any function, or a non-nil error is included in the input, the error is returned. +func SanitizeStyleAttributeValues(values ...any) (string, error) { + if err := getJoinedErrorsFromValues(values...); err != nil { + return "", err + } + sb := new(strings.Builder) + for _, v := range values { + if v == nil { + continue + } + if err := sanitizeStyleAttributeValue(sb, v); err != nil { + return "", err + } + } + return sb.String(), nil +} + +func sanitizeStyleAttributeValue(sb *strings.Builder, v any) error { + // Process concrete types. + switch v := v.(type) { + case string: + return processString(sb, v) + + case templ.SafeCSS: + return processSafeCSS(sb, v) + + case map[string]string: + return processStringMap(sb, v) + + case map[string]templ.SafeCSSProperty: + return processSafeCSSPropertyMap(sb, v) + + case templ.KeyValue[string, string]: + return processStringKV(sb, v) + + case templ.KeyValue[string, bool]: + if v.Value { + return processString(sb, v.Key) + } + return nil + + case templ.KeyValue[templ.SafeCSS, bool]: + if v.Value { + return processSafeCSS(sb, v.Key) + } + return nil + } + + // Fall back to reflection. + + // Handle functions first using reflection. + if handled, err := handleFuncWithReflection(sb, v); handled { + return err + } + + // Handle slices using reflection before concrete types. + if handled, err := handleSliceWithReflection(sb, v); handled { + return err + } + + _, err := sb.WriteString(TemplUnsupportedStyleAttributeValue) + return err +} + +func processSafeCSS(sb *strings.Builder, v templ.SafeCSS) error { + if v == "" { + return nil + } + sb.WriteString(html.EscapeString(string(v))) + if !strings.HasSuffix(string(v), ";") { + sb.WriteRune(';') + } + return nil +} + +func processString(sb *strings.Builder, v string) error { + if v == "" { + return nil + } + sanitized := strings.TrimSpace(safehtml.SanitizeStyleValue(v)) + sb.WriteString(html.EscapeString(sanitized)) + if !strings.HasSuffix(sanitized, ";") { + sb.WriteRune(';') + } + return nil +} + +var ErrInvalidStyleAttributeFunctionSignature = errors.New("invalid function signature, should be in the form func() (string, error)") + +// handleFuncWithReflection handles functions using reflection. +func handleFuncWithReflection(sb *strings.Builder, v any) (bool, error) { + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Func { + return false, nil + } + + t := rv.Type() + if t.NumIn() != 0 || (t.NumOut() != 1 && t.NumOut() != 2) { + return false, ErrInvalidStyleAttributeFunctionSignature + } + + // Check the types of the return values + if t.NumOut() == 2 { + // Ensure the second return value is of type `error` + secondReturnType := t.Out(1) + if !secondReturnType.Implements(reflect.TypeOf((*error)(nil)).Elem()) { + return false, fmt.Errorf("second return value must be of type error, got %v", secondReturnType) + } + } + + results := rv.Call(nil) + + if t.NumOut() == 2 { + // Check if the second return value is an error + if errVal := results[1].Interface(); errVal != nil { + if err, ok := errVal.(error); ok && err != nil { + return true, err + } + } + } + + return true, sanitizeStyleAttributeValue(sb, results[0].Interface()) +} + +// handleSliceWithReflection handles slices using reflection. +func handleSliceWithReflection(sb *strings.Builder, v any) (bool, error) { + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Slice { + return false, nil + } + for i := range rv.Len() { + elem := rv.Index(i).Interface() + if err := sanitizeStyleAttributeValue(sb, elem); err != nil { + return true, err + } + } + return true, nil +} + +// processStringMap processes a map[string]string. +func processStringMap(sb *strings.Builder, m map[string]string) error { + for _, name := range slices.Sorted(maps.Keys(m)) { + name, value := safehtml.SanitizeCSS(name, m[name]) + sb.WriteString(html.EscapeString(name)) + sb.WriteRune(':') + sb.WriteString(html.EscapeString(value)) + sb.WriteRune(';') + } + return nil +} + +// processSafeCSSPropertyMap processes a map[string]templ.SafeCSSProperty. +func processSafeCSSPropertyMap(sb *strings.Builder, m map[string]templ.SafeCSSProperty) error { + for _, name := range slices.Sorted(maps.Keys(m)) { + sb.WriteString(html.EscapeString(safehtml.SanitizeCSSProperty(name))) + sb.WriteRune(':') + sb.WriteString(html.EscapeString(string(m[name]))) + sb.WriteRune(';') + } + return nil +} + +// processStringKV processes a templ.KeyValue[string, string]. +func processStringKV(sb *strings.Builder, kv templ.KeyValue[string, string]) error { + name, value := safehtml.SanitizeCSS(kv.Key, kv.Value) + sb.WriteString(html.EscapeString(name)) + sb.WriteRune(':') + sb.WriteString(html.EscapeString(value)) + sb.WriteRune(';') + return nil +} + +// getJoinedErrorsFromValues collects and joins errors from the input values. +func getJoinedErrorsFromValues(values ...any) error { + var errs []error + for _, v := range values { + if err, ok := v.(error); ok { + errs = append(errs, err) + } + } + return errors.Join(errs...) +} + +// TemplUnsupportedStyleAttributeValue is the default value returned for unsupported types. +var TemplUnsupportedStyleAttributeValue = "zTemplUnsupportedStyleAttributeValue:Invalid;" diff --git a/vendor/github.com/a-h/templ/runtime/watchmode.go b/vendor/github.com/a-h/templ/runtime/watchmode.go new file mode 100644 index 0000000..b083eb0 --- /dev/null +++ b/vendor/github.com/a-h/templ/runtime/watchmode.go @@ -0,0 +1,148 @@ +package runtime + +import ( + "crypto/sha256" + "encoding/hex" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "runtime" + "strconv" + "strings" + "sync" + "time" +) + +var developmentMode = os.Getenv("TEMPL_DEV_MODE") == "true" + +func GetDevModeTextFileName(templFileName string) string { + if strings.HasSuffix(templFileName, "_templ.go") { + templFileName = strings.TrimSuffix(templFileName, "_templ.go") + ".templ" + } + absFileName, err := filepath.Abs(templFileName) + if err != nil { + absFileName = templFileName + } + absFileName, err = filepath.EvalSymlinks(absFileName) + if err != nil { + absFileName = templFileName + } + absFileName = normalizePath(absFileName) + + hashedFileName := sha256.Sum256([]byte(absFileName)) + outputFileName := fmt.Sprintf("templ_%s.txt", hex.EncodeToString(hashedFileName[:])) + + root := os.TempDir() + if os.Getenv("TEMPL_DEV_MODE_ROOT") != "" { + root = os.Getenv("TEMPL_DEV_MODE_ROOT") + } + + return filepath.Join(root, outputFileName) +} + +// normalizePath converts Windows paths to Unix style paths. +func normalizePath(p string) string { + p = strings.ReplaceAll(filepath.Clean(p), `\`, `/`) + parts := strings.SplitN(p, ":", 2) + if len(parts) == 2 && len(parts[0]) == 1 { + drive := strings.ToLower(parts[0]) + p = "/" + drive + parts[1] + } + return p +} + +// WriteString writes the string to the writer. If development mode is enabled +// s is replaced with the string at the index in the _templ.txt file. +func WriteString(w io.Writer, index int, s string) (err error) { + if developmentMode { + _, path, _, _ := runtime.Caller(1) + if !strings.HasSuffix(path, "_templ.go") { + return errors.New("templ: attempt to use WriteString from a non templ file") + } + path, err := filepath.EvalSymlinks(path) + if err != nil { + return fmt.Errorf("templ: failed to eval symlinks for %q: %w", path, err) + } + + txtFilePath := GetDevModeTextFileName(path) + literals, err := getWatchedStrings(txtFilePath) + if err != nil { + return fmt.Errorf("templ: failed to get watched strings for %q: %w", path, err) + } + if index > len(literals) { + return fmt.Errorf("templ: failed to find line %d in %s", index, txtFilePath) + } + + s, err = strconv.Unquote(`"` + literals[index-1] + `"`) + if err != nil { + return err + } + } + _, err = io.WriteString(w, s) + return err +} + +var ( + watchModeCache = map[string]watchState{} + watchStateMutex sync.Mutex +) + +type watchState struct { + modTime time.Time + strings []string +} + +func getWatchedStrings(txtFilePath string) ([]string, error) { + watchStateMutex.Lock() + defer watchStateMutex.Unlock() + + state, cached := watchModeCache[txtFilePath] + if !cached { + return cacheStrings(txtFilePath) + } + + if time.Since(state.modTime) < time.Millisecond*100 { + return state.strings, nil + } + + info, err := os.Stat(txtFilePath) + if err != nil { + return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) + } + + if !info.ModTime().After(state.modTime) { + return state.strings, nil + } + + return cacheStrings(txtFilePath) +} + +func cacheStrings(txtFilePath string) ([]string, error) { + txtFile, err := os.Open(txtFilePath) + if err != nil { + return nil, fmt.Errorf("templ: failed to open %s: %w", txtFilePath, err) + } + defer func() { + _ = txtFile.Close() + }() + + info, err := txtFile.Stat() + if err != nil { + return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) + } + + all, err := io.ReadAll(txtFile) + if err != nil { + return nil, fmt.Errorf("templ: failed to read %s: %w", txtFilePath, err) + } + + literals := strings.Split(string(all), "\n") + watchModeCache[txtFilePath] = watchState{ + modTime: info.ModTime(), + strings: literals, + } + + return literals, nil +} diff --git a/vendor/github.com/a-h/templ/safehtml/style.go b/vendor/github.com/a-h/templ/safehtml/style.go new file mode 100644 index 0000000..174c3c4 --- /dev/null +++ b/vendor/github.com/a-h/templ/safehtml/style.go @@ -0,0 +1,199 @@ +// Adapted from https://raw.githubusercontent.com/google/safehtml/3c4cd5b5d8c9a6c5882fba099979e9f50b65c876/style.go + +// Copyright (c) 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 or at +// https://developers.google.com/open-source/licenses/bsd + +package safehtml + +import ( + "bytes" + "fmt" + "net/url" + "regexp" + "strings" +) + +// SanitizeCSS attempts to sanitize CSS properties. +func SanitizeCSS(property, value string) (string, string) { + property = SanitizeCSSProperty(property) + if property == InnocuousPropertyName { + return InnocuousPropertyName, InnocuousPropertyValue + } + return property, SanitizeCSSValue(property, value) +} + +func SanitizeCSSValue(property, value string) string { + if sanitizer, ok := cssPropertyNameToValueSanitizer[property]; ok { + return sanitizer(value) + } + return sanitizeRegular(value) +} + +func SanitizeCSSProperty(property string) string { + if !identifierPattern.MatchString(property) { + return InnocuousPropertyName + } + return strings.ToLower(property) +} + +// identifierPattern matches a subset of valid values defined in +// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram. This pattern matches all generic family name +// keywords defined in https://drafts.csswg.org/css-fonts-3/#family-name-value. +var identifierPattern = regexp.MustCompile(`^[-a-zA-Z]+$`) + +var cssPropertyNameToValueSanitizer = map[string]func(string) string{ + "background-image": sanitizeBackgroundImage, + "font-family": sanitizeFontFamily, + "display": sanitizeEnum, + "background-color": sanitizeRegular, + "background-position": sanitizeRegular, + "background-repeat": sanitizeRegular, + "background-size": sanitizeRegular, + "color": sanitizeRegular, + "height": sanitizeRegular, + "width": sanitizeRegular, + "left": sanitizeRegular, + "right": sanitizeRegular, + "top": sanitizeRegular, + "bottom": sanitizeRegular, + "font-weight": sanitizeRegular, + "padding": sanitizeRegular, + "z-index": sanitizeRegular, +} + +var validURLPrefixes = []string{ + `url("`, + `url('`, + `url(`, +} + +var validURLSuffixes = []string{ + `")`, + `')`, + `)`, +} + +func sanitizeBackgroundImage(v string) string { + // Check for <> as per https://github.com/google/safehtml/blob/be23134998433fcf0135dda53593fc8f8bf4df7c/style.go#L87C2-L89C3 + if strings.ContainsAny(v, "<>") { + return InnocuousPropertyValue + } + for _, u := range strings.Split(v, ",") { + u = strings.TrimSpace(u) + var found bool + for i, prefix := range validURLPrefixes { + if strings.HasPrefix(u, prefix) && strings.HasSuffix(u, validURLSuffixes[i]) { + found = true + u = strings.TrimPrefix(u, validURLPrefixes[i]) + u = strings.TrimSuffix(u, validURLSuffixes[i]) + break + } + } + if !found || !urlIsSafe(u) { + return InnocuousPropertyValue + } + } + return v +} + +func urlIsSafe(s string) bool { + u, err := url.Parse(s) + if err != nil { + return false + } + if u.IsAbs() { + if strings.EqualFold(u.Scheme, "http") || strings.EqualFold(u.Scheme, "https") || strings.EqualFold(u.Scheme, "mailto") { + return true + } + return false + } + return true +} + +var genericFontFamilyName = regexp.MustCompile(`^[a-zA-Z][- a-zA-Z]+$`) + +func sanitizeFontFamily(s string) string { + for _, f := range strings.Split(s, ",") { + f = strings.TrimSpace(f) + if strings.HasPrefix(f, `"`) { + if !strings.HasSuffix(f, `"`) { + return InnocuousPropertyValue + } + continue + } + if !genericFontFamilyName.MatchString(f) { + return InnocuousPropertyValue + } + } + return s +} + +func sanitizeEnum(s string) string { + if !safeEnumPropertyValuePattern.MatchString(s) { + return InnocuousPropertyValue + } + return s +} + +func sanitizeRegular(s string) string { + if !safeRegularPropertyValuePattern.MatchString(s) { + return InnocuousPropertyValue + } + return s +} + +// InnocuousPropertyName is an innocuous property generated by a sanitizer when its input is unsafe. +const InnocuousPropertyName = "zTemplUnsafeCSSPropertyName" + +// InnocuousPropertyValue is an innocuous property generated by a sanitizer when its input is unsafe. +const InnocuousPropertyValue = "zTemplUnsafeCSSPropertyValue" + +// safeRegularPropertyValuePattern matches strings that are safe to use as property values. +// Specifically, it matches string where every '*' or '/' is followed by end-of-text or a safe rune +// (i.e. alphanumerics or runes in the set [+-.!#%_ \t]). This regex ensures that the following +// are disallowed: +// - "/*" and "*/", which are CSS comment markers. +// - "//", even though this is not a comment marker in the CSS specification. Disallowing +// this string minimizes the chance that browser peculiarities or parsing bugs will allow +// sanitization to be bypassed. +// - '(' and ')', which can be used to call functions. +// - ',', since it can be used to inject extra values into a property. +// - Runes which could be matched on CSS error recovery of a previously malformed token, such as '@' +// and ':'. See http://www.w3.org/TR/css3-syntax/#error-handling. +var safeRegularPropertyValuePattern = regexp.MustCompile(`^(?:[*/]?(?:[0-9a-zA-Z+-.!#%_ \t]|$))*$`) + +// safeEnumPropertyValuePattern matches strings that are safe to use as enumerated property values. +// Specifically, it matches strings that contain only alphabetic and '-' runes. +var safeEnumPropertyValuePattern = regexp.MustCompile(`^[a-zA-Z-]*$`) + +// SanitizeStyleValue escapes s so that it is safe to put between "" to form a CSS . +// See syntax at https://www.w3.org/TR/css-syntax-3/#string-token-diagram. +// +// On top of the escape sequences required in , this function also escapes +// control runes to minimize the risk of these runes triggering browser-specific bugs. +// Taken from cssEscapeString in safehtml package. +func SanitizeStyleValue(s string) string { + var b bytes.Buffer + b.Grow(len(s)) + for _, c := range s { + switch { + case c == '\u0000': + // Replace the NULL byte according to https://www.w3.org/TR/css-syntax-3/#input-preprocessing. + // We take this extra precaution in case the user agent fails to handle NULL properly. + b.WriteString("\uFFFD") + case c == '<', // Prevents breaking out of a style element with ``. Escape this in case the Style user forgets to. + c == '"', c == '\\', // Must be CSS-escaped in . U+000A line feed is handled in the next case. + c <= '\u001F', c == '\u007F', // C0 control codes + c >= '\u0080' && c <= '\u009F', // C1 control codes + c == '\u2028', c == '\u2029': // Unicode newline characters + // See CSS escape sequence syntax at https://www.w3.org/TR/css-syntax-3/#escape-diagram. + fmt.Fprintf(&b, "\\%06X", c) + default: + b.WriteRune(c) + } + } + return b.String() +} diff --git a/vendor/github.com/a-h/templ/scripttemplate.go b/vendor/github.com/a-h/templ/scripttemplate.go new file mode 100644 index 0000000..0aafa0b --- /dev/null +++ b/vendor/github.com/a-h/templ/scripttemplate.go @@ -0,0 +1,151 @@ +package templ + +import ( + "context" + "encoding/json" + "fmt" + "html" + "io" + "regexp" + "strings" +) + +// ComponentScript is a templ Script template. +type ComponentScript struct { + // Name of the script, e.g. print. + Name string + // Function to render. + Function string + // Call of the function in JavaScript syntax, including parameters, and + // ensures parameters are HTML escaped; useful for injecting into HTML + // attributes like onclick, onhover, etc. + // + // Given: + // functionName("some string",12345) + // It would render: + // __templ_functionName_sha("some string",12345)) + // + // This is can be injected into HTML attributes: + // + Call string + // Call of the function in JavaScript syntax, including parameters. It + // does not HTML escape parameters; useful for directly calling in script + // elements. + // + // Given: + // functionName("some string",12345) + // It would render: + // __templ_functionName_sha("some string",12345)) + // + // This is can be used to call the function inside a script tag: + // + CallInline string +} + +var _ Component = ComponentScript{} + +func writeScriptHeader(ctx context.Context, w io.Writer) (err error) { + var nonceAttr string + if nonce := GetNonce(ctx); nonce != "" { + nonceAttr = " nonce=\"" + EscapeString(nonce) + "\"" + } + _, err = fmt.Fprintf(w, ``, nonceAttr) + return err +} + +func (c ComponentScript) Render(ctx context.Context, w io.Writer) error { + err := RenderScriptItems(ctx, w, c) + if err != nil { + return err + } + if len(c.Call) > 0 { + if err = writeScriptHeader(ctx, w); err != nil { + return err + } + if _, err = io.WriteString(w, c.CallInline); err != nil { + return err + } + if _, err = io.WriteString(w, ``); err != nil { + return err + } + } + return nil +} + +// RenderScriptItems renders a `); err != nil { + return err + } + } + return nil +} + +// JSExpression represents a JavaScript expression intended for use as an argument for script templates. +// The string value of JSExpression will be inserted directly as JavaScript code in function call arguments. +type JSExpression string + +// SafeScript encodes unknown parameters for safety for inside HTML attributes. +func SafeScript(functionName string, params ...any) string { + if !jsFunctionName.MatchString(functionName) { + functionName = "__templ_invalid_js_function_name" + } + sb := new(strings.Builder) + sb.WriteString(html.EscapeString(functionName)) + sb.WriteRune('(') + for i, p := range params { + sb.WriteString(EscapeString(jsonEncodeParam(p))) + if i < len(params)-1 { + sb.WriteRune(',') + } + } + sb.WriteRune(')') + return sb.String() +} + +// SafeScript encodes unknown parameters for safety for inline scripts. +func SafeScriptInline(functionName string, params ...any) string { + if !jsFunctionName.MatchString(functionName) { + functionName = "__templ_invalid_js_function_name" + } + sb := new(strings.Builder) + sb.WriteString(functionName) + sb.WriteRune('(') + for i, p := range params { + sb.WriteString(jsonEncodeParam(p)) + if i < len(params)-1 { + sb.WriteRune(',') + } + } + sb.WriteRune(')') + return sb.String() +} + +func jsonEncodeParam(param any) string { + if val, ok := param.(JSExpression); ok { + return string(val) + } + enc, _ := json.Marshal(param) + return string(enc) +} + +// isValidJSFunctionName returns true if the given string is a valid JavaScript function name, e.g. console.log, alert, etc. +var jsFunctionName = regexp.MustCompile(`^([$_a-zA-Z][$_a-zA-Z0-9]+\.?)+$`) diff --git a/vendor/github.com/a-h/templ/templ.png b/vendor/github.com/a-h/templ/templ.png new file mode 100644 index 0000000000000000000000000000000000000000..1c4bc2fb737f486727fe89e61c1fde3698089965 GIT binary patch literal 15528 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 HLIVE}euqS~ literal 0 HcmV?d00001 diff --git a/vendor/github.com/a-h/templ/url.go b/vendor/github.com/a-h/templ/url.go new file mode 100644 index 0000000..860323d --- /dev/null +++ b/vendor/github.com/a-h/templ/url.go @@ -0,0 +1,31 @@ +package templ + +import ( + "errors" + "strings" +) + +// FailedSanitizationURL is returned if a URL fails sanitization checks. +const FailedSanitizationURL = SafeURL("about:invalid#TemplFailedSanitizationURL") + +// URL sanitizes the input string s and returns a SafeURL. +func URL(s string) SafeURL { + if i := strings.IndexRune(s, ':'); i >= 0 && !strings.ContainsRune(s[:i], '/') { + protocol := s[:i] + if !strings.EqualFold(protocol, "http") && !strings.EqualFold(protocol, "https") && !strings.EqualFold(protocol, "mailto") && !strings.EqualFold(protocol, "tel") && !strings.EqualFold(protocol, "ftp") && !strings.EqualFold(protocol, "ftps") { + return FailedSanitizationURL + } + } + return SafeURL(s) +} + +// SafeURL is a URL that has been sanitized. +type SafeURL string + +// JoinURLErrs joins an optional list of errors and returns a sanitized SafeURL. +func JoinURLErrs[T ~string](s T, errs ...error) (SafeURL, error) { + if safeURL, ok := any(s).(SafeURL); ok { + return safeURL, errors.Join(errs...) + } + return URL(string(s)), errors.Join(errs...) +} diff --git a/vendor/github.com/a-h/templ/version.go b/vendor/github.com/a-h/templ/version.go new file mode 100644 index 0000000..b7fbb6f --- /dev/null +++ b/vendor/github.com/a-h/templ/version.go @@ -0,0 +1,10 @@ +package templ + +import _ "embed" + +//go:embed .version +var version string + +func Version() string { + return "v" + version +} diff --git a/vendor/github.com/a-h/templ/watchmode.go b/vendor/github.com/a-h/templ/watchmode.go new file mode 100644 index 0000000..a94dab2 --- /dev/null +++ b/vendor/github.com/a-h/templ/watchmode.go @@ -0,0 +1,105 @@ +package templ + +import ( + "errors" + "fmt" + "io" + "os" + "runtime" + "strconv" + "strings" + "sync" + "time" +) + +// WriteWatchModeString is used when rendering templates in development mode. +// the generator would have written non-go code to the _templ.txt file, which +// is then read by this function and written to the output. +// +// Deprecated: since templ v0.3.x generated code uses WriteString. +func WriteWatchModeString(w io.Writer, lineNum int) error { + _, path, _, _ := runtime.Caller(1) + if !strings.HasSuffix(path, "_templ.go") { + return errors.New("templ: WriteWatchModeString can only be called from _templ.go") + } + txtFilePath := strings.Replace(path, "_templ.go", "_templ.txt", 1) + + literals, err := getWatchedStrings(txtFilePath) + if err != nil { + return fmt.Errorf("templ: failed to cache strings: %w", err) + } + + if lineNum > len(literals) { + return fmt.Errorf("templ: failed to find line %d in %s", lineNum, txtFilePath) + } + + s, err := strconv.Unquote(`"` + literals[lineNum-1] + `"`) + if err != nil { + return err + } + _, err = io.WriteString(w, s) + return err +} + +var ( + watchModeCache = map[string]watchState{} + watchStateMutex sync.Mutex +) + +type watchState struct { + modTime time.Time + strings []string +} + +func getWatchedStrings(txtFilePath string) ([]string, error) { + watchStateMutex.Lock() + defer watchStateMutex.Unlock() + + state, cached := watchModeCache[txtFilePath] + if !cached { + return cacheStrings(txtFilePath) + } + + if time.Since(state.modTime) < time.Millisecond*100 { + return state.strings, nil + } + + info, err := os.Stat(txtFilePath) + if err != nil { + return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) + } + + if !info.ModTime().After(state.modTime) { + return state.strings, nil + } + + return cacheStrings(txtFilePath) +} + +func cacheStrings(txtFilePath string) ([]string, error) { + txtFile, err := os.Open(txtFilePath) + if err != nil { + return nil, fmt.Errorf("templ: failed to open %s: %w", txtFilePath, err) + } + defer func() { + _ = txtFile.Close() + }() + + info, err := txtFile.Stat() + if err != nil { + return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) + } + + all, err := io.ReadAll(txtFile) + if err != nil { + return nil, fmt.Errorf("templ: failed to read %s: %w", txtFilePath, err) + } + + literals := strings.Split(string(all), "\n") + watchModeCache[txtFilePath] = watchState{ + modTime: info.ModTime(), + strings: literals, + } + + return literals, nil +} diff --git a/vendor/github.com/andybalholm/brotli/LICENSE b/vendor/github.com/andybalholm/brotli/LICENSE new file mode 100644 index 0000000..33b7cdd --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +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/andybalholm/brotli/README.md b/vendor/github.com/andybalholm/brotli/README.md new file mode 100644 index 0000000..0062521 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/README.md @@ -0,0 +1,14 @@ +This package is a brotli compressor and decompressor implemented in Go. +It was translated from the reference implementation (https://github.com/google/brotli) +with the `c2go` tool at https://github.com/andybalholm/c2go. + +I have been working on new compression algorithms (not translated from C) +in the matchfinder package. +You can use them with the NewWriterV2 function. +Currently they give better results than the old implementation +(at least for compressing my test file, Newton’s *Opticks*) +on levels 2 to 6. + +I am using it in production with https://github.com/andybalholm/redwood. + +API documentation is found at https://pkg.go.dev/github.com/andybalholm/brotli?tab=doc. diff --git a/vendor/github.com/andybalholm/brotli/backward_references.go b/vendor/github.com/andybalholm/brotli/backward_references.go new file mode 100644 index 0000000..008c054 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/backward_references.go @@ -0,0 +1,185 @@ +package brotli + +import ( + "sync" +) + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function to find backward reference copies. */ + +func computeDistanceCode(distance uint, max_distance uint, dist_cache []int) uint { + if distance <= max_distance { + var distance_plus_3 uint = distance + 3 + var offset0 uint = distance_plus_3 - uint(dist_cache[0]) + var offset1 uint = distance_plus_3 - uint(dist_cache[1]) + if distance == uint(dist_cache[0]) { + return 0 + } else if distance == uint(dist_cache[1]) { + return 1 + } else if offset0 < 7 { + return (0x9750468 >> (4 * offset0)) & 0xF + } else if offset1 < 7 { + return (0xFDB1ACE >> (4 * offset1)) & 0xF + } else if distance == uint(dist_cache[2]) { + return 2 + } else if distance == uint(dist_cache[3]) { + return 3 + } + } + + return distance + numDistanceShortCodes - 1 +} + +var hasherSearchResultPool sync.Pool + +func createBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { + var max_backward_limit uint = maxBackwardLimit(params.lgwin) + var insert_length uint = *last_insert_len + var pos_end uint = position + num_bytes + var store_end uint + if num_bytes >= hasher.StoreLookahead() { + store_end = position + num_bytes - hasher.StoreLookahead() + 1 + } else { + store_end = position + } + var random_heuristics_window_size uint = literalSpreeLengthForSparseSearch(params) + var apply_random_heuristics uint = position + random_heuristics_window_size + var gap uint = 0 + /* Set maximum distance, see section 9.1. of the spec. */ + + const kMinScore uint = scoreBase + 100 + + /* For speed up heuristics for random data. */ + + /* Minimum score to accept a backward reference. */ + hasher.PrepareDistanceCache(dist_cache) + sr2, _ := hasherSearchResultPool.Get().(*hasherSearchResult) + if sr2 == nil { + sr2 = &hasherSearchResult{} + } + sr, _ := hasherSearchResultPool.Get().(*hasherSearchResult) + if sr == nil { + sr = &hasherSearchResult{} + } + + for position+hasher.HashTypeLength() < pos_end { + var max_length uint = pos_end - position + var max_distance uint = brotli_min_size_t(position, max_backward_limit) + sr.len = 0 + sr.len_code_delta = 0 + sr.distance = 0 + sr.score = kMinScore + hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position, max_length, max_distance, gap, params.dist.max_distance, sr) + if sr.score > kMinScore { + /* Found a match. Let's look for something even better ahead. */ + var delayed_backward_references_in_row int = 0 + max_length-- + for ; ; max_length-- { + var cost_diff_lazy uint = 175 + if params.quality < minQualityForExtensiveReferenceSearch { + sr2.len = brotli_min_size_t(sr.len-1, max_length) + } else { + sr2.len = 0 + } + sr2.len_code_delta = 0 + sr2.distance = 0 + sr2.score = kMinScore + max_distance = brotli_min_size_t(position+1, max_backward_limit) + hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position+1, max_length, max_distance, gap, params.dist.max_distance, sr2) + if sr2.score >= sr.score+cost_diff_lazy { + /* Ok, let's just write one byte for now and start a match from the + next byte. */ + position++ + + insert_length++ + *sr = *sr2 + delayed_backward_references_in_row++ + if delayed_backward_references_in_row < 4 && position+hasher.HashTypeLength() < pos_end { + continue + } + } + + break + } + + apply_random_heuristics = position + 2*sr.len + random_heuristics_window_size + max_distance = brotli_min_size_t(position, max_backward_limit) + { + /* The first 16 codes are special short-codes, + and the minimum offset is 1. */ + var distance_code uint = computeDistanceCode(sr.distance, max_distance+gap, dist_cache) + if (sr.distance <= (max_distance + gap)) && distance_code > 0 { + dist_cache[3] = dist_cache[2] + dist_cache[2] = dist_cache[1] + dist_cache[1] = dist_cache[0] + dist_cache[0] = int(sr.distance) + hasher.PrepareDistanceCache(dist_cache) + } + + *commands = append(*commands, makeCommand(¶ms.dist, insert_length, sr.len, sr.len_code_delta, distance_code)) + } + + *num_literals += insert_length + insert_length = 0 + /* Put the hash keys into the table, if there are enough bytes left. + Depending on the hasher implementation, it can push all positions + in the given range or only a subset of them. + Avoid hash poisoning with RLE data. */ + { + var range_start uint = position + 2 + var range_end uint = brotli_min_size_t(position+sr.len, store_end) + if sr.distance < sr.len>>2 { + range_start = brotli_min_size_t(range_end, brotli_max_size_t(range_start, position+sr.len-(sr.distance<<2))) + } + + hasher.StoreRange(ringbuffer, ringbuffer_mask, range_start, range_end) + } + + position += sr.len + } else { + insert_length++ + position++ + + /* If we have not seen matches for a long time, we can skip some + match lookups. Unsuccessful match lookups are very very expensive + and this kind of a heuristic speeds up compression quite + a lot. */ + if position > apply_random_heuristics { + /* Going through uncompressible data, jump. */ + if position > apply_random_heuristics+4*random_heuristics_window_size { + var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 4) + /* It is quite a long time since we saw a copy, so we assume + that this data is not compressible, and store hashes less + often. Hashes of non compressible data are less likely to + turn out to be useful in the future, too, so we store less of + them to not to flood out the hash table of good compressible + data. */ + + var pos_jump uint = brotli_min_size_t(position+16, pos_end-kMargin) + for ; position < pos_jump; position += 4 { + hasher.Store(ringbuffer, ringbuffer_mask, position) + insert_length += 4 + } + } else { + var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 2) + var pos_jump uint = brotli_min_size_t(position+8, pos_end-kMargin) + for ; position < pos_jump; position += 2 { + hasher.Store(ringbuffer, ringbuffer_mask, position) + insert_length += 2 + } + } + } + } + } + + insert_length += pos_end - position + *last_insert_len = insert_length + + hasherSearchResultPool.Put(sr) + hasherSearchResultPool.Put(sr2) +} diff --git a/vendor/github.com/andybalholm/brotli/backward_references_hq.go b/vendor/github.com/andybalholm/brotli/backward_references_hq.go new file mode 100644 index 0000000..21629c1 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/backward_references_hq.go @@ -0,0 +1,796 @@ +package brotli + +import "math" + +type zopfliNode struct { + length uint32 + distance uint32 + dcode_insert_length uint32 + u struct { + cost float32 + next uint32 + shortcut uint32 + } +} + +const maxEffectiveDistanceAlphabetSize = 544 + +const kInfinity float32 = 1.7e38 /* ~= 2 ^ 127 */ + +var kDistanceCacheIndex = []uint32{0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1} + +var kDistanceCacheOffset = []int{0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3} + +func initZopfliNodes(array []zopfliNode, length uint) { + var stub zopfliNode + var i uint + stub.length = 1 + stub.distance = 0 + stub.dcode_insert_length = 0 + stub.u.cost = kInfinity + for i = 0; i < length; i++ { + array[i] = stub + } +} + +func zopfliNodeCopyLength(self *zopfliNode) uint32 { + return self.length & 0x1FFFFFF +} + +func zopfliNodeLengthCode(self *zopfliNode) uint32 { + var modifier uint32 = self.length >> 25 + return zopfliNodeCopyLength(self) + 9 - modifier +} + +func zopfliNodeCopyDistance(self *zopfliNode) uint32 { + return self.distance +} + +func zopfliNodeDistanceCode(self *zopfliNode) uint32 { + var short_code uint32 = self.dcode_insert_length >> 27 + if short_code == 0 { + return zopfliNodeCopyDistance(self) + numDistanceShortCodes - 1 + } else { + return short_code - 1 + } +} + +func zopfliNodeCommandLength(self *zopfliNode) uint32 { + return zopfliNodeCopyLength(self) + (self.dcode_insert_length & 0x7FFFFFF) +} + +/* Histogram based cost model for zopflification. */ +type zopfliCostModel struct { + cost_cmd_ [numCommandSymbols]float32 + cost_dist_ []float32 + distance_histogram_size uint32 + literal_costs_ []float32 + min_cost_cmd_ float32 + num_bytes_ uint +} + +func initZopfliCostModel(self *zopfliCostModel, dist *distanceParams, num_bytes uint) { + var distance_histogram_size uint32 = dist.alphabet_size + if distance_histogram_size > maxEffectiveDistanceAlphabetSize { + distance_histogram_size = maxEffectiveDistanceAlphabetSize + } + + self.num_bytes_ = num_bytes + self.literal_costs_ = make([]float32, (num_bytes + 2)) + self.cost_dist_ = make([]float32, (dist.alphabet_size)) + self.distance_histogram_size = distance_histogram_size +} + +func cleanupZopfliCostModel(self *zopfliCostModel) { + self.literal_costs_ = nil + self.cost_dist_ = nil +} + +func setCost(histogram []uint32, histogram_size uint, literal_histogram bool, cost []float32) { + var sum uint = 0 + var missing_symbol_sum uint + var log2sum float32 + var missing_symbol_cost float32 + var i uint + for i = 0; i < histogram_size; i++ { + sum += uint(histogram[i]) + } + + log2sum = float32(fastLog2(sum)) + missing_symbol_sum = sum + if !literal_histogram { + for i = 0; i < histogram_size; i++ { + if histogram[i] == 0 { + missing_symbol_sum++ + } + } + } + + missing_symbol_cost = float32(fastLog2(missing_symbol_sum)) + 2 + for i = 0; i < histogram_size; i++ { + if histogram[i] == 0 { + cost[i] = missing_symbol_cost + continue + } + + /* Shannon bits for this symbol. */ + cost[i] = log2sum - float32(fastLog2(uint(histogram[i]))) + + /* Cannot be coded with less than 1 bit */ + if cost[i] < 1 { + cost[i] = 1 + } + } +} + +func zopfliCostModelSetFromCommands(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint, commands []command, last_insert_len uint) { + var histogram_literal [numLiteralSymbols]uint32 + var histogram_cmd [numCommandSymbols]uint32 + var histogram_dist [maxEffectiveDistanceAlphabetSize]uint32 + var cost_literal [numLiteralSymbols]float32 + var pos uint = position - last_insert_len + var min_cost_cmd float32 = kInfinity + var cost_cmd []float32 = self.cost_cmd_[:] + var literal_costs []float32 + + histogram_literal = [numLiteralSymbols]uint32{} + histogram_cmd = [numCommandSymbols]uint32{} + histogram_dist = [maxEffectiveDistanceAlphabetSize]uint32{} + + for i := range commands { + var inslength uint = uint(commands[i].insert_len_) + var copylength uint = uint(commandCopyLen(&commands[i])) + var distcode uint = uint(commands[i].dist_prefix_) & 0x3FF + var cmdcode uint = uint(commands[i].cmd_prefix_) + var j uint + + histogram_cmd[cmdcode]++ + if cmdcode >= 128 { + histogram_dist[distcode]++ + } + + for j = 0; j < inslength; j++ { + histogram_literal[ringbuffer[(pos+j)&ringbuffer_mask]]++ + } + + pos += inslength + copylength + } + + setCost(histogram_literal[:], numLiteralSymbols, true, cost_literal[:]) + setCost(histogram_cmd[:], numCommandSymbols, false, cost_cmd) + setCost(histogram_dist[:], uint(self.distance_histogram_size), false, self.cost_dist_) + + for i := 0; i < numCommandSymbols; i++ { + min_cost_cmd = brotli_min_float(min_cost_cmd, cost_cmd[i]) + } + + self.min_cost_cmd_ = min_cost_cmd + { + literal_costs = self.literal_costs_ + var literal_carry float32 = 0.0 + num_bytes := int(self.num_bytes_) + literal_costs[0] = 0.0 + for i := 0; i < num_bytes; i++ { + literal_carry += cost_literal[ringbuffer[(position+uint(i))&ringbuffer_mask]] + literal_costs[i+1] = literal_costs[i] + literal_carry + literal_carry -= literal_costs[i+1] - literal_costs[i] + } + } +} + +func zopfliCostModelSetFromLiteralCosts(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint) { + var literal_costs []float32 = self.literal_costs_ + var literal_carry float32 = 0.0 + var cost_dist []float32 = self.cost_dist_ + var cost_cmd []float32 = self.cost_cmd_[:] + var num_bytes uint = self.num_bytes_ + var i uint + estimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, ringbuffer, literal_costs[1:]) + literal_costs[0] = 0.0 + for i = 0; i < num_bytes; i++ { + literal_carry += literal_costs[i+1] + literal_costs[i+1] = literal_costs[i] + literal_carry + literal_carry -= literal_costs[i+1] - literal_costs[i] + } + + for i = 0; i < numCommandSymbols; i++ { + cost_cmd[i] = float32(fastLog2(uint(11 + uint32(i)))) + } + + for i = 0; uint32(i) < self.distance_histogram_size; i++ { + cost_dist[i] = float32(fastLog2(uint(20 + uint32(i)))) + } + + self.min_cost_cmd_ = float32(fastLog2(11)) +} + +func zopfliCostModelGetCommandCost(self *zopfliCostModel, cmdcode uint16) float32 { + return self.cost_cmd_[cmdcode] +} + +func zopfliCostModelGetDistanceCost(self *zopfliCostModel, distcode uint) float32 { + return self.cost_dist_[distcode] +} + +func zopfliCostModelGetLiteralCosts(self *zopfliCostModel, from uint, to uint) float32 { + return self.literal_costs_[to] - self.literal_costs_[from] +} + +func zopfliCostModelGetMinCostCmd(self *zopfliCostModel) float32 { + return self.min_cost_cmd_ +} + +/* REQUIRES: len >= 2, start_pos <= pos */ +/* REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity */ +/* Maintains the "ZopfliNode array invariant". */ +func updateZopfliNode(nodes []zopfliNode, pos uint, start_pos uint, len uint, len_code uint, dist uint, short_code uint, cost float32) { + var next *zopfliNode = &nodes[pos+len] + next.length = uint32(len | (len+9-len_code)<<25) + next.distance = uint32(dist) + next.dcode_insert_length = uint32(short_code<<27 | (pos - start_pos)) + next.u.cost = cost +} + +type posData struct { + pos uint + distance_cache [4]int + costdiff float32 + cost float32 +} + +/* Maintains the smallest 8 cost difference together with their positions */ +type startPosQueue struct { + q_ [8]posData + idx_ uint +} + +func initStartPosQueue(self *startPosQueue) { + self.idx_ = 0 +} + +func startPosQueueSize(self *startPosQueue) uint { + return brotli_min_size_t(self.idx_, 8) +} + +func startPosQueuePush(self *startPosQueue, posdata *posData) { + var offset uint = ^(self.idx_) & 7 + self.idx_++ + var len uint = startPosQueueSize(self) + var i uint + var q []posData = self.q_[:] + q[offset] = *posdata + + /* Restore the sorted order. In the list of |len| items at most |len - 1| + adjacent element comparisons / swaps are required. */ + for i = 1; i < len; i++ { + if q[offset&7].costdiff > q[(offset+1)&7].costdiff { + var tmp posData = q[offset&7] + q[offset&7] = q[(offset+1)&7] + q[(offset+1)&7] = tmp + } + + offset++ + } +} + +func startPosQueueAt(self *startPosQueue, k uint) *posData { + return &self.q_[(k-self.idx_)&7] +} + +/* Returns the minimum possible copy length that can improve the cost of any */ +/* future position. */ +func computeMinimumCopyLength(start_cost float32, nodes []zopfliNode, num_bytes uint, pos uint) uint { + var min_cost float32 = start_cost + var len uint = 2 + var next_len_bucket uint = 4 + /* Compute the minimum possible cost of reaching any future position. */ + + var next_len_offset uint = 10 + for pos+len <= num_bytes && nodes[pos+len].u.cost <= min_cost { + /* We already reached (pos + len) with no more cost than the minimum + possible cost of reaching anything from this pos, so there is no point in + looking for lengths <= len. */ + len++ + + if len == next_len_offset { + /* We reached the next copy length code bucket, so we add one more + extra bit to the minimum cost. */ + min_cost += 1.0 + + next_len_offset += next_len_bucket + next_len_bucket *= 2 + } + } + + return uint(len) +} + +/* REQUIRES: nodes[pos].cost < kInfinity + REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ +func computeDistanceShortcut(block_start uint, pos uint, max_backward_limit uint, gap uint, nodes []zopfliNode) uint32 { + var clen uint = uint(zopfliNodeCopyLength(&nodes[pos])) + var ilen uint = uint(nodes[pos].dcode_insert_length & 0x7FFFFFF) + var dist uint = uint(zopfliNodeCopyDistance(&nodes[pos])) + + /* Since |block_start + pos| is the end position of the command, the copy part + starts from |block_start + pos - clen|. Distances that are greater than + this or greater than |max_backward_limit| + |gap| are static dictionary + references, and do not update the last distances. + Also distance code 0 (last distance) does not update the last distances. */ + if pos == 0 { + return 0 + } else if dist+clen <= block_start+pos+gap && dist <= max_backward_limit+gap && zopfliNodeDistanceCode(&nodes[pos]) > 0 { + return uint32(pos) + } else { + return nodes[pos-clen-ilen].u.shortcut + } +} + +/* Fills in dist_cache[0..3] with the last four distances (as defined by + Section 4. of the Spec) that would be used at (block_start + pos) if we + used the shortest path of commands from block_start, computed from + nodes[0..pos]. The last four distances at block_start are in + starting_dist_cache[0..3]. + REQUIRES: nodes[pos].cost < kInfinity + REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ +func computeDistanceCache(pos uint, starting_dist_cache []int, nodes []zopfliNode, dist_cache []int) { + var idx int = 0 + var p uint = uint(nodes[pos].u.shortcut) + for idx < 4 && p > 0 { + var ilen uint = uint(nodes[p].dcode_insert_length & 0x7FFFFFF) + var clen uint = uint(zopfliNodeCopyLength(&nodes[p])) + var dist uint = uint(zopfliNodeCopyDistance(&nodes[p])) + dist_cache[idx] = int(dist) + idx++ + + /* Because of prerequisite, p >= clen + ilen >= 2. */ + p = uint(nodes[p-clen-ilen].u.shortcut) + } + + for ; idx < 4; idx++ { + dist_cache[idx] = starting_dist_cache[0] + starting_dist_cache = starting_dist_cache[1:] + } +} + +/* Maintains "ZopfliNode array invariant" and pushes node to the queue, if it + is eligible. */ +func evaluateNode(block_start uint, pos uint, max_backward_limit uint, gap uint, starting_dist_cache []int, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) { + /* Save cost, because ComputeDistanceCache invalidates it. */ + var node_cost float32 = nodes[pos].u.cost + nodes[pos].u.shortcut = computeDistanceShortcut(block_start, pos, max_backward_limit, gap, nodes) + if node_cost <= zopfliCostModelGetLiteralCosts(model, 0, pos) { + var posdata posData + posdata.pos = pos + posdata.cost = node_cost + posdata.costdiff = node_cost - zopfliCostModelGetLiteralCosts(model, 0, pos) + computeDistanceCache(pos, starting_dist_cache, nodes, posdata.distance_cache[:]) + startPosQueuePush(queue, &posdata) + } +} + +/* Returns longest copy length. */ +func updateNodes(num_bytes uint, block_start uint, pos uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, max_backward_limit uint, starting_dist_cache []int, num_matches uint, matches []backwardMatch, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) uint { + var cur_ix uint = block_start + pos + var cur_ix_masked uint = cur_ix & ringbuffer_mask + var max_distance uint = brotli_min_size_t(cur_ix, max_backward_limit) + var max_len uint = num_bytes - pos + var max_zopfli_len uint = maxZopfliLen(params) + var max_iters uint = maxZopfliCandidates(params) + var min_len uint + var result uint = 0 + var k uint + var gap uint = 0 + + evaluateNode(block_start, pos, max_backward_limit, gap, starting_dist_cache, model, queue, nodes) + { + var posdata *posData = startPosQueueAt(queue, 0) + var min_cost float32 = (posdata.cost + zopfliCostModelGetMinCostCmd(model) + zopfliCostModelGetLiteralCosts(model, posdata.pos, pos)) + min_len = computeMinimumCopyLength(min_cost, nodes, num_bytes, pos) + } + + /* Go over the command starting positions in order of increasing cost + difference. */ + for k = 0; k < max_iters && k < startPosQueueSize(queue); k++ { + var posdata *posData = startPosQueueAt(queue, k) + var start uint = posdata.pos + var inscode uint16 = getInsertLengthCode(pos - start) + var start_costdiff float32 = posdata.costdiff + var base_cost float32 = start_costdiff + float32(getInsertExtra(inscode)) + zopfliCostModelGetLiteralCosts(model, 0, pos) + var best_len uint = min_len - 1 + var j uint = 0 + /* Look for last distance matches using the distance cache from this + starting position. */ + for ; j < numDistanceShortCodes && best_len < max_len; j++ { + var idx uint = uint(kDistanceCacheIndex[j]) + var backward uint = uint(posdata.distance_cache[idx] + kDistanceCacheOffset[j]) + var prev_ix uint = cur_ix - backward + var len uint = 0 + var continuation byte = ringbuffer[cur_ix_masked+best_len] + if cur_ix_masked+best_len > ringbuffer_mask { + break + } + + if backward > max_distance+gap { + /* Word dictionary -> ignore. */ + continue + } + + if backward <= max_distance { + /* Regular backward reference. */ + if prev_ix >= cur_ix { + continue + } + + prev_ix &= ringbuffer_mask + if prev_ix+best_len > ringbuffer_mask || continuation != ringbuffer[prev_ix+best_len] { + continue + } + + len = findMatchLengthWithLimit(ringbuffer[prev_ix:], ringbuffer[cur_ix_masked:], max_len) + } else { + continue + } + { + var dist_cost float32 = base_cost + zopfliCostModelGetDistanceCost(model, j) + var l uint + for l = best_len + 1; l <= len; l++ { + var copycode uint16 = getCopyLengthCode(l) + var cmdcode uint16 = combineLengthCodes(inscode, copycode, j == 0) + var tmp float32 + if cmdcode < 128 { + tmp = base_cost + } else { + tmp = dist_cost + } + var cost float32 = tmp + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) + if cost < nodes[pos+l].u.cost { + updateZopfliNode(nodes, pos, start, l, l, backward, j+1, cost) + result = brotli_max_size_t(result, l) + } + + best_len = l + } + } + } + + /* At higher iterations look only for new last distance matches, since + looking only for new command start positions with the same distances + does not help much. */ + if k >= 2 { + continue + } + { + /* Loop through all possible copy lengths at this position. */ + var len uint = min_len + for j = 0; j < num_matches; j++ { + var match backwardMatch = matches[j] + var dist uint = uint(match.distance) + var is_dictionary_match bool = (dist > max_distance+gap) + var dist_code uint = dist + numDistanceShortCodes - 1 + var dist_symbol uint16 + var distextra uint32 + var distnumextra uint32 + var dist_cost float32 + var max_match_len uint + /* We already tried all possible last distance matches, so we can use + normal distance code here. */ + prefixEncodeCopyDistance(dist_code, uint(params.dist.num_direct_distance_codes), uint(params.dist.distance_postfix_bits), &dist_symbol, &distextra) + + distnumextra = uint32(dist_symbol) >> 10 + dist_cost = base_cost + float32(distnumextra) + zopfliCostModelGetDistanceCost(model, uint(dist_symbol)&0x3FF) + + /* Try all copy lengths up until the maximum copy length corresponding + to this distance. If the distance refers to the static dictionary, or + the maximum length is long enough, try only one maximum length. */ + max_match_len = backwardMatchLength(&match) + + if len < max_match_len && (is_dictionary_match || max_match_len > max_zopfli_len) { + len = max_match_len + } + + for ; len <= max_match_len; len++ { + var len_code uint + if is_dictionary_match { + len_code = backwardMatchLengthCode(&match) + } else { + len_code = len + } + var copycode uint16 = getCopyLengthCode(len_code) + var cmdcode uint16 = combineLengthCodes(inscode, copycode, false) + var cost float32 = dist_cost + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) + if cost < nodes[pos+len].u.cost { + updateZopfliNode(nodes, pos, start, uint(len), len_code, dist, 0, cost) + if len > result { + result = len + } + } + } + } + } + } + + return result +} + +func computeShortestPathFromNodes(num_bytes uint, nodes []zopfliNode) uint { + var index uint = num_bytes + var num_commands uint = 0 + for nodes[index].dcode_insert_length&0x7FFFFFF == 0 && nodes[index].length == 1 { + index-- + } + nodes[index].u.next = math.MaxUint32 + for index != 0 { + var len uint = uint(zopfliNodeCommandLength(&nodes[index])) + index -= uint(len) + nodes[index].u.next = uint32(len) + num_commands++ + } + + return num_commands +} + +/* REQUIRES: nodes != NULL and len(nodes) >= num_bytes + 1 */ +func zopfliCreateCommands(num_bytes uint, block_start uint, nodes []zopfliNode, dist_cache []int, last_insert_len *uint, params *encoderParams, commands *[]command, num_literals *uint) { + var max_backward_limit uint = maxBackwardLimit(params.lgwin) + var pos uint = 0 + var offset uint32 = nodes[0].u.next + var i uint + var gap uint = 0 + for i = 0; offset != math.MaxUint32; i++ { + var next *zopfliNode = &nodes[uint32(pos)+offset] + var copy_length uint = uint(zopfliNodeCopyLength(next)) + var insert_length uint = uint(next.dcode_insert_length & 0x7FFFFFF) + pos += insert_length + offset = next.u.next + if i == 0 { + insert_length += *last_insert_len + *last_insert_len = 0 + } + { + var distance uint = uint(zopfliNodeCopyDistance(next)) + var len_code uint = uint(zopfliNodeLengthCode(next)) + var max_distance uint = brotli_min_size_t(block_start+pos, max_backward_limit) + var is_dictionary bool = (distance > max_distance+gap) + var dist_code uint = uint(zopfliNodeDistanceCode(next)) + *commands = append(*commands, makeCommand(¶ms.dist, insert_length, copy_length, int(len_code)-int(copy_length), dist_code)) + + if !is_dictionary && dist_code > 0 { + dist_cache[3] = dist_cache[2] + dist_cache[2] = dist_cache[1] + dist_cache[1] = dist_cache[0] + dist_cache[0] = int(distance) + } + } + + *num_literals += insert_length + pos += copy_length + } + + *last_insert_len += num_bytes - pos +} + +func zopfliIterate(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, gap uint, dist_cache []int, model *zopfliCostModel, num_matches []uint32, matches []backwardMatch, nodes []zopfliNode) uint { + var max_backward_limit uint = maxBackwardLimit(params.lgwin) + var max_zopfli_len uint = maxZopfliLen(params) + var queue startPosQueue + var cur_match_pos uint = 0 + var i uint + nodes[0].length = 0 + nodes[0].u.cost = 0 + initStartPosQueue(&queue) + for i = 0; i+3 < num_bytes; i++ { + var skip uint = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, uint(num_matches[i]), matches[cur_match_pos:], model, &queue, nodes) + if skip < longCopyQuickStep { + skip = 0 + } + cur_match_pos += uint(num_matches[i]) + if num_matches[i] == 1 && backwardMatchLength(&matches[cur_match_pos-1]) > max_zopfli_len { + skip = brotli_max_size_t(backwardMatchLength(&matches[cur_match_pos-1]), skip) + } + + if skip > 1 { + skip-- + for skip != 0 { + i++ + if i+3 >= num_bytes { + break + } + evaluateNode(position, i, max_backward_limit, gap, dist_cache, model, &queue, nodes) + cur_match_pos += uint(num_matches[i]) + skip-- + } + } + } + + return computeShortestPathFromNodes(num_bytes, nodes) +} + +/* Computes the shortest path of commands from position to at most + position + num_bytes. + + On return, path->size() is the number of commands found and path[i] is the + length of the i-th command (copy length plus insert length). + Note that the sum of the lengths of all commands can be less than num_bytes. + + On return, the nodes[0..num_bytes] array will have the following + "ZopfliNode array invariant": + For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then + (1) nodes[i].copy_length() >= 2 + (2) nodes[i].command_length() <= i and + (3) nodes[i - nodes[i].command_length()].cost < kInfinity + + REQUIRES: nodes != nil and len(nodes) >= num_bytes + 1 */ +func zopfliComputeShortestPath(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, dist_cache []int, hasher *h10, nodes []zopfliNode) uint { + var max_backward_limit uint = maxBackwardLimit(params.lgwin) + var max_zopfli_len uint = maxZopfliLen(params) + var model zopfliCostModel + var queue startPosQueue + var matches [2 * (maxNumMatchesH10 + 64)]backwardMatch + var store_end uint + if num_bytes >= hasher.StoreLookahead() { + store_end = position + num_bytes - hasher.StoreLookahead() + 1 + } else { + store_end = position + } + var i uint + var gap uint = 0 + var lz_matches_offset uint = 0 + nodes[0].length = 0 + nodes[0].u.cost = 0 + initZopfliCostModel(&model, ¶ms.dist, num_bytes) + zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) + initStartPosQueue(&queue) + for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { + var pos uint = position + i + var max_distance uint = brotli_min_size_t(pos, max_backward_limit) + var skip uint + var num_matches uint + num_matches = findAllMatchesH10(hasher, ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, num_bytes-i, max_distance, gap, params, matches[lz_matches_offset:]) + if num_matches > 0 && backwardMatchLength(&matches[num_matches-1]) > max_zopfli_len { + matches[0] = matches[num_matches-1] + num_matches = 1 + } + + skip = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, num_matches, matches[:], &model, &queue, nodes) + if skip < longCopyQuickStep { + skip = 0 + } + if num_matches == 1 && backwardMatchLength(&matches[0]) > max_zopfli_len { + skip = brotli_max_size_t(backwardMatchLength(&matches[0]), skip) + } + + if skip > 1 { + /* Add the tail of the copy to the hasher. */ + hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+skip, store_end)) + + skip-- + for skip != 0 { + i++ + if i+hasher.HashTypeLength()-1 >= num_bytes { + break + } + evaluateNode(position, i, max_backward_limit, gap, dist_cache, &model, &queue, nodes) + skip-- + } + } + } + + cleanupZopfliCostModel(&model) + return computeShortestPathFromNodes(num_bytes, nodes) +} + +func createZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher *h10, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { + var nodes []zopfliNode + nodes = make([]zopfliNode, (num_bytes + 1)) + initZopfliNodes(nodes, num_bytes+1) + zopfliComputeShortestPath(num_bytes, position, ringbuffer, ringbuffer_mask, params, dist_cache, hasher, nodes) + zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) + nodes = nil +} + +func createHqZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { + var max_backward_limit uint = maxBackwardLimit(params.lgwin) + var num_matches []uint32 = make([]uint32, num_bytes) + var matches_size uint = 4 * num_bytes + var store_end uint + if num_bytes >= hasher.StoreLookahead() { + store_end = position + num_bytes - hasher.StoreLookahead() + 1 + } else { + store_end = position + } + var cur_match_pos uint = 0 + var i uint + var orig_num_literals uint + var orig_last_insert_len uint + var orig_dist_cache [4]int + var orig_num_commands int + var model zopfliCostModel + var nodes []zopfliNode + var matches []backwardMatch = make([]backwardMatch, matches_size) + var gap uint = 0 + var shadow_matches uint = 0 + var new_array []backwardMatch + for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { + var pos uint = position + i + var max_distance uint = brotli_min_size_t(pos, max_backward_limit) + var max_length uint = num_bytes - i + var num_found_matches uint + var cur_match_end uint + var j uint + + /* Ensure that we have enough free slots. */ + if matches_size < cur_match_pos+maxNumMatchesH10+shadow_matches { + var new_size uint = matches_size + if new_size == 0 { + new_size = cur_match_pos + maxNumMatchesH10 + shadow_matches + } + + for new_size < cur_match_pos+maxNumMatchesH10+shadow_matches { + new_size *= 2 + } + + new_array = make([]backwardMatch, new_size) + if matches_size != 0 { + copy(new_array, matches[:matches_size]) + } + + matches = new_array + matches_size = new_size + } + + num_found_matches = findAllMatchesH10(hasher.(*h10), ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, max_length, max_distance, gap, params, matches[cur_match_pos+shadow_matches:]) + cur_match_end = cur_match_pos + num_found_matches + for j = cur_match_pos; j+1 < cur_match_end; j++ { + assert(backwardMatchLength(&matches[j]) <= backwardMatchLength(&matches[j+1])) + } + + num_matches[i] = uint32(num_found_matches) + if num_found_matches > 0 { + var match_len uint = backwardMatchLength(&matches[cur_match_end-1]) + if match_len > maxZopfliLenQuality11 { + var skip uint = match_len - 1 + matches[cur_match_pos] = matches[cur_match_end-1] + cur_match_pos++ + num_matches[i] = 1 + + /* Add the tail of the copy to the hasher. */ + hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+match_len, store_end)) + var pos uint = i + for i := 0; i < int(skip); i++ { + num_matches[pos+1:][i] = 0 + } + i += skip + } else { + cur_match_pos = cur_match_end + } + } + } + + orig_num_literals = *num_literals + orig_last_insert_len = *last_insert_len + copy(orig_dist_cache[:], dist_cache[:4]) + orig_num_commands = len(*commands) + nodes = make([]zopfliNode, (num_bytes + 1)) + initZopfliCostModel(&model, ¶ms.dist, num_bytes) + for i = 0; i < 2; i++ { + initZopfliNodes(nodes, num_bytes+1) + if i == 0 { + zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) + } else { + zopfliCostModelSetFromCommands(&model, position, ringbuffer, ringbuffer_mask, (*commands)[orig_num_commands:], orig_last_insert_len) + } + + *commands = (*commands)[:orig_num_commands] + *num_literals = orig_num_literals + *last_insert_len = orig_last_insert_len + copy(dist_cache, orig_dist_cache[:4]) + zopfliIterate(num_bytes, position, ringbuffer, ringbuffer_mask, params, gap, dist_cache, &model, num_matches, matches, nodes) + zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) + } + + cleanupZopfliCostModel(&model) + nodes = nil + matches = nil + num_matches = nil +} diff --git a/vendor/github.com/andybalholm/brotli/bit_cost.go b/vendor/github.com/andybalholm/brotli/bit_cost.go new file mode 100644 index 0000000..0005fc1 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/bit_cost.go @@ -0,0 +1,436 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Functions to estimate the bit cost of Huffman trees. */ +func shannonEntropy(population []uint32, size uint, total *uint) float64 { + var sum uint = 0 + var retval float64 = 0 + var population_end []uint32 = population[size:] + var p uint + for -cap(population) < -cap(population_end) { + p = uint(population[0]) + population = population[1:] + sum += p + retval -= float64(p) * fastLog2(p) + } + + if sum != 0 { + retval += float64(sum) * fastLog2(sum) + } + *total = sum + return retval +} + +func bitsEntropy(population []uint32, size uint) float64 { + var sum uint + var retval float64 = shannonEntropy(population, size, &sum) + if retval < float64(sum) { + /* At least one bit per literal is needed. */ + retval = float64(sum) + } + + return retval +} + +const kOneSymbolHistogramCost float64 = 12 +const kTwoSymbolHistogramCost float64 = 20 +const kThreeSymbolHistogramCost float64 = 28 +const kFourSymbolHistogramCost float64 = 37 + +func populationCostLiteral(histogram *histogramLiteral) float64 { + var data_size uint = histogramDataSizeLiteral() + var count int = 0 + var s [5]uint + var bits float64 = 0.0 + var i uint + if histogram.total_count_ == 0 { + return kOneSymbolHistogramCost + } + + for i = 0; i < data_size; i++ { + if histogram.data_[i] > 0 { + s[count] = i + count++ + if count > 4 { + break + } + } + } + + if count == 1 { + return kOneSymbolHistogramCost + } + + if count == 2 { + return kTwoSymbolHistogramCost + float64(histogram.total_count_) + } + + if count == 3 { + var histo0 uint32 = histogram.data_[s[0]] + var histo1 uint32 = histogram.data_[s[1]] + var histo2 uint32 = histogram.data_[s[2]] + var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) + return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) + } + + if count == 4 { + var histo [4]uint32 + var h23 uint32 + var histomax uint32 + for i = 0; i < 4; i++ { + histo[i] = histogram.data_[s[i]] + } + + /* Sort */ + for i = 0; i < 4; i++ { + var j uint + for j = i + 1; j < 4; j++ { + if histo[j] > histo[i] { + var tmp uint32 = histo[j] + histo[j] = histo[i] + histo[i] = tmp + } + } + } + + h23 = histo[2] + histo[3] + histomax = brotli_max_uint32_t(h23, histo[0]) + return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) + } + { + var max_depth uint = 1 + var depth_histo = [codeLengthCodes]uint32{0} + /* In this loop we compute the entropy of the histogram and simultaneously + build a simplified histogram of the code length codes where we use the + zero repeat code 17, but we don't use the non-zero repeat code 16. */ + + var log2total float64 = fastLog2(histogram.total_count_) + for i = 0; i < data_size; { + if histogram.data_[i] > 0 { + var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) + /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = + = log2(total_count) - log2(count(symbol)) */ + + var depth uint = uint(log2p + 0.5) + /* Approximate the bit depth by round(-log2(P(symbol))) */ + bits += float64(histogram.data_[i]) * log2p + + if depth > 15 { + depth = 15 + } + + if depth > max_depth { + max_depth = depth + } + + depth_histo[depth]++ + i++ + } else { + var reps uint32 = 1 + /* Compute the run length of zeros and add the appropriate number of 0 + and 17 code length codes to the code length code histogram. */ + + var k uint + for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { + reps++ + } + + i += uint(reps) + if i == data_size { + /* Don't add any cost for the last zero run, since these are encoded + only implicitly. */ + break + } + + if reps < 3 { + depth_histo[0] += reps + } else { + reps -= 2 + for reps > 0 { + depth_histo[repeatZeroCodeLength]++ + + /* Add the 3 extra bits for the 17 code length code. */ + bits += 3 + + reps >>= 3 + } + } + } + } + + /* Add the estimated encoding cost of the code length code histogram. */ + bits += float64(18 + 2*max_depth) + + /* Add the entropy of the code length code histogram. */ + bits += bitsEntropy(depth_histo[:], codeLengthCodes) + } + + return bits +} + +func populationCostCommand(histogram *histogramCommand) float64 { + var data_size uint = histogramDataSizeCommand() + var count int = 0 + var s [5]uint + var bits float64 = 0.0 + var i uint + if histogram.total_count_ == 0 { + return kOneSymbolHistogramCost + } + + for i = 0; i < data_size; i++ { + if histogram.data_[i] > 0 { + s[count] = i + count++ + if count > 4 { + break + } + } + } + + if count == 1 { + return kOneSymbolHistogramCost + } + + if count == 2 { + return kTwoSymbolHistogramCost + float64(histogram.total_count_) + } + + if count == 3 { + var histo0 uint32 = histogram.data_[s[0]] + var histo1 uint32 = histogram.data_[s[1]] + var histo2 uint32 = histogram.data_[s[2]] + var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) + return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) + } + + if count == 4 { + var histo [4]uint32 + var h23 uint32 + var histomax uint32 + for i = 0; i < 4; i++ { + histo[i] = histogram.data_[s[i]] + } + + /* Sort */ + for i = 0; i < 4; i++ { + var j uint + for j = i + 1; j < 4; j++ { + if histo[j] > histo[i] { + var tmp uint32 = histo[j] + histo[j] = histo[i] + histo[i] = tmp + } + } + } + + h23 = histo[2] + histo[3] + histomax = brotli_max_uint32_t(h23, histo[0]) + return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) + } + { + var max_depth uint = 1 + var depth_histo = [codeLengthCodes]uint32{0} + /* In this loop we compute the entropy of the histogram and simultaneously + build a simplified histogram of the code length codes where we use the + zero repeat code 17, but we don't use the non-zero repeat code 16. */ + + var log2total float64 = fastLog2(histogram.total_count_) + for i = 0; i < data_size; { + if histogram.data_[i] > 0 { + var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) + /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = + = log2(total_count) - log2(count(symbol)) */ + + var depth uint = uint(log2p + 0.5) + /* Approximate the bit depth by round(-log2(P(symbol))) */ + bits += float64(histogram.data_[i]) * log2p + + if depth > 15 { + depth = 15 + } + + if depth > max_depth { + max_depth = depth + } + + depth_histo[depth]++ + i++ + } else { + var reps uint32 = 1 + /* Compute the run length of zeros and add the appropriate number of 0 + and 17 code length codes to the code length code histogram. */ + + var k uint + for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { + reps++ + } + + i += uint(reps) + if i == data_size { + /* Don't add any cost for the last zero run, since these are encoded + only implicitly. */ + break + } + + if reps < 3 { + depth_histo[0] += reps + } else { + reps -= 2 + for reps > 0 { + depth_histo[repeatZeroCodeLength]++ + + /* Add the 3 extra bits for the 17 code length code. */ + bits += 3 + + reps >>= 3 + } + } + } + } + + /* Add the estimated encoding cost of the code length code histogram. */ + bits += float64(18 + 2*max_depth) + + /* Add the entropy of the code length code histogram. */ + bits += bitsEntropy(depth_histo[:], codeLengthCodes) + } + + return bits +} + +func populationCostDistance(histogram *histogramDistance) float64 { + var data_size uint = histogramDataSizeDistance() + var count int = 0 + var s [5]uint + var bits float64 = 0.0 + var i uint + if histogram.total_count_ == 0 { + return kOneSymbolHistogramCost + } + + for i = 0; i < data_size; i++ { + if histogram.data_[i] > 0 { + s[count] = i + count++ + if count > 4 { + break + } + } + } + + if count == 1 { + return kOneSymbolHistogramCost + } + + if count == 2 { + return kTwoSymbolHistogramCost + float64(histogram.total_count_) + } + + if count == 3 { + var histo0 uint32 = histogram.data_[s[0]] + var histo1 uint32 = histogram.data_[s[1]] + var histo2 uint32 = histogram.data_[s[2]] + var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) + return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) + } + + if count == 4 { + var histo [4]uint32 + var h23 uint32 + var histomax uint32 + for i = 0; i < 4; i++ { + histo[i] = histogram.data_[s[i]] + } + + /* Sort */ + for i = 0; i < 4; i++ { + var j uint + for j = i + 1; j < 4; j++ { + if histo[j] > histo[i] { + var tmp uint32 = histo[j] + histo[j] = histo[i] + histo[i] = tmp + } + } + } + + h23 = histo[2] + histo[3] + histomax = brotli_max_uint32_t(h23, histo[0]) + return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) + } + { + var max_depth uint = 1 + var depth_histo = [codeLengthCodes]uint32{0} + /* In this loop we compute the entropy of the histogram and simultaneously + build a simplified histogram of the code length codes where we use the + zero repeat code 17, but we don't use the non-zero repeat code 16. */ + + var log2total float64 = fastLog2(histogram.total_count_) + for i = 0; i < data_size; { + if histogram.data_[i] > 0 { + var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) + /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = + = log2(total_count) - log2(count(symbol)) */ + + var depth uint = uint(log2p + 0.5) + /* Approximate the bit depth by round(-log2(P(symbol))) */ + bits += float64(histogram.data_[i]) * log2p + + if depth > 15 { + depth = 15 + } + + if depth > max_depth { + max_depth = depth + } + + depth_histo[depth]++ + i++ + } else { + var reps uint32 = 1 + /* Compute the run length of zeros and add the appropriate number of 0 + and 17 code length codes to the code length code histogram. */ + + var k uint + for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { + reps++ + } + + i += uint(reps) + if i == data_size { + /* Don't add any cost for the last zero run, since these are encoded + only implicitly. */ + break + } + + if reps < 3 { + depth_histo[0] += reps + } else { + reps -= 2 + for reps > 0 { + depth_histo[repeatZeroCodeLength]++ + + /* Add the 3 extra bits for the 17 code length code. */ + bits += 3 + + reps >>= 3 + } + } + } + } + + /* Add the estimated encoding cost of the code length code histogram. */ + bits += float64(18 + 2*max_depth) + + /* Add the entropy of the code length code histogram. */ + bits += bitsEntropy(depth_histo[:], codeLengthCodes) + } + + return bits +} diff --git a/vendor/github.com/andybalholm/brotli/bit_reader.go b/vendor/github.com/andybalholm/brotli/bit_reader.go new file mode 100644 index 0000000..fba8687 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/bit_reader.go @@ -0,0 +1,266 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Bit reading helpers */ + +const shortFillBitWindowRead = (8 >> 1) + +var kBitMask = [33]uint32{ + 0x00000000, + 0x00000001, + 0x00000003, + 0x00000007, + 0x0000000F, + 0x0000001F, + 0x0000003F, + 0x0000007F, + 0x000000FF, + 0x000001FF, + 0x000003FF, + 0x000007FF, + 0x00000FFF, + 0x00001FFF, + 0x00003FFF, + 0x00007FFF, + 0x0000FFFF, + 0x0001FFFF, + 0x0003FFFF, + 0x0007FFFF, + 0x000FFFFF, + 0x001FFFFF, + 0x003FFFFF, + 0x007FFFFF, + 0x00FFFFFF, + 0x01FFFFFF, + 0x03FFFFFF, + 0x07FFFFFF, + 0x0FFFFFFF, + 0x1FFFFFFF, + 0x3FFFFFFF, + 0x7FFFFFFF, + 0xFFFFFFFF, +} + +func bitMask(n uint32) uint32 { + return kBitMask[n] +} + +type bitReader struct { + val_ uint64 + bit_pos_ uint32 + input []byte + input_len uint + byte_pos uint +} + +type bitReaderState struct { + val_ uint64 + bit_pos_ uint32 + input []byte + input_len uint + byte_pos uint +} + +/* Initializes the BrotliBitReader fields. */ + +/* Ensures that accumulator is not empty. + May consume up to sizeof(brotli_reg_t) - 1 bytes of input. + Returns false if data is required but there is no input available. + For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned + reading. */ +func bitReaderSaveState(from *bitReader, to *bitReaderState) { + to.val_ = from.val_ + to.bit_pos_ = from.bit_pos_ + to.input = from.input + to.input_len = from.input_len + to.byte_pos = from.byte_pos +} + +func bitReaderRestoreState(to *bitReader, from *bitReaderState) { + to.val_ = from.val_ + to.bit_pos_ = from.bit_pos_ + to.input = from.input + to.input_len = from.input_len + to.byte_pos = from.byte_pos +} + +func getAvailableBits(br *bitReader) uint32 { + return 64 - br.bit_pos_ +} + +/* Returns amount of unread bytes the bit reader still has buffered from the + BrotliInput, including whole bytes in br->val_. */ +func getRemainingBytes(br *bitReader) uint { + return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3)) +} + +/* Checks if there is at least |num| bytes left in the input ring-buffer + (excluding the bits remaining in br->val_). */ +func checkInputAmount(br *bitReader, num uint) bool { + return br.input_len-br.byte_pos >= num +} + +/* Guarantees that there are at least |n_bits| + 1 bits in accumulator. + Precondition: accumulator contains at least 1 bit. + |n_bits| should be in the range [1..24] for regular build. For portable + non-64-bit little-endian build only 16 bits are safe to request. */ +func fillBitWindow(br *bitReader, n_bits uint32) { + if br.bit_pos_ >= 32 { + br.val_ >>= 32 + br.bit_pos_ ^= 32 /* here same as -= 32 because of the if condition */ + br.val_ |= (uint64(binary.LittleEndian.Uint32(br.input[br.byte_pos:]))) << 32 + br.byte_pos += 4 + } +} + +/* Mostly like BrotliFillBitWindow, but guarantees only 16 bits and reads no + more than BROTLI_SHORT_FILL_BIT_WINDOW_READ bytes of input. */ +func fillBitWindow16(br *bitReader) { + fillBitWindow(br, 17) +} + +/* Tries to pull one byte of input to accumulator. + Returns false if there is no input available. */ +func pullByte(br *bitReader) bool { + if br.byte_pos == br.input_len { + return false + } + + br.val_ >>= 8 + br.val_ |= (uint64(br.input[br.byte_pos])) << 56 + br.bit_pos_ -= 8 + br.byte_pos++ + return true +} + +/* Returns currently available bits. + The number of valid bits could be calculated by BrotliGetAvailableBits. */ +func getBitsUnmasked(br *bitReader) uint64 { + return br.val_ >> br.bit_pos_ +} + +/* Like BrotliGetBits, but does not mask the result. + The result contains at least 16 valid bits. */ +func get16BitsUnmasked(br *bitReader) uint32 { + fillBitWindow(br, 16) + return uint32(getBitsUnmasked(br)) +} + +/* Returns the specified number of bits from |br| without advancing bit + position. */ +func getBits(br *bitReader, n_bits uint32) uint32 { + fillBitWindow(br, n_bits) + return uint32(getBitsUnmasked(br)) & bitMask(n_bits) +} + +/* Tries to peek the specified amount of bits. Returns false, if there + is not enough input. */ +func safeGetBits(br *bitReader, n_bits uint32, val *uint32) bool { + for getAvailableBits(br) < n_bits { + if !pullByte(br) { + return false + } + } + + *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) + return true +} + +/* Advances the bit pos by |n_bits|. */ +func dropBits(br *bitReader, n_bits uint32) { + br.bit_pos_ += n_bits +} + +func bitReaderUnload(br *bitReader) { + var unused_bytes uint32 = getAvailableBits(br) >> 3 + var unused_bits uint32 = unused_bytes << 3 + br.byte_pos -= uint(unused_bytes) + if unused_bits == 64 { + br.val_ = 0 + } else { + br.val_ <<= unused_bits + } + + br.bit_pos_ += unused_bits +} + +/* Reads the specified number of bits from |br| and advances the bit pos. + Precondition: accumulator MUST contain at least |n_bits|. */ +func takeBits(br *bitReader, n_bits uint32, val *uint32) { + *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) + dropBits(br, n_bits) +} + +/* Reads the specified number of bits from |br| and advances the bit pos. + Assumes that there is enough input to perform BrotliFillBitWindow. */ +func readBits(br *bitReader, n_bits uint32) uint32 { + var val uint32 + fillBitWindow(br, n_bits) + takeBits(br, n_bits, &val) + return val +} + +/* Tries to read the specified amount of bits. Returns false, if there + is not enough input. |n_bits| MUST be positive. */ +func safeReadBits(br *bitReader, n_bits uint32, val *uint32) bool { + for getAvailableBits(br) < n_bits { + if !pullByte(br) { + return false + } + } + + takeBits(br, n_bits, val) + return true +} + +/* Advances the bit reader position to the next byte boundary and verifies + that any skipped bits are set to zero. */ +func bitReaderJumpToByteBoundary(br *bitReader) bool { + var pad_bits_count uint32 = getAvailableBits(br) & 0x7 + var pad_bits uint32 = 0 + if pad_bits_count != 0 { + takeBits(br, pad_bits_count, &pad_bits) + } + + return pad_bits == 0 +} + +/* Copies remaining input bytes stored in the bit reader to the output. Value + |num| may not be larger than BrotliGetRemainingBytes. The bit reader must be + warmed up again after this. */ +func copyBytes(dest []byte, br *bitReader, num uint) { + for getAvailableBits(br) >= 8 && num > 0 { + dest[0] = byte(getBitsUnmasked(br)) + dropBits(br, 8) + dest = dest[1:] + num-- + } + + copy(dest, br.input[br.byte_pos:][:num]) + br.byte_pos += num +} + +func initBitReader(br *bitReader) { + br.val_ = 0 + br.bit_pos_ = 64 +} + +func warmupBitReader(br *bitReader) bool { + /* Fixing alignment after unaligned BrotliFillWindow would result accumulator + overflow. If unalignment is caused by BrotliSafeReadBits, then there is + enough space in accumulator to fix alignment. */ + if getAvailableBits(br) == 0 { + if !pullByte(br) { + return false + } + } + + return true +} diff --git a/vendor/github.com/andybalholm/brotli/bitwriter.go b/vendor/github.com/andybalholm/brotli/bitwriter.go new file mode 100644 index 0000000..dfc6036 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/bitwriter.go @@ -0,0 +1,56 @@ +package brotli + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Write bits into a byte array. */ + +type bitWriter struct { + dst []byte + + // Data waiting to be written is the low nbits of bits. + bits uint64 + nbits uint +} + +func (w *bitWriter) writeBits(nb uint, b uint64) { + w.bits |= b << w.nbits + w.nbits += nb + if w.nbits >= 32 { + bits := w.bits + w.bits >>= 32 + w.nbits -= 32 + w.dst = append(w.dst, + byte(bits), + byte(bits>>8), + byte(bits>>16), + byte(bits>>24), + ) + } +} + +func (w *bitWriter) writeSingleBit(bit bool) { + if bit { + w.writeBits(1, 1) + } else { + w.writeBits(1, 0) + } +} + +func (w *bitWriter) jumpToByteBoundary() { + dst := w.dst + for w.nbits != 0 { + dst = append(dst, byte(w.bits)) + w.bits >>= 8 + if w.nbits > 8 { // Avoid underflow + w.nbits -= 8 + } else { + w.nbits = 0 + } + } + w.bits = 0 + w.dst = dst +} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter.go b/vendor/github.com/andybalholm/brotli/block_splitter.go new file mode 100644 index 0000000..978a131 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/block_splitter.go @@ -0,0 +1,144 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Block split point selection utilities. */ + +type blockSplit struct { + num_types uint + num_blocks uint + types []byte + lengths []uint32 + types_alloc_size uint + lengths_alloc_size uint +} + +const ( + kMaxLiteralHistograms uint = 100 + kMaxCommandHistograms uint = 50 + kLiteralBlockSwitchCost float64 = 28.1 + kCommandBlockSwitchCost float64 = 13.5 + kDistanceBlockSwitchCost float64 = 14.6 + kLiteralStrideLength uint = 70 + kCommandStrideLength uint = 40 + kSymbolsPerLiteralHistogram uint = 544 + kSymbolsPerCommandHistogram uint = 530 + kSymbolsPerDistanceHistogram uint = 544 + kMinLengthForBlockSplitting uint = 128 + kIterMulForRefining uint = 2 + kMinItersForRefining uint = 100 +) + +func countLiterals(cmds []command) uint { + var total_length uint = 0 + /* Count how many we have. */ + + for i := range cmds { + total_length += uint(cmds[i].insert_len_) + } + + return total_length +} + +func copyLiteralsToByteArray(cmds []command, data []byte, offset uint, mask uint, literals []byte) { + var pos uint = 0 + var from_pos uint = offset & mask + for i := range cmds { + var insert_len uint = uint(cmds[i].insert_len_) + if from_pos+insert_len > mask { + var head_size uint = mask + 1 - from_pos + copy(literals[pos:], data[from_pos:][:head_size]) + from_pos = 0 + pos += head_size + insert_len -= head_size + } + + if insert_len > 0 { + copy(literals[pos:], data[from_pos:][:insert_len]) + pos += insert_len + } + + from_pos = uint((uint32(from_pos+insert_len) + commandCopyLen(&cmds[i])) & uint32(mask)) + } +} + +func myRand(seed *uint32) uint32 { + /* Initial seed should be 7. In this case, loop length is (1 << 29). */ + *seed *= 16807 + + return *seed +} + +func bitCost(count uint) float64 { + if count == 0 { + return -2.0 + } else { + return fastLog2(count) + } +} + +const histogramsPerBatch = 64 + +const clustersPerBatch = 16 + +func initBlockSplit(self *blockSplit) { + self.num_types = 0 + self.num_blocks = 0 + self.types = self.types[:0] + self.lengths = self.lengths[:0] + self.types_alloc_size = 0 + self.lengths_alloc_size = 0 +} + +func splitBlock(cmds []command, data []byte, pos uint, mask uint, params *encoderParams, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit) { + { + var literals_count uint = countLiterals(cmds) + var literals []byte = make([]byte, literals_count) + + /* Create a continuous array of literals. */ + copyLiteralsToByteArray(cmds, data, pos, mask, literals) + + /* Create the block split on the array of literals. + Literal histograms have alphabet size 256. */ + splitByteVectorLiteral(literals, literals_count, kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, kLiteralStrideLength, kLiteralBlockSwitchCost, params, literal_split) + + literals = nil + } + { + var insert_and_copy_codes []uint16 = make([]uint16, len(cmds)) + /* Compute prefix codes for commands. */ + + for i := range cmds { + insert_and_copy_codes[i] = cmds[i].cmd_prefix_ + } + + /* Create the block split on the array of command prefixes. */ + splitByteVectorCommand(insert_and_copy_codes, kSymbolsPerCommandHistogram, kMaxCommandHistograms, kCommandStrideLength, kCommandBlockSwitchCost, params, insert_and_copy_split) + + /* TODO: reuse for distances? */ + + insert_and_copy_codes = nil + } + { + var distance_prefixes []uint16 = make([]uint16, len(cmds)) + var j uint = 0 + /* Create a continuous array of distance prefixes. */ + + for i := range cmds { + var cmd *command = &cmds[i] + if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { + distance_prefixes[j] = cmd.dist_prefix_ & 0x3FF + j++ + } + } + + /* Create the block split on the array of distance prefixes. */ + splitByteVectorDistance(distance_prefixes, j, kSymbolsPerDistanceHistogram, kMaxCommandHistograms, kCommandStrideLength, kDistanceBlockSwitchCost, params, dist_split) + + distance_prefixes = nil + } +} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_command.go b/vendor/github.com/andybalholm/brotli/block_splitter_command.go new file mode 100644 index 0000000..9dec13e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/block_splitter_command.go @@ -0,0 +1,434 @@ +package brotli + +import "math" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func initialEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { + var seed uint32 = 7 + var block_length uint = length / num_histograms + var i uint + clearHistogramsCommand(histograms, num_histograms) + for i = 0; i < num_histograms; i++ { + var pos uint = length * i / num_histograms + if i != 0 { + pos += uint(myRand(&seed) % uint32(block_length)) + } + + if pos+stride >= length { + pos = length - stride - 1 + } + + histogramAddVectorCommand(&histograms[i], data[pos:], stride) + } +} + +func randomSampleCommand(seed *uint32, data []uint16, length uint, stride uint, sample *histogramCommand) { + var pos uint = 0 + if stride >= length { + stride = length + } else { + pos = uint(myRand(seed) % uint32(length-stride+1)) + } + + histogramAddVectorCommand(sample, data[pos:], stride) +} + +func refineEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { + var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining + var seed uint32 = 7 + var iter uint + iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms + for iter = 0; iter < iters; iter++ { + var sample histogramCommand + histogramClearCommand(&sample) + randomSampleCommand(&seed, data, length, stride, &sample) + histogramAddHistogramCommand(&histograms[iter%num_histograms], &sample) + } +} + +/* Assigns a block id from the range [0, num_histograms) to each data element + in data[0..length) and fills in block_id[0..length) with the assigned values. + Returns the number of blocks, i.e. one plus the number of block switches. */ +func findBlocksCommand(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramCommand, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { + var data_size uint = histogramDataSizeCommand() + var bitmaplen uint = (num_histograms + 7) >> 3 + var num_blocks uint = 1 + var i uint + var j uint + assert(num_histograms <= 256) + if num_histograms <= 1 { + for i = 0; i < length; i++ { + block_id[i] = 0 + } + + return 1 + } + + for i := 0; i < int(data_size*num_histograms); i++ { + insert_cost[i] = 0 + } + for i = 0; i < num_histograms; i++ { + insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) + } + + for i = data_size; i != 0; { + i-- + for j = 0; j < num_histograms; j++ { + insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) + } + } + + for i := 0; i < int(num_histograms); i++ { + cost[i] = 0 + } + for i := 0; i < int(length*bitmaplen); i++ { + switch_signal[i] = 0 + } + + /* After each iteration of this loop, cost[k] will contain the difference + between the minimum cost of arriving at the current byte position using + entropy code k, and the minimum cost of arriving at the current byte + position. This difference is capped at the block switch cost, and if it + reaches block switch cost, it means that when we trace back from the last + position, we need to switch here. */ + for i = 0; i < length; i++ { + var byte_ix uint = i + var ix uint = byte_ix * bitmaplen + var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms + var min_cost float64 = 1e99 + var block_switch_cost float64 = block_switch_bitcost + var k uint + for k = 0; k < num_histograms; k++ { + /* We are coding the symbol in data[byte_ix] with entropy code k. */ + cost[k] += insert_cost[insert_cost_ix+k] + + if cost[k] < min_cost { + min_cost = cost[k] + block_id[byte_ix] = byte(k) + } + } + + /* More blocks for the beginning. */ + if byte_ix < 2000 { + block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 + } + + for k = 0; k < num_histograms; k++ { + cost[k] -= min_cost + if cost[k] >= block_switch_cost { + var mask byte = byte(1 << (k & 7)) + cost[k] = block_switch_cost + assert(k>>3 < bitmaplen) + switch_signal[ix+(k>>3)] |= mask + /* Trace back from the last position and switch at the marked places. */ + } + } + } + { + var byte_ix uint = length - 1 + var ix uint = byte_ix * bitmaplen + var cur_id byte = block_id[byte_ix] + for byte_ix > 0 { + var mask byte = byte(1 << (cur_id & 7)) + assert(uint(cur_id)>>3 < bitmaplen) + byte_ix-- + ix -= bitmaplen + if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { + if cur_id != block_id[byte_ix] { + cur_id = block_id[byte_ix] + num_blocks++ + } + } + + block_id[byte_ix] = cur_id + } + } + + return num_blocks +} + +var remapBlockIdsCommand_kInvalidId uint16 = 256 + +func remapBlockIdsCommand(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { + var next_id uint16 = 0 + var i uint + for i = 0; i < num_histograms; i++ { + new_id[i] = remapBlockIdsCommand_kInvalidId + } + + for i = 0; i < length; i++ { + assert(uint(block_ids[i]) < num_histograms) + if new_id[block_ids[i]] == remapBlockIdsCommand_kInvalidId { + new_id[block_ids[i]] = next_id + next_id++ + } + } + + for i = 0; i < length; i++ { + block_ids[i] = byte(new_id[block_ids[i]]) + assert(uint(block_ids[i]) < num_histograms) + } + + assert(uint(next_id) <= num_histograms) + return uint(next_id) +} + +func buildBlockHistogramsCommand(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramCommand) { + var i uint + clearHistogramsCommand(histograms, num_histograms) + for i = 0; i < length; i++ { + histogramAddCommand(&histograms[block_ids[i]], uint(data[i])) + } +} + +var clusterBlocksCommand_kInvalidIndex uint32 = math.MaxUint32 + +func clusterBlocksCommand(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { + var histogram_symbols []uint32 = make([]uint32, num_blocks) + var block_lengths []uint32 = make([]uint32, num_blocks) + var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch + var all_histograms_size uint = 0 + var all_histograms_capacity uint = expected_num_clusters + var all_histograms []histogramCommand = make([]histogramCommand, all_histograms_capacity) + var cluster_size_size uint = 0 + var cluster_size_capacity uint = expected_num_clusters + var cluster_size []uint32 = make([]uint32, cluster_size_capacity) + var num_clusters uint = 0 + var histograms []histogramCommand = make([]histogramCommand, brotli_min_size_t(num_blocks, histogramsPerBatch)) + var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 + var pairs_capacity uint = max_num_pairs + 1 + var pairs []histogramPair = make([]histogramPair, pairs_capacity) + var pos uint = 0 + var clusters []uint32 + var num_final_clusters uint + var new_index []uint32 + var i uint + var sizes = [histogramsPerBatch]uint32{0} + var new_clusters = [histogramsPerBatch]uint32{0} + var symbols = [histogramsPerBatch]uint32{0} + var remap = [histogramsPerBatch]uint32{0} + + for i := 0; i < int(num_blocks); i++ { + block_lengths[i] = 0 + } + { + var block_idx uint = 0 + for i = 0; i < length; i++ { + assert(block_idx < num_blocks) + block_lengths[block_idx]++ + if i+1 == length || block_ids[i] != block_ids[i+1] { + block_idx++ + } + } + + assert(block_idx == num_blocks) + } + + for i = 0; i < num_blocks; i += histogramsPerBatch { + var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) + var num_new_clusters uint + var j uint + for j = 0; j < num_to_combine; j++ { + var k uint + histogramClearCommand(&histograms[j]) + for k = 0; uint32(k) < block_lengths[i+j]; k++ { + histogramAddCommand(&histograms[j], uint(data[pos])) + pos++ + } + + histograms[j].bit_cost_ = populationCostCommand(&histograms[j]) + new_clusters[j] = uint32(j) + symbols[j] = uint32(j) + sizes[j] = 1 + } + + num_new_clusters = histogramCombineCommand(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) + if all_histograms_capacity < (all_histograms_size + num_new_clusters) { + var _new_size uint + if all_histograms_capacity == 0 { + _new_size = all_histograms_size + num_new_clusters + } else { + _new_size = all_histograms_capacity + } + var new_array []histogramCommand + for _new_size < (all_histograms_size + num_new_clusters) { + _new_size *= 2 + } + new_array = make([]histogramCommand, _new_size) + if all_histograms_capacity != 0 { + copy(new_array, all_histograms[:all_histograms_capacity]) + } + + all_histograms = new_array + all_histograms_capacity = _new_size + } + + brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) + for j = 0; j < num_new_clusters; j++ { + all_histograms[all_histograms_size] = histograms[new_clusters[j]] + all_histograms_size++ + cluster_size[cluster_size_size] = sizes[new_clusters[j]] + cluster_size_size++ + remap[new_clusters[j]] = uint32(j) + } + + for j = 0; j < num_to_combine; j++ { + histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] + } + + num_clusters += num_new_clusters + assert(num_clusters == cluster_size_size) + assert(num_clusters == all_histograms_size) + } + + histograms = nil + + max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) + if pairs_capacity < max_num_pairs+1 { + pairs = nil + pairs = make([]histogramPair, (max_num_pairs + 1)) + } + + clusters = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + clusters[i] = uint32(i) + } + + num_final_clusters = histogramCombineCommand(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) + pairs = nil + cluster_size = nil + + new_index = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + new_index[i] = clusterBlocksCommand_kInvalidIndex + } + pos = 0 + { + var next_index uint32 = 0 + for i = 0; i < num_blocks; i++ { + var histo histogramCommand + var j uint + var best_out uint32 + var best_bits float64 + histogramClearCommand(&histo) + for j = 0; uint32(j) < block_lengths[i]; j++ { + histogramAddCommand(&histo, uint(data[pos])) + pos++ + } + + if i == 0 { + best_out = histogram_symbols[0] + } else { + best_out = histogram_symbols[i-1] + } + best_bits = histogramBitCostDistanceCommand(&histo, &all_histograms[best_out]) + for j = 0; j < num_final_clusters; j++ { + var cur_bits float64 = histogramBitCostDistanceCommand(&histo, &all_histograms[clusters[j]]) + if cur_bits < best_bits { + best_bits = cur_bits + best_out = clusters[j] + } + } + + histogram_symbols[i] = best_out + if new_index[best_out] == clusterBlocksCommand_kInvalidIndex { + new_index[best_out] = next_index + next_index++ + } + } + } + + clusters = nil + all_histograms = nil + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) + { + var cur_length uint32 = 0 + var block_idx uint = 0 + var max_type byte = 0 + for i = 0; i < num_blocks; i++ { + cur_length += block_lengths[i] + if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { + var id byte = byte(new_index[histogram_symbols[i]]) + split.types[block_idx] = id + split.lengths[block_idx] = cur_length + max_type = brotli_max_uint8_t(max_type, id) + cur_length = 0 + block_idx++ + } + } + + split.num_blocks = block_idx + split.num_types = uint(max_type) + 1 + } + + new_index = nil + block_lengths = nil + histogram_symbols = nil +} + +func splitByteVectorCommand(data []uint16, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { + length := uint(len(data)) + var data_size uint = histogramDataSizeCommand() + var num_histograms uint = length/literals_per_histogram + 1 + var histograms []histogramCommand + if num_histograms > max_histograms { + num_histograms = max_histograms + } + + if length == 0 { + split.num_types = 1 + return + } else if length < kMinLengthForBlockSplitting { + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) + split.num_types = 1 + split.types[split.num_blocks] = 0 + split.lengths[split.num_blocks] = uint32(length) + split.num_blocks++ + return + } + + histograms = make([]histogramCommand, num_histograms) + + /* Find good entropy codes. */ + initialEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) + + refineEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) + { + var block_ids []byte = make([]byte, length) + var num_blocks uint = 0 + var bitmaplen uint = (num_histograms + 7) >> 3 + var insert_cost []float64 = make([]float64, (data_size * num_histograms)) + var cost []float64 = make([]float64, num_histograms) + var switch_signal []byte = make([]byte, (length * bitmaplen)) + var new_id []uint16 = make([]uint16, num_histograms) + var iters uint + if params.quality < hqZopflificationQuality { + iters = 3 + } else { + iters = 10 + } + /* Find a good path through literals with the good entropy codes. */ + + var i uint + for i = 0; i < iters; i++ { + num_blocks = findBlocksCommand(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) + num_histograms = remapBlockIdsCommand(block_ids, length, new_id, num_histograms) + buildBlockHistogramsCommand(data, length, block_ids, num_histograms, histograms) + } + + insert_cost = nil + cost = nil + switch_signal = nil + new_id = nil + histograms = nil + clusterBlocksCommand(data, length, num_blocks, block_ids, split) + block_ids = nil + } +} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_distance.go b/vendor/github.com/andybalholm/brotli/block_splitter_distance.go new file mode 100644 index 0000000..953530d --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/block_splitter_distance.go @@ -0,0 +1,433 @@ +package brotli + +import "math" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func initialEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { + var seed uint32 = 7 + var block_length uint = length / num_histograms + var i uint + clearHistogramsDistance(histograms, num_histograms) + for i = 0; i < num_histograms; i++ { + var pos uint = length * i / num_histograms + if i != 0 { + pos += uint(myRand(&seed) % uint32(block_length)) + } + + if pos+stride >= length { + pos = length - stride - 1 + } + + histogramAddVectorDistance(&histograms[i], data[pos:], stride) + } +} + +func randomSampleDistance(seed *uint32, data []uint16, length uint, stride uint, sample *histogramDistance) { + var pos uint = 0 + if stride >= length { + stride = length + } else { + pos = uint(myRand(seed) % uint32(length-stride+1)) + } + + histogramAddVectorDistance(sample, data[pos:], stride) +} + +func refineEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { + var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining + var seed uint32 = 7 + var iter uint + iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms + for iter = 0; iter < iters; iter++ { + var sample histogramDistance + histogramClearDistance(&sample) + randomSampleDistance(&seed, data, length, stride, &sample) + histogramAddHistogramDistance(&histograms[iter%num_histograms], &sample) + } +} + +/* Assigns a block id from the range [0, num_histograms) to each data element + in data[0..length) and fills in block_id[0..length) with the assigned values. + Returns the number of blocks, i.e. one plus the number of block switches. */ +func findBlocksDistance(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramDistance, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { + var data_size uint = histogramDataSizeDistance() + var bitmaplen uint = (num_histograms + 7) >> 3 + var num_blocks uint = 1 + var i uint + var j uint + assert(num_histograms <= 256) + if num_histograms <= 1 { + for i = 0; i < length; i++ { + block_id[i] = 0 + } + + return 1 + } + + for i := 0; i < int(data_size*num_histograms); i++ { + insert_cost[i] = 0 + } + for i = 0; i < num_histograms; i++ { + insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) + } + + for i = data_size; i != 0; { + i-- + for j = 0; j < num_histograms; j++ { + insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) + } + } + + for i := 0; i < int(num_histograms); i++ { + cost[i] = 0 + } + for i := 0; i < int(length*bitmaplen); i++ { + switch_signal[i] = 0 + } + + /* After each iteration of this loop, cost[k] will contain the difference + between the minimum cost of arriving at the current byte position using + entropy code k, and the minimum cost of arriving at the current byte + position. This difference is capped at the block switch cost, and if it + reaches block switch cost, it means that when we trace back from the last + position, we need to switch here. */ + for i = 0; i < length; i++ { + var byte_ix uint = i + var ix uint = byte_ix * bitmaplen + var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms + var min_cost float64 = 1e99 + var block_switch_cost float64 = block_switch_bitcost + var k uint + for k = 0; k < num_histograms; k++ { + /* We are coding the symbol in data[byte_ix] with entropy code k. */ + cost[k] += insert_cost[insert_cost_ix+k] + + if cost[k] < min_cost { + min_cost = cost[k] + block_id[byte_ix] = byte(k) + } + } + + /* More blocks for the beginning. */ + if byte_ix < 2000 { + block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 + } + + for k = 0; k < num_histograms; k++ { + cost[k] -= min_cost + if cost[k] >= block_switch_cost { + var mask byte = byte(1 << (k & 7)) + cost[k] = block_switch_cost + assert(k>>3 < bitmaplen) + switch_signal[ix+(k>>3)] |= mask + /* Trace back from the last position and switch at the marked places. */ + } + } + } + { + var byte_ix uint = length - 1 + var ix uint = byte_ix * bitmaplen + var cur_id byte = block_id[byte_ix] + for byte_ix > 0 { + var mask byte = byte(1 << (cur_id & 7)) + assert(uint(cur_id)>>3 < bitmaplen) + byte_ix-- + ix -= bitmaplen + if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { + if cur_id != block_id[byte_ix] { + cur_id = block_id[byte_ix] + num_blocks++ + } + } + + block_id[byte_ix] = cur_id + } + } + + return num_blocks +} + +var remapBlockIdsDistance_kInvalidId uint16 = 256 + +func remapBlockIdsDistance(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { + var next_id uint16 = 0 + var i uint + for i = 0; i < num_histograms; i++ { + new_id[i] = remapBlockIdsDistance_kInvalidId + } + + for i = 0; i < length; i++ { + assert(uint(block_ids[i]) < num_histograms) + if new_id[block_ids[i]] == remapBlockIdsDistance_kInvalidId { + new_id[block_ids[i]] = next_id + next_id++ + } + } + + for i = 0; i < length; i++ { + block_ids[i] = byte(new_id[block_ids[i]]) + assert(uint(block_ids[i]) < num_histograms) + } + + assert(uint(next_id) <= num_histograms) + return uint(next_id) +} + +func buildBlockHistogramsDistance(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramDistance) { + var i uint + clearHistogramsDistance(histograms, num_histograms) + for i = 0; i < length; i++ { + histogramAddDistance(&histograms[block_ids[i]], uint(data[i])) + } +} + +var clusterBlocksDistance_kInvalidIndex uint32 = math.MaxUint32 + +func clusterBlocksDistance(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { + var histogram_symbols []uint32 = make([]uint32, num_blocks) + var block_lengths []uint32 = make([]uint32, num_blocks) + var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch + var all_histograms_size uint = 0 + var all_histograms_capacity uint = expected_num_clusters + var all_histograms []histogramDistance = make([]histogramDistance, all_histograms_capacity) + var cluster_size_size uint = 0 + var cluster_size_capacity uint = expected_num_clusters + var cluster_size []uint32 = make([]uint32, cluster_size_capacity) + var num_clusters uint = 0 + var histograms []histogramDistance = make([]histogramDistance, brotli_min_size_t(num_blocks, histogramsPerBatch)) + var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 + var pairs_capacity uint = max_num_pairs + 1 + var pairs []histogramPair = make([]histogramPair, pairs_capacity) + var pos uint = 0 + var clusters []uint32 + var num_final_clusters uint + var new_index []uint32 + var i uint + var sizes = [histogramsPerBatch]uint32{0} + var new_clusters = [histogramsPerBatch]uint32{0} + var symbols = [histogramsPerBatch]uint32{0} + var remap = [histogramsPerBatch]uint32{0} + + for i := 0; i < int(num_blocks); i++ { + block_lengths[i] = 0 + } + { + var block_idx uint = 0 + for i = 0; i < length; i++ { + assert(block_idx < num_blocks) + block_lengths[block_idx]++ + if i+1 == length || block_ids[i] != block_ids[i+1] { + block_idx++ + } + } + + assert(block_idx == num_blocks) + } + + for i = 0; i < num_blocks; i += histogramsPerBatch { + var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) + var num_new_clusters uint + var j uint + for j = 0; j < num_to_combine; j++ { + var k uint + histogramClearDistance(&histograms[j]) + for k = 0; uint32(k) < block_lengths[i+j]; k++ { + histogramAddDistance(&histograms[j], uint(data[pos])) + pos++ + } + + histograms[j].bit_cost_ = populationCostDistance(&histograms[j]) + new_clusters[j] = uint32(j) + symbols[j] = uint32(j) + sizes[j] = 1 + } + + num_new_clusters = histogramCombineDistance(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) + if all_histograms_capacity < (all_histograms_size + num_new_clusters) { + var _new_size uint + if all_histograms_capacity == 0 { + _new_size = all_histograms_size + num_new_clusters + } else { + _new_size = all_histograms_capacity + } + var new_array []histogramDistance + for _new_size < (all_histograms_size + num_new_clusters) { + _new_size *= 2 + } + new_array = make([]histogramDistance, _new_size) + if all_histograms_capacity != 0 { + copy(new_array, all_histograms[:all_histograms_capacity]) + } + + all_histograms = new_array + all_histograms_capacity = _new_size + } + + brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) + for j = 0; j < num_new_clusters; j++ { + all_histograms[all_histograms_size] = histograms[new_clusters[j]] + all_histograms_size++ + cluster_size[cluster_size_size] = sizes[new_clusters[j]] + cluster_size_size++ + remap[new_clusters[j]] = uint32(j) + } + + for j = 0; j < num_to_combine; j++ { + histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] + } + + num_clusters += num_new_clusters + assert(num_clusters == cluster_size_size) + assert(num_clusters == all_histograms_size) + } + + histograms = nil + + max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) + if pairs_capacity < max_num_pairs+1 { + pairs = nil + pairs = make([]histogramPair, (max_num_pairs + 1)) + } + + clusters = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + clusters[i] = uint32(i) + } + + num_final_clusters = histogramCombineDistance(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) + pairs = nil + cluster_size = nil + + new_index = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + new_index[i] = clusterBlocksDistance_kInvalidIndex + } + pos = 0 + { + var next_index uint32 = 0 + for i = 0; i < num_blocks; i++ { + var histo histogramDistance + var j uint + var best_out uint32 + var best_bits float64 + histogramClearDistance(&histo) + for j = 0; uint32(j) < block_lengths[i]; j++ { + histogramAddDistance(&histo, uint(data[pos])) + pos++ + } + + if i == 0 { + best_out = histogram_symbols[0] + } else { + best_out = histogram_symbols[i-1] + } + best_bits = histogramBitCostDistanceDistance(&histo, &all_histograms[best_out]) + for j = 0; j < num_final_clusters; j++ { + var cur_bits float64 = histogramBitCostDistanceDistance(&histo, &all_histograms[clusters[j]]) + if cur_bits < best_bits { + best_bits = cur_bits + best_out = clusters[j] + } + } + + histogram_symbols[i] = best_out + if new_index[best_out] == clusterBlocksDistance_kInvalidIndex { + new_index[best_out] = next_index + next_index++ + } + } + } + + clusters = nil + all_histograms = nil + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) + { + var cur_length uint32 = 0 + var block_idx uint = 0 + var max_type byte = 0 + for i = 0; i < num_blocks; i++ { + cur_length += block_lengths[i] + if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { + var id byte = byte(new_index[histogram_symbols[i]]) + split.types[block_idx] = id + split.lengths[block_idx] = cur_length + max_type = brotli_max_uint8_t(max_type, id) + cur_length = 0 + block_idx++ + } + } + + split.num_blocks = block_idx + split.num_types = uint(max_type) + 1 + } + + new_index = nil + block_lengths = nil + histogram_symbols = nil +} + +func splitByteVectorDistance(data []uint16, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { + var data_size uint = histogramDataSizeDistance() + var num_histograms uint = length/literals_per_histogram + 1 + var histograms []histogramDistance + if num_histograms > max_histograms { + num_histograms = max_histograms + } + + if length == 0 { + split.num_types = 1 + return + } else if length < kMinLengthForBlockSplitting { + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) + split.num_types = 1 + split.types[split.num_blocks] = 0 + split.lengths[split.num_blocks] = uint32(length) + split.num_blocks++ + return + } + + histograms = make([]histogramDistance, num_histograms) + + /* Find good entropy codes. */ + initialEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) + + refineEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) + { + var block_ids []byte = make([]byte, length) + var num_blocks uint = 0 + var bitmaplen uint = (num_histograms + 7) >> 3 + var insert_cost []float64 = make([]float64, (data_size * num_histograms)) + var cost []float64 = make([]float64, num_histograms) + var switch_signal []byte = make([]byte, (length * bitmaplen)) + var new_id []uint16 = make([]uint16, num_histograms) + var iters uint + if params.quality < hqZopflificationQuality { + iters = 3 + } else { + iters = 10 + } + /* Find a good path through literals with the good entropy codes. */ + + var i uint + for i = 0; i < iters; i++ { + num_blocks = findBlocksDistance(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) + num_histograms = remapBlockIdsDistance(block_ids, length, new_id, num_histograms) + buildBlockHistogramsDistance(data, length, block_ids, num_histograms, histograms) + } + + insert_cost = nil + cost = nil + switch_signal = nil + new_id = nil + histograms = nil + clusterBlocksDistance(data, length, num_blocks, block_ids, split) + block_ids = nil + } +} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_literal.go b/vendor/github.com/andybalholm/brotli/block_splitter_literal.go new file mode 100644 index 0000000..1c895cf --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/block_splitter_literal.go @@ -0,0 +1,433 @@ +package brotli + +import "math" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func initialEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { + var seed uint32 = 7 + var block_length uint = length / num_histograms + var i uint + clearHistogramsLiteral(histograms, num_histograms) + for i = 0; i < num_histograms; i++ { + var pos uint = length * i / num_histograms + if i != 0 { + pos += uint(myRand(&seed) % uint32(block_length)) + } + + if pos+stride >= length { + pos = length - stride - 1 + } + + histogramAddVectorLiteral(&histograms[i], data[pos:], stride) + } +} + +func randomSampleLiteral(seed *uint32, data []byte, length uint, stride uint, sample *histogramLiteral) { + var pos uint = 0 + if stride >= length { + stride = length + } else { + pos = uint(myRand(seed) % uint32(length-stride+1)) + } + + histogramAddVectorLiteral(sample, data[pos:], stride) +} + +func refineEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { + var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining + var seed uint32 = 7 + var iter uint + iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms + for iter = 0; iter < iters; iter++ { + var sample histogramLiteral + histogramClearLiteral(&sample) + randomSampleLiteral(&seed, data, length, stride, &sample) + histogramAddHistogramLiteral(&histograms[iter%num_histograms], &sample) + } +} + +/* Assigns a block id from the range [0, num_histograms) to each data element + in data[0..length) and fills in block_id[0..length) with the assigned values. + Returns the number of blocks, i.e. one plus the number of block switches. */ +func findBlocksLiteral(data []byte, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramLiteral, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { + var data_size uint = histogramDataSizeLiteral() + var bitmaplen uint = (num_histograms + 7) >> 3 + var num_blocks uint = 1 + var i uint + var j uint + assert(num_histograms <= 256) + if num_histograms <= 1 { + for i = 0; i < length; i++ { + block_id[i] = 0 + } + + return 1 + } + + for i := 0; i < int(data_size*num_histograms); i++ { + insert_cost[i] = 0 + } + for i = 0; i < num_histograms; i++ { + insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) + } + + for i = data_size; i != 0; { + i-- + for j = 0; j < num_histograms; j++ { + insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) + } + } + + for i := 0; i < int(num_histograms); i++ { + cost[i] = 0 + } + for i := 0; i < int(length*bitmaplen); i++ { + switch_signal[i] = 0 + } + + /* After each iteration of this loop, cost[k] will contain the difference + between the minimum cost of arriving at the current byte position using + entropy code k, and the minimum cost of arriving at the current byte + position. This difference is capped at the block switch cost, and if it + reaches block switch cost, it means that when we trace back from the last + position, we need to switch here. */ + for i = 0; i < length; i++ { + var byte_ix uint = i + var ix uint = byte_ix * bitmaplen + var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms + var min_cost float64 = 1e99 + var block_switch_cost float64 = block_switch_bitcost + var k uint + for k = 0; k < num_histograms; k++ { + /* We are coding the symbol in data[byte_ix] with entropy code k. */ + cost[k] += insert_cost[insert_cost_ix+k] + + if cost[k] < min_cost { + min_cost = cost[k] + block_id[byte_ix] = byte(k) + } + } + + /* More blocks for the beginning. */ + if byte_ix < 2000 { + block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 + } + + for k = 0; k < num_histograms; k++ { + cost[k] -= min_cost + if cost[k] >= block_switch_cost { + var mask byte = byte(1 << (k & 7)) + cost[k] = block_switch_cost + assert(k>>3 < bitmaplen) + switch_signal[ix+(k>>3)] |= mask + /* Trace back from the last position and switch at the marked places. */ + } + } + } + { + var byte_ix uint = length - 1 + var ix uint = byte_ix * bitmaplen + var cur_id byte = block_id[byte_ix] + for byte_ix > 0 { + var mask byte = byte(1 << (cur_id & 7)) + assert(uint(cur_id)>>3 < bitmaplen) + byte_ix-- + ix -= bitmaplen + if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { + if cur_id != block_id[byte_ix] { + cur_id = block_id[byte_ix] + num_blocks++ + } + } + + block_id[byte_ix] = cur_id + } + } + + return num_blocks +} + +var remapBlockIdsLiteral_kInvalidId uint16 = 256 + +func remapBlockIdsLiteral(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { + var next_id uint16 = 0 + var i uint + for i = 0; i < num_histograms; i++ { + new_id[i] = remapBlockIdsLiteral_kInvalidId + } + + for i = 0; i < length; i++ { + assert(uint(block_ids[i]) < num_histograms) + if new_id[block_ids[i]] == remapBlockIdsLiteral_kInvalidId { + new_id[block_ids[i]] = next_id + next_id++ + } + } + + for i = 0; i < length; i++ { + block_ids[i] = byte(new_id[block_ids[i]]) + assert(uint(block_ids[i]) < num_histograms) + } + + assert(uint(next_id) <= num_histograms) + return uint(next_id) +} + +func buildBlockHistogramsLiteral(data []byte, length uint, block_ids []byte, num_histograms uint, histograms []histogramLiteral) { + var i uint + clearHistogramsLiteral(histograms, num_histograms) + for i = 0; i < length; i++ { + histogramAddLiteral(&histograms[block_ids[i]], uint(data[i])) + } +} + +var clusterBlocksLiteral_kInvalidIndex uint32 = math.MaxUint32 + +func clusterBlocksLiteral(data []byte, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { + var histogram_symbols []uint32 = make([]uint32, num_blocks) + var block_lengths []uint32 = make([]uint32, num_blocks) + var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch + var all_histograms_size uint = 0 + var all_histograms_capacity uint = expected_num_clusters + var all_histograms []histogramLiteral = make([]histogramLiteral, all_histograms_capacity) + var cluster_size_size uint = 0 + var cluster_size_capacity uint = expected_num_clusters + var cluster_size []uint32 = make([]uint32, cluster_size_capacity) + var num_clusters uint = 0 + var histograms []histogramLiteral = make([]histogramLiteral, brotli_min_size_t(num_blocks, histogramsPerBatch)) + var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 + var pairs_capacity uint = max_num_pairs + 1 + var pairs []histogramPair = make([]histogramPair, pairs_capacity) + var pos uint = 0 + var clusters []uint32 + var num_final_clusters uint + var new_index []uint32 + var i uint + var sizes = [histogramsPerBatch]uint32{0} + var new_clusters = [histogramsPerBatch]uint32{0} + var symbols = [histogramsPerBatch]uint32{0} + var remap = [histogramsPerBatch]uint32{0} + + for i := 0; i < int(num_blocks); i++ { + block_lengths[i] = 0 + } + { + var block_idx uint = 0 + for i = 0; i < length; i++ { + assert(block_idx < num_blocks) + block_lengths[block_idx]++ + if i+1 == length || block_ids[i] != block_ids[i+1] { + block_idx++ + } + } + + assert(block_idx == num_blocks) + } + + for i = 0; i < num_blocks; i += histogramsPerBatch { + var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) + var num_new_clusters uint + var j uint + for j = 0; j < num_to_combine; j++ { + var k uint + histogramClearLiteral(&histograms[j]) + for k = 0; uint32(k) < block_lengths[i+j]; k++ { + histogramAddLiteral(&histograms[j], uint(data[pos])) + pos++ + } + + histograms[j].bit_cost_ = populationCostLiteral(&histograms[j]) + new_clusters[j] = uint32(j) + symbols[j] = uint32(j) + sizes[j] = 1 + } + + num_new_clusters = histogramCombineLiteral(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) + if all_histograms_capacity < (all_histograms_size + num_new_clusters) { + var _new_size uint + if all_histograms_capacity == 0 { + _new_size = all_histograms_size + num_new_clusters + } else { + _new_size = all_histograms_capacity + } + var new_array []histogramLiteral + for _new_size < (all_histograms_size + num_new_clusters) { + _new_size *= 2 + } + new_array = make([]histogramLiteral, _new_size) + if all_histograms_capacity != 0 { + copy(new_array, all_histograms[:all_histograms_capacity]) + } + + all_histograms = new_array + all_histograms_capacity = _new_size + } + + brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) + for j = 0; j < num_new_clusters; j++ { + all_histograms[all_histograms_size] = histograms[new_clusters[j]] + all_histograms_size++ + cluster_size[cluster_size_size] = sizes[new_clusters[j]] + cluster_size_size++ + remap[new_clusters[j]] = uint32(j) + } + + for j = 0; j < num_to_combine; j++ { + histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] + } + + num_clusters += num_new_clusters + assert(num_clusters == cluster_size_size) + assert(num_clusters == all_histograms_size) + } + + histograms = nil + + max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) + if pairs_capacity < max_num_pairs+1 { + pairs = nil + pairs = make([]histogramPair, (max_num_pairs + 1)) + } + + clusters = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + clusters[i] = uint32(i) + } + + num_final_clusters = histogramCombineLiteral(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) + pairs = nil + cluster_size = nil + + new_index = make([]uint32, num_clusters) + for i = 0; i < num_clusters; i++ { + new_index[i] = clusterBlocksLiteral_kInvalidIndex + } + pos = 0 + { + var next_index uint32 = 0 + for i = 0; i < num_blocks; i++ { + var histo histogramLiteral + var j uint + var best_out uint32 + var best_bits float64 + histogramClearLiteral(&histo) + for j = 0; uint32(j) < block_lengths[i]; j++ { + histogramAddLiteral(&histo, uint(data[pos])) + pos++ + } + + if i == 0 { + best_out = histogram_symbols[0] + } else { + best_out = histogram_symbols[i-1] + } + best_bits = histogramBitCostDistanceLiteral(&histo, &all_histograms[best_out]) + for j = 0; j < num_final_clusters; j++ { + var cur_bits float64 = histogramBitCostDistanceLiteral(&histo, &all_histograms[clusters[j]]) + if cur_bits < best_bits { + best_bits = cur_bits + best_out = clusters[j] + } + } + + histogram_symbols[i] = best_out + if new_index[best_out] == clusterBlocksLiteral_kInvalidIndex { + new_index[best_out] = next_index + next_index++ + } + } + } + + clusters = nil + all_histograms = nil + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) + { + var cur_length uint32 = 0 + var block_idx uint = 0 + var max_type byte = 0 + for i = 0; i < num_blocks; i++ { + cur_length += block_lengths[i] + if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { + var id byte = byte(new_index[histogram_symbols[i]]) + split.types[block_idx] = id + split.lengths[block_idx] = cur_length + max_type = brotli_max_uint8_t(max_type, id) + cur_length = 0 + block_idx++ + } + } + + split.num_blocks = block_idx + split.num_types = uint(max_type) + 1 + } + + new_index = nil + block_lengths = nil + histogram_symbols = nil +} + +func splitByteVectorLiteral(data []byte, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { + var data_size uint = histogramDataSizeLiteral() + var num_histograms uint = length/literals_per_histogram + 1 + var histograms []histogramLiteral + if num_histograms > max_histograms { + num_histograms = max_histograms + } + + if length == 0 { + split.num_types = 1 + return + } else if length < kMinLengthForBlockSplitting { + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) + split.num_types = 1 + split.types[split.num_blocks] = 0 + split.lengths[split.num_blocks] = uint32(length) + split.num_blocks++ + return + } + + histograms = make([]histogramLiteral, num_histograms) + + /* Find good entropy codes. */ + initialEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) + + refineEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) + { + var block_ids []byte = make([]byte, length) + var num_blocks uint = 0 + var bitmaplen uint = (num_histograms + 7) >> 3 + var insert_cost []float64 = make([]float64, (data_size * num_histograms)) + var cost []float64 = make([]float64, num_histograms) + var switch_signal []byte = make([]byte, (length * bitmaplen)) + var new_id []uint16 = make([]uint16, num_histograms) + var iters uint + if params.quality < hqZopflificationQuality { + iters = 3 + } else { + iters = 10 + } + /* Find a good path through literals with the good entropy codes. */ + + var i uint + for i = 0; i < iters; i++ { + num_blocks = findBlocksLiteral(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) + num_histograms = remapBlockIdsLiteral(block_ids, length, new_id, num_histograms) + buildBlockHistogramsLiteral(data, length, block_ids, num_histograms, histograms) + } + + insert_cost = nil + cost = nil + switch_signal = nil + new_id = nil + histograms = nil + clusterBlocksLiteral(data, length, num_blocks, block_ids, split) + block_ids = nil + } +} diff --git a/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go b/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go new file mode 100644 index 0000000..ee65529 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go @@ -0,0 +1,1539 @@ +package brotli + +import ( + "math" + "sync" +) + +const maxHuffmanTreeSize = (2*numCommandSymbols + 1) + +/* +The maximum size of Huffman dictionary for distances assuming that + + NPOSTFIX = 0 and NDIRECT = 0. +*/ +const maxSimpleDistanceAlphabetSize = 140 + +/* +Represents the range of values belonging to a prefix code: + + [offset, offset + 2^nbits) +*/ +type prefixCodeRange struct { + offset uint32 + nbits uint32 +} + +var kBlockLengthPrefixCode = [numBlockLenSymbols]prefixCodeRange{ + prefixCodeRange{1, 2}, + prefixCodeRange{5, 2}, + prefixCodeRange{9, 2}, + prefixCodeRange{13, 2}, + prefixCodeRange{17, 3}, + prefixCodeRange{25, 3}, + prefixCodeRange{33, 3}, + prefixCodeRange{41, 3}, + prefixCodeRange{49, 4}, + prefixCodeRange{65, 4}, + prefixCodeRange{81, 4}, + prefixCodeRange{97, 4}, + prefixCodeRange{113, 5}, + prefixCodeRange{145, 5}, + prefixCodeRange{177, 5}, + prefixCodeRange{209, 5}, + prefixCodeRange{241, 6}, + prefixCodeRange{305, 6}, + prefixCodeRange{369, 7}, + prefixCodeRange{497, 8}, + prefixCodeRange{753, 9}, + prefixCodeRange{1265, 10}, + prefixCodeRange{2289, 11}, + prefixCodeRange{4337, 12}, + prefixCodeRange{8433, 13}, + prefixCodeRange{16625, 24}, +} + +func blockLengthPrefixCode(len uint32) uint32 { + var code uint32 + if len >= 177 { + if len >= 753 { + code = 20 + } else { + code = 14 + } + } else if len >= 41 { + code = 7 + } else { + code = 0 + } + for code < (numBlockLenSymbols-1) && len >= kBlockLengthPrefixCode[code+1].offset { + code++ + } + return code +} + +func getBlockLengthPrefixCode(len uint32, code *uint, n_extra *uint32, extra *uint32) { + *code = uint(blockLengthPrefixCode(uint32(len))) + *n_extra = kBlockLengthPrefixCode[*code].nbits + *extra = len - kBlockLengthPrefixCode[*code].offset +} + +type blockTypeCodeCalculator struct { + last_type uint + second_last_type uint +} + +func initBlockTypeCodeCalculator(self *blockTypeCodeCalculator) { + self.last_type = 1 + self.second_last_type = 0 +} + +func nextBlockTypeCode(calculator *blockTypeCodeCalculator, type_ byte) uint { + var type_code uint + if uint(type_) == calculator.last_type+1 { + type_code = 1 + } else if uint(type_) == calculator.second_last_type { + type_code = 0 + } else { + type_code = uint(type_) + 2 + } + calculator.second_last_type = calculator.last_type + calculator.last_type = uint(type_) + return type_code +} + +/* +|nibblesbits| represents the 2 bits to encode MNIBBLES (0-3) + + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) +*/ +func encodeMlen(length uint, bits *uint64, numbits *uint, nibblesbits *uint64) { + var lg uint + if length == 1 { + lg = 1 + } else { + lg = uint(log2FloorNonZero(uint(uint32(length-1)))) + 1 + } + var tmp uint + if lg < 16 { + tmp = 16 + } else { + tmp = (lg + 3) + } + var mnibbles uint = tmp / 4 + assert(length > 0) + assert(length <= 1<<24) + assert(lg <= 24) + *nibblesbits = uint64(mnibbles) - 4 + *numbits = mnibbles * 4 + *bits = uint64(length) - 1 +} + +func storeCommandExtra(cmd *command, storage_ix *uint, storage []byte) { + var copylen_code uint32 = commandCopyLenCode(cmd) + var inscode uint16 = getInsertLengthCode(uint(cmd.insert_len_)) + var copycode uint16 = getCopyLengthCode(uint(copylen_code)) + var insnumextra uint32 = getInsertExtra(inscode) + var insextraval uint64 = uint64(cmd.insert_len_) - uint64(getInsertBase(inscode)) + var copyextraval uint64 = uint64(copylen_code) - uint64(getCopyBase(copycode)) + var bits uint64 = copyextraval< 0 + REQUIRES: length <= (1 << 24) +*/ +func storeCompressedMetaBlockHeader(is_final_block bool, length uint, storage_ix *uint, storage []byte) { + var lenbits uint64 + var nlenbits uint + var nibblesbits uint64 + var is_final uint64 + if is_final_block { + is_final = 1 + } else { + is_final = 0 + } + + /* Write ISLAST bit. */ + writeBits(1, is_final, storage_ix, storage) + + /* Write ISEMPTY bit. */ + if is_final_block { + writeBits(1, 0, storage_ix, storage) + } + + encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) + writeBits(2, nibblesbits, storage_ix, storage) + writeBits(nlenbits, lenbits, storage_ix, storage) + + if !is_final_block { + /* Write ISUNCOMPRESSED bit. */ + writeBits(1, 0, storage_ix, storage) + } +} + +/* +Stores the uncompressed meta-block header. + + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) +*/ +func storeUncompressedMetaBlockHeader(length uint, storage_ix *uint, storage []byte) { + var lenbits uint64 + var nlenbits uint + var nibblesbits uint64 + + /* Write ISLAST bit. + Uncompressed block cannot be the last one, so set to 0. */ + writeBits(1, 0, storage_ix, storage) + + encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) + writeBits(2, nibblesbits, storage_ix, storage) + writeBits(nlenbits, lenbits, storage_ix, storage) + + /* Write ISUNCOMPRESSED bit. */ + writeBits(1, 1, storage_ix, storage) +} + +var storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} + +var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols = [6]byte{0, 7, 3, 2, 1, 15} +var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths = [6]byte{2, 4, 3, 2, 2, 4} + +func storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes int, code_length_bitdepth []byte, storage_ix *uint, storage []byte) { + var skip_some uint = 0 + var codes_to_store uint = codeLengthCodes + /* The bit lengths of the Huffman code over the code length alphabet + are compressed with the following static Huffman code: + Symbol Code + ------ ---- + 0 00 + 1 1110 + 2 110 + 3 01 + 4 10 + 5 1111 */ + + /* Throw away trailing zeros: */ + if num_codes > 1 { + for ; codes_to_store > 0; codes_to_store-- { + if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[codes_to_store-1]] != 0 { + break + } + } + } + + if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[0]] == 0 && code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[1]] == 0 { + skip_some = 2 /* skips two. */ + if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[2]] == 0 { + skip_some = 3 /* skips three. */ + } + } + + writeBits(2, uint64(skip_some), storage_ix, storage) + { + var i uint + for i = skip_some; i < codes_to_store; i++ { + var l uint = uint(code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[i]]) + writeBits(uint(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths[l]), uint64(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols[l]), storage_ix, storage) + } + } +} + +func storeHuffmanTreeToBitMask(huffman_tree_size uint, huffman_tree []byte, huffman_tree_extra_bits []byte, code_length_bitdepth []byte, code_length_bitdepth_symbols []uint16, storage_ix *uint, storage []byte) { + var i uint + for i = 0; i < huffman_tree_size; i++ { + var ix uint = uint(huffman_tree[i]) + writeBits(uint(code_length_bitdepth[ix]), uint64(code_length_bitdepth_symbols[ix]), storage_ix, storage) + + /* Extra bits */ + switch ix { + case repeatPreviousCodeLength: + writeBits(2, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) + + case repeatZeroCodeLength: + writeBits(3, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) + } + } +} + +func storeSimpleHuffmanTree(depths []byte, symbols []uint, num_symbols uint, max_bits uint, storage_ix *uint, storage []byte) { + /* value of 1 indicates a simple Huffman code */ + writeBits(2, 1, storage_ix, storage) + + writeBits(2, uint64(num_symbols)-1, storage_ix, storage) /* NSYM - 1 */ + { + /* Sort */ + var i uint + for i = 0; i < num_symbols; i++ { + var j uint + for j = i + 1; j < num_symbols; j++ { + if depths[symbols[j]] < depths[symbols[i]] { + var tmp uint = symbols[j] + symbols[j] = symbols[i] + symbols[i] = tmp + } + } + } + } + + if num_symbols == 2 { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + } else if num_symbols == 3 { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) + } else { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) + + /* tree-select */ + var tmp int + if depths[symbols[0]] == 1 { + tmp = 1 + } else { + tmp = 0 + } + writeBits(1, uint64(tmp), storage_ix, storage) + } +} + +/* +num = alphabet size + + depths = symbol depths +*/ +func storeHuffmanTree(depths []byte, num uint, tree []huffmanTree, storage_ix *uint, storage []byte) { + var huffman_tree [numCommandSymbols]byte + var huffman_tree_extra_bits [numCommandSymbols]byte + var huffman_tree_size uint = 0 + var code_length_bitdepth = [codeLengthCodes]byte{0} + var code_length_bitdepth_symbols [codeLengthCodes]uint16 + var huffman_tree_histogram = [codeLengthCodes]uint32{0} + var i uint + var num_codes int = 0 + /* Write the Huffman tree into the brotli-representation. + The command alphabet is the largest, so this allocation will fit all + alphabets. */ + + var code uint = 0 + + assert(num <= numCommandSymbols) + + writeHuffmanTree(depths, num, &huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:]) + + /* Calculate the statistics of the Huffman tree in brotli-representation. */ + for i = 0; i < huffman_tree_size; i++ { + huffman_tree_histogram[huffman_tree[i]]++ + } + + for i = 0; i < codeLengthCodes; i++ { + if huffman_tree_histogram[i] != 0 { + if num_codes == 0 { + code = i + num_codes = 1 + } else if num_codes == 1 { + num_codes = 2 + break + } + } + } + + /* Calculate another Huffman tree to use for compressing both the + earlier Huffman tree with. */ + createHuffmanTree(huffman_tree_histogram[:], codeLengthCodes, 5, tree, code_length_bitdepth[:]) + + convertBitDepthsToSymbols(code_length_bitdepth[:], codeLengthCodes, code_length_bitdepth_symbols[:]) + + /* Now, we have all the data, let's start storing it */ + storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth[:], storage_ix, storage) + + if num_codes == 1 { + code_length_bitdepth[code] = 0 + } + + /* Store the real Huffman tree now. */ + storeHuffmanTreeToBitMask(huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:], code_length_bitdepth[:], code_length_bitdepth_symbols[:], storage_ix, storage) +} + +/* +Builds a Huffman tree from histogram[0:length] into depth[0:length] and + + bits[0:length] and stores the encoded tree to the bit stream. +*/ +func buildAndStoreHuffmanTree(histogram []uint32, histogram_length uint, alphabet_size uint, tree []huffmanTree, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { + var count uint = 0 + var s4 = [4]uint{0} + var i uint + var max_bits uint = 0 + for i = 0; i < histogram_length; i++ { + if histogram[i] != 0 { + if count < 4 { + s4[count] = i + } else if count > 4 { + break + } + + count++ + } + } + { + var max_bits_counter uint = alphabet_size - 1 + for max_bits_counter != 0 { + max_bits_counter >>= 1 + max_bits++ + } + } + + if count <= 1 { + writeBits(4, 1, storage_ix, storage) + writeBits(max_bits, uint64(s4[0]), storage_ix, storage) + depth[s4[0]] = 0 + bits[s4[0]] = 0 + return + } + + for i := 0; i < int(histogram_length); i++ { + depth[i] = 0 + } + createHuffmanTree(histogram, histogram_length, 15, tree, depth) + convertBitDepthsToSymbols(depth, histogram_length, bits) + + if count <= 4 { + storeSimpleHuffmanTree(depth, s4[:], count, max_bits, storage_ix, storage) + } else { + storeHuffmanTree(depth, histogram_length, tree, storage_ix, storage) + } +} + +func sortHuffmanTree1(v0 huffmanTree, v1 huffmanTree) bool { + return v0.total_count_ < v1.total_count_ +} + +var huffmanTreePool sync.Pool + +func buildAndStoreHuffmanTreeFast(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { + var count uint = 0 + var symbols = [4]uint{0} + var length uint = 0 + var total uint = histogram_total + for total != 0 { + if histogram[length] != 0 { + if count < 4 { + symbols[count] = length + } + + count++ + total -= uint(histogram[length]) + } + + length++ + } + + if count <= 1 { + writeBits(4, 1, storage_ix, storage) + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + depth[symbols[0]] = 0 + bits[symbols[0]] = 0 + return + } + + for i := 0; i < int(length); i++ { + depth[i] = 0 + } + { + var max_tree_size uint = 2*length + 1 + tree, _ := huffmanTreePool.Get().(*[]huffmanTree) + if tree == nil || cap(*tree) < int(max_tree_size) { + tmp := make([]huffmanTree, max_tree_size) + tree = &tmp + } else { + *tree = (*tree)[:max_tree_size] + } + var count_limit uint32 + for count_limit = 1; ; count_limit *= 2 { + var node int = 0 + var l uint + for l = length; l != 0; { + l-- + if histogram[l] != 0 { + if histogram[l] >= count_limit { + initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) + } else { + initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) + } + + node++ + } + } + { + var n int = node + /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ + var sentinel huffmanTree + var i int = 0 + var j int = n + 1 + var k int + + sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) + + /* The nodes are: + [0, n): the sorted leaf nodes that we start with. + [n]: we add a sentinel here. + [n + 1, 2n): new parent nodes are added here, starting from + (n+1). These are naturally in ascending order. + [2n]: we add a sentinel at the end as well. + There will be (2n+1) elements at the end. */ + initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) + + (*tree)[node] = sentinel + node++ + (*tree)[node] = sentinel + node++ + + for k = n - 1; k > 0; k-- { + var left int + var right int + if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { + left = i + i++ + } else { + left = j + j++ + } + + if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { + right = i + i++ + } else { + right = j + j++ + } + + /* The sentinel node becomes the parent node. */ + (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ + + (*tree)[node-1].index_left_ = int16(left) + (*tree)[node-1].index_right_or_value_ = int16(right) + + /* Add back the last sentinel node. */ + (*tree)[node] = sentinel + node++ + } + + if setDepth(2*n-1, *tree, depth, 14) { + /* We need to pack the Huffman tree in 14 bits. If this was not + successful, add fake entities to the lowest values and retry. */ + break + } + } + } + + huffmanTreePool.Put(tree) + } + + convertBitDepthsToSymbols(depth, length, bits) + if count <= 4 { + var i uint + + /* value of 1 indicates a simple Huffman code */ + writeBits(2, 1, storage_ix, storage) + + writeBits(2, uint64(count)-1, storage_ix, storage) /* NSYM - 1 */ + + /* Sort */ + for i = 0; i < count; i++ { + var j uint + for j = i + 1; j < count; j++ { + if depth[symbols[j]] < depth[symbols[i]] { + var tmp uint = symbols[j] + symbols[j] = symbols[i] + symbols[i] = tmp + } + } + } + + if count == 2 { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + } else if count == 3 { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) + } else { + writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) + writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) + + /* tree-select */ + var tmp int + if depth[symbols[0]] == 1 { + tmp = 1 + } else { + tmp = 0 + } + writeBits(1, uint64(tmp), storage_ix, storage) + } + } else { + var previous_value byte = 8 + var i uint + + /* Complex Huffman Tree */ + storeStaticCodeLengthCode(storage_ix, storage) + + /* Actual RLE coding. */ + for i = 0; i < length; { + var value byte = depth[i] + var reps uint = 1 + var k uint + for k = i + 1; k < length && depth[k] == value; k++ { + reps++ + } + + i += reps + if value == 0 { + writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps], storage_ix, storage) + } else { + if previous_value != value { + writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) + reps-- + } + + if reps < 3 { + for reps != 0 { + reps-- + writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) + } + } else { + reps -= 3 + writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps], storage_ix, storage) + } + + previous_value = value + } + } + } +} + +func buildAndStoreHuffmanTreeFastBW(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, bw *bitWriter) { + var count uint = 0 + var symbols = [4]uint{0} + var length uint = 0 + var total uint = histogram_total + for total != 0 { + if histogram[length] != 0 { + if count < 4 { + symbols[count] = length + } + + count++ + total -= uint(histogram[length]) + } + + length++ + } + + if count <= 1 { + bw.writeBits(4, 1) + bw.writeBits(max_bits, uint64(symbols[0])) + depth[symbols[0]] = 0 + bits[symbols[0]] = 0 + return + } + + for i := 0; i < int(length); i++ { + depth[i] = 0 + } + { + var max_tree_size uint = 2*length + 1 + tree, _ := huffmanTreePool.Get().(*[]huffmanTree) + if tree == nil || cap(*tree) < int(max_tree_size) { + tmp := make([]huffmanTree, max_tree_size) + tree = &tmp + } else { + *tree = (*tree)[:max_tree_size] + } + var count_limit uint32 + for count_limit = 1; ; count_limit *= 2 { + var node int = 0 + var l uint + for l = length; l != 0; { + l-- + if histogram[l] != 0 { + if histogram[l] >= count_limit { + initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) + } else { + initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) + } + + node++ + } + } + { + var n int = node + /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ + var sentinel huffmanTree + var i int = 0 + var j int = n + 1 + var k int + + sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) + + /* The nodes are: + [0, n): the sorted leaf nodes that we start with. + [n]: we add a sentinel here. + [n + 1, 2n): new parent nodes are added here, starting from + (n+1). These are naturally in ascending order. + [2n]: we add a sentinel at the end as well. + There will be (2n+1) elements at the end. */ + initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) + + (*tree)[node] = sentinel + node++ + (*tree)[node] = sentinel + node++ + + for k = n - 1; k > 0; k-- { + var left int + var right int + if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { + left = i + i++ + } else { + left = j + j++ + } + + if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { + right = i + i++ + } else { + right = j + j++ + } + + /* The sentinel node becomes the parent node. */ + (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ + + (*tree)[node-1].index_left_ = int16(left) + (*tree)[node-1].index_right_or_value_ = int16(right) + + /* Add back the last sentinel node. */ + (*tree)[node] = sentinel + node++ + } + + if setDepth(2*n-1, *tree, depth, 14) { + /* We need to pack the Huffman tree in 14 bits. If this was not + successful, add fake entities to the lowest values and retry. */ + break + } + } + } + + huffmanTreePool.Put(tree) + } + + convertBitDepthsToSymbols(depth, length, bits) + if count <= 4 { + var i uint + + /* value of 1 indicates a simple Huffman code */ + bw.writeBits(2, 1) + + bw.writeBits(2, uint64(count)-1) /* NSYM - 1 */ + + /* Sort */ + for i = 0; i < count; i++ { + var j uint + for j = i + 1; j < count; j++ { + if depth[symbols[j]] < depth[symbols[i]] { + var tmp uint = symbols[j] + symbols[j] = symbols[i] + symbols[i] = tmp + } + } + } + + if count == 2 { + bw.writeBits(max_bits, uint64(symbols[0])) + bw.writeBits(max_bits, uint64(symbols[1])) + } else if count == 3 { + bw.writeBits(max_bits, uint64(symbols[0])) + bw.writeBits(max_bits, uint64(symbols[1])) + bw.writeBits(max_bits, uint64(symbols[2])) + } else { + bw.writeBits(max_bits, uint64(symbols[0])) + bw.writeBits(max_bits, uint64(symbols[1])) + bw.writeBits(max_bits, uint64(symbols[2])) + bw.writeBits(max_bits, uint64(symbols[3])) + + /* tree-select */ + bw.writeSingleBit(depth[symbols[0]] == 1) + } + } else { + var previous_value byte = 8 + var i uint + + /* Complex Huffman Tree */ + storeStaticCodeLengthCodeBW(bw) + + /* Actual RLE coding. */ + for i = 0; i < length; { + var value byte = depth[i] + var reps uint = 1 + var k uint + for k = i + 1; k < length && depth[k] == value; k++ { + reps++ + } + + i += reps + if value == 0 { + bw.writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps]) + } else { + if previous_value != value { + bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) + reps-- + } + + if reps < 3 { + for reps != 0 { + reps-- + bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) + } + } else { + reps -= 3 + bw.writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps]) + } + + previous_value = value + } + } + } +} + +func indexOf(v []byte, v_size uint, value byte) uint { + var i uint = 0 + for ; i < v_size; i++ { + if v[i] == value { + return i + } + } + + return i +} + +func moveToFront(v []byte, index uint) { + var value byte = v[index] + var i uint + for i = index; i != 0; i-- { + v[i] = v[i-1] + } + + v[0] = value +} + +func moveToFrontTransform(v_in []uint32, v_size uint, v_out []uint32) { + var i uint + var mtf [256]byte + var max_value uint32 + if v_size == 0 { + return + } + + max_value = v_in[0] + for i = 1; i < v_size; i++ { + if v_in[i] > max_value { + max_value = v_in[i] + } + } + + assert(max_value < 256) + for i = 0; uint32(i) <= max_value; i++ { + mtf[i] = byte(i) + } + { + var mtf_size uint = uint(max_value + 1) + for i = 0; i < v_size; i++ { + var index uint = indexOf(mtf[:], mtf_size, byte(v_in[i])) + assert(index < mtf_size) + v_out[i] = uint32(index) + moveToFront(mtf[:], index) + } + } +} + +/* +Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of + + the run length plus extra bits (lower 9 bits is the prefix code and the rest + are the extra bits). Non-zero values in v[] are shifted by + *max_length_prefix. Will not create prefix codes bigger than the initial + value of *max_run_length_prefix. The prefix code of run length L is simply + Log2Floor(L) and the number of extra bits is the same as the prefix code. +*/ +func runLengthCodeZeros(in_size uint, v []uint32, out_size *uint, max_run_length_prefix *uint32) { + var max_reps uint32 = 0 + var i uint + var max_prefix uint32 + for i = 0; i < in_size; { + var reps uint32 = 0 + for ; i < in_size && v[i] != 0; i++ { + } + for ; i < in_size && v[i] == 0; i++ { + reps++ + } + + max_reps = brotli_max_uint32_t(reps, max_reps) + } + + if max_reps > 0 { + max_prefix = log2FloorNonZero(uint(max_reps)) + } else { + max_prefix = 0 + } + max_prefix = brotli_min_uint32_t(max_prefix, *max_run_length_prefix) + *max_run_length_prefix = max_prefix + *out_size = 0 + for i = 0; i < in_size; { + assert(*out_size <= i) + if v[i] != 0 { + v[*out_size] = v[i] + *max_run_length_prefix + i++ + (*out_size)++ + } else { + var reps uint32 = 1 + var k uint + for k = i + 1; k < in_size && v[k] == 0; k++ { + reps++ + } + + i += uint(reps) + for reps != 0 { + if reps < 2< 0) + writeSingleBit(use_rle, storage_ix, storage) + if use_rle { + writeBits(4, uint64(max_run_length_prefix)-1, storage_ix, storage) + } + } + + buildAndStoreHuffmanTree(histogram[:], uint(uint32(num_clusters)+max_run_length_prefix), uint(uint32(num_clusters)+max_run_length_prefix), tree, depths[:], bits[:], storage_ix, storage) + for i = 0; i < num_rle_symbols; i++ { + var rle_symbol uint32 = rle_symbols[i] & encodeContextMap_kSymbolMask + var extra_bits_val uint32 = rle_symbols[i] >> symbolBits + writeBits(uint(depths[rle_symbol]), uint64(bits[rle_symbol]), storage_ix, storage) + if rle_symbol > 0 && rle_symbol <= max_run_length_prefix { + writeBits(uint(rle_symbol), uint64(extra_bits_val), storage_ix, storage) + } + } + + writeBits(1, 1, storage_ix, storage) /* use move-to-front */ + rle_symbols = nil +} + +/* Stores the block switch command with index block_ix to the bit stream. */ +func storeBlockSwitch(code *blockSplitCode, block_len uint32, block_type byte, is_first_block bool, storage_ix *uint, storage []byte) { + var typecode uint = nextBlockTypeCode(&code.type_code_calculator, block_type) + var lencode uint + var len_nextra uint32 + var len_extra uint32 + if !is_first_block { + writeBits(uint(code.type_depths[typecode]), uint64(code.type_bits[typecode]), storage_ix, storage) + } + + getBlockLengthPrefixCode(block_len, &lencode, &len_nextra, &len_extra) + + writeBits(uint(code.length_depths[lencode]), uint64(code.length_bits[lencode]), storage_ix, storage) + writeBits(uint(len_nextra), uint64(len_extra), storage_ix, storage) +} + +/* +Builds a BlockSplitCode data structure from the block split given by the + + vector of block types and block lengths and stores it to the bit stream. +*/ +func buildAndStoreBlockSplitCode(types []byte, lengths []uint32, num_blocks uint, num_types uint, tree []huffmanTree, code *blockSplitCode, storage_ix *uint, storage []byte) { + var type_histo [maxBlockTypeSymbols]uint32 + var length_histo [numBlockLenSymbols]uint32 + var i uint + var type_code_calculator blockTypeCodeCalculator + for i := 0; i < int(num_types+2); i++ { + type_histo[i] = 0 + } + length_histo = [numBlockLenSymbols]uint32{} + initBlockTypeCodeCalculator(&type_code_calculator) + for i = 0; i < num_blocks; i++ { + var type_code uint = nextBlockTypeCode(&type_code_calculator, types[i]) + if i != 0 { + type_histo[type_code]++ + } + length_histo[blockLengthPrefixCode(lengths[i])]++ + } + + storeVarLenUint8(num_types-1, storage_ix, storage) + if num_types > 1 { /* TODO: else? could StoreBlockSwitch occur? */ + buildAndStoreHuffmanTree(type_histo[0:], num_types+2, num_types+2, tree, code.type_depths[0:], code.type_bits[0:], storage_ix, storage) + buildAndStoreHuffmanTree(length_histo[0:], numBlockLenSymbols, numBlockLenSymbols, tree, code.length_depths[0:], code.length_bits[0:], storage_ix, storage) + storeBlockSwitch(code, lengths[0], types[0], true, storage_ix, storage) + } +} + +/* Stores a context map where the histogram type is always the block type. */ +func storeTrivialContextMap(num_types uint, context_bits uint, tree []huffmanTree, storage_ix *uint, storage []byte) { + storeVarLenUint8(num_types-1, storage_ix, storage) + if num_types > 1 { + var repeat_code uint = context_bits - 1 + var repeat_bits uint = (1 << repeat_code) - 1 + var alphabet_size uint = num_types + repeat_code + var histogram [maxContextMapSymbols]uint32 + var depths [maxContextMapSymbols]byte + var bits [maxContextMapSymbols]uint16 + var i uint + for i := 0; i < int(alphabet_size); i++ { + histogram[i] = 0 + } + + /* Write RLEMAX. */ + writeBits(1, 1, storage_ix, storage) + + writeBits(4, uint64(repeat_code)-1, storage_ix, storage) + histogram[repeat_code] = uint32(num_types) + histogram[0] = 1 + for i = context_bits; i < alphabet_size; i++ { + histogram[i] = 1 + } + + buildAndStoreHuffmanTree(histogram[:], alphabet_size, alphabet_size, tree, depths[:], bits[:], storage_ix, storage) + for i = 0; i < num_types; i++ { + var tmp uint + if i == 0 { + tmp = 0 + } else { + tmp = i + context_bits - 1 + } + var code uint = tmp + writeBits(uint(depths[code]), uint64(bits[code]), storage_ix, storage) + writeBits(uint(depths[repeat_code]), uint64(bits[repeat_code]), storage_ix, storage) + writeBits(repeat_code, uint64(repeat_bits), storage_ix, storage) + } + + /* Write IMTF (inverse-move-to-front) bit. */ + writeBits(1, 1, storage_ix, storage) + } +} + +/* Manages the encoding of one block category (literal, command or distance). */ +type blockEncoder struct { + histogram_length_ uint + num_block_types_ uint + block_types_ []byte + block_lengths_ []uint32 + num_blocks_ uint + block_split_code_ blockSplitCode + block_ix_ uint + block_len_ uint + entropy_ix_ uint + depths_ []byte + bits_ []uint16 +} + +var blockEncoderPool sync.Pool + +func getBlockEncoder(histogram_length uint, num_block_types uint, block_types []byte, block_lengths []uint32, num_blocks uint) *blockEncoder { + self, _ := blockEncoderPool.Get().(*blockEncoder) + + if self != nil { + self.block_ix_ = 0 + self.entropy_ix_ = 0 + self.depths_ = self.depths_[:0] + self.bits_ = self.bits_[:0] + } else { + self = &blockEncoder{} + } + + self.histogram_length_ = histogram_length + self.num_block_types_ = num_block_types + self.block_types_ = block_types + self.block_lengths_ = block_lengths + self.num_blocks_ = num_blocks + initBlockTypeCodeCalculator(&self.block_split_code_.type_code_calculator) + if num_blocks == 0 { + self.block_len_ = 0 + } else { + self.block_len_ = uint(block_lengths[0]) + } + + return self +} + +func cleanupBlockEncoder(self *blockEncoder) { + blockEncoderPool.Put(self) +} + +/* +Creates entropy codes of block lengths and block types and stores them + + to the bit stream. +*/ +func buildAndStoreBlockSwitchEntropyCodes(self *blockEncoder, tree []huffmanTree, storage_ix *uint, storage []byte) { + buildAndStoreBlockSplitCode(self.block_types_, self.block_lengths_, self.num_blocks_, self.num_block_types_, tree, &self.block_split_code_, storage_ix, storage) +} + +/* +Stores the next symbol with the entropy code of the current block type. + + Updates the block type and block length at block boundaries. +*/ +func storeSymbol(self *blockEncoder, symbol uint, storage_ix *uint, storage []byte) { + if self.block_len_ == 0 { + self.block_ix_++ + var block_ix uint = self.block_ix_ + var block_len uint32 = self.block_lengths_[block_ix] + var block_type byte = self.block_types_[block_ix] + self.block_len_ = uint(block_len) + self.entropy_ix_ = uint(block_type) * self.histogram_length_ + storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) + } + + self.block_len_-- + { + var ix uint = self.entropy_ix_ + symbol + writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) + } +} + +/* +Stores the next symbol with the entropy code of the current block type and + + context value. + Updates the block type and block length at block boundaries. +*/ +func storeSymbolWithContext(self *blockEncoder, symbol uint, context uint, context_map []uint32, storage_ix *uint, storage []byte, context_bits uint) { + if self.block_len_ == 0 { + self.block_ix_++ + var block_ix uint = self.block_ix_ + var block_len uint32 = self.block_lengths_[block_ix] + var block_type byte = self.block_types_[block_ix] + self.block_len_ = uint(block_len) + self.entropy_ix_ = uint(block_type) << context_bits + storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) + } + + self.block_len_-- + { + var histo_ix uint = uint(context_map[self.entropy_ix_+context]) + var ix uint = histo_ix*self.histogram_length_ + symbol + writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) + } +} + +func buildAndStoreEntropyCodesLiteral(self *blockEncoder, histograms []histogramLiteral, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { + var table_size uint = histograms_size * self.histogram_length_ + if cap(self.depths_) < int(table_size) { + self.depths_ = make([]byte, table_size) + } else { + self.depths_ = self.depths_[:table_size] + } + if cap(self.bits_) < int(table_size) { + self.bits_ = make([]uint16, table_size) + } else { + self.bits_ = self.bits_[:table_size] + } + { + var i uint + for i = 0; i < histograms_size; i++ { + var ix uint = i * self.histogram_length_ + buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) + } + } +} + +func buildAndStoreEntropyCodesCommand(self *blockEncoder, histograms []histogramCommand, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { + var table_size uint = histograms_size * self.histogram_length_ + if cap(self.depths_) < int(table_size) { + self.depths_ = make([]byte, table_size) + } else { + self.depths_ = self.depths_[:table_size] + } + if cap(self.bits_) < int(table_size) { + self.bits_ = make([]uint16, table_size) + } else { + self.bits_ = self.bits_[:table_size] + } + { + var i uint + for i = 0; i < histograms_size; i++ { + var ix uint = i * self.histogram_length_ + buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) + } + } +} + +func buildAndStoreEntropyCodesDistance(self *blockEncoder, histograms []histogramDistance, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { + var table_size uint = histograms_size * self.histogram_length_ + if cap(self.depths_) < int(table_size) { + self.depths_ = make([]byte, table_size) + } else { + self.depths_ = self.depths_[:table_size] + } + if cap(self.bits_) < int(table_size) { + self.bits_ = make([]uint16, table_size) + } else { + self.bits_ = self.bits_[:table_size] + } + { + var i uint + for i = 0; i < histograms_size; i++ { + var ix uint = i * self.histogram_length_ + buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) + } + } +} + +func jumpToByteBoundary(storage_ix *uint, storage []byte) { + *storage_ix = (*storage_ix + 7) &^ 7 + storage[*storage_ix>>3] = 0 +} + +func storeMetaBlock(input []byte, start_pos uint, length uint, mask uint, prev_byte byte, prev_byte2 byte, is_last bool, params *encoderParams, literal_context_mode int, commands []command, mb *metaBlockSplit, storage_ix *uint, storage []byte) { + var pos uint = start_pos + var i uint + var num_distance_symbols uint32 = params.dist.alphabet_size + var num_effective_distance_symbols uint32 = num_distance_symbols + var tree []huffmanTree + var literal_context_lut contextLUT = getContextLUT(literal_context_mode) + var dist *distanceParams = ¶ms.dist + if params.large_window && num_effective_distance_symbols > numHistogramDistanceSymbols { + num_effective_distance_symbols = numHistogramDistanceSymbols + } + + storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) + + tree = make([]huffmanTree, maxHuffmanTreeSize) + literal_enc := getBlockEncoder(numLiteralSymbols, mb.literal_split.num_types, mb.literal_split.types, mb.literal_split.lengths, mb.literal_split.num_blocks) + command_enc := getBlockEncoder(numCommandSymbols, mb.command_split.num_types, mb.command_split.types, mb.command_split.lengths, mb.command_split.num_blocks) + distance_enc := getBlockEncoder(uint(num_effective_distance_symbols), mb.distance_split.num_types, mb.distance_split.types, mb.distance_split.lengths, mb.distance_split.num_blocks) + + buildAndStoreBlockSwitchEntropyCodes(literal_enc, tree, storage_ix, storage) + buildAndStoreBlockSwitchEntropyCodes(command_enc, tree, storage_ix, storage) + buildAndStoreBlockSwitchEntropyCodes(distance_enc, tree, storage_ix, storage) + + writeBits(2, uint64(dist.distance_postfix_bits), storage_ix, storage) + writeBits(4, uint64(dist.num_direct_distance_codes)>>dist.distance_postfix_bits, storage_ix, storage) + for i = 0; i < mb.literal_split.num_types; i++ { + writeBits(2, uint64(literal_context_mode), storage_ix, storage) + } + + if mb.literal_context_map_size == 0 { + storeTrivialContextMap(mb.literal_histograms_size, literalContextBits, tree, storage_ix, storage) + } else { + encodeContextMap(mb.literal_context_map, mb.literal_context_map_size, mb.literal_histograms_size, tree, storage_ix, storage) + } + + if mb.distance_context_map_size == 0 { + storeTrivialContextMap(mb.distance_histograms_size, distanceContextBits, tree, storage_ix, storage) + } else { + encodeContextMap(mb.distance_context_map, mb.distance_context_map_size, mb.distance_histograms_size, tree, storage_ix, storage) + } + + buildAndStoreEntropyCodesLiteral(literal_enc, mb.literal_histograms, mb.literal_histograms_size, numLiteralSymbols, tree, storage_ix, storage) + buildAndStoreEntropyCodesCommand(command_enc, mb.command_histograms, mb.command_histograms_size, numCommandSymbols, tree, storage_ix, storage) + buildAndStoreEntropyCodesDistance(distance_enc, mb.distance_histograms, mb.distance_histograms_size, uint(num_distance_symbols), tree, storage_ix, storage) + tree = nil + + for _, cmd := range commands { + var cmd_code uint = uint(cmd.cmd_prefix_) + storeSymbol(command_enc, cmd_code, storage_ix, storage) + storeCommandExtra(&cmd, storage_ix, storage) + if mb.literal_context_map_size == 0 { + var j uint + for j = uint(cmd.insert_len_); j != 0; j-- { + storeSymbol(literal_enc, uint(input[pos&mask]), storage_ix, storage) + pos++ + } + } else { + var j uint + for j = uint(cmd.insert_len_); j != 0; j-- { + var context uint = uint(getContext(prev_byte, prev_byte2, literal_context_lut)) + var literal byte = input[pos&mask] + storeSymbolWithContext(literal_enc, uint(literal), context, mb.literal_context_map, storage_ix, storage, literalContextBits) + prev_byte2 = prev_byte + prev_byte = literal + pos++ + } + } + + pos += uint(commandCopyLen(&cmd)) + if commandCopyLen(&cmd) != 0 { + prev_byte2 = input[(pos-2)&mask] + prev_byte = input[(pos-1)&mask] + if cmd.cmd_prefix_ >= 128 { + var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF + var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 + var distextra uint64 = uint64(cmd.dist_extra_) + if mb.distance_context_map_size == 0 { + storeSymbol(distance_enc, dist_code, storage_ix, storage) + } else { + var context uint = uint(commandDistanceContext(&cmd)) + storeSymbolWithContext(distance_enc, dist_code, context, mb.distance_context_map, storage_ix, storage, distanceContextBits) + } + + writeBits(uint(distnumextra), distextra, storage_ix, storage) + } + } + } + + cleanupBlockEncoder(distance_enc) + cleanupBlockEncoder(command_enc) + cleanupBlockEncoder(literal_enc) + if is_last { + jumpToByteBoundary(storage_ix, storage) + } +} + +func buildHistograms(input []byte, start_pos uint, mask uint, commands []command, lit_histo *histogramLiteral, cmd_histo *histogramCommand, dist_histo *histogramDistance) { + var pos uint = start_pos + for _, cmd := range commands { + var j uint + histogramAddCommand(cmd_histo, uint(cmd.cmd_prefix_)) + for j = uint(cmd.insert_len_); j != 0; j-- { + histogramAddLiteral(lit_histo, uint(input[pos&mask])) + pos++ + } + + pos += uint(commandCopyLen(&cmd)) + if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { + histogramAddDistance(dist_histo, uint(cmd.dist_prefix_)&0x3FF) + } + } +} + +func storeDataWithHuffmanCodes(input []byte, start_pos uint, mask uint, commands []command, lit_depth []byte, lit_bits []uint16, cmd_depth []byte, cmd_bits []uint16, dist_depth []byte, dist_bits []uint16, storage_ix *uint, storage []byte) { + var pos uint = start_pos + for _, cmd := range commands { + var cmd_code uint = uint(cmd.cmd_prefix_) + var j uint + writeBits(uint(cmd_depth[cmd_code]), uint64(cmd_bits[cmd_code]), storage_ix, storage) + storeCommandExtra(&cmd, storage_ix, storage) + for j = uint(cmd.insert_len_); j != 0; j-- { + var literal byte = input[pos&mask] + writeBits(uint(lit_depth[literal]), uint64(lit_bits[literal]), storage_ix, storage) + pos++ + } + + pos += uint(commandCopyLen(&cmd)) + if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { + var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF + var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 + var distextra uint32 = cmd.dist_extra_ + writeBits(uint(dist_depth[dist_code]), uint64(dist_bits[dist_code]), storage_ix, storage) + writeBits(uint(distnumextra), uint64(distextra), storage_ix, storage) + } + } +} + +func storeMetaBlockTrivial(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { + var lit_histo histogramLiteral + var cmd_histo histogramCommand + var dist_histo histogramDistance + var lit_depth [numLiteralSymbols]byte + var lit_bits [numLiteralSymbols]uint16 + var cmd_depth [numCommandSymbols]byte + var cmd_bits [numCommandSymbols]uint16 + var dist_depth [maxSimpleDistanceAlphabetSize]byte + var dist_bits [maxSimpleDistanceAlphabetSize]uint16 + var tree []huffmanTree + var num_distance_symbols uint32 = params.dist.alphabet_size + + storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) + + histogramClearLiteral(&lit_histo) + histogramClearCommand(&cmd_histo) + histogramClearDistance(&dist_histo) + + buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) + + writeBits(13, 0, storage_ix, storage) + + tree = make([]huffmanTree, maxHuffmanTreeSize) + buildAndStoreHuffmanTree(lit_histo.data_[:], numLiteralSymbols, numLiteralSymbols, tree, lit_depth[:], lit_bits[:], storage_ix, storage) + buildAndStoreHuffmanTree(cmd_histo.data_[:], numCommandSymbols, numCommandSymbols, tree, cmd_depth[:], cmd_bits[:], storage_ix, storage) + buildAndStoreHuffmanTree(dist_histo.data_[:], maxSimpleDistanceAlphabetSize, uint(num_distance_symbols), tree, dist_depth[:], dist_bits[:], storage_ix, storage) + tree = nil + storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) + if is_last { + jumpToByteBoundary(storage_ix, storage) + } +} + +func storeMetaBlockFast(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { + var num_distance_symbols uint32 = params.dist.alphabet_size + var distance_alphabet_bits uint32 = log2FloorNonZero(uint(num_distance_symbols-1)) + 1 + + storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) + + writeBits(13, 0, storage_ix, storage) + + if len(commands) <= 128 { + var histogram = [numLiteralSymbols]uint32{0} + var pos uint = start_pos + var num_literals uint = 0 + var lit_depth [numLiteralSymbols]byte + var lit_bits [numLiteralSymbols]uint16 + for _, cmd := range commands { + var j uint + for j = uint(cmd.insert_len_); j != 0; j-- { + histogram[input[pos&mask]]++ + pos++ + } + + num_literals += uint(cmd.insert_len_) + pos += uint(commandCopyLen(&cmd)) + } + + buildAndStoreHuffmanTreeFast(histogram[:], num_literals, /* max_bits = */ + 8, lit_depth[:], lit_bits[:], storage_ix, storage) + + storeStaticCommandHuffmanTree(storage_ix, storage) + storeStaticDistanceHuffmanTree(storage_ix, storage) + storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], kStaticCommandCodeDepth[:], kStaticCommandCodeBits[:], kStaticDistanceCodeDepth[:], kStaticDistanceCodeBits[:], storage_ix, storage) + } else { + var lit_histo histogramLiteral + var cmd_histo histogramCommand + var dist_histo histogramDistance + var lit_depth [numLiteralSymbols]byte + var lit_bits [numLiteralSymbols]uint16 + var cmd_depth [numCommandSymbols]byte + var cmd_bits [numCommandSymbols]uint16 + var dist_depth [maxSimpleDistanceAlphabetSize]byte + var dist_bits [maxSimpleDistanceAlphabetSize]uint16 + histogramClearLiteral(&lit_histo) + histogramClearCommand(&cmd_histo) + histogramClearDistance(&dist_histo) + buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) + buildAndStoreHuffmanTreeFast(lit_histo.data_[:], lit_histo.total_count_, /* max_bits = */ + 8, lit_depth[:], lit_bits[:], storage_ix, storage) + + buildAndStoreHuffmanTreeFast(cmd_histo.data_[:], cmd_histo.total_count_, /* max_bits = */ + 10, cmd_depth[:], cmd_bits[:], storage_ix, storage) + + buildAndStoreHuffmanTreeFast(dist_histo.data_[:], dist_histo.total_count_, /* max_bits = */ + uint(distance_alphabet_bits), dist_depth[:], dist_bits[:], storage_ix, storage) + + storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) + } + + if is_last { + jumpToByteBoundary(storage_ix, storage) + } +} + +/* +This is for storing uncompressed blocks (simple raw storage of + + bytes-as-bytes). +*/ +func storeUncompressedMetaBlock(is_final_block bool, input []byte, position uint, mask uint, len uint, storage_ix *uint, storage []byte) { + var masked_pos uint = position & mask + storeUncompressedMetaBlockHeader(uint(len), storage_ix, storage) + jumpToByteBoundary(storage_ix, storage) + + if masked_pos+len > mask+1 { + var len1 uint = mask + 1 - masked_pos + copy(storage[*storage_ix>>3:], input[masked_pos:][:len1]) + *storage_ix += len1 << 3 + len -= len1 + masked_pos = 0 + } + + copy(storage[*storage_ix>>3:], input[masked_pos:][:len]) + *storage_ix += uint(len << 3) + + /* We need to clear the next 4 bytes to continue to be + compatible with BrotliWriteBits. */ + writeBitsPrepareStorage(*storage_ix, storage) + + /* Since the uncompressed block itself may not be the final block, add an + empty one after this. */ + if is_final_block { + writeBits(1, 1, storage_ix, storage) /* islast */ + writeBits(1, 1, storage_ix, storage) /* isempty */ + jumpToByteBoundary(storage_ix, storage) + } +} diff --git a/vendor/github.com/andybalholm/brotli/cluster.go b/vendor/github.com/andybalholm/brotli/cluster.go new file mode 100644 index 0000000..df8a328 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/cluster.go @@ -0,0 +1,30 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Functions for clustering similar histograms together. */ + +type histogramPair struct { + idx1 uint32 + idx2 uint32 + cost_combo float64 + cost_diff float64 +} + +func histogramPairIsLess(p1 *histogramPair, p2 *histogramPair) bool { + if p1.cost_diff != p2.cost_diff { + return p1.cost_diff > p2.cost_diff + } + + return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1) +} + +/* Returns entropy reduction of the context map when we combine two clusters. */ +func clusterCostDiff(size_a uint, size_b uint) float64 { + var size_c uint = size_a + size_b + return float64(size_a)*fastLog2(size_a) + float64(size_b)*fastLog2(size_b) - float64(size_c)*fastLog2(size_c) +} diff --git a/vendor/github.com/andybalholm/brotli/cluster_command.go b/vendor/github.com/andybalholm/brotli/cluster_command.go new file mode 100644 index 0000000..45b569b --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/cluster_command.go @@ -0,0 +1,164 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if + it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ +func compareAndPushToQueueCommand(out []histogramCommand, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { + var is_good_pair bool = false + var p histogramPair + p.idx2 = 0 + p.idx1 = p.idx2 + p.cost_combo = 0 + p.cost_diff = p.cost_combo + if idx1 == idx2 { + return + } + + if idx2 < idx1 { + var t uint32 = idx2 + idx2 = idx1 + idx1 = t + } + + p.idx1 = idx1 + p.idx2 = idx2 + p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) + p.cost_diff -= out[idx1].bit_cost_ + p.cost_diff -= out[idx2].bit_cost_ + + if out[idx1].total_count_ == 0 { + p.cost_combo = out[idx2].bit_cost_ + is_good_pair = true + } else if out[idx2].total_count_ == 0 { + p.cost_combo = out[idx1].bit_cost_ + is_good_pair = true + } else { + var threshold float64 + if *num_pairs == 0 { + threshold = 1e99 + } else { + threshold = brotli_max_double(0.0, pairs[0].cost_diff) + } + var combo histogramCommand = out[idx1] + var cost_combo float64 + histogramAddHistogramCommand(&combo, &out[idx2]) + cost_combo = populationCostCommand(&combo) + if cost_combo < threshold-p.cost_diff { + p.cost_combo = cost_combo + is_good_pair = true + } + } + + if is_good_pair { + p.cost_diff += p.cost_combo + if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { + /* Replace the top of the queue if needed. */ + if *num_pairs < max_num_pairs { + pairs[*num_pairs] = pairs[0] + (*num_pairs)++ + } + + pairs[0] = p + } else if *num_pairs < max_num_pairs { + pairs[*num_pairs] = p + (*num_pairs)++ + } + } +} + +func histogramCombineCommand(out []histogramCommand, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { + var cost_diff_threshold float64 = 0.0 + var min_cluster_size uint = 1 + var num_pairs uint = 0 + { + /* We maintain a vector of histogram pairs, with the property that the pair + with the maximum bit cost reduction is the first. */ + var idx1 uint + for idx1 = 0; idx1 < num_clusters; idx1++ { + var idx2 uint + for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { + compareAndPushToQueueCommand(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) + } + } + } + + for num_clusters > min_cluster_size { + var best_idx1 uint32 + var best_idx2 uint32 + var i uint + if pairs[0].cost_diff >= cost_diff_threshold { + cost_diff_threshold = 1e99 + min_cluster_size = max_clusters + continue + } + + /* Take the best pair from the top of heap. */ + best_idx1 = pairs[0].idx1 + + best_idx2 = pairs[0].idx2 + histogramAddHistogramCommand(&out[best_idx1], &out[best_idx2]) + out[best_idx1].bit_cost_ = pairs[0].cost_combo + cluster_size[best_idx1] += cluster_size[best_idx2] + for i = 0; i < symbols_size; i++ { + if symbols[i] == best_idx2 { + symbols[i] = best_idx1 + } + } + + for i = 0; i < num_clusters; i++ { + if clusters[i] == best_idx2 { + copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) + break + } + } + + num_clusters-- + { + /* Remove pairs intersecting the just combined best pair. */ + var copy_to_idx uint = 0 + for i = 0; i < num_pairs; i++ { + var p *histogramPair = &pairs[i] + if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { + /* Remove invalid pair from the queue. */ + continue + } + + if histogramPairIsLess(&pairs[0], p) { + /* Replace the top of the queue if needed. */ + var front histogramPair = pairs[0] + pairs[0] = *p + pairs[copy_to_idx] = front + } else { + pairs[copy_to_idx] = *p + } + + copy_to_idx++ + } + + num_pairs = copy_to_idx + } + + /* Push new pairs formed with the combined histogram to the heap. */ + for i = 0; i < num_clusters; i++ { + compareAndPushToQueueCommand(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) + } + } + + return num_clusters +} + +/* What is the bit cost of moving histogram from cur_symbol to candidate. */ +func histogramBitCostDistanceCommand(histogram *histogramCommand, candidate *histogramCommand) float64 { + if histogram.total_count_ == 0 { + return 0.0 + } else { + var tmp histogramCommand = *histogram + histogramAddHistogramCommand(&tmp, candidate) + return populationCostCommand(&tmp) - candidate.bit_cost_ + } +} diff --git a/vendor/github.com/andybalholm/brotli/cluster_distance.go b/vendor/github.com/andybalholm/brotli/cluster_distance.go new file mode 100644 index 0000000..1aaa86e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/cluster_distance.go @@ -0,0 +1,326 @@ +package brotli + +import "math" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if + it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ +func compareAndPushToQueueDistance(out []histogramDistance, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { + var is_good_pair bool = false + var p histogramPair + p.idx2 = 0 + p.idx1 = p.idx2 + p.cost_combo = 0 + p.cost_diff = p.cost_combo + if idx1 == idx2 { + return + } + + if idx2 < idx1 { + var t uint32 = idx2 + idx2 = idx1 + idx1 = t + } + + p.idx1 = idx1 + p.idx2 = idx2 + p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) + p.cost_diff -= out[idx1].bit_cost_ + p.cost_diff -= out[idx2].bit_cost_ + + if out[idx1].total_count_ == 0 { + p.cost_combo = out[idx2].bit_cost_ + is_good_pair = true + } else if out[idx2].total_count_ == 0 { + p.cost_combo = out[idx1].bit_cost_ + is_good_pair = true + } else { + var threshold float64 + if *num_pairs == 0 { + threshold = 1e99 + } else { + threshold = brotli_max_double(0.0, pairs[0].cost_diff) + } + var combo histogramDistance = out[idx1] + var cost_combo float64 + histogramAddHistogramDistance(&combo, &out[idx2]) + cost_combo = populationCostDistance(&combo) + if cost_combo < threshold-p.cost_diff { + p.cost_combo = cost_combo + is_good_pair = true + } + } + + if is_good_pair { + p.cost_diff += p.cost_combo + if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { + /* Replace the top of the queue if needed. */ + if *num_pairs < max_num_pairs { + pairs[*num_pairs] = pairs[0] + (*num_pairs)++ + } + + pairs[0] = p + } else if *num_pairs < max_num_pairs { + pairs[*num_pairs] = p + (*num_pairs)++ + } + } +} + +func histogramCombineDistance(out []histogramDistance, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { + var cost_diff_threshold float64 = 0.0 + var min_cluster_size uint = 1 + var num_pairs uint = 0 + { + /* We maintain a vector of histogram pairs, with the property that the pair + with the maximum bit cost reduction is the first. */ + var idx1 uint + for idx1 = 0; idx1 < num_clusters; idx1++ { + var idx2 uint + for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { + compareAndPushToQueueDistance(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) + } + } + } + + for num_clusters > min_cluster_size { + var best_idx1 uint32 + var best_idx2 uint32 + var i uint + if pairs[0].cost_diff >= cost_diff_threshold { + cost_diff_threshold = 1e99 + min_cluster_size = max_clusters + continue + } + + /* Take the best pair from the top of heap. */ + best_idx1 = pairs[0].idx1 + + best_idx2 = pairs[0].idx2 + histogramAddHistogramDistance(&out[best_idx1], &out[best_idx2]) + out[best_idx1].bit_cost_ = pairs[0].cost_combo + cluster_size[best_idx1] += cluster_size[best_idx2] + for i = 0; i < symbols_size; i++ { + if symbols[i] == best_idx2 { + symbols[i] = best_idx1 + } + } + + for i = 0; i < num_clusters; i++ { + if clusters[i] == best_idx2 { + copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) + break + } + } + + num_clusters-- + { + /* Remove pairs intersecting the just combined best pair. */ + var copy_to_idx uint = 0 + for i = 0; i < num_pairs; i++ { + var p *histogramPair = &pairs[i] + if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { + /* Remove invalid pair from the queue. */ + continue + } + + if histogramPairIsLess(&pairs[0], p) { + /* Replace the top of the queue if needed. */ + var front histogramPair = pairs[0] + pairs[0] = *p + pairs[copy_to_idx] = front + } else { + pairs[copy_to_idx] = *p + } + + copy_to_idx++ + } + + num_pairs = copy_to_idx + } + + /* Push new pairs formed with the combined histogram to the heap. */ + for i = 0; i < num_clusters; i++ { + compareAndPushToQueueDistance(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) + } + } + + return num_clusters +} + +/* What is the bit cost of moving histogram from cur_symbol to candidate. */ +func histogramBitCostDistanceDistance(histogram *histogramDistance, candidate *histogramDistance) float64 { + if histogram.total_count_ == 0 { + return 0.0 + } else { + var tmp histogramDistance = *histogram + histogramAddHistogramDistance(&tmp, candidate) + return populationCostDistance(&tmp) - candidate.bit_cost_ + } +} + +/* Find the best 'out' histogram for each of the 'in' histograms. + When called, clusters[0..num_clusters) contains the unique values from + symbols[0..in_size), but this property is not preserved in this function. + Note: we assume that out[]->bit_cost_ is already up-to-date. */ +func histogramRemapDistance(in []histogramDistance, in_size uint, clusters []uint32, num_clusters uint, out []histogramDistance, symbols []uint32) { + var i uint + for i = 0; i < in_size; i++ { + var best_out uint32 + if i == 0 { + best_out = symbols[0] + } else { + best_out = symbols[i-1] + } + var best_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[best_out]) + var j uint + for j = 0; j < num_clusters; j++ { + var cur_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[clusters[j]]) + if cur_bits < best_bits { + best_bits = cur_bits + best_out = clusters[j] + } + } + + symbols[i] = best_out + } + + /* Recompute each out based on raw and symbols. */ + for i = 0; i < num_clusters; i++ { + histogramClearDistance(&out[clusters[i]]) + } + + for i = 0; i < in_size; i++ { + histogramAddHistogramDistance(&out[symbols[i]], &in[i]) + } +} + +/* Reorders elements of the out[0..length) array and changes values in + symbols[0..length) array in the following way: + * when called, symbols[] contains indexes into out[], and has N unique + values (possibly N < length) + * on return, symbols'[i] = f(symbols[i]) and + out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, + where f is a bijection between the range of symbols[] and [0..N), and + the first occurrences of values in symbols'[i] come in consecutive + increasing order. + Returns N, the number of unique values in symbols[]. */ + +var histogramReindexDistance_kInvalidIndex uint32 = math.MaxUint32 + +func histogramReindexDistance(out []histogramDistance, symbols []uint32, length uint) uint { + var new_index []uint32 = make([]uint32, length) + var next_index uint32 + var tmp []histogramDistance + var i uint + for i = 0; i < length; i++ { + new_index[i] = histogramReindexDistance_kInvalidIndex + } + + next_index = 0 + for i = 0; i < length; i++ { + if new_index[symbols[i]] == histogramReindexDistance_kInvalidIndex { + new_index[symbols[i]] = next_index + next_index++ + } + } + + /* TODO: by using idea of "cycle-sort" we can avoid allocation of + tmp and reduce the number of copying by the factor of 2. */ + tmp = make([]histogramDistance, next_index) + + next_index = 0 + for i = 0; i < length; i++ { + if new_index[symbols[i]] == next_index { + tmp[next_index] = out[symbols[i]] + next_index++ + } + + symbols[i] = new_index[symbols[i]] + } + + new_index = nil + for i = 0; uint32(i) < next_index; i++ { + out[i] = tmp[i] + } + + tmp = nil + return uint(next_index) +} + +func clusterHistogramsDistance(in []histogramDistance, in_size uint, max_histograms uint, out []histogramDistance, out_size *uint, histogram_symbols []uint32) { + var cluster_size []uint32 = make([]uint32, in_size) + var clusters []uint32 = make([]uint32, in_size) + var num_clusters uint = 0 + var max_input_histograms uint = 64 + var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 + var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) + var i uint + + /* For the first pass of clustering, we allow all pairs. */ + for i = 0; i < in_size; i++ { + cluster_size[i] = 1 + } + + for i = 0; i < in_size; i++ { + out[i] = in[i] + out[i].bit_cost_ = populationCostDistance(&in[i]) + histogram_symbols[i] = uint32(i) + } + + for i = 0; i < in_size; i += max_input_histograms { + var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) + var num_new_clusters uint + var j uint + for j = 0; j < num_to_combine; j++ { + clusters[num_clusters+j] = uint32(i + j) + } + + num_new_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) + num_clusters += num_new_clusters + } + { + /* For the second pass, we limit the total number of histogram pairs. + After this limit is reached, we only keep searching for the best pair. */ + var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) + if pairs_capacity < (max_num_pairs + 1) { + var _new_size uint + if pairs_capacity == 0 { + _new_size = max_num_pairs + 1 + } else { + _new_size = pairs_capacity + } + var new_array []histogramPair + for _new_size < (max_num_pairs + 1) { + _new_size *= 2 + } + new_array = make([]histogramPair, _new_size) + if pairs_capacity != 0 { + copy(new_array, pairs[:pairs_capacity]) + } + + pairs = new_array + pairs_capacity = _new_size + } + + /* Collapse similar histograms. */ + num_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) + } + + pairs = nil + cluster_size = nil + + /* Find the optimal map from original histograms to the final ones. */ + histogramRemapDistance(in, in_size, clusters, num_clusters, out, histogram_symbols) + + clusters = nil + + /* Convert the context map to a canonical form. */ + *out_size = histogramReindexDistance(out, histogram_symbols, in_size) +} diff --git a/vendor/github.com/andybalholm/brotli/cluster_literal.go b/vendor/github.com/andybalholm/brotli/cluster_literal.go new file mode 100644 index 0000000..6ba66f3 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/cluster_literal.go @@ -0,0 +1,326 @@ +package brotli + +import "math" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if + it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ +func compareAndPushToQueueLiteral(out []histogramLiteral, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { + var is_good_pair bool = false + var p histogramPair + p.idx2 = 0 + p.idx1 = p.idx2 + p.cost_combo = 0 + p.cost_diff = p.cost_combo + if idx1 == idx2 { + return + } + + if idx2 < idx1 { + var t uint32 = idx2 + idx2 = idx1 + idx1 = t + } + + p.idx1 = idx1 + p.idx2 = idx2 + p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) + p.cost_diff -= out[idx1].bit_cost_ + p.cost_diff -= out[idx2].bit_cost_ + + if out[idx1].total_count_ == 0 { + p.cost_combo = out[idx2].bit_cost_ + is_good_pair = true + } else if out[idx2].total_count_ == 0 { + p.cost_combo = out[idx1].bit_cost_ + is_good_pair = true + } else { + var threshold float64 + if *num_pairs == 0 { + threshold = 1e99 + } else { + threshold = brotli_max_double(0.0, pairs[0].cost_diff) + } + var combo histogramLiteral = out[idx1] + var cost_combo float64 + histogramAddHistogramLiteral(&combo, &out[idx2]) + cost_combo = populationCostLiteral(&combo) + if cost_combo < threshold-p.cost_diff { + p.cost_combo = cost_combo + is_good_pair = true + } + } + + if is_good_pair { + p.cost_diff += p.cost_combo + if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { + /* Replace the top of the queue if needed. */ + if *num_pairs < max_num_pairs { + pairs[*num_pairs] = pairs[0] + (*num_pairs)++ + } + + pairs[0] = p + } else if *num_pairs < max_num_pairs { + pairs[*num_pairs] = p + (*num_pairs)++ + } + } +} + +func histogramCombineLiteral(out []histogramLiteral, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { + var cost_diff_threshold float64 = 0.0 + var min_cluster_size uint = 1 + var num_pairs uint = 0 + { + /* We maintain a vector of histogram pairs, with the property that the pair + with the maximum bit cost reduction is the first. */ + var idx1 uint + for idx1 = 0; idx1 < num_clusters; idx1++ { + var idx2 uint + for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { + compareAndPushToQueueLiteral(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) + } + } + } + + for num_clusters > min_cluster_size { + var best_idx1 uint32 + var best_idx2 uint32 + var i uint + if pairs[0].cost_diff >= cost_diff_threshold { + cost_diff_threshold = 1e99 + min_cluster_size = max_clusters + continue + } + + /* Take the best pair from the top of heap. */ + best_idx1 = pairs[0].idx1 + + best_idx2 = pairs[0].idx2 + histogramAddHistogramLiteral(&out[best_idx1], &out[best_idx2]) + out[best_idx1].bit_cost_ = pairs[0].cost_combo + cluster_size[best_idx1] += cluster_size[best_idx2] + for i = 0; i < symbols_size; i++ { + if symbols[i] == best_idx2 { + symbols[i] = best_idx1 + } + } + + for i = 0; i < num_clusters; i++ { + if clusters[i] == best_idx2 { + copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) + break + } + } + + num_clusters-- + { + /* Remove pairs intersecting the just combined best pair. */ + var copy_to_idx uint = 0 + for i = 0; i < num_pairs; i++ { + var p *histogramPair = &pairs[i] + if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { + /* Remove invalid pair from the queue. */ + continue + } + + if histogramPairIsLess(&pairs[0], p) { + /* Replace the top of the queue if needed. */ + var front histogramPair = pairs[0] + pairs[0] = *p + pairs[copy_to_idx] = front + } else { + pairs[copy_to_idx] = *p + } + + copy_to_idx++ + } + + num_pairs = copy_to_idx + } + + /* Push new pairs formed with the combined histogram to the heap. */ + for i = 0; i < num_clusters; i++ { + compareAndPushToQueueLiteral(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) + } + } + + return num_clusters +} + +/* What is the bit cost of moving histogram from cur_symbol to candidate. */ +func histogramBitCostDistanceLiteral(histogram *histogramLiteral, candidate *histogramLiteral) float64 { + if histogram.total_count_ == 0 { + return 0.0 + } else { + var tmp histogramLiteral = *histogram + histogramAddHistogramLiteral(&tmp, candidate) + return populationCostLiteral(&tmp) - candidate.bit_cost_ + } +} + +/* Find the best 'out' histogram for each of the 'in' histograms. + When called, clusters[0..num_clusters) contains the unique values from + symbols[0..in_size), but this property is not preserved in this function. + Note: we assume that out[]->bit_cost_ is already up-to-date. */ +func histogramRemapLiteral(in []histogramLiteral, in_size uint, clusters []uint32, num_clusters uint, out []histogramLiteral, symbols []uint32) { + var i uint + for i = 0; i < in_size; i++ { + var best_out uint32 + if i == 0 { + best_out = symbols[0] + } else { + best_out = symbols[i-1] + } + var best_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[best_out]) + var j uint + for j = 0; j < num_clusters; j++ { + var cur_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[clusters[j]]) + if cur_bits < best_bits { + best_bits = cur_bits + best_out = clusters[j] + } + } + + symbols[i] = best_out + } + + /* Recompute each out based on raw and symbols. */ + for i = 0; i < num_clusters; i++ { + histogramClearLiteral(&out[clusters[i]]) + } + + for i = 0; i < in_size; i++ { + histogramAddHistogramLiteral(&out[symbols[i]], &in[i]) + } +} + +/* Reorders elements of the out[0..length) array and changes values in + symbols[0..length) array in the following way: + * when called, symbols[] contains indexes into out[], and has N unique + values (possibly N < length) + * on return, symbols'[i] = f(symbols[i]) and + out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, + where f is a bijection between the range of symbols[] and [0..N), and + the first occurrences of values in symbols'[i] come in consecutive + increasing order. + Returns N, the number of unique values in symbols[]. */ + +var histogramReindexLiteral_kInvalidIndex uint32 = math.MaxUint32 + +func histogramReindexLiteral(out []histogramLiteral, symbols []uint32, length uint) uint { + var new_index []uint32 = make([]uint32, length) + var next_index uint32 + var tmp []histogramLiteral + var i uint + for i = 0; i < length; i++ { + new_index[i] = histogramReindexLiteral_kInvalidIndex + } + + next_index = 0 + for i = 0; i < length; i++ { + if new_index[symbols[i]] == histogramReindexLiteral_kInvalidIndex { + new_index[symbols[i]] = next_index + next_index++ + } + } + + /* TODO: by using idea of "cycle-sort" we can avoid allocation of + tmp and reduce the number of copying by the factor of 2. */ + tmp = make([]histogramLiteral, next_index) + + next_index = 0 + for i = 0; i < length; i++ { + if new_index[symbols[i]] == next_index { + tmp[next_index] = out[symbols[i]] + next_index++ + } + + symbols[i] = new_index[symbols[i]] + } + + new_index = nil + for i = 0; uint32(i) < next_index; i++ { + out[i] = tmp[i] + } + + tmp = nil + return uint(next_index) +} + +func clusterHistogramsLiteral(in []histogramLiteral, in_size uint, max_histograms uint, out []histogramLiteral, out_size *uint, histogram_symbols []uint32) { + var cluster_size []uint32 = make([]uint32, in_size) + var clusters []uint32 = make([]uint32, in_size) + var num_clusters uint = 0 + var max_input_histograms uint = 64 + var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 + var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) + var i uint + + /* For the first pass of clustering, we allow all pairs. */ + for i = 0; i < in_size; i++ { + cluster_size[i] = 1 + } + + for i = 0; i < in_size; i++ { + out[i] = in[i] + out[i].bit_cost_ = populationCostLiteral(&in[i]) + histogram_symbols[i] = uint32(i) + } + + for i = 0; i < in_size; i += max_input_histograms { + var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) + var num_new_clusters uint + var j uint + for j = 0; j < num_to_combine; j++ { + clusters[num_clusters+j] = uint32(i + j) + } + + num_new_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) + num_clusters += num_new_clusters + } + { + /* For the second pass, we limit the total number of histogram pairs. + After this limit is reached, we only keep searching for the best pair. */ + var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) + if pairs_capacity < (max_num_pairs + 1) { + var _new_size uint + if pairs_capacity == 0 { + _new_size = max_num_pairs + 1 + } else { + _new_size = pairs_capacity + } + var new_array []histogramPair + for _new_size < (max_num_pairs + 1) { + _new_size *= 2 + } + new_array = make([]histogramPair, _new_size) + if pairs_capacity != 0 { + copy(new_array, pairs[:pairs_capacity]) + } + + pairs = new_array + pairs_capacity = _new_size + } + + /* Collapse similar histograms. */ + num_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) + } + + pairs = nil + cluster_size = nil + + /* Find the optimal map from original histograms to the final ones. */ + histogramRemapLiteral(in, in_size, clusters, num_clusters, out, histogram_symbols) + + clusters = nil + + /* Convert the context map to a canonical form. */ + *out_size = histogramReindexLiteral(out, histogram_symbols, in_size) +} diff --git a/vendor/github.com/andybalholm/brotli/command.go b/vendor/github.com/andybalholm/brotli/command.go new file mode 100644 index 0000000..b1662a5 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/command.go @@ -0,0 +1,254 @@ +package brotli + +var kInsBase = []uint32{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 8, + 10, + 14, + 18, + 26, + 34, + 50, + 66, + 98, + 130, + 194, + 322, + 578, + 1090, + 2114, + 6210, + 22594, +} + +var kInsExtra = []uint32{ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 7, + 8, + 9, + 10, + 12, + 14, + 24, +} + +var kCopyBase = []uint32{ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 12, + 14, + 18, + 22, + 30, + 38, + 54, + 70, + 102, + 134, + 198, + 326, + 582, + 1094, + 2118, +} + +var kCopyExtra = []uint32{ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 7, + 8, + 9, + 10, + 24, +} + +func getInsertLengthCode(insertlen uint) uint16 { + if insertlen < 6 { + return uint16(insertlen) + } else if insertlen < 130 { + var nbits uint32 = log2FloorNonZero(insertlen-2) - 1 + return uint16((nbits << 1) + uint32((insertlen-2)>>nbits) + 2) + } else if insertlen < 2114 { + return uint16(log2FloorNonZero(insertlen-66) + 10) + } else if insertlen < 6210 { + return 21 + } else if insertlen < 22594 { + return 22 + } else { + return 23 + } +} + +func getCopyLengthCode(copylen uint) uint16 { + if copylen < 10 { + return uint16(copylen - 2) + } else if copylen < 134 { + var nbits uint32 = log2FloorNonZero(copylen-6) - 1 + return uint16((nbits << 1) + uint32((copylen-6)>>nbits) + 4) + } else if copylen < 2118 { + return uint16(log2FloorNonZero(copylen-70) + 12) + } else { + return 23 + } +} + +func combineLengthCodes(inscode uint16, copycode uint16, use_last_distance bool) uint16 { + var bits64 uint16 = uint16(copycode&0x7 | (inscode&0x7)<<3) + if use_last_distance && inscode < 8 && copycode < 16 { + if copycode < 8 { + return bits64 + } else { + return bits64 | 64 + } + } else { + /* Specification: 5 Encoding of ... (last table) */ + /* offset = 2 * index, where index is in range [0..8] */ + var offset uint32 = 2 * ((uint32(copycode) >> 3) + 3*(uint32(inscode)>>3)) + + /* All values in specification are K * 64, + where K = [2, 3, 6, 4, 5, 8, 7, 9, 10], + i + 1 = [1, 2, 3, 4, 5, 6, 7, 8, 9], + K - i - 1 = [1, 1, 3, 0, 0, 2, 0, 1, 2] = D. + All values in D require only 2 bits to encode. + Magic constant is shifted 6 bits left, to avoid final multiplication. */ + offset = (offset << 5) + 0x40 + ((0x520D40 >> offset) & 0xC0) + + return uint16(offset | uint32(bits64)) + } +} + +func getLengthCode(insertlen uint, copylen uint, use_last_distance bool, code *uint16) { + var inscode uint16 = getInsertLengthCode(insertlen) + var copycode uint16 = getCopyLengthCode(copylen) + *code = combineLengthCodes(inscode, copycode, use_last_distance) +} + +func getInsertBase(inscode uint16) uint32 { + return kInsBase[inscode] +} + +func getInsertExtra(inscode uint16) uint32 { + return kInsExtra[inscode] +} + +func getCopyBase(copycode uint16) uint32 { + return kCopyBase[copycode] +} + +func getCopyExtra(copycode uint16) uint32 { + return kCopyExtra[copycode] +} + +type command struct { + insert_len_ uint32 + copy_len_ uint32 + dist_extra_ uint32 + cmd_prefix_ uint16 + dist_prefix_ uint16 +} + +/* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */ +func makeCommand(dist *distanceParams, insertlen uint, copylen uint, copylen_code_delta int, distance_code uint) (cmd command) { + /* Don't rely on signed int representation, use honest casts. */ + var delta uint32 = uint32(byte(int8(copylen_code_delta))) + cmd.insert_len_ = uint32(insertlen) + cmd.copy_len_ = uint32(uint32(copylen) | delta<<25) + + /* The distance prefix and extra bits are stored in this Command as if + npostfix and ndirect were 0, they are only recomputed later after the + clustering if needed. */ + prefixEncodeCopyDistance(distance_code, uint(dist.num_direct_distance_codes), uint(dist.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) + getLengthCode(insertlen, uint(int(copylen)+copylen_code_delta), (cmd.dist_prefix_&0x3FF == 0), &cmd.cmd_prefix_) + + return cmd +} + +func makeInsertCommand(insertlen uint) (cmd command) { + cmd.insert_len_ = uint32(insertlen) + cmd.copy_len_ = 4 << 25 + cmd.dist_extra_ = 0 + cmd.dist_prefix_ = numDistanceShortCodes + getLengthCode(insertlen, 4, false, &cmd.cmd_prefix_) + return cmd +} + +func commandRestoreDistanceCode(self *command, dist *distanceParams) uint32 { + if uint32(self.dist_prefix_&0x3FF) < numDistanceShortCodes+dist.num_direct_distance_codes { + return uint32(self.dist_prefix_) & 0x3FF + } else { + var dcode uint32 = uint32(self.dist_prefix_) & 0x3FF + var nbits uint32 = uint32(self.dist_prefix_) >> 10 + var extra uint32 = self.dist_extra_ + var postfix_mask uint32 = (1 << dist.distance_postfix_bits) - 1 + var hcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) >> dist.distance_postfix_bits + var lcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) & postfix_mask + var offset uint32 = ((2 + (hcode & 1)) << nbits) - 4 + return ((offset + extra) << dist.distance_postfix_bits) + lcode + dist.num_direct_distance_codes + numDistanceShortCodes + } +} + +func commandDistanceContext(self *command) uint32 { + var r uint32 = uint32(self.cmd_prefix_) >> 6 + var c uint32 = uint32(self.cmd_prefix_) & 7 + if (r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2) { + return c + } + + return 3 +} + +func commandCopyLen(self *command) uint32 { + return self.copy_len_ & 0x1FFFFFF +} + +func commandCopyLenCode(self *command) uint32 { + var modifier uint32 = self.copy_len_ >> 25 + var delta int32 = int32(int8(byte(modifier | (modifier&0x40)<<1))) + return uint32(int32(self.copy_len_&0x1FFFFFF) + delta) +} diff --git a/vendor/github.com/andybalholm/brotli/compress_fragment.go b/vendor/github.com/andybalholm/brotli/compress_fragment.go new file mode 100644 index 0000000..c9bd057 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/compress_fragment.go @@ -0,0 +1,834 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses one-pass processing: when we find a backward + match, we immediately emit the corresponding command and literal codes to + the bit stream. + + Adapted from the CompressFragment() function in + https://github.com/google/snappy/blob/master/snappy.cc */ + +const maxDistance_compress_fragment = 262128 + +func hash5(p []byte, shift uint) uint32 { + var h uint64 = (binary.LittleEndian.Uint64(p) << 24) * uint64(kHashMul32) + return uint32(h >> shift) +} + +func hashBytesAtOffset5(v uint64, offset int, shift uint) uint32 { + assert(offset >= 0) + assert(offset <= 3) + { + var h uint64 = ((v >> uint(8*offset)) << 24) * uint64(kHashMul32) + return uint32(h >> shift) + } +} + +func isMatch5(p1 []byte, p2 []byte) bool { + return binary.LittleEndian.Uint32(p1) == binary.LittleEndian.Uint32(p2) && + p1[4] == p2[4] +} + +/* Builds a literal prefix code into "depths" and "bits" based on the statistics + of the "input" string and stores it into the bit stream. + Note that the prefix code here is built from the pre-LZ77 input, therefore + we can only approximate the statistics of the actual literal stream. + Moreover, for long inputs we build a histogram from a sample of the input + and thus have to assign a non-zero depth for each literal. + Returns estimated compression ratio millibytes/char for encoding given input + with generated code. */ +func buildAndStoreLiteralPrefixCode(input []byte, input_size uint, depths []byte, bits []uint16, storage_ix *uint, storage []byte) uint { + var histogram = [256]uint32{0} + var histogram_total uint + var i uint + if input_size < 1<<15 { + for i = 0; i < input_size; i++ { + histogram[input[i]]++ + } + + histogram_total = input_size + for i = 0; i < 256; i++ { + /* We weigh the first 11 samples with weight 3 to account for the + balancing effect of the LZ77 phase on the histogram. */ + var adjust uint32 = 2 * brotli_min_uint32_t(histogram[i], 11) + histogram[i] += adjust + histogram_total += uint(adjust) + } + } else { + const kSampleRate uint = 29 + for i = 0; i < input_size; i += kSampleRate { + histogram[input[i]]++ + } + + histogram_total = (input_size + kSampleRate - 1) / kSampleRate + for i = 0; i < 256; i++ { + /* We add 1 to each population count to avoid 0 bit depths (since this is + only a sample and we don't know if the symbol appears or not), and we + weigh the first 11 samples with weight 3 to account for the balancing + effect of the LZ77 phase on the histogram (more frequent symbols are + more likely to be in backward references instead as literals). */ + var adjust uint32 = 1 + 2*brotli_min_uint32_t(histogram[i], 11) + histogram[i] += adjust + histogram_total += uint(adjust) + } + } + + buildAndStoreHuffmanTreeFast(histogram[:], histogram_total, /* max_bits = */ + 8, depths, bits, storage_ix, storage) + { + var literal_ratio uint = 0 + for i = 0; i < 256; i++ { + if histogram[i] != 0 { + literal_ratio += uint(histogram[i] * uint32(depths[i])) + } + } + + /* Estimated encoding ratio, millibytes per symbol. */ + return (literal_ratio * 125) / histogram_total + } +} + +/* Builds a command and distance prefix code (each 64 symbols) into "depth" and + "bits" based on "histogram" and stores it into the bit stream. */ +func buildAndStoreCommandPrefixCode1(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { + var tree [129]huffmanTree + var cmd_depth = [numCommandSymbols]byte{0} + /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ + + var cmd_bits [64]uint16 + + createHuffmanTree(histogram, 64, 15, tree[:], depth) + createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) + + /* We have to jump through a few hoops here in order to compute + the command bits because the symbols are in a different order than in + the full alphabet. This looks complicated, but having the symbols + in this order in the command bits saves a few branches in the Emit* + functions. */ + copy(cmd_depth[:], depth[:24]) + + copy(cmd_depth[24:][:], depth[40:][:8]) + copy(cmd_depth[32:][:], depth[24:][:8]) + copy(cmd_depth[40:][:], depth[48:][:8]) + copy(cmd_depth[48:][:], depth[32:][:8]) + copy(cmd_depth[56:][:], depth[56:][:8]) + convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) + copy(bits, cmd_bits[:24]) + copy(bits[24:], cmd_bits[32:][:8]) + copy(bits[32:], cmd_bits[48:][:8]) + copy(bits[40:], cmd_bits[24:][:8]) + copy(bits[48:], cmd_bits[40:][:8]) + copy(bits[56:], cmd_bits[56:][:8]) + convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) + { + /* Create the bit length array for the full command alphabet. */ + var i uint + for i := 0; i < int(64); i++ { + cmd_depth[i] = 0 + } /* only 64 first values were used */ + copy(cmd_depth[:], depth[:8]) + copy(cmd_depth[64:][:], depth[8:][:8]) + copy(cmd_depth[128:][:], depth[16:][:8]) + copy(cmd_depth[192:][:], depth[24:][:8]) + copy(cmd_depth[384:][:], depth[32:][:8]) + for i = 0; i < 8; i++ { + cmd_depth[128+8*i] = depth[40+i] + cmd_depth[256+8*i] = depth[48+i] + cmd_depth[448+8*i] = depth[56+i] + } + + storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) + } + + storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) +} + +/* REQUIRES: insertlen < 6210 */ +func emitInsertLen1(insertlen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { + if insertlen < 6 { + var code uint = insertlen + 40 + writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) + histo[code]++ + } else if insertlen < 130 { + var tail uint = insertlen - 2 + var nbits uint32 = log2FloorNonZero(tail) - 1 + var prefix uint = tail >> nbits + var inscode uint = uint((nbits << 1) + uint32(prefix) + 42) + writeBits(uint(depth[inscode]), uint64(bits[inscode]), storage_ix, storage) + writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits + var code uint = uint((nbits << 1) + uint32(prefix) + 20) + writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) + writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits + var code uint = uint((nbits << 1) + uint32(prefix) + 4) + writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) + writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> 5) + 30 + writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) + writeBits(5, uint64(tail)&31, storage_ix, storage) + writeBits(uint(depth[64]), uint64(bits[64]), storage_ix, storage) + histo[code]++ + histo[64]++ + } else if copylen < 2120 { + var tail uint = copylen - 72 + var nbits uint32 = log2FloorNonZero(tail) + var code uint = uint(nbits + 28) + writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) + writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<> nbits) & 1 + var offset uint = (2 + prefix) << nbits + var distcode uint = uint(2*(nbits-1) + uint32(prefix) + 80) + writeBits(uint(depth[distcode]), uint64(bits[distcode]), storage_ix, storage) + writeBits(uint(nbits), uint64(d)-uint64(offset), storage_ix, storage) + histo[distcode]++ +} + +func emitLiterals(input []byte, len uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { + var j uint + for j = 0; j < len; j++ { + var lit byte = input[j] + writeBits(uint(depth[lit]), uint64(bits[lit]), storage_ix, storage) + } +} + +/* REQUIRES: len <= 1 << 24. */ +func storeMetaBlockHeader1(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { + var nibbles uint = 6 + + /* ISLAST */ + writeBits(1, 0, storage_ix, storage) + + if len <= 1<<16 { + nibbles = 4 + } else if len <= 1<<20 { + nibbles = 5 + } + + writeBits(2, uint64(nibbles)-4, storage_ix, storage) + writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) + + /* ISUNCOMPRESSED */ + writeSingleBit(is_uncompressed, storage_ix, storage) +} + +func updateBits(n_bits uint, bits uint32, pos uint, array []byte) { + for n_bits > 0 { + var byte_pos uint = pos >> 3 + var n_unchanged_bits uint = pos & 7 + var n_changed_bits uint = brotli_min_size_t(n_bits, 8-n_unchanged_bits) + var total_bits uint = n_unchanged_bits + n_changed_bits + var mask uint32 = (^((1 << total_bits) - 1)) | ((1 << n_unchanged_bits) - 1) + var unchanged_bits uint32 = uint32(array[byte_pos]) & mask + var changed_bits uint32 = bits & ((1 << n_changed_bits) - 1) + array[byte_pos] = byte(changed_bits<>= n_changed_bits + pos += n_changed_bits + } +} + +func rewindBitPosition1(new_storage_ix uint, storage_ix *uint, storage []byte) { + var bitpos uint = new_storage_ix & 7 + var mask uint = (1 << bitpos) - 1 + storage[new_storage_ix>>3] &= byte(mask) + *storage_ix = new_storage_ix +} + +var shouldMergeBlock_kSampleRate uint = 43 + +func shouldMergeBlock(data []byte, len uint, depths []byte) bool { + var histo = [256]uint{0} + var i uint + for i = 0; i < len; i += shouldMergeBlock_kSampleRate { + histo[data[i]]++ + } + { + var total uint = (len + shouldMergeBlock_kSampleRate - 1) / shouldMergeBlock_kSampleRate + var r float64 = (fastLog2(total)+0.5)*float64(total) + 200 + for i = 0; i < 256; i++ { + r -= float64(histo[i]) * (float64(depths[i]) + fastLog2(histo[i])) + } + + return r >= 0.0 + } +} + +func shouldUseUncompressedMode(metablock_start []byte, next_emit []byte, insertlen uint, literal_ratio uint) bool { + var compressed uint = uint(-cap(next_emit) + cap(metablock_start)) + if compressed*50 > insertlen { + return false + } else { + return literal_ratio > 980 + } +} + +func emitUncompressedMetaBlock1(begin []byte, end []byte, storage_ix_start uint, storage_ix *uint, storage []byte) { + var len uint = uint(-cap(end) + cap(begin)) + rewindBitPosition1(storage_ix_start, storage_ix, storage) + storeMetaBlockHeader1(uint(len), true, storage_ix, storage) + *storage_ix = (*storage_ix + 7) &^ 7 + copy(storage[*storage_ix>>3:], begin[:len]) + *storage_ix += uint(len << 3) + storage[*storage_ix>>3] = 0 +} + +var kCmdHistoSeed = [128]uint32{ + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, +} + +var compressFragmentFastImpl_kFirstBlockSize uint = 3 << 15 +var compressFragmentFastImpl_kMergeBlockSize uint = 1 << 16 + +func compressFragmentFastImpl(in []byte, input_size uint, is_last bool, table []int, table_bits uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { + var cmd_histo [128]uint32 + var ip_end int + var next_emit int = 0 + var base_ip int = 0 + var input int = 0 + const kInputMarginBytes uint = windowGap + const kMinMatchLen uint = 5 + var metablock_start int = input + var block_size uint = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) + var total_block_size uint = block_size + var mlen_storage_ix uint = *storage_ix + 3 + var lit_depth [256]byte + var lit_bits [256]uint16 + var literal_ratio uint + var ip int + var last_distance int + var shift uint = 64 - table_bits + + /* "next_emit" is a pointer to the first byte that is not covered by a + previous copy. Bytes between "next_emit" and the start of the next copy or + the end of the input will be emitted as literal bytes. */ + + /* Save the start of the first block for position and distance computations. + */ + + /* Save the bit position of the MLEN field of the meta-block header, so that + we can update it later if we decide to extend this meta-block. */ + storeMetaBlockHeader1(block_size, false, storage_ix, storage) + + /* No block splits, no contexts. */ + writeBits(13, 0, storage_ix, storage) + + literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) + { + /* Store the pre-compressed command and distance prefix codes. */ + var i uint + for i = 0; i+7 < *cmd_code_numbits; i += 8 { + writeBits(8, uint64(cmd_code[i>>3]), storage_ix, storage) + } + } + + writeBits(*cmd_code_numbits&7, uint64(cmd_code[*cmd_code_numbits>>3]), storage_ix, storage) + + /* Initialize the command and distance histograms. We will gather + statistics of command and distance codes during the processing + of this block and use it to update the command and distance + prefix codes for the next block. */ +emit_commands: + copy(cmd_histo[:], kCmdHistoSeed[:]) + + /* "ip" is the input pointer. */ + ip = input + + last_distance = -1 + ip_end = int(uint(input) + block_size) + + if block_size >= kInputMarginBytes { + var len_limit uint = brotli_min_size_t(block_size-kMinMatchLen, input_size-kInputMarginBytes) + var ip_limit int = int(uint(input) + len_limit) + /* For the last block, we need to keep a 16 bytes margin so that we can be + sure that all distances are at most window size - 16. + For all other blocks, we only need to keep a margin of 5 bytes so that + we don't go over the block size with a copy. */ + + var next_hash uint32 + ip++ + for next_hash = hash5(in[ip:], shift); ; { + var skip uint32 = 32 + var next_ip int = ip + /* Step 1: Scan forward in the input looking for a 5-byte-long match. + If we get close to exhausting the input then goto emit_remainder. + + Heuristic match skipping: If 32 bytes are scanned with no matches + found, start looking only at every other byte. If 32 more bytes are + scanned, look at every third byte, etc.. When a match is found, + immediately go back to looking at every byte. This is a small loss + (~5% performance, ~0.1% density) for compressible data due to more + bookkeeping, but for non-compressible data (such as JPEG) it's a huge + win since the compressor quickly "realizes" the data is incompressible + and doesn't bother looking for matches everywhere. + + The "skip" variable keeps track of how many bytes there are since the + last match; dividing it by 32 (i.e. right-shifting by five) gives the + number of bytes to move ahead for each iteration. */ + + var candidate int + assert(next_emit < ip) + + trawl: + for { + var hash uint32 = next_hash + var bytes_between_hash_lookups uint32 = skip >> 5 + skip++ + assert(hash == hash5(in[next_ip:], shift)) + ip = next_ip + next_ip = int(uint32(ip) + bytes_between_hash_lookups) + if next_ip > ip_limit { + goto emit_remainder + } + + next_hash = hash5(in[next_ip:], shift) + candidate = ip - last_distance + if isMatch5(in[ip:], in[candidate:]) { + if candidate < ip { + table[hash] = int(ip - base_ip) + break + } + } + + candidate = base_ip + table[hash] + assert(candidate >= base_ip) + assert(candidate < ip) + + table[hash] = int(ip - base_ip) + if isMatch5(in[ip:], in[candidate:]) { + break + } + } + + /* Check copy distance. If candidate is not feasible, continue search. + Checking is done outside of hot loop to reduce overhead. */ + if ip-candidate > maxDistance_compress_fragment { + goto trawl + } + + /* Step 2: Emit the found match together with the literal bytes from + "next_emit" to the bit stream, and then see if we can find a next match + immediately afterwards. Repeat until we find no match for the input + without emitting some literal bytes. */ + { + var base int = ip + /* > 0 */ + var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) + var distance int = int(base - candidate) + /* We have a 5-byte match at ip, and we need to emit bytes in + [next_emit, ip). */ + + var insert uint = uint(base - next_emit) + ip += int(matched) + if insert < 6210 { + emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { + emitUncompressedMetaBlock1(in[metablock_start:], in[base:], mlen_storage_ix-3, storage_ix, storage) + input_size -= uint(base - input) + input = base + next_emit = input + goto next_block + } else { + emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + } + + emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) + if distance == last_distance { + writeBits(uint(cmd_depth[64]), uint64(cmd_bits[64]), storage_ix, storage) + cmd_histo[64]++ + } else { + emitDistance1(uint(distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + last_distance = distance + } + + emitCopyLenLastDistance1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + + next_emit = ip + if ip >= ip_limit { + goto emit_remainder + } + + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some positions + within the last copy. */ + { + var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) + var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) + var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) + table[prev_hash] = int(ip - base_ip - 3) + prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) + table[prev_hash] = int(ip - base_ip - 1) + + candidate = base_ip + table[cur_hash] + table[cur_hash] = int(ip - base_ip) + } + } + + for isMatch5(in[ip:], in[candidate:]) { + var base int = ip + /* We have a 5-byte match at ip, and no need to emit any literal bytes + prior to ip. */ + + var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) + if ip-candidate > maxDistance_compress_fragment { + break + } + ip += int(matched) + last_distance = int(base - candidate) /* > 0 */ + emitCopyLen1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + emitDistance1(uint(last_distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + + next_emit = ip + if ip >= ip_limit { + goto emit_remainder + } + + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some positions + within the last copy. */ + { + var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) + var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) + var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) + table[prev_hash] = int(ip - base_ip - 3) + prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) + table[prev_hash] = int(ip - base_ip - 1) + + candidate = base_ip + table[cur_hash] + table[cur_hash] = int(ip - base_ip) + } + } + + ip++ + next_hash = hash5(in[ip:], shift) + } + } + +emit_remainder: + assert(next_emit <= ip_end) + input += int(block_size) + input_size -= block_size + block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kMergeBlockSize) + + /* Decide if we want to continue this meta-block instead of emitting the + last insert-only command. */ + if input_size > 0 && total_block_size+block_size <= 1<<20 && shouldMergeBlock(in[input:], block_size, lit_depth[:]) { + assert(total_block_size > 1<<16) + + /* Update the size of the current meta-block and continue emitting commands. + We can do this because the current size and the new size both have 5 + nibbles. */ + total_block_size += block_size + + updateBits(20, uint32(total_block_size-1), mlen_storage_ix, storage) + goto emit_commands + } + + /* Emit the remaining bytes as literals. */ + if next_emit < ip_end { + var insert uint = uint(ip_end - next_emit) + if insert < 6210 { + emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) + } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { + emitUncompressedMetaBlock1(in[metablock_start:], in[ip_end:], mlen_storage_ix-3, storage_ix, storage) + } else { + emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) + emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) + } + } + + next_emit = ip_end + + /* If we have more data, write a new meta-block header and prefix codes and + then continue emitting commands. */ +next_block: + if input_size > 0 { + metablock_start = input + block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) + total_block_size = block_size + + /* Save the bit position of the MLEN field of the meta-block header, so that + we can update it later if we decide to extend this meta-block. */ + mlen_storage_ix = *storage_ix + 3 + + storeMetaBlockHeader1(block_size, false, storage_ix, storage) + + /* No block splits, no contexts. */ + writeBits(13, 0, storage_ix, storage) + + literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) + buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, storage_ix, storage) + goto emit_commands + } + + if !is_last { + /* If this is not the last block, update the command and distance prefix + codes for the next block and store the compressed forms. */ + cmd_code[0] = 0 + + *cmd_code_numbits = 0 + buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, cmd_code_numbits, cmd_code) + } +} + +/* Compresses "input" string to the "*storage" buffer as one or more complete + meta-blocks, and updates the "*storage_ix" bit position. + + If "is_last" is 1, emits an additional empty last meta-block. + + "cmd_depth" and "cmd_bits" contain the command and distance prefix codes + (see comment in encode.h) used for the encoding of this input fragment. + If "is_last" is 0, they are updated to reflect the statistics + of this input fragment, to be used for the encoding of the next fragment. + + "*cmd_code_numbits" is the number of bits of the compressed representation + of the command and distance prefix codes, and "cmd_code" is an array of + at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed + command and distance prefix codes. If "is_last" is 0, these are also + updated to represent the updated "cmd_depth" and "cmd_bits". + + REQUIRES: "input_size" is greater than zero, or "is_last" is 1. + REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). + REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. + REQUIRES: "table_size" is an odd (9, 11, 13, 15) power of two + OUTPUT: maximal copy distance <= |input_size| + OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) */ +func compressFragmentFast(input []byte, input_size uint, is_last bool, table []int, table_size uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { + var initial_storage_ix uint = *storage_ix + var table_bits uint = uint(log2FloorNonZero(table_size)) + + if input_size == 0 { + assert(is_last) + writeBits(1, 1, storage_ix, storage) /* islast */ + writeBits(1, 1, storage_ix, storage) /* isempty */ + *storage_ix = (*storage_ix + 7) &^ 7 + return + } + + compressFragmentFastImpl(input, input_size, is_last, table, table_bits, cmd_depth, cmd_bits, cmd_code_numbits, cmd_code, storage_ix, storage) + + /* If output is larger than single uncompressed block, rewrite it. */ + if *storage_ix-initial_storage_ix > 31+(input_size<<3) { + emitUncompressedMetaBlock1(input, input[input_size:], initial_storage_ix, storage_ix, storage) + } + + if is_last { + writeBits(1, 1, storage_ix, storage) /* islast */ + writeBits(1, 1, storage_ix, storage) /* isempty */ + *storage_ix = (*storage_ix + 7) &^ 7 + } +} diff --git a/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go b/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go new file mode 100644 index 0000000..79f9c7f --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go @@ -0,0 +1,773 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses two-pass processing: in the first pass we save + the found backward matches and literal bytes into a buffer, and in the + second pass we emit them into the bit stream using prefix codes built based + on the actual command and literal byte histograms. */ + +const kCompressFragmentTwoPassBlockSize uint = 1 << 17 + +func hash1(p []byte, shift uint, length uint) uint32 { + var h uint64 = (binary.LittleEndian.Uint64(p) << ((8 - length) * 8)) * uint64(kHashMul32) + return uint32(h >> shift) +} + +func hashBytesAtOffset(v uint64, offset uint, shift uint, length uint) uint32 { + assert(offset <= 8-length) + { + var h uint64 = ((v >> (8 * offset)) << ((8 - length) * 8)) * uint64(kHashMul32) + return uint32(h >> shift) + } +} + +func isMatch1(p1 []byte, p2 []byte, length uint) bool { + if binary.LittleEndian.Uint32(p1) != binary.LittleEndian.Uint32(p2) { + return false + } + if length == 4 { + return true + } + return p1[4] == p2[4] && p1[5] == p2[5] +} + +/* +Builds a command and distance prefix code (each 64 symbols) into "depth" and + + "bits" based on "histogram" and stores it into the bit stream. +*/ +func buildAndStoreCommandPrefixCode(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { + var tree [129]huffmanTree + var cmd_depth = [numCommandSymbols]byte{0} + /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ + + var cmd_bits [64]uint16 + createHuffmanTree(histogram, 64, 15, tree[:], depth) + createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) + + /* We have to jump through a few hoops here in order to compute + the command bits because the symbols are in a different order than in + the full alphabet. This looks complicated, but having the symbols + in this order in the command bits saves a few branches in the Emit* + functions. */ + copy(cmd_depth[:], depth[24:][:24]) + + copy(cmd_depth[24:][:], depth[:8]) + copy(cmd_depth[32:][:], depth[48:][:8]) + copy(cmd_depth[40:][:], depth[8:][:8]) + copy(cmd_depth[48:][:], depth[56:][:8]) + copy(cmd_depth[56:][:], depth[16:][:8]) + convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) + copy(bits, cmd_bits[24:][:8]) + copy(bits[8:], cmd_bits[40:][:8]) + copy(bits[16:], cmd_bits[56:][:8]) + copy(bits[24:], cmd_bits[:24]) + copy(bits[48:], cmd_bits[32:][:8]) + copy(bits[56:], cmd_bits[48:][:8]) + convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) + { + /* Create the bit length array for the full command alphabet. */ + var i uint + for i := 0; i < int(64); i++ { + cmd_depth[i] = 0 + } /* only 64 first values were used */ + copy(cmd_depth[:], depth[24:][:8]) + copy(cmd_depth[64:][:], depth[32:][:8]) + copy(cmd_depth[128:][:], depth[40:][:8]) + copy(cmd_depth[192:][:], depth[48:][:8]) + copy(cmd_depth[384:][:], depth[56:][:8]) + for i = 0; i < 8; i++ { + cmd_depth[128+8*i] = depth[i] + cmd_depth[256+8*i] = depth[8+i] + cmd_depth[448+8*i] = depth[16+i] + } + + storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) + } + + storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) +} + +func emitInsertLen(insertlen uint32, commands *[]uint32) { + if insertlen < 6 { + (*commands)[0] = insertlen + } else if insertlen < 130 { + var tail uint32 = insertlen - 2 + var nbits uint32 = log2FloorNonZero(uint(tail)) - 1 + var prefix uint32 = tail >> nbits + var inscode uint32 = (nbits << 1) + prefix + 2 + var extra uint32 = tail - (prefix << nbits) + (*commands)[0] = inscode | extra<<8 + } else if insertlen < 2114 { + var tail uint32 = insertlen - 66 + var nbits uint32 = log2FloorNonZero(uint(tail)) + var code uint32 = nbits + 10 + var extra uint32 = tail - (1 << nbits) + (*commands)[0] = code | extra<<8 + } else if insertlen < 6210 { + var extra uint32 = insertlen - 2114 + (*commands)[0] = 21 | extra<<8 + } else if insertlen < 22594 { + var extra uint32 = insertlen - 6210 + (*commands)[0] = 22 | extra<<8 + } else { + var extra uint32 = insertlen - 22594 + (*commands)[0] = 23 | extra<<8 + } + + *commands = (*commands)[1:] +} + +func emitCopyLen(copylen uint, commands *[]uint32) { + if copylen < 10 { + (*commands)[0] = uint32(copylen + 38) + } else if copylen < 134 { + var tail uint = copylen - 6 + var nbits uint = uint(log2FloorNonZero(tail) - 1) + var prefix uint = tail >> nbits + var code uint = (nbits << 1) + prefix + 44 + var extra uint = tail - (prefix << nbits) + (*commands)[0] = uint32(code | extra<<8) + } else if copylen < 2118 { + var tail uint = copylen - 70 + var nbits uint = uint(log2FloorNonZero(tail)) + var code uint = nbits + 52 + var extra uint = tail - (uint(1) << nbits) + (*commands)[0] = uint32(code | extra<<8) + } else { + var extra uint = copylen - 2118 + (*commands)[0] = uint32(63 | extra<<8) + } + + *commands = (*commands)[1:] +} + +func emitCopyLenLastDistance(copylen uint, commands *[]uint32) { + if copylen < 12 { + (*commands)[0] = uint32(copylen + 20) + *commands = (*commands)[1:] + } else if copylen < 72 { + var tail uint = copylen - 8 + var nbits uint = uint(log2FloorNonZero(tail) - 1) + var prefix uint = tail >> nbits + var code uint = (nbits << 1) + prefix + 28 + var extra uint = tail - (prefix << nbits) + (*commands)[0] = uint32(code | extra<<8) + *commands = (*commands)[1:] + } else if copylen < 136 { + var tail uint = copylen - 8 + var code uint = (tail >> 5) + 54 + var extra uint = tail & 31 + (*commands)[0] = uint32(code | extra<<8) + *commands = (*commands)[1:] + (*commands)[0] = 64 + *commands = (*commands)[1:] + } else if copylen < 2120 { + var tail uint = copylen - 72 + var nbits uint = uint(log2FloorNonZero(tail)) + var code uint = nbits + 52 + var extra uint = tail - (uint(1) << nbits) + (*commands)[0] = uint32(code | extra<<8) + *commands = (*commands)[1:] + (*commands)[0] = 64 + *commands = (*commands)[1:] + } else { + var extra uint = copylen - 2120 + (*commands)[0] = uint32(63 | extra<<8) + *commands = (*commands)[1:] + (*commands)[0] = 64 + *commands = (*commands)[1:] + } +} + +func emitDistance(distance uint32, commands *[]uint32) { + var d uint32 = distance + 3 + var nbits uint32 = log2FloorNonZero(uint(d)) - 1 + var prefix uint32 = (d >> nbits) & 1 + var offset uint32 = (2 + prefix) << nbits + var distcode uint32 = 2*(nbits-1) + prefix + 80 + var extra uint32 = d - offset + (*commands)[0] = distcode | extra<<8 + *commands = (*commands)[1:] +} + +/* REQUIRES: len <= 1 << 24. */ +func storeMetaBlockHeader(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { + var nibbles uint = 6 + + /* ISLAST */ + writeBits(1, 0, storage_ix, storage) + + if len <= 1<<16 { + nibbles = 4 + } else if len <= 1<<20 { + nibbles = 5 + } + + writeBits(2, uint64(nibbles)-4, storage_ix, storage) + writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) + + /* ISUNCOMPRESSED */ + writeSingleBit(is_uncompressed, storage_ix, storage) +} + +func storeMetaBlockHeaderBW(len uint, is_uncompressed bool, bw *bitWriter) { + var nibbles uint = 6 + + /* ISLAST */ + bw.writeBits(1, 0) + + if len <= 1<<16 { + nibbles = 4 + } else if len <= 1<<20 { + nibbles = 5 + } + + bw.writeBits(2, uint64(nibbles)-4) + bw.writeBits(nibbles*4, uint64(len)-1) + + /* ISUNCOMPRESSED */ + bw.writeSingleBit(is_uncompressed) +} + +func createCommands(input []byte, block_size uint, input_size uint, base_ip_ptr []byte, table []int, table_bits uint, min_match uint, literals *[]byte, commands *[]uint32) { + var ip int = 0 + var shift uint = 64 - table_bits + var ip_end int = int(block_size) + var base_ip int = -cap(base_ip_ptr) + cap(input) + var next_emit int = 0 + var last_distance int = -1 + /* "ip" is the input pointer. */ + + const kInputMarginBytes uint = windowGap + + /* "next_emit" is a pointer to the first byte that is not covered by a + previous copy. Bytes between "next_emit" and the start of the next copy or + the end of the input will be emitted as literal bytes. */ + if block_size >= kInputMarginBytes { + var len_limit uint = brotli_min_size_t(block_size-min_match, input_size-kInputMarginBytes) + var ip_limit int = int(len_limit) + /* For the last block, we need to keep a 16 bytes margin so that we can be + sure that all distances are at most window size - 16. + For all other blocks, we only need to keep a margin of 5 bytes so that + we don't go over the block size with a copy. */ + + var next_hash uint32 + ip++ + for next_hash = hash1(input[ip:], shift, min_match); ; { + var skip uint32 = 32 + var next_ip int = ip + /* Step 1: Scan forward in the input looking for a 6-byte-long match. + If we get close to exhausting the input then goto emit_remainder. + + Heuristic match skipping: If 32 bytes are scanned with no matches + found, start looking only at every other byte. If 32 more bytes are + scanned, look at every third byte, etc.. When a match is found, + immediately go back to looking at every byte. This is a small loss + (~5% performance, ~0.1% density) for compressible data due to more + bookkeeping, but for non-compressible data (such as JPEG) it's a huge + win since the compressor quickly "realizes" the data is incompressible + and doesn't bother looking for matches everywhere. + + The "skip" variable keeps track of how many bytes there are since the + last match; dividing it by 32 (ie. right-shifting by five) gives the + number of bytes to move ahead for each iteration. */ + + var candidate int + + assert(next_emit < ip) + + trawl: + for { + var hash uint32 = next_hash + var bytes_between_hash_lookups uint32 = skip >> 5 + skip++ + ip = next_ip + assert(hash == hash1(input[ip:], shift, min_match)) + next_ip = int(uint32(ip) + bytes_between_hash_lookups) + if next_ip > ip_limit { + goto emit_remainder + } + + next_hash = hash1(input[next_ip:], shift, min_match) + candidate = ip - last_distance + if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { + if candidate < ip { + table[hash] = int(ip - base_ip) + break + } + } + + candidate = base_ip + table[hash] + assert(candidate >= base_ip) + assert(candidate < ip) + + table[hash] = int(ip - base_ip) + if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { + break + } + } + + /* Check copy distance. If candidate is not feasible, continue search. + Checking is done outside of hot loop to reduce overhead. */ + if ip-candidate > maxDistance_compress_fragment { + goto trawl + } + + /* Step 2: Emit the found match together with the literal bytes from + "next_emit", and then see if we can find a next match immediately + afterwards. Repeat until we find no match for the input + without emitting some literal bytes. */ + { + var base int = ip + /* > 0 */ + var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) + var distance int = int(base - candidate) + /* We have a 6-byte match at ip, and we need to emit bytes in + [next_emit, ip). */ + + var insert int = int(base - next_emit) + ip += int(matched) + emitInsertLen(uint32(insert), commands) + copy(*literals, input[next_emit:][:uint(insert)]) + *literals = (*literals)[insert:] + if distance == last_distance { + (*commands)[0] = 64 + *commands = (*commands)[1:] + } else { + emitDistance(uint32(distance), commands) + last_distance = distance + } + + emitCopyLenLastDistance(matched, commands) + + next_emit = ip + if ip >= ip_limit { + goto emit_remainder + } + { + var input_bytes uint64 + var cur_hash uint32 + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some + positions within the last copy. */ + + var prev_hash uint32 + if min_match == 4 { + input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) + cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 3) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 1) + } else { + input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 5) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 4) + prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) + table[prev_hash] = int(ip - base_ip - 3) + input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) + cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 1) + } + + candidate = base_ip + table[cur_hash] + table[cur_hash] = int(ip - base_ip) + } + } + + for ip-candidate <= maxDistance_compress_fragment && isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { + var base int = ip + /* We have a 6-byte match at ip, and no need to emit any + literal bytes prior to ip. */ + + var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) + ip += int(matched) + last_distance = int(base - candidate) /* > 0 */ + emitCopyLen(matched, commands) + emitDistance(uint32(last_distance), commands) + + next_emit = ip + if ip >= ip_limit { + goto emit_remainder + } + { + var input_bytes uint64 + var cur_hash uint32 + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some + positions within the last copy. */ + + var prev_hash uint32 + if min_match == 4 { + input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) + cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 3) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) + table[prev_hash] = int(ip - base_ip - 1) + } else { + input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 5) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 4) + prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) + table[prev_hash] = int(ip - base_ip - 3) + input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) + cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) + prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) + table[prev_hash] = int(ip - base_ip - 2) + prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) + table[prev_hash] = int(ip - base_ip - 1) + } + + candidate = base_ip + table[cur_hash] + table[cur_hash] = int(ip - base_ip) + } + } + + ip++ + next_hash = hash1(input[ip:], shift, min_match) + } + } + +emit_remainder: + assert(next_emit <= ip_end) + + /* Emit the remaining bytes as literals. */ + if next_emit < ip_end { + var insert uint32 = uint32(ip_end - next_emit) + emitInsertLen(insert, commands) + copy(*literals, input[next_emit:][:insert]) + *literals = (*literals)[insert:] + } +} + +var storeCommands_kNumExtraBits = [128]uint32{ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 7, + 8, + 9, + 10, + 12, + 14, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 7, + 8, + 9, + 10, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + 14, + 14, + 15, + 15, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, +} +var storeCommands_kInsertOffset = [24]uint32{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 8, + 10, + 14, + 18, + 26, + 34, + 50, + 66, + 98, + 130, + 194, + 322, + 578, + 1090, + 2114, + 6210, + 22594, +} + +func storeCommands(literals []byte, num_literals uint, commands []uint32, num_commands uint, storage_ix *uint, storage []byte) { + var lit_depths [256]byte + var lit_bits [256]uint16 + var lit_histo = [256]uint32{0} + var cmd_depths = [128]byte{0} + var cmd_bits = [128]uint16{0} + var cmd_histo = [128]uint32{0} + var i uint + for i = 0; i < num_literals; i++ { + lit_histo[literals[i]]++ + } + + buildAndStoreHuffmanTreeFast(lit_histo[:], num_literals, /* max_bits = */ + 8, lit_depths[:], lit_bits[:], storage_ix, storage) + + for i = 0; i < num_commands; i++ { + var code uint32 = commands[i] & 0xFF + assert(code < 128) + cmd_histo[code]++ + } + + cmd_histo[1] += 1 + cmd_histo[2] += 1 + cmd_histo[64] += 1 + cmd_histo[84] += 1 + buildAndStoreCommandPrefixCode(cmd_histo[:], cmd_depths[:], cmd_bits[:], storage_ix, storage) + + for i = 0; i < num_commands; i++ { + var cmd uint32 = commands[i] + var code uint32 = cmd & 0xFF + var extra uint32 = cmd >> 8 + assert(code < 128) + writeBits(uint(cmd_depths[code]), uint64(cmd_bits[code]), storage_ix, storage) + writeBits(uint(storeCommands_kNumExtraBits[code]), uint64(extra), storage_ix, storage) + if code < 24 { + var insert uint32 = storeCommands_kInsertOffset[code] + extra + var j uint32 + for j = 0; j < insert; j++ { + var lit byte = literals[0] + writeBits(uint(lit_depths[lit]), uint64(lit_bits[lit]), storage_ix, storage) + literals = literals[1:] + } + } + } +} + +/* Acceptable loss for uncompressible speedup is 2% */ +const minRatio = 0.98 + +const sampleRate = 43 + +func shouldCompress(input []byte, input_size uint, num_literals uint) bool { + var corpus_size float64 = float64(input_size) + if float64(num_literals) < minRatio*corpus_size { + return true + } else { + var literal_histo = [256]uint32{0} + var max_total_bit_cost float64 = corpus_size * 8 * minRatio / sampleRate + var i uint + for i = 0; i < input_size; i += sampleRate { + literal_histo[input[i]]++ + } + + return bitsEntropy(literal_histo[:], 256) < max_total_bit_cost + } +} + +func rewindBitPosition(new_storage_ix uint, storage_ix *uint, storage []byte) { + var bitpos uint = new_storage_ix & 7 + var mask uint = (1 << bitpos) - 1 + storage[new_storage_ix>>3] &= byte(mask) + *storage_ix = new_storage_ix +} + +func emitUncompressedMetaBlock(input []byte, input_size uint, storage_ix *uint, storage []byte) { + storeMetaBlockHeader(input_size, true, storage_ix, storage) + *storage_ix = (*storage_ix + 7) &^ 7 + copy(storage[*storage_ix>>3:], input[:input_size]) + *storage_ix += input_size << 3 + storage[*storage_ix>>3] = 0 +} + +func compressFragmentTwoPassImpl(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_bits uint, min_match uint, storage_ix *uint, storage []byte) { + /* Save the start of the first block for position and distance computations. + */ + var base_ip []byte = input + + for input_size > 0 { + var block_size uint = brotli_min_size_t(input_size, kCompressFragmentTwoPassBlockSize) + var commands []uint32 = command_buf + var literals []byte = literal_buf + var num_literals uint + createCommands(input, block_size, input_size, base_ip, table, table_bits, min_match, &literals, &commands) + num_literals = uint(-cap(literals) + cap(literal_buf)) + if shouldCompress(input, block_size, num_literals) { + var num_commands uint = uint(-cap(commands) + cap(command_buf)) + storeMetaBlockHeader(block_size, false, storage_ix, storage) + + /* No block splits, no contexts. */ + writeBits(13, 0, storage_ix, storage) + + storeCommands(literal_buf, num_literals, command_buf, num_commands, storage_ix, storage) + } else { + /* Since we did not find many backward references and the entropy of + the data is close to 8 bits, we can simply emit an uncompressed block. + This makes compression speed of uncompressible data about 3x faster. */ + emitUncompressedMetaBlock(input, block_size, storage_ix, storage) + } + + input = input[block_size:] + input_size -= block_size + } +} + +/* +Compresses "input" string to the "*storage" buffer as one or more complete + + meta-blocks, and updates the "*storage_ix" bit position. + + If "is_last" is 1, emits an additional empty last meta-block. + + REQUIRES: "input_size" is greater than zero, or "is_last" is 1. + REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). + REQUIRES: "command_buf" and "literal_buf" point to at least + kCompressFragmentTwoPassBlockSize long arrays. + REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. + REQUIRES: "table_size" is a power of two + OUTPUT: maximal copy distance <= |input_size| + OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) +*/ +func compressFragmentTwoPass(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_size uint, storage_ix *uint, storage []byte) { + var initial_storage_ix uint = *storage_ix + var table_bits uint = uint(log2FloorNonZero(table_size)) + var min_match uint + if table_bits <= 15 { + min_match = 4 + } else { + min_match = 6 + } + compressFragmentTwoPassImpl(input, input_size, is_last, command_buf, literal_buf, table, table_bits, min_match, storage_ix, storage) + + /* If output is larger than single uncompressed block, rewrite it. */ + if *storage_ix-initial_storage_ix > 31+(input_size<<3) { + rewindBitPosition(initial_storage_ix, storage_ix, storage) + emitUncompressedMetaBlock(input, input_size, storage_ix, storage) + } + + if is_last { + writeBits(1, 1, storage_ix, storage) /* islast */ + writeBits(1, 1, storage_ix, storage) /* isempty */ + *storage_ix = (*storage_ix + 7) &^ 7 + } +} diff --git a/vendor/github.com/andybalholm/brotli/constants.go b/vendor/github.com/andybalholm/brotli/constants.go new file mode 100644 index 0000000..a880dff --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/constants.go @@ -0,0 +1,77 @@ +package brotli + +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Specification: 7.3. Encoding of the context map */ +const contextMapMaxRle = 16 + +/* Specification: 2. Compressed representation overview */ +const maxNumberOfBlockTypes = 256 + +/* Specification: 3.3. Alphabet sizes: insert-and-copy length */ +const numLiteralSymbols = 256 + +const numCommandSymbols = 704 + +const numBlockLenSymbols = 26 + +const maxContextMapSymbols = (maxNumberOfBlockTypes + contextMapMaxRle) + +const maxBlockTypeSymbols = (maxNumberOfBlockTypes + 2) + +/* Specification: 3.5. Complex prefix codes */ +const repeatPreviousCodeLength = 16 + +const repeatZeroCodeLength = 17 + +const codeLengthCodes = (repeatZeroCodeLength + 1) + +/* "code length of 8 is repeated" */ +const initialRepeatedCodeLength = 8 + +/* "Large Window Brotli" */ +const largeMaxDistanceBits = 62 + +const largeMinWbits = 10 + +const largeMaxWbits = 30 + +/* Specification: 4. Encoding of distances */ +const numDistanceShortCodes = 16 + +const maxNpostfix = 3 + +const maxNdirect = 120 + +const maxDistanceBits = 24 + +func distanceAlphabetSize(NPOSTFIX uint, NDIRECT uint, MAXNBITS uint) uint { + return numDistanceShortCodes + NDIRECT + uint(MAXNBITS<<(NPOSTFIX+1)) +} + +/* numDistanceSymbols == 1128 */ +const numDistanceSymbols = 1128 + +const maxDistance = 0x3FFFFFC + +const maxAllowedDistance = 0x7FFFFFFC + +/* 7.1. Context modes and context ID lookup for literals */ +/* "context IDs for literals are in the range of 0..63" */ +const literalContextBits = 6 + +/* 7.2. Context ID for distances */ +const distanceContextBits = 2 + +/* 9.1. Format of the Stream Header */ +/* Number of slack bytes for window size. Don't confuse + with BROTLI_NUM_DISTANCE_SHORT_CODES. */ +const windowGap = 16 + +func maxBackwardLimit(W uint) uint { + return (uint(1) << W) - windowGap +} diff --git a/vendor/github.com/andybalholm/brotli/context.go b/vendor/github.com/andybalholm/brotli/context.go new file mode 100644 index 0000000..884ff8a --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/context.go @@ -0,0 +1,2176 @@ +package brotli + +/* Lookup table to map the previous two bytes to a context id. + +There are four different context modeling modes defined here: + contextLSB6: context id is the least significant 6 bits of the last byte, + contextMSB6: context id is the most significant 6 bits of the last byte, + contextUTF8: second-order context model tuned for UTF8-encoded text, + contextSigned: second-order context model tuned for signed integers. + +If |p1| and |p2| are the previous two bytes, and |mode| is current context +mode, we calculate the context as: + + context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256]. + +For contextUTF8 mode, if the previous two bytes are ASCII characters +(i.e. < 128), this will be equivalent to + + context = 4 * context1(p1) + context2(p2), + +where context1 is based on the previous byte in the following way: + + 0 : non-ASCII control + 1 : \t, \n, \r + 2 : space + 3 : other punctuation + 4 : " ' + 5 : % + 6 : ( < [ { + 7 : ) > ] } + 8 : , ; : + 9 : . + 10 : = + 11 : number + 12 : upper-case vowel + 13 : upper-case consonant + 14 : lower-case vowel + 15 : lower-case consonant + +and context2 is based on the second last byte: + + 0 : control, space + 1 : punctuation + 2 : upper-case letter, number + 3 : lower-case letter + +If the last byte is ASCII, and the second last byte is not (in a valid UTF8 +stream it will be a continuation byte, value between 128 and 191), the +context is the same as if the second last byte was an ASCII control or space. + +If the last byte is a UTF8 lead byte (value >= 192), then the next byte will +be a continuation byte and the context id is 2 or 3 depending on the LSB of +the last byte and to a lesser extent on the second last byte if it is ASCII. + +If the last byte is a UTF8 continuation byte, the second last byte can be: + - continuation byte: the next byte is probably ASCII or lead byte (assuming + 4-byte UTF8 characters are rare) and the context id is 0 or 1. + - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 + - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 + +The possible value combinations of the previous two bytes, the range of +context ids and the type of the next byte is summarized in the table below: + +|--------\-----------------------------------------------------------------| +| \ Last byte | +| Second \---------------------------------------------------------------| +| last byte \ ASCII | cont. byte | lead byte | +| \ (0-127) | (128-191) | (192-) | +|=============|===================|=====================|==================| +| ASCII | next: ASCII/lead | not valid | next: cont. | +| (0-127) | context: 4 - 63 | | context: 2 - 3 | +|-------------|-------------------|---------------------|------------------| +| cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | +| (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | +|-------------|-------------------|---------------------|------------------| +| lead byte | not valid | next: ASCII/lead | not valid | +| (192-207) | | context: 0 - 1 | | +|-------------|-------------------|---------------------|------------------| +| lead byte | not valid | next: cont. | not valid | +| (208-) | | context: 2 - 3 | | +|-------------|-------------------|---------------------|------------------| +*/ + +const ( + contextLSB6 = 0 + contextMSB6 = 1 + contextUTF8 = 2 + contextSigned = 3 +) + +/* Common context lookup table for all context modes. */ +var kContextLookup = [2048]byte{ + /* CONTEXT_LSB6, last byte. */ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 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, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 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, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 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, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 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, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + + /* CONTEXT_LSB6, second last byte, */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + + /* CONTEXT_MSB6, last byte. */ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 6, + 6, + 6, + 6, + 7, + 7, + 7, + 7, + 8, + 8, + 8, + 8, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 11, + 11, + 11, + 11, + 12, + 12, + 12, + 12, + 13, + 13, + 13, + 13, + 14, + 14, + 14, + 14, + 15, + 15, + 15, + 15, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 22, + 22, + 22, + 22, + 23, + 23, + 23, + 23, + 24, + 24, + 24, + 24, + 25, + 25, + 25, + 25, + 26, + 26, + 26, + 26, + 27, + 27, + 27, + 27, + 28, + 28, + 28, + 28, + 29, + 29, + 29, + 29, + 30, + 30, + 30, + 30, + 31, + 31, + 31, + 31, + 32, + 32, + 32, + 32, + 33, + 33, + 33, + 33, + 34, + 34, + 34, + 34, + 35, + 35, + 35, + 35, + 36, + 36, + 36, + 36, + 37, + 37, + 37, + 37, + 38, + 38, + 38, + 38, + 39, + 39, + 39, + 39, + 40, + 40, + 40, + 40, + 41, + 41, + 41, + 41, + 42, + 42, + 42, + 42, + 43, + 43, + 43, + 43, + 44, + 44, + 44, + 44, + 45, + 45, + 45, + 45, + 46, + 46, + 46, + 46, + 47, + 47, + 47, + 47, + 48, + 48, + 48, + 48, + 49, + 49, + 49, + 49, + 50, + 50, + 50, + 50, + 51, + 51, + 51, + 51, + 52, + 52, + 52, + 52, + 53, + 53, + 53, + 53, + 54, + 54, + 54, + 54, + 55, + 55, + 55, + 55, + 56, + 56, + 56, + 56, + 57, + 57, + 57, + 57, + 58, + 58, + 58, + 58, + 59, + 59, + 59, + 59, + 60, + 60, + 60, + 60, + 61, + 61, + 61, + 61, + 62, + 62, + 62, + 62, + 63, + 63, + 63, + 63, + + /* CONTEXT_MSB6, second last byte, */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + + /* CONTEXT_UTF8, last byte. */ + /* ASCII range. */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 4, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8, + 12, + 16, + 12, + 12, + 20, + 12, + 16, + 24, + 28, + 12, + 12, + 32, + 12, + 36, + 12, + 44, + 44, + 44, + 44, + 44, + 44, + 44, + 44, + 44, + 44, + 32, + 32, + 24, + 40, + 28, + 12, + 12, + 48, + 52, + 52, + 52, + 48, + 52, + 52, + 52, + 48, + 52, + 52, + 52, + 52, + 52, + 48, + 52, + 52, + 52, + 52, + 52, + 48, + 52, + 52, + 52, + 52, + 52, + 24, + 12, + 28, + 12, + 12, + 12, + 56, + 60, + 60, + 60, + 56, + 60, + 60, + 60, + 56, + 60, + 60, + 60, + 60, + 60, + 56, + 60, + 60, + 60, + 60, + 60, + 56, + 60, + 60, + 60, + 60, + 60, + 24, + 12, + 28, + 12, + 0, + + /* UTF8 continuation byte range. */ + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + + /* UTF8 lead byte range. */ + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + 2, + 3, + + /* CONTEXT_UTF8 second last byte. */ + /* ASCII range. */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 1, + 1, + 1, + 1, + 0, + + /* UTF8 continuation byte range. */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + + /* UTF8 lead byte range. */ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + + /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */ + 0, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 32, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 48, + 56, + + /* CONTEXT_SIGNED, second last byte. */ + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 7, +} + +type contextLUT []byte + +func getContextLUT(mode int) contextLUT { + return kContextLookup[mode<<9:] +} + +func getContext(p1 byte, p2 byte, lut contextLUT) byte { + return lut[p1] | lut[256+int(p2)] +} diff --git a/vendor/github.com/andybalholm/brotli/decode.go b/vendor/github.com/andybalholm/brotli/decode.go new file mode 100644 index 0000000..9d9513b --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/decode.go @@ -0,0 +1,2581 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +const ( + decoderResultError = 0 + decoderResultSuccess = 1 + decoderResultNeedsMoreInput = 2 + decoderResultNeedsMoreOutput = 3 +) + +/** + * Error code for detailed logging / production debugging. + * + * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE. + */ +const ( + decoderNoError = 0 + decoderSuccess = 1 + decoderNeedsMoreInput = 2 + decoderNeedsMoreOutput = 3 + decoderErrorFormatExuberantNibble = -1 + decoderErrorFormatReserved = -2 + decoderErrorFormatExuberantMetaNibble = -3 + decoderErrorFormatSimpleHuffmanAlphabet = -4 + decoderErrorFormatSimpleHuffmanSame = -5 + decoderErrorFormatClSpace = -6 + decoderErrorFormatHuffmanSpace = -7 + decoderErrorFormatContextMapRepeat = -8 + decoderErrorFormatBlockLength1 = -9 + decoderErrorFormatBlockLength2 = -10 + decoderErrorFormatTransform = -11 + decoderErrorFormatDictionary = -12 + decoderErrorFormatWindowBits = -13 + decoderErrorFormatPadding1 = -14 + decoderErrorFormatPadding2 = -15 + decoderErrorFormatDistance = -16 + decoderErrorDictionaryNotSet = -19 + decoderErrorInvalidArguments = -20 + decoderErrorAllocContextModes = -21 + decoderErrorAllocTreeGroups = -22 + decoderErrorAllocContextMap = -25 + decoderErrorAllocRingBuffer1 = -26 + decoderErrorAllocRingBuffer2 = -27 + decoderErrorAllocBlockTypeTrees = -30 + decoderErrorUnreachable = -31 +) + +const huffmanTableBits = 8 + +const huffmanTableMask = 0xFF + +/* We need the slack region for the following reasons: + - doing up to two 16-byte copies for fast backward copying + - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) */ +const kRingBufferWriteAheadSlack uint32 = 42 + +var kCodeLengthCodeOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} + +/* Static prefix code for the complex code length code lengths. */ +var kCodeLengthPrefixLength = [16]byte{2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, 2, 2, 4} + +var kCodeLengthPrefixValue = [16]byte{0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5} + +/* Saves error code and converts it to BrotliDecoderResult. */ +func saveErrorCode(s *Reader, e int) int { + s.error_code = int(e) + switch e { + case decoderSuccess: + return decoderResultSuccess + + case decoderNeedsMoreInput: + return decoderResultNeedsMoreInput + + case decoderNeedsMoreOutput: + return decoderResultNeedsMoreOutput + + default: + return decoderResultError + } +} + +/* Decodes WBITS by reading 1 - 7 bits, or 0x11 for "Large Window Brotli". + Precondition: bit-reader accumulator has at least 8 bits. */ +func decodeWindowBits(s *Reader, br *bitReader) int { + var n uint32 + var large_window bool = s.large_window + s.large_window = false + takeBits(br, 1, &n) + if n == 0 { + s.window_bits = 16 + return decoderSuccess + } + + takeBits(br, 3, &n) + if n != 0 { + s.window_bits = 17 + n + return decoderSuccess + } + + takeBits(br, 3, &n) + if n == 1 { + if large_window { + takeBits(br, 1, &n) + if n == 1 { + return decoderErrorFormatWindowBits + } + + s.large_window = true + return decoderSuccess + } else { + return decoderErrorFormatWindowBits + } + } + + if n != 0 { + s.window_bits = 8 + n + return decoderSuccess + } + + s.window_bits = 17 + return decoderSuccess +} + +/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */ +func decodeVarLenUint8(s *Reader, br *bitReader, value *uint32) int { + var bits uint32 + switch s.substate_decode_uint8 { + case stateDecodeUint8None: + if !safeReadBits(br, 1, &bits) { + return decoderNeedsMoreInput + } + + if bits == 0 { + *value = 0 + return decoderSuccess + } + fallthrough + + /* Fall through. */ + case stateDecodeUint8Short: + if !safeReadBits(br, 3, &bits) { + s.substate_decode_uint8 = stateDecodeUint8Short + return decoderNeedsMoreInput + } + + if bits == 0 { + *value = 1 + s.substate_decode_uint8 = stateDecodeUint8None + return decoderSuccess + } + + /* Use output value as a temporary storage. It MUST be persisted. */ + *value = bits + fallthrough + + /* Fall through. */ + case stateDecodeUint8Long: + if !safeReadBits(br, *value, &bits) { + s.substate_decode_uint8 = stateDecodeUint8Long + return decoderNeedsMoreInput + } + + *value = (1 << *value) + bits + s.substate_decode_uint8 = stateDecodeUint8None + return decoderSuccess + + default: + return decoderErrorUnreachable + } +} + +/* Decodes a metablock length and flags by reading 2 - 31 bits. */ +func decodeMetaBlockLength(s *Reader, br *bitReader) int { + var bits uint32 + var i int + for { + switch s.substate_metablock_header { + case stateMetablockHeaderNone: + if !safeReadBits(br, 1, &bits) { + return decoderNeedsMoreInput + } + + if bits != 0 { + s.is_last_metablock = 1 + } else { + s.is_last_metablock = 0 + } + s.meta_block_remaining_len = 0 + s.is_uncompressed = 0 + s.is_metadata = 0 + if s.is_last_metablock == 0 { + s.substate_metablock_header = stateMetablockHeaderNibbles + break + } + + s.substate_metablock_header = stateMetablockHeaderEmpty + fallthrough + + /* Fall through. */ + case stateMetablockHeaderEmpty: + if !safeReadBits(br, 1, &bits) { + return decoderNeedsMoreInput + } + + if bits != 0 { + s.substate_metablock_header = stateMetablockHeaderNone + return decoderSuccess + } + + s.substate_metablock_header = stateMetablockHeaderNibbles + fallthrough + + /* Fall through. */ + case stateMetablockHeaderNibbles: + if !safeReadBits(br, 2, &bits) { + return decoderNeedsMoreInput + } + + s.size_nibbles = uint(byte(bits + 4)) + s.loop_counter = 0 + if bits == 3 { + s.is_metadata = 1 + s.substate_metablock_header = stateMetablockHeaderReserved + break + } + + s.substate_metablock_header = stateMetablockHeaderSize + fallthrough + + /* Fall through. */ + case stateMetablockHeaderSize: + i = s.loop_counter + + for ; i < int(s.size_nibbles); i++ { + if !safeReadBits(br, 4, &bits) { + s.loop_counter = i + return decoderNeedsMoreInput + } + + if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 { + return decoderErrorFormatExuberantNibble + } + + s.meta_block_remaining_len |= int(bits << uint(i*4)) + } + + s.substate_metablock_header = stateMetablockHeaderUncompressed + fallthrough + + /* Fall through. */ + case stateMetablockHeaderUncompressed: + if s.is_last_metablock == 0 { + if !safeReadBits(br, 1, &bits) { + return decoderNeedsMoreInput + } + + if bits != 0 { + s.is_uncompressed = 1 + } else { + s.is_uncompressed = 0 + } + } + + s.meta_block_remaining_len++ + s.substate_metablock_header = stateMetablockHeaderNone + return decoderSuccess + + case stateMetablockHeaderReserved: + if !safeReadBits(br, 1, &bits) { + return decoderNeedsMoreInput + } + + if bits != 0 { + return decoderErrorFormatReserved + } + + s.substate_metablock_header = stateMetablockHeaderBytes + fallthrough + + /* Fall through. */ + case stateMetablockHeaderBytes: + if !safeReadBits(br, 2, &bits) { + return decoderNeedsMoreInput + } + + if bits == 0 { + s.substate_metablock_header = stateMetablockHeaderNone + return decoderSuccess + } + + s.size_nibbles = uint(byte(bits)) + s.substate_metablock_header = stateMetablockHeaderMetadata + fallthrough + + /* Fall through. */ + case stateMetablockHeaderMetadata: + i = s.loop_counter + + for ; i < int(s.size_nibbles); i++ { + if !safeReadBits(br, 8, &bits) { + s.loop_counter = i + return decoderNeedsMoreInput + } + + if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 { + return decoderErrorFormatExuberantMetaNibble + } + + s.meta_block_remaining_len |= int(bits << uint(i*8)) + } + + s.meta_block_remaining_len++ + s.substate_metablock_header = stateMetablockHeaderNone + return decoderSuccess + + default: + return decoderErrorUnreachable + } + } +} + +/* Decodes the Huffman code. + This method doesn't read data from the bit reader, BUT drops the amount of + bits that correspond to the decoded symbol. + bits MUST contain at least 15 (BROTLI_HUFFMAN_MAX_CODE_LENGTH) valid bits. */ +func decodeSymbol(bits uint32, table []huffmanCode, br *bitReader) uint32 { + table = table[bits&huffmanTableMask:] + if table[0].bits > huffmanTableBits { + var nbits uint32 = uint32(table[0].bits) - huffmanTableBits + dropBits(br, huffmanTableBits) + table = table[uint32(table[0].value)+((bits>>huffmanTableBits)&bitMask(nbits)):] + } + + dropBits(br, uint32(table[0].bits)) + return uint32(table[0].value) +} + +/* Reads and decodes the next Huffman code from bit-stream. + This method peeks 16 bits of input and drops 0 - 15 of them. */ +func readSymbol(table []huffmanCode, br *bitReader) uint32 { + return decodeSymbol(get16BitsUnmasked(br), table, br) +} + +/* Same as DecodeSymbol, but it is known that there is less than 15 bits of + input are currently available. */ +func safeDecodeSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { + var val uint32 + var available_bits uint32 = getAvailableBits(br) + if available_bits == 0 { + if table[0].bits == 0 { + *result = uint32(table[0].value) + return true + } + + return false /* No valid bits at all. */ + } + + val = uint32(getBitsUnmasked(br)) + table = table[val&huffmanTableMask:] + if table[0].bits <= huffmanTableBits { + if uint32(table[0].bits) <= available_bits { + dropBits(br, uint32(table[0].bits)) + *result = uint32(table[0].value) + return true + } else { + return false /* Not enough bits for the first level. */ + } + } + + if available_bits <= huffmanTableBits { + return false /* Not enough bits to move to the second level. */ + } + + /* Speculatively drop HUFFMAN_TABLE_BITS. */ + val = (val & bitMask(uint32(table[0].bits))) >> huffmanTableBits + + available_bits -= huffmanTableBits + table = table[uint32(table[0].value)+val:] + if available_bits < uint32(table[0].bits) { + return false /* Not enough bits for the second level. */ + } + + dropBits(br, huffmanTableBits+uint32(table[0].bits)) + *result = uint32(table[0].value) + return true +} + +func safeReadSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { + var val uint32 + if safeGetBits(br, 15, &val) { + *result = decodeSymbol(val, table, br) + return true + } + + return safeDecodeSymbol(table, br, result) +} + +/* Makes a look-up in first level Huffman table. Peeks 8 bits. */ +func preloadSymbol(safe int, table []huffmanCode, br *bitReader, bits *uint32, value *uint32) { + if safe != 0 { + return + } + + table = table[getBits(br, huffmanTableBits):] + *bits = uint32(table[0].bits) + *value = uint32(table[0].value) +} + +/* Decodes the next Huffman code using data prepared by PreloadSymbol. + Reads 0 - 15 bits. Also peeks 8 following bits. */ +func readPreloadedSymbol(table []huffmanCode, br *bitReader, bits *uint32, value *uint32) uint32 { + var result uint32 = *value + var ext []huffmanCode + if *bits > huffmanTableBits { + var val uint32 = get16BitsUnmasked(br) + ext = table[val&huffmanTableMask:][*value:] + var mask uint32 = bitMask((*bits - huffmanTableBits)) + dropBits(br, huffmanTableBits) + ext = ext[(val>>huffmanTableBits)&mask:] + dropBits(br, uint32(ext[0].bits)) + result = uint32(ext[0].value) + } else { + dropBits(br, *bits) + } + + preloadSymbol(0, table, br, bits, value) + return result +} + +func log2Floor(x uint32) uint32 { + var result uint32 = 0 + for x != 0 { + x >>= 1 + result++ + } + + return result +} + +/* Reads (s->symbol + 1) symbols. + Totally 1..4 symbols are read, 1..11 bits each. + The list of symbols MUST NOT contain duplicates. */ +func readSimpleHuffmanSymbols(alphabet_size uint32, max_symbol uint32, s *Reader) int { + var br *bitReader = &s.br + var max_bits uint32 = log2Floor(alphabet_size - 1) + var i uint32 = s.sub_loop_counter + /* max_bits == 1..11; symbol == 0..3; 1..44 bits will be read. */ + + var num_symbols uint32 = s.symbol + for i <= num_symbols { + var v uint32 + if !safeReadBits(br, max_bits, &v) { + s.sub_loop_counter = i + s.substate_huffman = stateHuffmanSimpleRead + return decoderNeedsMoreInput + } + + if v >= max_symbol { + return decoderErrorFormatSimpleHuffmanAlphabet + } + + s.symbols_lists_array[i] = uint16(v) + i++ + } + + for i = 0; i < num_symbols; i++ { + var k uint32 = i + 1 + for ; k <= num_symbols; k++ { + if s.symbols_lists_array[i] == s.symbols_lists_array[k] { + return decoderErrorFormatSimpleHuffmanSame + } + } + } + + return decoderSuccess +} + +/* Process single decoded symbol code length: + A) reset the repeat variable + B) remember code length (if it is not 0) + C) extend corresponding index-chain + D) reduce the Huffman space + E) update the histogram */ +func processSingleCodeLength(code_len uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { + *repeat = 0 + if code_len != 0 { /* code_len == 1..15 */ + symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol)) + next_symbol[code_len] = int(*symbol) + *prev_code_len = code_len + *space -= 32768 >> code_len + code_length_histo[code_len]++ + } + + (*symbol)++ +} + +/* Process repeated symbol code length. + A) Check if it is the extension of previous repeat sequence; if the decoded + value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new + symbol-skip + B) Update repeat variable + C) Check if operation is feasible (fits alphabet) + D) For each symbol do the same operations as in ProcessSingleCodeLength + + PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or + code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH */ +func processRepeatedCodeLength(code_len uint32, repeat_delta uint32, alphabet_size uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, repeat_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { + var old_repeat uint32 /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ + var extra_bits uint32 = 3 + var new_len uint32 = 0 + if code_len == repeatPreviousCodeLength { + new_len = *prev_code_len + extra_bits = 2 + } + + if *repeat_code_len != new_len { + *repeat = 0 + *repeat_code_len = new_len + } + + old_repeat = *repeat + if *repeat > 0 { + *repeat -= 2 + *repeat <<= extra_bits + } + + *repeat += repeat_delta + 3 + repeat_delta = *repeat - old_repeat + if *symbol+repeat_delta > alphabet_size { + *symbol = alphabet_size + *space = 0xFFFFF + return + } + + if *repeat_code_len != 0 { + var last uint = uint(*symbol + repeat_delta) + var next int = next_symbol[*repeat_code_len] + for { + symbolListPut(symbol_lists, next, uint16(*symbol)) + next = int(*symbol) + (*symbol)++ + if (*symbol) == uint32(last) { + break + } + } + + next_symbol[*repeat_code_len] = next + *space -= repeat_delta << (15 - *repeat_code_len) + code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta) + } else { + *symbol += repeat_delta + } +} + +/* Reads and decodes symbol codelengths. */ +func readSymbolCodeLengths(alphabet_size uint32, s *Reader) int { + var br *bitReader = &s.br + var symbol uint32 = s.symbol + var repeat uint32 = s.repeat + var space uint32 = s.space + var prev_code_len uint32 = s.prev_code_len + var repeat_code_len uint32 = s.repeat_code_len + var symbol_lists symbolList = s.symbol_lists + var code_length_histo []uint16 = s.code_length_histo[:] + var next_symbol []int = s.next_symbol[:] + if !warmupBitReader(br) { + return decoderNeedsMoreInput + } + var p []huffmanCode + for symbol < alphabet_size && space > 0 { + p = s.table[:] + var code_len uint32 + if !checkInputAmount(br, shortFillBitWindowRead) { + s.symbol = symbol + s.repeat = repeat + s.prev_code_len = prev_code_len + s.repeat_code_len = repeat_code_len + s.space = space + return decoderNeedsMoreInput + } + + fillBitWindow16(br) + p = p[getBitsUnmasked(br)&uint64(bitMask(huffmanMaxCodeLengthCodeLength)):] + dropBits(br, uint32(p[0].bits)) /* Use 1..5 bits. */ + code_len = uint32(p[0].value) /* code_len == 0..17 */ + if code_len < repeatPreviousCodeLength { + processSingleCodeLength(code_len, &symbol, &repeat, &space, &prev_code_len, symbol_lists, code_length_histo, next_symbol) /* code_len == 16..17, extra_bits == 2..3 */ + } else { + var extra_bits uint32 + if code_len == repeatPreviousCodeLength { + extra_bits = 2 + } else { + extra_bits = 3 + } + var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits) + dropBits(br, extra_bits) + processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol) + } + } + + s.space = space + return decoderSuccess +} + +func safeReadSymbolCodeLengths(alphabet_size uint32, s *Reader) int { + var br *bitReader = &s.br + var get_byte bool = false + var p []huffmanCode + for s.symbol < alphabet_size && s.space > 0 { + p = s.table[:] + var code_len uint32 + var available_bits uint32 + var bits uint32 = 0 + if get_byte && !pullByte(br) { + return decoderNeedsMoreInput + } + get_byte = false + available_bits = getAvailableBits(br) + if available_bits != 0 { + bits = uint32(getBitsUnmasked(br)) + } + + p = p[bits&bitMask(huffmanMaxCodeLengthCodeLength):] + if uint32(p[0].bits) > available_bits { + get_byte = true + continue + } + + code_len = uint32(p[0].value) /* code_len == 0..17 */ + if code_len < repeatPreviousCodeLength { + dropBits(br, uint32(p[0].bits)) + processSingleCodeLength(code_len, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) /* code_len == 16..17, extra_bits == 2..3 */ + } else { + var extra_bits uint32 = code_len - 14 + var repeat_delta uint32 = (bits >> p[0].bits) & bitMask(extra_bits) + if available_bits < uint32(p[0].bits)+extra_bits { + get_byte = true + continue + } + + dropBits(br, uint32(p[0].bits)+extra_bits) + processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, &s.repeat_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) + } + } + + return decoderSuccess +} + +/* Reads and decodes 15..18 codes using static prefix code. + Each code is 2..4 bits long. In total 30..72 bits are used. */ +func readCodeLengthCodeLengths(s *Reader) int { + var br *bitReader = &s.br + var num_codes uint32 = s.repeat + var space uint32 = s.space + var i uint32 = s.sub_loop_counter + for ; i < codeLengthCodes; i++ { + var code_len_idx byte = kCodeLengthCodeOrder[i] + var ix uint32 + var v uint32 + if !safeGetBits(br, 4, &ix) { + var available_bits uint32 = getAvailableBits(br) + if available_bits != 0 { + ix = uint32(getBitsUnmasked(br) & 0xF) + } else { + ix = 0 + } + + if uint32(kCodeLengthPrefixLength[ix]) > available_bits { + s.sub_loop_counter = i + s.repeat = num_codes + s.space = space + s.substate_huffman = stateHuffmanComplex + return decoderNeedsMoreInput + } + } + + v = uint32(kCodeLengthPrefixValue[ix]) + dropBits(br, uint32(kCodeLengthPrefixLength[ix])) + s.code_length_code_lengths[code_len_idx] = byte(v) + if v != 0 { + space = space - (32 >> v) + num_codes++ + s.code_length_histo[v]++ + if space-1 >= 32 { + /* space is 0 or wrapped around. */ + break + } + } + } + + if num_codes != 1 && space != 0 { + return decoderErrorFormatClSpace + } + + return decoderSuccess +} + +/* Decodes the Huffman tables. + There are 2 scenarios: + A) Huffman code contains only few symbols (1..4). Those symbols are read + directly; their code lengths are defined by the number of symbols. + For this scenario 4 - 49 bits will be read. + + B) 2-phase decoding: + B.1) Small Huffman table is decoded; it is specified with code lengths + encoded with predefined entropy code. 32 - 74 bits are used. + B.2) Decoded table is used to decode code lengths of symbols in resulting + Huffman table. In worst case 3520 bits are read. */ +func readHuffmanCode(alphabet_size uint32, max_symbol uint32, table []huffmanCode, opt_table_size *uint32, s *Reader) int { + var br *bitReader = &s.br + + /* Unnecessary masking, but might be good for safety. */ + alphabet_size &= 0x7FF + + /* State machine. */ + for { + switch s.substate_huffman { + case stateHuffmanNone: + if !safeReadBits(br, 2, &s.sub_loop_counter) { + return decoderNeedsMoreInput + } + + /* The value is used as follows: + 1 for simple code; + 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */ + if s.sub_loop_counter != 1 { + s.space = 32 + s.repeat = 0 /* num_codes */ + var i int + for i = 0; i <= huffmanMaxCodeLengthCodeLength; i++ { + s.code_length_histo[i] = 0 + } + + for i = 0; i < codeLengthCodes; i++ { + s.code_length_code_lengths[i] = 0 + } + + s.substate_huffman = stateHuffmanComplex + continue + } + fallthrough + + /* Read symbols, codes & code lengths directly. */ + case stateHuffmanSimpleSize: + if !safeReadBits(br, 2, &s.symbol) { /* num_symbols */ + s.substate_huffman = stateHuffmanSimpleSize + return decoderNeedsMoreInput + } + + s.sub_loop_counter = 0 + fallthrough + + case stateHuffmanSimpleRead: + { + var result int = readSimpleHuffmanSymbols(alphabet_size, max_symbol, s) + if result != decoderSuccess { + return result + } + } + fallthrough + + case stateHuffmanSimpleBuild: + var table_size uint32 + if s.symbol == 3 { + var bits uint32 + if !safeReadBits(br, 1, &bits) { + s.substate_huffman = stateHuffmanSimpleBuild + return decoderNeedsMoreInput + } + + s.symbol += bits + } + + table_size = buildSimpleHuffmanTable(table, huffmanTableBits, s.symbols_lists_array[:], s.symbol) + if opt_table_size != nil { + *opt_table_size = table_size + } + + s.substate_huffman = stateHuffmanNone + return decoderSuccess + + /* Decode Huffman-coded code lengths. */ + case stateHuffmanComplex: + { + var i uint32 + var result int = readCodeLengthCodeLengths(s) + if result != decoderSuccess { + return result + } + + buildCodeLengthsHuffmanTable(s.table[:], s.code_length_code_lengths[:], s.code_length_histo[:]) + for i = 0; i < 16; i++ { + s.code_length_histo[i] = 0 + } + + for i = 0; i <= huffmanMaxCodeLength; i++ { + s.next_symbol[i] = int(i) - (huffmanMaxCodeLength + 1) + symbolListPut(s.symbol_lists, s.next_symbol[i], 0xFFFF) + } + + s.symbol = 0 + s.prev_code_len = initialRepeatedCodeLength + s.repeat = 0 + s.repeat_code_len = 0 + s.space = 32768 + s.substate_huffman = stateHuffmanLengthSymbols + } + fallthrough + + case stateHuffmanLengthSymbols: + var table_size uint32 + var result int = readSymbolCodeLengths(max_symbol, s) + if result == decoderNeedsMoreInput { + result = safeReadSymbolCodeLengths(max_symbol, s) + } + + if result != decoderSuccess { + return result + } + + if s.space != 0 { + return decoderErrorFormatHuffmanSpace + } + + table_size = buildHuffmanTable(table, huffmanTableBits, s.symbol_lists, s.code_length_histo[:]) + if opt_table_size != nil { + *opt_table_size = table_size + } + + s.substate_huffman = stateHuffmanNone + return decoderSuccess + + default: + return decoderErrorUnreachable + } + } +} + +/* Decodes a block length by reading 3..39 bits. */ +func readBlockLength(table []huffmanCode, br *bitReader) uint32 { + var code uint32 + var nbits uint32 + code = readSymbol(table, br) + nbits = kBlockLengthPrefixCode[code].nbits /* nbits == 2..24 */ + return kBlockLengthPrefixCode[code].offset + readBits(br, nbits) +} + +/* WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then + reading can't be continued with ReadBlockLength. */ +func safeReadBlockLength(s *Reader, result *uint32, table []huffmanCode, br *bitReader) bool { + var index uint32 + if s.substate_read_block_length == stateReadBlockLengthNone { + if !safeReadSymbol(table, br, &index) { + return false + } + } else { + index = s.block_length_index + } + { + var bits uint32 /* nbits == 2..24 */ + var nbits uint32 = kBlockLengthPrefixCode[index].nbits + if !safeReadBits(br, nbits, &bits) { + s.block_length_index = index + s.substate_read_block_length = stateReadBlockLengthSuffix + return false + } + + *result = kBlockLengthPrefixCode[index].offset + bits + s.substate_read_block_length = stateReadBlockLengthNone + return true + } +} + +/* Transform: + 1) initialize list L with values 0, 1,... 255 + 2) For each input element X: + 2.1) let Y = L[X] + 2.2) remove X-th element from L + 2.3) prepend Y to L + 2.4) append Y to output + + In most cases max(Y) <= 7, so most of L remains intact. + To reduce the cost of initialization, we reuse L, remember the upper bound + of Y values, and reinitialize only first elements in L. + + Most of input values are 0 and 1. To reduce number of branches, we replace + inner for loop with do-while. */ +func inverseMoveToFrontTransform(v []byte, v_len uint32, state *Reader) { + var mtf [256]byte + var i int + for i = 1; i < 256; i++ { + mtf[i] = byte(i) + } + var mtf_1 byte + + /* Transform the input. */ + for i = 0; uint32(i) < v_len; i++ { + var index int = int(v[i]) + var value byte = mtf[index] + v[i] = value + mtf_1 = value + for index >= 1 { + index-- + mtf[index+1] = mtf[index] + } + + mtf[0] = mtf_1 + } +} + +/* Decodes a series of Huffman table using ReadHuffmanCode function. */ +func huffmanTreeGroupDecode(group *huffmanTreeGroup, s *Reader) int { + if s.substate_tree_group != stateTreeGroupLoop { + s.next = group.codes + s.htree_index = 0 + s.substate_tree_group = stateTreeGroupLoop + } + + for s.htree_index < int(group.num_htrees) { + var table_size uint32 + var result int = readHuffmanCode(uint32(group.alphabet_size), uint32(group.max_symbol), s.next, &table_size, s) + if result != decoderSuccess { + return result + } + group.htrees[s.htree_index] = s.next + s.next = s.next[table_size:] + s.htree_index++ + } + + s.substate_tree_group = stateTreeGroupNone + return decoderSuccess +} + +/* Decodes a context map. + Decoding is done in 4 phases: + 1) Read auxiliary information (6..16 bits) and allocate memory. + In case of trivial context map, decoding is finished at this phase. + 2) Decode Huffman table using ReadHuffmanCode function. + This table will be used for reading context map items. + 3) Read context map items; "0" values could be run-length encoded. + 4) Optionally, apply InverseMoveToFront transform to the resulting map. */ +func decodeContextMap(context_map_size uint32, num_htrees *uint32, context_map_arg *[]byte, s *Reader) int { + var br *bitReader = &s.br + var result int = decoderSuccess + + switch int(s.substate_context_map) { + case stateContextMapNone: + result = decodeVarLenUint8(s, br, num_htrees) + if result != decoderSuccess { + return result + } + + (*num_htrees)++ + s.context_index = 0 + *context_map_arg = make([]byte, uint(context_map_size)) + if *context_map_arg == nil { + return decoderErrorAllocContextMap + } + + if *num_htrees <= 1 { + for i := 0; i < int(context_map_size); i++ { + (*context_map_arg)[i] = 0 + } + return decoderSuccess + } + + s.substate_context_map = stateContextMapReadPrefix + fallthrough + /* Fall through. */ + case stateContextMapReadPrefix: + { + var bits uint32 + + /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe + to peek 4 bits ahead. */ + if !safeGetBits(br, 5, &bits) { + return decoderNeedsMoreInput + } + + if bits&1 != 0 { /* Use RLE for zeros. */ + s.max_run_length_prefix = (bits >> 1) + 1 + dropBits(br, 5) + } else { + s.max_run_length_prefix = 0 + dropBits(br, 1) + } + + s.substate_context_map = stateContextMapHuffman + } + fallthrough + + /* Fall through. */ + case stateContextMapHuffman: + { + var alphabet_size uint32 = *num_htrees + s.max_run_length_prefix + result = readHuffmanCode(alphabet_size, alphabet_size, s.context_map_table[:], nil, s) + if result != decoderSuccess { + return result + } + s.code = 0xFFFF + s.substate_context_map = stateContextMapDecode + } + fallthrough + + /* Fall through. */ + case stateContextMapDecode: + { + var context_index uint32 = s.context_index + var max_run_length_prefix uint32 = s.max_run_length_prefix + var context_map []byte = *context_map_arg + var code uint32 = s.code + var skip_preamble bool = (code != 0xFFFF) + for context_index < context_map_size || skip_preamble { + if !skip_preamble { + if !safeReadSymbol(s.context_map_table[:], br, &code) { + s.code = 0xFFFF + s.context_index = context_index + return decoderNeedsMoreInput + } + + if code == 0 { + context_map[context_index] = 0 + context_index++ + continue + } + + if code > max_run_length_prefix { + context_map[context_index] = byte(code - max_run_length_prefix) + context_index++ + continue + } + } else { + skip_preamble = false + } + + /* RLE sub-stage. */ + { + var reps uint32 + if !safeReadBits(br, code, &reps) { + s.code = code + s.context_index = context_index + return decoderNeedsMoreInput + } + + reps += 1 << code + if context_index+reps > context_map_size { + return decoderErrorFormatContextMapRepeat + } + + for { + context_map[context_index] = 0 + context_index++ + reps-- + if reps == 0 { + break + } + } + } + } + } + fallthrough + + case stateContextMapTransform: + var bits uint32 + if !safeReadBits(br, 1, &bits) { + s.substate_context_map = stateContextMapTransform + return decoderNeedsMoreInput + } + + if bits != 0 { + inverseMoveToFrontTransform(*context_map_arg, context_map_size, s) + } + + s.substate_context_map = stateContextMapNone + return decoderSuccess + + default: + return decoderErrorUnreachable + } +} + +/* Decodes a command or literal and updates block type ring-buffer. + Reads 3..54 bits. */ +func decodeBlockTypeAndLength(safe int, s *Reader, tree_type int) bool { + var max_block_type uint32 = s.num_block_types[tree_type] + type_tree := s.block_type_trees[tree_type*huffmanMaxSize258:] + len_tree := s.block_len_trees[tree_type*huffmanMaxSize26:] + var br *bitReader = &s.br + var ringbuffer []uint32 = s.block_type_rb[tree_type*2:] + var block_type uint32 + if max_block_type <= 1 { + return false + } + + /* Read 0..15 + 3..39 bits. */ + if safe == 0 { + block_type = readSymbol(type_tree, br) + s.block_length[tree_type] = readBlockLength(len_tree, br) + } else { + var memento bitReaderState + bitReaderSaveState(br, &memento) + if !safeReadSymbol(type_tree, br, &block_type) { + return false + } + if !safeReadBlockLength(s, &s.block_length[tree_type], len_tree, br) { + s.substate_read_block_length = stateReadBlockLengthNone + bitReaderRestoreState(br, &memento) + return false + } + } + + if block_type == 1 { + block_type = ringbuffer[1] + 1 + } else if block_type == 0 { + block_type = ringbuffer[0] + } else { + block_type -= 2 + } + + if block_type >= max_block_type { + block_type -= max_block_type + } + + ringbuffer[0] = ringbuffer[1] + ringbuffer[1] = block_type + return true +} + +func detectTrivialLiteralBlockTypes(s *Reader) { + var i uint + for i = 0; i < 8; i++ { + s.trivial_literal_contexts[i] = 0 + } + for i = 0; uint32(i) < s.num_block_types[0]; i++ { + var offset uint = i << literalContextBits + var error uint = 0 + var sample uint = uint(s.context_map[offset]) + var j uint + for j = 0; j < 1<>5] |= 1 << (i & 31) + } + } +} + +func prepareLiteralDecoding(s *Reader) { + var context_mode byte + var trivial uint + var block_type uint32 = s.block_type_rb[1] + var context_offset uint32 = block_type << literalContextBits + s.context_map_slice = s.context_map[context_offset:] + trivial = uint(s.trivial_literal_contexts[block_type>>5]) + s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1) + s.literal_htree = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[0]]) + context_mode = s.context_modes[block_type] & 3 + s.context_lookup = getContextLUT(int(context_mode)) +} + +/* Decodes the block type and updates the state for literal context. + Reads 3..54 bits. */ +func decodeLiteralBlockSwitchInternal(safe int, s *Reader) bool { + if !decodeBlockTypeAndLength(safe, s, 0) { + return false + } + + prepareLiteralDecoding(s) + return true +} + +func decodeLiteralBlockSwitch(s *Reader) { + decodeLiteralBlockSwitchInternal(0, s) +} + +func safeDecodeLiteralBlockSwitch(s *Reader) bool { + return decodeLiteralBlockSwitchInternal(1, s) +} + +/* Block switch for insert/copy length. + Reads 3..54 bits. */ +func decodeCommandBlockSwitchInternal(safe int, s *Reader) bool { + if !decodeBlockTypeAndLength(safe, s, 1) { + return false + } + + s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[s.block_type_rb[3]]) + return true +} + +func decodeCommandBlockSwitch(s *Reader) { + decodeCommandBlockSwitchInternal(0, s) +} + +func safeDecodeCommandBlockSwitch(s *Reader) bool { + return decodeCommandBlockSwitchInternal(1, s) +} + +/* Block switch for distance codes. + Reads 3..54 bits. */ +func decodeDistanceBlockSwitchInternal(safe int, s *Reader) bool { + if !decodeBlockTypeAndLength(safe, s, 2) { + return false + } + + s.dist_context_map_slice = s.dist_context_map[s.block_type_rb[5]< s.ringbuffer_size { + pos = uint(s.ringbuffer_size) + } else { + pos = uint(s.pos) + } + var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos + return partial_pos_rb - s.partial_pos_out +} + +/* Dumps output. + Returns BROTLI_DECODER_NEEDS_MORE_OUTPUT only if there is more output to push + and either ring-buffer is as big as window size, or |force| is true. */ +func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out *uint, force bool) int { + start := s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):] + var to_write uint = unwrittenBytes(s, true) + var num_written uint = *available_out + if num_written > to_write { + num_written = to_write + } + + if s.meta_block_remaining_len < 0 { + return decoderErrorFormatBlockLength1 + } + + if next_out != nil && *next_out == nil { + *next_out = start + } else { + if next_out != nil { + copy(*next_out, start[:num_written]) + *next_out = (*next_out)[num_written:] + } + } + + *available_out -= num_written + s.partial_pos_out += num_written + if total_out != nil { + *total_out = s.partial_pos_out + } + + if num_written < to_write { + if s.ringbuffer_size == 1<= s.ringbuffer_size { + s.pos -= s.ringbuffer_size + s.rb_roundtrips++ + if uint(s.pos) != 0 { + s.should_wrap_ringbuffer = 1 + } else { + s.should_wrap_ringbuffer = 0 + } + } + + return decoderSuccess +} + +func wrapRingBuffer(s *Reader) { + if s.should_wrap_ringbuffer != 0 { + copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)]) + s.should_wrap_ringbuffer = 0 + } +} + +/* Allocates ring-buffer. + + s->ringbuffer_size MUST be updated by BrotliCalculateRingBufferSize before + this function is called. + + Last two bytes of ring-buffer are initialized to 0, so context calculation + could be done uniformly for the first two and all other positions. */ +func ensureRingBuffer(s *Reader) bool { + var old_ringbuffer []byte + if s.ringbuffer_size == s.new_ringbuffer_size { + return true + } + spaceNeeded := int(s.new_ringbuffer_size) + int(kRingBufferWriteAheadSlack) + if len(s.ringbuffer) < spaceNeeded { + old_ringbuffer = s.ringbuffer + s.ringbuffer = make([]byte, spaceNeeded) + } + + s.ringbuffer[s.new_ringbuffer_size-2] = 0 + s.ringbuffer[s.new_ringbuffer_size-1] = 0 + + if old_ringbuffer != nil { + copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)]) + } + + s.ringbuffer_size = s.new_ringbuffer_size + s.ringbuffer_mask = s.new_ringbuffer_size - 1 + s.ringbuffer_end = s.ringbuffer[s.ringbuffer_size:] + + return true +} + +func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_out *uint, s *Reader) int { + /* TODO: avoid allocation for single uncompressed block. */ + if !ensureRingBuffer(s) { + return decoderErrorAllocRingBuffer1 + } + + /* State machine */ + for { + switch s.substate_uncompressed { + case stateUncompressedNone: + { + var nbytes int = int(getRemainingBytes(&s.br)) + if nbytes > s.meta_block_remaining_len { + nbytes = s.meta_block_remaining_len + } + + if s.pos+nbytes > s.ringbuffer_size { + nbytes = s.ringbuffer_size - s.pos + } + + /* Copy remaining bytes from s->br.buf_ to ring-buffer. */ + copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes)) + + s.pos += nbytes + s.meta_block_remaining_len -= nbytes + if s.pos < 1<>1 >= min_size { + new_ringbuffer_size >>= 1 + } + } + + s.new_ringbuffer_size = new_ringbuffer_size +} + +/* Reads 1..256 2-bit context modes. */ +func readContextModes(s *Reader) int { + var br *bitReader = &s.br + var i int = s.loop_counter + + for i < int(s.num_block_types[0]) { + var bits uint32 + if !safeReadBits(br, 2, &bits) { + s.loop_counter = i + return decoderNeedsMoreInput + } + + s.context_modes[i] = byte(bits) + i++ + } + + return decoderSuccess +} + +func takeDistanceFromRingBuffer(s *Reader) { + if s.distance_code == 0 { + s.dist_rb_idx-- + s.distance_code = s.dist_rb[s.dist_rb_idx&3] + + /* Compensate double distance-ring-buffer roll for dictionary items. */ + s.distance_context = 1 + } else { + var distance_code int = s.distance_code << 1 + const kDistanceShortCodeIndexOffset uint32 = 0xAAAFFF1B + const kDistanceShortCodeValueOffset uint32 = 0xFA5FA500 + var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3 + /* kDistanceShortCodeIndexOffset has 2-bit values from LSB: + 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */ + + /* kDistanceShortCodeValueOffset has 2-bit values from LSB: + -0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */ + s.distance_code = s.dist_rb[v] + + v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3 + if distance_code&0x3 != 0 { + s.distance_code += v + } else { + s.distance_code -= v + if s.distance_code <= 0 { + /* A huge distance will cause a () soon. + This is a little faster than failing here. */ + s.distance_code = 0x7FFFFFFF + } + } + } +} + +func safeReadBitsMaybeZero(br *bitReader, n_bits uint32, val *uint32) bool { + if n_bits != 0 { + return safeReadBits(br, n_bits, val) + } else { + *val = 0 + return true + } +} + +/* Precondition: s->distance_code < 0. */ +func readDistanceInternal(safe int, s *Reader, br *bitReader) bool { + var distval int + var memento bitReaderState + var distance_tree []huffmanCode = []huffmanCode(s.distance_hgroup.htrees[s.dist_htree_index]) + if safe == 0 { + s.distance_code = int(readSymbol(distance_tree, br)) + } else { + var code uint32 + bitReaderSaveState(br, &memento) + if !safeReadSymbol(distance_tree, br, &code) { + return false + } + + s.distance_code = int(code) + } + + /* Convert the distance code to the actual distance by possibly + looking up past distances from the s->ringbuffer. */ + s.distance_context = 0 + + if s.distance_code&^0xF == 0 { + takeDistanceFromRingBuffer(s) + s.block_length[2]-- + return true + } + + distval = s.distance_code - int(s.num_direct_distance_codes) + if distval >= 0 { + var nbits uint32 + var postfix int + var offset int + if safe == 0 && (s.distance_postfix_bits == 0) { + nbits = (uint32(distval) >> 1) + 1 + offset = ((2 + (distval & 1)) << nbits) - 4 + s.distance_code = int(s.num_direct_distance_codes) + offset + int(readBits(br, nbits)) + } else { + /* This branch also works well when s->distance_postfix_bits == 0. */ + var bits uint32 + postfix = distval & s.distance_postfix_mask + distval >>= s.distance_postfix_bits + nbits = (uint32(distval) >> 1) + 1 + if safe != 0 { + if !safeReadBitsMaybeZero(br, nbits, &bits) { + s.distance_code = -1 /* Restore precondition. */ + bitReaderRestoreState(br, &memento) + return false + } + } else { + bits = readBits(br, nbits) + } + + offset = ((2 + (distval & 1)) << nbits) - 4 + s.distance_code = int(s.num_direct_distance_codes) + ((offset + int(bits)) << s.distance_postfix_bits) + postfix + } + } + + s.distance_code = s.distance_code - numDistanceShortCodes + 1 + s.block_length[2]-- + return true +} + +func readDistance(s *Reader, br *bitReader) { + readDistanceInternal(0, s, br) +} + +func safeReadDistance(s *Reader, br *bitReader) bool { + return readDistanceInternal(1, s, br) +} + +func readCommandInternal(safe int, s *Reader, br *bitReader, insert_length *int) bool { + var cmd_code uint32 + var insert_len_extra uint32 = 0 + var copy_length uint32 + var v cmdLutElement + var memento bitReaderState + if safe == 0 { + cmd_code = readSymbol(s.htree_command, br) + } else { + bitReaderSaveState(br, &memento) + if !safeReadSymbol(s.htree_command, br, &cmd_code) { + return false + } + } + + v = kCmdLut[cmd_code] + s.distance_code = int(v.distance_code) + s.distance_context = int(v.context) + s.dist_htree_index = s.dist_context_map_slice[s.distance_context] + *insert_length = int(v.insert_len_offset) + if safe == 0 { + if v.insert_len_extra_bits != 0 { + insert_len_extra = readBits(br, uint32(v.insert_len_extra_bits)) + } + + copy_length = readBits(br, uint32(v.copy_len_extra_bits)) + } else { + if !safeReadBitsMaybeZero(br, uint32(v.insert_len_extra_bits), &insert_len_extra) || !safeReadBitsMaybeZero(br, uint32(v.copy_len_extra_bits), ©_length) { + bitReaderRestoreState(br, &memento) + return false + } + } + + s.copy_length = int(copy_length) + int(v.copy_len_offset) + s.block_length[1]-- + *insert_length += int(insert_len_extra) + return true +} + +func readCommand(s *Reader, br *bitReader, insert_length *int) { + readCommandInternal(0, s, br, insert_length) +} + +func safeReadCommand(s *Reader, br *bitReader, insert_length *int) bool { + return readCommandInternal(1, s, br, insert_length) +} + +func checkInputAmountMaybeSafe(safe int, br *bitReader, num uint) bool { + if safe != 0 { + return true + } + + return checkInputAmount(br, num) +} + +func processCommandsInternal(safe int, s *Reader) int { + var pos int = s.pos + var i int = s.loop_counter + var result int = decoderSuccess + var br *bitReader = &s.br + var hc []huffmanCode + + if !checkInputAmountMaybeSafe(safe, br, 28) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + if safe == 0 { + warmupBitReader(br) + } + + /* Jump into state machine. */ + if s.state == stateCommandBegin { + goto CommandBegin + } else if s.state == stateCommandInner { + goto CommandInner + } else if s.state == stateCommandPostDecodeLiterals { + goto CommandPostDecodeLiterals + } else if s.state == stateCommandPostWrapCopy { + goto CommandPostWrapCopy + } else { + return decoderErrorUnreachable + } + +CommandBegin: + if safe != 0 { + s.state = stateCommandBegin + } + + if !checkInputAmountMaybeSafe(safe, br, 28) { /* 156 bits + 7 bytes */ + s.state = stateCommandBegin + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + if s.block_length[1] == 0 { + if safe != 0 { + if !safeDecodeCommandBlockSwitch(s) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + decodeCommandBlockSwitch(s) + } + + goto CommandBegin + } + + /* Read the insert/copy length in the command. */ + if safe != 0 { + if !safeReadCommand(s, br, &i) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + readCommand(s, br, &i) + } + + if i == 0 { + goto CommandPostDecodeLiterals + } + + s.meta_block_remaining_len -= i + +CommandInner: + if safe != 0 { + s.state = stateCommandInner + } + + /* Read the literals in the command. */ + if s.trivial_literal_context != 0 { + var bits uint32 + var value uint32 + preloadSymbol(safe, s.literal_htree, br, &bits, &value) + for { + if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ + s.state = stateCommandInner + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + if s.block_length[0] == 0 { + if safe != 0 { + if !safeDecodeLiteralBlockSwitch(s) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + decodeLiteralBlockSwitch(s) + } + + preloadSymbol(safe, s.literal_htree, br, &bits, &value) + if s.trivial_literal_context == 0 { + goto CommandInner + } + } + + if safe == 0 { + s.ringbuffer[pos] = byte(readPreloadedSymbol(s.literal_htree, br, &bits, &value)) + } else { + var literal uint32 + if !safeReadSymbol(s.literal_htree, br, &literal) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + s.ringbuffer[pos] = byte(literal) + } + + s.block_length[0]-- + pos++ + if pos == s.ringbuffer_size { + s.state = stateCommandInnerWrite + i-- + goto saveStateAndReturn + } + i-- + if i == 0 { + break + } + } + } else { + var p1 byte = s.ringbuffer[(pos-1)&s.ringbuffer_mask] + var p2 byte = s.ringbuffer[(pos-2)&s.ringbuffer_mask] + for { + var context byte + if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ + s.state = stateCommandInner + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + if s.block_length[0] == 0 { + if safe != 0 { + if !safeDecodeLiteralBlockSwitch(s) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + decodeLiteralBlockSwitch(s) + } + + if s.trivial_literal_context != 0 { + goto CommandInner + } + } + + context = getContext(p1, p2, s.context_lookup) + hc = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[context]]) + p2 = p1 + if safe == 0 { + p1 = byte(readSymbol(hc, br)) + } else { + var literal uint32 + if !safeReadSymbol(hc, br, &literal) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + + p1 = byte(literal) + } + + s.ringbuffer[pos] = p1 + s.block_length[0]-- + pos++ + if pos == s.ringbuffer_size { + s.state = stateCommandInnerWrite + i-- + goto saveStateAndReturn + } + i-- + if i == 0 { + break + } + } + } + + if s.meta_block_remaining_len <= 0 { + s.state = stateMetablockDone + goto saveStateAndReturn + } + +CommandPostDecodeLiterals: + if safe != 0 { + s.state = stateCommandPostDecodeLiterals + } + + if s.distance_code >= 0 { + /* Implicit distance case. */ + if s.distance_code != 0 { + s.distance_context = 0 + } else { + s.distance_context = 1 + } + + s.dist_rb_idx-- + s.distance_code = s.dist_rb[s.dist_rb_idx&3] + } else { + /* Read distance code in the command, unless it was implicitly zero. */ + if s.block_length[2] == 0 { + if safe != 0 { + if !safeDecodeDistanceBlockSwitch(s) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + decodeDistanceBlockSwitch(s) + } + } + + if safe != 0 { + if !safeReadDistance(s, br) { + result = decoderNeedsMoreInput + goto saveStateAndReturn + } + } else { + readDistance(s, br) + } + } + + if s.max_distance != s.max_backward_distance { + if pos < s.max_backward_distance { + s.max_distance = pos + } else { + s.max_distance = s.max_backward_distance + } + } + + i = s.copy_length + + /* Apply copy of LZ77 back-reference, or static dictionary reference if + the distance is larger than the max LZ77 distance */ + if s.distance_code > s.max_distance { + /* The maximum allowed distance is BROTLI_MAX_ALLOWED_DISTANCE = 0x7FFFFFFC. + With this choice, no signed overflow can occur after decoding + a special distance code (e.g., after adding 3 to the last distance). */ + if s.distance_code > maxAllowedDistance { + return decoderErrorFormatDistance + } + + if i >= minDictionaryWordLength && i <= maxDictionaryWordLength { + var address int = s.distance_code - s.max_distance - 1 + var words *dictionary = s.dictionary + var trans *transforms = s.transforms + var offset int = int(s.dictionary.offsets_by_length[i]) + var shift uint32 = uint32(s.dictionary.size_bits_by_length[i]) + var mask int = int(bitMask(shift)) + var word_idx int = address & mask + var transform_idx int = address >> shift + + /* Compensate double distance-ring-buffer roll. */ + s.dist_rb_idx += s.distance_context + + offset += word_idx * i + if words.data == nil { + return decoderErrorDictionaryNotSet + } + + if transform_idx < int(trans.num_transforms) { + word := words.data[offset:] + var len int = i + if transform_idx == int(trans.cutOffTransforms[0]) { + copy(s.ringbuffer[pos:], word[:uint(len)]) + } else { + len = transformDictionaryWord(s.ringbuffer[pos:], word, int(len), trans, transform_idx) + } + + pos += int(len) + s.meta_block_remaining_len -= int(len) + if pos >= s.ringbuffer_size { + s.state = stateCommandPostWrite1 + goto saveStateAndReturn + } + } else { + return decoderErrorFormatTransform + } + } else { + return decoderErrorFormatDictionary + } + } else { + var src_start int = (pos - s.distance_code) & s.ringbuffer_mask + copy_dst := s.ringbuffer[pos:] + copy_src := s.ringbuffer[src_start:] + var dst_end int = pos + i + var src_end int = src_start + i + + /* Update the recent distances cache. */ + s.dist_rb[s.dist_rb_idx&3] = s.distance_code + + s.dist_rb_idx++ + s.meta_block_remaining_len -= i + + /* There are 32+ bytes of slack in the ring-buffer allocation. + Also, we have 16 short codes, that make these 16 bytes irrelevant + in the ring-buffer. Let's copy over them as a first guess. */ + copy(copy_dst, copy_src[:16]) + + if src_end > pos && dst_end > src_start { + /* Regions intersect. */ + goto CommandPostWrapCopy + } + + if dst_end >= s.ringbuffer_size || src_end >= s.ringbuffer_size { + /* At least one region wraps. */ + goto CommandPostWrapCopy + } + + pos += i + if i > 16 { + if i > 32 { + copy(copy_dst[16:], copy_src[16:][:uint(i-16)]) + } else { + /* This branch covers about 45% cases. + Fixed size short copy allows more compiler optimizations. */ + copy(copy_dst[16:], copy_src[16:][:16]) + } + } + } + + if s.meta_block_remaining_len <= 0 { + /* Next metablock, if any. */ + s.state = stateMetablockDone + + goto saveStateAndReturn + } else { + goto CommandBegin + } +CommandPostWrapCopy: + { + var wrap_guard int = s.ringbuffer_size - pos + for { + i-- + if i < 0 { + break + } + s.ringbuffer[pos] = s.ringbuffer[(pos-s.distance_code)&s.ringbuffer_mask] + pos++ + wrap_guard-- + if wrap_guard == 0 { + s.state = stateCommandPostWrite2 + goto saveStateAndReturn + } + } + } + + if s.meta_block_remaining_len <= 0 { + /* Next metablock, if any. */ + s.state = stateMetablockDone + + goto saveStateAndReturn + } else { + goto CommandBegin + } + +saveStateAndReturn: + s.pos = pos + s.loop_counter = i + return result +} + +func processCommands(s *Reader) int { + return processCommandsInternal(0, s) +} + +func safeProcessCommands(s *Reader) int { + return processCommandsInternal(1, s) +} + +/* Returns the maximum number of distance symbols which can only represent + distances not exceeding BROTLI_MAX_ALLOWED_DISTANCE. */ + +var maxDistanceSymbol_bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} +var maxDistanceSymbol_diff = [maxNpostfix + 1]uint32{73, 126, 228, 424} + +func maxDistanceSymbol(ndirect uint32, npostfix uint32) uint32 { + var postfix uint32 = 1 << npostfix + if ndirect < maxDistanceSymbol_bound[npostfix] { + return ndirect + maxDistanceSymbol_diff[npostfix] + postfix + } else if ndirect > maxDistanceSymbol_bound[npostfix]+postfix { + return ndirect + maxDistanceSymbol_diff[npostfix] + } else { + return maxDistanceSymbol_bound[npostfix] + maxDistanceSymbol_diff[npostfix] + postfix + } +} + +/* Invariant: input stream is never overconsumed: + - invalid input implies that the whole stream is invalid -> any amount of + input could be read and discarded + - when result is "needs more input", then at least one more byte is REQUIRED + to complete decoding; all input data MUST be consumed by decoder, so + client could swap the input buffer + - when result is "needs more output" decoder MUST ensure that it doesn't + hold more than 7 bits in bit reader; this saves client from swapping input + buffer ahead of time + - when result is "success" decoder MUST return all unused data back to input + buffer; this is possible because the invariant is held on enter */ +func decoderDecompressStream(s *Reader, available_in *uint, next_in *[]byte, available_out *uint, next_out *[]byte) int { + var result int = decoderSuccess + var br *bitReader = &s.br + + /* Do not try to process further in a case of unrecoverable error. */ + if int(s.error_code) < 0 { + return decoderResultError + } + + if *available_out != 0 && (next_out == nil || *next_out == nil) { + return saveErrorCode(s, decoderErrorInvalidArguments) + } + + if *available_out == 0 { + next_out = nil + } + if s.buffer_length == 0 { /* Just connect bit reader to input stream. */ + br.input_len = *available_in + br.input = *next_in + br.byte_pos = 0 + } else { + /* At least one byte of input is required. More than one byte of input may + be required to complete the transaction -> reading more data must be + done in a loop -> do it in a main loop. */ + result = decoderNeedsMoreInput + + br.input = s.buffer.u8[:] + br.byte_pos = 0 + } + + /* State machine */ + for { + if result != decoderSuccess { + /* Error, needs more input/output. */ + if result == decoderNeedsMoreInput { + if s.ringbuffer != nil { /* Pro-actively push output. */ + var intermediate_result int = writeRingBuffer(s, available_out, next_out, nil, true) + + /* WriteRingBuffer checks s->meta_block_remaining_len validity. */ + if int(intermediate_result) < 0 { + result = intermediate_result + break + } + } + + if s.buffer_length != 0 { /* Used with internal buffer. */ + if br.byte_pos == br.input_len { + /* Successfully finished read transaction. + Accumulator contains less than 8 bits, because internal buffer + is expanded byte-by-byte until it is enough to complete read. */ + s.buffer_length = 0 + + /* Switch to input stream and restart. */ + result = decoderSuccess + + br.input_len = *available_in + br.input = *next_in + br.byte_pos = 0 + continue + } else if *available_in != 0 { + /* Not enough data in buffer, but can take one more byte from + input stream. */ + result = decoderSuccess + + s.buffer.u8[s.buffer_length] = (*next_in)[0] + s.buffer_length++ + br.input_len = uint(s.buffer_length) + *next_in = (*next_in)[1:] + (*available_in)-- + + /* Retry with more data in buffer. */ + continue + } + + /* Can't finish reading and no more input. */ + break + /* Input stream doesn't contain enough input. */ + } else { + /* Copy tail to internal buffer and return. */ + *next_in = br.input[br.byte_pos:] + + *available_in = br.input_len - br.byte_pos + for *available_in != 0 { + s.buffer.u8[s.buffer_length] = (*next_in)[0] + s.buffer_length++ + *next_in = (*next_in)[1:] + (*available_in)-- + } + + break + } + } + + /* Unreachable. */ + + /* Fail or needs more output. */ + if s.buffer_length != 0 { + /* Just consumed the buffered input and produced some output. Otherwise + it would result in "needs more input". Reset internal buffer. */ + s.buffer_length = 0 + } else { + /* Using input stream in last iteration. When decoder switches to input + stream it has less than 8 bits in accumulator, so it is safe to + return unused accumulator bits there. */ + bitReaderUnload(br) + + *available_in = br.input_len - br.byte_pos + *next_in = br.input[br.byte_pos:] + } + + break + } + + switch s.state { + /* Prepare to the first read. */ + case stateUninited: + if !warmupBitReader(br) { + result = decoderNeedsMoreInput + break + } + + /* Decode window size. */ + result = decodeWindowBits(s, br) /* Reads 1..8 bits. */ + if result != decoderSuccess { + break + } + + if s.large_window { + s.state = stateLargeWindowBits + break + } + + s.state = stateInitialize + + case stateLargeWindowBits: + if !safeReadBits(br, 6, &s.window_bits) { + result = decoderNeedsMoreInput + break + } + + if s.window_bits < largeMinWbits || s.window_bits > largeMaxWbits { + result = decoderErrorFormatWindowBits + break + } + + s.state = stateInitialize + fallthrough + + /* Maximum distance, see section 9.1. of the spec. */ + /* Fall through. */ + case stateInitialize: + s.max_backward_distance = (1 << s.window_bits) - windowGap + + /* Allocate memory for both block_type_trees and block_len_trees. */ + s.block_type_trees = make([]huffmanCode, (3 * (huffmanMaxSize258 + huffmanMaxSize26))) + + if s.block_type_trees == nil { + result = decoderErrorAllocBlockTypeTrees + break + } + + s.block_len_trees = s.block_type_trees[3*huffmanMaxSize258:] + + s.state = stateMetablockBegin + fallthrough + + /* Fall through. */ + case stateMetablockBegin: + decoderStateMetablockBegin(s) + + s.state = stateMetablockHeader + fallthrough + + /* Fall through. */ + case stateMetablockHeader: + result = decodeMetaBlockLength(s, br) + /* Reads 2 - 31 bits. */ + if result != decoderSuccess { + break + } + + if s.is_metadata != 0 || s.is_uncompressed != 0 { + if !bitReaderJumpToByteBoundary(br) { + result = decoderErrorFormatPadding1 + break + } + } + + if s.is_metadata != 0 { + s.state = stateMetadata + break + } + + if s.meta_block_remaining_len == 0 { + s.state = stateMetablockDone + break + } + + calculateRingBufferSize(s) + if s.is_uncompressed != 0 { + s.state = stateUncompressed + break + } + + s.loop_counter = 0 + s.state = stateHuffmanCode0 + + case stateUncompressed: + result = copyUncompressedBlockToOutput(available_out, next_out, nil, s) + if result == decoderSuccess { + s.state = stateMetablockDone + } + + case stateMetadata: + for ; s.meta_block_remaining_len > 0; s.meta_block_remaining_len-- { + var bits uint32 + + /* Read one byte and ignore it. */ + if !safeReadBits(br, 8, &bits) { + result = decoderNeedsMoreInput + break + } + } + + if result == decoderSuccess { + s.state = stateMetablockDone + } + + case stateHuffmanCode0: + if s.loop_counter >= 3 { + s.state = stateMetablockHeader2 + break + } + + /* Reads 1..11 bits. */ + result = decodeVarLenUint8(s, br, &s.num_block_types[s.loop_counter]) + + if result != decoderSuccess { + break + } + + s.num_block_types[s.loop_counter]++ + if s.num_block_types[s.loop_counter] < 2 { + s.loop_counter++ + break + } + + s.state = stateHuffmanCode1 + fallthrough + + case stateHuffmanCode1: + { + var alphabet_size uint32 = s.num_block_types[s.loop_counter] + 2 + var tree_offset int = s.loop_counter * huffmanMaxSize258 + result = readHuffmanCode(alphabet_size, alphabet_size, s.block_type_trees[tree_offset:], nil, s) + if result != decoderSuccess { + break + } + s.state = stateHuffmanCode2 + } + fallthrough + + case stateHuffmanCode2: + { + var alphabet_size uint32 = numBlockLenSymbols + var tree_offset int = s.loop_counter * huffmanMaxSize26 + result = readHuffmanCode(alphabet_size, alphabet_size, s.block_len_trees[tree_offset:], nil, s) + if result != decoderSuccess { + break + } + s.state = stateHuffmanCode3 + } + fallthrough + + case stateHuffmanCode3: + var tree_offset int = s.loop_counter * huffmanMaxSize26 + if !safeReadBlockLength(s, &s.block_length[s.loop_counter], s.block_len_trees[tree_offset:], br) { + result = decoderNeedsMoreInput + break + } + + s.loop_counter++ + s.state = stateHuffmanCode0 + + case stateMetablockHeader2: + { + var bits uint32 + if !safeReadBits(br, 6, &bits) { + result = decoderNeedsMoreInput + break + } + + s.distance_postfix_bits = bits & bitMask(2) + bits >>= 2 + s.num_direct_distance_codes = numDistanceShortCodes + (bits << s.distance_postfix_bits) + s.distance_postfix_mask = int(bitMask(s.distance_postfix_bits)) + s.context_modes = make([]byte, uint(s.num_block_types[0])) + if s.context_modes == nil { + result = decoderErrorAllocContextModes + break + } + + s.loop_counter = 0 + s.state = stateContextModes + } + fallthrough + + case stateContextModes: + result = readContextModes(s) + + if result != decoderSuccess { + break + } + + s.state = stateContextMap1 + fallthrough + + case stateContextMap1: + result = decodeContextMap(s.num_block_types[0]<= 3 { + prepareLiteralDecoding(s) + s.dist_context_map_slice = s.dist_context_map + s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[0]) + if !ensureRingBuffer(s) { + result = decoderErrorAllocRingBuffer2 + break + } + + s.state = stateCommandBegin + } + + case stateCommandBegin, stateCommandInner, stateCommandPostDecodeLiterals, stateCommandPostWrapCopy: + result = processCommands(s) + + if result == decoderNeedsMoreInput { + result = safeProcessCommands(s) + } + + case stateCommandInnerWrite, stateCommandPostWrite1, stateCommandPostWrite2: + result = writeRingBuffer(s, available_out, next_out, nil, false) + + if result != decoderSuccess { + break + } + + wrapRingBuffer(s) + if s.ringbuffer_size == 1<= uint64(block_size) { + return 0 + } + return block_size - uint(delta) +} + +/* Wraps 64-bit input position to 32-bit ring-buffer position preserving + "not-a-first-lap" feature. */ +func wrapPosition(position uint64) uint32 { + var result uint32 = uint32(position) + var gb uint64 = position >> 30 + if gb > 2 { + /* Wrap every 2GiB; The first 3GB are continuous. */ + result = result&((1<<30)-1) | (uint32((gb-1)&1)+1)<<30 + } + + return result +} + +func (s *Writer) getStorage(size int) []byte { + if len(s.storage) < size { + s.storage = make([]byte, size) + } + + return s.storage +} + +func hashTableSize(max_table_size uint, input_size uint) uint { + var htsize uint = 256 + for htsize < max_table_size && htsize < input_size { + htsize <<= 1 + } + + return htsize +} + +func getHashTable(s *Writer, quality int, input_size uint, table_size *uint) []int { + var max_table_size uint = maxHashTableSize(quality) + var htsize uint = hashTableSize(max_table_size, input_size) + /* Use smaller hash table when input.size() is smaller, since we + fill the table, incurring O(hash table size) overhead for + compression, and if the input is short, we won't need that + many hash table entries anyway. */ + + var table []int + assert(max_table_size >= 256) + if quality == fastOnePassCompressionQuality { + /* Only odd shifts are supported by fast-one-pass. */ + if htsize&0xAAAAA == 0 { + htsize <<= 1 + } + } + + if htsize <= uint(len(s.small_table_)) { + table = s.small_table_[:] + } else { + if htsize > s.large_table_size_ { + s.large_table_size_ = htsize + s.large_table_ = nil + s.large_table_ = make([]int, htsize) + } + + table = s.large_table_ + } + + *table_size = htsize + for i := 0; i < int(htsize); i++ { + table[i] = 0 + } + return table +} + +func encodeWindowBits(lgwin int, large_window bool, last_bytes *uint16, last_bytes_bits *byte) { + if large_window { + *last_bytes = uint16((lgwin&0x3F)<<8 | 0x11) + *last_bytes_bits = 14 + } else { + if lgwin == 16 { + *last_bytes = 0 + *last_bytes_bits = 1 + } else if lgwin == 17 { + *last_bytes = 1 + *last_bytes_bits = 7 + } else if lgwin > 17 { + *last_bytes = uint16((lgwin-17)<<1 | 0x01) + *last_bytes_bits = 4 + } else { + *last_bytes = uint16((lgwin-8)<<4 | 0x01) + *last_bytes_bits = 7 + } + } +} + +/* Decide about the context map based on the ability of the prediction + ability of the previous byte UTF8-prefix on the next byte. The + prediction ability is calculated as Shannon entropy. Here we need + Shannon entropy instead of 'BitsEntropy' since the prefix will be + encoded with the remaining 6 bits of the following byte, and + BitsEntropy will assume that symbol to be stored alone using Huffman + coding. */ + +var kStaticContextMapContinuation = [64]uint32{ + 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +} +var kStaticContextMapSimpleUTF8 = [64]uint32{ + 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +} + +func chooseContextMap(quality int, bigram_histo []uint32, num_literal_contexts *uint, literal_context_map *[]uint32) { + var monogram_histo = [3]uint32{0} + var two_prefix_histo = [6]uint32{0} + var total uint + var i uint + var dummy uint + var entropy [4]float64 + for i = 0; i < 9; i++ { + monogram_histo[i%3] += bigram_histo[i] + two_prefix_histo[i%6] += bigram_histo[i] + } + + entropy[1] = shannonEntropy(monogram_histo[:], 3, &dummy) + entropy[2] = (shannonEntropy(two_prefix_histo[:], 3, &dummy) + shannonEntropy(two_prefix_histo[3:], 3, &dummy)) + entropy[3] = 0 + for i = 0; i < 3; i++ { + entropy[3] += shannonEntropy(bigram_histo[3*i:], 3, &dummy) + } + + total = uint(monogram_histo[0] + monogram_histo[1] + monogram_histo[2]) + assert(total != 0) + entropy[0] = 1.0 / float64(total) + entropy[1] *= entropy[0] + entropy[2] *= entropy[0] + entropy[3] *= entropy[0] + + if quality < minQualityForHqContextModeling { + /* 3 context models is a bit slower, don't use it at lower qualities. */ + entropy[3] = entropy[1] * 10 + } + + /* If expected savings by symbol are less than 0.2 bits, skip the + context modeling -- in exchange for faster decoding speed. */ + if entropy[1]-entropy[2] < 0.2 && entropy[1]-entropy[3] < 0.2 { + *num_literal_contexts = 1 + } else if entropy[2]-entropy[3] < 0.02 { + *num_literal_contexts = 2 + *literal_context_map = kStaticContextMapSimpleUTF8[:] + } else { + *num_literal_contexts = 3 + *literal_context_map = kStaticContextMapContinuation[:] + } +} + +/* Decide if we want to use a more complex static context map containing 13 + context values, based on the entropy reduction of histograms over the + first 5 bits of literals. */ + +var kStaticContextMapComplexUTF8 = [64]uint32{ + 11, 11, 12, 12, /* 0 special */ + 0, 0, 0, 0, /* 4 lf */ + 1, 1, 9, 9, /* 8 space */ + 2, 2, 2, 2, /* !, first after space/lf and after something else. */ + 1, 1, 1, 1, /* " */ + 8, 3, 3, 3, /* % */ + 1, 1, 1, 1, /* ({[ */ + 2, 2, 2, 2, /* }]) */ + 8, 4, 4, 4, /* :; */ + 8, 7, 4, 4, /* . */ + 8, 0, 0, 0, /* > */ + 3, 3, 3, 3, /* [0..9] */ + 5, 5, 10, 5, /* [A-Z] */ + 5, 5, 10, 5, + 6, 6, 6, 6, /* [a-z] */ + 6, 6, 6, 6, +} + +func shouldUseComplexStaticContextMap(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) bool { + /* Try the more complex static context map only for long data. */ + if size_hint < 1<<20 { + return false + } else { + var end_pos uint = start_pos + length + var combined_histo = [32]uint32{0} + var context_histo = [13][32]uint32{[32]uint32{0}} + var total uint32 = 0 + var entropy [3]float64 + var dummy uint + var i uint + var utf8_lut contextLUT = getContextLUT(contextUTF8) + /* To make entropy calculations faster and to fit on the stack, we collect + histograms over the 5 most significant bits of literals. One histogram + without context and 13 additional histograms for each context value. */ + for ; start_pos+64 <= end_pos; start_pos += 4096 { + var stride_end_pos uint = start_pos + 64 + var prev2 byte = input[start_pos&mask] + var prev1 byte = input[(start_pos+1)&mask] + var pos uint + + /* To make the analysis of the data faster we only examine 64 byte long + strides at every 4kB intervals. */ + for pos = start_pos + 2; pos < stride_end_pos; pos++ { + var literal byte = input[pos&mask] + var context byte = byte(kStaticContextMapComplexUTF8[getContext(prev1, prev2, utf8_lut)]) + total++ + combined_histo[literal>>3]++ + context_histo[context][literal>>3]++ + prev2 = prev1 + prev1 = literal + } + } + + entropy[1] = shannonEntropy(combined_histo[:], 32, &dummy) + entropy[2] = 0 + for i = 0; i < 13; i++ { + entropy[2] += shannonEntropy(context_histo[i][0:], 32, &dummy) + } + + entropy[0] = 1.0 / float64(total) + entropy[1] *= entropy[0] + entropy[2] *= entropy[0] + + /* The triggering heuristics below were tuned by compressing the individual + files of the silesia corpus. If we skip this kind of context modeling + for not very well compressible input (i.e. entropy using context modeling + is 60% of maximal entropy) or if expected savings by symbol are less + than 0.2 bits, then in every case when it triggers, the final compression + ratio is improved. Note however that this heuristics might be too strict + for some cases and could be tuned further. */ + if entropy[2] > 3.0 || entropy[1]-entropy[2] < 0.2 { + return false + } else { + *num_literal_contexts = 13 + *literal_context_map = kStaticContextMapComplexUTF8[:] + return true + } + } +} + +func decideOverLiteralContextModeling(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) { + if quality < minQualityForContextModeling || length < 64 { + return + } else if shouldUseComplexStaticContextMap(input, start_pos, length, mask, quality, size_hint, num_literal_contexts, literal_context_map) { + } else /* Context map was already set, nothing else to do. */ + { + var end_pos uint = start_pos + length + /* Gather bi-gram data of the UTF8 byte prefixes. To make the analysis of + UTF8 data faster we only examine 64 byte long strides at every 4kB + intervals. */ + + var bigram_prefix_histo = [9]uint32{0} + for ; start_pos+64 <= end_pos; start_pos += 4096 { + var lut = [4]int{0, 0, 1, 2} + var stride_end_pos uint = start_pos + 64 + var prev int = lut[input[start_pos&mask]>>6] * 3 + var pos uint + for pos = start_pos + 1; pos < stride_end_pos; pos++ { + var literal byte = input[pos&mask] + bigram_prefix_histo[prev+lut[literal>>6]]++ + prev = lut[literal>>6] * 3 + } + } + + chooseContextMap(quality, bigram_prefix_histo[0:], num_literal_contexts, literal_context_map) + } +} + +func shouldCompress_encode(data []byte, mask uint, last_flush_pos uint64, bytes uint, num_literals uint, num_commands uint) bool { + /* TODO: find more precise minimal block overhead. */ + if bytes <= 2 { + return false + } + if num_commands < (bytes>>8)+2 { + if float64(num_literals) > 0.99*float64(bytes) { + var literal_histo = [256]uint32{0} + const kSampleRate uint32 = 13 + const kMinEntropy float64 = 7.92 + var bit_cost_threshold float64 = float64(bytes) * kMinEntropy / float64(kSampleRate) + var t uint = uint((uint32(bytes) + kSampleRate - 1) / kSampleRate) + var pos uint32 = uint32(last_flush_pos) + var i uint + for i = 0; i < t; i++ { + literal_histo[data[pos&uint32(mask)]]++ + pos += kSampleRate + } + + if bitsEntropy(literal_histo[:], 256) > bit_cost_threshold { + return false + } + } + } + + return true +} + +/* Chooses the literal context mode for a metablock */ +func chooseContextMode(params *encoderParams, data []byte, pos uint, mask uint, length uint) int { + /* We only do the computation for the option of something else than + CONTEXT_UTF8 for the highest qualities */ + if params.quality >= minQualityForHqBlockSplitting && !isMostlyUTF8(data, pos, mask, length, kMinUTF8Ratio) { + return contextSigned + } + + return contextUTF8 +} + +func writeMetaBlockInternal(data []byte, mask uint, last_flush_pos uint64, bytes uint, is_last bool, literal_context_mode int, params *encoderParams, prev_byte byte, prev_byte2 byte, num_literals uint, commands []command, saved_dist_cache []int, dist_cache []int, storage_ix *uint, storage []byte) { + var wrapped_last_flush_pos uint32 = wrapPosition(last_flush_pos) + var last_bytes uint16 + var last_bytes_bits byte + var literal_context_lut contextLUT = getContextLUT(literal_context_mode) + var block_params encoderParams = *params + + if bytes == 0 { + /* Write the ISLAST and ISEMPTY bits. */ + writeBits(2, 3, storage_ix, storage) + + *storage_ix = (*storage_ix + 7) &^ 7 + return + } + + if !shouldCompress_encode(data, mask, last_flush_pos, bytes, num_literals, uint(len(commands))) { + /* Restore the distance cache, as its last update by + CreateBackwardReferences is now unused. */ + copy(dist_cache, saved_dist_cache[:4]) + + storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) + return + } + + assert(*storage_ix <= 14) + last_bytes = uint16(storage[1])<<8 | uint16(storage[0]) + last_bytes_bits = byte(*storage_ix) + if params.quality <= maxQualityForStaticEntropyCodes { + storeMetaBlockFast(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) + } else if params.quality < minQualityForBlockSplit { + storeMetaBlockTrivial(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) + } else { + mb := getMetaBlockSplit() + if params.quality < minQualityForHqBlockSplitting { + var num_literal_contexts uint = 1 + var literal_context_map []uint32 = nil + if !params.disable_literal_context_modeling { + decideOverLiteralContextModeling(data, uint(wrapped_last_flush_pos), bytes, mask, params.quality, params.size_hint, &num_literal_contexts, &literal_context_map) + } + + buildMetaBlockGreedy(data, uint(wrapped_last_flush_pos), mask, prev_byte, prev_byte2, literal_context_lut, num_literal_contexts, literal_context_map, commands, mb) + } else { + buildMetaBlock(data, uint(wrapped_last_flush_pos), mask, &block_params, prev_byte, prev_byte2, commands, literal_context_mode, mb) + } + + if params.quality >= minQualityForOptimizeHistograms { + /* The number of distance symbols effectively used for distance + histograms. It might be less than distance alphabet size + for "Large Window Brotli" (32-bit). */ + var num_effective_dist_codes uint32 = block_params.dist.alphabet_size + if num_effective_dist_codes > numHistogramDistanceSymbols { + num_effective_dist_codes = numHistogramDistanceSymbols + } + + optimizeHistograms(num_effective_dist_codes, mb) + } + + storeMetaBlock(data, uint(wrapped_last_flush_pos), bytes, mask, prev_byte, prev_byte2, is_last, &block_params, literal_context_mode, commands, mb, storage_ix, storage) + freeMetaBlockSplit(mb) + } + + if bytes+4 < *storage_ix>>3 { + /* Restore the distance cache and last byte. */ + copy(dist_cache, saved_dist_cache[:4]) + + storage[0] = byte(last_bytes) + storage[1] = byte(last_bytes >> 8) + *storage_ix = uint(last_bytes_bits) + storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) + } +} + +func chooseDistanceParams(params *encoderParams) { + var distance_postfix_bits uint32 = 0 + var num_direct_distance_codes uint32 = 0 + + if params.quality >= minQualityForNonzeroDistanceParams { + var ndirect_msb uint32 + if params.mode == modeFont { + distance_postfix_bits = 1 + num_direct_distance_codes = 12 + } else { + distance_postfix_bits = params.dist.distance_postfix_bits + num_direct_distance_codes = params.dist.num_direct_distance_codes + } + + ndirect_msb = (num_direct_distance_codes >> distance_postfix_bits) & 0x0F + if distance_postfix_bits > maxNpostfix || num_direct_distance_codes > maxNdirect || ndirect_msb<>25)), (last_command.dist_prefix_&0x3FF == 0), &last_command.cmd_prefix_) + } +} + +/* + Processes the accumulated input data and writes + the new output meta-block to s.dest, if one has been + created (otherwise the processed input data is buffered internally). + If |is_last| or |force_flush| is true, an output meta-block is + always created. However, until |is_last| is true encoder may retain up + to 7 bits of the last byte of output. To force encoder to dump the remaining + bits use WriteMetadata() to append an empty meta-data block. + Returns false if the size of the input data is larger than + input_block_size(). +*/ +func encodeData(s *Writer, is_last bool, force_flush bool) bool { + var delta uint64 = unprocessedInputSize(s) + var bytes uint32 = uint32(delta) + var wrapped_last_processed_pos uint32 = wrapPosition(s.last_processed_pos_) + var data []byte + var mask uint32 + var literal_context_mode int + + data = s.ringbuffer_.buffer_ + mask = s.ringbuffer_.mask_ + + /* Adding more blocks after "last" block is forbidden. */ + if s.is_last_block_emitted_ { + return false + } + if is_last { + s.is_last_block_emitted_ = true + } + + if delta > uint64(inputBlockSize(s)) { + return false + } + + if s.params.quality == fastTwoPassCompressionQuality { + if s.command_buf_ == nil || cap(s.command_buf_) < int(kCompressFragmentTwoPassBlockSize) { + s.command_buf_ = make([]uint32, kCompressFragmentTwoPassBlockSize) + s.literal_buf_ = make([]byte, kCompressFragmentTwoPassBlockSize) + } else { + s.command_buf_ = s.command_buf_[:kCompressFragmentTwoPassBlockSize] + s.literal_buf_ = s.literal_buf_[:kCompressFragmentTwoPassBlockSize] + } + } + + if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { + var storage []byte + var storage_ix uint = uint(s.last_bytes_bits_) + var table_size uint + var table []int + + if delta == 0 && !is_last { + /* We have no new input data and we don't have to finish the stream, so + nothing to do. */ + return true + } + + storage = s.getStorage(int(2*bytes + 503)) + storage[0] = byte(s.last_bytes_) + storage[1] = byte(s.last_bytes_ >> 8) + table = getHashTable(s, s.params.quality, uint(bytes), &table_size) + if s.params.quality == fastOnePassCompressionQuality { + compressFragmentFast(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) + } else { + compressFragmentTwoPass(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, s.command_buf_, s.literal_buf_, table, table_size, &storage_ix, storage) + } + + s.last_bytes_ = uint16(storage[storage_ix>>3]) + s.last_bytes_bits_ = byte(storage_ix & 7) + updateLastProcessedPos(s) + s.writeOutput(storage[:storage_ix>>3]) + return true + } + { + /* Theoretical max number of commands is 1 per 2 bytes. */ + newsize := len(s.commands) + int(bytes)/2 + 1 + if newsize > cap(s.commands) { + /* Reserve a bit more memory to allow merging with a next block + without reallocation: that would impact speed. */ + newsize += int(bytes/4) + 16 + + new_commands := make([]command, len(s.commands), newsize) + if s.commands != nil { + copy(new_commands, s.commands) + } + + s.commands = new_commands + } + } + + initOrStitchToPreviousBlock(&s.hasher_, data, uint(mask), &s.params, uint(wrapped_last_processed_pos), uint(bytes), is_last) + + literal_context_mode = chooseContextMode(&s.params, data, uint(wrapPosition(s.last_flush_pos_)), uint(mask), uint(s.input_pos_-s.last_flush_pos_)) + + if len(s.commands) != 0 && s.last_insert_len_ == 0 { + extendLastCommand(s, &bytes, &wrapped_last_processed_pos) + } + + if s.params.quality == zopflificationQuality { + assert(s.params.hasher.type_ == 10) + createZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_.(*h10), s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) + } else if s.params.quality == hqZopflificationQuality { + assert(s.params.hasher.type_ == 10) + createHqZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) + } else { + createBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) + } + { + var max_length uint = maxMetablockSize(&s.params) + var max_literals uint = max_length / 8 + max_commands := int(max_length / 8) + var processed_bytes uint = uint(s.input_pos_ - s.last_flush_pos_) + var next_input_fits_metablock bool = (processed_bytes+inputBlockSize(s) <= max_length) + var should_flush bool = (s.params.quality < minQualityForBlockSplit && s.num_literals_+uint(len(s.commands)) >= maxNumDelayedSymbols) + /* If maximal possible additional block doesn't fit metablock, flush now. */ + /* TODO: Postpone decision until next block arrives? */ + + /* If block splitting is not used, then flush as soon as there is some + amount of commands / literals produced. */ + if !is_last && !force_flush && !should_flush && next_input_fits_metablock && s.num_literals_ < max_literals && len(s.commands) < max_commands { + /* Merge with next input block. Everything will happen later. */ + if updateLastProcessedPos(s) { + hasherReset(s.hasher_) + } + + return true + } + } + + /* Create the last insert-only command. */ + if s.last_insert_len_ > 0 { + s.commands = append(s.commands, makeInsertCommand(s.last_insert_len_)) + s.num_literals_ += s.last_insert_len_ + s.last_insert_len_ = 0 + } + + if !is_last && s.input_pos_ == s.last_flush_pos_ { + /* We have no new input data and we don't have to finish the stream, so + nothing to do. */ + return true + } + + assert(s.input_pos_ >= s.last_flush_pos_) + assert(s.input_pos_ > s.last_flush_pos_ || is_last) + assert(s.input_pos_-s.last_flush_pos_ <= 1<<24) + { + var metablock_size uint32 = uint32(s.input_pos_ - s.last_flush_pos_) + var storage []byte = s.getStorage(int(2*metablock_size + 503)) + var storage_ix uint = uint(s.last_bytes_bits_) + storage[0] = byte(s.last_bytes_) + storage[1] = byte(s.last_bytes_ >> 8) + writeMetaBlockInternal(data, uint(mask), s.last_flush_pos_, uint(metablock_size), is_last, literal_context_mode, &s.params, s.prev_byte_, s.prev_byte2_, s.num_literals_, s.commands, s.saved_dist_cache_[:], s.dist_cache_[:], &storage_ix, storage) + s.last_bytes_ = uint16(storage[storage_ix>>3]) + s.last_bytes_bits_ = byte(storage_ix & 7) + s.last_flush_pos_ = s.input_pos_ + if updateLastProcessedPos(s) { + hasherReset(s.hasher_) + } + + if s.last_flush_pos_ > 0 { + s.prev_byte_ = data[(uint32(s.last_flush_pos_)-1)&mask] + } + + if s.last_flush_pos_ > 1 { + s.prev_byte2_ = data[uint32(s.last_flush_pos_-2)&mask] + } + + s.commands = s.commands[:0] + s.num_literals_ = 0 + + /* Save the state of the distance cache in case we need to restore it for + emitting an uncompressed block. */ + copy(s.saved_dist_cache_[:], s.dist_cache_[:]) + + s.writeOutput(storage[:storage_ix>>3]) + return true + } +} + +/* Dumps remaining output bits and metadata header to |header|. + Returns number of produced bytes. + REQUIRED: |header| should be 8-byte aligned and at least 16 bytes long. + REQUIRED: |block_size| <= (1 << 24). */ +func writeMetadataHeader(s *Writer, block_size uint, header []byte) uint { + storage_ix := uint(s.last_bytes_bits_) + header[0] = byte(s.last_bytes_) + header[1] = byte(s.last_bytes_ >> 8) + s.last_bytes_ = 0 + s.last_bytes_bits_ = 0 + + writeBits(1, 0, &storage_ix, header) + writeBits(2, 3, &storage_ix, header) + writeBits(1, 0, &storage_ix, header) + if block_size == 0 { + writeBits(2, 0, &storage_ix, header) + } else { + var nbits uint32 + if block_size == 1 { + nbits = 0 + } else { + nbits = log2FloorNonZero(uint(uint32(block_size)-1)) + 1 + } + var nbytes uint32 = (nbits + 7) / 8 + writeBits(2, uint64(nbytes), &storage_ix, header) + writeBits(uint(8*nbytes), uint64(block_size)-1, &storage_ix, header) + } + + return (storage_ix + 7) >> 3 +} + +func injectBytePaddingBlock(s *Writer) { + var seal uint32 = uint32(s.last_bytes_) + var seal_bits uint = uint(s.last_bytes_bits_) + s.last_bytes_ = 0 + s.last_bytes_bits_ = 0 + + /* is_last = 0, data_nibbles = 11, reserved = 0, meta_nibbles = 00 */ + seal |= 0x6 << seal_bits + + seal_bits += 6 + + destination := s.tiny_buf_.u8[:] + + destination[0] = byte(seal) + if seal_bits > 8 { + destination[1] = byte(seal >> 8) + } + if seal_bits > 16 { + destination[2] = byte(seal >> 16) + } + s.writeOutput(destination[:(seal_bits+7)>>3]) +} + +func checkFlushComplete(s *Writer) { + if s.stream_state_ == streamFlushRequested && s.err == nil { + s.stream_state_ = streamProcessing + } +} + +func encoderCompressStreamFast(s *Writer, op int, available_in *uint, next_in *[]byte) bool { + var block_size_limit uint = uint(1) << s.params.lgwin + var buf_size uint = brotli_min_size_t(kCompressFragmentTwoPassBlockSize, brotli_min_size_t(*available_in, block_size_limit)) + var command_buf []uint32 = nil + var literal_buf []byte = nil + if s.params.quality != fastOnePassCompressionQuality && s.params.quality != fastTwoPassCompressionQuality { + return false + } + + if s.params.quality == fastTwoPassCompressionQuality { + if s.command_buf_ == nil || cap(s.command_buf_) < int(buf_size) { + s.command_buf_ = make([]uint32, buf_size) + s.literal_buf_ = make([]byte, buf_size) + } else { + s.command_buf_ = s.command_buf_[:buf_size] + s.literal_buf_ = s.literal_buf_[:buf_size] + } + + command_buf = s.command_buf_ + literal_buf = s.literal_buf_ + } + + for { + if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { + injectBytePaddingBlock(s) + continue + } + + /* Compress block only when stream is not + finished, there is no pending flush request, and there is either + additional input or pending operation. */ + if s.stream_state_ == streamProcessing && (*available_in != 0 || op != int(operationProcess)) { + var block_size uint = brotli_min_size_t(block_size_limit, *available_in) + var is_last bool = (*available_in == block_size) && (op == int(operationFinish)) + var force_flush bool = (*available_in == block_size) && (op == int(operationFlush)) + var max_out_size uint = 2*block_size + 503 + var storage []byte = nil + var storage_ix uint = uint(s.last_bytes_bits_) + var table_size uint + var table []int + + if force_flush && block_size == 0 { + s.stream_state_ = streamFlushRequested + continue + } + + storage = s.getStorage(int(max_out_size)) + + storage[0] = byte(s.last_bytes_) + storage[1] = byte(s.last_bytes_ >> 8) + table = getHashTable(s, s.params.quality, block_size, &table_size) + + if s.params.quality == fastOnePassCompressionQuality { + compressFragmentFast(*next_in, block_size, is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) + } else { + compressFragmentTwoPass(*next_in, block_size, is_last, command_buf, literal_buf, table, table_size, &storage_ix, storage) + } + + *next_in = (*next_in)[block_size:] + *available_in -= block_size + var out_bytes uint = storage_ix >> 3 + s.writeOutput(storage[:out_bytes]) + + s.last_bytes_ = uint16(storage[storage_ix>>3]) + s.last_bytes_bits_ = byte(storage_ix & 7) + + if force_flush { + s.stream_state_ = streamFlushRequested + } + if is_last { + s.stream_state_ = streamFinished + } + continue + } + + break + } + + checkFlushComplete(s) + return true +} + +func processMetadata(s *Writer, available_in *uint, next_in *[]byte) bool { + if *available_in > 1<<24 { + return false + } + + /* Switch to metadata block workflow, if required. */ + if s.stream_state_ == streamProcessing { + s.remaining_metadata_bytes_ = uint32(*available_in) + s.stream_state_ = streamMetadataHead + } + + if s.stream_state_ != streamMetadataHead && s.stream_state_ != streamMetadataBody { + return false + } + + for { + if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { + injectBytePaddingBlock(s) + continue + } + + if s.input_pos_ != s.last_flush_pos_ { + var result bool = encodeData(s, false, true) + if !result { + return false + } + continue + } + + if s.stream_state_ == streamMetadataHead { + n := writeMetadataHeader(s, uint(s.remaining_metadata_bytes_), s.tiny_buf_.u8[:]) + s.writeOutput(s.tiny_buf_.u8[:n]) + s.stream_state_ = streamMetadataBody + continue + } else { + /* Exit workflow only when there is no more input and no more output. + Otherwise client may continue producing empty metadata blocks. */ + if s.remaining_metadata_bytes_ == 0 { + s.remaining_metadata_bytes_ = math.MaxUint32 + s.stream_state_ = streamProcessing + break + } + + /* This guarantees progress in "TakeOutput" workflow. */ + var c uint32 = brotli_min_uint32_t(s.remaining_metadata_bytes_, 16) + copy(s.tiny_buf_.u8[:], (*next_in)[:c]) + *next_in = (*next_in)[c:] + *available_in -= uint(c) + s.remaining_metadata_bytes_ -= c + s.writeOutput(s.tiny_buf_.u8[:c]) + + continue + } + } + + return true +} + +func updateSizeHint(s *Writer, available_in uint) { + if s.params.size_hint == 0 { + var delta uint64 = unprocessedInputSize(s) + var tail uint64 = uint64(available_in) + var limit uint32 = 1 << 30 + var total uint32 + if (delta >= uint64(limit)) || (tail >= uint64(limit)) || ((delta + tail) >= uint64(limit)) { + total = limit + } else { + total = uint32(delta + tail) + } + + s.params.size_hint = uint(total) + } +} + +func encoderCompressStream(s *Writer, op int, available_in *uint, next_in *[]byte) bool { + if !ensureInitialized(s) { + return false + } + + /* Unfinished metadata block; check requirements. */ + if s.remaining_metadata_bytes_ != math.MaxUint32 { + if uint32(*available_in) != s.remaining_metadata_bytes_ { + return false + } + if op != int(operationEmitMetadata) { + return false + } + } + + if op == int(operationEmitMetadata) { + updateSizeHint(s, 0) /* First data metablock might be emitted here. */ + return processMetadata(s, available_in, next_in) + } + + if s.stream_state_ == streamMetadataHead || s.stream_state_ == streamMetadataBody { + return false + } + + if s.stream_state_ != streamProcessing && *available_in != 0 { + return false + } + + if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { + return encoderCompressStreamFast(s, op, available_in, next_in) + } + + for { + var remaining_block_size uint = remainingInputBlockSize(s) + + if remaining_block_size != 0 && *available_in != 0 { + var copy_input_size uint = brotli_min_size_t(remaining_block_size, *available_in) + copyInputToRingBuffer(s, copy_input_size, *next_in) + *next_in = (*next_in)[copy_input_size:] + *available_in -= copy_input_size + continue + } + + if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { + injectBytePaddingBlock(s) + continue + } + + /* Compress data only when stream is not + finished and there is no pending flush request. */ + if s.stream_state_ == streamProcessing { + if remaining_block_size == 0 || op != int(operationProcess) { + var is_last bool = ((*available_in == 0) && op == int(operationFinish)) + var force_flush bool = ((*available_in == 0) && op == int(operationFlush)) + var result bool + updateSizeHint(s, *available_in) + result = encodeData(s, is_last, force_flush) + if !result { + return false + } + if force_flush { + s.stream_state_ = streamFlushRequested + } + if is_last { + s.stream_state_ = streamFinished + } + continue + } + } + + break + } + + checkFlushComplete(s) + return true +} + +func (w *Writer) writeOutput(data []byte) { + if w.err != nil { + return + } + + _, w.err = w.dst.Write(data) + if w.err == nil { + checkFlushComplete(w) + } +} diff --git a/vendor/github.com/andybalholm/brotli/encoder.go b/vendor/github.com/andybalholm/brotli/encoder.go new file mode 100644 index 0000000..650d1e4 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/encoder.go @@ -0,0 +1,168 @@ +package brotli + +import "github.com/andybalholm/brotli/matchfinder" + +// An Encoder implements the matchfinder.Encoder interface, writing in Brotli format. +type Encoder struct { + wroteHeader bool + bw bitWriter + distCache []distanceCode +} + +func (e *Encoder) Reset() { + e.wroteHeader = false + e.bw = bitWriter{} +} + +func (e *Encoder) Encode(dst []byte, src []byte, matches []matchfinder.Match, lastBlock bool) []byte { + e.bw.dst = dst + if !e.wroteHeader { + e.bw.writeBits(4, 15) + e.wroteHeader = true + } + + var literalHisto [256]uint32 + var commandHisto [704]uint32 + var distanceHisto [64]uint32 + literalCount := 0 + commandCount := 0 + distanceCount := 0 + + if len(e.distCache) < len(matches) { + e.distCache = make([]distanceCode, len(matches)) + } + + // first pass: build the histograms + pos := 0 + + // d is the ring buffer of the last 4 distances. + d := [4]int{-10, -10, -10, -10} + for i, m := range matches { + if m.Unmatched > 0 { + for _, c := range src[pos : pos+m.Unmatched] { + literalHisto[c]++ + } + literalCount += m.Unmatched + } + + insertCode := getInsertLengthCode(uint(m.Unmatched)) + copyCode := getCopyLengthCode(uint(m.Length)) + if m.Length == 0 { + // If the stream ends with unmatched bytes, we need a dummy copy length. + copyCode = 2 + } + command := combineLengthCodes(insertCode, copyCode, false) + commandHisto[command]++ + commandCount++ + + if command >= 128 && m.Length != 0 { + var distCode distanceCode + switch m.Distance { + case d[3]: + distCode.code = 0 + case d[2]: + distCode.code = 1 + case d[1]: + distCode.code = 2 + case d[0]: + distCode.code = 3 + case d[3] - 1: + distCode.code = 4 + case d[3] + 1: + distCode.code = 5 + case d[3] - 2: + distCode.code = 6 + case d[3] + 2: + distCode.code = 7 + case d[3] - 3: + distCode.code = 8 + case d[3] + 3: + distCode.code = 9 + + // In my testing, codes 10–15 actually reduced the compression ratio. + + default: + distCode = getDistanceCode(m.Distance) + } + e.distCache[i] = distCode + distanceHisto[distCode.code]++ + distanceCount++ + if distCode.code != 0 { + d[0], d[1], d[2], d[3] = d[1], d[2], d[3], m.Distance + } + } + + pos += m.Unmatched + m.Length + } + + storeMetaBlockHeaderBW(uint(len(src)), false, &e.bw) + e.bw.writeBits(13, 0) + + var literalDepths [256]byte + var literalBits [256]uint16 + buildAndStoreHuffmanTreeFastBW(literalHisto[:], uint(literalCount), 8, literalDepths[:], literalBits[:], &e.bw) + + var commandDepths [704]byte + var commandBits [704]uint16 + buildAndStoreHuffmanTreeFastBW(commandHisto[:], uint(commandCount), 10, commandDepths[:], commandBits[:], &e.bw) + + var distanceDepths [64]byte + var distanceBits [64]uint16 + buildAndStoreHuffmanTreeFastBW(distanceHisto[:], uint(distanceCount), 6, distanceDepths[:], distanceBits[:], &e.bw) + + pos = 0 + for i, m := range matches { + insertCode := getInsertLengthCode(uint(m.Unmatched)) + copyCode := getCopyLengthCode(uint(m.Length)) + if m.Length == 0 { + // If the stream ends with unmatched bytes, we need a dummy copy length. + copyCode = 2 + } + command := combineLengthCodes(insertCode, copyCode, false) + e.bw.writeBits(uint(commandDepths[command]), uint64(commandBits[command])) + if kInsExtra[insertCode] > 0 { + e.bw.writeBits(uint(kInsExtra[insertCode]), uint64(m.Unmatched)-uint64(kInsBase[insertCode])) + } + if kCopyExtra[copyCode] > 0 { + e.bw.writeBits(uint(kCopyExtra[copyCode]), uint64(m.Length)-uint64(kCopyBase[copyCode])) + } + + if m.Unmatched > 0 { + for _, c := range src[pos : pos+m.Unmatched] { + e.bw.writeBits(uint(literalDepths[c]), uint64(literalBits[c])) + } + } + + if command >= 128 && m.Length != 0 { + distCode := e.distCache[i] + e.bw.writeBits(uint(distanceDepths[distCode.code]), uint64(distanceBits[distCode.code])) + if distCode.nExtra > 0 { + e.bw.writeBits(distCode.nExtra, distCode.extraBits) + } + } + + pos += m.Unmatched + m.Length + } + + if lastBlock { + e.bw.writeBits(2, 3) // islast + isempty + e.bw.jumpToByteBoundary() + } + return e.bw.dst +} + +type distanceCode struct { + code int + nExtra uint + extraBits uint64 +} + +func getDistanceCode(distance int) distanceCode { + d := distance + 3 + nbits := log2FloorNonZero(uint(d)) - 1 + prefix := (d >> nbits) & 1 + offset := (2 + prefix) << nbits + distcode := int(2*(nbits-1)) + prefix + 16 + extra := d - offset + return distanceCode{distcode, uint(nbits), uint64(extra)} +} diff --git a/vendor/github.com/andybalholm/brotli/encoder_dict.go b/vendor/github.com/andybalholm/brotli/encoder_dict.go new file mode 100644 index 0000000..55c051c --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/encoder_dict.go @@ -0,0 +1,22 @@ +package brotli + +/* Dictionary data (words and transforms) for 1 possible context */ +type encoderDictionary struct { + words *dictionary + cutoffTransformsCount uint32 + cutoffTransforms uint64 + hash_table []uint16 + buckets []uint16 + dict_words []dictWord +} + +func initEncoderDictionary(dict *encoderDictionary) { + dict.words = getDictionary() + + dict.hash_table = kStaticDictionaryHash[:] + dict.buckets = kStaticDictionaryBuckets[:] + dict.dict_words = kStaticDictionaryWords[:] + + dict.cutoffTransformsCount = kCutoffTransformsCount + dict.cutoffTransforms = kCutoffTransforms +} diff --git a/vendor/github.com/andybalholm/brotli/entropy_encode.go b/vendor/github.com/andybalholm/brotli/entropy_encode.go new file mode 100644 index 0000000..3f469a3 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/entropy_encode.go @@ -0,0 +1,592 @@ +package brotli + +import "math" + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Entropy encoding (Huffman) utilities. */ + +/* A node of a Huffman tree. */ +type huffmanTree struct { + total_count_ uint32 + index_left_ int16 + index_right_or_value_ int16 +} + +func initHuffmanTree(self *huffmanTree, count uint32, left int16, right int16) { + self.total_count_ = count + self.index_left_ = left + self.index_right_or_value_ = right +} + +/* Input size optimized Shell sort. */ +type huffmanTreeComparator func(huffmanTree, huffmanTree) bool + +var sortHuffmanTreeItems_gaps = []uint{132, 57, 23, 10, 4, 1} + +func sortHuffmanTreeItems(items []huffmanTree, n uint, comparator huffmanTreeComparator) { + if n < 13 { + /* Insertion sort. */ + var i uint + for i = 1; i < n; i++ { + var tmp huffmanTree = items[i] + var k uint = i + var j uint = i - 1 + for comparator(tmp, items[j]) { + items[k] = items[j] + k = j + if j == 0 { + break + } + j-- + } + + items[k] = tmp + } + + return + } else { + var g int + if n < 57 { + g = 2 + } else { + g = 0 + } + for ; g < 6; g++ { + var gap uint = sortHuffmanTreeItems_gaps[g] + var i uint + for i = gap; i < n; i++ { + var j uint = i + var tmp huffmanTree = items[i] + for ; j >= gap && comparator(tmp, items[j-gap]); j -= gap { + items[j] = items[j-gap] + } + + items[j] = tmp + } + } + } +} + +/* Returns 1 if assignment of depths succeeded, otherwise 0. */ +func setDepth(p0 int, pool []huffmanTree, depth []byte, max_depth int) bool { + var stack [16]int + var level int = 0 + var p int = p0 + assert(max_depth <= 15) + stack[0] = -1 + for { + if pool[p].index_left_ >= 0 { + level++ + if level > max_depth { + return false + } + stack[level] = int(pool[p].index_right_or_value_) + p = int(pool[p].index_left_) + continue + } else { + depth[pool[p].index_right_or_value_] = byte(level) + } + + for level >= 0 && stack[level] == -1 { + level-- + } + if level < 0 { + return true + } + p = stack[level] + stack[level] = -1 + } +} + +/* Sort the root nodes, least popular first. */ +func sortHuffmanTree(v0 huffmanTree, v1 huffmanTree) bool { + if v0.total_count_ != v1.total_count_ { + return v0.total_count_ < v1.total_count_ + } + + return v0.index_right_or_value_ > v1.index_right_or_value_ +} + +/* This function will create a Huffman tree. + + The catch here is that the tree cannot be arbitrarily deep. + Brotli specifies a maximum depth of 15 bits for "code trees" + and 7 bits for "code length code trees." + + count_limit is the value that is to be faked as the minimum value + and this minimum value is raised until the tree matches the + maximum length requirement. + + This algorithm is not of excellent performance for very long data blocks, + especially when population counts are longer than 2**tree_limit, but + we are not planning to use this with extremely long blocks. + + See http://en.wikipedia.org/wiki/Huffman_coding */ +func createHuffmanTree(data []uint32, length uint, tree_limit int, tree []huffmanTree, depth []byte) { + var count_limit uint32 + var sentinel huffmanTree + initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) + + /* For block sizes below 64 kB, we never need to do a second iteration + of this loop. Probably all of our block sizes will be smaller than + that, so this loop is mostly of academic interest. If we actually + would need this, we would be better off with the Katajainen algorithm. */ + for count_limit = 1; ; count_limit *= 2 { + var n uint = 0 + var i uint + var j uint + var k uint + for i = length; i != 0; { + i-- + if data[i] != 0 { + var count uint32 = brotli_max_uint32_t(data[i], count_limit) + initHuffmanTree(&tree[n], count, -1, int16(i)) + n++ + } + } + + if n == 1 { + depth[tree[0].index_right_or_value_] = 1 /* Only one element. */ + break + } + + sortHuffmanTreeItems(tree, n, huffmanTreeComparator(sortHuffmanTree)) + + /* The nodes are: + [0, n): the sorted leaf nodes that we start with. + [n]: we add a sentinel here. + [n + 1, 2n): new parent nodes are added here, starting from + (n+1). These are naturally in ascending order. + [2n]: we add a sentinel at the end as well. + There will be (2n+1) elements at the end. */ + tree[n] = sentinel + + tree[n+1] = sentinel + + i = 0 /* Points to the next leaf node. */ + j = n + 1 /* Points to the next non-leaf node. */ + for k = n - 1; k != 0; k-- { + var left uint + var right uint + if tree[i].total_count_ <= tree[j].total_count_ { + left = i + i++ + } else { + left = j + j++ + } + + if tree[i].total_count_ <= tree[j].total_count_ { + right = i + i++ + } else { + right = j + j++ + } + { + /* The sentinel node becomes the parent node. */ + var j_end uint = 2*n - k + tree[j_end].total_count_ = tree[left].total_count_ + tree[right].total_count_ + tree[j_end].index_left_ = int16(left) + tree[j_end].index_right_or_value_ = int16(right) + + /* Add back the last sentinel node. */ + tree[j_end+1] = sentinel + } + } + + if setDepth(int(2*n-1), tree[0:], depth, tree_limit) { + /* We need to pack the Huffman tree in tree_limit bits. If this was not + successful, add fake entities to the lowest values and retry. */ + break + } + } +} + +func reverse(v []byte, start uint, end uint) { + end-- + for start < end { + var tmp byte = v[start] + v[start] = v[end] + v[end] = tmp + start++ + end-- + } +} + +func writeHuffmanTreeRepetitions(previous_value byte, value byte, repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { + assert(repetitions > 0) + if previous_value != value { + tree[*tree_size] = value + extra_bits_data[*tree_size] = 0 + (*tree_size)++ + repetitions-- + } + + if repetitions == 7 { + tree[*tree_size] = value + extra_bits_data[*tree_size] = 0 + (*tree_size)++ + repetitions-- + } + + if repetitions < 3 { + var i uint + for i = 0; i < repetitions; i++ { + tree[*tree_size] = value + extra_bits_data[*tree_size] = 0 + (*tree_size)++ + } + } else { + var start uint = *tree_size + repetitions -= 3 + for { + tree[*tree_size] = repeatPreviousCodeLength + extra_bits_data[*tree_size] = byte(repetitions & 0x3) + (*tree_size)++ + repetitions >>= 2 + if repetitions == 0 { + break + } + + repetitions-- + } + + reverse(tree, start, *tree_size) + reverse(extra_bits_data, start, *tree_size) + } +} + +func writeHuffmanTreeRepetitionsZeros(repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { + if repetitions == 11 { + tree[*tree_size] = 0 + extra_bits_data[*tree_size] = 0 + (*tree_size)++ + repetitions-- + } + + if repetitions < 3 { + var i uint + for i = 0; i < repetitions; i++ { + tree[*tree_size] = 0 + extra_bits_data[*tree_size] = 0 + (*tree_size)++ + } + } else { + var start uint = *tree_size + repetitions -= 3 + for { + tree[*tree_size] = repeatZeroCodeLength + extra_bits_data[*tree_size] = byte(repetitions & 0x7) + (*tree_size)++ + repetitions >>= 3 + if repetitions == 0 { + break + } + + repetitions-- + } + + reverse(tree, start, *tree_size) + reverse(extra_bits_data, start, *tree_size) + } +} + +/* Change the population counts in a way that the consequent + Huffman tree compression, especially its RLE-part will be more + likely to compress this data more efficiently. + + length contains the size of the histogram. + counts contains the population counts. + good_for_rle is a buffer of at least length size */ +func optimizeHuffmanCountsForRLE(length uint, counts []uint32, good_for_rle []byte) { + var nonzero_count uint = 0 + var stride uint + var limit uint + var sum uint + var streak_limit uint = 1240 + var i uint + /* Let's make the Huffman code more compatible with RLE encoding. */ + for i = 0; i < length; i++ { + if counts[i] != 0 { + nonzero_count++ + } + } + + if nonzero_count < 16 { + return + } + + for length != 0 && counts[length-1] == 0 { + length-- + } + + if length == 0 { + return /* All zeros. */ + } + + /* Now counts[0..length - 1] does not have trailing zeros. */ + { + var nonzeros uint = 0 + var smallest_nonzero uint32 = 1 << 30 + for i = 0; i < length; i++ { + if counts[i] != 0 { + nonzeros++ + if smallest_nonzero > counts[i] { + smallest_nonzero = counts[i] + } + } + } + + if nonzeros < 5 { + /* Small histogram will model it well. */ + return + } + + if smallest_nonzero < 4 { + var zeros uint = length - nonzeros + if zeros < 6 { + for i = 1; i < length-1; i++ { + if counts[i-1] != 0 && counts[i] == 0 && counts[i+1] != 0 { + counts[i] = 1 + } + } + } + } + + if nonzeros < 28 { + return + } + } + + /* 2) Let's mark all population counts that already can be encoded + with an RLE code. */ + for i := 0; i < int(length); i++ { + good_for_rle[i] = 0 + } + { + var symbol uint32 = counts[0] + /* Let's not spoil any of the existing good RLE codes. + Mark any seq of 0's that is longer as 5 as a good_for_rle. + Mark any seq of non-0's that is longer as 7 as a good_for_rle. */ + + var step uint = 0 + for i = 0; i <= length; i++ { + if i == length || counts[i] != symbol { + if (symbol == 0 && step >= 5) || (symbol != 0 && step >= 7) { + var k uint + for k = 0; k < step; k++ { + good_for_rle[i-k-1] = 1 + } + } + + step = 1 + if i != length { + symbol = counts[i] + } + } else { + step++ + } + } + } + + /* 3) Let's replace those population counts that lead to more RLE codes. + Math here is in 24.8 fixed point representation. */ + stride = 0 + + limit = uint(256*(counts[0]+counts[1]+counts[2])/3 + 420) + sum = 0 + for i = 0; i <= length; i++ { + if i == length || good_for_rle[i] != 0 || (i != 0 && good_for_rle[i-1] != 0) || (256*counts[i]-uint32(limit)+uint32(streak_limit)) >= uint32(2*streak_limit) { + if stride >= 4 || (stride >= 3 && sum == 0) { + var k uint + var count uint = (sum + stride/2) / stride + /* The stride must end, collapse what we have, if we have enough (4). */ + if count == 0 { + count = 1 + } + + if sum == 0 { + /* Don't make an all zeros stride to be upgraded to ones. */ + count = 0 + } + + for k = 0; k < stride; k++ { + /* We don't want to change value at counts[i], + that is already belonging to the next stride. Thus - 1. */ + counts[i-k-1] = uint32(count) + } + } + + stride = 0 + sum = 0 + if i < length-2 { + /* All interesting strides have a count of at least 4, */ + /* at least when non-zeros. */ + limit = uint(256*(counts[i]+counts[i+1]+counts[i+2])/3 + 420) + } else if i < length { + limit = uint(256 * counts[i]) + } else { + limit = 0 + } + } + + stride++ + if i != length { + sum += uint(counts[i]) + if stride >= 4 { + limit = (256*sum + stride/2) / stride + } + + if stride == 4 { + limit += 120 + } + } + } +} + +func decideOverRLEUse(depth []byte, length uint, use_rle_for_non_zero *bool, use_rle_for_zero *bool) { + var total_reps_zero uint = 0 + var total_reps_non_zero uint = 0 + var count_reps_zero uint = 1 + var count_reps_non_zero uint = 1 + var i uint + for i = 0; i < length; { + var value byte = depth[i] + var reps uint = 1 + var k uint + for k = i + 1; k < length && depth[k] == value; k++ { + reps++ + } + + if reps >= 3 && value == 0 { + total_reps_zero += reps + count_reps_zero++ + } + + if reps >= 4 && value != 0 { + total_reps_non_zero += reps + count_reps_non_zero++ + } + + i += reps + } + + *use_rle_for_non_zero = total_reps_non_zero > count_reps_non_zero*2 + *use_rle_for_zero = total_reps_zero > count_reps_zero*2 +} + +/* Write a Huffman tree from bit depths into the bit-stream representation + of a Huffman tree. The generated Huffman tree is to be compressed once + more using a Huffman tree */ +func writeHuffmanTree(depth []byte, length uint, tree_size *uint, tree []byte, extra_bits_data []byte) { + var previous_value byte = initialRepeatedCodeLength + var i uint + var use_rle_for_non_zero bool = false + var use_rle_for_zero bool = false + var new_length uint = length + /* Throw away trailing zeros. */ + for i = 0; i < length; i++ { + if depth[length-i-1] == 0 { + new_length-- + } else { + break + } + } + + /* First gather statistics on if it is a good idea to do RLE. */ + if length > 50 { + /* Find RLE coding for longer codes. + Shorter codes seem not to benefit from RLE. */ + decideOverRLEUse(depth, new_length, &use_rle_for_non_zero, &use_rle_for_zero) + } + + /* Actual RLE coding. */ + for i = 0; i < new_length; { + var value byte = depth[i] + var reps uint = 1 + if (value != 0 && use_rle_for_non_zero) || (value == 0 && use_rle_for_zero) { + var k uint + for k = i + 1; k < new_length && depth[k] == value; k++ { + reps++ + } + } + + if value == 0 { + writeHuffmanTreeRepetitionsZeros(reps, tree_size, tree, extra_bits_data) + } else { + writeHuffmanTreeRepetitions(previous_value, value, reps, tree_size, tree, extra_bits_data) + previous_value = value + } + + i += reps + } +} + +var reverseBits_kLut = [16]uint{ + 0x00, + 0x08, + 0x04, + 0x0C, + 0x02, + 0x0A, + 0x06, + 0x0E, + 0x01, + 0x09, + 0x05, + 0x0D, + 0x03, + 0x0B, + 0x07, + 0x0F, +} + +func reverseBits(num_bits uint, bits uint16) uint16 { + var retval uint = reverseBits_kLut[bits&0x0F] + var i uint + for i = 4; i < num_bits; i += 4 { + retval <<= 4 + bits = uint16(bits >> 4) + retval |= reverseBits_kLut[bits&0x0F] + } + + retval >>= ((0 - num_bits) & 0x03) + return uint16(retval) +} + +/* 0..15 are values for bits */ +const maxHuffmanBits = 16 + +/* Get the actual bit values for a tree of bit depths. */ +func convertBitDepthsToSymbols(depth []byte, len uint, bits []uint16) { + var bl_count = [maxHuffmanBits]uint16{0} + var next_code [maxHuffmanBits]uint16 + var i uint + /* In Brotli, all bit depths are [1..15] + 0 bit depth means that the symbol does not exist. */ + + var code int = 0 + for i = 0; i < len; i++ { + bl_count[depth[i]]++ + } + + bl_count[0] = 0 + next_code[0] = 0 + for i = 1; i < maxHuffmanBits; i++ { + code = (code + int(bl_count[i-1])) << 1 + next_code[i] = uint16(code) + } + + for i = 0; i < len; i++ { + if depth[i] != 0 { + bits[i] = reverseBits(uint(depth[i]), next_code[depth[i]]) + next_code[depth[i]]++ + } + } +} diff --git a/vendor/github.com/andybalholm/brotli/entropy_encode_static.go b/vendor/github.com/andybalholm/brotli/entropy_encode_static.go new file mode 100644 index 0000000..294aff4 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/entropy_encode_static.go @@ -0,0 +1,4399 @@ +package brotli + +var kCodeLengthDepth = [18]byte{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 0, 4, 4} + +var kStaticCommandCodeDepth = [numCommandSymbols]byte{ + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, + 11, +} + +var kStaticDistanceCodeDepth = [64]byte{ + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, +} + +var kCodeLengthBits = [18]uint32{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 15, 31, 0, 11, 7} + +func storeStaticCodeLengthCode(storage_ix *uint, storage []byte) { + writeBits(40, 0x0000FF55555554, storage_ix, storage) +} + +func storeStaticCodeLengthCodeBW(bw *bitWriter) { + bw.writeBits(32, 0x55555554) + bw.writeBits(8, 0xFF) +} + +var kZeroRepsBits = [numCommandSymbols]uint64{ + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000007, + 0x00000017, + 0x00000027, + 0x00000037, + 0x00000047, + 0x00000057, + 0x00000067, + 0x00000077, + 0x00000770, + 0x00000b87, + 0x00001387, + 0x00001b87, + 0x00002387, + 0x00002b87, + 0x00003387, + 0x00003b87, + 0x00000397, + 0x00000b97, + 0x00001397, + 0x00001b97, + 0x00002397, + 0x00002b97, + 0x00003397, + 0x00003b97, + 0x000003a7, + 0x00000ba7, + 0x000013a7, + 0x00001ba7, + 0x000023a7, + 0x00002ba7, + 0x000033a7, + 0x00003ba7, + 0x000003b7, + 0x00000bb7, + 0x000013b7, + 0x00001bb7, + 0x000023b7, + 0x00002bb7, + 0x000033b7, + 0x00003bb7, + 0x000003c7, + 0x00000bc7, + 0x000013c7, + 0x00001bc7, + 0x000023c7, + 0x00002bc7, + 0x000033c7, + 0x00003bc7, + 0x000003d7, + 0x00000bd7, + 0x000013d7, + 0x00001bd7, + 0x000023d7, + 0x00002bd7, + 0x000033d7, + 0x00003bd7, + 0x000003e7, + 0x00000be7, + 0x000013e7, + 0x00001be7, + 0x000023e7, + 0x00002be7, + 0x000033e7, + 0x00003be7, + 0x000003f7, + 0x00000bf7, + 0x000013f7, + 0x00001bf7, + 0x000023f7, + 0x00002bf7, + 0x000033f7, + 0x00003bf7, + 0x0001c387, + 0x0005c387, + 0x0009c387, + 0x000dc387, + 0x0011c387, + 0x0015c387, + 0x0019c387, + 0x001dc387, + 0x0001cb87, + 0x0005cb87, + 0x0009cb87, + 0x000dcb87, + 0x0011cb87, + 0x0015cb87, + 0x0019cb87, + 0x001dcb87, + 0x0001d387, + 0x0005d387, + 0x0009d387, + 0x000dd387, + 0x0011d387, + 0x0015d387, + 0x0019d387, + 0x001dd387, + 0x0001db87, + 0x0005db87, + 0x0009db87, + 0x000ddb87, + 0x0011db87, + 0x0015db87, + 0x0019db87, + 0x001ddb87, + 0x0001e387, + 0x0005e387, + 0x0009e387, + 0x000de387, + 0x0011e387, + 0x0015e387, + 0x0019e387, + 0x001de387, + 0x0001eb87, + 0x0005eb87, + 0x0009eb87, + 0x000deb87, + 0x0011eb87, + 0x0015eb87, + 0x0019eb87, + 0x001deb87, + 0x0001f387, + 0x0005f387, + 0x0009f387, + 0x000df387, + 0x0011f387, + 0x0015f387, + 0x0019f387, + 0x001df387, + 0x0001fb87, + 0x0005fb87, + 0x0009fb87, + 0x000dfb87, + 0x0011fb87, + 0x0015fb87, + 0x0019fb87, + 0x001dfb87, + 0x0001c397, + 0x0005c397, + 0x0009c397, + 0x000dc397, + 0x0011c397, + 0x0015c397, + 0x0019c397, + 0x001dc397, + 0x0001cb97, + 0x0005cb97, + 0x0009cb97, + 0x000dcb97, + 0x0011cb97, + 0x0015cb97, + 0x0019cb97, + 0x001dcb97, + 0x0001d397, + 0x0005d397, + 0x0009d397, + 0x000dd397, + 0x0011d397, + 0x0015d397, + 0x0019d397, + 0x001dd397, + 0x0001db97, + 0x0005db97, + 0x0009db97, + 0x000ddb97, + 0x0011db97, + 0x0015db97, + 0x0019db97, + 0x001ddb97, + 0x0001e397, + 0x0005e397, + 0x0009e397, + 0x000de397, + 0x0011e397, + 0x0015e397, + 0x0019e397, + 0x001de397, + 0x0001eb97, + 0x0005eb97, + 0x0009eb97, + 0x000deb97, + 0x0011eb97, + 0x0015eb97, + 0x0019eb97, + 0x001deb97, + 0x0001f397, + 0x0005f397, + 0x0009f397, + 0x000df397, + 0x0011f397, + 0x0015f397, + 0x0019f397, + 0x001df397, + 0x0001fb97, + 0x0005fb97, + 0x0009fb97, + 0x000dfb97, + 0x0011fb97, + 0x0015fb97, + 0x0019fb97, + 0x001dfb97, + 0x0001c3a7, + 0x0005c3a7, + 0x0009c3a7, + 0x000dc3a7, + 0x0011c3a7, + 0x0015c3a7, + 0x0019c3a7, + 0x001dc3a7, + 0x0001cba7, + 0x0005cba7, + 0x0009cba7, + 0x000dcba7, + 0x0011cba7, + 0x0015cba7, + 0x0019cba7, + 0x001dcba7, + 0x0001d3a7, + 0x0005d3a7, + 0x0009d3a7, + 0x000dd3a7, + 0x0011d3a7, + 0x0015d3a7, + 0x0019d3a7, + 0x001dd3a7, + 0x0001dba7, + 0x0005dba7, + 0x0009dba7, + 0x000ddba7, + 0x0011dba7, + 0x0015dba7, + 0x0019dba7, + 0x001ddba7, + 0x0001e3a7, + 0x0005e3a7, + 0x0009e3a7, + 0x000de3a7, + 0x0011e3a7, + 0x0015e3a7, + 0x0019e3a7, + 0x001de3a7, + 0x0001eba7, + 0x0005eba7, + 0x0009eba7, + 0x000deba7, + 0x0011eba7, + 0x0015eba7, + 0x0019eba7, + 0x001deba7, + 0x0001f3a7, + 0x0005f3a7, + 0x0009f3a7, + 0x000df3a7, + 0x0011f3a7, + 0x0015f3a7, + 0x0019f3a7, + 0x001df3a7, + 0x0001fba7, + 0x0005fba7, + 0x0009fba7, + 0x000dfba7, + 0x0011fba7, + 0x0015fba7, + 0x0019fba7, + 0x001dfba7, + 0x0001c3b7, + 0x0005c3b7, + 0x0009c3b7, + 0x000dc3b7, + 0x0011c3b7, + 0x0015c3b7, + 0x0019c3b7, + 0x001dc3b7, + 0x0001cbb7, + 0x0005cbb7, + 0x0009cbb7, + 0x000dcbb7, + 0x0011cbb7, + 0x0015cbb7, + 0x0019cbb7, + 0x001dcbb7, + 0x0001d3b7, + 0x0005d3b7, + 0x0009d3b7, + 0x000dd3b7, + 0x0011d3b7, + 0x0015d3b7, + 0x0019d3b7, + 0x001dd3b7, + 0x0001dbb7, + 0x0005dbb7, + 0x0009dbb7, + 0x000ddbb7, + 0x0011dbb7, + 0x0015dbb7, + 0x0019dbb7, + 0x001ddbb7, + 0x0001e3b7, + 0x0005e3b7, + 0x0009e3b7, + 0x000de3b7, + 0x0011e3b7, + 0x0015e3b7, + 0x0019e3b7, + 0x001de3b7, + 0x0001ebb7, + 0x0005ebb7, + 0x0009ebb7, + 0x000debb7, + 0x0011ebb7, + 0x0015ebb7, + 0x0019ebb7, + 0x001debb7, + 0x0001f3b7, + 0x0005f3b7, + 0x0009f3b7, + 0x000df3b7, + 0x0011f3b7, + 0x0015f3b7, + 0x0019f3b7, + 0x001df3b7, + 0x0001fbb7, + 0x0005fbb7, + 0x0009fbb7, + 0x000dfbb7, + 0x0011fbb7, + 0x0015fbb7, + 0x0019fbb7, + 0x001dfbb7, + 0x0001c3c7, + 0x0005c3c7, + 0x0009c3c7, + 0x000dc3c7, + 0x0011c3c7, + 0x0015c3c7, + 0x0019c3c7, + 0x001dc3c7, + 0x0001cbc7, + 0x0005cbc7, + 0x0009cbc7, + 0x000dcbc7, + 0x0011cbc7, + 0x0015cbc7, + 0x0019cbc7, + 0x001dcbc7, + 0x0001d3c7, + 0x0005d3c7, + 0x0009d3c7, + 0x000dd3c7, + 0x0011d3c7, + 0x0015d3c7, + 0x0019d3c7, + 0x001dd3c7, + 0x0001dbc7, + 0x0005dbc7, + 0x0009dbc7, + 0x000ddbc7, + 0x0011dbc7, + 0x0015dbc7, + 0x0019dbc7, + 0x001ddbc7, + 0x0001e3c7, + 0x0005e3c7, + 0x0009e3c7, + 0x000de3c7, + 0x0011e3c7, + 0x0015e3c7, + 0x0019e3c7, + 0x001de3c7, + 0x0001ebc7, + 0x0005ebc7, + 0x0009ebc7, + 0x000debc7, + 0x0011ebc7, + 0x0015ebc7, + 0x0019ebc7, + 0x001debc7, + 0x0001f3c7, + 0x0005f3c7, + 0x0009f3c7, + 0x000df3c7, + 0x0011f3c7, + 0x0015f3c7, + 0x0019f3c7, + 0x001df3c7, + 0x0001fbc7, + 0x0005fbc7, + 0x0009fbc7, + 0x000dfbc7, + 0x0011fbc7, + 0x0015fbc7, + 0x0019fbc7, + 0x001dfbc7, + 0x0001c3d7, + 0x0005c3d7, + 0x0009c3d7, + 0x000dc3d7, + 0x0011c3d7, + 0x0015c3d7, + 0x0019c3d7, + 0x001dc3d7, + 0x0001cbd7, + 0x0005cbd7, + 0x0009cbd7, + 0x000dcbd7, + 0x0011cbd7, + 0x0015cbd7, + 0x0019cbd7, + 0x001dcbd7, + 0x0001d3d7, + 0x0005d3d7, + 0x0009d3d7, + 0x000dd3d7, + 0x0011d3d7, + 0x0015d3d7, + 0x0019d3d7, + 0x001dd3d7, + 0x0001dbd7, + 0x0005dbd7, + 0x0009dbd7, + 0x000ddbd7, + 0x0011dbd7, + 0x0015dbd7, + 0x0019dbd7, + 0x001ddbd7, + 0x0001e3d7, + 0x0005e3d7, + 0x0009e3d7, + 0x000de3d7, + 0x0011e3d7, + 0x0015e3d7, + 0x0019e3d7, + 0x001de3d7, + 0x0001ebd7, + 0x0005ebd7, + 0x0009ebd7, + 0x000debd7, + 0x0011ebd7, + 0x0015ebd7, + 0x0019ebd7, + 0x001debd7, + 0x0001f3d7, + 0x0005f3d7, + 0x0009f3d7, + 0x000df3d7, + 0x0011f3d7, + 0x0015f3d7, + 0x0019f3d7, + 0x001df3d7, + 0x0001fbd7, + 0x0005fbd7, + 0x0009fbd7, + 0x000dfbd7, + 0x0011fbd7, + 0x0015fbd7, + 0x0019fbd7, + 0x001dfbd7, + 0x0001c3e7, + 0x0005c3e7, + 0x0009c3e7, + 0x000dc3e7, + 0x0011c3e7, + 0x0015c3e7, + 0x0019c3e7, + 0x001dc3e7, + 0x0001cbe7, + 0x0005cbe7, + 0x0009cbe7, + 0x000dcbe7, + 0x0011cbe7, + 0x0015cbe7, + 0x0019cbe7, + 0x001dcbe7, + 0x0001d3e7, + 0x0005d3e7, + 0x0009d3e7, + 0x000dd3e7, + 0x0011d3e7, + 0x0015d3e7, + 0x0019d3e7, + 0x001dd3e7, + 0x0001dbe7, + 0x0005dbe7, + 0x0009dbe7, + 0x000ddbe7, + 0x0011dbe7, + 0x0015dbe7, + 0x0019dbe7, + 0x001ddbe7, + 0x0001e3e7, + 0x0005e3e7, + 0x0009e3e7, + 0x000de3e7, + 0x0011e3e7, + 0x0015e3e7, + 0x0019e3e7, + 0x001de3e7, + 0x0001ebe7, + 0x0005ebe7, + 0x0009ebe7, + 0x000debe7, + 0x0011ebe7, + 0x0015ebe7, + 0x0019ebe7, + 0x001debe7, + 0x0001f3e7, + 0x0005f3e7, + 0x0009f3e7, + 0x000df3e7, + 0x0011f3e7, + 0x0015f3e7, + 0x0019f3e7, + 0x001df3e7, + 0x0001fbe7, + 0x0005fbe7, + 0x0009fbe7, + 0x000dfbe7, + 0x0011fbe7, + 0x0015fbe7, + 0x0019fbe7, + 0x001dfbe7, + 0x0001c3f7, + 0x0005c3f7, + 0x0009c3f7, + 0x000dc3f7, + 0x0011c3f7, + 0x0015c3f7, + 0x0019c3f7, + 0x001dc3f7, + 0x0001cbf7, + 0x0005cbf7, + 0x0009cbf7, + 0x000dcbf7, + 0x0011cbf7, + 0x0015cbf7, + 0x0019cbf7, + 0x001dcbf7, + 0x0001d3f7, + 0x0005d3f7, + 0x0009d3f7, + 0x000dd3f7, + 0x0011d3f7, + 0x0015d3f7, + 0x0019d3f7, + 0x001dd3f7, + 0x0001dbf7, + 0x0005dbf7, + 0x0009dbf7, + 0x000ddbf7, + 0x0011dbf7, + 0x0015dbf7, + 0x0019dbf7, + 0x001ddbf7, + 0x0001e3f7, + 0x0005e3f7, + 0x0009e3f7, + 0x000de3f7, + 0x0011e3f7, + 0x0015e3f7, + 0x0019e3f7, + 0x001de3f7, + 0x0001ebf7, + 0x0005ebf7, + 0x0009ebf7, + 0x000debf7, + 0x0011ebf7, + 0x0015ebf7, + 0x0019ebf7, + 0x001debf7, + 0x0001f3f7, + 0x0005f3f7, + 0x0009f3f7, + 0x000df3f7, + 0x0011f3f7, + 0x0015f3f7, + 0x0019f3f7, + 0x001df3f7, + 0x0001fbf7, + 0x0005fbf7, + 0x0009fbf7, + 0x000dfbf7, + 0x0011fbf7, + 0x0015fbf7, + 0x0019fbf7, + 0x001dfbf7, + 0x00e1c387, + 0x02e1c387, + 0x04e1c387, + 0x06e1c387, + 0x08e1c387, + 0x0ae1c387, + 0x0ce1c387, + 0x0ee1c387, + 0x00e5c387, + 0x02e5c387, + 0x04e5c387, + 0x06e5c387, + 0x08e5c387, + 0x0ae5c387, + 0x0ce5c387, + 0x0ee5c387, + 0x00e9c387, + 0x02e9c387, + 0x04e9c387, + 0x06e9c387, + 0x08e9c387, + 0x0ae9c387, + 0x0ce9c387, + 0x0ee9c387, + 0x00edc387, + 0x02edc387, + 0x04edc387, + 0x06edc387, + 0x08edc387, + 0x0aedc387, + 0x0cedc387, + 0x0eedc387, + 0x00f1c387, + 0x02f1c387, + 0x04f1c387, + 0x06f1c387, + 0x08f1c387, + 0x0af1c387, + 0x0cf1c387, + 0x0ef1c387, + 0x00f5c387, + 0x02f5c387, + 0x04f5c387, + 0x06f5c387, + 0x08f5c387, + 0x0af5c387, + 0x0cf5c387, + 0x0ef5c387, + 0x00f9c387, + 0x02f9c387, + 0x04f9c387, + 0x06f9c387, + 0x08f9c387, + 0x0af9c387, + 0x0cf9c387, + 0x0ef9c387, + 0x00fdc387, + 0x02fdc387, + 0x04fdc387, + 0x06fdc387, + 0x08fdc387, + 0x0afdc387, + 0x0cfdc387, + 0x0efdc387, + 0x00e1cb87, + 0x02e1cb87, + 0x04e1cb87, + 0x06e1cb87, + 0x08e1cb87, + 0x0ae1cb87, + 0x0ce1cb87, + 0x0ee1cb87, + 0x00e5cb87, + 0x02e5cb87, + 0x04e5cb87, + 0x06e5cb87, + 0x08e5cb87, + 0x0ae5cb87, + 0x0ce5cb87, + 0x0ee5cb87, + 0x00e9cb87, + 0x02e9cb87, + 0x04e9cb87, + 0x06e9cb87, + 0x08e9cb87, + 0x0ae9cb87, + 0x0ce9cb87, + 0x0ee9cb87, + 0x00edcb87, + 0x02edcb87, + 0x04edcb87, + 0x06edcb87, + 0x08edcb87, + 0x0aedcb87, + 0x0cedcb87, + 0x0eedcb87, + 0x00f1cb87, + 0x02f1cb87, + 0x04f1cb87, + 0x06f1cb87, + 0x08f1cb87, + 0x0af1cb87, + 0x0cf1cb87, + 0x0ef1cb87, + 0x00f5cb87, + 0x02f5cb87, + 0x04f5cb87, + 0x06f5cb87, + 0x08f5cb87, + 0x0af5cb87, + 0x0cf5cb87, + 0x0ef5cb87, + 0x00f9cb87, + 0x02f9cb87, + 0x04f9cb87, + 0x06f9cb87, + 0x08f9cb87, +} + +var kZeroRepsDepth = [numCommandSymbols]uint32{ + 0, + 4, + 8, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 11, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 21, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, +} + +var kNonZeroRepsBits = [numCommandSymbols]uint64{ + 0x0000000b, + 0x0000001b, + 0x0000002b, + 0x0000003b, + 0x000002cb, + 0x000006cb, + 0x00000acb, + 0x00000ecb, + 0x000002db, + 0x000006db, + 0x00000adb, + 0x00000edb, + 0x000002eb, + 0x000006eb, + 0x00000aeb, + 0x00000eeb, + 0x000002fb, + 0x000006fb, + 0x00000afb, + 0x00000efb, + 0x0000b2cb, + 0x0001b2cb, + 0x0002b2cb, + 0x0003b2cb, + 0x0000b6cb, + 0x0001b6cb, + 0x0002b6cb, + 0x0003b6cb, + 0x0000bacb, + 0x0001bacb, + 0x0002bacb, + 0x0003bacb, + 0x0000becb, + 0x0001becb, + 0x0002becb, + 0x0003becb, + 0x0000b2db, + 0x0001b2db, + 0x0002b2db, + 0x0003b2db, + 0x0000b6db, + 0x0001b6db, + 0x0002b6db, + 0x0003b6db, + 0x0000badb, + 0x0001badb, + 0x0002badb, + 0x0003badb, + 0x0000bedb, + 0x0001bedb, + 0x0002bedb, + 0x0003bedb, + 0x0000b2eb, + 0x0001b2eb, + 0x0002b2eb, + 0x0003b2eb, + 0x0000b6eb, + 0x0001b6eb, + 0x0002b6eb, + 0x0003b6eb, + 0x0000baeb, + 0x0001baeb, + 0x0002baeb, + 0x0003baeb, + 0x0000beeb, + 0x0001beeb, + 0x0002beeb, + 0x0003beeb, + 0x0000b2fb, + 0x0001b2fb, + 0x0002b2fb, + 0x0003b2fb, + 0x0000b6fb, + 0x0001b6fb, + 0x0002b6fb, + 0x0003b6fb, + 0x0000bafb, + 0x0001bafb, + 0x0002bafb, + 0x0003bafb, + 0x0000befb, + 0x0001befb, + 0x0002befb, + 0x0003befb, + 0x002cb2cb, + 0x006cb2cb, + 0x00acb2cb, + 0x00ecb2cb, + 0x002db2cb, + 0x006db2cb, + 0x00adb2cb, + 0x00edb2cb, + 0x002eb2cb, + 0x006eb2cb, + 0x00aeb2cb, + 0x00eeb2cb, + 0x002fb2cb, + 0x006fb2cb, + 0x00afb2cb, + 0x00efb2cb, + 0x002cb6cb, + 0x006cb6cb, + 0x00acb6cb, + 0x00ecb6cb, + 0x002db6cb, + 0x006db6cb, + 0x00adb6cb, + 0x00edb6cb, + 0x002eb6cb, + 0x006eb6cb, + 0x00aeb6cb, + 0x00eeb6cb, + 0x002fb6cb, + 0x006fb6cb, + 0x00afb6cb, + 0x00efb6cb, + 0x002cbacb, + 0x006cbacb, + 0x00acbacb, + 0x00ecbacb, + 0x002dbacb, + 0x006dbacb, + 0x00adbacb, + 0x00edbacb, + 0x002ebacb, + 0x006ebacb, + 0x00aebacb, + 0x00eebacb, + 0x002fbacb, + 0x006fbacb, + 0x00afbacb, + 0x00efbacb, + 0x002cbecb, + 0x006cbecb, + 0x00acbecb, + 0x00ecbecb, + 0x002dbecb, + 0x006dbecb, + 0x00adbecb, + 0x00edbecb, + 0x002ebecb, + 0x006ebecb, + 0x00aebecb, + 0x00eebecb, + 0x002fbecb, + 0x006fbecb, + 0x00afbecb, + 0x00efbecb, + 0x002cb2db, + 0x006cb2db, + 0x00acb2db, + 0x00ecb2db, + 0x002db2db, + 0x006db2db, + 0x00adb2db, + 0x00edb2db, + 0x002eb2db, + 0x006eb2db, + 0x00aeb2db, + 0x00eeb2db, + 0x002fb2db, + 0x006fb2db, + 0x00afb2db, + 0x00efb2db, + 0x002cb6db, + 0x006cb6db, + 0x00acb6db, + 0x00ecb6db, + 0x002db6db, + 0x006db6db, + 0x00adb6db, + 0x00edb6db, + 0x002eb6db, + 0x006eb6db, + 0x00aeb6db, + 0x00eeb6db, + 0x002fb6db, + 0x006fb6db, + 0x00afb6db, + 0x00efb6db, + 0x002cbadb, + 0x006cbadb, + 0x00acbadb, + 0x00ecbadb, + 0x002dbadb, + 0x006dbadb, + 0x00adbadb, + 0x00edbadb, + 0x002ebadb, + 0x006ebadb, + 0x00aebadb, + 0x00eebadb, + 0x002fbadb, + 0x006fbadb, + 0x00afbadb, + 0x00efbadb, + 0x002cbedb, + 0x006cbedb, + 0x00acbedb, + 0x00ecbedb, + 0x002dbedb, + 0x006dbedb, + 0x00adbedb, + 0x00edbedb, + 0x002ebedb, + 0x006ebedb, + 0x00aebedb, + 0x00eebedb, + 0x002fbedb, + 0x006fbedb, + 0x00afbedb, + 0x00efbedb, + 0x002cb2eb, + 0x006cb2eb, + 0x00acb2eb, + 0x00ecb2eb, + 0x002db2eb, + 0x006db2eb, + 0x00adb2eb, + 0x00edb2eb, + 0x002eb2eb, + 0x006eb2eb, + 0x00aeb2eb, + 0x00eeb2eb, + 0x002fb2eb, + 0x006fb2eb, + 0x00afb2eb, + 0x00efb2eb, + 0x002cb6eb, + 0x006cb6eb, + 0x00acb6eb, + 0x00ecb6eb, + 0x002db6eb, + 0x006db6eb, + 0x00adb6eb, + 0x00edb6eb, + 0x002eb6eb, + 0x006eb6eb, + 0x00aeb6eb, + 0x00eeb6eb, + 0x002fb6eb, + 0x006fb6eb, + 0x00afb6eb, + 0x00efb6eb, + 0x002cbaeb, + 0x006cbaeb, + 0x00acbaeb, + 0x00ecbaeb, + 0x002dbaeb, + 0x006dbaeb, + 0x00adbaeb, + 0x00edbaeb, + 0x002ebaeb, + 0x006ebaeb, + 0x00aebaeb, + 0x00eebaeb, + 0x002fbaeb, + 0x006fbaeb, + 0x00afbaeb, + 0x00efbaeb, + 0x002cbeeb, + 0x006cbeeb, + 0x00acbeeb, + 0x00ecbeeb, + 0x002dbeeb, + 0x006dbeeb, + 0x00adbeeb, + 0x00edbeeb, + 0x002ebeeb, + 0x006ebeeb, + 0x00aebeeb, + 0x00eebeeb, + 0x002fbeeb, + 0x006fbeeb, + 0x00afbeeb, + 0x00efbeeb, + 0x002cb2fb, + 0x006cb2fb, + 0x00acb2fb, + 0x00ecb2fb, + 0x002db2fb, + 0x006db2fb, + 0x00adb2fb, + 0x00edb2fb, + 0x002eb2fb, + 0x006eb2fb, + 0x00aeb2fb, + 0x00eeb2fb, + 0x002fb2fb, + 0x006fb2fb, + 0x00afb2fb, + 0x00efb2fb, + 0x002cb6fb, + 0x006cb6fb, + 0x00acb6fb, + 0x00ecb6fb, + 0x002db6fb, + 0x006db6fb, + 0x00adb6fb, + 0x00edb6fb, + 0x002eb6fb, + 0x006eb6fb, + 0x00aeb6fb, + 0x00eeb6fb, + 0x002fb6fb, + 0x006fb6fb, + 0x00afb6fb, + 0x00efb6fb, + 0x002cbafb, + 0x006cbafb, + 0x00acbafb, + 0x00ecbafb, + 0x002dbafb, + 0x006dbafb, + 0x00adbafb, + 0x00edbafb, + 0x002ebafb, + 0x006ebafb, + 0x00aebafb, + 0x00eebafb, + 0x002fbafb, + 0x006fbafb, + 0x00afbafb, + 0x00efbafb, + 0x002cbefb, + 0x006cbefb, + 0x00acbefb, + 0x00ecbefb, + 0x002dbefb, + 0x006dbefb, + 0x00adbefb, + 0x00edbefb, + 0x002ebefb, + 0x006ebefb, + 0x00aebefb, + 0x00eebefb, + 0x002fbefb, + 0x006fbefb, + 0x00afbefb, + 0x00efbefb, + 0x0b2cb2cb, + 0x1b2cb2cb, + 0x2b2cb2cb, + 0x3b2cb2cb, + 0x0b6cb2cb, + 0x1b6cb2cb, + 0x2b6cb2cb, + 0x3b6cb2cb, + 0x0bacb2cb, + 0x1bacb2cb, + 0x2bacb2cb, + 0x3bacb2cb, + 0x0becb2cb, + 0x1becb2cb, + 0x2becb2cb, + 0x3becb2cb, + 0x0b2db2cb, + 0x1b2db2cb, + 0x2b2db2cb, + 0x3b2db2cb, + 0x0b6db2cb, + 0x1b6db2cb, + 0x2b6db2cb, + 0x3b6db2cb, + 0x0badb2cb, + 0x1badb2cb, + 0x2badb2cb, + 0x3badb2cb, + 0x0bedb2cb, + 0x1bedb2cb, + 0x2bedb2cb, + 0x3bedb2cb, + 0x0b2eb2cb, + 0x1b2eb2cb, + 0x2b2eb2cb, + 0x3b2eb2cb, + 0x0b6eb2cb, + 0x1b6eb2cb, + 0x2b6eb2cb, + 0x3b6eb2cb, + 0x0baeb2cb, + 0x1baeb2cb, + 0x2baeb2cb, + 0x3baeb2cb, + 0x0beeb2cb, + 0x1beeb2cb, + 0x2beeb2cb, + 0x3beeb2cb, + 0x0b2fb2cb, + 0x1b2fb2cb, + 0x2b2fb2cb, + 0x3b2fb2cb, + 0x0b6fb2cb, + 0x1b6fb2cb, + 0x2b6fb2cb, + 0x3b6fb2cb, + 0x0bafb2cb, + 0x1bafb2cb, + 0x2bafb2cb, + 0x3bafb2cb, + 0x0befb2cb, + 0x1befb2cb, + 0x2befb2cb, + 0x3befb2cb, + 0x0b2cb6cb, + 0x1b2cb6cb, + 0x2b2cb6cb, + 0x3b2cb6cb, + 0x0b6cb6cb, + 0x1b6cb6cb, + 0x2b6cb6cb, + 0x3b6cb6cb, + 0x0bacb6cb, + 0x1bacb6cb, + 0x2bacb6cb, + 0x3bacb6cb, + 0x0becb6cb, + 0x1becb6cb, + 0x2becb6cb, + 0x3becb6cb, + 0x0b2db6cb, + 0x1b2db6cb, + 0x2b2db6cb, + 0x3b2db6cb, + 0x0b6db6cb, + 0x1b6db6cb, + 0x2b6db6cb, + 0x3b6db6cb, + 0x0badb6cb, + 0x1badb6cb, + 0x2badb6cb, + 0x3badb6cb, + 0x0bedb6cb, + 0x1bedb6cb, + 0x2bedb6cb, + 0x3bedb6cb, + 0x0b2eb6cb, + 0x1b2eb6cb, + 0x2b2eb6cb, + 0x3b2eb6cb, + 0x0b6eb6cb, + 0x1b6eb6cb, + 0x2b6eb6cb, + 0x3b6eb6cb, + 0x0baeb6cb, + 0x1baeb6cb, + 0x2baeb6cb, + 0x3baeb6cb, + 0x0beeb6cb, + 0x1beeb6cb, + 0x2beeb6cb, + 0x3beeb6cb, + 0x0b2fb6cb, + 0x1b2fb6cb, + 0x2b2fb6cb, + 0x3b2fb6cb, + 0x0b6fb6cb, + 0x1b6fb6cb, + 0x2b6fb6cb, + 0x3b6fb6cb, + 0x0bafb6cb, + 0x1bafb6cb, + 0x2bafb6cb, + 0x3bafb6cb, + 0x0befb6cb, + 0x1befb6cb, + 0x2befb6cb, + 0x3befb6cb, + 0x0b2cbacb, + 0x1b2cbacb, + 0x2b2cbacb, + 0x3b2cbacb, + 0x0b6cbacb, + 0x1b6cbacb, + 0x2b6cbacb, + 0x3b6cbacb, + 0x0bacbacb, + 0x1bacbacb, + 0x2bacbacb, + 0x3bacbacb, + 0x0becbacb, + 0x1becbacb, + 0x2becbacb, + 0x3becbacb, + 0x0b2dbacb, + 0x1b2dbacb, + 0x2b2dbacb, + 0x3b2dbacb, + 0x0b6dbacb, + 0x1b6dbacb, + 0x2b6dbacb, + 0x3b6dbacb, + 0x0badbacb, + 0x1badbacb, + 0x2badbacb, + 0x3badbacb, + 0x0bedbacb, + 0x1bedbacb, + 0x2bedbacb, + 0x3bedbacb, + 0x0b2ebacb, + 0x1b2ebacb, + 0x2b2ebacb, + 0x3b2ebacb, + 0x0b6ebacb, + 0x1b6ebacb, + 0x2b6ebacb, + 0x3b6ebacb, + 0x0baebacb, + 0x1baebacb, + 0x2baebacb, + 0x3baebacb, + 0x0beebacb, + 0x1beebacb, + 0x2beebacb, + 0x3beebacb, + 0x0b2fbacb, + 0x1b2fbacb, + 0x2b2fbacb, + 0x3b2fbacb, + 0x0b6fbacb, + 0x1b6fbacb, + 0x2b6fbacb, + 0x3b6fbacb, + 0x0bafbacb, + 0x1bafbacb, + 0x2bafbacb, + 0x3bafbacb, + 0x0befbacb, + 0x1befbacb, + 0x2befbacb, + 0x3befbacb, + 0x0b2cbecb, + 0x1b2cbecb, + 0x2b2cbecb, + 0x3b2cbecb, + 0x0b6cbecb, + 0x1b6cbecb, + 0x2b6cbecb, + 0x3b6cbecb, + 0x0bacbecb, + 0x1bacbecb, + 0x2bacbecb, + 0x3bacbecb, + 0x0becbecb, + 0x1becbecb, + 0x2becbecb, + 0x3becbecb, + 0x0b2dbecb, + 0x1b2dbecb, + 0x2b2dbecb, + 0x3b2dbecb, + 0x0b6dbecb, + 0x1b6dbecb, + 0x2b6dbecb, + 0x3b6dbecb, + 0x0badbecb, + 0x1badbecb, + 0x2badbecb, + 0x3badbecb, + 0x0bedbecb, + 0x1bedbecb, + 0x2bedbecb, + 0x3bedbecb, + 0x0b2ebecb, + 0x1b2ebecb, + 0x2b2ebecb, + 0x3b2ebecb, + 0x0b6ebecb, + 0x1b6ebecb, + 0x2b6ebecb, + 0x3b6ebecb, + 0x0baebecb, + 0x1baebecb, + 0x2baebecb, + 0x3baebecb, + 0x0beebecb, + 0x1beebecb, + 0x2beebecb, + 0x3beebecb, + 0x0b2fbecb, + 0x1b2fbecb, + 0x2b2fbecb, + 0x3b2fbecb, + 0x0b6fbecb, + 0x1b6fbecb, + 0x2b6fbecb, + 0x3b6fbecb, + 0x0bafbecb, + 0x1bafbecb, + 0x2bafbecb, + 0x3bafbecb, + 0x0befbecb, + 0x1befbecb, + 0x2befbecb, + 0x3befbecb, + 0x0b2cb2db, + 0x1b2cb2db, + 0x2b2cb2db, + 0x3b2cb2db, + 0x0b6cb2db, + 0x1b6cb2db, + 0x2b6cb2db, + 0x3b6cb2db, + 0x0bacb2db, + 0x1bacb2db, + 0x2bacb2db, + 0x3bacb2db, + 0x0becb2db, + 0x1becb2db, + 0x2becb2db, + 0x3becb2db, + 0x0b2db2db, + 0x1b2db2db, + 0x2b2db2db, + 0x3b2db2db, + 0x0b6db2db, + 0x1b6db2db, + 0x2b6db2db, + 0x3b6db2db, + 0x0badb2db, + 0x1badb2db, + 0x2badb2db, + 0x3badb2db, + 0x0bedb2db, + 0x1bedb2db, + 0x2bedb2db, + 0x3bedb2db, + 0x0b2eb2db, + 0x1b2eb2db, + 0x2b2eb2db, + 0x3b2eb2db, + 0x0b6eb2db, + 0x1b6eb2db, + 0x2b6eb2db, + 0x3b6eb2db, + 0x0baeb2db, + 0x1baeb2db, + 0x2baeb2db, + 0x3baeb2db, + 0x0beeb2db, + 0x1beeb2db, + 0x2beeb2db, + 0x3beeb2db, + 0x0b2fb2db, + 0x1b2fb2db, + 0x2b2fb2db, + 0x3b2fb2db, + 0x0b6fb2db, + 0x1b6fb2db, + 0x2b6fb2db, + 0x3b6fb2db, + 0x0bafb2db, + 0x1bafb2db, + 0x2bafb2db, + 0x3bafb2db, + 0x0befb2db, + 0x1befb2db, + 0x2befb2db, + 0x3befb2db, + 0x0b2cb6db, + 0x1b2cb6db, + 0x2b2cb6db, + 0x3b2cb6db, + 0x0b6cb6db, + 0x1b6cb6db, + 0x2b6cb6db, + 0x3b6cb6db, + 0x0bacb6db, + 0x1bacb6db, + 0x2bacb6db, + 0x3bacb6db, + 0x0becb6db, + 0x1becb6db, + 0x2becb6db, + 0x3becb6db, + 0x0b2db6db, + 0x1b2db6db, + 0x2b2db6db, + 0x3b2db6db, + 0x0b6db6db, + 0x1b6db6db, + 0x2b6db6db, + 0x3b6db6db, + 0x0badb6db, + 0x1badb6db, + 0x2badb6db, + 0x3badb6db, + 0x0bedb6db, + 0x1bedb6db, + 0x2bedb6db, + 0x3bedb6db, + 0x0b2eb6db, + 0x1b2eb6db, + 0x2b2eb6db, + 0x3b2eb6db, + 0x0b6eb6db, + 0x1b6eb6db, + 0x2b6eb6db, + 0x3b6eb6db, + 0x0baeb6db, + 0x1baeb6db, + 0x2baeb6db, + 0x3baeb6db, +} + +var kNonZeroRepsDepth = [numCommandSymbols]uint32{ + 6, + 6, + 6, + 6, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 12, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 18, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, +} + +var kStaticCommandCodeBits = [numCommandSymbols]uint16{ + 0, + 256, + 128, + 384, + 64, + 320, + 192, + 448, + 32, + 288, + 160, + 416, + 96, + 352, + 224, + 480, + 16, + 272, + 144, + 400, + 80, + 336, + 208, + 464, + 48, + 304, + 176, + 432, + 112, + 368, + 240, + 496, + 8, + 264, + 136, + 392, + 72, + 328, + 200, + 456, + 40, + 296, + 168, + 424, + 104, + 360, + 232, + 488, + 24, + 280, + 152, + 408, + 88, + 344, + 216, + 472, + 56, + 312, + 184, + 440, + 120, + 376, + 248, + 504, + 4, + 260, + 132, + 388, + 68, + 324, + 196, + 452, + 36, + 292, + 164, + 420, + 100, + 356, + 228, + 484, + 20, + 276, + 148, + 404, + 84, + 340, + 212, + 468, + 52, + 308, + 180, + 436, + 116, + 372, + 244, + 500, + 12, + 268, + 140, + 396, + 76, + 332, + 204, + 460, + 44, + 300, + 172, + 428, + 108, + 364, + 236, + 492, + 28, + 284, + 156, + 412, + 92, + 348, + 220, + 476, + 60, + 316, + 188, + 444, + 124, + 380, + 252, + 508, + 2, + 258, + 130, + 386, + 66, + 322, + 194, + 450, + 34, + 290, + 162, + 418, + 98, + 354, + 226, + 482, + 18, + 274, + 146, + 402, + 82, + 338, + 210, + 466, + 50, + 306, + 178, + 434, + 114, + 370, + 242, + 498, + 10, + 266, + 138, + 394, + 74, + 330, + 202, + 458, + 42, + 298, + 170, + 426, + 106, + 362, + 234, + 490, + 26, + 282, + 154, + 410, + 90, + 346, + 218, + 474, + 58, + 314, + 186, + 442, + 122, + 378, + 250, + 506, + 6, + 262, + 134, + 390, + 70, + 326, + 198, + 454, + 38, + 294, + 166, + 422, + 102, + 358, + 230, + 486, + 22, + 278, + 150, + 406, + 86, + 342, + 214, + 470, + 54, + 310, + 182, + 438, + 118, + 374, + 246, + 502, + 14, + 270, + 142, + 398, + 78, + 334, + 206, + 462, + 46, + 302, + 174, + 430, + 110, + 366, + 238, + 494, + 30, + 286, + 158, + 414, + 94, + 350, + 222, + 478, + 62, + 318, + 190, + 446, + 126, + 382, + 254, + 510, + 1, + 257, + 129, + 385, + 65, + 321, + 193, + 449, + 33, + 289, + 161, + 417, + 97, + 353, + 225, + 481, + 17, + 273, + 145, + 401, + 81, + 337, + 209, + 465, + 49, + 305, + 177, + 433, + 113, + 369, + 241, + 497, + 9, + 265, + 137, + 393, + 73, + 329, + 201, + 457, + 41, + 297, + 169, + 425, + 105, + 361, + 233, + 489, + 25, + 281, + 153, + 409, + 89, + 345, + 217, + 473, + 57, + 313, + 185, + 441, + 121, + 377, + 249, + 505, + 5, + 261, + 133, + 389, + 69, + 325, + 197, + 453, + 37, + 293, + 165, + 421, + 101, + 357, + 229, + 485, + 21, + 277, + 149, + 405, + 85, + 341, + 213, + 469, + 53, + 309, + 181, + 437, + 117, + 373, + 245, + 501, + 13, + 269, + 141, + 397, + 77, + 333, + 205, + 461, + 45, + 301, + 173, + 429, + 109, + 365, + 237, + 493, + 29, + 285, + 157, + 413, + 93, + 349, + 221, + 477, + 61, + 317, + 189, + 445, + 125, + 381, + 253, + 509, + 3, + 259, + 131, + 387, + 67, + 323, + 195, + 451, + 35, + 291, + 163, + 419, + 99, + 355, + 227, + 483, + 19, + 275, + 147, + 403, + 83, + 339, + 211, + 467, + 51, + 307, + 179, + 435, + 115, + 371, + 243, + 499, + 11, + 267, + 139, + 395, + 75, + 331, + 203, + 459, + 43, + 299, + 171, + 427, + 107, + 363, + 235, + 491, + 27, + 283, + 155, + 411, + 91, + 347, + 219, + 475, + 59, + 315, + 187, + 443, + 123, + 379, + 251, + 507, + 7, + 1031, + 519, + 1543, + 263, + 1287, + 775, + 1799, + 135, + 1159, + 647, + 1671, + 391, + 1415, + 903, + 1927, + 71, + 1095, + 583, + 1607, + 327, + 1351, + 839, + 1863, + 199, + 1223, + 711, + 1735, + 455, + 1479, + 967, + 1991, + 39, + 1063, + 551, + 1575, + 295, + 1319, + 807, + 1831, + 167, + 1191, + 679, + 1703, + 423, + 1447, + 935, + 1959, + 103, + 1127, + 615, + 1639, + 359, + 1383, + 871, + 1895, + 231, + 1255, + 743, + 1767, + 487, + 1511, + 999, + 2023, + 23, + 1047, + 535, + 1559, + 279, + 1303, + 791, + 1815, + 151, + 1175, + 663, + 1687, + 407, + 1431, + 919, + 1943, + 87, + 1111, + 599, + 1623, + 343, + 1367, + 855, + 1879, + 215, + 1239, + 727, + 1751, + 471, + 1495, + 983, + 2007, + 55, + 1079, + 567, + 1591, + 311, + 1335, + 823, + 1847, + 183, + 1207, + 695, + 1719, + 439, + 1463, + 951, + 1975, + 119, + 1143, + 631, + 1655, + 375, + 1399, + 887, + 1911, + 247, + 1271, + 759, + 1783, + 503, + 1527, + 1015, + 2039, + 15, + 1039, + 527, + 1551, + 271, + 1295, + 783, + 1807, + 143, + 1167, + 655, + 1679, + 399, + 1423, + 911, + 1935, + 79, + 1103, + 591, + 1615, + 335, + 1359, + 847, + 1871, + 207, + 1231, + 719, + 1743, + 463, + 1487, + 975, + 1999, + 47, + 1071, + 559, + 1583, + 303, + 1327, + 815, + 1839, + 175, + 1199, + 687, + 1711, + 431, + 1455, + 943, + 1967, + 111, + 1135, + 623, + 1647, + 367, + 1391, + 879, + 1903, + 239, + 1263, + 751, + 1775, + 495, + 1519, + 1007, + 2031, + 31, + 1055, + 543, + 1567, + 287, + 1311, + 799, + 1823, + 159, + 1183, + 671, + 1695, + 415, + 1439, + 927, + 1951, + 95, + 1119, + 607, + 1631, + 351, + 1375, + 863, + 1887, + 223, + 1247, + 735, + 1759, + 479, + 1503, + 991, + 2015, + 63, + 1087, + 575, + 1599, + 319, + 1343, + 831, + 1855, + 191, + 1215, + 703, + 1727, + 447, + 1471, + 959, + 1983, + 127, + 1151, + 639, + 1663, + 383, + 1407, + 895, + 1919, + 255, + 1279, + 767, + 1791, + 511, + 1535, + 1023, + 2047, +} + +func storeStaticCommandHuffmanTree(storage_ix *uint, storage []byte) { + writeBits(56, 0x92624416307003, storage_ix, storage) + writeBits(3, 0x00000000, storage_ix, storage) +} + +var kStaticDistanceCodeBits = [64]uint16{ + 0, + 32, + 16, + 48, + 8, + 40, + 24, + 56, + 4, + 36, + 20, + 52, + 12, + 44, + 28, + 60, + 2, + 34, + 18, + 50, + 10, + 42, + 26, + 58, + 6, + 38, + 22, + 54, + 14, + 46, + 30, + 62, + 1, + 33, + 17, + 49, + 9, + 41, + 25, + 57, + 5, + 37, + 21, + 53, + 13, + 45, + 29, + 61, + 3, + 35, + 19, + 51, + 11, + 43, + 27, + 59, + 7, + 39, + 23, + 55, + 15, + 47, + 31, + 63, +} + +func storeStaticDistanceHuffmanTree(storage_ix *uint, storage []byte) { + writeBits(28, 0x0369DC03, storage_ix, storage) +} diff --git a/vendor/github.com/andybalholm/brotli/fast_log.go b/vendor/github.com/andybalholm/brotli/fast_log.go new file mode 100644 index 0000000..9d6607f --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/fast_log.go @@ -0,0 +1,290 @@ +package brotli + +import ( + "math" + "math/bits" +) + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Utilities for fast computation of logarithms. */ + +func log2FloorNonZero(n uint) uint32 { + return uint32(bits.Len(n)) - 1 +} + +/* A lookup table for small values of log2(int) to be used in entropy + computation. + + ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */ +var kLog2Table = []float32{ + 0.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 1.5849625007211563, + 2.0000000000000000, + 2.3219280948873622, + 2.5849625007211561, + 2.8073549220576042, + 3.0000000000000000, + 3.1699250014423126, + 3.3219280948873626, + 3.4594316186372978, + 3.5849625007211565, + 3.7004397181410922, + 3.8073549220576037, + 3.9068905956085187, + 4.0000000000000000, + 4.0874628412503400, + 4.1699250014423122, + 4.2479275134435852, + 4.3219280948873626, + 4.3923174227787607, + 4.4594316186372973, + 4.5235619560570131, + 4.5849625007211570, + 4.6438561897747244, + 4.7004397181410926, + 4.7548875021634691, + 4.8073549220576037, + 4.8579809951275728, + 4.9068905956085187, + 4.9541963103868758, + 5.0000000000000000, + 5.0443941193584534, + 5.0874628412503400, + 5.1292830169449664, + 5.1699250014423122, + 5.2094533656289501, + 5.2479275134435852, + 5.2854022188622487, + 5.3219280948873626, + 5.3575520046180838, + 5.3923174227787607, + 5.4262647547020979, + 5.4594316186372973, + 5.4918530963296748, + 5.5235619560570131, + 5.5545888516776376, + 5.5849625007211570, + 5.6147098441152083, + 5.6438561897747244, + 5.6724253419714961, + 5.7004397181410926, + 5.7279204545631996, + 5.7548875021634691, + 5.7813597135246599, + 5.8073549220576046, + 5.8328900141647422, + 5.8579809951275719, + 5.8826430493618416, + 5.9068905956085187, + 5.9307373375628867, + 5.9541963103868758, + 5.9772799234999168, + 6.0000000000000000, + 6.0223678130284544, + 6.0443941193584534, + 6.0660891904577721, + 6.0874628412503400, + 6.1085244567781700, + 6.1292830169449672, + 6.1497471195046822, + 6.1699250014423122, + 6.1898245588800176, + 6.2094533656289510, + 6.2288186904958804, + 6.2479275134435861, + 6.2667865406949019, + 6.2854022188622487, + 6.3037807481771031, + 6.3219280948873617, + 6.3398500028846252, + 6.3575520046180847, + 6.3750394313469254, + 6.3923174227787598, + 6.4093909361377026, + 6.4262647547020979, + 6.4429434958487288, + 6.4594316186372982, + 6.4757334309663976, + 6.4918530963296748, + 6.5077946401986964, + 6.5235619560570131, + 6.5391588111080319, + 6.5545888516776376, + 6.5698556083309478, + 6.5849625007211561, + 6.5999128421871278, + 6.6147098441152092, + 6.6293566200796095, + 6.6438561897747253, + 6.6582114827517955, + 6.6724253419714952, + 6.6865005271832185, + 6.7004397181410917, + 6.7142455176661224, + 6.7279204545631988, + 6.7414669864011465, + 6.7548875021634691, + 6.7681843247769260, + 6.7813597135246599, + 6.7944158663501062, + 6.8073549220576037, + 6.8201789624151887, + 6.8328900141647422, + 6.8454900509443757, + 6.8579809951275719, + 6.8703647195834048, + 6.8826430493618416, + 6.8948177633079437, + 6.9068905956085187, + 6.9188632372745955, + 6.9307373375628867, + 6.9425145053392399, + 6.9541963103868758, + 6.9657842846620879, + 6.9772799234999168, + 6.9886846867721664, + 7.0000000000000000, + 7.0112272554232540, + 7.0223678130284544, + 7.0334230015374501, + 7.0443941193584534, + 7.0552824355011898, + 7.0660891904577721, + 7.0768155970508317, + 7.0874628412503400, + 7.0980320829605272, + 7.1085244567781700, + 7.1189410727235076, + 7.1292830169449664, + 7.1395513523987937, + 7.1497471195046822, + 7.1598713367783891, + 7.1699250014423130, + 7.1799090900149345, + 7.1898245588800176, + 7.1996723448363644, + 7.2094533656289492, + 7.2191685204621621, + 7.2288186904958804, + 7.2384047393250794, + 7.2479275134435861, + 7.2573878426926521, + 7.2667865406949019, + 7.2761244052742384, + 7.2854022188622487, + 7.2946207488916270, + 7.3037807481771031, + 7.3128829552843557, + 7.3219280948873617, + 7.3309168781146177, + 7.3398500028846243, + 7.3487281542310781, + 7.3575520046180847, + 7.3663222142458151, + 7.3750394313469254, + 7.3837042924740528, + 7.3923174227787607, + 7.4008794362821844, + 7.4093909361377026, + 7.4178525148858991, + 7.4262647547020979, + 7.4346282276367255, + 7.4429434958487288, + 7.4512111118323299, + 7.4594316186372973, + 7.4676055500829976, + 7.4757334309663976, + 7.4838157772642564, + 7.4918530963296748, + 7.4998458870832057, + 7.5077946401986964, + 7.5156998382840436, + 7.5235619560570131, + 7.5313814605163119, + 7.5391588111080319, + 7.5468944598876373, + 7.5545888516776376, + 7.5622424242210728, + 7.5698556083309478, + 7.5774288280357487, + 7.5849625007211561, + 7.5924570372680806, + 7.5999128421871278, + 7.6073303137496113, + 7.6147098441152075, + 7.6220518194563764, + 7.6293566200796095, + 7.6366246205436488, + 7.6438561897747244, + 7.6510516911789290, + 7.6582114827517955, + 7.6653359171851765, + 7.6724253419714952, + 7.6794800995054464, + 7.6865005271832185, + 7.6934869574993252, + 7.7004397181410926, + 7.7073591320808825, + 7.7142455176661224, + 7.7210991887071856, + 7.7279204545631996, + 7.7347096202258392, + 7.7414669864011465, + 7.7481928495894596, + 7.7548875021634691, + 7.7615512324444795, + 7.7681843247769260, + 7.7747870596011737, + 7.7813597135246608, + 7.7879025593914317, + 7.7944158663501062, + 7.8008998999203047, + 7.8073549220576037, + 7.8137811912170374, + 7.8201789624151887, + 7.8265484872909159, + 7.8328900141647422, + 7.8392037880969445, + 7.8454900509443757, + 7.8517490414160571, + 7.8579809951275719, + 7.8641861446542798, + 7.8703647195834048, + 7.8765169465650002, + 7.8826430493618425, + 7.8887432488982601, + 7.8948177633079446, + 7.9008668079807496, + 7.9068905956085187, + 7.9128893362299619, + 7.9188632372745955, + 7.9248125036057813, + 7.9307373375628867, + 7.9366379390025719, + 7.9425145053392399, + 7.9483672315846778, + 7.9541963103868758, + 7.9600019320680806, + 7.9657842846620870, + 7.9715435539507720, + 7.9772799234999168, + 7.9829935746943104, + 7.9886846867721664, + 7.9943534368588578, +} + +/* Faster logarithm for small integers, with the property of log2(0) == 0. */ +func fastLog2(v uint) float64 { + if v < uint(len(kLog2Table)) { + return float64(kLog2Table[v]) + } + + return math.Log2(float64(v)) +} diff --git a/vendor/github.com/andybalholm/brotli/find_match_length.go b/vendor/github.com/andybalholm/brotli/find_match_length.go new file mode 100644 index 0000000..09d2ae6 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/find_match_length.go @@ -0,0 +1,45 @@ +package brotli + +import ( + "encoding/binary" + "math/bits" + "runtime" +) + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function to find maximal matching prefixes of strings. */ +func findMatchLengthWithLimit(s1 []byte, s2 []byte, limit uint) uint { + var matched uint = 0 + _, _ = s1[limit-1], s2[limit-1] // bounds check + switch runtime.GOARCH { + case "amd64": + // Compare 8 bytes at at time. + for matched+8 <= limit { + w1 := binary.LittleEndian.Uint64(s1[matched:]) + w2 := binary.LittleEndian.Uint64(s2[matched:]) + if w1 != w2 { + return matched + uint(bits.TrailingZeros64(w1^w2)>>3) + } + matched += 8 + } + case "386": + // Compare 4 bytes at at time. + for matched+4 <= limit { + w1 := binary.LittleEndian.Uint32(s1[matched:]) + w2 := binary.LittleEndian.Uint32(s2[matched:]) + if w1 != w2 { + return matched + uint(bits.TrailingZeros32(w1^w2)>>3) + } + matched += 4 + } + } + for matched < limit && s1[matched] == s2[matched] { + matched++ + } + return matched +} diff --git a/vendor/github.com/andybalholm/brotli/h10.go b/vendor/github.com/andybalholm/brotli/h10.go new file mode 100644 index 0000000..5662fbb --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/h10.go @@ -0,0 +1,287 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func (*h10) HashTypeLength() uint { + return 4 +} + +func (*h10) StoreLookahead() uint { + return 128 +} + +func hashBytesH10(data []byte) uint32 { + var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - 17) +} + +/* A (forgetful) hash table where each hash bucket contains a binary tree of + sequences whose first 4 bytes share the same hash code. + Each sequence is 128 long and is identified by its starting + position in the input data. The binary tree is sorted by the lexicographic + order of the sequences, and it is also a max-heap with respect to the + starting positions. */ +type h10 struct { + hasherCommon + window_mask_ uint + buckets_ [1 << 17]uint32 + invalid_pos_ uint32 + forest []uint32 +} + +func (h *h10) Initialize(params *encoderParams) { + h.window_mask_ = (1 << params.lgwin) - 1 + h.invalid_pos_ = uint32(0 - h.window_mask_) + var num_nodes uint = uint(1) << params.lgwin + h.forest = make([]uint32, 2*num_nodes) +} + +func (h *h10) Prepare(one_shot bool, input_size uint, data []byte) { + var invalid_pos uint32 = h.invalid_pos_ + var i uint32 + for i = 0; i < 1<<17; i++ { + h.buckets_[i] = invalid_pos + } +} + +func leftChildIndexH10(self *h10, pos uint) uint { + return 2 * (pos & self.window_mask_) +} + +func rightChildIndexH10(self *h10, pos uint) uint { + return 2*(pos&self.window_mask_) + 1 +} + +/* Stores the hash of the next 4 bytes and in a single tree-traversal, the + hash bucket's binary tree is searched for matches and is re-rooted at the + current position. + + If less than 128 data is available, the hash bucket of the + current position is searched for matches, but the state of the hash table + is not changed, since we can not know the final sorting order of the + current (incomplete) sequence. + + This function must be called with increasing cur_ix positions. */ +func storeAndFindMatchesH10(self *h10, data []byte, cur_ix uint, ring_buffer_mask uint, max_length uint, max_backward uint, best_len *uint, matches []backwardMatch) []backwardMatch { + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var max_comp_len uint = brotli_min_size_t(max_length, 128) + var should_reroot_tree bool = (max_length >= 128) + var key uint32 = hashBytesH10(data[cur_ix_masked:]) + var forest []uint32 = self.forest + var prev_ix uint = uint(self.buckets_[key]) + var node_left uint = leftChildIndexH10(self, cur_ix) + var node_right uint = rightChildIndexH10(self, cur_ix) + var best_len_left uint = 0 + var best_len_right uint = 0 + var depth_remaining uint + /* The forest index of the rightmost node of the left subtree of the new + root, updated as we traverse and re-root the tree of the hash bucket. */ + + /* The forest index of the leftmost node of the right subtree of the new + root, updated as we traverse and re-root the tree of the hash bucket. */ + + /* The match length of the rightmost node of the left subtree of the new + root, updated as we traverse and re-root the tree of the hash bucket. */ + + /* The match length of the leftmost node of the right subtree of the new + root, updated as we traverse and re-root the tree of the hash bucket. */ + if should_reroot_tree { + self.buckets_[key] = uint32(cur_ix) + } + + for depth_remaining = 64; ; depth_remaining-- { + var backward uint = cur_ix - prev_ix + var prev_ix_masked uint = prev_ix & ring_buffer_mask + if backward == 0 || backward > max_backward || depth_remaining == 0 { + if should_reroot_tree { + forest[node_left] = self.invalid_pos_ + forest[node_right] = self.invalid_pos_ + } + + break + } + { + var cur_len uint = brotli_min_size_t(best_len_left, best_len_right) + var len uint + assert(cur_len <= 128) + len = cur_len + findMatchLengthWithLimit(data[cur_ix_masked+cur_len:], data[prev_ix_masked+cur_len:], max_length-cur_len) + if matches != nil && len > *best_len { + *best_len = uint(len) + initBackwardMatch(&matches[0], backward, uint(len)) + matches = matches[1:] + } + + if len >= max_comp_len { + if should_reroot_tree { + forest[node_left] = forest[leftChildIndexH10(self, prev_ix)] + forest[node_right] = forest[rightChildIndexH10(self, prev_ix)] + } + + break + } + + if data[cur_ix_masked+len] > data[prev_ix_masked+len] { + best_len_left = uint(len) + if should_reroot_tree { + forest[node_left] = uint32(prev_ix) + } + + node_left = rightChildIndexH10(self, prev_ix) + prev_ix = uint(forest[node_left]) + } else { + best_len_right = uint(len) + if should_reroot_tree { + forest[node_right] = uint32(prev_ix) + } + + node_right = leftChildIndexH10(self, prev_ix) + prev_ix = uint(forest[node_right]) + } + } + } + + return matches +} + +/* Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the + length of max_length and stores the position cur_ix in the hash table. + + Sets *num_matches to the number of matches found, and stores the found + matches in matches[0] to matches[*num_matches - 1]. The matches will be + sorted by strictly increasing length and (non-strictly) increasing + distance. */ +func findAllMatchesH10(handle *h10, dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, cur_ix uint, max_length uint, max_backward uint, gap uint, params *encoderParams, matches []backwardMatch) uint { + var orig_matches []backwardMatch = matches + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var best_len uint = 1 + var short_match_max_backward uint + if params.quality != hqZopflificationQuality { + short_match_max_backward = 16 + } else { + short_match_max_backward = 64 + } + var stop uint = cur_ix - short_match_max_backward + var dict_matches [maxStaticDictionaryMatchLen + 1]uint32 + var i uint + if cur_ix < short_match_max_backward { + stop = 0 + } + for i = cur_ix - 1; i > stop && best_len <= 2; i-- { + var prev_ix uint = i + var backward uint = cur_ix - prev_ix + if backward > max_backward { + break + } + + prev_ix &= ring_buffer_mask + if data[cur_ix_masked] != data[prev_ix] || data[cur_ix_masked+1] != data[prev_ix+1] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len > best_len { + best_len = uint(len) + initBackwardMatch(&matches[0], backward, uint(len)) + matches = matches[1:] + } + } + } + + if best_len < max_length { + matches = storeAndFindMatchesH10(handle, data, cur_ix, ring_buffer_mask, max_length, max_backward, &best_len, matches) + } + + for i = 0; i <= maxStaticDictionaryMatchLen; i++ { + dict_matches[i] = kInvalidMatch + } + { + var minlen uint = brotli_max_size_t(4, best_len+1) + if findAllStaticDictionaryMatches(dictionary, data[cur_ix_masked:], minlen, max_length, dict_matches[0:]) { + var maxlen uint = brotli_min_size_t(maxStaticDictionaryMatchLen, max_length) + var l uint + for l = minlen; l <= maxlen; l++ { + var dict_id uint32 = dict_matches[l] + if dict_id < kInvalidMatch { + var distance uint = max_backward + gap + uint(dict_id>>5) + 1 + if distance <= params.dist.max_distance { + initDictionaryBackwardMatch(&matches[0], distance, l, uint(dict_id&31)) + matches = matches[1:] + } + } + } + } + } + + return uint(-cap(matches) + cap(orig_matches)) +} + +/* Stores the hash of the next 4 bytes and re-roots the binary tree at the + current sequence, without returning any matches. + REQUIRES: ix + 128 <= end-of-current-block */ +func (h *h10) Store(data []byte, mask uint, ix uint) { + var max_backward uint = h.window_mask_ - windowGap + 1 + /* Maximum distance is window size - 16, see section 9.1. of the spec. */ + storeAndFindMatchesH10(h, data, ix, mask, 128, max_backward, nil, nil) +} + +func (h *h10) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { + var i uint = ix_start + var j uint = ix_start + if ix_start+63 <= ix_end { + i = ix_end - 63 + } + + if ix_start+512 <= i { + for ; j < i; j += 8 { + h.Store(data, mask, j) + } + } + + for ; i < ix_end; i++ { + h.Store(data, mask, i) + } +} + +func (h *h10) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { + if num_bytes >= h.HashTypeLength()-1 && position >= 128 { + var i_start uint = position - 128 + 1 + var i_end uint = brotli_min_size_t(position, i_start+num_bytes) + /* Store the last `128 - 1` positions in the hasher. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + + var i uint + for i = i_start; i < i_end; i++ { + /* Maximum distance is window size - 16, see section 9.1. of the spec. + Furthermore, we have to make sure that we don't look further back + from the start of the next block than the window size, otherwise we + could access already overwritten areas of the ring-buffer. */ + var max_backward uint = h.window_mask_ - brotli_max_size_t(windowGap-1, position-i) + + /* We know that i + 128 <= position + num_bytes, i.e. the + end of the current block and that we have at least + 128 tail in the ring-buffer. */ + storeAndFindMatchesH10(h, ringbuffer, i, ringbuffer_mask, 128, max_backward, nil, nil) + } + } +} + +/* MAX_NUM_MATCHES == 64 + MAX_TREE_SEARCH_DEPTH */ +const maxNumMatchesH10 = 128 + +func (*h10) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + panic("unimplemented") +} + +func (*h10) PrepareDistanceCache(distance_cache []int) { + panic("unimplemented") +} diff --git a/vendor/github.com/andybalholm/brotli/h5.go b/vendor/github.com/andybalholm/brotli/h5.go new file mode 100644 index 0000000..f391b73 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/h5.go @@ -0,0 +1,214 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + This is a hash map of fixed size (bucket_size_) to a ring buffer of + fixed size (block_size_). The ring buffer contains the last block_size_ + index positions of the given hash key in the compressed data. */ +func (*h5) HashTypeLength() uint { + return 4 +} + +func (*h5) StoreLookahead() uint { + return 4 +} + +/* HashBytes is the function that chooses the bucket to place the address in. */ +func hashBytesH5(data []byte, shift int) uint32 { + var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return uint32(h >> uint(shift)) +} + +type h5 struct { + hasherCommon + bucket_size_ uint + block_size_ uint + hash_shift_ int + block_mask_ uint32 + num []uint16 + buckets []uint32 +} + +func (h *h5) Initialize(params *encoderParams) { + h.hash_shift_ = 32 - h.params.bucket_bits + h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) + h.block_size_ = uint(1) << uint(h.params.block_bits) + h.block_mask_ = uint32(h.block_size_ - 1) + h.num = make([]uint16, h.bucket_size_) + h.buckets = make([]uint32, h.block_size_*h.bucket_size_) +} + +func (h *h5) Prepare(one_shot bool, input_size uint, data []byte) { + var num []uint16 = h.num + var partial_prepare_threshold uint = h.bucket_size_ >> 6 + /* Partial preparation is 100 times slower (per socket). */ + if one_shot && input_size <= partial_prepare_threshold { + var i uint + for i = 0; i < input_size; i++ { + var key uint32 = hashBytesH5(data[i:], h.hash_shift_) + num[key] = 0 + } + } else { + for i := 0; i < int(h.bucket_size_); i++ { + num[i] = 0 + } + } +} + +/* Look at 4 bytes at &data[ix & mask]. + Compute a hash from these, and store the value of ix at that position. */ +func (h *h5) Store(data []byte, mask uint, ix uint) { + var num []uint16 = h.num + var key uint32 = hashBytesH5(data[ix&mask:], h.hash_shift_) + var minor_ix uint = uint(num[key]) & uint(h.block_mask_) + var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + h.Store(ringbuffer, ringbuffer_mask, position-3) + h.Store(ringbuffer, ringbuffer_mask, position-2) + h.Store(ringbuffer, ringbuffer_mask, position-1) + } +} + +func (h *h5) PrepareDistanceCache(distance_cache []int) { + prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) +} + +/* Find a longest backward match of &data[cur_ix] up to the length of + max_length and stores the position cur_ix in the hash table. + + REQUIRES: PrepareDistanceCacheH5 must be invoked for current distance cache + values; if this method is invoked repeatedly with the same distance + cache values, it is enough to invoke PrepareDistanceCacheH5 once. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + |out|->score is updated only if a better match is found. */ +func (h *h5) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + var num []uint16 = h.num + var buckets []uint32 = h.buckets + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var min_score uint = out.score + var best_score uint = out.score + var best_len uint = out.len + var i uint + var bucket []uint32 + /* Don't accept a short copy from far away. */ + out.len = 0 + + out.len_code_delta = 0 + + /* Try last distance first. */ + for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { + var backward uint = uint(distance_cache[i]) + var prev_ix uint = uint(cur_ix - backward) + if prev_ix >= cur_ix { + continue + } + + if backward > max_backward { + continue + } + + prev_ix &= ring_buffer_mask + + if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 3 || (len == 2 && i < 2) { + /* Comparing for >= 2 does not change the semantics, but just saves for + a few unnecessary binary logarithms in backward reference score, + since we are not interested in such short matches. */ + var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) + if best_score < score { + if i != 0 { + score -= backwardReferencePenaltyUsingLastDistance(i) + } + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + } + { + var key uint32 = hashBytesH5(data[cur_ix_masked:], h.hash_shift_) + bucket = buckets[key< h.block_size_ { + down = uint(num[key]) - h.block_size_ + } else { + down = 0 + } + for i = uint(num[key]); i > down; { + var prev_ix uint + i-- + prev_ix = uint(bucket[uint32(i)&h.block_mask_]) + var backward uint = cur_ix - prev_ix + if backward > max_backward { + break + } + + prev_ix &= ring_buffer_mask + if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + /* Comparing for >= 3 does not change the semantics, but just saves + for a few unnecessary binary logarithms in backward reference + score, since we are not interested in such short matches. */ + var score uint = backwardReferenceScore(uint(len), backward) + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + + bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) + num[key]++ + } + + if min_score == out.score { + searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) + } +} diff --git a/vendor/github.com/andybalholm/brotli/h6.go b/vendor/github.com/andybalholm/brotli/h6.go new file mode 100644 index 0000000..80bb224 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/h6.go @@ -0,0 +1,216 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + This is a hash map of fixed size (bucket_size_) to a ring buffer of + fixed size (block_size_). The ring buffer contains the last block_size_ + index positions of the given hash key in the compressed data. */ +func (*h6) HashTypeLength() uint { + return 8 +} + +func (*h6) StoreLookahead() uint { + return 8 +} + +/* HashBytes is the function that chooses the bucket to place the address in. */ +func hashBytesH6(data []byte, mask uint64, shift int) uint32 { + var h uint64 = (binary.LittleEndian.Uint64(data) & mask) * kHashMul64Long + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return uint32(h >> uint(shift)) +} + +type h6 struct { + hasherCommon + bucket_size_ uint + block_size_ uint + hash_shift_ int + hash_mask_ uint64 + block_mask_ uint32 + num []uint16 + buckets []uint32 +} + +func (h *h6) Initialize(params *encoderParams) { + h.hash_shift_ = 64 - h.params.bucket_bits + h.hash_mask_ = (^(uint64(0))) >> uint(64-8*h.params.hash_len) + h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) + h.block_size_ = uint(1) << uint(h.params.block_bits) + h.block_mask_ = uint32(h.block_size_ - 1) + h.num = make([]uint16, h.bucket_size_) + h.buckets = make([]uint32, h.block_size_*h.bucket_size_) +} + +func (h *h6) Prepare(one_shot bool, input_size uint, data []byte) { + var num []uint16 = h.num + var partial_prepare_threshold uint = h.bucket_size_ >> 6 + /* Partial preparation is 100 times slower (per socket). */ + if one_shot && input_size <= partial_prepare_threshold { + var i uint + for i = 0; i < input_size; i++ { + var key uint32 = hashBytesH6(data[i:], h.hash_mask_, h.hash_shift_) + num[key] = 0 + } + } else { + for i := 0; i < int(h.bucket_size_); i++ { + num[i] = 0 + } + } +} + +/* Look at 4 bytes at &data[ix & mask]. + Compute a hash from these, and store the value of ix at that position. */ +func (h *h6) Store(data []byte, mask uint, ix uint) { + var num []uint16 = h.num + var key uint32 = hashBytesH6(data[ix&mask:], h.hash_mask_, h.hash_shift_) + var minor_ix uint = uint(num[key]) & uint(h.block_mask_) + var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + h.Store(ringbuffer, ringbuffer_mask, position-3) + h.Store(ringbuffer, ringbuffer_mask, position-2) + h.Store(ringbuffer, ringbuffer_mask, position-1) + } +} + +func (h *h6) PrepareDistanceCache(distance_cache []int) { + prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) +} + +/* Find a longest backward match of &data[cur_ix] up to the length of + max_length and stores the position cur_ix in the hash table. + + REQUIRES: PrepareDistanceCacheH6 must be invoked for current distance cache + values; if this method is invoked repeatedly with the same distance + cache values, it is enough to invoke PrepareDistanceCacheH6 once. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + |out|->score is updated only if a better match is found. */ +func (h *h6) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + var num []uint16 = h.num + var buckets []uint32 = h.buckets + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var min_score uint = out.score + var best_score uint = out.score + var best_len uint = out.len + var i uint + var bucket []uint32 + /* Don't accept a short copy from far away. */ + out.len = 0 + + out.len_code_delta = 0 + + /* Try last distance first. */ + for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { + var backward uint = uint(distance_cache[i]) + var prev_ix uint = uint(cur_ix - backward) + if prev_ix >= cur_ix { + continue + } + + if backward > max_backward { + continue + } + + prev_ix &= ring_buffer_mask + + if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 3 || (len == 2 && i < 2) { + /* Comparing for >= 2 does not change the semantics, but just saves for + a few unnecessary binary logarithms in backward reference score, + since we are not interested in such short matches. */ + var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) + if best_score < score { + if i != 0 { + score -= backwardReferencePenaltyUsingLastDistance(i) + } + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + } + { + var key uint32 = hashBytesH6(data[cur_ix_masked:], h.hash_mask_, h.hash_shift_) + bucket = buckets[key< h.block_size_ { + down = uint(num[key]) - h.block_size_ + } else { + down = 0 + } + for i = uint(num[key]); i > down; { + var prev_ix uint + i-- + prev_ix = uint(bucket[uint32(i)&h.block_mask_]) + var backward uint = cur_ix - prev_ix + if backward > max_backward { + break + } + + prev_ix &= ring_buffer_mask + if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + /* Comparing for >= 3 does not change the semantics, but just saves + for a few unnecessary binary logarithms in backward reference + score, since we are not interested in such short matches. */ + var score uint = backwardReferenceScore(uint(len), backward) + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + + bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) + num[key]++ + } + + if min_score == out.score { + searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) + } +} diff --git a/vendor/github.com/andybalholm/brotli/hash.go b/vendor/github.com/andybalholm/brotli/hash.go new file mode 100644 index 0000000..00f812e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/hash.go @@ -0,0 +1,342 @@ +package brotli + +import ( + "encoding/binary" + "fmt" +) + +type hasherCommon struct { + params hasherParams + is_prepared_ bool + dict_num_lookups uint + dict_num_matches uint +} + +func (h *hasherCommon) Common() *hasherCommon { + return h +} + +type hasherHandle interface { + Common() *hasherCommon + Initialize(params *encoderParams) + Prepare(one_shot bool, input_size uint, data []byte) + StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) + HashTypeLength() uint + StoreLookahead() uint + PrepareDistanceCache(distance_cache []int) + FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) + StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) + Store(data []byte, mask uint, ix uint) +} + +const kCutoffTransformsCount uint32 = 10 + +/* 0, 12, 27, 23, 42, 63, 56, 48, 59, 64 */ +/* 0+0, 4+8, 8+19, 12+11, 16+26, 20+43, 24+32, 28+20, 32+27, 36+28 */ +const kCutoffTransforms uint64 = 0x071B520ADA2D3200 + +type hasherSearchResult struct { + len uint + distance uint + score uint + len_code_delta int +} + +/* kHashMul32 multiplier has these properties: + * The multiplier must be odd. Otherwise we may lose the highest bit. + * No long streaks of ones or zeros. + * There is no effort to ensure that it is a prime, the oddity is enough + for this use. + * The number has been tuned heuristically against compression benchmarks. */ +const kHashMul32 uint32 = 0x1E35A7BD + +const kHashMul64 uint64 = 0x1E35A7BD1E35A7BD + +const kHashMul64Long uint64 = 0x1FE35A7BD3579BD3 + +func hash14(data []byte) uint32 { + var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - 14) +} + +func prepareDistanceCache(distance_cache []int, num_distances int) { + if num_distances > 4 { + var last_distance int = distance_cache[0] + distance_cache[4] = last_distance - 1 + distance_cache[5] = last_distance + 1 + distance_cache[6] = last_distance - 2 + distance_cache[7] = last_distance + 2 + distance_cache[8] = last_distance - 3 + distance_cache[9] = last_distance + 3 + if num_distances > 10 { + var next_last_distance int = distance_cache[1] + distance_cache[10] = next_last_distance - 1 + distance_cache[11] = next_last_distance + 1 + distance_cache[12] = next_last_distance - 2 + distance_cache[13] = next_last_distance + 2 + distance_cache[14] = next_last_distance - 3 + distance_cache[15] = next_last_distance + 3 + } + } +} + +const literalByteScore = 135 + +const distanceBitPenalty = 30 + +/* Score must be positive after applying maximal penalty. */ +const scoreBase = (distanceBitPenalty * 8 * 8) + +/* Usually, we always choose the longest backward reference. This function + allows for the exception of that rule. + + If we choose a backward reference that is further away, it will + usually be coded with more bits. We approximate this by assuming + log2(distance). If the distance can be expressed in terms of the + last four distances, we use some heuristic constants to estimate + the bits cost. For the first up to four literals we use the bit + cost of the literals from the literal cost model, after that we + use the average bit cost of the cost model. + + This function is used to sometimes discard a longer backward reference + when it is not much longer and the bit cost for encoding it is more + than the saved literals. + + backward_reference_offset MUST be positive. */ +func backwardReferenceScore(copy_length uint, backward_reference_offset uint) uint { + return scoreBase + literalByteScore*uint(copy_length) - distanceBitPenalty*uint(log2FloorNonZero(backward_reference_offset)) +} + +func backwardReferenceScoreUsingLastDistance(copy_length uint) uint { + return literalByteScore*uint(copy_length) + scoreBase + 15 +} + +func backwardReferencePenaltyUsingLastDistance(distance_short_code uint) uint { + return uint(39) + ((0x1CA10 >> (distance_short_code & 0xE)) & 0xE) +} + +func testStaticDictionaryItem(dictionary *encoderDictionary, item uint, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult) bool { + var len uint + var word_idx uint + var offset uint + var matchlen uint + var backward uint + var score uint + len = item & 0x1F + word_idx = item >> 5 + offset = uint(dictionary.words.offsets_by_length[len]) + len*word_idx + if len > max_length { + return false + } + + matchlen = findMatchLengthWithLimit(data, dictionary.words.data[offset:], uint(len)) + if matchlen+uint(dictionary.cutoffTransformsCount) <= len || matchlen == 0 { + return false + } + { + var cut uint = len - matchlen + var transform_id uint = (cut << 2) + uint((dictionary.cutoffTransforms>>(cut*6))&0x3F) + backward = max_backward + 1 + word_idx + (transform_id << dictionary.words.size_bits_by_length[len]) + } + + if backward > max_distance { + return false + } + + score = backwardReferenceScore(matchlen, backward) + if score < out.score { + return false + } + + out.len = matchlen + out.len_code_delta = int(len) - int(matchlen) + out.distance = backward + out.score = score + return true +} + +func searchInStaticDictionary(dictionary *encoderDictionary, handle hasherHandle, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult, shallow bool) { + var key uint + var i uint + var self *hasherCommon = handle.Common() + if self.dict_num_matches < self.dict_num_lookups>>7 { + return + } + + key = uint(hash14(data) << 1) + for i = 0; ; (func() { i++; key++ })() { + var tmp uint + if shallow { + tmp = 1 + } else { + tmp = 2 + } + if i >= tmp { + break + } + var item uint = uint(dictionary.hash_table[key]) + self.dict_num_lookups++ + if item != 0 { + var item_matches bool = testStaticDictionaryItem(dictionary, item, data, max_length, max_backward, max_distance, out) + if item_matches { + self.dict_num_matches++ + } + } + } +} + +type backwardMatch struct { + distance uint32 + length_and_code uint32 +} + +func initBackwardMatch(self *backwardMatch, dist uint, len uint) { + self.distance = uint32(dist) + self.length_and_code = uint32(len << 5) +} + +func initDictionaryBackwardMatch(self *backwardMatch, dist uint, len uint, len_code uint) { + self.distance = uint32(dist) + var tmp uint + if len == len_code { + tmp = 0 + } else { + tmp = len_code + } + self.length_and_code = uint32(len<<5 | tmp) +} + +func backwardMatchLength(self *backwardMatch) uint { + return uint(self.length_and_code >> 5) +} + +func backwardMatchLengthCode(self *backwardMatch) uint { + var code uint = uint(self.length_and_code) & 31 + if code != 0 { + return code + } else { + return backwardMatchLength(self) + } +} + +func hasherReset(handle hasherHandle) { + if handle == nil { + return + } + handle.Common().is_prepared_ = false +} + +func newHasher(typ int) hasherHandle { + switch typ { + case 2: + return &hashLongestMatchQuickly{ + bucketBits: 16, + bucketSweep: 1, + hashLen: 5, + useDictionary: true, + } + case 3: + return &hashLongestMatchQuickly{ + bucketBits: 16, + bucketSweep: 2, + hashLen: 5, + useDictionary: false, + } + case 4: + return &hashLongestMatchQuickly{ + bucketBits: 17, + bucketSweep: 4, + hashLen: 5, + useDictionary: true, + } + case 5: + return new(h5) + case 6: + return new(h6) + case 10: + return new(h10) + case 35: + return &hashComposite{ + ha: newHasher(3), + hb: &hashRolling{jump: 4}, + } + case 40: + return &hashForgetfulChain{ + bucketBits: 15, + numBanks: 1, + bankBits: 16, + numLastDistancesToCheck: 4, + } + case 41: + return &hashForgetfulChain{ + bucketBits: 15, + numBanks: 1, + bankBits: 16, + numLastDistancesToCheck: 10, + } + case 42: + return &hashForgetfulChain{ + bucketBits: 15, + numBanks: 512, + bankBits: 9, + numLastDistancesToCheck: 16, + } + case 54: + return &hashLongestMatchQuickly{ + bucketBits: 20, + bucketSweep: 4, + hashLen: 7, + useDictionary: false, + } + case 55: + return &hashComposite{ + ha: newHasher(54), + hb: &hashRolling{jump: 4}, + } + case 65: + return &hashComposite{ + ha: newHasher(6), + hb: &hashRolling{jump: 1}, + } + } + + panic(fmt.Sprintf("unknown hasher type: %d", typ)) +} + +func hasherSetup(handle *hasherHandle, params *encoderParams, data []byte, position uint, input_size uint, is_last bool) { + var self hasherHandle = nil + var common *hasherCommon = nil + var one_shot bool = (position == 0 && is_last) + if *handle == nil { + chooseHasher(params, ¶ms.hasher) + self = newHasher(params.hasher.type_) + + *handle = self + common = self.Common() + common.params = params.hasher + self.Initialize(params) + } + + self = *handle + common = self.Common() + if !common.is_prepared_ { + self.Prepare(one_shot, input_size, data) + + if position == 0 { + common.dict_num_lookups = 0 + common.dict_num_matches = 0 + } + + common.is_prepared_ = true + } +} + +func initOrStitchToPreviousBlock(handle *hasherHandle, data []byte, mask uint, params *encoderParams, position uint, input_size uint, is_last bool) { + var self hasherHandle + hasherSetup(handle, params, data, position, input_size, is_last) + self = *handle + self.StitchToPreviousBlock(input_size, position, data, mask) +} diff --git a/vendor/github.com/andybalholm/brotli/hash_composite.go b/vendor/github.com/andybalholm/brotli/hash_composite.go new file mode 100644 index 0000000..a65fe2e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/hash_composite.go @@ -0,0 +1,93 @@ +package brotli + +/* Copyright 2018 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func (h *hashComposite) HashTypeLength() uint { + var a uint = h.ha.HashTypeLength() + var b uint = h.hb.HashTypeLength() + if a > b { + return a + } else { + return b + } +} + +func (h *hashComposite) StoreLookahead() uint { + var a uint = h.ha.StoreLookahead() + var b uint = h.hb.StoreLookahead() + if a > b { + return a + } else { + return b + } +} + +/* Composite hasher: This hasher allows to combine two other hashers, HASHER_A + and HASHER_B. */ +type hashComposite struct { + hasherCommon + ha hasherHandle + hb hasherHandle + params *encoderParams +} + +func (h *hashComposite) Initialize(params *encoderParams) { + h.params = params +} + +/* TODO: Initialize of the hashers is defered to Prepare (and params + remembered here) because we don't get the one_shot and input_size params + here that are needed to know the memory size of them. Instead provide + those params to all hashers InitializehashComposite */ +func (h *hashComposite) Prepare(one_shot bool, input_size uint, data []byte) { + if h.ha == nil { + var common_a *hasherCommon + var common_b *hasherCommon + + common_a = h.ha.Common() + common_a.params = h.params.hasher + common_a.is_prepared_ = false + common_a.dict_num_lookups = 0 + common_a.dict_num_matches = 0 + h.ha.Initialize(h.params) + + common_b = h.hb.Common() + common_b.params = h.params.hasher + common_b.is_prepared_ = false + common_b.dict_num_lookups = 0 + common_b.dict_num_matches = 0 + h.hb.Initialize(h.params) + } + + h.ha.Prepare(one_shot, input_size, data) + h.hb.Prepare(one_shot, input_size, data) +} + +func (h *hashComposite) Store(data []byte, mask uint, ix uint) { + h.ha.Store(data, mask, ix) + h.hb.Store(data, mask, ix) +} + +func (h *hashComposite) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { + h.ha.StoreRange(data, mask, ix_start, ix_end) + h.hb.StoreRange(data, mask, ix_start, ix_end) +} + +func (h *hashComposite) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { + h.ha.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) + h.hb.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) +} + +func (h *hashComposite) PrepareDistanceCache(distance_cache []int) { + h.ha.PrepareDistanceCache(distance_cache) + h.hb.PrepareDistanceCache(distance_cache) +} + +func (h *hashComposite) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + h.ha.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) + h.hb.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) +} diff --git a/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go b/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go new file mode 100644 index 0000000..306e46d --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go @@ -0,0 +1,252 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func (*hashForgetfulChain) HashTypeLength() uint { + return 4 +} + +func (*hashForgetfulChain) StoreLookahead() uint { + return 4 +} + +/* HashBytes is the function that chooses the bucket to place the address in.*/ +func (h *hashForgetfulChain) HashBytes(data []byte) uint { + var hash uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return uint(hash >> (32 - h.bucketBits)) +} + +type slot struct { + delta uint16 + next uint16 +} + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + Hashes are stored in chains which are bucketed to groups. Group of chains + share a storage "bank". When more than "bank size" chain nodes are added, + oldest nodes are replaced; this way several chains may share a tail. */ +type hashForgetfulChain struct { + hasherCommon + + bucketBits uint + numBanks uint + bankBits uint + numLastDistancesToCheck int + + addr []uint32 + head []uint16 + tiny_hash [65536]byte + banks [][]slot + free_slot_idx []uint16 + max_hops uint +} + +func (h *hashForgetfulChain) Initialize(params *encoderParams) { + var q uint + if params.quality > 6 { + q = 7 + } else { + q = 8 + } + h.max_hops = q << uint(params.quality-4) + + bankSize := 1 << h.bankBits + bucketSize := 1 << h.bucketBits + + h.addr = make([]uint32, bucketSize) + h.head = make([]uint16, bucketSize) + h.banks = make([][]slot, h.numBanks) + for i := range h.banks { + h.banks[i] = make([]slot, bankSize) + } + h.free_slot_idx = make([]uint16, h.numBanks) +} + +func (h *hashForgetfulChain) Prepare(one_shot bool, input_size uint, data []byte) { + var partial_prepare_threshold uint = (1 << h.bucketBits) >> 6 + /* Partial preparation is 100 times slower (per socket). */ + if one_shot && input_size <= partial_prepare_threshold { + var i uint + for i = 0; i < input_size; i++ { + var bucket uint = h.HashBytes(data[i:]) + + /* See InitEmpty comment. */ + h.addr[bucket] = 0xCCCCCCCC + + h.head[bucket] = 0xCCCC + } + } else { + /* Fill |addr| array with 0xCCCCCCCC value. Because of wrapping, position + processed by hasher never reaches 3GB + 64M; this makes all new chains + to be terminated after the first node. */ + for i := range h.addr { + h.addr[i] = 0xCCCCCCCC + } + + for i := range h.head { + h.head[i] = 0 + } + } + + h.tiny_hash = [65536]byte{} + for i := range h.free_slot_idx { + h.free_slot_idx[i] = 0 + } +} + +/* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and prepend + node to corresponding chain; also update tiny_hash for current position. */ +func (h *hashForgetfulChain) Store(data []byte, mask uint, ix uint) { + var key uint = h.HashBytes(data[ix&mask:]) + var bank uint = key & (h.numBanks - 1) + idx := uint(h.free_slot_idx[bank]) & ((1 << h.bankBits) - 1) + h.free_slot_idx[bank]++ + var delta uint = ix - uint(h.addr[key]) + h.tiny_hash[uint16(ix)] = byte(key) + if delta > 0xFFFF { + delta = 0xFFFF + } + h.banks[bank][idx].delta = uint16(delta) + h.banks[bank][idx].next = h.head[key] + h.addr[key] = uint32(ix) + h.head[key] = uint16(idx) +} + +func (h *hashForgetfulChain) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { + var i uint + for i = ix_start; i < ix_end; i++ { + h.Store(data, mask, i) + } +} + +func (h *hashForgetfulChain) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { + if num_bytes >= h.HashTypeLength()-1 && position >= 3 { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + h.Store(ringbuffer, ring_buffer_mask, position-3) + h.Store(ringbuffer, ring_buffer_mask, position-2) + h.Store(ringbuffer, ring_buffer_mask, position-1) + } +} + +func (h *hashForgetfulChain) PrepareDistanceCache(distance_cache []int) { + prepareDistanceCache(distance_cache, h.numLastDistancesToCheck) +} + +/* Find a longest backward match of &data[cur_ix] up to the length of + max_length and stores the position cur_ix in the hash table. + + REQUIRES: PrepareDistanceCachehashForgetfulChain must be invoked for current distance cache + values; if this method is invoked repeatedly with the same distance + cache values, it is enough to invoke PrepareDistanceCachehashForgetfulChain once. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + |out|->score is updated only if a better match is found. */ +func (h *hashForgetfulChain) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var min_score uint = out.score + var best_score uint = out.score + var best_len uint = out.len + var key uint = h.HashBytes(data[cur_ix_masked:]) + var tiny_hash byte = byte(key) + /* Don't accept a short copy from far away. */ + out.len = 0 + + out.len_code_delta = 0 + + /* Try last distance first. */ + for i := 0; i < h.numLastDistancesToCheck; i++ { + var backward uint = uint(distance_cache[i]) + var prev_ix uint = (cur_ix - backward) + + /* For distance code 0 we want to consider 2-byte matches. */ + if i > 0 && h.tiny_hash[uint16(prev_ix)] != tiny_hash { + continue + } + if prev_ix >= cur_ix || backward > max_backward { + continue + } + + prev_ix &= ring_buffer_mask + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 2 { + var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) + if best_score < score { + if i != 0 { + score -= backwardReferencePenaltyUsingLastDistance(uint(i)) + } + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + } + { + var bank uint = key & (h.numBanks - 1) + var backward uint = 0 + var hops uint = h.max_hops + var delta uint = cur_ix - uint(h.addr[key]) + var slot uint = uint(h.head[key]) + for { + tmp6 := hops + hops-- + if tmp6 == 0 { + break + } + var prev_ix uint + var last uint = slot + backward += delta + if backward > max_backward { + break + } + prev_ix = (cur_ix - backward) & ring_buffer_mask + slot = uint(h.banks[bank][last].next) + delta = uint(h.banks[bank][last].delta) + if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { + continue + } + { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + /* Comparing for >= 3 does not change the semantics, but just saves + for a few unnecessary binary logarithms in backward reference + score, since we are not interested in such short matches. */ + var score uint = backwardReferenceScore(uint(len), backward) + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = best_score + } + } + } + } + + h.Store(data, ring_buffer_mask, cur_ix) + } + + if out.score == min_score { + searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) + } +} diff --git a/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go b/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go new file mode 100644 index 0000000..9375dc1 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go @@ -0,0 +1,214 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* For BUCKET_SWEEP == 1, enabling the dictionary lookup makes compression + a little faster (0.5% - 1%) and it compresses 0.15% better on small text + and HTML inputs. */ + +func (*hashLongestMatchQuickly) HashTypeLength() uint { + return 8 +} + +func (*hashLongestMatchQuickly) StoreLookahead() uint { + return 8 +} + +/* HashBytes is the function that chooses the bucket to place + the address in. The HashLongestMatch and hashLongestMatchQuickly + classes have separate, different implementations of hashing. */ +func (h *hashLongestMatchQuickly) HashBytes(data []byte) uint32 { + var hash uint64 = ((binary.LittleEndian.Uint64(data) << (64 - 8*h.hashLen)) * kHashMul64) + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return uint32(hash >> (64 - h.bucketBits)) +} + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + This is a hash map of fixed size (1 << 16). Starting from the + given index, 1 buckets are used to store values of a key. */ +type hashLongestMatchQuickly struct { + hasherCommon + + bucketBits uint + bucketSweep int + hashLen uint + useDictionary bool + + buckets []uint32 +} + +func (h *hashLongestMatchQuickly) Initialize(params *encoderParams) { + h.buckets = make([]uint32, 1<> 7 + /* Partial preparation is 100 times slower (per socket). */ + if one_shot && input_size <= partial_prepare_threshold { + var i uint + for i = 0; i < input_size; i++ { + var key uint32 = h.HashBytes(data[i:]) + for j := 0; j < h.bucketSweep; j++ { + h.buckets[key+uint32(j)] = 0 + } + } + } else { + /* It is not strictly necessary to fill this buffer here, but + not filling will make the results of the compression stochastic + (but correct). This is because random data would cause the + system to find accidentally good backward references here and there. */ + for i := range h.buckets { + h.buckets[i] = 0 + } + } +} + +/* Look at 5 bytes at &data[ix & mask]. + Compute a hash from these, and store the value somewhere within + [ix .. ix+3]. */ +func (h *hashLongestMatchQuickly) Store(data []byte, mask uint, ix uint) { + var key uint32 = h.HashBytes(data[ix&mask:]) + var off uint32 = uint32(ix>>3) % uint32(h.bucketSweep) + /* Wiggle the value with the bucket sweep range. */ + h.buckets[key+off] = uint32(ix) +} + +func (h *hashLongestMatchQuickly) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { + var i uint + for i = ix_start; i < ix_end; i++ { + h.Store(data, mask, i) + } +} + +func (h *hashLongestMatchQuickly) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { + if num_bytes >= h.HashTypeLength()-1 && position >= 3 { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + h.Store(ringbuffer, ringbuffer_mask, position-3) + h.Store(ringbuffer, ringbuffer_mask, position-2) + h.Store(ringbuffer, ringbuffer_mask, position-1) + } +} + +func (*hashLongestMatchQuickly) PrepareDistanceCache(distance_cache []int) { +} + +/* Find a longest backward match of &data[cur_ix & ring_buffer_mask] + up to the length of max_length and stores the position cur_ix in the + hash table. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + |out|->score is updated only if a better match is found. */ +func (h *hashLongestMatchQuickly) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + var best_len_in uint = out.len + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var key uint32 = h.HashBytes(data[cur_ix_masked:]) + var compare_char int = int(data[cur_ix_masked+best_len_in]) + var min_score uint = out.score + var best_score uint = out.score + var best_len uint = best_len_in + var cached_backward uint = uint(distance_cache[0]) + var prev_ix uint = cur_ix - cached_backward + var bucket []uint32 + out.len_code_delta = 0 + if prev_ix < cur_ix { + prev_ix &= uint(uint32(ring_buffer_mask)) + if compare_char == int(data[prev_ix+best_len]) { + var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) + if best_score < score { + best_score = score + best_len = uint(len) + out.len = uint(len) + out.distance = cached_backward + out.score = best_score + compare_char = int(data[cur_ix_masked+best_len]) + if h.bucketSweep == 1 { + h.buckets[key] = uint32(cur_ix) + return + } + } + } + } + } + + if h.bucketSweep == 1 { + var backward uint + var len uint + + /* Only one to look for, don't bother to prepare for a loop. */ + prev_ix = uint(h.buckets[key]) + + h.buckets[key] = uint32(cur_ix) + backward = cur_ix - prev_ix + prev_ix &= uint(uint32(ring_buffer_mask)) + if compare_char != int(data[prev_ix+best_len_in]) { + return + } + + if backward == 0 || backward > max_backward { + return + } + + len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + var score uint = backwardReferenceScore(uint(len), backward) + if best_score < score { + out.len = uint(len) + out.distance = backward + out.score = score + return + } + } + } else { + bucket = h.buckets[key:] + var i int + prev_ix = uint(bucket[0]) + bucket = bucket[1:] + for i = 0; i < h.bucketSweep; (func() { i++; tmp3 := bucket; bucket = bucket[1:]; prev_ix = uint(tmp3[0]) })() { + var backward uint = cur_ix - prev_ix + var len uint + prev_ix &= uint(uint32(ring_buffer_mask)) + if compare_char != int(data[prev_ix+best_len]) { + continue + } + + if backward == 0 || backward > max_backward { + continue + } + + len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) + if len >= 4 { + var score uint = backwardReferenceScore(uint(len), backward) + if best_score < score { + best_score = score + best_len = uint(len) + out.len = best_len + out.distance = backward + out.score = score + compare_char = int(data[cur_ix_masked+best_len]) + } + } + } + } + + if h.useDictionary && min_score == out.score { + searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, true) + } + + h.buckets[key+uint32((cur_ix>>3)%uint(h.bucketSweep))] = uint32(cur_ix) +} diff --git a/vendor/github.com/andybalholm/brotli/hash_rolling.go b/vendor/github.com/andybalholm/brotli/hash_rolling.go new file mode 100644 index 0000000..6630fc0 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/hash_rolling.go @@ -0,0 +1,168 @@ +package brotli + +/* Copyright 2018 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* NOTE: this hasher does not search in the dictionary. It is used as + backup-hasher, the main hasher already searches in it. */ + +const kRollingHashMul32 uint32 = 69069 + +const kInvalidPosHashRolling uint32 = 0xffffffff + +/* This hasher uses a longer forward length, but returning a higher value here + will hurt compression by the main hasher when combined with a composite + hasher. The hasher tests for forward itself instead. */ +func (*hashRolling) HashTypeLength() uint { + return 4 +} + +func (*hashRolling) StoreLookahead() uint { + return 4 +} + +/* Computes a code from a single byte. A lookup table of 256 values could be + used, but simply adding 1 works about as good. */ +func (*hashRolling) HashByte(b byte) uint32 { + return uint32(b) + 1 +} + +func (h *hashRolling) HashRollingFunctionInitial(state uint32, add byte, factor uint32) uint32 { + return uint32(factor*state + h.HashByte(add)) +} + +func (h *hashRolling) HashRollingFunction(state uint32, add byte, rem byte, factor uint32, factor_remove uint32) uint32 { + return uint32(factor*state + h.HashByte(add) - factor_remove*h.HashByte(rem)) +} + +/* Rolling hash for long distance long string matches. Stores one position + per bucket, bucket key is computed over a long region. */ +type hashRolling struct { + hasherCommon + + jump int + + state uint32 + table []uint32 + next_ix uint + factor uint32 + factor_remove uint32 +} + +func (h *hashRolling) Initialize(params *encoderParams) { + h.state = 0 + h.next_ix = 0 + + h.factor = kRollingHashMul32 + + /* Compute the factor of the oldest byte to remove: factor**steps modulo + 0xffffffff (the multiplications rely on 32-bit overflow) */ + h.factor_remove = 1 + + for i := 0; i < 32; i += h.jump { + h.factor_remove *= h.factor + } + + h.table = make([]uint32, 16777216) + for i := 0; i < 16777216; i++ { + h.table[i] = kInvalidPosHashRolling + } +} + +func (h *hashRolling) Prepare(one_shot bool, input_size uint, data []byte) { + /* Too small size, cannot use this hasher. */ + if input_size < 32 { + return + } + h.state = 0 + for i := 0; i < 32; i += h.jump { + h.state = h.HashRollingFunctionInitial(h.state, data[i], h.factor) + } +} + +func (*hashRolling) Store(data []byte, mask uint, ix uint) { +} + +func (*hashRolling) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { +} + +func (h *hashRolling) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { + var position_masked uint + /* In this case we must re-initialize the hasher from scratch from the + current position. */ + + var available uint = num_bytes + if position&uint(h.jump-1) != 0 { + var diff uint = uint(h.jump) - (position & uint(h.jump-1)) + if diff > available { + available = 0 + } else { + available = available - diff + } + position += diff + } + + position_masked = position & ring_buffer_mask + + /* wrapping around ringbuffer not handled. */ + if available > ring_buffer_mask-position_masked { + available = ring_buffer_mask - position_masked + } + + h.Prepare(false, available, ringbuffer[position&ring_buffer_mask:]) + h.next_ix = position +} + +func (*hashRolling) PrepareDistanceCache(distance_cache []int) { +} + +func (h *hashRolling) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { + var cur_ix_masked uint = cur_ix & ring_buffer_mask + var pos uint = h.next_ix + + if cur_ix&uint(h.jump-1) != 0 { + return + } + + /* Not enough lookahead */ + if max_length < 32 { + return + } + + for pos = h.next_ix; pos <= cur_ix; pos += uint(h.jump) { + var code uint32 = h.state & ((16777216 * 64) - 1) + var rem byte = data[pos&ring_buffer_mask] + var add byte = data[(pos+32)&ring_buffer_mask] + var found_ix uint = uint(kInvalidPosHashRolling) + + h.state = h.HashRollingFunction(h.state, add, rem, h.factor, h.factor_remove) + + if code < 16777216 { + found_ix = uint(h.table[code]) + h.table[code] = uint32(pos) + if pos == cur_ix && uint32(found_ix) != kInvalidPosHashRolling { + /* The cast to 32-bit makes backward distances up to 4GB work even + if cur_ix is above 4GB, despite using 32-bit values in the table. */ + var backward uint = uint(uint32(cur_ix - found_ix)) + if backward <= max_backward { + var found_ix_masked uint = found_ix & ring_buffer_mask + var len uint = findMatchLengthWithLimit(data[found_ix_masked:], data[cur_ix_masked:], max_length) + if len >= 4 && len > out.len { + var score uint = backwardReferenceScore(uint(len), backward) + if score > out.score { + out.len = uint(len) + out.distance = backward + out.score = score + out.len_code_delta = 0 + } + } + } + } + } + } + + h.next_ix = cur_ix + uint(h.jump) +} diff --git a/vendor/github.com/andybalholm/brotli/histogram.go b/vendor/github.com/andybalholm/brotli/histogram.go new file mode 100644 index 0000000..0346622 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/histogram.go @@ -0,0 +1,226 @@ +package brotli + +import "math" + +/* The distance symbols effectively used by "Large Window Brotli" (32-bit). */ +const numHistogramDistanceSymbols = 544 + +type histogramLiteral struct { + data_ [numLiteralSymbols]uint32 + total_count_ uint + bit_cost_ float64 +} + +func histogramClearLiteral(self *histogramLiteral) { + self.data_ = [numLiteralSymbols]uint32{} + self.total_count_ = 0 + self.bit_cost_ = math.MaxFloat64 +} + +func clearHistogramsLiteral(array []histogramLiteral, length uint) { + var i uint + for i = 0; i < length; i++ { + histogramClearLiteral(&array[i:][0]) + } +} + +func histogramAddLiteral(self *histogramLiteral, val uint) { + self.data_[val]++ + self.total_count_++ +} + +func histogramAddVectorLiteral(self *histogramLiteral, p []byte, n uint) { + self.total_count_ += n + n += 1 + for { + n-- + if n == 0 { + break + } + self.data_[p[0]]++ + p = p[1:] + } +} + +func histogramAddHistogramLiteral(self *histogramLiteral, v *histogramLiteral) { + var i uint + self.total_count_ += v.total_count_ + for i = 0; i < numLiteralSymbols; i++ { + self.data_[i] += v.data_[i] + } +} + +func histogramDataSizeLiteral() uint { + return numLiteralSymbols +} + +type histogramCommand struct { + data_ [numCommandSymbols]uint32 + total_count_ uint + bit_cost_ float64 +} + +func histogramClearCommand(self *histogramCommand) { + self.data_ = [numCommandSymbols]uint32{} + self.total_count_ = 0 + self.bit_cost_ = math.MaxFloat64 +} + +func clearHistogramsCommand(array []histogramCommand, length uint) { + var i uint + for i = 0; i < length; i++ { + histogramClearCommand(&array[i:][0]) + } +} + +func histogramAddCommand(self *histogramCommand, val uint) { + self.data_[val]++ + self.total_count_++ +} + +func histogramAddVectorCommand(self *histogramCommand, p []uint16, n uint) { + self.total_count_ += n + n += 1 + for { + n-- + if n == 0 { + break + } + self.data_[p[0]]++ + p = p[1:] + } +} + +func histogramAddHistogramCommand(self *histogramCommand, v *histogramCommand) { + var i uint + self.total_count_ += v.total_count_ + for i = 0; i < numCommandSymbols; i++ { + self.data_[i] += v.data_[i] + } +} + +func histogramDataSizeCommand() uint { + return numCommandSymbols +} + +type histogramDistance struct { + data_ [numDistanceSymbols]uint32 + total_count_ uint + bit_cost_ float64 +} + +func histogramClearDistance(self *histogramDistance) { + self.data_ = [numDistanceSymbols]uint32{} + self.total_count_ = 0 + self.bit_cost_ = math.MaxFloat64 +} + +func clearHistogramsDistance(array []histogramDistance, length uint) { + var i uint + for i = 0; i < length; i++ { + histogramClearDistance(&array[i:][0]) + } +} + +func histogramAddDistance(self *histogramDistance, val uint) { + self.data_[val]++ + self.total_count_++ +} + +func histogramAddVectorDistance(self *histogramDistance, p []uint16, n uint) { + self.total_count_ += n + n += 1 + for { + n-- + if n == 0 { + break + } + self.data_[p[0]]++ + p = p[1:] + } +} + +func histogramAddHistogramDistance(self *histogramDistance, v *histogramDistance) { + var i uint + self.total_count_ += v.total_count_ + for i = 0; i < numDistanceSymbols; i++ { + self.data_[i] += v.data_[i] + } +} + +func histogramDataSizeDistance() uint { + return numDistanceSymbols +} + +type blockSplitIterator struct { + split_ *blockSplit + idx_ uint + type_ uint + length_ uint +} + +func initBlockSplitIterator(self *blockSplitIterator, split *blockSplit) { + self.split_ = split + self.idx_ = 0 + self.type_ = 0 + if len(split.lengths) > 0 { + self.length_ = uint(split.lengths[0]) + } else { + self.length_ = 0 + } +} + +func blockSplitIteratorNext(self *blockSplitIterator) { + if self.length_ == 0 { + self.idx_++ + self.type_ = uint(self.split_.types[self.idx_]) + self.length_ = uint(self.split_.lengths[self.idx_]) + } + + self.length_-- +} + +func buildHistogramsWithContext(cmds []command, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit, ringbuffer []byte, start_pos uint, mask uint, prev_byte byte, prev_byte2 byte, context_modes []int, literal_histograms []histogramLiteral, insert_and_copy_histograms []histogramCommand, copy_dist_histograms []histogramDistance) { + var pos uint = start_pos + var literal_it blockSplitIterator + var insert_and_copy_it blockSplitIterator + var dist_it blockSplitIterator + + initBlockSplitIterator(&literal_it, literal_split) + initBlockSplitIterator(&insert_and_copy_it, insert_and_copy_split) + initBlockSplitIterator(&dist_it, dist_split) + for i := range cmds { + var cmd *command = &cmds[i] + var j uint + blockSplitIteratorNext(&insert_and_copy_it) + histogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_], uint(cmd.cmd_prefix_)) + + /* TODO: unwrap iterator blocks. */ + for j = uint(cmd.insert_len_); j != 0; j-- { + var context uint + blockSplitIteratorNext(&literal_it) + context = literal_it.type_ + if context_modes != nil { + var lut contextLUT = getContextLUT(context_modes[context]) + context = (context << literalContextBits) + uint(getContext(prev_byte, prev_byte2, lut)) + } + + histogramAddLiteral(&literal_histograms[context], uint(ringbuffer[pos&mask])) + prev_byte2 = prev_byte + prev_byte = ringbuffer[pos&mask] + pos++ + } + + pos += uint(commandCopyLen(cmd)) + if commandCopyLen(cmd) != 0 { + prev_byte2 = ringbuffer[(pos-2)&mask] + prev_byte = ringbuffer[(pos-1)&mask] + if cmd.cmd_prefix_ >= 128 { + var context uint + blockSplitIteratorNext(&dist_it) + context = uint(uint32(dist_it.type_< bestQ && + (spec.Value == "*" || spec.Value == offer) { + bestQ = spec.Q + bestOffer = offer + } + } + } + if bestQ == 0 { + bestOffer = "" + } + return bestOffer +} + +// acceptSpec describes an Accept* header. +type acceptSpec struct { + Value string + Q float64 +} + +// parseAccept parses Accept* headers. +func parseAccept(header http.Header, key string) (specs []acceptSpec) { +loop: + for _, s := range header[key] { + for { + var spec acceptSpec + spec.Value, s = expectTokenSlash(s) + if spec.Value == "" { + continue loop + } + spec.Q = 1.0 + s = skipSpace(s) + if strings.HasPrefix(s, ";") { + s = skipSpace(s[1:]) + if !strings.HasPrefix(s, "q=") { + continue loop + } + spec.Q, s = expectQuality(s[2:]) + if spec.Q < 0.0 { + continue loop + } + } + specs = append(specs, spec) + s = skipSpace(s) + if !strings.HasPrefix(s, ",") { + continue loop + } + s = skipSpace(s[1:]) + } + } + return +} + +func skipSpace(s string) (rest string) { + i := 0 + for ; i < len(s); i++ { + if octetTypes[s[i]]&isSpace == 0 { + break + } + } + return s[i:] +} + +func expectTokenSlash(s string) (token, rest string) { + i := 0 + for ; i < len(s); i++ { + b := s[i] + if (octetTypes[b]&isToken == 0) && b != '/' { + break + } + } + return s[:i], s[i:] +} + +func expectQuality(s string) (q float64, rest string) { + switch { + case len(s) == 0: + return -1, "" + case s[0] == '0': + q = 0 + case s[0] == '1': + q = 1 + default: + return -1, "" + } + s = s[1:] + if !strings.HasPrefix(s, ".") { + return q, s + } + s = s[1:] + i := 0 + n := 0 + d := 1 + for ; i < len(s); i++ { + b := s[i] + if b < '0' || b > '9' { + break + } + n = n*10 + int(b) - '0' + d *= 10 + } + return q + float64(n)/float64(d), s[i:] +} + +// Octet types from RFC 2616. +var octetTypes [256]octetType + +type octetType byte + +const ( + isToken octetType = 1 << iota + isSpace +) + +func init() { + // OCTET = + // CHAR = + // CTL = + // CR = + // LF = + // SP = + // HT = + // <"> = + // CRLF = CR LF + // LWS = [CRLF] 1*( SP | HT ) + // TEXT = + // separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> + // | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT + // token = 1* + // qdtext = > + + for c := 0; c < 256; c++ { + var t octetType + isCtl := c <= 31 || c == 127 + isChar := 0 <= c && c <= 127 + isSeparator := strings.ContainsRune(" \t\"(),/:;<=>?@[]\\{}", rune(c)) + if strings.ContainsRune(" \t\r\n", rune(c)) { + t |= isSpace + } + if isChar && !isCtl && !isSeparator { + t |= isToken + } + octetTypes[c] = t + } +} diff --git a/vendor/github.com/andybalholm/brotli/huffman.go b/vendor/github.com/andybalholm/brotli/huffman.go new file mode 100644 index 0000000..182f3d2 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/huffman.go @@ -0,0 +1,653 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Utilities for building Huffman decoding tables. */ + +const huffmanMaxCodeLength = 15 + +/* Maximum possible Huffman table size for an alphabet size of (index * 32), + max code length 15 and root table bits 8. */ +var kMaxHuffmanTableSize = []uint16{ + 256, + 402, + 436, + 468, + 500, + 534, + 566, + 598, + 630, + 662, + 694, + 726, + 758, + 790, + 822, + 854, + 886, + 920, + 952, + 984, + 1016, + 1048, + 1080, + 1112, + 1144, + 1176, + 1208, + 1240, + 1272, + 1304, + 1336, + 1368, + 1400, + 1432, + 1464, + 1496, + 1528, +} + +/* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */ +const huffmanMaxSize26 = 396 + +/* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */ +const huffmanMaxSize258 = 632 + +/* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */ +const huffmanMaxSize272 = 646 + +const huffmanMaxCodeLengthCodeLength = 5 + +/* Do not create this struct directly - use the ConstructHuffmanCode + * constructor below! */ +type huffmanCode struct { + bits byte + value uint16 +} + +func constructHuffmanCode(bits byte, value uint16) huffmanCode { + var h huffmanCode + h.bits = bits + h.value = value + return h +} + +/* Builds Huffman lookup table assuming code lengths are in symbol order. */ + +/* Builds Huffman lookup table assuming code lengths are in symbol order. + Returns size of resulting table. */ + +/* Builds a simple Huffman table. The |num_symbols| parameter is to be + interpreted as follows: 0 means 1 symbol, 1 means 2 symbols, + 2 means 3 symbols, 3 means 4 symbols with lengths [2, 2, 2, 2], + 4 means 4 symbols with lengths [1, 2, 3, 3]. */ + +/* Contains a collection of Huffman trees with the same alphabet size. */ +/* max_symbol is needed due to simple codes since log2(alphabet_size) could be + greater than log2(max_symbol). */ +type huffmanTreeGroup struct { + htrees [][]huffmanCode + codes []huffmanCode + alphabet_size uint16 + max_symbol uint16 + num_htrees uint16 +} + +const reverseBitsMax = 8 + +const reverseBitsBase = 0 + +var kReverseBits = [1 << reverseBitsMax]byte{ + 0x00, + 0x80, + 0x40, + 0xC0, + 0x20, + 0xA0, + 0x60, + 0xE0, + 0x10, + 0x90, + 0x50, + 0xD0, + 0x30, + 0xB0, + 0x70, + 0xF0, + 0x08, + 0x88, + 0x48, + 0xC8, + 0x28, + 0xA8, + 0x68, + 0xE8, + 0x18, + 0x98, + 0x58, + 0xD8, + 0x38, + 0xB8, + 0x78, + 0xF8, + 0x04, + 0x84, + 0x44, + 0xC4, + 0x24, + 0xA4, + 0x64, + 0xE4, + 0x14, + 0x94, + 0x54, + 0xD4, + 0x34, + 0xB4, + 0x74, + 0xF4, + 0x0C, + 0x8C, + 0x4C, + 0xCC, + 0x2C, + 0xAC, + 0x6C, + 0xEC, + 0x1C, + 0x9C, + 0x5C, + 0xDC, + 0x3C, + 0xBC, + 0x7C, + 0xFC, + 0x02, + 0x82, + 0x42, + 0xC2, + 0x22, + 0xA2, + 0x62, + 0xE2, + 0x12, + 0x92, + 0x52, + 0xD2, + 0x32, + 0xB2, + 0x72, + 0xF2, + 0x0A, + 0x8A, + 0x4A, + 0xCA, + 0x2A, + 0xAA, + 0x6A, + 0xEA, + 0x1A, + 0x9A, + 0x5A, + 0xDA, + 0x3A, + 0xBA, + 0x7A, + 0xFA, + 0x06, + 0x86, + 0x46, + 0xC6, + 0x26, + 0xA6, + 0x66, + 0xE6, + 0x16, + 0x96, + 0x56, + 0xD6, + 0x36, + 0xB6, + 0x76, + 0xF6, + 0x0E, + 0x8E, + 0x4E, + 0xCE, + 0x2E, + 0xAE, + 0x6E, + 0xEE, + 0x1E, + 0x9E, + 0x5E, + 0xDE, + 0x3E, + 0xBE, + 0x7E, + 0xFE, + 0x01, + 0x81, + 0x41, + 0xC1, + 0x21, + 0xA1, + 0x61, + 0xE1, + 0x11, + 0x91, + 0x51, + 0xD1, + 0x31, + 0xB1, + 0x71, + 0xF1, + 0x09, + 0x89, + 0x49, + 0xC9, + 0x29, + 0xA9, + 0x69, + 0xE9, + 0x19, + 0x99, + 0x59, + 0xD9, + 0x39, + 0xB9, + 0x79, + 0xF9, + 0x05, + 0x85, + 0x45, + 0xC5, + 0x25, + 0xA5, + 0x65, + 0xE5, + 0x15, + 0x95, + 0x55, + 0xD5, + 0x35, + 0xB5, + 0x75, + 0xF5, + 0x0D, + 0x8D, + 0x4D, + 0xCD, + 0x2D, + 0xAD, + 0x6D, + 0xED, + 0x1D, + 0x9D, + 0x5D, + 0xDD, + 0x3D, + 0xBD, + 0x7D, + 0xFD, + 0x03, + 0x83, + 0x43, + 0xC3, + 0x23, + 0xA3, + 0x63, + 0xE3, + 0x13, + 0x93, + 0x53, + 0xD3, + 0x33, + 0xB3, + 0x73, + 0xF3, + 0x0B, + 0x8B, + 0x4B, + 0xCB, + 0x2B, + 0xAB, + 0x6B, + 0xEB, + 0x1B, + 0x9B, + 0x5B, + 0xDB, + 0x3B, + 0xBB, + 0x7B, + 0xFB, + 0x07, + 0x87, + 0x47, + 0xC7, + 0x27, + 0xA7, + 0x67, + 0xE7, + 0x17, + 0x97, + 0x57, + 0xD7, + 0x37, + 0xB7, + 0x77, + 0xF7, + 0x0F, + 0x8F, + 0x4F, + 0xCF, + 0x2F, + 0xAF, + 0x6F, + 0xEF, + 0x1F, + 0x9F, + 0x5F, + 0xDF, + 0x3F, + 0xBF, + 0x7F, + 0xFF, +} + +const reverseBitsLowest = (uint64(1) << (reverseBitsMax - 1 + reverseBitsBase)) + +/* Returns reverse(num >> BROTLI_REVERSE_BITS_BASE, BROTLI_REVERSE_BITS_MAX), + where reverse(value, len) is the bit-wise reversal of the len least + significant bits of value. */ +func reverseBits8(num uint64) uint64 { + return uint64(kReverseBits[num]) +} + +/* Stores code in table[0], table[step], table[2*step], ..., table[end] */ +/* Assumes that end is an integer multiple of step */ +func replicateValue(table []huffmanCode, step int, end int, code huffmanCode) { + for { + end -= step + table[end] = code + if end <= 0 { + break + } + } +} + +/* Returns the table width of the next 2nd level table. |count| is the histogram + of bit lengths for the remaining symbols, |len| is the code length of the + next processed symbol. */ +func nextTableBitSize(count []uint16, len int, root_bits int) int { + var left int = 1 << uint(len-root_bits) + for len < huffmanMaxCodeLength { + left -= int(count[len]) + if left <= 0 { + break + } + len++ + left <<= 1 + } + + return len - root_bits +} + +func buildCodeLengthsHuffmanTable(table []huffmanCode, code_lengths []byte, count []uint16) { + var code huffmanCode /* current table entry */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* step size to replicate values in current table */ /* size of current table */ /* symbols sorted by code length */ + var symbol int + var key uint64 + var key_step uint64 + var step int + var table_size int + var sorted [codeLengthCodes]int + var offset [huffmanMaxCodeLengthCodeLength + 1]int + var bits int + var bits_count int + /* offsets in sorted table for each length */ + assert(huffmanMaxCodeLengthCodeLength <= reverseBitsMax) + + /* Generate offsets into sorted symbol table by code length. */ + symbol = -1 + + bits = 1 + var i int + for i = 0; i < huffmanMaxCodeLengthCodeLength; i++ { + symbol += int(count[bits]) + offset[bits] = symbol + bits++ + } + + /* Symbols with code length 0 are placed after all other symbols. */ + offset[0] = codeLengthCodes - 1 + + /* Sort symbols by length, by symbol order within each length. */ + symbol = codeLengthCodes + + for { + var i int + for i = 0; i < 6; i++ { + symbol-- + sorted[offset[code_lengths[symbol]]] = symbol + offset[code_lengths[symbol]]-- + } + if symbol == 0 { + break + } + } + + table_size = 1 << huffmanMaxCodeLengthCodeLength + + /* Special case: all symbols but one have 0 code length. */ + if offset[0] == 0 { + code = constructHuffmanCode(0, uint16(sorted[0])) + for key = 0; key < uint64(table_size); key++ { + table[key] = code + } + + return + } + + /* Fill in table. */ + key = 0 + + key_step = reverseBitsLowest + symbol = 0 + bits = 1 + step = 2 + for { + for bits_count = int(count[bits]); bits_count != 0; bits_count-- { + code = constructHuffmanCode(byte(bits), uint16(sorted[symbol])) + symbol++ + replicateValue(table[reverseBits8(key):], step, table_size, code) + key += key_step + } + + step <<= 1 + key_step >>= 1 + bits++ + if bits > huffmanMaxCodeLengthCodeLength { + break + } + } +} + +func buildHuffmanTable(root_table []huffmanCode, root_bits int, symbol_lists symbolList, count []uint16) uint32 { + var code huffmanCode /* current table entry */ /* next available space in table */ /* current code length */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* 2nd level table prefix code */ /* 2nd level table prefix code addend */ /* step size to replicate values in current table */ /* key length of current table */ /* size of current table */ /* sum of root table size and 2nd level table sizes */ + var table []huffmanCode + var len int + var symbol int + var key uint64 + var key_step uint64 + var sub_key uint64 + var sub_key_step uint64 + var step int + var table_bits int + var table_size int + var total_size int + var max_length int = -1 + var bits int + var bits_count int + + assert(root_bits <= reverseBitsMax) + assert(huffmanMaxCodeLength-root_bits <= reverseBitsMax) + + for symbolListGet(symbol_lists, max_length) == 0xFFFF { + max_length-- + } + max_length += huffmanMaxCodeLength + 1 + + table = root_table + table_bits = root_bits + table_size = 1 << uint(table_bits) + total_size = table_size + + /* Fill in the root table. Reduce the table size to if possible, + and create the repetitions by memcpy. */ + if table_bits > max_length { + table_bits = max_length + table_size = 1 << uint(table_bits) + } + + key = 0 + key_step = reverseBitsLowest + bits = 1 + step = 2 + for { + symbol = bits - (huffmanMaxCodeLength + 1) + for bits_count = int(count[bits]); bits_count != 0; bits_count-- { + symbol = int(symbolListGet(symbol_lists, symbol)) + code = constructHuffmanCode(byte(bits), uint16(symbol)) + replicateValue(table[reverseBits8(key):], step, table_size, code) + key += key_step + } + + step <<= 1 + key_step >>= 1 + bits++ + if bits > table_bits { + break + } + } + + /* If root_bits != table_bits then replicate to fill the remaining slots. */ + for total_size != table_size { + copy(table[table_size:], table[:uint(table_size)]) + table_size <<= 1 + } + + /* Fill in 2nd level tables and add pointers to root table. */ + key_step = reverseBitsLowest >> uint(root_bits-1) + + sub_key = reverseBitsLowest << 1 + sub_key_step = reverseBitsLowest + len = root_bits + 1 + step = 2 + for ; len <= max_length; len++ { + symbol = len - (huffmanMaxCodeLength + 1) + for ; count[len] != 0; count[len]-- { + if sub_key == reverseBitsLowest<<1 { + table = table[table_size:] + table_bits = nextTableBitSize(count, int(len), root_bits) + table_size = 1 << uint(table_bits) + total_size += table_size + sub_key = reverseBits8(key) + key += key_step + root_table[sub_key] = constructHuffmanCode(byte(table_bits+root_bits), uint16(uint64(uint(-cap(table)+cap(root_table)))-sub_key)) + sub_key = 0 + } + + symbol = int(symbolListGet(symbol_lists, symbol)) + code = constructHuffmanCode(byte(len-root_bits), uint16(symbol)) + replicateValue(table[reverseBits8(sub_key):], step, table_size, code) + sub_key += sub_key_step + } + + step <<= 1 + sub_key_step >>= 1 + } + + return uint32(total_size) +} + +func buildSimpleHuffmanTable(table []huffmanCode, root_bits int, val []uint16, num_symbols uint32) uint32 { + var table_size uint32 = 1 + var goal_size uint32 = 1 << uint(root_bits) + switch num_symbols { + case 0: + table[0] = constructHuffmanCode(0, val[0]) + + case 1: + if val[1] > val[0] { + table[0] = constructHuffmanCode(1, val[0]) + table[1] = constructHuffmanCode(1, val[1]) + } else { + table[0] = constructHuffmanCode(1, val[1]) + table[1] = constructHuffmanCode(1, val[0]) + } + + table_size = 2 + + case 2: + table[0] = constructHuffmanCode(1, val[0]) + table[2] = constructHuffmanCode(1, val[0]) + if val[2] > val[1] { + table[1] = constructHuffmanCode(2, val[1]) + table[3] = constructHuffmanCode(2, val[2]) + } else { + table[1] = constructHuffmanCode(2, val[2]) + table[3] = constructHuffmanCode(2, val[1]) + } + + table_size = 4 + + case 3: + var i int + var k int + for i = 0; i < 3; i++ { + for k = i + 1; k < 4; k++ { + if val[k] < val[i] { + var t uint16 = val[k] + val[k] = val[i] + val[i] = t + } + } + } + + table[0] = constructHuffmanCode(2, val[0]) + table[2] = constructHuffmanCode(2, val[1]) + table[1] = constructHuffmanCode(2, val[2]) + table[3] = constructHuffmanCode(2, val[3]) + table_size = 4 + + case 4: + if val[3] < val[2] { + var t uint16 = val[3] + val[3] = val[2] + val[2] = t + } + + table[0] = constructHuffmanCode(1, val[0]) + table[1] = constructHuffmanCode(2, val[1]) + table[2] = constructHuffmanCode(1, val[0]) + table[3] = constructHuffmanCode(3, val[2]) + table[4] = constructHuffmanCode(1, val[0]) + table[5] = constructHuffmanCode(2, val[1]) + table[6] = constructHuffmanCode(1, val[0]) + table[7] = constructHuffmanCode(3, val[3]) + table_size = 8 + } + + for table_size != goal_size { + copy(table[table_size:], table[:uint(table_size)]) + table_size <<= 1 + } + + return goal_size +} diff --git a/vendor/github.com/andybalholm/brotli/literal_cost.go b/vendor/github.com/andybalholm/brotli/literal_cost.go new file mode 100644 index 0000000..5a9ace9 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/literal_cost.go @@ -0,0 +1,182 @@ +package brotli + +func utf8Position(last uint, c uint, clamp uint) uint { + if c < 128 { + return 0 /* Next one is the 'Byte 1' again. */ + } else if c >= 192 { /* Next one is the 'Byte 2' of utf-8 encoding. */ + return brotli_min_size_t(1, clamp) + } else { + /* Let's decide over the last byte if this ends the sequence. */ + if last < 0xE0 { + return 0 /* Completed two or three byte coding. */ /* Next one is the 'Byte 3' of utf-8 encoding. */ + } else { + return brotli_min_size_t(2, clamp) + } + } +} + +func decideMultiByteStatsLevel(pos uint, len uint, mask uint, data []byte) uint { + var counts = [3]uint{0} /* should be 2, but 1 compresses better. */ + var max_utf8 uint = 1 + var last_c uint = 0 + var i uint + for i = 0; i < len; i++ { + var c uint = uint(data[(pos+i)&mask]) + counts[utf8Position(last_c, c, 2)]++ + last_c = c + } + + if counts[2] < 500 { + max_utf8 = 1 + } + + if counts[1]+counts[2] < 25 { + max_utf8 = 0 + } + + return max_utf8 +} + +func estimateBitCostsForLiteralsUTF8(pos uint, len uint, mask uint, data []byte, cost []float32) { + var max_utf8 uint = decideMultiByteStatsLevel(pos, uint(len), mask, data) + /* Bootstrap histograms. */ + var histogram = [3][256]uint{[256]uint{0}} + var window_half uint = 495 + var in_window uint = brotli_min_size_t(window_half, uint(len)) + var in_window_utf8 = [3]uint{0} + /* max_utf8 is 0 (normal ASCII single byte modeling), + 1 (for 2-byte UTF-8 modeling), or 2 (for 3-byte UTF-8 modeling). */ + + var i uint + { + var last_c uint = 0 + var utf8_pos uint = 0 + for i = 0; i < in_window; i++ { + var c uint = uint(data[(pos+i)&mask]) + histogram[utf8_pos][c]++ + in_window_utf8[utf8_pos]++ + utf8_pos = utf8Position(last_c, c, max_utf8) + last_c = c + } + } + + /* Compute bit costs with sliding window. */ + for i = 0; i < len; i++ { + if i >= window_half { + var c uint + var last_c uint + if i < window_half+1 { + c = 0 + } else { + c = uint(data[(pos+i-window_half-1)&mask]) + } + if i < window_half+2 { + last_c = 0 + } else { + last_c = uint(data[(pos+i-window_half-2)&mask]) + } + /* Remove a byte in the past. */ + + var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) + histogram[utf8_pos2][data[(pos+i-window_half)&mask]]-- + in_window_utf8[utf8_pos2]-- + } + + if i+window_half < len { + var c uint = uint(data[(pos+i+window_half-1)&mask]) + var last_c uint = uint(data[(pos+i+window_half-2)&mask]) + /* Add a byte in the future. */ + + var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) + histogram[utf8_pos2][data[(pos+i+window_half)&mask]]++ + in_window_utf8[utf8_pos2]++ + } + { + var c uint + var last_c uint + if i < 1 { + c = 0 + } else { + c = uint(data[(pos+i-1)&mask]) + } + if i < 2 { + last_c = 0 + } else { + last_c = uint(data[(pos+i-2)&mask]) + } + var utf8_pos uint = utf8Position(last_c, c, max_utf8) + var masked_pos uint = (pos + i) & mask + var histo uint = histogram[utf8_pos][data[masked_pos]] + var lit_cost float64 + if histo == 0 { + histo = 1 + } + + lit_cost = fastLog2(in_window_utf8[utf8_pos]) - fastLog2(histo) + lit_cost += 0.02905 + if lit_cost < 1.0 { + lit_cost *= 0.5 + lit_cost += 0.5 + } + + /* Make the first bytes more expensive -- seems to help, not sure why. + Perhaps because the entropy source is changing its properties + rapidly in the beginning of the file, perhaps because the beginning + of the data is a statistical "anomaly". */ + if i < 2000 { + lit_cost += 0.7 - (float64(2000-i) / 2000.0 * 0.35) + } + + cost[i] = float32(lit_cost) + } + } +} + +func estimateBitCostsForLiterals(pos uint, len uint, mask uint, data []byte, cost []float32) { + if isMostlyUTF8(data, pos, mask, uint(len), kMinUTF8Ratio) { + estimateBitCostsForLiteralsUTF8(pos, uint(len), mask, data, cost) + return + } else { + var histogram = [256]uint{0} + var window_half uint = 2000 + var in_window uint = brotli_min_size_t(window_half, uint(len)) + var i uint + /* Bootstrap histogram. */ + for i = 0; i < in_window; i++ { + histogram[data[(pos+i)&mask]]++ + } + + /* Compute bit costs with sliding window. */ + for i = 0; i < len; i++ { + var histo uint + if i >= window_half { + /* Remove a byte in the past. */ + histogram[data[(pos+i-window_half)&mask]]-- + + in_window-- + } + + if i+window_half < len { + /* Add a byte in the future. */ + histogram[data[(pos+i+window_half)&mask]]++ + + in_window++ + } + + histo = histogram[data[(pos+i)&mask]] + if histo == 0 { + histo = 1 + } + { + var lit_cost float64 = fastLog2(in_window) - fastLog2(histo) + lit_cost += 0.029 + if lit_cost < 1.0 { + lit_cost *= 0.5 + lit_cost += 0.5 + } + + cost[i] = float32(lit_cost) + } + } + } +} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go b/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go new file mode 100644 index 0000000..37ed8e1 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go @@ -0,0 +1,45 @@ +package matchfinder + +// An absoluteMatch is like a Match, but it stores indexes into the byte +// stream instead of lengths. +type absoluteMatch struct { + // Start is the index of the first byte. + Start int + + // End is the index of the byte after the last byte + // (so that End - Start = Length). + End int + + // Match is the index of the previous data that matches + // (Start - Match = Distance). + Match int +} + +// A matchEmitter manages the output of matches for a MatchFinder. +type matchEmitter struct { + // Dst is the destination slice that Matches are added to. + Dst []Match + + // NextEmit is the index of the next byte to emit. + NextEmit int +} + +func (e *matchEmitter) emit(m absoluteMatch) { + e.Dst = append(e.Dst, Match{ + Unmatched: m.Start - e.NextEmit, + Length: m.End - m.Start, + Distance: m.Start - m.Match, + }) + e.NextEmit = m.End +} + +// trim shortens m if it extends past maxEnd. Then if the length is at least +// minLength, the match is emitted. +func (e *matchEmitter) trim(m absoluteMatch, maxEnd int, minLength int) { + if m.End > maxEnd { + m.End = maxEnd + } + if m.End-m.Start >= minLength { + e.emit(m) + } +} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/m0.go b/vendor/github.com/andybalholm/brotli/matchfinder/m0.go new file mode 100644 index 0000000..773b7c4 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/matchfinder/m0.go @@ -0,0 +1,169 @@ +package matchfinder + +import ( + "encoding/binary" +) + +// M0 is an implementation of the MatchFinder interface based +// on the algorithm used by snappy, but modified to be more like the algorithm +// used by compression level 0 of the brotli reference implementation. +// +// It has a maximum block size of 65536 bytes. +type M0 struct { + // Lazy turns on "lazy matching," for higher compression but less speed. + Lazy bool + + MaxDistance int + MaxLength int +} + +func (M0) Reset() {} + +const ( + m0HashLen = 5 + + m0TableBits = 14 + m0TableSize = 1 << m0TableBits + m0Shift = 32 - m0TableBits + // m0TableMask is redundant, but helps the compiler eliminate bounds + // checks. + m0TableMask = m0TableSize - 1 +) + +func (m M0) hash(data uint64) uint64 { + hash := (data << (64 - 8*m0HashLen)) * hashMul64 + return hash >> (64 - m0TableBits) +} + +// FindMatches looks for matches in src, appends them to dst, and returns dst. +// src must not be longer than 65536 bytes. +func (m M0) FindMatches(dst []Match, src []byte) []Match { + const inputMargin = 16 - 1 + const minNonLiteralBlockSize = 1 + 1 + inputMargin + + if len(src) < minNonLiteralBlockSize { + dst = append(dst, Match{ + Unmatched: len(src), + }) + return dst + } + if len(src) > 65536 { + panic("block too long") + } + + var table [m0TableSize]uint16 + + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := len(src) - inputMargin + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := 0 + + // The encoded form must start with a literal, as there are no previous + // bytes to copy, so we start looking for hash matches at s == 1. + s := 1 + nextHash := m.hash(binary.LittleEndian.Uint64(src[s:])) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := 32 + + nextS := s + candidate := 0 + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder + } + candidate = int(table[nextHash&m0TableMask]) + table[nextHash&m0TableMask] = uint16(s) + nextHash = m.hash(binary.LittleEndian.Uint64(src[nextS:])) + if m.MaxDistance != 0 && s-candidate > m.MaxDistance { + continue + } + if binary.LittleEndian.Uint32(src[s:]) == binary.LittleEndian.Uint32(src[candidate:]) { + break + } + } + + // Invariant: we have a 4-byte match at s. + base := s + s = extendMatch(src, candidate+4, s+4) + + origBase := base + if m.Lazy && base+1 < sLimit { + newBase := base + 1 + h := m.hash(binary.LittleEndian.Uint64(src[newBase:])) + newCandidate := int(table[h&m0TableMask]) + table[h&m0TableMask] = uint16(newBase) + okDistance := true + if m.MaxDistance != 0 && newBase-newCandidate > m.MaxDistance { + okDistance = false + } + if okDistance && binary.LittleEndian.Uint32(src[newBase:]) == binary.LittleEndian.Uint32(src[newCandidate:]) { + newS := extendMatch(src, newCandidate+4, newBase+4) + if newS-newBase > s-base+1 { + s = newS + base = newBase + candidate = newCandidate + } + } + } + + if m.MaxLength != 0 && s-base > m.MaxLength { + s = base + m.MaxLength + } + dst = append(dst, Match{ + Unmatched: base - nextEmit, + Length: s - base, + Distance: base - candidate, + }) + nextEmit = s + if s >= sLimit { + goto emitRemainder + } + + if m.Lazy { + // If lazy matching is enabled, we update the hash table for + // every byte in the match. + for i := origBase + 2; i < s-1; i++ { + x := binary.LittleEndian.Uint64(src[i:]) + table[m.hash(x)&m0TableMask] = uint16(i) + } + } + + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-1 and at s. + x := binary.LittleEndian.Uint64(src[s-1:]) + prevHash := m.hash(x >> 0) + table[prevHash&m0TableMask] = uint16(s - 1) + nextHash = m.hash(x >> 8) + } + +emitRemainder: + if nextEmit < len(src) { + dst = append(dst, Match{ + Unmatched: len(src) - nextEmit, + }) + } + return dst +} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/m4.go b/vendor/github.com/andybalholm/brotli/matchfinder/m4.go new file mode 100644 index 0000000..5b2acba --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/matchfinder/m4.go @@ -0,0 +1,297 @@ +package matchfinder + +import ( + "encoding/binary" + "math/bits" + "runtime" +) + +// M4 is an implementation of the MatchFinder +// interface that uses a hash table to find matches, +// optional match chains, +// and the advanced parsing technique from +// https://fastcompression.blogspot.com/2011/12/advanced-parsing-strategies.html. +type M4 struct { + // MaxDistance is the maximum distance (in bytes) to look back for + // a match. The default is 65535. + MaxDistance int + + // MinLength is the length of the shortest match to return. + // The default is 4. + MinLength int + + // HashLen is the number of bytes to use to calculate the hashes. + // The maximum is 8 and the default is 6. + HashLen int + + // TableBits is the number of bits in the hash table indexes. + // The default is 17 (128K entries). + TableBits int + + // ChainLength is how many entries to search on the "match chain" of older + // locations with the same hash as the current location. + ChainLength int + + // DistanceBitCost is used when comparing two matches to see + // which is better. The comparison is primarily based on the length + // of the matches, but it can also take the distance into account, + // in terms of the number of bits needed to represent the distance. + // One byte of length is given a score of 256, so 32 (256/8) would + // be a reasonable first guess for the value of one bit. + // (The default is 0, which bases the comparison solely on length.) + DistanceBitCost int + + table []uint32 + chain []uint16 + + history []byte +} + +func (q *M4) Reset() { + for i := range q.table { + q.table[i] = 0 + } + q.history = q.history[:0] + q.chain = q.chain[:0] +} + +func (q *M4) score(m absoluteMatch) int { + return (m.End-m.Start)*256 + bits.LeadingZeros32(uint32(m.Start-m.Match))*q.DistanceBitCost +} + +func (q *M4) FindMatches(dst []Match, src []byte) []Match { + if q.MaxDistance == 0 { + q.MaxDistance = 65535 + } + if q.MinLength == 0 { + q.MinLength = 4 + } + if q.HashLen == 0 { + q.HashLen = 6 + } + if q.TableBits == 0 { + q.TableBits = 17 + } + if len(q.table) < 1< q.MaxDistance*2 { + // Trim down the history buffer. + delta := len(q.history) - q.MaxDistance + copy(q.history, q.history[delta:]) + q.history = q.history[:q.MaxDistance] + if q.ChainLength > 0 { + q.chain = q.chain[:q.MaxDistance] + } + + for i, v := range q.table { + newV := int(v) - delta + if newV < 0 { + newV = 0 + } + q.table[i] = uint32(newV) + } + } + + // Append src to the history buffer. + e.NextEmit = len(q.history) + q.history = append(q.history, src...) + if q.ChainLength > 0 { + q.chain = append(q.chain, make([]uint16, len(src))...) + } + src = q.history + + // matches stores the matches that have been found but not emitted, + // in reverse order. (matches[0] is the most recent one.) + var matches [3]absoluteMatch + for i := e.NextEmit; i < len(src)-7; i++ { + if matches[0] != (absoluteMatch{}) && i >= matches[0].End { + // We have found some matches, and we're far enough along that we probably + // won't find overlapping matches, so we might as well emit them. + if matches[1] != (absoluteMatch{}) { + e.trim(matches[1], matches[0].Start, q.MinLength) + } + e.emit(matches[0]) + matches = [3]absoluteMatch{} + } + + // Calculate and store the hash. + h := ((binary.LittleEndian.Uint64(src[i:]) & (1<<(8*q.HashLen) - 1)) * hashMul64) >> (64 - q.TableBits) + candidate := int(q.table[h]) + q.table[h] = uint32(i) + if q.ChainLength > 0 && candidate != 0 { + delta := i - candidate + if delta < 1<<16 { + q.chain[i] = uint16(delta) + } + } + + if i < matches[0].End && i != matches[0].End+2-q.HashLen { + continue + } + if candidate == 0 || i-candidate > q.MaxDistance { + continue + } + + // Look for a match. + var currentMatch absoluteMatch + + if i-candidate != matches[0].Start-matches[0].Match { + if binary.LittleEndian.Uint32(src[candidate:]) == binary.LittleEndian.Uint32(src[i:]) { + m := extendMatch2(src, i, candidate, e.NextEmit) + if m.End-m.Start > q.MinLength { + currentMatch = m + } + } + } + + for j := 0; j < q.ChainLength; j++ { + delta := q.chain[candidate] + if delta == 0 { + break + } + candidate -= int(delta) + if candidate <= 0 || i-candidate > q.MaxDistance { + break + } + if i-candidate != matches[0].Start-matches[0].Match { + if binary.LittleEndian.Uint32(src[candidate:]) == binary.LittleEndian.Uint32(src[i:]) { + m := extendMatch2(src, i, candidate, e.NextEmit) + if m.End-m.Start > q.MinLength && q.score(m) > q.score(currentMatch) { + currentMatch = m + } + } + } + } + + if currentMatch.End-currentMatch.Start < q.MinLength { + continue + } + + overlapPenalty := 0 + if matches[0] != (absoluteMatch{}) { + overlapPenalty = 275 + if currentMatch.Start <= matches[1].End { + // This match would completely replace the previous match, + // so there is no penalty for overlap. + overlapPenalty = 0 + } + } + + if q.score(currentMatch) <= q.score(matches[0])+overlapPenalty { + continue + } + + matches = [3]absoluteMatch{ + currentMatch, + matches[0], + matches[1], + } + + if matches[2] == (absoluteMatch{}) { + continue + } + + // We have three matches, so it's time to emit one and/or eliminate one. + switch { + case matches[0].Start < matches[2].End: + // The first and third matches overlap; discard the one in between. + matches = [3]absoluteMatch{ + matches[0], + matches[2], + absoluteMatch{}, + } + + case matches[0].Start < matches[2].End+q.MinLength: + // The first and third matches don't overlap, but there's no room for + // another match between them. Emit the first match and discard the second. + e.emit(matches[2]) + matches = [3]absoluteMatch{ + matches[0], + absoluteMatch{}, + absoluteMatch{}, + } + + default: + // Emit the first match, shortening it if necessary to avoid overlap with the second. + e.trim(matches[2], matches[1].Start, q.MinLength) + matches[2] = absoluteMatch{} + } + } + + // We've found all the matches now; emit the remaining ones. + if matches[1] != (absoluteMatch{}) { + e.trim(matches[1], matches[0].Start, q.MinLength) + } + if matches[0] != (absoluteMatch{}) { + e.emit(matches[0]) + } + + dst = e.Dst + if e.NextEmit < len(src) { + dst = append(dst, Match{ + Unmatched: len(src) - e.NextEmit, + }) + } + + return dst +} + +const hashMul64 = 0x1E35A7BD1E35A7BD + +// extendMatch returns the largest k such that k <= len(src) and that +// src[i:i+k-j] and src[j:k] have the same contents. +// +// It assumes that: +// +// 0 <= i && i < j && j <= len(src) +func extendMatch(src []byte, i, j int) int { + switch runtime.GOARCH { + case "amd64": + // As long as we are 8 or more bytes before the end of src, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + for j+8 < len(src) { + iBytes := binary.LittleEndian.Uint64(src[i:]) + jBytes := binary.LittleEndian.Uint64(src[j:]) + if iBytes != jBytes { + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + return j + bits.TrailingZeros64(iBytes^jBytes)>>3 + } + i, j = i+8, j+8 + } + case "386": + // On a 32-bit CPU, we do it 4 bytes at a time. + for j+4 < len(src) { + iBytes := binary.LittleEndian.Uint32(src[i:]) + jBytes := binary.LittleEndian.Uint32(src[j:]) + if iBytes != jBytes { + return j + bits.TrailingZeros32(iBytes^jBytes)>>3 + } + i, j = i+4, j+4 + } + } + for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { + } + return j +} + +// Given a 4-byte match at src[start] and src[candidate], extendMatch2 extends it +// upward as far as possible, and downward no farther than to min. +func extendMatch2(src []byte, start, candidate, min int) absoluteMatch { + end := extendMatch(src, candidate+4, start+4) + for start > min && candidate > 0 && src[start-1] == src[candidate-1] { + start-- + candidate-- + } + return absoluteMatch{ + Start: start, + End: end, + Match: candidate, + } +} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go b/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go new file mode 100644 index 0000000..f6bcfdb --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go @@ -0,0 +1,103 @@ +// The matchfinder package defines reusable components for data compression. +// +// Many compression libraries have two main parts: +// - Something that looks for repeated sequences of bytes +// - An encoder for the compressed data format (often an entropy coder) +// +// Although these are logically two separate steps, the implementations are +// usually closely tied together. You can't use flate's matcher with snappy's +// encoder, for example. This package defines interfaces and an intermediate +// representation to allow mixing and matching compression components. +package matchfinder + +import "io" + +// A Match is the basic unit of LZ77 compression. +type Match struct { + Unmatched int // the number of unmatched bytes since the previous match + Length int // the number of bytes in the matched string; it may be 0 at the end of the input + Distance int // how far back in the stream to copy from +} + +// A MatchFinder performs the LZ77 stage of compression, looking for matches. +type MatchFinder interface { + // FindMatches looks for matches in src, appends them to dst, and returns dst. + FindMatches(dst []Match, src []byte) []Match + + // Reset clears any internal state, preparing the MatchFinder to be used with + // a new stream. + Reset() +} + +// An Encoder encodes the data in its final format. +type Encoder interface { + // Encode appends the encoded format of src to dst, using the match + // information from matches. + Encode(dst []byte, src []byte, matches []Match, lastBlock bool) []byte + + // Reset clears any internal state, preparing the Encoder to be used with + // a new stream. + Reset() +} + +// A Writer uses MatchFinder and Encoder to write compressed data to Dest. +type Writer struct { + Dest io.Writer + MatchFinder MatchFinder + Encoder Encoder + + // BlockSize is the number of bytes to compress at a time. If it is zero, + // each Write operation will be treated as one block. + BlockSize int + + err error + inBuf []byte + outBuf []byte + matches []Match +} + +func (w *Writer) Write(p []byte) (n int, err error) { + if w.err != nil { + return 0, w.err + } + + if w.BlockSize == 0 { + return w.writeBlock(p, false) + } + + w.inBuf = append(w.inBuf, p...) + var pos int + for pos = 0; pos+w.BlockSize <= len(w.inBuf) && w.err == nil; pos += w.BlockSize { + w.writeBlock(w.inBuf[pos:pos+w.BlockSize], false) + } + if pos > 0 { + n := copy(w.inBuf, w.inBuf[pos:]) + w.inBuf = w.inBuf[:n] + } + + return len(p), w.err +} + +func (w *Writer) writeBlock(p []byte, lastBlock bool) (n int, err error) { + w.outBuf = w.outBuf[:0] + w.matches = w.MatchFinder.FindMatches(w.matches[:0], p) + w.outBuf = w.Encoder.Encode(w.outBuf, p, w.matches, lastBlock) + _, w.err = w.Dest.Write(w.outBuf) + return len(p), w.err +} + +func (w *Writer) Close() error { + w.writeBlock(w.inBuf, true) + w.inBuf = w.inBuf[:0] + return w.err +} + +func (w *Writer) Reset(newDest io.Writer) { + w.MatchFinder.Reset() + w.Encoder.Reset() + w.err = nil + w.inBuf = w.inBuf[:0] + w.outBuf = w.outBuf[:0] + w.matches = w.matches[:0] + w.Dest = newDest +} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go b/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go new file mode 100644 index 0000000..75ecc59 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go @@ -0,0 +1,53 @@ +package matchfinder + +import "fmt" + +// A TextEncoder is an Encoder that produces a human-readable representation of +// the LZ77 compression. Matches are replaced with symbols. +type TextEncoder struct{} + +func (t TextEncoder) Reset() {} + +func (t TextEncoder) Encode(dst []byte, src []byte, matches []Match, lastBlock bool) []byte { + pos := 0 + for _, m := range matches { + if m.Unmatched > 0 { + dst = append(dst, src[pos:pos+m.Unmatched]...) + pos += m.Unmatched + } + if m.Length > 0 { + dst = append(dst, []byte(fmt.Sprintf("<%d,%d>", m.Length, m.Distance))...) + pos += m.Length + } + } + if pos < len(src) { + dst = append(dst, src[pos:]...) + } + return dst +} + +// A NoMatchFinder implements MatchFinder, but doesn't find any matches. +// It can be used to implement the equivalent of the standard library flate package's +// HuffmanOnly setting. +type NoMatchFinder struct{} + +func (n NoMatchFinder) Reset() {} + +func (n NoMatchFinder) FindMatches(dst []Match, src []byte) []Match { + return append(dst, Match{ + Unmatched: len(src), + }) +} + +// AutoReset wraps a MatchFinder that can return references to data in previous +// blocks, and calls Reset before each block. It is useful for (e.g.) using a +// snappy Encoder with a MatchFinder designed for flate. (Snappy doesn't +// support references between blocks.) +type AutoReset struct { + MatchFinder +} + +func (a AutoReset) FindMatches(dst []Match, src []byte) []Match { + a.Reset() + return a.MatchFinder.FindMatches(dst, src) +} diff --git a/vendor/github.com/andybalholm/brotli/memory.go b/vendor/github.com/andybalholm/brotli/memory.go new file mode 100644 index 0000000..a07c705 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/memory.go @@ -0,0 +1,66 @@ +package brotli + +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* +Dynamically grows array capacity to at least the requested size +T: data type +A: array +C: capacity +R: requested size +*/ +func brotli_ensure_capacity_uint8_t(a *[]byte, c *uint, r uint) { + if *c < r { + var new_size uint = *c + if new_size == 0 { + new_size = r + } + + for new_size < r { + new_size *= 2 + } + + if cap(*a) < int(new_size) { + var new_array []byte = make([]byte, new_size) + if *c != 0 { + copy(new_array, (*a)[:*c]) + } + + *a = new_array + } else { + *a = (*a)[:new_size] + } + + *c = new_size + } +} + +func brotli_ensure_capacity_uint32_t(a *[]uint32, c *uint, r uint) { + var new_array []uint32 + if *c < r { + var new_size uint = *c + if new_size == 0 { + new_size = r + } + + for new_size < r { + new_size *= 2 + } + + if cap(*a) < int(new_size) { + new_array = make([]uint32, new_size) + if *c != 0 { + copy(new_array, (*a)[:*c]) + } + + *a = new_array + } else { + *a = (*a)[:new_size] + } + *c = new_size + } +} diff --git a/vendor/github.com/andybalholm/brotli/metablock.go b/vendor/github.com/andybalholm/brotli/metablock.go new file mode 100644 index 0000000..3014df8 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/metablock.go @@ -0,0 +1,574 @@ +package brotli + +import ( + "sync" +) + +/* Copyright 2014 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Algorithms for distributing the literals and commands of a metablock between + block types and contexts. */ + +type metaBlockSplit struct { + literal_split blockSplit + command_split blockSplit + distance_split blockSplit + literal_context_map []uint32 + literal_context_map_size uint + distance_context_map []uint32 + distance_context_map_size uint + literal_histograms []histogramLiteral + literal_histograms_size uint + command_histograms []histogramCommand + command_histograms_size uint + distance_histograms []histogramDistance + distance_histograms_size uint +} + +var metaBlockPool sync.Pool + +func getMetaBlockSplit() *metaBlockSplit { + mb, _ := metaBlockPool.Get().(*metaBlockSplit) + + if mb == nil { + mb = &metaBlockSplit{} + } else { + initBlockSplit(&mb.literal_split) + initBlockSplit(&mb.command_split) + initBlockSplit(&mb.distance_split) + mb.literal_context_map = mb.literal_context_map[:0] + mb.literal_context_map_size = 0 + mb.distance_context_map = mb.distance_context_map[:0] + mb.distance_context_map_size = 0 + mb.literal_histograms = mb.literal_histograms[:0] + mb.command_histograms = mb.command_histograms[:0] + mb.distance_histograms = mb.distance_histograms[:0] + } + return mb +} + +func freeMetaBlockSplit(mb *metaBlockSplit) { + metaBlockPool.Put(mb) +} + +func initDistanceParams(params *encoderParams, npostfix uint32, ndirect uint32) { + var dist_params *distanceParams = ¶ms.dist + var alphabet_size uint32 + var max_distance uint32 + + dist_params.distance_postfix_bits = npostfix + dist_params.num_direct_distance_codes = ndirect + + alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), maxDistanceBits)) + max_distance = ndirect + (1 << (maxDistanceBits + npostfix + 2)) - (1 << (npostfix + 2)) + + if params.large_window { + var bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} + var postfix uint32 = 1 << npostfix + alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), largeMaxDistanceBits)) + + /* The maximum distance is set so that no distance symbol used can encode + a distance larger than BROTLI_MAX_ALLOWED_DISTANCE with all + its extra bits set. */ + if ndirect < bound[npostfix] { + max_distance = maxAllowedDistance - (bound[npostfix] - ndirect) + } else if ndirect >= bound[npostfix]+postfix { + max_distance = (3 << 29) - 4 + (ndirect - bound[npostfix]) + } else { + max_distance = maxAllowedDistance + } + } + + dist_params.alphabet_size = alphabet_size + dist_params.max_distance = uint(max_distance) +} + +func recomputeDistancePrefixes(cmds []command, orig_params *distanceParams, new_params *distanceParams) { + if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { + return + } + + for i := range cmds { + var cmd *command = &cmds[i] + if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { + prefixEncodeCopyDistance(uint(commandRestoreDistanceCode(cmd, orig_params)), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) + } + } +} + +func computeDistanceCost(cmds []command, orig_params *distanceParams, new_params *distanceParams, cost *float64) bool { + var equal_params bool = false + var dist_prefix uint16 + var dist_extra uint32 + var extra_bits float64 = 0.0 + var histo histogramDistance + histogramClearDistance(&histo) + + if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { + equal_params = true + } + + for i := range cmds { + cmd := &cmds[i] + if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { + if equal_params { + dist_prefix = cmd.dist_prefix_ + } else { + var distance uint32 = commandRestoreDistanceCode(cmd, orig_params) + if distance > uint32(new_params.max_distance) { + return false + } + + prefixEncodeCopyDistance(uint(distance), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &dist_prefix, &dist_extra) + } + + histogramAddDistance(&histo, uint(dist_prefix)&0x3FF) + extra_bits += float64(dist_prefix >> 10) + } + } + + *cost = populationCostDistance(&histo) + extra_bits + return true +} + +var buildMetaBlock_kMaxNumberOfHistograms uint = 256 + +func buildMetaBlock(ringbuffer []byte, pos uint, mask uint, params *encoderParams, prev_byte byte, prev_byte2 byte, cmds []command, literal_context_mode int, mb *metaBlockSplit) { + var distance_histograms []histogramDistance + var literal_histograms []histogramLiteral + var literal_context_modes []int = nil + var literal_histograms_size uint + var distance_histograms_size uint + var i uint + var literal_context_multiplier uint = 1 + var npostfix uint32 + var ndirect_msb uint32 = 0 + var check_orig bool = true + var best_dist_cost float64 = 1e99 + var orig_params encoderParams = *params + /* Histogram ids need to fit in one byte. */ + + var new_params encoderParams = *params + + for npostfix = 0; npostfix <= maxNpostfix; npostfix++ { + for ; ndirect_msb < 16; ndirect_msb++ { + var ndirect uint32 = ndirect_msb << npostfix + var skip bool + var dist_cost float64 + initDistanceParams(&new_params, npostfix, ndirect) + if npostfix == orig_params.dist.distance_postfix_bits && ndirect == orig_params.dist.num_direct_distance_codes { + check_orig = false + } + + skip = !computeDistanceCost(cmds, &orig_params.dist, &new_params.dist, &dist_cost) + if skip || (dist_cost > best_dist_cost) { + break + } + + best_dist_cost = dist_cost + params.dist = new_params.dist + } + + if ndirect_msb > 0 { + ndirect_msb-- + } + ndirect_msb /= 2 + } + + if check_orig { + var dist_cost float64 + computeDistanceCost(cmds, &orig_params.dist, &orig_params.dist, &dist_cost) + if dist_cost < best_dist_cost { + /* NB: currently unused; uncomment when more param tuning is added. */ + /* best_dist_cost = dist_cost; */ + params.dist = orig_params.dist + } + } + + recomputeDistancePrefixes(cmds, &orig_params.dist, ¶ms.dist) + + splitBlock(cmds, ringbuffer, pos, mask, params, &mb.literal_split, &mb.command_split, &mb.distance_split) + + if !params.disable_literal_context_modeling { + literal_context_multiplier = 1 << literalContextBits + literal_context_modes = make([]int, (mb.literal_split.num_types)) + for i = 0; i < mb.literal_split.num_types; i++ { + literal_context_modes[i] = literal_context_mode + } + } + + literal_histograms_size = mb.literal_split.num_types * literal_context_multiplier + literal_histograms = make([]histogramLiteral, literal_histograms_size) + clearHistogramsLiteral(literal_histograms, literal_histograms_size) + + distance_histograms_size = mb.distance_split.num_types << distanceContextBits + distance_histograms = make([]histogramDistance, distance_histograms_size) + clearHistogramsDistance(distance_histograms, distance_histograms_size) + + mb.command_histograms_size = mb.command_split.num_types + if cap(mb.command_histograms) < int(mb.command_histograms_size) { + mb.command_histograms = make([]histogramCommand, (mb.command_histograms_size)) + } else { + mb.command_histograms = mb.command_histograms[:mb.command_histograms_size] + } + clearHistogramsCommand(mb.command_histograms, mb.command_histograms_size) + + buildHistogramsWithContext(cmds, &mb.literal_split, &mb.command_split, &mb.distance_split, ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_modes, literal_histograms, mb.command_histograms, distance_histograms) + literal_context_modes = nil + + mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits + if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { + mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) + } else { + mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] + } + + mb.literal_histograms_size = mb.literal_context_map_size + if cap(mb.literal_histograms) < int(mb.literal_histograms_size) { + mb.literal_histograms = make([]histogramLiteral, (mb.literal_histograms_size)) + } else { + mb.literal_histograms = mb.literal_histograms[:mb.literal_histograms_size] + } + + clusterHistogramsLiteral(literal_histograms, literal_histograms_size, buildMetaBlock_kMaxNumberOfHistograms, mb.literal_histograms, &mb.literal_histograms_size, mb.literal_context_map) + literal_histograms = nil + + if params.disable_literal_context_modeling { + /* Distribute assignment to all contexts. */ + for i = mb.literal_split.num_types; i != 0; { + var j uint = 0 + i-- + for ; j < 1< 0 { + var entropy [maxStaticContexts]float64 + var combined_histo []histogramLiteral = make([]histogramLiteral, (2 * num_contexts)) + var combined_entropy [2 * maxStaticContexts]float64 + var diff = [2]float64{0.0} + /* Try merging the set of histograms for the current block type with the + respective set of histograms for the last and second last block types. + Decide over the split based on the total reduction of entropy across + all contexts. */ + + var i uint + for i = 0; i < num_contexts; i++ { + var curr_histo_ix uint = self.curr_histogram_ix_ + i + var j uint + entropy[i] = bitsEntropy(histograms[curr_histo_ix].data_[:], self.alphabet_size_) + for j = 0; j < 2; j++ { + var jx uint = j*num_contexts + i + var last_histogram_ix uint = self.last_histogram_ix_[j] + i + combined_histo[jx] = histograms[curr_histo_ix] + histogramAddHistogramLiteral(&combined_histo[jx], &histograms[last_histogram_ix]) + combined_entropy[jx] = bitsEntropy(combined_histo[jx].data_[0:], self.alphabet_size_) + diff[j] += combined_entropy[jx] - entropy[i] - last_entropy[jx] + } + } + + if split.num_types < self.max_block_types_ && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { + /* Create new block. */ + split.lengths[self.num_blocks_] = uint32(self.block_size_) + + split.types[self.num_blocks_] = byte(split.num_types) + self.last_histogram_ix_[1] = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = split.num_types * num_contexts + for i = 0; i < num_contexts; i++ { + last_entropy[num_contexts+i] = last_entropy[i] + last_entropy[i] = entropy[i] + } + + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_ += num_contexts + if self.curr_histogram_ix_ < *self.histograms_size_ { + clearHistogramsLiteral(self.histograms_[self.curr_histogram_ix_:], self.num_contexts_) + } + + self.block_size_ = 0 + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else if diff[1] < diff[0]-20.0 { + split.lengths[self.num_blocks_] = uint32(self.block_size_) + split.types[self.num_blocks_] = split.types[self.num_blocks_-2] + /* Combine this block with second last block. */ + + var tmp uint = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] + self.last_histogram_ix_[1] = tmp + for i = 0; i < num_contexts; i++ { + histograms[self.last_histogram_ix_[0]+i] = combined_histo[num_contexts+i] + last_entropy[num_contexts+i] = last_entropy[i] + last_entropy[i] = combined_entropy[num_contexts+i] + histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) + } + + self.num_blocks_++ + self.block_size_ = 0 + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else { + /* Combine this block with last block. */ + split.lengths[self.num_blocks_-1] += uint32(self.block_size_) + + for i = 0; i < num_contexts; i++ { + histograms[self.last_histogram_ix_[0]+i] = combined_histo[i] + last_entropy[i] = combined_entropy[i] + if split.num_types == 1 { + last_entropy[num_contexts+i] = last_entropy[i] + } + + histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) + } + + self.block_size_ = 0 + self.merge_last_count_++ + if self.merge_last_count_ > 1 { + self.target_block_size_ += self.min_block_size_ + } + } + + combined_histo = nil + } + + if is_final { + *self.histograms_size_ = split.num_types * num_contexts + split.num_blocks = self.num_blocks_ + } +} + +/* Adds the next symbol to the current block type and context. When the + current block reaches the target size, decides on merging the block. */ +func contextBlockSplitterAddSymbol(self *contextBlockSplitter, symbol uint, context uint) { + histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_+context], symbol) + self.block_size_++ + if self.block_size_ == self.target_block_size_ { + contextBlockSplitterFinishBlock(self, false) /* is_final = */ + } +} + +func mapStaticContexts(num_contexts uint, static_context_map []uint32, mb *metaBlockSplit) { + var i uint + mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits + if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { + mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) + } else { + mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] + } + + for i = 0; i < mb.literal_split.num_types; i++ { + var offset uint32 = uint32(i * num_contexts) + var j uint + for j = 0; j < 1<= 128 { + blockSplitterAddSymbolDistance(&dist_blocks, uint(cmd.dist_prefix_)&0x3FF) + } + } + } + + if num_contexts == 1 { + blockSplitterFinishBlockLiteral(&lit_blocks.plain, true) /* is_final = */ + } else { + contextBlockSplitterFinishBlock(&lit_blocks.ctx, true) /* is_final = */ + } + + blockSplitterFinishBlockCommand(&cmd_blocks, true) /* is_final = */ + blockSplitterFinishBlockDistance(&dist_blocks, true) /* is_final = */ + + if num_contexts > 1 { + mapStaticContexts(num_contexts, static_context_map, mb) + } +} + +func buildMetaBlockGreedy(ringbuffer []byte, pos uint, mask uint, prev_byte byte, prev_byte2 byte, literal_context_lut contextLUT, num_contexts uint, static_context_map []uint32, commands []command, mb *metaBlockSplit) { + if num_contexts == 1 { + buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, 1, nil, commands, mb) + } else { + buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, num_contexts, static_context_map, commands, mb) + } +} + +func optimizeHistograms(num_distance_codes uint32, mb *metaBlockSplit) { + var good_for_rle [numCommandSymbols]byte + var i uint + for i = 0; i < mb.literal_histograms_size; i++ { + optimizeHuffmanCountsForRLE(256, mb.literal_histograms[i].data_[:], good_for_rle[:]) + } + + for i = 0; i < mb.command_histograms_size; i++ { + optimizeHuffmanCountsForRLE(numCommandSymbols, mb.command_histograms[i].data_[:], good_for_rle[:]) + } + + for i = 0; i < mb.distance_histograms_size; i++ { + optimizeHuffmanCountsForRLE(uint(num_distance_codes), mb.distance_histograms[i].data_[:], good_for_rle[:]) + } +} diff --git a/vendor/github.com/andybalholm/brotli/metablock_command.go b/vendor/github.com/andybalholm/brotli/metablock_command.go new file mode 100644 index 0000000..14c7b77 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/metablock_command.go @@ -0,0 +1,165 @@ +package brotli + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Greedy block splitter for one block category (literal, command or distance). + */ +type blockSplitterCommand struct { + alphabet_size_ uint + min_block_size_ uint + split_threshold_ float64 + num_blocks_ uint + split_ *blockSplit + histograms_ []histogramCommand + histograms_size_ *uint + target_block_size_ uint + block_size_ uint + curr_histogram_ix_ uint + last_histogram_ix_ [2]uint + last_entropy_ [2]float64 + merge_last_count_ uint +} + +func initBlockSplitterCommand(self *blockSplitterCommand, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramCommand, histograms_size *uint) { + var max_num_blocks uint = num_symbols/min_block_size + 1 + var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) + /* We have to allocate one more histogram than the maximum number of block + types for the current histogram when the meta-block is too big. */ + self.alphabet_size_ = alphabet_size + + self.min_block_size_ = min_block_size + self.split_threshold_ = split_threshold + self.num_blocks_ = 0 + self.split_ = split + self.histograms_size_ = histograms_size + self.target_block_size_ = min_block_size + self.block_size_ = 0 + self.curr_histogram_ix_ = 0 + self.merge_last_count_ = 0 + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) + self.split_.num_blocks = max_num_blocks + *histograms_size = max_num_types + if histograms == nil || cap(*histograms) < int(*histograms_size) { + *histograms = make([]histogramCommand, (*histograms_size)) + } else { + *histograms = (*histograms)[:*histograms_size] + } + self.histograms_ = *histograms + + /* Clear only current histogram. */ + histogramClearCommand(&self.histograms_[0]) + + self.last_histogram_ix_[1] = 0 + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] +} + +/* Does either of three things: + (1) emits the current block with a new block type; + (2) emits the current block with the type of the second last block; + (3) merges the current block with the last block. */ +func blockSplitterFinishBlockCommand(self *blockSplitterCommand, is_final bool) { + var split *blockSplit = self.split_ + var last_entropy []float64 = self.last_entropy_[:] + var histograms []histogramCommand = self.histograms_ + self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) + if self.num_blocks_ == 0 { + /* Create first block. */ + split.lengths[0] = uint32(self.block_size_) + + split.types[0] = 0 + last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) + last_entropy[1] = last_entropy[0] + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearCommand(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + } else if self.block_size_ > 0 { + var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) + var combined_histo [2]histogramCommand + var combined_entropy [2]float64 + var diff [2]float64 + var j uint + for j = 0; j < 2; j++ { + var last_histogram_ix uint = self.last_histogram_ix_[j] + combined_histo[j] = histograms[self.curr_histogram_ix_] + histogramAddHistogramCommand(&combined_histo[j], &histograms[last_histogram_ix]) + combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) + diff[j] = combined_entropy[j] - entropy - last_entropy[j] + } + + if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { + /* Create new block. */ + split.lengths[self.num_blocks_] = uint32(self.block_size_) + + split.types[self.num_blocks_] = byte(split.num_types) + self.last_histogram_ix_[1] = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = uint(byte(split.num_types)) + last_entropy[1] = last_entropy[0] + last_entropy[0] = entropy + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearCommand(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else if diff[1] < diff[0]-20.0 { + split.lengths[self.num_blocks_] = uint32(self.block_size_) + split.types[self.num_blocks_] = split.types[self.num_blocks_-2] + /* Combine this block with second last block. */ + + var tmp uint = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] + self.last_histogram_ix_[1] = tmp + histograms[self.last_histogram_ix_[0]] = combined_histo[1] + last_entropy[1] = last_entropy[0] + last_entropy[0] = combined_entropy[1] + self.num_blocks_++ + self.block_size_ = 0 + histogramClearCommand(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else { + /* Combine this block with last block. */ + split.lengths[self.num_blocks_-1] += uint32(self.block_size_) + + histograms[self.last_histogram_ix_[0]] = combined_histo[0] + last_entropy[0] = combined_entropy[0] + if split.num_types == 1 { + last_entropy[1] = last_entropy[0] + } + + self.block_size_ = 0 + histogramClearCommand(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_++ + if self.merge_last_count_ > 1 { + self.target_block_size_ += self.min_block_size_ + } + } + } + + if is_final { + *self.histograms_size_ = split.num_types + split.num_blocks = self.num_blocks_ + } +} + +/* Adds the next symbol to the current histogram. When the current histogram + reaches the target size, decides on merging the block. */ +func blockSplitterAddSymbolCommand(self *blockSplitterCommand, symbol uint) { + histogramAddCommand(&self.histograms_[self.curr_histogram_ix_], symbol) + self.block_size_++ + if self.block_size_ == self.target_block_size_ { + blockSplitterFinishBlockCommand(self, false) /* is_final = */ + } +} diff --git a/vendor/github.com/andybalholm/brotli/metablock_distance.go b/vendor/github.com/andybalholm/brotli/metablock_distance.go new file mode 100644 index 0000000..5110a81 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/metablock_distance.go @@ -0,0 +1,165 @@ +package brotli + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Greedy block splitter for one block category (literal, command or distance). + */ +type blockSplitterDistance struct { + alphabet_size_ uint + min_block_size_ uint + split_threshold_ float64 + num_blocks_ uint + split_ *blockSplit + histograms_ []histogramDistance + histograms_size_ *uint + target_block_size_ uint + block_size_ uint + curr_histogram_ix_ uint + last_histogram_ix_ [2]uint + last_entropy_ [2]float64 + merge_last_count_ uint +} + +func initBlockSplitterDistance(self *blockSplitterDistance, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramDistance, histograms_size *uint) { + var max_num_blocks uint = num_symbols/min_block_size + 1 + var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) + /* We have to allocate one more histogram than the maximum number of block + types for the current histogram when the meta-block is too big. */ + self.alphabet_size_ = alphabet_size + + self.min_block_size_ = min_block_size + self.split_threshold_ = split_threshold + self.num_blocks_ = 0 + self.split_ = split + self.histograms_size_ = histograms_size + self.target_block_size_ = min_block_size + self.block_size_ = 0 + self.curr_histogram_ix_ = 0 + self.merge_last_count_ = 0 + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) + self.split_.num_blocks = max_num_blocks + *histograms_size = max_num_types + if histograms == nil || cap(*histograms) < int(*histograms_size) { + *histograms = make([]histogramDistance, *histograms_size) + } else { + *histograms = (*histograms)[:*histograms_size] + } + self.histograms_ = *histograms + + /* Clear only current histogram. */ + histogramClearDistance(&self.histograms_[0]) + + self.last_histogram_ix_[1] = 0 + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] +} + +/* Does either of three things: + (1) emits the current block with a new block type; + (2) emits the current block with the type of the second last block; + (3) merges the current block with the last block. */ +func blockSplitterFinishBlockDistance(self *blockSplitterDistance, is_final bool) { + var split *blockSplit = self.split_ + var last_entropy []float64 = self.last_entropy_[:] + var histograms []histogramDistance = self.histograms_ + self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) + if self.num_blocks_ == 0 { + /* Create first block. */ + split.lengths[0] = uint32(self.block_size_) + + split.types[0] = 0 + last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) + last_entropy[1] = last_entropy[0] + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearDistance(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + } else if self.block_size_ > 0 { + var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) + var combined_histo [2]histogramDistance + var combined_entropy [2]float64 + var diff [2]float64 + var j uint + for j = 0; j < 2; j++ { + var last_histogram_ix uint = self.last_histogram_ix_[j] + combined_histo[j] = histograms[self.curr_histogram_ix_] + histogramAddHistogramDistance(&combined_histo[j], &histograms[last_histogram_ix]) + combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) + diff[j] = combined_entropy[j] - entropy - last_entropy[j] + } + + if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { + /* Create new block. */ + split.lengths[self.num_blocks_] = uint32(self.block_size_) + + split.types[self.num_blocks_] = byte(split.num_types) + self.last_histogram_ix_[1] = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = uint(byte(split.num_types)) + last_entropy[1] = last_entropy[0] + last_entropy[0] = entropy + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearDistance(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else if diff[1] < diff[0]-20.0 { + split.lengths[self.num_blocks_] = uint32(self.block_size_) + split.types[self.num_blocks_] = split.types[self.num_blocks_-2] + /* Combine this block with second last block. */ + + var tmp uint = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] + self.last_histogram_ix_[1] = tmp + histograms[self.last_histogram_ix_[0]] = combined_histo[1] + last_entropy[1] = last_entropy[0] + last_entropy[0] = combined_entropy[1] + self.num_blocks_++ + self.block_size_ = 0 + histogramClearDistance(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else { + /* Combine this block with last block. */ + split.lengths[self.num_blocks_-1] += uint32(self.block_size_) + + histograms[self.last_histogram_ix_[0]] = combined_histo[0] + last_entropy[0] = combined_entropy[0] + if split.num_types == 1 { + last_entropy[1] = last_entropy[0] + } + + self.block_size_ = 0 + histogramClearDistance(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_++ + if self.merge_last_count_ > 1 { + self.target_block_size_ += self.min_block_size_ + } + } + } + + if is_final { + *self.histograms_size_ = split.num_types + split.num_blocks = self.num_blocks_ + } +} + +/* Adds the next symbol to the current histogram. When the current histogram + reaches the target size, decides on merging the block. */ +func blockSplitterAddSymbolDistance(self *blockSplitterDistance, symbol uint) { + histogramAddDistance(&self.histograms_[self.curr_histogram_ix_], symbol) + self.block_size_++ + if self.block_size_ == self.target_block_size_ { + blockSplitterFinishBlockDistance(self, false) /* is_final = */ + } +} diff --git a/vendor/github.com/andybalholm/brotli/metablock_literal.go b/vendor/github.com/andybalholm/brotli/metablock_literal.go new file mode 100644 index 0000000..307f8da --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/metablock_literal.go @@ -0,0 +1,165 @@ +package brotli + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Greedy block splitter for one block category (literal, command or distance). + */ +type blockSplitterLiteral struct { + alphabet_size_ uint + min_block_size_ uint + split_threshold_ float64 + num_blocks_ uint + split_ *blockSplit + histograms_ []histogramLiteral + histograms_size_ *uint + target_block_size_ uint + block_size_ uint + curr_histogram_ix_ uint + last_histogram_ix_ [2]uint + last_entropy_ [2]float64 + merge_last_count_ uint +} + +func initBlockSplitterLiteral(self *blockSplitterLiteral, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramLiteral, histograms_size *uint) { + var max_num_blocks uint = num_symbols/min_block_size + 1 + var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) + /* We have to allocate one more histogram than the maximum number of block + types for the current histogram when the meta-block is too big. */ + self.alphabet_size_ = alphabet_size + + self.min_block_size_ = min_block_size + self.split_threshold_ = split_threshold + self.num_blocks_ = 0 + self.split_ = split + self.histograms_size_ = histograms_size + self.target_block_size_ = min_block_size + self.block_size_ = 0 + self.curr_histogram_ix_ = 0 + self.merge_last_count_ = 0 + brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) + brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) + self.split_.num_blocks = max_num_blocks + *histograms_size = max_num_types + if histograms == nil || cap(*histograms) < int(*histograms_size) { + *histograms = make([]histogramLiteral, *histograms_size) + } else { + *histograms = (*histograms)[:*histograms_size] + } + self.histograms_ = *histograms + + /* Clear only current histogram. */ + histogramClearLiteral(&self.histograms_[0]) + + self.last_histogram_ix_[1] = 0 + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] +} + +/* Does either of three things: + (1) emits the current block with a new block type; + (2) emits the current block with the type of the second last block; + (3) merges the current block with the last block. */ +func blockSplitterFinishBlockLiteral(self *blockSplitterLiteral, is_final bool) { + var split *blockSplit = self.split_ + var last_entropy []float64 = self.last_entropy_[:] + var histograms []histogramLiteral = self.histograms_ + self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) + if self.num_blocks_ == 0 { + /* Create first block. */ + split.lengths[0] = uint32(self.block_size_) + + split.types[0] = 0 + last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) + last_entropy[1] = last_entropy[0] + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearLiteral(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + } else if self.block_size_ > 0 { + var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) + var combined_histo [2]histogramLiteral + var combined_entropy [2]float64 + var diff [2]float64 + var j uint + for j = 0; j < 2; j++ { + var last_histogram_ix uint = self.last_histogram_ix_[j] + combined_histo[j] = histograms[self.curr_histogram_ix_] + histogramAddHistogramLiteral(&combined_histo[j], &histograms[last_histogram_ix]) + combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) + diff[j] = combined_entropy[j] - entropy - last_entropy[j] + } + + if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { + /* Create new block. */ + split.lengths[self.num_blocks_] = uint32(self.block_size_) + + split.types[self.num_blocks_] = byte(split.num_types) + self.last_histogram_ix_[1] = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = uint(byte(split.num_types)) + last_entropy[1] = last_entropy[0] + last_entropy[0] = entropy + self.num_blocks_++ + split.num_types++ + self.curr_histogram_ix_++ + if self.curr_histogram_ix_ < *self.histograms_size_ { + histogramClearLiteral(&histograms[self.curr_histogram_ix_]) + } + self.block_size_ = 0 + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else if diff[1] < diff[0]-20.0 { + split.lengths[self.num_blocks_] = uint32(self.block_size_) + split.types[self.num_blocks_] = split.types[self.num_blocks_-2] + /* Combine this block with second last block. */ + + var tmp uint = self.last_histogram_ix_[0] + self.last_histogram_ix_[0] = self.last_histogram_ix_[1] + self.last_histogram_ix_[1] = tmp + histograms[self.last_histogram_ix_[0]] = combined_histo[1] + last_entropy[1] = last_entropy[0] + last_entropy[0] = combined_entropy[1] + self.num_blocks_++ + self.block_size_ = 0 + histogramClearLiteral(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_ = 0 + self.target_block_size_ = self.min_block_size_ + } else { + /* Combine this block with last block. */ + split.lengths[self.num_blocks_-1] += uint32(self.block_size_) + + histograms[self.last_histogram_ix_[0]] = combined_histo[0] + last_entropy[0] = combined_entropy[0] + if split.num_types == 1 { + last_entropy[1] = last_entropy[0] + } + + self.block_size_ = 0 + histogramClearLiteral(&histograms[self.curr_histogram_ix_]) + self.merge_last_count_++ + if self.merge_last_count_ > 1 { + self.target_block_size_ += self.min_block_size_ + } + } + } + + if is_final { + *self.histograms_size_ = split.num_types + split.num_blocks = self.num_blocks_ + } +} + +/* Adds the next symbol to the current histogram. When the current histogram + reaches the target size, decides on merging the block. */ +func blockSplitterAddSymbolLiteral(self *blockSplitterLiteral, symbol uint) { + histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_], symbol) + self.block_size_++ + if self.block_size_ == self.target_block_size_ { + blockSplitterFinishBlockLiteral(self, false) /* is_final = */ + } +} diff --git a/vendor/github.com/andybalholm/brotli/params.go b/vendor/github.com/andybalholm/brotli/params.go new file mode 100644 index 0000000..0a4c687 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/params.go @@ -0,0 +1,37 @@ +package brotli + +/* Copyright 2017 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Parameters for the Brotli encoder with chosen quality levels. */ +type hasherParams struct { + type_ int + bucket_bits int + block_bits int + hash_len int + num_last_distances_to_check int +} + +type distanceParams struct { + distance_postfix_bits uint32 + num_direct_distance_codes uint32 + alphabet_size uint32 + max_distance uint +} + +/* Encoding parameters */ +type encoderParams struct { + mode int + quality int + lgwin uint + lgblock int + size_hint uint + disable_literal_context_modeling bool + large_window bool + hasher hasherParams + dist distanceParams + dictionary encoderDictionary +} diff --git a/vendor/github.com/andybalholm/brotli/platform.go b/vendor/github.com/andybalholm/brotli/platform.go new file mode 100644 index 0000000..4ebfb15 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/platform.go @@ -0,0 +1,103 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +func brotli_min_double(a float64, b float64) float64 { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_double(a float64, b float64) float64 { + if a > b { + return a + } else { + return b + } +} + +func brotli_min_float(a float32, b float32) float32 { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_float(a float32, b float32) float32 { + if a > b { + return a + } else { + return b + } +} + +func brotli_min_int(a int, b int) int { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_int(a int, b int) int { + if a > b { + return a + } else { + return b + } +} + +func brotli_min_size_t(a uint, b uint) uint { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_size_t(a uint, b uint) uint { + if a > b { + return a + } else { + return b + } +} + +func brotli_min_uint32_t(a uint32, b uint32) uint32 { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_uint32_t(a uint32, b uint32) uint32 { + if a > b { + return a + } else { + return b + } +} + +func brotli_min_uint8_t(a byte, b byte) byte { + if a < b { + return a + } else { + return b + } +} + +func brotli_max_uint8_t(a byte, b byte) byte { + if a > b { + return a + } else { + return b + } +} diff --git a/vendor/github.com/andybalholm/brotli/prefix.go b/vendor/github.com/andybalholm/brotli/prefix.go new file mode 100644 index 0000000..484df0d --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/prefix.go @@ -0,0 +1,30 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Functions for encoding of integers into prefix codes the amount of extra + bits, and the actual values of the extra bits. */ + +/* Here distance_code is an intermediate code, i.e. one of the special codes or + the actual distance increased by BROTLI_NUM_DISTANCE_SHORT_CODES - 1. */ +func prefixEncodeCopyDistance(distance_code uint, num_direct_codes uint, postfix_bits uint, code *uint16, extra_bits *uint32) { + if distance_code < numDistanceShortCodes+num_direct_codes { + *code = uint16(distance_code) + *extra_bits = 0 + return + } else { + var dist uint = (uint(1) << (postfix_bits + 2)) + (distance_code - numDistanceShortCodes - num_direct_codes) + var bucket uint = uint(log2FloorNonZero(dist) - 1) + var postfix_mask uint = (1 << postfix_bits) - 1 + var postfix uint = dist & postfix_mask + var prefix uint = (dist >> bucket) & 1 + var offset uint = (2 + prefix) << bucket + var nbits uint = bucket - postfix_bits + *code = uint16(nbits<<10 | (numDistanceShortCodes + num_direct_codes + ((2*(nbits-1) + prefix) << postfix_bits) + postfix)) + *extra_bits = uint32((dist - offset) >> postfix_bits) + } +} diff --git a/vendor/github.com/andybalholm/brotli/prefix_dec.go b/vendor/github.com/andybalholm/brotli/prefix_dec.go new file mode 100644 index 0000000..183f0d5 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/prefix_dec.go @@ -0,0 +1,723 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +type cmdLutElement struct { + insert_len_extra_bits byte + copy_len_extra_bits byte + distance_code int8 + context byte + insert_len_offset uint16 + copy_len_offset uint16 +} + +var kCmdLut = [numCommandSymbols]cmdLutElement{ + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0000, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0000, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0000, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0009}, + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0001, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0001, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0001, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0009}, + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0002, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0002, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0002, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0009}, + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0003, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0003, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0003, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0009}, + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0004, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0004, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0004, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0009}, + cmdLutElement{0x00, 0x00, 0, 0x00, 0x0005, 0x0002}, + cmdLutElement{0x00, 0x00, 0, 0x01, 0x0005, 0x0003}, + cmdLutElement{0x00, 0x00, 0, 0x02, 0x0005, 0x0004}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0005}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0006}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0007}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0008}, + cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0009}, + cmdLutElement{0x01, 0x00, 0, 0x00, 0x0006, 0x0002}, + cmdLutElement{0x01, 0x00, 0, 0x01, 0x0006, 0x0003}, + cmdLutElement{0x01, 0x00, 0, 0x02, 0x0006, 0x0004}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0005}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0006}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0007}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0008}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0009}, + cmdLutElement{0x01, 0x00, 0, 0x00, 0x0008, 0x0002}, + cmdLutElement{0x01, 0x00, 0, 0x01, 0x0008, 0x0003}, + cmdLutElement{0x01, 0x00, 0, 0x02, 0x0008, 0x0004}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0005}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0006}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0007}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0008}, + cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0009}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0036}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0036}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0036}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0036}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0036}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000a}, + cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000c}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x000e}, + cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x0012}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x0016}, + cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x001e}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0026}, + cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0036}, + cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000a}, + cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000c}, + cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x000e}, + cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x0012}, + cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x0016}, + cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x001e}, + cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0026}, + cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0036}, + cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000a}, + cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000c}, + cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x000e}, + cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x0012}, + cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x0016}, + cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x001e}, + cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0026}, + cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0036}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0000, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0000, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0000, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0009}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0001, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0001, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0001, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0009}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0002, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0002, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0002, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0009}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0003, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0003, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0003, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0009}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0004, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0004, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0004, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0009}, + cmdLutElement{0x00, 0x00, -1, 0x00, 0x0005, 0x0002}, + cmdLutElement{0x00, 0x00, -1, 0x01, 0x0005, 0x0003}, + cmdLutElement{0x00, 0x00, -1, 0x02, 0x0005, 0x0004}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0005}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0006}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0007}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0008}, + cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0009}, + cmdLutElement{0x01, 0x00, -1, 0x00, 0x0006, 0x0002}, + cmdLutElement{0x01, 0x00, -1, 0x01, 0x0006, 0x0003}, + cmdLutElement{0x01, 0x00, -1, 0x02, 0x0006, 0x0004}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0005}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0006}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0007}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0008}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0009}, + cmdLutElement{0x01, 0x00, -1, 0x00, 0x0008, 0x0002}, + cmdLutElement{0x01, 0x00, -1, 0x01, 0x0008, 0x0003}, + cmdLutElement{0x01, 0x00, -1, 0x02, 0x0008, 0x0004}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0005}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0006}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0007}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0008}, + cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0009}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0036}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0036}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0036}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0036}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0036}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000a}, + cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000c}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x000e}, + cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x0012}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x0016}, + cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x001e}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0026}, + cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0036}, + cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000a}, + cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000c}, + cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x000e}, + cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x0012}, + cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x0016}, + cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x001e}, + cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0026}, + cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0036}, + cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000a}, + cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000c}, + cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x000e}, + cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x0012}, + cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x0016}, + cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x001e}, + cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0026}, + cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0036}, + cmdLutElement{0x02, 0x00, -1, 0x00, 0x000a, 0x0002}, + cmdLutElement{0x02, 0x00, -1, 0x01, 0x000a, 0x0003}, + cmdLutElement{0x02, 0x00, -1, 0x02, 0x000a, 0x0004}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0005}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0006}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0007}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0008}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0009}, + cmdLutElement{0x02, 0x00, -1, 0x00, 0x000e, 0x0002}, + cmdLutElement{0x02, 0x00, -1, 0x01, 0x000e, 0x0003}, + cmdLutElement{0x02, 0x00, -1, 0x02, 0x000e, 0x0004}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0005}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0006}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0007}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0008}, + cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0009}, + cmdLutElement{0x03, 0x00, -1, 0x00, 0x0012, 0x0002}, + cmdLutElement{0x03, 0x00, -1, 0x01, 0x0012, 0x0003}, + cmdLutElement{0x03, 0x00, -1, 0x02, 0x0012, 0x0004}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0005}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0006}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0007}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0008}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0009}, + cmdLutElement{0x03, 0x00, -1, 0x00, 0x001a, 0x0002}, + cmdLutElement{0x03, 0x00, -1, 0x01, 0x001a, 0x0003}, + cmdLutElement{0x03, 0x00, -1, 0x02, 0x001a, 0x0004}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0005}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0006}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0007}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0008}, + cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0009}, + cmdLutElement{0x04, 0x00, -1, 0x00, 0x0022, 0x0002}, + cmdLutElement{0x04, 0x00, -1, 0x01, 0x0022, 0x0003}, + cmdLutElement{0x04, 0x00, -1, 0x02, 0x0022, 0x0004}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0005}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0006}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0007}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0008}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0009}, + cmdLutElement{0x04, 0x00, -1, 0x00, 0x0032, 0x0002}, + cmdLutElement{0x04, 0x00, -1, 0x01, 0x0032, 0x0003}, + cmdLutElement{0x04, 0x00, -1, 0x02, 0x0032, 0x0004}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0005}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0006}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0007}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0008}, + cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0009}, + cmdLutElement{0x05, 0x00, -1, 0x00, 0x0042, 0x0002}, + cmdLutElement{0x05, 0x00, -1, 0x01, 0x0042, 0x0003}, + cmdLutElement{0x05, 0x00, -1, 0x02, 0x0042, 0x0004}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0005}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0006}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0007}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0008}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0009}, + cmdLutElement{0x05, 0x00, -1, 0x00, 0x0062, 0x0002}, + cmdLutElement{0x05, 0x00, -1, 0x01, 0x0062, 0x0003}, + cmdLutElement{0x05, 0x00, -1, 0x02, 0x0062, 0x0004}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0005}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0006}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0007}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0008}, + cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0009}, + cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000a}, + cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000c}, + cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x000e}, + cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x0012}, + cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x0016}, + cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x001e}, + cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0026}, + cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0036}, + cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000a}, + cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000c}, + cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x000e}, + cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x0012}, + cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x0016}, + cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x001e}, + cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0026}, + cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0036}, + cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000a}, + cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000c}, + cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x000e}, + cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x0012}, + cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x0016}, + cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x001e}, + cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0026}, + cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0036}, + cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000a}, + cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000c}, + cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x000e}, + cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x0012}, + cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x0016}, + cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x001e}, + cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0026}, + cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0036}, + cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000a}, + cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000c}, + cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x000e}, + cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x0012}, + cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x0016}, + cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x001e}, + cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0026}, + cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0036}, + cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000a}, + cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000c}, + cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x000e}, + cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x0012}, + cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x0016}, + cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x001e}, + cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0026}, + cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0036}, + cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000a}, + cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000c}, + cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x000e}, + cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x0012}, + cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x0016}, + cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x001e}, + cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0026}, + cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0036}, + cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000a}, + cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000c}, + cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x000e}, + cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x0012}, + cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x0016}, + cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x001e}, + cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0026}, + cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0036}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0000, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0000, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0000, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0000, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0000, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0000, 0x0846}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0001, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0001, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0001, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0001, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0001, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0001, 0x0846}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0002, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0002, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0002, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0002, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0002, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0002, 0x0846}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0003, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0003, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0003, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0003, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0003, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0003, 0x0846}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0004, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0004, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0004, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0004, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0004, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0004, 0x0846}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0046}, + cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0066}, + cmdLutElement{0x00, 0x06, -1, 0x03, 0x0005, 0x0086}, + cmdLutElement{0x00, 0x07, -1, 0x03, 0x0005, 0x00c6}, + cmdLutElement{0x00, 0x08, -1, 0x03, 0x0005, 0x0146}, + cmdLutElement{0x00, 0x09, -1, 0x03, 0x0005, 0x0246}, + cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0005, 0x0446}, + cmdLutElement{0x00, 0x18, -1, 0x03, 0x0005, 0x0846}, + cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0046}, + cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0066}, + cmdLutElement{0x01, 0x06, -1, 0x03, 0x0006, 0x0086}, + cmdLutElement{0x01, 0x07, -1, 0x03, 0x0006, 0x00c6}, + cmdLutElement{0x01, 0x08, -1, 0x03, 0x0006, 0x0146}, + cmdLutElement{0x01, 0x09, -1, 0x03, 0x0006, 0x0246}, + cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0006, 0x0446}, + cmdLutElement{0x01, 0x18, -1, 0x03, 0x0006, 0x0846}, + cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0046}, + cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0066}, + cmdLutElement{0x01, 0x06, -1, 0x03, 0x0008, 0x0086}, + cmdLutElement{0x01, 0x07, -1, 0x03, 0x0008, 0x00c6}, + cmdLutElement{0x01, 0x08, -1, 0x03, 0x0008, 0x0146}, + cmdLutElement{0x01, 0x09, -1, 0x03, 0x0008, 0x0246}, + cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0008, 0x0446}, + cmdLutElement{0x01, 0x18, -1, 0x03, 0x0008, 0x0846}, + cmdLutElement{0x06, 0x00, -1, 0x00, 0x0082, 0x0002}, + cmdLutElement{0x06, 0x00, -1, 0x01, 0x0082, 0x0003}, + cmdLutElement{0x06, 0x00, -1, 0x02, 0x0082, 0x0004}, + cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0005}, + cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0006}, + cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0007}, + cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0008}, + cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0009}, + cmdLutElement{0x07, 0x00, -1, 0x00, 0x00c2, 0x0002}, + cmdLutElement{0x07, 0x00, -1, 0x01, 0x00c2, 0x0003}, + cmdLutElement{0x07, 0x00, -1, 0x02, 0x00c2, 0x0004}, + cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0005}, + cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0006}, + cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0007}, + cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0008}, + cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0009}, + cmdLutElement{0x08, 0x00, -1, 0x00, 0x0142, 0x0002}, + cmdLutElement{0x08, 0x00, -1, 0x01, 0x0142, 0x0003}, + cmdLutElement{0x08, 0x00, -1, 0x02, 0x0142, 0x0004}, + cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0005}, + cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0006}, + cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0007}, + cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0008}, + cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0009}, + cmdLutElement{0x09, 0x00, -1, 0x00, 0x0242, 0x0002}, + cmdLutElement{0x09, 0x00, -1, 0x01, 0x0242, 0x0003}, + cmdLutElement{0x09, 0x00, -1, 0x02, 0x0242, 0x0004}, + cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0005}, + cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0006}, + cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0007}, + cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0008}, + cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0009}, + cmdLutElement{0x0a, 0x00, -1, 0x00, 0x0442, 0x0002}, + cmdLutElement{0x0a, 0x00, -1, 0x01, 0x0442, 0x0003}, + cmdLutElement{0x0a, 0x00, -1, 0x02, 0x0442, 0x0004}, + cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0005}, + cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0006}, + cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0007}, + cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0008}, + cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0009}, + cmdLutElement{0x0c, 0x00, -1, 0x00, 0x0842, 0x0002}, + cmdLutElement{0x0c, 0x00, -1, 0x01, 0x0842, 0x0003}, + cmdLutElement{0x0c, 0x00, -1, 0x02, 0x0842, 0x0004}, + cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0005}, + cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0006}, + cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0007}, + cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0008}, + cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0009}, + cmdLutElement{0x0e, 0x00, -1, 0x00, 0x1842, 0x0002}, + cmdLutElement{0x0e, 0x00, -1, 0x01, 0x1842, 0x0003}, + cmdLutElement{0x0e, 0x00, -1, 0x02, 0x1842, 0x0004}, + cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0005}, + cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0006}, + cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0007}, + cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0008}, + cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0009}, + cmdLutElement{0x18, 0x00, -1, 0x00, 0x5842, 0x0002}, + cmdLutElement{0x18, 0x00, -1, 0x01, 0x5842, 0x0003}, + cmdLutElement{0x18, 0x00, -1, 0x02, 0x5842, 0x0004}, + cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0005}, + cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0006}, + cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0007}, + cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0008}, + cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0009}, + cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0046}, + cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0066}, + cmdLutElement{0x02, 0x06, -1, 0x03, 0x000a, 0x0086}, + cmdLutElement{0x02, 0x07, -1, 0x03, 0x000a, 0x00c6}, + cmdLutElement{0x02, 0x08, -1, 0x03, 0x000a, 0x0146}, + cmdLutElement{0x02, 0x09, -1, 0x03, 0x000a, 0x0246}, + cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000a, 0x0446}, + cmdLutElement{0x02, 0x18, -1, 0x03, 0x000a, 0x0846}, + cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0046}, + cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0066}, + cmdLutElement{0x02, 0x06, -1, 0x03, 0x000e, 0x0086}, + cmdLutElement{0x02, 0x07, -1, 0x03, 0x000e, 0x00c6}, + cmdLutElement{0x02, 0x08, -1, 0x03, 0x000e, 0x0146}, + cmdLutElement{0x02, 0x09, -1, 0x03, 0x000e, 0x0246}, + cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000e, 0x0446}, + cmdLutElement{0x02, 0x18, -1, 0x03, 0x000e, 0x0846}, + cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0046}, + cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0066}, + cmdLutElement{0x03, 0x06, -1, 0x03, 0x0012, 0x0086}, + cmdLutElement{0x03, 0x07, -1, 0x03, 0x0012, 0x00c6}, + cmdLutElement{0x03, 0x08, -1, 0x03, 0x0012, 0x0146}, + cmdLutElement{0x03, 0x09, -1, 0x03, 0x0012, 0x0246}, + cmdLutElement{0x03, 0x0a, -1, 0x03, 0x0012, 0x0446}, + cmdLutElement{0x03, 0x18, -1, 0x03, 0x0012, 0x0846}, + cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0046}, + cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0066}, + cmdLutElement{0x03, 0x06, -1, 0x03, 0x001a, 0x0086}, + cmdLutElement{0x03, 0x07, -1, 0x03, 0x001a, 0x00c6}, + cmdLutElement{0x03, 0x08, -1, 0x03, 0x001a, 0x0146}, + cmdLutElement{0x03, 0x09, -1, 0x03, 0x001a, 0x0246}, + cmdLutElement{0x03, 0x0a, -1, 0x03, 0x001a, 0x0446}, + cmdLutElement{0x03, 0x18, -1, 0x03, 0x001a, 0x0846}, + cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0046}, + cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0066}, + cmdLutElement{0x04, 0x06, -1, 0x03, 0x0022, 0x0086}, + cmdLutElement{0x04, 0x07, -1, 0x03, 0x0022, 0x00c6}, + cmdLutElement{0x04, 0x08, -1, 0x03, 0x0022, 0x0146}, + cmdLutElement{0x04, 0x09, -1, 0x03, 0x0022, 0x0246}, + cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0022, 0x0446}, + cmdLutElement{0x04, 0x18, -1, 0x03, 0x0022, 0x0846}, + cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0046}, + cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0066}, + cmdLutElement{0x04, 0x06, -1, 0x03, 0x0032, 0x0086}, + cmdLutElement{0x04, 0x07, -1, 0x03, 0x0032, 0x00c6}, + cmdLutElement{0x04, 0x08, -1, 0x03, 0x0032, 0x0146}, + cmdLutElement{0x04, 0x09, -1, 0x03, 0x0032, 0x0246}, + cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0032, 0x0446}, + cmdLutElement{0x04, 0x18, -1, 0x03, 0x0032, 0x0846}, + cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0046}, + cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0066}, + cmdLutElement{0x05, 0x06, -1, 0x03, 0x0042, 0x0086}, + cmdLutElement{0x05, 0x07, -1, 0x03, 0x0042, 0x00c6}, + cmdLutElement{0x05, 0x08, -1, 0x03, 0x0042, 0x0146}, + cmdLutElement{0x05, 0x09, -1, 0x03, 0x0042, 0x0246}, + cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0042, 0x0446}, + cmdLutElement{0x05, 0x18, -1, 0x03, 0x0042, 0x0846}, + cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0046}, + cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0066}, + cmdLutElement{0x05, 0x06, -1, 0x03, 0x0062, 0x0086}, + cmdLutElement{0x05, 0x07, -1, 0x03, 0x0062, 0x00c6}, + cmdLutElement{0x05, 0x08, -1, 0x03, 0x0062, 0x0146}, + cmdLutElement{0x05, 0x09, -1, 0x03, 0x0062, 0x0246}, + cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0062, 0x0446}, + cmdLutElement{0x05, 0x18, -1, 0x03, 0x0062, 0x0846}, + cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000a}, + cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000c}, + cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x000e}, + cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x0012}, + cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x0016}, + cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x001e}, + cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0026}, + cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0036}, + cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000a}, + cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000c}, + cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x000e}, + cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x0012}, + cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x0016}, + cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x001e}, + cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0026}, + cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0036}, + cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000a}, + cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000c}, + cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x000e}, + cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x0012}, + cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x0016}, + cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x001e}, + cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0026}, + cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0036}, + cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000a}, + cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000c}, + cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x000e}, + cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x0012}, + cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x0016}, + cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x001e}, + cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0026}, + cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0036}, + cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000a}, + cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000c}, + cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x000e}, + cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x0012}, + cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x0016}, + cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x001e}, + cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0026}, + cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0036}, + cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000a}, + cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000c}, + cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x000e}, + cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x0012}, + cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x0016}, + cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x001e}, + cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0026}, + cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0036}, + cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000a}, + cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000c}, + cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x000e}, + cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x0012}, + cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x0016}, + cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x001e}, + cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0026}, + cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0036}, + cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000a}, + cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000c}, + cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x000e}, + cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x0012}, + cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x0016}, + cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x001e}, + cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0026}, + cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0036}, + cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0046}, + cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0066}, + cmdLutElement{0x06, 0x06, -1, 0x03, 0x0082, 0x0086}, + cmdLutElement{0x06, 0x07, -1, 0x03, 0x0082, 0x00c6}, + cmdLutElement{0x06, 0x08, -1, 0x03, 0x0082, 0x0146}, + cmdLutElement{0x06, 0x09, -1, 0x03, 0x0082, 0x0246}, + cmdLutElement{0x06, 0x0a, -1, 0x03, 0x0082, 0x0446}, + cmdLutElement{0x06, 0x18, -1, 0x03, 0x0082, 0x0846}, + cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0046}, + cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0066}, + cmdLutElement{0x07, 0x06, -1, 0x03, 0x00c2, 0x0086}, + cmdLutElement{0x07, 0x07, -1, 0x03, 0x00c2, 0x00c6}, + cmdLutElement{0x07, 0x08, -1, 0x03, 0x00c2, 0x0146}, + cmdLutElement{0x07, 0x09, -1, 0x03, 0x00c2, 0x0246}, + cmdLutElement{0x07, 0x0a, -1, 0x03, 0x00c2, 0x0446}, + cmdLutElement{0x07, 0x18, -1, 0x03, 0x00c2, 0x0846}, + cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0046}, + cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0066}, + cmdLutElement{0x08, 0x06, -1, 0x03, 0x0142, 0x0086}, + cmdLutElement{0x08, 0x07, -1, 0x03, 0x0142, 0x00c6}, + cmdLutElement{0x08, 0x08, -1, 0x03, 0x0142, 0x0146}, + cmdLutElement{0x08, 0x09, -1, 0x03, 0x0142, 0x0246}, + cmdLutElement{0x08, 0x0a, -1, 0x03, 0x0142, 0x0446}, + cmdLutElement{0x08, 0x18, -1, 0x03, 0x0142, 0x0846}, + cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0046}, + cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0066}, + cmdLutElement{0x09, 0x06, -1, 0x03, 0x0242, 0x0086}, + cmdLutElement{0x09, 0x07, -1, 0x03, 0x0242, 0x00c6}, + cmdLutElement{0x09, 0x08, -1, 0x03, 0x0242, 0x0146}, + cmdLutElement{0x09, 0x09, -1, 0x03, 0x0242, 0x0246}, + cmdLutElement{0x09, 0x0a, -1, 0x03, 0x0242, 0x0446}, + cmdLutElement{0x09, 0x18, -1, 0x03, 0x0242, 0x0846}, + cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0046}, + cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0066}, + cmdLutElement{0x0a, 0x06, -1, 0x03, 0x0442, 0x0086}, + cmdLutElement{0x0a, 0x07, -1, 0x03, 0x0442, 0x00c6}, + cmdLutElement{0x0a, 0x08, -1, 0x03, 0x0442, 0x0146}, + cmdLutElement{0x0a, 0x09, -1, 0x03, 0x0442, 0x0246}, + cmdLutElement{0x0a, 0x0a, -1, 0x03, 0x0442, 0x0446}, + cmdLutElement{0x0a, 0x18, -1, 0x03, 0x0442, 0x0846}, + cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0046}, + cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0066}, + cmdLutElement{0x0c, 0x06, -1, 0x03, 0x0842, 0x0086}, + cmdLutElement{0x0c, 0x07, -1, 0x03, 0x0842, 0x00c6}, + cmdLutElement{0x0c, 0x08, -1, 0x03, 0x0842, 0x0146}, + cmdLutElement{0x0c, 0x09, -1, 0x03, 0x0842, 0x0246}, + cmdLutElement{0x0c, 0x0a, -1, 0x03, 0x0842, 0x0446}, + cmdLutElement{0x0c, 0x18, -1, 0x03, 0x0842, 0x0846}, + cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0046}, + cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0066}, + cmdLutElement{0x0e, 0x06, -1, 0x03, 0x1842, 0x0086}, + cmdLutElement{0x0e, 0x07, -1, 0x03, 0x1842, 0x00c6}, + cmdLutElement{0x0e, 0x08, -1, 0x03, 0x1842, 0x0146}, + cmdLutElement{0x0e, 0x09, -1, 0x03, 0x1842, 0x0246}, + cmdLutElement{0x0e, 0x0a, -1, 0x03, 0x1842, 0x0446}, + cmdLutElement{0x0e, 0x18, -1, 0x03, 0x1842, 0x0846}, + cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0046}, + cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0066}, + cmdLutElement{0x18, 0x06, -1, 0x03, 0x5842, 0x0086}, + cmdLutElement{0x18, 0x07, -1, 0x03, 0x5842, 0x00c6}, + cmdLutElement{0x18, 0x08, -1, 0x03, 0x5842, 0x0146}, + cmdLutElement{0x18, 0x09, -1, 0x03, 0x5842, 0x0246}, + cmdLutElement{0x18, 0x0a, -1, 0x03, 0x5842, 0x0446}, + cmdLutElement{0x18, 0x18, -1, 0x03, 0x5842, 0x0846}, +} diff --git a/vendor/github.com/andybalholm/brotli/quality.go b/vendor/github.com/andybalholm/brotli/quality.go new file mode 100644 index 0000000..49709a3 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/quality.go @@ -0,0 +1,196 @@ +package brotli + +const fastOnePassCompressionQuality = 0 + +const fastTwoPassCompressionQuality = 1 + +const zopflificationQuality = 10 + +const hqZopflificationQuality = 11 + +const maxQualityForStaticEntropyCodes = 2 + +const minQualityForBlockSplit = 4 + +const minQualityForNonzeroDistanceParams = 4 + +const minQualityForOptimizeHistograms = 4 + +const minQualityForExtensiveReferenceSearch = 5 + +const minQualityForContextModeling = 5 + +const minQualityForHqContextModeling = 7 + +const minQualityForHqBlockSplitting = 10 + +/* For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting, + so we buffer at most this much literals and commands. */ +const maxNumDelayedSymbols = 0x2FFF + +/* Returns hash-table size for quality levels 0 and 1. */ +func maxHashTableSize(quality int) uint { + if quality == fastOnePassCompressionQuality { + return 1 << 15 + } else { + return 1 << 17 + } +} + +/* The maximum length for which the zopflification uses distinct distances. */ +const maxZopfliLenQuality10 = 150 + +const maxZopfliLenQuality11 = 325 + +/* Do not thoroughly search when a long copy is found. */ +const longCopyQuickStep = 16384 + +func maxZopfliLen(params *encoderParams) uint { + if params.quality <= 10 { + return maxZopfliLenQuality10 + } else { + return maxZopfliLenQuality11 + } +} + +/* Number of best candidates to evaluate to expand Zopfli chain. */ +func maxZopfliCandidates(params *encoderParams) uint { + if params.quality <= 10 { + return 1 + } else { + return 5 + } +} + +func sanitizeParams(params *encoderParams) { + params.quality = brotli_min_int(maxQuality, brotli_max_int(minQuality, params.quality)) + if params.quality <= maxQualityForStaticEntropyCodes { + params.large_window = false + } + + if params.lgwin < minWindowBits { + params.lgwin = minWindowBits + } else { + var max_lgwin int + if params.large_window { + max_lgwin = largeMaxWindowBits + } else { + max_lgwin = maxWindowBits + } + if params.lgwin > uint(max_lgwin) { + params.lgwin = uint(max_lgwin) + } + } +} + +/* Returns optimized lg_block value. */ +func computeLgBlock(params *encoderParams) int { + var lgblock int = params.lgblock + if params.quality == fastOnePassCompressionQuality || params.quality == fastTwoPassCompressionQuality { + lgblock = int(params.lgwin) + } else if params.quality < minQualityForBlockSplit { + lgblock = 14 + } else if lgblock == 0 { + lgblock = 16 + if params.quality >= 9 && params.lgwin > uint(lgblock) { + lgblock = brotli_min_int(18, int(params.lgwin)) + } + } else { + lgblock = brotli_min_int(maxInputBlockBits, brotli_max_int(minInputBlockBits, lgblock)) + } + + return lgblock +} + +/* Returns log2 of the size of main ring buffer area. + Allocate at least lgwin + 1 bits for the ring buffer so that the newly + added block fits there completely and we still get lgwin bits and at least + read_block_size_bits + 1 bits because the copy tail length needs to be + smaller than ring-buffer size. */ +func computeRbBits(params *encoderParams) int { + return 1 + brotli_max_int(int(params.lgwin), params.lgblock) +} + +func maxMetablockSize(params *encoderParams) uint { + var bits int = brotli_min_int(computeRbBits(params), maxInputBlockBits) + return uint(1) << uint(bits) +} + +/* When searching for backward references and have not seen matches for a long + time, we can skip some match lookups. Unsuccessful match lookups are very + expensive and this kind of a heuristic speeds up compression quite a lot. + At first 8 byte strides are taken and every second byte is put to hasher. + After 4x more literals stride by 16 bytes, every put 4-th byte to hasher. + Applied only to qualities 2 to 9. */ +func literalSpreeLengthForSparseSearch(params *encoderParams) uint { + if params.quality < 9 { + return 64 + } else { + return 512 + } +} + +func chooseHasher(params *encoderParams, hparams *hasherParams) { + if params.quality > 9 { + hparams.type_ = 10 + } else if params.quality == 4 && params.size_hint >= 1<<20 { + hparams.type_ = 54 + } else if params.quality < 5 { + hparams.type_ = params.quality + } else if params.lgwin <= 16 { + if params.quality < 7 { + hparams.type_ = 40 + } else if params.quality < 9 { + hparams.type_ = 41 + } else { + hparams.type_ = 42 + } + } else if params.size_hint >= 1<<20 && params.lgwin >= 19 { + hparams.type_ = 6 + hparams.block_bits = params.quality - 1 + hparams.bucket_bits = 15 + hparams.hash_len = 5 + if params.quality < 7 { + hparams.num_last_distances_to_check = 4 + } else if params.quality < 9 { + hparams.num_last_distances_to_check = 10 + } else { + hparams.num_last_distances_to_check = 16 + } + } else { + hparams.type_ = 5 + hparams.block_bits = params.quality - 1 + if params.quality < 7 { + hparams.bucket_bits = 14 + } else { + hparams.bucket_bits = 15 + } + if params.quality < 7 { + hparams.num_last_distances_to_check = 4 + } else if params.quality < 9 { + hparams.num_last_distances_to_check = 10 + } else { + hparams.num_last_distances_to_check = 16 + } + } + + if params.lgwin > 24 { + /* Different hashers for large window brotli: not for qualities <= 2, + these are too fast for large window. Not for qualities >= 10: their + hasher already works well with large window. So the changes are: + H3 --> H35: for quality 3. + H54 --> H55: for quality 4 with size hint > 1MB + H6 --> H65: for qualities 5, 6, 7, 8, 9. */ + if hparams.type_ == 3 { + hparams.type_ = 35 + } + + if hparams.type_ == 54 { + hparams.type_ = 55 + } + + if hparams.type_ == 6 { + hparams.type_ = 65 + } + } +} diff --git a/vendor/github.com/andybalholm/brotli/reader.go b/vendor/github.com/andybalholm/brotli/reader.go new file mode 100644 index 0000000..9419c79 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/reader.go @@ -0,0 +1,108 @@ +package brotli + +import ( + "errors" + "io" +) + +type decodeError int + +func (err decodeError) Error() string { + return "brotli: " + string(decoderErrorString(int(err))) +} + +var errExcessiveInput = errors.New("brotli: excessive input") +var errInvalidState = errors.New("brotli: invalid state") + +// readBufSize is a "good" buffer size that avoids excessive round-trips +// between C and Go but doesn't waste too much memory on buffering. +// It is arbitrarily chosen to be equal to the constant used in io.Copy. +const readBufSize = 32 * 1024 + +// NewReader creates a new Reader reading the given reader. +func NewReader(src io.Reader) *Reader { + r := new(Reader) + r.Reset(src) + return r +} + +// Reset discards the Reader's state and makes it equivalent to the result of +// its original state from NewReader, but reading from src instead. +// This permits reusing a Reader rather than allocating a new one. +// Error is always nil +func (r *Reader) Reset(src io.Reader) error { + if r.error_code < 0 { + // There was an unrecoverable error, leaving the Reader's state + // undefined. Clear out everything but the buffer. + *r = Reader{buf: r.buf} + } + + decoderStateInit(r) + r.src = src + if r.buf == nil { + r.buf = make([]byte, readBufSize) + } + return nil +} + +func (r *Reader) Read(p []byte) (n int, err error) { + if !decoderHasMoreOutput(r) && len(r.in) == 0 { + m, readErr := r.src.Read(r.buf) + if m == 0 { + // If readErr is `nil`, we just proxy underlying stream behavior. + return 0, readErr + } + r.in = r.buf[:m] + } + + if len(p) == 0 { + return 0, nil + } + + for { + var written uint + in_len := uint(len(r.in)) + out_len := uint(len(p)) + in_remaining := in_len + out_remaining := out_len + result := decoderDecompressStream(r, &in_remaining, &r.in, &out_remaining, &p) + written = out_len - out_remaining + n = int(written) + + switch result { + case decoderResultSuccess: + if len(r.in) > 0 { + return n, errExcessiveInput + } + return n, nil + case decoderResultError: + return n, decodeError(decoderGetErrorCode(r)) + case decoderResultNeedsMoreOutput: + if n == 0 { + return 0, io.ErrShortBuffer + } + return n, nil + case decoderNeedsMoreInput: + } + + if len(r.in) != 0 { + return 0, errInvalidState + } + + // Calling r.src.Read may block. Don't block if we have data to return. + if n > 0 { + return n, nil + } + + // Top off the buffer. + encN, err := r.src.Read(r.buf) + if encN == 0 { + // Not enough data to complete decoding. + if err == io.EOF { + return 0, io.ErrUnexpectedEOF + } + return 0, err + } + r.in = r.buf[:encN] + } +} diff --git a/vendor/github.com/andybalholm/brotli/ringbuffer.go b/vendor/github.com/andybalholm/brotli/ringbuffer.go new file mode 100644 index 0000000..1c8f86f --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/ringbuffer.go @@ -0,0 +1,134 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* A ringBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of + data in a circular manner: writing a byte writes it to: + `position() % (1 << window_bits)'. + For convenience, the ringBuffer array contains another copy of the + first `1 << tail_bits' bytes: + buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), + and another copy of the last two bytes: + buffer_[-1] == buffer_[(1 << window_bits) - 1] and + buffer_[-2] == buffer_[(1 << window_bits) - 2]. */ +type ringBuffer struct { + size_ uint32 + mask_ uint32 + tail_size_ uint32 + total_size_ uint32 + cur_size_ uint32 + pos_ uint32 + data_ []byte + buffer_ []byte +} + +func ringBufferInit(rb *ringBuffer) { + rb.pos_ = 0 +} + +func ringBufferSetup(params *encoderParams, rb *ringBuffer) { + var window_bits int = computeRbBits(params) + var tail_bits int = params.lgblock + *(*uint32)(&rb.size_) = 1 << uint(window_bits) + *(*uint32)(&rb.mask_) = (1 << uint(window_bits)) - 1 + *(*uint32)(&rb.tail_size_) = 1 << uint(tail_bits) + *(*uint32)(&rb.total_size_) = rb.size_ + rb.tail_size_ +} + +const kSlackForEightByteHashingEverywhere uint = 7 + +/* Allocates or re-allocates data_ to the given length + plus some slack + region before and after. Fills the slack regions with zeros. */ +func ringBufferInitBuffer(buflen uint32, rb *ringBuffer) { + var new_data []byte + var i uint + size := 2 + int(buflen) + int(kSlackForEightByteHashingEverywhere) + if cap(rb.data_) < size { + new_data = make([]byte, size) + } else { + new_data = rb.data_[:size] + } + if rb.data_ != nil { + copy(new_data, rb.data_[:2+rb.cur_size_+uint32(kSlackForEightByteHashingEverywhere)]) + } + + rb.data_ = new_data + rb.cur_size_ = buflen + rb.buffer_ = rb.data_[2:] + rb.data_[1] = 0 + rb.data_[0] = rb.data_[1] + for i = 0; i < kSlackForEightByteHashingEverywhere; i++ { + rb.buffer_[rb.cur_size_+uint32(i)] = 0 + } +} + +func ringBufferWriteTail(bytes []byte, n uint, rb *ringBuffer) { + var masked_pos uint = uint(rb.pos_ & rb.mask_) + if uint32(masked_pos) < rb.tail_size_ { + /* Just fill the tail buffer with the beginning data. */ + var p uint = uint(rb.size_ + uint32(masked_pos)) + copy(rb.buffer_[p:], bytes[:brotli_min_size_t(n, uint(rb.tail_size_-uint32(masked_pos)))]) + } +} + +/* Push bytes into the ring buffer. */ +func ringBufferWrite(bytes []byte, n uint, rb *ringBuffer) { + if rb.pos_ == 0 && uint32(n) < rb.tail_size_ { + /* Special case for the first write: to process the first block, we don't + need to allocate the whole ring-buffer and we don't need the tail + either. However, we do this memory usage optimization only if the + first write is less than the tail size, which is also the input block + size, otherwise it is likely that other blocks will follow and we + will need to reallocate to the full size anyway. */ + rb.pos_ = uint32(n) + + ringBufferInitBuffer(rb.pos_, rb) + copy(rb.buffer_, bytes[:n]) + return + } + + if rb.cur_size_ < rb.total_size_ { + /* Lazily allocate the full buffer. */ + ringBufferInitBuffer(rb.total_size_, rb) + + /* Initialize the last two bytes to zero, so that we don't have to worry + later when we copy the last two bytes to the first two positions. */ + rb.buffer_[rb.size_-2] = 0 + + rb.buffer_[rb.size_-1] = 0 + } + { + var masked_pos uint = uint(rb.pos_ & rb.mask_) + + /* The length of the writes is limited so that we do not need to worry + about a write */ + ringBufferWriteTail(bytes, n, rb) + + if uint32(masked_pos+n) <= rb.size_ { + /* A single write fits. */ + copy(rb.buffer_[masked_pos:], bytes[:n]) + } else { + /* Split into two writes. + Copy into the end of the buffer, including the tail buffer. */ + copy(rb.buffer_[masked_pos:], bytes[:brotli_min_size_t(n, uint(rb.total_size_-uint32(masked_pos)))]) + + /* Copy into the beginning of the buffer */ + copy(rb.buffer_, bytes[rb.size_-uint32(masked_pos):][:uint32(n)-(rb.size_-uint32(masked_pos))]) + } + } + { + var not_first_lap bool = rb.pos_&(1<<31) != 0 + var rb_pos_mask uint32 = (1 << 31) - 1 + rb.data_[0] = rb.buffer_[rb.size_-2] + rb.data_[1] = rb.buffer_[rb.size_-1] + rb.pos_ = (rb.pos_ & rb_pos_mask) + uint32(uint32(n)&rb_pos_mask) + if not_first_lap { + /* Wrap, but preserve not-a-first-lap feature. */ + rb.pos_ |= 1 << 31 + } + } +} diff --git a/vendor/github.com/andybalholm/brotli/state.go b/vendor/github.com/andybalholm/brotli/state.go new file mode 100644 index 0000000..38d753e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/state.go @@ -0,0 +1,294 @@ +package brotli + +import "io" + +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Brotli state for partial streaming decoding. */ +const ( + stateUninited = iota + stateLargeWindowBits + stateInitialize + stateMetablockBegin + stateMetablockHeader + stateMetablockHeader2 + stateContextModes + stateCommandBegin + stateCommandInner + stateCommandPostDecodeLiterals + stateCommandPostWrapCopy + stateUncompressed + stateMetadata + stateCommandInnerWrite + stateMetablockDone + stateCommandPostWrite1 + stateCommandPostWrite2 + stateHuffmanCode0 + stateHuffmanCode1 + stateHuffmanCode2 + stateHuffmanCode3 + stateContextMap1 + stateContextMap2 + stateTreeGroup + stateDone +) + +const ( + stateMetablockHeaderNone = iota + stateMetablockHeaderEmpty + stateMetablockHeaderNibbles + stateMetablockHeaderSize + stateMetablockHeaderUncompressed + stateMetablockHeaderReserved + stateMetablockHeaderBytes + stateMetablockHeaderMetadata +) + +const ( + stateUncompressedNone = iota + stateUncompressedWrite +) + +const ( + stateTreeGroupNone = iota + stateTreeGroupLoop +) + +const ( + stateContextMapNone = iota + stateContextMapReadPrefix + stateContextMapHuffman + stateContextMapDecode + stateContextMapTransform +) + +const ( + stateHuffmanNone = iota + stateHuffmanSimpleSize + stateHuffmanSimpleRead + stateHuffmanSimpleBuild + stateHuffmanComplex + stateHuffmanLengthSymbols +) + +const ( + stateDecodeUint8None = iota + stateDecodeUint8Short + stateDecodeUint8Long +) + +const ( + stateReadBlockLengthNone = iota + stateReadBlockLengthSuffix +) + +type Reader struct { + src io.Reader + buf []byte // scratch space for reading from src + in []byte // current chunk to decode; usually aliases buf + + state int + loop_counter int + br bitReader + buffer struct { + u64 uint64 + u8 [8]byte + } + buffer_length uint32 + pos int + max_backward_distance int + max_distance int + ringbuffer_size int + ringbuffer_mask int + dist_rb_idx int + dist_rb [4]int + error_code int + sub_loop_counter uint32 + ringbuffer []byte + ringbuffer_end []byte + htree_command []huffmanCode + context_lookup []byte + context_map_slice []byte + dist_context_map_slice []byte + literal_hgroup huffmanTreeGroup + insert_copy_hgroup huffmanTreeGroup + distance_hgroup huffmanTreeGroup + block_type_trees []huffmanCode + block_len_trees []huffmanCode + trivial_literal_context int + distance_context int + meta_block_remaining_len int + block_length_index uint32 + block_length [3]uint32 + num_block_types [3]uint32 + block_type_rb [6]uint32 + distance_postfix_bits uint32 + num_direct_distance_codes uint32 + distance_postfix_mask int + num_dist_htrees uint32 + dist_context_map []byte + literal_htree []huffmanCode + dist_htree_index byte + repeat_code_len uint32 + prev_code_len uint32 + copy_length int + distance_code int + rb_roundtrips uint + partial_pos_out uint + symbol uint32 + repeat uint32 + space uint32 + table [32]huffmanCode + symbol_lists symbolList + symbols_lists_array [huffmanMaxCodeLength + 1 + numCommandSymbols]uint16 + next_symbol [32]int + code_length_code_lengths [codeLengthCodes]byte + code_length_histo [16]uint16 + htree_index int + next []huffmanCode + context_index uint32 + max_run_length_prefix uint32 + code uint32 + context_map_table [huffmanMaxSize272]huffmanCode + substate_metablock_header int + substate_tree_group int + substate_context_map int + substate_uncompressed int + substate_huffman int + substate_decode_uint8 int + substate_read_block_length int + is_last_metablock uint + is_uncompressed uint + is_metadata uint + should_wrap_ringbuffer uint + canny_ringbuffer_allocation uint + large_window bool + size_nibbles uint + window_bits uint32 + new_ringbuffer_size int + num_literal_htrees uint32 + context_map []byte + context_modes []byte + dictionary *dictionary + transforms *transforms + trivial_literal_contexts [8]uint32 +} + +func decoderStateInit(s *Reader) bool { + s.error_code = 0 /* BROTLI_DECODER_NO_ERROR */ + + initBitReader(&s.br) + s.state = stateUninited + s.large_window = false + s.substate_metablock_header = stateMetablockHeaderNone + s.substate_tree_group = stateTreeGroupNone + s.substate_context_map = stateContextMapNone + s.substate_uncompressed = stateUncompressedNone + s.substate_huffman = stateHuffmanNone + s.substate_decode_uint8 = stateDecodeUint8None + s.substate_read_block_length = stateReadBlockLengthNone + + s.buffer_length = 0 + s.loop_counter = 0 + s.pos = 0 + s.rb_roundtrips = 0 + s.partial_pos_out = 0 + + s.block_type_trees = nil + s.block_len_trees = nil + s.ringbuffer_size = 0 + s.new_ringbuffer_size = 0 + s.ringbuffer_mask = 0 + + s.context_map = nil + s.context_modes = nil + s.dist_context_map = nil + s.context_map_slice = nil + s.dist_context_map_slice = nil + + s.sub_loop_counter = 0 + + s.literal_hgroup.codes = nil + s.literal_hgroup.htrees = nil + s.insert_copy_hgroup.codes = nil + s.insert_copy_hgroup.htrees = nil + s.distance_hgroup.codes = nil + s.distance_hgroup.htrees = nil + + s.is_last_metablock = 0 + s.is_uncompressed = 0 + s.is_metadata = 0 + s.should_wrap_ringbuffer = 0 + s.canny_ringbuffer_allocation = 1 + + s.window_bits = 0 + s.max_distance = 0 + s.dist_rb[0] = 16 + s.dist_rb[1] = 15 + s.dist_rb[2] = 11 + s.dist_rb[3] = 4 + s.dist_rb_idx = 0 + s.block_type_trees = nil + s.block_len_trees = nil + + s.symbol_lists.storage = s.symbols_lists_array[:] + s.symbol_lists.offset = huffmanMaxCodeLength + 1 + + s.dictionary = getDictionary() + s.transforms = getTransforms() + + return true +} + +func decoderStateMetablockBegin(s *Reader) { + s.meta_block_remaining_len = 0 + s.block_length[0] = 1 << 24 + s.block_length[1] = 1 << 24 + s.block_length[2] = 1 << 24 + s.num_block_types[0] = 1 + s.num_block_types[1] = 1 + s.num_block_types[2] = 1 + s.block_type_rb[0] = 1 + s.block_type_rb[1] = 0 + s.block_type_rb[2] = 1 + s.block_type_rb[3] = 0 + s.block_type_rb[4] = 1 + s.block_type_rb[5] = 0 + s.context_map = nil + s.context_modes = nil + s.dist_context_map = nil + s.context_map_slice = nil + s.literal_htree = nil + s.dist_context_map_slice = nil + s.dist_htree_index = 0 + s.context_lookup = nil + s.literal_hgroup.codes = nil + s.literal_hgroup.htrees = nil + s.insert_copy_hgroup.codes = nil + s.insert_copy_hgroup.htrees = nil + s.distance_hgroup.codes = nil + s.distance_hgroup.htrees = nil +} + +func decoderStateCleanupAfterMetablock(s *Reader) { + s.context_modes = nil + s.context_map = nil + s.dist_context_map = nil + s.literal_hgroup.htrees = nil + s.insert_copy_hgroup.htrees = nil + s.distance_hgroup.htrees = nil +} + +func decoderHuffmanTreeGroupInit(s *Reader, group *huffmanTreeGroup, alphabet_size uint32, max_symbol uint32, ntrees uint32) bool { + var max_table_size uint = uint(kMaxHuffmanTableSize[(alphabet_size+31)>>5]) + group.alphabet_size = uint16(alphabet_size) + group.max_symbol = uint16(max_symbol) + group.num_htrees = uint16(ntrees) + group.htrees = make([][]huffmanCode, ntrees) + group.codes = make([]huffmanCode, (uint(ntrees) * max_table_size)) + return !(group.codes == nil) +} diff --git a/vendor/github.com/andybalholm/brotli/static_dict.go b/vendor/github.com/andybalholm/brotli/static_dict.go new file mode 100644 index 0000000..bc05566 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/static_dict.go @@ -0,0 +1,662 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Class to model the static dictionary. */ + +const maxStaticDictionaryMatchLen = 37 + +const kInvalidMatch uint32 = 0xFFFFFFF + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ +func hash(data []byte) uint32 { + var h uint32 = binary.LittleEndian.Uint32(data) * kDictHashMul32 + + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> uint(32-kDictNumBits) +} + +func addMatch(distance uint, len uint, len_code uint, matches []uint32) { + var match uint32 = uint32((distance << 5) + len_code) + matches[len] = brotli_min_uint32_t(matches[len], match) +} + +func dictMatchLength(dict *dictionary, data []byte, id uint, len uint, maxlen uint) uint { + var offset uint = uint(dict.offsets_by_length[len]) + len*id + return findMatchLengthWithLimit(dict.data[offset:], data, brotli_min_size_t(uint(len), maxlen)) +} + +func isMatch(d *dictionary, w dictWord, data []byte, max_length uint) bool { + if uint(w.len) > max_length { + return false + } else { + var offset uint = uint(d.offsets_by_length[w.len]) + uint(w.len)*uint(w.idx) + var dict []byte = d.data[offset:] + if w.transform == 0 { + /* Match against base dictionary word. */ + return findMatchLengthWithLimit(dict, data, uint(w.len)) == uint(w.len) + } else if w.transform == 10 { + /* Match against uppercase first transform. + Note that there are only ASCII uppercase words in the lookup table. */ + return dict[0] >= 'a' && dict[0] <= 'z' && (dict[0]^32) == data[0] && findMatchLengthWithLimit(dict[1:], data[1:], uint(w.len)-1) == uint(w.len-1) + } else { + /* Match against uppercase all transform. + Note that there are only ASCII uppercase words in the lookup table. */ + var i uint + for i = 0; i < uint(w.len); i++ { + if dict[i] >= 'a' && dict[i] <= 'z' { + if (dict[i] ^ 32) != data[i] { + return false + } + } else { + if dict[i] != data[i] { + return false + } + } + } + + return true + } + } +} + +func findAllStaticDictionaryMatches(dict *encoderDictionary, data []byte, min_length uint, max_length uint, matches []uint32) bool { + var has_found_match bool = false + { + var offset uint = uint(dict.buckets[hash(data)]) + var end bool = offset == 0 + for !end { + w := dict.dict_words[offset] + offset++ + var l uint = uint(w.len) & 0x1F + var n uint = uint(1) << dict.words.size_bits_by_length[l] + var id uint = uint(w.idx) + end = !(w.len&0x80 == 0) + w.len = byte(l) + if w.transform == 0 { + var matchlen uint = dictMatchLength(dict.words, data, id, l, max_length) + var s []byte + var minlen uint + var maxlen uint + var len uint + + /* Transform "" + BROTLI_TRANSFORM_IDENTITY + "" */ + if matchlen == l { + addMatch(id, l, l, matches) + has_found_match = true + } + + /* Transforms "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "" and + "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "ing " */ + if matchlen >= l-1 { + addMatch(id+12*n, l-1, l, matches) + if l+2 < max_length && data[l-1] == 'i' && data[l] == 'n' && data[l+1] == 'g' && data[l+2] == ' ' { + addMatch(id+49*n, l+3, l, matches) + } + + has_found_match = true + } + + /* Transform "" + BROTLI_TRANSFORM_OMIT_LAST_# + "" (# = 2 .. 9) */ + minlen = min_length + + if l > 9 { + minlen = brotli_max_size_t(minlen, l-9) + } + maxlen = brotli_min_size_t(matchlen, l-2) + for len = minlen; len <= maxlen; len++ { + var cut uint = l - len + var transform_id uint = (cut << 2) + uint((dict.cutoffTransforms>>(cut*6))&0x3F) + addMatch(id+transform_id*n, uint(len), l, matches) + has_found_match = true + } + + if matchlen < l || l+6 >= max_length { + continue + } + + s = data[l:] + + /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + */ + if s[0] == ' ' { + addMatch(id+n, l+1, l, matches) + if s[1] == 'a' { + if s[2] == ' ' { + addMatch(id+28*n, l+3, l, matches) + } else if s[2] == 's' { + if s[3] == ' ' { + addMatch(id+46*n, l+4, l, matches) + } + } else if s[2] == 't' { + if s[3] == ' ' { + addMatch(id+60*n, l+4, l, matches) + } + } else if s[2] == 'n' { + if s[3] == 'd' && s[4] == ' ' { + addMatch(id+10*n, l+5, l, matches) + } + } + } else if s[1] == 'b' { + if s[2] == 'y' && s[3] == ' ' { + addMatch(id+38*n, l+4, l, matches) + } + } else if s[1] == 'i' { + if s[2] == 'n' { + if s[3] == ' ' { + addMatch(id+16*n, l+4, l, matches) + } + } else if s[2] == 's' { + if s[3] == ' ' { + addMatch(id+47*n, l+4, l, matches) + } + } + } else if s[1] == 'f' { + if s[2] == 'o' { + if s[3] == 'r' && s[4] == ' ' { + addMatch(id+25*n, l+5, l, matches) + } + } else if s[2] == 'r' { + if s[3] == 'o' && s[4] == 'm' && s[5] == ' ' { + addMatch(id+37*n, l+6, l, matches) + } + } + } else if s[1] == 'o' { + if s[2] == 'f' { + if s[3] == ' ' { + addMatch(id+8*n, l+4, l, matches) + } + } else if s[2] == 'n' { + if s[3] == ' ' { + addMatch(id+45*n, l+4, l, matches) + } + } + } else if s[1] == 'n' { + if s[2] == 'o' && s[3] == 't' && s[4] == ' ' { + addMatch(id+80*n, l+5, l, matches) + } + } else if s[1] == 't' { + if s[2] == 'h' { + if s[3] == 'e' { + if s[4] == ' ' { + addMatch(id+5*n, l+5, l, matches) + } + } else if s[3] == 'a' { + if s[4] == 't' && s[5] == ' ' { + addMatch(id+29*n, l+6, l, matches) + } + } + } else if s[2] == 'o' { + if s[3] == ' ' { + addMatch(id+17*n, l+4, l, matches) + } + } + } else if s[1] == 'w' { + if s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ' { + addMatch(id+35*n, l+6, l, matches) + } + } + } else if s[0] == '"' { + addMatch(id+19*n, l+1, l, matches) + if s[1] == '>' { + addMatch(id+21*n, l+2, l, matches) + } + } else if s[0] == '.' { + addMatch(id+20*n, l+1, l, matches) + if s[1] == ' ' { + addMatch(id+31*n, l+2, l, matches) + if s[2] == 'T' && s[3] == 'h' { + if s[4] == 'e' { + if s[5] == ' ' { + addMatch(id+43*n, l+6, l, matches) + } + } else if s[4] == 'i' { + if s[5] == 's' && s[6] == ' ' { + addMatch(id+75*n, l+7, l, matches) + } + } + } + } + } else if s[0] == ',' { + addMatch(id+76*n, l+1, l, matches) + if s[1] == ' ' { + addMatch(id+14*n, l+2, l, matches) + } + } else if s[0] == '\n' { + addMatch(id+22*n, l+1, l, matches) + if s[1] == '\t' { + addMatch(id+50*n, l+2, l, matches) + } + } else if s[0] == ']' { + addMatch(id+24*n, l+1, l, matches) + } else if s[0] == '\'' { + addMatch(id+36*n, l+1, l, matches) + } else if s[0] == ':' { + addMatch(id+51*n, l+1, l, matches) + } else if s[0] == '(' { + addMatch(id+57*n, l+1, l, matches) + } else if s[0] == '=' { + if s[1] == '"' { + addMatch(id+70*n, l+2, l, matches) + } else if s[1] == '\'' { + addMatch(id+86*n, l+2, l, matches) + } + } else if s[0] == 'a' { + if s[1] == 'l' && s[2] == ' ' { + addMatch(id+84*n, l+3, l, matches) + } + } else if s[0] == 'e' { + if s[1] == 'd' { + if s[2] == ' ' { + addMatch(id+53*n, l+3, l, matches) + } + } else if s[1] == 'r' { + if s[2] == ' ' { + addMatch(id+82*n, l+3, l, matches) + } + } else if s[1] == 's' { + if s[2] == 't' && s[3] == ' ' { + addMatch(id+95*n, l+4, l, matches) + } + } + } else if s[0] == 'f' { + if s[1] == 'u' && s[2] == 'l' && s[3] == ' ' { + addMatch(id+90*n, l+4, l, matches) + } + } else if s[0] == 'i' { + if s[1] == 'v' { + if s[2] == 'e' && s[3] == ' ' { + addMatch(id+92*n, l+4, l, matches) + } + } else if s[1] == 'z' { + if s[2] == 'e' && s[3] == ' ' { + addMatch(id+100*n, l+4, l, matches) + } + } + } else if s[0] == 'l' { + if s[1] == 'e' { + if s[2] == 's' && s[3] == 's' && s[4] == ' ' { + addMatch(id+93*n, l+5, l, matches) + } + } else if s[1] == 'y' { + if s[2] == ' ' { + addMatch(id+61*n, l+3, l, matches) + } + } + } else if s[0] == 'o' { + if s[1] == 'u' && s[2] == 's' && s[3] == ' ' { + addMatch(id+106*n, l+4, l, matches) + } + } + } else { + var is_all_caps bool = (w.transform != transformUppercaseFirst) + /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and + is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) + transform. */ + + var s []byte + if !isMatch(dict.words, w, data, max_length) { + continue + } + + /* Transform "" + kUppercase{First,All} + "" */ + var tmp int + if is_all_caps { + tmp = 44 + } else { + tmp = 9 + } + addMatch(id+uint(tmp)*n, l, l, matches) + + has_found_match = true + if l+1 >= max_length { + continue + } + + /* Transforms "" + kUppercase{First,All} + */ + s = data[l:] + + if s[0] == ' ' { + var tmp int + if is_all_caps { + tmp = 68 + } else { + tmp = 4 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + } else if s[0] == '"' { + var tmp int + if is_all_caps { + tmp = 87 + } else { + tmp = 66 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + if s[1] == '>' { + var tmp int + if is_all_caps { + tmp = 97 + } else { + tmp = 69 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } + } else if s[0] == '.' { + var tmp int + if is_all_caps { + tmp = 101 + } else { + tmp = 79 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + if s[1] == ' ' { + var tmp int + if is_all_caps { + tmp = 114 + } else { + tmp = 88 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } + } else if s[0] == ',' { + var tmp int + if is_all_caps { + tmp = 112 + } else { + tmp = 99 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + if s[1] == ' ' { + var tmp int + if is_all_caps { + tmp = 107 + } else { + tmp = 58 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } + } else if s[0] == '\'' { + var tmp int + if is_all_caps { + tmp = 94 + } else { + tmp = 74 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + } else if s[0] == '(' { + var tmp int + if is_all_caps { + tmp = 113 + } else { + tmp = 78 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + } else if s[0] == '=' { + if s[1] == '"' { + var tmp int + if is_all_caps { + tmp = 105 + } else { + tmp = 104 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } else if s[1] == '\'' { + var tmp int + if is_all_caps { + tmp = 116 + } else { + tmp = 108 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } + } + } + } + } + + /* Transforms with prefixes " " and "." */ + if max_length >= 5 && (data[0] == ' ' || data[0] == '.') { + var is_space bool = (data[0] == ' ') + var offset uint = uint(dict.buckets[hash(data[1:])]) + var end bool = offset == 0 + for !end { + w := dict.dict_words[offset] + offset++ + var l uint = uint(w.len) & 0x1F + var n uint = uint(1) << dict.words.size_bits_by_length[l] + var id uint = uint(w.idx) + end = !(w.len&0x80 == 0) + w.len = byte(l) + if w.transform == 0 { + var s []byte + if !isMatch(dict.words, w, data[1:], max_length-1) { + continue + } + + /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + "" and + "." + BROTLI_TRANSFORM_IDENTITY + "" */ + var tmp int + if is_space { + tmp = 6 + } else { + tmp = 32 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + + has_found_match = true + if l+2 >= max_length { + continue + } + + /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + and + "." + BROTLI_TRANSFORM_IDENTITY + + */ + s = data[l+1:] + + if s[0] == ' ' { + var tmp int + if is_space { + tmp = 2 + } else { + tmp = 77 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } else if s[0] == '(' { + var tmp int + if is_space { + tmp = 89 + } else { + tmp = 67 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } else if is_space { + if s[0] == ',' { + addMatch(id+103*n, l+2, l, matches) + if s[1] == ' ' { + addMatch(id+33*n, l+3, l, matches) + } + } else if s[0] == '.' { + addMatch(id+71*n, l+2, l, matches) + if s[1] == ' ' { + addMatch(id+52*n, l+3, l, matches) + } + } else if s[0] == '=' { + if s[1] == '"' { + addMatch(id+81*n, l+3, l, matches) + } else if s[1] == '\'' { + addMatch(id+98*n, l+3, l, matches) + } + } + } + } else if is_space { + var is_all_caps bool = (w.transform != transformUppercaseFirst) + /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and + is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) + transform. */ + + var s []byte + if !isMatch(dict.words, w, data[1:], max_length-1) { + continue + } + + /* Transforms " " + kUppercase{First,All} + "" */ + var tmp int + if is_all_caps { + tmp = 85 + } else { + tmp = 30 + } + addMatch(id+uint(tmp)*n, l+1, l, matches) + + has_found_match = true + if l+2 >= max_length { + continue + } + + /* Transforms " " + kUppercase{First,All} + */ + s = data[l+1:] + + if s[0] == ' ' { + var tmp int + if is_all_caps { + tmp = 83 + } else { + tmp = 15 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + } else if s[0] == ',' { + if !is_all_caps { + addMatch(id+109*n, l+2, l, matches) + } + + if s[1] == ' ' { + var tmp int + if is_all_caps { + tmp = 111 + } else { + tmp = 65 + } + addMatch(id+uint(tmp)*n, l+3, l, matches) + } + } else if s[0] == '.' { + var tmp int + if is_all_caps { + tmp = 115 + } else { + tmp = 96 + } + addMatch(id+uint(tmp)*n, l+2, l, matches) + if s[1] == ' ' { + var tmp int + if is_all_caps { + tmp = 117 + } else { + tmp = 91 + } + addMatch(id+uint(tmp)*n, l+3, l, matches) + } + } else if s[0] == '=' { + if s[1] == '"' { + var tmp int + if is_all_caps { + tmp = 110 + } else { + tmp = 118 + } + addMatch(id+uint(tmp)*n, l+3, l, matches) + } else if s[1] == '\'' { + var tmp int + if is_all_caps { + tmp = 119 + } else { + tmp = 120 + } + addMatch(id+uint(tmp)*n, l+3, l, matches) + } + } + } + } + } + + if max_length >= 6 { + /* Transforms with prefixes "e ", "s ", ", " and "\xC2\xA0" */ + if (data[1] == ' ' && (data[0] == 'e' || data[0] == 's' || data[0] == ',')) || (data[0] == 0xC2 && data[1] == 0xA0) { + var offset uint = uint(dict.buckets[hash(data[2:])]) + var end bool = offset == 0 + for !end { + w := dict.dict_words[offset] + offset++ + var l uint = uint(w.len) & 0x1F + var n uint = uint(1) << dict.words.size_bits_by_length[l] + var id uint = uint(w.idx) + end = !(w.len&0x80 == 0) + w.len = byte(l) + if w.transform == 0 && isMatch(dict.words, w, data[2:], max_length-2) { + if data[0] == 0xC2 { + addMatch(id+102*n, l+2, l, matches) + has_found_match = true + } else if l+2 < max_length && data[l+2] == ' ' { + var t uint = 13 + if data[0] == 'e' { + t = 18 + } else if data[0] == 's' { + t = 7 + } + addMatch(id+t*n, l+3, l, matches) + has_found_match = true + } + } + } + } + } + + if max_length >= 9 { + /* Transforms with prefixes " the " and ".com/" */ + if (data[0] == ' ' && data[1] == 't' && data[2] == 'h' && data[3] == 'e' && data[4] == ' ') || (data[0] == '.' && data[1] == 'c' && data[2] == 'o' && data[3] == 'm' && data[4] == '/') { + var offset uint = uint(dict.buckets[hash(data[5:])]) + var end bool = offset == 0 + for !end { + w := dict.dict_words[offset] + offset++ + var l uint = uint(w.len) & 0x1F + var n uint = uint(1) << dict.words.size_bits_by_length[l] + var id uint = uint(w.idx) + end = !(w.len&0x80 == 0) + w.len = byte(l) + if w.transform == 0 && isMatch(dict.words, w, data[5:], max_length-5) { + var tmp int + if data[0] == ' ' { + tmp = 41 + } else { + tmp = 72 + } + addMatch(id+uint(tmp)*n, l+5, l, matches) + has_found_match = true + if l+5 < max_length { + var s []byte = data[l+5:] + if data[0] == ' ' { + if l+8 < max_length && s[0] == ' ' && s[1] == 'o' && s[2] == 'f' && s[3] == ' ' { + addMatch(id+62*n, l+9, l, matches) + if l+12 < max_length && s[4] == 't' && s[5] == 'h' && s[6] == 'e' && s[7] == ' ' { + addMatch(id+73*n, l+13, l, matches) + } + } + } + } + } + } + } + } + + return has_found_match +} diff --git a/vendor/github.com/andybalholm/brotli/static_dict_lut.go b/vendor/github.com/andybalholm/brotli/static_dict_lut.go new file mode 100644 index 0000000..b33963e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/static_dict_lut.go @@ -0,0 +1,75094 @@ +package brotli + +/* Copyright 2017 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Lookup table for static dictionary and transforms. */ + +type dictWord struct { + len byte + transform byte + idx uint16 +} + +const kDictNumBits int = 15 + +const kDictHashMul32 uint32 = 0x1E35A7BD + +var kStaticDictionaryBuckets = [32768]uint16{ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 6, + 0, + 0, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 21, + 0, + 22, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23, + 0, + 0, + 25, + 0, + 29, + 0, + 53, + 0, + 0, + 0, + 0, + 0, + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 0, + 61, + 76, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 0, + 0, + 0, + 96, + 0, + 97, + 0, + 98, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 99, + 101, + 106, + 108, + 0, + 0, + 0, + 0, + 0, + 110, + 0, + 111, + 112, + 0, + 113, + 118, + 124, + 0, + 0, + 0, + 0, + 0, + 125, + 128, + 0, + 0, + 0, + 0, + 129, + 0, + 0, + 131, + 0, + 0, + 0, + 0, + 0, + 0, + 132, + 0, + 0, + 135, + 0, + 0, + 0, + 137, + 0, + 0, + 0, + 0, + 0, + 138, + 139, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 142, + 143, + 144, + 0, + 0, + 0, + 0, + 0, + 145, + 0, + 0, + 0, + 146, + 149, + 151, + 152, + 0, + 0, + 153, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 154, + 0, + 0, + 0, + 0, + 0, + 0, + 155, + 0, + 0, + 0, + 0, + 160, + 182, + 0, + 0, + 0, + 0, + 0, + 0, + 183, + 0, + 0, + 0, + 188, + 189, + 0, + 0, + 192, + 0, + 0, + 0, + 0, + 0, + 0, + 194, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 197, + 202, + 209, + 0, + 0, + 210, + 0, + 224, + 0, + 0, + 0, + 225, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 231, + 0, + 0, + 0, + 232, + 0, + 240, + 0, + 0, + 242, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 244, + 0, + 0, + 0, + 246, + 0, + 0, + 249, + 251, + 253, + 0, + 0, + 0, + 0, + 0, + 258, + 0, + 0, + 261, + 263, + 0, + 0, + 0, + 267, + 0, + 0, + 268, + 0, + 269, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 271, + 0, + 0, + 0, + 0, + 0, + 0, + 272, + 0, + 273, + 0, + 277, + 0, + 278, + 286, + 0, + 0, + 0, + 0, + 287, + 0, + 289, + 290, + 291, + 0, + 0, + 0, + 295, + 0, + 0, + 296, + 297, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 298, + 0, + 0, + 0, + 299, + 0, + 0, + 305, + 0, + 324, + 0, + 0, + 0, + 0, + 0, + 327, + 0, + 328, + 329, + 0, + 0, + 0, + 0, + 336, + 0, + 0, + 340, + 0, + 341, + 342, + 343, + 0, + 0, + 346, + 0, + 348, + 0, + 0, + 0, + 0, + 0, + 0, + 349, + 351, + 0, + 0, + 355, + 0, + 363, + 0, + 364, + 0, + 368, + 369, + 0, + 370, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 372, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 373, + 0, + 375, + 0, + 0, + 0, + 0, + 376, + 377, + 0, + 0, + 394, + 395, + 396, + 0, + 0, + 398, + 0, + 0, + 0, + 0, + 400, + 0, + 0, + 408, + 0, + 0, + 0, + 0, + 420, + 0, + 0, + 0, + 0, + 0, + 0, + 421, + 0, + 0, + 422, + 423, + 0, + 0, + 429, + 435, + 436, + 442, + 0, + 0, + 443, + 0, + 444, + 445, + 453, + 456, + 0, + 457, + 0, + 0, + 0, + 0, + 0, + 458, + 0, + 0, + 0, + 459, + 0, + 0, + 0, + 460, + 0, + 462, + 463, + 465, + 0, + 0, + 0, + 0, + 0, + 0, + 466, + 469, + 0, + 0, + 0, + 0, + 0, + 0, + 470, + 0, + 0, + 0, + 474, + 0, + 476, + 0, + 0, + 0, + 0, + 483, + 0, + 485, + 0, + 0, + 0, + 486, + 0, + 0, + 488, + 491, + 492, + 0, + 0, + 497, + 499, + 500, + 0, + 501, + 0, + 0, + 0, + 505, + 0, + 0, + 506, + 0, + 0, + 0, + 507, + 0, + 0, + 0, + 509, + 0, + 0, + 0, + 0, + 511, + 512, + 519, + 0, + 0, + 0, + 0, + 0, + 0, + 529, + 530, + 0, + 0, + 0, + 534, + 0, + 0, + 0, + 0, + 543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 553, + 0, + 0, + 0, + 0, + 557, + 560, + 0, + 0, + 0, + 0, + 0, + 0, + 561, + 0, + 564, + 0, + 0, + 0, + 0, + 0, + 0, + 565, + 566, + 0, + 575, + 0, + 619, + 0, + 620, + 0, + 0, + 623, + 624, + 0, + 0, + 0, + 625, + 0, + 0, + 626, + 627, + 0, + 0, + 628, + 0, + 0, + 0, + 0, + 630, + 0, + 631, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 641, + 0, + 0, + 0, + 0, + 643, + 656, + 668, + 0, + 0, + 0, + 673, + 0, + 0, + 0, + 674, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 682, + 0, + 687, + 0, + 690, + 0, + 693, + 699, + 700, + 0, + 0, + 0, + 0, + 0, + 0, + 704, + 705, + 0, + 0, + 0, + 0, + 707, + 710, + 0, + 711, + 0, + 0, + 0, + 0, + 726, + 0, + 0, + 729, + 0, + 0, + 0, + 730, + 731, + 0, + 0, + 0, + 0, + 0, + 752, + 0, + 0, + 0, + 762, + 0, + 763, + 0, + 0, + 767, + 0, + 0, + 0, + 770, + 774, + 0, + 0, + 775, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 776, + 0, + 0, + 0, + 777, + 783, + 0, + 0, + 0, + 785, + 788, + 0, + 0, + 0, + 0, + 790, + 0, + 0, + 0, + 793, + 0, + 0, + 0, + 0, + 794, + 0, + 0, + 804, + 819, + 821, + 0, + 827, + 0, + 0, + 0, + 834, + 0, + 0, + 835, + 0, + 0, + 0, + 841, + 0, + 844, + 0, + 850, + 851, + 859, + 0, + 860, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 874, + 0, + 876, + 0, + 877, + 890, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 893, + 894, + 898, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 899, + 0, + 0, + 0, + 900, + 904, + 906, + 0, + 0, + 0, + 907, + 0, + 908, + 909, + 0, + 910, + 0, + 0, + 0, + 0, + 911, + 0, + 0, + 0, + 0, + 0, + 916, + 0, + 0, + 0, + 922, + 925, + 0, + 930, + 0, + 934, + 0, + 0, + 0, + 0, + 0, + 943, + 0, + 0, + 944, + 0, + 953, + 954, + 0, + 0, + 0, + 0, + 0, + 0, + 955, + 0, + 962, + 963, + 0, + 0, + 976, + 0, + 0, + 977, + 978, + 979, + 980, + 0, + 981, + 0, + 0, + 0, + 0, + 984, + 0, + 0, + 985, + 0, + 0, + 987, + 989, + 991, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 992, + 0, + 0, + 0, + 993, + 0, + 0, + 0, + 0, + 0, + 0, + 996, + 0, + 0, + 0, + 1000, + 0, + 0, + 0, + 0, + 0, + 1002, + 0, + 0, + 0, + 0, + 1005, + 1007, + 0, + 0, + 0, + 1009, + 0, + 0, + 0, + 1010, + 0, + 0, + 0, + 0, + 0, + 0, + 1011, + 0, + 1012, + 0, + 0, + 0, + 0, + 1014, + 1016, + 0, + 0, + 0, + 1020, + 0, + 1021, + 0, + 0, + 0, + 0, + 1022, + 0, + 0, + 0, + 1024, + 0, + 0, + 0, + 0, + 0, + 0, + 1025, + 0, + 0, + 1026, + 1027, + 0, + 0, + 0, + 0, + 0, + 1031, + 0, + 1033, + 0, + 0, + 0, + 0, + 1034, + 0, + 0, + 0, + 1037, + 1040, + 0, + 0, + 0, + 1042, + 1043, + 0, + 0, + 1053, + 0, + 1054, + 0, + 0, + 1057, + 0, + 0, + 0, + 1058, + 0, + 0, + 1060, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1061, + 0, + 0, + 1062, + 0, + 0, + 0, + 0, + 1063, + 0, + 0, + 0, + 0, + 1064, + 0, + 0, + 0, + 0, + 0, + 1065, + 0, + 0, + 0, + 0, + 1066, + 1067, + 0, + 0, + 0, + 1069, + 1070, + 1072, + 0, + 0, + 0, + 0, + 0, + 0, + 1073, + 0, + 1075, + 0, + 0, + 0, + 0, + 0, + 0, + 1080, + 1084, + 0, + 0, + 0, + 0, + 1088, + 0, + 0, + 0, + 0, + 0, + 0, + 1094, + 0, + 1095, + 0, + 1107, + 0, + 0, + 0, + 1112, + 1114, + 0, + 1119, + 0, + 1122, + 0, + 0, + 1126, + 0, + 1129, + 0, + 1130, + 0, + 0, + 0, + 0, + 0, + 1132, + 0, + 0, + 0, + 0, + 0, + 0, + 1144, + 0, + 0, + 1145, + 1146, + 0, + 1148, + 1149, + 0, + 0, + 1150, + 1151, + 0, + 0, + 0, + 0, + 1152, + 0, + 1153, + 0, + 0, + 0, + 0, + 0, + 1154, + 0, + 1163, + 0, + 0, + 0, + 1164, + 0, + 0, + 0, + 0, + 0, + 1165, + 0, + 1167, + 0, + 1170, + 0, + 0, + 0, + 0, + 0, + 1171, + 1172, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1173, + 1175, + 1177, + 0, + 1186, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1195, + 0, + 0, + 1221, + 0, + 0, + 1224, + 0, + 0, + 1227, + 0, + 0, + 0, + 0, + 0, + 1228, + 1229, + 0, + 0, + 1230, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1231, + 0, + 0, + 0, + 1233, + 0, + 0, + 1243, + 1244, + 1246, + 1248, + 0, + 0, + 0, + 0, + 1254, + 1255, + 1258, + 1259, + 0, + 0, + 0, + 1260, + 0, + 0, + 1261, + 0, + 0, + 0, + 1262, + 1264, + 0, + 0, + 1265, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1266, + 0, + 1267, + 0, + 0, + 0, + 0, + 1273, + 1274, + 1276, + 1289, + 0, + 0, + 1291, + 1292, + 1293, + 0, + 0, + 1294, + 1295, + 1296, + 0, + 0, + 0, + 0, + 1302, + 0, + 1304, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1311, + 1312, + 0, + 1314, + 0, + 1316, + 1320, + 1321, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1322, + 1323, + 1324, + 0, + 1335, + 0, + 1336, + 0, + 0, + 0, + 0, + 1341, + 1342, + 0, + 1346, + 0, + 1357, + 0, + 0, + 0, + 1358, + 1360, + 0, + 0, + 0, + 0, + 0, + 0, + 1361, + 0, + 0, + 0, + 1362, + 1365, + 0, + 1366, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1379, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1386, + 0, + 1388, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1395, + 0, + 0, + 0, + 0, + 1403, + 0, + 1405, + 0, + 0, + 1407, + 0, + 0, + 0, + 0, + 0, + 1408, + 1409, + 0, + 1410, + 0, + 0, + 0, + 1412, + 1413, + 1416, + 0, + 0, + 1429, + 1451, + 0, + 0, + 1454, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1455, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1456, + 0, + 0, + 0, + 0, + 1459, + 1460, + 1461, + 1475, + 0, + 0, + 0, + 0, + 0, + 0, + 1477, + 0, + 1480, + 0, + 1481, + 0, + 0, + 1486, + 0, + 0, + 1495, + 0, + 0, + 0, + 1496, + 0, + 0, + 1498, + 1499, + 1501, + 1520, + 1521, + 0, + 0, + 0, + 1526, + 0, + 0, + 0, + 0, + 1528, + 1529, + 0, + 1533, + 1536, + 0, + 0, + 0, + 1537, + 1538, + 1549, + 0, + 1550, + 1558, + 1559, + 1572, + 0, + 1573, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1575, + 0, + 0, + 0, + 0, + 0, + 1579, + 0, + 1599, + 0, + 1603, + 0, + 1604, + 0, + 1605, + 0, + 0, + 0, + 0, + 0, + 1608, + 1610, + 0, + 0, + 0, + 0, + 1611, + 0, + 1615, + 0, + 1616, + 1618, + 0, + 1619, + 0, + 0, + 1622, + 0, + 0, + 0, + 0, + 1634, + 0, + 0, + 0, + 1635, + 0, + 0, + 0, + 1641, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1643, + 0, + 0, + 0, + 1650, + 0, + 0, + 1652, + 0, + 0, + 0, + 0, + 0, + 1653, + 0, + 0, + 0, + 1654, + 0, + 0, + 0, + 0, + 1655, + 0, + 1662, + 0, + 0, + 1663, + 1664, + 0, + 0, + 1668, + 0, + 0, + 1669, + 1670, + 0, + 1672, + 1673, + 0, + 0, + 0, + 0, + 0, + 1674, + 0, + 0, + 0, + 1675, + 1676, + 1680, + 0, + 1682, + 0, + 0, + 1687, + 0, + 0, + 0, + 0, + 0, + 1704, + 0, + 0, + 1705, + 0, + 0, + 1721, + 0, + 0, + 0, + 0, + 1734, + 1735, + 0, + 0, + 0, + 0, + 1737, + 0, + 0, + 0, + 0, + 1739, + 0, + 0, + 1740, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1741, + 1743, + 0, + 0, + 0, + 0, + 1745, + 0, + 0, + 0, + 1749, + 0, + 0, + 0, + 1751, + 0, + 0, + 0, + 0, + 0, + 0, + 1760, + 0, + 0, + 0, + 0, + 1765, + 0, + 0, + 0, + 0, + 0, + 1784, + 0, + 1785, + 1787, + 0, + 0, + 0, + 0, + 1788, + 1789, + 0, + 0, + 0, + 0, + 1790, + 1791, + 1793, + 0, + 1798, + 1799, + 0, + 0, + 0, + 0, + 1801, + 0, + 1803, + 1805, + 0, + 0, + 0, + 1806, + 1811, + 0, + 1812, + 1814, + 0, + 1821, + 0, + 0, + 0, + 0, + 0, + 1822, + 1833, + 0, + 0, + 0, + 0, + 0, + 0, + 1848, + 0, + 0, + 0, + 0, + 0, + 0, + 1857, + 0, + 0, + 0, + 1859, + 0, + 0, + 0, + 0, + 1861, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1866, + 0, + 1921, + 1925, + 0, + 0, + 0, + 1929, + 1930, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1931, + 0, + 0, + 0, + 0, + 1932, + 0, + 0, + 0, + 1934, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1946, + 0, + 0, + 1948, + 0, + 0, + 0, + 0, + 1950, + 0, + 1957, + 0, + 1958, + 0, + 0, + 0, + 0, + 0, + 1965, + 1967, + 0, + 0, + 0, + 0, + 1968, + 0, + 1969, + 0, + 1971, + 1972, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1973, + 0, + 0, + 0, + 0, + 1975, + 0, + 0, + 0, + 0, + 1976, + 1979, + 0, + 1982, + 0, + 0, + 0, + 0, + 1984, + 1988, + 0, + 0, + 0, + 0, + 1990, + 2004, + 2008, + 0, + 0, + 0, + 2012, + 2013, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2015, + 0, + 2016, + 2017, + 0, + 0, + 0, + 0, + 2021, + 0, + 0, + 2025, + 0, + 0, + 0, + 0, + 0, + 2029, + 2036, + 2040, + 0, + 2042, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2043, + 0, + 0, + 0, + 0, + 0, + 2045, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2046, + 2047, + 0, + 2048, + 2049, + 0, + 2059, + 0, + 0, + 2063, + 0, + 2064, + 2065, + 0, + 0, + 2066, + 0, + 0, + 0, + 0, + 0, + 0, + 2069, + 0, + 0, + 0, + 0, + 2070, + 0, + 2071, + 0, + 2072, + 0, + 0, + 0, + 0, + 2080, + 2082, + 2083, + 0, + 0, + 0, + 0, + 0, + 2085, + 0, + 2086, + 2088, + 2089, + 2105, + 0, + 0, + 0, + 0, + 2107, + 0, + 0, + 2116, + 2117, + 0, + 2120, + 0, + 0, + 2122, + 0, + 0, + 0, + 0, + 0, + 2123, + 0, + 0, + 2125, + 2127, + 2128, + 0, + 0, + 0, + 2130, + 0, + 0, + 0, + 2137, + 2139, + 2140, + 2141, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2144, + 2145, + 0, + 0, + 2146, + 2149, + 0, + 0, + 0, + 0, + 2150, + 0, + 0, + 2151, + 2158, + 0, + 2159, + 0, + 2160, + 0, + 0, + 0, + 0, + 0, + 0, + 2161, + 2162, + 0, + 0, + 2194, + 2202, + 0, + 0, + 0, + 0, + 0, + 0, + 2205, + 2217, + 0, + 2220, + 0, + 2221, + 0, + 2222, + 2224, + 0, + 0, + 0, + 0, + 2237, + 0, + 0, + 0, + 0, + 0, + 2238, + 0, + 2239, + 2241, + 0, + 0, + 2242, + 0, + 0, + 0, + 0, + 0, + 2243, + 0, + 0, + 0, + 0, + 0, + 0, + 2252, + 0, + 0, + 2253, + 0, + 0, + 0, + 2257, + 2258, + 0, + 0, + 0, + 2260, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2262, + 0, + 2264, + 0, + 0, + 0, + 0, + 0, + 2269, + 2270, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2271, + 0, + 2273, + 0, + 0, + 0, + 0, + 2277, + 0, + 0, + 0, + 0, + 2278, + 0, + 0, + 0, + 0, + 2279, + 0, + 2280, + 0, + 2283, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2287, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2289, + 2290, + 0, + 0, + 0, + 0, + 2291, + 0, + 2292, + 0, + 0, + 0, + 2293, + 2295, + 2296, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2298, + 0, + 0, + 0, + 0, + 0, + 2303, + 0, + 2305, + 0, + 0, + 2306, + 0, + 2307, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2313, + 2314, + 2315, + 2316, + 0, + 0, + 2318, + 0, + 2319, + 0, + 2322, + 0, + 0, + 2323, + 0, + 2324, + 0, + 2326, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2335, + 0, + 2336, + 2338, + 2339, + 0, + 2340, + 0, + 0, + 0, + 2355, + 0, + 2375, + 0, + 2382, + 2386, + 0, + 2387, + 0, + 0, + 2394, + 0, + 0, + 0, + 0, + 2395, + 0, + 2397, + 0, + 0, + 0, + 0, + 0, + 2398, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2399, + 2402, + 2404, + 2408, + 2411, + 0, + 0, + 0, + 2413, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2415, + 0, + 0, + 2416, + 2417, + 2419, + 0, + 2420, + 0, + 0, + 0, + 0, + 0, + 2425, + 0, + 0, + 0, + 2426, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2427, + 2428, + 0, + 2429, + 0, + 0, + 2430, + 2434, + 0, + 2436, + 0, + 0, + 0, + 0, + 0, + 0, + 2441, + 2442, + 0, + 2445, + 0, + 0, + 2446, + 2457, + 0, + 2459, + 0, + 0, + 2462, + 0, + 2464, + 0, + 2477, + 0, + 2478, + 2486, + 0, + 0, + 0, + 2491, + 0, + 0, + 2493, + 0, + 0, + 2494, + 0, + 2495, + 0, + 2513, + 2523, + 0, + 0, + 0, + 0, + 2524, + 0, + 0, + 0, + 0, + 0, + 0, + 2528, + 2529, + 2530, + 0, + 0, + 2531, + 0, + 2533, + 0, + 0, + 2534, + 2535, + 0, + 2536, + 2537, + 0, + 2538, + 0, + 2539, + 2540, + 0, + 0, + 0, + 2545, + 2546, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2548, + 0, + 0, + 2549, + 0, + 2550, + 2555, + 0, + 0, + 0, + 0, + 0, + 2557, + 0, + 2560, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2561, + 0, + 2576, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2577, + 2578, + 0, + 0, + 0, + 2579, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2580, + 0, + 0, + 0, + 0, + 2581, + 0, + 0, + 0, + 0, + 2583, + 0, + 2584, + 0, + 2588, + 2590, + 0, + 0, + 0, + 2591, + 0, + 0, + 0, + 0, + 2593, + 2594, + 0, + 2595, + 0, + 2601, + 2602, + 0, + 0, + 2603, + 0, + 2605, + 0, + 0, + 0, + 2606, + 2607, + 2611, + 0, + 2615, + 0, + 0, + 0, + 2617, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2619, + 0, + 0, + 2620, + 0, + 0, + 0, + 2621, + 0, + 2623, + 0, + 2625, + 0, + 0, + 2628, + 2629, + 0, + 0, + 2635, + 2636, + 2637, + 0, + 0, + 2639, + 0, + 0, + 0, + 2642, + 0, + 0, + 0, + 0, + 2643, + 0, + 2644, + 0, + 2649, + 0, + 0, + 0, + 0, + 0, + 0, + 2655, + 2656, + 0, + 0, + 2657, + 0, + 0, + 0, + 0, + 0, + 2658, + 0, + 0, + 0, + 0, + 0, + 2659, + 0, + 0, + 0, + 0, + 2664, + 2685, + 0, + 2687, + 0, + 2688, + 0, + 0, + 2689, + 0, + 0, + 2694, + 0, + 2695, + 0, + 0, + 2698, + 0, + 2701, + 2706, + 0, + 0, + 0, + 2707, + 0, + 2709, + 2710, + 2711, + 0, + 0, + 0, + 2720, + 2730, + 2735, + 0, + 0, + 0, + 0, + 2738, + 2740, + 0, + 0, + 0, + 0, + 2747, + 0, + 0, + 0, + 0, + 0, + 0, + 2748, + 0, + 0, + 2749, + 0, + 0, + 0, + 0, + 0, + 2750, + 0, + 0, + 2752, + 2754, + 0, + 0, + 0, + 0, + 0, + 2758, + 0, + 0, + 0, + 0, + 2762, + 0, + 0, + 0, + 0, + 2763, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2764, + 2767, + 0, + 0, + 0, + 0, + 2768, + 0, + 0, + 2770, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2771, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2772, + 0, + 0, + 0, + 0, + 0, + 2773, + 2776, + 0, + 0, + 2783, + 0, + 0, + 2784, + 0, + 2789, + 0, + 2790, + 0, + 0, + 0, + 2792, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2793, + 2795, + 0, + 0, + 0, + 0, + 0, + 0, + 2796, + 0, + 0, + 0, + 0, + 0, + 0, + 2797, + 2799, + 0, + 0, + 0, + 0, + 2803, + 0, + 0, + 0, + 0, + 2806, + 0, + 2807, + 2808, + 2817, + 2819, + 0, + 0, + 0, + 0, + 0, + 2821, + 0, + 0, + 0, + 0, + 2822, + 2823, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2824, + 0, + 0, + 2828, + 0, + 2834, + 0, + 0, + 0, + 0, + 0, + 0, + 2836, + 0, + 2838, + 0, + 0, + 2839, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2841, + 0, + 0, + 0, + 2842, + 0, + 0, + 0, + 0, + 0, + 2843, + 2844, + 0, + 0, + 0, + 0, + 2846, + 0, + 0, + 2847, + 0, + 2849, + 0, + 2853, + 0, + 0, + 0, + 0, + 0, + 2857, + 0, + 0, + 0, + 0, + 2858, + 0, + 2859, + 0, + 0, + 2860, + 0, + 2862, + 2868, + 0, + 0, + 0, + 0, + 2875, + 0, + 2876, + 0, + 0, + 2877, + 2878, + 2884, + 2889, + 2890, + 0, + 0, + 2891, + 0, + 0, + 2892, + 0, + 0, + 0, + 2906, + 2912, + 0, + 2913, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2916, + 0, + 2934, + 0, + 0, + 0, + 0, + 0, + 2935, + 0, + 0, + 0, + 0, + 2939, + 0, + 2940, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2941, + 0, + 0, + 0, + 2946, + 0, + 2949, + 0, + 0, + 2950, + 2954, + 2955, + 0, + 0, + 0, + 2959, + 2961, + 0, + 0, + 2962, + 0, + 2963, + 0, + 0, + 0, + 0, + 0, + 0, + 2964, + 2965, + 2966, + 2967, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2969, + 0, + 0, + 0, + 0, + 0, + 2970, + 2975, + 0, + 2982, + 2983, + 2984, + 0, + 0, + 0, + 0, + 0, + 2989, + 0, + 0, + 2990, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2991, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2998, + 0, + 3000, + 3001, + 0, + 0, + 3002, + 0, + 0, + 0, + 3003, + 0, + 0, + 3012, + 0, + 0, + 3022, + 0, + 0, + 3024, + 0, + 0, + 3025, + 3027, + 0, + 0, + 0, + 3030, + 0, + 0, + 0, + 0, + 3034, + 3035, + 0, + 0, + 3036, + 0, + 3039, + 0, + 3049, + 0, + 0, + 3050, + 0, + 0, + 0, + 0, + 0, + 0, + 3051, + 0, + 3053, + 0, + 0, + 0, + 0, + 3057, + 0, + 3058, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3063, + 0, + 0, + 3073, + 3074, + 3078, + 3079, + 0, + 3080, + 3086, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3087, + 0, + 3092, + 0, + 3095, + 0, + 3099, + 0, + 0, + 0, + 3100, + 0, + 3101, + 3102, + 0, + 3122, + 0, + 0, + 0, + 3124, + 0, + 3125, + 0, + 0, + 0, + 0, + 0, + 0, + 3132, + 3134, + 0, + 0, + 3136, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3147, + 0, + 0, + 3149, + 0, + 0, + 0, + 0, + 0, + 3150, + 3151, + 3152, + 0, + 0, + 0, + 0, + 3158, + 0, + 0, + 3160, + 0, + 0, + 3161, + 0, + 0, + 3162, + 0, + 3163, + 3166, + 3168, + 0, + 0, + 3169, + 3170, + 0, + 0, + 3171, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3182, + 0, + 3184, + 0, + 0, + 3188, + 0, + 0, + 3194, + 0, + 0, + 0, + 0, + 0, + 0, + 3204, + 0, + 0, + 0, + 0, + 3209, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3216, + 3217, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3219, + 0, + 0, + 3220, + 3222, + 0, + 3223, + 0, + 0, + 0, + 0, + 3224, + 0, + 3225, + 3226, + 0, + 3228, + 3233, + 0, + 3239, + 3241, + 3242, + 0, + 0, + 3251, + 3252, + 3253, + 3255, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3260, + 0, + 0, + 3261, + 0, + 0, + 0, + 3267, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3271, + 0, + 0, + 0, + 3278, + 0, + 3282, + 0, + 0, + 0, + 3284, + 0, + 0, + 0, + 3285, + 3286, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3287, + 3292, + 0, + 0, + 0, + 0, + 3294, + 3296, + 0, + 0, + 3299, + 3300, + 3301, + 0, + 3302, + 0, + 0, + 0, + 0, + 0, + 3304, + 3306, + 0, + 0, + 0, + 0, + 0, + 0, + 3308, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3311, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3312, + 3314, + 3315, + 0, + 3318, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3319, + 0, + 0, + 0, + 0, + 0, + 3321, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3322, + 0, + 0, + 3324, + 3325, + 0, + 0, + 3326, + 0, + 0, + 3328, + 3329, + 3331, + 0, + 0, + 3335, + 0, + 0, + 3337, + 0, + 3338, + 0, + 0, + 0, + 0, + 3343, + 3347, + 0, + 0, + 0, + 3348, + 0, + 0, + 3351, + 0, + 0, + 0, + 0, + 0, + 0, + 3354, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3355, + 0, + 0, + 3365, + 3366, + 3367, + 0, + 0, + 0, + 0, + 0, + 0, + 3368, + 3369, + 0, + 3370, + 0, + 0, + 3373, + 0, + 0, + 3376, + 0, + 0, + 3377, + 0, + 3379, + 3387, + 0, + 0, + 0, + 0, + 0, + 3390, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3402, + 0, + 3403, + 3436, + 3437, + 3439, + 0, + 0, + 3441, + 0, + 0, + 0, + 3442, + 0, + 0, + 3449, + 0, + 0, + 0, + 3450, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3451, + 0, + 0, + 3452, + 0, + 3453, + 3456, + 0, + 3457, + 0, + 0, + 3458, + 0, + 3459, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3460, + 0, + 0, + 3469, + 3470, + 0, + 0, + 3475, + 0, + 0, + 0, + 3480, + 3487, + 3489, + 0, + 3490, + 0, + 0, + 3491, + 3499, + 0, + 3500, + 0, + 0, + 3501, + 0, + 0, + 0, + 3502, + 0, + 3514, + 0, + 0, + 0, + 3516, + 3517, + 0, + 0, + 0, + 3518, + 0, + 0, + 0, + 0, + 3520, + 3521, + 3522, + 0, + 0, + 3526, + 3530, + 0, + 0, + 0, + 0, + 3531, + 0, + 0, + 0, + 0, + 3536, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3539, + 3541, + 0, + 0, + 3542, + 3544, + 0, + 3547, + 3548, + 0, + 0, + 3550, + 0, + 3553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3554, + 0, + 3555, + 0, + 3558, + 0, + 3559, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3563, + 0, + 3581, + 0, + 0, + 0, + 3599, + 0, + 0, + 0, + 3600, + 0, + 3601, + 0, + 3602, + 3603, + 0, + 0, + 3606, + 3608, + 0, + 3610, + 3611, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3612, + 3616, + 3619, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3624, + 3628, + 0, + 3629, + 3634, + 3635, + 0, + 0, + 0, + 0, + 0, + 0, + 3636, + 0, + 3637, + 0, + 0, + 3638, + 3651, + 0, + 0, + 0, + 0, + 0, + 0, + 3652, + 3653, + 0, + 0, + 0, + 0, + 3656, + 3657, + 0, + 0, + 0, + 0, + 0, + 3658, + 0, + 0, + 0, + 0, + 3659, + 0, + 3661, + 3663, + 3664, + 0, + 3665, + 0, + 3692, + 0, + 0, + 0, + 3694, + 3696, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3698, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3700, + 0, + 0, + 3701, + 0, + 0, + 0, + 3708, + 3709, + 0, + 0, + 0, + 3711, + 3712, + 0, + 0, + 0, + 0, + 0, + 3723, + 0, + 3724, + 3725, + 0, + 0, + 3726, + 0, + 0, + 0, + 0, + 0, + 0, + 3728, + 3729, + 0, + 3734, + 3735, + 3737, + 0, + 0, + 0, + 3743, + 0, + 3745, + 0, + 0, + 3746, + 0, + 0, + 3747, + 3748, + 0, + 3757, + 0, + 3759, + 3766, + 3767, + 0, + 3768, + 0, + 0, + 0, + 0, + 3769, + 0, + 0, + 3771, + 0, + 3774, + 0, + 0, + 0, + 0, + 0, + 0, + 3775, + 0, + 0, + 0, + 0, + 0, + 0, + 3776, + 0, + 3777, + 3786, + 0, + 3788, + 3789, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3791, + 0, + 3811, + 0, + 0, + 0, + 0, + 0, + 3814, + 3815, + 3816, + 3820, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3821, + 0, + 0, + 3825, + 0, + 0, + 0, + 0, + 3835, + 0, + 0, + 3848, + 3849, + 0, + 0, + 0, + 0, + 3850, + 3851, + 3853, + 0, + 0, + 0, + 0, + 3859, + 0, + 3860, + 3862, + 0, + 0, + 0, + 0, + 0, + 3863, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3873, + 0, + 3874, + 0, + 3875, + 3886, + 0, + 3887, + 0, + 0, + 0, + 0, + 3892, + 3913, + 0, + 3914, + 0, + 0, + 0, + 3925, + 3931, + 0, + 0, + 0, + 0, + 3934, + 3941, + 3942, + 0, + 0, + 0, + 0, + 3943, + 0, + 0, + 0, + 3944, + 0, + 0, + 0, + 0, + 0, + 3945, + 0, + 3947, + 0, + 0, + 0, + 3956, + 3957, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3958, + 0, + 3959, + 3965, + 0, + 0, + 0, + 0, + 3966, + 0, + 0, + 0, + 3967, + 0, + 0, + 0, + 3968, + 3974, + 0, + 0, + 0, + 0, + 0, + 3975, + 3977, + 3978, + 0, + 0, + 0, + 0, + 3980, + 0, + 3985, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3986, + 4011, + 0, + 0, + 4017, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4018, + 0, + 0, + 0, + 0, + 4019, + 0, + 4023, + 0, + 0, + 0, + 4027, + 4028, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4031, + 4034, + 0, + 0, + 4035, + 4037, + 4039, + 4040, + 0, + 0, + 0, + 0, + 0, + 4059, + 0, + 4060, + 4061, + 0, + 4062, + 4063, + 4066, + 0, + 0, + 4072, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4088, + 0, + 0, + 0, + 0, + 0, + 4091, + 0, + 0, + 0, + 0, + 4094, + 4095, + 0, + 0, + 4096, + 0, + 0, + 0, + 0, + 0, + 4098, + 4099, + 0, + 0, + 0, + 4101, + 0, + 4104, + 0, + 0, + 0, + 4105, + 4108, + 0, + 4113, + 0, + 0, + 4115, + 4116, + 0, + 4126, + 0, + 0, + 4127, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4128, + 4132, + 4133, + 0, + 4134, + 0, + 0, + 0, + 4137, + 0, + 0, + 4141, + 0, + 0, + 0, + 0, + 4144, + 4146, + 4147, + 0, + 0, + 0, + 0, + 4148, + 0, + 0, + 4311, + 0, + 0, + 0, + 4314, + 4329, + 0, + 4331, + 4332, + 0, + 4333, + 0, + 4334, + 0, + 0, + 0, + 4335, + 0, + 4336, + 0, + 0, + 0, + 4337, + 0, + 0, + 0, + 4342, + 4345, + 4346, + 4350, + 0, + 4351, + 4352, + 0, + 4354, + 4355, + 0, + 0, + 4364, + 0, + 0, + 0, + 0, + 4369, + 0, + 0, + 0, + 4373, + 0, + 4374, + 0, + 0, + 0, + 0, + 4377, + 0, + 0, + 0, + 0, + 4378, + 0, + 0, + 0, + 4380, + 0, + 0, + 0, + 4381, + 4382, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4384, + 0, + 0, + 0, + 0, + 4385, + 0, + 0, + 0, + 4386, + 0, + 0, + 0, + 4391, + 4398, + 0, + 0, + 0, + 0, + 4407, + 4409, + 0, + 0, + 0, + 0, + 4410, + 0, + 0, + 4411, + 0, + 4414, + 4415, + 4418, + 0, + 4427, + 4428, + 4430, + 0, + 4431, + 0, + 4448, + 0, + 0, + 0, + 0, + 0, + 4449, + 0, + 0, + 0, + 4451, + 4452, + 0, + 4453, + 4454, + 0, + 4456, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4459, + 0, + 4463, + 0, + 0, + 0, + 0, + 0, + 4466, + 0, + 4467, + 0, + 4469, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4470, + 4471, + 0, + 4473, + 0, + 0, + 4475, + 0, + 0, + 0, + 0, + 4477, + 4478, + 0, + 0, + 0, + 4479, + 4481, + 0, + 4482, + 0, + 4484, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4486, + 0, + 0, + 4488, + 0, + 0, + 4497, + 0, + 4508, + 0, + 0, + 4510, + 4511, + 0, + 4520, + 4523, + 0, + 4524, + 0, + 4525, + 0, + 4527, + 0, + 0, + 4528, + 0, + 0, + 0, + 0, + 4530, + 0, + 4531, + 0, + 0, + 4532, + 0, + 0, + 0, + 4533, + 0, + 0, + 0, + 0, + 0, + 4535, + 0, + 0, + 0, + 4536, + 0, + 0, + 0, + 0, + 0, + 4541, + 4543, + 4544, + 4545, + 4547, + 0, + 4548, + 0, + 0, + 0, + 0, + 4550, + 4551, + 0, + 4553, + 0, + 0, + 0, + 0, + 4562, + 0, + 0, + 4571, + 0, + 0, + 0, + 4574, + 0, + 0, + 0, + 4575, + 0, + 4576, + 0, + 4577, + 0, + 0, + 0, + 4581, + 0, + 0, + 0, + 0, + 0, + 4582, + 0, + 0, + 4586, + 0, + 0, + 0, + 4588, + 0, + 0, + 4597, + 0, + 4598, + 0, + 0, + 0, + 0, + 4616, + 4617, + 0, + 4618, + 0, + 0, + 0, + 0, + 4619, + 0, + 4620, + 0, + 0, + 4621, + 0, + 4624, + 0, + 0, + 0, + 0, + 0, + 4625, + 0, + 0, + 0, + 0, + 4657, + 0, + 4659, + 0, + 4667, + 0, + 0, + 0, + 4668, + 4670, + 0, + 4672, + 0, + 0, + 0, + 0, + 0, + 4673, + 4676, + 0, + 0, + 0, + 0, + 4687, + 0, + 0, + 0, + 0, + 4697, + 0, + 0, + 0, + 0, + 4699, + 0, + 4701, + 0, + 0, + 0, + 0, + 4702, + 0, + 0, + 4706, + 0, + 0, + 4713, + 0, + 0, + 0, + 4714, + 4715, + 4716, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4717, + 0, + 0, + 4720, + 0, + 4721, + 4729, + 4735, + 0, + 0, + 0, + 4737, + 0, + 0, + 0, + 4739, + 0, + 0, + 0, + 4740, + 0, + 0, + 0, + 4741, + 0, + 0, + 0, + 0, + 0, + 4742, + 0, + 4745, + 4746, + 4747, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4748, + 0, + 0, + 0, + 4749, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4751, + 4786, + 0, + 4787, + 0, + 4788, + 4796, + 0, + 0, + 4797, + 4798, + 0, + 4799, + 4806, + 4807, + 0, + 0, + 0, + 0, + 4809, + 4810, + 0, + 0, + 0, + 0, + 0, + 0, + 4811, + 0, + 0, + 0, + 0, + 0, + 4812, + 0, + 4813, + 0, + 0, + 4815, + 0, + 4821, + 4822, + 0, + 0, + 0, + 0, + 4823, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4824, + 0, + 0, + 0, + 0, + 4826, + 0, + 0, + 0, + 4828, + 0, + 4829, + 0, + 0, + 0, + 4843, + 0, + 0, + 4847, + 0, + 4853, + 4855, + 4858, + 0, + 0, + 0, + 0, + 0, + 4859, + 0, + 4864, + 0, + 0, + 4879, + 0, + 0, + 0, + 0, + 4880, + 0, + 0, + 0, + 0, + 4881, + 0, + 4882, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4883, + 0, + 0, + 0, + 0, + 4884, + 0, + 0, + 0, + 0, + 0, + 4886, + 4887, + 4888, + 4894, + 4896, + 0, + 4902, + 0, + 0, + 4905, + 0, + 0, + 4915, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4916, + 4917, + 4919, + 4921, + 0, + 0, + 0, + 0, + 0, + 4926, + 0, + 0, + 0, + 0, + 4927, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4929, + 0, + 4930, + 4931, + 0, + 4938, + 0, + 4952, + 0, + 4953, + 4957, + 4960, + 4964, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5019, + 5020, + 5022, + 0, + 0, + 0, + 0, + 0, + 5023, + 0, + 0, + 0, + 5024, + 0, + 0, + 0, + 5025, + 0, + 0, + 0, + 0, + 5028, + 0, + 0, + 0, + 0, + 5029, + 5030, + 5031, + 0, + 5033, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5034, + 5035, + 0, + 5036, + 0, + 0, + 5037, + 0, + 0, + 0, + 0, + 5038, + 0, + 0, + 5039, + 0, + 0, + 0, + 5041, + 5042, + 0, + 0, + 0, + 0, + 5044, + 5049, + 5054, + 0, + 5055, + 0, + 5057, + 0, + 0, + 0, + 5060, + 0, + 0, + 0, + 0, + 0, + 5063, + 0, + 5064, + 5065, + 0, + 5067, + 0, + 0, + 0, + 5068, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5076, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5077, + 0, + 0, + 5078, + 5080, + 0, + 0, + 5083, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5085, + 0, + 0, + 0, + 0, + 0, + 0, + 5098, + 5099, + 5101, + 5105, + 5107, + 0, + 5108, + 0, + 5109, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5110, + 0, + 0, + 0, + 0, + 0, + 5117, + 5118, + 0, + 5121, + 0, + 5122, + 0, + 0, + 5130, + 0, + 0, + 0, + 5137, + 0, + 0, + 0, + 5148, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5151, + 5154, + 0, + 0, + 0, + 5155, + 0, + 0, + 5156, + 5159, + 5161, + 0, + 0, + 0, + 0, + 5162, + 0, + 0, + 0, + 0, + 5163, + 5164, + 0, + 5166, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5167, + 0, + 0, + 0, + 5172, + 0, + 0, + 0, + 0, + 0, + 0, + 5178, + 5179, + 0, + 0, + 5190, + 0, + 0, + 5191, + 5192, + 5194, + 0, + 0, + 5198, + 5201, + 0, + 0, + 0, + 0, + 0, + 5203, + 0, + 5206, + 5209, + 0, + 0, + 0, + 0, + 0, + 0, + 5213, + 0, + 5214, + 5216, + 0, + 0, + 0, + 0, + 0, + 5217, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5218, + 5219, + 0, + 5231, + 0, + 0, + 5244, + 5249, + 0, + 5254, + 0, + 5255, + 0, + 0, + 5257, + 0, + 0, + 0, + 0, + 0, + 5258, + 0, + 5260, + 5270, + 0, + 5277, + 0, + 0, + 0, + 0, + 0, + 0, + 5280, + 5281, + 5282, + 5283, + 0, + 0, + 0, + 0, + 0, + 5284, + 0, + 5285, + 0, + 0, + 0, + 0, + 0, + 5287, + 5288, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5289, + 5291, + 0, + 0, + 5294, + 0, + 0, + 5295, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5304, + 0, + 0, + 5306, + 5307, + 5308, + 0, + 5309, + 0, + 0, + 5310, + 0, + 0, + 0, + 0, + 5311, + 5312, + 0, + 5313, + 0, + 0, + 0, + 0, + 0, + 5316, + 0, + 0, + 0, + 5317, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5325, + 0, + 0, + 0, + 0, + 0, + 0, + 5326, + 0, + 5327, + 5329, + 0, + 5332, + 0, + 0, + 0, + 0, + 5338, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5340, + 0, + 0, + 5341, + 0, + 0, + 0, + 5342, + 0, + 5343, + 5344, + 0, + 0, + 5345, + 0, + 0, + 0, + 0, + 0, + 0, + 5347, + 5348, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5349, + 0, + 5350, + 0, + 5354, + 0, + 0, + 0, + 0, + 5358, + 0, + 0, + 5359, + 0, + 0, + 5361, + 0, + 0, + 5365, + 0, + 5367, + 0, + 5373, + 0, + 0, + 0, + 5379, + 0, + 0, + 0, + 5380, + 0, + 0, + 0, + 5382, + 0, + 5384, + 0, + 0, + 0, + 0, + 0, + 0, + 5385, + 0, + 0, + 0, + 0, + 5387, + 0, + 0, + 0, + 0, + 0, + 0, + 5388, + 5390, + 5393, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5396, + 0, + 0, + 0, + 0, + 5397, + 5402, + 0, + 0, + 0, + 0, + 0, + 5403, + 0, + 0, + 0, + 5404, + 5405, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5406, + 0, + 0, + 0, + 0, + 5410, + 0, + 0, + 5411, + 0, + 5415, + 0, + 0, + 0, + 0, + 5416, + 5434, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5438, + 0, + 5440, + 0, + 0, + 0, + 0, + 0, + 0, + 5441, + 5442, + 0, + 0, + 0, + 5443, + 5444, + 5447, + 0, + 0, + 5448, + 5449, + 5451, + 0, + 0, + 0, + 5456, + 5457, + 0, + 0, + 0, + 5459, + 0, + 0, + 0, + 5461, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5464, + 0, + 5466, + 0, + 0, + 5467, + 0, + 5470, + 0, + 0, + 5473, + 0, + 0, + 5474, + 0, + 0, + 5476, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5477, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5484, + 0, + 0, + 5485, + 5486, + 0, + 0, + 0, + 0, + 0, + 5488, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5489, + 0, + 0, + 0, + 0, + 0, + 5507, + 0, + 0, + 0, + 5510, + 0, + 5511, + 0, + 0, + 5512, + 0, + 0, + 0, + 5513, + 0, + 5515, + 0, + 0, + 5516, + 5517, + 0, + 5518, + 0, + 0, + 5522, + 0, + 0, + 0, + 0, + 0, + 5534, + 5535, + 0, + 0, + 5536, + 0, + 5538, + 0, + 0, + 5543, + 0, + 5544, + 0, + 0, + 5545, + 0, + 5547, + 0, + 5557, + 0, + 0, + 5558, + 0, + 5560, + 5567, + 0, + 0, + 0, + 0, + 5568, + 0, + 0, + 0, + 5571, + 5573, + 0, + 5574, + 0, + 5575, + 0, + 0, + 0, + 0, + 5577, + 0, + 0, + 5598, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5600, + 5609, + 0, + 0, + 0, + 0, + 5610, + 0, + 0, + 5612, + 0, + 5624, + 0, + 5625, + 0, + 0, + 0, + 5629, + 0, + 5641, + 0, + 5642, + 5643, + 0, + 0, + 0, + 0, + 0, + 0, + 5651, + 0, + 0, + 0, + 5652, + 5653, + 0, + 5661, + 5662, + 5678, + 0, + 5679, + 0, + 0, + 0, + 0, + 5685, + 5686, + 0, + 0, + 0, + 0, + 0, + 5690, + 5692, + 0, + 5703, + 0, + 0, + 0, + 0, + 0, + 5706, + 0, + 0, + 0, + 0, + 5707, + 0, + 0, + 0, + 0, + 0, + 0, + 5708, + 0, + 0, + 5709, + 0, + 5710, + 0, + 0, + 0, + 5712, + 0, + 5733, + 0, + 5734, + 5735, + 0, + 0, + 5744, + 5751, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5752, + 0, + 5754, + 0, + 0, + 0, + 0, + 0, + 0, + 5757, + 5758, + 0, + 5760, + 5761, + 0, + 0, + 0, + 0, + 5763, + 5764, + 5765, + 0, + 5766, + 0, + 5767, + 5768, + 0, + 5770, + 0, + 0, + 0, + 0, + 5776, + 5780, + 0, + 0, + 0, + 0, + 5782, + 0, + 0, + 0, + 0, + 5784, + 0, + 0, + 5788, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5797, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5799, + 0, + 0, + 5801, + 0, + 0, + 0, + 5811, + 0, + 0, + 0, + 0, + 0, + 0, + 5816, + 0, + 0, + 5827, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5830, + 5831, + 0, + 0, + 5832, + 0, + 0, + 5833, + 0, + 5835, + 5844, + 5845, + 0, + 5846, + 0, + 0, + 0, + 0, + 0, + 5850, + 0, + 0, + 0, + 0, + 0, + 5852, + 0, + 5855, + 5857, + 0, + 0, + 5859, + 0, + 5861, + 0, + 0, + 5863, + 0, + 5865, + 0, + 0, + 0, + 5873, + 5875, + 0, + 0, + 0, + 5877, + 0, + 5879, + 0, + 0, + 0, + 5888, + 0, + 0, + 5889, + 5891, + 0, + 5894, + 0, + 0, + 0, + 0, + 0, + 0, + 5895, + 0, + 5897, + 0, + 0, + 0, + 0, + 0, + 0, + 5907, + 0, + 5911, + 0, + 0, + 5912, + 0, + 5913, + 5922, + 5924, + 0, + 5927, + 5928, + 0, + 0, + 0, + 0, + 5929, + 5930, + 0, + 5933, + 0, + 0, + 0, + 0, + 5949, + 0, + 0, + 5951, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5953, + 0, + 0, + 5954, + 0, + 5959, + 5960, + 5961, + 0, + 5964, + 0, + 0, + 0, + 5976, + 5978, + 5987, + 5990, + 0, + 0, + 0, + 0, + 0, + 5991, + 0, + 5992, + 0, + 0, + 0, + 5994, + 5995, + 0, + 0, + 5996, + 0, + 0, + 6001, + 6003, + 0, + 0, + 0, + 0, + 6007, + 0, + 0, + 0, + 0, + 0, + 6008, + 0, + 0, + 6009, + 0, + 6010, + 0, + 0, + 0, + 6011, + 6015, + 0, + 6017, + 0, + 6019, + 0, + 6023, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6025, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6026, + 0, + 6030, + 0, + 0, + 6032, + 0, + 0, + 0, + 6033, + 6038, + 6040, + 0, + 0, + 0, + 6041, + 6045, + 0, + 0, + 6046, + 0, + 0, + 6053, + 0, + 0, + 6054, + 0, + 6055, + 0, + 0, + 0, + 0, + 0, + 0, + 6057, + 0, + 6063, + 0, + 0, + 0, + 6064, + 0, + 6066, + 6071, + 6072, + 0, + 0, + 0, + 0, + 0, + 0, + 6075, + 6076, + 0, + 0, + 6077, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6078, + 6079, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6080, + 0, + 6083, + 0, + 0, + 0, + 0, + 0, + 6084, + 0, + 0, + 6088, + 0, + 6089, + 0, + 0, + 6093, + 6105, + 0, + 0, + 6107, + 0, + 6110, + 0, + 0, + 0, + 6111, + 6125, + 6126, + 0, + 0, + 0, + 6129, + 0, + 0, + 0, + 0, + 6130, + 0, + 0, + 0, + 6131, + 6134, + 0, + 0, + 0, + 0, + 0, + 0, + 6142, + 0, + 0, + 0, + 0, + 0, + 6144, + 0, + 0, + 6146, + 6151, + 6153, + 0, + 6156, + 0, + 6163, + 0, + 6180, + 6181, + 0, + 0, + 0, + 0, + 0, + 6182, + 0, + 0, + 0, + 0, + 6184, + 6195, + 0, + 0, + 6206, + 0, + 6208, + 0, + 0, + 6212, + 6213, + 6214, + 0, + 6215, + 0, + 0, + 0, + 6228, + 0, + 0, + 0, + 6234, + 0, + 0, + 0, + 0, + 0, + 0, + 6235, + 6240, + 0, + 6242, + 6243, + 6244, + 0, + 6250, + 6255, + 0, + 0, + 0, + 0, + 0, + 6257, + 0, + 0, + 0, + 6258, + 6278, + 0, + 6284, + 0, + 0, + 0, + 6285, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6286, + 0, + 0, + 0, + 6320, + 0, + 0, + 6322, + 6332, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6334, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6335, + 0, + 0, + 6337, + 0, + 6338, + 0, + 6339, + 6340, + 0, + 0, + 6356, + 6357, + 6369, + 0, + 0, + 0, + 6370, + 6371, + 6372, + 0, + 6373, + 0, + 0, + 0, + 0, + 0, + 6376, + 0, + 0, + 0, + 0, + 0, + 6382, + 6383, + 6384, + 0, + 0, + 0, + 0, + 6386, + 0, + 6389, + 6397, + 6400, + 6411, + 0, + 6414, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6415, + 6416, + 0, + 0, + 0, + 0, + 0, + 0, + 6417, + 0, + 0, + 0, + 0, + 6418, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6420, + 0, + 6421, + 6423, + 6425, + 0, + 6429, + 6430, + 0, + 6433, + 6438, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6439, + 6440, + 0, + 0, + 6441, + 0, + 0, + 6444, + 0, + 0, + 0, + 0, + 6446, + 0, + 0, + 0, + 0, + 6447, + 6448, + 0, + 0, + 6450, + 0, + 0, + 0, + 6454, + 0, + 0, + 6455, + 0, + 6461, + 0, + 0, + 0, + 0, + 0, + 0, + 6462, + 0, + 0, + 6463, + 0, + 6464, + 0, + 6465, + 6467, + 0, + 0, + 0, + 6468, + 0, + 6479, + 6480, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6481, + 0, + 0, + 6485, + 6487, + 0, + 0, + 0, + 0, + 0, + 0, + 6493, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6494, + 6495, + 6496, + 0, + 0, + 0, + 0, + 0, + 6498, + 0, + 0, + 0, + 6507, + 6508, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6511, + 6512, + 0, + 0, + 0, + 0, + 6513, + 0, + 0, + 0, + 6514, + 0, + 0, + 0, + 0, + 0, + 6516, + 0, + 0, + 6517, + 6518, + 0, + 0, + 0, + 6519, + 6520, + 6521, + 0, + 6523, + 0, + 0, + 0, + 0, + 6524, + 6528, + 0, + 6530, + 0, + 0, + 6532, + 0, + 6578, + 0, + 0, + 0, + 6583, + 0, + 6584, + 0, + 0, + 0, + 6587, + 0, + 0, + 0, + 6590, + 0, + 6591, + 0, + 0, + 0, + 0, + 0, + 6592, + 0, + 0, + 0, + 0, + 6593, + 6594, + 0, + 0, + 0, + 0, + 0, + 6599, + 6600, + 0, + 0, + 6601, + 6602, + 6604, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6608, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6610, + 6611, + 0, + 6615, + 0, + 6616, + 6618, + 6620, + 0, + 6637, + 0, + 0, + 0, + 0, + 6639, + 0, + 0, + 0, + 0, + 6641, + 0, + 6642, + 0, + 0, + 0, + 6647, + 0, + 6660, + 6663, + 0, + 6664, + 0, + 6666, + 6669, + 0, + 6675, + 6676, + 6677, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6678, + 0, + 0, + 0, + 6679, + 0, + 6680, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6693, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6704, + 6705, + 6706, + 0, + 0, + 6711, + 6713, + 0, + 0, + 0, + 0, + 0, + 6716, + 0, + 0, + 0, + 6717, + 0, + 6719, + 6724, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6725, + 6726, + 0, + 0, + 0, + 0, + 0, + 6728, + 6729, + 6735, + 0, + 6737, + 6742, + 0, + 0, + 6743, + 6750, + 0, + 6751, + 0, + 0, + 6752, + 6753, + 0, + 0, + 0, + 0, + 0, + 0, + 6754, + 0, + 0, + 0, + 0, + 0, + 6756, + 0, + 0, + 0, + 0, + 0, + 0, + 6763, + 0, + 0, + 6764, + 6765, + 0, + 0, + 0, + 6770, + 0, + 0, + 0, + 6776, + 6780, + 0, + 6781, + 0, + 0, + 0, + 6783, + 0, + 6784, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6785, + 0, + 0, + 0, + 6792, + 0, + 0, + 0, + 6793, + 0, + 0, + 6802, + 0, + 0, + 0, + 0, + 0, + 6803, + 0, + 0, + 0, + 6804, + 0, + 0, + 0, + 6812, + 0, + 0, + 6823, + 0, + 6824, + 6839, + 0, + 0, + 0, + 0, + 6852, + 0, + 0, + 6854, + 0, + 6856, + 6857, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6867, + 0, + 6868, + 6870, + 6872, + 0, + 0, + 0, + 6873, + 6874, + 0, + 0, + 0, + 0, + 0, + 6875, + 0, + 0, + 6877, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6878, + 0, + 0, + 0, + 6879, + 0, + 6880, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6887, + 0, + 6888, + 6891, + 6893, + 0, + 6895, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6899, + 0, + 0, + 0, + 0, + 6901, + 0, + 0, + 0, + 0, + 6910, + 0, + 6911, + 0, + 0, + 6912, + 0, + 0, + 6913, + 6914, + 0, + 0, + 0, + 6915, + 0, + 0, + 0, + 6916, + 6919, + 0, + 0, + 0, + 0, + 0, + 0, + 6924, + 0, + 6925, + 0, + 0, + 0, + 6926, + 6927, + 6928, + 0, + 6929, + 0, + 6930, + 0, + 0, + 6931, + 6935, + 0, + 6936, + 0, + 0, + 0, + 0, + 6939, + 6940, + 6941, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6942, + 6948, + 6949, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6952, + 6954, + 6963, + 6965, + 6966, + 0, + 0, + 6967, + 6968, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6969, + 0, + 0, + 6970, + 6979, + 0, + 0, + 6980, + 0, + 0, + 6983, + 0, + 0, + 0, + 0, + 0, + 6984, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6988, + 6990, + 6992, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6995, + 0, + 0, + 0, + 7012, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7019, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7021, + 0, + 0, + 7022, + 7023, + 7028, + 0, + 7030, + 7033, + 0, + 0, + 0, + 0, + 0, + 0, + 7038, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7039, + 0, + 0, + 0, + 0, + 0, + 7046, + 0, + 7047, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7048, + 7052, + 0, + 0, + 0, + 0, + 0, + 7054, + 0, + 7060, + 0, + 0, + 0, + 0, + 7061, + 0, + 7065, + 0, + 0, + 0, + 0, + 7067, + 7069, + 0, + 7070, + 7071, + 7072, + 0, + 0, + 7078, + 0, + 7080, + 7081, + 0, + 7083, + 0, + 0, + 0, + 7084, + 7087, + 7088, + 0, + 0, + 7090, + 0, + 7093, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7107, + 0, + 0, + 7108, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7110, + 0, + 7114, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7115, + 0, + 7116, + 0, + 0, + 0, + 0, + 0, + 7117, + 0, + 0, + 7118, + 0, + 0, + 7124, + 0, + 7125, + 0, + 0, + 7126, + 0, + 0, + 0, + 0, + 7128, + 0, + 0, + 0, + 0, + 0, + 7129, + 0, + 7130, + 0, + 7132, + 7133, + 0, + 0, + 7134, + 0, + 0, + 7139, + 0, + 7148, + 7150, + 0, + 0, + 0, + 0, + 7152, + 0, + 0, + 0, + 7153, + 7156, + 7157, + 0, + 0, + 0, + 0, + 0, + 7158, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7163, + 7165, + 7169, + 0, + 7171, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7172, + 0, + 7173, + 7181, + 0, + 0, + 0, + 0, + 0, + 7182, + 7185, + 0, + 0, + 0, + 0, + 7187, + 0, + 7201, + 7204, + 0, + 0, + 0, + 0, + 0, + 7206, + 7207, + 0, + 0, + 0, + 0, + 7211, + 7216, + 0, + 7218, + 0, + 0, + 0, + 0, + 7226, + 7228, + 7230, + 7232, + 7233, + 7235, + 7237, + 0, + 0, + 0, + 0, + 7238, + 7241, + 0, + 7242, + 0, + 0, + 7247, + 0, + 0, + 0, + 7266, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7289, + 0, + 0, + 7290, + 7291, + 0, + 0, + 7292, + 0, + 7297, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7300, + 0, + 7301, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7302, + 0, + 0, + 0, + 0, + 7305, + 0, + 0, + 0, + 0, + 7307, + 0, + 7308, + 0, + 7310, + 0, + 7335, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7337, + 0, + 7343, + 7347, + 0, + 0, + 0, + 0, + 0, + 7348, + 0, + 7349, + 7350, + 7352, + 7354, + 0, + 0, + 0, + 0, + 7357, + 0, + 7358, + 7366, + 0, + 7367, + 7368, + 0, + 0, + 7373, + 0, + 0, + 0, + 7374, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7376, + 0, + 0, + 0, + 7377, + 0, + 0, + 0, + 0, + 0, + 7378, + 0, + 7379, + 7380, + 0, + 0, + 0, + 0, + 0, + 7383, + 0, + 0, + 7386, + 0, + 0, + 0, + 0, + 7398, + 0, + 0, + 0, + 7399, + 7400, + 0, + 7401, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7402, + 0, + 0, + 0, + 0, + 0, + 7405, + 0, + 0, + 0, + 0, + 0, + 7406, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7421, + 7427, + 7429, + 0, + 0, + 0, + 7435, + 0, + 0, + 7436, + 0, + 0, + 0, + 7437, + 0, + 0, + 0, + 0, + 0, + 0, + 7438, + 7443, + 0, + 7446, + 0, + 7448, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7456, + 0, + 0, + 0, + 0, + 0, + 7457, + 0, + 0, + 7461, + 0, + 0, + 0, + 0, + 0, + 7462, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7463, + 7466, + 7472, + 0, + 7476, + 0, + 0, + 7490, + 0, + 7491, + 0, + 0, + 7493, + 0, + 0, + 0, + 7498, + 7499, + 0, + 0, + 7508, + 0, + 0, + 0, + 0, + 0, + 7512, + 0, + 0, + 0, + 7513, + 7514, + 7516, + 0, + 0, + 0, + 0, + 7518, + 0, + 0, + 7519, + 7521, + 7522, + 0, + 0, + 0, + 7526, + 0, + 0, + 7529, + 0, + 0, + 7531, + 0, + 7536, + 0, + 7538, + 0, + 7539, + 0, + 0, + 7541, + 7542, + 7546, + 0, + 0, + 0, + 0, + 0, + 7547, + 0, + 7548, + 0, + 0, + 0, + 0, + 0, + 7550, + 0, + 0, + 7552, + 7553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7554, + 7563, + 0, + 7573, + 0, + 0, + 0, + 0, + 0, + 0, + 7574, + 7576, + 0, + 7578, + 7581, + 7583, + 0, + 0, + 0, + 7584, + 0, + 7587, + 0, + 0, + 0, + 0, + 0, + 7589, + 0, + 0, + 0, + 7594, + 0, + 0, + 7595, + 0, + 0, + 7600, + 7602, + 7610, + 0, + 0, + 0, + 0, + 0, + 7612, + 0, + 7613, + 7614, + 0, + 0, + 7615, + 0, + 0, + 7616, + 0, + 7620, + 0, + 7621, + 7622, + 0, + 7623, + 0, + 0, + 0, + 0, + 7626, + 0, + 0, + 0, + 0, + 7627, + 7629, + 7631, + 0, + 0, + 7633, + 0, + 0, + 0, + 0, + 0, + 7639, + 0, + 7640, + 7642, + 0, + 0, + 7643, + 0, + 0, + 0, + 0, + 7644, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7645, + 0, + 0, + 0, + 0, + 0, + 7661, + 7662, + 7663, + 7665, + 0, + 7666, + 0, + 7667, + 0, + 7684, + 7688, + 7690, + 0, + 7691, + 0, + 0, + 0, + 0, + 0, + 0, + 7692, + 0, + 0, + 7700, + 0, + 7707, + 0, + 7708, + 0, + 7709, + 0, + 7721, + 0, + 0, + 0, + 7722, + 0, + 7724, + 0, + 0, + 0, + 0, + 0, + 0, + 7729, + 7731, + 0, + 7732, + 0, + 7733, + 7735, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7739, + 0, + 0, + 7741, + 7745, + 0, + 7748, + 0, + 0, + 0, + 7751, + 0, + 0, + 0, + 7752, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7753, + 0, + 0, + 7756, + 0, + 7757, + 0, + 7759, + 0, + 7760, + 0, + 0, + 0, + 0, + 7761, + 7768, + 0, + 0, + 7769, + 0, + 0, + 7770, + 0, + 0, + 7771, + 0, + 0, + 7772, + 0, + 0, + 7773, + 0, + 0, + 0, + 0, + 0, + 7778, + 7783, + 0, + 0, + 0, + 0, + 0, + 7784, + 7785, + 0, + 7790, + 0, + 0, + 0, + 0, + 7792, + 0, + 7798, + 0, + 0, + 0, + 0, + 0, + 7799, + 0, + 7810, + 0, + 0, + 7813, + 0, + 7814, + 0, + 7816, + 0, + 7818, + 7824, + 7825, + 7826, + 0, + 7828, + 7830, + 0, + 0, + 0, + 7840, + 0, + 7842, + 0, + 7843, + 0, + 0, + 0, + 0, + 7844, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7846, + 0, + 0, + 0, + 0, + 0, + 7856, + 7857, + 7858, + 7862, + 0, + 7865, + 0, + 0, + 7866, + 0, + 0, + 7913, + 0, + 0, + 0, + 0, + 7914, + 0, + 0, + 7915, + 7917, + 7918, + 7919, + 0, + 7920, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7921, + 7922, + 0, + 7924, + 0, + 0, + 7925, + 0, + 0, + 7927, + 0, + 7930, + 7935, + 0, + 0, + 7937, + 0, + 0, + 0, + 0, + 0, + 0, + 7939, + 0, + 7940, + 0, + 0, + 0, + 0, + 0, + 7941, + 0, + 0, + 0, + 0, + 7945, + 0, + 0, + 0, + 0, + 7949, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7950, + 0, + 7953, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7968, + 0, + 0, + 0, + 0, + 7969, + 7972, + 7992, + 0, + 7993, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7994, + 0, + 0, + 0, + 0, + 8007, + 8008, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8010, + 0, + 0, + 0, + 8012, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8018, + 0, + 8028, + 8029, + 0, + 0, + 8030, + 0, + 0, + 8032, + 8033, + 0, + 0, + 8034, + 8036, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8037, + 0, + 0, + 0, + 8043, + 8052, + 8059, + 8060, + 0, + 0, + 8061, + 0, + 0, + 0, + 8062, + 0, + 8063, + 0, + 8064, + 0, + 8066, + 8068, + 0, + 0, + 0, + 8080, + 8081, + 0, + 8089, + 0, + 0, + 0, + 0, + 0, + 8092, + 0, + 0, + 0, + 0, + 0, + 0, + 8093, + 8110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8111, + 0, + 0, + 0, + 0, + 0, + 8112, + 8115, + 0, + 8117, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8120, + 8121, + 8122, + 8128, + 8129, + 8130, + 8131, + 0, + 0, + 8139, + 0, + 0, + 8144, + 0, + 0, + 0, + 0, + 8145, + 8146, + 8153, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8154, + 0, + 8157, + 8160, + 8162, + 0, + 8164, + 8165, + 0, + 0, + 0, + 0, + 8166, + 8167, + 0, + 0, + 8179, + 0, + 0, + 0, + 8185, + 0, + 0, + 0, + 8186, + 0, + 0, + 8187, + 0, + 0, + 0, + 8188, + 0, + 0, + 0, + 0, + 0, + 8204, + 0, + 0, + 0, + 0, + 8210, + 0, + 0, + 0, + 0, + 0, + 8213, + 0, + 8214, + 0, + 0, + 8215, + 0, + 0, + 0, + 0, + 0, + 0, + 8218, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8219, + 0, + 8221, + 0, + 0, + 8222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8225, + 0, + 0, + 0, + 8233, + 0, + 0, + 8242, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8247, + 0, + 8248, + 8252, + 0, + 8256, + 8257, + 0, + 0, + 8261, + 0, + 8264, + 8265, + 0, + 0, + 0, + 0, + 8267, + 0, + 0, + 0, + 8269, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8270, + 0, + 0, + 0, + 8278, + 0, + 8279, + 8283, + 0, + 0, + 8285, + 8286, + 8289, + 8292, + 0, + 0, + 0, + 0, + 8293, + 8295, + 8299, + 8300, + 8301, + 0, + 0, + 0, + 0, + 0, + 0, + 8304, + 8307, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8321, + 0, + 0, + 0, + 8322, + 8323, + 8325, + 8326, + 8327, + 0, + 0, + 8332, + 8338, + 0, + 0, + 8340, + 0, + 0, + 0, + 0, + 0, + 8350, + 0, + 0, + 8351, + 0, + 8354, + 8355, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8360, + 8372, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8377, + 0, + 0, + 0, + 0, + 8380, + 0, + 0, + 0, + 8383, + 0, + 8384, + 0, + 0, + 0, + 0, + 8386, + 8392, + 0, + 0, + 8394, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8396, + 8397, + 0, + 8398, + 0, + 8399, + 0, + 0, + 0, + 0, + 0, + 8400, + 0, + 8401, + 8410, + 8411, + 0, + 8412, + 8413, + 8422, + 0, + 0, + 0, + 0, + 8423, + 0, + 0, + 0, + 0, + 8424, + 0, + 0, + 8425, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8441, + 8442, + 0, + 0, + 0, + 0, + 0, + 0, + 8443, + 0, + 0, + 8444, + 0, + 8447, + 0, + 0, + 0, + 0, + 8451, + 0, + 8458, + 0, + 8462, + 0, + 0, + 8468, + 0, + 8469, + 0, + 0, + 0, + 8470, + 0, + 8473, + 8479, + 8480, + 0, + 0, + 0, + 0, + 8481, + 8483, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8484, + 0, + 0, + 8490, + 0, + 0, + 0, + 0, + 0, + 0, + 8491, + 8493, + 8494, + 0, + 8528, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8530, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8534, + 8538, + 8540, + 0, + 0, + 8541, + 0, + 0, + 8545, + 0, + 8557, + 0, + 0, + 8569, + 8570, + 0, + 0, + 8571, + 8574, + 8575, + 8579, + 0, + 8583, + 0, + 0, + 0, + 0, + 8591, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8606, + 0, + 8607, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8608, + 0, + 0, + 8609, + 0, + 0, + 0, + 8610, + 0, + 0, + 0, + 8611, + 0, + 0, + 8613, + 8617, + 8621, + 0, + 0, + 8622, + 0, + 8623, + 0, + 8624, + 8625, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8637, + 8638, + 8639, + 8650, + 0, + 0, + 0, + 0, + 8652, + 8654, + 8655, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8656, + 0, + 0, + 0, + 0, + 0, + 8657, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8658, + 0, + 0, + 8659, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8660, + 0, + 0, + 0, + 0, + 0, + 0, + 8661, + 8663, + 8664, + 0, + 0, + 0, + 0, + 8665, + 0, + 8669, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8671, + 8674, + 0, + 8684, + 0, + 8686, + 0, + 0, + 0, + 8689, + 0, + 0, + 0, + 8690, + 0, + 8706, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8710, + 0, + 8711, + 8713, + 8714, + 8724, + 8727, + 8728, + 8733, + 8736, + 0, + 8737, + 8739, + 0, + 0, + 0, + 0, + 8742, + 8743, + 8745, + 8754, + 0, + 0, + 0, + 0, + 8756, + 0, + 0, + 0, + 0, + 0, + 0, + 8757, + 8760, + 0, + 0, + 0, + 0, + 0, + 8762, + 8763, + 8764, + 0, + 8766, + 8769, + 8770, + 8773, + 0, + 8774, + 0, + 8779, + 0, + 0, + 0, + 0, + 8780, + 0, + 0, + 8781, + 0, + 0, + 8783, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8784, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8785, + 0, + 0, + 0, + 0, + 8786, + 0, + 0, + 0, + 0, + 8788, + 8790, + 0, + 0, + 0, + 8803, + 0, + 8813, + 8814, + 0, + 0, + 0, + 0, + 0, + 8815, + 8816, + 0, + 0, + 0, + 0, + 8818, + 0, + 0, + 0, + 0, + 8822, + 8828, + 8829, + 0, + 8831, + 0, + 0, + 0, + 0, + 8833, + 0, + 0, + 0, + 8834, + 0, + 0, + 0, + 8835, + 0, + 8836, + 0, + 0, + 0, + 8837, + 0, + 0, + 0, + 0, + 0, + 0, + 8838, + 8839, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8840, + 0, + 0, + 0, + 8841, + 0, + 8842, + 0, + 0, + 0, + 8846, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8847, + 0, + 8848, + 0, + 0, + 8864, + 0, + 0, + 8866, + 0, + 0, + 8870, + 8872, + 0, + 0, + 8873, + 8874, + 0, + 0, + 0, + 0, + 0, + 0, + 8875, + 0, + 8876, + 0, + 0, + 0, + 0, + 8896, + 8900, + 0, + 0, + 0, + 0, + 8901, + 0, + 0, + 0, + 0, + 0, + 8904, + 0, + 8907, + 0, + 0, + 0, + 0, + 8911, + 8912, + 8913, + 0, + 0, + 0, + 8914, + 0, + 8915, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8916, + 0, + 0, + 0, + 8929, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8930, + 0, + 8932, + 0, + 8943, + 0, + 0, + 0, + 8945, + 8947, + 0, + 0, + 0, + 0, + 8949, + 0, + 8950, + 0, + 8954, + 8957, + 0, + 0, + 8970, + 0, + 0, + 0, + 0, + 8971, + 0, + 8996, + 0, + 0, + 0, + 0, + 8997, + 9000, + 0, + 0, + 0, + 0, + 9001, + 9002, + 0, + 9004, + 9009, + 9024, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9027, + 9082, + 0, + 0, + 9083, + 9089, + 0, + 0, + 0, + 0, + 0, + 0, + 9090, + 0, + 0, + 0, + 9092, + 0, + 0, + 9093, + 0, + 9095, + 0, + 0, + 9096, + 9097, + 9101, + 9102, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9112, + 0, + 0, + 0, + 0, + 0, + 0, + 9114, + 0, + 0, + 9120, + 0, + 9121, + 9122, + 0, + 0, + 0, + 9123, + 9124, + 0, + 0, + 9125, + 0, + 0, + 9126, + 0, + 9127, + 0, + 0, + 9129, + 9131, + 0, + 0, + 0, + 9132, + 0, + 0, + 9136, + 0, + 9144, + 0, + 0, + 9148, + 0, + 0, + 0, + 0, + 0, + 0, + 9149, + 0, + 9152, + 9163, + 0, + 0, + 9165, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9166, + 0, + 9169, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9170, + 0, + 0, + 0, + 0, + 9172, + 0, + 9174, + 9175, + 9176, + 0, + 9177, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9186, + 0, + 9187, + 0, + 0, + 0, + 9188, + 9189, + 0, + 0, + 9190, + 0, + 0, + 0, + 0, + 9191, + 0, + 0, + 0, + 9193, + 0, + 0, + 0, + 0, + 9197, + 9198, + 0, + 0, + 0, + 9208, + 9211, + 0, + 0, + 0, + 0, + 9216, + 9217, + 0, + 9220, + 0, + 0, + 0, + 0, + 9221, + 9222, + 9223, + 0, + 9224, + 9225, + 0, + 0, + 9227, + 0, + 9228, + 9229, + 0, + 0, + 9230, + 0, + 9232, + 0, + 9233, + 0, + 0, + 0, + 0, + 0, + 9234, + 9235, + 0, + 0, + 9237, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9238, + 9240, + 0, + 0, + 9241, + 0, + 0, + 0, + 0, + 9244, + 0, + 0, + 0, + 0, + 9247, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9248, + 0, + 0, + 0, + 9249, + 0, + 0, + 0, + 0, + 0, + 9250, + 0, + 0, + 0, + 0, + 9251, + 0, + 0, + 9252, + 9255, + 0, + 0, + 0, + 9256, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9257, + 0, + 0, + 9258, + 0, + 0, + 0, + 0, + 0, + 0, + 9259, + 0, + 0, + 0, + 0, + 0, + 9262, + 9263, + 0, + 0, + 9265, + 9266, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9268, + 9271, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9273, + 0, + 0, + 0, + 9276, + 9277, + 9279, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9280, + 0, + 0, + 9293, + 0, + 0, + 0, + 0, + 0, + 9297, + 9301, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9308, + 9309, + 9313, + 9321, + 9322, + 0, + 9326, + 9327, + 0, + 0, + 9477, + 0, + 9479, + 0, + 0, + 0, + 0, + 9482, + 0, + 0, + 0, + 9483, + 0, + 9484, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9485, + 0, + 0, + 9486, + 0, + 0, + 0, + 9489, + 0, + 0, + 0, + 0, + 9490, + 9491, + 0, + 0, + 0, + 0, + 9493, + 0, + 9495, + 9496, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9500, + 0, + 9502, + 0, + 0, + 0, + 0, + 0, + 9504, + 9507, + 0, + 9509, + 0, + 9511, + 0, + 0, + 9513, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9515, + 0, + 0, + 0, + 0, + 0, + 0, + 9516, + 9517, + 0, + 0, + 0, + 0, + 9532, + 0, + 0, + 9533, + 0, + 0, + 9538, + 0, + 9539, + 9540, + 0, + 0, + 0, + 0, + 9541, + 0, + 0, + 0, + 9542, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9544, + 9545, + 0, + 9546, + 0, + 0, + 0, + 0, + 0, + 0, + 9547, + 9548, + 0, + 0, + 0, + 9550, + 0, + 9557, + 0, + 9558, + 0, + 9561, + 0, + 9563, + 9570, + 0, + 9572, + 9574, + 9575, + 0, + 0, + 0, + 9577, + 9592, + 0, + 0, + 9596, + 0, + 0, + 0, + 9598, + 0, + 9600, + 0, + 9601, + 0, + 0, + 0, + 0, + 0, + 0, + 9608, + 0, + 9638, + 9639, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9641, + 0, + 0, + 9643, + 9644, + 9645, + 9646, + 0, + 0, + 0, + 9648, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9650, + 9654, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9655, + 0, + 0, + 0, + 0, + 0, + 9656, + 0, + 9657, + 0, + 0, + 0, + 0, + 9658, + 0, + 0, + 9659, + 0, + 0, + 9664, + 0, + 0, + 9665, + 0, + 9667, + 9669, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9671, + 0, + 9673, + 9681, + 0, + 0, + 0, + 0, + 9682, + 9683, + 9684, + 0, + 0, + 0, + 0, + 9686, + 9698, + 0, + 0, + 9700, + 9701, + 9702, + 0, + 9703, + 9717, + 0, + 0, + 0, + 0, + 9718, + 0, + 9726, + 0, + 0, + 0, + 0, + 9727, + 0, + 0, + 0, + 9728, + 0, + 9742, + 0, + 9744, + 0, + 0, + 0, + 9750, + 0, + 9754, + 9755, + 0, + 0, + 0, + 0, + 0, + 9756, + 0, + 9757, + 9768, + 0, + 9769, + 0, + 0, + 0, + 9770, + 9771, + 0, + 9773, + 0, + 9774, + 0, + 9775, + 0, + 0, + 0, + 9776, + 9777, + 9784, + 0, + 0, + 0, + 9786, + 0, + 9789, + 0, + 0, + 0, + 0, + 9793, + 9794, + 0, + 0, + 0, + 9808, + 0, + 0, + 0, + 0, + 0, + 9811, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9812, + 0, + 9820, + 0, + 9823, + 0, + 9828, + 0, + 0, + 0, + 0, + 9830, + 0, + 0, + 9833, + 9836, + 0, + 0, + 0, + 9840, + 0, + 0, + 0, + 9841, + 0, + 0, + 9842, + 0, + 9845, + 0, + 0, + 0, + 9847, + 9848, + 0, + 0, + 9855, + 0, + 0, + 0, + 0, + 0, + 0, + 9856, + 9863, + 9865, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9866, + 9867, + 9868, + 9873, + 9875, + 0, + 0, + 0, + 0, + 0, + 0, + 9880, + 0, + 9886, + 0, + 0, + 0, + 9887, + 0, + 0, + 9891, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9906, + 9907, + 9908, + 0, + 0, + 0, + 9909, + 0, + 0, + 0, + 0, + 0, + 0, + 9910, + 0, + 0, + 0, + 0, + 9913, + 0, + 0, + 0, + 0, + 9914, + 0, + 0, + 0, + 0, + 0, + 9922, + 0, + 0, + 0, + 0, + 9923, + 9925, + 0, + 0, + 0, + 0, + 0, + 0, + 9930, + 0, + 0, + 0, + 9931, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9932, + 0, + 9939, + 0, + 0, + 9940, + 9962, + 9966, + 0, + 9969, + 9970, + 0, + 0, + 9974, + 0, + 9979, + 9981, + 9982, + 0, + 0, + 0, + 9985, + 0, + 0, + 0, + 0, + 0, + 0, + 9987, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9988, + 9993, + 0, + 0, + 9994, + 0, + 0, + 0, + 9997, + 0, + 10004, + 0, + 0, + 0, + 0, + 0, + 10007, + 10019, + 10020, + 10022, + 0, + 0, + 0, + 10031, + 0, + 0, + 0, + 0, + 0, + 10032, + 0, + 0, + 10034, + 0, + 10036, + 0, + 0, + 0, + 0, + 10038, + 0, + 10039, + 10040, + 10041, + 10042, + 0, + 0, + 0, + 0, + 0, + 10043, + 0, + 0, + 0, + 0, + 0, + 10045, + 10054, + 0, + 0, + 0, + 0, + 10055, + 0, + 0, + 10057, + 10058, + 0, + 0, + 0, + 0, + 0, + 0, + 10059, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10060, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10063, + 0, + 10066, + 0, + 0, + 0, + 10070, + 0, + 10072, + 0, + 0, + 10076, + 10077, + 0, + 0, + 10084, + 0, + 10087, + 10090, + 10091, + 0, + 0, + 0, + 10094, + 10097, + 0, + 0, + 0, + 0, + 0, + 0, + 10098, + 0, + 0, + 0, + 0, + 0, + 0, + 10103, + 0, + 10104, + 0, + 10108, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10120, + 0, + 0, + 0, + 10122, + 0, + 0, + 10125, + 0, + 0, + 0, + 0, + 10127, + 10128, + 0, + 0, + 10134, + 0, + 10135, + 10136, + 0, + 10137, + 0, + 0, + 10147, + 0, + 10149, + 10150, + 0, + 0, + 10156, + 0, + 10158, + 10159, + 10160, + 10168, + 0, + 0, + 10171, + 0, + 10173, + 0, + 0, + 0, + 10176, + 0, + 0, + 0, + 0, + 10177, + 0, + 0, + 0, + 0, + 10178, + 0, + 0, + 0, + 0, + 10194, + 0, + 10202, + 0, + 0, + 10203, + 10204, + 0, + 10205, + 10206, + 0, + 10207, + 0, + 0, + 0, + 0, + 10209, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10213, + 0, + 0, + 0, + 0, + 0, + 0, + 10217, + 0, + 10229, + 0, + 10230, + 10231, + 0, + 0, + 10232, + 0, + 0, + 10237, + 10238, + 10244, + 0, + 0, + 0, + 0, + 0, + 10250, + 0, + 10252, + 0, + 0, + 0, + 0, + 0, + 0, + 10255, + 0, + 0, + 10257, + 0, + 0, + 0, + 0, + 0, + 0, + 10258, + 0, + 10259, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10260, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10284, + 10288, + 10289, + 0, + 0, + 0, + 10290, + 0, + 10296, + 0, + 0, + 0, + 0, + 0, + 10297, + 0, + 0, + 0, + 0, + 0, + 0, + 10298, + 0, + 0, + 0, + 0, + 10299, + 10303, + 0, + 0, + 0, + 0, + 0, + 10306, + 0, + 0, + 0, + 10307, + 0, + 10308, + 0, + 0, + 0, + 0, + 10311, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10315, + 10317, + 0, + 0, + 0, + 10318, + 10319, + 0, + 10321, + 0, + 10326, + 0, + 10328, + 0, + 0, + 0, + 0, + 10329, + 0, + 0, + 10331, + 0, + 10332, + 0, + 0, + 0, + 0, + 0, + 0, + 10334, + 0, + 0, + 10335, + 10338, + 0, + 0, + 0, + 0, + 0, + 10339, + 10349, + 0, + 0, + 0, + 0, + 0, + 0, + 10351, + 0, + 10353, + 0, + 0, + 0, + 0, + 0, + 0, + 10362, + 0, + 10368, + 0, + 10369, + 0, + 0, + 0, + 10372, + 10373, + 0, + 0, + 0, + 0, + 0, + 10374, + 0, + 0, + 0, + 10375, + 0, + 10376, + 0, + 0, + 10386, + 10388, + 10390, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10391, + 0, + 0, + 10392, + 10394, + 0, + 0, + 10396, + 0, + 10397, + 0, + 10403, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10404, + 0, + 10405, + 10410, + 0, + 0, + 10411, + 0, + 10412, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10421, + 10422, + 10423, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10425, + 0, + 0, + 10427, + 0, + 0, + 10430, + 0, + 0, + 0, + 0, + 0, + 10432, + 0, + 10433, + 10434, + 0, + 0, + 0, + 0, + 10436, + 10437, + 0, + 10438, + 0, + 10439, + 0, + 10444, + 10446, + 0, + 0, + 0, + 0, + 0, + 10448, + 0, + 0, + 0, + 0, + 0, + 10449, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10451, + 0, + 10453, + 0, + 0, + 0, + 10454, + 10457, + 0, + 0, + 10459, + 0, + 10469, + 0, + 0, + 0, + 0, + 0, + 10472, + 10481, + 0, + 0, + 0, + 0, + 0, + 10482, + 10483, + 0, + 10492, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10499, + 0, + 0, + 0, + 10502, + 0, + 0, + 10510, + 0, + 10521, + 10524, + 0, + 0, + 10525, + 10526, + 10528, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10530, + 0, + 0, + 0, + 0, + 10533, + 0, + 10534, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10535, + 10536, + 0, + 0, + 10544, + 0, + 10553, + 10556, + 0, + 10557, + 10559, + 0, + 0, + 0, + 0, + 0, + 10562, + 10563, + 10564, + 0, + 10565, + 0, + 0, + 0, + 10566, + 0, + 10567, + 0, + 0, + 0, + 0, + 10575, + 0, + 0, + 10576, + 0, + 10578, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10585, + 10586, + 10587, + 10589, + 0, + 10590, + 0, + 0, + 10594, + 0, + 0, + 0, + 0, + 0, + 10598, + 0, + 0, + 10601, + 0, + 0, + 0, + 10602, + 0, + 10603, + 0, + 10604, + 0, + 10605, + 0, + 0, + 10607, + 0, + 10626, + 0, + 10627, + 0, + 0, + 0, + 0, + 0, + 10629, + 10630, + 10631, + 0, + 0, + 0, + 10646, + 0, + 0, + 0, + 10647, + 0, + 10650, + 0, + 10651, + 0, + 0, + 0, + 10652, + 10653, + 10655, + 0, + 10658, + 0, + 0, + 10659, + 0, + 10667, + 0, + 0, + 0, + 0, + 10669, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10670, + 0, + 0, + 0, + 10671, + 0, + 0, + 0, + 0, + 10672, + 10673, + 0, + 10674, + 0, + 0, + 0, + 10676, + 0, + 0, + 0, + 0, + 0, + 0, + 10678, + 0, + 10682, + 0, + 0, + 10692, + 0, + 10697, + 0, + 0, + 0, + 0, + 10698, + 0, + 0, + 0, + 10700, + 0, + 0, + 0, + 0, + 0, + 10703, + 0, + 10704, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10705, + 0, + 10715, + 10718, + 10720, + 0, + 0, + 10722, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10723, + 0, + 0, + 0, + 0, + 10726, + 0, + 0, + 0, + 0, + 0, + 10727, + 10730, + 10743, + 0, + 0, + 0, + 0, + 0, + 0, + 10744, + 0, + 0, + 10745, + 0, + 0, + 0, + 0, + 0, + 0, + 10748, + 0, + 0, + 0, + 0, + 10750, + 0, + 0, + 10752, + 10753, + 0, + 0, + 0, + 10756, + 0, + 0, + 0, + 0, + 0, + 0, + 10758, + 0, + 0, + 0, + 10759, + 0, + 10769, + 0, + 0, + 10772, + 0, + 0, + 0, + 0, + 0, + 0, + 10773, + 0, + 0, + 0, + 10777, + 0, + 0, + 10779, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10780, + 10784, + 0, + 0, + 0, + 10789, + 0, + 0, + 0, + 10791, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10795, + 0, + 0, + 10796, + 0, + 10808, + 0, + 10809, + 0, + 0, + 0, + 10810, + 0, + 0, + 0, + 10812, + 0, + 0, + 10814, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10815, + 0, + 0, + 0, + 0, + 10816, + 10817, + 0, + 0, + 0, + 0, + 10819, + 0, + 10820, + 0, + 0, + 0, + 0, + 10821, + 10822, + 10823, + 0, + 10826, + 10849, + 0, + 0, + 0, + 0, + 10850, + 0, + 0, + 10852, + 0, + 10853, + 0, + 0, + 10856, + 0, + 0, + 10857, + 10858, + 10859, + 10860, + 0, + 0, + 0, + 0, + 0, + 0, + 10863, + 0, + 10866, + 10867, + 10872, + 10890, + 0, + 0, + 10891, + 10892, + 0, + 0, + 0, + 0, + 0, + 10893, + 0, + 0, + 0, + 10896, + 10899, + 0, + 0, + 10900, + 10902, + 0, + 0, + 0, + 0, + 0, + 10903, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10905, + 0, + 10906, + 0, + 0, + 0, + 0, + 10908, + 10911, + 0, + 10912, + 0, + 0, + 10916, + 0, + 0, + 0, + 0, + 0, + 10917, + 0, + 10918, + 0, + 0, + 0, + 10923, + 0, + 0, + 0, + 0, + 0, + 10924, + 0, + 0, + 10928, + 10929, + 0, + 0, + 10930, + 0, + 0, + 0, + 10932, + 0, + 0, + 0, + 0, + 10939, + 0, + 0, + 10945, + 0, + 0, + 0, + 10947, + 0, + 0, + 10948, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10958, + 0, + 10960, + 10962, + 0, + 0, + 10964, + 0, + 0, + 0, + 10966, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10967, + 0, + 0, + 0, + 10968, + 0, + 0, + 0, + 10973, + 0, + 0, + 0, + 0, + 0, + 10975, + 0, + 0, + 0, + 10976, + 10978, + 0, + 0, + 10982, + 10984, + 10987, + 0, + 0, + 10988, + 0, + 10989, + 0, + 0, + 10991, + 0, + 0, + 0, + 0, + 10992, + 0, + 0, + 0, + 10993, + 0, + 10995, + 0, + 0, + 0, + 10996, + 10997, + 0, + 0, + 0, + 10998, + 0, + 10999, + 0, + 11001, + 0, + 0, + 0, + 0, + 0, + 0, + 11010, + 11012, + 0, + 11013, + 11016, + 11017, + 0, + 0, + 11019, + 11020, + 11021, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11022, + 0, + 0, + 11023, + 11029, + 0, + 0, + 0, + 0, + 11031, + 0, + 0, + 0, + 11034, + 0, + 0, + 0, + 0, + 11055, + 0, + 0, + 0, + 0, + 0, + 11056, + 11060, + 0, + 0, + 0, + 0, + 0, + 0, + 11061, + 0, + 0, + 11064, + 11065, + 0, + 11066, + 0, + 11069, + 0, + 11085, + 0, + 0, + 0, + 0, + 0, + 11086, + 0, + 0, + 0, + 11088, + 0, + 0, + 0, + 11094, + 0, + 0, + 0, + 11095, + 11096, + 0, + 0, + 0, + 0, + 0, + 0, + 11097, + 11098, + 0, + 0, + 0, + 0, + 0, + 0, + 11099, + 0, + 0, + 11102, + 11108, + 0, + 0, + 0, + 11109, + 0, + 11114, + 11119, + 0, + 11131, + 0, + 0, + 0, + 11142, + 0, + 0, + 11143, + 0, + 11146, + 0, + 11147, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11148, + 0, + 11149, + 11152, + 11153, + 11154, + 0, + 11156, + 0, + 11157, + 0, + 0, + 0, + 11158, + 0, + 0, + 11159, + 11160, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11163, + 0, + 0, + 11164, + 11166, + 0, + 0, + 0, + 11172, + 11174, + 0, + 0, + 0, + 11176, + 0, + 0, + 0, + 0, + 0, + 11182, + 11183, + 0, + 0, + 0, + 11184, + 11187, + 0, + 0, + 11188, + 11189, + 0, + 0, + 0, + 0, + 0, + 0, + 11194, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11200, + 11202, + 0, + 0, + 0, + 0, + 0, + 0, + 11203, + 0, + 11204, + 0, + 0, + 0, + 0, + 0, + 11205, + 0, + 0, + 0, + 11206, + 0, + 11207, + 0, + 0, + 11209, + 0, + 11211, + 0, + 11214, + 0, + 0, + 11231, + 0, + 0, + 0, + 11293, + 11295, + 0, + 0, + 11296, + 11297, + 11302, + 0, + 0, + 0, + 11307, + 0, + 0, + 0, + 0, + 11309, + 11310, + 0, + 11311, + 0, + 0, + 0, + 11313, + 0, + 11314, + 0, + 0, + 0, + 0, + 11334, + 0, + 11338, + 0, + 0, + 0, + 11339, + 0, + 0, + 0, + 0, + 0, + 11340, + 0, + 11341, + 11342, + 0, + 11344, + 0, + 11345, + 0, + 0, + 0, + 11348, + 11349, + 0, + 0, + 11350, + 0, + 0, + 0, + 11355, + 0, + 0, + 0, + 0, + 0, + 0, + 11356, + 0, + 11357, + 11370, + 0, + 0, + 11371, + 0, + 11374, + 11376, + 0, + 0, + 0, + 11377, + 0, + 0, + 11378, + 11383, + 0, + 11386, + 11399, + 0, + 11400, + 11406, + 0, + 0, + 0, + 11408, + 0, + 0, + 11409, + 11412, + 0, + 0, + 0, + 0, + 11417, + 0, + 0, + 0, + 11418, + 0, + 11421, + 0, + 11426, + 11429, + 0, + 0, + 0, + 0, + 0, + 11430, + 0, + 11437, + 0, + 11438, + 0, + 0, + 0, + 0, + 0, + 11440, + 11453, + 0, + 0, + 0, + 0, + 0, + 0, + 11454, + 0, + 0, + 0, + 0, + 11455, + 0, + 0, + 11456, + 11460, + 11461, + 11463, + 0, + 11469, + 0, + 11473, + 0, + 0, + 0, + 0, + 11474, + 0, + 0, + 0, + 11475, + 0, + 11476, + 11477, + 11480, + 0, + 0, + 0, + 0, + 11481, + 0, + 0, + 11484, + 0, + 0, + 11487, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11497, + 0, + 0, + 11502, + 0, + 11509, + 0, + 0, + 11510, + 11511, + 11513, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11515, + 0, + 0, + 0, + 0, + 11516, + 0, + 11520, + 11521, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11529, + 11530, + 11531, + 11534, + 0, + 0, + 11543, + 0, + 0, + 0, + 0, + 0, + 11547, + 0, + 11548, + 0, + 0, + 0, + 0, + 0, + 11552, + 11556, + 0, + 11557, + 0, + 0, + 11559, + 0, + 11560, + 0, + 0, + 0, + 0, + 0, + 0, + 11561, + 0, + 0, + 11563, + 11564, + 0, + 11565, + 0, + 0, + 0, + 0, + 11567, + 0, + 0, + 0, + 11569, + 0, + 11574, + 0, + 11575, + 0, + 0, + 0, + 11577, + 0, + 11578, + 0, + 0, + 0, + 11580, + 11581, + 0, + 0, + 0, + 11582, + 11584, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11587, + 0, + 11588, + 11591, + 0, + 11595, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11596, + 0, + 11597, + 0, + 0, + 0, + 0, + 11598, + 11601, + 0, + 0, + 0, + 11602, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11603, + 11604, + 0, + 11606, + 0, + 0, + 11608, + 0, + 0, + 0, + 0, + 11610, + 0, + 0, + 11611, + 0, + 0, + 0, + 0, + 11613, + 0, + 11622, + 0, + 0, + 0, + 11623, + 0, + 0, + 0, + 0, + 11625, + 0, + 0, + 11626, + 11627, + 11628, + 11630, + 0, + 0, + 0, + 0, + 0, + 0, + 11639, + 0, + 0, + 11646, + 0, + 11648, + 11649, + 0, + 11650, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11651, + 0, + 0, + 11652, + 11653, + 11656, + 0, + 0, + 11677, + 11679, + 0, + 0, + 0, + 0, + 11680, + 0, + 0, + 11681, + 0, + 11685, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11688, + 0, + 0, + 0, + 11716, + 0, + 11719, + 0, + 0, + 0, + 0, + 0, + 11721, + 0, + 0, + 11724, + 11743, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11745, + 11748, + 11750, + 0, + 0, + 0, + 0, + 0, + 11751, + 0, + 0, + 0, + 11752, + 11754, + 0, + 11755, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11759, + 0, + 0, + 0, + 0, + 0, + 0, + 11760, + 0, + 0, + 0, + 11761, + 0, + 0, + 0, + 0, + 0, + 0, + 11766, + 11767, + 0, + 11772, + 11773, + 0, + 11774, + 0, + 0, + 11775, + 0, + 11777, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11778, + 11780, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11783, + 0, + 11784, + 0, + 0, + 0, + 11785, + 0, + 0, + 0, + 11786, + 0, + 0, + 0, + 0, + 11788, + 0, + 0, + 11789, + 11791, + 11792, + 0, + 0, + 0, + 0, + 11795, + 11834, + 11835, + 11836, + 0, + 0, + 11837, + 0, + 0, + 0, + 11838, + 0, + 0, + 11846, + 11851, + 0, + 11852, + 0, + 11869, + 0, + 0, + 0, + 11871, + 0, + 0, + 0, + 11872, + 11874, + 0, + 0, + 0, + 0, + 0, + 0, + 11875, + 0, + 11876, + 11877, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11883, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11884, + 0, + 11885, + 0, + 11886, + 0, + 0, + 11887, + 0, + 11894, + 11895, + 11897, + 11909, + 11910, + 0, + 11912, + 11918, + 0, + 0, + 11920, + 0, + 11922, + 11924, + 11927, + 11928, + 0, + 0, + 0, + 0, + 11929, + 0, + 11934, + 0, + 0, + 0, + 0, + 0, + 11941, + 11943, + 11944, + 0, + 11945, + 0, + 0, + 0, + 0, + 11948, + 11949, + 0, + 0, + 0, + 0, + 11953, + 0, + 11954, + 0, + 11955, + 0, + 11956, + 0, + 0, + 0, + 0, + 0, + 11957, + 0, + 0, + 11959, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11961, + 0, + 0, + 0, + 0, + 0, + 11978, + 0, + 0, + 0, + 11979, + 11980, + 11986, + 11987, + 0, + 11992, + 0, + 0, + 0, + 0, + 0, + 11993, + 0, + 0, + 0, + 11994, + 0, + 11999, + 12004, + 12005, + 12006, + 0, + 0, + 0, + 0, + 0, + 12011, + 0, + 0, + 12012, + 12014, + 0, + 0, + 12015, + 0, + 0, + 12019, + 12028, + 0, + 0, + 12029, + 0, + 0, + 12032, + 12033, + 0, + 0, + 0, + 0, + 12034, + 0, + 12041, + 12043, + 0, + 0, + 12044, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12046, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12054, + 12055, + 0, + 12056, + 0, + 0, + 0, + 12060, + 12064, + 0, + 0, + 0, + 0, + 0, + 12065, + 12067, + 12068, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12074, + 0, + 0, + 0, + 12075, + 12076, + 0, + 0, + 0, + 12079, + 0, + 12081, + 12086, + 12087, + 0, + 0, + 12088, + 0, + 0, + 0, + 0, + 12089, + 0, + 12092, + 0, + 0, + 0, + 0, + 12097, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12098, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12102, + 12103, + 12104, + 12111, + 0, + 0, + 12114, + 12116, + 0, + 0, + 0, + 12118, + 0, + 0, + 0, + 12119, + 12120, + 12128, + 0, + 0, + 0, + 0, + 12130, + 0, + 0, + 0, + 0, + 0, + 0, + 12131, + 0, + 0, + 0, + 12132, + 12134, + 0, + 0, + 0, + 0, + 12137, + 0, + 12139, + 0, + 12141, + 0, + 0, + 12142, + 0, + 0, + 0, + 12144, + 0, + 0, + 0, + 0, + 0, + 12145, + 0, + 12148, + 0, + 12153, + 0, + 0, + 0, + 0, + 12154, + 12171, + 12173, + 0, + 0, + 0, + 12175, + 0, + 0, + 0, + 0, + 12178, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12183, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12184, + 0, + 0, + 0, + 12186, + 0, + 0, + 0, + 0, + 0, + 12187, + 12188, + 0, + 0, + 12189, + 0, + 12196, + 0, + 12197, + 0, + 0, + 12198, + 0, + 12201, + 0, + 0, + 0, + 0, + 12203, + 0, + 12209, + 0, + 0, + 0, + 0, + 12210, + 12211, + 12212, + 12213, + 0, + 12217, + 12218, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12223, + 0, + 0, + 12229, + 0, + 0, + 0, + 0, + 12233, + 0, + 0, + 0, + 0, + 12234, + 0, + 0, + 12236, + 12242, + 0, + 0, + 0, + 12243, + 0, + 0, + 0, + 12244, + 12253, + 0, + 12254, + 12256, + 0, + 12257, + 0, + 0, + 12275, + 0, + 0, + 0, + 0, + 0, + 12277, + 0, + 0, + 0, + 0, + 0, + 12278, + 0, + 12289, + 0, + 0, + 12290, + 0, + 12292, + 12293, + 0, + 0, + 12294, + 0, + 12295, + 0, + 0, + 12296, + 0, + 12297, + 0, + 12298, + 0, + 0, + 0, + 0, + 12301, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12309, + 0, + 12338, + 12340, + 0, + 0, + 0, + 0, + 12341, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12342, + 12343, + 0, + 12344, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12345, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12346, + 0, + 0, + 0, + 0, + 12348, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12350, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12351, + 0, + 12355, + 12356, + 12357, + 0, + 0, + 12367, + 12370, + 12371, + 0, + 0, + 0, + 0, + 0, + 12372, + 12376, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12379, + 0, + 12382, + 0, + 12383, + 0, + 0, + 12384, + 0, + 0, + 0, + 0, + 12393, + 0, + 0, + 12394, + 0, + 0, + 0, + 0, + 12398, + 12403, + 0, + 0, + 12404, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12410, + 0, + 0, + 0, + 12411, + 0, + 0, + 0, + 12412, + 0, + 0, + 0, + 0, + 12420, + 0, + 12421, + 0, + 0, + 0, + 0, + 0, + 12423, + 0, + 12425, + 12429, + 0, + 0, + 0, + 12431, + 12432, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12434, + 0, + 0, + 0, + 0, + 0, + 12435, + 12436, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12437, + 0, + 0, + 0, + 0, + 0, + 12438, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12445, + 0, + 0, + 0, + 12450, + 12451, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12452, + 12475, + 0, + 0, + 12493, + 12494, + 0, + 0, + 0, + 12495, + 0, + 0, + 0, + 0, + 12496, + 12502, + 12509, + 0, + 0, + 0, + 0, + 12510, + 0, + 12512, + 12513, + 0, + 0, + 0, + 0, + 12514, + 0, + 0, + 0, + 12515, + 0, + 12520, + 0, + 0, + 0, + 12524, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12527, + 0, + 0, + 0, + 12528, + 0, + 0, + 0, + 12529, + 0, + 0, + 0, + 0, + 0, + 12530, + 0, + 12535, + 0, + 0, + 12536, + 0, + 12538, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12540, + 0, + 12548, + 0, + 0, + 0, + 0, + 0, + 12550, + 0, + 0, + 0, + 12551, + 12552, + 0, + 0, + 0, + 12554, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12555, + 0, + 0, + 12562, + 0, + 12565, + 0, + 12566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12569, + 0, + 0, + 0, + 12571, + 12574, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12577, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12578, + 12579, + 12603, + 0, + 12608, + 0, + 0, + 12611, + 0, + 12612, + 0, + 12615, + 0, + 12625, + 0, + 0, + 0, + 0, + 12627, + 12646, + 0, + 12648, + 0, + 0, + 12657, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12670, + 0, + 0, + 12671, + 0, + 12673, + 12677, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12679, + 0, + 12681, + 0, + 12682, + 12693, + 0, + 12694, + 0, + 12697, + 0, + 12701, + 0, + 0, + 0, + 12703, + 12704, + 0, + 0, + 0, + 0, + 12707, + 12737, + 0, + 0, + 12739, + 0, + 0, + 12740, + 0, + 0, + 12742, + 12743, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12745, + 0, + 12746, + 12747, + 0, + 12748, + 0, + 0, + 12759, + 12767, + 0, + 0, + 0, + 0, + 12773, + 0, + 12774, + 12778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12779, + 0, + 0, + 0, + 0, + 0, + 12780, + 12793, + 0, + 12824, + 0, + 12825, + 0, + 12836, + 0, + 0, + 0, + 0, + 12839, + 0, + 12842, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12843, + 12845, + 0, + 12846, + 0, + 0, + 0, + 0, + 12847, + 0, + 0, + 12850, + 12852, + 12853, + 0, + 0, + 0, + 12854, + 0, + 0, + 0, + 12855, + 0, + 12856, + 0, + 12858, + 0, + 0, + 12859, + 0, + 12862, + 0, + 12863, + 0, + 0, + 12866, + 0, + 12869, + 12872, + 12873, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12875, + 0, + 12877, + 0, + 0, + 12878, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12884, + 12885, + 12888, + 0, + 12889, + 0, + 0, + 0, + 0, + 12893, + 0, + 0, + 0, + 12895, + 12896, + 12898, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12902, + 0, + 12909, + 12910, + 0, + 12926, + 0, + 12928, + 0, + 0, + 0, + 12929, + 0, + 12930, + 0, + 0, + 0, + 0, + 12931, + 0, + 12932, + 12933, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12934, + 0, + 12942, + 0, + 0, + 0, + 0, + 12944, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12946, + 0, + 0, + 12948, + 0, + 0, + 12949, + 0, + 0, + 0, + 0, + 12950, + 0, + 0, + 0, + 0, + 12951, + 0, + 12952, + 0, + 12953, + 0, + 0, + 0, + 12954, + 12958, + 12959, + 0, + 0, + 0, + 0, + 0, + 12960, + 12964, + 0, + 0, + 0, + 0, + 0, + 12966, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12970, + 0, + 12971, + 0, + 0, + 0, + 0, + 0, + 0, + 12972, + 0, + 0, + 12982, + 0, + 0, + 0, + 12984, + 12985, + 0, + 12986, + 12996, + 12997, + 13001, + 13002, + 0, + 0, + 0, + 0, + 13004, + 0, + 0, + 13005, + 0, + 0, + 13007, + 13009, + 0, + 13017, + 0, + 0, + 0, + 13020, + 0, + 13021, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13022, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13024, + 13027, + 0, + 0, + 0, + 0, + 0, + 13028, + 0, + 0, + 13029, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13032, + 0, + 13037, + 0, + 0, + 0, + 0, + 0, + 0, + 13040, + 0, + 0, + 13041, + 0, + 0, + 0, + 13043, + 13044, + 13046, + 0, + 0, + 0, + 0, + 13047, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13049, + 13054, + 0, + 13056, + 0, + 0, + 13060, + 13061, + 0, + 0, + 0, + 0, + 0, + 13067, + 0, + 0, + 13068, + 0, + 13071, + 0, + 0, + 0, + 0, + 0, + 13077, + 13078, + 0, + 0, + 0, + 0, + 0, + 13079, + 13080, + 13081, + 0, + 13082, + 0, + 0, + 0, + 13085, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13086, + 0, + 13087, + 13088, + 0, + 0, + 0, + 0, + 0, + 13094, + 0, + 13099, + 0, + 13100, + 0, + 0, + 0, + 13101, + 0, + 13125, + 13126, + 13128, + 13129, + 0, + 0, + 13130, + 0, + 13131, + 0, + 0, + 0, + 0, + 0, + 0, + 13134, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13150, + 0, + 13168, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13169, + 0, + 0, + 13170, + 0, + 0, + 0, + 0, + 13174, + 0, + 0, + 0, + 13176, + 0, + 0, + 0, + 0, + 0, + 13177, + 0, + 13178, + 13183, + 13187, + 0, + 0, + 0, + 13189, + 0, + 0, + 13190, + 0, + 0, + 13191, + 0, + 0, + 13206, + 0, + 0, + 0, + 13207, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13212, + 0, + 0, + 13219, + 13232, + 0, + 0, + 0, + 13241, + 0, + 13249, + 13253, + 0, + 0, + 0, + 0, + 0, + 13255, + 13259, + 0, + 13260, + 13261, + 0, + 13262, + 0, + 13272, + 0, + 0, + 0, + 0, + 13276, + 0, + 0, + 0, + 0, + 13277, + 13299, + 0, + 0, + 13301, + 13302, + 0, + 0, + 13303, + 0, + 0, + 13305, + 0, + 13310, + 0, + 0, + 0, + 13311, + 0, + 0, + 0, + 0, + 13325, + 0, + 13328, + 0, + 0, + 0, + 13329, + 0, + 0, + 0, + 0, + 0, + 0, + 13330, + 0, + 0, + 13331, + 0, + 13335, + 0, + 0, + 13342, + 0, + 0, + 0, + 0, + 0, + 13343, + 0, + 13354, + 0, + 13362, + 0, + 13366, + 13367, + 13369, + 0, + 0, + 13371, + 13372, + 0, + 13373, + 13374, + 0, + 13376, + 0, + 13380, + 13381, + 13386, + 0, + 13387, + 13388, + 0, + 13389, + 13391, + 13395, + 0, + 0, + 0, + 0, + 0, + 13401, + 13409, + 0, + 13410, + 0, + 0, + 0, + 0, + 13420, + 0, + 0, + 0, + 0, + 0, + 13422, + 0, + 0, + 0, + 0, + 13423, + 0, + 0, + 0, + 0, + 13425, + 0, + 0, + 0, + 0, + 0, + 13427, + 0, + 0, + 0, + 13428, + 0, + 0, + 13430, + 13438, + 0, + 13439, + 0, + 13445, + 0, + 13448, + 13449, + 0, + 0, + 0, + 0, + 0, + 0, + 13451, + 0, + 13457, + 0, + 0, + 0, + 0, + 13458, + 13459, + 0, + 13460, + 0, + 0, + 0, + 0, + 13464, + 13465, + 13466, + 13470, + 0, + 13471, + 13472, + 13474, + 13475, + 0, + 13476, + 0, + 0, + 13478, + 13479, + 0, + 13481, + 0, + 0, + 0, + 0, + 13487, + 0, + 13490, + 0, + 13493, + 0, + 0, + 13494, + 0, + 0, + 13495, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13496, + 13497, + 0, + 13500, + 0, + 0, + 13516, + 13522, + 0, + 0, + 13525, + 13528, + 0, + 0, + 0, + 13530, + 13535, + 0, + 13537, + 13539, + 0, + 13540, + 0, + 13543, + 0, + 13544, + 0, + 0, + 0, + 0, + 0, + 0, + 13545, + 0, + 0, + 0, + 0, + 0, + 0, + 13547, + 0, + 0, + 0, + 13549, + 13555, + 0, + 0, + 0, + 13556, + 13557, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13558, + 0, + 13563, + 0, + 0, + 0, + 0, + 13564, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13566, + 0, + 0, + 0, + 0, + 0, + 0, + 13569, + 0, + 0, + 13571, + 0, + 0, + 0, + 0, + 13573, + 0, + 0, + 0, + 0, + 0, + 0, + 13578, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13581, + 0, + 13586, + 0, + 13595, + 0, + 13600, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13601, + 13603, + 0, + 13604, + 13605, + 13606, + 13607, + 0, + 0, + 13617, + 13618, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13623, + 0, + 13625, + 13627, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13629, + 0, + 0, + 0, + 13634, + 0, + 0, + 0, + 13638, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13654, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13656, + 0, + 13659, + 0, + 0, + 13660, + 0, + 0, + 13662, + 0, + 0, + 0, + 13663, + 0, + 13664, + 0, + 0, + 0, + 0, + 0, + 13668, + 0, + 13669, + 13671, + 0, + 0, + 13672, + 0, + 0, + 0, + 0, + 0, + 0, + 13675, + 13685, + 0, + 13686, + 0, + 0, + 0, + 13687, + 0, + 0, + 0, + 13692, + 13694, + 13697, + 0, + 0, + 0, + 13702, + 0, + 0, + 0, + 0, + 0, + 13705, + 0, + 0, + 0, + 0, + 13707, + 0, + 0, + 0, + 13714, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13715, + 0, + 13716, + 13717, + 0, + 0, + 13719, + 13724, + 13730, + 13731, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13732, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13734, + 0, + 13736, + 0, + 0, + 13737, + 13738, + 13747, + 0, + 13751, + 0, + 0, + 13752, + 0, + 0, + 0, + 13753, + 0, + 13757, + 0, + 0, + 13762, + 13763, + 0, + 13764, + 13765, + 0, + 13766, + 0, + 0, + 13767, + 0, + 0, + 0, + 13768, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13769, + 0, + 0, + 13772, + 0, + 13775, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13776, + 13778, + 13787, + 0, + 0, + 0, + 13797, + 0, + 13798, + 0, + 13801, + 0, + 13804, + 13806, + 0, + 0, + 0, + 0, + 13816, + 13817, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13834, + 0, + 13836, + 0, + 0, + 13838, + 0, + 0, + 13839, + 0, + 13840, + 0, + 0, + 0, + 0, + 13842, + 0, + 0, + 0, + 0, + 0, + 0, + 13843, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13845, + 0, + 0, + 0, + 0, + 0, + 13858, + 0, + 0, + 13860, + 0, + 0, + 13861, + 0, + 0, + 13862, + 13863, + 0, + 13868, + 0, + 13869, + 13870, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13872, + 0, + 0, + 0, + 0, + 13873, + 13878, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13886, + 0, + 13888, + 13889, + 13890, + 0, + 0, + 13891, + 13894, + 0, + 13897, + 13899, + 13900, + 13904, + 0, + 0, + 13906, + 0, + 0, + 0, + 13909, + 0, + 0, + 0, + 13910, + 0, + 0, + 0, + 13911, + 0, + 0, + 0, + 0, + 0, + 13912, + 13917, + 0, + 0, + 0, + 0, + 13918, + 0, + 13919, + 0, + 0, + 13920, + 0, + 0, + 0, + 13921, + 0, + 0, + 13922, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13924, + 0, + 13927, + 0, + 0, + 0, + 0, + 0, + 13932, + 0, + 13933, + 0, + 13934, + 0, + 0, + 13935, + 0, + 13944, + 0, + 0, + 0, + 13954, + 0, + 0, + 13955, + 0, + 0, + 0, + 0, + 13956, + 0, + 13957, + 0, + 13967, + 13969, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 13970, + 13990, + 0, + 13991, + 13994, + 0, + 13995, + 0, + 0, + 0, + 0, + 13996, + 0, + 0, + 13999, + 0, + 0, + 0, + 14018, + 0, + 14019, + 0, + 14021, + 0, + 0, + 0, + 0, + 0, + 0, + 14041, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14043, + 0, + 0, + 0, + 0, + 14046, + 0, + 0, + 0, + 14048, + 14049, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14051, + 0, + 0, + 14052, + 14056, + 0, + 14063, + 0, + 14064, + 14066, + 0, + 0, + 14067, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14068, + 0, + 0, + 0, + 14072, + 0, + 14074, + 14075, + 0, + 14076, + 14079, + 14085, + 14086, + 14087, + 14093, + 0, + 0, + 0, + 0, + 14095, + 0, + 0, + 0, + 0, + 0, + 0, + 14096, + 14097, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14098, + 0, + 14102, + 0, + 0, + 0, + 0, + 0, + 14103, + 0, + 0, + 0, + 14104, + 0, + 0, + 14105, + 0, + 0, + 0, + 14107, + 14108, + 0, + 0, + 14109, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14117, + 0, + 0, + 0, + 0, + 14118, + 0, + 0, + 0, + 0, + 14119, + 0, + 0, + 14120, + 0, + 0, + 14121, + 0, + 14122, + 14127, + 0, + 14128, + 14136, + 0, + 0, + 14138, + 0, + 14140, + 0, + 0, + 0, + 14141, + 14142, + 0, + 0, + 0, + 0, + 14146, + 0, + 0, + 14149, + 0, + 14151, + 0, + 0, + 0, + 14152, + 0, + 0, + 14153, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14154, + 0, + 14156, + 14157, + 0, + 0, + 14159, + 0, + 14161, + 0, + 0, + 0, + 0, + 14162, + 0, + 0, + 0, + 0, + 0, + 0, + 14163, + 0, + 0, + 14173, + 0, + 0, + 0, + 0, + 0, + 0, + 14174, + 0, + 0, + 14176, + 0, + 0, + 14178, + 0, + 0, + 14179, + 14181, + 0, + 0, + 14182, + 14185, + 14187, + 0, + 14190, + 0, + 0, + 14197, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14198, + 0, + 0, + 0, + 0, + 0, + 0, + 14199, + 14200, + 0, + 0, + 0, + 14204, + 0, + 0, + 14208, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14231, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14234, + 0, + 0, + 14235, + 0, + 0, + 0, + 14240, + 14241, + 0, + 0, + 0, + 14246, + 0, + 0, + 0, + 14247, + 0, + 14250, + 0, + 0, + 14251, + 0, + 0, + 14254, + 0, + 0, + 14256, + 0, + 0, + 0, + 14260, + 0, + 14261, + 0, + 0, + 0, + 0, + 14262, + 14267, + 14269, + 0, + 0, + 14277, + 0, + 0, + 14278, + 0, + 14279, + 14282, + 0, + 0, + 0, + 14283, + 0, + 0, + 0, + 14284, + 14285, + 0, + 0, + 0, + 0, + 14286, + 0, + 0, + 0, + 14288, + 0, + 0, + 0, + 14289, + 0, + 14290, + 0, + 14293, + 14301, + 14302, + 14304, + 14305, + 0, + 14307, + 0, + 14308, + 14309, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14311, + 14312, + 0, + 0, + 14317, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14318, + 0, + 0, + 0, + 0, + 14320, + 0, + 0, + 0, + 0, + 14321, + 14322, + 0, + 0, + 0, + 0, + 0, + 14326, + 14329, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14330, + 14331, + 0, + 0, + 0, + 0, + 14332, + 0, + 0, + 0, + 14333, + 0, + 0, + 14337, + 14340, + 0, + 14341, + 0, + 0, + 14342, + 0, + 14345, + 14346, + 0, + 0, + 14347, + 0, + 14362, + 0, + 0, + 0, + 0, + 0, + 14364, + 14365, + 14371, + 0, + 14373, + 0, + 0, + 14374, + 0, + 14379, + 0, + 14400, + 0, + 0, + 0, + 0, + 0, + 14401, + 0, + 0, + 14405, + 0, + 14406, + 0, + 14408, + 14409, + 0, + 0, + 0, + 14417, + 0, + 0, + 14424, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14430, + 0, + 0, + 0, + 14431, + 0, + 0, + 14435, + 0, + 14440, + 0, + 0, + 0, + 0, + 0, + 0, + 14442, + 0, + 0, + 14443, + 0, + 0, + 0, + 0, + 0, + 14446, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14454, + 0, + 14457, + 0, + 14460, + 0, + 0, + 14466, + 0, + 0, + 0, + 0, + 0, + 14467, + 0, + 0, + 0, + 0, + 0, + 0, + 14469, + 0, + 14477, + 0, + 0, + 0, + 0, + 0, + 0, + 14478, + 14482, + 0, + 0, + 0, + 14483, + 0, + 0, + 0, + 14485, + 14486, + 0, + 0, + 0, + 14487, + 14488, + 14489, + 14492, + 14493, + 14494, + 14495, + 14496, + 14497, + 0, + 14499, + 0, + 14501, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14502, + 0, + 14507, + 14512, + 14513, + 14514, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14515, + 14526, + 14530, + 0, + 14537, + 0, + 14544, + 0, + 14547, + 0, + 0, + 14548, + 14550, + 14551, + 0, + 0, + 14552, + 0, + 0, + 0, + 14553, + 0, + 14554, + 0, + 0, + 0, + 0, + 14556, + 14564, + 0, + 0, + 14565, + 14566, + 0, + 0, + 0, + 0, + 0, + 0, + 14568, + 0, + 0, + 14569, + 0, + 0, + 0, + 14571, + 14576, + 0, + 0, + 14577, + 14578, + 14579, + 0, + 0, + 14580, + 0, + 0, + 0, + 0, + 14582, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14583, + 0, + 0, + 0, + 0, + 0, + 14587, + 0, + 14588, + 0, + 0, + 14600, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14601, + 0, + 0, + 14604, + 14605, + 14611, + 0, + 14613, + 0, + 0, + 0, + 0, + 14615, + 0, + 0, + 0, + 0, + 0, + 0, + 14627, + 0, + 14628, + 0, + 0, + 0, + 0, + 14631, + 0, + 14633, + 14634, + 0, + 0, + 0, + 0, + 14635, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14636, + 0, + 0, + 14639, + 14642, + 0, + 0, + 0, + 0, + 14644, + 0, + 0, + 0, + 0, + 14645, + 14646, + 0, + 14653, + 0, + 0, + 14654, + 0, + 14658, + 0, + 14661, + 0, + 0, + 0, + 14665, + 0, + 0, + 0, + 14668, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14669, + 0, + 0, + 14670, + 0, + 0, + 0, + 14680, + 0, + 0, + 14681, + 0, + 0, + 0, + 0, + 0, + 14682, + 14683, + 0, + 0, + 0, + 0, + 14686, + 0, + 0, + 0, + 0, + 14687, + 14697, + 0, + 0, + 0, + 0, + 14699, + 14705, + 14711, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14712, + 0, + 0, + 0, + 14713, + 0, + 0, + 0, + 0, + 14719, + 0, + 14720, + 14721, + 14726, + 0, + 0, + 0, + 14728, + 14729, + 0, + 0, + 0, + 0, + 14731, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14733, + 14736, + 14737, + 0, + 0, + 14740, + 14742, + 0, + 0, + 0, + 14744, + 14753, + 0, + 0, + 0, + 0, + 14755, + 14758, + 14760, + 0, + 0, + 0, + 0, + 0, + 14761, + 14762, + 14765, + 14771, + 0, + 14772, + 0, + 14773, + 14774, + 0, + 0, + 14775, + 0, + 0, + 14776, + 0, + 0, + 0, + 0, + 14777, + 0, + 14779, + 0, + 0, + 14782, + 0, + 0, + 14785, + 14786, + 14788, + 0, + 0, + 0, + 0, + 0, + 14795, + 0, + 0, + 0, + 0, + 0, + 0, + 14798, + 0, + 14803, + 14804, + 14806, + 0, + 0, + 0, + 14809, + 0, + 0, + 0, + 0, + 0, + 0, + 14810, + 0, + 0, + 0, + 0, + 14811, + 0, + 14812, + 0, + 0, + 0, + 0, + 0, + 14815, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14816, + 0, + 14818, + 0, + 0, + 0, + 0, + 0, + 0, + 14819, + 0, + 14820, + 0, + 14823, + 0, + 0, + 0, + 14824, + 0, + 0, + 14826, + 14827, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14830, + 0, + 0, + 0, + 0, + 0, + 14833, + 0, + 14845, + 0, + 0, + 0, + 0, + 0, + 14846, + 0, + 0, + 14847, + 14871, + 0, + 14873, + 0, + 14876, + 0, + 14877, + 14878, + 14880, + 0, + 0, + 0, + 0, + 0, + 14881, + 0, + 14882, + 14894, + 0, + 0, + 0, + 0, + 14895, + 0, + 14907, + 0, + 14908, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14911, + 0, + 0, + 0, + 0, + 14920, + 0, + 0, + 14931, + 0, + 14932, + 14934, + 14935, + 0, + 0, + 14936, + 0, + 14945, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14947, + 0, + 0, + 14948, + 14949, + 14951, + 0, + 0, + 14952, + 0, + 0, + 0, + 14964, + 14973, + 0, + 0, + 14990, + 0, + 0, + 0, + 0, + 14995, + 0, + 0, + 14998, + 15001, + 0, + 0, + 15002, + 15020, + 0, + 0, + 0, + 0, + 0, + 0, + 15021, + 0, + 15022, + 0, + 0, + 0, + 0, + 15023, + 0, + 0, + 15025, + 15029, + 15033, + 0, + 0, + 0, + 15034, + 0, + 0, + 0, + 15035, + 0, + 0, + 0, + 0, + 0, + 15043, + 15044, + 0, + 0, + 0, + 15045, + 15046, + 15048, + 15050, + 0, + 15065, + 0, + 0, + 0, + 0, + 15066, + 0, + 0, + 15075, + 15082, + 15084, + 0, + 0, + 15085, + 15086, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15088, + 0, + 0, + 0, + 15089, + 0, + 0, + 0, + 0, + 15094, + 0, + 15096, + 0, + 15097, + 0, + 15100, + 0, + 0, + 15102, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15105, + 0, + 0, + 15106, + 0, + 15109, + 15113, + 0, + 0, + 0, + 15115, + 0, + 15118, + 0, + 0, + 0, + 0, + 0, + 0, + 15119, + 0, + 0, + 15120, + 0, + 0, + 0, + 0, + 0, + 15123, + 15129, + 0, + 0, + 0, + 15130, + 0, + 15131, + 0, + 0, + 15134, + 0, + 15135, + 0, + 0, + 0, + 15137, + 15138, + 0, + 0, + 0, + 0, + 0, + 0, + 15139, + 0, + 0, + 0, + 0, + 0, + 15140, + 0, + 0, + 15154, + 15162, + 0, + 15169, + 15170, + 0, + 15175, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15177, + 0, + 15178, + 15179, + 0, + 0, + 0, + 0, + 0, + 15183, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15185, + 15187, + 0, + 15194, + 15195, + 15196, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15204, + 0, + 0, + 0, + 0, + 15206, + 0, + 0, + 0, + 0, + 0, + 15207, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15213, + 0, + 15214, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15232, + 0, + 0, + 0, + 0, + 15234, + 0, + 15238, + 15240, + 0, + 15248, + 0, + 0, + 0, + 0, + 15250, + 15251, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15252, + 0, + 0, + 0, + 15255, + 15262, + 15266, + 0, + 0, + 0, + 15267, + 0, + 0, + 0, + 15277, + 15279, + 0, + 0, + 0, + 15280, + 15281, + 15282, + 0, + 0, + 0, + 0, + 0, + 15285, + 0, + 0, + 0, + 0, + 15289, + 0, + 0, + 15291, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15296, + 15297, + 0, + 0, + 15304, + 0, + 0, + 0, + 0, + 15306, + 0, + 0, + 0, + 0, + 0, + 0, + 15307, + 15308, + 0, + 15309, + 0, + 0, + 15311, + 0, + 0, + 15312, + 15313, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15314, + 15317, + 0, + 0, + 0, + 15318, + 15319, + 0, + 0, + 0, + 0, + 15320, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15321, + 0, + 0, + 0, + 0, + 0, + 15324, + 0, + 15325, + 15326, + 0, + 15330, + 0, + 0, + 0, + 0, + 15334, + 0, + 15335, + 0, + 15341, + 0, + 0, + 15342, + 0, + 0, + 15343, + 15344, + 0, + 0, + 0, + 0, + 15345, + 0, + 0, + 0, + 0, + 15347, + 0, + 0, + 15348, + 15349, + 15350, + 0, + 15356, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15357, + 0, + 15358, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15359, + 15360, + 15364, + 0, + 15380, + 0, + 0, + 0, + 0, + 0, + 15392, + 0, + 0, + 15393, + 0, + 15395, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15396, + 0, + 0, + 15397, + 15398, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15399, + 0, + 15400, + 0, + 0, + 0, + 15402, + 0, + 15405, + 15410, + 0, + 0, + 0, + 0, + 15411, + 0, + 0, + 0, + 15412, + 0, + 15416, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15428, + 0, + 15435, + 0, + 0, + 15438, + 0, + 0, + 0, + 0, + 15439, + 0, + 0, + 0, + 15440, + 0, + 0, + 0, + 15441, + 15449, + 15451, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15452, + 0, + 0, + 15455, + 0, + 0, + 0, + 15456, + 0, + 0, + 15458, + 0, + 15460, + 15461, + 0, + 0, + 0, + 0, + 0, + 15462, + 15464, + 0, + 15465, + 0, + 0, + 15466, + 0, + 0, + 15467, + 0, + 0, + 0, + 0, + 0, + 15468, + 0, + 0, + 0, + 0, + 15481, + 0, + 0, + 15484, + 0, + 15485, + 15486, + 0, + 0, + 0, + 15487, + 0, + 0, + 0, + 0, + 0, + 15488, + 0, + 15492, + 15498, + 0, + 0, + 0, + 15499, + 0, + 0, + 0, + 15500, + 0, + 15501, + 0, + 0, + 15512, + 0, + 15522, + 0, + 0, + 0, + 15524, + 0, + 15525, + 15526, + 0, + 0, + 15527, + 0, + 0, + 15545, + 15546, + 0, + 15548, + 15552, + 0, + 15553, + 0, + 0, + 0, + 15554, + 0, + 15555, + 0, + 15557, + 15565, + 15573, + 15577, + 15578, + 0, + 15582, + 0, + 15583, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15586, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15588, + 0, + 0, + 0, + 0, + 0, + 15589, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15593, + 15594, + 0, + 0, + 0, + 0, + 15595, + 0, + 0, + 0, + 0, + 0, + 0, + 15596, + 0, + 0, + 0, + 15597, + 0, + 0, + 0, + 0, + 15600, + 0, + 0, + 15601, + 0, + 0, + 0, + 0, + 15602, + 15603, + 0, + 0, + 0, + 0, + 0, + 0, + 15604, + 0, + 15609, + 0, + 0, + 15612, + 0, + 0, + 15613, + 0, + 0, + 15615, + 15617, + 15618, + 0, + 0, + 15620, + 0, + 15636, + 15637, + 0, + 0, + 15649, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15650, + 0, + 0, + 15651, + 0, + 0, + 0, + 15656, + 0, + 15658, + 0, + 0, + 0, + 15664, + 0, + 0, + 15665, + 0, + 0, + 15668, + 0, + 0, + 0, + 0, + 0, + 15669, + 0, + 0, + 15674, + 0, + 0, + 15675, + 0, + 0, + 0, + 0, + 15676, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15677, + 0, + 0, + 0, + 0, + 15678, + 0, + 0, + 0, + 0, + 0, + 15679, + 0, + 0, + 15681, + 0, + 15686, + 0, + 0, + 0, + 0, + 15687, + 0, + 15688, + 0, + 0, + 15690, + 0, + 0, + 0, + 15697, + 0, + 15699, + 15700, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15701, + 0, + 15702, + 15703, + 0, + 15704, + 0, + 15705, + 0, + 15707, + 0, + 15709, + 0, + 15712, + 15716, + 0, + 15717, + 0, + 15718, + 15720, + 0, + 0, + 0, + 0, + 0, + 15724, + 0, + 0, + 0, + 15725, + 0, + 15726, + 0, + 0, + 0, + 15740, + 0, + 15745, + 15746, + 0, + 0, + 15747, + 0, + 15748, + 0, + 0, + 0, + 0, + 0, + 15749, + 0, + 0, + 0, + 15752, + 0, + 15753, + 0, + 0, + 0, + 0, + 0, + 0, + 15759, + 0, + 0, + 0, + 15765, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15767, + 0, + 0, + 0, + 15771, + 0, + 0, + 15784, + 0, + 0, + 0, + 0, + 15785, + 15790, + 15791, + 0, + 0, + 15792, + 0, + 0, + 0, + 15807, + 0, + 15811, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15818, + 0, + 0, + 0, + 15819, + 0, + 0, + 0, + 0, + 15821, + 0, + 0, + 0, + 0, + 0, + 15822, + 15824, + 0, + 0, + 15827, + 0, + 0, + 15829, + 15831, + 0, + 15832, + 0, + 0, + 15833, + 0, + 15835, + 15838, + 15839, + 15843, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15844, + 0, + 0, + 0, + 0, + 15845, + 15851, + 15856, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15858, + 15860, + 0, + 15861, + 0, + 0, + 0, + 15864, + 0, + 0, + 0, + 0, + 15865, + 0, + 0, + 0, + 0, + 0, + 0, + 15866, + 0, + 15872, + 0, + 0, + 15876, + 0, + 0, + 0, + 0, + 15877, + 15878, + 15883, + 15885, + 0, + 0, + 15888, + 0, + 0, + 0, + 0, + 0, + 15889, + 15890, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15892, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15893, + 0, + 0, + 15894, + 0, + 0, + 0, + 15895, + 0, + 15896, + 15897, + 0, + 15898, + 15901, + 15902, + 0, + 15911, + 15915, + 0, + 15916, + 0, + 15924, + 15935, + 0, + 15937, + 0, + 0, + 0, + 0, + 0, + 15950, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15958, + 0, + 0, + 0, + 15961, + 0, + 0, + 15966, + 0, + 15967, + 0, + 0, + 15977, + 0, + 0, + 15978, + 0, + 0, + 15981, + 15982, + 15983, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15986, + 0, + 0, + 0, + 15990, + 0, + 15991, + 15995, + 15998, + 0, + 15999, + 0, + 16000, + 0, + 0, + 0, + 0, + 16008, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16009, + 16011, + 0, + 16013, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16014, + 0, + 0, + 16015, + 16023, + 16024, + 16025, + 0, + 0, + 16026, + 0, + 16030, + 0, + 16032, + 0, + 16033, + 0, + 0, + 0, + 0, + 0, + 0, + 16035, + 16036, + 16037, + 0, + 0, + 0, + 0, + 0, + 16039, + 0, + 0, + 0, + 0, + 16041, + 0, + 0, + 0, + 0, + 0, + 16043, + 16044, + 0, + 0, + 16047, + 0, + 0, + 0, + 16048, + 0, + 0, + 16049, + 16050, + 16052, + 0, + 0, + 0, + 0, + 0, + 16055, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16056, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16058, + 16060, + 16061, + 0, + 0, + 16063, + 0, + 0, + 16064, + 0, + 0, + 0, + 16067, + 16068, + 0, + 0, + 16069, + 16078, + 0, + 0, + 0, + 16079, + 0, + 0, + 0, + 16080, + 0, + 16081, + 0, + 0, + 0, + 16088, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16089, + 16093, + 0, + 16097, + 0, + 16103, + 0, + 16104, + 16105, + 0, + 0, + 16256, + 0, + 0, + 16259, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16260, + 16261, + 0, + 0, + 16262, + 0, + 0, + 16263, + 0, + 16268, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16269, + 0, + 0, + 16270, + 16273, + 0, + 16274, + 0, + 0, + 0, + 0, + 16275, + 16276, + 16277, + 16280, + 0, + 0, + 0, + 16281, + 16284, + 0, + 0, + 0, + 16286, + 0, + 16289, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16290, + 0, + 0, + 0, + 0, + 16291, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16292, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16293, + 16295, + 16297, + 0, + 16302, + 0, + 16304, + 0, + 16305, + 0, + 16306, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16307, + 16308, + 16312, + 0, + 0, + 0, + 0, + 0, + 0, + 16313, + 16315, + 0, + 16318, + 0, + 0, + 0, + 16321, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16326, + 16333, + 16336, + 0, + 0, + 0, + 0, + 16337, + 16340, + 0, + 0, + 0, + 0, + 0, + 16345, + 0, + 0, + 16346, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16347, + 0, + 0, + 16348, + 0, + 0, + 0, + 0, + 16349, + 0, + 0, + 0, + 16350, + 0, + 16357, + 0, + 0, + 0, + 0, + 16359, + 16360, + 0, + 0, + 0, + 0, + 16362, + 16363, + 16364, + 16365, + 0, + 0, + 16366, + 0, + 0, + 0, + 0, + 16367, + 16368, + 0, + 16369, + 16374, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16376, + 0, + 0, + 0, + 0, + 16378, + 16379, + 0, + 16380, + 0, + 0, + 0, + 16381, + 16383, + 0, + 0, + 0, + 0, + 0, + 16390, + 0, + 0, + 0, + 16399, + 0, + 16402, + 16404, + 16406, + 16407, + 0, + 0, + 0, + 16409, + 16411, + 0, + 0, + 0, + 0, + 16412, + 0, + 16413, + 16415, + 16423, + 0, + 0, + 0, + 0, + 0, + 16424, + 0, + 0, + 0, + 16428, + 16434, + 16435, + 16449, + 0, + 16450, + 16451, + 0, + 0, + 0, + 16453, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16454, + 0, + 0, + 16456, + 16458, + 0, + 0, + 16459, + 0, + 0, + 16460, + 0, + 0, + 0, + 0, + 16462, + 0, + 16463, + 0, + 0, + 16466, + 0, + 0, + 0, + 0, + 0, + 16479, + 0, + 0, + 16480, + 0, + 16481, + 16484, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16485, + 0, + 0, + 0, + 0, + 0, + 0, + 16489, + 0, + 0, + 0, + 0, + 0, + 16491, + 0, + 0, + 16498, + 0, + 0, + 16503, + 0, + 16505, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16506, + 0, + 0, + 0, + 16508, + 16509, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16511, + 16513, + 0, + 0, + 0, + 16516, + 0, + 16517, + 0, + 16519, + 0, + 16529, + 0, + 0, + 16531, + 0, + 0, + 0, + 0, + 0, + 0, + 16534, + 0, + 0, + 16541, + 16542, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16543, + 16547, + 16548, + 0, + 0, + 0, + 16551, + 0, + 16552, + 0, + 0, + 0, + 16553, + 0, + 0, + 16558, + 0, + 0, + 16562, + 16565, + 0, + 0, + 0, + 16570, + 0, + 0, + 0, + 16573, + 16585, + 0, + 0, + 0, + 16586, + 16587, + 16595, + 0, + 16596, + 0, + 16598, + 0, + 0, + 0, + 16600, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16601, + 0, + 0, + 0, + 0, + 16603, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16604, + 16612, + 0, + 0, + 0, + 0, + 16613, + 0, + 16618, + 0, + 0, + 0, + 16640, + 0, + 0, + 16641, + 0, + 0, + 0, + 0, + 0, + 0, + 16645, + 0, + 0, + 0, + 0, + 16646, + 0, + 0, + 0, + 0, + 0, + 0, + 16651, + 0, + 0, + 0, + 0, + 16653, + 16654, + 0, + 0, + 0, + 16655, + 0, + 0, + 16656, + 16667, + 0, + 0, + 0, + 0, + 16671, + 0, + 16672, + 0, + 0, + 0, + 16673, + 0, + 0, + 0, + 0, + 0, + 16676, + 0, + 16686, + 0, + 0, + 0, + 0, + 16689, + 0, + 16690, + 0, + 16692, + 0, + 16693, + 0, + 16694, + 0, + 16696, + 0, + 0, + 0, + 16705, + 0, + 0, + 0, + 0, + 0, + 0, + 16707, + 0, + 0, + 0, + 16709, + 0, + 0, + 0, + 0, + 16711, + 0, + 16712, + 16713, + 0, + 0, + 0, + 16715, + 0, + 0, + 0, + 0, + 16716, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16718, + 16724, + 0, + 0, + 16726, + 16727, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16728, + 0, + 16729, + 0, + 0, + 16730, + 0, + 0, + 0, + 0, + 0, + 16731, + 0, + 0, + 0, + 16732, + 0, + 0, + 0, + 0, + 16734, + 16738, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16743, + 0, + 0, + 16745, + 0, + 0, + 0, + 0, + 0, + 16749, + 0, + 16752, + 0, + 0, + 0, + 0, + 16756, + 0, + 0, + 16758, + 0, + 16759, + 0, + 0, + 0, + 0, + 0, + 16760, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16762, + 0, + 16769, + 0, + 16770, + 0, + 16772, + 0, + 0, + 0, + 16777, + 16780, + 0, + 0, + 0, + 0, + 0, + 0, + 16781, + 0, + 0, + 16782, + 0, + 16784, + 0, + 0, + 16785, + 16787, + 16792, + 0, + 0, + 16794, + 0, + 0, + 0, + 16798, + 0, + 0, + 16809, + 0, + 0, + 16814, + 16816, + 16817, + 0, + 16819, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16820, + 0, + 0, + 16836, + 16839, + 0, + 0, + 16841, + 16851, + 16857, + 0, + 0, + 16858, + 16859, + 0, + 0, + 16860, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16862, + 0, + 16863, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16864, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16876, + 0, + 16881, + 16882, + 0, + 16885, + 16886, + 0, + 16887, + 0, + 0, + 0, + 16889, + 16891, + 0, + 0, + 0, + 0, + 0, + 16894, + 16895, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16897, + 0, + 16898, + 0, + 0, + 0, + 0, + 0, + 16913, + 0, + 0, + 16924, + 16925, + 16926, + 0, + 0, + 16927, + 0, + 0, + 0, + 16937, + 16938, + 0, + 0, + 0, + 16940, + 16941, + 0, + 0, + 0, + 16942, + 16945, + 0, + 16946, + 16949, + 16950, + 0, + 0, + 0, + 16952, + 16955, + 0, + 0, + 0, + 16965, + 0, + 16969, + 0, + 0, + 16975, + 0, + 0, + 16976, + 0, + 0, + 0, + 0, + 16978, + 0, + 0, + 16981, + 0, + 16983, + 16989, + 0, + 0, + 0, + 0, + 16990, + 0, + 0, + 16991, + 0, + 0, + 0, + 16993, + 0, + 16994, + 16996, + 17000, + 0, + 0, + 0, + 0, + 0, + 17002, + 17004, + 0, + 17006, + 0, + 0, + 17007, + 0, + 0, + 0, + 0, + 17008, + 17013, + 17014, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17021, + 0, + 17031, + 0, + 0, + 0, + 0, + 0, + 17033, + 17036, + 0, + 17038, + 0, + 0, + 17039, + 0, + 17045, + 0, + 0, + 17046, + 17047, + 0, + 0, + 0, + 0, + 17048, + 0, + 17049, + 17050, + 0, + 17051, + 17053, + 0, + 17054, + 0, + 17055, + 0, + 0, + 0, + 0, + 0, + 17063, + 0, + 0, + 17064, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17065, + 0, + 0, + 17068, + 0, + 0, + 0, + 0, + 0, + 17072, + 0, + 0, + 0, + 0, + 0, + 0, + 17073, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17074, + 0, + 17080, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17081, + 17083, + 17084, + 0, + 0, + 0, + 17085, + 0, + 0, + 0, + 0, + 17092, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17093, + 0, + 17095, + 17102, + 0, + 0, + 0, + 0, + 0, + 0, + 17103, + 0, + 0, + 17105, + 0, + 17107, + 0, + 0, + 0, + 0, + 17114, + 0, + 0, + 0, + 0, + 0, + 17115, + 17125, + 17127, + 0, + 0, + 17128, + 0, + 0, + 0, + 17129, + 17130, + 0, + 17131, + 0, + 0, + 0, + 0, + 0, + 17132, + 17135, + 17145, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17146, + 0, + 17147, + 0, + 17148, + 0, + 0, + 0, + 0, + 0, + 0, + 17149, + 17150, + 0, + 17151, + 17153, + 0, + 17155, + 0, + 0, + 0, + 0, + 17163, + 17171, + 0, + 17174, + 0, + 0, + 0, + 0, + 17179, + 0, + 0, + 17182, + 17185, + 0, + 0, + 0, + 0, + 0, + 17186, + 0, + 0, + 17188, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17189, + 17191, + 0, + 17194, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17195, + 17196, + 17203, + 17204, + 0, + 0, + 17205, + 17217, + 0, + 0, + 0, + 0, + 0, + 17218, + 0, + 0, + 0, + 0, + 17219, + 0, + 17220, + 0, + 17221, + 0, + 0, + 17230, + 0, + 0, + 0, + 0, + 0, + 17236, + 0, + 17238, + 17239, + 0, + 0, + 0, + 17241, + 17244, + 0, + 0, + 17245, + 0, + 17248, + 0, + 0, + 17251, + 0, + 17252, + 0, + 0, + 17264, + 0, + 17266, + 0, + 0, + 0, + 17268, + 0, + 0, + 0, + 0, + 17271, + 17272, + 0, + 17273, + 0, + 17295, + 0, + 17302, + 0, + 17305, + 0, + 0, + 0, + 17306, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17308, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17309, + 0, + 17310, + 17313, + 0, + 0, + 0, + 0, + 17314, + 17315, + 0, + 17317, + 0, + 0, + 0, + 0, + 17318, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17320, + 0, + 0, + 0, + 0, + 0, + 0, + 17334, + 0, + 17344, + 17348, + 0, + 0, + 0, + 17350, + 17351, + 0, + 0, + 17353, + 0, + 0, + 17354, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17355, + 0, + 0, + 0, + 0, + 0, + 0, + 17356, + 17357, + 0, + 0, + 17359, + 0, + 0, + 0, + 17371, + 0, + 17372, + 0, + 0, + 0, + 17393, + 0, + 0, + 0, + 0, + 17394, + 0, + 0, + 0, + 0, + 0, + 17395, + 0, + 0, + 17399, + 0, + 0, + 0, + 17401, + 17417, + 0, + 17418, + 0, + 17419, + 0, + 0, + 0, + 0, + 0, + 17422, + 17423, + 0, + 0, + 0, + 0, + 0, + 17424, + 0, + 0, + 0, + 0, + 0, + 17428, + 17429, + 17433, + 0, + 0, + 0, + 17437, + 0, + 0, + 17441, + 0, + 0, + 17442, + 0, + 0, + 17453, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17454, + 17456, + 17462, + 0, + 0, + 17466, + 0, + 0, + 17468, + 0, + 0, + 17469, + 0, + 0, + 0, + 0, + 17470, + 0, + 17475, + 0, + 0, + 0, + 0, + 0, + 17479, + 0, + 0, + 0, + 17483, + 17484, + 0, + 17485, + 0, + 17486, + 0, + 17491, + 17492, + 0, + 0, + 17493, + 0, + 17494, + 17495, + 0, + 0, + 0, + 17496, + 0, + 0, + 0, + 17497, + 0, + 0, + 0, + 17502, + 0, + 0, + 0, + 0, + 0, + 17503, + 0, + 17505, + 0, + 17507, + 0, + 0, + 0, + 17512, + 17513, + 17514, + 0, + 0, + 17515, + 0, + 0, + 0, + 17519, + 0, + 0, + 0, + 17522, + 0, + 0, + 17523, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17527, + 0, + 0, + 0, + 17528, + 0, + 0, + 0, + 17534, + 0, + 0, + 0, + 0, + 17536, + 0, + 0, + 0, + 17539, + 0, + 17540, + 17543, + 17549, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17556, + 0, + 0, + 17558, + 0, + 17559, + 0, + 0, + 17560, + 0, + 0, + 0, + 17563, + 0, + 0, + 0, + 0, + 0, + 0, + 17564, + 0, + 0, + 17565, + 17566, + 0, + 17567, + 0, + 0, + 0, + 0, + 0, + 0, + 17569, + 17570, + 0, + 17575, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17581, + 0, + 0, + 0, + 17582, + 17583, + 0, + 17586, + 0, + 0, + 17587, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17588, + 0, + 0, + 0, + 0, + 17596, + 17597, + 0, + 0, + 17598, + 17600, + 0, + 0, + 0, + 0, + 0, + 0, + 17601, + 0, + 0, + 0, + 17604, + 0, + 0, + 17605, + 0, + 0, + 17607, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17612, + 0, + 0, + 17618, + 0, + 17621, + 17622, + 0, + 0, + 0, + 0, + 17623, + 0, + 0, + 17624, + 0, + 0, + 17630, + 0, + 0, + 17631, + 17633, + 17634, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17635, + 0, + 0, + 17636, + 0, + 0, + 17637, + 0, + 17638, + 0, + 17640, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17641, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17643, + 0, + 0, + 0, + 0, + 17645, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17646, + 17662, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17663, + 17664, + 0, + 17665, + 17666, + 0, + 0, + 0, + 17669, + 17671, + 17673, + 0, + 17679, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17684, + 0, + 0, + 0, + 17686, + 0, + 17714, + 0, + 0, + 17720, + 17722, + 17726, + 0, + 0, + 17728, + 0, + 0, + 17729, + 0, + 0, + 0, + 17732, + 0, + 17733, + 0, + 17734, + 0, + 0, + 0, + 17735, + 0, + 0, + 0, + 0, + 17737, + 0, + 0, + 0, + 0, + 17739, + 0, + 0, + 0, + 17741, + 17742, + 0, + 0, + 0, + 0, + 17743, + 17744, + 17745, + 0, + 0, + 0, + 17749, + 0, + 17750, + 17751, + 17752, + 17754, + 17761, + 17762, + 0, + 17763, + 0, + 17766, + 0, + 17772, + 0, + 0, + 0, + 0, + 0, + 17775, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17776, + 0, + 0, + 17777, + 0, + 0, + 17778, + 17779, + 0, + 17782, + 17783, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17784, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17821, + 0, + 0, + 0, + 17822, + 0, + 0, + 0, + 17823, + 17825, + 0, + 0, + 0, + 0, + 0, + 17826, + 17831, + 17832, + 17833, + 0, + 0, + 17845, + 0, + 0, + 0, + 17846, + 0, + 0, + 0, + 17848, + 17850, + 17854, + 0, + 17855, + 0, + 0, + 17859, + 0, + 0, + 0, + 0, + 0, + 0, + 17860, + 17861, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17870, + 17871, + 0, + 0, + 0, + 0, + 0, + 0, + 17872, + 0, + 0, + 0, + 17879, + 0, + 0, + 0, + 17881, + 17883, + 0, + 17884, + 0, + 17885, + 0, + 0, + 17886, + 0, + 0, + 17887, + 17891, + 17953, + 0, + 0, + 0, + 0, + 17954, + 0, + 0, + 17955, + 0, + 17968, + 0, + 0, + 17972, + 0, + 0, + 0, + 0, + 0, + 17974, + 0, + 0, + 0, + 0, + 17976, + 17978, + 0, + 0, + 17983, + 0, + 0, + 0, + 0, + 18003, + 0, + 0, + 0, + 0, + 0, + 18007, + 0, + 0, + 0, + 0, + 0, + 18009, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18010, + 0, + 0, + 0, + 0, + 0, + 0, + 18012, + 0, + 0, + 18014, + 0, + 0, + 0, + 18015, + 0, + 0, + 0, + 18016, + 0, + 18017, + 0, + 0, + 0, + 18030, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18031, + 0, + 0, + 18036, + 18037, + 18038, + 0, + 0, + 18049, + 18056, + 0, + 18057, + 18058, + 0, + 18059, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18062, + 0, + 0, + 0, + 0, + 18064, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18067, + 0, + 0, + 0, + 18068, + 0, + 0, + 18075, + 0, + 0, + 18078, + 18093, + 18094, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18097, + 0, + 0, + 0, + 0, + 0, + 18098, + 18100, + 0, + 0, + 0, + 18108, + 0, + 18111, + 0, + 0, + 18112, + 0, + 18113, + 0, + 0, + 18115, + 18116, + 0, + 18118, + 0, + 0, + 0, + 0, + 18121, + 0, + 0, + 0, + 0, + 18123, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18124, + 0, + 0, + 0, + 0, + 18125, + 18126, + 0, + 18127, + 0, + 0, + 18128, + 18135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18150, + 0, + 0, + 0, + 0, + 0, + 18151, + 18152, + 0, + 0, + 18156, + 18164, + 0, + 18166, + 18171, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18172, + 18183, + 0, + 18184, + 0, + 0, + 0, + 0, + 18185, + 0, + 18187, + 0, + 0, + 0, + 0, + 0, + 18188, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18189, + 0, + 0, + 18190, + 0, + 0, + 18191, + 18192, + 0, + 0, + 18194, + 18195, + 18196, + 0, + 0, + 0, + 18197, + 0, + 18203, + 0, + 18204, + 0, + 0, + 0, + 0, + 18205, + 0, + 0, + 0, + 18207, + 18208, + 0, + 0, + 18214, + 0, + 0, + 0, + 18215, + 18216, + 0, + 0, + 0, + 18220, + 0, + 0, + 18222, + 0, + 0, + 0, + 0, + 0, + 18223, + 0, + 18225, + 18231, + 0, + 18234, + 0, + 18235, + 0, + 0, + 0, + 0, + 18240, + 0, + 0, + 18241, + 18242, + 0, + 0, + 0, + 0, + 0, + 18243, + 18251, + 0, + 18253, + 0, + 18254, + 0, + 0, + 0, + 18266, + 0, + 0, + 0, + 0, + 0, + 0, + 18269, + 18270, + 18271, + 18273, + 18281, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18282, + 0, + 18283, + 0, + 18284, + 0, + 0, + 0, + 0, + 0, + 0, + 18285, + 0, + 18287, + 18289, + 0, + 0, + 18290, + 0, + 0, + 0, + 0, + 18308, + 0, + 0, + 0, + 18310, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18311, + 0, + 18312, + 18313, + 0, + 18315, + 0, + 0, + 18316, + 18320, + 0, + 18331, + 0, + 18332, + 0, + 18336, + 0, + 0, + 0, + 0, + 18337, + 0, + 18340, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18341, + 0, + 18344, + 18345, + 0, + 18346, + 0, + 0, + 0, + 0, + 0, + 18348, + 0, + 18351, + 0, + 0, + 18356, + 0, + 0, + 0, + 0, + 0, + 0, + 18357, + 0, + 0, + 0, + 0, + 0, + 18367, + 0, + 0, + 0, + 18368, + 0, + 18369, + 0, + 18370, + 18371, + 0, + 0, + 0, + 18437, + 18444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18445, + 18450, + 0, + 0, + 0, + 0, + 18451, + 0, + 18452, + 0, + 0, + 0, + 18453, + 0, + 0, + 0, + 0, + 0, + 18455, + 0, + 0, + 0, + 18456, + 0, + 18457, + 0, + 18460, + 0, + 0, + 18461, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18466, + 0, + 0, + 18467, + 0, + 0, + 0, + 0, + 18473, + 0, + 0, + 0, + 18476, + 0, + 18477, + 0, + 0, + 0, + 18478, + 18479, + 18480, + 0, + 0, + 0, + 18485, + 0, + 0, + 0, + 18486, + 0, + 0, + 0, + 0, + 0, + 0, + 18488, + 18490, + 0, + 0, + 0, + 0, + 0, + 0, + 18491, + 0, + 0, + 0, + 0, + 0, + 18495, + 0, + 0, + 18496, + 0, + 0, + 0, + 0, + 0, + 0, + 18505, + 0, + 18521, + 0, + 18522, + 18523, + 0, + 0, + 0, + 18525, + 18526, + 0, + 0, + 0, + 0, + 0, + 18527, + 0, + 0, + 0, + 0, + 18532, + 18533, + 0, + 18534, + 0, + 0, + 0, + 0, + 0, + 0, + 18535, + 18537, + 0, + 18538, + 0, + 0, + 0, + 0, + 0, + 0, + 18540, + 18541, + 18542, + 18543, + 0, + 18546, + 0, + 0, + 0, + 0, + 18553, + 18556, + 0, + 0, + 18558, + 0, + 0, + 18569, + 18571, + 0, + 0, + 0, + 18572, + 0, + 18574, + 0, + 0, + 0, + 0, + 18586, + 0, + 0, + 0, + 0, + 0, + 18588, + 0, + 0, + 18589, + 0, + 0, + 0, + 0, + 0, + 0, + 18590, + 0, + 18592, + 0, + 0, + 0, + 0, + 18594, + 0, + 0, + 0, + 18596, + 0, + 0, + 18597, + 18598, + 0, + 0, + 18601, + 0, + 0, + 0, + 0, + 18602, + 0, + 0, + 0, + 18603, + 18604, + 0, + 18605, + 0, + 0, + 0, + 0, + 18608, + 0, + 0, + 18611, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18612, + 0, + 18616, + 0, + 0, + 18617, + 18619, + 0, + 0, + 0, + 18628, + 0, + 0, + 0, + 18629, + 0, + 0, + 18630, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18631, + 0, + 18632, + 0, + 0, + 18635, + 18637, + 0, + 0, + 0, + 0, + 0, + 0, + 18641, + 18643, + 18648, + 0, + 18652, + 0, + 0, + 18653, + 0, + 18655, + 18656, + 0, + 0, + 0, + 18657, + 0, + 0, + 18666, + 18674, + 0, + 0, + 0, + 0, + 18677, + 18684, + 18685, + 0, + 0, + 18686, + 0, + 0, + 18690, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18695, + 18696, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18697, + 0, + 0, + 18700, + 0, + 0, + 0, + 0, + 0, + 0, + 18702, + 0, + 18708, + 0, + 0, + 18709, + 0, + 18710, + 0, + 0, + 18711, + 0, + 18714, + 0, + 0, + 18718, + 0, + 0, + 0, + 0, + 0, + 0, + 18719, + 0, + 0, + 18722, + 0, + 18726, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18731, + 0, + 0, + 0, + 0, + 0, + 18739, + 18741, + 0, + 0, + 18742, + 0, + 18743, + 18744, + 18746, + 18748, + 0, + 18752, + 18753, + 0, + 0, + 18754, + 18763, + 0, + 18765, + 0, + 0, + 0, + 18766, + 0, + 0, + 0, + 18769, + 0, + 0, + 0, + 0, + 0, + 18773, + 18778, + 18779, + 18781, + 0, + 0, + 18784, + 18787, + 0, + 18788, + 0, + 18793, + 0, + 0, + 0, + 0, + 0, + 0, + 18795, + 0, + 0, + 18800, + 0, + 0, + 0, + 0, + 0, + 18801, + 18804, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18806, + 0, + 0, + 0, + 18811, + 18815, + 18816, + 0, + 0, + 0, + 0, + 18825, + 0, + 0, + 18827, + 18829, + 0, + 0, + 18830, + 0, + 0, + 0, + 0, + 18831, + 0, + 0, + 18832, + 0, + 0, + 0, + 0, + 18833, + 0, + 18840, + 0, + 18841, + 0, + 18842, + 0, + 0, + 0, + 0, + 18843, + 0, + 18844, + 0, + 0, + 0, + 0, + 0, + 0, + 18845, + 18846, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18848, + 0, + 0, + 0, + 18853, + 18860, + 0, + 0, + 18862, + 18866, + 0, + 0, + 18867, + 18869, + 0, + 0, + 18874, + 18881, + 18891, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18892, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18895, + 0, + 18896, + 0, + 0, + 0, + 18900, + 0, + 0, + 0, + 18901, + 0, + 18902, + 18915, + 18916, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18919, + 0, + 0, + 0, + 0, + 0, + 18920, + 0, + 0, + 0, + 18921, + 18929, + 0, + 0, + 0, + 0, + 18930, + 0, + 0, + 0, + 0, + 0, + 0, + 18932, + 0, + 0, + 0, + 0, + 18934, + 18942, + 0, + 0, + 0, + 18951, + 18957, + 0, + 0, + 0, + 0, + 18958, + 0, + 0, + 0, + 0, + 18959, + 18960, + 0, + 0, + 18961, + 0, + 0, + 18962, + 0, + 0, + 0, + 0, + 18963, + 18964, + 0, + 0, + 0, + 18965, + 0, + 18967, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18968, + 0, + 18969, + 0, + 18970, + 18973, + 18976, + 0, + 0, + 0, + 0, + 0, + 0, + 18977, + 0, + 0, + 0, + 18981, + 0, + 0, + 0, + 18990, + 0, + 18998, + 0, + 0, + 0, + 0, + 0, + 18999, + 19003, + 0, + 0, + 19005, + 0, + 0, + 0, + 19006, + 0, + 0, + 0, + 0, + 0, + 0, + 19008, + 19011, + 0, + 0, + 19018, + 0, + 0, + 19019, + 0, + 19024, + 0, + 19031, + 19032, + 0, + 19039, + 0, + 19041, + 19050, + 0, + 0, + 0, + 19051, + 19055, + 19056, + 0, + 19059, + 19063, + 19064, + 0, + 0, + 19088, + 0, + 0, + 0, + 19093, + 19094, + 0, + 0, + 0, + 0, + 19095, + 0, + 19096, + 0, + 0, + 0, + 19097, + 0, + 0, + 19098, + 0, + 19099, + 19100, + 0, + 0, + 19103, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19111, + 0, + 0, + 0, + 0, + 0, + 0, + 19112, + 0, + 0, + 0, + 19116, + 19117, + 0, + 19121, + 19122, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19123, + 19124, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19125, + 19126, + 0, + 19128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19129, + 19130, + 19131, + 19132, + 0, + 0, + 19146, + 0, + 0, + 19147, + 19156, + 19158, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19182, + 19185, + 0, + 0, + 19187, + 0, + 0, + 0, + 19193, + 0, + 0, + 0, + 0, + 0, + 19194, + 0, + 19197, + 0, + 0, + 0, + 0, + 19198, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19202, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19203, + 0, + 19205, + 19210, + 0, + 0, + 0, + 19213, + 0, + 19218, + 0, + 0, + 0, + 19223, + 19229, + 0, + 0, + 19230, + 0, + 0, + 19231, + 19232, + 19233, + 19239, + 0, + 0, + 0, + 0, + 0, + 19240, + 0, + 19248, + 19249, + 0, + 0, + 0, + 0, + 19254, + 0, + 19256, + 19258, + 19259, + 0, + 0, + 19261, + 0, + 19266, + 0, + 0, + 0, + 19272, + 0, + 19278, + 19281, + 19282, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19283, + 0, + 0, + 19284, + 0, + 0, + 19285, + 19287, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19288, + 19291, + 0, + 19292, + 0, + 0, + 0, + 0, + 19297, + 0, + 19298, + 0, + 0, + 0, + 0, + 19302, + 19303, + 0, + 0, + 0, + 0, + 19304, + 19305, + 0, + 0, + 0, + 0, + 19314, + 0, + 0, + 19315, + 0, + 0, + 19321, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19322, + 0, + 19333, + 0, + 19334, + 19335, + 0, + 19336, + 19337, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19346, + 0, + 0, + 19353, + 0, + 19354, + 19362, + 0, + 19366, + 19367, + 0, + 0, + 19369, + 0, + 19375, + 0, + 19377, + 19380, + 19388, + 0, + 0, + 0, + 0, + 0, + 19389, + 19390, + 0, + 0, + 0, + 0, + 19392, + 0, + 0, + 0, + 0, + 0, + 19402, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19412, + 0, + 0, + 19413, + 19422, + 0, + 19424, + 0, + 0, + 0, + 19425, + 0, + 0, + 0, + 19428, + 0, + 0, + 0, + 0, + 19431, + 0, + 0, + 0, + 0, + 0, + 19432, + 0, + 0, + 0, + 0, + 0, + 19448, + 19459, + 0, + 0, + 19461, + 0, + 19462, + 19463, + 0, + 19467, + 19474, + 19482, + 0, + 0, + 0, + 0, + 19494, + 0, + 0, + 0, + 0, + 19501, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19502, + 19504, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19505, + 0, + 0, + 0, + 0, + 19506, + 19507, + 0, + 0, + 0, + 19508, + 0, + 0, + 19511, + 0, + 0, + 19514, + 0, + 19515, + 0, + 19516, + 0, + 19518, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19530, + 0, + 19537, + 19538, + 0, + 19543, + 19546, + 0, + 19547, + 19551, + 0, + 0, + 0, + 0, + 0, + 0, + 19552, + 19553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19555, + 0, + 0, + 19556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19560, + 19561, + 0, + 0, + 19562, + 0, + 0, + 0, + 0, + 0, + 0, + 19565, + 19567, + 0, + 19568, + 0, + 0, + 0, + 19569, + 19570, + 0, + 19578, + 0, + 0, + 0, + 0, + 19580, + 0, + 0, + 0, + 0, + 19581, + 19584, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19585, + 19586, + 0, + 0, + 0, + 19587, + 19588, + 0, + 19589, + 0, + 0, + 0, + 0, + 0, + 0, + 19592, + 19593, + 19599, + 0, + 19600, + 0, + 0, + 19604, + 0, + 0, + 19605, + 0, + 19606, + 19608, + 19610, + 0, + 19613, + 19614, + 0, + 0, + 0, + 0, + 0, + 0, + 19616, + 19617, + 0, + 0, + 19618, + 0, + 0, + 19619, + 0, + 0, + 0, + 19620, + 19621, + 19631, + 0, + 0, + 19632, + 19634, + 19636, + 0, + 19643, + 0, + 0, + 19644, + 19658, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19659, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19675, + 19677, + 0, + 0, + 0, + 0, + 19679, + 0, + 19683, + 0, + 19684, + 0, + 0, + 0, + 0, + 0, + 0, + 19687, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19688, + 19689, + 19692, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19695, + 19697, + 0, + 0, + 0, + 0, + 0, + 19698, + 19699, + 0, + 0, + 19700, + 0, + 19702, + 0, + 0, + 19703, + 0, + 0, + 0, + 0, + 0, + 0, + 19704, + 19708, + 0, + 19710, + 0, + 19713, + 0, + 0, + 0, + 19715, + 0, + 0, + 0, + 0, + 19718, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19720, + 0, + 19722, + 0, + 0, + 19725, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19730, + 0, + 0, + 0, + 0, + 0, + 19731, + 0, + 19734, + 19735, + 19739, + 0, + 0, + 19740, + 0, + 19741, + 0, + 0, + 0, + 19746, + 0, + 0, + 19747, + 0, + 19771, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19772, + 19775, + 0, + 0, + 0, + 0, + 0, + 0, + 19778, + 0, + 0, + 0, + 0, + 0, + 19779, + 0, + 0, + 19780, + 19790, + 0, + 19791, + 0, + 0, + 19792, + 0, + 0, + 0, + 19793, + 0, + 0, + 19796, + 19797, + 0, + 0, + 0, + 19799, + 0, + 0, + 0, + 19801, + 0, + 0, + 0, + 0, + 19803, + 0, + 19804, + 0, + 19805, + 0, + 0, + 19807, + 0, + 0, + 0, + 19808, + 0, + 0, + 0, + 0, + 0, + 0, + 19809, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19816, + 0, + 19821, + 0, + 19822, + 19830, + 19831, + 0, + 0, + 0, + 19833, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19838, + 0, + 0, + 0, + 0, + 19839, + 0, + 0, + 19843, + 0, + 0, + 0, + 0, + 19845, + 0, + 0, + 0, + 0, + 19847, + 0, + 0, + 19848, + 0, + 19849, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19851, + 0, + 0, + 0, + 19854, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19864, + 0, + 19865, + 0, + 19866, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19868, + 0, + 0, + 19870, + 0, + 0, + 19871, + 0, + 0, + 19872, + 19873, + 19875, + 0, + 19880, + 19882, + 19884, + 0, + 0, + 19885, + 19886, + 19888, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19890, + 19892, + 19893, + 0, + 0, + 19894, + 0, + 0, + 0, + 19895, + 0, + 19896, + 19902, + 0, + 0, + 19903, + 0, + 0, + 19905, + 0, + 0, + 0, + 19906, + 0, + 19908, + 0, + 19909, + 19911, + 0, + 0, + 0, + 19913, + 19920, + 0, + 19938, + 19939, + 19940, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19942, + 0, + 19943, + 0, + 19945, + 0, + 0, + 0, + 19951, + 19952, + 19954, + 19960, + 0, + 19965, + 0, + 19971, + 0, + 0, + 0, + 0, + 0, + 19975, + 0, + 19976, + 0, + 19990, + 0, + 0, + 19991, + 0, + 19993, + 0, + 19995, + 0, + 0, + 0, + 19998, + 19999, + 20001, + 0, + 20003, + 20005, + 0, + 20011, + 20012, + 0, + 0, + 0, + 0, + 0, + 0, + 20014, + 0, + 20020, + 0, + 0, + 0, + 0, + 20021, + 0, + 0, + 0, + 0, + 0, + 20023, + 20024, + 0, + 0, + 0, + 0, + 0, + 20025, + 0, + 0, + 20027, + 0, + 0, + 20029, + 0, + 0, + 20032, + 0, + 0, + 0, + 0, + 20044, + 20045, + 0, + 20048, + 20049, + 0, + 0, + 20050, + 0, + 20052, + 0, + 0, + 20054, + 20057, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20059, + 0, + 0, + 20061, + 0, + 20062, + 0, + 20064, + 0, + 0, + 20066, + 0, + 0, + 20067, + 0, + 0, + 0, + 0, + 20069, + 0, + 0, + 0, + 0, + 0, + 0, + 20070, + 20071, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20072, + 0, + 0, + 20073, + 20074, + 0, + 0, + 0, + 0, + 0, + 20075, + 0, + 20078, + 0, + 0, + 0, + 0, + 20080, + 0, + 20081, + 0, + 0, + 0, + 0, + 0, + 0, + 20095, + 0, + 20098, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20107, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20112, + 0, + 0, + 0, + 20113, + 20114, + 0, + 0, + 0, + 20115, + 20123, + 20124, + 0, + 0, + 0, + 20131, + 20133, + 20134, + 0, + 0, + 0, + 0, + 20136, + 0, + 0, + 20137, + 20138, + 20150, + 0, + 20152, + 0, + 0, + 0, + 20153, + 0, + 0, + 20154, + 0, + 0, + 0, + 20158, + 0, + 20163, + 0, + 0, + 20164, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20166, + 0, + 20168, + 0, + 20170, + 0, + 20175, + 0, + 0, + 20178, + 0, + 0, + 0, + 0, + 20223, + 0, + 0, + 0, + 0, + 20224, + 0, + 20226, + 0, + 0, + 20230, + 0, + 20231, + 0, + 0, + 0, + 0, + 20232, + 0, + 0, + 20233, + 20234, + 0, + 20244, + 0, + 20247, + 0, + 0, + 0, + 0, + 0, + 0, + 20249, + 0, + 0, + 0, + 20250, + 0, + 0, + 0, + 0, + 20251, + 0, + 20253, + 0, + 20254, + 0, + 0, + 0, + 0, + 20256, + 0, + 0, + 20264, + 0, + 0, + 0, + 0, + 20266, + 0, + 0, + 0, + 20278, + 0, + 0, + 20279, + 20282, + 0, + 0, + 0, + 0, + 0, + 20283, + 0, + 20284, + 0, + 20285, + 0, + 20287, + 20290, + 0, + 0, + 0, + 0, + 20292, + 0, + 0, + 0, + 0, + 20293, + 20297, + 0, + 0, + 0, + 0, + 0, + 0, + 20299, + 0, + 20300, + 20303, + 0, + 0, + 0, + 0, + 0, + 0, + 20307, + 0, + 0, + 20308, + 0, + 20309, + 0, + 20310, + 0, + 0, + 0, + 0, + 0, + 0, + 20312, + 0, + 0, + 0, + 20314, + 0, + 0, + 0, + 0, + 20315, + 20316, + 0, + 20322, + 0, + 0, + 0, + 0, + 0, + 0, + 20339, + 0, + 0, + 0, + 20342, + 0, + 0, + 0, + 0, + 20352, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20362, + 0, + 0, + 20365, + 0, + 20375, + 20377, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20378, + 20379, + 0, + 20380, + 0, + 0, + 20381, + 0, + 20382, + 0, + 20383, + 0, + 20388, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20390, + 20392, + 20393, + 0, + 0, + 20395, + 0, + 0, + 0, + 0, + 0, + 20396, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20398, + 20415, + 0, + 0, + 0, + 20417, + 0, + 0, + 20420, + 0, + 0, + 20426, + 20428, + 0, + 20431, + 0, + 0, + 20432, + 0, + 20433, + 20434, + 20435, + 0, + 0, + 0, + 0, + 20440, + 0, + 0, + 0, + 0, + 0, + 20442, + 0, + 20443, + 0, + 20446, + 0, + 0, + 0, + 0, + 20448, + 0, + 20451, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20452, + 20453, + 0, + 0, + 20454, + 0, + 0, + 0, + 0, + 0, + 0, + 20457, + 0, + 20458, + 0, + 0, + 0, + 20465, + 0, + 0, + 0, + 0, + 0, + 20469, + 0, + 0, + 0, + 20473, + 0, + 20476, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20477, + 0, + 0, + 20485, + 0, + 0, + 20486, + 0, + 0, + 20487, + 0, + 20496, + 0, + 20497, + 0, + 0, + 20498, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20499, + 20500, + 0, + 20501, + 0, + 0, + 0, + 0, + 0, + 20520, + 20527, + 0, + 20529, + 0, + 0, + 0, + 0, + 20539, + 0, + 0, + 20540, + 0, + 0, + 0, + 20543, + 0, + 0, + 0, + 20546, + 0, + 0, + 0, + 0, + 0, + 20548, + 0, + 0, + 20563, + 0, + 0, + 20564, + 0, + 20566, + 0, + 0, + 0, + 0, + 0, + 20589, + 0, + 0, + 0, + 0, + 20590, + 0, + 0, + 20593, + 20594, + 0, + 0, + 0, + 0, + 20595, + 0, + 20597, + 20598, + 0, + 0, + 0, + 20618, + 20620, + 0, + 0, + 0, + 0, + 20621, + 0, + 0, + 0, + 0, + 20627, + 0, + 0, + 0, + 0, + 0, + 20628, + 0, + 0, + 0, + 20629, + 0, + 20630, + 0, + 0, + 20639, + 0, + 0, + 0, + 0, + 0, + 20707, + 0, + 0, + 20709, + 0, + 0, + 0, + 20713, + 20714, + 0, + 0, + 0, + 0, + 0, + 20724, + 20725, + 0, + 0, + 0, + 0, + 20726, + 20728, + 20729, + 0, + 20733, + 0, + 20734, + 0, + 20735, + 20736, + 0, + 20737, + 0, + 0, + 20744, + 0, + 20745, + 0, + 20748, + 0, + 0, + 20749, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20750, + 0, + 0, + 0, + 0, + 20754, + 0, + 0, + 0, + 20761, + 0, + 0, + 20763, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20766, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20767, + 0, + 0, + 0, + 0, + 20768, + 0, + 20769, + 20777, + 0, + 0, + 0, + 0, + 0, + 0, + 20785, + 0, + 0, + 0, + 20786, + 20795, + 20801, + 0, + 20802, + 0, + 20807, + 0, + 0, + 20808, + 0, + 0, + 20810, + 0, + 0, + 20811, + 0, + 20812, + 0, + 0, + 0, + 0, + 0, + 20813, + 0, + 0, + 20818, + 20820, + 20821, + 0, + 0, + 0, + 20822, + 0, + 20823, + 0, + 0, + 0, + 20826, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20829, + 20830, + 20831, + 0, + 20832, + 20836, + 0, + 0, + 20839, + 0, + 0, + 20840, + 20842, + 0, + 20843, + 0, + 20844, + 0, + 20854, + 0, + 0, + 0, + 20855, + 0, + 0, + 0, + 0, + 20856, + 0, + 0, + 0, + 20869, + 0, + 0, + 20871, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20873, + 0, + 0, + 0, + 0, + 0, + 20876, + 0, + 0, + 0, + 0, + 0, + 20880, + 0, + 0, + 20882, + 0, + 0, + 0, + 0, + 20883, + 20884, + 0, + 0, + 20890, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20891, + 0, + 0, + 0, + 0, + 0, + 20905, + 0, + 20906, + 20910, + 0, + 0, + 20912, + 20915, + 0, + 0, + 0, + 0, + 0, + 20916, + 0, + 20917, + 0, + 20919, + 20920, + 20922, + 0, + 20927, + 0, + 20928, + 20929, + 20930, + 0, + 0, + 20935, + 0, + 0, + 20939, + 0, + 0, + 20941, + 0, + 0, + 0, + 20943, + 0, + 0, + 0, + 20946, + 20947, + 0, + 0, + 0, + 0, + 0, + 20950, + 0, + 20954, + 0, + 0, + 20955, + 20964, + 0, + 0, + 20967, + 0, + 0, + 0, + 0, + 0, + 20973, + 20975, + 0, + 0, + 0, + 20984, + 0, + 20987, + 20988, + 0, + 0, + 0, + 0, + 0, + 20989, + 0, + 0, + 0, + 20995, + 0, + 20998, + 0, + 20999, + 0, + 0, + 0, + 0, + 21000, + 21001, + 0, + 0, + 0, + 0, + 21008, + 0, + 21010, + 0, + 21016, + 0, + 0, + 0, + 21017, + 21018, + 0, + 0, + 0, + 0, + 0, + 21021, + 21026, + 21027, + 21028, + 0, + 0, + 21029, + 0, + 0, + 0, + 0, + 0, + 21030, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21031, + 21032, + 0, + 0, + 0, + 0, + 0, + 21037, + 0, + 0, + 21038, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21039, + 0, + 21041, + 0, + 21046, + 21047, + 0, + 0, + 0, + 21049, + 21053, + 0, + 0, + 21057, + 21064, + 21065, + 0, + 0, + 21066, + 21067, + 0, + 0, + 0, + 21069, + 0, + 0, + 0, + 21071, + 21072, + 0, + 0, + 21073, + 0, + 21074, + 0, + 0, + 21078, + 0, + 0, + 0, + 0, + 21079, + 0, + 0, + 21080, + 21081, + 0, + 0, + 21086, + 21087, + 0, + 21089, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21091, + 0, + 21093, + 0, + 21094, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21095, + 0, + 0, + 0, + 0, + 0, + 21096, + 0, + 21098, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21099, + 0, + 0, + 21100, + 21101, + 21102, + 0, + 0, + 0, + 0, + 0, + 21103, + 0, + 21104, + 0, + 0, + 0, + 0, + 0, + 21105, + 21108, + 21109, + 0, + 0, + 21112, + 21113, + 0, + 0, + 0, + 0, + 0, + 0, + 21115, + 21122, + 21123, + 0, + 0, + 0, + 0, + 0, + 21125, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21129, + 21131, + 0, + 0, + 21134, + 0, + 0, + 0, + 21137, + 21142, + 0, + 21143, + 0, + 0, + 21144, + 0, + 21145, + 21146, + 0, + 21152, + 21154, + 21155, + 21156, + 0, + 0, + 0, + 21160, + 0, + 0, + 0, + 0, + 0, + 0, + 21161, + 0, + 21164, + 0, + 21166, + 0, + 0, + 0, + 0, + 21170, + 0, + 0, + 0, + 0, + 21171, + 0, + 0, + 21172, + 0, + 21174, + 0, + 21175, + 0, + 0, + 0, + 0, + 0, + 21176, + 21179, + 21188, + 0, + 0, + 0, + 21189, + 0, + 0, + 21190, + 0, + 0, + 0, + 21192, + 0, + 0, + 21193, + 0, + 0, + 0, + 21198, + 0, + 21212, + 0, + 0, + 21213, + 0, + 0, + 0, + 0, + 0, + 0, + 21215, + 21216, + 0, + 0, + 21223, + 21225, + 0, + 21226, + 0, + 0, + 0, + 0, + 21227, + 21228, + 0, + 0, + 21229, + 0, + 0, + 0, + 0, + 21230, + 21236, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21237, + 0, + 0, + 21238, + 21239, + 0, + 0, + 0, + 0, + 21256, + 0, + 0, + 0, + 0, + 0, + 21257, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21259, + 0, + 0, + 0, + 21263, + 0, + 21272, + 0, + 21274, + 0, + 21282, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21283, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21294, + 0, + 0, + 21297, + 0, + 0, + 0, + 0, + 21298, + 0, + 0, + 0, + 21299, + 0, + 21300, + 21302, + 0, + 21316, + 0, + 21318, + 21322, + 21323, + 0, + 21324, + 0, + 21326, + 0, + 0, + 0, + 21327, + 21328, + 0, + 0, + 0, + 21352, + 0, + 0, + 21354, + 21361, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21362, + 0, + 0, + 0, + 21363, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21366, + 0, + 0, + 21367, + 21372, + 21374, + 0, + 0, + 0, + 21375, + 21377, + 0, + 21378, + 0, + 0, + 0, + 21380, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21381, + 0, + 0, + 0, + 0, + 0, + 0, + 21382, + 0, + 21383, + 0, + 0, + 21384, + 0, + 0, + 21385, + 0, + 0, + 0, + 0, + 21389, + 21390, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21397, + 21398, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21399, + 0, + 21400, + 0, + 0, + 0, + 0, + 21402, + 0, + 0, + 0, + 21403, + 21404, + 0, + 21405, + 21406, + 0, + 0, + 0, + 21407, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21408, + 0, + 0, + 0, + 0, + 21409, + 0, + 21421, + 0, + 21422, + 0, + 0, + 0, + 21425, + 21428, + 0, + 0, + 0, + 0, + 21429, + 0, + 0, + 0, + 0, + 0, + 21433, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21434, + 0, + 21443, + 0, + 21444, + 21449, + 0, + 21452, + 0, + 21453, + 21454, + 0, + 0, + 0, + 21457, + 0, + 0, + 21458, + 0, + 0, + 0, + 21460, + 21461, + 0, + 0, + 21464, + 0, + 0, + 0, + 21473, + 21478, + 0, + 0, + 21479, + 0, + 0, + 21481, + 21483, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21484, + 0, + 0, + 21485, + 21486, + 0, + 0, + 21488, + 0, + 0, + 0, + 0, + 0, + 0, + 21523, + 0, + 0, + 21525, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21526, + 0, + 0, + 0, + 0, + 0, + 0, + 21529, + 21530, + 0, + 0, + 21531, + 0, + 0, + 21533, + 0, + 0, + 21539, + 21564, + 0, + 21567, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21575, + 0, + 0, + 0, + 0, + 21577, + 0, + 0, + 0, + 0, + 0, + 21591, + 0, + 0, + 21604, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21605, + 0, + 21606, + 0, + 0, + 21617, + 21618, + 21619, + 21620, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21623, + 0, + 0, + 0, + 0, + 21631, + 0, + 21635, + 0, + 0, + 0, + 0, + 21639, + 21646, + 21653, + 21662, + 0, + 0, + 21663, + 21664, + 0, + 21666, + 0, + 0, + 21667, + 0, + 21670, + 21672, + 21673, + 0, + 21674, + 21683, + 0, + 0, + 0, + 0, + 0, + 21684, + 0, + 21694, + 0, + 0, + 0, + 0, + 21695, + 21700, + 0, + 21703, + 0, + 21704, + 0, + 0, + 21709, + 0, + 0, + 0, + 21710, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21711, + 0, + 0, + 0, + 21712, + 0, + 21717, + 0, + 21730, + 0, + 0, + 0, + 21731, + 21733, + 0, + 0, + 0, + 0, + 21737, + 21741, + 21742, + 0, + 21747, + 0, + 0, + 0, + 21749, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21750, + 0, + 0, + 0, + 0, + 0, + 21752, + 0, + 0, + 0, + 0, + 21753, + 0, + 0, + 0, + 0, + 0, + 0, + 21755, + 21756, + 0, + 21757, + 0, + 0, + 0, + 0, + 0, + 0, + 21760, + 0, + 0, + 21763, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21764, + 0, + 0, + 21766, + 0, + 0, + 21767, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21773, + 0, + 21774, + 0, + 0, + 21775, + 0, + 0, + 0, + 0, + 21776, + 0, + 0, + 21777, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21780, + 21787, + 21788, + 21791, + 0, + 0, + 0, + 21797, + 0, + 0, + 0, + 0, + 0, + 21805, + 0, + 0, + 0, + 0, + 21806, + 0, + 21807, + 21809, + 0, + 21810, + 21811, + 0, + 21817, + 21819, + 21820, + 0, + 21823, + 0, + 21824, + 0, + 0, + 21825, + 0, + 0, + 21826, + 21832, + 0, + 0, + 0, + 0, + 0, + 21833, + 21848, + 21849, + 0, + 0, + 21867, + 21870, + 21871, + 21873, + 0, + 0, + 0, + 21874, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21875, + 0, + 21878, + 0, + 0, + 0, + 21879, + 0, + 21881, + 21886, + 0, + 0, + 0, + 0, + 21887, + 0, + 0, + 21888, + 21894, + 21895, + 21897, + 0, + 21901, + 0, + 21904, + 0, + 0, + 21906, + 0, + 0, + 0, + 21909, + 21910, + 21911, + 0, + 0, + 21912, + 0, + 0, + 21913, + 21914, + 21915, + 0, + 21919, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21921, + 0, + 0, + 21922, + 21933, + 21939, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21944, + 0, + 0, + 0, + 0, + 0, + 21945, + 0, + 21947, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21949, + 0, + 0, + 0, + 21950, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21951, + 0, + 21952, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21954, + 21957, + 0, + 0, + 0, + 0, + 21958, + 0, + 21959, + 0, + 0, + 0, + 0, + 0, + 0, + 21962, + 21963, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 21964, + 21965, + 0, + 0, + 21969, + 21970, + 0, + 0, + 0, + 21974, + 0, + 0, + 21980, + 21981, + 0, + 21982, + 0, + 0, + 0, + 0, + 0, + 21985, + 0, + 21988, + 0, + 21992, + 0, + 21999, + 0, + 0, + 0, + 0, + 0, + 0, + 22001, + 0, + 22002, + 0, + 0, + 0, + 0, + 0, + 0, + 22003, + 0, + 0, + 0, + 0, + 0, + 22004, + 0, + 0, + 0, + 22008, + 0, + 22009, + 22015, + 0, + 0, + 22016, + 0, + 0, + 0, + 22017, + 22019, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22020, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22021, + 22037, + 0, + 22039, + 0, + 0, + 0, + 22040, + 0, + 0, + 0, + 22048, + 22049, + 0, + 0, + 22053, + 22055, + 22056, + 22059, + 0, + 0, + 22060, + 22061, + 0, + 0, + 22064, + 0, + 0, + 0, + 0, + 22066, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22073, + 0, + 0, + 0, + 22074, + 22075, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22076, + 0, + 0, + 0, + 0, + 22077, + 22084, + 22099, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22104, + 0, + 0, + 22107, + 0, + 22108, + 0, + 22109, + 0, + 22110, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22111, + 22119, + 0, + 22120, + 22122, + 0, + 0, + 0, + 0, + 22125, + 0, + 0, + 0, + 22128, + 22129, + 0, + 0, + 0, + 0, + 0, + 0, + 22141, + 0, + 0, + 0, + 22142, + 0, + 0, + 22144, + 22146, + 0, + 22148, + 22149, + 22151, + 22154, + 0, + 0, + 0, + 22162, + 0, + 0, + 0, + 0, + 22164, + 22177, + 0, + 0, + 0, + 0, + 22179, + 0, + 22182, + 22183, + 0, + 0, + 22184, + 22188, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22190, + 0, + 22194, + 22201, + 0, + 0, + 22208, + 0, + 22209, + 0, + 22212, + 0, + 0, + 22215, + 0, + 22223, + 22231, + 0, + 0, + 22232, + 0, + 22234, + 0, + 0, + 22235, + 22236, + 0, + 22237, + 0, + 22240, + 0, + 0, + 0, + 0, + 0, + 22241, + 0, + 0, + 0, + 22242, + 22246, + 22247, + 0, + 0, + 0, + 22259, + 22268, + 0, + 22269, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22270, + 0, + 0, + 0, + 0, + 22271, + 0, + 22272, + 0, + 22277, + 0, + 0, + 0, + 0, + 0, + 22278, + 22280, + 22283, + 22286, + 0, + 0, + 22287, + 22289, + 0, + 0, + 22290, + 0, + 22293, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22295, + 0, + 22301, + 22302, + 0, + 0, + 0, + 22305, + 0, + 22308, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22315, + 0, + 0, + 0, + 22317, + 0, + 22334, + 0, + 0, + 0, + 22335, + 0, + 0, + 0, + 0, + 0, + 22336, + 0, + 22338, + 22344, + 0, + 22347, + 22349, + 0, + 22350, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22357, + 0, + 0, + 0, + 0, + 0, + 22358, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22359, + 22360, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22361, + 22366, + 0, + 0, + 22369, + 0, + 22370, + 22373, + 0, + 0, + 0, + 0, + 0, + 22375, + 0, + 22377, + 0, + 0, + 0, + 0, + 0, + 22378, + 0, + 0, + 0, + 0, + 22381, + 0, + 0, + 0, + 0, + 22382, + 0, + 22383, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22391, + 0, + 0, + 22392, + 22395, + 22396, + 22402, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22405, + 0, + 0, + 22406, + 0, + 0, + 22408, + 0, + 0, + 22409, + 22410, + 0, + 0, + 0, + 0, + 0, + 0, + 22424, + 0, + 0, + 0, + 0, + 22426, + 0, + 0, + 0, + 22427, + 0, + 22428, + 0, + 22432, + 0, + 22435, + 22442, + 22443, + 0, + 0, + 0, + 0, + 22444, + 0, + 0, + 0, + 0, + 0, + 22446, + 0, + 22454, + 0, + 22455, + 0, + 0, + 0, + 22465, + 0, + 22470, + 0, + 22471, + 0, + 0, + 0, + 0, + 22472, + 22473, + 0, + 22487, + 0, + 0, + 0, + 22488, + 0, + 0, + 0, + 0, + 22489, + 0, + 0, + 22499, + 0, + 0, + 0, + 0, + 0, + 0, + 22514, + 0, + 0, + 22515, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22516, + 0, + 0, + 0, + 22517, + 22520, + 0, + 0, + 0, + 22534, + 0, + 0, + 22535, + 0, + 0, + 22536, + 0, + 22540, + 22553, + 0, + 22555, + 0, + 0, + 0, + 0, + 22561, + 0, + 0, + 22562, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22566, + 0, + 0, + 0, + 0, + 22567, + 22568, + 0, + 0, + 22575, + 0, + 22579, + 0, + 22582, + 22583, + 22585, + 0, + 0, + 0, + 0, + 0, + 22586, + 0, + 0, + 22587, + 0, + 0, + 22590, + 0, + 0, + 0, + 0, + 0, + 22591, + 0, + 22592, + 0, + 0, + 0, + 0, + 0, + 22593, + 0, + 22602, + 0, + 0, + 22604, + 0, + 0, + 22609, + 0, + 0, + 22618, + 0, + 0, + 0, + 0, + 0, + 0, + 22619, + 0, + 22624, + 22625, + 0, + 0, + 22638, + 0, + 0, + 0, + 0, + 0, + 22639, + 0, + 0, + 22640, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22644, + 0, + 22645, + 22647, + 0, + 0, + 0, + 0, + 22652, + 22653, + 0, + 0, + 0, + 22654, + 0, + 22655, + 0, + 0, + 0, + 22656, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22673, + 22675, + 22676, + 0, + 0, + 22678, + 22679, + 0, + 22691, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22693, + 0, + 0, + 22696, + 0, + 22699, + 22707, + 22708, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22718, + 0, + 22719, + 0, + 0, + 0, + 0, + 22723, + 0, + 0, + 0, + 22724, + 22725, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22726, + 22728, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22729, + 0, + 0, + 22731, + 0, + 0, + 0, + 0, + 22732, + 22735, + 22736, + 0, + 0, + 0, + 0, + 22739, + 0, + 22749, + 0, + 0, + 22751, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22758, + 0, + 0, + 0, + 0, + 0, + 22760, + 0, + 0, + 0, + 0, + 0, + 22764, + 22765, + 22766, + 0, + 22768, + 0, + 0, + 0, + 0, + 0, + 22769, + 22770, + 0, + 0, + 0, + 0, + 0, + 0, + 22771, + 0, + 0, + 22772, + 22775, + 0, + 22776, + 22777, + 22780, + 0, + 0, + 22782, + 22784, + 0, + 22787, + 0, + 22789, + 22796, + 0, + 0, + 0, + 0, + 0, + 22798, + 0, + 0, + 0, + 0, + 0, + 0, + 22802, + 0, + 22803, + 22804, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22805, + 0, + 0, + 22810, + 22811, + 22814, + 22816, + 0, + 22825, + 22826, + 0, + 22831, + 22833, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22834, + 0, + 22836, + 22838, + 0, + 22839, + 0, + 0, + 0, + 0, + 0, + 22840, + 0, + 22847, + 0, + 0, + 0, + 0, + 0, + 22856, + 22857, + 0, + 22858, + 22859, + 0, + 0, + 22862, + 0, + 0, + 22864, + 0, + 0, + 0, + 0, + 22865, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22866, + 0, + 22867, + 22868, + 0, + 0, + 0, + 0, + 22869, + 0, + 22871, + 0, + 22872, + 0, + 22873, + 22881, + 22882, + 22884, + 22885, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22886, + 22887, + 0, + 22894, + 0, + 22895, + 0, + 0, + 0, + 22900, + 0, + 22901, + 0, + 0, + 0, + 0, + 22904, + 0, + 0, + 0, + 0, + 22905, + 22907, + 0, + 0, + 0, + 22915, + 22917, + 0, + 0, + 22918, + 0, + 0, + 0, + 22920, + 0, + 0, + 0, + 22929, + 22930, + 0, + 0, + 0, + 22941, + 22942, + 0, + 0, + 0, + 22943, + 0, + 0, + 0, + 22944, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22946, + 0, + 22947, + 0, + 0, + 22954, + 0, + 22956, + 0, + 0, + 22962, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22963, + 0, + 0, + 22964, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22965, + 0, + 22968, + 0, + 0, + 0, + 22969, + 0, + 0, + 0, + 0, + 0, + 22970, + 0, + 22971, + 0, + 0, + 0, + 0, + 0, + 22978, + 0, + 0, + 22979, + 0, + 22987, + 0, + 0, + 22989, + 0, + 0, + 0, + 0, + 0, + 0, + 22990, + 0, + 23005, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23006, + 23007, + 23008, + 0, + 0, + 23023, + 23024, + 23029, + 0, + 0, + 0, + 0, + 23030, + 0, + 0, + 0, + 0, + 0, + 23032, + 0, + 0, + 0, + 0, + 0, + 23035, + 0, + 0, + 0, + 0, + 23038, + 0, + 0, + 0, + 23048, + 0, + 23049, + 23052, + 23053, + 23060, + 23061, + 0, + 23063, + 0, + 0, + 0, + 0, + 23067, + 23068, + 0, + 0, + 0, + 23069, + 23073, + 0, + 0, + 0, + 23127, + 0, + 23128, + 0, + 0, + 0, + 0, + 0, + 23129, + 0, + 23138, + 23141, + 0, + 23149, + 0, + 0, + 23150, + 0, + 0, + 0, + 23152, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23154, + 0, + 0, + 0, + 0, + 23157, + 23159, + 23160, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23180, + 0, + 0, + 0, + 0, + 23181, + 0, + 0, + 23188, + 0, + 23189, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23195, + 0, + 0, + 23196, + 23199, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23202, + 0, + 23204, + 0, + 23207, + 0, + 23209, + 23210, + 0, + 0, + 0, + 0, + 0, + 0, + 23227, + 23229, + 0, + 0, + 23230, + 23234, + 23238, + 0, + 0, + 0, + 23245, + 23246, + 23248, + 0, + 0, + 0, + 0, + 23249, + 23254, + 0, + 0, + 0, + 23265, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23268, + 0, + 23276, + 0, + 0, + 0, + 0, + 23277, + 0, + 23297, + 0, + 23298, + 0, + 0, + 0, + 0, + 23299, + 0, + 23302, + 0, + 0, + 23303, + 23312, + 0, + 0, + 23314, + 0, + 23320, + 0, + 0, + 0, + 0, + 23324, + 0, + 23325, + 0, + 23328, + 0, + 23334, + 0, + 0, + 0, + 23337, + 0, + 0, + 0, + 0, + 23343, + 23344, + 23346, + 0, + 23348, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23353, + 0, + 0, + 0, + 0, + 23355, + 0, + 23356, + 23358, + 0, + 0, + 0, + 23359, + 23360, + 0, + 23361, + 0, + 23367, + 0, + 23369, + 0, + 0, + 23373, + 0, + 23378, + 23379, + 0, + 23382, + 23383, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23387, + 0, + 0, + 0, + 0, + 0, + 0, + 23388, + 23390, + 0, + 0, + 23393, + 23398, + 0, + 0, + 0, + 23399, + 0, + 0, + 0, + 23400, + 0, + 0, + 0, + 0, + 23401, + 0, + 0, + 0, + 23415, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23416, + 0, + 23422, + 0, + 23443, + 23444, + 0, + 0, + 0, + 0, + 23448, + 0, + 23454, + 0, + 0, + 0, + 0, + 0, + 0, + 23456, + 0, + 0, + 23458, + 23464, + 0, + 0, + 0, + 0, + 0, + 0, + 23465, + 0, + 0, + 0, + 23470, + 23471, + 0, + 0, + 23472, + 0, + 0, + 0, + 23473, + 23496, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23497, + 0, + 23499, + 0, + 0, + 23502, + 0, + 0, + 23503, + 0, + 0, + 23513, + 0, + 0, + 23515, + 0, + 0, + 0, + 23517, + 0, + 0, + 0, + 0, + 23518, + 23519, + 23521, + 23524, + 0, + 23525, + 23528, + 23539, + 0, + 0, + 0, + 0, + 0, + 23541, + 0, + 0, + 23544, + 0, + 0, + 23556, + 0, + 0, + 23557, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23559, + 0, + 23560, + 0, + 0, + 23561, + 0, + 0, + 23566, + 0, + 0, + 0, + 0, + 0, + 23568, + 23569, + 23570, + 0, + 0, + 0, + 0, + 23571, + 0, + 23574, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23575, + 0, + 23579, + 0, + 0, + 23581, + 0, + 0, + 0, + 0, + 0, + 0, + 23587, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23596, + 23598, + 0, + 0, + 0, + 0, + 23602, + 23606, + 0, + 0, + 23607, + 0, + 23608, + 0, + 0, + 0, + 23614, + 23616, + 0, + 0, + 0, + 0, + 0, + 23618, + 0, + 0, + 23619, + 0, + 0, + 0, + 0, + 23621, + 23626, + 0, + 23627, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23629, + 0, + 23630, + 0, + 0, + 0, + 0, + 23634, + 0, + 23636, + 0, + 0, + 0, + 0, + 0, + 0, + 23638, + 0, + 0, + 0, + 0, + 23640, + 23667, + 0, + 23669, + 0, + 0, + 0, + 23681, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23682, + 0, + 23683, + 0, + 0, + 0, + 0, + 0, + 23684, + 0, + 0, + 0, + 23685, + 23689, + 0, + 23693, + 23694, + 23700, + 0, + 23702, + 0, + 23709, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23712, + 0, + 0, + 0, + 0, + 0, + 23714, + 0, + 0, + 23715, + 0, + 0, + 0, + 0, + 23718, + 0, + 0, + 23720, + 0, + 0, + 0, + 0, + 23722, + 0, + 0, + 0, + 23726, + 23729, + 0, + 23741, + 23746, + 0, + 23748, + 0, + 0, + 0, + 0, + 23749, + 0, + 0, + 0, + 0, + 0, + 23750, + 0, + 0, + 0, + 0, + 23751, + 0, + 23753, + 0, + 0, + 0, + 0, + 23757, + 23765, + 0, + 0, + 0, + 23770, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23771, + 0, + 23772, + 23781, + 0, + 0, + 23796, + 0, + 0, + 0, + 0, + 23798, + 0, + 23799, + 0, + 0, + 0, + 23802, + 0, + 0, + 23806, + 0, + 23807, + 0, + 0, + 23808, + 0, + 23809, + 0, + 23819, + 0, + 0, + 0, + 23821, + 0, + 23827, + 0, + 0, + 0, + 23829, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23830, + 0, + 0, + 0, + 0, + 0, + 0, + 23832, + 23833, + 23834, + 23835, + 0, + 0, + 0, + 0, + 23837, + 23838, + 0, + 0, + 0, + 0, + 0, + 23846, + 0, + 0, + 0, + 0, + 0, + 0, + 23847, + 0, + 0, + 0, + 0, + 0, + 23879, + 23881, + 0, + 0, + 23882, + 23883, + 23895, + 0, + 23899, + 0, + 0, + 0, + 0, + 23901, + 0, + 0, + 0, + 0, + 0, + 0, + 23902, + 0, + 0, + 0, + 0, + 0, + 23903, + 23905, + 0, + 23906, + 0, + 23907, + 23918, + 23919, + 23920, + 0, + 23922, + 0, + 23924, + 0, + 23927, + 0, + 23934, + 0, + 23937, + 23941, + 0, + 23942, + 23946, + 0, + 0, + 0, + 0, + 0, + 23955, + 23956, + 23958, + 0, + 0, + 0, + 0, + 0, + 0, + 23959, + 0, + 23962, + 23965, + 0, + 23966, + 0, + 0, + 0, + 0, + 23967, + 23968, + 0, + 0, + 23973, + 0, + 0, + 23974, + 0, + 0, + 0, + 0, + 23975, + 0, + 23976, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23977, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23980, + 0, + 0, + 23984, + 0, + 23985, + 0, + 0, + 23987, + 0, + 0, + 23988, + 23990, + 23991, + 0, + 0, + 0, + 0, + 0, + 0, + 23992, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23994, + 0, + 0, + 0, + 23998, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23999, + 0, + 0, + 24003, + 0, + 24004, + 0, + 24006, + 0, + 0, + 0, + 24007, + 0, + 0, + 24008, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24009, + 0, + 0, + 24010, + 0, + 0, + 24011, + 0, + 0, + 24013, + 24014, + 0, + 0, + 24015, + 24016, + 24027, + 0, + 24028, + 24029, + 0, + 24030, + 0, + 0, + 0, + 0, + 0, + 24033, + 24034, + 0, + 24035, + 0, + 0, + 24036, + 0, + 0, + 24044, + 0, + 24048, + 24049, + 24063, + 24067, + 0, + 24068, + 24070, + 0, + 0, + 24071, + 24078, + 24087, + 0, + 24090, + 0, + 0, + 0, + 24095, + 0, + 24098, + 24101, + 24104, + 24106, + 0, + 24107, + 0, + 0, + 0, + 24108, + 0, + 0, + 0, + 0, + 24110, + 24111, + 0, + 24113, + 0, + 0, + 24115, + 24120, + 0, + 0, + 0, + 0, + 0, + 0, + 24124, + 0, + 24125, + 0, + 24126, + 0, + 24127, + 0, + 0, + 0, + 0, + 0, + 24135, + 0, + 0, + 24136, + 0, + 24137, + 24142, + 0, + 0, + 0, + 24146, + 0, + 0, + 24147, + 24149, + 24154, + 0, + 24163, + 0, + 0, + 0, + 24165, + 24166, + 24167, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24169, + 24170, + 24175, + 0, + 0, + 0, + 24178, + 0, + 0, + 24179, + 0, + 0, + 24181, + 0, + 24184, + 24197, + 0, + 24201, + 24204, + 0, + 0, + 0, + 0, + 0, + 0, + 24206, + 24212, + 24220, + 0, + 0, + 0, + 24224, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24226, + 0, + 24234, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24235, + 0, + 24236, + 0, + 0, + 0, + 0, + 0, + 24239, + 24240, + 24241, + 0, + 0, + 24248, + 0, + 0, + 24249, + 0, + 24251, + 0, + 0, + 0, + 0, + 0, + 0, + 24253, + 0, + 24268, + 0, + 0, + 0, + 24269, + 0, + 24271, + 24272, + 0, + 0, + 0, + 0, + 24273, + 0, + 0, + 24274, + 0, + 0, + 24279, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24280, + 0, + 24293, + 24294, + 0, + 0, + 0, + 0, + 0, + 0, + 24296, + 0, + 0, + 24323, + 0, + 0, + 0, + 24329, + 24330, + 24331, + 24339, + 0, + 24351, + 0, + 0, + 24369, + 24370, + 0, + 0, + 0, + 24371, + 0, + 0, + 0, + 0, + 24372, + 24373, + 24374, + 0, + 0, + 0, + 0, + 0, + 24378, + 0, + 0, + 0, + 0, + 24379, + 0, + 24381, + 0, + 24383, + 24389, + 0, + 24390, + 0, + 0, + 24394, + 24395, + 24400, + 0, + 0, + 0, + 24401, + 24402, + 0, + 24406, + 0, + 0, + 0, + 24411, + 0, + 0, + 0, + 24415, + 0, + 24416, + 0, + 0, + 0, + 0, + 0, + 24417, + 0, + 24419, + 0, + 24422, + 0, + 24423, + 24428, + 0, + 24435, + 0, + 0, + 0, + 24439, + 0, + 0, + 0, + 24440, + 24442, + 24446, + 0, + 0, + 0, + 24447, + 24448, + 24449, + 24452, + 0, + 0, + 0, + 0, + 24453, + 24457, + 0, + 0, + 24458, + 24459, + 24460, + 0, + 24465, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24470, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24471, + 0, + 24473, + 24474, + 24475, + 24476, + 0, + 24478, + 0, + 0, + 0, + 0, + 24480, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24481, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24482, + 24485, + 0, + 0, + 0, + 0, + 24486, + 0, + 0, + 0, + 24488, + 0, + 0, + 0, + 24494, + 0, + 0, + 0, + 0, + 24497, + 0, + 0, + 24498, + 0, + 0, + 0, + 24499, + 24506, + 0, + 0, + 0, + 24507, + 0, + 0, + 24511, + 0, + 0, + 24513, + 24514, + 0, + 0, + 0, + 0, + 0, + 24517, + 0, + 24518, + 0, + 24520, + 0, + 24521, + 24524, + 24525, + 0, + 0, + 0, + 0, + 0, + 24527, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24528, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24537, + 24539, + 0, + 24540, + 0, + 0, + 0, + 24548, + 0, + 0, + 0, + 0, + 0, + 24549, + 24550, + 0, + 0, + 0, + 24553, + 24554, + 0, + 24555, + 0, + 24556, + 0, + 24558, + 0, + 0, + 0, + 0, + 0, + 24560, + 0, + 0, + 0, + 24561, + 0, + 0, + 0, + 0, + 0, + 24562, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24567, + 0, + 0, + 0, + 0, + 0, + 24569, + 0, + 0, + 0, + 24574, + 0, + 24575, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24577, + 24581, + 0, + 24584, + 0, + 0, + 0, + 0, + 0, + 24585, + 0, + 0, + 0, + 0, + 0, + 24586, + 0, + 0, + 24587, + 0, + 24588, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24590, + 24591, + 0, + 0, + 0, + 0, + 24592, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24594, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24596, + 24597, + 0, + 0, + 0, + 0, + 24602, + 24603, + 0, + 0, + 0, + 0, + 24604, + 0, + 0, + 24605, + 0, + 24610, + 0, + 0, + 24611, + 0, + 0, + 0, + 0, + 24612, + 24615, + 24616, + 24624, + 0, + 0, + 0, + 24627, + 0, + 24638, + 24639, + 0, + 0, + 0, + 0, + 24640, + 0, + 0, + 0, + 24655, + 24656, + 24657, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24662, + 0, + 24663, + 24664, + 0, + 0, + 0, + 0, + 0, + 24665, + 0, + 0, + 0, + 0, + 24667, + 0, + 0, + 0, + 0, + 0, + 0, + 24668, + 24669, + 0, + 24670, + 24674, + 0, + 0, + 0, + 24675, + 0, + 24678, + 0, + 0, + 24679, + 0, + 0, + 0, + 24681, + 0, + 24683, + 0, + 0, + 0, + 0, + 24684, + 0, + 24685, + 0, + 0, + 24686, + 0, + 0, + 24688, + 24689, + 0, + 0, + 0, + 0, + 24690, + 24691, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24697, + 0, + 24698, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24709, + 0, + 0, + 0, + 0, + 0, + 24710, + 0, + 24712, + 0, + 0, + 0, + 0, + 0, + 0, + 24713, + 24714, + 0, + 24715, + 0, + 24716, + 24718, + 0, + 24719, + 0, + 0, + 0, + 0, + 24720, + 0, + 0, + 24725, + 0, + 0, + 24738, + 0, + 24749, + 24750, + 0, + 0, + 0, + 24752, + 0, + 0, + 0, + 24753, + 0, + 0, + 0, + 24758, + 0, + 0, + 0, + 0, + 0, + 24762, + 0, + 24763, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24764, + 0, + 0, + 0, + 0, + 0, + 24765, + 24767, + 24768, + 0, + 24772, + 0, + 0, + 0, + 0, + 24773, + 0, + 0, + 0, + 0, + 24777, + 0, + 0, + 0, + 0, + 0, + 24785, + 0, + 24786, + 24788, + 0, + 0, + 0, + 24789, + 0, + 0, + 0, + 0, + 24794, + 24798, + 0, + 24799, + 24800, + 0, + 0, + 0, + 24803, + 0, + 24804, + 24806, + 0, + 24807, + 0, + 0, + 0, + 24810, + 0, + 0, + 0, + 0, + 0, + 0, + 24827, + 24828, + 0, + 24835, + 0, + 0, + 0, + 0, + 0, + 0, + 24836, + 0, + 0, + 0, + 0, + 0, + 24839, + 0, + 24843, + 24844, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24847, + 0, + 0, + 24848, + 0, + 0, + 0, + 0, + 0, + 0, + 24849, + 0, + 24850, + 24851, + 0, + 0, + 0, + 24852, + 0, + 24853, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24854, + 0, + 24855, + 0, + 0, + 24868, + 0, + 0, + 0, + 24883, + 0, + 0, + 0, + 24884, + 0, + 24895, + 24897, + 0, + 0, + 0, + 0, + 0, + 24899, + 0, + 0, + 0, + 0, + 0, + 24900, + 0, + 24913, + 0, + 0, + 0, + 0, + 0, + 0, + 24914, + 0, + 0, + 24917, + 24930, + 24931, + 0, + 0, + 0, + 24932, + 0, + 0, + 24939, + 0, + 0, + 24942, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24945, + 24950, + 0, + 24951, + 0, + 0, + 24953, + 0, + 0, + 0, + 24954, + 0, + 24959, + 0, + 0, + 0, + 24961, + 0, + 0, + 24962, + 0, + 24964, + 24968, + 24970, + 24972, + 0, + 0, + 0, + 0, + 0, + 24976, + 0, + 0, + 0, + 24977, + 0, + 24982, + 0, + 0, + 24983, + 0, + 0, + 24984, + 0, + 0, + 0, + 24993, + 0, + 0, + 0, + 24994, + 0, + 0, + 25001, + 0, + 0, + 0, + 25003, + 0, + 0, + 25018, + 0, + 0, + 25023, + 0, + 0, + 0, + 25034, + 0, + 0, + 25035, + 25036, + 0, + 25037, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25039, + 0, + 0, + 0, + 0, + 0, + 25040, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25042, + 0, + 0, + 25043, + 25045, + 0, + 0, + 0, + 0, + 0, + 0, + 25049, + 0, + 0, + 25051, + 0, + 25052, + 25053, + 0, + 0, + 25054, + 0, + 0, + 0, + 25055, + 0, + 0, + 0, + 0, + 25057, + 25059, + 0, + 0, + 25060, + 25064, + 0, + 25065, + 25069, + 25070, + 0, + 0, + 0, + 0, + 25072, + 0, + 25073, + 0, + 25090, + 0, + 0, + 25092, + 25093, + 25101, + 0, + 0, + 0, + 0, + 0, + 0, + 25105, + 25108, + 0, + 0, + 25113, + 0, + 0, + 25115, + 25116, + 0, + 0, + 0, + 0, + 0, + 0, + 25117, + 0, + 0, + 0, + 25120, + 25121, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25125, + 0, + 0, + 0, + 25126, + 0, + 25130, + 25134, + 0, + 25139, + 0, + 25143, + 0, + 0, + 0, + 25151, + 0, + 25161, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25163, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25174, + 0, + 25175, + 0, + 25207, + 0, + 0, + 0, + 25209, + 0, + 0, + 0, + 0, + 25213, + 0, + 25219, + 0, + 25223, + 0, + 25225, + 0, + 0, + 0, + 25227, + 0, + 0, + 0, + 25228, + 0, + 0, + 0, + 25229, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25231, + 25233, + 0, + 0, + 0, + 0, + 25237, + 25239, + 0, + 0, + 0, + 25243, + 0, + 0, + 0, + 25252, + 0, + 25257, + 25258, + 0, + 0, + 0, + 0, + 25260, + 25265, + 0, + 25268, + 0, + 0, + 25273, + 25324, + 0, + 25325, + 0, + 25326, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25327, + 0, + 0, + 0, + 0, + 0, + 25328, + 0, + 0, + 0, + 0, + 0, + 0, + 25332, + 0, + 0, + 0, + 25333, + 0, + 0, + 0, + 25336, + 25337, + 25338, + 0, + 0, + 25343, + 0, + 25350, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25352, + 0, + 25354, + 0, + 25375, + 0, + 25379, + 0, + 0, + 0, + 0, + 25384, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25386, + 0, + 25388, + 0, + 25390, + 0, + 0, + 25399, + 0, + 0, + 25401, + 0, + 0, + 0, + 25402, + 0, + 0, + 0, + 25407, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25413, + 25415, + 0, + 0, + 25417, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25419, + 0, + 0, + 0, + 25421, + 0, + 0, + 0, + 25424, + 0, + 0, + 0, + 0, + 25433, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25435, + 0, + 0, + 0, + 0, + 0, + 0, + 25436, + 0, + 0, + 0, + 25437, + 0, + 0, + 25440, + 0, + 0, + 0, + 0, + 0, + 0, + 25442, + 0, + 0, + 25443, + 0, + 25446, + 0, + 0, + 25449, + 0, + 0, + 0, + 25450, + 0, + 0, + 0, + 0, + 25452, + 0, + 25453, + 25454, + 25455, + 0, + 0, + 0, + 25456, + 0, + 25457, + 0, + 0, + 0, + 25459, + 0, + 25461, + 0, + 25468, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25469, + 0, + 0, + 0, + 0, + 0, + 25471, + 0, + 0, + 0, + 0, + 0, + 25474, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25475, + 0, + 0, + 0, + 0, + 25477, + 0, + 0, + 0, + 0, + 25483, + 0, + 0, + 0, + 0, + 0, + 25484, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25485, + 0, + 25497, + 0, + 0, + 25498, + 0, + 25504, + 0, + 25510, + 0, + 25512, + 0, + 0, + 25513, + 25514, + 0, + 0, + 0, + 0, + 0, + 0, + 25517, + 25518, + 25519, + 0, + 25520, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25521, + 0, + 25522, + 25527, + 25534, + 0, + 25536, + 0, + 25537, + 0, + 0, + 25548, + 25550, + 0, + 0, + 25551, + 0, + 25552, + 0, + 0, + 0, + 0, + 0, + 25554, + 0, + 25555, + 0, + 25556, + 25557, + 25568, + 0, + 0, + 0, + 25570, + 25571, + 0, + 0, + 0, + 0, + 0, + 0, + 25574, + 0, + 0, + 0, + 0, + 25579, + 0, + 0, + 0, + 25581, + 0, + 0, + 0, + 25582, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25588, + 0, + 0, + 0, + 0, + 25589, + 0, + 0, + 0, + 0, + 25590, + 0, + 25591, + 25592, + 25593, + 0, + 25594, + 0, + 0, + 0, + 25596, + 0, + 25597, + 25615, + 0, + 0, + 0, + 0, + 0, + 25618, + 0, + 0, + 0, + 0, + 25619, + 25623, + 0, + 0, + 25629, + 0, + 0, + 25631, + 0, + 0, + 0, + 25635, + 25636, + 0, + 0, + 25649, + 0, + 0, + 0, + 0, + 25654, + 0, + 0, + 0, + 25661, + 25663, + 0, + 0, + 25671, + 0, + 0, + 25678, + 25698, + 0, + 25699, + 25702, + 25703, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25704, + 0, + 0, + 0, + 0, + 0, + 25706, + 0, + 0, + 25710, + 0, + 25711, + 0, + 25712, + 0, + 25715, + 25716, + 25717, + 0, + 0, + 25718, + 25728, + 25732, + 0, + 0, + 0, + 25734, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25737, + 0, + 0, + 25739, + 0, + 0, + 0, + 25740, + 0, + 25741, + 25745, + 0, + 25746, + 0, + 25748, + 25772, + 25778, + 0, + 0, + 0, + 0, + 0, + 25780, + 0, + 0, + 0, + 0, + 25781, + 0, + 25782, + 25784, + 25785, + 0, + 0, + 0, + 25789, + 0, + 0, + 0, + 0, + 0, + 0, + 25797, + 25801, + 0, + 0, + 0, + 25808, + 25809, + 0, + 0, + 25811, + 25814, + 25815, + 0, + 0, + 25817, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25820, + 0, + 0, + 0, + 0, + 25832, + 25833, + 0, + 0, + 0, + 25846, + 0, + 0, + 0, + 25847, + 25848, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25849, + 25850, + 0, + 0, + 25851, + 0, + 0, + 25852, + 0, + 25862, + 0, + 0, + 0, + 25863, + 25865, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25867, + 25868, + 0, + 25869, + 25874, + 0, + 25875, + 0, + 25876, + 25877, + 0, + 0, + 0, + 0, + 25878, + 25902, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25903, + 25904, + 25905, + 0, + 0, + 0, + 25908, + 25909, + 0, + 0, + 0, + 0, + 25910, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25912, + 0, + 25913, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25914, + 0, + 0, + 25916, + 0, + 0, + 0, + 0, + 0, + 25917, + 25927, + 0, + 0, + 0, + 0, + 25928, + 0, + 0, + 25930, + 0, + 0, + 0, + 25933, + 0, + 0, + 25938, + 25942, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25945, + 0, + 25950, + 0, + 25956, + 0, + 0, + 25961, + 25962, + 0, + 0, + 25963, + 0, + 25964, + 25965, + 25966, + 0, + 0, + 0, + 0, + 0, + 25967, + 0, + 0, + 0, + 0, + 25968, + 0, + 0, + 0, + 25969, + 25971, + 0, + 0, + 0, + 0, + 0, + 25973, + 25975, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25978, + 0, + 25981, + 0, + 0, + 0, + 25982, + 0, + 0, + 0, + 25984, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25993, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26002, + 0, + 0, + 0, + 26005, + 0, + 0, + 0, + 26006, + 26007, + 0, + 0, + 26014, + 26015, + 26016, + 0, + 0, + 0, + 0, + 0, + 0, + 26017, + 26018, + 26020, + 0, + 26022, + 26023, + 0, + 0, + 0, + 26024, + 26028, + 0, + 26029, + 26033, + 26034, + 26044, + 0, + 0, + 0, + 0, + 0, + 26046, + 0, + 0, + 26047, + 0, + 0, + 26049, + 0, + 26050, + 0, + 26051, + 0, + 0, + 0, + 0, + 0, + 26053, + 0, + 0, + 0, + 0, + 26054, + 26059, + 0, + 0, + 0, + 0, + 0, + 0, + 26060, + 0, + 26066, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26067, + 0, + 26069, + 0, + 0, + 26071, + 0, + 0, + 0, + 26073, + 0, + 26074, + 26077, + 0, + 0, + 0, + 0, + 26078, + 0, + 0, + 0, + 26079, + 0, + 26090, + 0, + 0, + 26094, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26095, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26096, + 26101, + 0, + 26107, + 26122, + 0, + 26124, + 0, + 0, + 26125, + 0, + 0, + 0, + 0, + 0, + 0, + 26136, + 26141, + 26155, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26164, + 26166, + 0, + 0, + 0, + 26167, + 0, + 26170, + 26171, + 0, + 0, + 26172, + 0, + 0, + 26174, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26175, + 0, + 0, + 0, + 26176, + 26177, + 0, + 26321, + 26322, + 0, + 26323, + 0, + 0, + 26324, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26325, + 0, + 26331, + 0, + 0, + 0, + 0, + 0, + 0, + 26335, + 0, + 0, + 0, + 26350, + 0, + 0, + 0, + 26379, + 0, + 0, + 26382, + 26383, + 26385, + 0, + 0, + 26392, + 26406, + 0, + 0, + 0, + 0, + 26411, + 0, + 0, + 0, + 0, + 0, + 26412, + 0, + 0, + 26420, + 0, + 0, + 26423, + 0, + 26424, + 26426, + 26432, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26435, + 0, + 26436, + 0, + 0, + 0, + 0, + 0, + 26441, + 0, + 26444, + 0, + 0, + 0, + 26446, + 0, + 0, + 0, + 0, + 26447, + 0, + 0, + 0, + 0, + 26449, + 0, + 26450, + 26452, + 0, + 26453, + 26454, + 0, + 0, + 0, + 26455, + 0, + 0, + 0, + 26456, + 0, + 0, + 26458, + 0, + 0, + 26460, + 0, + 26463, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26464, + 26470, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26473, + 0, + 0, + 26474, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26475, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26477, + 0, + 26485, + 0, + 0, + 26486, + 0, + 26487, + 0, + 0, + 26488, + 26493, + 26494, + 0, + 0, + 26495, + 0, + 26497, + 26504, + 26506, + 0, + 0, + 0, + 0, + 0, + 26507, + 0, + 0, + 0, + 0, + 0, + 26509, + 0, + 0, + 26510, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26512, + 0, + 26513, + 26515, + 0, + 0, + 0, + 26518, + 0, + 0, + 0, + 26519, + 0, + 26524, + 26526, + 0, + 0, + 0, + 26527, + 0, + 26532, + 0, + 26533, + 26537, + 26558, + 0, + 0, + 0, + 26559, + 0, + 0, + 0, + 26571, + 0, + 0, + 26573, + 0, + 26588, + 0, + 26593, + 0, + 0, + 0, + 0, + 0, + 0, + 26603, + 0, + 26604, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26606, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26607, + 26609, + 26611, + 26614, + 0, + 0, + 0, + 26616, + 26620, + 0, + 26621, + 0, + 0, + 0, + 0, + 0, + 26627, + 0, + 26629, + 0, + 0, + 26630, + 0, + 0, + 26632, + 26643, + 0, + 0, + 0, + 26644, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26646, + 26647, + 0, + 0, + 0, + 26650, + 0, + 0, + 26656, + 0, + 0, + 0, + 0, + 26663, + 26670, + 26671, + 0, + 0, + 0, + 26685, + 26686, + 26687, + 0, + 26689, + 0, + 0, + 0, + 0, + 26744, + 0, + 26745, + 0, + 26747, + 26748, + 0, + 26749, + 26750, + 26751, + 0, + 0, + 0, + 0, + 26752, + 26755, + 0, + 0, + 0, + 26756, + 26769, + 0, + 0, + 0, + 26774, + 0, + 0, + 0, + 0, + 0, + 26775, + 0, + 26777, + 26778, + 0, + 26786, + 0, + 0, + 0, + 26787, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26788, + 0, + 0, + 26789, + 0, + 0, + 0, + 0, + 0, + 26791, + 0, + 26792, + 26793, + 0, + 0, + 0, + 26794, + 0, + 26797, + 26798, + 0, + 0, + 0, + 26800, + 0, + 0, + 26803, + 0, + 26804, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26805, + 0, + 0, + 26808, + 0, + 0, + 26809, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26812, + 0, + 26825, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26826, + 0, + 0, + 26827, + 26829, + 26834, + 0, + 0, + 0, + 0, + 26835, + 0, + 0, + 26849, + 0, + 26851, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26852, + 0, + 26853, + 26857, + 0, + 26858, + 0, + 26859, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26876, + 0, + 26878, + 26882, + 26883, + 0, + 0, + 0, + 0, + 26890, + 26894, + 0, + 0, + 0, + 0, + 26895, + 26896, + 0, + 0, + 0, + 0, + 0, + 26900, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26911, + 26913, + 26914, + 26915, + 26916, + 26919, + 0, + 0, + 0, + 26921, + 26922, + 0, + 0, + 26925, + 0, + 0, + 0, + 26928, + 0, + 0, + 26929, + 26930, + 0, + 0, + 0, + 26931, + 0, + 26932, + 0, + 0, + 0, + 0, + 0, + 26933, + 0, + 0, + 0, + 0, + 0, + 0, + 26937, + 0, + 0, + 26943, + 0, + 0, + 26944, + 0, + 0, + 0, + 26946, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26956, + 0, + 26958, + 0, + 0, + 26963, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26965, + 0, + 26969, + 26970, + 26972, + 0, + 0, + 0, + 0, + 0, + 26973, + 0, + 26974, + 0, + 26978, + 0, + 26980, + 0, + 0, + 0, + 0, + 0, + 0, + 26982, + 0, + 26986, + 26987, + 0, + 26990, + 0, + 0, + 0, + 0, + 27003, + 27006, + 0, + 0, + 27007, + 27010, + 27012, + 27013, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27014, + 27015, + 27018, + 0, + 27019, + 0, + 0, + 0, + 0, + 0, + 27025, + 0, + 0, + 0, + 27026, + 0, + 0, + 0, + 0, + 27029, + 27030, + 27031, + 27034, + 0, + 0, + 27036, + 27037, + 0, + 0, + 0, + 27038, + 27042, + 0, + 0, + 0, + 27044, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27045, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27046, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27047, + 27049, + 0, + 27050, + 0, + 0, + 0, + 27051, + 27052, + 0, + 27055, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27056, + 27058, + 27059, + 0, + 27061, + 0, + 27064, + 0, + 0, + 0, + 0, + 0, + 27069, + 0, + 0, + 27070, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27072, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27076, + 0, + 0, + 0, + 0, + 0, + 27078, + 0, + 27079, + 0, + 0, + 0, + 27081, + 0, + 0, + 0, + 0, + 0, + 0, + 27082, + 0, + 27083, + 27086, + 0, + 0, + 0, + 0, + 27087, + 0, + 0, + 0, + 0, + 0, + 27088, + 27090, + 0, + 27094, + 0, + 0, + 27095, + 0, + 27099, + 27102, + 0, + 0, + 0, + 27103, + 0, + 0, + 0, + 0, + 27105, + 0, + 0, + 0, + 27106, + 0, + 0, + 0, + 0, + 0, + 0, + 27107, + 0, + 0, + 0, + 0, + 27108, + 27117, + 0, + 0, + 0, + 0, + 27118, + 0, + 0, + 27124, + 0, + 27126, + 0, + 0, + 27130, + 27131, + 0, + 0, + 0, + 0, + 0, + 0, + 27147, + 0, + 0, + 0, + 0, + 27148, + 27149, + 0, + 0, + 0, + 0, + 27150, + 27151, + 0, + 27152, + 0, + 27159, + 0, + 0, + 0, + 27164, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27175, + 0, + 27189, + 0, + 0, + 27191, + 0, + 27193, + 0, + 27195, + 0, + 27198, + 0, + 0, + 0, + 0, + 0, + 27200, + 0, + 0, + 0, + 0, + 27202, + 0, + 0, + 0, + 0, + 27203, + 0, + 0, + 27204, + 0, + 0, + 27206, + 0, + 27207, + 0, + 0, + 0, + 0, + 27209, + 0, + 0, + 0, + 27213, + 0, + 0, + 27216, + 27219, + 27220, + 27222, + 27223, + 0, + 27224, + 0, + 27225, + 27226, + 0, + 0, + 27233, + 0, + 0, + 0, + 0, + 27235, + 0, + 27237, + 0, + 27238, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27239, + 0, + 27242, + 27243, + 0, + 27250, + 0, + 0, + 0, + 27251, + 0, + 27253, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27254, + 27255, + 27258, + 0, + 0, + 0, + 27259, + 0, + 0, + 0, + 0, + 0, + 0, + 27267, + 0, + 27276, + 27278, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27296, + 27297, + 27301, + 0, + 0, + 0, + 0, + 0, + 0, + 27302, + 0, + 0, + 0, + 0, + 0, + 0, + 27312, + 27313, + 0, + 0, + 0, + 0, + 0, + 27318, + 0, + 27320, + 0, + 27329, + 0, + 27330, + 27331, + 0, + 27332, + 0, + 0, + 0, + 0, + 27340, + 0, + 0, + 0, + 27348, + 0, + 0, + 0, + 0, + 0, + 0, + 27350, + 0, + 27351, + 0, + 0, + 0, + 0, + 27355, + 0, + 0, + 27358, + 27359, + 27361, + 0, + 0, + 0, + 27365, + 0, + 27367, + 0, + 27376, + 27378, + 0, + 0, + 27379, + 0, + 0, + 0, + 0, + 0, + 0, + 27396, + 0, + 27397, + 27404, + 0, + 0, + 0, + 0, + 0, + 27408, + 0, + 0, + 0, + 0, + 27453, + 0, + 0, + 0, + 27456, + 0, + 0, + 0, + 27458, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27459, + 0, + 0, + 0, + 27460, + 0, + 0, + 27461, + 0, + 27465, + 27467, + 0, + 0, + 27469, + 0, + 27470, + 0, + 27471, + 0, + 27477, + 27482, + 0, + 0, + 0, + 0, + 0, + 0, + 27484, + 0, + 0, + 0, + 0, + 0, + 0, + 27485, + 0, + 0, + 0, + 0, + 0, + 27493, + 0, + 27494, + 27502, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27511, + 27532, + 0, + 0, + 0, + 27533, + 27545, + 0, + 0, + 0, + 27546, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27547, + 0, + 0, + 27549, + 27550, + 0, + 27551, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27555, + 0, + 0, + 27571, + 0, + 27573, + 27574, + 27575, + 27577, + 0, + 27578, + 0, + 0, + 27579, + 27585, + 0, + 0, + 0, + 0, + 0, + 27586, + 0, + 0, + 27588, + 27589, + 0, + 0, + 0, + 0, + 27596, + 0, + 0, + 27600, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27608, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27610, + 0, + 0, + 0, + 27618, + 0, + 0, + 27620, + 0, + 0, + 0, + 27631, + 0, + 0, + 27632, + 27634, + 0, + 27636, + 27638, + 0, + 0, + 0, + 27643, + 0, + 27644, + 27649, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27651, + 27660, + 0, + 27661, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27662, + 0, + 0, + 27664, + 0, + 27665, + 0, + 0, + 0, + 27669, + 0, + 27671, + 0, + 0, + 0, + 27673, + 27674, + 0, + 0, + 0, + 27682, + 0, + 0, + 0, + 27711, + 0, + 27712, + 27713, + 27719, + 27720, + 0, + 0, + 27728, + 0, + 27729, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27731, + 0, + 0, + 27732, + 0, + 27733, + 0, + 27738, + 0, + 0, + 0, + 27742, + 0, + 0, + 0, + 27743, + 27744, + 0, + 0, + 0, + 0, + 0, + 0, + 27745, + 27746, + 0, + 0, + 0, + 27747, + 27748, + 27751, + 27752, + 0, + 0, + 0, + 27768, + 27770, + 0, + 0, + 0, + 27774, + 27775, + 0, + 27776, + 27777, + 0, + 0, + 27781, + 0, + 27784, + 0, + 27786, + 0, + 0, + 27791, + 0, + 27792, + 27793, + 27804, + 0, + 27812, + 27813, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27814, + 0, + 27825, + 0, + 27827, + 0, + 0, + 0, + 0, + 27828, + 27861, + 27862, + 0, + 0, + 0, + 27864, + 0, + 0, + 0, + 27865, + 27884, + 0, + 27889, + 0, + 0, + 0, + 0, + 0, + 27890, + 0, + 27891, + 0, + 0, + 0, + 27892, + 0, + 0, + 0, + 0, + 0, + 27897, + 27898, + 0, + 0, + 27899, + 0, + 0, + 0, + 27901, + 27905, + 0, + 0, + 27920, + 0, + 0, + 27921, + 0, + 27922, + 0, + 0, + 0, + 27931, + 27934, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27941, + 0, + 27942, + 0, + 27945, + 0, + 27947, + 27954, + 0, + 0, + 0, + 0, + 27960, + 27963, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27964, + 27965, + 0, + 0, + 0, + 27967, + 0, + 27969, + 27975, + 0, + 27976, + 27977, + 0, + 27981, + 0, + 27983, + 28051, + 28052, + 0, + 0, + 0, + 0, + 0, + 28056, + 0, + 0, + 0, + 0, + 0, + 0, + 28058, + 28059, + 0, + 0, + 28061, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28063, + 0, + 0, + 0, + 0, + 0, + 0, + 28066, + 0, + 0, + 0, + 0, + 0, + 0, + 28069, + 28070, + 28072, + 0, + 28073, + 0, + 0, + 28074, + 0, + 0, + 0, + 0, + 28075, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28078, + 0, + 0, + 0, + 0, + 28085, + 0, + 0, + 0, + 0, + 28086, + 0, + 0, + 0, + 0, + 0, + 0, + 28088, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28090, + 0, + 28097, + 28114, + 28115, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28116, + 0, + 0, + 0, + 0, + 0, + 28118, + 0, + 28129, + 0, + 28131, + 0, + 0, + 28135, + 0, + 0, + 0, + 28140, + 28141, + 0, + 0, + 0, + 28146, + 0, + 0, + 0, + 0, + 28152, + 0, + 0, + 0, + 0, + 28155, + 28157, + 28161, + 0, + 0, + 0, + 0, + 28166, + 0, + 28167, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28172, + 0, + 0, + 0, + 0, + 0, + 0, + 28173, + 0, + 0, + 28175, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28178, + 28188, + 0, + 28190, + 0, + 0, + 0, + 0, + 0, + 28191, + 0, + 28193, + 28206, + 0, + 0, + 28207, + 28209, + 0, + 28211, + 0, + 28213, + 0, + 0, + 0, + 28215, + 28216, + 28217, + 0, + 28222, + 0, + 28223, + 28225, + 0, + 0, + 0, + 28226, + 0, + 28227, + 28229, + 28232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28235, + 0, + 28241, + 0, + 0, + 28242, + 0, + 0, + 0, + 0, + 28243, + 0, + 0, + 0, + 28245, + 0, + 0, + 0, + 28248, + 28250, + 0, + 28251, + 28252, + 0, + 0, + 0, + 0, + 0, + 0, + 28253, + 0, + 0, + 28254, + 28255, + 0, + 0, + 28256, + 0, + 0, + 28258, + 0, + 0, + 0, + 0, + 0, + 28259, + 0, + 0, + 28260, + 0, + 0, + 28261, + 0, + 0, + 0, + 0, + 28262, + 28263, + 0, + 0, + 28264, + 0, + 0, + 0, + 28266, + 0, + 28268, + 28269, + 0, + 28270, + 28272, + 28274, + 0, + 28277, + 28278, + 0, + 0, + 0, + 28279, + 0, + 28280, + 28281, + 28283, + 0, + 28292, + 0, + 28294, + 0, + 28297, + 0, + 0, + 0, + 0, + 28299, + 0, + 0, + 0, + 0, + 0, + 28300, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28301, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28302, + 28303, + 0, + 0, + 0, + 0, + 28304, + 0, + 0, + 28305, + 0, + 28312, + 0, + 28313, + 28314, + 0, + 0, + 0, + 0, + 0, + 0, + 28315, + 0, + 0, + 0, + 28320, + 28321, + 0, + 0, + 28328, + 0, + 0, + 0, + 28329, + 28338, + 0, + 28339, + 0, + 0, + 28344, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28347, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28348, + 0, + 0, + 0, + 0, + 0, + 28411, + 0, + 28412, + 28413, + 0, + 28416, + 0, + 0, + 0, + 28420, + 0, + 0, + 0, + 0, + 0, + 28421, + 0, + 0, + 0, + 0, + 28423, + 0, + 0, + 0, + 28424, + 0, + 0, + 28428, + 0, + 0, + 0, + 0, + 0, + 28429, + 0, + 0, + 0, + 28431, + 28434, + 0, + 28458, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28464, + 0, + 0, + 0, + 0, + 28465, + 0, + 28467, + 0, + 0, + 0, + 0, + 0, + 0, + 28471, + 0, + 0, + 0, + 0, + 28474, + 0, + 28480, + 0, + 28481, + 0, + 0, + 28485, + 0, + 0, + 0, + 0, + 28486, + 28488, + 0, + 0, + 28489, + 0, + 0, + 0, + 0, + 28492, + 0, + 0, + 0, + 28495, + 0, + 28497, + 0, + 28499, + 0, + 0, + 0, + 0, + 28500, + 0, + 0, + 28502, + 28503, + 0, + 0, + 0, + 28508, + 0, + 0, + 0, + 28510, + 0, + 0, + 28512, + 28513, + 28514, + 28521, + 0, + 28526, + 0, + 28527, + 28528, + 0, + 0, + 0, + 0, + 28529, + 0, + 0, + 28532, + 0, + 0, + 28537, + 28538, + 0, + 0, + 0, + 28539, + 0, + 28548, + 0, + 28553, + 28554, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28560, + 28563, + 0, + 0, + 28564, + 0, + 0, + 0, + 0, + 28565, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28566, + 28568, + 0, + 0, + 0, + 0, + 0, + 0, + 28569, + 0, + 0, + 0, + 28570, + 0, + 28572, + 28573, + 0, + 0, + 0, + 0, + 28575, + 0, + 0, + 0, + 0, + 28576, + 28581, + 28588, + 0, + 0, + 28589, + 0, + 0, + 0, + 28590, + 28595, + 0, + 28598, + 0, + 0, + 28601, + 0, + 0, + 28605, + 0, + 0, + 0, + 0, + 28614, + 28615, + 28619, + 0, + 0, + 0, + 0, + 0, + 0, + 28620, + 0, + 28626, + 0, + 0, + 28628, + 0, + 28631, + 0, + 28632, + 0, + 0, + 0, + 0, + 0, + 0, + 28635, + 0, + 0, + 0, + 28637, + 28638, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28639, + 0, + 28643, + 0, + 0, + 28652, + 0, + 0, + 0, + 28662, + 0, + 28670, + 28671, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28672, + 28673, + 28675, + 28676, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28691, + 0, + 0, + 0, + 28695, + 0, + 0, + 0, + 28696, + 0, + 28697, + 28698, + 0, + 28705, + 0, + 28707, + 28708, + 28710, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28711, + 28728, + 0, + 0, + 0, + 28736, + 0, + 0, + 0, + 28737, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28738, + 0, + 28739, + 0, + 28741, + 0, + 0, + 28742, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28745, + 0, + 0, + 0, + 0, + 0, + 0, + 28749, + 28750, + 28752, + 28754, + 28756, + 0, + 28757, + 0, + 0, + 0, + 0, + 28759, + 28760, + 0, + 0, + 0, + 0, + 0, + 0, + 28762, + 0, + 0, + 0, + 28764, + 0, + 0, + 0, + 0, + 0, + 0, + 28766, + 0, + 28767, + 28768, + 0, + 0, + 0, + 0, + 28769, + 28770, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28771, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28772, + 0, + 28773, + 0, + 28782, + 0, + 0, + 0, + 0, + 0, + 0, + 28784, + 0, + 28785, + 0, + 28786, + 0, + 0, + 0, + 28787, + 0, + 0, + 0, + 28797, + 0, + 0, + 0, + 0, + 0, + 0, + 28799, + 0, + 0, + 28801, + 0, + 0, + 0, + 0, + 28802, + 0, + 28805, + 0, + 0, + 28806, + 0, + 0, + 28807, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28808, + 0, + 0, + 0, + 0, + 0, + 28810, + 28812, + 0, + 0, + 28816, + 28819, + 0, + 0, + 28821, + 0, + 28826, + 0, + 0, + 0, + 28842, + 28852, + 0, + 0, + 28853, + 0, + 28854, + 28855, + 0, + 0, + 0, + 28857, + 0, + 0, + 0, + 28858, + 0, + 28867, + 28868, + 28869, + 0, + 0, + 0, + 28874, + 28880, + 28882, + 28890, + 28892, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28895, + 0, + 0, + 0, + 28898, + 28899, + 0, + 0, + 0, + 28900, + 0, + 0, + 28904, + 0, + 28906, + 0, + 0, + 0, + 0, + 28907, + 0, + 0, + 0, + 0, + 0, + 0, + 28908, + 0, + 0, + 0, + 28910, + 0, + 28914, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28915, + 28916, + 28919, + 0, + 0, + 28920, + 0, + 28921, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28924, + 0, + 0, + 0, + 0, + 28926, + 28929, + 0, + 0, + 0, + 28930, + 0, + 28936, + 0, + 28939, + 0, + 0, + 0, + 0, + 28942, + 0, + 0, + 0, + 0, + 0, + 0, + 28956, + 0, + 0, + 0, + 28966, + 0, + 0, + 0, + 0, + 28967, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28968, + 0, + 28971, + 0, + 28975, + 28976, + 0, + 28982, + 28983, + 0, + 0, + 28984, + 28989, + 28996, + 28997, + 28998, + 0, + 0, + 0, + 0, + 0, + 0, + 28999, + 0, + 0, + 0, + 0, + 0, + 29000, + 0, + 29001, + 0, + 0, + 0, + 29009, + 0, + 0, + 29011, + 0, + 0, + 29021, + 0, + 0, + 0, + 0, + 29024, + 0, + 29025, + 0, + 0, + 0, + 0, + 0, + 29026, + 0, + 0, + 0, + 29036, + 0, + 0, + 0, + 29037, + 0, + 0, + 0, + 0, + 29038, + 0, + 29045, + 0, + 29047, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29051, + 0, + 0, + 0, + 29054, + 29056, + 29062, + 0, + 29070, + 29082, + 0, + 0, + 0, + 29083, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29084, + 0, + 0, + 0, + 0, + 29085, + 29088, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29090, + 29097, + 0, + 0, + 0, + 29103, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29105, + 0, + 0, + 0, + 0, + 0, + 29107, + 0, + 29109, + 0, + 0, + 0, + 29115, + 0, + 0, + 29120, + 0, + 0, + 29138, + 29140, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29152, + 0, + 29160, + 29174, + 0, + 29176, + 0, + 0, + 29180, + 0, + 29181, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29228, + 0, + 0, + 29229, + 0, + 0, + 29230, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29234, + 0, + 0, + 0, + 29241, + 0, + 29245, + 0, + 29248, + 0, + 29250, + 29256, + 29280, + 0, + 29282, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29285, + 0, + 0, + 29286, + 29291, + 29292, + 0, + 0, + 0, + 0, + 29294, + 0, + 29295, + 0, + 0, + 0, + 0, + 0, + 29296, + 29297, + 29298, + 29300, + 0, + 29302, + 0, + 0, + 29304, + 29307, + 0, + 29312, + 0, + 0, + 0, + 29322, + 0, + 0, + 29323, + 0, + 0, + 29324, + 29326, + 29328, + 0, + 29335, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29338, + 29339, + 0, + 0, + 0, + 0, + 0, + 29341, + 29343, + 0, + 0, + 0, + 0, + 29344, + 0, + 0, + 0, + 0, + 0, + 29345, + 0, + 0, + 0, + 0, + 29346, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29347, + 29348, + 29349, + 0, + 0, + 29354, + 0, + 0, + 29355, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29357, + 0, + 0, + 0, + 0, + 29364, + 0, + 29365, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29366, + 0, + 0, + 29368, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29378, + 0, + 29381, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29386, + 0, + 0, + 0, + 0, + 0, + 0, + 29389, + 0, + 0, + 0, + 29390, + 0, + 0, + 29391, + 29397, + 0, + 29398, + 29412, + 29414, + 29418, + 29419, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29420, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29423, + 0, + 0, + 0, + 29435, + 0, + 0, + 0, + 29437, + 0, + 0, + 29439, + 0, + 29441, + 0, + 0, + 0, + 0, + 29443, + 0, + 29446, + 29450, + 29452, + 0, + 0, + 0, + 0, + 0, + 29456, + 0, + 0, + 0, + 0, + 0, + 29461, + 0, + 0, + 0, + 29464, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29468, + 0, + 29473, + 0, + 0, + 0, + 29486, + 0, + 0, + 0, + 29490, + 0, + 0, + 0, + 29491, + 29492, + 0, + 0, + 29497, + 0, + 0, + 0, + 29498, + 0, + 29499, + 0, + 29502, + 29505, + 0, + 29509, + 0, + 0, + 0, + 29510, + 0, + 0, + 0, + 29512, + 0, + 0, + 0, + 29516, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29518, + 0, + 29519, + 0, + 0, + 0, + 0, + 0, + 29520, + 29521, + 29529, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29530, + 0, + 0, + 29531, + 29538, + 0, + 29540, + 0, + 0, + 0, + 29542, + 0, + 29543, + 29544, + 29547, + 0, + 0, + 29548, + 0, + 0, + 0, + 29549, + 0, + 0, + 0, + 29550, + 0, + 0, + 29552, + 0, + 0, + 0, + 0, + 29558, + 29561, + 0, + 29562, + 29564, + 0, + 0, + 29565, + 0, + 0, + 29566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29578, + 29584, + 29586, + 29591, + 0, + 0, + 0, + 0, + 29593, + 29594, + 0, + 0, + 29597, + 0, + 0, + 29613, + 0, + 29614, + 0, + 29615, + 0, + 0, + 0, + 0, + 29616, + 29617, + 0, + 0, + 29625, + 0, + 0, + 0, + 29632, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29633, + 0, + 0, + 0, + 0, + 0, + 29634, + 29635, + 29637, + 0, + 29638, + 0, + 29641, + 29643, + 0, + 0, + 0, + 0, + 0, + 0, + 29644, + 0, + 29645, + 0, + 29649, + 0, + 0, + 0, + 29650, + 0, + 29653, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29656, + 29659, + 0, + 0, + 29660, + 0, + 0, + 0, + 29661, + 0, + 0, + 0, + 0, + 0, + 29664, + 0, + 0, + 0, + 29671, + 29673, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29675, + 0, + 29677, + 29679, + 0, + 0, + 29684, + 0, + 0, + 0, + 0, + 0, + 29685, + 0, + 0, + 0, + 29687, + 0, + 0, + 0, + 29688, + 0, + 29689, + 29690, + 29700, + 0, + 29701, + 0, + 0, + 0, + 29702, + 0, + 29706, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29720, + 0, + 29721, + 0, + 29727, + 0, + 29733, + 29734, + 0, + 29750, + 29761, + 0, + 29763, + 0, + 0, + 0, + 0, + 0, + 29764, + 0, + 0, + 29765, + 0, + 0, + 0, + 29771, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29772, + 0, + 0, + 0, + 29773, + 29774, + 29775, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29822, + 0, + 0, + 0, + 29824, + 0, + 29825, + 0, + 0, + 0, + 0, + 0, + 29827, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29829, + 0, + 29832, + 29834, + 0, + 0, + 29835, + 0, + 0, + 29837, + 29838, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29843, + 0, + 0, + 0, + 0, + 29844, + 29845, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29849, + 0, + 0, + 29869, + 29872, + 29890, + 29905, + 0, + 0, + 0, + 0, + 0, + 29907, + 29921, + 0, + 29922, + 0, + 0, + 29923, + 29926, + 29944, + 29946, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29947, + 29948, + 0, + 0, + 0, + 29951, + 0, + 0, + 0, + 0, + 0, + 29953, + 0, + 0, + 29956, + 0, + 29957, + 0, + 0, + 29962, + 0, + 0, + 0, + 0, + 29971, + 0, + 0, + 0, + 29972, + 0, + 0, + 0, + 0, + 0, + 29978, + 0, + 29979, + 29992, + 30007, + 30008, + 30010, + 0, + 0, + 0, + 30013, + 0, + 0, + 0, + 0, + 30014, + 30016, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30017, + 0, + 0, + 0, + 0, + 0, + 30023, + 30031, + 0, + 0, + 30033, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30034, + 0, + 30038, + 0, + 30039, + 0, + 30040, + 0, + 0, + 0, + 0, + 0, + 0, + 30067, + 30068, + 0, + 0, + 0, + 30069, + 0, + 30072, + 0, + 0, + 0, + 30073, + 0, + 0, + 0, + 0, + 30075, + 0, + 0, + 0, + 0, + 0, + 0, + 30079, + 0, + 0, + 30080, + 0, + 0, + 0, + 0, + 0, + 30082, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30084, + 30090, + 0, + 0, + 30091, + 0, + 0, + 0, + 0, + 30098, + 30118, + 0, + 30119, + 0, + 30121, + 30130, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30131, + 30132, + 30133, + 0, + 0, + 0, + 0, + 0, + 0, + 30135, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30136, + 0, + 0, + 30137, + 30138, + 0, + 0, + 0, + 30139, + 30146, + 0, + 0, + 0, + 0, + 0, + 30147, + 0, + 0, + 30148, + 30151, + 0, + 0, + 0, + 30168, + 0, + 30172, + 30173, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30180, + 30181, + 0, + 30192, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30194, + 30196, + 0, + 0, + 30199, + 0, + 0, + 30202, + 0, + 0, + 0, + 0, + 30203, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30213, + 0, + 0, + 0, + 30216, + 0, + 0, + 30217, + 0, + 0, + 0, + 30218, + 0, + 0, + 0, + 0, + 30219, + 0, + 30220, + 0, + 30222, + 30227, + 0, + 0, + 0, + 0, + 0, + 30231, + 0, + 0, + 30233, + 30235, + 0, + 0, + 0, + 0, + 30238, + 0, + 30240, + 30243, + 30245, + 0, + 30250, + 30252, + 0, + 0, + 0, + 30269, + 0, + 0, + 30271, + 30272, + 0, + 0, + 0, + 30278, + 30280, + 0, + 0, + 30282, + 0, + 30284, + 0, + 30294, + 0, + 0, + 0, + 0, + 30295, + 30296, + 0, + 0, + 0, + 0, + 0, + 30298, + 30299, + 30302, + 30304, + 30306, + 0, + 0, + 0, + 0, + 0, + 0, + 30316, + 30317, + 0, + 0, + 0, + 30318, + 0, + 0, + 0, + 30319, + 0, + 30320, + 30322, + 30326, + 0, + 0, + 0, + 0, + 0, + 30327, + 0, + 30332, + 30348, + 30349, + 0, + 0, + 30356, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30357, + 0, + 30358, + 0, + 30359, + 30360, + 0, + 0, + 30365, + 30366, + 30378, + 0, + 0, + 0, + 0, + 30379, + 0, + 0, + 30381, + 0, + 30385, + 0, + 30388, + 30397, + 0, + 0, + 0, + 30401, + 0, + 0, + 0, + 0, + 30403, + 0, + 0, + 0, + 0, + 0, + 30404, + 0, + 0, + 30405, + 0, + 30406, + 30408, + 0, + 30409, + 0, + 30410, + 0, + 0, + 0, + 30417, + 0, + 0, + 30418, + 30419, + 0, + 30420, + 0, + 30424, + 0, + 0, + 0, + 30427, + 30430, + 30432, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30433, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30436, + 0, + 30437, + 30438, + 0, + 30441, + 30442, + 0, + 0, + 0, + 30445, + 0, + 0, + 0, + 0, + 30452, + 30456, + 30457, + 0, + 0, + 0, + 30458, + 0, + 30464, + 0, + 0, + 0, + 0, + 0, + 0, + 30467, + 0, + 30469, + 0, + 0, + 0, + 0, + 0, + 30477, + 0, + 0, + 30484, + 0, + 0, + 0, + 0, + 0, + 30485, + 0, + 0, + 0, + 0, + 0, + 30486, + 30487, + 30497, + 30498, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30505, + 0, + 30508, + 0, + 0, + 0, + 30509, + 30510, + 0, + 30514, + 30516, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30523, + 0, + 30524, + 0, + 30525, + 0, + 0, + 0, + 0, + 30537, + 0, + 0, + 30538, + 0, + 0, + 0, + 0, + 0, + 30553, + 0, + 0, + 30555, + 30556, + 30558, + 30559, + 30560, + 0, + 0, + 30561, + 0, + 30562, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30563, + 30570, + 30571, + 0, + 30586, + 30587, + 0, + 0, + 30590, + 0, + 0, + 30594, + 0, + 0, + 0, + 0, + 30611, + 30612, + 30623, + 30634, + 0, + 0, + 30636, + 30640, + 30655, + 30656, + 0, + 30657, + 0, + 0, + 30658, + 30669, + 0, + 30670, + 0, + 30676, + 30678, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30679, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30695, + 0, + 0, + 30698, + 0, + 0, + 0, + 0, + 30700, + 0, + 0, + 0, + 0, + 30701, + 0, + 30702, + 30703, + 0, + 0, + 0, + 0, + 30707, + 0, + 0, + 0, + 30709, + 0, + 0, + 30710, + 30719, + 30729, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30731, + 0, + 0, + 30733, + 0, + 0, + 0, + 30734, + 0, + 0, + 0, + 0, + 0, + 30736, + 30737, + 0, + 0, + 0, + 30740, + 0, + 0, + 0, + 30743, + 0, + 30746, + 0, + 30747, + 30748, + 0, + 0, + 30751, + 30752, + 30753, + 0, + 0, + 0, + 30754, + 0, + 0, + 30760, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30763, + 0, + 30764, + 0, + 0, + 30766, + 0, + 30769, + 30770, + 30771, + 30774, + 30777, + 0, + 0, + 30779, + 30780, + 30781, + 0, + 0, + 0, + 0, + 30790, + 0, + 0, + 0, + 30792, + 0, + 0, + 0, + 0, + 30810, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30812, + 30819, + 0, + 0, + 30823, + 30824, + 0, + 30825, + 0, + 30827, + 0, + 0, + 0, + 0, + 0, + 0, + 30828, + 0, + 0, + 30830, + 0, + 0, + 0, + 30834, + 0, + 30835, + 0, + 30837, + 30838, + 0, + 30845, + 0, + 0, + 0, + 0, + 0, + 30846, + 30847, + 0, + 0, + 30849, + 0, + 30851, + 0, + 0, + 0, + 0, + 0, + 30852, + 30858, + 0, + 0, + 30859, + 0, + 30865, + 0, + 0, + 30866, + 0, + 0, + 30868, + 0, + 0, + 30869, + 0, + 0, + 0, + 30881, + 30883, + 0, + 0, + 0, + 0, + 0, + 30889, + 0, + 30891, + 0, + 0, + 0, + 0, + 30894, + 0, + 30895, + 0, + 30897, + 0, + 30898, + 0, + 0, + 0, + 30904, + 30906, + 0, + 30909, + 0, + 0, + 0, + 0, + 0, + 0, + 30910, + 0, + 0, + 0, + 30915, + 30933, + 30942, + 0, + 0, + 0, + 0, + 30943, + 0, + 0, + 30945, + 0, + 0, + 0, + 0, + 0, + 0, + 30946, + 0, + 0, + 30947, + 0, + 0, + 30955, + 30956, + 0, + 0, + 30960, + 0, + 0, + 30961, + 30962, + 30966, + 0, + 0, + 30969, + 30974, + 0, + 0, + 0, + 30976, + 0, + 0, + 30977, + 0, + 30978, + 30982, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30994, + 30995, + 30998, + 0, + 31000, + 0, + 0, + 31001, + 0, + 0, + 31003, + 31005, + 0, + 0, + 31006, + 31011, + 0, + 0, + 31014, + 0, + 31016, + 0, + 0, + 0, + 0, + 31018, + 0, + 0, + 31020, + 31023, + 31024, + 31025, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31027, + 31028, + 31029, + 0, + 0, + 0, + 0, + 0, + 0, + 31032, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31036, + 31037, + 31038, + 0, + 0, + 0, + 31041, + 31043, + 31045, + 0, + 31047, + 0, + 0, + 0, + 31048, + 0, + 31049, + 0, + 0, + 0, + 31053, + 31054, + 31055, + 0, + 0, + 31063, + 0, + 0, + 0, + 0, + 0, + 31066, + 0, + 31068, + 31071, + 0, + 0, + 0, + 31072, + 31073, + 0, + 0, + 0, + 0, + 31075, + 0, + 0, + 31076, + 0, + 0, + 0, + 31077, + 31079, + 0, + 31080, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31087, + 0, + 31142, + 0, + 31144, + 0, + 0, + 31145, + 31146, + 31147, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31149, + 0, + 31151, + 31152, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31162, + 31171, + 31174, + 31175, + 0, + 0, + 0, + 31176, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31179, + 0, + 0, + 0, + 31186, + 0, + 0, + 0, + 31192, + 31195, + 0, + 0, + 31196, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31198, + 0, + 0, + 0, + 0, + 0, + 31199, + 0, + 0, + 0, + 31205, + 0, + 0, + 0, + 0, + 31211, + 31215, + 0, + 0, + 0, + 0, + 31231, + 0, + 31232, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31233, + 31236, + 31253, + 0, + 31254, + 0, + 0, + 0, + 0, + 0, + 0, + 31255, + 0, + 0, + 31257, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31258, + 31259, + 0, + 0, + 31260, + 0, + 31261, + 0, + 0, + 0, + 0, + 0, + 31262, + 31263, + 0, + 0, + 31264, + 0, + 31266, + 0, + 31267, + 0, + 0, + 0, + 0, + 0, + 31281, + 0, + 31282, + 0, + 31284, + 0, + 0, + 31285, + 31287, + 31288, + 0, + 0, + 31290, + 0, + 0, + 0, + 31292, + 31295, + 0, + 31299, + 0, + 31300, + 0, + 0, + 0, + 0, + 0, + 31302, + 0, + 0, + 0, + 0, + 31303, + 0, + 0, + 0, + 0, + 0, + 0, + 31304, + 0, + 0, + 0, + 0, + 0, + 31305, + 31308, + 31309, + 31315, + 0, + 31317, + 0, + 0, + 0, + 0, + 0, + 31323, + 0, + 31324, + 0, + 0, + 0, + 0, + 0, + 31325, + 31327, + 0, + 0, + 31331, + 0, + 0, + 0, + 0, + 0, + 31333, + 0, + 0, + 0, + 0, + 0, + 31336, + 0, + 0, + 31337, + 0, + 0, + 0, + 0, + 0, + 0, + 31338, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31339, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31342, + 0, + 0, + 0, + 0, + 31345, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31347, + 0, + 0, + 0, + 0, + 0, + 0, + 31348, + 0, + 0, + 31350, + 31351, + 0, + 31352, + 0, + 0, + 31354, + 0, + 0, + 0, + 0, + 31355, + 0, + 0, + 31356, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31363, + 0, + 31372, + 0, + 0, + 31373, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31376, + 0, + 31388, + 0, + 31389, + 0, + 31392, + 0, + 31401, + 0, + 31405, + 31407, + 31408, + 0, + 31409, + 0, + 0, + 0, + 0, + 0, + 0, + 31413, + 31415, + 0, + 0, + 0, + 31416, + 31418, + 0, + 0, + 0, + 0, + 0, + 0, + 31422, + 31423, + 0, + 0, + 31424, + 0, + 31425, + 31432, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31433, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31434, + 0, + 0, + 0, + 0, + 0, + 0, + 31435, + 0, + 0, + 0, + 0, + 31438, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31442, + 0, + 31444, + 0, + 31448, + 0, + 0, + 31451, + 0, + 0, + 0, + 0, + 31452, + 0, + 31461, + 31465, + 0, + 0, + 31466, + 0, + 0, + 31467, + 0, + 0, + 31468, + 0, + 0, + 0, + 31469, + 31473, + 0, + 31476, + 0, + 0, + 0, + 0, + 31489, + 31490, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31492, + 31493, + 31494, + 0, + 0, + 0, + 0, + 31501, + 31504, + 31505, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31509, + 0, + 0, + 0, + 0, + 31510, + 0, + 0, + 31511, + 0, + 0, + 31513, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31514, + 0, + 31522, + 31536, + 31539, + 31540, + 0, + 31541, + 0, + 0, + 0, + 0, + 0, + 0, + 31546, + 31553, + 31559, + 0, + 0, + 0, + 31560, + 31561, + 31562, + 0, + 0, + 31564, + 31567, + 0, + 31569, + 0, + 0, + 0, + 31570, + 0, + 0, + 0, + 0, + 31571, + 0, + 0, + 0, + 0, + 0, + 0, + 31572, + 31574, + 31580, + 31581, + 0, + 0, + 31582, + 31584, + 31585, + 31586, + 31595, + 0, + 31596, + 0, + 0, + 0, + 0, + 31597, + 0, + 31599, + 0, + 31600, + 31601, + 0, + 0, + 31603, + 31604, + 0, + 0, + 31608, + 31610, + 0, + 0, + 0, + 31611, + 0, + 31615, + 0, + 0, + 0, + 0, + 31616, + 0, + 0, + 0, + 0, + 0, + 0, + 31617, + 0, + 0, + 0, + 0, + 0, + 31618, + 0, + 0, + 0, + 0, + 0, + 0, + 31621, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31622, + 31625, + 0, + 0, + 0, + 0, + 31627, + 0, + 31641, + 0, + 0, + 31642, + 0, + 0, + 31643, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31644, + 0, + 31646, + 0, + 0, + 0, + 0, + 31648, + 0, + 0, + 0, + 31652, + 0, + 0, + 0, + 31657, + 0, + 0, + 31676, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31689, + 31691, + 31692, + 0, + 31694, + 0, + 0, + 0, + 31696, + 0, + 31702, + 0, + 31703, + 0, +} + +var kStaticDictionaryWords = [31705]dictWord{ + dictWord{0, 0, 0}, + dictWord{8, 0, 1002}, + dictWord{136, 0, 1015}, + dictWord{4, 0, 683}, + dictWord{4, 10, 325}, + dictWord{138, 10, 125}, + dictWord{7, 11, 572}, + dictWord{ + 9, + 11, + 592, + }, + dictWord{11, 11, 680}, + dictWord{11, 11, 842}, + dictWord{11, 11, 924}, + dictWord{12, 11, 356}, + dictWord{12, 11, 550}, + dictWord{13, 11, 317}, + dictWord{13, 11, 370}, + dictWord{13, 11, 469}, + dictWord{13, 11, 471}, + dictWord{14, 11, 397}, + dictWord{18, 11, 69}, + dictWord{146, 11, 145}, + dictWord{ + 134, + 0, + 1265, + }, + dictWord{136, 11, 534}, + dictWord{134, 0, 1431}, + dictWord{11, 0, 138}, + dictWord{140, 0, 40}, + dictWord{4, 0, 155}, + dictWord{7, 0, 1689}, + dictWord{ + 4, + 10, + 718, + }, + dictWord{135, 10, 1216}, + dictWord{4, 0, 245}, + dictWord{5, 0, 151}, + dictWord{5, 0, 741}, + dictWord{6, 0, 1147}, + dictWord{7, 0, 498}, + dictWord{7, 0, 870}, + dictWord{7, 0, 1542}, + dictWord{12, 0, 213}, + dictWord{14, 0, 36}, + dictWord{14, 0, 391}, + dictWord{17, 0, 111}, + dictWord{18, 0, 6}, + dictWord{18, 0, 46}, + dictWord{ + 18, + 0, + 151, + }, + dictWord{19, 0, 36}, + dictWord{20, 0, 32}, + dictWord{20, 0, 56}, + dictWord{20, 0, 69}, + dictWord{20, 0, 102}, + dictWord{21, 0, 4}, + dictWord{22, 0, 8}, + dictWord{ + 22, + 0, + 10, + }, + dictWord{22, 0, 14}, + dictWord{150, 0, 31}, + dictWord{4, 0, 624}, + dictWord{135, 0, 1752}, + dictWord{5, 10, 124}, + dictWord{5, 10, 144}, + dictWord{6, 10, 548}, + dictWord{7, 10, 15}, + dictWord{7, 10, 153}, + dictWord{137, 10, 629}, + dictWord{6, 0, 503}, + dictWord{9, 0, 586}, + dictWord{13, 0, 468}, + dictWord{14, 0, 66}, + dictWord{ + 16, + 0, + 58, + }, + dictWord{7, 10, 1531}, + dictWord{8, 10, 416}, + dictWord{9, 10, 275}, + dictWord{10, 10, 100}, + dictWord{11, 10, 658}, + dictWord{11, 10, 979}, + dictWord{ + 12, + 10, + 86, + }, + dictWord{14, 10, 207}, + dictWord{15, 10, 20}, + dictWord{143, 10, 25}, + dictWord{5, 0, 603}, + dictWord{7, 0, 1212}, + dictWord{9, 0, 565}, + dictWord{ + 14, + 0, + 301, + }, + dictWord{5, 10, 915}, + dictWord{6, 10, 1783}, + dictWord{7, 10, 211}, + dictWord{7, 10, 1353}, + dictWord{9, 10, 83}, + dictWord{10, 10, 376}, + dictWord{ + 10, + 10, + 431, + }, + dictWord{11, 10, 543}, + dictWord{12, 10, 664}, + dictWord{13, 10, 280}, + dictWord{13, 10, 428}, + dictWord{14, 10, 128}, + dictWord{17, 10, 52}, + dictWord{ + 145, + 10, + 81, + }, + dictWord{4, 0, 492}, + dictWord{133, 0, 451}, + dictWord{135, 0, 835}, + dictWord{141, 0, 70}, + dictWord{132, 0, 539}, + dictWord{7, 11, 748}, + dictWord{ + 139, + 11, + 700, + }, + dictWord{7, 11, 1517}, + dictWord{11, 11, 597}, + dictWord{14, 11, 76}, + dictWord{14, 11, 335}, + dictWord{148, 11, 33}, + dictWord{6, 0, 113}, + dictWord{135, 0, 436}, + dictWord{4, 10, 338}, + dictWord{133, 10, 400}, + dictWord{136, 0, 718}, + dictWord{133, 11, 127}, + dictWord{133, 11, 418}, + dictWord{ + 6, + 0, + 1505, + }, + dictWord{7, 0, 520}, + dictWord{6, 11, 198}, + dictWord{11, 10, 892}, + dictWord{140, 11, 83}, + dictWord{4, 10, 221}, + dictWord{5, 10, 659}, + dictWord{ + 5, + 10, + 989, + }, + dictWord{7, 10, 697}, + dictWord{7, 10, 1211}, + dictWord{138, 10, 284}, + dictWord{135, 0, 1070}, + dictWord{5, 11, 276}, + dictWord{6, 11, 55}, + dictWord{ + 135, + 11, + 1369, + }, + dictWord{134, 0, 1515}, + dictWord{6, 11, 1752}, + dictWord{136, 11, 726}, + dictWord{138, 10, 507}, + dictWord{15, 0, 78}, + dictWord{4, 10, 188}, + dictWord{135, 10, 805}, + dictWord{5, 10, 884}, + dictWord{139, 10, 991}, + dictWord{133, 11, 764}, + dictWord{134, 10, 1653}, + dictWord{6, 11, 309}, + dictWord{ + 7, + 11, + 331, + }, + dictWord{138, 11, 550}, + dictWord{135, 11, 1861}, + dictWord{132, 11, 348}, + dictWord{135, 11, 986}, + dictWord{135, 11, 1573}, + dictWord{ + 12, + 0, + 610, + }, + dictWord{13, 0, 431}, + dictWord{144, 0, 59}, + dictWord{9, 11, 799}, + dictWord{140, 10, 166}, + dictWord{134, 0, 1530}, + dictWord{132, 0, 750}, + dictWord{132, 0, 307}, + dictWord{133, 0, 964}, + dictWord{6, 11, 194}, + dictWord{7, 11, 133}, + dictWord{10, 11, 493}, + dictWord{10, 11, 570}, + dictWord{139, 11, 664}, + dictWord{5, 11, 24}, + dictWord{5, 11, 569}, + dictWord{6, 11, 3}, + dictWord{6, 11, 119}, + dictWord{6, 11, 143}, + dictWord{6, 11, 440}, + dictWord{7, 11, 295}, + dictWord{ + 7, + 11, + 599, + }, + dictWord{7, 11, 1686}, + dictWord{7, 11, 1854}, + dictWord{8, 11, 424}, + dictWord{9, 11, 43}, + dictWord{9, 11, 584}, + dictWord{9, 11, 760}, + dictWord{ + 10, + 11, + 148, + }, + dictWord{10, 11, 328}, + dictWord{11, 11, 159}, + dictWord{11, 11, 253}, + dictWord{11, 11, 506}, + dictWord{12, 11, 487}, + dictWord{12, 11, 531}, + dictWord{144, 11, 33}, + dictWord{136, 10, 760}, + dictWord{5, 11, 14}, + dictWord{5, 11, 892}, + dictWord{6, 11, 283}, + dictWord{7, 11, 234}, + dictWord{136, 11, 537}, + dictWord{135, 11, 1251}, + dictWord{4, 11, 126}, + dictWord{8, 11, 635}, + dictWord{147, 11, 34}, + dictWord{4, 11, 316}, + dictWord{135, 11, 1561}, + dictWord{ + 6, + 0, + 999, + }, + dictWord{6, 0, 1310}, + dictWord{137, 11, 861}, + dictWord{4, 11, 64}, + dictWord{5, 11, 352}, + dictWord{5, 11, 720}, + dictWord{6, 11, 368}, + dictWord{ + 139, + 11, + 359, + }, + dictWord{4, 0, 75}, + dictWord{5, 0, 180}, + dictWord{6, 0, 500}, + dictWord{7, 0, 58}, + dictWord{7, 0, 710}, + dictWord{10, 0, 645}, + dictWord{136, 10, 770}, + dictWord{133, 0, 649}, + dictWord{6, 0, 276}, + dictWord{7, 0, 282}, + dictWord{7, 0, 879}, + dictWord{7, 0, 924}, + dictWord{8, 0, 459}, + dictWord{9, 0, 599}, + dictWord{9, 0, 754}, + dictWord{11, 0, 574}, + dictWord{12, 0, 128}, + dictWord{12, 0, 494}, + dictWord{13, 0, 52}, + dictWord{13, 0, 301}, + dictWord{15, 0, 30}, + dictWord{143, 0, 132}, + dictWord{132, 0, 200}, + dictWord{4, 10, 89}, + dictWord{5, 10, 489}, + dictWord{6, 10, 315}, + dictWord{7, 10, 553}, + dictWord{7, 10, 1745}, + dictWord{138, 10, 243}, + dictWord{135, 11, 1050}, + dictWord{7, 0, 1621}, + dictWord{6, 10, 1658}, + dictWord{9, 10, 3}, + dictWord{10, 10, 154}, + dictWord{11, 10, 641}, + dictWord{13, 10, 85}, + dictWord{13, 10, 201}, + dictWord{141, 10, 346}, + dictWord{6, 11, 175}, + dictWord{137, 11, 289}, + dictWord{5, 11, 432}, + dictWord{133, 11, 913}, + dictWord{ + 6, + 0, + 225, + }, + dictWord{137, 0, 211}, + dictWord{7, 0, 718}, + dictWord{8, 0, 687}, + dictWord{139, 0, 374}, + dictWord{4, 10, 166}, + dictWord{133, 10, 505}, + dictWord{ + 9, + 0, + 110, + }, + dictWord{134, 10, 1670}, + dictWord{8, 0, 58}, + dictWord{9, 0, 724}, + dictWord{11, 0, 809}, + dictWord{13, 0, 113}, + dictWord{145, 0, 72}, + dictWord{6, 0, 345}, + dictWord{7, 0, 1247}, + dictWord{144, 11, 82}, + dictWord{5, 11, 931}, + dictWord{134, 11, 1698}, + dictWord{8, 0, 767}, + dictWord{8, 0, 803}, + dictWord{9, 0, 301}, + dictWord{137, 0, 903}, + dictWord{139, 0, 203}, + dictWord{134, 0, 1154}, + dictWord{7, 0, 1949}, + dictWord{136, 0, 674}, + dictWord{134, 0, 259}, + dictWord{ + 135, + 0, + 1275, + }, + dictWord{5, 11, 774}, + dictWord{6, 11, 1637}, + dictWord{6, 11, 1686}, + dictWord{134, 11, 1751}, + dictWord{134, 0, 1231}, + dictWord{7, 10, 445}, + dictWord{8, 10, 307}, + dictWord{8, 10, 704}, + dictWord{10, 10, 41}, + dictWord{10, 10, 439}, + dictWord{11, 10, 237}, + dictWord{11, 10, 622}, + dictWord{140, 10, 201}, + dictWord{136, 0, 254}, + dictWord{6, 11, 260}, + dictWord{135, 11, 1484}, + dictWord{139, 0, 277}, + dictWord{135, 10, 1977}, + dictWord{4, 10, 189}, + dictWord{ + 5, + 10, + 713, + }, + dictWord{6, 11, 573}, + dictWord{136, 10, 57}, + dictWord{138, 10, 371}, + dictWord{132, 10, 552}, + dictWord{134, 11, 344}, + dictWord{133, 0, 248}, + dictWord{9, 0, 800}, + dictWord{10, 0, 693}, + dictWord{11, 0, 482}, + dictWord{11, 0, 734}, + dictWord{11, 0, 789}, + dictWord{134, 11, 240}, + dictWord{4, 0, 116}, + dictWord{ + 5, + 0, + 95, + }, + dictWord{5, 0, 445}, + dictWord{7, 0, 1688}, + dictWord{8, 0, 29}, + dictWord{9, 0, 272}, + dictWord{11, 0, 509}, + dictWord{11, 0, 915}, + dictWord{4, 11, 292}, + dictWord{4, 11, 736}, + dictWord{5, 11, 871}, + dictWord{6, 11, 171}, + dictWord{6, 11, 1689}, + dictWord{7, 11, 1324}, + dictWord{7, 11, 1944}, + dictWord{9, 11, 415}, + dictWord{9, 11, 580}, + dictWord{14, 11, 230}, + dictWord{146, 11, 68}, + dictWord{7, 0, 490}, + dictWord{13, 0, 100}, + dictWord{143, 0, 75}, + dictWord{135, 0, 1641}, + dictWord{133, 0, 543}, + dictWord{7, 11, 209}, + dictWord{8, 11, 661}, + dictWord{10, 11, 42}, + dictWord{11, 11, 58}, + dictWord{12, 11, 58}, + dictWord{12, 11, 118}, + dictWord{141, 11, 32}, + dictWord{5, 0, 181}, + dictWord{8, 0, 41}, + dictWord{6, 11, 63}, + dictWord{135, 11, 920}, + dictWord{133, 0, 657}, + dictWord{133, 11, 793}, + dictWord{138, 0, 709}, + dictWord{7, 0, 25}, + dictWord{8, 0, 202}, + dictWord{138, 0, 536}, + dictWord{5, 11, 665}, + dictWord{135, 10, 1788}, + dictWord{145, 10, 49}, + dictWord{9, 0, 423}, + dictWord{140, 0, 89}, + dictWord{5, 11, 67}, + dictWord{6, 11, 62}, + dictWord{6, 11, 374}, + dictWord{135, 11, 1391}, + dictWord{8, 0, 113}, + dictWord{ + 9, + 0, + 877, + }, + dictWord{10, 0, 554}, + dictWord{11, 0, 83}, + dictWord{12, 0, 136}, + dictWord{19, 0, 109}, + dictWord{9, 11, 790}, + dictWord{140, 11, 47}, + dictWord{ + 138, + 10, + 661, + }, + dictWord{4, 0, 963}, + dictWord{10, 0, 927}, + dictWord{14, 0, 442}, + dictWord{135, 10, 1945}, + dictWord{133, 0, 976}, + dictWord{132, 0, 206}, + dictWord{ + 4, + 11, + 391, + }, + dictWord{135, 11, 1169}, + dictWord{134, 0, 2002}, + dictWord{6, 0, 696}, + dictWord{134, 0, 1008}, + dictWord{134, 0, 1170}, + dictWord{132, 11, 271}, + dictWord{7, 0, 13}, + dictWord{8, 0, 226}, + dictWord{10, 0, 537}, + dictWord{11, 0, 570}, + dictWord{11, 0, 605}, + dictWord{11, 0, 799}, + dictWord{11, 0, 804}, + dictWord{ + 12, + 0, + 85, + }, + dictWord{12, 0, 516}, + dictWord{12, 0, 623}, + dictWord{13, 0, 112}, + dictWord{13, 0, 361}, + dictWord{14, 0, 77}, + dictWord{14, 0, 78}, + dictWord{17, 0, 28}, + dictWord{19, 0, 110}, + dictWord{140, 11, 314}, + dictWord{132, 0, 769}, + dictWord{134, 0, 1544}, + dictWord{4, 0, 551}, + dictWord{137, 0, 678}, + dictWord{5, 10, 84}, + dictWord{134, 10, 163}, + dictWord{9, 0, 57}, + dictWord{9, 0, 459}, + dictWord{10, 0, 425}, + dictWord{11, 0, 119}, + dictWord{12, 0, 184}, + dictWord{12, 0, 371}, + dictWord{ + 13, + 0, + 358, + }, + dictWord{145, 0, 51}, + dictWord{5, 0, 188}, + dictWord{5, 0, 814}, + dictWord{8, 0, 10}, + dictWord{9, 0, 421}, + dictWord{9, 0, 729}, + dictWord{10, 0, 609}, + dictWord{11, 0, 689}, + dictWord{4, 11, 253}, + dictWord{5, 10, 410}, + dictWord{5, 11, 544}, + dictWord{7, 11, 300}, + dictWord{137, 11, 340}, + dictWord{134, 0, 624}, + dictWord{138, 11, 321}, + dictWord{135, 0, 1941}, + dictWord{18, 0, 130}, + dictWord{5, 10, 322}, + dictWord{8, 10, 186}, + dictWord{9, 10, 262}, + dictWord{10, 10, 187}, + dictWord{142, 10, 208}, + dictWord{5, 11, 53}, + dictWord{5, 11, 541}, + dictWord{6, 11, 94}, + dictWord{6, 11, 499}, + dictWord{7, 11, 230}, + dictWord{139, 11, 321}, + dictWord{133, 10, 227}, + dictWord{4, 0, 378}, + dictWord{4, 11, 920}, + dictWord{5, 11, 25}, + dictWord{5, 11, 790}, + dictWord{6, 11, 457}, + dictWord{135, 11, 853}, + dictWord{137, 0, 269}, + dictWord{132, 0, 528}, + dictWord{134, 0, 1146}, + dictWord{7, 10, 1395}, + dictWord{8, 10, 486}, + dictWord{9, 10, 236}, + dictWord{9, 10, 878}, + dictWord{10, 10, 218}, + dictWord{11, 10, 95}, + dictWord{19, 10, 17}, + dictWord{147, 10, 31}, + dictWord{7, 10, 2043}, + dictWord{8, 10, 672}, + dictWord{ + 141, + 10, + 448, + }, + dictWord{134, 0, 1105}, + dictWord{134, 0, 1616}, + dictWord{134, 11, 1765}, + dictWord{140, 11, 163}, + dictWord{5, 10, 412}, + dictWord{133, 11, 822}, + dictWord{132, 11, 634}, + dictWord{6, 0, 656}, + dictWord{134, 11, 1730}, + dictWord{134, 0, 1940}, + dictWord{5, 0, 104}, + dictWord{6, 0, 173}, + dictWord{ + 135, + 0, + 1631, + }, + dictWord{136, 10, 562}, + dictWord{6, 11, 36}, + dictWord{7, 11, 658}, + dictWord{8, 11, 454}, + dictWord{147, 11, 86}, + dictWord{5, 0, 457}, + dictWord{ + 134, + 10, + 1771, + }, + dictWord{7, 0, 810}, + dictWord{8, 0, 138}, + dictWord{8, 0, 342}, + dictWord{9, 0, 84}, + dictWord{10, 0, 193}, + dictWord{11, 0, 883}, + dictWord{140, 0, 359}, + dictWord{9, 0, 620}, + dictWord{135, 10, 1190}, + dictWord{137, 10, 132}, + dictWord{7, 11, 975}, + dictWord{137, 11, 789}, + dictWord{6, 0, 95}, + dictWord{6, 0, 1934}, + dictWord{136, 0, 967}, + dictWord{141, 11, 335}, + dictWord{6, 0, 406}, + dictWord{10, 0, 409}, + dictWord{10, 0, 447}, + dictWord{11, 0, 44}, + dictWord{140, 0, 100}, + dictWord{4, 10, 317}, + dictWord{135, 10, 1279}, + dictWord{132, 0, 477}, + dictWord{134, 0, 1268}, + dictWord{6, 0, 1941}, + dictWord{8, 0, 944}, + dictWord{5, 10, 63}, + dictWord{133, 10, 509}, + dictWord{132, 0, 629}, + dictWord{132, 11, 104}, + dictWord{4, 0, 246}, + dictWord{133, 0, 375}, + dictWord{6, 0, 1636}, + dictWord{ + 132, + 10, + 288, + }, + dictWord{135, 11, 1614}, + dictWord{9, 0, 49}, + dictWord{10, 0, 774}, + dictWord{8, 10, 89}, + dictWord{8, 10, 620}, + dictWord{11, 10, 628}, + dictWord{ + 12, + 10, + 322, + }, + dictWord{143, 10, 124}, + dictWord{4, 0, 282}, + dictWord{7, 0, 1034}, + dictWord{11, 0, 398}, + dictWord{11, 0, 634}, + dictWord{12, 0, 1}, + dictWord{12, 0, 79}, + dictWord{12, 0, 544}, + dictWord{14, 0, 237}, + dictWord{17, 0, 10}, + dictWord{146, 0, 20}, + dictWord{132, 0, 824}, + dictWord{7, 11, 45}, + dictWord{9, 11, 542}, + dictWord{ + 9, + 11, + 566, + }, + dictWord{138, 11, 728}, + dictWord{5, 0, 118}, + dictWord{5, 0, 499}, + dictWord{6, 0, 476}, + dictWord{6, 0, 665}, + dictWord{6, 0, 1176}, + dictWord{ + 6, + 0, + 1196, + }, + dictWord{7, 0, 600}, + dictWord{7, 0, 888}, + dictWord{135, 0, 1096}, + dictWord{7, 0, 296}, + dictWord{7, 0, 596}, + dictWord{8, 0, 560}, + dictWord{8, 0, 586}, + dictWord{9, 0, 612}, + dictWord{11, 0, 304}, + dictWord{12, 0, 46}, + dictWord{13, 0, 89}, + dictWord{14, 0, 112}, + dictWord{145, 0, 122}, + dictWord{5, 0, 894}, + dictWord{ + 6, + 0, + 1772, + }, + dictWord{9, 0, 1009}, + dictWord{138, 10, 120}, + dictWord{5, 11, 533}, + dictWord{7, 11, 755}, + dictWord{138, 11, 780}, + dictWord{151, 10, 1}, + dictWord{ + 6, + 0, + 1474, + }, + dictWord{7, 11, 87}, + dictWord{142, 11, 288}, + dictWord{139, 0, 366}, + dictWord{137, 10, 461}, + dictWord{7, 11, 988}, + dictWord{7, 11, 1939}, + dictWord{ + 9, + 11, + 64, + }, + dictWord{9, 11, 502}, + dictWord{12, 11, 7}, + dictWord{12, 11, 34}, + dictWord{13, 11, 12}, + dictWord{13, 11, 234}, + dictWord{147, 11, 77}, + dictWord{ + 7, + 0, + 1599, + }, + dictWord{7, 0, 1723}, + dictWord{8, 0, 79}, + dictWord{8, 0, 106}, + dictWord{8, 0, 190}, + dictWord{8, 0, 302}, + dictWord{8, 0, 383}, + dictWord{8, 0, 713}, + dictWord{ + 9, + 0, + 119, + }, + dictWord{9, 0, 233}, + dictWord{9, 0, 419}, + dictWord{9, 0, 471}, + dictWord{10, 0, 181}, + dictWord{10, 0, 406}, + dictWord{11, 0, 57}, + dictWord{11, 0, 85}, + dictWord{11, 0, 120}, + dictWord{11, 0, 177}, + dictWord{11, 0, 296}, + dictWord{11, 0, 382}, + dictWord{11, 0, 454}, + dictWord{11, 0, 758}, + dictWord{11, 0, 999}, + dictWord{ + 12, + 0, + 27, + }, + dictWord{12, 0, 98}, + dictWord{12, 0, 131}, + dictWord{12, 0, 245}, + dictWord{12, 0, 312}, + dictWord{12, 0, 446}, + dictWord{12, 0, 454}, + dictWord{13, 0, 25}, + dictWord{13, 0, 98}, + dictWord{13, 0, 426}, + dictWord{13, 0, 508}, + dictWord{14, 0, 70}, + dictWord{14, 0, 163}, + dictWord{14, 0, 272}, + dictWord{14, 0, 277}, + dictWord{ + 14, + 0, + 370, + }, + dictWord{15, 0, 95}, + dictWord{15, 0, 138}, + dictWord{15, 0, 167}, + dictWord{17, 0, 38}, + dictWord{148, 0, 96}, + dictWord{135, 10, 1346}, + dictWord{ + 10, + 0, + 200, + }, + dictWord{19, 0, 2}, + dictWord{151, 0, 22}, + dictWord{135, 11, 141}, + dictWord{134, 10, 85}, + dictWord{134, 0, 1759}, + dictWord{138, 0, 372}, + dictWord{ + 145, + 0, + 16, + }, + dictWord{8, 0, 943}, + dictWord{132, 11, 619}, + dictWord{139, 11, 88}, + dictWord{5, 11, 246}, + dictWord{8, 11, 189}, + dictWord{9, 11, 355}, + dictWord{ + 9, + 11, + 512, + }, + dictWord{10, 11, 124}, + dictWord{10, 11, 453}, + dictWord{11, 11, 143}, + dictWord{11, 11, 416}, + dictWord{11, 11, 859}, + dictWord{141, 11, 341}, + dictWord{ + 5, + 0, + 258, + }, + dictWord{134, 0, 719}, + dictWord{6, 0, 1798}, + dictWord{6, 0, 1839}, + dictWord{8, 0, 900}, + dictWord{10, 0, 874}, + dictWord{10, 0, 886}, + dictWord{ + 12, + 0, + 698, + }, + dictWord{12, 0, 732}, + dictWord{12, 0, 770}, + dictWord{16, 0, 106}, + dictWord{18, 0, 163}, + dictWord{18, 0, 170}, + dictWord{18, 0, 171}, + dictWord{152, 0, 20}, + dictWord{9, 0, 707}, + dictWord{11, 0, 326}, + dictWord{11, 0, 339}, + dictWord{12, 0, 423}, + dictWord{12, 0, 502}, + dictWord{20, 0, 62}, + dictWord{9, 11, 707}, + dictWord{ + 11, + 11, + 326, + }, + dictWord{11, 11, 339}, + dictWord{12, 11, 423}, + dictWord{12, 11, 502}, + dictWord{148, 11, 62}, + dictWord{5, 0, 30}, + dictWord{7, 0, 495}, + dictWord{ + 8, + 0, + 134, + }, + dictWord{9, 0, 788}, + dictWord{140, 0, 438}, + dictWord{133, 11, 678}, + dictWord{5, 10, 279}, + dictWord{6, 10, 235}, + dictWord{7, 10, 468}, + dictWord{ + 8, + 10, + 446, + }, + dictWord{9, 10, 637}, + dictWord{10, 10, 717}, + dictWord{11, 10, 738}, + dictWord{140, 10, 514}, + dictWord{5, 11, 35}, + dictWord{6, 11, 287}, + dictWord{ + 7, + 11, + 862, + }, + dictWord{7, 11, 1886}, + dictWord{138, 11, 179}, + dictWord{7, 0, 1948}, + dictWord{7, 0, 2004}, + dictWord{132, 11, 517}, + dictWord{5, 10, 17}, + dictWord{ + 6, + 10, + 371, + }, + dictWord{137, 10, 528}, + dictWord{4, 0, 115}, + dictWord{5, 0, 669}, + dictWord{6, 0, 407}, + dictWord{8, 0, 311}, + dictWord{11, 0, 10}, + dictWord{141, 0, 5}, + dictWord{137, 0, 381}, + dictWord{5, 0, 50}, + dictWord{6, 0, 439}, + dictWord{7, 0, 780}, + dictWord{135, 0, 1040}, + dictWord{136, 11, 667}, + dictWord{11, 11, 403}, + dictWord{146, 11, 83}, + dictWord{5, 0, 1}, + dictWord{6, 0, 81}, + dictWord{138, 0, 520}, + dictWord{134, 0, 738}, + dictWord{5, 0, 482}, + dictWord{8, 0, 98}, + dictWord{9, 0, 172}, + dictWord{10, 0, 360}, + dictWord{10, 0, 700}, + dictWord{10, 0, 822}, + dictWord{11, 0, 302}, + dictWord{11, 0, 778}, + dictWord{12, 0, 50}, + dictWord{12, 0, 127}, + dictWord{ + 12, + 0, + 396, + }, + dictWord{13, 0, 62}, + dictWord{13, 0, 328}, + dictWord{14, 0, 122}, + dictWord{147, 0, 72}, + dictWord{9, 11, 157}, + dictWord{10, 11, 131}, + dictWord{ + 140, + 11, + 72, + }, + dictWord{135, 11, 714}, + dictWord{135, 11, 539}, + dictWord{5, 0, 2}, + dictWord{6, 0, 512}, + dictWord{7, 0, 797}, + dictWord{7, 0, 1494}, + dictWord{8, 0, 253}, + dictWord{8, 0, 589}, + dictWord{9, 0, 77}, + dictWord{10, 0, 1}, + dictWord{10, 0, 129}, + dictWord{10, 0, 225}, + dictWord{11, 0, 118}, + dictWord{11, 0, 226}, + dictWord{ + 11, + 0, + 251, + }, + dictWord{11, 0, 430}, + dictWord{11, 0, 701}, + dictWord{11, 0, 974}, + dictWord{11, 0, 982}, + dictWord{12, 0, 64}, + dictWord{12, 0, 260}, + dictWord{12, 0, 488}, + dictWord{140, 0, 690}, + dictWord{5, 11, 394}, + dictWord{7, 11, 367}, + dictWord{7, 11, 487}, + dictWord{7, 11, 857}, + dictWord{7, 11, 1713}, + dictWord{8, 11, 246}, + dictWord{9, 11, 537}, + dictWord{10, 11, 165}, + dictWord{12, 11, 219}, + dictWord{140, 11, 561}, + dictWord{136, 0, 557}, + dictWord{5, 10, 779}, + dictWord{5, 10, 807}, + dictWord{6, 10, 1655}, + dictWord{134, 10, 1676}, + dictWord{4, 10, 196}, + dictWord{5, 10, 558}, + dictWord{133, 10, 949}, + dictWord{11, 11, 827}, + dictWord{ + 12, + 11, + 56, + }, + dictWord{14, 11, 34}, + dictWord{143, 11, 148}, + dictWord{137, 0, 347}, + dictWord{133, 0, 572}, + dictWord{134, 0, 832}, + dictWord{4, 0, 12}, + dictWord{ + 7, + 0, + 504, + }, + dictWord{7, 0, 522}, + dictWord{7, 0, 809}, + dictWord{8, 0, 797}, + dictWord{141, 0, 88}, + dictWord{4, 10, 752}, + dictWord{133, 11, 449}, + dictWord{7, 11, 86}, + dictWord{8, 11, 103}, + dictWord{145, 11, 69}, + dictWord{7, 11, 2028}, + dictWord{138, 11, 641}, + dictWord{5, 0, 528}, + dictWord{6, 11, 1}, + dictWord{142, 11, 2}, + dictWord{134, 0, 861}, + dictWord{10, 0, 294}, + dictWord{4, 10, 227}, + dictWord{5, 10, 159}, + dictWord{5, 10, 409}, + dictWord{7, 10, 80}, + dictWord{10, 10, 479}, + dictWord{ + 12, + 10, + 418, + }, + dictWord{14, 10, 50}, + dictWord{14, 10, 249}, + dictWord{142, 10, 295}, + dictWord{7, 10, 1470}, + dictWord{8, 10, 66}, + dictWord{8, 10, 137}, + dictWord{ + 8, + 10, + 761, + }, + dictWord{9, 10, 638}, + dictWord{11, 10, 80}, + dictWord{11, 10, 212}, + dictWord{11, 10, 368}, + dictWord{11, 10, 418}, + dictWord{12, 10, 8}, + dictWord{ + 13, + 10, + 15, + }, + dictWord{16, 10, 61}, + dictWord{17, 10, 59}, + dictWord{19, 10, 28}, + dictWord{148, 10, 84}, + dictWord{20, 0, 109}, + dictWord{135, 11, 1148}, + dictWord{ + 6, + 11, + 277, + }, + dictWord{7, 11, 1274}, + dictWord{7, 11, 1386}, + dictWord{7, 11, 1392}, + dictWord{12, 11, 129}, + dictWord{146, 11, 87}, + dictWord{6, 11, 187}, + dictWord{7, 11, 39}, + dictWord{7, 11, 1203}, + dictWord{8, 11, 380}, + dictWord{8, 11, 542}, + dictWord{14, 11, 117}, + dictWord{149, 11, 28}, + dictWord{134, 0, 1187}, + dictWord{5, 0, 266}, + dictWord{9, 0, 290}, + dictWord{9, 0, 364}, + dictWord{10, 0, 293}, + dictWord{11, 0, 606}, + dictWord{142, 0, 45}, + dictWord{6, 11, 297}, + dictWord{ + 7, + 11, + 793, + }, + dictWord{139, 11, 938}, + dictWord{4, 0, 50}, + dictWord{6, 0, 594}, + dictWord{9, 0, 121}, + dictWord{10, 0, 49}, + dictWord{10, 0, 412}, + dictWord{139, 0, 834}, + dictWord{136, 0, 748}, + dictWord{7, 11, 464}, + dictWord{8, 11, 438}, + dictWord{11, 11, 105}, + dictWord{11, 11, 363}, + dictWord{12, 11, 231}, + dictWord{ + 14, + 11, + 386, + }, + dictWord{15, 11, 102}, + dictWord{148, 11, 75}, + dictWord{132, 0, 466}, + dictWord{13, 0, 399}, + dictWord{14, 0, 337}, + dictWord{6, 10, 38}, + dictWord{ + 7, + 10, + 1220, + }, + dictWord{8, 10, 185}, + dictWord{8, 10, 256}, + dictWord{9, 10, 22}, + dictWord{9, 10, 331}, + dictWord{10, 10, 738}, + dictWord{11, 10, 205}, + dictWord{ + 11, + 10, + 540, + }, + dictWord{11, 10, 746}, + dictWord{13, 10, 465}, + dictWord{142, 10, 194}, + dictWord{9, 0, 378}, + dictWord{141, 0, 162}, + dictWord{137, 0, 519}, + dictWord{ + 4, + 10, + 159, + }, + dictWord{6, 10, 115}, + dictWord{7, 10, 252}, + dictWord{7, 10, 257}, + dictWord{7, 10, 1928}, + dictWord{8, 10, 69}, + dictWord{9, 10, 384}, + dictWord{ + 10, + 10, + 91, + }, + dictWord{10, 10, 615}, + dictWord{12, 10, 375}, + dictWord{14, 10, 235}, + dictWord{18, 10, 117}, + dictWord{147, 10, 123}, + dictWord{5, 11, 604}, + dictWord{ + 5, + 10, + 911, + }, + dictWord{136, 10, 278}, + dictWord{132, 0, 667}, + dictWord{8, 0, 351}, + dictWord{9, 0, 322}, + dictWord{4, 10, 151}, + dictWord{135, 10, 1567}, + dictWord{134, 0, 902}, + dictWord{133, 10, 990}, + dictWord{12, 0, 180}, + dictWord{5, 10, 194}, + dictWord{7, 10, 1662}, + dictWord{137, 10, 90}, + dictWord{4, 0, 869}, + dictWord{134, 0, 1996}, + dictWord{134, 0, 813}, + dictWord{133, 10, 425}, + dictWord{137, 11, 761}, + dictWord{132, 0, 260}, + dictWord{133, 10, 971}, + dictWord{ + 5, + 11, + 20, + }, + dictWord{6, 11, 298}, + dictWord{7, 11, 659}, + dictWord{7, 11, 1366}, + dictWord{137, 11, 219}, + dictWord{4, 0, 39}, + dictWord{5, 0, 36}, + dictWord{ + 7, + 0, + 1843, + }, + dictWord{8, 0, 407}, + dictWord{11, 0, 144}, + dictWord{140, 0, 523}, + dictWord{4, 0, 510}, + dictWord{10, 0, 587}, + dictWord{139, 10, 752}, + dictWord{7, 0, 29}, + dictWord{7, 0, 66}, + dictWord{7, 0, 1980}, + dictWord{10, 0, 487}, + dictWord{138, 0, 809}, + dictWord{13, 0, 260}, + dictWord{14, 0, 82}, + dictWord{18, 0, 63}, + dictWord{ + 137, + 10, + 662, + }, + dictWord{5, 10, 72}, + dictWord{6, 10, 264}, + dictWord{7, 10, 21}, + dictWord{7, 10, 46}, + dictWord{7, 10, 2013}, + dictWord{8, 10, 215}, + dictWord{ + 8, + 10, + 513, + }, + dictWord{10, 10, 266}, + dictWord{139, 10, 22}, + dictWord{134, 0, 570}, + dictWord{6, 0, 565}, + dictWord{7, 0, 1667}, + dictWord{4, 11, 439}, + dictWord{ + 10, + 10, + 95, + }, + dictWord{11, 10, 603}, + dictWord{12, 11, 242}, + dictWord{13, 10, 443}, + dictWord{14, 10, 160}, + dictWord{143, 10, 4}, + dictWord{134, 0, 1464}, + dictWord{ + 134, + 10, + 431, + }, + dictWord{9, 0, 372}, + dictWord{15, 0, 2}, + dictWord{19, 0, 10}, + dictWord{19, 0, 18}, + dictWord{5, 10, 874}, + dictWord{6, 10, 1677}, + dictWord{143, 10, 0}, + dictWord{132, 0, 787}, + dictWord{6, 0, 380}, + dictWord{12, 0, 399}, + dictWord{21, 0, 19}, + dictWord{7, 10, 939}, + dictWord{7, 10, 1172}, + dictWord{7, 10, 1671}, + dictWord{9, 10, 540}, + dictWord{10, 10, 696}, + dictWord{11, 10, 265}, + dictWord{11, 10, 732}, + dictWord{11, 10, 928}, + dictWord{11, 10, 937}, + dictWord{ + 141, + 10, + 438, + }, + dictWord{137, 0, 200}, + dictWord{132, 11, 233}, + dictWord{132, 0, 516}, + dictWord{134, 11, 577}, + dictWord{132, 0, 844}, + dictWord{11, 0, 887}, + dictWord{14, 0, 365}, + dictWord{142, 0, 375}, + dictWord{132, 11, 482}, + dictWord{8, 0, 821}, + dictWord{140, 0, 44}, + dictWord{7, 0, 1655}, + dictWord{136, 0, 305}, + dictWord{5, 10, 682}, + dictWord{135, 10, 1887}, + dictWord{135, 11, 346}, + dictWord{132, 10, 696}, + dictWord{4, 0, 10}, + dictWord{7, 0, 917}, + dictWord{139, 0, 786}, + dictWord{5, 11, 795}, + dictWord{6, 11, 1741}, + dictWord{8, 11, 417}, + dictWord{137, 11, 782}, + dictWord{4, 0, 1016}, + dictWord{134, 0, 2031}, + dictWord{5, 0, 684}, + dictWord{4, 10, 726}, + dictWord{133, 10, 630}, + dictWord{6, 0, 1021}, + dictWord{134, 0, 1480}, + dictWord{8, 10, 802}, + dictWord{136, 10, 838}, + dictWord{ + 134, + 0, + 27, + }, + dictWord{134, 0, 395}, + dictWord{135, 11, 622}, + dictWord{7, 11, 625}, + dictWord{135, 11, 1750}, + dictWord{4, 11, 203}, + dictWord{135, 11, 1936}, + dictWord{6, 10, 118}, + dictWord{7, 10, 215}, + dictWord{7, 10, 1521}, + dictWord{140, 10, 11}, + dictWord{132, 0, 813}, + dictWord{136, 0, 511}, + dictWord{7, 10, 615}, + dictWord{138, 10, 251}, + dictWord{135, 10, 1044}, + dictWord{145, 0, 56}, + dictWord{133, 10, 225}, + dictWord{6, 0, 342}, + dictWord{6, 0, 496}, + dictWord{8, 0, 275}, + dictWord{137, 0, 206}, + dictWord{4, 0, 909}, + dictWord{133, 0, 940}, + dictWord{132, 0, 891}, + dictWord{7, 11, 311}, + dictWord{9, 11, 308}, + dictWord{ + 140, + 11, + 255, + }, + dictWord{4, 10, 370}, + dictWord{5, 10, 756}, + dictWord{135, 10, 1326}, + dictWord{4, 0, 687}, + dictWord{134, 0, 1596}, + dictWord{134, 0, 1342}, + dictWord{ + 6, + 10, + 1662, + }, + dictWord{7, 10, 48}, + dictWord{8, 10, 771}, + dictWord{10, 10, 116}, + dictWord{13, 10, 104}, + dictWord{14, 10, 105}, + dictWord{14, 10, 184}, + dictWord{15, 10, 168}, + dictWord{19, 10, 92}, + dictWord{148, 10, 68}, + dictWord{138, 10, 209}, + dictWord{4, 11, 400}, + dictWord{5, 11, 267}, + dictWord{135, 11, 232}, + dictWord{151, 11, 12}, + dictWord{6, 0, 41}, + dictWord{141, 0, 160}, + dictWord{141, 11, 314}, + dictWord{134, 0, 1718}, + dictWord{136, 0, 778}, + dictWord{ + 142, + 11, + 261, + }, + dictWord{134, 0, 1610}, + dictWord{133, 0, 115}, + dictWord{132, 0, 294}, + dictWord{14, 0, 314}, + dictWord{132, 10, 120}, + dictWord{132, 0, 983}, + dictWord{5, 0, 193}, + dictWord{140, 0, 178}, + dictWord{138, 10, 429}, + dictWord{5, 10, 820}, + dictWord{135, 10, 931}, + dictWord{6, 0, 994}, + dictWord{6, 0, 1051}, + dictWord{6, 0, 1439}, + dictWord{7, 0, 174}, + dictWord{133, 11, 732}, + dictWord{4, 11, 100}, + dictWord{7, 11, 679}, + dictWord{8, 11, 313}, + dictWord{138, 10, 199}, + dictWord{6, 10, 151}, + dictWord{6, 10, 1675}, + dictWord{7, 10, 383}, + dictWord{151, 10, 10}, + dictWord{6, 0, 1796}, + dictWord{8, 0, 848}, + dictWord{8, 0, 867}, + dictWord{ + 8, + 0, + 907, + }, + dictWord{10, 0, 855}, + dictWord{140, 0, 703}, + dictWord{140, 0, 221}, + dictWord{4, 0, 122}, + dictWord{5, 0, 796}, + dictWord{5, 0, 952}, + dictWord{6, 0, 1660}, + dictWord{6, 0, 1671}, + dictWord{8, 0, 567}, + dictWord{9, 0, 687}, + dictWord{9, 0, 742}, + dictWord{10, 0, 686}, + dictWord{11, 0, 682}, + dictWord{11, 0, 909}, + dictWord{ + 140, + 0, + 281, + }, + dictWord{5, 11, 362}, + dictWord{5, 11, 443}, + dictWord{6, 11, 318}, + dictWord{7, 11, 1019}, + dictWord{139, 11, 623}, + dictWord{5, 11, 463}, + dictWord{136, 11, 296}, + dictWord{11, 0, 583}, + dictWord{13, 0, 262}, + dictWord{6, 10, 1624}, + dictWord{12, 10, 422}, + dictWord{142, 10, 360}, + dictWord{5, 0, 179}, + dictWord{7, 0, 1095}, + dictWord{135, 0, 1213}, + dictWord{4, 10, 43}, + dictWord{4, 11, 454}, + dictWord{5, 10, 344}, + dictWord{133, 10, 357}, + dictWord{4, 0, 66}, + dictWord{7, 0, 722}, + dictWord{135, 0, 904}, + dictWord{134, 0, 773}, + dictWord{7, 0, 352}, + dictWord{133, 10, 888}, + dictWord{5, 11, 48}, + dictWord{5, 11, 404}, + dictWord{ + 6, + 11, + 557, + }, + dictWord{7, 11, 458}, + dictWord{8, 11, 597}, + dictWord{10, 11, 455}, + dictWord{10, 11, 606}, + dictWord{11, 11, 49}, + dictWord{11, 11, 548}, + dictWord{ + 12, + 11, + 476, + }, + dictWord{13, 11, 18}, + dictWord{141, 11, 450}, + dictWord{134, 11, 418}, + dictWord{132, 10, 711}, + dictWord{5, 11, 442}, + dictWord{ + 135, + 11, + 1984, + }, + dictWord{141, 0, 35}, + dictWord{137, 0, 152}, + dictWord{134, 0, 1197}, + dictWord{135, 11, 1093}, + dictWord{137, 11, 203}, + dictWord{137, 10, 440}, + dictWord{10, 0, 592}, + dictWord{10, 0, 753}, + dictWord{12, 0, 317}, + dictWord{12, 0, 355}, + dictWord{12, 0, 465}, + dictWord{12, 0, 469}, + dictWord{12, 0, 560}, + dictWord{12, 0, 578}, + dictWord{141, 0, 243}, + dictWord{133, 0, 564}, + dictWord{134, 0, 797}, + dictWord{5, 10, 958}, + dictWord{133, 10, 987}, + dictWord{5, 11, 55}, + dictWord{7, 11, 376}, + dictWord{140, 11, 161}, + dictWord{133, 11, 450}, + dictWord{134, 0, 556}, + dictWord{134, 0, 819}, + dictWord{11, 10, 276}, + dictWord{ + 142, + 10, + 293, + }, + dictWord{7, 0, 544}, + dictWord{138, 0, 61}, + dictWord{8, 0, 719}, + dictWord{4, 10, 65}, + dictWord{5, 10, 479}, + dictWord{5, 10, 1004}, + dictWord{7, 10, 1913}, + dictWord{8, 10, 317}, + dictWord{9, 10, 302}, + dictWord{10, 10, 612}, + dictWord{141, 10, 22}, + dictWord{4, 0, 5}, + dictWord{5, 0, 498}, + dictWord{8, 0, 637}, + dictWord{ + 9, + 0, + 521, + }, + dictWord{4, 11, 213}, + dictWord{4, 10, 261}, + dictWord{7, 11, 223}, + dictWord{7, 10, 510}, + dictWord{136, 11, 80}, + dictWord{5, 0, 927}, + dictWord{7, 0, 101}, + dictWord{4, 10, 291}, + dictWord{7, 11, 381}, + dictWord{7, 11, 806}, + dictWord{7, 11, 820}, + dictWord{8, 11, 354}, + dictWord{8, 11, 437}, + dictWord{8, 11, 787}, + dictWord{9, 10, 515}, + dictWord{9, 11, 657}, + dictWord{10, 11, 58}, + dictWord{10, 11, 339}, + dictWord{10, 11, 749}, + dictWord{11, 11, 914}, + dictWord{12, 10, 152}, + dictWord{12, 11, 162}, + dictWord{12, 10, 443}, + dictWord{13, 11, 75}, + dictWord{13, 10, 392}, + dictWord{14, 11, 106}, + dictWord{14, 11, 198}, + dictWord{ + 14, + 11, + 320, + }, + dictWord{14, 10, 357}, + dictWord{14, 11, 413}, + dictWord{146, 11, 43}, + dictWord{6, 0, 1153}, + dictWord{7, 0, 1441}, + dictWord{136, 11, 747}, + dictWord{ + 4, + 0, + 893, + }, + dictWord{5, 0, 780}, + dictWord{133, 0, 893}, + dictWord{138, 11, 654}, + dictWord{133, 11, 692}, + dictWord{133, 0, 238}, + dictWord{134, 11, 191}, + dictWord{4, 10, 130}, + dictWord{135, 10, 843}, + dictWord{6, 0, 1296}, + dictWord{5, 10, 42}, + dictWord{5, 10, 879}, + dictWord{7, 10, 245}, + dictWord{7, 10, 324}, + dictWord{ + 7, + 10, + 1532, + }, + dictWord{11, 10, 463}, + dictWord{11, 10, 472}, + dictWord{13, 10, 363}, + dictWord{144, 10, 52}, + dictWord{134, 0, 1729}, + dictWord{6, 0, 1999}, + dictWord{136, 0, 969}, + dictWord{4, 10, 134}, + dictWord{133, 10, 372}, + dictWord{4, 0, 60}, + dictWord{7, 0, 941}, + dictWord{7, 0, 1800}, + dictWord{8, 0, 314}, + dictWord{ + 9, + 0, + 700, + }, + dictWord{139, 0, 487}, + dictWord{134, 0, 1144}, + dictWord{6, 11, 162}, + dictWord{7, 11, 1960}, + dictWord{136, 11, 831}, + dictWord{132, 11, 706}, + dictWord{135, 0, 1147}, + dictWord{138, 11, 426}, + dictWord{138, 11, 89}, + dictWord{7, 0, 1853}, + dictWord{138, 0, 437}, + dictWord{136, 0, 419}, + dictWord{ + 135, + 10, + 1634, + }, + dictWord{133, 0, 828}, + dictWord{5, 0, 806}, + dictWord{7, 0, 176}, + dictWord{7, 0, 178}, + dictWord{7, 0, 1240}, + dictWord{7, 0, 1976}, + dictWord{ + 132, + 10, + 644, + }, + dictWord{135, 11, 1877}, + dictWord{5, 11, 420}, + dictWord{135, 11, 1449}, + dictWord{4, 0, 51}, + dictWord{5, 0, 39}, + dictWord{6, 0, 4}, + dictWord{7, 0, 591}, + dictWord{7, 0, 849}, + dictWord{7, 0, 951}, + dictWord{7, 0, 1613}, + dictWord{7, 0, 1760}, + dictWord{7, 0, 1988}, + dictWord{9, 0, 434}, + dictWord{10, 0, 754}, + dictWord{ + 11, + 0, + 25, + }, + dictWord{139, 0, 37}, + dictWord{10, 11, 57}, + dictWord{138, 11, 277}, + dictWord{135, 10, 540}, + dictWord{132, 11, 204}, + dictWord{135, 0, 159}, + dictWord{139, 11, 231}, + dictWord{133, 0, 902}, + dictWord{7, 0, 928}, + dictWord{7, 11, 366}, + dictWord{9, 11, 287}, + dictWord{12, 11, 199}, + dictWord{12, 11, 556}, + dictWord{140, 11, 577}, + dictWord{6, 10, 623}, + dictWord{136, 10, 789}, + dictWord{4, 10, 908}, + dictWord{5, 10, 359}, + dictWord{5, 10, 508}, + dictWord{6, 10, 1723}, + dictWord{7, 10, 343}, + dictWord{7, 10, 1996}, + dictWord{135, 10, 2026}, + dictWord{134, 0, 270}, + dictWord{4, 10, 341}, + dictWord{135, 10, 480}, + dictWord{ + 5, + 11, + 356, + }, + dictWord{135, 11, 224}, + dictWord{11, 11, 588}, + dictWord{11, 11, 864}, + dictWord{11, 11, 968}, + dictWord{143, 11, 160}, + dictWord{132, 0, 556}, + dictWord{137, 0, 801}, + dictWord{132, 0, 416}, + dictWord{142, 0, 372}, + dictWord{5, 0, 152}, + dictWord{5, 0, 197}, + dictWord{7, 0, 340}, + dictWord{7, 0, 867}, + dictWord{ + 10, + 0, + 548, + }, + dictWord{10, 0, 581}, + dictWord{11, 0, 6}, + dictWord{12, 0, 3}, + dictWord{12, 0, 19}, + dictWord{14, 0, 110}, + dictWord{142, 0, 289}, + dictWord{139, 0, 369}, + dictWord{7, 11, 630}, + dictWord{9, 11, 567}, + dictWord{11, 11, 150}, + dictWord{11, 11, 444}, + dictWord{141, 11, 119}, + dictWord{134, 11, 539}, + dictWord{ + 7, + 10, + 1995, + }, + dictWord{8, 10, 299}, + dictWord{11, 10, 890}, + dictWord{140, 10, 674}, + dictWord{7, 0, 34}, + dictWord{7, 0, 190}, + dictWord{8, 0, 28}, + dictWord{8, 0, 141}, + dictWord{8, 0, 444}, + dictWord{8, 0, 811}, + dictWord{9, 0, 468}, + dictWord{11, 0, 334}, + dictWord{12, 0, 24}, + dictWord{12, 0, 386}, + dictWord{140, 0, 576}, + dictWord{ + 133, + 0, + 757, + }, + dictWord{7, 0, 1553}, + dictWord{136, 0, 898}, + dictWord{133, 0, 721}, + dictWord{136, 0, 1012}, + dictWord{4, 0, 789}, + dictWord{5, 0, 647}, + dictWord{ + 135, + 0, + 1102, + }, + dictWord{132, 0, 898}, + dictWord{10, 0, 183}, + dictWord{4, 10, 238}, + dictWord{5, 10, 503}, + dictWord{6, 10, 179}, + dictWord{7, 10, 2003}, + dictWord{ + 8, + 10, + 381, + }, + dictWord{8, 10, 473}, + dictWord{9, 10, 149}, + dictWord{10, 10, 788}, + dictWord{15, 10, 45}, + dictWord{15, 10, 86}, + dictWord{20, 10, 110}, + dictWord{ + 150, + 10, + 57, + }, + dictWord{9, 0, 136}, + dictWord{19, 0, 107}, + dictWord{4, 10, 121}, + dictWord{5, 10, 156}, + dictWord{5, 10, 349}, + dictWord{10, 10, 605}, + dictWord{ + 142, + 10, + 342, + }, + dictWord{4, 11, 235}, + dictWord{135, 11, 255}, + dictWord{4, 11, 194}, + dictWord{5, 11, 584}, + dictWord{6, 11, 384}, + dictWord{7, 11, 583}, + dictWord{ + 10, + 11, + 761, + }, + dictWord{11, 11, 760}, + dictWord{139, 11, 851}, + dictWord{6, 10, 80}, + dictWord{6, 10, 1694}, + dictWord{7, 10, 173}, + dictWord{7, 10, 1974}, + dictWord{ + 9, + 10, + 547, + }, + dictWord{10, 10, 730}, + dictWord{14, 10, 18}, + dictWord{150, 10, 39}, + dictWord{4, 10, 923}, + dictWord{134, 10, 1711}, + dictWord{5, 0, 277}, + dictWord{141, 0, 247}, + dictWord{132, 0, 435}, + dictWord{133, 11, 562}, + dictWord{134, 0, 1311}, + dictWord{5, 11, 191}, + dictWord{137, 11, 271}, + dictWord{ + 132, + 10, + 595, + }, + dictWord{7, 11, 1537}, + dictWord{14, 11, 96}, + dictWord{143, 11, 73}, + dictWord{5, 0, 437}, + dictWord{7, 0, 502}, + dictWord{7, 0, 519}, + dictWord{7, 0, 1122}, + dictWord{7, 0, 1751}, + dictWord{14, 0, 211}, + dictWord{6, 10, 459}, + dictWord{7, 10, 1753}, + dictWord{7, 10, 1805}, + dictWord{8, 10, 658}, + dictWord{9, 10, 1}, + dictWord{11, 10, 959}, + dictWord{141, 10, 446}, + dictWord{6, 0, 814}, + dictWord{4, 11, 470}, + dictWord{5, 11, 473}, + dictWord{6, 11, 153}, + dictWord{7, 11, 1503}, + dictWord{7, 11, 1923}, + dictWord{10, 11, 701}, + dictWord{11, 11, 132}, + dictWord{11, 11, 168}, + dictWord{11, 11, 227}, + dictWord{11, 11, 320}, + dictWord{ + 11, + 11, + 436, + }, + dictWord{11, 11, 525}, + dictWord{11, 11, 855}, + dictWord{12, 11, 41}, + dictWord{12, 11, 286}, + dictWord{13, 11, 103}, + dictWord{13, 11, 284}, + dictWord{ + 14, + 11, + 255, + }, + dictWord{14, 11, 262}, + dictWord{15, 11, 117}, + dictWord{143, 11, 127}, + dictWord{5, 0, 265}, + dictWord{6, 0, 212}, + dictWord{135, 0, 28}, + dictWord{ + 138, + 0, + 750, + }, + dictWord{133, 11, 327}, + dictWord{6, 11, 552}, + dictWord{7, 11, 1754}, + dictWord{137, 11, 604}, + dictWord{134, 0, 2012}, + dictWord{132, 0, 702}, + dictWord{5, 11, 80}, + dictWord{6, 11, 405}, + dictWord{7, 11, 403}, + dictWord{7, 11, 1502}, + dictWord{7, 11, 1626}, + dictWord{8, 11, 456}, + dictWord{9, 11, 487}, + dictWord{9, 11, 853}, + dictWord{9, 11, 889}, + dictWord{10, 11, 309}, + dictWord{11, 11, 721}, + dictWord{11, 11, 994}, + dictWord{12, 11, 430}, + dictWord{ + 141, + 11, + 165, + }, + dictWord{5, 0, 808}, + dictWord{135, 0, 2045}, + dictWord{5, 0, 166}, + dictWord{8, 0, 739}, + dictWord{140, 0, 511}, + dictWord{134, 10, 490}, + dictWord{ + 4, + 11, + 453, + }, + dictWord{5, 11, 887}, + dictWord{6, 11, 535}, + dictWord{8, 11, 6}, + dictWord{136, 11, 543}, + dictWord{4, 0, 119}, + dictWord{5, 0, 170}, + dictWord{5, 0, 447}, + dictWord{7, 0, 1708}, + dictWord{7, 0, 1889}, + dictWord{9, 0, 357}, + dictWord{9, 0, 719}, + dictWord{12, 0, 486}, + dictWord{140, 0, 596}, + dictWord{137, 0, 500}, + dictWord{ + 7, + 10, + 250, + }, + dictWord{136, 10, 507}, + dictWord{132, 10, 158}, + dictWord{6, 0, 809}, + dictWord{134, 0, 1500}, + dictWord{9, 0, 327}, + dictWord{11, 0, 350}, + dictWord{11, 0, 831}, + dictWord{13, 0, 352}, + dictWord{4, 10, 140}, + dictWord{7, 10, 362}, + dictWord{8, 10, 209}, + dictWord{9, 10, 10}, + dictWord{9, 10, 503}, + dictWord{ + 9, + 10, + 614, + }, + dictWord{10, 10, 689}, + dictWord{11, 10, 327}, + dictWord{11, 10, 725}, + dictWord{12, 10, 252}, + dictWord{12, 10, 583}, + dictWord{13, 10, 192}, + dictWord{14, 10, 269}, + dictWord{14, 10, 356}, + dictWord{148, 10, 50}, + dictWord{135, 11, 741}, + dictWord{4, 0, 450}, + dictWord{7, 0, 1158}, + dictWord{19, 10, 1}, + dictWord{19, 10, 26}, + dictWord{150, 10, 9}, + dictWord{6, 0, 597}, + dictWord{135, 0, 1318}, + dictWord{134, 0, 1602}, + dictWord{6, 10, 228}, + dictWord{7, 10, 1341}, + dictWord{9, 10, 408}, + dictWord{138, 10, 343}, + dictWord{7, 0, 1375}, + dictWord{7, 0, 1466}, + dictWord{138, 0, 331}, + dictWord{132, 0, 754}, + dictWord{ + 132, + 10, + 557, + }, + dictWord{5, 11, 101}, + dictWord{6, 11, 88}, + dictWord{6, 11, 543}, + dictWord{7, 11, 1677}, + dictWord{9, 11, 100}, + dictWord{10, 11, 677}, + dictWord{ + 14, + 11, + 169, + }, + dictWord{14, 11, 302}, + dictWord{14, 11, 313}, + dictWord{15, 11, 48}, + dictWord{143, 11, 84}, + dictWord{134, 0, 1368}, + dictWord{4, 11, 310}, + dictWord{ + 9, + 11, + 795, + }, + dictWord{10, 11, 733}, + dictWord{11, 11, 451}, + dictWord{12, 11, 249}, + dictWord{14, 11, 115}, + dictWord{14, 11, 286}, + dictWord{143, 11, 100}, + dictWord{132, 10, 548}, + dictWord{10, 0, 557}, + dictWord{7, 10, 197}, + dictWord{8, 10, 142}, + dictWord{8, 10, 325}, + dictWord{9, 10, 150}, + dictWord{9, 10, 596}, + dictWord{10, 10, 353}, + dictWord{11, 10, 74}, + dictWord{11, 10, 315}, + dictWord{12, 10, 662}, + dictWord{12, 10, 681}, + dictWord{14, 10, 423}, + dictWord{ + 143, + 10, + 141, + }, + dictWord{133, 11, 587}, + dictWord{5, 0, 850}, + dictWord{136, 0, 799}, + dictWord{10, 0, 908}, + dictWord{12, 0, 701}, + dictWord{12, 0, 757}, + dictWord{ + 142, + 0, + 466, + }, + dictWord{4, 0, 62}, + dictWord{5, 0, 275}, + dictWord{18, 0, 19}, + dictWord{6, 10, 399}, + dictWord{6, 10, 579}, + dictWord{7, 10, 692}, + dictWord{7, 10, 846}, + dictWord{ + 7, + 10, + 1015, + }, + dictWord{7, 10, 1799}, + dictWord{8, 10, 403}, + dictWord{9, 10, 394}, + dictWord{10, 10, 133}, + dictWord{12, 10, 4}, + dictWord{12, 10, 297}, + dictWord{12, 10, 452}, + dictWord{16, 10, 81}, + dictWord{18, 10, 25}, + dictWord{21, 10, 14}, + dictWord{22, 10, 12}, + dictWord{151, 10, 18}, + dictWord{12, 0, 459}, + dictWord{ + 7, + 10, + 1546, + }, + dictWord{11, 10, 299}, + dictWord{142, 10, 407}, + dictWord{132, 10, 177}, + dictWord{132, 11, 498}, + dictWord{7, 11, 217}, + dictWord{ + 8, + 11, + 140, + }, + dictWord{138, 11, 610}, + dictWord{5, 10, 411}, + dictWord{135, 10, 653}, + dictWord{134, 0, 1802}, + dictWord{7, 10, 439}, + dictWord{10, 10, 727}, + dictWord{11, 10, 260}, + dictWord{139, 10, 684}, + dictWord{133, 11, 905}, + dictWord{11, 11, 580}, + dictWord{142, 11, 201}, + dictWord{134, 0, 1397}, + dictWord{ + 5, + 10, + 208, + }, + dictWord{7, 10, 753}, + dictWord{135, 10, 1528}, + dictWord{7, 0, 238}, + dictWord{7, 0, 2033}, + dictWord{8, 0, 120}, + dictWord{8, 0, 188}, + dictWord{8, 0, 659}, + dictWord{9, 0, 598}, + dictWord{10, 0, 466}, + dictWord{12, 0, 342}, + dictWord{12, 0, 588}, + dictWord{13, 0, 503}, + dictWord{14, 0, 246}, + dictWord{143, 0, 92}, + dictWord{135, 11, 1041}, + dictWord{4, 11, 456}, + dictWord{7, 11, 105}, + dictWord{7, 11, 358}, + dictWord{7, 11, 1637}, + dictWord{8, 11, 643}, + dictWord{139, 11, 483}, + dictWord{6, 0, 1318}, + dictWord{134, 0, 1324}, + dictWord{4, 0, 201}, + dictWord{7, 0, 1744}, + dictWord{8, 0, 602}, + dictWord{11, 0, 247}, + dictWord{11, 0, 826}, + dictWord{17, 0, 65}, + dictWord{133, 10, 242}, + dictWord{8, 0, 164}, + dictWord{146, 0, 62}, + dictWord{133, 10, 953}, + dictWord{139, 10, 802}, + dictWord{133, 0, 615}, + dictWord{7, 11, 1566}, + dictWord{8, 11, 269}, + dictWord{9, 11, 212}, + dictWord{9, 11, 718}, + dictWord{14, 11, 15}, + dictWord{14, 11, 132}, + dictWord{142, 11, 227}, + dictWord{133, 10, 290}, + dictWord{132, 10, 380}, + dictWord{5, 10, 52}, + dictWord{7, 10, 277}, + dictWord{9, 10, 368}, + dictWord{139, 10, 791}, + dictWord{ + 135, + 0, + 1243, + }, + dictWord{133, 11, 539}, + dictWord{11, 11, 919}, + dictWord{141, 11, 409}, + dictWord{136, 0, 968}, + dictWord{133, 11, 470}, + dictWord{134, 0, 882}, + dictWord{132, 0, 907}, + dictWord{5, 0, 100}, + dictWord{10, 0, 329}, + dictWord{12, 0, 416}, + dictWord{149, 0, 29}, + dictWord{10, 10, 138}, + dictWord{139, 10, 476}, + dictWord{5, 10, 725}, + dictWord{5, 10, 727}, + dictWord{6, 11, 91}, + dictWord{7, 11, 435}, + dictWord{135, 10, 1811}, + dictWord{4, 11, 16}, + dictWord{5, 11, 316}, + dictWord{5, 11, 842}, + dictWord{6, 11, 370}, + dictWord{6, 11, 1778}, + dictWord{8, 11, 166}, + dictWord{11, 11, 812}, + dictWord{12, 11, 206}, + dictWord{12, 11, 351}, + dictWord{14, 11, 418}, + dictWord{16, 11, 15}, + dictWord{16, 11, 34}, + dictWord{18, 11, 3}, + dictWord{19, 11, 3}, + dictWord{19, 11, 7}, + dictWord{20, 11, 4}, + dictWord{ + 149, + 11, + 21, + }, + dictWord{132, 0, 176}, + dictWord{5, 0, 636}, + dictWord{5, 0, 998}, + dictWord{7, 0, 9}, + dictWord{7, 0, 1508}, + dictWord{8, 0, 26}, + dictWord{9, 0, 317}, + dictWord{ + 9, + 0, + 358, + }, + dictWord{10, 0, 210}, + dictWord{10, 0, 292}, + dictWord{10, 0, 533}, + dictWord{11, 0, 555}, + dictWord{12, 0, 526}, + dictWord{12, 0, 607}, + dictWord{ + 13, + 0, + 263, + }, + dictWord{13, 0, 459}, + dictWord{142, 0, 271}, + dictWord{6, 0, 256}, + dictWord{8, 0, 265}, + dictWord{4, 10, 38}, + dictWord{7, 10, 307}, + dictWord{7, 10, 999}, + dictWord{7, 10, 1481}, + dictWord{7, 10, 1732}, + dictWord{7, 10, 1738}, + dictWord{9, 10, 414}, + dictWord{11, 10, 316}, + dictWord{12, 10, 52}, + dictWord{13, 10, 420}, + dictWord{147, 10, 100}, + dictWord{135, 10, 1296}, + dictWord{4, 11, 611}, + dictWord{133, 11, 606}, + dictWord{4, 0, 643}, + dictWord{142, 11, 21}, + dictWord{ + 133, + 11, + 715, + }, + dictWord{133, 10, 723}, + dictWord{6, 0, 610}, + dictWord{135, 11, 597}, + dictWord{10, 0, 127}, + dictWord{141, 0, 27}, + dictWord{6, 0, 1995}, + dictWord{ + 6, + 0, + 2001, + }, + dictWord{8, 0, 119}, + dictWord{136, 0, 973}, + dictWord{4, 11, 149}, + dictWord{138, 11, 368}, + dictWord{12, 0, 522}, + dictWord{4, 11, 154}, + dictWord{ + 5, + 10, + 109, + }, + dictWord{6, 10, 1784}, + dictWord{7, 11, 1134}, + dictWord{7, 10, 1895}, + dictWord{8, 11, 105}, + dictWord{12, 10, 296}, + dictWord{140, 10, 302}, + dictWord{4, 11, 31}, + dictWord{6, 11, 429}, + dictWord{7, 11, 962}, + dictWord{9, 11, 458}, + dictWord{139, 11, 691}, + dictWord{10, 0, 553}, + dictWord{11, 0, 876}, + dictWord{13, 0, 193}, + dictWord{13, 0, 423}, + dictWord{14, 0, 166}, + dictWord{19, 0, 84}, + dictWord{4, 11, 312}, + dictWord{5, 10, 216}, + dictWord{7, 10, 1879}, + dictWord{ + 9, + 10, + 141, + }, + dictWord{9, 10, 270}, + dictWord{9, 10, 679}, + dictWord{10, 10, 159}, + dictWord{11, 10, 197}, + dictWord{12, 10, 538}, + dictWord{12, 10, 559}, + dictWord{14, 10, 144}, + dictWord{14, 10, 167}, + dictWord{143, 10, 67}, + dictWord{134, 0, 1582}, + dictWord{7, 0, 1578}, + dictWord{135, 11, 1578}, + dictWord{ + 137, + 10, + 81, + }, + dictWord{132, 11, 236}, + dictWord{134, 10, 391}, + dictWord{134, 0, 795}, + dictWord{7, 10, 322}, + dictWord{136, 10, 249}, + dictWord{5, 11, 836}, + dictWord{ + 5, + 11, + 857, + }, + dictWord{6, 11, 1680}, + dictWord{7, 11, 59}, + dictWord{147, 11, 53}, + dictWord{135, 0, 432}, + dictWord{10, 11, 68}, + dictWord{139, 11, 494}, + dictWord{4, 11, 81}, + dictWord{139, 11, 867}, + dictWord{7, 0, 126}, + dictWord{136, 0, 84}, + dictWord{142, 11, 280}, + dictWord{5, 11, 282}, + dictWord{8, 11, 650}, + dictWord{ + 9, + 11, + 295, + }, + dictWord{9, 11, 907}, + dictWord{138, 11, 443}, + dictWord{136, 0, 790}, + dictWord{5, 10, 632}, + dictWord{138, 10, 526}, + dictWord{6, 0, 64}, + dictWord{12, 0, 377}, + dictWord{13, 0, 309}, + dictWord{14, 0, 141}, + dictWord{14, 0, 429}, + dictWord{14, 11, 141}, + dictWord{142, 11, 429}, + dictWord{134, 0, 1529}, + dictWord{6, 0, 321}, + dictWord{7, 0, 1857}, + dictWord{9, 0, 530}, + dictWord{19, 0, 99}, + dictWord{7, 10, 948}, + dictWord{7, 10, 1042}, + dictWord{8, 10, 235}, + dictWord{ + 8, + 10, + 461, + }, + dictWord{9, 10, 453}, + dictWord{10, 10, 354}, + dictWord{145, 10, 77}, + dictWord{7, 0, 1104}, + dictWord{11, 0, 269}, + dictWord{11, 0, 539}, + dictWord{ + 11, + 0, + 627, + }, + dictWord{11, 0, 706}, + dictWord{11, 0, 975}, + dictWord{12, 0, 248}, + dictWord{12, 0, 434}, + dictWord{12, 0, 600}, + dictWord{12, 0, 622}, + dictWord{ + 13, + 0, + 297, + }, + dictWord{13, 0, 485}, + dictWord{14, 0, 69}, + dictWord{14, 0, 409}, + dictWord{143, 0, 108}, + dictWord{4, 10, 362}, + dictWord{7, 10, 52}, + dictWord{7, 10, 303}, + dictWord{10, 11, 70}, + dictWord{12, 11, 26}, + dictWord{14, 11, 17}, + dictWord{14, 11, 178}, + dictWord{15, 11, 34}, + dictWord{149, 11, 12}, + dictWord{11, 0, 977}, + dictWord{141, 0, 507}, + dictWord{9, 0, 34}, + dictWord{139, 0, 484}, + dictWord{5, 10, 196}, + dictWord{6, 10, 486}, + dictWord{7, 10, 212}, + dictWord{8, 10, 309}, + dictWord{136, 10, 346}, + dictWord{6, 0, 1700}, + dictWord{7, 0, 26}, + dictWord{7, 0, 293}, + dictWord{7, 0, 382}, + dictWord{7, 0, 1026}, + dictWord{7, 0, 1087}, + dictWord{ + 7, + 0, + 2027, + }, + dictWord{8, 0, 24}, + dictWord{8, 0, 114}, + dictWord{8, 0, 252}, + dictWord{8, 0, 727}, + dictWord{8, 0, 729}, + dictWord{9, 0, 30}, + dictWord{9, 0, 199}, + dictWord{ + 9, + 0, + 231, + }, + dictWord{9, 0, 251}, + dictWord{9, 0, 334}, + dictWord{9, 0, 361}, + dictWord{9, 0, 712}, + dictWord{10, 0, 55}, + dictWord{10, 0, 60}, + dictWord{10, 0, 232}, + dictWord{ + 10, + 0, + 332, + }, + dictWord{10, 0, 384}, + dictWord{10, 0, 396}, + dictWord{10, 0, 504}, + dictWord{10, 0, 542}, + dictWord{10, 0, 652}, + dictWord{11, 0, 20}, + dictWord{11, 0, 48}, + dictWord{11, 0, 207}, + dictWord{11, 0, 291}, + dictWord{11, 0, 298}, + dictWord{11, 0, 342}, + dictWord{11, 0, 365}, + dictWord{11, 0, 394}, + dictWord{11, 0, 620}, + dictWord{11, 0, 705}, + dictWord{11, 0, 1017}, + dictWord{12, 0, 123}, + dictWord{12, 0, 340}, + dictWord{12, 0, 406}, + dictWord{12, 0, 643}, + dictWord{13, 0, 61}, + dictWord{ + 13, + 0, + 269, + }, + dictWord{13, 0, 311}, + dictWord{13, 0, 319}, + dictWord{13, 0, 486}, + dictWord{14, 0, 234}, + dictWord{15, 0, 62}, + dictWord{15, 0, 85}, + dictWord{16, 0, 71}, + dictWord{18, 0, 119}, + dictWord{20, 0, 105}, + dictWord{135, 10, 1912}, + dictWord{4, 11, 71}, + dictWord{5, 11, 376}, + dictWord{7, 11, 119}, + dictWord{138, 11, 665}, + dictWord{10, 0, 918}, + dictWord{10, 0, 926}, + dictWord{4, 10, 686}, + dictWord{136, 11, 55}, + dictWord{138, 10, 625}, + dictWord{136, 10, 706}, + dictWord{ + 132, + 11, + 479, + }, + dictWord{4, 10, 30}, + dictWord{133, 10, 43}, + dictWord{6, 0, 379}, + dictWord{7, 0, 270}, + dictWord{8, 0, 176}, + dictWord{8, 0, 183}, + dictWord{9, 0, 432}, + dictWord{ + 9, + 0, + 661, + }, + dictWord{12, 0, 247}, + dictWord{12, 0, 617}, + dictWord{18, 0, 125}, + dictWord{7, 11, 607}, + dictWord{8, 11, 99}, + dictWord{152, 11, 4}, + dictWord{ + 5, + 0, + 792, + }, + dictWord{133, 0, 900}, + dictWord{4, 11, 612}, + dictWord{133, 11, 561}, + dictWord{4, 11, 41}, + dictWord{4, 10, 220}, + dictWord{5, 11, 74}, + dictWord{ + 7, + 10, + 1535, + }, + dictWord{7, 11, 1627}, + dictWord{11, 11, 871}, + dictWord{140, 11, 619}, + dictWord{135, 0, 1920}, + dictWord{7, 11, 94}, + dictWord{11, 11, 329}, + dictWord{11, 11, 965}, + dictWord{12, 11, 241}, + dictWord{14, 11, 354}, + dictWord{15, 11, 22}, + dictWord{148, 11, 63}, + dictWord{9, 11, 209}, + dictWord{137, 11, 300}, + dictWord{134, 0, 771}, + dictWord{135, 0, 1979}, + dictWord{4, 0, 901}, + dictWord{133, 0, 776}, + dictWord{142, 0, 254}, + dictWord{133, 11, 98}, + dictWord{ + 9, + 11, + 16, + }, + dictWord{141, 11, 386}, + dictWord{133, 11, 984}, + dictWord{4, 11, 182}, + dictWord{6, 11, 205}, + dictWord{135, 11, 220}, + dictWord{7, 10, 1725}, + dictWord{ + 7, + 10, + 1774, + }, + dictWord{138, 10, 393}, + dictWord{5, 10, 263}, + dictWord{134, 10, 414}, + dictWord{4, 11, 42}, + dictWord{9, 11, 205}, + dictWord{9, 11, 786}, + dictWord{138, 11, 659}, + dictWord{14, 0, 140}, + dictWord{148, 0, 41}, + dictWord{8, 0, 440}, + dictWord{10, 0, 359}, + dictWord{6, 10, 178}, + dictWord{6, 11, 289}, + dictWord{ + 6, + 10, + 1750, + }, + dictWord{7, 11, 1670}, + dictWord{9, 10, 690}, + dictWord{10, 10, 155}, + dictWord{10, 10, 373}, + dictWord{11, 10, 698}, + dictWord{12, 11, 57}, + dictWord{13, 10, 155}, + dictWord{20, 10, 93}, + dictWord{151, 11, 4}, + dictWord{4, 0, 37}, + dictWord{5, 0, 334}, + dictWord{7, 0, 1253}, + dictWord{151, 11, 25}, + dictWord{ + 4, + 0, + 508, + }, + dictWord{4, 11, 635}, + dictWord{5, 10, 97}, + dictWord{137, 10, 393}, + dictWord{139, 11, 533}, + dictWord{4, 0, 640}, + dictWord{133, 0, 513}, + dictWord{ + 134, + 10, + 1639, + }, + dictWord{132, 11, 371}, + dictWord{4, 11, 272}, + dictWord{7, 11, 836}, + dictWord{7, 11, 1651}, + dictWord{145, 11, 89}, + dictWord{5, 11, 825}, + dictWord{6, 11, 444}, + dictWord{6, 11, 1640}, + dictWord{136, 11, 308}, + dictWord{4, 10, 191}, + dictWord{7, 10, 934}, + dictWord{8, 10, 647}, + dictWord{145, 10, 97}, + dictWord{12, 0, 246}, + dictWord{15, 0, 162}, + dictWord{19, 0, 64}, + dictWord{20, 0, 8}, + dictWord{20, 0, 95}, + dictWord{22, 0, 24}, + dictWord{152, 0, 17}, + dictWord{4, 0, 533}, + dictWord{5, 10, 165}, + dictWord{9, 10, 346}, + dictWord{138, 10, 655}, + dictWord{5, 11, 737}, + dictWord{139, 10, 885}, + dictWord{133, 10, 877}, + dictWord{ + 8, + 10, + 128, + }, + dictWord{139, 10, 179}, + dictWord{137, 11, 307}, + dictWord{140, 0, 752}, + dictWord{133, 0, 920}, + dictWord{135, 0, 1048}, + dictWord{5, 0, 153}, + dictWord{ + 6, + 0, + 580, + }, + dictWord{6, 10, 1663}, + dictWord{7, 10, 132}, + dictWord{7, 10, 1154}, + dictWord{7, 10, 1415}, + dictWord{7, 10, 1507}, + dictWord{12, 10, 493}, + dictWord{15, 10, 105}, + dictWord{151, 10, 15}, + dictWord{5, 10, 459}, + dictWord{7, 10, 1073}, + dictWord{8, 10, 241}, + dictWord{136, 10, 334}, + dictWord{138, 0, 391}, + dictWord{135, 0, 1952}, + dictWord{133, 11, 525}, + dictWord{8, 11, 641}, + dictWord{11, 11, 388}, + dictWord{140, 11, 580}, + dictWord{142, 0, 126}, + dictWord{ + 134, + 0, + 640, + }, + dictWord{132, 0, 483}, + dictWord{7, 0, 1616}, + dictWord{9, 0, 69}, + dictWord{6, 10, 324}, + dictWord{6, 10, 520}, + dictWord{7, 10, 338}, + dictWord{ + 7, + 10, + 1729, + }, + dictWord{8, 10, 228}, + dictWord{139, 10, 750}, + dictWord{5, 11, 493}, + dictWord{134, 11, 528}, + dictWord{135, 0, 734}, + dictWord{4, 11, 174}, + dictWord{135, 11, 911}, + dictWord{138, 0, 480}, + dictWord{9, 0, 495}, + dictWord{146, 0, 104}, + dictWord{135, 10, 705}, + dictWord{9, 0, 472}, + dictWord{4, 10, 73}, + dictWord{6, 10, 612}, + dictWord{7, 10, 927}, + dictWord{7, 10, 1330}, + dictWord{7, 10, 1822}, + dictWord{8, 10, 217}, + dictWord{9, 10, 765}, + dictWord{9, 10, 766}, + dictWord{10, 10, 408}, + dictWord{11, 10, 51}, + dictWord{11, 10, 793}, + dictWord{12, 10, 266}, + dictWord{15, 10, 158}, + dictWord{20, 10, 89}, + dictWord{150, 10, 32}, + dictWord{7, 11, 548}, + dictWord{137, 11, 58}, + dictWord{4, 11, 32}, + dictWord{5, 11, 215}, + dictWord{6, 11, 269}, + dictWord{7, 11, 1782}, + dictWord{7, 11, 1892}, + dictWord{10, 11, 16}, + dictWord{11, 11, 822}, + dictWord{11, 11, 954}, + dictWord{141, 11, 481}, + dictWord{132, 0, 874}, + dictWord{9, 0, 229}, + dictWord{5, 10, 389}, + dictWord{136, 10, 636}, + dictWord{7, 11, 1749}, + dictWord{136, 11, 477}, + dictWord{134, 0, 948}, + dictWord{5, 11, 308}, + dictWord{135, 11, 1088}, + dictWord{ + 4, + 0, + 748, + }, + dictWord{139, 0, 1009}, + dictWord{136, 10, 21}, + dictWord{6, 0, 555}, + dictWord{135, 0, 485}, + dictWord{5, 11, 126}, + dictWord{8, 11, 297}, + dictWord{ + 9, + 11, + 366, + }, + dictWord{9, 11, 445}, + dictWord{12, 11, 53}, + dictWord{12, 11, 374}, + dictWord{141, 11, 492}, + dictWord{7, 11, 1551}, + dictWord{139, 11, 361}, + dictWord{136, 0, 193}, + dictWord{136, 0, 472}, + dictWord{8, 0, 653}, + dictWord{13, 0, 93}, + dictWord{147, 0, 14}, + dictWord{132, 0, 984}, + dictWord{132, 11, 175}, + dictWord{5, 0, 172}, + dictWord{6, 0, 1971}, + dictWord{132, 11, 685}, + dictWord{149, 11, 8}, + dictWord{133, 11, 797}, + dictWord{13, 0, 83}, + dictWord{5, 10, 189}, + dictWord{ + 7, + 10, + 442, + }, + dictWord{7, 10, 443}, + dictWord{8, 10, 281}, + dictWord{12, 10, 174}, + dictWord{141, 10, 261}, + dictWord{134, 0, 1568}, + dictWord{133, 11, 565}, + dictWord{139, 0, 384}, + dictWord{133, 0, 260}, + dictWord{7, 0, 758}, + dictWord{7, 0, 880}, + dictWord{7, 0, 1359}, + dictWord{9, 0, 164}, + dictWord{9, 0, 167}, + dictWord{ + 10, + 0, + 156, + }, + dictWord{10, 0, 588}, + dictWord{12, 0, 101}, + dictWord{14, 0, 48}, + dictWord{15, 0, 70}, + dictWord{6, 10, 2}, + dictWord{7, 10, 1262}, + dictWord{ + 7, + 10, + 1737, + }, + dictWord{8, 10, 22}, + dictWord{8, 10, 270}, + dictWord{8, 10, 612}, + dictWord{9, 10, 312}, + dictWord{9, 10, 436}, + dictWord{10, 10, 311}, + dictWord{ + 10, + 10, + 623, + }, + dictWord{11, 10, 72}, + dictWord{11, 10, 330}, + dictWord{11, 10, 455}, + dictWord{12, 10, 321}, + dictWord{12, 10, 504}, + dictWord{12, 10, 530}, + dictWord{ + 12, + 10, + 543, + }, + dictWord{13, 10, 17}, + dictWord{13, 10, 156}, + dictWord{13, 10, 334}, + dictWord{17, 10, 60}, + dictWord{148, 10, 64}, + dictWord{4, 11, 252}, + dictWord{ + 7, + 11, + 1068, + }, + dictWord{10, 11, 434}, + dictWord{11, 11, 228}, + dictWord{11, 11, 426}, + dictWord{13, 11, 231}, + dictWord{18, 11, 106}, + dictWord{148, 11, 87}, + dictWord{7, 10, 354}, + dictWord{10, 10, 410}, + dictWord{139, 10, 815}, + dictWord{6, 0, 367}, + dictWord{7, 10, 670}, + dictWord{7, 10, 1327}, + dictWord{8, 10, 411}, + dictWord{8, 10, 435}, + dictWord{9, 10, 653}, + dictWord{9, 10, 740}, + dictWord{10, 10, 385}, + dictWord{11, 10, 222}, + dictWord{11, 10, 324}, + dictWord{11, 10, 829}, + dictWord{140, 10, 611}, + dictWord{7, 0, 1174}, + dictWord{6, 10, 166}, + dictWord{135, 10, 374}, + dictWord{146, 0, 121}, + dictWord{132, 0, 828}, + dictWord{ + 5, + 11, + 231, + }, + dictWord{138, 11, 509}, + dictWord{7, 11, 601}, + dictWord{9, 11, 277}, + dictWord{9, 11, 674}, + dictWord{10, 11, 178}, + dictWord{10, 11, 257}, + dictWord{ + 10, + 11, + 418, + }, + dictWord{11, 11, 531}, + dictWord{11, 11, 544}, + dictWord{11, 11, 585}, + dictWord{12, 11, 113}, + dictWord{12, 11, 475}, + dictWord{13, 11, 99}, + dictWord{142, 11, 428}, + dictWord{134, 0, 1541}, + dictWord{135, 11, 1779}, + dictWord{5, 0, 343}, + dictWord{134, 10, 398}, + dictWord{135, 10, 50}, + dictWord{ + 135, + 11, + 1683, + }, + dictWord{4, 0, 440}, + dictWord{7, 0, 57}, + dictWord{8, 0, 167}, + dictWord{8, 0, 375}, + dictWord{9, 0, 82}, + dictWord{9, 0, 561}, + dictWord{9, 0, 744}, + dictWord{ + 10, + 0, + 620, + }, + dictWord{137, 11, 744}, + dictWord{134, 0, 926}, + dictWord{6, 10, 517}, + dictWord{7, 10, 1159}, + dictWord{10, 10, 621}, + dictWord{139, 10, 192}, + dictWord{137, 0, 827}, + dictWord{8, 0, 194}, + dictWord{136, 0, 756}, + dictWord{10, 10, 223}, + dictWord{139, 10, 645}, + dictWord{7, 10, 64}, + dictWord{ + 136, + 10, + 245, + }, + dictWord{4, 11, 399}, + dictWord{5, 11, 119}, + dictWord{5, 11, 494}, + dictWord{7, 11, 751}, + dictWord{137, 11, 556}, + dictWord{132, 0, 808}, + dictWord{ + 135, + 0, + 22, + }, + dictWord{7, 10, 1763}, + dictWord{140, 10, 310}, + dictWord{5, 0, 639}, + dictWord{7, 0, 1249}, + dictWord{11, 0, 896}, + dictWord{134, 11, 584}, + dictWord{ + 134, + 0, + 1614, + }, + dictWord{135, 0, 860}, + dictWord{135, 11, 1121}, + dictWord{5, 10, 129}, + dictWord{6, 10, 61}, + dictWord{135, 10, 947}, + dictWord{4, 0, 102}, + dictWord{ + 7, + 0, + 815, + }, + dictWord{7, 0, 1699}, + dictWord{139, 0, 964}, + dictWord{13, 10, 505}, + dictWord{141, 10, 506}, + dictWord{139, 10, 1000}, + dictWord{ + 132, + 11, + 679, + }, + dictWord{132, 0, 899}, + dictWord{132, 0, 569}, + dictWord{5, 11, 694}, + dictWord{137, 11, 714}, + dictWord{136, 0, 795}, + dictWord{6, 0, 2045}, + dictWord{ + 139, + 11, + 7, + }, + dictWord{6, 0, 52}, + dictWord{9, 0, 104}, + dictWord{9, 0, 559}, + dictWord{12, 0, 308}, + dictWord{147, 0, 87}, + dictWord{4, 0, 301}, + dictWord{132, 0, 604}, + dictWord{133, 10, 637}, + dictWord{136, 0, 779}, + dictWord{5, 11, 143}, + dictWord{5, 11, 769}, + dictWord{6, 11, 1760}, + dictWord{7, 11, 682}, + dictWord{7, 11, 1992}, + dictWord{136, 11, 736}, + dictWord{137, 10, 590}, + dictWord{147, 0, 32}, + dictWord{137, 11, 527}, + dictWord{5, 10, 280}, + dictWord{135, 10, 1226}, + dictWord{134, 0, 494}, + dictWord{6, 0, 677}, + dictWord{6, 0, 682}, + dictWord{134, 0, 1044}, + dictWord{133, 10, 281}, + dictWord{135, 10, 1064}, + dictWord{7, 0, 508}, + dictWord{133, 11, 860}, + dictWord{6, 11, 422}, + dictWord{7, 11, 0}, + dictWord{7, 11, 1544}, + dictWord{9, 11, 577}, + dictWord{11, 11, 990}, + dictWord{12, 11, 141}, + dictWord{12, 11, 453}, + dictWord{13, 11, 47}, + dictWord{141, 11, 266}, + dictWord{134, 0, 1014}, + dictWord{5, 11, 515}, + dictWord{137, 11, 131}, + dictWord{ + 134, + 0, + 957, + }, + dictWord{132, 11, 646}, + dictWord{6, 0, 310}, + dictWord{7, 0, 1849}, + dictWord{8, 0, 72}, + dictWord{8, 0, 272}, + dictWord{8, 0, 431}, + dictWord{9, 0, 12}, + dictWord{ + 9, + 0, + 376, + }, + dictWord{10, 0, 563}, + dictWord{10, 0, 630}, + dictWord{10, 0, 796}, + dictWord{10, 0, 810}, + dictWord{11, 0, 367}, + dictWord{11, 0, 599}, + dictWord{ + 11, + 0, + 686, + }, + dictWord{140, 0, 672}, + dictWord{7, 0, 570}, + dictWord{4, 11, 396}, + dictWord{7, 10, 120}, + dictWord{7, 11, 728}, + dictWord{8, 10, 489}, + dictWord{9, 11, 117}, + dictWord{9, 10, 319}, + dictWord{10, 10, 820}, + dictWord{11, 10, 1004}, + dictWord{12, 10, 379}, + dictWord{12, 10, 679}, + dictWord{13, 10, 117}, + dictWord{ + 13, + 11, + 202, + }, + dictWord{13, 10, 412}, + dictWord{14, 10, 25}, + dictWord{15, 10, 52}, + dictWord{15, 10, 161}, + dictWord{16, 10, 47}, + dictWord{20, 11, 51}, + dictWord{ + 149, + 10, + 2, + }, + dictWord{6, 11, 121}, + dictWord{6, 11, 124}, + dictWord{6, 11, 357}, + dictWord{7, 11, 1138}, + dictWord{7, 11, 1295}, + dictWord{8, 11, 162}, + dictWord{ + 139, + 11, + 655, + }, + dictWord{8, 0, 449}, + dictWord{4, 10, 937}, + dictWord{5, 10, 801}, + dictWord{136, 11, 449}, + dictWord{139, 11, 958}, + dictWord{6, 0, 181}, + dictWord{ + 7, + 0, + 537, + }, + dictWord{8, 0, 64}, + dictWord{9, 0, 127}, + dictWord{10, 0, 496}, + dictWord{12, 0, 510}, + dictWord{141, 0, 384}, + dictWord{138, 11, 253}, + dictWord{4, 0, 244}, + dictWord{135, 0, 233}, + dictWord{133, 11, 237}, + dictWord{132, 10, 365}, + dictWord{6, 0, 1650}, + dictWord{10, 0, 702}, + dictWord{139, 0, 245}, + dictWord{ + 5, + 10, + 7, + }, + dictWord{139, 10, 774}, + dictWord{13, 0, 463}, + dictWord{20, 0, 49}, + dictWord{13, 11, 463}, + dictWord{148, 11, 49}, + dictWord{4, 10, 734}, + dictWord{ + 5, + 10, + 662, + }, + dictWord{134, 10, 430}, + dictWord{4, 10, 746}, + dictWord{135, 10, 1090}, + dictWord{5, 10, 360}, + dictWord{136, 10, 237}, + dictWord{137, 0, 338}, + dictWord{143, 11, 10}, + dictWord{7, 11, 571}, + dictWord{138, 11, 366}, + dictWord{134, 0, 1279}, + dictWord{9, 11, 513}, + dictWord{10, 11, 22}, + dictWord{10, 11, 39}, + dictWord{12, 11, 122}, + dictWord{140, 11, 187}, + dictWord{133, 0, 896}, + dictWord{146, 0, 178}, + dictWord{134, 0, 695}, + dictWord{137, 0, 808}, + dictWord{ + 134, + 11, + 587, + }, + dictWord{7, 11, 107}, + dictWord{7, 11, 838}, + dictWord{8, 11, 550}, + dictWord{138, 11, 401}, + dictWord{7, 0, 1117}, + dictWord{136, 0, 539}, + dictWord{ + 4, + 10, + 277, + }, + dictWord{5, 10, 608}, + dictWord{6, 10, 493}, + dictWord{7, 10, 457}, + dictWord{140, 10, 384}, + dictWord{133, 11, 768}, + dictWord{12, 0, 257}, + dictWord{ + 7, + 10, + 27, + }, + dictWord{135, 10, 316}, + dictWord{140, 0, 1003}, + dictWord{4, 0, 207}, + dictWord{5, 0, 586}, + dictWord{5, 0, 676}, + dictWord{6, 0, 448}, + dictWord{ + 8, + 0, + 244, + }, + dictWord{11, 0, 1}, + dictWord{13, 0, 3}, + dictWord{16, 0, 54}, + dictWord{17, 0, 4}, + dictWord{18, 0, 13}, + dictWord{133, 10, 552}, + dictWord{4, 10, 401}, + dictWord{ + 137, + 10, + 264, + }, + dictWord{5, 0, 516}, + dictWord{7, 0, 1883}, + dictWord{135, 11, 1883}, + dictWord{12, 0, 960}, + dictWord{132, 11, 894}, + dictWord{5, 0, 4}, + dictWord{ + 5, + 0, + 810, + }, + dictWord{6, 0, 13}, + dictWord{6, 0, 538}, + dictWord{6, 0, 1690}, + dictWord{6, 0, 1726}, + dictWord{7, 0, 499}, + dictWord{7, 0, 1819}, + dictWord{8, 0, 148}, + dictWord{ + 8, + 0, + 696, + }, + dictWord{8, 0, 791}, + dictWord{12, 0, 125}, + dictWord{143, 0, 9}, + dictWord{135, 0, 1268}, + dictWord{11, 0, 30}, + dictWord{14, 0, 315}, + dictWord{ + 9, + 10, + 543, + }, + dictWord{10, 10, 524}, + dictWord{12, 10, 524}, + dictWord{16, 10, 18}, + dictWord{20, 10, 26}, + dictWord{148, 10, 65}, + dictWord{6, 0, 748}, + dictWord{ + 4, + 10, + 205, + }, + dictWord{5, 10, 623}, + dictWord{7, 10, 104}, + dictWord{136, 10, 519}, + dictWord{11, 0, 542}, + dictWord{139, 0, 852}, + dictWord{140, 0, 6}, + dictWord{ + 132, + 0, + 848, + }, + dictWord{7, 0, 1385}, + dictWord{11, 0, 582}, + dictWord{11, 0, 650}, + dictWord{11, 0, 901}, + dictWord{11, 0, 949}, + dictWord{12, 0, 232}, + dictWord{12, 0, 236}, + dictWord{13, 0, 413}, + dictWord{13, 0, 501}, + dictWord{18, 0, 116}, + dictWord{7, 10, 579}, + dictWord{9, 10, 41}, + dictWord{9, 10, 244}, + dictWord{9, 10, 669}, + dictWord{10, 10, 5}, + dictWord{11, 10, 861}, + dictWord{11, 10, 951}, + dictWord{139, 10, 980}, + dictWord{4, 0, 945}, + dictWord{6, 0, 1811}, + dictWord{6, 0, 1845}, + dictWord{ + 6, + 0, + 1853, + }, + dictWord{6, 0, 1858}, + dictWord{8, 0, 862}, + dictWord{12, 0, 782}, + dictWord{12, 0, 788}, + dictWord{18, 0, 160}, + dictWord{148, 0, 117}, + dictWord{ + 132, + 10, + 717, + }, + dictWord{4, 0, 925}, + dictWord{5, 0, 803}, + dictWord{8, 0, 698}, + dictWord{138, 0, 828}, + dictWord{134, 0, 1416}, + dictWord{132, 0, 610}, + dictWord{ + 139, + 0, + 992, + }, + dictWord{6, 0, 878}, + dictWord{134, 0, 1477}, + dictWord{135, 0, 1847}, + dictWord{138, 11, 531}, + dictWord{137, 11, 539}, + dictWord{134, 11, 272}, + dictWord{133, 0, 383}, + dictWord{134, 0, 1404}, + dictWord{132, 10, 489}, + dictWord{4, 11, 9}, + dictWord{5, 11, 128}, + dictWord{7, 11, 368}, + dictWord{ + 11, + 11, + 480, + }, + dictWord{148, 11, 3}, + dictWord{136, 0, 986}, + dictWord{9, 0, 660}, + dictWord{138, 0, 347}, + dictWord{135, 10, 892}, + dictWord{136, 11, 682}, + dictWord{ + 7, + 0, + 572, + }, + dictWord{9, 0, 592}, + dictWord{11, 0, 680}, + dictWord{12, 0, 356}, + dictWord{140, 0, 550}, + dictWord{7, 0, 1411}, + dictWord{138, 11, 527}, + dictWord{ + 4, + 11, + 2, + }, + dictWord{7, 11, 545}, + dictWord{135, 11, 894}, + dictWord{137, 10, 473}, + dictWord{11, 0, 64}, + dictWord{7, 11, 481}, + dictWord{7, 10, 819}, + dictWord{9, 10, 26}, + dictWord{9, 10, 392}, + dictWord{9, 11, 792}, + dictWord{10, 10, 152}, + dictWord{10, 10, 226}, + dictWord{12, 10, 276}, + dictWord{12, 10, 426}, + dictWord{ + 12, + 10, + 589, + }, + dictWord{13, 10, 460}, + dictWord{15, 10, 97}, + dictWord{19, 10, 48}, + dictWord{148, 10, 104}, + dictWord{135, 10, 51}, + dictWord{136, 11, 445}, + dictWord{136, 11, 646}, + dictWord{135, 0, 606}, + dictWord{132, 10, 674}, + dictWord{6, 0, 1829}, + dictWord{134, 0, 1830}, + dictWord{132, 10, 770}, + dictWord{ + 5, + 10, + 79, + }, + dictWord{7, 10, 1027}, + dictWord{7, 10, 1477}, + dictWord{139, 10, 52}, + dictWord{5, 11, 530}, + dictWord{142, 11, 113}, + dictWord{134, 10, 1666}, + dictWord{ + 7, + 0, + 748, + }, + dictWord{139, 0, 700}, + dictWord{134, 10, 195}, + dictWord{133, 10, 789}, + dictWord{9, 0, 87}, + dictWord{10, 0, 365}, + dictWord{4, 10, 251}, + dictWord{ + 4, + 10, + 688, + }, + dictWord{7, 10, 513}, + dictWord{135, 10, 1284}, + dictWord{136, 11, 111}, + dictWord{133, 0, 127}, + dictWord{6, 0, 198}, + dictWord{140, 0, 83}, + dictWord{133, 11, 556}, + dictWord{133, 10, 889}, + dictWord{4, 10, 160}, + dictWord{5, 10, 330}, + dictWord{7, 10, 1434}, + dictWord{136, 10, 174}, + dictWord{5, 0, 276}, + dictWord{6, 0, 55}, + dictWord{7, 0, 1369}, + dictWord{138, 0, 864}, + dictWord{8, 11, 16}, + dictWord{140, 11, 568}, + dictWord{6, 0, 1752}, + dictWord{136, 0, 726}, + dictWord{135, 0, 1066}, + dictWord{133, 0, 764}, + dictWord{6, 11, 186}, + dictWord{137, 11, 426}, + dictWord{11, 0, 683}, + dictWord{139, 11, 683}, + dictWord{ + 6, + 0, + 309, + }, + dictWord{7, 0, 331}, + dictWord{138, 0, 550}, + dictWord{133, 10, 374}, + dictWord{6, 0, 1212}, + dictWord{6, 0, 1852}, + dictWord{7, 0, 1062}, + dictWord{ + 8, + 0, + 874, + }, + dictWord{8, 0, 882}, + dictWord{138, 0, 936}, + dictWord{132, 11, 585}, + dictWord{134, 0, 1364}, + dictWord{7, 0, 986}, + dictWord{133, 10, 731}, + dictWord{ + 6, + 0, + 723, + }, + dictWord{6, 0, 1408}, + dictWord{138, 0, 381}, + dictWord{135, 0, 1573}, + dictWord{134, 0, 1025}, + dictWord{4, 10, 626}, + dictWord{5, 10, 642}, + dictWord{ + 6, + 10, + 425, + }, + dictWord{10, 10, 202}, + dictWord{139, 10, 141}, + dictWord{4, 11, 93}, + dictWord{5, 11, 252}, + dictWord{6, 11, 229}, + dictWord{7, 11, 291}, + dictWord{ + 9, + 11, + 550, + }, + dictWord{139, 11, 644}, + dictWord{137, 11, 749}, + dictWord{137, 11, 162}, + dictWord{132, 11, 381}, + dictWord{135, 0, 1559}, + dictWord{ + 6, + 0, + 194, + }, + dictWord{7, 0, 133}, + dictWord{10, 0, 493}, + dictWord{10, 0, 570}, + dictWord{139, 0, 664}, + dictWord{5, 0, 24}, + dictWord{5, 0, 569}, + dictWord{6, 0, 3}, + dictWord{ + 6, + 0, + 119, + }, + dictWord{6, 0, 143}, + dictWord{6, 0, 440}, + dictWord{7, 0, 295}, + dictWord{7, 0, 599}, + dictWord{7, 0, 1686}, + dictWord{7, 0, 1854}, + dictWord{8, 0, 424}, + dictWord{ + 9, + 0, + 43, + }, + dictWord{9, 0, 584}, + dictWord{9, 0, 760}, + dictWord{10, 0, 148}, + dictWord{10, 0, 328}, + dictWord{11, 0, 159}, + dictWord{11, 0, 253}, + dictWord{11, 0, 506}, + dictWord{12, 0, 487}, + dictWord{140, 0, 531}, + dictWord{6, 0, 661}, + dictWord{134, 0, 1517}, + dictWord{136, 10, 835}, + dictWord{151, 10, 17}, + dictWord{5, 0, 14}, + dictWord{5, 0, 892}, + dictWord{6, 0, 283}, + dictWord{7, 0, 234}, + dictWord{136, 0, 537}, + dictWord{139, 0, 541}, + dictWord{4, 0, 126}, + dictWord{8, 0, 635}, + dictWord{ + 147, + 0, + 34, + }, + dictWord{4, 0, 316}, + dictWord{4, 0, 495}, + dictWord{135, 0, 1561}, + dictWord{4, 11, 187}, + dictWord{5, 11, 184}, + dictWord{5, 11, 690}, + dictWord{ + 7, + 11, + 1869, + }, + dictWord{138, 11, 756}, + dictWord{139, 11, 783}, + dictWord{4, 0, 998}, + dictWord{137, 0, 861}, + dictWord{136, 0, 1009}, + dictWord{139, 11, 292}, + dictWord{5, 11, 21}, + dictWord{6, 11, 77}, + dictWord{6, 11, 157}, + dictWord{7, 11, 974}, + dictWord{7, 11, 1301}, + dictWord{7, 11, 1339}, + dictWord{7, 11, 1490}, + dictWord{ + 7, + 11, + 1873, + }, + dictWord{137, 11, 628}, + dictWord{7, 11, 1283}, + dictWord{9, 11, 227}, + dictWord{9, 11, 499}, + dictWord{10, 11, 341}, + dictWord{11, 11, 325}, + dictWord{11, 11, 408}, + dictWord{14, 11, 180}, + dictWord{15, 11, 144}, + dictWord{18, 11, 47}, + dictWord{147, 11, 49}, + dictWord{4, 0, 64}, + dictWord{5, 0, 352}, + dictWord{5, 0, 720}, + dictWord{6, 0, 368}, + dictWord{139, 0, 359}, + dictWord{5, 10, 384}, + dictWord{8, 10, 455}, + dictWord{140, 10, 48}, + dictWord{5, 10, 264}, + dictWord{ + 134, + 10, + 184, + }, + dictWord{7, 0, 1577}, + dictWord{10, 0, 304}, + dictWord{10, 0, 549}, + dictWord{12, 0, 365}, + dictWord{13, 0, 220}, + dictWord{13, 0, 240}, + dictWord{ + 142, + 0, + 33, + }, + dictWord{134, 0, 1107}, + dictWord{134, 0, 929}, + dictWord{135, 0, 1142}, + dictWord{6, 0, 175}, + dictWord{137, 0, 289}, + dictWord{5, 0, 432}, + dictWord{ + 133, + 0, + 913, + }, + dictWord{6, 0, 279}, + dictWord{7, 0, 219}, + dictWord{5, 10, 633}, + dictWord{135, 10, 1323}, + dictWord{7, 0, 785}, + dictWord{7, 10, 359}, + dictWord{ + 8, + 10, + 243, + }, + dictWord{140, 10, 175}, + dictWord{139, 0, 595}, + dictWord{132, 10, 105}, + dictWord{8, 11, 398}, + dictWord{9, 11, 681}, + dictWord{139, 11, 632}, + dictWord{140, 0, 80}, + dictWord{5, 0, 931}, + dictWord{134, 0, 1698}, + dictWord{142, 11, 241}, + dictWord{134, 11, 20}, + dictWord{134, 0, 1323}, + dictWord{11, 0, 526}, + dictWord{11, 0, 939}, + dictWord{141, 0, 290}, + dictWord{5, 0, 774}, + dictWord{6, 0, 780}, + dictWord{6, 0, 1637}, + dictWord{6, 0, 1686}, + dictWord{6, 0, 1751}, + dictWord{ + 8, + 0, + 559, + }, + dictWord{141, 0, 109}, + dictWord{141, 0, 127}, + dictWord{7, 0, 1167}, + dictWord{11, 0, 934}, + dictWord{13, 0, 391}, + dictWord{17, 0, 76}, + dictWord{ + 135, + 11, + 709, + }, + dictWord{135, 0, 963}, + dictWord{6, 0, 260}, + dictWord{135, 0, 1484}, + dictWord{134, 0, 573}, + dictWord{4, 10, 758}, + dictWord{139, 11, 941}, + dictWord{135, 10, 1649}, + dictWord{145, 11, 36}, + dictWord{4, 0, 292}, + dictWord{137, 0, 580}, + dictWord{4, 0, 736}, + dictWord{5, 0, 871}, + dictWord{6, 0, 1689}, + dictWord{135, 0, 1944}, + dictWord{7, 11, 945}, + dictWord{11, 11, 713}, + dictWord{139, 11, 744}, + dictWord{134, 0, 1164}, + dictWord{135, 11, 937}, + dictWord{ + 6, + 0, + 1922, + }, + dictWord{9, 0, 982}, + dictWord{15, 0, 173}, + dictWord{15, 0, 178}, + dictWord{15, 0, 200}, + dictWord{18, 0, 189}, + dictWord{18, 0, 207}, + dictWord{21, 0, 47}, + dictWord{135, 11, 1652}, + dictWord{7, 0, 1695}, + dictWord{139, 10, 128}, + dictWord{6, 0, 63}, + dictWord{135, 0, 920}, + dictWord{133, 0, 793}, + dictWord{ + 143, + 11, + 134, + }, + dictWord{133, 10, 918}, + dictWord{5, 0, 67}, + dictWord{6, 0, 62}, + dictWord{6, 0, 374}, + dictWord{135, 0, 1391}, + dictWord{9, 0, 790}, + dictWord{12, 0, 47}, + dictWord{4, 11, 579}, + dictWord{5, 11, 226}, + dictWord{5, 11, 323}, + dictWord{135, 11, 960}, + dictWord{10, 11, 784}, + dictWord{141, 11, 191}, + dictWord{4, 0, 391}, + dictWord{135, 0, 1169}, + dictWord{137, 0, 443}, + dictWord{13, 11, 232}, + dictWord{146, 11, 35}, + dictWord{132, 10, 340}, + dictWord{132, 0, 271}, + dictWord{ + 137, + 11, + 313, + }, + dictWord{5, 11, 973}, + dictWord{137, 11, 659}, + dictWord{134, 0, 1140}, + dictWord{6, 11, 135}, + dictWord{135, 11, 1176}, + dictWord{4, 0, 253}, + dictWord{5, 0, 544}, + dictWord{7, 0, 300}, + dictWord{137, 0, 340}, + dictWord{7, 0, 897}, + dictWord{5, 10, 985}, + dictWord{7, 10, 509}, + dictWord{145, 10, 96}, + dictWord{ + 138, + 11, + 735, + }, + dictWord{135, 10, 1919}, + dictWord{138, 0, 890}, + dictWord{5, 0, 818}, + dictWord{134, 0, 1122}, + dictWord{5, 0, 53}, + dictWord{5, 0, 541}, + dictWord{ + 6, + 0, + 94, + }, + dictWord{6, 0, 499}, + dictWord{7, 0, 230}, + dictWord{139, 0, 321}, + dictWord{4, 0, 920}, + dictWord{5, 0, 25}, + dictWord{5, 0, 790}, + dictWord{6, 0, 457}, + dictWord{ + 7, + 0, + 853, + }, + dictWord{8, 0, 788}, + dictWord{142, 11, 31}, + dictWord{132, 10, 247}, + dictWord{135, 11, 314}, + dictWord{132, 0, 468}, + dictWord{7, 0, 243}, + dictWord{ + 6, + 10, + 337, + }, + dictWord{7, 10, 494}, + dictWord{8, 10, 27}, + dictWord{8, 10, 599}, + dictWord{138, 10, 153}, + dictWord{4, 10, 184}, + dictWord{5, 10, 390}, + dictWord{ + 7, + 10, + 618, + }, + dictWord{7, 10, 1456}, + dictWord{139, 10, 710}, + dictWord{134, 0, 870}, + dictWord{134, 0, 1238}, + dictWord{134, 0, 1765}, + dictWord{10, 0, 853}, + dictWord{10, 0, 943}, + dictWord{14, 0, 437}, + dictWord{14, 0, 439}, + dictWord{14, 0, 443}, + dictWord{14, 0, 446}, + dictWord{14, 0, 452}, + dictWord{14, 0, 469}, + dictWord{ + 14, + 0, + 471, + }, + dictWord{14, 0, 473}, + dictWord{16, 0, 93}, + dictWord{16, 0, 102}, + dictWord{16, 0, 110}, + dictWord{148, 0, 121}, + dictWord{4, 0, 605}, + dictWord{ + 7, + 0, + 518, + }, + dictWord{7, 0, 1282}, + dictWord{7, 0, 1918}, + dictWord{10, 0, 180}, + dictWord{139, 0, 218}, + dictWord{133, 0, 822}, + dictWord{4, 0, 634}, + dictWord{ + 11, + 0, + 916, + }, + dictWord{142, 0, 419}, + dictWord{6, 11, 281}, + dictWord{7, 11, 6}, + dictWord{8, 11, 282}, + dictWord{8, 11, 480}, + dictWord{8, 11, 499}, + dictWord{9, 11, 198}, + dictWord{10, 11, 143}, + dictWord{10, 11, 169}, + dictWord{10, 11, 211}, + dictWord{10, 11, 417}, + dictWord{10, 11, 574}, + dictWord{11, 11, 147}, + dictWord{ + 11, + 11, + 395, + }, + dictWord{12, 11, 75}, + dictWord{12, 11, 407}, + dictWord{12, 11, 608}, + dictWord{13, 11, 500}, + dictWord{142, 11, 251}, + dictWord{134, 0, 898}, + dictWord{ + 6, + 0, + 36, + }, + dictWord{7, 0, 658}, + dictWord{8, 0, 454}, + dictWord{150, 11, 48}, + dictWord{133, 11, 674}, + dictWord{135, 11, 1776}, + dictWord{4, 11, 419}, + dictWord{ + 10, + 10, + 227, + }, + dictWord{11, 10, 497}, + dictWord{11, 10, 709}, + dictWord{140, 10, 415}, + dictWord{6, 10, 360}, + dictWord{7, 10, 1664}, + dictWord{136, 10, 478}, + dictWord{137, 0, 806}, + dictWord{12, 11, 508}, + dictWord{14, 11, 102}, + dictWord{14, 11, 226}, + dictWord{144, 11, 57}, + dictWord{135, 11, 1123}, + dictWord{ + 4, + 11, + 138, + }, + dictWord{7, 11, 1012}, + dictWord{7, 11, 1280}, + dictWord{137, 11, 76}, + dictWord{5, 11, 29}, + dictWord{140, 11, 638}, + dictWord{136, 10, 699}, + dictWord{134, 0, 1326}, + dictWord{132, 0, 104}, + dictWord{135, 11, 735}, + dictWord{132, 10, 739}, + dictWord{134, 0, 1331}, + dictWord{7, 0, 260}, + dictWord{ + 135, + 11, + 260, + }, + dictWord{135, 11, 1063}, + dictWord{7, 0, 45}, + dictWord{9, 0, 542}, + dictWord{9, 0, 566}, + dictWord{10, 0, 728}, + dictWord{137, 10, 869}, + dictWord{ + 4, + 10, + 67, + }, + dictWord{5, 10, 422}, + dictWord{7, 10, 1037}, + dictWord{7, 10, 1289}, + dictWord{7, 10, 1555}, + dictWord{9, 10, 741}, + dictWord{145, 10, 108}, + dictWord{ + 139, + 0, + 263, + }, + dictWord{134, 0, 1516}, + dictWord{14, 0, 146}, + dictWord{15, 0, 42}, + dictWord{16, 0, 23}, + dictWord{17, 0, 86}, + dictWord{146, 0, 17}, + dictWord{ + 138, + 0, + 468, + }, + dictWord{136, 0, 1005}, + dictWord{4, 11, 17}, + dictWord{5, 11, 23}, + dictWord{7, 11, 995}, + dictWord{11, 11, 383}, + dictWord{11, 11, 437}, + dictWord{ + 12, + 11, + 460, + }, + dictWord{140, 11, 532}, + dictWord{7, 0, 87}, + dictWord{142, 0, 288}, + dictWord{138, 10, 96}, + dictWord{135, 11, 626}, + dictWord{144, 10, 26}, + dictWord{ + 7, + 0, + 988, + }, + dictWord{7, 0, 1939}, + dictWord{9, 0, 64}, + dictWord{9, 0, 502}, + dictWord{12, 0, 22}, + dictWord{12, 0, 34}, + dictWord{13, 0, 12}, + dictWord{13, 0, 234}, + dictWord{147, 0, 77}, + dictWord{13, 0, 133}, + dictWord{8, 10, 203}, + dictWord{11, 10, 823}, + dictWord{11, 10, 846}, + dictWord{12, 10, 482}, + dictWord{13, 10, 277}, + dictWord{13, 10, 302}, + dictWord{13, 10, 464}, + dictWord{14, 10, 205}, + dictWord{142, 10, 221}, + dictWord{4, 10, 449}, + dictWord{133, 10, 718}, + dictWord{ + 135, + 0, + 141, + }, + dictWord{6, 0, 1842}, + dictWord{136, 0, 872}, + dictWord{8, 11, 70}, + dictWord{12, 11, 171}, + dictWord{141, 11, 272}, + dictWord{4, 10, 355}, + dictWord{ + 6, + 10, + 311, + }, + dictWord{9, 10, 256}, + dictWord{138, 10, 404}, + dictWord{132, 0, 619}, + dictWord{137, 0, 261}, + dictWord{10, 11, 233}, + dictWord{10, 10, 758}, + dictWord{139, 11, 76}, + dictWord{5, 0, 246}, + dictWord{8, 0, 189}, + dictWord{9, 0, 355}, + dictWord{9, 0, 512}, + dictWord{10, 0, 124}, + dictWord{10, 0, 453}, + dictWord{ + 11, + 0, + 143, + }, + dictWord{11, 0, 416}, + dictWord{11, 0, 859}, + dictWord{141, 0, 341}, + dictWord{134, 11, 442}, + dictWord{133, 10, 827}, + dictWord{5, 10, 64}, + dictWord{ + 140, + 10, + 581, + }, + dictWord{4, 10, 442}, + dictWord{7, 10, 1047}, + dictWord{7, 10, 1352}, + dictWord{135, 10, 1643}, + dictWord{134, 11, 1709}, + dictWord{5, 0, 678}, + dictWord{6, 0, 305}, + dictWord{7, 0, 775}, + dictWord{7, 0, 1065}, + dictWord{133, 10, 977}, + dictWord{11, 11, 69}, + dictWord{12, 11, 105}, + dictWord{12, 11, 117}, + dictWord{13, 11, 213}, + dictWord{14, 11, 13}, + dictWord{14, 11, 62}, + dictWord{14, 11, 177}, + dictWord{14, 11, 421}, + dictWord{15, 11, 19}, + dictWord{146, 11, 141}, + dictWord{137, 11, 309}, + dictWord{5, 0, 35}, + dictWord{7, 0, 862}, + dictWord{7, 0, 1886}, + dictWord{138, 0, 179}, + dictWord{136, 0, 285}, + dictWord{132, 0, 517}, + dictWord{7, 11, 976}, + dictWord{9, 11, 146}, + dictWord{10, 11, 206}, + dictWord{10, 11, 596}, + dictWord{13, 11, 218}, + dictWord{142, 11, 153}, + dictWord{ + 132, + 10, + 254, + }, + dictWord{6, 0, 214}, + dictWord{12, 0, 540}, + dictWord{4, 10, 275}, + dictWord{7, 10, 1219}, + dictWord{140, 10, 376}, + dictWord{8, 0, 667}, + dictWord{ + 11, + 0, + 403, + }, + dictWord{146, 0, 83}, + dictWord{12, 0, 74}, + dictWord{10, 11, 648}, + dictWord{11, 11, 671}, + dictWord{143, 11, 46}, + dictWord{135, 0, 125}, + dictWord{ + 134, + 10, + 1753, + }, + dictWord{133, 0, 761}, + dictWord{6, 0, 912}, + dictWord{4, 11, 518}, + dictWord{6, 10, 369}, + dictWord{6, 10, 502}, + dictWord{7, 10, 1036}, + dictWord{ + 7, + 11, + 1136, + }, + dictWord{8, 10, 348}, + dictWord{9, 10, 452}, + dictWord{10, 10, 26}, + dictWord{11, 10, 224}, + dictWord{11, 10, 387}, + dictWord{11, 10, 772}, + dictWord{12, 10, 95}, + dictWord{12, 10, 629}, + dictWord{13, 10, 195}, + dictWord{13, 10, 207}, + dictWord{13, 10, 241}, + dictWord{14, 10, 260}, + dictWord{14, 10, 270}, + dictWord{143, 10, 140}, + dictWord{10, 0, 131}, + dictWord{140, 0, 72}, + dictWord{132, 10, 269}, + dictWord{5, 10, 480}, + dictWord{7, 10, 532}, + dictWord{ + 7, + 10, + 1197, + }, + dictWord{7, 10, 1358}, + dictWord{8, 10, 291}, + dictWord{11, 10, 349}, + dictWord{142, 10, 396}, + dictWord{8, 11, 689}, + dictWord{137, 11, 863}, + dictWord{ + 8, + 0, + 333, + }, + dictWord{138, 0, 182}, + dictWord{4, 11, 18}, + dictWord{7, 11, 145}, + dictWord{7, 11, 444}, + dictWord{7, 11, 1278}, + dictWord{8, 11, 49}, + dictWord{ + 8, + 11, + 400, + }, + dictWord{9, 11, 71}, + dictWord{9, 11, 250}, + dictWord{10, 11, 459}, + dictWord{12, 11, 160}, + dictWord{144, 11, 24}, + dictWord{14, 11, 35}, + dictWord{ + 142, + 11, + 191, + }, + dictWord{135, 11, 1864}, + dictWord{135, 0, 1338}, + dictWord{148, 10, 15}, + dictWord{14, 0, 94}, + dictWord{15, 0, 65}, + dictWord{16, 0, 4}, + dictWord{ + 16, + 0, + 77, + }, + dictWord{16, 0, 80}, + dictWord{145, 0, 5}, + dictWord{12, 11, 82}, + dictWord{143, 11, 36}, + dictWord{133, 11, 1010}, + dictWord{133, 0, 449}, + dictWord{ + 133, + 0, + 646, + }, + dictWord{7, 0, 86}, + dictWord{8, 0, 103}, + dictWord{135, 10, 657}, + dictWord{7, 0, 2028}, + dictWord{138, 0, 641}, + dictWord{136, 10, 533}, + dictWord{ + 134, + 0, + 1, + }, + dictWord{139, 11, 970}, + dictWord{5, 11, 87}, + dictWord{7, 11, 313}, + dictWord{7, 11, 1103}, + dictWord{10, 11, 112}, + dictWord{10, 11, 582}, + dictWord{ + 11, + 11, + 389, + }, + dictWord{11, 11, 813}, + dictWord{12, 11, 385}, + dictWord{13, 11, 286}, + dictWord{14, 11, 124}, + dictWord{146, 11, 108}, + dictWord{6, 0, 869}, + dictWord{ + 132, + 11, + 267, + }, + dictWord{6, 0, 277}, + dictWord{7, 0, 1274}, + dictWord{7, 0, 1386}, + dictWord{146, 0, 87}, + dictWord{6, 0, 187}, + dictWord{7, 0, 39}, + dictWord{7, 0, 1203}, + dictWord{8, 0, 380}, + dictWord{14, 0, 117}, + dictWord{149, 0, 28}, + dictWord{4, 10, 211}, + dictWord{4, 10, 332}, + dictWord{5, 10, 335}, + dictWord{6, 10, 238}, + dictWord{ + 7, + 10, + 269, + }, + dictWord{7, 10, 811}, + dictWord{7, 10, 1797}, + dictWord{8, 10, 836}, + dictWord{9, 10, 507}, + dictWord{141, 10, 242}, + dictWord{4, 0, 785}, + dictWord{ + 5, + 0, + 368, + }, + dictWord{6, 0, 297}, + dictWord{7, 0, 793}, + dictWord{139, 0, 938}, + dictWord{7, 0, 464}, + dictWord{8, 0, 558}, + dictWord{11, 0, 105}, + dictWord{12, 0, 231}, + dictWord{14, 0, 386}, + dictWord{15, 0, 102}, + dictWord{148, 0, 75}, + dictWord{133, 10, 1009}, + dictWord{8, 0, 877}, + dictWord{140, 0, 731}, + dictWord{ + 139, + 11, + 289, + }, + dictWord{10, 11, 249}, + dictWord{139, 11, 209}, + dictWord{132, 11, 561}, + dictWord{134, 0, 1608}, + dictWord{132, 11, 760}, + dictWord{134, 0, 1429}, + dictWord{9, 11, 154}, + dictWord{140, 11, 485}, + dictWord{5, 10, 228}, + dictWord{6, 10, 203}, + dictWord{7, 10, 156}, + dictWord{8, 10, 347}, + dictWord{ + 137, + 10, + 265, + }, + dictWord{7, 0, 1010}, + dictWord{11, 0, 733}, + dictWord{11, 0, 759}, + dictWord{13, 0, 34}, + dictWord{14, 0, 427}, + dictWord{146, 0, 45}, + dictWord{7, 10, 1131}, + dictWord{135, 10, 1468}, + dictWord{136, 11, 255}, + dictWord{7, 0, 1656}, + dictWord{9, 0, 369}, + dictWord{10, 0, 338}, + dictWord{10, 0, 490}, + dictWord{ + 11, + 0, + 154, + }, + dictWord{11, 0, 545}, + dictWord{11, 0, 775}, + dictWord{13, 0, 77}, + dictWord{141, 0, 274}, + dictWord{133, 11, 621}, + dictWord{134, 0, 1038}, + dictWord{ + 4, + 11, + 368, + }, + dictWord{135, 11, 641}, + dictWord{6, 0, 2010}, + dictWord{8, 0, 979}, + dictWord{8, 0, 985}, + dictWord{10, 0, 951}, + dictWord{138, 0, 1011}, + dictWord{ + 134, + 0, + 1005, + }, + dictWord{19, 0, 121}, + dictWord{5, 10, 291}, + dictWord{5, 10, 318}, + dictWord{7, 10, 765}, + dictWord{9, 10, 389}, + dictWord{140, 10, 548}, + dictWord{ + 5, + 0, + 20, + }, + dictWord{6, 0, 298}, + dictWord{7, 0, 659}, + dictWord{137, 0, 219}, + dictWord{7, 0, 1440}, + dictWord{11, 0, 854}, + dictWord{11, 0, 872}, + dictWord{11, 0, 921}, + dictWord{12, 0, 551}, + dictWord{13, 0, 472}, + dictWord{142, 0, 367}, + dictWord{5, 0, 490}, + dictWord{6, 0, 615}, + dictWord{6, 0, 620}, + dictWord{135, 0, 683}, + dictWord{ + 6, + 0, + 1070, + }, + dictWord{134, 0, 1597}, + dictWord{139, 0, 522}, + dictWord{132, 0, 439}, + dictWord{136, 0, 669}, + dictWord{6, 0, 766}, + dictWord{6, 0, 1143}, + dictWord{ + 6, + 0, + 1245, + }, + dictWord{10, 10, 525}, + dictWord{139, 10, 82}, + dictWord{9, 11, 92}, + dictWord{147, 11, 91}, + dictWord{6, 0, 668}, + dictWord{134, 0, 1218}, + dictWord{ + 6, + 11, + 525, + }, + dictWord{9, 11, 876}, + dictWord{140, 11, 284}, + dictWord{132, 0, 233}, + dictWord{136, 0, 547}, + dictWord{132, 10, 422}, + dictWord{5, 10, 355}, + dictWord{145, 10, 0}, + dictWord{6, 11, 300}, + dictWord{135, 11, 1515}, + dictWord{4, 0, 482}, + dictWord{137, 10, 905}, + dictWord{4, 0, 886}, + dictWord{7, 0, 346}, + dictWord{133, 11, 594}, + dictWord{133, 10, 865}, + dictWord{5, 10, 914}, + dictWord{134, 10, 1625}, + dictWord{135, 0, 334}, + dictWord{5, 0, 795}, + dictWord{ + 6, + 0, + 1741, + }, + dictWord{133, 10, 234}, + dictWord{135, 10, 1383}, + dictWord{6, 11, 1641}, + dictWord{136, 11, 820}, + dictWord{135, 0, 371}, + dictWord{7, 11, 1313}, + dictWord{138, 11, 660}, + dictWord{135, 10, 1312}, + dictWord{135, 0, 622}, + dictWord{7, 0, 625}, + dictWord{135, 0, 1750}, + dictWord{135, 0, 339}, + dictWord{ + 4, + 0, + 203, + }, + dictWord{135, 0, 1936}, + dictWord{15, 0, 29}, + dictWord{16, 0, 38}, + dictWord{15, 11, 29}, + dictWord{144, 11, 38}, + dictWord{5, 0, 338}, + dictWord{ + 135, + 0, + 1256, + }, + dictWord{135, 10, 1493}, + dictWord{10, 0, 130}, + dictWord{6, 10, 421}, + dictWord{7, 10, 61}, + dictWord{7, 10, 1540}, + dictWord{138, 10, 501}, + dictWord{ + 6, + 11, + 389, + }, + dictWord{7, 11, 149}, + dictWord{9, 11, 142}, + dictWord{138, 11, 94}, + dictWord{137, 10, 341}, + dictWord{11, 0, 678}, + dictWord{12, 0, 307}, + dictWord{142, 10, 98}, + dictWord{6, 11, 8}, + dictWord{7, 11, 1881}, + dictWord{136, 11, 91}, + dictWord{135, 0, 2044}, + dictWord{6, 0, 770}, + dictWord{6, 0, 802}, + dictWord{ + 6, + 0, + 812, + }, + dictWord{7, 0, 311}, + dictWord{9, 0, 308}, + dictWord{12, 0, 255}, + dictWord{6, 10, 102}, + dictWord{7, 10, 72}, + dictWord{15, 10, 142}, + dictWord{ + 147, + 10, + 67, + }, + dictWord{151, 10, 30}, + dictWord{135, 10, 823}, + dictWord{135, 0, 1266}, + dictWord{135, 11, 1746}, + dictWord{135, 10, 1870}, + dictWord{4, 0, 400}, + dictWord{5, 0, 267}, + dictWord{135, 0, 232}, + dictWord{7, 11, 24}, + dictWord{11, 11, 542}, + dictWord{139, 11, 852}, + dictWord{135, 11, 1739}, + dictWord{4, 11, 503}, + dictWord{135, 11, 1661}, + dictWord{5, 11, 130}, + dictWord{7, 11, 1314}, + dictWord{9, 11, 610}, + dictWord{10, 11, 718}, + dictWord{11, 11, 601}, + dictWord{ + 11, + 11, + 819, + }, + dictWord{11, 11, 946}, + dictWord{140, 11, 536}, + dictWord{10, 11, 149}, + dictWord{11, 11, 280}, + dictWord{142, 11, 336}, + dictWord{7, 0, 739}, + dictWord{11, 0, 690}, + dictWord{7, 11, 1946}, + dictWord{8, 10, 48}, + dictWord{8, 10, 88}, + dictWord{8, 10, 582}, + dictWord{8, 10, 681}, + dictWord{9, 10, 373}, + dictWord{ + 9, + 10, + 864, + }, + dictWord{11, 10, 157}, + dictWord{11, 10, 843}, + dictWord{148, 10, 27}, + dictWord{134, 0, 990}, + dictWord{4, 10, 88}, + dictWord{5, 10, 137}, + dictWord{ + 5, + 10, + 174, + }, + dictWord{5, 10, 777}, + dictWord{6, 10, 1664}, + dictWord{6, 10, 1725}, + dictWord{7, 10, 77}, + dictWord{7, 10, 426}, + dictWord{7, 10, 1317}, + dictWord{ + 7, + 10, + 1355, + }, + dictWord{8, 10, 126}, + dictWord{8, 10, 563}, + dictWord{9, 10, 523}, + dictWord{9, 10, 750}, + dictWord{10, 10, 310}, + dictWord{10, 10, 836}, + dictWord{ + 11, + 10, + 42, + }, + dictWord{11, 10, 318}, + dictWord{11, 10, 731}, + dictWord{12, 10, 68}, + dictWord{12, 10, 92}, + dictWord{12, 10, 507}, + dictWord{12, 10, 692}, + dictWord{ + 13, + 10, + 81, + }, + dictWord{13, 10, 238}, + dictWord{13, 10, 374}, + dictWord{14, 10, 436}, + dictWord{18, 10, 138}, + dictWord{19, 10, 78}, + dictWord{19, 10, 111}, + dictWord{20, 10, 55}, + dictWord{20, 10, 77}, + dictWord{148, 10, 92}, + dictWord{141, 10, 418}, + dictWord{7, 0, 1831}, + dictWord{132, 10, 938}, + dictWord{6, 0, 776}, + dictWord{134, 0, 915}, + dictWord{138, 10, 351}, + dictWord{5, 11, 348}, + dictWord{6, 11, 522}, + dictWord{6, 10, 1668}, + dictWord{7, 10, 1499}, + dictWord{8, 10, 117}, + dictWord{9, 10, 314}, + dictWord{138, 10, 174}, + dictWord{135, 10, 707}, + dictWord{132, 0, 613}, + dictWord{133, 10, 403}, + dictWord{132, 11, 392}, + dictWord{ + 5, + 11, + 433, + }, + dictWord{9, 11, 633}, + dictWord{139, 11, 629}, + dictWord{133, 0, 763}, + dictWord{132, 0, 878}, + dictWord{132, 0, 977}, + dictWord{132, 0, 100}, + dictWord{6, 0, 463}, + dictWord{4, 10, 44}, + dictWord{5, 10, 311}, + dictWord{7, 10, 639}, + dictWord{7, 10, 762}, + dictWord{7, 10, 1827}, + dictWord{9, 10, 8}, + dictWord{ + 9, + 10, + 462, + }, + dictWord{148, 10, 83}, + dictWord{134, 11, 234}, + dictWord{4, 10, 346}, + dictWord{7, 10, 115}, + dictWord{9, 10, 180}, + dictWord{9, 10, 456}, + dictWord{ + 138, + 10, + 363, + }, + dictWord{5, 0, 362}, + dictWord{5, 0, 443}, + dictWord{6, 0, 318}, + dictWord{7, 0, 1019}, + dictWord{139, 0, 623}, + dictWord{5, 0, 463}, + dictWord{8, 0, 296}, + dictWord{7, 11, 140}, + dictWord{7, 11, 1950}, + dictWord{8, 11, 680}, + dictWord{11, 11, 817}, + dictWord{147, 11, 88}, + dictWord{7, 11, 1222}, + dictWord{ + 138, + 11, + 386, + }, + dictWord{142, 0, 137}, + dictWord{132, 0, 454}, + dictWord{7, 0, 1914}, + dictWord{6, 11, 5}, + dictWord{7, 10, 1051}, + dictWord{9, 10, 545}, + dictWord{ + 11, + 11, + 249, + }, + dictWord{12, 11, 313}, + dictWord{16, 11, 66}, + dictWord{145, 11, 26}, + dictWord{135, 0, 1527}, + dictWord{145, 0, 58}, + dictWord{148, 11, 59}, + dictWord{ + 5, + 0, + 48, + }, + dictWord{5, 0, 404}, + dictWord{6, 0, 557}, + dictWord{7, 0, 458}, + dictWord{8, 0, 597}, + dictWord{10, 0, 455}, + dictWord{10, 0, 606}, + dictWord{11, 0, 49}, + dictWord{ + 11, + 0, + 548, + }, + dictWord{12, 0, 476}, + dictWord{13, 0, 18}, + dictWord{141, 0, 450}, + dictWord{5, 11, 963}, + dictWord{134, 11, 1773}, + dictWord{133, 0, 729}, + dictWord{138, 11, 586}, + dictWord{5, 0, 442}, + dictWord{135, 0, 1984}, + dictWord{134, 0, 449}, + dictWord{144, 0, 40}, + dictWord{4, 0, 853}, + dictWord{7, 11, 180}, + dictWord{8, 11, 509}, + dictWord{136, 11, 792}, + dictWord{6, 10, 185}, + dictWord{7, 10, 1899}, + dictWord{9, 10, 875}, + dictWord{139, 10, 673}, + dictWord{ + 134, + 11, + 524, + }, + dictWord{12, 0, 227}, + dictWord{4, 10, 327}, + dictWord{5, 10, 478}, + dictWord{7, 10, 1332}, + dictWord{136, 10, 753}, + dictWord{6, 0, 1491}, + dictWord{ + 5, + 10, + 1020, + }, + dictWord{133, 10, 1022}, + dictWord{4, 10, 103}, + dictWord{133, 10, 401}, + dictWord{132, 11, 931}, + dictWord{4, 10, 499}, + dictWord{135, 10, 1421}, + dictWord{5, 0, 55}, + dictWord{7, 0, 376}, + dictWord{140, 0, 161}, + dictWord{133, 0, 450}, + dictWord{6, 0, 1174}, + dictWord{134, 0, 1562}, + dictWord{10, 0, 62}, + dictWord{13, 0, 400}, + dictWord{135, 11, 1837}, + dictWord{140, 0, 207}, + dictWord{135, 0, 869}, + dictWord{4, 11, 773}, + dictWord{5, 11, 618}, + dictWord{ + 137, + 11, + 756, + }, + dictWord{132, 10, 96}, + dictWord{4, 0, 213}, + dictWord{7, 0, 223}, + dictWord{8, 0, 80}, + dictWord{135, 10, 968}, + dictWord{4, 11, 90}, + dictWord{5, 11, 337}, + dictWord{5, 11, 545}, + dictWord{7, 11, 754}, + dictWord{9, 11, 186}, + dictWord{10, 11, 72}, + dictWord{10, 11, 782}, + dictWord{11, 11, 513}, + dictWord{11, 11, 577}, + dictWord{11, 11, 610}, + dictWord{11, 11, 889}, + dictWord{11, 11, 961}, + dictWord{12, 11, 354}, + dictWord{12, 11, 362}, + dictWord{12, 11, 461}, + dictWord{ + 12, + 11, + 595, + }, + dictWord{13, 11, 79}, + dictWord{143, 11, 121}, + dictWord{7, 0, 381}, + dictWord{7, 0, 806}, + dictWord{7, 0, 820}, + dictWord{8, 0, 354}, + dictWord{8, 0, 437}, + dictWord{8, 0, 787}, + dictWord{9, 0, 657}, + dictWord{10, 0, 58}, + dictWord{10, 0, 339}, + dictWord{10, 0, 749}, + dictWord{11, 0, 914}, + dictWord{12, 0, 162}, + dictWord{ + 13, + 0, + 75, + }, + dictWord{14, 0, 106}, + dictWord{14, 0, 198}, + dictWord{14, 0, 320}, + dictWord{14, 0, 413}, + dictWord{146, 0, 43}, + dictWord{136, 0, 747}, + dictWord{ + 136, + 0, + 954, + }, + dictWord{134, 0, 1073}, + dictWord{135, 0, 556}, + dictWord{7, 11, 151}, + dictWord{9, 11, 329}, + dictWord{139, 11, 254}, + dictWord{5, 0, 692}, + dictWord{ + 134, + 0, + 1395, + }, + dictWord{6, 10, 563}, + dictWord{137, 10, 224}, + dictWord{134, 0, 191}, + dictWord{132, 0, 804}, + dictWord{9, 11, 187}, + dictWord{10, 11, 36}, + dictWord{17, 11, 44}, + dictWord{146, 11, 64}, + dictWord{7, 11, 165}, + dictWord{7, 11, 919}, + dictWord{136, 11, 517}, + dictWord{4, 11, 506}, + dictWord{5, 11, 295}, + dictWord{7, 11, 1680}, + dictWord{15, 11, 14}, + dictWord{144, 11, 5}, + dictWord{4, 0, 706}, + dictWord{6, 0, 162}, + dictWord{7, 0, 1960}, + dictWord{136, 0, 831}, + dictWord{ + 135, + 11, + 1376, + }, + dictWord{7, 11, 987}, + dictWord{9, 11, 688}, + dictWord{10, 11, 522}, + dictWord{11, 11, 788}, + dictWord{140, 11, 566}, + dictWord{150, 0, 35}, + dictWord{138, 0, 426}, + dictWord{135, 0, 1235}, + dictWord{135, 11, 1741}, + dictWord{7, 11, 389}, + dictWord{7, 11, 700}, + dictWord{7, 11, 940}, + dictWord{ + 8, + 11, + 514, + }, + dictWord{9, 11, 116}, + dictWord{9, 11, 535}, + dictWord{10, 11, 118}, + dictWord{11, 11, 107}, + dictWord{11, 11, 148}, + dictWord{11, 11, 922}, + dictWord{ + 12, + 11, + 254, + }, + dictWord{12, 11, 421}, + dictWord{142, 11, 238}, + dictWord{134, 0, 1234}, + dictWord{132, 11, 743}, + dictWord{4, 10, 910}, + dictWord{5, 10, 832}, + dictWord{135, 11, 1335}, + dictWord{141, 0, 96}, + dictWord{135, 11, 185}, + dictWord{146, 0, 149}, + dictWord{4, 0, 204}, + dictWord{137, 0, 902}, + dictWord{ + 4, + 11, + 784, + }, + dictWord{133, 11, 745}, + dictWord{136, 0, 833}, + dictWord{136, 0, 949}, + dictWord{7, 0, 366}, + dictWord{9, 0, 287}, + dictWord{12, 0, 199}, + dictWord{ + 12, + 0, + 556, + }, + dictWord{12, 0, 577}, + dictWord{5, 11, 81}, + dictWord{7, 11, 146}, + dictWord{7, 11, 1342}, + dictWord{7, 11, 1446}, + dictWord{8, 11, 53}, + dictWord{8, 11, 561}, + dictWord{8, 11, 694}, + dictWord{8, 11, 754}, + dictWord{9, 11, 97}, + dictWord{9, 11, 115}, + dictWord{9, 11, 894}, + dictWord{10, 11, 462}, + dictWord{10, 11, 813}, + dictWord{11, 11, 230}, + dictWord{11, 11, 657}, + dictWord{11, 11, 699}, + dictWord{11, 11, 748}, + dictWord{12, 11, 119}, + dictWord{12, 11, 200}, + dictWord{ + 12, + 11, + 283, + }, + dictWord{14, 11, 273}, + dictWord{145, 11, 15}, + dictWord{5, 11, 408}, + dictWord{137, 11, 747}, + dictWord{9, 11, 498}, + dictWord{140, 11, 181}, + dictWord{ + 6, + 0, + 2020, + }, + dictWord{136, 0, 992}, + dictWord{5, 0, 356}, + dictWord{135, 0, 224}, + dictWord{134, 0, 784}, + dictWord{7, 0, 630}, + dictWord{9, 0, 567}, + dictWord{ + 11, + 0, + 150, + }, + dictWord{11, 0, 444}, + dictWord{13, 0, 119}, + dictWord{8, 10, 528}, + dictWord{137, 10, 348}, + dictWord{134, 0, 539}, + dictWord{4, 10, 20}, + dictWord{ + 133, + 10, + 616, + }, + dictWord{142, 0, 27}, + dictWord{7, 11, 30}, + dictWord{8, 11, 86}, + dictWord{8, 11, 315}, + dictWord{8, 11, 700}, + dictWord{9, 11, 576}, + dictWord{9, 11, 858}, + dictWord{11, 11, 310}, + dictWord{11, 11, 888}, + dictWord{11, 11, 904}, + dictWord{12, 11, 361}, + dictWord{141, 11, 248}, + dictWord{138, 11, 839}, + dictWord{ + 134, + 0, + 755, + }, + dictWord{134, 0, 1063}, + dictWord{7, 10, 1091}, + dictWord{135, 10, 1765}, + dictWord{134, 11, 428}, + dictWord{7, 11, 524}, + dictWord{8, 11, 169}, + dictWord{8, 11, 234}, + dictWord{9, 11, 480}, + dictWord{138, 11, 646}, + dictWord{139, 0, 814}, + dictWord{7, 11, 1462}, + dictWord{139, 11, 659}, + dictWord{ + 4, + 10, + 26, + }, + dictWord{5, 10, 429}, + dictWord{6, 10, 245}, + dictWord{7, 10, 704}, + dictWord{7, 10, 1379}, + dictWord{135, 10, 1474}, + dictWord{7, 11, 1205}, + dictWord{ + 138, + 11, + 637, + }, + dictWord{139, 11, 803}, + dictWord{132, 10, 621}, + dictWord{136, 0, 987}, + dictWord{4, 11, 266}, + dictWord{8, 11, 4}, + dictWord{9, 11, 39}, + dictWord{ + 10, + 11, + 166, + }, + dictWord{11, 11, 918}, + dictWord{12, 11, 635}, + dictWord{20, 11, 10}, + dictWord{22, 11, 27}, + dictWord{150, 11, 43}, + dictWord{4, 0, 235}, + dictWord{ + 135, + 0, + 255, + }, + dictWord{4, 0, 194}, + dictWord{5, 0, 584}, + dictWord{6, 0, 384}, + dictWord{7, 0, 583}, + dictWord{10, 0, 761}, + dictWord{11, 0, 760}, + dictWord{139, 0, 851}, + dictWord{133, 10, 542}, + dictWord{134, 0, 1086}, + dictWord{133, 10, 868}, + dictWord{8, 0, 1016}, + dictWord{136, 0, 1018}, + dictWord{7, 0, 1396}, + dictWord{ + 7, + 11, + 1396, + }, + dictWord{136, 10, 433}, + dictWord{135, 10, 1495}, + dictWord{138, 10, 215}, + dictWord{141, 10, 124}, + dictWord{7, 11, 157}, + dictWord{ + 8, + 11, + 279, + }, + dictWord{9, 11, 759}, + dictWord{16, 11, 31}, + dictWord{16, 11, 39}, + dictWord{16, 11, 75}, + dictWord{18, 11, 24}, + dictWord{20, 11, 42}, + dictWord{152, 11, 1}, + dictWord{5, 0, 562}, + dictWord{134, 11, 604}, + dictWord{134, 0, 913}, + dictWord{5, 0, 191}, + dictWord{137, 0, 271}, + dictWord{4, 0, 470}, + dictWord{6, 0, 153}, + dictWord{7, 0, 1503}, + dictWord{7, 0, 1923}, + dictWord{10, 0, 701}, + dictWord{11, 0, 132}, + dictWord{11, 0, 227}, + dictWord{11, 0, 320}, + dictWord{11, 0, 436}, + dictWord{ + 11, + 0, + 525, + }, + dictWord{11, 0, 855}, + dictWord{11, 0, 873}, + dictWord{12, 0, 41}, + dictWord{12, 0, 286}, + dictWord{13, 0, 103}, + dictWord{13, 0, 284}, + dictWord{ + 14, + 0, + 255, + }, + dictWord{14, 0, 262}, + dictWord{15, 0, 117}, + dictWord{143, 0, 127}, + dictWord{7, 0, 475}, + dictWord{12, 0, 45}, + dictWord{147, 10, 112}, + dictWord{ + 132, + 11, + 567, + }, + dictWord{137, 11, 859}, + dictWord{6, 0, 713}, + dictWord{6, 0, 969}, + dictWord{6, 0, 1290}, + dictWord{134, 0, 1551}, + dictWord{133, 0, 327}, + dictWord{ + 6, + 0, + 552, + }, + dictWord{6, 0, 1292}, + dictWord{7, 0, 1754}, + dictWord{137, 0, 604}, + dictWord{4, 0, 223}, + dictWord{6, 0, 359}, + dictWord{11, 0, 3}, + dictWord{13, 0, 108}, + dictWord{14, 0, 89}, + dictWord{16, 0, 22}, + dictWord{5, 11, 762}, + dictWord{7, 11, 1880}, + dictWord{9, 11, 680}, + dictWord{139, 11, 798}, + dictWord{5, 0, 80}, + dictWord{ + 6, + 0, + 405, + }, + dictWord{7, 0, 403}, + dictWord{7, 0, 1502}, + dictWord{8, 0, 456}, + dictWord{9, 0, 487}, + dictWord{9, 0, 853}, + dictWord{9, 0, 889}, + dictWord{10, 0, 309}, + dictWord{ + 11, + 0, + 721, + }, + dictWord{11, 0, 994}, + dictWord{12, 0, 430}, + dictWord{141, 0, 165}, + dictWord{133, 11, 298}, + dictWord{132, 10, 647}, + dictWord{134, 0, 2016}, + dictWord{18, 10, 10}, + dictWord{146, 11, 10}, + dictWord{4, 0, 453}, + dictWord{5, 0, 887}, + dictWord{6, 0, 535}, + dictWord{8, 0, 6}, + dictWord{8, 0, 543}, + dictWord{ + 136, + 0, + 826, + }, + dictWord{136, 0, 975}, + dictWord{10, 0, 961}, + dictWord{138, 0, 962}, + dictWord{138, 10, 220}, + dictWord{6, 0, 1891}, + dictWord{6, 0, 1893}, + dictWord{ + 9, + 0, + 916, + }, + dictWord{9, 0, 965}, + dictWord{9, 0, 972}, + dictWord{12, 0, 801}, + dictWord{12, 0, 859}, + dictWord{12, 0, 883}, + dictWord{15, 0, 226}, + dictWord{149, 0, 51}, + dictWord{132, 10, 109}, + dictWord{135, 11, 267}, + dictWord{7, 11, 92}, + dictWord{7, 11, 182}, + dictWord{8, 11, 453}, + dictWord{9, 11, 204}, + dictWord{11, 11, 950}, + dictWord{12, 11, 94}, + dictWord{12, 11, 644}, + dictWord{16, 11, 20}, + dictWord{16, 11, 70}, + dictWord{16, 11, 90}, + dictWord{147, 11, 55}, + dictWord{ + 134, + 10, + 1746, + }, + dictWord{6, 11, 71}, + dictWord{7, 11, 845}, + dictWord{7, 11, 1308}, + dictWord{8, 11, 160}, + dictWord{137, 11, 318}, + dictWord{5, 0, 101}, + dictWord{6, 0, 88}, + dictWord{7, 0, 263}, + dictWord{7, 0, 628}, + dictWord{7, 0, 1677}, + dictWord{8, 0, 349}, + dictWord{9, 0, 100}, + dictWord{10, 0, 677}, + dictWord{14, 0, 169}, + dictWord{ + 14, + 0, + 302, + }, + dictWord{14, 0, 313}, + dictWord{15, 0, 48}, + dictWord{15, 0, 84}, + dictWord{7, 11, 237}, + dictWord{8, 11, 664}, + dictWord{9, 11, 42}, + dictWord{9, 11, 266}, + dictWord{9, 11, 380}, + dictWord{9, 11, 645}, + dictWord{10, 11, 177}, + dictWord{138, 11, 276}, + dictWord{138, 11, 69}, + dictWord{4, 0, 310}, + dictWord{7, 0, 708}, + dictWord{7, 0, 996}, + dictWord{9, 0, 795}, + dictWord{10, 0, 390}, + dictWord{10, 0, 733}, + dictWord{11, 0, 451}, + dictWord{12, 0, 249}, + dictWord{14, 0, 115}, + dictWord{ + 14, + 0, + 286, + }, + dictWord{143, 0, 100}, + dictWord{5, 0, 587}, + dictWord{4, 10, 40}, + dictWord{10, 10, 67}, + dictWord{11, 10, 117}, + dictWord{11, 10, 768}, + dictWord{ + 139, + 10, + 935, + }, + dictWord{6, 0, 1942}, + dictWord{7, 0, 512}, + dictWord{136, 0, 983}, + dictWord{7, 10, 992}, + dictWord{8, 10, 301}, + dictWord{9, 10, 722}, + dictWord{12, 10, 63}, + dictWord{13, 10, 29}, + dictWord{14, 10, 161}, + dictWord{143, 10, 18}, + dictWord{136, 11, 76}, + dictWord{139, 10, 923}, + dictWord{134, 0, 645}, + dictWord{ + 134, + 0, + 851, + }, + dictWord{4, 0, 498}, + dictWord{132, 11, 293}, + dictWord{7, 0, 217}, + dictWord{8, 0, 140}, + dictWord{10, 0, 610}, + dictWord{14, 11, 352}, + dictWord{ + 17, + 11, + 53, + }, + dictWord{18, 11, 146}, + dictWord{18, 11, 152}, + dictWord{19, 11, 11}, + dictWord{150, 11, 54}, + dictWord{134, 0, 1448}, + dictWord{138, 11, 841}, + dictWord{133, 0, 905}, + dictWord{4, 11, 605}, + dictWord{7, 11, 518}, + dictWord{7, 11, 1282}, + dictWord{7, 11, 1918}, + dictWord{10, 11, 180}, + dictWord{139, 11, 218}, + dictWord{139, 11, 917}, + dictWord{135, 10, 825}, + dictWord{140, 10, 328}, + dictWord{4, 0, 456}, + dictWord{7, 0, 105}, + dictWord{7, 0, 358}, + dictWord{7, 0, 1637}, + dictWord{8, 0, 643}, + dictWord{139, 0, 483}, + dictWord{134, 0, 792}, + dictWord{6, 11, 96}, + dictWord{135, 11, 1426}, + dictWord{137, 11, 691}, + dictWord{ + 4, + 11, + 651, + }, + dictWord{133, 11, 289}, + dictWord{7, 11, 688}, + dictWord{8, 11, 35}, + dictWord{9, 11, 511}, + dictWord{10, 11, 767}, + dictWord{147, 11, 118}, + dictWord{ + 150, + 0, + 56, + }, + dictWord{5, 0, 243}, + dictWord{5, 0, 535}, + dictWord{6, 10, 204}, + dictWord{10, 10, 320}, + dictWord{10, 10, 583}, + dictWord{13, 10, 502}, + dictWord{ + 14, + 10, + 72, + }, + dictWord{14, 10, 274}, + dictWord{14, 10, 312}, + dictWord{14, 10, 344}, + dictWord{15, 10, 159}, + dictWord{16, 10, 62}, + dictWord{16, 10, 69}, + dictWord{ + 17, + 10, + 30, + }, + dictWord{18, 10, 42}, + dictWord{18, 10, 53}, + dictWord{18, 10, 84}, + dictWord{18, 10, 140}, + dictWord{19, 10, 68}, + dictWord{19, 10, 85}, + dictWord{20, 10, 5}, + dictWord{20, 10, 45}, + dictWord{20, 10, 101}, + dictWord{22, 10, 7}, + dictWord{150, 10, 20}, + dictWord{4, 10, 558}, + dictWord{6, 10, 390}, + dictWord{7, 10, 162}, + dictWord{7, 10, 689}, + dictWord{9, 10, 360}, + dictWord{138, 10, 653}, + dictWord{146, 11, 23}, + dictWord{135, 0, 1748}, + dictWord{5, 10, 856}, + dictWord{ + 6, + 10, + 1672, + }, + dictWord{6, 10, 1757}, + dictWord{134, 10, 1781}, + dictWord{5, 0, 539}, + dictWord{5, 0, 754}, + dictWord{6, 0, 876}, + dictWord{132, 11, 704}, + dictWord{ + 135, + 11, + 1078, + }, + dictWord{5, 10, 92}, + dictWord{10, 10, 736}, + dictWord{140, 10, 102}, + dictWord{17, 0, 91}, + dictWord{5, 10, 590}, + dictWord{137, 10, 213}, + dictWord{134, 0, 1565}, + dictWord{6, 0, 91}, + dictWord{135, 0, 435}, + dictWord{4, 0, 939}, + dictWord{140, 0, 792}, + dictWord{134, 0, 1399}, + dictWord{4, 0, 16}, + dictWord{ + 5, + 0, + 316, + }, + dictWord{5, 0, 842}, + dictWord{6, 0, 370}, + dictWord{6, 0, 1778}, + dictWord{8, 0, 166}, + dictWord{11, 0, 812}, + dictWord{12, 0, 206}, + dictWord{12, 0, 351}, + dictWord{14, 0, 418}, + dictWord{16, 0, 15}, + dictWord{16, 0, 34}, + dictWord{18, 0, 3}, + dictWord{19, 0, 3}, + dictWord{19, 0, 7}, + dictWord{20, 0, 4}, + dictWord{21, 0, 21}, + dictWord{ + 4, + 11, + 720, + }, + dictWord{133, 11, 306}, + dictWord{144, 0, 95}, + dictWord{133, 11, 431}, + dictWord{132, 11, 234}, + dictWord{135, 0, 551}, + dictWord{4, 0, 999}, + dictWord{6, 0, 1966}, + dictWord{134, 0, 2042}, + dictWord{7, 0, 619}, + dictWord{10, 0, 547}, + dictWord{11, 0, 122}, + dictWord{12, 0, 601}, + dictWord{15, 0, 7}, + dictWord{148, 0, 20}, + dictWord{5, 11, 464}, + dictWord{6, 11, 236}, + dictWord{7, 11, 276}, + dictWord{7, 11, 696}, + dictWord{7, 11, 914}, + dictWord{7, 11, 1108}, + dictWord{ + 7, + 11, + 1448, + }, + dictWord{9, 11, 15}, + dictWord{9, 11, 564}, + dictWord{10, 11, 14}, + dictWord{12, 11, 565}, + dictWord{13, 11, 449}, + dictWord{14, 11, 53}, + dictWord{ + 15, + 11, + 13, + }, + dictWord{16, 11, 64}, + dictWord{145, 11, 41}, + dictWord{6, 0, 884}, + dictWord{6, 0, 1019}, + dictWord{134, 0, 1150}, + dictWord{6, 11, 1767}, + dictWord{ + 12, + 11, + 194, + }, + dictWord{145, 11, 107}, + dictWord{136, 10, 503}, + dictWord{133, 11, 840}, + dictWord{7, 0, 671}, + dictWord{134, 10, 466}, + dictWord{132, 0, 888}, + dictWord{4, 0, 149}, + dictWord{138, 0, 368}, + dictWord{4, 0, 154}, + dictWord{7, 0, 1134}, + dictWord{136, 0, 105}, + dictWord{135, 0, 983}, + dictWord{9, 11, 642}, + dictWord{11, 11, 236}, + dictWord{142, 11, 193}, + dictWord{4, 0, 31}, + dictWord{6, 0, 429}, + dictWord{7, 0, 962}, + dictWord{9, 0, 458}, + dictWord{139, 0, 691}, + dictWord{ + 6, + 0, + 643, + }, + dictWord{134, 0, 1102}, + dictWord{132, 0, 312}, + dictWord{4, 11, 68}, + dictWord{5, 11, 634}, + dictWord{6, 11, 386}, + dictWord{7, 11, 794}, + dictWord{ + 8, + 11, + 273, + }, + dictWord{9, 11, 563}, + dictWord{10, 11, 105}, + dictWord{10, 11, 171}, + dictWord{11, 11, 94}, + dictWord{139, 11, 354}, + dictWord{133, 0, 740}, + dictWord{ + 135, + 0, + 1642, + }, + dictWord{4, 11, 95}, + dictWord{7, 11, 416}, + dictWord{8, 11, 211}, + dictWord{139, 11, 830}, + dictWord{132, 0, 236}, + dictWord{138, 10, 241}, + dictWord{7, 11, 731}, + dictWord{13, 11, 20}, + dictWord{143, 11, 11}, + dictWord{5, 0, 836}, + dictWord{5, 0, 857}, + dictWord{6, 0, 1680}, + dictWord{135, 0, 59}, + dictWord{ + 10, + 0, + 68, + }, + dictWord{11, 0, 494}, + dictWord{152, 11, 6}, + dictWord{4, 0, 81}, + dictWord{139, 0, 867}, + dictWord{135, 0, 795}, + dictWord{133, 11, 689}, + dictWord{ + 4, + 0, + 1001, + }, + dictWord{5, 0, 282}, + dictWord{6, 0, 1932}, + dictWord{6, 0, 1977}, + dictWord{6, 0, 1987}, + dictWord{6, 0, 1992}, + dictWord{8, 0, 650}, + dictWord{8, 0, 919}, + dictWord{8, 0, 920}, + dictWord{8, 0, 923}, + dictWord{8, 0, 926}, + dictWord{8, 0, 927}, + dictWord{8, 0, 931}, + dictWord{8, 0, 939}, + dictWord{8, 0, 947}, + dictWord{8, 0, 956}, + dictWord{8, 0, 997}, + dictWord{9, 0, 907}, + dictWord{10, 0, 950}, + dictWord{10, 0, 953}, + dictWord{10, 0, 954}, + dictWord{10, 0, 956}, + dictWord{10, 0, 958}, + dictWord{ + 10, + 0, + 959, + }, + dictWord{10, 0, 964}, + dictWord{10, 0, 970}, + dictWord{10, 0, 972}, + dictWord{10, 0, 973}, + dictWord{10, 0, 975}, + dictWord{10, 0, 976}, + dictWord{ + 10, + 0, + 980, + }, + dictWord{10, 0, 981}, + dictWord{10, 0, 984}, + dictWord{10, 0, 988}, + dictWord{10, 0, 990}, + dictWord{10, 0, 995}, + dictWord{10, 0, 999}, + dictWord{ + 10, + 0, + 1002, + }, + dictWord{10, 0, 1003}, + dictWord{10, 0, 1005}, + dictWord{10, 0, 1006}, + dictWord{10, 0, 1008}, + dictWord{10, 0, 1009}, + dictWord{10, 0, 1012}, + dictWord{10, 0, 1014}, + dictWord{10, 0, 1015}, + dictWord{10, 0, 1019}, + dictWord{10, 0, 1020}, + dictWord{10, 0, 1022}, + dictWord{12, 0, 959}, + dictWord{12, 0, 961}, + dictWord{12, 0, 962}, + dictWord{12, 0, 963}, + dictWord{12, 0, 964}, + dictWord{12, 0, 965}, + dictWord{12, 0, 967}, + dictWord{12, 0, 968}, + dictWord{12, 0, 969}, + dictWord{12, 0, 970}, + dictWord{12, 0, 971}, + dictWord{12, 0, 972}, + dictWord{12, 0, 973}, + dictWord{12, 0, 974}, + dictWord{12, 0, 975}, + dictWord{12, 0, 976}, + dictWord{ + 12, + 0, + 977, + }, + dictWord{12, 0, 979}, + dictWord{12, 0, 981}, + dictWord{12, 0, 982}, + dictWord{12, 0, 983}, + dictWord{12, 0, 984}, + dictWord{12, 0, 985}, + dictWord{ + 12, + 0, + 986, + }, + dictWord{12, 0, 987}, + dictWord{12, 0, 989}, + dictWord{12, 0, 990}, + dictWord{12, 0, 992}, + dictWord{12, 0, 993}, + dictWord{12, 0, 995}, + dictWord{12, 0, 998}, + dictWord{12, 0, 999}, + dictWord{12, 0, 1000}, + dictWord{12, 0, 1001}, + dictWord{12, 0, 1002}, + dictWord{12, 0, 1004}, + dictWord{12, 0, 1005}, + dictWord{ + 12, + 0, + 1006, + }, + dictWord{12, 0, 1007}, + dictWord{12, 0, 1008}, + dictWord{12, 0, 1009}, + dictWord{12, 0, 1010}, + dictWord{12, 0, 1011}, + dictWord{12, 0, 1012}, + dictWord{12, 0, 1014}, + dictWord{12, 0, 1015}, + dictWord{12, 0, 1016}, + dictWord{12, 0, 1017}, + dictWord{12, 0, 1018}, + dictWord{12, 0, 1019}, + dictWord{ + 12, + 0, + 1022, + }, + dictWord{12, 0, 1023}, + dictWord{14, 0, 475}, + dictWord{14, 0, 477}, + dictWord{14, 0, 478}, + dictWord{14, 0, 479}, + dictWord{14, 0, 480}, + dictWord{ + 14, + 0, + 482, + }, + dictWord{14, 0, 483}, + dictWord{14, 0, 484}, + dictWord{14, 0, 485}, + dictWord{14, 0, 486}, + dictWord{14, 0, 487}, + dictWord{14, 0, 488}, + dictWord{14, 0, 489}, + dictWord{14, 0, 490}, + dictWord{14, 0, 491}, + dictWord{14, 0, 492}, + dictWord{14, 0, 493}, + dictWord{14, 0, 494}, + dictWord{14, 0, 495}, + dictWord{14, 0, 496}, + dictWord{14, 0, 497}, + dictWord{14, 0, 498}, + dictWord{14, 0, 499}, + dictWord{14, 0, 500}, + dictWord{14, 0, 501}, + dictWord{14, 0, 502}, + dictWord{14, 0, 503}, + dictWord{ + 14, + 0, + 504, + }, + dictWord{14, 0, 506}, + dictWord{14, 0, 507}, + dictWord{14, 0, 508}, + dictWord{14, 0, 509}, + dictWord{14, 0, 510}, + dictWord{14, 0, 511}, + dictWord{ + 16, + 0, + 113, + }, + dictWord{16, 0, 114}, + dictWord{16, 0, 115}, + dictWord{16, 0, 117}, + dictWord{16, 0, 118}, + dictWord{16, 0, 119}, + dictWord{16, 0, 121}, + dictWord{16, 0, 122}, + dictWord{16, 0, 123}, + dictWord{16, 0, 124}, + dictWord{16, 0, 125}, + dictWord{16, 0, 126}, + dictWord{16, 0, 127}, + dictWord{18, 0, 242}, + dictWord{18, 0, 243}, + dictWord{18, 0, 244}, + dictWord{18, 0, 245}, + dictWord{18, 0, 248}, + dictWord{18, 0, 249}, + dictWord{18, 0, 250}, + dictWord{18, 0, 251}, + dictWord{18, 0, 252}, + dictWord{ + 18, + 0, + 253, + }, + dictWord{18, 0, 254}, + dictWord{18, 0, 255}, + dictWord{20, 0, 125}, + dictWord{20, 0, 126}, + dictWord{148, 0, 127}, + dictWord{7, 11, 1717}, + dictWord{ + 7, + 11, + 1769, + }, + dictWord{138, 11, 546}, + dictWord{7, 11, 1127}, + dictWord{7, 11, 1572}, + dictWord{10, 11, 297}, + dictWord{10, 11, 422}, + dictWord{11, 11, 764}, + dictWord{11, 11, 810}, + dictWord{12, 11, 264}, + dictWord{13, 11, 102}, + dictWord{13, 11, 300}, + dictWord{13, 11, 484}, + dictWord{14, 11, 147}, + dictWord{ + 14, + 11, + 229, + }, + dictWord{17, 11, 71}, + dictWord{18, 11, 118}, + dictWord{147, 11, 120}, + dictWord{6, 0, 1148}, + dictWord{134, 0, 1586}, + dictWord{132, 0, 775}, + dictWord{135, 10, 954}, + dictWord{133, 11, 864}, + dictWord{133, 11, 928}, + dictWord{138, 11, 189}, + dictWord{135, 10, 1958}, + dictWord{6, 10, 549}, + dictWord{ + 8, + 10, + 34, + }, + dictWord{8, 10, 283}, + dictWord{9, 10, 165}, + dictWord{138, 10, 475}, + dictWord{5, 10, 652}, + dictWord{5, 10, 701}, + dictWord{135, 10, 449}, + dictWord{135, 11, 695}, + dictWord{4, 10, 655}, + dictWord{7, 10, 850}, + dictWord{17, 10, 75}, + dictWord{146, 10, 137}, + dictWord{140, 11, 682}, + dictWord{ + 133, + 11, + 523, + }, + dictWord{8, 0, 970}, + dictWord{136, 10, 670}, + dictWord{136, 11, 555}, + dictWord{7, 11, 76}, + dictWord{8, 11, 44}, + dictWord{9, 11, 884}, + dictWord{ + 10, + 11, + 580, + }, + dictWord{11, 11, 399}, + dictWord{11, 11, 894}, + dictWord{15, 11, 122}, + dictWord{18, 11, 144}, + dictWord{147, 11, 61}, + dictWord{6, 10, 159}, + dictWord{ + 6, + 10, + 364, + }, + dictWord{7, 10, 516}, + dictWord{7, 10, 1439}, + dictWord{137, 10, 518}, + dictWord{4, 0, 71}, + dictWord{5, 0, 376}, + dictWord{7, 0, 119}, + dictWord{ + 138, + 0, + 665, + }, + dictWord{141, 10, 151}, + dictWord{11, 0, 827}, + dictWord{14, 0, 34}, + dictWord{143, 0, 148}, + dictWord{133, 11, 518}, + dictWord{4, 0, 479}, + dictWord{ + 135, + 11, + 1787, + }, + dictWord{135, 11, 1852}, + dictWord{135, 10, 993}, + dictWord{7, 0, 607}, + dictWord{136, 0, 99}, + dictWord{134, 0, 1960}, + dictWord{132, 0, 793}, + dictWord{4, 0, 41}, + dictWord{5, 0, 74}, + dictWord{7, 0, 1627}, + dictWord{11, 0, 871}, + dictWord{140, 0, 619}, + dictWord{7, 0, 94}, + dictWord{11, 0, 329}, + dictWord{ + 11, + 0, + 965, + }, + dictWord{12, 0, 241}, + dictWord{14, 0, 354}, + dictWord{15, 0, 22}, + dictWord{148, 0, 63}, + dictWord{7, 10, 501}, + dictWord{9, 10, 111}, + dictWord{10, 10, 141}, + dictWord{11, 10, 332}, + dictWord{13, 10, 43}, + dictWord{13, 10, 429}, + dictWord{14, 10, 130}, + dictWord{14, 10, 415}, + dictWord{145, 10, 102}, + dictWord{ + 9, + 0, + 209, + }, + dictWord{137, 0, 300}, + dictWord{134, 0, 1497}, + dictWord{138, 11, 255}, + dictWord{4, 11, 934}, + dictWord{5, 11, 138}, + dictWord{136, 11, 610}, + dictWord{133, 0, 98}, + dictWord{6, 0, 1316}, + dictWord{10, 11, 804}, + dictWord{138, 11, 832}, + dictWord{8, 11, 96}, + dictWord{9, 11, 36}, + dictWord{10, 11, 607}, + dictWord{11, 11, 423}, + dictWord{11, 11, 442}, + dictWord{12, 11, 309}, + dictWord{14, 11, 199}, + dictWord{15, 11, 90}, + dictWord{145, 11, 110}, + dictWord{ + 132, + 0, + 463, + }, + dictWord{5, 10, 149}, + dictWord{136, 10, 233}, + dictWord{133, 10, 935}, + dictWord{4, 11, 652}, + dictWord{8, 11, 320}, + dictWord{9, 11, 13}, + dictWord{ + 9, + 11, + 398, + }, + dictWord{9, 11, 727}, + dictWord{10, 11, 75}, + dictWord{10, 11, 184}, + dictWord{10, 11, 230}, + dictWord{10, 11, 564}, + dictWord{10, 11, 569}, + dictWord{ + 11, + 11, + 973, + }, + dictWord{12, 11, 70}, + dictWord{12, 11, 189}, + dictWord{13, 11, 57}, + dictWord{13, 11, 257}, + dictWord{22, 11, 6}, + dictWord{150, 11, 16}, + dictWord{ + 142, + 0, + 291, + }, + dictWord{12, 10, 582}, + dictWord{146, 10, 131}, + dictWord{136, 10, 801}, + dictWord{133, 0, 984}, + dictWord{145, 11, 116}, + dictWord{4, 11, 692}, + dictWord{133, 11, 321}, + dictWord{4, 0, 182}, + dictWord{6, 0, 205}, + dictWord{135, 0, 220}, + dictWord{4, 0, 42}, + dictWord{9, 0, 205}, + dictWord{9, 0, 786}, + dictWord{ + 138, + 0, + 659, + }, + dictWord{6, 0, 801}, + dictWord{11, 11, 130}, + dictWord{140, 11, 609}, + dictWord{132, 0, 635}, + dictWord{5, 11, 345}, + dictWord{135, 11, 1016}, + dictWord{139, 0, 533}, + dictWord{132, 0, 371}, + dictWord{4, 0, 272}, + dictWord{135, 0, 836}, + dictWord{6, 0, 1282}, + dictWord{135, 11, 1100}, + dictWord{5, 0, 825}, + dictWord{134, 0, 1640}, + dictWord{135, 11, 1325}, + dictWord{133, 11, 673}, + dictWord{4, 11, 287}, + dictWord{133, 11, 1018}, + dictWord{135, 0, 357}, + dictWord{ + 6, + 0, + 467, + }, + dictWord{137, 0, 879}, + dictWord{7, 0, 317}, + dictWord{135, 0, 569}, + dictWord{6, 0, 924}, + dictWord{134, 0, 1588}, + dictWord{5, 11, 34}, + dictWord{ + 5, + 10, + 406, + }, + dictWord{10, 11, 724}, + dictWord{12, 11, 444}, + dictWord{13, 11, 354}, + dictWord{18, 11, 32}, + dictWord{23, 11, 24}, + dictWord{23, 11, 31}, + dictWord{ + 152, + 11, + 5, + }, + dictWord{6, 0, 1795}, + dictWord{6, 0, 1835}, + dictWord{6, 0, 1836}, + dictWord{6, 0, 1856}, + dictWord{8, 0, 844}, + dictWord{8, 0, 849}, + dictWord{8, 0, 854}, + dictWord{8, 0, 870}, + dictWord{8, 0, 887}, + dictWord{10, 0, 852}, + dictWord{138, 0, 942}, + dictWord{6, 10, 69}, + dictWord{135, 10, 117}, + dictWord{137, 0, 307}, + dictWord{ + 4, + 0, + 944, + }, + dictWord{6, 0, 1799}, + dictWord{6, 0, 1825}, + dictWord{10, 0, 848}, + dictWord{10, 0, 875}, + dictWord{10, 0, 895}, + dictWord{10, 0, 899}, + dictWord{ + 10, + 0, + 902, + }, + dictWord{140, 0, 773}, + dictWord{11, 0, 43}, + dictWord{13, 0, 72}, + dictWord{141, 0, 142}, + dictWord{135, 10, 1830}, + dictWord{134, 11, 382}, + dictWord{ + 4, + 10, + 432, + }, + dictWord{135, 10, 824}, + dictWord{132, 11, 329}, + dictWord{7, 0, 1820}, + dictWord{139, 11, 124}, + dictWord{133, 10, 826}, + dictWord{ + 133, + 0, + 525, + }, + dictWord{132, 11, 906}, + dictWord{7, 11, 1940}, + dictWord{136, 11, 366}, + dictWord{138, 11, 10}, + dictWord{4, 11, 123}, + dictWord{4, 11, 649}, + dictWord{ + 5, + 11, + 605, + }, + dictWord{7, 11, 1509}, + dictWord{136, 11, 36}, + dictWord{6, 0, 110}, + dictWord{135, 0, 1681}, + dictWord{133, 0, 493}, + dictWord{133, 11, 767}, + dictWord{4, 0, 174}, + dictWord{135, 0, 911}, + dictWord{138, 11, 786}, + dictWord{8, 0, 417}, + dictWord{137, 0, 782}, + dictWord{133, 10, 1000}, + dictWord{7, 0, 733}, + dictWord{137, 0, 583}, + dictWord{4, 10, 297}, + dictWord{6, 10, 529}, + dictWord{7, 10, 152}, + dictWord{7, 10, 713}, + dictWord{7, 10, 1845}, + dictWord{8, 10, 710}, + dictWord{8, 10, 717}, + dictWord{12, 10, 639}, + dictWord{140, 10, 685}, + dictWord{4, 0, 32}, + dictWord{5, 0, 215}, + dictWord{6, 0, 269}, + dictWord{7, 0, 1782}, + dictWord{ + 7, + 0, + 1892, + }, + dictWord{10, 0, 16}, + dictWord{11, 0, 822}, + dictWord{11, 0, 954}, + dictWord{141, 0, 481}, + dictWord{4, 11, 273}, + dictWord{5, 11, 658}, + dictWord{ + 133, + 11, + 995, + }, + dictWord{136, 0, 477}, + dictWord{134, 11, 72}, + dictWord{135, 11, 1345}, + dictWord{5, 0, 308}, + dictWord{7, 0, 1088}, + dictWord{4, 10, 520}, + dictWord{ + 135, + 10, + 575, + }, + dictWord{133, 11, 589}, + dictWord{5, 0, 126}, + dictWord{8, 0, 297}, + dictWord{9, 0, 366}, + dictWord{140, 0, 374}, + dictWord{7, 0, 1551}, + dictWord{ + 139, + 0, + 361, + }, + dictWord{5, 11, 117}, + dictWord{6, 11, 514}, + dictWord{6, 11, 541}, + dictWord{7, 11, 1164}, + dictWord{7, 11, 1436}, + dictWord{8, 11, 220}, + dictWord{ + 8, + 11, + 648, + }, + dictWord{10, 11, 688}, + dictWord{139, 11, 560}, + dictWord{133, 11, 686}, + dictWord{4, 0, 946}, + dictWord{6, 0, 1807}, + dictWord{8, 0, 871}, + dictWord{ + 10, + 0, + 854, + }, + dictWord{10, 0, 870}, + dictWord{10, 0, 888}, + dictWord{10, 0, 897}, + dictWord{10, 0, 920}, + dictWord{12, 0, 722}, + dictWord{12, 0, 761}, + dictWord{ + 12, + 0, + 763, + }, + dictWord{12, 0, 764}, + dictWord{14, 0, 454}, + dictWord{14, 0, 465}, + dictWord{16, 0, 107}, + dictWord{18, 0, 167}, + dictWord{18, 0, 168}, + dictWord{ + 146, + 0, + 172, + }, + dictWord{132, 0, 175}, + dictWord{135, 0, 1307}, + dictWord{132, 0, 685}, + dictWord{135, 11, 1834}, + dictWord{133, 0, 797}, + dictWord{6, 0, 745}, + dictWord{ + 6, + 0, + 858, + }, + dictWord{134, 0, 963}, + dictWord{133, 0, 565}, + dictWord{5, 10, 397}, + dictWord{6, 10, 154}, + dictWord{7, 11, 196}, + dictWord{7, 10, 676}, + dictWord{ + 8, + 10, + 443, + }, + dictWord{8, 10, 609}, + dictWord{9, 10, 24}, + dictWord{9, 10, 325}, + dictWord{10, 10, 35}, + dictWord{10, 11, 765}, + dictWord{11, 11, 347}, + dictWord{ + 11, + 10, + 535, + }, + dictWord{11, 11, 552}, + dictWord{11, 11, 576}, + dictWord{11, 10, 672}, + dictWord{11, 11, 790}, + dictWord{11, 10, 1018}, + dictWord{12, 11, 263}, + dictWord{12, 10, 637}, + dictWord{13, 11, 246}, + dictWord{13, 11, 270}, + dictWord{13, 11, 395}, + dictWord{14, 11, 74}, + dictWord{14, 11, 176}, + dictWord{ + 14, + 11, + 190, + }, + dictWord{14, 11, 398}, + dictWord{14, 11, 412}, + dictWord{15, 11, 32}, + dictWord{15, 11, 63}, + dictWord{16, 10, 30}, + dictWord{16, 11, 88}, + dictWord{ + 147, + 11, + 105, + }, + dictWord{13, 11, 84}, + dictWord{141, 11, 122}, + dictWord{4, 0, 252}, + dictWord{7, 0, 1068}, + dictWord{10, 0, 434}, + dictWord{11, 0, 228}, + dictWord{ + 11, + 0, + 426, + }, + dictWord{13, 0, 231}, + dictWord{18, 0, 106}, + dictWord{148, 0, 87}, + dictWord{137, 0, 826}, + dictWord{4, 11, 589}, + dictWord{139, 11, 282}, + dictWord{ + 5, + 11, + 381, + }, + dictWord{135, 11, 1792}, + dictWord{132, 0, 791}, + dictWord{5, 0, 231}, + dictWord{10, 0, 509}, + dictWord{133, 10, 981}, + dictWord{7, 0, 601}, + dictWord{ + 9, + 0, + 277, + }, + dictWord{9, 0, 674}, + dictWord{10, 0, 178}, + dictWord{10, 0, 418}, + dictWord{10, 0, 571}, + dictWord{11, 0, 531}, + dictWord{12, 0, 113}, + dictWord{12, 0, 475}, + dictWord{13, 0, 99}, + dictWord{142, 0, 428}, + dictWord{4, 10, 56}, + dictWord{7, 11, 616}, + dictWord{7, 10, 1791}, + dictWord{8, 10, 607}, + dictWord{8, 10, 651}, + dictWord{10, 11, 413}, + dictWord{11, 10, 465}, + dictWord{11, 10, 835}, + dictWord{12, 10, 337}, + dictWord{141, 10, 480}, + dictWord{7, 0, 1591}, + dictWord{144, 0, 43}, + dictWord{9, 10, 158}, + dictWord{138, 10, 411}, + dictWord{135, 0, 1683}, + dictWord{8, 0, 289}, + dictWord{11, 0, 45}, + dictWord{12, 0, 278}, + dictWord{140, 0, 537}, + dictWord{6, 11, 120}, + dictWord{7, 11, 1188}, + dictWord{7, 11, 1710}, + dictWord{8, 11, 286}, + dictWord{9, 11, 667}, + dictWord{11, 11, 592}, + dictWord{ + 139, + 11, + 730, + }, + dictWord{136, 10, 617}, + dictWord{135, 0, 1120}, + dictWord{135, 11, 1146}, + dictWord{139, 10, 563}, + dictWord{4, 11, 352}, + dictWord{4, 10, 369}, + dictWord{135, 11, 687}, + dictWord{143, 11, 38}, + dictWord{4, 0, 399}, + dictWord{5, 0, 119}, + dictWord{5, 0, 494}, + dictWord{7, 0, 751}, + dictWord{9, 0, 556}, + dictWord{ + 14, + 11, + 179, + }, + dictWord{15, 11, 151}, + dictWord{150, 11, 11}, + dictWord{4, 11, 192}, + dictWord{5, 11, 49}, + dictWord{6, 11, 200}, + dictWord{6, 11, 293}, + dictWord{ + 6, + 11, + 1696, + }, + dictWord{135, 11, 488}, + dictWord{4, 0, 398}, + dictWord{133, 0, 660}, + dictWord{7, 0, 1030}, + dictWord{134, 10, 622}, + dictWord{135, 11, 595}, + dictWord{141, 0, 168}, + dictWord{132, 11, 147}, + dictWord{7, 0, 973}, + dictWord{10, 10, 624}, + dictWord{142, 10, 279}, + dictWord{132, 10, 363}, + dictWord{ + 132, + 0, + 642, + }, + dictWord{133, 11, 934}, + dictWord{134, 0, 1615}, + dictWord{7, 11, 505}, + dictWord{135, 11, 523}, + dictWord{7, 0, 594}, + dictWord{7, 0, 851}, + dictWord{ + 7, + 0, + 1858, + }, + dictWord{9, 0, 411}, + dictWord{9, 0, 574}, + dictWord{9, 0, 666}, + dictWord{9, 0, 737}, + dictWord{10, 0, 346}, + dictWord{10, 0, 712}, + dictWord{11, 0, 246}, + dictWord{11, 0, 432}, + dictWord{11, 0, 517}, + dictWord{11, 0, 647}, + dictWord{11, 0, 679}, + dictWord{11, 0, 727}, + dictWord{12, 0, 304}, + dictWord{12, 0, 305}, + dictWord{ + 12, + 0, + 323, + }, + dictWord{12, 0, 483}, + dictWord{12, 0, 572}, + dictWord{12, 0, 593}, + dictWord{12, 0, 602}, + dictWord{13, 0, 95}, + dictWord{13, 0, 101}, + dictWord{ + 13, + 0, + 171, + }, + dictWord{13, 0, 315}, + dictWord{13, 0, 378}, + dictWord{13, 0, 425}, + dictWord{13, 0, 475}, + dictWord{14, 0, 63}, + dictWord{14, 0, 380}, + dictWord{14, 0, 384}, + dictWord{15, 0, 133}, + dictWord{18, 0, 112}, + dictWord{148, 0, 72}, + dictWord{135, 0, 1093}, + dictWord{132, 0, 679}, + dictWord{8, 0, 913}, + dictWord{10, 0, 903}, + dictWord{10, 0, 915}, + dictWord{12, 0, 648}, + dictWord{12, 0, 649}, + dictWord{14, 0, 455}, + dictWord{16, 0, 112}, + dictWord{138, 11, 438}, + dictWord{137, 0, 203}, + dictWord{134, 10, 292}, + dictWord{134, 0, 1492}, + dictWord{7, 0, 1374}, + dictWord{8, 0, 540}, + dictWord{5, 10, 177}, + dictWord{6, 10, 616}, + dictWord{7, 10, 827}, + dictWord{9, 10, 525}, + dictWord{138, 10, 656}, + dictWord{135, 0, 1486}, + dictWord{9, 0, 714}, + dictWord{138, 10, 31}, + dictWord{136, 0, 825}, + dictWord{ + 134, + 0, + 1511, + }, + dictWord{132, 11, 637}, + dictWord{134, 0, 952}, + dictWord{4, 10, 161}, + dictWord{133, 10, 631}, + dictWord{5, 0, 143}, + dictWord{5, 0, 769}, + dictWord{ + 6, + 0, + 1760, + }, + dictWord{7, 0, 682}, + dictWord{7, 0, 1992}, + dictWord{136, 0, 736}, + dictWord{132, 0, 700}, + dictWord{134, 0, 1540}, + dictWord{132, 11, 777}, + dictWord{ + 9, + 11, + 867, + }, + dictWord{138, 11, 837}, + dictWord{7, 0, 1557}, + dictWord{135, 10, 1684}, + dictWord{133, 0, 860}, + dictWord{6, 0, 422}, + dictWord{7, 0, 0}, + dictWord{ + 7, + 0, + 1544, + }, + dictWord{9, 0, 605}, + dictWord{11, 0, 990}, + dictWord{12, 0, 235}, + dictWord{12, 0, 453}, + dictWord{13, 0, 47}, + dictWord{13, 0, 266}, + dictWord{9, 10, 469}, + dictWord{9, 10, 709}, + dictWord{12, 10, 512}, + dictWord{14, 10, 65}, + dictWord{145, 10, 12}, + dictWord{11, 0, 807}, + dictWord{10, 10, 229}, + dictWord{11, 10, 73}, + dictWord{139, 10, 376}, + dictWord{6, 11, 170}, + dictWord{7, 11, 1080}, + dictWord{8, 11, 395}, + dictWord{8, 11, 487}, + dictWord{11, 11, 125}, + dictWord{ + 141, + 11, + 147, + }, + dictWord{5, 0, 515}, + dictWord{137, 0, 131}, + dictWord{7, 0, 1605}, + dictWord{11, 0, 962}, + dictWord{146, 0, 139}, + dictWord{132, 0, 646}, + dictWord{ + 4, + 0, + 396, + }, + dictWord{7, 0, 728}, + dictWord{9, 0, 117}, + dictWord{13, 0, 202}, + dictWord{148, 0, 51}, + dictWord{6, 0, 121}, + dictWord{6, 0, 124}, + dictWord{6, 0, 357}, + dictWord{ + 7, + 0, + 1138, + }, + dictWord{7, 0, 1295}, + dictWord{8, 0, 162}, + dictWord{8, 0, 508}, + dictWord{11, 0, 655}, + dictWord{4, 11, 535}, + dictWord{6, 10, 558}, + dictWord{ + 7, + 10, + 651, + }, + dictWord{8, 11, 618}, + dictWord{9, 10, 0}, + dictWord{10, 10, 34}, + dictWord{139, 10, 1008}, + dictWord{135, 11, 1245}, + dictWord{138, 0, 357}, + dictWord{ + 150, + 11, + 23, + }, + dictWord{133, 0, 237}, + dictWord{135, 0, 1784}, + dictWord{7, 10, 1832}, + dictWord{138, 10, 374}, + dictWord{132, 0, 713}, + dictWord{132, 11, 46}, + dictWord{6, 0, 1536}, + dictWord{10, 0, 348}, + dictWord{5, 11, 811}, + dictWord{6, 11, 1679}, + dictWord{6, 11, 1714}, + dictWord{135, 11, 2032}, + dictWord{ + 11, + 11, + 182, + }, + dictWord{142, 11, 195}, + dictWord{6, 0, 523}, + dictWord{7, 0, 738}, + dictWord{7, 10, 771}, + dictWord{7, 10, 1731}, + dictWord{9, 10, 405}, + dictWord{ + 138, + 10, + 421, + }, + dictWord{7, 11, 1458}, + dictWord{9, 11, 407}, + dictWord{139, 11, 15}, + dictWord{6, 11, 34}, + dictWord{7, 11, 69}, + dictWord{7, 11, 640}, + dictWord{ + 7, + 11, + 1089, + }, + dictWord{8, 11, 708}, + dictWord{8, 11, 721}, + dictWord{9, 11, 363}, + dictWord{9, 11, 643}, + dictWord{10, 11, 628}, + dictWord{148, 11, 98}, + dictWord{ + 133, + 0, + 434, + }, + dictWord{135, 0, 1877}, + dictWord{7, 0, 571}, + dictWord{138, 0, 366}, + dictWord{5, 10, 881}, + dictWord{133, 10, 885}, + dictWord{9, 0, 513}, + dictWord{ + 10, + 0, + 25, + }, + dictWord{10, 0, 39}, + dictWord{12, 0, 122}, + dictWord{140, 0, 187}, + dictWord{132, 0, 580}, + dictWord{5, 10, 142}, + dictWord{134, 10, 546}, + dictWord{ + 132, + 11, + 462, + }, + dictWord{137, 0, 873}, + dictWord{5, 10, 466}, + dictWord{11, 10, 571}, + dictWord{12, 10, 198}, + dictWord{13, 10, 283}, + dictWord{14, 10, 186}, + dictWord{15, 10, 21}, + dictWord{143, 10, 103}, + dictWord{7, 0, 171}, + dictWord{4, 10, 185}, + dictWord{5, 10, 257}, + dictWord{5, 10, 839}, + dictWord{5, 10, 936}, + dictWord{ + 9, + 10, + 399, + }, + dictWord{10, 10, 258}, + dictWord{10, 10, 395}, + dictWord{10, 10, 734}, + dictWord{11, 10, 1014}, + dictWord{12, 10, 23}, + dictWord{13, 10, 350}, + dictWord{14, 10, 150}, + dictWord{147, 10, 6}, + dictWord{134, 0, 625}, + dictWord{7, 0, 107}, + dictWord{7, 0, 838}, + dictWord{8, 0, 550}, + dictWord{138, 0, 401}, + dictWord{ + 5, + 11, + 73, + }, + dictWord{6, 11, 23}, + dictWord{134, 11, 338}, + dictWord{4, 0, 943}, + dictWord{6, 0, 1850}, + dictWord{12, 0, 713}, + dictWord{142, 0, 434}, + dictWord{ + 11, + 0, + 588, + }, + dictWord{11, 0, 864}, + dictWord{11, 0, 936}, + dictWord{11, 0, 968}, + dictWord{12, 0, 73}, + dictWord{12, 0, 343}, + dictWord{12, 0, 394}, + dictWord{13, 0, 275}, + dictWord{14, 0, 257}, + dictWord{15, 0, 160}, + dictWord{7, 10, 404}, + dictWord{7, 10, 1377}, + dictWord{7, 10, 1430}, + dictWord{7, 10, 2017}, + dictWord{8, 10, 149}, + dictWord{8, 10, 239}, + dictWord{8, 10, 512}, + dictWord{8, 10, 793}, + dictWord{8, 10, 818}, + dictWord{9, 10, 474}, + dictWord{9, 10, 595}, + dictWord{10, 10, 122}, + dictWord{10, 10, 565}, + dictWord{10, 10, 649}, + dictWord{10, 10, 783}, + dictWord{11, 10, 239}, + dictWord{11, 10, 295}, + dictWord{11, 10, 447}, + dictWord{ + 11, + 10, + 528, + }, + dictWord{11, 10, 639}, + dictWord{11, 10, 800}, + dictWord{12, 10, 25}, + dictWord{12, 10, 157}, + dictWord{12, 10, 316}, + dictWord{12, 10, 390}, + dictWord{ + 12, + 10, + 391, + }, + dictWord{12, 10, 395}, + dictWord{12, 10, 478}, + dictWord{12, 10, 503}, + dictWord{12, 10, 592}, + dictWord{12, 10, 680}, + dictWord{13, 10, 50}, + dictWord{13, 10, 53}, + dictWord{13, 10, 132}, + dictWord{13, 10, 198}, + dictWord{13, 10, 322}, + dictWord{13, 10, 415}, + dictWord{13, 10, 511}, + dictWord{14, 10, 71}, + dictWord{14, 10, 395}, + dictWord{15, 10, 71}, + dictWord{15, 10, 136}, + dictWord{17, 10, 123}, + dictWord{18, 10, 93}, + dictWord{147, 10, 58}, + dictWord{ + 133, + 0, + 768, + }, + dictWord{11, 0, 103}, + dictWord{142, 0, 0}, + dictWord{136, 10, 712}, + dictWord{132, 0, 799}, + dictWord{132, 0, 894}, + dictWord{7, 11, 725}, + dictWord{ + 8, + 11, + 498, + }, + dictWord{139, 11, 268}, + dictWord{135, 11, 1798}, + dictWord{135, 11, 773}, + dictWord{141, 11, 360}, + dictWord{4, 10, 377}, + dictWord{152, 10, 13}, + dictWord{135, 0, 1673}, + dictWord{132, 11, 583}, + dictWord{134, 0, 1052}, + dictWord{133, 11, 220}, + dictWord{140, 11, 69}, + dictWord{132, 11, 544}, + dictWord{ + 4, + 10, + 180, + }, + dictWord{135, 10, 1906}, + dictWord{134, 0, 272}, + dictWord{4, 0, 441}, + dictWord{134, 0, 1421}, + dictWord{4, 0, 9}, + dictWord{5, 0, 128}, + dictWord{ + 7, + 0, + 368, + }, + dictWord{11, 0, 480}, + dictWord{148, 0, 3}, + dictWord{5, 11, 176}, + dictWord{6, 11, 437}, + dictWord{6, 11, 564}, + dictWord{11, 11, 181}, + dictWord{ + 141, + 11, + 183, + }, + dictWord{132, 10, 491}, + dictWord{7, 0, 1182}, + dictWord{141, 11, 67}, + dictWord{6, 0, 1346}, + dictWord{4, 10, 171}, + dictWord{138, 10, 234}, + dictWord{ + 4, + 10, + 586, + }, + dictWord{7, 10, 1186}, + dictWord{138, 10, 631}, + dictWord{136, 0, 682}, + dictWord{134, 0, 1004}, + dictWord{15, 0, 24}, + dictWord{143, 11, 24}, + dictWord{134, 0, 968}, + dictWord{4, 0, 2}, + dictWord{6, 0, 742}, + dictWord{6, 0, 793}, + dictWord{7, 0, 545}, + dictWord{7, 0, 894}, + dictWord{9, 10, 931}, + dictWord{ + 10, + 10, + 334, + }, + dictWord{148, 10, 71}, + dictWord{136, 11, 600}, + dictWord{133, 10, 765}, + dictWord{9, 0, 769}, + dictWord{140, 0, 185}, + dictWord{4, 11, 790}, + dictWord{ + 5, + 11, + 273, + }, + dictWord{134, 11, 394}, + dictWord{7, 0, 474}, + dictWord{137, 0, 578}, + dictWord{4, 11, 135}, + dictWord{6, 11, 127}, + dictWord{7, 11, 1185}, + dictWord{ + 7, + 11, + 1511, + }, + dictWord{8, 11, 613}, + dictWord{11, 11, 5}, + dictWord{12, 11, 133}, + dictWord{12, 11, 495}, + dictWord{12, 11, 586}, + dictWord{14, 11, 385}, + dictWord{15, 11, 118}, + dictWord{17, 11, 20}, + dictWord{146, 11, 98}, + dictWord{133, 10, 424}, + dictWord{5, 0, 530}, + dictWord{142, 0, 113}, + dictWord{6, 11, 230}, + dictWord{7, 11, 961}, + dictWord{7, 11, 1085}, + dictWord{136, 11, 462}, + dictWord{7, 11, 1954}, + dictWord{137, 11, 636}, + dictWord{136, 10, 714}, + dictWord{ + 149, + 11, + 6, + }, + dictWord{135, 10, 685}, + dictWord{9, 10, 420}, + dictWord{10, 10, 269}, + dictWord{10, 10, 285}, + dictWord{10, 10, 576}, + dictWord{11, 10, 397}, + dictWord{13, 10, 175}, + dictWord{145, 10, 90}, + dictWord{132, 10, 429}, + dictWord{5, 0, 556}, + dictWord{5, 11, 162}, + dictWord{136, 11, 68}, + dictWord{132, 11, 654}, + dictWord{4, 11, 156}, + dictWord{7, 11, 998}, + dictWord{7, 11, 1045}, + dictWord{7, 11, 1860}, + dictWord{9, 11, 48}, + dictWord{9, 11, 692}, + dictWord{11, 11, 419}, + dictWord{139, 11, 602}, + dictWord{6, 0, 1317}, + dictWord{8, 0, 16}, + dictWord{9, 0, 825}, + dictWord{12, 0, 568}, + dictWord{7, 11, 1276}, + dictWord{8, 11, 474}, + dictWord{137, 11, 652}, + dictWord{18, 0, 97}, + dictWord{7, 10, 18}, + dictWord{7, 10, 699}, + dictWord{7, 10, 1966}, + dictWord{8, 10, 752}, + dictWord{9, 10, 273}, + dictWord{ + 9, + 10, + 412, + }, + dictWord{9, 10, 703}, + dictWord{10, 10, 71}, + dictWord{10, 10, 427}, + dictWord{138, 10, 508}, + dictWord{10, 0, 703}, + dictWord{7, 11, 1454}, + dictWord{138, 11, 703}, + dictWord{4, 10, 53}, + dictWord{5, 10, 186}, + dictWord{135, 10, 752}, + dictWord{134, 0, 892}, + dictWord{134, 0, 1571}, + dictWord{8, 10, 575}, + dictWord{10, 10, 289}, + dictWord{139, 10, 319}, + dictWord{6, 0, 186}, + dictWord{137, 0, 426}, + dictWord{134, 0, 1101}, + dictWord{132, 10, 675}, + dictWord{ + 132, + 0, + 585, + }, + dictWord{6, 0, 1870}, + dictWord{137, 0, 937}, + dictWord{152, 11, 10}, + dictWord{9, 11, 197}, + dictWord{10, 11, 300}, + dictWord{12, 11, 473}, + dictWord{ + 13, + 11, + 90, + }, + dictWord{141, 11, 405}, + dictWord{4, 0, 93}, + dictWord{5, 0, 252}, + dictWord{6, 0, 229}, + dictWord{7, 0, 291}, + dictWord{9, 0, 550}, + dictWord{139, 0, 644}, + dictWord{137, 0, 749}, + dictWord{9, 0, 162}, + dictWord{6, 10, 209}, + dictWord{8, 10, 468}, + dictWord{9, 10, 210}, + dictWord{11, 10, 36}, + dictWord{12, 10, 28}, + dictWord{12, 10, 630}, + dictWord{13, 10, 21}, + dictWord{13, 10, 349}, + dictWord{14, 10, 7}, + dictWord{145, 10, 13}, + dictWord{132, 0, 381}, + dictWord{132, 11, 606}, + dictWord{4, 10, 342}, + dictWord{135, 10, 1179}, + dictWord{7, 11, 1587}, + dictWord{7, 11, 1707}, + dictWord{10, 11, 528}, + dictWord{139, 11, 504}, + dictWord{ + 12, + 11, + 39, + }, + dictWord{13, 11, 265}, + dictWord{141, 11, 439}, + dictWord{4, 10, 928}, + dictWord{133, 10, 910}, + dictWord{7, 10, 1838}, + dictWord{7, 11, 1978}, + dictWord{136, 11, 676}, + dictWord{6, 0, 762}, + dictWord{6, 0, 796}, + dictWord{134, 0, 956}, + dictWord{4, 10, 318}, + dictWord{4, 10, 496}, + dictWord{7, 10, 856}, + dictWord{139, 10, 654}, + dictWord{137, 11, 242}, + dictWord{4, 11, 361}, + dictWord{133, 11, 315}, + dictWord{132, 11, 461}, + dictWord{132, 11, 472}, + dictWord{ + 132, + 0, + 857, + }, + dictWord{5, 0, 21}, + dictWord{6, 0, 77}, + dictWord{6, 0, 157}, + dictWord{7, 0, 974}, + dictWord{7, 0, 1301}, + dictWord{7, 0, 1339}, + dictWord{7, 0, 1490}, + dictWord{ + 7, + 0, + 1873, + }, + dictWord{9, 0, 628}, + dictWord{7, 10, 915}, + dictWord{8, 10, 247}, + dictWord{147, 10, 0}, + dictWord{4, 10, 202}, + dictWord{5, 10, 382}, + dictWord{ + 6, + 10, + 454, + }, + dictWord{7, 10, 936}, + dictWord{7, 10, 1803}, + dictWord{8, 10, 758}, + dictWord{9, 10, 375}, + dictWord{9, 10, 895}, + dictWord{10, 10, 743}, + dictWord{ + 10, + 10, + 792, + }, + dictWord{11, 10, 978}, + dictWord{11, 10, 1012}, + dictWord{142, 10, 109}, + dictWord{7, 11, 617}, + dictWord{10, 11, 498}, + dictWord{11, 11, 501}, + dictWord{12, 11, 16}, + dictWord{140, 11, 150}, + dictWord{7, 10, 1150}, + dictWord{7, 10, 1425}, + dictWord{7, 10, 1453}, + dictWord{10, 11, 747}, + dictWord{ + 140, + 10, + 513, + }, + dictWord{133, 11, 155}, + dictWord{11, 0, 919}, + dictWord{141, 0, 409}, + dictWord{138, 10, 791}, + dictWord{10, 0, 633}, + dictWord{139, 11, 729}, + dictWord{ + 7, + 11, + 163, + }, + dictWord{8, 11, 319}, + dictWord{9, 11, 402}, + dictWord{10, 11, 24}, + dictWord{10, 11, 681}, + dictWord{11, 11, 200}, + dictWord{11, 11, 567}, + dictWord{12, 11, 253}, + dictWord{12, 11, 410}, + dictWord{142, 11, 219}, + dictWord{5, 11, 475}, + dictWord{7, 11, 1780}, + dictWord{9, 11, 230}, + dictWord{11, 11, 297}, + dictWord{11, 11, 558}, + dictWord{14, 11, 322}, + dictWord{147, 11, 76}, + dictWord{7, 0, 332}, + dictWord{6, 10, 445}, + dictWord{137, 10, 909}, + dictWord{ + 135, + 11, + 1956, + }, + dictWord{136, 11, 274}, + dictWord{134, 10, 578}, + dictWord{135, 0, 1489}, + dictWord{135, 11, 1848}, + dictWord{5, 11, 944}, + dictWord{ + 134, + 11, + 1769, + }, + dictWord{132, 11, 144}, + dictWord{136, 10, 766}, + dictWord{4, 0, 832}, + dictWord{135, 10, 541}, + dictWord{8, 0, 398}, + dictWord{9, 0, 681}, + dictWord{ + 139, + 0, + 632, + }, + dictWord{136, 0, 645}, + dictWord{9, 0, 791}, + dictWord{10, 0, 93}, + dictWord{16, 0, 13}, + dictWord{17, 0, 23}, + dictWord{18, 0, 135}, + dictWord{19, 0, 12}, + dictWord{20, 0, 1}, + dictWord{20, 0, 12}, + dictWord{148, 0, 14}, + dictWord{6, 11, 247}, + dictWord{137, 11, 555}, + dictWord{134, 0, 20}, + dictWord{132, 0, 800}, + dictWord{135, 0, 1841}, + dictWord{139, 10, 983}, + dictWord{137, 10, 768}, + dictWord{132, 10, 584}, + dictWord{141, 11, 51}, + dictWord{6, 0, 1993}, + dictWord{ + 4, + 11, + 620, + }, + dictWord{138, 11, 280}, + dictWord{136, 0, 769}, + dictWord{11, 0, 290}, + dictWord{11, 0, 665}, + dictWord{7, 11, 1810}, + dictWord{11, 11, 866}, + dictWord{ + 12, + 11, + 103, + }, + dictWord{13, 11, 495}, + dictWord{17, 11, 67}, + dictWord{147, 11, 74}, + dictWord{134, 0, 1426}, + dictWord{139, 0, 60}, + dictWord{4, 10, 326}, + dictWord{135, 10, 1770}, + dictWord{7, 0, 1874}, + dictWord{9, 0, 641}, + dictWord{132, 10, 226}, + dictWord{6, 0, 644}, + dictWord{5, 10, 426}, + dictWord{8, 10, 30}, + dictWord{ + 9, + 10, + 2, + }, + dictWord{11, 10, 549}, + dictWord{147, 10, 122}, + dictWord{5, 11, 428}, + dictWord{138, 11, 442}, + dictWord{135, 11, 1871}, + dictWord{ + 135, + 0, + 1757, + }, + dictWord{147, 10, 117}, + dictWord{135, 0, 937}, + dictWord{135, 0, 1652}, + dictWord{6, 0, 654}, + dictWord{134, 0, 1476}, + dictWord{133, 11, 99}, + dictWord{135, 0, 527}, + dictWord{132, 10, 345}, + dictWord{4, 10, 385}, + dictWord{4, 11, 397}, + dictWord{7, 10, 265}, + dictWord{135, 10, 587}, + dictWord{4, 0, 579}, + dictWord{5, 0, 226}, + dictWord{5, 0, 323}, + dictWord{135, 0, 960}, + dictWord{134, 0, 1486}, + dictWord{8, 11, 502}, + dictWord{144, 11, 9}, + dictWord{4, 10, 347}, + dictWord{ + 5, + 10, + 423, + }, + dictWord{5, 10, 996}, + dictWord{135, 10, 1329}, + dictWord{7, 11, 727}, + dictWord{146, 11, 73}, + dictWord{4, 11, 485}, + dictWord{7, 11, 353}, + dictWord{7, 10, 1259}, + dictWord{7, 11, 1523}, + dictWord{9, 10, 125}, + dictWord{139, 10, 65}, + dictWord{6, 0, 325}, + dictWord{5, 10, 136}, + dictWord{6, 11, 366}, + dictWord{ + 7, + 11, + 1384, + }, + dictWord{7, 11, 1601}, + dictWord{136, 10, 644}, + dictWord{138, 11, 160}, + dictWord{6, 0, 1345}, + dictWord{137, 11, 282}, + dictWord{18, 0, 91}, + dictWord{147, 0, 70}, + dictWord{136, 0, 404}, + dictWord{4, 11, 157}, + dictWord{133, 11, 471}, + dictWord{133, 0, 973}, + dictWord{6, 0, 135}, + dictWord{ + 135, + 0, + 1176, + }, + dictWord{8, 11, 116}, + dictWord{11, 11, 551}, + dictWord{142, 11, 159}, + dictWord{4, 0, 549}, + dictWord{4, 10, 433}, + dictWord{133, 10, 719}, + dictWord{ + 136, + 0, + 976, + }, + dictWord{5, 11, 160}, + dictWord{7, 11, 363}, + dictWord{7, 11, 589}, + dictWord{10, 11, 170}, + dictWord{141, 11, 55}, + dictWord{144, 0, 21}, + dictWord{ + 144, + 0, + 51, + }, + dictWord{135, 0, 314}, + dictWord{135, 10, 1363}, + dictWord{4, 11, 108}, + dictWord{7, 11, 405}, + dictWord{10, 11, 491}, + dictWord{139, 11, 498}, + dictWord{146, 0, 4}, + dictWord{4, 10, 555}, + dictWord{8, 10, 536}, + dictWord{10, 10, 288}, + dictWord{139, 10, 1005}, + dictWord{135, 11, 1005}, + dictWord{6, 0, 281}, + dictWord{7, 0, 6}, + dictWord{8, 0, 282}, + dictWord{8, 0, 480}, + dictWord{8, 0, 499}, + dictWord{9, 0, 198}, + dictWord{10, 0, 143}, + dictWord{10, 0, 169}, + dictWord{ + 10, + 0, + 211, + }, + dictWord{10, 0, 417}, + dictWord{10, 0, 574}, + dictWord{11, 0, 147}, + dictWord{11, 0, 395}, + dictWord{12, 0, 75}, + dictWord{12, 0, 407}, + dictWord{12, 0, 608}, + dictWord{13, 0, 500}, + dictWord{142, 0, 251}, + dictWord{6, 0, 1093}, + dictWord{6, 0, 1405}, + dictWord{9, 10, 370}, + dictWord{138, 10, 90}, + dictWord{4, 11, 926}, + dictWord{133, 11, 983}, + dictWord{135, 0, 1776}, + dictWord{134, 0, 1528}, + dictWord{132, 0, 419}, + dictWord{132, 11, 538}, + dictWord{6, 11, 294}, + dictWord{ + 7, + 11, + 1267, + }, + dictWord{136, 11, 624}, + dictWord{135, 11, 1772}, + dictWord{138, 11, 301}, + dictWord{4, 10, 257}, + dictWord{135, 10, 2031}, + dictWord{4, 0, 138}, + dictWord{7, 0, 1012}, + dictWord{7, 0, 1280}, + dictWord{9, 0, 76}, + dictWord{135, 10, 1768}, + dictWord{132, 11, 757}, + dictWord{5, 0, 29}, + dictWord{140, 0, 638}, + dictWord{7, 11, 655}, + dictWord{135, 11, 1844}, + dictWord{7, 0, 1418}, + dictWord{6, 11, 257}, + dictWord{135, 11, 1522}, + dictWord{8, 11, 469}, + dictWord{ + 138, + 11, + 47, + }, + dictWord{142, 11, 278}, + dictWord{6, 10, 83}, + dictWord{6, 10, 1733}, + dictWord{135, 10, 1389}, + dictWord{11, 11, 204}, + dictWord{11, 11, 243}, + dictWord{140, 11, 293}, + dictWord{135, 11, 1875}, + dictWord{6, 0, 1710}, + dictWord{135, 0, 2038}, + dictWord{137, 11, 299}, + dictWord{4, 0, 17}, + dictWord{5, 0, 23}, + dictWord{7, 0, 995}, + dictWord{11, 0, 383}, + dictWord{11, 0, 437}, + dictWord{12, 0, 460}, + dictWord{140, 0, 532}, + dictWord{133, 0, 862}, + dictWord{137, 10, 696}, + dictWord{6, 0, 592}, + dictWord{138, 0, 946}, + dictWord{138, 11, 599}, + dictWord{7, 10, 1718}, + dictWord{9, 10, 95}, + dictWord{9, 10, 274}, + dictWord{10, 10, 279}, + dictWord{10, 10, 317}, + dictWord{10, 10, 420}, + dictWord{11, 10, 303}, + dictWord{11, 10, 808}, + dictWord{12, 10, 134}, + dictWord{12, 10, 367}, + dictWord{ + 13, + 10, + 149, + }, + dictWord{13, 10, 347}, + dictWord{14, 10, 349}, + dictWord{14, 10, 406}, + dictWord{18, 10, 22}, + dictWord{18, 10, 89}, + dictWord{18, 10, 122}, + dictWord{ + 147, + 10, + 47, + }, + dictWord{8, 0, 70}, + dictWord{12, 0, 171}, + dictWord{141, 0, 272}, + dictWord{133, 10, 26}, + dictWord{132, 10, 550}, + dictWord{137, 0, 812}, + dictWord{ + 10, + 0, + 233, + }, + dictWord{139, 0, 76}, + dictWord{134, 0, 988}, + dictWord{134, 0, 442}, + dictWord{136, 10, 822}, + dictWord{7, 0, 896}, + dictWord{4, 10, 902}, + dictWord{ + 5, + 10, + 809, + }, + dictWord{134, 10, 122}, + dictWord{5, 11, 150}, + dictWord{7, 11, 106}, + dictWord{8, 11, 603}, + dictWord{9, 11, 593}, + dictWord{9, 11, 634}, + dictWord{ + 10, + 11, + 44, + }, + dictWord{10, 11, 173}, + dictWord{11, 11, 462}, + dictWord{11, 11, 515}, + dictWord{13, 11, 216}, + dictWord{13, 11, 288}, + dictWord{142, 11, 400}, + dictWord{136, 0, 483}, + dictWord{135, 10, 262}, + dictWord{6, 0, 1709}, + dictWord{133, 10, 620}, + dictWord{4, 10, 34}, + dictWord{5, 10, 574}, + dictWord{7, 10, 279}, + dictWord{7, 10, 1624}, + dictWord{136, 10, 601}, + dictWord{137, 10, 170}, + dictWord{147, 0, 119}, + dictWord{12, 11, 108}, + dictWord{141, 11, 291}, + dictWord{ + 11, + 0, + 69, + }, + dictWord{12, 0, 105}, + dictWord{12, 0, 117}, + dictWord{13, 0, 213}, + dictWord{14, 0, 13}, + dictWord{14, 0, 62}, + dictWord{14, 0, 177}, + dictWord{14, 0, 421}, + dictWord{15, 0, 19}, + dictWord{146, 0, 141}, + dictWord{137, 0, 309}, + dictWord{11, 11, 278}, + dictWord{142, 11, 73}, + dictWord{7, 0, 608}, + dictWord{7, 0, 976}, + dictWord{9, 0, 146}, + dictWord{10, 0, 206}, + dictWord{10, 0, 596}, + dictWord{13, 0, 218}, + dictWord{142, 0, 153}, + dictWord{133, 10, 332}, + dictWord{6, 10, 261}, + dictWord{ + 8, + 10, + 182, + }, + dictWord{139, 10, 943}, + dictWord{4, 11, 493}, + dictWord{144, 11, 55}, + dictWord{134, 10, 1721}, + dictWord{132, 0, 768}, + dictWord{4, 10, 933}, + dictWord{133, 10, 880}, + dictWord{7, 11, 555}, + dictWord{7, 11, 1316}, + dictWord{7, 11, 1412}, + dictWord{7, 11, 1839}, + dictWord{9, 11, 192}, + dictWord{ + 9, + 11, + 589, + }, + dictWord{11, 11, 241}, + dictWord{11, 11, 676}, + dictWord{11, 11, 811}, + dictWord{11, 11, 891}, + dictWord{12, 11, 140}, + dictWord{12, 11, 346}, + dictWord{ + 12, + 11, + 479, + }, + dictWord{13, 11, 30}, + dictWord{13, 11, 49}, + dictWord{13, 11, 381}, + dictWord{14, 11, 188}, + dictWord{15, 11, 150}, + dictWord{16, 11, 76}, + dictWord{18, 11, 30}, + dictWord{148, 11, 52}, + dictWord{4, 0, 518}, + dictWord{135, 0, 1136}, + dictWord{6, 11, 568}, + dictWord{7, 11, 112}, + dictWord{7, 11, 1804}, + dictWord{8, 11, 362}, + dictWord{8, 11, 410}, + dictWord{8, 11, 830}, + dictWord{9, 11, 514}, + dictWord{11, 11, 649}, + dictWord{142, 11, 157}, + dictWord{135, 11, 673}, + dictWord{8, 0, 689}, + dictWord{137, 0, 863}, + dictWord{4, 0, 18}, + dictWord{7, 0, 145}, + dictWord{7, 0, 444}, + dictWord{7, 0, 1278}, + dictWord{8, 0, 49}, + dictWord{8, 0, 400}, + dictWord{9, 0, 71}, + dictWord{9, 0, 250}, + dictWord{10, 0, 459}, + dictWord{12, 0, 160}, + dictWord{16, 0, 24}, + dictWord{132, 11, 625}, + dictWord{140, 0, 1020}, + dictWord{4, 0, 997}, + dictWord{6, 0, 1946}, + dictWord{6, 0, 1984}, + dictWord{134, 0, 1998}, + dictWord{6, 11, 16}, + dictWord{6, 11, 158}, + dictWord{7, 11, 43}, + dictWord{ + 7, + 11, + 129, + }, + dictWord{7, 11, 181}, + dictWord{8, 11, 276}, + dictWord{8, 11, 377}, + dictWord{10, 11, 523}, + dictWord{11, 11, 816}, + dictWord{12, 11, 455}, + dictWord{ + 13, + 11, + 303, + }, + dictWord{142, 11, 135}, + dictWord{133, 10, 812}, + dictWord{134, 0, 658}, + dictWord{4, 11, 1}, + dictWord{7, 11, 1143}, + dictWord{7, 11, 1463}, + dictWord{8, 11, 61}, + dictWord{9, 11, 207}, + dictWord{9, 11, 390}, + dictWord{9, 11, 467}, + dictWord{139, 11, 836}, + dictWord{150, 11, 26}, + dictWord{140, 0, 106}, + dictWord{6, 0, 1827}, + dictWord{10, 0, 931}, + dictWord{18, 0, 166}, + dictWord{20, 0, 114}, + dictWord{4, 10, 137}, + dictWord{7, 10, 1178}, + dictWord{7, 11, 1319}, + dictWord{135, 10, 1520}, + dictWord{133, 0, 1010}, + dictWord{4, 11, 723}, + dictWord{5, 11, 895}, + dictWord{7, 11, 1031}, + dictWord{8, 11, 199}, + dictWord{8, 11, 340}, + dictWord{9, 11, 153}, + dictWord{9, 11, 215}, + dictWord{10, 11, 21}, + dictWord{10, 11, 59}, + dictWord{10, 11, 80}, + dictWord{10, 11, 224}, + dictWord{11, 11, 229}, + dictWord{11, 11, 652}, + dictWord{12, 11, 192}, + dictWord{13, 11, 146}, + dictWord{142, 11, 91}, + dictWord{132, 11, 295}, + dictWord{6, 11, 619}, + dictWord{ + 7, + 11, + 898, + }, + dictWord{7, 11, 1092}, + dictWord{8, 11, 485}, + dictWord{18, 11, 28}, + dictWord{147, 11, 116}, + dictWord{137, 11, 51}, + dictWord{6, 10, 1661}, + dictWord{ + 7, + 10, + 1975, + }, + dictWord{7, 10, 2009}, + dictWord{135, 10, 2011}, + dictWord{5, 11, 309}, + dictWord{140, 11, 211}, + dictWord{5, 0, 87}, + dictWord{7, 0, 313}, + dictWord{ + 7, + 0, + 1103, + }, + dictWord{10, 0, 208}, + dictWord{10, 0, 582}, + dictWord{11, 0, 389}, + dictWord{11, 0, 813}, + dictWord{12, 0, 385}, + dictWord{13, 0, 286}, + dictWord{ + 14, + 0, + 124, + }, + dictWord{146, 0, 108}, + dictWord{5, 11, 125}, + dictWord{8, 11, 77}, + dictWord{138, 11, 15}, + dictWord{132, 0, 267}, + dictWord{133, 0, 703}, + dictWord{ + 137, + 11, + 155, + }, + dictWord{133, 11, 439}, + dictWord{11, 11, 164}, + dictWord{140, 11, 76}, + dictWord{9, 0, 496}, + dictWord{5, 10, 89}, + dictWord{7, 10, 1915}, + dictWord{ + 9, + 10, + 185, + }, + dictWord{9, 10, 235}, + dictWord{10, 10, 64}, + dictWord{10, 10, 270}, + dictWord{10, 10, 403}, + dictWord{10, 10, 469}, + dictWord{10, 10, 529}, + dictWord{10, 10, 590}, + dictWord{11, 10, 140}, + dictWord{11, 10, 860}, + dictWord{13, 10, 1}, + dictWord{13, 10, 422}, + dictWord{14, 10, 341}, + dictWord{14, 10, 364}, + dictWord{17, 10, 93}, + dictWord{18, 10, 113}, + dictWord{19, 10, 97}, + dictWord{147, 10, 113}, + dictWord{133, 10, 695}, + dictWord{135, 0, 1121}, + dictWord{ + 5, + 10, + 6, + }, + dictWord{6, 10, 183}, + dictWord{7, 10, 680}, + dictWord{7, 10, 978}, + dictWord{7, 10, 1013}, + dictWord{7, 10, 1055}, + dictWord{12, 10, 230}, + dictWord{ + 13, + 10, + 172, + }, + dictWord{146, 10, 29}, + dictWord{4, 11, 8}, + dictWord{7, 11, 1152}, + dictWord{7, 11, 1153}, + dictWord{7, 11, 1715}, + dictWord{9, 11, 374}, + dictWord{ + 10, + 11, + 478, + }, + dictWord{139, 11, 648}, + dictWord{135, 11, 1099}, + dictWord{6, 10, 29}, + dictWord{139, 10, 63}, + dictWord{4, 0, 561}, + dictWord{10, 0, 249}, + dictWord{ + 139, + 0, + 209, + }, + dictWord{132, 0, 760}, + dictWord{7, 11, 799}, + dictWord{138, 11, 511}, + dictWord{136, 11, 87}, + dictWord{9, 0, 154}, + dictWord{140, 0, 485}, + dictWord{136, 0, 255}, + dictWord{132, 0, 323}, + dictWord{140, 0, 419}, + dictWord{132, 10, 311}, + dictWord{134, 10, 1740}, + dictWord{4, 0, 368}, + dictWord{ + 135, + 0, + 641, + }, + dictWord{7, 10, 170}, + dictWord{8, 10, 90}, + dictWord{8, 10, 177}, + dictWord{8, 10, 415}, + dictWord{11, 10, 714}, + dictWord{142, 10, 281}, + dictWord{ + 4, + 11, + 69, + }, + dictWord{5, 11, 122}, + dictWord{9, 11, 656}, + dictWord{138, 11, 464}, + dictWord{5, 11, 849}, + dictWord{134, 11, 1633}, + dictWord{8, 0, 522}, + dictWord{ + 142, + 0, + 328, + }, + dictWord{11, 10, 91}, + dictWord{13, 10, 129}, + dictWord{15, 10, 101}, + dictWord{145, 10, 125}, + dictWord{7, 0, 562}, + dictWord{8, 0, 551}, + dictWord{ + 4, + 10, + 494, + }, + dictWord{6, 10, 74}, + dictWord{7, 10, 44}, + dictWord{11, 11, 499}, + dictWord{12, 10, 17}, + dictWord{15, 10, 5}, + dictWord{148, 10, 11}, + dictWord{4, 10, 276}, + dictWord{133, 10, 296}, + dictWord{9, 0, 92}, + dictWord{147, 0, 91}, + dictWord{4, 10, 7}, + dictWord{5, 10, 90}, + dictWord{5, 10, 158}, + dictWord{6, 10, 542}, + dictWord{ + 7, + 10, + 221, + }, + dictWord{7, 10, 1574}, + dictWord{9, 10, 490}, + dictWord{10, 10, 540}, + dictWord{11, 10, 443}, + dictWord{139, 10, 757}, + dictWord{6, 0, 525}, + dictWord{ + 6, + 0, + 1976, + }, + dictWord{8, 0, 806}, + dictWord{9, 0, 876}, + dictWord{140, 0, 284}, + dictWord{5, 11, 859}, + dictWord{7, 10, 588}, + dictWord{7, 11, 1160}, + dictWord{ + 8, + 11, + 107, + }, + dictWord{9, 10, 175}, + dictWord{9, 11, 291}, + dictWord{9, 11, 439}, + dictWord{10, 10, 530}, + dictWord{10, 11, 663}, + dictWord{11, 11, 609}, + dictWord{ + 140, + 11, + 197, + }, + dictWord{7, 11, 168}, + dictWord{13, 11, 196}, + dictWord{141, 11, 237}, + dictWord{139, 0, 958}, + dictWord{133, 0, 594}, + dictWord{135, 10, 580}, + dictWord{7, 10, 88}, + dictWord{136, 10, 627}, + dictWord{6, 0, 479}, + dictWord{6, 0, 562}, + dictWord{7, 0, 1060}, + dictWord{13, 0, 6}, + dictWord{5, 10, 872}, + dictWord{ + 6, + 10, + 57, + }, + dictWord{7, 10, 471}, + dictWord{9, 10, 447}, + dictWord{137, 10, 454}, + dictWord{136, 11, 413}, + dictWord{145, 11, 19}, + dictWord{4, 11, 117}, + dictWord{ + 6, + 11, + 372, + }, + dictWord{7, 11, 1905}, + dictWord{142, 11, 323}, + dictWord{4, 11, 722}, + dictWord{139, 11, 471}, + dictWord{17, 0, 61}, + dictWord{5, 10, 31}, + dictWord{134, 10, 614}, + dictWord{8, 10, 330}, + dictWord{140, 10, 477}, + dictWord{7, 10, 1200}, + dictWord{138, 10, 460}, + dictWord{6, 10, 424}, + dictWord{ + 135, + 10, + 1866, + }, + dictWord{6, 0, 1641}, + dictWord{136, 0, 820}, + dictWord{6, 0, 1556}, + dictWord{134, 0, 1618}, + dictWord{9, 11, 5}, + dictWord{12, 11, 216}, + dictWord{ + 12, + 11, + 294, + }, + dictWord{12, 11, 298}, + dictWord{12, 11, 400}, + dictWord{12, 11, 518}, + dictWord{13, 11, 229}, + dictWord{143, 11, 139}, + dictWord{15, 11, 155}, + dictWord{144, 11, 79}, + dictWord{4, 0, 302}, + dictWord{135, 0, 1766}, + dictWord{5, 10, 13}, + dictWord{134, 10, 142}, + dictWord{6, 0, 148}, + dictWord{7, 0, 1313}, + dictWord{ + 7, + 10, + 116, + }, + dictWord{8, 10, 322}, + dictWord{8, 10, 755}, + dictWord{9, 10, 548}, + dictWord{10, 10, 714}, + dictWord{11, 10, 884}, + dictWord{141, 10, 324}, + dictWord{137, 0, 676}, + dictWord{9, 11, 88}, + dictWord{139, 11, 270}, + dictWord{5, 11, 12}, + dictWord{7, 11, 375}, + dictWord{137, 11, 438}, + dictWord{134, 0, 1674}, + dictWord{7, 10, 1472}, + dictWord{135, 10, 1554}, + dictWord{11, 0, 178}, + dictWord{7, 10, 1071}, + dictWord{7, 10, 1541}, + dictWord{7, 10, 1767}, + dictWord{ + 7, + 10, + 1806, + }, + dictWord{11, 10, 162}, + dictWord{11, 10, 242}, + dictWord{12, 10, 605}, + dictWord{15, 10, 26}, + dictWord{144, 10, 44}, + dictWord{6, 0, 389}, + dictWord{ + 7, + 0, + 149, + }, + dictWord{9, 0, 142}, + dictWord{138, 0, 94}, + dictWord{140, 11, 71}, + dictWord{145, 10, 115}, + dictWord{6, 0, 8}, + dictWord{7, 0, 1881}, + dictWord{8, 0, 91}, + dictWord{11, 11, 966}, + dictWord{12, 11, 287}, + dictWord{13, 11, 342}, + dictWord{13, 11, 402}, + dictWord{15, 11, 110}, + dictWord{143, 11, 163}, + dictWord{ + 4, + 11, + 258, + }, + dictWord{136, 11, 639}, + dictWord{6, 11, 22}, + dictWord{7, 11, 903}, + dictWord{138, 11, 577}, + dictWord{133, 11, 681}, + dictWord{135, 10, 1111}, + dictWord{135, 11, 1286}, + dictWord{9, 0, 112}, + dictWord{8, 10, 1}, + dictWord{138, 10, 326}, + dictWord{5, 10, 488}, + dictWord{6, 10, 527}, + dictWord{7, 10, 489}, + dictWord{ + 7, + 10, + 1636, + }, + dictWord{8, 10, 121}, + dictWord{8, 10, 144}, + dictWord{8, 10, 359}, + dictWord{9, 10, 193}, + dictWord{9, 10, 241}, + dictWord{9, 10, 336}, + dictWord{ + 9, + 10, + 882, + }, + dictWord{11, 10, 266}, + dictWord{11, 10, 372}, + dictWord{11, 10, 944}, + dictWord{12, 10, 401}, + dictWord{140, 10, 641}, + dictWord{4, 11, 664}, + dictWord{133, 11, 804}, + dictWord{6, 0, 747}, + dictWord{134, 0, 1015}, + dictWord{135, 0, 1746}, + dictWord{9, 10, 31}, + dictWord{10, 10, 244}, + dictWord{ + 10, + 10, + 699, + }, + dictWord{12, 10, 149}, + dictWord{141, 10, 497}, + dictWord{133, 10, 377}, + dictWord{135, 0, 24}, + dictWord{6, 0, 1352}, + dictWord{5, 11, 32}, + dictWord{ + 145, + 10, + 101, + }, + dictWord{7, 0, 1530}, + dictWord{10, 0, 158}, + dictWord{13, 0, 13}, + dictWord{13, 0, 137}, + dictWord{13, 0, 258}, + dictWord{14, 0, 111}, + dictWord{ + 14, + 0, + 225, + }, + dictWord{14, 0, 253}, + dictWord{14, 0, 304}, + dictWord{14, 0, 339}, + dictWord{14, 0, 417}, + dictWord{146, 0, 33}, + dictWord{4, 0, 503}, + dictWord{ + 135, + 0, + 1661, + }, + dictWord{5, 0, 130}, + dictWord{6, 0, 845}, + dictWord{7, 0, 1314}, + dictWord{9, 0, 610}, + dictWord{10, 0, 718}, + dictWord{11, 0, 601}, + dictWord{11, 0, 819}, + dictWord{11, 0, 946}, + dictWord{140, 0, 536}, + dictWord{10, 0, 149}, + dictWord{11, 0, 280}, + dictWord{142, 0, 336}, + dictWord{134, 0, 1401}, + dictWord{ + 135, + 0, + 1946, + }, + dictWord{8, 0, 663}, + dictWord{144, 0, 8}, + dictWord{134, 0, 1607}, + dictWord{135, 10, 2023}, + dictWord{4, 11, 289}, + dictWord{7, 11, 629}, + dictWord{ + 7, + 11, + 1698, + }, + dictWord{7, 11, 1711}, + dictWord{140, 11, 215}, + dictWord{6, 11, 450}, + dictWord{136, 11, 109}, + dictWord{10, 0, 882}, + dictWord{10, 0, 883}, + dictWord{10, 0, 914}, + dictWord{138, 0, 928}, + dictWord{133, 10, 843}, + dictWord{136, 11, 705}, + dictWord{132, 10, 554}, + dictWord{133, 10, 536}, + dictWord{ + 5, + 0, + 417, + }, + dictWord{9, 10, 79}, + dictWord{11, 10, 625}, + dictWord{145, 10, 7}, + dictWord{7, 11, 1238}, + dictWord{142, 11, 37}, + dictWord{4, 0, 392}, + dictWord{ + 135, + 0, + 1597, + }, + dictWord{5, 0, 433}, + dictWord{9, 0, 633}, + dictWord{11, 0, 629}, + dictWord{132, 10, 424}, + dictWord{7, 10, 336}, + dictWord{136, 10, 785}, + dictWord{ + 134, + 11, + 355, + }, + dictWord{6, 0, 234}, + dictWord{7, 0, 769}, + dictWord{9, 0, 18}, + dictWord{138, 0, 358}, + dictWord{4, 10, 896}, + dictWord{134, 10, 1777}, + dictWord{ + 138, + 11, + 323, + }, + dictWord{7, 0, 140}, + dictWord{7, 0, 1950}, + dictWord{8, 0, 680}, + dictWord{11, 0, 817}, + dictWord{147, 0, 88}, + dictWord{7, 0, 1222}, + dictWord{ + 138, + 0, + 386, + }, + dictWord{139, 11, 908}, + dictWord{11, 0, 249}, + dictWord{12, 0, 313}, + dictWord{16, 0, 66}, + dictWord{145, 0, 26}, + dictWord{134, 0, 5}, + dictWord{7, 10, 750}, + dictWord{9, 10, 223}, + dictWord{11, 10, 27}, + dictWord{11, 10, 466}, + dictWord{12, 10, 624}, + dictWord{14, 10, 265}, + dictWord{146, 10, 61}, + dictWord{ + 134, + 11, + 26, + }, + dictWord{134, 0, 1216}, + dictWord{5, 0, 963}, + dictWord{134, 0, 1773}, + dictWord{4, 11, 414}, + dictWord{5, 11, 467}, + dictWord{9, 11, 654}, + dictWord{ + 10, + 11, + 451, + }, + dictWord{12, 11, 59}, + dictWord{141, 11, 375}, + dictWord{135, 11, 17}, + dictWord{4, 10, 603}, + dictWord{133, 10, 661}, + dictWord{4, 10, 11}, + dictWord{ + 6, + 10, + 128, + }, + dictWord{7, 10, 231}, + dictWord{7, 10, 1533}, + dictWord{138, 10, 725}, + dictWord{135, 11, 955}, + dictWord{7, 0, 180}, + dictWord{8, 0, 509}, + dictWord{ + 136, + 0, + 792, + }, + dictWord{132, 10, 476}, + dictWord{132, 0, 1002}, + dictWord{133, 11, 538}, + dictWord{135, 10, 1807}, + dictWord{132, 0, 931}, + dictWord{7, 0, 943}, + dictWord{11, 0, 614}, + dictWord{140, 0, 747}, + dictWord{135, 0, 1837}, + dictWord{9, 10, 20}, + dictWord{10, 10, 324}, + dictWord{10, 10, 807}, + dictWord{ + 139, + 10, + 488, + }, + dictWord{134, 0, 641}, + dictWord{6, 11, 280}, + dictWord{10, 11, 502}, + dictWord{11, 11, 344}, + dictWord{140, 11, 38}, + dictWord{5, 11, 45}, + dictWord{ + 7, + 11, + 1161, + }, + dictWord{11, 11, 448}, + dictWord{11, 11, 880}, + dictWord{13, 11, 139}, + dictWord{13, 11, 407}, + dictWord{15, 11, 16}, + dictWord{17, 11, 95}, + dictWord{ + 18, + 11, + 66, + }, + dictWord{18, 11, 88}, + dictWord{18, 11, 123}, + dictWord{149, 11, 7}, + dictWord{9, 0, 280}, + dictWord{138, 0, 134}, + dictWord{22, 0, 22}, + dictWord{23, 0, 5}, + dictWord{151, 0, 29}, + dictWord{136, 11, 777}, + dictWord{4, 0, 90}, + dictWord{5, 0, 545}, + dictWord{7, 0, 754}, + dictWord{9, 0, 186}, + dictWord{10, 0, 72}, + dictWord{ + 10, + 0, + 782, + }, + dictWord{11, 0, 577}, + dictWord{11, 0, 610}, + dictWord{11, 0, 960}, + dictWord{12, 0, 354}, + dictWord{12, 0, 362}, + dictWord{12, 0, 595}, + dictWord{ + 4, + 11, + 410, + }, + dictWord{135, 11, 521}, + dictWord{135, 11, 1778}, + dictWord{5, 10, 112}, + dictWord{6, 10, 103}, + dictWord{134, 10, 150}, + dictWord{138, 10, 356}, + dictWord{132, 0, 742}, + dictWord{7, 0, 151}, + dictWord{9, 0, 329}, + dictWord{139, 0, 254}, + dictWord{8, 0, 853}, + dictWord{8, 0, 881}, + dictWord{8, 0, 911}, + dictWord{ + 8, + 0, + 912, + }, + dictWord{10, 0, 872}, + dictWord{12, 0, 741}, + dictWord{12, 0, 742}, + dictWord{152, 0, 18}, + dictWord{4, 11, 573}, + dictWord{136, 11, 655}, + dictWord{ + 6, + 0, + 921, + }, + dictWord{134, 0, 934}, + dictWord{9, 0, 187}, + dictWord{10, 0, 36}, + dictWord{11, 0, 1016}, + dictWord{17, 0, 44}, + dictWord{146, 0, 64}, + dictWord{7, 0, 833}, + dictWord{136, 0, 517}, + dictWord{4, 0, 506}, + dictWord{5, 0, 295}, + dictWord{135, 0, 1680}, + dictWord{4, 10, 708}, + dictWord{8, 10, 15}, + dictWord{9, 10, 50}, + dictWord{ + 9, + 10, + 386, + }, + dictWord{11, 10, 18}, + dictWord{11, 10, 529}, + dictWord{140, 10, 228}, + dictWord{7, 0, 251}, + dictWord{7, 0, 1701}, + dictWord{8, 0, 436}, + dictWord{ + 4, + 10, + 563, + }, + dictWord{7, 10, 592}, + dictWord{7, 10, 637}, + dictWord{7, 10, 770}, + dictWord{8, 10, 463}, + dictWord{9, 10, 60}, + dictWord{9, 10, 335}, + dictWord{9, 10, 904}, + dictWord{10, 10, 73}, + dictWord{11, 10, 434}, + dictWord{12, 10, 585}, + dictWord{13, 10, 331}, + dictWord{18, 10, 110}, + dictWord{148, 10, 60}, + dictWord{ + 132, + 10, + 502, + }, + dictWord{136, 0, 584}, + dictWord{6, 10, 347}, + dictWord{138, 10, 161}, + dictWord{7, 0, 987}, + dictWord{9, 0, 688}, + dictWord{10, 0, 522}, + dictWord{ + 11, + 0, + 788, + }, + dictWord{12, 0, 137}, + dictWord{12, 0, 566}, + dictWord{14, 0, 9}, + dictWord{14, 0, 24}, + dictWord{14, 0, 64}, + dictWord{7, 11, 899}, + dictWord{142, 11, 325}, + dictWord{4, 0, 214}, + dictWord{5, 0, 500}, + dictWord{5, 10, 102}, + dictWord{6, 10, 284}, + dictWord{7, 10, 1079}, + dictWord{7, 10, 1423}, + dictWord{7, 10, 1702}, + dictWord{ + 8, + 10, + 470, + }, + dictWord{9, 10, 554}, + dictWord{9, 10, 723}, + dictWord{139, 10, 333}, + dictWord{7, 10, 246}, + dictWord{135, 10, 840}, + dictWord{6, 10, 10}, + dictWord{ + 8, + 10, + 571, + }, + dictWord{9, 10, 739}, + dictWord{143, 10, 91}, + dictWord{133, 10, 626}, + dictWord{146, 0, 195}, + dictWord{134, 0, 1775}, + dictWord{7, 0, 389}, + dictWord{7, 0, 700}, + dictWord{7, 0, 940}, + dictWord{8, 0, 514}, + dictWord{9, 0, 116}, + dictWord{9, 0, 535}, + dictWord{10, 0, 118}, + dictWord{11, 0, 107}, + dictWord{ + 11, + 0, + 148, + }, + dictWord{11, 0, 922}, + dictWord{12, 0, 254}, + dictWord{12, 0, 421}, + dictWord{142, 0, 238}, + dictWord{5, 10, 18}, + dictWord{6, 10, 526}, + dictWord{13, 10, 24}, + dictWord{13, 10, 110}, + dictWord{19, 10, 5}, + dictWord{147, 10, 44}, + dictWord{132, 0, 743}, + dictWord{11, 0, 292}, + dictWord{4, 10, 309}, + dictWord{5, 10, 462}, + dictWord{7, 10, 970}, + dictWord{135, 10, 1097}, + dictWord{22, 10, 30}, + dictWord{150, 10, 33}, + dictWord{139, 11, 338}, + dictWord{135, 11, 1598}, + dictWord{ + 7, + 0, + 1283, + }, + dictWord{9, 0, 227}, + dictWord{11, 0, 325}, + dictWord{11, 0, 408}, + dictWord{14, 0, 180}, + dictWord{146, 0, 47}, + dictWord{4, 0, 953}, + dictWord{6, 0, 1805}, + dictWord{6, 0, 1814}, + dictWord{6, 0, 1862}, + dictWord{140, 0, 774}, + dictWord{6, 11, 611}, + dictWord{135, 11, 1733}, + dictWord{135, 11, 1464}, + dictWord{ + 5, + 0, + 81, + }, + dictWord{7, 0, 146}, + dictWord{7, 0, 1342}, + dictWord{8, 0, 53}, + dictWord{8, 0, 561}, + dictWord{8, 0, 694}, + dictWord{8, 0, 754}, + dictWord{9, 0, 115}, + dictWord{ + 9, + 0, + 179, + }, + dictWord{9, 0, 894}, + dictWord{10, 0, 462}, + dictWord{10, 0, 813}, + dictWord{11, 0, 230}, + dictWord{11, 0, 657}, + dictWord{11, 0, 699}, + dictWord{11, 0, 748}, + dictWord{12, 0, 119}, + dictWord{12, 0, 200}, + dictWord{12, 0, 283}, + dictWord{142, 0, 273}, + dictWord{5, 0, 408}, + dictWord{6, 0, 789}, + dictWord{6, 0, 877}, + dictWord{ + 6, + 0, + 1253, + }, + dictWord{6, 0, 1413}, + dictWord{137, 0, 747}, + dictWord{134, 10, 1704}, + dictWord{135, 11, 663}, + dictWord{6, 0, 1910}, + dictWord{6, 0, 1915}, + dictWord{6, 0, 1923}, + dictWord{9, 0, 913}, + dictWord{9, 0, 928}, + dictWord{9, 0, 950}, + dictWord{9, 0, 954}, + dictWord{9, 0, 978}, + dictWord{9, 0, 993}, + dictWord{12, 0, 812}, + dictWord{12, 0, 819}, + dictWord{12, 0, 831}, + dictWord{12, 0, 833}, + dictWord{12, 0, 838}, + dictWord{12, 0, 909}, + dictWord{12, 0, 928}, + dictWord{12, 0, 931}, + dictWord{12, 0, 950}, + dictWord{15, 0, 186}, + dictWord{15, 0, 187}, + dictWord{15, 0, 195}, + dictWord{15, 0, 196}, + dictWord{15, 0, 209}, + dictWord{15, 0, 215}, + dictWord{ + 15, + 0, + 236, + }, + dictWord{15, 0, 241}, + dictWord{15, 0, 249}, + dictWord{15, 0, 253}, + dictWord{18, 0, 180}, + dictWord{18, 0, 221}, + dictWord{18, 0, 224}, + dictWord{ + 18, + 0, + 227, + }, + dictWord{18, 0, 229}, + dictWord{149, 0, 60}, + dictWord{7, 0, 1826}, + dictWord{135, 0, 1938}, + dictWord{11, 0, 490}, + dictWord{18, 0, 143}, + dictWord{ + 5, + 10, + 86, + }, + dictWord{7, 10, 743}, + dictWord{9, 10, 85}, + dictWord{10, 10, 281}, + dictWord{10, 10, 432}, + dictWord{12, 10, 251}, + dictWord{13, 10, 118}, + dictWord{ + 142, + 10, + 378, + }, + dictWord{5, 10, 524}, + dictWord{133, 10, 744}, + dictWord{141, 11, 442}, + dictWord{10, 10, 107}, + dictWord{140, 10, 436}, + dictWord{135, 11, 503}, + dictWord{134, 0, 1162}, + dictWord{132, 10, 927}, + dictWord{7, 0, 30}, + dictWord{8, 0, 86}, + dictWord{8, 0, 315}, + dictWord{8, 0, 700}, + dictWord{9, 0, 576}, + dictWord{ + 9, + 0, + 858, + }, + dictWord{10, 0, 414}, + dictWord{11, 0, 310}, + dictWord{11, 0, 888}, + dictWord{11, 0, 904}, + dictWord{12, 0, 361}, + dictWord{13, 0, 248}, + dictWord{13, 0, 371}, + dictWord{14, 0, 142}, + dictWord{12, 10, 670}, + dictWord{146, 10, 94}, + dictWord{134, 0, 721}, + dictWord{4, 11, 113}, + dictWord{5, 11, 163}, + dictWord{5, 11, 735}, + dictWord{7, 11, 1009}, + dictWord{7, 10, 1149}, + dictWord{9, 11, 9}, + dictWord{9, 10, 156}, + dictWord{9, 11, 771}, + dictWord{12, 11, 90}, + dictWord{13, 11, 138}, + dictWord{13, 11, 410}, + dictWord{143, 11, 128}, + dictWord{138, 0, 839}, + dictWord{133, 10, 778}, + dictWord{137, 0, 617}, + dictWord{133, 10, 502}, + dictWord{ + 8, + 10, + 196, + }, + dictWord{10, 10, 283}, + dictWord{139, 10, 406}, + dictWord{6, 0, 428}, + dictWord{7, 0, 524}, + dictWord{8, 0, 169}, + dictWord{8, 0, 234}, + dictWord{9, 0, 480}, + dictWord{138, 0, 646}, + dictWord{133, 10, 855}, + dictWord{134, 0, 1648}, + dictWord{7, 0, 1205}, + dictWord{138, 0, 637}, + dictWord{7, 0, 1596}, + dictWord{ + 4, + 11, + 935, + }, + dictWord{133, 11, 823}, + dictWord{5, 11, 269}, + dictWord{7, 11, 434}, + dictWord{7, 11, 891}, + dictWord{8, 11, 339}, + dictWord{9, 11, 702}, + dictWord{ + 11, + 11, + 594, + }, + dictWord{11, 11, 718}, + dictWord{145, 11, 100}, + dictWord{7, 11, 878}, + dictWord{9, 11, 485}, + dictWord{141, 11, 264}, + dictWord{4, 0, 266}, + dictWord{ + 8, + 0, + 4, + }, + dictWord{9, 0, 39}, + dictWord{10, 0, 166}, + dictWord{11, 0, 918}, + dictWord{12, 0, 635}, + dictWord{20, 0, 10}, + dictWord{22, 0, 27}, + dictWord{22, 0, 43}, + dictWord{ + 22, + 0, + 52, + }, + dictWord{134, 11, 1713}, + dictWord{7, 10, 1400}, + dictWord{9, 10, 446}, + dictWord{138, 10, 45}, + dictWord{135, 11, 900}, + dictWord{132, 0, 862}, + dictWord{134, 0, 1554}, + dictWord{135, 11, 1033}, + dictWord{19, 0, 16}, + dictWord{147, 11, 16}, + dictWord{135, 11, 1208}, + dictWord{7, 0, 157}, + dictWord{ + 136, + 0, + 279, + }, + dictWord{6, 0, 604}, + dictWord{136, 0, 391}, + dictWord{13, 10, 455}, + dictWord{15, 10, 99}, + dictWord{15, 10, 129}, + dictWord{144, 10, 68}, + dictWord{ + 135, + 10, + 172, + }, + dictWord{7, 0, 945}, + dictWord{11, 0, 713}, + dictWord{139, 0, 744}, + dictWord{4, 0, 973}, + dictWord{10, 0, 877}, + dictWord{10, 0, 937}, + dictWord{ + 10, + 0, + 938, + }, + dictWord{140, 0, 711}, + dictWord{139, 0, 1022}, + dictWord{132, 10, 568}, + dictWord{142, 11, 143}, + dictWord{4, 0, 567}, + dictWord{9, 0, 859}, + dictWord{ + 132, + 10, + 732, + }, + dictWord{7, 0, 1846}, + dictWord{136, 0, 628}, + dictWord{136, 10, 733}, + dictWord{133, 0, 762}, + dictWord{4, 10, 428}, + dictWord{135, 10, 1789}, + dictWord{10, 0, 784}, + dictWord{13, 0, 191}, + dictWord{7, 10, 2015}, + dictWord{140, 10, 665}, + dictWord{133, 0, 298}, + dictWord{7, 0, 633}, + dictWord{7, 0, 905}, + dictWord{7, 0, 909}, + dictWord{7, 0, 1538}, + dictWord{9, 0, 767}, + dictWord{140, 0, 636}, + dictWord{138, 10, 806}, + dictWord{132, 0, 795}, + dictWord{139, 0, 301}, + dictWord{135, 0, 1970}, + dictWord{5, 11, 625}, + dictWord{135, 11, 1617}, + dictWord{135, 11, 275}, + dictWord{7, 11, 37}, + dictWord{8, 11, 425}, + dictWord{ + 8, + 11, + 693, + }, + dictWord{9, 11, 720}, + dictWord{10, 11, 380}, + dictWord{10, 11, 638}, + dictWord{11, 11, 273}, + dictWord{11, 11, 307}, + dictWord{11, 11, 473}, + dictWord{ + 12, + 11, + 61, + }, + dictWord{143, 11, 43}, + dictWord{135, 11, 198}, + dictWord{134, 0, 1236}, + dictWord{7, 0, 369}, + dictWord{12, 0, 644}, + dictWord{12, 0, 645}, + dictWord{144, 0, 90}, + dictWord{19, 0, 15}, + dictWord{149, 0, 27}, + dictWord{6, 0, 71}, + dictWord{7, 0, 845}, + dictWord{8, 0, 160}, + dictWord{9, 0, 318}, + dictWord{6, 10, 1623}, + dictWord{134, 10, 1681}, + dictWord{134, 0, 1447}, + dictWord{134, 0, 1255}, + dictWord{138, 0, 735}, + dictWord{8, 0, 76}, + dictWord{132, 11, 168}, + dictWord{ + 6, + 10, + 1748, + }, + dictWord{8, 10, 715}, + dictWord{9, 10, 802}, + dictWord{10, 10, 46}, + dictWord{10, 10, 819}, + dictWord{13, 10, 308}, + dictWord{14, 10, 351}, + dictWord{14, 10, 363}, + dictWord{146, 10, 67}, + dictWord{135, 11, 91}, + dictWord{6, 0, 474}, + dictWord{4, 10, 63}, + dictWord{133, 10, 347}, + dictWord{133, 10, 749}, + dictWord{138, 0, 841}, + dictWord{133, 10, 366}, + dictWord{6, 0, 836}, + dictWord{132, 11, 225}, + dictWord{135, 0, 1622}, + dictWord{135, 10, 89}, + dictWord{ + 140, + 0, + 735, + }, + dictWord{134, 0, 1601}, + dictWord{138, 11, 145}, + dictWord{6, 0, 1390}, + dictWord{137, 0, 804}, + dictWord{142, 0, 394}, + dictWord{6, 11, 15}, + dictWord{ + 7, + 11, + 70, + }, + dictWord{10, 11, 240}, + dictWord{147, 11, 93}, + dictWord{6, 0, 96}, + dictWord{135, 0, 1426}, + dictWord{4, 0, 651}, + dictWord{133, 0, 289}, + dictWord{ + 7, + 11, + 956, + }, + dictWord{7, 10, 977}, + dictWord{7, 11, 1157}, + dictWord{7, 11, 1506}, + dictWord{7, 11, 1606}, + dictWord{7, 11, 1615}, + dictWord{7, 11, 1619}, + dictWord{ + 7, + 11, + 1736, + }, + dictWord{7, 11, 1775}, + dictWord{8, 11, 590}, + dictWord{9, 11, 324}, + dictWord{9, 11, 736}, + dictWord{9, 11, 774}, + dictWord{9, 11, 776}, + dictWord{ + 9, + 11, + 784, + }, + dictWord{10, 11, 567}, + dictWord{10, 11, 708}, + dictWord{11, 11, 518}, + dictWord{11, 11, 613}, + dictWord{11, 11, 695}, + dictWord{11, 11, 716}, + dictWord{11, 11, 739}, + dictWord{11, 11, 770}, + dictWord{11, 11, 771}, + dictWord{11, 11, 848}, + dictWord{11, 11, 857}, + dictWord{11, 11, 931}, + dictWord{ + 11, + 11, + 947, + }, + dictWord{12, 11, 326}, + dictWord{12, 11, 387}, + dictWord{12, 11, 484}, + dictWord{12, 11, 528}, + dictWord{12, 11, 552}, + dictWord{12, 11, 613}, + dictWord{ + 13, + 11, + 189, + }, + dictWord{13, 11, 256}, + dictWord{13, 11, 340}, + dictWord{13, 11, 432}, + dictWord{13, 11, 436}, + dictWord{13, 11, 440}, + dictWord{13, 11, 454}, + dictWord{14, 11, 174}, + dictWord{14, 11, 220}, + dictWord{14, 11, 284}, + dictWord{14, 11, 390}, + dictWord{145, 11, 121}, + dictWord{7, 0, 688}, + dictWord{8, 0, 35}, + dictWord{9, 0, 511}, + dictWord{10, 0, 767}, + dictWord{147, 0, 118}, + dictWord{134, 0, 667}, + dictWord{4, 0, 513}, + dictWord{5, 10, 824}, + dictWord{133, 10, 941}, + dictWord{7, 10, 440}, + dictWord{8, 10, 230}, + dictWord{139, 10, 106}, + dictWord{134, 0, 2034}, + dictWord{135, 11, 1399}, + dictWord{143, 11, 66}, + dictWord{ + 135, + 11, + 1529, + }, + dictWord{4, 11, 145}, + dictWord{6, 11, 176}, + dictWord{7, 11, 395}, + dictWord{9, 11, 562}, + dictWord{144, 11, 28}, + dictWord{132, 11, 501}, + dictWord{132, 0, 704}, + dictWord{134, 0, 1524}, + dictWord{7, 0, 1078}, + dictWord{134, 11, 464}, + dictWord{6, 11, 509}, + dictWord{10, 11, 82}, + dictWord{20, 11, 91}, + dictWord{151, 11, 13}, + dictWord{4, 0, 720}, + dictWord{133, 0, 306}, + dictWord{133, 0, 431}, + dictWord{7, 0, 1196}, + dictWord{4, 10, 914}, + dictWord{5, 10, 800}, + dictWord{133, 10, 852}, + dictWord{135, 11, 1189}, + dictWord{10, 0, 54}, + dictWord{141, 10, 115}, + dictWord{7, 10, 564}, + dictWord{142, 10, 168}, + dictWord{ + 5, + 0, + 464, + }, + dictWord{6, 0, 236}, + dictWord{7, 0, 696}, + dictWord{7, 0, 914}, + dictWord{7, 0, 1108}, + dictWord{7, 0, 1448}, + dictWord{9, 0, 15}, + dictWord{9, 0, 564}, + dictWord{ + 10, + 0, + 14, + }, + dictWord{12, 0, 565}, + dictWord{13, 0, 449}, + dictWord{14, 0, 53}, + dictWord{15, 0, 13}, + dictWord{16, 0, 64}, + dictWord{17, 0, 41}, + dictWord{4, 10, 918}, + dictWord{133, 10, 876}, + dictWord{6, 0, 1418}, + dictWord{134, 10, 1764}, + dictWord{4, 10, 92}, + dictWord{133, 10, 274}, + dictWord{134, 0, 907}, + dictWord{ + 4, + 11, + 114, + }, + dictWord{8, 10, 501}, + dictWord{9, 11, 492}, + dictWord{13, 11, 462}, + dictWord{142, 11, 215}, + dictWord{4, 11, 77}, + dictWord{5, 11, 361}, + dictWord{ + 6, + 11, + 139, + }, + dictWord{6, 11, 401}, + dictWord{6, 11, 404}, + dictWord{7, 11, 413}, + dictWord{7, 11, 715}, + dictWord{7, 11, 1716}, + dictWord{11, 11, 279}, + dictWord{ + 12, + 11, + 179, + }, + dictWord{12, 11, 258}, + dictWord{13, 11, 244}, + dictWord{142, 11, 358}, + dictWord{6, 0, 1767}, + dictWord{12, 0, 194}, + dictWord{145, 0, 107}, + dictWord{ + 134, + 11, + 1717, + }, + dictWord{5, 10, 743}, + dictWord{142, 11, 329}, + dictWord{4, 10, 49}, + dictWord{7, 10, 280}, + dictWord{135, 10, 1633}, + dictWord{5, 0, 840}, + dictWord{7, 11, 1061}, + dictWord{8, 11, 82}, + dictWord{11, 11, 250}, + dictWord{12, 11, 420}, + dictWord{141, 11, 184}, + dictWord{135, 11, 724}, + dictWord{ + 134, + 0, + 900, + }, + dictWord{136, 10, 47}, + dictWord{134, 0, 1436}, + dictWord{144, 11, 0}, + dictWord{6, 0, 675}, + dictWord{7, 0, 1008}, + dictWord{7, 0, 1560}, + dictWord{ + 9, + 0, + 642, + }, + dictWord{11, 0, 236}, + dictWord{14, 0, 193}, + dictWord{5, 10, 272}, + dictWord{5, 10, 908}, + dictWord{5, 10, 942}, + dictWord{8, 10, 197}, + dictWord{9, 10, 47}, + dictWord{11, 10, 538}, + dictWord{139, 10, 742}, + dictWord{4, 0, 68}, + dictWord{5, 0, 628}, + dictWord{5, 0, 634}, + dictWord{6, 0, 386}, + dictWord{7, 0, 794}, + dictWord{ + 8, + 0, + 273, + }, + dictWord{9, 0, 563}, + dictWord{10, 0, 105}, + dictWord{10, 0, 171}, + dictWord{11, 0, 94}, + dictWord{139, 0, 354}, + dictWord{135, 10, 1911}, + dictWord{ + 137, + 10, + 891, + }, + dictWord{4, 0, 95}, + dictWord{6, 0, 1297}, + dictWord{6, 0, 1604}, + dictWord{7, 0, 416}, + dictWord{139, 0, 830}, + dictWord{6, 11, 513}, + dictWord{ + 135, + 11, + 1052, + }, + dictWord{7, 0, 731}, + dictWord{13, 0, 20}, + dictWord{143, 0, 11}, + dictWord{137, 11, 899}, + dictWord{10, 0, 850}, + dictWord{140, 0, 697}, + dictWord{ + 4, + 0, + 662, + }, + dictWord{7, 11, 1417}, + dictWord{12, 11, 382}, + dictWord{17, 11, 48}, + dictWord{152, 11, 12}, + dictWord{133, 0, 736}, + dictWord{132, 0, 861}, + dictWord{ + 4, + 10, + 407, + }, + dictWord{132, 10, 560}, + dictWord{141, 10, 490}, + dictWord{6, 11, 545}, + dictWord{7, 11, 565}, + dictWord{7, 11, 1669}, + dictWord{10, 11, 114}, + dictWord{11, 11, 642}, + dictWord{140, 11, 618}, + dictWord{6, 0, 871}, + dictWord{134, 0, 1000}, + dictWord{5, 0, 864}, + dictWord{10, 0, 648}, + dictWord{11, 0, 671}, + dictWord{15, 0, 46}, + dictWord{133, 11, 5}, + dictWord{133, 0, 928}, + dictWord{11, 0, 90}, + dictWord{13, 0, 7}, + dictWord{4, 10, 475}, + dictWord{11, 10, 35}, + dictWord{ + 13, + 10, + 71, + }, + dictWord{13, 10, 177}, + dictWord{142, 10, 422}, + dictWord{136, 0, 332}, + dictWord{135, 11, 192}, + dictWord{134, 0, 1055}, + dictWord{136, 11, 763}, + dictWord{11, 0, 986}, + dictWord{140, 0, 682}, + dictWord{7, 0, 76}, + dictWord{8, 0, 44}, + dictWord{9, 0, 884}, + dictWord{10, 0, 580}, + dictWord{11, 0, 399}, + dictWord{ + 11, + 0, + 894, + }, + dictWord{143, 0, 122}, + dictWord{135, 11, 1237}, + dictWord{135, 10, 636}, + dictWord{11, 0, 300}, + dictWord{6, 10, 222}, + dictWord{7, 10, 1620}, + dictWord{ + 8, + 10, + 409, + }, + dictWord{137, 10, 693}, + dictWord{4, 11, 87}, + dictWord{5, 11, 250}, + dictWord{10, 11, 601}, + dictWord{13, 11, 298}, + dictWord{13, 11, 353}, + dictWord{141, 11, 376}, + dictWord{5, 0, 518}, + dictWord{10, 0, 340}, + dictWord{11, 0, 175}, + dictWord{149, 0, 16}, + dictWord{140, 0, 771}, + dictWord{6, 0, 1108}, + dictWord{137, 0, 831}, + dictWord{132, 0, 836}, + dictWord{135, 0, 1852}, + dictWord{4, 0, 957}, + dictWord{6, 0, 1804}, + dictWord{8, 0, 842}, + dictWord{8, 0, 843}, + dictWord{ + 8, + 0, + 851, + }, + dictWord{8, 0, 855}, + dictWord{140, 0, 767}, + dictWord{135, 11, 814}, + dictWord{4, 11, 57}, + dictWord{7, 11, 1195}, + dictWord{7, 11, 1438}, + dictWord{ + 7, + 11, + 1548, + }, + dictWord{7, 11, 1835}, + dictWord{7, 11, 1904}, + dictWord{9, 11, 757}, + dictWord{10, 11, 604}, + dictWord{139, 11, 519}, + dictWord{133, 10, 882}, + dictWord{138, 0, 246}, + dictWord{4, 0, 934}, + dictWord{5, 0, 202}, + dictWord{8, 0, 610}, + dictWord{7, 11, 1897}, + dictWord{12, 11, 290}, + dictWord{13, 11, 80}, + dictWord{13, 11, 437}, + dictWord{145, 11, 74}, + dictWord{8, 0, 96}, + dictWord{9, 0, 36}, + dictWord{10, 0, 607}, + dictWord{10, 0, 804}, + dictWord{10, 0, 832}, + dictWord{ + 11, + 0, + 423, + }, + dictWord{11, 0, 442}, + dictWord{12, 0, 309}, + dictWord{14, 0, 199}, + dictWord{15, 0, 90}, + dictWord{145, 0, 110}, + dictWord{132, 10, 426}, + dictWord{ + 7, + 0, + 654, + }, + dictWord{8, 0, 240}, + dictWord{6, 10, 58}, + dictWord{7, 10, 745}, + dictWord{7, 10, 1969}, + dictWord{8, 10, 675}, + dictWord{9, 10, 479}, + dictWord{9, 10, 731}, + dictWord{10, 10, 330}, + dictWord{10, 10, 593}, + dictWord{10, 10, 817}, + dictWord{11, 10, 32}, + dictWord{11, 10, 133}, + dictWord{11, 10, 221}, + dictWord{ + 145, + 10, + 68, + }, + dictWord{9, 0, 13}, + dictWord{9, 0, 398}, + dictWord{9, 0, 727}, + dictWord{10, 0, 75}, + dictWord{10, 0, 184}, + dictWord{10, 0, 230}, + dictWord{10, 0, 564}, + dictWord{ + 10, + 0, + 569, + }, + dictWord{11, 0, 973}, + dictWord{12, 0, 70}, + dictWord{12, 0, 189}, + dictWord{13, 0, 57}, + dictWord{141, 0, 257}, + dictWord{4, 11, 209}, + dictWord{ + 135, + 11, + 902, + }, + dictWord{7, 0, 391}, + dictWord{137, 10, 538}, + dictWord{134, 0, 403}, + dictWord{6, 11, 303}, + dictWord{7, 11, 335}, + dictWord{7, 11, 1437}, + dictWord{ + 7, + 11, + 1668, + }, + dictWord{8, 11, 553}, + dictWord{8, 11, 652}, + dictWord{8, 11, 656}, + dictWord{9, 11, 558}, + dictWord{11, 11, 743}, + dictWord{149, 11, 18}, + dictWord{ + 132, + 11, + 559, + }, + dictWord{11, 0, 75}, + dictWord{142, 0, 267}, + dictWord{6, 0, 815}, + dictWord{141, 11, 2}, + dictWord{141, 0, 366}, + dictWord{137, 0, 631}, + dictWord{ + 133, + 11, + 1017, + }, + dictWord{5, 0, 345}, + dictWord{135, 0, 1016}, + dictWord{133, 11, 709}, + dictWord{134, 11, 1745}, + dictWord{133, 10, 566}, + dictWord{7, 0, 952}, + dictWord{6, 10, 48}, + dictWord{9, 10, 139}, + dictWord{10, 10, 399}, + dictWord{11, 10, 469}, + dictWord{12, 10, 634}, + dictWord{141, 10, 223}, + dictWord{ + 133, + 0, + 673, + }, + dictWord{9, 0, 850}, + dictWord{7, 11, 8}, + dictWord{136, 11, 206}, + dictWord{6, 0, 662}, + dictWord{149, 0, 35}, + dictWord{4, 0, 287}, + dictWord{133, 0, 1018}, + dictWord{6, 10, 114}, + dictWord{7, 10, 1224}, + dictWord{7, 10, 1556}, + dictWord{136, 10, 3}, + dictWord{8, 10, 576}, + dictWord{137, 10, 267}, + dictWord{4, 0, 884}, + dictWord{5, 0, 34}, + dictWord{10, 0, 724}, + dictWord{12, 0, 444}, + dictWord{13, 0, 354}, + dictWord{18, 0, 32}, + dictWord{23, 0, 24}, + dictWord{23, 0, 31}, + dictWord{ + 152, + 0, + 5, + }, + dictWord{133, 10, 933}, + dictWord{132, 11, 776}, + dictWord{138, 0, 151}, + dictWord{136, 0, 427}, + dictWord{134, 0, 382}, + dictWord{132, 0, 329}, + dictWord{ + 9, + 0, + 846, + }, + dictWord{10, 0, 827}, + dictWord{138, 11, 33}, + dictWord{9, 0, 279}, + dictWord{10, 0, 407}, + dictWord{14, 0, 84}, + dictWord{22, 0, 18}, + dictWord{ + 135, + 11, + 1297, + }, + dictWord{136, 11, 406}, + dictWord{132, 0, 906}, + dictWord{136, 0, 366}, + dictWord{134, 0, 843}, + dictWord{134, 0, 1443}, + dictWord{135, 0, 1372}, + dictWord{138, 0, 992}, + dictWord{4, 0, 123}, + dictWord{5, 0, 605}, + dictWord{7, 0, 1509}, + dictWord{136, 0, 36}, + dictWord{132, 0, 649}, + dictWord{8, 11, 175}, + dictWord{10, 11, 168}, + dictWord{138, 11, 573}, + dictWord{133, 0, 767}, + dictWord{134, 0, 1018}, + dictWord{135, 11, 1305}, + dictWord{12, 10, 30}, + dictWord{ + 13, + 10, + 148, + }, + dictWord{14, 10, 87}, + dictWord{14, 10, 182}, + dictWord{16, 10, 42}, + dictWord{148, 10, 70}, + dictWord{134, 11, 607}, + dictWord{4, 0, 273}, + dictWord{ + 5, + 0, + 658, + }, + dictWord{133, 0, 995}, + dictWord{6, 0, 72}, + dictWord{139, 11, 174}, + dictWord{10, 0, 483}, + dictWord{12, 0, 368}, + dictWord{7, 10, 56}, + dictWord{ + 7, + 10, + 1989, + }, + dictWord{8, 10, 337}, + dictWord{8, 10, 738}, + dictWord{9, 10, 600}, + dictWord{13, 10, 447}, + dictWord{142, 10, 92}, + dictWord{5, 11, 784}, + dictWord{ + 138, + 10, + 666, + }, + dictWord{135, 0, 1345}, + dictWord{139, 11, 882}, + dictWord{134, 0, 1293}, + dictWord{133, 0, 589}, + dictWord{134, 0, 1988}, + dictWord{5, 0, 117}, + dictWord{6, 0, 514}, + dictWord{6, 0, 541}, + dictWord{7, 0, 1164}, + dictWord{7, 0, 1436}, + dictWord{8, 0, 220}, + dictWord{8, 0, 648}, + dictWord{10, 0, 688}, + dictWord{ + 139, + 0, + 560, + }, + dictWord{136, 0, 379}, + dictWord{5, 0, 686}, + dictWord{7, 10, 866}, + dictWord{135, 10, 1163}, + dictWord{132, 10, 328}, + dictWord{9, 11, 14}, + dictWord{ + 9, + 11, + 441, + }, + dictWord{10, 11, 306}, + dictWord{139, 11, 9}, + dictWord{4, 10, 101}, + dictWord{135, 10, 1171}, + dictWord{5, 10, 833}, + dictWord{136, 10, 744}, + dictWord{5, 11, 161}, + dictWord{7, 11, 839}, + dictWord{135, 11, 887}, + dictWord{7, 0, 196}, + dictWord{10, 0, 765}, + dictWord{11, 0, 347}, + dictWord{11, 0, 552}, + dictWord{11, 0, 790}, + dictWord{12, 0, 263}, + dictWord{13, 0, 246}, + dictWord{13, 0, 270}, + dictWord{13, 0, 395}, + dictWord{14, 0, 176}, + dictWord{14, 0, 190}, + dictWord{ + 14, + 0, + 398, + }, + dictWord{14, 0, 412}, + dictWord{15, 0, 32}, + dictWord{15, 0, 63}, + dictWord{16, 0, 88}, + dictWord{147, 0, 105}, + dictWord{6, 10, 9}, + dictWord{6, 10, 397}, + dictWord{7, 10, 53}, + dictWord{7, 10, 1742}, + dictWord{10, 10, 632}, + dictWord{11, 10, 828}, + dictWord{140, 10, 146}, + dictWord{5, 0, 381}, + dictWord{135, 0, 1792}, + dictWord{134, 0, 1452}, + dictWord{135, 11, 429}, + dictWord{8, 0, 367}, + dictWord{10, 0, 760}, + dictWord{14, 0, 79}, + dictWord{20, 0, 17}, + dictWord{152, 0, 0}, + dictWord{7, 0, 616}, + dictWord{138, 0, 413}, + dictWord{11, 10, 417}, + dictWord{12, 10, 223}, + dictWord{140, 10, 265}, + dictWord{7, 11, 1611}, + dictWord{13, 11, 14}, + dictWord{15, 11, 44}, + dictWord{19, 11, 13}, + dictWord{148, 11, 76}, + dictWord{135, 0, 1229}, + dictWord{6, 0, 120}, + dictWord{7, 0, 1188}, + dictWord{7, 0, 1710}, + dictWord{8, 0, 286}, + dictWord{9, 0, 667}, + dictWord{11, 0, 592}, + dictWord{139, 0, 730}, + dictWord{135, 11, 1814}, + dictWord{135, 0, 1146}, + dictWord{4, 10, 186}, + dictWord{5, 10, 157}, + dictWord{8, 10, 168}, + dictWord{138, 10, 6}, + dictWord{4, 0, 352}, + dictWord{135, 0, 687}, + dictWord{4, 0, 192}, + dictWord{5, 0, 49}, + dictWord{ + 6, + 0, + 200, + }, + dictWord{6, 0, 293}, + dictWord{6, 0, 1696}, + dictWord{135, 0, 1151}, + dictWord{133, 10, 875}, + dictWord{5, 10, 773}, + dictWord{5, 10, 991}, + dictWord{ + 6, + 10, + 1635, + }, + dictWord{134, 10, 1788}, + dictWord{7, 10, 111}, + dictWord{136, 10, 581}, + dictWord{6, 0, 935}, + dictWord{134, 0, 1151}, + dictWord{134, 0, 1050}, + dictWord{132, 0, 650}, + dictWord{132, 0, 147}, + dictWord{11, 0, 194}, + dictWord{12, 0, 62}, + dictWord{12, 0, 88}, + dictWord{11, 11, 194}, + dictWord{12, 11, 62}, + dictWord{140, 11, 88}, + dictWord{6, 0, 339}, + dictWord{135, 0, 923}, + dictWord{134, 10, 1747}, + dictWord{7, 11, 643}, + dictWord{136, 11, 236}, + dictWord{ + 133, + 0, + 934, + }, + dictWord{7, 10, 1364}, + dictWord{7, 10, 1907}, + dictWord{141, 10, 158}, + dictWord{132, 10, 659}, + dictWord{4, 10, 404}, + dictWord{135, 10, 675}, + dictWord{7, 11, 581}, + dictWord{9, 11, 644}, + dictWord{137, 11, 699}, + dictWord{13, 0, 211}, + dictWord{14, 0, 133}, + dictWord{14, 0, 204}, + dictWord{15, 0, 64}, + dictWord{ + 15, + 0, + 69, + }, + dictWord{15, 0, 114}, + dictWord{16, 0, 10}, + dictWord{19, 0, 23}, + dictWord{19, 0, 35}, + dictWord{19, 0, 39}, + dictWord{19, 0, 51}, + dictWord{19, 0, 71}, + dictWord{19, 0, 75}, + dictWord{152, 0, 15}, + dictWord{133, 10, 391}, + dictWord{5, 11, 54}, + dictWord{135, 11, 1513}, + dictWord{7, 0, 222}, + dictWord{8, 0, 341}, + dictWord{ + 5, + 10, + 540, + }, + dictWord{134, 10, 1697}, + dictWord{134, 10, 78}, + dictWord{132, 11, 744}, + dictWord{136, 0, 293}, + dictWord{137, 11, 701}, + dictWord{ + 7, + 11, + 930, + }, + dictWord{10, 11, 402}, + dictWord{10, 11, 476}, + dictWord{13, 11, 452}, + dictWord{18, 11, 55}, + dictWord{147, 11, 104}, + dictWord{132, 0, 637}, + dictWord{133, 10, 460}, + dictWord{8, 11, 50}, + dictWord{137, 11, 624}, + dictWord{132, 11, 572}, + dictWord{134, 0, 1159}, + dictWord{4, 10, 199}, + dictWord{ + 139, + 10, + 34, + }, + dictWord{134, 0, 847}, + dictWord{134, 10, 388}, + dictWord{6, 11, 43}, + dictWord{7, 11, 38}, + dictWord{8, 11, 248}, + dictWord{9, 11, 504}, + dictWord{ + 138, + 11, + 513, + }, + dictWord{9, 0, 683}, + dictWord{4, 10, 511}, + dictWord{6, 10, 608}, + dictWord{9, 10, 333}, + dictWord{10, 10, 602}, + dictWord{11, 10, 441}, + dictWord{ + 11, + 10, + 723, + }, + dictWord{11, 10, 976}, + dictWord{140, 10, 357}, + dictWord{9, 0, 867}, + dictWord{138, 0, 837}, + dictWord{6, 0, 944}, + dictWord{135, 11, 326}, + dictWord{ + 135, + 0, + 1809, + }, + dictWord{5, 10, 938}, + dictWord{7, 11, 783}, + dictWord{136, 10, 707}, + dictWord{133, 11, 766}, + dictWord{133, 11, 363}, + dictWord{6, 0, 170}, + dictWord{7, 0, 1080}, + dictWord{8, 0, 395}, + dictWord{8, 0, 487}, + dictWord{141, 0, 147}, + dictWord{6, 11, 258}, + dictWord{140, 11, 409}, + dictWord{4, 0, 535}, + dictWord{ + 8, + 0, + 618, + }, + dictWord{5, 11, 249}, + dictWord{148, 11, 82}, + dictWord{6, 0, 1379}, + dictWord{149, 11, 15}, + dictWord{135, 0, 1625}, + dictWord{150, 0, 23}, + dictWord{ + 5, + 11, + 393, + }, + dictWord{6, 11, 378}, + dictWord{7, 11, 1981}, + dictWord{9, 11, 32}, + dictWord{9, 11, 591}, + dictWord{10, 11, 685}, + dictWord{10, 11, 741}, + dictWord{ + 142, + 11, + 382, + }, + dictWord{133, 11, 788}, + dictWord{7, 11, 1968}, + dictWord{10, 11, 19}, + dictWord{139, 11, 911}, + dictWord{7, 11, 1401}, + dictWord{ + 135, + 11, + 1476, + }, + dictWord{4, 11, 61}, + dictWord{5, 11, 58}, + dictWord{5, 11, 171}, + dictWord{5, 11, 635}, + dictWord{5, 11, 683}, + dictWord{5, 11, 700}, + dictWord{6, 11, 291}, + dictWord{6, 11, 566}, + dictWord{7, 11, 1650}, + dictWord{11, 11, 523}, + dictWord{12, 11, 273}, + dictWord{12, 11, 303}, + dictWord{15, 11, 39}, + dictWord{ + 143, + 11, + 111, + }, + dictWord{6, 10, 469}, + dictWord{7, 10, 1709}, + dictWord{138, 10, 515}, + dictWord{4, 0, 778}, + dictWord{134, 11, 589}, + dictWord{132, 0, 46}, + dictWord{ + 5, + 0, + 811, + }, + dictWord{6, 0, 1679}, + dictWord{6, 0, 1714}, + dictWord{135, 0, 2032}, + dictWord{7, 0, 1458}, + dictWord{9, 0, 407}, + dictWord{11, 0, 15}, + dictWord{12, 0, 651}, + dictWord{149, 0, 37}, + dictWord{7, 0, 938}, + dictWord{132, 10, 500}, + dictWord{6, 0, 34}, + dictWord{7, 0, 69}, + dictWord{7, 0, 1089}, + dictWord{7, 0, 1281}, + dictWord{ + 8, + 0, + 708, + }, + dictWord{8, 0, 721}, + dictWord{9, 0, 363}, + dictWord{148, 0, 98}, + dictWord{10, 11, 231}, + dictWord{147, 11, 124}, + dictWord{7, 11, 726}, + dictWord{ + 152, + 11, + 9, + }, + dictWord{5, 10, 68}, + dictWord{134, 10, 383}, + dictWord{136, 11, 583}, + dictWord{4, 11, 917}, + dictWord{133, 11, 1005}, + dictWord{11, 10, 216}, + dictWord{139, 10, 340}, + dictWord{135, 11, 1675}, + dictWord{8, 0, 441}, + dictWord{10, 0, 314}, + dictWord{143, 0, 3}, + dictWord{132, 11, 919}, + dictWord{4, 10, 337}, + dictWord{6, 10, 353}, + dictWord{7, 10, 1934}, + dictWord{8, 10, 488}, + dictWord{137, 10, 429}, + dictWord{7, 0, 889}, + dictWord{7, 10, 1795}, + dictWord{8, 10, 259}, + dictWord{9, 10, 135}, + dictWord{9, 10, 177}, + dictWord{9, 10, 860}, + dictWord{10, 10, 825}, + dictWord{11, 10, 115}, + dictWord{11, 10, 370}, + dictWord{11, 10, 405}, + dictWord{11, 10, 604}, + dictWord{12, 10, 10}, + dictWord{12, 10, 667}, + dictWord{12, 10, 669}, + dictWord{13, 10, 76}, + dictWord{14, 10, 310}, + dictWord{ + 15, + 10, + 76, + }, + dictWord{15, 10, 147}, + dictWord{148, 10, 23}, + dictWord{4, 10, 15}, + dictWord{4, 11, 255}, + dictWord{5, 10, 22}, + dictWord{5, 11, 302}, + dictWord{6, 11, 132}, + dictWord{6, 10, 244}, + dictWord{7, 10, 40}, + dictWord{7, 11, 128}, + dictWord{7, 10, 200}, + dictWord{7, 11, 283}, + dictWord{7, 10, 906}, + dictWord{7, 10, 1199}, + dictWord{ + 7, + 11, + 1299, + }, + dictWord{9, 10, 616}, + dictWord{10, 11, 52}, + dictWord{10, 11, 514}, + dictWord{10, 10, 716}, + dictWord{11, 10, 635}, + dictWord{11, 10, 801}, + dictWord{11, 11, 925}, + dictWord{12, 10, 458}, + dictWord{13, 11, 92}, + dictWord{142, 11, 309}, + dictWord{132, 0, 462}, + dictWord{137, 11, 173}, + dictWord{ + 135, + 10, + 1735, + }, + dictWord{8, 0, 525}, + dictWord{5, 10, 598}, + dictWord{7, 10, 791}, + dictWord{8, 10, 108}, + dictWord{137, 10, 123}, + dictWord{5, 0, 73}, + dictWord{6, 0, 23}, + dictWord{134, 0, 338}, + dictWord{132, 0, 676}, + dictWord{132, 10, 683}, + dictWord{7, 0, 725}, + dictWord{8, 0, 498}, + dictWord{139, 0, 268}, + dictWord{12, 0, 21}, + dictWord{151, 0, 7}, + dictWord{135, 0, 773}, + dictWord{4, 10, 155}, + dictWord{135, 10, 1689}, + dictWord{4, 0, 164}, + dictWord{5, 0, 730}, + dictWord{5, 10, 151}, + dictWord{ + 5, + 10, + 741, + }, + dictWord{6, 11, 210}, + dictWord{7, 10, 498}, + dictWord{7, 10, 870}, + dictWord{7, 10, 1542}, + dictWord{12, 10, 213}, + dictWord{14, 10, 36}, + dictWord{ + 14, + 10, + 391, + }, + dictWord{17, 10, 111}, + dictWord{18, 10, 6}, + dictWord{18, 10, 46}, + dictWord{18, 10, 151}, + dictWord{19, 10, 36}, + dictWord{20, 10, 32}, + dictWord{ + 20, + 10, + 56, + }, + dictWord{20, 10, 69}, + dictWord{20, 10, 102}, + dictWord{21, 10, 4}, + dictWord{22, 10, 8}, + dictWord{22, 10, 10}, + dictWord{22, 10, 14}, + dictWord{ + 150, + 10, + 31, + }, + dictWord{4, 10, 624}, + dictWord{135, 10, 1752}, + dictWord{4, 0, 583}, + dictWord{9, 0, 936}, + dictWord{15, 0, 214}, + dictWord{18, 0, 199}, + dictWord{24, 0, 26}, + dictWord{134, 11, 588}, + dictWord{7, 0, 1462}, + dictWord{11, 0, 659}, + dictWord{4, 11, 284}, + dictWord{134, 11, 223}, + dictWord{133, 0, 220}, + dictWord{ + 139, + 0, + 803, + }, + dictWord{132, 0, 544}, + dictWord{4, 10, 492}, + dictWord{133, 10, 451}, + dictWord{16, 0, 98}, + dictWord{148, 0, 119}, + dictWord{4, 11, 218}, + dictWord{ + 7, + 11, + 526, + }, + dictWord{143, 11, 137}, + dictWord{135, 10, 835}, + dictWord{4, 11, 270}, + dictWord{5, 11, 192}, + dictWord{6, 11, 332}, + dictWord{7, 11, 1322}, + dictWord{ + 13, + 11, + 9, + }, + dictWord{13, 10, 70}, + dictWord{14, 11, 104}, + dictWord{142, 11, 311}, + dictWord{132, 10, 539}, + dictWord{140, 11, 661}, + dictWord{5, 0, 176}, + dictWord{ + 6, + 0, + 437, + }, + dictWord{6, 0, 564}, + dictWord{11, 0, 181}, + dictWord{141, 0, 183}, + dictWord{135, 0, 1192}, + dictWord{6, 10, 113}, + dictWord{135, 10, 436}, + dictWord{136, 10, 718}, + dictWord{135, 10, 520}, + dictWord{135, 0, 1878}, + dictWord{140, 11, 196}, + dictWord{7, 11, 379}, + dictWord{8, 11, 481}, + dictWord{ + 137, + 11, + 377, + }, + dictWord{5, 11, 1003}, + dictWord{6, 11, 149}, + dictWord{137, 11, 746}, + dictWord{8, 11, 262}, + dictWord{9, 11, 627}, + dictWord{10, 11, 18}, + dictWord{ + 11, + 11, + 214, + }, + dictWord{11, 11, 404}, + dictWord{11, 11, 457}, + dictWord{11, 11, 780}, + dictWord{11, 11, 849}, + dictWord{11, 11, 913}, + dictWord{13, 11, 330}, + dictWord{13, 11, 401}, + dictWord{142, 11, 200}, + dictWord{149, 0, 26}, + dictWord{136, 11, 304}, + dictWord{132, 11, 142}, + dictWord{135, 0, 944}, + dictWord{ + 4, + 0, + 790, + }, + dictWord{5, 0, 273}, + dictWord{134, 0, 394}, + dictWord{134, 0, 855}, + dictWord{4, 0, 135}, + dictWord{6, 0, 127}, + dictWord{7, 0, 1185}, + dictWord{7, 0, 1511}, + dictWord{8, 0, 613}, + dictWord{11, 0, 5}, + dictWord{12, 0, 336}, + dictWord{12, 0, 495}, + dictWord{12, 0, 586}, + dictWord{12, 0, 660}, + dictWord{12, 0, 668}, + dictWord{ + 14, + 0, + 385, + }, + dictWord{15, 0, 118}, + dictWord{17, 0, 20}, + dictWord{146, 0, 98}, + dictWord{6, 0, 230}, + dictWord{9, 0, 752}, + dictWord{18, 0, 109}, + dictWord{12, 10, 610}, + dictWord{13, 10, 431}, + dictWord{144, 10, 59}, + dictWord{7, 0, 1954}, + dictWord{135, 11, 925}, + dictWord{4, 11, 471}, + dictWord{5, 11, 51}, + dictWord{6, 11, 602}, + dictWord{8, 11, 484}, + dictWord{10, 11, 195}, + dictWord{140, 11, 159}, + dictWord{132, 10, 307}, + dictWord{136, 11, 688}, + dictWord{132, 11, 697}, + dictWord{ + 7, + 11, + 812, + }, + dictWord{7, 11, 1261}, + dictWord{7, 11, 1360}, + dictWord{9, 11, 632}, + dictWord{140, 11, 352}, + dictWord{5, 0, 162}, + dictWord{8, 0, 68}, + dictWord{ + 133, + 10, + 964, + }, + dictWord{4, 0, 654}, + dictWord{136, 11, 212}, + dictWord{4, 0, 156}, + dictWord{7, 0, 998}, + dictWord{7, 0, 1045}, + dictWord{7, 0, 1860}, + dictWord{9, 0, 48}, + dictWord{9, 0, 692}, + dictWord{11, 0, 419}, + dictWord{139, 0, 602}, + dictWord{133, 11, 221}, + dictWord{4, 11, 373}, + dictWord{5, 11, 283}, + dictWord{6, 11, 480}, + dictWord{135, 11, 609}, + dictWord{142, 11, 216}, + dictWord{132, 0, 240}, + dictWord{6, 11, 192}, + dictWord{9, 11, 793}, + dictWord{145, 11, 55}, + dictWord{ + 4, + 10, + 75, + }, + dictWord{5, 10, 180}, + dictWord{6, 10, 500}, + dictWord{7, 10, 58}, + dictWord{7, 10, 710}, + dictWord{138, 10, 645}, + dictWord{4, 11, 132}, + dictWord{5, 11, 69}, + dictWord{5, 10, 649}, + dictWord{135, 11, 1242}, + dictWord{6, 10, 276}, + dictWord{7, 10, 282}, + dictWord{7, 10, 879}, + dictWord{7, 10, 924}, + dictWord{8, 10, 459}, + dictWord{9, 10, 599}, + dictWord{9, 10, 754}, + dictWord{11, 10, 574}, + dictWord{12, 10, 128}, + dictWord{12, 10, 494}, + dictWord{13, 10, 52}, + dictWord{13, 10, 301}, + dictWord{15, 10, 30}, + dictWord{143, 10, 132}, + dictWord{132, 10, 200}, + dictWord{4, 11, 111}, + dictWord{135, 11, 302}, + dictWord{9, 0, 197}, + dictWord{ + 10, + 0, + 300, + }, + dictWord{12, 0, 473}, + dictWord{13, 0, 90}, + dictWord{141, 0, 405}, + dictWord{132, 11, 767}, + dictWord{6, 11, 42}, + dictWord{7, 11, 1416}, + dictWord{ + 7, + 11, + 1590, + }, + dictWord{7, 11, 2005}, + dictWord{8, 11, 131}, + dictWord{8, 11, 466}, + dictWord{9, 11, 672}, + dictWord{13, 11, 252}, + dictWord{148, 11, 103}, + dictWord{ + 8, + 0, + 958, + }, + dictWord{8, 0, 999}, + dictWord{10, 0, 963}, + dictWord{138, 0, 1001}, + dictWord{135, 10, 1621}, + dictWord{135, 0, 858}, + dictWord{4, 0, 606}, + dictWord{ + 137, + 11, + 444, + }, + dictWord{6, 11, 44}, + dictWord{136, 11, 368}, + dictWord{139, 11, 172}, + dictWord{4, 11, 570}, + dictWord{133, 11, 120}, + dictWord{139, 11, 624}, + dictWord{7, 0, 1978}, + dictWord{8, 0, 676}, + dictWord{6, 10, 225}, + dictWord{137, 10, 211}, + dictWord{7, 0, 972}, + dictWord{11, 0, 102}, + dictWord{136, 10, 687}, + dictWord{6, 11, 227}, + dictWord{135, 11, 1589}, + dictWord{8, 10, 58}, + dictWord{9, 10, 724}, + dictWord{11, 10, 809}, + dictWord{13, 10, 113}, + dictWord{ + 145, + 10, + 72, + }, + dictWord{4, 0, 361}, + dictWord{133, 0, 315}, + dictWord{132, 0, 461}, + dictWord{6, 10, 345}, + dictWord{135, 10, 1247}, + dictWord{132, 0, 472}, + dictWord{ + 8, + 10, + 767, + }, + dictWord{8, 10, 803}, + dictWord{9, 10, 301}, + dictWord{137, 10, 903}, + dictWord{135, 11, 1333}, + dictWord{135, 11, 477}, + dictWord{7, 10, 1949}, + dictWord{136, 10, 674}, + dictWord{6, 0, 905}, + dictWord{138, 0, 747}, + dictWord{133, 0, 155}, + dictWord{134, 10, 259}, + dictWord{7, 0, 163}, + dictWord{8, 0, 319}, + dictWord{9, 0, 402}, + dictWord{10, 0, 24}, + dictWord{10, 0, 681}, + dictWord{11, 0, 200}, + dictWord{12, 0, 253}, + dictWord{12, 0, 410}, + dictWord{142, 0, 219}, + dictWord{ + 5, + 0, + 475, + }, + dictWord{7, 0, 1780}, + dictWord{9, 0, 230}, + dictWord{11, 0, 297}, + dictWord{11, 0, 558}, + dictWord{14, 0, 322}, + dictWord{19, 0, 76}, + dictWord{6, 11, 1667}, + dictWord{7, 11, 2036}, + dictWord{138, 11, 600}, + dictWord{136, 10, 254}, + dictWord{6, 0, 848}, + dictWord{135, 0, 1956}, + dictWord{6, 11, 511}, + dictWord{ + 140, + 11, + 132, + }, + dictWord{5, 11, 568}, + dictWord{6, 11, 138}, + dictWord{135, 11, 1293}, + dictWord{6, 0, 631}, + dictWord{137, 0, 838}, + dictWord{149, 0, 36}, + dictWord{ + 4, + 11, + 565, + }, + dictWord{8, 11, 23}, + dictWord{136, 11, 827}, + dictWord{5, 0, 944}, + dictWord{134, 0, 1769}, + dictWord{4, 0, 144}, + dictWord{6, 0, 842}, + dictWord{ + 6, + 0, + 1400, + }, + dictWord{4, 11, 922}, + dictWord{133, 11, 1023}, + dictWord{133, 10, 248}, + dictWord{9, 10, 800}, + dictWord{10, 10, 693}, + dictWord{11, 10, 482}, + dictWord{11, 10, 734}, + dictWord{139, 10, 789}, + dictWord{7, 11, 1002}, + dictWord{139, 11, 145}, + dictWord{4, 10, 116}, + dictWord{5, 10, 95}, + dictWord{5, 10, 445}, + dictWord{7, 10, 1688}, + dictWord{8, 10, 29}, + dictWord{9, 10, 272}, + dictWord{11, 10, 509}, + dictWord{139, 10, 915}, + dictWord{14, 0, 369}, + dictWord{146, 0, 72}, + dictWord{135, 10, 1641}, + dictWord{132, 11, 740}, + dictWord{133, 10, 543}, + dictWord{140, 11, 116}, + dictWord{6, 0, 247}, + dictWord{9, 0, 555}, + dictWord{ + 5, + 10, + 181, + }, + dictWord{136, 10, 41}, + dictWord{133, 10, 657}, + dictWord{136, 0, 996}, + dictWord{138, 10, 709}, + dictWord{7, 0, 189}, + dictWord{8, 10, 202}, + dictWord{ + 138, + 10, + 536, + }, + dictWord{136, 11, 402}, + dictWord{4, 11, 716}, + dictWord{141, 11, 31}, + dictWord{10, 0, 280}, + dictWord{138, 0, 797}, + dictWord{9, 10, 423}, + dictWord{140, 10, 89}, + dictWord{8, 10, 113}, + dictWord{9, 10, 877}, + dictWord{10, 10, 554}, + dictWord{11, 10, 83}, + dictWord{12, 10, 136}, + dictWord{147, 10, 109}, + dictWord{133, 10, 976}, + dictWord{7, 0, 746}, + dictWord{132, 10, 206}, + dictWord{136, 0, 526}, + dictWord{139, 0, 345}, + dictWord{136, 0, 1017}, + dictWord{ + 8, + 11, + 152, + }, + dictWord{9, 11, 53}, + dictWord{9, 11, 268}, + dictWord{9, 11, 901}, + dictWord{10, 11, 518}, + dictWord{10, 11, 829}, + dictWord{11, 11, 188}, + dictWord{ + 13, + 11, + 74, + }, + dictWord{14, 11, 46}, + dictWord{15, 11, 17}, + dictWord{15, 11, 33}, + dictWord{17, 11, 40}, + dictWord{18, 11, 36}, + dictWord{19, 11, 20}, + dictWord{22, 11, 1}, + dictWord{152, 11, 2}, + dictWord{133, 11, 736}, + dictWord{136, 11, 532}, + dictWord{5, 0, 428}, + dictWord{138, 0, 651}, + dictWord{135, 11, 681}, + dictWord{ + 135, + 0, + 1162, + }, + dictWord{7, 0, 327}, + dictWord{13, 0, 230}, + dictWord{17, 0, 113}, + dictWord{8, 10, 226}, + dictWord{10, 10, 537}, + dictWord{11, 10, 570}, + dictWord{ + 11, + 10, + 605, + }, + dictWord{11, 10, 799}, + dictWord{11, 10, 804}, + dictWord{12, 10, 85}, + dictWord{12, 10, 516}, + dictWord{12, 10, 623}, + dictWord{12, 11, 677}, + dictWord{ + 13, + 10, + 361, + }, + dictWord{14, 10, 77}, + dictWord{14, 10, 78}, + dictWord{147, 10, 110}, + dictWord{4, 0, 792}, + dictWord{7, 0, 1717}, + dictWord{10, 0, 546}, + dictWord{ + 132, + 10, + 769, + }, + dictWord{4, 11, 684}, + dictWord{136, 11, 384}, + dictWord{132, 10, 551}, + dictWord{134, 0, 1203}, + dictWord{9, 10, 57}, + dictWord{9, 10, 459}, + dictWord{10, 10, 425}, + dictWord{11, 10, 119}, + dictWord{12, 10, 184}, + dictWord{12, 10, 371}, + dictWord{13, 10, 358}, + dictWord{145, 10, 51}, + dictWord{5, 0, 672}, + dictWord{5, 10, 814}, + dictWord{8, 10, 10}, + dictWord{9, 10, 421}, + dictWord{9, 10, 729}, + dictWord{10, 10, 609}, + dictWord{139, 10, 689}, + dictWord{138, 0, 189}, + dictWord{134, 10, 624}, + dictWord{7, 11, 110}, + dictWord{7, 11, 188}, + dictWord{8, 11, 290}, + dictWord{8, 11, 591}, + dictWord{9, 11, 382}, + dictWord{9, 11, 649}, + dictWord{11, 11, 71}, + dictWord{11, 11, 155}, + dictWord{11, 11, 313}, + dictWord{12, 11, 5}, + dictWord{13, 11, 325}, + dictWord{142, 11, 287}, + dictWord{133, 0, 99}, + dictWord{6, 0, 1053}, + dictWord{135, 0, 298}, + dictWord{7, 11, 360}, + dictWord{7, 11, 425}, + dictWord{9, 11, 66}, + dictWord{9, 11, 278}, + dictWord{138, 11, 644}, + dictWord{4, 0, 397}, + dictWord{136, 0, 555}, + dictWord{137, 10, 269}, + dictWord{132, 10, 528}, + dictWord{4, 11, 900}, + dictWord{133, 11, 861}, + dictWord{ + 6, + 0, + 1157, + }, + dictWord{5, 11, 254}, + dictWord{7, 11, 985}, + dictWord{136, 11, 73}, + dictWord{7, 11, 1959}, + dictWord{136, 11, 683}, + dictWord{12, 0, 398}, + dictWord{ + 20, + 0, + 39, + }, + dictWord{21, 0, 11}, + dictWord{150, 0, 41}, + dictWord{4, 0, 485}, + dictWord{7, 0, 353}, + dictWord{135, 0, 1523}, + dictWord{6, 0, 366}, + dictWord{7, 0, 1384}, + dictWord{135, 0, 1601}, + dictWord{138, 0, 787}, + dictWord{137, 0, 282}, + dictWord{5, 10, 104}, + dictWord{6, 10, 173}, + dictWord{135, 10, 1631}, + dictWord{ + 139, + 11, + 146, + }, + dictWord{4, 0, 157}, + dictWord{133, 0, 471}, + dictWord{134, 0, 941}, + dictWord{132, 11, 725}, + dictWord{7, 0, 1336}, + dictWord{8, 10, 138}, + dictWord{ + 8, + 10, + 342, + }, + dictWord{9, 10, 84}, + dictWord{10, 10, 193}, + dictWord{11, 10, 883}, + dictWord{140, 10, 359}, + dictWord{134, 11, 196}, + dictWord{136, 0, 116}, + dictWord{133, 11, 831}, + dictWord{134, 0, 787}, + dictWord{134, 10, 95}, + dictWord{6, 10, 406}, + dictWord{10, 10, 409}, + dictWord{10, 10, 447}, + dictWord{ + 11, + 10, + 44, + }, + dictWord{140, 10, 100}, + dictWord{5, 0, 160}, + dictWord{7, 0, 363}, + dictWord{7, 0, 589}, + dictWord{10, 0, 170}, + dictWord{141, 0, 55}, + dictWord{134, 0, 1815}, + dictWord{132, 0, 866}, + dictWord{6, 0, 889}, + dictWord{6, 0, 1067}, + dictWord{6, 0, 1183}, + dictWord{4, 11, 321}, + dictWord{134, 11, 569}, + dictWord{5, 11, 848}, + dictWord{134, 11, 66}, + dictWord{4, 11, 36}, + dictWord{6, 10, 1636}, + dictWord{7, 11, 1387}, + dictWord{10, 11, 205}, + dictWord{11, 11, 755}, + dictWord{ + 141, + 11, + 271, + }, + dictWord{132, 0, 689}, + dictWord{9, 0, 820}, + dictWord{4, 10, 282}, + dictWord{7, 10, 1034}, + dictWord{11, 10, 398}, + dictWord{11, 10, 634}, + dictWord{ + 12, + 10, + 1, + }, + dictWord{12, 10, 79}, + dictWord{12, 10, 544}, + dictWord{14, 10, 237}, + dictWord{17, 10, 10}, + dictWord{146, 10, 20}, + dictWord{4, 0, 108}, + dictWord{7, 0, 804}, + dictWord{139, 0, 498}, + dictWord{132, 11, 887}, + dictWord{6, 0, 1119}, + dictWord{135, 11, 620}, + dictWord{6, 11, 165}, + dictWord{138, 11, 388}, + dictWord{ + 5, + 0, + 244, + }, + dictWord{5, 10, 499}, + dictWord{6, 10, 476}, + dictWord{7, 10, 600}, + dictWord{7, 10, 888}, + dictWord{135, 10, 1096}, + dictWord{140, 0, 609}, + dictWord{ + 135, + 0, + 1005, + }, + dictWord{4, 0, 412}, + dictWord{133, 0, 581}, + dictWord{4, 11, 719}, + dictWord{135, 11, 155}, + dictWord{7, 10, 296}, + dictWord{7, 10, 596}, + dictWord{ + 8, + 10, + 560, + }, + dictWord{8, 10, 586}, + dictWord{9, 10, 612}, + dictWord{11, 10, 304}, + dictWord{12, 10, 46}, + dictWord{13, 10, 89}, + dictWord{14, 10, 112}, + dictWord{ + 145, + 10, + 122, + }, + dictWord{4, 0, 895}, + dictWord{133, 0, 772}, + dictWord{142, 11, 307}, + dictWord{135, 0, 1898}, + dictWord{4, 0, 926}, + dictWord{133, 0, 983}, + dictWord{4, 11, 353}, + dictWord{6, 11, 146}, + dictWord{6, 11, 1789}, + dictWord{7, 11, 288}, + dictWord{7, 11, 990}, + dictWord{7, 11, 1348}, + dictWord{9, 11, 665}, + dictWord{ + 9, + 11, + 898, + }, + dictWord{11, 11, 893}, + dictWord{142, 11, 212}, + dictWord{132, 0, 538}, + dictWord{133, 11, 532}, + dictWord{6, 0, 294}, + dictWord{7, 0, 1267}, + dictWord{8, 0, 624}, + dictWord{141, 0, 496}, + dictWord{7, 0, 1325}, + dictWord{4, 11, 45}, + dictWord{135, 11, 1257}, + dictWord{138, 0, 301}, + dictWord{9, 0, 298}, + dictWord{12, 0, 291}, + dictWord{13, 0, 276}, + dictWord{14, 0, 6}, + dictWord{17, 0, 18}, + dictWord{21, 0, 32}, + dictWord{7, 10, 1599}, + dictWord{7, 10, 1723}, + dictWord{ + 8, + 10, + 79, + }, + dictWord{8, 10, 106}, + dictWord{8, 10, 190}, + dictWord{8, 10, 302}, + dictWord{8, 10, 383}, + dictWord{8, 10, 713}, + dictWord{9, 10, 119}, + dictWord{9, 10, 233}, + dictWord{9, 10, 419}, + dictWord{9, 10, 471}, + dictWord{10, 10, 181}, + dictWord{10, 10, 406}, + dictWord{11, 10, 57}, + dictWord{11, 10, 85}, + dictWord{11, 10, 120}, + dictWord{11, 10, 177}, + dictWord{11, 10, 296}, + dictWord{11, 10, 382}, + dictWord{11, 10, 454}, + dictWord{11, 10, 758}, + dictWord{11, 10, 999}, + dictWord{ + 12, + 10, + 27, + }, + dictWord{12, 10, 131}, + dictWord{12, 10, 245}, + dictWord{12, 10, 312}, + dictWord{12, 10, 446}, + dictWord{12, 10, 454}, + dictWord{13, 10, 98}, + dictWord{ + 13, + 10, + 426, + }, + dictWord{13, 10, 508}, + dictWord{14, 10, 163}, + dictWord{14, 10, 272}, + dictWord{14, 10, 277}, + dictWord{14, 10, 370}, + dictWord{15, 10, 95}, + dictWord{15, 10, 138}, + dictWord{15, 10, 167}, + dictWord{17, 10, 38}, + dictWord{148, 10, 96}, + dictWord{132, 0, 757}, + dictWord{134, 0, 1263}, + dictWord{4, 0, 820}, + dictWord{134, 10, 1759}, + dictWord{133, 0, 722}, + dictWord{136, 11, 816}, + dictWord{138, 10, 372}, + dictWord{145, 10, 16}, + dictWord{134, 0, 1039}, + dictWord{ + 4, + 0, + 991, + }, + dictWord{134, 0, 2028}, + dictWord{133, 10, 258}, + dictWord{7, 0, 1875}, + dictWord{139, 0, 124}, + dictWord{6, 11, 559}, + dictWord{6, 11, 1691}, + dictWord{135, 11, 586}, + dictWord{5, 0, 324}, + dictWord{7, 0, 881}, + dictWord{8, 10, 134}, + dictWord{9, 10, 788}, + dictWord{140, 10, 438}, + dictWord{7, 11, 1823}, + dictWord{139, 11, 693}, + dictWord{6, 0, 1348}, + dictWord{134, 0, 1545}, + dictWord{134, 0, 911}, + dictWord{132, 0, 954}, + dictWord{8, 0, 329}, + dictWord{8, 0, 414}, + dictWord{7, 10, 1948}, + dictWord{135, 10, 2004}, + dictWord{5, 0, 517}, + dictWord{6, 10, 439}, + dictWord{7, 10, 780}, + dictWord{135, 10, 1040}, + dictWord{ + 132, + 0, + 816, + }, + dictWord{5, 10, 1}, + dictWord{6, 10, 81}, + dictWord{138, 10, 520}, + dictWord{9, 0, 713}, + dictWord{10, 0, 222}, + dictWord{5, 10, 482}, + dictWord{8, 10, 98}, + dictWord{10, 10, 700}, + dictWord{10, 10, 822}, + dictWord{11, 10, 302}, + dictWord{11, 10, 778}, + dictWord{12, 10, 50}, + dictWord{12, 10, 127}, + dictWord{12, 10, 396}, + dictWord{13, 10, 62}, + dictWord{13, 10, 328}, + dictWord{14, 10, 122}, + dictWord{147, 10, 72}, + dictWord{137, 0, 33}, + dictWord{5, 10, 2}, + dictWord{7, 10, 1494}, + dictWord{136, 10, 589}, + dictWord{6, 10, 512}, + dictWord{7, 10, 797}, + dictWord{8, 10, 253}, + dictWord{9, 10, 77}, + dictWord{10, 10, 1}, + dictWord{10, 11, 108}, + dictWord{10, 10, 129}, + dictWord{10, 10, 225}, + dictWord{11, 11, 116}, + dictWord{11, 10, 118}, + dictWord{11, 10, 226}, + dictWord{11, 10, 251}, + dictWord{ + 11, + 10, + 430, + }, + dictWord{11, 10, 701}, + dictWord{11, 10, 974}, + dictWord{11, 10, 982}, + dictWord{12, 10, 64}, + dictWord{12, 10, 260}, + dictWord{12, 10, 488}, + dictWord{ + 140, + 10, + 690, + }, + dictWord{134, 11, 456}, + dictWord{133, 11, 925}, + dictWord{5, 0, 150}, + dictWord{7, 0, 106}, + dictWord{7, 0, 774}, + dictWord{8, 0, 603}, + dictWord{ + 9, + 0, + 593, + }, + dictWord{9, 0, 634}, + dictWord{10, 0, 44}, + dictWord{10, 0, 173}, + dictWord{11, 0, 462}, + dictWord{11, 0, 515}, + dictWord{13, 0, 216}, + dictWord{13, 0, 288}, + dictWord{142, 0, 400}, + dictWord{137, 10, 347}, + dictWord{5, 0, 748}, + dictWord{134, 0, 553}, + dictWord{12, 0, 108}, + dictWord{141, 0, 291}, + dictWord{7, 0, 420}, + dictWord{4, 10, 12}, + dictWord{7, 10, 522}, + dictWord{7, 10, 809}, + dictWord{8, 10, 797}, + dictWord{141, 10, 88}, + dictWord{6, 11, 193}, + dictWord{7, 11, 240}, + dictWord{ + 7, + 11, + 1682, + }, + dictWord{10, 11, 51}, + dictWord{10, 11, 640}, + dictWord{11, 11, 410}, + dictWord{13, 11, 82}, + dictWord{14, 11, 247}, + dictWord{14, 11, 331}, + dictWord{142, 11, 377}, + dictWord{133, 10, 528}, + dictWord{135, 0, 1777}, + dictWord{4, 0, 493}, + dictWord{144, 0, 55}, + dictWord{136, 11, 633}, + dictWord{ + 139, + 0, + 81, + }, + dictWord{6, 0, 980}, + dictWord{136, 0, 321}, + dictWord{148, 10, 109}, + dictWord{5, 10, 266}, + dictWord{9, 10, 290}, + dictWord{9, 10, 364}, + dictWord{ + 10, + 10, + 293, + }, + dictWord{11, 10, 606}, + dictWord{142, 10, 45}, + dictWord{6, 0, 568}, + dictWord{7, 0, 112}, + dictWord{7, 0, 1804}, + dictWord{8, 0, 362}, + dictWord{8, 0, 410}, + dictWord{8, 0, 830}, + dictWord{9, 0, 514}, + dictWord{11, 0, 649}, + dictWord{142, 0, 157}, + dictWord{4, 0, 74}, + dictWord{6, 0, 510}, + dictWord{6, 10, 594}, + dictWord{ + 9, + 10, + 121, + }, + dictWord{10, 10, 49}, + dictWord{10, 10, 412}, + dictWord{139, 10, 834}, + dictWord{134, 0, 838}, + dictWord{136, 10, 748}, + dictWord{132, 10, 466}, + dictWord{132, 0, 625}, + dictWord{135, 11, 1443}, + dictWord{4, 11, 237}, + dictWord{135, 11, 514}, + dictWord{9, 10, 378}, + dictWord{141, 10, 162}, + dictWord{6, 0, 16}, + dictWord{6, 0, 158}, + dictWord{7, 0, 43}, + dictWord{7, 0, 129}, + dictWord{7, 0, 181}, + dictWord{8, 0, 276}, + dictWord{8, 0, 377}, + dictWord{10, 0, 523}, + dictWord{ + 11, + 0, + 816, + }, + dictWord{12, 0, 455}, + dictWord{13, 0, 303}, + dictWord{142, 0, 135}, + dictWord{135, 0, 281}, + dictWord{4, 0, 1}, + dictWord{7, 0, 1143}, + dictWord{7, 0, 1463}, + dictWord{8, 0, 61}, + dictWord{9, 0, 207}, + dictWord{9, 0, 390}, + dictWord{9, 0, 467}, + dictWord{139, 0, 836}, + dictWord{6, 11, 392}, + dictWord{7, 11, 65}, + dictWord{ + 135, + 11, + 2019, + }, + dictWord{132, 10, 667}, + dictWord{4, 0, 723}, + dictWord{5, 0, 895}, + dictWord{7, 0, 1031}, + dictWord{8, 0, 199}, + dictWord{8, 0, 340}, + dictWord{9, 0, 153}, + dictWord{9, 0, 215}, + dictWord{10, 0, 21}, + dictWord{10, 0, 59}, + dictWord{10, 0, 80}, + dictWord{10, 0, 224}, + dictWord{10, 0, 838}, + dictWord{11, 0, 229}, + dictWord{ + 11, + 0, + 652, + }, + dictWord{12, 0, 192}, + dictWord{13, 0, 146}, + dictWord{142, 0, 91}, + dictWord{132, 0, 295}, + dictWord{137, 0, 51}, + dictWord{9, 11, 222}, + dictWord{ + 10, + 11, + 43, + }, + dictWord{139, 11, 900}, + dictWord{5, 0, 309}, + dictWord{140, 0, 211}, + dictWord{5, 0, 125}, + dictWord{8, 0, 77}, + dictWord{138, 0, 15}, + dictWord{136, 11, 604}, + dictWord{138, 0, 789}, + dictWord{5, 0, 173}, + dictWord{4, 10, 39}, + dictWord{7, 10, 1843}, + dictWord{8, 10, 407}, + dictWord{11, 10, 144}, + dictWord{140, 10, 523}, + dictWord{138, 11, 265}, + dictWord{133, 0, 439}, + dictWord{132, 10, 510}, + dictWord{7, 0, 648}, + dictWord{7, 0, 874}, + dictWord{11, 0, 164}, + dictWord{12, 0, 76}, + dictWord{18, 0, 9}, + dictWord{7, 10, 1980}, + dictWord{10, 10, 487}, + dictWord{138, 10, 809}, + dictWord{12, 0, 111}, + dictWord{14, 0, 294}, + dictWord{19, 0, 45}, + dictWord{13, 10, 260}, + dictWord{146, 10, 63}, + dictWord{133, 11, 549}, + dictWord{134, 10, 570}, + dictWord{4, 0, 8}, + dictWord{7, 0, 1152}, + dictWord{7, 0, 1153}, + dictWord{7, 0, 1715}, + dictWord{9, 0, 374}, + dictWord{10, 0, 478}, + dictWord{139, 0, 648}, + dictWord{135, 0, 1099}, + dictWord{5, 0, 575}, + dictWord{6, 0, 354}, + dictWord{ + 135, + 0, + 701, + }, + dictWord{7, 11, 36}, + dictWord{8, 11, 201}, + dictWord{136, 11, 605}, + dictWord{4, 10, 787}, + dictWord{136, 11, 156}, + dictWord{6, 0, 518}, + dictWord{ + 149, + 11, + 13, + }, + dictWord{140, 11, 224}, + dictWord{134, 0, 702}, + dictWord{132, 10, 516}, + dictWord{5, 11, 724}, + dictWord{10, 11, 305}, + dictWord{11, 11, 151}, + dictWord{12, 11, 33}, + dictWord{12, 11, 121}, + dictWord{12, 11, 381}, + dictWord{17, 11, 3}, + dictWord{17, 11, 27}, + dictWord{17, 11, 78}, + dictWord{18, 11, 18}, + dictWord{19, 11, 54}, + dictWord{149, 11, 5}, + dictWord{8, 0, 87}, + dictWord{4, 11, 523}, + dictWord{5, 11, 638}, + dictWord{11, 10, 887}, + dictWord{14, 10, 365}, + dictWord{ + 142, + 10, + 375, + }, + dictWord{138, 0, 438}, + dictWord{136, 10, 821}, + dictWord{135, 11, 1908}, + dictWord{6, 11, 242}, + dictWord{7, 11, 227}, + dictWord{7, 11, 1581}, + dictWord{8, 11, 104}, + dictWord{9, 11, 113}, + dictWord{9, 11, 220}, + dictWord{9, 11, 427}, + dictWord{10, 11, 74}, + dictWord{10, 11, 239}, + dictWord{11, 11, 579}, + dictWord{11, 11, 1023}, + dictWord{13, 11, 4}, + dictWord{13, 11, 204}, + dictWord{13, 11, 316}, + dictWord{18, 11, 95}, + dictWord{148, 11, 86}, + dictWord{4, 0, 69}, + dictWord{5, 0, 122}, + dictWord{5, 0, 849}, + dictWord{6, 0, 1633}, + dictWord{9, 0, 656}, + dictWord{138, 0, 464}, + dictWord{7, 0, 1802}, + dictWord{4, 10, 10}, + dictWord{ + 139, + 10, + 786, + }, + dictWord{135, 11, 861}, + dictWord{139, 0, 499}, + dictWord{7, 0, 476}, + dictWord{7, 0, 1592}, + dictWord{138, 0, 87}, + dictWord{133, 10, 684}, + dictWord{ + 4, + 0, + 840, + }, + dictWord{134, 10, 27}, + dictWord{142, 0, 283}, + dictWord{6, 0, 1620}, + dictWord{7, 11, 1328}, + dictWord{136, 11, 494}, + dictWord{5, 0, 859}, + dictWord{ + 7, + 0, + 1160, + }, + dictWord{8, 0, 107}, + dictWord{9, 0, 291}, + dictWord{9, 0, 439}, + dictWord{10, 0, 663}, + dictWord{11, 0, 609}, + dictWord{140, 0, 197}, + dictWord{ + 7, + 11, + 1306, + }, + dictWord{8, 11, 505}, + dictWord{9, 11, 482}, + dictWord{10, 11, 126}, + dictWord{11, 11, 225}, + dictWord{12, 11, 347}, + dictWord{12, 11, 449}, + dictWord{ + 13, + 11, + 19, + }, + dictWord{142, 11, 218}, + dictWord{5, 11, 268}, + dictWord{10, 11, 764}, + dictWord{12, 11, 120}, + dictWord{13, 11, 39}, + dictWord{145, 11, 127}, + dictWord{145, 10, 56}, + dictWord{7, 11, 1672}, + dictWord{10, 11, 472}, + dictWord{11, 11, 189}, + dictWord{143, 11, 51}, + dictWord{6, 10, 342}, + dictWord{6, 10, 496}, + dictWord{8, 10, 275}, + dictWord{137, 10, 206}, + dictWord{133, 0, 600}, + dictWord{4, 0, 117}, + dictWord{6, 0, 372}, + dictWord{7, 0, 1905}, + dictWord{142, 0, 323}, + dictWord{4, 10, 909}, + dictWord{5, 10, 940}, + dictWord{135, 11, 1471}, + dictWord{132, 10, 891}, + dictWord{4, 0, 722}, + dictWord{139, 0, 471}, + dictWord{4, 11, 384}, + dictWord{135, 11, 1022}, + dictWord{132, 10, 687}, + dictWord{9, 0, 5}, + dictWord{12, 0, 216}, + dictWord{12, 0, 294}, + dictWord{12, 0, 298}, + dictWord{12, 0, 400}, + dictWord{12, 0, 518}, + dictWord{13, 0, 229}, + dictWord{143, 0, 139}, + dictWord{135, 11, 1703}, + dictWord{7, 11, 1602}, + dictWord{10, 11, 698}, + dictWord{ + 12, + 11, + 212, + }, + dictWord{141, 11, 307}, + dictWord{6, 10, 41}, + dictWord{141, 10, 160}, + dictWord{135, 11, 1077}, + dictWord{9, 11, 159}, + dictWord{11, 11, 28}, + dictWord{140, 11, 603}, + dictWord{4, 0, 514}, + dictWord{7, 0, 1304}, + dictWord{138, 0, 477}, + dictWord{134, 0, 1774}, + dictWord{9, 0, 88}, + dictWord{139, 0, 270}, + dictWord{5, 0, 12}, + dictWord{7, 0, 375}, + dictWord{9, 0, 438}, + dictWord{134, 10, 1718}, + dictWord{132, 11, 515}, + dictWord{136, 10, 778}, + dictWord{8, 11, 632}, + dictWord{8, 11, 697}, + dictWord{137, 11, 854}, + dictWord{6, 0, 362}, + dictWord{6, 0, 997}, + dictWord{146, 0, 51}, + dictWord{7, 0, 816}, + dictWord{7, 0, 1241}, + dictWord{ + 9, + 0, + 283, + }, + dictWord{9, 0, 520}, + dictWord{10, 0, 213}, + dictWord{10, 0, 307}, + dictWord{10, 0, 463}, + dictWord{10, 0, 671}, + dictWord{10, 0, 746}, + dictWord{11, 0, 401}, + dictWord{11, 0, 794}, + dictWord{12, 0, 517}, + dictWord{18, 0, 107}, + dictWord{147, 0, 115}, + dictWord{133, 10, 115}, + dictWord{150, 11, 28}, + dictWord{4, 11, 136}, + dictWord{133, 11, 551}, + dictWord{142, 10, 314}, + dictWord{132, 0, 258}, + dictWord{6, 0, 22}, + dictWord{7, 0, 903}, + dictWord{7, 0, 1963}, + dictWord{8, 0, 639}, + dictWord{138, 0, 577}, + dictWord{5, 0, 681}, + dictWord{8, 0, 782}, + dictWord{13, 0, 130}, + dictWord{17, 0, 84}, + dictWord{5, 10, 193}, + dictWord{140, 10, 178}, + dictWord{ + 9, + 11, + 17, + }, + dictWord{138, 11, 291}, + dictWord{7, 11, 1287}, + dictWord{9, 11, 44}, + dictWord{10, 11, 552}, + dictWord{10, 11, 642}, + dictWord{11, 11, 839}, + dictWord{12, 11, 274}, + dictWord{12, 11, 275}, + dictWord{12, 11, 372}, + dictWord{13, 11, 91}, + dictWord{142, 11, 125}, + dictWord{135, 10, 174}, + dictWord{4, 0, 664}, + dictWord{5, 0, 804}, + dictWord{139, 0, 1013}, + dictWord{134, 0, 942}, + dictWord{6, 0, 1349}, + dictWord{6, 0, 1353}, + dictWord{6, 0, 1450}, + dictWord{7, 11, 1518}, + dictWord{139, 11, 694}, + dictWord{11, 0, 356}, + dictWord{4, 10, 122}, + dictWord{5, 10, 796}, + dictWord{5, 10, 952}, + dictWord{6, 10, 1660}, + dictWord{ + 6, + 10, + 1671, + }, + dictWord{8, 10, 567}, + dictWord{9, 10, 687}, + dictWord{9, 10, 742}, + dictWord{10, 10, 686}, + dictWord{11, 10, 682}, + dictWord{140, 10, 281}, + dictWord{ + 5, + 0, + 32, + }, + dictWord{6, 11, 147}, + dictWord{7, 11, 886}, + dictWord{9, 11, 753}, + dictWord{138, 11, 268}, + dictWord{5, 10, 179}, + dictWord{7, 10, 1095}, + dictWord{ + 135, + 10, + 1213, + }, + dictWord{4, 10, 66}, + dictWord{7, 10, 722}, + dictWord{135, 10, 904}, + dictWord{135, 10, 352}, + dictWord{9, 11, 245}, + dictWord{138, 11, 137}, + dictWord{4, 0, 289}, + dictWord{7, 0, 629}, + dictWord{7, 0, 1698}, + dictWord{7, 0, 1711}, + dictWord{12, 0, 215}, + dictWord{133, 11, 414}, + dictWord{6, 0, 1975}, + dictWord{135, 11, 1762}, + dictWord{6, 0, 450}, + dictWord{136, 0, 109}, + dictWord{141, 10, 35}, + dictWord{134, 11, 599}, + dictWord{136, 0, 705}, + dictWord{ + 133, + 0, + 664, + }, + dictWord{134, 11, 1749}, + dictWord{11, 11, 402}, + dictWord{12, 11, 109}, + dictWord{12, 11, 431}, + dictWord{13, 11, 179}, + dictWord{13, 11, 206}, + dictWord{14, 11, 175}, + dictWord{14, 11, 217}, + dictWord{16, 11, 3}, + dictWord{148, 11, 53}, + dictWord{135, 0, 1238}, + dictWord{134, 11, 1627}, + dictWord{ + 132, + 11, + 488, + }, + dictWord{13, 0, 318}, + dictWord{10, 10, 592}, + dictWord{10, 10, 753}, + dictWord{12, 10, 317}, + dictWord{12, 10, 355}, + dictWord{12, 10, 465}, + dictWord{ + 12, + 10, + 469, + }, + dictWord{12, 10, 560}, + dictWord{140, 10, 578}, + dictWord{133, 10, 564}, + dictWord{132, 11, 83}, + dictWord{140, 11, 676}, + dictWord{6, 0, 1872}, + dictWord{6, 0, 1906}, + dictWord{6, 0, 1907}, + dictWord{9, 0, 934}, + dictWord{9, 0, 956}, + dictWord{9, 0, 960}, + dictWord{9, 0, 996}, + dictWord{12, 0, 794}, + dictWord{ + 12, + 0, + 876, + }, + dictWord{12, 0, 880}, + dictWord{12, 0, 918}, + dictWord{15, 0, 230}, + dictWord{18, 0, 234}, + dictWord{18, 0, 238}, + dictWord{21, 0, 38}, + dictWord{149, 0, 62}, + dictWord{134, 10, 556}, + dictWord{134, 11, 278}, + dictWord{137, 0, 103}, + dictWord{7, 10, 544}, + dictWord{8, 10, 719}, + dictWord{138, 10, 61}, + dictWord{ + 4, + 10, + 5, + }, + dictWord{5, 10, 498}, + dictWord{8, 10, 637}, + dictWord{137, 10, 521}, + dictWord{7, 0, 777}, + dictWord{12, 0, 229}, + dictWord{12, 0, 239}, + dictWord{15, 0, 12}, + dictWord{12, 11, 229}, + dictWord{12, 11, 239}, + dictWord{143, 11, 12}, + dictWord{6, 0, 26}, + dictWord{7, 11, 388}, + dictWord{7, 11, 644}, + dictWord{139, 11, 781}, + dictWord{7, 11, 229}, + dictWord{8, 11, 59}, + dictWord{9, 11, 190}, + dictWord{9, 11, 257}, + dictWord{10, 11, 378}, + dictWord{140, 11, 191}, + dictWord{133, 10, 927}, + dictWord{135, 10, 1441}, + dictWord{4, 10, 893}, + dictWord{5, 10, 780}, + dictWord{133, 10, 893}, + dictWord{4, 0, 414}, + dictWord{5, 0, 467}, + dictWord{9, 0, 654}, + dictWord{10, 0, 451}, + dictWord{12, 0, 59}, + dictWord{141, 0, 375}, + dictWord{142, 0, 173}, + dictWord{135, 0, 17}, + dictWord{7, 0, 1350}, + dictWord{133, 10, 238}, + dictWord{135, 0, 955}, + dictWord{4, 0, 960}, + dictWord{10, 0, 887}, + dictWord{12, 0, 753}, + dictWord{18, 0, 161}, + dictWord{18, 0, 162}, + dictWord{152, 0, 19}, + dictWord{136, 11, 344}, + dictWord{6, 10, 1729}, + dictWord{137, 11, 288}, + dictWord{132, 11, 660}, + dictWord{4, 0, 217}, + dictWord{5, 0, 710}, + dictWord{7, 0, 760}, + dictWord{7, 0, 1926}, + dictWord{9, 0, 428}, + dictWord{9, 0, 708}, + dictWord{10, 0, 254}, + dictWord{10, 0, 296}, + dictWord{10, 0, 720}, + dictWord{11, 0, 109}, + dictWord{ + 11, + 0, + 255, + }, + dictWord{12, 0, 165}, + dictWord{12, 0, 315}, + dictWord{13, 0, 107}, + dictWord{13, 0, 203}, + dictWord{14, 0, 54}, + dictWord{14, 0, 99}, + dictWord{14, 0, 114}, + dictWord{14, 0, 388}, + dictWord{16, 0, 85}, + dictWord{17, 0, 9}, + dictWord{17, 0, 33}, + dictWord{20, 0, 25}, + dictWord{20, 0, 28}, + dictWord{20, 0, 29}, + dictWord{21, 0, 9}, + dictWord{21, 0, 10}, + dictWord{21, 0, 34}, + dictWord{22, 0, 17}, + dictWord{4, 10, 60}, + dictWord{7, 10, 1800}, + dictWord{8, 10, 314}, + dictWord{9, 10, 700}, + dictWord{ + 139, + 10, + 487, + }, + dictWord{7, 11, 1035}, + dictWord{138, 11, 737}, + dictWord{7, 11, 690}, + dictWord{9, 11, 217}, + dictWord{9, 11, 587}, + dictWord{140, 11, 521}, + dictWord{6, 0, 919}, + dictWord{7, 11, 706}, + dictWord{7, 11, 1058}, + dictWord{138, 11, 538}, + dictWord{7, 10, 1853}, + dictWord{138, 10, 437}, + dictWord{ + 136, + 10, + 419, + }, + dictWord{6, 0, 280}, + dictWord{10, 0, 502}, + dictWord{11, 0, 344}, + dictWord{140, 0, 38}, + dictWord{5, 0, 45}, + dictWord{7, 0, 1161}, + dictWord{11, 0, 448}, + dictWord{11, 0, 880}, + dictWord{13, 0, 139}, + dictWord{13, 0, 407}, + dictWord{15, 0, 16}, + dictWord{17, 0, 95}, + dictWord{18, 0, 66}, + dictWord{18, 0, 88}, + dictWord{ + 18, + 0, + 123, + }, + dictWord{149, 0, 7}, + dictWord{11, 11, 92}, + dictWord{11, 11, 196}, + dictWord{11, 11, 409}, + dictWord{11, 11, 450}, + dictWord{11, 11, 666}, + dictWord{ + 11, + 11, + 777, + }, + dictWord{12, 11, 262}, + dictWord{13, 11, 385}, + dictWord{13, 11, 393}, + dictWord{15, 11, 115}, + dictWord{16, 11, 45}, + dictWord{145, 11, 82}, + dictWord{136, 0, 777}, + dictWord{134, 11, 1744}, + dictWord{4, 0, 410}, + dictWord{7, 0, 521}, + dictWord{133, 10, 828}, + dictWord{134, 0, 673}, + dictWord{7, 0, 1110}, + dictWord{7, 0, 1778}, + dictWord{7, 10, 176}, + dictWord{135, 10, 178}, + dictWord{5, 10, 806}, + dictWord{7, 11, 268}, + dictWord{7, 10, 1976}, + dictWord{ + 136, + 11, + 569, + }, + dictWord{4, 11, 733}, + dictWord{9, 11, 194}, + dictWord{10, 11, 92}, + dictWord{11, 11, 198}, + dictWord{12, 11, 84}, + dictWord{12, 11, 87}, + dictWord{ + 13, + 11, + 128, + }, + dictWord{144, 11, 74}, + dictWord{5, 0, 341}, + dictWord{7, 0, 1129}, + dictWord{11, 0, 414}, + dictWord{4, 10, 51}, + dictWord{6, 10, 4}, + dictWord{7, 10, 591}, + dictWord{7, 10, 849}, + dictWord{7, 10, 951}, + dictWord{7, 10, 1613}, + dictWord{7, 10, 1760}, + dictWord{7, 10, 1988}, + dictWord{9, 10, 434}, + dictWord{10, 10, 754}, + dictWord{11, 10, 25}, + dictWord{139, 10, 37}, + dictWord{133, 10, 902}, + dictWord{135, 10, 928}, + dictWord{135, 0, 787}, + dictWord{132, 0, 436}, + dictWord{ + 134, + 10, + 270, + }, + dictWord{7, 0, 1587}, + dictWord{135, 0, 1707}, + dictWord{6, 0, 377}, + dictWord{7, 0, 1025}, + dictWord{9, 0, 613}, + dictWord{145, 0, 104}, + dictWord{ + 7, + 11, + 982, + }, + dictWord{7, 11, 1361}, + dictWord{10, 11, 32}, + dictWord{143, 11, 56}, + dictWord{139, 0, 96}, + dictWord{132, 0, 451}, + dictWord{132, 10, 416}, + dictWord{ + 142, + 10, + 372, + }, + dictWord{5, 10, 152}, + dictWord{5, 10, 197}, + dictWord{7, 11, 306}, + dictWord{7, 10, 340}, + dictWord{7, 10, 867}, + dictWord{10, 10, 548}, + dictWord{ + 10, + 10, + 581, + }, + dictWord{11, 10, 6}, + dictWord{12, 10, 3}, + dictWord{12, 10, 19}, + dictWord{14, 10, 110}, + dictWord{142, 10, 289}, + dictWord{134, 0, 680}, + dictWord{ + 134, + 11, + 609, + }, + dictWord{7, 0, 483}, + dictWord{7, 10, 190}, + dictWord{8, 10, 28}, + dictWord{8, 10, 141}, + dictWord{8, 10, 444}, + dictWord{8, 10, 811}, + dictWord{ + 9, + 10, + 468, + }, + dictWord{11, 10, 334}, + dictWord{12, 10, 24}, + dictWord{12, 10, 386}, + dictWord{140, 10, 576}, + dictWord{10, 0, 916}, + dictWord{133, 10, 757}, + dictWord{ + 5, + 10, + 721, + }, + dictWord{135, 10, 1553}, + dictWord{133, 11, 178}, + dictWord{134, 0, 937}, + dictWord{132, 10, 898}, + dictWord{133, 0, 739}, + dictWord{ + 147, + 0, + 82, + }, + dictWord{135, 0, 663}, + dictWord{146, 0, 128}, + dictWord{5, 10, 277}, + dictWord{141, 10, 247}, + dictWord{134, 0, 1087}, + dictWord{132, 10, 435}, + dictWord{ + 6, + 11, + 381, + }, + dictWord{7, 11, 645}, + dictWord{7, 11, 694}, + dictWord{136, 11, 546}, + dictWord{7, 0, 503}, + dictWord{135, 0, 1885}, + dictWord{6, 0, 1965}, + dictWord{ + 8, + 0, + 925, + }, + dictWord{138, 0, 955}, + dictWord{4, 0, 113}, + dictWord{5, 0, 163}, + dictWord{5, 0, 735}, + dictWord{7, 0, 1009}, + dictWord{9, 0, 9}, + dictWord{9, 0, 771}, + dictWord{12, 0, 90}, + dictWord{13, 0, 138}, + dictWord{13, 0, 410}, + dictWord{143, 0, 128}, + dictWord{4, 0, 324}, + dictWord{138, 0, 104}, + dictWord{7, 0, 460}, + dictWord{ + 5, + 10, + 265, + }, + dictWord{134, 10, 212}, + dictWord{133, 11, 105}, + dictWord{7, 11, 261}, + dictWord{7, 11, 1107}, + dictWord{7, 11, 1115}, + dictWord{7, 11, 1354}, + dictWord{7, 11, 1588}, + dictWord{7, 11, 1705}, + dictWord{7, 11, 1902}, + dictWord{9, 11, 465}, + dictWord{10, 11, 248}, + dictWord{10, 11, 349}, + dictWord{10, 11, 647}, + dictWord{11, 11, 527}, + dictWord{11, 11, 660}, + dictWord{11, 11, 669}, + dictWord{12, 11, 529}, + dictWord{141, 11, 305}, + dictWord{5, 11, 438}, + dictWord{ + 9, + 11, + 694, + }, + dictWord{12, 11, 627}, + dictWord{141, 11, 210}, + dictWord{152, 11, 11}, + dictWord{4, 0, 935}, + dictWord{133, 0, 823}, + dictWord{132, 10, 702}, + dictWord{ + 5, + 0, + 269, + }, + dictWord{7, 0, 434}, + dictWord{7, 0, 891}, + dictWord{8, 0, 339}, + dictWord{9, 0, 702}, + dictWord{11, 0, 594}, + dictWord{11, 0, 718}, + dictWord{17, 0, 100}, + dictWord{5, 10, 808}, + dictWord{135, 10, 2045}, + dictWord{7, 0, 1014}, + dictWord{9, 0, 485}, + dictWord{141, 0, 264}, + dictWord{134, 0, 1713}, + dictWord{7, 0, 1810}, + dictWord{11, 0, 866}, + dictWord{12, 0, 103}, + dictWord{13, 0, 495}, + dictWord{140, 11, 233}, + dictWord{4, 0, 423}, + dictWord{10, 0, 949}, + dictWord{138, 0, 1013}, + dictWord{135, 0, 900}, + dictWord{8, 11, 25}, + dictWord{138, 11, 826}, + dictWord{5, 10, 166}, + dictWord{8, 10, 739}, + dictWord{140, 10, 511}, + dictWord{ + 134, + 0, + 2018, + }, + dictWord{7, 11, 1270}, + dictWord{139, 11, 612}, + dictWord{4, 10, 119}, + dictWord{5, 10, 170}, + dictWord{5, 10, 447}, + dictWord{7, 10, 1708}, + dictWord{ + 7, + 10, + 1889, + }, + dictWord{9, 10, 357}, + dictWord{9, 10, 719}, + dictWord{12, 10, 486}, + dictWord{140, 10, 596}, + dictWord{12, 0, 574}, + dictWord{140, 11, 574}, + dictWord{132, 11, 308}, + dictWord{6, 0, 964}, + dictWord{6, 0, 1206}, + dictWord{134, 0, 1302}, + dictWord{4, 10, 450}, + dictWord{135, 10, 1158}, + dictWord{ + 135, + 11, + 150, + }, + dictWord{136, 11, 649}, + dictWord{14, 0, 213}, + dictWord{148, 0, 38}, + dictWord{9, 11, 45}, + dictWord{9, 11, 311}, + dictWord{141, 11, 42}, + dictWord{ + 134, + 11, + 521, + }, + dictWord{7, 10, 1375}, + dictWord{7, 10, 1466}, + dictWord{138, 10, 331}, + dictWord{132, 10, 754}, + dictWord{5, 11, 339}, + dictWord{7, 11, 1442}, + dictWord{14, 11, 3}, + dictWord{15, 11, 41}, + dictWord{147, 11, 66}, + dictWord{136, 11, 378}, + dictWord{134, 0, 1022}, + dictWord{5, 10, 850}, + dictWord{136, 10, 799}, + dictWord{142, 0, 143}, + dictWord{135, 0, 2029}, + dictWord{134, 11, 1628}, + dictWord{8, 0, 523}, + dictWord{150, 0, 34}, + dictWord{5, 0, 625}, + dictWord{ + 135, + 0, + 1617, + }, + dictWord{7, 0, 275}, + dictWord{7, 10, 238}, + dictWord{7, 10, 2033}, + dictWord{8, 10, 120}, + dictWord{8, 10, 188}, + dictWord{8, 10, 659}, + dictWord{ + 9, + 10, + 598, + }, + dictWord{10, 10, 466}, + dictWord{12, 10, 342}, + dictWord{12, 10, 588}, + dictWord{13, 10, 503}, + dictWord{14, 10, 246}, + dictWord{143, 10, 92}, + dictWord{ + 7, + 0, + 37, + }, + dictWord{8, 0, 425}, + dictWord{8, 0, 693}, + dictWord{9, 0, 720}, + dictWord{10, 0, 380}, + dictWord{10, 0, 638}, + dictWord{11, 0, 273}, + dictWord{11, 0, 473}, + dictWord{12, 0, 61}, + dictWord{143, 0, 43}, + dictWord{135, 11, 829}, + dictWord{135, 0, 1943}, + dictWord{132, 0, 765}, + dictWord{5, 11, 486}, + dictWord{ + 135, + 11, + 1349, + }, + dictWord{7, 11, 1635}, + dictWord{8, 11, 17}, + dictWord{10, 11, 217}, + dictWord{138, 11, 295}, + dictWord{4, 10, 201}, + dictWord{7, 10, 1744}, + dictWord{ + 8, + 10, + 602, + }, + dictWord{11, 10, 247}, + dictWord{11, 10, 826}, + dictWord{145, 10, 65}, + dictWord{138, 11, 558}, + dictWord{11, 0, 551}, + dictWord{142, 0, 159}, + dictWord{8, 10, 164}, + dictWord{146, 10, 62}, + dictWord{139, 11, 176}, + dictWord{132, 0, 168}, + dictWord{136, 0, 1010}, + dictWord{134, 0, 1994}, + dictWord{ + 135, + 0, + 91, + }, + dictWord{138, 0, 532}, + dictWord{135, 10, 1243}, + dictWord{135, 0, 1884}, + dictWord{132, 10, 907}, + dictWord{5, 10, 100}, + dictWord{10, 10, 329}, + dictWord{12, 10, 416}, + dictWord{149, 10, 29}, + dictWord{134, 11, 447}, + dictWord{132, 10, 176}, + dictWord{5, 10, 636}, + dictWord{5, 10, 998}, + dictWord{7, 10, 9}, + dictWord{7, 10, 1508}, + dictWord{8, 10, 26}, + dictWord{9, 10, 317}, + dictWord{9, 10, 358}, + dictWord{10, 10, 210}, + dictWord{10, 10, 292}, + dictWord{10, 10, 533}, + dictWord{11, 10, 555}, + dictWord{12, 10, 526}, + dictWord{12, 10, 607}, + dictWord{13, 10, 263}, + dictWord{13, 10, 459}, + dictWord{142, 10, 271}, + dictWord{ + 4, + 11, + 609, + }, + dictWord{135, 11, 756}, + dictWord{6, 0, 15}, + dictWord{7, 0, 70}, + dictWord{10, 0, 240}, + dictWord{147, 0, 93}, + dictWord{4, 11, 930}, + dictWord{133, 11, 947}, + dictWord{134, 0, 1227}, + dictWord{134, 0, 1534}, + dictWord{133, 11, 939}, + dictWord{133, 11, 962}, + dictWord{5, 11, 651}, + dictWord{8, 11, 170}, + dictWord{ + 9, + 11, + 61, + }, + dictWord{9, 11, 63}, + dictWord{10, 11, 23}, + dictWord{10, 11, 37}, + dictWord{10, 11, 834}, + dictWord{11, 11, 4}, + dictWord{11, 11, 187}, + dictWord{ + 11, + 11, + 281, + }, + dictWord{11, 11, 503}, + dictWord{11, 11, 677}, + dictWord{12, 11, 96}, + dictWord{12, 11, 130}, + dictWord{12, 11, 244}, + dictWord{14, 11, 5}, + dictWord{ + 14, + 11, + 40, + }, + dictWord{14, 11, 162}, + dictWord{14, 11, 202}, + dictWord{146, 11, 133}, + dictWord{4, 11, 406}, + dictWord{5, 11, 579}, + dictWord{12, 11, 492}, + dictWord{ + 150, + 11, + 15, + }, + dictWord{139, 0, 392}, + dictWord{6, 10, 610}, + dictWord{10, 10, 127}, + dictWord{141, 10, 27}, + dictWord{7, 0, 655}, + dictWord{7, 0, 1844}, + dictWord{ + 136, + 10, + 119, + }, + dictWord{4, 0, 145}, + dictWord{6, 0, 176}, + dictWord{7, 0, 395}, + dictWord{137, 0, 562}, + dictWord{132, 0, 501}, + dictWord{140, 11, 145}, + dictWord{ + 136, + 0, + 1019, + }, + dictWord{134, 0, 509}, + dictWord{139, 0, 267}, + dictWord{6, 11, 17}, + dictWord{7, 11, 16}, + dictWord{7, 11, 1001}, + dictWord{7, 11, 1982}, + dictWord{ + 9, + 11, + 886, + }, + dictWord{10, 11, 489}, + dictWord{10, 11, 800}, + dictWord{11, 11, 782}, + dictWord{12, 11, 320}, + dictWord{13, 11, 467}, + dictWord{14, 11, 145}, + dictWord{14, 11, 387}, + dictWord{143, 11, 119}, + dictWord{145, 11, 17}, + dictWord{6, 0, 1099}, + dictWord{133, 11, 458}, + dictWord{7, 11, 1983}, + dictWord{8, 11, 0}, + dictWord{8, 11, 171}, + dictWord{9, 11, 120}, + dictWord{9, 11, 732}, + dictWord{10, 11, 473}, + dictWord{11, 11, 656}, + dictWord{11, 11, 998}, + dictWord{18, 11, 0}, + dictWord{18, 11, 2}, + dictWord{147, 11, 21}, + dictWord{12, 11, 427}, + dictWord{146, 11, 38}, + dictWord{10, 0, 948}, + dictWord{138, 0, 968}, + dictWord{7, 10, 126}, + dictWord{136, 10, 84}, + dictWord{136, 10, 790}, + dictWord{4, 0, 114}, + dictWord{9, 0, 492}, + dictWord{13, 0, 462}, + dictWord{142, 0, 215}, + dictWord{6, 10, 64}, + dictWord{12, 10, 377}, + dictWord{141, 10, 309}, + dictWord{4, 0, 77}, + dictWord{5, 0, 361}, + dictWord{6, 0, 139}, + dictWord{6, 0, 401}, + dictWord{6, 0, 404}, + dictWord{ + 7, + 0, + 413, + }, + dictWord{7, 0, 715}, + dictWord{7, 0, 1716}, + dictWord{11, 0, 279}, + dictWord{12, 0, 179}, + dictWord{12, 0, 258}, + dictWord{13, 0, 244}, + dictWord{142, 0, 358}, + dictWord{134, 0, 1717}, + dictWord{7, 0, 772}, + dictWord{7, 0, 1061}, + dictWord{7, 0, 1647}, + dictWord{8, 0, 82}, + dictWord{11, 0, 250}, + dictWord{11, 0, 607}, + dictWord{12, 0, 311}, + dictWord{12, 0, 420}, + dictWord{13, 0, 184}, + dictWord{13, 0, 367}, + dictWord{7, 10, 1104}, + dictWord{11, 10, 269}, + dictWord{11, 10, 539}, + dictWord{11, 10, 627}, + dictWord{11, 10, 706}, + dictWord{11, 10, 975}, + dictWord{12, 10, 248}, + dictWord{12, 10, 434}, + dictWord{12, 10, 600}, + dictWord{ + 12, + 10, + 622, + }, + dictWord{13, 10, 297}, + dictWord{13, 10, 485}, + dictWord{14, 10, 69}, + dictWord{14, 10, 409}, + dictWord{143, 10, 108}, + dictWord{135, 0, 724}, + dictWord{ + 4, + 11, + 512, + }, + dictWord{4, 11, 519}, + dictWord{133, 11, 342}, + dictWord{134, 0, 1133}, + dictWord{145, 11, 29}, + dictWord{11, 10, 977}, + dictWord{141, 10, 507}, + dictWord{6, 0, 841}, + dictWord{6, 0, 1042}, + dictWord{6, 0, 1194}, + dictWord{10, 0, 993}, + dictWord{140, 0, 1021}, + dictWord{6, 11, 31}, + dictWord{7, 11, 491}, + dictWord{7, 11, 530}, + dictWord{8, 11, 592}, + dictWord{9, 10, 34}, + dictWord{11, 11, 53}, + dictWord{11, 10, 484}, + dictWord{11, 11, 779}, + dictWord{12, 11, 167}, + dictWord{12, 11, 411}, + dictWord{14, 11, 14}, + dictWord{14, 11, 136}, + dictWord{15, 11, 72}, + dictWord{16, 11, 17}, + dictWord{144, 11, 72}, + dictWord{4, 0, 1021}, + dictWord{6, 0, 2037}, + dictWord{133, 11, 907}, + dictWord{7, 0, 373}, + dictWord{8, 0, 335}, + dictWord{8, 0, 596}, + dictWord{9, 0, 488}, + dictWord{6, 10, 1700}, + dictWord{ + 7, + 10, + 293, + }, + dictWord{7, 10, 382}, + dictWord{7, 10, 1026}, + dictWord{7, 10, 1087}, + dictWord{7, 10, 2027}, + dictWord{8, 10, 252}, + dictWord{8, 10, 727}, + dictWord{ + 8, + 10, + 729, + }, + dictWord{9, 10, 30}, + dictWord{9, 10, 199}, + dictWord{9, 10, 231}, + dictWord{9, 10, 251}, + dictWord{9, 10, 334}, + dictWord{9, 10, 361}, + dictWord{9, 10, 712}, + dictWord{10, 10, 55}, + dictWord{10, 10, 60}, + dictWord{10, 10, 232}, + dictWord{10, 10, 332}, + dictWord{10, 10, 384}, + dictWord{10, 10, 396}, + dictWord{ + 10, + 10, + 504, + }, + dictWord{10, 10, 542}, + dictWord{10, 10, 652}, + dictWord{11, 10, 20}, + dictWord{11, 10, 48}, + dictWord{11, 10, 207}, + dictWord{11, 10, 291}, + dictWord{ + 11, + 10, + 298, + }, + dictWord{11, 10, 342}, + dictWord{11, 10, 365}, + dictWord{11, 10, 394}, + dictWord{11, 10, 620}, + dictWord{11, 10, 705}, + dictWord{11, 10, 1017}, + dictWord{12, 10, 123}, + dictWord{12, 10, 340}, + dictWord{12, 10, 406}, + dictWord{12, 10, 643}, + dictWord{13, 10, 61}, + dictWord{13, 10, 269}, + dictWord{ + 13, + 10, + 311, + }, + dictWord{13, 10, 319}, + dictWord{13, 10, 486}, + dictWord{14, 10, 234}, + dictWord{15, 10, 62}, + dictWord{15, 10, 85}, + dictWord{16, 10, 71}, + dictWord{ + 18, + 10, + 119, + }, + dictWord{148, 10, 105}, + dictWord{150, 0, 37}, + dictWord{4, 11, 208}, + dictWord{5, 11, 106}, + dictWord{6, 11, 531}, + dictWord{8, 11, 408}, + dictWord{ + 9, + 11, + 188, + }, + dictWord{138, 11, 572}, + dictWord{132, 0, 564}, + dictWord{6, 0, 513}, + dictWord{135, 0, 1052}, + dictWord{132, 0, 825}, + dictWord{9, 0, 899}, + dictWord{ + 140, + 11, + 441, + }, + dictWord{134, 0, 778}, + dictWord{133, 11, 379}, + dictWord{7, 0, 1417}, + dictWord{12, 0, 382}, + dictWord{17, 0, 48}, + dictWord{152, 0, 12}, + dictWord{ + 132, + 11, + 241, + }, + dictWord{7, 0, 1116}, + dictWord{6, 10, 379}, + dictWord{7, 10, 270}, + dictWord{8, 10, 176}, + dictWord{8, 10, 183}, + dictWord{9, 10, 432}, + dictWord{ + 9, + 10, + 661, + }, + dictWord{12, 10, 247}, + dictWord{12, 10, 617}, + dictWord{146, 10, 125}, + dictWord{5, 10, 792}, + dictWord{133, 10, 900}, + dictWord{6, 0, 545}, + dictWord{ + 7, + 0, + 565, + }, + dictWord{7, 0, 1669}, + dictWord{10, 0, 114}, + dictWord{11, 0, 642}, + dictWord{140, 0, 618}, + dictWord{133, 0, 5}, + dictWord{138, 11, 7}, + dictWord{ + 132, + 11, + 259, + }, + dictWord{135, 0, 192}, + dictWord{134, 0, 701}, + dictWord{136, 0, 763}, + dictWord{135, 10, 1979}, + dictWord{4, 10, 901}, + dictWord{133, 10, 776}, + dictWord{10, 0, 755}, + dictWord{147, 0, 29}, + dictWord{133, 0, 759}, + dictWord{4, 11, 173}, + dictWord{5, 11, 312}, + dictWord{5, 11, 512}, + dictWord{135, 11, 1285}, + dictWord{7, 11, 1603}, + dictWord{7, 11, 1691}, + dictWord{9, 11, 464}, + dictWord{11, 11, 195}, + dictWord{12, 11, 279}, + dictWord{12, 11, 448}, + dictWord{ + 14, + 11, + 11, + }, + dictWord{147, 11, 102}, + dictWord{7, 0, 370}, + dictWord{7, 0, 1007}, + dictWord{7, 0, 1177}, + dictWord{135, 0, 1565}, + dictWord{135, 0, 1237}, + dictWord{ + 4, + 0, + 87, + }, + dictWord{5, 0, 250}, + dictWord{141, 0, 298}, + dictWord{4, 11, 452}, + dictWord{5, 11, 583}, + dictWord{5, 11, 817}, + dictWord{6, 11, 433}, + dictWord{7, 11, 593}, + dictWord{7, 11, 720}, + dictWord{7, 11, 1378}, + dictWord{8, 11, 161}, + dictWord{9, 11, 284}, + dictWord{10, 11, 313}, + dictWord{139, 11, 886}, + dictWord{4, 11, 547}, + dictWord{135, 11, 1409}, + dictWord{136, 11, 722}, + dictWord{4, 10, 37}, + dictWord{5, 10, 334}, + dictWord{135, 10, 1253}, + dictWord{132, 10, 508}, + dictWord{ + 12, + 0, + 107, + }, + dictWord{146, 0, 31}, + dictWord{8, 11, 420}, + dictWord{139, 11, 193}, + dictWord{135, 0, 814}, + dictWord{135, 11, 409}, + dictWord{140, 0, 991}, + dictWord{4, 0, 57}, + dictWord{7, 0, 1195}, + dictWord{7, 0, 1438}, + dictWord{7, 0, 1548}, + dictWord{7, 0, 1835}, + dictWord{7, 0, 1904}, + dictWord{9, 0, 757}, + dictWord{ + 10, + 0, + 604, + }, + dictWord{139, 0, 519}, + dictWord{132, 0, 540}, + dictWord{138, 11, 308}, + dictWord{132, 10, 533}, + dictWord{136, 0, 608}, + dictWord{144, 11, 65}, + dictWord{4, 0, 1014}, + dictWord{134, 0, 2029}, + dictWord{4, 0, 209}, + dictWord{7, 0, 902}, + dictWord{5, 11, 1002}, + dictWord{136, 11, 745}, + dictWord{134, 0, 2030}, + dictWord{6, 0, 303}, + dictWord{7, 0, 335}, + dictWord{7, 0, 1437}, + dictWord{7, 0, 1668}, + dictWord{8, 0, 553}, + dictWord{8, 0, 652}, + dictWord{8, 0, 656}, + dictWord{ + 9, + 0, + 558, + }, + dictWord{11, 0, 743}, + dictWord{149, 0, 18}, + dictWord{5, 11, 575}, + dictWord{6, 11, 354}, + dictWord{135, 11, 701}, + dictWord{4, 11, 239}, + dictWord{ + 6, + 11, + 477, + }, + dictWord{7, 11, 1607}, + dictWord{11, 11, 68}, + dictWord{139, 11, 617}, + dictWord{132, 0, 559}, + dictWord{8, 0, 527}, + dictWord{18, 0, 60}, + dictWord{ + 147, + 0, + 24, + }, + dictWord{133, 10, 920}, + dictWord{138, 0, 511}, + dictWord{133, 0, 1017}, + dictWord{133, 0, 675}, + dictWord{138, 10, 391}, + dictWord{11, 0, 156}, + dictWord{135, 10, 1952}, + dictWord{138, 11, 369}, + dictWord{132, 11, 367}, + dictWord{133, 0, 709}, + dictWord{6, 0, 698}, + dictWord{134, 0, 887}, + dictWord{ + 142, + 10, + 126, + }, + dictWord{134, 0, 1745}, + dictWord{132, 10, 483}, + dictWord{13, 11, 299}, + dictWord{142, 11, 75}, + dictWord{133, 0, 714}, + dictWord{7, 0, 8}, + dictWord{ + 136, + 0, + 206, + }, + dictWord{138, 10, 480}, + dictWord{4, 11, 694}, + dictWord{9, 10, 495}, + dictWord{146, 10, 104}, + dictWord{7, 11, 1248}, + dictWord{11, 11, 621}, + dictWord{139, 11, 702}, + dictWord{140, 11, 687}, + dictWord{132, 0, 776}, + dictWord{139, 10, 1009}, + dictWord{135, 0, 1272}, + dictWord{134, 0, 1059}, + dictWord{ + 8, + 10, + 653, + }, + dictWord{13, 10, 93}, + dictWord{147, 10, 14}, + dictWord{135, 11, 213}, + dictWord{136, 0, 406}, + dictWord{133, 10, 172}, + dictWord{132, 0, 947}, + dictWord{8, 0, 175}, + dictWord{10, 0, 168}, + dictWord{138, 0, 573}, + dictWord{132, 0, 870}, + dictWord{6, 0, 1567}, + dictWord{151, 11, 28}, + dictWord{ + 134, + 11, + 472, + }, + dictWord{5, 10, 260}, + dictWord{136, 11, 132}, + dictWord{4, 11, 751}, + dictWord{11, 11, 390}, + dictWord{140, 11, 32}, + dictWord{4, 11, 409}, + dictWord{ + 133, + 11, + 78, + }, + dictWord{12, 0, 554}, + dictWord{6, 11, 473}, + dictWord{145, 11, 105}, + dictWord{133, 0, 784}, + dictWord{8, 0, 908}, + dictWord{136, 11, 306}, + dictWord{139, 0, 882}, + dictWord{6, 0, 358}, + dictWord{7, 0, 1393}, + dictWord{8, 0, 396}, + dictWord{10, 0, 263}, + dictWord{14, 0, 154}, + dictWord{16, 0, 48}, + dictWord{ + 17, + 0, + 8, + }, + dictWord{7, 11, 1759}, + dictWord{8, 11, 396}, + dictWord{10, 11, 263}, + dictWord{14, 11, 154}, + dictWord{16, 11, 48}, + dictWord{145, 11, 8}, + dictWord{ + 13, + 11, + 163, + }, + dictWord{13, 11, 180}, + dictWord{18, 11, 78}, + dictWord{148, 11, 35}, + dictWord{14, 0, 32}, + dictWord{18, 0, 85}, + dictWord{20, 0, 2}, + dictWord{152, 0, 16}, + dictWord{7, 0, 228}, + dictWord{10, 0, 770}, + dictWord{8, 10, 167}, + dictWord{8, 10, 375}, + dictWord{9, 10, 82}, + dictWord{9, 10, 561}, + dictWord{138, 10, 620}, + dictWord{132, 0, 845}, + dictWord{9, 0, 14}, + dictWord{9, 0, 441}, + dictWord{10, 0, 306}, + dictWord{139, 0, 9}, + dictWord{11, 0, 966}, + dictWord{12, 0, 287}, + dictWord{ + 13, + 0, + 342, + }, + dictWord{13, 0, 402}, + dictWord{15, 0, 110}, + dictWord{15, 0, 163}, + dictWord{8, 10, 194}, + dictWord{136, 10, 756}, + dictWord{134, 0, 1578}, + dictWord{ + 4, + 0, + 967, + }, + dictWord{6, 0, 1820}, + dictWord{6, 0, 1847}, + dictWord{140, 0, 716}, + dictWord{136, 0, 594}, + dictWord{7, 0, 1428}, + dictWord{7, 0, 1640}, + dictWord{ + 7, + 0, + 1867, + }, + dictWord{9, 0, 169}, + dictWord{9, 0, 182}, + dictWord{9, 0, 367}, + dictWord{9, 0, 478}, + dictWord{9, 0, 506}, + dictWord{9, 0, 551}, + dictWord{9, 0, 557}, + dictWord{ + 9, + 0, + 648, + }, + dictWord{9, 0, 697}, + dictWord{9, 0, 705}, + dictWord{9, 0, 725}, + dictWord{9, 0, 787}, + dictWord{9, 0, 794}, + dictWord{10, 0, 198}, + dictWord{10, 0, 214}, + dictWord{10, 0, 267}, + dictWord{10, 0, 275}, + dictWord{10, 0, 456}, + dictWord{10, 0, 551}, + dictWord{10, 0, 561}, + dictWord{10, 0, 613}, + dictWord{10, 0, 627}, + dictWord{ + 10, + 0, + 668, + }, + dictWord{10, 0, 675}, + dictWord{10, 0, 691}, + dictWord{10, 0, 695}, + dictWord{10, 0, 707}, + dictWord{10, 0, 715}, + dictWord{11, 0, 183}, + dictWord{ + 11, + 0, + 201, + }, + dictWord{11, 0, 244}, + dictWord{11, 0, 262}, + dictWord{11, 0, 352}, + dictWord{11, 0, 439}, + dictWord{11, 0, 493}, + dictWord{11, 0, 572}, + dictWord{11, 0, 591}, + dictWord{11, 0, 608}, + dictWord{11, 0, 611}, + dictWord{11, 0, 646}, + dictWord{11, 0, 674}, + dictWord{11, 0, 711}, + dictWord{11, 0, 751}, + dictWord{11, 0, 761}, + dictWord{11, 0, 776}, + dictWord{11, 0, 785}, + dictWord{11, 0, 850}, + dictWord{11, 0, 853}, + dictWord{11, 0, 862}, + dictWord{11, 0, 865}, + dictWord{11, 0, 868}, + dictWord{ + 11, + 0, + 875, + }, + dictWord{11, 0, 898}, + dictWord{11, 0, 902}, + dictWord{11, 0, 903}, + dictWord{11, 0, 910}, + dictWord{11, 0, 932}, + dictWord{11, 0, 942}, + dictWord{ + 11, + 0, + 957, + }, + dictWord{11, 0, 967}, + dictWord{11, 0, 972}, + dictWord{12, 0, 148}, + dictWord{12, 0, 195}, + dictWord{12, 0, 220}, + dictWord{12, 0, 237}, + dictWord{12, 0, 318}, + dictWord{12, 0, 339}, + dictWord{12, 0, 393}, + dictWord{12, 0, 445}, + dictWord{12, 0, 450}, + dictWord{12, 0, 474}, + dictWord{12, 0, 505}, + dictWord{12, 0, 509}, + dictWord{12, 0, 533}, + dictWord{12, 0, 591}, + dictWord{12, 0, 594}, + dictWord{12, 0, 597}, + dictWord{12, 0, 621}, + dictWord{12, 0, 633}, + dictWord{12, 0, 642}, + dictWord{ + 13, + 0, + 59, + }, + dictWord{13, 0, 60}, + dictWord{13, 0, 145}, + dictWord{13, 0, 239}, + dictWord{13, 0, 250}, + dictWord{13, 0, 329}, + dictWord{13, 0, 344}, + dictWord{13, 0, 365}, + dictWord{13, 0, 372}, + dictWord{13, 0, 387}, + dictWord{13, 0, 403}, + dictWord{13, 0, 414}, + dictWord{13, 0, 456}, + dictWord{13, 0, 470}, + dictWord{13, 0, 478}, + dictWord{13, 0, 483}, + dictWord{13, 0, 489}, + dictWord{14, 0, 55}, + dictWord{14, 0, 57}, + dictWord{14, 0, 81}, + dictWord{14, 0, 90}, + dictWord{14, 0, 148}, + dictWord{ + 14, + 0, + 239, + }, + dictWord{14, 0, 266}, + dictWord{14, 0, 321}, + dictWord{14, 0, 326}, + dictWord{14, 0, 327}, + dictWord{14, 0, 330}, + dictWord{14, 0, 347}, + dictWord{14, 0, 355}, + dictWord{14, 0, 401}, + dictWord{14, 0, 404}, + dictWord{14, 0, 411}, + dictWord{14, 0, 414}, + dictWord{14, 0, 416}, + dictWord{14, 0, 420}, + dictWord{15, 0, 61}, + dictWord{15, 0, 74}, + dictWord{15, 0, 87}, + dictWord{15, 0, 88}, + dictWord{15, 0, 94}, + dictWord{15, 0, 96}, + dictWord{15, 0, 116}, + dictWord{15, 0, 149}, + dictWord{15, 0, 154}, + dictWord{16, 0, 50}, + dictWord{16, 0, 63}, + dictWord{16, 0, 73}, + dictWord{17, 0, 2}, + dictWord{17, 0, 66}, + dictWord{17, 0, 92}, + dictWord{17, 0, 103}, + dictWord{ + 17, + 0, + 112, + }, + dictWord{17, 0, 120}, + dictWord{18, 0, 50}, + dictWord{18, 0, 54}, + dictWord{18, 0, 82}, + dictWord{18, 0, 86}, + dictWord{18, 0, 90}, + dictWord{18, 0, 111}, + dictWord{ + 18, + 0, + 115, + }, + dictWord{18, 0, 156}, + dictWord{19, 0, 40}, + dictWord{19, 0, 79}, + dictWord{20, 0, 78}, + dictWord{21, 0, 22}, + dictWord{135, 11, 883}, + dictWord{5, 0, 161}, + dictWord{135, 0, 839}, + dictWord{4, 0, 782}, + dictWord{13, 11, 293}, + dictWord{142, 11, 56}, + dictWord{133, 11, 617}, + dictWord{139, 11, 50}, + dictWord{ + 135, + 10, + 22, + }, + dictWord{145, 0, 64}, + dictWord{5, 10, 639}, + dictWord{7, 10, 1249}, + dictWord{139, 10, 896}, + dictWord{138, 0, 998}, + dictWord{135, 11, 2042}, + dictWord{ + 4, + 11, + 546, + }, + dictWord{142, 11, 233}, + dictWord{6, 0, 1043}, + dictWord{134, 0, 1574}, + dictWord{134, 0, 1496}, + dictWord{4, 10, 102}, + dictWord{7, 10, 815}, + dictWord{7, 10, 1699}, + dictWord{139, 10, 964}, + dictWord{12, 0, 781}, + dictWord{142, 0, 461}, + dictWord{4, 11, 313}, + dictWord{133, 11, 577}, + dictWord{ + 6, + 0, + 639, + }, + dictWord{6, 0, 1114}, + dictWord{137, 0, 817}, + dictWord{8, 11, 184}, + dictWord{141, 11, 433}, + dictWord{7, 0, 1814}, + dictWord{135, 11, 935}, + dictWord{ + 10, + 0, + 997, + }, + dictWord{140, 0, 958}, + dictWord{4, 0, 812}, + dictWord{137, 11, 625}, + dictWord{132, 10, 899}, + dictWord{136, 10, 795}, + dictWord{5, 11, 886}, + dictWord{6, 11, 46}, + dictWord{6, 11, 1790}, + dictWord{7, 11, 14}, + dictWord{7, 11, 732}, + dictWord{7, 11, 1654}, + dictWord{8, 11, 95}, + dictWord{8, 11, 327}, + dictWord{ + 8, + 11, + 616, + }, + dictWord{10, 11, 598}, + dictWord{10, 11, 769}, + dictWord{11, 11, 134}, + dictWord{11, 11, 747}, + dictWord{12, 11, 378}, + dictWord{142, 11, 97}, + dictWord{136, 0, 139}, + dictWord{6, 10, 52}, + dictWord{9, 10, 104}, + dictWord{9, 10, 559}, + dictWord{12, 10, 308}, + dictWord{147, 10, 87}, + dictWord{133, 11, 1021}, + dictWord{132, 10, 604}, + dictWord{132, 10, 301}, + dictWord{136, 10, 779}, + dictWord{7, 0, 643}, + dictWord{136, 0, 236}, + dictWord{132, 11, 153}, + dictWord{ + 134, + 0, + 1172, + }, + dictWord{147, 10, 32}, + dictWord{133, 11, 798}, + dictWord{6, 0, 1338}, + dictWord{132, 11, 587}, + dictWord{6, 11, 598}, + dictWord{7, 11, 42}, + dictWord{ + 8, + 11, + 695, + }, + dictWord{10, 11, 212}, + dictWord{11, 11, 158}, + dictWord{14, 11, 196}, + dictWord{145, 11, 85}, + dictWord{135, 10, 508}, + dictWord{5, 11, 957}, + dictWord{5, 11, 1008}, + dictWord{135, 11, 249}, + dictWord{4, 11, 129}, + dictWord{135, 11, 465}, + dictWord{5, 0, 54}, + dictWord{7, 11, 470}, + dictWord{7, 11, 1057}, + dictWord{7, 11, 1201}, + dictWord{9, 11, 755}, + dictWord{11, 11, 906}, + dictWord{140, 11, 527}, + dictWord{7, 11, 908}, + dictWord{146, 11, 7}, + dictWord{ + 5, + 11, + 148, + }, + dictWord{136, 11, 450}, + dictWord{144, 11, 1}, + dictWord{4, 0, 256}, + dictWord{135, 0, 1488}, + dictWord{9, 0, 351}, + dictWord{6, 10, 310}, + dictWord{ + 7, + 10, + 1849, + }, + dictWord{8, 10, 72}, + dictWord{8, 10, 272}, + dictWord{8, 10, 431}, + dictWord{9, 10, 12}, + dictWord{10, 10, 563}, + dictWord{10, 10, 630}, + dictWord{ + 10, + 10, + 796, + }, + dictWord{10, 10, 810}, + dictWord{11, 10, 367}, + dictWord{11, 10, 599}, + dictWord{11, 10, 686}, + dictWord{140, 10, 672}, + dictWord{6, 0, 1885}, + dictWord{ + 6, + 0, + 1898, + }, + dictWord{6, 0, 1899}, + dictWord{140, 0, 955}, + dictWord{4, 0, 714}, + dictWord{133, 0, 469}, + dictWord{6, 0, 1270}, + dictWord{134, 0, 1456}, + dictWord{132, 0, 744}, + dictWord{6, 0, 313}, + dictWord{7, 10, 537}, + dictWord{8, 10, 64}, + dictWord{9, 10, 127}, + dictWord{10, 10, 496}, + dictWord{12, 10, 510}, + dictWord{141, 10, 384}, + dictWord{4, 11, 217}, + dictWord{4, 10, 244}, + dictWord{5, 11, 710}, + dictWord{7, 10, 233}, + dictWord{7, 11, 1926}, + dictWord{9, 11, 428}, + dictWord{9, 11, 708}, + dictWord{10, 11, 254}, + dictWord{10, 11, 296}, + dictWord{10, 11, 720}, + dictWord{11, 11, 109}, + dictWord{11, 11, 255}, + dictWord{12, 11, 165}, + dictWord{12, 11, 315}, + dictWord{13, 11, 107}, + dictWord{13, 11, 203}, + dictWord{14, 11, 54}, + dictWord{14, 11, 99}, + dictWord{14, 11, 114}, + dictWord{ + 14, + 11, + 388, + }, + dictWord{16, 11, 85}, + dictWord{17, 11, 9}, + dictWord{17, 11, 33}, + dictWord{20, 11, 25}, + dictWord{20, 11, 28}, + dictWord{20, 11, 29}, + dictWord{21, 11, 9}, + dictWord{21, 11, 10}, + dictWord{21, 11, 34}, + dictWord{150, 11, 17}, + dictWord{138, 0, 402}, + dictWord{7, 0, 969}, + dictWord{146, 0, 55}, + dictWord{8, 0, 50}, + dictWord{ + 137, + 0, + 624, + }, + dictWord{134, 0, 1355}, + dictWord{132, 0, 572}, + dictWord{134, 10, 1650}, + dictWord{10, 10, 702}, + dictWord{139, 10, 245}, + dictWord{ + 10, + 0, + 847, + }, + dictWord{142, 0, 445}, + dictWord{6, 0, 43}, + dictWord{7, 0, 38}, + dictWord{8, 0, 248}, + dictWord{138, 0, 513}, + dictWord{133, 0, 369}, + dictWord{137, 10, 338}, + dictWord{133, 0, 766}, + dictWord{133, 0, 363}, + dictWord{133, 10, 896}, + dictWord{8, 11, 392}, + dictWord{11, 11, 54}, + dictWord{13, 11, 173}, + dictWord{ + 13, + 11, + 294, + }, + dictWord{148, 11, 7}, + dictWord{134, 0, 678}, + dictWord{7, 11, 1230}, + dictWord{136, 11, 531}, + dictWord{6, 0, 258}, + dictWord{140, 0, 409}, + dictWord{ + 5, + 0, + 249, + }, + dictWord{148, 0, 82}, + dictWord{7, 10, 1117}, + dictWord{136, 10, 539}, + dictWord{5, 0, 393}, + dictWord{6, 0, 378}, + dictWord{7, 0, 1981}, + dictWord{9, 0, 32}, + dictWord{9, 0, 591}, + dictWord{10, 0, 685}, + dictWord{10, 0, 741}, + dictWord{142, 0, 382}, + dictWord{133, 0, 788}, + dictWord{134, 0, 1281}, + dictWord{ + 134, + 0, + 1295, + }, + dictWord{7, 0, 1968}, + dictWord{141, 0, 509}, + dictWord{4, 0, 61}, + dictWord{5, 0, 58}, + dictWord{5, 0, 171}, + dictWord{5, 0, 683}, + dictWord{6, 0, 291}, + dictWord{ + 6, + 0, + 566, + }, + dictWord{7, 0, 1650}, + dictWord{11, 0, 523}, + dictWord{12, 0, 273}, + dictWord{12, 0, 303}, + dictWord{15, 0, 39}, + dictWord{143, 0, 111}, + dictWord{ + 6, + 0, + 706, + }, + dictWord{134, 0, 1283}, + dictWord{134, 0, 589}, + dictWord{135, 11, 1433}, + dictWord{133, 11, 435}, + dictWord{7, 0, 1059}, + dictWord{13, 0, 54}, + dictWord{ + 5, + 10, + 4, + }, + dictWord{5, 10, 810}, + dictWord{6, 10, 13}, + dictWord{6, 10, 538}, + dictWord{6, 10, 1690}, + dictWord{6, 10, 1726}, + dictWord{7, 10, 1819}, + dictWord{ + 8, + 10, + 148, + }, + dictWord{8, 10, 696}, + dictWord{8, 10, 791}, + dictWord{12, 10, 125}, + dictWord{143, 10, 9}, + dictWord{135, 10, 1268}, + dictWord{5, 11, 85}, + dictWord{ + 6, + 11, + 419, + }, + dictWord{7, 11, 134}, + dictWord{7, 11, 305}, + dictWord{7, 11, 361}, + dictWord{7, 11, 1337}, + dictWord{8, 11, 71}, + dictWord{140, 11, 519}, + dictWord{ + 137, + 0, + 824, + }, + dictWord{140, 11, 688}, + dictWord{5, 11, 691}, + dictWord{7, 11, 345}, + dictWord{7, 10, 1385}, + dictWord{9, 11, 94}, + dictWord{11, 10, 582}, + dictWord{ + 11, + 10, + 650, + }, + dictWord{11, 10, 901}, + dictWord{11, 10, 949}, + dictWord{12, 11, 169}, + dictWord{12, 10, 232}, + dictWord{12, 10, 236}, + dictWord{13, 10, 413}, + dictWord{13, 10, 501}, + dictWord{146, 10, 116}, + dictWord{4, 0, 917}, + dictWord{133, 0, 1005}, + dictWord{7, 0, 1598}, + dictWord{5, 11, 183}, + dictWord{6, 11, 582}, + dictWord{9, 11, 344}, + dictWord{10, 11, 679}, + dictWord{140, 11, 435}, + dictWord{4, 10, 925}, + dictWord{5, 10, 803}, + dictWord{8, 10, 698}, + dictWord{ + 138, + 10, + 828, + }, + dictWord{132, 0, 919}, + dictWord{135, 11, 511}, + dictWord{139, 10, 992}, + dictWord{4, 0, 255}, + dictWord{5, 0, 302}, + dictWord{6, 0, 132}, + dictWord{ + 7, + 0, + 128, + }, + dictWord{7, 0, 283}, + dictWord{7, 0, 1299}, + dictWord{10, 0, 52}, + dictWord{10, 0, 514}, + dictWord{11, 0, 925}, + dictWord{13, 0, 92}, + dictWord{142, 0, 309}, + dictWord{134, 0, 1369}, + dictWord{135, 10, 1847}, + dictWord{134, 0, 328}, + dictWord{7, 11, 1993}, + dictWord{136, 11, 684}, + dictWord{133, 10, 383}, + dictWord{137, 0, 173}, + dictWord{134, 11, 583}, + dictWord{134, 0, 1411}, + dictWord{19, 0, 65}, + dictWord{5, 11, 704}, + dictWord{8, 11, 357}, + dictWord{10, 11, 745}, + dictWord{14, 11, 426}, + dictWord{17, 11, 94}, + dictWord{147, 11, 57}, + dictWord{9, 10, 660}, + dictWord{138, 10, 347}, + dictWord{4, 11, 179}, + dictWord{5, 11, 198}, + dictWord{133, 11, 697}, + dictWord{7, 11, 347}, + dictWord{7, 11, 971}, + dictWord{8, 11, 181}, + dictWord{138, 11, 711}, + dictWord{141, 0, 442}, + dictWord{ + 11, + 0, + 842, + }, + dictWord{11, 0, 924}, + dictWord{13, 0, 317}, + dictWord{13, 0, 370}, + dictWord{13, 0, 469}, + dictWord{13, 0, 471}, + dictWord{14, 0, 397}, + dictWord{18, 0, 69}, + dictWord{18, 0, 145}, + dictWord{7, 10, 572}, + dictWord{9, 10, 592}, + dictWord{11, 10, 680}, + dictWord{12, 10, 356}, + dictWord{140, 10, 550}, + dictWord{14, 11, 19}, + dictWord{14, 11, 28}, + dictWord{144, 11, 29}, + dictWord{136, 0, 534}, + dictWord{4, 11, 243}, + dictWord{5, 11, 203}, + dictWord{7, 11, 19}, + dictWord{7, 11, 71}, + dictWord{7, 11, 113}, + dictWord{10, 11, 405}, + dictWord{11, 11, 357}, + dictWord{142, 11, 240}, + dictWord{6, 0, 210}, + dictWord{10, 0, 845}, + dictWord{138, 0, 862}, + dictWord{7, 11, 1351}, + dictWord{9, 11, 581}, + dictWord{10, 11, 639}, + dictWord{11, 11, 453}, + dictWord{140, 11, 584}, + dictWord{7, 11, 1450}, + dictWord{ + 139, + 11, + 99, + }, + dictWord{10, 0, 892}, + dictWord{12, 0, 719}, + dictWord{144, 0, 105}, + dictWord{4, 0, 284}, + dictWord{6, 0, 223}, + dictWord{134, 11, 492}, + dictWord{5, 11, 134}, + dictWord{6, 11, 408}, + dictWord{6, 11, 495}, + dictWord{135, 11, 1593}, + dictWord{136, 0, 529}, + dictWord{137, 0, 807}, + dictWord{4, 0, 218}, + dictWord{7, 0, 526}, + dictWord{143, 0, 137}, + dictWord{6, 0, 1444}, + dictWord{142, 11, 4}, + dictWord{132, 11, 665}, + dictWord{4, 0, 270}, + dictWord{5, 0, 192}, + dictWord{6, 0, 332}, + dictWord{7, 0, 1322}, + dictWord{4, 11, 248}, + dictWord{7, 11, 137}, + dictWord{137, 11, 349}, + dictWord{140, 0, 661}, + dictWord{7, 0, 1517}, + dictWord{11, 0, 597}, + dictWord{14, 0, 76}, + dictWord{14, 0, 335}, + dictWord{20, 0, 33}, + dictWord{7, 10, 748}, + dictWord{139, 10, 700}, + dictWord{5, 11, 371}, + dictWord{135, 11, 563}, + dictWord{146, 11, 57}, + dictWord{133, 10, 127}, + dictWord{133, 0, 418}, + dictWord{4, 11, 374}, + dictWord{7, 11, 547}, + dictWord{7, 11, 1700}, + dictWord{7, 11, 1833}, + dictWord{139, 11, 858}, + dictWord{6, 10, 198}, + dictWord{140, 10, 83}, + dictWord{7, 11, 1812}, + dictWord{13, 11, 259}, + dictWord{13, 11, 356}, + dictWord{ + 14, + 11, + 242, + }, + dictWord{147, 11, 114}, + dictWord{7, 0, 379}, + dictWord{8, 0, 481}, + dictWord{9, 0, 377}, + dictWord{5, 10, 276}, + dictWord{6, 10, 55}, + dictWord{ + 135, + 10, + 1369, + }, + dictWord{138, 11, 286}, + dictWord{5, 0, 1003}, + dictWord{6, 0, 149}, + dictWord{6, 10, 1752}, + dictWord{136, 10, 726}, + dictWord{8, 0, 262}, + dictWord{ + 9, + 0, + 627, + }, + dictWord{10, 0, 18}, + dictWord{11, 0, 214}, + dictWord{11, 0, 404}, + dictWord{11, 0, 457}, + dictWord{11, 0, 780}, + dictWord{11, 0, 913}, + dictWord{13, 0, 401}, + dictWord{14, 0, 200}, + dictWord{6, 11, 1647}, + dictWord{7, 11, 1552}, + dictWord{7, 11, 2010}, + dictWord{9, 11, 494}, + dictWord{137, 11, 509}, + dictWord{ + 135, + 0, + 742, + }, + dictWord{136, 0, 304}, + dictWord{132, 0, 142}, + dictWord{133, 10, 764}, + dictWord{6, 10, 309}, + dictWord{7, 10, 331}, + dictWord{138, 10, 550}, + dictWord{135, 10, 1062}, + dictWord{6, 11, 123}, + dictWord{7, 11, 214}, + dictWord{7, 10, 986}, + dictWord{9, 11, 728}, + dictWord{10, 11, 157}, + dictWord{11, 11, 346}, + dictWord{11, 11, 662}, + dictWord{143, 11, 106}, + dictWord{135, 10, 1573}, + dictWord{7, 0, 925}, + dictWord{137, 0, 799}, + dictWord{4, 0, 471}, + dictWord{5, 0, 51}, + dictWord{6, 0, 602}, + dictWord{8, 0, 484}, + dictWord{138, 0, 195}, + dictWord{136, 0, 688}, + dictWord{132, 0, 697}, + dictWord{6, 0, 1169}, + dictWord{6, 0, 1241}, + dictWord{6, 10, 194}, + dictWord{7, 10, 133}, + dictWord{10, 10, 493}, + dictWord{10, 10, 570}, + dictWord{139, 10, 664}, + dictWord{140, 0, 751}, + dictWord{7, 0, 929}, + dictWord{10, 0, 452}, + dictWord{11, 0, 878}, + dictWord{16, 0, 33}, + dictWord{5, 10, 24}, + dictWord{5, 10, 569}, + dictWord{6, 10, 3}, + dictWord{6, 10, 119}, + dictWord{ + 6, + 10, + 143, + }, + dictWord{6, 10, 440}, + dictWord{7, 10, 599}, + dictWord{7, 10, 1686}, + dictWord{7, 10, 1854}, + dictWord{8, 10, 424}, + dictWord{9, 10, 43}, + dictWord{ + 9, + 10, + 584, + }, + dictWord{9, 10, 760}, + dictWord{10, 10, 328}, + dictWord{11, 10, 159}, + dictWord{11, 10, 253}, + dictWord{12, 10, 487}, + dictWord{140, 10, 531}, + dictWord{ + 4, + 11, + 707, + }, + dictWord{13, 11, 106}, + dictWord{18, 11, 49}, + dictWord{147, 11, 41}, + dictWord{5, 0, 221}, + dictWord{5, 11, 588}, + dictWord{134, 11, 393}, + dictWord{134, 0, 1437}, + dictWord{6, 11, 211}, + dictWord{7, 11, 1690}, + dictWord{11, 11, 486}, + dictWord{140, 11, 369}, + dictWord{5, 10, 14}, + dictWord{5, 10, 892}, + dictWord{6, 10, 283}, + dictWord{7, 10, 234}, + dictWord{136, 10, 537}, + dictWord{4, 0, 988}, + dictWord{136, 0, 955}, + dictWord{135, 0, 1251}, + dictWord{4, 10, 126}, + dictWord{8, 10, 635}, + dictWord{147, 10, 34}, + dictWord{4, 10, 316}, + dictWord{135, 10, 1561}, + dictWord{137, 10, 861}, + dictWord{4, 10, 64}, + dictWord{ + 5, + 10, + 352, + }, + dictWord{5, 10, 720}, + dictWord{6, 10, 368}, + dictWord{139, 10, 359}, + dictWord{134, 0, 192}, + dictWord{4, 0, 132}, + dictWord{5, 0, 69}, + dictWord{ + 135, + 0, + 1242, + }, + dictWord{7, 10, 1577}, + dictWord{10, 10, 304}, + dictWord{10, 10, 549}, + dictWord{12, 10, 365}, + dictWord{13, 10, 220}, + dictWord{13, 10, 240}, + dictWord{142, 10, 33}, + dictWord{4, 0, 111}, + dictWord{7, 0, 865}, + dictWord{134, 11, 219}, + dictWord{5, 11, 582}, + dictWord{6, 11, 1646}, + dictWord{7, 11, 99}, + dictWord{ + 7, + 11, + 1962, + }, + dictWord{7, 11, 1986}, + dictWord{8, 11, 515}, + dictWord{8, 11, 773}, + dictWord{9, 11, 23}, + dictWord{9, 11, 491}, + dictWord{12, 11, 620}, + dictWord{ + 14, + 11, + 52, + }, + dictWord{145, 11, 50}, + dictWord{132, 0, 767}, + dictWord{7, 11, 568}, + dictWord{148, 11, 21}, + dictWord{6, 0, 42}, + dictWord{7, 0, 1416}, + dictWord{ + 7, + 0, + 2005, + }, + dictWord{8, 0, 131}, + dictWord{8, 0, 466}, + dictWord{9, 0, 672}, + dictWord{13, 0, 252}, + dictWord{20, 0, 103}, + dictWord{133, 11, 851}, + dictWord{ + 135, + 0, + 1050, + }, + dictWord{6, 10, 175}, + dictWord{137, 10, 289}, + dictWord{5, 10, 432}, + dictWord{133, 10, 913}, + dictWord{6, 0, 44}, + dictWord{136, 0, 368}, + dictWord{ + 135, + 11, + 784, + }, + dictWord{132, 0, 570}, + dictWord{133, 0, 120}, + dictWord{139, 10, 595}, + dictWord{140, 0, 29}, + dictWord{6, 0, 227}, + dictWord{135, 0, 1589}, + dictWord{4, 11, 98}, + dictWord{7, 11, 1365}, + dictWord{9, 11, 422}, + dictWord{9, 11, 670}, + dictWord{10, 11, 775}, + dictWord{11, 11, 210}, + dictWord{13, 11, 26}, + dictWord{13, 11, 457}, + dictWord{141, 11, 476}, + dictWord{140, 10, 80}, + dictWord{5, 10, 931}, + dictWord{134, 10, 1698}, + dictWord{133, 0, 522}, + dictWord{ + 134, + 0, + 1120, + }, + dictWord{135, 0, 1529}, + dictWord{12, 0, 739}, + dictWord{14, 0, 448}, + dictWord{142, 0, 467}, + dictWord{11, 10, 526}, + dictWord{11, 10, 939}, + dictWord{141, 10, 290}, + dictWord{5, 10, 774}, + dictWord{6, 10, 1637}, + dictWord{6, 10, 1686}, + dictWord{134, 10, 1751}, + dictWord{6, 0, 1667}, + dictWord{ + 135, + 0, + 2036, + }, + dictWord{7, 10, 1167}, + dictWord{11, 10, 934}, + dictWord{13, 10, 391}, + dictWord{145, 10, 76}, + dictWord{137, 11, 147}, + dictWord{6, 10, 260}, + dictWord{ + 7, + 10, + 1484, + }, + dictWord{11, 11, 821}, + dictWord{12, 11, 110}, + dictWord{12, 11, 153}, + dictWord{18, 11, 41}, + dictWord{150, 11, 19}, + dictWord{6, 0, 511}, + dictWord{12, 0, 132}, + dictWord{134, 10, 573}, + dictWord{5, 0, 568}, + dictWord{6, 0, 138}, + dictWord{135, 0, 1293}, + dictWord{132, 0, 1020}, + dictWord{8, 0, 258}, + dictWord{9, 0, 208}, + dictWord{137, 0, 359}, + dictWord{4, 0, 565}, + dictWord{8, 0, 23}, + dictWord{136, 0, 827}, + dictWord{134, 0, 344}, + dictWord{4, 0, 922}, + dictWord{ + 5, + 0, + 1023, + }, + dictWord{13, 11, 477}, + dictWord{14, 11, 120}, + dictWord{148, 11, 61}, + dictWord{134, 0, 240}, + dictWord{5, 11, 209}, + dictWord{6, 11, 30}, + dictWord{ + 11, + 11, + 56, + }, + dictWord{139, 11, 305}, + dictWord{6, 0, 171}, + dictWord{7, 0, 1002}, + dictWord{7, 0, 1324}, + dictWord{9, 0, 415}, + dictWord{14, 0, 230}, + dictWord{ + 18, + 0, + 68, + }, + dictWord{4, 10, 292}, + dictWord{4, 10, 736}, + dictWord{5, 10, 871}, + dictWord{6, 10, 1689}, + dictWord{7, 10, 1944}, + dictWord{137, 10, 580}, + dictWord{ + 9, + 11, + 635, + }, + dictWord{139, 11, 559}, + dictWord{4, 11, 150}, + dictWord{5, 11, 303}, + dictWord{134, 11, 327}, + dictWord{6, 10, 63}, + dictWord{135, 10, 920}, + dictWord{ + 133, + 10, + 793, + }, + dictWord{8, 11, 192}, + dictWord{10, 11, 78}, + dictWord{10, 11, 555}, + dictWord{11, 11, 308}, + dictWord{13, 11, 359}, + dictWord{147, 11, 95}, + dictWord{135, 11, 786}, + dictWord{135, 11, 1712}, + dictWord{136, 0, 402}, + dictWord{6, 0, 754}, + dictWord{6, 11, 1638}, + dictWord{7, 11, 79}, + dictWord{7, 11, 496}, + dictWord{9, 11, 138}, + dictWord{10, 11, 336}, + dictWord{11, 11, 12}, + dictWord{12, 11, 412}, + dictWord{12, 11, 440}, + dictWord{142, 11, 305}, + dictWord{4, 0, 716}, + dictWord{141, 0, 31}, + dictWord{133, 0, 982}, + dictWord{8, 0, 691}, + dictWord{8, 0, 731}, + dictWord{5, 10, 67}, + dictWord{6, 10, 62}, + dictWord{6, 10, 374}, + dictWord{ + 135, + 10, + 1391, + }, + dictWord{9, 10, 790}, + dictWord{140, 10, 47}, + dictWord{139, 11, 556}, + dictWord{151, 11, 1}, + dictWord{7, 11, 204}, + dictWord{7, 11, 415}, + dictWord{8, 11, 42}, + dictWord{10, 11, 85}, + dictWord{11, 11, 33}, + dictWord{11, 11, 564}, + dictWord{12, 11, 571}, + dictWord{149, 11, 1}, + dictWord{8, 0, 888}, + dictWord{ + 7, + 11, + 610, + }, + dictWord{135, 11, 1501}, + dictWord{4, 10, 391}, + dictWord{135, 10, 1169}, + dictWord{5, 0, 847}, + dictWord{9, 0, 840}, + dictWord{138, 0, 803}, + dictWord{137, 0, 823}, + dictWord{134, 0, 785}, + dictWord{8, 0, 152}, + dictWord{9, 0, 53}, + dictWord{9, 0, 268}, + dictWord{9, 0, 901}, + dictWord{10, 0, 518}, + dictWord{ + 10, + 0, + 829, + }, + dictWord{11, 0, 188}, + dictWord{13, 0, 74}, + dictWord{14, 0, 46}, + dictWord{15, 0, 17}, + dictWord{15, 0, 33}, + dictWord{17, 0, 40}, + dictWord{18, 0, 36}, + dictWord{ + 19, + 0, + 20, + }, + dictWord{22, 0, 1}, + dictWord{152, 0, 2}, + dictWord{4, 11, 3}, + dictWord{5, 11, 247}, + dictWord{5, 11, 644}, + dictWord{7, 11, 744}, + dictWord{7, 11, 1207}, + dictWord{7, 11, 1225}, + dictWord{7, 11, 1909}, + dictWord{146, 11, 147}, + dictWord{136, 0, 532}, + dictWord{135, 0, 681}, + dictWord{132, 10, 271}, + dictWord{ + 140, + 0, + 314, + }, + dictWord{140, 0, 677}, + dictWord{4, 0, 684}, + dictWord{136, 0, 384}, + dictWord{5, 11, 285}, + dictWord{9, 11, 67}, + dictWord{13, 11, 473}, + dictWord{ + 143, + 11, + 82, + }, + dictWord{4, 10, 253}, + dictWord{5, 10, 544}, + dictWord{7, 10, 300}, + dictWord{137, 10, 340}, + dictWord{7, 0, 110}, + dictWord{7, 0, 447}, + dictWord{8, 0, 290}, + dictWord{8, 0, 591}, + dictWord{9, 0, 382}, + dictWord{9, 0, 649}, + dictWord{11, 0, 71}, + dictWord{11, 0, 155}, + dictWord{11, 0, 313}, + dictWord{12, 0, 5}, + dictWord{13, 0, 325}, + dictWord{142, 0, 287}, + dictWord{134, 0, 1818}, + dictWord{136, 0, 1007}, + dictWord{138, 0, 321}, + dictWord{7, 0, 360}, + dictWord{7, 0, 425}, + dictWord{9, 0, 66}, + dictWord{9, 0, 278}, + dictWord{138, 0, 644}, + dictWord{133, 10, 818}, + dictWord{5, 0, 385}, + dictWord{5, 10, 541}, + dictWord{6, 10, 94}, + dictWord{6, 10, 499}, + dictWord{ + 7, + 10, + 230, + }, + dictWord{139, 10, 321}, + dictWord{4, 10, 920}, + dictWord{5, 10, 25}, + dictWord{5, 10, 790}, + dictWord{6, 10, 457}, + dictWord{7, 10, 853}, + dictWord{ + 136, + 10, + 788, + }, + dictWord{4, 0, 900}, + dictWord{133, 0, 861}, + dictWord{5, 0, 254}, + dictWord{7, 0, 985}, + dictWord{136, 0, 73}, + dictWord{7, 0, 1959}, + dictWord{ + 136, + 0, + 683, + }, + dictWord{134, 10, 1765}, + dictWord{133, 10, 822}, + dictWord{132, 10, 634}, + dictWord{4, 11, 29}, + dictWord{6, 11, 532}, + dictWord{7, 11, 1628}, + dictWord{ + 7, + 11, + 1648, + }, + dictWord{9, 11, 303}, + dictWord{9, 11, 350}, + dictWord{10, 11, 433}, + dictWord{11, 11, 97}, + dictWord{11, 11, 557}, + dictWord{11, 11, 745}, + dictWord{12, 11, 289}, + dictWord{12, 11, 335}, + dictWord{12, 11, 348}, + dictWord{12, 11, 606}, + dictWord{13, 11, 116}, + dictWord{13, 11, 233}, + dictWord{ + 13, + 11, + 466, + }, + dictWord{14, 11, 181}, + dictWord{14, 11, 209}, + dictWord{14, 11, 232}, + dictWord{14, 11, 236}, + dictWord{14, 11, 300}, + dictWord{16, 11, 41}, + dictWord{ + 148, + 11, + 97, + }, + dictWord{19, 0, 86}, + dictWord{6, 10, 36}, + dictWord{7, 10, 658}, + dictWord{136, 10, 454}, + dictWord{135, 11, 1692}, + dictWord{132, 0, 725}, + dictWord{ + 5, + 11, + 501, + }, + dictWord{7, 11, 1704}, + dictWord{9, 11, 553}, + dictWord{11, 11, 520}, + dictWord{12, 11, 557}, + dictWord{141, 11, 249}, + dictWord{134, 0, 196}, + dictWord{133, 0, 831}, + dictWord{136, 0, 723}, + dictWord{7, 0, 1897}, + dictWord{13, 0, 80}, + dictWord{13, 0, 437}, + dictWord{145, 0, 74}, + dictWord{4, 0, 992}, + dictWord{ + 6, + 0, + 627, + }, + dictWord{136, 0, 994}, + dictWord{135, 11, 1294}, + dictWord{132, 10, 104}, + dictWord{5, 0, 848}, + dictWord{6, 0, 66}, + dictWord{136, 0, 764}, + dictWord{ + 4, + 0, + 36, + }, + dictWord{7, 0, 1387}, + dictWord{10, 0, 205}, + dictWord{139, 0, 755}, + dictWord{6, 0, 1046}, + dictWord{134, 0, 1485}, + dictWord{134, 0, 950}, + dictWord{132, 0, 887}, + dictWord{14, 0, 450}, + dictWord{148, 0, 111}, + dictWord{7, 0, 620}, + dictWord{7, 0, 831}, + dictWord{9, 10, 542}, + dictWord{9, 10, 566}, + dictWord{ + 138, + 10, + 728, + }, + dictWord{6, 0, 165}, + dictWord{138, 0, 388}, + dictWord{139, 10, 263}, + dictWord{4, 0, 719}, + dictWord{135, 0, 155}, + dictWord{138, 10, 468}, + dictWord{6, 11, 453}, + dictWord{144, 11, 36}, + dictWord{134, 11, 129}, + dictWord{5, 0, 533}, + dictWord{7, 0, 755}, + dictWord{138, 0, 780}, + dictWord{134, 0, 1465}, + dictWord{4, 0, 353}, + dictWord{6, 0, 146}, + dictWord{6, 0, 1789}, + dictWord{7, 0, 427}, + dictWord{7, 0, 990}, + dictWord{7, 0, 1348}, + dictWord{9, 0, 665}, + dictWord{9, 0, 898}, + dictWord{11, 0, 893}, + dictWord{142, 0, 212}, + dictWord{7, 10, 87}, + dictWord{142, 10, 288}, + dictWord{4, 0, 45}, + dictWord{135, 0, 1257}, + dictWord{12, 0, 7}, + dictWord{7, 10, 988}, + dictWord{7, 10, 1939}, + dictWord{9, 10, 64}, + dictWord{9, 10, 502}, + dictWord{12, 10, 34}, + dictWord{13, 10, 12}, + dictWord{13, 10, 234}, + dictWord{147, 10, 77}, + dictWord{4, 0, 607}, + dictWord{5, 11, 60}, + dictWord{6, 11, 504}, + dictWord{7, 11, 614}, + dictWord{7, 11, 1155}, + dictWord{140, 11, 0}, + dictWord{ + 135, + 10, + 141, + }, + dictWord{8, 11, 198}, + dictWord{11, 11, 29}, + dictWord{140, 11, 534}, + dictWord{140, 0, 65}, + dictWord{136, 0, 816}, + dictWord{132, 10, 619}, + dictWord{139, 0, 88}, + dictWord{5, 10, 246}, + dictWord{8, 10, 189}, + dictWord{9, 10, 355}, + dictWord{9, 10, 512}, + dictWord{10, 10, 124}, + dictWord{10, 10, 453}, + dictWord{11, 10, 143}, + dictWord{11, 10, 416}, + dictWord{11, 10, 859}, + dictWord{141, 10, 341}, + dictWord{4, 11, 379}, + dictWord{135, 11, 1397}, + dictWord{ + 4, + 0, + 600, + }, + dictWord{137, 0, 621}, + dictWord{133, 0, 367}, + dictWord{134, 0, 561}, + dictWord{6, 0, 559}, + dictWord{134, 0, 1691}, + dictWord{6, 0, 585}, + dictWord{ + 134, + 11, + 585, + }, + dictWord{135, 11, 1228}, + dictWord{4, 11, 118}, + dictWord{5, 10, 678}, + dictWord{6, 11, 274}, + dictWord{6, 11, 361}, + dictWord{7, 11, 75}, + dictWord{ + 141, + 11, + 441, + }, + dictWord{135, 11, 1818}, + dictWord{137, 11, 841}, + dictWord{5, 0, 573}, + dictWord{6, 0, 287}, + dictWord{7, 10, 862}, + dictWord{7, 10, 1886}, + dictWord{138, 10, 179}, + dictWord{132, 10, 517}, + dictWord{140, 11, 693}, + dictWord{5, 11, 314}, + dictWord{6, 11, 221}, + dictWord{7, 11, 419}, + dictWord{ + 10, + 11, + 650, + }, + dictWord{11, 11, 396}, + dictWord{12, 11, 156}, + dictWord{13, 11, 369}, + dictWord{14, 11, 333}, + dictWord{145, 11, 47}, + dictWord{140, 10, 540}, + dictWord{136, 10, 667}, + dictWord{11, 10, 403}, + dictWord{146, 10, 83}, + dictWord{6, 0, 672}, + dictWord{133, 10, 761}, + dictWord{9, 0, 157}, + dictWord{10, 10, 131}, + dictWord{140, 10, 72}, + dictWord{7, 0, 714}, + dictWord{134, 11, 460}, + dictWord{134, 0, 456}, + dictWord{133, 0, 925}, + dictWord{5, 11, 682}, + dictWord{ + 135, + 11, + 1887, + }, + dictWord{136, 11, 510}, + dictWord{136, 11, 475}, + dictWord{133, 11, 1016}, + dictWord{9, 0, 19}, + dictWord{7, 11, 602}, + dictWord{8, 11, 179}, + dictWord{ + 10, + 11, + 781, + }, + dictWord{140, 11, 126}, + dictWord{6, 11, 329}, + dictWord{138, 11, 111}, + dictWord{6, 0, 822}, + dictWord{134, 0, 1473}, + dictWord{144, 11, 86}, + dictWord{11, 0, 113}, + dictWord{139, 11, 113}, + dictWord{5, 11, 821}, + dictWord{134, 11, 1687}, + dictWord{133, 10, 449}, + dictWord{7, 0, 463}, + dictWord{ + 17, + 0, + 69, + }, + dictWord{136, 10, 103}, + dictWord{7, 10, 2028}, + dictWord{138, 10, 641}, + dictWord{6, 0, 193}, + dictWord{7, 0, 240}, + dictWord{7, 0, 1682}, + dictWord{ + 10, + 0, + 51, + }, + dictWord{10, 0, 640}, + dictWord{11, 0, 410}, + dictWord{13, 0, 82}, + dictWord{14, 0, 247}, + dictWord{14, 0, 331}, + dictWord{142, 0, 377}, + dictWord{6, 0, 471}, + dictWord{11, 0, 411}, + dictWord{142, 0, 2}, + dictWord{5, 11, 71}, + dictWord{7, 11, 1407}, + dictWord{9, 11, 388}, + dictWord{9, 11, 704}, + dictWord{10, 11, 261}, + dictWord{ + 10, + 11, + 619, + }, + dictWord{11, 11, 547}, + dictWord{11, 11, 619}, + dictWord{143, 11, 157}, + dictWord{136, 0, 633}, + dictWord{135, 0, 1148}, + dictWord{6, 0, 554}, + dictWord{7, 0, 1392}, + dictWord{12, 0, 129}, + dictWord{7, 10, 1274}, + dictWord{7, 10, 1386}, + dictWord{7, 11, 2008}, + dictWord{9, 11, 337}, + dictWord{10, 11, 517}, + dictWord{146, 10, 87}, + dictWord{7, 0, 803}, + dictWord{8, 0, 542}, + dictWord{6, 10, 187}, + dictWord{7, 10, 1203}, + dictWord{8, 10, 380}, + dictWord{14, 10, 117}, + dictWord{149, 10, 28}, + dictWord{6, 10, 297}, + dictWord{7, 10, 793}, + dictWord{139, 10, 938}, + dictWord{8, 0, 438}, + dictWord{11, 0, 363}, + dictWord{7, 10, 464}, + dictWord{11, 10, 105}, + dictWord{12, 10, 231}, + dictWord{14, 10, 386}, + dictWord{15, 10, 102}, + dictWord{148, 10, 75}, + dictWord{5, 11, 16}, + dictWord{6, 11, 86}, + dictWord{6, 11, 603}, + dictWord{7, 11, 292}, + dictWord{7, 11, 561}, + dictWord{8, 11, 257}, + dictWord{8, 11, 382}, + dictWord{9, 11, 721}, + dictWord{9, 11, 778}, + dictWord{ + 11, + 11, + 581, + }, + dictWord{140, 11, 466}, + dictWord{6, 0, 717}, + dictWord{4, 11, 486}, + dictWord{133, 11, 491}, + dictWord{132, 0, 875}, + dictWord{132, 11, 72}, + dictWord{6, 11, 265}, + dictWord{135, 11, 847}, + dictWord{4, 0, 237}, + dictWord{135, 0, 514}, + dictWord{6, 0, 392}, + dictWord{7, 0, 65}, + dictWord{135, 0, 2019}, + dictWord{140, 11, 261}, + dictWord{135, 11, 922}, + dictWord{137, 11, 404}, + dictWord{12, 0, 563}, + dictWord{14, 0, 101}, + dictWord{18, 0, 129}, + dictWord{ + 7, + 10, + 1010, + }, + dictWord{11, 10, 733}, + dictWord{11, 10, 759}, + dictWord{13, 10, 34}, + dictWord{146, 10, 45}, + dictWord{7, 10, 1656}, + dictWord{9, 10, 369}, + dictWord{ + 10, + 10, + 338, + }, + dictWord{10, 10, 490}, + dictWord{11, 10, 154}, + dictWord{11, 10, 545}, + dictWord{11, 10, 775}, + dictWord{13, 10, 77}, + dictWord{141, 10, 274}, + dictWord{4, 0, 444}, + dictWord{10, 0, 146}, + dictWord{140, 0, 9}, + dictWord{139, 11, 163}, + dictWord{7, 0, 1260}, + dictWord{135, 0, 1790}, + dictWord{9, 0, 222}, + dictWord{10, 0, 43}, + dictWord{139, 0, 900}, + dictWord{137, 11, 234}, + dictWord{138, 0, 971}, + dictWord{137, 0, 761}, + dictWord{134, 0, 699}, + dictWord{ + 136, + 11, + 434, + }, + dictWord{6, 0, 1116}, + dictWord{7, 0, 1366}, + dictWord{5, 10, 20}, + dictWord{6, 11, 197}, + dictWord{6, 10, 298}, + dictWord{7, 10, 659}, + dictWord{8, 11, 205}, + dictWord{137, 10, 219}, + dictWord{132, 11, 490}, + dictWord{11, 11, 820}, + dictWord{150, 11, 51}, + dictWord{7, 10, 1440}, + dictWord{11, 10, 854}, + dictWord{ + 11, + 10, + 872, + }, + dictWord{11, 10, 921}, + dictWord{12, 10, 551}, + dictWord{13, 10, 472}, + dictWord{142, 10, 367}, + dictWord{140, 11, 13}, + dictWord{132, 0, 829}, + dictWord{12, 0, 242}, + dictWord{132, 10, 439}, + dictWord{136, 10, 669}, + dictWord{6, 0, 593}, + dictWord{6, 11, 452}, + dictWord{7, 11, 312}, + dictWord{ + 138, + 11, + 219, + }, + dictWord{4, 11, 333}, + dictWord{9, 11, 176}, + dictWord{12, 11, 353}, + dictWord{141, 11, 187}, + dictWord{7, 0, 36}, + dictWord{8, 0, 201}, + dictWord{ + 136, + 0, + 605, + }, + dictWord{140, 0, 224}, + dictWord{132, 10, 233}, + dictWord{134, 0, 1430}, + dictWord{134, 0, 1806}, + dictWord{4, 0, 523}, + dictWord{133, 0, 638}, + dictWord{ + 6, + 0, + 1889, + }, + dictWord{9, 0, 958}, + dictWord{9, 0, 971}, + dictWord{9, 0, 976}, + dictWord{12, 0, 796}, + dictWord{12, 0, 799}, + dictWord{12, 0, 808}, + dictWord{ + 12, + 0, + 835, + }, + dictWord{12, 0, 836}, + dictWord{12, 0, 914}, + dictWord{12, 0, 946}, + dictWord{15, 0, 216}, + dictWord{15, 0, 232}, + dictWord{18, 0, 183}, + dictWord{18, 0, 187}, + dictWord{18, 0, 194}, + dictWord{18, 0, 212}, + dictWord{18, 0, 232}, + dictWord{149, 0, 49}, + dictWord{132, 10, 482}, + dictWord{6, 0, 827}, + dictWord{134, 0, 1434}, + dictWord{135, 10, 346}, + dictWord{134, 0, 2043}, + dictWord{6, 0, 242}, + dictWord{7, 0, 227}, + dictWord{7, 0, 1581}, + dictWord{8, 0, 104}, + dictWord{9, 0, 113}, + dictWord{9, 0, 220}, + dictWord{9, 0, 427}, + dictWord{10, 0, 136}, + dictWord{10, 0, 239}, + dictWord{11, 0, 579}, + dictWord{11, 0, 1023}, + dictWord{13, 0, 4}, + dictWord{ + 13, + 0, + 204, + }, + dictWord{13, 0, 316}, + dictWord{148, 0, 86}, + dictWord{134, 11, 1685}, + dictWord{7, 0, 148}, + dictWord{8, 0, 284}, + dictWord{141, 0, 63}, + dictWord{ + 142, + 0, + 10, + }, + dictWord{135, 11, 584}, + dictWord{134, 0, 1249}, + dictWord{7, 0, 861}, + dictWord{135, 10, 334}, + dictWord{5, 10, 795}, + dictWord{6, 10, 1741}, + dictWord{ + 137, + 11, + 70, + }, + dictWord{132, 0, 807}, + dictWord{7, 11, 135}, + dictWord{8, 11, 7}, + dictWord{8, 11, 62}, + dictWord{9, 11, 243}, + dictWord{10, 11, 658}, + dictWord{ + 10, + 11, + 697, + }, + dictWord{11, 11, 456}, + dictWord{139, 11, 756}, + dictWord{9, 11, 395}, + dictWord{138, 11, 79}, + dictWord{137, 11, 108}, + dictWord{147, 0, 94}, + dictWord{136, 0, 494}, + dictWord{135, 11, 631}, + dictWord{135, 10, 622}, + dictWord{7, 0, 1510}, + dictWord{135, 10, 1750}, + dictWord{4, 10, 203}, + dictWord{ + 135, + 10, + 1936, + }, + dictWord{7, 11, 406}, + dictWord{7, 11, 459}, + dictWord{8, 11, 606}, + dictWord{139, 11, 726}, + dictWord{7, 0, 1306}, + dictWord{8, 0, 505}, + dictWord{ + 9, + 0, + 482, + }, + dictWord{10, 0, 126}, + dictWord{11, 0, 225}, + dictWord{12, 0, 347}, + dictWord{12, 0, 449}, + dictWord{13, 0, 19}, + dictWord{14, 0, 218}, + dictWord{142, 0, 435}, + dictWord{5, 0, 268}, + dictWord{10, 0, 764}, + dictWord{12, 0, 120}, + dictWord{13, 0, 39}, + dictWord{145, 0, 127}, + dictWord{142, 11, 68}, + dictWord{11, 10, 678}, + dictWord{140, 10, 307}, + dictWord{12, 11, 268}, + dictWord{12, 11, 640}, + dictWord{142, 11, 119}, + dictWord{135, 10, 2044}, + dictWord{133, 11, 612}, + dictWord{ + 4, + 11, + 372, + }, + dictWord{7, 11, 482}, + dictWord{8, 11, 158}, + dictWord{9, 11, 602}, + dictWord{9, 11, 615}, + dictWord{10, 11, 245}, + dictWord{10, 11, 678}, + dictWord{ + 10, + 11, + 744, + }, + dictWord{11, 11, 248}, + dictWord{139, 11, 806}, + dictWord{7, 10, 311}, + dictWord{9, 10, 308}, + dictWord{140, 10, 255}, + dictWord{4, 0, 384}, + dictWord{135, 0, 1022}, + dictWord{5, 11, 854}, + dictWord{135, 11, 1991}, + dictWord{135, 10, 1266}, + dictWord{4, 10, 400}, + dictWord{5, 10, 267}, + dictWord{ + 135, + 10, + 232, + }, + dictWord{135, 0, 1703}, + dictWord{9, 0, 159}, + dictWord{11, 0, 661}, + dictWord{140, 0, 603}, + dictWord{4, 0, 964}, + dictWord{14, 0, 438}, + dictWord{ + 14, + 0, + 444, + }, + dictWord{14, 0, 456}, + dictWord{22, 0, 60}, + dictWord{22, 0, 63}, + dictWord{9, 11, 106}, + dictWord{9, 11, 163}, + dictWord{9, 11, 296}, + dictWord{10, 11, 167}, + dictWord{10, 11, 172}, + dictWord{10, 11, 777}, + dictWord{139, 11, 16}, + dictWord{136, 0, 583}, + dictWord{132, 0, 515}, + dictWord{8, 0, 632}, + dictWord{8, 0, 697}, + dictWord{137, 0, 854}, + dictWord{5, 11, 195}, + dictWord{135, 11, 1685}, + dictWord{6, 0, 1123}, + dictWord{134, 0, 1365}, + dictWord{134, 11, 328}, + dictWord{ + 7, + 11, + 1997, + }, + dictWord{8, 11, 730}, + dictWord{139, 11, 1006}, + dictWord{4, 0, 136}, + dictWord{133, 0, 551}, + dictWord{134, 0, 1782}, + dictWord{7, 0, 1287}, + dictWord{ + 9, + 0, + 44, + }, + dictWord{10, 0, 552}, + dictWord{10, 0, 642}, + dictWord{11, 0, 839}, + dictWord{12, 0, 274}, + dictWord{12, 0, 275}, + dictWord{12, 0, 372}, + dictWord{ + 13, + 0, + 91, + }, + dictWord{142, 0, 125}, + dictWord{5, 11, 751}, + dictWord{11, 11, 797}, + dictWord{140, 11, 203}, + dictWord{133, 0, 732}, + dictWord{7, 0, 679}, + dictWord{ + 8, + 0, + 313, + }, + dictWord{4, 10, 100}, + dictWord{135, 11, 821}, + dictWord{10, 0, 361}, + dictWord{142, 0, 316}, + dictWord{134, 0, 595}, + dictWord{6, 0, 147}, + dictWord{ + 7, + 0, + 886, + }, + dictWord{9, 0, 753}, + dictWord{138, 0, 268}, + dictWord{5, 10, 362}, + dictWord{5, 10, 443}, + dictWord{6, 10, 318}, + dictWord{7, 10, 1019}, + dictWord{ + 139, + 10, + 623, + }, + dictWord{5, 10, 463}, + dictWord{136, 10, 296}, + dictWord{4, 10, 454}, + dictWord{5, 11, 950}, + dictWord{5, 11, 994}, + dictWord{134, 11, 351}, + dictWord{ + 138, + 0, + 137, + }, + dictWord{5, 10, 48}, + dictWord{5, 10, 404}, + dictWord{6, 10, 557}, + dictWord{7, 10, 458}, + dictWord{8, 10, 597}, + dictWord{10, 10, 455}, + dictWord{ + 10, + 10, + 606, + }, + dictWord{11, 10, 49}, + dictWord{11, 10, 548}, + dictWord{12, 10, 476}, + dictWord{13, 10, 18}, + dictWord{141, 10, 450}, + dictWord{133, 0, 414}, + dictWord{ + 135, + 0, + 1762, + }, + dictWord{5, 11, 421}, + dictWord{135, 11, 47}, + dictWord{5, 10, 442}, + dictWord{135, 10, 1984}, + dictWord{134, 0, 599}, + dictWord{134, 0, 1749}, + dictWord{134, 0, 1627}, + dictWord{4, 0, 488}, + dictWord{132, 11, 350}, + dictWord{137, 11, 751}, + dictWord{132, 0, 83}, + dictWord{140, 0, 676}, + dictWord{ + 133, + 11, + 967, + }, + dictWord{7, 0, 1639}, + dictWord{5, 10, 55}, + dictWord{140, 10, 161}, + dictWord{4, 11, 473}, + dictWord{7, 11, 623}, + dictWord{8, 11, 808}, + dictWord{ + 9, + 11, + 871, + }, + dictWord{9, 11, 893}, + dictWord{11, 11, 38}, + dictWord{11, 11, 431}, + dictWord{12, 11, 112}, + dictWord{12, 11, 217}, + dictWord{12, 11, 243}, + dictWord{ + 12, + 11, + 562, + }, + dictWord{12, 11, 683}, + dictWord{13, 11, 141}, + dictWord{13, 11, 197}, + dictWord{13, 11, 227}, + dictWord{13, 11, 406}, + dictWord{13, 11, 487}, + dictWord{14, 11, 156}, + dictWord{14, 11, 203}, + dictWord{14, 11, 224}, + dictWord{14, 11, 256}, + dictWord{18, 11, 58}, + dictWord{150, 11, 0}, + dictWord{ + 133, + 10, + 450, + }, + dictWord{7, 11, 736}, + dictWord{139, 11, 264}, + dictWord{134, 0, 278}, + dictWord{4, 11, 222}, + dictWord{7, 11, 286}, + dictWord{136, 11, 629}, + dictWord{ + 135, + 10, + 869, + }, + dictWord{140, 0, 97}, + dictWord{144, 0, 14}, + dictWord{134, 0, 1085}, + dictWord{4, 10, 213}, + dictWord{7, 10, 223}, + dictWord{136, 10, 80}, + dictWord{ + 7, + 0, + 388, + }, + dictWord{7, 0, 644}, + dictWord{139, 0, 781}, + dictWord{132, 0, 849}, + dictWord{7, 0, 229}, + dictWord{8, 0, 59}, + dictWord{9, 0, 190}, + dictWord{10, 0, 378}, + dictWord{140, 0, 191}, + dictWord{7, 10, 381}, + dictWord{7, 10, 806}, + dictWord{7, 10, 820}, + dictWord{8, 10, 354}, + dictWord{8, 10, 437}, + dictWord{8, 10, 787}, + dictWord{9, 10, 657}, + dictWord{10, 10, 58}, + dictWord{10, 10, 339}, + dictWord{10, 10, 749}, + dictWord{11, 10, 914}, + dictWord{12, 10, 162}, + dictWord{13, 10, 75}, + dictWord{14, 10, 106}, + dictWord{14, 10, 198}, + dictWord{14, 10, 320}, + dictWord{14, 10, 413}, + dictWord{146, 10, 43}, + dictWord{141, 11, 306}, + dictWord{ + 136, + 10, + 747, + }, + dictWord{134, 0, 1115}, + dictWord{16, 0, 94}, + dictWord{16, 0, 108}, + dictWord{136, 11, 146}, + dictWord{6, 0, 700}, + dictWord{6, 0, 817}, + dictWord{ + 134, + 0, + 1002, + }, + dictWord{133, 10, 692}, + dictWord{4, 11, 465}, + dictWord{135, 11, 1663}, + dictWord{134, 10, 191}, + dictWord{6, 0, 1414}, + dictWord{ + 135, + 11, + 913, + }, + dictWord{132, 0, 660}, + dictWord{7, 0, 1035}, + dictWord{138, 0, 737}, + dictWord{6, 10, 162}, + dictWord{7, 10, 1960}, + dictWord{136, 10, 831}, + dictWord{ + 132, + 10, + 706, + }, + dictWord{7, 0, 690}, + dictWord{9, 0, 217}, + dictWord{9, 0, 587}, + dictWord{140, 0, 521}, + dictWord{138, 10, 426}, + dictWord{135, 10, 1235}, + dictWord{ + 6, + 11, + 82, + }, + dictWord{7, 11, 138}, + dictWord{7, 11, 517}, + dictWord{9, 11, 673}, + dictWord{139, 11, 238}, + dictWord{138, 0, 272}, + dictWord{5, 11, 495}, + dictWord{ + 7, + 11, + 834, + }, + dictWord{9, 11, 733}, + dictWord{139, 11, 378}, + dictWord{134, 0, 1744}, + dictWord{132, 0, 1011}, + dictWord{7, 11, 828}, + dictWord{142, 11, 116}, + dictWord{4, 0, 733}, + dictWord{9, 0, 194}, + dictWord{10, 0, 92}, + dictWord{11, 0, 198}, + dictWord{12, 0, 84}, + dictWord{13, 0, 128}, + dictWord{133, 11, 559}, + dictWord{ + 10, + 0, + 57, + }, + dictWord{10, 0, 277}, + dictWord{6, 11, 21}, + dictWord{6, 11, 1737}, + dictWord{7, 11, 1444}, + dictWord{136, 11, 224}, + dictWord{4, 10, 204}, + dictWord{ + 137, + 10, + 902, + }, + dictWord{136, 10, 833}, + dictWord{11, 0, 348}, + dictWord{12, 0, 99}, + dictWord{18, 0, 1}, + dictWord{18, 0, 11}, + dictWord{19, 0, 4}, + dictWord{7, 10, 366}, + dictWord{9, 10, 287}, + dictWord{12, 10, 199}, + dictWord{12, 10, 556}, + dictWord{140, 10, 577}, + dictWord{6, 0, 1981}, + dictWord{136, 0, 936}, + dictWord{ + 21, + 0, + 33, + }, + dictWord{150, 0, 40}, + dictWord{5, 11, 519}, + dictWord{138, 11, 204}, + dictWord{5, 10, 356}, + dictWord{135, 10, 224}, + dictWord{134, 0, 775}, + dictWord{ + 135, + 0, + 306, + }, + dictWord{7, 10, 630}, + dictWord{9, 10, 567}, + dictWord{11, 10, 150}, + dictWord{11, 10, 444}, + dictWord{141, 10, 119}, + dictWord{5, 0, 979}, + dictWord{ + 134, + 10, + 539, + }, + dictWord{133, 0, 611}, + dictWord{4, 11, 402}, + dictWord{135, 11, 1679}, + dictWord{5, 0, 178}, + dictWord{7, 11, 2}, + dictWord{8, 11, 323}, + dictWord{ + 136, + 11, + 479, + }, + dictWord{5, 11, 59}, + dictWord{135, 11, 672}, + dictWord{4, 0, 1010}, + dictWord{6, 0, 1969}, + dictWord{138, 11, 237}, + dictWord{133, 11, 412}, + dictWord{146, 11, 34}, + dictWord{7, 11, 1740}, + dictWord{146, 11, 48}, + dictWord{134, 0, 664}, + dictWord{139, 10, 814}, + dictWord{4, 11, 85}, + dictWord{ + 135, + 11, + 549, + }, + dictWord{133, 11, 94}, + dictWord{133, 11, 457}, + dictWord{132, 0, 390}, + dictWord{134, 0, 1510}, + dictWord{4, 10, 235}, + dictWord{135, 10, 255}, + dictWord{4, 10, 194}, + dictWord{5, 10, 584}, + dictWord{6, 11, 11}, + dictWord{6, 10, 384}, + dictWord{7, 11, 187}, + dictWord{7, 10, 583}, + dictWord{10, 10, 761}, + dictWord{ + 11, + 10, + 760, + }, + dictWord{139, 10, 851}, + dictWord{4, 11, 522}, + dictWord{139, 11, 802}, + dictWord{135, 0, 493}, + dictWord{10, 11, 776}, + dictWord{13, 11, 345}, + dictWord{142, 11, 425}, + dictWord{146, 0, 37}, + dictWord{4, 11, 52}, + dictWord{135, 11, 661}, + dictWord{134, 0, 724}, + dictWord{134, 0, 829}, + dictWord{ + 133, + 11, + 520, + }, + dictWord{133, 10, 562}, + dictWord{4, 11, 281}, + dictWord{5, 11, 38}, + dictWord{7, 11, 194}, + dictWord{7, 11, 668}, + dictWord{7, 11, 1893}, + dictWord{ + 137, + 11, + 397, + }, + dictWord{5, 10, 191}, + dictWord{137, 10, 271}, + dictWord{7, 0, 1537}, + dictWord{14, 0, 96}, + dictWord{143, 0, 73}, + dictWord{5, 0, 473}, + dictWord{ + 11, + 0, + 168, + }, + dictWord{4, 10, 470}, + dictWord{6, 10, 153}, + dictWord{7, 10, 1503}, + dictWord{7, 10, 1923}, + dictWord{10, 10, 701}, + dictWord{11, 10, 132}, + dictWord{ + 11, + 10, + 227, + }, + dictWord{11, 10, 320}, + dictWord{11, 10, 436}, + dictWord{11, 10, 525}, + dictWord{11, 10, 855}, + dictWord{12, 10, 41}, + dictWord{12, 10, 286}, + dictWord{13, 10, 103}, + dictWord{13, 10, 284}, + dictWord{14, 10, 255}, + dictWord{14, 10, 262}, + dictWord{15, 10, 117}, + dictWord{143, 10, 127}, + dictWord{ + 133, + 0, + 105, + }, + dictWord{5, 0, 438}, + dictWord{9, 0, 694}, + dictWord{12, 0, 627}, + dictWord{141, 0, 210}, + dictWord{133, 10, 327}, + dictWord{6, 10, 552}, + dictWord{ + 7, + 10, + 1754, + }, + dictWord{137, 10, 604}, + dictWord{134, 0, 1256}, + dictWord{152, 0, 11}, + dictWord{5, 11, 448}, + dictWord{11, 11, 98}, + dictWord{139, 11, 524}, + dictWord{ + 7, + 0, + 1626, + }, + dictWord{5, 10, 80}, + dictWord{6, 10, 405}, + dictWord{7, 10, 403}, + dictWord{7, 10, 1502}, + dictWord{8, 10, 456}, + dictWord{9, 10, 487}, + dictWord{ + 9, + 10, + 853, + }, + dictWord{9, 10, 889}, + dictWord{10, 10, 309}, + dictWord{11, 10, 721}, + dictWord{11, 10, 994}, + dictWord{12, 10, 430}, + dictWord{13, 10, 165}, + dictWord{ + 14, + 11, + 16, + }, + dictWord{146, 11, 44}, + dictWord{132, 0, 779}, + dictWord{8, 0, 25}, + dictWord{138, 0, 826}, + dictWord{4, 10, 453}, + dictWord{5, 10, 887}, + dictWord{ + 6, + 10, + 535, + }, + dictWord{8, 10, 6}, + dictWord{8, 10, 543}, + dictWord{136, 10, 826}, + dictWord{137, 11, 461}, + dictWord{140, 11, 632}, + dictWord{132, 0, 308}, + dictWord{135, 0, 741}, + dictWord{132, 0, 671}, + dictWord{7, 0, 150}, + dictWord{8, 0, 649}, + dictWord{136, 0, 1020}, + dictWord{9, 0, 99}, + dictWord{6, 11, 336}, + dictWord{ + 8, + 11, + 552, + }, + dictWord{9, 11, 285}, + dictWord{10, 11, 99}, + dictWord{139, 11, 568}, + dictWord{134, 0, 521}, + dictWord{5, 0, 339}, + dictWord{14, 0, 3}, + dictWord{ + 15, + 0, + 41, + }, + dictWord{15, 0, 166}, + dictWord{147, 0, 66}, + dictWord{6, 11, 423}, + dictWord{7, 11, 665}, + dictWord{7, 11, 1210}, + dictWord{9, 11, 218}, + dictWord{ + 141, + 11, + 222, + }, + dictWord{6, 0, 543}, + dictWord{5, 10, 101}, + dictWord{5, 11, 256}, + dictWord{6, 10, 88}, + dictWord{7, 10, 1677}, + dictWord{9, 10, 100}, + dictWord{10, 10, 677}, + dictWord{14, 10, 169}, + dictWord{14, 10, 302}, + dictWord{14, 10, 313}, + dictWord{15, 10, 48}, + dictWord{143, 10, 84}, + dictWord{4, 10, 310}, + dictWord{ + 7, + 10, + 708, + }, + dictWord{7, 10, 996}, + dictWord{9, 10, 795}, + dictWord{10, 10, 390}, + dictWord{10, 10, 733}, + dictWord{11, 10, 451}, + dictWord{12, 10, 249}, + dictWord{ + 14, + 10, + 115, + }, + dictWord{14, 10, 286}, + dictWord{143, 10, 100}, + dictWord{133, 10, 587}, + dictWord{13, 11, 417}, + dictWord{14, 11, 129}, + dictWord{143, 11, 15}, + dictWord{134, 0, 1358}, + dictWord{136, 11, 554}, + dictWord{132, 10, 498}, + dictWord{7, 10, 217}, + dictWord{8, 10, 140}, + dictWord{138, 10, 610}, + dictWord{ + 135, + 11, + 989, + }, + dictWord{135, 11, 634}, + dictWord{6, 0, 155}, + dictWord{140, 0, 234}, + dictWord{135, 11, 462}, + dictWord{132, 11, 618}, + dictWord{ + 134, + 0, + 1628, + }, + dictWord{132, 0, 766}, + dictWord{4, 11, 339}, + dictWord{5, 10, 905}, + dictWord{135, 11, 259}, + dictWord{135, 0, 829}, + dictWord{4, 11, 759}, + dictWord{ + 141, + 11, + 169, + }, + dictWord{7, 0, 1445}, + dictWord{4, 10, 456}, + dictWord{7, 10, 358}, + dictWord{7, 10, 1637}, + dictWord{8, 10, 643}, + dictWord{139, 10, 483}, + dictWord{ + 5, + 0, + 486, + }, + dictWord{135, 0, 1349}, + dictWord{5, 11, 688}, + dictWord{135, 11, 712}, + dictWord{7, 0, 1635}, + dictWord{8, 0, 17}, + dictWord{10, 0, 217}, + dictWord{ + 10, + 0, + 295, + }, + dictWord{12, 0, 2}, + dictWord{140, 11, 2}, + dictWord{138, 0, 558}, + dictWord{150, 10, 56}, + dictWord{4, 11, 278}, + dictWord{5, 11, 465}, + dictWord{ + 135, + 11, + 1367, + }, + dictWord{136, 11, 482}, + dictWord{133, 10, 535}, + dictWord{6, 0, 1362}, + dictWord{6, 0, 1461}, + dictWord{10, 11, 274}, + dictWord{10, 11, 625}, + dictWord{139, 11, 530}, + dictWord{5, 0, 599}, + dictWord{5, 11, 336}, + dictWord{6, 11, 341}, + dictWord{6, 11, 478}, + dictWord{6, 11, 1763}, + dictWord{136, 11, 386}, + dictWord{7, 10, 1748}, + dictWord{137, 11, 151}, + dictWord{134, 0, 1376}, + dictWord{133, 10, 539}, + dictWord{135, 11, 73}, + dictWord{135, 11, 1971}, + dictWord{139, 11, 283}, + dictWord{9, 0, 93}, + dictWord{139, 0, 474}, + dictWord{6, 10, 91}, + dictWord{135, 10, 435}, + dictWord{6, 0, 447}, + dictWord{5, 11, 396}, + dictWord{134, 11, 501}, + dictWord{4, 10, 16}, + dictWord{5, 10, 316}, + dictWord{5, 10, 842}, + dictWord{6, 10, 370}, + dictWord{6, 10, 1778}, + dictWord{8, 10, 166}, + dictWord{11, 10, 812}, + dictWord{12, 10, 206}, + dictWord{12, 10, 351}, + dictWord{14, 10, 418}, + dictWord{16, 10, 15}, + dictWord{16, 10, 34}, + dictWord{18, 10, 3}, + dictWord{19, 10, 3}, + dictWord{19, 10, 7}, + dictWord{20, 10, 4}, + dictWord{149, 10, 21}, + dictWord{7, 0, 577}, + dictWord{7, 0, 1432}, + dictWord{9, 0, 475}, + dictWord{9, 0, 505}, + dictWord{9, 0, 526}, + dictWord{9, 0, 609}, + dictWord{9, 0, 689}, + dictWord{9, 0, 726}, + dictWord{9, 0, 735}, + dictWord{9, 0, 738}, + dictWord{10, 0, 556}, + dictWord{ + 10, + 0, + 674, + }, + dictWord{10, 0, 684}, + dictWord{11, 0, 89}, + dictWord{11, 0, 202}, + dictWord{11, 0, 272}, + dictWord{11, 0, 380}, + dictWord{11, 0, 415}, + dictWord{11, 0, 505}, + dictWord{11, 0, 537}, + dictWord{11, 0, 550}, + dictWord{11, 0, 562}, + dictWord{11, 0, 640}, + dictWord{11, 0, 667}, + dictWord{11, 0, 688}, + dictWord{11, 0, 847}, + dictWord{11, 0, 927}, + dictWord{11, 0, 930}, + dictWord{11, 0, 940}, + dictWord{12, 0, 144}, + dictWord{12, 0, 325}, + dictWord{12, 0, 329}, + dictWord{12, 0, 389}, + dictWord{ + 12, + 0, + 403, + }, + dictWord{12, 0, 451}, + dictWord{12, 0, 515}, + dictWord{12, 0, 604}, + dictWord{12, 0, 616}, + dictWord{12, 0, 626}, + dictWord{13, 0, 66}, + dictWord{ + 13, + 0, + 131, + }, + dictWord{13, 0, 167}, + dictWord{13, 0, 236}, + dictWord{13, 0, 368}, + dictWord{13, 0, 411}, + dictWord{13, 0, 434}, + dictWord{13, 0, 453}, + dictWord{13, 0, 461}, + dictWord{13, 0, 474}, + dictWord{14, 0, 59}, + dictWord{14, 0, 60}, + dictWord{14, 0, 139}, + dictWord{14, 0, 152}, + dictWord{14, 0, 276}, + dictWord{14, 0, 353}, + dictWord{ + 14, + 0, + 402, + }, + dictWord{15, 0, 28}, + dictWord{15, 0, 81}, + dictWord{15, 0, 123}, + dictWord{15, 0, 152}, + dictWord{18, 0, 136}, + dictWord{148, 0, 88}, + dictWord{ + 4, + 11, + 929, + }, + dictWord{133, 11, 799}, + dictWord{136, 11, 46}, + dictWord{142, 0, 307}, + dictWord{4, 0, 609}, + dictWord{7, 0, 756}, + dictWord{9, 0, 544}, + dictWord{ + 11, + 0, + 413, + }, + dictWord{144, 0, 25}, + dictWord{10, 0, 687}, + dictWord{7, 10, 619}, + dictWord{10, 10, 547}, + dictWord{11, 10, 122}, + dictWord{140, 10, 601}, + dictWord{ + 4, + 0, + 930, + }, + dictWord{133, 0, 947}, + dictWord{133, 0, 939}, + dictWord{142, 0, 21}, + dictWord{4, 11, 892}, + dictWord{133, 11, 770}, + dictWord{133, 0, 962}, + dictWord{ + 5, + 0, + 651, + }, + dictWord{8, 0, 170}, + dictWord{9, 0, 61}, + dictWord{9, 0, 63}, + dictWord{10, 0, 23}, + dictWord{10, 0, 37}, + dictWord{10, 0, 834}, + dictWord{11, 0, 4}, + dictWord{ + 11, + 0, + 187, + }, + dictWord{11, 0, 281}, + dictWord{11, 0, 503}, + dictWord{11, 0, 677}, + dictWord{12, 0, 96}, + dictWord{12, 0, 130}, + dictWord{12, 0, 244}, + dictWord{14, 0, 5}, + dictWord{14, 0, 40}, + dictWord{14, 0, 162}, + dictWord{14, 0, 202}, + dictWord{146, 0, 133}, + dictWord{4, 0, 406}, + dictWord{5, 0, 579}, + dictWord{12, 0, 492}, + dictWord{ + 150, + 0, + 15, + }, + dictWord{135, 11, 158}, + dictWord{135, 0, 597}, + dictWord{132, 0, 981}, + dictWord{132, 10, 888}, + dictWord{4, 10, 149}, + dictWord{138, 10, 368}, + dictWord{132, 0, 545}, + dictWord{4, 10, 154}, + dictWord{7, 10, 1134}, + dictWord{136, 10, 105}, + dictWord{135, 11, 2001}, + dictWord{134, 0, 1558}, + dictWord{ + 4, + 10, + 31, + }, + dictWord{6, 10, 429}, + dictWord{7, 10, 962}, + dictWord{9, 10, 458}, + dictWord{139, 10, 691}, + dictWord{132, 10, 312}, + dictWord{135, 10, 1642}, + dictWord{ + 6, + 0, + 17, + }, + dictWord{6, 0, 1304}, + dictWord{7, 0, 16}, + dictWord{7, 0, 1001}, + dictWord{9, 0, 886}, + dictWord{10, 0, 489}, + dictWord{10, 0, 800}, + dictWord{11, 0, 782}, + dictWord{12, 0, 320}, + dictWord{13, 0, 467}, + dictWord{14, 0, 145}, + dictWord{14, 0, 387}, + dictWord{143, 0, 119}, + dictWord{135, 0, 1982}, + dictWord{17, 0, 17}, + dictWord{7, 11, 1461}, + dictWord{140, 11, 91}, + dictWord{4, 10, 236}, + dictWord{132, 11, 602}, + dictWord{138, 0, 907}, + dictWord{136, 0, 110}, + dictWord{7, 0, 272}, + dictWord{19, 0, 53}, + dictWord{5, 10, 836}, + dictWord{5, 10, 857}, + dictWord{134, 10, 1680}, + dictWord{5, 0, 458}, + dictWord{7, 11, 1218}, + dictWord{136, 11, 303}, + dictWord{7, 0, 1983}, + dictWord{8, 0, 0}, + dictWord{8, 0, 171}, + dictWord{9, 0, 120}, + dictWord{9, 0, 732}, + dictWord{10, 0, 473}, + dictWord{11, 0, 656}, + dictWord{ + 11, + 0, + 998, + }, + dictWord{18, 0, 0}, + dictWord{18, 0, 2}, + dictWord{19, 0, 21}, + dictWord{10, 10, 68}, + dictWord{139, 10, 494}, + dictWord{137, 11, 662}, + dictWord{4, 11, 13}, + dictWord{5, 11, 567}, + dictWord{7, 11, 1498}, + dictWord{9, 11, 124}, + dictWord{11, 11, 521}, + dictWord{140, 11, 405}, + dictWord{4, 10, 81}, + dictWord{139, 10, 867}, + dictWord{135, 11, 1006}, + dictWord{7, 11, 800}, + dictWord{7, 11, 1783}, + dictWord{138, 11, 12}, + dictWord{9, 0, 295}, + dictWord{10, 0, 443}, + dictWord{ + 5, + 10, + 282, + }, + dictWord{8, 10, 650}, + dictWord{137, 10, 907}, + dictWord{132, 11, 735}, + dictWord{4, 11, 170}, + dictWord{4, 10, 775}, + dictWord{135, 11, 323}, + dictWord{ + 6, + 0, + 1844, + }, + dictWord{10, 0, 924}, + dictWord{11, 11, 844}, + dictWord{12, 11, 104}, + dictWord{140, 11, 625}, + dictWord{5, 11, 304}, + dictWord{7, 11, 1403}, + dictWord{140, 11, 498}, + dictWord{134, 0, 1232}, + dictWord{4, 0, 519}, + dictWord{10, 0, 70}, + dictWord{12, 0, 26}, + dictWord{14, 0, 17}, + dictWord{14, 0, 178}, + dictWord{ + 15, + 0, + 34, + }, + dictWord{149, 0, 12}, + dictWord{132, 0, 993}, + dictWord{4, 11, 148}, + dictWord{133, 11, 742}, + dictWord{6, 0, 31}, + dictWord{7, 0, 491}, + dictWord{7, 0, 530}, + dictWord{8, 0, 592}, + dictWord{11, 0, 53}, + dictWord{11, 0, 779}, + dictWord{12, 0, 167}, + dictWord{12, 0, 411}, + dictWord{14, 0, 14}, + dictWord{14, 0, 136}, + dictWord{ + 15, + 0, + 72, + }, + dictWord{16, 0, 17}, + dictWord{144, 0, 72}, + dictWord{133, 0, 907}, + dictWord{134, 0, 733}, + dictWord{133, 11, 111}, + dictWord{4, 10, 71}, + dictWord{ + 5, + 10, + 376, + }, + dictWord{7, 10, 119}, + dictWord{138, 10, 665}, + dictWord{136, 0, 55}, + dictWord{8, 0, 430}, + dictWord{136, 11, 430}, + dictWord{4, 0, 208}, + dictWord{ + 5, + 0, + 106, + }, + dictWord{6, 0, 531}, + dictWord{8, 0, 408}, + dictWord{9, 0, 188}, + dictWord{138, 0, 572}, + dictWord{12, 0, 56}, + dictWord{11, 10, 827}, + dictWord{14, 10, 34}, + dictWord{143, 10, 148}, + dictWord{134, 0, 1693}, + dictWord{133, 11, 444}, + dictWord{132, 10, 479}, + dictWord{140, 0, 441}, + dictWord{9, 0, 449}, + dictWord{ + 10, + 0, + 192, + }, + dictWord{138, 0, 740}, + dictWord{134, 0, 928}, + dictWord{4, 0, 241}, + dictWord{7, 10, 607}, + dictWord{136, 10, 99}, + dictWord{8, 11, 123}, + dictWord{ + 15, + 11, + 6, + }, + dictWord{144, 11, 7}, + dictWord{6, 11, 285}, + dictWord{8, 11, 654}, + dictWord{11, 11, 749}, + dictWord{12, 11, 190}, + dictWord{12, 11, 327}, + dictWord{ + 13, + 11, + 120, + }, + dictWord{13, 11, 121}, + dictWord{13, 11, 327}, + dictWord{15, 11, 47}, + dictWord{146, 11, 40}, + dictWord{4, 10, 41}, + dictWord{5, 10, 74}, + dictWord{ + 7, + 10, + 1627, + }, + dictWord{11, 10, 871}, + dictWord{140, 10, 619}, + dictWord{7, 0, 1525}, + dictWord{11, 10, 329}, + dictWord{11, 10, 965}, + dictWord{12, 10, 241}, + dictWord{14, 10, 354}, + dictWord{15, 10, 22}, + dictWord{148, 10, 63}, + dictWord{132, 0, 259}, + dictWord{135, 11, 183}, + dictWord{9, 10, 209}, + dictWord{ + 137, + 10, + 300, + }, + dictWord{5, 11, 937}, + dictWord{135, 11, 100}, + dictWord{133, 10, 98}, + dictWord{4, 0, 173}, + dictWord{5, 0, 312}, + dictWord{5, 0, 512}, + dictWord{ + 135, + 0, + 1285, + }, + dictWord{141, 0, 185}, + dictWord{7, 0, 1603}, + dictWord{7, 0, 1691}, + dictWord{9, 0, 464}, + dictWord{11, 0, 195}, + dictWord{12, 0, 279}, + dictWord{ + 12, + 0, + 448, + }, + dictWord{14, 0, 11}, + dictWord{147, 0, 102}, + dictWord{135, 0, 1113}, + dictWord{133, 10, 984}, + dictWord{4, 0, 452}, + dictWord{5, 0, 583}, + dictWord{ + 135, + 0, + 720, + }, + dictWord{4, 0, 547}, + dictWord{5, 0, 817}, + dictWord{6, 0, 433}, + dictWord{7, 0, 593}, + dictWord{7, 0, 1378}, + dictWord{8, 0, 161}, + dictWord{9, 0, 284}, + dictWord{ + 10, + 0, + 313, + }, + dictWord{139, 0, 886}, + dictWord{8, 0, 722}, + dictWord{4, 10, 182}, + dictWord{6, 10, 205}, + dictWord{135, 10, 220}, + dictWord{150, 0, 13}, + dictWord{ + 4, + 10, + 42, + }, + dictWord{9, 10, 205}, + dictWord{9, 10, 786}, + dictWord{138, 10, 659}, + dictWord{6, 0, 289}, + dictWord{7, 0, 1670}, + dictWord{12, 0, 57}, + dictWord{151, 0, 4}, + dictWord{132, 10, 635}, + dictWord{14, 0, 43}, + dictWord{146, 0, 21}, + dictWord{139, 10, 533}, + dictWord{135, 0, 1694}, + dictWord{8, 0, 420}, + dictWord{ + 139, + 0, + 193, + }, + dictWord{135, 0, 409}, + dictWord{132, 10, 371}, + dictWord{4, 10, 272}, + dictWord{135, 10, 836}, + dictWord{5, 10, 825}, + dictWord{134, 10, 1640}, + dictWord{5, 11, 251}, + dictWord{5, 11, 956}, + dictWord{8, 11, 268}, + dictWord{9, 11, 214}, + dictWord{146, 11, 142}, + dictWord{138, 0, 308}, + dictWord{6, 0, 1863}, + dictWord{141, 11, 37}, + dictWord{137, 10, 879}, + dictWord{7, 10, 317}, + dictWord{135, 10, 569}, + dictWord{132, 11, 294}, + dictWord{134, 0, 790}, + dictWord{ + 5, + 0, + 1002, + }, + dictWord{136, 0, 745}, + dictWord{5, 11, 346}, + dictWord{5, 11, 711}, + dictWord{136, 11, 390}, + dictWord{135, 0, 289}, + dictWord{5, 0, 504}, + dictWord{ + 11, + 0, + 68, + }, + dictWord{137, 10, 307}, + dictWord{4, 0, 239}, + dictWord{6, 0, 477}, + dictWord{7, 0, 1607}, + dictWord{139, 0, 617}, + dictWord{149, 0, 13}, + dictWord{ + 133, + 0, + 609, + }, + dictWord{133, 11, 624}, + dictWord{5, 11, 783}, + dictWord{7, 11, 1998}, + dictWord{135, 11, 2047}, + dictWord{133, 10, 525}, + dictWord{132, 0, 367}, + dictWord{132, 11, 594}, + dictWord{6, 0, 528}, + dictWord{133, 10, 493}, + dictWord{4, 10, 174}, + dictWord{135, 10, 911}, + dictWord{8, 10, 417}, + dictWord{ + 137, + 10, + 782, + }, + dictWord{132, 0, 694}, + dictWord{7, 0, 548}, + dictWord{137, 0, 58}, + dictWord{4, 10, 32}, + dictWord{5, 10, 215}, + dictWord{6, 10, 269}, + dictWord{7, 10, 1782}, + dictWord{7, 10, 1892}, + dictWord{10, 10, 16}, + dictWord{11, 10, 822}, + dictWord{11, 10, 954}, + dictWord{141, 10, 481}, + dictWord{140, 0, 687}, + dictWord{ + 7, + 0, + 1749, + }, + dictWord{136, 10, 477}, + dictWord{132, 11, 569}, + dictWord{133, 10, 308}, + dictWord{135, 10, 1088}, + dictWord{4, 0, 661}, + dictWord{138, 0, 1004}, + dictWord{5, 11, 37}, + dictWord{6, 11, 39}, + dictWord{6, 11, 451}, + dictWord{7, 11, 218}, + dictWord{7, 11, 667}, + dictWord{7, 11, 1166}, + dictWord{7, 11, 1687}, + dictWord{8, 11, 662}, + dictWord{144, 11, 2}, + dictWord{9, 0, 445}, + dictWord{12, 0, 53}, + dictWord{13, 0, 492}, + dictWord{5, 10, 126}, + dictWord{8, 10, 297}, + dictWord{ + 9, + 10, + 366, + }, + dictWord{140, 10, 374}, + dictWord{7, 10, 1551}, + dictWord{139, 10, 361}, + dictWord{148, 0, 74}, + dictWord{134, 11, 508}, + dictWord{135, 0, 213}, + dictWord{132, 10, 175}, + dictWord{132, 10, 685}, + dictWord{6, 0, 760}, + dictWord{6, 0, 834}, + dictWord{134, 0, 1248}, + dictWord{7, 11, 453}, + dictWord{7, 11, 635}, + dictWord{7, 11, 796}, + dictWord{8, 11, 331}, + dictWord{9, 11, 328}, + dictWord{9, 11, 330}, + dictWord{9, 11, 865}, + dictWord{10, 11, 119}, + dictWord{10, 11, 235}, + dictWord{11, 11, 111}, + dictWord{11, 11, 129}, + dictWord{11, 11, 240}, + dictWord{12, 11, 31}, + dictWord{12, 11, 66}, + dictWord{12, 11, 222}, + dictWord{12, 11, 269}, + dictWord{12, 11, 599}, + dictWord{12, 11, 689}, + dictWord{13, 11, 186}, + dictWord{13, 11, 364}, + dictWord{142, 11, 345}, + dictWord{7, 0, 1672}, + dictWord{ + 139, + 0, + 189, + }, + dictWord{133, 10, 797}, + dictWord{133, 10, 565}, + dictWord{6, 0, 1548}, + dictWord{6, 11, 98}, + dictWord{7, 11, 585}, + dictWord{135, 11, 702}, + dictWord{ + 9, + 0, + 968, + }, + dictWord{15, 0, 192}, + dictWord{149, 0, 56}, + dictWord{4, 10, 252}, + dictWord{6, 11, 37}, + dictWord{7, 11, 299}, + dictWord{7, 10, 1068}, + dictWord{ + 7, + 11, + 1666, + }, + dictWord{8, 11, 195}, + dictWord{8, 11, 316}, + dictWord{9, 11, 178}, + dictWord{9, 11, 276}, + dictWord{9, 11, 339}, + dictWord{9, 11, 536}, + dictWord{ + 10, + 11, + 102, + }, + dictWord{10, 11, 362}, + dictWord{10, 10, 434}, + dictWord{10, 11, 785}, + dictWord{11, 11, 55}, + dictWord{11, 11, 149}, + dictWord{11, 10, 228}, + dictWord{ + 11, + 10, + 426, + }, + dictWord{11, 11, 773}, + dictWord{13, 10, 231}, + dictWord{13, 11, 416}, + dictWord{13, 11, 419}, + dictWord{14, 11, 38}, + dictWord{14, 11, 41}, + dictWord{14, 11, 210}, + dictWord{18, 10, 106}, + dictWord{148, 10, 87}, + dictWord{4, 0, 751}, + dictWord{11, 0, 390}, + dictWord{140, 0, 32}, + dictWord{4, 0, 409}, + dictWord{133, 0, 78}, + dictWord{11, 11, 458}, + dictWord{12, 11, 15}, + dictWord{140, 11, 432}, + dictWord{7, 0, 1602}, + dictWord{10, 0, 257}, + dictWord{10, 0, 698}, + dictWord{11, 0, 544}, + dictWord{11, 0, 585}, + dictWord{12, 0, 212}, + dictWord{13, 0, 307}, + dictWord{5, 10, 231}, + dictWord{7, 10, 601}, + dictWord{9, 10, 277}, + dictWord{ + 9, + 10, + 674, + }, + dictWord{10, 10, 178}, + dictWord{10, 10, 418}, + dictWord{10, 10, 509}, + dictWord{11, 10, 531}, + dictWord{12, 10, 113}, + dictWord{12, 10, 475}, + dictWord{13, 10, 99}, + dictWord{142, 10, 428}, + dictWord{6, 0, 473}, + dictWord{145, 0, 105}, + dictWord{6, 0, 1949}, + dictWord{15, 0, 156}, + dictWord{133, 11, 645}, + dictWord{7, 10, 1591}, + dictWord{144, 10, 43}, + dictWord{135, 0, 1779}, + dictWord{135, 10, 1683}, + dictWord{4, 11, 290}, + dictWord{135, 11, 1356}, + dictWord{134, 0, 763}, + dictWord{6, 11, 70}, + dictWord{7, 11, 1292}, + dictWord{10, 11, 762}, + dictWord{139, 11, 288}, + dictWord{142, 0, 29}, + dictWord{140, 11, 428}, + dictWord{7, 0, 883}, + dictWord{7, 11, 131}, + dictWord{7, 11, 422}, + dictWord{8, 11, 210}, + dictWord{140, 11, 573}, + dictWord{134, 0, 488}, + dictWord{4, 10, 399}, + dictWord{5, 10, 119}, + dictWord{5, 10, 494}, + dictWord{7, 10, 751}, + dictWord{137, 10, 556}, + dictWord{133, 0, 617}, + dictWord{132, 11, 936}, + dictWord{ + 139, + 0, + 50, + }, + dictWord{7, 0, 1518}, + dictWord{139, 0, 694}, + dictWord{137, 0, 785}, + dictWord{4, 0, 546}, + dictWord{135, 0, 2042}, + dictWord{7, 11, 716}, + dictWord{ + 13, + 11, + 97, + }, + dictWord{141, 11, 251}, + dictWord{132, 11, 653}, + dictWord{145, 0, 22}, + dictWord{134, 0, 1016}, + dictWord{4, 0, 313}, + dictWord{133, 0, 577}, + dictWord{ + 136, + 11, + 657, + }, + dictWord{8, 0, 184}, + dictWord{141, 0, 433}, + dictWord{135, 0, 935}, + dictWord{6, 0, 720}, + dictWord{9, 0, 114}, + dictWord{146, 11, 80}, + dictWord{ + 12, + 0, + 186, + }, + dictWord{12, 0, 292}, + dictWord{14, 0, 100}, + dictWord{18, 0, 70}, + dictWord{7, 10, 594}, + dictWord{7, 10, 851}, + dictWord{7, 10, 1858}, + dictWord{ + 9, + 10, + 411, + }, + dictWord{9, 10, 574}, + dictWord{9, 10, 666}, + dictWord{9, 10, 737}, + dictWord{10, 10, 346}, + dictWord{10, 10, 712}, + dictWord{11, 10, 246}, + dictWord{ + 11, + 10, + 432, + }, + dictWord{11, 10, 517}, + dictWord{11, 10, 647}, + dictWord{11, 10, 679}, + dictWord{11, 10, 727}, + dictWord{12, 10, 304}, + dictWord{12, 10, 305}, + dictWord{12, 10, 323}, + dictWord{12, 10, 483}, + dictWord{12, 10, 572}, + dictWord{12, 10, 593}, + dictWord{12, 10, 602}, + dictWord{13, 10, 95}, + dictWord{13, 10, 101}, + dictWord{13, 10, 171}, + dictWord{13, 10, 315}, + dictWord{13, 10, 378}, + dictWord{13, 10, 425}, + dictWord{13, 10, 475}, + dictWord{14, 10, 63}, + dictWord{ + 14, + 10, + 380, + }, + dictWord{14, 10, 384}, + dictWord{15, 10, 133}, + dictWord{18, 10, 112}, + dictWord{148, 10, 72}, + dictWord{135, 10, 1093}, + dictWord{135, 11, 1836}, + dictWord{132, 10, 679}, + dictWord{137, 10, 203}, + dictWord{11, 0, 402}, + dictWord{12, 0, 109}, + dictWord{12, 0, 431}, + dictWord{13, 0, 179}, + dictWord{13, 0, 206}, + dictWord{14, 0, 217}, + dictWord{16, 0, 3}, + dictWord{148, 0, 53}, + dictWord{7, 11, 1368}, + dictWord{8, 11, 232}, + dictWord{8, 11, 361}, + dictWord{10, 11, 682}, + dictWord{138, 11, 742}, + dictWord{137, 10, 714}, + dictWord{5, 0, 886}, + dictWord{6, 0, 46}, + dictWord{6, 0, 1790}, + dictWord{7, 0, 14}, + dictWord{7, 0, 732}, + dictWord{ + 7, + 0, + 1654, + }, + dictWord{8, 0, 95}, + dictWord{8, 0, 327}, + dictWord{8, 0, 616}, + dictWord{9, 0, 892}, + dictWord{10, 0, 598}, + dictWord{10, 0, 769}, + dictWord{11, 0, 134}, + dictWord{11, 0, 747}, + dictWord{12, 0, 378}, + dictWord{14, 0, 97}, + dictWord{137, 11, 534}, + dictWord{4, 0, 969}, + dictWord{136, 10, 825}, + dictWord{137, 11, 27}, + dictWord{6, 0, 727}, + dictWord{142, 11, 12}, + dictWord{133, 0, 1021}, + dictWord{134, 0, 1190}, + dictWord{134, 11, 1657}, + dictWord{5, 10, 143}, + dictWord{ + 5, + 10, + 769, + }, + dictWord{6, 10, 1760}, + dictWord{7, 10, 682}, + dictWord{7, 10, 1992}, + dictWord{136, 10, 736}, + dictWord{132, 0, 153}, + dictWord{135, 11, 127}, + dictWord{133, 0, 798}, + dictWord{132, 0, 587}, + dictWord{6, 0, 598}, + dictWord{7, 0, 42}, + dictWord{8, 0, 695}, + dictWord{10, 0, 212}, + dictWord{11, 0, 158}, + dictWord{ + 14, + 0, + 196, + }, + dictWord{145, 0, 85}, + dictWord{133, 10, 860}, + dictWord{6, 0, 1929}, + dictWord{134, 0, 1933}, + dictWord{5, 0, 957}, + dictWord{5, 0, 1008}, + dictWord{ + 9, + 0, + 577, + }, + dictWord{12, 0, 141}, + dictWord{6, 10, 422}, + dictWord{7, 10, 0}, + dictWord{7, 10, 1544}, + dictWord{8, 11, 364}, + dictWord{11, 10, 990}, + dictWord{ + 12, + 10, + 453, + }, + dictWord{13, 10, 47}, + dictWord{141, 10, 266}, + dictWord{134, 0, 1319}, + dictWord{4, 0, 129}, + dictWord{135, 0, 465}, + dictWord{7, 0, 470}, + dictWord{ + 7, + 0, + 1057, + }, + dictWord{7, 0, 1201}, + dictWord{9, 0, 755}, + dictWord{11, 0, 906}, + dictWord{140, 0, 527}, + dictWord{7, 0, 908}, + dictWord{146, 0, 7}, + dictWord{5, 0, 148}, + dictWord{136, 0, 450}, + dictWord{5, 10, 515}, + dictWord{137, 10, 131}, + dictWord{7, 10, 1605}, + dictWord{11, 10, 962}, + dictWord{146, 10, 139}, + dictWord{ + 132, + 10, + 646, + }, + dictWord{134, 0, 1166}, + dictWord{4, 10, 396}, + dictWord{7, 10, 728}, + dictWord{9, 10, 117}, + dictWord{13, 10, 202}, + dictWord{148, 10, 51}, + dictWord{ + 6, + 10, + 121, + }, + dictWord{6, 10, 124}, + dictWord{6, 10, 357}, + dictWord{7, 10, 1138}, + dictWord{7, 10, 1295}, + dictWord{8, 10, 162}, + dictWord{139, 10, 655}, + dictWord{14, 0, 374}, + dictWord{142, 11, 374}, + dictWord{138, 0, 253}, + dictWord{139, 0, 1003}, + dictWord{5, 11, 909}, + dictWord{9, 11, 849}, + dictWord{ + 138, + 11, + 805, + }, + dictWord{133, 10, 237}, + dictWord{7, 11, 525}, + dictWord{7, 11, 1579}, + dictWord{8, 11, 497}, + dictWord{136, 11, 573}, + dictWord{137, 0, 46}, + dictWord{ + 132, + 0, + 879, + }, + dictWord{134, 0, 806}, + dictWord{135, 0, 1868}, + dictWord{6, 0, 1837}, + dictWord{134, 0, 1846}, + dictWord{6, 0, 730}, + dictWord{134, 0, 881}, + dictWord{7, 0, 965}, + dictWord{7, 0, 1460}, + dictWord{7, 0, 1604}, + dictWord{7, 11, 193}, + dictWord{7, 11, 397}, + dictWord{7, 11, 1105}, + dictWord{8, 11, 124}, + dictWord{ + 8, + 11, + 619, + }, + dictWord{9, 11, 305}, + dictWord{10, 11, 264}, + dictWord{11, 11, 40}, + dictWord{12, 11, 349}, + dictWord{13, 11, 134}, + dictWord{13, 11, 295}, + dictWord{14, 11, 155}, + dictWord{15, 11, 120}, + dictWord{146, 11, 105}, + dictWord{136, 0, 506}, + dictWord{143, 0, 10}, + dictWord{4, 11, 262}, + dictWord{7, 11, 342}, + dictWord{7, 10, 571}, + dictWord{7, 10, 1877}, + dictWord{10, 10, 366}, + dictWord{141, 11, 23}, + dictWord{133, 11, 641}, + dictWord{10, 0, 22}, + dictWord{9, 10, 513}, + dictWord{10, 10, 39}, + dictWord{12, 10, 122}, + dictWord{140, 10, 187}, + dictWord{135, 11, 1431}, + dictWord{150, 11, 49}, + dictWord{4, 11, 99}, + dictWord{ + 6, + 11, + 250, + }, + dictWord{6, 11, 346}, + dictWord{8, 11, 127}, + dictWord{138, 11, 81}, + dictWord{6, 0, 2014}, + dictWord{8, 0, 928}, + dictWord{10, 0, 960}, + dictWord{10, 0, 979}, + dictWord{140, 0, 996}, + dictWord{134, 0, 296}, + dictWord{132, 11, 915}, + dictWord{5, 11, 75}, + dictWord{9, 11, 517}, + dictWord{10, 11, 470}, + dictWord{ + 12, + 11, + 155, + }, + dictWord{141, 11, 224}, + dictWord{137, 10, 873}, + dictWord{4, 0, 854}, + dictWord{140, 11, 18}, + dictWord{134, 0, 587}, + dictWord{7, 10, 107}, + dictWord{ + 7, + 10, + 838, + }, + dictWord{8, 10, 550}, + dictWord{138, 10, 401}, + dictWord{11, 0, 636}, + dictWord{15, 0, 145}, + dictWord{17, 0, 34}, + dictWord{19, 0, 50}, + dictWord{ + 23, + 0, + 20, + }, + dictWord{11, 10, 588}, + dictWord{11, 10, 864}, + dictWord{11, 10, 968}, + dictWord{143, 10, 160}, + dictWord{135, 11, 216}, + dictWord{7, 0, 982}, + dictWord{ + 10, + 0, + 32, + }, + dictWord{143, 0, 56}, + dictWord{133, 10, 768}, + dictWord{133, 11, 954}, + dictWord{6, 11, 304}, + dictWord{7, 11, 1114}, + dictWord{8, 11, 418}, + dictWord{ + 10, + 11, + 345, + }, + dictWord{11, 11, 341}, + dictWord{11, 11, 675}, + dictWord{141, 11, 40}, + dictWord{9, 11, 410}, + dictWord{139, 11, 425}, + dictWord{136, 0, 941}, + dictWord{5, 0, 435}, + dictWord{132, 10, 894}, + dictWord{5, 0, 85}, + dictWord{6, 0, 419}, + dictWord{7, 0, 134}, + dictWord{7, 0, 305}, + dictWord{7, 0, 361}, + dictWord{ + 7, + 0, + 1337, + }, + dictWord{8, 0, 71}, + dictWord{140, 0, 519}, + dictWord{140, 0, 688}, + dictWord{135, 0, 740}, + dictWord{5, 0, 691}, + dictWord{7, 0, 345}, + dictWord{9, 0, 94}, + dictWord{140, 0, 169}, + dictWord{5, 0, 183}, + dictWord{6, 0, 582}, + dictWord{10, 0, 679}, + dictWord{140, 0, 435}, + dictWord{134, 11, 14}, + dictWord{6, 0, 945}, + dictWord{135, 0, 511}, + dictWord{134, 11, 1708}, + dictWord{5, 11, 113}, + dictWord{6, 11, 243}, + dictWord{7, 11, 1865}, + dictWord{11, 11, 161}, + dictWord{16, 11, 37}, + dictWord{145, 11, 99}, + dictWord{132, 11, 274}, + dictWord{137, 0, 539}, + dictWord{7, 0, 1993}, + dictWord{8, 0, 684}, + dictWord{134, 10, 272}, + dictWord{ + 6, + 0, + 659, + }, + dictWord{134, 0, 982}, + dictWord{4, 10, 9}, + dictWord{5, 10, 128}, + dictWord{7, 10, 368}, + dictWord{11, 10, 480}, + dictWord{148, 10, 3}, + dictWord{ + 134, + 0, + 583, + }, + dictWord{132, 0, 803}, + dictWord{133, 0, 704}, + dictWord{4, 0, 179}, + dictWord{5, 0, 198}, + dictWord{133, 0, 697}, + dictWord{7, 0, 347}, + dictWord{7, 0, 971}, + dictWord{8, 0, 181}, + dictWord{10, 0, 711}, + dictWord{135, 11, 166}, + dictWord{136, 10, 682}, + dictWord{4, 10, 2}, + dictWord{7, 10, 545}, + dictWord{7, 10, 894}, + dictWord{136, 11, 521}, + dictWord{135, 0, 481}, + dictWord{132, 0, 243}, + dictWord{5, 0, 203}, + dictWord{7, 0, 19}, + dictWord{7, 0, 71}, + dictWord{7, 0, 113}, + dictWord{ + 10, + 0, + 405, + }, + dictWord{11, 0, 357}, + dictWord{142, 0, 240}, + dictWord{5, 11, 725}, + dictWord{5, 11, 727}, + dictWord{135, 11, 1811}, + dictWord{6, 0, 826}, + dictWord{ + 137, + 11, + 304, + }, + dictWord{7, 0, 1450}, + dictWord{139, 0, 99}, + dictWord{133, 11, 654}, + dictWord{134, 0, 492}, + dictWord{5, 0, 134}, + dictWord{6, 0, 408}, + dictWord{ + 6, + 0, + 495, + }, + dictWord{7, 0, 1593}, + dictWord{6, 11, 273}, + dictWord{10, 11, 188}, + dictWord{13, 11, 377}, + dictWord{146, 11, 77}, + dictWord{9, 10, 769}, + dictWord{ + 140, + 10, + 185, + }, + dictWord{135, 11, 410}, + dictWord{142, 0, 4}, + dictWord{4, 0, 665}, + dictWord{134, 11, 1785}, + dictWord{4, 0, 248}, + dictWord{7, 0, 137}, + dictWord{ + 137, + 0, + 349, + }, + dictWord{5, 10, 530}, + dictWord{142, 10, 113}, + dictWord{7, 0, 1270}, + dictWord{139, 0, 612}, + dictWord{132, 11, 780}, + dictWord{5, 0, 371}, + dictWord{135, 0, 563}, + dictWord{135, 0, 826}, + dictWord{6, 0, 1535}, + dictWord{23, 0, 21}, + dictWord{151, 0, 23}, + dictWord{4, 0, 374}, + dictWord{7, 0, 547}, + dictWord{ + 7, + 0, + 1700, + }, + dictWord{7, 0, 1833}, + dictWord{139, 0, 858}, + dictWord{133, 10, 556}, + dictWord{7, 11, 612}, + dictWord{8, 11, 545}, + dictWord{8, 11, 568}, + dictWord{ + 8, + 11, + 642, + }, + dictWord{9, 11, 717}, + dictWord{10, 11, 541}, + dictWord{10, 11, 763}, + dictWord{11, 11, 449}, + dictWord{12, 11, 489}, + dictWord{13, 11, 153}, + dictWord{ + 13, + 11, + 296, + }, + dictWord{14, 11, 138}, + dictWord{14, 11, 392}, + dictWord{15, 11, 50}, + dictWord{16, 11, 6}, + dictWord{16, 11, 12}, + dictWord{148, 11, 9}, + dictWord{ + 9, + 0, + 311, + }, + dictWord{141, 0, 42}, + dictWord{8, 10, 16}, + dictWord{140, 10, 568}, + dictWord{6, 0, 1968}, + dictWord{6, 0, 2027}, + dictWord{138, 0, 991}, + dictWord{ + 6, + 0, + 1647, + }, + dictWord{7, 0, 1552}, + dictWord{7, 0, 2010}, + dictWord{9, 0, 494}, + dictWord{137, 0, 509}, + dictWord{133, 11, 948}, + dictWord{6, 10, 186}, + dictWord{ + 137, + 10, + 426, + }, + dictWord{134, 0, 769}, + dictWord{134, 0, 642}, + dictWord{132, 10, 585}, + dictWord{6, 0, 123}, + dictWord{7, 0, 214}, + dictWord{9, 0, 728}, + dictWord{ + 10, + 0, + 157, + }, + dictWord{11, 0, 346}, + dictWord{11, 0, 662}, + dictWord{143, 0, 106}, + dictWord{142, 11, 381}, + dictWord{135, 0, 1435}, + dictWord{4, 11, 532}, + dictWord{ + 5, + 11, + 706, + }, + dictWord{135, 11, 662}, + dictWord{5, 11, 837}, + dictWord{134, 11, 1651}, + dictWord{4, 10, 93}, + dictWord{5, 10, 252}, + dictWord{6, 10, 229}, + dictWord{ + 7, + 10, + 291, + }, + dictWord{9, 10, 550}, + dictWord{139, 10, 644}, + dictWord{148, 0, 79}, + dictWord{137, 10, 749}, + dictWord{134, 0, 1425}, + dictWord{ + 137, + 10, + 162, + }, + dictWord{4, 11, 362}, + dictWord{7, 11, 52}, + dictWord{7, 11, 303}, + dictWord{140, 11, 166}, + dictWord{132, 10, 381}, + dictWord{4, 11, 330}, + dictWord{ + 7, + 11, + 933, + }, + dictWord{7, 11, 2012}, + dictWord{136, 11, 292}, + dictWord{135, 11, 767}, + dictWord{4, 0, 707}, + dictWord{5, 0, 588}, + dictWord{6, 0, 393}, + dictWord{ + 13, + 0, + 106, + }, + dictWord{18, 0, 49}, + dictWord{147, 0, 41}, + dictWord{6, 0, 211}, + dictWord{7, 0, 1690}, + dictWord{11, 0, 486}, + dictWord{140, 0, 369}, + dictWord{ + 137, + 11, + 883, + }, + dictWord{4, 11, 703}, + dictWord{135, 11, 207}, + dictWord{4, 0, 187}, + dictWord{5, 0, 184}, + dictWord{5, 0, 690}, + dictWord{7, 0, 1869}, + dictWord{10, 0, 756}, + dictWord{139, 0, 783}, + dictWord{132, 11, 571}, + dictWord{134, 0, 1382}, + dictWord{5, 0, 175}, + dictWord{6, 10, 77}, + dictWord{6, 10, 157}, + dictWord{7, 10, 974}, + dictWord{7, 10, 1301}, + dictWord{7, 10, 1339}, + dictWord{7, 10, 1490}, + dictWord{7, 10, 1873}, + dictWord{137, 10, 628}, + dictWord{134, 0, 1493}, + dictWord{ + 5, + 11, + 873, + }, + dictWord{133, 11, 960}, + dictWord{134, 0, 1007}, + dictWord{12, 11, 93}, + dictWord{12, 11, 501}, + dictWord{13, 11, 362}, + dictWord{14, 11, 151}, + dictWord{15, 11, 40}, + dictWord{15, 11, 59}, + dictWord{16, 11, 46}, + dictWord{17, 11, 25}, + dictWord{18, 11, 14}, + dictWord{18, 11, 134}, + dictWord{19, 11, 25}, + dictWord{ + 19, + 11, + 69, + }, + dictWord{20, 11, 16}, + dictWord{20, 11, 19}, + dictWord{20, 11, 66}, + dictWord{21, 11, 23}, + dictWord{21, 11, 25}, + dictWord{150, 11, 42}, + dictWord{ + 11, + 10, + 919, + }, + dictWord{141, 10, 409}, + dictWord{134, 0, 219}, + dictWord{5, 0, 582}, + dictWord{6, 0, 1646}, + dictWord{7, 0, 99}, + dictWord{7, 0, 1962}, + dictWord{ + 7, + 0, + 1986, + }, + dictWord{8, 0, 515}, + dictWord{8, 0, 773}, + dictWord{9, 0, 23}, + dictWord{9, 0, 491}, + dictWord{12, 0, 620}, + dictWord{142, 0, 93}, + dictWord{133, 0, 851}, + dictWord{5, 11, 33}, + dictWord{134, 11, 470}, + dictWord{135, 11, 1291}, + dictWord{134, 0, 1278}, + dictWord{135, 11, 1882}, + dictWord{135, 10, 1489}, + dictWord{132, 0, 1000}, + dictWord{138, 0, 982}, + dictWord{8, 0, 762}, + dictWord{8, 0, 812}, + dictWord{137, 0, 910}, + dictWord{6, 11, 47}, + dictWord{7, 11, 90}, + dictWord{ + 7, + 11, + 664, + }, + dictWord{7, 11, 830}, + dictWord{7, 11, 1380}, + dictWord{7, 11, 2025}, + dictWord{8, 11, 448}, + dictWord{136, 11, 828}, + dictWord{4, 0, 98}, + dictWord{ + 4, + 0, + 940, + }, + dictWord{6, 0, 1819}, + dictWord{6, 0, 1834}, + dictWord{6, 0, 1841}, + dictWord{7, 0, 1365}, + dictWord{8, 0, 859}, + dictWord{8, 0, 897}, + dictWord{8, 0, 918}, + dictWord{9, 0, 422}, + dictWord{9, 0, 670}, + dictWord{10, 0, 775}, + dictWord{10, 0, 894}, + dictWord{10, 0, 909}, + dictWord{10, 0, 910}, + dictWord{10, 0, 935}, + dictWord{ + 11, + 0, + 210, + }, + dictWord{12, 0, 750}, + dictWord{12, 0, 755}, + dictWord{13, 0, 26}, + dictWord{13, 0, 457}, + dictWord{13, 0, 476}, + dictWord{16, 0, 100}, + dictWord{16, 0, 109}, + dictWord{18, 0, 173}, + dictWord{18, 0, 175}, + dictWord{8, 10, 398}, + dictWord{9, 10, 681}, + dictWord{139, 10, 632}, + dictWord{9, 11, 417}, + dictWord{ + 137, + 11, + 493, + }, + dictWord{136, 10, 645}, + dictWord{138, 0, 906}, + dictWord{134, 0, 1730}, + dictWord{134, 10, 20}, + dictWord{133, 11, 1019}, + dictWord{134, 0, 1185}, + dictWord{10, 0, 40}, + dictWord{136, 10, 769}, + dictWord{9, 0, 147}, + dictWord{134, 11, 208}, + dictWord{140, 0, 650}, + dictWord{5, 0, 209}, + dictWord{6, 0, 30}, + dictWord{11, 0, 56}, + dictWord{139, 0, 305}, + dictWord{132, 0, 553}, + dictWord{138, 11, 344}, + dictWord{6, 11, 68}, + dictWord{7, 11, 398}, + dictWord{7, 11, 448}, + dictWord{ + 7, + 11, + 1629, + }, + dictWord{7, 11, 1813}, + dictWord{8, 11, 387}, + dictWord{8, 11, 442}, + dictWord{9, 11, 710}, + dictWord{10, 11, 282}, + dictWord{138, 11, 722}, + dictWord{5, 0, 597}, + dictWord{14, 0, 20}, + dictWord{142, 11, 20}, + dictWord{135, 0, 1614}, + dictWord{135, 10, 1757}, + dictWord{4, 0, 150}, + dictWord{5, 0, 303}, + dictWord{6, 0, 327}, + dictWord{135, 10, 937}, + dictWord{16, 0, 49}, + dictWord{7, 10, 1652}, + dictWord{144, 11, 49}, + dictWord{8, 0, 192}, + dictWord{10, 0, 78}, + dictWord{ + 141, + 0, + 359, + }, + dictWord{135, 0, 786}, + dictWord{143, 0, 134}, + dictWord{6, 0, 1638}, + dictWord{7, 0, 79}, + dictWord{7, 0, 496}, + dictWord{9, 0, 138}, + dictWord{ + 10, + 0, + 336, + }, + dictWord{11, 0, 12}, + dictWord{12, 0, 412}, + dictWord{12, 0, 440}, + dictWord{142, 0, 305}, + dictWord{136, 11, 491}, + dictWord{4, 10, 579}, + dictWord{ + 5, + 10, + 226, + }, + dictWord{5, 10, 323}, + dictWord{135, 10, 960}, + dictWord{7, 0, 204}, + dictWord{7, 0, 415}, + dictWord{8, 0, 42}, + dictWord{10, 0, 85}, + dictWord{139, 0, 564}, + dictWord{132, 0, 614}, + dictWord{4, 11, 403}, + dictWord{5, 11, 441}, + dictWord{7, 11, 450}, + dictWord{11, 11, 101}, + dictWord{12, 11, 193}, + dictWord{141, 11, 430}, + dictWord{135, 11, 1927}, + dictWord{135, 11, 1330}, + dictWord{4, 0, 3}, + dictWord{5, 0, 247}, + dictWord{5, 0, 644}, + dictWord{7, 0, 744}, + dictWord{7, 0, 1207}, + dictWord{7, 0, 1225}, + dictWord{7, 0, 1909}, + dictWord{146, 0, 147}, + dictWord{136, 0, 942}, + dictWord{4, 0, 1019}, + dictWord{134, 0, 2023}, + dictWord{5, 11, 679}, + dictWord{133, 10, 973}, + dictWord{5, 0, 285}, + dictWord{9, 0, 67}, + dictWord{13, 0, 473}, + dictWord{143, 0, 82}, + dictWord{7, 11, 328}, + dictWord{137, 11, 326}, + dictWord{151, 0, 8}, + dictWord{6, 10, 135}, + dictWord{135, 10, 1176}, + dictWord{135, 11, 1128}, + dictWord{134, 0, 1309}, + dictWord{135, 11, 1796}, + dictWord{ + 135, + 10, + 314, + }, + dictWord{4, 11, 574}, + dictWord{7, 11, 350}, + dictWord{7, 11, 1024}, + dictWord{8, 11, 338}, + dictWord{9, 11, 677}, + dictWord{10, 11, 808}, + dictWord{ + 139, + 11, + 508, + }, + dictWord{7, 11, 818}, + dictWord{17, 11, 14}, + dictWord{17, 11, 45}, + dictWord{18, 11, 75}, + dictWord{148, 11, 18}, + dictWord{146, 10, 4}, + dictWord{ + 135, + 11, + 1081, + }, + dictWord{4, 0, 29}, + dictWord{6, 0, 532}, + dictWord{7, 0, 1628}, + dictWord{7, 0, 1648}, + dictWord{9, 0, 350}, + dictWord{10, 0, 433}, + dictWord{11, 0, 97}, + dictWord{11, 0, 557}, + dictWord{11, 0, 745}, + dictWord{12, 0, 289}, + dictWord{12, 0, 335}, + dictWord{12, 0, 348}, + dictWord{12, 0, 606}, + dictWord{13, 0, 116}, + dictWord{13, 0, 233}, + dictWord{13, 0, 466}, + dictWord{14, 0, 181}, + dictWord{14, 0, 209}, + dictWord{14, 0, 232}, + dictWord{14, 0, 236}, + dictWord{14, 0, 300}, + dictWord{ + 16, + 0, + 41, + }, + dictWord{148, 0, 97}, + dictWord{7, 0, 318}, + dictWord{6, 10, 281}, + dictWord{8, 10, 282}, + dictWord{8, 10, 480}, + dictWord{8, 10, 499}, + dictWord{9, 10, 198}, + dictWord{10, 10, 143}, + dictWord{10, 10, 169}, + dictWord{10, 10, 211}, + dictWord{10, 10, 417}, + dictWord{10, 10, 574}, + dictWord{11, 10, 147}, + dictWord{ + 11, + 10, + 395, + }, + dictWord{12, 10, 75}, + dictWord{12, 10, 407}, + dictWord{12, 10, 608}, + dictWord{13, 10, 500}, + dictWord{142, 10, 251}, + dictWord{135, 11, 1676}, + dictWord{135, 11, 2037}, + dictWord{135, 0, 1692}, + dictWord{5, 0, 501}, + dictWord{7, 0, 1704}, + dictWord{9, 0, 553}, + dictWord{11, 0, 520}, + dictWord{12, 0, 557}, + dictWord{141, 0, 249}, + dictWord{6, 0, 1527}, + dictWord{14, 0, 324}, + dictWord{15, 0, 55}, + dictWord{15, 0, 80}, + dictWord{14, 11, 324}, + dictWord{15, 11, 55}, + dictWord{143, 11, 80}, + dictWord{135, 10, 1776}, + dictWord{8, 0, 988}, + dictWord{137, 11, 297}, + dictWord{132, 10, 419}, + dictWord{142, 0, 223}, + dictWord{ + 139, + 11, + 234, + }, + dictWord{7, 0, 1123}, + dictWord{12, 0, 508}, + dictWord{14, 0, 102}, + dictWord{14, 0, 226}, + dictWord{144, 0, 57}, + dictWord{4, 10, 138}, + dictWord{ + 7, + 10, + 1012, + }, + dictWord{7, 10, 1280}, + dictWord{137, 10, 76}, + dictWord{7, 0, 1764}, + dictWord{5, 10, 29}, + dictWord{140, 10, 638}, + dictWord{134, 0, 2015}, + dictWord{134, 0, 1599}, + dictWord{138, 11, 56}, + dictWord{6, 11, 306}, + dictWord{7, 11, 1140}, + dictWord{7, 11, 1340}, + dictWord{8, 11, 133}, + dictWord{ + 138, + 11, + 449, + }, + dictWord{139, 11, 1011}, + dictWord{6, 10, 1710}, + dictWord{135, 10, 2038}, + dictWord{7, 11, 1763}, + dictWord{140, 11, 310}, + dictWord{6, 0, 129}, + dictWord{4, 10, 17}, + dictWord{5, 10, 23}, + dictWord{7, 10, 995}, + dictWord{11, 10, 383}, + dictWord{11, 10, 437}, + dictWord{12, 10, 460}, + dictWord{140, 10, 532}, + dictWord{5, 11, 329}, + dictWord{136, 11, 260}, + dictWord{133, 10, 862}, + dictWord{132, 0, 534}, + dictWord{6, 0, 811}, + dictWord{135, 0, 626}, + dictWord{ + 132, + 11, + 657, + }, + dictWord{4, 0, 25}, + dictWord{5, 0, 60}, + dictWord{6, 0, 504}, + dictWord{7, 0, 614}, + dictWord{7, 0, 1155}, + dictWord{12, 0, 0}, + dictWord{152, 11, 7}, + dictWord{ + 7, + 0, + 1248, + }, + dictWord{11, 0, 621}, + dictWord{139, 0, 702}, + dictWord{137, 0, 321}, + dictWord{8, 10, 70}, + dictWord{12, 10, 171}, + dictWord{141, 10, 272}, + dictWord{ + 10, + 10, + 233, + }, + dictWord{139, 10, 76}, + dictWord{4, 0, 379}, + dictWord{7, 0, 1397}, + dictWord{134, 10, 442}, + dictWord{5, 11, 66}, + dictWord{7, 11, 1896}, + dictWord{ + 136, + 11, + 288, + }, + dictWord{134, 11, 1643}, + dictWord{134, 10, 1709}, + dictWord{4, 11, 21}, + dictWord{5, 11, 91}, + dictWord{5, 11, 570}, + dictWord{5, 11, 648}, + dictWord{5, 11, 750}, + dictWord{5, 11, 781}, + dictWord{6, 11, 54}, + dictWord{6, 11, 112}, + dictWord{6, 11, 402}, + dictWord{6, 11, 1732}, + dictWord{7, 11, 315}, + dictWord{ + 7, + 11, + 749, + }, + dictWord{7, 11, 1347}, + dictWord{7, 11, 1900}, + dictWord{9, 11, 78}, + dictWord{9, 11, 508}, + dictWord{10, 11, 611}, + dictWord{11, 11, 510}, + dictWord{ + 11, + 11, + 728, + }, + dictWord{13, 11, 36}, + dictWord{14, 11, 39}, + dictWord{16, 11, 83}, + dictWord{17, 11, 124}, + dictWord{148, 11, 30}, + dictWord{4, 0, 118}, + dictWord{ + 6, + 0, + 274, + }, + dictWord{6, 0, 361}, + dictWord{7, 0, 75}, + dictWord{141, 0, 441}, + dictWord{10, 11, 322}, + dictWord{10, 11, 719}, + dictWord{139, 11, 407}, + dictWord{ + 147, + 10, + 119, + }, + dictWord{12, 11, 549}, + dictWord{14, 11, 67}, + dictWord{147, 11, 60}, + dictWord{11, 10, 69}, + dictWord{12, 10, 105}, + dictWord{12, 10, 117}, + dictWord{13, 10, 213}, + dictWord{14, 10, 13}, + dictWord{14, 10, 62}, + dictWord{14, 10, 177}, + dictWord{14, 10, 421}, + dictWord{15, 10, 19}, + dictWord{146, 10, 141}, + dictWord{9, 0, 841}, + dictWord{137, 10, 309}, + dictWord{7, 10, 608}, + dictWord{7, 10, 976}, + dictWord{8, 11, 125}, + dictWord{8, 11, 369}, + dictWord{8, 11, 524}, + dictWord{9, 10, 146}, + dictWord{10, 10, 206}, + dictWord{10, 11, 486}, + dictWord{10, 10, 596}, + dictWord{11, 11, 13}, + dictWord{11, 11, 381}, + dictWord{11, 11, 736}, + dictWord{11, 11, 766}, + dictWord{11, 11, 845}, + dictWord{13, 11, 114}, + dictWord{13, 10, 218}, + dictWord{13, 11, 292}, + dictWord{14, 11, 47}, + dictWord{ + 142, + 10, + 153, + }, + dictWord{12, 0, 693}, + dictWord{135, 11, 759}, + dictWord{5, 0, 314}, + dictWord{6, 0, 221}, + dictWord{7, 0, 419}, + dictWord{10, 0, 650}, + dictWord{11, 0, 396}, + dictWord{12, 0, 156}, + dictWord{13, 0, 369}, + dictWord{14, 0, 333}, + dictWord{145, 0, 47}, + dictWord{6, 11, 1684}, + dictWord{6, 11, 1731}, + dictWord{7, 11, 356}, + dictWord{7, 11, 1932}, + dictWord{8, 11, 54}, + dictWord{8, 11, 221}, + dictWord{9, 11, 225}, + dictWord{9, 11, 356}, + dictWord{10, 11, 77}, + dictWord{10, 11, 446}, + dictWord{10, 11, 731}, + dictWord{12, 11, 404}, + dictWord{141, 11, 491}, + dictWord{132, 11, 375}, + dictWord{4, 10, 518}, + dictWord{135, 10, 1136}, + dictWord{ + 4, + 0, + 913, + }, + dictWord{4, 11, 411}, + dictWord{11, 11, 643}, + dictWord{140, 11, 115}, + dictWord{4, 11, 80}, + dictWord{133, 11, 44}, + dictWord{8, 10, 689}, + dictWord{ + 137, + 10, + 863, + }, + dictWord{138, 0, 880}, + dictWord{4, 10, 18}, + dictWord{7, 10, 145}, + dictWord{7, 10, 444}, + dictWord{7, 10, 1278}, + dictWord{8, 10, 49}, + dictWord{ + 8, + 10, + 400, + }, + dictWord{9, 10, 71}, + dictWord{9, 10, 250}, + dictWord{10, 10, 459}, + dictWord{12, 10, 160}, + dictWord{144, 10, 24}, + dictWord{136, 0, 475}, + dictWord{ + 5, + 0, + 1016, + }, + dictWord{5, 11, 299}, + dictWord{135, 11, 1083}, + dictWord{7, 0, 602}, + dictWord{8, 0, 179}, + dictWord{10, 0, 781}, + dictWord{140, 0, 126}, + dictWord{ + 6, + 0, + 329, + }, + dictWord{138, 0, 111}, + dictWord{135, 0, 1864}, + dictWord{4, 11, 219}, + dictWord{7, 11, 1761}, + dictWord{137, 11, 86}, + dictWord{6, 0, 1888}, + dictWord{ + 6, + 0, + 1892, + }, + dictWord{6, 0, 1901}, + dictWord{6, 0, 1904}, + dictWord{9, 0, 953}, + dictWord{9, 0, 985}, + dictWord{9, 0, 991}, + dictWord{9, 0, 1001}, + dictWord{12, 0, 818}, + dictWord{12, 0, 846}, + dictWord{12, 0, 847}, + dictWord{12, 0, 861}, + dictWord{12, 0, 862}, + dictWord{12, 0, 873}, + dictWord{12, 0, 875}, + dictWord{12, 0, 877}, + dictWord{12, 0, 879}, + dictWord{12, 0, 881}, + dictWord{12, 0, 884}, + dictWord{12, 0, 903}, + dictWord{12, 0, 915}, + dictWord{12, 0, 926}, + dictWord{12, 0, 939}, + dictWord{ + 15, + 0, + 182, + }, + dictWord{15, 0, 219}, + dictWord{15, 0, 255}, + dictWord{18, 0, 191}, + dictWord{18, 0, 209}, + dictWord{18, 0, 211}, + dictWord{149, 0, 41}, + dictWord{ + 5, + 11, + 328, + }, + dictWord{135, 11, 918}, + dictWord{137, 0, 780}, + dictWord{12, 0, 82}, + dictWord{143, 0, 36}, + dictWord{133, 10, 1010}, + dictWord{5, 0, 821}, + dictWord{ + 134, + 0, + 1687, + }, + dictWord{133, 11, 514}, + dictWord{132, 0, 956}, + dictWord{134, 0, 1180}, + dictWord{10, 0, 112}, + dictWord{5, 10, 87}, + dictWord{7, 10, 313}, + dictWord{ + 7, + 10, + 1103, + }, + dictWord{10, 10, 582}, + dictWord{11, 10, 389}, + dictWord{11, 10, 813}, + dictWord{12, 10, 385}, + dictWord{13, 10, 286}, + dictWord{14, 10, 124}, + dictWord{146, 10, 108}, + dictWord{5, 0, 71}, + dictWord{7, 0, 1407}, + dictWord{9, 0, 704}, + dictWord{10, 0, 261}, + dictWord{10, 0, 619}, + dictWord{11, 0, 547}, + dictWord{11, 0, 619}, + dictWord{143, 0, 157}, + dictWord{4, 0, 531}, + dictWord{5, 0, 455}, + dictWord{5, 11, 301}, + dictWord{6, 11, 571}, + dictWord{14, 11, 49}, + dictWord{ + 146, + 11, + 102, + }, + dictWord{132, 10, 267}, + dictWord{6, 0, 385}, + dictWord{7, 0, 2008}, + dictWord{9, 0, 337}, + dictWord{138, 0, 517}, + dictWord{133, 11, 726}, + dictWord{133, 11, 364}, + dictWord{4, 11, 76}, + dictWord{7, 11, 1550}, + dictWord{9, 11, 306}, + dictWord{9, 11, 430}, + dictWord{9, 11, 663}, + dictWord{10, 11, 683}, + dictWord{11, 11, 427}, + dictWord{11, 11, 753}, + dictWord{12, 11, 334}, + dictWord{12, 11, 442}, + dictWord{14, 11, 258}, + dictWord{14, 11, 366}, + dictWord{ + 143, + 11, + 131, + }, + dictWord{6, 0, 1865}, + dictWord{6, 0, 1879}, + dictWord{6, 0, 1881}, + dictWord{6, 0, 1894}, + dictWord{6, 0, 1908}, + dictWord{9, 0, 915}, + dictWord{9, 0, 926}, + dictWord{9, 0, 940}, + dictWord{9, 0, 943}, + dictWord{9, 0, 966}, + dictWord{9, 0, 980}, + dictWord{9, 0, 989}, + dictWord{9, 0, 1005}, + dictWord{9, 0, 1010}, + dictWord{ + 12, + 0, + 813, + }, + dictWord{12, 0, 817}, + dictWord{12, 0, 840}, + dictWord{12, 0, 843}, + dictWord{12, 0, 855}, + dictWord{12, 0, 864}, + dictWord{12, 0, 871}, + dictWord{12, 0, 872}, + dictWord{12, 0, 899}, + dictWord{12, 0, 905}, + dictWord{12, 0, 924}, + dictWord{15, 0, 171}, + dictWord{15, 0, 181}, + dictWord{15, 0, 224}, + dictWord{15, 0, 235}, + dictWord{15, 0, 251}, + dictWord{146, 0, 184}, + dictWord{137, 11, 52}, + dictWord{5, 0, 16}, + dictWord{6, 0, 86}, + dictWord{6, 0, 603}, + dictWord{7, 0, 292}, + dictWord{7, 0, 561}, + dictWord{8, 0, 257}, + dictWord{8, 0, 382}, + dictWord{9, 0, 721}, + dictWord{9, 0, 778}, + dictWord{11, 0, 581}, + dictWord{140, 0, 466}, + dictWord{4, 0, 486}, + dictWord{ + 5, + 0, + 491, + }, + dictWord{135, 10, 1121}, + dictWord{4, 0, 72}, + dictWord{6, 0, 265}, + dictWord{135, 0, 1300}, + dictWord{135, 11, 1183}, + dictWord{10, 10, 249}, + dictWord{139, 10, 209}, + dictWord{132, 10, 561}, + dictWord{137, 11, 519}, + dictWord{4, 11, 656}, + dictWord{4, 10, 760}, + dictWord{135, 11, 779}, + dictWord{ + 9, + 10, + 154, + }, + dictWord{140, 10, 485}, + dictWord{135, 11, 1793}, + dictWord{135, 11, 144}, + dictWord{136, 10, 255}, + dictWord{133, 0, 621}, + dictWord{4, 10, 368}, + dictWord{135, 10, 641}, + dictWord{135, 11, 1373}, + dictWord{7, 11, 554}, + dictWord{7, 11, 605}, + dictWord{141, 11, 10}, + dictWord{137, 0, 234}, + dictWord{ + 5, + 0, + 815, + }, + dictWord{6, 0, 1688}, + dictWord{134, 0, 1755}, + dictWord{5, 11, 838}, + dictWord{5, 11, 841}, + dictWord{134, 11, 1649}, + dictWord{7, 0, 1987}, + dictWord{ + 7, + 0, + 2040, + }, + dictWord{136, 0, 743}, + dictWord{133, 11, 1012}, + dictWord{6, 0, 197}, + dictWord{136, 0, 205}, + dictWord{6, 0, 314}, + dictWord{134, 11, 314}, + dictWord{144, 11, 53}, + dictWord{6, 11, 251}, + dictWord{7, 11, 365}, + dictWord{7, 11, 1357}, + dictWord{7, 11, 1497}, + dictWord{8, 11, 154}, + dictWord{141, 11, 281}, + dictWord{133, 11, 340}, + dictWord{6, 0, 452}, + dictWord{7, 0, 312}, + dictWord{138, 0, 219}, + dictWord{138, 0, 589}, + dictWord{4, 0, 333}, + dictWord{9, 0, 176}, + dictWord{12, 0, 353}, + dictWord{141, 0, 187}, + dictWord{9, 10, 92}, + dictWord{147, 10, 91}, + dictWord{134, 0, 1110}, + dictWord{11, 0, 47}, + dictWord{139, 11, 495}, + dictWord{6, 10, 525}, + dictWord{8, 10, 806}, + dictWord{9, 10, 876}, + dictWord{140, 10, 284}, + dictWord{8, 11, 261}, + dictWord{9, 11, 144}, + dictWord{9, 11, 466}, + dictWord{10, 11, 370}, + dictWord{12, 11, 470}, + dictWord{13, 11, 144}, + dictWord{142, 11, 348}, + dictWord{137, 11, 897}, + dictWord{8, 0, 863}, + dictWord{8, 0, 864}, + dictWord{8, 0, 868}, + dictWord{8, 0, 884}, + dictWord{10, 0, 866}, + dictWord{10, 0, 868}, + dictWord{10, 0, 873}, + dictWord{10, 0, 911}, + dictWord{10, 0, 912}, + dictWord{ + 10, + 0, + 944, + }, + dictWord{12, 0, 727}, + dictWord{6, 11, 248}, + dictWord{9, 11, 546}, + dictWord{10, 11, 535}, + dictWord{11, 11, 681}, + dictWord{141, 11, 135}, + dictWord{ + 6, + 0, + 300, + }, + dictWord{135, 0, 1515}, + dictWord{134, 0, 1237}, + dictWord{139, 10, 958}, + dictWord{133, 10, 594}, + dictWord{140, 11, 250}, + dictWord{ + 134, + 0, + 1685, + }, + dictWord{134, 11, 567}, + dictWord{7, 0, 135}, + dictWord{8, 0, 7}, + dictWord{8, 0, 62}, + dictWord{9, 0, 243}, + dictWord{10, 0, 658}, + dictWord{10, 0, 697}, + dictWord{11, 0, 456}, + dictWord{139, 0, 756}, + dictWord{9, 0, 395}, + dictWord{138, 0, 79}, + dictWord{6, 10, 1641}, + dictWord{136, 10, 820}, + dictWord{4, 10, 302}, + dictWord{135, 10, 1766}, + dictWord{134, 11, 174}, + dictWord{135, 10, 1313}, + dictWord{135, 0, 631}, + dictWord{134, 10, 1674}, + dictWord{134, 11, 395}, + dictWord{138, 0, 835}, + dictWord{7, 0, 406}, + dictWord{7, 0, 459}, + dictWord{8, 0, 606}, + dictWord{139, 0, 726}, + dictWord{134, 11, 617}, + dictWord{134, 0, 979}, + dictWord{ + 6, + 10, + 389, + }, + dictWord{7, 10, 149}, + dictWord{9, 10, 142}, + dictWord{138, 10, 94}, + dictWord{5, 11, 878}, + dictWord{133, 11, 972}, + dictWord{6, 10, 8}, + dictWord{ + 7, + 10, + 1881, + }, + dictWord{8, 10, 91}, + dictWord{136, 11, 511}, + dictWord{133, 0, 612}, + dictWord{132, 11, 351}, + dictWord{4, 0, 372}, + dictWord{7, 0, 482}, + dictWord{ + 8, + 0, + 158, + }, + dictWord{9, 0, 602}, + dictWord{9, 0, 615}, + dictWord{10, 0, 245}, + dictWord{10, 0, 678}, + dictWord{10, 0, 744}, + dictWord{11, 0, 248}, + dictWord{ + 139, + 0, + 806, + }, + dictWord{5, 0, 854}, + dictWord{135, 0, 1991}, + dictWord{132, 11, 286}, + dictWord{135, 11, 344}, + dictWord{7, 11, 438}, + dictWord{7, 11, 627}, + dictWord{ + 7, + 11, + 1516, + }, + dictWord{8, 11, 40}, + dictWord{9, 11, 56}, + dictWord{9, 11, 294}, + dictWord{10, 11, 30}, + dictWord{10, 11, 259}, + dictWord{11, 11, 969}, + dictWord{ + 146, + 11, + 148, + }, + dictWord{135, 0, 1492}, + dictWord{5, 11, 259}, + dictWord{7, 11, 414}, + dictWord{7, 11, 854}, + dictWord{142, 11, 107}, + dictWord{135, 10, 1746}, + dictWord{6, 0, 833}, + dictWord{134, 0, 998}, + dictWord{135, 10, 24}, + dictWord{6, 0, 750}, + dictWord{135, 0, 1739}, + dictWord{4, 10, 503}, + dictWord{ + 135, + 10, + 1661, + }, + dictWord{5, 10, 130}, + dictWord{7, 10, 1314}, + dictWord{9, 10, 610}, + dictWord{10, 10, 718}, + dictWord{11, 10, 601}, + dictWord{11, 10, 819}, + dictWord{ + 11, + 10, + 946, + }, + dictWord{140, 10, 536}, + dictWord{10, 10, 149}, + dictWord{11, 10, 280}, + dictWord{142, 10, 336}, + dictWord{132, 11, 738}, + dictWord{ + 135, + 10, + 1946, + }, + dictWord{5, 0, 195}, + dictWord{135, 0, 1685}, + dictWord{7, 0, 1997}, + dictWord{8, 0, 730}, + dictWord{139, 0, 1006}, + dictWord{151, 11, 17}, + dictWord{ + 133, + 11, + 866, + }, + dictWord{14, 0, 463}, + dictWord{14, 0, 470}, + dictWord{150, 0, 61}, + dictWord{5, 0, 751}, + dictWord{8, 0, 266}, + dictWord{11, 0, 578}, + dictWord{ + 4, + 10, + 392, + }, + dictWord{135, 10, 1597}, + dictWord{5, 10, 433}, + dictWord{9, 10, 633}, + dictWord{139, 10, 629}, + dictWord{135, 0, 821}, + dictWord{6, 0, 715}, + dictWord{ + 134, + 0, + 1325, + }, + dictWord{133, 11, 116}, + dictWord{6, 0, 868}, + dictWord{132, 11, 457}, + dictWord{134, 0, 959}, + dictWord{6, 10, 234}, + dictWord{138, 11, 199}, + dictWord{7, 0, 1053}, + dictWord{7, 10, 1950}, + dictWord{8, 10, 680}, + dictWord{11, 10, 817}, + dictWord{147, 10, 88}, + dictWord{7, 10, 1222}, + dictWord{ + 138, + 10, + 386, + }, + dictWord{5, 0, 950}, + dictWord{5, 0, 994}, + dictWord{6, 0, 351}, + dictWord{134, 0, 1124}, + dictWord{134, 0, 1081}, + dictWord{7, 0, 1595}, + dictWord{6, 10, 5}, + dictWord{11, 10, 249}, + dictWord{12, 10, 313}, + dictWord{16, 10, 66}, + dictWord{145, 10, 26}, + dictWord{148, 0, 59}, + dictWord{5, 11, 527}, + dictWord{6, 11, 189}, + dictWord{135, 11, 859}, + dictWord{5, 10, 963}, + dictWord{6, 10, 1773}, + dictWord{11, 11, 104}, + dictWord{11, 11, 554}, + dictWord{15, 11, 60}, + dictWord{ + 143, + 11, + 125, + }, + dictWord{135, 0, 47}, + dictWord{137, 0, 684}, + dictWord{134, 11, 116}, + dictWord{134, 0, 1606}, + dictWord{134, 0, 777}, + dictWord{7, 0, 1020}, + dictWord{ + 8, + 10, + 509, + }, + dictWord{136, 10, 792}, + dictWord{135, 0, 1094}, + dictWord{132, 0, 350}, + dictWord{133, 11, 487}, + dictWord{4, 11, 86}, + dictWord{5, 11, 667}, + dictWord{5, 11, 753}, + dictWord{6, 11, 316}, + dictWord{6, 11, 455}, + dictWord{135, 11, 946}, + dictWord{7, 0, 1812}, + dictWord{13, 0, 259}, + dictWord{13, 0, 356}, + dictWord{14, 0, 242}, + dictWord{147, 0, 114}, + dictWord{132, 10, 931}, + dictWord{133, 0, 967}, + dictWord{4, 0, 473}, + dictWord{7, 0, 623}, + dictWord{8, 0, 808}, + dictWord{ + 9, + 0, + 871, + }, + dictWord{9, 0, 893}, + dictWord{11, 0, 38}, + dictWord{11, 0, 431}, + dictWord{12, 0, 112}, + dictWord{12, 0, 217}, + dictWord{12, 0, 243}, + dictWord{12, 0, 562}, + dictWord{12, 0, 663}, + dictWord{12, 0, 683}, + dictWord{13, 0, 141}, + dictWord{13, 0, 197}, + dictWord{13, 0, 227}, + dictWord{13, 0, 406}, + dictWord{13, 0, 487}, + dictWord{14, 0, 156}, + dictWord{14, 0, 203}, + dictWord{14, 0, 224}, + dictWord{14, 0, 256}, + dictWord{18, 0, 58}, + dictWord{150, 0, 0}, + dictWord{138, 0, 286}, + dictWord{ + 7, + 10, + 943, + }, + dictWord{139, 10, 614}, + dictWord{135, 10, 1837}, + dictWord{150, 11, 45}, + dictWord{132, 0, 798}, + dictWord{4, 0, 222}, + dictWord{7, 0, 286}, + dictWord{136, 0, 629}, + dictWord{4, 11, 79}, + dictWord{7, 11, 1773}, + dictWord{10, 11, 450}, + dictWord{11, 11, 589}, + dictWord{13, 11, 332}, + dictWord{13, 11, 493}, + dictWord{14, 11, 183}, + dictWord{14, 11, 334}, + dictWord{14, 11, 362}, + dictWord{14, 11, 368}, + dictWord{14, 11, 376}, + dictWord{14, 11, 379}, + dictWord{ + 19, + 11, + 90, + }, + dictWord{19, 11, 103}, + dictWord{19, 11, 127}, + dictWord{148, 11, 90}, + dictWord{5, 0, 337}, + dictWord{11, 0, 513}, + dictWord{11, 0, 889}, + dictWord{ + 11, + 0, + 961, + }, + dictWord{12, 0, 461}, + dictWord{13, 0, 79}, + dictWord{15, 0, 121}, + dictWord{4, 10, 90}, + dictWord{5, 10, 545}, + dictWord{7, 10, 754}, + dictWord{9, 10, 186}, + dictWord{10, 10, 72}, + dictWord{10, 10, 782}, + dictWord{11, 10, 577}, + dictWord{11, 10, 610}, + dictWord{12, 10, 354}, + dictWord{12, 10, 362}, + dictWord{ + 140, + 10, + 595, + }, + dictWord{141, 0, 306}, + dictWord{136, 0, 146}, + dictWord{7, 0, 1646}, + dictWord{9, 10, 329}, + dictWord{11, 10, 254}, + dictWord{141, 11, 124}, + dictWord{ + 4, + 0, + 465, + }, + dictWord{135, 0, 1663}, + dictWord{132, 0, 525}, + dictWord{133, 11, 663}, + dictWord{10, 0, 299}, + dictWord{18, 0, 74}, + dictWord{9, 10, 187}, + dictWord{ + 11, + 10, + 1016, + }, + dictWord{145, 10, 44}, + dictWord{7, 0, 165}, + dictWord{7, 0, 919}, + dictWord{4, 10, 506}, + dictWord{136, 10, 517}, + dictWord{5, 10, 295}, + dictWord{ + 135, + 10, + 1680, + }, + dictWord{133, 11, 846}, + dictWord{134, 0, 1064}, + dictWord{5, 11, 378}, + dictWord{7, 11, 1402}, + dictWord{7, 11, 1414}, + dictWord{8, 11, 465}, + dictWord{9, 11, 286}, + dictWord{10, 11, 185}, + dictWord{10, 11, 562}, + dictWord{10, 11, 635}, + dictWord{11, 11, 31}, + dictWord{11, 11, 393}, + dictWord{ + 12, + 11, + 456, + }, + dictWord{13, 11, 312}, + dictWord{18, 11, 65}, + dictWord{18, 11, 96}, + dictWord{147, 11, 89}, + dictWord{132, 0, 596}, + dictWord{7, 10, 987}, + dictWord{ + 9, + 10, + 688, + }, + dictWord{10, 10, 522}, + dictWord{11, 10, 788}, + dictWord{140, 10, 566}, + dictWord{6, 0, 82}, + dictWord{7, 0, 138}, + dictWord{7, 0, 517}, + dictWord{7, 0, 1741}, + dictWord{11, 0, 238}, + dictWord{4, 11, 648}, + dictWord{134, 10, 1775}, + dictWord{7, 0, 1233}, + dictWord{7, 10, 700}, + dictWord{7, 10, 940}, + dictWord{8, 10, 514}, + dictWord{9, 10, 116}, + dictWord{9, 10, 535}, + dictWord{10, 10, 118}, + dictWord{11, 10, 107}, + dictWord{11, 10, 148}, + dictWord{11, 10, 922}, + dictWord{ + 12, + 10, + 254, + }, + dictWord{12, 10, 421}, + dictWord{142, 10, 238}, + dictWord{4, 0, 962}, + dictWord{6, 0, 1824}, + dictWord{8, 0, 894}, + dictWord{12, 0, 708}, + dictWord{ + 12, + 0, + 725, + }, + dictWord{14, 0, 451}, + dictWord{20, 0, 94}, + dictWord{22, 0, 59}, + dictWord{150, 0, 62}, + dictWord{5, 11, 945}, + dictWord{6, 11, 1656}, + dictWord{6, 11, 1787}, + dictWord{7, 11, 167}, + dictWord{8, 11, 824}, + dictWord{9, 11, 391}, + dictWord{10, 11, 375}, + dictWord{139, 11, 185}, + dictWord{5, 0, 495}, + dictWord{7, 0, 834}, + dictWord{9, 0, 733}, + dictWord{139, 0, 378}, + dictWord{4, 10, 743}, + dictWord{135, 11, 1273}, + dictWord{6, 0, 1204}, + dictWord{7, 11, 1645}, + dictWord{8, 11, 352}, + dictWord{137, 11, 249}, + dictWord{139, 10, 292}, + dictWord{133, 0, 559}, + dictWord{132, 11, 152}, + dictWord{9, 0, 499}, + dictWord{10, 0, 341}, + dictWord{ + 15, + 0, + 144, + }, + dictWord{19, 0, 49}, + dictWord{7, 10, 1283}, + dictWord{9, 10, 227}, + dictWord{11, 10, 325}, + dictWord{11, 10, 408}, + dictWord{14, 10, 180}, + dictWord{ + 146, + 10, + 47, + }, + dictWord{6, 0, 21}, + dictWord{6, 0, 1737}, + dictWord{7, 0, 1444}, + dictWord{136, 0, 224}, + dictWord{133, 11, 1006}, + dictWord{7, 0, 1446}, + dictWord{ + 9, + 0, + 97, + }, + dictWord{17, 0, 15}, + dictWord{5, 10, 81}, + dictWord{7, 10, 146}, + dictWord{7, 10, 1342}, + dictWord{8, 10, 53}, + dictWord{8, 10, 561}, + dictWord{8, 10, 694}, + dictWord{8, 10, 754}, + dictWord{9, 10, 115}, + dictWord{9, 10, 894}, + dictWord{10, 10, 462}, + dictWord{10, 10, 813}, + dictWord{11, 10, 230}, + dictWord{11, 10, 657}, + dictWord{11, 10, 699}, + dictWord{11, 10, 748}, + dictWord{12, 10, 119}, + dictWord{12, 10, 200}, + dictWord{12, 10, 283}, + dictWord{142, 10, 273}, + dictWord{ + 5, + 10, + 408, + }, + dictWord{137, 10, 747}, + dictWord{135, 11, 431}, + dictWord{135, 11, 832}, + dictWord{6, 0, 729}, + dictWord{134, 0, 953}, + dictWord{4, 0, 727}, + dictWord{ + 8, + 0, + 565, + }, + dictWord{5, 11, 351}, + dictWord{7, 11, 264}, + dictWord{136, 11, 565}, + dictWord{134, 0, 1948}, + dictWord{5, 0, 519}, + dictWord{5, 11, 40}, + dictWord{ + 7, + 11, + 598, + }, + dictWord{7, 11, 1638}, + dictWord{8, 11, 78}, + dictWord{9, 11, 166}, + dictWord{9, 11, 640}, + dictWord{9, 11, 685}, + dictWord{9, 11, 773}, + dictWord{ + 11, + 11, + 215, + }, + dictWord{13, 11, 65}, + dictWord{14, 11, 172}, + dictWord{14, 11, 317}, + dictWord{145, 11, 6}, + dictWord{8, 11, 60}, + dictWord{9, 11, 343}, + dictWord{ + 139, + 11, + 769, + }, + dictWord{137, 11, 455}, + dictWord{134, 0, 1193}, + dictWord{140, 0, 790}, + dictWord{7, 11, 1951}, + dictWord{8, 11, 765}, + dictWord{8, 11, 772}, + dictWord{140, 11, 671}, + dictWord{7, 11, 108}, + dictWord{8, 11, 219}, + dictWord{8, 11, 388}, + dictWord{9, 11, 639}, + dictWord{9, 11, 775}, + dictWord{11, 11, 275}, + dictWord{140, 11, 464}, + dictWord{132, 11, 468}, + dictWord{7, 10, 30}, + dictWord{8, 10, 86}, + dictWord{8, 10, 315}, + dictWord{8, 10, 700}, + dictWord{9, 10, 576}, + dictWord{ + 9, + 10, + 858, + }, + dictWord{11, 10, 310}, + dictWord{11, 10, 888}, + dictWord{11, 10, 904}, + dictWord{12, 10, 361}, + dictWord{141, 10, 248}, + dictWord{5, 11, 15}, + dictWord{6, 11, 56}, + dictWord{7, 11, 1758}, + dictWord{8, 11, 500}, + dictWord{9, 11, 730}, + dictWord{11, 11, 331}, + dictWord{13, 11, 150}, + dictWord{142, 11, 282}, + dictWord{4, 0, 402}, + dictWord{7, 0, 2}, + dictWord{8, 0, 323}, + dictWord{136, 0, 479}, + dictWord{138, 10, 839}, + dictWord{11, 0, 580}, + dictWord{142, 0, 201}, + dictWord{ + 5, + 0, + 59, + }, + dictWord{135, 0, 672}, + dictWord{137, 10, 617}, + dictWord{146, 0, 34}, + dictWord{134, 11, 1886}, + dictWord{4, 0, 961}, + dictWord{136, 0, 896}, + dictWord{ + 6, + 0, + 1285, + }, + dictWord{5, 11, 205}, + dictWord{6, 11, 438}, + dictWord{137, 11, 711}, + dictWord{134, 10, 428}, + dictWord{7, 10, 524}, + dictWord{8, 10, 169}, + dictWord{8, 10, 234}, + dictWord{9, 10, 480}, + dictWord{138, 10, 646}, + dictWord{148, 0, 46}, + dictWord{141, 0, 479}, + dictWord{133, 11, 534}, + dictWord{6, 0, 2019}, + dictWord{134, 10, 1648}, + dictWord{4, 0, 85}, + dictWord{7, 0, 549}, + dictWord{7, 10, 1205}, + dictWord{138, 10, 637}, + dictWord{4, 0, 663}, + dictWord{5, 0, 94}, + dictWord{ + 7, + 11, + 235, + }, + dictWord{7, 11, 1475}, + dictWord{15, 11, 68}, + dictWord{146, 11, 120}, + dictWord{6, 11, 443}, + dictWord{9, 11, 237}, + dictWord{9, 11, 571}, + dictWord{ + 9, + 11, + 695, + }, + dictWord{10, 11, 139}, + dictWord{11, 11, 715}, + dictWord{12, 11, 417}, + dictWord{141, 11, 421}, + dictWord{132, 0, 783}, + dictWord{4, 0, 682}, + dictWord{8, 0, 65}, + dictWord{9, 10, 39}, + dictWord{10, 10, 166}, + dictWord{11, 10, 918}, + dictWord{12, 10, 635}, + dictWord{20, 10, 10}, + dictWord{22, 10, 27}, + dictWord{ + 22, + 10, + 43, + }, + dictWord{150, 10, 52}, + dictWord{6, 0, 11}, + dictWord{135, 0, 187}, + dictWord{132, 0, 522}, + dictWord{4, 0, 52}, + dictWord{135, 0, 661}, + dictWord{ + 4, + 0, + 383, + }, + dictWord{133, 0, 520}, + dictWord{135, 11, 546}, + dictWord{11, 0, 343}, + dictWord{142, 0, 127}, + dictWord{4, 11, 578}, + dictWord{7, 10, 157}, + dictWord{ + 7, + 11, + 624, + }, + dictWord{7, 11, 916}, + dictWord{8, 10, 279}, + dictWord{10, 11, 256}, + dictWord{11, 11, 87}, + dictWord{139, 11, 703}, + dictWord{134, 10, 604}, + dictWord{ + 4, + 0, + 281, + }, + dictWord{5, 0, 38}, + dictWord{7, 0, 194}, + dictWord{7, 0, 668}, + dictWord{7, 0, 1893}, + dictWord{137, 0, 397}, + dictWord{7, 10, 945}, + dictWord{11, 10, 713}, + dictWord{139, 10, 744}, + dictWord{139, 10, 1022}, + dictWord{9, 0, 635}, + dictWord{139, 0, 559}, + dictWord{5, 11, 923}, + dictWord{7, 11, 490}, + dictWord{ + 12, + 11, + 553, + }, + dictWord{13, 11, 100}, + dictWord{14, 11, 118}, + dictWord{143, 11, 75}, + dictWord{132, 0, 975}, + dictWord{132, 10, 567}, + dictWord{137, 10, 859}, + dictWord{7, 10, 1846}, + dictWord{7, 11, 1846}, + dictWord{8, 10, 628}, + dictWord{136, 11, 628}, + dictWord{148, 0, 116}, + dictWord{138, 11, 750}, + dictWord{14, 0, 51}, + dictWord{14, 11, 51}, + dictWord{15, 11, 7}, + dictWord{148, 11, 20}, + dictWord{132, 0, 858}, + dictWord{134, 0, 1075}, + dictWord{4, 11, 924}, + dictWord{ + 133, + 10, + 762, + }, + dictWord{136, 0, 535}, + dictWord{133, 0, 448}, + dictWord{10, 10, 784}, + dictWord{141, 10, 191}, + dictWord{133, 10, 298}, + dictWord{7, 0, 610}, + dictWord{135, 0, 1501}, + dictWord{7, 10, 633}, + dictWord{7, 10, 905}, + dictWord{7, 10, 909}, + dictWord{7, 10, 1538}, + dictWord{9, 10, 767}, + dictWord{140, 10, 636}, + dictWord{4, 11, 265}, + dictWord{7, 11, 807}, + dictWord{135, 11, 950}, + dictWord{5, 11, 93}, + dictWord{12, 11, 267}, + dictWord{144, 11, 26}, + dictWord{136, 0, 191}, + dictWord{139, 10, 301}, + dictWord{135, 10, 1970}, + dictWord{135, 0, 267}, + dictWord{4, 0, 319}, + dictWord{5, 0, 699}, + dictWord{138, 0, 673}, + dictWord{ + 6, + 0, + 336, + }, + dictWord{7, 0, 92}, + dictWord{7, 0, 182}, + dictWord{8, 0, 453}, + dictWord{8, 0, 552}, + dictWord{9, 0, 204}, + dictWord{9, 0, 285}, + dictWord{10, 0, 99}, + dictWord{ + 11, + 0, + 568, + }, + dictWord{11, 0, 950}, + dictWord{12, 0, 94}, + dictWord{16, 0, 20}, + dictWord{16, 0, 70}, + dictWord{19, 0, 55}, + dictWord{12, 10, 644}, + dictWord{144, 10, 90}, + dictWord{6, 0, 551}, + dictWord{7, 0, 1308}, + dictWord{7, 10, 845}, + dictWord{7, 11, 994}, + dictWord{8, 10, 160}, + dictWord{137, 10, 318}, + dictWord{19, 11, 1}, + dictWord{ + 19, + 11, + 26, + }, + dictWord{150, 11, 9}, + dictWord{7, 0, 1406}, + dictWord{9, 0, 218}, + dictWord{141, 0, 222}, + dictWord{5, 0, 256}, + dictWord{138, 0, 69}, + dictWord{ + 5, + 11, + 233, + }, + dictWord{5, 11, 320}, + dictWord{6, 11, 140}, + dictWord{7, 11, 330}, + dictWord{136, 11, 295}, + dictWord{6, 0, 1980}, + dictWord{136, 0, 952}, + dictWord{ + 4, + 0, + 833, + }, + dictWord{137, 11, 678}, + dictWord{133, 11, 978}, + dictWord{4, 11, 905}, + dictWord{6, 11, 1701}, + dictWord{137, 11, 843}, + dictWord{138, 10, 735}, + dictWord{136, 10, 76}, + dictWord{17, 0, 39}, + dictWord{148, 0, 36}, + dictWord{18, 0, 81}, + dictWord{146, 11, 81}, + dictWord{14, 0, 352}, + dictWord{17, 0, 53}, + dictWord{ + 18, + 0, + 146, + }, + dictWord{18, 0, 152}, + dictWord{19, 0, 11}, + dictWord{150, 0, 54}, + dictWord{135, 0, 634}, + dictWord{138, 10, 841}, + dictWord{132, 0, 618}, + dictWord{ + 4, + 0, + 339, + }, + dictWord{7, 0, 259}, + dictWord{17, 0, 73}, + dictWord{4, 11, 275}, + dictWord{140, 11, 376}, + dictWord{132, 11, 509}, + dictWord{7, 11, 273}, + dictWord{ + 139, + 11, + 377, + }, + dictWord{4, 0, 759}, + dictWord{13, 0, 169}, + dictWord{137, 10, 804}, + dictWord{6, 10, 96}, + dictWord{135, 10, 1426}, + dictWord{4, 10, 651}, + dictWord{133, 10, 289}, + dictWord{7, 0, 1075}, + dictWord{8, 10, 35}, + dictWord{9, 10, 511}, + dictWord{10, 10, 767}, + dictWord{147, 10, 118}, + dictWord{6, 0, 649}, + dictWord{6, 0, 670}, + dictWord{136, 0, 482}, + dictWord{5, 0, 336}, + dictWord{6, 0, 341}, + dictWord{6, 0, 478}, + dictWord{6, 0, 1763}, + dictWord{136, 0, 386}, + dictWord{ + 5, + 11, + 802, + }, + dictWord{7, 11, 2021}, + dictWord{8, 11, 805}, + dictWord{14, 11, 94}, + dictWord{15, 11, 65}, + dictWord{16, 11, 4}, + dictWord{16, 11, 77}, + dictWord{16, 11, 80}, + dictWord{145, 11, 5}, + dictWord{6, 0, 1035}, + dictWord{5, 11, 167}, + dictWord{5, 11, 899}, + dictWord{6, 11, 410}, + dictWord{137, 11, 777}, + dictWord{ + 134, + 11, + 1705, + }, + dictWord{5, 0, 924}, + dictWord{133, 0, 969}, + dictWord{132, 10, 704}, + dictWord{135, 0, 73}, + dictWord{135, 11, 10}, + dictWord{135, 10, 1078}, + dictWord{ + 5, + 11, + 11, + }, + dictWord{6, 11, 117}, + dictWord{6, 11, 485}, + dictWord{7, 11, 1133}, + dictWord{9, 11, 582}, + dictWord{9, 11, 594}, + dictWord{11, 11, 21}, + dictWord{ + 11, + 11, + 818, + }, + dictWord{12, 11, 535}, + dictWord{141, 11, 86}, + dictWord{135, 0, 1971}, + dictWord{4, 11, 264}, + dictWord{7, 11, 1067}, + dictWord{8, 11, 204}, + dictWord{8, 11, 385}, + dictWord{139, 11, 953}, + dictWord{6, 0, 1458}, + dictWord{135, 0, 1344}, + dictWord{5, 0, 396}, + dictWord{134, 0, 501}, + dictWord{4, 10, 720}, + dictWord{133, 10, 306}, + dictWord{4, 0, 929}, + dictWord{5, 0, 799}, + dictWord{8, 0, 46}, + dictWord{8, 0, 740}, + dictWord{133, 10, 431}, + dictWord{7, 11, 646}, + dictWord{ + 7, + 11, + 1730, + }, + dictWord{11, 11, 446}, + dictWord{141, 11, 178}, + dictWord{7, 0, 276}, + dictWord{5, 10, 464}, + dictWord{6, 10, 236}, + dictWord{7, 10, 696}, + dictWord{ + 7, + 10, + 914, + }, + dictWord{7, 10, 1108}, + dictWord{7, 10, 1448}, + dictWord{9, 10, 15}, + dictWord{9, 10, 564}, + dictWord{10, 10, 14}, + dictWord{12, 10, 565}, + dictWord{ + 13, + 10, + 449, + }, + dictWord{14, 10, 53}, + dictWord{15, 10, 13}, + dictWord{16, 10, 64}, + dictWord{145, 10, 41}, + dictWord{4, 0, 892}, + dictWord{133, 0, 770}, + dictWord{ + 6, + 10, + 1767, + }, + dictWord{12, 10, 194}, + dictWord{145, 10, 107}, + dictWord{135, 0, 158}, + dictWord{5, 10, 840}, + dictWord{138, 11, 608}, + dictWord{134, 0, 1432}, + dictWord{138, 11, 250}, + dictWord{8, 11, 794}, + dictWord{9, 11, 400}, + dictWord{10, 11, 298}, + dictWord{142, 11, 228}, + dictWord{151, 0, 25}, + dictWord{ + 7, + 11, + 1131, + }, + dictWord{135, 11, 1468}, + dictWord{135, 0, 2001}, + dictWord{9, 10, 642}, + dictWord{11, 10, 236}, + dictWord{142, 10, 193}, + dictWord{4, 10, 68}, + dictWord{5, 10, 634}, + dictWord{6, 10, 386}, + dictWord{7, 10, 794}, + dictWord{8, 10, 273}, + dictWord{9, 10, 563}, + dictWord{10, 10, 105}, + dictWord{10, 10, 171}, + dictWord{11, 10, 94}, + dictWord{139, 10, 354}, + dictWord{136, 11, 724}, + dictWord{132, 0, 478}, + dictWord{11, 11, 512}, + dictWord{13, 11, 205}, + dictWord{ + 19, + 11, + 30, + }, + dictWord{22, 11, 36}, + dictWord{151, 11, 19}, + dictWord{7, 0, 1461}, + dictWord{140, 0, 91}, + dictWord{6, 11, 190}, + dictWord{7, 11, 768}, + dictWord{ + 135, + 11, + 1170, + }, + dictWord{4, 0, 602}, + dictWord{8, 0, 211}, + dictWord{4, 10, 95}, + dictWord{7, 10, 416}, + dictWord{139, 10, 830}, + dictWord{7, 10, 731}, + dictWord{13, 10, 20}, + dictWord{143, 10, 11}, + dictWord{6, 0, 1068}, + dictWord{135, 0, 1872}, + dictWord{4, 0, 13}, + dictWord{5, 0, 567}, + dictWord{7, 0, 1498}, + dictWord{9, 0, 124}, + dictWord{11, 0, 521}, + dictWord{12, 0, 405}, + dictWord{135, 11, 1023}, + dictWord{135, 0, 1006}, + dictWord{132, 0, 735}, + dictWord{138, 0, 812}, + dictWord{4, 0, 170}, + dictWord{135, 0, 323}, + dictWord{6, 11, 137}, + dictWord{9, 11, 75}, + dictWord{9, 11, 253}, + dictWord{10, 11, 194}, + dictWord{138, 11, 444}, + dictWord{5, 0, 304}, + dictWord{7, 0, 1403}, + dictWord{5, 10, 864}, + dictWord{10, 10, 648}, + dictWord{11, 10, 671}, + dictWord{143, 10, 46}, + dictWord{135, 11, 1180}, + dictWord{ + 133, + 10, + 928, + }, + dictWord{4, 0, 148}, + dictWord{133, 0, 742}, + dictWord{11, 10, 986}, + dictWord{140, 10, 682}, + dictWord{133, 0, 523}, + dictWord{135, 11, 1743}, + dictWord{7, 0, 730}, + dictWord{18, 0, 144}, + dictWord{19, 0, 61}, + dictWord{8, 10, 44}, + dictWord{9, 10, 884}, + dictWord{10, 10, 580}, + dictWord{11, 10, 399}, + dictWord{ + 11, + 10, + 894, + }, + dictWord{143, 10, 122}, + dictWord{5, 11, 760}, + dictWord{7, 11, 542}, + dictWord{8, 11, 135}, + dictWord{136, 11, 496}, + dictWord{136, 0, 981}, + dictWord{133, 0, 111}, + dictWord{10, 0, 132}, + dictWord{11, 0, 191}, + dictWord{11, 0, 358}, + dictWord{139, 0, 460}, + dictWord{7, 11, 319}, + dictWord{7, 11, 355}, + dictWord{ + 7, + 11, + 763, + }, + dictWord{10, 11, 389}, + dictWord{145, 11, 43}, + dictWord{134, 0, 890}, + dictWord{134, 0, 1420}, + dictWord{136, 11, 557}, + dictWord{ + 133, + 10, + 518, + }, + dictWord{133, 0, 444}, + dictWord{135, 0, 1787}, + dictWord{135, 10, 1852}, + dictWord{8, 0, 123}, + dictWord{15, 0, 6}, + dictWord{144, 0, 7}, + dictWord{ + 6, + 0, + 2041, + }, + dictWord{10, 11, 38}, + dictWord{139, 11, 784}, + dictWord{136, 0, 932}, + dictWord{5, 0, 937}, + dictWord{135, 0, 100}, + dictWord{6, 0, 995}, + dictWord{ + 4, + 11, + 58, + }, + dictWord{5, 11, 286}, + dictWord{6, 11, 319}, + dictWord{7, 11, 402}, + dictWord{7, 11, 1254}, + dictWord{7, 11, 1903}, + dictWord{8, 11, 356}, + dictWord{ + 140, + 11, + 408, + }, + dictWord{4, 11, 389}, + dictWord{9, 11, 181}, + dictWord{9, 11, 255}, + dictWord{10, 11, 8}, + dictWord{10, 11, 29}, + dictWord{10, 11, 816}, + dictWord{ + 11, + 11, + 311, + }, + dictWord{11, 11, 561}, + dictWord{12, 11, 67}, + dictWord{141, 11, 181}, + dictWord{138, 0, 255}, + dictWord{5, 0, 138}, + dictWord{4, 10, 934}, + dictWord{ + 136, + 10, + 610, + }, + dictWord{4, 0, 965}, + dictWord{10, 0, 863}, + dictWord{138, 0, 898}, + dictWord{10, 10, 804}, + dictWord{138, 10, 832}, + dictWord{12, 0, 631}, + dictWord{ + 8, + 10, + 96, + }, + dictWord{9, 10, 36}, + dictWord{10, 10, 607}, + dictWord{11, 10, 423}, + dictWord{11, 10, 442}, + dictWord{12, 10, 309}, + dictWord{14, 10, 199}, + dictWord{ + 15, + 10, + 90, + }, + dictWord{145, 10, 110}, + dictWord{134, 0, 1394}, + dictWord{4, 0, 652}, + dictWord{8, 0, 320}, + dictWord{22, 0, 6}, + dictWord{22, 0, 16}, + dictWord{ + 9, + 10, + 13, + }, + dictWord{9, 10, 398}, + dictWord{9, 10, 727}, + dictWord{10, 10, 75}, + dictWord{10, 10, 184}, + dictWord{10, 10, 230}, + dictWord{10, 10, 564}, + dictWord{ + 10, + 10, + 569, + }, + dictWord{11, 10, 973}, + dictWord{12, 10, 70}, + dictWord{12, 10, 189}, + dictWord{13, 10, 57}, + dictWord{141, 10, 257}, + dictWord{6, 0, 897}, + dictWord{ + 134, + 0, + 1333, + }, + dictWord{4, 0, 692}, + dictWord{133, 0, 321}, + dictWord{133, 11, 373}, + dictWord{135, 0, 922}, + dictWord{5, 0, 619}, + dictWord{133, 0, 698}, + dictWord{ + 137, + 10, + 631, + }, + dictWord{5, 10, 345}, + dictWord{135, 10, 1016}, + dictWord{9, 0, 957}, + dictWord{9, 0, 1018}, + dictWord{12, 0, 828}, + dictWord{12, 0, 844}, + dictWord{ + 12, + 0, + 897, + }, + dictWord{12, 0, 901}, + dictWord{12, 0, 943}, + dictWord{15, 0, 180}, + dictWord{18, 0, 197}, + dictWord{18, 0, 200}, + dictWord{18, 0, 213}, + dictWord{ + 18, + 0, + 214, + }, + dictWord{146, 0, 226}, + dictWord{5, 0, 917}, + dictWord{134, 0, 1659}, + dictWord{135, 0, 1100}, + dictWord{134, 0, 1173}, + dictWord{134, 0, 1930}, + dictWord{5, 0, 251}, + dictWord{5, 0, 956}, + dictWord{8, 0, 268}, + dictWord{9, 0, 214}, + dictWord{146, 0, 142}, + dictWord{133, 10, 673}, + dictWord{137, 10, 850}, + dictWord{ + 4, + 10, + 287, + }, + dictWord{133, 10, 1018}, + dictWord{132, 11, 672}, + dictWord{5, 0, 346}, + dictWord{5, 0, 711}, + dictWord{8, 0, 390}, + dictWord{11, 11, 752}, + dictWord{139, 11, 885}, + dictWord{5, 10, 34}, + dictWord{10, 10, 724}, + dictWord{12, 10, 444}, + dictWord{13, 10, 354}, + dictWord{18, 10, 32}, + dictWord{23, 10, 24}, + dictWord{23, 10, 31}, + dictWord{152, 10, 5}, + dictWord{4, 11, 710}, + dictWord{134, 11, 606}, + dictWord{134, 0, 744}, + dictWord{134, 10, 382}, + dictWord{ + 133, + 11, + 145, + }, + dictWord{4, 10, 329}, + dictWord{7, 11, 884}, + dictWord{140, 11, 124}, + dictWord{4, 11, 467}, + dictWord{5, 11, 405}, + dictWord{134, 11, 544}, + dictWord{ + 9, + 10, + 846, + }, + dictWord{138, 10, 827}, + dictWord{133, 0, 624}, + dictWord{9, 11, 372}, + dictWord{15, 11, 2}, + dictWord{19, 11, 10}, + dictWord{147, 11, 18}, + dictWord{ + 4, + 11, + 387, + }, + dictWord{135, 11, 1288}, + dictWord{5, 0, 783}, + dictWord{7, 0, 1998}, + dictWord{135, 0, 2047}, + dictWord{132, 10, 906}, + dictWord{136, 10, 366}, + dictWord{135, 11, 550}, + dictWord{4, 10, 123}, + dictWord{4, 10, 649}, + dictWord{5, 10, 605}, + dictWord{7, 10, 1509}, + dictWord{136, 10, 36}, + dictWord{ + 134, + 0, + 1125, + }, + dictWord{132, 0, 594}, + dictWord{133, 10, 767}, + dictWord{135, 11, 1227}, + dictWord{136, 11, 467}, + dictWord{4, 11, 576}, + dictWord{ + 135, + 11, + 1263, + }, + dictWord{4, 0, 268}, + dictWord{7, 0, 1534}, + dictWord{135, 11, 1534}, + dictWord{4, 10, 273}, + dictWord{5, 10, 658}, + dictWord{5, 11, 919}, + dictWord{ + 5, + 10, + 995, + }, + dictWord{134, 11, 1673}, + dictWord{133, 0, 563}, + dictWord{134, 10, 72}, + dictWord{135, 10, 1345}, + dictWord{4, 11, 82}, + dictWord{5, 11, 333}, + dictWord{ + 5, + 11, + 904, + }, + dictWord{6, 11, 207}, + dictWord{7, 11, 325}, + dictWord{7, 11, 1726}, + dictWord{8, 11, 101}, + dictWord{10, 11, 778}, + dictWord{139, 11, 220}, + dictWord{5, 0, 37}, + dictWord{6, 0, 39}, + dictWord{6, 0, 451}, + dictWord{7, 0, 218}, + dictWord{7, 0, 667}, + dictWord{7, 0, 1166}, + dictWord{7, 0, 1687}, + dictWord{8, 0, 662}, + dictWord{16, 0, 2}, + dictWord{133, 10, 589}, + dictWord{134, 0, 1332}, + dictWord{133, 11, 903}, + dictWord{134, 0, 508}, + dictWord{5, 10, 117}, + dictWord{6, 10, 514}, + dictWord{6, 10, 541}, + dictWord{7, 10, 1164}, + dictWord{7, 10, 1436}, + dictWord{8, 10, 220}, + dictWord{8, 10, 648}, + dictWord{10, 10, 688}, + dictWord{11, 10, 560}, + dictWord{140, 11, 147}, + dictWord{6, 11, 555}, + dictWord{135, 11, 485}, + dictWord{133, 10, 686}, + dictWord{7, 0, 453}, + dictWord{7, 0, 635}, + dictWord{7, 0, 796}, + dictWord{8, 0, 331}, + dictWord{9, 0, 330}, + dictWord{9, 0, 865}, + dictWord{10, 0, 119}, + dictWord{10, 0, 235}, + dictWord{11, 0, 111}, + dictWord{11, 0, 129}, + dictWord{ + 11, + 0, + 240, + }, + dictWord{12, 0, 31}, + dictWord{12, 0, 66}, + dictWord{12, 0, 222}, + dictWord{12, 0, 269}, + dictWord{12, 0, 599}, + dictWord{12, 0, 684}, + dictWord{12, 0, 689}, + dictWord{12, 0, 691}, + dictWord{142, 0, 345}, + dictWord{135, 0, 1834}, + dictWord{4, 11, 705}, + dictWord{7, 11, 615}, + dictWord{138, 11, 251}, + dictWord{ + 136, + 11, + 345, + }, + dictWord{137, 0, 527}, + dictWord{6, 0, 98}, + dictWord{7, 0, 702}, + dictWord{135, 0, 991}, + dictWord{11, 0, 576}, + dictWord{14, 0, 74}, + dictWord{7, 10, 196}, + dictWord{10, 10, 765}, + dictWord{11, 10, 347}, + dictWord{11, 10, 552}, + dictWord{11, 10, 790}, + dictWord{12, 10, 263}, + dictWord{13, 10, 246}, + dictWord{ + 13, + 10, + 270, + }, + dictWord{13, 10, 395}, + dictWord{14, 10, 176}, + dictWord{14, 10, 190}, + dictWord{14, 10, 398}, + dictWord{14, 10, 412}, + dictWord{15, 10, 32}, + dictWord{ + 15, + 10, + 63, + }, + dictWord{16, 10, 88}, + dictWord{147, 10, 105}, + dictWord{134, 11, 90}, + dictWord{13, 0, 84}, + dictWord{141, 0, 122}, + dictWord{6, 0, 37}, + dictWord{ + 7, + 0, + 299, + }, + dictWord{7, 0, 1666}, + dictWord{8, 0, 195}, + dictWord{8, 0, 316}, + dictWord{9, 0, 178}, + dictWord{9, 0, 276}, + dictWord{9, 0, 339}, + dictWord{9, 0, 536}, + dictWord{ + 10, + 0, + 102, + }, + dictWord{10, 0, 362}, + dictWord{10, 0, 785}, + dictWord{11, 0, 55}, + dictWord{11, 0, 149}, + dictWord{11, 0, 773}, + dictWord{13, 0, 416}, + dictWord{ + 13, + 0, + 419, + }, + dictWord{14, 0, 38}, + dictWord{14, 0, 41}, + dictWord{142, 0, 210}, + dictWord{5, 10, 381}, + dictWord{135, 10, 1792}, + dictWord{7, 11, 813}, + dictWord{ + 12, + 11, + 497, + }, + dictWord{141, 11, 56}, + dictWord{7, 10, 616}, + dictWord{138, 10, 413}, + dictWord{133, 0, 645}, + dictWord{6, 11, 125}, + dictWord{135, 11, 1277}, + dictWord{132, 0, 290}, + dictWord{6, 0, 70}, + dictWord{7, 0, 1292}, + dictWord{10, 0, 762}, + dictWord{139, 0, 288}, + dictWord{6, 10, 120}, + dictWord{7, 10, 1188}, + dictWord{ + 7, + 10, + 1710, + }, + dictWord{8, 10, 286}, + dictWord{9, 10, 667}, + dictWord{11, 10, 592}, + dictWord{139, 10, 730}, + dictWord{135, 11, 1784}, + dictWord{7, 0, 1315}, + dictWord{135, 11, 1315}, + dictWord{134, 0, 1955}, + dictWord{135, 10, 1146}, + dictWord{7, 0, 131}, + dictWord{7, 0, 422}, + dictWord{8, 0, 210}, + dictWord{ + 140, + 0, + 573, + }, + dictWord{4, 10, 352}, + dictWord{135, 10, 687}, + dictWord{139, 0, 797}, + dictWord{143, 0, 38}, + dictWord{14, 0, 179}, + dictWord{15, 0, 151}, + dictWord{ + 150, + 0, + 11, + }, + dictWord{7, 0, 488}, + dictWord{4, 10, 192}, + dictWord{5, 10, 49}, + dictWord{6, 10, 200}, + dictWord{6, 10, 293}, + dictWord{134, 10, 1696}, + dictWord{ + 132, + 0, + 936, + }, + dictWord{135, 11, 703}, + dictWord{6, 11, 160}, + dictWord{7, 11, 1106}, + dictWord{9, 11, 770}, + dictWord{10, 11, 618}, + dictWord{11, 11, 112}, + dictWord{ + 140, + 11, + 413, + }, + dictWord{5, 0, 453}, + dictWord{134, 0, 441}, + dictWord{135, 0, 595}, + dictWord{132, 10, 650}, + dictWord{132, 10, 147}, + dictWord{6, 0, 991}, + dictWord{6, 0, 1182}, + dictWord{12, 11, 271}, + dictWord{145, 11, 109}, + dictWord{133, 10, 934}, + dictWord{140, 11, 221}, + dictWord{132, 0, 653}, + dictWord{ + 7, + 0, + 505, + }, + dictWord{135, 0, 523}, + dictWord{134, 0, 903}, + dictWord{135, 11, 479}, + dictWord{7, 11, 304}, + dictWord{9, 11, 646}, + dictWord{9, 11, 862}, + dictWord{ + 10, + 11, + 262, + }, + dictWord{11, 11, 696}, + dictWord{12, 11, 208}, + dictWord{15, 11, 79}, + dictWord{147, 11, 108}, + dictWord{146, 0, 80}, + dictWord{135, 11, 981}, + dictWord{142, 0, 432}, + dictWord{132, 0, 314}, + dictWord{137, 11, 152}, + dictWord{7, 0, 1368}, + dictWord{8, 0, 232}, + dictWord{8, 0, 361}, + dictWord{10, 0, 682}, + dictWord{138, 0, 742}, + dictWord{135, 11, 1586}, + dictWord{9, 0, 534}, + dictWord{4, 11, 434}, + dictWord{11, 11, 663}, + dictWord{12, 11, 210}, + dictWord{13, 11, 166}, + dictWord{13, 11, 310}, + dictWord{14, 11, 373}, + dictWord{147, 11, 43}, + dictWord{7, 11, 1091}, + dictWord{135, 11, 1765}, + dictWord{6, 11, 550}, + dictWord{ + 135, + 11, + 652, + }, + dictWord{137, 0, 27}, + dictWord{142, 0, 12}, + dictWord{4, 10, 637}, + dictWord{5, 11, 553}, + dictWord{7, 11, 766}, + dictWord{138, 11, 824}, + dictWord{ + 7, + 11, + 737, + }, + dictWord{8, 11, 298}, + dictWord{136, 11, 452}, + dictWord{7, 0, 736}, + dictWord{139, 0, 264}, + dictWord{134, 0, 1657}, + dictWord{133, 11, 292}, + dictWord{138, 11, 135}, + dictWord{6, 0, 844}, + dictWord{134, 0, 1117}, + dictWord{135, 0, 127}, + dictWord{9, 10, 867}, + dictWord{138, 10, 837}, + dictWord{ + 6, + 0, + 1184, + }, + dictWord{134, 0, 1208}, + dictWord{134, 0, 1294}, + dictWord{136, 0, 364}, + dictWord{6, 0, 1415}, + dictWord{7, 0, 1334}, + dictWord{11, 0, 125}, + dictWord{ + 6, + 10, + 170, + }, + dictWord{7, 11, 393}, + dictWord{8, 10, 395}, + dictWord{8, 10, 487}, + dictWord{10, 11, 603}, + dictWord{11, 11, 206}, + dictWord{141, 10, 147}, + dictWord{137, 11, 748}, + dictWord{4, 11, 912}, + dictWord{137, 11, 232}, + dictWord{4, 10, 535}, + dictWord{136, 10, 618}, + dictWord{137, 0, 792}, + dictWord{ + 7, + 11, + 1973, + }, + dictWord{136, 11, 716}, + dictWord{135, 11, 98}, + dictWord{5, 0, 909}, + dictWord{9, 0, 849}, + dictWord{138, 0, 805}, + dictWord{4, 0, 630}, + dictWord{ + 132, + 0, + 699, + }, + dictWord{5, 11, 733}, + dictWord{14, 11, 103}, + dictWord{150, 10, 23}, + dictWord{12, 11, 158}, + dictWord{18, 11, 8}, + dictWord{19, 11, 62}, + dictWord{ + 20, + 11, + 6, + }, + dictWord{22, 11, 4}, + dictWord{23, 11, 2}, + dictWord{151, 11, 9}, + dictWord{132, 0, 968}, + dictWord{132, 10, 778}, + dictWord{132, 10, 46}, + dictWord{5, 10, 811}, + dictWord{6, 10, 1679}, + dictWord{6, 10, 1714}, + dictWord{135, 10, 2032}, + dictWord{6, 0, 1446}, + dictWord{7, 10, 1458}, + dictWord{9, 10, 407}, + dictWord{ + 139, + 10, + 15, + }, + dictWord{7, 0, 206}, + dictWord{7, 0, 397}, + dictWord{7, 0, 621}, + dictWord{7, 0, 640}, + dictWord{8, 0, 124}, + dictWord{8, 0, 619}, + dictWord{9, 0, 305}, + dictWord{ + 9, + 0, + 643, + }, + dictWord{10, 0, 264}, + dictWord{10, 0, 628}, + dictWord{11, 0, 40}, + dictWord{12, 0, 349}, + dictWord{13, 0, 134}, + dictWord{13, 0, 295}, + dictWord{ + 14, + 0, + 155, + }, + dictWord{15, 0, 120}, + dictWord{18, 0, 105}, + dictWord{6, 10, 34}, + dictWord{7, 10, 1089}, + dictWord{8, 10, 708}, + dictWord{8, 10, 721}, + dictWord{9, 10, 363}, + dictWord{148, 10, 98}, + dictWord{4, 0, 262}, + dictWord{5, 0, 641}, + dictWord{135, 0, 342}, + dictWord{137, 11, 72}, + dictWord{4, 0, 99}, + dictWord{6, 0, 250}, + dictWord{ + 6, + 0, + 346, + }, + dictWord{8, 0, 127}, + dictWord{138, 0, 81}, + dictWord{132, 0, 915}, + dictWord{5, 0, 75}, + dictWord{9, 0, 517}, + dictWord{10, 0, 470}, + dictWord{12, 0, 155}, + dictWord{141, 0, 224}, + dictWord{132, 10, 462}, + dictWord{11, 11, 600}, + dictWord{11, 11, 670}, + dictWord{141, 11, 245}, + dictWord{142, 0, 83}, + dictWord{ + 5, + 10, + 73, + }, + dictWord{6, 10, 23}, + dictWord{134, 10, 338}, + dictWord{6, 0, 1031}, + dictWord{139, 11, 923}, + dictWord{7, 11, 164}, + dictWord{7, 11, 1571}, + dictWord{ + 9, + 11, + 107, + }, + dictWord{140, 11, 225}, + dictWord{134, 0, 1470}, + dictWord{133, 0, 954}, + dictWord{6, 0, 304}, + dictWord{8, 0, 418}, + dictWord{10, 0, 345}, + dictWord{ + 11, + 0, + 341, + }, + dictWord{139, 0, 675}, + dictWord{9, 0, 410}, + dictWord{139, 0, 425}, + dictWord{4, 11, 27}, + dictWord{5, 11, 484}, + dictWord{5, 11, 510}, + dictWord{6, 11, 434}, + dictWord{7, 11, 1000}, + dictWord{7, 11, 1098}, + dictWord{8, 11, 2}, + dictWord{136, 11, 200}, + dictWord{134, 0, 734}, + dictWord{140, 11, 257}, + dictWord{ + 7, + 10, + 725, + }, + dictWord{8, 10, 498}, + dictWord{139, 10, 268}, + dictWord{134, 0, 1822}, + dictWord{135, 0, 1798}, + dictWord{135, 10, 773}, + dictWord{132, 11, 460}, + dictWord{4, 11, 932}, + dictWord{133, 11, 891}, + dictWord{134, 0, 14}, + dictWord{132, 10, 583}, + dictWord{7, 10, 1462}, + dictWord{8, 11, 625}, + dictWord{ + 139, + 10, + 659, + }, + dictWord{5, 0, 113}, + dictWord{6, 0, 243}, + dictWord{6, 0, 1708}, + dictWord{7, 0, 1865}, + dictWord{11, 0, 161}, + dictWord{16, 0, 37}, + dictWord{17, 0, 99}, + dictWord{133, 10, 220}, + dictWord{134, 11, 76}, + dictWord{5, 11, 461}, + dictWord{135, 11, 1925}, + dictWord{140, 0, 69}, + dictWord{8, 11, 92}, + dictWord{ + 137, + 11, + 221, + }, + dictWord{139, 10, 803}, + dictWord{132, 10, 544}, + dictWord{4, 0, 274}, + dictWord{134, 0, 922}, + dictWord{132, 0, 541}, + dictWord{5, 0, 627}, + dictWord{ + 6, + 10, + 437, + }, + dictWord{6, 10, 564}, + dictWord{11, 10, 181}, + dictWord{141, 10, 183}, + dictWord{135, 10, 1192}, + dictWord{7, 0, 166}, + dictWord{132, 11, 763}, + dictWord{133, 11, 253}, + dictWord{134, 0, 849}, + dictWord{9, 11, 73}, + dictWord{10, 11, 110}, + dictWord{14, 11, 185}, + dictWord{145, 11, 119}, + dictWord{5, 11, 212}, + dictWord{12, 11, 35}, + dictWord{141, 11, 382}, + dictWord{133, 0, 717}, + dictWord{137, 0, 304}, + dictWord{136, 0, 600}, + dictWord{133, 0, 654}, + dictWord{ + 6, + 0, + 273, + }, + dictWord{10, 0, 188}, + dictWord{13, 0, 377}, + dictWord{146, 0, 77}, + dictWord{4, 10, 790}, + dictWord{5, 10, 273}, + dictWord{134, 10, 394}, + dictWord{ + 132, + 0, + 543, + }, + dictWord{135, 0, 410}, + dictWord{11, 0, 98}, + dictWord{11, 0, 524}, + dictWord{141, 0, 87}, + dictWord{132, 0, 941}, + dictWord{135, 11, 1175}, + dictWord{ + 4, + 0, + 250, + }, + dictWord{7, 0, 1612}, + dictWord{11, 0, 186}, + dictWord{12, 0, 133}, + dictWord{6, 10, 127}, + dictWord{7, 10, 1511}, + dictWord{8, 10, 613}, + dictWord{ + 12, + 10, + 495, + }, + dictWord{12, 10, 586}, + dictWord{12, 10, 660}, + dictWord{12, 10, 668}, + dictWord{14, 10, 385}, + dictWord{15, 10, 118}, + dictWord{17, 10, 20}, + dictWord{ + 146, + 10, + 98, + }, + dictWord{6, 0, 1785}, + dictWord{133, 11, 816}, + dictWord{134, 0, 1339}, + dictWord{7, 0, 961}, + dictWord{7, 0, 1085}, + dictWord{7, 0, 1727}, + dictWord{ + 8, + 0, + 462, + }, + dictWord{6, 10, 230}, + dictWord{135, 11, 1727}, + dictWord{9, 0, 636}, + dictWord{135, 10, 1954}, + dictWord{132, 0, 780}, + dictWord{5, 11, 869}, + dictWord{5, 11, 968}, + dictWord{6, 11, 1626}, + dictWord{8, 11, 734}, + dictWord{136, 11, 784}, + dictWord{4, 11, 542}, + dictWord{6, 11, 1716}, + dictWord{6, 11, 1727}, + dictWord{7, 11, 1082}, + dictWord{7, 11, 1545}, + dictWord{8, 11, 56}, + dictWord{8, 11, 118}, + dictWord{8, 11, 412}, + dictWord{8, 11, 564}, + dictWord{9, 11, 888}, + dictWord{9, 11, 908}, + dictWord{10, 11, 50}, + dictWord{10, 11, 423}, + dictWord{11, 11, 685}, + dictWord{11, 11, 697}, + dictWord{11, 11, 933}, + dictWord{12, 11, 299}, + dictWord{13, 11, 126}, + dictWord{13, 11, 136}, + dictWord{13, 11, 170}, + dictWord{141, 11, 190}, + dictWord{134, 11, 226}, + dictWord{4, 11, 232}, + dictWord{ + 9, + 11, + 202, + }, + dictWord{10, 11, 474}, + dictWord{140, 11, 433}, + dictWord{137, 11, 500}, + dictWord{5, 0, 529}, + dictWord{136, 10, 68}, + dictWord{132, 10, 654}, + dictWord{ + 4, + 10, + 156, + }, + dictWord{7, 10, 998}, + dictWord{7, 10, 1045}, + dictWord{7, 10, 1860}, + dictWord{9, 10, 48}, + dictWord{9, 10, 692}, + dictWord{11, 10, 419}, + dictWord{139, 10, 602}, + dictWord{7, 0, 1276}, + dictWord{8, 0, 474}, + dictWord{9, 0, 652}, + dictWord{6, 11, 108}, + dictWord{7, 11, 1003}, + dictWord{7, 11, 1181}, + dictWord{136, 11, 343}, + dictWord{7, 11, 1264}, + dictWord{7, 11, 1678}, + dictWord{11, 11, 945}, + dictWord{12, 11, 341}, + dictWord{12, 11, 471}, + dictWord{ + 140, + 11, + 569, + }, + dictWord{134, 11, 1712}, + dictWord{5, 0, 948}, + dictWord{12, 0, 468}, + dictWord{19, 0, 96}, + dictWord{148, 0, 24}, + dictWord{4, 11, 133}, + dictWord{ + 7, + 11, + 711, + }, + dictWord{7, 11, 1298}, + dictWord{7, 11, 1585}, + dictWord{135, 11, 1929}, + dictWord{6, 0, 753}, + dictWord{140, 0, 657}, + dictWord{139, 0, 941}, + dictWord{ + 6, + 11, + 99, + }, + dictWord{7, 11, 1808}, + dictWord{145, 11, 57}, + dictWord{6, 11, 574}, + dictWord{7, 11, 428}, + dictWord{7, 11, 1250}, + dictWord{10, 11, 669}, + dictWord{ + 11, + 11, + 485, + }, + dictWord{11, 11, 840}, + dictWord{12, 11, 300}, + dictWord{142, 11, 250}, + dictWord{4, 0, 532}, + dictWord{5, 0, 706}, + dictWord{135, 0, 662}, + dictWord{ + 5, + 0, + 837, + }, + dictWord{6, 0, 1651}, + dictWord{139, 0, 985}, + dictWord{7, 0, 1861}, + dictWord{9, 10, 197}, + dictWord{10, 10, 300}, + dictWord{12, 10, 473}, + dictWord{ + 13, + 10, + 90, + }, + dictWord{141, 10, 405}, + dictWord{137, 11, 252}, + dictWord{6, 11, 323}, + dictWord{135, 11, 1564}, + dictWord{4, 0, 330}, + dictWord{4, 0, 863}, + dictWord{7, 0, 933}, + dictWord{7, 0, 2012}, + dictWord{8, 0, 292}, + dictWord{7, 11, 461}, + dictWord{8, 11, 775}, + dictWord{138, 11, 435}, + dictWord{132, 10, 606}, + dictWord{ + 4, + 11, + 655, + }, + dictWord{7, 11, 850}, + dictWord{17, 11, 75}, + dictWord{146, 11, 137}, + dictWord{135, 0, 767}, + dictWord{7, 10, 1978}, + dictWord{136, 10, 676}, + dictWord{132, 0, 641}, + dictWord{135, 11, 1559}, + dictWord{134, 0, 1233}, + dictWord{137, 0, 242}, + dictWord{17, 0, 114}, + dictWord{4, 10, 361}, + dictWord{ + 133, + 10, + 315, + }, + dictWord{137, 0, 883}, + dictWord{132, 10, 461}, + dictWord{138, 0, 274}, + dictWord{134, 0, 2008}, + dictWord{134, 0, 1794}, + dictWord{4, 0, 703}, + dictWord{135, 0, 207}, + dictWord{12, 0, 285}, + dictWord{132, 10, 472}, + dictWord{132, 0, 571}, + dictWord{5, 0, 873}, + dictWord{5, 0, 960}, + dictWord{8, 0, 823}, + dictWord{9, 0, 881}, + dictWord{136, 11, 577}, + dictWord{7, 0, 617}, + dictWord{10, 0, 498}, + dictWord{11, 0, 501}, + dictWord{12, 0, 16}, + dictWord{140, 0, 150}, + dictWord{ + 138, + 10, + 747, + }, + dictWord{132, 0, 431}, + dictWord{133, 10, 155}, + dictWord{11, 0, 283}, + dictWord{11, 0, 567}, + dictWord{7, 10, 163}, + dictWord{8, 10, 319}, + dictWord{ + 9, + 10, + 402, + }, + dictWord{10, 10, 24}, + dictWord{10, 10, 681}, + dictWord{11, 10, 200}, + dictWord{12, 10, 253}, + dictWord{12, 10, 410}, + dictWord{142, 10, 219}, + dictWord{4, 11, 413}, + dictWord{5, 11, 677}, + dictWord{8, 11, 432}, + dictWord{140, 11, 280}, + dictWord{9, 0, 401}, + dictWord{5, 10, 475}, + dictWord{7, 10, 1780}, + dictWord{11, 10, 297}, + dictWord{11, 10, 558}, + dictWord{14, 10, 322}, + dictWord{147, 10, 76}, + dictWord{6, 0, 781}, + dictWord{9, 0, 134}, + dictWord{10, 0, 2}, + dictWord{ + 10, + 0, + 27, + }, + dictWord{10, 0, 333}, + dictWord{11, 0, 722}, + dictWord{143, 0, 1}, + dictWord{5, 0, 33}, + dictWord{6, 0, 470}, + dictWord{139, 0, 424}, + dictWord{ + 135, + 0, + 2006, + }, + dictWord{12, 0, 783}, + dictWord{135, 10, 1956}, + dictWord{136, 0, 274}, + dictWord{135, 0, 1882}, + dictWord{132, 0, 794}, + dictWord{135, 0, 1848}, + dictWord{5, 10, 944}, + dictWord{134, 10, 1769}, + dictWord{6, 0, 47}, + dictWord{7, 0, 90}, + dictWord{7, 0, 664}, + dictWord{7, 0, 830}, + dictWord{7, 0, 1380}, + dictWord{ + 7, + 0, + 2025, + }, + dictWord{8, 0, 448}, + dictWord{136, 0, 828}, + dictWord{132, 10, 144}, + dictWord{134, 0, 1199}, + dictWord{4, 11, 395}, + dictWord{139, 11, 762}, + dictWord{135, 11, 1504}, + dictWord{9, 0, 417}, + dictWord{137, 0, 493}, + dictWord{9, 11, 174}, + dictWord{10, 11, 164}, + dictWord{11, 11, 440}, + dictWord{11, 11, 841}, + dictWord{143, 11, 98}, + dictWord{134, 11, 426}, + dictWord{139, 11, 1002}, + dictWord{134, 0, 295}, + dictWord{134, 0, 816}, + dictWord{6, 10, 247}, + dictWord{ + 137, + 10, + 555, + }, + dictWord{133, 0, 1019}, + dictWord{4, 0, 620}, + dictWord{5, 11, 476}, + dictWord{10, 10, 280}, + dictWord{138, 10, 797}, + dictWord{139, 0, 464}, + dictWord{5, 11, 76}, + dictWord{6, 11, 458}, + dictWord{6, 11, 497}, + dictWord{7, 11, 764}, + dictWord{7, 11, 868}, + dictWord{9, 11, 658}, + dictWord{10, 11, 594}, + dictWord{ + 11, + 11, + 173, + }, + dictWord{11, 11, 566}, + dictWord{12, 11, 20}, + dictWord{12, 11, 338}, + dictWord{141, 11, 200}, + dictWord{134, 0, 208}, + dictWord{4, 11, 526}, + dictWord{7, 11, 1029}, + dictWord{135, 11, 1054}, + dictWord{132, 11, 636}, + dictWord{6, 11, 233}, + dictWord{7, 11, 660}, + dictWord{7, 11, 1124}, + dictWord{ + 17, + 11, + 31, + }, + dictWord{19, 11, 22}, + dictWord{151, 11, 14}, + dictWord{10, 0, 442}, + dictWord{133, 10, 428}, + dictWord{10, 0, 930}, + dictWord{140, 0, 778}, + dictWord{ + 6, + 0, + 68, + }, + dictWord{7, 0, 448}, + dictWord{7, 0, 1629}, + dictWord{7, 0, 1769}, + dictWord{7, 0, 1813}, + dictWord{8, 0, 442}, + dictWord{8, 0, 516}, + dictWord{9, 0, 710}, + dictWord{ + 10, + 0, + 282, + }, + dictWord{10, 0, 722}, + dictWord{7, 10, 1717}, + dictWord{138, 10, 546}, + dictWord{134, 0, 1128}, + dictWord{11, 0, 844}, + dictWord{12, 0, 104}, + dictWord{140, 0, 625}, + dictWord{4, 11, 432}, + dictWord{135, 11, 824}, + dictWord{138, 10, 189}, + dictWord{133, 0, 787}, + dictWord{133, 10, 99}, + dictWord{ + 4, + 11, + 279, + }, + dictWord{7, 11, 301}, + dictWord{137, 11, 362}, + dictWord{8, 0, 491}, + dictWord{4, 10, 397}, + dictWord{136, 10, 555}, + dictWord{4, 11, 178}, + dictWord{ + 133, + 11, + 399, + }, + dictWord{134, 0, 711}, + dictWord{144, 0, 9}, + dictWord{4, 0, 403}, + dictWord{5, 0, 441}, + dictWord{7, 0, 450}, + dictWord{10, 0, 840}, + dictWord{11, 0, 101}, + dictWord{12, 0, 193}, + dictWord{141, 0, 430}, + dictWord{135, 11, 1246}, + dictWord{12, 10, 398}, + dictWord{20, 10, 39}, + dictWord{21, 10, 11}, + dictWord{ + 150, + 10, + 41, + }, + dictWord{4, 10, 485}, + dictWord{7, 10, 353}, + dictWord{135, 10, 1523}, + dictWord{6, 10, 366}, + dictWord{7, 10, 1384}, + dictWord{7, 10, 1601}, + dictWord{ + 135, + 11, + 1912, + }, + dictWord{7, 0, 396}, + dictWord{10, 0, 160}, + dictWord{135, 11, 396}, + dictWord{137, 10, 282}, + dictWord{134, 11, 1692}, + dictWord{4, 10, 157}, + dictWord{5, 10, 471}, + dictWord{6, 11, 202}, + dictWord{10, 11, 448}, + dictWord{11, 11, 208}, + dictWord{12, 11, 360}, + dictWord{17, 11, 117}, + dictWord{ + 17, + 11, + 118, + }, + dictWord{18, 11, 27}, + dictWord{148, 11, 67}, + dictWord{133, 0, 679}, + dictWord{137, 0, 326}, + dictWord{136, 10, 116}, + dictWord{7, 11, 872}, + dictWord{ + 10, + 11, + 516, + }, + dictWord{139, 11, 167}, + dictWord{132, 11, 224}, + dictWord{5, 11, 546}, + dictWord{7, 11, 35}, + dictWord{8, 11, 11}, + dictWord{8, 11, 12}, + dictWord{ + 9, + 11, + 315, + }, + dictWord{9, 11, 533}, + dictWord{10, 11, 802}, + dictWord{11, 11, 166}, + dictWord{12, 11, 525}, + dictWord{142, 11, 243}, + dictWord{7, 0, 1128}, + dictWord{135, 11, 1920}, + dictWord{5, 11, 241}, + dictWord{8, 11, 242}, + dictWord{9, 11, 451}, + dictWord{10, 11, 667}, + dictWord{11, 11, 598}, + dictWord{ + 140, + 11, + 429, + }, + dictWord{6, 0, 737}, + dictWord{5, 10, 160}, + dictWord{7, 10, 363}, + dictWord{7, 10, 589}, + dictWord{10, 10, 170}, + dictWord{141, 10, 55}, + dictWord{ + 135, + 0, + 1796, + }, + dictWord{142, 11, 254}, + dictWord{4, 0, 574}, + dictWord{7, 0, 350}, + dictWord{7, 0, 1024}, + dictWord{8, 0, 338}, + dictWord{9, 0, 677}, + dictWord{138, 0, 808}, + dictWord{134, 0, 1096}, + dictWord{137, 11, 516}, + dictWord{7, 0, 405}, + dictWord{10, 0, 491}, + dictWord{4, 10, 108}, + dictWord{4, 11, 366}, + dictWord{ + 139, + 10, + 498, + }, + dictWord{11, 11, 337}, + dictWord{142, 11, 303}, + dictWord{134, 11, 1736}, + dictWord{7, 0, 1081}, + dictWord{140, 11, 364}, + dictWord{7, 10, 1005}, + dictWord{140, 10, 609}, + dictWord{7, 0, 1676}, + dictWord{4, 10, 895}, + dictWord{133, 10, 772}, + dictWord{135, 0, 2037}, + dictWord{6, 0, 1207}, + dictWord{ + 11, + 11, + 916, + }, + dictWord{142, 11, 419}, + dictWord{14, 11, 140}, + dictWord{148, 11, 41}, + dictWord{6, 11, 331}, + dictWord{136, 11, 623}, + dictWord{9, 0, 944}, + dictWord{ + 9, + 0, + 969, + }, + dictWord{9, 0, 1022}, + dictWord{12, 0, 913}, + dictWord{12, 0, 936}, + dictWord{15, 0, 177}, + dictWord{15, 0, 193}, + dictWord{4, 10, 926}, + dictWord{ + 133, + 10, + 983, + }, + dictWord{5, 0, 354}, + dictWord{135, 11, 506}, + dictWord{8, 0, 598}, + dictWord{9, 0, 664}, + dictWord{138, 0, 441}, + dictWord{4, 11, 640}, + dictWord{ + 133, + 11, + 513, + }, + dictWord{137, 0, 297}, + dictWord{132, 10, 538}, + dictWord{6, 10, 294}, + dictWord{7, 10, 1267}, + dictWord{136, 10, 624}, + dictWord{7, 0, 1772}, + dictWord{ + 7, + 11, + 1888, + }, + dictWord{8, 11, 289}, + dictWord{11, 11, 45}, + dictWord{12, 11, 278}, + dictWord{140, 11, 537}, + dictWord{135, 10, 1325}, + dictWord{138, 0, 751}, + dictWord{141, 0, 37}, + dictWord{134, 0, 1828}, + dictWord{132, 10, 757}, + dictWord{132, 11, 394}, + dictWord{6, 0, 257}, + dictWord{135, 0, 1522}, + dictWord{ + 4, + 0, + 582, + }, + dictWord{9, 0, 191}, + dictWord{135, 11, 1931}, + dictWord{7, 11, 574}, + dictWord{7, 11, 1719}, + dictWord{137, 11, 145}, + dictWord{132, 11, 658}, + dictWord{10, 0, 790}, + dictWord{132, 11, 369}, + dictWord{9, 11, 781}, + dictWord{10, 11, 144}, + dictWord{11, 11, 385}, + dictWord{13, 11, 161}, + dictWord{13, 11, 228}, + dictWord{13, 11, 268}, + dictWord{148, 11, 107}, + dictWord{8, 0, 469}, + dictWord{10, 0, 47}, + dictWord{136, 11, 374}, + dictWord{6, 0, 306}, + dictWord{7, 0, 1140}, + dictWord{7, 0, 1340}, + dictWord{8, 0, 133}, + dictWord{138, 0, 449}, + dictWord{139, 0, 1011}, + dictWord{7, 10, 1875}, + dictWord{139, 10, 124}, + dictWord{ + 4, + 11, + 344, + }, + dictWord{6, 11, 498}, + dictWord{139, 11, 323}, + dictWord{137, 0, 299}, + dictWord{132, 0, 837}, + dictWord{133, 11, 906}, + dictWord{5, 0, 329}, + dictWord{ + 8, + 0, + 260, + }, + dictWord{138, 0, 10}, + dictWord{134, 0, 1320}, + dictWord{4, 0, 657}, + dictWord{146, 0, 158}, + dictWord{135, 0, 1191}, + dictWord{152, 0, 7}, + dictWord{ + 6, + 0, + 1939, + }, + dictWord{8, 0, 974}, + dictWord{138, 0, 996}, + dictWord{135, 0, 1665}, + dictWord{11, 11, 126}, + dictWord{139, 11, 287}, + dictWord{143, 0, 8}, + dictWord{ + 14, + 11, + 149, + }, + dictWord{14, 11, 399}, + dictWord{143, 11, 57}, + dictWord{5, 0, 66}, + dictWord{7, 0, 1896}, + dictWord{136, 0, 288}, + dictWord{7, 0, 175}, + dictWord{ + 10, + 0, + 494, + }, + dictWord{5, 10, 150}, + dictWord{8, 10, 603}, + dictWord{9, 10, 593}, + dictWord{9, 10, 634}, + dictWord{10, 10, 173}, + dictWord{11, 10, 462}, + dictWord{ + 11, + 10, + 515, + }, + dictWord{13, 10, 216}, + dictWord{13, 10, 288}, + dictWord{142, 10, 400}, + dictWord{134, 0, 1643}, + dictWord{136, 11, 21}, + dictWord{4, 0, 21}, + dictWord{ + 5, + 0, + 91, + }, + dictWord{5, 0, 648}, + dictWord{5, 0, 750}, + dictWord{5, 0, 781}, + dictWord{6, 0, 54}, + dictWord{6, 0, 112}, + dictWord{6, 0, 402}, + dictWord{6, 0, 1732}, + dictWord{ + 7, + 0, + 315, + }, + dictWord{7, 0, 749}, + dictWord{7, 0, 1427}, + dictWord{7, 0, 1900}, + dictWord{9, 0, 78}, + dictWord{9, 0, 508}, + dictWord{10, 0, 611}, + dictWord{10, 0, 811}, + dictWord{11, 0, 510}, + dictWord{11, 0, 728}, + dictWord{13, 0, 36}, + dictWord{14, 0, 39}, + dictWord{16, 0, 83}, + dictWord{17, 0, 124}, + dictWord{148, 0, 30}, + dictWord{ + 4, + 0, + 668, + }, + dictWord{136, 0, 570}, + dictWord{10, 0, 322}, + dictWord{10, 0, 719}, + dictWord{139, 0, 407}, + dictWord{135, 11, 1381}, + dictWord{136, 11, 193}, + dictWord{12, 10, 108}, + dictWord{141, 10, 291}, + dictWord{132, 11, 616}, + dictWord{136, 11, 692}, + dictWord{8, 0, 125}, + dictWord{8, 0, 369}, + dictWord{8, 0, 524}, + dictWord{10, 0, 486}, + dictWord{11, 0, 13}, + dictWord{11, 0, 381}, + dictWord{11, 0, 736}, + dictWord{11, 0, 766}, + dictWord{11, 0, 845}, + dictWord{13, 0, 114}, + dictWord{ + 13, + 0, + 292, + }, + dictWord{142, 0, 47}, + dictWord{134, 0, 1247}, + dictWord{6, 0, 1684}, + dictWord{6, 0, 1731}, + dictWord{7, 0, 356}, + dictWord{8, 0, 54}, + dictWord{8, 0, 221}, + dictWord{9, 0, 225}, + dictWord{9, 0, 356}, + dictWord{10, 0, 77}, + dictWord{10, 0, 446}, + dictWord{10, 0, 731}, + dictWord{12, 0, 404}, + dictWord{141, 0, 491}, + dictWord{135, 10, 1777}, + dictWord{4, 11, 305}, + dictWord{4, 10, 493}, + dictWord{144, 10, 55}, + dictWord{4, 0, 951}, + dictWord{6, 0, 1809}, + dictWord{6, 0, 1849}, + dictWord{8, 0, 846}, + dictWord{8, 0, 866}, + dictWord{8, 0, 899}, + dictWord{10, 0, 896}, + dictWord{12, 0, 694}, + dictWord{142, 0, 468}, + dictWord{5, 11, 214}, + dictWord{ + 7, + 11, + 603, + }, + dictWord{8, 11, 611}, + dictWord{9, 11, 686}, + dictWord{10, 11, 88}, + dictWord{11, 11, 459}, + dictWord{11, 11, 496}, + dictWord{12, 11, 463}, + dictWord{ + 12, + 11, + 590, + }, + dictWord{13, 11, 0}, + dictWord{142, 11, 214}, + dictWord{132, 0, 411}, + dictWord{4, 0, 80}, + dictWord{133, 0, 44}, + dictWord{140, 11, 74}, + dictWord{ + 143, + 0, + 31, + }, + dictWord{7, 0, 669}, + dictWord{6, 10, 568}, + dictWord{7, 10, 1804}, + dictWord{8, 10, 362}, + dictWord{8, 10, 410}, + dictWord{8, 10, 830}, + dictWord{9, 10, 514}, + dictWord{11, 10, 649}, + dictWord{142, 10, 157}, + dictWord{7, 0, 673}, + dictWord{134, 11, 1703}, + dictWord{132, 10, 625}, + dictWord{134, 0, 1303}, + dictWord{ + 5, + 0, + 299, + }, + dictWord{135, 0, 1083}, + dictWord{138, 0, 704}, + dictWord{6, 0, 275}, + dictWord{7, 0, 408}, + dictWord{6, 10, 158}, + dictWord{7, 10, 129}, + dictWord{ + 7, + 10, + 181, + }, + dictWord{8, 10, 276}, + dictWord{8, 10, 377}, + dictWord{10, 10, 523}, + dictWord{11, 10, 816}, + dictWord{12, 10, 455}, + dictWord{13, 10, 303}, + dictWord{ + 142, + 10, + 135, + }, + dictWord{4, 0, 219}, + dictWord{7, 0, 367}, + dictWord{7, 0, 1713}, + dictWord{7, 0, 1761}, + dictWord{9, 0, 86}, + dictWord{9, 0, 537}, + dictWord{10, 0, 165}, + dictWord{12, 0, 219}, + dictWord{140, 0, 561}, + dictWord{8, 0, 216}, + dictWord{4, 10, 1}, + dictWord{4, 11, 737}, + dictWord{6, 11, 317}, + dictWord{7, 10, 1143}, + dictWord{ + 7, + 10, + 1463, + }, + dictWord{9, 10, 207}, + dictWord{9, 10, 390}, + dictWord{9, 10, 467}, + dictWord{10, 11, 98}, + dictWord{11, 11, 294}, + dictWord{11, 10, 836}, + dictWord{ + 12, + 11, + 60, + }, + dictWord{12, 11, 437}, + dictWord{13, 11, 64}, + dictWord{13, 11, 380}, + dictWord{142, 11, 430}, + dictWord{6, 11, 1758}, + dictWord{8, 11, 520}, + dictWord{9, 11, 345}, + dictWord{9, 11, 403}, + dictWord{142, 11, 350}, + dictWord{5, 11, 47}, + dictWord{10, 11, 242}, + dictWord{138, 11, 579}, + dictWord{5, 11, 139}, + dictWord{7, 11, 1168}, + dictWord{138, 11, 539}, + dictWord{135, 0, 1319}, + dictWord{4, 10, 295}, + dictWord{4, 10, 723}, + dictWord{5, 10, 895}, + dictWord{ + 7, + 10, + 1031, + }, + dictWord{8, 10, 199}, + dictWord{8, 10, 340}, + dictWord{9, 10, 153}, + dictWord{9, 10, 215}, + dictWord{10, 10, 21}, + dictWord{10, 10, 59}, + dictWord{ + 10, + 10, + 80, + }, + dictWord{10, 10, 224}, + dictWord{10, 10, 838}, + dictWord{11, 10, 229}, + dictWord{11, 10, 652}, + dictWord{12, 10, 192}, + dictWord{13, 10, 146}, + dictWord{ + 142, + 10, + 91, + }, + dictWord{140, 0, 428}, + dictWord{137, 10, 51}, + dictWord{133, 0, 514}, + dictWord{5, 10, 309}, + dictWord{140, 10, 211}, + dictWord{6, 0, 1010}, + dictWord{5, 10, 125}, + dictWord{8, 10, 77}, + dictWord{138, 10, 15}, + dictWord{4, 0, 55}, + dictWord{5, 0, 301}, + dictWord{6, 0, 571}, + dictWord{142, 0, 49}, + dictWord{ + 146, + 0, + 102, + }, + dictWord{136, 11, 370}, + dictWord{4, 11, 107}, + dictWord{7, 11, 613}, + dictWord{8, 11, 358}, + dictWord{8, 11, 439}, + dictWord{8, 11, 504}, + dictWord{ + 9, + 11, + 501, + }, + dictWord{10, 11, 383}, + dictWord{139, 11, 477}, + dictWord{132, 11, 229}, + dictWord{133, 0, 364}, + dictWord{133, 10, 439}, + dictWord{4, 11, 903}, + dictWord{135, 11, 1816}, + dictWord{11, 0, 379}, + dictWord{140, 10, 76}, + dictWord{4, 0, 76}, + dictWord{4, 0, 971}, + dictWord{7, 0, 1550}, + dictWord{9, 0, 306}, + dictWord{ + 9, + 0, + 430, + }, + dictWord{9, 0, 663}, + dictWord{10, 0, 683}, + dictWord{10, 0, 921}, + dictWord{11, 0, 427}, + dictWord{11, 0, 753}, + dictWord{12, 0, 334}, + dictWord{12, 0, 442}, + dictWord{14, 0, 258}, + dictWord{14, 0, 366}, + dictWord{143, 0, 131}, + dictWord{137, 0, 52}, + dictWord{4, 11, 47}, + dictWord{6, 11, 373}, + dictWord{7, 11, 452}, + dictWord{7, 11, 543}, + dictWord{7, 11, 1714}, + dictWord{7, 11, 1856}, + dictWord{9, 11, 6}, + dictWord{11, 11, 257}, + dictWord{139, 11, 391}, + dictWord{4, 10, 8}, + dictWord{ + 7, + 10, + 1152, + }, + dictWord{7, 10, 1153}, + dictWord{7, 10, 1715}, + dictWord{9, 10, 374}, + dictWord{10, 10, 478}, + dictWord{139, 10, 648}, + dictWord{4, 11, 785}, + dictWord{133, 11, 368}, + dictWord{135, 10, 1099}, + dictWord{135, 11, 860}, + dictWord{5, 11, 980}, + dictWord{134, 11, 1754}, + dictWord{134, 0, 1258}, + dictWord{ + 6, + 0, + 1058, + }, + dictWord{6, 0, 1359}, + dictWord{7, 11, 536}, + dictWord{7, 11, 1331}, + dictWord{136, 11, 143}, + dictWord{4, 0, 656}, + dictWord{135, 0, 779}, + dictWord{136, 10, 87}, + dictWord{5, 11, 19}, + dictWord{6, 11, 533}, + dictWord{146, 11, 126}, + dictWord{7, 0, 144}, + dictWord{138, 10, 438}, + dictWord{5, 11, 395}, + dictWord{5, 11, 951}, + dictWord{134, 11, 1776}, + dictWord{135, 0, 1373}, + dictWord{7, 0, 554}, + dictWord{7, 0, 605}, + dictWord{141, 0, 10}, + dictWord{4, 10, 69}, + dictWord{ + 5, + 10, + 122, + }, + dictWord{9, 10, 656}, + dictWord{138, 10, 464}, + dictWord{5, 10, 849}, + dictWord{134, 10, 1633}, + dictWord{5, 0, 838}, + dictWord{5, 0, 841}, + dictWord{134, 0, 1649}, + dictWord{133, 0, 1012}, + dictWord{139, 10, 499}, + dictWord{7, 10, 476}, + dictWord{7, 10, 1592}, + dictWord{138, 10, 87}, + dictWord{ + 6, + 0, + 251, + }, + dictWord{7, 0, 365}, + dictWord{7, 0, 1357}, + dictWord{7, 0, 1497}, + dictWord{8, 0, 154}, + dictWord{141, 0, 281}, + dictWord{132, 11, 441}, + dictWord{ + 132, + 11, + 695, + }, + dictWord{7, 11, 497}, + dictWord{9, 11, 387}, + dictWord{147, 11, 81}, + dictWord{133, 0, 340}, + dictWord{14, 10, 283}, + dictWord{142, 11, 283}, + dictWord{ + 134, + 0, + 810, + }, + dictWord{135, 11, 1894}, + dictWord{139, 0, 495}, + dictWord{5, 11, 284}, + dictWord{6, 11, 49}, + dictWord{6, 11, 350}, + dictWord{7, 11, 1}, + dictWord{ + 7, + 11, + 377, + }, + dictWord{7, 11, 1693}, + dictWord{8, 11, 18}, + dictWord{8, 11, 678}, + dictWord{9, 11, 161}, + dictWord{9, 11, 585}, + dictWord{9, 11, 671}, + dictWord{ + 9, + 11, + 839, + }, + dictWord{11, 11, 912}, + dictWord{141, 11, 427}, + dictWord{5, 10, 859}, + dictWord{7, 10, 1160}, + dictWord{8, 10, 107}, + dictWord{9, 10, 291}, + dictWord{ + 9, + 10, + 439, + }, + dictWord{10, 10, 663}, + dictWord{11, 10, 609}, + dictWord{140, 10, 197}, + dictWord{8, 0, 261}, + dictWord{9, 0, 144}, + dictWord{9, 0, 466}, + dictWord{ + 10, + 0, + 370, + }, + dictWord{12, 0, 470}, + dictWord{13, 0, 144}, + dictWord{142, 0, 348}, + dictWord{137, 0, 897}, + dictWord{6, 0, 248}, + dictWord{9, 0, 546}, + dictWord{10, 0, 535}, + dictWord{11, 0, 681}, + dictWord{141, 0, 135}, + dictWord{4, 0, 358}, + dictWord{135, 0, 1496}, + dictWord{134, 0, 567}, + dictWord{136, 0, 445}, + dictWord{ + 4, + 10, + 117, + }, + dictWord{6, 10, 372}, + dictWord{7, 10, 1905}, + dictWord{142, 10, 323}, + dictWord{4, 10, 722}, + dictWord{139, 10, 471}, + dictWord{6, 0, 697}, + dictWord{ + 134, + 0, + 996, + }, + dictWord{7, 11, 2007}, + dictWord{9, 11, 101}, + dictWord{9, 11, 450}, + dictWord{10, 11, 66}, + dictWord{10, 11, 842}, + dictWord{11, 11, 536}, + dictWord{ + 140, + 11, + 587, + }, + dictWord{132, 0, 577}, + dictWord{134, 0, 1336}, + dictWord{9, 10, 5}, + dictWord{12, 10, 216}, + dictWord{12, 10, 294}, + dictWord{12, 10, 298}, + dictWord{12, 10, 400}, + dictWord{12, 10, 518}, + dictWord{13, 10, 229}, + dictWord{143, 10, 139}, + dictWord{6, 0, 174}, + dictWord{138, 0, 917}, + dictWord{ + 134, + 10, + 1774, + }, + dictWord{5, 10, 12}, + dictWord{7, 10, 375}, + dictWord{9, 10, 88}, + dictWord{9, 10, 438}, + dictWord{11, 11, 62}, + dictWord{139, 10, 270}, + dictWord{ + 134, + 11, + 1766, + }, + dictWord{6, 11, 0}, + dictWord{7, 11, 84}, + dictWord{7, 10, 816}, + dictWord{7, 10, 1241}, + dictWord{9, 10, 283}, + dictWord{9, 10, 520}, + dictWord{10, 10, 213}, + dictWord{10, 10, 307}, + dictWord{10, 10, 463}, + dictWord{10, 10, 671}, + dictWord{10, 10, 746}, + dictWord{11, 10, 401}, + dictWord{11, 10, 794}, + dictWord{ + 11, + 11, + 895, + }, + dictWord{12, 10, 517}, + dictWord{17, 11, 11}, + dictWord{18, 10, 107}, + dictWord{147, 10, 115}, + dictWord{5, 0, 878}, + dictWord{133, 0, 972}, + dictWord{ + 6, + 11, + 1665, + }, + dictWord{7, 11, 256}, + dictWord{7, 11, 1388}, + dictWord{138, 11, 499}, + dictWord{4, 10, 258}, + dictWord{136, 10, 639}, + dictWord{4, 11, 22}, + dictWord{5, 11, 10}, + dictWord{6, 10, 22}, + dictWord{7, 11, 848}, + dictWord{7, 10, 903}, + dictWord{7, 10, 1963}, + dictWord{8, 11, 97}, + dictWord{138, 10, 577}, + dictWord{ + 5, + 10, + 681, + }, + dictWord{136, 10, 782}, + dictWord{133, 11, 481}, + dictWord{132, 0, 351}, + dictWord{4, 10, 664}, + dictWord{5, 10, 804}, + dictWord{139, 10, 1013}, + dictWord{6, 11, 134}, + dictWord{7, 11, 437}, + dictWord{7, 11, 959}, + dictWord{9, 11, 37}, + dictWord{14, 11, 285}, + dictWord{14, 11, 371}, + dictWord{144, 11, 60}, + dictWord{7, 11, 486}, + dictWord{8, 11, 155}, + dictWord{11, 11, 93}, + dictWord{140, 11, 164}, + dictWord{132, 0, 286}, + dictWord{7, 0, 438}, + dictWord{7, 0, 627}, + dictWord{7, 0, 1516}, + dictWord{8, 0, 40}, + dictWord{9, 0, 56}, + dictWord{9, 0, 294}, + dictWord{10, 0, 30}, + dictWord{11, 0, 969}, + dictWord{11, 0, 995}, + dictWord{146, 0, 148}, + dictWord{5, 11, 591}, + dictWord{135, 11, 337}, + dictWord{134, 0, 1950}, + dictWord{133, 10, 32}, + dictWord{138, 11, 500}, + dictWord{5, 11, 380}, + dictWord{ + 5, + 11, + 650, + }, + dictWord{136, 11, 310}, + dictWord{4, 11, 364}, + dictWord{7, 11, 1156}, + dictWord{7, 11, 1187}, + dictWord{137, 11, 409}, + dictWord{4, 0, 738}, + dictWord{134, 11, 482}, + dictWord{4, 11, 781}, + dictWord{6, 11, 487}, + dictWord{7, 11, 926}, + dictWord{8, 11, 263}, + dictWord{139, 11, 500}, + dictWord{135, 11, 418}, + dictWord{6, 0, 2047}, + dictWord{10, 0, 969}, + dictWord{4, 10, 289}, + dictWord{7, 10, 629}, + dictWord{7, 10, 1698}, + dictWord{7, 10, 1711}, + dictWord{ + 140, + 10, + 215, + }, + dictWord{6, 10, 450}, + dictWord{136, 10, 109}, + dictWord{134, 0, 818}, + dictWord{136, 10, 705}, + dictWord{133, 0, 866}, + dictWord{4, 11, 94}, + dictWord{ + 135, + 11, + 1265, + }, + dictWord{132, 11, 417}, + dictWord{134, 0, 1467}, + dictWord{135, 10, 1238}, + dictWord{4, 0, 972}, + dictWord{6, 0, 1851}, + dictWord{ + 134, + 0, + 1857, + }, + dictWord{134, 0, 355}, + dictWord{133, 0, 116}, + dictWord{132, 0, 457}, + dictWord{135, 11, 1411}, + dictWord{4, 11, 408}, + dictWord{4, 11, 741}, + dictWord{135, 11, 500}, + dictWord{134, 10, 26}, + dictWord{142, 11, 137}, + dictWord{5, 0, 527}, + dictWord{6, 0, 189}, + dictWord{7, 0, 859}, + dictWord{136, 0, 267}, + dictWord{11, 0, 104}, + dictWord{11, 0, 554}, + dictWord{15, 0, 60}, + dictWord{143, 0, 125}, + dictWord{134, 0, 1613}, + dictWord{4, 10, 414}, + dictWord{5, 10, 467}, + dictWord{ + 9, + 10, + 654, + }, + dictWord{10, 10, 451}, + dictWord{12, 10, 59}, + dictWord{141, 10, 375}, + dictWord{135, 10, 17}, + dictWord{134, 0, 116}, + dictWord{135, 11, 541}, + dictWord{135, 10, 955}, + dictWord{6, 11, 73}, + dictWord{135, 11, 177}, + dictWord{133, 11, 576}, + dictWord{134, 0, 886}, + dictWord{133, 0, 487}, + dictWord{ + 4, + 0, + 86, + }, + dictWord{5, 0, 667}, + dictWord{5, 0, 753}, + dictWord{6, 0, 316}, + dictWord{6, 0, 455}, + dictWord{135, 0, 946}, + dictWord{142, 11, 231}, + dictWord{150, 0, 45}, + dictWord{134, 0, 863}, + dictWord{134, 0, 1953}, + dictWord{6, 10, 280}, + dictWord{10, 10, 502}, + dictWord{11, 10, 344}, + dictWord{140, 10, 38}, + dictWord{4, 0, 79}, + dictWord{7, 0, 1773}, + dictWord{10, 0, 450}, + dictWord{11, 0, 589}, + dictWord{13, 0, 332}, + dictWord{13, 0, 493}, + dictWord{14, 0, 183}, + dictWord{14, 0, 334}, + dictWord{14, 0, 362}, + dictWord{14, 0, 368}, + dictWord{14, 0, 376}, + dictWord{14, 0, 379}, + dictWord{19, 0, 90}, + dictWord{19, 0, 103}, + dictWord{19, 0, 127}, + dictWord{ + 148, + 0, + 90, + }, + dictWord{5, 10, 45}, + dictWord{7, 10, 1161}, + dictWord{11, 10, 448}, + dictWord{11, 10, 880}, + dictWord{13, 10, 139}, + dictWord{13, 10, 407}, + dictWord{ + 15, + 10, + 16, + }, + dictWord{17, 10, 95}, + dictWord{18, 10, 66}, + dictWord{18, 10, 88}, + dictWord{18, 10, 123}, + dictWord{149, 10, 7}, + dictWord{136, 10, 777}, + dictWord{ + 4, + 10, + 410, + }, + dictWord{135, 10, 521}, + dictWord{135, 10, 1778}, + dictWord{135, 11, 538}, + dictWord{142, 0, 381}, + dictWord{133, 11, 413}, + dictWord{ + 134, + 0, + 1142, + }, + dictWord{6, 0, 1189}, + dictWord{136, 11, 495}, + dictWord{5, 0, 663}, + dictWord{6, 0, 1962}, + dictWord{134, 0, 2003}, + dictWord{7, 11, 54}, + dictWord{ + 8, + 11, + 312, + }, + dictWord{10, 11, 191}, + dictWord{10, 11, 614}, + dictWord{140, 11, 567}, + dictWord{132, 10, 436}, + dictWord{133, 0, 846}, + dictWord{10, 0, 528}, + dictWord{11, 0, 504}, + dictWord{7, 10, 1587}, + dictWord{135, 10, 1707}, + dictWord{5, 0, 378}, + dictWord{8, 0, 465}, + dictWord{9, 0, 286}, + dictWord{10, 0, 185}, + dictWord{ + 10, + 0, + 562, + }, + dictWord{10, 0, 635}, + dictWord{11, 0, 31}, + dictWord{11, 0, 393}, + dictWord{13, 0, 312}, + dictWord{18, 0, 65}, + dictWord{18, 0, 96}, + dictWord{147, 0, 89}, + dictWord{7, 0, 899}, + dictWord{14, 0, 325}, + dictWord{6, 11, 468}, + dictWord{7, 11, 567}, + dictWord{7, 11, 1478}, + dictWord{8, 11, 530}, + dictWord{142, 11, 290}, + dictWord{7, 0, 1880}, + dictWord{9, 0, 680}, + dictWord{139, 0, 798}, + dictWord{134, 0, 1770}, + dictWord{132, 0, 648}, + dictWord{150, 11, 35}, + dictWord{5, 0, 945}, + dictWord{6, 0, 1656}, + dictWord{6, 0, 1787}, + dictWord{7, 0, 167}, + dictWord{8, 0, 824}, + dictWord{9, 0, 391}, + dictWord{10, 0, 375}, + dictWord{139, 0, 185}, + dictWord{ + 6, + 11, + 484, + }, + dictWord{135, 11, 822}, + dictWord{134, 0, 2046}, + dictWord{7, 0, 1645}, + dictWord{8, 0, 352}, + dictWord{137, 0, 249}, + dictWord{132, 0, 152}, + dictWord{6, 0, 611}, + dictWord{135, 0, 1733}, + dictWord{6, 11, 1724}, + dictWord{135, 11, 2022}, + dictWord{133, 0, 1006}, + dictWord{141, 11, 96}, + dictWord{ + 5, + 0, + 420, + }, + dictWord{135, 0, 1449}, + dictWord{146, 11, 149}, + dictWord{135, 0, 832}, + dictWord{135, 10, 663}, + dictWord{133, 0, 351}, + dictWord{5, 0, 40}, + dictWord{ + 7, + 0, + 598, + }, + dictWord{7, 0, 1638}, + dictWord{8, 0, 78}, + dictWord{9, 0, 166}, + dictWord{9, 0, 640}, + dictWord{9, 0, 685}, + dictWord{9, 0, 773}, + dictWord{11, 0, 215}, + dictWord{13, 0, 65}, + dictWord{14, 0, 172}, + dictWord{14, 0, 317}, + dictWord{145, 0, 6}, + dictWord{8, 0, 60}, + dictWord{9, 0, 343}, + dictWord{139, 0, 769}, + dictWord{ + 134, + 0, + 1354, + }, + dictWord{132, 0, 724}, + dictWord{137, 0, 745}, + dictWord{132, 11, 474}, + dictWord{7, 0, 1951}, + dictWord{8, 0, 765}, + dictWord{8, 0, 772}, + dictWord{ + 140, + 0, + 671, + }, + dictWord{7, 0, 108}, + dictWord{8, 0, 219}, + dictWord{8, 0, 388}, + dictWord{9, 0, 775}, + dictWord{11, 0, 275}, + dictWord{140, 0, 464}, + dictWord{137, 0, 639}, + dictWord{135, 10, 503}, + dictWord{133, 11, 366}, + dictWord{5, 0, 15}, + dictWord{6, 0, 56}, + dictWord{7, 0, 1758}, + dictWord{8, 0, 500}, + dictWord{9, 0, 730}, + dictWord{ + 11, + 0, + 331, + }, + dictWord{13, 0, 150}, + dictWord{14, 0, 282}, + dictWord{5, 11, 305}, + dictWord{9, 11, 560}, + dictWord{141, 11, 208}, + dictWord{4, 10, 113}, + dictWord{ + 5, + 10, + 163, + }, + dictWord{5, 10, 735}, + dictWord{7, 10, 1009}, + dictWord{9, 10, 9}, + dictWord{9, 10, 771}, + dictWord{12, 10, 90}, + dictWord{13, 10, 138}, + dictWord{ + 13, + 10, + 410, + }, + dictWord{143, 10, 128}, + dictWord{4, 10, 324}, + dictWord{138, 10, 104}, + dictWord{135, 11, 466}, + dictWord{142, 11, 27}, + dictWord{134, 0, 1886}, + dictWord{5, 0, 205}, + dictWord{6, 0, 438}, + dictWord{9, 0, 711}, + dictWord{4, 11, 480}, + dictWord{6, 11, 167}, + dictWord{6, 11, 302}, + dictWord{6, 11, 1642}, + dictWord{ + 7, + 11, + 130, + }, + dictWord{7, 11, 656}, + dictWord{7, 11, 837}, + dictWord{7, 11, 1547}, + dictWord{7, 11, 1657}, + dictWord{8, 11, 429}, + dictWord{9, 11, 228}, + dictWord{ + 10, + 11, + 643, + }, + dictWord{13, 11, 289}, + dictWord{13, 11, 343}, + dictWord{147, 11, 101}, + dictWord{134, 0, 865}, + dictWord{6, 0, 2025}, + dictWord{136, 0, 965}, + dictWord{ + 7, + 11, + 278, + }, + dictWord{10, 11, 739}, + dictWord{11, 11, 708}, + dictWord{141, 11, 348}, + dictWord{133, 0, 534}, + dictWord{135, 11, 1922}, + dictWord{ + 137, + 0, + 691, + }, + dictWord{4, 10, 935}, + dictWord{133, 10, 823}, + dictWord{6, 0, 443}, + dictWord{9, 0, 237}, + dictWord{9, 0, 571}, + dictWord{9, 0, 695}, + dictWord{10, 0, 139}, + dictWord{11, 0, 715}, + dictWord{12, 0, 417}, + dictWord{141, 0, 421}, + dictWord{5, 10, 269}, + dictWord{7, 10, 434}, + dictWord{7, 10, 891}, + dictWord{8, 10, 339}, + dictWord{ + 9, + 10, + 702, + }, + dictWord{11, 10, 594}, + dictWord{11, 10, 718}, + dictWord{145, 10, 100}, + dictWord{6, 0, 1555}, + dictWord{7, 0, 878}, + dictWord{9, 10, 485}, + dictWord{141, 10, 264}, + dictWord{134, 10, 1713}, + dictWord{7, 10, 1810}, + dictWord{11, 10, 866}, + dictWord{12, 10, 103}, + dictWord{141, 10, 495}, + dictWord{ + 135, + 10, + 900, + }, + dictWord{6, 0, 1410}, + dictWord{9, 11, 316}, + dictWord{139, 11, 256}, + dictWord{4, 0, 995}, + dictWord{135, 0, 1033}, + dictWord{132, 0, 578}, + dictWord{10, 0, 881}, + dictWord{12, 0, 740}, + dictWord{12, 0, 743}, + dictWord{140, 0, 759}, + dictWord{132, 0, 822}, + dictWord{133, 0, 923}, + dictWord{142, 10, 143}, + dictWord{135, 11, 1696}, + dictWord{6, 11, 363}, + dictWord{7, 11, 1955}, + dictWord{136, 11, 725}, + dictWord{132, 0, 924}, + dictWord{133, 0, 665}, + dictWord{ + 135, + 10, + 2029, + }, + dictWord{135, 0, 1901}, + dictWord{4, 0, 265}, + dictWord{6, 0, 1092}, + dictWord{6, 0, 1417}, + dictWord{7, 0, 807}, + dictWord{135, 0, 950}, + dictWord{ + 5, + 0, + 93, + }, + dictWord{12, 0, 267}, + dictWord{141, 0, 498}, + dictWord{135, 0, 1451}, + dictWord{5, 11, 813}, + dictWord{135, 11, 2046}, + dictWord{5, 10, 625}, + dictWord{135, 10, 1617}, + dictWord{135, 0, 747}, + dictWord{6, 0, 788}, + dictWord{137, 0, 828}, + dictWord{7, 0, 184}, + dictWord{11, 0, 307}, + dictWord{11, 0, 400}, + dictWord{15, 0, 130}, + dictWord{5, 11, 712}, + dictWord{7, 11, 1855}, + dictWord{8, 10, 425}, + dictWord{8, 10, 693}, + dictWord{9, 10, 720}, + dictWord{10, 10, 380}, + dictWord{10, 10, 638}, + dictWord{11, 11, 17}, + dictWord{11, 10, 473}, + dictWord{12, 10, 61}, + dictWord{13, 11, 321}, + dictWord{144, 11, 67}, + dictWord{135, 0, 198}, + dictWord{6, 11, 320}, + dictWord{7, 11, 781}, + dictWord{7, 11, 1921}, + dictWord{9, 11, 55}, + dictWord{10, 11, 186}, + dictWord{10, 11, 273}, + dictWord{10, 11, 664}, + dictWord{10, 11, 801}, + dictWord{11, 11, 996}, + dictWord{11, 11, 997}, + dictWord{13, 11, 157}, + dictWord{142, 11, 170}, + dictWord{136, 11, 271}, + dictWord{ + 135, + 0, + 994, + }, + dictWord{7, 11, 103}, + dictWord{7, 11, 863}, + dictWord{11, 11, 184}, + dictWord{14, 11, 299}, + dictWord{145, 11, 62}, + dictWord{11, 10, 551}, + dictWord{142, 10, 159}, + dictWord{5, 0, 233}, + dictWord{5, 0, 320}, + dictWord{6, 0, 140}, + dictWord{8, 0, 295}, + dictWord{8, 0, 615}, + dictWord{136, 11, 615}, + dictWord{ + 133, + 0, + 978, + }, + dictWord{4, 0, 905}, + dictWord{6, 0, 1701}, + dictWord{137, 0, 843}, + dictWord{132, 10, 168}, + dictWord{4, 0, 974}, + dictWord{8, 0, 850}, + dictWord{ + 12, + 0, + 709, + }, + dictWord{12, 0, 768}, + dictWord{140, 0, 786}, + dictWord{135, 10, 91}, + dictWord{152, 0, 6}, + dictWord{138, 10, 532}, + dictWord{135, 10, 1884}, + dictWord{132, 0, 509}, + dictWord{6, 0, 1307}, + dictWord{135, 0, 273}, + dictWord{5, 11, 77}, + dictWord{7, 11, 1455}, + dictWord{10, 11, 843}, + dictWord{19, 11, 73}, + dictWord{150, 11, 5}, + dictWord{132, 11, 458}, + dictWord{135, 11, 1420}, + dictWord{6, 11, 109}, + dictWord{138, 11, 382}, + dictWord{6, 0, 201}, + dictWord{6, 11, 330}, + dictWord{7, 10, 70}, + dictWord{7, 11, 1084}, + dictWord{10, 10, 240}, + dictWord{11, 11, 142}, + dictWord{147, 10, 93}, + dictWord{7, 0, 1041}, + dictWord{ + 140, + 11, + 328, + }, + dictWord{133, 11, 354}, + dictWord{134, 0, 1040}, + dictWord{133, 0, 693}, + dictWord{134, 0, 774}, + dictWord{139, 0, 234}, + dictWord{132, 0, 336}, + dictWord{7, 0, 1399}, + dictWord{139, 10, 392}, + dictWord{20, 0, 22}, + dictWord{148, 11, 22}, + dictWord{5, 0, 802}, + dictWord{7, 0, 2021}, + dictWord{136, 0, 805}, + dictWord{ + 5, + 0, + 167, + }, + dictWord{5, 0, 899}, + dictWord{6, 0, 410}, + dictWord{137, 0, 777}, + dictWord{137, 0, 789}, + dictWord{134, 0, 1705}, + dictWord{7, 10, 655}, + dictWord{ + 135, + 10, + 1844, + }, + dictWord{4, 10, 145}, + dictWord{6, 10, 176}, + dictWord{7, 10, 395}, + dictWord{137, 10, 562}, + dictWord{132, 10, 501}, + dictWord{135, 0, 10}, + dictWord{5, 0, 11}, + dictWord{6, 0, 117}, + dictWord{6, 0, 485}, + dictWord{7, 0, 1133}, + dictWord{9, 0, 582}, + dictWord{9, 0, 594}, + dictWord{10, 0, 82}, + dictWord{11, 0, 21}, + dictWord{11, 0, 818}, + dictWord{12, 0, 535}, + dictWord{13, 0, 86}, + dictWord{20, 0, 91}, + dictWord{23, 0, 13}, + dictWord{134, 10, 509}, + dictWord{4, 0, 264}, + dictWord{ + 7, + 0, + 1067, + }, + dictWord{8, 0, 204}, + dictWord{8, 0, 385}, + dictWord{139, 0, 953}, + dictWord{139, 11, 737}, + dictWord{138, 0, 56}, + dictWord{134, 0, 1917}, + dictWord{ + 133, + 0, + 470, + }, + dictWord{10, 11, 657}, + dictWord{14, 11, 297}, + dictWord{142, 11, 361}, + dictWord{135, 11, 412}, + dictWord{7, 0, 1198}, + dictWord{7, 11, 1198}, + dictWord{8, 11, 556}, + dictWord{14, 11, 123}, + dictWord{14, 11, 192}, + dictWord{143, 11, 27}, + dictWord{7, 11, 1985}, + dictWord{14, 11, 146}, + dictWord{15, 11, 42}, + dictWord{16, 11, 23}, + dictWord{17, 11, 86}, + dictWord{146, 11, 17}, + dictWord{11, 0, 1015}, + dictWord{136, 11, 122}, + dictWord{4, 10, 114}, + dictWord{ + 9, + 10, + 492, + }, + dictWord{13, 10, 462}, + dictWord{142, 10, 215}, + dictWord{4, 10, 77}, + dictWord{5, 10, 361}, + dictWord{6, 10, 139}, + dictWord{6, 10, 401}, + dictWord{ + 6, + 10, + 404, + }, + dictWord{7, 10, 413}, + dictWord{7, 10, 715}, + dictWord{7, 10, 1716}, + dictWord{11, 10, 279}, + dictWord{12, 10, 179}, + dictWord{12, 10, 258}, + dictWord{ + 13, + 10, + 244, + }, + dictWord{142, 10, 358}, + dictWord{134, 10, 1717}, + dictWord{7, 10, 1061}, + dictWord{8, 10, 82}, + dictWord{11, 10, 250}, + dictWord{12, 10, 420}, + dictWord{141, 10, 184}, + dictWord{133, 0, 715}, + dictWord{135, 10, 724}, + dictWord{9, 0, 919}, + dictWord{9, 0, 922}, + dictWord{9, 0, 927}, + dictWord{9, 0, 933}, + dictWord{9, 0, 962}, + dictWord{9, 0, 1000}, + dictWord{9, 0, 1002}, + dictWord{9, 0, 1021}, + dictWord{12, 0, 890}, + dictWord{12, 0, 907}, + dictWord{12, 0, 930}, + dictWord{ + 15, + 0, + 207, + }, + dictWord{15, 0, 228}, + dictWord{15, 0, 238}, + dictWord{149, 0, 61}, + dictWord{8, 0, 794}, + dictWord{9, 0, 400}, + dictWord{10, 0, 298}, + dictWord{142, 0, 228}, + dictWord{5, 11, 430}, + dictWord{5, 11, 932}, + dictWord{6, 11, 131}, + dictWord{7, 11, 417}, + dictWord{9, 11, 522}, + dictWord{11, 11, 314}, + dictWord{141, 11, 390}, + dictWord{132, 0, 867}, + dictWord{8, 0, 724}, + dictWord{132, 11, 507}, + dictWord{137, 11, 261}, + dictWord{4, 11, 343}, + dictWord{133, 11, 511}, + dictWord{ + 6, + 0, + 190, + }, + dictWord{7, 0, 768}, + dictWord{135, 0, 1170}, + dictWord{6, 10, 513}, + dictWord{135, 10, 1052}, + dictWord{7, 11, 455}, + dictWord{138, 11, 591}, + dictWord{134, 0, 1066}, + dictWord{137, 10, 899}, + dictWord{14, 0, 67}, + dictWord{147, 0, 60}, + dictWord{4, 0, 948}, + dictWord{18, 0, 174}, + dictWord{146, 0, 176}, + dictWord{135, 0, 1023}, + dictWord{7, 10, 1417}, + dictWord{12, 10, 382}, + dictWord{17, 10, 48}, + dictWord{152, 10, 12}, + dictWord{134, 11, 575}, + dictWord{ + 132, + 0, + 764, + }, + dictWord{6, 10, 545}, + dictWord{7, 10, 565}, + dictWord{7, 10, 1669}, + dictWord{10, 10, 114}, + dictWord{11, 10, 642}, + dictWord{140, 10, 618}, + dictWord{ + 6, + 0, + 137, + }, + dictWord{9, 0, 75}, + dictWord{9, 0, 253}, + dictWord{10, 0, 194}, + dictWord{138, 0, 444}, + dictWord{4, 0, 756}, + dictWord{133, 10, 5}, + dictWord{8, 0, 1008}, + dictWord{135, 10, 192}, + dictWord{132, 0, 842}, + dictWord{11, 0, 643}, + dictWord{12, 0, 115}, + dictWord{136, 10, 763}, + dictWord{139, 0, 67}, + dictWord{ + 133, + 10, + 759, + }, + dictWord{4, 0, 821}, + dictWord{5, 0, 760}, + dictWord{7, 0, 542}, + dictWord{8, 0, 135}, + dictWord{8, 0, 496}, + dictWord{135, 11, 580}, + dictWord{7, 10, 370}, + dictWord{7, 10, 1007}, + dictWord{7, 10, 1177}, + dictWord{135, 10, 1565}, + dictWord{135, 10, 1237}, + dictWord{140, 0, 736}, + dictWord{7, 0, 319}, + dictWord{ + 7, + 0, + 355, + }, + dictWord{7, 0, 763}, + dictWord{10, 0, 389}, + dictWord{145, 0, 43}, + dictWord{8, 11, 333}, + dictWord{138, 11, 182}, + dictWord{4, 10, 87}, + dictWord{5, 10, 250}, + dictWord{141, 10, 298}, + dictWord{138, 0, 786}, + dictWord{134, 0, 2044}, + dictWord{8, 11, 330}, + dictWord{140, 11, 477}, + dictWord{135, 11, 1338}, + dictWord{132, 11, 125}, + dictWord{134, 0, 1030}, + dictWord{134, 0, 1083}, + dictWord{132, 11, 721}, + dictWord{135, 10, 814}, + dictWord{7, 11, 776}, + dictWord{ + 8, + 11, + 145, + }, + dictWord{147, 11, 56}, + dictWord{134, 0, 1226}, + dictWord{4, 10, 57}, + dictWord{7, 10, 1195}, + dictWord{7, 10, 1438}, + dictWord{7, 10, 1548}, + dictWord{ + 7, + 10, + 1835, + }, + dictWord{7, 10, 1904}, + dictWord{9, 10, 757}, + dictWord{10, 10, 604}, + dictWord{139, 10, 519}, + dictWord{7, 11, 792}, + dictWord{8, 11, 147}, + dictWord{10, 11, 821}, + dictWord{139, 11, 1021}, + dictWord{137, 11, 797}, + dictWord{4, 0, 58}, + dictWord{5, 0, 286}, + dictWord{6, 0, 319}, + dictWord{7, 0, 402}, + dictWord{ + 7, + 0, + 1254, + }, + dictWord{7, 0, 1903}, + dictWord{8, 0, 356}, + dictWord{140, 0, 408}, + dictWord{4, 0, 389}, + dictWord{4, 0, 815}, + dictWord{9, 0, 181}, + dictWord{9, 0, 255}, + dictWord{10, 0, 8}, + dictWord{10, 0, 29}, + dictWord{10, 0, 816}, + dictWord{11, 0, 311}, + dictWord{11, 0, 561}, + dictWord{12, 0, 67}, + dictWord{141, 0, 181}, + dictWord{ + 7, + 11, + 1472, + }, + dictWord{135, 11, 1554}, + dictWord{7, 11, 1071}, + dictWord{7, 11, 1541}, + dictWord{7, 11, 1767}, + dictWord{7, 11, 1806}, + dictWord{7, 11, 1999}, + dictWord{9, 11, 248}, + dictWord{10, 11, 400}, + dictWord{11, 11, 162}, + dictWord{11, 11, 178}, + dictWord{11, 11, 242}, + dictWord{12, 11, 605}, + dictWord{ + 15, + 11, + 26, + }, + dictWord{144, 11, 44}, + dictWord{5, 11, 168}, + dictWord{5, 11, 930}, + dictWord{8, 11, 74}, + dictWord{9, 11, 623}, + dictWord{12, 11, 500}, + dictWord{ + 12, + 11, + 579, + }, + dictWord{13, 11, 41}, + dictWord{143, 11, 93}, + dictWord{6, 11, 220}, + dictWord{7, 11, 1101}, + dictWord{141, 11, 105}, + dictWord{5, 0, 474}, + dictWord{ + 7, + 0, + 507, + }, + dictWord{4, 10, 209}, + dictWord{7, 11, 507}, + dictWord{135, 10, 902}, + dictWord{132, 0, 427}, + dictWord{6, 0, 413}, + dictWord{7, 10, 335}, + dictWord{ + 7, + 10, + 1437, + }, + dictWord{7, 10, 1668}, + dictWord{8, 10, 553}, + dictWord{8, 10, 652}, + dictWord{8, 10, 656}, + dictWord{9, 10, 558}, + dictWord{11, 10, 743}, + dictWord{ + 149, + 10, + 18, + }, + dictWord{132, 0, 730}, + dictWord{6, 11, 19}, + dictWord{7, 11, 1413}, + dictWord{139, 11, 428}, + dictWord{133, 0, 373}, + dictWord{132, 10, 559}, + dictWord{7, 11, 96}, + dictWord{8, 11, 401}, + dictWord{137, 11, 896}, + dictWord{7, 0, 799}, + dictWord{7, 0, 1972}, + dictWord{5, 10, 1017}, + dictWord{138, 10, 511}, + dictWord{135, 0, 1793}, + dictWord{7, 11, 1961}, + dictWord{7, 11, 1965}, + dictWord{8, 11, 702}, + dictWord{136, 11, 750}, + dictWord{8, 11, 150}, + dictWord{8, 11, 737}, + dictWord{140, 11, 366}, + dictWord{132, 0, 322}, + dictWord{133, 10, 709}, + dictWord{8, 11, 800}, + dictWord{9, 11, 148}, + dictWord{9, 11, 872}, + dictWord{ + 9, + 11, + 890, + }, + dictWord{11, 11, 309}, + dictWord{11, 11, 1001}, + dictWord{13, 11, 267}, + dictWord{141, 11, 323}, + dictWord{134, 10, 1745}, + dictWord{7, 0, 290}, + dictWord{136, 10, 206}, + dictWord{7, 0, 1651}, + dictWord{145, 0, 89}, + dictWord{139, 0, 2}, + dictWord{132, 0, 672}, + dictWord{6, 0, 1860}, + dictWord{8, 0, 905}, + dictWord{ + 10, + 0, + 844, + }, + dictWord{10, 0, 846}, + dictWord{10, 0, 858}, + dictWord{12, 0, 699}, + dictWord{12, 0, 746}, + dictWord{140, 0, 772}, + dictWord{135, 11, 424}, + dictWord{133, 11, 547}, + dictWord{133, 0, 737}, + dictWord{5, 11, 490}, + dictWord{6, 11, 615}, + dictWord{6, 11, 620}, + dictWord{135, 11, 683}, + dictWord{6, 0, 746}, + dictWord{134, 0, 1612}, + dictWord{132, 10, 776}, + dictWord{9, 11, 385}, + dictWord{149, 11, 17}, + dictWord{133, 0, 145}, + dictWord{135, 10, 1272}, + dictWord{ + 7, + 0, + 884, + }, + dictWord{140, 0, 124}, + dictWord{4, 0, 387}, + dictWord{135, 0, 1288}, + dictWord{5, 11, 133}, + dictWord{136, 10, 406}, + dictWord{136, 11, 187}, + dictWord{ + 6, + 0, + 679, + }, + dictWord{8, 11, 8}, + dictWord{138, 11, 0}, + dictWord{135, 0, 550}, + dictWord{135, 11, 798}, + dictWord{136, 11, 685}, + dictWord{7, 11, 1086}, + dictWord{145, 11, 46}, + dictWord{8, 10, 175}, + dictWord{10, 10, 168}, + dictWord{138, 10, 573}, + dictWord{135, 0, 1305}, + dictWord{4, 0, 576}, + dictWord{ + 135, + 0, + 1263, + }, + dictWord{6, 0, 686}, + dictWord{134, 0, 1563}, + dictWord{134, 0, 607}, + dictWord{5, 0, 919}, + dictWord{134, 0, 1673}, + dictWord{148, 0, 37}, + dictWord{ + 8, + 11, + 774, + }, + dictWord{10, 11, 670}, + dictWord{140, 11, 51}, + dictWord{133, 10, 784}, + dictWord{139, 10, 882}, + dictWord{4, 0, 82}, + dictWord{5, 0, 333}, + dictWord{ + 5, + 0, + 904, + }, + dictWord{6, 0, 207}, + dictWord{7, 0, 325}, + dictWord{7, 0, 1726}, + dictWord{8, 0, 101}, + dictWord{10, 0, 778}, + dictWord{139, 0, 220}, + dictWord{135, 11, 371}, + dictWord{132, 0, 958}, + dictWord{133, 0, 903}, + dictWord{4, 11, 127}, + dictWord{5, 11, 350}, + dictWord{6, 11, 356}, + dictWord{8, 11, 426}, + dictWord{9, 11, 572}, + dictWord{10, 11, 247}, + dictWord{139, 11, 312}, + dictWord{140, 0, 147}, + dictWord{6, 11, 59}, + dictWord{7, 11, 885}, + dictWord{9, 11, 603}, + dictWord{ + 141, + 11, + 397, + }, + dictWord{10, 0, 367}, + dictWord{9, 10, 14}, + dictWord{9, 10, 441}, + dictWord{139, 10, 9}, + dictWord{11, 10, 966}, + dictWord{12, 10, 287}, + dictWord{ + 13, + 10, + 342, + }, + dictWord{13, 10, 402}, + dictWord{15, 10, 110}, + dictWord{143, 10, 163}, + dictWord{134, 0, 690}, + dictWord{132, 0, 705}, + dictWord{9, 0, 651}, + dictWord{ + 11, + 0, + 971, + }, + dictWord{13, 0, 273}, + dictWord{7, 10, 1428}, + dictWord{7, 10, 1640}, + dictWord{7, 10, 1867}, + dictWord{9, 10, 169}, + dictWord{9, 10, 182}, + dictWord{ + 9, + 10, + 367, + }, + dictWord{9, 10, 478}, + dictWord{9, 10, 506}, + dictWord{9, 10, 551}, + dictWord{9, 10, 557}, + dictWord{9, 10, 648}, + dictWord{9, 10, 697}, + dictWord{ + 9, + 10, + 705, + }, + dictWord{9, 10, 725}, + dictWord{9, 10, 787}, + dictWord{9, 10, 794}, + dictWord{10, 10, 198}, + dictWord{10, 10, 214}, + dictWord{10, 10, 267}, + dictWord{ + 10, + 10, + 275, + }, + dictWord{10, 10, 456}, + dictWord{10, 10, 551}, + dictWord{10, 10, 561}, + dictWord{10, 10, 613}, + dictWord{10, 10, 627}, + dictWord{10, 10, 668}, + dictWord{10, 10, 675}, + dictWord{10, 10, 691}, + dictWord{10, 10, 695}, + dictWord{10, 10, 707}, + dictWord{10, 10, 715}, + dictWord{11, 10, 183}, + dictWord{ + 11, + 10, + 201, + }, + dictWord{11, 10, 262}, + dictWord{11, 10, 352}, + dictWord{11, 10, 439}, + dictWord{11, 10, 493}, + dictWord{11, 10, 572}, + dictWord{11, 10, 591}, + dictWord{ + 11, + 10, + 608, + }, + dictWord{11, 10, 611}, + dictWord{11, 10, 646}, + dictWord{11, 10, 674}, + dictWord{11, 10, 711}, + dictWord{11, 10, 751}, + dictWord{11, 10, 761}, + dictWord{11, 10, 776}, + dictWord{11, 10, 785}, + dictWord{11, 10, 850}, + dictWord{11, 10, 853}, + dictWord{11, 10, 862}, + dictWord{11, 10, 865}, + dictWord{ + 11, + 10, + 868, + }, + dictWord{11, 10, 875}, + dictWord{11, 10, 898}, + dictWord{11, 10, 902}, + dictWord{11, 10, 903}, + dictWord{11, 10, 910}, + dictWord{11, 10, 932}, + dictWord{ + 11, + 10, + 942, + }, + dictWord{11, 10, 957}, + dictWord{11, 10, 967}, + dictWord{11, 10, 972}, + dictWord{12, 10, 148}, + dictWord{12, 10, 195}, + dictWord{12, 10, 220}, + dictWord{12, 10, 237}, + dictWord{12, 10, 318}, + dictWord{12, 10, 339}, + dictWord{12, 10, 393}, + dictWord{12, 10, 445}, + dictWord{12, 10, 450}, + dictWord{ + 12, + 10, + 474, + }, + dictWord{12, 10, 505}, + dictWord{12, 10, 509}, + dictWord{12, 10, 533}, + dictWord{12, 10, 591}, + dictWord{12, 10, 594}, + dictWord{12, 10, 597}, + dictWord{ + 12, + 10, + 621, + }, + dictWord{12, 10, 633}, + dictWord{12, 10, 642}, + dictWord{13, 10, 59}, + dictWord{13, 10, 60}, + dictWord{13, 10, 145}, + dictWord{13, 10, 239}, + dictWord{13, 10, 250}, + dictWord{13, 10, 329}, + dictWord{13, 10, 344}, + dictWord{13, 10, 365}, + dictWord{13, 10, 372}, + dictWord{13, 10, 387}, + dictWord{ + 13, + 10, + 403, + }, + dictWord{13, 10, 414}, + dictWord{13, 10, 456}, + dictWord{13, 10, 470}, + dictWord{13, 10, 478}, + dictWord{13, 10, 483}, + dictWord{13, 10, 489}, + dictWord{ + 14, + 10, + 55, + }, + dictWord{14, 10, 57}, + dictWord{14, 10, 81}, + dictWord{14, 10, 90}, + dictWord{14, 10, 148}, + dictWord{14, 10, 239}, + dictWord{14, 10, 266}, + dictWord{ + 14, + 10, + 321, + }, + dictWord{14, 10, 326}, + dictWord{14, 10, 327}, + dictWord{14, 10, 330}, + dictWord{14, 10, 347}, + dictWord{14, 10, 355}, + dictWord{14, 10, 401}, + dictWord{14, 10, 404}, + dictWord{14, 10, 411}, + dictWord{14, 10, 414}, + dictWord{14, 10, 416}, + dictWord{14, 10, 420}, + dictWord{15, 10, 61}, + dictWord{ + 15, + 10, + 74, + }, + dictWord{15, 10, 87}, + dictWord{15, 10, 88}, + dictWord{15, 10, 94}, + dictWord{15, 10, 96}, + dictWord{15, 10, 116}, + dictWord{15, 10, 149}, + dictWord{ + 15, + 10, + 154, + }, + dictWord{16, 10, 50}, + dictWord{16, 10, 63}, + dictWord{16, 10, 73}, + dictWord{17, 10, 2}, + dictWord{17, 10, 66}, + dictWord{17, 10, 92}, + dictWord{17, 10, 103}, + dictWord{17, 10, 112}, + dictWord{17, 10, 120}, + dictWord{18, 10, 50}, + dictWord{18, 10, 54}, + dictWord{18, 10, 82}, + dictWord{18, 10, 86}, + dictWord{18, 10, 90}, + dictWord{18, 10, 111}, + dictWord{18, 10, 115}, + dictWord{18, 10, 156}, + dictWord{19, 10, 40}, + dictWord{19, 10, 79}, + dictWord{20, 10, 78}, + dictWord{149, 10, 22}, + dictWord{7, 0, 887}, + dictWord{5, 10, 161}, + dictWord{135, 10, 839}, + dictWord{142, 11, 98}, + dictWord{134, 0, 90}, + dictWord{138, 11, 356}, + dictWord{ + 135, + 11, + 441, + }, + dictWord{6, 11, 111}, + dictWord{7, 11, 4}, + dictWord{8, 11, 163}, + dictWord{8, 11, 776}, + dictWord{138, 11, 566}, + dictWord{134, 0, 908}, + dictWord{ + 134, + 0, + 1261, + }, + dictWord{7, 0, 813}, + dictWord{12, 0, 497}, + dictWord{141, 0, 56}, + dictWord{134, 0, 1235}, + dictWord{135, 0, 429}, + dictWord{135, 11, 1994}, + dictWord{138, 0, 904}, + dictWord{6, 0, 125}, + dictWord{7, 0, 1277}, + dictWord{137, 0, 772}, + dictWord{151, 0, 12}, + dictWord{4, 0, 841}, + dictWord{5, 0, 386}, + dictWord{ + 133, + 11, + 386, + }, + dictWord{5, 11, 297}, + dictWord{135, 11, 1038}, + dictWord{6, 0, 860}, + dictWord{6, 0, 1069}, + dictWord{135, 11, 309}, + dictWord{136, 0, 946}, + dictWord{135, 10, 1814}, + dictWord{141, 11, 418}, + dictWord{136, 11, 363}, + dictWord{10, 0, 768}, + dictWord{139, 0, 787}, + dictWord{22, 11, 30}, + dictWord{ + 150, + 11, + 33, + }, + dictWord{6, 0, 160}, + dictWord{7, 0, 1106}, + dictWord{9, 0, 770}, + dictWord{11, 0, 112}, + dictWord{140, 0, 413}, + dictWord{11, 11, 216}, + dictWord{ + 139, + 11, + 340, + }, + dictWord{136, 10, 139}, + dictWord{135, 11, 1390}, + dictWord{135, 11, 808}, + dictWord{132, 11, 280}, + dictWord{12, 0, 271}, + dictWord{17, 0, 109}, + dictWord{7, 10, 643}, + dictWord{136, 10, 236}, + dictWord{140, 11, 54}, + dictWord{4, 11, 421}, + dictWord{133, 11, 548}, + dictWord{11, 0, 719}, + dictWord{12, 0, 36}, + dictWord{141, 0, 337}, + dictWord{7, 0, 581}, + dictWord{9, 0, 644}, + dictWord{137, 0, 699}, + dictWord{11, 11, 511}, + dictWord{13, 11, 394}, + dictWord{14, 11, 298}, + dictWord{14, 11, 318}, + dictWord{146, 11, 103}, + dictWord{7, 0, 304}, + dictWord{9, 0, 646}, + dictWord{9, 0, 862}, + dictWord{11, 0, 696}, + dictWord{12, 0, 208}, + dictWord{15, 0, 79}, + dictWord{147, 0, 108}, + dictWord{4, 0, 631}, + dictWord{7, 0, 1126}, + dictWord{135, 0, 1536}, + dictWord{135, 11, 1527}, + dictWord{8, 0, 880}, + dictWord{10, 0, 869}, + dictWord{138, 0, 913}, + dictWord{7, 0, 1513}, + dictWord{5, 10, 54}, + dictWord{6, 11, 254}, + dictWord{9, 11, 109}, + dictWord{138, 11, 103}, + dictWord{135, 0, 981}, + dictWord{133, 11, 729}, + dictWord{132, 10, 744}, + dictWord{132, 0, 434}, + dictWord{134, 0, 550}, + dictWord{7, 0, 930}, + dictWord{10, 0, 476}, + dictWord{13, 0, 452}, + dictWord{19, 0, 104}, + dictWord{6, 11, 1630}, + dictWord{10, 10, 402}, + dictWord{146, 10, 55}, + dictWord{5, 0, 553}, + dictWord{138, 0, 824}, + dictWord{136, 0, 452}, + dictWord{8, 0, 151}, + dictWord{137, 10, 624}, + dictWord{132, 10, 572}, + dictWord{132, 0, 772}, + dictWord{133, 11, 671}, + dictWord{ + 133, + 0, + 292, + }, + dictWord{138, 0, 135}, + dictWord{132, 11, 889}, + dictWord{140, 11, 207}, + dictWord{9, 0, 504}, + dictWord{6, 10, 43}, + dictWord{7, 10, 38}, + dictWord{ + 8, + 10, + 248, + }, + dictWord{138, 10, 513}, + dictWord{6, 0, 1089}, + dictWord{135, 11, 1910}, + dictWord{4, 11, 627}, + dictWord{133, 11, 775}, + dictWord{135, 0, 783}, + dictWord{133, 10, 766}, + dictWord{133, 10, 363}, + dictWord{7, 0, 387}, + dictWord{135, 11, 387}, + dictWord{7, 0, 393}, + dictWord{10, 0, 603}, + dictWord{11, 0, 206}, + dictWord{7, 11, 202}, + dictWord{11, 11, 362}, + dictWord{11, 11, 948}, + dictWord{140, 11, 388}, + dictWord{6, 11, 507}, + dictWord{7, 11, 451}, + dictWord{8, 11, 389}, + dictWord{12, 11, 490}, + dictWord{13, 11, 16}, + dictWord{13, 11, 215}, + dictWord{13, 11, 351}, + dictWord{18, 11, 132}, + dictWord{147, 11, 125}, + dictWord{ + 4, + 0, + 912, + }, + dictWord{9, 0, 232}, + dictWord{135, 11, 841}, + dictWord{6, 10, 258}, + dictWord{140, 10, 409}, + dictWord{5, 10, 249}, + dictWord{148, 10, 82}, + dictWord{ + 136, + 11, + 566, + }, + dictWord{6, 0, 977}, + dictWord{135, 11, 1214}, + dictWord{7, 0, 1973}, + dictWord{136, 0, 716}, + dictWord{135, 0, 98}, + dictWord{133, 0, 733}, + dictWord{ + 5, + 11, + 912, + }, + dictWord{134, 11, 1695}, + dictWord{5, 10, 393}, + dictWord{6, 10, 378}, + dictWord{7, 10, 1981}, + dictWord{9, 10, 32}, + dictWord{9, 10, 591}, + dictWord{10, 10, 685}, + dictWord{10, 10, 741}, + dictWord{142, 10, 382}, + dictWord{133, 10, 788}, + dictWord{10, 0, 19}, + dictWord{11, 0, 911}, + dictWord{7, 10, 1968}, + dictWord{141, 10, 509}, + dictWord{5, 0, 668}, + dictWord{5, 11, 236}, + dictWord{6, 11, 572}, + dictWord{8, 11, 492}, + dictWord{11, 11, 618}, + dictWord{144, 11, 56}, + dictWord{135, 11, 1789}, + dictWord{4, 0, 360}, + dictWord{5, 0, 635}, + dictWord{5, 0, 700}, + dictWord{5, 10, 58}, + dictWord{5, 10, 171}, + dictWord{5, 10, 683}, + dictWord{ + 6, + 10, + 291, + }, + dictWord{6, 10, 566}, + dictWord{7, 10, 1650}, + dictWord{11, 10, 523}, + dictWord{12, 10, 273}, + dictWord{12, 10, 303}, + dictWord{15, 10, 39}, + dictWord{143, 10, 111}, + dictWord{133, 0, 901}, + dictWord{134, 10, 589}, + dictWord{5, 11, 190}, + dictWord{136, 11, 318}, + dictWord{140, 0, 656}, + dictWord{ + 7, + 0, + 726, + }, + dictWord{152, 0, 9}, + dictWord{4, 10, 917}, + dictWord{133, 10, 1005}, + dictWord{135, 10, 1598}, + dictWord{134, 11, 491}, + dictWord{4, 10, 919}, + dictWord{133, 11, 434}, + dictWord{137, 0, 72}, + dictWord{6, 0, 1269}, + dictWord{6, 0, 1566}, + dictWord{134, 0, 1621}, + dictWord{9, 0, 463}, + dictWord{10, 0, 595}, + dictWord{4, 10, 255}, + dictWord{5, 10, 302}, + dictWord{6, 10, 132}, + dictWord{7, 10, 128}, + dictWord{7, 10, 283}, + dictWord{7, 10, 1299}, + dictWord{10, 10, 52}, + dictWord{ + 10, + 10, + 514, + }, + dictWord{11, 10, 925}, + dictWord{13, 10, 92}, + dictWord{142, 10, 309}, + dictWord{135, 0, 1454}, + dictWord{134, 0, 1287}, + dictWord{11, 0, 600}, + dictWord{13, 0, 245}, + dictWord{137, 10, 173}, + dictWord{136, 0, 989}, + dictWord{7, 0, 164}, + dictWord{7, 0, 1571}, + dictWord{9, 0, 107}, + dictWord{140, 0, 225}, + dictWord{6, 0, 1061}, + dictWord{141, 10, 442}, + dictWord{4, 0, 27}, + dictWord{5, 0, 484}, + dictWord{5, 0, 510}, + dictWord{6, 0, 434}, + dictWord{7, 0, 1000}, + dictWord{ + 7, + 0, + 1098, + }, + dictWord{136, 0, 2}, + dictWord{7, 11, 85}, + dictWord{7, 11, 247}, + dictWord{8, 11, 585}, + dictWord{10, 11, 163}, + dictWord{138, 11, 316}, + dictWord{ + 11, + 11, + 103, + }, + dictWord{142, 11, 0}, + dictWord{134, 0, 1127}, + dictWord{4, 0, 460}, + dictWord{134, 0, 852}, + dictWord{134, 10, 210}, + dictWord{4, 0, 932}, + dictWord{ + 133, + 0, + 891, + }, + dictWord{6, 0, 588}, + dictWord{147, 11, 83}, + dictWord{8, 0, 625}, + dictWord{4, 10, 284}, + dictWord{134, 10, 223}, + dictWord{134, 0, 76}, + dictWord{8, 0, 92}, + dictWord{137, 0, 221}, + dictWord{4, 11, 124}, + dictWord{10, 11, 457}, + dictWord{11, 11, 121}, + dictWord{11, 11, 169}, + dictWord{11, 11, 422}, + dictWord{ + 11, + 11, + 870, + }, + dictWord{12, 11, 214}, + dictWord{13, 11, 389}, + dictWord{14, 11, 187}, + dictWord{143, 11, 77}, + dictWord{9, 11, 618}, + dictWord{138, 11, 482}, + dictWord{ + 4, + 10, + 218, + }, + dictWord{7, 10, 526}, + dictWord{143, 10, 137}, + dictWord{13, 0, 9}, + dictWord{14, 0, 104}, + dictWord{14, 0, 311}, + dictWord{4, 10, 270}, + dictWord{ + 5, + 10, + 192, + }, + dictWord{6, 10, 332}, + dictWord{135, 10, 1322}, + dictWord{140, 10, 661}, + dictWord{135, 11, 1193}, + dictWord{6, 11, 107}, + dictWord{7, 11, 638}, + dictWord{7, 11, 1632}, + dictWord{137, 11, 396}, + dictWord{132, 0, 763}, + dictWord{4, 0, 622}, + dictWord{5, 11, 370}, + dictWord{134, 11, 1756}, + dictWord{ + 133, + 0, + 253, + }, + dictWord{135, 0, 546}, + dictWord{9, 0, 73}, + dictWord{10, 0, 110}, + dictWord{14, 0, 185}, + dictWord{17, 0, 119}, + dictWord{133, 11, 204}, + dictWord{7, 0, 624}, + dictWord{7, 0, 916}, + dictWord{10, 0, 256}, + dictWord{139, 0, 87}, + dictWord{7, 10, 379}, + dictWord{8, 10, 481}, + dictWord{137, 10, 377}, + dictWord{5, 0, 212}, + dictWord{12, 0, 35}, + dictWord{13, 0, 382}, + dictWord{5, 11, 970}, + dictWord{134, 11, 1706}, + dictWord{9, 0, 746}, + dictWord{5, 10, 1003}, + dictWord{134, 10, 149}, + dictWord{10, 0, 150}, + dictWord{11, 0, 849}, + dictWord{13, 0, 330}, + dictWord{8, 10, 262}, + dictWord{9, 10, 627}, + dictWord{11, 10, 214}, + dictWord{11, 10, 404}, + dictWord{11, 10, 457}, + dictWord{11, 10, 780}, + dictWord{11, 10, 913}, + dictWord{13, 10, 401}, + dictWord{142, 10, 200}, + dictWord{134, 0, 1466}, + dictWord{ + 135, + 11, + 3, + }, + dictWord{6, 0, 1299}, + dictWord{4, 11, 35}, + dictWord{5, 11, 121}, + dictWord{5, 11, 483}, + dictWord{5, 11, 685}, + dictWord{6, 11, 489}, + dictWord{7, 11, 1204}, + dictWord{136, 11, 394}, + dictWord{135, 10, 742}, + dictWord{4, 10, 142}, + dictWord{136, 10, 304}, + dictWord{4, 11, 921}, + dictWord{133, 11, 1007}, + dictWord{ + 134, + 0, + 1518, + }, + dictWord{6, 0, 1229}, + dictWord{135, 0, 1175}, + dictWord{133, 0, 816}, + dictWord{12, 0, 159}, + dictWord{4, 10, 471}, + dictWord{4, 11, 712}, + dictWord{ + 5, + 10, + 51, + }, + dictWord{6, 10, 602}, + dictWord{7, 10, 925}, + dictWord{8, 10, 484}, + dictWord{138, 10, 195}, + dictWord{134, 11, 1629}, + dictWord{5, 0, 869}, + dictWord{ + 5, + 0, + 968, + }, + dictWord{6, 0, 1626}, + dictWord{8, 0, 734}, + dictWord{136, 0, 784}, + dictWord{4, 0, 542}, + dictWord{6, 0, 1716}, + dictWord{6, 0, 1727}, + dictWord{ + 7, + 0, + 1082, + }, + dictWord{7, 0, 1545}, + dictWord{8, 0, 56}, + dictWord{8, 0, 118}, + dictWord{8, 0, 412}, + dictWord{8, 0, 564}, + dictWord{9, 0, 888}, + dictWord{9, 0, 908}, + dictWord{ + 10, + 0, + 50, + }, + dictWord{10, 0, 423}, + dictWord{11, 0, 685}, + dictWord{11, 0, 697}, + dictWord{11, 0, 933}, + dictWord{12, 0, 299}, + dictWord{13, 0, 126}, + dictWord{ + 13, + 0, + 136, + }, + dictWord{13, 0, 170}, + dictWord{13, 0, 190}, + dictWord{136, 10, 688}, + dictWord{132, 10, 697}, + dictWord{4, 0, 232}, + dictWord{9, 0, 202}, + dictWord{ + 10, + 0, + 474, + }, + dictWord{140, 0, 433}, + dictWord{136, 0, 212}, + dictWord{6, 0, 108}, + dictWord{7, 0, 1003}, + dictWord{7, 0, 1181}, + dictWord{8, 0, 111}, + dictWord{ + 136, + 0, + 343, + }, + dictWord{5, 10, 221}, + dictWord{135, 11, 1255}, + dictWord{133, 11, 485}, + dictWord{134, 0, 1712}, + dictWord{142, 0, 216}, + dictWord{5, 0, 643}, + dictWord{ + 6, + 0, + 516, + }, + dictWord{4, 11, 285}, + dictWord{5, 11, 317}, + dictWord{6, 11, 301}, + dictWord{7, 11, 7}, + dictWord{8, 11, 153}, + dictWord{10, 11, 766}, + dictWord{ + 11, + 11, + 468, + }, + dictWord{12, 11, 467}, + dictWord{141, 11, 143}, + dictWord{4, 0, 133}, + dictWord{7, 0, 711}, + dictWord{7, 0, 1298}, + dictWord{135, 0, 1585}, + dictWord{ + 134, + 0, + 650, + }, + dictWord{135, 11, 512}, + dictWord{6, 0, 99}, + dictWord{7, 0, 1808}, + dictWord{145, 0, 57}, + dictWord{6, 0, 246}, + dictWord{6, 0, 574}, + dictWord{7, 0, 428}, + dictWord{9, 0, 793}, + dictWord{10, 0, 669}, + dictWord{11, 0, 485}, + dictWord{11, 0, 840}, + dictWord{12, 0, 300}, + dictWord{14, 0, 250}, + dictWord{145, 0, 55}, + dictWord{ + 4, + 10, + 132, + }, + dictWord{5, 10, 69}, + dictWord{135, 10, 1242}, + dictWord{136, 0, 1023}, + dictWord{7, 0, 302}, + dictWord{132, 10, 111}, + dictWord{135, 0, 1871}, + dictWord{132, 0, 728}, + dictWord{9, 0, 252}, + dictWord{132, 10, 767}, + dictWord{6, 0, 461}, + dictWord{7, 0, 1590}, + dictWord{7, 10, 1416}, + dictWord{7, 10, 2005}, + dictWord{8, 10, 131}, + dictWord{8, 10, 466}, + dictWord{9, 10, 672}, + dictWord{13, 10, 252}, + dictWord{148, 10, 103}, + dictWord{6, 0, 323}, + dictWord{135, 0, 1564}, + dictWord{7, 0, 461}, + dictWord{136, 0, 775}, + dictWord{6, 10, 44}, + dictWord{136, 10, 368}, + dictWord{139, 0, 172}, + dictWord{132, 0, 464}, + dictWord{4, 10, 570}, + dictWord{133, 10, 120}, + dictWord{137, 11, 269}, + dictWord{6, 10, 227}, + dictWord{135, 10, 1589}, + dictWord{6, 11, 1719}, + dictWord{6, 11, 1735}, + dictWord{ + 7, + 11, + 2016, + }, + dictWord{7, 11, 2020}, + dictWord{8, 11, 837}, + dictWord{137, 11, 852}, + dictWord{7, 0, 727}, + dictWord{146, 0, 73}, + dictWord{132, 0, 1023}, + dictWord{135, 11, 852}, + dictWord{135, 10, 1529}, + dictWord{136, 0, 577}, + dictWord{138, 11, 568}, + dictWord{134, 0, 1037}, + dictWord{8, 11, 67}, + dictWord{ + 138, + 11, + 419, + }, + dictWord{4, 0, 413}, + dictWord{5, 0, 677}, + dictWord{8, 0, 432}, + dictWord{140, 0, 280}, + dictWord{10, 0, 600}, + dictWord{6, 10, 1667}, + dictWord{ + 7, + 11, + 967, + }, + dictWord{7, 10, 2036}, + dictWord{141, 11, 11}, + dictWord{6, 10, 511}, + dictWord{140, 10, 132}, + dictWord{6, 0, 799}, + dictWord{5, 10, 568}, + dictWord{ + 6, + 10, + 138, + }, + dictWord{135, 10, 1293}, + dictWord{8, 0, 159}, + dictWord{4, 10, 565}, + dictWord{136, 10, 827}, + dictWord{7, 0, 646}, + dictWord{7, 0, 1730}, + dictWord{ + 11, + 0, + 446, + }, + dictWord{141, 0, 178}, + dictWord{4, 10, 922}, + dictWord{133, 10, 1023}, + dictWord{135, 11, 11}, + dictWord{132, 0, 395}, + dictWord{11, 0, 145}, + dictWord{135, 10, 1002}, + dictWord{9, 0, 174}, + dictWord{10, 0, 164}, + dictWord{11, 0, 440}, + dictWord{11, 0, 514}, + dictWord{11, 0, 841}, + dictWord{15, 0, 98}, + dictWord{149, 0, 20}, + dictWord{134, 0, 426}, + dictWord{10, 0, 608}, + dictWord{139, 0, 1002}, + dictWord{7, 11, 320}, + dictWord{8, 11, 51}, + dictWord{12, 11, 481}, + dictWord{12, 11, 570}, + dictWord{148, 11, 106}, + dictWord{9, 0, 977}, + dictWord{9, 0, 983}, + dictWord{132, 11, 445}, + dictWord{138, 0, 250}, + dictWord{139, 0, 100}, + dictWord{6, 0, 1982}, + dictWord{136, 10, 402}, + dictWord{133, 11, 239}, + dictWord{4, 10, 716}, + dictWord{141, 10, 31}, + dictWord{5, 0, 476}, + dictWord{7, 11, 83}, + dictWord{7, 11, 1990}, + dictWord{8, 11, 130}, + dictWord{139, 11, 720}, + dictWord{8, 10, 691}, + dictWord{136, 10, 731}, + dictWord{5, 11, 123}, + dictWord{ + 6, + 11, + 530, + }, + dictWord{7, 11, 348}, + dictWord{135, 11, 1419}, + dictWord{5, 0, 76}, + dictWord{6, 0, 458}, + dictWord{6, 0, 497}, + dictWord{7, 0, 868}, + dictWord{9, 0, 658}, + dictWord{10, 0, 594}, + dictWord{11, 0, 173}, + dictWord{11, 0, 566}, + dictWord{12, 0, 20}, + dictWord{12, 0, 338}, + dictWord{141, 0, 200}, + dictWord{9, 11, 139}, + dictWord{ + 10, + 11, + 399, + }, + dictWord{11, 11, 469}, + dictWord{12, 11, 634}, + dictWord{141, 11, 223}, + dictWord{9, 10, 840}, + dictWord{138, 10, 803}, + dictWord{133, 10, 847}, + dictWord{11, 11, 223}, + dictWord{140, 11, 168}, + dictWord{132, 11, 210}, + dictWord{8, 0, 447}, + dictWord{9, 10, 53}, + dictWord{9, 10, 268}, + dictWord{9, 10, 901}, + dictWord{10, 10, 518}, + dictWord{10, 10, 829}, + dictWord{11, 10, 188}, + dictWord{13, 10, 74}, + dictWord{14, 10, 46}, + dictWord{15, 10, 17}, + dictWord{15, 10, 33}, + dictWord{17, 10, 40}, + dictWord{18, 10, 36}, + dictWord{19, 10, 20}, + dictWord{22, 10, 1}, + dictWord{152, 10, 2}, + dictWord{4, 0, 526}, + dictWord{7, 0, 1029}, + dictWord{135, 0, 1054}, + dictWord{19, 11, 59}, + dictWord{150, 11, 2}, + dictWord{4, 0, 636}, + dictWord{6, 0, 1875}, + dictWord{6, 0, 1920}, + dictWord{9, 0, 999}, + dictWord{ + 12, + 0, + 807, + }, + dictWord{12, 0, 825}, + dictWord{15, 0, 179}, + dictWord{15, 0, 190}, + dictWord{18, 0, 182}, + dictWord{136, 10, 532}, + dictWord{6, 0, 1699}, + dictWord{ + 7, + 0, + 660, + }, + dictWord{7, 0, 1124}, + dictWord{17, 0, 31}, + dictWord{19, 0, 22}, + dictWord{151, 0, 14}, + dictWord{135, 10, 681}, + dictWord{132, 11, 430}, + dictWord{ + 140, + 10, + 677, + }, + dictWord{4, 10, 684}, + dictWord{136, 10, 384}, + dictWord{132, 11, 756}, + dictWord{133, 11, 213}, + dictWord{7, 0, 188}, + dictWord{7, 10, 110}, + dictWord{ + 8, + 10, + 290, + }, + dictWord{8, 10, 591}, + dictWord{9, 10, 382}, + dictWord{9, 10, 649}, + dictWord{11, 10, 71}, + dictWord{11, 10, 155}, + dictWord{11, 10, 313}, + dictWord{ + 12, + 10, + 5, + }, + dictWord{13, 10, 325}, + dictWord{142, 10, 287}, + dictWord{7, 10, 360}, + dictWord{7, 10, 425}, + dictWord{9, 10, 66}, + dictWord{9, 10, 278}, + dictWord{ + 138, + 10, + 644, + }, + dictWord{142, 11, 164}, + dictWord{4, 0, 279}, + dictWord{7, 0, 301}, + dictWord{137, 0, 362}, + dictWord{134, 11, 586}, + dictWord{135, 0, 1743}, + dictWord{4, 0, 178}, + dictWord{133, 0, 399}, + dictWord{4, 10, 900}, + dictWord{133, 10, 861}, + dictWord{5, 10, 254}, + dictWord{7, 10, 985}, + dictWord{136, 10, 73}, + dictWord{133, 11, 108}, + dictWord{7, 10, 1959}, + dictWord{136, 10, 683}, + dictWord{133, 11, 219}, + dictWord{4, 11, 193}, + dictWord{5, 11, 916}, + dictWord{ + 7, + 11, + 364, + }, + dictWord{10, 11, 398}, + dictWord{10, 11, 726}, + dictWord{11, 11, 317}, + dictWord{11, 11, 626}, + dictWord{12, 11, 142}, + dictWord{12, 11, 288}, + dictWord{ + 12, + 11, + 678, + }, + dictWord{13, 11, 313}, + dictWord{15, 11, 113}, + dictWord{18, 11, 114}, + dictWord{21, 11, 30}, + dictWord{150, 11, 53}, + dictWord{6, 11, 241}, + dictWord{7, 11, 907}, + dictWord{8, 11, 832}, + dictWord{9, 11, 342}, + dictWord{10, 11, 729}, + dictWord{11, 11, 284}, + dictWord{11, 11, 445}, + dictWord{11, 11, 651}, + dictWord{11, 11, 863}, + dictWord{13, 11, 398}, + dictWord{146, 11, 99}, + dictWord{132, 0, 872}, + dictWord{134, 0, 831}, + dictWord{134, 0, 1692}, + dictWord{ + 6, + 0, + 202, + }, + dictWord{6, 0, 1006}, + dictWord{9, 0, 832}, + dictWord{10, 0, 636}, + dictWord{11, 0, 208}, + dictWord{12, 0, 360}, + dictWord{17, 0, 118}, + dictWord{18, 0, 27}, + dictWord{20, 0, 67}, + dictWord{137, 11, 734}, + dictWord{132, 10, 725}, + dictWord{7, 11, 993}, + dictWord{138, 11, 666}, + dictWord{134, 0, 1954}, + dictWord{ + 134, + 10, + 196, + }, + dictWord{7, 0, 872}, + dictWord{10, 0, 516}, + dictWord{139, 0, 167}, + dictWord{133, 10, 831}, + dictWord{4, 11, 562}, + dictWord{9, 11, 254}, + dictWord{ + 139, + 11, + 879, + }, + dictWord{137, 0, 313}, + dictWord{4, 0, 224}, + dictWord{132, 11, 786}, + dictWord{11, 0, 24}, + dictWord{12, 0, 170}, + dictWord{136, 10, 723}, + dictWord{ + 5, + 0, + 546, + }, + dictWord{7, 0, 35}, + dictWord{8, 0, 11}, + dictWord{8, 0, 12}, + dictWord{9, 0, 315}, + dictWord{9, 0, 533}, + dictWord{10, 0, 802}, + dictWord{11, 0, 166}, + dictWord{ + 12, + 0, + 525, + }, + dictWord{142, 0, 243}, + dictWord{7, 0, 1937}, + dictWord{13, 10, 80}, + dictWord{13, 10, 437}, + dictWord{145, 10, 74}, + dictWord{5, 0, 241}, + dictWord{ + 8, + 0, + 242, + }, + dictWord{9, 0, 451}, + dictWord{10, 0, 667}, + dictWord{11, 0, 598}, + dictWord{140, 0, 429}, + dictWord{150, 0, 46}, + dictWord{6, 0, 1273}, + dictWord{ + 137, + 0, + 830, + }, + dictWord{5, 10, 848}, + dictWord{6, 10, 66}, + dictWord{136, 10, 764}, + dictWord{6, 0, 825}, + dictWord{134, 0, 993}, + dictWord{4, 0, 1006}, + dictWord{ + 10, + 0, + 327, + }, + dictWord{13, 0, 271}, + dictWord{4, 10, 36}, + dictWord{7, 10, 1387}, + dictWord{139, 10, 755}, + dictWord{134, 0, 1023}, + dictWord{135, 0, 1580}, + dictWord{ + 4, + 0, + 366, + }, + dictWord{137, 0, 516}, + dictWord{132, 10, 887}, + dictWord{6, 0, 1736}, + dictWord{135, 0, 1891}, + dictWord{6, 11, 216}, + dictWord{7, 11, 901}, + dictWord{ + 7, + 11, + 1343, + }, + dictWord{136, 11, 493}, + dictWord{6, 10, 165}, + dictWord{138, 10, 388}, + dictWord{7, 11, 341}, + dictWord{139, 11, 219}, + dictWord{4, 10, 719}, + dictWord{135, 10, 155}, + dictWord{134, 0, 1935}, + dictWord{132, 0, 826}, + dictWord{6, 0, 331}, + dictWord{6, 0, 1605}, + dictWord{8, 0, 623}, + dictWord{11, 0, 139}, + dictWord{139, 0, 171}, + dictWord{135, 11, 1734}, + dictWord{10, 11, 115}, + dictWord{11, 11, 420}, + dictWord{12, 11, 154}, + dictWord{13, 11, 404}, + dictWord{ + 14, + 11, + 346, + }, + dictWord{15, 11, 54}, + dictWord{143, 11, 112}, + dictWord{7, 0, 288}, + dictWord{4, 10, 353}, + dictWord{6, 10, 146}, + dictWord{6, 10, 1789}, + dictWord{ + 7, + 10, + 990, + }, + dictWord{7, 10, 1348}, + dictWord{9, 10, 665}, + dictWord{9, 10, 898}, + dictWord{11, 10, 893}, + dictWord{142, 10, 212}, + dictWord{6, 0, 916}, + dictWord{134, 0, 1592}, + dictWord{7, 0, 1888}, + dictWord{4, 10, 45}, + dictWord{135, 10, 1257}, + dictWord{5, 11, 1011}, + dictWord{136, 11, 701}, + dictWord{ + 139, + 11, + 596, + }, + dictWord{4, 11, 54}, + dictWord{5, 11, 666}, + dictWord{7, 11, 1039}, + dictWord{7, 11, 1130}, + dictWord{9, 11, 195}, + dictWord{138, 11, 302}, + dictWord{ + 134, + 0, + 1471, + }, + dictWord{134, 0, 1570}, + dictWord{132, 0, 394}, + dictWord{140, 10, 65}, + dictWord{136, 10, 816}, + dictWord{135, 0, 1931}, + dictWord{7, 0, 574}, + dictWord{135, 0, 1719}, + dictWord{134, 11, 467}, + dictWord{132, 0, 658}, + dictWord{9, 0, 781}, + dictWord{10, 0, 144}, + dictWord{11, 0, 385}, + dictWord{13, 0, 161}, + dictWord{13, 0, 228}, + dictWord{13, 0, 268}, + dictWord{20, 0, 107}, + dictWord{134, 11, 1669}, + dictWord{136, 0, 374}, + dictWord{135, 0, 735}, + dictWord{4, 0, 344}, + dictWord{6, 0, 498}, + dictWord{139, 0, 323}, + dictWord{7, 0, 586}, + dictWord{7, 0, 1063}, + dictWord{6, 10, 559}, + dictWord{134, 10, 1691}, + dictWord{137, 0, 155}, + dictWord{133, 0, 906}, + dictWord{7, 11, 122}, + dictWord{9, 11, 259}, + dictWord{10, 11, 84}, + dictWord{11, 11, 470}, + dictWord{12, 11, 541}, + dictWord{ + 141, + 11, + 379, + }, + dictWord{134, 0, 1139}, + dictWord{10, 0, 108}, + dictWord{139, 0, 116}, + dictWord{134, 10, 456}, + dictWord{133, 10, 925}, + dictWord{5, 11, 82}, + dictWord{ + 5, + 11, + 131, + }, + dictWord{7, 11, 1755}, + dictWord{8, 11, 31}, + dictWord{9, 11, 168}, + dictWord{9, 11, 764}, + dictWord{139, 11, 869}, + dictWord{134, 11, 605}, + dictWord{ + 5, + 11, + 278, + }, + dictWord{137, 11, 68}, + dictWord{4, 11, 163}, + dictWord{5, 11, 201}, + dictWord{5, 11, 307}, + dictWord{5, 11, 310}, + dictWord{6, 11, 335}, + dictWord{ + 7, + 11, + 284, + }, + dictWord{136, 11, 165}, + dictWord{135, 11, 1660}, + dictWord{6, 11, 33}, + dictWord{135, 11, 1244}, + dictWord{4, 0, 616}, + dictWord{136, 11, 483}, + dictWord{8, 0, 857}, + dictWord{8, 0, 902}, + dictWord{8, 0, 910}, + dictWord{10, 0, 879}, + dictWord{12, 0, 726}, + dictWord{4, 11, 199}, + dictWord{139, 11, 34}, + dictWord{136, 0, 692}, + dictWord{6, 10, 193}, + dictWord{7, 10, 240}, + dictWord{7, 10, 1682}, + dictWord{10, 10, 51}, + dictWord{10, 10, 640}, + dictWord{11, 10, 410}, + dictWord{13, 10, 82}, + dictWord{14, 10, 247}, + dictWord{14, 10, 331}, + dictWord{142, 10, 377}, + dictWord{6, 0, 823}, + dictWord{134, 0, 983}, + dictWord{ + 139, + 10, + 411, + }, + dictWord{132, 0, 305}, + dictWord{136, 10, 633}, + dictWord{138, 11, 203}, + dictWord{134, 0, 681}, + dictWord{6, 11, 326}, + dictWord{7, 11, 677}, + dictWord{137, 11, 425}, + dictWord{5, 0, 214}, + dictWord{7, 0, 603}, + dictWord{8, 0, 611}, + dictWord{9, 0, 686}, + dictWord{10, 0, 88}, + dictWord{11, 0, 459}, + dictWord{ + 11, + 0, + 496, + }, + dictWord{12, 0, 463}, + dictWord{12, 0, 590}, + dictWord{141, 0, 0}, + dictWord{136, 0, 1004}, + dictWord{142, 0, 23}, + dictWord{134, 0, 1703}, + dictWord{ + 147, + 11, + 8, + }, + dictWord{145, 11, 56}, + dictWord{135, 0, 1443}, + dictWord{4, 10, 237}, + dictWord{135, 10, 514}, + dictWord{6, 0, 714}, + dictWord{145, 0, 19}, + dictWord{ + 5, + 11, + 358, + }, + dictWord{7, 11, 473}, + dictWord{7, 11, 1184}, + dictWord{10, 11, 662}, + dictWord{13, 11, 212}, + dictWord{13, 11, 304}, + dictWord{13, 11, 333}, + dictWord{145, 11, 98}, + dictWord{4, 0, 737}, + dictWord{10, 0, 98}, + dictWord{11, 0, 294}, + dictWord{12, 0, 60}, + dictWord{12, 0, 437}, + dictWord{13, 0, 64}, + dictWord{ + 13, + 0, + 380, + }, + dictWord{142, 0, 430}, + dictWord{6, 10, 392}, + dictWord{7, 10, 65}, + dictWord{135, 10, 2019}, + dictWord{6, 0, 1758}, + dictWord{8, 0, 520}, + dictWord{ + 9, + 0, + 345, + }, + dictWord{9, 0, 403}, + dictWord{142, 0, 350}, + dictWord{5, 0, 47}, + dictWord{10, 0, 242}, + dictWord{138, 0, 579}, + dictWord{5, 0, 139}, + dictWord{7, 0, 1168}, + dictWord{138, 0, 539}, + dictWord{134, 0, 1459}, + dictWord{13, 0, 388}, + dictWord{141, 11, 388}, + dictWord{134, 0, 253}, + dictWord{7, 10, 1260}, + dictWord{ + 135, + 10, + 1790, + }, + dictWord{10, 0, 252}, + dictWord{9, 10, 222}, + dictWord{139, 10, 900}, + dictWord{140, 0, 745}, + dictWord{133, 11, 946}, + dictWord{4, 0, 107}, + dictWord{ + 7, + 0, + 613, + }, + dictWord{8, 0, 439}, + dictWord{8, 0, 504}, + dictWord{9, 0, 501}, + dictWord{10, 0, 383}, + dictWord{139, 0, 477}, + dictWord{135, 11, 1485}, + dictWord{ + 132, + 0, + 871, + }, + dictWord{7, 11, 411}, + dictWord{7, 11, 590}, + dictWord{8, 11, 631}, + dictWord{9, 11, 323}, + dictWord{10, 11, 355}, + dictWord{11, 11, 491}, + dictWord{ + 12, + 11, + 143, + }, + dictWord{12, 11, 402}, + dictWord{13, 11, 73}, + dictWord{14, 11, 408}, + dictWord{15, 11, 107}, + dictWord{146, 11, 71}, + dictWord{132, 0, 229}, + dictWord{132, 0, 903}, + dictWord{140, 0, 71}, + dictWord{133, 0, 549}, + dictWord{4, 0, 47}, + dictWord{6, 0, 373}, + dictWord{7, 0, 452}, + dictWord{7, 0, 543}, + dictWord{ + 7, + 0, + 1828, + }, + dictWord{7, 0, 1856}, + dictWord{9, 0, 6}, + dictWord{11, 0, 257}, + dictWord{139, 0, 391}, + dictWord{7, 11, 1467}, + dictWord{8, 11, 328}, + dictWord{ + 10, + 11, + 544, + }, + dictWord{11, 11, 955}, + dictWord{13, 11, 320}, + dictWord{145, 11, 83}, + dictWord{5, 0, 980}, + dictWord{134, 0, 1754}, + dictWord{136, 0, 865}, + dictWord{ + 5, + 0, + 705, + }, + dictWord{137, 0, 606}, + dictWord{7, 0, 161}, + dictWord{8, 10, 201}, + dictWord{136, 10, 605}, + dictWord{143, 11, 35}, + dictWord{5, 11, 835}, + dictWord{ + 6, + 11, + 483, + }, + dictWord{140, 10, 224}, + dictWord{7, 0, 536}, + dictWord{7, 0, 1331}, + dictWord{136, 0, 143}, + dictWord{134, 0, 1388}, + dictWord{5, 0, 724}, + dictWord{ + 10, + 0, + 305, + }, + dictWord{11, 0, 151}, + dictWord{12, 0, 33}, + dictWord{12, 0, 121}, + dictWord{12, 0, 381}, + dictWord{17, 0, 3}, + dictWord{17, 0, 27}, + dictWord{17, 0, 78}, + dictWord{18, 0, 18}, + dictWord{19, 0, 54}, + dictWord{149, 0, 5}, + dictWord{4, 10, 523}, + dictWord{133, 10, 638}, + dictWord{5, 0, 19}, + dictWord{134, 0, 533}, + dictWord{ + 5, + 0, + 395, + }, + dictWord{5, 0, 951}, + dictWord{134, 0, 1776}, + dictWord{135, 0, 1908}, + dictWord{132, 0, 846}, + dictWord{10, 0, 74}, + dictWord{11, 0, 663}, + dictWord{ + 12, + 0, + 210, + }, + dictWord{13, 0, 166}, + dictWord{13, 0, 310}, + dictWord{14, 0, 373}, + dictWord{18, 0, 95}, + dictWord{19, 0, 43}, + dictWord{6, 10, 242}, + dictWord{7, 10, 227}, + dictWord{7, 10, 1581}, + dictWord{8, 10, 104}, + dictWord{9, 10, 113}, + dictWord{9, 10, 220}, + dictWord{9, 10, 427}, + dictWord{10, 10, 239}, + dictWord{11, 10, 579}, + dictWord{11, 10, 1023}, + dictWord{13, 10, 4}, + dictWord{13, 10, 204}, + dictWord{13, 10, 316}, + dictWord{148, 10, 86}, + dictWord{9, 11, 716}, + dictWord{11, 11, 108}, + dictWord{13, 11, 123}, + dictWord{14, 11, 252}, + dictWord{19, 11, 38}, + dictWord{21, 11, 3}, + dictWord{151, 11, 11}, + dictWord{8, 0, 372}, + dictWord{9, 0, 122}, + dictWord{138, 0, 175}, + dictWord{132, 11, 677}, + dictWord{7, 11, 1374}, + dictWord{136, 11, 540}, + dictWord{135, 10, 861}, + dictWord{132, 0, 695}, + dictWord{ + 7, + 0, + 497, + }, + dictWord{9, 0, 387}, + dictWord{147, 0, 81}, + dictWord{136, 0, 937}, + dictWord{134, 0, 718}, + dictWord{7, 0, 1328}, + dictWord{136, 10, 494}, + dictWord{ + 132, + 11, + 331, + }, + dictWord{6, 0, 1581}, + dictWord{133, 11, 747}, + dictWord{5, 0, 284}, + dictWord{6, 0, 49}, + dictWord{6, 0, 350}, + dictWord{7, 0, 1}, + dictWord{7, 0, 377}, + dictWord{7, 0, 1693}, + dictWord{8, 0, 18}, + dictWord{8, 0, 678}, + dictWord{9, 0, 161}, + dictWord{9, 0, 585}, + dictWord{9, 0, 671}, + dictWord{9, 0, 839}, + dictWord{11, 0, 912}, + dictWord{141, 0, 427}, + dictWord{7, 10, 1306}, + dictWord{8, 10, 505}, + dictWord{9, 10, 482}, + dictWord{10, 10, 126}, + dictWord{11, 10, 225}, + dictWord{12, 10, 347}, + dictWord{12, 10, 449}, + dictWord{13, 10, 19}, + dictWord{14, 10, 218}, + dictWord{142, 10, 435}, + dictWord{10, 10, 764}, + dictWord{12, 10, 120}, + dictWord{ + 13, + 10, + 39, + }, + dictWord{145, 10, 127}, + dictWord{4, 0, 597}, + dictWord{133, 10, 268}, + dictWord{134, 0, 1094}, + dictWord{4, 0, 1008}, + dictWord{134, 0, 1973}, + dictWord{132, 0, 811}, + dictWord{139, 0, 908}, + dictWord{135, 0, 1471}, + dictWord{133, 11, 326}, + dictWord{4, 10, 384}, + dictWord{135, 10, 1022}, + dictWord{ + 7, + 0, + 1935, + }, + dictWord{8, 0, 324}, + dictWord{12, 0, 42}, + dictWord{4, 11, 691}, + dictWord{7, 11, 1935}, + dictWord{8, 11, 324}, + dictWord{9, 11, 35}, + dictWord{10, 11, 680}, + dictWord{11, 11, 364}, + dictWord{12, 11, 42}, + dictWord{13, 11, 357}, + dictWord{146, 11, 16}, + dictWord{135, 0, 2014}, + dictWord{7, 0, 2007}, + dictWord{ + 9, + 0, + 101, + }, + dictWord{9, 0, 450}, + dictWord{10, 0, 66}, + dictWord{10, 0, 842}, + dictWord{11, 0, 536}, + dictWord{12, 0, 587}, + dictWord{6, 11, 32}, + dictWord{7, 11, 385}, + dictWord{7, 11, 757}, + dictWord{7, 11, 1916}, + dictWord{8, 11, 37}, + dictWord{8, 11, 94}, + dictWord{8, 11, 711}, + dictWord{9, 11, 541}, + dictWord{10, 11, 162}, + dictWord{ + 10, + 11, + 795, + }, + dictWord{11, 11, 989}, + dictWord{11, 11, 1010}, + dictWord{12, 11, 14}, + dictWord{142, 11, 308}, + dictWord{139, 0, 586}, + dictWord{ + 135, + 10, + 1703, + }, + dictWord{7, 0, 1077}, + dictWord{11, 0, 28}, + dictWord{9, 10, 159}, + dictWord{140, 10, 603}, + dictWord{6, 0, 1221}, + dictWord{136, 10, 583}, + dictWord{ + 6, + 11, + 152, + }, + dictWord{6, 11, 349}, + dictWord{6, 11, 1682}, + dictWord{7, 11, 1252}, + dictWord{8, 11, 112}, + dictWord{9, 11, 435}, + dictWord{9, 11, 668}, + dictWord{ + 10, + 11, + 290, + }, + dictWord{10, 11, 319}, + dictWord{10, 11, 815}, + dictWord{11, 11, 180}, + dictWord{11, 11, 837}, + dictWord{12, 11, 240}, + dictWord{13, 11, 152}, + dictWord{13, 11, 219}, + dictWord{142, 11, 158}, + dictWord{139, 0, 62}, + dictWord{132, 10, 515}, + dictWord{8, 10, 632}, + dictWord{8, 10, 697}, + dictWord{ + 137, + 10, + 854, + }, + dictWord{134, 0, 1766}, + dictWord{132, 11, 581}, + dictWord{6, 11, 126}, + dictWord{7, 11, 573}, + dictWord{8, 11, 397}, + dictWord{142, 11, 44}, + dictWord{ + 150, + 0, + 28, + }, + dictWord{11, 0, 670}, + dictWord{22, 0, 25}, + dictWord{4, 10, 136}, + dictWord{133, 10, 551}, + dictWord{6, 0, 1665}, + dictWord{7, 0, 256}, + dictWord{ + 7, + 0, + 1388, + }, + dictWord{138, 0, 499}, + dictWord{4, 0, 22}, + dictWord{5, 0, 10}, + dictWord{7, 0, 1576}, + dictWord{136, 0, 97}, + dictWord{134, 10, 1782}, + dictWord{5, 0, 481}, + dictWord{7, 10, 1287}, + dictWord{9, 10, 44}, + dictWord{10, 10, 552}, + dictWord{10, 10, 642}, + dictWord{11, 10, 839}, + dictWord{12, 10, 274}, + dictWord{ + 12, + 10, + 275, + }, + dictWord{12, 10, 372}, + dictWord{13, 10, 91}, + dictWord{142, 10, 125}, + dictWord{133, 11, 926}, + dictWord{7, 11, 1232}, + dictWord{137, 11, 531}, + dictWord{6, 0, 134}, + dictWord{7, 0, 437}, + dictWord{7, 0, 1824}, + dictWord{9, 0, 37}, + dictWord{14, 0, 285}, + dictWord{142, 0, 371}, + dictWord{7, 0, 486}, + dictWord{8, 0, 155}, + dictWord{11, 0, 93}, + dictWord{140, 0, 164}, + dictWord{6, 0, 1391}, + dictWord{134, 0, 1442}, + dictWord{133, 11, 670}, + dictWord{133, 0, 591}, + dictWord{ + 6, + 10, + 147, + }, + dictWord{7, 10, 886}, + dictWord{7, 11, 1957}, + dictWord{9, 10, 753}, + dictWord{138, 10, 268}, + dictWord{5, 0, 380}, + dictWord{5, 0, 650}, + dictWord{ + 7, + 0, + 1173, + }, + dictWord{136, 0, 310}, + dictWord{4, 0, 364}, + dictWord{7, 0, 1156}, + dictWord{7, 0, 1187}, + dictWord{137, 0, 409}, + dictWord{135, 11, 1621}, + dictWord{ + 134, + 0, + 482, + }, + dictWord{133, 11, 506}, + dictWord{4, 0, 781}, + dictWord{6, 0, 487}, + dictWord{7, 0, 926}, + dictWord{8, 0, 263}, + dictWord{139, 0, 500}, + dictWord{ + 138, + 10, + 137, + }, + dictWord{135, 11, 242}, + dictWord{139, 11, 96}, + dictWord{133, 10, 414}, + dictWord{135, 10, 1762}, + dictWord{134, 0, 804}, + dictWord{5, 11, 834}, + dictWord{7, 11, 1202}, + dictWord{8, 11, 14}, + dictWord{9, 11, 481}, + dictWord{137, 11, 880}, + dictWord{134, 10, 599}, + dictWord{4, 0, 94}, + dictWord{135, 0, 1265}, + dictWord{4, 0, 415}, + dictWord{132, 0, 417}, + dictWord{5, 0, 348}, + dictWord{6, 0, 522}, + dictWord{6, 10, 1749}, + dictWord{7, 11, 1526}, + dictWord{138, 11, 465}, + dictWord{134, 10, 1627}, + dictWord{132, 0, 1012}, + dictWord{132, 10, 488}, + dictWord{4, 11, 357}, + dictWord{6, 11, 172}, + dictWord{7, 11, 143}, + dictWord{ + 137, + 11, + 413, + }, + dictWord{4, 10, 83}, + dictWord{4, 11, 590}, + dictWord{146, 11, 76}, + dictWord{140, 10, 676}, + dictWord{7, 11, 287}, + dictWord{8, 11, 355}, + dictWord{ + 9, + 11, + 293, + }, + dictWord{137, 11, 743}, + dictWord{134, 10, 278}, + dictWord{6, 0, 1803}, + dictWord{18, 0, 165}, + dictWord{24, 0, 21}, + dictWord{5, 11, 169}, + dictWord{ + 7, + 11, + 333, + }, + dictWord{136, 11, 45}, + dictWord{12, 10, 97}, + dictWord{140, 11, 97}, + dictWord{4, 0, 408}, + dictWord{4, 0, 741}, + dictWord{135, 0, 500}, + dictWord{ + 132, + 11, + 198, + }, + dictWord{7, 10, 388}, + dictWord{7, 10, 644}, + dictWord{139, 10, 781}, + dictWord{4, 11, 24}, + dictWord{5, 11, 140}, + dictWord{5, 11, 185}, + dictWord{ + 7, + 11, + 1500, + }, + dictWord{11, 11, 565}, + dictWord{139, 11, 838}, + dictWord{6, 0, 1321}, + dictWord{9, 0, 257}, + dictWord{7, 10, 229}, + dictWord{8, 10, 59}, + dictWord{ + 9, + 10, + 190, + }, + dictWord{10, 10, 378}, + dictWord{140, 10, 191}, + dictWord{4, 11, 334}, + dictWord{133, 11, 593}, + dictWord{135, 11, 1885}, + dictWord{134, 0, 1138}, + dictWord{4, 0, 249}, + dictWord{6, 0, 73}, + dictWord{135, 0, 177}, + dictWord{133, 0, 576}, + dictWord{142, 0, 231}, + dictWord{137, 0, 288}, + dictWord{132, 10, 660}, + dictWord{7, 10, 1035}, + dictWord{138, 10, 737}, + dictWord{135, 0, 1487}, + dictWord{6, 0, 989}, + dictWord{9, 0, 433}, + dictWord{7, 10, 690}, + dictWord{9, 10, 587}, + dictWord{140, 10, 521}, + dictWord{7, 0, 1264}, + dictWord{7, 0, 1678}, + dictWord{11, 0, 945}, + dictWord{12, 0, 341}, + dictWord{12, 0, 471}, + dictWord{140, 0, 569}, + dictWord{132, 11, 709}, + dictWord{133, 11, 897}, + dictWord{5, 11, 224}, + dictWord{13, 11, 174}, + dictWord{146, 11, 52}, + dictWord{135, 11, 1840}, + dictWord{ + 134, + 10, + 1744, + }, + dictWord{12, 0, 87}, + dictWord{16, 0, 74}, + dictWord{4, 10, 733}, + dictWord{9, 10, 194}, + dictWord{10, 10, 92}, + dictWord{11, 10, 198}, + dictWord{ + 12, + 10, + 84, + }, + dictWord{141, 10, 128}, + dictWord{140, 0, 779}, + dictWord{135, 0, 538}, + dictWord{4, 11, 608}, + dictWord{133, 11, 497}, + dictWord{133, 0, 413}, + dictWord{7, 11, 1375}, + dictWord{7, 11, 1466}, + dictWord{138, 11, 331}, + dictWord{136, 0, 495}, + dictWord{6, 11, 540}, + dictWord{136, 11, 136}, + dictWord{7, 0, 54}, + dictWord{8, 0, 312}, + dictWord{10, 0, 191}, + dictWord{10, 0, 614}, + dictWord{140, 0, 567}, + dictWord{6, 0, 468}, + dictWord{7, 0, 567}, + dictWord{7, 0, 1478}, + dictWord{ + 8, + 0, + 530, + }, + dictWord{14, 0, 290}, + dictWord{133, 11, 999}, + dictWord{4, 11, 299}, + dictWord{7, 10, 306}, + dictWord{135, 11, 1004}, + dictWord{142, 11, 296}, + dictWord{134, 0, 1484}, + dictWord{133, 10, 979}, + dictWord{6, 0, 609}, + dictWord{9, 0, 815}, + dictWord{12, 11, 137}, + dictWord{14, 11, 9}, + dictWord{14, 11, 24}, + dictWord{142, 11, 64}, + dictWord{133, 11, 456}, + dictWord{6, 0, 484}, + dictWord{135, 0, 822}, + dictWord{133, 10, 178}, + dictWord{136, 11, 180}, + dictWord{ + 132, + 11, + 755, + }, + dictWord{137, 0, 900}, + dictWord{135, 0, 1335}, + dictWord{6, 0, 1724}, + dictWord{135, 0, 2022}, + dictWord{135, 11, 1139}, + dictWord{5, 0, 640}, + dictWord{132, 10, 390}, + dictWord{6, 0, 1831}, + dictWord{138, 11, 633}, + dictWord{135, 11, 566}, + dictWord{4, 11, 890}, + dictWord{5, 11, 805}, + dictWord{5, 11, 819}, + dictWord{5, 11, 961}, + dictWord{6, 11, 396}, + dictWord{6, 11, 1631}, + dictWord{6, 11, 1678}, + dictWord{7, 11, 1967}, + dictWord{7, 11, 2041}, + dictWord{ + 9, + 11, + 630, + }, + dictWord{11, 11, 8}, + dictWord{11, 11, 1019}, + dictWord{12, 11, 176}, + dictWord{13, 11, 225}, + dictWord{14, 11, 292}, + dictWord{149, 11, 24}, + dictWord{ + 132, + 0, + 474, + }, + dictWord{134, 0, 1103}, + dictWord{135, 0, 1504}, + dictWord{134, 0, 1576}, + dictWord{6, 0, 961}, + dictWord{6, 0, 1034}, + dictWord{140, 0, 655}, + dictWord{11, 11, 514}, + dictWord{149, 11, 20}, + dictWord{5, 0, 305}, + dictWord{135, 11, 1815}, + dictWord{7, 11, 1505}, + dictWord{10, 11, 190}, + dictWord{ + 10, + 11, + 634, + }, + dictWord{11, 11, 792}, + dictWord{12, 11, 358}, + dictWord{140, 11, 447}, + dictWord{5, 11, 0}, + dictWord{6, 11, 536}, + dictWord{7, 11, 604}, + dictWord{ + 13, + 11, + 445, + }, + dictWord{145, 11, 126}, + dictWord{7, 0, 1236}, + dictWord{133, 10, 105}, + dictWord{4, 0, 480}, + dictWord{6, 0, 217}, + dictWord{6, 0, 302}, + dictWord{ + 6, + 0, + 1642, + }, + dictWord{7, 0, 130}, + dictWord{7, 0, 837}, + dictWord{7, 0, 1321}, + dictWord{7, 0, 1547}, + dictWord{7, 0, 1657}, + dictWord{8, 0, 429}, + dictWord{9, 0, 228}, + dictWord{13, 0, 289}, + dictWord{13, 0, 343}, + dictWord{19, 0, 101}, + dictWord{6, 11, 232}, + dictWord{6, 11, 412}, + dictWord{7, 11, 1074}, + dictWord{8, 11, 9}, + dictWord{ + 8, + 11, + 157, + }, + dictWord{8, 11, 786}, + dictWord{9, 11, 196}, + dictWord{9, 11, 352}, + dictWord{9, 11, 457}, + dictWord{10, 11, 337}, + dictWord{11, 11, 232}, + dictWord{ + 11, + 11, + 877, + }, + dictWord{12, 11, 480}, + dictWord{140, 11, 546}, + dictWord{5, 10, 438}, + dictWord{7, 11, 958}, + dictWord{9, 10, 694}, + dictWord{12, 10, 627}, + dictWord{ + 13, + 11, + 38, + }, + dictWord{141, 10, 210}, + dictWord{4, 11, 382}, + dictWord{136, 11, 579}, + dictWord{7, 0, 278}, + dictWord{10, 0, 739}, + dictWord{11, 0, 708}, + dictWord{ + 141, + 0, + 348, + }, + dictWord{4, 11, 212}, + dictWord{135, 11, 1206}, + dictWord{135, 11, 1898}, + dictWord{6, 0, 708}, + dictWord{6, 0, 1344}, + dictWord{152, 10, 11}, + dictWord{137, 11, 768}, + dictWord{134, 0, 1840}, + dictWord{140, 0, 233}, + dictWord{8, 10, 25}, + dictWord{138, 10, 826}, + dictWord{6, 0, 2017}, + dictWord{ + 133, + 11, + 655, + }, + dictWord{6, 0, 1488}, + dictWord{139, 11, 290}, + dictWord{132, 10, 308}, + dictWord{134, 0, 1590}, + dictWord{134, 0, 1800}, + dictWord{134, 0, 1259}, + dictWord{16, 0, 28}, + dictWord{6, 11, 231}, + dictWord{7, 11, 95}, + dictWord{136, 11, 423}, + dictWord{133, 11, 300}, + dictWord{135, 10, 150}, + dictWord{ + 136, + 10, + 649, + }, + dictWord{7, 11, 1874}, + dictWord{137, 11, 641}, + dictWord{6, 11, 237}, + dictWord{7, 11, 611}, + dictWord{8, 11, 100}, + dictWord{9, 11, 416}, + dictWord{ + 11, + 11, + 335, + }, + dictWord{12, 11, 173}, + dictWord{146, 11, 101}, + dictWord{137, 0, 45}, + dictWord{134, 10, 521}, + dictWord{17, 0, 36}, + dictWord{14, 11, 26}, + dictWord{ + 146, + 11, + 150, + }, + dictWord{7, 0, 1442}, + dictWord{14, 0, 22}, + dictWord{5, 10, 339}, + dictWord{15, 10, 41}, + dictWord{15, 10, 166}, + dictWord{147, 10, 66}, + dictWord{ + 8, + 0, + 378, + }, + dictWord{6, 11, 581}, + dictWord{135, 11, 1119}, + dictWord{134, 0, 1507}, + dictWord{147, 11, 117}, + dictWord{139, 0, 39}, + dictWord{134, 0, 1054}, + dictWord{6, 0, 363}, + dictWord{7, 0, 1955}, + dictWord{136, 0, 725}, + dictWord{134, 0, 2036}, + dictWord{133, 11, 199}, + dictWord{6, 0, 1871}, + dictWord{9, 0, 935}, + dictWord{9, 0, 961}, + dictWord{9, 0, 1004}, + dictWord{9, 0, 1016}, + dictWord{12, 0, 805}, + dictWord{12, 0, 852}, + dictWord{12, 0, 853}, + dictWord{12, 0, 869}, + dictWord{ + 12, + 0, + 882, + }, + dictWord{12, 0, 896}, + dictWord{12, 0, 906}, + dictWord{12, 0, 917}, + dictWord{12, 0, 940}, + dictWord{15, 0, 170}, + dictWord{15, 0, 176}, + dictWord{ + 15, + 0, + 188, + }, + dictWord{15, 0, 201}, + dictWord{15, 0, 205}, + dictWord{15, 0, 212}, + dictWord{15, 0, 234}, + dictWord{15, 0, 244}, + dictWord{18, 0, 181}, + dictWord{18, 0, 193}, + dictWord{18, 0, 196}, + dictWord{18, 0, 201}, + dictWord{18, 0, 202}, + dictWord{18, 0, 210}, + dictWord{18, 0, 217}, + dictWord{18, 0, 235}, + dictWord{18, 0, 236}, + dictWord{18, 0, 237}, + dictWord{21, 0, 54}, + dictWord{21, 0, 55}, + dictWord{21, 0, 58}, + dictWord{21, 0, 59}, + dictWord{152, 0, 22}, + dictWord{134, 10, 1628}, + dictWord{ + 137, + 0, + 805, + }, + dictWord{5, 0, 813}, + dictWord{135, 0, 2046}, + dictWord{142, 11, 42}, + dictWord{5, 0, 712}, + dictWord{6, 0, 1240}, + dictWord{11, 0, 17}, + dictWord{ + 13, + 0, + 321, + }, + dictWord{144, 0, 67}, + dictWord{132, 0, 617}, + dictWord{135, 10, 829}, + dictWord{6, 0, 320}, + dictWord{7, 0, 781}, + dictWord{7, 0, 1921}, + dictWord{9, 0, 55}, + dictWord{10, 0, 186}, + dictWord{10, 0, 273}, + dictWord{10, 0, 664}, + dictWord{10, 0, 801}, + dictWord{11, 0, 996}, + dictWord{11, 0, 997}, + dictWord{13, 0, 157}, + dictWord{142, 0, 170}, + dictWord{136, 0, 271}, + dictWord{5, 10, 486}, + dictWord{135, 10, 1349}, + dictWord{18, 11, 91}, + dictWord{147, 11, 70}, + dictWord{10, 0, 445}, + dictWord{7, 10, 1635}, + dictWord{8, 10, 17}, + dictWord{138, 10, 295}, + dictWord{136, 11, 404}, + dictWord{7, 0, 103}, + dictWord{7, 0, 863}, + dictWord{11, 0, 184}, + dictWord{145, 0, 62}, + dictWord{138, 10, 558}, + dictWord{137, 0, 659}, + dictWord{6, 11, 312}, + dictWord{6, 11, 1715}, + dictWord{10, 11, 584}, + dictWord{ + 11, + 11, + 546, + }, + dictWord{11, 11, 692}, + dictWord{12, 11, 259}, + dictWord{12, 11, 295}, + dictWord{13, 11, 46}, + dictWord{141, 11, 154}, + dictWord{134, 0, 676}, + dictWord{132, 11, 588}, + dictWord{4, 11, 231}, + dictWord{5, 11, 61}, + dictWord{6, 11, 104}, + dictWord{7, 11, 729}, + dictWord{7, 11, 964}, + dictWord{7, 11, 1658}, + dictWord{140, 11, 414}, + dictWord{6, 11, 263}, + dictWord{138, 11, 757}, + dictWord{11, 0, 337}, + dictWord{142, 0, 303}, + dictWord{135, 11, 1363}, + dictWord{ + 132, + 11, + 320, + }, + dictWord{140, 0, 506}, + dictWord{134, 10, 447}, + dictWord{5, 0, 77}, + dictWord{7, 0, 1455}, + dictWord{10, 0, 843}, + dictWord{147, 0, 73}, + dictWord{ + 7, + 10, + 577, + }, + dictWord{7, 10, 1432}, + dictWord{9, 10, 475}, + dictWord{9, 10, 505}, + dictWord{9, 10, 526}, + dictWord{9, 10, 609}, + dictWord{9, 10, 689}, + dictWord{ + 9, + 10, + 726, + }, + dictWord{9, 10, 735}, + dictWord{9, 10, 738}, + dictWord{10, 10, 556}, + dictWord{10, 10, 674}, + dictWord{10, 10, 684}, + dictWord{11, 10, 89}, + dictWord{ + 11, + 10, + 202, + }, + dictWord{11, 10, 272}, + dictWord{11, 10, 380}, + dictWord{11, 10, 415}, + dictWord{11, 10, 505}, + dictWord{11, 10, 537}, + dictWord{11, 10, 550}, + dictWord{11, 10, 562}, + dictWord{11, 10, 640}, + dictWord{11, 10, 667}, + dictWord{11, 10, 688}, + dictWord{11, 10, 847}, + dictWord{11, 10, 927}, + dictWord{ + 11, + 10, + 930, + }, + dictWord{11, 10, 940}, + dictWord{12, 10, 144}, + dictWord{12, 10, 325}, + dictWord{12, 10, 329}, + dictWord{12, 10, 389}, + dictWord{12, 10, 403}, + dictWord{ + 12, + 10, + 451, + }, + dictWord{12, 10, 515}, + dictWord{12, 10, 604}, + dictWord{12, 10, 616}, + dictWord{12, 10, 626}, + dictWord{13, 10, 66}, + dictWord{13, 10, 131}, + dictWord{13, 10, 167}, + dictWord{13, 10, 236}, + dictWord{13, 10, 368}, + dictWord{13, 10, 411}, + dictWord{13, 10, 434}, + dictWord{13, 10, 453}, + dictWord{ + 13, + 10, + 461, + }, + dictWord{13, 10, 474}, + dictWord{14, 10, 59}, + dictWord{14, 10, 60}, + dictWord{14, 10, 139}, + dictWord{14, 10, 152}, + dictWord{14, 10, 276}, + dictWord{ + 14, + 10, + 353, + }, + dictWord{14, 10, 402}, + dictWord{15, 10, 28}, + dictWord{15, 10, 81}, + dictWord{15, 10, 123}, + dictWord{15, 10, 152}, + dictWord{18, 10, 136}, + dictWord{148, 10, 88}, + dictWord{132, 0, 458}, + dictWord{135, 0, 1420}, + dictWord{6, 0, 109}, + dictWord{10, 0, 382}, + dictWord{4, 11, 405}, + dictWord{4, 10, 609}, + dictWord{7, 10, 756}, + dictWord{7, 11, 817}, + dictWord{9, 10, 544}, + dictWord{11, 10, 413}, + dictWord{14, 11, 58}, + dictWord{14, 10, 307}, + dictWord{16, 10, 25}, + dictWord{17, 11, 37}, + dictWord{146, 11, 124}, + dictWord{6, 0, 330}, + dictWord{7, 0, 1084}, + dictWord{11, 0, 142}, + dictWord{133, 11, 974}, + dictWord{4, 10, 930}, + dictWord{133, 10, 947}, + dictWord{5, 10, 939}, + dictWord{142, 11, 394}, + dictWord{16, 0, 91}, + dictWord{145, 0, 87}, + dictWord{5, 11, 235}, + dictWord{5, 10, 962}, + dictWord{7, 11, 1239}, + dictWord{11, 11, 131}, + dictWord{140, 11, 370}, + dictWord{11, 0, 492}, + dictWord{5, 10, 651}, + dictWord{8, 10, 170}, + dictWord{9, 10, 61}, + dictWord{9, 10, 63}, + dictWord{10, 10, 23}, + dictWord{10, 10, 37}, + dictWord{10, 10, 834}, + dictWord{11, 10, 4}, + dictWord{11, 10, 281}, + dictWord{11, 10, 503}, + dictWord{ + 11, + 10, + 677, + }, + dictWord{12, 10, 96}, + dictWord{12, 10, 130}, + dictWord{12, 10, 244}, + dictWord{14, 10, 5}, + dictWord{14, 10, 40}, + dictWord{14, 10, 162}, + dictWord{ + 14, + 10, + 202, + }, + dictWord{146, 10, 133}, + dictWord{4, 10, 406}, + dictWord{5, 10, 579}, + dictWord{12, 10, 492}, + dictWord{150, 10, 15}, + dictWord{9, 11, 137}, + dictWord{138, 11, 221}, + dictWord{134, 0, 1239}, + dictWord{11, 0, 211}, + dictWord{140, 0, 145}, + dictWord{7, 11, 390}, + dictWord{138, 11, 140}, + dictWord{ + 135, + 11, + 1418, + }, + dictWord{135, 11, 1144}, + dictWord{134, 0, 1049}, + dictWord{7, 0, 321}, + dictWord{6, 10, 17}, + dictWord{7, 10, 1001}, + dictWord{7, 10, 1982}, + dictWord{ + 9, + 10, + 886, + }, + dictWord{10, 10, 489}, + dictWord{10, 10, 800}, + dictWord{11, 10, 782}, + dictWord{12, 10, 320}, + dictWord{13, 10, 467}, + dictWord{14, 10, 145}, + dictWord{14, 10, 387}, + dictWord{143, 10, 119}, + dictWord{145, 10, 17}, + dictWord{5, 11, 407}, + dictWord{11, 11, 489}, + dictWord{19, 11, 37}, + dictWord{20, 11, 73}, + dictWord{150, 11, 38}, + dictWord{133, 10, 458}, + dictWord{135, 0, 1985}, + dictWord{7, 10, 1983}, + dictWord{8, 10, 0}, + dictWord{8, 10, 171}, + dictWord{ + 9, + 10, + 120, + }, + dictWord{9, 10, 732}, + dictWord{10, 10, 473}, + dictWord{11, 10, 656}, + dictWord{11, 10, 998}, + dictWord{18, 10, 0}, + dictWord{18, 10, 2}, + dictWord{ + 147, + 10, + 21, + }, + dictWord{5, 11, 325}, + dictWord{7, 11, 1483}, + dictWord{8, 11, 5}, + dictWord{8, 11, 227}, + dictWord{9, 11, 105}, + dictWord{10, 11, 585}, + dictWord{ + 140, + 11, + 614, + }, + dictWord{136, 0, 122}, + dictWord{132, 0, 234}, + dictWord{135, 11, 1196}, + dictWord{6, 0, 976}, + dictWord{6, 0, 1098}, + dictWord{134, 0, 1441}, + dictWord{ + 7, + 0, + 253, + }, + dictWord{136, 0, 549}, + dictWord{6, 11, 621}, + dictWord{13, 11, 504}, + dictWord{144, 11, 19}, + dictWord{132, 10, 519}, + dictWord{5, 0, 430}, + dictWord{ + 5, + 0, + 932, + }, + dictWord{6, 0, 131}, + dictWord{7, 0, 417}, + dictWord{9, 0, 522}, + dictWord{11, 0, 314}, + dictWord{141, 0, 390}, + dictWord{14, 0, 149}, + dictWord{14, 0, 399}, + dictWord{143, 0, 57}, + dictWord{5, 10, 907}, + dictWord{6, 10, 31}, + dictWord{6, 11, 218}, + dictWord{7, 10, 491}, + dictWord{7, 10, 530}, + dictWord{8, 10, 592}, + dictWord{11, 10, 53}, + dictWord{11, 10, 779}, + dictWord{12, 10, 167}, + dictWord{12, 10, 411}, + dictWord{14, 10, 14}, + dictWord{14, 10, 136}, + dictWord{15, 10, 72}, + dictWord{16, 10, 17}, + dictWord{144, 10, 72}, + dictWord{140, 11, 330}, + dictWord{7, 11, 454}, + dictWord{7, 11, 782}, + dictWord{136, 11, 768}, + dictWord{ + 132, + 0, + 507, + }, + dictWord{10, 11, 676}, + dictWord{140, 11, 462}, + dictWord{6, 0, 630}, + dictWord{9, 0, 811}, + dictWord{4, 10, 208}, + dictWord{5, 10, 106}, + dictWord{ + 6, + 10, + 531, + }, + dictWord{8, 10, 408}, + dictWord{9, 10, 188}, + dictWord{138, 10, 572}, + dictWord{4, 0, 343}, + dictWord{5, 0, 511}, + dictWord{134, 10, 1693}, + dictWord{ + 134, + 11, + 164, + }, + dictWord{132, 0, 448}, + dictWord{7, 0, 455}, + dictWord{138, 0, 591}, + dictWord{135, 0, 1381}, + dictWord{12, 10, 441}, + dictWord{150, 11, 50}, + dictWord{9, 10, 449}, + dictWord{10, 10, 192}, + dictWord{138, 10, 740}, + dictWord{6, 0, 575}, + dictWord{132, 10, 241}, + dictWord{134, 0, 1175}, + dictWord{ + 134, + 0, + 653, + }, + dictWord{134, 0, 1761}, + dictWord{134, 0, 1198}, + dictWord{132, 10, 259}, + dictWord{6, 11, 343}, + dictWord{7, 11, 195}, + dictWord{9, 11, 226}, + dictWord{ + 10, + 11, + 197, + }, + dictWord{10, 11, 575}, + dictWord{11, 11, 502}, + dictWord{139, 11, 899}, + dictWord{7, 0, 1127}, + dictWord{7, 0, 1572}, + dictWord{10, 0, 297}, + dictWord{10, 0, 422}, + dictWord{11, 0, 764}, + dictWord{11, 0, 810}, + dictWord{12, 0, 264}, + dictWord{13, 0, 102}, + dictWord{13, 0, 300}, + dictWord{13, 0, 484}, + dictWord{ + 14, + 0, + 147, + }, + dictWord{14, 0, 229}, + dictWord{17, 0, 71}, + dictWord{18, 0, 118}, + dictWord{147, 0, 120}, + dictWord{135, 11, 666}, + dictWord{132, 0, 678}, + dictWord{ + 4, + 10, + 173, + }, + dictWord{5, 10, 312}, + dictWord{5, 10, 512}, + dictWord{135, 10, 1285}, + dictWord{7, 10, 1603}, + dictWord{7, 10, 1691}, + dictWord{9, 10, 464}, + dictWord{11, 10, 195}, + dictWord{12, 10, 279}, + dictWord{12, 10, 448}, + dictWord{14, 10, 11}, + dictWord{147, 10, 102}, + dictWord{16, 0, 99}, + dictWord{146, 0, 164}, + dictWord{7, 11, 1125}, + dictWord{9, 11, 143}, + dictWord{11, 11, 61}, + dictWord{14, 11, 405}, + dictWord{150, 11, 21}, + dictWord{137, 11, 260}, + dictWord{ + 4, + 10, + 452, + }, + dictWord{5, 10, 583}, + dictWord{5, 10, 817}, + dictWord{6, 10, 433}, + dictWord{7, 10, 593}, + dictWord{7, 10, 720}, + dictWord{7, 10, 1378}, + dictWord{ + 8, + 10, + 161, + }, + dictWord{9, 10, 284}, + dictWord{10, 10, 313}, + dictWord{139, 10, 886}, + dictWord{132, 10, 547}, + dictWord{136, 10, 722}, + dictWord{14, 0, 35}, + dictWord{142, 0, 191}, + dictWord{141, 0, 45}, + dictWord{138, 0, 121}, + dictWord{132, 0, 125}, + dictWord{134, 0, 1622}, + dictWord{133, 11, 959}, + dictWord{ + 8, + 10, + 420, + }, + dictWord{139, 10, 193}, + dictWord{132, 0, 721}, + dictWord{135, 10, 409}, + dictWord{136, 0, 145}, + dictWord{7, 0, 792}, + dictWord{8, 0, 147}, + dictWord{ + 10, + 0, + 821, + }, + dictWord{11, 0, 970}, + dictWord{11, 0, 1021}, + dictWord{136, 11, 173}, + dictWord{134, 11, 266}, + dictWord{132, 0, 715}, + dictWord{7, 0, 1999}, + dictWord{138, 10, 308}, + dictWord{133, 0, 531}, + dictWord{5, 0, 168}, + dictWord{5, 0, 930}, + dictWord{8, 0, 74}, + dictWord{9, 0, 623}, + dictWord{12, 0, 500}, + dictWord{ + 140, + 0, + 579, + }, + dictWord{144, 0, 65}, + dictWord{138, 11, 246}, + dictWord{6, 0, 220}, + dictWord{7, 0, 1101}, + dictWord{13, 0, 105}, + dictWord{142, 11, 314}, + dictWord{ + 5, + 10, + 1002, + }, + dictWord{136, 10, 745}, + dictWord{134, 0, 960}, + dictWord{20, 0, 0}, + dictWord{148, 11, 0}, + dictWord{4, 0, 1005}, + dictWord{4, 10, 239}, + dictWord{ + 6, + 10, + 477, + }, + dictWord{7, 10, 1607}, + dictWord{11, 10, 68}, + dictWord{139, 10, 617}, + dictWord{6, 0, 19}, + dictWord{7, 0, 1413}, + dictWord{139, 0, 428}, + dictWord{ + 149, + 10, + 13, + }, + dictWord{7, 0, 96}, + dictWord{8, 0, 401}, + dictWord{8, 0, 703}, + dictWord{9, 0, 896}, + dictWord{136, 11, 300}, + dictWord{134, 0, 1595}, + dictWord{145, 0, 116}, + dictWord{136, 0, 1021}, + dictWord{7, 0, 1961}, + dictWord{7, 0, 1965}, + dictWord{7, 0, 2030}, + dictWord{8, 0, 150}, + dictWord{8, 0, 702}, + dictWord{8, 0, 737}, + dictWord{ + 8, + 0, + 750, + }, + dictWord{140, 0, 366}, + dictWord{11, 11, 75}, + dictWord{142, 11, 267}, + dictWord{132, 10, 367}, + dictWord{8, 0, 800}, + dictWord{9, 0, 148}, + dictWord{ + 9, + 0, + 872, + }, + dictWord{9, 0, 890}, + dictWord{11, 0, 309}, + dictWord{11, 0, 1001}, + dictWord{13, 0, 267}, + dictWord{13, 0, 323}, + dictWord{5, 11, 427}, + dictWord{ + 5, + 11, + 734, + }, + dictWord{7, 11, 478}, + dictWord{136, 11, 52}, + dictWord{7, 11, 239}, + dictWord{11, 11, 217}, + dictWord{142, 11, 165}, + dictWord{132, 11, 323}, + dictWord{140, 11, 419}, + dictWord{13, 0, 299}, + dictWord{142, 0, 75}, + dictWord{6, 11, 87}, + dictWord{6, 11, 1734}, + dictWord{7, 11, 20}, + dictWord{7, 11, 1056}, + dictWord{ + 8, + 11, + 732, + }, + dictWord{9, 11, 406}, + dictWord{9, 11, 911}, + dictWord{138, 11, 694}, + dictWord{134, 0, 1383}, + dictWord{132, 10, 694}, + dictWord{ + 133, + 11, + 613, + }, + dictWord{137, 0, 779}, + dictWord{4, 0, 598}, + dictWord{140, 10, 687}, + dictWord{6, 0, 970}, + dictWord{135, 0, 424}, + dictWord{133, 0, 547}, + dictWord{ + 7, + 11, + 32, + }, + dictWord{7, 11, 984}, + dictWord{8, 11, 85}, + dictWord{8, 11, 709}, + dictWord{9, 11, 579}, + dictWord{9, 11, 847}, + dictWord{9, 11, 856}, + dictWord{10, 11, 799}, + dictWord{11, 11, 258}, + dictWord{11, 11, 1007}, + dictWord{12, 11, 331}, + dictWord{12, 11, 615}, + dictWord{13, 11, 188}, + dictWord{13, 11, 435}, + dictWord{ + 14, + 11, + 8, + }, + dictWord{15, 11, 165}, + dictWord{16, 11, 27}, + dictWord{148, 11, 40}, + dictWord{6, 0, 1222}, + dictWord{134, 0, 1385}, + dictWord{132, 0, 876}, + dictWord{ + 138, + 11, + 151, + }, + dictWord{135, 10, 213}, + dictWord{4, 11, 167}, + dictWord{135, 11, 82}, + dictWord{133, 0, 133}, + dictWord{6, 11, 24}, + dictWord{7, 11, 74}, + dictWord{ + 7, + 11, + 678, + }, + dictWord{137, 11, 258}, + dictWord{5, 11, 62}, + dictWord{6, 11, 534}, + dictWord{7, 11, 684}, + dictWord{7, 11, 1043}, + dictWord{7, 11, 1072}, + dictWord{ + 8, + 11, + 280, + }, + dictWord{8, 11, 541}, + dictWord{8, 11, 686}, + dictWord{10, 11, 519}, + dictWord{11, 11, 252}, + dictWord{140, 11, 282}, + dictWord{136, 0, 187}, + dictWord{8, 0, 8}, + dictWord{10, 0, 0}, + dictWord{10, 0, 818}, + dictWord{139, 0, 988}, + dictWord{132, 11, 359}, + dictWord{11, 0, 429}, + dictWord{15, 0, 51}, + dictWord{ + 135, + 10, + 1672, + }, + dictWord{136, 0, 685}, + dictWord{5, 11, 211}, + dictWord{7, 11, 88}, + dictWord{136, 11, 627}, + dictWord{134, 0, 472}, + dictWord{136, 0, 132}, + dictWord{ + 6, + 11, + 145, + }, + dictWord{141, 11, 336}, + dictWord{4, 10, 751}, + dictWord{11, 10, 390}, + dictWord{140, 10, 32}, + dictWord{6, 0, 938}, + dictWord{6, 0, 1060}, + dictWord{ + 4, + 11, + 263, + }, + dictWord{4, 10, 409}, + dictWord{133, 10, 78}, + dictWord{137, 0, 874}, + dictWord{8, 0, 774}, + dictWord{10, 0, 670}, + dictWord{12, 0, 51}, + dictWord{ + 4, + 11, + 916, + }, + dictWord{6, 10, 473}, + dictWord{7, 10, 1602}, + dictWord{10, 10, 698}, + dictWord{12, 10, 212}, + dictWord{13, 10, 307}, + dictWord{145, 10, 105}, + dictWord{146, 0, 92}, + dictWord{143, 10, 156}, + dictWord{132, 0, 830}, + dictWord{137, 0, 701}, + dictWord{4, 11, 599}, + dictWord{6, 11, 1634}, + dictWord{7, 11, 5}, + dictWord{7, 11, 55}, + dictWord{7, 11, 67}, + dictWord{7, 11, 97}, + dictWord{7, 11, 691}, + dictWord{7, 11, 979}, + dictWord{7, 11, 1697}, + dictWord{8, 11, 207}, + dictWord{ + 8, + 11, + 214, + }, + dictWord{8, 11, 231}, + dictWord{8, 11, 294}, + dictWord{8, 11, 336}, + dictWord{8, 11, 428}, + dictWord{8, 11, 451}, + dictWord{8, 11, 460}, + dictWord{8, 11, 471}, + dictWord{8, 11, 622}, + dictWord{8, 11, 626}, + dictWord{8, 11, 679}, + dictWord{8, 11, 759}, + dictWord{8, 11, 829}, + dictWord{9, 11, 11}, + dictWord{9, 11, 246}, + dictWord{ + 9, + 11, + 484, + }, + dictWord{9, 11, 573}, + dictWord{9, 11, 706}, + dictWord{9, 11, 762}, + dictWord{9, 11, 798}, + dictWord{9, 11, 855}, + dictWord{9, 11, 870}, + dictWord{ + 9, + 11, + 912, + }, + dictWord{10, 11, 303}, + dictWord{10, 11, 335}, + dictWord{10, 11, 424}, + dictWord{10, 11, 461}, + dictWord{10, 11, 543}, + dictWord{10, 11, 759}, + dictWord{10, 11, 814}, + dictWord{11, 11, 59}, + dictWord{11, 11, 199}, + dictWord{11, 11, 235}, + dictWord{11, 11, 475}, + dictWord{11, 11, 590}, + dictWord{11, 11, 929}, + dictWord{11, 11, 963}, + dictWord{12, 11, 114}, + dictWord{12, 11, 182}, + dictWord{12, 11, 226}, + dictWord{12, 11, 332}, + dictWord{12, 11, 439}, + dictWord{ + 12, + 11, + 575, + }, + dictWord{12, 11, 598}, + dictWord{13, 11, 8}, + dictWord{13, 11, 125}, + dictWord{13, 11, 194}, + dictWord{13, 11, 287}, + dictWord{14, 11, 197}, + dictWord{ + 14, + 11, + 383, + }, + dictWord{15, 11, 53}, + dictWord{17, 11, 63}, + dictWord{19, 11, 46}, + dictWord{19, 11, 98}, + dictWord{19, 11, 106}, + dictWord{148, 11, 85}, + dictWord{ + 4, + 0, + 127, + }, + dictWord{5, 0, 350}, + dictWord{6, 0, 356}, + dictWord{8, 0, 426}, + dictWord{9, 0, 572}, + dictWord{10, 0, 247}, + dictWord{139, 0, 312}, + dictWord{134, 0, 1215}, + dictWord{6, 0, 59}, + dictWord{9, 0, 603}, + dictWord{13, 0, 397}, + dictWord{7, 11, 1853}, + dictWord{138, 11, 437}, + dictWord{134, 0, 1762}, + dictWord{ + 147, + 11, + 126, + }, + dictWord{135, 10, 883}, + dictWord{13, 0, 293}, + dictWord{142, 0, 56}, + dictWord{133, 10, 617}, + dictWord{139, 10, 50}, + dictWord{5, 11, 187}, + dictWord{ + 7, + 10, + 1518, + }, + dictWord{139, 10, 694}, + dictWord{135, 0, 441}, + dictWord{6, 0, 111}, + dictWord{7, 0, 4}, + dictWord{8, 0, 163}, + dictWord{8, 0, 776}, + dictWord{ + 138, + 0, + 566, + }, + dictWord{132, 0, 806}, + dictWord{4, 11, 215}, + dictWord{9, 11, 38}, + dictWord{10, 11, 3}, + dictWord{11, 11, 23}, + dictWord{11, 11, 127}, + dictWord{ + 139, + 11, + 796, + }, + dictWord{14, 0, 233}, + dictWord{4, 10, 546}, + dictWord{135, 10, 2042}, + dictWord{135, 0, 1994}, + dictWord{134, 0, 1739}, + dictWord{135, 11, 1530}, + dictWord{136, 0, 393}, + dictWord{5, 0, 297}, + dictWord{7, 0, 1038}, + dictWord{14, 0, 359}, + dictWord{19, 0, 52}, + dictWord{148, 0, 47}, + dictWord{135, 0, 309}, + dictWord{ + 4, + 10, + 313, + }, + dictWord{133, 10, 577}, + dictWord{8, 10, 184}, + dictWord{141, 10, 433}, + dictWord{135, 10, 935}, + dictWord{12, 10, 186}, + dictWord{ + 12, + 10, + 292, + }, + dictWord{14, 10, 100}, + dictWord{146, 10, 70}, + dictWord{136, 0, 363}, + dictWord{14, 0, 175}, + dictWord{11, 10, 402}, + dictWord{12, 10, 109}, + dictWord{ + 12, + 10, + 431, + }, + dictWord{13, 10, 179}, + dictWord{13, 10, 206}, + dictWord{14, 10, 217}, + dictWord{16, 10, 3}, + dictWord{148, 10, 53}, + dictWord{5, 10, 886}, + dictWord{ + 6, + 10, + 46, + }, + dictWord{6, 10, 1790}, + dictWord{7, 10, 14}, + dictWord{7, 10, 732}, + dictWord{7, 10, 1654}, + dictWord{8, 10, 95}, + dictWord{8, 10, 327}, + dictWord{ + 8, + 10, + 616, + }, + dictWord{9, 10, 892}, + dictWord{10, 10, 598}, + dictWord{10, 10, 769}, + dictWord{11, 10, 134}, + dictWord{11, 10, 747}, + dictWord{12, 10, 378}, + dictWord{ + 142, + 10, + 97, + }, + dictWord{136, 0, 666}, + dictWord{135, 0, 1675}, + dictWord{6, 0, 655}, + dictWord{134, 0, 1600}, + dictWord{135, 0, 808}, + dictWord{133, 10, 1021}, + dictWord{4, 11, 28}, + dictWord{5, 11, 440}, + dictWord{7, 11, 248}, + dictWord{11, 11, 833}, + dictWord{140, 11, 344}, + dictWord{134, 11, 1654}, + dictWord{ + 132, + 0, + 280, + }, + dictWord{140, 0, 54}, + dictWord{4, 0, 421}, + dictWord{133, 0, 548}, + dictWord{132, 10, 153}, + dictWord{6, 11, 339}, + dictWord{135, 11, 923}, + dictWord{ + 133, + 11, + 853, + }, + dictWord{133, 10, 798}, + dictWord{132, 10, 587}, + dictWord{6, 11, 249}, + dictWord{7, 11, 1234}, + dictWord{139, 11, 573}, + dictWord{6, 10, 598}, + dictWord{7, 10, 42}, + dictWord{8, 10, 695}, + dictWord{10, 10, 212}, + dictWord{11, 10, 158}, + dictWord{14, 10, 196}, + dictWord{145, 10, 85}, + dictWord{7, 0, 249}, + dictWord{5, 10, 957}, + dictWord{133, 10, 1008}, + dictWord{4, 10, 129}, + dictWord{135, 10, 465}, + dictWord{6, 0, 254}, + dictWord{7, 0, 842}, + dictWord{7, 0, 1659}, + dictWord{9, 0, 109}, + dictWord{10, 0, 103}, + dictWord{7, 10, 908}, + dictWord{7, 10, 1201}, + dictWord{9, 10, 755}, + dictWord{11, 10, 906}, + dictWord{12, 10, 527}, + dictWord{146, 10, 7}, + dictWord{5, 0, 262}, + dictWord{136, 10, 450}, + dictWord{144, 0, 1}, + dictWord{10, 11, 201}, + dictWord{142, 11, 319}, + dictWord{7, 11, 49}, + dictWord{ + 7, + 11, + 392, + }, + dictWord{8, 11, 20}, + dictWord{8, 11, 172}, + dictWord{8, 11, 690}, + dictWord{9, 11, 383}, + dictWord{9, 11, 845}, + dictWord{10, 11, 48}, + dictWord{ + 11, + 11, + 293, + }, + dictWord{11, 11, 832}, + dictWord{11, 11, 920}, + dictWord{141, 11, 221}, + dictWord{5, 11, 858}, + dictWord{133, 11, 992}, + dictWord{134, 0, 805}, + dictWord{139, 10, 1003}, + dictWord{6, 0, 1630}, + dictWord{134, 11, 307}, + dictWord{7, 11, 1512}, + dictWord{135, 11, 1794}, + dictWord{6, 11, 268}, + dictWord{ + 137, + 11, + 62, + }, + dictWord{135, 10, 1868}, + dictWord{133, 0, 671}, + dictWord{4, 0, 989}, + dictWord{8, 0, 972}, + dictWord{136, 0, 998}, + dictWord{132, 11, 423}, + dictWord{132, 0, 889}, + dictWord{135, 0, 1382}, + dictWord{135, 0, 1910}, + dictWord{7, 10, 965}, + dictWord{7, 10, 1460}, + dictWord{135, 10, 1604}, + dictWord{ + 4, + 0, + 627, + }, + dictWord{5, 0, 775}, + dictWord{138, 11, 106}, + dictWord{134, 11, 348}, + dictWord{7, 0, 202}, + dictWord{11, 0, 362}, + dictWord{11, 0, 948}, + dictWord{ + 140, + 0, + 388, + }, + dictWord{138, 11, 771}, + dictWord{6, 11, 613}, + dictWord{136, 11, 223}, + dictWord{6, 0, 560}, + dictWord{7, 0, 451}, + dictWord{8, 0, 389}, + dictWord{ + 12, + 0, + 490, + }, + dictWord{13, 0, 16}, + dictWord{13, 0, 215}, + dictWord{13, 0, 351}, + dictWord{18, 0, 132}, + dictWord{147, 0, 125}, + dictWord{135, 0, 841}, + dictWord{ + 136, + 0, + 566, + }, + dictWord{136, 0, 938}, + dictWord{132, 11, 670}, + dictWord{5, 0, 912}, + dictWord{6, 0, 1695}, + dictWord{140, 11, 55}, + dictWord{9, 11, 40}, + dictWord{ + 139, + 11, + 136, + }, + dictWord{7, 0, 1361}, + dictWord{7, 10, 982}, + dictWord{10, 10, 32}, + dictWord{143, 10, 56}, + dictWord{11, 11, 259}, + dictWord{140, 11, 270}, + dictWord{ + 5, + 0, + 236, + }, + dictWord{6, 0, 572}, + dictWord{8, 0, 492}, + dictWord{11, 0, 618}, + dictWord{144, 0, 56}, + dictWord{8, 11, 572}, + dictWord{9, 11, 310}, + dictWord{9, 11, 682}, + dictWord{137, 11, 698}, + dictWord{134, 0, 1854}, + dictWord{5, 0, 190}, + dictWord{136, 0, 318}, + dictWord{133, 10, 435}, + dictWord{135, 0, 1376}, + dictWord{ + 4, + 11, + 296, + }, + dictWord{6, 11, 352}, + dictWord{7, 11, 401}, + dictWord{7, 11, 1410}, + dictWord{7, 11, 1594}, + dictWord{7, 11, 1674}, + dictWord{8, 11, 63}, + dictWord{ + 8, + 11, + 660, + }, + dictWord{137, 11, 74}, + dictWord{7, 0, 349}, + dictWord{5, 10, 85}, + dictWord{6, 10, 419}, + dictWord{7, 10, 305}, + dictWord{7, 10, 361}, + dictWord{7, 10, 1337}, + dictWord{8, 10, 71}, + dictWord{140, 10, 519}, + dictWord{4, 11, 139}, + dictWord{4, 11, 388}, + dictWord{140, 11, 188}, + dictWord{6, 0, 1972}, + dictWord{6, 0, 2013}, + dictWord{8, 0, 951}, + dictWord{10, 0, 947}, + dictWord{10, 0, 974}, + dictWord{10, 0, 1018}, + dictWord{142, 0, 476}, + dictWord{140, 10, 688}, + dictWord{ + 135, + 10, + 740, + }, + dictWord{5, 10, 691}, + dictWord{7, 10, 345}, + dictWord{9, 10, 94}, + dictWord{140, 10, 169}, + dictWord{9, 0, 344}, + dictWord{5, 10, 183}, + dictWord{6, 10, 582}, + dictWord{10, 10, 679}, + dictWord{140, 10, 435}, + dictWord{135, 10, 511}, + dictWord{132, 0, 850}, + dictWord{8, 11, 441}, + dictWord{10, 11, 314}, + dictWord{ + 143, + 11, + 3, + }, + dictWord{7, 10, 1993}, + dictWord{136, 10, 684}, + dictWord{4, 11, 747}, + dictWord{6, 11, 290}, + dictWord{6, 10, 583}, + dictWord{7, 11, 649}, + dictWord{ + 7, + 11, + 1479, + }, + dictWord{135, 11, 1583}, + dictWord{133, 11, 232}, + dictWord{133, 10, 704}, + dictWord{134, 0, 910}, + dictWord{4, 10, 179}, + dictWord{5, 10, 198}, + dictWord{133, 10, 697}, + dictWord{7, 10, 347}, + dictWord{7, 10, 971}, + dictWord{8, 10, 181}, + dictWord{138, 10, 711}, + dictWord{136, 11, 525}, + dictWord{ + 14, + 0, + 19, + }, + dictWord{14, 0, 28}, + dictWord{144, 0, 29}, + dictWord{7, 0, 85}, + dictWord{7, 0, 247}, + dictWord{8, 0, 585}, + dictWord{138, 0, 163}, + dictWord{4, 0, 487}, + dictWord{ + 7, + 11, + 472, + }, + dictWord{7, 11, 1801}, + dictWord{10, 11, 748}, + dictWord{141, 11, 458}, + dictWord{4, 10, 243}, + dictWord{5, 10, 203}, + dictWord{7, 10, 19}, + dictWord{ + 7, + 10, + 71, + }, + dictWord{7, 10, 113}, + dictWord{10, 10, 405}, + dictWord{11, 10, 357}, + dictWord{142, 10, 240}, + dictWord{7, 10, 1450}, + dictWord{139, 10, 99}, + dictWord{132, 11, 425}, + dictWord{138, 0, 145}, + dictWord{147, 0, 83}, + dictWord{6, 10, 492}, + dictWord{137, 11, 247}, + dictWord{4, 0, 1013}, + dictWord{ + 134, + 0, + 2033, + }, + dictWord{5, 10, 134}, + dictWord{6, 10, 408}, + dictWord{6, 10, 495}, + dictWord{135, 10, 1593}, + dictWord{135, 0, 1922}, + dictWord{134, 11, 1768}, + dictWord{4, 0, 124}, + dictWord{10, 0, 457}, + dictWord{11, 0, 121}, + dictWord{11, 0, 169}, + dictWord{11, 0, 870}, + dictWord{11, 0, 874}, + dictWord{12, 0, 214}, + dictWord{ + 14, + 0, + 187, + }, + dictWord{143, 0, 77}, + dictWord{5, 0, 557}, + dictWord{135, 0, 1457}, + dictWord{139, 0, 66}, + dictWord{5, 11, 943}, + dictWord{6, 11, 1779}, + dictWord{ + 142, + 10, + 4, + }, + dictWord{4, 10, 248}, + dictWord{4, 10, 665}, + dictWord{7, 10, 137}, + dictWord{137, 10, 349}, + dictWord{7, 0, 1193}, + dictWord{5, 11, 245}, + dictWord{ + 6, + 11, + 576, + }, + dictWord{7, 11, 582}, + dictWord{136, 11, 225}, + dictWord{144, 0, 82}, + dictWord{7, 10, 1270}, + dictWord{139, 10, 612}, + dictWord{5, 0, 454}, + dictWord{ + 10, + 0, + 352, + }, + dictWord{138, 11, 352}, + dictWord{18, 0, 57}, + dictWord{5, 10, 371}, + dictWord{135, 10, 563}, + dictWord{135, 0, 1333}, + dictWord{6, 0, 107}, + dictWord{ + 7, + 0, + 638, + }, + dictWord{7, 0, 1632}, + dictWord{9, 0, 396}, + dictWord{134, 11, 610}, + dictWord{5, 0, 370}, + dictWord{134, 0, 1756}, + dictWord{4, 10, 374}, + dictWord{ + 7, + 10, + 547, + }, + dictWord{7, 10, 1700}, + dictWord{7, 10, 1833}, + dictWord{139, 10, 858}, + dictWord{133, 0, 204}, + dictWord{6, 0, 1305}, + dictWord{9, 10, 311}, + dictWord{ + 141, + 10, + 42, + }, + dictWord{5, 0, 970}, + dictWord{134, 0, 1706}, + dictWord{6, 10, 1647}, + dictWord{7, 10, 1552}, + dictWord{7, 10, 2010}, + dictWord{9, 10, 494}, + dictWord{137, 10, 509}, + dictWord{13, 11, 455}, + dictWord{15, 11, 99}, + dictWord{15, 11, 129}, + dictWord{144, 11, 68}, + dictWord{135, 0, 3}, + dictWord{4, 0, 35}, + dictWord{ + 5, + 0, + 121, + }, + dictWord{5, 0, 483}, + dictWord{5, 0, 685}, + dictWord{6, 0, 489}, + dictWord{6, 0, 782}, + dictWord{6, 0, 1032}, + dictWord{7, 0, 1204}, + dictWord{136, 0, 394}, + dictWord{4, 0, 921}, + dictWord{133, 0, 1007}, + dictWord{8, 11, 360}, + dictWord{138, 11, 63}, + dictWord{135, 0, 1696}, + dictWord{134, 0, 1519}, + dictWord{ + 132, + 11, + 443, + }, + dictWord{135, 11, 944}, + dictWord{6, 10, 123}, + dictWord{7, 10, 214}, + dictWord{9, 10, 728}, + dictWord{10, 10, 157}, + dictWord{11, 10, 346}, + dictWord{11, 10, 662}, + dictWord{143, 10, 106}, + dictWord{137, 0, 981}, + dictWord{135, 10, 1435}, + dictWord{134, 0, 1072}, + dictWord{132, 0, 712}, + dictWord{ + 134, + 0, + 1629, + }, + dictWord{134, 0, 728}, + dictWord{4, 11, 298}, + dictWord{137, 11, 483}, + dictWord{6, 0, 1177}, + dictWord{6, 0, 1271}, + dictWord{5, 11, 164}, + dictWord{ + 7, + 11, + 121, + }, + dictWord{142, 11, 189}, + dictWord{7, 0, 1608}, + dictWord{4, 10, 707}, + dictWord{5, 10, 588}, + dictWord{6, 10, 393}, + dictWord{13, 10, 106}, + dictWord{ + 18, + 10, + 49, + }, + dictWord{147, 10, 41}, + dictWord{23, 0, 16}, + dictWord{151, 11, 16}, + dictWord{6, 10, 211}, + dictWord{7, 10, 1690}, + dictWord{11, 10, 486}, + dictWord{140, 10, 369}, + dictWord{133, 0, 485}, + dictWord{19, 11, 15}, + dictWord{149, 11, 27}, + dictWord{4, 11, 172}, + dictWord{9, 11, 611}, + dictWord{10, 11, 436}, + dictWord{12, 11, 673}, + dictWord{141, 11, 255}, + dictWord{5, 11, 844}, + dictWord{10, 11, 484}, + dictWord{11, 11, 754}, + dictWord{12, 11, 457}, + dictWord{ + 14, + 11, + 171, + }, + dictWord{14, 11, 389}, + dictWord{146, 11, 153}, + dictWord{4, 0, 285}, + dictWord{5, 0, 27}, + dictWord{5, 0, 317}, + dictWord{6, 0, 301}, + dictWord{7, 0, 7}, + dictWord{ + 8, + 0, + 153, + }, + dictWord{10, 0, 766}, + dictWord{11, 0, 468}, + dictWord{12, 0, 467}, + dictWord{141, 0, 143}, + dictWord{134, 0, 1462}, + dictWord{9, 11, 263}, + dictWord{ + 10, + 11, + 147, + }, + dictWord{138, 11, 492}, + dictWord{133, 11, 537}, + dictWord{6, 0, 1945}, + dictWord{6, 0, 1986}, + dictWord{6, 0, 1991}, + dictWord{134, 0, 2038}, + dictWord{134, 10, 219}, + dictWord{137, 11, 842}, + dictWord{14, 0, 52}, + dictWord{17, 0, 50}, + dictWord{5, 10, 582}, + dictWord{6, 10, 1646}, + dictWord{7, 10, 99}, + dictWord{7, 10, 1962}, + dictWord{7, 10, 1986}, + dictWord{8, 10, 515}, + dictWord{8, 10, 773}, + dictWord{9, 10, 23}, + dictWord{9, 10, 491}, + dictWord{12, 10, 620}, + dictWord{142, 10, 93}, + dictWord{138, 11, 97}, + dictWord{20, 0, 21}, + dictWord{20, 0, 44}, + dictWord{133, 10, 851}, + dictWord{136, 0, 819}, + dictWord{139, 0, 917}, + dictWord{5, 11, 230}, + dictWord{5, 11, 392}, + dictWord{6, 11, 420}, + dictWord{8, 10, 762}, + dictWord{8, 10, 812}, + dictWord{9, 11, 568}, + dictWord{9, 10, 910}, + dictWord{140, 11, 612}, + dictWord{135, 0, 784}, + dictWord{15, 0, 135}, + dictWord{143, 11, 135}, + dictWord{10, 0, 454}, + dictWord{140, 0, 324}, + dictWord{4, 11, 0}, + dictWord{5, 11, 41}, + dictWord{7, 11, 1459}, + dictWord{7, 11, 1469}, + dictWord{7, 11, 1618}, + dictWord{7, 11, 1859}, + dictWord{9, 11, 549}, + dictWord{139, 11, 905}, + dictWord{4, 10, 98}, + dictWord{7, 10, 1365}, + dictWord{9, 10, 422}, + dictWord{9, 10, 670}, + dictWord{10, 10, 775}, + dictWord{11, 10, 210}, + dictWord{13, 10, 26}, + dictWord{13, 10, 457}, + dictWord{141, 10, 476}, + dictWord{6, 0, 1719}, + dictWord{6, 0, 1735}, + dictWord{7, 0, 2016}, + dictWord{7, 0, 2020}, + dictWord{8, 0, 837}, + dictWord{137, 0, 852}, + dictWord{133, 11, 696}, + dictWord{135, 0, 852}, + dictWord{132, 0, 952}, + dictWord{134, 10, 1730}, + dictWord{132, 11, 771}, + dictWord{ + 138, + 0, + 568, + }, + dictWord{137, 0, 448}, + dictWord{139, 0, 146}, + dictWord{8, 0, 67}, + dictWord{138, 0, 419}, + dictWord{133, 11, 921}, + dictWord{137, 10, 147}, + dictWord{134, 0, 1826}, + dictWord{10, 0, 657}, + dictWord{14, 0, 297}, + dictWord{142, 0, 361}, + dictWord{6, 0, 666}, + dictWord{6, 0, 767}, + dictWord{134, 0, 1542}, + dictWord{139, 0, 729}, + dictWord{6, 11, 180}, + dictWord{7, 11, 1137}, + dictWord{8, 11, 751}, + dictWord{139, 11, 805}, + dictWord{4, 11, 183}, + dictWord{7, 11, 271}, + dictWord{11, 11, 824}, + dictWord{11, 11, 952}, + dictWord{13, 11, 278}, + dictWord{13, 11, 339}, + dictWord{13, 11, 482}, + dictWord{14, 11, 424}, + dictWord{ + 148, + 11, + 99, + }, + dictWord{4, 0, 669}, + dictWord{5, 11, 477}, + dictWord{5, 11, 596}, + dictWord{6, 11, 505}, + dictWord{7, 11, 1221}, + dictWord{11, 11, 907}, + dictWord{ + 12, + 11, + 209, + }, + dictWord{141, 11, 214}, + dictWord{135, 11, 1215}, + dictWord{5, 0, 402}, + dictWord{6, 10, 30}, + dictWord{11, 10, 56}, + dictWord{139, 10, 305}, + dictWord{ + 7, + 11, + 564, + }, + dictWord{142, 11, 168}, + dictWord{139, 0, 152}, + dictWord{7, 0, 912}, + dictWord{135, 10, 1614}, + dictWord{4, 10, 150}, + dictWord{5, 10, 303}, + dictWord{134, 10, 327}, + dictWord{7, 0, 320}, + dictWord{8, 0, 51}, + dictWord{9, 0, 868}, + dictWord{10, 0, 833}, + dictWord{12, 0, 481}, + dictWord{12, 0, 570}, + dictWord{ + 148, + 0, + 106, + }, + dictWord{132, 0, 445}, + dictWord{7, 11, 274}, + dictWord{11, 11, 263}, + dictWord{11, 11, 479}, + dictWord{11, 11, 507}, + dictWord{140, 11, 277}, + dictWord{10, 0, 555}, + dictWord{11, 0, 308}, + dictWord{19, 0, 95}, + dictWord{6, 11, 1645}, + dictWord{8, 10, 192}, + dictWord{10, 10, 78}, + dictWord{141, 10, 359}, + dictWord{135, 10, 786}, + dictWord{6, 11, 92}, + dictWord{6, 11, 188}, + dictWord{7, 11, 1269}, + dictWord{7, 11, 1524}, + dictWord{7, 11, 1876}, + dictWord{10, 11, 228}, + dictWord{139, 11, 1020}, + dictWord{4, 11, 459}, + dictWord{133, 11, 966}, + dictWord{11, 0, 386}, + dictWord{6, 10, 1638}, + dictWord{7, 10, 79}, + dictWord{ + 7, + 10, + 496, + }, + dictWord{9, 10, 138}, + dictWord{10, 10, 336}, + dictWord{12, 10, 412}, + dictWord{12, 10, 440}, + dictWord{142, 10, 305}, + dictWord{133, 0, 239}, + dictWord{ + 7, + 0, + 83, + }, + dictWord{7, 0, 1990}, + dictWord{8, 0, 130}, + dictWord{139, 0, 720}, + dictWord{138, 11, 709}, + dictWord{4, 0, 143}, + dictWord{5, 0, 550}, + dictWord{ + 133, + 0, + 752, + }, + dictWord{5, 0, 123}, + dictWord{6, 0, 530}, + dictWord{7, 0, 348}, + dictWord{135, 0, 1419}, + dictWord{135, 0, 2024}, + dictWord{6, 11, 18}, + dictWord{7, 11, 179}, + dictWord{7, 11, 721}, + dictWord{7, 11, 932}, + dictWord{8, 11, 548}, + dictWord{8, 11, 757}, + dictWord{9, 11, 54}, + dictWord{9, 11, 65}, + dictWord{9, 11, 532}, + dictWord{ + 9, + 11, + 844, + }, + dictWord{10, 11, 113}, + dictWord{10, 11, 117}, + dictWord{10, 11, 236}, + dictWord{10, 11, 315}, + dictWord{10, 11, 430}, + dictWord{10, 11, 798}, + dictWord{11, 11, 153}, + dictWord{11, 11, 351}, + dictWord{11, 11, 375}, + dictWord{12, 11, 78}, + dictWord{12, 11, 151}, + dictWord{12, 11, 392}, + dictWord{ + 14, + 11, + 248, + }, + dictWord{143, 11, 23}, + dictWord{7, 10, 204}, + dictWord{7, 10, 415}, + dictWord{8, 10, 42}, + dictWord{10, 10, 85}, + dictWord{139, 10, 564}, + dictWord{ + 134, + 0, + 958, + }, + dictWord{133, 11, 965}, + dictWord{132, 0, 210}, + dictWord{135, 11, 1429}, + dictWord{138, 11, 480}, + dictWord{134, 11, 182}, + dictWord{ + 139, + 11, + 345, + }, + dictWord{10, 11, 65}, + dictWord{10, 11, 488}, + dictWord{138, 11, 497}, + dictWord{4, 10, 3}, + dictWord{5, 10, 247}, + dictWord{5, 10, 644}, + dictWord{ + 7, + 10, + 744, + }, + dictWord{7, 10, 1207}, + dictWord{7, 10, 1225}, + dictWord{7, 10, 1909}, + dictWord{146, 10, 147}, + dictWord{132, 0, 430}, + dictWord{5, 10, 285}, + dictWord{ + 9, + 10, + 67, + }, + dictWord{13, 10, 473}, + dictWord{143, 10, 82}, + dictWord{144, 11, 16}, + dictWord{7, 11, 1162}, + dictWord{9, 11, 588}, + dictWord{10, 11, 260}, + dictWord{151, 10, 8}, + dictWord{133, 0, 213}, + dictWord{138, 0, 7}, + dictWord{135, 0, 801}, + dictWord{134, 11, 1786}, + dictWord{135, 11, 308}, + dictWord{6, 0, 936}, + dictWord{134, 0, 1289}, + dictWord{133, 0, 108}, + dictWord{132, 0, 885}, + dictWord{133, 0, 219}, + dictWord{139, 0, 587}, + dictWord{4, 0, 193}, + dictWord{5, 0, 916}, + dictWord{6, 0, 1041}, + dictWord{7, 0, 364}, + dictWord{10, 0, 398}, + dictWord{10, 0, 726}, + dictWord{11, 0, 317}, + dictWord{11, 0, 626}, + dictWord{12, 0, 142}, + dictWord{12, 0, 288}, + dictWord{12, 0, 678}, + dictWord{13, 0, 313}, + dictWord{15, 0, 113}, + dictWord{146, 0, 114}, + dictWord{135, 0, 1165}, + dictWord{6, 0, 241}, + dictWord{ + 9, + 0, + 342, + }, + dictWord{10, 0, 729}, + dictWord{11, 0, 284}, + dictWord{11, 0, 445}, + dictWord{11, 0, 651}, + dictWord{11, 0, 863}, + dictWord{13, 0, 398}, + dictWord{ + 146, + 0, + 99, + }, + dictWord{7, 0, 907}, + dictWord{136, 0, 832}, + dictWord{9, 0, 303}, + dictWord{4, 10, 29}, + dictWord{6, 10, 532}, + dictWord{7, 10, 1628}, + dictWord{7, 10, 1648}, + dictWord{9, 10, 350}, + dictWord{10, 10, 433}, + dictWord{11, 10, 97}, + dictWord{11, 10, 557}, + dictWord{11, 10, 745}, + dictWord{12, 10, 289}, + dictWord{ + 12, + 10, + 335, + }, + dictWord{12, 10, 348}, + dictWord{12, 10, 606}, + dictWord{13, 10, 116}, + dictWord{13, 10, 233}, + dictWord{13, 10, 466}, + dictWord{14, 10, 181}, + dictWord{ + 14, + 10, + 209, + }, + dictWord{14, 10, 232}, + dictWord{14, 10, 236}, + dictWord{14, 10, 300}, + dictWord{16, 10, 41}, + dictWord{148, 10, 97}, + dictWord{7, 11, 423}, + dictWord{7, 10, 1692}, + dictWord{136, 11, 588}, + dictWord{6, 0, 931}, + dictWord{134, 0, 1454}, + dictWord{5, 10, 501}, + dictWord{7, 10, 1704}, + dictWord{9, 10, 553}, + dictWord{11, 10, 520}, + dictWord{12, 10, 557}, + dictWord{141, 10, 249}, + dictWord{136, 11, 287}, + dictWord{4, 0, 562}, + dictWord{9, 0, 254}, + dictWord{ + 139, + 0, + 879, + }, + dictWord{132, 0, 786}, + dictWord{14, 11, 32}, + dictWord{18, 11, 85}, + dictWord{20, 11, 2}, + dictWord{152, 11, 16}, + dictWord{135, 0, 1294}, + dictWord{ + 7, + 11, + 723, + }, + dictWord{135, 11, 1135}, + dictWord{6, 0, 216}, + dictWord{7, 0, 901}, + dictWord{7, 0, 1343}, + dictWord{8, 0, 493}, + dictWord{134, 11, 403}, + dictWord{ + 7, + 11, + 719, + }, + dictWord{8, 11, 809}, + dictWord{136, 11, 834}, + dictWord{5, 11, 210}, + dictWord{6, 11, 213}, + dictWord{7, 11, 60}, + dictWord{10, 11, 364}, + dictWord{ + 139, + 11, + 135, + }, + dictWord{7, 0, 341}, + dictWord{11, 0, 219}, + dictWord{5, 11, 607}, + dictWord{8, 11, 326}, + dictWord{136, 11, 490}, + dictWord{4, 11, 701}, + dictWord{ + 5, + 11, + 472, + }, + dictWord{5, 11, 639}, + dictWord{7, 11, 1249}, + dictWord{9, 11, 758}, + dictWord{139, 11, 896}, + dictWord{135, 11, 380}, + dictWord{135, 11, 1947}, + dictWord{139, 0, 130}, + dictWord{135, 0, 1734}, + dictWord{10, 0, 115}, + dictWord{11, 0, 420}, + dictWord{12, 0, 154}, + dictWord{13, 0, 404}, + dictWord{14, 0, 346}, + dictWord{143, 0, 54}, + dictWord{134, 10, 129}, + dictWord{4, 11, 386}, + dictWord{7, 11, 41}, + dictWord{8, 11, 405}, + dictWord{9, 11, 497}, + dictWord{11, 11, 110}, + dictWord{11, 11, 360}, + dictWord{15, 11, 37}, + dictWord{144, 11, 84}, + dictWord{141, 11, 282}, + dictWord{5, 11, 46}, + dictWord{7, 11, 1452}, + dictWord{7, 11, 1480}, + dictWord{8, 11, 634}, + dictWord{140, 11, 472}, + dictWord{4, 11, 524}, + dictWord{136, 11, 810}, + dictWord{10, 11, 238}, + dictWord{141, 11, 33}, + dictWord{ + 133, + 0, + 604, + }, + dictWord{5, 0, 1011}, + dictWord{136, 0, 701}, + dictWord{8, 0, 856}, + dictWord{8, 0, 858}, + dictWord{8, 0, 879}, + dictWord{12, 0, 702}, + dictWord{142, 0, 447}, + dictWord{4, 0, 54}, + dictWord{5, 0, 666}, + dictWord{7, 0, 1039}, + dictWord{7, 0, 1130}, + dictWord{9, 0, 195}, + dictWord{138, 0, 302}, + dictWord{4, 10, 25}, + dictWord{ + 5, + 10, + 60, + }, + dictWord{6, 10, 504}, + dictWord{7, 10, 614}, + dictWord{7, 10, 1155}, + dictWord{140, 10, 0}, + dictWord{7, 10, 1248}, + dictWord{11, 10, 621}, + dictWord{ + 139, + 10, + 702, + }, + dictWord{133, 11, 997}, + dictWord{137, 10, 321}, + dictWord{134, 0, 1669}, + dictWord{134, 0, 1791}, + dictWord{4, 10, 379}, + dictWord{ + 135, + 10, + 1397, + }, + dictWord{138, 11, 372}, + dictWord{5, 11, 782}, + dictWord{5, 11, 829}, + dictWord{134, 11, 1738}, + dictWord{135, 0, 1228}, + dictWord{4, 10, 118}, + dictWord{6, 10, 274}, + dictWord{6, 10, 361}, + dictWord{7, 10, 75}, + dictWord{141, 10, 441}, + dictWord{132, 0, 623}, + dictWord{9, 11, 279}, + dictWord{10, 11, 407}, + dictWord{14, 11, 84}, + dictWord{150, 11, 18}, + dictWord{137, 10, 841}, + dictWord{135, 0, 798}, + dictWord{140, 10, 693}, + dictWord{5, 10, 314}, + dictWord{6, 10, 221}, + dictWord{7, 10, 419}, + dictWord{10, 10, 650}, + dictWord{11, 10, 396}, + dictWord{12, 10, 156}, + dictWord{13, 10, 369}, + dictWord{14, 10, 333}, + dictWord{ + 145, + 10, + 47, + }, + dictWord{135, 11, 1372}, + dictWord{7, 0, 122}, + dictWord{9, 0, 259}, + dictWord{10, 0, 84}, + dictWord{11, 0, 470}, + dictWord{12, 0, 541}, + dictWord{ + 141, + 0, + 379, + }, + dictWord{134, 0, 837}, + dictWord{8, 0, 1013}, + dictWord{4, 11, 78}, + dictWord{5, 11, 96}, + dictWord{5, 11, 182}, + dictWord{7, 11, 1724}, + dictWord{ + 7, + 11, + 1825, + }, + dictWord{10, 11, 394}, + dictWord{10, 11, 471}, + dictWord{11, 11, 532}, + dictWord{14, 11, 340}, + dictWord{145, 11, 88}, + dictWord{134, 0, 577}, + dictWord{135, 11, 1964}, + dictWord{132, 10, 913}, + dictWord{134, 0, 460}, + dictWord{8, 0, 891}, + dictWord{10, 0, 901}, + dictWord{10, 0, 919}, + dictWord{10, 0, 932}, + dictWord{12, 0, 715}, + dictWord{12, 0, 728}, + dictWord{12, 0, 777}, + dictWord{14, 0, 457}, + dictWord{144, 0, 103}, + dictWord{5, 0, 82}, + dictWord{5, 0, 131}, + dictWord{ + 7, + 0, + 1755, + }, + dictWord{8, 0, 31}, + dictWord{9, 0, 168}, + dictWord{9, 0, 764}, + dictWord{139, 0, 869}, + dictWord{136, 10, 475}, + dictWord{6, 0, 605}, + dictWord{ + 5, + 10, + 1016, + }, + dictWord{9, 11, 601}, + dictWord{9, 11, 619}, + dictWord{10, 11, 505}, + dictWord{10, 11, 732}, + dictWord{11, 11, 355}, + dictWord{140, 11, 139}, + dictWord{ + 7, + 10, + 602, + }, + dictWord{8, 10, 179}, + dictWord{10, 10, 781}, + dictWord{140, 10, 126}, + dictWord{134, 0, 1246}, + dictWord{6, 10, 329}, + dictWord{138, 10, 111}, + dictWord{6, 11, 215}, + dictWord{7, 11, 1028}, + dictWord{7, 11, 1473}, + dictWord{7, 11, 1721}, + dictWord{9, 11, 424}, + dictWord{138, 11, 779}, + dictWord{5, 0, 278}, + dictWord{137, 0, 68}, + dictWord{6, 0, 932}, + dictWord{6, 0, 1084}, + dictWord{144, 0, 86}, + dictWord{4, 0, 163}, + dictWord{5, 0, 201}, + dictWord{5, 0, 307}, + dictWord{ + 5, + 0, + 310, + }, + dictWord{6, 0, 335}, + dictWord{7, 0, 284}, + dictWord{7, 0, 1660}, + dictWord{136, 0, 165}, + dictWord{136, 0, 781}, + dictWord{134, 0, 707}, + dictWord{6, 0, 33}, + dictWord{135, 0, 1244}, + dictWord{5, 10, 821}, + dictWord{6, 11, 67}, + dictWord{6, 10, 1687}, + dictWord{7, 11, 258}, + dictWord{7, 11, 1630}, + dictWord{9, 11, 354}, + dictWord{9, 11, 675}, + dictWord{10, 11, 830}, + dictWord{14, 11, 80}, + dictWord{145, 11, 80}, + dictWord{6, 11, 141}, + dictWord{7, 11, 225}, + dictWord{9, 11, 59}, + dictWord{9, 11, 607}, + dictWord{10, 11, 312}, + dictWord{11, 11, 687}, + dictWord{12, 11, 555}, + dictWord{13, 11, 373}, + dictWord{13, 11, 494}, + dictWord{148, 11, 58}, + dictWord{134, 0, 1113}, + dictWord{9, 0, 388}, + dictWord{5, 10, 71}, + dictWord{7, 10, 1407}, + dictWord{9, 10, 704}, + dictWord{10, 10, 261}, + dictWord{10, 10, 619}, + dictWord{11, 10, 547}, + dictWord{11, 10, 619}, + dictWord{143, 10, 157}, + dictWord{7, 0, 1953}, + dictWord{136, 0, 720}, + dictWord{138, 0, 203}, + dictWord{ + 7, + 10, + 2008, + }, + dictWord{9, 10, 337}, + dictWord{138, 10, 517}, + dictWord{6, 0, 326}, + dictWord{7, 0, 677}, + dictWord{137, 0, 425}, + dictWord{139, 11, 81}, + dictWord{ + 7, + 0, + 1316, + }, + dictWord{7, 0, 1412}, + dictWord{7, 0, 1839}, + dictWord{9, 0, 589}, + dictWord{11, 0, 241}, + dictWord{11, 0, 676}, + dictWord{11, 0, 811}, + dictWord{11, 0, 891}, + dictWord{12, 0, 140}, + dictWord{12, 0, 346}, + dictWord{12, 0, 479}, + dictWord{13, 0, 140}, + dictWord{13, 0, 381}, + dictWord{14, 0, 188}, + dictWord{18, 0, 30}, + dictWord{148, 0, 108}, + dictWord{5, 0, 416}, + dictWord{6, 10, 86}, + dictWord{6, 10, 603}, + dictWord{7, 10, 292}, + dictWord{7, 10, 561}, + dictWord{8, 10, 257}, + dictWord{ + 8, + 10, + 382, + }, + dictWord{9, 10, 721}, + dictWord{9, 10, 778}, + dictWord{11, 10, 581}, + dictWord{140, 10, 466}, + dictWord{4, 10, 486}, + dictWord{133, 10, 491}, + dictWord{134, 0, 1300}, + dictWord{132, 10, 72}, + dictWord{7, 0, 847}, + dictWord{6, 10, 265}, + dictWord{7, 11, 430}, + dictWord{139, 11, 46}, + dictWord{5, 11, 602}, + dictWord{6, 11, 106}, + dictWord{7, 11, 1786}, + dictWord{7, 11, 1821}, + dictWord{7, 11, 2018}, + dictWord{9, 11, 418}, + dictWord{137, 11, 763}, + dictWord{5, 0, 358}, + dictWord{7, 0, 535}, + dictWord{7, 0, 1184}, + dictWord{10, 0, 662}, + dictWord{13, 0, 212}, + dictWord{13, 0, 304}, + dictWord{13, 0, 333}, + dictWord{145, 0, 98}, + dictWord{ + 5, + 11, + 65, + }, + dictWord{6, 11, 416}, + dictWord{7, 11, 1720}, + dictWord{7, 11, 1924}, + dictWord{8, 11, 677}, + dictWord{10, 11, 109}, + dictWord{11, 11, 14}, + dictWord{ + 11, + 11, + 70, + }, + dictWord{11, 11, 569}, + dictWord{11, 11, 735}, + dictWord{15, 11, 153}, + dictWord{148, 11, 80}, + dictWord{6, 0, 1823}, + dictWord{8, 0, 839}, + dictWord{ + 8, + 0, + 852, + }, + dictWord{8, 0, 903}, + dictWord{10, 0, 940}, + dictWord{12, 0, 707}, + dictWord{140, 0, 775}, + dictWord{135, 11, 1229}, + dictWord{6, 0, 1522}, + dictWord{ + 140, + 0, + 654, + }, + dictWord{136, 11, 595}, + dictWord{139, 0, 163}, + dictWord{141, 0, 314}, + dictWord{132, 0, 978}, + dictWord{4, 0, 601}, + dictWord{6, 0, 2035}, + dictWord{137, 10, 234}, + dictWord{5, 10, 815}, + dictWord{6, 10, 1688}, + dictWord{134, 10, 1755}, + dictWord{133, 0, 946}, + dictWord{136, 0, 434}, + dictWord{ + 6, + 10, + 197, + }, + dictWord{136, 10, 205}, + dictWord{7, 0, 411}, + dictWord{7, 0, 590}, + dictWord{8, 0, 631}, + dictWord{9, 0, 323}, + dictWord{10, 0, 355}, + dictWord{11, 0, 491}, + dictWord{12, 0, 143}, + dictWord{12, 0, 402}, + dictWord{13, 0, 73}, + dictWord{14, 0, 408}, + dictWord{15, 0, 107}, + dictWord{146, 0, 71}, + dictWord{7, 0, 1467}, + dictWord{ + 8, + 0, + 328, + }, + dictWord{10, 0, 544}, + dictWord{11, 0, 955}, + dictWord{12, 0, 13}, + dictWord{13, 0, 320}, + dictWord{145, 0, 83}, + dictWord{142, 0, 410}, + dictWord{ + 11, + 0, + 511, + }, + dictWord{13, 0, 394}, + dictWord{14, 0, 298}, + dictWord{14, 0, 318}, + dictWord{146, 0, 103}, + dictWord{6, 10, 452}, + dictWord{7, 10, 312}, + dictWord{ + 138, + 10, + 219, + }, + dictWord{138, 10, 589}, + dictWord{4, 10, 333}, + dictWord{9, 10, 176}, + dictWord{12, 10, 353}, + dictWord{141, 10, 187}, + dictWord{135, 11, 329}, + dictWord{132, 11, 469}, + dictWord{5, 0, 835}, + dictWord{134, 0, 483}, + dictWord{134, 11, 1743}, + dictWord{5, 11, 929}, + dictWord{6, 11, 340}, + dictWord{8, 11, 376}, + dictWord{136, 11, 807}, + dictWord{134, 10, 1685}, + dictWord{132, 0, 677}, + dictWord{5, 11, 218}, + dictWord{7, 11, 1610}, + dictWord{138, 11, 83}, + dictWord{ + 5, + 11, + 571, + }, + dictWord{135, 11, 1842}, + dictWord{132, 11, 455}, + dictWord{137, 0, 70}, + dictWord{135, 0, 1405}, + dictWord{7, 10, 135}, + dictWord{8, 10, 7}, + dictWord{ + 8, + 10, + 62, + }, + dictWord{9, 10, 243}, + dictWord{10, 10, 658}, + dictWord{10, 10, 697}, + dictWord{11, 10, 456}, + dictWord{139, 10, 756}, + dictWord{9, 10, 395}, + dictWord{138, 10, 79}, + dictWord{137, 0, 108}, + dictWord{6, 11, 161}, + dictWord{7, 11, 372}, + dictWord{137, 11, 597}, + dictWord{132, 11, 349}, + dictWord{ + 132, + 0, + 777, + }, + dictWord{132, 0, 331}, + dictWord{135, 10, 631}, + dictWord{133, 0, 747}, + dictWord{6, 11, 432}, + dictWord{6, 11, 608}, + dictWord{139, 11, 322}, + dictWord{138, 10, 835}, + dictWord{5, 11, 468}, + dictWord{7, 11, 1809}, + dictWord{10, 11, 325}, + dictWord{11, 11, 856}, + dictWord{12, 11, 345}, + dictWord{ + 143, + 11, + 104, + }, + dictWord{133, 11, 223}, + dictWord{7, 10, 406}, + dictWord{7, 10, 459}, + dictWord{8, 10, 606}, + dictWord{139, 10, 726}, + dictWord{132, 11, 566}, + dictWord{142, 0, 68}, + dictWord{4, 11, 59}, + dictWord{135, 11, 1394}, + dictWord{6, 11, 436}, + dictWord{139, 11, 481}, + dictWord{4, 11, 48}, + dictWord{5, 11, 271}, + dictWord{135, 11, 953}, + dictWord{139, 11, 170}, + dictWord{5, 11, 610}, + dictWord{136, 11, 457}, + dictWord{133, 11, 755}, + dictWord{135, 11, 1217}, + dictWord{ + 133, + 10, + 612, + }, + dictWord{132, 11, 197}, + dictWord{132, 0, 505}, + dictWord{4, 10, 372}, + dictWord{7, 10, 482}, + dictWord{8, 10, 158}, + dictWord{9, 10, 602}, + dictWord{ + 9, + 10, + 615, + }, + dictWord{10, 10, 245}, + dictWord{10, 10, 678}, + dictWord{10, 10, 744}, + dictWord{11, 10, 248}, + dictWord{139, 10, 806}, + dictWord{133, 0, 326}, + dictWord{5, 10, 854}, + dictWord{135, 10, 1991}, + dictWord{4, 0, 691}, + dictWord{146, 0, 16}, + dictWord{6, 0, 628}, + dictWord{9, 0, 35}, + dictWord{10, 0, 680}, + dictWord{10, 0, 793}, + dictWord{11, 0, 364}, + dictWord{13, 0, 357}, + dictWord{143, 0, 164}, + dictWord{138, 0, 654}, + dictWord{6, 0, 32}, + dictWord{7, 0, 385}, + dictWord{ + 7, + 0, + 757, + }, + dictWord{7, 0, 1916}, + dictWord{8, 0, 37}, + dictWord{8, 0, 94}, + dictWord{8, 0, 711}, + dictWord{9, 0, 541}, + dictWord{10, 0, 162}, + dictWord{10, 0, 795}, + dictWord{ + 11, + 0, + 989, + }, + dictWord{11, 0, 1010}, + dictWord{12, 0, 14}, + dictWord{142, 0, 308}, + dictWord{133, 11, 217}, + dictWord{6, 0, 152}, + dictWord{6, 0, 349}, + dictWord{ + 6, + 0, + 1682, + }, + dictWord{7, 0, 1252}, + dictWord{8, 0, 112}, + dictWord{9, 0, 435}, + dictWord{9, 0, 668}, + dictWord{10, 0, 290}, + dictWord{10, 0, 319}, + dictWord{10, 0, 815}, + dictWord{11, 0, 180}, + dictWord{11, 0, 837}, + dictWord{12, 0, 240}, + dictWord{13, 0, 152}, + dictWord{13, 0, 219}, + dictWord{142, 0, 158}, + dictWord{4, 0, 581}, + dictWord{134, 0, 726}, + dictWord{5, 10, 195}, + dictWord{135, 10, 1685}, + dictWord{6, 0, 126}, + dictWord{7, 0, 573}, + dictWord{8, 0, 397}, + dictWord{142, 0, 44}, + dictWord{138, 0, 89}, + dictWord{7, 10, 1997}, + dictWord{8, 10, 730}, + dictWord{139, 10, 1006}, + dictWord{134, 0, 1531}, + dictWord{134, 0, 1167}, + dictWord{ + 5, + 0, + 926, + }, + dictWord{12, 0, 203}, + dictWord{133, 10, 751}, + dictWord{4, 11, 165}, + dictWord{7, 11, 1398}, + dictWord{135, 11, 1829}, + dictWord{7, 0, 1232}, + dictWord{137, 0, 531}, + dictWord{135, 10, 821}, + dictWord{134, 0, 943}, + dictWord{133, 0, 670}, + dictWord{4, 0, 880}, + dictWord{139, 0, 231}, + dictWord{ + 134, + 0, + 1617, + }, + dictWord{135, 0, 1957}, + dictWord{5, 11, 9}, + dictWord{7, 11, 297}, + dictWord{7, 11, 966}, + dictWord{140, 11, 306}, + dictWord{6, 0, 975}, + dictWord{ + 134, + 0, + 985, + }, + dictWord{5, 10, 950}, + dictWord{5, 10, 994}, + dictWord{134, 10, 351}, + dictWord{12, 11, 21}, + dictWord{151, 11, 7}, + dictWord{5, 11, 146}, + dictWord{ + 6, + 11, + 411, + }, + dictWord{138, 11, 721}, + dictWord{7, 0, 242}, + dictWord{135, 0, 1942}, + dictWord{6, 11, 177}, + dictWord{135, 11, 467}, + dictWord{5, 0, 421}, + dictWord{ + 7, + 10, + 47, + }, + dictWord{137, 10, 684}, + dictWord{5, 0, 834}, + dictWord{7, 0, 1202}, + dictWord{8, 0, 14}, + dictWord{9, 0, 481}, + dictWord{137, 0, 880}, + dictWord{138, 0, 465}, + dictWord{6, 0, 688}, + dictWord{9, 0, 834}, + dictWord{132, 10, 350}, + dictWord{132, 0, 855}, + dictWord{4, 0, 357}, + dictWord{6, 0, 172}, + dictWord{7, 0, 143}, + dictWord{137, 0, 413}, + dictWord{133, 11, 200}, + dictWord{132, 0, 590}, + dictWord{7, 10, 1812}, + dictWord{13, 10, 259}, + dictWord{13, 10, 356}, + dictWord{ + 14, + 10, + 242, + }, + dictWord{147, 10, 114}, + dictWord{133, 10, 967}, + dictWord{11, 0, 114}, + dictWord{4, 10, 473}, + dictWord{7, 10, 623}, + dictWord{8, 10, 808}, + dictWord{ + 9, + 10, + 871, + }, + dictWord{9, 10, 893}, + dictWord{11, 10, 431}, + dictWord{12, 10, 112}, + dictWord{12, 10, 217}, + dictWord{12, 10, 243}, + dictWord{12, 10, 562}, + dictWord{ + 12, + 10, + 663, + }, + dictWord{12, 10, 683}, + dictWord{13, 10, 141}, + dictWord{13, 10, 197}, + dictWord{13, 10, 227}, + dictWord{13, 10, 406}, + dictWord{13, 10, 487}, + dictWord{14, 10, 156}, + dictWord{14, 10, 203}, + dictWord{14, 10, 224}, + dictWord{14, 10, 256}, + dictWord{18, 10, 58}, + dictWord{150, 10, 0}, + dictWord{ + 138, + 10, + 286, + }, + dictWord{4, 10, 222}, + dictWord{7, 10, 286}, + dictWord{136, 10, 629}, + dictWord{5, 0, 169}, + dictWord{7, 0, 333}, + dictWord{136, 0, 45}, + dictWord{ + 134, + 11, + 481, + }, + dictWord{132, 0, 198}, + dictWord{4, 0, 24}, + dictWord{5, 0, 140}, + dictWord{5, 0, 185}, + dictWord{7, 0, 1500}, + dictWord{11, 0, 565}, + dictWord{11, 0, 838}, + dictWord{4, 11, 84}, + dictWord{7, 11, 1482}, + dictWord{10, 11, 76}, + dictWord{138, 11, 142}, + dictWord{133, 0, 585}, + dictWord{141, 10, 306}, + dictWord{ + 133, + 11, + 1015, + }, + dictWord{4, 11, 315}, + dictWord{5, 11, 507}, + dictWord{135, 11, 1370}, + dictWord{136, 10, 146}, + dictWord{6, 0, 691}, + dictWord{134, 0, 1503}, + dictWord{ + 4, + 0, + 334, + }, + dictWord{133, 0, 593}, + dictWord{4, 10, 465}, + dictWord{135, 10, 1663}, + dictWord{142, 11, 173}, + dictWord{135, 0, 913}, + dictWord{12, 0, 116}, + dictWord{134, 11, 1722}, + dictWord{134, 0, 1360}, + dictWord{132, 0, 802}, + dictWord{8, 11, 222}, + dictWord{8, 11, 476}, + dictWord{9, 11, 238}, + dictWord{ + 11, + 11, + 516, + }, + dictWord{11, 11, 575}, + dictWord{15, 11, 109}, + dictWord{146, 11, 100}, + dictWord{6, 0, 308}, + dictWord{9, 0, 673}, + dictWord{7, 10, 138}, + dictWord{ + 7, + 10, + 517, + }, + dictWord{139, 10, 238}, + dictWord{132, 0, 709}, + dictWord{6, 0, 1876}, + dictWord{6, 0, 1895}, + dictWord{9, 0, 994}, + dictWord{9, 0, 1006}, + dictWord{ + 12, + 0, + 829, + }, + dictWord{12, 0, 888}, + dictWord{12, 0, 891}, + dictWord{146, 0, 185}, + dictWord{148, 10, 94}, + dictWord{4, 0, 228}, + dictWord{133, 0, 897}, + dictWord{ + 7, + 0, + 1840, + }, + dictWord{5, 10, 495}, + dictWord{7, 10, 834}, + dictWord{9, 10, 733}, + dictWord{139, 10, 378}, + dictWord{133, 10, 559}, + dictWord{6, 10, 21}, + dictWord{ + 6, + 10, + 1737, + }, + dictWord{7, 10, 1444}, + dictWord{136, 10, 224}, + dictWord{4, 0, 608}, + dictWord{133, 0, 497}, + dictWord{6, 11, 40}, + dictWord{135, 11, 1781}, + dictWord{134, 0, 1573}, + dictWord{135, 0, 2039}, + dictWord{6, 0, 540}, + dictWord{136, 0, 136}, + dictWord{4, 0, 897}, + dictWord{5, 0, 786}, + dictWord{133, 10, 519}, + dictWord{6, 0, 1878}, + dictWord{6, 0, 1884}, + dictWord{9, 0, 938}, + dictWord{9, 0, 948}, + dictWord{9, 0, 955}, + dictWord{9, 0, 973}, + dictWord{9, 0, 1012}, + dictWord{ + 12, + 0, + 895, + }, + dictWord{12, 0, 927}, + dictWord{143, 0, 254}, + dictWord{134, 0, 1469}, + dictWord{133, 0, 999}, + dictWord{4, 0, 299}, + dictWord{135, 0, 1004}, + dictWord{ + 4, + 0, + 745, + }, + dictWord{133, 0, 578}, + dictWord{136, 11, 574}, + dictWord{133, 0, 456}, + dictWord{134, 0, 1457}, + dictWord{7, 0, 1679}, + dictWord{132, 10, 402}, + dictWord{7, 0, 693}, + dictWord{8, 0, 180}, + dictWord{12, 0, 163}, + dictWord{8, 10, 323}, + dictWord{136, 10, 479}, + dictWord{11, 10, 580}, + dictWord{142, 10, 201}, + dictWord{5, 10, 59}, + dictWord{135, 10, 672}, + dictWord{132, 11, 354}, + dictWord{146, 10, 34}, + dictWord{4, 0, 755}, + dictWord{135, 11, 1558}, + dictWord{ + 7, + 0, + 1740, + }, + dictWord{146, 0, 48}, + dictWord{4, 10, 85}, + dictWord{135, 10, 549}, + dictWord{139, 0, 338}, + dictWord{133, 10, 94}, + dictWord{134, 0, 1091}, + dictWord{135, 11, 469}, + dictWord{12, 0, 695}, + dictWord{12, 0, 704}, + dictWord{20, 0, 113}, + dictWord{5, 11, 830}, + dictWord{14, 11, 338}, + dictWord{148, 11, 81}, + dictWord{135, 0, 1464}, + dictWord{6, 10, 11}, + dictWord{135, 10, 187}, + dictWord{135, 0, 975}, + dictWord{13, 0, 335}, + dictWord{132, 10, 522}, + dictWord{ + 134, + 0, + 1979, + }, + dictWord{5, 11, 496}, + dictWord{135, 11, 203}, + dictWord{4, 10, 52}, + dictWord{135, 10, 661}, + dictWord{7, 0, 1566}, + dictWord{8, 0, 269}, + dictWord{ + 9, + 0, + 212, + }, + dictWord{9, 0, 718}, + dictWord{14, 0, 15}, + dictWord{14, 0, 132}, + dictWord{142, 0, 227}, + dictWord{4, 0, 890}, + dictWord{5, 0, 805}, + dictWord{5, 0, 819}, + dictWord{ + 5, + 0, + 961, + }, + dictWord{6, 0, 396}, + dictWord{6, 0, 1631}, + dictWord{6, 0, 1678}, + dictWord{7, 0, 1967}, + dictWord{7, 0, 2041}, + dictWord{9, 0, 630}, + dictWord{11, 0, 8}, + dictWord{11, 0, 1019}, + dictWord{12, 0, 176}, + dictWord{13, 0, 225}, + dictWord{14, 0, 292}, + dictWord{21, 0, 24}, + dictWord{4, 10, 383}, + dictWord{133, 10, 520}, + dictWord{134, 11, 547}, + dictWord{135, 11, 1748}, + dictWord{5, 11, 88}, + dictWord{137, 11, 239}, + dictWord{146, 11, 128}, + dictWord{7, 11, 650}, + dictWord{ + 135, + 11, + 1310, + }, + dictWord{4, 10, 281}, + dictWord{5, 10, 38}, + dictWord{7, 10, 194}, + dictWord{7, 10, 668}, + dictWord{7, 10, 1893}, + dictWord{137, 10, 397}, + dictWord{135, 0, 1815}, + dictWord{9, 10, 635}, + dictWord{139, 10, 559}, + dictWord{7, 0, 1505}, + dictWord{10, 0, 190}, + dictWord{10, 0, 634}, + dictWord{11, 0, 792}, + dictWord{12, 0, 358}, + dictWord{140, 0, 447}, + dictWord{5, 0, 0}, + dictWord{6, 0, 536}, + dictWord{7, 0, 604}, + dictWord{13, 0, 445}, + dictWord{145, 0, 126}, + dictWord{ + 7, + 11, + 1076, + }, + dictWord{9, 11, 80}, + dictWord{11, 11, 78}, + dictWord{11, 11, 421}, + dictWord{11, 11, 534}, + dictWord{140, 11, 545}, + dictWord{8, 0, 966}, + dictWord{ + 10, + 0, + 1023, + }, + dictWord{14, 11, 369}, + dictWord{146, 11, 72}, + dictWord{135, 11, 1641}, + dictWord{6, 0, 232}, + dictWord{6, 0, 412}, + dictWord{7, 0, 1074}, + dictWord{ + 8, + 0, + 9, + }, + dictWord{8, 0, 157}, + dictWord{8, 0, 786}, + dictWord{9, 0, 196}, + dictWord{9, 0, 352}, + dictWord{9, 0, 457}, + dictWord{10, 0, 337}, + dictWord{11, 0, 232}, + dictWord{ + 11, + 0, + 877, + }, + dictWord{12, 0, 480}, + dictWord{140, 0, 546}, + dictWord{135, 0, 958}, + dictWord{4, 0, 382}, + dictWord{136, 0, 579}, + dictWord{4, 0, 212}, + dictWord{ + 135, + 0, + 1206, + }, + dictWord{4, 11, 497}, + dictWord{5, 11, 657}, + dictWord{135, 11, 1584}, + dictWord{132, 0, 681}, + dictWord{8, 0, 971}, + dictWord{138, 0, 965}, + dictWord{ + 5, + 10, + 448, + }, + dictWord{136, 10, 535}, + dictWord{14, 0, 16}, + dictWord{146, 0, 44}, + dictWord{11, 0, 584}, + dictWord{11, 0, 616}, + dictWord{14, 0, 275}, + dictWord{ + 11, + 11, + 584, + }, + dictWord{11, 11, 616}, + dictWord{142, 11, 275}, + dictWord{136, 11, 13}, + dictWord{7, 10, 610}, + dictWord{135, 10, 1501}, + dictWord{7, 11, 642}, + dictWord{8, 11, 250}, + dictWord{11, 11, 123}, + dictWord{11, 11, 137}, + dictWord{13, 11, 48}, + dictWord{142, 11, 95}, + dictWord{133, 0, 655}, + dictWord{17, 0, 67}, + dictWord{147, 0, 74}, + dictWord{134, 0, 751}, + dictWord{134, 0, 1967}, + dictWord{6, 0, 231}, + dictWord{136, 0, 423}, + dictWord{5, 0, 300}, + dictWord{138, 0, 1016}, + dictWord{4, 10, 319}, + dictWord{5, 10, 699}, + dictWord{138, 10, 673}, + dictWord{6, 0, 237}, + dictWord{7, 0, 611}, + dictWord{8, 0, 100}, + dictWord{9, 0, 416}, + dictWord{ + 11, + 0, + 335, + }, + dictWord{12, 0, 173}, + dictWord{18, 0, 101}, + dictWord{6, 10, 336}, + dictWord{8, 10, 552}, + dictWord{9, 10, 285}, + dictWord{10, 10, 99}, + dictWord{ + 139, + 10, + 568, + }, + dictWord{134, 0, 1370}, + dictWord{7, 10, 1406}, + dictWord{9, 10, 218}, + dictWord{141, 10, 222}, + dictWord{133, 10, 256}, + dictWord{ + 135, + 0, + 1208, + }, + dictWord{14, 11, 213}, + dictWord{148, 11, 38}, + dictWord{6, 0, 1219}, + dictWord{135, 11, 1642}, + dictWord{13, 0, 417}, + dictWord{14, 0, 129}, + dictWord{143, 0, 15}, + dictWord{10, 11, 545}, + dictWord{140, 11, 301}, + dictWord{17, 10, 39}, + dictWord{148, 10, 36}, + dictWord{133, 0, 199}, + dictWord{4, 11, 904}, + dictWord{133, 11, 794}, + dictWord{12, 0, 427}, + dictWord{146, 0, 38}, + dictWord{134, 0, 949}, + dictWord{8, 0, 665}, + dictWord{135, 10, 634}, + dictWord{ + 132, + 10, + 618, + }, + dictWord{135, 10, 259}, + dictWord{132, 10, 339}, + dictWord{133, 11, 761}, + dictWord{141, 10, 169}, + dictWord{132, 10, 759}, + dictWord{5, 0, 688}, + dictWord{7, 0, 539}, + dictWord{135, 0, 712}, + dictWord{7, 11, 386}, + dictWord{138, 11, 713}, + dictWord{134, 0, 1186}, + dictWord{6, 11, 7}, + dictWord{6, 11, 35}, + dictWord{ + 7, + 11, + 147, + }, + dictWord{7, 11, 1069}, + dictWord{7, 11, 1568}, + dictWord{7, 11, 1575}, + dictWord{7, 11, 1917}, + dictWord{8, 11, 43}, + dictWord{8, 11, 208}, + dictWord{ + 9, + 11, + 128, + }, + dictWord{9, 11, 866}, + dictWord{10, 11, 20}, + dictWord{11, 11, 981}, + dictWord{147, 11, 33}, + dictWord{7, 11, 893}, + dictWord{8, 10, 482}, + dictWord{141, 11, 424}, + dictWord{6, 0, 312}, + dictWord{6, 0, 1715}, + dictWord{10, 0, 584}, + dictWord{11, 0, 546}, + dictWord{11, 0, 692}, + dictWord{12, 0, 259}, + dictWord{ + 12, + 0, + 295, + }, + dictWord{13, 0, 46}, + dictWord{141, 0, 154}, + dictWord{5, 10, 336}, + dictWord{6, 10, 341}, + dictWord{6, 10, 478}, + dictWord{6, 10, 1763}, + dictWord{ + 136, + 10, + 386, + }, + dictWord{137, 0, 151}, + dictWord{132, 0, 588}, + dictWord{152, 0, 4}, + dictWord{6, 11, 322}, + dictWord{9, 11, 552}, + dictWord{11, 11, 274}, + dictWord{ + 13, + 11, + 209, + }, + dictWord{13, 11, 499}, + dictWord{14, 11, 85}, + dictWord{15, 11, 126}, + dictWord{145, 11, 70}, + dictWord{135, 10, 73}, + dictWord{4, 0, 231}, + dictWord{ + 5, + 0, + 61, + }, + dictWord{6, 0, 104}, + dictWord{7, 0, 729}, + dictWord{7, 0, 964}, + dictWord{7, 0, 1658}, + dictWord{140, 0, 414}, + dictWord{6, 0, 263}, + dictWord{138, 0, 757}, + dictWord{135, 10, 1971}, + dictWord{4, 0, 612}, + dictWord{133, 0, 561}, + dictWord{132, 0, 320}, + dictWord{135, 10, 1344}, + dictWord{8, 11, 83}, + dictWord{ + 8, + 11, + 817, + }, + dictWord{9, 11, 28}, + dictWord{9, 11, 29}, + dictWord{9, 11, 885}, + dictWord{10, 11, 387}, + dictWord{11, 11, 633}, + dictWord{11, 11, 740}, + dictWord{ + 13, + 11, + 235, + }, + dictWord{13, 11, 254}, + dictWord{15, 11, 143}, + dictWord{143, 11, 146}, + dictWord{5, 10, 396}, + dictWord{134, 10, 501}, + dictWord{140, 11, 49}, + dictWord{132, 0, 225}, + dictWord{4, 10, 929}, + dictWord{5, 10, 799}, + dictWord{8, 10, 46}, + dictWord{136, 10, 740}, + dictWord{4, 0, 405}, + dictWord{7, 0, 817}, + dictWord{ + 14, + 0, + 58, + }, + dictWord{17, 0, 37}, + dictWord{146, 0, 124}, + dictWord{133, 0, 974}, + dictWord{4, 11, 412}, + dictWord{133, 11, 581}, + dictWord{4, 10, 892}, + dictWord{ + 133, + 10, + 770, + }, + dictWord{4, 0, 996}, + dictWord{134, 0, 2026}, + dictWord{4, 0, 527}, + dictWord{5, 0, 235}, + dictWord{7, 0, 1239}, + dictWord{11, 0, 131}, + dictWord{ + 140, + 0, + 370, + }, + dictWord{9, 0, 16}, + dictWord{13, 0, 386}, + dictWord{135, 11, 421}, + dictWord{7, 0, 956}, + dictWord{7, 0, 1157}, + dictWord{7, 0, 1506}, + dictWord{7, 0, 1606}, + dictWord{7, 0, 1615}, + dictWord{7, 0, 1619}, + dictWord{7, 0, 1736}, + dictWord{7, 0, 1775}, + dictWord{8, 0, 590}, + dictWord{9, 0, 324}, + dictWord{9, 0, 736}, + dictWord{ + 9, + 0, + 774, + }, + dictWord{9, 0, 776}, + dictWord{9, 0, 784}, + dictWord{10, 0, 567}, + dictWord{10, 0, 708}, + dictWord{11, 0, 518}, + dictWord{11, 0, 613}, + dictWord{11, 0, 695}, + dictWord{11, 0, 716}, + dictWord{11, 0, 739}, + dictWord{11, 0, 770}, + dictWord{11, 0, 771}, + dictWord{11, 0, 848}, + dictWord{11, 0, 857}, + dictWord{11, 0, 931}, + dictWord{ + 11, + 0, + 947, + }, + dictWord{12, 0, 326}, + dictWord{12, 0, 387}, + dictWord{12, 0, 484}, + dictWord{12, 0, 528}, + dictWord{12, 0, 552}, + dictWord{12, 0, 613}, + dictWord{ + 13, + 0, + 189, + }, + dictWord{13, 0, 256}, + dictWord{13, 0, 340}, + dictWord{13, 0, 432}, + dictWord{13, 0, 436}, + dictWord{13, 0, 440}, + dictWord{13, 0, 454}, + dictWord{14, 0, 174}, + dictWord{14, 0, 220}, + dictWord{14, 0, 284}, + dictWord{14, 0, 390}, + dictWord{145, 0, 121}, + dictWord{135, 10, 158}, + dictWord{9, 0, 137}, + dictWord{138, 0, 221}, + dictWord{4, 11, 110}, + dictWord{10, 11, 415}, + dictWord{10, 11, 597}, + dictWord{142, 11, 206}, + dictWord{141, 11, 496}, + dictWord{135, 11, 205}, + dictWord{ + 151, + 10, + 25, + }, + dictWord{135, 11, 778}, + dictWord{7, 11, 1656}, + dictWord{7, 10, 2001}, + dictWord{9, 11, 369}, + dictWord{10, 11, 338}, + dictWord{10, 11, 490}, + dictWord{11, 11, 154}, + dictWord{11, 11, 545}, + dictWord{11, 11, 775}, + dictWord{13, 11, 77}, + dictWord{141, 11, 274}, + dictWord{4, 11, 444}, + dictWord{ + 10, + 11, + 146, + }, + dictWord{140, 11, 9}, + dictWord{7, 0, 390}, + dictWord{138, 0, 140}, + dictWord{135, 0, 1144}, + dictWord{134, 0, 464}, + dictWord{7, 10, 1461}, + dictWord{ + 140, + 10, + 91, + }, + dictWord{132, 10, 602}, + dictWord{4, 11, 283}, + dictWord{135, 11, 1194}, + dictWord{5, 0, 407}, + dictWord{11, 0, 204}, + dictWord{11, 0, 243}, + dictWord{ + 11, + 0, + 489, + }, + dictWord{12, 0, 293}, + dictWord{19, 0, 37}, + dictWord{20, 0, 73}, + dictWord{150, 0, 38}, + dictWord{7, 0, 1218}, + dictWord{136, 0, 303}, + dictWord{ + 5, + 0, + 325, + }, + dictWord{8, 0, 5}, + dictWord{8, 0, 227}, + dictWord{9, 0, 105}, + dictWord{10, 0, 585}, + dictWord{12, 0, 614}, + dictWord{4, 10, 13}, + dictWord{5, 10, 567}, + dictWord{ + 7, + 10, + 1498, + }, + dictWord{9, 10, 124}, + dictWord{11, 10, 521}, + dictWord{140, 10, 405}, + dictWord{135, 10, 1006}, + dictWord{7, 0, 800}, + dictWord{10, 0, 12}, + dictWord{134, 11, 1720}, + dictWord{135, 0, 1783}, + dictWord{132, 10, 735}, + dictWord{138, 10, 812}, + dictWord{4, 10, 170}, + dictWord{135, 10, 323}, + dictWord{ + 6, + 0, + 621, + }, + dictWord{13, 0, 504}, + dictWord{144, 0, 89}, + dictWord{5, 10, 304}, + dictWord{135, 10, 1403}, + dictWord{137, 11, 216}, + dictWord{6, 0, 920}, + dictWord{ + 6, + 0, + 1104, + }, + dictWord{9, 11, 183}, + dictWord{139, 11, 286}, + dictWord{4, 0, 376}, + dictWord{133, 10, 742}, + dictWord{134, 0, 218}, + dictWord{8, 0, 641}, + dictWord{ + 11, + 0, + 388, + }, + dictWord{140, 0, 580}, + dictWord{7, 0, 454}, + dictWord{7, 0, 782}, + dictWord{8, 0, 768}, + dictWord{140, 0, 686}, + dictWord{137, 11, 33}, + dictWord{ + 133, + 10, + 111, + }, + dictWord{144, 0, 0}, + dictWord{10, 0, 676}, + dictWord{140, 0, 462}, + dictWord{6, 0, 164}, + dictWord{136, 11, 735}, + dictWord{133, 10, 444}, + dictWord{ + 150, + 0, + 50, + }, + dictWord{7, 11, 1862}, + dictWord{12, 11, 491}, + dictWord{12, 11, 520}, + dictWord{13, 11, 383}, + dictWord{14, 11, 244}, + dictWord{146, 11, 12}, + dictWord{ + 5, + 11, + 132, + }, + dictWord{9, 11, 486}, + dictWord{9, 11, 715}, + dictWord{10, 11, 458}, + dictWord{11, 11, 373}, + dictWord{11, 11, 668}, + dictWord{11, 11, 795}, + dictWord{11, 11, 897}, + dictWord{12, 11, 272}, + dictWord{12, 11, 424}, + dictWord{12, 11, 539}, + dictWord{12, 11, 558}, + dictWord{14, 11, 245}, + dictWord{ + 14, + 11, + 263, + }, + dictWord{14, 11, 264}, + dictWord{14, 11, 393}, + dictWord{142, 11, 403}, + dictWord{8, 10, 123}, + dictWord{15, 10, 6}, + dictWord{144, 10, 7}, + dictWord{ + 6, + 0, + 285, + }, + dictWord{8, 0, 654}, + dictWord{11, 0, 749}, + dictWord{12, 0, 190}, + dictWord{12, 0, 327}, + dictWord{13, 0, 120}, + dictWord{13, 0, 121}, + dictWord{13, 0, 327}, + dictWord{15, 0, 47}, + dictWord{146, 0, 40}, + dictWord{5, 11, 8}, + dictWord{6, 11, 89}, + dictWord{6, 11, 400}, + dictWord{7, 11, 1569}, + dictWord{7, 11, 1623}, + dictWord{ + 7, + 11, + 1850, + }, + dictWord{8, 11, 218}, + dictWord{8, 11, 422}, + dictWord{9, 11, 570}, + dictWord{138, 11, 626}, + dictWord{6, 11, 387}, + dictWord{7, 11, 882}, + dictWord{141, 11, 111}, + dictWord{6, 0, 343}, + dictWord{7, 0, 195}, + dictWord{9, 0, 226}, + dictWord{10, 0, 197}, + dictWord{10, 0, 575}, + dictWord{11, 0, 502}, + dictWord{ + 11, + 0, + 899, + }, + dictWord{6, 11, 224}, + dictWord{7, 11, 877}, + dictWord{137, 11, 647}, + dictWord{5, 10, 937}, + dictWord{135, 10, 100}, + dictWord{135, 11, 790}, + dictWord{150, 0, 29}, + dictWord{147, 0, 8}, + dictWord{134, 0, 1812}, + dictWord{149, 0, 8}, + dictWord{135, 11, 394}, + dictWord{7, 0, 1125}, + dictWord{9, 0, 143}, + dictWord{ + 11, + 0, + 61, + }, + dictWord{14, 0, 405}, + dictWord{150, 0, 21}, + dictWord{10, 11, 755}, + dictWord{147, 11, 29}, + dictWord{9, 11, 378}, + dictWord{141, 11, 162}, + dictWord{135, 10, 922}, + dictWord{5, 10, 619}, + dictWord{133, 10, 698}, + dictWord{134, 0, 1327}, + dictWord{6, 0, 1598}, + dictWord{137, 0, 575}, + dictWord{ + 9, + 11, + 569, + }, + dictWord{12, 11, 12}, + dictWord{12, 11, 81}, + dictWord{12, 11, 319}, + dictWord{13, 11, 69}, + dictWord{14, 11, 259}, + dictWord{16, 11, 87}, + dictWord{ + 17, + 11, + 1, + }, + dictWord{17, 11, 21}, + dictWord{17, 11, 24}, + dictWord{18, 11, 15}, + dictWord{18, 11, 56}, + dictWord{18, 11, 59}, + dictWord{18, 11, 127}, + dictWord{18, 11, 154}, + dictWord{19, 11, 19}, + dictWord{148, 11, 31}, + dictWord{6, 0, 895}, + dictWord{135, 11, 1231}, + dictWord{5, 0, 959}, + dictWord{7, 11, 124}, + dictWord{136, 11, 38}, + dictWord{5, 11, 261}, + dictWord{7, 11, 78}, + dictWord{7, 11, 199}, + dictWord{8, 11, 815}, + dictWord{9, 11, 126}, + dictWord{138, 11, 342}, + dictWord{5, 10, 917}, + dictWord{134, 10, 1659}, + dictWord{7, 0, 1759}, + dictWord{5, 11, 595}, + dictWord{135, 11, 1863}, + dictWord{136, 0, 173}, + dictWord{134, 0, 266}, + dictWord{ + 142, + 0, + 261, + }, + dictWord{132, 11, 628}, + dictWord{5, 10, 251}, + dictWord{5, 10, 956}, + dictWord{8, 10, 268}, + dictWord{9, 10, 214}, + dictWord{146, 10, 142}, + dictWord{ + 7, + 11, + 266, + }, + dictWord{136, 11, 804}, + dictWord{135, 11, 208}, + dictWord{6, 11, 79}, + dictWord{7, 11, 1021}, + dictWord{135, 11, 1519}, + dictWord{11, 11, 704}, + dictWord{141, 11, 396}, + dictWord{5, 10, 346}, + dictWord{5, 10, 711}, + dictWord{136, 10, 390}, + dictWord{136, 11, 741}, + dictWord{134, 11, 376}, + dictWord{ + 134, + 0, + 1427, + }, + dictWord{6, 0, 1033}, + dictWord{6, 0, 1217}, + dictWord{136, 0, 300}, + dictWord{133, 10, 624}, + dictWord{6, 11, 100}, + dictWord{7, 11, 244}, + dictWord{ + 7, + 11, + 632, + }, + dictWord{7, 11, 1609}, + dictWord{8, 11, 178}, + dictWord{8, 11, 638}, + dictWord{141, 11, 58}, + dictWord{6, 0, 584}, + dictWord{5, 10, 783}, + dictWord{ + 7, + 10, + 1998, + }, + dictWord{135, 10, 2047}, + dictWord{5, 0, 427}, + dictWord{5, 0, 734}, + dictWord{7, 0, 478}, + dictWord{136, 0, 52}, + dictWord{7, 0, 239}, + dictWord{ + 11, + 0, + 217, + }, + dictWord{142, 0, 165}, + dictWord{134, 0, 1129}, + dictWord{6, 0, 168}, + dictWord{6, 0, 1734}, + dictWord{7, 0, 20}, + dictWord{7, 0, 1056}, + dictWord{8, 0, 732}, + dictWord{9, 0, 406}, + dictWord{9, 0, 911}, + dictWord{138, 0, 694}, + dictWord{132, 10, 594}, + dictWord{133, 11, 791}, + dictWord{7, 11, 686}, + dictWord{8, 11, 33}, + dictWord{8, 11, 238}, + dictWord{10, 11, 616}, + dictWord{11, 11, 467}, + dictWord{11, 11, 881}, + dictWord{13, 11, 217}, + dictWord{13, 11, 253}, + dictWord{ + 142, + 11, + 268, + }, + dictWord{137, 11, 476}, + dictWord{134, 0, 418}, + dictWord{133, 0, 613}, + dictWord{132, 0, 632}, + dictWord{132, 11, 447}, + dictWord{7, 0, 32}, + dictWord{ + 7, + 0, + 984, + }, + dictWord{8, 0, 85}, + dictWord{8, 0, 709}, + dictWord{9, 0, 579}, + dictWord{9, 0, 847}, + dictWord{9, 0, 856}, + dictWord{10, 0, 799}, + dictWord{11, 0, 258}, + dictWord{ + 11, + 0, + 1007, + }, + dictWord{12, 0, 331}, + dictWord{12, 0, 615}, + dictWord{13, 0, 188}, + dictWord{13, 0, 435}, + dictWord{14, 0, 8}, + dictWord{15, 0, 165}, + dictWord{ + 16, + 0, + 27, + }, + dictWord{20, 0, 40}, + dictWord{144, 11, 35}, + dictWord{4, 11, 128}, + dictWord{5, 11, 415}, + dictWord{6, 11, 462}, + dictWord{7, 11, 294}, + dictWord{7, 11, 578}, + dictWord{10, 11, 710}, + dictWord{139, 11, 86}, + dictWord{5, 0, 694}, + dictWord{136, 0, 909}, + dictWord{7, 0, 1109}, + dictWord{11, 0, 7}, + dictWord{5, 10, 37}, + dictWord{ + 6, + 10, + 39, + }, + dictWord{6, 10, 451}, + dictWord{7, 10, 218}, + dictWord{7, 10, 1166}, + dictWord{7, 10, 1687}, + dictWord{8, 10, 662}, + dictWord{144, 10, 2}, + dictWord{ + 136, + 11, + 587, + }, + dictWord{6, 11, 427}, + dictWord{7, 11, 1018}, + dictWord{138, 11, 692}, + dictWord{4, 11, 195}, + dictWord{6, 10, 508}, + dictWord{135, 11, 802}, + dictWord{4, 0, 167}, + dictWord{135, 0, 82}, + dictWord{5, 0, 62}, + dictWord{6, 0, 24}, + dictWord{6, 0, 534}, + dictWord{7, 0, 74}, + dictWord{7, 0, 678}, + dictWord{7, 0, 684}, + dictWord{ + 7, + 0, + 1043, + }, + dictWord{7, 0, 1072}, + dictWord{8, 0, 280}, + dictWord{8, 0, 541}, + dictWord{8, 0, 686}, + dictWord{9, 0, 258}, + dictWord{10, 0, 519}, + dictWord{11, 0, 252}, + dictWord{140, 0, 282}, + dictWord{138, 0, 33}, + dictWord{4, 0, 359}, + dictWord{133, 11, 738}, + dictWord{7, 0, 980}, + dictWord{9, 0, 328}, + dictWord{13, 0, 186}, + dictWord{13, 0, 364}, + dictWord{7, 10, 635}, + dictWord{7, 10, 796}, + dictWord{8, 10, 331}, + dictWord{9, 10, 330}, + dictWord{9, 10, 865}, + dictWord{10, 10, 119}, + dictWord{ + 10, + 10, + 235, + }, + dictWord{11, 10, 111}, + dictWord{11, 10, 129}, + dictWord{11, 10, 240}, + dictWord{12, 10, 31}, + dictWord{12, 10, 66}, + dictWord{12, 10, 222}, + dictWord{12, 10, 269}, + dictWord{12, 10, 599}, + dictWord{12, 10, 684}, + dictWord{12, 10, 689}, + dictWord{12, 10, 691}, + dictWord{142, 10, 345}, + dictWord{ + 137, + 10, + 527, + }, + dictWord{6, 0, 596}, + dictWord{7, 0, 585}, + dictWord{135, 10, 702}, + dictWord{134, 11, 1683}, + dictWord{133, 0, 211}, + dictWord{6, 0, 145}, + dictWord{ + 141, + 0, + 336, + }, + dictWord{134, 0, 1130}, + dictWord{7, 0, 873}, + dictWord{6, 10, 37}, + dictWord{7, 10, 1666}, + dictWord{8, 10, 195}, + dictWord{8, 10, 316}, + dictWord{ + 9, + 10, + 178, + }, + dictWord{9, 10, 276}, + dictWord{9, 10, 339}, + dictWord{9, 10, 536}, + dictWord{10, 10, 102}, + dictWord{10, 10, 362}, + dictWord{10, 10, 785}, + dictWord{ + 11, + 10, + 55, + }, + dictWord{11, 10, 149}, + dictWord{11, 10, 773}, + dictWord{13, 10, 416}, + dictWord{13, 10, 419}, + dictWord{14, 10, 38}, + dictWord{14, 10, 41}, + dictWord{ + 142, + 10, + 210, + }, + dictWord{8, 0, 840}, + dictWord{136, 0, 841}, + dictWord{132, 0, 263}, + dictWord{5, 11, 3}, + dictWord{8, 11, 578}, + dictWord{9, 11, 118}, + dictWord{ + 10, + 11, + 705, + }, + dictWord{12, 11, 383}, + dictWord{141, 11, 279}, + dictWord{132, 0, 916}, + dictWord{133, 11, 229}, + dictWord{133, 10, 645}, + dictWord{15, 0, 155}, + dictWord{16, 0, 79}, + dictWord{8, 11, 102}, + dictWord{10, 11, 578}, + dictWord{10, 11, 672}, + dictWord{12, 11, 496}, + dictWord{13, 11, 408}, + dictWord{14, 11, 121}, + dictWord{145, 11, 106}, + dictWord{4, 0, 599}, + dictWord{5, 0, 592}, + dictWord{6, 0, 1634}, + dictWord{7, 0, 5}, + dictWord{7, 0, 55}, + dictWord{7, 0, 67}, + dictWord{7, 0, 97}, + dictWord{7, 0, 691}, + dictWord{7, 0, 979}, + dictWord{7, 0, 1600}, + dictWord{7, 0, 1697}, + dictWord{8, 0, 207}, + dictWord{8, 0, 214}, + dictWord{8, 0, 231}, + dictWord{8, 0, 294}, + dictWord{8, 0, 336}, + dictWord{8, 0, 428}, + dictWord{8, 0, 471}, + dictWord{8, 0, 622}, + dictWord{8, 0, 626}, + dictWord{8, 0, 679}, + dictWord{8, 0, 759}, + dictWord{8, 0, 829}, + dictWord{9, 0, 11}, + dictWord{9, 0, 246}, + dictWord{9, 0, 484}, + dictWord{9, 0, 573}, + dictWord{9, 0, 706}, + dictWord{9, 0, 762}, + dictWord{9, 0, 798}, + dictWord{9, 0, 855}, + dictWord{9, 0, 870}, + dictWord{9, 0, 912}, + dictWord{10, 0, 303}, + dictWord{10, 0, 335}, + dictWord{10, 0, 424}, + dictWord{10, 0, 461}, + dictWord{10, 0, 543}, + dictWord{ + 10, + 0, + 759, + }, + dictWord{10, 0, 814}, + dictWord{11, 0, 59}, + dictWord{11, 0, 199}, + dictWord{11, 0, 235}, + dictWord{11, 0, 590}, + dictWord{11, 0, 631}, + dictWord{11, 0, 929}, + dictWord{11, 0, 963}, + dictWord{11, 0, 987}, + dictWord{12, 0, 114}, + dictWord{12, 0, 182}, + dictWord{12, 0, 226}, + dictWord{12, 0, 332}, + dictWord{12, 0, 439}, + dictWord{12, 0, 575}, + dictWord{12, 0, 598}, + dictWord{12, 0, 675}, + dictWord{13, 0, 8}, + dictWord{13, 0, 125}, + dictWord{13, 0, 194}, + dictWord{13, 0, 287}, + dictWord{ + 14, + 0, + 197, + }, + dictWord{14, 0, 383}, + dictWord{15, 0, 53}, + dictWord{17, 0, 63}, + dictWord{19, 0, 46}, + dictWord{19, 0, 98}, + dictWord{19, 0, 106}, + dictWord{148, 0, 85}, + dictWord{ + 7, + 0, + 1356, + }, + dictWord{132, 10, 290}, + dictWord{6, 10, 70}, + dictWord{7, 10, 1292}, + dictWord{10, 10, 762}, + dictWord{139, 10, 288}, + dictWord{150, 11, 55}, + dictWord{4, 0, 593}, + dictWord{8, 11, 115}, + dictWord{8, 11, 350}, + dictWord{9, 11, 489}, + dictWord{10, 11, 128}, + dictWord{11, 11, 306}, + dictWord{12, 11, 373}, + dictWord{14, 11, 30}, + dictWord{17, 11, 79}, + dictWord{147, 11, 80}, + dictWord{135, 11, 1235}, + dictWord{134, 0, 1392}, + dictWord{4, 11, 230}, + dictWord{ + 133, + 11, + 702, + }, + dictWord{147, 0, 126}, + dictWord{7, 10, 131}, + dictWord{7, 10, 422}, + dictWord{8, 10, 210}, + dictWord{140, 10, 573}, + dictWord{134, 0, 1179}, + dictWord{ + 139, + 11, + 435, + }, + dictWord{139, 10, 797}, + dictWord{134, 11, 1728}, + dictWord{4, 0, 162}, + dictWord{18, 11, 26}, + dictWord{19, 11, 42}, + dictWord{20, 11, 43}, + dictWord{21, 11, 0}, + dictWord{23, 11, 27}, + dictWord{152, 11, 14}, + dictWord{132, 10, 936}, + dictWord{6, 0, 765}, + dictWord{5, 10, 453}, + dictWord{134, 10, 441}, + dictWord{133, 0, 187}, + dictWord{135, 0, 1286}, + dictWord{6, 0, 635}, + dictWord{6, 0, 904}, + dictWord{6, 0, 1210}, + dictWord{134, 0, 1489}, + dictWord{4, 0, 215}, + dictWord{ + 8, + 0, + 890, + }, + dictWord{9, 0, 38}, + dictWord{10, 0, 923}, + dictWord{11, 0, 23}, + dictWord{11, 0, 127}, + dictWord{139, 0, 796}, + dictWord{6, 0, 1165}, + dictWord{ + 134, + 0, + 1306, + }, + dictWord{7, 0, 716}, + dictWord{13, 0, 97}, + dictWord{141, 0, 251}, + dictWord{132, 10, 653}, + dictWord{136, 0, 657}, + dictWord{146, 10, 80}, + dictWord{ + 5, + 11, + 622, + }, + dictWord{7, 11, 1032}, + dictWord{11, 11, 26}, + dictWord{11, 11, 213}, + dictWord{11, 11, 707}, + dictWord{12, 11, 380}, + dictWord{13, 11, 226}, + dictWord{141, 11, 355}, + dictWord{6, 0, 299}, + dictWord{5, 11, 70}, + dictWord{6, 11, 334}, + dictWord{9, 11, 171}, + dictWord{11, 11, 637}, + dictWord{12, 11, 202}, + dictWord{14, 11, 222}, + dictWord{145, 11, 42}, + dictWord{142, 0, 134}, + dictWord{4, 11, 23}, + dictWord{5, 11, 313}, + dictWord{5, 11, 1014}, + dictWord{6, 11, 50}, + dictWord{ + 6, + 11, + 51, + }, + dictWord{7, 11, 142}, + dictWord{7, 11, 384}, + dictWord{9, 11, 783}, + dictWord{139, 11, 741}, + dictWord{4, 11, 141}, + dictWord{7, 11, 559}, + dictWord{ + 8, + 11, + 640, + }, + dictWord{9, 11, 460}, + dictWord{12, 11, 183}, + dictWord{141, 11, 488}, + dictWord{136, 11, 614}, + dictWord{7, 10, 1368}, + dictWord{8, 10, 232}, + dictWord{8, 10, 361}, + dictWord{10, 10, 682}, + dictWord{138, 10, 742}, + dictWord{137, 10, 534}, + dictWord{6, 0, 1082}, + dictWord{140, 0, 658}, + dictWord{ + 137, + 10, + 27, + }, + dictWord{135, 0, 2002}, + dictWord{142, 10, 12}, + dictWord{4, 0, 28}, + dictWord{5, 0, 440}, + dictWord{7, 0, 248}, + dictWord{11, 0, 833}, + dictWord{140, 0, 344}, + dictWord{7, 10, 736}, + dictWord{139, 10, 264}, + dictWord{134, 10, 1657}, + dictWord{134, 0, 1654}, + dictWord{138, 0, 531}, + dictWord{5, 11, 222}, + dictWord{ + 9, + 11, + 140, + }, + dictWord{138, 11, 534}, + dictWord{6, 0, 634}, + dictWord{6, 0, 798}, + dictWord{134, 0, 840}, + dictWord{138, 11, 503}, + dictWord{135, 10, 127}, + dictWord{133, 0, 853}, + dictWord{5, 11, 154}, + dictWord{7, 11, 1491}, + dictWord{10, 11, 379}, + dictWord{138, 11, 485}, + dictWord{6, 0, 249}, + dictWord{7, 0, 1234}, + dictWord{139, 0, 573}, + dictWord{133, 11, 716}, + dictWord{7, 11, 1570}, + dictWord{140, 11, 542}, + dictWord{136, 10, 364}, + dictWord{138, 0, 527}, + dictWord{ + 4, + 11, + 91, + }, + dictWord{5, 11, 388}, + dictWord{5, 11, 845}, + dictWord{6, 11, 206}, + dictWord{6, 11, 252}, + dictWord{6, 11, 365}, + dictWord{7, 11, 136}, + dictWord{7, 11, 531}, + dictWord{8, 11, 264}, + dictWord{136, 11, 621}, + dictWord{134, 0, 1419}, + dictWord{135, 11, 1441}, + dictWord{7, 0, 49}, + dictWord{7, 0, 392}, + dictWord{8, 0, 20}, + dictWord{8, 0, 172}, + dictWord{8, 0, 690}, + dictWord{9, 0, 383}, + dictWord{9, 0, 845}, + dictWord{10, 0, 48}, + dictWord{11, 0, 293}, + dictWord{11, 0, 832}, + dictWord{ + 11, + 0, + 920, + }, + dictWord{11, 0, 984}, + dictWord{141, 0, 221}, + dictWord{5, 0, 858}, + dictWord{133, 0, 992}, + dictWord{5, 0, 728}, + dictWord{137, 10, 792}, + dictWord{ + 5, + 10, + 909, + }, + dictWord{9, 10, 849}, + dictWord{138, 10, 805}, + dictWord{7, 0, 525}, + dictWord{7, 0, 1579}, + dictWord{8, 0, 497}, + dictWord{136, 0, 573}, + dictWord{6, 0, 268}, + dictWord{137, 0, 62}, + dictWord{135, 11, 576}, + dictWord{134, 0, 1201}, + dictWord{5, 11, 771}, + dictWord{5, 11, 863}, + dictWord{5, 11, 898}, + dictWord{ + 6, + 11, + 1632, + }, + dictWord{6, 11, 1644}, + dictWord{134, 11, 1780}, + dictWord{133, 11, 331}, + dictWord{7, 0, 193}, + dictWord{7, 0, 1105}, + dictWord{10, 0, 495}, + dictWord{ + 7, + 10, + 397, + }, + dictWord{8, 10, 124}, + dictWord{8, 10, 619}, + dictWord{9, 10, 305}, + dictWord{11, 10, 40}, + dictWord{12, 10, 349}, + dictWord{13, 10, 134}, + dictWord{ + 13, + 10, + 295, + }, + dictWord{14, 10, 155}, + dictWord{15, 10, 120}, + dictWord{146, 10, 105}, + dictWord{138, 0, 106}, + dictWord{6, 0, 859}, + dictWord{5, 11, 107}, + dictWord{ + 7, + 11, + 201, + }, + dictWord{136, 11, 518}, + dictWord{6, 11, 446}, + dictWord{135, 11, 1817}, + dictWord{13, 0, 23}, + dictWord{4, 10, 262}, + dictWord{135, 10, 342}, + dictWord{133, 10, 641}, + dictWord{137, 11, 851}, + dictWord{6, 0, 925}, + dictWord{137, 0, 813}, + dictWord{132, 11, 504}, + dictWord{6, 0, 613}, + dictWord{ + 136, + 0, + 223, + }, + dictWord{4, 10, 99}, + dictWord{6, 10, 250}, + dictWord{6, 10, 346}, + dictWord{8, 10, 127}, + dictWord{138, 10, 81}, + dictWord{136, 0, 953}, + dictWord{ + 132, + 10, + 915, + }, + dictWord{139, 11, 892}, + dictWord{5, 10, 75}, + dictWord{9, 10, 517}, + dictWord{10, 10, 470}, + dictWord{12, 10, 155}, + dictWord{141, 10, 224}, + dictWord{ + 4, + 0, + 666, + }, + dictWord{7, 0, 1017}, + dictWord{7, 11, 996}, + dictWord{138, 11, 390}, + dictWord{5, 11, 883}, + dictWord{133, 11, 975}, + dictWord{14, 10, 83}, + dictWord{ + 142, + 11, + 83, + }, + dictWord{4, 0, 670}, + dictWord{5, 11, 922}, + dictWord{134, 11, 1707}, + dictWord{135, 0, 216}, + dictWord{9, 0, 40}, + dictWord{11, 0, 136}, + dictWord{ + 135, + 11, + 787, + }, + dictWord{5, 10, 954}, + dictWord{5, 11, 993}, + dictWord{7, 11, 515}, + dictWord{137, 11, 91}, + dictWord{139, 0, 259}, + dictWord{7, 0, 1114}, + dictWord{ + 9, + 0, + 310, + }, + dictWord{9, 0, 682}, + dictWord{10, 0, 440}, + dictWord{13, 0, 40}, + dictWord{6, 10, 304}, + dictWord{8, 10, 418}, + dictWord{11, 10, 341}, + dictWord{ + 139, + 10, + 675, + }, + dictWord{14, 0, 296}, + dictWord{9, 10, 410}, + dictWord{139, 10, 425}, + dictWord{10, 11, 377}, + dictWord{12, 11, 363}, + dictWord{13, 11, 68}, + dictWord{ + 13, + 11, + 94, + }, + dictWord{14, 11, 108}, + dictWord{142, 11, 306}, + dictWord{7, 0, 1401}, + dictWord{135, 0, 1476}, + dictWord{4, 0, 296}, + dictWord{6, 0, 475}, + dictWord{ + 7, + 0, + 401, + }, + dictWord{7, 0, 1410}, + dictWord{7, 0, 1594}, + dictWord{7, 0, 1674}, + dictWord{8, 0, 63}, + dictWord{8, 0, 660}, + dictWord{137, 0, 74}, + dictWord{4, 0, 139}, + dictWord{4, 0, 388}, + dictWord{140, 0, 188}, + dictWord{132, 0, 797}, + dictWord{132, 11, 766}, + dictWord{5, 11, 103}, + dictWord{7, 11, 921}, + dictWord{8, 11, 580}, + dictWord{8, 11, 593}, + dictWord{8, 11, 630}, + dictWord{138, 11, 28}, + dictWord{4, 11, 911}, + dictWord{5, 11, 867}, + dictWord{133, 11, 1013}, + dictWord{134, 10, 14}, + dictWord{134, 0, 1572}, + dictWord{134, 10, 1708}, + dictWord{21, 0, 39}, + dictWord{5, 10, 113}, + dictWord{6, 10, 243}, + dictWord{7, 10, 1865}, + dictWord{ + 11, + 10, + 161, + }, + dictWord{16, 10, 37}, + dictWord{145, 10, 99}, + dictWord{7, 11, 1563}, + dictWord{141, 11, 182}, + dictWord{5, 11, 135}, + dictWord{6, 11, 519}, + dictWord{ + 7, + 11, + 1722, + }, + dictWord{10, 11, 271}, + dictWord{11, 11, 261}, + dictWord{145, 11, 54}, + dictWord{132, 10, 274}, + dictWord{134, 0, 1594}, + dictWord{4, 11, 300}, + dictWord{5, 11, 436}, + dictWord{135, 11, 484}, + dictWord{4, 0, 747}, + dictWord{6, 0, 290}, + dictWord{7, 0, 649}, + dictWord{7, 0, 1479}, + dictWord{135, 0, 1583}, + dictWord{133, 11, 535}, + dictWord{147, 11, 82}, + dictWord{133, 0, 232}, + dictWord{137, 0, 887}, + dictWord{135, 10, 166}, + dictWord{136, 0, 521}, + dictWord{4, 0, 14}, + dictWord{7, 0, 472}, + dictWord{7, 0, 1801}, + dictWord{10, 0, 748}, + dictWord{141, 0, 458}, + dictWord{134, 0, 741}, + dictWord{134, 0, 992}, + dictWord{16, 0, 111}, + dictWord{137, 10, 304}, + dictWord{4, 0, 425}, + dictWord{5, 11, 387}, + dictWord{7, 11, 557}, + dictWord{12, 11, 547}, + dictWord{142, 11, 86}, + dictWord{ + 135, + 11, + 1747, + }, + dictWord{5, 10, 654}, + dictWord{135, 11, 1489}, + dictWord{7, 0, 789}, + dictWord{4, 11, 6}, + dictWord{5, 11, 708}, + dictWord{136, 11, 75}, + dictWord{ + 6, + 10, + 273, + }, + dictWord{10, 10, 188}, + dictWord{13, 10, 377}, + dictWord{146, 10, 77}, + dictWord{6, 0, 1593}, + dictWord{4, 11, 303}, + dictWord{7, 11, 619}, + dictWord{ + 10, + 11, + 547, + }, + dictWord{10, 11, 687}, + dictWord{11, 11, 122}, + dictWord{140, 11, 601}, + dictWord{134, 0, 1768}, + dictWord{135, 10, 410}, + dictWord{138, 11, 772}, + dictWord{11, 0, 233}, + dictWord{139, 10, 524}, + dictWord{5, 0, 943}, + dictWord{134, 0, 1779}, + dictWord{134, 10, 1785}, + dictWord{136, 11, 529}, + dictWord{ + 132, + 0, + 955, + }, + dictWord{5, 0, 245}, + dictWord{6, 0, 576}, + dictWord{7, 0, 582}, + dictWord{136, 0, 225}, + dictWord{132, 10, 780}, + dictWord{142, 0, 241}, + dictWord{ + 134, + 0, + 1943, + }, + dictWord{4, 11, 106}, + dictWord{7, 11, 310}, + dictWord{7, 11, 1785}, + dictWord{10, 11, 690}, + dictWord{139, 11, 717}, + dictWord{134, 0, 1284}, + dictWord{5, 11, 890}, + dictWord{133, 11, 988}, + dictWord{6, 11, 626}, + dictWord{142, 11, 431}, + dictWord{10, 11, 706}, + dictWord{145, 11, 32}, + dictWord{ + 137, + 11, + 332, + }, + dictWord{132, 11, 698}, + dictWord{135, 0, 709}, + dictWord{5, 10, 948}, + dictWord{138, 11, 17}, + dictWord{136, 0, 554}, + dictWord{134, 0, 1564}, + dictWord{139, 10, 941}, + dictWord{132, 0, 443}, + dictWord{134, 0, 909}, + dictWord{134, 11, 84}, + dictWord{142, 0, 280}, + dictWord{4, 10, 532}, + dictWord{5, 10, 706}, + dictWord{135, 10, 662}, + dictWord{132, 0, 729}, + dictWord{5, 10, 837}, + dictWord{6, 10, 1651}, + dictWord{139, 10, 985}, + dictWord{135, 10, 1861}, + dictWord{ + 4, + 0, + 348, + }, + dictWord{152, 11, 3}, + dictWord{5, 11, 986}, + dictWord{6, 11, 130}, + dictWord{7, 11, 1582}, + dictWord{8, 11, 458}, + dictWord{10, 11, 101}, + dictWord{ + 10, + 11, + 318, + }, + dictWord{138, 11, 823}, + dictWord{134, 0, 758}, + dictWord{4, 0, 298}, + dictWord{137, 0, 848}, + dictWord{4, 10, 330}, + dictWord{7, 10, 933}, + dictWord{ + 7, + 10, + 2012, + }, + dictWord{136, 10, 292}, + dictWord{7, 11, 1644}, + dictWord{137, 11, 129}, + dictWord{6, 0, 1422}, + dictWord{9, 0, 829}, + dictWord{135, 10, 767}, + dictWord{5, 0, 164}, + dictWord{7, 0, 121}, + dictWord{142, 0, 189}, + dictWord{7, 0, 812}, + dictWord{7, 0, 1261}, + dictWord{7, 0, 1360}, + dictWord{9, 0, 632}, + dictWord{ + 140, + 0, + 352, + }, + dictWord{135, 11, 1788}, + dictWord{139, 0, 556}, + dictWord{135, 11, 997}, + dictWord{145, 10, 114}, + dictWord{4, 0, 172}, + dictWord{9, 0, 611}, + dictWord{10, 0, 436}, + dictWord{12, 0, 673}, + dictWord{13, 0, 255}, + dictWord{137, 10, 883}, + dictWord{11, 0, 530}, + dictWord{138, 10, 274}, + dictWord{133, 0, 844}, + dictWord{134, 0, 984}, + dictWord{13, 0, 232}, + dictWord{18, 0, 35}, + dictWord{4, 10, 703}, + dictWord{135, 10, 207}, + dictWord{132, 10, 571}, + dictWord{9, 0, 263}, + dictWord{10, 0, 147}, + dictWord{138, 0, 492}, + dictWord{7, 11, 1756}, + dictWord{137, 11, 98}, + dictWord{5, 10, 873}, + dictWord{5, 10, 960}, + dictWord{8, 10, 823}, + dictWord{137, 10, 881}, + dictWord{133, 0, 537}, + dictWord{132, 0, 859}, + dictWord{7, 11, 1046}, + dictWord{139, 11, 160}, + dictWord{137, 0, 842}, + dictWord{ + 139, + 10, + 283, + }, + dictWord{5, 10, 33}, + dictWord{6, 10, 470}, + dictWord{139, 10, 424}, + dictWord{6, 11, 45}, + dictWord{7, 11, 433}, + dictWord{8, 11, 129}, + dictWord{ + 9, + 11, + 21, + }, + dictWord{10, 11, 392}, + dictWord{11, 11, 79}, + dictWord{12, 11, 499}, + dictWord{13, 11, 199}, + dictWord{141, 11, 451}, + dictWord{135, 0, 1291}, + dictWord{135, 10, 1882}, + dictWord{7, 11, 558}, + dictWord{136, 11, 353}, + dictWord{134, 0, 1482}, + dictWord{5, 0, 230}, + dictWord{5, 0, 392}, + dictWord{6, 0, 420}, + dictWord{9, 0, 568}, + dictWord{140, 0, 612}, + dictWord{6, 0, 262}, + dictWord{7, 10, 90}, + dictWord{7, 10, 664}, + dictWord{7, 10, 830}, + dictWord{7, 10, 1380}, + dictWord{ + 7, + 10, + 2025, + }, + dictWord{8, 11, 81}, + dictWord{8, 10, 448}, + dictWord{8, 10, 828}, + dictWord{9, 11, 189}, + dictWord{9, 11, 201}, + dictWord{11, 11, 478}, + dictWord{ + 11, + 11, + 712, + }, + dictWord{141, 11, 338}, + dictWord{142, 0, 31}, + dictWord{5, 11, 353}, + dictWord{151, 11, 26}, + dictWord{132, 0, 753}, + dictWord{4, 0, 0}, + dictWord{ + 5, + 0, + 41, + }, + dictWord{7, 0, 1459}, + dictWord{7, 0, 1469}, + dictWord{7, 0, 1859}, + dictWord{9, 0, 549}, + dictWord{139, 0, 905}, + dictWord{9, 10, 417}, + dictWord{ + 137, + 10, + 493, + }, + dictWord{135, 11, 1113}, + dictWord{133, 0, 696}, + dictWord{141, 11, 448}, + dictWord{134, 10, 295}, + dictWord{132, 0, 834}, + dictWord{4, 0, 771}, + dictWord{5, 10, 1019}, + dictWord{6, 11, 25}, + dictWord{7, 11, 855}, + dictWord{7, 11, 1258}, + dictWord{144, 11, 32}, + dictWord{134, 0, 1076}, + dictWord{133, 0, 921}, + dictWord{133, 0, 674}, + dictWord{4, 11, 4}, + dictWord{7, 11, 1118}, + dictWord{7, 11, 1320}, + dictWord{7, 11, 1706}, + dictWord{8, 11, 277}, + dictWord{9, 11, 622}, + dictWord{10, 11, 9}, + dictWord{11, 11, 724}, + dictWord{12, 11, 350}, + dictWord{12, 11, 397}, + dictWord{13, 11, 28}, + dictWord{13, 11, 159}, + dictWord{15, 11, 89}, + dictWord{18, 11, 5}, + dictWord{19, 11, 9}, + dictWord{20, 11, 34}, + dictWord{150, 11, 47}, + dictWord{134, 10, 208}, + dictWord{6, 0, 444}, + dictWord{136, 0, 308}, + dictWord{ + 6, + 0, + 180, + }, + dictWord{7, 0, 1137}, + dictWord{8, 0, 751}, + dictWord{139, 0, 805}, + dictWord{4, 0, 183}, + dictWord{7, 0, 271}, + dictWord{11, 0, 824}, + dictWord{ + 11, + 0, + 952, + }, + dictWord{13, 0, 278}, + dictWord{13, 0, 339}, + dictWord{13, 0, 482}, + dictWord{14, 0, 424}, + dictWord{148, 0, 99}, + dictWord{7, 11, 317}, + dictWord{ + 135, + 11, + 569, + }, + dictWord{4, 0, 19}, + dictWord{5, 0, 477}, + dictWord{5, 0, 596}, + dictWord{6, 0, 505}, + dictWord{7, 0, 1221}, + dictWord{11, 0, 907}, + dictWord{12, 0, 209}, + dictWord{141, 0, 214}, + dictWord{135, 0, 1215}, + dictWord{6, 0, 271}, + dictWord{7, 0, 398}, + dictWord{8, 0, 387}, + dictWord{10, 0, 344}, + dictWord{7, 10, 448}, + dictWord{ + 7, + 10, + 1629, + }, + dictWord{7, 10, 1813}, + dictWord{8, 10, 442}, + dictWord{9, 10, 710}, + dictWord{10, 10, 282}, + dictWord{138, 10, 722}, + dictWord{11, 10, 844}, + dictWord{12, 10, 104}, + dictWord{140, 10, 625}, + dictWord{134, 11, 255}, + dictWord{133, 10, 787}, + dictWord{134, 0, 1645}, + dictWord{11, 11, 956}, + dictWord{ + 151, + 11, + 3, + }, + dictWord{6, 0, 92}, + dictWord{6, 0, 188}, + dictWord{7, 0, 209}, + dictWord{7, 0, 1269}, + dictWord{7, 0, 1524}, + dictWord{7, 0, 1876}, + dictWord{8, 0, 661}, + dictWord{10, 0, 42}, + dictWord{10, 0, 228}, + dictWord{11, 0, 58}, + dictWord{11, 0, 1020}, + dictWord{12, 0, 58}, + dictWord{12, 0, 118}, + dictWord{141, 0, 32}, + dictWord{ + 4, + 0, + 459, + }, + dictWord{133, 0, 966}, + dictWord{4, 11, 536}, + dictWord{7, 11, 1141}, + dictWord{10, 11, 723}, + dictWord{139, 11, 371}, + dictWord{140, 0, 330}, + dictWord{134, 0, 1557}, + dictWord{7, 11, 285}, + dictWord{135, 11, 876}, + dictWord{136, 10, 491}, + dictWord{135, 11, 560}, + dictWord{6, 0, 18}, + dictWord{7, 0, 179}, + dictWord{7, 0, 932}, + dictWord{8, 0, 548}, + dictWord{8, 0, 757}, + dictWord{9, 0, 54}, + dictWord{9, 0, 65}, + dictWord{9, 0, 532}, + dictWord{9, 0, 844}, + dictWord{10, 0, 113}, + dictWord{10, 0, 117}, + dictWord{10, 0, 315}, + dictWord{10, 0, 560}, + dictWord{10, 0, 622}, + dictWord{10, 0, 798}, + dictWord{11, 0, 153}, + dictWord{11, 0, 351}, + dictWord{ + 11, + 0, + 375, + }, + dictWord{12, 0, 78}, + dictWord{12, 0, 151}, + dictWord{12, 0, 392}, + dictWord{12, 0, 666}, + dictWord{14, 0, 248}, + dictWord{143, 0, 23}, + dictWord{ + 6, + 0, + 1742, + }, + dictWord{132, 11, 690}, + dictWord{4, 10, 403}, + dictWord{5, 10, 441}, + dictWord{7, 10, 450}, + dictWord{10, 10, 840}, + dictWord{11, 10, 101}, + dictWord{ + 12, + 10, + 193, + }, + dictWord{141, 10, 430}, + dictWord{133, 0, 965}, + dictWord{134, 0, 182}, + dictWord{10, 0, 65}, + dictWord{10, 0, 488}, + dictWord{138, 0, 497}, + dictWord{135, 11, 1346}, + dictWord{6, 0, 973}, + dictWord{6, 0, 1158}, + dictWord{10, 11, 200}, + dictWord{19, 11, 2}, + dictWord{151, 11, 22}, + dictWord{4, 11, 190}, + dictWord{133, 11, 554}, + dictWord{133, 10, 679}, + dictWord{7, 0, 328}, + dictWord{137, 10, 326}, + dictWord{133, 11, 1001}, + dictWord{9, 0, 588}, + dictWord{ + 138, + 0, + 260, + }, + dictWord{133, 11, 446}, + dictWord{135, 10, 1128}, + dictWord{135, 10, 1796}, + dictWord{147, 11, 119}, + dictWord{134, 0, 1786}, + dictWord{ + 6, + 0, + 1328, + }, + dictWord{6, 0, 1985}, + dictWord{8, 0, 962}, + dictWord{138, 0, 1017}, + dictWord{135, 0, 308}, + dictWord{11, 0, 508}, + dictWord{4, 10, 574}, + dictWord{ + 7, + 10, + 350, + }, + dictWord{7, 10, 1024}, + dictWord{8, 10, 338}, + dictWord{9, 10, 677}, + dictWord{138, 10, 808}, + dictWord{138, 11, 752}, + dictWord{135, 10, 1081}, + dictWord{137, 11, 96}, + dictWord{7, 10, 1676}, + dictWord{135, 10, 2037}, + dictWord{136, 0, 588}, + dictWord{132, 11, 304}, + dictWord{133, 0, 614}, + dictWord{ + 140, + 0, + 793, + }, + dictWord{136, 0, 287}, + dictWord{137, 10, 297}, + dictWord{141, 10, 37}, + dictWord{6, 11, 53}, + dictWord{6, 11, 199}, + dictWord{7, 11, 1408}, + dictWord{ + 8, + 11, + 32, + }, + dictWord{8, 11, 93}, + dictWord{9, 11, 437}, + dictWord{10, 11, 397}, + dictWord{10, 11, 629}, + dictWord{11, 11, 593}, + dictWord{11, 11, 763}, + dictWord{ + 13, + 11, + 326, + }, + dictWord{145, 11, 35}, + dictWord{134, 11, 105}, + dictWord{9, 11, 320}, + dictWord{10, 11, 506}, + dictWord{138, 11, 794}, + dictWord{5, 11, 114}, + dictWord{5, 11, 255}, + dictWord{141, 11, 285}, + dictWord{140, 0, 290}, + dictWord{7, 11, 2035}, + dictWord{8, 11, 19}, + dictWord{9, 11, 89}, + dictWord{138, 11, 831}, + dictWord{134, 0, 1136}, + dictWord{7, 0, 719}, + dictWord{8, 0, 796}, + dictWord{8, 0, 809}, + dictWord{8, 0, 834}, + dictWord{6, 10, 306}, + dictWord{7, 10, 1140}, + dictWord{ + 7, + 10, + 1340, + }, + dictWord{8, 10, 133}, + dictWord{138, 10, 449}, + dictWord{139, 10, 1011}, + dictWord{5, 0, 210}, + dictWord{6, 0, 213}, + dictWord{7, 0, 60}, + dictWord{ + 10, + 0, + 364, + }, + dictWord{139, 0, 135}, + dictWord{5, 0, 607}, + dictWord{8, 0, 326}, + dictWord{136, 0, 490}, + dictWord{138, 11, 176}, + dictWord{132, 0, 701}, + dictWord{ + 5, + 0, + 472, + }, + dictWord{7, 0, 380}, + dictWord{137, 0, 758}, + dictWord{135, 0, 1947}, + dictWord{6, 0, 1079}, + dictWord{138, 0, 278}, + dictWord{138, 11, 391}, + dictWord{ + 5, + 10, + 329, + }, + dictWord{8, 10, 260}, + dictWord{139, 11, 156}, + dictWord{4, 0, 386}, + dictWord{7, 0, 41}, + dictWord{8, 0, 405}, + dictWord{8, 0, 728}, + dictWord{9, 0, 497}, + dictWord{11, 0, 110}, + dictWord{11, 0, 360}, + dictWord{15, 0, 37}, + dictWord{144, 0, 84}, + dictWord{5, 0, 46}, + dictWord{7, 0, 1452}, + dictWord{7, 0, 1480}, + dictWord{ + 8, + 0, + 634, + }, + dictWord{140, 0, 472}, + dictWord{136, 0, 961}, + dictWord{4, 0, 524}, + dictWord{136, 0, 810}, + dictWord{10, 0, 238}, + dictWord{141, 0, 33}, + dictWord{ + 132, + 10, + 657, + }, + dictWord{152, 10, 7}, + dictWord{133, 0, 532}, + dictWord{5, 0, 997}, + dictWord{135, 10, 1665}, + dictWord{7, 11, 594}, + dictWord{7, 11, 851}, + dictWord{ + 7, + 11, + 1858, + }, + dictWord{9, 11, 411}, + dictWord{9, 11, 574}, + dictWord{9, 11, 666}, + dictWord{9, 11, 737}, + dictWord{10, 11, 346}, + dictWord{10, 11, 712}, + dictWord{ + 11, + 11, + 246, + }, + dictWord{11, 11, 432}, + dictWord{11, 11, 517}, + dictWord{11, 11, 647}, + dictWord{11, 11, 679}, + dictWord{11, 11, 727}, + dictWord{12, 11, 304}, + dictWord{12, 11, 305}, + dictWord{12, 11, 323}, + dictWord{12, 11, 483}, + dictWord{12, 11, 572}, + dictWord{12, 11, 593}, + dictWord{12, 11, 602}, + dictWord{ + 13, + 11, + 95, + }, + dictWord{13, 11, 101}, + dictWord{13, 11, 171}, + dictWord{13, 11, 315}, + dictWord{13, 11, 378}, + dictWord{13, 11, 425}, + dictWord{13, 11, 475}, + dictWord{ + 14, + 11, + 63, + }, + dictWord{14, 11, 380}, + dictWord{14, 11, 384}, + dictWord{15, 11, 133}, + dictWord{18, 11, 112}, + dictWord{148, 11, 72}, + dictWord{5, 11, 955}, + dictWord{136, 11, 814}, + dictWord{134, 0, 1301}, + dictWord{5, 10, 66}, + dictWord{7, 10, 1896}, + dictWord{136, 10, 288}, + dictWord{133, 11, 56}, + dictWord{ + 134, + 10, + 1643, + }, + dictWord{6, 0, 1298}, + dictWord{148, 11, 100}, + dictWord{5, 0, 782}, + dictWord{5, 0, 829}, + dictWord{6, 0, 671}, + dictWord{6, 0, 1156}, + dictWord{6, 0, 1738}, + dictWord{137, 11, 621}, + dictWord{4, 0, 306}, + dictWord{5, 0, 570}, + dictWord{7, 0, 1347}, + dictWord{5, 10, 91}, + dictWord{5, 10, 648}, + dictWord{5, 10, 750}, + dictWord{ + 5, + 10, + 781, + }, + dictWord{6, 10, 54}, + dictWord{6, 10, 112}, + dictWord{6, 10, 402}, + dictWord{6, 10, 1732}, + dictWord{7, 10, 315}, + dictWord{7, 10, 749}, + dictWord{ + 7, + 10, + 1900, + }, + dictWord{9, 10, 78}, + dictWord{9, 10, 508}, + dictWord{10, 10, 611}, + dictWord{10, 10, 811}, + dictWord{11, 10, 510}, + dictWord{11, 10, 728}, + dictWord{ + 13, + 10, + 36, + }, + dictWord{14, 10, 39}, + dictWord{16, 10, 83}, + dictWord{17, 10, 124}, + dictWord{148, 10, 30}, + dictWord{8, 10, 570}, + dictWord{9, 11, 477}, + dictWord{ + 141, + 11, + 78, + }, + dictWord{4, 11, 639}, + dictWord{10, 11, 4}, + dictWord{10, 10, 322}, + dictWord{10, 10, 719}, + dictWord{11, 10, 407}, + dictWord{11, 11, 638}, + dictWord{ + 12, + 11, + 177, + }, + dictWord{148, 11, 57}, + dictWord{7, 0, 1823}, + dictWord{139, 0, 693}, + dictWord{7, 0, 759}, + dictWord{5, 11, 758}, + dictWord{8, 10, 125}, + dictWord{ + 8, + 10, + 369, + }, + dictWord{8, 10, 524}, + dictWord{10, 10, 486}, + dictWord{11, 10, 13}, + dictWord{11, 10, 381}, + dictWord{11, 10, 736}, + dictWord{11, 10, 766}, + dictWord{ + 11, + 10, + 845, + }, + dictWord{13, 10, 114}, + dictWord{13, 10, 292}, + dictWord{142, 10, 47}, + dictWord{7, 0, 1932}, + dictWord{6, 10, 1684}, + dictWord{6, 10, 1731}, + dictWord{7, 10, 356}, + dictWord{8, 10, 54}, + dictWord{8, 10, 221}, + dictWord{9, 10, 225}, + dictWord{9, 10, 356}, + dictWord{10, 10, 77}, + dictWord{10, 10, 446}, + dictWord{ + 10, + 10, + 731, + }, + dictWord{12, 10, 404}, + dictWord{141, 10, 491}, + dictWord{135, 11, 552}, + dictWord{135, 11, 1112}, + dictWord{4, 0, 78}, + dictWord{5, 0, 96}, + dictWord{ + 5, + 0, + 182, + }, + dictWord{6, 0, 1257}, + dictWord{7, 0, 1724}, + dictWord{7, 0, 1825}, + dictWord{10, 0, 394}, + dictWord{10, 0, 471}, + dictWord{11, 0, 532}, + dictWord{ + 14, + 0, + 340, + }, + dictWord{145, 0, 88}, + dictWord{139, 11, 328}, + dictWord{135, 0, 1964}, + dictWord{132, 10, 411}, + dictWord{4, 10, 80}, + dictWord{5, 10, 44}, + dictWord{ + 137, + 11, + 133, + }, + dictWord{5, 11, 110}, + dictWord{6, 11, 169}, + dictWord{6, 11, 1702}, + dictWord{7, 11, 400}, + dictWord{8, 11, 538}, + dictWord{9, 11, 184}, + dictWord{ + 9, + 11, + 524, + }, + dictWord{140, 11, 218}, + dictWord{4, 0, 521}, + dictWord{5, 10, 299}, + dictWord{7, 10, 1083}, + dictWord{140, 11, 554}, + dictWord{6, 11, 133}, + dictWord{ + 9, + 11, + 353, + }, + dictWord{12, 11, 628}, + dictWord{146, 11, 79}, + dictWord{6, 0, 215}, + dictWord{7, 0, 584}, + dictWord{7, 0, 1028}, + dictWord{7, 0, 1473}, + dictWord{ + 7, + 0, + 1721, + }, + dictWord{9, 0, 424}, + dictWord{138, 0, 779}, + dictWord{7, 0, 857}, + dictWord{7, 0, 1209}, + dictWord{7, 10, 1713}, + dictWord{9, 10, 537}, + dictWord{ + 10, + 10, + 165, + }, + dictWord{12, 10, 219}, + dictWord{140, 10, 561}, + dictWord{4, 10, 219}, + dictWord{6, 11, 93}, + dictWord{7, 11, 1422}, + dictWord{7, 10, 1761}, + dictWord{ + 7, + 11, + 1851, + }, + dictWord{8, 11, 673}, + dictWord{9, 10, 86}, + dictWord{9, 11, 529}, + dictWord{140, 11, 43}, + dictWord{137, 11, 371}, + dictWord{136, 0, 671}, + dictWord{ + 5, + 0, + 328, + }, + dictWord{135, 0, 918}, + dictWord{132, 0, 529}, + dictWord{9, 11, 25}, + dictWord{10, 11, 467}, + dictWord{138, 11, 559}, + dictWord{4, 11, 335}, + dictWord{ + 135, + 11, + 942, + }, + dictWord{134, 0, 716}, + dictWord{134, 0, 1509}, + dictWord{6, 0, 67}, + dictWord{7, 0, 258}, + dictWord{7, 0, 1630}, + dictWord{9, 0, 354}, + dictWord{ + 9, + 0, + 675, + }, + dictWord{10, 0, 830}, + dictWord{14, 0, 80}, + dictWord{17, 0, 80}, + dictWord{140, 10, 428}, + dictWord{134, 0, 1112}, + dictWord{6, 0, 141}, + dictWord{7, 0, 225}, + dictWord{9, 0, 59}, + dictWord{9, 0, 607}, + dictWord{10, 0, 312}, + dictWord{11, 0, 687}, + dictWord{12, 0, 555}, + dictWord{13, 0, 373}, + dictWord{13, 0, 494}, + dictWord{ + 148, + 0, + 58, + }, + dictWord{133, 10, 514}, + dictWord{8, 11, 39}, + dictWord{10, 11, 773}, + dictWord{11, 11, 84}, + dictWord{12, 11, 205}, + dictWord{142, 11, 1}, + dictWord{ + 8, + 0, + 783, + }, + dictWord{5, 11, 601}, + dictWord{133, 11, 870}, + dictWord{136, 11, 594}, + dictWord{4, 10, 55}, + dictWord{5, 10, 301}, + dictWord{6, 10, 571}, + dictWord{ + 14, + 10, + 49, + }, + dictWord{146, 10, 102}, + dictWord{132, 11, 181}, + dictWord{134, 11, 1652}, + dictWord{133, 10, 364}, + dictWord{4, 11, 97}, + dictWord{5, 11, 147}, + dictWord{6, 11, 286}, + dictWord{7, 11, 1362}, + dictWord{141, 11, 176}, + dictWord{4, 10, 76}, + dictWord{7, 10, 1550}, + dictWord{9, 10, 306}, + dictWord{9, 10, 430}, + dictWord{9, 10, 663}, + dictWord{10, 10, 683}, + dictWord{11, 10, 427}, + dictWord{11, 10, 753}, + dictWord{12, 10, 334}, + dictWord{12, 10, 442}, + dictWord{ + 14, + 10, + 258, + }, + dictWord{14, 10, 366}, + dictWord{143, 10, 131}, + dictWord{137, 10, 52}, + dictWord{6, 0, 955}, + dictWord{134, 0, 1498}, + dictWord{6, 11, 375}, + dictWord{ + 7, + 11, + 169, + }, + dictWord{7, 11, 254}, + dictWord{136, 11, 780}, + dictWord{7, 0, 430}, + dictWord{11, 0, 46}, + dictWord{14, 0, 343}, + dictWord{142, 11, 343}, + dictWord{ + 135, + 0, + 1183, + }, + dictWord{5, 0, 602}, + dictWord{7, 0, 2018}, + dictWord{9, 0, 418}, + dictWord{9, 0, 803}, + dictWord{135, 11, 1447}, + dictWord{8, 0, 677}, + dictWord{ + 135, + 11, + 1044, + }, + dictWord{139, 11, 285}, + dictWord{4, 10, 656}, + dictWord{135, 10, 779}, + dictWord{135, 10, 144}, + dictWord{5, 11, 629}, + dictWord{ + 135, + 11, + 1549, + }, + dictWord{135, 10, 1373}, + dictWord{138, 11, 209}, + dictWord{7, 10, 554}, + dictWord{7, 10, 605}, + dictWord{141, 10, 10}, + dictWord{5, 10, 838}, + dictWord{ + 5, + 10, + 841, + }, + dictWord{134, 10, 1649}, + dictWord{133, 10, 1012}, + dictWord{6, 0, 1357}, + dictWord{134, 0, 1380}, + dictWord{144, 0, 53}, + dictWord{6, 0, 590}, + dictWord{7, 10, 365}, + dictWord{7, 10, 1357}, + dictWord{7, 10, 1497}, + dictWord{8, 10, 154}, + dictWord{141, 10, 281}, + dictWord{133, 10, 340}, + dictWord{ + 132, + 11, + 420, + }, + dictWord{135, 0, 329}, + dictWord{147, 11, 32}, + dictWord{4, 0, 469}, + dictWord{10, 11, 429}, + dictWord{139, 10, 495}, + dictWord{8, 10, 261}, + dictWord{ + 9, + 10, + 144, + }, + dictWord{9, 10, 466}, + dictWord{10, 10, 370}, + dictWord{12, 10, 470}, + dictWord{13, 10, 144}, + dictWord{142, 10, 348}, + dictWord{142, 0, 460}, + dictWord{4, 11, 325}, + dictWord{9, 10, 897}, + dictWord{138, 11, 125}, + dictWord{6, 0, 1743}, + dictWord{6, 10, 248}, + dictWord{9, 10, 546}, + dictWord{10, 10, 535}, + dictWord{11, 10, 681}, + dictWord{141, 10, 135}, + dictWord{4, 0, 990}, + dictWord{5, 0, 929}, + dictWord{6, 0, 340}, + dictWord{8, 0, 376}, + dictWord{8, 0, 807}, + dictWord{ + 8, + 0, + 963, + }, + dictWord{8, 0, 980}, + dictWord{138, 0, 1007}, + dictWord{134, 0, 1603}, + dictWord{140, 0, 250}, + dictWord{4, 11, 714}, + dictWord{133, 11, 469}, + dictWord{134, 10, 567}, + dictWord{136, 10, 445}, + dictWord{5, 0, 218}, + dictWord{7, 0, 1610}, + dictWord{8, 0, 646}, + dictWord{10, 0, 83}, + dictWord{11, 11, 138}, + dictWord{140, 11, 40}, + dictWord{7, 0, 1512}, + dictWord{135, 0, 1794}, + dictWord{135, 11, 1216}, + dictWord{11, 0, 0}, + dictWord{16, 0, 78}, + dictWord{132, 11, 718}, + dictWord{133, 0, 571}, + dictWord{132, 0, 455}, + dictWord{134, 0, 1012}, + dictWord{5, 11, 124}, + dictWord{5, 11, 144}, + dictWord{6, 11, 548}, + dictWord{7, 11, 15}, + dictWord{7, 11, 153}, + dictWord{137, 11, 629}, + dictWord{142, 11, 10}, + dictWord{6, 11, 75}, + dictWord{7, 11, 1531}, + dictWord{8, 11, 416}, + dictWord{9, 11, 240}, + dictWord{9, 11, 275}, + dictWord{10, 11, 100}, + dictWord{11, 11, 658}, + dictWord{11, 11, 979}, + dictWord{12, 11, 86}, + dictWord{13, 11, 468}, + dictWord{14, 11, 66}, + dictWord{14, 11, 207}, + dictWord{15, 11, 20}, + dictWord{15, 11, 25}, + dictWord{144, 11, 58}, + dictWord{132, 10, 577}, + dictWord{5, 11, 141}, + dictWord{ + 5, + 11, + 915, + }, + dictWord{6, 11, 1783}, + dictWord{7, 11, 211}, + dictWord{7, 11, 698}, + dictWord{7, 11, 1353}, + dictWord{9, 11, 83}, + dictWord{9, 11, 281}, + dictWord{ + 10, + 11, + 376, + }, + dictWord{10, 11, 431}, + dictWord{11, 11, 543}, + dictWord{12, 11, 664}, + dictWord{13, 11, 280}, + dictWord{13, 11, 428}, + dictWord{14, 11, 61}, + dictWord{ + 14, + 11, + 128, + }, + dictWord{17, 11, 52}, + dictWord{145, 11, 81}, + dictWord{6, 0, 161}, + dictWord{7, 0, 372}, + dictWord{137, 0, 597}, + dictWord{132, 0, 349}, + dictWord{ + 10, + 11, + 702, + }, + dictWord{139, 11, 245}, + dictWord{134, 0, 524}, + dictWord{134, 10, 174}, + dictWord{6, 0, 432}, + dictWord{9, 0, 751}, + dictWord{139, 0, 322}, + dictWord{147, 11, 94}, + dictWord{4, 11, 338}, + dictWord{133, 11, 400}, + dictWord{5, 0, 468}, + dictWord{10, 0, 325}, + dictWord{11, 0, 856}, + dictWord{12, 0, 345}, + dictWord{143, 0, 104}, + dictWord{133, 0, 223}, + dictWord{132, 0, 566}, + dictWord{4, 11, 221}, + dictWord{5, 11, 659}, + dictWord{5, 11, 989}, + dictWord{7, 11, 697}, + dictWord{7, 11, 1211}, + dictWord{138, 11, 284}, + dictWord{135, 11, 1070}, + dictWord{4, 0, 59}, + dictWord{135, 0, 1394}, + dictWord{6, 0, 436}, + dictWord{11, 0, 481}, + dictWord{5, 10, 878}, + dictWord{133, 10, 972}, + dictWord{4, 0, 48}, + dictWord{5, 0, 271}, + dictWord{135, 0, 953}, + dictWord{5, 0, 610}, + dictWord{136, 0, 457}, + dictWord{ + 4, + 0, + 773, + }, + dictWord{5, 0, 618}, + dictWord{137, 0, 756}, + dictWord{133, 0, 755}, + dictWord{135, 0, 1217}, + dictWord{138, 11, 507}, + dictWord{132, 10, 351}, + dictWord{132, 0, 197}, + dictWord{143, 11, 78}, + dictWord{4, 11, 188}, + dictWord{7, 11, 805}, + dictWord{11, 11, 276}, + dictWord{142, 11, 293}, + dictWord{ + 5, + 11, + 884, + }, + dictWord{139, 11, 991}, + dictWord{132, 10, 286}, + dictWord{10, 0, 259}, + dictWord{10, 0, 428}, + dictWord{7, 10, 438}, + dictWord{7, 10, 627}, + dictWord{ + 7, + 10, + 1516, + }, + dictWord{8, 10, 40}, + dictWord{9, 10, 56}, + dictWord{9, 10, 294}, + dictWord{11, 10, 969}, + dictWord{11, 10, 995}, + dictWord{146, 10, 148}, + dictWord{ + 4, + 0, + 356, + }, + dictWord{5, 0, 217}, + dictWord{5, 0, 492}, + dictWord{5, 0, 656}, + dictWord{8, 0, 544}, + dictWord{136, 11, 544}, + dictWord{5, 0, 259}, + dictWord{6, 0, 1230}, + dictWord{7, 0, 414}, + dictWord{7, 0, 854}, + dictWord{142, 0, 107}, + dictWord{132, 0, 1007}, + dictWord{15, 0, 14}, + dictWord{144, 0, 5}, + dictWord{6, 0, 1580}, + dictWord{ + 132, + 10, + 738, + }, + dictWord{132, 11, 596}, + dictWord{132, 0, 673}, + dictWord{133, 10, 866}, + dictWord{6, 0, 1843}, + dictWord{135, 11, 1847}, + dictWord{4, 0, 165}, + dictWord{7, 0, 1398}, + dictWord{135, 0, 1829}, + dictWord{135, 11, 1634}, + dictWord{147, 11, 65}, + dictWord{6, 0, 885}, + dictWord{6, 0, 1009}, + dictWord{ + 137, + 0, + 809, + }, + dictWord{133, 10, 116}, + dictWord{132, 10, 457}, + dictWord{136, 11, 770}, + dictWord{9, 0, 498}, + dictWord{12, 0, 181}, + dictWord{10, 11, 361}, + dictWord{142, 11, 316}, + dictWord{134, 11, 595}, + dictWord{5, 0, 9}, + dictWord{7, 0, 297}, + dictWord{7, 0, 966}, + dictWord{140, 0, 306}, + dictWord{4, 11, 89}, + dictWord{ + 5, + 11, + 489, + }, + dictWord{6, 11, 315}, + dictWord{7, 11, 553}, + dictWord{7, 11, 1745}, + dictWord{138, 11, 243}, + dictWord{134, 0, 1487}, + dictWord{132, 0, 437}, + dictWord{ + 5, + 0, + 146, + }, + dictWord{6, 0, 411}, + dictWord{138, 0, 721}, + dictWord{5, 10, 527}, + dictWord{6, 10, 189}, + dictWord{135, 10, 859}, + dictWord{11, 10, 104}, + dictWord{ + 11, + 10, + 554, + }, + dictWord{15, 10, 60}, + dictWord{143, 10, 125}, + dictWord{6, 11, 1658}, + dictWord{9, 11, 3}, + dictWord{10, 11, 154}, + dictWord{11, 11, 641}, + dictWord{13, 11, 85}, + dictWord{13, 11, 201}, + dictWord{141, 11, 346}, + dictWord{6, 0, 177}, + dictWord{135, 0, 467}, + dictWord{134, 0, 1377}, + dictWord{ + 134, + 10, + 116, + }, + dictWord{136, 11, 645}, + dictWord{4, 11, 166}, + dictWord{5, 11, 505}, + dictWord{6, 11, 1670}, + dictWord{137, 11, 110}, + dictWord{133, 10, 487}, + dictWord{ + 4, + 10, + 86, + }, + dictWord{5, 10, 667}, + dictWord{5, 10, 753}, + dictWord{6, 10, 316}, + dictWord{6, 10, 455}, + dictWord{135, 10, 946}, + dictWord{133, 0, 200}, + dictWord{132, 0, 959}, + dictWord{6, 0, 1928}, + dictWord{134, 0, 1957}, + dictWord{139, 11, 203}, + dictWord{150, 10, 45}, + dictWord{4, 10, 79}, + dictWord{7, 10, 1773}, + dictWord{10, 10, 450}, + dictWord{11, 10, 589}, + dictWord{13, 10, 332}, + dictWord{13, 10, 493}, + dictWord{14, 10, 183}, + dictWord{14, 10, 334}, + dictWord{ + 14, + 10, + 362, + }, + dictWord{14, 10, 368}, + dictWord{14, 10, 376}, + dictWord{14, 10, 379}, + dictWord{19, 10, 90}, + dictWord{19, 10, 103}, + dictWord{19, 10, 127}, + dictWord{148, 10, 90}, + dictWord{6, 0, 1435}, + dictWord{135, 11, 1275}, + dictWord{134, 0, 481}, + dictWord{7, 11, 445}, + dictWord{8, 11, 307}, + dictWord{8, 11, 704}, + dictWord{10, 11, 41}, + dictWord{10, 11, 439}, + dictWord{11, 11, 237}, + dictWord{11, 11, 622}, + dictWord{140, 11, 201}, + dictWord{135, 11, 869}, + dictWord{ + 4, + 0, + 84, + }, + dictWord{7, 0, 1482}, + dictWord{10, 0, 76}, + dictWord{138, 0, 142}, + dictWord{11, 11, 277}, + dictWord{144, 11, 14}, + dictWord{135, 11, 1977}, + dictWord{ + 4, + 11, + 189, + }, + dictWord{5, 11, 713}, + dictWord{136, 11, 57}, + dictWord{133, 0, 1015}, + dictWord{138, 11, 371}, + dictWord{4, 0, 315}, + dictWord{5, 0, 507}, + dictWord{ + 135, + 0, + 1370, + }, + dictWord{4, 11, 552}, + dictWord{142, 10, 381}, + dictWord{9, 0, 759}, + dictWord{16, 0, 31}, + dictWord{16, 0, 39}, + dictWord{16, 0, 75}, + dictWord{18, 0, 24}, + dictWord{20, 0, 42}, + dictWord{152, 0, 1}, + dictWord{134, 0, 712}, + dictWord{134, 0, 1722}, + dictWord{133, 10, 663}, + dictWord{133, 10, 846}, + dictWord{ + 8, + 0, + 222, + }, + dictWord{8, 0, 476}, + dictWord{9, 0, 238}, + dictWord{11, 0, 516}, + dictWord{11, 0, 575}, + dictWord{15, 0, 109}, + dictWord{146, 0, 100}, + dictWord{7, 0, 1402}, + dictWord{7, 0, 1414}, + dictWord{12, 0, 456}, + dictWord{5, 10, 378}, + dictWord{8, 10, 465}, + dictWord{9, 10, 286}, + dictWord{10, 10, 185}, + dictWord{10, 10, 562}, + dictWord{10, 10, 635}, + dictWord{11, 10, 31}, + dictWord{11, 10, 393}, + dictWord{13, 10, 312}, + dictWord{18, 10, 65}, + dictWord{18, 10, 96}, + dictWord{147, 10, 89}, + dictWord{4, 0, 986}, + dictWord{6, 0, 1958}, + dictWord{6, 0, 2032}, + dictWord{8, 0, 934}, + dictWord{138, 0, 985}, + dictWord{7, 10, 1880}, + dictWord{9, 10, 680}, + dictWord{139, 10, 798}, + dictWord{134, 10, 1770}, + dictWord{145, 11, 49}, + dictWord{132, 11, 614}, + dictWord{132, 10, 648}, + dictWord{5, 10, 945}, + dictWord{ + 6, + 10, + 1656, + }, + dictWord{6, 10, 1787}, + dictWord{7, 10, 167}, + dictWord{8, 10, 824}, + dictWord{9, 10, 391}, + dictWord{10, 10, 375}, + dictWord{139, 10, 185}, + dictWord{138, 11, 661}, + dictWord{7, 0, 1273}, + dictWord{135, 11, 1945}, + dictWord{7, 0, 706}, + dictWord{7, 0, 1058}, + dictWord{138, 0, 538}, + dictWord{7, 10, 1645}, + dictWord{8, 10, 352}, + dictWord{137, 10, 249}, + dictWord{132, 10, 152}, + dictWord{11, 0, 92}, + dictWord{11, 0, 196}, + dictWord{11, 0, 409}, + dictWord{11, 0, 450}, + dictWord{11, 0, 666}, + dictWord{11, 0, 777}, + dictWord{12, 0, 262}, + dictWord{13, 0, 385}, + dictWord{13, 0, 393}, + dictWord{15, 0, 115}, + dictWord{16, 0, 45}, + dictWord{145, 0, 82}, + dictWord{133, 10, 1006}, + dictWord{6, 0, 40}, + dictWord{135, 0, 1781}, + dictWord{9, 11, 614}, + dictWord{139, 11, 327}, + dictWord{5, 10, 420}, + dictWord{135, 10, 1449}, + dictWord{135, 0, 431}, + dictWord{10, 0, 97}, + dictWord{135, 10, 832}, + dictWord{6, 0, 423}, + dictWord{7, 0, 665}, + dictWord{ + 135, + 0, + 1210, + }, + dictWord{7, 0, 237}, + dictWord{8, 0, 664}, + dictWord{9, 0, 42}, + dictWord{9, 0, 266}, + dictWord{9, 0, 380}, + dictWord{9, 0, 645}, + dictWord{10, 0, 177}, + dictWord{ + 138, + 0, + 276, + }, + dictWord{7, 0, 264}, + dictWord{133, 10, 351}, + dictWord{8, 0, 213}, + dictWord{5, 10, 40}, + dictWord{7, 10, 598}, + dictWord{7, 10, 1638}, + dictWord{ + 9, + 10, + 166, + }, + dictWord{9, 10, 640}, + dictWord{9, 10, 685}, + dictWord{9, 10, 773}, + dictWord{11, 10, 215}, + dictWord{13, 10, 65}, + dictWord{14, 10, 172}, + dictWord{ + 14, + 10, + 317, + }, + dictWord{145, 10, 6}, + dictWord{5, 11, 84}, + dictWord{134, 11, 163}, + dictWord{8, 10, 60}, + dictWord{9, 10, 343}, + dictWord{139, 10, 769}, + dictWord{ + 137, + 0, + 455, + }, + dictWord{133, 11, 410}, + dictWord{8, 0, 906}, + dictWord{12, 0, 700}, + dictWord{12, 0, 706}, + dictWord{140, 0, 729}, + dictWord{21, 11, 33}, + dictWord{ + 150, + 11, + 40, + }, + dictWord{7, 10, 1951}, + dictWord{8, 10, 765}, + dictWord{8, 10, 772}, + dictWord{140, 10, 671}, + dictWord{7, 10, 108}, + dictWord{8, 10, 219}, + dictWord{ + 8, + 10, + 388, + }, + dictWord{9, 10, 639}, + dictWord{9, 10, 775}, + dictWord{11, 10, 275}, + dictWord{140, 10, 464}, + dictWord{5, 11, 322}, + dictWord{7, 11, 1941}, + dictWord{ + 8, + 11, + 186, + }, + dictWord{9, 11, 262}, + dictWord{10, 11, 187}, + dictWord{14, 11, 208}, + dictWord{146, 11, 130}, + dictWord{139, 0, 624}, + dictWord{8, 0, 574}, + dictWord{ + 5, + 11, + 227, + }, + dictWord{140, 11, 29}, + dictWord{7, 11, 1546}, + dictWord{11, 11, 299}, + dictWord{142, 11, 407}, + dictWord{5, 10, 15}, + dictWord{6, 10, 56}, + dictWord{ + 7, + 10, + 1758, + }, + dictWord{8, 10, 500}, + dictWord{9, 10, 730}, + dictWord{11, 10, 331}, + dictWord{13, 10, 150}, + dictWord{142, 10, 282}, + dictWord{7, 11, 1395}, + dictWord{8, 11, 486}, + dictWord{9, 11, 236}, + dictWord{9, 11, 878}, + dictWord{10, 11, 218}, + dictWord{11, 11, 95}, + dictWord{19, 11, 17}, + dictWord{147, 11, 31}, + dictWord{135, 11, 2043}, + dictWord{4, 0, 354}, + dictWord{146, 11, 4}, + dictWord{140, 11, 80}, + dictWord{135, 0, 1558}, + dictWord{134, 10, 1886}, + dictWord{ + 5, + 10, + 205, + }, + dictWord{6, 10, 438}, + dictWord{137, 10, 711}, + dictWord{133, 11, 522}, + dictWord{133, 10, 534}, + dictWord{7, 0, 235}, + dictWord{7, 0, 1475}, + dictWord{ + 15, + 0, + 68, + }, + dictWord{146, 0, 120}, + dictWord{137, 10, 691}, + dictWord{4, 0, 942}, + dictWord{6, 0, 1813}, + dictWord{8, 0, 917}, + dictWord{10, 0, 884}, + dictWord{ + 12, + 0, + 696, + }, + dictWord{12, 0, 717}, + dictWord{12, 0, 723}, + dictWord{12, 0, 738}, + dictWord{12, 0, 749}, + dictWord{12, 0, 780}, + dictWord{16, 0, 97}, + dictWord{146, 0, 169}, + dictWord{6, 10, 443}, + dictWord{8, 11, 562}, + dictWord{9, 10, 237}, + dictWord{9, 10, 571}, + dictWord{9, 10, 695}, + dictWord{10, 10, 139}, + dictWord{11, 10, 715}, + dictWord{12, 10, 417}, + dictWord{141, 10, 421}, + dictWord{135, 0, 957}, + dictWord{133, 0, 830}, + dictWord{134, 11, 1771}, + dictWord{146, 0, 23}, + dictWord{ + 5, + 0, + 496, + }, + dictWord{6, 0, 694}, + dictWord{7, 0, 203}, + dictWord{7, 11, 1190}, + dictWord{137, 11, 620}, + dictWord{137, 11, 132}, + dictWord{6, 0, 547}, + dictWord{ + 134, + 0, + 1549, + }, + dictWord{8, 11, 258}, + dictWord{9, 11, 208}, + dictWord{137, 11, 359}, + dictWord{4, 0, 864}, + dictWord{5, 0, 88}, + dictWord{137, 0, 239}, + dictWord{ + 135, + 11, + 493, + }, + dictWord{4, 11, 317}, + dictWord{135, 11, 1279}, + dictWord{132, 11, 477}, + dictWord{4, 10, 578}, + dictWord{5, 11, 63}, + dictWord{133, 11, 509}, + dictWord{ + 7, + 0, + 650, + }, + dictWord{135, 0, 1310}, + dictWord{7, 0, 1076}, + dictWord{9, 0, 80}, + dictWord{11, 0, 78}, + dictWord{11, 0, 421}, + dictWord{11, 0, 534}, + dictWord{ + 140, + 0, + 545, + }, + dictWord{132, 11, 288}, + dictWord{12, 0, 553}, + dictWord{14, 0, 118}, + dictWord{133, 10, 923}, + dictWord{7, 0, 274}, + dictWord{11, 0, 479}, + dictWord{ + 139, + 0, + 507, + }, + dictWord{8, 11, 89}, + dictWord{8, 11, 620}, + dictWord{9, 11, 49}, + dictWord{10, 11, 774}, + dictWord{11, 11, 628}, + dictWord{12, 11, 322}, + dictWord{ + 143, + 11, + 124, + }, + dictWord{4, 0, 497}, + dictWord{135, 0, 1584}, + dictWord{7, 0, 261}, + dictWord{7, 0, 1115}, + dictWord{7, 0, 1354}, + dictWord{7, 0, 1404}, + dictWord{ + 7, + 0, + 1588, + }, + dictWord{7, 0, 1705}, + dictWord{7, 0, 1902}, + dictWord{9, 0, 465}, + dictWord{10, 0, 248}, + dictWord{10, 0, 349}, + dictWord{10, 0, 647}, + dictWord{11, 0, 527}, + dictWord{11, 0, 660}, + dictWord{11, 0, 669}, + dictWord{12, 0, 529}, + dictWord{13, 0, 305}, + dictWord{132, 10, 924}, + dictWord{133, 10, 665}, + dictWord{ + 136, + 0, + 13, + }, + dictWord{6, 0, 791}, + dictWord{138, 11, 120}, + dictWord{7, 0, 642}, + dictWord{8, 0, 250}, + dictWord{11, 0, 123}, + dictWord{11, 0, 137}, + dictWord{13, 0, 48}, + dictWord{142, 0, 95}, + dictWord{4, 10, 265}, + dictWord{7, 10, 807}, + dictWord{135, 10, 950}, + dictWord{5, 10, 93}, + dictWord{140, 10, 267}, + dictWord{135, 0, 1429}, + dictWord{4, 0, 949}, + dictWord{10, 0, 885}, + dictWord{10, 0, 891}, + dictWord{10, 0, 900}, + dictWord{10, 0, 939}, + dictWord{12, 0, 760}, + dictWord{142, 0, 449}, + dictWord{139, 11, 366}, + dictWord{132, 0, 818}, + dictWord{134, 11, 85}, + dictWord{135, 10, 994}, + dictWord{7, 0, 330}, + dictWord{5, 10, 233}, + dictWord{5, 10, 320}, + dictWord{6, 10, 140}, + dictWord{136, 10, 295}, + dictWord{4, 0, 1004}, + dictWord{8, 0, 982}, + dictWord{136, 0, 993}, + dictWord{133, 10, 978}, + dictWord{4, 10, 905}, + dictWord{6, 10, 1701}, + dictWord{137, 10, 843}, + dictWord{10, 0, 545}, + dictWord{140, 0, 301}, + dictWord{6, 0, 947}, + dictWord{134, 0, 1062}, + dictWord{ + 134, + 0, + 1188, + }, + dictWord{4, 0, 904}, + dictWord{5, 0, 794}, + dictWord{152, 10, 6}, + dictWord{134, 0, 1372}, + dictWord{135, 11, 608}, + dictWord{5, 11, 279}, + dictWord{ + 6, + 11, + 235, + }, + dictWord{7, 11, 468}, + dictWord{8, 11, 446}, + dictWord{9, 11, 637}, + dictWord{10, 11, 717}, + dictWord{11, 11, 738}, + dictWord{140, 11, 514}, + dictWord{ + 132, + 10, + 509, + }, + dictWord{5, 11, 17}, + dictWord{6, 11, 371}, + dictWord{137, 11, 528}, + dictWord{132, 0, 693}, + dictWord{4, 11, 115}, + dictWord{5, 11, 669}, + dictWord{ + 6, + 11, + 407, + }, + dictWord{8, 11, 311}, + dictWord{11, 11, 10}, + dictWord{141, 11, 5}, + dictWord{11, 0, 377}, + dictWord{7, 10, 273}, + dictWord{137, 11, 381}, + dictWord{ + 135, + 0, + 695, + }, + dictWord{7, 0, 386}, + dictWord{138, 0, 713}, + dictWord{135, 10, 1041}, + dictWord{134, 0, 1291}, + dictWord{6, 0, 7}, + dictWord{6, 0, 35}, + dictWord{ + 7, + 0, + 147, + }, + dictWord{7, 0, 1069}, + dictWord{7, 0, 1568}, + dictWord{7, 0, 1575}, + dictWord{7, 0, 1917}, + dictWord{8, 0, 43}, + dictWord{8, 0, 208}, + dictWord{9, 0, 128}, + dictWord{ + 9, + 0, + 866, + }, + dictWord{10, 0, 20}, + dictWord{11, 0, 981}, + dictWord{147, 0, 33}, + dictWord{7, 0, 893}, + dictWord{141, 0, 424}, + dictWord{139, 10, 234}, + dictWord{ + 150, + 11, + 56, + }, + dictWord{5, 11, 779}, + dictWord{5, 11, 807}, + dictWord{6, 11, 1655}, + dictWord{134, 11, 1676}, + dictWord{5, 10, 802}, + dictWord{7, 10, 2021}, + dictWord{136, 10, 805}, + dictWord{4, 11, 196}, + dictWord{5, 10, 167}, + dictWord{5, 11, 558}, + dictWord{5, 10, 899}, + dictWord{5, 11, 949}, + dictWord{6, 10, 410}, + dictWord{137, 10, 777}, + dictWord{137, 10, 789}, + dictWord{134, 10, 1705}, + dictWord{8, 0, 904}, + dictWord{140, 0, 787}, + dictWord{6, 0, 322}, + dictWord{9, 0, 552}, + dictWord{11, 0, 274}, + dictWord{13, 0, 209}, + dictWord{13, 0, 499}, + dictWord{14, 0, 85}, + dictWord{15, 0, 126}, + dictWord{145, 0, 70}, + dictWord{135, 10, 10}, + dictWord{ + 5, + 10, + 11, + }, + dictWord{6, 10, 117}, + dictWord{6, 10, 485}, + dictWord{7, 10, 1133}, + dictWord{9, 10, 582}, + dictWord{9, 10, 594}, + dictWord{11, 10, 21}, + dictWord{ + 11, + 10, + 818, + }, + dictWord{12, 10, 535}, + dictWord{141, 10, 86}, + dictWord{4, 10, 264}, + dictWord{7, 10, 1067}, + dictWord{8, 10, 204}, + dictWord{8, 10, 385}, + dictWord{139, 10, 953}, + dictWord{132, 11, 752}, + dictWord{138, 10, 56}, + dictWord{133, 10, 470}, + dictWord{6, 0, 1808}, + dictWord{8, 0, 83}, + dictWord{8, 0, 742}, + dictWord{8, 0, 817}, + dictWord{9, 0, 28}, + dictWord{9, 0, 29}, + dictWord{9, 0, 885}, + dictWord{10, 0, 387}, + dictWord{11, 0, 633}, + dictWord{11, 0, 740}, + dictWord{13, 0, 235}, + dictWord{13, 0, 254}, + dictWord{15, 0, 143}, + dictWord{143, 0, 146}, + dictWord{140, 0, 49}, + dictWord{134, 0, 1832}, + dictWord{4, 11, 227}, + dictWord{5, 11, 159}, + dictWord{5, 11, 409}, + dictWord{7, 11, 80}, + dictWord{10, 11, 294}, + dictWord{10, 11, 479}, + dictWord{12, 11, 418}, + dictWord{14, 11, 50}, + dictWord{14, 11, 249}, + dictWord{142, 11, 295}, + dictWord{7, 11, 1470}, + dictWord{8, 11, 66}, + dictWord{8, 11, 137}, + dictWord{8, 11, 761}, + dictWord{9, 11, 638}, + dictWord{11, 11, 80}, + dictWord{11, 11, 212}, + dictWord{11, 11, 368}, + dictWord{11, 11, 418}, + dictWord{12, 11, 8}, + dictWord{13, 11, 15}, + dictWord{16, 11, 61}, + dictWord{17, 11, 59}, + dictWord{19, 11, 28}, + dictWord{148, 11, 84}, + dictWord{139, 10, 1015}, + dictWord{138, 11, 468}, + dictWord{135, 0, 421}, + dictWord{6, 0, 415}, + dictWord{ + 7, + 0, + 1049, + }, + dictWord{137, 0, 442}, + dictWord{6, 11, 38}, + dictWord{7, 11, 1220}, + dictWord{8, 11, 185}, + dictWord{8, 11, 256}, + dictWord{9, 11, 22}, + dictWord{ + 9, + 11, + 331, + }, + dictWord{10, 11, 738}, + dictWord{11, 11, 205}, + dictWord{11, 11, 540}, + dictWord{11, 11, 746}, + dictWord{13, 11, 399}, + dictWord{13, 11, 465}, + dictWord{ + 14, + 11, + 88, + }, + dictWord{142, 11, 194}, + dictWord{139, 0, 289}, + dictWord{133, 10, 715}, + dictWord{4, 0, 110}, + dictWord{10, 0, 415}, + dictWord{10, 0, 597}, + dictWord{142, 0, 206}, + dictWord{4, 11, 159}, + dictWord{6, 11, 115}, + dictWord{7, 11, 252}, + dictWord{7, 11, 257}, + dictWord{7, 11, 1928}, + dictWord{8, 11, 69}, + dictWord{ + 9, + 11, + 384, + }, + dictWord{10, 11, 91}, + dictWord{10, 11, 615}, + dictWord{12, 11, 375}, + dictWord{14, 11, 235}, + dictWord{18, 11, 117}, + dictWord{147, 11, 123}, + dictWord{5, 11, 911}, + dictWord{136, 11, 278}, + dictWord{7, 0, 205}, + dictWord{7, 0, 2000}, + dictWord{8, 10, 794}, + dictWord{9, 10, 400}, + dictWord{10, 10, 298}, + dictWord{142, 10, 228}, + dictWord{135, 11, 1774}, + dictWord{4, 11, 151}, + dictWord{7, 11, 1567}, + dictWord{8, 11, 351}, + dictWord{137, 11, 322}, + dictWord{ + 136, + 10, + 724, + }, + dictWord{133, 11, 990}, + dictWord{7, 0, 1539}, + dictWord{11, 0, 512}, + dictWord{13, 0, 205}, + dictWord{19, 0, 30}, + dictWord{22, 0, 36}, + dictWord{23, 0, 19}, + dictWord{135, 11, 1539}, + dictWord{5, 11, 194}, + dictWord{7, 11, 1662}, + dictWord{9, 11, 90}, + dictWord{140, 11, 180}, + dictWord{6, 10, 190}, + dictWord{ + 7, + 10, + 768, + }, + dictWord{135, 10, 1170}, + dictWord{134, 0, 1340}, + dictWord{4, 0, 283}, + dictWord{135, 0, 1194}, + dictWord{133, 11, 425}, + dictWord{133, 11, 971}, + dictWord{12, 0, 549}, + dictWord{14, 10, 67}, + dictWord{147, 10, 60}, + dictWord{135, 10, 1023}, + dictWord{134, 0, 1720}, + dictWord{138, 11, 587}, + dictWord{ + 5, + 11, + 72, + }, + dictWord{6, 11, 264}, + dictWord{7, 11, 21}, + dictWord{7, 11, 46}, + dictWord{7, 11, 2013}, + dictWord{8, 11, 215}, + dictWord{8, 11, 513}, + dictWord{10, 11, 266}, + dictWord{139, 11, 22}, + dictWord{5, 0, 319}, + dictWord{135, 0, 534}, + dictWord{6, 10, 137}, + dictWord{9, 10, 75}, + dictWord{9, 10, 253}, + dictWord{10, 10, 194}, + dictWord{138, 10, 444}, + dictWord{7, 0, 1180}, + dictWord{20, 0, 112}, + dictWord{6, 11, 239}, + dictWord{7, 11, 118}, + dictWord{10, 11, 95}, + dictWord{11, 11, 603}, + dictWord{13, 11, 443}, + dictWord{14, 11, 160}, + dictWord{143, 11, 4}, + dictWord{134, 11, 431}, + dictWord{5, 11, 874}, + dictWord{6, 11, 1677}, + dictWord{ + 11, + 10, + 643, + }, + dictWord{12, 10, 115}, + dictWord{143, 11, 0}, + dictWord{134, 0, 967}, + dictWord{6, 11, 65}, + dictWord{7, 11, 939}, + dictWord{7, 11, 1172}, + dictWord{ + 7, + 11, + 1671, + }, + dictWord{9, 11, 540}, + dictWord{10, 11, 696}, + dictWord{11, 11, 265}, + dictWord{11, 11, 732}, + dictWord{11, 11, 928}, + dictWord{11, 11, 937}, + dictWord{ + 12, + 11, + 399, + }, + dictWord{13, 11, 438}, + dictWord{149, 11, 19}, + dictWord{137, 11, 200}, + dictWord{135, 0, 1940}, + dictWord{5, 10, 760}, + dictWord{7, 10, 542}, + dictWord{8, 10, 135}, + dictWord{136, 10, 496}, + dictWord{140, 11, 44}, + dictWord{7, 11, 1655}, + dictWord{136, 11, 305}, + dictWord{7, 10, 319}, + dictWord{ + 7, + 10, + 355, + }, + dictWord{7, 10, 763}, + dictWord{10, 10, 389}, + dictWord{145, 10, 43}, + dictWord{136, 0, 735}, + dictWord{138, 10, 786}, + dictWord{137, 11, 19}, + dictWord{132, 11, 696}, + dictWord{5, 0, 132}, + dictWord{9, 0, 486}, + dictWord{9, 0, 715}, + dictWord{10, 0, 458}, + dictWord{11, 0, 373}, + dictWord{11, 0, 668}, + dictWord{ + 11, + 0, + 795, + }, + dictWord{11, 0, 897}, + dictWord{12, 0, 272}, + dictWord{12, 0, 424}, + dictWord{12, 0, 539}, + dictWord{12, 0, 558}, + dictWord{14, 0, 245}, + dictWord{ + 14, + 0, + 263, + }, + dictWord{14, 0, 264}, + dictWord{14, 0, 393}, + dictWord{142, 0, 403}, + dictWord{10, 0, 38}, + dictWord{139, 0, 784}, + dictWord{132, 0, 838}, + dictWord{ + 4, + 11, + 302, + }, + dictWord{135, 11, 1766}, + dictWord{133, 0, 379}, + dictWord{5, 0, 8}, + dictWord{6, 0, 89}, + dictWord{6, 0, 400}, + dictWord{7, 0, 1569}, + dictWord{7, 0, 1623}, + dictWord{7, 0, 1850}, + dictWord{8, 0, 218}, + dictWord{8, 0, 422}, + dictWord{9, 0, 570}, + dictWord{10, 0, 626}, + dictWord{4, 11, 726}, + dictWord{133, 11, 630}, + dictWord{ + 4, + 0, + 1017, + }, + dictWord{138, 0, 660}, + dictWord{6, 0, 387}, + dictWord{7, 0, 882}, + dictWord{141, 0, 111}, + dictWord{6, 0, 224}, + dictWord{7, 0, 877}, + dictWord{ + 137, + 0, + 647, + }, + dictWord{4, 10, 58}, + dictWord{5, 10, 286}, + dictWord{6, 10, 319}, + dictWord{7, 10, 402}, + dictWord{7, 10, 1254}, + dictWord{7, 10, 1903}, + dictWord{ + 8, + 10, + 356, + }, + dictWord{140, 10, 408}, + dictWord{135, 0, 790}, + dictWord{9, 0, 510}, + dictWord{10, 0, 53}, + dictWord{4, 10, 389}, + dictWord{9, 10, 181}, + dictWord{ + 10, + 10, + 29, + }, + dictWord{10, 10, 816}, + dictWord{11, 10, 311}, + dictWord{11, 10, 561}, + dictWord{12, 10, 67}, + dictWord{141, 10, 181}, + dictWord{142, 0, 458}, + dictWord{ + 6, + 11, + 118, + }, + dictWord{7, 11, 215}, + dictWord{7, 11, 1521}, + dictWord{140, 11, 11}, + dictWord{134, 0, 954}, + dictWord{135, 0, 394}, + dictWord{134, 0, 1367}, + dictWord{5, 11, 225}, + dictWord{133, 10, 373}, + dictWord{132, 0, 882}, + dictWord{7, 0, 1409}, + dictWord{135, 10, 1972}, + dictWord{135, 10, 1793}, + dictWord{ + 4, + 11, + 370, + }, + dictWord{5, 11, 756}, + dictWord{135, 11, 1326}, + dictWord{150, 11, 13}, + dictWord{7, 11, 354}, + dictWord{10, 11, 410}, + dictWord{139, 11, 815}, + dictWord{6, 11, 1662}, + dictWord{7, 11, 48}, + dictWord{8, 11, 771}, + dictWord{10, 11, 116}, + dictWord{13, 11, 104}, + dictWord{14, 11, 105}, + dictWord{14, 11, 184}, + dictWord{15, 11, 168}, + dictWord{19, 11, 92}, + dictWord{148, 11, 68}, + dictWord{7, 0, 124}, + dictWord{136, 0, 38}, + dictWord{5, 0, 261}, + dictWord{7, 0, 78}, + dictWord{ + 7, + 0, + 199, + }, + dictWord{8, 0, 815}, + dictWord{9, 0, 126}, + dictWord{10, 0, 342}, + dictWord{140, 0, 647}, + dictWord{4, 0, 628}, + dictWord{140, 0, 724}, + dictWord{7, 0, 266}, + dictWord{8, 0, 804}, + dictWord{7, 10, 1651}, + dictWord{145, 10, 89}, + dictWord{135, 0, 208}, + dictWord{134, 0, 1178}, + dictWord{6, 0, 79}, + dictWord{135, 0, 1519}, + dictWord{132, 10, 672}, + dictWord{133, 10, 737}, + dictWord{136, 0, 741}, + dictWord{132, 11, 120}, + dictWord{4, 0, 710}, + dictWord{6, 0, 376}, + dictWord{ + 134, + 0, + 606, + }, + dictWord{134, 0, 1347}, + dictWord{134, 0, 1494}, + dictWord{6, 0, 850}, + dictWord{6, 0, 1553}, + dictWord{137, 0, 821}, + dictWord{5, 10, 145}, + dictWord{ + 134, + 11, + 593, + }, + dictWord{7, 0, 1311}, + dictWord{140, 0, 135}, + dictWord{4, 0, 467}, + dictWord{5, 0, 405}, + dictWord{134, 0, 544}, + dictWord{5, 11, 820}, + dictWord{ + 135, + 11, + 931, + }, + dictWord{6, 0, 100}, + dictWord{7, 0, 244}, + dictWord{7, 0, 632}, + dictWord{7, 0, 1609}, + dictWord{8, 0, 178}, + dictWord{8, 0, 638}, + dictWord{141, 0, 58}, + dictWord{4, 10, 387}, + dictWord{135, 10, 1288}, + dictWord{6, 11, 151}, + dictWord{6, 11, 1675}, + dictWord{7, 11, 383}, + dictWord{151, 11, 10}, + dictWord{ + 132, + 0, + 481, + }, + dictWord{135, 10, 550}, + dictWord{134, 0, 1378}, + dictWord{6, 11, 1624}, + dictWord{11, 11, 11}, + dictWord{12, 11, 422}, + dictWord{13, 11, 262}, + dictWord{142, 11, 360}, + dictWord{133, 0, 791}, + dictWord{4, 11, 43}, + dictWord{5, 11, 344}, + dictWord{133, 11, 357}, + dictWord{7, 0, 1227}, + dictWord{140, 0, 978}, + dictWord{7, 0, 686}, + dictWord{8, 0, 33}, + dictWord{8, 0, 238}, + dictWord{10, 0, 616}, + dictWord{11, 0, 467}, + dictWord{11, 0, 881}, + dictWord{13, 0, 217}, + dictWord{ + 13, + 0, + 253, + }, + dictWord{142, 0, 268}, + dictWord{137, 0, 857}, + dictWord{8, 0, 467}, + dictWord{8, 0, 1006}, + dictWord{7, 11, 148}, + dictWord{8, 11, 284}, + dictWord{ + 141, + 11, + 63, + }, + dictWord{4, 10, 576}, + dictWord{135, 10, 1263}, + dictWord{133, 11, 888}, + dictWord{5, 10, 919}, + dictWord{134, 10, 1673}, + dictWord{20, 10, 37}, + dictWord{148, 11, 37}, + dictWord{132, 0, 447}, + dictWord{132, 11, 711}, + dictWord{4, 0, 128}, + dictWord{5, 0, 415}, + dictWord{6, 0, 462}, + dictWord{7, 0, 294}, + dictWord{ + 7, + 0, + 578, + }, + dictWord{10, 0, 710}, + dictWord{139, 0, 86}, + dictWord{4, 10, 82}, + dictWord{5, 10, 333}, + dictWord{5, 10, 904}, + dictWord{6, 10, 207}, + dictWord{7, 10, 325}, + dictWord{7, 10, 1726}, + dictWord{8, 10, 101}, + dictWord{10, 10, 778}, + dictWord{139, 10, 220}, + dictWord{136, 0, 587}, + dictWord{137, 11, 440}, + dictWord{ + 133, + 10, + 903, + }, + dictWord{6, 0, 427}, + dictWord{7, 0, 1018}, + dictWord{138, 0, 692}, + dictWord{4, 0, 195}, + dictWord{135, 0, 802}, + dictWord{140, 10, 147}, + dictWord{ + 134, + 0, + 1546, + }, + dictWord{134, 0, 684}, + dictWord{132, 10, 705}, + dictWord{136, 0, 345}, + dictWord{11, 11, 678}, + dictWord{140, 11, 307}, + dictWord{ + 133, + 0, + 365, + }, + dictWord{134, 0, 1683}, + dictWord{4, 11, 65}, + dictWord{5, 11, 479}, + dictWord{5, 11, 1004}, + dictWord{7, 11, 1913}, + dictWord{8, 11, 317}, + dictWord{ + 9, + 11, + 302, + }, + dictWord{10, 11, 612}, + dictWord{141, 11, 22}, + dictWord{138, 0, 472}, + dictWord{4, 11, 261}, + dictWord{135, 11, 510}, + dictWord{134, 10, 90}, + dictWord{142, 0, 433}, + dictWord{151, 0, 28}, + dictWord{4, 11, 291}, + dictWord{7, 11, 101}, + dictWord{9, 11, 515}, + dictWord{12, 11, 152}, + dictWord{12, 11, 443}, + dictWord{13, 11, 392}, + dictWord{142, 11, 357}, + dictWord{140, 0, 997}, + dictWord{5, 0, 3}, + dictWord{8, 0, 578}, + dictWord{9, 0, 118}, + dictWord{10, 0, 705}, + dictWord{ + 141, + 0, + 279, + }, + dictWord{135, 11, 1266}, + dictWord{7, 10, 813}, + dictWord{12, 10, 497}, + dictWord{141, 10, 56}, + dictWord{133, 0, 229}, + dictWord{6, 10, 125}, + dictWord{135, 10, 1277}, + dictWord{8, 0, 102}, + dictWord{10, 0, 578}, + dictWord{10, 0, 672}, + dictWord{12, 0, 496}, + dictWord{13, 0, 408}, + dictWord{14, 0, 121}, + dictWord{17, 0, 106}, + dictWord{151, 10, 12}, + dictWord{6, 0, 866}, + dictWord{134, 0, 1080}, + dictWord{136, 0, 1022}, + dictWord{4, 11, 130}, + dictWord{135, 11, 843}, + dictWord{5, 11, 42}, + dictWord{5, 11, 879}, + dictWord{7, 11, 245}, + dictWord{7, 11, 324}, + dictWord{7, 11, 1532}, + dictWord{11, 11, 463}, + dictWord{11, 11, 472}, + dictWord{13, 11, 363}, + dictWord{144, 11, 52}, + dictWord{150, 0, 55}, + dictWord{8, 0, 115}, + dictWord{8, 0, 350}, + dictWord{9, 0, 489}, + dictWord{10, 0, 128}, + dictWord{ + 11, + 0, + 306, + }, + dictWord{12, 0, 373}, + dictWord{14, 0, 30}, + dictWord{17, 0, 79}, + dictWord{19, 0, 80}, + dictWord{4, 11, 134}, + dictWord{133, 11, 372}, + dictWord{ + 134, + 0, + 657, + }, + dictWord{134, 0, 933}, + dictWord{135, 11, 1147}, + dictWord{4, 0, 230}, + dictWord{133, 0, 702}, + dictWord{134, 0, 1728}, + dictWord{4, 0, 484}, + dictWord{ + 18, + 0, + 26, + }, + dictWord{19, 0, 42}, + dictWord{20, 0, 43}, + dictWord{21, 0, 0}, + dictWord{23, 0, 27}, + dictWord{152, 0, 14}, + dictWord{7, 0, 185}, + dictWord{135, 0, 703}, + dictWord{ + 6, + 0, + 417, + }, + dictWord{10, 0, 618}, + dictWord{7, 10, 1106}, + dictWord{9, 10, 770}, + dictWord{11, 10, 112}, + dictWord{140, 10, 413}, + dictWord{134, 0, 803}, + dictWord{132, 11, 644}, + dictWord{134, 0, 1262}, + dictWord{7, 11, 540}, + dictWord{12, 10, 271}, + dictWord{145, 10, 109}, + dictWord{135, 11, 123}, + dictWord{ + 132, + 0, + 633, + }, + dictWord{134, 11, 623}, + dictWord{4, 11, 908}, + dictWord{5, 11, 359}, + dictWord{5, 11, 508}, + dictWord{6, 11, 1723}, + dictWord{7, 11, 343}, + dictWord{ + 7, + 11, + 1996, + }, + dictWord{135, 11, 2026}, + dictWord{135, 0, 479}, + dictWord{10, 0, 262}, + dictWord{7, 10, 304}, + dictWord{9, 10, 646}, + dictWord{9, 10, 862}, + dictWord{ + 11, + 10, + 696, + }, + dictWord{12, 10, 208}, + dictWord{15, 10, 79}, + dictWord{147, 10, 108}, + dictWord{4, 11, 341}, + dictWord{135, 11, 480}, + dictWord{134, 0, 830}, + dictWord{5, 0, 70}, + dictWord{5, 0, 622}, + dictWord{6, 0, 334}, + dictWord{7, 0, 1032}, + dictWord{9, 0, 171}, + dictWord{11, 0, 26}, + dictWord{11, 0, 213}, + dictWord{ + 11, + 0, + 637, + }, + dictWord{11, 0, 707}, + dictWord{12, 0, 202}, + dictWord{12, 0, 380}, + dictWord{13, 0, 226}, + dictWord{13, 0, 355}, + dictWord{14, 0, 222}, + dictWord{145, 0, 42}, + dictWord{135, 10, 981}, + dictWord{143, 0, 217}, + dictWord{137, 11, 114}, + dictWord{4, 0, 23}, + dictWord{4, 0, 141}, + dictWord{5, 0, 313}, + dictWord{5, 0, 1014}, + dictWord{6, 0, 50}, + dictWord{6, 0, 51}, + dictWord{7, 0, 142}, + dictWord{7, 0, 384}, + dictWord{7, 0, 559}, + dictWord{8, 0, 640}, + dictWord{9, 0, 460}, + dictWord{9, 0, 783}, + dictWord{11, 0, 741}, + dictWord{12, 0, 183}, + dictWord{141, 0, 488}, + dictWord{141, 0, 360}, + dictWord{7, 0, 1586}, + dictWord{7, 11, 1995}, + dictWord{8, 11, 299}, + dictWord{11, 11, 890}, + dictWord{140, 11, 674}, + dictWord{132, 10, 434}, + dictWord{7, 0, 652}, + dictWord{134, 10, 550}, + dictWord{7, 0, 766}, + dictWord{5, 10, 553}, + dictWord{138, 10, 824}, + dictWord{7, 0, 737}, + dictWord{8, 0, 298}, + dictWord{136, 10, 452}, + dictWord{4, 11, 238}, + dictWord{5, 11, 503}, + dictWord{6, 11, 179}, + dictWord{7, 11, 2003}, + dictWord{8, 11, 381}, + dictWord{8, 11, 473}, + dictWord{9, 11, 149}, + dictWord{10, 11, 183}, + dictWord{15, 11, 45}, + dictWord{143, 11, 86}, + dictWord{133, 10, 292}, + dictWord{5, 0, 222}, + dictWord{9, 0, 655}, + dictWord{138, 0, 534}, + dictWord{138, 10, 135}, + dictWord{4, 11, 121}, + dictWord{5, 11, 156}, + dictWord{5, 11, 349}, + dictWord{9, 11, 136}, + dictWord{10, 11, 605}, + dictWord{14, 11, 342}, + dictWord{147, 11, 107}, + dictWord{137, 0, 906}, + dictWord{6, 0, 1013}, + dictWord{134, 0, 1250}, + dictWord{6, 0, 1956}, + dictWord{6, 0, 2009}, + dictWord{8, 0, 991}, + dictWord{144, 0, 120}, + dictWord{135, 11, 1192}, + dictWord{ + 138, + 0, + 503, + }, + dictWord{5, 0, 154}, + dictWord{7, 0, 1491}, + dictWord{10, 0, 379}, + dictWord{138, 0, 485}, + dictWord{6, 0, 1867}, + dictWord{6, 0, 1914}, + dictWord{6, 0, 1925}, + dictWord{9, 0, 917}, + dictWord{9, 0, 925}, + dictWord{9, 0, 932}, + dictWord{9, 0, 951}, + dictWord{9, 0, 1007}, + dictWord{9, 0, 1013}, + dictWord{12, 0, 806}, + dictWord{ + 12, + 0, + 810, + }, + dictWord{12, 0, 814}, + dictWord{12, 0, 816}, + dictWord{12, 0, 824}, + dictWord{12, 0, 832}, + dictWord{12, 0, 837}, + dictWord{12, 0, 863}, + dictWord{ + 12, + 0, + 868, + }, + dictWord{12, 0, 870}, + dictWord{12, 0, 889}, + dictWord{12, 0, 892}, + dictWord{12, 0, 900}, + dictWord{12, 0, 902}, + dictWord{12, 0, 908}, + dictWord{12, 0, 933}, + dictWord{12, 0, 942}, + dictWord{12, 0, 949}, + dictWord{12, 0, 954}, + dictWord{15, 0, 175}, + dictWord{15, 0, 203}, + dictWord{15, 0, 213}, + dictWord{15, 0, 218}, + dictWord{15, 0, 225}, + dictWord{15, 0, 231}, + dictWord{15, 0, 239}, + dictWord{15, 0, 248}, + dictWord{15, 0, 252}, + dictWord{18, 0, 190}, + dictWord{18, 0, 204}, + dictWord{ + 18, + 0, + 215, + }, + dictWord{18, 0, 216}, + dictWord{18, 0, 222}, + dictWord{18, 0, 225}, + dictWord{18, 0, 230}, + dictWord{18, 0, 239}, + dictWord{18, 0, 241}, + dictWord{ + 21, + 0, + 42, + }, + dictWord{21, 0, 43}, + dictWord{21, 0, 44}, + dictWord{21, 0, 45}, + dictWord{21, 0, 46}, + dictWord{21, 0, 53}, + dictWord{24, 0, 27}, + dictWord{152, 0, 31}, + dictWord{ + 133, + 0, + 716, + }, + dictWord{135, 0, 844}, + dictWord{4, 0, 91}, + dictWord{5, 0, 388}, + dictWord{5, 0, 845}, + dictWord{6, 0, 206}, + dictWord{6, 0, 252}, + dictWord{6, 0, 365}, + dictWord{ + 7, + 0, + 136, + }, + dictWord{7, 0, 531}, + dictWord{136, 0, 621}, + dictWord{7, 10, 393}, + dictWord{10, 10, 603}, + dictWord{139, 10, 206}, + dictWord{6, 11, 80}, + dictWord{ + 6, + 11, + 1694, + }, + dictWord{7, 11, 173}, + dictWord{7, 11, 1974}, + dictWord{9, 11, 547}, + dictWord{10, 11, 730}, + dictWord{14, 11, 18}, + dictWord{150, 11, 39}, + dictWord{137, 0, 748}, + dictWord{4, 11, 923}, + dictWord{134, 11, 1711}, + dictWord{4, 10, 912}, + dictWord{137, 10, 232}, + dictWord{7, 10, 98}, + dictWord{7, 10, 1973}, + dictWord{136, 10, 716}, + dictWord{14, 0, 103}, + dictWord{133, 10, 733}, + dictWord{132, 11, 595}, + dictWord{12, 0, 158}, + dictWord{18, 0, 8}, + dictWord{19, 0, 62}, + dictWord{20, 0, 6}, + dictWord{22, 0, 4}, + dictWord{23, 0, 2}, + dictWord{23, 0, 9}, + dictWord{5, 11, 240}, + dictWord{6, 11, 459}, + dictWord{7, 11, 12}, + dictWord{7, 11, 114}, + dictWord{7, 11, 502}, + dictWord{7, 11, 1751}, + dictWord{7, 11, 1753}, + dictWord{7, 11, 1805}, + dictWord{8, 11, 658}, + dictWord{9, 11, 1}, + dictWord{11, 11, 959}, + dictWord{13, 11, 446}, + dictWord{142, 11, 211}, + dictWord{135, 0, 576}, + dictWord{5, 0, 771}, + dictWord{5, 0, 863}, + dictWord{5, 0, 898}, + dictWord{6, 0, 648}, + dictWord{ + 6, + 0, + 1632, + }, + dictWord{6, 0, 1644}, + dictWord{134, 0, 1780}, + dictWord{133, 0, 331}, + dictWord{7, 11, 633}, + dictWord{7, 11, 905}, + dictWord{7, 11, 909}, + dictWord{ + 7, + 11, + 1538, + }, + dictWord{9, 11, 767}, + dictWord{140, 11, 636}, + dictWord{140, 0, 632}, + dictWord{5, 0, 107}, + dictWord{7, 0, 201}, + dictWord{136, 0, 518}, + dictWord{ + 6, + 0, + 446, + }, + dictWord{7, 0, 1817}, + dictWord{134, 11, 490}, + dictWord{9, 0, 851}, + dictWord{141, 0, 510}, + dictWord{7, 11, 250}, + dictWord{8, 11, 506}, + dictWord{ + 136, + 11, + 507, + }, + dictWord{4, 0, 504}, + dictWord{137, 10, 72}, + dictWord{132, 11, 158}, + dictWord{4, 11, 140}, + dictWord{7, 11, 362}, + dictWord{8, 11, 209}, + dictWord{ + 9, + 11, + 10, + }, + dictWord{9, 11, 160}, + dictWord{9, 11, 503}, + dictWord{10, 11, 689}, + dictWord{11, 11, 350}, + dictWord{11, 11, 553}, + dictWord{11, 11, 725}, + dictWord{ + 12, + 11, + 252, + }, + dictWord{12, 11, 583}, + dictWord{13, 11, 192}, + dictWord{13, 11, 352}, + dictWord{14, 11, 269}, + dictWord{14, 11, 356}, + dictWord{148, 11, 50}, + dictWord{6, 11, 597}, + dictWord{135, 11, 1318}, + dictWord{135, 10, 1454}, + dictWord{5, 0, 883}, + dictWord{5, 0, 975}, + dictWord{8, 0, 392}, + dictWord{148, 0, 7}, + dictWord{6, 11, 228}, + dictWord{7, 11, 1341}, + dictWord{9, 11, 408}, + dictWord{138, 11, 343}, + dictWord{11, 11, 348}, + dictWord{11, 10, 600}, + dictWord{12, 11, 99}, + dictWord{13, 10, 245}, + dictWord{18, 11, 1}, + dictWord{18, 11, 11}, + dictWord{147, 11, 4}, + dictWord{134, 11, 296}, + dictWord{5, 0, 922}, + dictWord{134, 0, 1707}, + dictWord{132, 11, 557}, + dictWord{4, 11, 548}, + dictWord{7, 10, 164}, + dictWord{7, 10, 1571}, + dictWord{9, 10, 107}, + dictWord{140, 10, 225}, + dictWord{ + 7, + 11, + 197, + }, + dictWord{8, 11, 142}, + dictWord{8, 11, 325}, + dictWord{9, 11, 150}, + dictWord{9, 11, 596}, + dictWord{10, 11, 350}, + dictWord{10, 11, 353}, + dictWord{ + 11, + 11, + 74, + }, + dictWord{11, 11, 315}, + dictWord{14, 11, 423}, + dictWord{143, 11, 141}, + dictWord{5, 0, 993}, + dictWord{7, 0, 515}, + dictWord{137, 0, 91}, + dictWord{4, 0, 131}, + dictWord{8, 0, 200}, + dictWord{5, 10, 484}, + dictWord{5, 10, 510}, + dictWord{6, 10, 434}, + dictWord{7, 10, 1000}, + dictWord{7, 10, 1098}, + dictWord{136, 10, 2}, + dictWord{152, 0, 10}, + dictWord{4, 11, 62}, + dictWord{5, 11, 83}, + dictWord{6, 11, 399}, + dictWord{6, 11, 579}, + dictWord{7, 11, 692}, + dictWord{7, 11, 846}, + dictWord{ + 7, + 11, + 1015, + }, + dictWord{7, 11, 1799}, + dictWord{8, 11, 403}, + dictWord{9, 11, 394}, + dictWord{10, 11, 133}, + dictWord{12, 11, 4}, + dictWord{12, 11, 297}, + dictWord{ + 12, + 11, + 452, + }, + dictWord{16, 11, 81}, + dictWord{18, 11, 19}, + dictWord{18, 11, 25}, + dictWord{21, 11, 14}, + dictWord{22, 11, 12}, + dictWord{151, 11, 18}, + dictWord{ + 140, + 11, + 459, + }, + dictWord{132, 11, 177}, + dictWord{7, 0, 1433}, + dictWord{9, 0, 365}, + dictWord{137, 11, 365}, + dictWord{132, 10, 460}, + dictWord{5, 0, 103}, + dictWord{ + 6, + 0, + 2004, + }, + dictWord{7, 0, 921}, + dictWord{8, 0, 580}, + dictWord{8, 0, 593}, + dictWord{8, 0, 630}, + dictWord{10, 0, 28}, + dictWord{5, 11, 411}, + dictWord{ + 135, + 11, + 653, + }, + dictWord{4, 10, 932}, + dictWord{133, 10, 891}, + dictWord{4, 0, 911}, + dictWord{5, 0, 867}, + dictWord{5, 0, 1013}, + dictWord{7, 0, 2034}, + dictWord{8, 0, 798}, + dictWord{136, 0, 813}, + dictWord{7, 11, 439}, + dictWord{10, 11, 727}, + dictWord{11, 11, 260}, + dictWord{139, 11, 684}, + dictWord{136, 10, 625}, + dictWord{ + 5, + 11, + 208, + }, + dictWord{7, 11, 753}, + dictWord{135, 11, 1528}, + dictWord{5, 0, 461}, + dictWord{7, 0, 1925}, + dictWord{12, 0, 39}, + dictWord{13, 0, 265}, + dictWord{ + 13, + 0, + 439, + }, + dictWord{134, 10, 76}, + dictWord{6, 0, 853}, + dictWord{8, 10, 92}, + dictWord{137, 10, 221}, + dictWord{5, 0, 135}, + dictWord{6, 0, 519}, + dictWord{7, 0, 1722}, + dictWord{10, 0, 271}, + dictWord{11, 0, 261}, + dictWord{145, 0, 54}, + dictWord{139, 11, 814}, + dictWord{14, 0, 338}, + dictWord{148, 0, 81}, + dictWord{4, 0, 300}, + dictWord{133, 0, 436}, + dictWord{5, 0, 419}, + dictWord{5, 0, 687}, + dictWord{7, 0, 864}, + dictWord{9, 0, 470}, + dictWord{135, 11, 864}, + dictWord{9, 0, 836}, + dictWord{ + 133, + 11, + 242, + }, + dictWord{134, 0, 1937}, + dictWord{4, 10, 763}, + dictWord{133, 11, 953}, + dictWord{132, 10, 622}, + dictWord{132, 0, 393}, + dictWord{ + 133, + 10, + 253, + }, + dictWord{8, 0, 357}, + dictWord{10, 0, 745}, + dictWord{14, 0, 426}, + dictWord{17, 0, 94}, + dictWord{19, 0, 57}, + dictWord{135, 10, 546}, + dictWord{5, 11, 615}, + dictWord{146, 11, 37}, + dictWord{9, 10, 73}, + dictWord{10, 10, 110}, + dictWord{14, 10, 185}, + dictWord{145, 10, 119}, + dictWord{11, 0, 703}, + dictWord{7, 10, 624}, + dictWord{7, 10, 916}, + dictWord{10, 10, 256}, + dictWord{139, 10, 87}, + dictWord{133, 11, 290}, + dictWord{5, 10, 212}, + dictWord{12, 10, 35}, + dictWord{ + 141, + 10, + 382, + }, + dictWord{132, 11, 380}, + dictWord{5, 11, 52}, + dictWord{7, 11, 277}, + dictWord{9, 11, 368}, + dictWord{139, 11, 791}, + dictWord{133, 0, 387}, + dictWord{ + 10, + 11, + 138, + }, + dictWord{139, 11, 476}, + dictWord{4, 0, 6}, + dictWord{5, 0, 708}, + dictWord{136, 0, 75}, + dictWord{7, 0, 1351}, + dictWord{9, 0, 581}, + dictWord{10, 0, 639}, + dictWord{11, 0, 453}, + dictWord{140, 0, 584}, + dictWord{132, 0, 303}, + dictWord{138, 0, 772}, + dictWord{135, 10, 1175}, + dictWord{4, 0, 749}, + dictWord{ + 5, + 10, + 816, + }, + dictWord{6, 11, 256}, + dictWord{7, 11, 307}, + dictWord{7, 11, 999}, + dictWord{7, 11, 1481}, + dictWord{7, 11, 1732}, + dictWord{7, 11, 1738}, + dictWord{ + 8, + 11, + 265, + }, + dictWord{9, 11, 414}, + dictWord{11, 11, 316}, + dictWord{12, 11, 52}, + dictWord{13, 11, 420}, + dictWord{147, 11, 100}, + dictWord{135, 11, 1296}, + dictWord{ + 6, + 0, + 1065, + }, + dictWord{5, 10, 869}, + dictWord{5, 10, 968}, + dictWord{6, 10, 1626}, + dictWord{8, 10, 734}, + dictWord{136, 10, 784}, + dictWord{4, 10, 542}, + dictWord{ + 6, + 10, + 1716, + }, + dictWord{6, 10, 1727}, + dictWord{7, 10, 1082}, + dictWord{7, 10, 1545}, + dictWord{8, 10, 56}, + dictWord{8, 10, 118}, + dictWord{8, 10, 412}, + dictWord{ + 8, + 10, + 564, + }, + dictWord{9, 10, 888}, + dictWord{9, 10, 908}, + dictWord{10, 10, 50}, + dictWord{10, 10, 423}, + dictWord{11, 10, 685}, + dictWord{11, 10, 697}, + dictWord{11, 10, 933}, + dictWord{12, 10, 299}, + dictWord{13, 10, 126}, + dictWord{13, 10, 136}, + dictWord{13, 10, 170}, + dictWord{141, 10, 190}, + dictWord{ + 134, + 0, + 226, + }, + dictWord{4, 0, 106}, + dictWord{7, 0, 310}, + dictWord{11, 0, 717}, + dictWord{133, 11, 723}, + dictWord{5, 0, 890}, + dictWord{5, 0, 988}, + dictWord{4, 10, 232}, + dictWord{9, 10, 202}, + dictWord{10, 10, 474}, + dictWord{140, 10, 433}, + dictWord{6, 0, 626}, + dictWord{142, 0, 431}, + dictWord{10, 0, 706}, + dictWord{150, 0, 44}, + dictWord{13, 0, 51}, + dictWord{6, 10, 108}, + dictWord{7, 10, 1003}, + dictWord{7, 10, 1181}, + dictWord{8, 10, 111}, + dictWord{136, 10, 343}, + dictWord{132, 0, 698}, + dictWord{5, 11, 109}, + dictWord{6, 11, 1784}, + dictWord{7, 11, 1895}, + dictWord{12, 11, 296}, + dictWord{140, 11, 302}, + dictWord{134, 0, 828}, + dictWord{ + 134, + 10, + 1712, + }, + dictWord{138, 0, 17}, + dictWord{7, 0, 1929}, + dictWord{4, 10, 133}, + dictWord{5, 11, 216}, + dictWord{7, 10, 711}, + dictWord{7, 10, 1298}, + dictWord{ + 7, + 10, + 1585, + }, + dictWord{7, 11, 1879}, + dictWord{9, 11, 141}, + dictWord{9, 11, 270}, + dictWord{9, 11, 679}, + dictWord{10, 11, 159}, + dictWord{10, 11, 553}, + dictWord{ + 11, + 11, + 197, + }, + dictWord{11, 11, 438}, + dictWord{12, 11, 538}, + dictWord{12, 11, 559}, + dictWord{13, 11, 193}, + dictWord{13, 11, 423}, + dictWord{14, 11, 144}, + dictWord{14, 11, 166}, + dictWord{14, 11, 167}, + dictWord{15, 11, 67}, + dictWord{147, 11, 84}, + dictWord{141, 11, 127}, + dictWord{7, 11, 1872}, + dictWord{ + 137, + 11, + 81, + }, + dictWord{6, 10, 99}, + dictWord{7, 10, 1808}, + dictWord{145, 10, 57}, + dictWord{134, 11, 391}, + dictWord{5, 0, 689}, + dictWord{6, 0, 84}, + dictWord{7, 0, 1250}, + dictWord{6, 10, 574}, + dictWord{7, 10, 428}, + dictWord{10, 10, 669}, + dictWord{11, 10, 485}, + dictWord{11, 10, 840}, + dictWord{12, 10, 300}, + dictWord{ + 142, + 10, + 250, + }, + dictWord{7, 11, 322}, + dictWord{136, 11, 249}, + dictWord{7, 11, 432}, + dictWord{135, 11, 1649}, + dictWord{135, 10, 1871}, + dictWord{137, 10, 252}, + dictWord{6, 11, 155}, + dictWord{140, 11, 234}, + dictWord{7, 0, 871}, + dictWord{19, 0, 27}, + dictWord{147, 11, 27}, + dictWord{140, 0, 498}, + dictWord{5, 0, 986}, + dictWord{6, 0, 130}, + dictWord{138, 0, 823}, + dictWord{6, 0, 1793}, + dictWord{7, 0, 1582}, + dictWord{8, 0, 458}, + dictWord{10, 0, 101}, + dictWord{10, 0, 318}, + dictWord{ + 10, + 0, + 945, + }, + dictWord{12, 0, 734}, + dictWord{16, 0, 104}, + dictWord{18, 0, 177}, + dictWord{6, 10, 323}, + dictWord{135, 10, 1564}, + dictWord{5, 11, 632}, + dictWord{ + 138, + 11, + 526, + }, + dictWord{10, 0, 435}, + dictWord{7, 10, 461}, + dictWord{136, 10, 775}, + dictWord{6, 11, 144}, + dictWord{7, 11, 948}, + dictWord{7, 11, 1042}, + dictWord{ + 7, + 11, + 1857, + }, + dictWord{8, 11, 235}, + dictWord{8, 11, 461}, + dictWord{9, 11, 453}, + dictWord{9, 11, 530}, + dictWord{10, 11, 354}, + dictWord{17, 11, 77}, + dictWord{ + 19, + 11, + 99, + }, + dictWord{148, 11, 79}, + dictWord{138, 0, 966}, + dictWord{7, 0, 1644}, + dictWord{137, 0, 129}, + dictWord{135, 0, 997}, + dictWord{136, 0, 502}, + dictWord{ + 5, + 11, + 196, + }, + dictWord{6, 11, 486}, + dictWord{7, 11, 212}, + dictWord{8, 11, 309}, + dictWord{136, 11, 346}, + dictWord{7, 10, 727}, + dictWord{146, 10, 73}, + dictWord{132, 0, 823}, + dictWord{132, 11, 686}, + dictWord{135, 0, 1927}, + dictWord{4, 0, 762}, + dictWord{7, 0, 1756}, + dictWord{137, 0, 98}, + dictWord{136, 10, 577}, + dictWord{24, 0, 8}, + dictWord{4, 11, 30}, + dictWord{5, 11, 43}, + dictWord{152, 11, 8}, + dictWord{7, 0, 1046}, + dictWord{139, 0, 160}, + dictWord{7, 0, 492}, + dictWord{ + 4, + 10, + 413, + }, + dictWord{5, 10, 677}, + dictWord{7, 11, 492}, + dictWord{8, 10, 432}, + dictWord{140, 10, 280}, + dictWord{6, 0, 45}, + dictWord{7, 0, 433}, + dictWord{8, 0, 129}, + dictWord{9, 0, 21}, + dictWord{10, 0, 392}, + dictWord{11, 0, 79}, + dictWord{12, 0, 499}, + dictWord{13, 0, 199}, + dictWord{141, 0, 451}, + dictWord{7, 0, 558}, + dictWord{ + 136, + 0, + 353, + }, + dictWord{4, 11, 220}, + dictWord{7, 11, 1535}, + dictWord{9, 11, 93}, + dictWord{139, 11, 474}, + dictWord{7, 10, 646}, + dictWord{7, 10, 1730}, + dictWord{ + 11, + 10, + 446, + }, + dictWord{141, 10, 178}, + dictWord{133, 0, 785}, + dictWord{134, 0, 1145}, + dictWord{8, 0, 81}, + dictWord{9, 0, 189}, + dictWord{9, 0, 201}, + dictWord{ + 11, + 0, + 478, + }, + dictWord{11, 0, 712}, + dictWord{141, 0, 338}, + dictWord{5, 0, 353}, + dictWord{151, 0, 26}, + dictWord{11, 0, 762}, + dictWord{132, 10, 395}, + dictWord{ + 134, + 0, + 2024, + }, + dictWord{4, 0, 611}, + dictWord{133, 0, 606}, + dictWord{9, 10, 174}, + dictWord{10, 10, 164}, + dictWord{11, 10, 440}, + dictWord{11, 10, 841}, + dictWord{ + 143, + 10, + 98, + }, + dictWord{134, 10, 426}, + dictWord{10, 10, 608}, + dictWord{139, 10, 1002}, + dictWord{138, 10, 250}, + dictWord{6, 0, 25}, + dictWord{7, 0, 855}, + dictWord{7, 0, 1258}, + dictWord{144, 0, 32}, + dictWord{7, 11, 1725}, + dictWord{138, 11, 393}, + dictWord{5, 11, 263}, + dictWord{134, 11, 414}, + dictWord{6, 0, 2011}, + dictWord{133, 10, 476}, + dictWord{4, 0, 4}, + dictWord{7, 0, 1118}, + dictWord{7, 0, 1320}, + dictWord{7, 0, 1706}, + dictWord{8, 0, 277}, + dictWord{9, 0, 622}, + dictWord{ + 10, + 0, + 9, + }, + dictWord{11, 0, 724}, + dictWord{12, 0, 350}, + dictWord{12, 0, 397}, + dictWord{13, 0, 28}, + dictWord{13, 0, 159}, + dictWord{15, 0, 89}, + dictWord{18, 0, 5}, + dictWord{ + 19, + 0, + 9, + }, + dictWord{20, 0, 34}, + dictWord{22, 0, 47}, + dictWord{6, 11, 178}, + dictWord{6, 11, 1750}, + dictWord{8, 11, 251}, + dictWord{9, 11, 690}, + dictWord{ + 10, + 11, + 155, + }, + dictWord{10, 11, 196}, + dictWord{10, 11, 373}, + dictWord{11, 11, 698}, + dictWord{13, 11, 155}, + dictWord{148, 11, 93}, + dictWord{5, 11, 97}, + dictWord{ + 137, + 11, + 393, + }, + dictWord{7, 0, 764}, + dictWord{11, 0, 461}, + dictWord{12, 0, 172}, + dictWord{5, 10, 76}, + dictWord{6, 10, 458}, + dictWord{6, 10, 497}, + dictWord{ + 7, + 10, + 868, + }, + dictWord{9, 10, 658}, + dictWord{10, 10, 594}, + dictWord{11, 10, 566}, + dictWord{12, 10, 338}, + dictWord{141, 10, 200}, + dictWord{134, 0, 1449}, + dictWord{138, 11, 40}, + dictWord{134, 11, 1639}, + dictWord{134, 0, 1445}, + dictWord{6, 0, 1168}, + dictWord{4, 10, 526}, + dictWord{7, 10, 1029}, + dictWord{ + 135, + 10, + 1054, + }, + dictWord{4, 11, 191}, + dictWord{7, 11, 934}, + dictWord{8, 11, 647}, + dictWord{145, 11, 97}, + dictWord{132, 10, 636}, + dictWord{6, 0, 233}, + dictWord{ + 7, + 10, + 660, + }, + dictWord{7, 10, 1124}, + dictWord{17, 10, 31}, + dictWord{19, 10, 22}, + dictWord{151, 10, 14}, + dictWord{6, 10, 1699}, + dictWord{136, 11, 110}, + dictWord{ + 12, + 11, + 246, + }, + dictWord{15, 11, 162}, + dictWord{19, 11, 64}, + dictWord{20, 11, 8}, + dictWord{20, 11, 95}, + dictWord{22, 11, 24}, + dictWord{152, 11, 17}, + dictWord{ + 5, + 11, + 165, + }, + dictWord{9, 11, 346}, + dictWord{138, 11, 655}, + dictWord{5, 11, 319}, + dictWord{135, 11, 534}, + dictWord{134, 0, 255}, + dictWord{9, 0, 216}, + dictWord{ + 8, + 11, + 128, + }, + dictWord{139, 11, 179}, + dictWord{9, 0, 183}, + dictWord{139, 0, 286}, + dictWord{11, 0, 956}, + dictWord{151, 0, 3}, + dictWord{4, 0, 536}, + dictWord{ + 7, + 0, + 1141, + }, + dictWord{10, 0, 723}, + dictWord{139, 0, 371}, + dictWord{4, 10, 279}, + dictWord{7, 10, 301}, + dictWord{137, 10, 362}, + dictWord{7, 0, 285}, + dictWord{ + 5, + 11, + 57, + }, + dictWord{6, 11, 101}, + dictWord{6, 11, 1663}, + dictWord{7, 11, 132}, + dictWord{7, 11, 1048}, + dictWord{7, 11, 1154}, + dictWord{7, 11, 1415}, + dictWord{ + 7, + 11, + 1507, + }, + dictWord{12, 11, 493}, + dictWord{15, 11, 105}, + dictWord{151, 11, 15}, + dictWord{5, 11, 459}, + dictWord{7, 11, 1073}, + dictWord{7, 10, 1743}, + dictWord{ + 8, + 11, + 241, + }, + dictWord{136, 11, 334}, + dictWord{4, 10, 178}, + dictWord{133, 10, 399}, + dictWord{135, 0, 560}, + dictWord{132, 0, 690}, + dictWord{135, 0, 1246}, + dictWord{18, 0, 157}, + dictWord{147, 0, 63}, + dictWord{10, 0, 599}, + dictWord{11, 0, 33}, + dictWord{12, 0, 571}, + dictWord{149, 0, 1}, + dictWord{6, 11, 324}, + dictWord{ + 6, + 11, + 520, + }, + dictWord{7, 11, 338}, + dictWord{7, 11, 1616}, + dictWord{7, 11, 1729}, + dictWord{8, 11, 228}, + dictWord{9, 11, 69}, + dictWord{139, 11, 750}, + dictWord{ + 7, + 0, + 1862, + }, + dictWord{12, 0, 491}, + dictWord{12, 0, 520}, + dictWord{13, 0, 383}, + dictWord{142, 0, 244}, + dictWord{135, 11, 734}, + dictWord{134, 10, 1692}, + dictWord{10, 0, 448}, + dictWord{11, 0, 630}, + dictWord{17, 0, 117}, + dictWord{6, 10, 202}, + dictWord{7, 11, 705}, + dictWord{12, 10, 360}, + dictWord{17, 10, 118}, + dictWord{18, 10, 27}, + dictWord{148, 10, 67}, + dictWord{4, 11, 73}, + dictWord{6, 11, 612}, + dictWord{7, 11, 927}, + dictWord{7, 11, 1822}, + dictWord{8, 11, 217}, + dictWord{ + 9, + 11, + 472, + }, + dictWord{9, 11, 765}, + dictWord{9, 11, 766}, + dictWord{10, 11, 408}, + dictWord{11, 11, 51}, + dictWord{11, 11, 793}, + dictWord{12, 11, 266}, + dictWord{ + 15, + 11, + 158, + }, + dictWord{20, 11, 89}, + dictWord{150, 11, 32}, + dictWord{4, 0, 190}, + dictWord{133, 0, 554}, + dictWord{133, 0, 1001}, + dictWord{5, 11, 389}, + dictWord{ + 8, + 11, + 636, + }, + dictWord{137, 11, 229}, + dictWord{5, 0, 446}, + dictWord{7, 10, 872}, + dictWord{10, 10, 516}, + dictWord{139, 10, 167}, + dictWord{137, 10, 313}, + dictWord{132, 10, 224}, + dictWord{134, 0, 1313}, + dictWord{5, 10, 546}, + dictWord{7, 10, 35}, + dictWord{8, 10, 11}, + dictWord{8, 10, 12}, + dictWord{9, 10, 315}, + dictWord{9, 10, 533}, + dictWord{10, 10, 802}, + dictWord{11, 10, 166}, + dictWord{12, 10, 525}, + dictWord{142, 10, 243}, + dictWord{6, 0, 636}, + dictWord{137, 0, 837}, + dictWord{5, 10, 241}, + dictWord{8, 10, 242}, + dictWord{9, 10, 451}, + dictWord{10, 10, 667}, + dictWord{11, 10, 598}, + dictWord{140, 10, 429}, + dictWord{22, 10, 46}, + dictWord{150, 11, 46}, + dictWord{136, 11, 472}, + dictWord{11, 0, 278}, + dictWord{142, 0, 73}, + dictWord{141, 11, 185}, + dictWord{132, 0, 868}, + dictWord{ + 134, + 0, + 972, + }, + dictWord{4, 10, 366}, + dictWord{137, 10, 516}, + dictWord{138, 0, 1010}, + dictWord{5, 11, 189}, + dictWord{6, 10, 1736}, + dictWord{7, 11, 442}, + dictWord{ + 7, + 11, + 443, + }, + dictWord{8, 11, 281}, + dictWord{12, 11, 174}, + dictWord{13, 11, 83}, + dictWord{141, 11, 261}, + dictWord{139, 11, 384}, + dictWord{6, 11, 2}, + dictWord{ + 7, + 11, + 191, + }, + dictWord{7, 11, 446}, + dictWord{7, 11, 758}, + dictWord{7, 11, 1262}, + dictWord{7, 11, 1737}, + dictWord{8, 11, 22}, + dictWord{8, 11, 270}, + dictWord{ + 8, + 11, + 612, + }, + dictWord{9, 11, 4}, + dictWord{9, 11, 167}, + dictWord{9, 11, 312}, + dictWord{9, 11, 436}, + dictWord{10, 11, 156}, + dictWord{10, 11, 216}, + dictWord{ + 10, + 11, + 311, + }, + dictWord{10, 11, 623}, + dictWord{11, 11, 72}, + dictWord{11, 11, 330}, + dictWord{11, 11, 455}, + dictWord{12, 11, 101}, + dictWord{12, 11, 321}, + dictWord{ + 12, + 11, + 504, + }, + dictWord{12, 11, 530}, + dictWord{12, 11, 543}, + dictWord{13, 11, 17}, + dictWord{13, 11, 156}, + dictWord{13, 11, 334}, + dictWord{14, 11, 48}, + dictWord{15, 11, 70}, + dictWord{17, 11, 60}, + dictWord{148, 11, 64}, + dictWord{6, 10, 331}, + dictWord{136, 10, 623}, + dictWord{135, 0, 1231}, + dictWord{132, 0, 304}, + dictWord{6, 11, 60}, + dictWord{7, 11, 670}, + dictWord{7, 11, 1327}, + dictWord{8, 11, 411}, + dictWord{8, 11, 435}, + dictWord{9, 11, 653}, + dictWord{9, 11, 740}, + dictWord{10, 11, 385}, + dictWord{11, 11, 222}, + dictWord{11, 11, 324}, + dictWord{11, 11, 829}, + dictWord{140, 11, 611}, + dictWord{7, 0, 506}, + dictWord{6, 11, 166}, + dictWord{7, 11, 374}, + dictWord{135, 11, 1174}, + dictWord{14, 11, 43}, + dictWord{146, 11, 21}, + dictWord{135, 11, 1694}, + dictWord{135, 10, 1888}, + dictWord{ + 5, + 11, + 206, + }, + dictWord{134, 11, 398}, + dictWord{135, 11, 50}, + dictWord{150, 0, 26}, + dictWord{6, 0, 53}, + dictWord{6, 0, 199}, + dictWord{7, 0, 1408}, + dictWord{ + 8, + 0, + 32, + }, + dictWord{8, 0, 93}, + dictWord{10, 0, 397}, + dictWord{10, 0, 629}, + dictWord{11, 0, 593}, + dictWord{11, 0, 763}, + dictWord{13, 0, 326}, + dictWord{145, 0, 35}, + dictWord{134, 0, 105}, + dictWord{132, 10, 394}, + dictWord{4, 0, 843}, + dictWord{138, 0, 794}, + dictWord{11, 0, 704}, + dictWord{141, 0, 396}, + dictWord{5, 0, 114}, + dictWord{5, 0, 255}, + dictWord{141, 0, 285}, + dictWord{6, 0, 619}, + dictWord{7, 0, 898}, + dictWord{7, 0, 1092}, + dictWord{8, 0, 485}, + dictWord{18, 0, 28}, + dictWord{ + 19, + 0, + 116, + }, + dictWord{135, 10, 1931}, + dictWord{9, 0, 145}, + dictWord{7, 10, 574}, + dictWord{135, 10, 1719}, + dictWord{7, 0, 2035}, + dictWord{8, 0, 19}, + dictWord{ + 9, + 0, + 89, + }, + dictWord{138, 0, 831}, + dictWord{132, 10, 658}, + dictWord{6, 11, 517}, + dictWord{7, 11, 1159}, + dictWord{10, 11, 621}, + dictWord{139, 11, 192}, + dictWord{ + 7, + 0, + 1933, + }, + dictWord{7, 11, 1933}, + dictWord{9, 10, 781}, + dictWord{10, 10, 144}, + dictWord{11, 10, 385}, + dictWord{13, 10, 161}, + dictWord{13, 10, 228}, + dictWord{13, 10, 268}, + dictWord{148, 10, 107}, + dictWord{136, 10, 374}, + dictWord{10, 11, 223}, + dictWord{139, 11, 645}, + dictWord{135, 0, 1728}, + dictWord{ + 7, + 11, + 64, + }, + dictWord{7, 11, 289}, + dictWord{136, 11, 245}, + dictWord{4, 10, 344}, + dictWord{6, 10, 498}, + dictWord{139, 10, 323}, + dictWord{136, 0, 746}, + dictWord{ + 135, + 10, + 1063, + }, + dictWord{137, 10, 155}, + dictWord{4, 0, 987}, + dictWord{6, 0, 1964}, + dictWord{6, 0, 1974}, + dictWord{6, 0, 1990}, + dictWord{136, 0, 995}, + dictWord{133, 11, 609}, + dictWord{133, 10, 906}, + dictWord{134, 0, 1550}, + dictWord{134, 0, 874}, + dictWord{5, 11, 129}, + dictWord{6, 11, 61}, + dictWord{ + 135, + 11, + 947, + }, + dictWord{4, 0, 1018}, + dictWord{6, 0, 1938}, + dictWord{6, 0, 2021}, + dictWord{134, 0, 2039}, + dictWord{132, 0, 814}, + dictWord{11, 0, 126}, + dictWord{ + 139, + 0, + 287, + }, + dictWord{134, 0, 1264}, + dictWord{5, 0, 955}, + dictWord{136, 0, 814}, + dictWord{141, 11, 506}, + dictWord{132, 11, 314}, + dictWord{6, 0, 981}, + dictWord{139, 11, 1000}, + dictWord{5, 0, 56}, + dictWord{8, 0, 892}, + dictWord{8, 0, 915}, + dictWord{140, 0, 776}, + dictWord{148, 0, 100}, + dictWord{10, 0, 4}, + dictWord{ + 10, + 0, + 13, + }, + dictWord{11, 0, 638}, + dictWord{148, 0, 57}, + dictWord{148, 11, 74}, + dictWord{5, 0, 738}, + dictWord{132, 10, 616}, + dictWord{133, 11, 637}, + dictWord{ + 136, + 10, + 692, + }, + dictWord{133, 0, 758}, + dictWord{132, 10, 305}, + dictWord{137, 11, 590}, + dictWord{5, 11, 280}, + dictWord{135, 11, 1226}, + dictWord{ + 134, + 11, + 494, + }, + dictWord{135, 0, 1112}, + dictWord{133, 11, 281}, + dictWord{13, 0, 44}, + dictWord{14, 0, 214}, + dictWord{5, 10, 214}, + dictWord{7, 10, 603}, + dictWord{ + 8, + 10, + 611, + }, + dictWord{9, 10, 686}, + dictWord{10, 10, 88}, + dictWord{11, 10, 459}, + dictWord{11, 10, 496}, + dictWord{12, 10, 463}, + dictWord{140, 10, 590}, + dictWord{ + 139, + 0, + 328, + }, + dictWord{135, 11, 1064}, + dictWord{137, 0, 133}, + dictWord{7, 0, 168}, + dictWord{13, 0, 196}, + dictWord{141, 0, 237}, + dictWord{134, 10, 1703}, + dictWord{134, 0, 1152}, + dictWord{135, 0, 1245}, + dictWord{5, 0, 110}, + dictWord{6, 0, 169}, + dictWord{6, 0, 1702}, + dictWord{7, 0, 400}, + dictWord{8, 0, 538}, + dictWord{ + 9, + 0, + 184, + }, + dictWord{9, 0, 524}, + dictWord{140, 0, 218}, + dictWord{6, 0, 1816}, + dictWord{10, 0, 871}, + dictWord{12, 0, 769}, + dictWord{140, 0, 785}, + dictWord{ + 132, + 11, + 630, + }, + dictWord{7, 11, 33}, + dictWord{7, 11, 120}, + dictWord{8, 11, 489}, + dictWord{9, 11, 319}, + dictWord{10, 11, 820}, + dictWord{11, 11, 1004}, + dictWord{ + 12, + 11, + 379, + }, + dictWord{13, 11, 117}, + dictWord{13, 11, 412}, + dictWord{14, 11, 25}, + dictWord{15, 11, 52}, + dictWord{15, 11, 161}, + dictWord{16, 11, 47}, + dictWord{149, 11, 2}, + dictWord{6, 0, 133}, + dictWord{8, 0, 413}, + dictWord{9, 0, 353}, + dictWord{139, 0, 993}, + dictWord{145, 10, 19}, + dictWord{4, 11, 937}, + dictWord{ + 133, + 11, + 801, + }, + dictWord{134, 0, 978}, + dictWord{6, 0, 93}, + dictWord{6, 0, 1508}, + dictWord{7, 0, 1422}, + dictWord{7, 0, 1851}, + dictWord{8, 0, 673}, + dictWord{9, 0, 529}, + dictWord{140, 0, 43}, + dictWord{6, 0, 317}, + dictWord{10, 0, 512}, + dictWord{4, 10, 737}, + dictWord{11, 10, 294}, + dictWord{12, 10, 60}, + dictWord{12, 10, 437}, + dictWord{13, 10, 64}, + dictWord{13, 10, 380}, + dictWord{142, 10, 430}, + dictWord{9, 0, 371}, + dictWord{7, 11, 1591}, + dictWord{144, 11, 43}, + dictWord{6, 10, 1758}, + dictWord{8, 10, 520}, + dictWord{9, 10, 345}, + dictWord{9, 10, 403}, + dictWord{142, 10, 350}, + dictWord{5, 0, 526}, + dictWord{10, 10, 242}, + dictWord{ + 138, + 10, + 579, + }, + dictWord{9, 0, 25}, + dictWord{10, 0, 467}, + dictWord{138, 0, 559}, + dictWord{5, 10, 139}, + dictWord{7, 10, 1168}, + dictWord{138, 10, 539}, + dictWord{ + 4, + 0, + 335, + }, + dictWord{135, 0, 942}, + dictWord{140, 0, 754}, + dictWord{132, 11, 365}, + dictWord{11, 0, 182}, + dictWord{142, 0, 195}, + dictWord{142, 11, 29}, + dictWord{ + 5, + 11, + 7, + }, + dictWord{139, 11, 774}, + dictWord{4, 11, 746}, + dictWord{135, 11, 1090}, + dictWord{8, 0, 39}, + dictWord{10, 0, 773}, + dictWord{11, 0, 84}, + dictWord{ + 12, + 0, + 205, + }, + dictWord{142, 0, 1}, + dictWord{5, 0, 601}, + dictWord{5, 0, 870}, + dictWord{5, 11, 360}, + dictWord{136, 11, 237}, + dictWord{132, 0, 181}, + dictWord{ + 136, + 0, + 370, + }, + dictWord{134, 0, 1652}, + dictWord{8, 0, 358}, + dictWord{4, 10, 107}, + dictWord{7, 10, 613}, + dictWord{8, 10, 439}, + dictWord{8, 10, 504}, + dictWord{ + 9, + 10, + 501, + }, + dictWord{10, 10, 383}, + dictWord{139, 10, 477}, + dictWord{132, 10, 229}, + dictWord{137, 11, 785}, + dictWord{4, 0, 97}, + dictWord{5, 0, 147}, + dictWord{ + 6, + 0, + 286, + }, + dictWord{7, 0, 1362}, + dictWord{141, 0, 176}, + dictWord{6, 0, 537}, + dictWord{7, 0, 788}, + dictWord{7, 0, 1816}, + dictWord{132, 10, 903}, + dictWord{ + 140, + 10, + 71, + }, + dictWord{6, 0, 743}, + dictWord{134, 0, 1223}, + dictWord{6, 0, 375}, + dictWord{7, 0, 169}, + dictWord{7, 0, 254}, + dictWord{8, 0, 780}, + dictWord{135, 11, 1493}, + dictWord{7, 0, 1714}, + dictWord{4, 10, 47}, + dictWord{6, 10, 373}, + dictWord{7, 10, 452}, + dictWord{7, 10, 543}, + dictWord{7, 10, 1856}, + dictWord{9, 10, 6}, + dictWord{ + 11, + 10, + 257, + }, + dictWord{139, 10, 391}, + dictWord{6, 0, 896}, + dictWord{136, 0, 1003}, + dictWord{135, 0, 1447}, + dictWord{137, 11, 341}, + dictWord{5, 10, 980}, + dictWord{134, 10, 1754}, + dictWord{145, 11, 22}, + dictWord{4, 11, 277}, + dictWord{5, 11, 608}, + dictWord{6, 11, 493}, + dictWord{7, 11, 457}, + dictWord{ + 140, + 11, + 384, + }, + dictWord{7, 10, 536}, + dictWord{7, 10, 1331}, + dictWord{136, 10, 143}, + dictWord{140, 0, 744}, + dictWord{7, 11, 27}, + dictWord{135, 11, 316}, + dictWord{ + 18, + 0, + 126, + }, + dictWord{5, 10, 19}, + dictWord{134, 10, 533}, + dictWord{4, 0, 788}, + dictWord{11, 0, 41}, + dictWord{5, 11, 552}, + dictWord{5, 11, 586}, + dictWord{ + 5, + 11, + 676, + }, + dictWord{6, 11, 448}, + dictWord{8, 11, 244}, + dictWord{11, 11, 1}, + dictWord{11, 11, 41}, + dictWord{13, 11, 3}, + dictWord{16, 11, 54}, + dictWord{17, 11, 4}, + dictWord{146, 11, 13}, + dictWord{4, 0, 985}, + dictWord{6, 0, 1801}, + dictWord{4, 11, 401}, + dictWord{137, 11, 264}, + dictWord{5, 10, 395}, + dictWord{5, 10, 951}, + dictWord{134, 10, 1776}, + dictWord{5, 0, 629}, + dictWord{135, 0, 1549}, + dictWord{11, 10, 663}, + dictWord{12, 10, 210}, + dictWord{13, 10, 166}, + dictWord{ + 13, + 10, + 310, + }, + dictWord{14, 10, 373}, + dictWord{147, 10, 43}, + dictWord{9, 11, 543}, + dictWord{10, 11, 524}, + dictWord{11, 11, 30}, + dictWord{12, 11, 524}, + dictWord{ + 14, + 11, + 315, + }, + dictWord{16, 11, 18}, + dictWord{20, 11, 26}, + dictWord{148, 11, 65}, + dictWord{4, 11, 205}, + dictWord{5, 11, 623}, + dictWord{7, 11, 104}, + dictWord{ + 136, + 11, + 519, + }, + dictWord{5, 0, 293}, + dictWord{134, 0, 601}, + dictWord{7, 11, 579}, + dictWord{9, 11, 41}, + dictWord{9, 11, 244}, + dictWord{9, 11, 669}, + dictWord{ + 10, + 11, + 5, + }, + dictWord{11, 11, 861}, + dictWord{11, 11, 951}, + dictWord{139, 11, 980}, + dictWord{132, 11, 717}, + dictWord{132, 10, 695}, + dictWord{7, 10, 497}, + dictWord{ + 9, + 10, + 387, + }, + dictWord{147, 10, 81}, + dictWord{132, 0, 420}, + dictWord{142, 0, 37}, + dictWord{6, 0, 1134}, + dictWord{6, 0, 1900}, + dictWord{12, 0, 830}, + dictWord{ + 12, + 0, + 878, + }, + dictWord{12, 0, 894}, + dictWord{15, 0, 221}, + dictWord{143, 0, 245}, + dictWord{132, 11, 489}, + dictWord{7, 0, 1570}, + dictWord{140, 0, 542}, + dictWord{ + 8, + 0, + 933, + }, + dictWord{136, 0, 957}, + dictWord{6, 0, 1371}, + dictWord{7, 0, 31}, + dictWord{8, 0, 373}, + dictWord{5, 10, 284}, + dictWord{6, 10, 49}, + dictWord{6, 10, 350}, + dictWord{7, 10, 377}, + dictWord{7, 10, 1693}, + dictWord{8, 10, 678}, + dictWord{9, 10, 161}, + dictWord{9, 10, 585}, + dictWord{9, 10, 671}, + dictWord{9, 10, 839}, + dictWord{11, 10, 912}, + dictWord{141, 10, 427}, + dictWord{135, 11, 892}, + dictWord{4, 0, 325}, + dictWord{138, 0, 125}, + dictWord{139, 11, 47}, + dictWord{ + 132, + 10, + 597, + }, + dictWord{138, 0, 323}, + dictWord{6, 0, 1547}, + dictWord{7, 11, 1605}, + dictWord{9, 11, 473}, + dictWord{11, 11, 962}, + dictWord{146, 11, 139}, + dictWord{ + 139, + 10, + 908, + }, + dictWord{7, 11, 819}, + dictWord{9, 11, 26}, + dictWord{9, 11, 392}, + dictWord{10, 11, 152}, + dictWord{10, 11, 226}, + dictWord{11, 11, 19}, + dictWord{ + 12, + 11, + 276, + }, + dictWord{12, 11, 426}, + dictWord{12, 11, 589}, + dictWord{13, 11, 460}, + dictWord{15, 11, 97}, + dictWord{19, 11, 48}, + dictWord{148, 11, 104}, + dictWord{135, 11, 51}, + dictWord{4, 0, 718}, + dictWord{135, 0, 1216}, + dictWord{6, 0, 1896}, + dictWord{6, 0, 1905}, + dictWord{6, 0, 1912}, + dictWord{9, 0, 947}, + dictWord{ + 9, + 0, + 974, + }, + dictWord{12, 0, 809}, + dictWord{12, 0, 850}, + dictWord{12, 0, 858}, + dictWord{12, 0, 874}, + dictWord{12, 0, 887}, + dictWord{12, 0, 904}, + dictWord{ + 12, + 0, + 929, + }, + dictWord{12, 0, 948}, + dictWord{12, 0, 952}, + dictWord{15, 0, 198}, + dictWord{15, 0, 206}, + dictWord{15, 0, 220}, + dictWord{15, 0, 227}, + dictWord{15, 0, 247}, + dictWord{18, 0, 188}, + dictWord{21, 0, 48}, + dictWord{21, 0, 50}, + dictWord{24, 0, 25}, + dictWord{24, 0, 29}, + dictWord{7, 11, 761}, + dictWord{7, 11, 1051}, + dictWord{ + 137, + 11, + 545, + }, + dictWord{5, 0, 124}, + dictWord{5, 0, 144}, + dictWord{6, 0, 548}, + dictWord{7, 0, 15}, + dictWord{7, 0, 153}, + dictWord{137, 0, 629}, + dictWord{ + 135, + 11, + 606, + }, + dictWord{135, 10, 2014}, + dictWord{7, 10, 2007}, + dictWord{9, 11, 46}, + dictWord{9, 10, 101}, + dictWord{9, 10, 450}, + dictWord{10, 10, 66}, + dictWord{ + 10, + 10, + 842, + }, + dictWord{11, 10, 536}, + dictWord{140, 10, 587}, + dictWord{6, 0, 75}, + dictWord{7, 0, 1531}, + dictWord{8, 0, 416}, + dictWord{9, 0, 240}, + dictWord{9, 0, 275}, + dictWord{10, 0, 100}, + dictWord{11, 0, 658}, + dictWord{11, 0, 979}, + dictWord{12, 0, 86}, + dictWord{14, 0, 207}, + dictWord{15, 0, 20}, + dictWord{143, 0, 25}, + dictWord{ + 5, + 0, + 141, + }, + dictWord{5, 0, 915}, + dictWord{6, 0, 1783}, + dictWord{7, 0, 211}, + dictWord{7, 0, 698}, + dictWord{7, 0, 1353}, + dictWord{9, 0, 83}, + dictWord{9, 0, 281}, + dictWord{ + 10, + 0, + 376, + }, + dictWord{10, 0, 431}, + dictWord{11, 0, 543}, + dictWord{12, 0, 664}, + dictWord{13, 0, 280}, + dictWord{13, 0, 428}, + dictWord{14, 0, 61}, + dictWord{ + 14, + 0, + 128, + }, + dictWord{17, 0, 52}, + dictWord{145, 0, 81}, + dictWord{132, 11, 674}, + dictWord{135, 0, 533}, + dictWord{149, 0, 6}, + dictWord{132, 11, 770}, + dictWord{ + 133, + 0, + 538, + }, + dictWord{5, 11, 79}, + dictWord{7, 11, 1027}, + dictWord{7, 11, 1477}, + dictWord{139, 11, 52}, + dictWord{139, 10, 62}, + dictWord{4, 0, 338}, + dictWord{ + 133, + 0, + 400, + }, + dictWord{5, 11, 789}, + dictWord{134, 11, 195}, + dictWord{4, 11, 251}, + dictWord{4, 11, 688}, + dictWord{7, 11, 513}, + dictWord{7, 11, 1284}, + dictWord{ + 9, + 11, + 87, + }, + dictWord{138, 11, 365}, + dictWord{134, 10, 1766}, + dictWord{6, 0, 0}, + dictWord{7, 0, 84}, + dictWord{11, 0, 895}, + dictWord{145, 0, 11}, + dictWord{ + 139, + 0, + 892, + }, + dictWord{4, 0, 221}, + dictWord{5, 0, 659}, + dictWord{7, 0, 697}, + dictWord{7, 0, 1211}, + dictWord{138, 0, 284}, + dictWord{133, 0, 989}, + dictWord{ + 133, + 11, + 889, + }, + dictWord{4, 11, 160}, + dictWord{5, 11, 330}, + dictWord{7, 11, 1434}, + dictWord{136, 11, 174}, + dictWord{6, 10, 1665}, + dictWord{7, 10, 256}, + dictWord{ + 7, + 10, + 1388, + }, + dictWord{10, 10, 499}, + dictWord{139, 10, 670}, + dictWord{7, 0, 848}, + dictWord{4, 10, 22}, + dictWord{5, 10, 10}, + dictWord{136, 10, 97}, + dictWord{ + 138, + 0, + 507, + }, + dictWord{133, 10, 481}, + dictWord{4, 0, 188}, + dictWord{135, 0, 805}, + dictWord{5, 0, 884}, + dictWord{6, 0, 732}, + dictWord{139, 0, 991}, + dictWord{ + 135, + 11, + 968, + }, + dictWord{11, 11, 636}, + dictWord{15, 11, 145}, + dictWord{17, 11, 34}, + dictWord{19, 11, 50}, + dictWord{151, 11, 20}, + dictWord{7, 0, 959}, + dictWord{ + 16, + 0, + 60, + }, + dictWord{6, 10, 134}, + dictWord{7, 10, 437}, + dictWord{9, 10, 37}, + dictWord{14, 10, 285}, + dictWord{142, 10, 371}, + dictWord{7, 10, 486}, + dictWord{ + 8, + 10, + 155, + }, + dictWord{11, 10, 93}, + dictWord{140, 10, 164}, + dictWord{134, 0, 1653}, + dictWord{7, 0, 337}, + dictWord{133, 10, 591}, + dictWord{6, 0, 1989}, + dictWord{ + 8, + 0, + 922, + }, + dictWord{8, 0, 978}, + dictWord{133, 11, 374}, + dictWord{132, 0, 638}, + dictWord{138, 0, 500}, + dictWord{133, 11, 731}, + dictWord{5, 10, 380}, + dictWord{ + 5, + 10, + 650, + }, + dictWord{136, 10, 310}, + dictWord{138, 11, 381}, + dictWord{4, 10, 364}, + dictWord{7, 10, 1156}, + dictWord{7, 10, 1187}, + dictWord{137, 10, 409}, + dictWord{137, 11, 224}, + dictWord{140, 0, 166}, + dictWord{134, 10, 482}, + dictWord{4, 11, 626}, + dictWord{5, 11, 642}, + dictWord{6, 11, 425}, + dictWord{ + 10, + 11, + 202, + }, + dictWord{139, 11, 141}, + dictWord{4, 10, 781}, + dictWord{6, 10, 487}, + dictWord{7, 10, 926}, + dictWord{8, 10, 263}, + dictWord{139, 10, 500}, + dictWord{ + 135, + 0, + 418, + }, + dictWord{4, 10, 94}, + dictWord{135, 10, 1265}, + dictWord{136, 0, 760}, + dictWord{132, 10, 417}, + dictWord{136, 11, 835}, + dictWord{5, 10, 348}, + dictWord{134, 10, 522}, + dictWord{6, 0, 1277}, + dictWord{134, 0, 1538}, + dictWord{139, 11, 541}, + dictWord{135, 11, 1597}, + dictWord{5, 11, 384}, + dictWord{ + 8, + 11, + 455, + }, + dictWord{140, 11, 48}, + dictWord{136, 0, 770}, + dictWord{5, 11, 264}, + dictWord{134, 11, 184}, + dictWord{4, 0, 89}, + dictWord{5, 0, 489}, + dictWord{ + 6, + 0, + 315, + }, + dictWord{7, 0, 553}, + dictWord{7, 0, 1745}, + dictWord{138, 0, 243}, + dictWord{4, 10, 408}, + dictWord{4, 10, 741}, + dictWord{135, 10, 500}, + dictWord{ + 134, + 0, + 1396, + }, + dictWord{133, 0, 560}, + dictWord{6, 0, 1658}, + dictWord{9, 0, 3}, + dictWord{10, 0, 154}, + dictWord{11, 0, 641}, + dictWord{13, 0, 85}, + dictWord{13, 0, 201}, + dictWord{141, 0, 346}, + dictWord{135, 11, 1595}, + dictWord{5, 11, 633}, + dictWord{6, 11, 28}, + dictWord{7, 11, 219}, + dictWord{135, 11, 1323}, + dictWord{ + 9, + 11, + 769, + }, + dictWord{140, 11, 185}, + dictWord{135, 11, 785}, + dictWord{7, 11, 359}, + dictWord{8, 11, 243}, + dictWord{140, 11, 175}, + dictWord{138, 0, 586}, + dictWord{ + 7, + 0, + 1271, + }, + dictWord{134, 10, 73}, + dictWord{132, 11, 105}, + dictWord{4, 0, 166}, + dictWord{5, 0, 505}, + dictWord{134, 0, 1670}, + dictWord{133, 10, 576}, + dictWord{4, 11, 324}, + dictWord{138, 11, 104}, + dictWord{142, 10, 231}, + dictWord{6, 0, 637}, + dictWord{7, 10, 1264}, + dictWord{7, 10, 1678}, + dictWord{ + 11, + 10, + 945, + }, + dictWord{12, 10, 341}, + dictWord{12, 10, 471}, + dictWord{12, 10, 569}, + dictWord{23, 11, 21}, + dictWord{151, 11, 23}, + dictWord{8, 11, 559}, + dictWord{ + 141, + 11, + 109, + }, + dictWord{134, 0, 1947}, + dictWord{7, 0, 445}, + dictWord{8, 0, 307}, + dictWord{8, 0, 704}, + dictWord{10, 0, 41}, + dictWord{10, 0, 439}, + dictWord{ + 11, + 0, + 237, + }, + dictWord{11, 0, 622}, + dictWord{140, 0, 201}, + dictWord{135, 11, 963}, + dictWord{135, 0, 1977}, + dictWord{4, 0, 189}, + dictWord{5, 0, 713}, + dictWord{ + 136, + 0, + 57, + }, + dictWord{138, 0, 371}, + dictWord{135, 10, 538}, + dictWord{132, 0, 552}, + dictWord{6, 0, 883}, + dictWord{133, 10, 413}, + dictWord{6, 0, 923}, + dictWord{ + 132, + 11, + 758, + }, + dictWord{138, 11, 215}, + dictWord{136, 10, 495}, + dictWord{7, 10, 54}, + dictWord{8, 10, 312}, + dictWord{10, 10, 191}, + dictWord{10, 10, 614}, + dictWord{140, 10, 567}, + dictWord{7, 11, 351}, + dictWord{139, 11, 128}, + dictWord{7, 0, 875}, + dictWord{6, 10, 468}, + dictWord{7, 10, 1478}, + dictWord{8, 10, 530}, + dictWord{142, 10, 290}, + dictWord{135, 0, 1788}, + dictWord{17, 0, 49}, + dictWord{133, 11, 918}, + dictWord{12, 11, 398}, + dictWord{20, 11, 39}, + dictWord{ + 21, + 11, + 11, + }, + dictWord{150, 11, 41}, + dictWord{10, 0, 661}, + dictWord{6, 10, 484}, + dictWord{135, 10, 822}, + dictWord{135, 0, 1945}, + dictWord{134, 0, 794}, + dictWord{ + 137, + 10, + 900, + }, + dictWord{135, 10, 1335}, + dictWord{6, 10, 1724}, + dictWord{135, 10, 2022}, + dictWord{132, 11, 340}, + dictWord{134, 0, 1135}, + dictWord{ + 4, + 0, + 784, + }, + dictWord{133, 0, 745}, + dictWord{5, 0, 84}, + dictWord{134, 0, 163}, + dictWord{133, 0, 410}, + dictWord{4, 0, 976}, + dictWord{5, 11, 985}, + dictWord{7, 11, 509}, + dictWord{7, 11, 529}, + dictWord{145, 11, 96}, + dictWord{132, 10, 474}, + dictWord{134, 0, 703}, + dictWord{135, 11, 1919}, + dictWord{5, 0, 322}, + dictWord{ + 8, + 0, + 186, + }, + dictWord{9, 0, 262}, + dictWord{10, 0, 187}, + dictWord{142, 0, 208}, + dictWord{135, 10, 1504}, + dictWord{133, 0, 227}, + dictWord{9, 0, 560}, + dictWord{ + 13, + 0, + 208, + }, + dictWord{133, 10, 305}, + dictWord{132, 11, 247}, + dictWord{7, 0, 1395}, + dictWord{8, 0, 486}, + dictWord{9, 0, 236}, + dictWord{9, 0, 878}, + dictWord{ + 10, + 0, + 218, + }, + dictWord{11, 0, 95}, + dictWord{19, 0, 17}, + dictWord{147, 0, 31}, + dictWord{7, 0, 2043}, + dictWord{8, 0, 672}, + dictWord{141, 0, 448}, + dictWord{4, 11, 184}, + dictWord{5, 11, 390}, + dictWord{6, 11, 337}, + dictWord{7, 11, 23}, + dictWord{7, 11, 494}, + dictWord{7, 11, 618}, + dictWord{7, 11, 1456}, + dictWord{8, 11, 27}, + dictWord{ + 8, + 11, + 599, + }, + dictWord{10, 11, 153}, + dictWord{139, 11, 710}, + dictWord{135, 0, 466}, + dictWord{135, 10, 1236}, + dictWord{6, 0, 167}, + dictWord{7, 0, 186}, + dictWord{7, 0, 656}, + dictWord{10, 0, 643}, + dictWord{4, 10, 480}, + dictWord{6, 10, 302}, + dictWord{6, 10, 1642}, + dictWord{7, 10, 837}, + dictWord{7, 10, 1547}, + dictWord{ + 7, + 10, + 1657, + }, + dictWord{8, 10, 429}, + dictWord{9, 10, 228}, + dictWord{13, 10, 289}, + dictWord{13, 10, 343}, + dictWord{147, 10, 101}, + dictWord{134, 0, 1428}, + dictWord{134, 0, 1440}, + dictWord{5, 0, 412}, + dictWord{7, 10, 278}, + dictWord{10, 10, 739}, + dictWord{11, 10, 708}, + dictWord{141, 10, 348}, + dictWord{ + 134, + 0, + 1118, + }, + dictWord{136, 0, 562}, + dictWord{148, 11, 46}, + dictWord{9, 0, 316}, + dictWord{139, 0, 256}, + dictWord{134, 0, 1771}, + dictWord{135, 0, 1190}, + dictWord{137, 0, 132}, + dictWord{10, 11, 227}, + dictWord{11, 11, 497}, + dictWord{11, 11, 709}, + dictWord{140, 11, 415}, + dictWord{143, 0, 66}, + dictWord{6, 11, 360}, + dictWord{7, 11, 1664}, + dictWord{136, 11, 478}, + dictWord{144, 10, 28}, + dictWord{4, 0, 317}, + dictWord{135, 0, 1279}, + dictWord{5, 0, 63}, + dictWord{ + 133, + 0, + 509, + }, + dictWord{136, 11, 699}, + dictWord{145, 10, 36}, + dictWord{134, 0, 1475}, + dictWord{11, 11, 343}, + dictWord{142, 11, 127}, + dictWord{132, 11, 739}, + dictWord{132, 0, 288}, + dictWord{135, 11, 1757}, + dictWord{8, 0, 89}, + dictWord{8, 0, 620}, + dictWord{9, 0, 608}, + dictWord{11, 0, 628}, + dictWord{12, 0, 322}, + dictWord{143, 0, 124}, + dictWord{134, 0, 1225}, + dictWord{7, 0, 1189}, + dictWord{4, 11, 67}, + dictWord{5, 11, 422}, + dictWord{6, 10, 363}, + dictWord{7, 11, 1037}, + dictWord{7, 11, 1289}, + dictWord{7, 11, 1555}, + dictWord{7, 10, 1955}, + dictWord{8, 10, 725}, + dictWord{9, 11, 741}, + dictWord{145, 11, 108}, + dictWord{ + 134, + 0, + 1468, + }, + dictWord{6, 0, 689}, + dictWord{134, 0, 1451}, + dictWord{138, 0, 120}, + dictWord{151, 0, 1}, + dictWord{137, 10, 805}, + dictWord{142, 0, 329}, + dictWord{ + 5, + 10, + 813, + }, + dictWord{135, 10, 2046}, + dictWord{135, 0, 226}, + dictWord{138, 11, 96}, + dictWord{7, 0, 1855}, + dictWord{5, 10, 712}, + dictWord{11, 10, 17}, + dictWord{13, 10, 321}, + dictWord{144, 10, 67}, + dictWord{9, 0, 461}, + dictWord{6, 10, 320}, + dictWord{7, 10, 781}, + dictWord{7, 10, 1921}, + dictWord{9, 10, 55}, + dictWord{ + 10, + 10, + 186, + }, + dictWord{10, 10, 273}, + dictWord{10, 10, 664}, + dictWord{10, 10, 801}, + dictWord{11, 10, 996}, + dictWord{11, 10, 997}, + dictWord{13, 10, 157}, + dictWord{142, 10, 170}, + dictWord{8, 11, 203}, + dictWord{8, 10, 271}, + dictWord{11, 11, 823}, + dictWord{11, 11, 846}, + dictWord{12, 11, 482}, + dictWord{ + 13, + 11, + 133, + }, + dictWord{13, 11, 277}, + dictWord{13, 11, 302}, + dictWord{13, 11, 464}, + dictWord{14, 11, 205}, + dictWord{142, 11, 221}, + dictWord{135, 0, 1346}, + dictWord{4, 11, 449}, + dictWord{133, 11, 718}, + dictWord{134, 0, 85}, + dictWord{14, 0, 299}, + dictWord{7, 10, 103}, + dictWord{7, 10, 863}, + dictWord{11, 10, 184}, + dictWord{145, 10, 62}, + dictWord{4, 11, 355}, + dictWord{6, 11, 311}, + dictWord{9, 11, 256}, + dictWord{138, 11, 404}, + dictWord{137, 10, 659}, + dictWord{ + 138, + 11, + 758, + }, + dictWord{133, 11, 827}, + dictWord{5, 11, 64}, + dictWord{140, 11, 581}, + dictWord{134, 0, 1171}, + dictWord{4, 11, 442}, + dictWord{7, 11, 1047}, + dictWord{ + 7, + 11, + 1352, + }, + dictWord{135, 11, 1643}, + dictWord{132, 0, 980}, + dictWord{5, 11, 977}, + dictWord{6, 11, 288}, + dictWord{7, 11, 528}, + dictWord{135, 11, 1065}, + dictWord{5, 0, 279}, + dictWord{6, 0, 235}, + dictWord{7, 0, 468}, + dictWord{8, 0, 446}, + dictWord{9, 0, 637}, + dictWord{10, 0, 717}, + dictWord{11, 0, 738}, + dictWord{ + 140, + 0, + 514, + }, + dictWord{132, 0, 293}, + dictWord{11, 10, 337}, + dictWord{142, 10, 303}, + dictWord{136, 11, 285}, + dictWord{5, 0, 17}, + dictWord{6, 0, 371}, + dictWord{ + 9, + 0, + 528, + }, + dictWord{12, 0, 364}, + dictWord{132, 11, 254}, + dictWord{5, 10, 77}, + dictWord{7, 10, 1455}, + dictWord{10, 10, 843}, + dictWord{147, 10, 73}, + dictWord{ + 150, + 0, + 5, + }, + dictWord{132, 10, 458}, + dictWord{6, 11, 12}, + dictWord{7, 11, 1219}, + dictWord{145, 11, 73}, + dictWord{135, 10, 1420}, + dictWord{6, 10, 109}, + dictWord{138, 10, 382}, + dictWord{135, 11, 125}, + dictWord{6, 10, 330}, + dictWord{7, 10, 1084}, + dictWord{139, 10, 142}, + dictWord{6, 11, 369}, + dictWord{ + 6, + 11, + 502, + }, + dictWord{7, 11, 1036}, + dictWord{8, 11, 348}, + dictWord{9, 11, 452}, + dictWord{10, 11, 26}, + dictWord{11, 11, 224}, + dictWord{11, 11, 387}, + dictWord{ + 11, + 11, + 772, + }, + dictWord{12, 11, 95}, + dictWord{12, 11, 629}, + dictWord{13, 11, 195}, + dictWord{13, 11, 207}, + dictWord{13, 11, 241}, + dictWord{14, 11, 260}, + dictWord{ + 14, + 11, + 270, + }, + dictWord{143, 11, 140}, + dictWord{132, 11, 269}, + dictWord{5, 11, 480}, + dictWord{7, 11, 532}, + dictWord{7, 11, 1197}, + dictWord{7, 11, 1358}, + dictWord{8, 11, 291}, + dictWord{11, 11, 349}, + dictWord{142, 11, 396}, + dictWord{150, 0, 48}, + dictWord{10, 0, 601}, + dictWord{13, 0, 353}, + dictWord{141, 0, 376}, + dictWord{5, 0, 779}, + dictWord{5, 0, 807}, + dictWord{6, 0, 1655}, + dictWord{134, 0, 1676}, + dictWord{142, 11, 223}, + dictWord{4, 0, 196}, + dictWord{5, 0, 558}, + dictWord{133, 0, 949}, + dictWord{148, 11, 15}, + dictWord{135, 11, 1764}, + dictWord{134, 0, 1322}, + dictWord{132, 0, 752}, + dictWord{139, 0, 737}, + dictWord{ + 135, + 11, + 657, + }, + dictWord{136, 11, 533}, + dictWord{135, 0, 412}, + dictWord{4, 0, 227}, + dictWord{5, 0, 159}, + dictWord{5, 0, 409}, + dictWord{7, 0, 80}, + dictWord{8, 0, 556}, + dictWord{10, 0, 479}, + dictWord{12, 0, 418}, + dictWord{14, 0, 50}, + dictWord{14, 0, 123}, + dictWord{14, 0, 192}, + dictWord{14, 0, 249}, + dictWord{14, 0, 295}, + dictWord{143, 0, 27}, + dictWord{7, 0, 1470}, + dictWord{8, 0, 66}, + dictWord{8, 0, 137}, + dictWord{8, 0, 761}, + dictWord{9, 0, 638}, + dictWord{11, 0, 80}, + dictWord{11, 0, 212}, + dictWord{11, 0, 368}, + dictWord{11, 0, 418}, + dictWord{12, 0, 8}, + dictWord{13, 0, 15}, + dictWord{16, 0, 61}, + dictWord{17, 0, 59}, + dictWord{19, 0, 28}, + dictWord{ + 148, + 0, + 84, + }, + dictWord{135, 10, 1985}, + dictWord{4, 11, 211}, + dictWord{4, 11, 332}, + dictWord{5, 11, 335}, + dictWord{6, 11, 238}, + dictWord{7, 11, 269}, + dictWord{ + 7, + 11, + 811, + }, + dictWord{7, 11, 1797}, + dictWord{8, 10, 122}, + dictWord{8, 11, 836}, + dictWord{9, 11, 507}, + dictWord{141, 11, 242}, + dictWord{6, 0, 683}, + dictWord{ + 134, + 0, + 1252, + }, + dictWord{4, 0, 873}, + dictWord{132, 10, 234}, + dictWord{134, 0, 835}, + dictWord{6, 0, 38}, + dictWord{7, 0, 1220}, + dictWord{8, 0, 185}, + dictWord{8, 0, 256}, + dictWord{9, 0, 22}, + dictWord{9, 0, 331}, + dictWord{10, 0, 738}, + dictWord{11, 0, 205}, + dictWord{11, 0, 540}, + dictWord{11, 0, 746}, + dictWord{13, 0, 465}, + dictWord{ + 14, + 0, + 88, + }, + dictWord{142, 0, 194}, + dictWord{138, 0, 986}, + dictWord{5, 11, 1009}, + dictWord{12, 11, 582}, + dictWord{146, 11, 131}, + dictWord{4, 0, 159}, + dictWord{ + 6, + 0, + 115, + }, + dictWord{7, 0, 252}, + dictWord{7, 0, 257}, + dictWord{7, 0, 1928}, + dictWord{8, 0, 69}, + dictWord{9, 0, 384}, + dictWord{10, 0, 91}, + dictWord{10, 0, 615}, + dictWord{ + 12, + 0, + 375, + }, + dictWord{14, 0, 235}, + dictWord{18, 0, 117}, + dictWord{147, 0, 123}, + dictWord{133, 0, 911}, + dictWord{136, 0, 278}, + dictWord{5, 10, 430}, + dictWord{ + 5, + 10, + 932, + }, + dictWord{6, 10, 131}, + dictWord{7, 10, 417}, + dictWord{9, 10, 522}, + dictWord{11, 10, 314}, + dictWord{141, 10, 390}, + dictWord{14, 10, 149}, + dictWord{14, 10, 399}, + dictWord{143, 10, 57}, + dictWord{4, 0, 151}, + dictWord{7, 0, 1567}, + dictWord{136, 0, 749}, + dictWord{5, 11, 228}, + dictWord{6, 11, 203}, + dictWord{ + 7, + 11, + 156, + }, + dictWord{8, 11, 347}, + dictWord{137, 11, 265}, + dictWord{132, 10, 507}, + dictWord{10, 0, 989}, + dictWord{140, 0, 956}, + dictWord{133, 0, 990}, + dictWord{5, 0, 194}, + dictWord{6, 0, 927}, + dictWord{7, 0, 1662}, + dictWord{9, 0, 90}, + dictWord{140, 0, 564}, + dictWord{4, 10, 343}, + dictWord{133, 10, 511}, + dictWord{133, 0, 425}, + dictWord{7, 10, 455}, + dictWord{138, 10, 591}, + dictWord{4, 0, 774}, + dictWord{7, 11, 476}, + dictWord{7, 11, 1592}, + dictWord{138, 11, 87}, + dictWord{5, 0, 971}, + dictWord{135, 10, 1381}, + dictWord{5, 11, 318}, + dictWord{147, 11, 121}, + dictWord{5, 11, 291}, + dictWord{7, 11, 765}, + dictWord{9, 11, 389}, + dictWord{140, 11, 548}, + dictWord{134, 10, 575}, + dictWord{4, 0, 827}, + dictWord{12, 0, 646}, + dictWord{12, 0, 705}, + dictWord{12, 0, 712}, + dictWord{140, 0, 714}, + dictWord{139, 0, 752}, + dictWord{137, 0, 662}, + dictWord{5, 0, 72}, + dictWord{6, 0, 264}, + dictWord{7, 0, 21}, + dictWord{7, 0, 46}, + dictWord{7, 0, 2013}, + dictWord{ + 8, + 0, + 215, + }, + dictWord{8, 0, 513}, + dictWord{10, 0, 266}, + dictWord{139, 0, 22}, + dictWord{139, 11, 522}, + dictWord{6, 0, 239}, + dictWord{7, 0, 118}, + dictWord{10, 0, 95}, + dictWord{11, 0, 603}, + dictWord{13, 0, 443}, + dictWord{14, 0, 160}, + dictWord{143, 0, 4}, + dictWord{6, 0, 431}, + dictWord{134, 0, 669}, + dictWord{7, 10, 1127}, + dictWord{ + 7, + 10, + 1572, + }, + dictWord{10, 10, 297}, + dictWord{10, 10, 422}, + dictWord{11, 10, 764}, + dictWord{11, 10, 810}, + dictWord{12, 10, 264}, + dictWord{13, 10, 102}, + dictWord{13, 10, 300}, + dictWord{13, 10, 484}, + dictWord{14, 10, 147}, + dictWord{14, 10, 229}, + dictWord{17, 10, 71}, + dictWord{18, 10, 118}, + dictWord{ + 147, + 10, + 120, + }, + dictWord{5, 0, 874}, + dictWord{6, 0, 1677}, + dictWord{15, 0, 0}, + dictWord{10, 11, 525}, + dictWord{139, 11, 82}, + dictWord{6, 0, 65}, + dictWord{7, 0, 939}, + dictWord{ + 7, + 0, + 1172, + }, + dictWord{7, 0, 1671}, + dictWord{9, 0, 540}, + dictWord{10, 0, 696}, + dictWord{11, 0, 265}, + dictWord{11, 0, 732}, + dictWord{11, 0, 928}, + dictWord{ + 11, + 0, + 937, + }, + dictWord{141, 0, 438}, + dictWord{134, 0, 1350}, + dictWord{136, 11, 547}, + dictWord{132, 11, 422}, + dictWord{5, 11, 355}, + dictWord{145, 11, 0}, + dictWord{137, 11, 905}, + dictWord{5, 0, 682}, + dictWord{135, 0, 1887}, + dictWord{132, 0, 809}, + dictWord{4, 0, 696}, + dictWord{133, 11, 865}, + dictWord{6, 0, 1074}, + dictWord{6, 0, 1472}, + dictWord{14, 10, 35}, + dictWord{142, 10, 191}, + dictWord{5, 11, 914}, + dictWord{134, 11, 1625}, + dictWord{133, 11, 234}, + dictWord{ + 135, + 11, + 1383, + }, + dictWord{137, 11, 780}, + dictWord{132, 10, 125}, + dictWord{4, 0, 726}, + dictWord{133, 0, 630}, + dictWord{8, 0, 802}, + dictWord{136, 0, 838}, + dictWord{132, 10, 721}, + dictWord{6, 0, 1337}, + dictWord{7, 0, 776}, + dictWord{19, 0, 56}, + dictWord{136, 10, 145}, + dictWord{132, 0, 970}, + dictWord{7, 10, 792}, + dictWord{8, 10, 147}, + dictWord{10, 10, 821}, + dictWord{139, 10, 1021}, + dictWord{139, 10, 970}, + dictWord{8, 0, 940}, + dictWord{137, 0, 797}, + dictWord{ + 135, + 11, + 1312, + }, + dictWord{9, 0, 248}, + dictWord{10, 0, 400}, + dictWord{7, 11, 816}, + dictWord{7, 11, 1241}, + dictWord{7, 10, 1999}, + dictWord{9, 11, 283}, + dictWord{ + 9, + 11, + 520, + }, + dictWord{10, 11, 213}, + dictWord{10, 11, 307}, + dictWord{10, 11, 463}, + dictWord{10, 11, 671}, + dictWord{10, 11, 746}, + dictWord{11, 11, 401}, + dictWord{ + 11, + 11, + 794, + }, + dictWord{12, 11, 517}, + dictWord{18, 11, 107}, + dictWord{147, 11, 115}, + dictWord{6, 0, 1951}, + dictWord{134, 0, 2040}, + dictWord{ + 135, + 11, + 339, + }, + dictWord{13, 0, 41}, + dictWord{15, 0, 93}, + dictWord{5, 10, 168}, + dictWord{5, 10, 930}, + dictWord{8, 10, 74}, + dictWord{9, 10, 623}, + dictWord{12, 10, 500}, + dictWord{140, 10, 579}, + dictWord{6, 0, 118}, + dictWord{7, 0, 215}, + dictWord{7, 0, 1521}, + dictWord{140, 0, 11}, + dictWord{6, 10, 220}, + dictWord{7, 10, 1101}, + dictWord{141, 10, 105}, + dictWord{6, 11, 421}, + dictWord{7, 11, 61}, + dictWord{7, 11, 1540}, + dictWord{10, 11, 11}, + dictWord{138, 11, 501}, + dictWord{7, 0, 615}, + dictWord{138, 0, 251}, + dictWord{140, 11, 631}, + dictWord{135, 0, 1044}, + dictWord{6, 10, 19}, + dictWord{7, 10, 1413}, + dictWord{139, 10, 428}, + dictWord{ + 133, + 0, + 225, + }, + dictWord{7, 10, 96}, + dictWord{8, 10, 401}, + dictWord{8, 10, 703}, + dictWord{137, 10, 896}, + dictWord{145, 10, 116}, + dictWord{6, 11, 102}, + dictWord{ + 7, + 11, + 72, + }, + dictWord{15, 11, 142}, + dictWord{147, 11, 67}, + dictWord{7, 10, 1961}, + dictWord{7, 10, 1965}, + dictWord{8, 10, 702}, + dictWord{136, 10, 750}, + dictWord{ + 7, + 10, + 2030, + }, + dictWord{8, 10, 150}, + dictWord{8, 10, 737}, + dictWord{12, 10, 366}, + dictWord{151, 11, 30}, + dictWord{4, 0, 370}, + dictWord{5, 0, 756}, + dictWord{ + 7, + 0, + 1326, + }, + dictWord{135, 11, 823}, + dictWord{8, 10, 800}, + dictWord{9, 10, 148}, + dictWord{9, 10, 872}, + dictWord{9, 10, 890}, + dictWord{11, 10, 309}, + dictWord{ + 11, + 10, + 1001, + }, + dictWord{13, 10, 267}, + dictWord{141, 10, 323}, + dictWord{6, 0, 1662}, + dictWord{7, 0, 48}, + dictWord{8, 0, 771}, + dictWord{10, 0, 116}, + dictWord{ + 13, + 0, + 104, + }, + dictWord{14, 0, 105}, + dictWord{14, 0, 184}, + dictWord{15, 0, 168}, + dictWord{19, 0, 92}, + dictWord{148, 0, 68}, + dictWord{10, 0, 209}, + dictWord{ + 135, + 11, + 1870, + }, + dictWord{7, 11, 68}, + dictWord{8, 11, 48}, + dictWord{8, 11, 88}, + dictWord{8, 11, 582}, + dictWord{8, 11, 681}, + dictWord{9, 11, 373}, + dictWord{9, 11, 864}, + dictWord{11, 11, 157}, + dictWord{11, 11, 336}, + dictWord{11, 11, 843}, + dictWord{148, 11, 27}, + dictWord{134, 0, 930}, + dictWord{4, 11, 88}, + dictWord{5, 11, 137}, + dictWord{5, 11, 174}, + dictWord{5, 11, 777}, + dictWord{6, 11, 1664}, + dictWord{6, 11, 1725}, + dictWord{7, 11, 77}, + dictWord{7, 11, 426}, + dictWord{7, 11, 1317}, + dictWord{7, 11, 1355}, + dictWord{8, 11, 126}, + dictWord{8, 11, 563}, + dictWord{9, 11, 523}, + dictWord{9, 11, 750}, + dictWord{10, 11, 310}, + dictWord{10, 11, 836}, + dictWord{11, 11, 42}, + dictWord{11, 11, 318}, + dictWord{11, 11, 731}, + dictWord{12, 11, 68}, + dictWord{12, 11, 92}, + dictWord{12, 11, 507}, + dictWord{12, 11, 692}, + dictWord{13, 11, 81}, + dictWord{13, 11, 238}, + dictWord{13, 11, 374}, + dictWord{18, 11, 138}, + dictWord{19, 11, 78}, + dictWord{19, 11, 111}, + dictWord{20, 11, 55}, + dictWord{20, 11, 77}, + dictWord{148, 11, 92}, + dictWord{4, 11, 938}, + dictWord{135, 11, 1831}, + dictWord{5, 10, 547}, + dictWord{7, 10, 424}, + dictWord{ + 8, + 11, + 617, + }, + dictWord{138, 11, 351}, + dictWord{6, 0, 1286}, + dictWord{6, 11, 1668}, + dictWord{7, 11, 1499}, + dictWord{8, 11, 117}, + dictWord{9, 11, 314}, + dictWord{ + 138, + 11, + 174, + }, + dictWord{6, 0, 759}, + dictWord{6, 0, 894}, + dictWord{7, 11, 707}, + dictWord{139, 11, 563}, + dictWord{4, 0, 120}, + dictWord{135, 0, 1894}, + dictWord{ + 9, + 0, + 385, + }, + dictWord{149, 0, 17}, + dictWord{138, 0, 429}, + dictWord{133, 11, 403}, + dictWord{5, 0, 820}, + dictWord{135, 0, 931}, + dictWord{10, 0, 199}, + dictWord{ + 133, + 10, + 133, + }, + dictWord{6, 0, 151}, + dictWord{6, 0, 1675}, + dictWord{7, 0, 383}, + dictWord{151, 0, 10}, + dictWord{6, 0, 761}, + dictWord{136, 10, 187}, + dictWord{ + 8, + 0, + 365, + }, + dictWord{10, 10, 0}, + dictWord{10, 10, 818}, + dictWord{139, 10, 988}, + dictWord{4, 11, 44}, + dictWord{5, 11, 311}, + dictWord{6, 11, 156}, + dictWord{ + 7, + 11, + 639, + }, + dictWord{7, 11, 762}, + dictWord{7, 11, 1827}, + dictWord{9, 11, 8}, + dictWord{9, 11, 462}, + dictWord{148, 11, 83}, + dictWord{4, 11, 346}, + dictWord{7, 11, 115}, + dictWord{9, 11, 180}, + dictWord{9, 11, 456}, + dictWord{138, 11, 363}, + dictWord{136, 10, 685}, + dictWord{7, 0, 1086}, + dictWord{145, 0, 46}, + dictWord{ + 6, + 0, + 1624, + }, + dictWord{11, 0, 11}, + dictWord{12, 0, 422}, + dictWord{13, 0, 444}, + dictWord{142, 0, 360}, + dictWord{6, 0, 1020}, + dictWord{6, 0, 1260}, + dictWord{ + 134, + 0, + 1589, + }, + dictWord{4, 0, 43}, + dictWord{5, 0, 344}, + dictWord{5, 0, 357}, + dictWord{14, 0, 472}, + dictWord{150, 0, 58}, + dictWord{6, 0, 1864}, + dictWord{6, 0, 1866}, + dictWord{6, 0, 1868}, + dictWord{6, 0, 1869}, + dictWord{6, 0, 1874}, + dictWord{6, 0, 1877}, + dictWord{6, 0, 1903}, + dictWord{6, 0, 1911}, + dictWord{9, 0, 920}, + dictWord{ + 9, + 0, + 921, + }, + dictWord{9, 0, 924}, + dictWord{9, 0, 946}, + dictWord{9, 0, 959}, + dictWord{9, 0, 963}, + dictWord{9, 0, 970}, + dictWord{9, 0, 997}, + dictWord{9, 0, 1008}, + dictWord{ + 9, + 0, + 1017, + }, + dictWord{12, 0, 795}, + dictWord{12, 0, 797}, + dictWord{12, 0, 798}, + dictWord{12, 0, 800}, + dictWord{12, 0, 803}, + dictWord{12, 0, 811}, + dictWord{ + 12, + 0, + 820, + }, + dictWord{12, 0, 821}, + dictWord{12, 0, 839}, + dictWord{12, 0, 841}, + dictWord{12, 0, 848}, + dictWord{12, 0, 911}, + dictWord{12, 0, 921}, + dictWord{12, 0, 922}, + dictWord{12, 0, 925}, + dictWord{12, 0, 937}, + dictWord{12, 0, 944}, + dictWord{12, 0, 945}, + dictWord{12, 0, 953}, + dictWord{15, 0, 184}, + dictWord{15, 0, 191}, + dictWord{15, 0, 199}, + dictWord{15, 0, 237}, + dictWord{15, 0, 240}, + dictWord{15, 0, 243}, + dictWord{15, 0, 246}, + dictWord{18, 0, 203}, + dictWord{21, 0, 40}, + dictWord{ + 21, + 0, + 52, + }, + dictWord{21, 0, 57}, + dictWord{24, 0, 23}, + dictWord{24, 0, 28}, + dictWord{152, 0, 30}, + dictWord{134, 0, 725}, + dictWord{145, 11, 58}, + dictWord{133, 0, 888}, + dictWord{137, 10, 874}, + dictWord{4, 0, 711}, + dictWord{8, 10, 774}, + dictWord{10, 10, 670}, + dictWord{140, 10, 51}, + dictWord{144, 11, 40}, + dictWord{ + 6, + 11, + 185, + }, + dictWord{7, 11, 1899}, + dictWord{139, 11, 673}, + dictWord{137, 10, 701}, + dictWord{137, 0, 440}, + dictWord{4, 11, 327}, + dictWord{5, 11, 478}, + dictWord{ + 7, + 11, + 1332, + }, + dictWord{8, 11, 753}, + dictWord{140, 11, 227}, + dictWord{4, 10, 127}, + dictWord{5, 10, 350}, + dictWord{6, 10, 356}, + dictWord{8, 10, 426}, + dictWord{ + 9, + 10, + 572, + }, + dictWord{10, 10, 247}, + dictWord{139, 10, 312}, + dictWord{5, 11, 1020}, + dictWord{133, 11, 1022}, + dictWord{4, 11, 103}, + dictWord{ + 133, + 11, + 401, + }, + dictWord{6, 0, 1913}, + dictWord{6, 0, 1926}, + dictWord{6, 0, 1959}, + dictWord{9, 0, 914}, + dictWord{9, 0, 939}, + dictWord{9, 0, 952}, + dictWord{9, 0, 979}, + dictWord{ + 9, + 0, + 990, + }, + dictWord{9, 0, 998}, + dictWord{9, 0, 1003}, + dictWord{9, 0, 1023}, + dictWord{12, 0, 827}, + dictWord{12, 0, 834}, + dictWord{12, 0, 845}, + dictWord{ + 12, + 0, + 912, + }, + dictWord{12, 0, 935}, + dictWord{12, 0, 951}, + dictWord{15, 0, 172}, + dictWord{15, 0, 174}, + dictWord{18, 0, 198}, + dictWord{149, 0, 63}, + dictWord{5, 0, 958}, + dictWord{5, 0, 987}, + dictWord{4, 11, 499}, + dictWord{135, 11, 1421}, + dictWord{7, 0, 885}, + dictWord{6, 10, 59}, + dictWord{6, 10, 1762}, + dictWord{9, 10, 603}, + dictWord{141, 10, 397}, + dictWord{10, 11, 62}, + dictWord{141, 11, 164}, + dictWord{4, 0, 847}, + dictWord{135, 0, 326}, + dictWord{11, 0, 276}, + dictWord{142, 0, 293}, + dictWord{4, 0, 65}, + dictWord{5, 0, 479}, + dictWord{5, 0, 1004}, + dictWord{7, 0, 1913}, + dictWord{8, 0, 317}, + dictWord{9, 0, 302}, + dictWord{10, 0, 612}, + dictWord{ + 13, + 0, + 22, + }, + dictWord{132, 11, 96}, + dictWord{4, 0, 261}, + dictWord{135, 0, 510}, + dictWord{135, 0, 1514}, + dictWord{6, 10, 111}, + dictWord{7, 10, 4}, + dictWord{8, 10, 163}, + dictWord{8, 10, 776}, + dictWord{138, 10, 566}, + dictWord{4, 0, 291}, + dictWord{9, 0, 515}, + dictWord{12, 0, 152}, + dictWord{12, 0, 443}, + dictWord{13, 0, 392}, + dictWord{142, 0, 357}, + dictWord{7, 11, 399}, + dictWord{135, 11, 1492}, + dictWord{4, 0, 589}, + dictWord{139, 0, 282}, + dictWord{6, 11, 563}, + dictWord{ + 135, + 10, + 1994, + }, + dictWord{5, 10, 297}, + dictWord{135, 10, 1038}, + dictWord{4, 0, 130}, + dictWord{7, 0, 843}, + dictWord{135, 0, 1562}, + dictWord{5, 0, 42}, + dictWord{ + 5, + 0, + 879, + }, + dictWord{7, 0, 245}, + dictWord{7, 0, 324}, + dictWord{7, 0, 1532}, + dictWord{11, 0, 463}, + dictWord{11, 0, 472}, + dictWord{13, 0, 363}, + dictWord{144, 0, 52}, + dictWord{4, 0, 134}, + dictWord{133, 0, 372}, + dictWord{133, 0, 680}, + dictWord{136, 10, 363}, + dictWord{6, 0, 1997}, + dictWord{8, 0, 935}, + dictWord{136, 0, 977}, + dictWord{4, 0, 810}, + dictWord{135, 0, 1634}, + dictWord{135, 10, 1675}, + dictWord{7, 0, 1390}, + dictWord{4, 11, 910}, + dictWord{133, 11, 832}, + dictWord{ + 7, + 10, + 808, + }, + dictWord{8, 11, 266}, + dictWord{139, 11, 578}, + dictWord{132, 0, 644}, + dictWord{4, 0, 982}, + dictWord{138, 0, 867}, + dictWord{132, 10, 280}, + dictWord{ + 135, + 0, + 540, + }, + dictWord{140, 10, 54}, + dictWord{135, 0, 123}, + dictWord{134, 0, 1978}, + dictWord{4, 10, 421}, + dictWord{133, 10, 548}, + dictWord{6, 0, 623}, + dictWord{136, 0, 789}, + dictWord{4, 0, 908}, + dictWord{5, 0, 359}, + dictWord{5, 0, 508}, + dictWord{6, 0, 1723}, + dictWord{7, 0, 343}, + dictWord{7, 0, 1996}, + dictWord{ + 135, + 0, + 2026, + }, + dictWord{134, 0, 1220}, + dictWord{4, 0, 341}, + dictWord{135, 0, 480}, + dictWord{6, 10, 254}, + dictWord{9, 10, 109}, + dictWord{138, 10, 103}, + dictWord{ + 134, + 0, + 888, + }, + dictWord{8, 11, 528}, + dictWord{137, 11, 348}, + dictWord{7, 0, 1995}, + dictWord{8, 0, 299}, + dictWord{11, 0, 890}, + dictWord{12, 0, 674}, + dictWord{ + 4, + 11, + 20, + }, + dictWord{133, 11, 616}, + dictWord{135, 11, 1094}, + dictWord{134, 10, 1630}, + dictWord{4, 0, 238}, + dictWord{5, 0, 503}, + dictWord{6, 0, 179}, + dictWord{ + 7, + 0, + 2003, + }, + dictWord{8, 0, 381}, + dictWord{8, 0, 473}, + dictWord{9, 0, 149}, + dictWord{10, 0, 788}, + dictWord{15, 0, 45}, + dictWord{15, 0, 86}, + dictWord{20, 0, 110}, + dictWord{150, 0, 57}, + dictWord{133, 10, 671}, + dictWord{4, 11, 26}, + dictWord{5, 11, 429}, + dictWord{6, 11, 245}, + dictWord{7, 11, 704}, + dictWord{7, 11, 1379}, + dictWord{135, 11, 1474}, + dictWord{4, 0, 121}, + dictWord{5, 0, 156}, + dictWord{5, 0, 349}, + dictWord{9, 0, 431}, + dictWord{10, 0, 605}, + dictWord{142, 0, 342}, + dictWord{ + 7, + 11, + 943, + }, + dictWord{139, 11, 614}, + dictWord{132, 10, 889}, + dictWord{132, 11, 621}, + dictWord{7, 10, 1382}, + dictWord{7, 11, 1382}, + dictWord{ + 135, + 10, + 1910, + }, + dictWord{132, 10, 627}, + dictWord{133, 10, 775}, + dictWord{133, 11, 542}, + dictWord{133, 11, 868}, + dictWord{136, 11, 433}, + dictWord{6, 0, 1373}, + dictWord{7, 0, 1011}, + dictWord{11, 10, 362}, + dictWord{11, 10, 948}, + dictWord{140, 10, 388}, + dictWord{6, 0, 80}, + dictWord{7, 0, 173}, + dictWord{9, 0, 547}, + dictWord{10, 0, 730}, + dictWord{14, 0, 18}, + dictWord{22, 0, 39}, + dictWord{135, 11, 1495}, + dictWord{6, 0, 1694}, + dictWord{135, 0, 1974}, + dictWord{140, 0, 196}, + dictWord{4, 0, 923}, + dictWord{6, 0, 507}, + dictWord{6, 0, 1711}, + dictWord{7, 10, 451}, + dictWord{8, 10, 389}, + dictWord{12, 10, 490}, + dictWord{13, 10, 16}, + dictWord{ + 13, + 10, + 215, + }, + dictWord{13, 10, 351}, + dictWord{18, 10, 132}, + dictWord{147, 10, 125}, + dictWord{6, 0, 646}, + dictWord{134, 0, 1047}, + dictWord{135, 10, 841}, + dictWord{136, 10, 566}, + dictWord{6, 0, 1611}, + dictWord{135, 0, 1214}, + dictWord{139, 0, 926}, + dictWord{132, 11, 525}, + dictWord{132, 0, 595}, + dictWord{ + 5, + 0, + 240, + }, + dictWord{6, 0, 459}, + dictWord{7, 0, 12}, + dictWord{7, 0, 114}, + dictWord{7, 0, 949}, + dictWord{7, 0, 1753}, + dictWord{7, 0, 1805}, + dictWord{8, 0, 658}, + dictWord{ + 9, + 0, + 1, + }, + dictWord{11, 0, 959}, + dictWord{141, 0, 446}, + dictWord{5, 10, 912}, + dictWord{134, 10, 1695}, + dictWord{132, 0, 446}, + dictWord{7, 11, 62}, + dictWord{ + 12, + 11, + 45, + }, + dictWord{147, 11, 112}, + dictWord{5, 10, 236}, + dictWord{6, 10, 572}, + dictWord{8, 10, 492}, + dictWord{11, 10, 618}, + dictWord{144, 10, 56}, + dictWord{ + 5, + 10, + 190, + }, + dictWord{136, 10, 318}, + dictWord{135, 10, 1376}, + dictWord{4, 11, 223}, + dictWord{6, 11, 359}, + dictWord{11, 11, 3}, + dictWord{13, 11, 108}, + dictWord{ + 14, + 11, + 89, + }, + dictWord{144, 11, 22}, + dictWord{132, 11, 647}, + dictWord{134, 0, 490}, + dictWord{134, 0, 491}, + dictWord{134, 0, 1584}, + dictWord{ + 135, + 11, + 685, + }, + dictWord{138, 11, 220}, + dictWord{7, 0, 250}, + dictWord{136, 0, 507}, + dictWord{132, 0, 158}, + dictWord{4, 0, 140}, + dictWord{7, 0, 362}, + dictWord{8, 0, 209}, + dictWord{9, 0, 10}, + dictWord{9, 0, 160}, + dictWord{9, 0, 503}, + dictWord{9, 0, 614}, + dictWord{10, 0, 689}, + dictWord{11, 0, 327}, + dictWord{11, 0, 553}, + dictWord{ + 11, + 0, + 725, + }, + dictWord{11, 0, 767}, + dictWord{12, 0, 252}, + dictWord{12, 0, 583}, + dictWord{13, 0, 192}, + dictWord{14, 0, 269}, + dictWord{14, 0, 356}, + dictWord{148, 0, 50}, + dictWord{19, 0, 1}, + dictWord{19, 0, 26}, + dictWord{150, 0, 9}, + dictWord{132, 11, 109}, + dictWord{6, 0, 228}, + dictWord{7, 0, 1341}, + dictWord{9, 0, 408}, + dictWord{ + 138, + 0, + 343, + }, + dictWord{4, 0, 373}, + dictWord{5, 0, 283}, + dictWord{6, 0, 480}, + dictWord{7, 0, 609}, + dictWord{10, 0, 860}, + dictWord{138, 0, 878}, + dictWord{6, 0, 779}, + dictWord{134, 0, 1209}, + dictWord{4, 0, 557}, + dictWord{7, 11, 263}, + dictWord{7, 11, 628}, + dictWord{136, 11, 349}, + dictWord{132, 0, 548}, + dictWord{7, 0, 197}, + dictWord{8, 0, 142}, + dictWord{8, 0, 325}, + dictWord{9, 0, 150}, + dictWord{9, 0, 596}, + dictWord{10, 0, 350}, + dictWord{10, 0, 353}, + dictWord{11, 0, 74}, + dictWord{ + 11, + 0, + 315, + }, + dictWord{12, 0, 662}, + dictWord{12, 0, 681}, + dictWord{14, 0, 423}, + dictWord{143, 0, 141}, + dictWord{4, 11, 40}, + dictWord{10, 11, 67}, + dictWord{ + 11, + 11, + 117, + }, + dictWord{11, 11, 768}, + dictWord{139, 11, 935}, + dictWord{7, 11, 992}, + dictWord{8, 11, 301}, + dictWord{9, 11, 722}, + dictWord{12, 11, 63}, + dictWord{ + 13, + 11, + 29, + }, + dictWord{14, 11, 161}, + dictWord{143, 11, 18}, + dictWord{6, 0, 1490}, + dictWord{138, 11, 532}, + dictWord{5, 0, 580}, + dictWord{7, 0, 378}, + dictWord{ + 7, + 0, + 674, + }, + dictWord{7, 0, 1424}, + dictWord{15, 0, 83}, + dictWord{16, 0, 11}, + dictWord{15, 11, 83}, + dictWord{144, 11, 11}, + dictWord{6, 0, 1057}, + dictWord{6, 0, 1335}, + dictWord{10, 0, 316}, + dictWord{7, 10, 85}, + dictWord{7, 10, 247}, + dictWord{8, 10, 585}, + dictWord{138, 10, 163}, + dictWord{4, 0, 169}, + dictWord{5, 0, 83}, + dictWord{ + 6, + 0, + 399, + }, + dictWord{6, 0, 579}, + dictWord{6, 0, 1513}, + dictWord{7, 0, 692}, + dictWord{7, 0, 846}, + dictWord{7, 0, 1015}, + dictWord{7, 0, 1799}, + dictWord{8, 0, 403}, + dictWord{9, 0, 394}, + dictWord{10, 0, 133}, + dictWord{12, 0, 4}, + dictWord{12, 0, 297}, + dictWord{12, 0, 452}, + dictWord{16, 0, 81}, + dictWord{18, 0, 25}, + dictWord{21, 0, 14}, + dictWord{22, 0, 12}, + dictWord{151, 0, 18}, + dictWord{134, 0, 1106}, + dictWord{7, 0, 1546}, + dictWord{11, 0, 299}, + dictWord{142, 0, 407}, + dictWord{134, 0, 1192}, + dictWord{132, 0, 177}, + dictWord{5, 0, 411}, + dictWord{135, 0, 653}, + dictWord{7, 0, 439}, + dictWord{10, 0, 727}, + dictWord{11, 0, 260}, + dictWord{139, 0, 684}, + dictWord{138, 10, 145}, + dictWord{147, 10, 83}, + dictWord{5, 0, 208}, + dictWord{7, 0, 753}, + dictWord{135, 0, 1528}, + dictWord{137, 11, 617}, + dictWord{ + 135, + 10, + 1922, + }, + dictWord{135, 11, 825}, + dictWord{11, 0, 422}, + dictWord{13, 0, 389}, + dictWord{4, 10, 124}, + dictWord{10, 10, 457}, + dictWord{11, 10, 121}, + dictWord{ + 11, + 10, + 169, + }, + dictWord{11, 10, 870}, + dictWord{12, 10, 214}, + dictWord{14, 10, 187}, + dictWord{143, 10, 77}, + dictWord{11, 0, 615}, + dictWord{15, 0, 58}, + dictWord{ + 11, + 11, + 615, + }, + dictWord{143, 11, 58}, + dictWord{9, 0, 618}, + dictWord{138, 0, 482}, + dictWord{6, 0, 1952}, + dictWord{6, 0, 1970}, + dictWord{142, 0, 505}, + dictWord{ + 7, + 10, + 1193, + }, + dictWord{135, 11, 1838}, + dictWord{133, 0, 242}, + dictWord{135, 10, 1333}, + dictWord{6, 10, 107}, + dictWord{7, 10, 638}, + dictWord{ + 7, + 10, + 1632, + }, + dictWord{137, 10, 396}, + dictWord{133, 0, 953}, + dictWord{5, 10, 370}, + dictWord{134, 10, 1756}, + dictWord{5, 11, 28}, + dictWord{6, 11, 204}, + dictWord{ + 10, + 11, + 320, + }, + dictWord{10, 11, 583}, + dictWord{13, 11, 502}, + dictWord{14, 11, 72}, + dictWord{14, 11, 274}, + dictWord{14, 11, 312}, + dictWord{14, 11, 344}, + dictWord{15, 11, 159}, + dictWord{16, 11, 62}, + dictWord{16, 11, 69}, + dictWord{17, 11, 30}, + dictWord{18, 11, 42}, + dictWord{18, 11, 53}, + dictWord{18, 11, 84}, + dictWord{18, 11, 140}, + dictWord{19, 11, 68}, + dictWord{19, 11, 85}, + dictWord{20, 11, 5}, + dictWord{20, 11, 45}, + dictWord{20, 11, 101}, + dictWord{22, 11, 7}, + dictWord{ + 150, + 11, + 20, + }, + dictWord{4, 11, 558}, + dictWord{6, 11, 390}, + dictWord{7, 11, 162}, + dictWord{7, 11, 689}, + dictWord{9, 11, 360}, + dictWord{138, 11, 653}, + dictWord{ + 11, + 0, + 802, + }, + dictWord{141, 0, 67}, + dictWord{133, 10, 204}, + dictWord{133, 0, 290}, + dictWord{5, 10, 970}, + dictWord{134, 10, 1706}, + dictWord{132, 0, 380}, + dictWord{5, 0, 52}, + dictWord{7, 0, 277}, + dictWord{9, 0, 368}, + dictWord{139, 0, 791}, + dictWord{5, 11, 856}, + dictWord{6, 11, 1672}, + dictWord{6, 11, 1757}, + dictWord{ + 6, + 11, + 1781, + }, + dictWord{7, 11, 1150}, + dictWord{7, 11, 1425}, + dictWord{7, 11, 1453}, + dictWord{140, 11, 513}, + dictWord{5, 11, 92}, + dictWord{7, 10, 3}, + dictWord{ + 10, + 11, + 736, + }, + dictWord{140, 11, 102}, + dictWord{4, 0, 112}, + dictWord{5, 0, 653}, + dictWord{5, 10, 483}, + dictWord{5, 10, 685}, + dictWord{6, 10, 489}, + dictWord{ + 7, + 10, + 1204, + }, + dictWord{136, 10, 394}, + dictWord{132, 10, 921}, + dictWord{6, 0, 1028}, + dictWord{133, 10, 1007}, + dictWord{5, 11, 590}, + dictWord{9, 11, 213}, + dictWord{145, 11, 91}, + dictWord{135, 10, 1696}, + dictWord{10, 0, 138}, + dictWord{139, 0, 476}, + dictWord{5, 0, 725}, + dictWord{5, 0, 727}, + dictWord{135, 0, 1811}, + dictWord{4, 0, 979}, + dictWord{6, 0, 1821}, + dictWord{6, 0, 1838}, + dictWord{8, 0, 876}, + dictWord{8, 0, 883}, + dictWord{8, 0, 889}, + dictWord{8, 0, 893}, + dictWord{ + 8, + 0, + 895, + }, + dictWord{10, 0, 934}, + dictWord{12, 0, 720}, + dictWord{14, 0, 459}, + dictWord{148, 0, 123}, + dictWord{135, 11, 551}, + dictWord{4, 0, 38}, + dictWord{6, 0, 435}, + dictWord{7, 0, 307}, + dictWord{7, 0, 999}, + dictWord{7, 0, 1481}, + dictWord{7, 0, 1732}, + dictWord{7, 0, 1738}, + dictWord{8, 0, 371}, + dictWord{9, 0, 414}, + dictWord{ + 11, + 0, + 316, + }, + dictWord{12, 0, 52}, + dictWord{13, 0, 420}, + dictWord{147, 0, 100}, + dictWord{135, 0, 1296}, + dictWord{132, 10, 712}, + dictWord{134, 10, 1629}, + dictWord{133, 0, 723}, + dictWord{134, 0, 651}, + dictWord{136, 11, 191}, + dictWord{9, 11, 791}, + dictWord{10, 11, 93}, + dictWord{11, 11, 301}, + dictWord{16, 11, 13}, + dictWord{17, 11, 23}, + dictWord{18, 11, 135}, + dictWord{19, 11, 12}, + dictWord{20, 11, 1}, + dictWord{20, 11, 12}, + dictWord{148, 11, 14}, + dictWord{136, 11, 503}, + dictWord{6, 11, 466}, + dictWord{135, 11, 671}, + dictWord{6, 0, 1200}, + dictWord{134, 0, 1330}, + dictWord{135, 0, 1255}, + dictWord{134, 0, 986}, + dictWord{ + 5, + 0, + 109, + }, + dictWord{6, 0, 1784}, + dictWord{7, 0, 1895}, + dictWord{12, 0, 296}, + dictWord{140, 0, 302}, + dictWord{135, 11, 983}, + dictWord{133, 10, 485}, + dictWord{ + 134, + 0, + 660, + }, + dictWord{134, 0, 800}, + dictWord{5, 0, 216}, + dictWord{5, 0, 294}, + dictWord{6, 0, 591}, + dictWord{7, 0, 1879}, + dictWord{9, 0, 141}, + dictWord{9, 0, 270}, + dictWord{9, 0, 679}, + dictWord{10, 0, 159}, + dictWord{11, 0, 197}, + dictWord{11, 0, 438}, + dictWord{12, 0, 538}, + dictWord{12, 0, 559}, + dictWord{14, 0, 144}, + dictWord{ + 14, + 0, + 167, + }, + dictWord{15, 0, 67}, + dictWord{4, 10, 285}, + dictWord{5, 10, 317}, + dictWord{6, 10, 301}, + dictWord{7, 10, 7}, + dictWord{8, 10, 153}, + dictWord{ + 10, + 10, + 766, + }, + dictWord{11, 10, 468}, + dictWord{12, 10, 467}, + dictWord{141, 10, 143}, + dictWord{136, 0, 945}, + dictWord{134, 0, 1090}, + dictWord{137, 0, 81}, + dictWord{12, 11, 468}, + dictWord{19, 11, 96}, + dictWord{148, 11, 24}, + dictWord{134, 0, 391}, + dictWord{138, 11, 241}, + dictWord{7, 0, 322}, + dictWord{136, 0, 249}, + dictWord{134, 0, 1412}, + dictWord{135, 11, 795}, + dictWord{5, 0, 632}, + dictWord{138, 0, 526}, + dictWord{136, 10, 819}, + dictWord{6, 0, 144}, + dictWord{7, 0, 948}, + dictWord{7, 0, 1042}, + dictWord{8, 0, 235}, + dictWord{8, 0, 461}, + dictWord{9, 0, 453}, + dictWord{9, 0, 796}, + dictWord{10, 0, 354}, + dictWord{17, 0, 77}, + dictWord{ + 135, + 11, + 954, + }, + dictWord{139, 10, 917}, + dictWord{6, 0, 940}, + dictWord{134, 0, 1228}, + dictWord{4, 0, 362}, + dictWord{7, 0, 52}, + dictWord{135, 0, 303}, + dictWord{ + 6, + 11, + 549, + }, + dictWord{8, 11, 34}, + dictWord{8, 11, 283}, + dictWord{9, 11, 165}, + dictWord{138, 11, 475}, + dictWord{7, 11, 370}, + dictWord{7, 11, 1007}, + dictWord{ + 7, + 11, + 1177, + }, + dictWord{135, 11, 1565}, + dictWord{5, 11, 652}, + dictWord{5, 11, 701}, + dictWord{135, 11, 449}, + dictWord{5, 0, 196}, + dictWord{6, 0, 486}, + dictWord{ + 7, + 0, + 212, + }, + dictWord{8, 0, 309}, + dictWord{136, 0, 346}, + dictWord{6, 10, 1719}, + dictWord{6, 10, 1735}, + dictWord{7, 10, 2016}, + dictWord{7, 10, 2020}, + dictWord{ + 8, + 10, + 837, + }, + dictWord{137, 10, 852}, + dictWord{6, 11, 159}, + dictWord{6, 11, 364}, + dictWord{7, 11, 516}, + dictWord{7, 11, 1439}, + dictWord{137, 11, 518}, + dictWord{135, 0, 1912}, + dictWord{135, 0, 1290}, + dictWord{132, 0, 686}, + dictWord{141, 11, 151}, + dictWord{138, 0, 625}, + dictWord{136, 0, 706}, + dictWord{ + 138, + 10, + 568, + }, + dictWord{139, 0, 412}, + dictWord{4, 0, 30}, + dictWord{133, 0, 43}, + dictWord{8, 10, 67}, + dictWord{138, 10, 419}, + dictWord{7, 0, 967}, + dictWord{ + 141, + 0, + 11, + }, + dictWord{12, 0, 758}, + dictWord{14, 0, 441}, + dictWord{142, 0, 462}, + dictWord{10, 10, 657}, + dictWord{14, 10, 297}, + dictWord{142, 10, 361}, + dictWord{ + 139, + 10, + 729, + }, + dictWord{4, 0, 220}, + dictWord{135, 0, 1535}, + dictWord{7, 11, 501}, + dictWord{9, 11, 111}, + dictWord{10, 11, 141}, + dictWord{11, 11, 332}, + dictWord{ + 13, + 11, + 43, + }, + dictWord{13, 11, 429}, + dictWord{14, 11, 130}, + dictWord{14, 11, 415}, + dictWord{145, 11, 102}, + dictWord{4, 0, 950}, + dictWord{6, 0, 1859}, + dictWord{ + 7, + 0, + 11, + }, + dictWord{8, 0, 873}, + dictWord{12, 0, 710}, + dictWord{12, 0, 718}, + dictWord{12, 0, 748}, + dictWord{12, 0, 765}, + dictWord{148, 0, 124}, + dictWord{ + 5, + 11, + 149, + }, + dictWord{5, 11, 935}, + dictWord{136, 11, 233}, + dictWord{142, 11, 291}, + dictWord{134, 0, 1579}, + dictWord{7, 0, 890}, + dictWord{8, 10, 51}, + dictWord{ + 9, + 10, + 868, + }, + dictWord{10, 10, 833}, + dictWord{12, 10, 481}, + dictWord{12, 10, 570}, + dictWord{148, 10, 106}, + dictWord{141, 0, 2}, + dictWord{132, 10, 445}, + dictWord{136, 11, 801}, + dictWord{135, 0, 1774}, + dictWord{7, 0, 1725}, + dictWord{138, 0, 393}, + dictWord{5, 0, 263}, + dictWord{134, 0, 414}, + dictWord{ + 132, + 11, + 322, + }, + dictWord{133, 10, 239}, + dictWord{7, 0, 456}, + dictWord{7, 10, 1990}, + dictWord{8, 10, 130}, + dictWord{139, 10, 720}, + dictWord{137, 0, 818}, + dictWord{ + 5, + 10, + 123, + }, + dictWord{6, 10, 530}, + dictWord{7, 10, 348}, + dictWord{135, 10, 1419}, + dictWord{135, 10, 2024}, + dictWord{6, 0, 178}, + dictWord{6, 0, 1750}, + dictWord{8, 0, 251}, + dictWord{9, 0, 690}, + dictWord{10, 0, 155}, + dictWord{10, 0, 196}, + dictWord{10, 0, 373}, + dictWord{11, 0, 698}, + dictWord{13, 0, 155}, + dictWord{ + 148, + 0, + 93, + }, + dictWord{5, 0, 97}, + dictWord{137, 0, 393}, + dictWord{134, 0, 674}, + dictWord{11, 0, 223}, + dictWord{140, 0, 168}, + dictWord{132, 10, 210}, + dictWord{ + 139, + 11, + 464, + }, + dictWord{6, 0, 1639}, + dictWord{146, 0, 159}, + dictWord{139, 11, 2}, + dictWord{7, 0, 934}, + dictWord{8, 0, 647}, + dictWord{17, 0, 97}, + dictWord{19, 0, 59}, + dictWord{150, 0, 2}, + dictWord{132, 0, 191}, + dictWord{5, 0, 165}, + dictWord{9, 0, 346}, + dictWord{10, 0, 655}, + dictWord{11, 0, 885}, + dictWord{4, 10, 430}, + dictWord{135, 11, 357}, + dictWord{133, 0, 877}, + dictWord{5, 10, 213}, + dictWord{133, 11, 406}, + dictWord{8, 0, 128}, + dictWord{139, 0, 179}, + dictWord{6, 11, 69}, + dictWord{135, 11, 117}, + dictWord{135, 0, 1297}, + dictWord{11, 11, 43}, + dictWord{13, 11, 72}, + dictWord{141, 11, 142}, + dictWord{135, 11, 1830}, + dictWord{ + 142, + 0, + 164, + }, + dictWord{5, 0, 57}, + dictWord{6, 0, 101}, + dictWord{6, 0, 586}, + dictWord{6, 0, 1663}, + dictWord{7, 0, 132}, + dictWord{7, 0, 1154}, + dictWord{7, 0, 1415}, + dictWord{7, 0, 1507}, + dictWord{12, 0, 493}, + dictWord{15, 0, 105}, + dictWord{151, 0, 15}, + dictWord{5, 0, 459}, + dictWord{7, 0, 1073}, + dictWord{8, 0, 241}, + dictWord{ + 136, + 0, + 334, + }, + dictWord{133, 11, 826}, + dictWord{133, 10, 108}, + dictWord{5, 10, 219}, + dictWord{10, 11, 132}, + dictWord{11, 11, 191}, + dictWord{11, 11, 358}, + dictWord{139, 11, 460}, + dictWord{6, 0, 324}, + dictWord{6, 0, 520}, + dictWord{7, 0, 338}, + dictWord{7, 0, 1729}, + dictWord{8, 0, 228}, + dictWord{139, 0, 750}, + dictWord{ + 21, + 0, + 30, + }, + dictWord{22, 0, 53}, + dictWord{4, 10, 193}, + dictWord{5, 10, 916}, + dictWord{7, 10, 364}, + dictWord{10, 10, 398}, + dictWord{10, 10, 726}, + dictWord{ + 11, + 10, + 317, + }, + dictWord{11, 10, 626}, + dictWord{12, 10, 142}, + dictWord{12, 10, 288}, + dictWord{12, 10, 678}, + dictWord{13, 10, 313}, + dictWord{15, 10, 113}, + dictWord{146, 10, 114}, + dictWord{6, 11, 110}, + dictWord{135, 11, 1681}, + dictWord{135, 0, 910}, + dictWord{6, 10, 241}, + dictWord{7, 10, 907}, + dictWord{8, 10, 832}, + dictWord{9, 10, 342}, + dictWord{10, 10, 729}, + dictWord{11, 10, 284}, + dictWord{11, 10, 445}, + dictWord{11, 10, 651}, + dictWord{11, 10, 863}, + dictWord{ + 13, + 10, + 398, + }, + dictWord{146, 10, 99}, + dictWord{7, 0, 705}, + dictWord{9, 0, 734}, + dictWord{5, 11, 1000}, + dictWord{7, 11, 733}, + dictWord{137, 11, 583}, + dictWord{4, 0, 73}, + dictWord{6, 0, 612}, + dictWord{7, 0, 927}, + dictWord{7, 0, 1822}, + dictWord{8, 0, 217}, + dictWord{9, 0, 765}, + dictWord{9, 0, 766}, + dictWord{10, 0, 408}, + dictWord{ + 11, + 0, + 51, + }, + dictWord{11, 0, 793}, + dictWord{12, 0, 266}, + dictWord{15, 0, 158}, + dictWord{20, 0, 89}, + dictWord{150, 0, 32}, + dictWord{7, 0, 1330}, + dictWord{4, 11, 297}, + dictWord{6, 11, 529}, + dictWord{7, 11, 152}, + dictWord{7, 11, 713}, + dictWord{7, 11, 1845}, + dictWord{8, 11, 710}, + dictWord{8, 11, 717}, + dictWord{140, 11, 639}, + dictWord{5, 0, 389}, + dictWord{136, 0, 636}, + dictWord{134, 0, 1409}, + dictWord{4, 10, 562}, + dictWord{9, 10, 254}, + dictWord{139, 10, 879}, + dictWord{134, 0, 893}, + dictWord{132, 10, 786}, + dictWord{4, 11, 520}, + dictWord{135, 11, 575}, + dictWord{136, 0, 21}, + dictWord{140, 0, 721}, + dictWord{136, 0, 959}, + dictWord{ + 7, + 11, + 1428, + }, + dictWord{7, 11, 1640}, + dictWord{9, 11, 169}, + dictWord{9, 11, 182}, + dictWord{9, 11, 367}, + dictWord{9, 11, 478}, + dictWord{9, 11, 506}, + dictWord{ + 9, + 11, + 551, + }, + dictWord{9, 11, 648}, + dictWord{9, 11, 651}, + dictWord{9, 11, 697}, + dictWord{9, 11, 705}, + dictWord{9, 11, 725}, + dictWord{9, 11, 787}, + dictWord{9, 11, 794}, + dictWord{10, 11, 198}, + dictWord{10, 11, 214}, + dictWord{10, 11, 267}, + dictWord{10, 11, 275}, + dictWord{10, 11, 456}, + dictWord{10, 11, 551}, + dictWord{ + 10, + 11, + 561, + }, + dictWord{10, 11, 613}, + dictWord{10, 11, 627}, + dictWord{10, 11, 668}, + dictWord{10, 11, 675}, + dictWord{10, 11, 691}, + dictWord{10, 11, 695}, + dictWord{10, 11, 707}, + dictWord{10, 11, 715}, + dictWord{11, 11, 183}, + dictWord{11, 11, 201}, + dictWord{11, 11, 244}, + dictWord{11, 11, 262}, + dictWord{ + 11, + 11, + 352, + }, + dictWord{11, 11, 439}, + dictWord{11, 11, 493}, + dictWord{11, 11, 572}, + dictWord{11, 11, 591}, + dictWord{11, 11, 608}, + dictWord{11, 11, 611}, + dictWord{ + 11, + 11, + 646, + }, + dictWord{11, 11, 674}, + dictWord{11, 11, 711}, + dictWord{11, 11, 751}, + dictWord{11, 11, 761}, + dictWord{11, 11, 776}, + dictWord{11, 11, 785}, + dictWord{11, 11, 850}, + dictWord{11, 11, 853}, + dictWord{11, 11, 862}, + dictWord{11, 11, 865}, + dictWord{11, 11, 868}, + dictWord{11, 11, 898}, + dictWord{ + 11, + 11, + 902, + }, + dictWord{11, 11, 903}, + dictWord{11, 11, 910}, + dictWord{11, 11, 932}, + dictWord{11, 11, 942}, + dictWord{11, 11, 957}, + dictWord{11, 11, 967}, + dictWord{ + 11, + 11, + 972, + }, + dictWord{12, 11, 148}, + dictWord{12, 11, 195}, + dictWord{12, 11, 220}, + dictWord{12, 11, 237}, + dictWord{12, 11, 318}, + dictWord{12, 11, 339}, + dictWord{12, 11, 393}, + dictWord{12, 11, 445}, + dictWord{12, 11, 450}, + dictWord{12, 11, 474}, + dictWord{12, 11, 509}, + dictWord{12, 11, 533}, + dictWord{ + 12, + 11, + 591, + }, + dictWord{12, 11, 594}, + dictWord{12, 11, 597}, + dictWord{12, 11, 621}, + dictWord{12, 11, 633}, + dictWord{12, 11, 642}, + dictWord{13, 11, 59}, + dictWord{ + 13, + 11, + 60, + }, + dictWord{13, 11, 145}, + dictWord{13, 11, 239}, + dictWord{13, 11, 250}, + dictWord{13, 11, 273}, + dictWord{13, 11, 329}, + dictWord{13, 11, 344}, + dictWord{13, 11, 365}, + dictWord{13, 11, 372}, + dictWord{13, 11, 387}, + dictWord{13, 11, 403}, + dictWord{13, 11, 414}, + dictWord{13, 11, 456}, + dictWord{ + 13, + 11, + 478, + }, + dictWord{13, 11, 483}, + dictWord{13, 11, 489}, + dictWord{14, 11, 55}, + dictWord{14, 11, 57}, + dictWord{14, 11, 81}, + dictWord{14, 11, 90}, + dictWord{ + 14, + 11, + 148, + }, + dictWord{14, 11, 239}, + dictWord{14, 11, 266}, + dictWord{14, 11, 321}, + dictWord{14, 11, 326}, + dictWord{14, 11, 327}, + dictWord{14, 11, 330}, + dictWord{ + 14, + 11, + 347, + }, + dictWord{14, 11, 355}, + dictWord{14, 11, 401}, + dictWord{14, 11, 411}, + dictWord{14, 11, 414}, + dictWord{14, 11, 416}, + dictWord{14, 11, 420}, + dictWord{15, 11, 61}, + dictWord{15, 11, 74}, + dictWord{15, 11, 87}, + dictWord{15, 11, 88}, + dictWord{15, 11, 94}, + dictWord{15, 11, 96}, + dictWord{15, 11, 116}, + dictWord{15, 11, 149}, + dictWord{15, 11, 154}, + dictWord{16, 11, 50}, + dictWord{16, 11, 63}, + dictWord{16, 11, 73}, + dictWord{17, 11, 2}, + dictWord{17, 11, 66}, + dictWord{ + 17, + 11, + 92, + }, + dictWord{17, 11, 103}, + dictWord{17, 11, 112}, + dictWord{18, 11, 50}, + dictWord{18, 11, 54}, + dictWord{18, 11, 82}, + dictWord{18, 11, 86}, + dictWord{ + 18, + 11, + 90, + }, + dictWord{18, 11, 111}, + dictWord{18, 11, 115}, + dictWord{18, 11, 156}, + dictWord{19, 11, 40}, + dictWord{19, 11, 79}, + dictWord{20, 11, 78}, + dictWord{ + 149, + 11, + 22, + }, + dictWord{137, 11, 170}, + dictWord{134, 0, 1433}, + dictWord{135, 11, 1307}, + dictWord{139, 11, 411}, + dictWord{5, 0, 189}, + dictWord{7, 0, 442}, + dictWord{7, 0, 443}, + dictWord{8, 0, 281}, + dictWord{12, 0, 174}, + dictWord{141, 0, 261}, + dictWord{6, 10, 216}, + dictWord{7, 10, 901}, + dictWord{7, 10, 1343}, + dictWord{136, 10, 493}, + dictWord{5, 11, 397}, + dictWord{6, 11, 154}, + dictWord{7, 10, 341}, + dictWord{7, 11, 676}, + dictWord{8, 11, 443}, + dictWord{8, 11, 609}, + dictWord{ + 9, + 11, + 24, + }, + dictWord{9, 11, 325}, + dictWord{10, 11, 35}, + dictWord{11, 10, 219}, + dictWord{11, 11, 535}, + dictWord{11, 11, 672}, + dictWord{11, 11, 1018}, + dictWord{12, 11, 637}, + dictWord{144, 11, 30}, + dictWord{6, 0, 2}, + dictWord{7, 0, 191}, + dictWord{7, 0, 446}, + dictWord{7, 0, 1262}, + dictWord{7, 0, 1737}, + dictWord{8, 0, 22}, + dictWord{8, 0, 270}, + dictWord{8, 0, 612}, + dictWord{9, 0, 4}, + dictWord{9, 0, 312}, + dictWord{9, 0, 436}, + dictWord{9, 0, 626}, + dictWord{10, 0, 216}, + dictWord{10, 0, 311}, + dictWord{10, 0, 521}, + dictWord{10, 0, 623}, + dictWord{11, 0, 72}, + dictWord{11, 0, 330}, + dictWord{11, 0, 455}, + dictWord{12, 0, 321}, + dictWord{12, 0, 504}, + dictWord{12, 0, 530}, + dictWord{12, 0, 543}, + dictWord{13, 0, 17}, + dictWord{13, 0, 156}, + dictWord{13, 0, 334}, + dictWord{14, 0, 131}, + dictWord{17, 0, 60}, + dictWord{ + 148, + 0, + 64, + }, + dictWord{7, 0, 354}, + dictWord{10, 0, 410}, + dictWord{139, 0, 815}, + dictWord{139, 10, 130}, + dictWord{7, 10, 1734}, + dictWord{137, 11, 631}, + dictWord{ + 12, + 0, + 425, + }, + dictWord{15, 0, 112}, + dictWord{10, 10, 115}, + dictWord{11, 10, 420}, + dictWord{13, 10, 404}, + dictWord{14, 10, 346}, + dictWord{143, 10, 54}, + dictWord{ + 6, + 0, + 60, + }, + dictWord{6, 0, 166}, + dictWord{7, 0, 374}, + dictWord{7, 0, 670}, + dictWord{7, 0, 1327}, + dictWord{8, 0, 411}, + dictWord{8, 0, 435}, + dictWord{9, 0, 653}, + dictWord{ + 9, + 0, + 740, + }, + dictWord{10, 0, 385}, + dictWord{11, 0, 222}, + dictWord{11, 0, 324}, + dictWord{11, 0, 829}, + dictWord{140, 0, 611}, + dictWord{7, 0, 1611}, + dictWord{ + 13, + 0, + 14, + }, + dictWord{15, 0, 44}, + dictWord{19, 0, 13}, + dictWord{148, 0, 76}, + dictWord{133, 11, 981}, + dictWord{4, 11, 56}, + dictWord{7, 11, 1791}, + dictWord{8, 11, 607}, + dictWord{8, 11, 651}, + dictWord{11, 11, 465}, + dictWord{11, 11, 835}, + dictWord{12, 11, 337}, + dictWord{141, 11, 480}, + dictWord{6, 0, 1478}, + dictWord{ + 5, + 10, + 1011, + }, + dictWord{136, 10, 701}, + dictWord{139, 0, 596}, + dictWord{5, 0, 206}, + dictWord{134, 0, 398}, + dictWord{4, 10, 54}, + dictWord{5, 10, 666}, + dictWord{ + 7, + 10, + 1039, + }, + dictWord{7, 10, 1130}, + dictWord{9, 10, 195}, + dictWord{138, 10, 302}, + dictWord{7, 0, 50}, + dictWord{9, 11, 158}, + dictWord{138, 11, 411}, + dictWord{ + 135, + 11, + 1120, + }, + dictWord{6, 0, 517}, + dictWord{7, 0, 1159}, + dictWord{10, 0, 621}, + dictWord{11, 0, 192}, + dictWord{134, 10, 1669}, + dictWord{4, 0, 592}, + dictWord{ + 6, + 0, + 600, + }, + dictWord{135, 0, 1653}, + dictWord{10, 0, 223}, + dictWord{139, 0, 645}, + dictWord{136, 11, 139}, + dictWord{7, 0, 64}, + dictWord{136, 0, 245}, + dictWord{ + 142, + 0, + 278, + }, + dictWord{6, 11, 622}, + dictWord{135, 11, 1030}, + dictWord{136, 0, 604}, + dictWord{134, 0, 1502}, + dictWord{138, 0, 265}, + dictWord{ + 141, + 11, + 168, + }, + dictWord{7, 0, 1763}, + dictWord{140, 0, 310}, + dictWord{7, 10, 798}, + dictWord{139, 11, 719}, + dictWord{7, 11, 160}, + dictWord{10, 11, 624}, + dictWord{ + 142, + 11, + 279, + }, + dictWord{132, 11, 363}, + dictWord{7, 10, 122}, + dictWord{9, 10, 259}, + dictWord{10, 10, 84}, + dictWord{11, 10, 470}, + dictWord{12, 10, 541}, + dictWord{141, 10, 379}, + dictWord{5, 0, 129}, + dictWord{6, 0, 61}, + dictWord{135, 0, 947}, + dictWord{134, 0, 1356}, + dictWord{135, 11, 1191}, + dictWord{13, 0, 505}, + dictWord{141, 0, 506}, + dictWord{11, 0, 1000}, + dictWord{5, 10, 82}, + dictWord{5, 10, 131}, + dictWord{7, 10, 1755}, + dictWord{8, 10, 31}, + dictWord{9, 10, 168}, + dictWord{9, 10, 764}, + dictWord{139, 10, 869}, + dictWord{134, 0, 966}, + dictWord{134, 10, 605}, + dictWord{134, 11, 292}, + dictWord{5, 11, 177}, + dictWord{ + 6, + 11, + 616, + }, + dictWord{7, 11, 827}, + dictWord{9, 11, 525}, + dictWord{138, 11, 656}, + dictWord{135, 11, 1486}, + dictWord{138, 11, 31}, + dictWord{5, 10, 278}, + dictWord{137, 10, 68}, + dictWord{4, 10, 163}, + dictWord{5, 10, 201}, + dictWord{5, 10, 307}, + dictWord{5, 10, 310}, + dictWord{6, 10, 335}, + dictWord{7, 10, 284}, + dictWord{136, 10, 165}, + dictWord{6, 0, 839}, + dictWord{135, 10, 1660}, + dictWord{136, 10, 781}, + dictWord{6, 10, 33}, + dictWord{135, 10, 1244}, + dictWord{ + 133, + 0, + 637, + }, + dictWord{4, 11, 161}, + dictWord{133, 11, 631}, + dictWord{137, 0, 590}, + dictWord{7, 10, 1953}, + dictWord{136, 10, 720}, + dictWord{5, 0, 280}, + dictWord{ + 7, + 0, + 1226, + }, + dictWord{138, 10, 203}, + dictWord{134, 0, 1386}, + dictWord{5, 0, 281}, + dictWord{6, 0, 1026}, + dictWord{6, 10, 326}, + dictWord{7, 10, 677}, + dictWord{ + 137, + 10, + 425, + }, + dictWord{7, 11, 1557}, + dictWord{135, 11, 1684}, + dictWord{135, 0, 1064}, + dictWord{9, 11, 469}, + dictWord{9, 11, 709}, + dictWord{12, 11, 512}, + dictWord{14, 11, 65}, + dictWord{145, 11, 12}, + dictWord{134, 0, 917}, + dictWord{10, 11, 229}, + dictWord{11, 11, 73}, + dictWord{11, 11, 376}, + dictWord{ + 139, + 11, + 433, + }, + dictWord{7, 0, 555}, + dictWord{9, 0, 192}, + dictWord{13, 0, 30}, + dictWord{13, 0, 49}, + dictWord{15, 0, 150}, + dictWord{16, 0, 76}, + dictWord{20, 0, 52}, + dictWord{ + 7, + 10, + 1316, + }, + dictWord{7, 10, 1412}, + dictWord{7, 10, 1839}, + dictWord{9, 10, 589}, + dictWord{11, 10, 241}, + dictWord{11, 10, 676}, + dictWord{11, 10, 811}, + dictWord{11, 10, 891}, + dictWord{12, 10, 140}, + dictWord{12, 10, 346}, + dictWord{12, 10, 479}, + dictWord{13, 10, 381}, + dictWord{14, 10, 188}, + dictWord{ + 146, + 10, + 30, + }, + dictWord{149, 0, 15}, + dictWord{6, 0, 1882}, + dictWord{6, 0, 1883}, + dictWord{6, 0, 1897}, + dictWord{9, 0, 945}, + dictWord{9, 0, 1014}, + dictWord{9, 0, 1020}, + dictWord{12, 0, 823}, + dictWord{12, 0, 842}, + dictWord{12, 0, 866}, + dictWord{12, 0, 934}, + dictWord{15, 0, 242}, + dictWord{146, 0, 208}, + dictWord{6, 0, 965}, + dictWord{134, 0, 1499}, + dictWord{7, 0, 33}, + dictWord{7, 0, 120}, + dictWord{8, 0, 489}, + dictWord{9, 0, 319}, + dictWord{10, 0, 820}, + dictWord{11, 0, 1004}, + dictWord{ + 12, + 0, + 379, + }, + dictWord{12, 0, 679}, + dictWord{13, 0, 117}, + dictWord{13, 0, 412}, + dictWord{14, 0, 25}, + dictWord{15, 0, 52}, + dictWord{15, 0, 161}, + dictWord{16, 0, 47}, + dictWord{149, 0, 2}, + dictWord{6, 11, 558}, + dictWord{7, 11, 651}, + dictWord{8, 11, 421}, + dictWord{9, 11, 0}, + dictWord{138, 11, 34}, + dictWord{4, 0, 937}, + dictWord{ + 5, + 0, + 801, + }, + dictWord{7, 0, 473}, + dictWord{5, 10, 358}, + dictWord{7, 10, 1184}, + dictWord{10, 10, 662}, + dictWord{13, 10, 212}, + dictWord{13, 10, 304}, + dictWord{ + 13, + 10, + 333, + }, + dictWord{145, 10, 98}, + dictWord{132, 0, 877}, + dictWord{6, 0, 693}, + dictWord{134, 0, 824}, + dictWord{132, 0, 365}, + dictWord{7, 11, 1832}, + dictWord{ + 138, + 11, + 374, + }, + dictWord{5, 0, 7}, + dictWord{139, 0, 774}, + dictWord{4, 0, 734}, + dictWord{5, 0, 662}, + dictWord{134, 0, 430}, + dictWord{4, 0, 746}, + dictWord{ + 135, + 0, + 1090, + }, + dictWord{5, 0, 360}, + dictWord{8, 0, 237}, + dictWord{10, 0, 231}, + dictWord{147, 0, 124}, + dictWord{138, 11, 348}, + dictWord{6, 11, 6}, + dictWord{7, 11, 81}, + dictWord{7, 11, 771}, + dictWord{7, 11, 1731}, + dictWord{9, 11, 405}, + dictWord{138, 11, 421}, + dictWord{6, 0, 740}, + dictWord{137, 0, 822}, + dictWord{ + 133, + 10, + 946, + }, + dictWord{7, 0, 1485}, + dictWord{136, 0, 929}, + dictWord{7, 10, 411}, + dictWord{8, 10, 631}, + dictWord{9, 10, 323}, + dictWord{10, 10, 355}, + dictWord{ + 11, + 10, + 491, + }, + dictWord{12, 10, 143}, + dictWord{12, 10, 402}, + dictWord{13, 10, 73}, + dictWord{14, 10, 408}, + dictWord{15, 10, 107}, + dictWord{146, 10, 71}, + dictWord{ + 135, + 10, + 590, + }, + dictWord{5, 11, 881}, + dictWord{133, 11, 885}, + dictWord{150, 11, 25}, + dictWord{4, 0, 852}, + dictWord{5, 11, 142}, + dictWord{134, 11, 546}, + dictWord{7, 10, 1467}, + dictWord{8, 10, 328}, + dictWord{10, 10, 544}, + dictWord{11, 10, 955}, + dictWord{13, 10, 320}, + dictWord{145, 10, 83}, + dictWord{9, 0, 17}, + dictWord{10, 0, 291}, + dictWord{11, 10, 511}, + dictWord{13, 10, 394}, + dictWord{14, 10, 298}, + dictWord{14, 10, 318}, + dictWord{146, 10, 103}, + dictWord{5, 11, 466}, + dictWord{11, 11, 571}, + dictWord{12, 11, 198}, + dictWord{13, 11, 283}, + dictWord{14, 11, 186}, + dictWord{15, 11, 21}, + dictWord{143, 11, 103}, + dictWord{ + 134, + 0, + 1001, + }, + dictWord{4, 11, 185}, + dictWord{5, 11, 257}, + dictWord{5, 11, 839}, + dictWord{5, 11, 936}, + dictWord{7, 11, 171}, + dictWord{9, 11, 399}, + dictWord{ + 10, + 11, + 258, + }, + dictWord{10, 11, 395}, + dictWord{10, 11, 734}, + dictWord{11, 11, 1014}, + dictWord{12, 11, 23}, + dictWord{13, 11, 350}, + dictWord{14, 11, 150}, + dictWord{147, 11, 6}, + dictWord{143, 0, 35}, + dictWord{132, 0, 831}, + dictWord{5, 10, 835}, + dictWord{134, 10, 483}, + dictWord{4, 0, 277}, + dictWord{5, 0, 608}, + dictWord{ + 6, + 0, + 493, + }, + dictWord{7, 0, 457}, + dictWord{12, 0, 384}, + dictWord{7, 11, 404}, + dictWord{7, 11, 1377}, + dictWord{7, 11, 1430}, + dictWord{7, 11, 2017}, + dictWord{ + 8, + 11, + 149, + }, + dictWord{8, 11, 239}, + dictWord{8, 11, 512}, + dictWord{8, 11, 793}, + dictWord{8, 11, 818}, + dictWord{9, 11, 474}, + dictWord{9, 11, 595}, + dictWord{ + 10, + 11, + 122, + }, + dictWord{10, 11, 565}, + dictWord{10, 11, 649}, + dictWord{10, 11, 783}, + dictWord{11, 11, 239}, + dictWord{11, 11, 295}, + dictWord{11, 11, 447}, + dictWord{ + 11, + 11, + 528, + }, + dictWord{11, 11, 639}, + dictWord{11, 11, 800}, + dictWord{11, 11, 936}, + dictWord{12, 11, 25}, + dictWord{12, 11, 73}, + dictWord{12, 11, 77}, + dictWord{12, 11, 157}, + dictWord{12, 11, 316}, + dictWord{12, 11, 390}, + dictWord{12, 11, 391}, + dictWord{12, 11, 394}, + dictWord{12, 11, 395}, + dictWord{ + 12, + 11, + 478, + }, + dictWord{12, 11, 503}, + dictWord{12, 11, 592}, + dictWord{12, 11, 680}, + dictWord{13, 11, 50}, + dictWord{13, 11, 53}, + dictWord{13, 11, 132}, + dictWord{ + 13, + 11, + 198, + }, + dictWord{13, 11, 275}, + dictWord{13, 11, 322}, + dictWord{13, 11, 415}, + dictWord{14, 11, 71}, + dictWord{14, 11, 257}, + dictWord{14, 11, 395}, + dictWord{15, 11, 71}, + dictWord{15, 11, 136}, + dictWord{17, 11, 123}, + dictWord{18, 11, 93}, + dictWord{147, 11, 58}, + dictWord{134, 0, 1351}, + dictWord{7, 0, 27}, + dictWord{135, 0, 316}, + dictWord{136, 11, 712}, + dictWord{136, 0, 984}, + dictWord{133, 0, 552}, + dictWord{137, 0, 264}, + dictWord{132, 0, 401}, + dictWord{6, 0, 710}, + dictWord{6, 0, 1111}, + dictWord{134, 0, 1343}, + dictWord{134, 0, 1211}, + dictWord{9, 0, 543}, + dictWord{10, 0, 524}, + dictWord{11, 0, 108}, + dictWord{11, 0, 653}, + dictWord{12, 0, 524}, + dictWord{13, 0, 123}, + dictWord{14, 0, 252}, + dictWord{16, 0, 18}, + dictWord{19, 0, 38}, + dictWord{20, 0, 26}, + dictWord{20, 0, 65}, + dictWord{ + 21, + 0, + 3, + }, + dictWord{151, 0, 11}, + dictWord{4, 0, 205}, + dictWord{5, 0, 623}, + dictWord{7, 0, 104}, + dictWord{8, 0, 519}, + dictWord{137, 0, 716}, + dictWord{132, 10, 677}, + dictWord{4, 11, 377}, + dictWord{152, 11, 13}, + dictWord{135, 11, 1673}, + dictWord{7, 0, 579}, + dictWord{9, 0, 41}, + dictWord{9, 0, 244}, + dictWord{9, 0, 669}, + dictWord{ + 10, + 0, + 5, + }, + dictWord{11, 0, 861}, + dictWord{11, 0, 951}, + dictWord{139, 0, 980}, + dictWord{132, 0, 717}, + dictWord{136, 0, 1011}, + dictWord{132, 0, 805}, + dictWord{ + 4, + 11, + 180, + }, + dictWord{135, 11, 1906}, + dictWord{132, 10, 777}, + dictWord{132, 10, 331}, + dictWord{132, 0, 489}, + dictWord{6, 0, 1024}, + dictWord{4, 11, 491}, + dictWord{133, 10, 747}, + dictWord{135, 11, 1182}, + dictWord{4, 11, 171}, + dictWord{138, 11, 234}, + dictWord{4, 11, 586}, + dictWord{7, 11, 1186}, + dictWord{ + 138, + 11, + 631, + }, + dictWord{135, 0, 892}, + dictWord{135, 11, 336}, + dictWord{9, 11, 931}, + dictWord{10, 11, 334}, + dictWord{148, 11, 71}, + dictWord{137, 0, 473}, + dictWord{6, 0, 864}, + dictWord{12, 0, 659}, + dictWord{139, 11, 926}, + dictWord{7, 0, 819}, + dictWord{9, 0, 26}, + dictWord{9, 0, 392}, + dictWord{10, 0, 152}, + dictWord{ + 10, + 0, + 226, + }, + dictWord{11, 0, 19}, + dictWord{12, 0, 276}, + dictWord{12, 0, 426}, + dictWord{12, 0, 589}, + dictWord{13, 0, 460}, + dictWord{15, 0, 97}, + dictWord{19, 0, 48}, + dictWord{148, 0, 104}, + dictWord{135, 0, 51}, + dictWord{133, 10, 326}, + dictWord{4, 10, 691}, + dictWord{146, 10, 16}, + dictWord{9, 0, 130}, + dictWord{11, 0, 765}, + dictWord{10, 10, 680}, + dictWord{10, 10, 793}, + dictWord{141, 10, 357}, + dictWord{133, 11, 765}, + dictWord{8, 0, 229}, + dictWord{6, 10, 32}, + dictWord{7, 10, 385}, + dictWord{7, 10, 757}, + dictWord{7, 10, 1916}, + dictWord{8, 10, 94}, + dictWord{8, 10, 711}, + dictWord{9, 10, 541}, + dictWord{10, 10, 162}, + dictWord{10, 10, 795}, + dictWord{11, 10, 989}, + dictWord{11, 10, 1010}, + dictWord{12, 10, 14}, + dictWord{142, 10, 308}, + dictWord{7, 11, 474}, + dictWord{137, 11, 578}, + dictWord{ + 132, + 0, + 674, + }, + dictWord{132, 0, 770}, + dictWord{5, 0, 79}, + dictWord{7, 0, 1027}, + dictWord{7, 0, 1477}, + dictWord{139, 0, 52}, + dictWord{133, 11, 424}, + dictWord{ + 134, + 0, + 1666, + }, + dictWord{6, 0, 409}, + dictWord{6, 10, 349}, + dictWord{6, 10, 1682}, + dictWord{7, 10, 1252}, + dictWord{8, 10, 112}, + dictWord{8, 11, 714}, + dictWord{ + 9, + 10, + 435, + }, + dictWord{9, 10, 668}, + dictWord{10, 10, 290}, + dictWord{10, 10, 319}, + dictWord{10, 10, 815}, + dictWord{11, 10, 180}, + dictWord{11, 10, 837}, + dictWord{ + 12, + 10, + 240, + }, + dictWord{13, 10, 152}, + dictWord{13, 10, 219}, + dictWord{142, 10, 158}, + dictWord{5, 0, 789}, + dictWord{134, 0, 195}, + dictWord{4, 0, 251}, + dictWord{ + 4, + 0, + 688, + }, + dictWord{7, 0, 513}, + dictWord{135, 0, 1284}, + dictWord{132, 10, 581}, + dictWord{9, 11, 420}, + dictWord{10, 11, 269}, + dictWord{10, 11, 285}, + dictWord{10, 11, 576}, + dictWord{11, 11, 397}, + dictWord{13, 11, 175}, + dictWord{145, 11, 90}, + dictWord{6, 10, 126}, + dictWord{7, 10, 573}, + dictWord{8, 10, 397}, + dictWord{142, 10, 44}, + dictWord{132, 11, 429}, + dictWord{133, 0, 889}, + dictWord{4, 0, 160}, + dictWord{5, 0, 330}, + dictWord{7, 0, 1434}, + dictWord{136, 0, 174}, + dictWord{7, 11, 18}, + dictWord{7, 11, 699}, + dictWord{7, 11, 1966}, + dictWord{8, 11, 752}, + dictWord{9, 11, 273}, + dictWord{9, 11, 412}, + dictWord{9, 11, 703}, + dictWord{ + 10, + 11, + 71, + }, + dictWord{10, 11, 427}, + dictWord{10, 11, 508}, + dictWord{146, 11, 97}, + dictWord{6, 0, 872}, + dictWord{134, 0, 899}, + dictWord{133, 10, 926}, + dictWord{134, 0, 1126}, + dictWord{134, 0, 918}, + dictWord{4, 11, 53}, + dictWord{5, 11, 186}, + dictWord{135, 11, 752}, + dictWord{7, 0, 268}, + dictWord{136, 0, 569}, + dictWord{134, 0, 1224}, + dictWord{6, 0, 1361}, + dictWord{7, 10, 1232}, + dictWord{137, 10, 531}, + dictWord{8, 11, 575}, + dictWord{10, 11, 289}, + dictWord{ + 139, + 11, + 319, + }, + dictWord{133, 10, 670}, + dictWord{132, 11, 675}, + dictWord{133, 0, 374}, + dictWord{135, 10, 1957}, + dictWord{133, 0, 731}, + dictWord{11, 0, 190}, + dictWord{15, 0, 49}, + dictWord{11, 11, 190}, + dictWord{143, 11, 49}, + dictWord{4, 0, 626}, + dictWord{5, 0, 506}, + dictWord{5, 0, 642}, + dictWord{6, 0, 425}, + dictWord{ + 10, + 0, + 202, + }, + dictWord{139, 0, 141}, + dictWord{137, 0, 444}, + dictWord{7, 10, 242}, + dictWord{135, 10, 1942}, + dictWord{6, 11, 209}, + dictWord{8, 11, 468}, + dictWord{ + 9, + 11, + 210, + }, + dictWord{11, 11, 36}, + dictWord{12, 11, 28}, + dictWord{12, 11, 630}, + dictWord{13, 11, 21}, + dictWord{13, 11, 349}, + dictWord{14, 11, 7}, + dictWord{ + 145, + 11, + 13, + }, + dictWord{4, 11, 342}, + dictWord{135, 11, 1179}, + dictWord{5, 10, 834}, + dictWord{7, 10, 1202}, + dictWord{8, 10, 14}, + dictWord{9, 10, 481}, + dictWord{ + 137, + 10, + 880, + }, + dictWord{4, 11, 928}, + dictWord{133, 11, 910}, + dictWord{4, 11, 318}, + dictWord{4, 11, 496}, + dictWord{7, 11, 856}, + dictWord{139, 11, 654}, + dictWord{136, 0, 835}, + dictWord{7, 0, 1526}, + dictWord{138, 10, 465}, + dictWord{151, 0, 17}, + dictWord{135, 0, 477}, + dictWord{4, 10, 357}, + dictWord{6, 10, 172}, + dictWord{7, 10, 143}, + dictWord{137, 10, 413}, + dictWord{6, 0, 1374}, + dictWord{138, 0, 994}, + dictWord{18, 0, 76}, + dictWord{132, 10, 590}, + dictWord{7, 0, 287}, + dictWord{8, 0, 355}, + dictWord{9, 0, 293}, + dictWord{137, 0, 743}, + dictWord{134, 0, 1389}, + dictWord{7, 11, 915}, + dictWord{8, 11, 247}, + dictWord{147, 11, 0}, + dictWord{ + 4, + 11, + 202, + }, + dictWord{5, 11, 382}, + dictWord{6, 11, 454}, + dictWord{7, 11, 936}, + dictWord{7, 11, 1803}, + dictWord{8, 11, 758}, + dictWord{9, 11, 375}, + dictWord{ + 9, + 11, + 895, + }, + dictWord{10, 11, 743}, + dictWord{10, 11, 792}, + dictWord{11, 11, 978}, + dictWord{11, 11, 1012}, + dictWord{142, 11, 109}, + dictWord{5, 0, 384}, + dictWord{8, 0, 455}, + dictWord{140, 0, 48}, + dictWord{132, 11, 390}, + dictWord{5, 10, 169}, + dictWord{7, 10, 333}, + dictWord{136, 10, 45}, + dictWord{5, 0, 264}, + dictWord{134, 0, 184}, + dictWord{138, 11, 791}, + dictWord{133, 11, 717}, + dictWord{132, 10, 198}, + dictWord{6, 11, 445}, + dictWord{7, 11, 332}, + dictWord{ + 137, + 11, + 909, + }, + dictWord{136, 0, 1001}, + dictWord{4, 10, 24}, + dictWord{5, 10, 140}, + dictWord{5, 10, 185}, + dictWord{7, 10, 1500}, + dictWord{11, 10, 565}, + dictWord{ + 139, + 10, + 838, + }, + dictWord{134, 11, 578}, + dictWord{5, 0, 633}, + dictWord{6, 0, 28}, + dictWord{135, 0, 1323}, + dictWord{132, 0, 851}, + dictWord{136, 11, 267}, + dictWord{ + 7, + 0, + 359, + }, + dictWord{8, 0, 243}, + dictWord{140, 0, 175}, + dictWord{4, 10, 334}, + dictWord{133, 10, 593}, + dictWord{141, 11, 87}, + dictWord{136, 11, 766}, + dictWord{10, 0, 287}, + dictWord{12, 0, 138}, + dictWord{10, 11, 287}, + dictWord{140, 11, 138}, + dictWord{4, 0, 105}, + dictWord{132, 0, 740}, + dictWord{140, 10, 116}, + dictWord{134, 0, 857}, + dictWord{135, 11, 1841}, + dictWord{6, 0, 1402}, + dictWord{137, 0, 819}, + dictWord{132, 11, 584}, + dictWord{132, 10, 709}, + dictWord{ + 133, + 10, + 897, + }, + dictWord{5, 0, 224}, + dictWord{13, 0, 174}, + dictWord{146, 0, 52}, + dictWord{135, 10, 1840}, + dictWord{4, 10, 608}, + dictWord{133, 10, 497}, + dictWord{139, 11, 60}, + dictWord{4, 0, 758}, + dictWord{135, 0, 1649}, + dictWord{4, 11, 226}, + dictWord{4, 11, 326}, + dictWord{135, 11, 1770}, + dictWord{5, 11, 426}, + dictWord{8, 11, 30}, + dictWord{9, 11, 2}, + dictWord{11, 11, 549}, + dictWord{147, 11, 122}, + dictWord{135, 10, 2039}, + dictWord{6, 10, 540}, + dictWord{ + 136, + 10, + 136, + }, + dictWord{4, 0, 573}, + dictWord{8, 0, 655}, + dictWord{4, 10, 897}, + dictWord{133, 10, 786}, + dictWord{7, 0, 351}, + dictWord{139, 0, 128}, + dictWord{ + 133, + 10, + 999, + }, + dictWord{4, 10, 299}, + dictWord{135, 10, 1004}, + dictWord{133, 0, 918}, + dictWord{132, 11, 345}, + dictWord{4, 11, 385}, + dictWord{7, 11, 265}, + dictWord{135, 11, 587}, + dictWord{133, 10, 456}, + dictWord{136, 10, 180}, + dictWord{6, 0, 687}, + dictWord{134, 0, 1537}, + dictWord{4, 11, 347}, + dictWord{ + 5, + 11, + 423, + }, + dictWord{5, 11, 996}, + dictWord{135, 11, 1329}, + dictWord{132, 10, 755}, + dictWord{7, 11, 1259}, + dictWord{9, 11, 125}, + dictWord{11, 11, 65}, + dictWord{140, 11, 285}, + dictWord{5, 11, 136}, + dictWord{6, 11, 136}, + dictWord{136, 11, 644}, + dictWord{134, 0, 1525}, + dictWord{4, 0, 1009}, + dictWord{ + 135, + 0, + 1139, + }, + dictWord{139, 10, 338}, + dictWord{132, 0, 340}, + dictWord{135, 10, 1464}, + dictWord{8, 0, 847}, + dictWord{10, 0, 861}, + dictWord{10, 0, 876}, + dictWord{ + 10, + 0, + 889, + }, + dictWord{10, 0, 922}, + dictWord{10, 0, 929}, + dictWord{10, 0, 933}, + dictWord{12, 0, 784}, + dictWord{140, 0, 791}, + dictWord{139, 0, 176}, + dictWord{ + 9, + 11, + 134, + }, + dictWord{10, 11, 2}, + dictWord{10, 11, 27}, + dictWord{10, 11, 333}, + dictWord{11, 11, 722}, + dictWord{143, 11, 1}, + dictWord{4, 11, 433}, + dictWord{ + 133, + 11, + 719, + }, + dictWord{5, 0, 985}, + dictWord{7, 0, 509}, + dictWord{7, 0, 529}, + dictWord{145, 0, 96}, + dictWord{132, 0, 615}, + dictWord{4, 10, 890}, + dictWord{ + 5, + 10, + 805, + }, + dictWord{5, 10, 819}, + dictWord{5, 10, 961}, + dictWord{6, 10, 396}, + dictWord{6, 10, 1631}, + dictWord{6, 10, 1678}, + dictWord{7, 10, 1967}, + dictWord{ + 7, + 10, + 2041, + }, + dictWord{9, 10, 630}, + dictWord{11, 10, 8}, + dictWord{11, 10, 1019}, + dictWord{12, 10, 176}, + dictWord{13, 10, 225}, + dictWord{14, 10, 292}, + dictWord{ + 149, + 10, + 24, + }, + dictWord{135, 0, 1919}, + dictWord{134, 0, 1131}, + dictWord{144, 11, 21}, + dictWord{144, 11, 51}, + dictWord{135, 10, 1815}, + dictWord{4, 0, 247}, + dictWord{7, 10, 1505}, + dictWord{10, 10, 190}, + dictWord{10, 10, 634}, + dictWord{11, 10, 792}, + dictWord{12, 10, 358}, + dictWord{140, 10, 447}, + dictWord{ + 5, + 10, + 0, + }, + dictWord{6, 10, 536}, + dictWord{7, 10, 604}, + dictWord{13, 10, 445}, + dictWord{145, 10, 126}, + dictWord{4, 0, 184}, + dictWord{5, 0, 390}, + dictWord{6, 0, 337}, + dictWord{7, 0, 23}, + dictWord{7, 0, 494}, + dictWord{7, 0, 618}, + dictWord{7, 0, 1456}, + dictWord{8, 0, 27}, + dictWord{8, 0, 599}, + dictWord{10, 0, 153}, + dictWord{ + 139, + 0, + 710, + }, + dictWord{6, 10, 232}, + dictWord{6, 10, 412}, + dictWord{7, 10, 1074}, + dictWord{8, 10, 9}, + dictWord{8, 10, 157}, + dictWord{8, 10, 786}, + dictWord{9, 10, 196}, + dictWord{9, 10, 352}, + dictWord{9, 10, 457}, + dictWord{10, 10, 337}, + dictWord{11, 10, 232}, + dictWord{11, 10, 877}, + dictWord{12, 10, 480}, + dictWord{ + 140, + 10, + 546, + }, + dictWord{13, 0, 38}, + dictWord{135, 10, 958}, + dictWord{4, 10, 382}, + dictWord{136, 10, 579}, + dictWord{4, 10, 212}, + dictWord{135, 10, 1206}, + dictWord{ + 4, + 11, + 555, + }, + dictWord{8, 11, 536}, + dictWord{138, 11, 288}, + dictWord{11, 11, 139}, + dictWord{139, 11, 171}, + dictWord{9, 11, 370}, + dictWord{138, 11, 90}, + dictWord{132, 0, 1015}, + dictWord{134, 0, 1088}, + dictWord{5, 10, 655}, + dictWord{135, 11, 977}, + dictWord{134, 0, 1585}, + dictWord{17, 10, 67}, + dictWord{ + 147, + 10, + 74, + }, + dictWord{10, 0, 227}, + dictWord{11, 0, 497}, + dictWord{11, 0, 709}, + dictWord{140, 0, 415}, + dictWord{6, 0, 360}, + dictWord{7, 0, 1664}, + dictWord{ + 136, + 0, + 478, + }, + dictWord{7, 0, 95}, + dictWord{6, 10, 231}, + dictWord{136, 10, 423}, + dictWord{140, 11, 65}, + dictWord{4, 11, 257}, + dictWord{135, 11, 2031}, + dictWord{ + 135, + 11, + 1768, + }, + dictWord{133, 10, 300}, + dictWord{139, 11, 211}, + dictWord{136, 0, 699}, + dictWord{6, 10, 237}, + dictWord{7, 10, 611}, + dictWord{8, 10, 100}, + dictWord{9, 10, 416}, + dictWord{11, 10, 335}, + dictWord{12, 10, 173}, + dictWord{146, 10, 101}, + dictWord{14, 0, 26}, + dictWord{146, 0, 150}, + dictWord{6, 0, 581}, + dictWord{135, 0, 1119}, + dictWord{135, 10, 1208}, + dictWord{132, 0, 739}, + dictWord{6, 11, 83}, + dictWord{6, 11, 1733}, + dictWord{135, 11, 1389}, + dictWord{ + 137, + 0, + 869, + }, + dictWord{4, 0, 67}, + dictWord{5, 0, 422}, + dictWord{7, 0, 1037}, + dictWord{7, 0, 1289}, + dictWord{7, 0, 1555}, + dictWord{9, 0, 741}, + dictWord{145, 0, 108}, + dictWord{133, 10, 199}, + dictWord{12, 10, 427}, + dictWord{146, 10, 38}, + dictWord{136, 0, 464}, + dictWord{142, 0, 42}, + dictWord{10, 0, 96}, + dictWord{8, 11, 501}, + dictWord{137, 11, 696}, + dictWord{134, 11, 592}, + dictWord{4, 0, 512}, + dictWord{4, 0, 966}, + dictWord{5, 0, 342}, + dictWord{6, 0, 1855}, + dictWord{8, 0, 869}, + dictWord{8, 0, 875}, + dictWord{8, 0, 901}, + dictWord{144, 0, 26}, + dictWord{8, 0, 203}, + dictWord{11, 0, 823}, + dictWord{11, 0, 846}, + dictWord{12, 0, 482}, + dictWord{ + 13, + 0, + 277, + }, + dictWord{13, 0, 302}, + dictWord{13, 0, 464}, + dictWord{14, 0, 205}, + dictWord{142, 0, 221}, + dictWord{4, 0, 449}, + dictWord{133, 0, 718}, + dictWord{ + 7, + 11, + 1718, + }, + dictWord{9, 11, 95}, + dictWord{9, 11, 274}, + dictWord{10, 11, 279}, + dictWord{10, 11, 317}, + dictWord{10, 11, 420}, + dictWord{11, 11, 303}, + dictWord{ + 11, + 11, + 808, + }, + dictWord{12, 11, 134}, + dictWord{12, 11, 367}, + dictWord{13, 11, 149}, + dictWord{13, 11, 347}, + dictWord{14, 11, 349}, + dictWord{14, 11, 406}, + dictWord{18, 11, 22}, + dictWord{18, 11, 89}, + dictWord{18, 11, 122}, + dictWord{147, 11, 47}, + dictWord{133, 11, 26}, + dictWord{4, 0, 355}, + dictWord{6, 0, 311}, + dictWord{ + 9, + 0, + 256, + }, + dictWord{138, 0, 404}, + dictWord{132, 11, 550}, + dictWord{10, 0, 758}, + dictWord{6, 10, 312}, + dictWord{6, 10, 1715}, + dictWord{10, 10, 584}, + dictWord{11, 10, 546}, + dictWord{11, 10, 692}, + dictWord{12, 10, 259}, + dictWord{12, 10, 295}, + dictWord{13, 10, 46}, + dictWord{141, 10, 154}, + dictWord{ + 136, + 11, + 822, + }, + dictWord{5, 0, 827}, + dictWord{4, 11, 902}, + dictWord{5, 11, 809}, + dictWord{6, 11, 122}, + dictWord{135, 11, 896}, + dictWord{5, 0, 64}, + dictWord{140, 0, 581}, + dictWord{4, 0, 442}, + dictWord{6, 0, 739}, + dictWord{7, 0, 1047}, + dictWord{7, 0, 1352}, + dictWord{7, 0, 1643}, + dictWord{7, 11, 1911}, + dictWord{9, 11, 449}, + dictWord{10, 11, 192}, + dictWord{138, 11, 740}, + dictWord{135, 11, 262}, + dictWord{132, 10, 588}, + dictWord{133, 11, 620}, + dictWord{5, 0, 977}, + dictWord{ + 6, + 0, + 288, + }, + dictWord{7, 0, 528}, + dictWord{4, 11, 34}, + dictWord{5, 11, 574}, + dictWord{7, 11, 279}, + dictWord{7, 11, 1624}, + dictWord{136, 11, 601}, + dictWord{ + 6, + 0, + 1375, + }, + dictWord{4, 10, 231}, + dictWord{5, 10, 61}, + dictWord{6, 10, 104}, + dictWord{7, 10, 729}, + dictWord{7, 10, 964}, + dictWord{7, 10, 1658}, + dictWord{ + 140, + 10, + 414, + }, + dictWord{6, 10, 263}, + dictWord{138, 10, 757}, + dictWord{132, 10, 320}, + dictWord{4, 0, 254}, + dictWord{7, 0, 1309}, + dictWord{5, 11, 332}, + dictWord{ + 135, + 11, + 1309, + }, + dictWord{6, 11, 261}, + dictWord{8, 11, 182}, + dictWord{139, 11, 943}, + dictWord{132, 10, 225}, + dictWord{6, 0, 12}, + dictWord{135, 0, 1219}, + dictWord{4, 0, 275}, + dictWord{12, 0, 376}, + dictWord{6, 11, 1721}, + dictWord{141, 11, 490}, + dictWord{4, 11, 933}, + dictWord{133, 11, 880}, + dictWord{6, 0, 951}, + dictWord{6, 0, 1109}, + dictWord{6, 0, 1181}, + dictWord{7, 0, 154}, + dictWord{4, 10, 405}, + dictWord{7, 10, 817}, + dictWord{14, 10, 58}, + dictWord{17, 10, 37}, + dictWord{ + 146, + 10, + 124, + }, + dictWord{6, 0, 1520}, + dictWord{133, 10, 974}, + dictWord{134, 0, 1753}, + dictWord{6, 0, 369}, + dictWord{6, 0, 502}, + dictWord{7, 0, 1036}, + dictWord{ + 8, + 0, + 348, + }, + dictWord{9, 0, 452}, + dictWord{10, 0, 26}, + dictWord{11, 0, 224}, + dictWord{11, 0, 387}, + dictWord{11, 0, 772}, + dictWord{12, 0, 95}, + dictWord{12, 0, 629}, + dictWord{13, 0, 195}, + dictWord{13, 0, 207}, + dictWord{13, 0, 241}, + dictWord{14, 0, 260}, + dictWord{14, 0, 270}, + dictWord{143, 0, 140}, + dictWord{132, 0, 269}, + dictWord{5, 0, 480}, + dictWord{7, 0, 532}, + dictWord{7, 0, 1197}, + dictWord{7, 0, 1358}, + dictWord{8, 0, 291}, + dictWord{11, 0, 349}, + dictWord{142, 0, 396}, + dictWord{ + 5, + 10, + 235, + }, + dictWord{7, 10, 1239}, + dictWord{11, 10, 131}, + dictWord{140, 10, 370}, + dictWord{7, 10, 956}, + dictWord{7, 10, 1157}, + dictWord{7, 10, 1506}, + dictWord{ + 7, + 10, + 1606, + }, + dictWord{7, 10, 1615}, + dictWord{7, 10, 1619}, + dictWord{7, 10, 1736}, + dictWord{7, 10, 1775}, + dictWord{8, 10, 590}, + dictWord{9, 10, 324}, + dictWord{9, 10, 736}, + dictWord{9, 10, 774}, + dictWord{9, 10, 776}, + dictWord{9, 10, 784}, + dictWord{10, 10, 567}, + dictWord{10, 10, 708}, + dictWord{11, 10, 518}, + dictWord{11, 10, 613}, + dictWord{11, 10, 695}, + dictWord{11, 10, 716}, + dictWord{11, 10, 739}, + dictWord{11, 10, 770}, + dictWord{11, 10, 771}, + dictWord{ + 11, + 10, + 848, + }, + dictWord{11, 10, 857}, + dictWord{11, 10, 931}, + dictWord{11, 10, 947}, + dictWord{12, 10, 326}, + dictWord{12, 10, 387}, + dictWord{12, 10, 484}, + dictWord{ + 12, + 10, + 528, + }, + dictWord{12, 10, 552}, + dictWord{12, 10, 613}, + dictWord{13, 10, 189}, + dictWord{13, 10, 256}, + dictWord{13, 10, 340}, + dictWord{13, 10, 432}, + dictWord{13, 10, 436}, + dictWord{13, 10, 440}, + dictWord{13, 10, 454}, + dictWord{14, 10, 174}, + dictWord{14, 10, 220}, + dictWord{14, 10, 284}, + dictWord{ + 14, + 10, + 390, + }, + dictWord{145, 10, 121}, + dictWord{8, 11, 598}, + dictWord{9, 11, 664}, + dictWord{138, 11, 441}, + dictWord{9, 10, 137}, + dictWord{138, 10, 221}, + dictWord{133, 11, 812}, + dictWord{148, 0, 15}, + dictWord{134, 0, 1341}, + dictWord{6, 0, 1017}, + dictWord{4, 11, 137}, + dictWord{7, 11, 1178}, + dictWord{ + 135, + 11, + 1520, + }, + dictWord{7, 10, 390}, + dictWord{138, 10, 140}, + dictWord{7, 11, 1260}, + dictWord{135, 11, 1790}, + dictWord{137, 11, 191}, + dictWord{ + 135, + 10, + 1144, + }, + dictWord{6, 0, 1810}, + dictWord{7, 0, 657}, + dictWord{8, 0, 886}, + dictWord{10, 0, 857}, + dictWord{14, 0, 440}, + dictWord{144, 0, 96}, + dictWord{8, 0, 533}, + dictWord{6, 11, 1661}, + dictWord{7, 11, 1975}, + dictWord{7, 11, 2009}, + dictWord{135, 11, 2011}, + dictWord{6, 0, 1453}, + dictWord{134, 10, 464}, + dictWord{ + 132, + 11, + 715, + }, + dictWord{5, 10, 407}, + dictWord{11, 10, 204}, + dictWord{11, 10, 243}, + dictWord{11, 10, 489}, + dictWord{12, 10, 293}, + dictWord{19, 10, 37}, + dictWord{20, 10, 73}, + dictWord{150, 10, 38}, + dictWord{133, 11, 703}, + dictWord{4, 0, 211}, + dictWord{7, 0, 1483}, + dictWord{5, 10, 325}, + dictWord{8, 10, 5}, + dictWord{ + 8, + 10, + 227, + }, + dictWord{9, 10, 105}, + dictWord{10, 10, 585}, + dictWord{140, 10, 614}, + dictWord{4, 0, 332}, + dictWord{5, 0, 335}, + dictWord{6, 0, 238}, + dictWord{ + 7, + 0, + 269, + }, + dictWord{7, 0, 811}, + dictWord{7, 0, 1797}, + dictWord{8, 0, 836}, + dictWord{9, 0, 507}, + dictWord{141, 0, 242}, + dictWord{5, 11, 89}, + dictWord{7, 11, 1915}, + dictWord{9, 11, 185}, + dictWord{9, 11, 235}, + dictWord{9, 11, 496}, + dictWord{10, 11, 64}, + dictWord{10, 11, 270}, + dictWord{10, 11, 403}, + dictWord{10, 11, 469}, + dictWord{10, 11, 529}, + dictWord{10, 11, 590}, + dictWord{11, 11, 140}, + dictWord{11, 11, 860}, + dictWord{13, 11, 1}, + dictWord{13, 11, 422}, + dictWord{14, 11, 341}, + dictWord{14, 11, 364}, + dictWord{17, 11, 93}, + dictWord{18, 11, 113}, + dictWord{19, 11, 97}, + dictWord{147, 11, 113}, + dictWord{133, 11, 695}, + dictWord{ + 16, + 0, + 19, + }, + dictWord{5, 11, 6}, + dictWord{6, 11, 183}, + dictWord{6, 10, 621}, + dictWord{7, 11, 680}, + dictWord{7, 11, 978}, + dictWord{7, 11, 1013}, + dictWord{7, 11, 1055}, + dictWord{12, 11, 230}, + dictWord{13, 11, 172}, + dictWord{13, 10, 504}, + dictWord{146, 11, 29}, + dictWord{136, 0, 156}, + dictWord{133, 0, 1009}, + dictWord{ + 6, + 11, + 29, + }, + dictWord{139, 11, 63}, + dictWord{134, 0, 820}, + dictWord{134, 10, 218}, + dictWord{7, 10, 454}, + dictWord{7, 10, 782}, + dictWord{8, 10, 768}, + dictWord{ + 140, + 10, + 686, + }, + dictWord{5, 0, 228}, + dictWord{6, 0, 203}, + dictWord{7, 0, 156}, + dictWord{8, 0, 347}, + dictWord{9, 0, 265}, + dictWord{18, 0, 39}, + dictWord{20, 0, 54}, + dictWord{21, 0, 31}, + dictWord{22, 0, 3}, + dictWord{23, 0, 0}, + dictWord{15, 11, 8}, + dictWord{18, 11, 39}, + dictWord{20, 11, 54}, + dictWord{21, 11, 31}, + dictWord{22, 11, 3}, + dictWord{151, 11, 0}, + dictWord{7, 0, 1131}, + dictWord{135, 0, 1468}, + dictWord{144, 10, 0}, + dictWord{134, 0, 1276}, + dictWord{10, 10, 676}, + dictWord{ + 140, + 10, + 462, + }, + dictWord{132, 11, 311}, + dictWord{134, 11, 1740}, + dictWord{7, 11, 170}, + dictWord{8, 11, 90}, + dictWord{8, 11, 177}, + dictWord{8, 11, 415}, + dictWord{ + 11, + 11, + 714, + }, + dictWord{142, 11, 281}, + dictWord{134, 10, 164}, + dictWord{6, 0, 1792}, + dictWord{138, 0, 849}, + dictWord{150, 10, 50}, + dictWord{5, 0, 291}, + dictWord{5, 0, 318}, + dictWord{7, 0, 765}, + dictWord{9, 0, 389}, + dictWord{12, 0, 548}, + dictWord{8, 11, 522}, + dictWord{142, 11, 328}, + dictWord{11, 11, 91}, + dictWord{ + 13, + 11, + 129, + }, + dictWord{15, 11, 101}, + dictWord{145, 11, 125}, + dictWord{4, 11, 494}, + dictWord{6, 11, 74}, + dictWord{7, 11, 44}, + dictWord{7, 11, 407}, + dictWord{ + 8, + 11, + 551, + }, + dictWord{12, 11, 17}, + dictWord{15, 11, 5}, + dictWord{148, 11, 11}, + dictWord{4, 11, 276}, + dictWord{133, 11, 296}, + dictWord{6, 10, 343}, + dictWord{ + 7, + 10, + 195, + }, + dictWord{7, 11, 1777}, + dictWord{9, 10, 226}, + dictWord{10, 10, 197}, + dictWord{10, 10, 575}, + dictWord{11, 10, 502}, + dictWord{139, 10, 899}, + dictWord{ + 10, + 0, + 525, + }, + dictWord{139, 0, 82}, + dictWord{14, 0, 453}, + dictWord{4, 11, 7}, + dictWord{5, 11, 90}, + dictWord{5, 11, 158}, + dictWord{6, 11, 542}, + dictWord{7, 11, 221}, + dictWord{7, 11, 1574}, + dictWord{9, 11, 490}, + dictWord{10, 11, 540}, + dictWord{11, 11, 443}, + dictWord{139, 11, 757}, + dictWord{135, 0, 666}, + dictWord{ + 22, + 10, + 29, + }, + dictWord{150, 11, 29}, + dictWord{4, 0, 422}, + dictWord{147, 10, 8}, + dictWord{5, 0, 355}, + dictWord{145, 0, 0}, + dictWord{6, 0, 1873}, + dictWord{9, 0, 918}, + dictWord{7, 11, 588}, + dictWord{9, 11, 175}, + dictWord{138, 11, 530}, + dictWord{143, 11, 31}, + dictWord{11, 0, 165}, + dictWord{7, 10, 1125}, + dictWord{9, 10, 143}, + dictWord{14, 10, 405}, + dictWord{150, 10, 21}, + dictWord{9, 0, 260}, + dictWord{137, 0, 905}, + dictWord{5, 11, 872}, + dictWord{6, 11, 57}, + dictWord{6, 11, 479}, + dictWord{ + 6, + 11, + 562, + }, + dictWord{7, 11, 471}, + dictWord{7, 11, 1060}, + dictWord{9, 11, 447}, + dictWord{9, 11, 454}, + dictWord{141, 11, 6}, + dictWord{138, 11, 704}, + dictWord{133, 0, 865}, + dictWord{5, 0, 914}, + dictWord{134, 0, 1625}, + dictWord{133, 0, 234}, + dictWord{7, 0, 1383}, + dictWord{5, 11, 31}, + dictWord{6, 11, 614}, + dictWord{145, 11, 61}, + dictWord{7, 11, 1200}, + dictWord{138, 11, 460}, + dictWord{6, 11, 424}, + dictWord{135, 11, 1866}, + dictWord{136, 0, 306}, + dictWord{ + 5, + 10, + 959, + }, + dictWord{12, 11, 30}, + dictWord{13, 11, 148}, + dictWord{14, 11, 87}, + dictWord{14, 11, 182}, + dictWord{16, 11, 42}, + dictWord{18, 11, 92}, + dictWord{ + 148, + 11, + 70, + }, + dictWord{6, 0, 1919}, + dictWord{6, 0, 1921}, + dictWord{9, 0, 923}, + dictWord{9, 0, 930}, + dictWord{9, 0, 941}, + dictWord{9, 0, 949}, + dictWord{9, 0, 987}, + dictWord{ + 9, + 0, + 988, + }, + dictWord{9, 0, 992}, + dictWord{12, 0, 802}, + dictWord{12, 0, 815}, + dictWord{12, 0, 856}, + dictWord{12, 0, 885}, + dictWord{12, 0, 893}, + dictWord{ + 12, + 0, + 898, + }, + dictWord{12, 0, 919}, + dictWord{12, 0, 920}, + dictWord{12, 0, 941}, + dictWord{12, 0, 947}, + dictWord{15, 0, 183}, + dictWord{15, 0, 185}, + dictWord{15, 0, 189}, + dictWord{15, 0, 197}, + dictWord{15, 0, 202}, + dictWord{15, 0, 233}, + dictWord{18, 0, 218}, + dictWord{18, 0, 219}, + dictWord{18, 0, 233}, + dictWord{143, 11, 156}, + dictWord{135, 10, 1759}, + dictWord{136, 10, 173}, + dictWord{13, 0, 163}, + dictWord{13, 0, 180}, + dictWord{18, 0, 78}, + dictWord{20, 0, 35}, + dictWord{5, 11, 13}, + dictWord{134, 11, 142}, + dictWord{134, 10, 266}, + dictWord{6, 11, 97}, + dictWord{7, 11, 116}, + dictWord{8, 11, 322}, + dictWord{8, 11, 755}, + dictWord{9, 11, 548}, + dictWord{10, 11, 714}, + dictWord{11, 11, 884}, + dictWord{141, 11, 324}, + dictWord{135, 0, 1312}, + dictWord{9, 0, 814}, + dictWord{137, 11, 676}, + dictWord{ + 133, + 0, + 707, + }, + dictWord{135, 0, 1493}, + dictWord{6, 0, 421}, + dictWord{7, 0, 61}, + dictWord{7, 0, 1540}, + dictWord{10, 0, 11}, + dictWord{138, 0, 501}, + dictWord{12, 0, 733}, + dictWord{12, 0, 766}, + dictWord{7, 11, 866}, + dictWord{135, 11, 1163}, + dictWord{137, 0, 341}, + dictWord{142, 0, 98}, + dictWord{145, 11, 115}, + dictWord{ + 135, + 11, + 1111, + }, + dictWord{136, 10, 300}, + dictWord{136, 0, 1014}, + dictWord{8, 11, 1}, + dictWord{9, 11, 112}, + dictWord{138, 11, 326}, + dictWord{132, 11, 730}, + dictWord{5, 11, 488}, + dictWord{6, 11, 527}, + dictWord{7, 11, 489}, + dictWord{7, 11, 1636}, + dictWord{8, 11, 121}, + dictWord{8, 11, 144}, + dictWord{8, 11, 359}, + dictWord{ + 9, + 11, + 193, + }, + dictWord{9, 11, 241}, + dictWord{9, 11, 336}, + dictWord{9, 11, 882}, + dictWord{11, 11, 266}, + dictWord{11, 11, 372}, + dictWord{11, 11, 944}, + dictWord{ + 12, + 11, + 401, + }, + dictWord{140, 11, 641}, + dictWord{6, 0, 971}, + dictWord{134, 0, 1121}, + dictWord{6, 0, 102}, + dictWord{7, 0, 72}, + dictWord{15, 0, 142}, + dictWord{ + 147, + 0, + 67, + }, + dictWord{151, 0, 30}, + dictWord{135, 0, 823}, + dictWord{134, 0, 1045}, + dictWord{5, 10, 427}, + dictWord{5, 10, 734}, + dictWord{7, 10, 478}, + dictWord{ + 136, + 10, + 52, + }, + dictWord{7, 0, 1930}, + dictWord{11, 10, 217}, + dictWord{142, 10, 165}, + dictWord{6, 0, 1512}, + dictWord{135, 0, 1870}, + dictWord{9, 11, 31}, + dictWord{ + 10, + 11, + 244, + }, + dictWord{10, 11, 699}, + dictWord{12, 11, 149}, + dictWord{141, 11, 497}, + dictWord{133, 11, 377}, + dictWord{145, 11, 101}, + dictWord{ + 10, + 11, + 158, + }, + dictWord{13, 11, 13}, + dictWord{13, 11, 137}, + dictWord{13, 11, 258}, + dictWord{14, 11, 111}, + dictWord{14, 11, 225}, + dictWord{14, 11, 253}, + dictWord{ + 14, + 11, + 304, + }, + dictWord{14, 11, 339}, + dictWord{14, 11, 417}, + dictWord{146, 11, 33}, + dictWord{6, 0, 87}, + dictWord{6, 10, 1734}, + dictWord{7, 10, 20}, + dictWord{ + 7, + 10, + 1056, + }, + dictWord{8, 10, 732}, + dictWord{9, 10, 406}, + dictWord{9, 10, 911}, + dictWord{138, 10, 694}, + dictWord{134, 0, 1243}, + dictWord{137, 0, 245}, + dictWord{ + 7, + 0, + 68, + }, + dictWord{8, 0, 48}, + dictWord{8, 0, 88}, + dictWord{8, 0, 582}, + dictWord{8, 0, 681}, + dictWord{9, 0, 373}, + dictWord{9, 0, 864}, + dictWord{11, 0, 157}, + dictWord{ + 11, + 0, + 336, + }, + dictWord{11, 0, 843}, + dictWord{148, 0, 27}, + dictWord{8, 11, 663}, + dictWord{144, 11, 8}, + dictWord{133, 10, 613}, + dictWord{4, 0, 88}, + dictWord{ + 5, + 0, + 137, + }, + dictWord{5, 0, 174}, + dictWord{5, 0, 777}, + dictWord{6, 0, 1664}, + dictWord{6, 0, 1725}, + dictWord{7, 0, 77}, + dictWord{7, 0, 426}, + dictWord{7, 0, 1317}, + dictWord{ + 7, + 0, + 1355, + }, + dictWord{8, 0, 126}, + dictWord{8, 0, 563}, + dictWord{9, 0, 523}, + dictWord{9, 0, 750}, + dictWord{10, 0, 310}, + dictWord{10, 0, 836}, + dictWord{11, 0, 42}, + dictWord{11, 0, 318}, + dictWord{11, 0, 731}, + dictWord{12, 0, 68}, + dictWord{12, 0, 92}, + dictWord{12, 0, 507}, + dictWord{12, 0, 692}, + dictWord{13, 0, 81}, + dictWord{ + 13, + 0, + 238, + }, + dictWord{13, 0, 374}, + dictWord{14, 0, 436}, + dictWord{18, 0, 138}, + dictWord{19, 0, 78}, + dictWord{19, 0, 111}, + dictWord{20, 0, 55}, + dictWord{20, 0, 77}, + dictWord{148, 0, 92}, + dictWord{141, 0, 418}, + dictWord{4, 0, 938}, + dictWord{137, 0, 625}, + dictWord{138, 0, 351}, + dictWord{5, 11, 843}, + dictWord{7, 10, 32}, + dictWord{ + 7, + 10, + 984, + }, + dictWord{8, 10, 85}, + dictWord{8, 10, 709}, + dictWord{9, 10, 579}, + dictWord{9, 10, 847}, + dictWord{9, 10, 856}, + dictWord{10, 10, 799}, + dictWord{ + 11, + 10, + 258, + }, + dictWord{11, 10, 1007}, + dictWord{12, 10, 331}, + dictWord{12, 10, 615}, + dictWord{13, 10, 188}, + dictWord{13, 10, 435}, + dictWord{14, 10, 8}, + dictWord{ + 15, + 10, + 165, + }, + dictWord{16, 10, 27}, + dictWord{148, 10, 40}, + dictWord{6, 0, 1668}, + dictWord{7, 0, 1499}, + dictWord{8, 0, 117}, + dictWord{9, 0, 314}, + dictWord{ + 138, + 0, + 174, + }, + dictWord{135, 0, 707}, + dictWord{132, 11, 554}, + dictWord{133, 11, 536}, + dictWord{5, 0, 403}, + dictWord{5, 11, 207}, + dictWord{9, 11, 79}, + dictWord{ + 11, + 11, + 625, + }, + dictWord{145, 11, 7}, + dictWord{132, 11, 424}, + dictWord{136, 11, 785}, + dictWord{4, 10, 167}, + dictWord{135, 10, 82}, + dictWord{9, 0, 7}, + dictWord{ + 23, + 0, + 6, + }, + dictWord{9, 11, 7}, + dictWord{151, 11, 6}, + dictWord{6, 0, 282}, + dictWord{5, 10, 62}, + dictWord{6, 10, 534}, + dictWord{7, 10, 74}, + dictWord{7, 10, 678}, + dictWord{ + 7, + 10, + 684, + }, + dictWord{7, 10, 1043}, + dictWord{7, 10, 1072}, + dictWord{8, 10, 280}, + dictWord{8, 10, 541}, + dictWord{8, 10, 686}, + dictWord{9, 10, 258}, + dictWord{ + 10, + 10, + 519, + }, + dictWord{11, 10, 252}, + dictWord{140, 10, 282}, + dictWord{138, 10, 33}, + dictWord{132, 10, 359}, + dictWord{4, 0, 44}, + dictWord{5, 0, 311}, + dictWord{ + 6, + 0, + 156, + }, + dictWord{7, 0, 639}, + dictWord{7, 0, 762}, + dictWord{7, 0, 1827}, + dictWord{9, 0, 8}, + dictWord{9, 0, 462}, + dictWord{148, 0, 83}, + dictWord{7, 11, 769}, + dictWord{ + 9, + 11, + 18, + }, + dictWord{138, 11, 358}, + dictWord{4, 0, 346}, + dictWord{7, 0, 115}, + dictWord{9, 0, 180}, + dictWord{9, 0, 456}, + dictWord{10, 0, 363}, + dictWord{ + 4, + 11, + 896, + }, + dictWord{134, 11, 1777}, + dictWord{133, 10, 211}, + dictWord{7, 0, 761}, + dictWord{7, 0, 1051}, + dictWord{137, 0, 545}, + dictWord{6, 10, 145}, + dictWord{ + 141, + 10, + 336, + }, + dictWord{7, 11, 750}, + dictWord{9, 11, 223}, + dictWord{11, 11, 27}, + dictWord{11, 11, 466}, + dictWord{12, 11, 624}, + dictWord{14, 11, 265}, + dictWord{146, 11, 61}, + dictWord{6, 0, 752}, + dictWord{6, 0, 768}, + dictWord{6, 0, 1195}, + dictWord{6, 0, 1254}, + dictWord{6, 0, 1619}, + dictWord{137, 0, 835}, + dictWord{ + 6, + 0, + 1936, + }, + dictWord{8, 0, 930}, + dictWord{136, 0, 960}, + dictWord{132, 10, 263}, + dictWord{132, 11, 249}, + dictWord{12, 0, 653}, + dictWord{132, 10, 916}, + dictWord{4, 11, 603}, + dictWord{133, 11, 661}, + dictWord{8, 0, 344}, + dictWord{4, 11, 11}, + dictWord{6, 11, 128}, + dictWord{7, 11, 231}, + dictWord{7, 11, 1533}, + dictWord{138, 11, 725}, + dictWord{134, 0, 1483}, + dictWord{134, 0, 875}, + dictWord{6, 0, 185}, + dictWord{7, 0, 1899}, + dictWord{9, 0, 875}, + dictWord{139, 0, 673}, + dictWord{15, 10, 155}, + dictWord{144, 10, 79}, + dictWord{7, 0, 93}, + dictWord{7, 0, 210}, + dictWord{7, 0, 1223}, + dictWord{8, 0, 451}, + dictWord{8, 0, 460}, + dictWord{ + 11, + 0, + 353, + }, + dictWord{11, 0, 475}, + dictWord{4, 10, 599}, + dictWord{6, 10, 1634}, + dictWord{7, 10, 67}, + dictWord{7, 10, 691}, + dictWord{7, 10, 979}, + dictWord{ + 7, + 10, + 1697, + }, + dictWord{8, 10, 207}, + dictWord{8, 10, 214}, + dictWord{8, 10, 231}, + dictWord{8, 10, 294}, + dictWord{8, 10, 336}, + dictWord{8, 10, 428}, + dictWord{ + 8, + 10, + 471, + }, + dictWord{8, 10, 622}, + dictWord{8, 10, 626}, + dictWord{8, 10, 679}, + dictWord{8, 10, 759}, + dictWord{8, 10, 829}, + dictWord{9, 10, 11}, + dictWord{9, 10, 246}, + dictWord{9, 10, 484}, + dictWord{9, 10, 573}, + dictWord{9, 10, 706}, + dictWord{9, 10, 762}, + dictWord{9, 10, 798}, + dictWord{9, 10, 855}, + dictWord{9, 10, 870}, + dictWord{ + 9, + 10, + 912, + }, + dictWord{10, 10, 303}, + dictWord{10, 10, 335}, + dictWord{10, 10, 424}, + dictWord{10, 10, 461}, + dictWord{10, 10, 543}, + dictWord{10, 10, 759}, + dictWord{10, 10, 814}, + dictWord{11, 10, 59}, + dictWord{11, 10, 235}, + dictWord{11, 10, 590}, + dictWord{11, 10, 929}, + dictWord{11, 10, 963}, + dictWord{ + 11, + 10, + 987, + }, + dictWord{12, 10, 114}, + dictWord{12, 10, 182}, + dictWord{12, 10, 226}, + dictWord{12, 10, 332}, + dictWord{12, 10, 439}, + dictWord{12, 10, 575}, + dictWord{ + 12, + 10, + 598, + }, + dictWord{12, 10, 675}, + dictWord{13, 10, 8}, + dictWord{13, 10, 125}, + dictWord{13, 10, 194}, + dictWord{13, 10, 287}, + dictWord{14, 10, 197}, + dictWord{14, 10, 383}, + dictWord{15, 10, 53}, + dictWord{17, 10, 63}, + dictWord{19, 10, 46}, + dictWord{19, 10, 98}, + dictWord{19, 10, 106}, + dictWord{148, 10, 85}, + dictWord{132, 11, 476}, + dictWord{4, 0, 327}, + dictWord{5, 0, 478}, + dictWord{7, 0, 1332}, + dictWord{136, 0, 753}, + dictWord{5, 0, 1020}, + dictWord{133, 0, 1022}, + dictWord{135, 11, 1807}, + dictWord{4, 0, 103}, + dictWord{133, 0, 401}, + dictWord{4, 0, 499}, + dictWord{135, 0, 1421}, + dictWord{10, 0, 207}, + dictWord{13, 0, 164}, + dictWord{147, 10, 126}, + dictWord{9, 11, 20}, + dictWord{10, 11, 324}, + dictWord{139, 11, 488}, + dictWord{132, 0, 96}, + dictWord{9, 11, 280}, + dictWord{ + 138, + 11, + 134, + }, + dictWord{135, 0, 968}, + dictWord{133, 10, 187}, + dictWord{135, 10, 1286}, + dictWord{5, 11, 112}, + dictWord{6, 11, 103}, + dictWord{134, 11, 150}, + dictWord{8, 0, 914}, + dictWord{10, 0, 3}, + dictWord{4, 10, 215}, + dictWord{9, 10, 38}, + dictWord{11, 10, 23}, + dictWord{11, 10, 127}, + dictWord{139, 10, 796}, + dictWord{ + 135, + 0, + 399, + }, + dictWord{6, 0, 563}, + dictWord{137, 0, 224}, + dictWord{6, 0, 704}, + dictWord{134, 0, 1214}, + dictWord{4, 11, 708}, + dictWord{8, 11, 15}, + dictWord{ + 9, + 11, + 50, + }, + dictWord{9, 11, 386}, + dictWord{11, 11, 18}, + dictWord{11, 11, 529}, + dictWord{140, 11, 228}, + dictWord{4, 11, 563}, + dictWord{7, 11, 109}, + dictWord{ + 7, + 11, + 592, + }, + dictWord{7, 11, 637}, + dictWord{7, 11, 770}, + dictWord{7, 11, 1701}, + dictWord{8, 11, 436}, + dictWord{8, 11, 463}, + dictWord{9, 11, 60}, + dictWord{9, 11, 335}, + dictWord{9, 11, 904}, + dictWord{10, 11, 73}, + dictWord{11, 11, 434}, + dictWord{12, 11, 585}, + dictWord{13, 11, 331}, + dictWord{18, 11, 110}, + dictWord{ + 148, + 11, + 60, + }, + dictWord{134, 0, 1559}, + dictWord{132, 11, 502}, + dictWord{6, 11, 347}, + dictWord{138, 11, 161}, + dictWord{4, 11, 33}, + dictWord{5, 11, 102}, + dictWord{ + 5, + 11, + 500, + }, + dictWord{6, 11, 284}, + dictWord{7, 11, 1079}, + dictWord{7, 11, 1423}, + dictWord{7, 11, 1702}, + dictWord{8, 11, 470}, + dictWord{9, 11, 554}, + dictWord{ + 9, + 11, + 723, + }, + dictWord{139, 11, 333}, + dictWord{7, 11, 246}, + dictWord{135, 11, 840}, + dictWord{6, 11, 10}, + dictWord{8, 11, 571}, + dictWord{9, 11, 739}, + dictWord{ + 143, + 11, + 91, + }, + dictWord{8, 0, 861}, + dictWord{10, 0, 905}, + dictWord{12, 0, 730}, + dictWord{12, 0, 789}, + dictWord{133, 11, 626}, + dictWord{134, 0, 946}, + dictWord{ + 5, + 0, + 746, + }, + dictWord{12, 0, 333}, + dictWord{14, 0, 332}, + dictWord{12, 11, 333}, + dictWord{142, 11, 332}, + dictWord{5, 11, 18}, + dictWord{6, 11, 526}, + dictWord{ + 13, + 11, + 24, + }, + dictWord{13, 11, 110}, + dictWord{19, 11, 5}, + dictWord{147, 11, 44}, + dictWord{4, 0, 910}, + dictWord{5, 0, 832}, + dictWord{135, 10, 2002}, + dictWord{ + 10, + 11, + 768, + }, + dictWord{139, 11, 787}, + dictWord{4, 11, 309}, + dictWord{5, 11, 462}, + dictWord{7, 11, 970}, + dictWord{135, 11, 1097}, + dictWord{4, 10, 28}, + dictWord{ + 5, + 10, + 440, + }, + dictWord{7, 10, 248}, + dictWord{11, 10, 833}, + dictWord{140, 10, 344}, + dictWord{134, 10, 1654}, + dictWord{6, 0, 632}, + dictWord{6, 0, 652}, + dictWord{ + 6, + 0, + 1272, + }, + dictWord{6, 0, 1384}, + dictWord{134, 0, 1560}, + dictWord{134, 11, 1704}, + dictWord{6, 0, 1393}, + dictWord{133, 10, 853}, + dictWord{6, 10, 249}, + dictWord{7, 10, 1234}, + dictWord{139, 10, 573}, + dictWord{5, 11, 86}, + dictWord{7, 11, 743}, + dictWord{9, 11, 85}, + dictWord{10, 11, 281}, + dictWord{10, 11, 432}, + dictWord{11, 11, 490}, + dictWord{12, 11, 251}, + dictWord{13, 11, 118}, + dictWord{14, 11, 378}, + dictWord{146, 11, 143}, + dictWord{5, 11, 524}, + dictWord{ + 133, + 11, + 744, + }, + dictWord{134, 0, 1514}, + dictWord{10, 0, 201}, + dictWord{142, 0, 319}, + dictWord{7, 0, 717}, + dictWord{10, 0, 510}, + dictWord{7, 10, 392}, + dictWord{ + 8, + 10, + 20, + }, + dictWord{8, 10, 172}, + dictWord{8, 10, 690}, + dictWord{9, 10, 383}, + dictWord{9, 10, 845}, + dictWord{11, 10, 293}, + dictWord{11, 10, 832}, + dictWord{ + 11, + 10, + 920, + }, + dictWord{11, 10, 984}, + dictWord{141, 10, 221}, + dictWord{134, 0, 1381}, + dictWord{5, 10, 858}, + dictWord{133, 10, 992}, + dictWord{8, 0, 528}, + dictWord{137, 0, 348}, + dictWord{10, 11, 107}, + dictWord{140, 11, 436}, + dictWord{4, 0, 20}, + dictWord{133, 0, 616}, + dictWord{134, 0, 1251}, + dictWord{ + 132, + 11, + 927, + }, + dictWord{10, 11, 123}, + dictWord{12, 11, 670}, + dictWord{13, 11, 371}, + dictWord{14, 11, 142}, + dictWord{146, 11, 94}, + dictWord{134, 0, 1163}, + dictWord{ + 7, + 11, + 1149, + }, + dictWord{137, 11, 156}, + dictWord{134, 0, 307}, + dictWord{133, 11, 778}, + dictWord{7, 0, 1091}, + dictWord{135, 0, 1765}, + dictWord{ + 5, + 11, + 502, + }, + dictWord{6, 10, 268}, + dictWord{137, 10, 62}, + dictWord{8, 11, 196}, + dictWord{10, 11, 283}, + dictWord{139, 11, 406}, + dictWord{4, 0, 26}, + dictWord{ + 5, + 0, + 429, + }, + dictWord{6, 0, 245}, + dictWord{7, 0, 704}, + dictWord{7, 0, 1379}, + dictWord{135, 0, 1474}, + dictWord{133, 11, 855}, + dictWord{132, 0, 881}, + dictWord{ + 4, + 0, + 621, + }, + dictWord{135, 11, 1596}, + dictWord{7, 11, 1400}, + dictWord{9, 11, 446}, + dictWord{138, 11, 45}, + dictWord{6, 0, 736}, + dictWord{138, 10, 106}, + dictWord{133, 0, 542}, + dictWord{134, 0, 348}, + dictWord{133, 0, 868}, + dictWord{136, 0, 433}, + dictWord{135, 0, 1495}, + dictWord{138, 0, 771}, + dictWord{ + 6, + 10, + 613, + }, + dictWord{136, 10, 223}, + dictWord{138, 0, 215}, + dictWord{141, 0, 124}, + dictWord{136, 11, 391}, + dictWord{135, 11, 172}, + dictWord{132, 10, 670}, + dictWord{140, 0, 55}, + dictWord{9, 10, 40}, + dictWord{139, 10, 136}, + dictWord{7, 0, 62}, + dictWord{147, 0, 112}, + dictWord{132, 0, 856}, + dictWord{132, 11, 568}, + dictWord{12, 0, 270}, + dictWord{139, 10, 259}, + dictWord{8, 0, 572}, + dictWord{137, 0, 698}, + dictWord{4, 11, 732}, + dictWord{9, 10, 310}, + dictWord{137, 10, 682}, + dictWord{142, 10, 296}, + dictWord{134, 0, 939}, + dictWord{136, 11, 733}, + dictWord{135, 11, 1435}, + dictWord{7, 10, 1401}, + dictWord{135, 10, 1476}, + dictWord{6, 0, 352}, + dictWord{4, 10, 296}, + dictWord{7, 10, 401}, + dictWord{7, 10, 1410}, + dictWord{7, 10, 1594}, + dictWord{7, 10, 1674}, + dictWord{8, 10, 63}, + dictWord{ + 8, + 10, + 660, + }, + dictWord{137, 10, 74}, + dictWord{4, 11, 428}, + dictWord{133, 11, 668}, + dictWord{4, 10, 139}, + dictWord{4, 10, 388}, + dictWord{140, 10, 188}, + dictWord{7, 11, 2015}, + dictWord{140, 11, 665}, + dictWord{132, 0, 647}, + dictWord{146, 0, 10}, + dictWord{138, 0, 220}, + dictWord{142, 0, 464}, + dictWord{ + 132, + 0, + 109, + }, + dictWord{134, 0, 1746}, + dictWord{6, 0, 515}, + dictWord{4, 10, 747}, + dictWord{6, 11, 1623}, + dictWord{6, 11, 1681}, + dictWord{7, 10, 649}, + dictWord{ + 7, + 10, + 1479, + }, + dictWord{135, 10, 1583}, + dictWord{133, 10, 232}, + dictWord{135, 0, 566}, + dictWord{137, 10, 887}, + dictWord{4, 0, 40}, + dictWord{10, 0, 67}, + dictWord{ + 11, + 0, + 117, + }, + dictWord{11, 0, 768}, + dictWord{139, 0, 935}, + dictWord{132, 0, 801}, + dictWord{7, 0, 992}, + dictWord{8, 0, 301}, + dictWord{9, 0, 722}, + dictWord{ + 12, + 0, + 63, + }, + dictWord{13, 0, 29}, + dictWord{14, 0, 161}, + dictWord{143, 0, 18}, + dictWord{139, 0, 923}, + dictWord{6, 11, 1748}, + dictWord{8, 11, 715}, + dictWord{9, 11, 802}, + dictWord{10, 11, 46}, + dictWord{10, 11, 819}, + dictWord{13, 11, 308}, + dictWord{14, 11, 351}, + dictWord{14, 11, 363}, + dictWord{146, 11, 67}, + dictWord{ + 137, + 11, + 745, + }, + dictWord{7, 0, 1145}, + dictWord{4, 10, 14}, + dictWord{7, 10, 1801}, + dictWord{10, 10, 748}, + dictWord{141, 10, 458}, + dictWord{4, 11, 63}, + dictWord{ + 5, + 11, + 347, + }, + dictWord{134, 11, 474}, + dictWord{135, 0, 568}, + dictWord{4, 10, 425}, + dictWord{7, 11, 577}, + dictWord{7, 11, 1432}, + dictWord{9, 11, 475}, + dictWord{ + 9, + 11, + 505, + }, + dictWord{9, 11, 526}, + dictWord{9, 11, 609}, + dictWord{9, 11, 689}, + dictWord{9, 11, 726}, + dictWord{9, 11, 735}, + dictWord{9, 11, 738}, + dictWord{ + 10, + 11, + 556, + }, + dictWord{10, 11, 674}, + dictWord{10, 11, 684}, + dictWord{11, 11, 89}, + dictWord{11, 11, 202}, + dictWord{11, 11, 272}, + dictWord{11, 11, 380}, + dictWord{ + 11, + 11, + 415, + }, + dictWord{11, 11, 505}, + dictWord{11, 11, 537}, + dictWord{11, 11, 550}, + dictWord{11, 11, 562}, + dictWord{11, 11, 640}, + dictWord{11, 11, 667}, + dictWord{11, 11, 688}, + dictWord{11, 11, 847}, + dictWord{11, 11, 927}, + dictWord{11, 11, 930}, + dictWord{11, 11, 940}, + dictWord{12, 11, 144}, + dictWord{ + 12, + 11, + 325, + }, + dictWord{12, 11, 329}, + dictWord{12, 11, 389}, + dictWord{12, 11, 403}, + dictWord{12, 11, 451}, + dictWord{12, 11, 515}, + dictWord{12, 11, 604}, + dictWord{ + 12, + 11, + 616, + }, + dictWord{12, 11, 626}, + dictWord{13, 11, 66}, + dictWord{13, 11, 131}, + dictWord{13, 11, 167}, + dictWord{13, 11, 236}, + dictWord{13, 11, 368}, + dictWord{13, 11, 411}, + dictWord{13, 11, 434}, + dictWord{13, 11, 453}, + dictWord{13, 11, 461}, + dictWord{13, 11, 474}, + dictWord{14, 11, 59}, + dictWord{14, 11, 60}, + dictWord{14, 11, 139}, + dictWord{14, 11, 152}, + dictWord{14, 11, 276}, + dictWord{14, 11, 353}, + dictWord{14, 11, 402}, + dictWord{15, 11, 28}, + dictWord{ + 15, + 11, + 81, + }, + dictWord{15, 11, 123}, + dictWord{15, 11, 152}, + dictWord{18, 11, 136}, + dictWord{148, 11, 88}, + dictWord{137, 0, 247}, + dictWord{135, 11, 1622}, + dictWord{ + 9, + 11, + 544, + }, + dictWord{11, 11, 413}, + dictWord{144, 11, 25}, + dictWord{4, 0, 645}, + dictWord{7, 0, 825}, + dictWord{6, 10, 1768}, + dictWord{135, 11, 89}, + dictWord{140, 0, 328}, + dictWord{5, 10, 943}, + dictWord{134, 10, 1779}, + dictWord{134, 0, 1363}, + dictWord{5, 10, 245}, + dictWord{6, 10, 576}, + dictWord{7, 10, 582}, + dictWord{136, 10, 225}, + dictWord{134, 0, 1280}, + dictWord{5, 11, 824}, + dictWord{133, 11, 941}, + dictWord{7, 11, 440}, + dictWord{8, 11, 230}, + dictWord{ + 139, + 11, + 106, + }, + dictWord{5, 0, 28}, + dictWord{6, 0, 204}, + dictWord{10, 0, 320}, + dictWord{10, 0, 583}, + dictWord{13, 0, 502}, + dictWord{14, 0, 72}, + dictWord{14, 0, 274}, + dictWord{14, 0, 312}, + dictWord{14, 0, 344}, + dictWord{15, 0, 159}, + dictWord{16, 0, 62}, + dictWord{16, 0, 69}, + dictWord{17, 0, 30}, + dictWord{18, 0, 42}, + dictWord{ + 18, + 0, + 53, + }, + dictWord{18, 0, 84}, + dictWord{18, 0, 140}, + dictWord{19, 0, 68}, + dictWord{19, 0, 85}, + dictWord{20, 0, 5}, + dictWord{20, 0, 45}, + dictWord{20, 0, 101}, + dictWord{ + 22, + 0, + 7, + }, + dictWord{150, 0, 20}, + dictWord{4, 0, 558}, + dictWord{6, 0, 390}, + dictWord{7, 0, 162}, + dictWord{7, 0, 689}, + dictWord{9, 0, 360}, + dictWord{138, 0, 653}, + dictWord{134, 0, 764}, + dictWord{6, 0, 862}, + dictWord{137, 0, 833}, + dictWord{5, 0, 856}, + dictWord{6, 0, 1672}, + dictWord{6, 0, 1757}, + dictWord{134, 0, 1781}, + dictWord{ + 5, + 0, + 92, + }, + dictWord{10, 0, 736}, + dictWord{140, 0, 102}, + dictWord{6, 0, 1927}, + dictWord{6, 0, 1944}, + dictWord{8, 0, 924}, + dictWord{8, 0, 948}, + dictWord{ + 10, + 0, + 967, + }, + dictWord{138, 0, 978}, + dictWord{134, 0, 1479}, + dictWord{5, 0, 590}, + dictWord{8, 0, 360}, + dictWord{9, 0, 213}, + dictWord{138, 0, 63}, + dictWord{ + 134, + 0, + 1521, + }, + dictWord{6, 0, 709}, + dictWord{134, 0, 891}, + dictWord{132, 10, 443}, + dictWord{13, 0, 477}, + dictWord{14, 0, 120}, + dictWord{148, 0, 61}, + dictWord{ + 4, + 11, + 914, + }, + dictWord{5, 11, 800}, + dictWord{133, 11, 852}, + dictWord{10, 11, 54}, + dictWord{141, 11, 115}, + dictWord{4, 11, 918}, + dictWord{133, 11, 876}, + dictWord{139, 11, 152}, + dictWord{4, 11, 92}, + dictWord{133, 11, 274}, + dictWord{135, 11, 1901}, + dictWord{9, 11, 800}, + dictWord{10, 11, 693}, + dictWord{ + 11, + 11, + 482, + }, + dictWord{11, 11, 734}, + dictWord{139, 11, 789}, + dictWord{9, 0, 483}, + dictWord{132, 10, 298}, + dictWord{6, 0, 1213}, + dictWord{141, 11, 498}, + dictWord{135, 11, 1451}, + dictWord{133, 11, 743}, + dictWord{4, 0, 1022}, + dictWord{10, 0, 1000}, + dictWord{12, 0, 957}, + dictWord{12, 0, 980}, + dictWord{ + 12, + 0, + 1013, + }, + dictWord{14, 0, 481}, + dictWord{144, 0, 116}, + dictWord{8, 0, 503}, + dictWord{17, 0, 29}, + dictWord{4, 11, 49}, + dictWord{7, 11, 280}, + dictWord{ + 135, + 11, + 1633, + }, + dictWord{135, 0, 1712}, + dictWord{134, 0, 466}, + dictWord{136, 11, 47}, + dictWord{5, 10, 164}, + dictWord{7, 10, 121}, + dictWord{142, 10, 189}, + dictWord{ + 7, + 10, + 812, + }, + dictWord{7, 10, 1261}, + dictWord{7, 10, 1360}, + dictWord{9, 10, 632}, + dictWord{140, 10, 352}, + dictWord{139, 10, 556}, + dictWord{132, 0, 731}, + dictWord{5, 11, 272}, + dictWord{5, 11, 908}, + dictWord{5, 11, 942}, + dictWord{7, 11, 1008}, + dictWord{7, 11, 1560}, + dictWord{8, 11, 197}, + dictWord{9, 11, 47}, + dictWord{11, 11, 538}, + dictWord{139, 11, 742}, + dictWord{4, 10, 172}, + dictWord{9, 10, 611}, + dictWord{10, 10, 436}, + dictWord{12, 10, 673}, + dictWord{ + 141, + 10, + 255, + }, + dictWord{133, 10, 844}, + dictWord{10, 0, 484}, + dictWord{11, 0, 754}, + dictWord{12, 0, 457}, + dictWord{14, 0, 171}, + dictWord{14, 0, 389}, + dictWord{ + 146, + 0, + 153, + }, + dictWord{9, 10, 263}, + dictWord{10, 10, 147}, + dictWord{138, 10, 492}, + dictWord{137, 11, 891}, + dictWord{138, 0, 241}, + dictWord{133, 10, 537}, + dictWord{6, 0, 2005}, + dictWord{136, 0, 964}, + dictWord{137, 10, 842}, + dictWord{151, 11, 8}, + dictWord{4, 11, 407}, + dictWord{132, 11, 560}, + dictWord{ + 135, + 11, + 1884, + }, + dictWord{6, 0, 1100}, + dictWord{134, 0, 1242}, + dictWord{135, 0, 954}, + dictWord{5, 10, 230}, + dictWord{5, 10, 392}, + dictWord{6, 10, 420}, + dictWord{ + 9, + 10, + 568, + }, + dictWord{140, 10, 612}, + dictWord{4, 11, 475}, + dictWord{11, 11, 35}, + dictWord{11, 11, 90}, + dictWord{13, 11, 7}, + dictWord{13, 11, 71}, + dictWord{ + 13, + 11, + 177, + }, + dictWord{142, 11, 422}, + dictWord{136, 11, 332}, + dictWord{135, 0, 1958}, + dictWord{6, 0, 549}, + dictWord{8, 0, 34}, + dictWord{8, 0, 283}, + dictWord{ + 9, + 0, + 165, + }, + dictWord{138, 0, 475}, + dictWord{10, 0, 952}, + dictWord{12, 0, 966}, + dictWord{140, 0, 994}, + dictWord{5, 0, 652}, + dictWord{5, 0, 701}, + dictWord{ + 135, + 0, + 449, + }, + dictWord{4, 0, 655}, + dictWord{7, 0, 850}, + dictWord{17, 0, 75}, + dictWord{146, 0, 137}, + dictWord{4, 0, 146}, + dictWord{7, 0, 1618}, + dictWord{8, 0, 670}, + dictWord{ + 5, + 10, + 41, + }, + dictWord{7, 10, 1459}, + dictWord{7, 10, 1469}, + dictWord{7, 10, 1859}, + dictWord{9, 10, 549}, + dictWord{139, 10, 905}, + dictWord{133, 10, 696}, + dictWord{6, 0, 159}, + dictWord{6, 0, 364}, + dictWord{7, 0, 516}, + dictWord{137, 0, 518}, + dictWord{135, 0, 1439}, + dictWord{6, 11, 222}, + dictWord{7, 11, 636}, + dictWord{ + 7, + 11, + 1620, + }, + dictWord{8, 11, 409}, + dictWord{9, 11, 693}, + dictWord{139, 11, 77}, + dictWord{13, 0, 151}, + dictWord{141, 11, 45}, + dictWord{6, 0, 1027}, + dictWord{ + 4, + 11, + 336, + }, + dictWord{132, 10, 771}, + dictWord{139, 11, 392}, + dictWord{10, 11, 121}, + dictWord{11, 11, 175}, + dictWord{149, 11, 16}, + dictWord{8, 0, 950}, + dictWord{138, 0, 983}, + dictWord{133, 10, 921}, + dictWord{135, 0, 993}, + dictWord{6, 10, 180}, + dictWord{7, 10, 1137}, + dictWord{8, 10, 751}, + dictWord{ + 139, + 10, + 805, + }, + dictWord{7, 0, 501}, + dictWord{9, 0, 111}, + dictWord{10, 0, 141}, + dictWord{11, 0, 332}, + dictWord{13, 0, 43}, + dictWord{13, 0, 429}, + dictWord{14, 0, 130}, + dictWord{14, 0, 415}, + dictWord{145, 0, 102}, + dictWord{4, 10, 183}, + dictWord{5, 11, 882}, + dictWord{7, 10, 271}, + dictWord{11, 10, 824}, + dictWord{11, 10, 952}, + dictWord{13, 10, 278}, + dictWord{13, 10, 339}, + dictWord{13, 10, 482}, + dictWord{14, 10, 424}, + dictWord{148, 10, 99}, + dictWord{4, 10, 19}, + dictWord{5, 10, 477}, + dictWord{5, 10, 596}, + dictWord{6, 10, 505}, + dictWord{7, 10, 1221}, + dictWord{11, 10, 907}, + dictWord{12, 10, 209}, + dictWord{141, 10, 214}, + dictWord{ + 135, + 10, + 1215, + }, + dictWord{133, 0, 452}, + dictWord{132, 11, 426}, + dictWord{5, 0, 149}, + dictWord{136, 0, 233}, + dictWord{133, 0, 935}, + dictWord{6, 11, 58}, + dictWord{ + 7, + 11, + 654, + }, + dictWord{7, 11, 745}, + dictWord{7, 11, 1969}, + dictWord{8, 11, 240}, + dictWord{8, 11, 675}, + dictWord{9, 11, 479}, + dictWord{9, 11, 731}, + dictWord{ + 10, + 11, + 330, + }, + dictWord{10, 11, 593}, + dictWord{10, 11, 817}, + dictWord{11, 11, 32}, + dictWord{11, 11, 133}, + dictWord{11, 11, 221}, + dictWord{145, 11, 68}, + dictWord{ + 12, + 0, + 582, + }, + dictWord{18, 0, 131}, + dictWord{7, 11, 102}, + dictWord{137, 11, 538}, + dictWord{136, 0, 801}, + dictWord{134, 10, 1645}, + dictWord{132, 0, 70}, + dictWord{6, 10, 92}, + dictWord{6, 10, 188}, + dictWord{7, 10, 1269}, + dictWord{7, 10, 1524}, + dictWord{7, 10, 1876}, + dictWord{10, 10, 228}, + dictWord{139, 10, 1020}, + dictWord{4, 10, 459}, + dictWord{133, 10, 966}, + dictWord{138, 0, 369}, + dictWord{16, 0, 36}, + dictWord{140, 10, 330}, + dictWord{141, 11, 366}, + dictWord{ + 7, + 0, + 721, + }, + dictWord{10, 0, 236}, + dictWord{12, 0, 204}, + dictWord{6, 10, 18}, + dictWord{7, 10, 932}, + dictWord{8, 10, 757}, + dictWord{9, 10, 54}, + dictWord{9, 10, 65}, + dictWord{9, 10, 844}, + dictWord{10, 10, 113}, + dictWord{10, 10, 315}, + dictWord{10, 10, 798}, + dictWord{11, 10, 153}, + dictWord{12, 10, 151}, + dictWord{12, 10, 392}, + dictWord{12, 10, 666}, + dictWord{142, 10, 248}, + dictWord{7, 0, 241}, + dictWord{10, 0, 430}, + dictWord{8, 10, 548}, + dictWord{9, 10, 532}, + dictWord{10, 10, 117}, + dictWord{11, 10, 351}, + dictWord{11, 10, 375}, + dictWord{143, 10, 23}, + dictWord{134, 10, 1742}, + dictWord{133, 10, 965}, + dictWord{133, 11, 566}, + dictWord{ + 6, + 11, + 48, + }, + dictWord{135, 11, 63}, + dictWord{134, 10, 182}, + dictWord{10, 10, 65}, + dictWord{10, 10, 488}, + dictWord{138, 10, 497}, + dictWord{6, 11, 114}, + dictWord{7, 11, 1224}, + dictWord{7, 11, 1556}, + dictWord{136, 11, 3}, + dictWord{134, 0, 1817}, + dictWord{8, 11, 576}, + dictWord{137, 11, 267}, + dictWord{ + 6, + 0, + 1078, + }, + dictWord{144, 0, 16}, + dictWord{9, 10, 588}, + dictWord{138, 10, 260}, + dictWord{138, 0, 1021}, + dictWord{5, 0, 406}, + dictWord{134, 0, 2022}, + dictWord{133, 11, 933}, + dictWord{6, 0, 69}, + dictWord{135, 0, 117}, + dictWord{7, 0, 1830}, + dictWord{136, 11, 427}, + dictWord{4, 0, 432}, + dictWord{135, 0, 824}, + dictWord{134, 10, 1786}, + dictWord{133, 0, 826}, + dictWord{139, 11, 67}, + dictWord{133, 11, 759}, + dictWord{135, 10, 308}, + dictWord{137, 0, 816}, + dictWord{ + 133, + 0, + 1000, + }, + dictWord{4, 0, 297}, + dictWord{6, 0, 529}, + dictWord{7, 0, 152}, + dictWord{7, 0, 713}, + dictWord{7, 0, 1845}, + dictWord{8, 0, 710}, + dictWord{8, 0, 717}, + dictWord{12, 0, 639}, + dictWord{140, 0, 685}, + dictWord{7, 0, 423}, + dictWord{136, 10, 588}, + dictWord{136, 10, 287}, + dictWord{136, 0, 510}, + dictWord{ + 134, + 0, + 1048, + }, + dictWord{6, 0, 618}, + dictWord{7, 11, 56}, + dictWord{7, 11, 1989}, + dictWord{8, 11, 337}, + dictWord{8, 11, 738}, + dictWord{9, 11, 600}, + dictWord{ + 10, + 11, + 483, + }, + dictWord{12, 11, 37}, + dictWord{13, 11, 447}, + dictWord{142, 11, 92}, + dictWord{4, 0, 520}, + dictWord{135, 0, 575}, + dictWord{8, 0, 990}, + dictWord{ + 138, + 0, + 977, + }, + dictWord{135, 11, 774}, + dictWord{9, 11, 347}, + dictWord{11, 11, 24}, + dictWord{140, 11, 170}, + dictWord{136, 11, 379}, + dictWord{140, 10, 290}, + dictWord{132, 11, 328}, + dictWord{4, 0, 321}, + dictWord{134, 0, 569}, + dictWord{4, 11, 101}, + dictWord{135, 11, 1171}, + dictWord{7, 0, 723}, + dictWord{7, 0, 1135}, + dictWord{5, 11, 833}, + dictWord{136, 11, 744}, + dictWord{7, 10, 719}, + dictWord{8, 10, 809}, + dictWord{136, 10, 834}, + dictWord{8, 0, 921}, + dictWord{136, 10, 796}, + dictWord{5, 10, 210}, + dictWord{6, 10, 213}, + dictWord{7, 10, 60}, + dictWord{10, 10, 364}, + dictWord{139, 10, 135}, + dictWord{5, 0, 397}, + dictWord{6, 0, 154}, + dictWord{7, 0, 676}, + dictWord{8, 0, 443}, + dictWord{8, 0, 609}, + dictWord{9, 0, 24}, + dictWord{9, 0, 325}, + dictWord{10, 0, 35}, + dictWord{11, 0, 535}, + dictWord{11, 0, 672}, + dictWord{11, 0, 1018}, + dictWord{12, 0, 637}, + dictWord{16, 0, 30}, + dictWord{5, 10, 607}, + dictWord{8, 10, 326}, + dictWord{136, 10, 490}, + dictWord{4, 10, 701}, + dictWord{5, 10, 472}, + dictWord{6, 11, 9}, + dictWord{6, 11, 397}, + dictWord{7, 11, 53}, + dictWord{7, 11, 1742}, + dictWord{9, 10, 758}, + dictWord{10, 11, 632}, + dictWord{ + 11, + 11, + 828, + }, + dictWord{140, 11, 146}, + dictWord{135, 10, 380}, + dictWord{135, 10, 1947}, + dictWord{148, 11, 109}, + dictWord{10, 10, 278}, + dictWord{ + 138, + 11, + 278, + }, + dictWord{134, 0, 856}, + dictWord{7, 0, 139}, + dictWord{4, 10, 386}, + dictWord{8, 10, 405}, + dictWord{8, 10, 728}, + dictWord{9, 10, 497}, + dictWord{ + 11, + 10, + 110, + }, + dictWord{11, 10, 360}, + dictWord{15, 10, 37}, + dictWord{144, 10, 84}, + dictWord{141, 0, 282}, + dictWord{133, 0, 981}, + dictWord{5, 0, 288}, + dictWord{ + 7, + 10, + 1452, + }, + dictWord{7, 10, 1480}, + dictWord{8, 10, 634}, + dictWord{140, 10, 472}, + dictWord{7, 0, 1890}, + dictWord{8, 11, 367}, + dictWord{10, 11, 760}, + dictWord{ + 14, + 11, + 79, + }, + dictWord{20, 11, 17}, + dictWord{152, 11, 0}, + dictWord{4, 10, 524}, + dictWord{136, 10, 810}, + dictWord{4, 0, 56}, + dictWord{7, 0, 1791}, + dictWord{ + 8, + 0, + 607, + }, + dictWord{8, 0, 651}, + dictWord{11, 0, 465}, + dictWord{11, 0, 835}, + dictWord{12, 0, 337}, + dictWord{141, 0, 480}, + dictWord{10, 10, 238}, + dictWord{ + 141, + 10, + 33, + }, + dictWord{11, 11, 417}, + dictWord{12, 11, 223}, + dictWord{140, 11, 265}, + dictWord{9, 0, 158}, + dictWord{10, 0, 411}, + dictWord{140, 0, 261}, + dictWord{ + 133, + 10, + 532, + }, + dictWord{133, 10, 997}, + dictWord{12, 11, 186}, + dictWord{12, 11, 292}, + dictWord{14, 11, 100}, + dictWord{146, 11, 70}, + dictWord{6, 0, 1403}, + dictWord{136, 0, 617}, + dictWord{134, 0, 1205}, + dictWord{139, 0, 563}, + dictWord{4, 0, 242}, + dictWord{134, 0, 333}, + dictWord{4, 11, 186}, + dictWord{5, 11, 157}, + dictWord{8, 11, 168}, + dictWord{138, 11, 6}, + dictWord{132, 0, 369}, + dictWord{133, 11, 875}, + dictWord{5, 10, 782}, + dictWord{5, 10, 829}, + dictWord{ + 134, + 10, + 1738, + }, + dictWord{134, 0, 622}, + dictWord{135, 11, 1272}, + dictWord{6, 0, 1407}, + dictWord{7, 11, 111}, + dictWord{136, 11, 581}, + dictWord{7, 10, 1823}, + dictWord{139, 10, 693}, + dictWord{7, 0, 160}, + dictWord{10, 0, 624}, + dictWord{142, 0, 279}, + dictWord{132, 0, 363}, + dictWord{10, 11, 589}, + dictWord{12, 11, 111}, + dictWord{13, 11, 260}, + dictWord{14, 11, 82}, + dictWord{18, 11, 63}, + dictWord{147, 11, 45}, + dictWord{7, 11, 1364}, + dictWord{7, 11, 1907}, + dictWord{ + 141, + 11, + 158, + }, + dictWord{4, 11, 404}, + dictWord{4, 11, 659}, + dictWord{135, 11, 675}, + dictWord{13, 11, 211}, + dictWord{14, 11, 133}, + dictWord{14, 11, 204}, + dictWord{ + 15, + 11, + 64, + }, + dictWord{15, 11, 69}, + dictWord{15, 11, 114}, + dictWord{16, 11, 10}, + dictWord{19, 11, 23}, + dictWord{19, 11, 35}, + dictWord{19, 11, 39}, + dictWord{ + 19, + 11, + 51, + }, + dictWord{19, 11, 71}, + dictWord{19, 11, 75}, + dictWord{152, 11, 15}, + dictWord{4, 10, 78}, + dictWord{5, 10, 96}, + dictWord{5, 10, 182}, + dictWord{7, 10, 1724}, + dictWord{7, 10, 1825}, + dictWord{10, 10, 394}, + dictWord{10, 10, 471}, + dictWord{11, 10, 532}, + dictWord{14, 10, 340}, + dictWord{145, 10, 88}, + dictWord{ + 135, + 10, + 1964, + }, + dictWord{133, 11, 391}, + dictWord{11, 11, 887}, + dictWord{14, 11, 365}, + dictWord{142, 11, 375}, + dictWord{5, 11, 540}, + dictWord{6, 11, 1697}, + dictWord{7, 11, 222}, + dictWord{136, 11, 341}, + dictWord{134, 11, 78}, + dictWord{9, 0, 601}, + dictWord{9, 0, 619}, + dictWord{10, 0, 505}, + dictWord{10, 0, 732}, + dictWord{11, 0, 355}, + dictWord{140, 0, 139}, + dictWord{134, 0, 292}, + dictWord{139, 0, 174}, + dictWord{5, 0, 177}, + dictWord{6, 0, 616}, + dictWord{7, 0, 827}, + dictWord{ + 9, + 0, + 525, + }, + dictWord{138, 0, 656}, + dictWord{10, 0, 31}, + dictWord{6, 10, 215}, + dictWord{7, 10, 1028}, + dictWord{7, 10, 1473}, + dictWord{7, 10, 1721}, + dictWord{ + 9, + 10, + 424, + }, + dictWord{138, 10, 779}, + dictWord{135, 10, 584}, + dictWord{136, 11, 293}, + dictWord{134, 0, 685}, + dictWord{135, 11, 1868}, + dictWord{ + 133, + 11, + 460, + }, + dictWord{7, 0, 647}, + dictWord{6, 10, 67}, + dictWord{7, 10, 1630}, + dictWord{9, 10, 354}, + dictWord{9, 10, 675}, + dictWord{10, 10, 830}, + dictWord{ + 14, + 10, + 80, + }, + dictWord{145, 10, 80}, + dictWord{4, 0, 161}, + dictWord{133, 0, 631}, + dictWord{6, 10, 141}, + dictWord{7, 10, 225}, + dictWord{9, 10, 59}, + dictWord{9, 10, 607}, + dictWord{10, 10, 312}, + dictWord{11, 10, 687}, + dictWord{12, 10, 555}, + dictWord{13, 10, 373}, + dictWord{13, 10, 494}, + dictWord{148, 10, 58}, + dictWord{ + 7, + 11, + 965, + }, + dictWord{7, 11, 1460}, + dictWord{135, 11, 1604}, + dictWord{136, 10, 783}, + dictWord{134, 11, 388}, + dictWord{6, 0, 722}, + dictWord{6, 0, 1267}, + dictWord{ + 4, + 11, + 511, + }, + dictWord{9, 11, 333}, + dictWord{9, 11, 379}, + dictWord{10, 11, 602}, + dictWord{11, 11, 441}, + dictWord{11, 11, 723}, + dictWord{11, 11, 976}, + dictWord{140, 11, 357}, + dictWord{134, 0, 1797}, + dictWord{135, 0, 1684}, + dictWord{9, 0, 469}, + dictWord{9, 0, 709}, + dictWord{12, 0, 512}, + dictWord{14, 0, 65}, + dictWord{17, 0, 12}, + dictWord{5, 11, 938}, + dictWord{136, 11, 707}, + dictWord{7, 0, 1230}, + dictWord{136, 0, 531}, + dictWord{10, 0, 229}, + dictWord{11, 0, 73}, + dictWord{ + 11, + 0, + 376, + }, + dictWord{139, 0, 433}, + dictWord{12, 0, 268}, + dictWord{12, 0, 640}, + dictWord{142, 0, 119}, + dictWord{7, 10, 430}, + dictWord{139, 10, 46}, + dictWord{ + 6, + 0, + 558, + }, + dictWord{7, 0, 651}, + dictWord{8, 0, 421}, + dictWord{9, 0, 0}, + dictWord{10, 0, 34}, + dictWord{139, 0, 1008}, + dictWord{6, 0, 106}, + dictWord{7, 0, 1786}, + dictWord{7, 0, 1821}, + dictWord{9, 0, 102}, + dictWord{9, 0, 763}, + dictWord{5, 10, 602}, + dictWord{7, 10, 2018}, + dictWord{137, 10, 418}, + dictWord{5, 0, 65}, + dictWord{ + 6, + 0, + 416, + }, + dictWord{7, 0, 1720}, + dictWord{7, 0, 1924}, + dictWord{10, 0, 109}, + dictWord{11, 0, 14}, + dictWord{11, 0, 70}, + dictWord{11, 0, 569}, + dictWord{11, 0, 735}, + dictWord{15, 0, 153}, + dictWord{20, 0, 80}, + dictWord{136, 10, 677}, + dictWord{135, 11, 1625}, + dictWord{137, 11, 772}, + dictWord{136, 0, 595}, + dictWord{ + 6, + 11, + 469, + }, + dictWord{7, 11, 1709}, + dictWord{138, 11, 515}, + dictWord{7, 0, 1832}, + dictWord{138, 0, 374}, + dictWord{9, 0, 106}, + dictWord{9, 0, 163}, + dictWord{ + 9, + 0, + 296, + }, + dictWord{10, 0, 167}, + dictWord{10, 0, 172}, + dictWord{10, 0, 777}, + dictWord{139, 0, 16}, + dictWord{6, 0, 6}, + dictWord{7, 0, 81}, + dictWord{7, 0, 771}, + dictWord{ + 7, + 0, + 1731, + }, + dictWord{9, 0, 405}, + dictWord{138, 0, 421}, + dictWord{4, 11, 500}, + dictWord{135, 11, 938}, + dictWord{5, 11, 68}, + dictWord{134, 11, 383}, + dictWord{ + 5, + 0, + 881, + }, + dictWord{133, 0, 885}, + dictWord{6, 0, 854}, + dictWord{6, 0, 1132}, + dictWord{6, 0, 1495}, + dictWord{6, 0, 1526}, + dictWord{6, 0, 1533}, + dictWord{ + 134, + 0, + 1577, + }, + dictWord{4, 11, 337}, + dictWord{6, 11, 353}, + dictWord{7, 11, 1934}, + dictWord{8, 11, 488}, + dictWord{137, 11, 429}, + dictWord{7, 11, 236}, + dictWord{ + 7, + 11, + 1795, + }, + dictWord{8, 11, 259}, + dictWord{9, 11, 135}, + dictWord{9, 11, 177}, + dictWord{10, 11, 825}, + dictWord{11, 11, 115}, + dictWord{11, 11, 370}, + dictWord{ + 11, + 11, + 405, + }, + dictWord{11, 11, 604}, + dictWord{12, 11, 10}, + dictWord{12, 11, 667}, + dictWord{12, 11, 669}, + dictWord{13, 11, 76}, + dictWord{14, 11, 310}, + dictWord{15, 11, 76}, + dictWord{15, 11, 147}, + dictWord{148, 11, 23}, + dictWord{5, 0, 142}, + dictWord{134, 0, 546}, + dictWord{4, 11, 15}, + dictWord{5, 11, 22}, + dictWord{ + 6, + 11, + 244, + }, + dictWord{7, 11, 40}, + dictWord{7, 11, 200}, + dictWord{7, 11, 906}, + dictWord{7, 11, 1199}, + dictWord{9, 11, 616}, + dictWord{10, 11, 716}, + dictWord{ + 11, + 11, + 635, + }, + dictWord{11, 11, 801}, + dictWord{140, 11, 458}, + dictWord{5, 0, 466}, + dictWord{11, 0, 571}, + dictWord{12, 0, 198}, + dictWord{13, 0, 283}, + dictWord{ + 14, + 0, + 186, + }, + dictWord{15, 0, 21}, + dictWord{15, 0, 103}, + dictWord{135, 10, 329}, + dictWord{4, 0, 185}, + dictWord{5, 0, 257}, + dictWord{5, 0, 839}, + dictWord{5, 0, 936}, + dictWord{9, 0, 399}, + dictWord{10, 0, 258}, + dictWord{10, 0, 395}, + dictWord{10, 0, 734}, + dictWord{11, 0, 1014}, + dictWord{12, 0, 23}, + dictWord{13, 0, 350}, + dictWord{ + 14, + 0, + 150, + }, + dictWord{19, 0, 6}, + dictWord{135, 11, 1735}, + dictWord{12, 11, 36}, + dictWord{141, 11, 337}, + dictWord{5, 11, 598}, + dictWord{7, 11, 791}, + dictWord{ + 8, + 11, + 108, + }, + dictWord{137, 11, 123}, + dictWord{132, 10, 469}, + dictWord{7, 0, 404}, + dictWord{7, 0, 1377}, + dictWord{7, 0, 1430}, + dictWord{7, 0, 2017}, + dictWord{ + 8, + 0, + 149, + }, + dictWord{8, 0, 239}, + dictWord{8, 0, 512}, + dictWord{8, 0, 793}, + dictWord{8, 0, 818}, + dictWord{9, 0, 474}, + dictWord{9, 0, 595}, + dictWord{10, 0, 122}, + dictWord{10, 0, 565}, + dictWord{10, 0, 649}, + dictWord{10, 0, 783}, + dictWord{11, 0, 239}, + dictWord{11, 0, 295}, + dictWord{11, 0, 447}, + dictWord{11, 0, 528}, + dictWord{ + 11, + 0, + 639, + }, + dictWord{11, 0, 800}, + dictWord{12, 0, 25}, + dictWord{12, 0, 77}, + dictWord{12, 0, 157}, + dictWord{12, 0, 256}, + dictWord{12, 0, 316}, + dictWord{12, 0, 390}, + dictWord{12, 0, 391}, + dictWord{12, 0, 395}, + dictWord{12, 0, 478}, + dictWord{12, 0, 503}, + dictWord{12, 0, 592}, + dictWord{12, 0, 680}, + dictWord{13, 0, 50}, + dictWord{13, 0, 53}, + dictWord{13, 0, 132}, + dictWord{13, 0, 198}, + dictWord{13, 0, 322}, + dictWord{13, 0, 415}, + dictWord{13, 0, 511}, + dictWord{14, 0, 71}, + dictWord{ + 14, + 0, + 395, + }, + dictWord{15, 0, 71}, + dictWord{15, 0, 136}, + dictWord{17, 0, 123}, + dictWord{18, 0, 93}, + dictWord{147, 0, 58}, + dictWord{136, 0, 712}, + dictWord{ + 134, + 10, + 1743, + }, + dictWord{5, 10, 929}, + dictWord{6, 10, 340}, + dictWord{8, 10, 376}, + dictWord{136, 10, 807}, + dictWord{6, 0, 1848}, + dictWord{8, 0, 860}, + dictWord{ + 10, + 0, + 856, + }, + dictWord{10, 0, 859}, + dictWord{10, 0, 925}, + dictWord{10, 0, 941}, + dictWord{140, 0, 762}, + dictWord{6, 0, 629}, + dictWord{6, 0, 906}, + dictWord{9, 0, 810}, + dictWord{140, 0, 652}, + dictWord{5, 10, 218}, + dictWord{7, 10, 1610}, + dictWord{138, 10, 83}, + dictWord{7, 10, 1512}, + dictWord{135, 10, 1794}, + dictWord{ + 4, + 0, + 377, + }, + dictWord{24, 0, 13}, + dictWord{4, 11, 155}, + dictWord{7, 11, 1689}, + dictWord{11, 10, 0}, + dictWord{144, 10, 78}, + dictWord{4, 11, 164}, + dictWord{5, 11, 151}, + dictWord{5, 11, 730}, + dictWord{5, 11, 741}, + dictWord{7, 11, 498}, + dictWord{7, 11, 870}, + dictWord{7, 11, 1542}, + dictWord{12, 11, 213}, + dictWord{14, 11, 36}, + dictWord{14, 11, 391}, + dictWord{17, 11, 111}, + dictWord{18, 11, 6}, + dictWord{18, 11, 46}, + dictWord{18, 11, 151}, + dictWord{19, 11, 36}, + dictWord{20, 11, 32}, + dictWord{20, 11, 56}, + dictWord{20, 11, 69}, + dictWord{20, 11, 102}, + dictWord{21, 11, 4}, + dictWord{22, 11, 8}, + dictWord{22, 11, 10}, + dictWord{22, 11, 14}, + dictWord{ + 150, + 11, + 31, + }, + dictWord{7, 0, 1842}, + dictWord{133, 10, 571}, + dictWord{4, 10, 455}, + dictWord{4, 11, 624}, + dictWord{135, 11, 1752}, + dictWord{134, 0, 1501}, + dictWord{4, 11, 492}, + dictWord{5, 11, 451}, + dictWord{6, 10, 161}, + dictWord{7, 10, 372}, + dictWord{137, 10, 597}, + dictWord{132, 10, 349}, + dictWord{4, 0, 180}, + dictWord{135, 0, 1906}, + dictWord{135, 11, 835}, + dictWord{141, 11, 70}, + dictWord{132, 0, 491}, + dictWord{137, 10, 751}, + dictWord{6, 10, 432}, + dictWord{ + 139, + 10, + 322, + }, + dictWord{4, 0, 171}, + dictWord{138, 0, 234}, + dictWord{6, 11, 113}, + dictWord{135, 11, 436}, + dictWord{4, 0, 586}, + dictWord{7, 0, 1186}, + dictWord{ + 138, + 0, + 631, + }, + dictWord{5, 10, 468}, + dictWord{10, 10, 325}, + dictWord{11, 10, 856}, + dictWord{12, 10, 345}, + dictWord{143, 10, 104}, + dictWord{5, 10, 223}, + dictWord{10, 11, 592}, + dictWord{10, 11, 753}, + dictWord{12, 11, 317}, + dictWord{12, 11, 355}, + dictWord{12, 11, 465}, + dictWord{12, 11, 469}, + dictWord{ + 12, + 11, + 560, + }, + dictWord{12, 11, 578}, + dictWord{141, 11, 243}, + dictWord{132, 10, 566}, + dictWord{135, 11, 520}, + dictWord{4, 10, 59}, + dictWord{135, 10, 1394}, + dictWord{6, 10, 436}, + dictWord{139, 10, 481}, + dictWord{9, 0, 931}, + dictWord{10, 0, 334}, + dictWord{20, 0, 71}, + dictWord{4, 10, 48}, + dictWord{5, 10, 271}, + dictWord{ + 7, + 10, + 953, + }, + dictWord{135, 11, 1878}, + dictWord{11, 0, 170}, + dictWord{5, 10, 610}, + dictWord{136, 10, 457}, + dictWord{133, 10, 755}, + dictWord{6, 0, 1587}, + dictWord{135, 10, 1217}, + dictWord{4, 10, 197}, + dictWord{149, 11, 26}, + dictWord{133, 11, 585}, + dictWord{137, 11, 521}, + dictWord{133, 0, 765}, + dictWord{ + 133, + 10, + 217, + }, + dictWord{139, 11, 586}, + dictWord{133, 0, 424}, + dictWord{9, 11, 752}, + dictWord{12, 11, 610}, + dictWord{13, 11, 431}, + dictWord{16, 11, 59}, + dictWord{146, 11, 109}, + dictWord{136, 0, 714}, + dictWord{7, 0, 685}, + dictWord{132, 11, 307}, + dictWord{9, 0, 420}, + dictWord{10, 0, 269}, + dictWord{10, 0, 285}, + dictWord{10, 0, 576}, + dictWord{11, 0, 397}, + dictWord{13, 0, 175}, + dictWord{145, 0, 90}, + dictWord{132, 0, 429}, + dictWord{133, 11, 964}, + dictWord{9, 11, 463}, + dictWord{138, 11, 595}, + dictWord{7, 0, 18}, + dictWord{7, 0, 699}, + dictWord{7, 0, 1966}, + dictWord{8, 0, 752}, + dictWord{9, 0, 273}, + dictWord{9, 0, 412}, + dictWord{ + 9, + 0, + 703, + }, + dictWord{10, 0, 71}, + dictWord{10, 0, 427}, + dictWord{138, 0, 508}, + dictWord{4, 10, 165}, + dictWord{7, 10, 1398}, + dictWord{135, 10, 1829}, + dictWord{ + 4, + 0, + 53, + }, + dictWord{5, 0, 186}, + dictWord{7, 0, 752}, + dictWord{7, 0, 828}, + dictWord{142, 0, 116}, + dictWord{8, 0, 575}, + dictWord{10, 0, 289}, + dictWord{139, 0, 319}, + dictWord{132, 0, 675}, + dictWord{134, 0, 1424}, + dictWord{4, 11, 75}, + dictWord{5, 11, 180}, + dictWord{6, 11, 500}, + dictWord{7, 11, 58}, + dictWord{7, 11, 710}, + dictWord{138, 11, 645}, + dictWord{133, 11, 649}, + dictWord{6, 11, 276}, + dictWord{7, 11, 282}, + dictWord{7, 11, 879}, + dictWord{7, 11, 924}, + dictWord{8, 11, 459}, + dictWord{9, 11, 599}, + dictWord{9, 11, 754}, + dictWord{11, 11, 574}, + dictWord{12, 11, 128}, + dictWord{12, 11, 494}, + dictWord{13, 11, 52}, + dictWord{13, 11, 301}, + dictWord{15, 11, 30}, + dictWord{143, 11, 132}, + dictWord{6, 0, 647}, + dictWord{134, 0, 1095}, + dictWord{5, 10, 9}, + dictWord{7, 10, 297}, + dictWord{7, 10, 966}, + dictWord{140, 10, 306}, + dictWord{132, 11, 200}, + dictWord{134, 0, 1334}, + dictWord{5, 10, 146}, + dictWord{6, 10, 411}, + dictWord{138, 10, 721}, + dictWord{ + 6, + 0, + 209, + }, + dictWord{6, 0, 1141}, + dictWord{6, 0, 1288}, + dictWord{8, 0, 468}, + dictWord{9, 0, 210}, + dictWord{11, 0, 36}, + dictWord{12, 0, 28}, + dictWord{12, 0, 630}, + dictWord{13, 0, 21}, + dictWord{13, 0, 349}, + dictWord{14, 0, 7}, + dictWord{145, 0, 13}, + dictWord{6, 10, 177}, + dictWord{135, 10, 467}, + dictWord{4, 0, 342}, + dictWord{ + 135, + 0, + 1179, + }, + dictWord{10, 11, 454}, + dictWord{140, 11, 324}, + dictWord{4, 0, 928}, + dictWord{133, 0, 910}, + dictWord{7, 0, 1838}, + dictWord{6, 11, 225}, + dictWord{ + 137, + 11, + 211, + }, + dictWord{16, 0, 101}, + dictWord{20, 0, 115}, + dictWord{20, 0, 118}, + dictWord{148, 0, 122}, + dictWord{4, 0, 496}, + dictWord{135, 0, 856}, + dictWord{ + 4, + 0, + 318, + }, + dictWord{11, 0, 654}, + dictWord{7, 11, 718}, + dictWord{139, 11, 102}, + dictWord{8, 11, 58}, + dictWord{9, 11, 724}, + dictWord{11, 11, 809}, + dictWord{ + 13, + 11, + 113, + }, + dictWord{145, 11, 72}, + dictWord{5, 10, 200}, + dictWord{6, 11, 345}, + dictWord{135, 11, 1247}, + dictWord{8, 11, 767}, + dictWord{8, 11, 803}, + dictWord{ + 9, + 11, + 301, + }, + dictWord{137, 11, 903}, + dictWord{7, 0, 915}, + dictWord{8, 0, 247}, + dictWord{19, 0, 0}, + dictWord{7, 11, 1949}, + dictWord{136, 11, 674}, + dictWord{ + 4, + 0, + 202, + }, + dictWord{5, 0, 382}, + dictWord{6, 0, 454}, + dictWord{7, 0, 936}, + dictWord{7, 0, 1803}, + dictWord{8, 0, 758}, + dictWord{9, 0, 375}, + dictWord{9, 0, 895}, + dictWord{ + 10, + 0, + 743, + }, + dictWord{10, 0, 792}, + dictWord{11, 0, 978}, + dictWord{11, 0, 1012}, + dictWord{142, 0, 109}, + dictWord{7, 0, 1150}, + dictWord{7, 0, 1425}, + dictWord{ + 7, + 0, + 1453, + }, + dictWord{140, 0, 513}, + dictWord{134, 11, 259}, + dictWord{138, 0, 791}, + dictWord{11, 0, 821}, + dictWord{12, 0, 110}, + dictWord{12, 0, 153}, + dictWord{ + 18, + 0, + 41, + }, + dictWord{150, 0, 19}, + dictWord{134, 10, 481}, + dictWord{132, 0, 796}, + dictWord{6, 0, 445}, + dictWord{9, 0, 909}, + dictWord{136, 11, 254}, + dictWord{ + 10, + 0, + 776, + }, + dictWord{13, 0, 345}, + dictWord{142, 0, 425}, + dictWord{4, 10, 84}, + dictWord{7, 10, 1482}, + dictWord{10, 10, 76}, + dictWord{138, 10, 142}, + dictWord{ + 135, + 11, + 742, + }, + dictWord{6, 0, 578}, + dictWord{133, 10, 1015}, + dictWord{6, 0, 1387}, + dictWord{4, 10, 315}, + dictWord{5, 10, 507}, + dictWord{135, 10, 1370}, + dictWord{4, 0, 438}, + dictWord{133, 0, 555}, + dictWord{136, 0, 766}, + dictWord{133, 11, 248}, + dictWord{134, 10, 1722}, + dictWord{4, 11, 116}, + dictWord{5, 11, 95}, + dictWord{5, 11, 445}, + dictWord{7, 11, 1688}, + dictWord{8, 11, 29}, + dictWord{9, 11, 272}, + dictWord{11, 11, 509}, + dictWord{139, 11, 915}, + dictWord{135, 0, 541}, + dictWord{133, 11, 543}, + dictWord{8, 10, 222}, + dictWord{8, 10, 476}, + dictWord{9, 10, 238}, + dictWord{11, 10, 516}, + dictWord{11, 10, 575}, + dictWord{ + 15, + 10, + 109, + }, + dictWord{146, 10, 100}, + dictWord{6, 0, 880}, + dictWord{134, 0, 1191}, + dictWord{5, 11, 181}, + dictWord{136, 11, 41}, + dictWord{134, 0, 1506}, + dictWord{132, 11, 681}, + dictWord{7, 11, 25}, + dictWord{8, 11, 202}, + dictWord{138, 11, 536}, + dictWord{139, 0, 983}, + dictWord{137, 0, 768}, + dictWord{132, 0, 584}, + dictWord{9, 11, 423}, + dictWord{140, 11, 89}, + dictWord{8, 11, 113}, + dictWord{9, 11, 877}, + dictWord{10, 11, 554}, + dictWord{11, 11, 83}, + dictWord{12, 11, 136}, + dictWord{147, 11, 109}, + dictWord{7, 10, 706}, + dictWord{7, 10, 1058}, + dictWord{138, 10, 538}, + dictWord{133, 11, 976}, + dictWord{4, 11, 206}, + dictWord{ + 135, + 11, + 746, + }, + dictWord{136, 11, 526}, + dictWord{140, 0, 737}, + dictWord{11, 10, 92}, + dictWord{11, 10, 196}, + dictWord{11, 10, 409}, + dictWord{11, 10, 450}, + dictWord{11, 10, 666}, + dictWord{11, 10, 777}, + dictWord{12, 10, 262}, + dictWord{13, 10, 385}, + dictWord{13, 10, 393}, + dictWord{15, 10, 115}, + dictWord{ + 16, + 10, + 45, + }, + dictWord{145, 10, 82}, + dictWord{4, 0, 226}, + dictWord{4, 0, 326}, + dictWord{7, 0, 1770}, + dictWord{4, 11, 319}, + dictWord{5, 11, 699}, + dictWord{138, 11, 673}, + dictWord{6, 10, 40}, + dictWord{135, 10, 1781}, + dictWord{5, 0, 426}, + dictWord{8, 0, 30}, + dictWord{9, 0, 2}, + dictWord{11, 0, 549}, + dictWord{147, 0, 122}, + dictWord{ + 6, + 0, + 1161, + }, + dictWord{134, 0, 1329}, + dictWord{138, 10, 97}, + dictWord{6, 10, 423}, + dictWord{7, 10, 665}, + dictWord{135, 10, 1210}, + dictWord{7, 11, 13}, + dictWord{ + 8, + 11, + 226, + }, + dictWord{10, 11, 537}, + dictWord{11, 11, 570}, + dictWord{11, 11, 605}, + dictWord{11, 11, 799}, + dictWord{11, 11, 804}, + dictWord{12, 11, 85}, + dictWord{12, 11, 516}, + dictWord{12, 11, 623}, + dictWord{13, 11, 112}, + dictWord{13, 11, 361}, + dictWord{14, 11, 77}, + dictWord{14, 11, 78}, + dictWord{17, 11, 28}, + dictWord{147, 11, 110}, + dictWord{132, 11, 769}, + dictWord{132, 11, 551}, + dictWord{132, 11, 728}, + dictWord{147, 0, 117}, + dictWord{9, 11, 57}, + dictWord{ + 9, + 11, + 459, + }, + dictWord{10, 11, 425}, + dictWord{11, 11, 119}, + dictWord{12, 11, 184}, + dictWord{12, 11, 371}, + dictWord{13, 11, 358}, + dictWord{145, 11, 51}, + dictWord{ + 5, + 11, + 188, + }, + dictWord{5, 11, 814}, + dictWord{8, 11, 10}, + dictWord{9, 11, 421}, + dictWord{9, 11, 729}, + dictWord{10, 11, 609}, + dictWord{139, 11, 689}, + dictWord{134, 11, 624}, + dictWord{135, 11, 298}, + dictWord{135, 0, 462}, + dictWord{4, 0, 345}, + dictWord{139, 10, 624}, + dictWord{136, 10, 574}, + dictWord{ + 4, + 0, + 385, + }, + dictWord{7, 0, 265}, + dictWord{135, 0, 587}, + dictWord{6, 0, 808}, + dictWord{132, 11, 528}, + dictWord{133, 0, 398}, + dictWord{132, 10, 354}, + dictWord{ + 4, + 0, + 347, + }, + dictWord{5, 0, 423}, + dictWord{5, 0, 996}, + dictWord{135, 0, 1329}, + dictWord{135, 10, 1558}, + dictWord{7, 0, 1259}, + dictWord{9, 0, 125}, + dictWord{ + 139, + 0, + 65, + }, + dictWord{5, 0, 136}, + dictWord{6, 0, 136}, + dictWord{136, 0, 644}, + dictWord{5, 11, 104}, + dictWord{6, 11, 173}, + dictWord{135, 11, 1631}, + dictWord{ + 135, + 0, + 469, + }, + dictWord{133, 10, 830}, + dictWord{4, 0, 278}, + dictWord{5, 0, 465}, + dictWord{135, 0, 1367}, + dictWord{7, 11, 810}, + dictWord{8, 11, 138}, + dictWord{ + 8, + 11, + 342, + }, + dictWord{9, 11, 84}, + dictWord{10, 11, 193}, + dictWord{11, 11, 883}, + dictWord{140, 11, 359}, + dictWord{5, 10, 496}, + dictWord{135, 10, 203}, + dictWord{ + 4, + 0, + 433, + }, + dictWord{133, 0, 719}, + dictWord{6, 11, 95}, + dictWord{134, 10, 547}, + dictWord{5, 10, 88}, + dictWord{137, 10, 239}, + dictWord{6, 11, 406}, + dictWord{ + 10, + 11, + 409, + }, + dictWord{10, 11, 447}, + dictWord{11, 11, 44}, + dictWord{140, 11, 100}, + dictWord{134, 0, 1423}, + dictWord{7, 10, 650}, + dictWord{135, 10, 1310}, + dictWord{134, 0, 749}, + dictWord{135, 11, 1243}, + dictWord{135, 0, 1363}, + dictWord{6, 0, 381}, + dictWord{7, 0, 645}, + dictWord{7, 0, 694}, + dictWord{8, 0, 546}, + dictWord{7, 10, 1076}, + dictWord{9, 10, 80}, + dictWord{11, 10, 78}, + dictWord{11, 10, 421}, + dictWord{11, 10, 534}, + dictWord{140, 10, 545}, + dictWord{ + 134, + 11, + 1636, + }, + dictWord{135, 11, 1344}, + dictWord{12, 0, 277}, + dictWord{7, 10, 274}, + dictWord{11, 10, 479}, + dictWord{139, 10, 507}, + dictWord{6, 0, 705}, + dictWord{ + 6, + 0, + 783, + }, + dictWord{6, 0, 1275}, + dictWord{6, 0, 1481}, + dictWord{4, 11, 282}, + dictWord{7, 11, 1034}, + dictWord{11, 11, 398}, + dictWord{11, 11, 634}, + dictWord{ + 12, + 11, + 1, + }, + dictWord{12, 11, 79}, + dictWord{12, 11, 544}, + dictWord{14, 11, 237}, + dictWord{17, 11, 10}, + dictWord{146, 11, 20}, + dictWord{134, 0, 453}, + dictWord{ + 4, + 0, + 555, + }, + dictWord{8, 0, 536}, + dictWord{10, 0, 288}, + dictWord{11, 0, 1005}, + dictWord{4, 10, 497}, + dictWord{135, 10, 1584}, + dictWord{5, 11, 118}, + dictWord{ + 5, + 11, + 499, + }, + dictWord{6, 11, 476}, + dictWord{7, 11, 600}, + dictWord{7, 11, 888}, + dictWord{135, 11, 1096}, + dictWord{138, 0, 987}, + dictWord{7, 0, 1107}, + dictWord{ + 7, + 10, + 261, + }, + dictWord{7, 10, 1115}, + dictWord{7, 10, 1354}, + dictWord{7, 10, 1588}, + dictWord{7, 10, 1705}, + dictWord{7, 10, 1902}, + dictWord{9, 10, 465}, + dictWord{10, 10, 248}, + dictWord{10, 10, 349}, + dictWord{10, 10, 647}, + dictWord{11, 10, 527}, + dictWord{11, 10, 660}, + dictWord{11, 10, 669}, + dictWord{ + 12, + 10, + 529, + }, + dictWord{141, 10, 305}, + dictWord{7, 11, 296}, + dictWord{7, 11, 596}, + dictWord{8, 11, 560}, + dictWord{8, 11, 586}, + dictWord{9, 11, 612}, + dictWord{ + 11, + 11, + 100, + }, + dictWord{11, 11, 304}, + dictWord{12, 11, 46}, + dictWord{13, 11, 89}, + dictWord{14, 11, 112}, + dictWord{145, 11, 122}, + dictWord{9, 0, 370}, + dictWord{ + 138, + 0, + 90, + }, + dictWord{136, 10, 13}, + dictWord{132, 0, 860}, + dictWord{7, 10, 642}, + dictWord{8, 10, 250}, + dictWord{11, 10, 123}, + dictWord{11, 10, 137}, + dictWord{ + 13, + 10, + 48, + }, + dictWord{142, 10, 95}, + dictWord{135, 10, 1429}, + dictWord{137, 11, 321}, + dictWord{132, 0, 257}, + dictWord{135, 0, 2031}, + dictWord{7, 0, 1768}, + dictWord{7, 11, 1599}, + dictWord{7, 11, 1723}, + dictWord{8, 11, 79}, + dictWord{8, 11, 106}, + dictWord{8, 11, 190}, + dictWord{8, 11, 302}, + dictWord{8, 11, 383}, + dictWord{9, 11, 119}, + dictWord{9, 11, 233}, + dictWord{9, 11, 298}, + dictWord{9, 11, 419}, + dictWord{9, 11, 471}, + dictWord{10, 11, 181}, + dictWord{10, 11, 406}, + dictWord{11, 11, 57}, + dictWord{11, 11, 85}, + dictWord{11, 11, 120}, + dictWord{11, 11, 177}, + dictWord{11, 11, 296}, + dictWord{11, 11, 382}, + dictWord{11, 11, 454}, + dictWord{11, 11, 758}, + dictWord{11, 11, 999}, + dictWord{12, 11, 27}, + dictWord{12, 11, 98}, + dictWord{12, 11, 131}, + dictWord{12, 11, 245}, + dictWord{ + 12, + 11, + 312, + }, + dictWord{12, 11, 446}, + dictWord{12, 11, 454}, + dictWord{13, 11, 25}, + dictWord{13, 11, 98}, + dictWord{13, 11, 426}, + dictWord{13, 11, 508}, + dictWord{ + 14, + 11, + 6, + }, + dictWord{14, 11, 163}, + dictWord{14, 11, 272}, + dictWord{14, 11, 277}, + dictWord{14, 11, 370}, + dictWord{15, 11, 95}, + dictWord{15, 11, 138}, + dictWord{ + 15, + 11, + 167, + }, + dictWord{17, 11, 18}, + dictWord{17, 11, 38}, + dictWord{20, 11, 96}, + dictWord{149, 11, 32}, + dictWord{5, 11, 722}, + dictWord{134, 11, 1759}, + dictWord{145, 11, 16}, + dictWord{6, 0, 1071}, + dictWord{134, 0, 1561}, + dictWord{10, 10, 545}, + dictWord{140, 10, 301}, + dictWord{6, 0, 83}, + dictWord{6, 0, 1733}, + dictWord{135, 0, 1389}, + dictWord{4, 0, 835}, + dictWord{135, 0, 1818}, + dictWord{133, 11, 258}, + dictWord{4, 10, 904}, + dictWord{133, 10, 794}, + dictWord{ + 134, + 0, + 2006, + }, + dictWord{5, 11, 30}, + dictWord{7, 11, 495}, + dictWord{8, 11, 134}, + dictWord{9, 11, 788}, + dictWord{140, 11, 438}, + dictWord{135, 11, 2004}, + dictWord{ + 137, + 0, + 696, + }, + dictWord{5, 11, 50}, + dictWord{6, 11, 439}, + dictWord{7, 11, 780}, + dictWord{135, 11, 1040}, + dictWord{7, 11, 772}, + dictWord{7, 11, 1104}, + dictWord{ + 7, + 11, + 1647, + }, + dictWord{11, 11, 269}, + dictWord{11, 11, 539}, + dictWord{11, 11, 607}, + dictWord{11, 11, 627}, + dictWord{11, 11, 706}, + dictWord{11, 11, 975}, + dictWord{12, 11, 248}, + dictWord{12, 11, 311}, + dictWord{12, 11, 434}, + dictWord{12, 11, 600}, + dictWord{12, 11, 622}, + dictWord{13, 11, 297}, + dictWord{ + 13, + 11, + 367, + }, + dictWord{13, 11, 485}, + dictWord{14, 11, 69}, + dictWord{14, 11, 409}, + dictWord{143, 11, 108}, + dictWord{5, 11, 1}, + dictWord{6, 11, 81}, + dictWord{ + 138, + 11, + 520, + }, + dictWord{7, 0, 1718}, + dictWord{9, 0, 95}, + dictWord{9, 0, 274}, + dictWord{10, 0, 279}, + dictWord{10, 0, 317}, + dictWord{10, 0, 420}, + dictWord{11, 0, 303}, + dictWord{11, 0, 808}, + dictWord{12, 0, 134}, + dictWord{12, 0, 367}, + dictWord{13, 0, 149}, + dictWord{13, 0, 347}, + dictWord{14, 0, 349}, + dictWord{14, 0, 406}, + dictWord{ + 18, + 0, + 22, + }, + dictWord{18, 0, 89}, + dictWord{18, 0, 122}, + dictWord{147, 0, 47}, + dictWord{5, 11, 482}, + dictWord{8, 11, 98}, + dictWord{9, 11, 172}, + dictWord{10, 11, 222}, + dictWord{10, 11, 700}, + dictWord{10, 11, 822}, + dictWord{11, 11, 302}, + dictWord{11, 11, 778}, + dictWord{12, 11, 50}, + dictWord{12, 11, 127}, + dictWord{ + 12, + 11, + 396, + }, + dictWord{13, 11, 62}, + dictWord{13, 11, 328}, + dictWord{14, 11, 122}, + dictWord{147, 11, 72}, + dictWord{7, 10, 386}, + dictWord{138, 10, 713}, + dictWord{ + 6, + 10, + 7, + }, + dictWord{6, 10, 35}, + dictWord{7, 10, 147}, + dictWord{7, 10, 1069}, + dictWord{7, 10, 1568}, + dictWord{7, 10, 1575}, + dictWord{7, 10, 1917}, + dictWord{ + 8, + 10, + 43, + }, + dictWord{8, 10, 208}, + dictWord{9, 10, 128}, + dictWord{9, 10, 866}, + dictWord{10, 10, 20}, + dictWord{11, 10, 981}, + dictWord{147, 10, 33}, + dictWord{ + 133, + 0, + 26, + }, + dictWord{132, 0, 550}, + dictWord{5, 11, 2}, + dictWord{7, 11, 1494}, + dictWord{136, 11, 589}, + dictWord{6, 11, 512}, + dictWord{7, 11, 797}, + dictWord{ + 8, + 11, + 253, + }, + dictWord{9, 11, 77}, + dictWord{10, 11, 1}, + dictWord{10, 11, 129}, + dictWord{10, 11, 225}, + dictWord{11, 11, 118}, + dictWord{11, 11, 226}, + dictWord{ + 11, + 11, + 251, + }, + dictWord{11, 11, 430}, + dictWord{11, 11, 701}, + dictWord{11, 11, 974}, + dictWord{11, 11, 982}, + dictWord{12, 11, 64}, + dictWord{12, 11, 260}, + dictWord{ + 12, + 11, + 488, + }, + dictWord{140, 11, 690}, + dictWord{7, 10, 893}, + dictWord{141, 10, 424}, + dictWord{134, 0, 901}, + dictWord{136, 0, 822}, + dictWord{4, 0, 902}, + dictWord{5, 0, 809}, + dictWord{134, 0, 122}, + dictWord{6, 0, 807}, + dictWord{134, 0, 1366}, + dictWord{7, 0, 262}, + dictWord{5, 11, 748}, + dictWord{134, 11, 553}, + dictWord{133, 0, 620}, + dictWord{4, 0, 34}, + dictWord{5, 0, 574}, + dictWord{7, 0, 279}, + dictWord{7, 0, 1624}, + dictWord{136, 0, 601}, + dictWord{9, 0, 170}, + dictWord{ + 6, + 10, + 322, + }, + dictWord{9, 10, 552}, + dictWord{11, 10, 274}, + dictWord{13, 10, 209}, + dictWord{13, 10, 499}, + dictWord{14, 10, 85}, + dictWord{15, 10, 126}, + dictWord{ + 145, + 10, + 70, + }, + dictWord{132, 0, 537}, + dictWord{4, 11, 12}, + dictWord{7, 11, 420}, + dictWord{7, 11, 522}, + dictWord{7, 11, 809}, + dictWord{8, 11, 797}, + dictWord{ + 141, + 11, + 88, + }, + dictWord{133, 0, 332}, + dictWord{8, 10, 83}, + dictWord{8, 10, 742}, + dictWord{8, 10, 817}, + dictWord{9, 10, 28}, + dictWord{9, 10, 29}, + dictWord{9, 10, 885}, + dictWord{10, 10, 387}, + dictWord{11, 10, 633}, + dictWord{11, 10, 740}, + dictWord{13, 10, 235}, + dictWord{13, 10, 254}, + dictWord{15, 10, 143}, + dictWord{ + 143, + 10, + 146, + }, + dictWord{6, 0, 1909}, + dictWord{9, 0, 964}, + dictWord{12, 0, 822}, + dictWord{12, 0, 854}, + dictWord{12, 0, 865}, + dictWord{12, 0, 910}, + dictWord{12, 0, 938}, + dictWord{15, 0, 169}, + dictWord{15, 0, 208}, + dictWord{15, 0, 211}, + dictWord{18, 0, 205}, + dictWord{18, 0, 206}, + dictWord{18, 0, 220}, + dictWord{18, 0, 223}, + dictWord{152, 0, 24}, + dictWord{140, 10, 49}, + dictWord{5, 11, 528}, + dictWord{135, 11, 1580}, + dictWord{6, 0, 261}, + dictWord{8, 0, 182}, + dictWord{139, 0, 943}, + dictWord{134, 0, 1721}, + dictWord{4, 0, 933}, + dictWord{133, 0, 880}, + dictWord{136, 11, 321}, + dictWord{5, 11, 266}, + dictWord{9, 11, 290}, + dictWord{9, 11, 364}, + dictWord{10, 11, 293}, + dictWord{11, 11, 606}, + dictWord{142, 11, 45}, + dictWord{6, 0, 1609}, + dictWord{4, 11, 50}, + dictWord{6, 11, 510}, + dictWord{6, 11, 594}, + dictWord{9, 11, 121}, + dictWord{10, 11, 49}, + dictWord{10, 11, 412}, + dictWord{139, 11, 834}, + dictWord{7, 0, 895}, + dictWord{136, 11, 748}, + dictWord{132, 11, 466}, + dictWord{4, 10, 110}, + dictWord{10, 10, 415}, + dictWord{10, 10, 597}, + dictWord{142, 10, 206}, + dictWord{133, 0, 812}, + dictWord{135, 11, 281}, + dictWord{ + 6, + 0, + 1890, + }, + dictWord{6, 0, 1902}, + dictWord{6, 0, 1916}, + dictWord{9, 0, 929}, + dictWord{9, 0, 942}, + dictWord{9, 0, 975}, + dictWord{9, 0, 984}, + dictWord{9, 0, 986}, + dictWord{ + 9, + 0, + 1011, + }, + dictWord{9, 0, 1019}, + dictWord{12, 0, 804}, + dictWord{12, 0, 851}, + dictWord{12, 0, 867}, + dictWord{12, 0, 916}, + dictWord{12, 0, 923}, + dictWord{ + 15, + 0, + 194, + }, + dictWord{15, 0, 204}, + dictWord{15, 0, 210}, + dictWord{15, 0, 222}, + dictWord{15, 0, 223}, + dictWord{15, 0, 229}, + dictWord{15, 0, 250}, + dictWord{ + 18, + 0, + 179, + }, + dictWord{18, 0, 186}, + dictWord{18, 0, 192}, + dictWord{7, 10, 205}, + dictWord{135, 10, 2000}, + dictWord{132, 11, 667}, + dictWord{135, 0, 778}, + dictWord{ + 4, + 0, + 137, + }, + dictWord{7, 0, 1178}, + dictWord{135, 0, 1520}, + dictWord{134, 0, 1314}, + dictWord{4, 11, 242}, + dictWord{134, 11, 333}, + dictWord{6, 0, 1661}, + dictWord{7, 0, 1975}, + dictWord{7, 0, 2009}, + dictWord{135, 0, 2011}, + dictWord{134, 0, 1591}, + dictWord{4, 10, 283}, + dictWord{135, 10, 1194}, + dictWord{ + 11, + 0, + 820, + }, + dictWord{150, 0, 51}, + dictWord{4, 11, 39}, + dictWord{5, 11, 36}, + dictWord{7, 11, 1843}, + dictWord{8, 11, 407}, + dictWord{11, 11, 144}, + dictWord{ + 140, + 11, + 523, + }, + dictWord{134, 10, 1720}, + dictWord{4, 11, 510}, + dictWord{7, 11, 29}, + dictWord{7, 11, 66}, + dictWord{7, 11, 1980}, + dictWord{10, 11, 487}, + dictWord{ + 10, + 11, + 809, + }, + dictWord{146, 11, 9}, + dictWord{5, 0, 89}, + dictWord{7, 0, 1915}, + dictWord{9, 0, 185}, + dictWord{9, 0, 235}, + dictWord{10, 0, 64}, + dictWord{10, 0, 270}, + dictWord{10, 0, 403}, + dictWord{10, 0, 469}, + dictWord{10, 0, 529}, + dictWord{10, 0, 590}, + dictWord{11, 0, 140}, + dictWord{11, 0, 860}, + dictWord{13, 0, 1}, + dictWord{ + 13, + 0, + 422, + }, + dictWord{14, 0, 341}, + dictWord{14, 0, 364}, + dictWord{17, 0, 93}, + dictWord{18, 0, 113}, + dictWord{19, 0, 97}, + dictWord{147, 0, 113}, + dictWord{133, 0, 695}, + dictWord{6, 0, 987}, + dictWord{134, 0, 1160}, + dictWord{5, 0, 6}, + dictWord{6, 0, 183}, + dictWord{7, 0, 680}, + dictWord{7, 0, 978}, + dictWord{7, 0, 1013}, + dictWord{ + 7, + 0, + 1055, + }, + dictWord{12, 0, 230}, + dictWord{13, 0, 172}, + dictWord{146, 0, 29}, + dictWord{134, 11, 570}, + dictWord{132, 11, 787}, + dictWord{134, 11, 518}, + dictWord{ + 6, + 0, + 29, + }, + dictWord{139, 0, 63}, + dictWord{132, 11, 516}, + dictWord{136, 11, 821}, + dictWord{132, 0, 311}, + dictWord{134, 0, 1740}, + dictWord{7, 0, 170}, + dictWord{8, 0, 90}, + dictWord{8, 0, 177}, + dictWord{8, 0, 415}, + dictWord{11, 0, 714}, + dictWord{14, 0, 281}, + dictWord{136, 10, 735}, + dictWord{134, 0, 1961}, + dictWord{ + 135, + 11, + 1405, + }, + dictWord{4, 11, 10}, + dictWord{7, 11, 917}, + dictWord{139, 11, 786}, + dictWord{5, 10, 132}, + dictWord{9, 10, 486}, + dictWord{9, 10, 715}, + dictWord{ + 10, + 10, + 458, + }, + dictWord{11, 10, 373}, + dictWord{11, 10, 668}, + dictWord{11, 10, 795}, + dictWord{11, 10, 897}, + dictWord{12, 10, 272}, + dictWord{12, 10, 424}, + dictWord{12, 10, 539}, + dictWord{12, 10, 558}, + dictWord{14, 10, 245}, + dictWord{14, 10, 263}, + dictWord{14, 10, 264}, + dictWord{14, 10, 393}, + dictWord{ + 142, + 10, + 403, + }, + dictWord{11, 0, 91}, + dictWord{13, 0, 129}, + dictWord{15, 0, 101}, + dictWord{145, 0, 125}, + dictWord{135, 0, 1132}, + dictWord{4, 0, 494}, + dictWord{6, 0, 74}, + dictWord{7, 0, 44}, + dictWord{7, 0, 407}, + dictWord{12, 0, 17}, + dictWord{15, 0, 5}, + dictWord{148, 0, 11}, + dictWord{133, 10, 379}, + dictWord{5, 0, 270}, + dictWord{ + 5, + 11, + 684, + }, + dictWord{6, 10, 89}, + dictWord{6, 10, 400}, + dictWord{7, 10, 1569}, + dictWord{7, 10, 1623}, + dictWord{7, 10, 1850}, + dictWord{8, 10, 218}, + dictWord{ + 8, + 10, + 422, + }, + dictWord{9, 10, 570}, + dictWord{138, 10, 626}, + dictWord{4, 0, 276}, + dictWord{133, 0, 296}, + dictWord{6, 0, 1523}, + dictWord{134, 11, 27}, + dictWord{ + 6, + 10, + 387, + }, + dictWord{7, 10, 882}, + dictWord{141, 10, 111}, + dictWord{6, 10, 224}, + dictWord{7, 10, 877}, + dictWord{137, 10, 647}, + dictWord{135, 10, 790}, + dictWord{ + 4, + 0, + 7, + }, + dictWord{5, 0, 90}, + dictWord{5, 0, 158}, + dictWord{6, 0, 542}, + dictWord{7, 0, 221}, + dictWord{7, 0, 1574}, + dictWord{9, 0, 490}, + dictWord{10, 0, 540}, + dictWord{ + 11, + 0, + 443, + }, + dictWord{139, 0, 757}, + dictWord{7, 0, 588}, + dictWord{9, 0, 175}, + dictWord{138, 0, 530}, + dictWord{135, 10, 394}, + dictWord{142, 11, 23}, + dictWord{ + 134, + 0, + 786, + }, + dictWord{135, 0, 580}, + dictWord{7, 0, 88}, + dictWord{136, 0, 627}, + dictWord{5, 0, 872}, + dictWord{6, 0, 57}, + dictWord{7, 0, 471}, + dictWord{9, 0, 447}, + dictWord{137, 0, 454}, + dictWord{6, 11, 342}, + dictWord{6, 11, 496}, + dictWord{8, 11, 275}, + dictWord{137, 11, 206}, + dictWord{4, 11, 909}, + dictWord{133, 11, 940}, + dictWord{6, 0, 735}, + dictWord{132, 11, 891}, + dictWord{8, 0, 845}, + dictWord{8, 0, 916}, + dictWord{135, 10, 1409}, + dictWord{5, 0, 31}, + dictWord{134, 0, 614}, + dictWord{11, 0, 458}, + dictWord{12, 0, 15}, + dictWord{140, 0, 432}, + dictWord{8, 0, 330}, + dictWord{140, 0, 477}, + dictWord{4, 0, 530}, + dictWord{5, 0, 521}, + dictWord{ + 7, + 0, + 1200, + }, + dictWord{10, 0, 460}, + dictWord{132, 11, 687}, + dictWord{6, 0, 424}, + dictWord{135, 0, 1866}, + dictWord{9, 0, 569}, + dictWord{12, 0, 12}, + dictWord{ + 12, + 0, + 81, + }, + dictWord{12, 0, 319}, + dictWord{13, 0, 69}, + dictWord{14, 0, 259}, + dictWord{16, 0, 87}, + dictWord{17, 0, 1}, + dictWord{17, 0, 21}, + dictWord{17, 0, 24}, + dictWord{ + 18, + 0, + 15, + }, + dictWord{18, 0, 56}, + dictWord{18, 0, 59}, + dictWord{18, 0, 127}, + dictWord{18, 0, 154}, + dictWord{19, 0, 19}, + dictWord{148, 0, 31}, + dictWord{7, 0, 1302}, + dictWord{136, 10, 38}, + dictWord{134, 11, 253}, + dictWord{5, 10, 261}, + dictWord{7, 10, 78}, + dictWord{7, 10, 199}, + dictWord{8, 10, 815}, + dictWord{9, 10, 126}, + dictWord{138, 10, 342}, + dictWord{5, 0, 595}, + dictWord{135, 0, 1863}, + dictWord{6, 11, 41}, + dictWord{141, 11, 160}, + dictWord{5, 0, 13}, + dictWord{134, 0, 142}, + dictWord{6, 0, 97}, + dictWord{7, 0, 116}, + dictWord{8, 0, 322}, + dictWord{8, 0, 755}, + dictWord{9, 0, 548}, + dictWord{10, 0, 714}, + dictWord{11, 0, 884}, + dictWord{13, 0, 324}, + dictWord{7, 11, 1304}, + dictWord{138, 11, 477}, + dictWord{132, 10, 628}, + dictWord{134, 11, 1718}, + dictWord{7, 10, 266}, + dictWord{136, 10, 804}, + dictWord{135, 10, 208}, + dictWord{7, 0, 1021}, + dictWord{6, 10, 79}, + dictWord{135, 10, 1519}, + dictWord{7, 0, 1472}, + dictWord{135, 0, 1554}, + dictWord{6, 11, 362}, + dictWord{146, 11, 51}, + dictWord{7, 0, 1071}, + dictWord{7, 0, 1541}, + dictWord{7, 0, 1767}, + dictWord{7, 0, 1806}, + dictWord{11, 0, 162}, + dictWord{11, 0, 242}, + dictWord{11, 0, 452}, + dictWord{12, 0, 605}, + dictWord{15, 0, 26}, + dictWord{144, 0, 44}, + dictWord{136, 10, 741}, + dictWord{133, 11, 115}, + dictWord{145, 0, 115}, + dictWord{134, 10, 376}, + dictWord{6, 0, 1406}, + dictWord{134, 0, 1543}, + dictWord{5, 11, 193}, + dictWord{12, 11, 178}, + dictWord{13, 11, 130}, + dictWord{ + 145, + 11, + 84, + }, + dictWord{135, 0, 1111}, + dictWord{8, 0, 1}, + dictWord{9, 0, 650}, + dictWord{10, 0, 326}, + dictWord{5, 11, 705}, + dictWord{137, 11, 606}, + dictWord{5, 0, 488}, + dictWord{6, 0, 527}, + dictWord{7, 0, 489}, + dictWord{7, 0, 1636}, + dictWord{8, 0, 121}, + dictWord{8, 0, 144}, + dictWord{8, 0, 359}, + dictWord{9, 0, 193}, + dictWord{9, 0, 241}, + dictWord{9, 0, 336}, + dictWord{9, 0, 882}, + dictWord{11, 0, 266}, + dictWord{11, 0, 372}, + dictWord{11, 0, 944}, + dictWord{12, 0, 401}, + dictWord{140, 0, 641}, + dictWord{135, 11, 174}, + dictWord{6, 0, 267}, + dictWord{7, 10, 244}, + dictWord{7, 10, 632}, + dictWord{7, 10, 1609}, + dictWord{8, 10, 178}, + dictWord{8, 10, 638}, + dictWord{141, 10, 58}, + dictWord{134, 0, 1983}, + dictWord{134, 0, 1155}, + dictWord{134, 0, 1575}, + dictWord{134, 0, 1438}, + dictWord{9, 0, 31}, + dictWord{ + 10, + 0, + 244, + }, + dictWord{10, 0, 699}, + dictWord{12, 0, 149}, + dictWord{141, 0, 497}, + dictWord{133, 0, 377}, + dictWord{4, 11, 122}, + dictWord{5, 11, 796}, + dictWord{ + 5, + 11, + 952, + }, + dictWord{6, 11, 1660}, + dictWord{6, 11, 1671}, + dictWord{8, 11, 567}, + dictWord{9, 11, 687}, + dictWord{9, 11, 742}, + dictWord{10, 11, 686}, + dictWord{ + 11, + 11, + 356, + }, + dictWord{11, 11, 682}, + dictWord{140, 11, 281}, + dictWord{145, 0, 101}, + dictWord{11, 11, 0}, + dictWord{144, 11, 78}, + dictWord{5, 11, 179}, + dictWord{ + 5, + 10, + 791, + }, + dictWord{7, 11, 1095}, + dictWord{135, 11, 1213}, + dictWord{8, 11, 372}, + dictWord{9, 11, 122}, + dictWord{138, 11, 175}, + dictWord{7, 10, 686}, + dictWord{8, 10, 33}, + dictWord{8, 10, 238}, + dictWord{10, 10, 616}, + dictWord{11, 10, 467}, + dictWord{11, 10, 881}, + dictWord{13, 10, 217}, + dictWord{13, 10, 253}, + dictWord{142, 10, 268}, + dictWord{9, 0, 476}, + dictWord{4, 11, 66}, + dictWord{7, 11, 722}, + dictWord{135, 11, 904}, + dictWord{7, 11, 352}, + dictWord{137, 11, 684}, + dictWord{135, 0, 2023}, + dictWord{135, 0, 1836}, + dictWord{132, 10, 447}, + dictWord{5, 0, 843}, + dictWord{144, 0, 35}, + dictWord{137, 11, 779}, + dictWord{ + 141, + 11, + 35, + }, + dictWord{4, 10, 128}, + dictWord{5, 10, 415}, + dictWord{6, 10, 462}, + dictWord{7, 10, 294}, + dictWord{7, 10, 578}, + dictWord{10, 10, 710}, + dictWord{ + 139, + 10, + 86, + }, + dictWord{132, 0, 554}, + dictWord{133, 0, 536}, + dictWord{136, 10, 587}, + dictWord{5, 0, 207}, + dictWord{9, 0, 79}, + dictWord{11, 0, 625}, + dictWord{ + 145, + 0, + 7, + }, + dictWord{7, 0, 1371}, + dictWord{6, 10, 427}, + dictWord{138, 10, 692}, + dictWord{4, 0, 424}, + dictWord{4, 10, 195}, + dictWord{135, 10, 802}, + dictWord{ + 8, + 0, + 785, + }, + dictWord{133, 11, 564}, + dictWord{135, 0, 336}, + dictWord{4, 0, 896}, + dictWord{6, 0, 1777}, + dictWord{134, 11, 556}, + dictWord{137, 11, 103}, + dictWord{134, 10, 1683}, + dictWord{7, 11, 544}, + dictWord{8, 11, 719}, + dictWord{138, 11, 61}, + dictWord{138, 10, 472}, + dictWord{4, 11, 5}, + dictWord{5, 11, 498}, + dictWord{136, 11, 637}, + dictWord{7, 0, 750}, + dictWord{9, 0, 223}, + dictWord{11, 0, 27}, + dictWord{11, 0, 466}, + dictWord{12, 0, 624}, + dictWord{14, 0, 265}, + dictWord{ + 146, + 0, + 61, + }, + dictWord{12, 0, 238}, + dictWord{18, 0, 155}, + dictWord{12, 11, 238}, + dictWord{146, 11, 155}, + dictWord{151, 10, 28}, + dictWord{133, 11, 927}, + dictWord{12, 0, 383}, + dictWord{5, 10, 3}, + dictWord{8, 10, 578}, + dictWord{9, 10, 118}, + dictWord{10, 10, 705}, + dictWord{141, 10, 279}, + dictWord{4, 11, 893}, + dictWord{ + 5, + 11, + 780, + }, + dictWord{133, 11, 893}, + dictWord{4, 0, 603}, + dictWord{133, 0, 661}, + dictWord{4, 0, 11}, + dictWord{6, 0, 128}, + dictWord{7, 0, 231}, + dictWord{ + 7, + 0, + 1533, + }, + dictWord{10, 0, 725}, + dictWord{5, 10, 229}, + dictWord{5, 11, 238}, + dictWord{135, 11, 1350}, + dictWord{8, 10, 102}, + dictWord{10, 10, 578}, + dictWord{ + 10, + 10, + 672, + }, + dictWord{12, 10, 496}, + dictWord{13, 10, 408}, + dictWord{14, 10, 121}, + dictWord{145, 10, 106}, + dictWord{132, 0, 476}, + dictWord{134, 0, 1552}, + dictWord{134, 11, 1729}, + dictWord{8, 10, 115}, + dictWord{8, 10, 350}, + dictWord{9, 10, 489}, + dictWord{10, 10, 128}, + dictWord{11, 10, 306}, + dictWord{ + 12, + 10, + 373, + }, + dictWord{14, 10, 30}, + dictWord{17, 10, 79}, + dictWord{19, 10, 80}, + dictWord{150, 10, 55}, + dictWord{135, 0, 1807}, + dictWord{4, 0, 680}, + dictWord{ + 4, + 11, + 60, + }, + dictWord{7, 11, 760}, + dictWord{7, 11, 1800}, + dictWord{8, 11, 314}, + dictWord{9, 11, 700}, + dictWord{139, 11, 487}, + dictWord{4, 10, 230}, + dictWord{ + 5, + 10, + 702, + }, + dictWord{148, 11, 94}, + dictWord{132, 11, 228}, + dictWord{139, 0, 435}, + dictWord{9, 0, 20}, + dictWord{10, 0, 324}, + dictWord{10, 0, 807}, + dictWord{ + 139, + 0, + 488, + }, + dictWord{6, 10, 1728}, + dictWord{136, 11, 419}, + dictWord{4, 10, 484}, + dictWord{18, 10, 26}, + dictWord{19, 10, 42}, + dictWord{20, 10, 43}, + dictWord{ + 21, + 10, + 0, + }, + dictWord{23, 10, 27}, + dictWord{152, 10, 14}, + dictWord{135, 0, 1431}, + dictWord{133, 11, 828}, + dictWord{5, 0, 112}, + dictWord{6, 0, 103}, + dictWord{ + 6, + 0, + 150, + }, + dictWord{7, 0, 1303}, + dictWord{9, 0, 292}, + dictWord{10, 0, 481}, + dictWord{20, 0, 13}, + dictWord{7, 11, 176}, + dictWord{7, 11, 178}, + dictWord{7, 11, 1110}, + dictWord{10, 11, 481}, + dictWord{148, 11, 13}, + dictWord{138, 0, 356}, + dictWord{4, 11, 51}, + dictWord{5, 11, 39}, + dictWord{6, 11, 4}, + dictWord{7, 11, 591}, + dictWord{ + 7, + 11, + 849, + }, + dictWord{7, 11, 951}, + dictWord{7, 11, 1129}, + dictWord{7, 11, 1613}, + dictWord{7, 11, 1760}, + dictWord{7, 11, 1988}, + dictWord{9, 11, 434}, + dictWord{10, 11, 754}, + dictWord{11, 11, 25}, + dictWord{11, 11, 37}, + dictWord{139, 11, 414}, + dictWord{6, 0, 1963}, + dictWord{134, 0, 2000}, + dictWord{ + 132, + 10, + 633, + }, + dictWord{6, 0, 1244}, + dictWord{133, 11, 902}, + dictWord{135, 11, 928}, + dictWord{140, 0, 18}, + dictWord{138, 0, 204}, + dictWord{135, 11, 1173}, + dictWord{134, 0, 867}, + dictWord{4, 0, 708}, + dictWord{8, 0, 15}, + dictWord{9, 0, 50}, + dictWord{9, 0, 386}, + dictWord{11, 0, 18}, + dictWord{11, 0, 529}, + dictWord{140, 0, 228}, + dictWord{134, 11, 270}, + dictWord{4, 0, 563}, + dictWord{7, 0, 109}, + dictWord{7, 0, 592}, + dictWord{7, 0, 637}, + dictWord{7, 0, 770}, + dictWord{8, 0, 463}, + dictWord{ + 9, + 0, + 60, + }, + dictWord{9, 0, 335}, + dictWord{9, 0, 904}, + dictWord{10, 0, 73}, + dictWord{11, 0, 434}, + dictWord{12, 0, 585}, + dictWord{13, 0, 331}, + dictWord{18, 0, 110}, + dictWord{148, 0, 60}, + dictWord{132, 0, 502}, + dictWord{14, 11, 359}, + dictWord{19, 11, 52}, + dictWord{148, 11, 47}, + dictWord{6, 11, 377}, + dictWord{7, 11, 1025}, + dictWord{9, 11, 613}, + dictWord{145, 11, 104}, + dictWord{6, 0, 347}, + dictWord{10, 0, 161}, + dictWord{5, 10, 70}, + dictWord{5, 10, 622}, + dictWord{6, 10, 334}, + dictWord{ + 7, + 10, + 1032, + }, + dictWord{9, 10, 171}, + dictWord{11, 10, 26}, + dictWord{11, 10, 213}, + dictWord{11, 10, 637}, + dictWord{11, 10, 707}, + dictWord{12, 10, 202}, + dictWord{12, 10, 380}, + dictWord{13, 10, 226}, + dictWord{13, 10, 355}, + dictWord{14, 10, 222}, + dictWord{145, 10, 42}, + dictWord{132, 11, 416}, + dictWord{4, 0, 33}, + dictWord{5, 0, 102}, + dictWord{6, 0, 284}, + dictWord{7, 0, 1079}, + dictWord{7, 0, 1423}, + dictWord{7, 0, 1702}, + dictWord{8, 0, 470}, + dictWord{9, 0, 554}, + dictWord{ + 9, + 0, + 723, + }, + dictWord{11, 0, 333}, + dictWord{142, 11, 372}, + dictWord{5, 11, 152}, + dictWord{5, 11, 197}, + dictWord{7, 11, 340}, + dictWord{7, 11, 867}, + dictWord{ + 10, + 11, + 548, + }, + dictWord{10, 11, 581}, + dictWord{11, 11, 6}, + dictWord{12, 11, 3}, + dictWord{12, 11, 19}, + dictWord{14, 11, 110}, + dictWord{142, 11, 289}, + dictWord{ + 7, + 0, + 246, + }, + dictWord{135, 0, 840}, + dictWord{6, 0, 10}, + dictWord{8, 0, 571}, + dictWord{9, 0, 739}, + dictWord{143, 0, 91}, + dictWord{6, 0, 465}, + dictWord{7, 0, 1465}, + dictWord{ + 4, + 10, + 23, + }, + dictWord{4, 10, 141}, + dictWord{5, 10, 313}, + dictWord{5, 10, 1014}, + dictWord{6, 10, 50}, + dictWord{7, 10, 142}, + dictWord{7, 10, 559}, + dictWord{ + 8, + 10, + 640, + }, + dictWord{9, 10, 460}, + dictWord{9, 10, 783}, + dictWord{11, 10, 741}, + dictWord{12, 10, 183}, + dictWord{141, 10, 488}, + dictWord{133, 0, 626}, + dictWord{ + 136, + 0, + 614, + }, + dictWord{138, 0, 237}, + dictWord{7, 11, 34}, + dictWord{7, 11, 190}, + dictWord{8, 11, 28}, + dictWord{8, 11, 141}, + dictWord{8, 11, 444}, + dictWord{ + 8, + 11, + 811, + }, + dictWord{9, 11, 468}, + dictWord{11, 11, 334}, + dictWord{12, 11, 24}, + dictWord{12, 11, 386}, + dictWord{140, 11, 576}, + dictWord{133, 11, 757}, + dictWord{ + 5, + 0, + 18, + }, + dictWord{6, 0, 526}, + dictWord{13, 0, 24}, + dictWord{13, 0, 110}, + dictWord{19, 0, 5}, + dictWord{147, 0, 44}, + dictWord{6, 0, 506}, + dictWord{134, 11, 506}, + dictWord{135, 11, 1553}, + dictWord{4, 0, 309}, + dictWord{5, 0, 462}, + dictWord{7, 0, 970}, + dictWord{7, 0, 1097}, + dictWord{22, 0, 30}, + dictWord{22, 0, 33}, + dictWord{ + 7, + 11, + 1385, + }, + dictWord{11, 11, 582}, + dictWord{11, 11, 650}, + dictWord{11, 11, 901}, + dictWord{11, 11, 949}, + dictWord{12, 11, 232}, + dictWord{12, 11, 236}, + dictWord{13, 11, 413}, + dictWord{13, 11, 501}, + dictWord{146, 11, 116}, + dictWord{9, 0, 140}, + dictWord{5, 10, 222}, + dictWord{138, 10, 534}, + dictWord{6, 0, 1056}, + dictWord{137, 10, 906}, + dictWord{134, 0, 1704}, + dictWord{138, 10, 503}, + dictWord{134, 0, 1036}, + dictWord{5, 10, 154}, + dictWord{7, 10, 1491}, + dictWord{ + 10, + 10, + 379, + }, + dictWord{138, 10, 485}, + dictWord{4, 11, 383}, + dictWord{133, 10, 716}, + dictWord{134, 0, 1315}, + dictWord{5, 0, 86}, + dictWord{7, 0, 743}, + dictWord{ + 9, + 0, + 85, + }, + dictWord{10, 0, 281}, + dictWord{10, 0, 432}, + dictWord{11, 0, 825}, + dictWord{12, 0, 251}, + dictWord{13, 0, 118}, + dictWord{142, 0, 378}, + dictWord{ + 8, + 0, + 264, + }, + dictWord{4, 10, 91}, + dictWord{5, 10, 388}, + dictWord{5, 10, 845}, + dictWord{6, 10, 206}, + dictWord{6, 10, 252}, + dictWord{6, 10, 365}, + dictWord{7, 10, 136}, + dictWord{7, 10, 531}, + dictWord{136, 10, 621}, + dictWord{5, 0, 524}, + dictWord{133, 0, 744}, + dictWord{5, 11, 277}, + dictWord{141, 11, 247}, + dictWord{ + 132, + 11, + 435, + }, + dictWord{10, 0, 107}, + dictWord{140, 0, 436}, + dictWord{132, 0, 927}, + dictWord{10, 0, 123}, + dictWord{12, 0, 670}, + dictWord{146, 0, 94}, + dictWord{ + 7, + 0, + 1149, + }, + dictWord{9, 0, 156}, + dictWord{138, 0, 957}, + dictWord{5, 11, 265}, + dictWord{6, 11, 212}, + dictWord{135, 11, 28}, + dictWord{133, 0, 778}, + dictWord{ + 133, + 0, + 502, + }, + dictWord{8, 0, 196}, + dictWord{10, 0, 283}, + dictWord{139, 0, 406}, + dictWord{135, 10, 576}, + dictWord{136, 11, 535}, + dictWord{134, 0, 1312}, + dictWord{ + 5, + 10, + 771, + }, + dictWord{5, 10, 863}, + dictWord{5, 10, 898}, + dictWord{6, 10, 1632}, + dictWord{6, 10, 1644}, + dictWord{134, 10, 1780}, + dictWord{5, 0, 855}, + dictWord{5, 10, 331}, + dictWord{135, 11, 1487}, + dictWord{132, 11, 702}, + dictWord{5, 11, 808}, + dictWord{135, 11, 2045}, + dictWord{7, 0, 1400}, + dictWord{ + 9, + 0, + 446, + }, + dictWord{138, 0, 45}, + dictWord{140, 10, 632}, + dictWord{132, 0, 1003}, + dictWord{5, 11, 166}, + dictWord{8, 11, 739}, + dictWord{140, 11, 511}, + dictWord{ + 5, + 10, + 107, + }, + dictWord{7, 10, 201}, + dictWord{136, 10, 518}, + dictWord{6, 10, 446}, + dictWord{135, 10, 1817}, + dictWord{134, 0, 1532}, + dictWord{ + 134, + 0, + 1097, + }, + dictWord{4, 11, 119}, + dictWord{5, 11, 170}, + dictWord{5, 11, 447}, + dictWord{7, 11, 1708}, + dictWord{7, 11, 1889}, + dictWord{9, 11, 357}, + dictWord{ + 9, + 11, + 719, + }, + dictWord{12, 11, 486}, + dictWord{140, 11, 596}, + dictWord{9, 10, 851}, + dictWord{141, 10, 510}, + dictWord{7, 0, 612}, + dictWord{8, 0, 545}, + dictWord{ + 8, + 0, + 568, + }, + dictWord{8, 0, 642}, + dictWord{9, 0, 717}, + dictWord{10, 0, 541}, + dictWord{10, 0, 763}, + dictWord{11, 0, 449}, + dictWord{12, 0, 489}, + dictWord{13, 0, 153}, + dictWord{13, 0, 296}, + dictWord{14, 0, 138}, + dictWord{14, 0, 392}, + dictWord{15, 0, 50}, + dictWord{16, 0, 6}, + dictWord{16, 0, 12}, + dictWord{20, 0, 9}, + dictWord{ + 132, + 10, + 504, + }, + dictWord{4, 11, 450}, + dictWord{135, 11, 1158}, + dictWord{11, 0, 54}, + dictWord{13, 0, 173}, + dictWord{13, 0, 294}, + dictWord{5, 10, 883}, + dictWord{ + 5, + 10, + 975, + }, + dictWord{8, 10, 392}, + dictWord{148, 10, 7}, + dictWord{13, 0, 455}, + dictWord{15, 0, 99}, + dictWord{15, 0, 129}, + dictWord{144, 0, 68}, + dictWord{135, 0, 172}, + dictWord{132, 11, 754}, + dictWord{5, 10, 922}, + dictWord{134, 10, 1707}, + dictWord{134, 0, 1029}, + dictWord{17, 11, 39}, + dictWord{148, 11, 36}, + dictWord{ + 4, + 0, + 568, + }, + dictWord{5, 10, 993}, + dictWord{7, 10, 515}, + dictWord{137, 10, 91}, + dictWord{132, 0, 732}, + dictWord{10, 0, 617}, + dictWord{138, 11, 617}, + dictWord{ + 134, + 0, + 974, + }, + dictWord{7, 0, 989}, + dictWord{10, 0, 377}, + dictWord{12, 0, 363}, + dictWord{13, 0, 68}, + dictWord{13, 0, 94}, + dictWord{14, 0, 108}, + dictWord{ + 142, + 0, + 306, + }, + dictWord{136, 0, 733}, + dictWord{132, 0, 428}, + dictWord{7, 0, 1789}, + dictWord{135, 11, 1062}, + dictWord{7, 0, 2015}, + dictWord{140, 0, 665}, + dictWord{135, 10, 1433}, + dictWord{5, 0, 287}, + dictWord{7, 10, 921}, + dictWord{8, 10, 580}, + dictWord{8, 10, 593}, + dictWord{8, 10, 630}, + dictWord{138, 10, 28}, + dictWord{138, 0, 806}, + dictWord{4, 10, 911}, + dictWord{5, 10, 867}, + dictWord{5, 10, 1013}, + dictWord{7, 10, 2034}, + dictWord{8, 10, 798}, + dictWord{136, 10, 813}, + dictWord{134, 0, 1539}, + dictWord{8, 11, 523}, + dictWord{150, 11, 34}, + dictWord{135, 11, 740}, + dictWord{7, 11, 238}, + dictWord{7, 11, 2033}, + dictWord{ + 8, + 11, + 120, + }, + dictWord{8, 11, 188}, + dictWord{8, 11, 659}, + dictWord{9, 11, 598}, + dictWord{10, 11, 466}, + dictWord{12, 11, 342}, + dictWord{12, 11, 588}, + dictWord{ + 13, + 11, + 503, + }, + dictWord{14, 11, 246}, + dictWord{143, 11, 92}, + dictWord{7, 0, 1563}, + dictWord{141, 0, 182}, + dictWord{5, 10, 135}, + dictWord{6, 10, 519}, + dictWord{ + 7, + 10, + 1722, + }, + dictWord{10, 10, 271}, + dictWord{11, 10, 261}, + dictWord{145, 10, 54}, + dictWord{14, 10, 338}, + dictWord{148, 10, 81}, + dictWord{7, 0, 484}, + dictWord{ + 4, + 10, + 300, + }, + dictWord{133, 10, 436}, + dictWord{145, 11, 114}, + dictWord{6, 0, 1623}, + dictWord{134, 0, 1681}, + dictWord{133, 11, 640}, + dictWord{4, 11, 201}, + dictWord{7, 11, 1744}, + dictWord{8, 11, 602}, + dictWord{11, 11, 247}, + dictWord{11, 11, 826}, + dictWord{145, 11, 65}, + dictWord{8, 11, 164}, + dictWord{ + 146, + 11, + 62, + }, + dictWord{6, 0, 1833}, + dictWord{6, 0, 1861}, + dictWord{136, 0, 878}, + dictWord{134, 0, 1569}, + dictWord{8, 10, 357}, + dictWord{10, 10, 745}, + dictWord{ + 14, + 10, + 426, + }, + dictWord{17, 10, 94}, + dictWord{147, 10, 57}, + dictWord{12, 0, 93}, + dictWord{12, 0, 501}, + dictWord{13, 0, 362}, + dictWord{14, 0, 151}, + dictWord{15, 0, 40}, + dictWord{15, 0, 59}, + dictWord{16, 0, 46}, + dictWord{17, 0, 25}, + dictWord{18, 0, 14}, + dictWord{18, 0, 134}, + dictWord{19, 0, 25}, + dictWord{19, 0, 69}, + dictWord{ + 20, + 0, + 16, + }, + dictWord{20, 0, 19}, + dictWord{20, 0, 66}, + dictWord{21, 0, 23}, + dictWord{21, 0, 25}, + dictWord{150, 0, 42}, + dictWord{6, 0, 1748}, + dictWord{8, 0, 715}, + dictWord{ + 9, + 0, + 802, + }, + dictWord{10, 0, 46}, + dictWord{10, 0, 819}, + dictWord{13, 0, 308}, + dictWord{14, 0, 351}, + dictWord{14, 0, 363}, + dictWord{146, 0, 67}, + dictWord{ + 132, + 0, + 994, + }, + dictWord{4, 0, 63}, + dictWord{133, 0, 347}, + dictWord{132, 0, 591}, + dictWord{133, 0, 749}, + dictWord{7, 11, 1577}, + dictWord{10, 11, 304}, + dictWord{ + 10, + 11, + 549, + }, + dictWord{11, 11, 424}, + dictWord{12, 11, 365}, + dictWord{13, 11, 220}, + dictWord{13, 11, 240}, + dictWord{142, 11, 33}, + dictWord{133, 0, 366}, + dictWord{ + 7, + 0, + 557, + }, + dictWord{12, 0, 547}, + dictWord{14, 0, 86}, + dictWord{133, 10, 387}, + dictWord{135, 0, 1747}, + dictWord{132, 11, 907}, + dictWord{5, 11, 100}, + dictWord{10, 11, 329}, + dictWord{12, 11, 416}, + dictWord{149, 11, 29}, + dictWord{4, 10, 6}, + dictWord{5, 10, 708}, + dictWord{136, 10, 75}, + dictWord{7, 10, 1351}, + dictWord{9, 10, 581}, + dictWord{10, 10, 639}, + dictWord{11, 10, 453}, + dictWord{140, 10, 584}, + dictWord{7, 0, 89}, + dictWord{132, 10, 303}, + dictWord{138, 10, 772}, + dictWord{132, 11, 176}, + dictWord{5, 11, 636}, + dictWord{5, 11, 998}, + dictWord{8, 11, 26}, + dictWord{137, 11, 358}, + dictWord{7, 11, 9}, + dictWord{7, 11, 1508}, + dictWord{9, 11, 317}, + dictWord{10, 11, 210}, + dictWord{10, 11, 292}, + dictWord{10, 11, 533}, + dictWord{11, 11, 555}, + dictWord{12, 11, 526}, + dictWord{ + 12, + 11, + 607, + }, + dictWord{13, 11, 263}, + dictWord{13, 11, 459}, + dictWord{142, 11, 271}, + dictWord{134, 0, 1463}, + dictWord{6, 0, 772}, + dictWord{6, 0, 1137}, + dictWord{ + 139, + 11, + 595, + }, + dictWord{7, 0, 977}, + dictWord{139, 11, 66}, + dictWord{138, 0, 893}, + dictWord{20, 0, 48}, + dictWord{148, 11, 48}, + dictWord{5, 0, 824}, + dictWord{ + 133, + 0, + 941, + }, + dictWord{134, 11, 295}, + dictWord{7, 0, 1543}, + dictWord{7, 0, 1785}, + dictWord{10, 0, 690}, + dictWord{4, 10, 106}, + dictWord{139, 10, 717}, + dictWord{ + 7, + 0, + 440, + }, + dictWord{8, 0, 230}, + dictWord{139, 0, 106}, + dictWord{5, 10, 890}, + dictWord{133, 10, 988}, + dictWord{6, 10, 626}, + dictWord{142, 10, 431}, + dictWord{ + 10, + 11, + 127, + }, + dictWord{141, 11, 27}, + dictWord{17, 0, 32}, + dictWord{10, 10, 706}, + dictWord{150, 10, 44}, + dictWord{132, 0, 216}, + dictWord{137, 0, 332}, + dictWord{4, 10, 698}, + dictWord{136, 11, 119}, + dictWord{139, 11, 267}, + dictWord{138, 10, 17}, + dictWord{11, 11, 526}, + dictWord{11, 11, 939}, + dictWord{ + 141, + 11, + 290, + }, + dictWord{7, 11, 1167}, + dictWord{11, 11, 934}, + dictWord{13, 11, 391}, + dictWord{145, 11, 76}, + dictWord{139, 11, 39}, + dictWord{134, 10, 84}, + dictWord{ + 4, + 0, + 914, + }, + dictWord{5, 0, 800}, + dictWord{133, 0, 852}, + dictWord{10, 0, 416}, + dictWord{141, 0, 115}, + dictWord{7, 0, 564}, + dictWord{142, 0, 168}, + dictWord{ + 4, + 0, + 918, + }, + dictWord{133, 0, 876}, + dictWord{134, 0, 1764}, + dictWord{152, 0, 3}, + dictWord{4, 0, 92}, + dictWord{5, 0, 274}, + dictWord{7, 11, 126}, + dictWord{136, 11, 84}, + dictWord{140, 10, 498}, + dictWord{136, 11, 790}, + dictWord{8, 0, 501}, + dictWord{5, 10, 986}, + dictWord{6, 10, 130}, + dictWord{7, 10, 1582}, + dictWord{ + 8, + 10, + 458, + }, + dictWord{10, 10, 101}, + dictWord{10, 10, 318}, + dictWord{138, 10, 823}, + dictWord{6, 11, 64}, + dictWord{12, 11, 377}, + dictWord{141, 11, 309}, + dictWord{ + 5, + 0, + 743, + }, + dictWord{138, 0, 851}, + dictWord{4, 0, 49}, + dictWord{7, 0, 280}, + dictWord{135, 0, 1633}, + dictWord{134, 0, 879}, + dictWord{136, 0, 47}, + dictWord{ + 7, + 10, + 1644, + }, + dictWord{137, 10, 129}, + dictWord{132, 0, 865}, + dictWord{134, 0, 1202}, + dictWord{9, 11, 34}, + dictWord{139, 11, 484}, + dictWord{135, 10, 997}, + dictWord{5, 0, 272}, + dictWord{5, 0, 908}, + dictWord{5, 0, 942}, + dictWord{8, 0, 197}, + dictWord{9, 0, 47}, + dictWord{11, 0, 538}, + dictWord{139, 0, 742}, + dictWord{ + 6, + 11, + 1700, + }, + dictWord{7, 11, 26}, + dictWord{7, 11, 293}, + dictWord{7, 11, 382}, + dictWord{7, 11, 1026}, + dictWord{7, 11, 1087}, + dictWord{7, 11, 2027}, + dictWord{ + 8, + 11, + 24, + }, + dictWord{8, 11, 114}, + dictWord{8, 11, 252}, + dictWord{8, 11, 727}, + dictWord{8, 11, 729}, + dictWord{9, 11, 30}, + dictWord{9, 11, 199}, + dictWord{9, 11, 231}, + dictWord{9, 11, 251}, + dictWord{9, 11, 334}, + dictWord{9, 11, 361}, + dictWord{9, 11, 488}, + dictWord{9, 11, 712}, + dictWord{10, 11, 55}, + dictWord{10, 11, 60}, + dictWord{ + 10, + 11, + 232, + }, + dictWord{10, 11, 332}, + dictWord{10, 11, 384}, + dictWord{10, 11, 396}, + dictWord{10, 11, 504}, + dictWord{10, 11, 542}, + dictWord{10, 11, 652}, + dictWord{11, 11, 20}, + dictWord{11, 11, 48}, + dictWord{11, 11, 207}, + dictWord{11, 11, 291}, + dictWord{11, 11, 298}, + dictWord{11, 11, 342}, + dictWord{ + 11, + 11, + 365, + }, + dictWord{11, 11, 394}, + dictWord{11, 11, 620}, + dictWord{11, 11, 705}, + dictWord{11, 11, 1017}, + dictWord{12, 11, 123}, + dictWord{12, 11, 340}, + dictWord{12, 11, 406}, + dictWord{12, 11, 643}, + dictWord{13, 11, 61}, + dictWord{13, 11, 269}, + dictWord{13, 11, 311}, + dictWord{13, 11, 319}, + dictWord{13, 11, 486}, + dictWord{14, 11, 234}, + dictWord{15, 11, 62}, + dictWord{15, 11, 85}, + dictWord{16, 11, 71}, + dictWord{18, 11, 119}, + dictWord{148, 11, 105}, + dictWord{ + 6, + 0, + 1455, + }, + dictWord{150, 11, 37}, + dictWord{135, 10, 1927}, + dictWord{135, 0, 1911}, + dictWord{137, 0, 891}, + dictWord{7, 10, 1756}, + dictWord{137, 10, 98}, + dictWord{7, 10, 1046}, + dictWord{139, 10, 160}, + dictWord{132, 0, 761}, + dictWord{6, 11, 379}, + dictWord{7, 11, 270}, + dictWord{7, 11, 1116}, + dictWord{ + 8, + 11, + 176, + }, + dictWord{8, 11, 183}, + dictWord{9, 11, 432}, + dictWord{9, 11, 661}, + dictWord{12, 11, 247}, + dictWord{12, 11, 617}, + dictWord{146, 11, 125}, + dictWord{ + 6, + 10, + 45, + }, + dictWord{7, 10, 433}, + dictWord{8, 10, 129}, + dictWord{9, 10, 21}, + dictWord{10, 10, 392}, + dictWord{11, 10, 79}, + dictWord{12, 10, 499}, + dictWord{ + 13, + 10, + 199, + }, + dictWord{141, 10, 451}, + dictWord{4, 0, 407}, + dictWord{5, 11, 792}, + dictWord{133, 11, 900}, + dictWord{132, 0, 560}, + dictWord{135, 0, 183}, + dictWord{ + 13, + 0, + 490, + }, + dictWord{7, 10, 558}, + dictWord{136, 10, 353}, + dictWord{4, 0, 475}, + dictWord{6, 0, 731}, + dictWord{11, 0, 35}, + dictWord{13, 0, 71}, + dictWord{13, 0, 177}, + dictWord{14, 0, 422}, + dictWord{133, 10, 785}, + dictWord{8, 10, 81}, + dictWord{9, 10, 189}, + dictWord{9, 10, 201}, + dictWord{11, 10, 478}, + dictWord{11, 10, 712}, + dictWord{141, 10, 338}, + dictWord{4, 0, 418}, + dictWord{4, 0, 819}, + dictWord{133, 10, 353}, + dictWord{151, 10, 26}, + dictWord{4, 11, 901}, + dictWord{ + 133, + 11, + 776, + }, + dictWord{132, 0, 575}, + dictWord{7, 0, 818}, + dictWord{16, 0, 92}, + dictWord{17, 0, 14}, + dictWord{17, 0, 45}, + dictWord{18, 0, 75}, + dictWord{148, 0, 18}, + dictWord{ + 6, + 0, + 222, + }, + dictWord{7, 0, 636}, + dictWord{7, 0, 1620}, + dictWord{8, 0, 409}, + dictWord{9, 0, 693}, + dictWord{139, 0, 77}, + dictWord{6, 10, 25}, + dictWord{7, 10, 855}, + dictWord{7, 10, 1258}, + dictWord{144, 10, 32}, + dictWord{6, 0, 1880}, + dictWord{6, 0, 1887}, + dictWord{6, 0, 1918}, + dictWord{6, 0, 1924}, + dictWord{9, 0, 967}, + dictWord{9, 0, 995}, + dictWord{9, 0, 1015}, + dictWord{12, 0, 826}, + dictWord{12, 0, 849}, + dictWord{12, 0, 857}, + dictWord{12, 0, 860}, + dictWord{12, 0, 886}, + dictWord{ + 12, + 0, + 932, + }, + dictWord{18, 0, 228}, + dictWord{18, 0, 231}, + dictWord{146, 0, 240}, + dictWord{134, 0, 633}, + dictWord{134, 0, 1308}, + dictWord{4, 11, 37}, + dictWord{ + 5, + 11, + 334, + }, + dictWord{135, 11, 1253}, + dictWord{10, 0, 86}, + dictWord{4, 10, 4}, + dictWord{7, 10, 1118}, + dictWord{7, 10, 1320}, + dictWord{7, 10, 1706}, + dictWord{ + 8, + 10, + 277, + }, + dictWord{9, 10, 622}, + dictWord{11, 10, 724}, + dictWord{12, 10, 350}, + dictWord{12, 10, 397}, + dictWord{13, 10, 28}, + dictWord{13, 10, 159}, + dictWord{ + 15, + 10, + 89, + }, + dictWord{18, 10, 5}, + dictWord{19, 10, 9}, + dictWord{20, 10, 34}, + dictWord{150, 10, 47}, + dictWord{132, 11, 508}, + dictWord{137, 11, 448}, + dictWord{ + 12, + 11, + 107, + }, + dictWord{146, 11, 31}, + dictWord{132, 0, 817}, + dictWord{134, 0, 663}, + dictWord{133, 0, 882}, + dictWord{134, 0, 914}, + dictWord{132, 11, 540}, + dictWord{132, 11, 533}, + dictWord{136, 11, 608}, + dictWord{8, 0, 885}, + dictWord{138, 0, 865}, + dictWord{132, 0, 426}, + dictWord{6, 0, 58}, + dictWord{7, 0, 745}, + dictWord{7, 0, 1969}, + dictWord{8, 0, 399}, + dictWord{8, 0, 675}, + dictWord{9, 0, 479}, + dictWord{9, 0, 731}, + dictWord{10, 0, 330}, + dictWord{10, 0, 593}, + dictWord{ + 10, + 0, + 817, + }, + dictWord{11, 0, 32}, + dictWord{11, 0, 133}, + dictWord{11, 0, 221}, + dictWord{145, 0, 68}, + dictWord{134, 10, 255}, + dictWord{7, 0, 102}, + dictWord{ + 137, + 0, + 538, + }, + dictWord{137, 10, 216}, + dictWord{7, 11, 253}, + dictWord{136, 11, 549}, + dictWord{135, 11, 912}, + dictWord{9, 10, 183}, + dictWord{139, 10, 286}, + dictWord{11, 10, 956}, + dictWord{151, 10, 3}, + dictWord{8, 11, 527}, + dictWord{18, 11, 60}, + dictWord{147, 11, 24}, + dictWord{4, 10, 536}, + dictWord{7, 10, 1141}, + dictWord{10, 10, 723}, + dictWord{139, 10, 371}, + dictWord{133, 11, 920}, + dictWord{7, 0, 876}, + dictWord{135, 10, 285}, + dictWord{135, 10, 560}, + dictWord{ + 132, + 10, + 690, + }, + dictWord{142, 11, 126}, + dictWord{11, 10, 33}, + dictWord{12, 10, 571}, + dictWord{149, 10, 1}, + dictWord{133, 0, 566}, + dictWord{9, 0, 139}, + dictWord{ + 10, + 0, + 399, + }, + dictWord{11, 0, 469}, + dictWord{12, 0, 634}, + dictWord{13, 0, 223}, + dictWord{132, 11, 483}, + dictWord{6, 0, 48}, + dictWord{135, 0, 63}, + dictWord{18, 0, 12}, + dictWord{7, 10, 1862}, + dictWord{12, 10, 491}, + dictWord{12, 10, 520}, + dictWord{13, 10, 383}, + dictWord{142, 10, 244}, + dictWord{135, 11, 1665}, + dictWord{132, 11, 448}, + dictWord{9, 11, 495}, + dictWord{146, 11, 104}, + dictWord{6, 0, 114}, + dictWord{7, 0, 1224}, + dictWord{7, 0, 1556}, + dictWord{136, 0, 3}, + dictWord{ + 4, + 10, + 190, + }, + dictWord{133, 10, 554}, + dictWord{8, 0, 576}, + dictWord{9, 0, 267}, + dictWord{133, 10, 1001}, + dictWord{133, 10, 446}, + dictWord{133, 0, 933}, + dictWord{139, 11, 1009}, + dictWord{8, 11, 653}, + dictWord{13, 11, 93}, + dictWord{147, 11, 14}, + dictWord{6, 0, 692}, + dictWord{6, 0, 821}, + dictWord{134, 0, 1077}, + dictWord{5, 11, 172}, + dictWord{135, 11, 801}, + dictWord{138, 0, 752}, + dictWord{4, 0, 375}, + dictWord{134, 0, 638}, + dictWord{134, 0, 1011}, + dictWord{ + 140, + 11, + 540, + }, + dictWord{9, 0, 96}, + dictWord{133, 11, 260}, + dictWord{139, 11, 587}, + dictWord{135, 10, 1231}, + dictWord{12, 0, 30}, + dictWord{13, 0, 148}, + dictWord{ + 14, + 0, + 87, + }, + dictWord{14, 0, 182}, + dictWord{16, 0, 42}, + dictWord{20, 0, 70}, + dictWord{132, 10, 304}, + dictWord{6, 0, 1398}, + dictWord{7, 0, 56}, + dictWord{7, 0, 1989}, + dictWord{8, 0, 337}, + dictWord{8, 0, 738}, + dictWord{9, 0, 600}, + dictWord{12, 0, 37}, + dictWord{13, 0, 447}, + dictWord{142, 0, 92}, + dictWord{138, 0, 666}, + dictWord{ + 5, + 0, + 394, + }, + dictWord{7, 0, 487}, + dictWord{136, 0, 246}, + dictWord{9, 0, 437}, + dictWord{6, 10, 53}, + dictWord{6, 10, 199}, + dictWord{7, 10, 1408}, + dictWord{8, 10, 32}, + dictWord{8, 10, 93}, + dictWord{10, 10, 397}, + dictWord{10, 10, 629}, + dictWord{11, 10, 593}, + dictWord{11, 10, 763}, + dictWord{13, 10, 326}, + dictWord{145, 10, 35}, + dictWord{134, 10, 105}, + dictWord{9, 0, 320}, + dictWord{10, 0, 506}, + dictWord{138, 10, 794}, + dictWord{7, 11, 57}, + dictWord{8, 11, 167}, + dictWord{8, 11, 375}, + dictWord{9, 11, 82}, + dictWord{9, 11, 561}, + dictWord{10, 11, 620}, + dictWord{10, 11, 770}, + dictWord{11, 10, 704}, + dictWord{141, 10, 396}, + dictWord{6, 0, 1003}, + dictWord{5, 10, 114}, + dictWord{5, 10, 255}, + dictWord{141, 10, 285}, + dictWord{7, 0, 866}, + dictWord{135, 0, 1163}, + dictWord{133, 11, 531}, + dictWord{ + 132, + 0, + 328, + }, + dictWord{7, 10, 2035}, + dictWord{8, 10, 19}, + dictWord{9, 10, 89}, + dictWord{138, 10, 831}, + dictWord{8, 11, 194}, + dictWord{136, 11, 756}, + dictWord{ + 136, + 0, + 1000, + }, + dictWord{5, 11, 453}, + dictWord{134, 11, 441}, + dictWord{4, 0, 101}, + dictWord{5, 0, 833}, + dictWord{7, 0, 1171}, + dictWord{136, 0, 744}, + dictWord{ + 133, + 0, + 726, + }, + dictWord{136, 10, 746}, + dictWord{138, 0, 176}, + dictWord{6, 0, 9}, + dictWord{6, 0, 397}, + dictWord{7, 0, 53}, + dictWord{7, 0, 1742}, + dictWord{10, 0, 632}, + dictWord{11, 0, 828}, + dictWord{140, 0, 146}, + dictWord{135, 11, 22}, + dictWord{145, 11, 64}, + dictWord{132, 0, 839}, + dictWord{11, 0, 417}, + dictWord{12, 0, 223}, + dictWord{140, 0, 265}, + dictWord{4, 11, 102}, + dictWord{7, 11, 815}, + dictWord{7, 11, 1699}, + dictWord{139, 11, 964}, + dictWord{5, 10, 955}, + dictWord{ + 136, + 10, + 814, + }, + dictWord{6, 0, 1931}, + dictWord{6, 0, 2007}, + dictWord{18, 0, 246}, + dictWord{146, 0, 247}, + dictWord{8, 0, 198}, + dictWord{11, 0, 29}, + dictWord{140, 0, 534}, + dictWord{135, 0, 1771}, + dictWord{6, 0, 846}, + dictWord{7, 11, 1010}, + dictWord{11, 11, 733}, + dictWord{11, 11, 759}, + dictWord{12, 11, 563}, + dictWord{ + 13, + 11, + 34, + }, + dictWord{14, 11, 101}, + dictWord{18, 11, 45}, + dictWord{146, 11, 129}, + dictWord{4, 0, 186}, + dictWord{5, 0, 157}, + dictWord{8, 0, 168}, + dictWord{138, 0, 6}, + dictWord{132, 11, 899}, + dictWord{133, 10, 56}, + dictWord{148, 10, 100}, + dictWord{133, 0, 875}, + dictWord{5, 0, 773}, + dictWord{5, 0, 991}, + dictWord{6, 0, 1635}, + dictWord{134, 0, 1788}, + dictWord{6, 0, 1274}, + dictWord{9, 0, 477}, + dictWord{141, 0, 78}, + dictWord{4, 0, 639}, + dictWord{7, 0, 111}, + dictWord{8, 0, 581}, + dictWord{ + 12, + 0, + 177, + }, + dictWord{6, 11, 52}, + dictWord{9, 11, 104}, + dictWord{9, 11, 559}, + dictWord{10, 10, 4}, + dictWord{10, 10, 13}, + dictWord{11, 10, 638}, + dictWord{ + 12, + 11, + 308, + }, + dictWord{19, 11, 87}, + dictWord{148, 10, 57}, + dictWord{132, 11, 604}, + dictWord{4, 11, 301}, + dictWord{133, 10, 738}, + dictWord{133, 10, 758}, + dictWord{134, 0, 1747}, + dictWord{7, 11, 1440}, + dictWord{11, 11, 854}, + dictWord{11, 11, 872}, + dictWord{11, 11, 921}, + dictWord{12, 11, 551}, + dictWord{ + 13, + 11, + 472, + }, + dictWord{142, 11, 367}, + dictWord{7, 0, 1364}, + dictWord{7, 0, 1907}, + dictWord{141, 0, 158}, + dictWord{134, 0, 873}, + dictWord{4, 0, 404}, + dictWord{ + 4, + 0, + 659, + }, + dictWord{7, 0, 552}, + dictWord{135, 0, 675}, + dictWord{135, 10, 1112}, + dictWord{139, 10, 328}, + dictWord{7, 11, 508}, + dictWord{137, 10, 133}, + dictWord{133, 0, 391}, + dictWord{5, 10, 110}, + dictWord{6, 10, 169}, + dictWord{6, 10, 1702}, + dictWord{7, 10, 400}, + dictWord{8, 10, 538}, + dictWord{9, 10, 184}, + dictWord{ + 9, + 10, + 524, + }, + dictWord{140, 10, 218}, + dictWord{6, 11, 310}, + dictWord{7, 11, 1849}, + dictWord{8, 11, 72}, + dictWord{8, 11, 272}, + dictWord{8, 11, 431}, + dictWord{ + 9, + 11, + 12, + }, + dictWord{9, 11, 351}, + dictWord{10, 11, 563}, + dictWord{10, 11, 630}, + dictWord{10, 11, 810}, + dictWord{11, 11, 367}, + dictWord{11, 11, 599}, + dictWord{11, 11, 686}, + dictWord{140, 11, 672}, + dictWord{5, 0, 540}, + dictWord{6, 0, 1697}, + dictWord{136, 0, 668}, + dictWord{132, 0, 883}, + dictWord{134, 0, 78}, + dictWord{12, 0, 628}, + dictWord{18, 0, 79}, + dictWord{6, 10, 133}, + dictWord{9, 10, 353}, + dictWord{139, 10, 993}, + dictWord{6, 11, 181}, + dictWord{7, 11, 537}, + dictWord{ + 8, + 11, + 64, + }, + dictWord{9, 11, 127}, + dictWord{10, 11, 496}, + dictWord{12, 11, 510}, + dictWord{141, 11, 384}, + dictWord{6, 10, 93}, + dictWord{7, 10, 1422}, + dictWord{ + 7, + 10, + 1851, + }, + dictWord{8, 10, 673}, + dictWord{9, 10, 529}, + dictWord{140, 10, 43}, + dictWord{137, 10, 371}, + dictWord{134, 0, 1460}, + dictWord{134, 0, 962}, + dictWord{4, 11, 244}, + dictWord{135, 11, 233}, + dictWord{9, 10, 25}, + dictWord{10, 10, 467}, + dictWord{138, 10, 559}, + dictWord{4, 10, 335}, + dictWord{ + 135, + 10, + 942, + }, + dictWord{133, 0, 460}, + dictWord{135, 11, 334}, + dictWord{134, 11, 1650}, + dictWord{4, 0, 199}, + dictWord{139, 0, 34}, + dictWord{5, 10, 601}, + dictWord{ + 8, + 10, + 39, + }, + dictWord{10, 10, 773}, + dictWord{11, 10, 84}, + dictWord{12, 10, 205}, + dictWord{142, 10, 1}, + dictWord{133, 10, 870}, + dictWord{134, 0, 388}, + dictWord{14, 0, 474}, + dictWord{148, 0, 120}, + dictWord{133, 11, 369}, + dictWord{139, 0, 271}, + dictWord{4, 0, 511}, + dictWord{9, 0, 333}, + dictWord{9, 0, 379}, + dictWord{ + 10, + 0, + 602, + }, + dictWord{11, 0, 441}, + dictWord{11, 0, 723}, + dictWord{11, 0, 976}, + dictWord{12, 0, 357}, + dictWord{132, 10, 181}, + dictWord{134, 0, 608}, + dictWord{134, 10, 1652}, + dictWord{22, 0, 49}, + dictWord{137, 11, 338}, + dictWord{140, 0, 988}, + dictWord{134, 0, 617}, + dictWord{5, 0, 938}, + dictWord{136, 0, 707}, + dictWord{132, 10, 97}, + dictWord{5, 10, 147}, + dictWord{6, 10, 286}, + dictWord{7, 10, 1362}, + dictWord{141, 10, 176}, + dictWord{6, 0, 756}, + dictWord{ + 134, + 0, + 1149, + }, + dictWord{133, 11, 896}, + dictWord{6, 10, 375}, + dictWord{7, 10, 169}, + dictWord{7, 10, 254}, + dictWord{136, 10, 780}, + dictWord{134, 0, 1583}, + dictWord{135, 10, 1447}, + dictWord{139, 0, 285}, + dictWord{7, 11, 1117}, + dictWord{8, 11, 393}, + dictWord{136, 11, 539}, + dictWord{135, 0, 344}, + dictWord{ + 6, + 0, + 469, + }, + dictWord{7, 0, 1709}, + dictWord{138, 0, 515}, + dictWord{5, 10, 629}, + dictWord{135, 10, 1549}, + dictWord{5, 11, 4}, + dictWord{5, 11, 810}, + dictWord{ + 6, + 11, + 13, + }, + dictWord{6, 11, 538}, + dictWord{6, 11, 1690}, + dictWord{6, 11, 1726}, + dictWord{7, 11, 499}, + dictWord{7, 11, 1819}, + dictWord{8, 11, 148}, + dictWord{ + 8, + 11, + 696, + }, + dictWord{8, 11, 791}, + dictWord{12, 11, 125}, + dictWord{13, 11, 54}, + dictWord{143, 11, 9}, + dictWord{135, 11, 1268}, + dictWord{137, 0, 404}, + dictWord{ + 132, + 0, + 500, + }, + dictWord{5, 0, 68}, + dictWord{134, 0, 383}, + dictWord{11, 0, 216}, + dictWord{139, 0, 340}, + dictWord{4, 11, 925}, + dictWord{5, 11, 803}, + dictWord{ + 8, + 11, + 698, + }, + dictWord{138, 11, 828}, + dictWord{4, 0, 337}, + dictWord{6, 0, 353}, + dictWord{7, 0, 1934}, + dictWord{8, 0, 488}, + dictWord{137, 0, 429}, + dictWord{7, 0, 236}, + dictWord{7, 0, 1795}, + dictWord{8, 0, 259}, + dictWord{9, 0, 135}, + dictWord{9, 0, 177}, + dictWord{9, 0, 860}, + dictWord{10, 0, 825}, + dictWord{11, 0, 115}, + dictWord{ + 11, + 0, + 370, + }, + dictWord{11, 0, 405}, + dictWord{11, 0, 604}, + dictWord{12, 0, 10}, + dictWord{12, 0, 667}, + dictWord{12, 0, 669}, + dictWord{13, 0, 76}, + dictWord{14, 0, 310}, + dictWord{15, 0, 76}, + dictWord{15, 0, 147}, + dictWord{148, 0, 23}, + dictWord{4, 0, 15}, + dictWord{4, 0, 490}, + dictWord{5, 0, 22}, + dictWord{6, 0, 244}, + dictWord{7, 0, 40}, + dictWord{7, 0, 200}, + dictWord{7, 0, 906}, + dictWord{7, 0, 1199}, + dictWord{9, 0, 616}, + dictWord{10, 0, 716}, + dictWord{11, 0, 635}, + dictWord{11, 0, 801}, + dictWord{ + 140, + 0, + 458, + }, + dictWord{12, 0, 756}, + dictWord{132, 10, 420}, + dictWord{134, 0, 1504}, + dictWord{6, 0, 757}, + dictWord{133, 11, 383}, + dictWord{6, 0, 1266}, + dictWord{ + 135, + 0, + 1735, + }, + dictWord{5, 0, 598}, + dictWord{7, 0, 791}, + dictWord{8, 0, 108}, + dictWord{9, 0, 123}, + dictWord{7, 10, 1570}, + dictWord{140, 10, 542}, + dictWord{ + 142, + 11, + 410, + }, + dictWord{9, 11, 660}, + dictWord{138, 11, 347}, +} diff --git a/vendor/github.com/andybalholm/brotli/symbol_list.go b/vendor/github.com/andybalholm/brotli/symbol_list.go new file mode 100644 index 0000000..c5cb49e --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/symbol_list.go @@ -0,0 +1,22 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Utilities for building Huffman decoding tables. */ + +type symbolList struct { + storage []uint16 + offset int +} + +func symbolListGet(sl symbolList, i int) uint16 { + return sl.storage[i+sl.offset] +} + +func symbolListPut(sl symbolList, i int, val uint16) { + sl.storage[i+sl.offset] = val +} diff --git a/vendor/github.com/andybalholm/brotli/transform.go b/vendor/github.com/andybalholm/brotli/transform.go new file mode 100644 index 0000000..d2c043a --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/transform.go @@ -0,0 +1,641 @@ +package brotli + +const ( + transformIdentity = 0 + transformOmitLast1 = 1 + transformOmitLast2 = 2 + transformOmitLast3 = 3 + transformOmitLast4 = 4 + transformOmitLast5 = 5 + transformOmitLast6 = 6 + transformOmitLast7 = 7 + transformOmitLast8 = 8 + transformOmitLast9 = 9 + transformUppercaseFirst = 10 + transformUppercaseAll = 11 + transformOmitFirst1 = 12 + transformOmitFirst2 = 13 + transformOmitFirst3 = 14 + transformOmitFirst4 = 15 + transformOmitFirst5 = 16 + transformOmitFirst6 = 17 + transformOmitFirst7 = 18 + transformOmitFirst8 = 19 + transformOmitFirst9 = 20 + transformShiftFirst = 21 + transformShiftAll = 22 + iota - 22 + numTransformTypes +) + +const transformsMaxCutOff = transformOmitLast9 + +type transforms struct { + prefix_suffix_size uint16 + prefix_suffix []byte + prefix_suffix_map []uint16 + num_transforms uint32 + transforms []byte + params []byte + cutOffTransforms [transformsMaxCutOff + 1]int16 +} + +func transformPrefixId(t *transforms, I int) byte { + return t.transforms[(I*3)+0] +} + +func transformType(t *transforms, I int) byte { + return t.transforms[(I*3)+1] +} + +func transformSuffixId(t *transforms, I int) byte { + return t.transforms[(I*3)+2] +} + +func transformPrefix(t *transforms, I int) []byte { + return t.prefix_suffix[t.prefix_suffix_map[transformPrefixId(t, I)]:] +} + +func transformSuffix(t *transforms, I int) []byte { + return t.prefix_suffix[t.prefix_suffix_map[transformSuffixId(t, I)]:] +} + +/* RFC 7932 transforms string data */ +const kPrefixSuffix string = "\001 \002, \010 of the \004 of \002s \001.\005 and \004 " + "in \001\"\004 to \002\">\001\n\002. \001]\005 for \003 a \006 " + "that \001'\006 with \006 from \004 by \001(\006. T" + "he \004 on \004 as \004 is \004ing \002\n\t\001:\003ed " + "\002=\"\004 at \003ly \001,\002='\005.com/\007. This \005" + " not \003er \003al \004ful \004ive \005less \004es" + "t \004ize \002\xc2\xa0\004ous \005 the \002e \000" + +var kPrefixSuffixMap = [50]uint16{ + 0x00, + 0x02, + 0x05, + 0x0E, + 0x13, + 0x16, + 0x18, + 0x1E, + 0x23, + 0x25, + 0x2A, + 0x2D, + 0x2F, + 0x32, + 0x34, + 0x3A, + 0x3E, + 0x45, + 0x47, + 0x4E, + 0x55, + 0x5A, + 0x5C, + 0x63, + 0x68, + 0x6D, + 0x72, + 0x77, + 0x7A, + 0x7C, + 0x80, + 0x83, + 0x88, + 0x8C, + 0x8E, + 0x91, + 0x97, + 0x9F, + 0xA5, + 0xA9, + 0xAD, + 0xB2, + 0xB7, + 0xBD, + 0xC2, + 0xC7, + 0xCA, + 0xCF, + 0xD5, + 0xD8, +} + +/* RFC 7932 transforms */ +var kTransformsData = []byte{ + 49, + transformIdentity, + 49, + 49, + transformIdentity, + 0, + 0, + transformIdentity, + 0, + 49, + transformOmitFirst1, + 49, + 49, + transformUppercaseFirst, + 0, + 49, + transformIdentity, + 47, + 0, + transformIdentity, + 49, + 4, + transformIdentity, + 0, + 49, + transformIdentity, + 3, + 49, + transformUppercaseFirst, + 49, + 49, + transformIdentity, + 6, + 49, + transformOmitFirst2, + 49, + 49, + transformOmitLast1, + 49, + 1, + transformIdentity, + 0, + 49, + transformIdentity, + 1, + 0, + transformUppercaseFirst, + 0, + 49, + transformIdentity, + 7, + 49, + transformIdentity, + 9, + 48, + transformIdentity, + 0, + 49, + transformIdentity, + 8, + 49, + transformIdentity, + 5, + 49, + transformIdentity, + 10, + 49, + transformIdentity, + 11, + 49, + transformOmitLast3, + 49, + 49, + transformIdentity, + 13, + 49, + transformIdentity, + 14, + 49, + transformOmitFirst3, + 49, + 49, + transformOmitLast2, + 49, + 49, + transformIdentity, + 15, + 49, + transformIdentity, + 16, + 0, + transformUppercaseFirst, + 49, + 49, + transformIdentity, + 12, + 5, + transformIdentity, + 49, + 0, + transformIdentity, + 1, + 49, + transformOmitFirst4, + 49, + 49, + transformIdentity, + 18, + 49, + transformIdentity, + 17, + 49, + transformIdentity, + 19, + 49, + transformIdentity, + 20, + 49, + transformOmitFirst5, + 49, + 49, + transformOmitFirst6, + 49, + 47, + transformIdentity, + 49, + 49, + transformOmitLast4, + 49, + 49, + transformIdentity, + 22, + 49, + transformUppercaseAll, + 49, + 49, + transformIdentity, + 23, + 49, + transformIdentity, + 24, + 49, + transformIdentity, + 25, + 49, + transformOmitLast7, + 49, + 49, + transformOmitLast1, + 26, + 49, + transformIdentity, + 27, + 49, + transformIdentity, + 28, + 0, + transformIdentity, + 12, + 49, + transformIdentity, + 29, + 49, + transformOmitFirst9, + 49, + 49, + transformOmitFirst7, + 49, + 49, + transformOmitLast6, + 49, + 49, + transformIdentity, + 21, + 49, + transformUppercaseFirst, + 1, + 49, + transformOmitLast8, + 49, + 49, + transformIdentity, + 31, + 49, + transformIdentity, + 32, + 47, + transformIdentity, + 3, + 49, + transformOmitLast5, + 49, + 49, + transformOmitLast9, + 49, + 0, + transformUppercaseFirst, + 1, + 49, + transformUppercaseFirst, + 8, + 5, + transformIdentity, + 21, + 49, + transformUppercaseAll, + 0, + 49, + transformUppercaseFirst, + 10, + 49, + transformIdentity, + 30, + 0, + transformIdentity, + 5, + 35, + transformIdentity, + 49, + 47, + transformIdentity, + 2, + 49, + transformUppercaseFirst, + 17, + 49, + transformIdentity, + 36, + 49, + transformIdentity, + 33, + 5, + transformIdentity, + 0, + 49, + transformUppercaseFirst, + 21, + 49, + transformUppercaseFirst, + 5, + 49, + transformIdentity, + 37, + 0, + transformIdentity, + 30, + 49, + transformIdentity, + 38, + 0, + transformUppercaseAll, + 0, + 49, + transformIdentity, + 39, + 0, + transformUppercaseAll, + 49, + 49, + transformIdentity, + 34, + 49, + transformUppercaseAll, + 8, + 49, + transformUppercaseFirst, + 12, + 0, + transformIdentity, + 21, + 49, + transformIdentity, + 40, + 0, + transformUppercaseFirst, + 12, + 49, + transformIdentity, + 41, + 49, + transformIdentity, + 42, + 49, + transformUppercaseAll, + 17, + 49, + transformIdentity, + 43, + 0, + transformUppercaseFirst, + 5, + 49, + transformUppercaseAll, + 10, + 0, + transformIdentity, + 34, + 49, + transformUppercaseFirst, + 33, + 49, + transformIdentity, + 44, + 49, + transformUppercaseAll, + 5, + 45, + transformIdentity, + 49, + 0, + transformIdentity, + 33, + 49, + transformUppercaseFirst, + 30, + 49, + transformUppercaseAll, + 30, + 49, + transformIdentity, + 46, + 49, + transformUppercaseAll, + 1, + 49, + transformUppercaseFirst, + 34, + 0, + transformUppercaseFirst, + 33, + 0, + transformUppercaseAll, + 30, + 0, + transformUppercaseAll, + 1, + 49, + transformUppercaseAll, + 33, + 49, + transformUppercaseAll, + 21, + 49, + transformUppercaseAll, + 12, + 0, + transformUppercaseAll, + 5, + 49, + transformUppercaseAll, + 34, + 0, + transformUppercaseAll, + 12, + 0, + transformUppercaseFirst, + 30, + 0, + transformUppercaseAll, + 34, + 0, + transformUppercaseFirst, + 34, +} + +var kBrotliTransforms = transforms{ + 217, + []byte(kPrefixSuffix), + kPrefixSuffixMap[:], + 121, + kTransformsData, + nil, /* no extra parameters */ + [transformsMaxCutOff + 1]int16{0, 12, 27, 23, 42, 63, 56, 48, 59, 64}, +} + +func getTransforms() *transforms { + return &kBrotliTransforms +} + +func toUpperCase(p []byte) int { + if p[0] < 0xC0 { + if p[0] >= 'a' && p[0] <= 'z' { + p[0] ^= 32 + } + + return 1 + } + + /* An overly simplified uppercasing model for UTF-8. */ + if p[0] < 0xE0 { + p[1] ^= 32 + return 2 + } + + /* An arbitrary transform for three byte characters. */ + p[2] ^= 5 + + return 3 +} + +func shiftTransform(word []byte, word_len int, parameter uint16) int { + /* Limited sign extension: scalar < (1 << 24). */ + var scalar uint32 = (uint32(parameter) & 0x7FFF) + (0x1000000 - (uint32(parameter) & 0x8000)) + if word[0] < 0x80 { + /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */ + scalar += uint32(word[0]) + + word[0] = byte(scalar & 0x7F) + return 1 + } else if word[0] < 0xC0 { + /* Continuation / 10AAAAAA. */ + return 1 + } else if word[0] < 0xE0 { + /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */ + if word_len < 2 { + return 1 + } + scalar += uint32(word[1]&0x3F | (word[0]&0x1F)<<6) + word[0] = byte(0xC0 | (scalar>>6)&0x1F) + word[1] = byte(uint32(word[1]&0xC0) | scalar&0x3F) + return 2 + } else if word[0] < 0xF0 { + /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */ + if word_len < 3 { + return word_len + } + scalar += uint32(word[2])&0x3F | uint32(word[1]&0x3F)<<6 | uint32(word[0]&0x0F)<<12 + word[0] = byte(0xE0 | (scalar>>12)&0x0F) + word[1] = byte(uint32(word[1]&0xC0) | (scalar>>6)&0x3F) + word[2] = byte(uint32(word[2]&0xC0) | scalar&0x3F) + return 3 + } else if word[0] < 0xF8 { + /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */ + if word_len < 4 { + return word_len + } + scalar += uint32(word[3])&0x3F | uint32(word[2]&0x3F)<<6 | uint32(word[1]&0x3F)<<12 | uint32(word[0]&0x07)<<18 + word[0] = byte(0xF0 | (scalar>>18)&0x07) + word[1] = byte(uint32(word[1]&0xC0) | (scalar>>12)&0x3F) + word[2] = byte(uint32(word[2]&0xC0) | (scalar>>6)&0x3F) + word[3] = byte(uint32(word[3]&0xC0) | scalar&0x3F) + return 4 + } + + return 1 +} + +func transformDictionaryWord(dst []byte, word []byte, len int, trans *transforms, transform_idx int) int { + var idx int = 0 + var prefix []byte = transformPrefix(trans, transform_idx) + var type_ byte = transformType(trans, transform_idx) + var suffix []byte = transformSuffix(trans, transform_idx) + { + var prefix_len int = int(prefix[0]) + prefix = prefix[1:] + for { + tmp1 := prefix_len + prefix_len-- + if tmp1 == 0 { + break + } + dst[idx] = prefix[0] + idx++ + prefix = prefix[1:] + } + } + { + var t int = int(type_) + var i int = 0 + if t <= transformOmitLast9 { + len -= t + } else if t >= transformOmitFirst1 && t <= transformOmitFirst9 { + var skip int = t - (transformOmitFirst1 - 1) + word = word[skip:] + len -= skip + } + + for i < len { + dst[idx] = word[i] + idx++ + i++ + } + if t == transformUppercaseFirst { + toUpperCase(dst[idx-len:]) + } else if t == transformUppercaseAll { + var uppercase []byte = dst + uppercase = uppercase[idx-len:] + for len > 0 { + var step int = toUpperCase(uppercase) + uppercase = uppercase[step:] + len -= step + } + } else if t == transformShiftFirst { + var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 + shiftTransform(dst[idx-len:], int(len), param) + } else if t == transformShiftAll { + var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 + var shift []byte = dst + shift = shift[idx-len:] + for len > 0 { + var step int = shiftTransform(shift, int(len), param) + shift = shift[step:] + len -= step + } + } + } + { + var suffix_len int = int(suffix[0]) + suffix = suffix[1:] + for { + tmp2 := suffix_len + suffix_len-- + if tmp2 == 0 { + break + } + dst[idx] = suffix[0] + idx++ + suffix = suffix[1:] + } + return idx + } +} diff --git a/vendor/github.com/andybalholm/brotli/utf8_util.go b/vendor/github.com/andybalholm/brotli/utf8_util.go new file mode 100644 index 0000000..3244247 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/utf8_util.go @@ -0,0 +1,70 @@ +package brotli + +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Heuristics for deciding about the UTF8-ness of strings. */ + +const kMinUTF8Ratio float64 = 0.75 + +/* Returns 1 if at least min_fraction of the bytes between pos and + pos + length in the (data, mask) ring-buffer is UTF8-encoded, otherwise + returns 0. */ +func parseAsUTF8(symbol *int, input []byte, size uint) uint { + /* ASCII */ + if input[0]&0x80 == 0 { + *symbol = int(input[0]) + if *symbol > 0 { + return 1 + } + } + + /* 2-byte UTF8 */ + if size > 1 && input[0]&0xE0 == 0xC0 && input[1]&0xC0 == 0x80 { + *symbol = (int(input[0])&0x1F)<<6 | int(input[1])&0x3F + if *symbol > 0x7F { + return 2 + } + } + + /* 3-byte UFT8 */ + if size > 2 && input[0]&0xF0 == 0xE0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 { + *symbol = (int(input[0])&0x0F)<<12 | (int(input[1])&0x3F)<<6 | int(input[2])&0x3F + if *symbol > 0x7FF { + return 3 + } + } + + /* 4-byte UFT8 */ + if size > 3 && input[0]&0xF8 == 0xF0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 && input[3]&0xC0 == 0x80 { + *symbol = (int(input[0])&0x07)<<18 | (int(input[1])&0x3F)<<12 | (int(input[2])&0x3F)<<6 | int(input[3])&0x3F + if *symbol > 0xFFFF && *symbol <= 0x10FFFF { + return 4 + } + } + + /* Not UTF8, emit a special symbol above the UTF8-code space */ + *symbol = 0x110000 | int(input[0]) + + return 1 +} + +/* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/ +func isMostlyUTF8(data []byte, pos uint, mask uint, length uint, min_fraction float64) bool { + var size_utf8 uint = 0 + var i uint = 0 + for i < length { + var symbol int + current_data := data[(pos+i)&mask:] + var bytes_read uint = parseAsUTF8(&symbol, current_data, length-i) + i += bytes_read + if symbol < 0x110000 { + size_utf8 += bytes_read + } + } + + return float64(size_utf8) > min_fraction*float64(length) +} diff --git a/vendor/github.com/andybalholm/brotli/util.go b/vendor/github.com/andybalholm/brotli/util.go new file mode 100644 index 0000000..a84553a --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/util.go @@ -0,0 +1,7 @@ +package brotli + +func assert(cond bool) { + if !cond { + panic("assertion failure") + } +} diff --git a/vendor/github.com/andybalholm/brotli/write_bits.go b/vendor/github.com/andybalholm/brotli/write_bits.go new file mode 100644 index 0000000..8729901 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/write_bits.go @@ -0,0 +1,52 @@ +package brotli + +import "encoding/binary" + +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Write bits into a byte array. */ + +/* This function writes bits into bytes in increasing addresses, and within + a byte least-significant-bit first. + + The function can write up to 56 bits in one go with WriteBits + Example: let's assume that 3 bits (Rs below) have been written already: + + BYTE-0 BYTE+1 BYTE+2 + + 0000 0RRR 0000 0000 0000 0000 + + Now, we could write 5 or less bits in MSB by just sifting by 3 + and OR'ing to BYTE-0. + + For n bits, we take the last 5 bits, OR that with high bits in BYTE-0, + and locate the rest in BYTE+1, BYTE+2, etc. */ +func writeBits(n_bits uint, bits uint64, pos *uint, array []byte) { + /* This branch of the code can write up to 56 bits at a time, + 7 bits are lost by being perhaps already in *p and at least + 1 bit is needed to initialize the bit-stream ahead (i.e. if 7 + bits are in *p and we write 57 bits, then the next write will + access a byte that was never initialized). */ + p := array[*pos>>3:] + v := uint64(p[0]) + v |= bits << (*pos & 7) + binary.LittleEndian.PutUint64(p, v) + *pos += n_bits +} + +func writeSingleBit(bit bool, pos *uint, array []byte) { + if bit { + writeBits(1, 1, pos, array) + } else { + writeBits(1, 0, pos, array) + } +} + +func writeBitsPrepareStorage(pos uint, array []byte) { + assert(pos&7 == 0) + array[pos>>3] = 0 +} diff --git a/vendor/github.com/andybalholm/brotli/writer.go b/vendor/github.com/andybalholm/brotli/writer.go new file mode 100644 index 0000000..8a68811 --- /dev/null +++ b/vendor/github.com/andybalholm/brotli/writer.go @@ -0,0 +1,162 @@ +package brotli + +import ( + "errors" + "io" + + "github.com/andybalholm/brotli/matchfinder" +) + +const ( + BestSpeed = 0 + BestCompression = 11 + DefaultCompression = 6 +) + +// WriterOptions configures Writer. +type WriterOptions struct { + // Quality controls the compression-speed vs compression-density trade-offs. + // The higher the quality, the slower the compression. Range is 0 to 11. + Quality int + // LGWin is the base 2 logarithm of the sliding window size. + // Range is 10 to 24. 0 indicates automatic configuration based on Quality. + LGWin int +} + +var ( + errEncode = errors.New("brotli: encode error") + errWriterClosed = errors.New("brotli: Writer is closed") +) + +// Writes to the returned writer are compressed and written to dst. +// It is the caller's responsibility to call Close on the Writer when done. +// Writes may be buffered and not flushed until Close. +func NewWriter(dst io.Writer) *Writer { + return NewWriterLevel(dst, DefaultCompression) +} + +// NewWriterLevel is like NewWriter but specifies the compression level instead +// of assuming DefaultCompression. +// The compression level can be DefaultCompression or any integer value between +// BestSpeed and BestCompression inclusive. +func NewWriterLevel(dst io.Writer, level int) *Writer { + return NewWriterOptions(dst, WriterOptions{ + Quality: level, + }) +} + +// NewWriterOptions is like NewWriter but specifies WriterOptions +func NewWriterOptions(dst io.Writer, options WriterOptions) *Writer { + w := new(Writer) + w.options = options + w.Reset(dst) + return w +} + +// Reset discards the Writer's state and makes it equivalent to the result of +// its original state from NewWriter or NewWriterLevel, but writing to dst +// instead. This permits reusing a Writer rather than allocating a new one. +func (w *Writer) Reset(dst io.Writer) { + encoderInitState(w) + w.params.quality = w.options.Quality + if w.options.LGWin > 0 { + w.params.lgwin = uint(w.options.LGWin) + } + w.dst = dst + w.err = nil +} + +func (w *Writer) writeChunk(p []byte, op int) (n int, err error) { + if w.dst == nil { + return 0, errWriterClosed + } + if w.err != nil { + return 0, w.err + } + + for { + availableIn := uint(len(p)) + nextIn := p + success := encoderCompressStream(w, op, &availableIn, &nextIn) + bytesConsumed := len(p) - int(availableIn) + p = p[bytesConsumed:] + n += bytesConsumed + if !success { + return n, errEncode + } + + if len(p) == 0 || w.err != nil { + return n, w.err + } + } +} + +// Flush outputs encoded data for all input provided to Write. The resulting +// output can be decoded to match all input before Flush, but the stream is +// not yet complete until after Close. +// Flush has a negative impact on compression. +func (w *Writer) Flush() error { + _, err := w.writeChunk(nil, operationFlush) + return err +} + +// Close flushes remaining data to the decorated writer. +func (w *Writer) Close() error { + // If stream is already closed, it is reported by `writeChunk`. + _, err := w.writeChunk(nil, operationFinish) + w.dst = nil + return err +} + +// Write implements io.Writer. Flush or Close must be called to ensure that the +// encoded bytes are actually flushed to the underlying Writer. +func (w *Writer) Write(p []byte) (n int, err error) { + return w.writeChunk(p, operationProcess) +} + +type nopCloser struct { + io.Writer +} + +func (nopCloser) Close() error { return nil } + +// NewWriterV2 is like NewWriterLevel, but it uses the new implementation +// based on the matchfinder package. It currently supports up to level 7; +// if a higher level is specified, level 7 will be used. +func NewWriterV2(dst io.Writer, level int) *matchfinder.Writer { + var mf matchfinder.MatchFinder + if level < 2 { + mf = matchfinder.M0{Lazy: level == 1} + } else { + hashLen := 6 + if level >= 6 { + hashLen = 5 + } + chainLen := 64 + switch level { + case 2: + chainLen = 0 + case 3: + chainLen = 1 + case 4: + chainLen = 2 + case 5: + chainLen = 4 + case 6: + chainLen = 8 + } + mf = &matchfinder.M4{ + MaxDistance: 1 << 20, + ChainLength: chainLen, + HashLen: hashLen, + DistanceBitCost: 57, + } + } + + return &matchfinder.Writer{ + Dest: dst, + MatchFinder: mf, + Encoder: &Encoder{}, + BlockSize: 1 << 16, + } +} diff --git a/vendor/github.com/cenkalti/backoff/v4/.gitignore b/vendor/github.com/cenkalti/backoff/v4/.gitignore new file mode 100644 index 0000000..50d95c5 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe + +# IDEs +.idea/ diff --git a/vendor/github.com/cenkalti/backoff/v4/LICENSE b/vendor/github.com/cenkalti/backoff/v4/LICENSE new file mode 100644 index 0000000..89b8179 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Cenk Altı + +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/cenkalti/backoff/v4/README.md b/vendor/github.com/cenkalti/backoff/v4/README.md new file mode 100644 index 0000000..9433004 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/README.md @@ -0,0 +1,30 @@ +# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Coverage Status][coveralls image]][coveralls] + +This is a Go port of the exponential backoff algorithm from [Google's HTTP Client Library for Java][google-http-java-client]. + +[Exponential backoff][exponential backoff wiki] +is an algorithm that uses feedback to multiplicatively decrease the rate of some process, +in order to gradually find an acceptable rate. +The retries exponentially increase and stop increasing when a certain threshold is met. + +## Usage + +Import path is `github.com/cenkalti/backoff/v4`. Please note the version part at the end. + +Use https://pkg.go.dev/github.com/cenkalti/backoff/v4 to view the documentation. + +## Contributing + +* I would like to keep this library as small as possible. +* Please don't send a PR without opening an issue and discussing it first. +* If proposed change is not a common use case, I will probably not accept it. + +[godoc]: https://pkg.go.dev/github.com/cenkalti/backoff/v4 +[godoc image]: https://godoc.org/github.com/cenkalti/backoff?status.png +[coveralls]: https://coveralls.io/github/cenkalti/backoff?branch=master +[coveralls image]: https://coveralls.io/repos/github/cenkalti/backoff/badge.svg?branch=master + +[google-http-java-client]: https://github.com/google/google-http-java-client/blob/da1aa993e90285ec18579f1553339b00e19b3ab5/google-http-client/src/main/java/com/google/api/client/util/ExponentialBackOff.java +[exponential backoff wiki]: http://en.wikipedia.org/wiki/Exponential_backoff + +[advanced example]: https://pkg.go.dev/github.com/cenkalti/backoff/v4?tab=doc#pkg-examples diff --git a/vendor/github.com/cenkalti/backoff/v4/backoff.go b/vendor/github.com/cenkalti/backoff/v4/backoff.go new file mode 100644 index 0000000..3676ee4 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/backoff.go @@ -0,0 +1,66 @@ +// Package backoff implements backoff algorithms for retrying operations. +// +// Use Retry function for retrying operations that may fail. +// If Retry does not meet your needs, +// copy/paste the function into your project and modify as you wish. +// +// There is also Ticker type similar to time.Ticker. +// You can use it if you need to work with channels. +// +// See Examples section below for usage examples. +package backoff + +import "time" + +// BackOff is a backoff policy for retrying an operation. +type BackOff interface { + // NextBackOff returns the duration to wait before retrying the operation, + // or backoff. Stop to indicate that no more retries should be made. + // + // Example usage: + // + // duration := backoff.NextBackOff(); + // if (duration == backoff.Stop) { + // // Do not retry operation. + // } else { + // // Sleep for duration and retry operation. + // } + // + NextBackOff() time.Duration + + // Reset to initial state. + Reset() +} + +// Stop indicates that no more retries should be made for use in NextBackOff(). +const Stop time.Duration = -1 + +// ZeroBackOff is a fixed backoff policy whose backoff time is always zero, +// meaning that the operation is retried immediately without waiting, indefinitely. +type ZeroBackOff struct{} + +func (b *ZeroBackOff) Reset() {} + +func (b *ZeroBackOff) NextBackOff() time.Duration { return 0 } + +// StopBackOff is a fixed backoff policy that always returns backoff.Stop for +// NextBackOff(), meaning that the operation should never be retried. +type StopBackOff struct{} + +func (b *StopBackOff) Reset() {} + +func (b *StopBackOff) NextBackOff() time.Duration { return Stop } + +// ConstantBackOff is a backoff policy that always returns the same backoff delay. +// This is in contrast to an exponential backoff policy, +// which returns a delay that grows longer as you call NextBackOff() over and over again. +type ConstantBackOff struct { + Interval time.Duration +} + +func (b *ConstantBackOff) Reset() {} +func (b *ConstantBackOff) NextBackOff() time.Duration { return b.Interval } + +func NewConstantBackOff(d time.Duration) *ConstantBackOff { + return &ConstantBackOff{Interval: d} +} diff --git a/vendor/github.com/cenkalti/backoff/v4/context.go b/vendor/github.com/cenkalti/backoff/v4/context.go new file mode 100644 index 0000000..4848233 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/context.go @@ -0,0 +1,62 @@ +package backoff + +import ( + "context" + "time" +) + +// BackOffContext is a backoff policy that stops retrying after the context +// is canceled. +type BackOffContext interface { // nolint: golint + BackOff + Context() context.Context +} + +type backOffContext struct { + BackOff + ctx context.Context +} + +// WithContext returns a BackOffContext with context ctx +// +// ctx must not be nil +func WithContext(b BackOff, ctx context.Context) BackOffContext { // nolint: golint + if ctx == nil { + panic("nil context") + } + + if b, ok := b.(*backOffContext); ok { + return &backOffContext{ + BackOff: b.BackOff, + ctx: ctx, + } + } + + return &backOffContext{ + BackOff: b, + ctx: ctx, + } +} + +func getContext(b BackOff) context.Context { + if cb, ok := b.(BackOffContext); ok { + return cb.Context() + } + if tb, ok := b.(*backOffTries); ok { + return getContext(tb.delegate) + } + return context.Background() +} + +func (b *backOffContext) Context() context.Context { + return b.ctx +} + +func (b *backOffContext) NextBackOff() time.Duration { + select { + case <-b.ctx.Done(): + return Stop + default: + return b.BackOff.NextBackOff() + } +} diff --git a/vendor/github.com/cenkalti/backoff/v4/exponential.go b/vendor/github.com/cenkalti/backoff/v4/exponential.go new file mode 100644 index 0000000..aac99f1 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/exponential.go @@ -0,0 +1,216 @@ +package backoff + +import ( + "math/rand" + "time" +) + +/* +ExponentialBackOff is a backoff implementation that increases the backoff +period for each retry attempt using a randomization function that grows exponentially. + +NextBackOff() is calculated using the following formula: + + randomized interval = + RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor]) + +In other words NextBackOff() will range between the randomization factor +percentage below and above the retry interval. + +For example, given the following parameters: + + RetryInterval = 2 + RandomizationFactor = 0.5 + Multiplier = 2 + +the actual backoff period used in the next retry attempt will range between 1 and 3 seconds, +multiplied by the exponential, that is, between 2 and 6 seconds. + +Note: MaxInterval caps the RetryInterval and not the randomized interval. + +If the time elapsed since an ExponentialBackOff instance is created goes past the +MaxElapsedTime, then the method NextBackOff() starts returning backoff.Stop. + +The elapsed time can be reset by calling Reset(). + +Example: Given the following default arguments, for 10 tries the sequence will be, +and assuming we go over the MaxElapsedTime on the 10th try: + + Request # RetryInterval (seconds) Randomized Interval (seconds) + + 1 0.5 [0.25, 0.75] + 2 0.75 [0.375, 1.125] + 3 1.125 [0.562, 1.687] + 4 1.687 [0.8435, 2.53] + 5 2.53 [1.265, 3.795] + 6 3.795 [1.897, 5.692] + 7 5.692 [2.846, 8.538] + 8 8.538 [4.269, 12.807] + 9 12.807 [6.403, 19.210] + 10 19.210 backoff.Stop + +Note: Implementation is not thread-safe. +*/ +type ExponentialBackOff struct { + InitialInterval time.Duration + RandomizationFactor float64 + Multiplier float64 + MaxInterval time.Duration + // After MaxElapsedTime the ExponentialBackOff returns Stop. + // It never stops if MaxElapsedTime == 0. + MaxElapsedTime time.Duration + Stop time.Duration + Clock Clock + + currentInterval time.Duration + startTime time.Time +} + +// Clock is an interface that returns current time for BackOff. +type Clock interface { + Now() time.Time +} + +// ExponentialBackOffOpts is a function type used to configure ExponentialBackOff options. +type ExponentialBackOffOpts func(*ExponentialBackOff) + +// Default values for ExponentialBackOff. +const ( + DefaultInitialInterval = 500 * time.Millisecond + DefaultRandomizationFactor = 0.5 + DefaultMultiplier = 1.5 + DefaultMaxInterval = 60 * time.Second + DefaultMaxElapsedTime = 15 * time.Minute +) + +// NewExponentialBackOff creates an instance of ExponentialBackOff using default values. +func NewExponentialBackOff(opts ...ExponentialBackOffOpts) *ExponentialBackOff { + b := &ExponentialBackOff{ + InitialInterval: DefaultInitialInterval, + RandomizationFactor: DefaultRandomizationFactor, + Multiplier: DefaultMultiplier, + MaxInterval: DefaultMaxInterval, + MaxElapsedTime: DefaultMaxElapsedTime, + Stop: Stop, + Clock: SystemClock, + } + for _, fn := range opts { + fn(b) + } + b.Reset() + return b +} + +// WithInitialInterval sets the initial interval between retries. +func WithInitialInterval(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.InitialInterval = duration + } +} + +// WithRandomizationFactor sets the randomization factor to add jitter to intervals. +func WithRandomizationFactor(randomizationFactor float64) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.RandomizationFactor = randomizationFactor + } +} + +// WithMultiplier sets the multiplier for increasing the interval after each retry. +func WithMultiplier(multiplier float64) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Multiplier = multiplier + } +} + +// WithMaxInterval sets the maximum interval between retries. +func WithMaxInterval(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.MaxInterval = duration + } +} + +// WithMaxElapsedTime sets the maximum total time for retries. +func WithMaxElapsedTime(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.MaxElapsedTime = duration + } +} + +// WithRetryStopDuration sets the duration after which retries should stop. +func WithRetryStopDuration(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Stop = duration + } +} + +// WithClockProvider sets the clock used to measure time. +func WithClockProvider(clock Clock) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Clock = clock + } +} + +type systemClock struct{} + +func (t systemClock) Now() time.Time { + return time.Now() +} + +// SystemClock implements Clock interface that uses time.Now(). +var SystemClock = systemClock{} + +// Reset the interval back to the initial retry interval and restarts the timer. +// Reset must be called before using b. +func (b *ExponentialBackOff) Reset() { + b.currentInterval = b.InitialInterval + b.startTime = b.Clock.Now() +} + +// NextBackOff calculates the next backoff interval using the formula: +// Randomized interval = RetryInterval * (1 ± RandomizationFactor) +func (b *ExponentialBackOff) NextBackOff() time.Duration { + // Make sure we have not gone over the maximum elapsed time. + elapsed := b.GetElapsedTime() + next := getRandomValueFromInterval(b.RandomizationFactor, rand.Float64(), b.currentInterval) + b.incrementCurrentInterval() + if b.MaxElapsedTime != 0 && elapsed+next > b.MaxElapsedTime { + return b.Stop + } + return next +} + +// GetElapsedTime returns the elapsed time since an ExponentialBackOff instance +// is created and is reset when Reset() is called. +// +// The elapsed time is computed using time.Now().UnixNano(). It is +// safe to call even while the backoff policy is used by a running +// ticker. +func (b *ExponentialBackOff) GetElapsedTime() time.Duration { + return b.Clock.Now().Sub(b.startTime) +} + +// Increments the current interval by multiplying it with the multiplier. +func (b *ExponentialBackOff) incrementCurrentInterval() { + // Check for overflow, if overflow is detected set the current interval to the max interval. + if float64(b.currentInterval) >= float64(b.MaxInterval)/b.Multiplier { + b.currentInterval = b.MaxInterval + } else { + b.currentInterval = time.Duration(float64(b.currentInterval) * b.Multiplier) + } +} + +// Returns a random value from the following interval: +// [currentInterval - randomizationFactor * currentInterval, currentInterval + randomizationFactor * currentInterval]. +func getRandomValueFromInterval(randomizationFactor, random float64, currentInterval time.Duration) time.Duration { + if randomizationFactor == 0 { + return currentInterval // make sure no randomness is used when randomizationFactor is 0. + } + var delta = randomizationFactor * float64(currentInterval) + var minInterval = float64(currentInterval) - delta + var maxInterval = float64(currentInterval) + delta + + // Get a random value from the range [minInterval, maxInterval]. + // The formula used below has a +1 because if the minInterval is 1 and the maxInterval is 3 then + // we want a 33% chance for selecting either 1, 2 or 3. + return time.Duration(minInterval + (random * (maxInterval - minInterval + 1))) +} diff --git a/vendor/github.com/cenkalti/backoff/v4/retry.go b/vendor/github.com/cenkalti/backoff/v4/retry.go new file mode 100644 index 0000000..b9c0c51 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/retry.go @@ -0,0 +1,146 @@ +package backoff + +import ( + "errors" + "time" +) + +// An OperationWithData is executing by RetryWithData() or RetryNotifyWithData(). +// The operation will be retried using a backoff policy if it returns an error. +type OperationWithData[T any] func() (T, error) + +// An Operation is executing by Retry() or RetryNotify(). +// The operation will be retried using a backoff policy if it returns an error. +type Operation func() error + +func (o Operation) withEmptyData() OperationWithData[struct{}] { + return func() (struct{}, error) { + return struct{}{}, o() + } +} + +// Notify is a notify-on-error function. It receives an operation error and +// backoff delay if the operation failed (with an error). +// +// NOTE that if the backoff policy stated to stop retrying, +// the notify function isn't called. +type Notify func(error, time.Duration) + +// Retry the operation o until it does not return error or BackOff stops. +// o is guaranteed to be run at least once. +// +// If o returns a *PermanentError, the operation is not retried, and the +// wrapped error is returned. +// +// Retry sleeps the goroutine for the duration returned by BackOff after a +// failed operation returns. +func Retry(o Operation, b BackOff) error { + return RetryNotify(o, b, nil) +} + +// RetryWithData is like Retry but returns data in the response too. +func RetryWithData[T any](o OperationWithData[T], b BackOff) (T, error) { + return RetryNotifyWithData(o, b, nil) +} + +// RetryNotify calls notify function with the error and wait duration +// for each failed attempt before sleep. +func RetryNotify(operation Operation, b BackOff, notify Notify) error { + return RetryNotifyWithTimer(operation, b, notify, nil) +} + +// RetryNotifyWithData is like RetryNotify but returns data in the response too. +func RetryNotifyWithData[T any](operation OperationWithData[T], b BackOff, notify Notify) (T, error) { + return doRetryNotify(operation, b, notify, nil) +} + +// RetryNotifyWithTimer calls notify function with the error and wait duration using the given Timer +// for each failed attempt before sleep. +// A default timer that uses system timer is used when nil is passed. +func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer) error { + _, err := doRetryNotify(operation.withEmptyData(), b, notify, t) + return err +} + +// RetryNotifyWithTimerAndData is like RetryNotifyWithTimer but returns data in the response too. +func RetryNotifyWithTimerAndData[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) { + return doRetryNotify(operation, b, notify, t) +} + +func doRetryNotify[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) { + var ( + err error + next time.Duration + res T + ) + if t == nil { + t = &defaultTimer{} + } + + defer func() { + t.Stop() + }() + + ctx := getContext(b) + + b.Reset() + for { + res, err = operation() + if err == nil { + return res, nil + } + + var permanent *PermanentError + if errors.As(err, &permanent) { + return res, permanent.Err + } + + if next = b.NextBackOff(); next == Stop { + if cerr := ctx.Err(); cerr != nil { + return res, cerr + } + + return res, err + } + + if notify != nil { + notify(err, next) + } + + t.Start(next) + + select { + case <-ctx.Done(): + return res, ctx.Err() + case <-t.C(): + } + } +} + +// PermanentError signals that the operation should not be retried. +type PermanentError struct { + Err error +} + +func (e *PermanentError) Error() string { + return e.Err.Error() +} + +func (e *PermanentError) Unwrap() error { + return e.Err +} + +func (e *PermanentError) Is(target error) bool { + _, ok := target.(*PermanentError) + return ok +} + +// Permanent wraps the given err in a *PermanentError. +func Permanent(err error) error { + if err == nil { + return nil + } + return &PermanentError{ + Err: err, + } +} diff --git a/vendor/github.com/cenkalti/backoff/v4/ticker.go b/vendor/github.com/cenkalti/backoff/v4/ticker.go new file mode 100644 index 0000000..df9d68b --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/ticker.go @@ -0,0 +1,97 @@ +package backoff + +import ( + "context" + "sync" + "time" +) + +// Ticker holds a channel that delivers `ticks' of a clock at times reported by a BackOff. +// +// Ticks will continue to arrive when the previous operation is still running, +// so operations that take a while to fail could run in quick succession. +type Ticker struct { + C <-chan time.Time + c chan time.Time + b BackOff + ctx context.Context + timer Timer + stop chan struct{} + stopOnce sync.Once +} + +// NewTicker returns a new Ticker containing a channel that will send +// the time at times specified by the BackOff argument. Ticker is +// guaranteed to tick at least once. The channel is closed when Stop +// method is called or BackOff stops. It is not safe to manipulate the +// provided backoff policy (notably calling NextBackOff or Reset) +// while the ticker is running. +func NewTicker(b BackOff) *Ticker { + return NewTickerWithTimer(b, &defaultTimer{}) +} + +// NewTickerWithTimer returns a new Ticker with a custom timer. +// A default timer that uses system timer is used when nil is passed. +func NewTickerWithTimer(b BackOff, timer Timer) *Ticker { + if timer == nil { + timer = &defaultTimer{} + } + c := make(chan time.Time) + t := &Ticker{ + C: c, + c: c, + b: b, + ctx: getContext(b), + timer: timer, + stop: make(chan struct{}), + } + t.b.Reset() + go t.run() + return t +} + +// Stop turns off a ticker. After Stop, no more ticks will be sent. +func (t *Ticker) Stop() { + t.stopOnce.Do(func() { close(t.stop) }) +} + +func (t *Ticker) run() { + c := t.c + defer close(c) + + // Ticker is guaranteed to tick at least once. + afterC := t.send(time.Now()) + + for { + if afterC == nil { + return + } + + select { + case tick := <-afterC: + afterC = t.send(tick) + case <-t.stop: + t.c = nil // Prevent future ticks from being sent to the channel. + return + case <-t.ctx.Done(): + return + } + } +} + +func (t *Ticker) send(tick time.Time) <-chan time.Time { + select { + case t.c <- tick: + case <-t.stop: + return nil + } + + next := t.b.NextBackOff() + if next == Stop { + t.Stop() + return nil + } + + t.timer.Start(next) + return t.timer.C() +} diff --git a/vendor/github.com/cenkalti/backoff/v4/timer.go b/vendor/github.com/cenkalti/backoff/v4/timer.go new file mode 100644 index 0000000..8120d02 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/timer.go @@ -0,0 +1,35 @@ +package backoff + +import "time" + +type Timer interface { + Start(duration time.Duration) + Stop() + C() <-chan time.Time +} + +// defaultTimer implements Timer interface using time.Timer +type defaultTimer struct { + timer *time.Timer +} + +// C returns the timers channel which receives the current time when the timer fires. +func (t *defaultTimer) C() <-chan time.Time { + return t.timer.C +} + +// Start starts the timer to fire after the given duration +func (t *defaultTimer) Start(duration time.Duration) { + if t.timer == nil { + t.timer = time.NewTimer(duration) + } else { + t.timer.Reset(duration) + } +} + +// Stop is called when the timer is not used anymore and resources may be freed. +func (t *defaultTimer) Stop() { + if t.timer != nil { + t.timer.Stop() + } +} diff --git a/vendor/github.com/cenkalti/backoff/v4/tries.go b/vendor/github.com/cenkalti/backoff/v4/tries.go new file mode 100644 index 0000000..28d58ca --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/v4/tries.go @@ -0,0 +1,38 @@ +package backoff + +import "time" + +/* +WithMaxRetries creates a wrapper around another BackOff, which will +return Stop if NextBackOff() has been called too many times since +the last time Reset() was called + +Note: Implementation is not thread-safe. +*/ +func WithMaxRetries(b BackOff, max uint64) BackOff { + return &backOffTries{delegate: b, maxTries: max} +} + +type backOffTries struct { + delegate BackOff + maxTries uint64 + numTries uint64 +} + +func (b *backOffTries) NextBackOff() time.Duration { + if b.maxTries == 0 { + return Stop + } + if b.maxTries > 0 { + if b.maxTries <= b.numTries { + return Stop + } + b.numTries++ + } + return b.delegate.NextBackOff() +} + +func (b *backOffTries) Reset() { + b.numTries = 0 + b.delegate.Reset() +} diff --git a/vendor/github.com/cli/browser/LICENSE b/vendor/github.com/cli/browser/LICENSE new file mode 100644 index 0000000..65f78fb --- /dev/null +++ b/vendor/github.com/cli/browser/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2014, Dave Cheney +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. + +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 HOLDER 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/cli/browser/README.md b/vendor/github.com/cli/browser/README.md new file mode 100644 index 0000000..8a46315 --- /dev/null +++ b/vendor/github.com/cli/browser/README.md @@ -0,0 +1,20 @@ + +# browser + +Helpers to open URLs, readers, or files in the system default web browser. + +This fork adds: + +- `OpenReader` error wrapping; +- `ErrNotFound` error wrapping on BSD; +- Go 1.21 support. + +## Usage + +``` go +import "github.com/cli/browser" + +err = browser.OpenURL(url) +err = browser.OpenFile(path) +err = browser.OpenReader(reader) +``` diff --git a/vendor/github.com/cli/browser/browser.go b/vendor/github.com/cli/browser/browser.go new file mode 100644 index 0000000..a0bd87e --- /dev/null +++ b/vendor/github.com/cli/browser/browser.go @@ -0,0 +1,57 @@ +// Package browser provides helpers to open files, readers, and urls in a browser window. +// +// The choice of which browser is started is entirely client dependent. +package browser + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "os/exec" + "path/filepath" +) + +// Stdout is the io.Writer to which executed commands write standard output. +var Stdout io.Writer = os.Stdout + +// Stderr is the io.Writer to which executed commands write standard error. +var Stderr io.Writer = os.Stderr + +// OpenFile opens new browser window for the file path. +func OpenFile(path string) error { + path, err := filepath.Abs(path) + if err != nil { + return err + } + return OpenURL("file://" + path) +} + +// OpenReader consumes the contents of r and presents the +// results in a new browser window. +func OpenReader(r io.Reader) error { + f, err := ioutil.TempFile("", "browser.*.html") + if err != nil { + return fmt.Errorf("browser: could not create temporary file: %w", err) + } + if _, err := io.Copy(f, r); err != nil { + f.Close() + return fmt.Errorf("browser: caching temporary file failed: %w", err) + } + if err := f.Close(); err != nil { + return fmt.Errorf("browser: caching temporary file failed: %w", err) + } + return OpenFile(f.Name()) +} + +// OpenURL opens a new browser window pointing to url. +func OpenURL(url string) error { + return openBrowser(url) +} + +func runCmd(prog string, args ...string) error { + cmd := exec.Command(prog, args...) + cmd.Stdout = Stdout + cmd.Stderr = Stderr + return cmd.Run() +} diff --git a/vendor/github.com/cli/browser/browser_darwin.go b/vendor/github.com/cli/browser/browser_darwin.go new file mode 100644 index 0000000..8507cf7 --- /dev/null +++ b/vendor/github.com/cli/browser/browser_darwin.go @@ -0,0 +1,5 @@ +package browser + +func openBrowser(url string) error { + return runCmd("open", url) +} diff --git a/vendor/github.com/cli/browser/browser_freebsd.go b/vendor/github.com/cli/browser/browser_freebsd.go new file mode 100644 index 0000000..2a3c9a2 --- /dev/null +++ b/vendor/github.com/cli/browser/browser_freebsd.go @@ -0,0 +1,15 @@ +package browser + +import ( + "errors" + "fmt" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if errors.Is(err, exec.ErrNotFound) { + return fmt.Errorf("%w - install xdg-utils from ports(8)", err) + } + return err +} diff --git a/vendor/github.com/cli/browser/browser_linux.go b/vendor/github.com/cli/browser/browser_linux.go new file mode 100644 index 0000000..b303250 --- /dev/null +++ b/vendor/github.com/cli/browser/browser_linux.go @@ -0,0 +1,21 @@ +package browser + +import ( + "os/exec" + "strings" +) + +func openBrowser(url string) error { + providers := []string{"xdg-open", "x-www-browser", "www-browser", "wslview"} + + // There are multiple possible providers to open a browser on linux + // One of them is xdg-open, another is x-www-browser, then there's www-browser, etc. + // Look for one that exists and run it + for _, provider := range providers { + if _, err := exec.LookPath(provider); err == nil { + return runCmd(provider, url) + } + } + + return &exec.Error{Name: strings.Join(providers, ","), Err: exec.ErrNotFound} +} diff --git a/vendor/github.com/cli/browser/browser_netbsd.go b/vendor/github.com/cli/browser/browser_netbsd.go new file mode 100644 index 0000000..65a5e5a --- /dev/null +++ b/vendor/github.com/cli/browser/browser_netbsd.go @@ -0,0 +1,14 @@ +package browser + +import ( + "errors" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { + return errors.New("xdg-open: command not found - install xdg-utils from pkgsrc(7)") + } + return err +} diff --git a/vendor/github.com/cli/browser/browser_openbsd.go b/vendor/github.com/cli/browser/browser_openbsd.go new file mode 100644 index 0000000..2a3c9a2 --- /dev/null +++ b/vendor/github.com/cli/browser/browser_openbsd.go @@ -0,0 +1,15 @@ +package browser + +import ( + "errors" + "fmt" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if errors.Is(err, exec.ErrNotFound) { + return fmt.Errorf("%w - install xdg-utils from ports(8)", err) + } + return err +} diff --git a/vendor/github.com/cli/browser/browser_unsupported.go b/vendor/github.com/cli/browser/browser_unsupported.go new file mode 100644 index 0000000..7c5c17d --- /dev/null +++ b/vendor/github.com/cli/browser/browser_unsupported.go @@ -0,0 +1,12 @@ +// +build !linux,!windows,!darwin,!openbsd,!freebsd,!netbsd + +package browser + +import ( + "fmt" + "runtime" +) + +func openBrowser(url string) error { + return fmt.Errorf("openBrowser: unsupported operating system: %v", runtime.GOOS) +} diff --git a/vendor/github.com/cli/browser/browser_windows.go b/vendor/github.com/cli/browser/browser_windows.go new file mode 100644 index 0000000..63e1929 --- /dev/null +++ b/vendor/github.com/cli/browser/browser_windows.go @@ -0,0 +1,7 @@ +package browser + +import "golang.org/x/sys/windows" + +func openBrowser(url string) error { + return windows.ShellExecute(0, nil, windows.StringToUTF16Ptr(url), nil, nil, windows.SW_SHOWNORMAL) +} diff --git a/vendor/github.com/fatih/color/LICENSE.md b/vendor/github.com/fatih/color/LICENSE.md new file mode 100644 index 0000000..25fdaf6 --- /dev/null +++ b/vendor/github.com/fatih/color/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Fatih Arslan + +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/fatih/color/README.md b/vendor/github.com/fatih/color/README.md new file mode 100644 index 0000000..be82827 --- /dev/null +++ b/vendor/github.com/fatih/color/README.md @@ -0,0 +1,176 @@ +# color [![](https://github.com/fatih/color/workflows/build/badge.svg)](https://github.com/fatih/color/actions) [![PkgGoDev](https://pkg.go.dev/badge/github.com/fatih/color)](https://pkg.go.dev/github.com/fatih/color) + +Color lets you use colorized outputs in terms of [ANSI Escape +Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It +has support for Windows too! The API can be used in several ways, pick one that +suits you. + +![Color](https://user-images.githubusercontent.com/438920/96832689-03b3e000-13f4-11eb-9803-46f4c4de3406.jpg) + +## Install + +```bash +go get github.com/fatih/color +``` + +## Examples + +### Standard colors + +```go +// Print with default helper functions +color.Cyan("Prints text in cyan.") + +// A newline will be appended automatically +color.Blue("Prints %s in blue.", "text") + +// These are using the default foreground colors +color.Red("We have red") +color.Magenta("And many others ..") + +``` + +### Mix and reuse colors + +```go +// Create a new color object +c := color.New(color.FgCyan).Add(color.Underline) +c.Println("Prints cyan text with an underline.") + +// Or just add them to New() +d := color.New(color.FgCyan, color.Bold) +d.Printf("This prints bold cyan %s\n", "too!.") + +// Mix up foreground and background colors, create new mixes! +red := color.New(color.FgRed) + +boldRed := red.Add(color.Bold) +boldRed.Println("This will print text in bold red.") + +whiteBackground := red.Add(color.BgWhite) +whiteBackground.Println("Red text with white background.") +``` + +### Use your own output (io.Writer) + +```go +// Use your own io.Writer output +color.New(color.FgBlue).Fprintln(myWriter, "blue color!") + +blue := color.New(color.FgBlue) +blue.Fprint(writer, "This will print text in blue.") +``` + +### Custom print functions (PrintFunc) + +```go +// Create a custom print function for convenience +red := color.New(color.FgRed).PrintfFunc() +red("Warning") +red("Error: %s", err) + +// Mix up multiple attributes +notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() +notice("Don't forget this...") +``` + +### Custom fprint functions (FprintFunc) + +```go +blue := color.New(color.FgBlue).FprintfFunc() +blue(myWriter, "important notice: %s", stars) + +// Mix up with multiple attributes +success := color.New(color.Bold, color.FgGreen).FprintlnFunc() +success(myWriter, "Don't forget this...") +``` + +### Insert into noncolor strings (SprintFunc) + +```go +// Create SprintXxx functions to mix strings with other non-colorized strings: +yellow := color.New(color.FgYellow).SprintFunc() +red := color.New(color.FgRed).SprintFunc() +fmt.Printf("This is a %s and this is %s.\n", yellow("warning"), red("error")) + +info := color.New(color.FgWhite, color.BgGreen).SprintFunc() +fmt.Printf("This %s rocks!\n", info("package")) + +// Use helper functions +fmt.Println("This", color.RedString("warning"), "should be not neglected.") +fmt.Printf("%v %v\n", color.GreenString("Info:"), "an important message.") + +// Windows supported too! Just don't forget to change the output to color.Output +fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) +``` + +### Plug into existing code + +```go +// Use handy standard colors +color.Set(color.FgYellow) + +fmt.Println("Existing text will now be in yellow") +fmt.Printf("This one %s\n", "too") + +color.Unset() // Don't forget to unset + +// You can mix up parameters +color.Set(color.FgMagenta, color.Bold) +defer color.Unset() // Use it in your function + +fmt.Println("All text will now be bold magenta.") +``` + +### Disable/Enable color + +There might be a case where you want to explicitly disable/enable color output. the +`go-isatty` package will automatically disable color output for non-tty output streams +(for example if the output were piped directly to `less`). + +The `color` package also disables color output if the [`NO_COLOR`](https://no-color.org) environment +variable is set to a non-empty string. + +`Color` has support to disable/enable colors programmatically both globally and +for single color definitions. For example suppose you have a CLI app and a +`-no-color` bool flag. You can easily disable the color output with: + +```go +var flagNoColor = flag.Bool("no-color", false, "Disable color output") + +if *flagNoColor { + color.NoColor = true // disables colorized output +} +``` + +It also has support for single color definitions (local). You can +disable/enable color output on the fly: + +```go +c := color.New(color.FgCyan) +c.Println("Prints cyan text") + +c.DisableColor() +c.Println("This is printed without any color") + +c.EnableColor() +c.Println("This prints again cyan...") +``` + +## GitHub Actions + +To output color in GitHub Actions (or other CI systems that support ANSI colors), make sure to set `color.NoColor = false` so that it bypasses the check for non-tty output streams. + +## Todo + +* Save/Return previous values +* Evaluate fmt.Formatter interface + +## Credits + +* [Fatih Arslan](https://github.com/fatih) +* Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable) + +## License + +The MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) for more details diff --git a/vendor/github.com/fatih/color/color.go b/vendor/github.com/fatih/color/color.go new file mode 100644 index 0000000..c423428 --- /dev/null +++ b/vendor/github.com/fatih/color/color.go @@ -0,0 +1,650 @@ +package color + +import ( + "fmt" + "io" + "os" + "strconv" + "strings" + "sync" + + "github.com/mattn/go-colorable" + "github.com/mattn/go-isatty" +) + +var ( + // NoColor defines if the output is colorized or not. It's dynamically set to + // false or true based on the stdout's file descriptor referring to a terminal + // or not. It's also set to true if the NO_COLOR environment variable is + // set (regardless of its value). This is a global option and affects all + // colors. For more control over each color block use the methods + // DisableColor() individually. + NoColor = noColorIsSet() || os.Getenv("TERM") == "dumb" || + (!isatty.IsTerminal(os.Stdout.Fd()) && !isatty.IsCygwinTerminal(os.Stdout.Fd())) + + // Output defines the standard output of the print functions. By default, + // os.Stdout is used. + Output = colorable.NewColorableStdout() + + // Error defines a color supporting writer for os.Stderr. + Error = colorable.NewColorableStderr() + + // colorsCache is used to reduce the count of created Color objects and + // allows to reuse already created objects with required Attribute. + colorsCache = make(map[Attribute]*Color) + colorsCacheMu sync.Mutex // protects colorsCache +) + +// noColorIsSet returns true if the environment variable NO_COLOR is set to a non-empty string. +func noColorIsSet() bool { + return os.Getenv("NO_COLOR") != "" +} + +// Color defines a custom color object which is defined by SGR parameters. +type Color struct { + params []Attribute + noColor *bool +} + +// Attribute defines a single SGR Code +type Attribute int + +const escape = "\x1b" + +// Base attributes +const ( + Reset Attribute = iota + Bold + Faint + Italic + Underline + BlinkSlow + BlinkRapid + ReverseVideo + Concealed + CrossedOut +) + +const ( + ResetBold Attribute = iota + 22 + ResetItalic + ResetUnderline + ResetBlinking + _ + ResetReversed + ResetConcealed + ResetCrossedOut +) + +var mapResetAttributes map[Attribute]Attribute = map[Attribute]Attribute{ + Bold: ResetBold, + Faint: ResetBold, + Italic: ResetItalic, + Underline: ResetUnderline, + BlinkSlow: ResetBlinking, + BlinkRapid: ResetBlinking, + ReverseVideo: ResetReversed, + Concealed: ResetConcealed, + CrossedOut: ResetCrossedOut, +} + +// Foreground text colors +const ( + FgBlack Attribute = iota + 30 + FgRed + FgGreen + FgYellow + FgBlue + FgMagenta + FgCyan + FgWhite +) + +// Foreground Hi-Intensity text colors +const ( + FgHiBlack Attribute = iota + 90 + FgHiRed + FgHiGreen + FgHiYellow + FgHiBlue + FgHiMagenta + FgHiCyan + FgHiWhite +) + +// Background text colors +const ( + BgBlack Attribute = iota + 40 + BgRed + BgGreen + BgYellow + BgBlue + BgMagenta + BgCyan + BgWhite +) + +// Background Hi-Intensity text colors +const ( + BgHiBlack Attribute = iota + 100 + BgHiRed + BgHiGreen + BgHiYellow + BgHiBlue + BgHiMagenta + BgHiCyan + BgHiWhite +) + +// New returns a newly created color object. +func New(value ...Attribute) *Color { + c := &Color{ + params: make([]Attribute, 0), + } + + if noColorIsSet() { + c.noColor = boolPtr(true) + } + + c.Add(value...) + return c +} + +// Set sets the given parameters immediately. It will change the color of +// output with the given SGR parameters until color.Unset() is called. +func Set(p ...Attribute) *Color { + c := New(p...) + c.Set() + return c +} + +// Unset resets all escape attributes and clears the output. Usually should +// be called after Set(). +func Unset() { + if NoColor { + return + } + + fmt.Fprintf(Output, "%s[%dm", escape, Reset) +} + +// Set sets the SGR sequence. +func (c *Color) Set() *Color { + if c.isNoColorSet() { + return c + } + + fmt.Fprint(Output, c.format()) + return c +} + +func (c *Color) unset() { + if c.isNoColorSet() { + return + } + + Unset() +} + +// SetWriter is used to set the SGR sequence with the given io.Writer. This is +// a low-level function, and users should use the higher-level functions, such +// as color.Fprint, color.Print, etc. +func (c *Color) SetWriter(w io.Writer) *Color { + if c.isNoColorSet() { + return c + } + + fmt.Fprint(w, c.format()) + return c +} + +// UnsetWriter resets all escape attributes and clears the output with the give +// io.Writer. Usually should be called after SetWriter(). +func (c *Color) UnsetWriter(w io.Writer) { + if c.isNoColorSet() { + return + } + + if NoColor { + return + } + + fmt.Fprintf(w, "%s[%dm", escape, Reset) +} + +// Add is used to chain SGR parameters. Use as many as parameters to combine +// and create custom color objects. Example: Add(color.FgRed, color.Underline). +func (c *Color) Add(value ...Attribute) *Color { + c.params = append(c.params, value...) + return c +} + +// Fprint formats using the default formats for its operands and writes to w. +// Spaces are added between operands when neither is a string. +// It returns the number of bytes written and any write error encountered. +// On Windows, users should wrap w with colorable.NewColorable() if w is of +// type *os.File. +func (c *Color) Fprint(w io.Writer, a ...interface{}) (n int, err error) { + c.SetWriter(w) + defer c.UnsetWriter(w) + + return fmt.Fprint(w, a...) +} + +// Print formats using the default formats for its operands and writes to +// standard output. Spaces are added between operands when neither is a +// string. It returns the number of bytes written and any write error +// encountered. This is the standard fmt.Print() method wrapped with the given +// color. +func (c *Color) Print(a ...interface{}) (n int, err error) { + c.Set() + defer c.unset() + + return fmt.Fprint(Output, a...) +} + +// Fprintf formats according to a format specifier and writes to w. +// It returns the number of bytes written and any write error encountered. +// On Windows, users should wrap w with colorable.NewColorable() if w is of +// type *os.File. +func (c *Color) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { + c.SetWriter(w) + defer c.UnsetWriter(w) + + return fmt.Fprintf(w, format, a...) +} + +// Printf formats according to a format specifier and writes to standard output. +// It returns the number of bytes written and any write error encountered. +// This is the standard fmt.Printf() method wrapped with the given color. +func (c *Color) Printf(format string, a ...interface{}) (n int, err error) { + c.Set() + defer c.unset() + + return fmt.Fprintf(Output, format, a...) +} + +// Fprintln formats using the default formats for its operands and writes to w. +// Spaces are always added between operands and a newline is appended. +// On Windows, users should wrap w with colorable.NewColorable() if w is of +// type *os.File. +func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, c.wrap(fmt.Sprint(a...))) +} + +// Println formats using the default formats for its operands and writes to +// standard output. Spaces are always added between operands and a newline is +// appended. It returns the number of bytes written and any write error +// encountered. This is the standard fmt.Print() method wrapped with the given +// color. +func (c *Color) Println(a ...interface{}) (n int, err error) { + return fmt.Fprintln(Output, c.wrap(fmt.Sprint(a...))) +} + +// Sprint is just like Print, but returns a string instead of printing it. +func (c *Color) Sprint(a ...interface{}) string { + return c.wrap(fmt.Sprint(a...)) +} + +// Sprintln is just like Println, but returns a string instead of printing it. +func (c *Color) Sprintln(a ...interface{}) string { + return fmt.Sprintln(c.Sprint(a...)) +} + +// Sprintf is just like Printf, but returns a string instead of printing it. +func (c *Color) Sprintf(format string, a ...interface{}) string { + return c.wrap(fmt.Sprintf(format, a...)) +} + +// FprintFunc returns a new function that prints the passed arguments as +// colorized with color.Fprint(). +func (c *Color) FprintFunc() func(w io.Writer, a ...interface{}) { + return func(w io.Writer, a ...interface{}) { + c.Fprint(w, a...) + } +} + +// PrintFunc returns a new function that prints the passed arguments as +// colorized with color.Print(). +func (c *Color) PrintFunc() func(a ...interface{}) { + return func(a ...interface{}) { + c.Print(a...) + } +} + +// FprintfFunc returns a new function that prints the passed arguments as +// colorized with color.Fprintf(). +func (c *Color) FprintfFunc() func(w io.Writer, format string, a ...interface{}) { + return func(w io.Writer, format string, a ...interface{}) { + c.Fprintf(w, format, a...) + } +} + +// PrintfFunc returns a new function that prints the passed arguments as +// colorized with color.Printf(). +func (c *Color) PrintfFunc() func(format string, a ...interface{}) { + return func(format string, a ...interface{}) { + c.Printf(format, a...) + } +} + +// FprintlnFunc returns a new function that prints the passed arguments as +// colorized with color.Fprintln(). +func (c *Color) FprintlnFunc() func(w io.Writer, a ...interface{}) { + return func(w io.Writer, a ...interface{}) { + c.Fprintln(w, a...) + } +} + +// PrintlnFunc returns a new function that prints the passed arguments as +// colorized with color.Println(). +func (c *Color) PrintlnFunc() func(a ...interface{}) { + return func(a ...interface{}) { + c.Println(a...) + } +} + +// SprintFunc returns a new function that returns colorized strings for the +// given arguments with fmt.Sprint(). Useful to put into or mix into other +// string. Windows users should use this in conjunction with color.Output, example: +// +// put := New(FgYellow).SprintFunc() +// fmt.Fprintf(color.Output, "This is a %s", put("warning")) +func (c *Color) SprintFunc() func(a ...interface{}) string { + return func(a ...interface{}) string { + return c.wrap(fmt.Sprint(a...)) + } +} + +// SprintfFunc returns a new function that returns colorized strings for the +// given arguments with fmt.Sprintf(). Useful to put into or mix into other +// string. Windows users should use this in conjunction with color.Output. +func (c *Color) SprintfFunc() func(format string, a ...interface{}) string { + return func(format string, a ...interface{}) string { + return c.wrap(fmt.Sprintf(format, a...)) + } +} + +// SprintlnFunc returns a new function that returns colorized strings for the +// given arguments with fmt.Sprintln(). Useful to put into or mix into other +// string. Windows users should use this in conjunction with color.Output. +func (c *Color) SprintlnFunc() func(a ...interface{}) string { + return func(a ...interface{}) string { + return fmt.Sprintln(c.Sprint(a...)) + } +} + +// sequence returns a formatted SGR sequence to be plugged into a "\x1b[...m" +// an example output might be: "1;36" -> bold cyan +func (c *Color) sequence() string { + format := make([]string, len(c.params)) + for i, v := range c.params { + format[i] = strconv.Itoa(int(v)) + } + + return strings.Join(format, ";") +} + +// wrap wraps the s string with the colors attributes. The string is ready to +// be printed. +func (c *Color) wrap(s string) string { + if c.isNoColorSet() { + return s + } + + return c.format() + s + c.unformat() +} + +func (c *Color) format() string { + return fmt.Sprintf("%s[%sm", escape, c.sequence()) +} + +func (c *Color) unformat() string { + //return fmt.Sprintf("%s[%dm", escape, Reset) + //for each element in sequence let's use the speficic reset escape, ou the generic one if not found + format := make([]string, len(c.params)) + for i, v := range c.params { + format[i] = strconv.Itoa(int(Reset)) + ra, ok := mapResetAttributes[v] + if ok { + format[i] = strconv.Itoa(int(ra)) + } + } + + return fmt.Sprintf("%s[%sm", escape, strings.Join(format, ";")) +} + +// DisableColor disables the color output. Useful to not change any existing +// code and still being able to output. Can be used for flags like +// "--no-color". To enable back use EnableColor() method. +func (c *Color) DisableColor() { + c.noColor = boolPtr(true) +} + +// EnableColor enables the color output. Use it in conjunction with +// DisableColor(). Otherwise, this method has no side effects. +func (c *Color) EnableColor() { + c.noColor = boolPtr(false) +} + +func (c *Color) isNoColorSet() bool { + // check first if we have user set action + if c.noColor != nil { + return *c.noColor + } + + // if not return the global option, which is disabled by default + return NoColor +} + +// Equals returns a boolean value indicating whether two colors are equal. +func (c *Color) Equals(c2 *Color) bool { + if c == nil && c2 == nil { + return true + } + if c == nil || c2 == nil { + return false + } + if len(c.params) != len(c2.params) { + return false + } + + for _, attr := range c.params { + if !c2.attrExists(attr) { + return false + } + } + + return true +} + +func (c *Color) attrExists(a Attribute) bool { + for _, attr := range c.params { + if attr == a { + return true + } + } + + return false +} + +func boolPtr(v bool) *bool { + return &v +} + +func getCachedColor(p Attribute) *Color { + colorsCacheMu.Lock() + defer colorsCacheMu.Unlock() + + c, ok := colorsCache[p] + if !ok { + c = New(p) + colorsCache[p] = c + } + + return c +} + +func colorPrint(format string, p Attribute, a ...interface{}) { + c := getCachedColor(p) + + if !strings.HasSuffix(format, "\n") { + format += "\n" + } + + if len(a) == 0 { + c.Print(format) + } else { + c.Printf(format, a...) + } +} + +func colorString(format string, p Attribute, a ...interface{}) string { + c := getCachedColor(p) + + if len(a) == 0 { + return c.SprintFunc()(format) + } + + return c.SprintfFunc()(format, a...) +} + +// Black is a convenient helper function to print with black foreground. A +// newline is appended to format by default. +func Black(format string, a ...interface{}) { colorPrint(format, FgBlack, a...) } + +// Red is a convenient helper function to print with red foreground. A +// newline is appended to format by default. +func Red(format string, a ...interface{}) { colorPrint(format, FgRed, a...) } + +// Green is a convenient helper function to print with green foreground. A +// newline is appended to format by default. +func Green(format string, a ...interface{}) { colorPrint(format, FgGreen, a...) } + +// Yellow is a convenient helper function to print with yellow foreground. +// A newline is appended to format by default. +func Yellow(format string, a ...interface{}) { colorPrint(format, FgYellow, a...) } + +// Blue is a convenient helper function to print with blue foreground. A +// newline is appended to format by default. +func Blue(format string, a ...interface{}) { colorPrint(format, FgBlue, a...) } + +// Magenta is a convenient helper function to print with magenta foreground. +// A newline is appended to format by default. +func Magenta(format string, a ...interface{}) { colorPrint(format, FgMagenta, a...) } + +// Cyan is a convenient helper function to print with cyan foreground. A +// newline is appended to format by default. +func Cyan(format string, a ...interface{}) { colorPrint(format, FgCyan, a...) } + +// White is a convenient helper function to print with white foreground. A +// newline is appended to format by default. +func White(format string, a ...interface{}) { colorPrint(format, FgWhite, a...) } + +// BlackString is a convenient helper function to return a string with black +// foreground. +func BlackString(format string, a ...interface{}) string { return colorString(format, FgBlack, a...) } + +// RedString is a convenient helper function to return a string with red +// foreground. +func RedString(format string, a ...interface{}) string { return colorString(format, FgRed, a...) } + +// GreenString is a convenient helper function to return a string with green +// foreground. +func GreenString(format string, a ...interface{}) string { return colorString(format, FgGreen, a...) } + +// YellowString is a convenient helper function to return a string with yellow +// foreground. +func YellowString(format string, a ...interface{}) string { return colorString(format, FgYellow, a...) } + +// BlueString is a convenient helper function to return a string with blue +// foreground. +func BlueString(format string, a ...interface{}) string { return colorString(format, FgBlue, a...) } + +// MagentaString is a convenient helper function to return a string with magenta +// foreground. +func MagentaString(format string, a ...interface{}) string { + return colorString(format, FgMagenta, a...) +} + +// CyanString is a convenient helper function to return a string with cyan +// foreground. +func CyanString(format string, a ...interface{}) string { return colorString(format, FgCyan, a...) } + +// WhiteString is a convenient helper function to return a string with white +// foreground. +func WhiteString(format string, a ...interface{}) string { return colorString(format, FgWhite, a...) } + +// HiBlack is a convenient helper function to print with hi-intensity black foreground. A +// newline is appended to format by default. +func HiBlack(format string, a ...interface{}) { colorPrint(format, FgHiBlack, a...) } + +// HiRed is a convenient helper function to print with hi-intensity red foreground. A +// newline is appended to format by default. +func HiRed(format string, a ...interface{}) { colorPrint(format, FgHiRed, a...) } + +// HiGreen is a convenient helper function to print with hi-intensity green foreground. A +// newline is appended to format by default. +func HiGreen(format string, a ...interface{}) { colorPrint(format, FgHiGreen, a...) } + +// HiYellow is a convenient helper function to print with hi-intensity yellow foreground. +// A newline is appended to format by default. +func HiYellow(format string, a ...interface{}) { colorPrint(format, FgHiYellow, a...) } + +// HiBlue is a convenient helper function to print with hi-intensity blue foreground. A +// newline is appended to format by default. +func HiBlue(format string, a ...interface{}) { colorPrint(format, FgHiBlue, a...) } + +// HiMagenta is a convenient helper function to print with hi-intensity magenta foreground. +// A newline is appended to format by default. +func HiMagenta(format string, a ...interface{}) { colorPrint(format, FgHiMagenta, a...) } + +// HiCyan is a convenient helper function to print with hi-intensity cyan foreground. A +// newline is appended to format by default. +func HiCyan(format string, a ...interface{}) { colorPrint(format, FgHiCyan, a...) } + +// HiWhite is a convenient helper function to print with hi-intensity white foreground. A +// newline is appended to format by default. +func HiWhite(format string, a ...interface{}) { colorPrint(format, FgHiWhite, a...) } + +// HiBlackString is a convenient helper function to return a string with hi-intensity black +// foreground. +func HiBlackString(format string, a ...interface{}) string { + return colorString(format, FgHiBlack, a...) +} + +// HiRedString is a convenient helper function to return a string with hi-intensity red +// foreground. +func HiRedString(format string, a ...interface{}) string { return colorString(format, FgHiRed, a...) } + +// HiGreenString is a convenient helper function to return a string with hi-intensity green +// foreground. +func HiGreenString(format string, a ...interface{}) string { + return colorString(format, FgHiGreen, a...) +} + +// HiYellowString is a convenient helper function to return a string with hi-intensity yellow +// foreground. +func HiYellowString(format string, a ...interface{}) string { + return colorString(format, FgHiYellow, a...) +} + +// HiBlueString is a convenient helper function to return a string with hi-intensity blue +// foreground. +func HiBlueString(format string, a ...interface{}) string { return colorString(format, FgHiBlue, a...) } + +// HiMagentaString is a convenient helper function to return a string with hi-intensity magenta +// foreground. +func HiMagentaString(format string, a ...interface{}) string { + return colorString(format, FgHiMagenta, a...) +} + +// HiCyanString is a convenient helper function to return a string with hi-intensity cyan +// foreground. +func HiCyanString(format string, a ...interface{}) string { return colorString(format, FgHiCyan, a...) } + +// HiWhiteString is a convenient helper function to return a string with hi-intensity white +// foreground. +func HiWhiteString(format string, a ...interface{}) string { + return colorString(format, FgHiWhite, a...) +} diff --git a/vendor/github.com/fatih/color/color_windows.go b/vendor/github.com/fatih/color/color_windows.go new file mode 100644 index 0000000..be01c55 --- /dev/null +++ b/vendor/github.com/fatih/color/color_windows.go @@ -0,0 +1,19 @@ +package color + +import ( + "os" + + "golang.org/x/sys/windows" +) + +func init() { + // Opt-in for ansi color support for current process. + // https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences + var outMode uint32 + out := windows.Handle(os.Stdout.Fd()) + if err := windows.GetConsoleMode(out, &outMode); err != nil { + return + } + outMode |= windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING + _ = windows.SetConsoleMode(out, outMode) +} diff --git a/vendor/github.com/fatih/color/doc.go b/vendor/github.com/fatih/color/doc.go new file mode 100644 index 0000000..9491ad5 --- /dev/null +++ b/vendor/github.com/fatih/color/doc.go @@ -0,0 +1,134 @@ +/* +Package color is an ANSI color package to output colorized or SGR defined +output to the standard output. The API can be used in several way, pick one +that suits you. + +Use simple and default helper functions with predefined foreground colors: + + color.Cyan("Prints text in cyan.") + + // a newline will be appended automatically + color.Blue("Prints %s in blue.", "text") + + // More default foreground colors.. + color.Red("We have red") + color.Yellow("Yellow color too!") + color.Magenta("And many others ..") + + // Hi-intensity colors + color.HiGreen("Bright green color.") + color.HiBlack("Bright black means gray..") + color.HiWhite("Shiny white color!") + +However, there are times when custom color mixes are required. Below are some +examples to create custom color objects and use the print functions of each +separate color object. + + // Create a new color object + c := color.New(color.FgCyan).Add(color.Underline) + c.Println("Prints cyan text with an underline.") + + // Or just add them to New() + d := color.New(color.FgCyan, color.Bold) + d.Printf("This prints bold cyan %s\n", "too!.") + + + // Mix up foreground and background colors, create new mixes! + red := color.New(color.FgRed) + + boldRed := red.Add(color.Bold) + boldRed.Println("This will print text in bold red.") + + whiteBackground := red.Add(color.BgWhite) + whiteBackground.Println("Red text with White background.") + + // Use your own io.Writer output + color.New(color.FgBlue).Fprintln(myWriter, "blue color!") + + blue := color.New(color.FgBlue) + blue.Fprint(myWriter, "This will print text in blue.") + +You can create PrintXxx functions to simplify even more: + + // Create a custom print function for convenient + red := color.New(color.FgRed).PrintfFunc() + red("warning") + red("error: %s", err) + + // Mix up multiple attributes + notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() + notice("don't forget this...") + +You can also FprintXxx functions to pass your own io.Writer: + + blue := color.New(FgBlue).FprintfFunc() + blue(myWriter, "important notice: %s", stars) + + // Mix up with multiple attributes + success := color.New(color.Bold, color.FgGreen).FprintlnFunc() + success(myWriter, don't forget this...") + +Or create SprintXxx functions to mix strings with other non-colorized strings: + + yellow := New(FgYellow).SprintFunc() + red := New(FgRed).SprintFunc() + + fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error")) + + info := New(FgWhite, BgGreen).SprintFunc() + fmt.Printf("this %s rocks!\n", info("package")) + +Windows support is enabled by default. All Print functions work as intended. +However, only for color.SprintXXX functions, user should use fmt.FprintXXX and +set the output to color.Output: + + fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) + + info := New(FgWhite, BgGreen).SprintFunc() + fmt.Fprintf(color.Output, "this %s rocks!\n", info("package")) + +Using with existing code is possible. Just use the Set() method to set the +standard output to the given parameters. That way a rewrite of an existing +code is not required. + + // Use handy standard colors. + color.Set(color.FgYellow) + + fmt.Println("Existing text will be now in Yellow") + fmt.Printf("This one %s\n", "too") + + color.Unset() // don't forget to unset + + // You can mix up parameters + color.Set(color.FgMagenta, color.Bold) + defer color.Unset() // use it in your function + + fmt.Println("All text will be now bold magenta.") + +There might be a case where you want to disable color output (for example to +pipe the standard output of your app to somewhere else). `Color` has support to +disable colors both globally and for single color definition. For example +suppose you have a CLI app and a `--no-color` bool flag. You can easily disable +the color output with: + + var flagNoColor = flag.Bool("no-color", false, "Disable color output") + + if *flagNoColor { + color.NoColor = true // disables colorized output + } + +You can also disable the color by setting the NO_COLOR environment variable to any value. + +It also has support for single color definitions (local). You can +disable/enable color output on the fly: + + c := color.New(color.FgCyan) + c.Println("Prints cyan text") + + c.DisableColor() + c.Println("This is printed without any color") + + c.EnableColor() + c.Println("This prints again cyan...") +*/ +package color diff --git a/vendor/github.com/fsnotify/fsnotify/.cirrus.yml b/vendor/github.com/fsnotify/fsnotify/.cirrus.yml new file mode 100644 index 0000000..ffc7b99 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.cirrus.yml @@ -0,0 +1,13 @@ +freebsd_task: + name: 'FreeBSD' + freebsd_instance: + image_family: freebsd-13-2 + install_script: + - pkg update -f + - pkg install -y go + test_script: + # run tests as user "cirrus" instead of root + - pw useradd cirrus -m + - chown -R cirrus:cirrus . + - FSNOTIFY_BUFFER=4096 sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./... + - sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./... diff --git a/vendor/github.com/fsnotify/fsnotify/.editorconfig b/vendor/github.com/fsnotify/fsnotify/.editorconfig new file mode 100644 index 0000000..fad8958 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*.go] +indent_style = tab +indent_size = 4 +insert_final_newline = true + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/vendor/github.com/fsnotify/fsnotify/.gitattributes b/vendor/github.com/fsnotify/fsnotify/.gitattributes new file mode 100644 index 0000000..32f1001 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.gitattributes @@ -0,0 +1 @@ +go.sum linguist-generated diff --git a/vendor/github.com/fsnotify/fsnotify/.gitignore b/vendor/github.com/fsnotify/fsnotify/.gitignore new file mode 100644 index 0000000..391cc07 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.gitignore @@ -0,0 +1,7 @@ +# go test -c output +*.test +*.test.exe + +# Output of go build ./cmd/fsnotify +/fsnotify +/fsnotify.exe diff --git a/vendor/github.com/fsnotify/fsnotify/.mailmap b/vendor/github.com/fsnotify/fsnotify/.mailmap new file mode 100644 index 0000000..a04f290 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.mailmap @@ -0,0 +1,2 @@ +Chris Howey +Nathan Youngman <4566+nathany@users.noreply.github.com> diff --git a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md new file mode 100644 index 0000000..e0e5757 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md @@ -0,0 +1,541 @@ +# Changelog + +Unreleased +---------- +Nothing yet. + +1.7.0 - 2023-10-22 +------------------ +This version of fsnotify needs Go 1.17. + +### Additions + +- illumos: add FEN backend to support illumos and Solaris. ([#371]) + +- all: add `NewBufferedWatcher()` to use a buffered channel, which can be useful + in cases where you can't control the kernel buffer and receive a large number + of events in bursts. ([#550], [#572]) + +- all: add `AddWith()`, which is identical to `Add()` but allows passing + options. ([#521]) + +- windows: allow setting the ReadDirectoryChangesW() buffer size with + `fsnotify.WithBufferSize()`; the default of 64K is the highest value that + works on all platforms and is enough for most purposes, but in some cases a + highest buffer is needed. ([#521]) + +### Changes and fixes + +- inotify: remove watcher if a watched path is renamed ([#518]) + + After a rename the reported name wasn't updated, or even an empty string. + Inotify doesn't provide any good facilities to update it, so just remove the + watcher. This is already how it worked on kqueue and FEN. + + On Windows this does work, and remains working. + +- windows: don't listen for file attribute changes ([#520]) + + File attribute changes are sent as `FILE_ACTION_MODIFIED` by the Windows API, + with no way to see if they're a file write or attribute change, so would show + up as a fsnotify.Write event. This is never useful, and could result in many + spurious Write events. + +- windows: return `ErrEventOverflow` if the buffer is full ([#525]) + + Before it would merely return "short read", making it hard to detect this + error. + +- kqueue: make sure events for all files are delivered properly when removing a + watched directory ([#526]) + + Previously they would get sent with `""` (empty string) or `"."` as the path + name. + +- kqueue: don't emit spurious Create events for symbolic links ([#524]) + + The link would get resolved but kqueue would "forget" it already saw the link + itself, resulting on a Create for every Write event for the directory. + +- all: return `ErrClosed` on `Add()` when the watcher is closed ([#516]) + +- other: add `Watcher.Errors` and `Watcher.Events` to the no-op `Watcher` in + `backend_other.go`, making it easier to use on unsupported platforms such as + WASM, AIX, etc. ([#528]) + +- other: use the `backend_other.go` no-op if the `appengine` build tag is set; + Google AppEngine forbids usage of the unsafe package so the inotify backend + won't compile there. + +[#371]: https://github.com/fsnotify/fsnotify/pull/371 +[#516]: https://github.com/fsnotify/fsnotify/pull/516 +[#518]: https://github.com/fsnotify/fsnotify/pull/518 +[#520]: https://github.com/fsnotify/fsnotify/pull/520 +[#521]: https://github.com/fsnotify/fsnotify/pull/521 +[#524]: https://github.com/fsnotify/fsnotify/pull/524 +[#525]: https://github.com/fsnotify/fsnotify/pull/525 +[#526]: https://github.com/fsnotify/fsnotify/pull/526 +[#528]: https://github.com/fsnotify/fsnotify/pull/528 +[#537]: https://github.com/fsnotify/fsnotify/pull/537 +[#550]: https://github.com/fsnotify/fsnotify/pull/550 +[#572]: https://github.com/fsnotify/fsnotify/pull/572 + +1.6.0 - 2022-10-13 +------------------ +This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, +but not documented). It also increases the minimum Linux version to 2.6.32. + +### Additions + +- all: add `Event.Has()` and `Op.Has()` ([#477]) + + This makes checking events a lot easier; for example: + + if event.Op&Write == Write && !(event.Op&Remove == Remove) { + } + + Becomes: + + if event.Has(Write) && !event.Has(Remove) { + } + +- all: add cmd/fsnotify ([#463]) + + A command-line utility for testing and some examples. + +### Changes and fixes + +- inotify: don't ignore events for files that don't exist ([#260], [#470]) + + Previously the inotify watcher would call `os.Lstat()` to check if a file + still exists before emitting events. + + This was inconsistent with other platforms and resulted in inconsistent event + reporting (e.g. when a file is quickly removed and re-created), and generally + a source of confusion. It was added in 2013 to fix a memory leak that no + longer exists. + +- all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's + not watched ([#460]) + +- inotify: replace epoll() with non-blocking inotify ([#434]) + + Non-blocking inotify was not generally available at the time this library was + written in 2014, but now it is. As a result, the minimum Linux version is + bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster. + +- kqueue: don't check for events every 100ms ([#480]) + + The watcher would wake up every 100ms, even when there was nothing to do. Now + it waits until there is something to do. + +- macos: retry opening files on EINTR ([#475]) + +- kqueue: skip unreadable files ([#479]) + + kqueue requires a file descriptor for every file in a directory; this would + fail if a file was unreadable by the current user. Now these files are simply + skipped. + +- windows: fix renaming a watched directory if the parent is also watched ([#370]) + +- windows: increase buffer size from 4K to 64K ([#485]) + +- windows: close file handle on Remove() ([#288]) + +- kqueue: put pathname in the error if watching a file fails ([#471]) + +- inotify, windows: calling Close() more than once could race ([#465]) + +- kqueue: improve Close() performance ([#233]) + +- all: various documentation additions and clarifications. + +[#233]: https://github.com/fsnotify/fsnotify/pull/233 +[#260]: https://github.com/fsnotify/fsnotify/pull/260 +[#288]: https://github.com/fsnotify/fsnotify/pull/288 +[#370]: https://github.com/fsnotify/fsnotify/pull/370 +[#434]: https://github.com/fsnotify/fsnotify/pull/434 +[#460]: https://github.com/fsnotify/fsnotify/pull/460 +[#463]: https://github.com/fsnotify/fsnotify/pull/463 +[#465]: https://github.com/fsnotify/fsnotify/pull/465 +[#470]: https://github.com/fsnotify/fsnotify/pull/470 +[#471]: https://github.com/fsnotify/fsnotify/pull/471 +[#475]: https://github.com/fsnotify/fsnotify/pull/475 +[#477]: https://github.com/fsnotify/fsnotify/pull/477 +[#479]: https://github.com/fsnotify/fsnotify/pull/479 +[#480]: https://github.com/fsnotify/fsnotify/pull/480 +[#485]: https://github.com/fsnotify/fsnotify/pull/485 + +## [1.5.4] - 2022-04-25 + +* Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) +* go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444) +* Fix compilation for OpenBSD [#443](https://github.com/fsnotify/fsnotify/pull/443) + +## [1.5.3] - 2022-04-22 + +* This version is retracted. An incorrect branch is published accidentally [#445](https://github.com/fsnotify/fsnotify/issues/445) + +## [1.5.2] - 2022-04-21 + +* Add a feature to return the directories and files that are being monitored [#374](https://github.com/fsnotify/fsnotify/pull/374) +* Fix potential crash on windows if `raw.FileNameLength` exceeds `syscall.MAX_PATH` [#361](https://github.com/fsnotify/fsnotify/pull/361) +* Allow build on unsupported GOOS [#424](https://github.com/fsnotify/fsnotify/pull/424) +* Don't set `poller.fd` twice in `newFdPoller` [#406](https://github.com/fsnotify/fsnotify/pull/406) +* fix go vet warnings: call to `(*T).Fatalf` from a non-test goroutine [#416](https://github.com/fsnotify/fsnotify/pull/416) + +## [1.5.1] - 2021-08-24 + +* Revert Add AddRaw to not follow symlinks [#394](https://github.com/fsnotify/fsnotify/pull/394) + +## [1.5.0] - 2021-08-20 + +* Go: Increase minimum required version to Go 1.12 [#381](https://github.com/fsnotify/fsnotify/pull/381) +* Feature: Add AddRaw method which does not follow symlinks when adding a watch [#289](https://github.com/fsnotify/fsnotify/pull/298) +* Windows: Follow symlinks by default like on all other systems [#289](https://github.com/fsnotify/fsnotify/pull/289) +* CI: Use GitHub Actions for CI and cover go 1.12-1.17 + [#378](https://github.com/fsnotify/fsnotify/pull/378) + [#381](https://github.com/fsnotify/fsnotify/pull/381) + [#385](https://github.com/fsnotify/fsnotify/pull/385) +* Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) + +## [1.4.9] - 2020-03-11 + +* Move example usage to the readme #329. This may resolve #328. + +## [1.4.8] - 2020-03-10 + +* CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216) +* Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265) +* Tests: t.Fatalf -> t.Errorf in go routines (@gdey #266) +* CI: Less verbosity (@nathany #267) +* Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267) +* Tests: Check if channels are closed in the example (@alexeykazakov #244) +* CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284) +* CI: Add windows to travis matrix (@cpuguy83 #284) +* Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93) +* Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219) +* Linux: open files with close-on-exec (@linxiulei #273) +* Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 ) +* Project: Add go.mod (@nathany #309) +* Project: Revise editor config (@nathany #309) +* Project: Update copyright for 2019 (@nathany #309) +* CI: Drop go1.8 from CI matrix (@nathany #309) +* Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e ) + +## [1.4.7] - 2018-01-09 + +* BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) +* Tests: Fix missing verb on format string (thanks @rchiossi) +* Linux: Fix deadlock in Remove (thanks @aarondl) +* Linux: Watch.Add improvements (avoid race, fix consistency, reduce garbage) (thanks @twpayne) +* Docs: Moved FAQ into the README (thanks @vahe) +* Linux: Properly handle inotify's IN_Q_OVERFLOW event (thanks @zeldovich) +* Docs: replace references to OS X with macOS + +## [1.4.2] - 2016-10-10 + +* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack) + +## [1.4.1] - 2016-10-04 + +* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack) + +## [1.4.0] - 2016-10-01 + +* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie) + +## [1.3.1] - 2016-06-28 + +* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc) + +## [1.3.0] - 2016-04-19 + +* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135) + +## [1.2.10] - 2016-03-02 + +* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj) + +## [1.2.9] - 2016-01-13 + +kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep) + +## [1.2.8] - 2015-12-17 + +* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test) +* inotify: fix race in test +* enable race detection for continuous integration (Linux, Mac, Windows) + +## [1.2.5] - 2015-10-17 + +* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki) +* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken) +* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie) +* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion) + +## [1.2.1] - 2015-10-14 + +* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx) + +## [1.2.0] - 2015-02-08 + +* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD) +* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD) +* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59) + +## [1.1.1] - 2015-02-05 + +* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD) + +## [1.1.0] - 2014-12-12 + +* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43) + * add low-level functions + * only need to store flags on directories + * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13) + * done can be an unbuffered channel + * remove calls to os.NewSyscallError +* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher) +* kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48) +* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) + +## [1.0.4] - 2014-09-07 + +* kqueue: add dragonfly to the build tags. +* Rename source code files, rearrange code so exported APIs are at the top. +* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang) + +## [1.0.3] - 2014-08-19 + +* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36) + +## [1.0.2] - 2014-08-17 + +* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) +* [Fix] Make ./path and path equivalent. (thanks @zhsso) + +## [1.0.0] - 2014-08-15 + +* [API] Remove AddWatch on Windows, use Add. +* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30) +* Minor updates based on feedback from golint. + +## dev / 2014-07-09 + +* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). +* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno) + +## dev / 2014-07-04 + +* kqueue: fix incorrect mutex used in Close() +* Update example to demonstrate usage of Op. + +## dev / 2014-06-28 + +* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4) +* Fix for String() method on Event (thanks Alex Brainman) +* Don't build on Plan 9 or Solaris (thanks @4ad) + +## dev / 2014-06-21 + +* Events channel of type Event rather than *Event. +* [internal] use syscall constants directly for inotify and kqueue. +* [internal] kqueue: rename events to kevents and fileEvent to event. + +## dev / 2014-06-19 + +* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally). +* [internal] remove cookie from Event struct (unused). +* [internal] Event struct has the same definition across every OS. +* [internal] remove internal watch and removeWatch methods. + +## dev / 2014-06-12 + +* [API] Renamed Watch() to Add() and RemoveWatch() to Remove(). +* [API] Pluralized channel names: Events and Errors. +* [API] Renamed FileEvent struct to Event. +* [API] Op constants replace methods like IsCreate(). + +## dev / 2014-06-12 + +* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) + +## dev / 2014-05-23 + +* [API] Remove current implementation of WatchFlags. + * current implementation doesn't take advantage of OS for efficiency + * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes + * no tests for the current implementation + * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195) + +## [0.9.3] - 2014-12-31 + +* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) + +## [0.9.2] - 2014-08-17 + +* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) + +## [0.9.1] - 2014-06-12 + +* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) + +## [0.9.0] - 2014-01-17 + +* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany) +* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare) +* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library. + +## [0.8.12] - 2013-11-13 + +* [API] Remove FD_SET and friends from Linux adapter + +## [0.8.11] - 2013-11-02 + +* [Doc] Add Changelog [#72][] (thanks @nathany) +* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond) + +## [0.8.10] - 2013-10-19 + +* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott) +* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer) +* [Doc] specify OS-specific limits in README (thanks @debrando) + +## [0.8.9] - 2013-09-08 + +* [Doc] Contributing (thanks @nathany) +* [Doc] update package path in example code [#63][] (thanks @paulhammond) +* [Doc] GoCI badge in README (Linux only) [#60][] +* [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany) + +## [0.8.8] - 2013-06-17 + +* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie) + +## [0.8.7] - 2013-06-03 + +* [API] Make syscall flags internal +* [Fix] inotify: ignore event changes +* [Fix] race in symlink test [#45][] (reported by @srid) +* [Fix] tests on Windows +* lower case error messages + +## [0.8.6] - 2013-05-23 + +* kqueue: Use EVT_ONLY flag on Darwin +* [Doc] Update README with full example + +## [0.8.5] - 2013-05-09 + +* [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg) + +## [0.8.4] - 2013-04-07 + +* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz) + +## [0.8.3] - 2013-03-13 + +* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin) +* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin) + +## [0.8.2] - 2013-02-07 + +* [Doc] add Authors +* [Fix] fix data races for map access [#29][] (thanks @fsouza) + +## [0.8.1] - 2013-01-09 + +* [Fix] Windows path separators +* [Doc] BSD License + +## [0.8.0] - 2012-11-09 + +* kqueue: directory watching improvements (thanks @vmirage) +* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto) +* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr) + +## [0.7.4] - 2012-10-09 + +* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji) +* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig) +* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig) +* [Fix] kqueue: modify after recreation of file + +## [0.7.3] - 2012-09-27 + +* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage) +* [Fix] kqueue: no longer get duplicate CREATE events + +## [0.7.2] - 2012-09-01 + +* kqueue: events for created directories + +## [0.7.1] - 2012-07-14 + +* [Fix] for renaming files + +## [0.7.0] - 2012-07-02 + +* [Feature] FSNotify flags +* [Fix] inotify: Added file name back to event path + +## [0.6.0] - 2012-06-06 + +* kqueue: watch files after directory created (thanks @tmc) + +## [0.5.1] - 2012-05-22 + +* [Fix] inotify: remove all watches before Close() + +## [0.5.0] - 2012-05-03 + +* [API] kqueue: return errors during watch instead of sending over channel +* kqueue: match symlink behavior on Linux +* inotify: add `DELETE_SELF` (requested by @taralx) +* [Fix] kqueue: handle EINTR (reported by @robfig) +* [Doc] Godoc example [#1][] (thanks @davecheney) + +## [0.4.0] - 2012-03-30 + +* Go 1 released: build with go tool +* [Feature] Windows support using winfsnotify +* Windows does not have attribute change notifications +* Roll attribute notifications into IsModify + +## [0.3.0] - 2012-02-19 + +* kqueue: add files when watch directory + +## [0.2.0] - 2011-12-30 + +* update to latest Go weekly code + +## [0.1.0] - 2011-10-19 + +* kqueue: add watch on file creation to match inotify +* kqueue: create file event +* inotify: ignore `IN_IGNORED` events +* event String() +* linux: common FileEvent functions +* initial commit + +[#79]: https://github.com/howeyc/fsnotify/pull/79 +[#77]: https://github.com/howeyc/fsnotify/pull/77 +[#72]: https://github.com/howeyc/fsnotify/issues/72 +[#71]: https://github.com/howeyc/fsnotify/issues/71 +[#70]: https://github.com/howeyc/fsnotify/issues/70 +[#63]: https://github.com/howeyc/fsnotify/issues/63 +[#62]: https://github.com/howeyc/fsnotify/issues/62 +[#60]: https://github.com/howeyc/fsnotify/issues/60 +[#59]: https://github.com/howeyc/fsnotify/issues/59 +[#49]: https://github.com/howeyc/fsnotify/issues/49 +[#45]: https://github.com/howeyc/fsnotify/issues/45 +[#40]: https://github.com/howeyc/fsnotify/issues/40 +[#36]: https://github.com/howeyc/fsnotify/issues/36 +[#33]: https://github.com/howeyc/fsnotify/issues/33 +[#29]: https://github.com/howeyc/fsnotify/issues/29 +[#25]: https://github.com/howeyc/fsnotify/issues/25 +[#24]: https://github.com/howeyc/fsnotify/issues/24 +[#21]: https://github.com/howeyc/fsnotify/issues/21 diff --git a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md new file mode 100644 index 0000000..ea37975 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md @@ -0,0 +1,26 @@ +Thank you for your interest in contributing to fsnotify! We try to review and +merge PRs in a reasonable timeframe, but please be aware that: + +- To avoid "wasted" work, please discus changes on the issue tracker first. You + can just send PRs, but they may end up being rejected for one reason or the + other. + +- fsnotify is a cross-platform library, and changes must work reasonably well on + all supported platforms. + +- Changes will need to be compatible; old code should still compile, and the + runtime behaviour can't change in ways that are likely to lead to problems for + users. + +Testing +------- +Just `go test ./...` runs all the tests; the CI runs this on all supported +platforms. Testing different platforms locally can be done with something like +[goon] or [Vagrant], but this isn't super-easy to set up at the moment. + +Use the `-short` flag to make the "stress test" run faster. + + +[goon]: https://github.com/arp242/goon +[Vagrant]: https://www.vagrantup.com/ +[integration_test.go]: /integration_test.go diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE new file mode 100644 index 0000000..fb03ade --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/LICENSE @@ -0,0 +1,25 @@ +Copyright © 2012 The Go Authors. All rights reserved. +Copyright © fsnotify Authors. 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. +* Neither the name of Google Inc. nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md new file mode 100644 index 0000000..e480733 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/README.md @@ -0,0 +1,184 @@ +fsnotify is a Go library to provide cross-platform filesystem notifications on +Windows, Linux, macOS, BSD, and illumos. + +Go 1.17 or newer is required; the full documentation is at +https://pkg.go.dev/github.com/fsnotify/fsnotify + +--- + +Platform support: + +| Backend | OS | Status | +| :-------------------- | :--------- | :------------------------------------------------------------------------ | +| inotify | Linux | Supported | +| kqueue | BSD, macOS | Supported | +| ReadDirectoryChangesW | Windows | Supported | +| FEN | illumos | Supported | +| fanotify | Linux 5.9+ | [Not yet](https://github.com/fsnotify/fsnotify/issues/114) | +| AHAFS | AIX | [aix branch]; experimental due to lack of maintainer and test environment | +| FSEvents | macOS | [Needs support in x/sys/unix][fsevents] | +| USN Journals | Windows | [Needs support in x/sys/windows][usn] | +| Polling | *All* | [Not yet](https://github.com/fsnotify/fsnotify/issues/9) | + +Linux and illumos should include Android and Solaris, but these are currently +untested. + +[fsevents]: https://github.com/fsnotify/fsnotify/issues/11#issuecomment-1279133120 +[usn]: https://github.com/fsnotify/fsnotify/issues/53#issuecomment-1279829847 +[aix branch]: https://github.com/fsnotify/fsnotify/issues/353#issuecomment-1284590129 + +Usage +----- +A basic example: + +```go +package main + +import ( + "log" + + "github.com/fsnotify/fsnotify" +) + +func main() { + // Create new watcher. + watcher, err := fsnotify.NewWatcher() + if err != nil { + log.Fatal(err) + } + defer watcher.Close() + + // Start listening for events. + go func() { + for { + select { + case event, ok := <-watcher.Events: + if !ok { + return + } + log.Println("event:", event) + if event.Has(fsnotify.Write) { + log.Println("modified file:", event.Name) + } + case err, ok := <-watcher.Errors: + if !ok { + return + } + log.Println("error:", err) + } + } + }() + + // Add a path. + err = watcher.Add("/tmp") + if err != nil { + log.Fatal(err) + } + + // Block main goroutine forever. + <-make(chan struct{}) +} +``` + +Some more examples can be found in [cmd/fsnotify](cmd/fsnotify), which can be +run with: + + % go run ./cmd/fsnotify + +Further detailed documentation can be found in godoc: +https://pkg.go.dev/github.com/fsnotify/fsnotify + +FAQ +--- +### Will a file still be watched when it's moved to another directory? +No, not unless you are watching the location it was moved to. + +### Are subdirectories watched? +No, you must add watches for any directory you want to watch (a recursive +watcher is on the roadmap: [#18]). + +[#18]: https://github.com/fsnotify/fsnotify/issues/18 + +### Do I have to watch the Error and Event channels in a goroutine? +Yes. You can read both channels in the same goroutine using `select` (you don't +need a separate goroutine for both channels; see the example). + +### Why don't notifications work with NFS, SMB, FUSE, /proc, or /sys? +fsnotify requires support from underlying OS to work. The current NFS and SMB +protocols does not provide network level support for file notifications, and +neither do the /proc and /sys virtual filesystems. + +This could be fixed with a polling watcher ([#9]), but it's not yet implemented. + +[#9]: https://github.com/fsnotify/fsnotify/issues/9 + +### Why do I get many Chmod events? +Some programs may generate a lot of attribute changes; for example Spotlight on +macOS, anti-virus programs, backup applications, and some others are known to do +this. As a rule, it's typically best to ignore Chmod events. They're often not +useful, and tend to cause problems. + +Spotlight indexing on macOS can result in multiple events (see [#15]). A +temporary workaround is to add your folder(s) to the *Spotlight Privacy +settings* until we have a native FSEvents implementation (see [#11]). + +[#11]: https://github.com/fsnotify/fsnotify/issues/11 +[#15]: https://github.com/fsnotify/fsnotify/issues/15 + +### Watching a file doesn't work well +Watching individual files (rather than directories) is generally not recommended +as many programs (especially editors) update files atomically: it will write to +a temporary file which is then moved to to destination, overwriting the original +(or some variant thereof). The watcher on the original file is now lost, as that +no longer exists. + +The upshot of this is that a power failure or crash won't leave a half-written +file. + +Watch the parent directory and use `Event.Name` to filter out files you're not +interested in. There is an example of this in `cmd/fsnotify/file.go`. + +Platform-specific notes +----------------------- +### Linux +When a file is removed a REMOVE event won't be emitted until all file +descriptors are closed; it will emit a CHMOD instead: + + fp := os.Open("file") + os.Remove("file") // CHMOD + fp.Close() // REMOVE + +This is the event that inotify sends, so not much can be changed about this. + +The `fs.inotify.max_user_watches` sysctl variable specifies the upper limit for +the number of watches per user, and `fs.inotify.max_user_instances` specifies +the maximum number of inotify instances per user. Every Watcher you create is an +"instance", and every path you add is a "watch". + +These are also exposed in `/proc` as `/proc/sys/fs/inotify/max_user_watches` and +`/proc/sys/fs/inotify/max_user_instances` + +To increase them you can use `sysctl` or write the value to proc file: + + # The default values on Linux 5.18 + sysctl fs.inotify.max_user_watches=124983 + sysctl fs.inotify.max_user_instances=128 + +To make the changes persist on reboot edit `/etc/sysctl.conf` or +`/usr/lib/sysctl.d/50-default.conf` (details differ per Linux distro; check your +distro's documentation): + + fs.inotify.max_user_watches=124983 + fs.inotify.max_user_instances=128 + +Reaching the limit will result in a "no space left on device" or "too many open +files" error. + +### kqueue (macOS, all BSD systems) +kqueue requires opening a file descriptor for every file that's being watched; +so if you're watching a directory with five files then that's six file +descriptors. You will run in to your system's "max open files" limit faster on +these platforms. + +The sysctl variables `kern.maxfiles` and `kern.maxfilesperproc` can be used to +control the maximum number of open files. diff --git a/vendor/github.com/fsnotify/fsnotify/backend_fen.go b/vendor/github.com/fsnotify/fsnotify/backend_fen.go new file mode 100644 index 0000000..28497f1 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_fen.go @@ -0,0 +1,640 @@ +//go:build solaris +// +build solaris + +// Note: the documentation on the Watcher type and methods is generated from +// mkdoc.zsh + +package fsnotify + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "sync" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # Windows notes +// +// Paths can be added as "C:\path\to\dir", but forward slashes +// ("C:/path/to/dir") will also work. +// +// When a watched directory is removed it will always send an event for the +// directory itself, but may not send events for all files in that directory. +// Sometimes it will send events for all times, sometimes it will send no +// events, and often only for some files. +// +// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest +// value that is guaranteed to work with SMB filesystems. If you have many +// events in quick succession this may not be enough, and you will have to use +// [WithBufferSize] to increase the value. +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, and you may + // want to wait until you've stopped receiving them + // (see the dedup example in cmd/fsnotify). + // + // Some systems may send Write event for directories + // when the directory content changes. + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // when a file is truncated. On Windows it's never + // sent. + Events chan Event + + // Errors sends any errors. + // + // ErrEventOverflow is used to indicate there are too many events: + // + // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) + // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. + // - kqueue, fen: Not used. + Errors chan error + + mu sync.Mutex + port *unix.EventPort + done chan struct{} // Channel for sending a "quit message" to the reader goroutine + dirs map[string]struct{} // Explicitly watched directories + watches map[string]struct{} // Explicitly watched non-directories +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return NewBufferedWatcher(0) +} + +// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events +// channel. +// +// The main use case for this is situations with a very large number of events +// where the kernel buffer size can't be increased (e.g. due to lack of +// permissions). An unbuffered Watcher will perform better for almost all use +// cases, and whenever possible you will be better off increasing the kernel +// buffers instead of adding a large userspace buffer. +func NewBufferedWatcher(sz uint) (*Watcher, error) { + w := &Watcher{ + Events: make(chan Event, sz), + Errors: make(chan error), + dirs: make(map[string]struct{}), + watches: make(map[string]struct{}), + done: make(chan struct{}), + } + + var err error + w.port, err = unix.NewEventPort() + if err != nil { + return nil, fmt.Errorf("fsnotify.NewWatcher: %w", err) + } + + go w.readEvents() + return w, nil +} + +// sendEvent attempts to send an event to the user, returning true if the event +// was put in the channel successfully and false if the watcher has been closed. +func (w *Watcher) sendEvent(name string, op Op) (sent bool) { + select { + case w.Events <- Event{Name: name, Op: op}: + return true + case <-w.done: + return false + } +} + +// sendError attempts to send an error to the user, returning true if the error +// was put in the channel successfully and false if the watcher has been closed. +func (w *Watcher) sendError(err error) (sent bool) { + select { + case w.Errors <- err: + return true + case <-w.done: + return false + } +} + +func (w *Watcher) isClosed() bool { + select { + case <-w.done: + return true + default: + return false + } +} + +// Close removes all watches and closes the Events channel. +func (w *Watcher) Close() error { + // Take the lock used by associateFile to prevent lingering events from + // being processed after the close + w.mu.Lock() + defer w.mu.Unlock() + if w.isClosed() { + return nil + } + close(w.done) + return w.port.Close() +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; watching it more than once is a no-op and will +// not return an error. Paths that do not yet exist on the filesystem cannot be +// watched. +// +// A watch will be automatically removed if the watched path is deleted or +// renamed. The exception is the Windows backend, which doesn't remove the +// watcher on renames. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// Returns [ErrClosed] if [Watcher.Close] was called. +// +// See [Watcher.AddWith] for a version that allows adding options. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many programs (especially editors) update files atomically: it +// will write to a temporary file which is then moved to to destination, +// overwriting the original (or some variant thereof). The watcher on the +// original file is now lost, as that no longer exists. +// +// The upshot of this is that a power failure or crash won't leave a +// half-written file. +// +// Watch the parent directory and use Event.Name to filter out files you're not +// interested in. There is an example of this in cmd/fsnotify/file.go. +func (w *Watcher) Add(name string) error { return w.AddWith(name) } + +// AddWith is like [Watcher.Add], but allows adding options. When using Add() +// the defaults described below are used. +// +// Possible options are: +// +// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on +// other platforms. The default is 64K (65536 bytes). +func (w *Watcher) AddWith(name string, opts ...addOpt) error { + if w.isClosed() { + return ErrClosed + } + if w.port.PathIsWatched(name) { + return nil + } + + _ = getOptions(opts...) + + // Currently we resolve symlinks that were explicitly requested to be + // watched. Otherwise we would use LStat here. + stat, err := os.Stat(name) + if err != nil { + return err + } + + // Associate all files in the directory. + if stat.IsDir() { + err := w.handleDirectory(name, stat, true, w.associateFile) + if err != nil { + return err + } + + w.mu.Lock() + w.dirs[name] = struct{}{} + w.mu.Unlock() + return nil + } + + err = w.associateFile(name, stat, true) + if err != nil { + return err + } + + w.mu.Lock() + w.watches[name] = struct{}{} + w.mu.Unlock() + return nil +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) Remove(name string) error { + if w.isClosed() { + return nil + } + if !w.port.PathIsWatched(name) { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) + } + + // The user has expressed an intent. Immediately remove this name from + // whichever watch list it might be in. If it's not in there the delete + // doesn't cause harm. + w.mu.Lock() + delete(w.watches, name) + delete(w.dirs, name) + w.mu.Unlock() + + stat, err := os.Stat(name) + if err != nil { + return err + } + + // Remove associations for every file in the directory. + if stat.IsDir() { + err := w.handleDirectory(name, stat, false, w.dissociateFile) + if err != nil { + return err + } + return nil + } + + err = w.port.DissociatePath(name) + if err != nil { + return err + } + + return nil +} + +// readEvents contains the main loop that runs in a goroutine watching for events. +func (w *Watcher) readEvents() { + // If this function returns, the watcher has been closed and we can close + // these channels + defer func() { + close(w.Errors) + close(w.Events) + }() + + pevents := make([]unix.PortEvent, 8) + for { + count, err := w.port.Get(pevents, 1, nil) + if err != nil && err != unix.ETIME { + // Interrupted system call (count should be 0) ignore and continue + if errors.Is(err, unix.EINTR) && count == 0 { + continue + } + // Get failed because we called w.Close() + if errors.Is(err, unix.EBADF) && w.isClosed() { + return + } + // There was an error not caused by calling w.Close() + if !w.sendError(err) { + return + } + } + + p := pevents[:count] + for _, pevent := range p { + if pevent.Source != unix.PORT_SOURCE_FILE { + // Event from unexpected source received; should never happen. + if !w.sendError(errors.New("Event from unexpected source received")) { + return + } + continue + } + + err = w.handleEvent(&pevent) + if err != nil { + if !w.sendError(err) { + return + } + } + } + } +} + +func (w *Watcher) handleDirectory(path string, stat os.FileInfo, follow bool, handler func(string, os.FileInfo, bool) error) error { + files, err := os.ReadDir(path) + if err != nil { + return err + } + + // Handle all children of the directory. + for _, entry := range files { + finfo, err := entry.Info() + if err != nil { + return err + } + err = handler(filepath.Join(path, finfo.Name()), finfo, false) + if err != nil { + return err + } + } + + // And finally handle the directory itself. + return handler(path, stat, follow) +} + +// handleEvent might need to emit more than one fsnotify event if the events +// bitmap matches more than one event type (e.g. the file was both modified and +// had the attributes changed between when the association was created and the +// when event was returned) +func (w *Watcher) handleEvent(event *unix.PortEvent) error { + var ( + events = event.Events + path = event.Path + fmode = event.Cookie.(os.FileMode) + reRegister = true + ) + + w.mu.Lock() + _, watchedDir := w.dirs[path] + _, watchedPath := w.watches[path] + w.mu.Unlock() + isWatched := watchedDir || watchedPath + + if events&unix.FILE_DELETE != 0 { + if !w.sendEvent(path, Remove) { + return nil + } + reRegister = false + } + if events&unix.FILE_RENAME_FROM != 0 { + if !w.sendEvent(path, Rename) { + return nil + } + // Don't keep watching the new file name + reRegister = false + } + if events&unix.FILE_RENAME_TO != 0 { + // We don't report a Rename event for this case, because Rename events + // are interpreted as referring to the _old_ name of the file, and in + // this case the event would refer to the new name of the file. This + // type of rename event is not supported by fsnotify. + + // inotify reports a Remove event in this case, so we simulate this + // here. + if !w.sendEvent(path, Remove) { + return nil + } + // Don't keep watching the file that was removed + reRegister = false + } + + // The file is gone, nothing left to do. + if !reRegister { + if watchedDir { + w.mu.Lock() + delete(w.dirs, path) + w.mu.Unlock() + } + if watchedPath { + w.mu.Lock() + delete(w.watches, path) + w.mu.Unlock() + } + return nil + } + + // If we didn't get a deletion the file still exists and we're going to have + // to watch it again. Let's Stat it now so that we can compare permissions + // and have what we need to continue watching the file + + stat, err := os.Lstat(path) + if err != nil { + // This is unexpected, but we should still emit an event. This happens + // most often on "rm -r" of a subdirectory inside a watched directory We + // get a modify event of something happening inside, but by the time we + // get here, the sudirectory is already gone. Clearly we were watching + // this path but now it is gone. Let's tell the user that it was + // removed. + if !w.sendEvent(path, Remove) { + return nil + } + // Suppress extra write events on removed directories; they are not + // informative and can be confusing. + return nil + } + + // resolve symlinks that were explicitly watched as we would have at Add() + // time. this helps suppress spurious Chmod events on watched symlinks + if isWatched { + stat, err = os.Stat(path) + if err != nil { + // The symlink still exists, but the target is gone. Report the + // Remove similar to above. + if !w.sendEvent(path, Remove) { + return nil + } + // Don't return the error + } + } + + if events&unix.FILE_MODIFIED != 0 { + if fmode.IsDir() { + if watchedDir { + if err := w.updateDirectory(path); err != nil { + return err + } + } else { + if !w.sendEvent(path, Write) { + return nil + } + } + } else { + if !w.sendEvent(path, Write) { + return nil + } + } + } + if events&unix.FILE_ATTRIB != 0 && stat != nil { + // Only send Chmod if perms changed + if stat.Mode().Perm() != fmode.Perm() { + if !w.sendEvent(path, Chmod) { + return nil + } + } + } + + if stat != nil { + // If we get here, it means we've hit an event above that requires us to + // continue watching the file or directory + return w.associateFile(path, stat, isWatched) + } + return nil +} + +func (w *Watcher) updateDirectory(path string) error { + // The directory was modified, so we must find unwatched entities and watch + // them. If something was removed from the directory, nothing will happen, + // as everything else should still be watched. + files, err := os.ReadDir(path) + if err != nil { + return err + } + + for _, entry := range files { + path := filepath.Join(path, entry.Name()) + if w.port.PathIsWatched(path) { + continue + } + + finfo, err := entry.Info() + if err != nil { + return err + } + err = w.associateFile(path, finfo, false) + if err != nil { + if !w.sendError(err) { + return nil + } + } + if !w.sendEvent(path, Create) { + return nil + } + } + return nil +} + +func (w *Watcher) associateFile(path string, stat os.FileInfo, follow bool) error { + if w.isClosed() { + return ErrClosed + } + // This is primarily protecting the call to AssociatePath but it is + // important and intentional that the call to PathIsWatched is also + // protected by this mutex. Without this mutex, AssociatePath has been seen + // to error out that the path is already associated. + w.mu.Lock() + defer w.mu.Unlock() + + if w.port.PathIsWatched(path) { + // Remove the old association in favor of this one If we get ENOENT, + // then while the x/sys/unix wrapper still thought that this path was + // associated, the underlying event port did not. This call will have + // cleared up that discrepancy. The most likely cause is that the event + // has fired but we haven't processed it yet. + err := w.port.DissociatePath(path) + if err != nil && err != unix.ENOENT { + return err + } + } + // FILE_NOFOLLOW means we watch symlinks themselves rather than their + // targets. + events := unix.FILE_MODIFIED | unix.FILE_ATTRIB | unix.FILE_NOFOLLOW + if follow { + // We *DO* follow symlinks for explicitly watched entries. + events = unix.FILE_MODIFIED | unix.FILE_ATTRIB + } + return w.port.AssociatePath(path, stat, + events, + stat.Mode()) +} + +func (w *Watcher) dissociateFile(path string, stat os.FileInfo, unused bool) error { + if !w.port.PathIsWatched(path) { + return nil + } + return w.port.DissociatePath(path) +} + +// WatchList returns all paths explicitly added with [Watcher.Add] (and are not +// yet removed). +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) WatchList() []string { + if w.isClosed() { + return nil + } + + w.mu.Lock() + defer w.mu.Unlock() + + entries := make([]string, 0, len(w.watches)+len(w.dirs)) + for pathname := range w.dirs { + entries = append(entries, pathname) + } + for pathname := range w.watches { + entries = append(entries, pathname) + } + + return entries +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_inotify.go b/vendor/github.com/fsnotify/fsnotify/backend_inotify.go new file mode 100644 index 0000000..921c1c1 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_inotify.go @@ -0,0 +1,594 @@ +//go:build linux && !appengine +// +build linux,!appengine + +// Note: the documentation on the Watcher type and methods is generated from +// mkdoc.zsh + +package fsnotify + +import ( + "errors" + "fmt" + "io" + "os" + "path/filepath" + "strings" + "sync" + "unsafe" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # Windows notes +// +// Paths can be added as "C:\path\to\dir", but forward slashes +// ("C:/path/to/dir") will also work. +// +// When a watched directory is removed it will always send an event for the +// directory itself, but may not send events for all files in that directory. +// Sometimes it will send events for all times, sometimes it will send no +// events, and often only for some files. +// +// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest +// value that is guaranteed to work with SMB filesystems. If you have many +// events in quick succession this may not be enough, and you will have to use +// [WithBufferSize] to increase the value. +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, and you may + // want to wait until you've stopped receiving them + // (see the dedup example in cmd/fsnotify). + // + // Some systems may send Write event for directories + // when the directory content changes. + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // when a file is truncated. On Windows it's never + // sent. + Events chan Event + + // Errors sends any errors. + // + // ErrEventOverflow is used to indicate there are too many events: + // + // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) + // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. + // - kqueue, fen: Not used. + Errors chan error + + // Store fd here as os.File.Read() will no longer return on close after + // calling Fd(). See: https://github.com/golang/go/issues/26439 + fd int + inotifyFile *os.File + watches *watches + done chan struct{} // Channel for sending a "quit message" to the reader goroutine + closeMu sync.Mutex + doneResp chan struct{} // Channel to respond to Close +} + +type ( + watches struct { + mu sync.RWMutex + wd map[uint32]*watch // wd → watch + path map[string]uint32 // pathname → wd + } + watch struct { + wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) + flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) + path string // Watch path. + } +) + +func newWatches() *watches { + return &watches{ + wd: make(map[uint32]*watch), + path: make(map[string]uint32), + } +} + +func (w *watches) len() int { + w.mu.RLock() + defer w.mu.RUnlock() + return len(w.wd) +} + +func (w *watches) add(ww *watch) { + w.mu.Lock() + defer w.mu.Unlock() + w.wd[ww.wd] = ww + w.path[ww.path] = ww.wd +} + +func (w *watches) remove(wd uint32) { + w.mu.Lock() + defer w.mu.Unlock() + delete(w.path, w.wd[wd].path) + delete(w.wd, wd) +} + +func (w *watches) removePath(path string) (uint32, bool) { + w.mu.Lock() + defer w.mu.Unlock() + + wd, ok := w.path[path] + if !ok { + return 0, false + } + + delete(w.path, path) + delete(w.wd, wd) + + return wd, true +} + +func (w *watches) byPath(path string) *watch { + w.mu.RLock() + defer w.mu.RUnlock() + return w.wd[w.path[path]] +} + +func (w *watches) byWd(wd uint32) *watch { + w.mu.RLock() + defer w.mu.RUnlock() + return w.wd[wd] +} + +func (w *watches) updatePath(path string, f func(*watch) (*watch, error)) error { + w.mu.Lock() + defer w.mu.Unlock() + + var existing *watch + wd, ok := w.path[path] + if ok { + existing = w.wd[wd] + } + + upd, err := f(existing) + if err != nil { + return err + } + if upd != nil { + w.wd[upd.wd] = upd + w.path[upd.path] = upd.wd + + if upd.wd != wd { + delete(w.wd, wd) + } + } + + return nil +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return NewBufferedWatcher(0) +} + +// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events +// channel. +// +// The main use case for this is situations with a very large number of events +// where the kernel buffer size can't be increased (e.g. due to lack of +// permissions). An unbuffered Watcher will perform better for almost all use +// cases, and whenever possible you will be better off increasing the kernel +// buffers instead of adding a large userspace buffer. +func NewBufferedWatcher(sz uint) (*Watcher, error) { + // Need to set nonblocking mode for SetDeadline to work, otherwise blocking + // I/O operations won't terminate on close. + fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC | unix.IN_NONBLOCK) + if fd == -1 { + return nil, errno + } + + w := &Watcher{ + fd: fd, + inotifyFile: os.NewFile(uintptr(fd), ""), + watches: newWatches(), + Events: make(chan Event, sz), + Errors: make(chan error), + done: make(chan struct{}), + doneResp: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +// Returns true if the event was sent, or false if watcher is closed. +func (w *Watcher) sendEvent(e Event) bool { + select { + case w.Events <- e: + return true + case <-w.done: + return false + } +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.done: + return false + } +} + +func (w *Watcher) isClosed() bool { + select { + case <-w.done: + return true + default: + return false + } +} + +// Close removes all watches and closes the Events channel. +func (w *Watcher) Close() error { + w.closeMu.Lock() + if w.isClosed() { + w.closeMu.Unlock() + return nil + } + close(w.done) + w.closeMu.Unlock() + + // Causes any blocking reads to return with an error, provided the file + // still supports deadline operations. + err := w.inotifyFile.Close() + if err != nil { + return err + } + + // Wait for goroutine to close + <-w.doneResp + + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; watching it more than once is a no-op and will +// not return an error. Paths that do not yet exist on the filesystem cannot be +// watched. +// +// A watch will be automatically removed if the watched path is deleted or +// renamed. The exception is the Windows backend, which doesn't remove the +// watcher on renames. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// Returns [ErrClosed] if [Watcher.Close] was called. +// +// See [Watcher.AddWith] for a version that allows adding options. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many programs (especially editors) update files atomically: it +// will write to a temporary file which is then moved to to destination, +// overwriting the original (or some variant thereof). The watcher on the +// original file is now lost, as that no longer exists. +// +// The upshot of this is that a power failure or crash won't leave a +// half-written file. +// +// Watch the parent directory and use Event.Name to filter out files you're not +// interested in. There is an example of this in cmd/fsnotify/file.go. +func (w *Watcher) Add(name string) error { return w.AddWith(name) } + +// AddWith is like [Watcher.Add], but allows adding options. When using Add() +// the defaults described below are used. +// +// Possible options are: +// +// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on +// other platforms. The default is 64K (65536 bytes). +func (w *Watcher) AddWith(name string, opts ...addOpt) error { + if w.isClosed() { + return ErrClosed + } + + name = filepath.Clean(name) + _ = getOptions(opts...) + + var flags uint32 = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | + unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | + unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF + + return w.watches.updatePath(name, func(existing *watch) (*watch, error) { + if existing != nil { + flags |= existing.flags | unix.IN_MASK_ADD + } + + wd, err := unix.InotifyAddWatch(w.fd, name, flags) + if wd == -1 { + return nil, err + } + + if existing == nil { + return &watch{ + wd: uint32(wd), + path: name, + flags: flags, + }, nil + } + + existing.wd = uint32(wd) + existing.flags = flags + return existing, nil + }) +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) Remove(name string) error { + if w.isClosed() { + return nil + } + return w.remove(filepath.Clean(name)) +} + +func (w *Watcher) remove(name string) error { + wd, ok := w.watches.removePath(name) + if !ok { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) + } + + success, errno := unix.InotifyRmWatch(w.fd, wd) + if success == -1 { + // TODO: Perhaps it's not helpful to return an error here in every case; + // The only two possible errors are: + // + // - EBADF, which happens when w.fd is not a valid file descriptor + // of any kind. + // - EINVAL, which is when fd is not an inotify descriptor or wd + // is not a valid watch descriptor. Watch descriptors are + // invalidated when they are removed explicitly or implicitly; + // explicitly by inotify_rm_watch, implicitly when the file they + // are watching is deleted. + return errno + } + return nil +} + +// WatchList returns all paths explicitly added with [Watcher.Add] (and are not +// yet removed). +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) WatchList() []string { + if w.isClosed() { + return nil + } + + entries := make([]string, 0, w.watches.len()) + w.watches.mu.RLock() + for pathname := range w.watches.path { + entries = append(entries, pathname) + } + w.watches.mu.RUnlock() + + return entries +} + +// readEvents reads from the inotify file descriptor, converts the +// received events into Event objects and sends them via the Events channel +func (w *Watcher) readEvents() { + defer func() { + close(w.doneResp) + close(w.Errors) + close(w.Events) + }() + + var ( + buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events + errno error // Syscall errno + ) + for { + // See if we have been closed. + if w.isClosed() { + return + } + + n, err := w.inotifyFile.Read(buf[:]) + switch { + case errors.Unwrap(err) == os.ErrClosed: + return + case err != nil: + if !w.sendError(err) { + return + } + continue + } + + if n < unix.SizeofInotifyEvent { + var err error + if n == 0 { + err = io.EOF // If EOF is received. This should really never happen. + } else if n < 0 { + err = errno // If an error occurred while reading. + } else { + err = errors.New("notify: short read in readEvents()") // Read was too short. + } + if !w.sendError(err) { + return + } + continue + } + + var offset uint32 + // We don't know how many events we just read into the buffer + // While the offset points to at least one whole event... + for offset <= uint32(n-unix.SizeofInotifyEvent) { + var ( + // Point "raw" to the event in the buffer + raw = (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) + mask = uint32(raw.Mask) + nameLen = uint32(raw.Len) + ) + + if mask&unix.IN_Q_OVERFLOW != 0 { + if !w.sendError(ErrEventOverflow) { + return + } + } + + // If the event happened to the watched directory or the watched file, the kernel + // doesn't append the filename to the event, but we would like to always fill the + // the "Name" field with a valid filename. We retrieve the path of the watch from + // the "paths" map. + watch := w.watches.byWd(uint32(raw.Wd)) + + // inotify will automatically remove the watch on deletes; just need + // to clean our state here. + if watch != nil && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { + w.watches.remove(watch.wd) + } + // We can't really update the state when a watched path is moved; + // only IN_MOVE_SELF is sent and not IN_MOVED_{FROM,TO}. So remove + // the watch. + if watch != nil && mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF { + err := w.remove(watch.path) + if err != nil && !errors.Is(err, ErrNonExistentWatch) { + if !w.sendError(err) { + return + } + } + } + + var name string + if watch != nil { + name = watch.path + } + if nameLen > 0 { + // Point "bytes" at the first byte of the filename + bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen] + // The filename is padded with NULL bytes. TrimRight() gets rid of those. + name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") + } + + event := w.newEvent(name, mask) + + // Send the events that are not ignored on the events channel + if mask&unix.IN_IGNORED == 0 { + if !w.sendEvent(event) { + return + } + } + + // Move to the next event in the buffer + offset += unix.SizeofInotifyEvent + nameLen + } + } +} + +// newEvent returns an platform-independent Event based on an inotify mask. +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { + e.Op |= Create + } + if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { + e.Op |= Remove + } + if mask&unix.IN_MODIFY == unix.IN_MODIFY { + e.Op |= Write + } + if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { + e.Op |= Rename + } + if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { + e.Op |= Chmod + } + return e +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go b/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go new file mode 100644 index 0000000..063a091 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go @@ -0,0 +1,782 @@ +//go:build freebsd || openbsd || netbsd || dragonfly || darwin +// +build freebsd openbsd netbsd dragonfly darwin + +// Note: the documentation on the Watcher type and methods is generated from +// mkdoc.zsh + +package fsnotify + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "sync" + + "golang.org/x/sys/unix" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # Windows notes +// +// Paths can be added as "C:\path\to\dir", but forward slashes +// ("C:/path/to/dir") will also work. +// +// When a watched directory is removed it will always send an event for the +// directory itself, but may not send events for all files in that directory. +// Sometimes it will send events for all times, sometimes it will send no +// events, and often only for some files. +// +// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest +// value that is guaranteed to work with SMB filesystems. If you have many +// events in quick succession this may not be enough, and you will have to use +// [WithBufferSize] to increase the value. +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, and you may + // want to wait until you've stopped receiving them + // (see the dedup example in cmd/fsnotify). + // + // Some systems may send Write event for directories + // when the directory content changes. + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // when a file is truncated. On Windows it's never + // sent. + Events chan Event + + // Errors sends any errors. + // + // ErrEventOverflow is used to indicate there are too many events: + // + // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) + // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. + // - kqueue, fen: Not used. + Errors chan error + + done chan struct{} + kq int // File descriptor (as returned by the kqueue() syscall). + closepipe [2]int // Pipe used for closing. + mu sync.Mutex // Protects access to watcher data + watches map[string]int // Watched file descriptors (key: path). + watchesByDir map[string]map[int]struct{} // Watched file descriptors indexed by the parent directory (key: dirname(path)). + userWatches map[string]struct{} // Watches added with Watcher.Add() + dirFlags map[string]uint32 // Watched directories to fflags used in kqueue. + paths map[int]pathInfo // File descriptors to path names for processing kqueue events. + fileExists map[string]struct{} // Keep track of if we know this file exists (to stop duplicate create events). + isClosed bool // Set to true when Close() is first called +} + +type pathInfo struct { + name string + isDir bool +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return NewBufferedWatcher(0) +} + +// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events +// channel. +// +// The main use case for this is situations with a very large number of events +// where the kernel buffer size can't be increased (e.g. due to lack of +// permissions). An unbuffered Watcher will perform better for almost all use +// cases, and whenever possible you will be better off increasing the kernel +// buffers instead of adding a large userspace buffer. +func NewBufferedWatcher(sz uint) (*Watcher, error) { + kq, closepipe, err := newKqueue() + if err != nil { + return nil, err + } + + w := &Watcher{ + kq: kq, + closepipe: closepipe, + watches: make(map[string]int), + watchesByDir: make(map[string]map[int]struct{}), + dirFlags: make(map[string]uint32), + paths: make(map[int]pathInfo), + fileExists: make(map[string]struct{}), + userWatches: make(map[string]struct{}), + Events: make(chan Event, sz), + Errors: make(chan error), + done: make(chan struct{}), + } + + go w.readEvents() + return w, nil +} + +// newKqueue creates a new kernel event queue and returns a descriptor. +// +// This registers a new event on closepipe, which will trigger an event when +// it's closed. This way we can use kevent() without timeout/polling; without +// the closepipe, it would block forever and we wouldn't be able to stop it at +// all. +func newKqueue() (kq int, closepipe [2]int, err error) { + kq, err = unix.Kqueue() + if kq == -1 { + return kq, closepipe, err + } + + // Register the close pipe. + err = unix.Pipe(closepipe[:]) + if err != nil { + unix.Close(kq) + return kq, closepipe, err + } + + // Register changes to listen on the closepipe. + changes := make([]unix.Kevent_t, 1) + // SetKevent converts int to the platform-specific types. + unix.SetKevent(&changes[0], closepipe[0], unix.EVFILT_READ, + unix.EV_ADD|unix.EV_ENABLE|unix.EV_ONESHOT) + + ok, err := unix.Kevent(kq, changes, nil, nil) + if ok == -1 { + unix.Close(kq) + unix.Close(closepipe[0]) + unix.Close(closepipe[1]) + return kq, closepipe, err + } + return kq, closepipe, nil +} + +// Returns true if the event was sent, or false if watcher is closed. +func (w *Watcher) sendEvent(e Event) bool { + select { + case w.Events <- e: + return true + case <-w.done: + return false + } +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.done: + return false + } +} + +// Close removes all watches and closes the Events channel. +func (w *Watcher) Close() error { + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return nil + } + w.isClosed = true + + // copy paths to remove while locked + pathsToRemove := make([]string, 0, len(w.watches)) + for name := range w.watches { + pathsToRemove = append(pathsToRemove, name) + } + w.mu.Unlock() // Unlock before calling Remove, which also locks + for _, name := range pathsToRemove { + w.Remove(name) + } + + // Send "quit" message to the reader goroutine. + unix.Close(w.closepipe[1]) + close(w.done) + + return nil +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; watching it more than once is a no-op and will +// not return an error. Paths that do not yet exist on the filesystem cannot be +// watched. +// +// A watch will be automatically removed if the watched path is deleted or +// renamed. The exception is the Windows backend, which doesn't remove the +// watcher on renames. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// Returns [ErrClosed] if [Watcher.Close] was called. +// +// See [Watcher.AddWith] for a version that allows adding options. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many programs (especially editors) update files atomically: it +// will write to a temporary file which is then moved to to destination, +// overwriting the original (or some variant thereof). The watcher on the +// original file is now lost, as that no longer exists. +// +// The upshot of this is that a power failure or crash won't leave a +// half-written file. +// +// Watch the parent directory and use Event.Name to filter out files you're not +// interested in. There is an example of this in cmd/fsnotify/file.go. +func (w *Watcher) Add(name string) error { return w.AddWith(name) } + +// AddWith is like [Watcher.Add], but allows adding options. When using Add() +// the defaults described below are used. +// +// Possible options are: +// +// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on +// other platforms. The default is 64K (65536 bytes). +func (w *Watcher) AddWith(name string, opts ...addOpt) error { + _ = getOptions(opts...) + + w.mu.Lock() + w.userWatches[name] = struct{}{} + w.mu.Unlock() + _, err := w.addWatch(name, noteAllEvents) + return err +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) Remove(name string) error { + return w.remove(name, true) +} + +func (w *Watcher) remove(name string, unwatchFiles bool) error { + name = filepath.Clean(name) + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return nil + } + watchfd, ok := w.watches[name] + w.mu.Unlock() + if !ok { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) + } + + err := w.register([]int{watchfd}, unix.EV_DELETE, 0) + if err != nil { + return err + } + + unix.Close(watchfd) + + w.mu.Lock() + isDir := w.paths[watchfd].isDir + delete(w.watches, name) + delete(w.userWatches, name) + + parentName := filepath.Dir(name) + delete(w.watchesByDir[parentName], watchfd) + + if len(w.watchesByDir[parentName]) == 0 { + delete(w.watchesByDir, parentName) + } + + delete(w.paths, watchfd) + delete(w.dirFlags, name) + delete(w.fileExists, name) + w.mu.Unlock() + + // Find all watched paths that are in this directory that are not external. + if unwatchFiles && isDir { + var pathsToRemove []string + w.mu.Lock() + for fd := range w.watchesByDir[name] { + path := w.paths[fd] + if _, ok := w.userWatches[path.name]; !ok { + pathsToRemove = append(pathsToRemove, path.name) + } + } + w.mu.Unlock() + for _, name := range pathsToRemove { + // Since these are internal, not much sense in propagating error to + // the user, as that will just confuse them with an error about a + // path they did not explicitly watch themselves. + w.Remove(name) + } + } + return nil +} + +// WatchList returns all paths explicitly added with [Watcher.Add] (and are not +// yet removed). +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) WatchList() []string { + w.mu.Lock() + defer w.mu.Unlock() + if w.isClosed { + return nil + } + + entries := make([]string, 0, len(w.userWatches)) + for pathname := range w.userWatches { + entries = append(entries, pathname) + } + + return entries +} + +// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) +const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME + +// addWatch adds name to the watched file set; the flags are interpreted as +// described in kevent(2). +// +// Returns the real path to the file which was added, with symlinks resolved. +func (w *Watcher) addWatch(name string, flags uint32) (string, error) { + var isDir bool + name = filepath.Clean(name) + + w.mu.Lock() + if w.isClosed { + w.mu.Unlock() + return "", ErrClosed + } + watchfd, alreadyWatching := w.watches[name] + // We already have a watch, but we can still override flags. + if alreadyWatching { + isDir = w.paths[watchfd].isDir + } + w.mu.Unlock() + + if !alreadyWatching { + fi, err := os.Lstat(name) + if err != nil { + return "", err + } + + // Don't watch sockets or named pipes + if (fi.Mode()&os.ModeSocket == os.ModeSocket) || (fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe) { + return "", nil + } + + // Follow Symlinks. + if fi.Mode()&os.ModeSymlink == os.ModeSymlink { + link, err := os.Readlink(name) + if err != nil { + // Return nil because Linux can add unresolvable symlinks to the + // watch list without problems, so maintain consistency with + // that. There will be no file events for broken symlinks. + // TODO: more specific check; returns os.PathError; ENOENT? + return "", nil + } + + w.mu.Lock() + _, alreadyWatching = w.watches[link] + w.mu.Unlock() + + if alreadyWatching { + // Add to watches so we don't get spurious Create events later + // on when we diff the directories. + w.watches[name] = 0 + w.fileExists[name] = struct{}{} + return link, nil + } + + name = link + fi, err = os.Lstat(name) + if err != nil { + return "", nil + } + } + + // Retry on EINTR; open() can return EINTR in practice on macOS. + // See #354, and Go issues 11180 and 39237. + for { + watchfd, err = unix.Open(name, openMode, 0) + if err == nil { + break + } + if errors.Is(err, unix.EINTR) { + continue + } + + return "", err + } + + isDir = fi.IsDir() + } + + err := w.register([]int{watchfd}, unix.EV_ADD|unix.EV_CLEAR|unix.EV_ENABLE, flags) + if err != nil { + unix.Close(watchfd) + return "", err + } + + if !alreadyWatching { + w.mu.Lock() + parentName := filepath.Dir(name) + w.watches[name] = watchfd + + watchesByDir, ok := w.watchesByDir[parentName] + if !ok { + watchesByDir = make(map[int]struct{}, 1) + w.watchesByDir[parentName] = watchesByDir + } + watchesByDir[watchfd] = struct{}{} + w.paths[watchfd] = pathInfo{name: name, isDir: isDir} + w.mu.Unlock() + } + + if isDir { + // Watch the directory if it has not been watched before, or if it was + // watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) + w.mu.Lock() + + watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && + (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) + // Store flags so this watch can be updated later + w.dirFlags[name] = flags + w.mu.Unlock() + + if watchDir { + if err := w.watchDirectoryFiles(name); err != nil { + return "", err + } + } + } + return name, nil +} + +// readEvents reads from kqueue and converts the received kevents into +// Event values that it sends down the Events channel. +func (w *Watcher) readEvents() { + defer func() { + close(w.Events) + close(w.Errors) + _ = unix.Close(w.kq) + unix.Close(w.closepipe[0]) + }() + + eventBuffer := make([]unix.Kevent_t, 10) + for closed := false; !closed; { + kevents, err := w.read(eventBuffer) + // EINTR is okay, the syscall was interrupted before timeout expired. + if err != nil && err != unix.EINTR { + if !w.sendError(fmt.Errorf("fsnotify.readEvents: %w", err)) { + closed = true + } + continue + } + + // Flush the events we received to the Events channel + for _, kevent := range kevents { + var ( + watchfd = int(kevent.Ident) + mask = uint32(kevent.Fflags) + ) + + // Shut down the loop when the pipe is closed, but only after all + // other events have been processed. + if watchfd == w.closepipe[0] { + closed = true + continue + } + + w.mu.Lock() + path := w.paths[watchfd] + w.mu.Unlock() + + event := w.newEvent(path.name, mask) + + if event.Has(Rename) || event.Has(Remove) { + w.remove(event.Name, false) + w.mu.Lock() + delete(w.fileExists, event.Name) + w.mu.Unlock() + } + + if path.isDir && event.Has(Write) && !event.Has(Remove) { + w.sendDirectoryChangeEvents(event.Name) + } else { + if !w.sendEvent(event) { + closed = true + continue + } + } + + if event.Has(Remove) { + // Look for a file that may have overwritten this; for example, + // mv f1 f2 will delete f2, then create f2. + if path.isDir { + fileDir := filepath.Clean(event.Name) + w.mu.Lock() + _, found := w.watches[fileDir] + w.mu.Unlock() + if found { + err := w.sendDirectoryChangeEvents(fileDir) + if err != nil { + if !w.sendError(err) { + closed = true + } + } + } + } else { + filePath := filepath.Clean(event.Name) + if fi, err := os.Lstat(filePath); err == nil { + err := w.sendFileCreatedEventIfNew(filePath, fi) + if err != nil { + if !w.sendError(err) { + closed = true + } + } + } + } + } + } + } +} + +// newEvent returns an platform-independent Event based on kqueue Fflags. +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { + e.Op |= Remove + } + if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { + e.Op |= Write + } + if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { + e.Op |= Rename + } + if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { + e.Op |= Chmod + } + // No point sending a write and delete event at the same time: if it's gone, + // then it's gone. + if e.Op.Has(Write) && e.Op.Has(Remove) { + e.Op &^= Write + } + return e +} + +// watchDirectoryFiles to mimic inotify when adding a watch on a directory +func (w *Watcher) watchDirectoryFiles(dirPath string) error { + // Get all files + files, err := os.ReadDir(dirPath) + if err != nil { + return err + } + + for _, f := range files { + path := filepath.Join(dirPath, f.Name()) + + fi, err := f.Info() + if err != nil { + return fmt.Errorf("%q: %w", path, err) + } + + cleanPath, err := w.internalWatch(path, fi) + if err != nil { + // No permission to read the file; that's not a problem: just skip. + // But do add it to w.fileExists to prevent it from being picked up + // as a "new" file later (it still shows up in the directory + // listing). + switch { + case errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM): + cleanPath = filepath.Clean(path) + default: + return fmt.Errorf("%q: %w", path, err) + } + } + + w.mu.Lock() + w.fileExists[cleanPath] = struct{}{} + w.mu.Unlock() + } + + return nil +} + +// Search the directory for new files and send an event for them. +// +// This functionality is to have the BSD watcher match the inotify, which sends +// a create event for files created in a watched directory. +func (w *Watcher) sendDirectoryChangeEvents(dir string) error { + files, err := os.ReadDir(dir) + if err != nil { + // Directory no longer exists: we can ignore this safely. kqueue will + // still give us the correct events. + if errors.Is(err, os.ErrNotExist) { + return nil + } + return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) + } + + for _, f := range files { + fi, err := f.Info() + if err != nil { + return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) + } + + err = w.sendFileCreatedEventIfNew(filepath.Join(dir, fi.Name()), fi) + if err != nil { + // Don't need to send an error if this file isn't readable. + if errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM) { + return nil + } + return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) + } + } + return nil +} + +// sendFileCreatedEvent sends a create event if the file isn't already being tracked. +func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fi os.FileInfo) (err error) { + w.mu.Lock() + _, doesExist := w.fileExists[filePath] + w.mu.Unlock() + if !doesExist { + if !w.sendEvent(Event{Name: filePath, Op: Create}) { + return + } + } + + // like watchDirectoryFiles (but without doing another ReadDir) + filePath, err = w.internalWatch(filePath, fi) + if err != nil { + return err + } + + w.mu.Lock() + w.fileExists[filePath] = struct{}{} + w.mu.Unlock() + + return nil +} + +func (w *Watcher) internalWatch(name string, fi os.FileInfo) (string, error) { + if fi.IsDir() { + // mimic Linux providing delete events for subdirectories, but preserve + // the flags used if currently watching subdirectory + w.mu.Lock() + flags := w.dirFlags[name] + w.mu.Unlock() + + flags |= unix.NOTE_DELETE | unix.NOTE_RENAME + return w.addWatch(name, flags) + } + + // watch file to mimic Linux inotify + return w.addWatch(name, noteAllEvents) +} + +// Register events with the queue. +func (w *Watcher) register(fds []int, flags int, fflags uint32) error { + changes := make([]unix.Kevent_t, len(fds)) + for i, fd := range fds { + // SetKevent converts int to the platform-specific types. + unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) + changes[i].Fflags = fflags + } + + // Register the events. + success, err := unix.Kevent(w.kq, changes, nil, nil) + if success == -1 { + return err + } + return nil +} + +// read retrieves pending events, or waits until an event occurs. +func (w *Watcher) read(events []unix.Kevent_t) ([]unix.Kevent_t, error) { + n, err := unix.Kevent(w.kq, nil, events, nil) + if err != nil { + return nil, err + } + return events[0:n], nil +} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_other.go b/vendor/github.com/fsnotify/fsnotify/backend_other.go new file mode 100644 index 0000000..d34a23c --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_other.go @@ -0,0 +1,205 @@ +//go:build appengine || (!darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows) +// +build appengine !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows + +// Note: the documentation on the Watcher type and methods is generated from +// mkdoc.zsh + +package fsnotify + +import "errors" + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # Windows notes +// +// Paths can be added as "C:\path\to\dir", but forward slashes +// ("C:/path/to/dir") will also work. +// +// When a watched directory is removed it will always send an event for the +// directory itself, but may not send events for all files in that directory. +// Sometimes it will send events for all times, sometimes it will send no +// events, and often only for some files. +// +// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest +// value that is guaranteed to work with SMB filesystems. If you have many +// events in quick succession this may not be enough, and you will have to use +// [WithBufferSize] to increase the value. +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, and you may + // want to wait until you've stopped receiving them + // (see the dedup example in cmd/fsnotify). + // + // Some systems may send Write event for directories + // when the directory content changes. + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // when a file is truncated. On Windows it's never + // sent. + Events chan Event + + // Errors sends any errors. + // + // ErrEventOverflow is used to indicate there are too many events: + // + // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) + // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. + // - kqueue, fen: Not used. + Errors chan error +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return nil, errors.New("fsnotify not supported on the current platform") +} + +// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events +// channel. +// +// The main use case for this is situations with a very large number of events +// where the kernel buffer size can't be increased (e.g. due to lack of +// permissions). An unbuffered Watcher will perform better for almost all use +// cases, and whenever possible you will be better off increasing the kernel +// buffers instead of adding a large userspace buffer. +func NewBufferedWatcher(sz uint) (*Watcher, error) { return NewWatcher() } + +// Close removes all watches and closes the Events channel. +func (w *Watcher) Close() error { return nil } + +// WatchList returns all paths explicitly added with [Watcher.Add] (and are not +// yet removed). +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) WatchList() []string { return nil } + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; watching it more than once is a no-op and will +// not return an error. Paths that do not yet exist on the filesystem cannot be +// watched. +// +// A watch will be automatically removed if the watched path is deleted or +// renamed. The exception is the Windows backend, which doesn't remove the +// watcher on renames. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// Returns [ErrClosed] if [Watcher.Close] was called. +// +// See [Watcher.AddWith] for a version that allows adding options. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many programs (especially editors) update files atomically: it +// will write to a temporary file which is then moved to to destination, +// overwriting the original (or some variant thereof). The watcher on the +// original file is now lost, as that no longer exists. +// +// The upshot of this is that a power failure or crash won't leave a +// half-written file. +// +// Watch the parent directory and use Event.Name to filter out files you're not +// interested in. There is an example of this in cmd/fsnotify/file.go. +func (w *Watcher) Add(name string) error { return nil } + +// AddWith is like [Watcher.Add], but allows adding options. When using Add() +// the defaults described below are used. +// +// Possible options are: +// +// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on +// other platforms. The default is 64K (65536 bytes). +func (w *Watcher) AddWith(name string, opts ...addOpt) error { return nil } + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) Remove(name string) error { return nil } diff --git a/vendor/github.com/fsnotify/fsnotify/backend_windows.go b/vendor/github.com/fsnotify/fsnotify/backend_windows.go new file mode 100644 index 0000000..9bc91e5 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/backend_windows.go @@ -0,0 +1,827 @@ +//go:build windows +// +build windows + +// Windows backend based on ReadDirectoryChangesW() +// +// https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw +// +// Note: the documentation on the Watcher type and methods is generated from +// mkdoc.zsh + +package fsnotify + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "reflect" + "runtime" + "strings" + "sync" + "unsafe" + + "golang.org/x/sys/windows" +) + +// Watcher watches a set of paths, delivering events on a channel. +// +// A watcher should not be copied (e.g. pass it by pointer, rather than by +// value). +// +// # Linux notes +// +// When a file is removed a Remove event won't be emitted until all file +// descriptors are closed, and deletes will always emit a Chmod. For example: +// +// fp := os.Open("file") +// os.Remove("file") // Triggers Chmod +// fp.Close() // Triggers Remove +// +// This is the event that inotify sends, so not much can be changed about this. +// +// The fs.inotify.max_user_watches sysctl variable specifies the upper limit +// for the number of watches per user, and fs.inotify.max_user_instances +// specifies the maximum number of inotify instances per user. Every Watcher you +// create is an "instance", and every path you add is a "watch". +// +// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and +// /proc/sys/fs/inotify/max_user_instances +// +// To increase them you can use sysctl or write the value to the /proc file: +// +// # Default values on Linux 5.18 +// sysctl fs.inotify.max_user_watches=124983 +// sysctl fs.inotify.max_user_instances=128 +// +// To make the changes persist on reboot edit /etc/sysctl.conf or +// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check +// your distro's documentation): +// +// fs.inotify.max_user_watches=124983 +// fs.inotify.max_user_instances=128 +// +// Reaching the limit will result in a "no space left on device" or "too many open +// files" error. +// +// # kqueue notes (macOS, BSD) +// +// kqueue requires opening a file descriptor for every file that's being watched; +// so if you're watching a directory with five files then that's six file +// descriptors. You will run in to your system's "max open files" limit faster on +// these platforms. +// +// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to +// control the maximum number of open files, as well as /etc/login.conf on BSD +// systems. +// +// # Windows notes +// +// Paths can be added as "C:\path\to\dir", but forward slashes +// ("C:/path/to/dir") will also work. +// +// When a watched directory is removed it will always send an event for the +// directory itself, but may not send events for all files in that directory. +// Sometimes it will send events for all times, sometimes it will send no +// events, and often only for some files. +// +// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest +// value that is guaranteed to work with SMB filesystems. If you have many +// events in quick succession this may not be enough, and you will have to use +// [WithBufferSize] to increase the value. +type Watcher struct { + // Events sends the filesystem change events. + // + // fsnotify can send the following events; a "path" here can refer to a + // file, directory, symbolic link, or special file like a FIFO. + // + // fsnotify.Create A new path was created; this may be followed by one + // or more Write events if data also gets written to a + // file. + // + // fsnotify.Remove A path was removed. + // + // fsnotify.Rename A path was renamed. A rename is always sent with the + // old path as Event.Name, and a Create event will be + // sent with the new name. Renames are only sent for + // paths that are currently watched; e.g. moving an + // unmonitored file into a monitored directory will + // show up as just a Create. Similarly, renaming a file + // to outside a monitored directory will show up as + // only a Rename. + // + // fsnotify.Write A file or named pipe was written to. A Truncate will + // also trigger a Write. A single "write action" + // initiated by the user may show up as one or multiple + // writes, depending on when the system syncs things to + // disk. For example when compiling a large Go program + // you may get hundreds of Write events, and you may + // want to wait until you've stopped receiving them + // (see the dedup example in cmd/fsnotify). + // + // Some systems may send Write event for directories + // when the directory content changes. + // + // fsnotify.Chmod Attributes were changed. On Linux this is also sent + // when a file is removed (or more accurately, when a + // link to an inode is removed). On kqueue it's sent + // when a file is truncated. On Windows it's never + // sent. + Events chan Event + + // Errors sends any errors. + // + // ErrEventOverflow is used to indicate there are too many events: + // + // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) + // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. + // - kqueue, fen: Not used. + Errors chan error + + port windows.Handle // Handle to completion port + input chan *input // Inputs to the reader are sent on this channel + quit chan chan<- error + + mu sync.Mutex // Protects access to watches, closed + watches watchMap // Map of watches (key: i-number) + closed bool // Set to true when Close() is first called +} + +// NewWatcher creates a new Watcher. +func NewWatcher() (*Watcher, error) { + return NewBufferedWatcher(50) +} + +// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events +// channel. +// +// The main use case for this is situations with a very large number of events +// where the kernel buffer size can't be increased (e.g. due to lack of +// permissions). An unbuffered Watcher will perform better for almost all use +// cases, and whenever possible you will be better off increasing the kernel +// buffers instead of adding a large userspace buffer. +func NewBufferedWatcher(sz uint) (*Watcher, error) { + port, err := windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0) + if err != nil { + return nil, os.NewSyscallError("CreateIoCompletionPort", err) + } + w := &Watcher{ + port: port, + watches: make(watchMap), + input: make(chan *input, 1), + Events: make(chan Event, sz), + Errors: make(chan error), + quit: make(chan chan<- error, 1), + } + go w.readEvents() + return w, nil +} + +func (w *Watcher) isClosed() bool { + w.mu.Lock() + defer w.mu.Unlock() + return w.closed +} + +func (w *Watcher) sendEvent(name string, mask uint64) bool { + if mask == 0 { + return false + } + + event := w.newEvent(name, uint32(mask)) + select { + case ch := <-w.quit: + w.quit <- ch + case w.Events <- event: + } + return true +} + +// Returns true if the error was sent, or false if watcher is closed. +func (w *Watcher) sendError(err error) bool { + select { + case w.Errors <- err: + return true + case <-w.quit: + } + return false +} + +// Close removes all watches and closes the Events channel. +func (w *Watcher) Close() error { + if w.isClosed() { + return nil + } + + w.mu.Lock() + w.closed = true + w.mu.Unlock() + + // Send "quit" message to the reader goroutine + ch := make(chan error) + w.quit <- ch + if err := w.wakeupReader(); err != nil { + return err + } + return <-ch +} + +// Add starts monitoring the path for changes. +// +// A path can only be watched once; watching it more than once is a no-op and will +// not return an error. Paths that do not yet exist on the filesystem cannot be +// watched. +// +// A watch will be automatically removed if the watched path is deleted or +// renamed. The exception is the Windows backend, which doesn't remove the +// watcher on renames. +// +// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special +// filesystems (/proc, /sys, etc.) generally don't work. +// +// Returns [ErrClosed] if [Watcher.Close] was called. +// +// See [Watcher.AddWith] for a version that allows adding options. +// +// # Watching directories +// +// All files in a directory are monitored, including new files that are created +// after the watcher is started. Subdirectories are not watched (i.e. it's +// non-recursive). +// +// # Watching files +// +// Watching individual files (rather than directories) is generally not +// recommended as many programs (especially editors) update files atomically: it +// will write to a temporary file which is then moved to to destination, +// overwriting the original (or some variant thereof). The watcher on the +// original file is now lost, as that no longer exists. +// +// The upshot of this is that a power failure or crash won't leave a +// half-written file. +// +// Watch the parent directory and use Event.Name to filter out files you're not +// interested in. There is an example of this in cmd/fsnotify/file.go. +func (w *Watcher) Add(name string) error { return w.AddWith(name) } + +// AddWith is like [Watcher.Add], but allows adding options. When using Add() +// the defaults described below are used. +// +// Possible options are: +// +// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on +// other platforms. The default is 64K (65536 bytes). +func (w *Watcher) AddWith(name string, opts ...addOpt) error { + if w.isClosed() { + return ErrClosed + } + + with := getOptions(opts...) + if with.bufsize < 4096 { + return fmt.Errorf("fsnotify.WithBufferSize: buffer size cannot be smaller than 4096 bytes") + } + + in := &input{ + op: opAddWatch, + path: filepath.Clean(name), + flags: sysFSALLEVENTS, + reply: make(chan error), + bufsize: with.bufsize, + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +// Remove stops monitoring the path for changes. +// +// Directories are always removed non-recursively. For example, if you added +// /tmp/dir and /tmp/dir/subdir then you will need to remove both. +// +// Removing a path that has not yet been added returns [ErrNonExistentWatch]. +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) Remove(name string) error { + if w.isClosed() { + return nil + } + + in := &input{ + op: opRemoveWatch, + path: filepath.Clean(name), + reply: make(chan error), + } + w.input <- in + if err := w.wakeupReader(); err != nil { + return err + } + return <-in.reply +} + +// WatchList returns all paths explicitly added with [Watcher.Add] (and are not +// yet removed). +// +// Returns nil if [Watcher.Close] was called. +func (w *Watcher) WatchList() []string { + if w.isClosed() { + return nil + } + + w.mu.Lock() + defer w.mu.Unlock() + + entries := make([]string, 0, len(w.watches)) + for _, entry := range w.watches { + for _, watchEntry := range entry { + entries = append(entries, watchEntry.path) + } + } + + return entries +} + +// These options are from the old golang.org/x/exp/winfsnotify, where you could +// add various options to the watch. This has long since been removed. +// +// The "sys" in the name is misleading as they're not part of any "system". +// +// This should all be removed at some point, and just use windows.FILE_NOTIFY_* +const ( + sysFSALLEVENTS = 0xfff + sysFSCREATE = 0x100 + sysFSDELETE = 0x200 + sysFSDELETESELF = 0x400 + sysFSMODIFY = 0x2 + sysFSMOVE = 0xc0 + sysFSMOVEDFROM = 0x40 + sysFSMOVEDTO = 0x80 + sysFSMOVESELF = 0x800 + sysFSIGNORED = 0x8000 +) + +func (w *Watcher) newEvent(name string, mask uint32) Event { + e := Event{Name: name} + if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { + e.Op |= Create + } + if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { + e.Op |= Remove + } + if mask&sysFSMODIFY == sysFSMODIFY { + e.Op |= Write + } + if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { + e.Op |= Rename + } + return e +} + +const ( + opAddWatch = iota + opRemoveWatch +) + +const ( + provisional uint64 = 1 << (32 + iota) +) + +type input struct { + op int + path string + flags uint32 + bufsize int + reply chan error +} + +type inode struct { + handle windows.Handle + volume uint32 + index uint64 +} + +type watch struct { + ov windows.Overlapped + ino *inode // i-number + recurse bool // Recursive watch? + path string // Directory path + mask uint64 // Directory itself is being watched with these notify flags + names map[string]uint64 // Map of names being watched and their notify flags + rename string // Remembers the old name while renaming a file + buf []byte // buffer, allocated later +} + +type ( + indexMap map[uint64]*watch + watchMap map[uint32]indexMap +) + +func (w *Watcher) wakeupReader() error { + err := windows.PostQueuedCompletionStatus(w.port, 0, 0, nil) + if err != nil { + return os.NewSyscallError("PostQueuedCompletionStatus", err) + } + return nil +} + +func (w *Watcher) getDir(pathname string) (dir string, err error) { + attr, err := windows.GetFileAttributes(windows.StringToUTF16Ptr(pathname)) + if err != nil { + return "", os.NewSyscallError("GetFileAttributes", err) + } + if attr&windows.FILE_ATTRIBUTE_DIRECTORY != 0 { + dir = pathname + } else { + dir, _ = filepath.Split(pathname) + dir = filepath.Clean(dir) + } + return +} + +func (w *Watcher) getIno(path string) (ino *inode, err error) { + h, err := windows.CreateFile(windows.StringToUTF16Ptr(path), + windows.FILE_LIST_DIRECTORY, + windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE|windows.FILE_SHARE_DELETE, + nil, windows.OPEN_EXISTING, + windows.FILE_FLAG_BACKUP_SEMANTICS|windows.FILE_FLAG_OVERLAPPED, 0) + if err != nil { + return nil, os.NewSyscallError("CreateFile", err) + } + + var fi windows.ByHandleFileInformation + err = windows.GetFileInformationByHandle(h, &fi) + if err != nil { + windows.CloseHandle(h) + return nil, os.NewSyscallError("GetFileInformationByHandle", err) + } + ino = &inode{ + handle: h, + volume: fi.VolumeSerialNumber, + index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), + } + return ino, nil +} + +// Must run within the I/O thread. +func (m watchMap) get(ino *inode) *watch { + if i := m[ino.volume]; i != nil { + return i[ino.index] + } + return nil +} + +// Must run within the I/O thread. +func (m watchMap) set(ino *inode, watch *watch) { + i := m[ino.volume] + if i == nil { + i = make(indexMap) + m[ino.volume] = i + } + i[ino.index] = watch +} + +// Must run within the I/O thread. +func (w *Watcher) addWatch(pathname string, flags uint64, bufsize int) error { + //pathname, recurse := recursivePath(pathname) + recurse := false + + dir, err := w.getDir(pathname) + if err != nil { + return err + } + + ino, err := w.getIno(dir) + if err != nil { + return err + } + w.mu.Lock() + watchEntry := w.watches.get(ino) + w.mu.Unlock() + if watchEntry == nil { + _, err := windows.CreateIoCompletionPort(ino.handle, w.port, 0, 0) + if err != nil { + windows.CloseHandle(ino.handle) + return os.NewSyscallError("CreateIoCompletionPort", err) + } + watchEntry = &watch{ + ino: ino, + path: dir, + names: make(map[string]uint64), + recurse: recurse, + buf: make([]byte, bufsize), + } + w.mu.Lock() + w.watches.set(ino, watchEntry) + w.mu.Unlock() + flags |= provisional + } else { + windows.CloseHandle(ino.handle) + } + if pathname == dir { + watchEntry.mask |= flags + } else { + watchEntry.names[filepath.Base(pathname)] |= flags + } + + err = w.startRead(watchEntry) + if err != nil { + return err + } + + if pathname == dir { + watchEntry.mask &= ^provisional + } else { + watchEntry.names[filepath.Base(pathname)] &= ^provisional + } + return nil +} + +// Must run within the I/O thread. +func (w *Watcher) remWatch(pathname string) error { + pathname, recurse := recursivePath(pathname) + + dir, err := w.getDir(pathname) + if err != nil { + return err + } + ino, err := w.getIno(dir) + if err != nil { + return err + } + + w.mu.Lock() + watch := w.watches.get(ino) + w.mu.Unlock() + + if recurse && !watch.recurse { + return fmt.Errorf("can't use \\... with non-recursive watch %q", pathname) + } + + err = windows.CloseHandle(ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CloseHandle", err)) + } + if watch == nil { + return fmt.Errorf("%w: %s", ErrNonExistentWatch, pathname) + } + if pathname == dir { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + watch.mask = 0 + } else { + name := filepath.Base(pathname) + w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + + return w.startRead(watch) +} + +// Must run within the I/O thread. +func (w *Watcher) deleteWatch(watch *watch) { + for name, mask := range watch.names { + if mask&provisional == 0 { + w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) + } + delete(watch.names, name) + } + if watch.mask != 0 { + if watch.mask&provisional == 0 { + w.sendEvent(watch.path, watch.mask&sysFSIGNORED) + } + watch.mask = 0 + } +} + +// Must run within the I/O thread. +func (w *Watcher) startRead(watch *watch) error { + err := windows.CancelIo(watch.ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CancelIo", err)) + w.deleteWatch(watch) + } + mask := w.toWindowsFlags(watch.mask) + for _, m := range watch.names { + mask |= w.toWindowsFlags(m) + } + if mask == 0 { + err := windows.CloseHandle(watch.ino.handle) + if err != nil { + w.sendError(os.NewSyscallError("CloseHandle", err)) + } + w.mu.Lock() + delete(w.watches[watch.ino.volume], watch.ino.index) + w.mu.Unlock() + return nil + } + + // We need to pass the array, rather than the slice. + hdr := (*reflect.SliceHeader)(unsafe.Pointer(&watch.buf)) + rdErr := windows.ReadDirectoryChanges(watch.ino.handle, + (*byte)(unsafe.Pointer(hdr.Data)), uint32(hdr.Len), + watch.recurse, mask, nil, &watch.ov, 0) + if rdErr != nil { + err := os.NewSyscallError("ReadDirectoryChanges", rdErr) + if rdErr == windows.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { + // Watched directory was probably removed + w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) + err = nil + } + w.deleteWatch(watch) + w.startRead(watch) + return err + } + return nil +} + +// readEvents reads from the I/O completion port, converts the +// received events into Event objects and sends them via the Events channel. +// Entry point to the I/O thread. +func (w *Watcher) readEvents() { + var ( + n uint32 + key uintptr + ov *windows.Overlapped + ) + runtime.LockOSThread() + + for { + // This error is handled after the watch == nil check below. + qErr := windows.GetQueuedCompletionStatus(w.port, &n, &key, &ov, windows.INFINITE) + + watch := (*watch)(unsafe.Pointer(ov)) + if watch == nil { + select { + case ch := <-w.quit: + w.mu.Lock() + var indexes []indexMap + for _, index := range w.watches { + indexes = append(indexes, index) + } + w.mu.Unlock() + for _, index := range indexes { + for _, watch := range index { + w.deleteWatch(watch) + w.startRead(watch) + } + } + + err := windows.CloseHandle(w.port) + if err != nil { + err = os.NewSyscallError("CloseHandle", err) + } + close(w.Events) + close(w.Errors) + ch <- err + return + case in := <-w.input: + switch in.op { + case opAddWatch: + in.reply <- w.addWatch(in.path, uint64(in.flags), in.bufsize) + case opRemoveWatch: + in.reply <- w.remWatch(in.path) + } + default: + } + continue + } + + switch qErr { + case nil: + // No error + case windows.ERROR_MORE_DATA: + if watch == nil { + w.sendError(errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer")) + } else { + // The i/o succeeded but the buffer is full. + // In theory we should be building up a full packet. + // In practice we can get away with just carrying on. + n = uint32(unsafe.Sizeof(watch.buf)) + } + case windows.ERROR_ACCESS_DENIED: + // Watched directory was probably removed + w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) + w.deleteWatch(watch) + w.startRead(watch) + continue + case windows.ERROR_OPERATION_ABORTED: + // CancelIo was called on this handle + continue + default: + w.sendError(os.NewSyscallError("GetQueuedCompletionPort", qErr)) + continue + } + + var offset uint32 + for { + if n == 0 { + w.sendError(ErrEventOverflow) + break + } + + // Point "raw" to the event in the buffer + raw := (*windows.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) + + // Create a buf that is the size of the path name + size := int(raw.FileNameLength / 2) + var buf []uint16 + // TODO: Use unsafe.Slice in Go 1.17; https://stackoverflow.com/questions/51187973 + sh := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) + sh.Data = uintptr(unsafe.Pointer(&raw.FileName)) + sh.Len = size + sh.Cap = size + name := windows.UTF16ToString(buf) + fullname := filepath.Join(watch.path, name) + + var mask uint64 + switch raw.Action { + case windows.FILE_ACTION_REMOVED: + mask = sysFSDELETESELF + case windows.FILE_ACTION_MODIFIED: + mask = sysFSMODIFY + case windows.FILE_ACTION_RENAMED_OLD_NAME: + watch.rename = name + case windows.FILE_ACTION_RENAMED_NEW_NAME: + // Update saved path of all sub-watches. + old := filepath.Join(watch.path, watch.rename) + w.mu.Lock() + for _, watchMap := range w.watches { + for _, ww := range watchMap { + if strings.HasPrefix(ww.path, old) { + ww.path = filepath.Join(fullname, strings.TrimPrefix(ww.path, old)) + } + } + } + w.mu.Unlock() + + if watch.names[watch.rename] != 0 { + watch.names[name] |= watch.names[watch.rename] + delete(watch.names, watch.rename) + mask = sysFSMOVESELF + } + } + + sendNameEvent := func() { + w.sendEvent(fullname, watch.names[name]&mask) + } + if raw.Action != windows.FILE_ACTION_RENAMED_NEW_NAME { + sendNameEvent() + } + if raw.Action == windows.FILE_ACTION_REMOVED { + w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) + delete(watch.names, name) + } + + w.sendEvent(fullname, watch.mask&w.toFSnotifyFlags(raw.Action)) + if raw.Action == windows.FILE_ACTION_RENAMED_NEW_NAME { + fullname = filepath.Join(watch.path, watch.rename) + sendNameEvent() + } + + // Move to the next event in the buffer + if raw.NextEntryOffset == 0 { + break + } + offset += raw.NextEntryOffset + + // Error! + if offset >= n { + //lint:ignore ST1005 Windows should be capitalized + w.sendError(errors.New( + "Windows system assumed buffer larger than it is, events have likely been missed")) + break + } + } + + if err := w.startRead(watch); err != nil { + w.sendError(err) + } + } +} + +func (w *Watcher) toWindowsFlags(mask uint64) uint32 { + var m uint32 + if mask&sysFSMODIFY != 0 { + m |= windows.FILE_NOTIFY_CHANGE_LAST_WRITE + } + if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { + m |= windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME + } + return m +} + +func (w *Watcher) toFSnotifyFlags(action uint32) uint64 { + switch action { + case windows.FILE_ACTION_ADDED: + return sysFSCREATE + case windows.FILE_ACTION_REMOVED: + return sysFSDELETE + case windows.FILE_ACTION_MODIFIED: + return sysFSMODIFY + case windows.FILE_ACTION_RENAMED_OLD_NAME: + return sysFSMOVEDFROM + case windows.FILE_ACTION_RENAMED_NEW_NAME: + return sysFSMOVEDTO + } + return 0 +} diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go new file mode 100644 index 0000000..24c99cc --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/fsnotify.go @@ -0,0 +1,146 @@ +// Package fsnotify provides a cross-platform interface for file system +// notifications. +// +// Currently supported systems: +// +// Linux 2.6.32+ via inotify +// BSD, macOS via kqueue +// Windows via ReadDirectoryChangesW +// illumos via FEN +package fsnotify + +import ( + "errors" + "fmt" + "path/filepath" + "strings" +) + +// Event represents a file system notification. +type Event struct { + // Path to the file or directory. + // + // Paths are relative to the input; for example with Add("dir") the Name + // will be set to "dir/file" if you create that file, but if you use + // Add("/path/to/dir") it will be "/path/to/dir/file". + Name string + + // File operation that triggered the event. + // + // This is a bitmask and some systems may send multiple operations at once. + // Use the Event.Has() method instead of comparing with ==. + Op Op +} + +// Op describes a set of file operations. +type Op uint32 + +// The operations fsnotify can trigger; see the documentation on [Watcher] for a +// full description, and check them with [Event.Has]. +const ( + // A new pathname was created. + Create Op = 1 << iota + + // The pathname was written to; this does *not* mean the write has finished, + // and a write can be followed by more writes. + Write + + // The path was removed; any watches on it will be removed. Some "remove" + // operations may trigger a Rename if the file is actually moved (for + // example "remove to trash" is often a rename). + Remove + + // The path was renamed to something else; any watched on it will be + // removed. + Rename + + // File attributes were changed. + // + // It's generally not recommended to take action on this event, as it may + // get triggered very frequently by some software. For example, Spotlight + // indexing on macOS, anti-virus software, backup software, etc. + Chmod +) + +// Common errors that can be reported. +var ( + ErrNonExistentWatch = errors.New("fsnotify: can't remove non-existent watch") + ErrEventOverflow = errors.New("fsnotify: queue or buffer overflow") + ErrClosed = errors.New("fsnotify: watcher already closed") +) + +func (o Op) String() string { + var b strings.Builder + if o.Has(Create) { + b.WriteString("|CREATE") + } + if o.Has(Remove) { + b.WriteString("|REMOVE") + } + if o.Has(Write) { + b.WriteString("|WRITE") + } + if o.Has(Rename) { + b.WriteString("|RENAME") + } + if o.Has(Chmod) { + b.WriteString("|CHMOD") + } + if b.Len() == 0 { + return "[no events]" + } + return b.String()[1:] +} + +// Has reports if this operation has the given operation. +func (o Op) Has(h Op) bool { return o&h != 0 } + +// Has reports if this event has the given operation. +func (e Event) Has(op Op) bool { return e.Op.Has(op) } + +// String returns a string representation of the event with their path. +func (e Event) String() string { + return fmt.Sprintf("%-13s %q", e.Op.String(), e.Name) +} + +type ( + addOpt func(opt *withOpts) + withOpts struct { + bufsize int + } +) + +var defaultOpts = withOpts{ + bufsize: 65536, // 64K +} + +func getOptions(opts ...addOpt) withOpts { + with := defaultOpts + for _, o := range opts { + o(&with) + } + return with +} + +// WithBufferSize sets the [ReadDirectoryChangesW] buffer size. +// +// This only has effect on Windows systems, and is a no-op for other backends. +// +// The default value is 64K (65536 bytes) which is the highest value that works +// on all filesystems and should be enough for most applications, but if you +// have a large burst of events it may not be enough. You can increase it if +// you're hitting "queue or buffer overflow" errors ([ErrEventOverflow]). +// +// [ReadDirectoryChangesW]: https://learn.microsoft.com/en-gb/windows/win32/api/winbase/nf-winbase-readdirectorychangesw +func WithBufferSize(bytes int) addOpt { + return func(opt *withOpts) { opt.bufsize = bytes } +} + +// Check if this path is recursive (ends with "/..." or "\..."), and return the +// path with the /... stripped. +func recursivePath(path string) (string, bool) { + if filepath.Base(path) == "..." { + return filepath.Dir(path), true + } + return path, false +} diff --git a/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh b/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh new file mode 100644 index 0000000..99012ae --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh @@ -0,0 +1,259 @@ +#!/usr/bin/env zsh +[ "${ZSH_VERSION:-}" = "" ] && echo >&2 "Only works with zsh" && exit 1 +setopt err_exit no_unset pipefail extended_glob + +# Simple script to update the godoc comments on all watchers so you don't need +# to update the same comment 5 times. + +watcher=$(</tmp/x + print -r -- $cmt >>/tmp/x + tail -n+$(( end + 1 )) $file >>/tmp/x + mv /tmp/x $file + done +} + +set-cmt '^type Watcher struct ' $watcher +set-cmt '^func NewWatcher(' $new +set-cmt '^func NewBufferedWatcher(' $newbuffered +set-cmt '^func (w \*Watcher) Add(' $add +set-cmt '^func (w \*Watcher) AddWith(' $addwith +set-cmt '^func (w \*Watcher) Remove(' $remove +set-cmt '^func (w \*Watcher) Close(' $close +set-cmt '^func (w \*Watcher) WatchList(' $watchlist +set-cmt '^[[:space:]]*Events *chan Event$' $events +set-cmt '^[[:space:]]*Errors *chan error$' $errors diff --git a/vendor/github.com/fsnotify/fsnotify/system_bsd.go b/vendor/github.com/fsnotify/fsnotify/system_bsd.go new file mode 100644 index 0000000..4322b0b --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/system_bsd.go @@ -0,0 +1,8 @@ +//go:build freebsd || openbsd || netbsd || dragonfly +// +build freebsd openbsd netbsd dragonfly + +package fsnotify + +import "golang.org/x/sys/unix" + +const openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/fsnotify/fsnotify/system_darwin.go b/vendor/github.com/fsnotify/fsnotify/system_darwin.go new file mode 100644 index 0000000..5da5ffa --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/system_darwin.go @@ -0,0 +1,9 @@ +//go:build darwin +// +build darwin + +package fsnotify + +import "golang.org/x/sys/unix" + +// note: this constant is not defined on BSD +const openMode = unix.O_EVTONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/mattn/go-colorable/LICENSE b/vendor/github.com/mattn/go-colorable/LICENSE new file mode 100644 index 0000000..91b5cef --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Yasuhiro Matsumoto + +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/mattn/go-colorable/README.md b/vendor/github.com/mattn/go-colorable/README.md new file mode 100644 index 0000000..ca04837 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/README.md @@ -0,0 +1,48 @@ +# go-colorable + +[![Build Status](https://github.com/mattn/go-colorable/workflows/test/badge.svg)](https://github.com/mattn/go-colorable/actions?query=workflow%3Atest) +[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable) +[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable) +[![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable) + +Colorable writer for windows. + +For example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.) +This package is possible to handle escape sequence for ansi color on windows. + +## Too Bad! + +![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/bad.png) + + +## So Good! + +![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/good.png) + +## Usage + +```go +logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) +logrus.SetOutput(colorable.NewColorableStdout()) + +logrus.Info("succeeded") +logrus.Warn("not correct") +logrus.Error("something error") +logrus.Fatal("panic") +``` + +You can compile above code on non-windows OSs. + +## Installation + +``` +$ go get github.com/mattn/go-colorable +``` + +# License + +MIT + +# Author + +Yasuhiro Matsumoto (a.k.a mattn) diff --git a/vendor/github.com/mattn/go-colorable/colorable_appengine.go b/vendor/github.com/mattn/go-colorable/colorable_appengine.go new file mode 100644 index 0000000..416d1bb --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/colorable_appengine.go @@ -0,0 +1,38 @@ +//go:build appengine +// +build appengine + +package colorable + +import ( + "io" + "os" + + _ "github.com/mattn/go-isatty" +) + +// NewColorable returns new instance of Writer which handles escape sequence. +func NewColorable(file *os.File) io.Writer { + if file == nil { + panic("nil passed instead of *os.File to NewColorable()") + } + + return file +} + +// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. +func NewColorableStdout() io.Writer { + return os.Stdout +} + +// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. +func NewColorableStderr() io.Writer { + return os.Stderr +} + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go new file mode 100644 index 0000000..766d946 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/colorable_others.go @@ -0,0 +1,38 @@ +//go:build !windows && !appengine +// +build !windows,!appengine + +package colorable + +import ( + "io" + "os" + + _ "github.com/mattn/go-isatty" +) + +// NewColorable returns new instance of Writer which handles escape sequence. +func NewColorable(file *os.File) io.Writer { + if file == nil { + panic("nil passed instead of *os.File to NewColorable()") + } + + return file +} + +// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. +func NewColorableStdout() io.Writer { + return os.Stdout +} + +// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. +func NewColorableStderr() io.Writer { + return os.Stderr +} + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go new file mode 100644 index 0000000..1846ad5 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/colorable_windows.go @@ -0,0 +1,1047 @@ +//go:build windows && !appengine +// +build windows,!appengine + +package colorable + +import ( + "bytes" + "io" + "math" + "os" + "strconv" + "strings" + "sync" + "syscall" + "unsafe" + + "github.com/mattn/go-isatty" +) + +const ( + foregroundBlue = 0x1 + foregroundGreen = 0x2 + foregroundRed = 0x4 + foregroundIntensity = 0x8 + foregroundMask = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity) + backgroundBlue = 0x10 + backgroundGreen = 0x20 + backgroundRed = 0x40 + backgroundIntensity = 0x80 + backgroundMask = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity) + commonLvbUnderscore = 0x8000 + + cENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 +) + +const ( + genericRead = 0x80000000 + genericWrite = 0x40000000 +) + +const ( + consoleTextmodeBuffer = 0x1 +) + +type wchar uint16 +type short int16 +type dword uint32 +type word uint16 + +type coord struct { + x short + y short +} + +type smallRect struct { + left short + top short + right short + bottom short +} + +type consoleScreenBufferInfo struct { + size coord + cursorPosition coord + attributes word + window smallRect + maximumWindowSize coord +} + +type consoleCursorInfo struct { + size dword + visible int32 +} + +var ( + kernel32 = syscall.NewLazyDLL("kernel32.dll") + procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") + procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute") + procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") + procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW") + procFillConsoleOutputAttribute = kernel32.NewProc("FillConsoleOutputAttribute") + procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo") + procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo") + procSetConsoleTitle = kernel32.NewProc("SetConsoleTitleW") + procGetConsoleMode = kernel32.NewProc("GetConsoleMode") + procSetConsoleMode = kernel32.NewProc("SetConsoleMode") + procCreateConsoleScreenBuffer = kernel32.NewProc("CreateConsoleScreenBuffer") +) + +// Writer provides colorable Writer to the console +type Writer struct { + out io.Writer + handle syscall.Handle + althandle syscall.Handle + oldattr word + oldpos coord + rest bytes.Buffer + mutex sync.Mutex +} + +// NewColorable returns new instance of Writer which handles escape sequence from File. +func NewColorable(file *os.File) io.Writer { + if file == nil { + panic("nil passed instead of *os.File to NewColorable()") + } + + if isatty.IsTerminal(file.Fd()) { + var mode uint32 + if r, _, _ := procGetConsoleMode.Call(file.Fd(), uintptr(unsafe.Pointer(&mode))); r != 0 && mode&cENABLE_VIRTUAL_TERMINAL_PROCESSING != 0 { + return file + } + var csbi consoleScreenBufferInfo + handle := syscall.Handle(file.Fd()) + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + return &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}} + } + return file +} + +// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. +func NewColorableStdout() io.Writer { + return NewColorable(os.Stdout) +} + +// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. +func NewColorableStderr() io.Writer { + return NewColorable(os.Stderr) +} + +var color256 = map[int]int{ + 0: 0x000000, + 1: 0x800000, + 2: 0x008000, + 3: 0x808000, + 4: 0x000080, + 5: 0x800080, + 6: 0x008080, + 7: 0xc0c0c0, + 8: 0x808080, + 9: 0xff0000, + 10: 0x00ff00, + 11: 0xffff00, + 12: 0x0000ff, + 13: 0xff00ff, + 14: 0x00ffff, + 15: 0xffffff, + 16: 0x000000, + 17: 0x00005f, + 18: 0x000087, + 19: 0x0000af, + 20: 0x0000d7, + 21: 0x0000ff, + 22: 0x005f00, + 23: 0x005f5f, + 24: 0x005f87, + 25: 0x005faf, + 26: 0x005fd7, + 27: 0x005fff, + 28: 0x008700, + 29: 0x00875f, + 30: 0x008787, + 31: 0x0087af, + 32: 0x0087d7, + 33: 0x0087ff, + 34: 0x00af00, + 35: 0x00af5f, + 36: 0x00af87, + 37: 0x00afaf, + 38: 0x00afd7, + 39: 0x00afff, + 40: 0x00d700, + 41: 0x00d75f, + 42: 0x00d787, + 43: 0x00d7af, + 44: 0x00d7d7, + 45: 0x00d7ff, + 46: 0x00ff00, + 47: 0x00ff5f, + 48: 0x00ff87, + 49: 0x00ffaf, + 50: 0x00ffd7, + 51: 0x00ffff, + 52: 0x5f0000, + 53: 0x5f005f, + 54: 0x5f0087, + 55: 0x5f00af, + 56: 0x5f00d7, + 57: 0x5f00ff, + 58: 0x5f5f00, + 59: 0x5f5f5f, + 60: 0x5f5f87, + 61: 0x5f5faf, + 62: 0x5f5fd7, + 63: 0x5f5fff, + 64: 0x5f8700, + 65: 0x5f875f, + 66: 0x5f8787, + 67: 0x5f87af, + 68: 0x5f87d7, + 69: 0x5f87ff, + 70: 0x5faf00, + 71: 0x5faf5f, + 72: 0x5faf87, + 73: 0x5fafaf, + 74: 0x5fafd7, + 75: 0x5fafff, + 76: 0x5fd700, + 77: 0x5fd75f, + 78: 0x5fd787, + 79: 0x5fd7af, + 80: 0x5fd7d7, + 81: 0x5fd7ff, + 82: 0x5fff00, + 83: 0x5fff5f, + 84: 0x5fff87, + 85: 0x5fffaf, + 86: 0x5fffd7, + 87: 0x5fffff, + 88: 0x870000, + 89: 0x87005f, + 90: 0x870087, + 91: 0x8700af, + 92: 0x8700d7, + 93: 0x8700ff, + 94: 0x875f00, + 95: 0x875f5f, + 96: 0x875f87, + 97: 0x875faf, + 98: 0x875fd7, + 99: 0x875fff, + 100: 0x878700, + 101: 0x87875f, + 102: 0x878787, + 103: 0x8787af, + 104: 0x8787d7, + 105: 0x8787ff, + 106: 0x87af00, + 107: 0x87af5f, + 108: 0x87af87, + 109: 0x87afaf, + 110: 0x87afd7, + 111: 0x87afff, + 112: 0x87d700, + 113: 0x87d75f, + 114: 0x87d787, + 115: 0x87d7af, + 116: 0x87d7d7, + 117: 0x87d7ff, + 118: 0x87ff00, + 119: 0x87ff5f, + 120: 0x87ff87, + 121: 0x87ffaf, + 122: 0x87ffd7, + 123: 0x87ffff, + 124: 0xaf0000, + 125: 0xaf005f, + 126: 0xaf0087, + 127: 0xaf00af, + 128: 0xaf00d7, + 129: 0xaf00ff, + 130: 0xaf5f00, + 131: 0xaf5f5f, + 132: 0xaf5f87, + 133: 0xaf5faf, + 134: 0xaf5fd7, + 135: 0xaf5fff, + 136: 0xaf8700, + 137: 0xaf875f, + 138: 0xaf8787, + 139: 0xaf87af, + 140: 0xaf87d7, + 141: 0xaf87ff, + 142: 0xafaf00, + 143: 0xafaf5f, + 144: 0xafaf87, + 145: 0xafafaf, + 146: 0xafafd7, + 147: 0xafafff, + 148: 0xafd700, + 149: 0xafd75f, + 150: 0xafd787, + 151: 0xafd7af, + 152: 0xafd7d7, + 153: 0xafd7ff, + 154: 0xafff00, + 155: 0xafff5f, + 156: 0xafff87, + 157: 0xafffaf, + 158: 0xafffd7, + 159: 0xafffff, + 160: 0xd70000, + 161: 0xd7005f, + 162: 0xd70087, + 163: 0xd700af, + 164: 0xd700d7, + 165: 0xd700ff, + 166: 0xd75f00, + 167: 0xd75f5f, + 168: 0xd75f87, + 169: 0xd75faf, + 170: 0xd75fd7, + 171: 0xd75fff, + 172: 0xd78700, + 173: 0xd7875f, + 174: 0xd78787, + 175: 0xd787af, + 176: 0xd787d7, + 177: 0xd787ff, + 178: 0xd7af00, + 179: 0xd7af5f, + 180: 0xd7af87, + 181: 0xd7afaf, + 182: 0xd7afd7, + 183: 0xd7afff, + 184: 0xd7d700, + 185: 0xd7d75f, + 186: 0xd7d787, + 187: 0xd7d7af, + 188: 0xd7d7d7, + 189: 0xd7d7ff, + 190: 0xd7ff00, + 191: 0xd7ff5f, + 192: 0xd7ff87, + 193: 0xd7ffaf, + 194: 0xd7ffd7, + 195: 0xd7ffff, + 196: 0xff0000, + 197: 0xff005f, + 198: 0xff0087, + 199: 0xff00af, + 200: 0xff00d7, + 201: 0xff00ff, + 202: 0xff5f00, + 203: 0xff5f5f, + 204: 0xff5f87, + 205: 0xff5faf, + 206: 0xff5fd7, + 207: 0xff5fff, + 208: 0xff8700, + 209: 0xff875f, + 210: 0xff8787, + 211: 0xff87af, + 212: 0xff87d7, + 213: 0xff87ff, + 214: 0xffaf00, + 215: 0xffaf5f, + 216: 0xffaf87, + 217: 0xffafaf, + 218: 0xffafd7, + 219: 0xffafff, + 220: 0xffd700, + 221: 0xffd75f, + 222: 0xffd787, + 223: 0xffd7af, + 224: 0xffd7d7, + 225: 0xffd7ff, + 226: 0xffff00, + 227: 0xffff5f, + 228: 0xffff87, + 229: 0xffffaf, + 230: 0xffffd7, + 231: 0xffffff, + 232: 0x080808, + 233: 0x121212, + 234: 0x1c1c1c, + 235: 0x262626, + 236: 0x303030, + 237: 0x3a3a3a, + 238: 0x444444, + 239: 0x4e4e4e, + 240: 0x585858, + 241: 0x626262, + 242: 0x6c6c6c, + 243: 0x767676, + 244: 0x808080, + 245: 0x8a8a8a, + 246: 0x949494, + 247: 0x9e9e9e, + 248: 0xa8a8a8, + 249: 0xb2b2b2, + 250: 0xbcbcbc, + 251: 0xc6c6c6, + 252: 0xd0d0d0, + 253: 0xdadada, + 254: 0xe4e4e4, + 255: 0xeeeeee, +} + +// `\033]0;TITLESTR\007` +func doTitleSequence(er *bytes.Reader) error { + var c byte + var err error + + c, err = er.ReadByte() + if err != nil { + return err + } + if c != '0' && c != '2' { + return nil + } + c, err = er.ReadByte() + if err != nil { + return err + } + if c != ';' { + return nil + } + title := make([]byte, 0, 80) + for { + c, err = er.ReadByte() + if err != nil { + return err + } + if c == 0x07 || c == '\n' { + break + } + title = append(title, c) + } + if len(title) > 0 { + title8, err := syscall.UTF16PtrFromString(string(title)) + if err == nil { + procSetConsoleTitle.Call(uintptr(unsafe.Pointer(title8))) + } + } + return nil +} + +// returns Atoi(s) unless s == "" in which case it returns def +func atoiWithDefault(s string, def int) (int, error) { + if s == "" { + return def, nil + } + return strconv.Atoi(s) +} + +// Write writes data on console +func (w *Writer) Write(data []byte) (n int, err error) { + w.mutex.Lock() + defer w.mutex.Unlock() + var csbi consoleScreenBufferInfo + procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) + + handle := w.handle + + var er *bytes.Reader + if w.rest.Len() > 0 { + var rest bytes.Buffer + w.rest.WriteTo(&rest) + w.rest.Reset() + rest.Write(data) + er = bytes.NewReader(rest.Bytes()) + } else { + er = bytes.NewReader(data) + } + var plaintext bytes.Buffer +loop: + for { + c1, err := er.ReadByte() + if err != nil { + plaintext.WriteTo(w.out) + break loop + } + if c1 != 0x1b { + plaintext.WriteByte(c1) + continue + } + _, err = plaintext.WriteTo(w.out) + if err != nil { + break loop + } + c2, err := er.ReadByte() + if err != nil { + break loop + } + + switch c2 { + case '>': + continue + case ']': + w.rest.WriteByte(c1) + w.rest.WriteByte(c2) + er.WriteTo(&w.rest) + if bytes.IndexByte(w.rest.Bytes(), 0x07) == -1 { + break loop + } + er = bytes.NewReader(w.rest.Bytes()[2:]) + err := doTitleSequence(er) + if err != nil { + break loop + } + w.rest.Reset() + continue + // https://github.com/mattn/go-colorable/issues/27 + case '7': + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + w.oldpos = csbi.cursorPosition + continue + case '8': + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos))) + continue + case 0x5b: + // execute part after switch + default: + continue + } + + w.rest.WriteByte(c1) + w.rest.WriteByte(c2) + er.WriteTo(&w.rest) + + var buf bytes.Buffer + var m byte + for i, c := range w.rest.Bytes()[2:] { + if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { + m = c + er = bytes.NewReader(w.rest.Bytes()[2+i+1:]) + w.rest.Reset() + break + } + buf.Write([]byte(string(c))) + } + if m == 0 { + break loop + } + + switch m { + case 'A': + n, err = atoiWithDefault(buf.String(), 1) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.y -= short(n) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'B': + n, err = atoiWithDefault(buf.String(), 1) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.y += short(n) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'C': + n, err = atoiWithDefault(buf.String(), 1) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.x += short(n) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'D': + n, err = atoiWithDefault(buf.String(), 1) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.x -= short(n) + if csbi.cursorPosition.x < 0 { + csbi.cursorPosition.x = 0 + } + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'E': + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.x = 0 + csbi.cursorPosition.y += short(n) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'F': + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.x = 0 + csbi.cursorPosition.y -= short(n) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'G': + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + if n < 1 { + n = 1 + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + csbi.cursorPosition.x = short(n - 1) + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'H', 'f': + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + if buf.Len() > 0 { + token := strings.Split(buf.String(), ";") + switch len(token) { + case 1: + n1, err := strconv.Atoi(token[0]) + if err != nil { + continue + } + csbi.cursorPosition.y = short(n1 - 1) + case 2: + n1, err := strconv.Atoi(token[0]) + if err != nil { + continue + } + n2, err := strconv.Atoi(token[1]) + if err != nil { + continue + } + csbi.cursorPosition.x = short(n2 - 1) + csbi.cursorPosition.y = short(n1 - 1) + } + } else { + csbi.cursorPosition.y = 0 + } + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) + case 'J': + n := 0 + if buf.Len() > 0 { + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + } + var count, written dword + var cursor coord + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + switch n { + case 0: + cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} + count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x) + case 1: + cursor = coord{x: csbi.window.left, y: csbi.window.top} + count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.window.top-csbi.cursorPosition.y)*dword(csbi.size.x) + case 2: + cursor = coord{x: csbi.window.left, y: csbi.window.top} + count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x) + } + procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + case 'K': + n := 0 + if buf.Len() > 0 { + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + var cursor coord + var count, written dword + switch n { + case 0: + cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} + count = dword(csbi.size.x - csbi.cursorPosition.x) + case 1: + cursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y} + count = dword(csbi.size.x - csbi.cursorPosition.x) + case 2: + cursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y} + count = dword(csbi.size.x) + } + procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + case 'X': + n := 0 + if buf.Len() > 0 { + n, err = strconv.Atoi(buf.String()) + if err != nil { + continue + } + } + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + var cursor coord + var written dword + cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} + procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) + case 'm': + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + attr := csbi.attributes + cs := buf.String() + if cs == "" { + procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr)) + continue + } + token := strings.Split(cs, ";") + for i := 0; i < len(token); i++ { + ns := token[i] + if n, err = strconv.Atoi(ns); err == nil { + switch { + case n == 0 || n == 100: + attr = w.oldattr + case n == 4: + attr |= commonLvbUnderscore + case (1 <= n && n <= 3) || n == 5: + attr |= foregroundIntensity + case n == 7 || n == 27: + attr = + (attr &^ (foregroundMask | backgroundMask)) | + ((attr & foregroundMask) << 4) | + ((attr & backgroundMask) >> 4) + case n == 22: + attr &^= foregroundIntensity + case n == 24: + attr &^= commonLvbUnderscore + case 30 <= n && n <= 37: + attr &= backgroundMask + if (n-30)&1 != 0 { + attr |= foregroundRed + } + if (n-30)&2 != 0 { + attr |= foregroundGreen + } + if (n-30)&4 != 0 { + attr |= foregroundBlue + } + case n == 38: // set foreground color. + if i < len(token)-2 && (token[i+1] == "5" || token[i+1] == "05") { + if n256, err := strconv.Atoi(token[i+2]); err == nil { + if n256foreAttr == nil { + n256setup() + } + attr &= backgroundMask + attr |= n256foreAttr[n256%len(n256foreAttr)] + i += 2 + } + } else if len(token) == 5 && token[i+1] == "2" { + var r, g, b int + r, _ = strconv.Atoi(token[i+2]) + g, _ = strconv.Atoi(token[i+3]) + b, _ = strconv.Atoi(token[i+4]) + i += 4 + if r > 127 { + attr |= foregroundRed + } + if g > 127 { + attr |= foregroundGreen + } + if b > 127 { + attr |= foregroundBlue + } + } else { + attr = attr & (w.oldattr & backgroundMask) + } + case n == 39: // reset foreground color. + attr &= backgroundMask + attr |= w.oldattr & foregroundMask + case 40 <= n && n <= 47: + attr &= foregroundMask + if (n-40)&1 != 0 { + attr |= backgroundRed + } + if (n-40)&2 != 0 { + attr |= backgroundGreen + } + if (n-40)&4 != 0 { + attr |= backgroundBlue + } + case n == 48: // set background color. + if i < len(token)-2 && token[i+1] == "5" { + if n256, err := strconv.Atoi(token[i+2]); err == nil { + if n256backAttr == nil { + n256setup() + } + attr &= foregroundMask + attr |= n256backAttr[n256%len(n256backAttr)] + i += 2 + } + } else if len(token) == 5 && token[i+1] == "2" { + var r, g, b int + r, _ = strconv.Atoi(token[i+2]) + g, _ = strconv.Atoi(token[i+3]) + b, _ = strconv.Atoi(token[i+4]) + i += 4 + if r > 127 { + attr |= backgroundRed + } + if g > 127 { + attr |= backgroundGreen + } + if b > 127 { + attr |= backgroundBlue + } + } else { + attr = attr & (w.oldattr & foregroundMask) + } + case n == 49: // reset foreground color. + attr &= foregroundMask + attr |= w.oldattr & backgroundMask + case 90 <= n && n <= 97: + attr = (attr & backgroundMask) + attr |= foregroundIntensity + if (n-90)&1 != 0 { + attr |= foregroundRed + } + if (n-90)&2 != 0 { + attr |= foregroundGreen + } + if (n-90)&4 != 0 { + attr |= foregroundBlue + } + case 100 <= n && n <= 107: + attr = (attr & foregroundMask) + attr |= backgroundIntensity + if (n-100)&1 != 0 { + attr |= backgroundRed + } + if (n-100)&2 != 0 { + attr |= backgroundGreen + } + if (n-100)&4 != 0 { + attr |= backgroundBlue + } + } + procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr)) + } + } + case 'h': + var ci consoleCursorInfo + cs := buf.String() + if cs == "5>" { + procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + ci.visible = 0 + procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + } else if cs == "?25" { + procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + ci.visible = 1 + procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + } else if cs == "?1049" { + if w.althandle == 0 { + h, _, _ := procCreateConsoleScreenBuffer.Call(uintptr(genericRead|genericWrite), 0, 0, uintptr(consoleTextmodeBuffer), 0, 0) + w.althandle = syscall.Handle(h) + if w.althandle != 0 { + handle = w.althandle + } + } + } + case 'l': + var ci consoleCursorInfo + cs := buf.String() + if cs == "5>" { + procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + ci.visible = 1 + procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + } else if cs == "?25" { + procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + ci.visible = 0 + procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) + } else if cs == "?1049" { + if w.althandle != 0 { + syscall.CloseHandle(w.althandle) + w.althandle = 0 + handle = w.handle + } + } + case 's': + procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) + w.oldpos = csbi.cursorPosition + case 'u': + procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos))) + } + } + + return len(data), nil +} + +type consoleColor struct { + rgb int + red bool + green bool + blue bool + intensity bool +} + +func (c consoleColor) foregroundAttr() (attr word) { + if c.red { + attr |= foregroundRed + } + if c.green { + attr |= foregroundGreen + } + if c.blue { + attr |= foregroundBlue + } + if c.intensity { + attr |= foregroundIntensity + } + return +} + +func (c consoleColor) backgroundAttr() (attr word) { + if c.red { + attr |= backgroundRed + } + if c.green { + attr |= backgroundGreen + } + if c.blue { + attr |= backgroundBlue + } + if c.intensity { + attr |= backgroundIntensity + } + return +} + +var color16 = []consoleColor{ + {0x000000, false, false, false, false}, + {0x000080, false, false, true, false}, + {0x008000, false, true, false, false}, + {0x008080, false, true, true, false}, + {0x800000, true, false, false, false}, + {0x800080, true, false, true, false}, + {0x808000, true, true, false, false}, + {0xc0c0c0, true, true, true, false}, + {0x808080, false, false, false, true}, + {0x0000ff, false, false, true, true}, + {0x00ff00, false, true, false, true}, + {0x00ffff, false, true, true, true}, + {0xff0000, true, false, false, true}, + {0xff00ff, true, false, true, true}, + {0xffff00, true, true, false, true}, + {0xffffff, true, true, true, true}, +} + +type hsv struct { + h, s, v float32 +} + +func (a hsv) dist(b hsv) float32 { + dh := a.h - b.h + switch { + case dh > 0.5: + dh = 1 - dh + case dh < -0.5: + dh = -1 - dh + } + ds := a.s - b.s + dv := a.v - b.v + return float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv))) +} + +func toHSV(rgb int) hsv { + r, g, b := float32((rgb&0xFF0000)>>16)/256.0, + float32((rgb&0x00FF00)>>8)/256.0, + float32(rgb&0x0000FF)/256.0 + min, max := minmax3f(r, g, b) + h := max - min + if h > 0 { + if max == r { + h = (g - b) / h + if h < 0 { + h += 6 + } + } else if max == g { + h = 2 + (b-r)/h + } else { + h = 4 + (r-g)/h + } + } + h /= 6.0 + s := max - min + if max != 0 { + s /= max + } + v := max + return hsv{h: h, s: s, v: v} +} + +type hsvTable []hsv + +func toHSVTable(rgbTable []consoleColor) hsvTable { + t := make(hsvTable, len(rgbTable)) + for i, c := range rgbTable { + t[i] = toHSV(c.rgb) + } + return t +} + +func (t hsvTable) find(rgb int) consoleColor { + hsv := toHSV(rgb) + n := 7 + l := float32(5.0) + for i, p := range t { + d := hsv.dist(p) + if d < l { + l, n = d, i + } + } + return color16[n] +} + +func minmax3f(a, b, c float32) (min, max float32) { + if a < b { + if b < c { + return a, c + } else if a < c { + return a, b + } else { + return c, b + } + } else { + if a < c { + return b, c + } else if b < c { + return b, a + } else { + return c, a + } + } +} + +var n256foreAttr []word +var n256backAttr []word + +func n256setup() { + n256foreAttr = make([]word, 256) + n256backAttr = make([]word, 256) + t := toHSVTable(color16) + for i, rgb := range color256 { + c := t.find(rgb) + n256foreAttr[i] = c.foregroundAttr() + n256backAttr[i] = c.backgroundAttr() + } +} + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + var mode uint32 + h := os.Stdout.Fd() + if r, _, _ := procGetConsoleMode.Call(h, uintptr(unsafe.Pointer(&mode))); r != 0 { + if r, _, _ = procSetConsoleMode.Call(h, uintptr(mode|cENABLE_VIRTUAL_TERMINAL_PROCESSING)); r != 0 { + if enabled != nil { + *enabled = true + } + return func() { + procSetConsoleMode.Call(h, uintptr(mode)) + } + } + } + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/go.test.sh b/vendor/github.com/mattn/go-colorable/go.test.sh new file mode 100644 index 0000000..012162b --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-colorable/noncolorable.go b/vendor/github.com/mattn/go-colorable/noncolorable.go new file mode 100644 index 0000000..05d6f74 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/noncolorable.go @@ -0,0 +1,57 @@ +package colorable + +import ( + "bytes" + "io" +) + +// NonColorable holds writer but removes escape sequence. +type NonColorable struct { + out io.Writer +} + +// NewNonColorable returns new instance of Writer which removes escape sequence from Writer. +func NewNonColorable(w io.Writer) io.Writer { + return &NonColorable{out: w} +} + +// Write writes data on console +func (w *NonColorable) Write(data []byte) (n int, err error) { + er := bytes.NewReader(data) + var plaintext bytes.Buffer +loop: + for { + c1, err := er.ReadByte() + if err != nil { + plaintext.WriteTo(w.out) + break loop + } + if c1 != 0x1b { + plaintext.WriteByte(c1) + continue + } + _, err = plaintext.WriteTo(w.out) + if err != nil { + break loop + } + c2, err := er.ReadByte() + if err != nil { + break loop + } + if c2 != 0x5b { + continue + } + + for { + c, err := er.ReadByte() + if err != nil { + break loop + } + if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { + break + } + } + } + + return len(data), nil +} diff --git a/vendor/github.com/mattn/go-isatty/LICENSE b/vendor/github.com/mattn/go-isatty/LICENSE new file mode 100644 index 0000000..65dc692 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/LICENSE @@ -0,0 +1,9 @@ +Copyright (c) Yasuhiro MATSUMOTO + +MIT License (Expat) + +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/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md new file mode 100644 index 0000000..3841835 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/README.md @@ -0,0 +1,50 @@ +# go-isatty + +[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty) +[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty) +[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master) +[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty) + +isatty for golang + +## Usage + +```go +package main + +import ( + "fmt" + "github.com/mattn/go-isatty" + "os" +) + +func main() { + if isatty.IsTerminal(os.Stdout.Fd()) { + fmt.Println("Is Terminal") + } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { + fmt.Println("Is Cygwin/MSYS2 Terminal") + } else { + fmt.Println("Is Not Terminal") + } +} +``` + +## Installation + +``` +$ go get github.com/mattn/go-isatty +``` + +## License + +MIT + +## Author + +Yasuhiro Matsumoto (a.k.a mattn) + +## Thanks + +* k-takata: base idea for IsCygwinTerminal + + https://github.com/k-takata/go-iscygpty diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go new file mode 100644 index 0000000..17d4f90 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/doc.go @@ -0,0 +1,2 @@ +// Package isatty implements interface to isatty +package isatty diff --git a/vendor/github.com/mattn/go-isatty/go.test.sh b/vendor/github.com/mattn/go-isatty/go.test.sh new file mode 100644 index 0000000..012162b --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go new file mode 100644 index 0000000..d0ea68f --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go @@ -0,0 +1,20 @@ +//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine && !tinygo +// +build darwin freebsd openbsd netbsd dragonfly hurd +// +build !appengine +// +build !tinygo + +package isatty + +import "golang.org/x/sys/unix" + +// IsTerminal return true if the file descriptor is terminal. +func IsTerminal(fd uintptr) bool { + _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA) + return err == nil +} + +// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go new file mode 100644 index 0000000..7402e06 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_others.go @@ -0,0 +1,17 @@ +//go:build (appengine || js || nacl || tinygo || wasm) && !windows +// +build appengine js nacl tinygo wasm +// +build !windows + +package isatty + +// IsTerminal returns true if the file descriptor is terminal which +// is always false on js and appengine classic which is a sandboxed PaaS. +func IsTerminal(fd uintptr) bool { + return false +} + +// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff --git a/vendor/github.com/mattn/go-isatty/isatty_plan9.go b/vendor/github.com/mattn/go-isatty/isatty_plan9.go new file mode 100644 index 0000000..bae7f9b --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_plan9.go @@ -0,0 +1,23 @@ +//go:build plan9 +// +build plan9 + +package isatty + +import ( + "syscall" +) + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd uintptr) bool { + path, err := syscall.Fd2path(int(fd)) + if err != nil { + return false + } + return path == "/dev/cons" || path == "/mnt/term/dev/cons" +} + +// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go new file mode 100644 index 0000000..0c3acf2 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_solaris.go @@ -0,0 +1,21 @@ +//go:build solaris && !appengine +// +build solaris,!appengine + +package isatty + +import ( + "golang.org/x/sys/unix" +) + +// IsTerminal returns true if the given file descriptor is a terminal. +// see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c +func IsTerminal(fd uintptr) bool { + _, err := unix.IoctlGetTermio(int(fd), unix.TCGETA) + return err == nil +} + +// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go new file mode 100644 index 0000000..0337d8c --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go @@ -0,0 +1,20 @@ +//go:build (linux || aix || zos) && !appengine && !tinygo +// +build linux aix zos +// +build !appengine +// +build !tinygo + +package isatty + +import "golang.org/x/sys/unix" + +// IsTerminal return true if the file descriptor is terminal. +func IsTerminal(fd uintptr) bool { + _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) + return err == nil +} + +// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go new file mode 100644 index 0000000..8e3c991 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/isatty_windows.go @@ -0,0 +1,125 @@ +//go:build windows && !appengine +// +build windows,!appengine + +package isatty + +import ( + "errors" + "strings" + "syscall" + "unicode/utf16" + "unsafe" +) + +const ( + objectNameInfo uintptr = 1 + fileNameInfo = 2 + fileTypePipe = 3 +) + +var ( + kernel32 = syscall.NewLazyDLL("kernel32.dll") + ntdll = syscall.NewLazyDLL("ntdll.dll") + procGetConsoleMode = kernel32.NewProc("GetConsoleMode") + procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx") + procGetFileType = kernel32.NewProc("GetFileType") + procNtQueryObject = ntdll.NewProc("NtQueryObject") +) + +func init() { + // Check if GetFileInformationByHandleEx is available. + if procGetFileInformationByHandleEx.Find() != nil { + procGetFileInformationByHandleEx = nil + } +} + +// IsTerminal return true if the file descriptor is terminal. +func IsTerminal(fd uintptr) bool { + var st uint32 + r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) + return r != 0 && e == 0 +} + +// Check pipe name is used for cygwin/msys2 pty. +// Cygwin/MSYS2 PTY has a name like: +// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master +func isCygwinPipeName(name string) bool { + token := strings.Split(name, "-") + if len(token) < 5 { + return false + } + + if token[0] != `\msys` && + token[0] != `\cygwin` && + token[0] != `\Device\NamedPipe\msys` && + token[0] != `\Device\NamedPipe\cygwin` { + return false + } + + if token[1] == "" { + return false + } + + if !strings.HasPrefix(token[2], "pty") { + return false + } + + if token[3] != `from` && token[3] != `to` { + return false + } + + if token[4] != "master" { + return false + } + + return true +} + +// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler +// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion +// guys are using Windows XP, this is a workaround for those guys, it will also work on system from +// Windows vista to 10 +// see https://stackoverflow.com/a/18792477 for details +func getFileNameByHandle(fd uintptr) (string, error) { + if procNtQueryObject == nil { + return "", errors.New("ntdll.dll: NtQueryObject not supported") + } + + var buf [4 + syscall.MAX_PATH]uint16 + var result int + r, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5, + fd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0) + if r != 0 { + return "", e + } + return string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil +} + +// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 +// terminal. +func IsCygwinTerminal(fd uintptr) bool { + if procGetFileInformationByHandleEx == nil { + name, err := getFileNameByHandle(fd) + if err != nil { + return false + } + return isCygwinPipeName(name) + } + + // Cygwin/msys's pty is a pipe. + ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0) + if ft != fileTypePipe || e != 0 { + return false + } + + var buf [2 + syscall.MAX_PATH]uint16 + r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), + 4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)), + uintptr(len(buf)*2), 0, 0) + if r == 0 || e != 0 { + return false + } + + l := *(*uint32)(unsafe.Pointer(&buf)) + return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2]))) +} diff --git a/vendor/github.com/natefinch/atomic/.gitignore b/vendor/github.com/natefinch/atomic/.gitignore new file mode 100644 index 0000000..daf913b --- /dev/null +++ b/vendor/github.com/natefinch/atomic/.gitignore @@ -0,0 +1,24 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof diff --git a/vendor/github.com/natefinch/atomic/LICENSE b/vendor/github.com/natefinch/atomic/LICENSE new file mode 100644 index 0000000..cc38d64 --- /dev/null +++ b/vendor/github.com/natefinch/atomic/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Nate Finch + +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/natefinch/atomic/README.md b/vendor/github.com/natefinch/atomic/README.md new file mode 100644 index 0000000..37cd673 --- /dev/null +++ b/vendor/github.com/natefinch/atomic/README.md @@ -0,0 +1,35 @@ +# atomic + import "github.com/natefinch/atomic" +atomic is a go package for atomic file writing + +By default, writing to a file in go (and generally any language) can fail +partway through... you then have a partially written file, which probably was +truncated when the write began, and bam, now you've lost data. + +This go package avoids this problem, by writing first to a temp file, and then +overwriting the target file in an atomic way. This is easy on linux, os.Rename +just is atomic. However, on Windows, os.Rename is not atomic, and so bad things +can happen. By wrapping the windows API moveFileEx, we can ensure that the move +is atomic, and we can be safe in knowing that either the move succeeds entirely, +or neither file will be modified. + + +## func ReplaceFile +``` go +func ReplaceFile(source, destination string) error +``` +ReplaceFile atomically replaces the destination file or directory with the +source. It is guaranteed to either replace the target file entirely, or not +change either file. + + +## func WriteFile +``` go +func WriteFile(filename string, r io.Reader) (err error) +``` +WriteFile atomically writes the contents of r to the specified filepath. If +an error occurs, the target file is guaranteed to be either fully written, or +not written at all. WriteFile overwrites any file that exists at the +location (but only if the write fully succeeds, otherwise the existing file +is unmodified). + diff --git a/vendor/github.com/natefinch/atomic/atomic.go b/vendor/github.com/natefinch/atomic/atomic.go new file mode 100644 index 0000000..f7e2706 --- /dev/null +++ b/vendor/github.com/natefinch/atomic/atomic.go @@ -0,0 +1,73 @@ +// package atomic provides functions to atomically change files. +package atomic + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" +) + +// WriteFile atomically writes the contents of r to the specified filepath. If +// an error occurs, the target file is guaranteed to be either fully written, or +// not written at all. WriteFile overwrites any file that exists at the +// location (but only if the write fully succeeds, otherwise the existing file +// is unmodified). +func WriteFile(filename string, r io.Reader) (err error) { + // write to a temp file first, then we'll atomically replace the target file + // with the temp file. + dir, file := filepath.Split(filename) + if dir == "" { + dir = "." + } + + f, err := ioutil.TempFile(dir, file) + if err != nil { + return fmt.Errorf("cannot create temp file: %v", err) + } + defer func() { + if err != nil { + // Don't leave the temp file lying around on error. + _ = os.Remove(f.Name()) // yes, ignore the error, not much we can do about it. + } + }() + // ensure we always close f. Note that this does not conflict with the + // close below, as close is idempotent. + defer f.Close() + name := f.Name() + if _, err := io.Copy(f, r); err != nil { + return fmt.Errorf("cannot write data to tempfile %q: %v", name, err) + } + // fsync is important, otherwise os.Rename could rename a zero-length file + if err := f.Sync(); err != nil { + return fmt.Errorf("can't flush tempfile %q: %v", name, err) + } + if err := f.Close(); err != nil { + return fmt.Errorf("can't close tempfile %q: %v", name, err) + } + + // get the file mode from the original file and use that for the replacement + // file, too. + destInfo, err := os.Stat(filename) + if os.IsNotExist(err) { + // no original file + } else if err != nil { + return err + } else { + sourceInfo, err := os.Stat(name) + if err != nil { + return err + } + + if sourceInfo.Mode() != destInfo.Mode() { + if err := os.Chmod(name, destInfo.Mode()); err != nil { + return fmt.Errorf("can't set filemode on tempfile %q: %v", name, err) + } + } + } + if err := ReplaceFile(name, filename); err != nil { + return fmt.Errorf("cannot replace %q with tempfile %q: %v", filename, name, err) + } + return nil +} diff --git a/vendor/github.com/natefinch/atomic/file_unix.go b/vendor/github.com/natefinch/atomic/file_unix.go new file mode 100644 index 0000000..408f18e --- /dev/null +++ b/vendor/github.com/natefinch/atomic/file_unix.go @@ -0,0 +1,14 @@ +// +build !windows + +package atomic + +import ( + "os" +) + +// ReplaceFile atomically replaces the destination file or directory with the +// source. It is guaranteed to either replace the target file entirely, or not +// change either file. +func ReplaceFile(source, destination string) error { + return os.Rename(source, destination) +} diff --git a/vendor/github.com/natefinch/atomic/file_windows.go b/vendor/github.com/natefinch/atomic/file_windows.go new file mode 100644 index 0000000..e507143 --- /dev/null +++ b/vendor/github.com/natefinch/atomic/file_windows.go @@ -0,0 +1,33 @@ +package atomic + +import ( + "os" + "syscall" +) + +const ( + movefile_replace_existing = 0x1 + movefile_write_through = 0x8 +) + +//sys moveFileEx(lpExistingFileName *uint16, lpNewFileName *uint16, dwFlags uint32) (err error) = MoveFileExW + +// ReplaceFile atomically replaces the destination file or directory with the +// source. It is guaranteed to either replace the target file entirely, or not +// change either file. +func ReplaceFile(source, destination string) error { + src, err := syscall.UTF16PtrFromString(source) + if err != nil { + return &os.LinkError{"replace", source, destination, err} + } + dest, err := syscall.UTF16PtrFromString(destination) + if err != nil { + return &os.LinkError{"replace", source, destination, err} + } + + // see http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240(v=vs.85).aspx + if err := moveFileEx(src, dest, movefile_replace_existing|movefile_write_through); err != nil { + return &os.LinkError{"replace", source, destination, err} + } + return nil +} diff --git a/vendor/github.com/natefinch/atomic/zfile_windows.go b/vendor/github.com/natefinch/atomic/zfile_windows.go new file mode 100644 index 0000000..d55db61 --- /dev/null +++ b/vendor/github.com/natefinch/atomic/zfile_windows.go @@ -0,0 +1,27 @@ +// mksyscall_windows -l32 file_windows.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +package atomic + +import ( + "syscall" + "unsafe" +) + +var ( + modkernel32 = syscall.NewLazyDLL("kernel32.dll") + + procMoveFileExW = modkernel32.NewProc("MoveFileExW") +) + +func moveFileEx(lpExistingFileName *uint16, lpNewFileName *uint16, dwFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(lpExistingFileName)), uintptr(unsafe.Pointer(lpNewFileName)), uintptr(dwFlags)) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} diff --git a/vendor/golang.org/x/mod/LICENSE b/vendor/golang.org/x/mod/LICENSE new file mode 100644 index 0000000..2a7cf70 --- /dev/null +++ b/vendor/golang.org/x/mod/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/mod/PATENTS b/vendor/golang.org/x/mod/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/mod/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go new file mode 100644 index 0000000..150f887 --- /dev/null +++ b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go @@ -0,0 +1,78 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package lazyregexp is a thin wrapper over regexp, allowing the use of global +// regexp variables without forcing them to be compiled at init. +package lazyregexp + +import ( + "os" + "regexp" + "strings" + "sync" +) + +// Regexp is a wrapper around [regexp.Regexp], where the underlying regexp will be +// compiled the first time it is needed. +type Regexp struct { + str string + once sync.Once + rx *regexp.Regexp +} + +func (r *Regexp) re() *regexp.Regexp { + r.once.Do(r.build) + return r.rx +} + +func (r *Regexp) build() { + r.rx = regexp.MustCompile(r.str) + r.str = "" +} + +func (r *Regexp) FindSubmatch(s []byte) [][]byte { + return r.re().FindSubmatch(s) +} + +func (r *Regexp) FindStringSubmatch(s string) []string { + return r.re().FindStringSubmatch(s) +} + +func (r *Regexp) FindStringSubmatchIndex(s string) []int { + return r.re().FindStringSubmatchIndex(s) +} + +func (r *Regexp) ReplaceAllString(src, repl string) string { + return r.re().ReplaceAllString(src, repl) +} + +func (r *Regexp) FindString(s string) string { + return r.re().FindString(s) +} + +func (r *Regexp) FindAllString(s string, n int) []string { + return r.re().FindAllString(s, n) +} + +func (r *Regexp) MatchString(s string) bool { + return r.re().MatchString(s) +} + +func (r *Regexp) SubexpNames() []string { + return r.re().SubexpNames() +} + +var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") + +// New creates a new lazy regexp, delaying the compiling work until it is first +// needed. If the code is being run as part of tests, the regexp compiling will +// happen immediately. +func New(str string) *Regexp { + lr := &Regexp{str: str} + if inTest { + // In tests, always compile the regexps early. + lr.re() + } + return lr +} diff --git a/vendor/golang.org/x/mod/modfile/print.go b/vendor/golang.org/x/mod/modfile/print.go new file mode 100644 index 0000000..2a0123d --- /dev/null +++ b/vendor/golang.org/x/mod/modfile/print.go @@ -0,0 +1,184 @@ +// 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. + +// Module file printer. + +package modfile + +import ( + "bytes" + "fmt" + "strings" +) + +// Format returns a go.mod file as a byte slice, formatted in standard style. +func Format(f *FileSyntax) []byte { + pr := &printer{} + pr.file(f) + + // remove trailing blank lines + b := pr.Bytes() + for len(b) > 0 && b[len(b)-1] == '\n' && (len(b) == 1 || b[len(b)-2] == '\n') { + b = b[:len(b)-1] + } + return b +} + +// A printer collects the state during printing of a file or expression. +type printer struct { + bytes.Buffer // output buffer + comment []Comment // pending end-of-line comments + margin int // left margin (indent), a number of tabs +} + +// printf prints to the buffer. +func (p *printer) printf(format string, args ...interface{}) { + fmt.Fprintf(p, format, args...) +} + +// indent returns the position on the current line, in bytes, 0-indexed. +func (p *printer) indent() int { + b := p.Bytes() + n := 0 + for n < len(b) && b[len(b)-1-n] != '\n' { + n++ + } + return n +} + +// newline ends the current line, flushing end-of-line comments. +func (p *printer) newline() { + if len(p.comment) > 0 { + p.printf(" ") + for i, com := range p.comment { + if i > 0 { + p.trim() + p.printf("\n") + for i := 0; i < p.margin; i++ { + p.printf("\t") + } + } + p.printf("%s", strings.TrimSpace(com.Token)) + } + p.comment = p.comment[:0] + } + + p.trim() + if b := p.Bytes(); len(b) == 0 || (len(b) >= 2 && b[len(b)-1] == '\n' && b[len(b)-2] == '\n') { + // skip the blank line at top of file or after a blank line + } else { + p.printf("\n") + } + for i := 0; i < p.margin; i++ { + p.printf("\t") + } +} + +// trim removes trailing spaces and tabs from the current line. +func (p *printer) trim() { + // Remove trailing spaces and tabs from line we're about to end. + b := p.Bytes() + n := len(b) + for n > 0 && (b[n-1] == '\t' || b[n-1] == ' ') { + n-- + } + p.Truncate(n) +} + +// file formats the given file into the print buffer. +func (p *printer) file(f *FileSyntax) { + for _, com := range f.Before { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + + for i, stmt := range f.Stmt { + switch x := stmt.(type) { + case *CommentBlock: + // comments already handled + p.expr(x) + + default: + p.expr(x) + p.newline() + } + + for _, com := range stmt.Comment().After { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + + if i+1 < len(f.Stmt) { + p.newline() + } + } +} + +func (p *printer) expr(x Expr) { + // Emit line-comments preceding this expression. + if before := x.Comment().Before; len(before) > 0 { + // Want to print a line comment. + // Line comments must be at the current margin. + p.trim() + if p.indent() > 0 { + // There's other text on the line. Start a new line. + p.printf("\n") + } + // Re-indent to margin. + for i := 0; i < p.margin; i++ { + p.printf("\t") + } + for _, com := range before { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + } + + switch x := x.(type) { + default: + panic(fmt.Errorf("printer: unexpected type %T", x)) + + case *CommentBlock: + // done + + case *LParen: + p.printf("(") + case *RParen: + p.printf(")") + + case *Line: + p.tokens(x.Token) + + case *LineBlock: + p.tokens(x.Token) + p.printf(" ") + p.expr(&x.LParen) + p.margin++ + for _, l := range x.Line { + p.newline() + p.expr(l) + } + p.margin-- + p.newline() + p.expr(&x.RParen) + } + + // Queue end-of-line comments for printing when we + // reach the end of the line. + p.comment = append(p.comment, x.Comment().Suffix...) +} + +func (p *printer) tokens(tokens []string) { + sep := "" + for _, t := range tokens { + if t == "," || t == ")" || t == "]" || t == "}" { + sep = "" + } + p.printf("%s%s", sep, t) + sep = " " + if t == "(" || t == "[" || t == "{" { + sep = "" + } + } +} diff --git a/vendor/golang.org/x/mod/modfile/read.go b/vendor/golang.org/x/mod/modfile/read.go new file mode 100644 index 0000000..2d74868 --- /dev/null +++ b/vendor/golang.org/x/mod/modfile/read.go @@ -0,0 +1,964 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modfile + +import ( + "bytes" + "errors" + "fmt" + "os" + "strconv" + "strings" + "unicode" + "unicode/utf8" +) + +// A Position describes an arbitrary source position in a file, including the +// file, line, column, and byte offset. +type Position struct { + Line int // line in input (starting at 1) + LineRune int // rune in line (starting at 1) + Byte int // byte in input (starting at 0) +} + +// add returns the position at the end of s, assuming it starts at p. +func (p Position) add(s string) Position { + p.Byte += len(s) + if n := strings.Count(s, "\n"); n > 0 { + p.Line += n + s = s[strings.LastIndex(s, "\n")+1:] + p.LineRune = 1 + } + p.LineRune += utf8.RuneCountInString(s) + return p +} + +// An Expr represents an input element. +type Expr interface { + // Span returns the start and end position of the expression, + // excluding leading or trailing comments. + Span() (start, end Position) + + // Comment returns the comments attached to the expression. + // This method would normally be named 'Comments' but that + // would interfere with embedding a type of the same name. + Comment() *Comments +} + +// A Comment represents a single // comment. +type Comment struct { + Start Position + Token string // without trailing newline + Suffix bool // an end of line (not whole line) comment +} + +// Comments collects the comments associated with an expression. +type Comments struct { + Before []Comment // whole-line comments before this expression + Suffix []Comment // end-of-line comments after this expression + + // For top-level expressions only, After lists whole-line + // comments following the expression. + After []Comment +} + +// Comment returns the receiver. This isn't useful by itself, but +// a [Comments] struct is embedded into all the expression +// implementation types, and this gives each of those a Comment +// method to satisfy the Expr interface. +func (c *Comments) Comment() *Comments { + return c +} + +// A FileSyntax represents an entire go.mod file. +type FileSyntax struct { + Name string // file path + Comments + Stmt []Expr +} + +func (x *FileSyntax) Span() (start, end Position) { + if len(x.Stmt) == 0 { + return + } + start, _ = x.Stmt[0].Span() + _, end = x.Stmt[len(x.Stmt)-1].Span() + return start, end +} + +// addLine adds a line containing the given tokens to the file. +// +// If the first token of the hint matches the first token of the +// line, the new line is added at the end of the block containing hint, +// extracting hint into a new block if it is not yet in one. +// +// If the hint is non-nil buts its first token does not match, +// the new line is added after the block containing hint +// (or hint itself, if not in a block). +// +// If no hint is provided, addLine appends the line to the end of +// the last block with a matching first token, +// or to the end of the file if no such block exists. +func (x *FileSyntax) addLine(hint Expr, tokens ...string) *Line { + if hint == nil { + // If no hint given, add to the last statement of the given type. + Loop: + for i := len(x.Stmt) - 1; i >= 0; i-- { + stmt := x.Stmt[i] + switch stmt := stmt.(type) { + case *Line: + if stmt.Token != nil && stmt.Token[0] == tokens[0] { + hint = stmt + break Loop + } + case *LineBlock: + if stmt.Token[0] == tokens[0] { + hint = stmt + break Loop + } + } + } + } + + newLineAfter := func(i int) *Line { + new := &Line{Token: tokens} + if i == len(x.Stmt) { + x.Stmt = append(x.Stmt, new) + } else { + x.Stmt = append(x.Stmt, nil) + copy(x.Stmt[i+2:], x.Stmt[i+1:]) + x.Stmt[i+1] = new + } + return new + } + + if hint != nil { + for i, stmt := range x.Stmt { + switch stmt := stmt.(type) { + case *Line: + if stmt == hint { + if stmt.Token == nil || stmt.Token[0] != tokens[0] { + return newLineAfter(i) + } + + // Convert line to line block. + stmt.InBlock = true + block := &LineBlock{Token: stmt.Token[:1], Line: []*Line{stmt}} + stmt.Token = stmt.Token[1:] + x.Stmt[i] = block + new := &Line{Token: tokens[1:], InBlock: true} + block.Line = append(block.Line, new) + return new + } + + case *LineBlock: + if stmt == hint { + if stmt.Token[0] != tokens[0] { + return newLineAfter(i) + } + + new := &Line{Token: tokens[1:], InBlock: true} + stmt.Line = append(stmt.Line, new) + return new + } + + for j, line := range stmt.Line { + if line == hint { + if stmt.Token[0] != tokens[0] { + return newLineAfter(i) + } + + // Add new line after hint within the block. + stmt.Line = append(stmt.Line, nil) + copy(stmt.Line[j+2:], stmt.Line[j+1:]) + new := &Line{Token: tokens[1:], InBlock: true} + stmt.Line[j+1] = new + return new + } + } + } + } + } + + new := &Line{Token: tokens} + x.Stmt = append(x.Stmt, new) + return new +} + +func (x *FileSyntax) updateLine(line *Line, tokens ...string) { + if line.InBlock { + tokens = tokens[1:] + } + line.Token = tokens +} + +// markRemoved modifies line so that it (and its end-of-line comment, if any) +// will be dropped by (*FileSyntax).Cleanup. +func (line *Line) markRemoved() { + line.Token = nil + line.Comments.Suffix = nil +} + +// Cleanup cleans up the file syntax x after any edit operations. +// To avoid quadratic behavior, (*Line).markRemoved marks the line as dead +// by setting line.Token = nil but does not remove it from the slice +// in which it appears. After edits have all been indicated, +// calling Cleanup cleans out the dead lines. +func (x *FileSyntax) Cleanup() { + w := 0 + for _, stmt := range x.Stmt { + switch stmt := stmt.(type) { + case *Line: + if stmt.Token == nil { + continue + } + case *LineBlock: + ww := 0 + for _, line := range stmt.Line { + if line.Token != nil { + stmt.Line[ww] = line + ww++ + } + } + if ww == 0 { + continue + } + if ww == 1 && len(stmt.RParen.Comments.Before) == 0 { + // Collapse block into single line but keep the Line reference used by the + // parsed File structure. + *stmt.Line[0] = Line{ + Comments: Comments{ + Before: commentsAdd(stmt.Before, stmt.Line[0].Before), + Suffix: commentsAdd(stmt.Line[0].Suffix, stmt.Suffix), + After: commentsAdd(stmt.Line[0].After, stmt.After), + }, + Token: stringsAdd(stmt.Token, stmt.Line[0].Token), + } + x.Stmt[w] = stmt.Line[0] + w++ + continue + } + stmt.Line = stmt.Line[:ww] + } + x.Stmt[w] = stmt + w++ + } + x.Stmt = x.Stmt[:w] +} + +func commentsAdd(x, y []Comment) []Comment { + return append(x[:len(x):len(x)], y...) +} + +func stringsAdd(x, y []string) []string { + return append(x[:len(x):len(x)], y...) +} + +// A CommentBlock represents a top-level block of comments separate +// from any rule. +type CommentBlock struct { + Comments + Start Position +} + +func (x *CommentBlock) Span() (start, end Position) { + return x.Start, x.Start +} + +// A Line is a single line of tokens. +type Line struct { + Comments + Start Position + Token []string + InBlock bool + End Position +} + +func (x *Line) Span() (start, end Position) { + return x.Start, x.End +} + +// A LineBlock is a factored block of lines, like +// +// require ( +// "x" +// "y" +// ) +type LineBlock struct { + Comments + Start Position + LParen LParen + Token []string + Line []*Line + RParen RParen +} + +func (x *LineBlock) Span() (start, end Position) { + return x.Start, x.RParen.Pos.add(")") +} + +// An LParen represents the beginning of a parenthesized line block. +// It is a place to store suffix comments. +type LParen struct { + Comments + Pos Position +} + +func (x *LParen) Span() (start, end Position) { + return x.Pos, x.Pos.add(")") +} + +// An RParen represents the end of a parenthesized line block. +// It is a place to store whole-line (before) comments. +type RParen struct { + Comments + Pos Position +} + +func (x *RParen) Span() (start, end Position) { + return x.Pos, x.Pos.add(")") +} + +// An input represents a single input file being parsed. +type input struct { + // Lexing state. + filename string // name of input file, for errors + complete []byte // entire input + remaining []byte // remaining input + tokenStart []byte // token being scanned to end of input + token token // next token to be returned by lex, peek + pos Position // current input position + comments []Comment // accumulated comments + + // Parser state. + file *FileSyntax // returned top-level syntax tree + parseErrors ErrorList // errors encountered during parsing + + // Comment assignment state. + pre []Expr // all expressions, in preorder traversal + post []Expr // all expressions, in postorder traversal +} + +func newInput(filename string, data []byte) *input { + return &input{ + filename: filename, + complete: data, + remaining: data, + pos: Position{Line: 1, LineRune: 1, Byte: 0}, + } +} + +// parse parses the input file. +func parse(file string, data []byte) (f *FileSyntax, err error) { + // The parser panics for both routine errors like syntax errors + // and for programmer bugs like array index errors. + // Turn both into error returns. Catching bug panics is + // especially important when processing many files. + in := newInput(file, data) + defer func() { + if e := recover(); e != nil && e != &in.parseErrors { + in.parseErrors = append(in.parseErrors, Error{ + Filename: in.filename, + Pos: in.pos, + Err: fmt.Errorf("internal error: %v", e), + }) + } + if err == nil && len(in.parseErrors) > 0 { + err = in.parseErrors + } + }() + + // Prime the lexer by reading in the first token. It will be available + // in the next peek() or lex() call. + in.readToken() + + // Invoke the parser. + in.parseFile() + if len(in.parseErrors) > 0 { + return nil, in.parseErrors + } + in.file.Name = in.filename + + // Assign comments to nearby syntax. + in.assignComments() + + return in.file, nil +} + +// Error is called to report an error. +// Error does not return: it panics. +func (in *input) Error(s string) { + in.parseErrors = append(in.parseErrors, Error{ + Filename: in.filename, + Pos: in.pos, + Err: errors.New(s), + }) + panic(&in.parseErrors) +} + +// eof reports whether the input has reached end of file. +func (in *input) eof() bool { + return len(in.remaining) == 0 +} + +// peekRune returns the next rune in the input without consuming it. +func (in *input) peekRune() int { + if len(in.remaining) == 0 { + return 0 + } + r, _ := utf8.DecodeRune(in.remaining) + return int(r) +} + +// peekPrefix reports whether the remaining input begins with the given prefix. +func (in *input) peekPrefix(prefix string) bool { + // This is like bytes.HasPrefix(in.remaining, []byte(prefix)) + // but without the allocation of the []byte copy of prefix. + for i := 0; i < len(prefix); i++ { + if i >= len(in.remaining) || in.remaining[i] != prefix[i] { + return false + } + } + return true +} + +// readRune consumes and returns the next rune in the input. +func (in *input) readRune() int { + if len(in.remaining) == 0 { + in.Error("internal lexer error: readRune at EOF") + } + r, size := utf8.DecodeRune(in.remaining) + in.remaining = in.remaining[size:] + if r == '\n' { + in.pos.Line++ + in.pos.LineRune = 1 + } else { + in.pos.LineRune++ + } + in.pos.Byte += size + return int(r) +} + +type token struct { + kind tokenKind + pos Position + endPos Position + text string +} + +type tokenKind int + +const ( + _EOF tokenKind = -(iota + 1) + _EOLCOMMENT + _IDENT + _STRING + _COMMENT + + // newlines and punctuation tokens are allowed as ASCII codes. +) + +func (k tokenKind) isComment() bool { + return k == _COMMENT || k == _EOLCOMMENT +} + +// isEOL returns whether a token terminates a line. +func (k tokenKind) isEOL() bool { + return k == _EOF || k == _EOLCOMMENT || k == '\n' +} + +// startToken marks the beginning of the next input token. +// It must be followed by a call to endToken, once the token's text has +// been consumed using readRune. +func (in *input) startToken() { + in.tokenStart = in.remaining + in.token.text = "" + in.token.pos = in.pos +} + +// endToken marks the end of an input token. +// It records the actual token string in tok.text. +// A single trailing newline (LF or CRLF) will be removed from comment tokens. +func (in *input) endToken(kind tokenKind) { + in.token.kind = kind + text := string(in.tokenStart[:len(in.tokenStart)-len(in.remaining)]) + if kind.isComment() { + if strings.HasSuffix(text, "\r\n") { + text = text[:len(text)-2] + } else { + text = strings.TrimSuffix(text, "\n") + } + } + in.token.text = text + in.token.endPos = in.pos +} + +// peek returns the kind of the next token returned by lex. +func (in *input) peek() tokenKind { + return in.token.kind +} + +// lex is called from the parser to obtain the next input token. +func (in *input) lex() token { + tok := in.token + in.readToken() + return tok +} + +// readToken lexes the next token from the text and stores it in in.token. +func (in *input) readToken() { + // Skip past spaces, stopping at non-space or EOF. + for !in.eof() { + c := in.peekRune() + if c == ' ' || c == '\t' || c == '\r' { + in.readRune() + continue + } + + // Comment runs to end of line. + if in.peekPrefix("//") { + in.startToken() + + // Is this comment the only thing on its line? + // Find the last \n before this // and see if it's all + // spaces from there to here. + i := bytes.LastIndex(in.complete[:in.pos.Byte], []byte("\n")) + suffix := len(bytes.TrimSpace(in.complete[i+1:in.pos.Byte])) > 0 + in.readRune() + in.readRune() + + // Consume comment. + for len(in.remaining) > 0 && in.readRune() != '\n' { + } + + // If we are at top level (not in a statement), hand the comment to + // the parser as a _COMMENT token. The grammar is written + // to handle top-level comments itself. + if !suffix { + in.endToken(_COMMENT) + return + } + + // Otherwise, save comment for later attachment to syntax tree. + in.endToken(_EOLCOMMENT) + in.comments = append(in.comments, Comment{in.token.pos, in.token.text, suffix}) + return + } + + if in.peekPrefix("/*") { + in.Error("mod files must use // comments (not /* */ comments)") + } + + // Found non-space non-comment. + break + } + + // Found the beginning of the next token. + in.startToken() + + // End of file. + if in.eof() { + in.endToken(_EOF) + return + } + + // Punctuation tokens. + switch c := in.peekRune(); c { + case '\n', '(', ')', '[', ']', '{', '}', ',': + in.readRune() + in.endToken(tokenKind(c)) + return + + case '"', '`': // quoted string + quote := c + in.readRune() + for { + if in.eof() { + in.pos = in.token.pos + in.Error("unexpected EOF in string") + } + if in.peekRune() == '\n' { + in.Error("unexpected newline in string") + } + c := in.readRune() + if c == quote { + break + } + if c == '\\' && quote != '`' { + if in.eof() { + in.pos = in.token.pos + in.Error("unexpected EOF in string") + } + in.readRune() + } + } + in.endToken(_STRING) + return + } + + // Checked all punctuation. Must be identifier token. + if c := in.peekRune(); !isIdent(c) { + in.Error(fmt.Sprintf("unexpected input character %#q", c)) + } + + // Scan over identifier. + for isIdent(in.peekRune()) { + if in.peekPrefix("//") { + break + } + if in.peekPrefix("/*") { + in.Error("mod files must use // comments (not /* */ comments)") + } + in.readRune() + } + in.endToken(_IDENT) +} + +// isIdent reports whether c is an identifier rune. +// We treat most printable runes as identifier runes, except for a handful of +// ASCII punctuation characters. +func isIdent(c int) bool { + switch r := rune(c); r { + case ' ', '(', ')', '[', ']', '{', '}', ',': + return false + default: + return !unicode.IsSpace(r) && unicode.IsPrint(r) + } +} + +// Comment assignment. +// We build two lists of all subexpressions, preorder and postorder. +// The preorder list is ordered by start location, with outer expressions first. +// The postorder list is ordered by end location, with outer expressions last. +// We use the preorder list to assign each whole-line comment to the syntax +// immediately following it, and we use the postorder list to assign each +// end-of-line comment to the syntax immediately preceding it. + +// order walks the expression adding it and its subexpressions to the +// preorder and postorder lists. +func (in *input) order(x Expr) { + if x != nil { + in.pre = append(in.pre, x) + } + switch x := x.(type) { + default: + panic(fmt.Errorf("order: unexpected type %T", x)) + case nil: + // nothing + case *LParen, *RParen: + // nothing + case *CommentBlock: + // nothing + case *Line: + // nothing + case *FileSyntax: + for _, stmt := range x.Stmt { + in.order(stmt) + } + case *LineBlock: + in.order(&x.LParen) + for _, l := range x.Line { + in.order(l) + } + in.order(&x.RParen) + } + if x != nil { + in.post = append(in.post, x) + } +} + +// assignComments attaches comments to nearby syntax. +func (in *input) assignComments() { + const debug = false + + // Generate preorder and postorder lists. + in.order(in.file) + + // Split into whole-line comments and suffix comments. + var line, suffix []Comment + for _, com := range in.comments { + if com.Suffix { + suffix = append(suffix, com) + } else { + line = append(line, com) + } + } + + if debug { + for _, c := range line { + fmt.Fprintf(os.Stderr, "LINE %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) + } + } + + // Assign line comments to syntax immediately following. + for _, x := range in.pre { + start, _ := x.Span() + if debug { + fmt.Fprintf(os.Stderr, "pre %T :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte) + } + xcom := x.Comment() + for len(line) > 0 && start.Byte >= line[0].Start.Byte { + if debug { + fmt.Fprintf(os.Stderr, "ASSIGN LINE %q #%d\n", line[0].Token, line[0].Start.Byte) + } + xcom.Before = append(xcom.Before, line[0]) + line = line[1:] + } + } + + // Remaining line comments go at end of file. + in.file.After = append(in.file.After, line...) + + if debug { + for _, c := range suffix { + fmt.Fprintf(os.Stderr, "SUFFIX %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) + } + } + + // Assign suffix comments to syntax immediately before. + for i := len(in.post) - 1; i >= 0; i-- { + x := in.post[i] + + start, end := x.Span() + if debug { + fmt.Fprintf(os.Stderr, "post %T :%d:%d #%d :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte, end.Line, end.LineRune, end.Byte) + } + + // Do not assign suffix comments to end of line block or whole file. + // Instead assign them to the last element inside. + switch x.(type) { + case *FileSyntax: + continue + } + + // Do not assign suffix comments to something that starts + // on an earlier line, so that in + // + // x ( y + // z ) // comment + // + // we assign the comment to z and not to x ( ... ). + if start.Line != end.Line { + continue + } + xcom := x.Comment() + for len(suffix) > 0 && end.Byte <= suffix[len(suffix)-1].Start.Byte { + if debug { + fmt.Fprintf(os.Stderr, "ASSIGN SUFFIX %q #%d\n", suffix[len(suffix)-1].Token, suffix[len(suffix)-1].Start.Byte) + } + xcom.Suffix = append(xcom.Suffix, suffix[len(suffix)-1]) + suffix = suffix[:len(suffix)-1] + } + } + + // We assigned suffix comments in reverse. + // If multiple suffix comments were appended to the same + // expression node, they are now in reverse. Fix that. + for _, x := range in.post { + reverseComments(x.Comment().Suffix) + } + + // Remaining suffix comments go at beginning of file. + in.file.Before = append(in.file.Before, suffix...) +} + +// reverseComments reverses the []Comment list. +func reverseComments(list []Comment) { + for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 { + list[i], list[j] = list[j], list[i] + } +} + +func (in *input) parseFile() { + in.file = new(FileSyntax) + var cb *CommentBlock + for { + switch in.peek() { + case '\n': + in.lex() + if cb != nil { + in.file.Stmt = append(in.file.Stmt, cb) + cb = nil + } + case _COMMENT: + tok := in.lex() + if cb == nil { + cb = &CommentBlock{Start: tok.pos} + } + com := cb.Comment() + com.Before = append(com.Before, Comment{Start: tok.pos, Token: tok.text}) + case _EOF: + if cb != nil { + in.file.Stmt = append(in.file.Stmt, cb) + } + return + default: + in.parseStmt() + if cb != nil { + in.file.Stmt[len(in.file.Stmt)-1].Comment().Before = cb.Before + cb = nil + } + } + } +} + +func (in *input) parseStmt() { + tok := in.lex() + start := tok.pos + end := tok.endPos + tokens := []string{tok.text} + for { + tok := in.lex() + switch { + case tok.kind.isEOL(): + in.file.Stmt = append(in.file.Stmt, &Line{ + Start: start, + Token: tokens, + End: end, + }) + return + + case tok.kind == '(': + if next := in.peek(); next.isEOL() { + // Start of block: no more tokens on this line. + in.file.Stmt = append(in.file.Stmt, in.parseLineBlock(start, tokens, tok)) + return + } else if next == ')' { + rparen := in.lex() + if in.peek().isEOL() { + // Empty block. + in.lex() + in.file.Stmt = append(in.file.Stmt, &LineBlock{ + Start: start, + Token: tokens, + LParen: LParen{Pos: tok.pos}, + RParen: RParen{Pos: rparen.pos}, + }) + return + } + // '( )' in the middle of the line, not a block. + tokens = append(tokens, tok.text, rparen.text) + } else { + // '(' in the middle of the line, not a block. + tokens = append(tokens, tok.text) + } + + default: + tokens = append(tokens, tok.text) + end = tok.endPos + } + } +} + +func (in *input) parseLineBlock(start Position, token []string, lparen token) *LineBlock { + x := &LineBlock{ + Start: start, + Token: token, + LParen: LParen{Pos: lparen.pos}, + } + var comments []Comment + for { + switch in.peek() { + case _EOLCOMMENT: + // Suffix comment, will be attached later by assignComments. + in.lex() + case '\n': + // Blank line. Add an empty comment to preserve it. + in.lex() + if len(comments) == 0 && len(x.Line) > 0 || len(comments) > 0 && comments[len(comments)-1].Token != "" { + comments = append(comments, Comment{}) + } + case _COMMENT: + tok := in.lex() + comments = append(comments, Comment{Start: tok.pos, Token: tok.text}) + case _EOF: + in.Error(fmt.Sprintf("syntax error (unterminated block started at %s:%d:%d)", in.filename, x.Start.Line, x.Start.LineRune)) + case ')': + rparen := in.lex() + // Don't preserve blank lines (denoted by a single empty comment, added above) + // at the end of the block. + if len(comments) == 1 && comments[0] == (Comment{}) { + comments = nil + } + x.RParen.Before = comments + x.RParen.Pos = rparen.pos + if !in.peek().isEOL() { + in.Error("syntax error (expected newline after closing paren)") + } + in.lex() + return x + default: + l := in.parseLine() + x.Line = append(x.Line, l) + l.Comment().Before = comments + comments = nil + } + } +} + +func (in *input) parseLine() *Line { + tok := in.lex() + if tok.kind.isEOL() { + in.Error("internal parse error: parseLine at end of line") + } + start := tok.pos + end := tok.endPos + tokens := []string{tok.text} + for { + tok := in.lex() + if tok.kind.isEOL() { + return &Line{ + Start: start, + Token: tokens, + End: end, + InBlock: true, + } + } + tokens = append(tokens, tok.text) + end = tok.endPos + } +} + +var ( + slashSlash = []byte("//") + moduleStr = []byte("module") +) + +// ModulePath returns the module path from the gomod file text. +// If it cannot find a module path, it returns an empty string. +// It is tolerant of unrelated problems in the go.mod file. +func ModulePath(mod []byte) string { + for len(mod) > 0 { + line := mod + mod = nil + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, mod = line[:i], line[i+1:] + } + if i := bytes.Index(line, slashSlash); i >= 0 { + line = line[:i] + } + line = bytes.TrimSpace(line) + if !bytes.HasPrefix(line, moduleStr) { + continue + } + line = line[len(moduleStr):] + n := len(line) + line = bytes.TrimSpace(line) + if len(line) == n || len(line) == 0 { + continue + } + + if line[0] == '"' || line[0] == '`' { + p, err := strconv.Unquote(string(line)) + if err != nil { + return "" // malformed quoted string or multiline module path + } + return p + } + + return string(line) + } + return "" // missing module path +} diff --git a/vendor/golang.org/x/mod/modfile/rule.go b/vendor/golang.org/x/mod/modfile/rule.go new file mode 100644 index 0000000..a86ee4f --- /dev/null +++ b/vendor/golang.org/x/mod/modfile/rule.go @@ -0,0 +1,1904 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package modfile implements a parser and formatter for go.mod files. +// +// The go.mod syntax is described in +// https://pkg.go.dev/cmd/go/#hdr-The_go_mod_file. +// +// The [Parse] and [ParseLax] functions both parse a go.mod file and return an +// abstract syntax tree. ParseLax ignores unknown statements and may be used to +// parse go.mod files that may have been developed with newer versions of Go. +// +// The [File] struct returned by Parse and ParseLax represent an abstract +// go.mod file. File has several methods like [File.AddNewRequire] and +// [File.DropReplace] that can be used to programmatically edit a file. +// +// The [Format] function formats a File back to a byte slice which can be +// written to a file. +package modfile + +import ( + "cmp" + "errors" + "fmt" + "path/filepath" + "slices" + "strconv" + "strings" + "unicode" + + "golang.org/x/mod/internal/lazyregexp" + "golang.org/x/mod/module" + "golang.org/x/mod/semver" +) + +// A File is the parsed, interpreted form of a go.mod file. +type File struct { + Module *Module + Go *Go + Toolchain *Toolchain + Godebug []*Godebug + Require []*Require + Exclude []*Exclude + Replace []*Replace + Retract []*Retract + Tool []*Tool + Ignore []*Ignore + + Syntax *FileSyntax +} + +// A Module is the module statement. +type Module struct { + Mod module.Version + Deprecated string + Syntax *Line +} + +// A Go is the go statement. +type Go struct { + Version string // "1.23" + Syntax *Line +} + +// A Toolchain is the toolchain statement. +type Toolchain struct { + Name string // "go1.21rc1" + Syntax *Line +} + +// A Godebug is a single godebug key=value statement. +type Godebug struct { + Key string + Value string + Syntax *Line +} + +// An Exclude is a single exclude statement. +type Exclude struct { + Mod module.Version + Syntax *Line +} + +// A Replace is a single replace statement. +type Replace struct { + Old module.Version + New module.Version + Syntax *Line +} + +// A Retract is a single retract statement. +type Retract struct { + VersionInterval + Rationale string + Syntax *Line +} + +// A Tool is a single tool statement. +type Tool struct { + Path string + Syntax *Line +} + +// An Ignore is a single ignore statement. +type Ignore struct { + Path string + Syntax *Line +} + +// A VersionInterval represents a range of versions with upper and lower bounds. +// Intervals are closed: both bounds are included. When Low is equal to High, +// the interval may refer to a single version ('v1.2.3') or an interval +// ('[v1.2.3, v1.2.3]'); both have the same representation. +type VersionInterval struct { + Low, High string +} + +// A Require is a single require statement. +type Require struct { + Mod module.Version + Indirect bool // has "// indirect" comment + Syntax *Line +} + +func (r *Require) markRemoved() { + r.Syntax.markRemoved() + *r = Require{} +} + +func (r *Require) setVersion(v string) { + r.Mod.Version = v + + if line := r.Syntax; len(line.Token) > 0 { + if line.InBlock { + // If the line is preceded by an empty line, remove it; see + // https://golang.org/issue/33779. + if len(line.Comments.Before) == 1 && len(line.Comments.Before[0].Token) == 0 { + line.Comments.Before = line.Comments.Before[:0] + } + if len(line.Token) >= 2 { // example.com v1.2.3 + line.Token[1] = v + } + } else { + if len(line.Token) >= 3 { // require example.com v1.2.3 + line.Token[2] = v + } + } + } +} + +// setIndirect sets line to have (or not have) a "// indirect" comment. +func (r *Require) setIndirect(indirect bool) { + r.Indirect = indirect + line := r.Syntax + if isIndirect(line) == indirect { + return + } + if indirect { + // Adding comment. + if len(line.Suffix) == 0 { + // New comment. + line.Suffix = []Comment{{Token: "// indirect", Suffix: true}} + return + } + + com := &line.Suffix[0] + text := strings.TrimSpace(strings.TrimPrefix(com.Token, string(slashSlash))) + if text == "" { + // Empty comment. + com.Token = "// indirect" + return + } + + // Insert at beginning of existing comment. + com.Token = "// indirect; " + text + return + } + + // Removing comment. + f := strings.TrimSpace(strings.TrimPrefix(line.Suffix[0].Token, string(slashSlash))) + if f == "indirect" { + // Remove whole comment. + line.Suffix = nil + return + } + + // Remove comment prefix. + com := &line.Suffix[0] + i := strings.Index(com.Token, "indirect;") + com.Token = "//" + com.Token[i+len("indirect;"):] +} + +// isIndirect reports whether line has a "// indirect" comment, +// meaning it is in go.mod only for its effect on indirect dependencies, +// so that it can be dropped entirely once the effective version of the +// indirect dependency reaches the given minimum version. +func isIndirect(line *Line) bool { + if len(line.Suffix) == 0 { + return false + } + f := strings.Fields(strings.TrimPrefix(line.Suffix[0].Token, string(slashSlash))) + return (len(f) == 1 && f[0] == "indirect" || len(f) > 1 && f[0] == "indirect;") +} + +func (f *File) AddModuleStmt(path string) error { + if f.Syntax == nil { + f.Syntax = new(FileSyntax) + } + if f.Module == nil { + f.Module = &Module{ + Mod: module.Version{Path: path}, + Syntax: f.Syntax.addLine(nil, "module", AutoQuote(path)), + } + } else { + f.Module.Mod.Path = path + f.Syntax.updateLine(f.Module.Syntax, "module", AutoQuote(path)) + } + return nil +} + +func (f *File) AddComment(text string) { + if f.Syntax == nil { + f.Syntax = new(FileSyntax) + } + f.Syntax.Stmt = append(f.Syntax.Stmt, &CommentBlock{ + Comments: Comments{ + Before: []Comment{ + { + Token: text, + }, + }, + }, + }) +} + +type VersionFixer func(path, version string) (string, error) + +// errDontFix is returned by a VersionFixer to indicate the version should be +// left alone, even if it's not canonical. +var dontFixRetract VersionFixer = func(_, vers string) (string, error) { + return vers, nil +} + +// Parse parses and returns a go.mod file. +// +// file is the name of the file, used in positions and errors. +// +// data is the content of the file. +// +// fix is an optional function that canonicalizes module versions. +// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] +// must return the same string). +func Parse(file string, data []byte, fix VersionFixer) (*File, error) { + return parseToFile(file, data, fix, true) +} + +// ParseLax is like Parse but ignores unknown statements. +// It is used when parsing go.mod files other than the main module, +// under the theory that most statement types we add in the future will +// only apply in the main module, like exclude and replace, +// and so we get better gradual deployments if old go commands +// simply ignore those statements when found in go.mod files +// in dependencies. +func ParseLax(file string, data []byte, fix VersionFixer) (*File, error) { + return parseToFile(file, data, fix, false) +} + +func parseToFile(file string, data []byte, fix VersionFixer, strict bool) (parsed *File, err error) { + fs, err := parse(file, data) + if err != nil { + return nil, err + } + f := &File{ + Syntax: fs, + } + var errs ErrorList + + // fix versions in retract directives after the file is parsed. + // We need the module path to fix versions, and it might be at the end. + defer func() { + oldLen := len(errs) + f.fixRetract(fix, &errs) + if len(errs) > oldLen { + parsed, err = nil, errs + } + }() + + for _, x := range fs.Stmt { + switch x := x.(type) { + case *Line: + f.add(&errs, nil, x, x.Token[0], x.Token[1:], fix, strict) + + case *LineBlock: + if len(x.Token) > 1 { + if strict { + errs = append(errs, Error{ + Filename: file, + Pos: x.Start, + Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), + }) + } + continue + } + switch x.Token[0] { + default: + if strict { + errs = append(errs, Error{ + Filename: file, + Pos: x.Start, + Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), + }) + } + continue + case "module", "godebug", "require", "exclude", "replace", "retract", "tool", "ignore": + for _, l := range x.Line { + f.add(&errs, x, l, x.Token[0], l.Token, fix, strict) + } + } + } + } + + if len(errs) > 0 { + return nil, errs + } + return f, nil +} + +var GoVersionRE = lazyregexp.New(`^([1-9][0-9]*)\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?([a-z]+[0-9]+)?$`) +var laxGoVersionRE = lazyregexp.New(`^v?(([1-9][0-9]*)\.(0|[1-9][0-9]*))([^0-9].*)$`) + +// Toolchains must be named beginning with `go1`, +// like "go1.20.3" or "go1.20.3-gccgo". As a special case, "default" is also permitted. +// Note that this regexp is a much looser condition than go/version.IsValid, +// for forward compatibility. +// (This code has to be work to identify new toolchains even if we tweak the syntax in the future.) +var ToolchainRE = lazyregexp.New(`^default$|^go1($|\.)`) + +func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, args []string, fix VersionFixer, strict bool) { + // If strict is false, this module is a dependency. + // We ignore all unknown directives as well as main-module-only + // directives like replace and exclude. It will work better for + // forward compatibility if we can depend on modules that have unknown + // statements (presumed relevant only when acting as the main module) + // and simply ignore those statements. + if !strict { + switch verb { + case "go", "module", "retract", "require", "ignore": + // want these even for dependency go.mods + default: + return + } + } + + wrapModPathError := func(modPath string, err error) { + *errs = append(*errs, Error{ + Filename: f.Syntax.Name, + Pos: line.Start, + ModPath: modPath, + Verb: verb, + Err: err, + }) + } + wrapError := func(err error) { + *errs = append(*errs, Error{ + Filename: f.Syntax.Name, + Pos: line.Start, + Err: err, + }) + } + errorf := func(format string, args ...interface{}) { + wrapError(fmt.Errorf(format, args...)) + } + + switch verb { + default: + errorf("unknown directive: %s", verb) + + case "go": + if f.Go != nil { + errorf("repeated go statement") + return + } + if len(args) != 1 { + errorf("go directive expects exactly one argument") + return + } else if !GoVersionRE.MatchString(args[0]) { + fixed := false + if !strict { + if m := laxGoVersionRE.FindStringSubmatch(args[0]); m != nil { + args[0] = m[1] + fixed = true + } + } + if !fixed { + errorf("invalid go version '%s': must match format 1.23.0", args[0]) + return + } + } + + f.Go = &Go{Syntax: line} + f.Go.Version = args[0] + + case "toolchain": + if f.Toolchain != nil { + errorf("repeated toolchain statement") + return + } + if len(args) != 1 { + errorf("toolchain directive expects exactly one argument") + return + } else if !ToolchainRE.MatchString(args[0]) { + errorf("invalid toolchain version '%s': must match format go1.23.0 or default", args[0]) + return + } + f.Toolchain = &Toolchain{Syntax: line} + f.Toolchain.Name = args[0] + + case "module": + if f.Module != nil { + errorf("repeated module statement") + return + } + deprecated := parseDeprecation(block, line) + f.Module = &Module{ + Syntax: line, + Deprecated: deprecated, + } + if len(args) != 1 { + errorf("usage: module module/path") + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + f.Module.Mod = module.Version{Path: s} + + case "godebug": + if len(args) != 1 || strings.ContainsAny(args[0], "\"`',") { + errorf("usage: godebug key=value") + return + } + key, value, ok := strings.Cut(args[0], "=") + if !ok { + errorf("usage: godebug key=value") + return + } + f.Godebug = append(f.Godebug, &Godebug{ + Key: key, + Value: value, + Syntax: line, + }) + + case "require", "exclude": + if len(args) != 2 { + errorf("usage: %s module/path v1.2.3", verb) + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + v, err := parseVersion(verb, s, &args[1], fix) + if err != nil { + wrapError(err) + return + } + pathMajor, err := modulePathMajor(s) + if err != nil { + wrapError(err) + return + } + if err := module.CheckPathMajor(v, pathMajor); err != nil { + wrapModPathError(s, err) + return + } + if verb == "require" { + f.Require = append(f.Require, &Require{ + Mod: module.Version{Path: s, Version: v}, + Syntax: line, + Indirect: isIndirect(line), + }) + } else { + f.Exclude = append(f.Exclude, &Exclude{ + Mod: module.Version{Path: s, Version: v}, + Syntax: line, + }) + } + + case "replace": + replace, wrappederr := parseReplace(f.Syntax.Name, line, verb, args, fix) + if wrappederr != nil { + *errs = append(*errs, *wrappederr) + return + } + f.Replace = append(f.Replace, replace) + + case "retract": + rationale := parseDirectiveComment(block, line) + vi, err := parseVersionInterval(verb, "", &args, dontFixRetract) + if err != nil { + if strict { + wrapError(err) + return + } else { + // Only report errors parsing intervals in the main module. We may + // support additional syntax in the future, such as open and half-open + // intervals. Those can't be supported now, because they break the + // go.mod parser, even in lax mode. + return + } + } + if len(args) > 0 && strict { + // In the future, there may be additional information after the version. + errorf("unexpected token after version: %q", args[0]) + return + } + retract := &Retract{ + VersionInterval: vi, + Rationale: rationale, + Syntax: line, + } + f.Retract = append(f.Retract, retract) + + case "tool": + if len(args) != 1 { + errorf("tool directive expects exactly one argument") + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + f.Tool = append(f.Tool, &Tool{ + Path: s, + Syntax: line, + }) + + case "ignore": + if len(args) != 1 { + errorf("ignore directive expects exactly one argument") + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + f.Ignore = append(f.Ignore, &Ignore{ + Path: s, + Syntax: line, + }) + } +} + +func parseReplace(filename string, line *Line, verb string, args []string, fix VersionFixer) (*Replace, *Error) { + wrapModPathError := func(modPath string, err error) *Error { + return &Error{ + Filename: filename, + Pos: line.Start, + ModPath: modPath, + Verb: verb, + Err: err, + } + } + wrapError := func(err error) *Error { + return &Error{ + Filename: filename, + Pos: line.Start, + Err: err, + } + } + errorf := func(format string, args ...interface{}) *Error { + return wrapError(fmt.Errorf(format, args...)) + } + + arrow := 2 + if len(args) >= 2 && args[1] == "=>" { + arrow = 1 + } + if len(args) < arrow+2 || len(args) > arrow+3 || args[arrow] != "=>" { + return nil, errorf("usage: %s module/path [v1.2.3] => other/module v1.4\n\t or %s module/path [v1.2.3] => ../local/directory", verb, verb) + } + s, err := parseString(&args[0]) + if err != nil { + return nil, errorf("invalid quoted string: %v", err) + } + pathMajor, err := modulePathMajor(s) + if err != nil { + return nil, wrapModPathError(s, err) + + } + var v string + if arrow == 2 { + v, err = parseVersion(verb, s, &args[1], fix) + if err != nil { + return nil, wrapError(err) + } + if err := module.CheckPathMajor(v, pathMajor); err != nil { + return nil, wrapModPathError(s, err) + } + } + ns, err := parseString(&args[arrow+1]) + if err != nil { + return nil, errorf("invalid quoted string: %v", err) + } + nv := "" + if len(args) == arrow+2 { + if !IsDirectoryPath(ns) { + if strings.Contains(ns, "@") { + return nil, errorf("replacement module must match format 'path version', not 'path@version'") + } + return nil, errorf("replacement module without version must be directory path (rooted or starting with . or ..)") + } + if filepath.Separator == '/' && strings.Contains(ns, `\`) { + return nil, errorf("replacement directory appears to be Windows path (on a non-windows system)") + } + } + if len(args) == arrow+3 { + nv, err = parseVersion(verb, ns, &args[arrow+2], fix) + if err != nil { + return nil, wrapError(err) + } + if IsDirectoryPath(ns) { + return nil, errorf("replacement module directory path %q cannot have version", ns) + } + } + return &Replace{ + Old: module.Version{Path: s, Version: v}, + New: module.Version{Path: ns, Version: nv}, + Syntax: line, + }, nil +} + +// fixRetract applies fix to each retract directive in f, appending any errors +// to errs. +// +// Most versions are fixed as we parse the file, but for retract directives, +// the relevant module path is the one specified with the module directive, +// and that might appear at the end of the file (or not at all). +func (f *File) fixRetract(fix VersionFixer, errs *ErrorList) { + if fix == nil { + return + } + path := "" + if f.Module != nil { + path = f.Module.Mod.Path + } + var r *Retract + wrapError := func(err error) { + *errs = append(*errs, Error{ + Filename: f.Syntax.Name, + Pos: r.Syntax.Start, + Err: err, + }) + } + + for _, r = range f.Retract { + if path == "" { + wrapError(errors.New("no module directive found, so retract cannot be used")) + return // only print the first one of these + } + + args := r.Syntax.Token + if args[0] == "retract" { + args = args[1:] + } + vi, err := parseVersionInterval("retract", path, &args, fix) + if err != nil { + wrapError(err) + } + r.VersionInterval = vi + } +} + +func (f *WorkFile) add(errs *ErrorList, line *Line, verb string, args []string, fix VersionFixer) { + wrapError := func(err error) { + *errs = append(*errs, Error{ + Filename: f.Syntax.Name, + Pos: line.Start, + Err: err, + }) + } + errorf := func(format string, args ...interface{}) { + wrapError(fmt.Errorf(format, args...)) + } + + switch verb { + default: + errorf("unknown directive: %s", verb) + + case "go": + if f.Go != nil { + errorf("repeated go statement") + return + } + if len(args) != 1 { + errorf("go directive expects exactly one argument") + return + } else if !GoVersionRE.MatchString(args[0]) { + errorf("invalid go version '%s': must match format 1.23.0", args[0]) + return + } + + f.Go = &Go{Syntax: line} + f.Go.Version = args[0] + + case "toolchain": + if f.Toolchain != nil { + errorf("repeated toolchain statement") + return + } + if len(args) != 1 { + errorf("toolchain directive expects exactly one argument") + return + } else if !ToolchainRE.MatchString(args[0]) { + errorf("invalid toolchain version '%s': must match format go1.23.0 or default", args[0]) + return + } + + f.Toolchain = &Toolchain{Syntax: line} + f.Toolchain.Name = args[0] + + case "godebug": + if len(args) != 1 || strings.ContainsAny(args[0], "\"`',") { + errorf("usage: godebug key=value") + return + } + key, value, ok := strings.Cut(args[0], "=") + if !ok { + errorf("usage: godebug key=value") + return + } + f.Godebug = append(f.Godebug, &Godebug{ + Key: key, + Value: value, + Syntax: line, + }) + + case "use": + if len(args) != 1 { + errorf("usage: %s local/dir", verb) + return + } + s, err := parseString(&args[0]) + if err != nil { + errorf("invalid quoted string: %v", err) + return + } + f.Use = append(f.Use, &Use{ + Path: s, + Syntax: line, + }) + + case "replace": + replace, wrappederr := parseReplace(f.Syntax.Name, line, verb, args, fix) + if wrappederr != nil { + *errs = append(*errs, *wrappederr) + return + } + f.Replace = append(f.Replace, replace) + } +} + +// IsDirectoryPath reports whether the given path should be interpreted as a directory path. +// Just like on the go command line, relative paths starting with a '.' or '..' path component +// and rooted paths are directory paths; the rest are module paths. +func IsDirectoryPath(ns string) bool { + // Because go.mod files can move from one system to another, + // we check all known path syntaxes, both Unix and Windows. + return ns == "." || strings.HasPrefix(ns, "./") || strings.HasPrefix(ns, `.\`) || + ns == ".." || strings.HasPrefix(ns, "../") || strings.HasPrefix(ns, `..\`) || + strings.HasPrefix(ns, "/") || strings.HasPrefix(ns, `\`) || + len(ns) >= 2 && ('A' <= ns[0] && ns[0] <= 'Z' || 'a' <= ns[0] && ns[0] <= 'z') && ns[1] == ':' +} + +// MustQuote reports whether s must be quoted in order to appear as +// a single token in a go.mod line. +func MustQuote(s string) bool { + for _, r := range s { + switch r { + case ' ', '"', '\'', '`': + return true + + case '(', ')', '[', ']', '{', '}', ',': + if len(s) > 1 { + return true + } + + default: + if !unicode.IsPrint(r) { + return true + } + } + } + return s == "" || strings.Contains(s, "//") || strings.Contains(s, "/*") +} + +// AutoQuote returns s or, if quoting is required for s to appear in a go.mod, +// the quotation of s. +func AutoQuote(s string) string { + if MustQuote(s) { + return strconv.Quote(s) + } + return s +} + +func parseVersionInterval(verb string, path string, args *[]string, fix VersionFixer) (VersionInterval, error) { + toks := *args + if len(toks) == 0 || toks[0] == "(" { + return VersionInterval{}, fmt.Errorf("expected '[' or version") + } + if toks[0] != "[" { + v, err := parseVersion(verb, path, &toks[0], fix) + if err != nil { + return VersionInterval{}, err + } + *args = toks[1:] + return VersionInterval{Low: v, High: v}, nil + } + toks = toks[1:] + + if len(toks) == 0 { + return VersionInterval{}, fmt.Errorf("expected version after '['") + } + low, err := parseVersion(verb, path, &toks[0], fix) + if err != nil { + return VersionInterval{}, err + } + toks = toks[1:] + + if len(toks) == 0 || toks[0] != "," { + return VersionInterval{}, fmt.Errorf("expected ',' after version") + } + toks = toks[1:] + + if len(toks) == 0 { + return VersionInterval{}, fmt.Errorf("expected version after ','") + } + high, err := parseVersion(verb, path, &toks[0], fix) + if err != nil { + return VersionInterval{}, err + } + toks = toks[1:] + + if len(toks) == 0 || toks[0] != "]" { + return VersionInterval{}, fmt.Errorf("expected ']' after version") + } + toks = toks[1:] + + *args = toks + return VersionInterval{Low: low, High: high}, nil +} + +func parseString(s *string) (string, error) { + t := *s + if strings.HasPrefix(t, `"`) { + var err error + if t, err = strconv.Unquote(t); err != nil { + return "", err + } + } else if strings.ContainsAny(t, "\"'`") { + // Other quotes are reserved both for possible future expansion + // and to avoid confusion. For example if someone types 'x' + // we want that to be a syntax error and not a literal x in literal quotation marks. + return "", fmt.Errorf("unquoted string cannot contain quote") + } + *s = AutoQuote(t) + return t, nil +} + +var deprecatedRE = lazyregexp.New(`(?s)(?:^|\n\n)Deprecated: *(.*?)(?:$|\n\n)`) + +// parseDeprecation extracts the text of comments on a "module" directive and +// extracts a deprecation message from that. +// +// A deprecation message is contained in a paragraph within a block of comments +// that starts with "Deprecated:" (case sensitive). The message runs until the +// end of the paragraph and does not include the "Deprecated:" prefix. If the +// comment block has multiple paragraphs that start with "Deprecated:", +// parseDeprecation returns the message from the first. +func parseDeprecation(block *LineBlock, line *Line) string { + text := parseDirectiveComment(block, line) + m := deprecatedRE.FindStringSubmatch(text) + if m == nil { + return "" + } + return m[1] +} + +// parseDirectiveComment extracts the text of comments on a directive. +// If the directive's line does not have comments and is part of a block that +// does have comments, the block's comments are used. +func parseDirectiveComment(block *LineBlock, line *Line) string { + comments := line.Comment() + if block != nil && len(comments.Before) == 0 && len(comments.Suffix) == 0 { + comments = block.Comment() + } + groups := [][]Comment{comments.Before, comments.Suffix} + var lines []string + for _, g := range groups { + for _, c := range g { + if !strings.HasPrefix(c.Token, "//") { + continue // blank line + } + lines = append(lines, strings.TrimSpace(strings.TrimPrefix(c.Token, "//"))) + } + } + return strings.Join(lines, "\n") +} + +type ErrorList []Error + +func (e ErrorList) Error() string { + errStrs := make([]string, len(e)) + for i, err := range e { + errStrs[i] = err.Error() + } + return strings.Join(errStrs, "\n") +} + +type Error struct { + Filename string + Pos Position + Verb string + ModPath string + Err error +} + +func (e *Error) Error() string { + var pos string + if e.Pos.LineRune > 1 { + // Don't print LineRune if it's 1 (beginning of line). + // It's always 1 except in scanner errors, which are rare. + pos = fmt.Sprintf("%s:%d:%d: ", e.Filename, e.Pos.Line, e.Pos.LineRune) + } else if e.Pos.Line > 0 { + pos = fmt.Sprintf("%s:%d: ", e.Filename, e.Pos.Line) + } else if e.Filename != "" { + pos = fmt.Sprintf("%s: ", e.Filename) + } + + var directive string + if e.ModPath != "" { + directive = fmt.Sprintf("%s %s: ", e.Verb, e.ModPath) + } else if e.Verb != "" { + directive = fmt.Sprintf("%s: ", e.Verb) + } + + return pos + directive + e.Err.Error() +} + +func (e *Error) Unwrap() error { return e.Err } + +func parseVersion(verb string, path string, s *string, fix VersionFixer) (string, error) { + t, err := parseString(s) + if err != nil { + return "", &Error{ + Verb: verb, + ModPath: path, + Err: &module.InvalidVersionError{ + Version: *s, + Err: err, + }, + } + } + if fix != nil { + fixed, err := fix(path, t) + if err != nil { + if err, ok := err.(*module.ModuleError); ok { + return "", &Error{ + Verb: verb, + ModPath: path, + Err: err.Err, + } + } + return "", err + } + t = fixed + } else { + cv := module.CanonicalVersion(t) + if cv == "" { + return "", &Error{ + Verb: verb, + ModPath: path, + Err: &module.InvalidVersionError{ + Version: t, + Err: errors.New("must be of the form v1.2.3"), + }, + } + } + t = cv + } + *s = t + return *s, nil +} + +func modulePathMajor(path string) (string, error) { + _, major, ok := module.SplitPathVersion(path) + if !ok { + return "", fmt.Errorf("invalid module path") + } + return major, nil +} + +func (f *File) Format() ([]byte, error) { + return Format(f.Syntax), nil +} + +// Cleanup cleans up the file f after any edit operations. +// To avoid quadratic behavior, modifications like [File.DropRequire] +// clear the entry but do not remove it from the slice. +// Cleanup cleans out all the cleared entries. +func (f *File) Cleanup() { + w := 0 + for _, g := range f.Godebug { + if g.Key != "" { + f.Godebug[w] = g + w++ + } + } + f.Godebug = f.Godebug[:w] + + w = 0 + for _, r := range f.Require { + if r.Mod.Path != "" { + f.Require[w] = r + w++ + } + } + f.Require = f.Require[:w] + + w = 0 + for _, x := range f.Exclude { + if x.Mod.Path != "" { + f.Exclude[w] = x + w++ + } + } + f.Exclude = f.Exclude[:w] + + w = 0 + for _, r := range f.Replace { + if r.Old.Path != "" { + f.Replace[w] = r + w++ + } + } + f.Replace = f.Replace[:w] + + w = 0 + for _, r := range f.Retract { + if r.Low != "" || r.High != "" { + f.Retract[w] = r + w++ + } + } + f.Retract = f.Retract[:w] + + f.Syntax.Cleanup() +} + +func (f *File) AddGoStmt(version string) error { + if !GoVersionRE.MatchString(version) { + return fmt.Errorf("invalid language version %q", version) + } + if f.Go == nil { + var hint Expr + if f.Module != nil && f.Module.Syntax != nil { + hint = f.Module.Syntax + } else if f.Syntax == nil { + f.Syntax = new(FileSyntax) + } + f.Go = &Go{ + Version: version, + Syntax: f.Syntax.addLine(hint, "go", version), + } + } else { + f.Go.Version = version + f.Syntax.updateLine(f.Go.Syntax, "go", version) + } + return nil +} + +// DropGoStmt deletes the go statement from the file. +func (f *File) DropGoStmt() { + if f.Go != nil { + f.Go.Syntax.markRemoved() + f.Go = nil + } +} + +// DropToolchainStmt deletes the toolchain statement from the file. +func (f *File) DropToolchainStmt() { + if f.Toolchain != nil { + f.Toolchain.Syntax.markRemoved() + f.Toolchain = nil + } +} + +func (f *File) AddToolchainStmt(name string) error { + if !ToolchainRE.MatchString(name) { + return fmt.Errorf("invalid toolchain name %q", name) + } + if f.Toolchain == nil { + var hint Expr + if f.Go != nil && f.Go.Syntax != nil { + hint = f.Go.Syntax + } else if f.Module != nil && f.Module.Syntax != nil { + hint = f.Module.Syntax + } + f.Toolchain = &Toolchain{ + Name: name, + Syntax: f.Syntax.addLine(hint, "toolchain", name), + } + } else { + f.Toolchain.Name = name + f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) + } + return nil +} + +// AddGodebug sets the first godebug line for key to value, +// preserving any existing comments for that line and removing all +// other godebug lines for key. +// +// If no line currently exists for key, AddGodebug adds a new line +// at the end of the last godebug block. +func (f *File) AddGodebug(key, value string) error { + need := true + for _, g := range f.Godebug { + if g.Key == key { + if need { + g.Value = value + f.Syntax.updateLine(g.Syntax, "godebug", key+"="+value) + need = false + } else { + g.Syntax.markRemoved() + *g = Godebug{} + } + } + } + + if need { + f.addNewGodebug(key, value) + } + return nil +} + +// addNewGodebug adds a new godebug key=value line at the end +// of the last godebug block, regardless of any existing godebug lines for key. +func (f *File) addNewGodebug(key, value string) { + line := f.Syntax.addLine(nil, "godebug", key+"="+value) + g := &Godebug{ + Key: key, + Value: value, + Syntax: line, + } + f.Godebug = append(f.Godebug, g) +} + +// AddRequire sets the first require line for path to version vers, +// preserving any existing comments for that line and removing all +// other lines for path. +// +// If no line currently exists for path, AddRequire adds a new line +// at the end of the last require block. +func (f *File) AddRequire(path, vers string) error { + need := true + for _, r := range f.Require { + if r.Mod.Path == path { + if need { + r.Mod.Version = vers + f.Syntax.updateLine(r.Syntax, "require", AutoQuote(path), vers) + need = false + } else { + r.Syntax.markRemoved() + *r = Require{} + } + } + } + + if need { + f.AddNewRequire(path, vers, false) + } + return nil +} + +// AddNewRequire adds a new require line for path at version vers at the end of +// the last require block, regardless of any existing require lines for path. +func (f *File) AddNewRequire(path, vers string, indirect bool) { + line := f.Syntax.addLine(nil, "require", AutoQuote(path), vers) + r := &Require{ + Mod: module.Version{Path: path, Version: vers}, + Syntax: line, + } + r.setIndirect(indirect) + f.Require = append(f.Require, r) +} + +// SetRequire updates the requirements of f to contain exactly req, preserving +// the existing block structure and line comment contents (except for 'indirect' +// markings) for the first requirement on each named module path. +// +// The Syntax field is ignored for the requirements in req. +// +// Any requirements not already present in the file are added to the block +// containing the last require line. +// +// The requirements in req must specify at most one distinct version for each +// module path. +// +// If any existing requirements may be removed, the caller should call +// [File.Cleanup] after all edits are complete. +func (f *File) SetRequire(req []*Require) { + type elem struct { + version string + indirect bool + } + need := make(map[string]elem) + for _, r := range req { + if prev, dup := need[r.Mod.Path]; dup && prev.version != r.Mod.Version { + panic(fmt.Errorf("SetRequire called with conflicting versions for path %s (%s and %s)", r.Mod.Path, prev.version, r.Mod.Version)) + } + need[r.Mod.Path] = elem{r.Mod.Version, r.Indirect} + } + + // Update or delete the existing Require entries to preserve + // only the first for each module path in req. + for _, r := range f.Require { + e, ok := need[r.Mod.Path] + if ok { + r.setVersion(e.version) + r.setIndirect(e.indirect) + } else { + r.markRemoved() + } + delete(need, r.Mod.Path) + } + + // Add new entries in the last block of the file for any paths that weren't + // already present. + // + // This step is nondeterministic, but the final result will be deterministic + // because we will sort the block. + for path, e := range need { + f.AddNewRequire(path, e.version, e.indirect) + } + + f.SortBlocks() +} + +// SetRequireSeparateIndirect updates the requirements of f to contain the given +// requirements. Comment contents (except for 'indirect' markings) are retained +// from the first existing requirement for each module path. Like SetRequire, +// SetRequireSeparateIndirect adds requirements for new paths in req, +// updates the version and "// indirect" comment on existing requirements, +// and deletes requirements on paths not in req. Existing duplicate requirements +// are deleted. +// +// As its name suggests, SetRequireSeparateIndirect puts direct and indirect +// requirements into two separate blocks, one containing only direct +// requirements, and the other containing only indirect requirements. +// SetRequireSeparateIndirect may move requirements between these two blocks +// when their indirect markings change. However, SetRequireSeparateIndirect +// won't move requirements from other blocks, especially blocks with comments. +// +// If the file initially has one uncommented block of requirements, +// SetRequireSeparateIndirect will split it into a direct-only and indirect-only +// block. This aids in the transition to separate blocks. +func (f *File) SetRequireSeparateIndirect(req []*Require) { + // hasComments returns whether a line or block has comments + // other than "indirect". + hasComments := func(c Comments) bool { + return len(c.Before) > 0 || len(c.After) > 0 || len(c.Suffix) > 1 || + (len(c.Suffix) == 1 && + strings.TrimSpace(strings.TrimPrefix(c.Suffix[0].Token, string(slashSlash))) != "indirect") + } + + // moveReq adds r to block. If r was in another block, moveReq deletes + // it from that block and transfers its comments. + moveReq := func(r *Require, block *LineBlock) { + var line *Line + if r.Syntax == nil { + line = &Line{Token: []string{AutoQuote(r.Mod.Path), r.Mod.Version}} + r.Syntax = line + if r.Indirect { + r.setIndirect(true) + } + } else { + line = new(Line) + *line = *r.Syntax + if !line.InBlock && len(line.Token) > 0 && line.Token[0] == "require" { + line.Token = line.Token[1:] + } + r.Syntax.Token = nil // Cleanup will delete the old line. + r.Syntax = line + } + line.InBlock = true + block.Line = append(block.Line, line) + } + + // Examine existing require lines and blocks. + var ( + // We may insert new requirements into the last uncommented + // direct-only and indirect-only blocks. We may also move requirements + // to the opposite block if their indirect markings change. + lastDirectIndex = -1 + lastIndirectIndex = -1 + + // If there are no direct-only or indirect-only blocks, a new block may + // be inserted after the last require line or block. + lastRequireIndex = -1 + + // If there's only one require line or block, and it's uncommented, + // we'll move its requirements to the direct-only or indirect-only blocks. + requireLineOrBlockCount = 0 + + // Track the block each requirement belongs to (if any) so we can + // move them later. + lineToBlock = make(map[*Line]*LineBlock) + ) + for i, stmt := range f.Syntax.Stmt { + switch stmt := stmt.(type) { + case *Line: + if len(stmt.Token) == 0 || stmt.Token[0] != "require" { + continue + } + lastRequireIndex = i + requireLineOrBlockCount++ + if !hasComments(stmt.Comments) { + if isIndirect(stmt) { + lastIndirectIndex = i + } else { + lastDirectIndex = i + } + } + + case *LineBlock: + if len(stmt.Token) == 0 || stmt.Token[0] != "require" { + continue + } + lastRequireIndex = i + requireLineOrBlockCount++ + allDirect := len(stmt.Line) > 0 && !hasComments(stmt.Comments) + allIndirect := len(stmt.Line) > 0 && !hasComments(stmt.Comments) + for _, line := range stmt.Line { + lineToBlock[line] = stmt + if hasComments(line.Comments) { + allDirect = false + allIndirect = false + } else if isIndirect(line) { + allDirect = false + } else { + allIndirect = false + } + } + if allDirect { + lastDirectIndex = i + } + if allIndirect { + lastIndirectIndex = i + } + } + } + + oneFlatUncommentedBlock := requireLineOrBlockCount == 1 && + !hasComments(*f.Syntax.Stmt[lastRequireIndex].Comment()) + + // Create direct and indirect blocks if needed. Convert lines into blocks + // if needed. If we end up with an empty block or a one-line block, + // Cleanup will delete it or convert it to a line later. + insertBlock := func(i int) *LineBlock { + block := &LineBlock{Token: []string{"require"}} + f.Syntax.Stmt = append(f.Syntax.Stmt, nil) + copy(f.Syntax.Stmt[i+1:], f.Syntax.Stmt[i:]) + f.Syntax.Stmt[i] = block + return block + } + + ensureBlock := func(i int) *LineBlock { + switch stmt := f.Syntax.Stmt[i].(type) { + case *LineBlock: + return stmt + case *Line: + block := &LineBlock{ + Token: []string{"require"}, + Line: []*Line{stmt}, + } + stmt.Token = stmt.Token[1:] // remove "require" + stmt.InBlock = true + f.Syntax.Stmt[i] = block + return block + default: + panic(fmt.Sprintf("unexpected statement: %v", stmt)) + } + } + + var lastDirectBlock *LineBlock + if lastDirectIndex < 0 { + if lastIndirectIndex >= 0 { + lastDirectIndex = lastIndirectIndex + lastIndirectIndex++ + } else if lastRequireIndex >= 0 { + lastDirectIndex = lastRequireIndex + 1 + } else { + lastDirectIndex = len(f.Syntax.Stmt) + } + lastDirectBlock = insertBlock(lastDirectIndex) + } else { + lastDirectBlock = ensureBlock(lastDirectIndex) + } + + var lastIndirectBlock *LineBlock + if lastIndirectIndex < 0 { + lastIndirectIndex = lastDirectIndex + 1 + lastIndirectBlock = insertBlock(lastIndirectIndex) + } else { + lastIndirectBlock = ensureBlock(lastIndirectIndex) + } + + // Delete requirements we don't want anymore. + // Update versions and indirect comments on requirements we want to keep. + // If a requirement is in last{Direct,Indirect}Block with the wrong + // indirect marking after this, or if the requirement is in an single + // uncommented mixed block (oneFlatUncommentedBlock), move it to the + // correct block. + // + // Some blocks may be empty after this. Cleanup will remove them. + need := make(map[string]*Require) + for _, r := range req { + need[r.Mod.Path] = r + } + have := make(map[string]*Require) + for _, r := range f.Require { + path := r.Mod.Path + if need[path] == nil || have[path] != nil { + // Requirement not needed, or duplicate requirement. Delete. + r.markRemoved() + continue + } + have[r.Mod.Path] = r + r.setVersion(need[path].Mod.Version) + r.setIndirect(need[path].Indirect) + if need[path].Indirect && + (oneFlatUncommentedBlock || lineToBlock[r.Syntax] == lastDirectBlock) { + moveReq(r, lastIndirectBlock) + } else if !need[path].Indirect && + (oneFlatUncommentedBlock || lineToBlock[r.Syntax] == lastIndirectBlock) { + moveReq(r, lastDirectBlock) + } + } + + // Add new requirements. + for path, r := range need { + if have[path] == nil { + if r.Indirect { + moveReq(r, lastIndirectBlock) + } else { + moveReq(r, lastDirectBlock) + } + f.Require = append(f.Require, r) + } + } + + f.SortBlocks() +} + +func (f *File) DropGodebug(key string) error { + for _, g := range f.Godebug { + if g.Key == key { + g.Syntax.markRemoved() + *g = Godebug{} + } + } + return nil +} + +func (f *File) DropRequire(path string) error { + for _, r := range f.Require { + if r.Mod.Path == path { + r.Syntax.markRemoved() + *r = Require{} + } + } + return nil +} + +// AddExclude adds a exclude statement to the mod file. Errors if the provided +// version is not a canonical version string +func (f *File) AddExclude(path, vers string) error { + if err := checkCanonicalVersion(path, vers); err != nil { + return err + } + + var hint *Line + for _, x := range f.Exclude { + if x.Mod.Path == path && x.Mod.Version == vers { + return nil + } + if x.Mod.Path == path { + hint = x.Syntax + } + } + + f.Exclude = append(f.Exclude, &Exclude{Mod: module.Version{Path: path, Version: vers}, Syntax: f.Syntax.addLine(hint, "exclude", AutoQuote(path), vers)}) + return nil +} + +func (f *File) DropExclude(path, vers string) error { + for _, x := range f.Exclude { + if x.Mod.Path == path && x.Mod.Version == vers { + x.Syntax.markRemoved() + *x = Exclude{} + } + } + return nil +} + +func (f *File) AddReplace(oldPath, oldVers, newPath, newVers string) error { + return addReplace(f.Syntax, &f.Replace, oldPath, oldVers, newPath, newVers) +} + +func addReplace(syntax *FileSyntax, replace *[]*Replace, oldPath, oldVers, newPath, newVers string) error { + need := true + old := module.Version{Path: oldPath, Version: oldVers} + new := module.Version{Path: newPath, Version: newVers} + tokens := []string{"replace", AutoQuote(oldPath)} + if oldVers != "" { + tokens = append(tokens, oldVers) + } + tokens = append(tokens, "=>", AutoQuote(newPath)) + if newVers != "" { + tokens = append(tokens, newVers) + } + + var hint *Line + for _, r := range *replace { + if r.Old.Path == oldPath && (oldVers == "" || r.Old.Version == oldVers) { + if need { + // Found replacement for old; update to use new. + r.New = new + syntax.updateLine(r.Syntax, tokens...) + need = false + continue + } + // Already added; delete other replacements for same. + r.Syntax.markRemoved() + *r = Replace{} + } + if r.Old.Path == oldPath { + hint = r.Syntax + } + } + if need { + *replace = append(*replace, &Replace{Old: old, New: new, Syntax: syntax.addLine(hint, tokens...)}) + } + return nil +} + +func (f *File) DropReplace(oldPath, oldVers string) error { + for _, r := range f.Replace { + if r.Old.Path == oldPath && r.Old.Version == oldVers { + r.Syntax.markRemoved() + *r = Replace{} + } + } + return nil +} + +// AddRetract adds a retract statement to the mod file. Errors if the provided +// version interval does not consist of canonical version strings +func (f *File) AddRetract(vi VersionInterval, rationale string) error { + var path string + if f.Module != nil { + path = f.Module.Mod.Path + } + if err := checkCanonicalVersion(path, vi.High); err != nil { + return err + } + if err := checkCanonicalVersion(path, vi.Low); err != nil { + return err + } + + r := &Retract{ + VersionInterval: vi, + } + if vi.Low == vi.High { + r.Syntax = f.Syntax.addLine(nil, "retract", AutoQuote(vi.Low)) + } else { + r.Syntax = f.Syntax.addLine(nil, "retract", "[", AutoQuote(vi.Low), ",", AutoQuote(vi.High), "]") + } + if rationale != "" { + for _, line := range strings.Split(rationale, "\n") { + com := Comment{Token: "// " + line} + r.Syntax.Comment().Before = append(r.Syntax.Comment().Before, com) + } + } + return nil +} + +func (f *File) DropRetract(vi VersionInterval) error { + for _, r := range f.Retract { + if r.VersionInterval == vi { + r.Syntax.markRemoved() + *r = Retract{} + } + } + return nil +} + +// AddTool adds a new tool directive with the given path. +// It does nothing if the tool line already exists. +func (f *File) AddTool(path string) error { + for _, t := range f.Tool { + if t.Path == path { + return nil + } + } + + f.Tool = append(f.Tool, &Tool{ + Path: path, + Syntax: f.Syntax.addLine(nil, "tool", path), + }) + + f.SortBlocks() + return nil +} + +// RemoveTool removes a tool directive with the given path. +// It does nothing if no such tool directive exists. +func (f *File) DropTool(path string) error { + for _, t := range f.Tool { + if t.Path == path { + t.Syntax.markRemoved() + *t = Tool{} + } + } + return nil +} + +// AddIgnore adds a new ignore directive with the given path. +// It does nothing if the ignore line already exists. +func (f *File) AddIgnore(path string) error { + for _, t := range f.Ignore { + if t.Path == path { + return nil + } + } + + f.Ignore = append(f.Ignore, &Ignore{ + Path: path, + Syntax: f.Syntax.addLine(nil, "ignore", path), + }) + + f.SortBlocks() + return nil +} + +// DropIgnore removes a ignore directive with the given path. +// It does nothing if no such ignore directive exists. +func (f *File) DropIgnore(path string) error { + for _, t := range f.Ignore { + if t.Path == path { + t.Syntax.markRemoved() + *t = Ignore{} + } + } + return nil +} + +func (f *File) SortBlocks() { + f.removeDups() // otherwise sorting is unsafe + + // semanticSortForExcludeVersionV is the Go version (plus leading "v") at which + // lines in exclude blocks start to use semantic sort instead of lexicographic sort. + // See go.dev/issue/60028. + const semanticSortForExcludeVersionV = "v1.21" + useSemanticSortForExclude := f.Go != nil && semver.Compare("v"+f.Go.Version, semanticSortForExcludeVersionV) >= 0 + + for _, stmt := range f.Syntax.Stmt { + block, ok := stmt.(*LineBlock) + if !ok { + continue + } + less := compareLine + if block.Token[0] == "exclude" && useSemanticSortForExclude { + less = compareLineExclude + } else if block.Token[0] == "retract" { + less = compareLineRetract + } + slices.SortStableFunc(block.Line, less) + } +} + +// removeDups removes duplicate exclude, replace and tool directives. +// +// Earlier exclude and tool directives take priority. +// +// Later replace directives take priority. +// +// require directives are not de-duplicated. That's left up to higher-level +// logic (MVS). +// +// retract directives are not de-duplicated since comments are +// meaningful, and versions may be retracted multiple times. +func (f *File) removeDups() { + removeDups(f.Syntax, &f.Exclude, &f.Replace, &f.Tool, &f.Ignore) +} + +func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, tool *[]*Tool, ignore *[]*Ignore) { + kill := make(map[*Line]bool) + + // Remove duplicate excludes. + if exclude != nil { + haveExclude := make(map[module.Version]bool) + for _, x := range *exclude { + if haveExclude[x.Mod] { + kill[x.Syntax] = true + continue + } + haveExclude[x.Mod] = true + } + var excl []*Exclude + for _, x := range *exclude { + if !kill[x.Syntax] { + excl = append(excl, x) + } + } + *exclude = excl + } + + // Remove duplicate replacements. + // Later replacements take priority over earlier ones. + haveReplace := make(map[module.Version]bool) + for i := len(*replace) - 1; i >= 0; i-- { + x := (*replace)[i] + if haveReplace[x.Old] { + kill[x.Syntax] = true + continue + } + haveReplace[x.Old] = true + } + var repl []*Replace + for _, x := range *replace { + if !kill[x.Syntax] { + repl = append(repl, x) + } + } + *replace = repl + + if tool != nil { + haveTool := make(map[string]bool) + for _, t := range *tool { + if haveTool[t.Path] { + kill[t.Syntax] = true + continue + } + haveTool[t.Path] = true + } + var newTool []*Tool + for _, t := range *tool { + if !kill[t.Syntax] { + newTool = append(newTool, t) + } + } + *tool = newTool + } + + if ignore != nil { + haveIgnore := make(map[string]bool) + for _, i := range *ignore { + if haveIgnore[i.Path] { + kill[i.Syntax] = true + continue + } + haveIgnore[i.Path] = true + } + var newIgnore []*Ignore + for _, i := range *ignore { + if !kill[i.Syntax] { + newIgnore = append(newIgnore, i) + } + } + *ignore = newIgnore + } + + // Duplicate require and retract directives are not removed. + + // Drop killed statements from the syntax tree. + var stmts []Expr + for _, stmt := range syntax.Stmt { + switch stmt := stmt.(type) { + case *Line: + if kill[stmt] { + continue + } + case *LineBlock: + var lines []*Line + for _, line := range stmt.Line { + if !kill[line] { + lines = append(lines, line) + } + } + stmt.Line = lines + if len(lines) == 0 { + continue + } + } + stmts = append(stmts, stmt) + } + syntax.Stmt = stmts +} + +// compareLine compares li and lj. It sorts lexicographically without assigning +// any special meaning to tokens. +func compareLine(li, lj *Line) int { + for k := 0; k < len(li.Token) && k < len(lj.Token); k++ { + if li.Token[k] != lj.Token[k] { + return cmp.Compare(li.Token[k], lj.Token[k]) + } + } + return cmp.Compare(len(li.Token), len(lj.Token)) +} + +// compareLineExclude compares li and lj for lines in an "exclude" block. +func compareLineExclude(li, lj *Line) int { + if len(li.Token) != 2 || len(lj.Token) != 2 { + // Not a known exclude specification. + // Fall back to sorting lexicographically. + return compareLine(li, lj) + } + // An exclude specification has two tokens: ModulePath and Version. + // Compare module path by string order and version by semver rules. + if pi, pj := li.Token[0], lj.Token[0]; pi != pj { + return cmp.Compare(pi, pj) + } + return semver.Compare(li.Token[1], lj.Token[1]) +} + +// compareLineRetract compares li and lj for lines in a "retract" block. +// It treats each line as a version interval. Single versions are compared as +// if they were intervals with the same low and high version. +// Intervals are sorted in descending order, first by low version, then by +// high version, using [semver.Compare]. +func compareLineRetract(li, lj *Line) int { + interval := func(l *Line) VersionInterval { + if len(l.Token) == 1 { + return VersionInterval{Low: l.Token[0], High: l.Token[0]} + } else if len(l.Token) == 5 && l.Token[0] == "[" && l.Token[2] == "," && l.Token[4] == "]" { + return VersionInterval{Low: l.Token[1], High: l.Token[3]} + } else { + // Line in unknown format. Treat as an invalid version. + return VersionInterval{} + } + } + vii := interval(li) + vij := interval(lj) + if cmp := semver.Compare(vii.Low, vij.Low); cmp != 0 { + return -cmp + } + return -semver.Compare(vii.High, vij.High) +} + +// checkCanonicalVersion returns a non-nil error if vers is not a canonical +// version string or does not match the major version of path. +// +// If path is non-empty, the error text suggests a format with a major version +// corresponding to the path. +func checkCanonicalVersion(path, vers string) error { + _, pathMajor, pathMajorOk := module.SplitPathVersion(path) + + if vers == "" || vers != module.CanonicalVersion(vers) { + if pathMajor == "" { + return &module.InvalidVersionError{ + Version: vers, + Err: fmt.Errorf("must be of the form v1.2.3"), + } + } + return &module.InvalidVersionError{ + Version: vers, + Err: fmt.Errorf("must be of the form %s.2.3", module.PathMajorPrefix(pathMajor)), + } + } + + if pathMajorOk { + if err := module.CheckPathMajor(vers, pathMajor); err != nil { + if pathMajor == "" { + // In this context, the user probably wrote "v2.3.4" when they meant + // "v2.3.4+incompatible". Suggest that instead of "v0 or v1". + return &module.InvalidVersionError{ + Version: vers, + Err: fmt.Errorf("should be %s+incompatible (or module %s/%v)", vers, path, semver.Major(vers)), + } + } + return err + } + } + + return nil +} diff --git a/vendor/golang.org/x/mod/modfile/work.go b/vendor/golang.org/x/mod/modfile/work.go new file mode 100644 index 0000000..09df5ea --- /dev/null +++ b/vendor/golang.org/x/mod/modfile/work.go @@ -0,0 +1,333 @@ +// 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. + +package modfile + +import ( + "fmt" + "slices" + "strings" +) + +// A WorkFile is the parsed, interpreted form of a go.work file. +type WorkFile struct { + Go *Go + Toolchain *Toolchain + Godebug []*Godebug + Use []*Use + Replace []*Replace + + Syntax *FileSyntax +} + +// A Use is a single directory statement. +type Use struct { + Path string // Use path of module. + ModulePath string // Module path in the comment. + Syntax *Line +} + +// ParseWork parses and returns a go.work file. +// +// file is the name of the file, used in positions and errors. +// +// data is the content of the file. +// +// fix is an optional function that canonicalizes module versions. +// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] +// must return the same string). +func ParseWork(file string, data []byte, fix VersionFixer) (*WorkFile, error) { + fs, err := parse(file, data) + if err != nil { + return nil, err + } + f := &WorkFile{ + Syntax: fs, + } + var errs ErrorList + + for _, x := range fs.Stmt { + switch x := x.(type) { + case *Line: + f.add(&errs, x, x.Token[0], x.Token[1:], fix) + + case *LineBlock: + if len(x.Token) > 1 { + errs = append(errs, Error{ + Filename: file, + Pos: x.Start, + Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), + }) + continue + } + switch x.Token[0] { + default: + errs = append(errs, Error{ + Filename: file, + Pos: x.Start, + Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), + }) + continue + case "godebug", "use", "replace": + for _, l := range x.Line { + f.add(&errs, l, x.Token[0], l.Token, fix) + } + } + } + } + + if len(errs) > 0 { + return nil, errs + } + return f, nil +} + +// Cleanup cleans up the file f after any edit operations. +// To avoid quadratic behavior, modifications like [WorkFile.DropRequire] +// clear the entry but do not remove it from the slice. +// Cleanup cleans out all the cleared entries. +func (f *WorkFile) Cleanup() { + w := 0 + for _, r := range f.Use { + if r.Path != "" { + f.Use[w] = r + w++ + } + } + f.Use = f.Use[:w] + + w = 0 + for _, r := range f.Replace { + if r.Old.Path != "" { + f.Replace[w] = r + w++ + } + } + f.Replace = f.Replace[:w] + + f.Syntax.Cleanup() +} + +func (f *WorkFile) AddGoStmt(version string) error { + if !GoVersionRE.MatchString(version) { + return fmt.Errorf("invalid language version %q", version) + } + if f.Go == nil { + stmt := &Line{Token: []string{"go", version}} + f.Go = &Go{ + Version: version, + Syntax: stmt, + } + // Find the first non-comment-only block and add + // the go statement before it. That will keep file comments at the top. + i := 0 + for i = 0; i < len(f.Syntax.Stmt); i++ { + if _, ok := f.Syntax.Stmt[i].(*CommentBlock); !ok { + break + } + } + f.Syntax.Stmt = append(append(f.Syntax.Stmt[:i:i], stmt), f.Syntax.Stmt[i:]...) + } else { + f.Go.Version = version + f.Syntax.updateLine(f.Go.Syntax, "go", version) + } + return nil +} + +func (f *WorkFile) AddToolchainStmt(name string) error { + if !ToolchainRE.MatchString(name) { + return fmt.Errorf("invalid toolchain name %q", name) + } + if f.Toolchain == nil { + stmt := &Line{Token: []string{"toolchain", name}} + f.Toolchain = &Toolchain{ + Name: name, + Syntax: stmt, + } + // Find the go line and add the toolchain line after it. + // Or else find the first non-comment-only block and add + // the toolchain line before it. That will keep file comments at the top. + i := 0 + for i = 0; i < len(f.Syntax.Stmt); i++ { + if line, ok := f.Syntax.Stmt[i].(*Line); ok && len(line.Token) > 0 && line.Token[0] == "go" { + i++ + goto Found + } + } + for i = 0; i < len(f.Syntax.Stmt); i++ { + if _, ok := f.Syntax.Stmt[i].(*CommentBlock); !ok { + break + } + } + Found: + f.Syntax.Stmt = append(append(f.Syntax.Stmt[:i:i], stmt), f.Syntax.Stmt[i:]...) + } else { + f.Toolchain.Name = name + f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) + } + return nil +} + +// DropGoStmt deletes the go statement from the file. +func (f *WorkFile) DropGoStmt() { + if f.Go != nil { + f.Go.Syntax.markRemoved() + f.Go = nil + } +} + +// DropToolchainStmt deletes the toolchain statement from the file. +func (f *WorkFile) DropToolchainStmt() { + if f.Toolchain != nil { + f.Toolchain.Syntax.markRemoved() + f.Toolchain = nil + } +} + +// AddGodebug sets the first godebug line for key to value, +// preserving any existing comments for that line and removing all +// other godebug lines for key. +// +// If no line currently exists for key, AddGodebug adds a new line +// at the end of the last godebug block. +func (f *WorkFile) AddGodebug(key, value string) error { + need := true + for _, g := range f.Godebug { + if g.Key == key { + if need { + g.Value = value + f.Syntax.updateLine(g.Syntax, "godebug", key+"="+value) + need = false + } else { + g.Syntax.markRemoved() + *g = Godebug{} + } + } + } + + if need { + f.addNewGodebug(key, value) + } + return nil +} + +// addNewGodebug adds a new godebug key=value line at the end +// of the last godebug block, regardless of any existing godebug lines for key. +func (f *WorkFile) addNewGodebug(key, value string) { + line := f.Syntax.addLine(nil, "godebug", key+"="+value) + g := &Godebug{ + Key: key, + Value: value, + Syntax: line, + } + f.Godebug = append(f.Godebug, g) +} + +func (f *WorkFile) DropGodebug(key string) error { + for _, g := range f.Godebug { + if g.Key == key { + g.Syntax.markRemoved() + *g = Godebug{} + } + } + return nil +} + +func (f *WorkFile) AddUse(diskPath, modulePath string) error { + need := true + for _, d := range f.Use { + if d.Path == diskPath { + if need { + d.ModulePath = modulePath + f.Syntax.updateLine(d.Syntax, "use", AutoQuote(diskPath)) + need = false + } else { + d.Syntax.markRemoved() + *d = Use{} + } + } + } + + if need { + f.AddNewUse(diskPath, modulePath) + } + return nil +} + +func (f *WorkFile) AddNewUse(diskPath, modulePath string) { + line := f.Syntax.addLine(nil, "use", AutoQuote(diskPath)) + f.Use = append(f.Use, &Use{Path: diskPath, ModulePath: modulePath, Syntax: line}) +} + +func (f *WorkFile) SetUse(dirs []*Use) { + need := make(map[string]string) + for _, d := range dirs { + need[d.Path] = d.ModulePath + } + + for _, d := range f.Use { + if modulePath, ok := need[d.Path]; ok { + d.ModulePath = modulePath + } else { + d.Syntax.markRemoved() + *d = Use{} + } + } + + // TODO(#45713): Add module path to comment. + + for diskPath, modulePath := range need { + f.AddNewUse(diskPath, modulePath) + } + f.SortBlocks() +} + +func (f *WorkFile) DropUse(path string) error { + for _, d := range f.Use { + if d.Path == path { + d.Syntax.markRemoved() + *d = Use{} + } + } + return nil +} + +func (f *WorkFile) AddReplace(oldPath, oldVers, newPath, newVers string) error { + return addReplace(f.Syntax, &f.Replace, oldPath, oldVers, newPath, newVers) +} + +func (f *WorkFile) DropReplace(oldPath, oldVers string) error { + for _, r := range f.Replace { + if r.Old.Path == oldPath && r.Old.Version == oldVers { + r.Syntax.markRemoved() + *r = Replace{} + } + } + return nil +} + +func (f *WorkFile) SortBlocks() { + f.removeDups() // otherwise sorting is unsafe + + for _, stmt := range f.Syntax.Stmt { + block, ok := stmt.(*LineBlock) + if !ok { + continue + } + slices.SortStableFunc(block.Line, compareLine) + } +} + +// removeDups removes duplicate replace directives. +// +// Later replace directives take priority. +// +// require directives are not de-duplicated. That's left up to higher-level +// logic (MVS). +// +// retract directives are not de-duplicated since comments are +// meaningful, and versions may be retracted multiple times. +func (f *WorkFile) removeDups() { + removeDups(f.Syntax, nil, &f.Replace, nil, nil) +} diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go new file mode 100644 index 0000000..16e1aa7 --- /dev/null +++ b/vendor/golang.org/x/mod/module/module.go @@ -0,0 +1,840 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package module defines the module.Version type along with support code. +// +// The [module.Version] type is a simple Path, Version pair: +// +// type Version struct { +// Path string +// Version string +// } +// +// There are no restrictions imposed directly by use of this structure, +// but additional checking functions, most notably [Check], verify that +// a particular path, version pair is valid. +// +// # Escaped Paths +// +// Module paths appear as substrings of file system paths +// (in the download cache) and of web server URLs in the proxy protocol. +// In general we cannot rely on file systems to be case-sensitive, +// nor can we rely on web servers, since they read from file systems. +// That is, we cannot rely on the file system to keep rsc.io/QUOTE +// and rsc.io/quote separate. Windows and macOS don't. +// Instead, we must never require two different casings of a file path. +// Because we want the download cache to match the proxy protocol, +// and because we want the proxy protocol to be possible to serve +// from a tree of static files (which might be stored on a case-insensitive +// file system), the proxy protocol must never require two different casings +// of a URL path either. +// +// One possibility would be to make the escaped form be the lowercase +// hexadecimal encoding of the actual path bytes. This would avoid ever +// needing different casings of a file path, but it would be fairly illegible +// to most programmers when those paths appeared in the file system +// (including in file paths in compiler errors and stack traces) +// in web server logs, and so on. Instead, we want a safe escaped form that +// leaves most paths unaltered. +// +// The safe escaped form is to replace every uppercase letter +// with an exclamation mark followed by the letter's lowercase equivalent. +// +// For example, +// +// github.com/Azure/azure-sdk-for-go -> github.com/!azure/azure-sdk-for-go. +// github.com/GoogleCloudPlatform/cloudsql-proxy -> github.com/!google!cloud!platform/cloudsql-proxy +// github.com/Sirupsen/logrus -> github.com/!sirupsen/logrus. +// +// Import paths that avoid upper-case letters are left unchanged. +// Note that because import paths are ASCII-only and avoid various +// problematic punctuation (like : < and >), the escaped form is also ASCII-only +// and avoids the same problematic punctuation. +// +// Import paths have never allowed exclamation marks, so there is no +// need to define how to escape a literal !. +// +// # Unicode Restrictions +// +// Today, paths are disallowed from using Unicode. +// +// Although paths are currently disallowed from using Unicode, +// we would like at some point to allow Unicode letters as well, to assume that +// file systems and URLs are Unicode-safe (storing UTF-8), and apply +// the !-for-uppercase convention for escaping them in the file system. +// But there are at least two subtle considerations. +// +// First, note that not all case-fold equivalent distinct runes +// form an upper/lower pair. +// For example, U+004B ('K'), U+006B ('k'), and U+212A ('K' for Kelvin) +// are three distinct runes that case-fold to each other. +// When we do add Unicode letters, we must not assume that upper/lower +// are the only case-equivalent pairs. +// Perhaps the Kelvin symbol would be disallowed entirely, for example. +// Or perhaps it would escape as "!!k", or perhaps as "(212A)". +// +// Second, it would be nice to allow Unicode marks as well as letters, +// but marks include combining marks, and then we must deal not +// only with case folding but also normalization: both U+00E9 ('é') +// and U+0065 U+0301 ('e' followed by combining acute accent) +// look the same on the page and are treated by some file systems +// as the same path. If we do allow Unicode marks in paths, there +// must be some kind of normalization to allow only one canonical +// encoding of any character used in an import path. +package module + +// IMPORTANT NOTE +// +// This file essentially defines the set of valid import paths for the go command. +// There are many subtle considerations, including Unicode ambiguity, +// security, network, and file system representations. +// +// This file also defines the set of valid module path and version combinations, +// another topic with many subtle considerations. +// +// Changes to the semantics in this file require approval from rsc. + +import ( + "cmp" + "errors" + "fmt" + "path" + "slices" + "strings" + "unicode" + "unicode/utf8" + + "golang.org/x/mod/semver" +) + +// A Version (for clients, a module.Version) is defined by a module path and version pair. +// These are stored in their plain (unescaped) form. +type Version struct { + // Path is a module path, like "golang.org/x/text" or "rsc.io/quote/v2". + Path string + + // Version is usually a semantic version in canonical form. + // There are three exceptions to this general rule. + // First, the top-level target of a build has no specific version + // and uses Version = "". + // Second, during MVS calculations the version "none" is used + // to represent the decision to take no version of a given module. + // Third, filesystem paths found in "replace" directives are + // represented by a path with an empty version. + Version string `json:",omitempty"` +} + +// String returns a representation of the Version suitable for logging +// (Path@Version, or just Path if Version is empty). +func (m Version) String() string { + if m.Version == "" { + return m.Path + } + return m.Path + "@" + m.Version +} + +// A ModuleError indicates an error specific to a module. +type ModuleError struct { + Path string + Version string + Err error +} + +// VersionError returns a [ModuleError] derived from a [Version] and error, +// or err itself if it is already such an error. +func VersionError(v Version, err error) error { + var mErr *ModuleError + if errors.As(err, &mErr) && mErr.Path == v.Path && mErr.Version == v.Version { + return err + } + return &ModuleError{ + Path: v.Path, + Version: v.Version, + Err: err, + } +} + +func (e *ModuleError) Error() string { + if v, ok := e.Err.(*InvalidVersionError); ok { + return fmt.Sprintf("%s@%s: invalid %s: %v", e.Path, v.Version, v.noun(), v.Err) + } + if e.Version != "" { + return fmt.Sprintf("%s@%s: %v", e.Path, e.Version, e.Err) + } + return fmt.Sprintf("module %s: %v", e.Path, e.Err) +} + +func (e *ModuleError) Unwrap() error { return e.Err } + +// An InvalidVersionError indicates an error specific to a version, with the +// module path unknown or specified externally. +// +// A [ModuleError] may wrap an InvalidVersionError, but an InvalidVersionError +// must not wrap a ModuleError. +type InvalidVersionError struct { + Version string + Pseudo bool + Err error +} + +// noun returns either "version" or "pseudo-version", depending on whether +// e.Version is a pseudo-version. +func (e *InvalidVersionError) noun() string { + if e.Pseudo { + return "pseudo-version" + } + return "version" +} + +func (e *InvalidVersionError) Error() string { + return fmt.Sprintf("%s %q invalid: %s", e.noun(), e.Version, e.Err) +} + +func (e *InvalidVersionError) Unwrap() error { return e.Err } + +// An InvalidPathError indicates a module, import, or file path doesn't +// satisfy all naming constraints. See [CheckPath], [CheckImportPath], +// and [CheckFilePath] for specific restrictions. +type InvalidPathError struct { + Kind string // "module", "import", or "file" + Path string + Err error +} + +func (e *InvalidPathError) Error() string { + return fmt.Sprintf("malformed %s path %q: %v", e.Kind, e.Path, e.Err) +} + +func (e *InvalidPathError) Unwrap() error { return e.Err } + +// Check checks that a given module path, version pair is valid. +// In addition to the path being a valid module path +// and the version being a valid semantic version, +// the two must correspond. +// For example, the path "yaml/v2" only corresponds to +// semantic versions beginning with "v2.". +func Check(path, version string) error { + if err := CheckPath(path); err != nil { + return err + } + if !semver.IsValid(version) { + return &ModuleError{ + Path: path, + Err: &InvalidVersionError{Version: version, Err: errors.New("not a semantic version")}, + } + } + _, pathMajor, _ := SplitPathVersion(path) + if err := CheckPathMajor(version, pathMajor); err != nil { + return &ModuleError{Path: path, Err: err} + } + return nil +} + +// firstPathOK reports whether r can appear in the first element of a module path. +// The first element of the path must be an LDH domain name, at least for now. +// To avoid case ambiguity, the domain name must be entirely lower case. +func firstPathOK(r rune) bool { + return r == '-' || r == '.' || + '0' <= r && r <= '9' || + 'a' <= r && r <= 'z' +} + +// modPathOK reports whether r can appear in a module path element. +// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. +// +// This matches what "go get" has historically recognized in import paths, +// and avoids confusing sequences like '%20' or '+' that would change meaning +// if used in a URL. +// +// TODO(rsc): We would like to allow Unicode letters, but that requires additional +// care in the safe encoding (see "escaped paths" above). +func modPathOK(r rune) bool { + if r < utf8.RuneSelf { + return r == '-' || r == '.' || r == '_' || r == '~' || + '0' <= r && r <= '9' || + 'A' <= r && r <= 'Z' || + 'a' <= r && r <= 'z' + } + return false +} + +// importPathOK reports whether r can appear in a package import path element. +// +// Import paths are intermediate between module paths and file paths: we allow +// disallow characters that would be confusing or ambiguous as arguments to +// 'go get' (such as '@' and ' ' ), but allow certain characters that are +// otherwise-unambiguous on the command line and historically used for some +// binary names (such as '++' as a suffix for compiler binaries and wrappers). +func importPathOK(r rune) bool { + return modPathOK(r) || r == '+' +} + +// fileNameOK reports whether r can appear in a file name. +// For now we allow all Unicode letters but otherwise limit to pathOK plus a few more punctuation characters. +// If we expand the set of allowed characters here, we have to +// work harder at detecting potential case-folding and normalization collisions. +// See note about "escaped paths" above. +func fileNameOK(r rune) bool { + if r < utf8.RuneSelf { + // Entire set of ASCII punctuation, from which we remove characters: + // ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + // We disallow some shell special characters: " ' * < > ? ` | + // (Note that some of those are disallowed by the Windows file system as well.) + // We also disallow path separators / : and \ (fileNameOK is only called on path element characters). + // We allow spaces (U+0020) in file names. + const allowed = "!#$%&()+,-.=@[]^_{}~ " + if '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' { + return true + } + return strings.ContainsRune(allowed, r) + } + // It may be OK to add more ASCII punctuation here, but only carefully. + // For example Windows disallows < > \, and macOS disallows :, so we must not allow those. + return unicode.IsLetter(r) +} + +// CheckPath checks that a module path is valid. +// A valid module path is a valid import path, as checked by [CheckImportPath], +// with three additional constraints. +// First, the leading path element (up to the first slash, if any), +// by convention a domain name, must contain only lower-case ASCII letters, +// ASCII digits, dots (U+002E), and dashes (U+002D); +// it must contain at least one dot and cannot start with a dash. +// Second, for a final path element of the form /vN, where N looks numeric +// (ASCII digits and dots) must not begin with a leading zero, must not be /v1, +// and must not contain any dots. For paths beginning with "gopkg.in/", +// this second requirement is replaced by a requirement that the path +// follow the gopkg.in server's conventions. +// Third, no path element may begin with a dot. +func CheckPath(path string) (err error) { + defer func() { + if err != nil { + err = &InvalidPathError{Kind: "module", Path: path, Err: err} + } + }() + + if err := checkPath(path, modulePath); err != nil { + return err + } + i := strings.Index(path, "/") + if i < 0 { + i = len(path) + } + if i == 0 { + return fmt.Errorf("leading slash") + } + if !strings.Contains(path[:i], ".") { + return fmt.Errorf("missing dot in first path element") + } + if path[0] == '-' { + return fmt.Errorf("leading dash in first path element") + } + for _, r := range path[:i] { + if !firstPathOK(r) { + return fmt.Errorf("invalid char %q in first path element", r) + } + } + if _, _, ok := SplitPathVersion(path); !ok { + return fmt.Errorf("invalid version") + } + return nil +} + +// CheckImportPath checks that an import path is valid. +// +// A valid import path consists of one or more valid path elements +// separated by slashes (U+002F). (It must not begin with nor end in a slash.) +// +// A valid path element is a non-empty string made up of +// ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. +// It must not end with a dot (U+002E), nor contain two dots in a row. +// +// The element prefix up to the first dot must not be a reserved file name +// on Windows, regardless of case (CON, com1, NuL, and so on). The element +// must not have a suffix of a tilde followed by one or more ASCII digits +// (to exclude paths elements that look like Windows short-names). +// +// CheckImportPath may be less restrictive in the future, but see the +// top-level package documentation for additional information about +// subtleties of Unicode. +func CheckImportPath(path string) error { + if err := checkPath(path, importPath); err != nil { + return &InvalidPathError{Kind: "import", Path: path, Err: err} + } + return nil +} + +// pathKind indicates what kind of path we're checking. Module paths, +// import paths, and file paths have different restrictions. +type pathKind int + +const ( + modulePath pathKind = iota + importPath + filePath +) + +// checkPath checks that a general path is valid. kind indicates what +// specific constraints should be applied. +// +// checkPath returns an error describing why the path is not valid. +// Because these checks apply to module, import, and file paths, +// and because other checks may be applied, the caller is expected to wrap +// this error with [InvalidPathError]. +func checkPath(path string, kind pathKind) error { + if !utf8.ValidString(path) { + return fmt.Errorf("invalid UTF-8") + } + if path == "" { + return fmt.Errorf("empty string") + } + if path[0] == '-' && kind != filePath { + return fmt.Errorf("leading dash") + } + if strings.Contains(path, "//") { + return fmt.Errorf("double slash") + } + if path[len(path)-1] == '/' { + return fmt.Errorf("trailing slash") + } + elemStart := 0 + for i, r := range path { + if r == '/' { + if err := checkElem(path[elemStart:i], kind); err != nil { + return err + } + elemStart = i + 1 + } + } + if err := checkElem(path[elemStart:], kind); err != nil { + return err + } + return nil +} + +// checkElem checks whether an individual path element is valid. +func checkElem(elem string, kind pathKind) error { + if elem == "" { + return fmt.Errorf("empty path element") + } + if strings.Count(elem, ".") == len(elem) { + return fmt.Errorf("invalid path element %q", elem) + } + if elem[0] == '.' && kind == modulePath { + return fmt.Errorf("leading dot in path element") + } + if elem[len(elem)-1] == '.' { + return fmt.Errorf("trailing dot in path element") + } + for _, r := range elem { + ok := false + switch kind { + case modulePath: + ok = modPathOK(r) + case importPath: + ok = importPathOK(r) + case filePath: + ok = fileNameOK(r) + default: + panic(fmt.Sprintf("internal error: invalid kind %v", kind)) + } + if !ok { + return fmt.Errorf("invalid char %q", r) + } + } + + // Windows disallows a bunch of path elements, sadly. + // See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file + short := elem + if i := strings.Index(short, "."); i >= 0 { + short = short[:i] + } + for _, bad := range badWindowsNames { + if strings.EqualFold(bad, short) { + return fmt.Errorf("%q disallowed as path element component on Windows", short) + } + } + + if kind == filePath { + // don't check for Windows short-names in file names. They're + // only an issue for import paths. + return nil + } + + // Reject path components that look like Windows short-names. + // Those usually end in a tilde followed by one or more ASCII digits. + if tilde := strings.LastIndexByte(short, '~'); tilde >= 0 && tilde < len(short)-1 { + suffix := short[tilde+1:] + suffixIsDigits := true + for _, r := range suffix { + if r < '0' || r > '9' { + suffixIsDigits = false + break + } + } + if suffixIsDigits { + return fmt.Errorf("trailing tilde and digits in path element") + } + } + + return nil +} + +// CheckFilePath checks that a slash-separated file path is valid. +// The definition of a valid file path is the same as the definition +// of a valid import path except that the set of allowed characters is larger: +// all Unicode letters, ASCII digits, the ASCII space character (U+0020), +// and the ASCII punctuation characters +// “!#$%&()+,-.=@[]^_{}~”. +// (The excluded punctuation characters, " * < > ? ` ' | / \ and :, +// have special meanings in certain shells or operating systems.) +// +// CheckFilePath may be less restrictive in the future, but see the +// top-level package documentation for additional information about +// subtleties of Unicode. +func CheckFilePath(path string) error { + if err := checkPath(path, filePath); err != nil { + return &InvalidPathError{Kind: "file", Path: path, Err: err} + } + return nil +} + +// badWindowsNames are the reserved file path elements on Windows. +// See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file +var badWindowsNames = []string{ + "CON", + "PRN", + "AUX", + "NUL", + "COM1", + "COM2", + "COM3", + "COM4", + "COM5", + "COM6", + "COM7", + "COM8", + "COM9", + "LPT1", + "LPT2", + "LPT3", + "LPT4", + "LPT5", + "LPT6", + "LPT7", + "LPT8", + "LPT9", +} + +// SplitPathVersion returns prefix and major version such that prefix+pathMajor == path +// and version is either empty or "/vN" for N >= 2. +// As a special case, gopkg.in paths are recognized directly; +// they require ".vN" instead of "/vN", and for all N, not just N >= 2. +// SplitPathVersion returns with ok = false when presented with +// a path whose last path element does not satisfy the constraints +// applied by [CheckPath], such as "example.com/pkg/v1" or "example.com/pkg/v1.2". +func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { + if strings.HasPrefix(path, "gopkg.in/") { + return splitGopkgIn(path) + } + + i := len(path) + dot := false + for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9' || path[i-1] == '.') { + if path[i-1] == '.' { + dot = true + } + i-- + } + if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' { + return path, "", true + } + prefix, pathMajor = path[:i-2], path[i-2:] + if dot || len(pathMajor) <= 2 || pathMajor[2] == '0' || pathMajor == "/v1" { + return path, "", false + } + return prefix, pathMajor, true +} + +// splitGopkgIn is like SplitPathVersion but only for gopkg.in paths. +func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) { + if !strings.HasPrefix(path, "gopkg.in/") { + return path, "", false + } + i := len(path) + if strings.HasSuffix(path, "-unstable") { + i -= len("-unstable") + } + for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9') { + i-- + } + if i <= 1 || path[i-1] != 'v' || path[i-2] != '.' { + // All gopkg.in paths must end in vN for some N. + return path, "", false + } + prefix, pathMajor = path[:i-2], path[i-2:] + if len(pathMajor) <= 2 || pathMajor[2] == '0' && pathMajor != ".v0" { + return path, "", false + } + return prefix, pathMajor, true +} + +// MatchPathMajor reports whether the semantic version v +// matches the path major version pathMajor. +// +// MatchPathMajor returns true if and only if [CheckPathMajor] returns nil. +func MatchPathMajor(v, pathMajor string) bool { + return CheckPathMajor(v, pathMajor) == nil +} + +// CheckPathMajor returns a non-nil error if the semantic version v +// does not match the path major version pathMajor. +func CheckPathMajor(v, pathMajor string) error { + // TODO(jayconrod): return errors or panic for invalid inputs. This function + // (and others) was covered by integration tests for cmd/go, and surrounding + // code protected against invalid inputs like non-canonical versions. + if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") { + pathMajor = strings.TrimSuffix(pathMajor, "-unstable") + } + if strings.HasPrefix(v, "v0.0.0-") && pathMajor == ".v1" { + // Allow old bug in pseudo-versions that generated v0.0.0- pseudoversion for gopkg .v1. + // For example, gopkg.in/yaml.v2@v2.2.1's go.mod requires gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405. + return nil + } + m := semver.Major(v) + if pathMajor == "" { + if m == "v0" || m == "v1" || semver.Build(v) == "+incompatible" { + return nil + } + pathMajor = "v0 or v1" + } else if pathMajor[0] == '/' || pathMajor[0] == '.' { + if m == pathMajor[1:] { + return nil + } + pathMajor = pathMajor[1:] + } + return &InvalidVersionError{ + Version: v, + Err: fmt.Errorf("should be %s, not %s", pathMajor, semver.Major(v)), + } +} + +// PathMajorPrefix returns the major-version tag prefix implied by pathMajor. +// An empty PathMajorPrefix allows either v0 or v1. +// +// Note that [MatchPathMajor] may accept some versions that do not actually begin +// with this prefix: namely, it accepts a 'v0.0.0-' prefix for a '.v1' +// pathMajor, even though that pathMajor implies 'v1' tagging. +func PathMajorPrefix(pathMajor string) string { + if pathMajor == "" { + return "" + } + if pathMajor[0] != '/' && pathMajor[0] != '.' { + panic("pathMajor suffix " + pathMajor + " passed to PathMajorPrefix lacks separator") + } + if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") { + pathMajor = strings.TrimSuffix(pathMajor, "-unstable") + } + m := pathMajor[1:] + if m != semver.Major(m) { + panic("pathMajor suffix " + pathMajor + "passed to PathMajorPrefix is not a valid major version") + } + return m +} + +// CanonicalVersion returns the canonical form of the version string v. +// It is the same as [semver.Canonical] except that it preserves the special build suffix "+incompatible". +func CanonicalVersion(v string) string { + cv := semver.Canonical(v) + if semver.Build(v) == "+incompatible" { + cv += "+incompatible" + } + return cv +} + +// Sort sorts the list by Path, breaking ties by comparing [Version] fields. +// The Version fields are interpreted as semantic versions (using [semver.Compare]) +// optionally followed by a tie-breaking suffix introduced by a slash character, +// like in "v0.0.1/go.mod". +func Sort(list []Version) { + slices.SortFunc(list, func(i, j Version) int { + if i.Path != j.Path { + return strings.Compare(i.Path, j.Path) + } + // To help go.sum formatting, allow version/file. + // Compare semver prefix by semver rules, + // file by string order. + vi := i.Version + vj := j.Version + var fi, fj string + if k := strings.Index(vi, "/"); k >= 0 { + vi, fi = vi[:k], vi[k:] + } + if k := strings.Index(vj, "/"); k >= 0 { + vj, fj = vj[:k], vj[k:] + } + if vi != vj { + return semver.Compare(vi, vj) + } + return cmp.Compare(fi, fj) + }) +} + +// EscapePath returns the escaped form of the given module path. +// It fails if the module path is invalid. +func EscapePath(path string) (escaped string, err error) { + if err := CheckPath(path); err != nil { + return "", err + } + + return escapeString(path) +} + +// EscapeVersion returns the escaped form of the given module version. +// Versions are allowed to be in non-semver form but must be valid file names +// and not contain exclamation marks. +func EscapeVersion(v string) (escaped string, err error) { + if err := checkElem(v, filePath); err != nil || strings.Contains(v, "!") { + return "", &InvalidVersionError{ + Version: v, + Err: fmt.Errorf("disallowed version string"), + } + } + return escapeString(v) +} + +func escapeString(s string) (escaped string, err error) { + haveUpper := false + for _, r := range s { + if r == '!' || r >= utf8.RuneSelf { + // This should be disallowed by CheckPath, but diagnose anyway. + // The correctness of the escaping loop below depends on it. + return "", fmt.Errorf("internal error: inconsistency in EscapePath") + } + if 'A' <= r && r <= 'Z' { + haveUpper = true + } + } + + if !haveUpper { + return s, nil + } + + var buf []byte + for _, r := range s { + if 'A' <= r && r <= 'Z' { + buf = append(buf, '!', byte(r+'a'-'A')) + } else { + buf = append(buf, byte(r)) + } + } + return string(buf), nil +} + +// UnescapePath returns the module path for the given escaped path. +// It fails if the escaped path is invalid or describes an invalid path. +func UnescapePath(escaped string) (path string, err error) { + path, ok := unescapeString(escaped) + if !ok { + return "", fmt.Errorf("invalid escaped module path %q", escaped) + } + if err := CheckPath(path); err != nil { + return "", fmt.Errorf("invalid escaped module path %q: %v", escaped, err) + } + return path, nil +} + +// UnescapeVersion returns the version string for the given escaped version. +// It fails if the escaped form is invalid or describes an invalid version. +// Versions are allowed to be in non-semver form but must be valid file names +// and not contain exclamation marks. +func UnescapeVersion(escaped string) (v string, err error) { + v, ok := unescapeString(escaped) + if !ok { + return "", fmt.Errorf("invalid escaped version %q", escaped) + } + if err := checkElem(v, filePath); err != nil { + return "", fmt.Errorf("invalid escaped version %q: %v", v, err) + } + return v, nil +} + +func unescapeString(escaped string) (string, bool) { + var buf []byte + + bang := false + for _, r := range escaped { + if r >= utf8.RuneSelf { + return "", false + } + if bang { + bang = false + if r < 'a' || 'z' < r { + return "", false + } + buf = append(buf, byte(r+'A'-'a')) + continue + } + if r == '!' { + bang = true + continue + } + if 'A' <= r && r <= 'Z' { + return "", false + } + buf = append(buf, byte(r)) + } + if bang { + return "", false + } + return string(buf), true +} + +// MatchPrefixPatterns reports whether any path prefix of target matches one of +// the glob patterns (as defined by [path.Match]) in the comma-separated globs +// list. This implements the algorithm used when matching a module path to the +// GOPRIVATE environment variable, as described by 'go help module-private'. +// +// It ignores any empty or malformed patterns in the list. +// Trailing slashes on patterns are ignored. +func MatchPrefixPatterns(globs, target string) bool { + for globs != "" { + // Extract next non-empty glob in comma-separated list. + var glob string + if i := strings.Index(globs, ","); i >= 0 { + glob, globs = globs[:i], globs[i+1:] + } else { + glob, globs = globs, "" + } + glob = strings.TrimSuffix(glob, "/") + if glob == "" { + continue + } + + // A glob with N+1 path elements (N slashes) needs to be matched + // against the first N+1 path elements of target, + // which end just before the N+1'th slash. + n := strings.Count(glob, "/") + prefix := target + // Walk target, counting slashes, truncating at the N+1'th slash. + for i := 0; i < len(target); i++ { + if target[i] == '/' { + if n == 0 { + prefix = target[:i] + break + } + n-- + } + } + if n > 0 { + // Not enough prefix elements. + continue + } + matched, _ := path.Match(glob, prefix) + if matched { + return true + } + } + return false +} diff --git a/vendor/golang.org/x/mod/module/pseudo.go b/vendor/golang.org/x/mod/module/pseudo.go new file mode 100644 index 0000000..9cf19d3 --- /dev/null +++ b/vendor/golang.org/x/mod/module/pseudo.go @@ -0,0 +1,250 @@ +// 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. + +// Pseudo-versions +// +// Code authors are expected to tag the revisions they want users to use, +// including prereleases. However, not all authors tag versions at all, +// and not all commits a user might want to try will have tags. +// A pseudo-version is a version with a special form that allows us to +// address an untagged commit and order that version with respect to +// other versions we might encounter. +// +// A pseudo-version takes one of the general forms: +// +// (1) vX.0.0-yyyymmddhhmmss-abcdef123456 +// (2) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 +// (3) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible +// (4) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 +// (5) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible +// +// If there is no recently tagged version with the right major version vX, +// then form (1) is used, creating a space of pseudo-versions at the bottom +// of the vX version range, less than any tagged version, including the unlikely v0.0.0. +// +// If the most recent tagged version before the target commit is vX.Y.Z or vX.Y.Z+incompatible, +// then the pseudo-version uses form (2) or (3), making it a prerelease for the next +// possible semantic version after vX.Y.Z. The leading 0 segment in the prerelease string +// ensures that the pseudo-version compares less than possible future explicit prereleases +// like vX.Y.(Z+1)-rc1 or vX.Y.(Z+1)-1. +// +// If the most recent tagged version before the target commit is vX.Y.Z-pre or vX.Y.Z-pre+incompatible, +// then the pseudo-version uses form (4) or (5), making it a slightly later prerelease. + +package module + +import ( + "errors" + "fmt" + "strings" + "time" + + "golang.org/x/mod/internal/lazyregexp" + "golang.org/x/mod/semver" +) + +var pseudoVersionRE = lazyregexp.New(`^v[0-9]+\.(0\.0-|\d+\.\d+-([^+]*\.)?0\.)\d{14}-[A-Za-z0-9]+(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$`) + +const PseudoVersionTimestampFormat = "20060102150405" + +// PseudoVersion returns a pseudo-version for the given major version ("v1") +// preexisting older tagged version ("" or "v1.2.3" or "v1.2.3-pre"), revision time, +// and revision identifier (usually a 12-byte commit hash prefix). +func PseudoVersion(major, older string, t time.Time, rev string) string { + if major == "" { + major = "v0" + } + segment := fmt.Sprintf("%s-%s", t.UTC().Format(PseudoVersionTimestampFormat), rev) + build := semver.Build(older) + older = semver.Canonical(older) + if older == "" { + return major + ".0.0-" + segment // form (1) + } + if semver.Prerelease(older) != "" { + return older + ".0." + segment + build // form (4), (5) + } + + // Form (2), (3). + // Extract patch from vMAJOR.MINOR.PATCH + i := strings.LastIndex(older, ".") + 1 + v, patch := older[:i], older[i:] + + // Reassemble. + return v + incDecimal(patch) + "-0." + segment + build +} + +// ZeroPseudoVersion returns a pseudo-version with a zero timestamp and +// revision, which may be used as a placeholder. +func ZeroPseudoVersion(major string) string { + return PseudoVersion(major, "", time.Time{}, "000000000000") +} + +// incDecimal returns the decimal string incremented by 1. +func incDecimal(decimal string) string { + // Scan right to left turning 9s to 0s until you find a digit to increment. + digits := []byte(decimal) + i := len(digits) - 1 + for ; i >= 0 && digits[i] == '9'; i-- { + digits[i] = '0' + } + if i >= 0 { + digits[i]++ + } else { + // digits is all zeros + digits[0] = '1' + digits = append(digits, '0') + } + return string(digits) +} + +// decDecimal returns the decimal string decremented by 1, or the empty string +// if the decimal is all zeroes. +func decDecimal(decimal string) string { + // Scan right to left turning 0s to 9s until you find a digit to decrement. + digits := []byte(decimal) + i := len(digits) - 1 + for ; i >= 0 && digits[i] == '0'; i-- { + digits[i] = '9' + } + if i < 0 { + // decimal is all zeros + return "" + } + if i == 0 && digits[i] == '1' && len(digits) > 1 { + digits = digits[1:] + } else { + digits[i]-- + } + return string(digits) +} + +// IsPseudoVersion reports whether v is a pseudo-version. +func IsPseudoVersion(v string) bool { + return strings.Count(v, "-") >= 2 && semver.IsValid(v) && pseudoVersionRE.MatchString(v) +} + +// IsZeroPseudoVersion returns whether v is a pseudo-version with a zero base, +// timestamp, and revision, as returned by [ZeroPseudoVersion]. +func IsZeroPseudoVersion(v string) bool { + return v == ZeroPseudoVersion(semver.Major(v)) +} + +// PseudoVersionTime returns the time stamp of the pseudo-version v. +// It returns an error if v is not a pseudo-version or if the time stamp +// embedded in the pseudo-version is not a valid time. +func PseudoVersionTime(v string) (time.Time, error) { + _, timestamp, _, _, err := parsePseudoVersion(v) + if err != nil { + return time.Time{}, err + } + t, err := time.Parse("20060102150405", timestamp) + if err != nil { + return time.Time{}, &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("malformed time %q", timestamp), + } + } + return t, nil +} + +// PseudoVersionRev returns the revision identifier of the pseudo-version v. +// It returns an error if v is not a pseudo-version. +func PseudoVersionRev(v string) (rev string, err error) { + _, _, rev, _, err = parsePseudoVersion(v) + return +} + +// PseudoVersionBase returns the canonical parent version, if any, upon which +// the pseudo-version v is based. +// +// If v has no parent version (that is, if it is "vX.0.0-[…]"), +// PseudoVersionBase returns the empty string and a nil error. +func PseudoVersionBase(v string) (string, error) { + base, _, _, build, err := parsePseudoVersion(v) + if err != nil { + return "", err + } + + switch pre := semver.Prerelease(base); pre { + case "": + // vX.0.0-yyyymmddhhmmss-abcdef123456 → "" + if build != "" { + // Pseudo-versions of the form vX.0.0-yyyymmddhhmmss-abcdef123456+incompatible + // are nonsensical: the "vX.0.0-" prefix implies that there is no parent tag, + // but the "+incompatible" suffix implies that the major version of + // the parent tag is not compatible with the module's import path. + // + // There are a few such entries in the index generated by proxy.golang.org, + // but we believe those entries were generated by the proxy itself. + return "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("lacks base version, but has build metadata %q", build), + } + } + return "", nil + + case "-0": + // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z + // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z+incompatible + base = strings.TrimSuffix(base, pre) + i := strings.LastIndexByte(base, '.') + if i < 0 { + panic("base from parsePseudoVersion missing patch number: " + base) + } + patch := decDecimal(base[i+1:]) + if patch == "" { + // vX.0.0-0 is invalid, but has been observed in the wild in the index + // generated by requests to proxy.golang.org. + // + // NOTE(bcmills): I cannot find a historical bug that accounts for + // pseudo-versions of this form, nor have I seen such versions in any + // actual go.mod files. If we find actual examples of this form and a + // reasonable theory of how they came into existence, it seems fine to + // treat them as equivalent to vX.0.0 (especially since the invalid + // pseudo-versions have lower precedence than the real ones). For now, we + // reject them. + return "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("version before %s would have negative patch number", base), + } + } + return base[:i+1] + patch + build, nil + + default: + // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z-pre + // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z-pre+incompatible + if !strings.HasSuffix(base, ".0") { + panic(`base from parsePseudoVersion missing ".0" before date: ` + base) + } + return strings.TrimSuffix(base, ".0") + build, nil + } +} + +var errPseudoSyntax = errors.New("syntax error") + +func parsePseudoVersion(v string) (base, timestamp, rev, build string, err error) { + if !IsPseudoVersion(v) { + return "", "", "", "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: errPseudoSyntax, + } + } + build = semver.Build(v) + v = strings.TrimSuffix(v, build) + j := strings.LastIndex(v, "-") + v, rev = v[:j], v[j+1:] + i := strings.LastIndex(v, "-") + if j := strings.LastIndex(v, "."); j > i { + base = v[:j] // "vX.Y.Z-pre.0" or "vX.Y.(Z+1)-0" + timestamp = v[j+1:] + } else { + base = v[:i] // "vX.0.0" + timestamp = v[i+1:] + } + return base, timestamp, rev, build, nil +} diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go new file mode 100644 index 0000000..628f8fd --- /dev/null +++ b/vendor/golang.org/x/mod/semver/semver.go @@ -0,0 +1,407 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package semver implements comparison of semantic version strings. +// In this package, semantic version strings must begin with a leading "v", +// as in "v1.0.0". +// +// The general form of a semantic version string accepted by this package is +// +// vMAJOR[.MINOR[.PATCH[-PRERELEASE][+BUILD]]] +// +// where square brackets indicate optional parts of the syntax; +// MAJOR, MINOR, and PATCH are decimal integers without extra leading zeros; +// PRERELEASE and BUILD are each a series of non-empty dot-separated identifiers +// using only alphanumeric characters and hyphens; and +// all-numeric PRERELEASE identifiers must not have leading zeros. +// +// This package follows Semantic Versioning 2.0.0 (see semver.org) +// with two exceptions. First, it requires the "v" prefix. Second, it recognizes +// vMAJOR and vMAJOR.MINOR (with no prerelease or build suffixes) +// as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. +package semver + +import ( + "slices" + "strings" +) + +// parsed returns the parsed form of a semantic version string. +type parsed struct { + major string + minor string + patch string + short string + prerelease string + build string +} + +// IsValid reports whether v is a valid semantic version string. +func IsValid(v string) bool { + _, ok := parse(v) + return ok +} + +// Canonical returns the canonical formatting of the semantic version v. +// It fills in any missing .MINOR or .PATCH and discards build metadata. +// Two semantic versions compare equal only if their canonical formattings +// are identical strings. +// The canonical invalid semantic version is the empty string. +func Canonical(v string) string { + p, ok := parse(v) + if !ok { + return "" + } + if p.build != "" { + return v[:len(v)-len(p.build)] + } + if p.short != "" { + return v + p.short + } + return v +} + +// Major returns the major version prefix of the semantic version v. +// For example, Major("v2.1.0") == "v2". +// If v is an invalid semantic version string, Major returns the empty string. +func Major(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return v[:1+len(pv.major)] +} + +// MajorMinor returns the major.minor version prefix of the semantic version v. +// For example, MajorMinor("v2.1.0") == "v2.1". +// If v is an invalid semantic version string, MajorMinor returns the empty string. +func MajorMinor(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + i := 1 + len(pv.major) + if j := i + 1 + len(pv.minor); j <= len(v) && v[i] == '.' && v[i+1:j] == pv.minor { + return v[:j] + } + return v[:i] + "." + pv.minor +} + +// Prerelease returns the prerelease suffix of the semantic version v. +// For example, Prerelease("v2.1.0-pre+meta") == "-pre". +// If v is an invalid semantic version string, Prerelease returns the empty string. +func Prerelease(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return pv.prerelease +} + +// Build returns the build suffix of the semantic version v. +// For example, Build("v2.1.0+meta") == "+meta". +// If v is an invalid semantic version string, Build returns the empty string. +func Build(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return pv.build +} + +// Compare returns an integer comparing two versions according to +// semantic version precedence. +// The result will be 0 if v == w, -1 if v < w, or +1 if v > w. +// +// An invalid semantic version string is considered less than a valid one. +// All invalid semantic version strings compare equal to each other. +func Compare(v, w string) int { + pv, ok1 := parse(v) + pw, ok2 := parse(w) + if !ok1 && !ok2 { + return 0 + } + if !ok1 { + return -1 + } + if !ok2 { + return +1 + } + if c := compareInt(pv.major, pw.major); c != 0 { + return c + } + if c := compareInt(pv.minor, pw.minor); c != 0 { + return c + } + if c := compareInt(pv.patch, pw.patch); c != 0 { + return c + } + return comparePrerelease(pv.prerelease, pw.prerelease) +} + +// Max canonicalizes its arguments and then returns the version string +// that compares greater. +// +// Deprecated: use [Compare] instead. In most cases, returning a canonicalized +// version is not expected or desired. +func Max(v, w string) string { + v = Canonical(v) + w = Canonical(w) + if Compare(v, w) > 0 { + return v + } + return w +} + +// ByVersion implements [sort.Interface] for sorting semantic version strings. +type ByVersion []string + +func (vs ByVersion) Len() int { return len(vs) } +func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } +func (vs ByVersion) Less(i, j int) bool { return compareVersion(vs[i], vs[j]) < 0 } + +// Sort sorts a list of semantic version strings using [Compare] and falls back +// to use [strings.Compare] if both versions are considered equal. +func Sort(list []string) { + slices.SortFunc(list, compareVersion) +} + +func compareVersion(a, b string) int { + cmp := Compare(a, b) + if cmp != 0 { + return cmp + } + return strings.Compare(a, b) +} + +func parse(v string) (p parsed, ok bool) { + if v == "" || v[0] != 'v' { + return + } + p.major, v, ok = parseInt(v[1:]) + if !ok { + return + } + if v == "" { + p.minor = "0" + p.patch = "0" + p.short = ".0.0" + return + } + if v[0] != '.' { + ok = false + return + } + p.minor, v, ok = parseInt(v[1:]) + if !ok { + return + } + if v == "" { + p.patch = "0" + p.short = ".0" + return + } + if v[0] != '.' { + ok = false + return + } + p.patch, v, ok = parseInt(v[1:]) + if !ok { + return + } + if len(v) > 0 && v[0] == '-' { + p.prerelease, v, ok = parsePrerelease(v) + if !ok { + return + } + } + if len(v) > 0 && v[0] == '+' { + p.build, v, ok = parseBuild(v) + if !ok { + return + } + } + if v != "" { + ok = false + return + } + ok = true + return +} + +func parseInt(v string) (t, rest string, ok bool) { + if v == "" { + return + } + if v[0] < '0' || '9' < v[0] { + return + } + i := 1 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + if v[0] == '0' && i != 1 { + return + } + return v[:i], v[i:], true +} + +func parsePrerelease(v string) (t, rest string, ok bool) { + // "A pre-release version MAY be denoted by appending a hyphen and + // a series of dot separated identifiers immediately following the patch version. + // Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. + // Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes." + if v == "" || v[0] != '-' { + return + } + i := 1 + start := 1 + for i < len(v) && v[i] != '+' { + if !isIdentChar(v[i]) && v[i] != '.' { + return + } + if v[i] == '.' { + if start == i || isBadNum(v[start:i]) { + return + } + start = i + 1 + } + i++ + } + if start == i || isBadNum(v[start:i]) { + return + } + return v[:i], v[i:], true +} + +func parseBuild(v string) (t, rest string, ok bool) { + if v == "" || v[0] != '+' { + return + } + i := 1 + start := 1 + for i < len(v) { + if !isIdentChar(v[i]) && v[i] != '.' { + return + } + if v[i] == '.' { + if start == i { + return + } + start = i + 1 + } + i++ + } + if start == i { + return + } + return v[:i], v[i:], true +} + +func isIdentChar(c byte) bool { + return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '-' +} + +func isBadNum(v string) bool { + i := 0 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + return i == len(v) && i > 1 && v[0] == '0' +} + +func isNum(v string) bool { + i := 0 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + return i == len(v) +} + +func compareInt(x, y string) int { + if x == y { + return 0 + } + if len(x) < len(y) { + return -1 + } + if len(x) > len(y) { + return +1 + } + if x < y { + return -1 + } else { + return +1 + } +} + +func comparePrerelease(x, y string) int { + // "When major, minor, and patch are equal, a pre-release version has + // lower precedence than a normal version. + // Example: 1.0.0-alpha < 1.0.0. + // Precedence for two pre-release versions with the same major, minor, + // and patch version MUST be determined by comparing each dot separated + // identifier from left to right until a difference is found as follows: + // identifiers consisting of only digits are compared numerically and + // identifiers with letters or hyphens are compared lexically in ASCII + // sort order. Numeric identifiers always have lower precedence than + // non-numeric identifiers. A larger set of pre-release fields has a + // higher precedence than a smaller set, if all of the preceding + // identifiers are equal. + // Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < + // 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0." + if x == y { + return 0 + } + if x == "" { + return +1 + } + if y == "" { + return -1 + } + for x != "" && y != "" { + x = x[1:] // skip - or . + y = y[1:] // skip - or . + var dx, dy string + dx, x = nextIdent(x) + dy, y = nextIdent(y) + if dx != dy { + ix := isNum(dx) + iy := isNum(dy) + if ix != iy { + if ix { + return -1 + } else { + return +1 + } + } + if ix { + if len(dx) < len(dy) { + return -1 + } + if len(dx) > len(dy) { + return +1 + } + } + if dx < dy { + return -1 + } else { + return +1 + } + } + } + if x == "" { + return -1 + } else { + return +1 + } +} + +func nextIdent(x string) (dx, rest string) { + i := 0 + for i < len(x) && x[i] != '.' { + i++ + } + return x[:i], x[i:] +} diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE new file mode 100644 index 0000000..2a7cf70 --- /dev/null +++ b/vendor/golang.org/x/net/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/net/PATENTS b/vendor/golang.org/x/net/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/net/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/net/html/atom/atom.go b/vendor/golang.org/x/net/html/atom/atom.go new file mode 100644 index 0000000..cd0a8ac --- /dev/null +++ b/vendor/golang.org/x/net/html/atom/atom.go @@ -0,0 +1,78 @@ +// 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 atom provides integer codes (also known as atoms) for a fixed set of +// frequently occurring HTML strings: tag names and attribute keys such as "p" +// and "id". +// +// Sharing an atom's name between all elements with the same tag can result in +// fewer string allocations when tokenizing and parsing HTML. Integer +// comparisons are also generally faster than string comparisons. +// +// The value of an atom's particular code is not guaranteed to stay the same +// between versions of this package. Neither is any ordering guaranteed: +// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to +// be dense. The only guarantees are that e.g. looking up "div" will yield +// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0. +package atom // import "golang.org/x/net/html/atom" + +// Atom is an integer code for a string. The zero value maps to "". +type Atom uint32 + +// String returns the atom's name. +func (a Atom) String() string { + start := uint32(a >> 8) + n := uint32(a & 0xff) + if start+n > uint32(len(atomText)) { + return "" + } + return atomText[start : start+n] +} + +func (a Atom) string() string { + return atomText[a>>8 : a>>8+a&0xff] +} + +// fnv computes the FNV hash with an arbitrary starting value h. +func fnv(h uint32, s []byte) uint32 { + for i := range s { + h ^= uint32(s[i]) + h *= 16777619 + } + return h +} + +func match(s string, t []byte) bool { + for i, c := range t { + if s[i] != c { + return false + } + } + return true +} + +// Lookup returns the atom whose name is s. It returns zero if there is no +// such atom. The lookup is case sensitive. +func Lookup(s []byte) Atom { + if len(s) == 0 || len(s) > maxAtomLen { + return 0 + } + h := fnv(hash0, s) + if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { + return a + } + if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { + return a + } + return 0 +} + +// String returns a string whose contents are equal to s. In that sense, it is +// equivalent to string(s) but may be more efficient. +func String(s []byte) string { + if a := Lookup(s); a != 0 { + return a.String() + } + return string(s) +} diff --git a/vendor/golang.org/x/net/html/atom/table.go b/vendor/golang.org/x/net/html/atom/table.go new file mode 100644 index 0000000..b460e6f --- /dev/null +++ b/vendor/golang.org/x/net/html/atom/table.go @@ -0,0 +1,785 @@ +// Code generated by go generate gen.go; DO NOT EDIT. + +//go:generate go run gen.go + +package atom + +const ( + A Atom = 0x1 + Abbr Atom = 0x4 + Accept Atom = 0x1a06 + AcceptCharset Atom = 0x1a0e + Accesskey Atom = 0x2c09 + Acronym Atom = 0xaa07 + Action Atom = 0x26506 + Address Atom = 0x6f107 + Align Atom = 0xb105 + Allowfullscreen Atom = 0x3280f + Allowpaymentrequest Atom = 0xc113 + Allowusermedia Atom = 0xdd0e + Alt Atom = 0xf303 + Annotation Atom = 0x1c90a + AnnotationXml Atom = 0x1c90e + Applet Atom = 0x30806 + Area Atom = 0x35004 + Article Atom = 0x3f607 + As Atom = 0x3c02 + Aside Atom = 0x10705 + Async Atom = 0xff05 + Audio Atom = 0x11505 + Autocomplete Atom = 0x26b0c + Autofocus Atom = 0x12109 + Autoplay Atom = 0x13c08 + B Atom = 0x101 + Base Atom = 0x3b04 + Basefont Atom = 0x3b08 + Bdi Atom = 0xba03 + Bdo Atom = 0x14b03 + Bgsound Atom = 0x15e07 + Big Atom = 0x17003 + Blink Atom = 0x17305 + Blockquote Atom = 0x1870a + Body Atom = 0x2804 + Br Atom = 0x202 + Button Atom = 0x19106 + Canvas Atom = 0x10306 + Caption Atom = 0x22407 + Center Atom = 0x21306 + Challenge Atom = 0x28e09 + Charset Atom = 0x2107 + Checked Atom = 0x5b507 + Cite Atom = 0x19c04 + Class Atom = 0x55805 + Code Atom = 0x5ee04 + Col Atom = 0x1ab03 + Colgroup Atom = 0x1ab08 + Color Atom = 0x1bf05 + Cols Atom = 0x1c404 + Colspan Atom = 0x1c407 + Command Atom = 0x1d707 + Content Atom = 0x57b07 + Contenteditable Atom = 0x57b0f + Contextmenu Atom = 0x37a0b + Controls Atom = 0x1de08 + Coords Atom = 0x1f006 + Crossorigin Atom = 0x1fa0b + Data Atom = 0x49904 + Datalist Atom = 0x49908 + Datetime Atom = 0x2ab08 + Dd Atom = 0x2bf02 + Default Atom = 0x10a07 + Defer Atom = 0x5f005 + Del Atom = 0x44c03 + Desc Atom = 0x55504 + Details Atom = 0x7207 + Dfn Atom = 0x8703 + Dialog Atom = 0xbb06 + Dir Atom = 0x9303 + Dirname Atom = 0x9307 + Disabled Atom = 0x16408 + Div Atom = 0x16b03 + Dl Atom = 0x5d602 + Download Atom = 0x45d08 + Draggable Atom = 0x17a09 + Dropzone Atom = 0x3ff08 + Dt Atom = 0x64002 + Em Atom = 0x6e02 + Embed Atom = 0x6e05 + Enctype Atom = 0x28007 + Face Atom = 0x21104 + Fieldset Atom = 0x21908 + Figcaption Atom = 0x2210a + Figure Atom = 0x23b06 + Font Atom = 0x3f04 + Footer Atom = 0xf606 + For Atom = 0x24703 + ForeignObject Atom = 0x2470d + Foreignobject Atom = 0x2540d + Form Atom = 0x26104 + Formaction Atom = 0x2610a + Formenctype Atom = 0x27c0b + Formmethod Atom = 0x2970a + Formnovalidate Atom = 0x2a10e + Formtarget Atom = 0x2b30a + Frame Atom = 0x8b05 + Frameset Atom = 0x8b08 + H1 Atom = 0x15c02 + H2 Atom = 0x56102 + H3 Atom = 0x2cd02 + H4 Atom = 0x2fc02 + H5 Atom = 0x33f02 + H6 Atom = 0x34902 + Head Atom = 0x32004 + Header Atom = 0x32006 + Headers Atom = 0x32007 + Height Atom = 0x5206 + Hgroup Atom = 0x64206 + Hidden Atom = 0x2bd06 + High Atom = 0x2ca04 + Hr Atom = 0x15702 + Href Atom = 0x2cf04 + Hreflang Atom = 0x2cf08 + Html Atom = 0x5604 + HttpEquiv Atom = 0x2d70a + I Atom = 0x601 + Icon Atom = 0x57a04 + Id Atom = 0x10902 + Iframe Atom = 0x2eb06 + Image Atom = 0x2f105 + Img Atom = 0x2f603 + Input Atom = 0x44505 + Inputmode Atom = 0x44509 + Ins Atom = 0x20303 + Integrity Atom = 0x23209 + Is Atom = 0x16502 + Isindex Atom = 0x2fe07 + Ismap Atom = 0x30505 + Itemid Atom = 0x38506 + Itemprop Atom = 0x19d08 + Itemref Atom = 0x3c707 + Itemscope Atom = 0x66f09 + Itemtype Atom = 0x30e08 + Kbd Atom = 0xb903 + Keygen Atom = 0x3206 + Keytype Atom = 0xd607 + Kind Atom = 0x17704 + Label Atom = 0x5905 + Lang Atom = 0x2d304 + Legend Atom = 0x18106 + Li Atom = 0xb202 + Link Atom = 0x17404 + List Atom = 0x49d04 + Listing Atom = 0x49d07 + Loop Atom = 0x5d04 + Low Atom = 0xc303 + Main Atom = 0x1004 + Malignmark Atom = 0xb00a + Manifest Atom = 0x6d508 + Map Atom = 0x30703 + Mark Atom = 0xb604 + Marquee Atom = 0x31607 + Math Atom = 0x31d04 + Max Atom = 0x33703 + Maxlength Atom = 0x33709 + Media Atom = 0xe605 + Mediagroup Atom = 0xe60a + Menu Atom = 0x38104 + Menuitem Atom = 0x38108 + Meta Atom = 0x4ac04 + Meter Atom = 0x9805 + Method Atom = 0x29b06 + Mglyph Atom = 0x2f706 + Mi Atom = 0x34102 + Min Atom = 0x34103 + Minlength Atom = 0x34109 + Mn Atom = 0x2a402 + Mo Atom = 0xa402 + Ms Atom = 0x67202 + Mtext Atom = 0x34b05 + Multiple Atom = 0x35908 + Muted Atom = 0x36105 + Name Atom = 0x9604 + Nav Atom = 0x1303 + Nobr Atom = 0x3704 + Noembed Atom = 0x6c07 + Noframes Atom = 0x8908 + Nomodule Atom = 0xa208 + Nonce Atom = 0x1a605 + Noscript Atom = 0x2c208 + Novalidate Atom = 0x2a50a + Object Atom = 0x25b06 + Ol Atom = 0x13702 + Onabort Atom = 0x19507 + Onafterprint Atom = 0x2290c + Onautocomplete Atom = 0x2690e + Onautocompleteerror Atom = 0x26913 + Onauxclick Atom = 0x6140a + Onbeforeprint Atom = 0x69c0d + Onbeforeunload Atom = 0x6e50e + Onblur Atom = 0x1ea06 + Oncancel Atom = 0x11908 + Oncanplay Atom = 0x14d09 + Oncanplaythrough Atom = 0x14d10 + Onchange Atom = 0x41508 + Onclick Atom = 0x2e407 + Onclose Atom = 0x36607 + Oncontextmenu Atom = 0x3780d + Oncopy Atom = 0x38b06 + Oncuechange Atom = 0x3910b + Oncut Atom = 0x39c05 + Ondblclick Atom = 0x3a10a + Ondrag Atom = 0x3ab06 + Ondragend Atom = 0x3ab09 + Ondragenter Atom = 0x3b40b + Ondragexit Atom = 0x3bf0a + Ondragleave Atom = 0x3d90b + Ondragover Atom = 0x3e40a + Ondragstart Atom = 0x3ee0b + Ondrop Atom = 0x3fd06 + Ondurationchange Atom = 0x40d10 + Onemptied Atom = 0x40409 + Onended Atom = 0x41d07 + Onerror Atom = 0x42407 + Onfocus Atom = 0x42b07 + Onhashchange Atom = 0x4370c + Oninput Atom = 0x44307 + Oninvalid Atom = 0x44f09 + Onkeydown Atom = 0x45809 + Onkeypress Atom = 0x4650a + Onkeyup Atom = 0x47407 + Onlanguagechange Atom = 0x48110 + Onload Atom = 0x49106 + Onloadeddata Atom = 0x4910c + Onloadedmetadata Atom = 0x4a410 + Onloadend Atom = 0x4ba09 + Onloadstart Atom = 0x4c30b + Onmessage Atom = 0x4ce09 + Onmessageerror Atom = 0x4ce0e + Onmousedown Atom = 0x4dc0b + Onmouseenter Atom = 0x4e70c + Onmouseleave Atom = 0x4f30c + Onmousemove Atom = 0x4ff0b + Onmouseout Atom = 0x50a0a + Onmouseover Atom = 0x5170b + Onmouseup Atom = 0x52209 + Onmousewheel Atom = 0x5300c + Onoffline Atom = 0x53c09 + Ononline Atom = 0x54508 + Onpagehide Atom = 0x54d0a + Onpageshow Atom = 0x5630a + Onpaste Atom = 0x56f07 + Onpause Atom = 0x58a07 + Onplay Atom = 0x59406 + Onplaying Atom = 0x59409 + Onpopstate Atom = 0x59d0a + Onprogress Atom = 0x5a70a + Onratechange Atom = 0x5bc0c + Onrejectionhandled Atom = 0x5c812 + Onreset Atom = 0x5da07 + Onresize Atom = 0x5e108 + Onscroll Atom = 0x5f508 + Onsecuritypolicyviolation Atom = 0x5fd19 + Onseeked Atom = 0x61e08 + Onseeking Atom = 0x62609 + Onselect Atom = 0x62f08 + Onshow Atom = 0x63906 + Onsort Atom = 0x64d06 + Onstalled Atom = 0x65709 + Onstorage Atom = 0x66009 + Onsubmit Atom = 0x66908 + Onsuspend Atom = 0x67909 + Ontimeupdate Atom = 0x400c + Ontoggle Atom = 0x68208 + Onunhandledrejection Atom = 0x68a14 + Onunload Atom = 0x6a908 + Onvolumechange Atom = 0x6b10e + Onwaiting Atom = 0x6bf09 + Onwheel Atom = 0x6c807 + Open Atom = 0x1a304 + Optgroup Atom = 0x5f08 + Optimum Atom = 0x6cf07 + Option Atom = 0x6e106 + Output Atom = 0x51106 + P Atom = 0xc01 + Param Atom = 0xc05 + Pattern Atom = 0x6607 + Picture Atom = 0x7b07 + Ping Atom = 0xef04 + Placeholder Atom = 0x1310b + Plaintext Atom = 0x1b209 + Playsinline Atom = 0x1400b + Poster Atom = 0x64706 + Pre Atom = 0x46a03 + Preload Atom = 0x47a07 + Progress Atom = 0x5a908 + Prompt Atom = 0x52a06 + Public Atom = 0x57606 + Q Atom = 0xcf01 + Radiogroup Atom = 0x30a + Rb Atom = 0x3a02 + Readonly Atom = 0x35108 + Referrerpolicy Atom = 0x3cb0e + Rel Atom = 0x47b03 + Required Atom = 0x23f08 + Reversed Atom = 0x8008 + Rows Atom = 0x9c04 + Rowspan Atom = 0x9c07 + Rp Atom = 0x22f02 + Rt Atom = 0x19a02 + Rtc Atom = 0x19a03 + Ruby Atom = 0xfb04 + S Atom = 0x2501 + Samp Atom = 0x7804 + Sandbox Atom = 0x12907 + Scope Atom = 0x67305 + Scoped Atom = 0x67306 + Script Atom = 0x2c406 + Seamless Atom = 0x36b08 + Search Atom = 0x55c06 + Section Atom = 0x1e507 + Select Atom = 0x63106 + Selected Atom = 0x63108 + Shape Atom = 0x1f505 + Size Atom = 0x5e504 + Sizes Atom = 0x5e505 + Slot Atom = 0x20504 + Small Atom = 0x32605 + Sortable Atom = 0x64f08 + Sorted Atom = 0x37206 + Source Atom = 0x43106 + Spacer Atom = 0x46e06 + Span Atom = 0x9f04 + Spellcheck Atom = 0x5b00a + Src Atom = 0x5e903 + Srcdoc Atom = 0x5e906 + Srclang Atom = 0x6f707 + Srcset Atom = 0x6fe06 + Start Atom = 0x3f405 + Step Atom = 0x57304 + Strike Atom = 0xd206 + Strong Atom = 0x6db06 + Style Atom = 0x70405 + Sub Atom = 0x66b03 + Summary Atom = 0x70907 + Sup Atom = 0x71003 + Svg Atom = 0x71303 + System Atom = 0x71606 + Tabindex Atom = 0x4b208 + Table Atom = 0x58505 + Target Atom = 0x2b706 + Tbody Atom = 0x2705 + Td Atom = 0x9202 + Template Atom = 0x71908 + Textarea Atom = 0x34c08 + Tfoot Atom = 0xf505 + Th Atom = 0x15602 + Thead Atom = 0x31f05 + Time Atom = 0x4204 + Title Atom = 0x11005 + Tr Atom = 0xcc02 + Track Atom = 0x1ba05 + Translate Atom = 0x20809 + Tt Atom = 0x6802 + Type Atom = 0xd904 + Typemustmatch Atom = 0x2830d + U Atom = 0xb01 + Ul Atom = 0xa702 + Updateviacache Atom = 0x460e + Usemap Atom = 0x58e06 + Value Atom = 0x1505 + Var Atom = 0x16d03 + Video Atom = 0x2e005 + Wbr Atom = 0x56c03 + Width Atom = 0x63e05 + Workertype Atom = 0x7210a + Wrap Atom = 0x72b04 + Xmp Atom = 0x12f03 +) + +const hash0 = 0x84f70e16 + +const maxAtomLen = 25 + +var table = [1 << 9]Atom{ + 0x1: 0x3ff08, // dropzone + 0x2: 0x3b08, // basefont + 0x3: 0x23209, // integrity + 0x4: 0x43106, // source + 0x5: 0x2c09, // accesskey + 0x6: 0x1a06, // accept + 0x7: 0x6c807, // onwheel + 0xb: 0x47407, // onkeyup + 0xc: 0x32007, // headers + 0xd: 0x67306, // scoped + 0xe: 0x67909, // onsuspend + 0xf: 0x8908, // noframes + 0x10: 0x1fa0b, // crossorigin + 0x11: 0x2e407, // onclick + 0x12: 0x3f405, // start + 0x13: 0x37a0b, // contextmenu + 0x14: 0x5e903, // src + 0x15: 0x1c404, // cols + 0x16: 0xbb06, // dialog + 0x17: 0x47a07, // preload + 0x18: 0x3c707, // itemref + 0x1b: 0x2f105, // image + 0x1d: 0x4ba09, // onloadend + 0x1e: 0x45d08, // download + 0x1f: 0x46a03, // pre + 0x23: 0x2970a, // formmethod + 0x24: 0x71303, // svg + 0x25: 0xcf01, // q + 0x26: 0x64002, // dt + 0x27: 0x1de08, // controls + 0x2a: 0x2804, // body + 0x2b: 0xd206, // strike + 0x2c: 0x3910b, // oncuechange + 0x2d: 0x4c30b, // onloadstart + 0x2e: 0x2fe07, // isindex + 0x2f: 0xb202, // li + 0x30: 0x1400b, // playsinline + 0x31: 0x34102, // mi + 0x32: 0x30806, // applet + 0x33: 0x4ce09, // onmessage + 0x35: 0x13702, // ol + 0x36: 0x1a304, // open + 0x39: 0x14d09, // oncanplay + 0x3a: 0x6bf09, // onwaiting + 0x3b: 0x11908, // oncancel + 0x3c: 0x6a908, // onunload + 0x3e: 0x53c09, // onoffline + 0x3f: 0x1a0e, // accept-charset + 0x40: 0x32004, // head + 0x42: 0x3ab09, // ondragend + 0x43: 0x1310b, // placeholder + 0x44: 0x2b30a, // formtarget + 0x45: 0x2540d, // foreignobject + 0x47: 0x400c, // ontimeupdate + 0x48: 0xdd0e, // allowusermedia + 0x4a: 0x69c0d, // onbeforeprint + 0x4b: 0x5604, // html + 0x4c: 0x9f04, // span + 0x4d: 0x64206, // hgroup + 0x4e: 0x16408, // disabled + 0x4f: 0x4204, // time + 0x51: 0x42b07, // onfocus + 0x53: 0xb00a, // malignmark + 0x55: 0x4650a, // onkeypress + 0x56: 0x55805, // class + 0x57: 0x1ab08, // colgroup + 0x58: 0x33709, // maxlength + 0x59: 0x5a908, // progress + 0x5b: 0x70405, // style + 0x5c: 0x2a10e, // formnovalidate + 0x5e: 0x38b06, // oncopy + 0x60: 0x26104, // form + 0x61: 0xf606, // footer + 0x64: 0x30a, // radiogroup + 0x66: 0xfb04, // ruby + 0x67: 0x4ff0b, // onmousemove + 0x68: 0x19d08, // itemprop + 0x69: 0x2d70a, // http-equiv + 0x6a: 0x15602, // th + 0x6c: 0x6e02, // em + 0x6d: 0x38108, // menuitem + 0x6e: 0x63106, // select + 0x6f: 0x48110, // onlanguagechange + 0x70: 0x31f05, // thead + 0x71: 0x15c02, // h1 + 0x72: 0x5e906, // srcdoc + 0x75: 0x9604, // name + 0x76: 0x19106, // button + 0x77: 0x55504, // desc + 0x78: 0x17704, // kind + 0x79: 0x1bf05, // color + 0x7c: 0x58e06, // usemap + 0x7d: 0x30e08, // itemtype + 0x7f: 0x6d508, // manifest + 0x81: 0x5300c, // onmousewheel + 0x82: 0x4dc0b, // onmousedown + 0x84: 0xc05, // param + 0x85: 0x2e005, // video + 0x86: 0x4910c, // onloadeddata + 0x87: 0x6f107, // address + 0x8c: 0xef04, // ping + 0x8d: 0x24703, // for + 0x8f: 0x62f08, // onselect + 0x90: 0x30703, // map + 0x92: 0xc01, // p + 0x93: 0x8008, // reversed + 0x94: 0x54d0a, // onpagehide + 0x95: 0x3206, // keygen + 0x96: 0x34109, // minlength + 0x97: 0x3e40a, // ondragover + 0x98: 0x42407, // onerror + 0x9a: 0x2107, // charset + 0x9b: 0x29b06, // method + 0x9c: 0x101, // b + 0x9d: 0x68208, // ontoggle + 0x9e: 0x2bd06, // hidden + 0xa0: 0x3f607, // article + 0xa2: 0x63906, // onshow + 0xa3: 0x64d06, // onsort + 0xa5: 0x57b0f, // contenteditable + 0xa6: 0x66908, // onsubmit + 0xa8: 0x44f09, // oninvalid + 0xaa: 0x202, // br + 0xab: 0x10902, // id + 0xac: 0x5d04, // loop + 0xad: 0x5630a, // onpageshow + 0xb0: 0x2cf04, // href + 0xb2: 0x2210a, // figcaption + 0xb3: 0x2690e, // onautocomplete + 0xb4: 0x49106, // onload + 0xb6: 0x9c04, // rows + 0xb7: 0x1a605, // nonce + 0xb8: 0x68a14, // onunhandledrejection + 0xbb: 0x21306, // center + 0xbc: 0x59406, // onplay + 0xbd: 0x33f02, // h5 + 0xbe: 0x49d07, // listing + 0xbf: 0x57606, // public + 0xc2: 0x23b06, // figure + 0xc3: 0x57a04, // icon + 0xc4: 0x1ab03, // col + 0xc5: 0x47b03, // rel + 0xc6: 0xe605, // media + 0xc7: 0x12109, // autofocus + 0xc8: 0x19a02, // rt + 0xca: 0x2d304, // lang + 0xcc: 0x49908, // datalist + 0xce: 0x2eb06, // iframe + 0xcf: 0x36105, // muted + 0xd0: 0x6140a, // onauxclick + 0xd2: 0x3c02, // as + 0xd6: 0x3fd06, // ondrop + 0xd7: 0x1c90a, // annotation + 0xd8: 0x21908, // fieldset + 0xdb: 0x2cf08, // hreflang + 0xdc: 0x4e70c, // onmouseenter + 0xdd: 0x2a402, // mn + 0xde: 0xe60a, // mediagroup + 0xdf: 0x9805, // meter + 0xe0: 0x56c03, // wbr + 0xe2: 0x63e05, // width + 0xe3: 0x2290c, // onafterprint + 0xe4: 0x30505, // ismap + 0xe5: 0x1505, // value + 0xe7: 0x1303, // nav + 0xe8: 0x54508, // ononline + 0xe9: 0xb604, // mark + 0xea: 0xc303, // low + 0xeb: 0x3ee0b, // ondragstart + 0xef: 0x12f03, // xmp + 0xf0: 0x22407, // caption + 0xf1: 0xd904, // type + 0xf2: 0x70907, // summary + 0xf3: 0x6802, // tt + 0xf4: 0x20809, // translate + 0xf5: 0x1870a, // blockquote + 0xf8: 0x15702, // hr + 0xfa: 0x2705, // tbody + 0xfc: 0x7b07, // picture + 0xfd: 0x5206, // height + 0xfe: 0x19c04, // cite + 0xff: 0x2501, // s + 0x101: 0xff05, // async + 0x102: 0x56f07, // onpaste + 0x103: 0x19507, // onabort + 0x104: 0x2b706, // target + 0x105: 0x14b03, // bdo + 0x106: 0x1f006, // coords + 0x107: 0x5e108, // onresize + 0x108: 0x71908, // template + 0x10a: 0x3a02, // rb + 0x10b: 0x2a50a, // novalidate + 0x10c: 0x460e, // updateviacache + 0x10d: 0x71003, // sup + 0x10e: 0x6c07, // noembed + 0x10f: 0x16b03, // div + 0x110: 0x6f707, // srclang + 0x111: 0x17a09, // draggable + 0x112: 0x67305, // scope + 0x113: 0x5905, // label + 0x114: 0x22f02, // rp + 0x115: 0x23f08, // required + 0x116: 0x3780d, // oncontextmenu + 0x117: 0x5e504, // size + 0x118: 0x5b00a, // spellcheck + 0x119: 0x3f04, // font + 0x11a: 0x9c07, // rowspan + 0x11b: 0x10a07, // default + 0x11d: 0x44307, // oninput + 0x11e: 0x38506, // itemid + 0x11f: 0x5ee04, // code + 0x120: 0xaa07, // acronym + 0x121: 0x3b04, // base + 0x125: 0x2470d, // foreignObject + 0x126: 0x2ca04, // high + 0x127: 0x3cb0e, // referrerpolicy + 0x128: 0x33703, // max + 0x129: 0x59d0a, // onpopstate + 0x12a: 0x2fc02, // h4 + 0x12b: 0x4ac04, // meta + 0x12c: 0x17305, // blink + 0x12e: 0x5f508, // onscroll + 0x12f: 0x59409, // onplaying + 0x130: 0xc113, // allowpaymentrequest + 0x131: 0x19a03, // rtc + 0x132: 0x72b04, // wrap + 0x134: 0x8b08, // frameset + 0x135: 0x32605, // small + 0x137: 0x32006, // header + 0x138: 0x40409, // onemptied + 0x139: 0x34902, // h6 + 0x13a: 0x35908, // multiple + 0x13c: 0x52a06, // prompt + 0x13f: 0x28e09, // challenge + 0x141: 0x4370c, // onhashchange + 0x142: 0x57b07, // content + 0x143: 0x1c90e, // annotation-xml + 0x144: 0x36607, // onclose + 0x145: 0x14d10, // oncanplaythrough + 0x148: 0x5170b, // onmouseover + 0x149: 0x64f08, // sortable + 0x14a: 0xa402, // mo + 0x14b: 0x2cd02, // h3 + 0x14c: 0x2c406, // script + 0x14d: 0x41d07, // onended + 0x14f: 0x64706, // poster + 0x150: 0x7210a, // workertype + 0x153: 0x1f505, // shape + 0x154: 0x4, // abbr + 0x155: 0x1, // a + 0x156: 0x2bf02, // dd + 0x157: 0x71606, // system + 0x158: 0x4ce0e, // onmessageerror + 0x159: 0x36b08, // seamless + 0x15a: 0x2610a, // formaction + 0x15b: 0x6e106, // option + 0x15c: 0x31d04, // math + 0x15d: 0x62609, // onseeking + 0x15e: 0x39c05, // oncut + 0x15f: 0x44c03, // del + 0x160: 0x11005, // title + 0x161: 0x11505, // audio + 0x162: 0x63108, // selected + 0x165: 0x3b40b, // ondragenter + 0x166: 0x46e06, // spacer + 0x167: 0x4a410, // onloadedmetadata + 0x168: 0x44505, // input + 0x16a: 0x58505, // table + 0x16b: 0x41508, // onchange + 0x16e: 0x5f005, // defer + 0x171: 0x50a0a, // onmouseout + 0x172: 0x20504, // slot + 0x175: 0x3704, // nobr + 0x177: 0x1d707, // command + 0x17a: 0x7207, // details + 0x17b: 0x38104, // menu + 0x17c: 0xb903, // kbd + 0x17d: 0x57304, // step + 0x17e: 0x20303, // ins + 0x17f: 0x13c08, // autoplay + 0x182: 0x34103, // min + 0x183: 0x17404, // link + 0x185: 0x40d10, // ondurationchange + 0x186: 0x9202, // td + 0x187: 0x8b05, // frame + 0x18a: 0x2ab08, // datetime + 0x18b: 0x44509, // inputmode + 0x18c: 0x35108, // readonly + 0x18d: 0x21104, // face + 0x18f: 0x5e505, // sizes + 0x191: 0x4b208, // tabindex + 0x192: 0x6db06, // strong + 0x193: 0xba03, // bdi + 0x194: 0x6fe06, // srcset + 0x196: 0x67202, // ms + 0x197: 0x5b507, // checked + 0x198: 0xb105, // align + 0x199: 0x1e507, // section + 0x19b: 0x6e05, // embed + 0x19d: 0x15e07, // bgsound + 0x1a2: 0x49d04, // list + 0x1a3: 0x61e08, // onseeked + 0x1a4: 0x66009, // onstorage + 0x1a5: 0x2f603, // img + 0x1a6: 0xf505, // tfoot + 0x1a9: 0x26913, // onautocompleteerror + 0x1aa: 0x5fd19, // onsecuritypolicyviolation + 0x1ad: 0x9303, // dir + 0x1ae: 0x9307, // dirname + 0x1b0: 0x5a70a, // onprogress + 0x1b2: 0x65709, // onstalled + 0x1b5: 0x66f09, // itemscope + 0x1b6: 0x49904, // data + 0x1b7: 0x3d90b, // ondragleave + 0x1b8: 0x56102, // h2 + 0x1b9: 0x2f706, // mglyph + 0x1ba: 0x16502, // is + 0x1bb: 0x6e50e, // onbeforeunload + 0x1bc: 0x2830d, // typemustmatch + 0x1bd: 0x3ab06, // ondrag + 0x1be: 0x5da07, // onreset + 0x1c0: 0x51106, // output + 0x1c1: 0x12907, // sandbox + 0x1c2: 0x1b209, // plaintext + 0x1c4: 0x34c08, // textarea + 0x1c7: 0xd607, // keytype + 0x1c8: 0x34b05, // mtext + 0x1c9: 0x6b10e, // onvolumechange + 0x1ca: 0x1ea06, // onblur + 0x1cb: 0x58a07, // onpause + 0x1cd: 0x5bc0c, // onratechange + 0x1ce: 0x10705, // aside + 0x1cf: 0x6cf07, // optimum + 0x1d1: 0x45809, // onkeydown + 0x1d2: 0x1c407, // colspan + 0x1d3: 0x1004, // main + 0x1d4: 0x66b03, // sub + 0x1d5: 0x25b06, // object + 0x1d6: 0x55c06, // search + 0x1d7: 0x37206, // sorted + 0x1d8: 0x17003, // big + 0x1d9: 0xb01, // u + 0x1db: 0x26b0c, // autocomplete + 0x1dc: 0xcc02, // tr + 0x1dd: 0xf303, // alt + 0x1df: 0x7804, // samp + 0x1e0: 0x5c812, // onrejectionhandled + 0x1e1: 0x4f30c, // onmouseleave + 0x1e2: 0x28007, // enctype + 0x1e3: 0xa208, // nomodule + 0x1e5: 0x3280f, // allowfullscreen + 0x1e6: 0x5f08, // optgroup + 0x1e8: 0x27c0b, // formenctype + 0x1e9: 0x18106, // legend + 0x1ea: 0x10306, // canvas + 0x1eb: 0x6607, // pattern + 0x1ec: 0x2c208, // noscript + 0x1ed: 0x601, // i + 0x1ee: 0x5d602, // dl + 0x1ef: 0xa702, // ul + 0x1f2: 0x52209, // onmouseup + 0x1f4: 0x1ba05, // track + 0x1f7: 0x3a10a, // ondblclick + 0x1f8: 0x3bf0a, // ondragexit + 0x1fa: 0x8703, // dfn + 0x1fc: 0x26506, // action + 0x1fd: 0x35004, // area + 0x1fe: 0x31607, // marquee + 0x1ff: 0x16d03, // var +} + +const atomText = "abbradiogrouparamainavalueaccept-charsetbodyaccesskeygenobrb" + + "asefontimeupdateviacacheightmlabelooptgroupatternoembedetail" + + "sampictureversedfnoframesetdirnameterowspanomoduleacronymali" + + "gnmarkbdialogallowpaymentrequestrikeytypeallowusermediagroup" + + "ingaltfooterubyasyncanvasidefaultitleaudioncancelautofocusan" + + "dboxmplaceholderautoplaysinlinebdoncanplaythrough1bgsoundisa" + + "bledivarbigblinkindraggablegendblockquotebuttonabortcitempro" + + "penoncecolgrouplaintextrackcolorcolspannotation-xmlcommandco" + + "ntrolsectionblurcoordshapecrossoriginslotranslatefacenterfie" + + "ldsetfigcaptionafterprintegrityfigurequiredforeignObjectfore" + + "ignobjectformactionautocompleteerrorformenctypemustmatchalle" + + "ngeformmethodformnovalidatetimeformtargethiddenoscripthigh3h" + + "reflanghttp-equivideonclickiframeimageimglyph4isindexismappl" + + "etitemtypemarqueematheadersmallowfullscreenmaxlength5minleng" + + "th6mtextareadonlymultiplemutedoncloseamlessortedoncontextmen" + + "uitemidoncopyoncuechangeoncutondblclickondragendondragentero" + + "ndragexitemreferrerpolicyondragleaveondragoverondragstarticl" + + "eondropzonemptiedondurationchangeonendedonerroronfocusourceo" + + "nhashchangeoninputmodeloninvalidonkeydownloadonkeypresspacer" + + "onkeyupreloadonlanguagechangeonloadeddatalistingonloadedmeta" + + "databindexonloadendonloadstartonmessageerroronmousedownonmou" + + "seenteronmouseleaveonmousemoveonmouseoutputonmouseoveronmous" + + "eupromptonmousewheelonofflineononlineonpagehidesclassearch2o" + + "npageshowbronpastepublicontenteditableonpausemaponplayingonp" + + "opstateonprogresspellcheckedonratechangeonrejectionhandledon" + + "resetonresizesrcdocodeferonscrollonsecuritypolicyviolationau" + + "xclickonseekedonseekingonselectedonshowidthgrouposteronsorta" + + "bleonstalledonstorageonsubmitemscopedonsuspendontoggleonunha" + + "ndledrejectionbeforeprintonunloadonvolumechangeonwaitingonwh" + + "eeloptimumanifestrongoptionbeforeunloaddressrclangsrcsetstyl" + + "esummarysupsvgsystemplateworkertypewrap" diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go new file mode 100644 index 0000000..ff7acf2 --- /dev/null +++ b/vendor/golang.org/x/net/html/const.go @@ -0,0 +1,111 @@ +// 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 html + +// Section 12.2.4.2 of the HTML5 specification says "The following elements +// have varying levels of special parsing rules". +// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements +var isSpecialElementMap = map[string]bool{ + "address": true, + "applet": true, + "area": true, + "article": true, + "aside": true, + "base": true, + "basefont": true, + "bgsound": true, + "blockquote": true, + "body": true, + "br": true, + "button": true, + "caption": true, + "center": true, + "col": true, + "colgroup": true, + "dd": true, + "details": true, + "dir": true, + "div": true, + "dl": true, + "dt": true, + "embed": true, + "fieldset": true, + "figcaption": true, + "figure": true, + "footer": true, + "form": true, + "frame": true, + "frameset": true, + "h1": true, + "h2": true, + "h3": true, + "h4": true, + "h5": true, + "h6": true, + "head": true, + "header": true, + "hgroup": true, + "hr": true, + "html": true, + "iframe": true, + "img": true, + "input": true, + "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility. + "li": true, + "link": true, + "listing": true, + "main": true, + "marquee": true, + "menu": true, + "meta": true, + "nav": true, + "noembed": true, + "noframes": true, + "noscript": true, + "object": true, + "ol": true, + "p": true, + "param": true, + "plaintext": true, + "pre": true, + "script": true, + "section": true, + "select": true, + "source": true, + "style": true, + "summary": true, + "table": true, + "tbody": true, + "td": true, + "template": true, + "textarea": true, + "tfoot": true, + "th": true, + "thead": true, + "title": true, + "tr": true, + "track": true, + "ul": true, + "wbr": true, + "xmp": true, +} + +func isSpecialElement(element *Node) bool { + switch element.Namespace { + case "", "html": + return isSpecialElementMap[element.Data] + case "math": + switch element.Data { + case "mi", "mo", "mn", "ms", "mtext", "annotation-xml": + return true + } + case "svg": + switch element.Data { + case "foreignObject", "desc", "title": + return true + } + } + return false +} diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go new file mode 100644 index 0000000..885c4c5 --- /dev/null +++ b/vendor/golang.org/x/net/html/doc.go @@ -0,0 +1,122 @@ +// 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 html implements an HTML5-compliant tokenizer and parser. + +Tokenization is done by creating a Tokenizer for an io.Reader r. It is the +caller's responsibility to ensure that r provides UTF-8 encoded HTML. + + z := html.NewTokenizer(r) + +Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(), +which parses the next token and returns its type, or an error: + + for { + tt := z.Next() + if tt == html.ErrorToken { + // ... + return ... + } + // Process the current token. + } + +There are two APIs for retrieving the current token. The high-level API is to +call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs +allow optionally calling Raw after Next but before Token, Text, TagName, or +TagAttr. In EBNF notation, the valid call sequence per token is: + + Next {Raw} [ Token | Text | TagName {TagAttr} ] + +Token returns an independent data structure that completely describes a token. +Entities (such as "<") are unescaped, tag names and attribute keys are +lower-cased, and attributes are collected into a []Attribute. For example: + + for { + if z.Next() == html.ErrorToken { + // Returning io.EOF indicates success. + return z.Err() + } + emitToken(z.Token()) + } + +The low-level API performs fewer allocations and copies, but the contents of +the []byte values returned by Text, TagName and TagAttr may change on the next +call to Next. For example, to extract an HTML page's anchor text: + + depth := 0 + for { + tt := z.Next() + switch tt { + case html.ErrorToken: + return z.Err() + case html.TextToken: + if depth > 0 { + // emitBytes should copy the []byte it receives, + // if it doesn't process it immediately. + emitBytes(z.Text()) + } + case html.StartTagToken, html.EndTagToken: + tn, _ := z.TagName() + if len(tn) == 1 && tn[0] == 'a' { + if tt == html.StartTagToken { + depth++ + } else { + depth-- + } + } + } + } + +Parsing is done by calling Parse with an io.Reader, which returns the root of +the parse tree (the document element) as a *Node. It is the caller's +responsibility to ensure that the Reader provides UTF-8 encoded HTML. For +example, to process each anchor node in depth-first order: + + doc, err := html.Parse(r) + if err != nil { + // ... + } + for n := range doc.Descendants() { + if n.Type == html.ElementNode && n.Data == "a" { + // Do something with n... + } + } + +The relevant specifications include: +https://html.spec.whatwg.org/multipage/syntax.html and +https://html.spec.whatwg.org/multipage/syntax.html#tokenization + +# Security Considerations + +Care should be taken when parsing and interpreting HTML, whether full documents +or fragments, within the framework of the HTML specification, especially with +regard to untrusted inputs. + +This package provides both a tokenizer and a parser, which implement the +tokenization, and tokenization and tree construction stages of the WHATWG HTML +parsing specification respectively. While the tokenizer parses and normalizes +individual HTML tokens, only the parser constructs the DOM tree from the +tokenized HTML, as described in the tree construction stage of the +specification, dynamically modifying or extending the document's DOM tree. + +If your use case requires semantically well-formed HTML documents, as defined by +the WHATWG specification, the parser should be used rather than the tokenizer. + +In security contexts, if trust decisions are being made using the tokenized or +parsed content, the input must be re-serialized (for instance by using Render or +Token.String) in order for those trust decisions to hold, as the process of +tokenization or parsing may alter the content. +*/ +package html // import "golang.org/x/net/html" + +// The tokenization algorithm implemented by this package is not a line-by-line +// transliteration of the relatively verbose state-machine in the WHATWG +// specification. A more direct approach is used instead, where the program +// counter implies the state, such as whether it is tokenizing a tag or a text +// node. Specification compliance is verified by checking expected and actual +// outputs over a test suite rather than aiming for algorithmic fidelity. + +// TODO(nigeltao): Does a DOM API belong in this package or a separate one? +// TODO(nigeltao): How does parsing interact with a JavaScript engine? diff --git a/vendor/golang.org/x/net/html/doctype.go b/vendor/golang.org/x/net/html/doctype.go new file mode 100644 index 0000000..bca3ae9 --- /dev/null +++ b/vendor/golang.org/x/net/html/doctype.go @@ -0,0 +1,156 @@ +// 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 html + +import ( + "strings" +) + +// parseDoctype parses the data from a DoctypeToken into a name, +// public identifier, and system identifier. It returns a Node whose Type +// is DoctypeNode, whose Data is the name, and which has attributes +// named "system" and "public" for the two identifiers if they were present. +// quirks is whether the document should be parsed in "quirks mode". +func parseDoctype(s string) (n *Node, quirks bool) { + n = &Node{Type: DoctypeNode} + + // Find the name. + space := strings.IndexAny(s, whitespace) + if space == -1 { + space = len(s) + } + n.Data = s[:space] + // The comparison to "html" is case-sensitive. + if n.Data != "html" { + quirks = true + } + n.Data = strings.ToLower(n.Data) + s = strings.TrimLeft(s[space:], whitespace) + + if len(s) < 6 { + // It can't start with "PUBLIC" or "SYSTEM". + // Ignore the rest of the string. + return n, quirks || s != "" + } + + key := strings.ToLower(s[:6]) + s = s[6:] + for key == "public" || key == "system" { + s = strings.TrimLeft(s, whitespace) + if s == "" { + break + } + quote := s[0] + if quote != '"' && quote != '\'' { + break + } + s = s[1:] + q := strings.IndexRune(s, rune(quote)) + var id string + if q == -1 { + id = s + s = "" + } else { + id = s[:q] + s = s[q+1:] + } + n.Attr = append(n.Attr, Attribute{Key: key, Val: id}) + if key == "public" { + key = "system" + } else { + key = "" + } + } + + if key != "" || s != "" { + quirks = true + } else if len(n.Attr) > 0 { + if n.Attr[0].Key == "public" { + public := strings.ToLower(n.Attr[0].Val) + switch public { + case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html": + quirks = true + default: + for _, q := range quirkyIDs { + if strings.HasPrefix(public, q) { + quirks = true + break + } + } + } + // The following two public IDs only cause quirks mode if there is no system ID. + if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") || + strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) { + quirks = true + } + } + if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" && + strings.EqualFold(lastAttr.Val, "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd") { + quirks = true + } + } + + return n, quirks +} + +// quirkyIDs is a list of public doctype identifiers that cause a document +// to be interpreted in quirks mode. The identifiers should be in lower case. +var quirkyIDs = []string{ + "+//silmaril//dtd html pro v0r11 19970101//", + "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", + "-//as//dtd html 3.0 aswedit + extensions//", + "-//ietf//dtd html 2.0 level 1//", + "-//ietf//dtd html 2.0 level 2//", + "-//ietf//dtd html 2.0 strict level 1//", + "-//ietf//dtd html 2.0 strict level 2//", + "-//ietf//dtd html 2.0 strict//", + "-//ietf//dtd html 2.0//", + "-//ietf//dtd html 2.1e//", + "-//ietf//dtd html 3.0//", + "-//ietf//dtd html 3.2 final//", + "-//ietf//dtd html 3.2//", + "-//ietf//dtd html 3//", + "-//ietf//dtd html level 0//", + "-//ietf//dtd html level 1//", + "-//ietf//dtd html level 2//", + "-//ietf//dtd html level 3//", + "-//ietf//dtd html strict level 0//", + "-//ietf//dtd html strict level 1//", + "-//ietf//dtd html strict level 2//", + "-//ietf//dtd html strict level 3//", + "-//ietf//dtd html strict//", + "-//ietf//dtd html//", + "-//metrius//dtd metrius presentational//", + "-//microsoft//dtd internet explorer 2.0 html strict//", + "-//microsoft//dtd internet explorer 2.0 html//", + "-//microsoft//dtd internet explorer 2.0 tables//", + "-//microsoft//dtd internet explorer 3.0 html strict//", + "-//microsoft//dtd internet explorer 3.0 html//", + "-//microsoft//dtd internet explorer 3.0 tables//", + "-//netscape comm. corp.//dtd html//", + "-//netscape comm. corp.//dtd strict html//", + "-//o'reilly and associates//dtd html 2.0//", + "-//o'reilly and associates//dtd html extended 1.0//", + "-//o'reilly and associates//dtd html extended relaxed 1.0//", + "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", + "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", + "-//spyglass//dtd html 2.0 extended//", + "-//sq//dtd html 2.0 hotmetal + extensions//", + "-//sun microsystems corp.//dtd hotjava html//", + "-//sun microsystems corp.//dtd hotjava strict html//", + "-//w3c//dtd html 3 1995-03-24//", + "-//w3c//dtd html 3.2 draft//", + "-//w3c//dtd html 3.2 final//", + "-//w3c//dtd html 3.2//", + "-//w3c//dtd html 3.2s draft//", + "-//w3c//dtd html 4.0 frameset//", + "-//w3c//dtd html 4.0 transitional//", + "-//w3c//dtd html experimental 19960712//", + "-//w3c//dtd html experimental 970421//", + "-//w3c//dtd w3 html//", + "-//w3o//dtd w3 html 3.0//", + "-//webtechs//dtd mozilla html 2.0//", + "-//webtechs//dtd mozilla html//", +} diff --git a/vendor/golang.org/x/net/html/entity.go b/vendor/golang.org/x/net/html/entity.go new file mode 100644 index 0000000..b628880 --- /dev/null +++ b/vendor/golang.org/x/net/html/entity.go @@ -0,0 +1,2253 @@ +// 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 html + +// All entities that do not end with ';' are 6 or fewer bytes long. +const longestEntityWithoutSemicolon = 6 + +// entity is a map from HTML entity names to their values. The semicolon matters: +// https://html.spec.whatwg.org/multipage/syntax.html#named-character-references +// lists both "amp" and "amp;" as two separate entries. +// +// Note that the HTML5 list is larger than the HTML4 list at +// http://www.w3.org/TR/html4/sgml/entities.html +var entity = map[string]rune{ + "AElig;": '\U000000C6', + "AMP;": '\U00000026', + "Aacute;": '\U000000C1', + "Abreve;": '\U00000102', + "Acirc;": '\U000000C2', + "Acy;": '\U00000410', + "Afr;": '\U0001D504', + "Agrave;": '\U000000C0', + "Alpha;": '\U00000391', + "Amacr;": '\U00000100', + "And;": '\U00002A53', + "Aogon;": '\U00000104', + "Aopf;": '\U0001D538', + "ApplyFunction;": '\U00002061', + "Aring;": '\U000000C5', + "Ascr;": '\U0001D49C', + "Assign;": '\U00002254', + "Atilde;": '\U000000C3', + "Auml;": '\U000000C4', + "Backslash;": '\U00002216', + "Barv;": '\U00002AE7', + "Barwed;": '\U00002306', + "Bcy;": '\U00000411', + "Because;": '\U00002235', + "Bernoullis;": '\U0000212C', + "Beta;": '\U00000392', + "Bfr;": '\U0001D505', + "Bopf;": '\U0001D539', + "Breve;": '\U000002D8', + "Bscr;": '\U0000212C', + "Bumpeq;": '\U0000224E', + "CHcy;": '\U00000427', + "COPY;": '\U000000A9', + "Cacute;": '\U00000106', + "Cap;": '\U000022D2', + "CapitalDifferentialD;": '\U00002145', + "Cayleys;": '\U0000212D', + "Ccaron;": '\U0000010C', + "Ccedil;": '\U000000C7', + "Ccirc;": '\U00000108', + "Cconint;": '\U00002230', + "Cdot;": '\U0000010A', + "Cedilla;": '\U000000B8', + "CenterDot;": '\U000000B7', + "Cfr;": '\U0000212D', + "Chi;": '\U000003A7', + "CircleDot;": '\U00002299', + "CircleMinus;": '\U00002296', + "CirclePlus;": '\U00002295', + "CircleTimes;": '\U00002297', + "ClockwiseContourIntegral;": '\U00002232', + "CloseCurlyDoubleQuote;": '\U0000201D', + "CloseCurlyQuote;": '\U00002019', + "Colon;": '\U00002237', + "Colone;": '\U00002A74', + "Congruent;": '\U00002261', + "Conint;": '\U0000222F', + "ContourIntegral;": '\U0000222E', + "Copf;": '\U00002102', + "Coproduct;": '\U00002210', + "CounterClockwiseContourIntegral;": '\U00002233', + "Cross;": '\U00002A2F', + "Cscr;": '\U0001D49E', + "Cup;": '\U000022D3', + "CupCap;": '\U0000224D', + "DD;": '\U00002145', + "DDotrahd;": '\U00002911', + "DJcy;": '\U00000402', + "DScy;": '\U00000405', + "DZcy;": '\U0000040F', + "Dagger;": '\U00002021', + "Darr;": '\U000021A1', + "Dashv;": '\U00002AE4', + "Dcaron;": '\U0000010E', + "Dcy;": '\U00000414', + "Del;": '\U00002207', + "Delta;": '\U00000394', + "Dfr;": '\U0001D507', + "DiacriticalAcute;": '\U000000B4', + "DiacriticalDot;": '\U000002D9', + "DiacriticalDoubleAcute;": '\U000002DD', + "DiacriticalGrave;": '\U00000060', + "DiacriticalTilde;": '\U000002DC', + "Diamond;": '\U000022C4', + "DifferentialD;": '\U00002146', + "Dopf;": '\U0001D53B', + "Dot;": '\U000000A8', + "DotDot;": '\U000020DC', + "DotEqual;": '\U00002250', + "DoubleContourIntegral;": '\U0000222F', + "DoubleDot;": '\U000000A8', + "DoubleDownArrow;": '\U000021D3', + "DoubleLeftArrow;": '\U000021D0', + "DoubleLeftRightArrow;": '\U000021D4', + "DoubleLeftTee;": '\U00002AE4', + "DoubleLongLeftArrow;": '\U000027F8', + "DoubleLongLeftRightArrow;": '\U000027FA', + "DoubleLongRightArrow;": '\U000027F9', + "DoubleRightArrow;": '\U000021D2', + "DoubleRightTee;": '\U000022A8', + "DoubleUpArrow;": '\U000021D1', + "DoubleUpDownArrow;": '\U000021D5', + "DoubleVerticalBar;": '\U00002225', + "DownArrow;": '\U00002193', + "DownArrowBar;": '\U00002913', + "DownArrowUpArrow;": '\U000021F5', + "DownBreve;": '\U00000311', + "DownLeftRightVector;": '\U00002950', + "DownLeftTeeVector;": '\U0000295E', + "DownLeftVector;": '\U000021BD', + "DownLeftVectorBar;": '\U00002956', + "DownRightTeeVector;": '\U0000295F', + "DownRightVector;": '\U000021C1', + "DownRightVectorBar;": '\U00002957', + "DownTee;": '\U000022A4', + "DownTeeArrow;": '\U000021A7', + "Downarrow;": '\U000021D3', + "Dscr;": '\U0001D49F', + "Dstrok;": '\U00000110', + "ENG;": '\U0000014A', + "ETH;": '\U000000D0', + "Eacute;": '\U000000C9', + "Ecaron;": '\U0000011A', + "Ecirc;": '\U000000CA', + "Ecy;": '\U0000042D', + "Edot;": '\U00000116', + "Efr;": '\U0001D508', + "Egrave;": '\U000000C8', + "Element;": '\U00002208', + "Emacr;": '\U00000112', + "EmptySmallSquare;": '\U000025FB', + "EmptyVerySmallSquare;": '\U000025AB', + "Eogon;": '\U00000118', + "Eopf;": '\U0001D53C', + "Epsilon;": '\U00000395', + "Equal;": '\U00002A75', + "EqualTilde;": '\U00002242', + "Equilibrium;": '\U000021CC', + "Escr;": '\U00002130', + "Esim;": '\U00002A73', + "Eta;": '\U00000397', + "Euml;": '\U000000CB', + "Exists;": '\U00002203', + "ExponentialE;": '\U00002147', + "Fcy;": '\U00000424', + "Ffr;": '\U0001D509', + "FilledSmallSquare;": '\U000025FC', + "FilledVerySmallSquare;": '\U000025AA', + "Fopf;": '\U0001D53D', + "ForAll;": '\U00002200', + "Fouriertrf;": '\U00002131', + "Fscr;": '\U00002131', + "GJcy;": '\U00000403', + "GT;": '\U0000003E', + "Gamma;": '\U00000393', + "Gammad;": '\U000003DC', + "Gbreve;": '\U0000011E', + "Gcedil;": '\U00000122', + "Gcirc;": '\U0000011C', + "Gcy;": '\U00000413', + "Gdot;": '\U00000120', + "Gfr;": '\U0001D50A', + "Gg;": '\U000022D9', + "Gopf;": '\U0001D53E', + "GreaterEqual;": '\U00002265', + "GreaterEqualLess;": '\U000022DB', + "GreaterFullEqual;": '\U00002267', + "GreaterGreater;": '\U00002AA2', + "GreaterLess;": '\U00002277', + "GreaterSlantEqual;": '\U00002A7E', + "GreaterTilde;": '\U00002273', + "Gscr;": '\U0001D4A2', + "Gt;": '\U0000226B', + "HARDcy;": '\U0000042A', + "Hacek;": '\U000002C7', + "Hat;": '\U0000005E', + "Hcirc;": '\U00000124', + "Hfr;": '\U0000210C', + "HilbertSpace;": '\U0000210B', + "Hopf;": '\U0000210D', + "HorizontalLine;": '\U00002500', + "Hscr;": '\U0000210B', + "Hstrok;": '\U00000126', + "HumpDownHump;": '\U0000224E', + "HumpEqual;": '\U0000224F', + "IEcy;": '\U00000415', + "IJlig;": '\U00000132', + "IOcy;": '\U00000401', + "Iacute;": '\U000000CD', + "Icirc;": '\U000000CE', + "Icy;": '\U00000418', + "Idot;": '\U00000130', + "Ifr;": '\U00002111', + "Igrave;": '\U000000CC', + "Im;": '\U00002111', + "Imacr;": '\U0000012A', + "ImaginaryI;": '\U00002148', + "Implies;": '\U000021D2', + "Int;": '\U0000222C', + "Integral;": '\U0000222B', + "Intersection;": '\U000022C2', + "InvisibleComma;": '\U00002063', + "InvisibleTimes;": '\U00002062', + "Iogon;": '\U0000012E', + "Iopf;": '\U0001D540', + "Iota;": '\U00000399', + "Iscr;": '\U00002110', + "Itilde;": '\U00000128', + "Iukcy;": '\U00000406', + "Iuml;": '\U000000CF', + "Jcirc;": '\U00000134', + "Jcy;": '\U00000419', + "Jfr;": '\U0001D50D', + "Jopf;": '\U0001D541', + "Jscr;": '\U0001D4A5', + "Jsercy;": '\U00000408', + "Jukcy;": '\U00000404', + "KHcy;": '\U00000425', + "KJcy;": '\U0000040C', + "Kappa;": '\U0000039A', + "Kcedil;": '\U00000136', + "Kcy;": '\U0000041A', + "Kfr;": '\U0001D50E', + "Kopf;": '\U0001D542', + "Kscr;": '\U0001D4A6', + "LJcy;": '\U00000409', + "LT;": '\U0000003C', + "Lacute;": '\U00000139', + "Lambda;": '\U0000039B', + "Lang;": '\U000027EA', + "Laplacetrf;": '\U00002112', + "Larr;": '\U0000219E', + "Lcaron;": '\U0000013D', + "Lcedil;": '\U0000013B', + "Lcy;": '\U0000041B', + "LeftAngleBracket;": '\U000027E8', + "LeftArrow;": '\U00002190', + "LeftArrowBar;": '\U000021E4', + "LeftArrowRightArrow;": '\U000021C6', + "LeftCeiling;": '\U00002308', + "LeftDoubleBracket;": '\U000027E6', + "LeftDownTeeVector;": '\U00002961', + "LeftDownVector;": '\U000021C3', + "LeftDownVectorBar;": '\U00002959', + "LeftFloor;": '\U0000230A', + "LeftRightArrow;": '\U00002194', + "LeftRightVector;": '\U0000294E', + "LeftTee;": '\U000022A3', + "LeftTeeArrow;": '\U000021A4', + "LeftTeeVector;": '\U0000295A', + "LeftTriangle;": '\U000022B2', + "LeftTriangleBar;": '\U000029CF', + "LeftTriangleEqual;": '\U000022B4', + "LeftUpDownVector;": '\U00002951', + "LeftUpTeeVector;": '\U00002960', + "LeftUpVector;": '\U000021BF', + "LeftUpVectorBar;": '\U00002958', + "LeftVector;": '\U000021BC', + "LeftVectorBar;": '\U00002952', + "Leftarrow;": '\U000021D0', + "Leftrightarrow;": '\U000021D4', + "LessEqualGreater;": '\U000022DA', + "LessFullEqual;": '\U00002266', + "LessGreater;": '\U00002276', + "LessLess;": '\U00002AA1', + "LessSlantEqual;": '\U00002A7D', + "LessTilde;": '\U00002272', + "Lfr;": '\U0001D50F', + "Ll;": '\U000022D8', + "Lleftarrow;": '\U000021DA', + "Lmidot;": '\U0000013F', + "LongLeftArrow;": '\U000027F5', + "LongLeftRightArrow;": '\U000027F7', + "LongRightArrow;": '\U000027F6', + "Longleftarrow;": '\U000027F8', + "Longleftrightarrow;": '\U000027FA', + "Longrightarrow;": '\U000027F9', + "Lopf;": '\U0001D543', + "LowerLeftArrow;": '\U00002199', + "LowerRightArrow;": '\U00002198', + "Lscr;": '\U00002112', + "Lsh;": '\U000021B0', + "Lstrok;": '\U00000141', + "Lt;": '\U0000226A', + "Map;": '\U00002905', + "Mcy;": '\U0000041C', + "MediumSpace;": '\U0000205F', + "Mellintrf;": '\U00002133', + "Mfr;": '\U0001D510', + "MinusPlus;": '\U00002213', + "Mopf;": '\U0001D544', + "Mscr;": '\U00002133', + "Mu;": '\U0000039C', + "NJcy;": '\U0000040A', + "Nacute;": '\U00000143', + "Ncaron;": '\U00000147', + "Ncedil;": '\U00000145', + "Ncy;": '\U0000041D', + "NegativeMediumSpace;": '\U0000200B', + "NegativeThickSpace;": '\U0000200B', + "NegativeThinSpace;": '\U0000200B', + "NegativeVeryThinSpace;": '\U0000200B', + "NestedGreaterGreater;": '\U0000226B', + "NestedLessLess;": '\U0000226A', + "NewLine;": '\U0000000A', + "Nfr;": '\U0001D511', + "NoBreak;": '\U00002060', + "NonBreakingSpace;": '\U000000A0', + "Nopf;": '\U00002115', + "Not;": '\U00002AEC', + "NotCongruent;": '\U00002262', + "NotCupCap;": '\U0000226D', + "NotDoubleVerticalBar;": '\U00002226', + "NotElement;": '\U00002209', + "NotEqual;": '\U00002260', + "NotExists;": '\U00002204', + "NotGreater;": '\U0000226F', + "NotGreaterEqual;": '\U00002271', + "NotGreaterLess;": '\U00002279', + "NotGreaterTilde;": '\U00002275', + "NotLeftTriangle;": '\U000022EA', + "NotLeftTriangleEqual;": '\U000022EC', + "NotLess;": '\U0000226E', + "NotLessEqual;": '\U00002270', + "NotLessGreater;": '\U00002278', + "NotLessTilde;": '\U00002274', + "NotPrecedes;": '\U00002280', + "NotPrecedesSlantEqual;": '\U000022E0', + "NotReverseElement;": '\U0000220C', + "NotRightTriangle;": '\U000022EB', + "NotRightTriangleEqual;": '\U000022ED', + "NotSquareSubsetEqual;": '\U000022E2', + "NotSquareSupersetEqual;": '\U000022E3', + "NotSubsetEqual;": '\U00002288', + "NotSucceeds;": '\U00002281', + "NotSucceedsSlantEqual;": '\U000022E1', + "NotSupersetEqual;": '\U00002289', + "NotTilde;": '\U00002241', + "NotTildeEqual;": '\U00002244', + "NotTildeFullEqual;": '\U00002247', + "NotTildeTilde;": '\U00002249', + "NotVerticalBar;": '\U00002224', + "Nscr;": '\U0001D4A9', + "Ntilde;": '\U000000D1', + "Nu;": '\U0000039D', + "OElig;": '\U00000152', + "Oacute;": '\U000000D3', + "Ocirc;": '\U000000D4', + "Ocy;": '\U0000041E', + "Odblac;": '\U00000150', + "Ofr;": '\U0001D512', + "Ograve;": '\U000000D2', + "Omacr;": '\U0000014C', + "Omega;": '\U000003A9', + "Omicron;": '\U0000039F', + "Oopf;": '\U0001D546', + "OpenCurlyDoubleQuote;": '\U0000201C', + "OpenCurlyQuote;": '\U00002018', + "Or;": '\U00002A54', + "Oscr;": '\U0001D4AA', + "Oslash;": '\U000000D8', + "Otilde;": '\U000000D5', + "Otimes;": '\U00002A37', + "Ouml;": '\U000000D6', + "OverBar;": '\U0000203E', + "OverBrace;": '\U000023DE', + "OverBracket;": '\U000023B4', + "OverParenthesis;": '\U000023DC', + "PartialD;": '\U00002202', + "Pcy;": '\U0000041F', + "Pfr;": '\U0001D513', + "Phi;": '\U000003A6', + "Pi;": '\U000003A0', + "PlusMinus;": '\U000000B1', + "Poincareplane;": '\U0000210C', + "Popf;": '\U00002119', + "Pr;": '\U00002ABB', + "Precedes;": '\U0000227A', + "PrecedesEqual;": '\U00002AAF', + "PrecedesSlantEqual;": '\U0000227C', + "PrecedesTilde;": '\U0000227E', + "Prime;": '\U00002033', + "Product;": '\U0000220F', + "Proportion;": '\U00002237', + "Proportional;": '\U0000221D', + "Pscr;": '\U0001D4AB', + "Psi;": '\U000003A8', + "QUOT;": '\U00000022', + "Qfr;": '\U0001D514', + "Qopf;": '\U0000211A', + "Qscr;": '\U0001D4AC', + "RBarr;": '\U00002910', + "REG;": '\U000000AE', + "Racute;": '\U00000154', + "Rang;": '\U000027EB', + "Rarr;": '\U000021A0', + "Rarrtl;": '\U00002916', + "Rcaron;": '\U00000158', + "Rcedil;": '\U00000156', + "Rcy;": '\U00000420', + "Re;": '\U0000211C', + "ReverseElement;": '\U0000220B', + "ReverseEquilibrium;": '\U000021CB', + "ReverseUpEquilibrium;": '\U0000296F', + "Rfr;": '\U0000211C', + "Rho;": '\U000003A1', + "RightAngleBracket;": '\U000027E9', + "RightArrow;": '\U00002192', + "RightArrowBar;": '\U000021E5', + "RightArrowLeftArrow;": '\U000021C4', + "RightCeiling;": '\U00002309', + "RightDoubleBracket;": '\U000027E7', + "RightDownTeeVector;": '\U0000295D', + "RightDownVector;": '\U000021C2', + "RightDownVectorBar;": '\U00002955', + "RightFloor;": '\U0000230B', + "RightTee;": '\U000022A2', + "RightTeeArrow;": '\U000021A6', + "RightTeeVector;": '\U0000295B', + "RightTriangle;": '\U000022B3', + "RightTriangleBar;": '\U000029D0', + "RightTriangleEqual;": '\U000022B5', + "RightUpDownVector;": '\U0000294F', + "RightUpTeeVector;": '\U0000295C', + "RightUpVector;": '\U000021BE', + "RightUpVectorBar;": '\U00002954', + "RightVector;": '\U000021C0', + "RightVectorBar;": '\U00002953', + "Rightarrow;": '\U000021D2', + "Ropf;": '\U0000211D', + "RoundImplies;": '\U00002970', + "Rrightarrow;": '\U000021DB', + "Rscr;": '\U0000211B', + "Rsh;": '\U000021B1', + "RuleDelayed;": '\U000029F4', + "SHCHcy;": '\U00000429', + "SHcy;": '\U00000428', + "SOFTcy;": '\U0000042C', + "Sacute;": '\U0000015A', + "Sc;": '\U00002ABC', + "Scaron;": '\U00000160', + "Scedil;": '\U0000015E', + "Scirc;": '\U0000015C', + "Scy;": '\U00000421', + "Sfr;": '\U0001D516', + "ShortDownArrow;": '\U00002193', + "ShortLeftArrow;": '\U00002190', + "ShortRightArrow;": '\U00002192', + "ShortUpArrow;": '\U00002191', + "Sigma;": '\U000003A3', + "SmallCircle;": '\U00002218', + "Sopf;": '\U0001D54A', + "Sqrt;": '\U0000221A', + "Square;": '\U000025A1', + "SquareIntersection;": '\U00002293', + "SquareSubset;": '\U0000228F', + "SquareSubsetEqual;": '\U00002291', + "SquareSuperset;": '\U00002290', + "SquareSupersetEqual;": '\U00002292', + "SquareUnion;": '\U00002294', + "Sscr;": '\U0001D4AE', + "Star;": '\U000022C6', + "Sub;": '\U000022D0', + "Subset;": '\U000022D0', + "SubsetEqual;": '\U00002286', + "Succeeds;": '\U0000227B', + "SucceedsEqual;": '\U00002AB0', + "SucceedsSlantEqual;": '\U0000227D', + "SucceedsTilde;": '\U0000227F', + "SuchThat;": '\U0000220B', + "Sum;": '\U00002211', + "Sup;": '\U000022D1', + "Superset;": '\U00002283', + "SupersetEqual;": '\U00002287', + "Supset;": '\U000022D1', + "THORN;": '\U000000DE', + "TRADE;": '\U00002122', + "TSHcy;": '\U0000040B', + "TScy;": '\U00000426', + "Tab;": '\U00000009', + "Tau;": '\U000003A4', + "Tcaron;": '\U00000164', + "Tcedil;": '\U00000162', + "Tcy;": '\U00000422', + "Tfr;": '\U0001D517', + "Therefore;": '\U00002234', + "Theta;": '\U00000398', + "ThinSpace;": '\U00002009', + "Tilde;": '\U0000223C', + "TildeEqual;": '\U00002243', + "TildeFullEqual;": '\U00002245', + "TildeTilde;": '\U00002248', + "Topf;": '\U0001D54B', + "TripleDot;": '\U000020DB', + "Tscr;": '\U0001D4AF', + "Tstrok;": '\U00000166', + "Uacute;": '\U000000DA', + "Uarr;": '\U0000219F', + "Uarrocir;": '\U00002949', + "Ubrcy;": '\U0000040E', + "Ubreve;": '\U0000016C', + "Ucirc;": '\U000000DB', + "Ucy;": '\U00000423', + "Udblac;": '\U00000170', + "Ufr;": '\U0001D518', + "Ugrave;": '\U000000D9', + "Umacr;": '\U0000016A', + "UnderBar;": '\U0000005F', + "UnderBrace;": '\U000023DF', + "UnderBracket;": '\U000023B5', + "UnderParenthesis;": '\U000023DD', + "Union;": '\U000022C3', + "UnionPlus;": '\U0000228E', + "Uogon;": '\U00000172', + "Uopf;": '\U0001D54C', + "UpArrow;": '\U00002191', + "UpArrowBar;": '\U00002912', + "UpArrowDownArrow;": '\U000021C5', + "UpDownArrow;": '\U00002195', + "UpEquilibrium;": '\U0000296E', + "UpTee;": '\U000022A5', + "UpTeeArrow;": '\U000021A5', + "Uparrow;": '\U000021D1', + "Updownarrow;": '\U000021D5', + "UpperLeftArrow;": '\U00002196', + "UpperRightArrow;": '\U00002197', + "Upsi;": '\U000003D2', + "Upsilon;": '\U000003A5', + "Uring;": '\U0000016E', + "Uscr;": '\U0001D4B0', + "Utilde;": '\U00000168', + "Uuml;": '\U000000DC', + "VDash;": '\U000022AB', + "Vbar;": '\U00002AEB', + "Vcy;": '\U00000412', + "Vdash;": '\U000022A9', + "Vdashl;": '\U00002AE6', + "Vee;": '\U000022C1', + "Verbar;": '\U00002016', + "Vert;": '\U00002016', + "VerticalBar;": '\U00002223', + "VerticalLine;": '\U0000007C', + "VerticalSeparator;": '\U00002758', + "VerticalTilde;": '\U00002240', + "VeryThinSpace;": '\U0000200A', + "Vfr;": '\U0001D519', + "Vopf;": '\U0001D54D', + "Vscr;": '\U0001D4B1', + "Vvdash;": '\U000022AA', + "Wcirc;": '\U00000174', + "Wedge;": '\U000022C0', + "Wfr;": '\U0001D51A', + "Wopf;": '\U0001D54E', + "Wscr;": '\U0001D4B2', + "Xfr;": '\U0001D51B', + "Xi;": '\U0000039E', + "Xopf;": '\U0001D54F', + "Xscr;": '\U0001D4B3', + "YAcy;": '\U0000042F', + "YIcy;": '\U00000407', + "YUcy;": '\U0000042E', + "Yacute;": '\U000000DD', + "Ycirc;": '\U00000176', + "Ycy;": '\U0000042B', + "Yfr;": '\U0001D51C', + "Yopf;": '\U0001D550', + "Yscr;": '\U0001D4B4', + "Yuml;": '\U00000178', + "ZHcy;": '\U00000416', + "Zacute;": '\U00000179', + "Zcaron;": '\U0000017D', + "Zcy;": '\U00000417', + "Zdot;": '\U0000017B', + "ZeroWidthSpace;": '\U0000200B', + "Zeta;": '\U00000396', + "Zfr;": '\U00002128', + "Zopf;": '\U00002124', + "Zscr;": '\U0001D4B5', + "aacute;": '\U000000E1', + "abreve;": '\U00000103', + "ac;": '\U0000223E', + "acd;": '\U0000223F', + "acirc;": '\U000000E2', + "acute;": '\U000000B4', + "acy;": '\U00000430', + "aelig;": '\U000000E6', + "af;": '\U00002061', + "afr;": '\U0001D51E', + "agrave;": '\U000000E0', + "alefsym;": '\U00002135', + "aleph;": '\U00002135', + "alpha;": '\U000003B1', + "amacr;": '\U00000101', + "amalg;": '\U00002A3F', + "amp;": '\U00000026', + "and;": '\U00002227', + "andand;": '\U00002A55', + "andd;": '\U00002A5C', + "andslope;": '\U00002A58', + "andv;": '\U00002A5A', + "ang;": '\U00002220', + "ange;": '\U000029A4', + "angle;": '\U00002220', + "angmsd;": '\U00002221', + "angmsdaa;": '\U000029A8', + "angmsdab;": '\U000029A9', + "angmsdac;": '\U000029AA', + "angmsdad;": '\U000029AB', + "angmsdae;": '\U000029AC', + "angmsdaf;": '\U000029AD', + "angmsdag;": '\U000029AE', + "angmsdah;": '\U000029AF', + "angrt;": '\U0000221F', + "angrtvb;": '\U000022BE', + "angrtvbd;": '\U0000299D', + "angsph;": '\U00002222', + "angst;": '\U000000C5', + "angzarr;": '\U0000237C', + "aogon;": '\U00000105', + "aopf;": '\U0001D552', + "ap;": '\U00002248', + "apE;": '\U00002A70', + "apacir;": '\U00002A6F', + "ape;": '\U0000224A', + "apid;": '\U0000224B', + "apos;": '\U00000027', + "approx;": '\U00002248', + "approxeq;": '\U0000224A', + "aring;": '\U000000E5', + "ascr;": '\U0001D4B6', + "ast;": '\U0000002A', + "asymp;": '\U00002248', + "asympeq;": '\U0000224D', + "atilde;": '\U000000E3', + "auml;": '\U000000E4', + "awconint;": '\U00002233', + "awint;": '\U00002A11', + "bNot;": '\U00002AED', + "backcong;": '\U0000224C', + "backepsilon;": '\U000003F6', + "backprime;": '\U00002035', + "backsim;": '\U0000223D', + "backsimeq;": '\U000022CD', + "barvee;": '\U000022BD', + "barwed;": '\U00002305', + "barwedge;": '\U00002305', + "bbrk;": '\U000023B5', + "bbrktbrk;": '\U000023B6', + "bcong;": '\U0000224C', + "bcy;": '\U00000431', + "bdquo;": '\U0000201E', + "becaus;": '\U00002235', + "because;": '\U00002235', + "bemptyv;": '\U000029B0', + "bepsi;": '\U000003F6', + "bernou;": '\U0000212C', + "beta;": '\U000003B2', + "beth;": '\U00002136', + "between;": '\U0000226C', + "bfr;": '\U0001D51F', + "bigcap;": '\U000022C2', + "bigcirc;": '\U000025EF', + "bigcup;": '\U000022C3', + "bigodot;": '\U00002A00', + "bigoplus;": '\U00002A01', + "bigotimes;": '\U00002A02', + "bigsqcup;": '\U00002A06', + "bigstar;": '\U00002605', + "bigtriangledown;": '\U000025BD', + "bigtriangleup;": '\U000025B3', + "biguplus;": '\U00002A04', + "bigvee;": '\U000022C1', + "bigwedge;": '\U000022C0', + "bkarow;": '\U0000290D', + "blacklozenge;": '\U000029EB', + "blacksquare;": '\U000025AA', + "blacktriangle;": '\U000025B4', + "blacktriangledown;": '\U000025BE', + "blacktriangleleft;": '\U000025C2', + "blacktriangleright;": '\U000025B8', + "blank;": '\U00002423', + "blk12;": '\U00002592', + "blk14;": '\U00002591', + "blk34;": '\U00002593', + "block;": '\U00002588', + "bnot;": '\U00002310', + "bopf;": '\U0001D553', + "bot;": '\U000022A5', + "bottom;": '\U000022A5', + "bowtie;": '\U000022C8', + "boxDL;": '\U00002557', + "boxDR;": '\U00002554', + "boxDl;": '\U00002556', + "boxDr;": '\U00002553', + "boxH;": '\U00002550', + "boxHD;": '\U00002566', + "boxHU;": '\U00002569', + "boxHd;": '\U00002564', + "boxHu;": '\U00002567', + "boxUL;": '\U0000255D', + "boxUR;": '\U0000255A', + "boxUl;": '\U0000255C', + "boxUr;": '\U00002559', + "boxV;": '\U00002551', + "boxVH;": '\U0000256C', + "boxVL;": '\U00002563', + "boxVR;": '\U00002560', + "boxVh;": '\U0000256B', + "boxVl;": '\U00002562', + "boxVr;": '\U0000255F', + "boxbox;": '\U000029C9', + "boxdL;": '\U00002555', + "boxdR;": '\U00002552', + "boxdl;": '\U00002510', + "boxdr;": '\U0000250C', + "boxh;": '\U00002500', + "boxhD;": '\U00002565', + "boxhU;": '\U00002568', + "boxhd;": '\U0000252C', + "boxhu;": '\U00002534', + "boxminus;": '\U0000229F', + "boxplus;": '\U0000229E', + "boxtimes;": '\U000022A0', + "boxuL;": '\U0000255B', + "boxuR;": '\U00002558', + "boxul;": '\U00002518', + "boxur;": '\U00002514', + "boxv;": '\U00002502', + "boxvH;": '\U0000256A', + "boxvL;": '\U00002561', + "boxvR;": '\U0000255E', + "boxvh;": '\U0000253C', + "boxvl;": '\U00002524', + "boxvr;": '\U0000251C', + "bprime;": '\U00002035', + "breve;": '\U000002D8', + "brvbar;": '\U000000A6', + "bscr;": '\U0001D4B7', + "bsemi;": '\U0000204F', + "bsim;": '\U0000223D', + "bsime;": '\U000022CD', + "bsol;": '\U0000005C', + "bsolb;": '\U000029C5', + "bsolhsub;": '\U000027C8', + "bull;": '\U00002022', + "bullet;": '\U00002022', + "bump;": '\U0000224E', + "bumpE;": '\U00002AAE', + "bumpe;": '\U0000224F', + "bumpeq;": '\U0000224F', + "cacute;": '\U00000107', + "cap;": '\U00002229', + "capand;": '\U00002A44', + "capbrcup;": '\U00002A49', + "capcap;": '\U00002A4B', + "capcup;": '\U00002A47', + "capdot;": '\U00002A40', + "caret;": '\U00002041', + "caron;": '\U000002C7', + "ccaps;": '\U00002A4D', + "ccaron;": '\U0000010D', + "ccedil;": '\U000000E7', + "ccirc;": '\U00000109', + "ccups;": '\U00002A4C', + "ccupssm;": '\U00002A50', + "cdot;": '\U0000010B', + "cedil;": '\U000000B8', + "cemptyv;": '\U000029B2', + "cent;": '\U000000A2', + "centerdot;": '\U000000B7', + "cfr;": '\U0001D520', + "chcy;": '\U00000447', + "check;": '\U00002713', + "checkmark;": '\U00002713', + "chi;": '\U000003C7', + "cir;": '\U000025CB', + "cirE;": '\U000029C3', + "circ;": '\U000002C6', + "circeq;": '\U00002257', + "circlearrowleft;": '\U000021BA', + "circlearrowright;": '\U000021BB', + "circledR;": '\U000000AE', + "circledS;": '\U000024C8', + "circledast;": '\U0000229B', + "circledcirc;": '\U0000229A', + "circleddash;": '\U0000229D', + "cire;": '\U00002257', + "cirfnint;": '\U00002A10', + "cirmid;": '\U00002AEF', + "cirscir;": '\U000029C2', + "clubs;": '\U00002663', + "clubsuit;": '\U00002663', + "colon;": '\U0000003A', + "colone;": '\U00002254', + "coloneq;": '\U00002254', + "comma;": '\U0000002C', + "commat;": '\U00000040', + "comp;": '\U00002201', + "compfn;": '\U00002218', + "complement;": '\U00002201', + "complexes;": '\U00002102', + "cong;": '\U00002245', + "congdot;": '\U00002A6D', + "conint;": '\U0000222E', + "copf;": '\U0001D554', + "coprod;": '\U00002210', + "copy;": '\U000000A9', + "copysr;": '\U00002117', + "crarr;": '\U000021B5', + "cross;": '\U00002717', + "cscr;": '\U0001D4B8', + "csub;": '\U00002ACF', + "csube;": '\U00002AD1', + "csup;": '\U00002AD0', + "csupe;": '\U00002AD2', + "ctdot;": '\U000022EF', + "cudarrl;": '\U00002938', + "cudarrr;": '\U00002935', + "cuepr;": '\U000022DE', + "cuesc;": '\U000022DF', + "cularr;": '\U000021B6', + "cularrp;": '\U0000293D', + "cup;": '\U0000222A', + "cupbrcap;": '\U00002A48', + "cupcap;": '\U00002A46', + "cupcup;": '\U00002A4A', + "cupdot;": '\U0000228D', + "cupor;": '\U00002A45', + "curarr;": '\U000021B7', + "curarrm;": '\U0000293C', + "curlyeqprec;": '\U000022DE', + "curlyeqsucc;": '\U000022DF', + "curlyvee;": '\U000022CE', + "curlywedge;": '\U000022CF', + "curren;": '\U000000A4', + "curvearrowleft;": '\U000021B6', + "curvearrowright;": '\U000021B7', + "cuvee;": '\U000022CE', + "cuwed;": '\U000022CF', + "cwconint;": '\U00002232', + "cwint;": '\U00002231', + "cylcty;": '\U0000232D', + "dArr;": '\U000021D3', + "dHar;": '\U00002965', + "dagger;": '\U00002020', + "daleth;": '\U00002138', + "darr;": '\U00002193', + "dash;": '\U00002010', + "dashv;": '\U000022A3', + "dbkarow;": '\U0000290F', + "dblac;": '\U000002DD', + "dcaron;": '\U0000010F', + "dcy;": '\U00000434', + "dd;": '\U00002146', + "ddagger;": '\U00002021', + "ddarr;": '\U000021CA', + "ddotseq;": '\U00002A77', + "deg;": '\U000000B0', + "delta;": '\U000003B4', + "demptyv;": '\U000029B1', + "dfisht;": '\U0000297F', + "dfr;": '\U0001D521', + "dharl;": '\U000021C3', + "dharr;": '\U000021C2', + "diam;": '\U000022C4', + "diamond;": '\U000022C4', + "diamondsuit;": '\U00002666', + "diams;": '\U00002666', + "die;": '\U000000A8', + "digamma;": '\U000003DD', + "disin;": '\U000022F2', + "div;": '\U000000F7', + "divide;": '\U000000F7', + "divideontimes;": '\U000022C7', + "divonx;": '\U000022C7', + "djcy;": '\U00000452', + "dlcorn;": '\U0000231E', + "dlcrop;": '\U0000230D', + "dollar;": '\U00000024', + "dopf;": '\U0001D555', + "dot;": '\U000002D9', + "doteq;": '\U00002250', + "doteqdot;": '\U00002251', + "dotminus;": '\U00002238', + "dotplus;": '\U00002214', + "dotsquare;": '\U000022A1', + "doublebarwedge;": '\U00002306', + "downarrow;": '\U00002193', + "downdownarrows;": '\U000021CA', + "downharpoonleft;": '\U000021C3', + "downharpoonright;": '\U000021C2', + "drbkarow;": '\U00002910', + "drcorn;": '\U0000231F', + "drcrop;": '\U0000230C', + "dscr;": '\U0001D4B9', + "dscy;": '\U00000455', + "dsol;": '\U000029F6', + "dstrok;": '\U00000111', + "dtdot;": '\U000022F1', + "dtri;": '\U000025BF', + "dtrif;": '\U000025BE', + "duarr;": '\U000021F5', + "duhar;": '\U0000296F', + "dwangle;": '\U000029A6', + "dzcy;": '\U0000045F', + "dzigrarr;": '\U000027FF', + "eDDot;": '\U00002A77', + "eDot;": '\U00002251', + "eacute;": '\U000000E9', + "easter;": '\U00002A6E', + "ecaron;": '\U0000011B', + "ecir;": '\U00002256', + "ecirc;": '\U000000EA', + "ecolon;": '\U00002255', + "ecy;": '\U0000044D', + "edot;": '\U00000117', + "ee;": '\U00002147', + "efDot;": '\U00002252', + "efr;": '\U0001D522', + "eg;": '\U00002A9A', + "egrave;": '\U000000E8', + "egs;": '\U00002A96', + "egsdot;": '\U00002A98', + "el;": '\U00002A99', + "elinters;": '\U000023E7', + "ell;": '\U00002113', + "els;": '\U00002A95', + "elsdot;": '\U00002A97', + "emacr;": '\U00000113', + "empty;": '\U00002205', + "emptyset;": '\U00002205', + "emptyv;": '\U00002205', + "emsp;": '\U00002003', + "emsp13;": '\U00002004', + "emsp14;": '\U00002005', + "eng;": '\U0000014B', + "ensp;": '\U00002002', + "eogon;": '\U00000119', + "eopf;": '\U0001D556', + "epar;": '\U000022D5', + "eparsl;": '\U000029E3', + "eplus;": '\U00002A71', + "epsi;": '\U000003B5', + "epsilon;": '\U000003B5', + "epsiv;": '\U000003F5', + "eqcirc;": '\U00002256', + "eqcolon;": '\U00002255', + "eqsim;": '\U00002242', + "eqslantgtr;": '\U00002A96', + "eqslantless;": '\U00002A95', + "equals;": '\U0000003D', + "equest;": '\U0000225F', + "equiv;": '\U00002261', + "equivDD;": '\U00002A78', + "eqvparsl;": '\U000029E5', + "erDot;": '\U00002253', + "erarr;": '\U00002971', + "escr;": '\U0000212F', + "esdot;": '\U00002250', + "esim;": '\U00002242', + "eta;": '\U000003B7', + "eth;": '\U000000F0', + "euml;": '\U000000EB', + "euro;": '\U000020AC', + "excl;": '\U00000021', + "exist;": '\U00002203', + "expectation;": '\U00002130', + "exponentiale;": '\U00002147', + "fallingdotseq;": '\U00002252', + "fcy;": '\U00000444', + "female;": '\U00002640', + "ffilig;": '\U0000FB03', + "fflig;": '\U0000FB00', + "ffllig;": '\U0000FB04', + "ffr;": '\U0001D523', + "filig;": '\U0000FB01', + "flat;": '\U0000266D', + "fllig;": '\U0000FB02', + "fltns;": '\U000025B1', + "fnof;": '\U00000192', + "fopf;": '\U0001D557', + "forall;": '\U00002200', + "fork;": '\U000022D4', + "forkv;": '\U00002AD9', + "fpartint;": '\U00002A0D', + "frac12;": '\U000000BD', + "frac13;": '\U00002153', + "frac14;": '\U000000BC', + "frac15;": '\U00002155', + "frac16;": '\U00002159', + "frac18;": '\U0000215B', + "frac23;": '\U00002154', + "frac25;": '\U00002156', + "frac34;": '\U000000BE', + "frac35;": '\U00002157', + "frac38;": '\U0000215C', + "frac45;": '\U00002158', + "frac56;": '\U0000215A', + "frac58;": '\U0000215D', + "frac78;": '\U0000215E', + "frasl;": '\U00002044', + "frown;": '\U00002322', + "fscr;": '\U0001D4BB', + "gE;": '\U00002267', + "gEl;": '\U00002A8C', + "gacute;": '\U000001F5', + "gamma;": '\U000003B3', + "gammad;": '\U000003DD', + "gap;": '\U00002A86', + "gbreve;": '\U0000011F', + "gcirc;": '\U0000011D', + "gcy;": '\U00000433', + "gdot;": '\U00000121', + "ge;": '\U00002265', + "gel;": '\U000022DB', + "geq;": '\U00002265', + "geqq;": '\U00002267', + "geqslant;": '\U00002A7E', + "ges;": '\U00002A7E', + "gescc;": '\U00002AA9', + "gesdot;": '\U00002A80', + "gesdoto;": '\U00002A82', + "gesdotol;": '\U00002A84', + "gesles;": '\U00002A94', + "gfr;": '\U0001D524', + "gg;": '\U0000226B', + "ggg;": '\U000022D9', + "gimel;": '\U00002137', + "gjcy;": '\U00000453', + "gl;": '\U00002277', + "glE;": '\U00002A92', + "gla;": '\U00002AA5', + "glj;": '\U00002AA4', + "gnE;": '\U00002269', + "gnap;": '\U00002A8A', + "gnapprox;": '\U00002A8A', + "gne;": '\U00002A88', + "gneq;": '\U00002A88', + "gneqq;": '\U00002269', + "gnsim;": '\U000022E7', + "gopf;": '\U0001D558', + "grave;": '\U00000060', + "gscr;": '\U0000210A', + "gsim;": '\U00002273', + "gsime;": '\U00002A8E', + "gsiml;": '\U00002A90', + "gt;": '\U0000003E', + "gtcc;": '\U00002AA7', + "gtcir;": '\U00002A7A', + "gtdot;": '\U000022D7', + "gtlPar;": '\U00002995', + "gtquest;": '\U00002A7C', + "gtrapprox;": '\U00002A86', + "gtrarr;": '\U00002978', + "gtrdot;": '\U000022D7', + "gtreqless;": '\U000022DB', + "gtreqqless;": '\U00002A8C', + "gtrless;": '\U00002277', + "gtrsim;": '\U00002273', + "hArr;": '\U000021D4', + "hairsp;": '\U0000200A', + "half;": '\U000000BD', + "hamilt;": '\U0000210B', + "hardcy;": '\U0000044A', + "harr;": '\U00002194', + "harrcir;": '\U00002948', + "harrw;": '\U000021AD', + "hbar;": '\U0000210F', + "hcirc;": '\U00000125', + "hearts;": '\U00002665', + "heartsuit;": '\U00002665', + "hellip;": '\U00002026', + "hercon;": '\U000022B9', + "hfr;": '\U0001D525', + "hksearow;": '\U00002925', + "hkswarow;": '\U00002926', + "hoarr;": '\U000021FF', + "homtht;": '\U0000223B', + "hookleftarrow;": '\U000021A9', + "hookrightarrow;": '\U000021AA', + "hopf;": '\U0001D559', + "horbar;": '\U00002015', + "hscr;": '\U0001D4BD', + "hslash;": '\U0000210F', + "hstrok;": '\U00000127', + "hybull;": '\U00002043', + "hyphen;": '\U00002010', + "iacute;": '\U000000ED', + "ic;": '\U00002063', + "icirc;": '\U000000EE', + "icy;": '\U00000438', + "iecy;": '\U00000435', + "iexcl;": '\U000000A1', + "iff;": '\U000021D4', + "ifr;": '\U0001D526', + "igrave;": '\U000000EC', + "ii;": '\U00002148', + "iiiint;": '\U00002A0C', + "iiint;": '\U0000222D', + "iinfin;": '\U000029DC', + "iiota;": '\U00002129', + "ijlig;": '\U00000133', + "imacr;": '\U0000012B', + "image;": '\U00002111', + "imagline;": '\U00002110', + "imagpart;": '\U00002111', + "imath;": '\U00000131', + "imof;": '\U000022B7', + "imped;": '\U000001B5', + "in;": '\U00002208', + "incare;": '\U00002105', + "infin;": '\U0000221E', + "infintie;": '\U000029DD', + "inodot;": '\U00000131', + "int;": '\U0000222B', + "intcal;": '\U000022BA', + "integers;": '\U00002124', + "intercal;": '\U000022BA', + "intlarhk;": '\U00002A17', + "intprod;": '\U00002A3C', + "iocy;": '\U00000451', + "iogon;": '\U0000012F', + "iopf;": '\U0001D55A', + "iota;": '\U000003B9', + "iprod;": '\U00002A3C', + "iquest;": '\U000000BF', + "iscr;": '\U0001D4BE', + "isin;": '\U00002208', + "isinE;": '\U000022F9', + "isindot;": '\U000022F5', + "isins;": '\U000022F4', + "isinsv;": '\U000022F3', + "isinv;": '\U00002208', + "it;": '\U00002062', + "itilde;": '\U00000129', + "iukcy;": '\U00000456', + "iuml;": '\U000000EF', + "jcirc;": '\U00000135', + "jcy;": '\U00000439', + "jfr;": '\U0001D527', + "jmath;": '\U00000237', + "jopf;": '\U0001D55B', + "jscr;": '\U0001D4BF', + "jsercy;": '\U00000458', + "jukcy;": '\U00000454', + "kappa;": '\U000003BA', + "kappav;": '\U000003F0', + "kcedil;": '\U00000137', + "kcy;": '\U0000043A', + "kfr;": '\U0001D528', + "kgreen;": '\U00000138', + "khcy;": '\U00000445', + "kjcy;": '\U0000045C', + "kopf;": '\U0001D55C', + "kscr;": '\U0001D4C0', + "lAarr;": '\U000021DA', + "lArr;": '\U000021D0', + "lAtail;": '\U0000291B', + "lBarr;": '\U0000290E', + "lE;": '\U00002266', + "lEg;": '\U00002A8B', + "lHar;": '\U00002962', + "lacute;": '\U0000013A', + "laemptyv;": '\U000029B4', + "lagran;": '\U00002112', + "lambda;": '\U000003BB', + "lang;": '\U000027E8', + "langd;": '\U00002991', + "langle;": '\U000027E8', + "lap;": '\U00002A85', + "laquo;": '\U000000AB', + "larr;": '\U00002190', + "larrb;": '\U000021E4', + "larrbfs;": '\U0000291F', + "larrfs;": '\U0000291D', + "larrhk;": '\U000021A9', + "larrlp;": '\U000021AB', + "larrpl;": '\U00002939', + "larrsim;": '\U00002973', + "larrtl;": '\U000021A2', + "lat;": '\U00002AAB', + "latail;": '\U00002919', + "late;": '\U00002AAD', + "lbarr;": '\U0000290C', + "lbbrk;": '\U00002772', + "lbrace;": '\U0000007B', + "lbrack;": '\U0000005B', + "lbrke;": '\U0000298B', + "lbrksld;": '\U0000298F', + "lbrkslu;": '\U0000298D', + "lcaron;": '\U0000013E', + "lcedil;": '\U0000013C', + "lceil;": '\U00002308', + "lcub;": '\U0000007B', + "lcy;": '\U0000043B', + "ldca;": '\U00002936', + "ldquo;": '\U0000201C', + "ldquor;": '\U0000201E', + "ldrdhar;": '\U00002967', + "ldrushar;": '\U0000294B', + "ldsh;": '\U000021B2', + "le;": '\U00002264', + "leftarrow;": '\U00002190', + "leftarrowtail;": '\U000021A2', + "leftharpoondown;": '\U000021BD', + "leftharpoonup;": '\U000021BC', + "leftleftarrows;": '\U000021C7', + "leftrightarrow;": '\U00002194', + "leftrightarrows;": '\U000021C6', + "leftrightharpoons;": '\U000021CB', + "leftrightsquigarrow;": '\U000021AD', + "leftthreetimes;": '\U000022CB', + "leg;": '\U000022DA', + "leq;": '\U00002264', + "leqq;": '\U00002266', + "leqslant;": '\U00002A7D', + "les;": '\U00002A7D', + "lescc;": '\U00002AA8', + "lesdot;": '\U00002A7F', + "lesdoto;": '\U00002A81', + "lesdotor;": '\U00002A83', + "lesges;": '\U00002A93', + "lessapprox;": '\U00002A85', + "lessdot;": '\U000022D6', + "lesseqgtr;": '\U000022DA', + "lesseqqgtr;": '\U00002A8B', + "lessgtr;": '\U00002276', + "lesssim;": '\U00002272', + "lfisht;": '\U0000297C', + "lfloor;": '\U0000230A', + "lfr;": '\U0001D529', + "lg;": '\U00002276', + "lgE;": '\U00002A91', + "lhard;": '\U000021BD', + "lharu;": '\U000021BC', + "lharul;": '\U0000296A', + "lhblk;": '\U00002584', + "ljcy;": '\U00000459', + "ll;": '\U0000226A', + "llarr;": '\U000021C7', + "llcorner;": '\U0000231E', + "llhard;": '\U0000296B', + "lltri;": '\U000025FA', + "lmidot;": '\U00000140', + "lmoust;": '\U000023B0', + "lmoustache;": '\U000023B0', + "lnE;": '\U00002268', + "lnap;": '\U00002A89', + "lnapprox;": '\U00002A89', + "lne;": '\U00002A87', + "lneq;": '\U00002A87', + "lneqq;": '\U00002268', + "lnsim;": '\U000022E6', + "loang;": '\U000027EC', + "loarr;": '\U000021FD', + "lobrk;": '\U000027E6', + "longleftarrow;": '\U000027F5', + "longleftrightarrow;": '\U000027F7', + "longmapsto;": '\U000027FC', + "longrightarrow;": '\U000027F6', + "looparrowleft;": '\U000021AB', + "looparrowright;": '\U000021AC', + "lopar;": '\U00002985', + "lopf;": '\U0001D55D', + "loplus;": '\U00002A2D', + "lotimes;": '\U00002A34', + "lowast;": '\U00002217', + "lowbar;": '\U0000005F', + "loz;": '\U000025CA', + "lozenge;": '\U000025CA', + "lozf;": '\U000029EB', + "lpar;": '\U00000028', + "lparlt;": '\U00002993', + "lrarr;": '\U000021C6', + "lrcorner;": '\U0000231F', + "lrhar;": '\U000021CB', + "lrhard;": '\U0000296D', + "lrm;": '\U0000200E', + "lrtri;": '\U000022BF', + "lsaquo;": '\U00002039', + "lscr;": '\U0001D4C1', + "lsh;": '\U000021B0', + "lsim;": '\U00002272', + "lsime;": '\U00002A8D', + "lsimg;": '\U00002A8F', + "lsqb;": '\U0000005B', + "lsquo;": '\U00002018', + "lsquor;": '\U0000201A', + "lstrok;": '\U00000142', + "lt;": '\U0000003C', + "ltcc;": '\U00002AA6', + "ltcir;": '\U00002A79', + "ltdot;": '\U000022D6', + "lthree;": '\U000022CB', + "ltimes;": '\U000022C9', + "ltlarr;": '\U00002976', + "ltquest;": '\U00002A7B', + "ltrPar;": '\U00002996', + "ltri;": '\U000025C3', + "ltrie;": '\U000022B4', + "ltrif;": '\U000025C2', + "lurdshar;": '\U0000294A', + "luruhar;": '\U00002966', + "mDDot;": '\U0000223A', + "macr;": '\U000000AF', + "male;": '\U00002642', + "malt;": '\U00002720', + "maltese;": '\U00002720', + "map;": '\U000021A6', + "mapsto;": '\U000021A6', + "mapstodown;": '\U000021A7', + "mapstoleft;": '\U000021A4', + "mapstoup;": '\U000021A5', + "marker;": '\U000025AE', + "mcomma;": '\U00002A29', + "mcy;": '\U0000043C', + "mdash;": '\U00002014', + "measuredangle;": '\U00002221', + "mfr;": '\U0001D52A', + "mho;": '\U00002127', + "micro;": '\U000000B5', + "mid;": '\U00002223', + "midast;": '\U0000002A', + "midcir;": '\U00002AF0', + "middot;": '\U000000B7', + "minus;": '\U00002212', + "minusb;": '\U0000229F', + "minusd;": '\U00002238', + "minusdu;": '\U00002A2A', + "mlcp;": '\U00002ADB', + "mldr;": '\U00002026', + "mnplus;": '\U00002213', + "models;": '\U000022A7', + "mopf;": '\U0001D55E', + "mp;": '\U00002213', + "mscr;": '\U0001D4C2', + "mstpos;": '\U0000223E', + "mu;": '\U000003BC', + "multimap;": '\U000022B8', + "mumap;": '\U000022B8', + "nLeftarrow;": '\U000021CD', + "nLeftrightarrow;": '\U000021CE', + "nRightarrow;": '\U000021CF', + "nVDash;": '\U000022AF', + "nVdash;": '\U000022AE', + "nabla;": '\U00002207', + "nacute;": '\U00000144', + "nap;": '\U00002249', + "napos;": '\U00000149', + "napprox;": '\U00002249', + "natur;": '\U0000266E', + "natural;": '\U0000266E', + "naturals;": '\U00002115', + "nbsp;": '\U000000A0', + "ncap;": '\U00002A43', + "ncaron;": '\U00000148', + "ncedil;": '\U00000146', + "ncong;": '\U00002247', + "ncup;": '\U00002A42', + "ncy;": '\U0000043D', + "ndash;": '\U00002013', + "ne;": '\U00002260', + "neArr;": '\U000021D7', + "nearhk;": '\U00002924', + "nearr;": '\U00002197', + "nearrow;": '\U00002197', + "nequiv;": '\U00002262', + "nesear;": '\U00002928', + "nexist;": '\U00002204', + "nexists;": '\U00002204', + "nfr;": '\U0001D52B', + "nge;": '\U00002271', + "ngeq;": '\U00002271', + "ngsim;": '\U00002275', + "ngt;": '\U0000226F', + "ngtr;": '\U0000226F', + "nhArr;": '\U000021CE', + "nharr;": '\U000021AE', + "nhpar;": '\U00002AF2', + "ni;": '\U0000220B', + "nis;": '\U000022FC', + "nisd;": '\U000022FA', + "niv;": '\U0000220B', + "njcy;": '\U0000045A', + "nlArr;": '\U000021CD', + "nlarr;": '\U0000219A', + "nldr;": '\U00002025', + "nle;": '\U00002270', + "nleftarrow;": '\U0000219A', + "nleftrightarrow;": '\U000021AE', + "nleq;": '\U00002270', + "nless;": '\U0000226E', + "nlsim;": '\U00002274', + "nlt;": '\U0000226E', + "nltri;": '\U000022EA', + "nltrie;": '\U000022EC', + "nmid;": '\U00002224', + "nopf;": '\U0001D55F', + "not;": '\U000000AC', + "notin;": '\U00002209', + "notinva;": '\U00002209', + "notinvb;": '\U000022F7', + "notinvc;": '\U000022F6', + "notni;": '\U0000220C', + "notniva;": '\U0000220C', + "notnivb;": '\U000022FE', + "notnivc;": '\U000022FD', + "npar;": '\U00002226', + "nparallel;": '\U00002226', + "npolint;": '\U00002A14', + "npr;": '\U00002280', + "nprcue;": '\U000022E0', + "nprec;": '\U00002280', + "nrArr;": '\U000021CF', + "nrarr;": '\U0000219B', + "nrightarrow;": '\U0000219B', + "nrtri;": '\U000022EB', + "nrtrie;": '\U000022ED', + "nsc;": '\U00002281', + "nsccue;": '\U000022E1', + "nscr;": '\U0001D4C3', + "nshortmid;": '\U00002224', + "nshortparallel;": '\U00002226', + "nsim;": '\U00002241', + "nsime;": '\U00002244', + "nsimeq;": '\U00002244', + "nsmid;": '\U00002224', + "nspar;": '\U00002226', + "nsqsube;": '\U000022E2', + "nsqsupe;": '\U000022E3', + "nsub;": '\U00002284', + "nsube;": '\U00002288', + "nsubseteq;": '\U00002288', + "nsucc;": '\U00002281', + "nsup;": '\U00002285', + "nsupe;": '\U00002289', + "nsupseteq;": '\U00002289', + "ntgl;": '\U00002279', + "ntilde;": '\U000000F1', + "ntlg;": '\U00002278', + "ntriangleleft;": '\U000022EA', + "ntrianglelefteq;": '\U000022EC', + "ntriangleright;": '\U000022EB', + "ntrianglerighteq;": '\U000022ED', + "nu;": '\U000003BD', + "num;": '\U00000023', + "numero;": '\U00002116', + "numsp;": '\U00002007', + "nvDash;": '\U000022AD', + "nvHarr;": '\U00002904', + "nvdash;": '\U000022AC', + "nvinfin;": '\U000029DE', + "nvlArr;": '\U00002902', + "nvrArr;": '\U00002903', + "nwArr;": '\U000021D6', + "nwarhk;": '\U00002923', + "nwarr;": '\U00002196', + "nwarrow;": '\U00002196', + "nwnear;": '\U00002927', + "oS;": '\U000024C8', + "oacute;": '\U000000F3', + "oast;": '\U0000229B', + "ocir;": '\U0000229A', + "ocirc;": '\U000000F4', + "ocy;": '\U0000043E', + "odash;": '\U0000229D', + "odblac;": '\U00000151', + "odiv;": '\U00002A38', + "odot;": '\U00002299', + "odsold;": '\U000029BC', + "oelig;": '\U00000153', + "ofcir;": '\U000029BF', + "ofr;": '\U0001D52C', + "ogon;": '\U000002DB', + "ograve;": '\U000000F2', + "ogt;": '\U000029C1', + "ohbar;": '\U000029B5', + "ohm;": '\U000003A9', + "oint;": '\U0000222E', + "olarr;": '\U000021BA', + "olcir;": '\U000029BE', + "olcross;": '\U000029BB', + "oline;": '\U0000203E', + "olt;": '\U000029C0', + "omacr;": '\U0000014D', + "omega;": '\U000003C9', + "omicron;": '\U000003BF', + "omid;": '\U000029B6', + "ominus;": '\U00002296', + "oopf;": '\U0001D560', + "opar;": '\U000029B7', + "operp;": '\U000029B9', + "oplus;": '\U00002295', + "or;": '\U00002228', + "orarr;": '\U000021BB', + "ord;": '\U00002A5D', + "order;": '\U00002134', + "orderof;": '\U00002134', + "ordf;": '\U000000AA', + "ordm;": '\U000000BA', + "origof;": '\U000022B6', + "oror;": '\U00002A56', + "orslope;": '\U00002A57', + "orv;": '\U00002A5B', + "oscr;": '\U00002134', + "oslash;": '\U000000F8', + "osol;": '\U00002298', + "otilde;": '\U000000F5', + "otimes;": '\U00002297', + "otimesas;": '\U00002A36', + "ouml;": '\U000000F6', + "ovbar;": '\U0000233D', + "par;": '\U00002225', + "para;": '\U000000B6', + "parallel;": '\U00002225', + "parsim;": '\U00002AF3', + "parsl;": '\U00002AFD', + "part;": '\U00002202', + "pcy;": '\U0000043F', + "percnt;": '\U00000025', + "period;": '\U0000002E', + "permil;": '\U00002030', + "perp;": '\U000022A5', + "pertenk;": '\U00002031', + "pfr;": '\U0001D52D', + "phi;": '\U000003C6', + "phiv;": '\U000003D5', + "phmmat;": '\U00002133', + "phone;": '\U0000260E', + "pi;": '\U000003C0', + "pitchfork;": '\U000022D4', + "piv;": '\U000003D6', + "planck;": '\U0000210F', + "planckh;": '\U0000210E', + "plankv;": '\U0000210F', + "plus;": '\U0000002B', + "plusacir;": '\U00002A23', + "plusb;": '\U0000229E', + "pluscir;": '\U00002A22', + "plusdo;": '\U00002214', + "plusdu;": '\U00002A25', + "pluse;": '\U00002A72', + "plusmn;": '\U000000B1', + "plussim;": '\U00002A26', + "plustwo;": '\U00002A27', + "pm;": '\U000000B1', + "pointint;": '\U00002A15', + "popf;": '\U0001D561', + "pound;": '\U000000A3', + "pr;": '\U0000227A', + "prE;": '\U00002AB3', + "prap;": '\U00002AB7', + "prcue;": '\U0000227C', + "pre;": '\U00002AAF', + "prec;": '\U0000227A', + "precapprox;": '\U00002AB7', + "preccurlyeq;": '\U0000227C', + "preceq;": '\U00002AAF', + "precnapprox;": '\U00002AB9', + "precneqq;": '\U00002AB5', + "precnsim;": '\U000022E8', + "precsim;": '\U0000227E', + "prime;": '\U00002032', + "primes;": '\U00002119', + "prnE;": '\U00002AB5', + "prnap;": '\U00002AB9', + "prnsim;": '\U000022E8', + "prod;": '\U0000220F', + "profalar;": '\U0000232E', + "profline;": '\U00002312', + "profsurf;": '\U00002313', + "prop;": '\U0000221D', + "propto;": '\U0000221D', + "prsim;": '\U0000227E', + "prurel;": '\U000022B0', + "pscr;": '\U0001D4C5', + "psi;": '\U000003C8', + "puncsp;": '\U00002008', + "qfr;": '\U0001D52E', + "qint;": '\U00002A0C', + "qopf;": '\U0001D562', + "qprime;": '\U00002057', + "qscr;": '\U0001D4C6', + "quaternions;": '\U0000210D', + "quatint;": '\U00002A16', + "quest;": '\U0000003F', + "questeq;": '\U0000225F', + "quot;": '\U00000022', + "rAarr;": '\U000021DB', + "rArr;": '\U000021D2', + "rAtail;": '\U0000291C', + "rBarr;": '\U0000290F', + "rHar;": '\U00002964', + "racute;": '\U00000155', + "radic;": '\U0000221A', + "raemptyv;": '\U000029B3', + "rang;": '\U000027E9', + "rangd;": '\U00002992', + "range;": '\U000029A5', + "rangle;": '\U000027E9', + "raquo;": '\U000000BB', + "rarr;": '\U00002192', + "rarrap;": '\U00002975', + "rarrb;": '\U000021E5', + "rarrbfs;": '\U00002920', + "rarrc;": '\U00002933', + "rarrfs;": '\U0000291E', + "rarrhk;": '\U000021AA', + "rarrlp;": '\U000021AC', + "rarrpl;": '\U00002945', + "rarrsim;": '\U00002974', + "rarrtl;": '\U000021A3', + "rarrw;": '\U0000219D', + "ratail;": '\U0000291A', + "ratio;": '\U00002236', + "rationals;": '\U0000211A', + "rbarr;": '\U0000290D', + "rbbrk;": '\U00002773', + "rbrace;": '\U0000007D', + "rbrack;": '\U0000005D', + "rbrke;": '\U0000298C', + "rbrksld;": '\U0000298E', + "rbrkslu;": '\U00002990', + "rcaron;": '\U00000159', + "rcedil;": '\U00000157', + "rceil;": '\U00002309', + "rcub;": '\U0000007D', + "rcy;": '\U00000440', + "rdca;": '\U00002937', + "rdldhar;": '\U00002969', + "rdquo;": '\U0000201D', + "rdquor;": '\U0000201D', + "rdsh;": '\U000021B3', + "real;": '\U0000211C', + "realine;": '\U0000211B', + "realpart;": '\U0000211C', + "reals;": '\U0000211D', + "rect;": '\U000025AD', + "reg;": '\U000000AE', + "rfisht;": '\U0000297D', + "rfloor;": '\U0000230B', + "rfr;": '\U0001D52F', + "rhard;": '\U000021C1', + "rharu;": '\U000021C0', + "rharul;": '\U0000296C', + "rho;": '\U000003C1', + "rhov;": '\U000003F1', + "rightarrow;": '\U00002192', + "rightarrowtail;": '\U000021A3', + "rightharpoondown;": '\U000021C1', + "rightharpoonup;": '\U000021C0', + "rightleftarrows;": '\U000021C4', + "rightleftharpoons;": '\U000021CC', + "rightrightarrows;": '\U000021C9', + "rightsquigarrow;": '\U0000219D', + "rightthreetimes;": '\U000022CC', + "ring;": '\U000002DA', + "risingdotseq;": '\U00002253', + "rlarr;": '\U000021C4', + "rlhar;": '\U000021CC', + "rlm;": '\U0000200F', + "rmoust;": '\U000023B1', + "rmoustache;": '\U000023B1', + "rnmid;": '\U00002AEE', + "roang;": '\U000027ED', + "roarr;": '\U000021FE', + "robrk;": '\U000027E7', + "ropar;": '\U00002986', + "ropf;": '\U0001D563', + "roplus;": '\U00002A2E', + "rotimes;": '\U00002A35', + "rpar;": '\U00000029', + "rpargt;": '\U00002994', + "rppolint;": '\U00002A12', + "rrarr;": '\U000021C9', + "rsaquo;": '\U0000203A', + "rscr;": '\U0001D4C7', + "rsh;": '\U000021B1', + "rsqb;": '\U0000005D', + "rsquo;": '\U00002019', + "rsquor;": '\U00002019', + "rthree;": '\U000022CC', + "rtimes;": '\U000022CA', + "rtri;": '\U000025B9', + "rtrie;": '\U000022B5', + "rtrif;": '\U000025B8', + "rtriltri;": '\U000029CE', + "ruluhar;": '\U00002968', + "rx;": '\U0000211E', + "sacute;": '\U0000015B', + "sbquo;": '\U0000201A', + "sc;": '\U0000227B', + "scE;": '\U00002AB4', + "scap;": '\U00002AB8', + "scaron;": '\U00000161', + "sccue;": '\U0000227D', + "sce;": '\U00002AB0', + "scedil;": '\U0000015F', + "scirc;": '\U0000015D', + "scnE;": '\U00002AB6', + "scnap;": '\U00002ABA', + "scnsim;": '\U000022E9', + "scpolint;": '\U00002A13', + "scsim;": '\U0000227F', + "scy;": '\U00000441', + "sdot;": '\U000022C5', + "sdotb;": '\U000022A1', + "sdote;": '\U00002A66', + "seArr;": '\U000021D8', + "searhk;": '\U00002925', + "searr;": '\U00002198', + "searrow;": '\U00002198', + "sect;": '\U000000A7', + "semi;": '\U0000003B', + "seswar;": '\U00002929', + "setminus;": '\U00002216', + "setmn;": '\U00002216', + "sext;": '\U00002736', + "sfr;": '\U0001D530', + "sfrown;": '\U00002322', + "sharp;": '\U0000266F', + "shchcy;": '\U00000449', + "shcy;": '\U00000448', + "shortmid;": '\U00002223', + "shortparallel;": '\U00002225', + "shy;": '\U000000AD', + "sigma;": '\U000003C3', + "sigmaf;": '\U000003C2', + "sigmav;": '\U000003C2', + "sim;": '\U0000223C', + "simdot;": '\U00002A6A', + "sime;": '\U00002243', + "simeq;": '\U00002243', + "simg;": '\U00002A9E', + "simgE;": '\U00002AA0', + "siml;": '\U00002A9D', + "simlE;": '\U00002A9F', + "simne;": '\U00002246', + "simplus;": '\U00002A24', + "simrarr;": '\U00002972', + "slarr;": '\U00002190', + "smallsetminus;": '\U00002216', + "smashp;": '\U00002A33', + "smeparsl;": '\U000029E4', + "smid;": '\U00002223', + "smile;": '\U00002323', + "smt;": '\U00002AAA', + "smte;": '\U00002AAC', + "softcy;": '\U0000044C', + "sol;": '\U0000002F', + "solb;": '\U000029C4', + "solbar;": '\U0000233F', + "sopf;": '\U0001D564', + "spades;": '\U00002660', + "spadesuit;": '\U00002660', + "spar;": '\U00002225', + "sqcap;": '\U00002293', + "sqcup;": '\U00002294', + "sqsub;": '\U0000228F', + "sqsube;": '\U00002291', + "sqsubset;": '\U0000228F', + "sqsubseteq;": '\U00002291', + "sqsup;": '\U00002290', + "sqsupe;": '\U00002292', + "sqsupset;": '\U00002290', + "sqsupseteq;": '\U00002292', + "squ;": '\U000025A1', + "square;": '\U000025A1', + "squarf;": '\U000025AA', + "squf;": '\U000025AA', + "srarr;": '\U00002192', + "sscr;": '\U0001D4C8', + "ssetmn;": '\U00002216', + "ssmile;": '\U00002323', + "sstarf;": '\U000022C6', + "star;": '\U00002606', + "starf;": '\U00002605', + "straightepsilon;": '\U000003F5', + "straightphi;": '\U000003D5', + "strns;": '\U000000AF', + "sub;": '\U00002282', + "subE;": '\U00002AC5', + "subdot;": '\U00002ABD', + "sube;": '\U00002286', + "subedot;": '\U00002AC3', + "submult;": '\U00002AC1', + "subnE;": '\U00002ACB', + "subne;": '\U0000228A', + "subplus;": '\U00002ABF', + "subrarr;": '\U00002979', + "subset;": '\U00002282', + "subseteq;": '\U00002286', + "subseteqq;": '\U00002AC5', + "subsetneq;": '\U0000228A', + "subsetneqq;": '\U00002ACB', + "subsim;": '\U00002AC7', + "subsub;": '\U00002AD5', + "subsup;": '\U00002AD3', + "succ;": '\U0000227B', + "succapprox;": '\U00002AB8', + "succcurlyeq;": '\U0000227D', + "succeq;": '\U00002AB0', + "succnapprox;": '\U00002ABA', + "succneqq;": '\U00002AB6', + "succnsim;": '\U000022E9', + "succsim;": '\U0000227F', + "sum;": '\U00002211', + "sung;": '\U0000266A', + "sup;": '\U00002283', + "sup1;": '\U000000B9', + "sup2;": '\U000000B2', + "sup3;": '\U000000B3', + "supE;": '\U00002AC6', + "supdot;": '\U00002ABE', + "supdsub;": '\U00002AD8', + "supe;": '\U00002287', + "supedot;": '\U00002AC4', + "suphsol;": '\U000027C9', + "suphsub;": '\U00002AD7', + "suplarr;": '\U0000297B', + "supmult;": '\U00002AC2', + "supnE;": '\U00002ACC', + "supne;": '\U0000228B', + "supplus;": '\U00002AC0', + "supset;": '\U00002283', + "supseteq;": '\U00002287', + "supseteqq;": '\U00002AC6', + "supsetneq;": '\U0000228B', + "supsetneqq;": '\U00002ACC', + "supsim;": '\U00002AC8', + "supsub;": '\U00002AD4', + "supsup;": '\U00002AD6', + "swArr;": '\U000021D9', + "swarhk;": '\U00002926', + "swarr;": '\U00002199', + "swarrow;": '\U00002199', + "swnwar;": '\U0000292A', + "szlig;": '\U000000DF', + "target;": '\U00002316', + "tau;": '\U000003C4', + "tbrk;": '\U000023B4', + "tcaron;": '\U00000165', + "tcedil;": '\U00000163', + "tcy;": '\U00000442', + "tdot;": '\U000020DB', + "telrec;": '\U00002315', + "tfr;": '\U0001D531', + "there4;": '\U00002234', + "therefore;": '\U00002234', + "theta;": '\U000003B8', + "thetasym;": '\U000003D1', + "thetav;": '\U000003D1', + "thickapprox;": '\U00002248', + "thicksim;": '\U0000223C', + "thinsp;": '\U00002009', + "thkap;": '\U00002248', + "thksim;": '\U0000223C', + "thorn;": '\U000000FE', + "tilde;": '\U000002DC', + "times;": '\U000000D7', + "timesb;": '\U000022A0', + "timesbar;": '\U00002A31', + "timesd;": '\U00002A30', + "tint;": '\U0000222D', + "toea;": '\U00002928', + "top;": '\U000022A4', + "topbot;": '\U00002336', + "topcir;": '\U00002AF1', + "topf;": '\U0001D565', + "topfork;": '\U00002ADA', + "tosa;": '\U00002929', + "tprime;": '\U00002034', + "trade;": '\U00002122', + "triangle;": '\U000025B5', + "triangledown;": '\U000025BF', + "triangleleft;": '\U000025C3', + "trianglelefteq;": '\U000022B4', + "triangleq;": '\U0000225C', + "triangleright;": '\U000025B9', + "trianglerighteq;": '\U000022B5', + "tridot;": '\U000025EC', + "trie;": '\U0000225C', + "triminus;": '\U00002A3A', + "triplus;": '\U00002A39', + "trisb;": '\U000029CD', + "tritime;": '\U00002A3B', + "trpezium;": '\U000023E2', + "tscr;": '\U0001D4C9', + "tscy;": '\U00000446', + "tshcy;": '\U0000045B', + "tstrok;": '\U00000167', + "twixt;": '\U0000226C', + "twoheadleftarrow;": '\U0000219E', + "twoheadrightarrow;": '\U000021A0', + "uArr;": '\U000021D1', + "uHar;": '\U00002963', + "uacute;": '\U000000FA', + "uarr;": '\U00002191', + "ubrcy;": '\U0000045E', + "ubreve;": '\U0000016D', + "ucirc;": '\U000000FB', + "ucy;": '\U00000443', + "udarr;": '\U000021C5', + "udblac;": '\U00000171', + "udhar;": '\U0000296E', + "ufisht;": '\U0000297E', + "ufr;": '\U0001D532', + "ugrave;": '\U000000F9', + "uharl;": '\U000021BF', + "uharr;": '\U000021BE', + "uhblk;": '\U00002580', + "ulcorn;": '\U0000231C', + "ulcorner;": '\U0000231C', + "ulcrop;": '\U0000230F', + "ultri;": '\U000025F8', + "umacr;": '\U0000016B', + "uml;": '\U000000A8', + "uogon;": '\U00000173', + "uopf;": '\U0001D566', + "uparrow;": '\U00002191', + "updownarrow;": '\U00002195', + "upharpoonleft;": '\U000021BF', + "upharpoonright;": '\U000021BE', + "uplus;": '\U0000228E', + "upsi;": '\U000003C5', + "upsih;": '\U000003D2', + "upsilon;": '\U000003C5', + "upuparrows;": '\U000021C8', + "urcorn;": '\U0000231D', + "urcorner;": '\U0000231D', + "urcrop;": '\U0000230E', + "uring;": '\U0000016F', + "urtri;": '\U000025F9', + "uscr;": '\U0001D4CA', + "utdot;": '\U000022F0', + "utilde;": '\U00000169', + "utri;": '\U000025B5', + "utrif;": '\U000025B4', + "uuarr;": '\U000021C8', + "uuml;": '\U000000FC', + "uwangle;": '\U000029A7', + "vArr;": '\U000021D5', + "vBar;": '\U00002AE8', + "vBarv;": '\U00002AE9', + "vDash;": '\U000022A8', + "vangrt;": '\U0000299C', + "varepsilon;": '\U000003F5', + "varkappa;": '\U000003F0', + "varnothing;": '\U00002205', + "varphi;": '\U000003D5', + "varpi;": '\U000003D6', + "varpropto;": '\U0000221D', + "varr;": '\U00002195', + "varrho;": '\U000003F1', + "varsigma;": '\U000003C2', + "vartheta;": '\U000003D1', + "vartriangleleft;": '\U000022B2', + "vartriangleright;": '\U000022B3', + "vcy;": '\U00000432', + "vdash;": '\U000022A2', + "vee;": '\U00002228', + "veebar;": '\U000022BB', + "veeeq;": '\U0000225A', + "vellip;": '\U000022EE', + "verbar;": '\U0000007C', + "vert;": '\U0000007C', + "vfr;": '\U0001D533', + "vltri;": '\U000022B2', + "vopf;": '\U0001D567', + "vprop;": '\U0000221D', + "vrtri;": '\U000022B3', + "vscr;": '\U0001D4CB', + "vzigzag;": '\U0000299A', + "wcirc;": '\U00000175', + "wedbar;": '\U00002A5F', + "wedge;": '\U00002227', + "wedgeq;": '\U00002259', + "weierp;": '\U00002118', + "wfr;": '\U0001D534', + "wopf;": '\U0001D568', + "wp;": '\U00002118', + "wr;": '\U00002240', + "wreath;": '\U00002240', + "wscr;": '\U0001D4CC', + "xcap;": '\U000022C2', + "xcirc;": '\U000025EF', + "xcup;": '\U000022C3', + "xdtri;": '\U000025BD', + "xfr;": '\U0001D535', + "xhArr;": '\U000027FA', + "xharr;": '\U000027F7', + "xi;": '\U000003BE', + "xlArr;": '\U000027F8', + "xlarr;": '\U000027F5', + "xmap;": '\U000027FC', + "xnis;": '\U000022FB', + "xodot;": '\U00002A00', + "xopf;": '\U0001D569', + "xoplus;": '\U00002A01', + "xotime;": '\U00002A02', + "xrArr;": '\U000027F9', + "xrarr;": '\U000027F6', + "xscr;": '\U0001D4CD', + "xsqcup;": '\U00002A06', + "xuplus;": '\U00002A04', + "xutri;": '\U000025B3', + "xvee;": '\U000022C1', + "xwedge;": '\U000022C0', + "yacute;": '\U000000FD', + "yacy;": '\U0000044F', + "ycirc;": '\U00000177', + "ycy;": '\U0000044B', + "yen;": '\U000000A5', + "yfr;": '\U0001D536', + "yicy;": '\U00000457', + "yopf;": '\U0001D56A', + "yscr;": '\U0001D4CE', + "yucy;": '\U0000044E', + "yuml;": '\U000000FF', + "zacute;": '\U0000017A', + "zcaron;": '\U0000017E', + "zcy;": '\U00000437', + "zdot;": '\U0000017C', + "zeetrf;": '\U00002128', + "zeta;": '\U000003B6', + "zfr;": '\U0001D537', + "zhcy;": '\U00000436', + "zigrarr;": '\U000021DD', + "zopf;": '\U0001D56B', + "zscr;": '\U0001D4CF', + "zwj;": '\U0000200D', + "zwnj;": '\U0000200C', + "AElig": '\U000000C6', + "AMP": '\U00000026', + "Aacute": '\U000000C1', + "Acirc": '\U000000C2', + "Agrave": '\U000000C0', + "Aring": '\U000000C5', + "Atilde": '\U000000C3', + "Auml": '\U000000C4', + "COPY": '\U000000A9', + "Ccedil": '\U000000C7', + "ETH": '\U000000D0', + "Eacute": '\U000000C9', + "Ecirc": '\U000000CA', + "Egrave": '\U000000C8', + "Euml": '\U000000CB', + "GT": '\U0000003E', + "Iacute": '\U000000CD', + "Icirc": '\U000000CE', + "Igrave": '\U000000CC', + "Iuml": '\U000000CF', + "LT": '\U0000003C', + "Ntilde": '\U000000D1', + "Oacute": '\U000000D3', + "Ocirc": '\U000000D4', + "Ograve": '\U000000D2', + "Oslash": '\U000000D8', + "Otilde": '\U000000D5', + "Ouml": '\U000000D6', + "QUOT": '\U00000022', + "REG": '\U000000AE', + "THORN": '\U000000DE', + "Uacute": '\U000000DA', + "Ucirc": '\U000000DB', + "Ugrave": '\U000000D9', + "Uuml": '\U000000DC', + "Yacute": '\U000000DD', + "aacute": '\U000000E1', + "acirc": '\U000000E2', + "acute": '\U000000B4', + "aelig": '\U000000E6', + "agrave": '\U000000E0', + "amp": '\U00000026', + "aring": '\U000000E5', + "atilde": '\U000000E3', + "auml": '\U000000E4', + "brvbar": '\U000000A6', + "ccedil": '\U000000E7', + "cedil": '\U000000B8', + "cent": '\U000000A2', + "copy": '\U000000A9', + "curren": '\U000000A4', + "deg": '\U000000B0', + "divide": '\U000000F7', + "eacute": '\U000000E9', + "ecirc": '\U000000EA', + "egrave": '\U000000E8', + "eth": '\U000000F0', + "euml": '\U000000EB', + "frac12": '\U000000BD', + "frac14": '\U000000BC', + "frac34": '\U000000BE', + "gt": '\U0000003E', + "iacute": '\U000000ED', + "icirc": '\U000000EE', + "iexcl": '\U000000A1', + "igrave": '\U000000EC', + "iquest": '\U000000BF', + "iuml": '\U000000EF', + "laquo": '\U000000AB', + "lt": '\U0000003C', + "macr": '\U000000AF', + "micro": '\U000000B5', + "middot": '\U000000B7', + "nbsp": '\U000000A0', + "not": '\U000000AC', + "ntilde": '\U000000F1', + "oacute": '\U000000F3', + "ocirc": '\U000000F4', + "ograve": '\U000000F2', + "ordf": '\U000000AA', + "ordm": '\U000000BA', + "oslash": '\U000000F8', + "otilde": '\U000000F5', + "ouml": '\U000000F6', + "para": '\U000000B6', + "plusmn": '\U000000B1', + "pound": '\U000000A3', + "quot": '\U00000022', + "raquo": '\U000000BB', + "reg": '\U000000AE', + "sect": '\U000000A7', + "shy": '\U000000AD', + "sup1": '\U000000B9', + "sup2": '\U000000B2', + "sup3": '\U000000B3', + "szlig": '\U000000DF', + "thorn": '\U000000FE', + "times": '\U000000D7', + "uacute": '\U000000FA', + "ucirc": '\U000000FB', + "ugrave": '\U000000F9', + "uml": '\U000000A8', + "uuml": '\U000000FC', + "yacute": '\U000000FD', + "yen": '\U000000A5', + "yuml": '\U000000FF', +} + +// HTML entities that are two unicode codepoints. +var entity2 = map[string][2]rune{ + // TODO(nigeltao): Handle replacements that are wider than their names. + // "nLt;": {'\u226A', '\u20D2'}, + // "nGt;": {'\u226B', '\u20D2'}, + "NotEqualTilde;": {'\u2242', '\u0338'}, + "NotGreaterFullEqual;": {'\u2267', '\u0338'}, + "NotGreaterGreater;": {'\u226B', '\u0338'}, + "NotGreaterSlantEqual;": {'\u2A7E', '\u0338'}, + "NotHumpDownHump;": {'\u224E', '\u0338'}, + "NotHumpEqual;": {'\u224F', '\u0338'}, + "NotLeftTriangleBar;": {'\u29CF', '\u0338'}, + "NotLessLess;": {'\u226A', '\u0338'}, + "NotLessSlantEqual;": {'\u2A7D', '\u0338'}, + "NotNestedGreaterGreater;": {'\u2AA2', '\u0338'}, + "NotNestedLessLess;": {'\u2AA1', '\u0338'}, + "NotPrecedesEqual;": {'\u2AAF', '\u0338'}, + "NotRightTriangleBar;": {'\u29D0', '\u0338'}, + "NotSquareSubset;": {'\u228F', '\u0338'}, + "NotSquareSuperset;": {'\u2290', '\u0338'}, + "NotSubset;": {'\u2282', '\u20D2'}, + "NotSucceedsEqual;": {'\u2AB0', '\u0338'}, + "NotSucceedsTilde;": {'\u227F', '\u0338'}, + "NotSuperset;": {'\u2283', '\u20D2'}, + "ThickSpace;": {'\u205F', '\u200A'}, + "acE;": {'\u223E', '\u0333'}, + "bne;": {'\u003D', '\u20E5'}, + "bnequiv;": {'\u2261', '\u20E5'}, + "caps;": {'\u2229', '\uFE00'}, + "cups;": {'\u222A', '\uFE00'}, + "fjlig;": {'\u0066', '\u006A'}, + "gesl;": {'\u22DB', '\uFE00'}, + "gvertneqq;": {'\u2269', '\uFE00'}, + "gvnE;": {'\u2269', '\uFE00'}, + "lates;": {'\u2AAD', '\uFE00'}, + "lesg;": {'\u22DA', '\uFE00'}, + "lvertneqq;": {'\u2268', '\uFE00'}, + "lvnE;": {'\u2268', '\uFE00'}, + "nGg;": {'\u22D9', '\u0338'}, + "nGtv;": {'\u226B', '\u0338'}, + "nLl;": {'\u22D8', '\u0338'}, + "nLtv;": {'\u226A', '\u0338'}, + "nang;": {'\u2220', '\u20D2'}, + "napE;": {'\u2A70', '\u0338'}, + "napid;": {'\u224B', '\u0338'}, + "nbump;": {'\u224E', '\u0338'}, + "nbumpe;": {'\u224F', '\u0338'}, + "ncongdot;": {'\u2A6D', '\u0338'}, + "nedot;": {'\u2250', '\u0338'}, + "nesim;": {'\u2242', '\u0338'}, + "ngE;": {'\u2267', '\u0338'}, + "ngeqq;": {'\u2267', '\u0338'}, + "ngeqslant;": {'\u2A7E', '\u0338'}, + "nges;": {'\u2A7E', '\u0338'}, + "nlE;": {'\u2266', '\u0338'}, + "nleqq;": {'\u2266', '\u0338'}, + "nleqslant;": {'\u2A7D', '\u0338'}, + "nles;": {'\u2A7D', '\u0338'}, + "notinE;": {'\u22F9', '\u0338'}, + "notindot;": {'\u22F5', '\u0338'}, + "nparsl;": {'\u2AFD', '\u20E5'}, + "npart;": {'\u2202', '\u0338'}, + "npre;": {'\u2AAF', '\u0338'}, + "npreceq;": {'\u2AAF', '\u0338'}, + "nrarrc;": {'\u2933', '\u0338'}, + "nrarrw;": {'\u219D', '\u0338'}, + "nsce;": {'\u2AB0', '\u0338'}, + "nsubE;": {'\u2AC5', '\u0338'}, + "nsubset;": {'\u2282', '\u20D2'}, + "nsubseteqq;": {'\u2AC5', '\u0338'}, + "nsucceq;": {'\u2AB0', '\u0338'}, + "nsupE;": {'\u2AC6', '\u0338'}, + "nsupset;": {'\u2283', '\u20D2'}, + "nsupseteqq;": {'\u2AC6', '\u0338'}, + "nvap;": {'\u224D', '\u20D2'}, + "nvge;": {'\u2265', '\u20D2'}, + "nvgt;": {'\u003E', '\u20D2'}, + "nvle;": {'\u2264', '\u20D2'}, + "nvlt;": {'\u003C', '\u20D2'}, + "nvltrie;": {'\u22B4', '\u20D2'}, + "nvrtrie;": {'\u22B5', '\u20D2'}, + "nvsim;": {'\u223C', '\u20D2'}, + "race;": {'\u223D', '\u0331'}, + "smtes;": {'\u2AAC', '\uFE00'}, + "sqcaps;": {'\u2293', '\uFE00'}, + "sqcups;": {'\u2294', '\uFE00'}, + "varsubsetneq;": {'\u228A', '\uFE00'}, + "varsubsetneqq;": {'\u2ACB', '\uFE00'}, + "varsupsetneq;": {'\u228B', '\uFE00'}, + "varsupsetneqq;": {'\u2ACC', '\uFE00'}, + "vnsub;": {'\u2282', '\u20D2'}, + "vnsup;": {'\u2283', '\u20D2'}, + "vsubnE;": {'\u2ACB', '\uFE00'}, + "vsubne;": {'\u228A', '\uFE00'}, + "vsupnE;": {'\u2ACC', '\uFE00'}, + "vsupne;": {'\u228B', '\uFE00'}, +} diff --git a/vendor/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go new file mode 100644 index 0000000..04c6bec --- /dev/null +++ b/vendor/golang.org/x/net/html/escape.go @@ -0,0 +1,339 @@ +// 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 html + +import ( + "bytes" + "strings" + "unicode/utf8" +) + +// These replacements permit compatibility with old numeric entities that +// assumed Windows-1252 encoding. +// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference +var replacementTable = [...]rune{ + '\u20AC', // First entry is what 0x80 should be replaced with. + '\u0081', + '\u201A', + '\u0192', + '\u201E', + '\u2026', + '\u2020', + '\u2021', + '\u02C6', + '\u2030', + '\u0160', + '\u2039', + '\u0152', + '\u008D', + '\u017D', + '\u008F', + '\u0090', + '\u2018', + '\u2019', + '\u201C', + '\u201D', + '\u2022', + '\u2013', + '\u2014', + '\u02DC', + '\u2122', + '\u0161', + '\u203A', + '\u0153', + '\u009D', + '\u017E', + '\u0178', // Last entry is 0x9F. + // 0x00->'\uFFFD' is handled programmatically. + // 0x0D->'\u000D' is a no-op. +} + +// unescapeEntity reads an entity like "<" from b[src:] and writes the +// corresponding "<" to b[dst:], returning the incremented dst and src cursors. +// Precondition: b[src] == '&' && dst <= src. +// attribute should be true if parsing an attribute value. +func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) { + // https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference + + // i starts at 1 because we already know that s[0] == '&'. + i, s := 1, b[src:] + + if len(s) <= 1 { + b[dst] = b[src] + return dst + 1, src + 1 + } + + if s[i] == '#' { + if len(s) <= 3 { // We need to have at least "&#.". + b[dst] = b[src] + return dst + 1, src + 1 + } + i++ + c := s[i] + hex := false + if c == 'x' || c == 'X' { + hex = true + i++ + } + + x := '\x00' + for i < len(s) { + c = s[i] + i++ + if hex { + if '0' <= c && c <= '9' { + x = 16*x + rune(c) - '0' + continue + } else if 'a' <= c && c <= 'f' { + x = 16*x + rune(c) - 'a' + 10 + continue + } else if 'A' <= c && c <= 'F' { + x = 16*x + rune(c) - 'A' + 10 + continue + } + } else if '0' <= c && c <= '9' { + x = 10*x + rune(c) - '0' + continue + } + if c != ';' { + i-- + } + break + } + + if i <= 3 { // No characters matched. + b[dst] = b[src] + return dst + 1, src + 1 + } + + if 0x80 <= x && x <= 0x9F { + // Replace characters from Windows-1252 with UTF-8 equivalents. + x = replacementTable[x-0x80] + } else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF { + // Replace invalid characters with the replacement character. + x = '\uFFFD' + } + + return dst + utf8.EncodeRune(b[dst:], x), src + i + } + + // Consume the maximum number of characters possible, with the + // consumed characters matching one of the named references. + + for i < len(s) { + c := s[i] + i++ + // Lower-cased characters are more common in entities, so we check for them first. + if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { + continue + } + if c != ';' { + i-- + } + break + } + + entityName := string(s[1:i]) + if entityName == "" { + // No-op. + } else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' { + // No-op. + } else if x := entity[entityName]; x != 0 { + return dst + utf8.EncodeRune(b[dst:], x), src + i + } else if x := entity2[entityName]; x[0] != 0 { + dst1 := dst + utf8.EncodeRune(b[dst:], x[0]) + return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i + } else if !attribute { + maxLen := len(entityName) - 1 + if maxLen > longestEntityWithoutSemicolon { + maxLen = longestEntityWithoutSemicolon + } + for j := maxLen; j > 1; j-- { + if x := entity[entityName[:j]]; x != 0 { + return dst + utf8.EncodeRune(b[dst:], x), src + j + 1 + } + } + } + + dst1, src1 = dst+i, src+i + copy(b[dst:dst1], b[src:src1]) + return dst1, src1 +} + +// unescape unescapes b's entities in-place, so that "a<b" becomes "a' byte that, per above, we'd like to avoid escaping unless we have to. +// +// Studying the summary table (and T actions in its '>' column) closely, we +// only need to escape in states 43, 44, 49, 51 and 52. State 43 is at the +// start of the comment data. State 52 is after a '!'. The other three states +// are after a '-'. +// +// Our algorithm is thus to escape every '&' and to escape '>' if and only if: +// - The '>' is after a '!' or '-' (in the unescaped data) or +// - The '>' is at the start of the comment data (after the opening ""); err != nil { + return err + } + return nil + case DoctypeNode: + if _, err := w.WriteString("') + case RawNode: + _, err := w.WriteString(n.Data) + return err + default: + return errors.New("html: unknown node type") + } + + // Render the opening tag. + if err := w.WriteByte('<'); err != nil { + return err + } + if _, err := w.WriteString(n.Data); err != nil { + return err + } + for _, a := range n.Attr { + if err := w.WriteByte(' '); err != nil { + return err + } + if a.Namespace != "" { + if _, err := w.WriteString(a.Namespace); err != nil { + return err + } + if err := w.WriteByte(':'); err != nil { + return err + } + } + if _, err := w.WriteString(a.Key); err != nil { + return err + } + if _, err := w.WriteString(`="`); err != nil { + return err + } + if err := escape(w, a.Val); err != nil { + return err + } + if err := w.WriteByte('"'); err != nil { + return err + } + } + if voidElements[n.Data] { + if n.FirstChild != nil { + return fmt.Errorf("html: void element <%s> has child nodes", n.Data) + } + _, err := w.WriteString("/>") + return err + } + if err := w.WriteByte('>'); err != nil { + return err + } + + // Add initial newline where there is danger of a newline beging ignored. + if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") { + switch n.Data { + case "pre", "listing", "textarea": + if err := w.WriteByte('\n'); err != nil { + return err + } + } + } + + // Render any child nodes + if childTextNodesAreLiteral(n) { + for c := n.FirstChild; c != nil; c = c.NextSibling { + if c.Type == TextNode { + if _, err := w.WriteString(c.Data); err != nil { + return err + } + } else { + if err := render1(w, c); err != nil { + return err + } + } + } + if n.Data == "plaintext" { + // Don't render anything else.

must be the + // last element in the file, with no closing tag. + return plaintextAbort + } + } else { + for c := n.FirstChild; c != nil; c = c.NextSibling { + if err := render1(w, c); err != nil { + return err + } + } + } + + // Render the </xxx> closing tag. + if _, err := w.WriteString("</"); err != nil { + return err + } + if _, err := w.WriteString(n.Data); err != nil { + return err + } + return w.WriteByte('>') +} + +func childTextNodesAreLiteral(n *Node) bool { + // Per WHATWG HTML 13.3, if the parent of the current node is a style, + // script, xmp, iframe, noembed, noframes, or plaintext element, and the + // current node is a text node, append the value of the node's data + // literally. The specification is not explicit about it, but we only + // enforce this if we are in the HTML namespace (i.e. when the namespace is + // ""). + // NOTE: we also always include noscript elements, although the + // specification states that they should only be rendered as such if + // scripting is enabled for the node (which is not something we track). + if n.Namespace != "" { + return false + } + switch n.Data { + case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": + return true + default: + return false + } +} + +// writeQuoted writes s to w surrounded by quotes. Normally it will use double +// quotes, but if s contains a double quote, it will use single quotes. +// It is used for writing the identifiers in a doctype declaration. +// In valid HTML, they can't contain both types of quotes. +func writeQuoted(w writer, s string) error { + var q byte = '"' + if strings.Contains(s, `"`) { + q = '\'' + } + if err := w.WriteByte(q); err != nil { + return err + } + if _, err := w.WriteString(s); err != nil { + return err + } + if err := w.WriteByte(q); err != nil { + return err + } + return nil +} + +// Section 12.1.2, "Elements", gives this list of void elements. Void elements +// are those that can't have any contents. +var voidElements = map[string]bool{ + "area": true, + "base": true, + "br": true, + "col": true, + "embed": true, + "hr": true, + "img": true, + "input": true, + "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility. + "link": true, + "meta": true, + "param": true, + "source": true, + "track": true, + "wbr": true, +} diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go new file mode 100644 index 0000000..6598c1f --- /dev/null +++ b/vendor/golang.org/x/net/html/token.go @@ -0,0 +1,1286 @@ +// 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 html + +import ( + "bytes" + "errors" + "io" + "strconv" + "strings" + + "golang.org/x/net/html/atom" +) + +// A TokenType is the type of a Token. +type TokenType uint32 + +const ( + // ErrorToken means that an error occurred during tokenization. + ErrorToken TokenType = iota + // TextToken means a text node. + TextToken + // A StartTagToken looks like <a>. + StartTagToken + // An EndTagToken looks like </a>. + EndTagToken + // A SelfClosingTagToken tag looks like <br/>. + SelfClosingTagToken + // A CommentToken looks like <!--x-->. + CommentToken + // A DoctypeToken looks like <!DOCTYPE x> + DoctypeToken +) + +// ErrBufferExceeded means that the buffering limit was exceeded. +var ErrBufferExceeded = errors.New("max buffer exceeded") + +// String returns a string representation of the TokenType. +func (t TokenType) String() string { + switch t { + case ErrorToken: + return "Error" + case TextToken: + return "Text" + case StartTagToken: + return "StartTag" + case EndTagToken: + return "EndTag" + case SelfClosingTagToken: + return "SelfClosingTag" + case CommentToken: + return "Comment" + case DoctypeToken: + return "Doctype" + } + return "Invalid(" + strconv.Itoa(int(t)) + ")" +} + +// An Attribute is an attribute namespace-key-value triple. Namespace is +// non-empty for foreign attributes like xlink, Key is alphabetic (and hence +// does not contain escapable characters like '&', '<' or '>'), and Val is +// unescaped (it looks like "a<b" rather than "a&lt;b"). +// +// Namespace is only used by the parser, not the tokenizer. +type Attribute struct { + Namespace, Key, Val string +} + +// A Token consists of a TokenType and some Data (tag name for start and end +// tags, content for text, comments and doctypes). A tag Token may also contain +// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b" +// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or +// zero if Data is not a known tag name. +type Token struct { + Type TokenType + DataAtom atom.Atom + Data string + Attr []Attribute +} + +// tagString returns a string representation of a tag Token's Data and Attr. +func (t Token) tagString() string { + if len(t.Attr) == 0 { + return t.Data + } + buf := bytes.NewBufferString(t.Data) + for _, a := range t.Attr { + buf.WriteByte(' ') + buf.WriteString(a.Key) + buf.WriteString(`="`) + escape(buf, a.Val) + buf.WriteByte('"') + } + return buf.String() +} + +// String returns a string representation of the Token. +func (t Token) String() string { + switch t.Type { + case ErrorToken: + return "" + case TextToken: + return EscapeString(t.Data) + case StartTagToken: + return "<" + t.tagString() + ">" + case EndTagToken: + return "</" + t.tagString() + ">" + case SelfClosingTagToken: + return "<" + t.tagString() + "/>" + case CommentToken: + return "<!--" + escapeCommentString(t.Data) + "-->" + case DoctypeToken: + return "<!DOCTYPE " + EscapeString(t.Data) + ">" + } + return "Invalid(" + strconv.Itoa(int(t.Type)) + ")" +} + +// span is a range of bytes in a Tokenizer's buffer. The start is inclusive, +// the end is exclusive. +type span struct { + start, end int +} + +// A Tokenizer returns a stream of HTML Tokens. +type Tokenizer struct { + // r is the source of the HTML text. + r io.Reader + // tt is the TokenType of the current token. + tt TokenType + // err is the first error encountered during tokenization. It is possible + // for tt != Error && err != nil to hold: this means that Next returned a + // valid token but the subsequent Next call will return an error token. + // For example, if the HTML text input was just "plain", then the first + // Next call would set z.err to io.EOF but return a TextToken, and all + // subsequent Next calls would return an ErrorToken. + // err is never reset. Once it becomes non-nil, it stays non-nil. + err error + // readErr is the error returned by the io.Reader r. It is separate from + // err because it is valid for an io.Reader to return (n int, err1 error) + // such that n > 0 && err1 != nil, and callers should always process the + // n > 0 bytes before considering the error err1. + readErr error + // buf[raw.start:raw.end] holds the raw bytes of the current token. + // buf[raw.end:] is buffered input that will yield future tokens. + raw span + buf []byte + // maxBuf limits the data buffered in buf. A value of 0 means unlimited. + maxBuf int + // buf[data.start:data.end] holds the raw bytes of the current token's data: + // a text token's text, a tag token's tag name, etc. + data span + // pendingAttr is the attribute key and value currently being tokenized. + // When complete, pendingAttr is pushed onto attr. nAttrReturned is + // incremented on each call to TagAttr. + pendingAttr [2]span + attr [][2]span + nAttrReturned int + // rawTag is the "script" in "</script>" that closes the next token. If + // non-empty, the subsequent call to Next will return a raw or RCDATA text + // token: one that treats "<p>" as text instead of an element. + // rawTag's contents are lower-cased. + rawTag string + // textIsRaw is whether the current text token's data is not escaped. + textIsRaw bool + // convertNUL is whether NUL bytes in the current token's data should + // be converted into \ufffd replacement characters. + convertNUL bool + // allowCDATA is whether CDATA sections are allowed in the current context. + allowCDATA bool +} + +// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as +// the text "foo". The default value is false, which means to recognize it as +// a bogus comment "<!-- [CDATA[foo]] -->" instead. +// +// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and +// only if tokenizing foreign content, such as MathML and SVG. However, +// tracking foreign-contentness is difficult to do purely in the tokenizer, +// as opposed to the parser, due to HTML integration points: an <svg> element +// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to- +// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the +// responsibility of the user of a tokenizer to call AllowCDATA as appropriate. +// In practice, if using the tokenizer without caring whether MathML or SVG +// CDATA is text or comments, such as tokenizing HTML to find all the anchor +// text, it is acceptable to ignore this responsibility. +func (z *Tokenizer) AllowCDATA(allowCDATA bool) { + z.allowCDATA = allowCDATA +} + +// NextIsNotRawText instructs the tokenizer that the next token should not be +// considered as 'raw text'. Some elements, such as script and title elements, +// normally require the next token after the opening tag to be 'raw text' that +// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>" +// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and +// an end tag token for "</title>". There are no distinct start tag or end tag +// tokens for the "<b>" and "</b>". +// +// This tokenizer implementation will generally look for raw text at the right +// times. Strictly speaking, an HTML5 compliant tokenizer should not look for +// raw text if in foreign content: <title> generally needs raw text, but a +// <title> inside an <svg> does not. Another example is that a <textarea> +// generally needs raw text, but a <textarea> is not allowed as an immediate +// child of a <select>; in normal parsing, a <textarea> implies </select>, but +// one cannot close the implicit element when parsing a <select>'s InnerHTML. +// Similarly to AllowCDATA, tracking the correct moment to override raw-text- +// ness is difficult to do purely in the tokenizer, as opposed to the parser. +// For strict compliance with the HTML5 tokenization algorithm, it is the +// responsibility of the user of a tokenizer to call NextIsNotRawText as +// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this +// responsibility for basic usage. +// +// Note that this 'raw text' concept is different from the one offered by the +// Tokenizer.Raw method. +func (z *Tokenizer) NextIsNotRawText() { + z.rawTag = "" +} + +// Err returns the error associated with the most recent ErrorToken token. +// This is typically io.EOF, meaning the end of tokenization. +func (z *Tokenizer) Err() error { + if z.tt != ErrorToken { + return nil + } + return z.err +} + +// readByte returns the next byte from the input stream, doing a buffered read +// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte +// slice that holds all the bytes read so far for the current token. +// It sets z.err if the underlying reader returns an error. +// Pre-condition: z.err == nil. +func (z *Tokenizer) readByte() byte { + if z.raw.end >= len(z.buf) { + // Our buffer is exhausted and we have to read from z.r. Check if the + // previous read resulted in an error. + if z.readErr != nil { + z.err = z.readErr + return 0 + } + // We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length + // z.raw.end - z.raw.start is more than half the capacity of z.buf, then we + // allocate a new buffer before the copy. + c := cap(z.buf) + d := z.raw.end - z.raw.start + var buf1 []byte + if 2*d > c { + buf1 = make([]byte, d, 2*c) + } else { + buf1 = z.buf[:d] + } + copy(buf1, z.buf[z.raw.start:z.raw.end]) + if x := z.raw.start; x != 0 { + // Adjust the data/attr spans to refer to the same contents after the copy. + z.data.start -= x + z.data.end -= x + z.pendingAttr[0].start -= x + z.pendingAttr[0].end -= x + z.pendingAttr[1].start -= x + z.pendingAttr[1].end -= x + for i := range z.attr { + z.attr[i][0].start -= x + z.attr[i][0].end -= x + z.attr[i][1].start -= x + z.attr[i][1].end -= x + } + } + z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d] + // Now that we have copied the live bytes to the start of the buffer, + // we read from z.r into the remainder. + var n int + n, z.readErr = readAtLeastOneByte(z.r, buf1[d:cap(buf1)]) + if n == 0 { + z.err = z.readErr + return 0 + } + z.buf = buf1[:d+n] + } + x := z.buf[z.raw.end] + z.raw.end++ + if z.maxBuf > 0 && z.raw.end-z.raw.start >= z.maxBuf { + z.err = ErrBufferExceeded + return 0 + } + return x +} + +// Buffered returns a slice containing data buffered but not yet tokenized. +func (z *Tokenizer) Buffered() []byte { + return z.buf[z.raw.end:] +} + +// readAtLeastOneByte wraps an io.Reader so that reading cannot return (0, nil). +// It returns io.ErrNoProgress if the underlying r.Read method returns (0, nil) +// too many times in succession. +func readAtLeastOneByte(r io.Reader, b []byte) (int, error) { + for i := 0; i < 100; i++ { + if n, err := r.Read(b); n != 0 || err != nil { + return n, err + } + } + return 0, io.ErrNoProgress +} + +// skipWhiteSpace skips past any white space. +func (z *Tokenizer) skipWhiteSpace() { + if z.err != nil { + return + } + for { + c := z.readByte() + if z.err != nil { + return + } + switch c { + case ' ', '\n', '\r', '\t', '\f': + // No-op. + default: + z.raw.end-- + return + } + } +} + +// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and +// is typically something like "script" or "textarea". +func (z *Tokenizer) readRawOrRCDATA() { + if z.rawTag == "script" { + z.readScript() + z.textIsRaw = true + z.rawTag = "" + return + } +loop: + for { + c := z.readByte() + if z.err != nil { + break loop + } + if c != '<' { + continue loop + } + c = z.readByte() + if z.err != nil { + break loop + } + if c != '/' { + z.raw.end-- + continue loop + } + if z.readRawEndTag() || z.err != nil { + break loop + } + } + z.data.end = z.raw.end + // A textarea's or title's RCDATA can contain escaped entities. + z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title" + z.rawTag = "" +} + +// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag. +// If it succeeds, it backs up the input position to reconsume the tag and +// returns true. Otherwise it returns false. The opening "</" has already been +// consumed. +func (z *Tokenizer) readRawEndTag() bool { + for i := 0; i < len(z.rawTag); i++ { + c := z.readByte() + if z.err != nil { + return false + } + if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') { + z.raw.end-- + return false + } + } + c := z.readByte() + if z.err != nil { + return false + } + switch c { + case ' ', '\n', '\r', '\t', '\f', '/', '>': + // The 3 is 2 for the leading "</" plus 1 for the trailing character c. + z.raw.end -= 3 + len(z.rawTag) + return true + } + z.raw.end-- + return false +} + +// readScript reads until the next </script> tag, following the byzantine +// rules for escaping/hiding the closing tag. +func (z *Tokenizer) readScript() { + defer func() { + z.data.end = z.raw.end + }() + var c byte + +scriptData: + c = z.readByte() + if z.err != nil { + return + } + if c == '<' { + goto scriptDataLessThanSign + } + goto scriptData + +scriptDataLessThanSign: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '/': + goto scriptDataEndTagOpen + case '!': + goto scriptDataEscapeStart + } + z.raw.end-- + goto scriptData + +scriptDataEndTagOpen: + if z.readRawEndTag() || z.err != nil { + return + } + goto scriptData + +scriptDataEscapeStart: + c = z.readByte() + if z.err != nil { + return + } + if c == '-' { + goto scriptDataEscapeStartDash + } + z.raw.end-- + goto scriptData + +scriptDataEscapeStartDash: + c = z.readByte() + if z.err != nil { + return + } + if c == '-' { + goto scriptDataEscapedDashDash + } + z.raw.end-- + goto scriptData + +scriptDataEscaped: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataEscapedDash + case '<': + goto scriptDataEscapedLessThanSign + } + goto scriptDataEscaped + +scriptDataEscapedDash: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataEscapedDashDash + case '<': + goto scriptDataEscapedLessThanSign + } + goto scriptDataEscaped + +scriptDataEscapedDashDash: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataEscapedDashDash + case '<': + goto scriptDataEscapedLessThanSign + case '>': + goto scriptData + } + goto scriptDataEscaped + +scriptDataEscapedLessThanSign: + c = z.readByte() + if z.err != nil { + return + } + if c == '/' { + goto scriptDataEscapedEndTagOpen + } + if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' { + goto scriptDataDoubleEscapeStart + } + z.raw.end-- + goto scriptData + +scriptDataEscapedEndTagOpen: + if z.readRawEndTag() || z.err != nil { + return + } + goto scriptDataEscaped + +scriptDataDoubleEscapeStart: + z.raw.end-- + for i := 0; i < len("script"); i++ { + c = z.readByte() + if z.err != nil { + return + } + if c != "script"[i] && c != "SCRIPT"[i] { + z.raw.end-- + goto scriptDataEscaped + } + } + c = z.readByte() + if z.err != nil { + return + } + switch c { + case ' ', '\n', '\r', '\t', '\f', '/', '>': + goto scriptDataDoubleEscaped + } + z.raw.end-- + goto scriptDataEscaped + +scriptDataDoubleEscaped: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataDoubleEscapedDash + case '<': + goto scriptDataDoubleEscapedLessThanSign + } + goto scriptDataDoubleEscaped + +scriptDataDoubleEscapedDash: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataDoubleEscapedDashDash + case '<': + goto scriptDataDoubleEscapedLessThanSign + } + goto scriptDataDoubleEscaped + +scriptDataDoubleEscapedDashDash: + c = z.readByte() + if z.err != nil { + return + } + switch c { + case '-': + goto scriptDataDoubleEscapedDashDash + case '<': + goto scriptDataDoubleEscapedLessThanSign + case '>': + goto scriptData + } + goto scriptDataDoubleEscaped + +scriptDataDoubleEscapedLessThanSign: + c = z.readByte() + if z.err != nil { + return + } + if c == '/' { + goto scriptDataDoubleEscapeEnd + } + z.raw.end-- + goto scriptDataDoubleEscaped + +scriptDataDoubleEscapeEnd: + if z.readRawEndTag() { + z.raw.end += len("</script>") + goto scriptDataEscaped + } + if z.err != nil { + return + } + goto scriptDataDoubleEscaped +} + +// readComment reads the next comment token starting with "<!--". The opening +// "<!--" has already been consumed. +func (z *Tokenizer) readComment() { + // When modifying this function, consider manually increasing the + // maxSuffixLen constant in func TestComments, from 6 to e.g. 9 or more. + // That increase should only be temporary, not committed, as it + // exponentially affects the test running time. + + z.data.start = z.raw.end + defer func() { + if z.data.end < z.data.start { + // It's a comment with no data, like <!-->. + z.data.end = z.data.start + } + }() + + var dashCount int + beginning := true + for { + c := z.readByte() + if z.err != nil { + z.data.end = z.calculateAbruptCommentDataEnd() + return + } + switch c { + case '-': + dashCount++ + continue + case '>': + if dashCount >= 2 || beginning { + z.data.end = z.raw.end - len("-->") + return + } + case '!': + if dashCount >= 2 { + c = z.readByte() + if z.err != nil { + z.data.end = z.calculateAbruptCommentDataEnd() + return + } else if c == '>' { + z.data.end = z.raw.end - len("--!>") + return + } else if c == '-' { + dashCount = 1 + beginning = false + continue + } + } + } + dashCount = 0 + beginning = false + } +} + +func (z *Tokenizer) calculateAbruptCommentDataEnd() int { + raw := z.Raw() + const prefixLen = len("<!--") + if len(raw) >= prefixLen { + raw = raw[prefixLen:] + if hasSuffix(raw, "--!") { + return z.raw.end - 3 + } else if hasSuffix(raw, "--") { + return z.raw.end - 2 + } else if hasSuffix(raw, "-") { + return z.raw.end - 1 + } + } + return z.raw.end +} + +func hasSuffix(b []byte, suffix string) bool { + if len(b) < len(suffix) { + return false + } + b = b[len(b)-len(suffix):] + for i := range b { + if b[i] != suffix[i] { + return false + } + } + return true +} + +// readUntilCloseAngle reads until the next ">". +func (z *Tokenizer) readUntilCloseAngle() { + z.data.start = z.raw.end + for { + c := z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return + } + if c == '>' { + z.data.end = z.raw.end - len(">") + return + } + } +} + +// readMarkupDeclaration reads the next token starting with "<!". It might be +// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or +// "<!a bogus comment". The opening "<!" has already been consumed. +func (z *Tokenizer) readMarkupDeclaration() TokenType { + z.data.start = z.raw.end + var c [2]byte + for i := 0; i < 2; i++ { + c[i] = z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return CommentToken + } + } + if c[0] == '-' && c[1] == '-' { + z.readComment() + return CommentToken + } + z.raw.end -= 2 + if z.readDoctype() { + return DoctypeToken + } + if z.allowCDATA && z.readCDATA() { + z.convertNUL = true + return TextToken + } + // It's a bogus comment. + z.readUntilCloseAngle() + return CommentToken +} + +// readDoctype attempts to read a doctype declaration and returns true if +// successful. The opening "<!" has already been consumed. +func (z *Tokenizer) readDoctype() bool { + const s = "DOCTYPE" + for i := 0; i < len(s); i++ { + c := z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return false + } + if c != s[i] && c != s[i]+('a'-'A') { + // Back up to read the fragment of "DOCTYPE" again. + z.raw.end = z.data.start + return false + } + } + if z.skipWhiteSpace(); z.err != nil { + z.data.start = z.raw.end + z.data.end = z.raw.end + return true + } + z.readUntilCloseAngle() + return true +} + +// readCDATA attempts to read a CDATA section and returns true if +// successful. The opening "<!" has already been consumed. +func (z *Tokenizer) readCDATA() bool { + const s = "[CDATA[" + for i := 0; i < len(s); i++ { + c := z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return false + } + if c != s[i] { + // Back up to read the fragment of "[CDATA[" again. + z.raw.end = z.data.start + return false + } + } + z.data.start = z.raw.end + brackets := 0 + for { + c := z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return true + } + switch c { + case ']': + brackets++ + case '>': + if brackets >= 2 { + z.data.end = z.raw.end - len("]]>") + return true + } + brackets = 0 + default: + brackets = 0 + } + } +} + +// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end] +// case-insensitively matches any element of ss. +func (z *Tokenizer) startTagIn(ss ...string) bool { +loop: + for _, s := range ss { + if z.data.end-z.data.start != len(s) { + continue loop + } + for i := 0; i < len(s); i++ { + c := z.buf[z.data.start+i] + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } + if c != s[i] { + continue loop + } + } + return true + } + return false +} + +// readStartTag reads the next start tag token. The opening "<a" has already +// been consumed, where 'a' means anything in [A-Za-z]. +func (z *Tokenizer) readStartTag() TokenType { + z.readTag(true) + if z.err != nil { + return ErrorToken + } + // Several tags flag the tokenizer's next token as raw. + c, raw := z.buf[z.data.start], false + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } + switch c { + case 'i': + raw = z.startTagIn("iframe") + case 'n': + raw = z.startTagIn("noembed", "noframes", "noscript") + case 'p': + raw = z.startTagIn("plaintext") + case 's': + raw = z.startTagIn("script", "style") + case 't': + raw = z.startTagIn("textarea", "title") + case 'x': + raw = z.startTagIn("xmp") + } + if raw { + z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end])) + } + // Look for a self-closing token (e.g. <br/>). + // + // Originally, we did this by just checking that the last character of the + // tag (ignoring the closing bracket) was a solidus (/) character, but this + // is not always accurate. + // + // We need to be careful that we don't misinterpret a non-self-closing tag + // as self-closing, as can happen if the tag contains unquoted attribute + // values (i.e. <p a=/>). + // + // To avoid this, we check that the last non-bracket character of the tag + // (z.raw.end-2) isn't the same character as the last non-quote character of + // the last attribute of the tag (z.pendingAttr[1].end-1), if the tag has + // attributes. + nAttrs := len(z.attr) + if z.err == nil && z.buf[z.raw.end-2] == '/' && (nAttrs == 0 || z.raw.end-2 != z.attr[nAttrs-1][1].end-1) { + return SelfClosingTagToken + } + return StartTagToken +} + +// readTag reads the next tag token and its attributes. If saveAttr, those +// attributes are saved in z.attr, otherwise z.attr is set to an empty slice. +// The opening "<a" or "</a" has already been consumed, where 'a' means anything +// in [A-Za-z]. +func (z *Tokenizer) readTag(saveAttr bool) { + z.attr = z.attr[:0] + z.nAttrReturned = 0 + // Read the tag name and attribute key/value pairs. + z.readTagName() + if z.skipWhiteSpace(); z.err != nil { + return + } + for { + c := z.readByte() + if z.err != nil || c == '>' { + break + } + z.raw.end-- + z.readTagAttrKey() + z.readTagAttrVal() + // Save pendingAttr if saveAttr and that attribute has a non-empty key. + if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end { + z.attr = append(z.attr, z.pendingAttr) + } + if z.skipWhiteSpace(); z.err != nil { + break + } + } +} + +// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end) +// is positioned such that the first byte of the tag name (the "d" in "<div") +// has already been consumed. +func (z *Tokenizer) readTagName() { + z.data.start = z.raw.end - 1 + for { + c := z.readByte() + if z.err != nil { + z.data.end = z.raw.end + return + } + switch c { + case ' ', '\n', '\r', '\t', '\f': + z.data.end = z.raw.end - 1 + return + case '/', '>': + z.raw.end-- + z.data.end = z.raw.end + return + } + } +} + +// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>". +// Precondition: z.err == nil. +func (z *Tokenizer) readTagAttrKey() { + z.pendingAttr[0].start = z.raw.end + for { + c := z.readByte() + if z.err != nil { + z.pendingAttr[0].end = z.raw.end + return + } + switch c { + case '=': + if z.pendingAttr[0].start+1 == z.raw.end { + // WHATWG 13.2.5.32, if we see an equals sign before the attribute name + // begins, we treat it as a character in the attribute name and continue. + continue + } + fallthrough + case ' ', '\n', '\r', '\t', '\f', '/', '>': + // WHATWG 13.2.5.33 Attribute name state + // We need to reconsume the char in the after attribute name state to support the / character + z.raw.end-- + z.pendingAttr[0].end = z.raw.end + return + } + } +} + +// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>". +func (z *Tokenizer) readTagAttrVal() { + z.pendingAttr[1].start = z.raw.end + z.pendingAttr[1].end = z.raw.end + if z.skipWhiteSpace(); z.err != nil { + return + } + c := z.readByte() + if z.err != nil { + return + } + if c == '/' { + // WHATWG 13.2.5.34 After attribute name state + // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. + return + } + if c != '=' { + z.raw.end-- + return + } + if z.skipWhiteSpace(); z.err != nil { + return + } + quote := z.readByte() + if z.err != nil { + return + } + switch quote { + case '>': + z.raw.end-- + return + + case '\'', '"': + z.pendingAttr[1].start = z.raw.end + for { + c := z.readByte() + if z.err != nil { + z.pendingAttr[1].end = z.raw.end + return + } + if c == quote { + z.pendingAttr[1].end = z.raw.end - 1 + return + } + } + + default: + z.pendingAttr[1].start = z.raw.end - 1 + for { + c := z.readByte() + if z.err != nil { + z.pendingAttr[1].end = z.raw.end + return + } + switch c { + case ' ', '\n', '\r', '\t', '\f': + z.pendingAttr[1].end = z.raw.end - 1 + return + case '>': + z.raw.end-- + z.pendingAttr[1].end = z.raw.end + return + } + } + } +} + +// Next scans the next token and returns its type. +func (z *Tokenizer) Next() TokenType { + z.raw.start = z.raw.end + z.data.start = z.raw.end + z.data.end = z.raw.end + if z.err != nil { + z.tt = ErrorToken + return z.tt + } + if z.rawTag != "" { + if z.rawTag == "plaintext" { + // Read everything up to EOF. + for z.err == nil { + z.readByte() + } + z.data.end = z.raw.end + z.textIsRaw = true + } else { + z.readRawOrRCDATA() + } + if z.data.end > z.data.start { + z.tt = TextToken + z.convertNUL = true + return z.tt + } + } + z.textIsRaw = false + z.convertNUL = false + +loop: + for { + c := z.readByte() + if z.err != nil { + break loop + } + if c != '<' { + continue loop + } + + // Check if the '<' we have just read is part of a tag, comment + // or doctype. If not, it's part of the accumulated text token. + c = z.readByte() + if z.err != nil { + break loop + } + var tokenType TokenType + switch { + case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z': + tokenType = StartTagToken + case c == '/': + tokenType = EndTagToken + case c == '!' || c == '?': + // We use CommentToken to mean any of "<!--actual comments-->", + // "<!DOCTYPE declarations>" and "<?xml processing instructions?>". + tokenType = CommentToken + default: + // Reconsume the current character. + z.raw.end-- + continue + } + + // We have a non-text token, but we might have accumulated some text + // before that. If so, we return the text first, and return the non- + // text token on the subsequent call to Next. + if x := z.raw.end - len("<a"); z.raw.start < x { + z.raw.end = x + z.data.end = x + z.tt = TextToken + return z.tt + } + switch tokenType { + case StartTagToken: + z.tt = z.readStartTag() + return z.tt + case EndTagToken: + c = z.readByte() + if z.err != nil { + break loop + } + if c == '>' { + // "</>" does not generate a token at all. Generate an empty comment + // to allow passthrough clients to pick up the data using Raw. + // Reset the tokenizer state and start again. + z.tt = CommentToken + return z.tt + } + if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' { + z.readTag(false) + if z.err != nil { + z.tt = ErrorToken + } else { + z.tt = EndTagToken + } + return z.tt + } + z.raw.end-- + z.readUntilCloseAngle() + z.tt = CommentToken + return z.tt + case CommentToken: + if c == '!' { + z.tt = z.readMarkupDeclaration() + return z.tt + } + z.raw.end-- + z.readUntilCloseAngle() + z.tt = CommentToken + return z.tt + } + } + if z.raw.start < z.raw.end { + z.data.end = z.raw.end + z.tt = TextToken + return z.tt + } + z.tt = ErrorToken + return z.tt +} + +// Raw returns the unmodified text of the current token. Calling Next, Token, +// Text, TagName or TagAttr may change the contents of the returned slice. +// +// The token stream's raw bytes partition the byte stream (up until an +// ErrorToken). There are no overlaps or gaps between two consecutive token's +// raw bytes. One implication is that the byte offset of the current token is +// the sum of the lengths of all previous tokens' raw bytes. +func (z *Tokenizer) Raw() []byte { + return z.buf[z.raw.start:z.raw.end] +} + +// convertNewlines converts "\r" and "\r\n" in s to "\n". +// The conversion happens in place, but the resulting slice may be shorter. +func convertNewlines(s []byte) []byte { + for i, c := range s { + if c != '\r' { + continue + } + + src := i + 1 + if src >= len(s) || s[src] != '\n' { + s[i] = '\n' + continue + } + + dst := i + for src < len(s) { + if s[src] == '\r' { + if src+1 < len(s) && s[src+1] == '\n' { + src++ + } + s[dst] = '\n' + } else { + s[dst] = s[src] + } + src++ + dst++ + } + return s[:dst] + } + return s +} + +var ( + nul = []byte("\x00") + replacement = []byte("\ufffd") +) + +// Text returns the unescaped text of a text, comment or doctype token. The +// contents of the returned slice may change on the next call to Next. +func (z *Tokenizer) Text() []byte { + switch z.tt { + case TextToken, CommentToken, DoctypeToken: + s := z.buf[z.data.start:z.data.end] + z.data.start = z.raw.end + z.data.end = z.raw.end + s = convertNewlines(s) + if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) { + s = bytes.Replace(s, nul, replacement, -1) + } + if !z.textIsRaw { + s = unescape(s, false) + } + return s + } + return nil +} + +// TagName returns the lower-cased name of a tag token (the `img` out of +// `<IMG SRC="foo">`) and whether the tag has attributes. +// The contents of the returned slice may change on the next call to Next. +func (z *Tokenizer) TagName() (name []byte, hasAttr bool) { + if z.data.start < z.data.end { + switch z.tt { + case StartTagToken, EndTagToken, SelfClosingTagToken: + s := z.buf[z.data.start:z.data.end] + z.data.start = z.raw.end + z.data.end = z.raw.end + return lower(s), z.nAttrReturned < len(z.attr) + } + } + return nil, false +} + +// TagAttr returns the lower-cased key and unescaped value of the next unparsed +// attribute for the current tag token and whether there are more attributes. +// The contents of the returned slices may change on the next call to Next. +func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) { + if z.nAttrReturned < len(z.attr) { + switch z.tt { + case StartTagToken, SelfClosingTagToken: + x := z.attr[z.nAttrReturned] + z.nAttrReturned++ + key = z.buf[x[0].start:x[0].end] + val = z.buf[x[1].start:x[1].end] + return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr) + } + } + return nil, nil, false +} + +// Token returns the current Token. The result's Data and Attr values remain +// valid after subsequent Next calls. +func (z *Tokenizer) Token() Token { + t := Token{Type: z.tt} + switch z.tt { + case TextToken, CommentToken, DoctypeToken: + t.Data = string(z.Text()) + case StartTagToken, SelfClosingTagToken, EndTagToken: + name, moreAttr := z.TagName() + for moreAttr { + var key, val []byte + key, val, moreAttr = z.TagAttr() + t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)}) + } + if a := atom.Lookup(name); a != 0 { + t.DataAtom, t.Data = a, a.String() + } else { + t.DataAtom, t.Data = 0, string(name) + } + } + return t +} + +// SetMaxBuf sets a limit on the amount of data buffered during tokenization. +// A value of 0 means unlimited. +func (z *Tokenizer) SetMaxBuf(n int) { + z.maxBuf = n +} + +// NewTokenizer returns a new HTML Tokenizer for the given Reader. +// The input is assumed to be UTF-8 encoded. +func NewTokenizer(r io.Reader) *Tokenizer { + return NewTokenizerFragment(r, "") +} + +// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for +// tokenizing an existing element's InnerHTML fragment. contextTag is that +// element's tag, such as "div" or "iframe". +// +// For example, how the InnerHTML "a<b" is tokenized depends on whether it is +// for a <p> tag or a <script> tag. +// +// The input is assumed to be UTF-8 encoded. +func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer { + z := &Tokenizer{ + r: r, + buf: make([]byte, 0, 4096), + } + if contextTag != "" { + switch s := strings.ToLower(contextTag); s { + case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp": + z.rawTag = s + } + } + return z +} diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE new file mode 100644 index 0000000..2a7cf70 --- /dev/null +++ b/vendor/golang.org/x/sync/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/sync/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go new file mode 100644 index 0000000..1d8cffa --- /dev/null +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -0,0 +1,151 @@ +// 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 errgroup provides synchronization, error propagation, and Context +// cancelation for groups of goroutines working on subtasks of a common task. +// +// [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks +// returning errors. +package errgroup + +import ( + "context" + "fmt" + "sync" +) + +type token struct{} + +// A Group is a collection of goroutines working on subtasks that are part of +// the same overall task. A Group should not be reused for different tasks. +// +// A zero Group is valid, has no limit on the number of active goroutines, +// and does not cancel on error. +type Group struct { + cancel func(error) + + wg sync.WaitGroup + + sem chan token + + errOnce sync.Once + err error +} + +func (g *Group) done() { + if g.sem != nil { + <-g.sem + } + g.wg.Done() +} + +// WithContext returns a new Group and an associated Context derived from ctx. +// +// The derived Context is canceled the first time a function passed to Go +// returns a non-nil error or the first time Wait returns, whichever occurs +// first. +func WithContext(ctx context.Context) (*Group, context.Context) { + ctx, cancel := context.WithCancelCause(ctx) + return &Group{cancel: cancel}, ctx +} + +// Wait blocks until all function calls from the Go method have returned, then +// returns the first non-nil error (if any) from them. +func (g *Group) Wait() error { + g.wg.Wait() + if g.cancel != nil { + g.cancel(g.err) + } + return g.err +} + +// Go calls the given function in a new goroutine. +// +// The first call to Go must happen before a Wait. +// It blocks until the new goroutine can be added without the number of +// goroutines in the group exceeding the configured limit. +// +// The first goroutine in the group that returns a non-nil error will +// cancel the associated Context, if any. The error will be returned +// by Wait. +func (g *Group) Go(f func() error) { + if g.sem != nil { + g.sem <- token{} + } + + g.wg.Add(1) + go func() { + defer g.done() + + // It is tempting to propagate panics from f() + // up to the goroutine that calls Wait, but + // it creates more problems than it solves: + // - it delays panics arbitrarily, + // making bugs harder to detect; + // - it turns f's panic stack into a mere value, + // hiding it from crash-monitoring tools; + // - it risks deadlocks that hide the panic entirely, + // if f's panic leaves the program in a state + // that prevents the Wait call from being reached. + // See #53757, #74275, #74304, #74306. + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel(g.err) + } + }) + } + }() +} + +// TryGo calls the given function in a new goroutine only if the number of +// active goroutines in the group is currently below the configured limit. +// +// The return value reports whether the goroutine was started. +func (g *Group) TryGo(f func() error) bool { + if g.sem != nil { + select { + case g.sem <- token{}: + // Note: this allows barging iff channels in general allow barging. + default: + return false + } + } + + g.wg.Add(1) + go func() { + defer g.done() + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel(g.err) + } + }) + } + }() + return true +} + +// SetLimit limits the number of active goroutines in this group to at most n. +// A negative value indicates no limit. +// A limit of zero will prevent any new goroutines from being added. +// +// Any subsequent call to the Go method will block until it can add an active +// goroutine without exceeding the configured limit. +// +// The limit must not be modified while any goroutines in the group are active. +func (g *Group) SetLimit(n int) { + if n < 0 { + g.sem = nil + return + } + if len(g.sem) != 0 { + panic(fmt.Errorf("errgroup: modify limit while %v goroutines in the group are still active", len(g.sem))) + } + g.sem = make(chan token, n) +} diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE new file mode 100644 index 0000000..2a7cf70 --- /dev/null +++ b/vendor/golang.org/x/sys/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/sys/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sys/unix/.gitignore b/vendor/golang.org/x/sys/unix/.gitignore new file mode 100644 index 0000000..e3e0fc6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/.gitignore @@ -0,0 +1,2 @@ +_obj/ +unix.test diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md new file mode 100644 index 0000000..6e08a76 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/README.md @@ -0,0 +1,184 @@ +# Building `sys/unix` + +The sys/unix package provides access to the raw system call interface of the +underlying operating system. See: https://godoc.org/golang.org/x/sys/unix + +Porting Go to a new architecture/OS combination or adding syscalls, types, or +constants to an existing architecture/OS pair requires some manual effort; +however, there are tools that automate much of the process. + +## Build Systems + +There are currently two ways we generate the necessary files. We are currently +migrating the build system to use containers so the builds are reproducible. +This is being done on an OS-by-OS basis. Please update this documentation as +components of the build system change. + +### Old Build System (currently for `GOOS != "linux"`) + +The old build system generates the Go files based on the C header files +present on your system. This means that files +for a given GOOS/GOARCH pair must be generated on a system with that OS and +architecture. This also means that the generated code can differ from system +to system, based on differences in the header files. + +To avoid this, if you are using the old build system, only generate the Go +files on an installation with unmodified header files. It is also important to +keep track of which version of the OS the files were generated from (ex. +Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes +and have each OS upgrade correspond to a single change. + +To build the files for your current OS and architecture, make sure GOOS and +GOARCH are set correctly and run `mkall.sh`. This will generate the files for +your specific system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go + +### New Build System (currently for `GOOS == "linux"`) + +The new build system uses a Docker container to generate the go files directly +from source checkouts of the kernel and various system libraries. This means +that on any platform that supports Docker, all the files using the new build +system can be generated at once, and generated files will not change based on +what the person running the scripts has installed on their computer. + +The OS specific files for the new build system are located in the `${GOOS}` +directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When +the kernel or system library updates, modify the Dockerfile at +`${GOOS}/Dockerfile` to checkout the new release of the source. + +To build all the files under the new build system, you must be on an amd64/Linux +system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will +then generate all of the files for all of the GOOS/GOARCH pairs in the new build +system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go, docker + +## Component files + +This section describes the various files used in the code generation process. +It also contains instructions on how to modify these files to add a new +architecture/OS or to add additional syscalls, types, or constants. Note that +if you are using the new build system, the scripts/programs cannot be called normally. +They must be called from within the docker container. + +### asm files + +The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system +call dispatch. There are three entry points: +``` + func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) + func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) + func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +``` +The first and second are the standard ones; they differ only in how many +arguments can be passed to the kernel. The third is for low-level use by the +ForkExec wrapper. Unlike the first two, it does not call into the scheduler to +let it know that a system call is running. + +When porting Go to a new architecture/OS, this file must be implemented for +each GOOS/GOARCH pair. + +### mksysnum + +Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` +for the old system). This program takes in a list of header files containing the +syscall number declarations and parses them to produce the corresponding list of +Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated +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 may need to update the +parsing in mksysnum. + +### mksyscall.go + +The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are +hand-written Go files which implement system calls (for unix, the specific OS, +or the specific OS/Architecture pair respectively) that need special handling +and list `//sys` comments giving prototypes for ones that can be generated. + +The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts +them into syscalls. This requires the name of the prototype in the comment to +match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function +prototype can be exported (capitalized) or not. + +Adding a new syscall often just requires adding a new `//sys` function prototype +with the desired arguments and a capitalized name so it is exported. However, if +you want the interface to the syscall to be different, often one will make an +unexported `//sys` prototype, and then write a custom wrapper in +`syscall_${GOOS}.go`. + +### types files + +For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or +`types_${GOOS}.go` on the old system). This file includes standard C headers and +creates Go type aliases to the corresponding C types. The file is then fed +through godef to get the Go compatible definitions. Finally, the generated code +is fed though mkpost.go to format the code correctly and remove any hidden or +private identifiers. This cleaned-up code is written to +`ztypes_${GOOS}_${GOARCH}.go`. + +The hardest part about preparing this file is figuring out which headers to +include and which symbols need to be `#define`d to get the actual data +structures that pass through to the kernel system calls. Some C libraries +preset alternate versions for binary compatibility and translate them on the +way in and out of system calls, but there is almost always a `#define` that can +get the real ones. +See `types_darwin.go` and `linux/types.go` for examples. + +To add a new type, add in the necessary include statement at the top of the +file (if it is not already there) and add in a type alias line. Note that if +your type is significantly different on different architectures, you may need +some `#if/#elif` macros in your include statements. + +### mkerrors.sh + +This script is used to generate the system's various constants. This doesn't +just include the error numbers and error strings, but also the signal numbers +and a wide variety of miscellaneous constants. The constants come from the list +of include files in the `includes_${uname}` variable. A regex then picks out +the desired `#define` statements, and generates the corresponding Go constants. +The error numbers and strings are generated from `#include <errno.h>`, and the +signal numbers and strings are generated from `#include <signal.h>`. All of +these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, +`_errors.c`, which prints out all the constants. + +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. + +### internal/mkmerge + +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 identical 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 + +### `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). + +### `zsyscall_${GOOS}_${GOARCH}.go` + +A file containing all the generated syscalls for a specific GOOS and GOARCH. +Generated by `mksyscall.go` (see above). + +### `zsysnum_${GOOS}_${GOARCH}.go` + +A list of numeric constants for all the syscall number of the specific GOOS +and GOARCH. Generated by mksysnum (see above). + +### `ztypes_${GOOS}_${GOARCH}.go` + +A file containing Go types for passing into (or returning from) syscalls. +Generated by godefs and the types file (see above). diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go new file mode 100644 index 0000000..6e5c81a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -0,0 +1,86 @@ +// 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. + +// CPU affinity functions + +package unix + +import ( + "math/bits" + "unsafe" +) + +const cpuSetSize = _CPU_SETSIZE / _NCPUBITS + +// CPUSet represents a CPU affinity mask. +type CPUSet [cpuSetSize]cpuMask + +func schedAffinity(trap uintptr, pid int, set *CPUSet) error { + _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) + if e != 0 { + return errnoErr(e) + } + return nil +} + +// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedGetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) +} + +// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedSetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) +} + +// Zero clears the set s, so that it contains no CPUs. +func (s *CPUSet) Zero() { + for i := range s { + s[i] = 0 + } +} + +func cpuBitsIndex(cpu int) int { + return cpu / _NCPUBITS +} + +func cpuBitsMask(cpu int) cpuMask { + return cpuMask(1 << (uint(cpu) % _NCPUBITS)) +} + +// Set adds cpu to the set s. +func (s *CPUSet) Set(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] |= cpuBitsMask(cpu) + } +} + +// Clear removes cpu from the set s. +func (s *CPUSet) Clear(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] &^= cpuBitsMask(cpu) + } +} + +// IsSet reports whether cpu is in the set s. +func (s *CPUSet) IsSet(cpu int) bool { + i := cpuBitsIndex(cpu) + if i < len(s) { + return s[i]&cpuBitsMask(cpu) != 0 + } + return false +} + +// Count returns the number of CPUs in the set s. +func (s *CPUSet) Count() int { + c := 0 + for _, b := range s { + c += bits.OnesCount64(uint64(b)) + } + return c +} diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go new file mode 100644 index 0000000..b0e4198 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/aliases.go @@ -0,0 +1,13 @@ +// 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. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +package unix + +import "syscall" + +type Signal = syscall.Signal +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s new file mode 100644 index 0000000..269e173 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s @@ -0,0 +1,17 @@ +// 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. + +//go:build gc + +#include "textflag.h" + +// +// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go +// + +TEXT ·syscall6(SB),NOSPLIT,$0-88 + JMP syscall·syscall6(SB) + +TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s new file mode 100644 index 0000000..a4fcef0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_386.s @@ -0,0 +1,27 @@ +// 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. + +//go:build (freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// System call support for 386 BSD + +// 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_bsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s new file mode 100644 index 0000000..1e63615 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s @@ -0,0 +1,27 @@ +// 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. + +//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// System call support for AMD64 BSD + +// 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_bsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s new file mode 100644 index 0000000..6496c31 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s @@ -0,0 +1,27 @@ +// 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. + +//go:build (freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// System call support for ARM BSD + +// 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_bsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s new file mode 100644 index 0000000..4fd1f54 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s @@ -0,0 +1,27 @@ +// 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. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// System call support for ARM64 BSD + +// 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_bsd_ppc64.s b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s new file mode 100644 index 0000000..42f7eb9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s @@ -0,0 +1,29 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// +// System call support for ppc64, BSD +// + +// 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_bsd_riscv64.s b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s new file mode 100644 index 0000000..f890266 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s @@ -0,0 +1,27 @@ +// 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. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc + +#include "textflag.h" + +// System call support for RISCV64 BSD + +// 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 new file mode 100644 index 0000000..3b47348 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s @@ -0,0 +1,65 @@ +// 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 gc + +#include "textflag.h" + +// +// System calls for 386, Linux +// + +// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 +// instead of the glibc-specific "CALL 0x10(GS)". +#define INVOKE_SYSCALL INT $0x80 + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 + CALL runtime·entersyscall(SB) + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + RET + +TEXT ·socketcall(SB),NOSPLIT,$0-36 + JMP syscall·socketcall(SB) + +TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 + JMP syscall·rawsocketcall(SB) + +TEXT ·seek(SB),NOSPLIT,$0-28 + JMP syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s new file mode 100644 index 0000000..67e29f3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s @@ -0,0 +1,57 @@ +// 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 gc + +#include "textflag.h" + +// +// System calls for AMD64, Linux +// + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + 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 + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + RET + +TEXT ·gettimeofday(SB),NOSPLIT,$0-16 + JMP syscall·gettimeofday(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s new file mode 100644 index 0000000..d6ae269 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s @@ -0,0 +1,56 @@ +// 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 gc + +#include "textflag.h" + +// +// System calls for arm, Linux +// + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 + BL runtime·entersyscall(SB) + MOVW trap+0(FP), R7 + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + MOVW $0, R3 + MOVW $0, R4 + MOVW $0, R5 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW trap+0(FP), R7 // syscall entry + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + RET + +TEXT ·seek(SB),NOSPLIT,$0-28 + B syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s new file mode 100644 index 0000000..01e5e25 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s @@ -0,0 +1,50 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && arm64 && gc + +#include "textflag.h" + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) // r1 + MOVD R1, r2+40(FP) // r2 + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) + MOVD R1, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s new file mode 100644 index 0000000..2abf12f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s @@ -0,0 +1,51 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && loong64 && gc + +#include "textflag.h" + + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 + JAL runtime·entersyscall(SB) + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R11 // syscall entry + SYSCALL + MOVV R4, r1+32(FP) + MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 + JAL 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 + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R11 // syscall entry + SYSCALL + MOVV R4, r1+32(FP) + MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s new file mode 100644 index 0000000..f84bae7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s @@ -0,0 +1,54 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips64 || mips64le) && gc + +#include "textflag.h" + +// +// System calls for mips64, Linux +// + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 + JAL runtime·entersyscall(SB) + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + JAL 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 + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s new file mode 100644 index 0000000..f08f628 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -0,0 +1,52 @@ +// 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. + +//go:build linux && (mips || mipsle) && gc + +#include "textflag.h" + +// +// System calls for mips, Linux +// + +// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 + JAL runtime·entersyscall(SB) + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW R0, R7 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) // r1 + MOVW R3, r2+20(FP) // r2 + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) + MOVW R3, r2+20(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s new file mode 100644 index 0000000..bdfc024 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -0,0 +1,42 @@ +// 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 && (ppc64 || ppc64le) && gc + +#include "textflag.h" + +// +// System calls for ppc64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + RET 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 0000000..2e8c996 --- /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. + +//go: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 new file mode 100644 index 0000000..2c394b1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s @@ -0,0 +1,54 @@ +// 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. + +//go:build linux && s390x && gc + +#include "textflag.h" + +// +// System calls for s390x, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + BR syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + BR syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + BR syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + BR syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s new file mode 100644 index 0000000..fab586a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s @@ -0,0 +1,29 @@ +// 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 gc + +#include "textflag.h" + +// +// System call support for mips64, OpenBSD +// + +// 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_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s new file mode 100644 index 0000000..f949ec5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s @@ -0,0 +1,17 @@ +// 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 gc + +#include "textflag.h" + +// +// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go +// + +TEXT ·sysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·sysvicall6(SB) + +TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSysvicall6(SB) 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 0000000..813dfad --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s @@ -0,0 +1,382 @@ +// 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 + +#include "textflag.h" + +#define PSALAA 1208(R0) +#define GTAB64(x) 80(x) +#define LCA64(x) 88(x) +#define SAVSTACK_ASYNC(x) 336(x) // in the LCA +#define CAA(x) 8(x) +#define CEECAATHDID(x) 976(x) // in the CAA +#define EDCHPXV(x) 1016(x) // in the CAA +#define GOCB(x) 1104(x) // in the CAA + +// 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) + +// Function Descriptor Offsets +#define __errno 0x156*16 +#define __err2ad 0x16C*16 + +// Call Instructions +#define LE_CALL BYTE $0x0D; BYTE $0x76 // BL R7, R6 +#define SVC_LOAD BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD +#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE + +DATA zosLibVec<>(SB)/8, $0 +GLOBL zosLibVec<>(SB), NOPTR, $8 + +TEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R8 + MOVD EDCHPXV(R8), R8 + MOVD R8, zosLibVec<>(SB) + RET + +TEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 + MOVD zosLibVec<>(SB), R8 + MOVD R8, ret+0(FP) + RET + +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 $(__errno), 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 + +// 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 + SVC_LOAD + 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, ret+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) + SVC_DELETE + MOVD R2, R15 // Restore go stack pointer + +error: + MOVD $0, ret+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 fnptr+8(FP), R15 + SVC_DELETE + XOR R0, R0 // Reset r0 to 0 + MOVD R15, R1 // Save SVC return code + MOVD R2, R15 // Restore go stack pointer + MOVD R1, ret+16(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 CEECAATHDID(R9), R9 + MOVD R9, ret+0(FP) + + RET + +// +// Call LE function, if the return is -1 +// errno and errno2 is retrieved +// +TEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R9 + MOVD g, GOCB(R9) + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address + MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer + + MOVD parms_base+8(FP), R7 // R7 -> argument array + MOVD parms_len+16(FP), R8 // R8 number of arguments + + // arg 1 ---> R1 + CMP R8, $0 + BEQ docall + SUB $1, R8 + MOVD 0(R7), R1 + + // arg 2 ---> R2 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R2 + + // arg 3 --> R3 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R3 + + CMP R8, $0 + BEQ docall + MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument + +repeat: + ADD $8, R7 + MOVD 0(R7), R0 // advance arg pointer by 8 byte + ADD $8, R6 // advance LE argument address by 8 byte + MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame + SUB $1, R8 + CMP R8, $0 + BNE repeat + +docall: + MOVD funcdesc+0(FP), R8 // R8-> function descriptor + LMG 0(R8), R5, R6 + MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC + LE_CALL // balr R7, R6 (return #1) + NOPH + MOVD R3, ret+32(FP) + CMP R3, $-1 // compare result to -1 + BNE done + + // retrieve errno and errno2 + MOVD zosLibVec<>(SB), R8 + ADD $(__errno), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __errno (return #3) + NOPH + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) + MOVD zosLibVec<>(SB), R8 + ADD $(__err2ad), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __err2ad (return #2) + NOPH + MOVW (R3), R2 // retrieve errno2 + MOVD R2, errno2+40(FP) // store in return area + +done: + MOVD R4, 0(R9) // Save stack pointer. + RET + +// +// Call LE function, if the return is 0 +// errno and errno2 is retrieved +// +TEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0 + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD CAA(R8), R9 + MOVD g, GOCB(R9) + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address + MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer + + MOVD parms_base+8(FP), R7 // R7 -> argument array + MOVD parms_len+16(FP), R8 // R8 number of arguments + + // arg 1 ---> R1 + CMP R8, $0 + BEQ docall + SUB $1, R8 + MOVD 0(R7), R1 + + // arg 2 ---> R2 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R2 + + // arg 3 --> R3 + CMP R8, $0 + BEQ docall + SUB $1, R8 + ADD $8, R7 + MOVD 0(R7), R3 + + CMP R8, $0 + BEQ docall + MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument + +repeat: + ADD $8, R7 + MOVD 0(R7), R0 // advance arg pointer by 8 byte + ADD $8, R6 // advance LE argument address by 8 byte + MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame + SUB $1, R8 + CMP R8, $0 + BNE repeat + +docall: + MOVD funcdesc+0(FP), R8 // R8-> function descriptor + LMG 0(R8), R5, R6 + MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC + LE_CALL // balr R7, R6 (return #1) + NOPH + MOVD R3, ret+32(FP) + CMP R3, $0 // compare result to 0 + BNE done + + // retrieve errno and errno2 + MOVD zosLibVec<>(SB), R8 + ADD $(__errno), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __errno (return #3) + NOPH + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) + MOVD zosLibVec<>(SB), R8 + ADD $(__err2ad), R8 + LMG 0(R8), R5, R6 + LE_CALL // balr R7, R6 __err2ad (return #2) + NOPH + MOVW (R3), R2 // retrieve errno2 + MOVD R2, errno2+40(FP) // store in return area + XOR R2, R2 + MOVWZ R2, (R3) // clear errno2 + +done: + MOVD R4, 0(R9) // Save stack pointer. + RET + +// +// function to test if a pointer can be safely dereferenced (content read) +// return 0 for succces +// +TEXT ·ptrtest(SB), NOSPLIT, $0-16 + MOVD arg+0(FP), R10 // test pointer in R10 + + // set up R2 to point to CEECAADMC + BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 + BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 + BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) + BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) + + // set up R5 to point to the "shunt" path which set 1 to R3 (failure) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 + BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 + BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 + + // if r3 is not zero (failed) then branch to finish + BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 + BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 + + // stomic store shunt address in R5 into CEECAADMC + BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) + + // now try reading from the test pointer in R10, if it fails it branches to the "lghi" instruction above + BYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 9,0(10) + + // finish here, restore 0 into CEECAADMC + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 + BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) + MOVD R3, ret+8(FP) // result in R3 + RET + +// +// function to test if a untptr can be loaded from a pointer +// return 1: the 8-byte content +// 2: 0 for success, 1 for failure +// +// func safeload(ptr uintptr) ( value uintptr, error uintptr) +TEXT ·safeload(SB), NOSPLIT, $0-24 + MOVD ptr+0(FP), R10 // test pointer in R10 + MOVD $0x0, R6 + BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 + BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 + BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) + BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) + BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 + BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 + BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 + BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 + BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 + BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) + BYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 6,0(10) + BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 + BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) + MOVD R6, value+8(FP) // result in R6 + MOVD R3, error+16(FP) // error in R3 + RET diff --git a/vendor/golang.org/x/sys/unix/auxv.go b/vendor/golang.org/x/sys/unix/auxv.go new file mode 100644 index 0000000..37a8252 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/auxv.go @@ -0,0 +1,36 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import ( + "syscall" + "unsafe" +) + +//go:linkname runtime_getAuxv runtime.getAuxv +func runtime_getAuxv() []uintptr + +// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. +// The returned slice is always a fresh copy, owned by the caller. +// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, +// which happens in some locked-down environments and build modes. +func Auxv() ([][2]uintptr, error) { + vec := runtime_getAuxv() + vecLen := len(vec) + + if vecLen == 0 { + return nil, syscall.ENOENT + } + + if vecLen%2 != 0 { + return nil, syscall.EINVAL + } + + result := make([]uintptr, vecLen) + copy(result, vec) + return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil +} diff --git a/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/vendor/golang.org/x/sys/unix/auxv_unsupported.go new file mode 100644 index 0000000..1200487 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/auxv_unsupported.go @@ -0,0 +1,13 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import "syscall" + +func Auxv() ([][2]uintptr, error) { + return nil, syscall.ENOTSUP +} diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go new file mode 100644 index 0000000..a178a61 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go @@ -0,0 +1,36 @@ +// 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. + +// Bluetooth sockets and messages + +package unix + +// Bluetooth Protocols +const ( + BTPROTO_L2CAP = 0 + BTPROTO_HCI = 1 + BTPROTO_SCO = 2 + BTPROTO_RFCOMM = 3 + BTPROTO_BNEP = 4 + BTPROTO_CMTP = 5 + BTPROTO_HIDP = 6 + BTPROTO_AVDTP = 7 +) + +const ( + HCI_CHANNEL_RAW = 0 + HCI_CHANNEL_USER = 1 + HCI_CHANNEL_MONITOR = 2 + HCI_CHANNEL_CONTROL = 3 + HCI_CHANNEL_LOGGING = 4 +) + +// Socketoption Level +const ( + SOL_BLUETOOTH = 0x112 + SOL_HCI = 0x0 + SOL_L2CAP = 0x6 + SOL_RFCOMM = 0x12 + SOL_SCO = 0x11 +) diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go new file mode 100644 index 0000000..39d647d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go @@ -0,0 +1,657 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos + +package unix + +import ( + "bytes" + "fmt" + "unsafe" +) + +//go:noescape +func bpxcall(plist []unsafe.Pointer, bpx_offset int64) + +//go:noescape +func A2e([]byte) + +//go:noescape +func E2a([]byte) + +const ( + BPX4STA = 192 // stat + BPX4FST = 104 // fstat + BPX4LST = 132 // lstat + BPX4OPN = 156 // open + BPX4CLO = 72 // close + BPX4CHR = 500 // chattr + BPX4FCR = 504 // fchattr + BPX4LCR = 1180 // lchattr + BPX4CTW = 492 // cond_timed_wait + BPX4GTH = 1056 // __getthent + BPX4PTQ = 412 // pthread_quiesc + BPX4PTR = 320 // ptrace +) + +const ( + //options + //byte1 + BPX_OPNFHIGH = 0x80 + //byte2 + BPX_OPNFEXEC = 0x80 + //byte3 + BPX_O_NOLARGEFILE = 0x08 + BPX_O_LARGEFILE = 0x04 + BPX_O_ASYNCSIG = 0x02 + BPX_O_SYNC = 0x01 + //byte4 + BPX_O_CREXCL = 0xc0 + BPX_O_CREAT = 0x80 + BPX_O_EXCL = 0x40 + BPX_O_NOCTTY = 0x20 + BPX_O_TRUNC = 0x10 + BPX_O_APPEND = 0x08 + BPX_O_NONBLOCK = 0x04 + BPX_FNDELAY = 0x04 + BPX_O_RDWR = 0x03 + BPX_O_RDONLY = 0x02 + BPX_O_WRONLY = 0x01 + BPX_O_ACCMODE = 0x03 + BPX_O_GETFL = 0x0f + + //mode + // byte1 (file type) + BPX_FT_DIR = 1 + BPX_FT_CHARSPEC = 2 + BPX_FT_REGFILE = 3 + BPX_FT_FIFO = 4 + BPX_FT_SYMLINK = 5 + BPX_FT_SOCKET = 6 + //byte3 + BPX_S_ISUID = 0x08 + BPX_S_ISGID = 0x04 + BPX_S_ISVTX = 0x02 + BPX_S_IRWXU1 = 0x01 + BPX_S_IRUSR = 0x01 + //byte4 + BPX_S_IRWXU2 = 0xc0 + BPX_S_IWUSR = 0x80 + BPX_S_IXUSR = 0x40 + BPX_S_IRWXG = 0x38 + BPX_S_IRGRP = 0x20 + BPX_S_IWGRP = 0x10 + BPX_S_IXGRP = 0x08 + BPX_S_IRWXOX = 0x07 + BPX_S_IROTH = 0x04 + BPX_S_IWOTH = 0x02 + BPX_S_IXOTH = 0x01 + + CW_INTRPT = 1 + CW_CONDVAR = 32 + CW_TIMEOUT = 64 + + PGTHA_NEXT = 2 + PGTHA_CURRENT = 1 + PGTHA_FIRST = 0 + PGTHA_LAST = 3 + PGTHA_PROCESS = 0x80 + PGTHA_CONTTY = 0x40 + PGTHA_PATH = 0x20 + PGTHA_COMMAND = 0x10 + PGTHA_FILEDATA = 0x08 + PGTHA_THREAD = 0x04 + PGTHA_PTAG = 0x02 + PGTHA_COMMANDLONG = 0x01 + PGTHA_THREADFAST = 0x80 + PGTHA_FILEPATH = 0x40 + PGTHA_THDSIGMASK = 0x20 + // thread quiece mode + QUIESCE_TERM int32 = 1 + QUIESCE_FORCE int32 = 2 + QUIESCE_QUERY int32 = 3 + QUIESCE_FREEZE int32 = 4 + QUIESCE_UNFREEZE int32 = 5 + FREEZE_THIS_THREAD int32 = 6 + FREEZE_EXIT int32 = 8 + QUIESCE_SRB int32 = 9 +) + +type Pgtha struct { + Pid uint32 // 0 + Tid0 uint32 // 4 + Tid1 uint32 + Accesspid byte // C + Accesstid byte // D + Accessasid uint16 // E + Loginname [8]byte // 10 + Flag1 byte // 18 + Flag1b2 byte // 19 +} + +type Bpxystat_t struct { // DSECT BPXYSTAT + St_id [4]uint8 // 0 + St_length uint16 // 0x4 + St_version uint16 // 0x6 + St_mode uint32 // 0x8 + St_ino uint32 // 0xc + St_dev uint32 // 0x10 + St_nlink uint32 // 0x14 + St_uid uint32 // 0x18 + St_gid uint32 // 0x1c + St_size uint64 // 0x20 + St_atime uint32 // 0x28 + St_mtime uint32 // 0x2c + St_ctime uint32 // 0x30 + St_rdev uint32 // 0x34 + St_auditoraudit uint32 // 0x38 + St_useraudit uint32 // 0x3c + St_blksize uint32 // 0x40 + St_createtime uint32 // 0x44 + St_auditid [4]uint32 // 0x48 + St_res01 uint32 // 0x58 + Ft_ccsid uint16 // 0x5c + Ft_flags uint16 // 0x5e + St_res01a [2]uint32 // 0x60 + St_res02 uint32 // 0x68 + St_blocks uint32 // 0x6c + St_opaque [3]uint8 // 0x70 + St_visible uint8 // 0x73 + St_reftime uint32 // 0x74 + St_fid uint64 // 0x78 + St_filefmt uint8 // 0x80 + St_fspflag2 uint8 // 0x81 + St_res03 [2]uint8 // 0x82 + St_ctimemsec uint32 // 0x84 + St_seclabel [8]uint8 // 0x88 + St_res04 [4]uint8 // 0x90 + // end of version 1 + _ uint32 // 0x94 + St_atime64 uint64 // 0x98 + St_mtime64 uint64 // 0xa0 + St_ctime64 uint64 // 0xa8 + St_createtime64 uint64 // 0xb0 + St_reftime64 uint64 // 0xb8 + _ uint64 // 0xc0 + St_res05 [16]uint8 // 0xc8 + // end of version 2 +} + +type BpxFilestatus struct { + Oflag1 byte + Oflag2 byte + Oflag3 byte + Oflag4 byte +} + +type BpxMode struct { + Ftype byte + Mode1 byte + Mode2 byte + Mode3 byte +} + +// Thr attribute structure for extended attributes +type Bpxyatt_t struct { // DSECT BPXYATT + Att_id [4]uint8 + Att_version uint16 + Att_res01 [2]uint8 + Att_setflags1 uint8 + Att_setflags2 uint8 + Att_setflags3 uint8 + Att_setflags4 uint8 + Att_mode uint32 + Att_uid uint32 + Att_gid uint32 + Att_opaquemask [3]uint8 + Att_visblmaskres uint8 + Att_opaque [3]uint8 + Att_visibleres uint8 + Att_size_h uint32 + Att_size_l uint32 + Att_atime uint32 + Att_mtime uint32 + Att_auditoraudit uint32 + Att_useraudit uint32 + Att_ctime uint32 + Att_reftime uint32 + // end of version 1 + Att_filefmt uint8 + Att_res02 [3]uint8 + Att_filetag uint32 + Att_res03 [8]uint8 + // end of version 2 + Att_atime64 uint64 + Att_mtime64 uint64 + Att_ctime64 uint64 + Att_reftime64 uint64 + Att_seclabel [8]uint8 + Att_ver3res02 [8]uint8 + // end of version 3 +} + +func BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(options) + parms[3] = unsafe.Pointer(mode) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4OPN) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxClose(fd int32) (rv int32, rc int32, rn int32) { + var parms [4]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&rv) + parms[2] = unsafe.Pointer(&rc) + parms[3] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CLO) + return rv, rc, rn +} + +func BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [6]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&stat_sz) + parms[2] = unsafe.Pointer(st) + parms[3] = unsafe.Pointer(&rv) + parms[4] = unsafe.Pointer(&rc) + parms[5] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4FST) + return rv, rc, rn +} + +func BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&stat_sz) + parms[3] = unsafe.Pointer(st) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4STA) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { + if len(name) < 1024 { + var namebuf [1024]byte + sz := int32(copy(namebuf[:], name)) + A2e(namebuf[:sz]) + st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} + st.St_version = 2 + stat_sz := uint32(unsafe.Sizeof(*st)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&stat_sz) + parms[3] = unsafe.Pointer(st) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4LST) + return rv, rc, rn + } + return -1, -1, -1 +} + +func BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + if len(path) >= 1024 { + return -1, -1, -1 + } + var namebuf [1024]byte + sz := int32(copy(namebuf[:], path)) + A2e(namebuf[:sz]) + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&attr_sz) + parms[3] = unsafe.Pointer(attr) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CHR) + return rv, rc, rn +} + +func BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + if len(path) >= 1024 { + return -1, -1, -1 + } + var namebuf [1024]byte + sz := int32(copy(namebuf[:], path)) + A2e(namebuf[:sz]) + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [7]unsafe.Pointer + parms[0] = unsafe.Pointer(&sz) + parms[1] = unsafe.Pointer(&namebuf[0]) + parms[2] = unsafe.Pointer(&attr_sz) + parms[3] = unsafe.Pointer(attr) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4LCR) + return rv, rc, rn +} + +func BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { + attr_sz := uint32(unsafe.Sizeof(*attr)) + var parms [6]unsafe.Pointer + parms[0] = unsafe.Pointer(&fd) + parms[1] = unsafe.Pointer(&attr_sz) + parms[2] = unsafe.Pointer(attr) + parms[3] = unsafe.Pointer(&rv) + parms[4] = unsafe.Pointer(&rc) + parms[5] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4FCR) + return rv, rc, rn +} + +func BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) { + var parms [8]unsafe.Pointer + parms[0] = unsafe.Pointer(&sec) + parms[1] = unsafe.Pointer(&nsec) + parms[2] = unsafe.Pointer(&events) + parms[3] = unsafe.Pointer(secrem) + parms[4] = unsafe.Pointer(nsecrem) + parms[5] = unsafe.Pointer(&rv) + parms[6] = unsafe.Pointer(&rc) + parms[7] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4CTW) + return rv, rc, rn +} +func BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) { + var parms [7]unsafe.Pointer + inlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is "packed" and must be 26-byte + parms[0] = unsafe.Pointer(&inlen) + parms[1] = unsafe.Pointer(&in) + parms[2] = unsafe.Pointer(outlen) + parms[3] = unsafe.Pointer(&out) + parms[4] = unsafe.Pointer(&rv) + parms[5] = unsafe.Pointer(&rc) + parms[6] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4GTH) + return rv, rc, rn +} +func ZosJobname() (jobname string, err error) { + var pgtha Pgtha + pgtha.Pid = uint32(Getpid()) + pgtha.Accesspid = PGTHA_CURRENT + pgtha.Flag1 = PGTHA_PROCESS + var out [256]byte + var outlen uint32 + outlen = 256 + rv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0])) + if rv == 0 { + gthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic + ix := bytes.Index(out[:], gthc) + if ix == -1 { + err = fmt.Errorf("BPX4GTH: gthc return data not found") + return + } + jn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80 + E2a(jn) + jobname = string(bytes.TrimRight(jn, " ")) + + } else { + err = fmt.Errorf("BPX4GTH: rc=%d errno=%d reason=code=0x%x", rv, rc, rn) + } + return +} +func Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) { + var userdata [8]byte + var parms [5]unsafe.Pointer + copy(userdata[:], data+" ") + A2e(userdata[:]) + parms[0] = unsafe.Pointer(&code) + parms[1] = unsafe.Pointer(&userdata[0]) + parms[2] = unsafe.Pointer(&rv) + parms[3] = unsafe.Pointer(&rc) + parms[4] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4PTQ) + return rv, rc, rn +} + +const ( + PT_TRACE_ME = 0 // Debug this process + PT_READ_I = 1 // Read a full word + PT_READ_D = 2 // Read a full word + PT_READ_U = 3 // Read control info + PT_WRITE_I = 4 //Write a full word + PT_WRITE_D = 5 //Write a full word + PT_CONTINUE = 7 //Continue the process + PT_KILL = 8 //Terminate the process + PT_READ_GPR = 11 // Read GPR, CR, PSW + PT_READ_FPR = 12 // Read FPR + PT_READ_VR = 13 // Read VR + PT_WRITE_GPR = 14 // Write GPR, CR, PSW + PT_WRITE_FPR = 15 // Write FPR + PT_WRITE_VR = 16 // Write VR + PT_READ_BLOCK = 17 // Read storage + PT_WRITE_BLOCK = 19 // Write storage + PT_READ_GPRH = 20 // Read GPRH + PT_WRITE_GPRH = 21 // Write GPRH + PT_REGHSET = 22 // Read all GPRHs + PT_ATTACH = 30 // Attach to a process + PT_DETACH = 31 // Detach from a process + PT_REGSET = 32 // Read all GPRs + PT_REATTACH = 33 // Reattach to a process + PT_LDINFO = 34 // Read loader info + PT_MULTI = 35 // Multi process mode + PT_LD64INFO = 36 // RMODE64 Info Area + PT_BLOCKREQ = 40 // Block request + PT_THREAD_INFO = 60 // Read thread info + PT_THREAD_MODIFY = 61 + PT_THREAD_READ_FOCUS = 62 + PT_THREAD_WRITE_FOCUS = 63 + PT_THREAD_HOLD = 64 + PT_THREAD_SIGNAL = 65 + PT_EXPLAIN = 66 + PT_EVENTS = 67 + PT_THREAD_INFO_EXTENDED = 68 + PT_REATTACH2 = 71 + PT_CAPTURE = 72 + PT_UNCAPTURE = 73 + PT_GET_THREAD_TCB = 74 + PT_GET_ALET = 75 + PT_SWAPIN = 76 + PT_EXTENDED_EVENT = 98 + PT_RECOVER = 99 // Debug a program check + PT_GPR0 = 0 // General purpose register 0 + PT_GPR1 = 1 // General purpose register 1 + PT_GPR2 = 2 // General purpose register 2 + PT_GPR3 = 3 // General purpose register 3 + PT_GPR4 = 4 // General purpose register 4 + PT_GPR5 = 5 // General purpose register 5 + PT_GPR6 = 6 // General purpose register 6 + PT_GPR7 = 7 // General purpose register 7 + PT_GPR8 = 8 // General purpose register 8 + PT_GPR9 = 9 // General purpose register 9 + PT_GPR10 = 10 // General purpose register 10 + PT_GPR11 = 11 // General purpose register 11 + PT_GPR12 = 12 // General purpose register 12 + PT_GPR13 = 13 // General purpose register 13 + PT_GPR14 = 14 // General purpose register 14 + PT_GPR15 = 15 // General purpose register 15 + PT_FPR0 = 16 // Floating point register 0 + PT_FPR1 = 17 // Floating point register 1 + PT_FPR2 = 18 // Floating point register 2 + PT_FPR3 = 19 // Floating point register 3 + PT_FPR4 = 20 // Floating point register 4 + PT_FPR5 = 21 // Floating point register 5 + PT_FPR6 = 22 // Floating point register 6 + PT_FPR7 = 23 // Floating point register 7 + PT_FPR8 = 24 // Floating point register 8 + PT_FPR9 = 25 // Floating point register 9 + PT_FPR10 = 26 // Floating point register 10 + PT_FPR11 = 27 // Floating point register 11 + PT_FPR12 = 28 // Floating point register 12 + PT_FPR13 = 29 // Floating point register 13 + PT_FPR14 = 30 // Floating point register 14 + PT_FPR15 = 31 // Floating point register 15 + PT_FPC = 32 // Floating point control register + PT_PSW = 40 // PSW + PT_PSW0 = 40 // Left half of the PSW + PT_PSW1 = 41 // Right half of the PSW + PT_CR0 = 42 // Control register 0 + PT_CR1 = 43 // Control register 1 + PT_CR2 = 44 // Control register 2 + PT_CR3 = 45 // Control register 3 + PT_CR4 = 46 // Control register 4 + PT_CR5 = 47 // Control register 5 + PT_CR6 = 48 // Control register 6 + PT_CR7 = 49 // Control register 7 + PT_CR8 = 50 // Control register 8 + PT_CR9 = 51 // Control register 9 + PT_CR10 = 52 // Control register 10 + PT_CR11 = 53 // Control register 11 + PT_CR12 = 54 // Control register 12 + PT_CR13 = 55 // Control register 13 + PT_CR14 = 56 // Control register 14 + PT_CR15 = 57 // Control register 15 + PT_GPRH0 = 58 // GP High register 0 + PT_GPRH1 = 59 // GP High register 1 + PT_GPRH2 = 60 // GP High register 2 + PT_GPRH3 = 61 // GP High register 3 + PT_GPRH4 = 62 // GP High register 4 + PT_GPRH5 = 63 // GP High register 5 + PT_GPRH6 = 64 // GP High register 6 + PT_GPRH7 = 65 // GP High register 7 + PT_GPRH8 = 66 // GP High register 8 + PT_GPRH9 = 67 // GP High register 9 + PT_GPRH10 = 68 // GP High register 10 + PT_GPRH11 = 69 // GP High register 11 + PT_GPRH12 = 70 // GP High register 12 + PT_GPRH13 = 71 // GP High register 13 + PT_GPRH14 = 72 // GP High register 14 + PT_GPRH15 = 73 // GP High register 15 + PT_VR0 = 74 // Vector register 0 + PT_VR1 = 75 // Vector register 1 + PT_VR2 = 76 // Vector register 2 + PT_VR3 = 77 // Vector register 3 + PT_VR4 = 78 // Vector register 4 + PT_VR5 = 79 // Vector register 5 + PT_VR6 = 80 // Vector register 6 + PT_VR7 = 81 // Vector register 7 + PT_VR8 = 82 // Vector register 8 + PT_VR9 = 83 // Vector register 9 + PT_VR10 = 84 // Vector register 10 + PT_VR11 = 85 // Vector register 11 + PT_VR12 = 86 // Vector register 12 + PT_VR13 = 87 // Vector register 13 + PT_VR14 = 88 // Vector register 14 + PT_VR15 = 89 // Vector register 15 + PT_VR16 = 90 // Vector register 16 + PT_VR17 = 91 // Vector register 17 + PT_VR18 = 92 // Vector register 18 + PT_VR19 = 93 // Vector register 19 + PT_VR20 = 94 // Vector register 20 + PT_VR21 = 95 // Vector register 21 + PT_VR22 = 96 // Vector register 22 + PT_VR23 = 97 // Vector register 23 + PT_VR24 = 98 // Vector register 24 + PT_VR25 = 99 // Vector register 25 + PT_VR26 = 100 // Vector register 26 + PT_VR27 = 101 // Vector register 27 + PT_VR28 = 102 // Vector register 28 + PT_VR29 = 103 // Vector register 29 + PT_VR30 = 104 // Vector register 30 + PT_VR31 = 105 // Vector register 31 + PT_PSWG = 106 // PSWG + PT_PSWG0 = 106 // Bytes 0-3 + PT_PSWG1 = 107 // Bytes 4-7 + PT_PSWG2 = 108 // Bytes 8-11 (IA high word) + PT_PSWG3 = 109 // Bytes 12-15 (IA low word) +) + +func Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) { + var parms [8]unsafe.Pointer + parms[0] = unsafe.Pointer(&request) + parms[1] = unsafe.Pointer(&pid) + parms[2] = unsafe.Pointer(&addr) + parms[3] = unsafe.Pointer(&data) + parms[4] = unsafe.Pointer(&buffer) + parms[5] = unsafe.Pointer(&rv) + parms[6] = unsafe.Pointer(&rc) + parms[7] = unsafe.Pointer(&rn) + bpxcall(parms[:], BPX4PTR) + return rv, rc, rn +} + +func copyU8(val uint8, dest []uint8) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU8Arr(src, dest []uint8) int { + if len(dest) < len(src) { + return 0 + } + for i, v := range src { + dest[i] = v + } + return len(src) +} + +func copyU16(val uint16, dest []uint16) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU32(val uint32, dest []uint32) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} + +func copyU32Arr(src, dest []uint32) int { + if len(dest) < len(src) { + return 0 + } + for i, v := range src { + dest[i] = v + } + return len(src) +} + +func copyU64(val uint64, dest []uint64) int { + if len(dest) < 1 { + return 0 + } + dest[0] = val + return 1 +} diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s new file mode 100644 index 0000000..4bd4a17 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s @@ -0,0 +1,192 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "go_asm.h" +#include "textflag.h" + +// function to call USS assembly language services +// +// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm +// +// arg1 unsafe.Pointer array that ressembles an OS PLIST +// +// arg2 function offset as in +// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm +// +// func bpxcall(plist []unsafe.Pointer, bpx_offset int64) + +TEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0 + MOVD plist_base+0(FP), R1 // r1 points to plist + MOVD bpx_offset+24(FP), R2 // r2 offset to BPX vector table + MOVD R14, R7 // save r14 + MOVD R15, R8 // save r15 + MOVWZ 16(R0), R9 + MOVWZ 544(R9), R9 + MOVWZ 24(R9), R9 // call vector in r9 + ADD R2, R9 // add offset to vector table + MOVWZ (R9), R9 // r9 points to entry point + BYTE $0x0D // BL R14,R9 --> basr r14,r9 + BYTE $0xE9 // clobbers 0,1,14,15 + MOVD R8, R15 // restore 15 + JMP R7 // return via saved return address + +// func A2e(arr [] byte) +// code page conversion from 819 to 1047 +TEXT ·A2e(SB), NOSPLIT|NOFRAME, $0 + MOVD arg_base+0(FP), R2 // pointer to arry of characters + MOVD arg_len+8(FP), R3 // count + XOR R0, R0 + XOR R1, R1 + BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) + + // ASCII -> EBCDIC conversion table: + BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 + BYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f + BYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b + BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f + BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 + BYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26 + BYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27 + BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f + BYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b + BYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d + BYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e + BYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61 + BYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3 + BYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7 + BYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e + BYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f + BYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3 + BYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7 + BYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2 + BYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6 + BYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2 + BYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6 + BYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad + BYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d + BYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83 + BYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87 + BYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92 + BYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96 + BYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2 + BYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6 + BYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0 + BYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07 + BYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23 + BYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17 + BYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b + BYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b + BYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33 + BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08 + BYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b + BYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff + BYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1 + BYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5 + BYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a + BYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc + BYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa + BYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3 + BYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b + BYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab + BYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66 + BYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68 + BYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73 + BYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77 + BYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee + BYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf + BYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb + BYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59 + BYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46 + BYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48 + BYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53 + BYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57 + BYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce + BYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1 + BYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb + BYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf + +retry: + WORD $0xB9931022 // TROO 2,2,b'0001' + BVS retry + RET + +// func e2a(arr [] byte) +// code page conversion from 1047 to 819 +TEXT ·E2a(SB), NOSPLIT|NOFRAME, $0 + MOVD arg_base+0(FP), R2 // pointer to arry of characters + MOVD arg_len+8(FP), R3 // count + XOR R0, R0 + XOR R1, R1 + BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) + + // EBCDIC -> ASCII conversion table: + BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 + BYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f + BYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b + BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f + BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 + BYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87 + BYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f + BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f + BYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83 + BYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b + BYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b + BYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07 + BYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93 + BYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04 + BYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b + BYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a + BYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4 + BYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5 + BYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e + BYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c + BYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb + BYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef + BYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24 + BYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e + BYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4 + BYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5 + BYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c + BYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f + BYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb + BYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf + BYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23 + BYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22 + BYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63 + BYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67 + BYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb + BYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1 + BYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c + BYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70 + BYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba + BYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4 + BYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74 + BYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78 + BYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf + BYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae + BYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7 + BYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc + BYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8 + BYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7 + BYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43 + BYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47 + BYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4 + BYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5 + BYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c + BYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50 + BYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb + BYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff + BYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54 + BYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58 + BYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4 + BYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5 + BYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33 + BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37 + BYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb + BYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f + +retry: + WORD $0xB9931022 // TROO 2,2,b'0001' + BVS retry + RET diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go new file mode 100644 index 0000000..a086578 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go @@ -0,0 +1,195 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build freebsd + +package unix + +import ( + "errors" + "fmt" +) + +// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c + +const ( + // This is the version of CapRights this package understands. See C implementation for parallels. + capRightsGoVersion = CAP_RIGHTS_VERSION_00 + capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 + capArSizeMax = capRightsGoVersion + 2 +) + +var ( + bit2idx = []int{ + -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, + 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + } +) + +func capidxbit(right uint64) int { + return int((right >> 57) & 0x1f) +} + +func rightToIndex(right uint64) (int, error) { + idx := capidxbit(right) + if idx < 0 || idx >= len(bit2idx) { + return -2, fmt.Errorf("index for right 0x%x out of range", right) + } + return bit2idx[idx], nil +} + +func caprver(right uint64) int { + return int(right >> 62) +} + +func capver(rights *CapRights) int { + return caprver(rights.Rights[0]) +} + +func caparsize(rights *CapRights) int { + return capver(rights) + 2 +} + +// CapRightsSet sets the permissions in setrights in rights. +func CapRightsSet(rights *CapRights, setrights []uint64) error { + // This is essentially a copy of cap_rights_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] |= right + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsClear clears the permissions in clearrights from rights. +func CapRightsClear(rights *CapRights, clearrights []uint64) error { + // This is essentially a copy of cap_rights_vclear() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range clearrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsIsSet checks whether all the permissions in setrights are present in rights. +func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { + // This is essentially a copy of cap_rights_is_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return false, fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return false, errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return false, errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return false, err + } + if i >= n { + return false, errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return false, errors.New("index mismatch") + } + if (rights.Rights[i] & right) != right { + return false, nil + } + } + + return true, nil +} + +func capright(idx uint64, bit uint64) uint64 { + return ((1 << (57 + idx)) | bit) +} + +// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. +// See man cap_rights_init(3) and rights(4). +func CapRightsInit(rights []uint64) (*CapRights, error) { + var r CapRights + r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) + r.Rights[1] = capright(1, 0) + + err := CapRightsSet(&r, rights) + if err != nil { + return nil, err + } + return &r, nil +} + +// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. +// The capability rights on fd can never be increased by CapRightsLimit. +// See man cap_rights_limit(2) and rights(4). +func CapRightsLimit(fd uintptr, rights *CapRights) error { + return capRightsLimit(int(fd), rights) +} + +// CapRightsGet returns a CapRights structure containing the operations permitted on fd. +// See man cap_rights_get(3) and rights(4). +func CapRightsGet(fd uintptr) (*CapRights, error) { + r, err := CapRightsInit(nil) + if err != nil { + return nil, err + } + err = capRightsGet(capRightsGoVersion, int(fd), r) + if err != nil { + return nil, err + } + return r, nil +} diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go new file mode 100644 index 0000000..6fb7cb7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/constants.go @@ -0,0 +1,13 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +package unix + +const ( + R_OK = 0x4 + W_OK = 0x2 + X_OK = 0x1 +) diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go new file mode 100644 index 0000000..d785134 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go @@ -0,0 +1,26 @@ +// 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. + +//go:build aix && ppc + +// Functions to access/create device major and minor numbers matching the +// encoding used by AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0xffff) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return uint64(((major) << 16) | (minor)) +} diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go new file mode 100644 index 0000000..623a5e6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go @@ -0,0 +1,28 @@ +// 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. + +//go:build aix && ppc64 + +// Functions to access/create device major and minor numbers matching the +// encoding used AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x3fffffff00000000) >> 32) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32((dev & 0x00000000ffffffff) >> 0) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + var DEVNO64 uint64 + DEVNO64 = 0x8000000000000000 + return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) +} diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go new file mode 100644 index 0000000..8d1dc0f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_darwin.go @@ -0,0 +1,24 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Darwin's sys/types.h header. + +package unix + +// Major returns the major component of a Darwin device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 24) & 0xff) +} + +// Minor returns the minor component of a Darwin device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffffff) +} + +// Mkdev returns a Darwin device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 24) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go new file mode 100644 index 0000000..8502f20 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_dragonfly.go @@ -0,0 +1,30 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Dragonfly's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a DragonFlyBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a DragonFlyBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a DragonFlyBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go new file mode 100644 index 0000000..eba3b4b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_freebsd.go @@ -0,0 +1,30 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in FreeBSD's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a FreeBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a FreeBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a FreeBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go new file mode 100644 index 0000000..d165d6f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_linux.go @@ -0,0 +1,42 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used by the Linux kernel and glibc. +// +// The information below is extracted and adapted from bits/sysmacros.h in the +// glibc sources: +// +// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's +// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major +// number and m is a hex digit of the minor number. This is backward compatible +// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also +// backward compatible with the Linux kernel, which for some architectures uses +// 32-bit dev_t, encoded as mmmM MMmm. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + major := uint32((dev & 0x00000000000fff00) >> 8) + major |= uint32((dev & 0xfffff00000000000) >> 32) + return major +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x00000000000000ff) >> 0) + minor |= uint32((dev & 0x00000ffffff00000) >> 12) + return minor +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) & 0x00000fff) << 8 + dev |= (uint64(major) & 0xfffff000) << 32 + dev |= (uint64(minor) & 0x000000ff) << 0 + dev |= (uint64(minor) & 0xffffff00) << 12 + return dev +} diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go new file mode 100644 index 0000000..b4a203d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_netbsd.go @@ -0,0 +1,29 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in NetBSD's sys/types.h header. + +package unix + +// Major returns the major component of a NetBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x000fff00) >> 8) +} + +// Minor returns the minor component of a NetBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xfff00000) >> 12) + return minor +} + +// Mkdev returns a NetBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x000fff00 + dev |= (uint64(minor) << 12) & 0xfff00000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go new file mode 100644 index 0000000..f3430c4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_openbsd.go @@ -0,0 +1,29 @@ +// 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. + +// Functions to access/create device major and minor numbers matching the +// encoding used in OpenBSD's sys/types.h header. + +package unix + +// Major returns the major component of an OpenBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x0000ff00) >> 8) +} + +// Minor returns the minor component of an OpenBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xffff0000) >> 8) + return minor +} + +// Mkdev returns an OpenBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x0000ff00 + dev |= (uint64(minor) << 8) & 0xffff0000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} 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 0000000..bb6a64f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dev_zos.go @@ -0,0 +1,28 @@ +// 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 + +// Functions to access/create device major and minor numbers matching the +// encoding used by z/OS. +// +// The information below is extracted and adapted from <sys/stat.h> 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 new file mode 100644 index 0000000..1ebf117 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -0,0 +1,102 @@ +// 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 aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +package unix + +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) { + 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 new file mode 100644 index 0000000..1095fd3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/endian_big.go @@ -0,0 +1,9 @@ +// 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. +// +//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 + +package unix + +const isBigEndian = true diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go new file mode 100644 index 0000000..b9f0e27 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/endian_little.go @@ -0,0 +1,9 @@ +// 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. +// +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh + +package unix + +const isBigEndian = false diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go new file mode 100644 index 0000000..a96da71 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/env_unix.go @@ -0,0 +1,31 @@ +// 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. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +// Unix environment variables. + +package unix + +import "syscall" + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go new file mode 100644 index 0000000..6200876 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl.go @@ -0,0 +1,36 @@ +// 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 dragonfly || freebsd || linux || netbsd + +package unix + +import "unsafe" + +// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux +// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. +var fcntl64Syscall uintptr = SYS_FCNTL + +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 + } + 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))) + if errno == 0 { + return nil + } + return errno +} diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go new file mode 100644 index 0000000..a9911c7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -0,0 +1,24 @@ +// 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 + +import "unsafe" + +// 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 { + _, 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 new file mode 100644 index 0000000..13b4acd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go @@ -0,0 +1,13 @@ +// 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) || (linux && ppc) + +package unix + +func init() { + // On 32-bit Linux systems, the fcntl syscall that matches Go's + // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. + fcntl64Syscall = SYS_FCNTL64 +} 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 0000000..9e83d18 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -0,0 +1,29 @@ +// 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 || zos + +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/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go new file mode 100644 index 0000000..aca5721 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -0,0 +1,59 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && !aix && !hurd + +package unix + +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. + +func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) + +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) { + syscall.Entersyscall() + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0 +} + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0 +} + +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} + +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c new file mode 100644 index 0000000..d468b7b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -0,0 +1,44 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && !aix && !hurd + +#include <errno.h> +#include <stdint.h> +#include <unistd.h> + +#define _STRINGIFY2_(x) #x +#define _STRINGIFY_(x) _STRINGIFY2_(x) +#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) + +// Call syscall from C code because the gccgo support for calling from +// Go to C does not support varargs functions. + +struct ret { + uintptr_t r; + 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) +{ + struct ret r; + + errno = 0; + r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); + r.err = errno; + 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) +{ + return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, 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 new file mode 100644 index 0000000..972d61b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go @@ -0,0 +1,20 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && linux && amd64 + +package unix + +import "syscall" + +//extern gettimeofday +func realGettimeofday(*Timeval, *byte) int32 + +func gettimeofday(tv *Timeval) (err syscall.Errno) { + r := realGettimeofday(tv, nil) + if r < 0 { + return syscall.GetErrno() + } + return 0 +} diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go new file mode 100644 index 0000000..848840a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ifreq_linux.go @@ -0,0 +1,141 @@ +// 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. + +//go:build linux + +package unix + +import ( + "unsafe" +) + +// Helpers for dealing with ifreq since it contains a union and thus requires a +// lot of unsafe.Pointer casts to use properly. + +// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq +// contains an interface name and a union of arbitrary data which can be +// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq +// function. +// +// Use the Name method to access the stored interface name. The union data +// fields can be get and set using the following methods: +// - Uint16/SetUint16: flags +// - Uint32/SetUint32: ifindex, metric, mtu +type Ifreq struct{ raw ifreq } + +// NewIfreq creates an Ifreq with the input network interface name after +// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required) +// bytes. +func NewIfreq(name string) (*Ifreq, error) { + // Leave room for terminating NULL byte. + if len(name) >= IFNAMSIZ { + return nil, EINVAL + } + + var ifr ifreq + copy(ifr.Ifrn[:], name) + + return &Ifreq{raw: ifr}, nil +} + +// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc. + +// Name returns the interface name associated with the Ifreq. +func (ifr *Ifreq) Name() string { + return ByteSliceToString(ifr.raw.Ifrn[:]) +} + +// According to netdevice(7), only AF_INET addresses are returned for numerous +// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port +// field and other data is always empty. + +// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C +// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not +// AF_INET, an error is returned. +func (ifr *Ifreq) Inet4Addr() ([]byte, error) { + raw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0])) + if raw.Family != AF_INET { + // Cannot safely interpret raw.Addr bytes as an IPv4 address. + return nil, EINVAL + } + + return raw.Addr[:], nil +} + +// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an +// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length +// or an error will be returned. +func (ifr *Ifreq) SetInet4Addr(v []byte) error { + if len(v) != 4 { + return EINVAL + } + + var addr [4]byte + copy(addr[:], v) + + ifr.clear() + *(*RawSockaddrInet4)( + unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]), + ) = RawSockaddrInet4{ + // Always set IP family as ioctls would require it anyway. + Family: AF_INET, + Addr: addr, + } + + return nil +} + +// Uint16 returns the Ifreq union data as a C short/Go uint16 value. +func (ifr *Ifreq) Uint16() uint16 { + return *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) +} + +// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data. +func (ifr *Ifreq) SetUint16(v uint16) { + ifr.clear() + *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v +} + +// Uint32 returns the Ifreq union data as a C int/Go uint32 value. +func (ifr *Ifreq) Uint32() uint32 { + return *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) +} + +// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data. +func (ifr *Ifreq) SetUint32(v uint32) { + ifr.clear() + *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v +} + +// clear zeroes the ifreq's union field to prevent trailing garbage data from +// being sent to the kernel if an ifreq is reused. +func (ifr *Ifreq) clear() { + for i := range ifr.raw.Ifru { + ifr.raw.Ifru[i] = 0 + } +} + +// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as +// IoctlGetEthtoolDrvinfo which use these APIs under the hood. + +// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData, +// use the Ifreq.withData method. +type ifreqData struct { + name [IFNAMSIZ]byte + // A type separate from ifreq is required in order to comply with the + // unsafe.Pointer rules since the "pointer-ness" of data would not be + // preserved if it were cast into the byte array of a raw ifreq. + data unsafe.Pointer + // Pad to the same size as ifreq. + _ [len(ifreq{}.Ifru) - SizeofPtr]byte +} + +// withData produces an ifreqData with the pointer p set for ioctls which require +// arbitrary pointer data. +func (ifr Ifreq) withData(p unsafe.Pointer) ifreqData { + return ifreqData{ + name: ifr.raw.Ifrn, + data: p, + } +} diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go new file mode 100644 index 0000000..7ca4fa1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_linux.go @@ -0,0 +1,334 @@ +// 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. + +package unix + +import "unsafe" + +// 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 IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetRTCTime(fd int) (*RTCTime, error) { + var value RTCTime + err := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlSetRTCTime(fd int, value *RTCTime) error { + return ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value)) +} + +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + return ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value)) +} + +// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network +// device specified by ifname. +func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { + ifr, err := NewIfreq(ifname) + if err != nil { + return nil, err + } + + value := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO} + ifrd := ifr.withData(unsafe.Pointer(&value)) + + err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) + return &value, err +} + +// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC +// association for the network device specified by ifname. +func IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) { + ifr, err := NewIfreq(ifname) + if err != nil { + return nil, err + } + + value := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO} + ifrd := ifr.withData(unsafe.Pointer(&value)) + + err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) + return &value, err +} + +// IoctlGetHwTstamp retrieves the hardware timestamping configuration +// for the network device specified by ifname. +func IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) { + ifr, err := NewIfreq(ifname) + if err != nil { + return nil, err + } + + value := HwTstampConfig{} + ifrd := ifr.withData(unsafe.Pointer(&value)) + + err = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd) + return &value, err +} + +// IoctlSetHwTstamp updates the hardware timestamping configuration for +// the network device specified by ifname. +func IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error { + ifr, err := NewIfreq(ifname) + if err != nil { + return err + } + ifrd := ifr.withData(unsafe.Pointer(cfg)) + return ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd) +} + +// FdToClockID derives the clock ID from the file descriptor number +// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is +// suitable for system calls like ClockGettime. +func FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) } + +// IoctlPtpClockGetcaps returns the description of a given PTP device. +func IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) { + var value PtpClockCaps + err := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlPtpSysOffsetPrecise returns a description of the clock +// offset compared to the system clock. +func IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) { + var value PtpSysOffsetPrecise + err := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlPtpSysOffsetExtended returns an extended description of the +// clock offset compared to the system clock. The samples parameter +// specifies the desired number of measurements. +func IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) { + value := PtpSysOffsetExtended{Samples: uint32(samples)} + err := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlPtpPinGetfunc returns the configuration of the specified +// I/O pin on given PTP device. +func IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) { + value := PtpPinDesc{Index: uint32(index)} + err := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlPtpPinSetfunc updates configuration of the specified PTP +// I/O pin. +func IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error { + return ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd)) +} + +// IoctlPtpPeroutRequest configures the periodic output mode of the +// PTP I/O pins. +func IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error { + return ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r)) +} + +// IoctlPtpExttsRequest configures the external timestamping mode +// of the PTP I/O pins. +func IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error { + return ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r)) +} + +// 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 := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value)) + return &value, 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 { + // arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr. + return ioctl(fd, WDIOC_KEEPALIVE, 0) +} + +// 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 { + return ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value)) +} + +// 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 := ioctlPtr(srcFd, FIDEDUPERANGE, 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 +} + +func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { + return ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value)) +} + +func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { + var value HIDRawDevInfo + err := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlHIDGetRawName(fd int) (string, error) { + var value [_HIDIOCGRAWNAME_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawPhys(fd int) (string, error) { + var value [_HIDIOCGRAWPHYS_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawUniq(fd int) (string, error) { + var value [_HIDIOCGRAWUNIQ_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or +// output. See the netdevice(7) man page for details. +func IoctlIfreq(fd int, req uint, value *Ifreq) error { + // It is possible we will add more fields to *Ifreq itself later to prevent + // misuse, so pass the raw *ifreq directly. + return ioctlPtr(fd, req, unsafe.Pointer(&value.raw)) +} + +// TODO(mdlayher): export if and when IfreqData is exported. + +// ioctlIfreqData performs an ioctl using an ifreqData structure for input +// and/or output. See the netdevice(7) man page for details. +func ioctlIfreqData(fd int, req uint, value *ifreqData) error { + // The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are + // identical so pass *IfreqData directly. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an +// existing KCM socket, returning a structure containing the file descriptor of +// the new socket. +func IoctlKCMClone(fd int) (*KCMClone, error) { + var info KCMClone + if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { + return nil, err + } + + return &info, nil +} + +// IoctlKCMAttach attaches a TCP socket and associated BPF program file +// descriptor to a multiplexor. +func IoctlKCMAttach(fd int, info KCMAttach) error { + return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) +} + +// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor. +func IoctlKCMUnattach(fd int, info KCMUnattach) error { + return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) +} + +// IoctlLoopGetStatus64 gets the status of the loop device associated with the +// file descriptor fd using the LOOP_GET_STATUS64 operation. +func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { + var value LoopInfo64 + if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { + return nil, err + } + return &value, nil +} + +// IoctlLoopSetStatus64 sets the status of the loop device associated with the +// file descriptor fd using the LOOP_SET_STATUS64 operation. +func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { + return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) +} + +// IoctlLoopConfigure configures all loop device parameters in a single step +func IoctlLoopConfigure(fd int, value *LoopConfig) error { + return ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value)) +} diff --git a/vendor/golang.org/x/sys/unix/ioctl_signed.go b/vendor/golang.org/x/sys/unix/ioctl_signed.go new file mode 100644 index 0000000..5b0759b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_signed.go @@ -0,0 +1,69 @@ +// 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. + +//go:build aix || solaris + +package unix + +import ( + "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 int, 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 int, value int) error { + v := int32(value) + return ioctlPtr(fd, req, unsafe.Pointer(&v)) +} + +// 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 int, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value will usually be TCSETA or TIOCSETA. +func IoctlSetTermios(fd int, req int, value *Termios) error { + // TODO: if we get the chance, remove the req parameter. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// 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 int) (int, error) { + var value int + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetWinsize(fd int, req int) (*Winsize, error) { + var value Winsize + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlGetTermios(fd int, req int) (*Termios, error) { + var value Termios + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} diff --git a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go new file mode 100644 index 0000000..20f470b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go @@ -0,0 +1,69 @@ +// 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. + +//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd + +package unix + +import ( + "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 ioctlPtr(fd, req, unsafe.Pointer(&v)) +} + +// 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. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// 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. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// 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 := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + err := ioctlPtr(fd, req, 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 0000000..c8b2a75 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ioctl_zos.go @@ -0,0 +1,71 @@ +// 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 + +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 int, 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 int, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// 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 int, 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 int) (int, error) { + var value int + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetWinsize(fd int, req int) (*Winsize, error) { + var value Winsize + err := ioctlPtr(fd, req, 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 int) (*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 new file mode 100644 index 0000000..e6f31d3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -0,0 +1,249 @@ +#!/usr/bin/env bash +# 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. + +# This script runs or (given -n) prints suggested commands to generate files for +# the Architecture/OS specified by the GOARCH and GOOS environment variables. +# See README.md for more information about how the build system works. + +GOOSARCH="${GOOS}_${GOARCH}" + +# defaults +mksyscall="go run mksyscall.go" +mkerrors="./mkerrors.sh" +zerrors="zerrors_$GOOSARCH.go" +mksysctl="" +zsysctl="zsysctl_$GOOSARCH.go" +mksysnum= +mktypes= +mkasm= +run="sh" +cmd="" + +case "$1" in +-syscalls) + for i in zsyscall*go + do + # Run the command line that appears in the first line + # of the generated file to regenerate it. + sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i + rm _$i + done + exit 0 + ;; +-n) + run="cat" + cmd="echo" + shift +esac + +case "$#" in +0) + ;; +*) + echo 'usage: mkall.sh [-n]' 1>&2 + exit 2 +esac + +if [[ "$GOOS" = "linux" ]]; then + # Use the Docker-based build system + # Files generated through docker (use $cmd so you can Ctl-C the build or run) + $cmd docker build --tag generate:$GOOS $GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS + exit +fi + +GOOSARCH_in=syscall_$GOOSARCH.go +case "$GOOSARCH" in +_* | *_ | _) + echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 + exit 1 + ;; +aix_ppc) + mkerrors="$mkerrors -maix32" + mksyscall="go run mksyscall_aix_ppc.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +aix_ppc64) + mkerrors="$mkerrors -maix64" + mksyscall="go run mksyscall_aix_ppc64.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +darwin_amd64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm.go" + ;; +darwin_arm64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm.go" + ;; +dragonfly_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -dragonfly" + mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_amd64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -arm" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + # 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://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +freebsd_riscv64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +netbsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -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" + ;; +netbsd_amd64) + 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" + ;; +netbsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -netbsd -arm" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~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" + ;; +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) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_amd64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_arm) + mkasm="go run mkasm.go" + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" + mksysctl="go run mksysctl_openbsd.go" + # 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) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # 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) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # 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_ppc64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # 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_riscv64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # 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" + ;; +solaris_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors="$mkerrors -m64" + 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 + ;; +esac + +( + if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi + case "$GOOS" in + *) + syscall_goos="syscall_$GOOS.go" + case "$GOOS" in + darwin | dragonfly | freebsd | netbsd | openbsd) + syscall_goos="syscall_bsd.go $syscall_goos" + ;; + esac + if [ -n "$mksyscall" ]; then + if [ "$GOOSARCH" == "aix_ppc64" ]; then + # 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" == "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 + fi + esac + if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi + if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi + if [ -n "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi +) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh new file mode 100644 index 0000000..6ab02b6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -0,0 +1,805 @@ +#!/usr/bin/env bash +# 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. + +# Generate Go code listing errors and other #defined constant +# values (ENAMETOOLONG etc.), by asking the preprocessor +# about the definitions. + +unset LANG +export LC_ALL=C +export LC_CTYPE=C + +if test -z "$GOARCH" -o -z "$GOOS"; then + echo 1>&2 "GOARCH or GOOS not defined in environment" + exit 1 +fi + +# Check that we are using the new build system if we should +if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then + echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." + echo 1>&2 "See README.md" + exit 1 +fi + +if [[ "$GOOS" = "aix" ]]; then + CC=${CC:-gcc} +else + CC=${CC:-cc} +fi + +if [[ "$GOOS" = "solaris" ]]; then + # Assumes GNU versions of utilities in PATH. + export PATH=/usr/gnu/bin:$PATH +fi + +uname=$(uname) + +includes_AIX=' +#include <net/if.h> +#include <net/netopt.h> +#include <netinet/ip_mroute.h> +#include <sys/protosw.h> +#include <sys/stropts.h> +#include <sys/mman.h> +#include <sys/poll.h> +#include <sys/select.h> +#include <sys/termio.h> +#include <termios.h> +#include <fcntl.h> + +#define AF_LOCAL AF_UNIX +' + +includes_Darwin=' +#define _DARWIN_C_SOURCE +#define KERNEL 1 +#define _DARWIN_USE_64_BIT_INODE +#define __APPLE_USE_RFC_3542 +#include <stdint.h> +#include <sys/stdio.h> +#include <sys/attr.h> +#include <sys/clonefile.h> +#include <sys/kern_control.h> +#include <sys/types.h> +#include <sys/event.h> +#include <sys/ptrace.h> +#include <sys/select.h> +#include <sys/socket.h> +#include <sys/stat.h> +#include <sys/un.h> +#include <sys/sockio.h> +#include <sys/sys_domain.h> +#include <sys/sysctl.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/utsname.h> +#include <sys/wait.h> +#include <sys/xattr.h> +#include <sys/vsock.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_types.h> +#include <net/route.h> +#include <netinet/in.h> +#include <netinet/ip.h> +#include <termios.h> + +// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk. +#define TIOCREMOTE 0x80047469 +' + +includes_DragonFly=' +#include <sys/types.h> +#include <sys/event.h> +#include <sys/select.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/stat.h> +#include <sys/sysctl.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/wait.h> +#include <sys/ioctl.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_clone.h> +#include <net/if_types.h> +#include <net/route.h> +#include <netinet/in.h> +#include <termios.h> +#include <netinet/ip.h> +#include <net/ip_mroute/ip_mroute.h> +' + +includes_FreeBSD=' +#include <sys/capsicum.h> +#include <sys/param.h> +#include <sys/types.h> +#include <sys/disk.h> +#include <sys/event.h> +#include <sys/sched.h> +#include <sys/select.h> +#include <sys/socket.h> +#include <sys/un.h> +#include <sys/sockio.h> +#include <sys/stat.h> +#include <sys/sysctl.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/wait.h> +#include <sys/ioctl.h> +#include <sys/ptrace.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_types.h> +#include <net/route.h> +#include <netinet/in.h> +#include <termios.h> +#include <netinet/ip.h> +#include <netinet/ip_mroute.h> +#include <sys/extattr.h> + +#if __FreeBSD__ >= 10 +#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 +#undef SIOCAIFADDR +#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data +#undef SIOCSIFPHYADDR +#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data +#endif +' + +includes_Linux=' +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#ifndef __LP64__ +#define _FILE_OFFSET_BITS 64 +#endif +#define _GNU_SOURCE + +// See the description in unix/linux/types.go +#if defined(__ARM_EABI__) || \ + (defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \ + (defined(__powerpc__) && (!defined(__powerpc64__))) +# ifdef _TIME_BITS +# undef _TIME_BITS +# endif +# define _TIME_BITS 32 +#endif + +// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of +// these structures. We just include them copied from <bits/termios.h>. +#if defined(__powerpc__) +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; +#endif + +#include <bits/sockaddr.h> +#include <sys/epoll.h> +#include <sys/eventfd.h> +#include <sys/inotify.h> +#include <sys/ioctl.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/prctl.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <sys/time.h> +#include <sys/select.h> +#include <sys/signalfd.h> +#include <sys/socket.h> +#include <sys/timerfd.h> +#include <sys/uio.h> +#include <sys/xattr.h> +#include <netinet/udp.h> +#include <linux/audit.h> +#include <linux/bpf.h> +#include <linux/can.h> +#include <linux/can/error.h> +#include <linux/can/netlink.h> +#include <linux/can/raw.h> +#include <linux/capability.h> +#include <linux/cryptouser.h> +#include <linux/devlink.h> +#include <linux/dm-ioctl.h> +#include <linux/errqueue.h> +#include <linux/ethtool_netlink.h> +#include <linux/falloc.h> +#include <linux/fanotify.h> +#include <linux/fib_rules.h> +#include <linux/filter.h> +#include <linux/fs.h> +#include <linux/fscrypt.h> +#include <linux/fsverity.h> +#include <linux/genetlink.h> +#include <linux/hdreg.h> +#include <linux/hidraw.h> +#include <linux/if.h> +#include <linux/if_addr.h> +#include <linux/if_alg.h> +#include <linux/if_arp.h> +#include <linux/if_ether.h> +#include <linux/if_ppp.h> +#include <linux/if_tun.h> +#include <linux/if_packet.h> +#include <linux/if_xdp.h> +#include <linux/input.h> +#include <linux/kcm.h> +#include <linux/kexec.h> +#include <linux/keyctl.h> +#include <linux/landlock.h> +#include <linux/loop.h> +#include <linux/lwtunnel.h> +#include <linux/magic.h> +#include <linux/memfd.h> +#include <linux/module.h> +#include <linux/mount.h> +#include <linux/netfilter/nfnetlink.h> +#include <linux/netfilter/nf_tables.h> +#include <linux/netlink.h> +#include <linux/net_namespace.h> +#include <linux/nfc.h> +#include <linux/nsfs.h> +#include <linux/perf_event.h> +#include <linux/pps.h> +#include <linux/ptp_clock.h> +#include <linux/ptrace.h> +#include <linux/random.h> +#include <linux/reboot.h> +#include <linux/rtc.h> +#include <linux/rtnetlink.h> +#include <linux/sched.h> +#include <linux/seccomp.h> +#include <linux/serial.h> +#include <linux/sock_diag.h> +#include <linux/sockios.h> +#include <linux/taskstats.h> +#include <linux/tipc.h> +#include <linux/vm_sockets.h> +#include <linux/wait.h> +#include <linux/watchdog.h> +#include <linux/wireguard.h> + +#include <mtd/ubi-user.h> +#include <mtd/mtd-user.h> +#include <net/route.h> + +#if defined(__sparc__) +// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the +// definition in glibc. As only the error constants are needed here, include the +// generic termibits.h (which is included by termbits.h on sparc). +#include <asm-generic/termbits.h> +#else +#include <asm/termbits.h> +#endif + +#ifndef PTRACE_GETREGS +#define PTRACE_GETREGS 0xc +#endif + +#ifndef PTRACE_SETREGS +#define PTRACE_SETREGS 0xd +#endif + +#ifdef SOL_BLUETOOTH +// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h +// but it is already in bluetooth_linux.go +#undef SOL_BLUETOOTH +#endif + +// Certain constants are missing from the fs/crypto UAPI +#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/netfilter/nf_nat.h +// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h +// and netinet/in.h. +#define NF_NAT_RANGE_MAP_IPS (1 << 0) +#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) +#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) +#define NF_NAT_RANGE_PERSISTENT (1 << 3) +#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) +#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) +#define NF_NAT_RANGE_NETMAP (1 << 6) +#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ + (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) +#define NF_NAT_RANGE_MASK \ + (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ + NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ + NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ + NF_NAT_RANGE_NETMAP) + +// 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=' +#include <sys/types.h> +#include <sys/param.h> +#include <sys/event.h> +#include <sys/extattr.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/sched.h> +#include <sys/select.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/sysctl.h> +#include <sys/termios.h> +#include <sys/ttycom.h> +#include <sys/wait.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_types.h> +#include <net/route.h> +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> +#include <netinet/ip_mroute.h> +#include <netinet/if_ether.h> + +// Needed since <sys/param.h> refers to it... +#define schedppq 1 +' + +includes_OpenBSD=' +#include <sys/types.h> +#include <sys/param.h> +#include <sys/event.h> +#include <sys/mman.h> +#include <sys/mount.h> +#include <sys/select.h> +#include <sys/sched.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/stat.h> +#include <sys/sysctl.h> +#include <sys/termios.h> +#include <sys/ttycom.h> +#include <sys/unistd.h> +#include <sys/wait.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_types.h> +#include <net/if_var.h> +#include <net/route.h> +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> +#include <netinet/ip_mroute.h> +#include <netinet/if_ether.h> +#include <net/if_bridge.h> + +// We keep some constants not supported in OpenBSD 5.5 and beyond for +// the promise of compatibility. +#define EMUL_ENABLED 0x1 +#define EMUL_NATIVE 0x2 +#define IPV6_FAITH 0x1d +#define IPV6_OPTIONS 0x1 +#define IPV6_RTHDR_STRICT 0x1 +#define IPV6_SOCKOPT_RESERVED1 0x3 +#define SIOCGIFGENERIC 0xc020693a +#define SIOCSIFGENERIC 0x80206939 +#define WALTSIG 0x4 +' + +includes_SunOS=' +#include <limits.h> +#include <sys/types.h> +#include <sys/select.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/stat.h> +#include <sys/stream.h> +#include <sys/mman.h> +#include <sys/wait.h> +#include <sys/ioctl.h> +#include <sys/mkdev.h> +#include <net/bpf.h> +#include <net/if.h> +#include <net/if_arp.h> +#include <net/if_types.h> +#include <net/route.h> +#include <netinet/icmp6.h> +#include <netinet/in.h> +#include <netinet/ip.h> +#include <netinet/ip_mroute.h> +#include <termios.h> +' + + +includes=' +#include <sys/types.h> +#include <sys/file.h> +#include <fcntl.h> +#include <dirent.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <netinet/ip.h> +#include <netinet/ip6.h> +#include <netinet/tcp.h> +#include <errno.h> +#include <sys/signal.h> +#include <signal.h> +#include <sys/resource.h> +#include <time.h> +' +ccflags="$@" + +# Write go tool cgo -godefs input. +( + echo package unix + echo + echo '/*' + indirect="includes_$(uname)" + echo "${!indirect} $includes" + echo '*/' + echo 'import "C"' + echo 'import "syscall"' + echo + echo 'const (' + + # The gcc command line prints all the #defines + # it encounters while processing the input + echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | + awk ' + $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} + + $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers + $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} + $2 ~ /^(SCM_SRCRT)$/ {next} + $2 ~ /^(MAP_FAILED)$/ {next} + $2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc. + + $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || + $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} + + $2 !~ /^ECCAPBITS/ && + $2 !~ /^ETH_/ && + $2 !~ /^EPROC_/ && + $2 !~ /^EQUIV_/ && + $2 !~ /^EXPR_/ && + $2 !~ /^EVIOC/ && + $2 ~ /^E[A-Z0-9_]+$/ || + $2 ~ /^B[0-9_]+$/ || + $2 ~ /^(OLD|NEW)DEV$/ || + $2 == "BOTHER" || + $2 ~ /^CI?BAUD(EX)?$/ || + $2 == "IBSHIFT" || + $2 ~ /^V[A-Z0-9]+$/ || + $2 ~ /^CS[A-Z0-9]/ || + $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || + $2 ~ /^IGN/ || + $2 ~ /^IX(ON|ANY|OFF)$/ || + $2 ~ /^IN(LCR|PCK)$/ || + $2 !~ "X86_CR3_PCID_NOFLUSH" && + $2 ~ /(^FLU?SH)|(FLU?SH$)/ || + $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || + $2 == "BRKINT" || + $2 == "HUPCL" || + $2 == "PENDIN" || + $2 == "TOSTOP" || + $2 == "XCASE" || + $2 == "ALTWERASE" || + $2 == "NOKERNINFO" || + $2 == "NFDBITS" || + $2 ~ /^PAR/ || + $2 ~ /^SIG[^_]/ || + $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || + $2 ~ /^O?XTABS$/ || + $2 ~ /^TC[IO](ON|OFF)$/ || + $2 ~ /^IN_/ || + $2 ~ /^KCM/ || + $2 ~ /^LANDLOCK_/ || + $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || + $2 ~ /^LO_(KEY|NAME)_SIZE$/ || + $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || + $2 == "LOOP_CONFIGURE" || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || + $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || + $2 ~ /^NFC_.*_(MAX)?SIZE$/ || + $2 ~ /^PTP_/ || + $2 ~ /^RAW_PAYLOAD_/ || + $2 ~ /^[US]F_/ || + $2 ~ /^TP_STATUS_/ || + $2 ~ /^FALLOC_/ || + $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || + $2 == "SOMAXCONN" || + $2 == "NAME_MAX" || + $2 == "IFNAMSIZ" || + $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || + $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || + $2 ~ /^HW_MACHINE$/ || + $2 ~ /^SYSCTL_VERS/ || + $2 !~ "MNT_BITS" && + $2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || + $2 ~ /^NS_GET_/ || + $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|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 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || + $2 ~ /^(CONNECT|SAE)_/ || + $2 ~ /^FIORDCHK$/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || + $2 ~ /^TCGET/ || + $2 ~ /^TCSET/ || + $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || + $2 !~ "RTF_BITS" && + $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|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ && + $2 ~ /^(BPF|DLT)_/ || + $2 ~ /^AUDIT_/ || + $2 ~ /^(CLOCK|TIMER)_/ || + $2 ~ /^CAN_/ || + $2 ~ /^CAP_/ || + $2 ~ /^CP_/ || + $2 ~ /^CPUSTATES$/ || + $2 ~ /^CTLIOCGINFO$/ || + $2 ~ /^ALG_/ || + $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_/ || + $2 ~ /^SECCOMP_/ || + $2 ~ /^SEEK_/ || + $2 ~ /^SCHED_/ || + $2 ~ /^SPLICE_/ || + $2 ~ /^SYNC_FILE_RANGE_/ || + $2 !~ /IOC_MAGIC/ && + $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || + $2 ~ /^(VM|VMADDR)_/ || + $2 ~ /^IOCTL_VM_SOCKETS_/ || + $2 ~ /^(TASKSTATS|TS)_/ || + $2 ~ /^CGROUPSTATS_/ || + $2 ~ /^GENL_/ || + $2 ~ /^STATX_/ || + $2 ~ /^RENAME/ || + $2 ~ /^UBI_IOC[A-Z]/ || + $2 ~ /^UTIME_/ || + $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || + $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || + $2 ~ /^FSOPT_/ || + $2 ~ /^WDIO[CFS]_/ || + $2 ~ /^NFN/ || + $2 !~ /^NFT_META_IIFTYPE/ && + $2 ~ /^NFT_/ || + $2 ~ /^NF_NAT_/ || + $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 ~ /^ITIMER_/ || + $2 !~ "WMESGLEN" && + $2 ~ /^W[A-Z0-9]+$/ || + $2 ~ /^P_/ || + $2 ~/^PPPIOC/ || + $2 ~ /^FAN_|FANOTIFY_/ || + $2 == "HID_MAX_DESCRIPTOR_SIZE" || + $2 ~ /^_?HIDIOC/ || + $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || + $2 ~ /^MTD/ || + $2 ~ /^OTP/ || + $2 ~ /^MEM/ || + $2 ~ /^WG/ || + $2 ~ /^FIB_RULE_/ || + $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {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)} + + {next} + ' | sort + + echo ')' +) >_const.go + +# Pull out the error names for later. +errors=$( + echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | + sort +) + +# Pull out the signal names for later. +signals=$( + echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | + grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort +) + +# Again, writing regexps to a file. +echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | + sort >_error.grep +echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | + grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + sort >_signal.grep + +echo '// mkerrors.sh' "$@" +echo '// Code generated by the command above; see README.md. DO NOT EDIT.' +echo +echo "//go:build ${GOARCH} && ${GOOS}" +echo +go tool cgo -godefs -- "$@" _const.go >_error.out +cat _error.out | grep -vf _error.grep | grep -vf _signal.grep +echo +echo '// Errors' +echo 'const (' +cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' +echo ')' + +echo +echo '// Signals' +echo 'const (' +cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' +echo ')' + +# Run C program to print error and syscall strings. +( + echo -E " +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include <ctype.h> +#include <string.h> +#include <signal.h> + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) + +enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below + +struct tuple { + int num; + const char *name; +}; + +struct tuple errors[] = { +" + for i in $errors + do + echo -E ' {'$i', "'$i'" },' + done + + echo -E " +}; + +struct tuple signals[] = { +" + for i in $signals + do + echo -E ' {'$i', "'$i'" },' + done + + # Use -E because on some systems bash builtin interprets \n itself. + echo -E ' +}; + +static int +tuplecmp(const void *a, const void *b) +{ + return ((struct tuple *)a)->num - ((struct tuple *)b)->num; +} + +int +main(void) +{ + int i, e; + char buf[1024], *p; + + printf("\n\n// Error table\n"); + printf("var errorList = [...]struct {\n"); + printf("\tnum syscall.Errno\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); + for(i=0; i<nelem(errors); i++) { + e = errors[i].num; + if(i > 0 && errors[i-1].num == e) + continue; + strncpy(buf, strerror(e), sizeof(buf) - 1); + buf[sizeof(buf) - 1] = '\0'; + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); + } + printf("}\n\n"); + + printf("\n\n// Signal table\n"); + printf("var signalList = [...]struct {\n"); + printf("\tnum syscall.Signal\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); + for(i=0; i<nelem(signals); i++) { + e = signals[i].num; + if(i > 0 && signals[i-1].num == e) + continue; + strncpy(buf, strsignal(e), sizeof(buf) - 1); + buf[sizeof(buf) - 1] = '\0'; + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + // cut trailing : number. + p = strrchr(buf, ":"[0]); + if(p) + *p = '\0'; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); + } + printf("}\n\n"); + + return 0; +} + +' +) >_errors.c + +$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go new file mode 100644 index 0000000..7f602ff --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go @@ -0,0 +1,13 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos + +package unix + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go new file mode 100644 index 0000000..3a5e776 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mremap.go @@ -0,0 +1,57 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux || netbsd + +package unix + +import "unsafe" + +type mremapMmapper struct { + mmapper + mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) +} + +var mapper = &mremapMmapper{ + mmapper: mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, + }, + mremap: mremap, +} + +func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { + if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { + return nil, EINVAL + } + + pOld := &oldData[cap(oldData)-1] + m.Lock() + defer m.Unlock() + bOld := m.active[pOld] + if bOld == nil || &bOld[0] != &oldData[0] { + return nil, EINVAL + } + newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) + if errno != nil { + return nil, errno + } + bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) + pNew := &bNew[cap(bNew)-1] + if flags&mremapDontunmap == 0 { + delete(m.active, pOld) + } + m.active[pNew] = bNew + return bNew, nil +} + +func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { + return mapper.Mremap(oldData, newLength, flags) +} + +func MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) { + xaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr)) + return unsafe.Pointer(xaddr), err +} diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go new file mode 100644 index 0000000..0482408 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go @@ -0,0 +1,15 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +// For Unix, get the pagesize from the runtime. + +package unix + +import "syscall" + +func Getpagesize() int { + return syscall.Getpagesize() +} diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go new file mode 100644 index 0000000..6a09af5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/pledge_openbsd.go @@ -0,0 +1,111 @@ +// 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 unix + +import ( + "errors" + "fmt" + "strconv" +) + +// Pledge implements the pledge syscall. +// +// This changes both the promises and execpromises; use PledgePromises or +// PledgeExecpromises to only change the promises or execpromises +// respectively. +// +// For more information see pledge(2). +func Pledge(promises, execpromises string) error { + if err := pledgeAvailable(); err != nil { + return err + } + + pptr, err := BytePtrFromString(promises) + if err != nil { + return err + } + + exptr, err := BytePtrFromString(execpromises) + if err != nil { + return err + } + + return pledge(pptr, exptr) +} + +// PledgePromises implements the pledge syscall. +// +// This changes the promises and leaves the execpromises untouched. +// +// For more information see pledge(2). +func PledgePromises(promises string) error { + if err := pledgeAvailable(); err != nil { + return err + } + + pptr, err := BytePtrFromString(promises) + if err != nil { + return err + } + + return pledge(pptr, nil) +} + +// PledgeExecpromises implements the pledge syscall. +// +// This changes the execpromises and leaves the promises untouched. +// +// For more information see pledge(2). +func PledgeExecpromises(execpromises string) error { + if err := pledgeAvailable(); err != nil { + return err + } + + exptr, err := BytePtrFromString(execpromises) + if err != nil { + return err + } + + return pledge(nil, exptr) +} + +// majmin returns major and minor version number for an OpenBSD system. +func majmin() (major int, minor int, err error) { + var v Utsname + err = Uname(&v) + if err != nil { + return + } + + major, err = strconv.Atoi(string(v.Release[0])) + if err != nil { + err = errors.New("cannot parse major version number returned by uname") + return + } + + minor, err = strconv.Atoi(string(v.Release[2])) + if err != nil { + err = errors.New("cannot parse minor version number returned by uname") + return + } + + return +} + +// pledgeAvailable checks for availability of the pledge(2) syscall +// based on the running OpenBSD version. +func pledgeAvailable() error { + maj, min, err := majmin() + if err != nil { + return err + } + + // Require OpenBSD 6.4 as a minimum. + if maj < 6 || (maj == 6 && min <= 3) { + return fmt.Errorf("cannot call Pledge on OpenBSD %d.%d", maj, min) + } + + return nil +} diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go new file mode 100644 index 0000000..3f0975f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_darwin.go @@ -0,0 +1,11 @@ +// 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 darwin && !ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) error { + return ptrace1(request, pid, addr, data) +} diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go new file mode 100644 index 0000000..a4d35db --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ptrace_ios.go @@ -0,0 +1,11 @@ +// 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 ios + +package unix + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + return ENOTSUP +} diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go new file mode 100644 index 0000000..714d2aa --- /dev/null +++ b/vendor/golang.org/x/sys/unix/race.go @@ -0,0 +1,30 @@ +// 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. + +//go:build (darwin && race) || (linux && race) || (freebsd && race) + +package unix + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go new file mode 100644 index 0000000..4a9f663 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/race0.go @@ -0,0 +1,25 @@ +// 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. + +//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos + +package unix + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go new file mode 100644 index 0000000..dbd2b6c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go @@ -0,0 +1,12 @@ +// 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 || dragonfly || freebsd || linux || netbsd || openbsd + +package unix + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + return Getdents(fd, buf) +} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go new file mode 100644 index 0000000..b903c00 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -0,0 +1,19 @@ +// 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 || zos + +package unix + +import "unsafe" + +// 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. + // 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) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go new file mode 100644 index 0000000..5144dee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go @@ -0,0 +1,16 @@ +// 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 + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { + // 64-bit Dragonfly before the September 2019 ABI changes still requires + // 32-bit aligned access to network subsystem. + salign = 4 + } + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go new file mode 100644 index 0000000..5f63147 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go @@ -0,0 +1,85 @@ +// 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. + +// Socket control messages + +package unix + +import "unsafe" + +// UnixCredentials encodes credentials into a socket control message +// for sending to another process. This can be used for +// authentication. +func UnixCredentials(ucred *Ucred) []byte { + b := make([]byte, CmsgSpace(SizeofUcred)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_CREDENTIALS + h.SetLen(CmsgLen(SizeofUcred)) + *(*Ucred)(h.data(0)) = *ucred + return b +} + +// ParseUnixCredentials decodes a socket control message that contains +// credentials in a Ucred structure. To receive such a message, the +// SO_PASSCRED option must be enabled on the socket. +func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_CREDENTIALS { + return nil, EINVAL + } + ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) + return &ucred, nil +} + +// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. +func PktInfo4(info *Inet4Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IP + h.Type = IP_PKTINFO + h.SetLen(CmsgLen(SizeofInet4Pktinfo)) + *(*Inet4Pktinfo)(h.data(0)) = *info + return b +} + +// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. +func PktInfo6(info *Inet6Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IPV6 + h.Type = IPV6_PKTINFO + h.SetLen(CmsgLen(SizeofInet6Pktinfo)) + *(*Inet6Pktinfo)(h.data(0)) = *info + return b +} + +// ParseOrigDstAddr decodes a socket control message containing the original +// destination address. To receive such a message the IP_RECVORIGDSTADDR or +// IPV6_RECVORIGDSTADDR option must be enabled on the socket. +func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) { + switch { + case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR: + pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0])) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR: + pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0])) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + + default: + return nil, EINVAL + } +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go new file mode 100644 index 0000000..c3a62db --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -0,0 +1,106 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +// Socket control messages + +package unix + +import ( + "unsafe" +) + +// CmsgLen returns the value to store in the Len field of the Cmsghdr +// structure, taking into account any necessary alignment. +func CmsgLen(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + datalen +} + +// CmsgSpace returns the number of bytes an ancillary element with +// payload of the passed data length occupies. +func CmsgSpace(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) +} + +func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) +} + +// SocketControlMessage represents a socket control message. +type SocketControlMessage struct { + Header Cmsghdr + Data []byte +} + +// ParseSocketControlMessage parses b as an array of socket control +// messages. +func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { + var msgs []SocketControlMessage + i := 0 + for i+CmsgLen(0) <= len(b) { + h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) + if err != nil { + return nil, err + } + m := SocketControlMessage{Header: *h, Data: dbuf} + msgs = append(msgs, m) + i += cmsgAlignOf(int(h.Len)) + } + return msgs, nil +} + +// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, +// message data (a slice of b), and the remainder of b after that single message. +// When there are no remaining messages, len(remainder) == 0. +func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { + h, dbuf, err := socketControlMessageHeaderAndData(b) + if err != nil { + return Cmsghdr{}, nil, nil, err + } + if i := cmsgAlignOf(int(h.Len)); i < len(b) { + remainder = b[i:] + } + return *h, dbuf, remainder, nil +} + +func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { + return nil, nil, EINVAL + } + return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil +} + +// UnixRights encodes a set of open file descriptors into a socket +// control message for sending to another process. +func UnixRights(fds ...int) []byte { + datalen := len(fds) * 4 + b := make([]byte, CmsgSpace(datalen)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_RIGHTS + h.SetLen(CmsgLen(datalen)) + for i, fd := range fds { + *(*int32)(h.data(4 * uintptr(i))) = int32(fd) + } + return b +} + +// ParseUnixRights decodes a socket control message that contains an +// integer array of open file descriptors from another process. +func ParseUnixRights(m *SocketControlMessage) ([]int, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_RIGHTS { + return nil, EINVAL + } + fds := make([]int, len(m.Data)>>2) + for i, j := 0, 0; i < len(m.Data); i += 4 { + fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) + j++ + } + return fds, nil +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go new file mode 100644 index 0000000..4a1eab3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go @@ -0,0 +1,46 @@ +// 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 || freebsd || linux || netbsd || openbsd || solaris || zos + +package unix + +import ( + "runtime" +) + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + + // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in + // sockcmsg_dragonfly.go + switch runtime.GOOS { + case "aix": + // There is no alignment on AIX. + salign = 1 + case "darwin", "ios", "illumos", "solaris": + // NOTE: It seems like 64-bit Darwin, Illumos and Solaris + // kernels still require 32-bit aligned access to network + // subsystem. + if SizeofPtr == 8 { + salign = 4 + } + case "netbsd", "openbsd": + // NetBSD and OpenBSD armv7 require 64-bit alignment. + if runtime.GOARCH == "arm" { + salign = 8 + } + // NetBSD aarch64 requires 128-bit alignment. + if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { + salign = 16 + } + case "zos": + // z/OS socket macros use [32-bit] sizeof(int) alignment, + // not pointer width. + salign = SizeofInt + } + + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go new file mode 100644 index 0000000..3e53dbc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go @@ -0,0 +1,58 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Socket control messages + +package unix + +import "unsafe" + +// UnixCredentials encodes credentials into a socket control message +// for sending to another process. This can be used for +// authentication. +func UnixCredentials(ucred *Ucred) []byte { + b := make([]byte, CmsgSpace(SizeofUcred)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_CREDENTIALS + h.SetLen(CmsgLen(SizeofUcred)) + *(*Ucred)(h.data(0)) = *ucred + return b +} + +// ParseUnixCredentials decodes a socket control message that contains +// credentials in a Ucred structure. To receive such a message, the +// SO_PASSCRED option must be enabled on the socket. +func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_CREDENTIALS { + return nil, EINVAL + } + ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) + return &ucred, nil +} + +// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. +func PktInfo4(info *Inet4Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IP + h.Type = IP_PKTINFO + h.SetLen(CmsgLen(SizeofInet4Pktinfo)) + *(*Inet4Pktinfo)(h.data(0)) = *info + return b +} + +// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. +func PktInfo6(info *Inet6Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IPV6 + h.Type = IPV6_PKTINFO + h.SetLen(CmsgLen(SizeofInet6Pktinfo)) + *(*Inet6Pktinfo)(h.data(0)) = *info + return b +} diff --git a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s new file mode 100644 index 0000000..3c4f33c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s @@ -0,0 +1,75 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x && gc + +#include "textflag.h" + +// provide the address of function variable to be fixed up. + +TEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Pipe2(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Flock(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Getxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Nanosleep(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Setxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Wait4(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mount(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unmount(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·UtimesNanoAt(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·UtimesNano(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mkfifoat(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Chtag(SB), R8 + MOVD R8, ret+0(FP) + RET + +TEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Readlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go new file mode 100644 index 0000000..5ea74da --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall.go @@ -0,0 +1,86 @@ +// 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 aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +// Package unix contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display OS-specific documentation for the current +// system. If you want godoc to display OS documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package unix // import "golang.org/x/sys/unix" + +import ( + "bytes" + "strings" + "unsafe" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + 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) + } + + return string(unsafe.Slice(p, n)) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +var _zero uintptr diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go new file mode 100644 index 0000000..6f15ba1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -0,0 +1,582 @@ +// 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. + +//go:build aix + +// Aix system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import "unsafe" + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) error { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + 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 + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = uint8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { + // Check sl > 3 so we don't change unnamed socket behavior. + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +//sys getcwd(buf []byte) (err error) + +const ImplementsGetwd = true + +func Getwd() (ret string, err error) { + for len := uint64(4096); ; len *= 2 { + b := make([]byte, len) + err := getcwd(b) + if err == nil { + i := 0 + for b[i] != 0 { + i++ + } + return string(b[0:i]), nil + } + if err != ERANGE { + return "", err + } + } +} + +func Getcwd(buf []byte) (n int, err error) { + err = getcwd(buf) + if err == nil { + i := 0 + for buf[i] != 0 { + i++ + } + n = i + 1 + } + return +} + +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 16 on BSD. + if n < 0 || n > 1000 { + 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]) +} + +/* + * Socket + */ + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + + // Some versions of AIX have a bug in getsockname (see IV78655). + // We can't rely on sa.Len being set correctly. + n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + n = i + break + } + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + 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]) + sa.Addr = pp.Addr + 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 + sa.Addr = pp.Addr + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Gettimeofday(tv *Timeval) (err error) { + err = gettimeofday(tv, nil) + return +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +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 getdirent(fd int, buf []byte) (n int, err error) + +func Getdents(fd int, buf []byte) (n int, err error) { + return getdirent(fd, buf) +} + +//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + var r Pid_t + err = ERESTART + // AIX wait4 may return with ERESTART errno, while the process is still + // active. + for err == ERESTART { + r, err = wait4(Pid_t(pid), &status, options, rusage) + } + wpid = int(r) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +/* + * Wait + */ + +type WaitStatus uint32 + +func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>8) & 0xFF +} + +func (w WaitStatus) Exited() bool { return w&0xFF == 0 } +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int((w >> 8) & 0xFF) +} + +func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w>>16) & 0xFF +} + +func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } + +func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys ioctl(fd int, req int, arg uintptr) (err error) +//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl + +// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX +// There is no way to create a custom fcntl and to keep //sys fcntl easily, +// Therefore, the programmer must call dup2 instead of fcntl in this case. + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +//sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range + +func Fsync(fd int) error { + return fsyncRange(fd, O_SYNC, 0, 0) +} + +/* + * Direct access + */ + +//sys Acct(path string) (err error) +//sys Chdir(path string) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(oldfd int) (fd 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) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +// readdir_r +//sysnb Getpgid(pid int) (pgid int, err error) + +//sys Getpgrp() (pid int) + +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog +//sys Mkdir(dirfd int, path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) + +//sys Setuid(uid int) (err error) +//sys Setgid(uid int) (err error) + +//sys Setpriority(which int, who int, prio int) (err error) +//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) +//sys Sync() +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sysnb Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys write(fd int, p []byte) (n int, err error) + +//sys Dup2(oldfd int, newfd int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 +//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) = fstatat +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = pread64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) +//sysnb Setregid(rgid int, egid int) (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) +//sys stat(path string, statptr *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) + +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) + +// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg + +//sys munmap(addr uintptr, length uintptr) (err error) +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +//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) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return +} + +//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 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) + +//sys Getsystemcfg(label int) (n uint64) + +//sys umount(target string) (err error) + +func Unmount(target string, flags int) (err error) { + if flags != 0 { + // AIX doesn't have any flags for umount. + return ENOSYS + } + return umount(target) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go new file mode 100644 index 0000000..1fdaa47 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go @@ -0,0 +1,52 @@ +// 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. + +//go:build aix && ppc + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +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 Fstat(fd int, stat *Stat_t) error { + return fstat(fd, stat) +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + return fstatat(dirfd, path, stat, flags) +} + +func Lstat(path string, stat *Stat_t) error { + return lstat(path, stat) +} + +func Stat(path string, statptr *Stat_t) error { + return stat(path, statptr) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go new file mode 100644 index 0000000..c87f9a9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go @@ -0,0 +1,83 @@ +// 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. + +//go:build aix && ppc64 + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int64(sec), Usec: int32(usec)} +} + +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 = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// In order to only have Timespec structure, type of Stat_t's fields +// Atim, Mtim and Ctim is changed from StTimespec to Timespec during +// ztypes generation. +// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an +// int32, so the fields' value must be modified. +func fixStatTimFields(stat *Stat_t) { + stat.Atim.Nsec >>= 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 new file mode 100644 index 0000000..a00c3e5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -0,0 +1,609 @@ +// 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 darwin || dragonfly || freebsd || netbsd || openbsd + +// BSD system call wrappers shared by *BSD based systems +// including OS X (Darwin) and FreeBSD. Like the other +// syscall_*.go files it is compiled as Go code but also +// used as input to mksyscall which parses the //sys +// lines and generates system call stubs. + +package unix + +import ( + "runtime" + "syscall" + "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 + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +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 16 on BSD. + if n < 0 || n > 1000 { + 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]) +} + +// 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. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + killed = 9 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +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 { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, 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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys Shutdown(s int, how int) (err error) + +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) + sa.raw.Addr = sa.Addr + 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 + sa.raw.Addr = sa.Addr + 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 (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Index == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = sa.Len + sa.raw.Family = AF_LINK + sa.raw.Index = sa.Index + sa.raw.Type = sa.Type + sa.raw.Nlen = sa.Nlen + sa.raw.Alen = sa.Alen + sa.raw.Slen = sa.Slen + sa.raw.Data = sa.Data + return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_LINK: + pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) + sa := new(SockaddrDatalink) + sa.Len = pp.Len + sa.Family = pp.Family + sa.Index = pp.Index + sa.Type = pp.Type + sa.Nlen = pp.Nlen + sa.Alen = pp.Alen + sa.Slen = pp.Slen + sa.Data = pp.Data + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { + return nil, EINVAL + } + sa := new(SockaddrUnix) + + // Some BSDs include the trailing NUL in the length, whereas + // others do not. Work around this by subtracting the leading + // family and len. The path is then scanned to see if a NUL + // terminator still exists within the length. + n := int(pp.Len) - 2 // subtract leading Family, Len + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + // found early NUL; assume Len included the NUL + // or was overestimating. + n = i + break + } + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + 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]) + sa.Addr = pp.Addr + 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 + sa.Addr = pp.Addr + return sa, nil + } + return anyToSockaddrGOOS(fd, rsa) +} + +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 + } + 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 + // is accepted, but has no address. + Close(nfd) + return 0, nil, ECONNABORTED + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +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(jsing): DragonFly has a "bug" (see issue 3349), which should be + // reported upstream. + if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { + rsa.Addr.Family = AF_UNIX + rsa.Addr.Len = SizeofSockaddrUnix + } + return anyToSockaddr(fd, &rsa) +} + +//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. +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 ByteSliceToString(buf[:vallen]), 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 recvmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) + +func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { + var change, event unsafe.Pointer + if len(changes) > 0 { + change = unsafe.Pointer(&changes[0]) + } + if len(events) > 0 { + event = unsafe.Pointer(&events[0]) + } + return kevent(kq, change, len(changes), event, len(events), timeout) +} + +// 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. + mib, err := nametomib(name) + if err != nil { + return nil, err + } + + for _, a := range args { + mib = append(mib, _C_int(a)) + } + + return mib, nil +} + +func Sysctl(name string) (string, error) { + return SysctlArgs(name) +} + +func SysctlArgs(name string, args ...int) (string, error) { + buf, err := SysctlRaw(name, args...) + if err != nil { + return "", err + } + n := len(buf) + + // Throw away terminating NUL. + if n > 0 && buf[n-1] == '\x00' { + n-- + } + return string(buf[0:n]), nil +} + +func SysctlUint32(name string) (uint32, error) { + return SysctlUint32Args(name) +} + +func SysctlUint32Args(name string, args ...int) (uint32, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(4) + buf := make([]byte, 4) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 4 { + return 0, EIO + } + return *(*uint32)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlUint64(name string, args ...int) (uint64, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(8) + buf := make([]byte, 8) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 8 { + return 0, EIO + } + return *(*uint64)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlRaw(name string, args ...int) ([]byte, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Read into buffer of that size. + buf := make([]byte, n) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return nil, err + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + 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 { + if tv == nil { + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNano(path string, ts []Timespec) error { + if ts == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(ts) != 2 { + return EINVAL + } + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + // 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 UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +//sys futimes(fd int, timeval *[2]Timeval) (err error) + +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimes(fd, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//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 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +// TODO: wrap +// Acct(name nil-string) (err error) +// Gethostuuid(uuid *byte, timeout *Timespec) (err error) +// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) + +//sys Madvise(b []byte, behav int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go new file mode 100644 index 0000000..798f61a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -0,0 +1,854 @@ +// Copyright 2009,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. + +// Darwin system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "fmt" + "syscall" + "unsafe" +) + +//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(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) + dir = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fdopendir_trampoline_addr uintptr + +//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. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), 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 +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + 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 +} + +// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. +// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables +// bidirectional communication between a hypervisor and its guest virtual +// machines. +type SockaddrVM struct { + // CID and Port specify a context ID and port address for a VM socket. + // Guests have a unique CID, and hosts may have a well-known CID of: + // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_LOCAL: refers to local communication (loopback). + // - VMADDR_CID_HOST: refers to other processes on the host. + CID uint32 + Port uint32 + raw RawSockaddrVM +} + +func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Len = SizeofSockaddrVM + sa.raw.Family = AF_VSOCK + sa.raw.Port = sa.Port + sa.raw.Cid = sa.CID + + return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, 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 + } + case AF_VSOCK: + pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) + sa := &SockaddrVM{ + CID: pp.Cid, + Port: pp.Port, + } + 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]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +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) } +func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } + +//sysnb pipe(p *[2]int32) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var x [2]int32 + err = pipe(&x) + if err == nil { + p[0] = int(x[0]) + p[1] = int(x[1]) + } + return +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + return getfsstat(_p0, bufsize, flags) +} + +func xattrPointer(dest []byte) *byte { + // It's only when dest is set to NULL that the OS X implementations of + // getxattr() and listxattr() return the current sizes of the named attributes. + // An empty byte array is not sufficient. To maintain the same behaviour as the + // linux implementation, we wrap around the system calls and pass in NULL when + // dest is empty. + var destp *byte + if len(dest) > 0 { + destp = &dest[0] + } + return destp +} + +//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) +} + +//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) +} + +//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + // The parameters for the OS X implementation vary slightly compared to the + // linux system call, specifically the position parameter: + // + // linux: + // int setxattr( + // const char *path, + // const char *name, + // const void *value, + // size_t size, + // int flags + // ); + // + // darwin: + // int setxattr( + // const char *path, + // const char *name, + // void *value, + // size_t size, + // u_int32_t position, + // int options + // ); + // + // position specifies the offset within the extended attribute. In the + // current implementation, only the resource fork extended attribute makes + // use of this argument. For all others, position is reserved. We simply + // default to setting it to zero. + return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) +} + +//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) +} + +//sys removexattr(path string, attr string, options int) (err error) + +func Removexattr(path string, attr string) (err error) { + // We wrap around and explicitly zero out the options provided to the OS X + // implementation of removexattr, we do so for interoperability with the + // linux variant. + return removexattr(path, attr, 0) +} + +func Lremovexattr(link string, attr string) (err error) { + return removexattr(link, attr, XATTR_NOFOLLOW) +} + +//sys fremovexattr(fd int, attr string, options int) (err error) + +func Fremovexattr(fd int, attr string) (err error) { + return fremovexattr(fd, attr, 0) +} + +//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) + +func Listxattr(path string, dest []byte) (sz int, err error) { + return listxattr(path, xattrPointer(dest), len(dest), 0) +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) +} + +//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + return flistxattr(fd, xattrPointer(dest), len(dest), 0) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err 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) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { + return ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo)) +} + +// IfreqMTU is struct ifreq used to get or set a network device's MTU. +type IfreqMTU struct { + Name [IFNAMSIZ]byte + MTU int32 +} + +// 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 := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq)) + return &ifreq, 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 { + return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) +} + +//sys renamexNp(from string, to string, flag uint32) (err error) + +func RenamexNp(from string, to string, flag uint32) (err error) { + return renamexNp(from, to, flag) +} + +//sys renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) + +func RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { + return renameatxNp(fromfd, from, tofd, to, flag) +} + +//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} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var length = int64(count) + err = sendfile(infd, outfd, *offset, &length, nil, 0) + written = int(length) + return +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +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 GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { + var value TCPConnectionInfo + vallen := _Socklen(SizeofTCPConnectionInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + var kinfo KinfoProc + n := uintptr(SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofKinfoProc { + return nil, EIO + } + return &kinfo, nil +} + +func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + for { + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // Read into buffer of that size. + buf := make([]KinfoProc, n/SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { + if err == ENOMEM { + // Process table grew. Try again. + continue + } + return nil, err + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n/SizeofKinfoProc], nil + } +} + +//sys pthread_chdir_np(path string) (err error) + +func PthreadChdir(path string) (err error) { + return pthread_chdir_np(path) +} + +//sys pthread_fchdir_np(fd int) (err error) + +func PthreadFchdir(fd int) (err error) { + return pthread_fchdir_np(fd) +} + +// Connectx calls connectx(2) to initiate a connection on a socket. +// +// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument. +// +// - srcIf is the optional source interface index. 0 means unspecified. +// - srcAddr is the optional source address. nil means unspecified. +// - dstAddr is the destination address. +// +// On success, Connectx returns the number of bytes enqueued for transmission. +func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) { + endpoints := SaEndpoints{ + Srcif: srcIf, + } + + if srcAddr != nil { + addrp, addrlen, err := srcAddr.sockaddr() + if err != nil { + return 0, err + } + endpoints.Srcaddr = (*RawSockaddr)(addrp) + endpoints.Srcaddrlen = uint32(addrlen) + } + + if dstAddr != nil { + addrp, addrlen, err := dstAddr.sockaddr() + if err != nil { + return 0, err + } + endpoints.Dstaddr = (*RawSockaddr)(addrp) + endpoints.Dstaddrlen = uint32(addrlen) + } + + err = connectx(fd, &endpoints, associd, flags, iov, &n, connid) + return +} + +// sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) +const minIovec = 8 + +func Readv(fd int, iovs [][]byte) (n int, err error) { + if !darwinKernelVersionMin(11, 0, 0) { + return 0, ENOSYS + } + + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + n, err = readv(fd, iovecs) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { + if !darwinKernelVersionMin(11, 0, 0) { + return 0, ENOSYS + } + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + n, err = preadv(fd, iovecs, offset) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Writev(fd int, iovs [][]byte) (n int, err error) { + if !darwinKernelVersionMin(11, 0, 0) { + return 0, ENOSYS + } + + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + if raceenabled { + 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) { + if !darwinKernelVersionMin(11, 0, 0) { + return 0, ENOSYS + } + + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = pwritev(fd, iovecs, offset) + writevRacedetect(iovecs, n) + return n, err +} + +func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { + for _, b := range bs { + var v Iovec + v.SetLen(len(b)) + if len(b) > 0 { + v.Base = &b[0] + } else { + v.Base = (*byte)(unsafe.Pointer(&_zero)) + } + vecs = append(vecs, v) + } + return vecs +} + +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) + } + } +} + +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 darwinMajorMinPatch() (maj, min, patch int, err error) { + var un Utsname + err = Uname(&un) + if err != nil { + return + } + + var mmp [3]int + c := 0 +Loop: + for _, b := range un.Release[:] { + switch { + case b >= '0' && b <= '9': + mmp[c] = 10*mmp[c] + int(b-'0') + case b == '.': + c++ + if c > 2 { + return 0, 0, 0, ENOTSUP + } + case b == 0: + break Loop + default: + return 0, 0, 0, ENOTSUP + } + } + if c != 2 { + return 0, 0, 0, ENOTSUP + } + return mmp[0], mmp[1], mmp[2], nil +} + +func darwinKernelVersionMin(maj, min, patch int) bool { + actualMaj, actualMin, actualPatch, err := darwinMajorMinPatch() + if err != nil { + return false + } + return actualMaj > maj || actualMaj == maj && (actualMin > min || actualMin == min && actualPatch >= patch) +} + +//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) + +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) +//sys shmdt(addr uintptr) (err error) +//sys shmget(key int, size int, flag int) (id int, err error) + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//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) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//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) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//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) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) +//sys Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sys Setprivexec(flag int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//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 readv(fd int, iovecs []Iovec) (n int, err error) +//sys preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) +//sys writev(fd int, iovecs []Iovec) (n int, err error) +//sys pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go new file mode 100644 index 0000000..0eaecf5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -0,0 +1,50 @@ +// 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 amd64 && darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(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 = 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 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 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_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go new file mode 100644 index 0000000..f36c670 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -0,0 +1,50 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(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 = 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 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) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go new file mode 100644 index 0000000..2f0fa76 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go @@ -0,0 +1,26 @@ +// 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. + +//go:build darwin + +package unix + +import _ "unsafe" + +// Implemented in the runtime package (runtime/sys_darwin.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +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 +//go:linkname syscall_syscall6X syscall.syscall6X +//go:linkname syscall_syscall9 syscall.syscall9 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 +//go:linkname syscall_syscallPtr syscall.syscallPtr diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go new file mode 100644 index 0000000..be8c002 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -0,0 +1,359 @@ +// 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. + +// DragonFly BSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +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 { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 + 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]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + 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) { + 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 { + return EINVAL + } + r, w, err := pipe() + if err == nil { + p[0], p[1] = r, w + } + 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. + r, w, err := pipe2(&pp, flags) + if err == nil { + p[0], p[1] = r, w + } + 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) +} + +//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + return extpwrite(fd, p, 0, offset) +} + +func Accept4(fd, 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 Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//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) + if err != nil { + // Utsname members on Dragonfly are only 32 bytes and + // the syscall returns ENOMEM in case the actual value + // is longer. + if err == ENOMEM { + err = nil + } + } + return err +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { + return err + } + uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { + return err + } + uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { + return err + } + uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { + return err + } + uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +func Dup3(oldfd, newfd, flags int) error { + if oldfd == newfd || flags&^O_CLOEXEC != 0 { + return EINVAL + } + how := F_DUP2FD + if flags&O_CLOEXEC != 0 { + how = F_DUP2FD_CLOEXEC + } + _, err := fcntl(oldfd, how, newfd) + return err +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to 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) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//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 Flock(fd int, how int) (err error) +//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 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) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//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(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(fd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags 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 new file mode 100644 index 0000000..14bab6b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go @@ -0,0 +1,56 @@ +// 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 amd64 && dragonfly + +package unix + +import ( + "syscall" + "unsafe" +) + +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 = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go new file mode 100644 index 0000000..2b57e0f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -0,0 +1,455 @@ +// Copyright 2009,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. + +// FreeBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "errors" + "sync" + "unsafe" +) + +// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +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 { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 + 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]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + 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) +} + +//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) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +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 + 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 Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var ( + _p0 unsafe.Pointer + bufsize uintptr + ) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//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} + n := unsafe.Sizeof(uname.Sysname) + // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { + return err + } + + return nil +} + +func Stat(path string, st *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, st, 0) +} + +func Lstat(path string, st *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) +} + +func Getdents(fd int, buf []byte) (n int, err error) { + return Getdirentries(fd, buf, nil) +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + if basep == nil || unsafe.Sizeof(*basep) == 8 { + return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) + } + // The 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(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 +} + +func Mknod(path string, mode uint32, dev uint64) (err error) { + return Mknodat(AT_FDCWD, path, mode, dev) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +//sys ptrace(request int, pid int, addr uintptr, data int) (err error) +//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE + +func PtraceAttach(pid int) (err error) { + return ptrace(PT_ATTACH, pid, 0, 0) +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PT_CONTINUE, pid, 1, signal) +} + +func PtraceDetach(pid int) (err error) { + return ptrace(PT_DETACH, pid, 1, 0) +} + +func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { + return ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0) +} + +func PtraceGetRegs(pid int, regsout *Reg) (err error) { + return ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0) +} + +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + } + if countin > 0 { + _ = out[:countin] // check bounds + ioDesc.Addr = &out[0] + } else if out != nil { + ioDesc.Addr = (*byte)(unsafe.Pointer(&_zero)) + } + ioDesc.SetLen(countin) + + err = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0) + return int(ioDesc.Len), err +} + +func PtraceLwpEvents(pid int, enable int) (err error) { + return ptrace(PT_LWP_EVENTS, pid, 0, enable) +} + +func PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) { + return ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info))) +} + +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 ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0) +} + +func PtraceSingleStep(pid int) (err error) { + return ptrace(PT_STEP, pid, 1, 0) +} + +func Dup3(oldfd, newfd, flags int) error { + if oldfd == newfd || flags&^O_CLOEXEC != 0 { + return EINVAL + } + how := F_DUP2FD + if flags&O_CLOEXEC != 0 { + how = F_DUP2FD_CLOEXEC + } + _, err := fcntl(oldfd, how, newfd) + return err +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys CapEnter() (err error) +//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET +//sys capRightsLimit(fd int, rightsp *CapRights) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to 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) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//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 Flock(fd int, how int) (err error) +//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 Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//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(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags 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 new file mode 100644 index 0000000..3967bca --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -0,0 +1,64 @@ +// 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 386 && freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +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 (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +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 ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go new file mode 100644 index 0000000..eff19ad --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -0,0 +1,64 @@ +// 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 amd64 && freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +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 = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +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 ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go new file mode 100644 index 0000000..4f24b51 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -0,0 +1,60 @@ +// 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. + +//go:build arm && freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +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 (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go new file mode 100644 index 0000000..ac30759 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -0,0 +1,60 @@ +// 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. + +//go:build arm64 && freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +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 = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go new file mode 100644 index 0000000..aab725c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go @@ -0,0 +1,60 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +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 = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go new file mode 100644 index 0000000..a6a2d2f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go @@ -0,0 +1,30 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build hurd + +package unix + +/* +#include <stdint.h> +int ioctl(int, unsigned long int, uintptr_t); +*/ +import "C" +import "unsafe" + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) + if r0 == -1 && er != nil { + err = er + } + return +} diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go new file mode 100644 index 0000000..df89f9e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go @@ -0,0 +1,28 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && hurd + +package unix + +const ( + TIOCGETA = 0x62251713 +) + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} 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 0000000..a863f70 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -0,0 +1,78 @@ +// 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. + +// illumos system calls not present on Solaris. + +//go: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 { + iovecs[i].Base = &b[0] + } else { + iovecs[i].Base = (*byte)(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 +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go new file mode 100644 index 0000000..4958a65 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -0,0 +1,2647 @@ +// 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. + +// Linux system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import ( + "encoding/binary" + "slices" + "strconv" + "syscall" + "time" + "unsafe" +) + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +func EpollCreate(size int) (fd int, err error) { + if size <= 0 { + return -1, EINVAL + } + return EpollCreate1(0) +} + +//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) +//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) + +func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { + if pathname == "" { + return fanotifyMark(fd, flags, mask, dirFd, nil) + } + p, err := BytePtrFromString(pathname) + if err != nil { + return err + } + return fanotifyMark(fd, flags, mask, dirFd, p) +} + +//sys fchmodat(dirfd int, path string, mode uint32) (err error) +//sys fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) + +func Fchmodat(dirfd int, path string, mode uint32, flags int) error { + // Linux fchmodat doesn't support the flags parameter, but fchmodat2 does. + // Try fchmodat2 if flags are specified. + if flags != 0 { + err := fchmodat2(dirfd, path, mode, flags) + if err == ENOSYS { + // fchmodat2 isn't available. If the flags are known to be valid, + // return EOPNOTSUPP to indicate that fchmodat doesn't support them. + if flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { + return EINVAL + } else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { + return EOPNOTSUPP + } + } + return err + } + return fchmodat(dirfd, path, mode) +} + +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +// ioctl itself should not be exposed directly, but additional get/set functions +// for specific types are permissible. These are defined in ioctl.go and +// ioctl_linux.go. +// +// The third argument to ioctl is often a pointer but sometimes an integer. +// Callers should use ioctlPtr when the third argument is a pointer and ioctl +// when the third argument is an integer. +// +// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr. + +//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) + +func Link(oldpath string, newpath string) (err error) { + return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) +} + +func Mkdir(path string, mode uint32) (err error) { + return Mkdirat(AT_FDCWD, path, mode) +} + +func Mknod(path string, mode uint32, dev int) (err error) { + return Mknodat(AT_FDCWD, path, mode, dev) +} + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) +} + +//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) + +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) +} + +func Pipe(p []int) 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 := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//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) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var ts *Timespec + if timeout >= 0 { + ts = new(Timespec) + *ts = NsecToTimespec(int64(timeout) * 1e6) + } + return Ppoll(fds, ts, nil) +} + +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) + +func Readlink(path string, buf []byte) (n int, err error) { + return Readlinkat(AT_FDCWD, path, buf) +} + +func Rename(oldpath string, newpath string) (err error) { + return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) +} + +func Rmdir(path string) error { + return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) +} + +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) + +func Symlink(oldpath string, newpath string) (err error) { + return Symlinkat(oldpath, AT_FDCWD, newpath) +} + +func Unlink(path string) error { + return Unlinkat(AT_FDCWD, path, 0) +} + +//sys Unlinkat(dirfd int, path string, flags int) (err error) + +func Utimes(path string, tv []Timeval) error { + if tv == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + var ts [2]Timespec + ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) + ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + return UtimesNanoAt(AT_FDCWD, path, ts, 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func Futimesat(dirfd int, path string, tv []Timeval) error { + if tv == nil { + return futimesat(dirfd, path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Futimes(fd int, tv []Timeval) (err error) { + // Believe it or not, this is the best we can do on Linux + // (and is what glibc does). + return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +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 + } + // In some cases, Linux can return a path that starts with the + // "(unreachable)" prefix, which can potentially be a valid relative + // path. To work around that, return ENOENT if path is not absolute. + if buf[0] != '/' { + return "", ENOENT + } + + 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]) +} + +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() syscall.Signal { + if !w.Signaled() { + return -1 + } + return syscall.Signal(w & mask) +} + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { + if w.StopSignal() != SIGTRAP { + return -1 + } + return int(w>>shift) >> 8 +} + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) + +func Mkfifo(path string, mode uint32) error { + return Mknod(path, mode|S_IFIFO, 0) +} + +func Mkfifoat(dirfd int, path string, mode uint32) error { + return Mknodat(dirfd, path, mode|S_IFIFO, 0) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + 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 + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := range n { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { + // Check sl > 3 so we don't change unnamed socket behavior. + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. +type SockaddrLinklayer struct { + Protocol uint16 + Ifindex int + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]byte + raw RawSockaddrLinklayer +} + +func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_PACKET + sa.raw.Protocol = sa.Protocol + sa.raw.Ifindex = int32(sa.Ifindex) + sa.raw.Hatype = sa.Hatype + sa.raw.Pkttype = sa.Pkttype + sa.raw.Halen = sa.Halen + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil +} + +// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. +type SockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 + raw RawSockaddrNetlink +} + +func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_NETLINK + sa.raw.Pad = sa.Pad + sa.raw.Pid = sa.Pid + sa.raw.Groups = sa.Groups + return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil +} + +// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the HCI protocol. +type SockaddrHCI struct { + Dev uint16 + Channel uint16 + raw RawSockaddrHCI +} + +func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Dev = sa.Dev + sa.raw.Channel = sa.Channel + return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil +} + +// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the L2CAP protocol. +type SockaddrL2 struct { + PSM uint16 + CID uint16 + Addr [6]uint8 + AddrType uint8 + raw RawSockaddrL2 +} + +func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) + psm[0] = byte(sa.PSM) + psm[1] = byte(sa.PSM >> 8) + for i := range len(sa.Addr) { + sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] + } + cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) + cid[0] = byte(sa.CID) + cid[1] = byte(sa.CID >> 8) + sa.raw.Bdaddr_type = sa.AddrType + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil +} + +// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the RFCOMM protocol. +// +// Server example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 +// }) +// _ = Listen(fd, 1) +// nfd, sa, _ := Accept(fd) +// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) +// Read(nfd, buf) +// +// Client example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = Connect(fd, &SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 +// }) +// Write(fd, []byte(`hello`)) +type SockaddrRFCOMM struct { + // Addr represents a bluetooth address, byte ordering is little-endian. + Addr [6]uint8 + + // Channel is a designated bluetooth channel, only 1-30 are available for use. + // Since Linux 2.6.7 and further zero value is the first available channel. + Channel uint8 + + raw RawSockaddrRFCOMM +} + +func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Channel = sa.Channel + sa.raw.Bdaddr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil +} + +// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. +// The RxID and TxID fields are used for transport protocol addressing in +// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with +// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. +// +// The SockaddrCAN struct must be bound to the socket file descriptor +// using Bind before the CAN socket can be used. +// +// // Read one raw CAN frame +// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) +// addr := &SockaddrCAN{Ifindex: index} +// Bind(fd, addr) +// frame := make([]byte, 16) +// Read(fd, frame) +// +// The full SocketCAN documentation can be found in the linux kernel +// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt +type SockaddrCAN struct { + Ifindex int + RxID uint32 + TxID uint32 + raw RawSockaddrCAN +} + +func (sa *SockaddrCAN) 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) + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := range 4 { + sa.raw.Addr[i] = rx[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := range 4 { + sa.raw.Addr[i+4] = tx[i] + } + 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 := range 8 { + sa.raw.Addr[i] = n[i] + } + p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := range 4 { + 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 +// should be used with a given socket. +// +// To create a file descriptor that provides access to a hash or cipher, both +// Bind and Accept must be used. Once the setup process is complete, input +// data can be written to the socket, processed by the kernel, and then read +// back as hash output or ciphertext. +// +// Here is an example of using an AF_ALG socket with SHA1 hashing. +// The initial socket setup process is as follows: +// +// // Open a socket to perform SHA1 hashing. +// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) +// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} +// unix.Bind(fd, addr) +// // Note: unix.Accept does not work at this time; must invoke accept() +// // manually using unix.Syscall. +// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) +// +// Once a file descriptor has been returned from Accept, it may be used to +// perform SHA1 hashing. The descriptor is not safe for concurrent use, but +// may be re-used repeatedly with subsequent Write and Read operations. +// +// When hashing a small byte slice or string, a single Write and Read may +// be used: +// +// // Assume hashfd is already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash an input string and read the results. Each Write discards +// // previous hash state. Read always reads the current state. +// b := make([]byte, 20) +// for i := 0; i < 2; i++ { +// io.WriteString(hash, "Hello, world.") +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// } +// // Output: +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// +// For hashing larger byte slices, or byte streams such as those read from +// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update +// the hash digest instead of creating a new one for a given chunk and finalizing it. +// +// // Assume hashfd and addr are already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash the contents of a file. +// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") +// b := make([]byte, 4096) +// for { +// n, err := f.Read(b) +// if err == io.EOF { +// break +// } +// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) +// } +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 +// +// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. +type SockaddrALG struct { + Type string + Name string + Feature uint32 + Mask uint32 + raw RawSockaddrALG +} + +func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { + // Leave room for NUL byte terminator. + if len(sa.Type) > len(sa.raw.Type)-1 { + return nil, 0, EINVAL + } + if len(sa.Name) > len(sa.raw.Name)-1 { + return nil, 0, EINVAL + } + + sa.raw.Family = AF_ALG + sa.raw.Feat = sa.Feature + sa.raw.Mask = sa.Mask + + copy(sa.raw.Type[:], sa.Type) + copy(sa.raw.Name[:], sa.Name) + + return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil +} + +// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. +// SockaddrVM provides access to Linux VM sockets: a mechanism that enables +// bidirectional communication between a hypervisor and its guest virtual +// machines. +type SockaddrVM struct { + // CID and Port specify a context ID and port address for a VM socket. + // Guests have a unique CID, and hosts may have a well-known CID of: + // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_LOCAL: refers to local communication (loopback). + // - VMADDR_CID_HOST: refers to other processes on the host. + 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 +} + +type SockaddrXDP struct { + Flags uint16 + Ifindex uint32 + QueueID uint32 + SharedUmemFD uint32 + raw RawSockaddrXDP +} + +func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_XDP + sa.raw.Flags = sa.Flags + sa.raw.Ifindex = sa.Ifindex + sa.raw.Queue_id = sa.QueueID + sa.raw.Shared_umem_fd = sa.SharedUmemFD + + return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil +} + +// This constant mirrors the #define of PX_PROTO_OE in +// linux/if_pppox.h. We're defining this by hand here instead of +// autogenerating through mkerrors.sh because including +// linux/if_pppox.h causes some declaration conflicts with other +// includes (linux/if_pppox.h includes linux/in.h, which conflicts +// with netinet/in.h). Given that we only need a single zero constant +// out of that file, it's cleaner to just define it by hand here. +const px_proto_oe = 0 + +type SockaddrPPPoE struct { + SID uint16 + Remote []byte + Dev string + raw RawSockaddrPPPoX +} + +func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { + if len(sa.Remote) != 6 { + return nil, 0, EINVAL + } + if len(sa.Dev) > IFNAMSIZ-1 { + return nil, 0, EINVAL + } + + *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX + // This next field is in host-endian byte order. We can't use the + // same unsafe pointer cast as above, because this value is not + // 32-bit aligned and some architectures don't allow unaligned + // access. + // + // However, the value of px_proto_oe is 0, so we can use + // encoding/binary helpers to write the bytes without worrying + // about the ordering. + binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) + // This field is deliberately big-endian, unlike the previous + // one. The kernel expects SID to be in network byte order. + binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) + copy(sa.raw[8:14], sa.Remote) + for i := 14; i < 14+IFNAMSIZ; i++ { + sa.raw[i] = 0 + } + copy(sa.raw[14:], sa.Dev) + 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 + sa.raw.Addr = sa.Addr + 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 + sa.raw.Addr = sa.Addr + 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 := range 8 { + 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 +} + +type SockaddrNFC struct { + DeviceIdx uint32 + TargetIdx uint32 + NFCProtocol uint32 + raw RawSockaddrNFC +} + +func (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sa_family = AF_NFC + sa.raw.Dev_idx = sa.DeviceIdx + sa.raw.Target_idx = sa.TargetIdx + sa.raw.Nfc_protocol = sa.NFCProtocol + return unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil +} + +type SockaddrNFCLLCP struct { + DeviceIdx uint32 + TargetIdx uint32 + NFCProtocol uint32 + DestinationSAP uint8 + SourceSAP uint8 + ServiceName string + raw RawSockaddrNFCLLCP +} + +func (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sa_family = AF_NFC + sa.raw.Dev_idx = sa.DeviceIdx + sa.raw.Target_idx = sa.TargetIdx + sa.raw.Nfc_protocol = sa.NFCProtocol + sa.raw.Dsap = sa.DestinationSAP + sa.raw.Ssap = sa.SourceSAP + if len(sa.ServiceName) > len(sa.raw.Service_name) { + return nil, 0, EINVAL + } + copy(sa.raw.Service_name[:], sa.ServiceName) + sa.raw.SetServiceNameLen(len(sa.ServiceName)) + return unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, 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: + pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) + sa := new(SockaddrNetlink) + sa.Family = pp.Family + sa.Pad = pp.Pad + sa.Pid = pp.Pid + sa.Groups = pp.Groups + return sa, nil + + case AF_PACKET: + pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) + sa := new(SockaddrLinklayer) + sa.Protocol = pp.Protocol + sa.Ifindex = int(pp.Ifindex) + sa.Hatype = pp.Hatype + sa.Pkttype = pp.Pkttype + sa.Halen = pp.Halen + sa.Addr = pp.Addr + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if 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. + // 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 < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + 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 + sa.Addr = pp.Addr + 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]) + sa.Addr = pp.Addr + return sa, nil + } + + case AF_INET6: + 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 + sa.Addr = pp.Addr + 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 + sa.Addr = pp.Addr + return sa, nil + } + + case AF_VSOCK: + pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) + sa := &SockaddrVM{ + CID: pp.Cid, + Port: pp.Port, + Flags: pp.Flags, + } + return sa, nil + case AF_BLUETOOTH: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections + switch proto { + case BTPROTO_L2CAP: + pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) + sa := &SockaddrL2{ + PSM: pp.Psm, + CID: pp.Cid, + Addr: pp.Bdaddr, + AddrType: pp.Bdaddr_type, + } + return sa, nil + case BTPROTO_RFCOMM: + pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) + sa := &SockaddrRFCOMM{ + Channel: pp.Channel, + Addr: pp.Bdaddr, + } + return sa, nil + } + case AF_XDP: + pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) + sa := &SockaddrXDP{ + Flags: pp.Flags, + Ifindex: pp.Ifindex, + QueueID: pp.Queue_id, + SharedUmemFD: pp.Shared_umem_fd, + } + return sa, nil + case AF_PPPOX: + pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) + if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { + return nil, EINVAL + } + sa := &SockaddrPPPoE{ + SID: binary.BigEndian.Uint16(pp[6:8]), + Remote: pp[8:14], + } + for i := 14; i < 14+IFNAMSIZ; i++ { + if pp[i] == 0 { + sa.Dev = string(pp[14:i]) + break + } + } + 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 := range 8 { + 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 := range 8 { + name[i] = pp.Addr[i] + } + pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := range 4 { + 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 := range 4 { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := range 4 { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } + case AF_NFC: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + switch proto { + case NFC_SOCKPROTO_RAW: + pp := (*RawSockaddrNFC)(unsafe.Pointer(rsa)) + sa := &SockaddrNFC{ + DeviceIdx: pp.Dev_idx, + TargetIdx: pp.Target_idx, + NFCProtocol: pp.Nfc_protocol, + } + return sa, nil + case NFC_SOCKPROTO_LLCP: + pp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa)) + if uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) { + return nil, EINVAL + } + sa := &SockaddrNFCLLCP{ + DeviceIdx: pp.Dev_idx, + TargetIdx: pp.Target_idx, + NFCProtocol: pp.Nfc_protocol, + DestinationSAP: pp.Dsap, + SourceSAP: pp.Ssap, + ServiceName: string(pp.Service_name[:pp.Service_name_len]), + } + return sa, nil + default: + return nil, EINVAL + } + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, 0) + if err != nil { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +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 +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { + var value Ucred + vallen := _Socklen(SizeofUcred) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + var value TCPInfo + vallen := _Socklen(SizeofTCPInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the "vegas" +// algorithm. +// +// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: +// +// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) +func GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) { + var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment + vallen := _Socklen(SizeofTCPCCInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + out := (*TCPVegasInfo)(unsafe.Pointer(&value[0])) + return out, err +} + +// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the "dctp" +// algorithm. +// +// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: +// +// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) +func GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) { + var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment + vallen := _Socklen(SizeofTCPCCInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + out := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0])) + return out, err +} + +// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the "bbr" +// algorithm. +// +// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: +// +// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) +func GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) { + var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment + vallen := _Socklen(SizeofTCPCCInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + out := (*TCPBBRInfo)(unsafe.Pointer(&value[0])) + return out, err +} + +// 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 { + if err == ERANGE { + buf = make([]byte, vallen) + err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + } + if err != nil { + return "", err + } + } + return ByteSliceToString(buf[:vallen]), nil +} + +func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { + var value TpacketStats + vallen := _Socklen(SizeofTpacketStats) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { + var value TpacketStatsV3 + vallen := _Socklen(SizeofTpacketStatsV3) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a +// socket to filter incoming packets. See 'man 7 socket' for usage information. +func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { + return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) +} + +func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { + var p unsafe.Pointer + if len(filter) > 0 { + p = unsafe.Pointer(&filter[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) +} + +func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +func SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) { + if len(o) == 0 { + return EINVAL + } + return setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o))) +} + +func SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error { + return setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s)) +} + +// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) + +// KeyctlInt calls keyctl commands in which each argument is an int. +// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, +// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, +// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, +// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. +//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlBuffer calls keyctl commands in which the third and fourth +// arguments are a buffer and its length, respectively. +// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. +//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlString calls keyctl commands which return a string. +// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. +func KeyctlString(cmd int, id int) (string, error) { + // We must loop as the string data may change in between the syscalls. + // We could allocate a large buffer here to reduce the chance that the + // syscall needs to be called twice; however, this is unnecessary as + // the performance loss is negligible. + var buffer []byte + for { + // Try to fill the buffer with data + length, err := KeyctlBuffer(cmd, id, buffer, 0) + if err != nil { + return "", err + } + + // Check if the data was written + if length <= len(buffer) { + // Exclude the null terminator + return string(buffer[:length-1]), nil + } + + // Make a bigger buffer if needed + buffer = make([]byte, length) + } +} + +// Keyctl commands with special signatures. + +// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html +func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { + createInt := 0 + if create { + createInt = 1 + } + return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) +} + +// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the +// key handle permission mask as described in the "keyctl setperm" section of +// http://man7.org/linux/man-pages/man1/keyctl.1.html. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html +func KeyctlSetperm(id int, perm uint32) error { + _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) + return err +} + +//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL + +// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html +func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { + return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) +} + +//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlSearch implements the KEYCTL_SEARCH command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_search.3.html +func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { + return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) +} + +//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL + +// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This +// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice +// of Iovec (each of which represents a buffer) instead of a single buffer. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html +func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { + return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) +} + +//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL + +// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command +// computes a Diffie-Hellman shared secret based on the provide params. The +// secret is written to the provided buffer and the returned size is the number +// of bytes written (returning an error if there is insufficient space in the +// buffer). If a nil buffer is passed in, this function returns the minimum +// buffer length needed to store the appropriate data. Note that this differs +// from KEYCTL_READ's behavior which always returns the requested payload size. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html +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:<key>", and "key_or_keyring:<key>: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 recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + if emptyIovecs(iov) { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return + } + // receive at least one normal byte + if sockType != SOCK_DGRAM { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(ptr) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + empty = emptyIovecs(iov) + if empty { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return 0, err + } + // send at least one normal byte + if sockType != SOCK_DGRAM { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +// BindToDevice binds the socket associated with fd to device. +func BindToDevice(fd int, device string) (err error) { + return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) +} + +//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) +//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE + +func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { + // The peek requests are machine-size oriented, so we wrap it + // to retrieve arbitrary-length data. + + // The ptrace syscall differs from glibc's ptrace. + // Peeks returns the word in *data, not as the return value. + + var buf [SizeofPtr]byte + + // Leading edge. PEEKTEXT/PEEKDATA don't require aligned + // access (PEEKUSER warns that it might), but if we don't + // align our reads, we might straddle an unmapped page + // boundary and not get the bytes leading up to the page + // boundary. + n := 0 + if addr%SizeofPtr != 0 { + err = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) + if err != nil { + return 0, err + } + n += copy(out, buf[addr%SizeofPtr:]) + out = out[n:] + } + + // Remainder. + for len(out) > 0 { + // We use an internal buffer to guarantee alignment. + // It's not documented if this is necessary, but we're paranoid. + err = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) + if err != nil { + return n, err + } + copied := copy(out, buf[0:]) + n += copied + out = out[copied:] + } + + return n, nil +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) +} + +func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) +} + +func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { + // As for ptracePeek, we need to align our accesses to deal + // with the possibility of straddling an invalid page. + + // Leading edge. + n := 0 + if addr%SizeofPtr != 0 { + var buf [SizeofPtr]byte + err = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) + if err != nil { + return 0, err + } + n += copy(buf[addr%SizeofPtr:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) + if err != nil { + return 0, err + } + data = data[n:] + } + + // Interior. + for len(data) > SizeofPtr { + word := *((*uintptr)(unsafe.Pointer(&data[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += SizeofPtr + data = data[SizeofPtr:] + } + + // Trailing edge. + if len(data) > 0 { + var buf [SizeofPtr]byte + err = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) + if err != nil { + return n, err + } + copy(buf[0:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += len(data) + } + + return n, nil +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) +} + +func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) +} + +// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so +// x/sys/unix doesn't need to depend on debug/elf and thus +// compress/zlib, debug/dwarf, and other packages. +const elfNT_PRSTATUS = 1 + +func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { + var iov Iovec + iov.Base = (*byte)(unsafe.Pointer(regsout)) + iov.SetLen(int(unsafe.Sizeof(*regsout))) + return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) +} + +func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { + var iov Iovec + iov.Base = (*byte)(unsafe.Pointer(regs)) + iov.SetLen(int(unsafe.Sizeof(*regs))) + return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) +} + +func PtraceSetOptions(pid int, options int) (err error) { + return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) +} + +func PtraceGetEventMsg(pid int) (msg uint, err error) { + var data _C_long + err = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data)) + msg = uint(data) + return +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) +} + +func PtraceSyscall(pid int, signal int) (err error) { + return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) +} + +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) + +func Reboot(cmd int) (err error) { + return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") +} + +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) + +func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + // Certain file systems get rather angry and EINVAL if you give + // them an empty string of data, rather than NULL. + if data == "" { + return mount(source, target, fstype, flags, nil) + } + datap, err := BytePtrFromString(data) + if err != nil { + return err + } + return mount(source, target, fstype, flags, datap) +} + +//sys mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR + +// MountSetattr is a wrapper for mount_setattr(2). +// https://man7.org/linux/man-pages/man2/mount_setattr.2.html +// +// Requires kernel >= 5.12. +func MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error { + return mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr)) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +// Sendto +// Recvfrom +// Socketpair + +/* + * Direct access + */ +//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 ClockAdjtime(clockid int32, buf *Timex) (state int, err error) +//sys ClockGetres(clockid int32, res *Timespec) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys ClockSettime(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 { + return Dup3(oldfd, newfd, 0) +} + +//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) +//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 +//sys Exit(code int) = SYS_EXIT_GROUP +//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) +//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 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) +//sys Flistxattr(fd int, dest []byte) (sz int, err error) +//sys Flock(fd int, how int) (err error) +//sys Fremovexattr(fd int, attr string) (err error) +//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) +//sys Fsync(fd int) (err error) +//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) +//sys Fsopen(fsName string, flags int) (fd int, err error) +//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) + +//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) + +func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { + var keyp *byte + if keyp, err = BytePtrFromString(key); err != nil { + return + } + return fsconfig(fd, cmd, keyp, value, aux) +} + +// FsconfigSetFlag is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_FLAG. +// +// fd is the filesystem context to act upon. +// key the parameter key to set. +func FsconfigSetFlag(fd int, key string) (err error) { + return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) +} + +// FsconfigSetString is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_STRING. +// +// fd is the filesystem context to act upon. +// key the parameter key to set. +// value is the parameter value to set. +func FsconfigSetString(fd int, key string, value string) (err error) { + var valuep *byte + if valuep, err = BytePtrFromString(value); err != nil { + return + } + return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) +} + +// FsconfigSetBinary is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_BINARY. +// +// fd is the filesystem context to act upon. +// key the parameter key to set. +// value is the parameter value to set. +func FsconfigSetBinary(fd int, key string, value []byte) (err error) { + if len(value) == 0 { + return EINVAL + } + return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) +} + +// FsconfigSetPath is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_PATH. +// +// fd is the filesystem context to act upon. +// key the parameter key to set. +// path is a non-empty path for specified key. +// atfd is a file descriptor at which to start lookup from or AT_FDCWD. +func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { + var valuep *byte + if valuep, err = BytePtrFromString(path); err != nil { + return + } + return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) +} + +// FsconfigSetPathEmpty is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as +// FconfigSetPath but with AT_PATH_EMPTY implied. +func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { + var valuep *byte + if valuep, err = BytePtrFromString(path); err != nil { + return + } + return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) +} + +// FsconfigSetFd is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_SET_FD. +// +// fd is the filesystem context to act upon. +// key the parameter key to set. +// value is a file descriptor to be assigned to specified key. +func FsconfigSetFd(fd int, key string, value int) (err error) { + return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) +} + +// FsconfigCreate is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_CMD_CREATE. +// +// fd is the filesystem context to act upon. +func FsconfigCreate(fd int) (err error) { + return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) +} + +// FsconfigReconfigure is equivalent to fsconfig(2) called +// with cmd == FSCONFIG_CMD_RECONFIGURE. +// +// fd is the filesystem context to act upon. +func FsconfigReconfigure(fd int) (err error) { + return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) +} + +//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 +//sysnb Getpgid(pid int) (pgid int, err error) + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) + +func Getrandom(buf []byte, flags int) (n int, err error) { + vdsoRet, supported := vgetrandom(buf, uint32(flags)) + if supported { + if vdsoRet < 0 { + return 0, errnoErr(syscall.Errno(-vdsoRet)) + } + return vdsoRet, nil + } + var p *byte + if len(buf) > 0 { + p = &buf[0] + } + r, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags)) + if e != 0 { + return 0, errnoErr(e) + } + return int(r), nil +} + +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettid() (tid int) +//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) +//sys InitModule(moduleImage []byte, params string) (err error) +//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) +//sysnb InotifyInit1(flags int) (fd int, err error) +//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) +//sysnb Kill(pid int, sig syscall.Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG +//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) +//sys Listxattr(path string, dest []byte) (sz int, err error) +//sys Llistxattr(path string, dest []byte) (sz int, err error) +//sys Lremovexattr(path string, attr string) (err error) +//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) +//sys MemfdCreate(name string, flags int) (fd int, err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys OpenTree(dfd int, fileName string, flags uint) (r int, 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 +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sys pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Removexattr(path string, attr string) (err error) +//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) +//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) +//sys Setns(fd int, nstype int) (err error) + +//go:linkname syscall_prlimit syscall.prlimit +func syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error + +func Prlimit(pid, resource int, newlimit, old *Rlimit) error { + // Just call the syscall version, because as of Go 1.21 + // it will affect starting a new process. + return syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old)) +} + +// 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 +} + +func Setuid(uid int) (err error) { + return syscall.Setuid(uid) +} + +func Setgid(gid int) (err error) { + return syscall.Setgid(gid) +} + +func Setreuid(ruid, euid int) (err error) { + return syscall.Setreuid(ruid, euid) +} + +func Setregid(rgid, egid int) (err error) { + return syscall.Setregid(rgid, egid) +} + +func Setresuid(ruid, euid, suid int) (err error) { + return syscall.Setresuid(ruid, euid, suid) +} + +func Setresgid(rgid, egid, sgid int) (err error) { + return syscall.Setresgid(rgid, egid, sgid) +} + +// 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, 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) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 +//sys Unshare(flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys exitThread(code int) (err error) = SYS_EXIT +//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 + +// minIovec is the size of the small initial allocation used by +// Readv, Writev, etc. +// +// This small allocation gets stack allocated, which lets the +// common use case of len(iovs) <= minIovs avoid more expensive +// heap allocations. +const minIovec = 8 + +// appendBytes converts bs to Iovecs and appends them to vecs. +func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { + for _, b := range bs { + var v Iovec + v.SetLen(len(b)) + if len(b) > 0 { + v.Base = &b[0] + } else { + v.Base = (*byte)(unsafe.Pointer(&_zero)) + } + vecs = append(vecs, v) + } + return vecs +} + +// offs2lohi splits offs into its low and high order bits. +func offs2lohi(offs int64) (lo, hi uintptr) { + const longBits = SizeofLong * 8 + return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet +} + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := min(int(iovecs[i].Len), 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 := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, 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 := min(int(iovecs[i].Len), 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) +//sys mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +const ( + mremapFixed = MREMAP_FIXED + mremapDontunmap = MREMAP_DONTUNMAP + mremapMaymove = MREMAP_MAYMOVE +) + +// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, +// using the specified flags. +func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { + var p unsafe.Pointer + if len(iovs) > 0 { + p = unsafe.Pointer(&iovs[0]) + } + + n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) + if errno != 0 { + return 0, syscall.Errno(errno) + } + + return int(n), nil +} + +func isGroupMember(gid int) bool { + groups, err := Getgroups() + if err != nil { + return false + } + + return slices.Contains(groups, gid) +} + +func isCapDacOverrideSet() bool { + hdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3} + data := [2]CapUserData{} + err := Capget(&hdr, &data[0]) + + return err == nil && data[0].Effective&(1<<CAP_DAC_OVERRIDE) != 0 +} + +//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 == 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. + // The glibc faccessat implements the flags itself; see + // https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD + // Because people naturally expect syscall.Faccessat to act + // like C faccessat, we do the same. + + if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { + return EINVAL + } + + var st Stat_t + if err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil { + return err + } + + mode &= 7 + if mode == 0 { + return nil + } + + var uid int + if flags&AT_EACCESS != 0 { + uid = Geteuid() + if uid != 0 && isCapDacOverrideSet() { + // If CAP_DAC_OVERRIDE is set, file access check is + // done by the kernel in the same way as for root + // (see generic_permission() in the Linux sources). + uid = 0 + } + } else { + uid = Getuid() + } + + if uid == 0 { + if mode&1 == 0 { + // Root can read and write any file. + return nil + } + if st.Mode&0111 != 0 { + // Root can execute any file that anybody can execute. + return nil + } + return EACCES + } + + var fmode uint32 + if uint32(uid) == st.Uid { + fmode = (st.Mode >> 6) & 7 + } else { + var gid int + if flags&AT_EACCESS != 0 { + gid = Getegid() + } else { + gid = Getgid() + } + + if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { + fmode = (st.Mode >> 3) & 7 + } else { + fmode = st.Mode & 7 + } + } + + if fmode&mode == mode { + return nil + } + + 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 unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), 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 + +//sys PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN +//sys PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD +//sys PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL + +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) +//sys shmdt(addr uintptr) (err error) +//sys shmget(key int, size int, flag int) (id int, err error) + +//sys getitimer(which int, currValue *Itimerval) (err error) +//sys setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) + +// MakeItimerval creates an Itimerval from interval and value durations. +func MakeItimerval(interval, value time.Duration) Itimerval { + return Itimerval{ + Interval: NsecToTimeval(interval.Nanoseconds()), + Value: NsecToTimeval(value.Nanoseconds()), + } +} + +// A value which may be passed to the which parameter for Getitimer and +// Setitimer. +type ItimerWhich int + +// Possible which values for Getitimer and Setitimer. +const ( + ItimerReal ItimerWhich = ITIMER_REAL + ItimerVirtual ItimerWhich = ITIMER_VIRTUAL + ItimerProf ItimerWhich = ITIMER_PROF +) + +// Getitimer wraps getitimer(2) to return the current value of the timer +// specified by which. +func Getitimer(which ItimerWhich) (Itimerval, error) { + var it Itimerval + if err := getitimer(int(which), &it); err != nil { + return Itimerval{}, err + } + + return it, nil +} + +// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which. +// It returns the previous value of the timer. +// +// If the Itimerval argument is the zero value, the timer will be disarmed. +func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { + var prev Itimerval + if err := setitimer(int(which), &it, &prev); err != nil { + return Itimerval{}, err + } + + return prev, nil +} + +//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK + +func PthreadSigmask(how int, set, oldset *Sigset_t) error { + if oldset != nil { + // Explicitly clear in case Sigset_t is larger than _C__NSIG. + *oldset = Sigset_t{} + } + return rtSigprocmask(how, set, oldset, _C__NSIG/8) +} + +//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) +//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) + +func Getresuid() (ruid, euid, suid int) { + var r, e, s _C_int + getresuid(&r, &e, &s) + return int(r), int(e), int(s) +} + +func Getresgid() (rgid, egid, sgid int) { + var r, e, s _C_int + getresgid(&r, &e, &s) + return int(r), int(e), int(s) +} + +// Pselect is a wrapper around the Linux pselect6 system call. +// This version does not modify the timeout argument. +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + // Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES, + // The Linux pselect6() system call modifies its timeout argument. + // [Not modifying the argument] is the behavior required by POSIX.1-2001. + var mutableTimeout *Timespec + if timeout != nil { + mutableTimeout = new(Timespec) + *mutableTimeout = *timeout + } + + // The final argument of the pselect6() system call is not a + // sigset_t * pointer, but is instead a structure + var kernelMask *sigset_argpack + if sigmask != nil { + wordBits := 32 << (^uintptr(0) >> 63) // see math.intSize + + // A sigset stores one bit per signal, + // offset by 1 (because signal 0 does not exist). + // So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉. + sigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits) + + sigsetBytes := uintptr(sigsetWords * (wordBits / 8)) + kernelMask = &sigset_argpack{ + ss: sigmask, + ssLen: sigsetBytes, + } + } + + return pselect6(nfd, r, w, e, mutableTimeout, kernelMask) +} + +//sys schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) +//sys schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) + +// SchedSetAttr is a wrapper for sched_setattr(2) syscall. +// https://man7.org/linux/man-pages/man2/sched_setattr.2.html +func SchedSetAttr(pid int, attr *SchedAttr, flags uint) error { + if attr == nil { + return EINVAL + } + attr.Size = SizeofSchedAttr + return schedSetattr(pid, attr, flags) +} + +// SchedGetAttr is a wrapper for sched_getattr(2) syscall. +// https://man7.org/linux/man-pages/man2/sched_getattr.2.html +func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { + attr := &SchedAttr{} + if err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil { + return nil, err + } + return attr, nil +} + +//sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) +//sys Mseal(b []byte, flags uint) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go new file mode 100644 index 0000000..506dafa --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -0,0 +1,314 @@ +// 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 386 && linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +// 64-bit file system and 32-bit uid calls +// (386 default is 32-bit file system and 16-bit uid). +//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 +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//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 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) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) +//sys Pause() (err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +// On x86 Linux, all the socket calls go through an extra indirection, +// I think because the 5-register system call interface can't handle +// the 6-argument calls like sendto and recvfrom. Instead the +// arguments to the underlying system call are the number below +// and a pointer to an array of uintptr. We hide the pointer in the +// socketcall assembly to avoid allocation on every system call. + +const ( + // see linux/net.h + _SOCKET = 1 + _BIND = 2 + _CONNECT = 3 + _LISTEN = 4 + _ACCEPT = 5 + _GETSOCKNAME = 6 + _GETPEERNAME = 7 + _SOCKETPAIR = 8 + _SEND = 9 + _RECV = 10 + _SENDTO = 11 + _RECVFROM = 12 + _SHUTDOWN = 13 + _SETSOCKOPT = 14 + _GETSOCKOPT = 15 + _SENDMSG = 16 + _RECVMSG = 17 + _ACCEPT4 = 18 + _RECVMMSG = 19 + _SENDMMSG = 20 +) + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) + if e != 0 { + err = e + } + return +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socket(domain int, typ int, proto int) (fd int, err error) { + fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e != 0 { + err = e + } + return +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) + if e != 0 { + err = e + } + return +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + if e != 0 { + err = e + } + return +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e != 0 { + err = e + } + return +} + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Listen(s int, n int) (err error) { + _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Shutdown(s, how int) (err error) { + _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go new file mode 100644 index 0000000..38d5564 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go @@ -0,0 +1,12 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) + +package unix + +// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH +// values. + +//sys Alarm(seconds uint) (remaining uint, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go new file mode 100644 index 0000000..d557cf8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -0,0 +1,145 @@ +// 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 amd64 && 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 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_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys MemfdSecret(flags int) (fd int, err error) +//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return pselect6(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev 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) + +func Stat(path string, stat *Stat_t) (err error) { + // Use fstatat, because Android's seccomp policy blocks stat. + return Fstatat(AT_FDCWD, path, stat, 0) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + errno := gettimeofday(tv) + if errno != 0 { + return errno + } + return nil +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + errno := gettimeofday(&tv) + if errno != 0 { + return 0, errno + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +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 (r *PtraceRegs) PC() uint64 { return r.Rip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +//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_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go new file mode 100644 index 0000000..facdb83 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -0,0 +1,12 @@ +// 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. + +//go:build amd64 && linux && gc + +package unix + +import "syscall" + +//go:noescape +func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go new file mode 100644 index 0000000..cd2dd79 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -0,0 +1,216 @@ +// 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 && linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +// 64-bit file system and 32-bit uid calls +// (16-bit uid calls are not always supported in newer kernels) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (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) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +//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 Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} + +//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and arm_sync_file_range syscalls differ only in the + // 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 new file mode 100644 index 0000000..745e5c7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -0,0 +1,186 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid 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 Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys MemfdSecret(flags int) (fd int, 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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return pselect6(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev 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) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +// 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) +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +//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) +} + +const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go new file mode 100644 index 0000000..ffc4c2b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go @@ -0,0 +1,14 @@ +// 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. + +//go:build linux && gc + +package unix + +// SyscallNoError may be used instead of Syscall for syscalls that don't fail. +func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) + +// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't +// fail. +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) 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 new file mode 100644 index 0000000..9ebfdcf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go @@ -0,0 +1,16 @@ +// 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. + +//go:build linux && gc && 386 + +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) + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) 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 0000000..5f2b57c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go @@ -0,0 +1,13 @@ +// 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 + +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 new file mode 100644 index 0000000..d1a3ad8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go @@ -0,0 +1,30 @@ +// 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. + +//go:build linux && gccgo && 386 + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} + +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} 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 new file mode 100644 index 0000000..f2f6742 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go @@ -0,0 +1,20 @@ +// 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. + +//go:build linux && gccgo && arm + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go new file mode 100644 index 0000000..dd2262a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go @@ -0,0 +1,218 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build loong64 && linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//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 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return pselect6(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev 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) + +func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { + return Timespec{ + Sec: x.Sec, + Nsec: int64(x.Nsec), + } +} + +func Fstatat(fd int, path string, stat *Stat_t, flags int) error { + var r Statx_t + // Do it the glibc way, add AT_NO_AUTOMOUNT. + if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { + return err + } + + stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) + stat.Ino = r.Ino + stat.Mode = uint32(r.Mode) + stat.Nlink = r.Nlink + stat.Uid = r.Uid + stat.Gid = r.Gid + stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) + // hope we don't get to process files so large to overflow these size + // fields... + stat.Size = int64(r.Size) + stat.Blksize = int32(r.Blksize) + stat.Blocks = int64(r.Blocks) + stat.Atim = timespecFromStatxTimestamp(r.Atime) + stat.Mtim = timespecFromStatxTimestamp(r.Mtime) + stat.Ctim = timespecFromStatxTimestamp(r.Ctime) + + return nil +} + +func Fstat(fd int, stat *Stat_t) (err error) { + return Fstatat(fd, "", stat, AT_EMPTY_PATH) +} + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + return +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func (r *PtraceRegs) PC() uint64 { return r.Era } + +func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) +} + +//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) +} + +const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go new file mode 100644 index 0000000..70963a9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -0,0 +1,188 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips64 || mips64le) + +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 Fchown(fd int, uid int, gid int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return pselect6(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev 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) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +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 Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +type stat_t struct { + Dev uint32 + Pad0 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad1 [3]uint32 + Size int64 + Atime uint32 + Atime_nsec uint32 + Mtime uint32 + Mtime_nsec uint32 + Ctime uint32 + Ctime_nsec uint32 + Blksize uint32 + Pad2 uint32 + Blocks int64 +} + +//sys fstat(fd int, st *stat_t) (err error) +//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys lstat(path string, st *stat_t) (err error) +//sys stat(path string, st *stat_t) (err error) + +func Fstat(fd int, s *Stat_t) (err error) { + st := &stat_t{} + err = fstat(fd, st) + fillStat_t(s, st) + return +} + +func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { + st := &stat_t{} + err = fstatat(dirfd, path, st, flags) + fillStat_t(s, st) + return +} + +func Lstat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = lstat(path, st) + fillStat_t(s, st) + return +} + +func Stat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = stat(path, st) + fillStat_t(s, st) + return +} + +func fillStat_t(s *Stat_t, st *stat_t) { + s.Dev = st.Dev + s.Ino = st.Ino + s.Mode = st.Mode + s.Nlink = st.Nlink + s.Uid = st.Uid + s.Gid = st.Gid + s.Rdev = st.Rdev + s.Size = st.Size + s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} + s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} + s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} + s.Blksize = st.Blksize + s.Blocks = st.Blocks +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go new file mode 100644 index 0000000..c218ebd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -0,0 +1,174 @@ +// 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. + +//go:build linux && (mips || mipsle) + +package unix + +import ( + "syscall" + "unsafe" +) + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//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 Fchown(fd int, uid int, gid int) (err error) +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (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 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) (prev int, err error) +//sys setfsuid(uid int) (prev 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 int, err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 + +//sys Pause() (err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + p, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) + if e != 0 { + err = errnoErr(e) + } + return +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go new file mode 100644 index 0000000..e6c4850 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go @@ -0,0 +1,204 @@ +// 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. + +//go:build linux && ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (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 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) (prev int, err error) +//sys setfsuid(uid int) (prev 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 int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +func (r *PtraceRegs) PC() uint32 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(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_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go new file mode 100644 index 0000000..7286a9a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -0,0 +1,115 @@ +// 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 linux && (ppc64 || ppc64le) + +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 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_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//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) (prev int, err error) +//sys setfsuid(uid int) (prev 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) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +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 (r *PtraceRegs) PC() uint64 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(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_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go new file mode 100644 index 0000000..8cf3670 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -0,0 +1,191 @@ +// 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. + +//go:build riscv64 && linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid 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 Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys MemfdSecret(flags int) (fd int, 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 Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return pselect6(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev 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) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) +} + +//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) +} + +//sys riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) + +func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) { + var setSize uintptr + + if set != nil { + setSize = uintptr(unsafe.Sizeof(*set)) + } + return riscvHWProbe(pairs, setSize, set, flags) +} + +const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go new file mode 100644 index 0000000..66f3121 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -0,0 +1,296 @@ +// 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. + +//go:build s390x && linux + +package unix + +import ( + "unsafe" +) + +//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 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_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//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) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +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 Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. +// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>. +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} + r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// On s390x Linux, all the socket calls go through an extra indirection. +// The arguments to the underlying system call (SYS_SOCKETCALL) are the +// number below and a pointer to an array of uintptr. +const ( + // see linux/net.h + netSocket = 1 + netBind = 2 + netConnect = 3 + netListen = 4 + netAccept = 5 + netGetSockName = 6 + netGetPeerName = 7 + netSocketPair = 8 + netSend = 9 + netRecv = 10 + netSendTo = 11 + netRecvFrom = 12 + netShutdown = 13 + netSetSockOpt = 14 + netGetSockOpt = 15 + netSendMsg = 16 + netRecvMsg = 17 + netAccept4 = 18 + netRecvMMsg = 19 + netSendMMsg = 20 +) + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { + args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} + fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) error { + args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socket(domain int, typ int, proto int) (int, error) { + args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} + fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} + _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { + 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 + } + return nil +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func recvmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func Listen(s int, n int) error { + args := [2]uintptr{uintptr(s), uintptr(n)} + _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func Shutdown(s, how int) error { + args := [2]uintptr{uintptr(s), uintptr(how)} + _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +//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_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go new file mode 100644 index 0000000..11d1f16 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -0,0 +1,112 @@ +// 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 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 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 +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//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) (prev int, err error) +//sys setfsuid(uid int) (prev 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) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//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) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +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 +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func (r *PtraceRegs) PC() uint64 { return r.Tpc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go new file mode 100644 index 0000000..8816209 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -0,0 +1,371 @@ +// Copyright 2009,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. + +// NetBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + 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) { + var olen uintptr + + // Get a list of all sysctl nodes below the given MIB by performing + // a sysctl for the given MIB with CTL_QUERY appended. + mib = append(mib, CTL_QUERY) + qnode := Sysctlnode{Flags: SYSCTL_VERS_1} + qp := (*byte)(unsafe.Pointer(&qnode)) + sz := unsafe.Sizeof(qnode) + if err = sysctl(mib, nil, &olen, qp, sz); err != nil { + return nil, err + } + + // Now that we know the size, get the actual nodes. + nodes = make([]Sysctlnode, olen/sz) + np := (*byte)(unsafe.Pointer(&nodes[0])) + if err = sysctl(mib, np, &olen, qp, sz); err != nil { + return nil, err + } + + return nodes, nil +} + +func nametomib(name string) (mib []_C_int, err error) { + // Split name into components. + var parts []string + last := 0 + for i := 0; i < len(name); i++ { + if name[i] == '.' { + parts = append(parts, name[last:i]) + last = i + 1 + } + } + parts = append(parts, name[last:]) + + // Discover the nodes and construct the MIB OID. + for partno, part := range parts { + nodes, err := sysctlNodes(mib) + if err != nil { + return nil, err + } + for _, node := range nodes { + n := make([]byte, 0) + for i := range node.Name { + if node.Name[i] != 0 { + n = append(n, byte(node.Name[i])) + } + } + if string(n) == part { + mib = append(mib, _C_int(node.Num)) + break + } + } + if len(mib) != partno+1 { + return nil, EINVAL + } + } + + return mib, 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 SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + return &u, nil +} + +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 := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + 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 +} + +//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 +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//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 + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + 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 + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err 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 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) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//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 Flock(fd int, how int) (err error) +//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) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//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(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setsid() (pid int, err error) +//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) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//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 utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +const ( + mremapFixed = MAP_FIXED + mremapDontunmap = 0 + mremapMaymove = 0 +) + +//sys mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP + +func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) { + return mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go new file mode 100644 index 0000000..7a5eb57 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go @@ -0,0 +1,37 @@ +// 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 386 && netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +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 new file mode 100644 index 0000000..62d8957 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go @@ -0,0 +1,37 @@ +// 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 amd64 && netbsd + +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: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(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 = 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 new file mode 100644 index 0000000..ce6a068 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go @@ -0,0 +1,37 @@ +// Copyright 2013 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 && netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +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 new file mode 100644 index 0000000..d46d689 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go @@ -0,0 +1,37 @@ +// 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 && netbsd + +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: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(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 = 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 new file mode 100644 index 0000000..b86ded5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -0,0 +1,342 @@ +// Copyright 2009,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. + +// OpenBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sort" + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 + 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) { + i := sort.Search(len(sysctlMib), func(i int) bool { + return sysctlMib[i].ctlname >= name + }) + if i < len(sysctlMib) && sysctlMib[i].ctlname == name { + return sysctlMib[i].ctloid, nil + } + return nil, EINVAL +} + +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 SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofUvmexp { + return nil, EIO + } + return &u, nil +} + +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 := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + 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 +} + +//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)) + } + return sendfile(outfd, infd, offset, count) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var bufptr *Statfs_t + var bufsize uintptr + if len(buf) > 0 { + bufptr = &buf[0] + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + return getfsstat(bufptr, bufsize, flags) +} + +//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) +//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) + +func Getresuid() (ruid, euid, suid int) { + var r, e, s _C_int + getresuid(&r, &e, &s) + return int(r), int(e), int(s) +} + +func Getresgid() (rgid, egid, sgid int) { + var r, e, s _C_int + getresgid(&r, &e, &s) + return int(r), int(e), int(s) +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +//sys fcntl(fd int, cmd int, arg int) (n int, err error) +//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL + +// 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 { + _, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk)) + return err +} + +//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) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err 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) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//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 Flock(fd int, how int) (err error) +//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 Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrtable() (rtable int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrtable(rtable int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//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 getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) +//sys pledge(promises *byte, execpromises *byte) (err error) +//sys unveil(path *byte, flags *byte) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go new file mode 100644 index 0000000..9ddc89f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go @@ -0,0 +1,41 @@ +// 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 386 && openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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/386 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go new file mode 100644 index 0000000..70a3c96 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go @@ -0,0 +1,41 @@ +// 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 amd64 && 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_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go new file mode 100644 index 0000000..265caa8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go @@ -0,0 +1,41 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(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/arm the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL 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 0000000..ac4fda1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go @@ -0,0 +1,41 @@ +// 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 + +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_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go new file mode 100644 index 0000000..0a451e6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go @@ -0,0 +1,26 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build openbsd + +package unix + +import _ "unsafe" + +// Implemented in the runtime package (runtime/sys_openbsd3.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) +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) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall10 syscall.syscall10 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 + +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { + return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) +} 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 0000000..1378489 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go @@ -0,0 +1,39 @@ +// 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 (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 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go new file mode 100644 index 0000000..30a308c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go @@ -0,0 +1,41 @@ +// 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 ppc64 && 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/ppc64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go new file mode 100644 index 0000000..ea95433 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go @@ -0,0 +1,41 @@ +// 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 riscv64 && 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/riscv64 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 new file mode 100644 index 0000000..abc3955 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -0,0 +1,1191 @@ +// 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. + +// Solaris system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_solaris.go or syscall_unix.go. + +package unix + +import ( + "fmt" + "os" + "runtime" + "sync" + "syscall" + "unsafe" +) + +// Implemented in runtime/syscall_solaris.go. +type syscallFunc uintptr + +func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 + 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) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + n, err := pipe(&pp) + if n != 0 { + return err + } + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + 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) + if err == nil { + 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 + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + 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 + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { + // Check sl > 3 so we don't change unnamed socket behavior. + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +// 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 ByteSliceToString(buf[:vallen]), nil +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + // Getcwd will return an error if it failed for any reason. + _, err = Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + +/* + * Wrapped + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + // Check for error and sanity check group count. Newer versions of + // Solaris allow up to 1024 (NGROUPS_MAX). + if n < 0 || n > 1024 { + if err != nil { + return nil, err + } + return nil, EINVAL + } else if n == 0 { + return nil, nil + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if n == -1 { + 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]) +} + +// 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? + return Getdents(fd, buf, new(uintptr)) +} + +// 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. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +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) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { + var status _C_int + rpid, err := wait4(int32(pid), &status, options, rusage) + wpid := int(rpid) + if wpid == -1 { + return wpid, err + } + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return wpid, nil +} + +//sys gethostname(buf []byte) (n int, err error) + +func Gethostname() (name string, err error) { + var buf [MaxHostNameLen]byte + n, err := gethostname(buf[:]) + if n != 0 { + return "", err + } + n = clen(buf[:]) + if n < 1 { + return "", EFAULT + } + return string(buf[:n]), nil +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) (err error) { + if tv == nil { + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + if ts == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) + var err error + if errno != 0 { + err = errno + } + return int(valptr), err +} + +// 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 { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) + if e1 != 0 { + return e1 + } + return nil +} + +//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) + +func Futimesat(dirfd int, path string, tv []Timeval) error { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + if tv == nil { + return futimesat(dirfd, pathp, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +// Solaris doesn't have an futimes function because it allows NULL to be +// specified as the path for futimesat. However, Go doesn't like +// NULL-style string interfaces, so this simple wrapper is provided. +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimesat(fd, nil, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // Assume path ends at NUL. + // This is not technically the Solaris 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 < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + 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]) + sa.Addr = pp.Addr + 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 + sa.Addr = pp.Addr + return sa, nil + } + return nil, EAFNOSUPPORT +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Accrightslen = int32(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Accrightslen) + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Accrightslen = int32(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +//sys acct(path *byte) (err error) + +func Acct(path string) (err error) { + if len(path) == 0 { + // Assume caller wants to disable accounting. + return acct(nil) + } + + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + return acct(pathp) +} + +//sys __makedev(version int, major uint, minor uint) (val uint64) + +func Mkdev(major, minor uint32) uint64 { + return __makedev(NEWDEV, uint(major), uint(minor)) +} + +//sys __major(version int, dev uint64) (val uint) + +func Major(dev uint64) uint32 { + return uint32(__major(NEWDEV, dev)) +} + +//sys __minor(version int, dev uint64) (val uint) + +func Minor(dev uint64) uint32 { + return uint32(__minor(NEWDEV, dev)) +} + +/* + * Expose the ioctl function + */ + +//sys ioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl +//sys ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl + +func ioctl(fd int, req int, arg uintptr) (err error) { + _, err = ioctlRet(fd, req, arg) + return err +} + +func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { + _, err = ioctlPtrRet(fd, req, arg) + return err +} + +func IoctlSetTermio(fd int, req int, value *Termio) error { + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +func IoctlGetTermio(fd int, req int) (*Termio, error) { + var value Termio + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +//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 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Creat(path string, mode uint32) (fd int, err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(oldfd int, newfd 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) +//sys Fchmod(fd int, mode uint32) (err error) +//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 Fdatasync(fd int) (err error) +//sys Flock(fd int, how int) (err error) +//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 Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) +//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgid int, err error) +//sys Geteuid() (euid int) +//sys Getegid() (egid int) +//sys Getppid() (ppid int) +//sys Getpriority(which int, who int) (n int, err error) +//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(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Madvise(b []byte, advice int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys Pause() (err error) +//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 read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//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(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) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Setuid(uid int) (err error) +//sys Shutdown(s int, how int) (err error) = libsocket.shutdown +//sys Stat(path string, stat *Stat_t) (err error) +//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) +//sys Ftruncate(fd int, length int64) (err error) +//sys Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = libc.umount +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect +//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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto +//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair +//sys write(fd int, p []byte) (n int, err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom + +// Event Ports + +type fileObjCookie struct { + fobj *fileObj + cookie interface{} +} + +// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports. +type EventPort struct { + port int + mu sync.Mutex + fds map[uintptr]*fileObjCookie + paths map[string]*fileObjCookie + // The user cookie presents an interesting challenge from a memory management perspective. + // There are two paths by which we can discover that it is no longer in use: + // 1. The user calls port_dissociate before any events fire + // 2. An event fires and we return it to the user + // The tricky situation is if the event has fired in the kernel but + // the user hasn't requested/received it yet. + // If the user wants to port_dissociate before the event has been processed, + // we should handle things gracefully. To do so, we need to keep an extra + // reference to the cookie around until the event is processed + // thus the otherwise seemingly extraneous "cookies" map + // The key of this map is a pointer to the corresponding fCookie + cookies map[*fileObjCookie]struct{} +} + +// PortEvent is an abstraction of the port_event C struct. +// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD +// to see if Path or Fd was the event source. The other will be +// uninitialized. +type PortEvent struct { + Cookie interface{} + Events int32 + Fd uintptr + Path string + Source uint16 + fobj *fileObj +} + +// NewEventPort creates a new EventPort including the +// underlying call to port_create(3c). +func NewEventPort() (*EventPort, error) { + port, err := port_create() + if err != nil { + return nil, err + } + e := &EventPort{ + port: port, + fds: make(map[uintptr]*fileObjCookie), + paths: make(map[string]*fileObjCookie), + cookies: make(map[*fileObjCookie]struct{}), + } + return e, nil +} + +//sys port_create() (n int, err error) +//sys port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) +//sys port_dissociate(port int, source int, object uintptr) (n int, err error) +//sys port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) +//sys port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) + +// Close closes the event port. +func (e *EventPort) Close() error { + e.mu.Lock() + defer e.mu.Unlock() + err := Close(e.port) + if err != nil { + return err + } + e.fds = nil + e.paths = nil + e.cookies = nil + return nil +} + +// PathIsWatched checks to see if path is associated with this EventPort. +func (e *EventPort) PathIsWatched(path string) bool { + e.mu.Lock() + defer e.mu.Unlock() + _, found := e.paths[path] + return found +} + +// FdIsWatched checks to see if fd is associated with this EventPort. +func (e *EventPort) FdIsWatched(fd uintptr) bool { + e.mu.Lock() + defer e.mu.Unlock() + _, found := e.fds[fd] + return found +} + +// AssociatePath wraps port_associate(3c) for a filesystem path including +// creating the necessary file_obj from the provided stat information. +func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error { + e.mu.Lock() + defer e.mu.Unlock() + if _, found := e.paths[path]; found { + return fmt.Errorf("%v is already associated with this Event Port", path) + } + fCookie, err := createFileObjCookie(path, stat, cookie) + if err != nil { + return err + } + _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) + if err != nil { + return err + } + e.paths[path] = fCookie + e.cookies[fCookie] = struct{}{} + return nil +} + +// DissociatePath wraps port_dissociate(3c) for a filesystem path. +func (e *EventPort) DissociatePath(path string) error { + e.mu.Lock() + defer e.mu.Unlock() + f, ok := e.paths[path] + if !ok { + return fmt.Errorf("%v is not associated with this Event Port", path) + } + _, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) + // If the path is no longer associated with this event port (ENOENT) + // we should delete it from our map. We can still return ENOENT to the caller. + // But we need to save the cookie + if err != nil && err != ENOENT { + return err + } + if err == nil { + // dissociate was successful, safe to delete the cookie + fCookie := e.paths[path] + delete(e.cookies, fCookie) + } + delete(e.paths, path) + return err +} + +// AssociateFd wraps calls to port_associate(3c) on file descriptors. +func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error { + e.mu.Lock() + defer e.mu.Unlock() + if _, found := e.fds[fd]; found { + return fmt.Errorf("%v is already associated with this Event Port", fd) + } + fCookie, err := createFileObjCookie("", nil, cookie) + if err != nil { + return err + } + _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) + if err != nil { + return err + } + e.fds[fd] = fCookie + e.cookies[fCookie] = struct{}{} + return nil +} + +// DissociateFd wraps calls to port_dissociate(3c) on file descriptors. +func (e *EventPort) DissociateFd(fd uintptr) error { + e.mu.Lock() + defer e.mu.Unlock() + _, ok := e.fds[fd] + if !ok { + return fmt.Errorf("%v is not associated with this Event Port", fd) + } + _, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) + if err != nil && err != ENOENT { + return err + } + if err == nil { + // dissociate was successful, safe to delete the cookie + fCookie := e.fds[fd] + delete(e.cookies, fCookie) + } + delete(e.fds, fd) + return err +} + +func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { + fCookie := new(fileObjCookie) + fCookie.cookie = cookie + if name != "" && stat != nil { + fCookie.fobj = new(fileObj) + bs, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) + s := stat.Sys().(*syscall.Stat_t) + fCookie.fobj.Atim.Sec = s.Atim.Sec + fCookie.fobj.Atim.Nsec = s.Atim.Nsec + fCookie.fobj.Mtim.Sec = s.Mtim.Sec + fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec + fCookie.fobj.Ctim.Sec = s.Ctim.Sec + fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec + } + return fCookie, nil +} + +// GetOne wraps port_get(3c) and returns a single PortEvent. +func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { + pe := new(portEvent) + _, err := port_get(e.port, pe, t) + if err != nil { + return nil, err + } + p := new(PortEvent) + e.mu.Lock() + defer e.mu.Unlock() + err = e.peIntToExt(pe, p) + if err != nil { + return nil, err + } + return p, nil +} + +// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent +// NOTE: Always call this function while holding the e.mu mutex +func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { + if e.cookies == nil { + return fmt.Errorf("this EventPort is already closed") + } + peExt.Events = peInt.Events + peExt.Source = peInt.Source + fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) + _, found := e.cookies[fCookie] + + if !found { + panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") + } + peExt.Cookie = fCookie.cookie + delete(e.cookies, fCookie) + + switch peInt.Source { + case PORT_SOURCE_FD: + peExt.Fd = uintptr(peInt.Object) + // Only remove the fds entry if it exists and this cookie matches + if fobj, ok := e.fds[peExt.Fd]; ok { + if fobj == fCookie { + delete(e.fds, peExt.Fd) + } + } + case PORT_SOURCE_FILE: + peExt.fobj = fCookie.fobj + peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) + // Only remove the paths entry if it exists and this cookie matches + if fobj, ok := e.paths[peExt.Path]; ok { + if fobj == fCookie { + delete(e.paths, peExt.Path) + } + } + } + return nil +} + +// Pending wraps port_getn(3c) and returns how many events are pending. +func (e *EventPort) Pending() (int, error) { + var n uint32 = 0 + _, err := port_getn(e.port, nil, 0, &n, nil) + return int(n), err +} + +// Get wraps port_getn(3c) and fills a slice of PortEvent. +// It will block until either min events have been received +// or the timeout has been exceeded. It will return how many +// events were actually received along with any error information. +func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) { + if min == 0 { + return 0, fmt.Errorf("need to request at least one event or use Pending() instead") + } + if len(s) < min { + return 0, fmt.Errorf("len(s) (%d) is less than min events requested (%d)", len(s), min) + } + got := uint32(min) + max := uint32(len(s)) + var err error + ps := make([]portEvent, max) + _, err = port_getn(e.port, &ps[0], max, &got, timeout) + // got will be trustworthy with ETIME, but not any other error. + if err != nil && err != ETIME { + return 0, err + } + e.mu.Lock() + defer e.mu.Unlock() + valid := 0 + for i := 0; i < int(got); i++ { + err2 := e.peIntToExt(&ps[i], &s[i]) + if err2 != nil { + if valid == 0 && err == nil { + // If err2 is the only error and there are no valid events + // to return, return it to the caller. + err = err2 + } + break + } + valid = i + 1 + } + return valid, err +} + +//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 +} + +func IoctlSetIntRetInt(fd int, req int, arg int) (int, error) { + return ioctlRet(fd, req, uintptr(arg)) +} + +func IoctlSetString(fd int, req int, val string) error { + bs := make([]byte, len(val)+1) + copy(bs[:len(bs)-1], val) + err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0])) + runtime.KeepAlive(&bs[0]) + return err +} + +// Lifreq Helpers + +func (l *Lifreq) SetName(name string) error { + if len(name) >= len(l.Name) { + return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) + } + for i := range name { + l.Name[i] = int8(name[i]) + } + return nil +} + +func (l *Lifreq) SetLifruInt(d int) { + *(*int)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruInt() int { + return *(*int)(unsafe.Pointer(&l.Lifru[0])) +} + +func (l *Lifreq) SetLifruUint(d uint) { + *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruUint() uint { + return *(*uint)(unsafe.Pointer(&l.Lifru[0])) +} + +func IoctlLifreq(fd int, req int, l *Lifreq) error { + return ioctlPtr(fd, req, unsafe.Pointer(l)) +} + +// Strioctl Helpers + +func (s *Strioctl) SetInt(i int) { + s.Len = int32(unsafe.Sizeof(i)) + s.Dp = (*int8)(unsafe.Pointer(&i)) +} + +func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { + return ioctlPtrRet(fd, req, unsafe.Pointer(s)) +} + +// Ucred Helpers +// See ucred(3c) and getpeerucred(3c) + +//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) +//sys ucredFree(ucred uintptr) = ucred_free +//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get +//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid +//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid +//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid +//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid +//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid +//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid +//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid + +// Ucred is an opaque struct that holds user credentials. +type Ucred struct { + ucred uintptr +} + +// We need to ensure that ucredFree is called on the underlying ucred +// when the Ucred is garbage collected. +func ucredFinalizer(u *Ucred) { + ucredFree(u.ucred) +} + +func GetPeerUcred(fd uintptr) (*Ucred, error) { + var ucred uintptr + err := getpeerucred(fd, &ucred) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func UcredGet(pid int) (*Ucred, error) { + ucred, err := ucredGet(pid) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func (u *Ucred) Geteuid() int { + defer runtime.KeepAlive(u) + return ucredGeteuid(u.ucred) +} + +func (u *Ucred) Getruid() int { + defer runtime.KeepAlive(u) + return ucredGetruid(u.ucred) +} + +func (u *Ucred) Getsuid() int { + defer runtime.KeepAlive(u) + return ucredGetsuid(u.ucred) +} + +func (u *Ucred) Getegid() int { + defer runtime.KeepAlive(u) + return ucredGetegid(u.ucred) +} + +func (u *Ucred) Getrgid() int { + defer runtime.KeepAlive(u) + return ucredGetrgid(u.ucred) +} + +func (u *Ucred) Getsgid() int { + defer runtime.KeepAlive(u) + return ucredGetsgid(u.ucred) +} + +func (u *Ucred) Getpid() int { + defer runtime.KeepAlive(u) + return ucredGetpid(u.ucred) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go new file mode 100644 index 0000000..e02d8ce --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go @@ -0,0 +1,27 @@ +// 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 amd64 && solaris + +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 (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 new file mode 100644 index 0000000..4e92e5a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -0,0 +1,615 @@ +// 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 aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris + +package unix + +import ( + "bytes" + "sort" + "sync" + "syscall" + "unsafe" +) + +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 syscall.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 syscall.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 + } + + // Use unsafe to convert addr into a []byte. + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) + + // 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 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) +} + +func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { + xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) + return unsafe.Pointer(xaddr), err +} + +func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { + return mapper.munmap(uintptr(addr), length) +} + +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 +} + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + n, err = pread(fd, p, offset) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = pwrite(fd, p, offset) + 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 +} + +// Recvmsg receives a message from a socket using the recvmsg system call. The +// received non-control data will be written to p, and any "out of band" +// control data will be written to oob. The flags are passed to recvmsg. +// +// The results are: +// - n is the number of non-control data bytes read into p +// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] +// - recvflags is flags returned by recvmsg +// - from is the address of the sender +// +// If the underlying socket type is not SOCK_DGRAM, a received message +// containing oob data and a single '\0' of non-control data is treated as if +// the message contained only control data, i.e. n will be zero on return. +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var iov [1]Iovec + if len(p) > 0 { + iov[0].Base = &p[0] + iov[0].SetLen(len(p)) + } + var rsa RawSockaddrAny + n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +// RecvmsgBuffers receives a message from a socket using the recvmsg system +// call. This function is equivalent to Recvmsg, but non-control data read is +// scattered into the buffers slices. +func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + iov := make([]Iovec, len(buffers)) + for i := range buffers { + if len(buffers[i]) > 0 { + iov[i].Base = &buffers[i][0] + iov[i].SetLen(len(buffers[i])) + } else { + iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + var rsa RawSockaddrAny + n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) + if err == nil && rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +// Sendmsg sends a message on a socket to an address using the sendmsg system +// call. This function is equivalent to SendmsgN, but does not return the +// number of bytes actually sent. +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +// SendmsgN sends a message on a socket to an address using the sendmsg system +// call. p contains the non-control data to send, and oob contains the "out of +// band" control data. The flags are passed to sendmsg. The number of +// non-control bytes actually written to the socket is returned. +// +// Some socket types do not support sending control data without accompanying +// non-control data. If p is empty, and oob contains control data, and the +// underlying socket type is not SOCK_DGRAM, p will be treated as containing a +// single '\0' and the return value will indicate zero bytes sent. +// +// The Go function Recvmsg, if called with an empty p and a non-empty oob, +// will read and ignore this additional '\0'. If the message is received by +// code that does not use Recvmsg, or that does not use Go at all, that code +// will need to be written to expect and ignore the additional '\0'. +// +// If you need to send non-empty oob with p actually empty, and if the +// underlying socket type supports it, you can do so via a raw system call as +// follows: +// +// msg := &unix.Msghdr{ +// Control: &oob[0], +// } +// msg.SetControllen(len(oob)) +// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var iov [1]Iovec + if len(p) > 0 { + iov[0].Base = &p[0] + iov[0].SetLen(len(p)) + } + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + return sendmsgN(fd, iov[:], oob, ptr, salen, flags) +} + +// SendmsgBuffers sends a message on a socket to an address using the sendmsg +// system call. This function is equivalent to SendmsgN, but the non-control +// data is gathered from buffers. +func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { + iov := make([]Iovec, len(buffers)) + for i := range buffers { + if len(buffers[i]) > 0 { + iov[i].Base = &buffers[i][0] + iov[i].SetLen(len(buffers[i])) + } else { + iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + return sendmsgN(fd, iov, oob, ptr, salen, flags) +} + +func Send(s int, buf []byte, flags int) (err error) { + return sendto(s, buf, flags, nil, 0) +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return err + } + } + return sendto(fd, p, flags, ptr, salen) +} + +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 (flag&O_NONBLOCK != 0) == nonblocking { + return nil + } + 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) +} + +// Lutimes sets the access and modification times tv on path. If path refers to +// a symlink, it is not dereferenced and the timestamps are set on the symlink. +// If tv is nil, the access and modification times are set to the current time. +// Otherwise tv must contain exactly 2 elements, with access time as the first +// element and modification time as the second element. +func Lutimes(path string, tv []Timeval) error { + if tv == nil { + return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) + } + if len(tv) != 2 { + return EINVAL + } + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) +} + +// emptyIovecs reports whether there are no bytes in the slice of Iovec. +func emptyIovecs(iov []Iovec) bool { + for i := range iov { + if iov[i].Len > 0 { + return false + } + } + return true +} + +// Setrlimit sets a resource limit. +func Setrlimit(resource int, rlim *Rlimit) error { + // Just call the syscall version, because as of Go 1.21 + // it will affect starting a new process. + return syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim)) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go new file mode 100644 index 0000000..05c95bc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -0,0 +1,14 @@ +// 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. + +//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 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 new file mode 100644 index 0000000..23f39b7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go @@ -0,0 +1,22 @@ +// 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. + +//go:build linux && (ppc64le || ppc64) && gc + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall(trap, a1, a2, a3) +} +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) +} +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall(trap, a1, a2, a3) +} +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) +} 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 0000000..7bf5c04 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -0,0 +1,3213 @@ +// 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 + +// Many of the following syscalls are not available on all versions of z/OS. +// Some missing calls have legacy implementations/simulations but others +// will be missing completely. To achieve consistent failing behaviour on +// legacy systems, we first test the function pointer via a safeloading +// mechanism to see if the function exists on a given system. Then execution +// is branched to either continue the function call, or return an error. + +package unix + +import ( + "bytes" + "fmt" + "os" + "reflect" + "regexp" + "runtime" + "sort" + "strings" + "sync" + "syscall" + "unsafe" +) + +//go:noescape +func initZosLibVec() + +//go:noescape +func GetZosLibVec() uintptr + +func init() { + initZosLibVec() + r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACE\x00"))[0]))) + if r0 != 0 { + n, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) + ZosTraceLevel = int(n) + r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACEFD\x00"))[0]))) + if r0 != 0 { + fd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) + f := os.NewFile(fd, "zostracefile") + if f != nil { + ZosTracefile = f + } + } + + } +} + +//go:noescape +func CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) + +//go:noescape +func CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) + +// ------------------------------- +// pointer validity test +// good pointer returns 0 +// bad pointer returns 1 +// +//go:nosplit +func ptrtest(uintptr) uint64 + +// Load memory at ptr location with error handling if the location is invalid +// +//go:noescape +func safeload(ptr uintptr) (value uintptr, error uintptr) + +const ( + entrypointLocationOffset = 8 // From function descriptor + + xplinkEyecatcher = 0x00c300c500c500f1 // ".C.E.E.1" + eyecatcherOffset = 16 // From function entrypoint (negative) + ppa1LocationOffset = 8 // From function entrypoint (negative) + + nameLenOffset = 0x14 // From PPA1 start + nameOffset = 0x16 // From PPA1 start +) + +func getPpaOffset(funcptr uintptr) int64 { + entrypoint, err := safeload(funcptr + entrypointLocationOffset) + if err != 0 { + return -1 + } + + // XPLink functions have ".C.E.E.1" as the first 8 bytes (EBCDIC) + val, err := safeload(entrypoint - eyecatcherOffset) + if err != 0 { + return -1 + } + if val != xplinkEyecatcher { + return -1 + } + + ppaoff, err := safeload(entrypoint - ppa1LocationOffset) + if err != 0 { + return -1 + } + + ppaoff >>= 32 + return int64(ppaoff) +} + +//------------------------------- +// function descriptor pointer validity test +// good pointer returns 0 +// bad pointer returns 1 + +// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName +// have correct funcName pass to the funcptrtest function +func funcptrtest(funcptr uintptr, funcName string) uint64 { + entrypoint, err := safeload(funcptr + entrypointLocationOffset) + if err != 0 { + return 1 + } + + ppaoff := getPpaOffset(funcptr) + if ppaoff == -1 { + return 1 + } + + // PPA1 offset value is from the start of the entire function block, not the entrypoint + ppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff) + + nameLen, err := safeload(ppa1 + nameLenOffset) + if err != 0 { + return 1 + } + + nameLen >>= 48 + if nameLen > 128 { + return 1 + } + + // no function name input to argument end here + if funcName == "" { + return 0 + } + + var funcname [128]byte + for i := 0; i < int(nameLen); i += 8 { + v, err := safeload(ppa1 + nameOffset + uintptr(i)) + if err != 0 { + return 1 + } + funcname[i] = byte(v >> 56) + funcname[i+1] = byte(v >> 48) + funcname[i+2] = byte(v >> 40) + funcname[i+3] = byte(v >> 32) + funcname[i+4] = byte(v >> 24) + funcname[i+5] = byte(v >> 16) + funcname[i+6] = byte(v >> 8) + funcname[i+7] = byte(v) + } + + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l + []uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen}) + + name := string(funcname[:nameLen]) + if name != funcName { + return 1 + } + + return 0 +} + +// For detection of capabilities on a system. +// Is function descriptor f a valid function? +func isValidLeFunc(f uintptr) error { + ret := funcptrtest(f, "") + if ret != 0 { + return fmt.Errorf("Bad pointer, not an LE function ") + } + return nil +} + +// Retrieve function name from descriptor +func getLeFuncName(f uintptr) (string, error) { + // assume it has been checked, only check ppa1 validity here + entry := ((*[2]uintptr)(unsafe.Pointer(f)))[1] + preamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset))) + + offsetPpa1 := preamp[2] + if offsetPpa1 > 0x0ffff { + return "", fmt.Errorf("PPA1 offset seems too big 0x%x\n", offsetPpa1) + } + + ppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1) + res := ptrtest(ppa1) + if res != 0 { + return "", fmt.Errorf("PPA1 address not valid") + } + + size := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset)) + if size > 128 { + return "", fmt.Errorf("Function name seems too long, length=%d\n", size) + } + + var name [128]byte + funcname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset)) + copy(name[0:size], funcname[0:size]) + + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l + []uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)}) + + return string(name[:size]), nil +} + +// Check z/OS version +func zosLeVersion() (version, release uint32) { + p1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32 + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88))) + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8))) + p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984))) + vrm := *(*uint32)(unsafe.Pointer(p1 + 80)) + version = (vrm & 0x00ff0000) >> 16 + release = (vrm & 0x0000ff00) >> 8 + return +} + +// returns a zos C FILE * for stdio fd 0, 1, 2 +func ZosStdioFilep(fd int32) uintptr { + return uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3)))))))) +} + +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 "" + } + s := string(d.Name[:]) + idx := strings.IndexByte(s, 0) + if idx == -1 { + return s + } else { + return s[:idx] + } +} + +func DecodeData(dest []byte, sz int, val uint64) { + for i := 0; i < sz; i++ { + dest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff) + } +} + +func EncodeData(data []byte) uint64 { + var value uint64 + sz := len(data) + for i := 0; i < sz; i++ { + value |= uint64(data[i]) << uint64(((sz - i - 1) * 8)) + } + return value +} + +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++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + 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 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") + } + // TODO(neeilan): Remove 0 in call + sa, err = anyToSockaddr(0, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Ctermid() (tty string, err error) { + var termdev [1025]byte + runtime.EnterSyscall() + r0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0]))) + runtime.ExitSyscall() + if r0 == 0 { + return "", fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) + } + s := string(termdev[:]) + idx := strings.Index(s, string(rune(0))) + if idx == -1 { + tty = s + } else { + tty = s[:idx] + } + 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 Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A +//sys Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A +//sys read(fd int, p []byte) (n int, err error) +//sys write(fd int, p []byte) (n int, err error) + +//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A +//sys Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_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 Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_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 int, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64 +//sys shmdt(addr uintptr) (err error) = SYS_SHMDT +//sys shmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET + +//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 Dup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3 +//sys Dirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD +//sys EpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE +//sys EpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1 +//sys EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL +//sys EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT +//sys Errno2() (er2 int) = SYS___ERRNO2 +//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A + +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + return Faccessat(dirfd, path, mode, flags) +} + +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A +//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL +//sys Fdatasync(fd int) (err error) = SYS_FDATASYNC +//sys fstat(fd int, stat *Stat_LE_t) (err error) +//sys fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A + +func Fstat(fd int, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = fstat(fd, &statLE) + copyStat(stat, &statLE) + return +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var statLE Stat_LE_t + err = fstatat(dirfd, path, &statLE, flags) + copyStat(stat, &statLE) + return +} + +func impl_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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error)) + +var Getxattr = enter_Getxattr + +func enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) { + funcref := get_GetxattrAddr() + if validGetxattr() { + *funcref = impl_Getxattr + } else { + *funcref = error_Getxattr + } + return (*funcref)(path, attr, dest) +} + +func error_Getxattr(path string, attr string, dest []byte) (sz int, err error) { + return -1, ENOSYS +} + +func validGetxattr() bool { + if funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil { + return name == "__getxattr_a" + } + } + return false +} + +//sys Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A +//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A + +func impl_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) + } + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) + +var Setxattr = enter_Setxattr + +func enter_Setxattr(path string, attr string, data []byte, flags int) (err error) { + funcref := get_SetxattrAddr() + if validSetxattr() { + *funcref = impl_Setxattr + } else { + *funcref = error_Setxattr + } + return (*funcref)(path, attr, data, flags) +} + +func error_Setxattr(path string, attr string, data []byte, flags int) (err error) { + return ENOSYS +} + +func validSetxattr() bool { + if funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil { + return name == "__setxattr_a" + } + } + return false +} + +//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS +//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS +//sys Fsync(fd int) (err error) +//sys Futimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES +//sys Futimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A +//sys Ftruncate(fd int, length int64) (err error) +//sys Getrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM +//sys InotifyInit() (fd int, err error) = SYS_INOTIFY_INIT +//sys InotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1 +//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A +//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH +//sys Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A +//sys Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A +//sys Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A +//sys Lutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A +//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT +//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC +//sys Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2 + +// Pipe2 begin + +//go:nosplit +func getPipe2Addr() *(func([]int, int) error) + +var Pipe2 = pipe2Enter + +func pipe2Enter(p []int, flags int) (err error) { + if funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, "") == 0 { + *getPipe2Addr() = pipe2Impl + } else { + *getPipe2Addr() = pipe2Error + } + return (*getPipe2Addr())(p, flags) +} + +func pipe2Impl(p []int, flags int) (err error) { + var pp [2]_C_int + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } else { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return +} +func pipe2Error(p []int, flags int) (err error) { + return fmt.Errorf("Pipe2 is not available on this system") +} + +// Pipe2 end + +//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL + +func Readdir(dir uintptr) (dirent *Dirent, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir)) + runtime.ExitSyscall() + dirent = (*Dirent)(unsafe.Pointer(r0)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//sys Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A +//sys Statfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A +//sys Syncfs(fd int) (err error) = SYS_SYNCFS +//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 W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A + +//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A +//sys unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A +//sys Chroot(path string) (err error) = SYS___CHROOT_A +//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT +//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A +//sys Unshare(flags int) (err error) = SYS_UNSHARE + +func Ptsname(fd int) (name string, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd)) + runtime.ExitSyscall() + if r0 == 0 { + err = errnoErr2(e1, e2) + } else { + name = u2s(unsafe.Pointer(r0)) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) + runtime.ExitSyscall() + for i := 0; e1 == EAGAIN && i < 10; i++ { + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10)) + runtime.ExitSyscall() + runtime.EnterSyscall() + r0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) + runtime.ExitSyscall() + } + if r0 != 0 { + err = errnoErr2(e1, e2) + } + return +} + +// 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) +} + +func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { + xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) + return unsafe.Pointer(xaddr), err +} + +func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { + return mapper.munmap(uintptr(addr), length) +} + +//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A +//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 +} + +//sys Getegid() (egid int) = SYS_GETEGID +//sys Geteuid() (euid int) = SYS_GETEUID +//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 Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_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 +} + +// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/ +func isSpecialPath(path []byte) (v bool) { + var special = [4][8]byte{ + {'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'}, + {'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'}, + {'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'}, + {'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}} + + var i, j int + for i = 0; i < len(special); i++ { + for j = 0; j < len(special[i]); j++ { + if path[j] != special[i][j] { + break + } + } + if j == len(special[i]) { + return true + } + } + return false +} + +func realpath(srcpath string, abspath []byte) (pathlen int, errno int) { + var source [1024]byte + copy(source[:], srcpath) + source[len(srcpath)] = 0 + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a() + []uintptr{uintptr(unsafe.Pointer(&source[0])), + uintptr(unsafe.Pointer(&abspath[0]))}) + if ret != 0 { + index := bytes.IndexByte(abspath[:], byte(0)) + if index != -1 { + return index, 0 + } + } else { + errptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno() + return 0, *errptr + } + return 0, 245 // EBADDATA 245 +} + +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) + } + n = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4, + []uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))})) + runtime.KeepAlive(unsafe.Pointer(_p0)) + if n == -1 { + value := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) + err = errnoErr(Errno(value)) + } else { + if buf[0] == '$' { + if isSpecialPath(buf[1:9]) { + cnt, err1 := realpath(path, buf) + if err1 == 0 { + n = cnt + } + } + } + } + return +} + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + return n, err + } else { + if buf[0] == '$' { + if isSpecialPath(buf[1:9]) { + cnt, err1 := realpath(path, buf) + if err1 == 0 { + n = cnt + } + } + } + } + return +} + +//go:nosplit +func get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error)) + +var Readlinkat = enter_Readlinkat + +func enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + funcref := get_ReadlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, "") == 0 { + *funcref = impl_Readlinkat + } else { + *funcref = error_Readlinkat + } + return (*funcref)(dirfd, path, buf) +} + +func error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + n = -1 + err = ENOSYS + return +} + +//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_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 Mknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A +//sys PivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_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 Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A +//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT +//sys Rename(from string, to string) (err error) = SYS___RENAME_A +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A +//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_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 Setegid(egid int) (err error) = SYS_SETEGID +//sys Seteuid(euid int) (err error) = SYS_SETEUID +//sys Sethostname(p []byte) (err error) = SYS___SETHOSTNAME_A +//sys Setns(fd int, nstype int) (err error) = SYS_SETNS +//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 Symlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_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 Unlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_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) { + if mode&O_ACCMODE == 0 { + mode |= O_RDONLY + } + return open(path, mode, perm) +} + +//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + if flags&O_ACCMODE == 0 { + flags |= O_RDONLY + } + return openat(dirfd, path, flags, mode) +} + +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + if how.Flags&O_ACCMODE == 0 { + how.Flags |= O_RDONLY + } + return openat2(dirfd, path, how, SizeofOpenHow) +} + +func ZosFdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + runtime.EnterSyscall() + ret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))) + runtime.ExitSyscall() + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + CallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)) + return string(buffer[:zb]), nil + } + return "", errnoErr2(e1, e2) +} + +//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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf))) + runtime.ExitSyscall() + n = clen(buf) + 1 + if r0 == 0 { + err = errnoErr2(e1, e2) + } + 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 waitid(idType int, id int, info *Siginfo, options int) (err error) + +func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { + return waitid(idType, id, info, options) +} + +//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) + +func impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage))) + runtime.ExitSyscall() + wpid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)) + +var Wait4 = enter_Wait4 + +func enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + funcref := get_Wait4Addr() + if funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, "") == 0 { + *funcref = impl_Wait4 + } else { + *funcref = legacyWait4 + } + return (*funcref)(pid, wstatus, options, rusage) +} + +func legacyWait4(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 tv == nil { + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A + +func validUtimensat() bool { + if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil { + return name == "__utimensat_a" + } + } + return false +} + +// Begin UtimesNano + +//go:nosplit +func get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error)) + +var UtimesNano = enter_UtimesNano + +func enter_UtimesNano(path string, ts []Timespec) (err error) { + funcref := get_UtimesNanoAddr() + if validUtimensat() { + *funcref = utimesNanoImpl + } else { + *funcref = legacyUtimesNano + } + return (*funcref)(path, ts) +} + +func utimesNanoImpl(path string, ts []Timespec) (err error) { + if ts == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func legacyUtimesNano(path string, ts []Timespec) (err 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]))) +} + +// End UtimesNano + +// Begin UtimesNanoAt + +//go:nosplit +func get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error)) + +var UtimesNanoAt = enter_UtimesNanoAt + +func enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { + funcref := get_UtimesNanoAtAddr() + if validUtimensat() { + *funcref = utimesNanoAtImpl + } else { + *funcref = legacyUtimesNanoAt + } + return (*funcref)(dirfd, path, ts, flags) +} + +func utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { + if path[0] != '/' { + dirPath, err := ZosFdToPath(dirfd) + if err != nil { + return err + } + path = dirPath + "/" + path + } + if flags == AT_SYMLINK_NOFOLLOW { + if len(ts) != 2 { + return EINVAL + } + + if ts[0].Nsec >= 5e8 { + ts[0].Sec++ + } + ts[0].Nsec = 0 + if ts[1].Nsec >= 5e8 { + ts[1].Sec++ + } + ts[1].Nsec = 0 + + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := []Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return Lutimes(path, tv) + } + return UtimesNano(path, ts) +} + +// End UtimesNanoAt + +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 ByteSliceToString(buf[:vallen]), 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 + } + err = nil + runtime.EnterSyscall() + dir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p))) + runtime.ExitSyscall() + runtime.KeepAlive(unsafe.Pointer(p)) + if dir == 0 { + err = errnoErr2(e1, e2) + } + return dir, err +} + +// clearsyscall.Errno resets the errno value to 0. +func clearErrno() + +func Closedir(dir uintptr) error { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir) + runtime.ExitSyscall() + if r0 != 0 { + return errnoErr2(e1, e2) + } + return nil +} + +func Seekdir(dir uintptr, pos int) { + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos)) + runtime.ExitSyscall() +} + +func Telldir(dir uintptr) (int, error) { + p, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir) + pos := int(p) + if int64(p) == -1 { + return pos, errnoErr2(e1, e2) + } + 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 + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + runtime.ExitSyscall() + 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 r0 == 0 { + return nil + } + return errnoErr2(e1, e2) +} + +func impl_Flock(fd int, how int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FlockAddr() *(func(fd int, how int) (err error)) + +var Flock = enter_Flock + +func validFlock(fp uintptr) bool { + if funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil { + return name == "flock" + } + } + return false +} + +func enter_Flock(fd int, how int) (err error) { + funcref := get_FlockAddr() + if validFlock(GetZosLibVec() + SYS_FLOCK<<4) { + *funcref = impl_Flock + } else { + *funcref = legacyFlock + } + return (*funcref)(fd, how) +} + +func legacyFlock(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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) + } + return +} + +func Mlock2(b []byte, flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) + } + return +} + +func Mlockall(flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) + } + return +} + +func Munlock(b []byte) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) + } + return +} + +func Munlockall() (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) + runtime.ExitSyscall() + if r0 != 0 { + err = errnoErr2(e1, e2) + } + 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 +} + +// Chtag + +//go:nosplit +func get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error) + +var Chtag = enter_Chtag + +func enter_Chtag(path string, ccsid uint64, textbit uint64) error { + funcref := get_ChtagAddr() + if validSetxattr() { + *funcref = impl_Chtag + } else { + *funcref = legacy_Chtag + } + return (*funcref)(path, ccsid, textbit) +} + +func legacy_Chtag(path string, ccsid uint64, textbit uint64) error { + tag := ccsid<<16 | textbit<<15 + var tag_buff [8]byte + DecodeData(tag_buff[:], 8, tag) + return Setxattr(path, "filetag", tag_buff[:], XATTR_REPLACE) +} + +func impl_Chtag(path string, ccsid uint64, textbit uint64) error { + tag := ccsid<<16 | textbit<<15 + var tag_buff [4]byte + DecodeData(tag_buff[:], 4, tag) + return Setxattr(path, "system.filetag", tag_buff[:], XATTR_REPLACE) +} + +// End of Chtag + +// Nanosleep + +//go:nosplit +func get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error) + +var Nanosleep = enter_Nanosleep + +func enter_Nanosleep(time *Timespec, leftover *Timespec) error { + funcref := get_NanosleepAddr() + if funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, "") == 0 { + *funcref = impl_Nanosleep + } else { + *funcref = legacyNanosleep + } + return (*funcref)(time, leftover) +} + +func impl_Nanosleep(time *Timespec, leftover *Timespec) error { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) + runtime.ExitSyscall() + if int64(r0) == -1 { + return errnoErr2(e1, e2) + } + return nil +} + +func legacyNanosleep(time *Timespec, leftover *Timespec) error { + t0 := runtime.Nanotime1() + var secrem uint32 + var nsecrem uint32 + total := time.Sec*1000000000 + time.Nsec + elapsed := runtime.Nanotime1() - t0 + var rv int32 + var rc int32 + var err error + // repeatedly sleep for 1 second until less than 1 second left + for total-elapsed > 1000000000 { + rv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem) + if rv != 0 && rc != 112 { // 112 is EAGAIN + if leftover != nil && rc == 120 { // 120 is EINTR + leftover.Sec = int64(secrem) + leftover.Nsec = int64(nsecrem) + } + err = Errno(rc) + return err + } + elapsed = runtime.Nanotime1() - t0 + } + // sleep the remainder + if total > elapsed { + rv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem) + } + if leftover != nil && rc == 120 { + leftover.Sec = int64(secrem) + leftover.Nsec = int64(nsecrem) + } + if rv != 0 && rc != 112 { + err = Errno(rc) + } + return err +} + +// End of Nanosleep + +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 ZosTraceLevel int +var ZosTracefile *os.File + +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 +} + +var reg *regexp.Regexp + +// enhanced with zos specific errno2 +func errnoErr2(e Errno, e2 uintptr) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + /* + Allow the retrieval of errno2 for EINVAL and ENOENT on zos + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + */ + } + if ZosTraceLevel > 0 { + var name string + if reg == nil { + reg = regexp.MustCompile("(^unix\\.[^/]+$|.*\\/unix\\.[^/]+$)") + } + i := 1 + pc, file, line, ok := runtime.Caller(i) + if ok { + name = runtime.FuncForPC(pc).Name() + } + for ok && reg.MatchString(runtime.FuncForPC(pc).Name()) { + i += 1 + pc, file, line, ok = runtime.Caller(i) + } + if ok { + if ZosTracefile == nil { + ZosConsolePrintf("From %s:%d\n", file, line) + ZosConsolePrintf("%s: %s (errno2=0x%x)\n", name, e.Error(), e2) + } else { + fmt.Fprintf(ZosTracefile, "From %s:%d\n", file, line) + fmt.Fprintf(ZosTracefile, "%s: %s (errno2=0x%x)\n", name, e.Error(), e2) + } + } else { + if ZosTracefile == nil { + ZosConsolePrintf("%s (errno2=0x%x)\n", e.Error(), e2) + } else { + fmt.Fprintf(ZosTracefile, "%s (errno2=0x%x)\n", e.Error(), e2) + } + } + } + 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 + } + + // Set __MAP_64 by default + flags |= __MAP_64 + + // 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) +} + +func Getag(path string) (ccsid uint16, flag uint16, err error) { + var val [8]byte + sz, err := Getxattr(path, "ccsid", val[:]) + if err != nil { + return + } + ccsid = uint16(EncodeData(val[0:sz])) + sz, err = Getxattr(path, "flags", val[:]) + if err != nil { + return + } + flag = uint16(EncodeData(val[0:sz]) >> 15) + return +} + +// Mount begin +func impl_Mount(source string, target string, fstype string, flags uintptr, data string) (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 + } + var _p3 *byte + _p3, err = BytePtrFromString(data) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error)) + +var Mount = enter_Mount + +func enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + funcref := get_MountAddr() + if validMount() { + *funcref = impl_Mount + } else { + *funcref = legacyMount + } + return (*funcref)(source, target, fstype, flags, data) +} + +func legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) { + if needspace := 8 - len(fstype); needspace <= 0 { + fstype = fstype[0:8] + } else { + fstype += " "[0:needspace] + } + return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) +} + +func validMount() bool { + if funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, "") == 0 { + if name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil { + return name == "__mount1_a" + } + } + return false +} + +// Mount end + +// Unmount begin +func impl_Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnmountAddr() *(func(target string, flags int) (err error)) + +var Unmount = enter_Unmount + +func enter_Unmount(target string, flags int) (err error) { + funcref := get_UnmountAddr() + if funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, "") == 0 { + *funcref = impl_Unmount + } else { + *funcref = legacyUnmount + } + return (*funcref)(target, flags) +} + +func legacyUnmount(name string, mtm int) (err error) { + // mountpoint is always a full path and starts with a '/' + // check if input string is not a mountpoint but a filesystem name + if name[0] != '/' { + return unmount_LE(name, mtm) + } + // treat name as mountpoint + b2s := func(arr []byte) string { + var str string + for i := 0; i < len(arr); i++ { + if arr[i] == 0 { + str = string(arr[:i]) + break + } + } + return str + } + var buffer struct { + header W_Mnth + fsinfo [64]W_Mntent + } + fs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) + if err == nil { + err = EINVAL + for i := 0; i < fs_count; i++ { + if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { + err = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm) + break + } + } + } else if fs_count == 0 { + err = EINVAL + } + return err +} + +// Unmount end + +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 +} + +func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { + var d Dirent + + d.Ino = uint64(dirent.Ino) + offset, err := Telldir(dir) + if err != nil { + return d, err + } + + d.Off = int64(offset) + s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) + copy(d.Name[:], s) + + d.Reclen = uint16(24 + len(d.NameString())) + var st Stat_t + path = path + "/" + s + err = Lstat(path, &st) + if err != nil { + return d, err + } + + d.Type = uint8(st.Mode >> 24) + return d, err +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulation of Getdirentries port from the Darwin implementation. + // COMMENTS FROM DARWIN: + // 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 + } + + // Get path from fd to avoid unavailable call (fdopendir) + path, err := ZosFdToPath(fd) + if err != nil { + return 0, err + } + d, err := Opendir(path) + if err != nil { + return 0, err + } + defer Closedir(d) + + var cnt int64 + for { + var entryLE direntLE + var entrypLE *direntLE + e := Readdir_r(d, &entryLE, &entrypLE) + if e != nil { + return n, e + } + if entrypLE == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + // Dirent on zos has a different structure + entry, e := direntLeToDirentUnix(&entryLE, d, path) + if e != nil { + return n, e + } + + 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. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), 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 +} + +func Err2ad() (eadd *int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4) + eadd = (*int)(unsafe.Pointer(r0)) + return +} + +func ZosConsolePrintf(format string, v ...interface{}) (int, error) { + type __cmsg struct { + _ uint16 + _ [2]uint8 + __msg_length uint32 + __msg uintptr + _ [4]uint8 + } + msg := fmt.Sprintf(format, v...) + strptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data) + len := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len + cmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)} + cmd := uint32(0) + runtime.EnterSyscall() + rc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd))) + runtime.ExitSyscall() + if rc != 0 { + return 0, fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) + } + return 0, nil +} +func ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) { + if nullterm { + ebcdicBytes = []byte(str + "\x00") + } else { + ebcdicBytes = []byte(str) + } + A2e(ebcdicBytes) + return +} +func ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) { + res := make([]byte, len(b)) + copy(res, b) + E2a(res) + if trimRight { + str = string(bytes.TrimRight(res, " \x00")) + } else { + str = string(res) + } + return +} + +func fdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + // w_ctrl() + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, + []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + // __e2a_l() + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, + []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) + return string(buffer[:zb]), nil + } + // __errno() + errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, + []uintptr{})))) + // __errno2() + errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, + []uintptr{})) + // strerror_r() + ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, + []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) + } else { + return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) + } +} + +func impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error)) + +var Mkfifoat = enter_Mkfifoat + +func enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + funcref := get_MkfifoatAddr() + if funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, "") == 0 { + *funcref = impl_Mkfifoat + } else { + *funcref = legacy_Mkfifoat + } + return (*funcref)(dirfd, path, mode) +} + +func legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) { + dirname, err := ZosFdToPath(dirfd) + if err != nil { + return err + } + return Mkfifo(dirname+"/"+path, mode) +} + +//sys Posix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT +//sys Grantpt(fildes int) (rc int, err error) = SYS_GRANTPT +//sys Unlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT + +func fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg) + runtime.ExitSyscall() + val = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +func Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) { + switch op.(type) { + case *Flock_t: + err = FcntlFlock(fd, cmd, op.(*Flock_t)) + if err != nil { + ret = -1 + } + return + case int: + return FcntlInt(fd, cmd, op.(int)) + case *F_cnvrt: + return fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt)))) + case unsafe.Pointer: + return fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer))) + default: + return -1, EINVAL + } + return +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + // TODO: use LE call instead if the call is implemented + originalOffset, err := Seek(infd, 0, SEEK_CUR) + if err != nil { + return -1, err + } + //start reading data from in_fd + if offset != nil { + _, err := Seek(infd, *offset, SEEK_SET) + if err != nil { + return -1, err + } + } + + buf := make([]byte, count) + readBuf := make([]byte, 0) + var n int = 0 + for i := 0; i < count; i += n { + n, err := Read(infd, buf) + if n == 0 { + if err != nil { + return -1, err + } else { // EOF + break + } + } + readBuf = append(readBuf, buf...) + buf = buf[0:0] + } + + n2, err := Write(outfd, readBuf) + if err != nil { + return -1, err + } + + //When sendfile() returns, this variable will be set to the + // offset of the byte following the last byte that was read. + if offset != nil { + *offset = *offset + int64(n) + // If offset is not NULL, then sendfile() does not modify the file + // offset of in_fd + _, err := Seek(infd, originalOffset, SEEK_SET) + if err != nil { + return -1, err + } + } + return n2, nil +} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/vendor/golang.org/x/sys/unix/sysvshm_linux.go new file mode 100644 index 0000000..4fcd38d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sysvshm_linux.go @@ -0,0 +1,20 @@ +// 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. + +//go:build linux + +package unix + +import "runtime" + +// SysvShmCtl performs control operations on the shared memory segment +// specified by id. +func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { + if runtime.GOARCH == "arm" || + runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { + cmd |= ipc_64 + } + + return shmctl(id, cmd, desc) +} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go new file mode 100644 index 0000000..672d6b0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sysvshm_unix.go @@ -0,0 +1,51 @@ +// 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. + +//go:build (darwin && !ios) || linux || zos + +package unix + +import "unsafe" + +// SysvShmAttach attaches the Sysv shared memory segment associated with the +// shared memory identifier id. +func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { + addr, errno := shmat(id, addr, flag) + if errno != nil { + return nil, errno + } + + // Retrieve the size of the shared memory to enable slice creation + var info SysvShmDesc + + _, err := SysvShmCtl(id, IPC_STAT, &info) + if err != nil { + // release the shared memory if we can't find the size + + // ignoring error from shmdt as there's nothing sensible to return here + shmdt(addr) + return nil, err + } + + // Use unsafe to convert addr into a []byte. + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) + return b, nil +} + +// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach. +// +// It is not safe to use the slice after calling this function. +func SysvShmDetach(data []byte) error { + if len(data) == 0 { + return EINVAL + } + + return shmdt(uintptr(unsafe.Pointer(&data[0]))) +} + +// SysvShmGet returns the Sysv shared memory identifier associated with key. +// If the IPC_CREAT flag is specified a new segment is created. +func SysvShmGet(key, size, flag int) (id int, err error) { + return shmget(key, size, flag) +} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go new file mode 100644 index 0000000..8b7977a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go @@ -0,0 +1,13 @@ +// 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. + +//go:build (darwin && !ios) || zos + +package unix + +// SysvShmCtl performs control operations on the shared memory segment +// specified by id. +func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { + return shmctl(id, cmd, desc) +} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go new file mode 100644 index 0000000..7997b19 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -0,0 +1,76 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos + +package unix + +import "time" + +// TimespecToNsec returns the time stored in ts as nanoseconds. +func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } + +// NsecToTimespec converts a number of nanoseconds into a Timespec. +func NsecToTimespec(nsec int64) Timespec { + sec := nsec / 1e9 + nsec = nsec % 1e9 + if nsec < 0 { + nsec += 1e9 + sec-- + } + return setTimespec(sec, nsec) +} + +// TimeToTimespec converts t into a Timespec. +// On some 32-bit systems the range of valid Timespec values are smaller +// than that of time.Time values. So if t is out of the valid range of +// Timespec, it returns a zero Timespec and ERANGE. +func TimeToTimespec(t time.Time) (Timespec, error) { + sec := t.Unix() + nsec := int64(t.Nanosecond()) + ts := setTimespec(sec, nsec) + + // Currently all targets have either int32 or int64 for Timespec.Sec. + // If there were a new target with floating point type for it, we have + // to consider the rounding error. + if int64(ts.Sec) != sec { + return Timespec{}, ERANGE + } + return ts, nil +} + +// TimevalToNsec returns the time stored in tv as nanoseconds. +func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } + +// NsecToTimeval converts a number of nanoseconds into a Timeval. +func NsecToTimeval(nsec int64) Timeval { + nsec += 999 // round up to microsecond + usec := nsec % 1e9 / 1e3 + sec := nsec / 1e9 + if usec < 0 { + usec += 1e6 + sec-- + } + return setTimeval(sec, usec) +} + +// 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 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 the time stored in ts as nanoseconds. +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +// 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/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go new file mode 100644 index 0000000..cb7e598 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go @@ -0,0 +1,51 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import "fmt" + +// Unveil implements the unveil syscall. +// For more information see unveil(2). +// Note that the special case of blocking further +// unveil calls is handled by UnveilBlock. +func Unveil(path string, flags string) error { + if err := supportsUnveil(); err != nil { + return err + } + pathPtr, err := BytePtrFromString(path) + if err != nil { + return err + } + flagsPtr, err := BytePtrFromString(flags) + if err != nil { + return err + } + return unveil(pathPtr, flagsPtr) +} + +// UnveilBlock blocks future unveil calls. +// For more information see unveil(2). +func UnveilBlock() error { + if err := supportsUnveil(); err != nil { + return err + } + return unveil(nil, nil) +} + +// supportsUnveil checks for availability of the unveil(2) system call based +// on the running OpenBSD version. +func supportsUnveil() error { + maj, min, err := majmin() + if err != nil { + return err + } + + // unveil is not available before 6.4 + if maj < 6 || (maj == 6 && min <= 3) { + return fmt.Errorf("cannot call Unveil on OpenBSD %d.%d", maj, min) + } + + return nil +} diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go new file mode 100644 index 0000000..07ac8e0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go @@ -0,0 +1,13 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && go1.24 + +package unix + +import _ "unsafe" + +//go:linkname vgetrandom runtime.vgetrandom +//go:noescape +func vgetrandom(p []byte, flags uint32) (ret int, supported bool) diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go new file mode 100644 index 0000000..297e97b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go @@ -0,0 +1,11 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !linux || !go1.24 + +package unix + +func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { + return -1, false +} diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go new file mode 100644 index 0000000..e168793 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -0,0 +1,280 @@ +// 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. + +//go:build freebsd || netbsd + +package unix + +import ( + "strings" + "unsafe" +) + +// Derive extattr namespace and attribute name + +func xattrnamespace(fullattr string) (ns int, attr string, err error) { + s := strings.IndexByte(fullattr, '.') + if s == -1 { + return -1, "", ENOATTR + } + + namespace := fullattr[0:s] + attr = fullattr[s+1:] + + switch namespace { + case "user": + return EXTATTR_NAMESPACE_USER, attr, nil + case "system": + return EXTATTR_NAMESPACE_SYSTEM, attr, nil + default: + return -1, "", ENOATTR + } +} + +func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { + if len(dest) > idx { + return unsafe.Pointer(&dest[idx]) + } + if dest != nil { + // extattr_get_file and extattr_list_file treat NULL differently from + // a non-NULL pointer of length zero. Preserve the property of nilness, + // even if we can't use dest directly. + return unsafe.Pointer(&_zero) + } + return nil +} + +// FreeBSD and NetBSD implement their own syscalls to handle extended attributes + +func Getxattr(file string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) +} + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) +} + +// flags are unused on FreeBSD + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) + return +} + +func Setxattr(file string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) + return +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) + return +} + +func Removexattr(file string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFile(file, nsid, a) + return +} + +func Fremovexattr(fd int, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFd(fd, nsid, a) + return +} + +func Lremovexattr(link string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteLink(link, nsid, a) + return +} + +func Listxattr(file string, dest []byte) (sz int, err error) { + destsiz := len(dest) + + // FreeBSD won't allow you to list xattrs from multiple namespaces + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := ListxattrNS(file, nsid, dest[pos:]) + + /* Errors accessing system attrs are ignored so that + * we can implement the Linux-like behavior of omitting errors that + * we don't have read permissions on + * + * Linux will still error if we ask for user attributes on a file that + * we don't have read permissions on, so don't ignore those errors + */ + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := LlistxattrNS(link, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go new file mode 100644 index 0000000..2fb219d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -0,0 +1,1384 @@ +// mkerrors.sh -maix32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && aix + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -maix32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + 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 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3ff796dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x5 + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0xc + F_SETLKW = 0x7 + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + 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_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + 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_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + 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 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fcf8df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fcf8df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3ff796bb + SIOCGIFCONFGLOB = -0x3ff79670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0x80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0x80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + 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_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0x80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0x8004747e + TIOCLBIS = 0x8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0x8004747d + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + 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_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0x80067411 + TIOCSETD = 0x80047401 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0x3f) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + 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) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + 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", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {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", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGKAP", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGSAK", "secure attention"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go new file mode 100644 index 0000000..b0e6f5c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -0,0 +1,1385 @@ +// mkerrors.sh -maix64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && aix + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -maix64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + 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 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3fef96dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLK64 = 0xc + F_SETLKW = 0xd + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + 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_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + 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_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + 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 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fc78df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fc78df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3fef96bb + SIOCGIFCONFGLOB = -0x3fef9670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0xffffffff80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0xffffffff80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0xffffffff80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + 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_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0xffffffff80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0xffffffff80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0xffffffff8004747e + TIOCLBIS = 0xffffffff8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0xffffffff8004747d + TIOCMBIC = 0xffffffff8004746b + TIOCMBIS = 0xffffffff8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0xffffffff80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0xffffffff80047404 + TIOCMSET = 0xffffffff8004746d + 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 = 0xffffffff80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0xffffffff80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0xffffffff80067411 + TIOCSETD = 0xffffffff80047401 + TIOCSETN = 0xffffffff8006740a + TIOCSETP = 0xffffffff80067409 + TIOCSLTC = 0xffffffff80067475 + TIOCSPGRP = 0xffffffff80047476 + TIOCSSIZE = 0xffffffff80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0xffffffff80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0xffffffff80087467 + TIOCUCNTL = 0xffffffff80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0xff) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + 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) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + 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", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {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", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGGRANT", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGMAX32", "secure attention"}, + {255, "SIGMAX", "signal 255"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go new file mode 100644 index 0000000..d73c465 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -0,0 +1,1922 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + 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 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x51c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_SPACEUSED = 0x800000 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf087ffff + 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 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + 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 = 0x80000 + 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 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CONNECT_DATA_AUTHENTICATED = 0x4 + CONNECT_DATA_IDEMPOTENT = 0x2 + CONNECT_RESUME_ON_READ_WRITE = 0x1 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + 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_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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + 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 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x10a + 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_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + 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_USB_DARWIN = 0x10a + 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_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + 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 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + 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 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + 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 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + 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_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + 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 = 0x3000 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + 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_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 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + 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 + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + 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 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + 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 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + 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 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + 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 = 0xd7f0f7ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + 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 = 0xb + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RENAME_EXCL = 0x4 + RENAME_NOFOLLOW_ANY = 0x10 + RENAME_RESERVED1 = 0x8 + RENAME_SECLUDE = 0x1 + RENAME_SWAP = 0x2 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_GLOBAL = 0x40000000 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + 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 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SAE_ASSOCID_ALL = 0xffffffff + SAE_ASSOCID_ANY = 0x0 + SAE_CONNID_ALL = 0xffffffff + SAE_CONNID_ANY = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SEEK_CUR = 0x1 + SEEK_DATA = 0x4 + SEEK_END = 0x2 + SEEK_HOLE = 0x3 + SEEK_SET = 0x0 + SF_APPEND = 0x40000 + SF_ARCHIVED = 0x10000 + SF_DATALESS = 0x40000000 + SF_FIRMLINK = 0x800000 + SF_IMMUTABLE = 0x20000 + SF_NOUNLINK = 0x100000 + SF_RESTRICTED = 0x80000 + SF_SETTABLE = 0x3fff0000 + SF_SUPPORTED = 0x9f0000 + SF_SYNTHETIC = 0xc0000000 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 + SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 + SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 + SO_TRACKER_TRANSPARENCY_VERSION = 0x3 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_CC = 0xb + TCPOPT_CCECHO = 0xd + TCPOPT_CCNEW = 0xc + TCPOPT_EOL = 0x0 + TCPOPT_FASTOPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + 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 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UF_APPEND = 0x4 + UF_COMPRESSED = 0x20 + UF_DATAVAULT = 0x80 + UF_HIDDEN = 0x8000 + UF_IMMUTABLE = 0x2 + UF_NODUMP = 0x1 + UF_OPAQUE = 0x8 + UF_SETTABLE = 0xffff + UF_TRACKED = 0x40 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_RESERVED = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// 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) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + 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(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + 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(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + 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) + 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, + {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, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// 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"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go new file mode 100644 index 0000000..4a55a40 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -0,0 +1,1922 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + 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 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x51c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_SPACEUSED = 0x800000 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf087ffff + 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 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + 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 = 0x80000 + 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 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CONNECT_DATA_AUTHENTICATED = 0x4 + CONNECT_DATA_IDEMPOTENT = 0x2 + CONNECT_RESUME_ON_READ_WRITE = 0x1 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + 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_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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + 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 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x10a + 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_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + 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_USB_DARWIN = 0x10a + 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_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + 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 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + 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 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + 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 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + 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_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + 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 = 0x3000 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + 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_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 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + 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 + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + 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 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + 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 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + 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 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + 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 = 0xd7f0f7ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + 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 = 0xb + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RENAME_EXCL = 0x4 + RENAME_NOFOLLOW_ANY = 0x10 + RENAME_RESERVED1 = 0x8 + RENAME_SECLUDE = 0x1 + RENAME_SWAP = 0x2 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_GLOBAL = 0x40000000 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + 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 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SAE_ASSOCID_ALL = 0xffffffff + SAE_ASSOCID_ANY = 0x0 + SAE_CONNID_ALL = 0xffffffff + SAE_CONNID_ANY = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SEEK_CUR = 0x1 + SEEK_DATA = 0x4 + SEEK_END = 0x2 + SEEK_HOLE = 0x3 + SEEK_SET = 0x0 + SF_APPEND = 0x40000 + SF_ARCHIVED = 0x10000 + SF_DATALESS = 0x40000000 + SF_FIRMLINK = 0x800000 + SF_IMMUTABLE = 0x20000 + SF_NOUNLINK = 0x100000 + SF_RESTRICTED = 0x80000 + SF_SETTABLE = 0x3fff0000 + SF_SUPPORTED = 0x9f0000 + SF_SYNTHETIC = 0xc0000000 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 + SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 + SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 + SO_TRACKER_TRANSPARENCY_VERSION = 0x3 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_CC = 0xb + TCPOPT_CCECHO = 0xd + TCPOPT_CCNEW = 0xc + TCPOPT_EOL = 0x0 + TCPOPT_FASTOPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + 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 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UF_APPEND = 0x4 + UF_COMPRESSED = 0x20 + UF_DATAVAULT = 0x80 + UF_HIDDEN = 0x8000 + UF_IMMUTABLE = 0x2 + UF_NODUMP = 0x1 + UF_OPAQUE = 0x8 + UF_SETTABLE = 0xffff + UF_TRACKED = 0x40 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_RESERVED = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// 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) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + 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(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + 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(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + 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) + 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, + {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, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// 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"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go new file mode 100644 index 0000000..c0e0f86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go @@ -0,0 +1,1737 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && dragonfly + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x21 + 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_HYLINK = 0xf + AF_IEEE80211 = 0x23 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x22 + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + 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 + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DEFAULTBUFSIZE = 0x1000 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MAX_CLONES = 0x80 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + 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 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + 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 + 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 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0x8 + EVFILT_FS = -0xa + EVFILT_MARKER = 0xf + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xa + EVFILT_TIMER = -0x7 + EVFILT_USER = -0x9 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + 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_HUP = 0x800 + EV_NODATA = 0x1000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTEXIT_LWP = 0x10000 + EXTEXIT_PROC = 0x0 + EXTEXIT_SETINT = 0x1 + EXTEXIT_SIMPLE = 0x0 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + 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_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x318e72 + IFF_DEBUG = 0x4 + IFF_IDIRECT = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NPOLLING = 0x100000 + IFF_OACTIVE = 0x400 + IFF_OACTIVE_COMPAT = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_POLLING = 0x10000 + IFF_POLLING_COMPAT = 0x10000 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + 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_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + 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_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + 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_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_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + 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_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + 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 = 0xf1 + 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_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_STF = 0xf3 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + 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_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + 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_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UNKNOWN = 0x102 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHLIM = 0x28 + 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_PKTOPTIONS = 0x34 + 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 = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + 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_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + 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_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CONTROL_END = 0xb + MADV_CONTROL_START = 0xa + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_INVAL = 0xa + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SETMAP = 0xb + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_NOCORE = 0x20000 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_SIZEALIGN = 0x40000 + MAP_STACK = 0x400 + MAP_TRYFIXED = 0x10000 + MAP_VPAGETABLE = 0x2000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x20 + MNT_CMDFLAGS = 0xf0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x4 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SYNCHRONOUS = 0x2 + MNT_TRIM = 0x1000000 + MNT_UPDATE = 0x10000 + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0xf1f0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x1000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FBLOCKING = 0x10000 + MSG_FMASK = 0xffff0000 + MSG_FNONBLOCKING = 0x20000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_SYNC = 0x800 + MSG_TRUNC = 0x10 + MSG_UNUSED09 = 0x200 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x20000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x8000000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FAPPEND = 0x100000 + O_FASYNCWRITE = 0x800000 + O_FBLOCKING = 0x40000 + O_FMASK = 0xfc0000 + O_FNONBLOCKING = 0x80000 + O_FOFFSET = 0x200000 + O_FSYNC = 0x80 + O_FSYNCWRITE = 0x400000 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0xb + RTAX_MPLS1 = 0x8 + RTAX_MPLS2 = 0x9 + RTAX_MPLS3 = 0xa + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_MPLS1 = 0x100 + RTA_MPLS2 = 0x200 + RTA_MPLS3 = 0x400 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPLSOPS = 0x1000000 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_IWCAPSEGS = 0x400 + RTV_IWMAXSEGS = 0x200 + RTV_MSL = 0x100 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc0406929 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc0206926 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPOLLCPU = 0xc020697e + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFTSOLEN = 0xc0206980 + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFPOLLCPU = 0x8020697d + SIOCSIFTSOLEN = 0x8020697f + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_CPUHINT = 0x1030 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDSPACE = 0x100a + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDB = 0x9000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_FASTKEEP = 0x80 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x20 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0x100 + TCP_MIN_WINSHIFT = 0x5 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_SIGNATURE_ENABLE = 0x10 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCISPTMASTER = 0x20007455 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + 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 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCHECKPT = 0x13 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x0 + VM_SWZONE_SIZE_MAX = 0x4000000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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) + EASYNC = syscall.Errno(0x63) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x63) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEDIUM = syscall.Errno(0x5d) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + 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) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + 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(0x5c) + 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) + SIGCKPT = syscall.Signal(0x21) + SIGCKPTEXIT = syscall.Signal(0x22) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOMEDIUM", "no medium found"}, + {99, "EASYNC", "unknown error: 99"}, +} + +// 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, "SIGIOT", "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 Scheduler"}, + {33, "SIGCKPT", "checkPoint"}, + {34, "SIGCKPTEXIT", "checkPointExit"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go new file mode 100644 index 0000000..6c69239 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -0,0 +1,2042 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + 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_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4008426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8008426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + 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 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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_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 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + 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 + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_KONTRON = 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + 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_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 = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + 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_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + 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 + 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_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 + 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 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + 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 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + 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_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + 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 + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + 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 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + 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 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + 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 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + 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_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETFSBASE = 0x47 + PT_GETGSBASE = 0x49 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETXMMREGS = 0x40 + PT_GETXSTATE = 0x45 + PT_GETXSTATE_INFO = 0x44 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETFSBASE = 0x48 + PT_SETGSBASE = 0x4a + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETXMMREGS = 0x41 + PT_SETXSTATE = 0x46 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + 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 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + 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 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + 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 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + 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 + SO_VENDOR = 0x80000000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + 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_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + 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_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + 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 + TCP_KEEPCNT = 0x400 + 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 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + 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_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 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + 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 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40087459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x70e0000 + VM_SWZONE_SIZE_MAX = 0x2280000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + 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(0x5c) + 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) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// 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, "SIGIOT", "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", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go new file mode 100644 index 0000000..dd9163f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -0,0 +1,2039 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + 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_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + 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 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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_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 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + 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 + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_KONTRON = 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + 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_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 = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + 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_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + 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 + 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_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 + 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 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + 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 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + 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_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + 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 + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + 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 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + 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 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + 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 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + 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_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETFSBASE = 0x47 + PT_GETGSBASE = 0x49 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETXSTATE = 0x45 + PT_GETXSTATE_INFO = 0x44 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETFSBASE = 0x48 + PT_SETGSBASE = 0x4a + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETXSTATE = 0x46 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + 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 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + 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 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + 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 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + 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 + SO_VENDOR = 0x80000000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + 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_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + 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_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + 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 + TCP_KEEPCNT = 0x400 + 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 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + 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_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 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + 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 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + 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(0x5c) + 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) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// 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, "SIGIOT", "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", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go new file mode 100644 index 0000000..493a2a7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -0,0 +1,2033 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + 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_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + 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 = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc078648f + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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_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 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + 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 + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_KONTRON = 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + 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_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 = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + 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_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + 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 + 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_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 + 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 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + 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 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + 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_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + 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 + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + 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 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + 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 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + 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 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + 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_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETVFPREGS = 0x40 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETVFPREGS = 0x41 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + 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 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + 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 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + 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 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + 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 + SO_VENDOR = 0x80000000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + 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_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + 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_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + 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 + TCP_KEEPCNT = 0x400 + 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 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + 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_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 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + 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 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + 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(0x5c) + 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) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// 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, "SIGIOT", "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", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go new file mode 100644 index 0000000..8b437b3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -0,0 +1,2033 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + 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_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + 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 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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_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 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + 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 + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_KONTRON = 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + 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_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 = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + 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_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + 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 + 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_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 + 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 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + 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 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + 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_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + 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 + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + 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 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + 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 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + 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 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + 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_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + 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 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + 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 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + 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 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + 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 + SO_VENDOR = 0x80000000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + 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_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + 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_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + 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 + TCP_KEEPCNT = 0x400 + 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 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + 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_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 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + 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 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x19000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + 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(0x5c) + 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) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// 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, "SIGIOT", "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", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go new file mode 100644 index 0000000..67c02dd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go @@ -0,0 +1,2147 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + 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_HYLINK = 0xf + AF_HYPERV = 0x2b + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2b + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B1000000 = 0xf4240 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1500000 = 0x16e360 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B2000000 = 0x1e8480 + B230400 = 0x38400 + B2400 = 0x960 + B2500000 = 0x2625a0 + B28800 = 0x7080 + B300 = 0x12c + B3000000 = 0x2dc6c0 + B3500000 = 0x3567e0 + B38400 = 0x9600 + B4000000 = 0x3d0900 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B500000 = 0x7a120 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + 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 = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + 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_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x5 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_COARSE = 0xc + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_COARSE = 0xa + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGKERNELDUMP = 0xc0986492 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80986491 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCSKERNELDUMP_FREEBSD12 = 0x80506490 + DIOCZONECMD = 0xc080648f + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + 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_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 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + 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 + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + 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_KONTRON = 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 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + 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_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + 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_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 = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + 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_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + 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 + 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_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 + 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 + EHE_DEAD_PRIORITY = -0x1 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + 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 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_NONE = -0xc8 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_ADD_SEALS = 0x13 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_GET_SEALS = 0x14 + F_ISUNIONSTACK = 0x15 + F_KINFO = 0x16 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_KNOWSEPOCH = 0x20 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + 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_NETMASK_DEFAULT = 0xffffff00 + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + 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 + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + 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 + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + 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 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + 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 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + 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 + 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 = 0xfc000000 + MFD_HUGE_SHIFT = 0x1a + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0x300d0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EMPTYDIR = 0x2000000000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_EXTLS = 0x4000000000 + MNT_EXTLSCERT = 0x8000000000 + MNT_EXTLSCERTUSER = 0x10000000000 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOCOVER = 0x1000000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_NHGRP = 0x7 + NET_RT_NHOP = 0x6 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x1000000 + O_EMPTY_PATH = 0x2000000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_PATH = 0x400000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_COREDUMP = 0x1d + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + 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 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_DEFAULT_WEIGHT = 0x1 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAX_WEIGHT = 0xffffff + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_CREDS2 = 0x8 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0x8020692c + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + 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 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + 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 + SO_VENDOR = 0x80000000 + 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_IFWHT = 0xe000 + 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 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + 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_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_INIT_RATE = 0x458 + 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_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_USE_RACK_RR = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DEFER_OPTIONS = 0x470 + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FAST_RSM_HACK = 0x471 + TCP_FIN_IS_RST = 0x49 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_HDWR_RATE_CAP = 0x46a + TCP_HDWR_UP_ONLY = 0x46c + TCP_IDLE_REDUCE = 0x46 + TCP_INFO = 0x20 + TCP_IWND_NB = 0x2b + TCP_IWND_NSEG = 0x2c + TCP_KEEPCNT = 0x400 + 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_LOGID_CNT = 0x2e + TCP_LOG_ID_LEN = 0x40 + TCP_LOG_LIMIT = 0x4a + TCP_LOG_TAG = 0x2f + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXPEAKRATE = 0x45 + TCP_MAXSEG = 0x2 + TCP_MAXUNACKTIME = 0x44 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NO_PRR = 0x462 + TCP_PACING_RATE_CAP = 0x46b + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_PERF_INFO = 0x4e + TCP_PROC_ACCOUNTING = 0x4c + TCP_RACK_ABC_VAL = 0x46d + TCP_RACK_CHEAT_NOT_CONF_RATE = 0x459 + TCP_RACK_DO_DETECTION = 0x449 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_FORCE_MSEG = 0x45d + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_GP_INCREASE_CA = 0x45a + TCP_RACK_GP_INCREASE_REC = 0x45c + TCP_RACK_GP_INCREASE_SS = 0x45b + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MBUF_QUEUE = 0x41a + TCP_RACK_MEASURE_CNT = 0x46f + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_NONRXT_CFG_RATE = 0x463 + TCP_RACK_NO_PUSH_AT_MAX = 0x466 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_RATE_CA = 0x45e + TCP_RACK_PACE_RATE_REC = 0x460 + TCP_RACK_PACE_RATE_SS = 0x45f + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PACE_TO_FILL = 0x467 + TCP_RACK_PACING_BETA = 0x472 + TCP_RACK_PACING_BETA_ECN = 0x473 + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROFILE = 0x469 + 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_RR_CONF = 0x459 + TCP_RACK_TIMER_SLOP = 0x474 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_REC_ABC_VAL = 0x46e + TCP_REMOTE_UDP_ENCAPS_PORT = 0x47 + TCP_REUSPORT_LB_NUMA = 0x402 + TCP_REUSPORT_LB_NUMA_CURDOM = -0x1 + TCP_REUSPORT_LB_NUMA_NODOM = -0x2 + TCP_RXTLS_ENABLE = 0x29 + TCP_RXTLS_MODE = 0x2a + TCP_SHARED_CWND_ALLOWED = 0x4b + TCP_SHARED_CWND_ENABLE = 0x464 + TCP_SHARED_CWND_TIME_LIMIT = 0x468 + TCP_STATS = 0x21 + TCP_TIMELY_DYN_ADJ = 0x465 + TCP_TLS_MODE_IFNET = 0x2 + TCP_TLS_MODE_NONE = 0x0 + TCP_TLS_MODE_SW = 0x1 + TCP_TLS_MODE_TOE = 0x3 + TCP_TXTLS_ENABLE = 0x27 + TCP_TXTLS_MODE = 0x28 + TCP_USER_LOG = 0x30 + TCP_USE_CMP_ACKS = 0x4d + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + 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 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// 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(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + 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) + EDOOFUS = syscall.Errno(0x58) + 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(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + 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(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + 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(0x5c) + 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) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// 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, "SIGIOT", "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", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} 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 0000000..9e7a6c5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -0,0 +1,3767 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go: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 = 0x2e + AF_MCTP = 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_KEY_BY_KEY_SERIAL = 0x7 + 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_MCTP = 0x122 + 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 + AUDIT_ADD = 0x3eb + AUDIT_ADD_RULE = 0x3f3 + AUDIT_ALWAYS = 0x2 + AUDIT_ANOM_ABEND = 0x6a5 + AUDIT_ANOM_CREAT = 0x6a7 + AUDIT_ANOM_LINK = 0x6a6 + AUDIT_ANOM_PROMISCUOUS = 0x6a4 + AUDIT_ARCH = 0xb + AUDIT_ARCH_AARCH64 = 0xc00000b7 + AUDIT_ARCH_ALPHA = 0xc0009026 + AUDIT_ARCH_ARCOMPACT = 0x4000005d + AUDIT_ARCH_ARCOMPACTBE = 0x5d + AUDIT_ARCH_ARCV2 = 0x400000c3 + AUDIT_ARCH_ARCV2BE = 0xc3 + AUDIT_ARCH_ARM = 0x40000028 + AUDIT_ARCH_ARMEB = 0x28 + AUDIT_ARCH_C6X = 0x4000008c + AUDIT_ARCH_C6XBE = 0x8c + AUDIT_ARCH_CRIS = 0x4000004c + AUDIT_ARCH_CSKY = 0x400000fc + AUDIT_ARCH_FRV = 0x5441 + AUDIT_ARCH_H8300 = 0x2e + AUDIT_ARCH_HEXAGON = 0xa4 + AUDIT_ARCH_I386 = 0x40000003 + AUDIT_ARCH_IA64 = 0xc0000032 + AUDIT_ARCH_LOONGARCH32 = 0x40000102 + AUDIT_ARCH_LOONGARCH64 = 0xc0000102 + AUDIT_ARCH_M32R = 0x58 + AUDIT_ARCH_M68K = 0x4 + AUDIT_ARCH_MICROBLAZE = 0xbd + AUDIT_ARCH_MIPS = 0x8 + AUDIT_ARCH_MIPS64 = 0x80000008 + AUDIT_ARCH_MIPS64N32 = 0xa0000008 + AUDIT_ARCH_MIPSEL = 0x40000008 + AUDIT_ARCH_MIPSEL64 = 0xc0000008 + AUDIT_ARCH_MIPSEL64N32 = 0xe0000008 + AUDIT_ARCH_NDS32 = 0x400000a7 + AUDIT_ARCH_NDS32BE = 0xa7 + AUDIT_ARCH_NIOS2 = 0x40000071 + AUDIT_ARCH_OPENRISC = 0x5c + AUDIT_ARCH_PARISC = 0xf + AUDIT_ARCH_PARISC64 = 0x8000000f + AUDIT_ARCH_PPC = 0x14 + AUDIT_ARCH_PPC64 = 0x80000015 + AUDIT_ARCH_PPC64LE = 0xc0000015 + AUDIT_ARCH_RISCV32 = 0x400000f3 + AUDIT_ARCH_RISCV64 = 0xc00000f3 + AUDIT_ARCH_S390 = 0x16 + AUDIT_ARCH_S390X = 0x80000016 + AUDIT_ARCH_SH = 0x2a + AUDIT_ARCH_SH64 = 0x8000002a + AUDIT_ARCH_SHEL = 0x4000002a + AUDIT_ARCH_SHEL64 = 0xc000002a + AUDIT_ARCH_SPARC = 0x2 + AUDIT_ARCH_SPARC64 = 0x8000002b + AUDIT_ARCH_TILEGX = 0xc00000bf + AUDIT_ARCH_TILEGX32 = 0x400000bf + AUDIT_ARCH_TILEPRO = 0x400000bc + AUDIT_ARCH_UNICORE = 0x4000006e + AUDIT_ARCH_X86_64 = 0xc000003e + AUDIT_ARCH_XTENSA = 0x5e + AUDIT_ARG0 = 0xc8 + AUDIT_ARG1 = 0xc9 + AUDIT_ARG2 = 0xca + AUDIT_ARG3 = 0xcb + AUDIT_AVC = 0x578 + AUDIT_AVC_PATH = 0x57a + AUDIT_BITMASK_SIZE = 0x40 + AUDIT_BIT_MASK = 0x8000000 + AUDIT_BIT_TEST = 0x48000000 + AUDIT_BPF = 0x536 + AUDIT_BPRM_FCAPS = 0x529 + AUDIT_CAPSET = 0x52a + AUDIT_CLASS_CHATTR = 0x2 + AUDIT_CLASS_CHATTR_32 = 0x3 + AUDIT_CLASS_DIR_WRITE = 0x0 + AUDIT_CLASS_DIR_WRITE_32 = 0x1 + AUDIT_CLASS_READ = 0x4 + AUDIT_CLASS_READ_32 = 0x5 + AUDIT_CLASS_SIGNAL = 0x8 + AUDIT_CLASS_SIGNAL_32 = 0x9 + AUDIT_CLASS_WRITE = 0x6 + AUDIT_CLASS_WRITE_32 = 0x7 + AUDIT_COMPARE_AUID_TO_EUID = 0x10 + AUDIT_COMPARE_AUID_TO_FSUID = 0xe + AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5 + AUDIT_COMPARE_AUID_TO_SUID = 0xf + AUDIT_COMPARE_EGID_TO_FSGID = 0x17 + AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4 + AUDIT_COMPARE_EGID_TO_SGID = 0x18 + AUDIT_COMPARE_EUID_TO_FSUID = 0x12 + AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3 + AUDIT_COMPARE_EUID_TO_SUID = 0x11 + AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9 + AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8 + AUDIT_COMPARE_GID_TO_EGID = 0x14 + AUDIT_COMPARE_GID_TO_FSGID = 0x15 + AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2 + AUDIT_COMPARE_GID_TO_SGID = 0x16 + AUDIT_COMPARE_SGID_TO_FSGID = 0x19 + AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7 + AUDIT_COMPARE_SUID_TO_FSUID = 0x13 + AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6 + AUDIT_COMPARE_UID_TO_AUID = 0xa + AUDIT_COMPARE_UID_TO_EUID = 0xb + AUDIT_COMPARE_UID_TO_FSUID = 0xc + AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1 + AUDIT_COMPARE_UID_TO_SUID = 0xd + AUDIT_CONFIG_CHANGE = 0x519 + AUDIT_CWD = 0x51b + AUDIT_DAEMON_ABORT = 0x4b2 + AUDIT_DAEMON_CONFIG = 0x4b3 + AUDIT_DAEMON_END = 0x4b1 + AUDIT_DAEMON_START = 0x4b0 + AUDIT_DEL = 0x3ec + AUDIT_DEL_RULE = 0x3f4 + AUDIT_DEVMAJOR = 0x64 + AUDIT_DEVMINOR = 0x65 + AUDIT_DIR = 0x6b + AUDIT_DM_CTRL = 0x53a + AUDIT_DM_EVENT = 0x53b + AUDIT_EGID = 0x6 + AUDIT_EOE = 0x528 + AUDIT_EQUAL = 0x40000000 + AUDIT_EUID = 0x2 + AUDIT_EVENT_LISTENER = 0x537 + AUDIT_EXE = 0x70 + AUDIT_EXECVE = 0x51d + AUDIT_EXIT = 0x67 + AUDIT_FAIL_PANIC = 0x2 + AUDIT_FAIL_PRINTK = 0x1 + AUDIT_FAIL_SILENT = 0x0 + AUDIT_FANOTIFY = 0x533 + AUDIT_FD_PAIR = 0x525 + AUDIT_FEATURE_BITMAP_ALL = 0x7f + AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1 + AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2 + AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8 + AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4 + AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40 + AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20 + AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10 + AUDIT_FEATURE_CHANGE = 0x530 + AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1 + AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0 + AUDIT_FEATURE_VERSION = 0x1 + AUDIT_FIELD_COMPARE = 0x6f + AUDIT_FILETYPE = 0x6c + AUDIT_FILTERKEY = 0xd2 + AUDIT_FILTER_ENTRY = 0x2 + AUDIT_FILTER_EXCLUDE = 0x5 + AUDIT_FILTER_EXIT = 0x4 + AUDIT_FILTER_FS = 0x6 + AUDIT_FILTER_PREPEND = 0x10 + AUDIT_FILTER_TASK = 0x1 + AUDIT_FILTER_TYPE = 0x5 + AUDIT_FILTER_URING_EXIT = 0x7 + AUDIT_FILTER_USER = 0x0 + AUDIT_FILTER_WATCH = 0x3 + AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4 + AUDIT_FIRST_USER_MSG = 0x44c + AUDIT_FIRST_USER_MSG2 = 0x834 + AUDIT_FSGID = 0x8 + AUDIT_FSTYPE = 0x1a + AUDIT_FSUID = 0x4 + AUDIT_GET = 0x3e8 + AUDIT_GET_FEATURE = 0x3fb + AUDIT_GID = 0x5 + AUDIT_GREATER_THAN = 0x20000000 + AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000 + AUDIT_INODE = 0x66 + AUDIT_INTEGRITY_DATA = 0x708 + AUDIT_INTEGRITY_EVM_XATTR = 0x70e + AUDIT_INTEGRITY_HASH = 0x70b + AUDIT_INTEGRITY_METADATA = 0x709 + AUDIT_INTEGRITY_PCR = 0x70c + AUDIT_INTEGRITY_POLICY_RULE = 0x70f + AUDIT_INTEGRITY_RULE = 0x70d + AUDIT_INTEGRITY_STATUS = 0x70a + AUDIT_INTEGRITY_USERSPACE = 0x710 + AUDIT_IPC = 0x517 + AUDIT_IPC_SET_PERM = 0x51f + AUDIT_IPE_ACCESS = 0x58c + AUDIT_IPE_CONFIG_CHANGE = 0x58d + AUDIT_IPE_POLICY_LOAD = 0x58e + AUDIT_KERNEL = 0x7d0 + AUDIT_KERNEL_OTHER = 0x524 + AUDIT_KERN_MODULE = 0x532 + AUDIT_LAST_FEATURE = 0x1 + AUDIT_LAST_KERN_ANOM_MSG = 0x707 + AUDIT_LAST_USER_MSG = 0x4af + AUDIT_LAST_USER_MSG2 = 0xbb7 + AUDIT_LESS_THAN = 0x10000000 + AUDIT_LESS_THAN_OR_EQUAL = 0x50000000 + AUDIT_LIST = 0x3ea + AUDIT_LIST_RULES = 0x3f5 + AUDIT_LOGIN = 0x3ee + AUDIT_LOGINUID = 0x9 + AUDIT_LOGINUID_SET = 0x18 + AUDIT_MAC_CALIPSO_ADD = 0x58a + AUDIT_MAC_CALIPSO_DEL = 0x58b + AUDIT_MAC_CIPSOV4_ADD = 0x57f + AUDIT_MAC_CIPSOV4_DEL = 0x580 + AUDIT_MAC_CONFIG_CHANGE = 0x57d + AUDIT_MAC_IPSEC_ADDSA = 0x583 + AUDIT_MAC_IPSEC_ADDSPD = 0x585 + AUDIT_MAC_IPSEC_DELSA = 0x584 + AUDIT_MAC_IPSEC_DELSPD = 0x586 + AUDIT_MAC_IPSEC_EVENT = 0x587 + AUDIT_MAC_MAP_ADD = 0x581 + AUDIT_MAC_MAP_DEL = 0x582 + AUDIT_MAC_POLICY_LOAD = 0x57b + AUDIT_MAC_STATUS = 0x57c + AUDIT_MAC_UNLBL_ALLOW = 0x57e + AUDIT_MAC_UNLBL_STCADD = 0x588 + AUDIT_MAC_UNLBL_STCDEL = 0x589 + AUDIT_MAKE_EQUIV = 0x3f7 + AUDIT_MAX_FIELDS = 0x40 + AUDIT_MAX_FIELD_COMPARE = 0x19 + AUDIT_MAX_KEY_LEN = 0x100 + AUDIT_MESSAGE_TEXT_MAX = 0x2170 + AUDIT_MMAP = 0x52b + AUDIT_MQ_GETSETATTR = 0x523 + AUDIT_MQ_NOTIFY = 0x522 + AUDIT_MQ_OPEN = 0x520 + AUDIT_MQ_SENDRECV = 0x521 + AUDIT_MSGTYPE = 0xc + AUDIT_NEGATE = 0x80000000 + AUDIT_NETFILTER_CFG = 0x52d + AUDIT_NETFILTER_PKT = 0x52c + AUDIT_NEVER = 0x0 + AUDIT_NLGRP_MAX = 0x1 + AUDIT_NOT_EQUAL = 0x30000000 + AUDIT_NR_FILTERS = 0x8 + AUDIT_OBJ_GID = 0x6e + AUDIT_OBJ_LEV_HIGH = 0x17 + AUDIT_OBJ_LEV_LOW = 0x16 + AUDIT_OBJ_PID = 0x526 + AUDIT_OBJ_ROLE = 0x14 + AUDIT_OBJ_TYPE = 0x15 + AUDIT_OBJ_UID = 0x6d + AUDIT_OBJ_USER = 0x13 + AUDIT_OPENAT2 = 0x539 + AUDIT_OPERATORS = 0x78000000 + AUDIT_PATH = 0x516 + AUDIT_PERM = 0x6a + AUDIT_PERM_ATTR = 0x8 + AUDIT_PERM_EXEC = 0x1 + AUDIT_PERM_READ = 0x4 + AUDIT_PERM_WRITE = 0x2 + AUDIT_PERS = 0xa + AUDIT_PID = 0x0 + AUDIT_POSSIBLE = 0x1 + AUDIT_PPID = 0x12 + AUDIT_PROCTITLE = 0x52f + AUDIT_REPLACE = 0x531 + AUDIT_SADDR_FAM = 0x71 + AUDIT_SECCOMP = 0x52e + AUDIT_SELINUX_ERR = 0x579 + AUDIT_SESSIONID = 0x19 + AUDIT_SET = 0x3e9 + AUDIT_SET_FEATURE = 0x3fa + AUDIT_SGID = 0x7 + AUDIT_SID_UNSET = 0xffffffff + AUDIT_SIGNAL_INFO = 0x3f2 + AUDIT_SOCKADDR = 0x51a + AUDIT_SOCKETCALL = 0x518 + AUDIT_STATUS_BACKLOG_LIMIT = 0x10 + AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20 + AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80 + AUDIT_STATUS_ENABLED = 0x1 + AUDIT_STATUS_FAILURE = 0x2 + AUDIT_STATUS_LOST = 0x40 + AUDIT_STATUS_PID = 0x4 + AUDIT_STATUS_RATE_LIMIT = 0x8 + AUDIT_SUBJ_CLR = 0x11 + AUDIT_SUBJ_ROLE = 0xe + AUDIT_SUBJ_SEN = 0x10 + AUDIT_SUBJ_TYPE = 0xf + AUDIT_SUBJ_USER = 0xd + AUDIT_SUCCESS = 0x68 + AUDIT_SUID = 0x3 + AUDIT_SYSCALL = 0x514 + AUDIT_SYSCALL_CLASSES = 0x10 + AUDIT_TIME_ADJNTPVAL = 0x535 + AUDIT_TIME_INJOFFSET = 0x534 + AUDIT_TRIM = 0x3f6 + AUDIT_TTY = 0x527 + AUDIT_TTY_GET = 0x3f8 + AUDIT_TTY_SET = 0x3f9 + AUDIT_UID = 0x1 + AUDIT_UID_UNSET = 0xffffffff + AUDIT_UNUSED_BITS = 0x7fffc00 + AUDIT_URINGOP = 0x538 + AUDIT_USER = 0x3ed + AUDIT_USER_AVC = 0x453 + AUDIT_USER_TTY = 0x464 + AUDIT_VERSION_BACKLOG_LIMIT = 0x1 + AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2 + AUDIT_VERSION_LATEST = 0x7f + AUDIT_WATCH = 0x69 + AUDIT_WATCH_INS = 0x3ef + AUDIT_WATCH_LIST = 0x3f1 + AUDIT_WATCH_REM = 0x3f0 + 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 + BCACHEFS_SUPER_MAGIC = 0xca451a4e + 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_ATOMIC = 0xc0 + BPF_B = 0x10 + BPF_BUILD_ID_SIZE = 0x14 + BPF_CALL = 0x80 + BPF_CMPXCHG = 0xf1 + BPF_DIV = 0x30 + BPF_DW = 0x18 + BPF_END = 0xd0 + BPF_EXIT = 0x90 + BPF_FETCH = 0x1 + BPF_FROM_BE = 0x8 + BPF_FROM_LE = 0x0 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_F_AFTER = 0x10 + BPF_F_ALLOW_MULTI = 0x2 + BPF_F_ALLOW_OVERRIDE = 0x1 + BPF_F_ANY_ALIGNMENT = 0x2 + BPF_F_BEFORE = 0x8 + BPF_F_ID = 0x20 + BPF_F_NETFILTER_IP_DEFRAG = 0x1 + BPF_F_QUERY_EFFECTIVE = 0x1 + BPF_F_REDIRECT_FLAGS = 0x19 + BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 + BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_REG_INVARIANTS = 0x80 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 + BPF_F_TEST_SKB_CHECKSUM_COMPLETE = 0x4 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 + BPF_F_XDP_DEV_BOUND_ONLY = 0x40 + BPF_F_XDP_HAS_FRAGS = 0x20 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JCOND = 0xe0 + 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_MEMSX = 0x80 + 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_FUNC = 0x4 + BPF_PSEUDO_KFUNC_CALL = 0x2 + BPF_PSEUDO_MAP_FD = 0x1 + BPF_PSEUDO_MAP_IDX = 0x5 + BPF_PSEUDO_MAP_IDX_VALUE = 0x6 + 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_XCHG = 0xe1 + 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_BUS_OFF_THRESHOLD = 0x100 + CAN_CTRLMODE_3_SAMPLES = 0x4 + CAN_CTRLMODE_BERR_REPORTING = 0x10 + CAN_CTRLMODE_CC_LEN8_DLC = 0x100 + CAN_CTRLMODE_FD = 0x20 + CAN_CTRLMODE_FD_NON_ISO = 0x80 + CAN_CTRLMODE_LISTENONLY = 0x2 + CAN_CTRLMODE_LOOPBACK = 0x1 + CAN_CTRLMODE_ONE_SHOT = 0x8 + CAN_CTRLMODE_PRESUME_ACK = 0x40 + CAN_CTRLMODE_TDC_AUTO = 0x200 + CAN_CTRLMODE_TDC_MANUAL = 0x400 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERROR_PASSIVE_THRESHOLD = 0x80 + CAN_ERROR_WARNING_THRESHOLD = 0x60 + CAN_ERR_ACK = 0x20 + CAN_ERR_BUSERROR = 0x80 + CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CNT = 0x200 + 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_RAW_XL_VCID_RX_FILTER = 0x4 + CAN_RAW_XL_VCID_TX_PASS = 0x2 + CAN_RAW_XL_VCID_TX_SET = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TERMINATION_DISABLED = 0x0 + 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 + CEPH_SUPER_MAGIC = 0xc36400 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CIFS_SUPER_MAGIC = 0xff534d42 + 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_PORT_FN_CAP_IPSEC_CRYPTO = 0x4 + DEVLINK_PORT_FN_CAP_IPSEC_PACKET = 0x8 + DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 + DEVLINK_PORT_FN_CAP_ROCE = 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_IMA_MEASUREMENT_FLAG = 0x80000 + 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_NAME_LIST_FLAG_DOESNT_HAVE_UUID = 0x2 + DM_NAME_LIST_FLAG_HAS_UUID = 0x1 + 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 (2025-01-17)" + DM_VERSION_MAJOR = 0x4 + DM_VERSION_MINOR = 0x31 + 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 + EM_386 = 0x3 + EM_486 = 0x6 + EM_68K = 0x4 + EM_860 = 0x7 + EM_88K = 0x5 + EM_AARCH64 = 0xb7 + EM_ALPHA = 0x9026 + EM_ALTERA_NIOS2 = 0x71 + EM_ARCOMPACT = 0x5d + EM_ARCV2 = 0xc3 + EM_ARM = 0x28 + EM_BLACKFIN = 0x6a + EM_BPF = 0xf7 + EM_CRIS = 0x4c + EM_CSKY = 0xfc + EM_CYGNUS_M32R = 0x9041 + EM_CYGNUS_MN10300 = 0xbeef + EM_FRV = 0x5441 + EM_H8_300 = 0x2e + EM_HEXAGON = 0xa4 + EM_IA_64 = 0x32 + EM_LOONGARCH = 0x102 + EM_M32 = 0x1 + EM_M32R = 0x58 + EM_MICROBLAZE = 0xbd + EM_MIPS = 0x8 + EM_MIPS_RS3_LE = 0xa + EM_MIPS_RS4_BE = 0xa + EM_MN10300 = 0x59 + EM_NDS32 = 0xa7 + EM_NONE = 0x0 + EM_OPENRISC = 0x5c + EM_PARISC = 0xf + EM_PPC = 0x14 + EM_PPC64 = 0x15 + EM_RISCV = 0xf3 + EM_S390 = 0x16 + EM_S390_OLD = 0xa390 + EM_SH = 0x2a + EM_SPARC = 0x2 + EM_SPARC32PLUS = 0x12 + EM_SPARCV9 = 0x2b + EM_SPU = 0x17 + EM_TILEGX = 0xbf + EM_TILEPRO = 0xbc + EM_TI_C6000 = 0x8c + EM_UNICORE = 0x6e + EM_X86_64 = 0x3e + EM_XTENSA = 0x5e + 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 + EPOLL_IOC_TYPE = 0x8a + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + ETHER_FLOW = 0x12 + ETHTOOL_BUSINFO_LEN = 0x20 + ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FAMILY_NAME = "ethtool" + ETHTOOL_FAMILY_VERSION = 0x1 + ETHTOOL_FEC_AUTO = 0x2 + ETHTOOL_FEC_BASER = 0x10 + ETHTOOL_FEC_LLRS = 0x20 + ETHTOOL_FEC_NONE = 0x1 + ETHTOOL_FEC_OFF = 0x4 + ETHTOOL_FEC_RS = 0x8 + ETHTOOL_FLAG_ALL = 0x7 + 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_CANXL = 0xe + 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_DSA_A5PSW = 0xe001 + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_ETHERCAT = 0x88a4 + 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_MCTP = 0xfa + 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_PROFINET = 0x8892 + 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_REALTEK = 0x8899 + 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 + EV_ABS = 0x3 + EV_CNT = 0x20 + EV_FF = 0x15 + EV_FF_STATUS = 0x17 + EV_KEY = 0x1 + EV_LED = 0x11 + EV_MAX = 0x1f + EV_MSC = 0x4 + EV_PWR = 0x16 + EV_REL = 0x2 + EV_REP = 0x14 + EV_SND = 0x12 + EV_SW = 0x5 + EV_SYN = 0x0 + EV_VERSION = 0x10001 + EXABYTE_ENABLE_NEST = 0xf0 + EXFAT_SUPER_MAGIC = 0x2011bab0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 + FALLOC_FL_ALLOCATE_RANGE = 0x0 + 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_EPIDFD = -0x2 + FAN_ERRNO_BITS = 0x8 + FAN_ERRNO_MASK = 0xff + FAN_ERRNO_SHIFT = 0x18 + FAN_EVENT_INFO_TYPE_DFID = 0x3 + FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 + FAN_EVENT_INFO_TYPE_ERROR = 0x5 + FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc + FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa + FAN_EVENT_INFO_TYPE_PIDFD = 0x4 + FAN_EVENT_INFO_TYPE_RANGE = 0x6 + FAN_EVENT_METADATA_LEN = 0x18 + FAN_EVENT_ON_CHILD = 0x8000000 + FAN_FS_ERROR = 0x8000 + FAN_INFO = 0x20 + FAN_MARK_ADD = 0x1 + FAN_MARK_DONT_FOLLOW = 0x4 + FAN_MARK_EVICTABLE = 0x200 + FAN_MARK_FILESYSTEM = 0x100 + FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORE = 0x400 + FAN_MARK_IGNORED_MASK = 0x20 + FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_IGNORE_SURV = 0x440 + 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_NOPIDFD = -0x1 + FAN_ONDIR = 0x40000000 + FAN_OPEN = 0x20 + FAN_OPEN_EXEC = 0x1000 + FAN_OPEN_EXEC_PERM = 0x40000 + FAN_OPEN_PERM = 0x10000 + FAN_PRE_ACCESS = 0x100000 + FAN_Q_OVERFLOW = 0x4000 + FAN_RENAME = 0x10000000 + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DFID_NAME_TARGET = 0x1e00 + FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FD_ERROR = 0x2000 + FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 + FAN_REPORT_PIDFD = 0x80 + FAN_REPORT_TARGET_FID = 0x1000 + FAN_REPORT_TID = 0x100 + FAN_RESPONSE_INFO_AUDIT_RULE = 0x1 + FAN_RESPONSE_INFO_NONE = 0x0 + FAN_UNLIMITED_MARKS = 0x20 + FAN_UNLIMITED_QUEUE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FIB_RULE_DEV_DETACHED = 0x8 + FIB_RULE_FIND_SADDR = 0x10000 + FIB_RULE_IIF_DETACHED = 0x8 + FIB_RULE_INVERT = 0x2 + FIB_RULE_OIF_DETACHED = 0x10 + FIB_RULE_PERMANENT = 0x1 + FIB_RULE_UNRESOLVED = 0x4 + 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_HCTR2 = 0xa + FSCRYPT_MODE_AES_256_XTS = 0x1 + FSCRYPT_MODE_SM4_CTS = 0x8 + FSCRYPT_MODE_SM4_XTS = 0x7 + 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_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_READ_VERITY_METADATA = 0xc0286687 + 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 + FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 + FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 + FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 + FUSE_SUPER_MAGIC = 0x65735546 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_CREATED_QUERY = 0x404 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_DUPFD_QUERY = 0x403 + 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_EXEC = 0x20 + 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 + 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 = 0xb + 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_CARRIER = 0x40 + 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_SMC = 0x100 + 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_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + 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_LOCAL_PORT_RANGE = 0x33 + 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_PROTOCOL = 0x34 + 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUTF8 = 0x4000 + IXANY = 0x800 + JFFS2_SUPER_MAGIC = 0x72b6 + KCMPROTO_CONNECTED = 0x0 + KCM_RECV_DISABLE = 0x1 + 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_LOONGARCH = 0x1020000 + 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_RISCV = 0xf30000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_CRASH_HOTPLUG_SUPPORT = 0x8 + KEXEC_FILE_DEBUG = 0x8 + 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 + KEXEC_UPDATE_ELFCOREHDR = 0x4 + 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 + LANDLOCK_ACCESS_FS_EXECUTE = 0x1 + LANDLOCK_ACCESS_FS_IOCTL_DEV = 0x8000 + LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 + LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 + LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 + LANDLOCK_ACCESS_FS_MAKE_FIFO = 0x400 + LANDLOCK_ACCESS_FS_MAKE_REG = 0x100 + LANDLOCK_ACCESS_FS_MAKE_SOCK = 0x200 + LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000 + LANDLOCK_ACCESS_FS_READ_DIR = 0x8 + LANDLOCK_ACCESS_FS_READ_FILE = 0x4 + LANDLOCK_ACCESS_FS_REFER = 0x2000 + LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10 + LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 + LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 + LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 + LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 + LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 + LANDLOCK_CREATE_RULESET_VERSION = 0x1 + LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET = 0x1 + LANDLOCK_SCOPE_SIGNAL = 0x2 + 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_CONFIGURE = 0x4c0a + 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_COLLAPSE = 0x19 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_DONTNEED_LOCKED = 0x18 + 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_POPULATE_READ = 0x16 + MADV_POPULATE_WRITE = 0x17 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_DROPPABLE = 0x8 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_HUGE_16GB = 0x88000000 + MAP_HUGE_16KB = 0x38000000 + MAP_HUGE_16MB = 0x60000000 + MAP_HUGE_1GB = 0x78000000 + MAP_HUGE_1MB = 0x50000000 + MAP_HUGE_256MB = 0x70000000 + MAP_HUGE_2GB = 0x7c000000 + MAP_HUGE_2MB = 0x54000000 + MAP_HUGE_32MB = 0x64000000 + MAP_HUGE_512KB = 0x4c000000 + MAP_HUGE_512MB = 0x74000000 + MAP_HUGE_64KB = 0x40000000 + MAP_HUGE_8MB = 0x5c000000 + 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 + MEMGETREGIONINFO = 0xc0104d08 + MEMREADOOB64 = 0xc0184d16 + MEMWRITE = 0xc0304d18 + MEMWRITEOOB64 = 0xc0184d15 + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_EXEC = 0x10 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = 0x88000000 + 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 + MFD_NOEXEC_SEAL = 0x8 + 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 + MNT_ID_REQ_SIZE_VER0 = 0x18 + MNT_ID_REQ_SIZE_VER1 = 0x20 + MNT_NS_INFO_SIZE_VER0 = 0x10 + MODULE_INIT_COMPRESSED_FILE = 0x4 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MOUNT_ATTR_IDMAP = 0x100000 + MOUNT_ATTR_NOATIME = 0x10 + MOUNT_ATTR_NODEV = 0x4 + MOUNT_ATTR_NODIRATIME = 0x80 + MOUNT_ATTR_NOEXEC = 0x8 + MOUNT_ATTR_NOSUID = 0x2 + MOUNT_ATTR_NOSYMFOLLOW = 0x200000 + MOUNT_ATTR_RDONLY = 0x1 + MOUNT_ATTR_RELATIME = 0x0 + MOUNT_ATTR_SIZE_VER0 = 0x20 + MOUNT_ATTR_STRICTATIME = 0x20 + MOUNT_ATTR__ATIME = 0x70 + MREMAP_DONTUNMAP = 0x4 + MREMAP_FIXED = 0x2 + MREMAP_MAYMOVE = 0x1 + 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_SOCK_DEVMEM = 0x2000000 + 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_ABSENT = 0x0 + MTD_BIT_WRITEABLE = 0x800 + MTD_CAP_NANDFLASH = 0x400 + MTD_CAP_NORFLASH = 0xc00 + MTD_CAP_NVRAM = 0x1c00 + MTD_CAP_RAM = 0x1c00 + MTD_CAP_ROM = 0x0 + MTD_DATAFLASH = 0x6 + MTD_INODE_FS_MAGIC = 0x11307854 + MTD_MAX_ECCPOS_ENTRIES = 0x40 + MTD_MAX_OOBFREE_ENTRIES = 0x8 + MTD_MLCNANDFLASH = 0x8 + MTD_NANDECC_AUTOPLACE = 0x2 + MTD_NANDECC_AUTOPL_USR = 0x4 + MTD_NANDECC_OFF = 0x0 + MTD_NANDECC_PLACE = 0x1 + MTD_NANDECC_PLACEONLY = 0x3 + MTD_NANDFLASH = 0x4 + MTD_NORFLASH = 0x3 + MTD_NO_ERASE = 0x1000 + MTD_OTP_FACTORY = 0x1 + MTD_OTP_OFF = 0x0 + MTD_OTP_USER = 0x2 + MTD_POWERUP_LOCK = 0x2000 + MTD_RAM = 0x1 + MTD_ROM = 0x2 + MTD_SLC_ON_MLC_EMULATION = 0x4000 + MTD_UBIVOLUME = 0x7 + MTD_WRITEABLE = 0x400 + 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 + NFC_ATR_REQ_GB_MAXSIZE = 0x30 + NFC_ATR_REQ_MAXSIZE = 0x40 + NFC_ATR_RES_GB_MAXSIZE = 0x2f + NFC_ATR_RES_MAXSIZE = 0x40 + NFC_ATS_MAXSIZE = 0x14 + NFC_COMM_ACTIVE = 0x0 + NFC_COMM_PASSIVE = 0x1 + NFC_DEVICE_NAME_MAXSIZE = 0x8 + NFC_DIRECTION_RX = 0x0 + NFC_DIRECTION_TX = 0x1 + NFC_FIRMWARE_NAME_MAXSIZE = 0x20 + NFC_GB_MAXSIZE = 0x30 + NFC_GENL_MCAST_EVENT_NAME = "events" + NFC_GENL_NAME = "nfc" + NFC_GENL_VERSION = 0x1 + NFC_HEADER_SIZE = 0x1 + NFC_ISO15693_UID_MAXSIZE = 0x8 + NFC_LLCP_MAX_SERVICE_NAME = 0x3f + NFC_LLCP_MIUX = 0x1 + NFC_LLCP_REMOTE_LTO = 0x3 + NFC_LLCP_REMOTE_MIU = 0x2 + NFC_LLCP_REMOTE_RW = 0x4 + NFC_LLCP_RW = 0x0 + NFC_NFCID1_MAXSIZE = 0xa + NFC_NFCID2_MAXSIZE = 0x8 + NFC_NFCID3_MAXSIZE = 0xa + NFC_PROTO_FELICA = 0x3 + NFC_PROTO_FELICA_MASK = 0x8 + NFC_PROTO_ISO14443 = 0x4 + NFC_PROTO_ISO14443_B = 0x6 + NFC_PROTO_ISO14443_B_MASK = 0x40 + NFC_PROTO_ISO14443_MASK = 0x10 + NFC_PROTO_ISO15693 = 0x7 + NFC_PROTO_ISO15693_MASK = 0x80 + NFC_PROTO_JEWEL = 0x1 + NFC_PROTO_JEWEL_MASK = 0x2 + NFC_PROTO_MAX = 0x8 + NFC_PROTO_MIFARE = 0x2 + NFC_PROTO_MIFARE_MASK = 0x4 + NFC_PROTO_NFC_DEP = 0x5 + NFC_PROTO_NFC_DEP_MASK = 0x20 + NFC_RAW_HEADER_SIZE = 0x2 + NFC_RF_INITIATOR = 0x0 + NFC_RF_NONE = 0x2 + NFC_RF_TARGET = 0x1 + NFC_SENSB_RES_MAXSIZE = 0xc + NFC_SENSF_RES_MAXSIZE = 0x12 + NFC_SE_DISABLED = 0x0 + NFC_SE_EMBEDDED = 0x2 + NFC_SE_ENABLED = 0x1 + NFC_SE_UICC = 0x1 + NFC_SOCKPROTO_LLCP = 0x1 + NFC_SOCKPROTO_MAX = 0x2 + NFC_SOCKPROTO_RAW = 0x0 + 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 = 0xd + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_HOOK = 0xc + 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 + NFT_BITWISE_BOOL = 0x0 + NFT_CHAIN_FLAGS = 0x7 + NFT_CHAIN_MAXNAMELEN = 0x100 + NFT_CT_MAX = 0x17 + NFT_DATA_RESERVED_MASK = 0xffffff00 + NFT_DATA_VALUE_MAXLEN = 0x40 + NFT_EXTHDR_OP_MAX = 0x4 + NFT_FIB_RESULT_MAX = 0x3 + NFT_INNER_MASK = 0xf + NFT_LOGLEVEL_MAX = 0x8 + NFT_NAME_MAXLEN = 0x100 + NFT_NG_MAX = 0x1 + NFT_OBJECT_CONNLIMIT = 0x5 + NFT_OBJECT_COUNTER = 0x1 + NFT_OBJECT_CT_EXPECT = 0x9 + NFT_OBJECT_CT_HELPER = 0x3 + NFT_OBJECT_CT_TIMEOUT = 0x7 + NFT_OBJECT_LIMIT = 0x4 + NFT_OBJECT_MAX = 0xa + NFT_OBJECT_QUOTA = 0x2 + NFT_OBJECT_SECMARK = 0x8 + NFT_OBJECT_SYNPROXY = 0xa + NFT_OBJECT_TUNNEL = 0x6 + NFT_OBJECT_UNSPEC = 0x0 + NFT_OBJ_MAXNAMELEN = 0x100 + NFT_OSF_MAXGENRELEN = 0x10 + NFT_QUEUE_FLAG_BYPASS = 0x1 + NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 + NFT_QUEUE_FLAG_MASK = 0x3 + NFT_REG32_COUNT = 0x10 + NFT_REG32_SIZE = 0x4 + NFT_REG_MAX = 0x4 + NFT_REG_SIZE = 0x10 + NFT_REJECT_ICMPX_MAX = 0x3 + NFT_RT_MAX = 0x4 + NFT_SECMARK_CTX_MAXLEN = 0x1000 + NFT_SET_MAXNAMELEN = 0x100 + NFT_SOCKET_MAX = 0x3 + NFT_TABLE_F_MASK = 0x7 + NFT_TABLE_MAXNAMELEN = 0x100 + NFT_TRACETYPE_MAX = 0x3 + NFT_TUNNEL_F_MASK = 0x7 + NFT_TUNNEL_MAX = 0x1 + NFT_TUNNEL_MODE_MAX = 0x2 + NFT_USERDATA_MAXLEN = 0x100 + NFT_XFRM_KEY_MAX = 0x6 + NF_NAT_RANGE_MAP_IPS = 0x1 + NF_NAT_RANGE_MASK = 0x7f + NF_NAT_RANGE_NETMAP = 0x40 + NF_NAT_RANGE_PERSISTENT = 0x8 + NF_NAT_RANGE_PROTO_OFFSET = 0x20 + NF_NAT_RANGE_PROTO_RANDOM = 0x4 + NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 + NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 + NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 + 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_BULK = 0x200 + 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_IGNORE_OUTGOING = 0x4000 + 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 + PACKET_VNET_HDR_SZ = 0x18 + 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_ATTR_SIZE_VER7 = 0x80 + PERF_ATTR_SIZE_VER8 = 0x88 + PERF_AUX_FLAG_COLLISION = 0x8 + PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 + PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 + PERF_AUX_FLAG_OVERWRITE = 0x2 + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 + PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_BRANCH_ENTRY_INFO_BITS_MAX = 0x21 + PERF_BR_ARM64_DEBUG_DATA = 0x7 + PERF_BR_ARM64_DEBUG_EXIT = 0x5 + PERF_BR_ARM64_DEBUG_HALT = 0x4 + PERF_BR_ARM64_DEBUG_INST = 0x6 + PERF_BR_ARM64_FIQ = 0x3 + PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_HW_EVENT_MASK = 0xffffffff + PERF_MAX_CONTEXTS_PER_STACK = 0x8 + PERF_MAX_STACK_DEPTH = 0x7f + PERF_MEM_BLK_ADDR = 0x4 + PERF_MEM_BLK_DATA = 0x2 + PERF_MEM_BLK_NA = 0x1 + PERF_MEM_BLK_SHIFT = 0x28 + PERF_MEM_HOPS_0 = 0x1 + PERF_MEM_HOPS_1 = 0x2 + PERF_MEM_HOPS_2 = 0x3 + PERF_MEM_HOPS_3 = 0x4 + PERF_MEM_HOPS_SHIFT = 0x2b + PERF_MEM_LOCK_LOCKED = 0x2 + PERF_MEM_LOCK_NA = 0x1 + PERF_MEM_LOCK_SHIFT = 0x18 + PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_CXL = 0x9 + PERF_MEM_LVLNUM_IO = 0xa + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 + PERF_MEM_LVLNUM_L2_MHB = 0x5 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc + PERF_MEM_LVLNUM_MSC = 0x6 + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd + PERF_MEM_LVLNUM_SHIFT = 0x21 + PERF_MEM_LVLNUM_UNC = 0x8 + 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_PEER = 0x2 + 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_PMU_TYPE_SHIFT = 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_BUILD_ID = 0x4000 + 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 + PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 + PID_FS_MAGIC = 0x50494446 + PIPEFS_MAGIC = 0x50495045 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROCFS_IOCTL_MAGIC = 'f' + 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_AUXV = 0x41555856 + 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_MDWE = 0x42 + PR_GET_MEMORY_MERGE = 0x44 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SHADOW_STACK_STATUS = 0x4a + 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_LOCK_SHADOW_STACK_STATUS = 0x4c + 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_MDWE_NO_INHERIT = 0x2 + PR_MDWE_REFUSE_EXEC_GAIN = 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_GET_ENABLED_KEYS = 0x3d + PR_PAC_RESET_KEYS = 0x36 + PR_PAC_SET_ENABLED_KEYS = 0x3c + PR_PMLEN_MASK = 0x7f000000 + PR_PMLEN_SHIFT = 0x18 + PR_PPC_DEXCR_CTRL_CLEAR = 0x4 + PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 + PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 + PR_PPC_DEXCR_CTRL_MASK = 0x1f + PR_PPC_DEXCR_CTRL_SET = 0x2 + PR_PPC_DEXCR_CTRL_SET_ONEXEC = 0x8 + PR_PPC_DEXCR_IBRTPD = 0x1 + PR_PPC_DEXCR_NPHIE = 0x3 + PR_PPC_DEXCR_SBHE = 0x0 + PR_PPC_DEXCR_SRAPD = 0x2 + PR_PPC_GET_DEXCR = 0x48 + PR_PPC_SET_DEXCR = 0x49 + PR_RISCV_CTX_SW_FENCEI_OFF = 0x1 + PR_RISCV_CTX_SW_FENCEI_ON = 0x0 + PR_RISCV_SCOPE_PER_PROCESS = 0x0 + PR_RISCV_SCOPE_PER_THREAD = 0x1 + PR_RISCV_SET_ICACHE_FLUSH_CTX = 0x47 + PR_RISCV_V_GET_CONTROL = 0x46 + PR_RISCV_V_SET_CONTROL = 0x45 + PR_RISCV_V_VSTATE_CTRL_CUR_MASK = 0x3 + PR_RISCV_V_VSTATE_CTRL_DEFAULT = 0x0 + PR_RISCV_V_VSTATE_CTRL_INHERIT = 0x10 + PR_RISCV_V_VSTATE_CTRL_MASK = 0x1f + PR_RISCV_V_VSTATE_CTRL_NEXT_MASK = 0xc + PR_RISCV_V_VSTATE_CTRL_OFF = 0x1 + PR_RISCV_V_VSTATE_CTRL_ON = 0x2 + PR_SCHED_CORE = 0x3e + PR_SCHED_CORE_CREATE = 0x1 + PR_SCHED_CORE_GET = 0x0 + PR_SCHED_CORE_MAX = 0x4 + PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 + PR_SCHED_CORE_SCOPE_THREAD = 0x0 + PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 + PR_SCHED_CORE_SHARE_FROM = 0x3 + PR_SCHED_CORE_SHARE_TO = 0x2 + 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_MDWE = 0x41 + PR_SET_MEMORY_MERGE = 0x43 + 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_SHADOW_STACK_STATUS = 0x4b + 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_SET_VMA = 0x53564d41 + PR_SET_VMA_ANON_NAME = 0x0 + PR_SHADOW_STACK_ENABLE = 0x1 + PR_SHADOW_STACK_PUSH = 0x4 + PR_SHADOW_STACK_WRITE = 0x2 + PR_SME_GET_VL = 0x40 + PR_SME_SET_VL = 0x3f + PR_SME_SET_VL_ONEXEC = 0x40000 + PR_SME_VL_INHERIT = 0x20000 + PR_SME_VL_LEN_MASK = 0xffff + 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_L1D_FLUSH = 0x2 + 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 + PTP_CLK_MAGIC = '=' + PTP_ENABLE_FEATURE = 0x1 + PTP_EXTTS_EDGES = 0x6 + PTP_EXTTS_EVENT_VALID = 0x1 + PTP_EXTTS_V1_VALID_FLAGS = 0x7 + PTP_EXTTS_VALID_FLAGS = 0x1f + PTP_EXT_OFFSET = 0x10 + PTP_FALLING_EDGE = 0x4 + PTP_MAX_SAMPLES = 0x19 + PTP_PEROUT_DUTY_CYCLE = 0x2 + PTP_PEROUT_ONE_SHOT = 0x1 + PTP_PEROUT_PHASE = 0x4 + PTP_PEROUT_V1_VALID_FLAGS = 0x0 + PTP_PEROUT_VALID_FLAGS = 0x7 + PTP_PIN_GETFUNC = 0xc0603d06 + PTP_PIN_GETFUNC2 = 0xc0603d0f + PTP_RISING_EDGE = 0x2 + PTP_STRICT_FLAGS = 0x8 + PTP_SYS_OFFSET_EXTENDED = 0xc4c03d09 + PTP_SYS_OFFSET_EXTENDED2 = 0xc4c03d12 + PTP_SYS_OFFSET_PRECISE = 0xc0403d08 + PTP_SYS_OFFSET_PRECISE2 = 0xc0403d11 + 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_RSEQ_CONFIGURATION = 0x420f + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 + 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_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 + 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 + P_ALL = 0x0 + P_PGID = 0x2 + P_PID = 0x1 + P_PIDFD = 0x3 + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RAW_PAYLOAD_DIGITAL = 0x3 + RAW_PAYLOAD_HCI = 0x2 + RAW_PAYLOAD_LLCP = 0x0 + RAW_PAYLOAD_NCI = 0x1 + RAW_PAYLOAD_PROPRIETARY = 0x4 + 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 = 0x1f + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TCP_USEC_TS = 0x10 + 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 = 0x1f + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_BSM_DIRECT = 0x1 + RTC_BSM_DISABLED = 0x0 + RTC_BSM_LEVEL = 0x2 + RTC_BSM_STANDBY = 0x3 + RTC_FEATURE_ALARM = 0x0 + RTC_FEATURE_ALARM_RES_2S = 0x3 + RTC_FEATURE_ALARM_RES_MINUTE = 0x1 + RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7 + RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6 + RTC_FEATURE_CNT = 0x8 + RTC_FEATURE_CORRECTION = 0x5 + RTC_FEATURE_NEED_WEEK_DAY = 0x2 + RTC_FEATURE_UPDATE_INTERRUPT = 0x4 + RTC_IRQF = 0x80 + RTC_MAX_FREQ = 0x2000 + RTC_PARAM_BACKUP_SWITCH_MODE = 0x2 + RTC_PARAM_CORRECTION = 0x1 + RTC_PARAM_FEATURES = 0x0 + 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_DELANYCAST = 0x3d + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELMULTICAST = 0x39 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNEXTHOPBUCKET = 0x75 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELTUNNEL = 0x79 + 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_OFFLOAD_FAILED = 0x20000000 + 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_GETNEXTHOPBUCKET = 0x76 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETTUNNEL = 0x7a + RTM_GETVLAN = 0x72 + RTM_MAX = 0x7b + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWANYCAST = 0x3c + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWMULTICAST = 0x38 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNEXTHOPBUCKET = 0x74 + 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_NEWTUNNEL = 0x78 + RTM_NEWVLAN = 0x70 + RTM_NR_FAMILIES = 0x1b + RTM_NR_MSGTYPES = 0x6c + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTM_SETSTATS = 0x5f + 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_OPENR = 0x63 + 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_ATOMIC = 0x40 + RWF_DONTCACHE = 0x80 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 + RWF_NOAPPEND = 0x20 + RWF_NOWAIT = 0x8 + RWF_SUPPORTED = 0xff + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCHED_BATCH = 0x3 + SCHED_DEADLINE = 0x6 + SCHED_EXT = 0x7 + SCHED_FIFO = 0x1 + SCHED_FLAG_ALL = 0x7f + SCHED_FLAG_DL_OVERRUN = 0x4 + SCHED_FLAG_KEEP_ALL = 0x18 + SCHED_FLAG_KEEP_PARAMS = 0x10 + SCHED_FLAG_KEEP_POLICY = 0x8 + SCHED_FLAG_RECLAIM = 0x2 + SCHED_FLAG_RESET_ON_FORK = 0x1 + SCHED_FLAG_UTIL_CLAMP = 0x60 + SCHED_FLAG_UTIL_CLAMP_MAX = 0x40 + SCHED_FLAG_UTIL_CLAMP_MIN = 0x20 + SCHED_IDLE = 0x5 + SCHED_NORMAL = 0x0 + SCHED_RESET_ON_FORK = 0x40000000 + SCHED_RR = 0x2 + SCM_CREDENTIALS = 0x2 + SCM_PIDFD = 0x4 + SCM_RIGHTS = 0x1 + SCM_SECURITY = 0x3 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_ADDFD_FLAG_SEND = 0x2 + SECCOMP_ADDFD_FLAG_SETFD = 0x1 + SECCOMP_FILTER_FLAG_LOG = 0x2 + SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 + SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 + SECCOMP_FILTER_FLAG_TSYNC = 0x1 + SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 + SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 + SECCOMP_GET_ACTION_AVAIL = 0x2 + SECCOMP_GET_NOTIF_SIZES = 0x3 + SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 + SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 + SECCOMP_IOC_MAGIC = '!' + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECCOMP_RET_ACTION = 0x7fff0000 + SECCOMP_RET_ACTION_FULL = 0xffff0000 + SECCOMP_RET_ALLOW = 0x7fff0000 + SECCOMP_RET_DATA = 0xffff + SECCOMP_RET_ERRNO = 0x50000 + SECCOMP_RET_KILL = 0x0 + SECCOMP_RET_KILL_PROCESS = 0x80000000 + SECCOMP_RET_KILL_THREAD = 0x0 + SECCOMP_RET_LOG = 0x7ffc0000 + SECCOMP_RET_TRACE = 0x7ff00000 + SECCOMP_RET_TRAP = 0x30000 + SECCOMP_RET_USER_NOTIF = 0x7fc00000 + SECCOMP_SET_MODE_FILTER = 0x1 + SECCOMP_SET_MODE_STRICT = 0x0 + SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 + SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 + SECRETMEM_MAGIC = 0x5345434d + SECURITYFS_MAGIC = 0x73636673 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_MAX = 0x4 + SEEK_SET = 0x0 + 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 + SIOCKCMATTACH = 0x89e0 + SIOCKCMCLONE = 0x89e2 + SIOCKCMUNATTACH = 0x89e1 + 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 + SK_DIAG_BPF_STORAGE_MAX = 0x3 + SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1 + 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 + SMB2_SUPER_MAGIC = 0xfe534d42 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_BUF_LOCK_MASK = 0x3 + SOCK_DCCP = 0x6 + SOCK_DESTROY = 0x15 + SOCK_DIAG_BY_FAMILY = 0x14 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RCVBUF_LOCK = 0x2 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_SNDBUF_LOCK = 0x1 + SOCK_TXREHASH_DEFAULT = 0xff + SOCK_TXREHASH_DISABLED = 0x0 + SOCK_TXREHASH_ENABLED = 0x1 + 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_MCTP = 0x11d + SOL_MPTCP = 0x11c + 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_SMC = 0x11e + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_UDP = 0x11 + SOL_VSOCK = 0x11f + 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_CONNECT_TIMEOUT_NEW = 0x8 + SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD = 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_ATTR_WRITE_ATOMIC = 0x400000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_DIOALIGN = 0x2000 + STATX_DIO_READ_ALIGN = 0x20000 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 + STATX_MNT_ID_UNIQUE = 0x4000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_SUBVOL = 0x8000 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX_WRITE_ATOMIC = 0x10000 + 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 = 0xf + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + 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_IFINDEX = 0x2 + 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_GSO_TCP = 0x100 + 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 + UBI_IOCECNFO = 0xc01c6f06 + UDF_SUPER_MAGIC = 0x15013346 + UDP_CORK = 0x1 + UDP_ENCAP = 0x64 + UDP_ENCAP_ESPINUDP = 0x2 + UDP_ENCAP_ESPINUDP_NON_IKE = 0x1 + UDP_ENCAP_GTP0 = 0x4 + UDP_ENCAP_GTP1U = 0x5 + UDP_ENCAP_L2TPINUDP = 0x3 + UDP_GRO = 0x68 + UDP_NO_CHECK6_RX = 0x66 + UDP_NO_CHECK6_TX = 0x65 + UDP_SEGMENT = 0x67 + UDP_V4_FLOW = 0x2 + UDP_V6_FLOW = 0x6 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VERASE = 0x2 + 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 + WGALLOWEDIP_A_MAX = 0x3 + WGDEVICE_A_MAX = 0x8 + WGPEER_A_MAX = 0xa + WG_CMD_MAX = 0x1 + WG_GENL_NAME = "wireguard" + WG_GENL_VERSION = 0x1 + WG_KEY_LEN = 0x20 + 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_PKT_CONTD = 0x1 + XDP_RING_NEED_WAKEUP = 0x1 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + XDP_TXMD_FLAGS_CHECKSUM = 0x2 + XDP_TXMD_FLAGS_TIMESTAMP = 0x1 + XDP_TX_METADATA = 0x2 + 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_TX_METADATA_LEN = 0x4 + XDP_UMEM_TX_SW_CSUM = 0x2 + XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_USE_SG = 0x10 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + ZONEFS_MAGIC = 0x5a4f4653 + _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 new file mode 100644 index 0000000..a8c421e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -0,0 +1,874 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ABOVE4G = 0x80 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc03c4d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go new file mode 100644 index 0000000..9a88d18 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -0,0 +1,874 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ABOVE4G = 0x80 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go new file mode 100644 index 0000000..7cb6a86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -0,0 +1,879 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go new file mode 100644 index 0000000..d0ecd2c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -0,0 +1,876 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 + EXTRA_MAGIC = 0x45585401 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPMR_MAGIC = 0x46504d52 + 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 + GCS_MAGIC = 0x47435300 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + POE_MAGIC = 0x504f4530 + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 + TPIDR2_MAGIC = 0x54504902 + 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 + ZA_MAGIC = 0x54366345 + ZT_MAGIC = 0x5a544e01 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go new file mode 100644 index 0000000..7a2940a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -0,0 +1,866 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPU_CTX_MAGIC = 0x46505501 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + LASX_CTX_MAGIC = 0x41535801 + LBT_CTX_MAGIC = 0x42540001 + LSX_CTX_MAGIC = 0x53580001 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go new file mode 100644 index 0000000..d14ca8f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -0,0 +1,880 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {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, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go new file mode 100644 index 0000000..2da1bac --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -0,0 +1,880 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {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, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go new file mode 100644 index 0000000..2872751 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -0,0 +1,880 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {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, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go new file mode 100644 index 0000000..7f287b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -0,0 +1,880 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mipsle && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {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, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go new file mode 100644 index 0000000..7e5f9e6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -0,0 +1,932 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + 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 = 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 = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 = 0x10000 + 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 = 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 + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffff + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_FPR31 = 0x6e + PT_FPSCR = 0x71 + PT_LNK = 0x24 + PT_MQ = 0x27 + 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_TRAP = 0x28 + 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 = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 = 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 = 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 = 0x20 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go new file mode 100644 index 0000000..37c8795 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -0,0 +1,936 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go new file mode 100644 index 0000000..5220133 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -0,0 +1,936 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go new file mode 100644 index 0000000..4bfe2b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -0,0 +1,863 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + PTRACE_GETFDPIC = 0x21 + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go new file mode 100644 index 0000000..e3cffb8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -0,0 +1,935 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x127a + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKROTATIONAL = 0x127e + BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f + 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 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPIOCGPARAMS = 0x80088a02 + EPIOCSPARAMS = 0x40088a01 + 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 + HIDIOCREVOKE = 0x4004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x8008b705 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_PID_FROM_PIDNS = 0x8004b706 + NS_GET_PID_IN_PIDNS = 0x8004b708 + NS_GET_TGID_FROM_PIDNS = 0x8004b707 + NS_GET_TGID_IN_PIDNS = 0x8004b709 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + 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 + PTP_CLOCK_GETCAPS = 0x80503d01 + PTP_CLOCK_GETCAPS2 = 0x80503d0a + PTP_ENABLE_PPS = 0x40043d04 + PTP_ENABLE_PPS2 = 0x40043d0d + PTP_EXTTS_REQUEST = 0x40103d02 + PTP_EXTTS_REQUEST2 = 0x40103d0b + PTP_MASK_CLEAR_ALL = 0x3d13 + PTP_MASK_EN_SINGLE = 0x40043d14 + PTP_PEROUT_REQUEST = 0x40383d03 + PTP_PEROUT_REQUEST2 = 0x40383d0c + PTP_PIN_SETFUNC = 0x40603d07 + PTP_PIN_SETFUNC2 = 0x40603d10 + PTP_SYS_OFFSET = 0x43403d05 + PTP_SYS_OFFSET2 = 0x43403d0e + 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_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + 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_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + 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_DEVMEM_DMABUF = 0x4f + SCM_DEVMEM_LINEAR = 0x4e + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 + 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_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DEVMEM_DMABUF = 0x4f + SO_DEVMEM_DONTNEED = 0x50 + SO_DEVMEM_LINEAR = 0x4e + 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_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSPIDFD = 0x4c + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERPIDFD = 0x4d + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVPRIORITY = 0x52 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + 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_TXREHASH = 0x4a + 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 ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go new file mode 100644 index 0000000..c219c8d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -0,0 +1,978 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go + +package unix + +import "syscall" + +const ( + 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 + BLKALIGNOFF = 0x2000127a + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e + BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f + 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 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 + EPIOCGPARAMS = 0x40088a02 + EPIOCSPARAMS = 0x80088a01 + 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 + HIDIOCREVOKE = 0x8004480d + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + 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 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_MNTNS_ID = 0x4008b705 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_PID_FROM_PIDNS = 0x4004b706 + NS_GET_PID_IN_PIDNS = 0x4004b708 + NS_GET_TGID_FROM_PIDNS = 0x4004b707 + NS_GET_TGID_IN_PIDNS = 0x4004b709 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + 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 + PTP_CLOCK_GETCAPS = 0x40503d01 + PTP_CLOCK_GETCAPS2 = 0x40503d0a + PTP_ENABLE_PPS = 0x80043d04 + PTP_ENABLE_PPS2 = 0x80043d0d + PTP_EXTTS_REQUEST = 0x80103d02 + PTP_EXTTS_REQUEST2 = 0x80103d0b + PTP_MASK_CLEAR_ALL = 0x20003d13 + PTP_MASK_EN_SINGLE = 0x80043d14 + PTP_PEROUT_REQUEST = 0x80383d03 + PTP_PEROUT_REQUEST2 = 0x80383d0c + PTP_PIN_SETFUNC = 0x80603d07 + PTP_PIN_SETFUNC2 = 0x80603d10 + PTP_SYS_OFFSET = 0x83403d05 + PTP_SYS_OFFSET2 = 0x83403d0e + 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_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + 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_DEVMEM_DMABUF = 0x58 + SCM_DEVMEM_LINEAR = 0x57 + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TS_OPT_ID = 0x5a + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 + SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 + SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SF_FP = 0x38 + SF_I0 = 0x20 + SF_I1 = 0x24 + SF_I2 = 0x28 + SF_I3 = 0x2c + SF_I4 = 0x30 + SF_I5 = 0x34 + SF_L0 = 0x0 + SF_L1 = 0x4 + SF_L2 = 0x8 + SF_L3 = 0xc + SF_L4 = 0x10 + SF_L5 = 0x14 + SF_L6 = 0x18 + SF_L7 = 0x1c + SF_PC = 0x3c + SF_RETP = 0x40 + SF_V9_FP = 0x70 + SF_V9_I0 = 0x40 + SF_V9_I1 = 0x48 + SF_V9_I2 = 0x50 + SF_V9_I3 = 0x58 + SF_V9_I4 = 0x60 + SF_V9_I5 = 0x68 + SF_V9_L0 = 0x0 + SF_V9_L1 = 0x8 + SF_V9_L2 = 0x10 + SF_V9_L3 = 0x18 + SF_V9_L4 = 0x20 + SF_V9_L5 = 0x28 + SF_V9_L6 = 0x30 + SF_V9_L7 = 0x38 + SF_V9_PC = 0x78 + SF_V9_RETP = 0x80 + SF_V9_XARG0 = 0x88 + SF_V9_XARG1 = 0x90 + SF_V9_XARG2 = 0x98 + SF_V9_XARG3 = 0xa0 + SF_V9_XARG4 = 0xa8 + SF_V9_XARG5 = 0xb0 + SF_V9_XXARG = 0xb8 + SF_XARG0 = 0x44 + SF_XARG1 = 0x48 + SF_XARG2 = 0x4c + SF_XARG3 = 0x50 + SF_XARG4 = 0x54 + SF_XARG5 = 0x58 + SF_XXARG = 0x5c + 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_BUF_LOCK = 0x51 + SO_BUSY_POLL = 0x30 + SO_BUSY_POLL_BUDGET = 0x49 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 + SO_DEVMEM_DMABUF = 0x58 + SO_DEVMEM_DONTNEED = 0x59 + SO_DEVMEM_LINEAR = 0x57 + 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_NETNS_COOKIE = 0x50 + SO_NOFCS = 0x27 + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSPIDFD = 0x55 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERPIDFD = 0x56 + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x48 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVMARK = 0x54 + SO_RCVPRIORITY = 0x5b + SO_RCVTIMEO = 0x2000 + SO_RCVTIMEO_NEW = 0x44 + SO_RCVTIMEO_OLD = 0x2000 + SO_RESERVE_MEM = 0x52 + 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_TXREHASH = 0x53 + 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 ( + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EADV = syscall.Errno(0x53) + EAFNOSUPPORT = syscall.Errno(0x2f) + EALREADY = syscall.Errno(0x25) + EBADE = syscall.Errno(0x66) + EBADFD = syscall.Errno(0x5d) + EBADMSG = syscall.Errno(0x4c) + EBADR = syscall.Errno(0x67) + EBADRQC = syscall.Errno(0x6a) + EBADSLT = syscall.Errno(0x6b) + EBFONT = syscall.Errno(0x6d) + ECANCELED = syscall.Errno(0x7f) + ECHRNG = syscall.Errno(0x5e) + ECOMM = syscall.Errno(0x55) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0x4e) + EDEADLOCK = syscall.Errno(0x6c) + EDESTADDRREQ = syscall.Errno(0x27) + EDOTDOT = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EHWPOISON = syscall.Errno(0x87) + EIDRM = syscall.Errno(0x4d) + EILSEQ = syscall.Errno(0x7a) + EINPROGRESS = syscall.Errno(0x24) + EISCONN = syscall.Errno(0x38) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x81) + EKEYREJECTED = syscall.Errno(0x83) + EKEYREVOKED = syscall.Errno(0x82) + EL2HLT = syscall.Errno(0x65) + EL2NSYNC = syscall.Errno(0x5f) + EL3HLT = syscall.Errno(0x60) + EL3RST = syscall.Errno(0x61) + ELIBACC = syscall.Errno(0x72) + ELIBBAD = syscall.Errno(0x70) + ELIBEXEC = syscall.Errno(0x6e) + ELIBMAX = syscall.Errno(0x7b) + ELIBSCN = syscall.Errno(0x7c) + ELNRNG = syscall.Errno(0x62) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x7e) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x57) + ENAMETOOLONG = syscall.Errno(0x3f) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENOANO = syscall.Errno(0x69) + ENOBUFS = syscall.Errno(0x37) + ENOCSI = syscall.Errno(0x64) + ENODATA = syscall.Errno(0x6f) + ENOKEY = syscall.Errno(0x80) + ENOLCK = syscall.Errno(0x4f) + ENOLINK = syscall.Errno(0x52) + ENOMEDIUM = syscall.Errno(0x7d) + ENOMSG = syscall.Errno(0x4b) + ENONET = syscall.Errno(0x50) + ENOPKG = syscall.Errno(0x71) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSR = syscall.Errno(0x4a) + ENOSTR = syscall.Errno(0x48) + ENOSYS = syscall.Errno(0x5a) + ENOTCONN = syscall.Errno(0x39) + ENOTEMPTY = syscall.Errno(0x42) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x85) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTUNIQ = syscall.Errno(0x73) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x5c) + EOWNERDEAD = syscall.Errno(0x84) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPROCLIM = syscall.Errno(0x43) + EPROTO = syscall.Errno(0x56) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EREMCHG = syscall.Errno(0x59) + EREMOTE = syscall.Errno(0x47) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x74) + ERFKILL = syscall.Errno(0x86) + ERREMOTE = syscall.Errno(0x51) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESRMNT = syscall.Errno(0x54) + ESTALE = syscall.Errno(0x46) + ESTRPIPE = syscall.Errno(0x5b) + ETIME = syscall.Errno(0x49) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x63) + EUSERS = syscall.Errno(0x44) + EXFULL = syscall.Errno(0x68) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x17) + SIGLOST = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x17) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1d) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + 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", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such 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", "numerical result out of range"}, + {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, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "cannot 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", "transport endpoint is already connected"}, + {57, "ENOTCONN", "transport endpoint is not connected"}, + {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {59, "ETOOMANYREFS", "too many references: cannot splice"}, + {60, "ETIMEDOUT", "connection 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 file handle"}, + {71, "EREMOTE", "object is remote"}, + {72, "ENOSTR", "device not a stream"}, + {73, "ETIME", "timer expired"}, + {74, "ENOSR", "out of streams resources"}, + {75, "ENOMSG", "no message of desired type"}, + {76, "EBADMSG", "bad message"}, + {77, "EIDRM", "identifier removed"}, + {78, "EDEADLK", "resource deadlock avoided"}, + {79, "ENOLCK", "no locks available"}, + {80, "ENONET", "machine is not on the network"}, + {81, "ERREMOTE", "unknown error 81"}, + {82, "ENOLINK", "link has been severed"}, + {83, "EADV", "advertise error"}, + {84, "ESRMNT", "srmount error"}, + {85, "ECOMM", "communication error on send"}, + {86, "EPROTO", "protocol error"}, + {87, "EMULTIHOP", "multihop attempted"}, + {88, "EDOTDOT", "RFS specific error"}, + {89, "EREMCHG", "remote address changed"}, + {90, "ENOSYS", "function not implemented"}, + {91, "ESTRPIPE", "streams pipe error"}, + {92, "EOVERFLOW", "value too large for defined data type"}, + {93, "EBADFD", "file descriptor in bad state"}, + {94, "ECHRNG", "channel number out of range"}, + {95, "EL2NSYNC", "level 2 not synchronized"}, + {96, "EL3HLT", "level 3 halted"}, + {97, "EL3RST", "level 3 reset"}, + {98, "ELNRNG", "link number out of range"}, + {99, "EUNATCH", "protocol driver not attached"}, + {100, "ENOCSI", "no CSI structure available"}, + {101, "EL2HLT", "level 2 halted"}, + {102, "EBADE", "invalid exchange"}, + {103, "EBADR", "invalid request descriptor"}, + {104, "EXFULL", "exchange full"}, + {105, "ENOANO", "no anode"}, + {106, "EBADRQC", "invalid request code"}, + {107, "EBADSLT", "invalid slot"}, + {108, "EDEADLOCK", "file locking deadlock error"}, + {109, "EBFONT", "bad font file format"}, + {110, "ELIBEXEC", "cannot exec a shared library directly"}, + {111, "ENODATA", "no data available"}, + {112, "ELIBBAD", "accessing a corrupted shared library"}, + {113, "ENOPKG", "package not installed"}, + {114, "ELIBACC", "can not access a needed shared library"}, + {115, "ENOTUNIQ", "name not unique on network"}, + {116, "ERESTART", "interrupted system call should be restarted"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {123, "ELIBMAX", "attempting to link in too many shared libraries"}, + {124, "ELIBSCN", ".lib section in a.out corrupted"}, + {125, "ENOMEDIUM", "no medium found"}, + {126, "EMEDIUMTYPE", "wrong medium type"}, + {127, "ECANCELED", "operation canceled"}, + {128, "ENOKEY", "required key not available"}, + {129, "EKEYEXPIRED", "key has expired"}, + {130, "EKEYREVOKED", "key has been revoked"}, + {131, "EKEYREJECTED", "key was rejected by service"}, + {132, "EOWNERDEAD", "owner died"}, + {133, "ENOTRECOVERABLE", "state not recoverable"}, + {134, "ERFKILL", "operation not possible due to RF-kill"}, + {135, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGLOST", "power failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go new file mode 100644 index 0000000..130085d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -0,0 +1,1779 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + 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_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + 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 = 0x1000000 + 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 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + 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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + 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_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + EN_SW_CTL_INF = 0x1000 + EN_SW_CTL_PREC = 0x300 + EN_SW_CTL_ROUND = 0xc00 + EN_SW_DATACHAIN = 0x80 + EN_SW_DENORM = 0x2 + EN_SW_INVOP = 0x1 + EN_SW_OVERFLOW = 0x8 + EN_SW_PRECLOSS = 0x20 + EN_SW_UNDERFLOW = 0x10 + EN_SW_ZERODIV = 0x4 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + 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_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_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + 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 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + 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_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + 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_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + 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_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_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 = 0xf1 + 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_STF = 0xd7 + 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 + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + 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_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + 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_VRRP = 0x70 + 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_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + 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_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + 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_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + 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_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + 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_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + 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_IFWHT = 0xe000 + 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 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + 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 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// 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(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + 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(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + 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(0x60) + 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) + ETIME = syscall.Errno(0x5c) + 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) + SIGPWR = syscall.Signal(0x20) + 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) + 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 or too small"}, + {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 option 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", "connection 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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "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, "SIGIOT", "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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {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, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go new file mode 100644 index 0000000..84769a1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -0,0 +1,1769 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + 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_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + 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 = 0x1000000 + 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 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + 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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + 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_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + 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_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_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + 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 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + 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_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + 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_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + 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_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_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 = 0xf1 + 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_STF = 0xd7 + 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 + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + 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_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + 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_VRRP = 0x70 + 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_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + 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_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + 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_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + 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_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + 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_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + 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_IFWHT = 0xe000 + 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 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + 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 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// 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(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + 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(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + 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(0x60) + 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) + ETIME = syscall.Errno(0x5c) + 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) + SIGPWR = syscall.Signal(0x20) + 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) + 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 or too small"}, + {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 option 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", "connection 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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "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, "SIGIOT", "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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {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, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go new file mode 100644 index 0000000..602ded0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -0,0 +1,1758 @@ +// mkerrors.sh -marm +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -marm _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + 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_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + 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 = 0x1000000 + 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 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + 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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + 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_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + 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_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_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + 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 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + 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_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + 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_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + 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_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_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 = 0xf1 + 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_STF = 0xd7 + 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 + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + 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_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + 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_VRRP = 0x70 + 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_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + 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_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + 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_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + 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_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + 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_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PRI_IOFLUSH = 0x7c + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + 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_IFWHT = 0xe000 + 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 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + 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 + TIOCPTMGET = 0x48087446 + TIOCPTSNAME = 0x48087448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// 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(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + 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(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + 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(0x60) + 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) + ETIME = syscall.Errno(0x5c) + 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) + SIGPWR = syscall.Signal(0x20) + 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) + 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 or too small"}, + {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 option 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", "connection 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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "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, "SIGIOT", "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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {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, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go new file mode 100644 index 0000000..efc0406 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -0,0 +1,1769 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + 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_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + 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 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + 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 = 0x1000000 + 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 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + 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 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + 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 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + 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 + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + 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_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + 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 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + 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_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_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + 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 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + 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_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + 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_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + 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_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_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 = 0xf1 + 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_STF = 0xd7 + 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 + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + 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_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + 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_VRRP = 0x70 + 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_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + 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_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + 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_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + 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_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + 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_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + 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_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + 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_IFWHT = 0xe000 + 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 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + 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 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// 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(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + 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(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + 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(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + 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(0x60) + 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) + ETIME = syscall.Errno(0x5c) + 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) + SIGPWR = syscall.Signal(0x20) + 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) + 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 or too small"}, + {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 option 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", "connection 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", "disc 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 prog. not avail"}, + {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, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "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, "SIGIOT", "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", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {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, "SIGPWR", "power fail/restart"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go new file mode 100644 index 0000000..5a6500f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _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 = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + 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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 = 0xc100445d + DIOCADDRULE = 0xccc84404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xccc8441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xccc84407 + DIOCGETRULES = 0xccc84406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc084444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0844450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 = 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x805c693c + SIOCBRDGADDL = 0x805c6949 + SIOCBRDGADDS = 0x805c6941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x805c693d + SIOCBRDGDELS = 0x805c6942 + SIOCBRDGFLUSH = 0x805c6948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc05c693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc05c6942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x805c6955 + SIOCBRDGSIFFLGS = 0x805c693f + SIOCBRDGSIFPRIO = 0x805c6954 + SIOCBRDGSIFPROT = 0x805c694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 + 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 = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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 = 0x400c745b + 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, "SIGIOT", "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"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go new file mode 100644 index 0000000..a5aeeb9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && 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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 = 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + 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 = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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, "SIGIOT", "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"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go new file mode 100644 index 0000000..0e9748a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -0,0 +1,1905 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _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 = 0xc008427b + 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 = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + 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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 = 0xc100445d + DIOCADDRULE = 0xcce04404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcce0441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xcce04407 + DIOCGETRULES = 0xcce04406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 = 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 + 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 = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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, "SIGIOT", "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"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} 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 0000000..4f4449a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 = 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + 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 = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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, "SIGIOT", "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"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} 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 0000000..76a363f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + 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 = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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, "SIGIOT", "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"}, + {81920, "SIGSTKSZ", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go new file mode 100644 index 0000000..43ca0cd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go @@ -0,0 +1,1904 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && 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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 + MSG_WAITFORONE = 0x1000 + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + 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 = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go new file mode 100644 index 0000000..b1b8bb2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go @@ -0,0 +1,1903 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && 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_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + 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_RND = 0xc0 + 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 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + 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_EAPOL = 0x888e + 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_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + 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_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + 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 = 0xf800 + 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_WIREGUARD = 0xfb + 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_SCTP = 0x84 + 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 = 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 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + 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 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + 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 = 0x8 + NET_RT_SOURCE = 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_OOB = 0x4 + 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_SOURCE = 0x16 + 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 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + 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 = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + 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 + 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 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + 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 new file mode 100644 index 0000000..d2ddd31 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go @@ -0,0 +1,1556 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && solaris + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_802 = 0x12 + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_FILE = 0x1 + AF_GOSIP = 0x16 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1a + AF_INET_OFFLOAD = 0x1e + AF_IPX = 0x17 + AF_KEY = 0x1b + AF_LAT = 0xe + AF_LINK = 0x19 + AF_LOCAL = 0x1 + AF_MAX = 0x20 + AF_NBS = 0x7 + AF_NCA = 0x1c + AF_NIT = 0x11 + AF_NS = 0x6 + AF_OSI = 0x13 + AF_OSINET = 0x15 + AF_PACKET = 0x20 + AF_POLICY = 0x1d + AF_PUP = 0x4 + AF_ROUTE = 0x18 + AF_SNA = 0xb + AF_TRILL = 0x1f + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_X25 = 0x14 + ARPHRD_ARCNET = 0x7 + ARPHRD_ATM = 0x10 + ARPHRD_AX25 = 0x3 + ARPHRD_CHAOS = 0x5 + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_FC = 0x12 + ARPHRD_FRAME = 0xf + ARPHRD_HDLC = 0x11 + ARPHRD_IB = 0x20 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IPATM = 0x13 + ARPHRD_METRICOM = 0x17 + ARPHRD_TUNNEL = 0x1f + B0 = 0x0 + B110 = 0x3 + B115200 = 0x12 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B153600 = 0x13 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B230400 = 0x14 + B2400 = 0xb + B300 = 0x7 + B307200 = 0x15 + B38400 = 0xf + B460800 = 0x16 + B4800 = 0xc + B50 = 0x1 + B57600 = 0x10 + B600 = 0x8 + B75 = 0x2 + B76800 = 0x11 + B921600 = 0x17 + B9600 = 0xd + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = -0x3fefbd89 + BIOCGDLTLIST32 = -0x3ff7bd89 + BIOCGETIF = 0x4020426b + BIOCGETLIF = 0x4078426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGRTIMEOUT32 = 0x4008427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = -0x7ffbbd90 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = -0x3ffbbd9a + BIOCSDLT = -0x7ffbbd8a + BIOCSETF = -0x7fefbd99 + BIOCSETF32 = -0x7ff7bd99 + BIOCSETIF = -0x7fdfbd94 + BIOCSETLIF = -0x7f87bd94 + BIOCSHDRCMPLT = -0x7ffbbd8b + BIOCSRTIMEOUT = -0x7fefbd86 + BIOCSRTIMEOUT32 = -0x7ff7bd86 + BIOCSSEESENT = -0x7ffbbd87 + BIOCSTCPF = -0x7fefbd8e + BIOCSUDPF = -0x7fefbd8d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + 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 = 0x1000000 + 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 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_HIGHRES = 0x4 + CLOCK_LEVEL = 0xa + CLOCK_MONOTONIC = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x5 + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x3 + CLOCK_THREAD_CPUTIME_ID = 0x2 + CLOCK_VIRTUAL = 0x1 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + 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 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_BACNET_MS_TP = 0xa5 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FDDI = 0xa + DLT_FRELAY = 0x6b + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xa2 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_PPPD = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EMPTY_SET = 0x0 + EMT_CPCOVF = 0x1 + EQUALITY_CHECK = 0x0 + EXTA = 0xe + EXTB = 0xf + FD_CLOEXEC = 0x1 + FD_NFDBITS = 0x40 + FD_SETSIZE = 0x10000 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FIORDCHK = 0x6603 + FLUSHALL = 0x1 + FLUSHDATA = 0x0 + FLUSHO = 0x2000 + F_ALLOCSP = 0xa + F_ALLOCSP64 = 0xa + F_BADFD = 0x2e + F_BLKSIZE = 0x13 + F_BLOCKS = 0x12 + F_CHKFL = 0x8 + F_COMPAT = 0x8 + F_DUP2FD = 0x9 + F_DUP2FD_CLOEXEC = 0x24 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x25 + F_FLOCK = 0x35 + F_FLOCK64 = 0x35 + F_FLOCKW = 0x36 + F_FLOCKW64 = 0x36 + F_FREESP = 0xb + F_FREESP64 = 0xb + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETXFL = 0x2d + F_HASREMOTELOCKS = 0x1a + F_ISSTREAM = 0xd + F_MANDDNY = 0x10 + F_MDACC = 0x20 + F_NODNY = 0x0 + F_NPRIV = 0x10 + F_OFD_GETLK = 0x2f + F_OFD_GETLK64 = 0x2f + F_OFD_SETLK = 0x30 + F_OFD_SETLK64 = 0x30 + F_OFD_SETLKW = 0x31 + F_OFD_SETLKW64 = 0x31 + F_PRIV = 0xf + F_QUOTACTL = 0x11 + F_RDACC = 0x1 + F_RDDNY = 0x1 + F_RDLCK = 0x1 + F_REVOKE = 0x19 + F_RMACC = 0x4 + F_RMDNY = 0x4 + F_RWACC = 0x3 + F_RWDNY = 0x3 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLK64_NBMAND = 0x2a + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETLK_NBMAND = 0x2a + F_SETOWN = 0x18 + F_SHARE = 0x28 + F_SHARE_NBMAND = 0x2b + F_UNLCK = 0x3 + F_UNLKSYS = 0x4 + F_UNSHARE = 0x29 + F_WRACC = 0x2 + F_WRDNY = 0x2 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFF_ADDRCONF = 0x80000 + IFF_ALLMULTI = 0x200 + IFF_ANYCAST = 0x400000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x7f203003b5a + IFF_COS_ENABLED = 0x200000000 + IFF_DEBUG = 0x4 + IFF_DEPRECATED = 0x40000 + IFF_DHCPRUNNING = 0x4000 + IFF_DUPLICATE = 0x4000000000 + IFF_FAILED = 0x10000000 + IFF_FIXEDMTU = 0x1000000000 + IFF_INACTIVE = 0x40000000 + IFF_INTELLIGENT = 0x400 + IFF_IPMP = 0x8000000000 + IFF_IPMP_CANTCHANGE = 0x10000000 + IFF_IPMP_INVALID = 0x1ec200080 + IFF_IPV4 = 0x1000000 + IFF_IPV6 = 0x2000000 + IFF_L3PROTECT = 0x40000000000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x800 + IFF_MULTI_BCAST = 0x1000 + IFF_NOACCEPT = 0x4000000 + IFF_NOARP = 0x80 + IFF_NOFAILOVER = 0x8000000 + IFF_NOLINKLOCAL = 0x20000000000 + IFF_NOLOCAL = 0x20000 + IFF_NONUD = 0x200000 + IFF_NORTEXCH = 0x800000 + IFF_NOTRAILERS = 0x20 + IFF_NOXMIT = 0x10000 + IFF_OFFLINE = 0x80000000 + IFF_POINTOPOINT = 0x10 + IFF_PREFERRED = 0x400000000 + IFF_PRIVATE = 0x8000 + IFF_PROMISC = 0x100 + IFF_ROUTER = 0x100000 + IFF_RUNNING = 0x40 + IFF_STANDBY = 0x20000000 + IFF_TEMPORARY = 0x800000000 + IFF_UNNUMBERED = 0x2000 + IFF_UP = 0x1 + IFF_VIRTUAL = 0x2000000000 + IFF_VRRP = 0x10000000000 + IFF_XRESOLV = 0x100000000 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6TO4 = 0xca + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_IPV4 = 0xc8 + IFT_IPV6 = 0xc9 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_AUTOCONF_MASK = 0xffff0000 + IN_AUTOCONF_NET = 0xa9fe0000 + 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_CLASSE_NET = 0xffffffff + IN_LOOPBACKNET = 0x7f + IN_PRIVATE12_MASK = 0xfff00000 + IN_PRIVATE12_NET = 0xac100000 + IN_PRIVATE16_MASK = 0xffff0000 + IN_PRIVATE16_NET = 0xc0a80000 + IN_PRIVATE8_MASK = 0xff000000 + IN_PRIVATE8_NET = 0xa000000 + IPPROTO_AH = 0x33 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x4 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_HELLO = 0x3f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_ND = 0x4d + IPPROTO_NONE = 0x3b + IPPROTO_OSPF = 0x59 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_UDP = 0x11 + IPV6_ADD_MEMBERSHIP = 0x9 + IPV6_BOUND_IF = 0x41 + IPV6_CHECKSUM = 0x18 + IPV6_DONTFRAG = 0x21 + IPV6_DROP_MEMBERSHIP = 0xa + IPV6_DSTOPTS = 0xf + IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 + IPV6_FLOWINFO_TCLASS = 0xf00f + IPV6_HOPLIMIT = 0xc + IPV6_HOPOPTS = 0xe + IPV6_JOIN_GROUP = 0x9 + IPV6_LEAVE_GROUP = 0xa + IPV6_MULTICAST_HOPS = 0x7 + IPV6_MULTICAST_IF = 0x6 + IPV6_MULTICAST_LOOP = 0x8 + IPV6_NEXTHOP = 0xd + IPV6_PAD1_OPT = 0x0 + IPV6_PATHMTU = 0x25 + IPV6_PKTINFO = 0xb + IPV6_PREFER_SRC_CGA = 0x20 + IPV6_PREFER_SRC_CGADEFAULT = 0x10 + IPV6_PREFER_SRC_CGAMASK = 0x30 + IPV6_PREFER_SRC_COA = 0x2 + IPV6_PREFER_SRC_DEFAULT = 0x15 + IPV6_PREFER_SRC_HOME = 0x1 + IPV6_PREFER_SRC_MASK = 0x3f + IPV6_PREFER_SRC_MIPDEFAULT = 0x1 + IPV6_PREFER_SRC_MIPMASK = 0x3 + IPV6_PREFER_SRC_NONCGA = 0x10 + IPV6_PREFER_SRC_PUBLIC = 0x4 + IPV6_PREFER_SRC_TMP = 0x8 + IPV6_PREFER_SRC_TMPDEFAULT = 0x4 + IPV6_PREFER_SRC_TMPMASK = 0xc + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x13 + IPV6_RECVHOPOPTS = 0x14 + IPV6_RECVPATHMTU = 0x24 + IPV6_RECVPKTINFO = 0x12 + IPV6_RECVRTHDR = 0x16 + IPV6_RECVRTHDRDSTOPTS = 0x17 + IPV6_RECVTCLASS = 0x19 + IPV6_RTHDR = 0x10 + IPV6_RTHDRDSTOPTS = 0x11 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SEC_OPT = 0x22 + IPV6_SRC_PREFERENCES = 0x23 + IPV6_TCLASS = 0x26 + IPV6_UNICAST_HOPS = 0x5 + IPV6_UNSPEC_SRC = 0x42 + IPV6_USE_MIN_MTU = 0x20 + IPV6_V6ONLY = 0x27 + IP_ADD_MEMBERSHIP = 0x13 + IP_ADD_SOURCE_MEMBERSHIP = 0x17 + IP_BLOCK_SOURCE = 0x15 + IP_BOUND_IF = 0x41 + IP_BROADCAST = 0x106 + IP_BROADCAST_TTL = 0x43 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPINIT_IF = 0x45 + IP_DONTFRAG = 0x1b + IP_DONTROUTE = 0x105 + IP_DROP_MEMBERSHIP = 0x14 + IP_DROP_SOURCE_MEMBERSHIP = 0x18 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x10 + IP_MULTICAST_LOOP = 0x12 + IP_MULTICAST_TTL = 0x11 + IP_NEXTHOP = 0x19 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x9 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVSLLA = 0xa + IP_RECVTOS = 0xc + IP_RECVTTL = 0xb + IP_RETOPTS = 0x8 + IP_REUSEADDR = 0x104 + IP_SEC_OPT = 0x22 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x16 + IP_UNSPEC_SRC = 0x42 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_ACCESS_DEFAULT = 0x6 + MADV_ACCESS_LWP = 0x7 + MADV_ACCESS_MANY = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NORMAL = 0x0 + MADV_PURGE = 0x9 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80 + MAP_ALIGN = 0x200 + MAP_ANON = 0x100 + MAP_ANONYMOUS = 0x100 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_INITDATA = 0x800 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + 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 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_DUPCTRL = 0x800 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 0x10 + MSG_NOSIGNAL = 0x200 + MSG_NOTIFICATION = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x20 + MSG_WAITALL = 0x40 + MSG_XPG4_2 = 0x8000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_OLDSYNC = 0x0 + MS_SYNC = 0x4 + M_FLUSH = 0x86 + NAME_MAX = 0xff + NEWDEV = 0x1 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x100 + NLDLY = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + OLDDEV = 0x0 + ONBITSMAJOR = 0x7 + ONBITSMINOR = 0x8 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPENFAIL = -0x1 + OPOST = 0x1 + O_ACCMODE = 0x600003 + O_APPEND = 0x8 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DIRECT = 0x2000000 + O_DIRECTORY = 0x1000000 + O_DSYNC = 0x40 + O_EXCL = 0x400 + O_EXEC = 0x400000 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x4 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NOLINKS = 0x40000 + O_NONBLOCK = 0x80 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x8000 + O_SEARCH = 0x200000 + O_SIOCGIFCONF = -0x3ff796ec + O_SIOCGLIFCONF = -0x3fef9688 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + O_XATTR = 0x4000 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xfffffffffffffffd + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_NUMBITS = 0x9 + RTA_SRC = 0x100 + RTF_BLACKHOLE = 0x1000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INDIRECT = 0x40000 + RTF_KERNEL = 0x80000 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTIRT = 0x10000 + RTF_PRIVATE = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SETSRC = 0x20000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTF_ZONE = 0x100000 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0xf + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_FREEADDR = 0x10 + RTM_GET = 0x4 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_VERSION = 0x3 + 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_AWARE = 0x1 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_RIGHTS = 0x1010 + SCM_TIMESTAMP = 0x1013 + SCM_UCRED = 0x1012 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIG2STR_MAX = 0x20 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDRT = -0x7fcf8df6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fdb96e0 + SIOCDELMULTI = -0x7fdf96ce + SIOCDELRT = -0x7fcf8df5 + SIOCDXARP = -0x7fff9658 + SIOCGARP = -0x3fdb96e1 + SIOCGDSTINFO = -0x3fff965c + SIOCGENADDR = -0x3fdf96ab + SIOCGENPSTATS = -0x3fdf96c7 + SIOCGETLSGCNT = -0x3fef8deb + SIOCGETNAME = 0x40107334 + SIOCGETPEER = 0x40107335 + SIOCGETPROP = -0x3fff8f44 + SIOCGETSGCNT = -0x3feb8deb + SIOCGETSYNC = -0x3fdf96d3 + SIOCGETVIFCNT = -0x3feb8dec + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fdf96f3 + SIOCGIFBRDADDR = -0x3fdf96e9 + SIOCGIFCONF = -0x3ff796a4 + SIOCGIFDSTADDR = -0x3fdf96f1 + SIOCGIFFLAGS = -0x3fdf96ef + SIOCGIFHWADDR = -0x3fdf9647 + SIOCGIFINDEX = -0x3fdf96a6 + SIOCGIFMEM = -0x3fdf96ed + SIOCGIFMETRIC = -0x3fdf96e5 + SIOCGIFMTU = -0x3fdf96ea + SIOCGIFMUXID = -0x3fdf96a8 + SIOCGIFNETMASK = -0x3fdf96e7 + SIOCGIFNUM = 0x40046957 + SIOCGIP6ADDRPOLICY = -0x3fff965e + SIOCGIPMSFILTER = -0x3ffb964c + SIOCGLIFADDR = -0x3f87968f + SIOCGLIFBINDING = -0x3f879666 + SIOCGLIFBRDADDR = -0x3f879685 + SIOCGLIFCONF = -0x3fef965b + SIOCGLIFDADSTATE = -0x3f879642 + SIOCGLIFDSTADDR = -0x3f87968d + SIOCGLIFFLAGS = -0x3f87968b + SIOCGLIFGROUPINFO = -0x3f4b9663 + SIOCGLIFGROUPNAME = -0x3f879664 + SIOCGLIFHWADDR = -0x3f879640 + SIOCGLIFINDEX = -0x3f87967b + SIOCGLIFLNKINFO = -0x3f879674 + SIOCGLIFMETRIC = -0x3f879681 + SIOCGLIFMTU = -0x3f879686 + SIOCGLIFMUXID = -0x3f87967d + SIOCGLIFNETMASK = -0x3f879683 + SIOCGLIFNUM = -0x3ff3967e + SIOCGLIFSRCOF = -0x3fef964f + SIOCGLIFSUBNET = -0x3f879676 + SIOCGLIFTOKEN = -0x3f879678 + SIOCGLIFUSESRC = -0x3f879651 + SIOCGLIFZONE = -0x3f879656 + SIOCGLOWAT = 0x40047303 + SIOCGMSFILTER = -0x3ffb964e + SIOCGPGRP = 0x40047309 + SIOCGSTAMP = -0x3fef9646 + SIOCGXARP = -0x3fff9659 + SIOCIFDETACH = -0x7fdf96c8 + SIOCILB = -0x3ffb9645 + SIOCLIFADDIF = -0x3f879691 + SIOCLIFDELND = -0x7f879673 + SIOCLIFGETND = -0x3f879672 + SIOCLIFREMOVEIF = -0x7f879692 + SIOCLIFSETND = -0x7f879671 + SIOCLOWER = -0x7fdf96d7 + SIOCSARP = -0x7fdb96e2 + SIOCSCTPGOPT = -0x3fef9653 + SIOCSCTPPEELOFF = -0x3ffb9652 + SIOCSCTPSOPT = -0x7fef9654 + SIOCSENABLESDP = -0x3ffb9649 + SIOCSETPROP = -0x7ffb8f43 + SIOCSETSYNC = -0x7fdf96d4 + SIOCSHIWAT = -0x7ffb8d00 + SIOCSIFADDR = -0x7fdf96f4 + SIOCSIFBRDADDR = -0x7fdf96e8 + SIOCSIFDSTADDR = -0x7fdf96f2 + SIOCSIFFLAGS = -0x7fdf96f0 + SIOCSIFINDEX = -0x7fdf96a5 + SIOCSIFMEM = -0x7fdf96ee + SIOCSIFMETRIC = -0x7fdf96e4 + SIOCSIFMTU = -0x7fdf96eb + SIOCSIFMUXID = -0x7fdf96a7 + SIOCSIFNAME = -0x7fdf96b7 + SIOCSIFNETMASK = -0x7fdf96e6 + SIOCSIP6ADDRPOLICY = -0x7fff965d + SIOCSIPMSFILTER = -0x7ffb964b + SIOCSLGETREQ = -0x3fdf96b9 + SIOCSLIFADDR = -0x7f879690 + SIOCSLIFBRDADDR = -0x7f879684 + SIOCSLIFDSTADDR = -0x7f87968e + SIOCSLIFFLAGS = -0x7f87968c + SIOCSLIFGROUPNAME = -0x7f879665 + SIOCSLIFINDEX = -0x7f87967a + SIOCSLIFLNKINFO = -0x7f879675 + SIOCSLIFMETRIC = -0x7f879680 + SIOCSLIFMTU = -0x7f879687 + SIOCSLIFMUXID = -0x7f87967c + SIOCSLIFNAME = -0x3f87967f + SIOCSLIFNETMASK = -0x7f879682 + SIOCSLIFPREFIX = -0x3f879641 + SIOCSLIFSUBNET = -0x7f879677 + SIOCSLIFTOKEN = -0x7f879679 + SIOCSLIFUSESRC = -0x7f879650 + SIOCSLIFZONE = -0x7f879655 + SIOCSLOWAT = -0x7ffb8cfe + SIOCSLSTAT = -0x7fdf96b8 + SIOCSMSFILTER = -0x7ffb964d + SIOCSPGRP = -0x7ffb8cf8 + SIOCSPROMISC = -0x7ffb96d0 + SIOCSQPTR = -0x3ffb9648 + SIOCSSDSTATS = -0x3fdf96d2 + SIOCSSESTATS = -0x3fdf96d1 + SIOCSXARP = -0x7fff965a + SIOCTMYADDR = -0x3ff79670 + SIOCTMYSITE = -0x3ff7966e + SIOCTONLINK = -0x3ff7966f + SIOCUPPER = -0x7fdf96d8 + SIOCX25RCV = -0x3fdf96c4 + SIOCX25TBL = -0x3fdf96c3 + SIOCX25XMT = -0x3fdf96c5 + SIOCXPROTO = 0x20007337 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NDELAY = 0x200000 + SOCK_NONBLOCK = 0x100000 + SOCK_RAW = 0x4 + SOCK_RDM = 0x5 + SOCK_SEQPACKET = 0x6 + SOCK_STREAM = 0x2 + SOCK_TYPE_MASK = 0xffff + SOL_FILTER = 0xfffc + SOL_PACKET = 0xfffd + SOL_ROUTE = 0xfffe + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ALL = 0x3f + SO_ALLZONES = 0x1014 + SO_ANON_MLP = 0x100a + SO_ATTACH_FILTER = 0x40000001 + SO_BAND = 0x4000 + SO_BROADCAST = 0x20 + SO_COPYOPT = 0x80000 + SO_DEBUG = 0x1 + SO_DELIM = 0x8000 + SO_DETACH_FILTER = 0x40000002 + SO_DGRAM_ERRIND = 0x200 + SO_DOMAIN = 0x100c + SO_DONTLINGER = -0x81 + SO_DONTROUTE = 0x10 + SO_ERROPT = 0x40000 + SO_ERROR = 0x1007 + SO_EXCLBIND = 0x1015 + SO_HIWAT = 0x10 + SO_ISNTTY = 0x800 + SO_ISTTY = 0x400 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOWAT = 0x20 + SO_MAC_EXEMPT = 0x100b + SO_MAC_IMPLICIT = 0x1016 + SO_MAXBLK = 0x100000 + SO_MAXPSZ = 0x8 + SO_MINPSZ = 0x4 + SO_MREADOFF = 0x80 + SO_MREADON = 0x40 + SO_NDELOFF = 0x200 + SO_NDELON = 0x100 + SO_NODELIM = 0x10000 + SO_OOBINLINE = 0x100 + SO_PROTOTYPE = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVPSH = 0x100d + SO_RCVTIMEO = 0x1006 + SO_READOPT = 0x1 + SO_RECVUCRED = 0x400 + SO_REUSEADDR = 0x4 + SO_SECATTR = 0x1011 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STRHOLD = 0x20000 + SO_TAIL = 0x200000 + SO_TIMESTAMP = 0x1013 + SO_TONSTOP = 0x2000 + SO_TOSTOP = 0x1000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_VRRP = 0x1017 + SO_WROFF = 0x2 + S_ENFMT = 0x400 + S_IAMB = 0x1ff + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFDOOR = 0xd000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFNAM = 0x5000 + S_IFPORT = 0xe000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_INSEM = 0x1 + S_INSHD = 0x2 + 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 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + 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 + TCP_EXCLBIND = 0x21 + TCP_INIT_CWND = 0x15 + TCP_KEEPALIVE = 0x8 + TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 + TCP_KEEPALIVE_THRESHOLD = 0x16 + TCP_KEEPCNT = 0x23 + TCP_KEEPIDLE = 0x22 + TCP_KEEPINTVL = 0x24 + TCP_LINGER2 = 0x1c + TCP_MAXSEG = 0x2 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOTIFY_THRESHOLD = 0x10 + TCP_RECVDSTADDR = 0x14 + TCP_RTO_INITIAL = 0x19 + TCP_RTO_MAX = 0x1b + TCP_RTO_MIN = 0x1a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETSF = 0x5410 + TCSETSW = 0x540f + TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOC = 0x5400 + TIOCCBRK = 0x747a + TIOCCDTR = 0x7478 + TIOCCILOOP = 0x746c + TIOCEXCL = 0x740d + TIOCFLUSH = 0x7410 + TIOCGETC = 0x7412 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x7414 + TIOCGPPS = 0x547d + TIOCGPPSEV = 0x547f + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5469 + TIOCGWINSZ = 0x5468 + TIOCHPCL = 0x7402 + TIOCKBOF = 0x5409 + TIOCKBON = 0x5408 + TIOCLBIC = 0x747e + TIOCLBIS = 0x747f + TIOCLGET = 0x747c + TIOCLSET = 0x747d + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMSET = 0x741a + 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 = 0x7471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7473 + TIOCREMOTE = 0x741e + TIOCSBRK = 0x747b + TIOCSCTTY = 0x7484 + TIOCSDTR = 0x7479 + TIOCSETC = 0x7411 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIGNAL = 0x741f + TIOCSILOOP = 0x746d + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x7415 + TIOCSPPS = 0x547e + TIOCSSOFTCAR = 0x546a + TIOCSTART = 0x746e + TIOCSTI = 0x7417 + TIOCSTOP = 0x746f + TIOCSWINSZ = 0x5467 + TOSTOP = 0x100 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCEOF = 0x8 + VCEOL = 0x9 + VDISCARD = 0xd + VDSUSP = 0xb + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VERASE2 = 0x11 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTATUS = 0x10 + VSTOP = 0x9 + VSUSP = 0xa + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WCONTFLG = 0xffff + WCONTINUED = 0x8 + WCOREFLG = 0x80 + WEXITED = 0x1 + WNOHANG = 0x40 + WNOWAIT = 0x80 + WOPTMASK = 0xcf + WRAP = 0x20000 + WSIGMASK = 0x7f + WSTOPFLG = 0x7f + WSTOPPED = 0x4 + WTRAPPED = 0x2 + WUNTRACED = 0x4 + XCASE = 0x4 + XTABS = 0x1800 +) + +// 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(0x39) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x2f) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x31) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINPROGRESS = syscall.Errno(0x96) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x85) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOCKUNMAPPED = syscall.Errno(0x48) + ELOOP = syscall.Errno(0x5a) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + 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) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + 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) + ENOTACTIVE = syscall.Errno(0x49) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x86) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTRECOVERABLE = syscall.Errno(0x3b) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x30) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x50) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0x3a) + 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) + EREMOTE = syscall.Errno(0x42) + ERESTART = syscall.Errno(0x5b) + 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) + 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) + SIGCANCEL = syscall.Signal(0x24) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGFREEZE = syscall.Signal(0x22) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x29) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x16) + SIGIOT = syscall.Signal(0x6) + SIGJVM1 = syscall.Signal(0x27) + SIGJVM2 = syscall.Signal(0x28) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x25) + SIGLWP = syscall.Signal(0x21) + 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) + SIGTHAW = syscall.Signal(0x23) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWAITING = syscall.Signal(0x20) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) + SIGXRES = syscall.Signal(0x26) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {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", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {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", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock situation detected/avoided"}, + {46, "ENOLCK", "no record locks available"}, + {47, "ECANCELED", "operation canceled"}, + {48, "ENOTSUP", "operation not supported"}, + {49, "EDQUOT", "disc quota exceeded"}, + {50, "EBADE", "bad exchange descriptor"}, + {51, "EBADR", "bad request descriptor"}, + {52, "EXFULL", "message tables full"}, + {53, "ENOANO", "anode table overflow"}, + {54, "EBADRQC", "bad request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock"}, + {57, "EBFONT", "bad font file format"}, + {58, "EOWNERDEAD", "owner of the lock died"}, + {59, "ENOTRECOVERABLE", "lock is not recoverable"}, + {60, "ENOSTR", "not a stream device"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of stream resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, + {73, "ENOTACTIVE", "facility is not active"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "not a data message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, + {87, "ELIBEXEC", "can not exec a shared library directly"}, + {88, "EILSEQ", "illegal byte sequence"}, + {89, "ENOSYS", "operation not applicable"}, + {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, + {91, "ERESTART", "error 91"}, + {92, "ESTRPIPE", "error 92"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "option not supported by protocol"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection because of reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {143, "ESHUTDOWN", "cannot send after socket shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale NFS file handle"}, +} + +// 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/Breakpoint Trap"}, + {6, "SIGABRT", "abort"}, + {7, "SIGEMT", "emulation Trap"}, + {8, "SIGFPE", "arithmetic 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, "SIGUSR1", "user Signal 1"}, + {17, "SIGUSR2", "user Signal 2"}, + {18, "SIGCHLD", "child Status Changed"}, + {19, "SIGPWR", "power-Fail/Restart"}, + {20, "SIGWINCH", "window Size Change"}, + {21, "SIGURG", "urgent Socket Condition"}, + {22, "SIGIO", "pollable Event"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped (user)"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual Timer Expired"}, + {29, "SIGPROF", "profiling Timer Expired"}, + {30, "SIGXCPU", "cpu Limit Exceeded"}, + {31, "SIGXFSZ", "file Size Limit Exceeded"}, + {32, "SIGWAITING", "no runnable lwp"}, + {33, "SIGLWP", "inter-lwp signal"}, + {34, "SIGFREEZE", "checkpoint Freeze"}, + {35, "SIGTHAW", "checkpoint Thaw"}, + {36, "SIGCANCEL", "thread Cancellation"}, + {37, "SIGLOST", "resource Lost"}, + {38, "SIGXRES", "resource Control Exceeded"}, + {39, "SIGJVM1", "reserved for JVM 1"}, + {40, "SIGJVM2", "reserved for JVM 2"}, + {41, "SIGINFO", "information Request"}, +} 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 0000000..1ec2b14 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -0,0 +1,990 @@ +// 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 + +// Hand edited based on zerrors_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + BRKINT = 0x0001 + CLOCAL = 0x1 + CLOCK_MONOTONIC = 0x1 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLONE_NEWIPC = 0x08000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x00020000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUTS = 0x04000000 + CLONE_PARENT = 0x00008000 + CS8 = 0x0030 + CSIZE = 0x0030 + ECHO = 0x00000008 + ECHONL = 0x00000001 + EFD_SEMAPHORE = 0x00002000 + EFD_CLOEXEC = 0x00001000 + EFD_NONBLOCK = 0x00000004 + EPOLL_CLOEXEC = 0x00001000 + EPOLL_CTL_ADD = 0 + EPOLL_CTL_MOD = 1 + EPOLL_CTL_DEL = 2 + EPOLLRDNORM = 0x0001 + EPOLLRDBAND = 0x0002 + EPOLLIN = 0x0003 + EPOLLOUT = 0x0004 + EPOLLWRBAND = 0x0008 + EPOLLPRI = 0x0010 + EPOLLERR = 0x0020 + EPOLLHUP = 0x0040 + EPOLLEXCLUSIVE = 0x20000000 + EPOLLONESHOT = 0x40000000 + FD_CLOEXEC = 0x01 + FD_CLOFORK = 0x02 + FD_SETSIZE = 0x800 + 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" + GRND_NONBLOCK = 1 + GRND_RANDOM = 2 + HUPCL = 0x0100 // Hang up on last close + IN_CLOEXEC = 0x00001000 + IN_NONBLOCK = 0x00000004 + IN_ACCESS = 0x00000001 + IN_MODIFY = 0x00000002 + IN_ATTRIB = 0x00000004 + IN_CLOSE_WRITE = 0x00000008 + IN_CLOSE_NOWRITE = 0x00000010 + IN_OPEN = 0x00000020 + IN_MOVED_FROM = 0x00000040 + IN_MOVED_TO = 0x00000080 + IN_CREATE = 0x00000100 + IN_DELETE = 0x00000200 + IN_DELETE_SELF = 0x00000400 + IN_MOVE_SELF = 0x00000800 + IN_UNMOUNT = 0x00002000 + IN_Q_OVERFLOW = 0x00004000 + IN_IGNORED = 0x00008000 + IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) + IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO) + IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | + IN_CLOSE | IN_OPEN | IN_MOVE | + IN_CREATE | IN_DELETE | IN_DELETE_SELF | + IN_MOVE_SELF) + IN_ONLYDIR = 0x01000000 + IN_DONT_FOLLOW = 0x02000000 + IN_EXCL_UNLINK = 0x04000000 + IN_MASK_CREATE = 0x10000000 + IN_MASK_ADD = 0x20000000 + IN_ISDIR = 0x40000000 + IN_ONESHOT = 0x80000000 + 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 + SOL_AH = 51 + IPPROTO_DSTOPTS = 60 + SOL_DSTOPTS = 60 + IPPROTO_EGP = 8 + SOL_EGP = 8 + IPPROTO_ESP = 50 + SOL_ESP = 50 + IPPROTO_FRAGMENT = 44 + SOL_FRAGMENT = 44 + IPPROTO_GGP = 2 + SOL_GGP = 2 + IPPROTO_HOPOPTS = 0 + SOL_HOPOPTS = 0 + IPPROTO_ICMP = 1 + SOL_ICMP = 1 + IPPROTO_ICMPV6 = 58 + SOL_ICMPV6 = 58 + IPPROTO_IDP = 22 + SOL_IDP = 22 + IPPROTO_IP = 0 + SOL_IP = 0 + IPPROTO_IPV6 = 41 + SOL_IPV6 = 41 + IPPROTO_MAX = 256 + SOL_MAX = 256 + IPPROTO_NONE = 59 + SOL_NONE = 59 + IPPROTO_PUP = 12 + SOL_PUP = 12 + IPPROTO_RAW = 255 + SOL_RAW = 255 + IPPROTO_ROUTING = 43 + SOL_ROUTING = 43 + IPPROTO_TCP = 6 + SOL_TCP = 6 + IPPROTO_UDP = 17 + SOL_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 = 14 + IP_UNBLOCK_SOURCE = 11 + ICMP6_FILTER = 1 + MCAST_INCLUDE = 0 + MCAST_EXCLUDE = 1 + MCAST_JOIN_GROUP = 40 + MCAST_LEAVE_GROUP = 41 + MCAST_JOIN_SOURCE_GROUP = 42 + MCAST_LEAVE_SOURCE_GROUP = 43 + MCAST_BLOCK_SOURCE = 44 + MCAST_UNBLOCK_SOURCE = 46 + ICANON = 0x0010 + ICRNL = 0x0002 + IEXTEN = 0x0020 + IGNBRK = 0x0004 + IGNCR = 0x0008 + INLCR = 0x0020 + ISIG = 0x0040 + ISTRIP = 0x0080 + IXON = 0x0200 + IXOFF = 0x0100 + LOCK_SH = 0x1 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_UN = 0x8 + 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 + __MAP_MEGA = 0x8 + __MAP_64 = 0x10 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MS_SYNC = 0x1 // msync - synchronous writes + MS_ASYNC = 0x2 // asynchronous writes + MS_INVALIDATE = 0x4 // invalidate mappings + MS_BIND = 0x00001000 + MS_MOVE = 0x00002000 + MS_NOSUID = 0x00000002 + MS_PRIVATE = 0x00040000 + MS_REC = 0x00004000 + MS_REMOUNT = 0x00008000 + MS_RDONLY = 0x00000001 + MS_UNBINDABLE = 0x00020000 + MNT_DETACH = 0x00000004 + ZOSDSFS_SUPER_MAGIC = 0x44534653 // zOS DSFS + NFS_SUPER_MAGIC = 0x6969 // NFS + NSFS_MAGIC = 0x6e736673 // PROCNS + PROC_SUPER_MAGIC = 0x9fa0 // proc FS + ZOSTFS_SUPER_MAGIC = 0x544653 // zOS TFS + ZOSUFS_SUPER_MAGIC = 0x554653 // zOS UFS + ZOSZFS_SUPER_MAGIC = 0x5A4653 // zOS ZFS + 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 + NFDBITS = 0x20 + ONLRET = 0x0020 // NL performs CR function + O_ACCMODE = 0x03 + O_APPEND = 0x08 + O_ASYNCSIG = 0x0200 + O_CREAT = 0x80 + O_DIRECT = 0x00002000 + O_NOFOLLOW = 0x00004000 + O_DIRECTORY = 0x00008000 + O_PATH = 0x00080000 + O_CLOEXEC = 0x00001000 + O_EXCL = 0x40 + O_GETFL = 0x0F + O_LARGEFILE = 0x0400 + O_NDELAY = 0x4 + 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_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX + 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 + RLIMIT_MEMLOCK = 0x8 + RLIM_INFINITY = 2147483647 + SCHED_FIFO = 0x2 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x01 + SF_CLOSE = 0x00000002 + SF_REUSE = 0x00000001 + SHM_RND = 0x2 + SHM_RDONLY = 0x1 + SHMLBA = 0x1000 + IPC_STAT = 0x3 + IPC_SET = 0x2 + IPC_RMID = 0x1 + IPC_PRIVATE = 0x0 + IPC_CREAT = 0x1000000 + __IPC_MEGA = 0x4000000 + __IPC_SHAREAS = 0x20000000 + __IPC_BELOWBAR = 0x10000000 + IPC_EXCL = 0x2000000 + __IPC_GIGA = 0x8000000 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CLOEXEC = 0x00001000 + SOCK_CONN_DGRAM = 6 + SOCK_DGRAM = 2 + SOCK_NONBLOCK = 0x800 + 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 + WEXITED = 0x8 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WSTOPPED = 0x10 + 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_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + P_PID = 0 + P_PGID = 1 + P_ALL = 2 + PR_SET_NAME = 15 + PR_GET_NAME = 16 + PR_SET_NO_NEW_PRIVS = 38 + PR_GET_NO_NEW_PRIVS = 39 + PR_SET_DUMPABLE = 4 + PR_GET_DUMPABLE = 3 + PR_SET_PDEATHSIG = 1 + PR_GET_PDEATHSIG = 2 + PR_SET_CHILD_SUBREAPER = 36 + PR_GET_CHILD_SUBREAPER = 37 + AT_FDCWD = -100 + AT_EACCESS = 0x200 + AT_EMPTY_PATH = 0x1000 + AT_REMOVEDIR = 0x200 + RENAME_NOREPLACE = 1 << 0 + ST_RDONLY = 1 + ST_NOSUID = 2 +) + +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) + ENOATTR = Errno(265) + 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, "EDC5148I", "The named attribute or data not available."}, + {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."}, + {265, "EDC5265I", "The named attribute not available."}, + {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/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go new file mode 100644 index 0000000..586317c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -0,0 +1,40 @@ +// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. + +//go:build linux && (arm || arm64) + +package unix + +import "unsafe" + +// PtraceRegsArm is the registers used by arm binaries. +type PtraceRegsArm struct { + Uregs [18]uint32 +} + +// PtraceGetRegsArm fetches the registers used by arm binaries. +func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsArm sets the registers used by arm binaries. +func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsArm64 is the registers used by arm64 binaries. +type PtraceRegsArm64 struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsArm64 sets the registers used by arm64 binaries. +func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} 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 0000000..834d285 --- /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 ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), 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 ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go new file mode 100644 index 0000000..d7c881b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -0,0 +1,49 @@ +// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. + +//go:build linux && (mips || mips64) + +package unix + +import "unsafe" + +// PtraceRegsMips is the registers used by mips binaries. +type PtraceRegsMips struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips fetches the registers used by mips binaries. +func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips sets the registers used by mips binaries. +func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsMips64 is the registers used by mips64 binaries. +type PtraceRegsMips64 struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. +func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips64 sets the registers used by mips64 binaries. +func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go new file mode 100644 index 0000000..2d2de5d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -0,0 +1,49 @@ +// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. + +//go:build linux && (mipsle || mips64le) + +package unix + +import "unsafe" + +// PtraceRegsMipsle is the registers used by mipsle binaries. +type PtraceRegsMipsle struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. +func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMipsle sets the registers used by mipsle binaries. +func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsMips64le is the registers used by mips64le binaries. +type PtraceRegsMips64le struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. +func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips64le sets the registers used by mips64le binaries. +func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go new file mode 100644 index 0000000..5adc79f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -0,0 +1,79 @@ +// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. + +//go:build linux && (386 || amd64) + +package unix + +import "unsafe" + +// PtraceRegs386 is the registers used by 386 binaries. +type PtraceRegs386 struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +// PtraceGetRegs386 fetches the registers used by 386 binaries. +func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegs386 sets the registers used by 386 binaries. +func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsAmd64 is the registers used by amd64 binaries. +type PtraceRegsAmd64 struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. +func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. +func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s new file mode 100644 index 0000000..b77ff5d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s @@ -0,0 +1,364 @@ +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x +#include "textflag.h" + +// provide the address of function variable to be fixed up. + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Flistxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fremovexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fgetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fsetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·accept4(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Removexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Dup3(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Dirfd(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCreate(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCreate1(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollCtl(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollPwait(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·EpollWait(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Eventfd(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Faccessat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fchmodat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fchownat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fdatasync(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·fstatat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lgetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lsetxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Fstatfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Futimes(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Futimesat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Getrandom(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyInit(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyInit1(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyAddWatch(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·InotifyRmWatch(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Listxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Llistxattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lremovexattr(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Lutimes(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Statfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Syncfs(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unshare(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Linkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mkdirat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Mknodat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·PivotRoot(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Prctl(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Prlimit(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Renameat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Renameat2(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Sethostname(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Setns(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Symlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·Unlinkat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·openat(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·openat2(SB), R8 + MOVD R8, ret+0(FP) + RET + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +TEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8 + MOVD $·utimensat(SB), R8 + MOVD R8, ret+0(FP) + RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go new file mode 100644 index 0000000..6ea64a3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -0,0 +1,1461 @@ +// 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 + +package unix + +/* +#include <stdint.h> +#include <stddef.h> +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int fsync_range(int, int, long long, long long); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +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); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +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 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); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +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); +long long lseek64(int, long long, int); +uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + wpid = Pid_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req int, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { + r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + r = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + val = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsyncRange(fd int, how int, start int64, length int64) (err error) { + r0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.acct(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 Chdir(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chdir(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 Chroot(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chroot(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 Close(fd int) (err error) { + r0, er := C.close(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, er := C.dup(C.int(oldfd)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + C.exit(C.int(code)) + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + r0, er := C.fchdir(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + r0, er := C.fchmod(C.int(fd), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + r0, er := C.fdatasync(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, er := C.getpgid(C.int(pid)) + pgid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pid int) { + r0, _ := C.getpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := C.getpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := C.getppid() + 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, er := C.getpriority(C.int(which), C.int(who)) + prio = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, er := C.getsid(C.int(pid)) + sid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + r0, er := C.kill(C.int(pid), C.int(sig)) + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + 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 Mkdir(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + 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 Readlink(path string, buf []byte) (n int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + var _p2 int + _p2 = len(buf) + r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) + 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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) + _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) + r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + r0, er := C.setpgid(C.int(pid), C.int(pgid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, er := C.setsid() + pid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + r0, er := C.setuid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + r0, er := C.setgid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) + if r0 == -1 && er != nil { + err = er + } + 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) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + C.sync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) + ticks = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := C.umask(C.int(mask)) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + 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 Dup2(oldfd int, newfd int) (err error) { + r0, er := C.dup2(C.int(oldfd), C.int(newfd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 + } + return +} + +// 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) { + _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 { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + r0, er := C.ftruncate(C.int(fd), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := C.getegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := C.geteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := C.getgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := C.getuid() + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + r0, er := C.listen(C.int(s), C.int(n)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + r0, er := C.pause() + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + 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 pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + 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 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) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + r0, er := C.setregid(C.int(rgid), C.int(egid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + r0, er := C.setreuid(C.int(ruid), C.int(euid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + r0, er := C.shutdown(C.int(fd), C.int(how)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) + n = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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(statptr)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + nn = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + 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) { + r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) + 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 sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + 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, 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 + } + 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, 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 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + r0, er := C.mlockall(C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + r0, er := C.munlockall() + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) + if r0 == -1 && er != nil { + err = er + } + 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, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) + tt = Time_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// 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 { + err = er + } + 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, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) + off = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) + xaddr = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go new file mode 100644 index 0000000..99ee439 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -0,0 +1,1420 @@ +// 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 + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + 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, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) + 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 := callaccept(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 getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) + wpid = Pid_t(r0) + 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 int, arg uintptr) (err error) { + _, e1 := callioctl(fd, req, arg) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { + _, e1 := callioctl_ptr(fd, req, arg) + 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) (r int, err error) { + r0, e1 := callfcntl(fd, cmd, uintptr(arg)) + r = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) + 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 := callfcntl(uintptr(fd), 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 fsyncRange(fd int, how int, start int64, length int64) (err error) { + _, e1 := callfsync_range(fd, how, start, length) + 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 := callacct(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 Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callchdir(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 Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callchroot(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 Close(fd int) (err error) { + _, e1 := callclose(fd) + 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 := calldup(oldfd) + 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) { + callexit(code) + 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 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + 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 := callfchdir(fd) + 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 := callfchmod(fd, mode) + 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 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + 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 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) + 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 := callfdatasync(fd) + 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 := callgetpgid(pid) + 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() (pid int) { + r0, _ := callgetpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := callgetpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := callgetppid() + 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 := callgetpriority(which, who) + prio = 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 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) + 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 := callgetsid(pid) + sid = 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 Signal) (err error) { + _, e1 := callkill(pid, int(sig)) + 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 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), 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 Mkdir(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) + 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 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), 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 := callmkfifo(uintptr(unsafe.Pointer(_p0)), 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) + if err != nil { + return + } + _, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev) + 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 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) + 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 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) + 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 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, 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, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) + fd = 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), 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 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 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 Renameat(olddirfd int, 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 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), 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 Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) + 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 := callsetpgid(pid, pgid) + 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 := callsetsid() + 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 := callsettimeofday(uintptr(unsafe.Pointer(tv))) + 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 := callsetuid(uid) + 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 := callsetgid(uid) + 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 := callsetpriority(which, who, prio) + if e1 != 0 { + err = errnoErr(e1) + } + 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 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + callsync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) + 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, _ := callumask(mask) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, e1 := calluname(uintptr(unsafe.Pointer(buf))) + 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 := callunlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), 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 Dup2(oldfd int, newfd int) (err error) { + _, e1 := calldup2(oldfd, newfd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, e1 := callposix_fadvise64(fd, offset, length, advice) + 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 := callfchown(fd, uid, gid) + 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 := callfstat(fd, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) + 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 := callftruncate(fd, length) + 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, _ := callgetegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := callgeteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := callgetgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := callgetuid() + uid = int(r0) + 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 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) + 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 := calllisten(s, n) + 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 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, e1 := callpause() + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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) + 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 := callsetregid(rgid, egid) + 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 := callsetreuid(ruid, euid) + 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 := callshutdown(fd, how) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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(statptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + 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 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) + 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 := callbind(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 := callconnect(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 := callgetgroups(n, uintptr(unsafe.Pointer(list))) + 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 := callsetgroups(n, uintptr(unsafe.Pointer(list))) + 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 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) + 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 := callsetsockopt(s, level, name, uintptr(val), vallen) + 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 := callsocket(domain, typ, 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 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) + 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 := callgetpeername(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 := callgetsockname(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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), 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 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), 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 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), 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 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), 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 munmap(addr uintptr, length uintptr) (err error) { + _, e1 := callmunmap(addr, length) + 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) + 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 := callmlockall(flags) + 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) + 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 := callmunlockall() + 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 := callpipe(uintptr(unsafe.Pointer(p))) + 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 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, 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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, e1 := calltime(uintptr(unsafe.Pointer(t))) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsystemcfg(label int) (n uint64) { + r0, _ := callgetsystemcfg(label) + n = uint64(r0) + return +} + +// 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 { + 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 := calllseek(fd, offset, 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} 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 new file mode 100644 index 0000000..b68a783 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -0,0 +1,1188 @@ +// 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 && gc + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fsync_range fsync_range "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" +//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" +//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" +//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_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" +//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" +//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_lseek lseek "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" + +//go:linkname libc_utimes libc_utimes +//go:linkname libc_utimensat libc_utimensat +//go:linkname libc_getcwd libc_getcwd +//go:linkname libc_accept libc_accept +//go:linkname libc_getdirent libc_getdirent +//go:linkname libc_wait4 libc_wait4 +//go:linkname libc_ioctl libc_ioctl +//go:linkname libc_fcntl libc_fcntl +//go:linkname libc_fsync_range libc_fsync_range +//go:linkname libc_acct libc_acct +//go:linkname libc_chdir libc_chdir +//go:linkname libc_chroot libc_chroot +//go:linkname libc_close libc_close +//go:linkname libc_dup libc_dup +//go:linkname libc_exit libc_exit +//go:linkname libc_faccessat libc_faccessat +//go:linkname libc_fchdir libc_fchdir +//go:linkname libc_fchmod libc_fchmod +//go:linkname libc_fchmodat libc_fchmodat +//go:linkname libc_fchownat libc_fchownat +//go:linkname libc_fdatasync libc_fdatasync +//go:linkname libc_getpgid libc_getpgid +//go:linkname libc_getpgrp libc_getpgrp +//go:linkname libc_getpid libc_getpid +//go:linkname libc_getppid libc_getppid +//go:linkname libc_getpriority libc_getpriority +//go:linkname libc_getrusage libc_getrusage +//go:linkname libc_getsid libc_getsid +//go:linkname libc_kill libc_kill +//go:linkname libc_syslog libc_syslog +//go:linkname libc_mkdir libc_mkdir +//go:linkname libc_mkdirat libc_mkdirat +//go:linkname libc_mkfifo libc_mkfifo +//go:linkname libc_mknod libc_mknod +//go:linkname libc_mknodat libc_mknodat +//go:linkname libc_nanosleep libc_nanosleep +//go:linkname libc_open64 libc_open64 +//go:linkname libc_openat libc_openat +//go:linkname libc_read libc_read +//go:linkname libc_readlink libc_readlink +//go:linkname libc_renameat libc_renameat +//go:linkname libc_setdomainname libc_setdomainname +//go:linkname libc_sethostname libc_sethostname +//go:linkname libc_setpgid libc_setpgid +//go:linkname libc_setsid libc_setsid +//go:linkname libc_settimeofday libc_settimeofday +//go:linkname libc_setuid libc_setuid +//go:linkname libc_setgid libc_setgid +//go:linkname libc_setpriority libc_setpriority +//go:linkname libc_statx libc_statx +//go:linkname libc_sync libc_sync +//go:linkname libc_times libc_times +//go:linkname libc_umask libc_umask +//go:linkname libc_uname libc_uname +//go:linkname libc_unlink libc_unlink +//go:linkname libc_unlinkat libc_unlinkat +//go:linkname libc_ustat libc_ustat +//go:linkname libc_write libc_write +//go:linkname libc_dup2 libc_dup2 +//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 +//go:linkname libc_fchown libc_fchown +//go:linkname libc_fstat libc_fstat +//go:linkname libc_fstatat libc_fstatat +//go:linkname libc_fstatfs libc_fstatfs +//go:linkname libc_ftruncate libc_ftruncate +//go:linkname libc_getegid libc_getegid +//go:linkname libc_geteuid libc_geteuid +//go:linkname libc_getgid libc_getgid +//go:linkname libc_getuid libc_getuid +//go:linkname libc_lchown libc_lchown +//go:linkname libc_listen libc_listen +//go:linkname libc_lstat libc_lstat +//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 +//go:linkname libc_shutdown libc_shutdown +//go:linkname libc_splice libc_splice +//go:linkname libc_stat libc_stat +//go:linkname libc_statfs libc_statfs +//go:linkname libc_truncate libc_truncate +//go:linkname libc_bind libc_bind +//go:linkname libc_connect libc_connect +//go:linkname libc_getgroups libc_getgroups +//go:linkname libc_setgroups libc_setgroups +//go:linkname libc_getsockopt libc_getsockopt +//go:linkname libc_setsockopt libc_setsockopt +//go:linkname libc_socket libc_socket +//go:linkname libc_socketpair libc_socketpair +//go:linkname libc_getpeername libc_getpeername +//go:linkname libc_getsockname libc_getsockname +//go:linkname libc_recvfrom libc_recvfrom +//go:linkname libc_sendto libc_sendto +//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 +//go:linkname libc_mlock libc_mlock +//go:linkname libc_mlockall libc_mlockall +//go:linkname libc_msync libc_msync +//go:linkname libc_munlock libc_munlock +//go:linkname libc_munlockall libc_munlockall +//go:linkname libc_pipe libc_pipe +//go:linkname libc_poll libc_poll +//go:linkname libc_gettimeofday libc_gettimeofday +//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_lseek libc_lseek +//go:linkname libc_mmap64 libc_mmap64 + +type syscallFunc uintptr + +var ( + libc_utimes, + libc_utimensat, + libc_getcwd, + libc_accept, + libc_getdirent, + libc_wait4, + libc_ioctl, + libc_fcntl, + libc_fsync_range, + libc_acct, + libc_chdir, + libc_chroot, + libc_close, + libc_dup, + libc_exit, + libc_faccessat, + libc_fchdir, + libc_fchmod, + libc_fchmodat, + libc_fchownat, + libc_fdatasync, + libc_getpgid, + libc_getpgrp, + libc_getpid, + libc_getppid, + libc_getpriority, + libc_getrusage, + libc_getsid, + libc_kill, + libc_syslog, + libc_mkdir, + libc_mkdirat, + libc_mkfifo, + libc_mknod, + libc_mknodat, + libc_nanosleep, + libc_open64, + libc_openat, + libc_read, + libc_readlink, + libc_renameat, + libc_setdomainname, + libc_sethostname, + libc_setpgid, + libc_setsid, + libc_settimeofday, + libc_setuid, + libc_setgid, + libc_setpriority, + libc_statx, + libc_sync, + libc_times, + libc_umask, + libc_uname, + libc_unlink, + libc_unlinkat, + libc_ustat, + libc_write, + libc_dup2, + libc_posix_fadvise64, + libc_fchown, + libc_fstat, + libc_fstatat, + libc_fstatfs, + libc_ftruncate, + libc_getegid, + libc_geteuid, + libc_getgid, + libc_getuid, + libc_lchown, + libc_listen, + libc_lstat, + libc_pause, + libc_pread64, + libc_pwrite64, + libc_select, + libc_pselect, + libc_setregid, + libc_setreuid, + libc_shutdown, + libc_splice, + libc_stat, + libc_statfs, + libc_truncate, + libc_bind, + libc_connect, + libc_getgroups, + libc_setgroups, + libc_getsockopt, + libc_setsockopt, + libc_socket, + libc_socketpair, + libc_getpeername, + libc_getsockname, + libc_recvfrom, + libc_sendto, + libc_nrecvmsg, + libc_nsendmsg, + libc_munmap, + libc_madvise, + libc_mprotect, + libc_mlock, + libc_mlockall, + libc_msync, + libc_munlock, + libc_munlockall, + libc_pipe, + libc_poll, + libc_gettimeofday, + libc_time, + libc_utime, + libc_getsystemcfg, + libc_umount, + libc_getrlimit, + libc_lseek, + libc_mmap64 syscallFunc +) + +// Implemented in runtime/syscall_aix.go. +func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) + return +} + +// 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + 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 new file mode 100644 index 0000000..0a87450 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -0,0 +1,1069 @@ +// 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 && gccgo + +package unix + +/* +#include <stdint.h> +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int fsync_range(int, int, long long, long long); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +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); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +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 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); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +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 getrlimit(int, uintptr_t); +long long lseek(int, long long, int); +uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "syscall" + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.acct(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chdir(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chroot(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.close(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup(C.int(oldfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.exit(C.int(code))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchdir(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fdatasync(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgrp()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getppid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpriority(C.int(which), C.int(who))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.kill(C.int(pid), C.int(sig))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setuid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sync()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.times(C.uintptr_t(tms))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umask(C.int(mask))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.uname(C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlink(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getegid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.geteuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.listen(C.int(s), C.int(n))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pause()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// 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() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlockall(C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlockall()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pipe(C.uintptr_t(p))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.time(C.uintptr_t(t))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsystemcfg(C.int(label))) + e1 = syscall.GetErrno() + return +} + +// 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() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go new file mode 100644 index 0000000..813c05b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -0,0 +1,2728 @@ +// go run mksyscall.go -tags darwin,amd64 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 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//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 + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//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 + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//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 + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//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 + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//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 + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//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 + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//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 + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//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 + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//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 + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//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 + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//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 + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//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 + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//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 + +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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//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 + +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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//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 + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//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 + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//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 + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//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 utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//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 + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//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 poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//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 + +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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//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 + +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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//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 + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//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 + +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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//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 + +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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//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 + +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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//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 + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//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 closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//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(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_getxattr_trampoline_addr, 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 +} + +var libc_getxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fgetxattr_trampoline_addr, 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 +} + +var libc_fgetxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_setxattr_trampoline_addr, 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 +} + +var libc_setxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsetxattr_trampoline_addr uintptr + +//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 + +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_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_removexattr_trampoline_addr uintptr + +//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 + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fremovexattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listxattr_trampoline_addr uintptr + +//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 + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flistxattr_trampoline_addr uintptr + +//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 + +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_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "/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(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//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(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//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 + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renamex_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameatx_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//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 pthread_chdir_np(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pthread_chdir_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pthread_fchdir_np(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pthread_fchdir_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { + var _p0 unsafe.Pointer + if len(iov) > 0 { + _p0 = unsafe.Pointer(&iov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connectx_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connectx connectx "/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(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendfile_trampoline_addr uintptr + +//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 + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmdt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmget_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//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 + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//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 + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//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 + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//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 + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//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 + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//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 + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//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(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//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(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//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(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//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(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//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 + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//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 + +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_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_exchangedata_trampoline_addr uintptr + +//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 + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//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 + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//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 + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//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 + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//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 + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//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 + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//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 + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//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(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//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(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//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 + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//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 + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//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 + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//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(libc_getdtablesize_trampoline_addr, 0, 0, 0) + size = int(r0) + return +} + +var libc_getdtablesize_trampoline_addr uintptr + +//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 + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//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 + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//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 + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//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 + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//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 + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//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 + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//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 + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//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 + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//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 + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//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 + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//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 + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//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(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//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(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//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 + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//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 + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//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 + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//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 + +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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//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 + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//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 + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//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 + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//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 + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//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 + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//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 + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//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 + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//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 + +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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//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 + +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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//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 + +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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//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 + +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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//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 + +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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//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 + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//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 + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//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 + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//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 + +func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(attrBuf) > 0 { + _p1 = unsafe.Pointer(&attrBuf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setattrlist_trampoline_addr uintptr + +//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 Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//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 + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//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 + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//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 + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//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 + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//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 + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//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 + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setprivexec_trampoline_addr uintptr + +//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 + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//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 + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//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 + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//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 + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//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 + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//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 + +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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//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 + +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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//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 + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//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 + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//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 + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//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 + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_undelete_trampoline_addr uintptr + +//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 + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//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 + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//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 + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//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 + +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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//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 + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//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 + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//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 + +func readv(fd int, iovecs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readv_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_preadv_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovecs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_writev_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwritev_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwritev pwritev "/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(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat64_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat64_trampoline_addr uintptr + +//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 + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs64_trampoline_addr uintptr + +//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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat64_trampoline_addr uintptr + +//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 + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat64_trampoline_addr uintptr + +//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(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//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) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat64_trampoline_addr uintptr + +//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 + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs64_trampoline_addr uintptr + +//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 new file mode 100644 index 0000000..fda3285 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -0,0 +1,799 @@ +// go run mkasm.go darwin amd64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renamex_np(SB) +GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) + +TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameatx_np(SB) +GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pthread_chdir_np(SB) +GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) + +TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pthread_fchdir_np(SB) +GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) + +TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connectx(SB) +GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmat(SB) +GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) + +TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmctl(SB) +GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) + +TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmdt(SB) +GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) + +TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmget(SB) +GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readv(SB) +GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) + +TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_preadv(SB) +GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 +DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) + +TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_writev(SB) +GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 +DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) + +TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwritev(SB) +GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) + +TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) +GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) + +TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) +GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) + +TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) +GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) + +TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) +GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) + +TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) +GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) +GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) + +TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) +GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(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 new file mode 100644 index 0000000..e6f58f3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -0,0 +1,2728 @@ +// go run mksyscall.go -tags darwin,arm64 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 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//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 + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//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 + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//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 + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//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 + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//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 + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//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 + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//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 + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//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 + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//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 + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//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 + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//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 + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//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 + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//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 + +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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//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 + +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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//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 + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//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 + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//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 + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//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 utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//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 + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//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 poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//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 + +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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//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 + +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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//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 + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//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 + +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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//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 + +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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//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 + +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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//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 + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//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 closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//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(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_getxattr_trampoline_addr, 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 +} + +var libc_getxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fgetxattr_trampoline_addr, 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 +} + +var libc_fgetxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_setxattr_trampoline_addr, 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 +} + +var libc_setxattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsetxattr_trampoline_addr uintptr + +//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 + +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_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_removexattr_trampoline_addr uintptr + +//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 + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fremovexattr_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listxattr_trampoline_addr uintptr + +//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 + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flistxattr_trampoline_addr uintptr + +//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 + +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_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "/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(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//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(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//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 + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renamex_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameatx_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//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 pthread_chdir_np(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pthread_chdir_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pthread_fchdir_np(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pthread_fchdir_np_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { + var _p0 unsafe.Pointer + if len(iov) > 0 { + _p0 = unsafe.Pointer(&iov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connectx_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connectx connectx "/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(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendfile_trampoline_addr uintptr + +//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 + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmdt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmget_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//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 + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//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 + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//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 + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//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 + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//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 + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//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 + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//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(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//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(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//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(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//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(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//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 + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//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 + +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_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_exchangedata_trampoline_addr uintptr + +//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 + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//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 + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//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 + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//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 + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//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 + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//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 + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//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 + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//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(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//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(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//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 + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//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 + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//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 + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//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(libc_getdtablesize_trampoline_addr, 0, 0, 0) + size = int(r0) + return +} + +var libc_getdtablesize_trampoline_addr uintptr + +//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 + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//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 + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//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 + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//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 + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//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 + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//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 + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//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 + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//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 + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//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 + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//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 + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//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 + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//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(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//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(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//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 + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//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 + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//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 + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//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 + +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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//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 + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//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 + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//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 + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//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 + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//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 + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//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 + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//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 + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//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 + +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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//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 + +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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//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 + +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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//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 + +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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//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 + +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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//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 + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//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 + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//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 + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//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 + +func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(attrBuf) > 0 { + _p1 = unsafe.Pointer(&attrBuf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setattrlist_trampoline_addr uintptr + +//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 Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//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 + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//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 + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//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 + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//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 + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//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 + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//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 + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setprivexec_trampoline_addr uintptr + +//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 + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//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 + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//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 + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//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 + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//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 + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//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 + +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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//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 + +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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//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 + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//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 + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//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 + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//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 + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_undelete_trampoline_addr uintptr + +//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 + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//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 + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//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 + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//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 + +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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//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 + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//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 + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//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 + +func readv(fd int, iovecs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readv_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_preadv_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovecs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_writev_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovecs) > 0 { + _p0 = unsafe.Pointer(&iovecs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwritev_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwritev pwritev "/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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//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 + +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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//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 + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//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 + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//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 + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//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(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//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) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//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 + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//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 new file mode 100644 index 0000000..7f8998b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -0,0 +1,799 @@ +// go run mkasm.go darwin arm64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renamex_np(SB) +GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) + +TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameatx_np(SB) +GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pthread_chdir_np(SB) +GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) + +TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pthread_fchdir_np(SB) +GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) + +TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connectx(SB) +GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmat(SB) +GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) + +TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmctl(SB) +GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) + +TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmdt(SB) +GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) + +TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmget(SB) +GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readv(SB) +GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) + +TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_preadv(SB) +GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 +DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) + +TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_writev(SB) +GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 +DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) + +TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwritev(SB) +GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go new file mode 100644 index 0000000..aad65fc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -0,0 +1,1666 @@ +// 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 + +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 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 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 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 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 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 extpwrite(fd int, p []byte, flags int, 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_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + 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 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 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 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 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) { + 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 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 +} + +// 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 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 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) + 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 Mknodat(fd 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(fd), 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) + 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 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 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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)), 0, uintptr(length)) + 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 := 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) + } + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go new file mode 100644 index 0000000..c009639 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -0,0 +1,1886 @@ +// 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 + +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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) + 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 CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + 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, 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 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) { + 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 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), uintptr(length>>32)) + 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 *uint64) (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_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 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) + 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(fdat 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(fdat), 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), uintptr(offset>>32), 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), uintptr(offset>>32), 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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), uintptr(length>>32)) + 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go new file mode 100644 index 0000000..7664df7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -0,0 +1,1886 @@ +// 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 + +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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) + 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 CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { + 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) + 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(fdat 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(fdat), 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go new file mode 100644 index 0000000..ae09918 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -0,0 +1,1886 @@ +// 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 + +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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) + 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 CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 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, 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 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) { + 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 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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 *uint64) (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_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) + 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) + 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(fdat 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(fdat), 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go new file mode 100644 index 0000000..11fd5d4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -0,0 +1,1886 @@ +// 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 + +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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) + 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 CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { + 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) + 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(fdat 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(fdat), 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go new file mode 100644 index 0000000..c3d2d65 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go @@ -0,0 +1,1886 @@ +// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && riscv64 + +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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) + 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 CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { + 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) + 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(fdat 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(fdat), 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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) + } + 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 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) + 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 +} 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 0000000..c698cbc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -0,0 +1,101 @@ +// 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 + +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:linkname procreadv libc_readv +//go:linkname procpreadv libc_preadv +//go:linkname procwritev libc_writev +//go:linkname procpwritev libc_pwritev +//go:linkname procaccept4 libc_accept4 + +var ( + procreadv, + procpreadv, + procwritev, + procpwritev, + procaccept4 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 = errnoErr(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 = errnoErr(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 = errnoErr(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 = errnoErr(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 = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go new file mode 100644 index 0000000..5cc1e8e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -0,0 +1,2240 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go:build linux + +package unix + +import ( + "syscall" + "unsafe" +) + +// 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 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 fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT2, 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + } + 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) + } + 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 Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { + _, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), 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 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 keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(restriction) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), 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 keyctlRestrictKeyring(cmd int, arg2 int) (err error) { + _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 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 ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (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 mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 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 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + 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 ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 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 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 ClockSettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_SETTIME, 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 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) + } + 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 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 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 Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { + r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) + fsfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsopen(fsName string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_FSOPEN, 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 Fspick(dirfd int, pathName string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { + _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 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 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 MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fromPathName) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(toPathName) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), 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 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 OpenTree(dfd int, fileName string, flags uint) (r int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fileName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + r = int(r0) + 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 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 pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (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, 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) + } + 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) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// 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 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) + } + r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(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 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(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_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + 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 mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0) + xaddr = uintptr(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, 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 Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT2, 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 nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, 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 PidfdOpen(pid int, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), 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 PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), 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 PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { + _, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), 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 shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getitimer(which int, currValue *Itimerval) (err error) { + _, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { + _, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { + _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) { + _, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { + _, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), 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 Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) { + _, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), 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 Mseal(b []byte, flags uint) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go new file mode 100644 index 0000000..4def3e9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -0,0 +1,486 @@ +// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && 386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + 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_FCHOWN32, 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 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(dirfd 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(dirfd), 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 Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) + 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, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(SYS_LCHOWN32, 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 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) + 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_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + 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 := RawSyscall(SYS_GETGROUPS32, 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 := RawSyscall(SYS_SETGROUPS32, 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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 *rlimit32) (err error) { + _, _, e1 := 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go new file mode 100644 index 0000000..fef2bc8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -0,0 +1,653 @@ +// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { + _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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) + 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go new file mode 100644 index 0000000..a9fd76a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -0,0 +1,601 @@ +// 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 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS32, 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 := RawSyscall(SYS_SETGROUPS32, 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 := 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 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 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 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 socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN32, 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 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(dirfd 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(dirfd), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + 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_LCHOWN32, 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 Listen(s int, n int) (err error) { + _, _, e1 := 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_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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 utimes(path string, times *[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(times)), 0) + 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + 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 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 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 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(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 *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) + 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) + 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 new file mode 100644 index 0000000..4600650 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -0,0 +1,552 @@ +// 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 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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) { + 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(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) (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 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_loong64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go new file mode 100644 index 0000000..c8987d2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go @@ -0,0 +1,486 @@ +// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && loong64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := 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 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_PREAD64, 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_PWRITE64, 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(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) (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 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_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go new file mode 100644 index 0000000..921f430 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -0,0 +1,653 @@ +// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mips + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 Listen(s int, n int) (err error) { + _, _, e1 := 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), 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 Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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_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 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(dirfd 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(dirfd), 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 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(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 *rlimit32) (err error) { + _, _, e1 := 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 Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go new file mode 100644 index 0000000..44f0678 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -0,0 +1,647 @@ +// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mips64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 Listen(s int, n int) (err error) { + _, _, e1 := 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go new file mode 100644 index 0000000..e7fa0ab --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -0,0 +1,636 @@ +// 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 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 Listen(s int, n int) (err error) { + _, _, e1 := 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go new file mode 100644 index 0000000..8c51256 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -0,0 +1,653 @@ +// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 Listen(s int, n int) (err error) { + _, _, e1 := 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), 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 Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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_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 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(dirfd 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(dirfd), 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 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(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 *rlimit32) (err error) { + _, _, e1 := 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 Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go new file mode 100644 index 0000000..7392fd4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go @@ -0,0 +1,658 @@ +// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 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 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(dirfd 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(dirfd), 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 Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length)) + 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { + _, _, e1 := 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_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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(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 *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) + 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) + 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go new file mode 100644 index 0000000..4118043 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -0,0 +1,704 @@ +// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { + _, _, e1 := 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_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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + 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, buf *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(buf)), 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 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) + 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go new file mode 100644 index 0000000..40c6ce7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -0,0 +1,704 @@ +// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc64le + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { + _, _, e1 := 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_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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + 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, buf *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(buf)), 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 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) + 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go new file mode 100644 index 0000000..2cfe34a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -0,0 +1,548 @@ +// 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 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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) { + 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 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_PREAD64, 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_PWRITE64, 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(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) (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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) { + var _p0 unsafe.Pointer + if len(pairs) > 0 { + _p0 = unsafe.Pointer(&pairs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go new file mode 100644 index 0000000..61e6f07 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -0,0 +1,495 @@ +// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && s390x + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + 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, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + 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 := 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 := 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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) + 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go new file mode 100644 index 0000000..834b842 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -0,0 +1,648 @@ +// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && sparc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + 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 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd 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(dirfd), 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, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + 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 Listen(s int, n int) (err error) { + _, _, e1 := 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_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 Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := 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 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + 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, buf *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(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go new file mode 100644 index 0000000..e91ebc1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -0,0 +1,1848 @@ +// 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 + +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 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 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 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]) + } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + 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 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 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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 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) { + 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 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 { + 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _, _ := 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 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) + 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 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) + 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 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) + 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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 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 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 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) + 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go new file mode 100644 index 0000000..be28bab --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -0,0 +1,1848 @@ +// 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 + +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 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 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 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]) + } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + 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 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 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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + 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 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) { + 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 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 { + 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 +} + +// 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 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) + 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 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) + 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 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) + 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)), 0, uintptr(offset), 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)), 0, uintptr(offset), 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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 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 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 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) + 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)), 0, uintptr(length)) + 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 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 := 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) + } + 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go new file mode 100644 index 0000000..fb587e8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -0,0 +1,1848 @@ +// 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 + +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 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 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 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]) + } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + 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 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 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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 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) { + 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 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 { + 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _, _ := 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 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) + 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 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) + 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 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) + 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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)), 0, uintptr(offset), uintptr(offset>>32)) + 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := 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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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 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 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 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) + 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go new file mode 100644 index 0000000..d576438 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -0,0 +1,1848 @@ +// 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 + +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 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 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 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]) + } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) + 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 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 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 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 +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + 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 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) { + 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 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 { + 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 +} + +// 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 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) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + 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) + 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 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) + 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 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) + 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 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) + 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)), 0, uintptr(offset), 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)), 0, uintptr(offset), 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + 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(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) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(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 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 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 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 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 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) + 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)), 0, uintptr(length)) + 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 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 := 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) + } + 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go new file mode 100644 index 0000000..1851df1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -l32 -openbsd -libc -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 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s new file mode 100644 index 0000000..0b43c69 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd 386 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go new file mode 100644 index 0000000..e1ec0db --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -openbsd -libc -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 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s new file mode 100644 index 0000000..880c6d6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd amd64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go new file mode 100644 index 0000000..7c8452a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -l32 -openbsd -arm -libc -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 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s new file mode 100644 index 0000000..b8ef95b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd arm +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go new file mode 100644 index 0000000..2ffdf86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -openbsd -libc -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. + +//go:build openbsd && arm64 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s new file mode 100644 index 0000000..2af3b5c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd arm64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go new file mode 100644 index 0000000..1da08d5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -openbsd -libc -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. + +//go:build openbsd && mips64 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s new file mode 100644 index 0000000..b7a2513 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd mips64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go new file mode 100644 index 0000000..6e85b0a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && ppc64 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s new file mode 100644 index 0000000..f15dadf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s @@ -0,0 +1,838 @@ +// go run mkasm.go openbsd ppc64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgroups(SB) + RET +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgroups(SB) + RET +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_wait4(SB) + RET +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_accept(SB) + RET +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_bind(SB) + RET +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_connect(SB) + RET +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socket(SB) + RET +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockopt(SB) + RET +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsockopt(SB) + RET +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpeername(SB) + RET +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockname(SB) + RET +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_shutdown(SB) + RET +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socketpair(SB) + RET +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvfrom(SB) + RET +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendto(SB) + RET +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvmsg(SB) + RET +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendmsg(SB) + RET +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kevent(SB) + RET +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimes(SB) + RET +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_futimes(SB) + RET +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_poll(SB) + RET +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_madvise(SB) + RET +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlock(SB) + RET +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlockall(SB) + RET +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mprotect(SB) + RET +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_msync(SB) + RET +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlock(SB) + RET +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlockall(SB) + RET +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pipe2(SB) + RET +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getdents(SB) + RET +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getcwd(SB) + RET +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getresuid(SB) + RET +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getresgid(SB) + RET +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ioctl(SB) + RET +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sysctl(SB) + RET +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fcntl(SB) + RET +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ppoll(SB) + RET +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_access(SB) + RET +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_adjtime(SB) + RET +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chdir(SB) + RET +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chflags(SB) + RET +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chmod(SB) + RET +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chown(SB) + RET +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chroot(SB) + RET +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_clock_gettime(SB) + RET +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_close(SB) + RET +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup(SB) + RET +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup2(SB) + RET +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup3(SB) + RET +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_exit(SB) + RET +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_faccessat(SB) + RET +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchdir(SB) + RET +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchflags(SB) + RET +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmod(SB) + RET +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmodat(SB) + RET +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchown(SB) + RET +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchownat(SB) + RET +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_flock(SB) + RET +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fpathconf(SB) + RET +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstat(SB) + RET +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatat(SB) + RET +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatfs(SB) + RET +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fsync(SB) + RET +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ftruncate(SB) + RET +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getegid(SB) + RET +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_geteuid(SB) + RET +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgid(SB) + RET +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgid(SB) + RET +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgrp(SB) + RET +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpid(SB) + RET +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getppid(SB) + RET +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpriority(SB) + RET +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrlimit(SB) + RET +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrtable(SB) + RET +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrusage(SB) + RET +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsid(SB) + RET +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_gettimeofday(SB) + RET +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getuid(SB) + RET +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_issetugid(SB) + RET +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kill(SB) + RET +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kqueue(SB) + RET +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lchown(SB) + RET +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_link(SB) + RET +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_linkat(SB) + RET +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_listen(SB) + RET +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lstat(SB) + RET +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdir(SB) + RET +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdirat(SB) + RET +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifo(SB) + RET +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifoat(SB) + RET +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknod(SB) + RET +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknodat(SB) + RET +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mount(SB) + RET +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_nanosleep(SB) + RET +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_open(SB) + RET +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_openat(SB) + RET +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pathconf(SB) + RET +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pread(SB) + RET +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pwrite(SB) + RET +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_read(SB) + RET +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlink(SB) + RET +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlinkat(SB) + RET +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rename(SB) + RET +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_renameat(SB) + RET +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_revoke(SB) + RET +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rmdir(SB) + RET +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lseek(SB) + RET +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_select(SB) + RET +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setegid(SB) + RET +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_seteuid(SB) + RET +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgid(SB) + RET +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setlogin(SB) + RET +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpgid(SB) + RET +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpriority(SB) + RET +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setregid(SB) + RET +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setreuid(SB) + RET +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresgid(SB) + RET +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresuid(SB) + RET +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setrtable(SB) + RET +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsid(SB) + RET +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_settimeofday(SB) + RET +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setuid(SB) + RET +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_stat(SB) + RET +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_statfs(SB) + RET +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlink(SB) + RET +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlinkat(SB) + RET +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sync(SB) + RET +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_truncate(SB) + RET +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_umask(SB) + RET +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlink(SB) + RET +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlinkat(SB) + RET +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unmount(SB) + RET +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_write(SB) + RET +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mmap(SB) + RET +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munmap(SB) + RET +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getfsstat(SB) + RET +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimensat(SB) + RET +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pledge(SB) + RET +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unveil(SB) + RET +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go new file mode 100644 index 0000000..28b487d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go @@ -0,0 +1,2323 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && riscv64 + +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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// 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(libc_recvfrom_trampoline_addr, 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 +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" + +// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pledge(promises *byte, execpromises *byte) (err error) { + _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pledge_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pledge pledge "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unveil(path *byte, flags *byte) (err error) { + _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unveil_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s new file mode 100644 index 0000000..1e7f321 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s @@ -0,0 +1,699 @@ +// go run mkasm.go openbsd riscv64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pledge(SB) +GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) + +TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unveil(SB) +GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go new file mode 100644 index 0000000..c654541 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -0,0 +1,2217 @@ +// 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 + +package unix + +import ( + "syscall" + "unsafe" +) + +//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" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" +//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" +//go:cgo_import_dynamic libc_utimes utimes "libc.so" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" +//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" +//go:cgo_import_dynamic libc_accept accept "libsocket.so" +//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" +//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" +//go:cgo_import_dynamic libc_acct acct "libc.so" +//go:cgo_import_dynamic libc___makedev __makedev "libc.so" +//go:cgo_import_dynamic libc___major __major "libc.so" +//go:cgo_import_dynamic libc___minor __minor "libc.so" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" +//go:cgo_import_dynamic libc_poll poll "libc.so" +//go:cgo_import_dynamic libc_access access "libc.so" +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" +//go:cgo_import_dynamic libc_chdir chdir "libc.so" +//go:cgo_import_dynamic libc_chmod chmod "libc.so" +//go:cgo_import_dynamic libc_chown chown "libc.so" +//go:cgo_import_dynamic libc_chroot chroot "libc.so" +//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" +//go:cgo_import_dynamic libc_close close "libc.so" +//go:cgo_import_dynamic libc_creat creat "libc.so" +//go:cgo_import_dynamic libc_dup dup "libc.so" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" +//go:cgo_import_dynamic libc_exit exit "libc.so" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" +//go:cgo_import_dynamic libc_fchown fchown "libc.so" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" +//go:cgo_import_dynamic libc_flock flock "libc.so" +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" +//go:cgo_import_dynamic libc_fstat fstat "libc.so" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" +//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" +//go:cgo_import_dynamic libc_getdents getdents "libc.so" +//go:cgo_import_dynamic libc_getgid getgid "libc.so" +//go:cgo_import_dynamic libc_getpid getpid "libc.so" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" +//go:cgo_import_dynamic libc_getegid getegid "libc.so" +//go:cgo_import_dynamic libc_getppid getppid "libc.so" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" +//go:cgo_import_dynamic libc_getsid getsid "libc.so" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" +//go:cgo_import_dynamic libc_getuid getuid "libc.so" +//go:cgo_import_dynamic libc_kill kill "libc.so" +//go:cgo_import_dynamic libc_lchown lchown "libc.so" +//go:cgo_import_dynamic libc_link link "libc.so" +//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc_lstat lstat "libc.so" +//go:cgo_import_dynamic libc_madvise madvise "libc.so" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" +//go:cgo_import_dynamic libc_mknod mknod "libc.so" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" +//go:cgo_import_dynamic libc_mlock mlock "libc.so" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" +//go:cgo_import_dynamic libc_msync msync "libc.so" +//go:cgo_import_dynamic libc_munlock munlock "libc.so" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" +//go:cgo_import_dynamic libc_open open "libc.so" +//go:cgo_import_dynamic libc_openat openat "libc.so" +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" +//go:cgo_import_dynamic libc_pause pause "libc.so" +//go:cgo_import_dynamic libc_pread pread "libc.so" +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" +//go:cgo_import_dynamic libc_read read "libc.so" +//go:cgo_import_dynamic libc_readlink readlink "libc.so" +//go:cgo_import_dynamic libc_rename rename "libc.so" +//go:cgo_import_dynamic libc_renameat renameat "libc.so" +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" +//go:cgo_import_dynamic libc_lseek lseek "libc.so" +//go:cgo_import_dynamic libc_select select "libc.so" +//go:cgo_import_dynamic libc_setegid setegid "libc.so" +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" +//go:cgo_import_dynamic libc_setgid setgid "libc.so" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" +//go:cgo_import_dynamic libc_setregid setregid "libc.so" +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" +//go:cgo_import_dynamic libc_setsid setsid "libc.so" +//go:cgo_import_dynamic libc_setuid setuid "libc.so" +//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" +//go:cgo_import_dynamic libc_stat stat "libc.so" +//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" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" +//go:cgo_import_dynamic libc_umask umask "libc.so" +//go:cgo_import_dynamic libc_uname uname "libc.so" +//go:cgo_import_dynamic libc_umount umount "libc.so" +//go:cgo_import_dynamic libc_unlink unlink "libc.so" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" +//go:cgo_import_dynamic libc_ustat ustat "libc.so" +//go:cgo_import_dynamic libc_utime utime "libc.so" +//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" +//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" +//go:cgo_import_dynamic libc_mmap mmap "libc.so" +//go:cgo_import_dynamic libc_munmap munmap "libc.so" +//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" +//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" +//go:cgo_import_dynamic libc_write write "libc.so" +//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" +//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" +//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" +//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" +//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" +//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" +//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" +//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" +//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" +//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" +//go:cgo_import_dynamic libc_port_create port_create "libc.so" +//go:cgo_import_dynamic libc_port_associate port_associate "libc.so" +//go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" +//go:cgo_import_dynamic libc_port_get port_get "libc.so" +//go:cgo_import_dynamic libc_port_getn port_getn "libc.so" +//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" +//go:cgo_import_dynamic libc_getmsg getmsg "libc.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 +//go:linkname procsetgroups libc_setgroups +//go:linkname procwait4 libc_wait4 +//go:linkname procgethostname libc_gethostname +//go:linkname procutimes libc_utimes +//go:linkname procutimensat libc_utimensat +//go:linkname procfcntl libc_fcntl +//go:linkname procfutimesat libc_futimesat +//go:linkname procaccept libc_accept +//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg +//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg +//go:linkname procacct libc_acct +//go:linkname proc__makedev libc___makedev +//go:linkname proc__major libc___major +//go:linkname proc__minor libc___minor +//go:linkname procioctl libc_ioctl +//go:linkname procpoll libc_poll +//go:linkname procAccess libc_access +//go:linkname procAdjtime libc_adjtime +//go:linkname procChdir libc_chdir +//go:linkname procChmod libc_chmod +//go:linkname procChown libc_chown +//go:linkname procChroot libc_chroot +//go:linkname procClockGettime libc_clockgettime +//go:linkname procClose libc_close +//go:linkname procCreat libc_creat +//go:linkname procDup libc_dup +//go:linkname procDup2 libc_dup2 +//go:linkname procExit libc_exit +//go:linkname procFaccessat libc_faccessat +//go:linkname procFchdir libc_fchdir +//go:linkname procFchmod libc_fchmod +//go:linkname procFchmodat libc_fchmodat +//go:linkname procFchown libc_fchown +//go:linkname procFchownat libc_fchownat +//go:linkname procFdatasync libc_fdatasync +//go:linkname procFlock libc_flock +//go:linkname procFpathconf libc_fpathconf +//go:linkname procFstat libc_fstat +//go:linkname procFstatat libc_fstatat +//go:linkname procFstatvfs libc_fstatvfs +//go:linkname procGetdents libc_getdents +//go:linkname procGetgid libc_getgid +//go:linkname procGetpid libc_getpid +//go:linkname procGetpgid libc_getpgid +//go:linkname procGetpgrp libc_getpgrp +//go:linkname procGeteuid libc_geteuid +//go:linkname procGetegid libc_getegid +//go:linkname procGetppid libc_getppid +//go:linkname procGetpriority libc_getpriority +//go:linkname procGetrlimit libc_getrlimit +//go:linkname procGetrusage libc_getrusage +//go:linkname procGetsid libc_getsid +//go:linkname procGettimeofday libc_gettimeofday +//go:linkname procGetuid libc_getuid +//go:linkname procKill libc_kill +//go:linkname procLchown libc_lchown +//go:linkname procLink libc_link +//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname procLstat libc_lstat +//go:linkname procMadvise libc_madvise +//go:linkname procMkdir libc_mkdir +//go:linkname procMkdirat libc_mkdirat +//go:linkname procMkfifo libc_mkfifo +//go:linkname procMkfifoat libc_mkfifoat +//go:linkname procMknod libc_mknod +//go:linkname procMknodat libc_mknodat +//go:linkname procMlock libc_mlock +//go:linkname procMlockall libc_mlockall +//go:linkname procMprotect libc_mprotect +//go:linkname procMsync libc_msync +//go:linkname procMunlock libc_munlock +//go:linkname procMunlockall libc_munlockall +//go:linkname procNanosleep libc_nanosleep +//go:linkname procOpen libc_open +//go:linkname procOpenat libc_openat +//go:linkname procPathconf libc_pathconf +//go:linkname procPause libc_pause +//go:linkname procpread libc_pread +//go:linkname procpwrite libc_pwrite +//go:linkname procread libc_read +//go:linkname procReadlink libc_readlink +//go:linkname procRename libc_rename +//go:linkname procRenameat libc_renameat +//go:linkname procRmdir libc_rmdir +//go:linkname proclseek libc_lseek +//go:linkname procSelect libc_select +//go:linkname procSetegid libc_setegid +//go:linkname procSeteuid libc_seteuid +//go:linkname procSetgid libc_setgid +//go:linkname procSethostname libc_sethostname +//go:linkname procSetpgid libc_setpgid +//go:linkname procSetpriority libc_setpriority +//go:linkname procSetregid libc_setregid +//go:linkname procSetreuid libc_setreuid +//go:linkname procSetsid libc_setsid +//go:linkname procSetuid libc_setuid +//go:linkname procshutdown libc_shutdown +//go:linkname procStat libc_stat +//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 +//go:linkname procFtruncate libc_ftruncate +//go:linkname procUmask libc_umask +//go:linkname procUname libc_uname +//go:linkname procumount libc_umount +//go:linkname procUnlink libc_unlink +//go:linkname procUnlinkat libc_unlinkat +//go:linkname procUstat libc_ustat +//go:linkname procUtime libc_utime +//go:linkname proc__xnet_bind libc___xnet_bind +//go:linkname proc__xnet_connect libc___xnet_connect +//go:linkname procmmap libc_mmap +//go:linkname procmunmap libc_munmap +//go:linkname procsendfile libc_sendfile +//go:linkname proc__xnet_sendto libc___xnet_sendto +//go:linkname proc__xnet_socket libc___xnet_socket +//go:linkname proc__xnet_socketpair libc___xnet_socketpair +//go:linkname procwrite libc_write +//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt +//go:linkname procgetpeername libc_getpeername +//go:linkname procsetsockopt libc_setsockopt +//go:linkname procrecvfrom libc_recvfrom +//go:linkname procgetpeerucred libc_getpeerucred +//go:linkname procucred_get libc_ucred_get +//go:linkname procucred_geteuid libc_ucred_geteuid +//go:linkname procucred_getegid libc_ucred_getegid +//go:linkname procucred_getruid libc_ucred_getruid +//go:linkname procucred_getrgid libc_ucred_getrgid +//go:linkname procucred_getsuid libc_ucred_getsuid +//go:linkname procucred_getsgid libc_ucred_getsgid +//go:linkname procucred_getpid libc_ucred_getpid +//go:linkname procucred_free libc_ucred_free +//go:linkname procport_create libc_port_create +//go:linkname procport_associate libc_port_associate +//go:linkname procport_dissociate libc_port_dissociate +//go:linkname procport_get libc_port_get +//go:linkname procport_getn libc_port_getn +//go:linkname procputmsg libc_putmsg +//go:linkname procgetmsg libc_getmsg + +var ( + procpipe, + procpipe2, + procgetsockname, + procGetcwd, + procgetgroups, + procsetgroups, + procwait4, + procgethostname, + procutimes, + procutimensat, + procfcntl, + procfutimesat, + procaccept, + proc__xnet_recvmsg, + proc__xnet_sendmsg, + procacct, + proc__makedev, + proc__major, + proc__minor, + procioctl, + procpoll, + procAccess, + procAdjtime, + procChdir, + procChmod, + procChown, + procChroot, + procClockGettime, + procClose, + procCreat, + procDup, + procDup2, + procExit, + procFaccessat, + procFchdir, + procFchmod, + procFchmodat, + procFchown, + procFchownat, + procFdatasync, + procFlock, + procFpathconf, + procFstat, + procFstatat, + procFstatvfs, + procGetdents, + procGetgid, + procGetpid, + procGetpgid, + procGetpgrp, + procGeteuid, + procGetegid, + procGetppid, + procGetpriority, + procGetrlimit, + procGetrusage, + procGetsid, + procGettimeofday, + procGetuid, + procKill, + procLchown, + procLink, + proc__xnet_llisten, + procLstat, + procMadvise, + procMkdir, + procMkdirat, + procMkfifo, + procMkfifoat, + procMknod, + procMknodat, + procMlock, + procMlockall, + procMprotect, + procMsync, + procMunlock, + procMunlockall, + procNanosleep, + procOpen, + procOpenat, + procPathconf, + procPause, + procpread, + procpwrite, + procread, + procReadlink, + procRename, + procRenameat, + procRmdir, + proclseek, + procSelect, + procSetegid, + procSeteuid, + procSetgid, + procSethostname, + procSetpgid, + procSetpriority, + procSetregid, + procSetreuid, + procSetsid, + procSetuid, + procshutdown, + procStat, + procStatvfs, + procSymlink, + procSync, + procSysconf, + procTimes, + procTruncate, + procFsync, + procFtruncate, + procUmask, + procUname, + procumount, + procUnlink, + procUnlinkat, + procUstat, + procUtime, + proc__xnet_bind, + proc__xnet_connect, + procmmap, + procmunmap, + procsendfile, + proc__xnet_sendto, + proc__xnet_socket, + proc__xnet_socketpair, + procwrite, + proc__xnet_getsockopt, + procgetpeername, + procsetsockopt, + procrecvfrom, + procgetpeerucred, + procucred_get, + procucred_geteuid, + procucred_getegid, + procucred_getruid, + procucred_getrgid, + procucred_getsuid, + procucred_getsgid, + procucred_getpid, + procucred_free, + procport_create, + procport_associate, + procport_dissociate, + procport_get, + procport_getn, + procputmsg, + procgetmsg syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 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 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 = 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 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 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 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 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 setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int32(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gethostname(buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 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 fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 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 futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 acct(path *byte) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __makedev(version int, major uint, minor uint) (val uint64) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) + val = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __major(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __minor(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlRet(fd int, req int, 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 = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (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 = 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 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 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 Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 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 Dup(fd int) (nfd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 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(oldfd int, newfd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 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) { + sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, 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 Fdatasync(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 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 Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, 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 Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 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, basep *uintptr) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 Getgid() (gid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 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, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 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() (pgid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 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 Geteuid() (euid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 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) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 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 Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 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 Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 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, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 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_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, 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 Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) + 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 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 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 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 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, 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 Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 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 Pause() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) + 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, 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 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + 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(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 = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 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 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs(path string, vfsstat *Statvfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// 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 = 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 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 Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + 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, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 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, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + 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 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, 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 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = 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 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_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 socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 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 socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, 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 write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, 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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, 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 recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_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 getpeerucred(fd uintptr, ucred *uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGet(pid int) (ucred uintptr, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) + ucred = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGeteuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetegid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetruid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetrgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetpid(ucred uintptr) (pid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredFree(ucred uintptr) { + sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_create() (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 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 port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 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 port_dissociate(port int, source int, object uintptr) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 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 port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 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 port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 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 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 = errnoErr(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 = errnoErr(e1) + } + return +} 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 0000000..7ccf66b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go @@ -0,0 +1,3458 @@ +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) + runtime.ExitSyscall() + val = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error)) + +var Flistxattr = enter_Flistxattr + +func enter_Flistxattr(fd int, dest []byte) (sz int, err error) { + funcref := get_FlistxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, "") == 0 { + *funcref = impl_Flistxattr + } else { + *funcref = error_Flistxattr + } + return (*funcref)(fd, dest) +} + +func error_Flistxattr(fd int, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FremovexattrAddr() *(func(fd int, attr string) (err error)) + +var Fremovexattr = enter_Fremovexattr + +func enter_Fremovexattr(fd int, attr string) (err error) { + funcref := get_FremovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Fremovexattr + } else { + *funcref = error_Fremovexattr + } + return (*funcref)(fd, attr) +} + +func error_Fremovexattr(fd int, attr string) (err error) { + err = ENOSYS + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error)) + +var Fgetxattr = enter_Fgetxattr + +func enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + funcref := get_FgetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, "") == 0 { + *funcref = impl_Fgetxattr + } else { + *funcref = error_Fgetxattr + } + return (*funcref)(fd, attr, dest) +} + +func error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(data) > 0 { + _p1 = unsafe.Pointer(&data[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error)) + +var Fsetxattr = enter_Fsetxattr + +func enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + funcref := get_FsetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, "") == 0 { + *funcref = impl_Fsetxattr + } else { + *funcref = error_Fsetxattr + } + return (*funcref)(fd, attr, data, flag) +} + +func error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { + err = ENOSYS + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)) + +var accept4 = enter_accept4 + +func enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + funcref := get_accept4Addr() + if funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, "") == 0 { + *funcref = impl_accept4 + } else { + *funcref = error_accept4 + } + return (*funcref)(s, rsa, addrlen, flags) +} + +func error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) + nn = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_RemovexattrAddr() *(func(path string, attr string) (err error)) + +var Removexattr = enter_Removexattr + +func enter_Removexattr(path string, attr string) (err error) { + funcref := get_RemovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Removexattr + } else { + *funcref = error_Removexattr + } + return (*funcref)(path, attr) +} + +func error_Removexattr(path string, attr string) (err error) { + err = ENOSYS + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + runtime.ExitSyscall() + ret = uintptr(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req int, arg uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag)) + runtime.ExitSyscall() + ret = uintptr(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + result = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag)) + runtime.ExitSyscall() + id = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Dup3(oldfd int, newfd int, flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error)) + +var Dup3 = enter_Dup3 + +func enter_Dup3(oldfd int, newfd int, flags int) (err error) { + funcref := get_Dup3Addr() + if funcptrtest(GetZosLibVec()+SYS_DUP3<<4, "") == 0 { + *funcref = impl_Dup3 + } else { + *funcref = error_Dup3 + } + return (*funcref)(oldfd, newfd, flags) +} + +func error_Dup3(oldfd int, newfd int, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Dirfd(dirp uintptr) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_DirfdAddr() *(func(dirp uintptr) (fd int, err error)) + +var Dirfd = enter_Dirfd + +func enter_Dirfd(dirp uintptr) (fd int, err error) { + funcref := get_DirfdAddr() + if funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, "") == 0 { + *funcref = impl_Dirfd + } else { + *funcref = error_Dirfd + } + return (*funcref)(dirp) +} + +func error_Dirfd(dirp uintptr) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_EpollCreate(size int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EpollCreateAddr() *(func(size int) (fd int, err error)) + +var EpollCreate = enter_EpollCreate + +func enter_EpollCreate(size int) (fd int, err error) { + funcref := get_EpollCreateAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, "") == 0 { + *funcref = impl_EpollCreate + } else { + *funcref = error_EpollCreate + } + return (*funcref)(size) +} + +func error_EpollCreate(size int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_EpollCreate1(flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EpollCreate1Addr() *(func(flags int) (fd int, err error)) + +var EpollCreate1 = enter_EpollCreate1 + +func enter_EpollCreate1(flags int) (fd int, err error) { + funcref := get_EpollCreate1Addr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, "") == 0 { + *funcref = impl_EpollCreate1 + } else { + *funcref = error_EpollCreate1 + } + return (*funcref)(flags) +} + +func error_EpollCreate1(flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error)) + +var EpollCtl = enter_EpollCtl + +func enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + funcref := get_EpollCtlAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, "") == 0 { + *funcref = impl_EpollCtl + } else { + *funcref = error_EpollCtl + } + return (*funcref)(epfd, op, fd, event) +} + +func error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask))) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error)) + +var EpollPwait = enter_EpollPwait + +func enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + funcref := get_EpollPwaitAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, "") == 0 { + *funcref = impl_EpollPwait + } else { + *funcref = error_EpollPwait + } + return (*funcref)(epfd, events, msec, sigmask) +} + +func error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { + n = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error)) + +var EpollWait = enter_EpollWait + +func enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + funcref := get_EpollWaitAddr() + if funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, "") == 0 { + *funcref = impl_EpollWait + } else { + *funcref = error_EpollWait + } + return (*funcref)(epfd, events, msec) +} + +func error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + n = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Errno2() (er2 int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4) + runtime.ExitSyscall() + er2 = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Eventfd(initval uint, flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error)) + +var Eventfd = enter_Eventfd + +func enter_Eventfd(initval uint, flags int) (fd int, err error) { + funcref := get_EventfdAddr() + if funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, "") == 0 { + *funcref = impl_Eventfd + } else { + *funcref = error_Eventfd + } + return (*funcref)(initval, flags) +} + +func error_Eventfd(initval uint, flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code)) + runtime.ExitSyscall() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) + +var Faccessat = enter_Faccessat + +func enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + funcref := get_FaccessatAddr() + if funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, "") == 0 { + *funcref = impl_Faccessat + } else { + *funcref = error_Faccessat + } + return (*funcref)(dirfd, path, mode, flags) +} + +func error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) + +var Fchmodat = enter_Fchmodat + +func enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + funcref := get_FchmodatAddr() + if funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, "") == 0 { + *funcref = impl_Fchmodat + } else { + *funcref = error_Fchmodat + } + return (*funcref)(dirfd, path, mode, flags) +} + +func error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error)) + +var Fchownat = enter_Fchownat + +func enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + funcref := get_FchownatAddr() + if funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, "") == 0 { + *funcref = impl_Fchownat + } else { + *funcref = error_Fchownat + } + return (*funcref)(fd, path, uid, gid, flags) +} + +func error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { + err = ENOSYS + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) + runtime.ExitSyscall() + retval = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fdatasync(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FdatasyncAddr() *(func(fd int) (err error)) + +var Fdatasync = enter_Fdatasync + +func enter_Fdatasync(fd int) (err error) { + funcref := get_FdatasyncAddr() + if funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, "") == 0 { + *funcref = impl_Fdatasync + } else { + *funcref = error_Fdatasync + } + return (*funcref)(fd) +} + +func error_Fdatasync(fd int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_LE_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error)) + +var fstatat = enter_fstatat + +func enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + funcref := get_fstatatAddr() + if funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, "") == 0 { + *funcref = impl_fstatat + } else { + *funcref = error_fstatat + } + return (*funcref)(dirfd, path, stat, flags) +} + +func error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error)) + +var Lgetxattr = enter_Lgetxattr + +func enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + funcref := get_LgetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, "") == 0 { + *funcref = impl_Lgetxattr + } else { + *funcref = error_Lgetxattr + } + return (*funcref)(link, attr, dest) +} + +func error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) + +var Lsetxattr = enter_Lsetxattr + +func enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + funcref := get_LsetxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, "") == 0 { + *funcref = impl_Lsetxattr + } else { + *funcref = error_Lsetxattr + } + return (*funcref)(path, attr, data, flags) +} + +func error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Fstatfs(fd int, buf *Statfs_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error)) + +var Fstatfs = enter_Fstatfs + +func enter_Fstatfs(fd int, buf *Statfs_t) (err error) { + funcref := get_FstatfsAddr() + if funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, "") == 0 { + *funcref = impl_Fstatfs + } else { + *funcref = error_Fstatfs + } + return (*funcref)(fd, buf) +} + +func error_Fstatfs(fd int, buf *Statfs_t) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, stat *Statvfs_t) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Futimes(fd int, tv []Timeval) (err error) { + var _p0 unsafe.Pointer + if len(tv) > 0 { + _p0 = unsafe.Pointer(&tv[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FutimesAddr() *(func(fd int, tv []Timeval) (err error)) + +var Futimes = enter_Futimes + +func enter_Futimes(fd int, tv []Timeval) (err error) { + funcref := get_FutimesAddr() + if funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, "") == 0 { + *funcref = impl_Futimes + } else { + *funcref = error_Futimes + } + return (*funcref)(fd, tv) +} + +func error_Futimes(fd int, tv []Timeval) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(tv) > 0 { + _p1 = unsafe.Pointer(&tv[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error)) + +var Futimesat = enter_Futimesat + +func enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + funcref := get_FutimesatAddr() + if funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, "") == 0 { + *funcref = impl_Futimesat + } else { + *funcref = error_Futimesat + } + return (*funcref)(dirfd, path, tv) +} + +func error_Futimesat(dirfd int, path string, tv []Timeval) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error)) + +var Getrandom = enter_Getrandom + +func enter_Getrandom(buf []byte, flags int) (n int, err error) { + funcref := get_GetrandomAddr() + if funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, "") == 0 { + *funcref = impl_Getrandom + } else { + *funcref = error_Getrandom + } + return (*funcref)(buf, flags) +} + +func error_Getrandom(buf []byte, flags int) (n int, err error) { + n = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyInit() (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyInitAddr() *(func() (fd int, err error)) + +var InotifyInit = enter_InotifyInit + +func enter_InotifyInit() (fd int, err error) { + funcref := get_InotifyInitAddr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, "") == 0 { + *funcref = impl_InotifyInit + } else { + *funcref = error_InotifyInit + } + return (*funcref)() +} + +func error_InotifyInit() (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyInit1(flags int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyInit1Addr() *(func(flags int) (fd int, err error)) + +var InotifyInit1 = enter_InotifyInit1 + +func enter_InotifyInit1(flags int) (fd int, err error) { + funcref := get_InotifyInit1Addr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, "") == 0 { + *funcref = impl_InotifyInit1 + } else { + *funcref = error_InotifyInit1 + } + return (*funcref)(flags) +} + +func error_InotifyInit1(flags int) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + runtime.ExitSyscall() + watchdesc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error)) + +var InotifyAddWatch = enter_InotifyAddWatch + +func enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + funcref := get_InotifyAddWatchAddr() + if funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, "") == 0 { + *funcref = impl_InotifyAddWatch + } else { + *funcref = error_InotifyAddWatch + } + return (*funcref)(fd, pathname, mask) +} + +func error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + watchdesc = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc)) + runtime.ExitSyscall() + success = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error)) + +var InotifyRmWatch = enter_InotifyRmWatch + +func enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + funcref := get_InotifyRmWatchAddr() + if funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, "") == 0 { + *funcref = impl_InotifyRmWatch + } else { + *funcref = error_InotifyRmWatch + } + return (*funcref)(fd, watchdesc) +} + +func error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + success = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error)) + +var Listxattr = enter_Listxattr + +func enter_Listxattr(path string, dest []byte) (sz int, err error) { + funcref := get_ListxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, "") == 0 { + *funcref = impl_Listxattr + } else { + *funcref = error_Listxattr + } + return (*funcref)(path, dest) +} + +func error_Listxattr(path string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + runtime.ExitSyscall() + sz = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error)) + +var Llistxattr = enter_Llistxattr + +func enter_Llistxattr(path string, dest []byte) (sz int, err error) { + funcref := get_LlistxattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, "") == 0 { + *funcref = impl_Llistxattr + } else { + *funcref = error_Llistxattr + } + return (*funcref)(path, dest) +} + +func error_Llistxattr(path string, dest []byte) (sz int, err error) { + sz = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LremovexattrAddr() *(func(path string, attr string) (err error)) + +var Lremovexattr = enter_Lremovexattr + +func enter_Lremovexattr(path string, attr string) (err error) { + funcref := get_LremovexattrAddr() + if funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, "") == 0 { + *funcref = impl_Lremovexattr + } else { + *funcref = error_Lremovexattr + } + return (*funcref)(path, attr) +} + +func error_Lremovexattr(path string, attr string) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Lutimes(path string, tv []Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(tv) > 0 { + _p1 = unsafe.Pointer(&tv[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LutimesAddr() *(func(path string, tv []Timeval) (err error)) + +var Lutimes = enter_Lutimes + +func enter_Lutimes(path string, tv []Timeval) (err error) { + funcref := get_LutimesAddr() + if funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, "") == 0 { + *funcref = impl_Lutimes + } else { + *funcref = error_Lutimes + } + return (*funcref)(path, tv) +} + +func error_Lutimes(path string, tv []Timeval) (err error) { + err = ENOSYS + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error)) + +var Statfs = enter_Statfs + +func enter_Statfs(path string, buf *Statfs_t) (err error) { + funcref := get_StatfsAddr() + if funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, "") == 0 { + *funcref = impl_Statfs + } else { + *funcref = error_Statfs + } + return (*funcref)(path, buf) +} + +func error_Statfs(path string, buf *Statfs_t) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Syncfs(fd int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SyncfsAddr() *(func(fd int) (err error)) + +var Syncfs = enter_Syncfs + +func enter_Syncfs(fd int) (err error) { + funcref := get_SyncfsAddr() + if funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, "") == 0 { + *funcref = impl_Syncfs + } else { + *funcref = error_Syncfs + } + return (*funcref)(fd) +} + +func error_Syncfs(fd int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms))) + runtime.ExitSyscall() + ticks = uintptr(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) + runtime.ExitSyscall() + lastsys = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) + runtime.ExitSyscall() + lastsys = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount_LE(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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unmount_LE(filesystem string, mtm int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(filesystem) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) + runtime.ExitSyscall() + ret = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Unshare(flags int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnshareAddr() *(func(flags int) (err error)) + +var Unshare = enter_Unshare + +func enter_Unshare(flags int) (err error) { + funcref := get_UnshareAddr() + if funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, "") == 0 { + *funcref = impl_Unshare + } else { + *funcref = error_Unshare + } + return (*funcref)(flags) +} + +func error_Unshare(flags int) (err error) { + err = ENOSYS + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4) + 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid)) + pgid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (pid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4) + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who)) + runtime.ExitSyscall() + prio = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrusage(who int, rusage *rusage_zos) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4) + runtime.ExitSyscall() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4) + runtime.ExitSyscall() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid)) + sid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4) + 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) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error)) + +var Linkat = enter_Linkat + +func enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { + funcref := get_LinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, "") == 0 { + *funcref = impl_Linkat + } else { + *funcref = error_Linkat + } + return (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags) +} + +func error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error)) + +var Mkdirat = enter_Mkdirat + +func enter_Mkdirat(dirfd int, path string, mode uint32) (err error) { + funcref := get_MkdiratAddr() + if funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, "") == 0 { + *funcref = impl_Mkdirat + } else { + *funcref = error_Mkdirat + } + return (*funcref)(dirfd, path, mode) +} + +func error_Mkdirat(dirfd int, path string, mode uint32) (err error) { + err = ENOSYS + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error)) + +var Mknodat = enter_Mknodat + +func enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + funcref := get_MknodatAddr() + if funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, "") == 0 { + *funcref = impl_Mknodat + } else { + *funcref = error_Mknodat + } + return (*funcref)(dirfd, path, mode, dev) +} + +func error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_PivotRoot(newroot string, oldroot string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(oldroot) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_PivotRootAddr() *(func(newroot string, oldroot string) (err error)) + +var PivotRoot = enter_PivotRoot + +func enter_PivotRoot(newroot string, oldroot string) (err error) { + funcref := get_PivotRootAddr() + if funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, "") == 0 { + *funcref = impl_PivotRoot + } else { + *funcref = error_PivotRoot + } + return (*funcref)(newroot, oldroot) +} + +func error_PivotRoot(newroot string, oldroot string) (err error) { + err = ENOSYS + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) + runtime.ExitSyscall() + n = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)) + +var Prctl = enter_Prctl + +func enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + funcref := get_PrctlAddr() + if funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, "") == 0 { + *funcref = impl_Prctl + } else { + *funcref = error_Prctl + } + return (*funcref)(option, arg2, arg3, arg4, arg5) +} + +func error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error)) + +var Prlimit = enter_Prlimit + +func enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + funcref := get_PrlimitAddr() + if funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, "") == 0 { + *funcref = impl_Prlimit + } else { + *funcref = error_Prlimit + } + return (*funcref)(pid, resource, newlimit, old) +} + +func error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + err = ENOSYS + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Renameat(olddirfd int, 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)) + +var Renameat = enter_Renameat + +func enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + funcref := get_RenameatAddr() + if funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, "") == 0 { + *funcref = impl_Renameat + } else { + *funcref = error_Renameat + } + return (*funcref)(olddirfd, oldpath, newdirfd, newpath) +} + +func error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)) + +var Renameat2 = enter_Renameat2 + +func enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + funcref := get_Renameat2Addr() + if funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, "") == 0 { + *funcref = impl_Renameat2 + } else { + *funcref = error_Renameat2 + } + return (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags) +} + +func error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + err = ENOSYS + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence)) + runtime.ExitSyscall() + off = int64(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SethostnameAddr() *(func(p []byte) (err error)) + +var Sethostname = enter_Sethostname + +func enter_Sethostname(p []byte) (err error) { + funcref := get_SethostnameAddr() + if funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, "") == 0 { + *funcref = impl_Sethostname + } else { + *funcref = error_Sethostname + } + return (*funcref)(p) +} + +func error_Sethostname(p []byte) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Setns(fd int, nstype int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SetnsAddr() *(func(fd int, nstype int) (err error)) + +var Setns = enter_Setns + +func enter_Setns(fd int, nstype int) (err error) { + funcref := get_SetnsAddr() + if funcptrtest(GetZosLibVec()+SYS_SETNS<<4, "") == 0 { + *funcref = impl_Setns + } else { + *funcref = error_Setns + } + return (*funcref)(fd, nstype) +} + +func error_Setns(fd int, nstype int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, lim *Rlimit) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid)) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4) + pid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Symlinkat(oldPath string, dirfd 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error)) + +var Symlinkat = enter_Symlinkat + +func enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { + funcref := get_SymlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, "") == 0 { + *funcref = impl_Symlinkat + } else { + *funcref = error_Symlinkat + } + return (*funcref)(oldPath, dirfd, newPath) +} + +func error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + runtime.EnterSyscall() + CallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4) + runtime.ExitSyscall() + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcgetattr(fildes int, termptr *Termios) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + runtime.EnterSyscall() + r0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask)) + runtime.ExitSyscall() + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error)) + +var Unlinkat = enter_Unlinkat + +func enter_Unlinkat(dirfd int, path string, flags int) (err error) { + funcref := get_UnlinkatAddr() + if funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, "") == 0 { + *funcref = impl_Unlinkat + } else { + *funcref = error_Unlinkat + } + return (*funcref)(dirfd, path, flags) +} + +func error_Unlinkat(dirfd int, path string, flags int) (err error) { + err = ENOSYS + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error)) + +var openat = enter_openat + +func enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + funcref := get_openatAddr() + if funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, "") == 0 { + *funcref = impl_openat + } else { + *funcref = error_openat + } + return (*funcref)(dirfd, path, flags, mode) +} + +func error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + fd = -1 + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)) + +var openat2 = enter_openat2 + +func enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + funcref := get_openat2Addr() + if funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, "") == 0 { + *funcref = impl_openat2 + } else { + *funcref = error_openat2 + } + return (*funcref)(dirfd, path, open_how, size) +} + +func error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + fd = -1 + err = ENOSYS + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func waitid(idType int, id int, info *Siginfo, options int) (err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + runtime.ExitSyscall() + wpid = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *timeval_zos) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p))) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval))) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags)) + runtime.ExitSyscall() + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +//go:nosplit +func get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error)) + +var utimensat = enter_utimensat + +func enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + funcref := get_utimensatAddr() + if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { + *funcref = impl_utimensat + } else { + *funcref = error_utimensat + } + return (*funcref)(dirfd, path, ts, flags) +} + +func error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { + err = ENOSYS + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Posix_openpt(oflag int) (fd int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag)) + runtime.ExitSyscall() + fd = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Grantpt(fildes int) (rc int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes)) + runtime.ExitSyscall() + rc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlockpt(fildes int) (rc int, err error) { + runtime.EnterSyscall() + r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes)) + runtime.ExitSyscall() + rc = int(r0) + if int64(r0) == -1 { + err = errnoErr2(e1, e2) + } + 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 new file mode 100644 index 0000000..3a58ae8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build 386 && 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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go new file mode 100644 index 0000000..dcb7a0e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build amd64 && 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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go new file mode 100644 index 0000000..db5a7bf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build arm && 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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go new file mode 100644 index 0000000..7be575a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go: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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go new file mode 100644 index 0000000..d6e3174 --- /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 + +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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go new file mode 100644 index 0000000..ee97157 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go @@ -0,0 +1,280 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build ppc64 && 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.power", []_C_int{6, 26}}, + {"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.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.video", []_C_int{1, 89}}, + {"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/zsysctl_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go new file mode 100644 index 0000000..35c3b91 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build riscv64 && 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.power", []_C_int{6, 26}}, + {"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.video", []_C_int{1, 89}}, + {"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_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go new file mode 100644 index 0000000..5edda76 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -0,0 +1,439 @@ +// 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 + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_KQUEUE_WORKLOOP_CTL = 530 + SYS___MACH_BRIDGE_REMOTE_TIME = 531 + SYS_MAXSYSCALL = 532 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go new file mode 100644 index 0000000..0dc9e8b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -0,0 +1,437 @@ +// 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 + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_MAXSYSCALL = 530 + SYS_INVALID = 63 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go new file mode 100644 index 0000000..308ddf3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -0,0 +1,316 @@ +// 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 + +package unix + +const ( + 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); } + 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, int timeout); } + SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } + SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + 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 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + 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_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + 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, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + 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, 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); } + 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 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, 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_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_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } + 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 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { int 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_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, 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(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); } + SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } + SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } + SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } + SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } + SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } + SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } + SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } + SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } + SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } + SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_CLOSEFROM = 474 // { int closefrom(int fd); } + SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } + SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } + SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } + SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } + SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } + SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } + SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } + SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } + SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } + SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } + SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } + SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } + SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } + SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } + SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } + SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } + SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } + SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } + SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } + SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } + SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } + SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } + SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } + SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } + SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } + SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } + SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } + SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } + SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } + SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } + SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } + SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } + SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } + SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } + SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } + SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } + SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } + SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } + SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_SWAPOFF = 529 // { int swapoff(char *name); } + SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } + SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } + SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } + SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } + 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, 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); } + SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } + SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } + SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } + 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 new file mode 100644 index 0000000..418664e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -0,0 +1,393 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && 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_args void + 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); } + 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_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + 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, 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); } + 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(u_int fd); } + 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 // { 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); } + SYS_CHROOT = 61 // { int chroot(char *path); } + 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_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(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, 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_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, 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, 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); } + 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___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, 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, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } + 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); } + SYS_RFORK = 251 // { int rfork(int flags); } + 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go new file mode 100644 index 0000000..34d0b86 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -0,0 +1,393 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && 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_args void + 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); } + 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_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + 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, 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); } + 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(u_int fd); } + 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 // { 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); } + SYS_CHROOT = 61 // { int chroot(char *path); } + 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_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(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, 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_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, 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, 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); } + 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___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, 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, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } + 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); } + SYS_RFORK = 251 // { int rfork(int flags); } + 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go new file mode 100644 index 0000000..b71cf45 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -0,0 +1,393 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && 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_args void + 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); } + 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_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + 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, 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); } + 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(u_int fd); } + 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 // { 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); } + SYS_CHROOT = 61 // { int chroot(char *path); } + 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_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(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, 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_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, 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, 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); } + 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___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, 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, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } + 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); } + SYS_RFORK = 251 // { int rfork(int flags); } + 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go new file mode 100644 index 0000000..e32df1c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -0,0 +1,393 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_args void + 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); } + 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_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + 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, 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); } + 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(u_int fd); } + 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 // { 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); } + SYS_CHROOT = 61 // { int chroot(char *path); } + 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_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(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, 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_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, 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, 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); } + 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___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, 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, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } + 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); } + SYS_RFORK = 251 // { int rfork(int flags); } + 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go new file mode 100644 index 0000000..15ad611 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go @@ -0,0 +1,393 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && 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_args void + 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); } + 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_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + 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, 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); } + 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(u_int fd); } + 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 // { 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); } + SYS_CHROOT = 61 // { int chroot(char *path); } + 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_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(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, 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_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, 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, 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); } + 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___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, 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, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } + 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); } + SYS_RFORK = 251 // { int rfork(int flags); } + 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } + 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, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go new file mode 100644 index 0000000..c79aaff --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -0,0 +1,465 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go new file mode 100644 index 0000000..5eb4506 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -0,0 +1,388 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux + +package unix + +const ( + SYS_READ = 0 + SYS_WRITE = 1 + SYS_OPEN = 2 + SYS_CLOSE = 3 + SYS_STAT = 4 + SYS_FSTAT = 5 + SYS_LSTAT = 6 + SYS_POLL = 7 + SYS_LSEEK = 8 + SYS_MMAP = 9 + SYS_MPROTECT = 10 + SYS_MUNMAP = 11 + SYS_BRK = 12 + SYS_RT_SIGACTION = 13 + SYS_RT_SIGPROCMASK = 14 + SYS_RT_SIGRETURN = 15 + SYS_IOCTL = 16 + SYS_PREAD64 = 17 + SYS_PWRITE64 = 18 + SYS_READV = 19 + SYS_WRITEV = 20 + SYS_ACCESS = 21 + SYS_PIPE = 22 + SYS_SELECT = 23 + SYS_SCHED_YIELD = 24 + SYS_MREMAP = 25 + SYS_MSYNC = 26 + SYS_MINCORE = 27 + SYS_MADVISE = 28 + SYS_SHMGET = 29 + SYS_SHMAT = 30 + SYS_SHMCTL = 31 + SYS_DUP = 32 + SYS_DUP2 = 33 + SYS_PAUSE = 34 + SYS_NANOSLEEP = 35 + SYS_GETITIMER = 36 + SYS_ALARM = 37 + SYS_SETITIMER = 38 + SYS_GETPID = 39 + SYS_SENDFILE = 40 + SYS_SOCKET = 41 + SYS_CONNECT = 42 + SYS_ACCEPT = 43 + SYS_SENDTO = 44 + SYS_RECVFROM = 45 + SYS_SENDMSG = 46 + SYS_RECVMSG = 47 + SYS_SHUTDOWN = 48 + SYS_BIND = 49 + SYS_LISTEN = 50 + SYS_GETSOCKNAME = 51 + SYS_GETPEERNAME = 52 + SYS_SOCKETPAIR = 53 + SYS_SETSOCKOPT = 54 + SYS_GETSOCKOPT = 55 + SYS_CLONE = 56 + SYS_FORK = 57 + SYS_VFORK = 58 + SYS_EXECVE = 59 + SYS_EXIT = 60 + SYS_WAIT4 = 61 + SYS_KILL = 62 + SYS_UNAME = 63 + SYS_SEMGET = 64 + SYS_SEMOP = 65 + SYS_SEMCTL = 66 + SYS_SHMDT = 67 + SYS_MSGGET = 68 + SYS_MSGSND = 69 + SYS_MSGRCV = 70 + SYS_MSGCTL = 71 + SYS_FCNTL = 72 + SYS_FLOCK = 73 + SYS_FSYNC = 74 + SYS_FDATASYNC = 75 + SYS_TRUNCATE = 76 + SYS_FTRUNCATE = 77 + SYS_GETDENTS = 78 + SYS_GETCWD = 79 + SYS_CHDIR = 80 + SYS_FCHDIR = 81 + SYS_RENAME = 82 + SYS_MKDIR = 83 + SYS_RMDIR = 84 + SYS_CREAT = 85 + SYS_LINK = 86 + SYS_UNLINK = 87 + SYS_SYMLINK = 88 + SYS_READLINK = 89 + SYS_CHMOD = 90 + SYS_FCHMOD = 91 + SYS_CHOWN = 92 + SYS_FCHOWN = 93 + SYS_LCHOWN = 94 + SYS_UMASK = 95 + SYS_GETTIMEOFDAY = 96 + SYS_GETRLIMIT = 97 + SYS_GETRUSAGE = 98 + SYS_SYSINFO = 99 + SYS_TIMES = 100 + SYS_PTRACE = 101 + SYS_GETUID = 102 + SYS_SYSLOG = 103 + SYS_GETGID = 104 + SYS_SETUID = 105 + SYS_SETGID = 106 + SYS_GETEUID = 107 + SYS_GETEGID = 108 + SYS_SETPGID = 109 + SYS_GETPPID = 110 + SYS_GETPGRP = 111 + SYS_SETSID = 112 + SYS_SETREUID = 113 + SYS_SETREGID = 114 + SYS_GETGROUPS = 115 + SYS_SETGROUPS = 116 + SYS_SETRESUID = 117 + SYS_GETRESUID = 118 + SYS_SETRESGID = 119 + SYS_GETRESGID = 120 + SYS_GETPGID = 121 + SYS_SETFSUID = 122 + SYS_SETFSGID = 123 + SYS_GETSID = 124 + SYS_CAPGET = 125 + SYS_CAPSET = 126 + SYS_RT_SIGPENDING = 127 + SYS_RT_SIGTIMEDWAIT = 128 + SYS_RT_SIGQUEUEINFO = 129 + SYS_RT_SIGSUSPEND = 130 + SYS_SIGALTSTACK = 131 + SYS_UTIME = 132 + SYS_MKNOD = 133 + SYS_USELIB = 134 + SYS_PERSONALITY = 135 + SYS_USTAT = 136 + SYS_STATFS = 137 + SYS_FSTATFS = 138 + SYS_SYSFS = 139 + SYS_GETPRIORITY = 140 + SYS_SETPRIORITY = 141 + SYS_SCHED_SETPARAM = 142 + SYS_SCHED_GETPARAM = 143 + SYS_SCHED_SETSCHEDULER = 144 + SYS_SCHED_GETSCHEDULER = 145 + SYS_SCHED_GET_PRIORITY_MAX = 146 + SYS_SCHED_GET_PRIORITY_MIN = 147 + SYS_SCHED_RR_GET_INTERVAL = 148 + SYS_MLOCK = 149 + SYS_MUNLOCK = 150 + SYS_MLOCKALL = 151 + SYS_MUNLOCKALL = 152 + SYS_VHANGUP = 153 + SYS_MODIFY_LDT = 154 + SYS_PIVOT_ROOT = 155 + SYS__SYSCTL = 156 + SYS_PRCTL = 157 + SYS_ARCH_PRCTL = 158 + SYS_ADJTIMEX = 159 + SYS_SETRLIMIT = 160 + SYS_CHROOT = 161 + SYS_SYNC = 162 + SYS_ACCT = 163 + SYS_SETTIMEOFDAY = 164 + SYS_MOUNT = 165 + SYS_UMOUNT2 = 166 + SYS_SWAPON = 167 + SYS_SWAPOFF = 168 + SYS_REBOOT = 169 + SYS_SETHOSTNAME = 170 + SYS_SETDOMAINNAME = 171 + SYS_IOPL = 172 + SYS_IOPERM = 173 + SYS_CREATE_MODULE = 174 + SYS_INIT_MODULE = 175 + SYS_DELETE_MODULE = 176 + SYS_GET_KERNEL_SYMS = 177 + SYS_QUERY_MODULE = 178 + SYS_QUOTACTL = 179 + SYS_NFSSERVCTL = 180 + SYS_GETPMSG = 181 + SYS_PUTPMSG = 182 + SYS_AFS_SYSCALL = 183 + SYS_TUXCALL = 184 + SYS_SECURITY = 185 + SYS_GETTID = 186 + SYS_READAHEAD = 187 + SYS_SETXATTR = 188 + SYS_LSETXATTR = 189 + SYS_FSETXATTR = 190 + SYS_GETXATTR = 191 + SYS_LGETXATTR = 192 + SYS_FGETXATTR = 193 + SYS_LISTXATTR = 194 + SYS_LLISTXATTR = 195 + SYS_FLISTXATTR = 196 + SYS_REMOVEXATTR = 197 + SYS_LREMOVEXATTR = 198 + SYS_FREMOVEXATTR = 199 + SYS_TKILL = 200 + SYS_TIME = 201 + SYS_FUTEX = 202 + SYS_SCHED_SETAFFINITY = 203 + SYS_SCHED_GETAFFINITY = 204 + SYS_SET_THREAD_AREA = 205 + SYS_IO_SETUP = 206 + SYS_IO_DESTROY = 207 + SYS_IO_GETEVENTS = 208 + SYS_IO_SUBMIT = 209 + SYS_IO_CANCEL = 210 + SYS_GET_THREAD_AREA = 211 + SYS_LOOKUP_DCOOKIE = 212 + SYS_EPOLL_CREATE = 213 + SYS_EPOLL_CTL_OLD = 214 + SYS_EPOLL_WAIT_OLD = 215 + SYS_REMAP_FILE_PAGES = 216 + SYS_GETDENTS64 = 217 + SYS_SET_TID_ADDRESS = 218 + SYS_RESTART_SYSCALL = 219 + SYS_SEMTIMEDOP = 220 + SYS_FADVISE64 = 221 + SYS_TIMER_CREATE = 222 + SYS_TIMER_SETTIME = 223 + SYS_TIMER_GETTIME = 224 + SYS_TIMER_GETOVERRUN = 225 + SYS_TIMER_DELETE = 226 + SYS_CLOCK_SETTIME = 227 + SYS_CLOCK_GETTIME = 228 + SYS_CLOCK_GETRES = 229 + SYS_CLOCK_NANOSLEEP = 230 + SYS_EXIT_GROUP = 231 + SYS_EPOLL_WAIT = 232 + SYS_EPOLL_CTL = 233 + SYS_TGKILL = 234 + SYS_UTIMES = 235 + SYS_VSERVER = 236 + SYS_MBIND = 237 + SYS_SET_MEMPOLICY = 238 + SYS_GET_MEMPOLICY = 239 + SYS_MQ_OPEN = 240 + SYS_MQ_UNLINK = 241 + SYS_MQ_TIMEDSEND = 242 + SYS_MQ_TIMEDRECEIVE = 243 + SYS_MQ_NOTIFY = 244 + SYS_MQ_GETSETATTR = 245 + SYS_KEXEC_LOAD = 246 + SYS_WAITID = 247 + SYS_ADD_KEY = 248 + SYS_REQUEST_KEY = 249 + SYS_KEYCTL = 250 + SYS_IOPRIO_SET = 251 + SYS_IOPRIO_GET = 252 + SYS_INOTIFY_INIT = 253 + SYS_INOTIFY_ADD_WATCH = 254 + SYS_INOTIFY_RM_WATCH = 255 + SYS_MIGRATE_PAGES = 256 + SYS_OPENAT = 257 + SYS_MKDIRAT = 258 + SYS_MKNODAT = 259 + SYS_FCHOWNAT = 260 + SYS_FUTIMESAT = 261 + SYS_NEWFSTATAT = 262 + SYS_UNLINKAT = 263 + SYS_RENAMEAT = 264 + SYS_LINKAT = 265 + SYS_SYMLINKAT = 266 + SYS_READLINKAT = 267 + SYS_FCHMODAT = 268 + SYS_FACCESSAT = 269 + SYS_PSELECT6 = 270 + SYS_PPOLL = 271 + SYS_UNSHARE = 272 + SYS_SET_ROBUST_LIST = 273 + SYS_GET_ROBUST_LIST = 274 + SYS_SPLICE = 275 + SYS_TEE = 276 + SYS_SYNC_FILE_RANGE = 277 + SYS_VMSPLICE = 278 + SYS_MOVE_PAGES = 279 + SYS_UTIMENSAT = 280 + SYS_EPOLL_PWAIT = 281 + SYS_SIGNALFD = 282 + SYS_TIMERFD_CREATE = 283 + SYS_EVENTFD = 284 + SYS_FALLOCATE = 285 + SYS_TIMERFD_SETTIME = 286 + SYS_TIMERFD_GETTIME = 287 + SYS_ACCEPT4 = 288 + SYS_SIGNALFD4 = 289 + SYS_EVENTFD2 = 290 + SYS_EPOLL_CREATE1 = 291 + SYS_DUP3 = 292 + SYS_PIPE2 = 293 + SYS_INOTIFY_INIT1 = 294 + SYS_PREADV = 295 + SYS_PWRITEV = 296 + SYS_RT_TGSIGQUEUEINFO = 297 + SYS_PERF_EVENT_OPEN = 298 + SYS_RECVMMSG = 299 + SYS_FANOTIFY_INIT = 300 + SYS_FANOTIFY_MARK = 301 + SYS_PRLIMIT64 = 302 + SYS_NAME_TO_HANDLE_AT = 303 + SYS_OPEN_BY_HANDLE_AT = 304 + SYS_CLOCK_ADJTIME = 305 + SYS_SYNCFS = 306 + SYS_SENDMMSG = 307 + SYS_SETNS = 308 + SYS_GETCPU = 309 + SYS_PROCESS_VM_READV = 310 + SYS_PROCESS_VM_WRITEV = 311 + SYS_KCMP = 312 + SYS_FINIT_MODULE = 313 + SYS_SCHED_SETATTR = 314 + SYS_SCHED_GETATTR = 315 + SYS_RENAMEAT2 = 316 + SYS_SECCOMP = 317 + SYS_GETRANDOM = 318 + SYS_MEMFD_CREATE = 319 + SYS_KEXEC_FILE_LOAD = 320 + SYS_BPF = 321 + SYS_EXECVEAT = 322 + SYS_USERFAULTFD = 323 + SYS_MEMBARRIER = 324 + SYS_MLOCK2 = 325 + SYS_COPY_FILE_RANGE = 326 + SYS_PREADV2 = 327 + SYS_PWRITEV2 = 328 + SYS_PKEY_MPROTECT = 329 + SYS_PKEY_ALLOC = 330 + SYS_PKEY_FREE = 331 + SYS_STATX = 332 + SYS_IO_PGETEVENTS = 333 + SYS_RSEQ = 334 + SYS_URETPROBE = 335 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go new file mode 100644 index 0000000..05e5029 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -0,0 +1,429 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux + +package unix + +const ( + SYS_SYSCALL_MASK = 0 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go new file mode 100644 index 0000000..38c53ec --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -0,0 +1,332 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_RENAMEAT = 38 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_NEWFSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go new file mode 100644 index 0000000..31d2e71 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -0,0 +1,328 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_NEWFSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go new file mode 100644 index 0000000..f4184a3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -0,0 +1,449 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_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 + SYS_MOUNT_SETATTR = 4442 + SYS_QUOTACTL_FD = 4443 + SYS_LANDLOCK_CREATE_RULESET = 4444 + SYS_LANDLOCK_ADD_RULE = 4445 + SYS_LANDLOCK_RESTRICT_SELF = 4446 + SYS_PROCESS_MRELEASE = 4448 + SYS_FUTEX_WAITV = 4449 + SYS_SET_MEMPOLICY_HOME_NODE = 4450 + SYS_CACHESTAT = 4451 + SYS_FCHMODAT2 = 4452 + SYS_MAP_SHADOW_STACK = 4453 + SYS_FUTEX_WAKE = 4454 + SYS_FUTEX_WAIT = 4455 + SYS_FUTEX_REQUEUE = 4456 + SYS_STATMOUNT = 4457 + SYS_LISTMOUNT = 4458 + SYS_LSM_GET_SELF_ATTR = 4459 + SYS_LSM_SET_SELF_ATTR = 4460 + SYS_LSM_LIST_MODULES = 4461 + SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go new file mode 100644 index 0000000..05b9962 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -0,0 +1,379 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + 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 + SYS_MOUNT_SETATTR = 5442 + SYS_QUOTACTL_FD = 5443 + SYS_LANDLOCK_CREATE_RULESET = 5444 + SYS_LANDLOCK_ADD_RULE = 5445 + SYS_LANDLOCK_RESTRICT_SELF = 5446 + SYS_PROCESS_MRELEASE = 5448 + SYS_FUTEX_WAITV = 5449 + SYS_SET_MEMPOLICY_HOME_NODE = 5450 + SYS_CACHESTAT = 5451 + SYS_FCHMODAT2 = 5452 + SYS_MAP_SHADOW_STACK = 5453 + SYS_FUTEX_WAKE = 5454 + SYS_FUTEX_WAIT = 5455 + SYS_FUTEX_REQUEUE = 5456 + SYS_STATMOUNT = 5457 + SYS_LISTMOUNT = 5458 + SYS_LSM_GET_SELF_ATTR = 5459 + SYS_LSM_SET_SELF_ATTR = 5460 + SYS_LSM_LIST_MODULES = 5461 + SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go new file mode 100644 index 0000000..43a256e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -0,0 +1,379 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + 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 + SYS_MOUNT_SETATTR = 5442 + SYS_QUOTACTL_FD = 5443 + SYS_LANDLOCK_CREATE_RULESET = 5444 + SYS_LANDLOCK_ADD_RULE = 5445 + SYS_LANDLOCK_RESTRICT_SELF = 5446 + SYS_PROCESS_MRELEASE = 5448 + SYS_FUTEX_WAITV = 5449 + SYS_SET_MEMPOLICY_HOME_NODE = 5450 + SYS_CACHESTAT = 5451 + SYS_FCHMODAT2 = 5452 + SYS_MAP_SHADOW_STACK = 5453 + SYS_FUTEX_WAKE = 5454 + SYS_FUTEX_WAIT = 5455 + SYS_FUTEX_REQUEUE = 5456 + SYS_STATMOUNT = 5457 + SYS_LISTMOUNT = 5458 + SYS_LSM_GET_SELF_ATTR = 5459 + SYS_LSM_SET_SELF_ATTR = 5460 + SYS_LSM_LIST_MODULES = 5461 + SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go new file mode 100644 index 0000000..eea5ddf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -0,0 +1,449 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go: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_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 + SYS_MOUNT_SETATTR = 4442 + SYS_QUOTACTL_FD = 4443 + SYS_LANDLOCK_CREATE_RULESET = 4444 + SYS_LANDLOCK_ADD_RULE = 4445 + SYS_LANDLOCK_RESTRICT_SELF = 4446 + SYS_PROCESS_MRELEASE = 4448 + SYS_FUTEX_WAITV = 4449 + SYS_SET_MEMPOLICY_HOME_NODE = 4450 + SYS_CACHESTAT = 4451 + SYS_FCHMODAT2 = 4452 + SYS_MAP_SHADOW_STACK = 4453 + SYS_FUTEX_WAKE = 4454 + SYS_FUTEX_WAIT = 4455 + SYS_FUTEX_REQUEUE = 4456 + SYS_STATMOUNT = 4457 + SYS_LISTMOUNT = 4458 + SYS_LSM_GET_SELF_ATTR = 4459 + SYS_LSM_SET_SELF_ATTR = 4460 + SYS_LSM_LIST_MODULES = 4461 + SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go new file mode 100644 index 0000000..0d777bf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -0,0 +1,456 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && 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_VM86 = 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_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_FCNTL64 = 204 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_SENDFILE64 = 226 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_FADVISE64_64 = 254 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_FSTATAT64 = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go new file mode 100644 index 0000000..b446365 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -0,0 +1,428 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && 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_VM86 = 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_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go new file mode 100644 index 0000000..0c7d21c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -0,0 +1,428 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && 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_VM86 = 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_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go new file mode 100644 index 0000000..8405391 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -0,0 +1,333 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_NEWFSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_RISCV_HWPROBE = 258 + SYS_RISCV_FLUSH_ICACHE = 259 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go new file mode 100644 index 0000000..fcf1b79 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -0,0 +1,394 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux + +package unix + +const ( + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_RESTART_SYSCALL = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_PAUSE = 29 + SYS_UTIME = 30 + 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_SIGNAL = 48 + 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_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_LOOKUP_DCOOKIE = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + 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_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_GETDENTS = 141 + SYS_SELECT = 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_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + 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_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_GETRLIMIT = 191 + SYS_LCHOWN = 198 + SYS_GETUID = 199 + SYS_GETGID = 200 + SYS_GETEUID = 201 + SYS_GETEGID = 202 + SYS_SETREUID = 203 + SYS_SETREGID = 204 + SYS_GETGROUPS = 205 + SYS_SETGROUPS = 206 + SYS_FCHOWN = 207 + SYS_SETRESUID = 208 + SYS_GETRESUID = 209 + SYS_SETRESGID = 210 + SYS_GETRESGID = 211 + SYS_CHOWN = 212 + SYS_SETUID = 213 + SYS_SETGID = 214 + SYS_SETFSUID = 215 + SYS_SETFSGID = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_READAHEAD = 222 + SYS_SETXATTR = 224 + SYS_LSETXATTR = 225 + SYS_FSETXATTR = 226 + SYS_GETXATTR = 227 + SYS_LGETXATTR = 228 + SYS_FGETXATTR = 229 + SYS_LISTXATTR = 230 + SYS_LLISTXATTR = 231 + SYS_FLISTXATTR = 232 + SYS_REMOVEXATTR = 233 + SYS_LREMOVEXATTR = 234 + SYS_FREMOVEXATTR = 235 + SYS_GETTID = 236 + SYS_TKILL = 237 + SYS_FUTEX = 238 + SYS_SCHED_SETAFFINITY = 239 + SYS_SCHED_GETAFFINITY = 240 + SYS_TGKILL = 241 + 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_EPOLL_CREATE = 249 + SYS_EPOLL_CTL = 250 + SYS_EPOLL_WAIT = 251 + SYS_SET_TID_ADDRESS = 252 + SYS_FADVISE64 = 253 + SYS_TIMER_CREATE = 254 + SYS_TIMER_SETTIME = 255 + SYS_TIMER_GETTIME = 256 + SYS_TIMER_GETOVERRUN = 257 + SYS_TIMER_DELETE = 258 + SYS_CLOCK_SETTIME = 259 + SYS_CLOCK_GETTIME = 260 + SYS_CLOCK_GETRES = 261 + SYS_CLOCK_NANOSLEEP = 262 + SYS_STATFS64 = 265 + SYS_FSTATFS64 = 266 + SYS_REMAP_FILE_PAGES = 267 + SYS_MBIND = 268 + SYS_GET_MEMPOLICY = 269 + SYS_SET_MEMPOLICY = 270 + SYS_MQ_OPEN = 271 + SYS_MQ_UNLINK = 272 + SYS_MQ_TIMEDSEND = 273 + SYS_MQ_TIMEDRECEIVE = 274 + SYS_MQ_NOTIFY = 275 + SYS_MQ_GETSETATTR = 276 + SYS_KEXEC_LOAD = 277 + SYS_ADD_KEY = 278 + SYS_REQUEST_KEY = 279 + SYS_KEYCTL = 280 + SYS_WAITID = 281 + SYS_IOPRIO_SET = 282 + SYS_IOPRIO_GET = 283 + SYS_INOTIFY_INIT = 284 + SYS_INOTIFY_ADD_WATCH = 285 + SYS_INOTIFY_RM_WATCH = 286 + SYS_MIGRATE_PAGES = 287 + SYS_OPENAT = 288 + SYS_MKDIRAT = 289 + SYS_MKNODAT = 290 + SYS_FCHOWNAT = 291 + SYS_FUTIMESAT = 292 + SYS_NEWFSTATAT = 293 + SYS_UNLINKAT = 294 + SYS_RENAMEAT = 295 + SYS_LINKAT = 296 + SYS_SYMLINKAT = 297 + SYS_READLINKAT = 298 + SYS_FCHMODAT = 299 + SYS_FACCESSAT = 300 + SYS_PSELECT6 = 301 + SYS_PPOLL = 302 + SYS_UNSHARE = 303 + SYS_SET_ROBUST_LIST = 304 + SYS_GET_ROBUST_LIST = 305 + SYS_SPLICE = 306 + SYS_SYNC_FILE_RANGE = 307 + SYS_TEE = 308 + SYS_VMSPLICE = 309 + SYS_MOVE_PAGES = 310 + SYS_GETCPU = 311 + SYS_EPOLL_PWAIT = 312 + SYS_UTIMES = 313 + SYS_FALLOCATE = 314 + SYS_UTIMENSAT = 315 + SYS_SIGNALFD = 316 + SYS_TIMERFD = 317 + SYS_EVENTFD = 318 + SYS_TIMERFD_CREATE = 319 + SYS_TIMERFD_SETTIME = 320 + SYS_TIMERFD_GETTIME = 321 + SYS_SIGNALFD4 = 322 + SYS_EVENTFD2 = 323 + SYS_INOTIFY_INIT1 = 324 + SYS_PIPE2 = 325 + SYS_DUP3 = 326 + SYS_EPOLL_CREATE1 = 327 + SYS_PREADV = 328 + SYS_PWRITEV = 329 + SYS_RT_TGSIGQUEUEINFO = 330 + SYS_PERF_EVENT_OPEN = 331 + SYS_FANOTIFY_INIT = 332 + SYS_FANOTIFY_MARK = 333 + SYS_PRLIMIT64 = 334 + SYS_NAME_TO_HANDLE_AT = 335 + SYS_OPEN_BY_HANDLE_AT = 336 + SYS_CLOCK_ADJTIME = 337 + SYS_SYNCFS = 338 + SYS_SETNS = 339 + SYS_PROCESS_VM_READV = 340 + SYS_PROCESS_VM_WRITEV = 341 + SYS_S390_RUNTIME_INSTR = 342 + SYS_KCMP = 343 + SYS_FINIT_MODULE = 344 + SYS_SCHED_SETATTR = 345 + SYS_SCHED_GETATTR = 346 + SYS_RENAMEAT2 = 347 + SYS_SECCOMP = 348 + SYS_GETRANDOM = 349 + SYS_MEMFD_CREATE = 350 + SYS_BPF = 351 + SYS_S390_PCI_MMIO_WRITE = 352 + SYS_S390_PCI_MMIO_READ = 353 + SYS_EXECVEAT = 354 + SYS_USERFAULTFD = 355 + SYS_MEMBARRIER = 356 + SYS_RECVMMSG = 357 + SYS_SENDMMSG = 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_MLOCK2 = 374 + SYS_COPY_FILE_RANGE = 375 + SYS_PREADV2 = 376 + SYS_PWRITEV2 = 377 + SYS_S390_GUARDED_STORAGE = 378 + SYS_STATX = 379 + SYS_S390_STHYI = 380 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go new file mode 100644 index 0000000..52d15b5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -0,0 +1,407 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && 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_WAIT4 = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECV = 11 + SYS_CHDIR = 12 + SYS_CHOWN = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BRK = 17 + SYS_PERFCTR = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_CAPGET = 21 + SYS_CAPSET = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_VMSPLICE = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_SIGALTSTACK = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_STAT = 38 + SYS_SENDFILE = 39 + SYS_LSTAT = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_UMOUNT2 = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_MEMORY_ORDERING = 52 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_FSTAT = 62 + SYS_FSTAT64 = 63 + SYS_GETPAGESIZE = 64 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_MMAP = 71 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_VHANGUP = 76 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_SETHOSTNAME = 88 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_ACCEPT = 99 + SYS_GETPRIORITY = 100 + SYS_RT_SIGRETURN = 101 + SYS_RT_SIGACTION = 102 + SYS_RT_SIGPROCMASK = 103 + SYS_RT_SIGPENDING = 104 + SYS_RT_SIGTIMEDWAIT = 105 + SYS_RT_SIGQUEUEINFO = 106 + SYS_RT_SIGSUSPEND = 107 + SYS_SETRESUID = 108 + SYS_GETRESUID = 109 + SYS_SETRESGID = 110 + SYS_GETRESGID = 111 + SYS_RECVMSG = 113 + SYS_SENDMSG = 114 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_GETCWD = 119 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_RECVFROM = 125 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_TRUNCATE = 129 + SYS_FTRUNCATE = 130 + SYS_FLOCK = 131 + SYS_LSTAT64 = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_STAT64 = 139 + SYS_SENDFILE64 = 140 + SYS_GETPEERNAME = 141 + SYS_FUTEX = 142 + SYS_GETTID = 143 + SYS_GETRLIMIT = 144 + SYS_SETRLIMIT = 145 + SYS_PIVOT_ROOT = 146 + SYS_PRCTL = 147 + SYS_PCICONFIG_READ = 148 + SYS_PCICONFIG_WRITE = 149 + SYS_GETSOCKNAME = 150 + SYS_INOTIFY_INIT = 151 + SYS_INOTIFY_ADD_WATCH = 152 + SYS_POLL = 153 + SYS_GETDENTS64 = 154 + SYS_INOTIFY_RM_WATCH = 156 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UMOUNT = 159 + SYS_SCHED_SET_AFFINITY = 160 + SYS_SCHED_GET_AFFINITY = 161 + SYS_GETDOMAINNAME = 162 + SYS_SETDOMAINNAME = 163 + SYS_UTRAP_INSTALL = 164 + SYS_QUOTACTL = 165 + SYS_SET_TID_ADDRESS = 166 + SYS_MOUNT = 167 + SYS_USTAT = 168 + SYS_SETXATTR = 169 + SYS_LSETXATTR = 170 + SYS_FSETXATTR = 171 + SYS_GETXATTR = 172 + SYS_LGETXATTR = 173 + SYS_GETDENTS = 174 + SYS_SETSID = 175 + SYS_FCHDIR = 176 + SYS_FGETXATTR = 177 + SYS_LISTXATTR = 178 + SYS_LLISTXATTR = 179 + SYS_FLISTXATTR = 180 + SYS_REMOVEXATTR = 181 + SYS_LREMOVEXATTR = 182 + SYS_SIGPENDING = 183 + SYS_QUERY_MODULE = 184 + SYS_SETPGID = 185 + SYS_FREMOVEXATTR = 186 + SYS_TKILL = 187 + SYS_EXIT_GROUP = 188 + SYS_UNAME = 189 + SYS_INIT_MODULE = 190 + SYS_PERSONALITY = 191 + SYS_REMAP_FILE_PAGES = 192 + SYS_EPOLL_CREATE = 193 + SYS_EPOLL_CTL = 194 + SYS_EPOLL_WAIT = 195 + SYS_IOPRIO_SET = 196 + SYS_GETPPID = 197 + SYS_SIGACTION = 198 + SYS_SGETMASK = 199 + SYS_SSETMASK = 200 + SYS_SIGSUSPEND = 201 + SYS_OLDLSTAT = 202 + SYS_USELIB = 203 + SYS_READDIR = 204 + SYS_READAHEAD = 205 + SYS_SOCKETCALL = 206 + SYS_SYSLOG = 207 + SYS_LOOKUP_DCOOKIE = 208 + SYS_FADVISE64 = 209 + SYS_FADVISE64_64 = 210 + SYS_TGKILL = 211 + SYS_WAITPID = 212 + SYS_SWAPOFF = 213 + SYS_SYSINFO = 214 + SYS_IPC = 215 + SYS_SIGRETURN = 216 + SYS_CLONE = 217 + SYS_IOPRIO_GET = 218 + SYS_ADJTIMEX = 219 + SYS_SIGPROCMASK = 220 + SYS_CREATE_MODULE = 221 + SYS_DELETE_MODULE = 222 + SYS_GET_KERNEL_SYMS = 223 + SYS_GETPGID = 224 + SYS_BDFLUSH = 225 + SYS_SYSFS = 226 + SYS_AFS_SYSCALL = 227 + SYS_SETFSUID = 228 + SYS_SETFSGID = 229 + SYS__NEWSELECT = 230 + SYS_SPLICE = 232 + SYS_STIME = 233 + SYS_STATFS64 = 234 + SYS_FSTATFS64 = 235 + SYS__LLSEEK = 236 + SYS_MLOCK = 237 + SYS_MUNLOCK = 238 + SYS_MLOCKALL = 239 + SYS_MUNLOCKALL = 240 + SYS_SCHED_SETPARAM = 241 + SYS_SCHED_GETPARAM = 242 + SYS_SCHED_SETSCHEDULER = 243 + SYS_SCHED_GETSCHEDULER = 244 + SYS_SCHED_YIELD = 245 + SYS_SCHED_GET_PRIORITY_MAX = 246 + SYS_SCHED_GET_PRIORITY_MIN = 247 + SYS_SCHED_RR_GET_INTERVAL = 248 + SYS_NANOSLEEP = 249 + SYS_MREMAP = 250 + SYS__SYSCTL = 251 + SYS_GETSID = 252 + SYS_FDATASYNC = 253 + SYS_NFSSERVCTL = 254 + SYS_SYNC_FILE_RANGE = 255 + SYS_CLOCK_SETTIME = 256 + SYS_CLOCK_GETTIME = 257 + SYS_CLOCK_GETRES = 258 + SYS_CLOCK_NANOSLEEP = 259 + SYS_SCHED_GETAFFINITY = 260 + SYS_SCHED_SETAFFINITY = 261 + SYS_TIMER_SETTIME = 262 + SYS_TIMER_GETTIME = 263 + SYS_TIMER_GETOVERRUN = 264 + SYS_TIMER_DELETE = 265 + SYS_TIMER_CREATE = 266 + SYS_VSERVER = 267 + SYS_IO_SETUP = 268 + SYS_IO_DESTROY = 269 + SYS_IO_SUBMIT = 270 + SYS_IO_CANCEL = 271 + SYS_IO_GETEVENTS = 272 + SYS_MQ_OPEN = 273 + SYS_MQ_UNLINK = 274 + SYS_MQ_TIMEDSEND = 275 + SYS_MQ_TIMEDRECEIVE = 276 + SYS_MQ_NOTIFY = 277 + SYS_MQ_GETSETATTR = 278 + SYS_WAITID = 279 + SYS_TEE = 280 + SYS_ADD_KEY = 281 + SYS_REQUEST_KEY = 282 + SYS_KEYCTL = 283 + SYS_OPENAT = 284 + SYS_MKDIRAT = 285 + SYS_MKNODAT = 286 + SYS_FCHOWNAT = 287 + SYS_FUTIMESAT = 288 + SYS_FSTATAT64 = 289 + SYS_UNLINKAT = 290 + SYS_RENAMEAT = 291 + SYS_LINKAT = 292 + SYS_SYMLINKAT = 293 + SYS_READLINKAT = 294 + SYS_FCHMODAT = 295 + SYS_FACCESSAT = 296 + SYS_PSELECT6 = 297 + SYS_PPOLL = 298 + SYS_UNSHARE = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_GET_ROBUST_LIST = 301 + SYS_MIGRATE_PAGES = 302 + SYS_MBIND = 303 + SYS_GET_MEMPOLICY = 304 + SYS_SET_MEMPOLICY = 305 + SYS_KEXEC_LOAD = 306 + SYS_MOVE_PAGES = 307 + SYS_GETCPU = 308 + SYS_EPOLL_PWAIT = 309 + SYS_UTIMENSAT = 310 + SYS_SIGNALFD = 311 + SYS_TIMERFD_CREATE = 312 + SYS_EVENTFD = 313 + SYS_FALLOCATE = 314 + SYS_TIMERFD_SETTIME = 315 + SYS_TIMERFD_GETTIME = 316 + SYS_SIGNALFD4 = 317 + SYS_EVENTFD2 = 318 + SYS_EPOLL_CREATE1 = 319 + SYS_DUP3 = 320 + SYS_PIPE2 = 321 + SYS_INOTIFY_INIT1 = 322 + SYS_ACCEPT4 = 323 + SYS_PREADV = 324 + SYS_PWRITEV = 325 + SYS_RT_TGSIGQUEUEINFO = 326 + SYS_PERF_EVENT_OPEN = 327 + SYS_RECVMMSG = 328 + SYS_FANOTIFY_INIT = 329 + SYS_FANOTIFY_MARK = 330 + SYS_PRLIMIT64 = 331 + SYS_NAME_TO_HANDLE_AT = 332 + SYS_OPEN_BY_HANDLE_AT = 333 + SYS_CLOCK_ADJTIME = 334 + SYS_SYNCFS = 335 + SYS_SENDMMSG = 336 + SYS_SETNS = 337 + SYS_PROCESS_VM_READV = 338 + SYS_PROCESS_VM_WRITEV = 339 + SYS_KERN_FEATURES = 340 + SYS_KCMP = 341 + SYS_FINIT_MODULE = 342 + SYS_SCHED_SETATTR = 343 + SYS_SCHED_GETATTR = 344 + SYS_RENAMEAT2 = 345 + SYS_SECCOMP = 346 + SYS_GETRANDOM = 347 + SYS_MEMFD_CREATE = 348 + SYS_BPF = 349 + SYS_EXECVEAT = 350 + SYS_MEMBARRIER = 351 + SYS_USERFAULTFD = 352 + SYS_BIND = 353 + SYS_LISTEN = 354 + SYS_SETSOCKOPT = 355 + SYS_MLOCK2 = 356 + SYS_COPY_FILE_RANGE = 357 + SYS_PREADV2 = 358 + 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 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 + SYS_CACHESTAT = 451 + SYS_FCHMODAT2 = 452 + SYS_MAP_SHADOW_STACK = 453 + SYS_FUTEX_WAKE = 454 + SYS_FUTEX_WAIT = 455 + SYS_FUTEX_REQUEUE = 456 + SYS_STATMOUNT = 457 + SYS_LISTMOUNT = 458 + SYS_LSM_GET_SELF_ATTR = 459 + SYS_LSM_SET_SELF_ATTR = 460 + SYS_LSM_LIST_MODULES = 461 + SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go new file mode 100644 index 0000000..b2aa8cd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -0,0 +1,274 @@ +// 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 + +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_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + 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_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + 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_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + 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_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + 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_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_SETSID = 147 // { int|sys||setsid(void); } + 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go new file mode 100644 index 0000000..524a1b1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -0,0 +1,274 @@ +// 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 + +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_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + 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_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + 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_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + 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_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + 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_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_SETSID = 147 // { int|sys||setsid(void); } + 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go new file mode 100644 index 0000000..d59b943 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -0,0 +1,274 @@ +// 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 + +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_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + 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_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + 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_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + 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_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + 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_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_SETSID = 147 // { int|sys||setsid(void); } + 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go new file mode 100644 index 0000000..31e771d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go @@ -0,0 +1,274 @@ +// 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 + +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_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + 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_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + 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_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + 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_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + 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_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_SETSID = 147 // { int|sys||setsid(void); } + 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go new file mode 100644 index 0000000..9fd77c6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -0,0 +1,219 @@ +// 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 + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + 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_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go new file mode 100644 index 0000000..af10af2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -0,0 +1,219 @@ +// 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 + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + 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_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go new file mode 100644 index 0000000..cc2028a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -0,0 +1,219 @@ +// 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 + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + 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_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go new file mode 100644 index 0000000..c06dd44 --- /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 + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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 0000000..9ddbf3e --- /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 + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go new file mode 100644 index 0000000..19a6ee4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go @@ -0,0 +1,217 @@ +// 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 ppc64 && 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_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go new file mode 100644 index 0000000..05192a7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.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 riscv64 && openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +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_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go new file mode 100644 index 0000000..5e8c263 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go @@ -0,0 +1,2852 @@ +// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x + +package unix + +const ( + SYS_LOG = 0x17 // 23 + SYS_COSH = 0x18 // 24 + SYS_TANH = 0x19 // 25 + SYS_EXP = 0x1A // 26 + SYS_MODF = 0x1B // 27 + SYS_LOG10 = 0x1C // 28 + SYS_FREXP = 0x1D // 29 + SYS_LDEXP = 0x1E // 30 + SYS_CEIL = 0x1F // 31 + SYS_POW = 0x20 // 32 + SYS_SQRT = 0x21 // 33 + SYS_FLOOR = 0x22 // 34 + SYS_J1 = 0x23 // 35 + SYS_FABS = 0x24 // 36 + SYS_FMOD = 0x25 // 37 + SYS_J0 = 0x26 // 38 + SYS_YN = 0x27 // 39 + SYS_JN = 0x28 // 40 + SYS_Y0 = 0x29 // 41 + SYS_Y1 = 0x2A // 42 + SYS_HYPOT = 0x2B // 43 + SYS_ERF = 0x2C // 44 + SYS_ERFC = 0x2D // 45 + SYS_GAMMA = 0x2E // 46 + SYS_ISALPHA = 0x30 // 48 + SYS_ISALNUM = 0x31 // 49 + SYS_ISLOWER = 0x32 // 50 + SYS_ISCNTRL = 0x33 // 51 + SYS_ISDIGIT = 0x34 // 52 + SYS_ISGRAPH = 0x35 // 53 + SYS_ISUPPER = 0x36 // 54 + SYS_ISPRINT = 0x37 // 55 + SYS_ISPUNCT = 0x38 // 56 + SYS_ISSPACE = 0x39 // 57 + SYS_SETLOCAL = 0x3A // 58 + SYS_SETLOCALE = 0x3A // 58 + SYS_ISXDIGIT = 0x3B // 59 + SYS_TOLOWER = 0x3C // 60 + SYS_TOUPPER = 0x3D // 61 + SYS_ASIN = 0x3E // 62 + SYS_SIN = 0x3F // 63 + SYS_COS = 0x40 // 64 + SYS_TAN = 0x41 // 65 + SYS_SINH = 0x42 // 66 + SYS_ACOS = 0x43 // 67 + SYS_ATAN = 0x44 // 68 + SYS_ATAN2 = 0x45 // 69 + SYS_FTELL = 0x46 // 70 + SYS_FGETPOS = 0x47 // 71 + SYS_FSEEK = 0x48 // 72 + SYS_FSETPOS = 0x49 // 73 + SYS_FERROR = 0x4A // 74 + SYS_REWIND = 0x4B // 75 + SYS_CLEARERR = 0x4C // 76 + SYS_FEOF = 0x4D // 77 + SYS_ATOL = 0x4E // 78 + SYS_PERROR = 0x4F // 79 + SYS_ATOF = 0x50 // 80 + SYS_ATOI = 0x51 // 81 + SYS_RAND = 0x52 // 82 + SYS_STRTOD = 0x53 // 83 + SYS_STRTOL = 0x54 // 84 + SYS_STRTOUL = 0x55 // 85 + SYS_MALLOC = 0x56 // 86 + SYS_SRAND = 0x57 // 87 + SYS_CALLOC = 0x58 // 88 + SYS_FREE = 0x59 // 89 + SYS_EXIT = 0x5A // 90 + SYS_REALLOC = 0x5B // 91 + SYS_ABORT = 0x5C // 92 + SYS___ABORT = 0x5C // 92 + SYS_ATEXIT = 0x5D // 93 + SYS_RAISE = 0x5E // 94 + SYS_SETJMP = 0x5F // 95 + SYS_LONGJMP = 0x60 // 96 + SYS_SIGNAL = 0x61 // 97 + SYS_TMPNAM = 0x62 // 98 + SYS_REMOVE = 0x63 // 99 + SYS_RENAME = 0x64 // 100 + SYS_TMPFILE = 0x65 // 101 + SYS_FREOPEN = 0x66 // 102 + SYS_FCLOSE = 0x67 // 103 + SYS_FFLUSH = 0x68 // 104 + SYS_FOPEN = 0x69 // 105 + SYS_FSCANF = 0x6A // 106 + SYS_SETBUF = 0x6B // 107 + SYS_SETVBUF = 0x6C // 108 + SYS_FPRINTF = 0x6D // 109 + SYS_SSCANF = 0x6E // 110 + SYS_PRINTF = 0x6F // 111 + SYS_SCANF = 0x70 // 112 + SYS_SPRINTF = 0x71 // 113 + SYS_FGETC = 0x72 // 114 + SYS_VFPRINTF = 0x73 // 115 + SYS_VPRINTF = 0x74 // 116 + SYS_VSPRINTF = 0x75 // 117 + SYS_GETC = 0x76 // 118 + SYS_FGETS = 0x77 // 119 + SYS_FPUTC = 0x78 // 120 + SYS_FPUTS = 0x79 // 121 + SYS_PUTCHAR = 0x7A // 122 + SYS_GETCHAR = 0x7B // 123 + SYS_GETS = 0x7C // 124 + SYS_PUTC = 0x7D // 125 + SYS_FWRITE = 0x7E // 126 + SYS_PUTS = 0x7F // 127 + SYS_UNGETC = 0x80 // 128 + SYS_FREAD = 0x81 // 129 + SYS_WCSTOMBS = 0x82 // 130 + SYS_MBTOWC = 0x83 // 131 + SYS_WCTOMB = 0x84 // 132 + SYS_MBSTOWCS = 0x85 // 133 + SYS_WCSCPY = 0x86 // 134 + SYS_WCSCAT = 0x87 // 135 + SYS_WCSCHR = 0x88 // 136 + SYS_WCSCMP = 0x89 // 137 + SYS_WCSNCMP = 0x8A // 138 + SYS_WCSCSPN = 0x8B // 139 + SYS_WCSLEN = 0x8C // 140 + SYS_WCSNCAT = 0x8D // 141 + SYS_WCSSPN = 0x8E // 142 + SYS_WCSNCPY = 0x8F // 143 + SYS_ABS = 0x90 // 144 + SYS_DIV = 0x91 // 145 + SYS_LABS = 0x92 // 146 + SYS_STRNCPY = 0x93 // 147 + SYS_MEMCPY = 0x94 // 148 + SYS_MEMMOVE = 0x95 // 149 + SYS_STRCPY = 0x96 // 150 + SYS_STRCMP = 0x97 // 151 + SYS_STRCAT = 0x98 // 152 + SYS_STRNCAT = 0x99 // 153 + SYS_MEMCMP = 0x9A // 154 + SYS_MEMCHR = 0x9B // 155 + SYS_STRCOLL = 0x9C // 156 + SYS_STRNCMP = 0x9D // 157 + SYS_STRXFRM = 0x9E // 158 + SYS_STRRCHR = 0x9F // 159 + SYS_STRCHR = 0xA0 // 160 + SYS_STRCSPN = 0xA1 // 161 + SYS_STRPBRK = 0xA2 // 162 + SYS_MEMSET = 0xA3 // 163 + SYS_STRSPN = 0xA4 // 164 + SYS_STRSTR = 0xA5 // 165 + SYS_STRTOK = 0xA6 // 166 + SYS_DIFFTIME = 0xA7 // 167 + SYS_STRERROR = 0xA8 // 168 + SYS_STRLEN = 0xA9 // 169 + SYS_CLOCK = 0xAA // 170 + SYS_CTIME = 0xAB // 171 + SYS_MKTIME = 0xAC // 172 + SYS_TIME = 0xAD // 173 + SYS_ASCTIME = 0xAE // 174 + SYS_MBLEN = 0xAF // 175 + SYS_GMTIME = 0xB0 // 176 + SYS_LOCALTIM = 0xB1 // 177 + SYS_LOCALTIME = 0xB1 // 177 + SYS_STRFTIME = 0xB2 // 178 + SYS___GETCB = 0xB4 // 180 + SYS_FUPDATE = 0xB5 // 181 + SYS___FUPDT = 0xB5 // 181 + SYS_CLRMEMF = 0xBD // 189 + SYS___CLRMF = 0xBD // 189 + SYS_FETCHEP = 0xBF // 191 + SYS___FTCHEP = 0xBF // 191 + SYS_FLDATA = 0xC1 // 193 + SYS___FLDATA = 0xC1 // 193 + SYS_DYNFREE = 0xC2 // 194 + SYS___DYNFRE = 0xC2 // 194 + SYS_DYNALLOC = 0xC3 // 195 + SYS___DYNALL = 0xC3 // 195 + SYS___CDUMP = 0xC4 // 196 + SYS_CSNAP = 0xC5 // 197 + SYS___CSNAP = 0xC5 // 197 + SYS_CTRACE = 0xC6 // 198 + SYS___CTRACE = 0xC6 // 198 + SYS___CTEST = 0xC7 // 199 + SYS_SETENV = 0xC8 // 200 + SYS___SETENV = 0xC8 // 200 + SYS_CLEARENV = 0xC9 // 201 + SYS___CLRENV = 0xC9 // 201 + SYS___REGCOMP_STD = 0xEA // 234 + SYS_NL_LANGINFO = 0xFC // 252 + SYS_GETSYNTX = 0xFD // 253 + SYS_ISBLANK = 0xFE // 254 + SYS___ISBLNK = 0xFE // 254 + SYS_ISWALNUM = 0xFF // 255 + SYS_ISWALPHA = 0x100 // 256 + SYS_ISWBLANK = 0x101 // 257 + SYS___ISWBLK = 0x101 // 257 + SYS_ISWCNTRL = 0x102 // 258 + SYS_ISWDIGIT = 0x103 // 259 + SYS_ISWGRAPH = 0x104 // 260 + SYS_ISWLOWER = 0x105 // 261 + SYS_ISWPRINT = 0x106 // 262 + SYS_ISWPUNCT = 0x107 // 263 + SYS_ISWSPACE = 0x108 // 264 + SYS_ISWUPPER = 0x109 // 265 + SYS_ISWXDIGI = 0x10A // 266 + SYS_ISWXDIGIT = 0x10A // 266 + SYS_WCTYPE = 0x10B // 267 + SYS_ISWCTYPE = 0x10C // 268 + SYS_TOWLOWER = 0x10D // 269 + SYS_TOWUPPER = 0x10E // 270 + SYS_MBSINIT = 0x10F // 271 + SYS_WCTOB = 0x110 // 272 + SYS_MBRLEN = 0x111 // 273 + SYS_MBRTOWC = 0x112 // 274 + SYS_MBSRTOWC = 0x113 // 275 + SYS_MBSRTOWCS = 0x113 // 275 + SYS_WCRTOMB = 0x114 // 276 + SYS_WCSRTOMB = 0x115 // 277 + SYS_WCSRTOMBS = 0x115 // 277 + SYS___CSID = 0x116 // 278 + SYS___WCSID = 0x117 // 279 + SYS_STRPTIME = 0x118 // 280 + SYS___STRPTM = 0x118 // 280 + SYS_STRFMON = 0x119 // 281 + SYS___RPMTCH = 0x11A // 282 + SYS_WCSSTR = 0x11B // 283 + SYS_WCSTOK = 0x12C // 300 + SYS_WCSTOL = 0x12D // 301 + SYS_WCSTOD = 0x12E // 302 + SYS_WCSTOUL = 0x12F // 303 + SYS_WCSCOLL = 0x130 // 304 + SYS_WCSXFRM = 0x131 // 305 + SYS_WCSWIDTH = 0x132 // 306 + SYS_WCWIDTH = 0x133 // 307 + SYS_WCSFTIME = 0x134 // 308 + SYS_SWPRINTF = 0x135 // 309 + SYS_VSWPRINT = 0x136 // 310 + SYS_VSWPRINTF = 0x136 // 310 + SYS_SWSCANF = 0x137 // 311 + SYS_REGCOMP = 0x138 // 312 + SYS_REGEXEC = 0x139 // 313 + SYS_REGFREE = 0x13A // 314 + SYS_REGERROR = 0x13B // 315 + SYS_FGETWC = 0x13C // 316 + SYS_FGETWS = 0x13D // 317 + SYS_FPUTWC = 0x13E // 318 + SYS_FPUTWS = 0x13F // 319 + SYS_GETWC = 0x140 // 320 + SYS_GETWCHAR = 0x141 // 321 + SYS_PUTWC = 0x142 // 322 + SYS_PUTWCHAR = 0x143 // 323 + SYS_UNGETWC = 0x144 // 324 + SYS_ICONV_OPEN = 0x145 // 325 + SYS_ICONV = 0x146 // 326 + SYS_ICONV_CLOSE = 0x147 // 327 + SYS_ISMCCOLLEL = 0x14C // 332 + SYS_STRTOCOLL = 0x14D // 333 + SYS_COLLTOSTR = 0x14E // 334 + SYS_COLLEQUIV = 0x14F // 335 + SYS_COLLRANGE = 0x150 // 336 + SYS_CCLASS = 0x151 // 337 + SYS_COLLORDER = 0x152 // 338 + SYS___DEMANGLE = 0x154 // 340 + SYS_FDOPEN = 0x155 // 341 + SYS___ERRNO = 0x156 // 342 + SYS___ERRNO2 = 0x157 // 343 + SYS___TERROR = 0x158 // 344 + SYS_MAXCOLL = 0x169 // 361 + SYS_GETMCCOLL = 0x16A // 362 + SYS_GETWMCCOLL = 0x16B // 363 + SYS___ERR2AD = 0x16C // 364 + SYS_DLLQUERYFN = 0x16D // 365 + SYS_DLLQUERYVAR = 0x16E // 366 + SYS_DLLFREE = 0x16F // 367 + SYS_DLLLOAD = 0x170 // 368 + SYS__EXIT = 0x174 // 372 + SYS_ACCESS = 0x175 // 373 + SYS_ALARM = 0x176 // 374 + SYS_CFGETISPEED = 0x177 // 375 + SYS_CFGETOSPEED = 0x178 // 376 + SYS_CFSETISPEED = 0x179 // 377 + SYS_CFSETOSPEED = 0x17A // 378 + SYS_CHDIR = 0x17B // 379 + SYS_CHMOD = 0x17C // 380 + SYS_CHOWN = 0x17D // 381 + SYS_CLOSE = 0x17E // 382 + SYS_CLOSEDIR = 0x17F // 383 + SYS_CREAT = 0x180 // 384 + SYS_CTERMID = 0x181 // 385 + SYS_DUP = 0x182 // 386 + SYS_DUP2 = 0x183 // 387 + SYS_EXECL = 0x184 // 388 + SYS_EXECLE = 0x185 // 389 + SYS_EXECLP = 0x186 // 390 + SYS_EXECV = 0x187 // 391 + SYS_EXECVE = 0x188 // 392 + SYS_EXECVP = 0x189 // 393 + SYS_FCHMOD = 0x18A // 394 + SYS_FCHOWN = 0x18B // 395 + SYS_FCNTL = 0x18C // 396 + SYS_FILENO = 0x18D // 397 + SYS_FORK = 0x18E // 398 + SYS_FPATHCONF = 0x18F // 399 + SYS_FSTAT = 0x190 // 400 + SYS_FSYNC = 0x191 // 401 + SYS_FTRUNCATE = 0x192 // 402 + SYS_GETCWD = 0x193 // 403 + SYS_GETEGID = 0x194 // 404 + SYS_GETEUID = 0x195 // 405 + SYS_GETGID = 0x196 // 406 + SYS_GETGRGID = 0x197 // 407 + SYS_GETGRNAM = 0x198 // 408 + SYS_GETGROUPS = 0x199 // 409 + SYS_GETLOGIN = 0x19A // 410 + SYS_W_GETMNTENT = 0x19B // 411 + SYS_GETPGRP = 0x19C // 412 + SYS_GETPID = 0x19D // 413 + SYS_GETPPID = 0x19E // 414 + SYS_GETPWNAM = 0x19F // 415 + SYS_GETPWUID = 0x1A0 // 416 + SYS_GETUID = 0x1A1 // 417 + SYS_W_IOCTL = 0x1A2 // 418 + SYS_ISATTY = 0x1A3 // 419 + SYS_KILL = 0x1A4 // 420 + SYS_LINK = 0x1A5 // 421 + SYS_LSEEK = 0x1A6 // 422 + SYS_LSTAT = 0x1A7 // 423 + SYS_MKDIR = 0x1A8 // 424 + SYS_MKFIFO = 0x1A9 // 425 + SYS_MKNOD = 0x1AA // 426 + SYS_MOUNT = 0x1AB // 427 + SYS_OPEN = 0x1AC // 428 + SYS_OPENDIR = 0x1AD // 429 + SYS_PATHCONF = 0x1AE // 430 + SYS_PAUSE = 0x1AF // 431 + SYS_PIPE = 0x1B0 // 432 + SYS_W_GETPSENT = 0x1B1 // 433 + SYS_READ = 0x1B2 // 434 + SYS_READDIR = 0x1B3 // 435 + SYS_READLINK = 0x1B4 // 436 + SYS_REWINDDIR = 0x1B5 // 437 + SYS_RMDIR = 0x1B6 // 438 + SYS_SETEGID = 0x1B7 // 439 + SYS_SETEUID = 0x1B8 // 440 + SYS_SETGID = 0x1B9 // 441 + SYS_SETPGID = 0x1BA // 442 + SYS_SETSID = 0x1BB // 443 + SYS_SETUID = 0x1BC // 444 + SYS_SIGACTION = 0x1BD // 445 + SYS_SIGADDSET = 0x1BE // 446 + SYS_SIGDELSET = 0x1BF // 447 + SYS_SIGEMPTYSET = 0x1C0 // 448 + SYS_SIGFILLSET = 0x1C1 // 449 + SYS_SIGISMEMBER = 0x1C2 // 450 + SYS_SIGLONGJMP = 0x1C3 // 451 + SYS_SIGPENDING = 0x1C4 // 452 + SYS_SIGPROCMASK = 0x1C5 // 453 + SYS_SIGSETJMP = 0x1C6 // 454 + SYS_SIGSUSPEND = 0x1C7 // 455 + SYS_SLEEP = 0x1C8 // 456 + SYS_STAT = 0x1C9 // 457 + SYS_W_STATFS = 0x1CA // 458 + SYS_SYMLINK = 0x1CB // 459 + SYS_SYSCONF = 0x1CC // 460 + SYS_TCDRAIN = 0x1CD // 461 + SYS_TCFLOW = 0x1CE // 462 + SYS_TCFLUSH = 0x1CF // 463 + SYS_TCGETATTR = 0x1D0 // 464 + SYS_TCGETPGRP = 0x1D1 // 465 + SYS_TCSENDBREAK = 0x1D2 // 466 + SYS_TCSETATTR = 0x1D3 // 467 + SYS_TCSETPGRP = 0x1D4 // 468 + SYS_TIMES = 0x1D5 // 469 + SYS_TTYNAME = 0x1D6 // 470 + SYS_TZSET = 0x1D7 // 471 + SYS_UMASK = 0x1D8 // 472 + SYS_UMOUNT = 0x1D9 // 473 + SYS_UNAME = 0x1DA // 474 + SYS_UNLINK = 0x1DB // 475 + SYS_UTIME = 0x1DC // 476 + SYS_WAIT = 0x1DD // 477 + SYS_WAITPID = 0x1DE // 478 + SYS_WRITE = 0x1DF // 479 + SYS_CHAUDIT = 0x1E0 // 480 + SYS_FCHAUDIT = 0x1E1 // 481 + SYS_GETGROUPSBYNAME = 0x1E2 // 482 + SYS_SIGWAIT = 0x1E3 // 483 + SYS_PTHREAD_EXIT = 0x1E4 // 484 + SYS_PTHREAD_KILL = 0x1E5 // 485 + SYS_PTHREAD_ATTR_INIT = 0x1E6 // 486 + SYS_PTHREAD_ATTR_DESTROY = 0x1E7 // 487 + SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 // 488 + SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 // 489 + SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA // 490 + SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB // 491 + SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC // 492 + SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED // 493 + SYS_PTHREAD_CANCEL = 0x1EE // 494 + SYS_PTHREAD_CLEANUP_PUSH = 0x1EF // 495 + SYS_PTHREAD_CLEANUP_POP = 0x1F0 // 496 + SYS_PTHREAD_CONDATTR_INIT = 0x1F1 // 497 + SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 // 498 + SYS_PTHREAD_COND_INIT = 0x1F3 // 499 + SYS_PTHREAD_COND_DESTROY = 0x1F4 // 500 + SYS_PTHREAD_COND_SIGNAL = 0x1F5 // 501 + SYS_PTHREAD_COND_BROADCAST = 0x1F6 // 502 + SYS_PTHREAD_COND_WAIT = 0x1F7 // 503 + SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 // 504 + SYS_PTHREAD_CREATE = 0x1F9 // 505 + SYS_PTHREAD_DETACH = 0x1FA // 506 + SYS_PTHREAD_EQUAL = 0x1FB // 507 + SYS_PTHREAD_GETSPECIFIC = 0x1FC // 508 + SYS_PTHREAD_JOIN = 0x1FD // 509 + SYS_PTHREAD_KEY_CREATE = 0x1FE // 510 + SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF // 511 + SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 // 512 + SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 // 513 + SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 // 514 + SYS_PTHREAD_MUTEX_INIT = 0x203 // 515 + SYS_PTHREAD_MUTEX_DESTROY = 0x204 // 516 + SYS_PTHREAD_MUTEX_LOCK = 0x205 // 517 + SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 // 518 + SYS_PTHREAD_MUTEX_UNLOCK = 0x207 // 519 + SYS_PTHREAD_ONCE = 0x209 // 521 + SYS_PTHREAD_SELF = 0x20A // 522 + SYS_PTHREAD_SETINTR = 0x20B // 523 + SYS_PTHREAD_SETINTRTYPE = 0x20C // 524 + SYS_PTHREAD_SETSPECIFIC = 0x20D // 525 + SYS_PTHREAD_TESTINTR = 0x20E // 526 + SYS_PTHREAD_YIELD = 0x20F // 527 + SYS_TW_OPEN = 0x210 // 528 + SYS_TW_FCNTL = 0x211 // 529 + SYS_PTHREAD_JOIN_D4_NP = 0x212 // 530 + SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 // 531 + SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 // 532 + SYS_EXTLINK_NP = 0x215 // 533 + SYS___PASSWD = 0x216 // 534 + SYS_SETGROUPS = 0x217 // 535 + SYS_INITGROUPS = 0x218 // 536 + SYS_WCSPBRK = 0x23F // 575 + SYS_WCSRCHR = 0x240 // 576 + SYS_SVC99 = 0x241 // 577 + SYS___SVC99 = 0x241 // 577 + SYS_WCSWCS = 0x242 // 578 + SYS_LOCALECO = 0x243 // 579 + SYS_LOCALECONV = 0x243 // 579 + SYS___LIBREL = 0x244 // 580 + SYS_RELEASE = 0x245 // 581 + SYS___RLSE = 0x245 // 581 + SYS_FLOCATE = 0x246 // 582 + SYS___FLOCT = 0x246 // 582 + SYS_FDELREC = 0x247 // 583 + SYS___FDLREC = 0x247 // 583 + SYS_FETCH = 0x248 // 584 + SYS___FETCH = 0x248 // 584 + SYS_QSORT = 0x249 // 585 + SYS_GETENV = 0x24A // 586 + SYS_SYSTEM = 0x24B // 587 + SYS_BSEARCH = 0x24C // 588 + SYS_LDIV = 0x24D // 589 + SYS___THROW = 0x25E // 606 + SYS___RETHROW = 0x25F // 607 + SYS___CLEANUPCATCH = 0x260 // 608 + SYS___CATCHMATCH = 0x261 // 609 + SYS___CLEAN2UPCATCH = 0x262 // 610 + SYS_PUTENV = 0x26A // 618 + SYS___GETENV = 0x26F // 623 + SYS_GETPRIORITY = 0x270 // 624 + SYS_NICE = 0x271 // 625 + SYS_SETPRIORITY = 0x272 // 626 + SYS_GETITIMER = 0x273 // 627 + SYS_SETITIMER = 0x274 // 628 + SYS_MSGCTL = 0x275 // 629 + SYS_MSGGET = 0x276 // 630 + SYS_MSGRCV = 0x277 // 631 + SYS_MSGSND = 0x278 // 632 + SYS_MSGXRCV = 0x279 // 633 + SYS___MSGXR = 0x279 // 633 + SYS_SEMCTL = 0x27A // 634 + SYS_SEMGET = 0x27B // 635 + SYS_SEMOP = 0x27C // 636 + SYS_SHMAT = 0x27D // 637 + SYS_SHMCTL = 0x27E // 638 + SYS_SHMDT = 0x27F // 639 + SYS_SHMGET = 0x280 // 640 + SYS___GETIPC = 0x281 // 641 + SYS_SETGRENT = 0x282 // 642 + SYS_GETGRENT = 0x283 // 643 + SYS_ENDGRENT = 0x284 // 644 + SYS_SETPWENT = 0x285 // 645 + SYS_GETPWENT = 0x286 // 646 + SYS_ENDPWENT = 0x287 // 647 + SYS_BSD_SIGNAL = 0x288 // 648 + SYS_KILLPG = 0x289 // 649 + SYS_SIGALTSTACK = 0x28A // 650 + SYS_SIGHOLD = 0x28B // 651 + SYS_SIGIGNORE = 0x28C // 652 + SYS_SIGINTERRUPT = 0x28D // 653 + SYS_SIGPAUSE = 0x28E // 654 + SYS_SIGRELSE = 0x28F // 655 + SYS_SIGSET = 0x290 // 656 + SYS_SIGSTACK = 0x291 // 657 + SYS_GETRLIMIT = 0x292 // 658 + SYS_SETRLIMIT = 0x293 // 659 + SYS_GETRUSAGE = 0x294 // 660 + SYS_MMAP = 0x295 // 661 + SYS_MPROTECT = 0x296 // 662 + SYS_MSYNC = 0x297 // 663 + SYS_MUNMAP = 0x298 // 664 + SYS_CONFSTR = 0x299 // 665 + SYS_GETOPT = 0x29A // 666 + SYS_LCHOWN = 0x29B // 667 + SYS_TRUNCATE = 0x29C // 668 + SYS_GETSUBOPT = 0x29D // 669 + SYS_SETPGRP = 0x29E // 670 + SYS___GDERR = 0x29F // 671 + SYS___TZONE = 0x2A0 // 672 + SYS___DLGHT = 0x2A1 // 673 + SYS___OPARGF = 0x2A2 // 674 + SYS___OPOPTF = 0x2A3 // 675 + SYS___OPINDF = 0x2A4 // 676 + SYS___OPERRF = 0x2A5 // 677 + SYS_GETDATE = 0x2A6 // 678 + SYS_WAIT3 = 0x2A7 // 679 + SYS_WAITID = 0x2A8 // 680 + SYS___CATTRM = 0x2A9 // 681 + SYS___GDTRM = 0x2AA // 682 + SYS___RNDTRM = 0x2AB // 683 + SYS_CRYPT = 0x2AC // 684 + SYS_ENCRYPT = 0x2AD // 685 + SYS_SETKEY = 0x2AE // 686 + SYS___CNVBLK = 0x2AF // 687 + SYS___CRYTRM = 0x2B0 // 688 + SYS___ECRTRM = 0x2B1 // 689 + SYS_DRAND48 = 0x2B2 // 690 + SYS_ERAND48 = 0x2B3 // 691 + SYS_FSTATVFS = 0x2B4 // 692 + SYS_STATVFS = 0x2B5 // 693 + SYS_CATCLOSE = 0x2B6 // 694 + SYS_CATGETS = 0x2B7 // 695 + SYS_CATOPEN = 0x2B8 // 696 + SYS_BCMP = 0x2B9 // 697 + SYS_BCOPY = 0x2BA // 698 + SYS_BZERO = 0x2BB // 699 + SYS_FFS = 0x2BC // 700 + SYS_INDEX = 0x2BD // 701 + SYS_RINDEX = 0x2BE // 702 + SYS_STRCASECMP = 0x2BF // 703 + SYS_STRDUP = 0x2C0 // 704 + SYS_STRNCASECMP = 0x2C1 // 705 + SYS_INITSTATE = 0x2C2 // 706 + SYS_SETSTATE = 0x2C3 // 707 + SYS_RANDOM = 0x2C4 // 708 + SYS_SRANDOM = 0x2C5 // 709 + SYS_HCREATE = 0x2C6 // 710 + SYS_HDESTROY = 0x2C7 // 711 + SYS_HSEARCH = 0x2C8 // 712 + SYS_LFIND = 0x2C9 // 713 + SYS_LSEARCH = 0x2CA // 714 + SYS_TDELETE = 0x2CB // 715 + SYS_TFIND = 0x2CC // 716 + SYS_TSEARCH = 0x2CD // 717 + SYS_TWALK = 0x2CE // 718 + SYS_INSQUE = 0x2CF // 719 + SYS_REMQUE = 0x2D0 // 720 + SYS_POPEN = 0x2D1 // 721 + SYS_PCLOSE = 0x2D2 // 722 + SYS_SWAB = 0x2D3 // 723 + SYS_MEMCCPY = 0x2D4 // 724 + SYS_GETPAGESIZE = 0x2D8 // 728 + SYS_FCHDIR = 0x2D9 // 729 + SYS___OCLCK = 0x2DA // 730 + SYS___ATOE = 0x2DB // 731 + SYS___ATOE_L = 0x2DC // 732 + SYS___ETOA = 0x2DD // 733 + SYS___ETOA_L = 0x2DE // 734 + SYS_SETUTXENT = 0x2DF // 735 + SYS_GETUTXENT = 0x2E0 // 736 + SYS_ENDUTXENT = 0x2E1 // 737 + SYS_GETUTXID = 0x2E2 // 738 + SYS_GETUTXLINE = 0x2E3 // 739 + SYS_PUTUTXLINE = 0x2E4 // 740 + SYS_FMTMSG = 0x2E5 // 741 + SYS_JRAND48 = 0x2E6 // 742 + SYS_LRAND48 = 0x2E7 // 743 + SYS_MRAND48 = 0x2E8 // 744 + SYS_NRAND48 = 0x2E9 // 745 + SYS_LCONG48 = 0x2EA // 746 + SYS_SRAND48 = 0x2EB // 747 + SYS_SEED48 = 0x2EC // 748 + SYS_ISASCII = 0x2ED // 749 + SYS_TOASCII = 0x2EE // 750 + SYS_A64L = 0x2EF // 751 + SYS_L64A = 0x2F0 // 752 + SYS_UALARM = 0x2F1 // 753 + SYS_USLEEP = 0x2F2 // 754 + SYS___UTXTRM = 0x2F3 // 755 + SYS___SRCTRM = 0x2F4 // 756 + SYS_FTIME = 0x2F5 // 757 + SYS_GETTIMEOFDAY = 0x2F6 // 758 + SYS_DBM_CLEARERR = 0x2F7 // 759 + SYS_DBM_CLOSE = 0x2F8 // 760 + SYS_DBM_DELETE = 0x2F9 // 761 + SYS_DBM_ERROR = 0x2FA // 762 + SYS_DBM_FETCH = 0x2FB // 763 + SYS_DBM_FIRSTKEY = 0x2FC // 764 + SYS_DBM_NEXTKEY = 0x2FD // 765 + SYS_DBM_OPEN = 0x2FE // 766 + SYS_DBM_STORE = 0x2FF // 767 + SYS___NDMTRM = 0x300 // 768 + SYS_FTOK = 0x301 // 769 + SYS_BASENAME = 0x302 // 770 + SYS_DIRNAME = 0x303 // 771 + SYS_GETDTABLESIZE = 0x304 // 772 + SYS_MKSTEMP = 0x305 // 773 + SYS_MKTEMP = 0x306 // 774 + SYS_NFTW = 0x307 // 775 + SYS_GETWD = 0x308 // 776 + SYS_LOCKF = 0x309 // 777 + SYS__LONGJMP = 0x30D // 781 + SYS__SETJMP = 0x30E // 782 + SYS_VFORK = 0x30F // 783 + SYS_WORDEXP = 0x310 // 784 + SYS_WORDFREE = 0x311 // 785 + SYS_GETPGID = 0x312 // 786 + SYS_GETSID = 0x313 // 787 + SYS___UTMPXNAME = 0x314 // 788 + SYS_CUSERID = 0x315 // 789 + SYS_GETPASS = 0x316 // 790 + SYS_FNMATCH = 0x317 // 791 + SYS_FTW = 0x318 // 792 + SYS_GETW = 0x319 // 793 + SYS_GLOB = 0x31A // 794 + SYS_GLOBFREE = 0x31B // 795 + SYS_PUTW = 0x31C // 796 + SYS_SEEKDIR = 0x31D // 797 + SYS_TELLDIR = 0x31E // 798 + SYS_TEMPNAM = 0x31F // 799 + SYS_ACOSH = 0x320 // 800 + SYS_ASINH = 0x321 // 801 + SYS_ATANH = 0x322 // 802 + SYS_CBRT = 0x323 // 803 + SYS_EXPM1 = 0x324 // 804 + SYS_ILOGB = 0x325 // 805 + SYS_LOGB = 0x326 // 806 + SYS_LOG1P = 0x327 // 807 + SYS_NEXTAFTER = 0x328 // 808 + SYS_RINT = 0x329 // 809 + SYS_REMAINDER = 0x32A // 810 + SYS_SCALB = 0x32B // 811 + SYS_LGAMMA = 0x32C // 812 + SYS_TTYSLOT = 0x32D // 813 + SYS_GETTIMEOFDAY_R = 0x32E // 814 + SYS_SYNC = 0x32F // 815 + SYS_SPAWN = 0x330 // 816 + SYS_SPAWNP = 0x331 // 817 + SYS_GETLOGIN_UU = 0x332 // 818 + SYS_ECVT = 0x333 // 819 + SYS_FCVT = 0x334 // 820 + SYS_GCVT = 0x335 // 821 + SYS_ACCEPT = 0x336 // 822 + SYS_BIND = 0x337 // 823 + SYS_CONNECT = 0x338 // 824 + SYS_ENDHOSTENT = 0x339 // 825 + SYS_ENDPROTOENT = 0x33A // 826 + SYS_ENDSERVENT = 0x33B // 827 + SYS_GETHOSTBYADDR_R = 0x33C // 828 + SYS_GETHOSTBYADDR = 0x33D // 829 + SYS_GETHOSTBYNAME_R = 0x33E // 830 + SYS_GETHOSTBYNAME = 0x33F // 831 + SYS_GETHOSTENT = 0x340 // 832 + SYS_GETHOSTID = 0x341 // 833 + SYS_GETHOSTNAME = 0x342 // 834 + SYS_GETNETBYADDR = 0x343 // 835 + SYS_GETNETBYNAME = 0x344 // 836 + SYS_GETNETENT = 0x345 // 837 + SYS_GETPEERNAME = 0x346 // 838 + SYS_GETPROTOBYNAME = 0x347 // 839 + SYS_GETPROTOBYNUMBER = 0x348 // 840 + SYS_GETPROTOENT = 0x349 // 841 + SYS_GETSERVBYNAME = 0x34A // 842 + SYS_GETSERVBYPORT = 0x34B // 843 + SYS_GETSERVENT = 0x34C // 844 + SYS_GETSOCKNAME = 0x34D // 845 + SYS_GETSOCKOPT = 0x34E // 846 + SYS_INET_ADDR = 0x34F // 847 + SYS_INET_LNAOF = 0x350 // 848 + SYS_INET_MAKEADDR = 0x351 // 849 + SYS_INET_NETOF = 0x352 // 850 + SYS_INET_NETWORK = 0x353 // 851 + SYS_INET_NTOA = 0x354 // 852 + SYS_IOCTL = 0x355 // 853 + SYS_LISTEN = 0x356 // 854 + SYS_READV = 0x357 // 855 + SYS_RECV = 0x358 // 856 + SYS_RECVFROM = 0x359 // 857 + SYS_SELECT = 0x35B // 859 + SYS_SELECTEX = 0x35C // 860 + SYS_SEND = 0x35D // 861 + SYS_SENDTO = 0x35F // 863 + SYS_SETHOSTENT = 0x360 // 864 + SYS_SETNETENT = 0x361 // 865 + SYS_SETPEER = 0x362 // 866 + SYS_SETPROTOENT = 0x363 // 867 + SYS_SETSERVENT = 0x364 // 868 + SYS_SETSOCKOPT = 0x365 // 869 + SYS_SHUTDOWN = 0x366 // 870 + SYS_SOCKET = 0x367 // 871 + SYS_SOCKETPAIR = 0x368 // 872 + SYS_WRITEV = 0x369 // 873 + SYS_CHROOT = 0x36A // 874 + SYS_W_STATVFS = 0x36B // 875 + SYS_ULIMIT = 0x36C // 876 + SYS_ISNAN = 0x36D // 877 + SYS_UTIMES = 0x36E // 878 + SYS___H_ERRNO = 0x36F // 879 + SYS_ENDNETENT = 0x370 // 880 + SYS_CLOSELOG = 0x371 // 881 + SYS_OPENLOG = 0x372 // 882 + SYS_SETLOGMASK = 0x373 // 883 + SYS_SYSLOG = 0x374 // 884 + SYS_PTSNAME = 0x375 // 885 + SYS_SETREUID = 0x376 // 886 + SYS_SETREGID = 0x377 // 887 + SYS_REALPATH = 0x378 // 888 + SYS___SIGNGAM = 0x379 // 889 + SYS_GRANTPT = 0x37A // 890 + SYS_UNLOCKPT = 0x37B // 891 + SYS_TCGETSID = 0x37C // 892 + SYS___TCGETCP = 0x37D // 893 + SYS___TCSETCP = 0x37E // 894 + SYS___TCSETTABLES = 0x37F // 895 + SYS_POLL = 0x380 // 896 + SYS_REXEC = 0x381 // 897 + SYS___ISASCII2 = 0x382 // 898 + SYS___TOASCII2 = 0x383 // 899 + SYS_CHPRIORITY = 0x384 // 900 + SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 // 901 + SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 // 902 + SYS_PTHREAD_SET_LIMIT_NP = 0x387 // 903 + SYS___STNETENT = 0x388 // 904 + SYS___STPROTOENT = 0x389 // 905 + SYS___STSERVENT = 0x38A // 906 + SYS___STHOSTENT = 0x38B // 907 + SYS_NLIST = 0x38C // 908 + SYS___IPDBCS = 0x38D // 909 + SYS___IPDSPX = 0x38E // 910 + SYS___IPMSGC = 0x38F // 911 + SYS___SELECT1 = 0x390 // 912 + SYS_PTHREAD_SECURITY_NP = 0x391 // 913 + SYS___CHECK_RESOURCE_AUTH_NP = 0x392 // 914 + SYS___CONVERT_ID_NP = 0x393 // 915 + SYS___OPENVMREL = 0x394 // 916 + SYS_WMEMCHR = 0x395 // 917 + SYS_WMEMCMP = 0x396 // 918 + SYS_WMEMCPY = 0x397 // 919 + SYS_WMEMMOVE = 0x398 // 920 + SYS_WMEMSET = 0x399 // 921 + SYS___FPUTWC = 0x400 // 1024 + SYS___PUTWC = 0x401 // 1025 + SYS___PWCHAR = 0x402 // 1026 + SYS___WCSFTM = 0x403 // 1027 + SYS___WCSTOK = 0x404 // 1028 + SYS___WCWDTH = 0x405 // 1029 + SYS_T_ACCEPT = 0x409 // 1033 + SYS_T_ALLOC = 0x40A // 1034 + SYS_T_BIND = 0x40B // 1035 + SYS_T_CLOSE = 0x40C // 1036 + SYS_T_CONNECT = 0x40D // 1037 + SYS_T_ERROR = 0x40E // 1038 + SYS_T_FREE = 0x40F // 1039 + SYS_T_GETINFO = 0x410 // 1040 + SYS_T_GETPROTADDR = 0x411 // 1041 + SYS_T_GETSTATE = 0x412 // 1042 + SYS_T_LISTEN = 0x413 // 1043 + SYS_T_LOOK = 0x414 // 1044 + SYS_T_OPEN = 0x415 // 1045 + SYS_T_OPTMGMT = 0x416 // 1046 + SYS_T_RCV = 0x417 // 1047 + SYS_T_RCVCONNECT = 0x418 // 1048 + SYS_T_RCVDIS = 0x419 // 1049 + SYS_T_RCVREL = 0x41A // 1050 + SYS_T_RCVUDATA = 0x41B // 1051 + SYS_T_RCVUDERR = 0x41C // 1052 + SYS_T_SND = 0x41D // 1053 + SYS_T_SNDDIS = 0x41E // 1054 + SYS_T_SNDREL = 0x41F // 1055 + SYS_T_SNDUDATA = 0x420 // 1056 + SYS_T_STRERROR = 0x421 // 1057 + SYS_T_SYNC = 0x422 // 1058 + SYS_T_UNBIND = 0x423 // 1059 + SYS___T_ERRNO = 0x424 // 1060 + SYS___RECVMSG2 = 0x425 // 1061 + SYS___SENDMSG2 = 0x426 // 1062 + SYS_FATTACH = 0x427 // 1063 + SYS_FDETACH = 0x428 // 1064 + SYS_GETMSG = 0x429 // 1065 + SYS_GETPMSG = 0x42A // 1066 + SYS_ISASTREAM = 0x42B // 1067 + SYS_PUTMSG = 0x42C // 1068 + SYS_PUTPMSG = 0x42D // 1069 + SYS___ISPOSIXON = 0x42E // 1070 + SYS___OPENMVSREL = 0x42F // 1071 + SYS_GETCONTEXT = 0x430 // 1072 + SYS_SETCONTEXT = 0x431 // 1073 + SYS_MAKECONTEXT = 0x432 // 1074 + SYS_SWAPCONTEXT = 0x433 // 1075 + SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 // 1076 + SYS_GETCLIENTID = 0x470 // 1136 + SYS___GETCLIENTID = 0x471 // 1137 + SYS_GETSTABLESIZE = 0x472 // 1138 + SYS_GETIBMOPT = 0x473 // 1139 + SYS_GETIBMSOCKOPT = 0x474 // 1140 + SYS_GIVESOCKET = 0x475 // 1141 + SYS_IBMSFLUSH = 0x476 // 1142 + SYS_MAXDESC = 0x477 // 1143 + SYS_SETIBMOPT = 0x478 // 1144 + SYS_SETIBMSOCKOPT = 0x479 // 1145 + SYS_SOCK_DEBUG = 0x47A // 1146 + SYS_SOCK_DO_TESTSTOR = 0x47D // 1149 + SYS_TAKESOCKET = 0x47E // 1150 + SYS___SERVER_INIT = 0x47F // 1151 + SYS___SERVER_PWU = 0x480 // 1152 + SYS_PTHREAD_TAG_NP = 0x481 // 1153 + SYS___CONSOLE = 0x482 // 1154 + SYS___WSINIT = 0x483 // 1155 + SYS___IPTCPN = 0x489 // 1161 + SYS___SMF_RECORD = 0x48A // 1162 + SYS___IPHOST = 0x48B // 1163 + SYS___IPNODE = 0x48C // 1164 + SYS___SERVER_CLASSIFY_CREATE = 0x48D // 1165 + SYS___SERVER_CLASSIFY_DESTROY = 0x48E // 1166 + SYS___SERVER_CLASSIFY_RESET = 0x48F // 1167 + SYS___SERVER_CLASSIFY = 0x490 // 1168 + SYS___HEAPRPT = 0x496 // 1174 + SYS___FNWSA = 0x49B // 1179 + SYS___SPAWN2 = 0x49D // 1181 + SYS___SPAWNP2 = 0x49E // 1182 + SYS___GDRR = 0x4A1 // 1185 + SYS___HRRNO = 0x4A2 // 1186 + SYS___OPRG = 0x4A3 // 1187 + SYS___OPRR = 0x4A4 // 1188 + SYS___OPND = 0x4A5 // 1189 + SYS___OPPT = 0x4A6 // 1190 + SYS___SIGGM = 0x4A7 // 1191 + SYS___DGHT = 0x4A8 // 1192 + SYS___TZNE = 0x4A9 // 1193 + SYS___TZZN = 0x4AA // 1194 + SYS___TRRNO = 0x4AF // 1199 + SYS___ENVN = 0x4B0 // 1200 + SYS___MLOCKALL = 0x4B1 // 1201 + SYS_CREATEWO = 0x4B2 // 1202 + SYS_CREATEWORKUNIT = 0x4B2 // 1202 + SYS_CONTINUE = 0x4B3 // 1203 + SYS_CONTINUEWORKUNIT = 0x4B3 // 1203 + SYS_CONNECTW = 0x4B4 // 1204 + SYS_CONNECTWORKMGR = 0x4B4 // 1204 + SYS_CONNECTS = 0x4B5 // 1205 + SYS_CONNECTSERVER = 0x4B5 // 1205 + SYS_DISCONNE = 0x4B6 // 1206 + SYS_DISCONNECTSERVER = 0x4B6 // 1206 + SYS_JOINWORK = 0x4B7 // 1207 + SYS_JOINWORKUNIT = 0x4B7 // 1207 + SYS_LEAVEWOR = 0x4B8 // 1208 + SYS_LEAVEWORKUNIT = 0x4B8 // 1208 + SYS_DELETEWO = 0x4B9 // 1209 + SYS_DELETEWORKUNIT = 0x4B9 // 1209 + SYS_QUERYMET = 0x4BA // 1210 + SYS_QUERYMETRICS = 0x4BA // 1210 + SYS_QUERYSCH = 0x4BB // 1211 + SYS_QUERYSCHENV = 0x4BB // 1211 + SYS_CHECKSCH = 0x4BC // 1212 + SYS_CHECKSCHENV = 0x4BC // 1212 + SYS___PID_AFFINITY = 0x4BD // 1213 + SYS___ASINH_B = 0x4BE // 1214 + SYS___ATAN_B = 0x4BF // 1215 + SYS___CBRT_B = 0x4C0 // 1216 + SYS___CEIL_B = 0x4C1 // 1217 + SYS_COPYSIGN = 0x4C2 // 1218 + SYS___COS_B = 0x4C3 // 1219 + SYS___ERF_B = 0x4C4 // 1220 + SYS___ERFC_B = 0x4C5 // 1221 + SYS___EXPM1_B = 0x4C6 // 1222 + SYS___FABS_B = 0x4C7 // 1223 + SYS_FINITE = 0x4C8 // 1224 + SYS___FLOOR_B = 0x4C9 // 1225 + SYS___FREXP_B = 0x4CA // 1226 + SYS___ILOGB_B = 0x4CB // 1227 + SYS___ISNAN_B = 0x4CC // 1228 + SYS___LDEXP_B = 0x4CD // 1229 + SYS___LOG1P_B = 0x4CE // 1230 + SYS___LOGB_B = 0x4CF // 1231 + SYS_MATHERR = 0x4D0 // 1232 + SYS___MODF_B = 0x4D1 // 1233 + SYS___NEXTAFTER_B = 0x4D2 // 1234 + SYS___RINT_B = 0x4D3 // 1235 + SYS_SCALBN = 0x4D4 // 1236 + SYS_SIGNIFIC = 0x4D5 // 1237 + SYS_SIGNIFICAND = 0x4D5 // 1237 + SYS___SIN_B = 0x4D6 // 1238 + SYS___TAN_B = 0x4D7 // 1239 + SYS___TANH_B = 0x4D8 // 1240 + SYS___ACOS_B = 0x4D9 // 1241 + SYS___ACOSH_B = 0x4DA // 1242 + SYS___ASIN_B = 0x4DB // 1243 + SYS___ATAN2_B = 0x4DC // 1244 + SYS___ATANH_B = 0x4DD // 1245 + SYS___COSH_B = 0x4DE // 1246 + SYS___EXP_B = 0x4DF // 1247 + SYS___FMOD_B = 0x4E0 // 1248 + SYS___GAMMA_B = 0x4E1 // 1249 + SYS_GAMMA_R = 0x4E2 // 1250 + SYS___HYPOT_B = 0x4E3 // 1251 + SYS___J0_B = 0x4E4 // 1252 + SYS___Y0_B = 0x4E5 // 1253 + SYS___J1_B = 0x4E6 // 1254 + SYS___Y1_B = 0x4E7 // 1255 + SYS___JN_B = 0x4E8 // 1256 + SYS___YN_B = 0x4E9 // 1257 + SYS___LGAMMA_B = 0x4EA // 1258 + SYS_LGAMMA_R = 0x4EB // 1259 + SYS___LOG_B = 0x4EC // 1260 + SYS___LOG10_B = 0x4ED // 1261 + SYS___POW_B = 0x4EE // 1262 + SYS___REMAINDER_B = 0x4EF // 1263 + SYS___SCALB_B = 0x4F0 // 1264 + SYS___SINH_B = 0x4F1 // 1265 + SYS___SQRT_B = 0x4F2 // 1266 + SYS___OPENDIR2 = 0x4F3 // 1267 + SYS___READDIR2 = 0x4F4 // 1268 + SYS___LOGIN = 0x4F5 // 1269 + SYS___OPEN_STAT = 0x4F6 // 1270 + SYS_ACCEPT_AND_RECV = 0x4F7 // 1271 + SYS___FP_SETMODE = 0x4F8 // 1272 + SYS___SIGACTIONSET = 0x4FB // 1275 + SYS___UCREATE = 0x4FC // 1276 + SYS___UMALLOC = 0x4FD // 1277 + SYS___UFREE = 0x4FE // 1278 + SYS___UHEAPREPORT = 0x4FF // 1279 + SYS___ISBFP = 0x500 // 1280 + SYS___FP_CAST = 0x501 // 1281 + SYS___CERTIFICATE = 0x502 // 1282 + SYS_SEND_FILE = 0x503 // 1283 + SYS_AIO_CANCEL = 0x504 // 1284 + SYS_AIO_ERROR = 0x505 // 1285 + SYS_AIO_READ = 0x506 // 1286 + SYS_AIO_RETURN = 0x507 // 1287 + SYS_AIO_SUSPEND = 0x508 // 1288 + SYS_AIO_WRITE = 0x509 // 1289 + SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A // 1290 + SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B // 1291 + SYS_PTHREAD_RWLOCK_DESTROY = 0x50C // 1292 + SYS_PTHREAD_RWLOCK_INIT = 0x50D // 1293 + SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E // 1294 + SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F // 1295 + SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 // 1296 + SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 // 1297 + SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 // 1298 + SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 // 1299 + SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 // 1300 + SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 // 1301 + SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 // 1302 + SYS___CTTBL = 0x517 // 1303 + SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 // 1304 + SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 // 1305 + SYS___FP_CLR_FLAG = 0x51A // 1306 + SYS___FP_READ_FLAG = 0x51B // 1307 + SYS___FP_RAISE_XCP = 0x51C // 1308 + SYS___FP_CLASS = 0x51D // 1309 + SYS___FP_FINITE = 0x51E // 1310 + SYS___FP_ISNAN = 0x51F // 1311 + SYS___FP_UNORDERED = 0x520 // 1312 + SYS___FP_READ_RND = 0x521 // 1313 + SYS___FP_READ_RND_B = 0x522 // 1314 + SYS___FP_SWAP_RND = 0x523 // 1315 + SYS___FP_SWAP_RND_B = 0x524 // 1316 + SYS___FP_LEVEL = 0x525 // 1317 + SYS___FP_BTOH = 0x526 // 1318 + SYS___FP_HTOB = 0x527 // 1319 + SYS___FPC_RD = 0x528 // 1320 + SYS___FPC_WR = 0x529 // 1321 + SYS___FPC_RW = 0x52A // 1322 + SYS___FPC_SM = 0x52B // 1323 + SYS___FPC_RS = 0x52C // 1324 + SYS_SIGTIMEDWAIT = 0x52D // 1325 + SYS_SIGWAITINFO = 0x52E // 1326 + SYS___CHKBFP = 0x52F // 1327 + SYS___W_PIOCTL = 0x59E // 1438 + SYS___OSENV = 0x59F // 1439 + SYS_EXPORTWO = 0x5A1 // 1441 + SYS_EXPORTWORKUNIT = 0x5A1 // 1441 + SYS_UNDOEXPO = 0x5A2 // 1442 + SYS_UNDOEXPORTWORKUNIT = 0x5A2 // 1442 + SYS_IMPORTWO = 0x5A3 // 1443 + SYS_IMPORTWORKUNIT = 0x5A3 // 1443 + SYS_UNDOIMPO = 0x5A4 // 1444 + SYS_UNDOIMPORTWORKUNIT = 0x5A4 // 1444 + SYS_EXTRACTW = 0x5A5 // 1445 + SYS_EXTRACTWORKUNIT = 0x5A5 // 1445 + SYS___CPL = 0x5A6 // 1446 + SYS___MAP_INIT = 0x5A7 // 1447 + SYS___MAP_SERVICE = 0x5A8 // 1448 + SYS_SIGQUEUE = 0x5A9 // 1449 + SYS___MOUNT = 0x5AA // 1450 + SYS___GETUSERID = 0x5AB // 1451 + SYS___IPDOMAINNAME = 0x5AC // 1452 + SYS_QUERYENC = 0x5AD // 1453 + SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD // 1453 + SYS_CONNECTE = 0x5AE // 1454 + SYS_CONNECTEXPORTIMPORT = 0x5AE // 1454 + SYS___FP_SWAPMODE = 0x5AF // 1455 + SYS_STRTOLL = 0x5B0 // 1456 + SYS_STRTOULL = 0x5B1 // 1457 + SYS___DSA_PREV = 0x5B2 // 1458 + SYS___EP_FIND = 0x5B3 // 1459 + SYS___SERVER_THREADS_QUERY = 0x5B4 // 1460 + SYS___MSGRCV_TIMED = 0x5B7 // 1463 + SYS___SEMOP_TIMED = 0x5B8 // 1464 + SYS___GET_CPUID = 0x5B9 // 1465 + SYS___GET_SYSTEM_SETTINGS = 0x5BA // 1466 + SYS_FTELLO = 0x5C8 // 1480 + SYS_FSEEKO = 0x5C9 // 1481 + SYS_LLDIV = 0x5CB // 1483 + SYS_WCSTOLL = 0x5CC // 1484 + SYS_WCSTOULL = 0x5CD // 1485 + SYS_LLABS = 0x5CE // 1486 + SYS___CONSOLE2 = 0x5D2 // 1490 + SYS_INET_NTOP = 0x5D3 // 1491 + SYS_INET_PTON = 0x5D4 // 1492 + SYS___RES = 0x5D6 // 1494 + SYS_RES_MKQUERY = 0x5D7 // 1495 + SYS_RES_INIT = 0x5D8 // 1496 + SYS_RES_QUERY = 0x5D9 // 1497 + SYS_RES_SEARCH = 0x5DA // 1498 + SYS_RES_SEND = 0x5DB // 1499 + SYS_RES_QUERYDOMAIN = 0x5DC // 1500 + SYS_DN_EXPAND = 0x5DD // 1501 + SYS_DN_SKIPNAME = 0x5DE // 1502 + SYS_DN_COMP = 0x5DF // 1503 + SYS_ASCTIME_R = 0x5E0 // 1504 + SYS_CTIME_R = 0x5E1 // 1505 + SYS_GMTIME_R = 0x5E2 // 1506 + SYS_LOCALTIME_R = 0x5E3 // 1507 + SYS_RAND_R = 0x5E4 // 1508 + SYS_STRTOK_R = 0x5E5 // 1509 + SYS_READDIR_R = 0x5E6 // 1510 + SYS_GETGRGID_R = 0x5E7 // 1511 + SYS_GETGRNAM_R = 0x5E8 // 1512 + SYS_GETLOGIN_R = 0x5E9 // 1513 + SYS_GETPWNAM_R = 0x5EA // 1514 + SYS_GETPWUID_R = 0x5EB // 1515 + SYS_TTYNAME_R = 0x5EC // 1516 + SYS_PTHREAD_ATFORK = 0x5ED // 1517 + SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE // 1518 + SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF // 1519 + SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 // 1520 + SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 // 1521 + SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 // 1522 + SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 // 1523 + SYS_PTHREAD_GETCONCURRENCY = 0x5F4 // 1524 + SYS_PTHREAD_KEY_DELETE = 0x5F5 // 1525 + SYS_PTHREAD_SETCONCURRENCY = 0x5F6 // 1526 + SYS_PTHREAD_SIGMASK = 0x5F7 // 1527 + SYS___DISCARDDATA = 0x5F8 // 1528 + SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 // 1529 + SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA // 1530 + SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531 + SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532 + SYS_PTHREAD_DETACH_U98 = 0x5FD // 1533 + SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE // 1534 + SYS_PTHREAD_SETCANCELSTATE = 0x5FF // 1535 + SYS_PTHREAD_SETCANCELTYPE = 0x600 // 1536 + SYS_PTHREAD_TESTCANCEL = 0x601 // 1537 + SYS___ATANF_B = 0x602 // 1538 + SYS___ATANL_B = 0x603 // 1539 + SYS___CEILF_B = 0x604 // 1540 + SYS___CEILL_B = 0x605 // 1541 + SYS___COSF_B = 0x606 // 1542 + SYS___COSL_B = 0x607 // 1543 + SYS___FABSF_B = 0x608 // 1544 + SYS___FABSL_B = 0x609 // 1545 + SYS___FLOORF_B = 0x60A // 1546 + SYS___FLOORL_B = 0x60B // 1547 + SYS___FREXPF_B = 0x60C // 1548 + SYS___FREXPL_B = 0x60D // 1549 + SYS___LDEXPF_B = 0x60E // 1550 + SYS___LDEXPL_B = 0x60F // 1551 + SYS___SINF_B = 0x610 // 1552 + SYS___SINL_B = 0x611 // 1553 + SYS___TANF_B = 0x612 // 1554 + SYS___TANL_B = 0x613 // 1555 + SYS___TANHF_B = 0x614 // 1556 + SYS___TANHL_B = 0x615 // 1557 + SYS___ACOSF_B = 0x616 // 1558 + SYS___ACOSL_B = 0x617 // 1559 + SYS___ASINF_B = 0x618 // 1560 + SYS___ASINL_B = 0x619 // 1561 + SYS___ATAN2F_B = 0x61A // 1562 + SYS___ATAN2L_B = 0x61B // 1563 + SYS___COSHF_B = 0x61C // 1564 + SYS___COSHL_B = 0x61D // 1565 + SYS___EXPF_B = 0x61E // 1566 + SYS___EXPL_B = 0x61F // 1567 + SYS___LOGF_B = 0x620 // 1568 + SYS___LOGL_B = 0x621 // 1569 + SYS___LOG10F_B = 0x622 // 1570 + SYS___LOG10L_B = 0x623 // 1571 + SYS___POWF_B = 0x624 // 1572 + SYS___POWL_B = 0x625 // 1573 + SYS___SINHF_B = 0x626 // 1574 + SYS___SINHL_B = 0x627 // 1575 + SYS___SQRTF_B = 0x628 // 1576 + SYS___SQRTL_B = 0x629 // 1577 + SYS___ABSF_B = 0x62A // 1578 + SYS___ABS_B = 0x62B // 1579 + SYS___ABSL_B = 0x62C // 1580 + SYS___FMODF_B = 0x62D // 1581 + SYS___FMODL_B = 0x62E // 1582 + SYS___MODFF_B = 0x62F // 1583 + SYS___MODFL_B = 0x630 // 1584 + SYS_ABSF = 0x631 // 1585 + SYS_ABSL = 0x632 // 1586 + SYS_ACOSF = 0x633 // 1587 + SYS_ACOSL = 0x634 // 1588 + SYS_ASINF = 0x635 // 1589 + SYS_ASINL = 0x636 // 1590 + SYS_ATAN2F = 0x637 // 1591 + SYS_ATAN2L = 0x638 // 1592 + SYS_ATANF = 0x639 // 1593 + SYS_ATANL = 0x63A // 1594 + SYS_CEILF = 0x63B // 1595 + SYS_CEILL = 0x63C // 1596 + SYS_COSF = 0x63D // 1597 + SYS_COSL = 0x63E // 1598 + SYS_COSHF = 0x63F // 1599 + SYS_COSHL = 0x640 // 1600 + SYS_EXPF = 0x641 // 1601 + SYS_EXPL = 0x642 // 1602 + SYS_TANHF = 0x643 // 1603 + SYS_TANHL = 0x644 // 1604 + SYS_LOG10F = 0x645 // 1605 + SYS_LOG10L = 0x646 // 1606 + SYS_LOGF = 0x647 // 1607 + SYS_LOGL = 0x648 // 1608 + SYS_POWF = 0x649 // 1609 + SYS_POWL = 0x64A // 1610 + SYS_SINF = 0x64B // 1611 + SYS_SINL = 0x64C // 1612 + SYS_SQRTF = 0x64D // 1613 + SYS_SQRTL = 0x64E // 1614 + SYS_SINHF = 0x64F // 1615 + SYS_SINHL = 0x650 // 1616 + SYS_TANF = 0x651 // 1617 + SYS_TANL = 0x652 // 1618 + SYS_FABSF = 0x653 // 1619 + SYS_FABSL = 0x654 // 1620 + SYS_FLOORF = 0x655 // 1621 + SYS_FLOORL = 0x656 // 1622 + SYS_FMODF = 0x657 // 1623 + SYS_FMODL = 0x658 // 1624 + SYS_FREXPF = 0x659 // 1625 + SYS_FREXPL = 0x65A // 1626 + SYS_LDEXPF = 0x65B // 1627 + SYS_LDEXPL = 0x65C // 1628 + SYS_MODFF = 0x65D // 1629 + SYS_MODFL = 0x65E // 1630 + SYS_BTOWC = 0x65F // 1631 + SYS___CHATTR = 0x660 // 1632 + SYS___FCHATTR = 0x661 // 1633 + SYS___TOCCSID = 0x662 // 1634 + SYS___CSNAMETYPE = 0x663 // 1635 + SYS___TOCSNAME = 0x664 // 1636 + SYS___CCSIDTYPE = 0x665 // 1637 + SYS___AE_CORRESTBL_QUERY = 0x666 // 1638 + SYS___AE_AUTOCONVERT_STATE = 0x667 // 1639 + SYS_DN_FIND = 0x668 // 1640 + SYS___GETHOSTBYADDR_A = 0x669 // 1641 + SYS___GETHOSTBYNAME_A = 0x66A // 1642 + SYS___RES_INIT_A = 0x66B // 1643 + SYS___GETHOSTBYADDR_R_A = 0x66C // 1644 + SYS___GETHOSTBYNAME_R_A = 0x66D // 1645 + SYS___CHARMAP_INIT_A = 0x66E // 1646 + SYS___MBLEN_A = 0x66F // 1647 + SYS___MBLEN_SB_A = 0x670 // 1648 + SYS___MBLEN_STD_A = 0x671 // 1649 + SYS___MBLEN_UTF = 0x672 // 1650 + SYS___MBSTOWCS_A = 0x673 // 1651 + SYS___MBSTOWCS_STD_A = 0x674 // 1652 + SYS___MBTOWC_A = 0x675 // 1653 + SYS___MBTOWC_ISO1 = 0x676 // 1654 + SYS___MBTOWC_SBCS = 0x677 // 1655 + SYS___MBTOWC_MBCS = 0x678 // 1656 + SYS___MBTOWC_UTF = 0x679 // 1657 + SYS___WCSTOMBS_A = 0x67A // 1658 + SYS___WCSTOMBS_STD_A = 0x67B // 1659 + SYS___WCSWIDTH_A = 0x67C // 1660 + SYS___GETGRGID_R_A = 0x67D // 1661 + SYS___WCSWIDTH_STD_A = 0x67E // 1662 + SYS___WCSWIDTH_ASIA = 0x67F // 1663 + SYS___CSID_A = 0x680 // 1664 + SYS___CSID_STD_A = 0x681 // 1665 + SYS___WCSID_A = 0x682 // 1666 + SYS___WCSID_STD_A = 0x683 // 1667 + SYS___WCTOMB_A = 0x684 // 1668 + SYS___WCTOMB_ISO1 = 0x685 // 1669 + SYS___WCTOMB_STD_A = 0x686 // 1670 + SYS___WCTOMB_UTF = 0x687 // 1671 + SYS___WCWIDTH_A = 0x688 // 1672 + SYS___GETGRNAM_R_A = 0x689 // 1673 + SYS___WCWIDTH_STD_A = 0x68A // 1674 + SYS___WCWIDTH_ASIA = 0x68B // 1675 + SYS___GETPWNAM_R_A = 0x68C // 1676 + SYS___GETPWUID_R_A = 0x68D // 1677 + SYS___GETLOGIN_R_A = 0x68E // 1678 + SYS___TTYNAME_R_A = 0x68F // 1679 + SYS___READDIR_R_A = 0x690 // 1680 + SYS___E2A_S = 0x691 // 1681 + SYS___FNMATCH_A = 0x692 // 1682 + SYS___FNMATCH_C_A = 0x693 // 1683 + SYS___EXECL_A = 0x694 // 1684 + SYS___FNMATCH_STD_A = 0x695 // 1685 + SYS___REGCOMP_A = 0x696 // 1686 + SYS___REGCOMP_STD_A = 0x697 // 1687 + SYS___REGERROR_A = 0x698 // 1688 + SYS___REGERROR_STD_A = 0x699 // 1689 + SYS___REGEXEC_A = 0x69A // 1690 + SYS___REGEXEC_STD_A = 0x69B // 1691 + SYS___REGFREE_A = 0x69C // 1692 + SYS___REGFREE_STD_A = 0x69D // 1693 + SYS___STRCOLL_A = 0x69E // 1694 + SYS___STRCOLL_C_A = 0x69F // 1695 + SYS___EXECLE_A = 0x6A0 // 1696 + SYS___STRCOLL_STD_A = 0x6A1 // 1697 + SYS___STRXFRM_A = 0x6A2 // 1698 + SYS___STRXFRM_C_A = 0x6A3 // 1699 + SYS___EXECLP_A = 0x6A4 // 1700 + SYS___STRXFRM_STD_A = 0x6A5 // 1701 + SYS___WCSCOLL_A = 0x6A6 // 1702 + SYS___WCSCOLL_C_A = 0x6A7 // 1703 + SYS___WCSCOLL_STD_A = 0x6A8 // 1704 + SYS___WCSXFRM_A = 0x6A9 // 1705 + SYS___WCSXFRM_C_A = 0x6AA // 1706 + SYS___WCSXFRM_STD_A = 0x6AB // 1707 + SYS___COLLATE_INIT_A = 0x6AC // 1708 + SYS___WCTYPE_A = 0x6AD // 1709 + SYS___GET_WCTYPE_STD_A = 0x6AE // 1710 + SYS___CTYPE_INIT_A = 0x6AF // 1711 + SYS___ISWCTYPE_A = 0x6B0 // 1712 + SYS___EXECV_A = 0x6B1 // 1713 + SYS___IS_WCTYPE_STD_A = 0x6B2 // 1714 + SYS___TOWLOWER_A = 0x6B3 // 1715 + SYS___TOWLOWER_STD_A = 0x6B4 // 1716 + SYS___TOWUPPER_A = 0x6B5 // 1717 + SYS___TOWUPPER_STD_A = 0x6B6 // 1718 + SYS___LOCALE_INIT_A = 0x6B7 // 1719 + SYS___LOCALECONV_A = 0x6B8 // 1720 + SYS___LOCALECONV_STD_A = 0x6B9 // 1721 + SYS___NL_LANGINFO_A = 0x6BA // 1722 + SYS___NL_LNAGINFO_STD_A = 0x6BB // 1723 + SYS___MONETARY_INIT_A = 0x6BC // 1724 + SYS___STRFMON_A = 0x6BD // 1725 + SYS___STRFMON_STD_A = 0x6BE // 1726 + SYS___GETADDRINFO_A = 0x6BF // 1727 + SYS___CATGETS_A = 0x6C0 // 1728 + SYS___EXECVE_A = 0x6C1 // 1729 + SYS___EXECVP_A = 0x6C2 // 1730 + SYS___SPAWN_A = 0x6C3 // 1731 + SYS___GETNAMEINFO_A = 0x6C4 // 1732 + SYS___SPAWNP_A = 0x6C5 // 1733 + SYS___NUMERIC_INIT_A = 0x6C6 // 1734 + SYS___RESP_INIT_A = 0x6C7 // 1735 + SYS___RPMATCH_A = 0x6C8 // 1736 + SYS___RPMATCH_C_A = 0x6C9 // 1737 + SYS___RPMATCH_STD_A = 0x6CA // 1738 + SYS___TIME_INIT_A = 0x6CB // 1739 + SYS___STRFTIME_A = 0x6CC // 1740 + SYS___STRFTIME_STD_A = 0x6CD // 1741 + SYS___STRPTIME_A = 0x6CE // 1742 + SYS___STRPTIME_STD_A = 0x6CF // 1743 + SYS___WCSFTIME_A = 0x6D0 // 1744 + SYS___WCSFTIME_STD_A = 0x6D1 // 1745 + SYS_____SPAWN2_A = 0x6D2 // 1746 + SYS_____SPAWNP2_A = 0x6D3 // 1747 + SYS___SYNTAX_INIT_A = 0x6D4 // 1748 + SYS___TOD_INIT_A = 0x6D5 // 1749 + SYS___NL_CSINFO_A = 0x6D6 // 1750 + SYS___NL_MONINFO_A = 0x6D7 // 1751 + SYS___NL_NUMINFO_A = 0x6D8 // 1752 + SYS___NL_RESPINFO_A = 0x6D9 // 1753 + SYS___NL_TIMINFO_A = 0x6DA // 1754 + SYS___IF_NAMETOINDEX_A = 0x6DB // 1755 + SYS___IF_INDEXTONAME_A = 0x6DC // 1756 + SYS___PRINTF_A = 0x6DD // 1757 + SYS___ICONV_OPEN_A = 0x6DE // 1758 + SYS___DLLLOAD_A = 0x6DF // 1759 + SYS___DLLQUERYFN_A = 0x6E0 // 1760 + SYS___DLLQUERYVAR_A = 0x6E1 // 1761 + SYS_____CHATTR_A = 0x6E2 // 1762 + SYS___E2A_L = 0x6E3 // 1763 + SYS_____TOCCSID_A = 0x6E4 // 1764 + SYS_____TOCSNAME_A = 0x6E5 // 1765 + SYS_____CCSIDTYPE_A = 0x6E6 // 1766 + SYS_____CSNAMETYPE_A = 0x6E7 // 1767 + SYS___CHMOD_A = 0x6E8 // 1768 + SYS___MKDIR_A = 0x6E9 // 1769 + SYS___STAT_A = 0x6EA // 1770 + SYS___STAT_O_A = 0x6EB // 1771 + SYS___MKFIFO_A = 0x6EC // 1772 + SYS_____OPEN_STAT_A = 0x6ED // 1773 + SYS___LSTAT_A = 0x6EE // 1774 + SYS___LSTAT_O_A = 0x6EF // 1775 + SYS___MKNOD_A = 0x6F0 // 1776 + SYS___MOUNT_A = 0x6F1 // 1777 + SYS___UMOUNT_A = 0x6F2 // 1778 + SYS___CHAUDIT_A = 0x6F4 // 1780 + SYS___W_GETMNTENT_A = 0x6F5 // 1781 + SYS___CREAT_A = 0x6F6 // 1782 + SYS___OPEN_A = 0x6F7 // 1783 + SYS___SETLOCALE_A = 0x6F9 // 1785 + SYS___FPRINTF_A = 0x6FA // 1786 + SYS___SPRINTF_A = 0x6FB // 1787 + SYS___VFPRINTF_A = 0x6FC // 1788 + SYS___VPRINTF_A = 0x6FD // 1789 + SYS___VSPRINTF_A = 0x6FE // 1790 + SYS___VSWPRINTF_A = 0x6FF // 1791 + SYS___SWPRINTF_A = 0x700 // 1792 + SYS___FSCANF_A = 0x701 // 1793 + SYS___SCANF_A = 0x702 // 1794 + SYS___SSCANF_A = 0x703 // 1795 + SYS___SWSCANF_A = 0x704 // 1796 + SYS___ATOF_A = 0x705 // 1797 + SYS___ATOI_A = 0x706 // 1798 + SYS___ATOL_A = 0x707 // 1799 + SYS___STRTOD_A = 0x708 // 1800 + SYS___STRTOL_A = 0x709 // 1801 + SYS___STRTOUL_A = 0x70A // 1802 + SYS_____AE_CORRESTBL_QUERY_A = 0x70B // 1803 + SYS___A64L_A = 0x70C // 1804 + SYS___ECVT_A = 0x70D // 1805 + SYS___FCVT_A = 0x70E // 1806 + SYS___GCVT_A = 0x70F // 1807 + SYS___L64A_A = 0x710 // 1808 + SYS___STRERROR_A = 0x711 // 1809 + SYS___PERROR_A = 0x712 // 1810 + SYS___FETCH_A = 0x713 // 1811 + SYS___GETENV_A = 0x714 // 1812 + SYS___MKSTEMP_A = 0x717 // 1815 + SYS___PTSNAME_A = 0x718 // 1816 + SYS___PUTENV_A = 0x719 // 1817 + SYS___REALPATH_A = 0x71A // 1818 + SYS___SETENV_A = 0x71B // 1819 + SYS___SYSTEM_A = 0x71C // 1820 + SYS___GETOPT_A = 0x71D // 1821 + SYS___CATOPEN_A = 0x71E // 1822 + SYS___ACCESS_A = 0x71F // 1823 + SYS___CHDIR_A = 0x720 // 1824 + SYS___CHOWN_A = 0x721 // 1825 + SYS___CHROOT_A = 0x722 // 1826 + SYS___GETCWD_A = 0x723 // 1827 + SYS___GETWD_A = 0x724 // 1828 + SYS___LCHOWN_A = 0x725 // 1829 + SYS___LINK_A = 0x726 // 1830 + SYS___PATHCONF_A = 0x727 // 1831 + SYS___IF_NAMEINDEX_A = 0x728 // 1832 + SYS___READLINK_A = 0x729 // 1833 + SYS___RMDIR_A = 0x72A // 1834 + SYS___STATVFS_A = 0x72B // 1835 + SYS___SYMLINK_A = 0x72C // 1836 + SYS___TRUNCATE_A = 0x72D // 1837 + SYS___UNLINK_A = 0x72E // 1838 + SYS___GAI_STRERROR_A = 0x72F // 1839 + SYS___EXTLINK_NP_A = 0x730 // 1840 + SYS___ISALNUM_A = 0x731 // 1841 + SYS___ISALPHA_A = 0x732 // 1842 + SYS___A2E_S = 0x733 // 1843 + SYS___ISCNTRL_A = 0x734 // 1844 + SYS___ISDIGIT_A = 0x735 // 1845 + SYS___ISGRAPH_A = 0x736 // 1846 + SYS___ISLOWER_A = 0x737 // 1847 + SYS___ISPRINT_A = 0x738 // 1848 + SYS___ISPUNCT_A = 0x739 // 1849 + SYS___ISSPACE_A = 0x73A // 1850 + SYS___ISUPPER_A = 0x73B // 1851 + SYS___ISXDIGIT_A = 0x73C // 1852 + SYS___TOLOWER_A = 0x73D // 1853 + SYS___TOUPPER_A = 0x73E // 1854 + SYS___ISWALNUM_A = 0x73F // 1855 + SYS___ISWALPHA_A = 0x740 // 1856 + SYS___A2E_L = 0x741 // 1857 + SYS___ISWCNTRL_A = 0x742 // 1858 + SYS___ISWDIGIT_A = 0x743 // 1859 + SYS___ISWGRAPH_A = 0x744 // 1860 + SYS___ISWLOWER_A = 0x745 // 1861 + SYS___ISWPRINT_A = 0x746 // 1862 + SYS___ISWPUNCT_A = 0x747 // 1863 + SYS___ISWSPACE_A = 0x748 // 1864 + SYS___ISWUPPER_A = 0x749 // 1865 + SYS___ISWXDIGIT_A = 0x74A // 1866 + SYS___CONFSTR_A = 0x74B // 1867 + SYS___FTOK_A = 0x74C // 1868 + SYS___MKTEMP_A = 0x74D // 1869 + SYS___FDOPEN_A = 0x74E // 1870 + SYS___FLDATA_A = 0x74F // 1871 + SYS___REMOVE_A = 0x750 // 1872 + SYS___RENAME_A = 0x751 // 1873 + SYS___TMPNAM_A = 0x752 // 1874 + SYS___FOPEN_A = 0x753 // 1875 + SYS___FREOPEN_A = 0x754 // 1876 + SYS___CUSERID_A = 0x755 // 1877 + SYS___POPEN_A = 0x756 // 1878 + SYS___TEMPNAM_A = 0x757 // 1879 + SYS___FTW_A = 0x758 // 1880 + SYS___GETGRENT_A = 0x759 // 1881 + SYS___GETGRGID_A = 0x75A // 1882 + SYS___GETGRNAM_A = 0x75B // 1883 + SYS___GETGROUPSBYNAME_A = 0x75C // 1884 + SYS___GETHOSTENT_A = 0x75D // 1885 + SYS___GETHOSTNAME_A = 0x75E // 1886 + SYS___GETLOGIN_A = 0x75F // 1887 + SYS___INET_NTOP_A = 0x760 // 1888 + SYS___GETPASS_A = 0x761 // 1889 + SYS___GETPWENT_A = 0x762 // 1890 + SYS___GETPWNAM_A = 0x763 // 1891 + SYS___GETPWUID_A = 0x764 // 1892 + SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 // 1893 + SYS___CHECKSCHENV_A = 0x766 // 1894 + SYS___CONNECTSERVER_A = 0x767 // 1895 + SYS___CONNECTWORKMGR_A = 0x768 // 1896 + SYS_____CONSOLE_A = 0x769 // 1897 + SYS___CREATEWORKUNIT_A = 0x76A // 1898 + SYS___CTERMID_A = 0x76B // 1899 + SYS___FMTMSG_A = 0x76C // 1900 + SYS___INITGROUPS_A = 0x76D // 1901 + SYS_____LOGIN_A = 0x76E // 1902 + SYS___MSGRCV_A = 0x76F // 1903 + SYS___MSGSND_A = 0x770 // 1904 + SYS___MSGXRCV_A = 0x771 // 1905 + SYS___NFTW_A = 0x772 // 1906 + SYS_____PASSWD_A = 0x773 // 1907 + SYS___PTHREAD_SECURITY_NP_A = 0x774 // 1908 + SYS___QUERYMETRICS_A = 0x775 // 1909 + SYS___QUERYSCHENV = 0x776 // 1910 + SYS___READV_A = 0x777 // 1911 + SYS_____SERVER_CLASSIFY_A = 0x778 // 1912 + SYS_____SERVER_INIT_A = 0x779 // 1913 + SYS_____SERVER_PWU_A = 0x77A // 1914 + SYS___STRCASECMP_A = 0x77B // 1915 + SYS___STRNCASECMP_A = 0x77C // 1916 + SYS___TTYNAME_A = 0x77D // 1917 + SYS___UNAME_A = 0x77E // 1918 + SYS___UTIMES_A = 0x77F // 1919 + SYS___W_GETPSENT_A = 0x780 // 1920 + SYS___WRITEV_A = 0x781 // 1921 + SYS___W_STATFS_A = 0x782 // 1922 + SYS___W_STATVFS_A = 0x783 // 1923 + SYS___FPUTC_A = 0x784 // 1924 + SYS___PUTCHAR_A = 0x785 // 1925 + SYS___PUTS_A = 0x786 // 1926 + SYS___FGETS_A = 0x787 // 1927 + SYS___GETS_A = 0x788 // 1928 + SYS___FPUTS_A = 0x789 // 1929 + SYS___FREAD_A = 0x78A // 1930 + SYS___FWRITE_A = 0x78B // 1931 + SYS___OPEN_O_A = 0x78C // 1932 + SYS___ISASCII = 0x78D // 1933 + SYS___CREAT_O_A = 0x78E // 1934 + SYS___ENVNA = 0x78F // 1935 + SYS___PUTC_A = 0x790 // 1936 + SYS___AE_THREAD_SETMODE = 0x791 // 1937 + SYS___AE_THREAD_SWAPMODE = 0x792 // 1938 + SYS___GETNETBYADDR_A = 0x793 // 1939 + SYS___GETNETBYNAME_A = 0x794 // 1940 + SYS___GETNETENT_A = 0x795 // 1941 + SYS___GETPROTOBYNAME_A = 0x796 // 1942 + SYS___GETPROTOBYNUMBER_A = 0x797 // 1943 + SYS___GETPROTOENT_A = 0x798 // 1944 + SYS___GETSERVBYNAME_A = 0x799 // 1945 + SYS___GETSERVBYPORT_A = 0x79A // 1946 + SYS___GETSERVENT_A = 0x79B // 1947 + SYS___ASCTIME_A = 0x79C // 1948 + SYS___CTIME_A = 0x79D // 1949 + SYS___GETDATE_A = 0x79E // 1950 + SYS___TZSET_A = 0x79F // 1951 + SYS___UTIME_A = 0x7A0 // 1952 + SYS___ASCTIME_R_A = 0x7A1 // 1953 + SYS___CTIME_R_A = 0x7A2 // 1954 + SYS___STRTOLL_A = 0x7A3 // 1955 + SYS___STRTOULL_A = 0x7A4 // 1956 + SYS___FPUTWC_A = 0x7A5 // 1957 + SYS___PUTWC_A = 0x7A6 // 1958 + SYS___PUTWCHAR_A = 0x7A7 // 1959 + SYS___FPUTWS_A = 0x7A8 // 1960 + SYS___UNGETWC_A = 0x7A9 // 1961 + SYS___FGETWC_A = 0x7AA // 1962 + SYS___GETWC_A = 0x7AB // 1963 + SYS___GETWCHAR_A = 0x7AC // 1964 + SYS___FGETWS_A = 0x7AD // 1965 + SYS___GETTIMEOFDAY_A = 0x7AE // 1966 + SYS___GMTIME_A = 0x7AF // 1967 + SYS___GMTIME_R_A = 0x7B0 // 1968 + SYS___LOCALTIME_A = 0x7B1 // 1969 + SYS___LOCALTIME_R_A = 0x7B2 // 1970 + SYS___MKTIME_A = 0x7B3 // 1971 + SYS___TZZNA = 0x7B4 // 1972 + SYS_UNATEXIT = 0x7B5 // 1973 + SYS___CEE3DMP_A = 0x7B6 // 1974 + SYS___CDUMP_A = 0x7B7 // 1975 + SYS___CSNAP_A = 0x7B8 // 1976 + SYS___CTEST_A = 0x7B9 // 1977 + SYS___CTRACE_A = 0x7BA // 1978 + SYS___VSWPRNTF2_A = 0x7BB // 1979 + SYS___INET_PTON_A = 0x7BC // 1980 + SYS___SYSLOG_A = 0x7BD // 1981 + SYS___CRYPT_A = 0x7BE // 1982 + SYS_____OPENDIR2_A = 0x7BF // 1983 + SYS_____READDIR2_A = 0x7C0 // 1984 + SYS___OPENDIR_A = 0x7C2 // 1986 + SYS___READDIR_A = 0x7C3 // 1987 + SYS_PREAD = 0x7C7 // 1991 + SYS_PWRITE = 0x7C8 // 1992 + SYS_M_CREATE_LAYOUT = 0x7C9 // 1993 + SYS_M_DESTROY_LAYOUT = 0x7CA // 1994 + SYS_M_GETVALUES_LAYOUT = 0x7CB // 1995 + SYS_M_SETVALUES_LAYOUT = 0x7CC // 1996 + SYS_M_TRANSFORM_LAYOUT = 0x7CD // 1997 + SYS_M_WTRANSFORM_LAYOUT = 0x7CE // 1998 + SYS_FWPRINTF = 0x7D1 // 2001 + SYS_WPRINTF = 0x7D2 // 2002 + SYS_VFWPRINT = 0x7D3 // 2003 + SYS_VFWPRINTF = 0x7D3 // 2003 + SYS_VWPRINTF = 0x7D4 // 2004 + SYS_FWSCANF = 0x7D5 // 2005 + SYS_WSCANF = 0x7D6 // 2006 + SYS_WCTRANS = 0x7D7 // 2007 + SYS_TOWCTRAN = 0x7D8 // 2008 + SYS_TOWCTRANS = 0x7D8 // 2008 + SYS___WCSTOD_A = 0x7D9 // 2009 + SYS___WCSTOL_A = 0x7DA // 2010 + SYS___WCSTOUL_A = 0x7DB // 2011 + SYS___BASENAME_A = 0x7DC // 2012 + SYS___DIRNAME_A = 0x7DD // 2013 + SYS___GLOB_A = 0x7DE // 2014 + SYS_FWIDE = 0x7DF // 2015 + SYS___OSNAME = 0x7E0 // 2016 + SYS_____OSNAME_A = 0x7E1 // 2017 + SYS___BTOWC_A = 0x7E4 // 2020 + SYS___WCTOB_A = 0x7E5 // 2021 + SYS___DBM_OPEN_A = 0x7E6 // 2022 + SYS___VFPRINTF2_A = 0x7E7 // 2023 + SYS___VPRINTF2_A = 0x7E8 // 2024 + SYS___VSPRINTF2_A = 0x7E9 // 2025 + SYS___CEIL_H = 0x7EA // 2026 + SYS___FLOOR_H = 0x7EB // 2027 + SYS___MODF_H = 0x7EC // 2028 + SYS___FABS_H = 0x7ED // 2029 + SYS___J0_H = 0x7EE // 2030 + SYS___J1_H = 0x7EF // 2031 + SYS___JN_H = 0x7F0 // 2032 + SYS___Y0_H = 0x7F1 // 2033 + SYS___Y1_H = 0x7F2 // 2034 + SYS___YN_H = 0x7F3 // 2035 + SYS___CEILF_H = 0x7F4 // 2036 + SYS___CEILL_H = 0x7F5 // 2037 + SYS___FLOORF_H = 0x7F6 // 2038 + SYS___FLOORL_H = 0x7F7 // 2039 + SYS___MODFF_H = 0x7F8 // 2040 + SYS___MODFL_H = 0x7F9 // 2041 + SYS___FABSF_H = 0x7FA // 2042 + SYS___FABSL_H = 0x7FB // 2043 + SYS___MALLOC24 = 0x7FC // 2044 + SYS___MALLOC31 = 0x7FD // 2045 + SYS_ACL_INIT = 0x7FE // 2046 + SYS_ACL_FREE = 0x7FF // 2047 + SYS_ACL_FIRST_ENTRY = 0x800 // 2048 + SYS_ACL_GET_ENTRY = 0x801 // 2049 + SYS_ACL_VALID = 0x802 // 2050 + SYS_ACL_CREATE_ENTRY = 0x803 // 2051 + SYS_ACL_DELETE_ENTRY = 0x804 // 2052 + SYS_ACL_UPDATE_ENTRY = 0x805 // 2053 + SYS_ACL_DELETE_FD = 0x806 // 2054 + SYS_ACL_DELETE_FILE = 0x807 // 2055 + SYS_ACL_GET_FD = 0x808 // 2056 + SYS_ACL_GET_FILE = 0x809 // 2057 + SYS_ACL_SET_FD = 0x80A // 2058 + SYS_ACL_SET_FILE = 0x80B // 2059 + SYS_ACL_FROM_TEXT = 0x80C // 2060 + SYS_ACL_TO_TEXT = 0x80D // 2061 + SYS_ACL_SORT = 0x80E // 2062 + SYS___SHUTDOWN_REGISTRATION = 0x80F // 2063 + SYS___ERFL_B = 0x810 // 2064 + SYS___ERFCL_B = 0x811 // 2065 + SYS___LGAMMAL_B = 0x812 // 2066 + SYS___SETHOOKEVENTS = 0x813 // 2067 + SYS_IF_NAMETOINDEX = 0x814 // 2068 + SYS_IF_INDEXTONAME = 0x815 // 2069 + SYS_IF_NAMEINDEX = 0x816 // 2070 + SYS_IF_FREENAMEINDEX = 0x817 // 2071 + SYS_GETADDRINFO = 0x818 // 2072 + SYS_GETNAMEINFO = 0x819 // 2073 + SYS_FREEADDRINFO = 0x81A // 2074 + SYS_GAI_STRERROR = 0x81B // 2075 + SYS_REXEC_AF = 0x81C // 2076 + SYS___POE = 0x81D // 2077 + SYS___DYNALLOC_A = 0x81F // 2079 + SYS___DYNFREE_A = 0x820 // 2080 + SYS___RES_QUERY_A = 0x821 // 2081 + SYS___RES_SEARCH_A = 0x822 // 2082 + SYS___RES_QUERYDOMAIN_A = 0x823 // 2083 + SYS___RES_MKQUERY_A = 0x824 // 2084 + SYS___RES_SEND_A = 0x825 // 2085 + SYS___DN_EXPAND_A = 0x826 // 2086 + SYS___DN_SKIPNAME_A = 0x827 // 2087 + SYS___DN_COMP_A = 0x828 // 2088 + SYS___DN_FIND_A = 0x829 // 2089 + SYS___NLIST_A = 0x82A // 2090 + SYS_____TCGETCP_A = 0x82B // 2091 + SYS_____TCSETCP_A = 0x82C // 2092 + SYS_____W_PIOCTL_A = 0x82E // 2094 + SYS___INET_ADDR_A = 0x82F // 2095 + SYS___INET_NTOA_A = 0x830 // 2096 + SYS___INET_NETWORK_A = 0x831 // 2097 + SYS___ACCEPT_A = 0x832 // 2098 + SYS___ACCEPT_AND_RECV_A = 0x833 // 2099 + SYS___BIND_A = 0x834 // 2100 + SYS___CONNECT_A = 0x835 // 2101 + SYS___GETPEERNAME_A = 0x836 // 2102 + SYS___GETSOCKNAME_A = 0x837 // 2103 + SYS___RECVFROM_A = 0x838 // 2104 + SYS___SENDTO_A = 0x839 // 2105 + SYS___SENDMSG_A = 0x83A // 2106 + SYS___RECVMSG_A = 0x83B // 2107 + SYS_____LCHATTR_A = 0x83C // 2108 + SYS___CABEND = 0x83D // 2109 + SYS___LE_CIB_GET = 0x83E // 2110 + SYS___SET_LAA_FOR_JIT = 0x83F // 2111 + SYS___LCHATTR = 0x840 // 2112 + SYS___WRITEDOWN = 0x841 // 2113 + SYS_PTHREAD_MUTEX_INIT2 = 0x842 // 2114 + SYS___ACOSHF_B = 0x843 // 2115 + SYS___ACOSHL_B = 0x844 // 2116 + SYS___ASINHF_B = 0x845 // 2117 + SYS___ASINHL_B = 0x846 // 2118 + SYS___ATANHF_B = 0x847 // 2119 + SYS___ATANHL_B = 0x848 // 2120 + SYS___CBRTF_B = 0x849 // 2121 + SYS___CBRTL_B = 0x84A // 2122 + SYS___COPYSIGNF_B = 0x84B // 2123 + SYS___COPYSIGNL_B = 0x84C // 2124 + SYS___COTANF_B = 0x84D // 2125 + SYS___COTAN_B = 0x84E // 2126 + SYS___COTANL_B = 0x84F // 2127 + SYS___EXP2F_B = 0x850 // 2128 + SYS___EXP2L_B = 0x851 // 2129 + SYS___EXPM1F_B = 0x852 // 2130 + SYS___EXPM1L_B = 0x853 // 2131 + SYS___FDIMF_B = 0x854 // 2132 + SYS___FDIM_B = 0x855 // 2133 + SYS___FDIML_B = 0x856 // 2134 + SYS___HYPOTF_B = 0x857 // 2135 + SYS___HYPOTL_B = 0x858 // 2136 + SYS___LOG1PF_B = 0x859 // 2137 + SYS___LOG1PL_B = 0x85A // 2138 + SYS___LOG2F_B = 0x85B // 2139 + SYS___LOG2_B = 0x85C // 2140 + SYS___LOG2L_B = 0x85D // 2141 + SYS___REMAINDERF_B = 0x85E // 2142 + SYS___REMAINDERL_B = 0x85F // 2143 + SYS___REMQUOF_B = 0x860 // 2144 + SYS___REMQUO_B = 0x861 // 2145 + SYS___REMQUOL_B = 0x862 // 2146 + SYS___TGAMMAF_B = 0x863 // 2147 + SYS___TGAMMA_B = 0x864 // 2148 + SYS___TGAMMAL_B = 0x865 // 2149 + SYS___TRUNCF_B = 0x866 // 2150 + SYS___TRUNC_B = 0x867 // 2151 + SYS___TRUNCL_B = 0x868 // 2152 + SYS___LGAMMAF_B = 0x869 // 2153 + SYS___LROUNDF_B = 0x86A // 2154 + SYS___LROUND_B = 0x86B // 2155 + SYS___ERFF_B = 0x86C // 2156 + SYS___ERFCF_B = 0x86D // 2157 + SYS_ACOSHF = 0x86E // 2158 + SYS_ACOSHL = 0x86F // 2159 + SYS_ASINHF = 0x870 // 2160 + SYS_ASINHL = 0x871 // 2161 + SYS_ATANHF = 0x872 // 2162 + SYS_ATANHL = 0x873 // 2163 + SYS_CBRTF = 0x874 // 2164 + SYS_CBRTL = 0x875 // 2165 + SYS_COPYSIGNF = 0x876 // 2166 + SYS_CPYSIGNF = 0x876 // 2166 + SYS_COPYSIGNL = 0x877 // 2167 + SYS_CPYSIGNL = 0x877 // 2167 + SYS_COTANF = 0x878 // 2168 + SYS___COTANF = 0x878 // 2168 + SYS_COTAN = 0x879 // 2169 + SYS___COTAN = 0x879 // 2169 + SYS_COTANL = 0x87A // 2170 + SYS___COTANL = 0x87A // 2170 + SYS_EXP2F = 0x87B // 2171 + SYS_EXP2L = 0x87C // 2172 + SYS_EXPM1F = 0x87D // 2173 + SYS_EXPM1L = 0x87E // 2174 + SYS_FDIMF = 0x87F // 2175 + SYS_FDIM = 0x881 // 2177 + SYS_FDIML = 0x882 // 2178 + SYS_HYPOTF = 0x883 // 2179 + SYS_HYPOTL = 0x884 // 2180 + SYS_LOG1PF = 0x885 // 2181 + SYS_LOG1PL = 0x886 // 2182 + SYS_LOG2F = 0x887 // 2183 + SYS_LOG2 = 0x888 // 2184 + SYS_LOG2L = 0x889 // 2185 + SYS_REMAINDERF = 0x88A // 2186 + SYS_REMAINDF = 0x88A // 2186 + SYS_REMAINDERL = 0x88B // 2187 + SYS_REMAINDL = 0x88B // 2187 + SYS_REMQUOF = 0x88C // 2188 + SYS_REMQUO = 0x88D // 2189 + SYS_REMQUOL = 0x88E // 2190 + SYS_TGAMMAF = 0x88F // 2191 + SYS_TGAMMA = 0x890 // 2192 + SYS_TGAMMAL = 0x891 // 2193 + SYS_TRUNCF = 0x892 // 2194 + SYS_TRUNC = 0x893 // 2195 + SYS_TRUNCL = 0x894 // 2196 + SYS_LGAMMAF = 0x895 // 2197 + SYS_LGAMMAL = 0x896 // 2198 + SYS_LROUNDF = 0x897 // 2199 + SYS_LROUND = 0x898 // 2200 + SYS_ERFF = 0x899 // 2201 + SYS_ERFL = 0x89A // 2202 + SYS_ERFCF = 0x89B // 2203 + SYS_ERFCL = 0x89C // 2204 + SYS___EXP2_B = 0x89D // 2205 + SYS_EXP2 = 0x89E // 2206 + SYS___FAR_JUMP = 0x89F // 2207 + SYS___TCGETATTR_A = 0x8A1 // 2209 + SYS___TCSETATTR_A = 0x8A2 // 2210 + SYS___SUPERKILL = 0x8A4 // 2212 + SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 // 2213 + SYS___LE_MSG_ADD_INSERT = 0x8A6 // 2214 + SYS___LE_MSG_GET = 0x8A7 // 2215 + SYS___LE_MSG_GET_AND_WRITE = 0x8A8 // 2216 + SYS___LE_MSG_WRITE = 0x8A9 // 2217 + SYS___ITOA = 0x8AA // 2218 + SYS___UTOA = 0x8AB // 2219 + SYS___LTOA = 0x8AC // 2220 + SYS___ULTOA = 0x8AD // 2221 + SYS___LLTOA = 0x8AE // 2222 + SYS___ULLTOA = 0x8AF // 2223 + SYS___ITOA_A = 0x8B0 // 2224 + SYS___UTOA_A = 0x8B1 // 2225 + SYS___LTOA_A = 0x8B2 // 2226 + SYS___ULTOA_A = 0x8B3 // 2227 + SYS___LLTOA_A = 0x8B4 // 2228 + SYS___ULLTOA_A = 0x8B5 // 2229 + SYS_____GETENV_A = 0x8C3 // 2243 + SYS___REXEC_A = 0x8C4 // 2244 + SYS___REXEC_AF_A = 0x8C5 // 2245 + SYS___GETUTXENT_A = 0x8C6 // 2246 + SYS___GETUTXID_A = 0x8C7 // 2247 + SYS___GETUTXLINE_A = 0x8C8 // 2248 + SYS___PUTUTXLINE_A = 0x8C9 // 2249 + SYS_____UTMPXNAME_A = 0x8CA // 2250 + SYS___PUTC_UNLOCKED_A = 0x8CB // 2251 + SYS___PUTCHAR_UNLOCKED_A = 0x8CC // 2252 + SYS___SNPRINTF_A = 0x8CD // 2253 + SYS___VSNPRINTF_A = 0x8CE // 2254 + SYS___DLOPEN_A = 0x8D0 // 2256 + SYS___DLSYM_A = 0x8D1 // 2257 + SYS___DLERROR_A = 0x8D2 // 2258 + SYS_FLOCKFILE = 0x8D3 // 2259 + SYS_FTRYLOCKFILE = 0x8D4 // 2260 + SYS_FUNLOCKFILE = 0x8D5 // 2261 + SYS_GETC_UNLOCKED = 0x8D6 // 2262 + SYS_GETCHAR_UNLOCKED = 0x8D7 // 2263 + SYS_PUTC_UNLOCKED = 0x8D8 // 2264 + SYS_PUTCHAR_UNLOCKED = 0x8D9 // 2265 + SYS_SNPRINTF = 0x8DA // 2266 + SYS_VSNPRINTF = 0x8DB // 2267 + SYS_DLOPEN = 0x8DD // 2269 + SYS_DLSYM = 0x8DE // 2270 + SYS_DLCLOSE = 0x8DF // 2271 + SYS_DLERROR = 0x8E0 // 2272 + SYS___SET_EXCEPTION_HANDLER = 0x8E2 // 2274 + SYS___RESET_EXCEPTION_HANDLER = 0x8E3 // 2275 + SYS___VHM_EVENT = 0x8E4 // 2276 + SYS___ABS_H = 0x8E6 // 2278 + SYS___ABSF_H = 0x8E7 // 2279 + SYS___ABSL_H = 0x8E8 // 2280 + SYS___ACOS_H = 0x8E9 // 2281 + SYS___ACOSF_H = 0x8EA // 2282 + SYS___ACOSL_H = 0x8EB // 2283 + SYS___ACOSH_H = 0x8EC // 2284 + SYS___ASIN_H = 0x8ED // 2285 + SYS___ASINF_H = 0x8EE // 2286 + SYS___ASINL_H = 0x8EF // 2287 + SYS___ASINH_H = 0x8F0 // 2288 + SYS___ATAN_H = 0x8F1 // 2289 + SYS___ATANF_H = 0x8F2 // 2290 + SYS___ATANL_H = 0x8F3 // 2291 + SYS___ATANH_H = 0x8F4 // 2292 + SYS___ATANHF_H = 0x8F5 // 2293 + SYS___ATANHL_H = 0x8F6 // 2294 + SYS___ATAN2_H = 0x8F7 // 2295 + SYS___ATAN2F_H = 0x8F8 // 2296 + SYS___ATAN2L_H = 0x8F9 // 2297 + SYS___CBRT_H = 0x8FA // 2298 + SYS___COPYSIGNF_H = 0x8FB // 2299 + SYS___COPYSIGNL_H = 0x8FC // 2300 + SYS___COS_H = 0x8FD // 2301 + SYS___COSF_H = 0x8FE // 2302 + SYS___COSL_H = 0x8FF // 2303 + SYS___COSHF_H = 0x900 // 2304 + SYS___COSHL_H = 0x901 // 2305 + SYS___COTAN_H = 0x902 // 2306 + SYS___COTANF_H = 0x903 // 2307 + SYS___COTANL_H = 0x904 // 2308 + SYS___ERF_H = 0x905 // 2309 + SYS___ERFF_H = 0x906 // 2310 + SYS___ERFL_H = 0x907 // 2311 + SYS___ERFC_H = 0x908 // 2312 + SYS___ERFCF_H = 0x909 // 2313 + SYS___ERFCL_H = 0x90A // 2314 + SYS___EXP_H = 0x90B // 2315 + SYS___EXPF_H = 0x90C // 2316 + SYS___EXPL_H = 0x90D // 2317 + SYS___EXPM1_H = 0x90E // 2318 + SYS___FDIM_H = 0x90F // 2319 + SYS___FDIMF_H = 0x910 // 2320 + SYS___FDIML_H = 0x911 // 2321 + SYS___FMOD_H = 0x912 // 2322 + SYS___FMODF_H = 0x913 // 2323 + SYS___FMODL_H = 0x914 // 2324 + SYS___GAMMA_H = 0x915 // 2325 + SYS___HYPOT_H = 0x916 // 2326 + SYS___ILOGB_H = 0x917 // 2327 + SYS___LGAMMA_H = 0x918 // 2328 + SYS___LGAMMAF_H = 0x919 // 2329 + SYS___LOG_H = 0x91A // 2330 + SYS___LOGF_H = 0x91B // 2331 + SYS___LOGL_H = 0x91C // 2332 + SYS___LOGB_H = 0x91D // 2333 + SYS___LOG2_H = 0x91E // 2334 + SYS___LOG2F_H = 0x91F // 2335 + SYS___LOG2L_H = 0x920 // 2336 + SYS___LOG1P_H = 0x921 // 2337 + SYS___LOG10_H = 0x922 // 2338 + SYS___LOG10F_H = 0x923 // 2339 + SYS___LOG10L_H = 0x924 // 2340 + SYS___LROUND_H = 0x925 // 2341 + SYS___LROUNDF_H = 0x926 // 2342 + SYS___NEXTAFTER_H = 0x927 // 2343 + SYS___POW_H = 0x928 // 2344 + SYS___POWF_H = 0x929 // 2345 + SYS___POWL_H = 0x92A // 2346 + SYS___REMAINDER_H = 0x92B // 2347 + SYS___RINT_H = 0x92C // 2348 + SYS___SCALB_H = 0x92D // 2349 + SYS___SIN_H = 0x92E // 2350 + SYS___SINF_H = 0x92F // 2351 + SYS___SINL_H = 0x930 // 2352 + SYS___SINH_H = 0x931 // 2353 + SYS___SINHF_H = 0x932 // 2354 + SYS___SINHL_H = 0x933 // 2355 + SYS___SQRT_H = 0x934 // 2356 + SYS___SQRTF_H = 0x935 // 2357 + SYS___SQRTL_H = 0x936 // 2358 + SYS___TAN_H = 0x937 // 2359 + SYS___TANF_H = 0x938 // 2360 + SYS___TANL_H = 0x939 // 2361 + SYS___TANH_H = 0x93A // 2362 + SYS___TANHF_H = 0x93B // 2363 + SYS___TANHL_H = 0x93C // 2364 + SYS___TGAMMA_H = 0x93D // 2365 + SYS___TGAMMAF_H = 0x93E // 2366 + SYS___TRUNC_H = 0x93F // 2367 + SYS___TRUNCF_H = 0x940 // 2368 + SYS___TRUNCL_H = 0x941 // 2369 + SYS___COSH_H = 0x942 // 2370 + SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 // 2371 + SYS_VFSCANF = 0x944 // 2372 + SYS_VSCANF = 0x946 // 2374 + SYS_VSSCANF = 0x948 // 2376 + SYS_VFWSCANF = 0x94A // 2378 + SYS_VWSCANF = 0x94C // 2380 + SYS_VSWSCANF = 0x94E // 2382 + SYS_IMAXABS = 0x950 // 2384 + SYS_IMAXDIV = 0x951 // 2385 + SYS_STRTOIMAX = 0x952 // 2386 + SYS_STRTOUMAX = 0x953 // 2387 + SYS_WCSTOIMAX = 0x954 // 2388 + SYS_WCSTOUMAX = 0x955 // 2389 + SYS_ATOLL = 0x956 // 2390 + SYS_STRTOF = 0x957 // 2391 + SYS_STRTOLD = 0x958 // 2392 + SYS_WCSTOF = 0x959 // 2393 + SYS_WCSTOLD = 0x95A // 2394 + SYS_INET6_RTH_SPACE = 0x95B // 2395 + SYS_INET6_RTH_INIT = 0x95C // 2396 + SYS_INET6_RTH_ADD = 0x95D // 2397 + SYS_INET6_RTH_REVERSE = 0x95E // 2398 + SYS_INET6_RTH_SEGMENTS = 0x95F // 2399 + SYS_INET6_RTH_GETADDR = 0x960 // 2400 + SYS_INET6_OPT_INIT = 0x961 // 2401 + SYS_INET6_OPT_APPEND = 0x962 // 2402 + SYS_INET6_OPT_FINISH = 0x963 // 2403 + SYS_INET6_OPT_SET_VAL = 0x964 // 2404 + SYS_INET6_OPT_NEXT = 0x965 // 2405 + SYS_INET6_OPT_FIND = 0x966 // 2406 + SYS_INET6_OPT_GET_VAL = 0x967 // 2407 + SYS___POW_I = 0x987 // 2439 + SYS___POW_I_B = 0x988 // 2440 + SYS___POW_I_H = 0x989 // 2441 + SYS___POW_II = 0x98A // 2442 + SYS___POW_II_B = 0x98B // 2443 + SYS___POW_II_H = 0x98C // 2444 + SYS_CABS = 0x98E // 2446 + SYS___CABS_B = 0x98F // 2447 + SYS___CABS_H = 0x990 // 2448 + SYS_CABSF = 0x991 // 2449 + SYS___CABSF_B = 0x992 // 2450 + SYS___CABSF_H = 0x993 // 2451 + SYS_CABSL = 0x994 // 2452 + SYS___CABSL_B = 0x995 // 2453 + SYS___CABSL_H = 0x996 // 2454 + SYS_CACOS = 0x997 // 2455 + SYS___CACOS_B = 0x998 // 2456 + SYS___CACOS_H = 0x999 // 2457 + SYS_CACOSF = 0x99A // 2458 + SYS___CACOSF_B = 0x99B // 2459 + SYS___CACOSF_H = 0x99C // 2460 + SYS_CACOSL = 0x99D // 2461 + SYS___CACOSL_B = 0x99E // 2462 + SYS___CACOSL_H = 0x99F // 2463 + SYS_CACOSH = 0x9A0 // 2464 + SYS___CACOSH_B = 0x9A1 // 2465 + SYS___CACOSH_H = 0x9A2 // 2466 + SYS_CACOSHF = 0x9A3 // 2467 + SYS___CACOSHF_B = 0x9A4 // 2468 + SYS___CACOSHF_H = 0x9A5 // 2469 + SYS_CACOSHL = 0x9A6 // 2470 + SYS___CACOSHL_B = 0x9A7 // 2471 + SYS___CACOSHL_H = 0x9A8 // 2472 + SYS_CARG = 0x9A9 // 2473 + SYS___CARG_B = 0x9AA // 2474 + SYS___CARG_H = 0x9AB // 2475 + SYS_CARGF = 0x9AC // 2476 + SYS___CARGF_B = 0x9AD // 2477 + SYS___CARGF_H = 0x9AE // 2478 + SYS_CARGL = 0x9AF // 2479 + SYS___CARGL_B = 0x9B0 // 2480 + SYS___CARGL_H = 0x9B1 // 2481 + SYS_CASIN = 0x9B2 // 2482 + SYS___CASIN_B = 0x9B3 // 2483 + SYS___CASIN_H = 0x9B4 // 2484 + SYS_CASINF = 0x9B5 // 2485 + SYS___CASINF_B = 0x9B6 // 2486 + SYS___CASINF_H = 0x9B7 // 2487 + SYS_CASINL = 0x9B8 // 2488 + SYS___CASINL_B = 0x9B9 // 2489 + SYS___CASINL_H = 0x9BA // 2490 + SYS_CASINH = 0x9BB // 2491 + SYS___CASINH_B = 0x9BC // 2492 + SYS___CASINH_H = 0x9BD // 2493 + SYS_CASINHF = 0x9BE // 2494 + SYS___CASINHF_B = 0x9BF // 2495 + SYS___CASINHF_H = 0x9C0 // 2496 + SYS_CASINHL = 0x9C1 // 2497 + SYS___CASINHL_B = 0x9C2 // 2498 + SYS___CASINHL_H = 0x9C3 // 2499 + SYS_CATAN = 0x9C4 // 2500 + SYS___CATAN_B = 0x9C5 // 2501 + SYS___CATAN_H = 0x9C6 // 2502 + SYS_CATANF = 0x9C7 // 2503 + SYS___CATANF_B = 0x9C8 // 2504 + SYS___CATANF_H = 0x9C9 // 2505 + SYS_CATANL = 0x9CA // 2506 + SYS___CATANL_B = 0x9CB // 2507 + SYS___CATANL_H = 0x9CC // 2508 + SYS_CATANH = 0x9CD // 2509 + SYS___CATANH_B = 0x9CE // 2510 + SYS___CATANH_H = 0x9CF // 2511 + SYS_CATANHF = 0x9D0 // 2512 + SYS___CATANHF_B = 0x9D1 // 2513 + SYS___CATANHF_H = 0x9D2 // 2514 + SYS_CATANHL = 0x9D3 // 2515 + SYS___CATANHL_B = 0x9D4 // 2516 + SYS___CATANHL_H = 0x9D5 // 2517 + SYS_CCOS = 0x9D6 // 2518 + SYS___CCOS_B = 0x9D7 // 2519 + SYS___CCOS_H = 0x9D8 // 2520 + SYS_CCOSF = 0x9D9 // 2521 + SYS___CCOSF_B = 0x9DA // 2522 + SYS___CCOSF_H = 0x9DB // 2523 + SYS_CCOSL = 0x9DC // 2524 + SYS___CCOSL_B = 0x9DD // 2525 + SYS___CCOSL_H = 0x9DE // 2526 + SYS_CCOSH = 0x9DF // 2527 + SYS___CCOSH_B = 0x9E0 // 2528 + SYS___CCOSH_H = 0x9E1 // 2529 + SYS_CCOSHF = 0x9E2 // 2530 + SYS___CCOSHF_B = 0x9E3 // 2531 + SYS___CCOSHF_H = 0x9E4 // 2532 + SYS_CCOSHL = 0x9E5 // 2533 + SYS___CCOSHL_B = 0x9E6 // 2534 + SYS___CCOSHL_H = 0x9E7 // 2535 + SYS_CEXP = 0x9E8 // 2536 + SYS___CEXP_B = 0x9E9 // 2537 + SYS___CEXP_H = 0x9EA // 2538 + SYS_CEXPF = 0x9EB // 2539 + SYS___CEXPF_B = 0x9EC // 2540 + SYS___CEXPF_H = 0x9ED // 2541 + SYS_CEXPL = 0x9EE // 2542 + SYS___CEXPL_B = 0x9EF // 2543 + SYS___CEXPL_H = 0x9F0 // 2544 + SYS_CIMAG = 0x9F1 // 2545 + SYS___CIMAG_B = 0x9F2 // 2546 + SYS___CIMAG_H = 0x9F3 // 2547 + SYS_CIMAGF = 0x9F4 // 2548 + SYS___CIMAGF_B = 0x9F5 // 2549 + SYS___CIMAGF_H = 0x9F6 // 2550 + SYS_CIMAGL = 0x9F7 // 2551 + SYS___CIMAGL_B = 0x9F8 // 2552 + SYS___CIMAGL_H = 0x9F9 // 2553 + SYS___CLOG = 0x9FA // 2554 + SYS___CLOG_B = 0x9FB // 2555 + SYS___CLOG_H = 0x9FC // 2556 + SYS_CLOGF = 0x9FD // 2557 + SYS___CLOGF_B = 0x9FE // 2558 + SYS___CLOGF_H = 0x9FF // 2559 + SYS_CLOGL = 0xA00 // 2560 + SYS___CLOGL_B = 0xA01 // 2561 + SYS___CLOGL_H = 0xA02 // 2562 + SYS_CONJ = 0xA03 // 2563 + SYS___CONJ_B = 0xA04 // 2564 + SYS___CONJ_H = 0xA05 // 2565 + SYS_CONJF = 0xA06 // 2566 + SYS___CONJF_B = 0xA07 // 2567 + SYS___CONJF_H = 0xA08 // 2568 + SYS_CONJL = 0xA09 // 2569 + SYS___CONJL_B = 0xA0A // 2570 + SYS___CONJL_H = 0xA0B // 2571 + SYS_CPOW = 0xA0C // 2572 + SYS___CPOW_B = 0xA0D // 2573 + SYS___CPOW_H = 0xA0E // 2574 + SYS_CPOWF = 0xA0F // 2575 + SYS___CPOWF_B = 0xA10 // 2576 + SYS___CPOWF_H = 0xA11 // 2577 + SYS_CPOWL = 0xA12 // 2578 + SYS___CPOWL_B = 0xA13 // 2579 + SYS___CPOWL_H = 0xA14 // 2580 + SYS_CPROJ = 0xA15 // 2581 + SYS___CPROJ_B = 0xA16 // 2582 + SYS___CPROJ_H = 0xA17 // 2583 + SYS_CPROJF = 0xA18 // 2584 + SYS___CPROJF_B = 0xA19 // 2585 + SYS___CPROJF_H = 0xA1A // 2586 + SYS_CPROJL = 0xA1B // 2587 + SYS___CPROJL_B = 0xA1C // 2588 + SYS___CPROJL_H = 0xA1D // 2589 + SYS_CREAL = 0xA1E // 2590 + SYS___CREAL_B = 0xA1F // 2591 + SYS___CREAL_H = 0xA20 // 2592 + SYS_CREALF = 0xA21 // 2593 + SYS___CREALF_B = 0xA22 // 2594 + SYS___CREALF_H = 0xA23 // 2595 + SYS_CREALL = 0xA24 // 2596 + SYS___CREALL_B = 0xA25 // 2597 + SYS___CREALL_H = 0xA26 // 2598 + SYS_CSIN = 0xA27 // 2599 + SYS___CSIN_B = 0xA28 // 2600 + SYS___CSIN_H = 0xA29 // 2601 + SYS_CSINF = 0xA2A // 2602 + SYS___CSINF_B = 0xA2B // 2603 + SYS___CSINF_H = 0xA2C // 2604 + SYS_CSINL = 0xA2D // 2605 + SYS___CSINL_B = 0xA2E // 2606 + SYS___CSINL_H = 0xA2F // 2607 + SYS_CSINH = 0xA30 // 2608 + SYS___CSINH_B = 0xA31 // 2609 + SYS___CSINH_H = 0xA32 // 2610 + SYS_CSINHF = 0xA33 // 2611 + SYS___CSINHF_B = 0xA34 // 2612 + SYS___CSINHF_H = 0xA35 // 2613 + SYS_CSINHL = 0xA36 // 2614 + SYS___CSINHL_B = 0xA37 // 2615 + SYS___CSINHL_H = 0xA38 // 2616 + SYS_CSQRT = 0xA39 // 2617 + SYS___CSQRT_B = 0xA3A // 2618 + SYS___CSQRT_H = 0xA3B // 2619 + SYS_CSQRTF = 0xA3C // 2620 + SYS___CSQRTF_B = 0xA3D // 2621 + SYS___CSQRTF_H = 0xA3E // 2622 + SYS_CSQRTL = 0xA3F // 2623 + SYS___CSQRTL_B = 0xA40 // 2624 + SYS___CSQRTL_H = 0xA41 // 2625 + SYS_CTAN = 0xA42 // 2626 + SYS___CTAN_B = 0xA43 // 2627 + SYS___CTAN_H = 0xA44 // 2628 + SYS_CTANF = 0xA45 // 2629 + SYS___CTANF_B = 0xA46 // 2630 + SYS___CTANF_H = 0xA47 // 2631 + SYS_CTANL = 0xA48 // 2632 + SYS___CTANL_B = 0xA49 // 2633 + SYS___CTANL_H = 0xA4A // 2634 + SYS_CTANH = 0xA4B // 2635 + SYS___CTANH_B = 0xA4C // 2636 + SYS___CTANH_H = 0xA4D // 2637 + SYS_CTANHF = 0xA4E // 2638 + SYS___CTANHF_B = 0xA4F // 2639 + SYS___CTANHF_H = 0xA50 // 2640 + SYS_CTANHL = 0xA51 // 2641 + SYS___CTANHL_B = 0xA52 // 2642 + SYS___CTANHL_H = 0xA53 // 2643 + SYS___ACOSHF_H = 0xA54 // 2644 + SYS___ACOSHL_H = 0xA55 // 2645 + SYS___ASINHF_H = 0xA56 // 2646 + SYS___ASINHL_H = 0xA57 // 2647 + SYS___CBRTF_H = 0xA58 // 2648 + SYS___CBRTL_H = 0xA59 // 2649 + SYS___COPYSIGN_B = 0xA5A // 2650 + SYS___EXPM1F_H = 0xA5B // 2651 + SYS___EXPM1L_H = 0xA5C // 2652 + SYS___EXP2_H = 0xA5D // 2653 + SYS___EXP2F_H = 0xA5E // 2654 + SYS___EXP2L_H = 0xA5F // 2655 + SYS___LOG1PF_H = 0xA60 // 2656 + SYS___LOG1PL_H = 0xA61 // 2657 + SYS___LGAMMAL_H = 0xA62 // 2658 + SYS_FMA = 0xA63 // 2659 + SYS___FMA_B = 0xA64 // 2660 + SYS___FMA_H = 0xA65 // 2661 + SYS_FMAF = 0xA66 // 2662 + SYS___FMAF_B = 0xA67 // 2663 + SYS___FMAF_H = 0xA68 // 2664 + SYS_FMAL = 0xA69 // 2665 + SYS___FMAL_B = 0xA6A // 2666 + SYS___FMAL_H = 0xA6B // 2667 + SYS_FMAX = 0xA6C // 2668 + SYS___FMAX_B = 0xA6D // 2669 + SYS___FMAX_H = 0xA6E // 2670 + SYS_FMAXF = 0xA6F // 2671 + SYS___FMAXF_B = 0xA70 // 2672 + SYS___FMAXF_H = 0xA71 // 2673 + SYS_FMAXL = 0xA72 // 2674 + SYS___FMAXL_B = 0xA73 // 2675 + SYS___FMAXL_H = 0xA74 // 2676 + SYS_FMIN = 0xA75 // 2677 + SYS___FMIN_B = 0xA76 // 2678 + SYS___FMIN_H = 0xA77 // 2679 + SYS_FMINF = 0xA78 // 2680 + SYS___FMINF_B = 0xA79 // 2681 + SYS___FMINF_H = 0xA7A // 2682 + SYS_FMINL = 0xA7B // 2683 + SYS___FMINL_B = 0xA7C // 2684 + SYS___FMINL_H = 0xA7D // 2685 + SYS_ILOGBF = 0xA7E // 2686 + SYS___ILOGBF_B = 0xA7F // 2687 + SYS___ILOGBF_H = 0xA80 // 2688 + SYS_ILOGBL = 0xA81 // 2689 + SYS___ILOGBL_B = 0xA82 // 2690 + SYS___ILOGBL_H = 0xA83 // 2691 + SYS_LLRINT = 0xA84 // 2692 + SYS___LLRINT_B = 0xA85 // 2693 + SYS___LLRINT_H = 0xA86 // 2694 + SYS_LLRINTF = 0xA87 // 2695 + SYS___LLRINTF_B = 0xA88 // 2696 + SYS___LLRINTF_H = 0xA89 // 2697 + SYS_LLRINTL = 0xA8A // 2698 + SYS___LLRINTL_B = 0xA8B // 2699 + SYS___LLRINTL_H = 0xA8C // 2700 + SYS_LLROUND = 0xA8D // 2701 + SYS___LLROUND_B = 0xA8E // 2702 + SYS___LLROUND_H = 0xA8F // 2703 + SYS_LLROUNDF = 0xA90 // 2704 + SYS___LLROUNDF_B = 0xA91 // 2705 + SYS___LLROUNDF_H = 0xA92 // 2706 + SYS_LLROUNDL = 0xA93 // 2707 + SYS___LLROUNDL_B = 0xA94 // 2708 + SYS___LLROUNDL_H = 0xA95 // 2709 + SYS_LOGBF = 0xA96 // 2710 + SYS___LOGBF_B = 0xA97 // 2711 + SYS___LOGBF_H = 0xA98 // 2712 + SYS_LOGBL = 0xA99 // 2713 + SYS___LOGBL_B = 0xA9A // 2714 + SYS___LOGBL_H = 0xA9B // 2715 + SYS_LRINT = 0xA9C // 2716 + SYS___LRINT_B = 0xA9D // 2717 + SYS___LRINT_H = 0xA9E // 2718 + SYS_LRINTF = 0xA9F // 2719 + SYS___LRINTF_B = 0xAA0 // 2720 + SYS___LRINTF_H = 0xAA1 // 2721 + SYS_LRINTL = 0xAA2 // 2722 + SYS___LRINTL_B = 0xAA3 // 2723 + SYS___LRINTL_H = 0xAA4 // 2724 + SYS_LROUNDL = 0xAA5 // 2725 + SYS___LROUNDL_B = 0xAA6 // 2726 + SYS___LROUNDL_H = 0xAA7 // 2727 + SYS_NAN = 0xAA8 // 2728 + SYS___NAN_B = 0xAA9 // 2729 + SYS_NANF = 0xAAA // 2730 + SYS___NANF_B = 0xAAB // 2731 + SYS_NANL = 0xAAC // 2732 + SYS___NANL_B = 0xAAD // 2733 + SYS_NEARBYINT = 0xAAE // 2734 + SYS___NEARBYINT_B = 0xAAF // 2735 + SYS___NEARBYINT_H = 0xAB0 // 2736 + SYS_NEARBYINTF = 0xAB1 // 2737 + SYS___NEARBYINTF_B = 0xAB2 // 2738 + SYS___NEARBYINTF_H = 0xAB3 // 2739 + SYS_NEARBYINTL = 0xAB4 // 2740 + SYS___NEARBYINTL_B = 0xAB5 // 2741 + SYS___NEARBYINTL_H = 0xAB6 // 2742 + SYS_NEXTAFTERF = 0xAB7 // 2743 + SYS___NEXTAFTERF_B = 0xAB8 // 2744 + SYS___NEXTAFTERF_H = 0xAB9 // 2745 + SYS_NEXTAFTERL = 0xABA // 2746 + SYS___NEXTAFTERL_B = 0xABB // 2747 + SYS___NEXTAFTERL_H = 0xABC // 2748 + SYS_NEXTTOWARD = 0xABD // 2749 + SYS___NEXTTOWARD_B = 0xABE // 2750 + SYS___NEXTTOWARD_H = 0xABF // 2751 + SYS_NEXTTOWARDF = 0xAC0 // 2752 + SYS___NEXTTOWARDF_B = 0xAC1 // 2753 + SYS___NEXTTOWARDF_H = 0xAC2 // 2754 + SYS_NEXTTOWARDL = 0xAC3 // 2755 + SYS___NEXTTOWARDL_B = 0xAC4 // 2756 + SYS___NEXTTOWARDL_H = 0xAC5 // 2757 + SYS___REMAINDERF_H = 0xAC6 // 2758 + SYS___REMAINDERL_H = 0xAC7 // 2759 + SYS___REMQUO_H = 0xAC8 // 2760 + SYS___REMQUOF_H = 0xAC9 // 2761 + SYS___REMQUOL_H = 0xACA // 2762 + SYS_RINTF = 0xACB // 2763 + SYS___RINTF_B = 0xACC // 2764 + SYS_RINTL = 0xACD // 2765 + SYS___RINTL_B = 0xACE // 2766 + SYS_ROUND = 0xACF // 2767 + SYS___ROUND_B = 0xAD0 // 2768 + SYS___ROUND_H = 0xAD1 // 2769 + SYS_ROUNDF = 0xAD2 // 2770 + SYS___ROUNDF_B = 0xAD3 // 2771 + SYS___ROUNDF_H = 0xAD4 // 2772 + SYS_ROUNDL = 0xAD5 // 2773 + SYS___ROUNDL_B = 0xAD6 // 2774 + SYS___ROUNDL_H = 0xAD7 // 2775 + SYS_SCALBLN = 0xAD8 // 2776 + SYS___SCALBLN_B = 0xAD9 // 2777 + SYS___SCALBLN_H = 0xADA // 2778 + SYS_SCALBLNF = 0xADB // 2779 + SYS___SCALBLNF_B = 0xADC // 2780 + SYS___SCALBLNF_H = 0xADD // 2781 + SYS_SCALBLNL = 0xADE // 2782 + SYS___SCALBLNL_B = 0xADF // 2783 + SYS___SCALBLNL_H = 0xAE0 // 2784 + SYS___SCALBN_B = 0xAE1 // 2785 + SYS___SCALBN_H = 0xAE2 // 2786 + SYS_SCALBNF = 0xAE3 // 2787 + SYS___SCALBNF_B = 0xAE4 // 2788 + SYS___SCALBNF_H = 0xAE5 // 2789 + SYS_SCALBNL = 0xAE6 // 2790 + SYS___SCALBNL_B = 0xAE7 // 2791 + SYS___SCALBNL_H = 0xAE8 // 2792 + SYS___TGAMMAL_H = 0xAE9 // 2793 + SYS_FECLEAREXCEPT = 0xAEA // 2794 + SYS_FEGETENV = 0xAEB // 2795 + SYS_FEGETEXCEPTFLAG = 0xAEC // 2796 + SYS_FEGETROUND = 0xAED // 2797 + SYS_FEHOLDEXCEPT = 0xAEE // 2798 + SYS_FERAISEEXCEPT = 0xAEF // 2799 + SYS_FESETENV = 0xAF0 // 2800 + SYS_FESETEXCEPTFLAG = 0xAF1 // 2801 + SYS_FESETROUND = 0xAF2 // 2802 + SYS_FETESTEXCEPT = 0xAF3 // 2803 + SYS_FEUPDATEENV = 0xAF4 // 2804 + SYS___COPYSIGN_H = 0xAF5 // 2805 + SYS___HYPOTF_H = 0xAF6 // 2806 + SYS___HYPOTL_H = 0xAF7 // 2807 + SYS___CLASS = 0xAFA // 2810 + SYS___CLASS_B = 0xAFB // 2811 + SYS___CLASS_H = 0xAFC // 2812 + SYS___ISBLANK_A = 0xB2E // 2862 + SYS___ISWBLANK_A = 0xB2F // 2863 + SYS___LROUND_FIXUP = 0xB30 // 2864 + SYS___LROUNDF_FIXUP = 0xB31 // 2865 + SYS_SCHED_YIELD = 0xB32 // 2866 + SYS_STRERROR_R = 0xB33 // 2867 + SYS_UNSETENV = 0xB34 // 2868 + SYS___LGAMMA_H_C99 = 0xB38 // 2872 + SYS___LGAMMA_B_C99 = 0xB39 // 2873 + SYS___LGAMMA_R_C99 = 0xB3A // 2874 + SYS___FTELL2 = 0xB3B // 2875 + SYS___FSEEK2 = 0xB3C // 2876 + SYS___STATIC_REINIT = 0xB3D // 2877 + SYS_PTHREAD_ATTR_GETSTACK = 0xB3E // 2878 + SYS_PTHREAD_ATTR_SETSTACK = 0xB3F // 2879 + SYS___TGAMMA_H_C99 = 0xB78 // 2936 + SYS___TGAMMAF_H_C99 = 0xB79 // 2937 + SYS___LE_TRACEBACK = 0xB7A // 2938 + SYS___MUST_STAY_CLEAN = 0xB7C // 2940 + SYS___O_ENV = 0xB7D // 2941 + SYS_ACOSD32 = 0xB7E // 2942 + SYS_ACOSD64 = 0xB7F // 2943 + SYS_ACOSD128 = 0xB80 // 2944 + SYS_ACOSHD32 = 0xB81 // 2945 + SYS_ACOSHD64 = 0xB82 // 2946 + SYS_ACOSHD128 = 0xB83 // 2947 + SYS_ASIND32 = 0xB84 // 2948 + SYS_ASIND64 = 0xB85 // 2949 + SYS_ASIND128 = 0xB86 // 2950 + SYS_ASINHD32 = 0xB87 // 2951 + SYS_ASINHD64 = 0xB88 // 2952 + SYS_ASINHD128 = 0xB89 // 2953 + SYS_ATAND32 = 0xB8A // 2954 + SYS_ATAND64 = 0xB8B // 2955 + SYS_ATAND128 = 0xB8C // 2956 + SYS_ATAN2D32 = 0xB8D // 2957 + SYS_ATAN2D64 = 0xB8E // 2958 + SYS_ATAN2D128 = 0xB8F // 2959 + SYS_ATANHD32 = 0xB90 // 2960 + SYS_ATANHD64 = 0xB91 // 2961 + SYS_ATANHD128 = 0xB92 // 2962 + SYS_CBRTD32 = 0xB93 // 2963 + SYS_CBRTD64 = 0xB94 // 2964 + SYS_CBRTD128 = 0xB95 // 2965 + SYS_CEILD32 = 0xB96 // 2966 + SYS_CEILD64 = 0xB97 // 2967 + SYS_CEILD128 = 0xB98 // 2968 + SYS___CLASS2 = 0xB99 // 2969 + SYS___CLASS2_B = 0xB9A // 2970 + SYS___CLASS2_H = 0xB9B // 2971 + SYS_COPYSIGND32 = 0xB9C // 2972 + SYS_COPYSIGND64 = 0xB9D // 2973 + SYS_COPYSIGND128 = 0xB9E // 2974 + SYS_COSD32 = 0xB9F // 2975 + SYS_COSD64 = 0xBA0 // 2976 + SYS_COSD128 = 0xBA1 // 2977 + SYS_COSHD32 = 0xBA2 // 2978 + SYS_COSHD64 = 0xBA3 // 2979 + SYS_COSHD128 = 0xBA4 // 2980 + SYS_ERFD32 = 0xBA5 // 2981 + SYS_ERFD64 = 0xBA6 // 2982 + SYS_ERFD128 = 0xBA7 // 2983 + SYS_ERFCD32 = 0xBA8 // 2984 + SYS_ERFCD64 = 0xBA9 // 2985 + SYS_ERFCD128 = 0xBAA // 2986 + SYS_EXPD32 = 0xBAB // 2987 + SYS_EXPD64 = 0xBAC // 2988 + SYS_EXPD128 = 0xBAD // 2989 + SYS_EXP2D32 = 0xBAE // 2990 + SYS_EXP2D64 = 0xBAF // 2991 + SYS_EXP2D128 = 0xBB0 // 2992 + SYS_EXPM1D32 = 0xBB1 // 2993 + SYS_EXPM1D64 = 0xBB2 // 2994 + SYS_EXPM1D128 = 0xBB3 // 2995 + SYS_FABSD32 = 0xBB4 // 2996 + SYS_FABSD64 = 0xBB5 // 2997 + SYS_FABSD128 = 0xBB6 // 2998 + SYS_FDIMD32 = 0xBB7 // 2999 + SYS_FDIMD64 = 0xBB8 // 3000 + SYS_FDIMD128 = 0xBB9 // 3001 + SYS_FE_DEC_GETROUND = 0xBBA // 3002 + SYS_FE_DEC_SETROUND = 0xBBB // 3003 + SYS_FLOORD32 = 0xBBC // 3004 + SYS_FLOORD64 = 0xBBD // 3005 + SYS_FLOORD128 = 0xBBE // 3006 + SYS_FMAD32 = 0xBBF // 3007 + SYS_FMAD64 = 0xBC0 // 3008 + SYS_FMAD128 = 0xBC1 // 3009 + SYS_FMAXD32 = 0xBC2 // 3010 + SYS_FMAXD64 = 0xBC3 // 3011 + SYS_FMAXD128 = 0xBC4 // 3012 + SYS_FMIND32 = 0xBC5 // 3013 + SYS_FMIND64 = 0xBC6 // 3014 + SYS_FMIND128 = 0xBC7 // 3015 + SYS_FMODD32 = 0xBC8 // 3016 + SYS_FMODD64 = 0xBC9 // 3017 + SYS_FMODD128 = 0xBCA // 3018 + SYS___FP_CAST_D = 0xBCB // 3019 + SYS_FREXPD32 = 0xBCC // 3020 + SYS_FREXPD64 = 0xBCD // 3021 + SYS_FREXPD128 = 0xBCE // 3022 + SYS_HYPOTD32 = 0xBCF // 3023 + SYS_HYPOTD64 = 0xBD0 // 3024 + SYS_HYPOTD128 = 0xBD1 // 3025 + SYS_ILOGBD32 = 0xBD2 // 3026 + SYS_ILOGBD64 = 0xBD3 // 3027 + SYS_ILOGBD128 = 0xBD4 // 3028 + SYS_LDEXPD32 = 0xBD5 // 3029 + SYS_LDEXPD64 = 0xBD6 // 3030 + SYS_LDEXPD128 = 0xBD7 // 3031 + SYS_LGAMMAD32 = 0xBD8 // 3032 + SYS_LGAMMAD64 = 0xBD9 // 3033 + SYS_LGAMMAD128 = 0xBDA // 3034 + SYS_LLRINTD32 = 0xBDB // 3035 + SYS_LLRINTD64 = 0xBDC // 3036 + SYS_LLRINTD128 = 0xBDD // 3037 + SYS_LLROUNDD32 = 0xBDE // 3038 + SYS_LLROUNDD64 = 0xBDF // 3039 + SYS_LLROUNDD128 = 0xBE0 // 3040 + SYS_LOGD32 = 0xBE1 // 3041 + SYS_LOGD64 = 0xBE2 // 3042 + SYS_LOGD128 = 0xBE3 // 3043 + SYS_LOG10D32 = 0xBE4 // 3044 + SYS_LOG10D64 = 0xBE5 // 3045 + SYS_LOG10D128 = 0xBE6 // 3046 + SYS_LOG1PD32 = 0xBE7 // 3047 + SYS_LOG1PD64 = 0xBE8 // 3048 + SYS_LOG1PD128 = 0xBE9 // 3049 + SYS_LOG2D32 = 0xBEA // 3050 + SYS_LOG2D64 = 0xBEB // 3051 + SYS_LOG2D128 = 0xBEC // 3052 + SYS_LOGBD32 = 0xBED // 3053 + SYS_LOGBD64 = 0xBEE // 3054 + SYS_LOGBD128 = 0xBEF // 3055 + SYS_LRINTD32 = 0xBF0 // 3056 + SYS_LRINTD64 = 0xBF1 // 3057 + SYS_LRINTD128 = 0xBF2 // 3058 + SYS_LROUNDD32 = 0xBF3 // 3059 + SYS_LROUNDD64 = 0xBF4 // 3060 + SYS_LROUNDD128 = 0xBF5 // 3061 + SYS_MODFD32 = 0xBF6 // 3062 + SYS_MODFD64 = 0xBF7 // 3063 + SYS_MODFD128 = 0xBF8 // 3064 + SYS_NAND32 = 0xBF9 // 3065 + SYS_NAND64 = 0xBFA // 3066 + SYS_NAND128 = 0xBFB // 3067 + SYS_NEARBYINTD32 = 0xBFC // 3068 + SYS_NEARBYINTD64 = 0xBFD // 3069 + SYS_NEARBYINTD128 = 0xBFE // 3070 + SYS_NEXTAFTERD32 = 0xBFF // 3071 + SYS_NEXTAFTERD64 = 0xC00 // 3072 + SYS_NEXTAFTERD128 = 0xC01 // 3073 + SYS_NEXTTOWARDD32 = 0xC02 // 3074 + SYS_NEXTTOWARDD64 = 0xC03 // 3075 + SYS_NEXTTOWARDD128 = 0xC04 // 3076 + SYS_POWD32 = 0xC05 // 3077 + SYS_POWD64 = 0xC06 // 3078 + SYS_POWD128 = 0xC07 // 3079 + SYS_QUANTIZED32 = 0xC08 // 3080 + SYS_QUANTIZED64 = 0xC09 // 3081 + SYS_QUANTIZED128 = 0xC0A // 3082 + SYS_REMAINDERD32 = 0xC0B // 3083 + SYS_REMAINDERD64 = 0xC0C // 3084 + SYS_REMAINDERD128 = 0xC0D // 3085 + SYS___REMQUOD32 = 0xC0E // 3086 + SYS___REMQUOD64 = 0xC0F // 3087 + SYS___REMQUOD128 = 0xC10 // 3088 + SYS_RINTD32 = 0xC11 // 3089 + SYS_RINTD64 = 0xC12 // 3090 + SYS_RINTD128 = 0xC13 // 3091 + SYS_ROUNDD32 = 0xC14 // 3092 + SYS_ROUNDD64 = 0xC15 // 3093 + SYS_ROUNDD128 = 0xC16 // 3094 + SYS_SAMEQUANTUMD32 = 0xC17 // 3095 + SYS_SAMEQUANTUMD64 = 0xC18 // 3096 + SYS_SAMEQUANTUMD128 = 0xC19 // 3097 + SYS_SCALBLND32 = 0xC1A // 3098 + SYS_SCALBLND64 = 0xC1B // 3099 + SYS_SCALBLND128 = 0xC1C // 3100 + SYS_SCALBND32 = 0xC1D // 3101 + SYS_SCALBND64 = 0xC1E // 3102 + SYS_SCALBND128 = 0xC1F // 3103 + SYS_SIND32 = 0xC20 // 3104 + SYS_SIND64 = 0xC21 // 3105 + SYS_SIND128 = 0xC22 // 3106 + SYS_SINHD32 = 0xC23 // 3107 + SYS_SINHD64 = 0xC24 // 3108 + SYS_SINHD128 = 0xC25 // 3109 + SYS_SQRTD32 = 0xC26 // 3110 + SYS_SQRTD64 = 0xC27 // 3111 + SYS_SQRTD128 = 0xC28 // 3112 + SYS_STRTOD32 = 0xC29 // 3113 + SYS_STRTOD64 = 0xC2A // 3114 + SYS_STRTOD128 = 0xC2B // 3115 + SYS_TAND32 = 0xC2C // 3116 + SYS_TAND64 = 0xC2D // 3117 + SYS_TAND128 = 0xC2E // 3118 + SYS_TANHD32 = 0xC2F // 3119 + SYS_TANHD64 = 0xC30 // 3120 + SYS_TANHD128 = 0xC31 // 3121 + SYS_TGAMMAD32 = 0xC32 // 3122 + SYS_TGAMMAD64 = 0xC33 // 3123 + SYS_TGAMMAD128 = 0xC34 // 3124 + SYS_TRUNCD32 = 0xC3E // 3134 + SYS_TRUNCD64 = 0xC3F // 3135 + SYS_TRUNCD128 = 0xC40 // 3136 + SYS_WCSTOD32 = 0xC41 // 3137 + SYS_WCSTOD64 = 0xC42 // 3138 + SYS_WCSTOD128 = 0xC43 // 3139 + SYS___CODEPAGE_INFO = 0xC64 // 3172 + SYS_POSIX_OPENPT = 0xC66 // 3174 + SYS_PSELECT = 0xC67 // 3175 + SYS_SOCKATMARK = 0xC68 // 3176 + SYS_AIO_FSYNC = 0xC69 // 3177 + SYS_LIO_LISTIO = 0xC6A // 3178 + SYS___ATANPID32 = 0xC6B // 3179 + SYS___ATANPID64 = 0xC6C // 3180 + SYS___ATANPID128 = 0xC6D // 3181 + SYS___COSPID32 = 0xC6E // 3182 + SYS___COSPID64 = 0xC6F // 3183 + SYS___COSPID128 = 0xC70 // 3184 + SYS___SINPID32 = 0xC71 // 3185 + SYS___SINPID64 = 0xC72 // 3186 + SYS___SINPID128 = 0xC73 // 3187 + SYS_SETIPV4SOURCEFILTER = 0xC76 // 3190 + SYS_GETIPV4SOURCEFILTER = 0xC77 // 3191 + SYS_SETSOURCEFILTER = 0xC78 // 3192 + SYS_GETSOURCEFILTER = 0xC79 // 3193 + SYS_FWRITE_UNLOCKED = 0xC7A // 3194 + SYS_FREAD_UNLOCKED = 0xC7B // 3195 + SYS_FGETS_UNLOCKED = 0xC7C // 3196 + SYS_GETS_UNLOCKED = 0xC7D // 3197 + SYS_FPUTS_UNLOCKED = 0xC7E // 3198 + SYS_PUTS_UNLOCKED = 0xC7F // 3199 + SYS_FGETC_UNLOCKED = 0xC80 // 3200 + SYS_FPUTC_UNLOCKED = 0xC81 // 3201 + SYS_DLADDR = 0xC82 // 3202 + SYS_SHM_OPEN = 0xC8C // 3212 + SYS_SHM_UNLINK = 0xC8D // 3213 + SYS___CLASS2F = 0xC91 // 3217 + SYS___CLASS2L = 0xC92 // 3218 + SYS___CLASS2F_B = 0xC93 // 3219 + SYS___CLASS2F_H = 0xC94 // 3220 + SYS___CLASS2L_B = 0xC95 // 3221 + SYS___CLASS2L_H = 0xC96 // 3222 + SYS___CLASS2D32 = 0xC97 // 3223 + SYS___CLASS2D64 = 0xC98 // 3224 + SYS___CLASS2D128 = 0xC99 // 3225 + SYS___TOCSNAME2 = 0xC9A // 3226 + SYS___D1TOP = 0xC9B // 3227 + SYS___D2TOP = 0xC9C // 3228 + SYS___D4TOP = 0xC9D // 3229 + SYS___PTOD1 = 0xC9E // 3230 + SYS___PTOD2 = 0xC9F // 3231 + SYS___PTOD4 = 0xCA0 // 3232 + SYS_CLEARERR_UNLOCKED = 0xCA1 // 3233 + SYS_FDELREC_UNLOCKED = 0xCA2 // 3234 + SYS_FEOF_UNLOCKED = 0xCA3 // 3235 + SYS_FERROR_UNLOCKED = 0xCA4 // 3236 + SYS_FFLUSH_UNLOCKED = 0xCA5 // 3237 + SYS_FGETPOS_UNLOCKED = 0xCA6 // 3238 + SYS_FGETWC_UNLOCKED = 0xCA7 // 3239 + SYS_FGETWS_UNLOCKED = 0xCA8 // 3240 + SYS_FILENO_UNLOCKED = 0xCA9 // 3241 + SYS_FLDATA_UNLOCKED = 0xCAA // 3242 + SYS_FLOCATE_UNLOCKED = 0xCAB // 3243 + SYS_FPRINTF_UNLOCKED = 0xCAC // 3244 + SYS_FPUTWC_UNLOCKED = 0xCAD // 3245 + SYS_FPUTWS_UNLOCKED = 0xCAE // 3246 + SYS_FSCANF_UNLOCKED = 0xCAF // 3247 + SYS_FSEEK_UNLOCKED = 0xCB0 // 3248 + SYS_FSEEKO_UNLOCKED = 0xCB1 // 3249 + SYS_FSETPOS_UNLOCKED = 0xCB3 // 3251 + SYS_FTELL_UNLOCKED = 0xCB4 // 3252 + SYS_FTELLO_UNLOCKED = 0xCB5 // 3253 + SYS_FUPDATE_UNLOCKED = 0xCB7 // 3255 + SYS_FWIDE_UNLOCKED = 0xCB8 // 3256 + SYS_FWPRINTF_UNLOCKED = 0xCB9 // 3257 + SYS_FWSCANF_UNLOCKED = 0xCBA // 3258 + SYS_GETWC_UNLOCKED = 0xCBB // 3259 + SYS_GETWCHAR_UNLOCKED = 0xCBC // 3260 + SYS_PERROR_UNLOCKED = 0xCBD // 3261 + SYS_PRINTF_UNLOCKED = 0xCBE // 3262 + SYS_PUTWC_UNLOCKED = 0xCBF // 3263 + SYS_PUTWCHAR_UNLOCKED = 0xCC0 // 3264 + SYS_REWIND_UNLOCKED = 0xCC1 // 3265 + SYS_SCANF_UNLOCKED = 0xCC2 // 3266 + SYS_UNGETC_UNLOCKED = 0xCC3 // 3267 + SYS_UNGETWC_UNLOCKED = 0xCC4 // 3268 + SYS_VFPRINTF_UNLOCKED = 0xCC5 // 3269 + SYS_VFSCANF_UNLOCKED = 0xCC7 // 3271 + SYS_VFWPRINTF_UNLOCKED = 0xCC9 // 3273 + SYS_VFWSCANF_UNLOCKED = 0xCCB // 3275 + SYS_VPRINTF_UNLOCKED = 0xCCD // 3277 + SYS_VSCANF_UNLOCKED = 0xCCF // 3279 + SYS_VWPRINTF_UNLOCKED = 0xCD1 // 3281 + SYS_VWSCANF_UNLOCKED = 0xCD3 // 3283 + SYS_WPRINTF_UNLOCKED = 0xCD5 // 3285 + SYS_WSCANF_UNLOCKED = 0xCD6 // 3286 + SYS_ASCTIME64 = 0xCD7 // 3287 + SYS_ASCTIME64_R = 0xCD8 // 3288 + SYS_CTIME64 = 0xCD9 // 3289 + SYS_CTIME64_R = 0xCDA // 3290 + SYS_DIFFTIME64 = 0xCDB // 3291 + SYS_GMTIME64 = 0xCDC // 3292 + SYS_GMTIME64_R = 0xCDD // 3293 + SYS_LOCALTIME64 = 0xCDE // 3294 + SYS_LOCALTIME64_R = 0xCDF // 3295 + SYS_MKTIME64 = 0xCE0 // 3296 + SYS_TIME64 = 0xCE1 // 3297 + SYS___LOGIN_APPLID = 0xCE2 // 3298 + SYS___PASSWD_APPLID = 0xCE3 // 3299 + SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 // 3300 + SYS___GETTHENT = 0xCE5 // 3301 + SYS_FREEIFADDRS = 0xCE6 // 3302 + SYS_GETIFADDRS = 0xCE7 // 3303 + SYS_POSIX_FALLOCATE = 0xCE8 // 3304 + SYS_POSIX_MEMALIGN = 0xCE9 // 3305 + SYS_SIZEOF_ALLOC = 0xCEA // 3306 + SYS_RESIZE_ALLOC = 0xCEB // 3307 + SYS_FREAD_NOUPDATE = 0xCEC // 3308 + SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED // 3309 + SYS_FGETPOS64 = 0xCEE // 3310 + SYS_FSEEK64 = 0xCEF // 3311 + SYS_FSEEKO64 = 0xCF0 // 3312 + SYS_FSETPOS64 = 0xCF1 // 3313 + SYS_FTELL64 = 0xCF2 // 3314 + SYS_FTELLO64 = 0xCF3 // 3315 + SYS_FGETPOS64_UNLOCKED = 0xCF4 // 3316 + SYS_FSEEK64_UNLOCKED = 0xCF5 // 3317 + SYS_FSEEKO64_UNLOCKED = 0xCF6 // 3318 + SYS_FSETPOS64_UNLOCKED = 0xCF7 // 3319 + SYS_FTELL64_UNLOCKED = 0xCF8 // 3320 + SYS_FTELLO64_UNLOCKED = 0xCF9 // 3321 + SYS_FOPEN_UNLOCKED = 0xCFA // 3322 + SYS_FREOPEN_UNLOCKED = 0xCFB // 3323 + SYS_FDOPEN_UNLOCKED = 0xCFC // 3324 + SYS_TMPFILE_UNLOCKED = 0xCFD // 3325 + SYS___MOSERVICES = 0xD3D // 3389 + SYS___GETTOD = 0xD3E // 3390 + SYS_C16RTOMB = 0xD40 // 3392 + SYS_C32RTOMB = 0xD41 // 3393 + SYS_MBRTOC16 = 0xD42 // 3394 + SYS_MBRTOC32 = 0xD43 // 3395 + SYS_QUANTEXPD32 = 0xD44 // 3396 + SYS_QUANTEXPD64 = 0xD45 // 3397 + SYS_QUANTEXPD128 = 0xD46 // 3398 + SYS___LOCALE_CTL = 0xD47 // 3399 + SYS___SMF_RECORD2 = 0xD48 // 3400 + SYS_FOPEN64 = 0xD49 // 3401 + SYS_FOPEN64_UNLOCKED = 0xD4A // 3402 + SYS_FREOPEN64 = 0xD4B // 3403 + SYS_FREOPEN64_UNLOCKED = 0xD4C // 3404 + SYS_TMPFILE64 = 0xD4D // 3405 + SYS_TMPFILE64_UNLOCKED = 0xD4E // 3406 + SYS_GETDATE64 = 0xD4F // 3407 + SYS_GETTIMEOFDAY64 = 0xD50 // 3408 + SYS_BIND2ADDRSEL = 0xD59 // 3417 + SYS_INET6_IS_SRCADDR = 0xD5A // 3418 + SYS___GETGRGID1 = 0xD5B // 3419 + SYS___GETGRNAM1 = 0xD5C // 3420 + SYS___FBUFSIZE = 0xD60 // 3424 + SYS___FPENDING = 0xD61 // 3425 + SYS___FLBF = 0xD62 // 3426 + SYS___FREADABLE = 0xD63 // 3427 + SYS___FWRITABLE = 0xD64 // 3428 + SYS___FREADING = 0xD65 // 3429 + SYS___FWRITING = 0xD66 // 3430 + SYS___FSETLOCKING = 0xD67 // 3431 + SYS__FLUSHLBF = 0xD68 // 3432 + SYS___FPURGE = 0xD69 // 3433 + SYS___FREADAHEAD = 0xD6A // 3434 + SYS___FSETERR = 0xD6B // 3435 + SYS___FPENDING_UNLOCKED = 0xD6C // 3436 + SYS___FREADING_UNLOCKED = 0xD6D // 3437 + SYS___FWRITING_UNLOCKED = 0xD6E // 3438 + SYS__FLUSHLBF_UNLOCKED = 0xD6F // 3439 + SYS___FPURGE_UNLOCKED = 0xD70 // 3440 + SYS___FREADAHEAD_UNLOCKED = 0xD71 // 3441 + SYS___LE_CEEGTJS = 0xD72 // 3442 + SYS___LE_RECORD_DUMP = 0xD73 // 3443 + SYS_FSTAT64 = 0xD74 // 3444 + SYS_LSTAT64 = 0xD75 // 3445 + SYS_STAT64 = 0xD76 // 3446 + SYS___READDIR2_64 = 0xD77 // 3447 + SYS___OPEN_STAT64 = 0xD78 // 3448 + SYS_FTW64 = 0xD79 // 3449 + SYS_NFTW64 = 0xD7A // 3450 + SYS_UTIME64 = 0xD7B // 3451 + SYS_UTIMES64 = 0xD7C // 3452 + SYS___GETIPC64 = 0xD7D // 3453 + SYS_MSGCTL64 = 0xD7E // 3454 + SYS_SEMCTL64 = 0xD7F // 3455 + SYS_SHMCTL64 = 0xD80 // 3456 + SYS_MSGXRCV64 = 0xD81 // 3457 + SYS___MGXR64 = 0xD81 // 3457 + SYS_W_GETPSENT64 = 0xD82 // 3458 + SYS_PTHREAD_COND_TIMEDWAIT64 = 0xD83 // 3459 + SYS_FTIME64 = 0xD85 // 3461 + SYS_GETUTXENT64 = 0xD86 // 3462 + SYS_GETUTXID64 = 0xD87 // 3463 + SYS_GETUTXLINE64 = 0xD88 // 3464 + SYS_PUTUTXLINE64 = 0xD89 // 3465 + SYS_NEWLOCALE = 0xD8A // 3466 + SYS_FREELOCALE = 0xD8B // 3467 + SYS_USELOCALE = 0xD8C // 3468 + SYS_DUPLOCALE = 0xD8D // 3469 + SYS___CHATTR64 = 0xD9C // 3484 + SYS___LCHATTR64 = 0xD9D // 3485 + SYS___FCHATTR64 = 0xD9E // 3486 + SYS_____CHATTR64_A = 0xD9F // 3487 + SYS_____LCHATTR64_A = 0xDA0 // 3488 + SYS___LE_CEEUSGD = 0xDA1 // 3489 + SYS___LE_IFAM_CON = 0xDA2 // 3490 + SYS___LE_IFAM_DSC = 0xDA3 // 3491 + SYS___LE_IFAM_GET = 0xDA4 // 3492 + SYS___LE_IFAM_QRY = 0xDA5 // 3493 + SYS_ALIGNED_ALLOC = 0xDA6 // 3494 + SYS_ACCEPT4 = 0xDA7 // 3495 + SYS___ACCEPT4_A = 0xDA8 // 3496 + SYS_COPYFILERANGE = 0xDA9 // 3497 + SYS_GETLINE = 0xDAA // 3498 + SYS___GETLINE_A = 0xDAB // 3499 + SYS_DIRFD = 0xDAC // 3500 + SYS_CLOCK_GETTIME = 0xDAD // 3501 + SYS_DUP3 = 0xDAE // 3502 + SYS_EPOLL_CREATE = 0xDAF // 3503 + SYS_EPOLL_CREATE1 = 0xDB0 // 3504 + SYS_EPOLL_CTL = 0xDB1 // 3505 + SYS_EPOLL_WAIT = 0xDB2 // 3506 + SYS_EPOLL_PWAIT = 0xDB3 // 3507 + SYS_EVENTFD = 0xDB4 // 3508 + SYS_STATFS = 0xDB5 // 3509 + SYS___STATFS_A = 0xDB6 // 3510 + SYS_FSTATFS = 0xDB7 // 3511 + SYS_INOTIFY_INIT = 0xDB8 // 3512 + SYS_INOTIFY_INIT1 = 0xDB9 // 3513 + SYS_INOTIFY_ADD_WATCH = 0xDBA // 3514 + SYS___INOTIFY_ADD_WATCH_A = 0xDBB // 3515 + SYS_INOTIFY_RM_WATCH = 0xDBC // 3516 + SYS_PIPE2 = 0xDBD // 3517 + SYS_PIVOT_ROOT = 0xDBE // 3518 + SYS___PIVOT_ROOT_A = 0xDBF // 3519 + SYS_PRCTL = 0xDC0 // 3520 + SYS_PRLIMIT = 0xDC1 // 3521 + SYS_SETHOSTNAME = 0xDC2 // 3522 + SYS___SETHOSTNAME_A = 0xDC3 // 3523 + SYS_SETRESUID = 0xDC4 // 3524 + SYS_SETRESGID = 0xDC5 // 3525 + SYS_PTHREAD_CONDATTR_GETCLOCK = 0xDC6 // 3526 + SYS_FLOCK = 0xDC7 // 3527 + SYS_FGETXATTR = 0xDC8 // 3528 + SYS___FGETXATTR_A = 0xDC9 // 3529 + SYS_FLISTXATTR = 0xDCA // 3530 + SYS___FLISTXATTR_A = 0xDCB // 3531 + SYS_FREMOVEXATTR = 0xDCC // 3532 + SYS___FREMOVEXATTR_A = 0xDCD // 3533 + SYS_FSETXATTR = 0xDCE // 3534 + SYS___FSETXATTR_A = 0xDCF // 3535 + SYS_GETXATTR = 0xDD0 // 3536 + SYS___GETXATTR_A = 0xDD1 // 3537 + SYS_LGETXATTR = 0xDD2 // 3538 + SYS___LGETXATTR_A = 0xDD3 // 3539 + SYS_LISTXATTR = 0xDD4 // 3540 + SYS___LISTXATTR_A = 0xDD5 // 3541 + SYS_LLISTXATTR = 0xDD6 // 3542 + SYS___LLISTXATTR_A = 0xDD7 // 3543 + SYS_LREMOVEXATTR = 0xDD8 // 3544 + SYS___LREMOVEXATTR_A = 0xDD9 // 3545 + SYS_LSETXATTR = 0xDDA // 3546 + SYS___LSETXATTR_A = 0xDDB // 3547 + SYS_REMOVEXATTR = 0xDDC // 3548 + SYS___REMOVEXATTR_A = 0xDDD // 3549 + SYS_SETXATTR = 0xDDE // 3550 + SYS___SETXATTR_A = 0xDDF // 3551 + SYS_FDATASYNC = 0xDE0 // 3552 + SYS_SYNCFS = 0xDE1 // 3553 + SYS_FUTIMES = 0xDE2 // 3554 + SYS_FUTIMESAT = 0xDE3 // 3555 + SYS___FUTIMESAT_A = 0xDE4 // 3556 + SYS_LUTIMES = 0xDE5 // 3557 + SYS___LUTIMES_A = 0xDE6 // 3558 + SYS_INET_ATON = 0xDE7 // 3559 + SYS_GETRANDOM = 0xDE8 // 3560 + SYS_GETTID = 0xDE9 // 3561 + SYS_MEMFD_CREATE = 0xDEA // 3562 + SYS___MEMFD_CREATE_A = 0xDEB // 3563 + SYS_FACCESSAT = 0xDEC // 3564 + SYS___FACCESSAT_A = 0xDED // 3565 + SYS_FCHMODAT = 0xDEE // 3566 + SYS___FCHMODAT_A = 0xDEF // 3567 + SYS_FCHOWNAT = 0xDF0 // 3568 + SYS___FCHOWNAT_A = 0xDF1 // 3569 + SYS_FSTATAT = 0xDF2 // 3570 + SYS___FSTATAT_A = 0xDF3 // 3571 + SYS_LINKAT = 0xDF4 // 3572 + SYS___LINKAT_A = 0xDF5 // 3573 + SYS_MKDIRAT = 0xDF6 // 3574 + SYS___MKDIRAT_A = 0xDF7 // 3575 + SYS_MKFIFOAT = 0xDF8 // 3576 + SYS___MKFIFOAT_A = 0xDF9 // 3577 + SYS_MKNODAT = 0xDFA // 3578 + SYS___MKNODAT_A = 0xDFB // 3579 + SYS_OPENAT = 0xDFC // 3580 + SYS___OPENAT_A = 0xDFD // 3581 + SYS_READLINKAT = 0xDFE // 3582 + SYS___READLINKAT_A = 0xDFF // 3583 + SYS_RENAMEAT = 0xE00 // 3584 + SYS___RENAMEAT_A = 0xE01 // 3585 + SYS_RENAMEAT2 = 0xE02 // 3586 + SYS___RENAMEAT2_A = 0xE03 // 3587 + SYS_SYMLINKAT = 0xE04 // 3588 + SYS___SYMLINKAT_A = 0xE05 // 3589 + SYS_UNLINKAT = 0xE06 // 3590 + SYS___UNLINKAT_A = 0xE07 // 3591 + SYS_SYSINFO = 0xE08 // 3592 + SYS_WAIT4 = 0xE0A // 3594 + SYS_CLONE = 0xE0B // 3595 + SYS_UNSHARE = 0xE0C // 3596 + SYS_SETNS = 0xE0D // 3597 + SYS_CAPGET = 0xE0E // 3598 + SYS_CAPSET = 0xE0F // 3599 + SYS_STRCHRNUL = 0xE10 // 3600 + SYS_PTHREAD_CONDATTR_SETCLOCK = 0xE12 // 3602 + SYS_OPEN_BY_HANDLE_AT = 0xE13 // 3603 + SYS___OPEN_BY_HANDLE_AT_A = 0xE14 // 3604 + SYS___INET_ATON_A = 0xE15 // 3605 + SYS_MOUNT1 = 0xE16 // 3606 + SYS___MOUNT1_A = 0xE17 // 3607 + SYS_UMOUNT1 = 0xE18 // 3608 + SYS___UMOUNT1_A = 0xE19 // 3609 + SYS_UMOUNT2 = 0xE1A // 3610 + SYS___UMOUNT2_A = 0xE1B // 3611 + SYS___PRCTL_A = 0xE1C // 3612 + SYS_LOCALTIME_R2 = 0xE1D // 3613 + SYS___LOCALTIME_R2_A = 0xE1E // 3614 + SYS_OPENAT2 = 0xE1F // 3615 + SYS___OPENAT2_A = 0xE20 // 3616 + SYS___LE_CEEMICT = 0xE21 // 3617 + SYS_GETENTROPY = 0xE22 // 3618 + SYS_NANOSLEEP = 0xE23 // 3619 + SYS_UTIMENSAT = 0xE24 // 3620 + SYS___UTIMENSAT_A = 0xE25 // 3621 + SYS_ASPRINTF = 0xE26 // 3622 + SYS___ASPRINTF_A = 0xE27 // 3623 + SYS_VASPRINTF = 0xE28 // 3624 + SYS___VASPRINTF_A = 0xE29 // 3625 + SYS_DPRINTF = 0xE2A // 3626 + SYS___DPRINTF_A = 0xE2B // 3627 + SYS_GETOPT_LONG = 0xE2C // 3628 + SYS___GETOPT_LONG_A = 0xE2D // 3629 + SYS_PSIGNAL = 0xE2E // 3630 + SYS___PSIGNAL_A = 0xE2F // 3631 + SYS_PSIGNAL_UNLOCKED = 0xE30 // 3632 + SYS___PSIGNAL_UNLOCKED_A = 0xE31 // 3633 + SYS_FSTATAT_O = 0xE32 // 3634 + SYS___FSTATAT_O_A = 0xE33 // 3635 + SYS_FSTATAT64 = 0xE34 // 3636 + SYS___FSTATAT64_A = 0xE35 // 3637 + SYS___CHATTRAT = 0xE36 // 3638 + SYS_____CHATTRAT_A = 0xE37 // 3639 + SYS___CHATTRAT64 = 0xE38 // 3640 + SYS_____CHATTRAT64_A = 0xE39 // 3641 + SYS_MADVISE = 0xE3A // 3642 + SYS___AUTHENTICATE = 0xE3B // 3643 + +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go new file mode 100644 index 0000000..3e6d57c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -0,0 +1,353 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type off64 int64 +type off int32 +type Mode_t uint32 + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int32 + +type Tms struct{} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint32 + +type Stat_t struct { + Dev uint32 + Ino uint32 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Size int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int32 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint32 + Ino uint32 + Reclen uint16 + Namlen uint16 + Name [256]uint8 +} + +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 [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 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + 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 ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [2048]int32 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Losigs uint32 + Hisigs uint32 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint32 + Blocks uint32 + Bfree uint32 + Bavail uint32 + Files uint32 + Ffree uint32 + Fsid Fsid_t + Vfstype int32 + Fsize uint32 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 +} + +const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go new file mode 100644 index 0000000..3a219bd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -0,0 +1,357 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type off64 int64 +type off int64 +type Mode_t uint32 + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int64 + +type Tms struct{} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +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 Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint64 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint64 + Ssize int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 + Padto_ll uint32 + Size int64 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint64 + Ino uint64 + Reclen uint16 + Namlen uint16 + Name [256]uint8 + _ [4]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 [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 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +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 IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + 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 ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Set [4]uint64 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid64_t + Vfstype int32 + Fsize uint64 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 + _ [4]byte +} + +const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go new file mode 100644 index 0000000..17c53bd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -0,0 +1,878 @@ +// 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 + +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 int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +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 { + 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 { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +type Attrlist struct { + Bitmapcount uint16 + Reserved uint16 + Commonattr uint32 + Volattr uint32 + Dirattr uint32 + Fileattr uint32 + Forkattr uint32 +} + +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 [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + 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 RawSockaddrVM struct { + Len uint8 + Family uint8 + Reserved1 uint16 + Port uint32 + Cid uint32 +} + +type XVSockPCB struct { + Xv_len uint32 + Xv_vsockpp uint64 + Xvp_local_cid uint32 + Xvp_local_port uint32 + Xvp_remote_cid uint32 + Xvp_remote_port uint32 + Xvp_rxcnt uint32 + Xvp_txcnt uint32 + Xvp_peer_rxhiwat uint32 + Xvp_peer_rxcnt uint32 + Xvp_last_pid int32 + Xvp_gencnt uint64 + Xv_socket XSocket + _ [4]byte +} + +type XSocket struct { + Xso_len uint32 + Xso_so uint32 + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + So_pcb uint32 + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSocket64 struct { + Xso_len uint32 + _ [8]byte + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + _ [8]byte + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSockbuf struct { + Cc uint32 + Hiwat uint32 + Mbcnt uint32 + Mbmax uint32 + Lowat int32 + Flags int16 + Timeo int16 +} + +type XVSockPgen struct { + Len uint32 + Count uint64 + Gen uint64 + Sogen uint64 +} + +type _Socklen uint32 + +type SaeAssocID uint32 + +type SaeConnID uint32 + +type SaEndpoints struct { + Srcif uint32 + Srcaddr *RawSockaddr + Srcaddrlen uint32 + Dstaddr *RawSockaddr + Dstaddrlen uint32 + _ [4]byte +} + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + 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 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type TCPConnectionInfo struct { + State uint8 + Snd_wscale uint8 + Rcv_wscale uint8 + _ uint8 + Options uint32 + Flags uint32 + Rto uint32 + Maxseg uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Snd_wnd uint32 + Snd_sbbytes uint32 + Rcv_wnd uint32 + Rttcur uint32 + Srtt uint32 + Rttvar uint32 + Txpackets uint64 + Txbytes uint64 + Txretransmitbytes uint64 + Rxpackets uint64 + Rxbytes uint64 + Rxoutoforderbytes uint64 + Txretransmitpackets uint64 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofSockaddrVM = 0xc + SizeofXvsockpcb = 0xa8 + SizeofXSocket = 0x64 + SizeofXSockbuf = 0x18 + SizeofXVSockPgen = 0x20 + SizeofXucred = 0x4c + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofTCPConnectionInfo = 0x70 +) + +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]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfMsghdr2 = 0xa0 + SizeofIfData = 0x60 + SizeofIfData64 = 0x80 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMsghdr2 = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Snd_len int32 + Snd_maxlen int32 + Snd_drops int32 + Timer int32 + Data IfData64 +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfData64 struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Refcnt int32 + Parentflags int32 + Reserved int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +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 Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 + AT_EACCESS = 0x10 +) + +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 Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} + +const SizeofKinfoProc = 0x288 + +type Eproc struct { + Paddr uintptr + Sess uintptr + Pcred Pcred + Ucred Ucred + Vm Vmspace + Ppid int32 + Pgid int32 + Jobc int16 + Tdev int32 + Tpgid int32 + Tsess uintptr + Wmesg [8]byte + Xsize int32 + Xrssize int16 + Xccount int16 + Xswrss int16 + Flag int32 + Login [12]byte + Spare [4]int32 + _ [4]byte +} + +type ExternProc struct { + P_starttime Timeval + P_vmspace *Vmspace + P_sigacts uintptr + P_flag int32 + P_stat int8 + P_pid int32 + P_oppid int32 + P_dupfd int32 + User_stack *int8 + Exit_thread *byte + P_debugger int32 + Sigwait int32 + P_estcpu uint32 + P_cpticks int32 + P_pctcpu uint32 + P_wchan *byte + P_wmesg *int8 + P_swtime uint32 + P_slptime uint32 + P_realtimer Itimerval + P_rtime Timeval + P_uticks uint64 + P_sticks uint64 + P_iticks uint64 + P_traceflag int32 + P_tracep uintptr + P_siglist int32 + P_textvp uintptr + P_holdcnt int32 + P_sigmask uint32 + P_sigignore uint32 + P_sigcatch uint32 + P_priority uint8 + P_usrpri uint8 + P_nice int8 + P_comm [17]byte + P_pgrp uintptr + P_addr uintptr + P_xstat uint16 + P_acflag uint16 + P_ru *Rusage +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +type KinfoProc struct { + Proc ExternProc + Eproc Eproc +} + +type Vmspace struct { + Dummy int32 + Dummy2 *int8 + Dummy3 [5]int32 + Dummy4 [3]*int8 +} + +type Pcred struct { + Pc_lock [72]int8 + Pc_ucred uintptr + P_ruid uint32 + P_svuid uint32 + P_rgid uint32 + P_svgid uint32 + P_refcnt int32 + _ [4]byte +} + +type Ucred struct { + Ref int32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ uint16 + _ int32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Lpid int32 + Cpid int32 + Nattch uint16 + _ [34]byte +} + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go new file mode 100644 index 0000000..2392226 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -0,0 +1,878 @@ +// 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 + +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 int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +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 { + 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 { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +type Attrlist struct { + Bitmapcount uint16 + Reserved uint16 + Commonattr uint32 + Volattr uint32 + Dirattr uint32 + Fileattr uint32 + Forkattr uint32 +} + +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 [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + 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 RawSockaddrVM struct { + Len uint8 + Family uint8 + Reserved1 uint16 + Port uint32 + Cid uint32 +} + +type XVSockPCB struct { + Xv_len uint32 + Xv_vsockpp uint64 + Xvp_local_cid uint32 + Xvp_local_port uint32 + Xvp_remote_cid uint32 + Xvp_remote_port uint32 + Xvp_rxcnt uint32 + Xvp_txcnt uint32 + Xvp_peer_rxhiwat uint32 + Xvp_peer_rxcnt uint32 + Xvp_last_pid int32 + Xvp_gencnt uint64 + Xv_socket XSocket + _ [4]byte +} + +type XSocket struct { + Xso_len uint32 + Xso_so uint32 + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + So_pcb uint32 + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSocket64 struct { + Xso_len uint32 + _ [8]byte + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + _ [8]byte + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSockbuf struct { + Cc uint32 + Hiwat uint32 + Mbcnt uint32 + Mbmax uint32 + Lowat int32 + Flags int16 + Timeo int16 +} + +type XVSockPgen struct { + Len uint32 + Count uint64 + Gen uint64 + Sogen uint64 +} + +type _Socklen uint32 + +type SaeAssocID uint32 + +type SaeConnID uint32 + +type SaEndpoints struct { + Srcif uint32 + Srcaddr *RawSockaddr + Srcaddrlen uint32 + Dstaddr *RawSockaddr + Dstaddrlen uint32 + _ [4]byte +} + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + 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 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type TCPConnectionInfo struct { + State uint8 + Snd_wscale uint8 + Rcv_wscale uint8 + _ uint8 + Options uint32 + Flags uint32 + Rto uint32 + Maxseg uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Snd_wnd uint32 + Snd_sbbytes uint32 + Rcv_wnd uint32 + Rttcur uint32 + Srtt uint32 + Rttvar uint32 + Txpackets uint64 + Txbytes uint64 + Txretransmitbytes uint64 + Rxpackets uint64 + Rxbytes uint64 + Rxoutoforderbytes uint64 + Txretransmitpackets uint64 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofSockaddrVM = 0xc + SizeofXvsockpcb = 0xa8 + SizeofXSocket = 0x64 + SizeofXSockbuf = 0x18 + SizeofXVSockPgen = 0x20 + SizeofXucred = 0x4c + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofTCPConnectionInfo = 0x70 +) + +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]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfMsghdr2 = 0xa0 + SizeofIfData = 0x60 + SizeofIfData64 = 0x80 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMsghdr2 = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Snd_len int32 + Snd_maxlen int32 + Snd_drops int32 + Timer int32 + Data IfData64 +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfData64 struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Refcnt int32 + Parentflags int32 + Reserved int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +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 Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 + AT_EACCESS = 0x10 +) + +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 Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} + +const SizeofKinfoProc = 0x288 + +type Eproc struct { + Paddr uintptr + Sess uintptr + Pcred Pcred + Ucred Ucred + Vm Vmspace + Ppid int32 + Pgid int32 + Jobc int16 + Tdev int32 + Tpgid int32 + Tsess uintptr + Wmesg [8]byte + Xsize int32 + Xrssize int16 + Xccount int16 + Xswrss int16 + Flag int32 + Login [12]byte + Spare [4]int32 + _ [4]byte +} + +type ExternProc struct { + P_starttime Timeval + P_vmspace *Vmspace + P_sigacts uintptr + P_flag int32 + P_stat int8 + P_pid int32 + P_oppid int32 + P_dupfd int32 + User_stack *int8 + Exit_thread *byte + P_debugger int32 + Sigwait int32 + P_estcpu uint32 + P_cpticks int32 + P_pctcpu uint32 + P_wchan *byte + P_wmesg *int8 + P_swtime uint32 + P_slptime uint32 + P_realtimer Itimerval + P_rtime Timeval + P_uticks uint64 + P_sticks uint64 + P_iticks uint64 + P_traceflag int32 + P_tracep uintptr + P_siglist int32 + P_textvp uintptr + P_holdcnt int32 + P_sigmask uint32 + P_sigignore uint32 + P_sigcatch uint32 + P_priority uint8 + P_usrpri uint8 + P_nice int8 + P_comm [17]byte + P_pgrp uintptr + P_addr uintptr + P_xstat uint16 + P_acflag uint16 + P_ru *Rusage +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +type KinfoProc struct { + Proc ExternProc + Eproc Eproc +} + +type Vmspace struct { + Dummy int32 + Dummy2 *int8 + Dummy3 [5]int32 + Dummy4 [3]*int8 +} + +type Pcred struct { + Pc_lock [72]int8 + Pc_ucred uintptr + P_ruid uint32 + P_svuid uint32 + P_rgid uint32 + P_svgid uint32 + P_refcnt int32 + _ [4]byte +} + +type Ucred struct { + Ref int32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ uint16 + _ int32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Lpid int32 + Cpid int32 + Nattch uint16 + _ [34]byte +} + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go new file mode 100644 index 0000000..30e405b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -0,0 +1,473 @@ +// 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 + +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 int64 + Max int64 +} + +type _Gid_t uint32 + +type Stat_t struct { + 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 { + Spare2 int64 + Bsize int64 + Iosize int64 + Blocks int64 + Bfree int64 + Bavail int64 + Files int64 + Ffree int64 + Fsid Fsid + Owner uint32 + Type int32 + Flags int32 + Syncwrites int64 + Asyncwrites int64 + Fstypename [16]byte + Mntonname [80]byte + Syncreads int64 + Asyncreads int64 + Spares1 int16 + Mntfromname [80]byte + Spares2 int16 + Spare [2]int64 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Namlen uint16 + Type uint8 + Unused1 uint8 + Unused2 uint32 + 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 [12]int8 + Rcf uint16 + Route [16]uint16 +} + +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 int32 + 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 = 0x36 + 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 [16]uint64 +} + +const ( + SizeofIfMsghdr = 0xb0 + SizeofIfData = 0xa0 + SizeofIfaMsghdr = 0x18 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Data IfData +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Mtu uint64 + Metric uint64 + Link_state uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Oqdrops uint64 + Lastchange Timeval +} + +type IfaMsghdr struct { + 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 + Index uint16 + Flags int32 + Addrs int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Pksent uint64 + Expire uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Recvpipe uint64 + Hopcount uint64 + Mssopt uint16 + Pad uint16 + Msl uint64 + Iwmaxsegs uint64 + Iwcapsegs uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +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 Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = 0xfffafdcd + AT_SYMLINK_NOFOLLOW = 0x1 + AT_REMOVEDIR = 0x2 + AT_EACCESS = 0x4 + AT_SYMLINK_FOLLOW = 0x8 +) + +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 Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + 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 new file mode 100644 index 0000000..51e13eb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -0,0 +1,651 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Time_t int32 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + 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 Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + 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 = 0x36 + SizeofXucred = 0x50 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + 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 __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + 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 FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x60 + sizeofIfData = 0x98 + SizeofIfData = 0x50 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric 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 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + Epoch int32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + 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 new file mode 100644 index 0000000..d002d8e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -0,0 +1,656 @@ +// 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 + +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 Time_t 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 int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +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 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + 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 = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + 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 __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + 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 FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric 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 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + 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 new file mode 100644 index 0000000..3f863d8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -0,0 +1,642 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Time_t int64 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +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 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + 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 = 0x36 + SizeofXucred = 0x50 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + 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 __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [4]byte + _ [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R [13]uint32 + Sp uint32 + Lr uint32 + Pc uint32 + Cpsr uint32 +} + +type FpReg struct { + Fpsr uint32 + Fpr [8]FpExtendedPrecision +} + +type FpExtendedPrecision struct { + Exponent uint32 + Mantissa_hi uint32 + Mantissa_lo uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + _ [4]byte + Data int64 + Udata *byte + _ [4]byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x70 + sizeofIfData = 0x98 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric 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 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + _ [4]byte + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + 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 new file mode 100644 index 0000000..61c7293 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -0,0 +1,636 @@ +// 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 + +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 Time_t 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 int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +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 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + 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 = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + 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 __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + 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 FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric 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 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + 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_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go new file mode 100644 index 0000000..b5d1741 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go @@ -0,0 +1,638 @@ +// 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 riscv64 && freebsd + +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 Time_t 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 int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +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 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +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 Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + 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 = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + 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 __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T [7]uint64 + S [12]uint64 + A [8]uint64 + Sepc uint64 + Sstatus uint64 +} + +type FpReg struct { + X [32][2]uint64 + Fcsr uint64 +} + +type FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric 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 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Nhidx uint64 + Filler [2]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + 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_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go new file mode 100644 index 0000000..8bcac28 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -0,0 +1,6272 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go: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 +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +const ( + ADJ_OFFSET = 0x1 + ADJ_FREQUENCY = 0x2 + ADJ_MAXERROR = 0x4 + ADJ_ESTERROR = 0x8 + ADJ_STATUS = 0x10 + ADJ_TIMECONST = 0x20 + ADJ_TAI = 0x80 + ADJ_SETOFFSET = 0x100 + ADJ_MICRO = 0x1000 + ADJ_NANO = 0x2000 + ADJ_TICK = 0x4000 + ADJ_OFFSET_SINGLESHOT = 0x8001 + ADJ_OFFSET_SS_READ = 0xa001 +) + +const ( + STA_PLL = 0x1 + STA_PPSFREQ = 0x2 + STA_PPSTIME = 0x4 + STA_FLL = 0x8 + STA_INS = 0x10 + STA_DEL = 0x20 + STA_UNSYNC = 0x40 + STA_FREQHOLD = 0x80 + STA_PPSSIGNAL = 0x100 + STA_PPSJITTER = 0x200 + STA_PPSWANDER = 0x400 + STA_PPSERROR = 0x800 + STA_CLOCKERR = 0x1000 + STA_NANO = 0x2000 + STA_MODE = 0x4000 + STA_CLK = 0x8000 +) + +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 + Dio_mem_align uint32 + Dio_offset_align uint32 + Subvol uint64 + Atomic_write_unit_min uint32 + Atomic_write_unit_max uint32 + Atomic_write_segments_max uint32 + Dio_read_offset_align uint32 + _ [9]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 + Log2_data_unit_size uint8 + _ [3]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 RawSockaddrNFC struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 +} + +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 + Pacing_rate uint64 + Max_pacing_rate uint64 + Bytes_acked uint64 + Bytes_received uint64 + Segs_out uint32 + Segs_in uint32 + Notsent_bytes uint32 + Min_rtt uint32 + Data_segs_in uint32 + Data_segs_out uint32 + Delivery_rate uint64 + Busy_time uint64 + Rwnd_limited uint64 + Sndbuf_limited uint64 + Delivered uint32 + Delivered_ce uint32 + Bytes_sent uint64 + Bytes_retrans uint64 + Dsack_dups uint32 + Reord_seen uint32 + Rcv_ooopack uint32 + Snd_wnd uint32 + Rcv_wnd uint32 + Rehash uint32 + Total_rto uint16 + Total_rto_recoveries uint16 + Total_rto_time uint32 +} + +type TCPVegasInfo struct { + Enabled uint32 + Rttcnt uint32 + Rtt uint32 + Minrtt uint32 +} + +type TCPDCTCPInfo struct { + Enabled uint16 + Ce_state uint16 + Alpha uint32 + Ab_ecn uint32 + Ab_tot uint32 +} + +type TCPBBRInfo struct { + Bw_lo uint32 + Bw_hi uint32 + Min_rtt uint32 + Pacing_gain uint32 + Cwnd_gain uint32 +} + +type CanFilter struct { + Id uint32 + Mask uint32 +} + +type TCPRepairOpt struct { + Code uint32 + Val 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 + SizeofSockaddrNFC = 0x10 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0xf8 + SizeofTCPCCInfo = 0x14 + SizeofCanFilter = 0x8 + SizeofTCPRepairOpt = 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 ( + ICMP_FILTER = 0x1 + + ICMPV6_FILTER = 0x1 + ICMPV6_FILTER_BLOCK = 0x1 + ICMPV6_FILTER_BLOCKOTHERS = 0x3 + ICMPV6_FILTER_PASS = 0x2 + ICMPV6_FILTER_PASSONLY = 0x4 +) + +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_RECURSIVE = 0x8000 + + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 + + OPEN_TREE_CLONE = 0x1 + + MOVE_MOUNT_F_SYMLINKS = 0x1 + MOVE_MOUNT_F_AUTOMOUNTS = 0x2 + MOVE_MOUNT_F_EMPTY_PATH = 0x4 + MOVE_MOUNT_T_SYMLINKS = 0x10 + MOVE_MOUNT_T_AUTOMOUNTS = 0x20 + MOVE_MOUNT_T_EMPTY_PATH = 0x40 + MOVE_MOUNT_SET_GROUP = 0x100 + + FSOPEN_CLOEXEC = 0x1 + + FSPICK_CLOEXEC = 0x1 + FSPICK_SYMLINK_NOFOLLOW = 0x2 + FSPICK_NO_AUTOMOUNT = 0x4 + FSPICK_EMPTY_PATH = 0x8 + + FSMOUNT_CLOEXEC = 0x1 + + FSCONFIG_SET_FLAG = 0x0 + FSCONFIG_SET_STRING = 0x1 + FSCONFIG_SET_BINARY = 0x2 + FSCONFIG_SET_PATH = 0x3 + FSCONFIG_SET_PATH_EMPTY = 0x4 + FSCONFIG_SET_FD = 0x5 + FSCONFIG_CMD_CREATE = 0x6 + FSCONFIG_CMD_RECONFIGURE = 0x7 +) + +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 sigset_argpack struct { + ss *Sigset_t + ssLen uintptr +} + +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_CMD_GETPOLICY = 0xa + 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_POLICY = 0x8 + CTRL_ATTR_OP_POLICY = 0x9 + CTRL_ATTR_OP = 0xa + 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 + CTRL_ATTR_POLICY_UNSPEC = 0x0 + CTRL_ATTR_POLICY_DO = 0x1 + CTRL_ATTR_POLICY_DUMP = 0x2 + CTRL_ATTR_POLICY_DUMP_MAX = 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 + Aux_sample_size uint32 + _ uint32 + Sig_data uint64 +} + +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 + PerfBitWriteBackward = CBitFieldMaskBit27 +) + +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 = 0xc + 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_DATA_PAGE_SIZE = 0x400000 + PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 + PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 + PERF_SAMPLE_MAX = 0x2000000 + 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_PRIV_SAVE_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_COUNTERS = 0x80000 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x14 + 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_PRIV_SAVE = 0x40000 + PERF_SAMPLE_BRANCH_MAX = 0x100000 + 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_ERET = 0xb + PERF_BR_IRQ = 0xc + PERF_BR_SERROR = 0xd + PERF_BR_NO_TX = 0xe + PERF_BR_EXTEND_ABI = 0xf + PERF_BR_MAX = 0x10 + 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_LOST = 0x10 + PERF_FORMAT_MAX = 0x20 + 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_AUX_OUTPUT_HW_ID = 0x15 + PERF_RECORD_MAX = 0x16 + 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 + Ifindex int32 + 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_PARENT_DEV_NAME = 0x38 + IFLA_PARENT_DEV_BUS_NAME = 0x39 + IFLA_GRO_MAX_SIZE = 0x3a + IFLA_TSO_MAX_SIZE = 0x3b + IFLA_TSO_MAX_SEGS = 0x3c + IFLA_ALLMULTI = 0x3d + IFLA_DEVLINK_PORT = 0x3e + IFLA_GSO_IPV4_MAX_SIZE = 0x3f + IFLA_GRO_IPV4_MAX_SIZE = 0x40 + IFLA_DPLL_PIN = 0x41 + 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_INET6_RA_MTU = 0x9 + 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_BR_MCAST_QUERIER_STATE = 0x2f + IFLA_BR_FDB_N_LEARNED = 0x30 + IFLA_BR_FDB_MAX_LEARNED = 0x31 + 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_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 + IFLA_BRPORT_LOCKED = 0x27 + IFLA_BRPORT_MAB = 0x28 + IFLA_BRPORT_MCAST_N_GROUPS = 0x29 + IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b + IFLA_BRPORT_BACKUP_NHID = 0x2c + 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_MACVLAN_BC_QUEUE_LEN = 0x7 + IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 + IFLA_MACVLAN_BC_CUTOFF = 0x9 + 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_XFRM_COLLECT_METADATA = 0x3 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 + IFLA_NETKIT_UNSPEC = 0x0 + IFLA_NETKIT_PEER_INFO = 0x1 + IFLA_NETKIT_PRIMARY = 0x2 + IFLA_NETKIT_POLICY = 0x3 + IFLA_NETKIT_PEER_POLICY = 0x4 + IFLA_NETKIT_MODE = 0x5 + 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_VXLAN_VNIFILTER = 0x1e + IFLA_VXLAN_LOCALBYPASS = 0x1f + IFLA_VXLAN_LABEL_POLICY = 0x20 + 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_GENEVE_INNER_PROTO_INHERIT = 0xe + 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_GTP_CREATE_SOCKETS = 0x5 + IFLA_GTP_RESTART_COUNT = 0x6 + IFLA_GTP_LOCAL = 0x7 + IFLA_GTP_LOCAL6 = 0x8 + 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_LACP_ACTIVE = 0x1d + IFLA_BOND_MISSED_MAX = 0x1e + IFLA_BOND_NS_IP6_TARGET = 0x1f + IFLA_BOND_COUPLED_CONTROL = 0x20 + 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_BOND_SLAVE_PRIO = 0x9 + 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_HSR_INTERLINK = 0x8 + 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_STATS_GETSET_UNSPEC = 0x0 + IFLA_STATS_GET_FILTERS = 0x1 + IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 + IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 + IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 + IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 + IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 + IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 + 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 + IFLA_MCTP_UNSPEC = 0x0 + IFLA_MCTP_NET = 0x1 + IFLA_DSA_UNSPEC = 0x0 + IFLA_DSA_CONDUIT = 0x1 + IFLA_DSA_MASTER = 0x1 +) + +const ( + NETKIT_NEXT = -0x1 + NETKIT_PASS = 0x0 + NETKIT_DROP = 0x2 + NETKIT_REDIRECT = 0x7 + NETKIT_L2 = 0x0 + NETKIT_L3 = 0x1 +) + +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_EGRESS = 0x1 + NF_NETDEV_NUMHOOKS = 0x2 +) + +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 +) + +const SO_ORIGINAL_DST = 0x50 + +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_NEWFLOWTABLE = 0x16 + NFT_MSG_GETFLOWTABLE = 0x17 + NFT_MSG_DELFLOWTABLE = 0x18 + NFT_MSG_GETRULE_RESET = 0x19 + NFT_MSG_MAX = 0x22 + 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_INNER_HEADER = 0x3 + NFT_PAYLOAD_TUN_HEADER = 0x4 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_CSUM_SCTP = 0x2 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + 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 XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + Tx_metadata_len uint32 +} + +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_BIND_PHC = 0x8000 + SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 + + SOF_TIMESTAMPING_LAST = 0x20000 + SOF_TIMESTAMPING_MASK = 0x3ffff + + 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_CGROUP_ITER_ORDER_UNSPEC = 0x0 + BPF_CGROUP_ITER_SELF_ONLY = 0x1 + BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 + BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 + BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 + 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_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_DEPRECATED = 0x13 + 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_MAP_TYPE_TASK_STORAGE = 0x1d + BPF_MAP_TYPE_BLOOM_FILTER = 0x1e + BPF_MAP_TYPE_USER_RINGBUF = 0x1f + BPF_MAP_TYPE_CGRP_STORAGE = 0x20 + 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_PROG_TYPE_SYSCALL = 0x1f + BPF_PROG_TYPE_NETFILTER = 0x20 + 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_SK_SKB_VERDICT = 0x26 + BPF_SK_REUSEPORT_SELECT = 0x27 + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 + BPF_PERF_EVENT = 0x29 + BPF_TRACE_KPROBE_MULTI = 0x2a + BPF_LSM_CGROUP = 0x2b + BPF_STRUCT_OPS = 0x2c + BPF_NETFILTER = 0x2d + BPF_TCX_INGRESS = 0x2e + BPF_TCX_EGRESS = 0x2f + BPF_TRACE_UPROBE_MULTI = 0x30 + 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_LINK_TYPE_PERF_EVENT = 0x7 + BPF_LINK_TYPE_KPROBE_MULTI = 0x8 + BPF_LINK_TYPE_STRUCT_OPS = 0x9 + BPF_LINK_TYPE_NETFILTER = 0xa + BPF_LINK_TYPE_TCX = 0xb + BPF_LINK_TYPE_UPROBE_MULTI = 0xc + BPF_PERF_EVENT_UNSPEC = 0x0 + BPF_PERF_EVENT_UPROBE = 0x1 + BPF_PERF_EVENT_URETPROBE = 0x2 + BPF_PERF_EVENT_KPROBE = 0x3 + BPF_PERF_EVENT_KRETPROBE = 0x4 + BPF_PERF_EVENT_TRACEPOINT = 0x5 + BPF_PERF_EVENT_EVENT = 0x6 + BPF_F_KPROBE_MULTI_RETURN = 0x1 + BPF_F_UPROBE_MULTI_RETURN = 0x1 + 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_F_LINK = 0x2000 + BPF_F_PATH_FD = 0x4000 + 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_NO_TUNNEL_KEY = 0x10 + BPF_F_TUNINFO_FLAGS = 0x10 + 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_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 + BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 0x80 + BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 0x100 + 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_F_BPRM_SECUREEXEC = 0x1 + BPF_F_BROADCAST = 0x8 + BPF_F_EXCLUDE_INGRESS = 0x10 + BPF_SKB_TSTAMP_UNSPEC = 0x0 + BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_FLOW_DISSECTOR_CONTINUE = 0x81 + 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 = 0xe + 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_LOOKUP_SKIP_NEIGH = 0x4 + BPF_FIB_LOOKUP_TBID = 0x8 + 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_MTU_CHK_SEGS = 0x1 + BPF_MTU_CHK_RET_SUCCESS = 0x0 + BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 + BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 + 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 + BPF_CORE_FIELD_BYTE_OFFSET = 0x0 + BPF_CORE_FIELD_BYTE_SIZE = 0x1 + BPF_CORE_FIELD_EXISTS = 0x2 + BPF_CORE_FIELD_SIGNED = 0x3 + BPF_CORE_FIELD_LSHIFT_U64 = 0x4 + BPF_CORE_FIELD_RSHIFT_U64 = 0x5 + BPF_CORE_TYPE_ID_LOCAL = 0x6 + BPF_CORE_TYPE_ID_TARGET = 0x7 + BPF_CORE_TYPE_EXISTS = 0x8 + BPF_CORE_TYPE_SIZE = 0x9 + BPF_CORE_ENUMVAL_EXISTS = 0xa + BPF_CORE_ENUMVAL_VALUE = 0xb + BPF_CORE_TYPE_MATCHES = 0xc + BPF_F_TIMER_ABS = 0x1 +) + +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 LoopConfig struct { + Fd uint32 + Size uint32 + Info LoopInfo64 + _ [8]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_RATE_GET = 0x4a + DEVLINK_CMD_RATE_SET = 0x4b + DEVLINK_CMD_RATE_NEW = 0x4c + DEVLINK_CMD_RATE_DEL = 0x4d + DEVLINK_CMD_LINECARD_GET = 0x4e + DEVLINK_CMD_LINECARD_SET = 0x4f + DEVLINK_CMD_LINECARD_NEW = 0x50 + DEVLINK_CMD_LINECARD_DEL = 0x51 + DEVLINK_CMD_SELFTESTS_GET = 0x52 + DEVLINK_CMD_MAX = 0x54 + 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_PORT_PCI_SF_NUMBER = 0xa4 + DEVLINK_ATTR_RATE_TYPE = 0xa5 + DEVLINK_ATTR_RATE_TX_SHARE = 0xa6 + DEVLINK_ATTR_RATE_TX_MAX = 0xa7 + DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 + DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 + DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa + DEVLINK_ATTR_LINECARD_INDEX = 0xab + DEVLINK_ATTR_LINECARD_STATE = 0xac + DEVLINK_ATTR_LINECARD_TYPE = 0xad + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae + DEVLINK_ATTR_NESTED_DEVLINK = 0xaf + DEVLINK_ATTR_SELFTESTS = 0xb0 + DEVLINK_ATTR_MAX = 0xb3 + 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_FN_ATTR_STATE = 0x2 + DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 + DEVLINK_PORT_FN_ATTR_CAPS = 0x4 + DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x6 +) + +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 + High 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_IOAM6 = 0x9 + LWTUNNEL_ENCAP_XFRM = 0xa + LWTUNNEL_ENCAP_MAX = 0xa + + 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_FEC_GET = 0x1d + ETHTOOL_MSG_FEC_SET = 0x1e + ETHTOOL_MSG_MODULE_EEPROM_GET = 0x1f + ETHTOOL_MSG_STATS_GET = 0x20 + ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 + ETHTOOL_MSG_MODULE_GET = 0x22 + ETHTOOL_MSG_MODULE_SET = 0x23 + ETHTOOL_MSG_PSE_GET = 0x24 + ETHTOOL_MSG_PSE_SET = 0x25 + ETHTOOL_MSG_RSS_GET = 0x26 + ETHTOOL_MSG_PLCA_GET_CFG = 0x27 + ETHTOOL_MSG_PLCA_SET_CFG = 0x28 + ETHTOOL_MSG_PLCA_GET_STATUS = 0x29 + ETHTOOL_MSG_MM_GET = 0x2a + ETHTOOL_MSG_MM_SET = 0x2b + ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 0x2c + ETHTOOL_MSG_PHY_GET = 0x2d + ETHTOOL_MSG_TSCONFIG_GET = 0x2e + ETHTOOL_MSG_TSCONFIG_SET = 0x2f + ETHTOOL_MSG_USER_MAX = 0x2f + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 + 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_FEC_GET_REPLY = 0x1e + ETHTOOL_MSG_FEC_NTF = 0x1f + ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 0x20 + ETHTOOL_MSG_STATS_GET_REPLY = 0x21 + ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 + ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 + ETHTOOL_MSG_MODULE_NTF = 0x24 + ETHTOOL_MSG_PSE_GET_REPLY = 0x25 + ETHTOOL_MSG_RSS_GET_REPLY = 0x26 + ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 0x27 + ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 0x28 + ETHTOOL_MSG_PLCA_NTF = 0x29 + ETHTOOL_MSG_MM_GET_REPLY = 0x2a + ETHTOOL_MSG_MM_NTF = 0x2b + ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 0x2c + ETHTOOL_MSG_PHY_GET_REPLY = 0x2d + ETHTOOL_MSG_PHY_NTF = 0x2e + ETHTOOL_MSG_TSCONFIG_GET_REPLY = 0x2f + ETHTOOL_MSG_TSCONFIG_SET_REPLY = 0x30 + ETHTOOL_MSG_KERNEL_MAX = 0x30 + ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 + ETHTOOL_FLAG_OMIT_REPLY = 0x2 + ETHTOOL_FLAG_STATS = 0x4 + 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 = 0x4 + 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_LANES = 0x9 + ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa + ETHTOOL_A_LINKMODES_MAX = 0xa + 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_EXT_DOWN_CNT = 0x7 + ETHTOOL_A_LINKSTATE_MAX = 0x7 + 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_RX_BUF_LEN = 0xa + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb + ETHTOOL_A_RINGS_CQE_SIZE = 0xc + ETHTOOL_A_RINGS_TX_PUSH = 0xd + ETHTOOL_A_RINGS_RX_PUSH = 0xe + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 0xf + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 0x10 + ETHTOOL_A_RINGS_HDS_THRESH = 0x11 + ETHTOOL_A_RINGS_HDS_THRESH_MAX = 0x12 + ETHTOOL_A_RINGS_MAX = 0x12 + ETHTOOL_A_CHANNELS_UNSPEC = 0x0 + ETHTOOL_A_CHANNELS_HEADER = 0x1 + ETHTOOL_A_CHANNELS_RX_MAX = 0x2 + 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_USE_CQE_MODE_TX = 0x18 + ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 + ETHTOOL_A_COALESCE_MAX = 0x1e + 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 = 0x6 + 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_STATS = 0x6 + ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 0x7 + ETHTOOL_A_TSINFO_MAX = 0x7 + 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 = 0x3 + 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 = 0x3 + 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 +) + +const SPEED_UNKNOWN = -0x1 + +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 EthtoolTsInfo struct { + Cmd uint32 + So_timestamping uint32 + Phc_index int32 + Tx_types uint32 + Tx_reserved [3]uint32 + Rx_filters uint32 + Rx_reserved [3]uint32 +} + +type HwTstampConfig struct { + Flags int32 + Tx_type int32 + Rx_filter int32 +} + +const ( + HWTSTAMP_FILTER_NONE = 0x0 + HWTSTAMP_FILTER_ALL = 0x1 + HWTSTAMP_FILTER_SOME = 0x2 + HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3 + HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6 + HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9 + HWTSTAMP_FILTER_PTP_V2_EVENT = 0xc +) + +const ( + HWTSTAMP_TX_OFF = 0x0 + HWTSTAMP_TX_ON = 0x1 + HWTSTAMP_TX_ONESTEP_SYNC = 0x2 +) + +type ( + PtpClockCaps struct { + Max_adj int32 + N_alarm int32 + N_ext_ts int32 + N_per_out int32 + Pps int32 + N_pins int32 + Cross_timestamping int32 + Adjust_phase int32 + Max_phase_adj int32 + Rsv [11]int32 + } + PtpClockTime struct { + Sec int64 + Nsec uint32 + Reserved uint32 + } + PtpExttsEvent struct { + T PtpClockTime + Index uint32 + Flags uint32 + Rsv [2]uint32 + } + PtpExttsRequest struct { + Index uint32 + Flags uint32 + Rsv [2]uint32 + } + PtpPeroutRequest struct { + StartOrPhase PtpClockTime + Period PtpClockTime + Index uint32 + Flags uint32 + On PtpClockTime + } + PtpPinDesc struct { + Name [64]byte + Index uint32 + Func uint32 + Chan uint32 + Rsv [5]uint32 + } + PtpSysOffset struct { + Samples uint32 + Rsv [3]uint32 + Ts [51]PtpClockTime + } + PtpSysOffsetExtended struct { + Samples uint32 + Clockid int32 + Rsv [2]uint32 + Ts [25][3]PtpClockTime + } + PtpSysOffsetPrecise struct { + Device PtpClockTime + Realtime PtpClockTime + Monoraw PtpClockTime + Rsv [4]uint32 + } +) + +const ( + PTP_PF_NONE = 0x0 + PTP_PF_EXTTS = 0x1 + PTP_PF_PEROUT = 0x2 + PTP_PF_PHYSYNC = 0x3 +) + +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 +) + +type ( + EraseInfo struct { + Start uint32 + Length uint32 + } + EraseInfo64 struct { + Start uint64 + Length uint64 + } + MtdOobBuf struct { + Start uint32 + Length uint32 + Ptr *uint8 + } + MtdOobBuf64 struct { + Start uint64 + Pad uint32 + Length uint32 + Ptr uint64 + } + MtdWriteReq struct { + Start uint64 + Len uint64 + Ooblen uint64 + Data uint64 + Oob uint64 + Mode uint8 + _ [7]uint8 + } + MtdInfo struct { + Type uint8 + Flags uint32 + Size uint32 + Erasesize uint32 + Writesize uint32 + Oobsize uint32 + _ uint64 + } + RegionInfo struct { + Offset uint32 + Erasesize uint32 + Numblocks uint32 + Regionindex uint32 + } + OtpInfo struct { + Start uint32 + Length uint32 + Locked uint32 + } + NandOobinfo struct { + Useecc uint32 + Eccbytes uint32 + Oobfree [8][2]uint32 + Eccpos [32]uint32 + } + NandOobfree struct { + Offset uint32 + Length uint32 + } + NandEcclayout struct { + Eccbytes uint32 + Eccpos [64]uint32 + Oobavail uint32 + Oobfree [8]NandOobfree + } + MtdEccStats struct { + Corrected uint32 + Failed uint32 + Badblocks uint32 + Bbtblocks uint32 + } +) + +const ( + MTD_OPS_PLACE_OOB = 0x0 + MTD_OPS_AUTO_OOB = 0x1 + MTD_OPS_RAW = 0x2 +) + +const ( + MTD_FILE_MODE_NORMAL = 0x0 + MTD_FILE_MODE_OTP_FACTORY = 0x1 + MTD_FILE_MODE_OTP_USER = 0x2 + MTD_FILE_MODE_RAW = 0x3 +) + +const ( + NFC_CMD_UNSPEC = 0x0 + NFC_CMD_GET_DEVICE = 0x1 + NFC_CMD_DEV_UP = 0x2 + NFC_CMD_DEV_DOWN = 0x3 + NFC_CMD_DEP_LINK_UP = 0x4 + NFC_CMD_DEP_LINK_DOWN = 0x5 + NFC_CMD_START_POLL = 0x6 + NFC_CMD_STOP_POLL = 0x7 + NFC_CMD_GET_TARGET = 0x8 + NFC_EVENT_TARGETS_FOUND = 0x9 + NFC_EVENT_DEVICE_ADDED = 0xa + NFC_EVENT_DEVICE_REMOVED = 0xb + NFC_EVENT_TARGET_LOST = 0xc + NFC_EVENT_TM_ACTIVATED = 0xd + NFC_EVENT_TM_DEACTIVATED = 0xe + NFC_CMD_LLC_GET_PARAMS = 0xf + NFC_CMD_LLC_SET_PARAMS = 0x10 + NFC_CMD_ENABLE_SE = 0x11 + NFC_CMD_DISABLE_SE = 0x12 + NFC_CMD_LLC_SDREQ = 0x13 + NFC_EVENT_LLC_SDRES = 0x14 + NFC_CMD_FW_DOWNLOAD = 0x15 + NFC_EVENT_SE_ADDED = 0x16 + NFC_EVENT_SE_REMOVED = 0x17 + NFC_EVENT_SE_CONNECTIVITY = 0x18 + NFC_EVENT_SE_TRANSACTION = 0x19 + NFC_CMD_GET_SE = 0x1a + NFC_CMD_SE_IO = 0x1b + NFC_CMD_ACTIVATE_TARGET = 0x1c + NFC_CMD_VENDOR = 0x1d + NFC_CMD_DEACTIVATE_TARGET = 0x1e + NFC_ATTR_UNSPEC = 0x0 + NFC_ATTR_DEVICE_INDEX = 0x1 + NFC_ATTR_DEVICE_NAME = 0x2 + NFC_ATTR_PROTOCOLS = 0x3 + NFC_ATTR_TARGET_INDEX = 0x4 + NFC_ATTR_TARGET_SENS_RES = 0x5 + NFC_ATTR_TARGET_SEL_RES = 0x6 + NFC_ATTR_TARGET_NFCID1 = 0x7 + NFC_ATTR_TARGET_SENSB_RES = 0x8 + NFC_ATTR_TARGET_SENSF_RES = 0x9 + NFC_ATTR_COMM_MODE = 0xa + NFC_ATTR_RF_MODE = 0xb + NFC_ATTR_DEVICE_POWERED = 0xc + NFC_ATTR_IM_PROTOCOLS = 0xd + NFC_ATTR_TM_PROTOCOLS = 0xe + NFC_ATTR_LLC_PARAM_LTO = 0xf + NFC_ATTR_LLC_PARAM_RW = 0x10 + NFC_ATTR_LLC_PARAM_MIUX = 0x11 + NFC_ATTR_SE = 0x12 + NFC_ATTR_LLC_SDP = 0x13 + NFC_ATTR_FIRMWARE_NAME = 0x14 + NFC_ATTR_SE_INDEX = 0x15 + NFC_ATTR_SE_TYPE = 0x16 + NFC_ATTR_SE_AID = 0x17 + NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18 + NFC_ATTR_SE_APDU = 0x19 + NFC_ATTR_TARGET_ISO15693_DSFID = 0x1a + NFC_ATTR_TARGET_ISO15693_UID = 0x1b + NFC_ATTR_SE_PARAMS = 0x1c + NFC_ATTR_VENDOR_ID = 0x1d + NFC_ATTR_VENDOR_SUBCMD = 0x1e + NFC_ATTR_VENDOR_DATA = 0x1f + NFC_SDP_ATTR_UNSPEC = 0x0 + NFC_SDP_ATTR_URI = 0x1 + NFC_SDP_ATTR_SAP = 0x2 +) + +type LandlockRulesetAttr struct { + Access_fs uint64 + Access_net uint64 + Scoped uint64 +} + +type LandlockPathBeneathAttr struct { + Allowed_access uint64 + Parent_fd int32 +} + +const ( + LANDLOCK_RULE_PATH_BENEATH = 0x1 +) + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 + + ipc_64 = 0x100 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) + +type MountAttr struct { + Attr_set uint64 + Attr_clr uint64 + Propagation uint64 + Userns_fd uint64 +} + +const ( + WG_CMD_GET_DEVICE = 0x0 + WG_CMD_SET_DEVICE = 0x1 + WGDEVICE_F_REPLACE_PEERS = 0x1 + WGDEVICE_A_UNSPEC = 0x0 + WGDEVICE_A_IFINDEX = 0x1 + WGDEVICE_A_IFNAME = 0x2 + WGDEVICE_A_PRIVATE_KEY = 0x3 + WGDEVICE_A_PUBLIC_KEY = 0x4 + WGDEVICE_A_FLAGS = 0x5 + WGDEVICE_A_LISTEN_PORT = 0x6 + WGDEVICE_A_FWMARK = 0x7 + WGDEVICE_A_PEERS = 0x8 + WGPEER_F_REMOVE_ME = 0x1 + WGPEER_F_REPLACE_ALLOWEDIPS = 0x2 + WGPEER_F_UPDATE_ONLY = 0x4 + WGPEER_A_UNSPEC = 0x0 + WGPEER_A_PUBLIC_KEY = 0x1 + WGPEER_A_PRESHARED_KEY = 0x2 + WGPEER_A_FLAGS = 0x3 + WGPEER_A_ENDPOINT = 0x4 + WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5 + WGPEER_A_LAST_HANDSHAKE_TIME = 0x6 + WGPEER_A_RX_BYTES = 0x7 + WGPEER_A_TX_BYTES = 0x8 + WGPEER_A_ALLOWEDIPS = 0x9 + WGPEER_A_PROTOCOL_VERSION = 0xa + WGALLOWEDIP_A_UNSPEC = 0x0 + WGALLOWEDIP_A_FAMILY = 0x1 + WGALLOWEDIP_A_IPADDR = 0x2 + WGALLOWEDIP_A_CIDR_MASK = 0x3 +) + +const ( + NL_ATTR_TYPE_INVALID = 0x0 + NL_ATTR_TYPE_FLAG = 0x1 + NL_ATTR_TYPE_U8 = 0x2 + NL_ATTR_TYPE_U16 = 0x3 + NL_ATTR_TYPE_U32 = 0x4 + NL_ATTR_TYPE_U64 = 0x5 + NL_ATTR_TYPE_S8 = 0x6 + NL_ATTR_TYPE_S16 = 0x7 + NL_ATTR_TYPE_S32 = 0x8 + NL_ATTR_TYPE_S64 = 0x9 + NL_ATTR_TYPE_BINARY = 0xa + NL_ATTR_TYPE_STRING = 0xb + NL_ATTR_TYPE_NUL_STRING = 0xc + NL_ATTR_TYPE_NESTED = 0xd + NL_ATTR_TYPE_NESTED_ARRAY = 0xe + NL_ATTR_TYPE_BITFIELD32 = 0xf + + NL_POLICY_TYPE_ATTR_UNSPEC = 0x0 + NL_POLICY_TYPE_ATTR_TYPE = 0x1 + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 0x2 + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 0x3 + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 0x4 + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 0x5 + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 0x6 + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 0x7 + NL_POLICY_TYPE_ATTR_POLICY_IDX = 0x8 + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 0x9 + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa + NL_POLICY_TYPE_ATTR_PAD = 0xb + NL_POLICY_TYPE_ATTR_MASK = 0xc + NL_POLICY_TYPE_ATTR_MAX = 0xc +) + +type CANBitTiming struct { + Bitrate uint32 + Sample_point uint32 + Tq uint32 + Prop_seg uint32 + Phase_seg1 uint32 + Phase_seg2 uint32 + Sjw uint32 + Brp uint32 +} + +type CANBitTimingConst struct { + Name [16]uint8 + Tseg1_min uint32 + Tseg1_max uint32 + Tseg2_min uint32 + Tseg2_max uint32 + Sjw_max uint32 + Brp_min uint32 + Brp_max uint32 + Brp_inc uint32 +} + +type CANClock struct { + Freq uint32 +} + +type CANBusErrorCounters struct { + Txerr uint16 + Rxerr uint16 +} + +type CANCtrlMode struct { + Mask uint32 + Flags uint32 +} + +type CANDeviceStats struct { + Bus_error uint32 + Error_warning uint32 + Error_passive uint32 + Bus_off uint32 + Arbitration_lost uint32 + Restarts uint32 +} + +const ( + CAN_STATE_ERROR_ACTIVE = 0x0 + CAN_STATE_ERROR_WARNING = 0x1 + CAN_STATE_ERROR_PASSIVE = 0x2 + CAN_STATE_BUS_OFF = 0x3 + CAN_STATE_STOPPED = 0x4 + CAN_STATE_SLEEPING = 0x5 + CAN_STATE_MAX = 0x6 +) + +const ( + IFLA_CAN_UNSPEC = 0x0 + IFLA_CAN_BITTIMING = 0x1 + IFLA_CAN_BITTIMING_CONST = 0x2 + IFLA_CAN_CLOCK = 0x3 + IFLA_CAN_STATE = 0x4 + IFLA_CAN_CTRLMODE = 0x5 + IFLA_CAN_RESTART_MS = 0x6 + IFLA_CAN_RESTART = 0x7 + IFLA_CAN_BERR_COUNTER = 0x8 + IFLA_CAN_DATA_BITTIMING = 0x9 + IFLA_CAN_DATA_BITTIMING_CONST = 0xa + IFLA_CAN_TERMINATION = 0xb + IFLA_CAN_TERMINATION_CONST = 0xc + IFLA_CAN_BITRATE_CONST = 0xd + IFLA_CAN_DATA_BITRATE_CONST = 0xe + IFLA_CAN_BITRATE_MAX = 0xf +) + +type KCMAttach struct { + Fd int32 + Bpf_fd int32 +} + +type KCMUnattach struct { + Fd int32 +} + +type KCMClone struct { + Fd int32 +} + +const ( + NL80211_AC_BE = 0x2 + NL80211_AC_BK = 0x3 + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0x0 + NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 + NL80211_AC_VI = 0x1 + NL80211_AC_VO = 0x0 + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 + NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 + NL80211_ATTR_4ADDR = 0x53 + NL80211_ATTR_ACK = 0x5c + NL80211_ATTR_ACK_SIGNAL = 0x107 + NL80211_ATTR_ACL_POLICY = 0xa5 + NL80211_ATTR_ADMITTED_TIME = 0xd4 + NL80211_ATTR_AIRTIME_WEIGHT = 0x112 + NL80211_ATTR_AKM_SUITES = 0x4c + NL80211_ATTR_AP_ISOLATE = 0x60 + NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 + NL80211_ATTR_ASSOC_SPP_AMSDU = 0x14a + NL80211_ATTR_AUTH_DATA = 0x9c + NL80211_ATTR_AUTH_TYPE = 0x35 + NL80211_ATTR_BANDS = 0xef + NL80211_ATTR_BEACON_HEAD = 0xe + NL80211_ATTR_BEACON_INTERVAL = 0xc + NL80211_ATTR_BEACON_TAIL = 0xf + NL80211_ATTR_BG_SCAN_PERIOD = 0x98 + NL80211_ATTR_BSS_BASIC_RATES = 0x24 + NL80211_ATTR_BSS = 0x2f + NL80211_ATTR_BSS_CTS_PROT = 0x1c + NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 0x147 + NL80211_ATTR_BSS_HT_OPMODE = 0x6d + NL80211_ATTR_BSSID = 0xf5 + NL80211_ATTR_BSS_SELECT = 0xe3 + NL80211_ATTR_BSS_SHORT_PREAMBLE = 0x1d + NL80211_ATTR_BSS_SHORT_SLOT_TIME = 0x1e + NL80211_ATTR_CENTER_FREQ1 = 0xa0 + NL80211_ATTR_CENTER_FREQ1_OFFSET = 0x123 + NL80211_ATTR_CENTER_FREQ2 = 0xa1 + NL80211_ATTR_CHANNEL_WIDTH = 0x9f + NL80211_ATTR_CH_SWITCH_BLOCK_TX = 0xb8 + NL80211_ATTR_CH_SWITCH_COUNT = 0xb7 + NL80211_ATTR_CIPHER_SUITE_GROUP = 0x4a + NL80211_ATTR_CIPHER_SUITES = 0x39 + NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 0x49 + NL80211_ATTR_CNTDWN_OFFS_BEACON = 0xba + NL80211_ATTR_CNTDWN_OFFS_PRESP = 0xbb + NL80211_ATTR_COALESCE_RULE = 0xb6 + NL80211_ATTR_COALESCE_RULE_CONDITION = 0x2 + NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 + NL80211_ATTR_COALESCE_RULE_MAX = 0x3 + NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 + NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 + NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f + NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 + NL80211_ATTR_CONN_FAILED_REASON = 0x9b + NL80211_ATTR_CONTROL_PORT = 0x44 + NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 + NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 0x67 + NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 0x11e + NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 0x108 + NL80211_ATTR_COOKIE = 0x58 + NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 0x8 + NL80211_ATTR_CQM = 0x5e + NL80211_ATTR_CQM_MAX = 0x9 + NL80211_ATTR_CQM_PKT_LOSS_EVENT = 0x4 + NL80211_ATTR_CQM_RSSI_HYST = 0x2 + NL80211_ATTR_CQM_RSSI_LEVEL = 0x9 + NL80211_ATTR_CQM_RSSI_THOLD = 0x1 + NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 0x3 + NL80211_ATTR_CQM_TXE_INTVL = 0x7 + NL80211_ATTR_CQM_TXE_PKTS = 0x6 + NL80211_ATTR_CQM_TXE_RATE = 0x5 + NL80211_ATTR_CRIT_PROT_ID = 0xb3 + NL80211_ATTR_CSA_C_OFF_BEACON = 0xba + NL80211_ATTR_CSA_C_OFF_PRESP = 0xbb + NL80211_ATTR_CSA_C_OFFSETS_TX = 0xcd + NL80211_ATTR_CSA_IES = 0xb9 + NL80211_ATTR_DEVICE_AP_SME = 0x8d + NL80211_ATTR_DFS_CAC_TIME = 0x7 + NL80211_ATTR_DFS_REGION = 0x92 + NL80211_ATTR_DISABLE_EHT = 0x137 + NL80211_ATTR_DISABLE_HE = 0x12d + NL80211_ATTR_DISABLE_HT = 0x93 + NL80211_ATTR_DISABLE_VHT = 0xaf + NL80211_ATTR_DISCONNECTED_BY_AP = 0x47 + NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e + NL80211_ATTR_DTIM_PERIOD = 0xd + NL80211_ATTR_DURATION = 0x57 + NL80211_ATTR_EHT_CAPABILITY = 0x136 + NL80211_ATTR_EMA_RNR_ELEMS = 0x145 + NL80211_ATTR_EML_CAPABILITY = 0x13d + NL80211_ATTR_EXT_CAPA = 0xa9 + NL80211_ATTR_EXT_CAPA_MASK = 0xaa + NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 + NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 0x105 + NL80211_ATTR_EXT_FEATURES = 0xd9 + NL80211_ATTR_FEATURE_FLAGS = 0x8f + NL80211_ATTR_FILS_CACHE_ID = 0xfd + NL80211_ATTR_FILS_DISCOVERY = 0x126 + NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 0xfb + NL80211_ATTR_FILS_ERP_REALM = 0xfa + NL80211_ATTR_FILS_ERP_RRK = 0xfc + NL80211_ATTR_FILS_ERP_USERNAME = 0xf9 + NL80211_ATTR_FILS_KEK = 0xf2 + NL80211_ATTR_FILS_NONCES = 0xf3 + NL80211_ATTR_FRAME = 0x33 + NL80211_ATTR_FRAME_MATCH = 0x5b + NL80211_ATTR_FRAME_TYPE = 0x65 + NL80211_ATTR_FREQ_AFTER = 0x3b + NL80211_ATTR_FREQ_BEFORE = 0x3a + NL80211_ATTR_FREQ_FIXED = 0x3c + NL80211_ATTR_FREQ_RANGE_END = 0x3 + NL80211_ATTR_FREQ_RANGE_MAX_BW = 0x4 + NL80211_ATTR_FREQ_RANGE_START = 0x2 + NL80211_ATTR_FTM_RESPONDER = 0x10e + NL80211_ATTR_FTM_RESPONDER_STATS = 0x10f + NL80211_ATTR_GENERATION = 0x2e + NL80211_ATTR_HANDLE_DFS = 0xbf + NL80211_ATTR_HE_6GHZ_CAPABILITY = 0x125 + NL80211_ATTR_HE_BSS_COLOR = 0x11b + NL80211_ATTR_HE_CAPABILITY = 0x10d + NL80211_ATTR_HE_OBSS_PD = 0x117 + NL80211_ATTR_HIDDEN_SSID = 0x7e + NL80211_ATTR_HT_CAPABILITY = 0x1f + NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 + NL80211_ATTR_HW_TIMESTAMP_ENABLED = 0x144 + NL80211_ATTR_IE_ASSOC_RESP = 0x80 + NL80211_ATTR_IE = 0x2a + NL80211_ATTR_IE_PROBE_RESP = 0x7f + NL80211_ATTR_IE_RIC = 0xb2 + NL80211_ATTR_IFACE_SOCKET_OWNER = 0xcc + NL80211_ATTR_IFINDEX = 0x3 + NL80211_ATTR_IFNAME = 0x4 + NL80211_ATTR_IFTYPE_AKM_SUITES = 0x11c + NL80211_ATTR_IFTYPE = 0x5 + NL80211_ATTR_IFTYPE_EXT_CAPA = 0xe6 + NL80211_ATTR_INACTIVITY_TIMEOUT = 0x96 + NL80211_ATTR_INTERFACE_COMBINATIONS = 0x78 + NL80211_ATTR_KEY_CIPHER = 0x9 + NL80211_ATTR_KEY = 0x50 + NL80211_ATTR_KEY_DATA = 0x7 + NL80211_ATTR_KEY_DEFAULT = 0xb + NL80211_ATTR_KEY_DEFAULT_MGMT = 0x28 + NL80211_ATTR_KEY_DEFAULT_TYPES = 0x6e + NL80211_ATTR_KEY_IDX = 0x8 + NL80211_ATTR_KEYS = 0x51 + NL80211_ATTR_KEY_SEQ = 0xa + NL80211_ATTR_KEY_TYPE = 0x37 + NL80211_ATTR_LOCAL_MESH_POWER_MODE = 0xa4 + NL80211_ATTR_LOCAL_STATE_CHANGE = 0x5f + NL80211_ATTR_MAC_ACL_MAX = 0xa7 + NL80211_ATTR_MAC_ADDRS = 0xa6 + NL80211_ATTR_MAC = 0x6 + NL80211_ATTR_MAC_HINT = 0xc8 + NL80211_ATTR_MAC_MASK = 0xd7 + NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca + NL80211_ATTR_MAX = 0x150 + NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 + NL80211_ATTR_MAX_CSA_COUNTERS = 0xce + NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 0x143 + NL80211_ATTR_MAX_MATCH_SETS = 0x85 + NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c + NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 + NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b + NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde + NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 0x7b + NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 0x6f + NL80211_ATTR_MAX_SCAN_IE_LEN = 0x38 + NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf + NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c + NL80211_ATTR_MBSSID_CONFIG = 0x132 + NL80211_ATTR_MBSSID_ELEMS = 0x133 + NL80211_ATTR_MCAST_RATE = 0x6b + NL80211_ATTR_MDID = 0xb1 + NL80211_ATTR_MEASUREMENT_DURATION = 0xeb + NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 0xec + NL80211_ATTR_MESH_CONFIG = 0x23 + NL80211_ATTR_MESH_ID = 0x18 + NL80211_ATTR_MESH_PEER_AID = 0xed + NL80211_ATTR_MESH_SETUP = 0x70 + NL80211_ATTR_MGMT_SUBTYPE = 0x29 + NL80211_ATTR_MLD_ADDR = 0x13a + NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e + NL80211_ATTR_MLO_LINK_DISABLED = 0x146 + NL80211_ATTR_MLO_LINK_ID = 0x139 + NL80211_ATTR_MLO_LINKS = 0x138 + NL80211_ATTR_MLO_SUPPORT = 0x13b + NL80211_ATTR_MLO_TTLM_DLINK = 0x148 + NL80211_ATTR_MLO_TTLM_ULINK = 0x149 + NL80211_ATTR_MNTR_FLAGS = 0x17 + NL80211_ATTR_MPATH_INFO = 0x1b + NL80211_ATTR_MPATH_NEXT_HOP = 0x1a + NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 0xf4 + NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 0xe8 + NL80211_ATTR_MU_MIMO_GROUP_DATA = 0xe7 + NL80211_ATTR_NAN_FUNC = 0xf0 + NL80211_ATTR_NAN_MASTER_PREF = 0xee + NL80211_ATTR_NAN_MATCH = 0xf1 + NL80211_ATTR_NETNS_FD = 0xdb + NL80211_ATTR_NOACK_MAP = 0x95 + NL80211_ATTR_NSS = 0x106 + NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e + NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c + NL80211_ATTR_OPER_CLASS = 0xd6 + NL80211_ATTR_OPMODE_NOTIF = 0xc2 + NL80211_ATTR_P2P_CTWINDOW = 0xa2 + NL80211_ATTR_P2P_OPPPS = 0xa3 + NL80211_ATTR_PAD = 0xe5 + NL80211_ATTR_PBSS = 0xe2 + NL80211_ATTR_PEER_AID = 0xb5 + NL80211_ATTR_PEER_MEASUREMENTS = 0x111 + NL80211_ATTR_PID = 0x52 + NL80211_ATTR_PMK = 0xfe + NL80211_ATTR_PMKID = 0x55 + NL80211_ATTR_PMK_LIFETIME = 0x11f + NL80211_ATTR_PMKR0_NAME = 0x102 + NL80211_ATTR_PMK_REAUTH_THRESHOLD = 0x120 + NL80211_ATTR_PMKSA_CANDIDATE = 0x86 + NL80211_ATTR_PORT_AUTHORIZED = 0x103 + NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 + NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 + NL80211_ATTR_POWER_RULE_PSD = 0x8 + NL80211_ATTR_PREV_BSSID = 0x4f + NL80211_ATTR_PRIVACY = 0x46 + NL80211_ATTR_PROBE_RESP = 0x91 + NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 + NL80211_ATTR_PROTOCOL_FEATURES = 0xad + NL80211_ATTR_PS_STATE = 0x5d + NL80211_ATTR_PUNCT_BITMAP = 0x142 + NL80211_ATTR_QOS_MAP = 0xc7 + NL80211_ATTR_RADAR_BACKGROUND = 0x134 + NL80211_ATTR_RADAR_EVENT = 0xa8 + NL80211_ATTR_REASON_CODE = 0x36 + NL80211_ATTR_RECEIVE_MULTICAST = 0x121 + NL80211_ATTR_RECONNECT_REQUESTED = 0x12b + NL80211_ATTR_REG_ALPHA2 = 0x21 + NL80211_ATTR_REG_INDOOR = 0xdd + NL80211_ATTR_REG_INITIATOR = 0x30 + NL80211_ATTR_REG_RULE_FLAGS = 0x1 + NL80211_ATTR_REG_RULES = 0x22 + NL80211_ATTR_REG_TYPE = 0x31 + NL80211_ATTR_REKEY_DATA = 0x7a + NL80211_ATTR_REQ_IE = 0x4d + NL80211_ATTR_RESP_IE = 0x4e + NL80211_ATTR_ROAM_SUPPORT = 0x83 + NL80211_ATTR_RX_FRAME_TYPES = 0x64 + NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 + NL80211_ATTR_RXMGMT_FLAGS = 0xbc + NL80211_ATTR_RX_SIGNAL_DBM = 0x97 + NL80211_ATTR_S1G_CAPABILITY = 0x128 + NL80211_ATTR_S1G_CAPABILITY_MASK = 0x129 + NL80211_ATTR_SAE_DATA = 0x9c + NL80211_ATTR_SAE_PASSWORD = 0x115 + NL80211_ATTR_SAE_PWE = 0x12a + NL80211_ATTR_SAR_SPEC = 0x12c + NL80211_ATTR_SCAN_FLAGS = 0x9e + NL80211_ATTR_SCAN_FREQ_KHZ = 0x124 + NL80211_ATTR_SCAN_FREQUENCIES = 0x2c + NL80211_ATTR_SCAN_GENERATION = 0x2e + NL80211_ATTR_SCAN_SSIDS = 0x2d + NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 0xea + NL80211_ATTR_SCAN_START_TIME_TSF = 0xe9 + NL80211_ATTR_SCAN_SUPP_RATES = 0x7d + NL80211_ATTR_SCHED_SCAN_DELAY = 0xdc + NL80211_ATTR_SCHED_SCAN_INTERVAL = 0x77 + NL80211_ATTR_SCHED_SCAN_MATCH = 0x84 + NL80211_ATTR_SCHED_SCAN_MATCH_SSID = 0x1 + NL80211_ATTR_SCHED_SCAN_MAX_REQS = 0x100 + NL80211_ATTR_SCHED_SCAN_MULTI = 0xff + NL80211_ATTR_SCHED_SCAN_PLANS = 0xe1 + NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 0xf6 + NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 0xf7 + NL80211_ATTR_SMPS_MODE = 0xd5 + NL80211_ATTR_SOCKET_OWNER = 0xcc + NL80211_ATTR_SOFTWARE_IFTYPES = 0x79 + NL80211_ATTR_SPLIT_WIPHY_DUMP = 0xae + NL80211_ATTR_SSID = 0x34 + NL80211_ATTR_STA_AID = 0x10 + NL80211_ATTR_STA_CAPABILITY = 0xab + NL80211_ATTR_STA_EXT_CAPABILITY = 0xac + NL80211_ATTR_STA_FLAGS2 = 0x43 + NL80211_ATTR_STA_FLAGS = 0x11 + NL80211_ATTR_STA_INFO = 0x15 + NL80211_ATTR_STA_LISTEN_INTERVAL = 0x12 + NL80211_ATTR_STA_PLINK_ACTION = 0x19 + NL80211_ATTR_STA_PLINK_STATE = 0x74 + NL80211_ATTR_STA_SUPPORTED_CHANNELS = 0xbd + NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 0xbe + NL80211_ATTR_STA_SUPPORTED_RATES = 0x13 + NL80211_ATTR_STA_SUPPORT_P2P_PS = 0xe4 + NL80211_ATTR_STATUS_CODE = 0x48 + NL80211_ATTR_STA_TX_POWER = 0x114 + NL80211_ATTR_STA_TX_POWER_SETTING = 0x113 + NL80211_ATTR_STA_VLAN = 0x14 + NL80211_ATTR_STA_WME = 0x81 + NL80211_ATTR_SUPPORT_10_MHZ = 0xc1 + NL80211_ATTR_SUPPORT_5_MHZ = 0xc0 + NL80211_ATTR_SUPPORT_AP_UAPSD = 0x82 + NL80211_ATTR_SUPPORTED_COMMANDS = 0x32 + NL80211_ATTR_SUPPORTED_IFTYPES = 0x20 + NL80211_ATTR_SUPPORT_IBSS_RSN = 0x68 + NL80211_ATTR_SUPPORT_MESH_AUTH = 0x73 + NL80211_ATTR_SURVEY_INFO = 0x54 + NL80211_ATTR_SURVEY_RADIO_STATS = 0xda + NL80211_ATTR_TD_BITMAP = 0x141 + NL80211_ATTR_TDLS_ACTION = 0x88 + NL80211_ATTR_TDLS_DIALOG_TOKEN = 0x89 + NL80211_ATTR_TDLS_EXTERNAL_SETUP = 0x8c + NL80211_ATTR_TDLS_INITIATOR = 0xcf + NL80211_ATTR_TDLS_OPERATION = 0x8a + NL80211_ATTR_TDLS_PEER_CAPABILITY = 0xcb + NL80211_ATTR_TDLS_SUPPORT = 0x8b + NL80211_ATTR_TESTDATA = 0x45 + NL80211_ATTR_TID_CONFIG = 0x11d + NL80211_ATTR_TIMED_OUT = 0x41 + NL80211_ATTR_TIMEOUT = 0x110 + NL80211_ATTR_TIMEOUT_REASON = 0xf8 + NL80211_ATTR_TSID = 0xd2 + NL80211_ATTR_TWT_RESPONDER = 0x116 + NL80211_ATTR_TX_FRAME_TYPES = 0x63 + NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f + NL80211_ATTR_TX_NO_CCK_RATE = 0x87 + NL80211_ATTR_TXQ_LIMIT = 0x10a + NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b + NL80211_ATTR_TXQ_QUANTUM = 0x10c + NL80211_ATTR_TXQ_STATS = 0x109 + NL80211_ATTR_TX_RATES = 0x5a + NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 0x127 + NL80211_ATTR_UNSPEC = 0x0 + NL80211_ATTR_USE_MFP = 0x42 + NL80211_ATTR_USER_PRIO = 0xd3 + NL80211_ATTR_USER_REG_HINT_TYPE = 0x9a + NL80211_ATTR_USE_RRM = 0xd0 + NL80211_ATTR_VENDOR_DATA = 0xc5 + NL80211_ATTR_VENDOR_EVENTS = 0xc6 + NL80211_ATTR_VENDOR_ID = 0xc3 + NL80211_ATTR_VENDOR_SUBCMD = 0xc4 + NL80211_ATTR_VHT_CAPABILITY = 0x9d + NL80211_ATTR_VHT_CAPABILITY_MASK = 0xb0 + NL80211_ATTR_VLAN_ID = 0x11a + NL80211_ATTR_WANT_1X_4WAY_HS = 0x101 + NL80211_ATTR_WDEV = 0x99 + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 0x72 + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 0x71 + NL80211_ATTR_WIPHY_ANTENNA_RX = 0x6a + NL80211_ATTR_WIPHY_ANTENNA_TX = 0x69 + NL80211_ATTR_WIPHY_BANDS = 0x16 + NL80211_ATTR_WIPHY_CHANNEL_TYPE = 0x27 + NL80211_ATTR_WIPHY = 0x1 + NL80211_ATTR_WIPHY_COVERAGE_CLASS = 0x59 + NL80211_ATTR_WIPHY_DYN_ACK = 0xd1 + NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 0x119 + NL80211_ATTR_WIPHY_EDMG_CHANNELS = 0x118 + NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 0x3f + NL80211_ATTR_WIPHY_FREQ = 0x26 + NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 + NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 + NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS = 0x14c + NL80211_ATTR_WIPHY_NAME = 0x2 + NL80211_ATTR_WIPHY_RADIOS = 0x14b + NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e + NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d + NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 + NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 0xd8 + NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 0x62 + NL80211_ATTR_WIPHY_TX_POWER_SETTING = 0x61 + NL80211_ATTR_WIPHY_TXQ_PARAMS = 0x25 + NL80211_ATTR_WOWLAN_TRIGGERS = 0x75 + NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 0x76 + NL80211_ATTR_WPA_VERSIONS = 0x4b + NL80211_AUTHTYPE_AUTOMATIC = 0x8 + NL80211_AUTHTYPE_FILS_PK = 0x7 + NL80211_AUTHTYPE_FILS_SK = 0x5 + NL80211_AUTHTYPE_FILS_SK_PFS = 0x6 + NL80211_AUTHTYPE_FT = 0x2 + NL80211_AUTHTYPE_MAX = 0x7 + NL80211_AUTHTYPE_NETWORK_EAP = 0x3 + NL80211_AUTHTYPE_OPEN_SYSTEM = 0x0 + NL80211_AUTHTYPE_SAE = 0x4 + NL80211_AUTHTYPE_SHARED_KEY = 0x1 + NL80211_BAND_2GHZ = 0x0 + NL80211_BAND_5GHZ = 0x1 + NL80211_BAND_60GHZ = 0x2 + NL80211_BAND_6GHZ = 0x3 + NL80211_BAND_ATTR_EDMG_BW_CONFIG = 0xb + NL80211_BAND_ATTR_EDMG_CHANNELS = 0xa + NL80211_BAND_ATTR_FREQS = 0x1 + NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 0x6 + NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 0x5 + NL80211_BAND_ATTR_HT_CAPA = 0x4 + NL80211_BAND_ATTR_HT_MCS_SET = 0x3 + NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 + NL80211_BAND_ATTR_MAX = 0xd + NL80211_BAND_ATTR_RATES = 0x2 + NL80211_BAND_ATTR_S1G_CAPA = 0xd + NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 0xc + NL80211_BAND_ATTR_VHT_CAPA = 0x8 + NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb + NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 0x3 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 + NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 + NL80211_BAND_IFTYPE_ATTR_MAX = 0xb + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 + NL80211_BAND_LC = 0x5 + NL80211_BAND_S1GHZ = 0x4 + NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 + NL80211_BITRATE_ATTR_MAX = 0x2 + NL80211_BITRATE_ATTR_RATE = 0x1 + NL80211_BSS_BEACON_IES = 0xb + NL80211_BSS_BEACON_INTERVAL = 0x4 + NL80211_BSS_BEACON_TSF = 0xd + NL80211_BSS_BSSID = 0x1 + NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 0x2 + NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 0x1 + NL80211_BSS_CANNOT_USE_REASONS = 0x18 + NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 0x2 + NL80211_BSS_CAPABILITY = 0x5 + NL80211_BSS_CHAIN_SIGNAL = 0x13 + NL80211_BSS_CHAN_WIDTH_10 = 0x1 + NL80211_BSS_CHAN_WIDTH_1 = 0x3 + NL80211_BSS_CHAN_WIDTH_20 = 0x0 + NL80211_BSS_CHAN_WIDTH_2 = 0x4 + NL80211_BSS_CHAN_WIDTH_5 = 0x2 + NL80211_BSS_CHAN_WIDTH = 0xc + NL80211_BSS_FREQUENCY = 0x2 + NL80211_BSS_FREQUENCY_OFFSET = 0x14 + NL80211_BSS_INFORMATION_ELEMENTS = 0x6 + NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf + NL80211_BSS_MAX = 0x18 + NL80211_BSS_MLD_ADDR = 0x16 + NL80211_BSS_MLO_LINK_ID = 0x15 + NL80211_BSS_PAD = 0x10 + NL80211_BSS_PARENT_BSSID = 0x12 + NL80211_BSS_PARENT_TSF = 0x11 + NL80211_BSS_PRESP_DATA = 0xe + NL80211_BSS_SEEN_MS_AGO = 0xa + NL80211_BSS_SELECT_ATTR_BAND_PREF = 0x2 + NL80211_BSS_SELECT_ATTR_MAX = 0x3 + NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 0x3 + NL80211_BSS_SELECT_ATTR_RSSI = 0x1 + NL80211_BSS_SIGNAL_MBM = 0x7 + NL80211_BSS_SIGNAL_UNSPEC = 0x8 + NL80211_BSS_STATUS_ASSOCIATED = 0x1 + NL80211_BSS_STATUS_AUTHENTICATED = 0x0 + NL80211_BSS_STATUS = 0x9 + NL80211_BSS_STATUS_IBSS_JOINED = 0x2 + NL80211_BSS_TSF = 0x3 + NL80211_BSS_USE_FOR = 0x17 + NL80211_BSS_USE_FOR_MLD_LINK = 0x2 + NL80211_BSS_USE_FOR_NORMAL = 0x1 + NL80211_CHAN_HT20 = 0x1 + NL80211_CHAN_HT40MINUS = 0x2 + NL80211_CHAN_HT40PLUS = 0x3 + NL80211_CHAN_NO_HT = 0x0 + NL80211_CHAN_WIDTH_10 = 0x7 + NL80211_CHAN_WIDTH_160 = 0x5 + NL80211_CHAN_WIDTH_16 = 0xc + NL80211_CHAN_WIDTH_1 = 0x8 + NL80211_CHAN_WIDTH_20 = 0x1 + NL80211_CHAN_WIDTH_20_NOHT = 0x0 + NL80211_CHAN_WIDTH_2 = 0x9 + NL80211_CHAN_WIDTH_320 = 0xd + NL80211_CHAN_WIDTH_40 = 0x2 + NL80211_CHAN_WIDTH_4 = 0xa + NL80211_CHAN_WIDTH_5 = 0x6 + NL80211_CHAN_WIDTH_80 = 0x3 + NL80211_CHAN_WIDTH_80P80 = 0x4 + NL80211_CHAN_WIDTH_8 = 0xb + NL80211_CMD_ABORT_SCAN = 0x72 + NL80211_CMD_ACTION = 0x3b + NL80211_CMD_ACTION_TX_STATUS = 0x3c + NL80211_CMD_ADD_LINK = 0x94 + NL80211_CMD_ADD_LINK_STA = 0x96 + NL80211_CMD_ADD_NAN_FUNCTION = 0x75 + NL80211_CMD_ADD_TX_TS = 0x69 + NL80211_CMD_ASSOC_COMEBACK = 0x93 + NL80211_CMD_ASSOCIATE = 0x26 + NL80211_CMD_AUTHENTICATE = 0x25 + NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 + NL80211_CMD_CHANGE_NAN_CONFIG = 0x77 + NL80211_CMD_CHANNEL_SWITCH = 0x66 + NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 + NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e + NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 + NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 + NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e + NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f + NL80211_CMD_CONNECT = 0x2e + NL80211_CMD_CONN_FAILED = 0x5b + NL80211_CMD_CONTROL_PORT_FRAME = 0x81 + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 0x8b + NL80211_CMD_CRIT_PROTOCOL_START = 0x62 + NL80211_CMD_CRIT_PROTOCOL_STOP = 0x63 + NL80211_CMD_DEAUTHENTICATE = 0x27 + NL80211_CMD_DEL_BEACON = 0x10 + NL80211_CMD_DEL_INTERFACE = 0x8 + NL80211_CMD_DEL_KEY = 0xc + NL80211_CMD_DEL_MPATH = 0x18 + NL80211_CMD_DEL_NAN_FUNCTION = 0x76 + NL80211_CMD_DEL_PMK = 0x7c + NL80211_CMD_DEL_PMKSA = 0x35 + NL80211_CMD_DEL_STATION = 0x14 + NL80211_CMD_DEL_TX_TS = 0x6a + NL80211_CMD_DEL_WIPHY = 0x4 + NL80211_CMD_DISASSOCIATE = 0x28 + NL80211_CMD_DISCONNECT = 0x30 + NL80211_CMD_EXTERNAL_AUTH = 0x7f + NL80211_CMD_FLUSH_PMKSA = 0x36 + NL80211_CMD_FRAME = 0x3b + NL80211_CMD_FRAME_TX_STATUS = 0x3c + NL80211_CMD_FRAME_WAIT_CANCEL = 0x43 + NL80211_CMD_FT_EVENT = 0x61 + NL80211_CMD_GET_BEACON = 0xd + NL80211_CMD_GET_COALESCE = 0x64 + NL80211_CMD_GET_FTM_RESPONDER_STATS = 0x82 + NL80211_CMD_GET_INTERFACE = 0x5 + NL80211_CMD_GET_KEY = 0x9 + NL80211_CMD_GET_MESH_CONFIG = 0x1c + NL80211_CMD_GET_MESH_PARAMS = 0x1c + NL80211_CMD_GET_MPATH = 0x15 + NL80211_CMD_GET_MPP = 0x6b + NL80211_CMD_GET_POWER_SAVE = 0x3e + NL80211_CMD_GET_PROTOCOL_FEATURES = 0x5f + NL80211_CMD_GET_REG = 0x1f + NL80211_CMD_GET_SCAN = 0x20 + NL80211_CMD_GET_STATION = 0x11 + NL80211_CMD_GET_SURVEY = 0x32 + NL80211_CMD_GET_WIPHY = 0x1 + NL80211_CMD_GET_WOWLAN = 0x49 + NL80211_CMD_JOIN_IBSS = 0x2b + NL80211_CMD_JOIN_MESH = 0x44 + NL80211_CMD_JOIN_OCB = 0x6c + NL80211_CMD_LEAVE_IBSS = 0x2c + NL80211_CMD_LEAVE_MESH = 0x45 + NL80211_CMD_LEAVE_OCB = 0x6d + NL80211_CMD_LINKS_REMOVED = 0x9a + NL80211_CMD_MAX = 0x9d + NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 + NL80211_CMD_MODIFY_LINK_STA = 0x97 + NL80211_CMD_NAN_MATCH = 0x78 + NL80211_CMD_NEW_BEACON = 0xf + NL80211_CMD_NEW_INTERFACE = 0x7 + NL80211_CMD_NEW_KEY = 0xb + NL80211_CMD_NEW_MPATH = 0x17 + NL80211_CMD_NEW_PEER_CANDIDATE = 0x48 + NL80211_CMD_NEW_SCAN_RESULTS = 0x22 + NL80211_CMD_NEW_STATION = 0x13 + NL80211_CMD_NEW_SURVEY_RESULTS = 0x33 + NL80211_CMD_NEW_WIPHY = 0x3 + NL80211_CMD_NOTIFY_CQM = 0x40 + NL80211_CMD_NOTIFY_RADAR = 0x86 + NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d + NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 + NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 + NL80211_CMD_PEER_MEASUREMENT_START = 0x83 + NL80211_CMD_PMKSA_CANDIDATE = 0x50 + NL80211_CMD_PORT_AUTHORIZED = 0x7d + NL80211_CMD_PROBE_CLIENT = 0x54 + NL80211_CMD_PROBE_MESH_LINK = 0x88 + NL80211_CMD_RADAR_DETECT = 0x5e + NL80211_CMD_REG_BEACON_HINT = 0x2a + NL80211_CMD_REG_CHANGE = 0x24 + NL80211_CMD_REGISTER_ACTION = 0x3a + NL80211_CMD_REGISTER_BEACONS = 0x55 + NL80211_CMD_REGISTER_FRAME = 0x3a + NL80211_CMD_RELOAD_REGDB = 0x7e + NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 + NL80211_CMD_REMOVE_LINK = 0x95 + NL80211_CMD_REMOVE_LINK_STA = 0x98 + NL80211_CMD_REQ_SET_REG = 0x1b + NL80211_CMD_ROAM = 0x2f + NL80211_CMD_SCAN_ABORTED = 0x23 + NL80211_CMD_SCHED_SCAN_RESULTS = 0x4d + NL80211_CMD_SCHED_SCAN_STOPPED = 0x4e + NL80211_CMD_SET_BEACON = 0xe + NL80211_CMD_SET_BSS = 0x19 + NL80211_CMD_SET_CHANNEL = 0x41 + NL80211_CMD_SET_COALESCE = 0x65 + NL80211_CMD_SET_CQM = 0x3f + NL80211_CMD_SET_FILS_AAD = 0x92 + NL80211_CMD_SET_HW_TIMESTAMP = 0x99 + NL80211_CMD_SET_INTERFACE = 0x6 + NL80211_CMD_SET_KEY = 0xa + NL80211_CMD_SET_MAC_ACL = 0x5d + NL80211_CMD_SET_MCAST_RATE = 0x5c + NL80211_CMD_SET_MESH_CONFIG = 0x1d + NL80211_CMD_SET_MESH_PARAMS = 0x1d + NL80211_CMD_SET_MGMT_EXTRA_IE = 0x1e + NL80211_CMD_SET_MPATH = 0x16 + NL80211_CMD_SET_MULTICAST_TO_UNICAST = 0x79 + NL80211_CMD_SET_NOACK_MAP = 0x57 + NL80211_CMD_SET_PMK = 0x7b + NL80211_CMD_SET_PMKSA = 0x34 + NL80211_CMD_SET_POWER_SAVE = 0x3d + NL80211_CMD_SET_QOS_MAP = 0x68 + NL80211_CMD_SET_REG = 0x1a + NL80211_CMD_SET_REKEY_OFFLOAD = 0x4f + NL80211_CMD_SET_SAR_SPECS = 0x8c + NL80211_CMD_SET_STATION = 0x12 + NL80211_CMD_SET_TID_CONFIG = 0x89 + NL80211_CMD_SET_TID_TO_LINK_MAPPING = 0x9b + NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 + NL80211_CMD_SET_WDS_PEER = 0x42 + NL80211_CMD_SET_WIPHY = 0x2 + NL80211_CMD_SET_WIPHY_NETNS = 0x31 + NL80211_CMD_SET_WOWLAN = 0x4a + NL80211_CMD_STA_OPMODE_CHANGED = 0x80 + NL80211_CMD_START_AP = 0xf + NL80211_CMD_START_NAN = 0x73 + NL80211_CMD_START_P2P_DEVICE = 0x59 + NL80211_CMD_START_SCHED_SCAN = 0x4b + NL80211_CMD_STOP_AP = 0x10 + NL80211_CMD_STOP_NAN = 0x74 + NL80211_CMD_STOP_P2P_DEVICE = 0x5a + NL80211_CMD_STOP_SCHED_SCAN = 0x4c + NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 0x70 + NL80211_CMD_TDLS_CHANNEL_SWITCH = 0x6f + NL80211_CMD_TDLS_MGMT = 0x52 + NL80211_CMD_TDLS_OPER = 0x51 + NL80211_CMD_TESTMODE = 0x2d + NL80211_CMD_TRIGGER_SCAN = 0x21 + NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 0x56 + NL80211_CMD_UNEXPECTED_FRAME = 0x53 + NL80211_CMD_UNPROT_BEACON = 0x8a + NL80211_CMD_UNPROT_DEAUTHENTICATE = 0x46 + NL80211_CMD_UNPROT_DISASSOCIATE = 0x47 + NL80211_CMD_UNSPEC = 0x0 + NL80211_CMD_UPDATE_CONNECT_PARAMS = 0x7a + NL80211_CMD_UPDATE_FT_IES = 0x60 + NL80211_CMD_UPDATE_OWE_INFO = 0x87 + NL80211_CMD_VENDOR = 0x67 + NL80211_CMD_WIPHY_REG_CHANGE = 0x71 + NL80211_COALESCE_CONDITION_MATCH = 0x0 + NL80211_COALESCE_CONDITION_NO_MATCH = 0x1 + NL80211_CONN_FAIL_BLOCKED_CLIENT = 0x1 + NL80211_CONN_FAIL_MAX_CLIENTS = 0x0 + NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 0x2 + NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 0x1 + NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0x0 + NL80211_CQM_TXE_MAX_INTVL = 0x708 + NL80211_CRIT_PROTO_APIPA = 0x3 + NL80211_CRIT_PROTO_DHCP = 0x1 + NL80211_CRIT_PROTO_EAPOL = 0x2 + NL80211_CRIT_PROTO_MAX_DURATION = 0x1388 + NL80211_CRIT_PROTO_UNSPEC = 0x0 + NL80211_DFS_AVAILABLE = 0x2 + NL80211_DFS_ETSI = 0x2 + NL80211_DFS_FCC = 0x1 + NL80211_DFS_JP = 0x3 + NL80211_DFS_UNAVAILABLE = 0x1 + NL80211_DFS_UNSET = 0x0 + NL80211_DFS_USABLE = 0x0 + NL80211_EDMG_BW_CONFIG_MAX = 0xf + NL80211_EDMG_BW_CONFIG_MIN = 0x4 + NL80211_EDMG_CHANNELS_MAX = 0x3c + NL80211_EDMG_CHANNELS_MIN = 0x1 + NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 + NL80211_EHT_MIN_CAPABILITY_LEN = 0xd + NL80211_EXTERNAL_AUTH_ABORT = 0x1 + NL80211_EXTERNAL_AUTH_START = 0x0 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 0x10 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 0xf + NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 0x12 + NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 0x1b + NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 + NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 + NL80211_EXT_FEATURE_AQL = 0x28 + NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 0x40 + NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e + NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 + NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 + NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 + NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 + NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 + NL80211_EXT_FEATURE_BSS_COLOR = 0x3a + NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 + NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f + NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 0x1a + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30 + NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b + NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c + NL80211_EXT_FEATURE_DFS_CONCURRENT = 0x43 + NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 + NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b + NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 + NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 + NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe + NL80211_EXT_FEATURE_FILS_STA = 0x9 + NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 0x18 + NL80211_EXT_FEATURE_LOW_POWER_SCAN = 0x17 + NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 0x16 + NL80211_EXT_FEATURE_MFP_OPTIONAL = 0x15 + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 0xa + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 0xb + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 0x2d + NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 0x2 + NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 + NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 + NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 + NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 0x42 + NL80211_EXT_FEATURE_OWE_OFFLOAD = 0x41 + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d + NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 + NL80211_EXT_FEATURE_PUNCT = 0x3e + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c + NL80211_EXT_FEATURE_RRM = 0x1 + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 + NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 + NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 0x2f + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 0x1e + NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 0x1d + NL80211_EXT_FEATURE_SCAN_START_TIME = 0x3 + NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 + NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc + NL80211_EXT_FEATURE_SECURE_LTF = 0x37 + NL80211_EXT_FEATURE_SECURE_NAN = 0x3f + NL80211_EXT_FEATURE_SECURE_RTT = 0x38 + NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 + NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 0x44 + NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 + NL80211_EXT_FEATURE_TXQS = 0x1c + NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 + NL80211_EXT_FEATURE_VHT_IBSS = 0x0 + NL80211_EXT_FEATURE_VLAN_OFFLOAD = 0x27 + NL80211_FEATURE_ACKTO_ESTIMATION = 0x800000 + NL80211_FEATURE_ACTIVE_MONITOR = 0x20000 + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 0x4000 + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 0x40000 + NL80211_FEATURE_AP_SCAN = 0x100 + NL80211_FEATURE_CELL_BASE_REG_HINTS = 0x8 + NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 0x80000 + NL80211_FEATURE_DYNAMIC_SMPS = 0x2000000 + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 0x8000 + NL80211_FEATURE_HT_IBSS = 0x2 + NL80211_FEATURE_INACTIVITY_TIMER = 0x4 + NL80211_FEATURE_LOW_PRIORITY_SCAN = 0x40 + NL80211_FEATURE_MAC_ON_CREATE = 0x8000000 + NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 0x80000000 + NL80211_FEATURE_NEED_OBSS_SCAN = 0x400 + NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 0x10 + NL80211_FEATURE_P2P_GO_CTWIN = 0x800 + NL80211_FEATURE_P2P_GO_OPPPS = 0x1000 + NL80211_FEATURE_QUIET = 0x200000 + NL80211_FEATURE_SAE = 0x20 + NL80211_FEATURE_SCAN_FLUSH = 0x80 + NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 0x20000000 + NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 0x40000000 + NL80211_FEATURE_SK_TX_STATUS = 0x1 + NL80211_FEATURE_STATIC_SMPS = 0x1000000 + NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 0x4000000 + NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 0x10000000 + NL80211_FEATURE_TX_POWER_INSERTION = 0x400000 + NL80211_FEATURE_USERSPACE_MPM = 0x10000 + NL80211_FEATURE_VIF_TXPOWER = 0x200 + NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 0x100000 + NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 0x2 + NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 0x1 + NL80211_FILS_DISCOVERY_ATTR_MAX = 0x3 + NL80211_FILS_DISCOVERY_ATTR_TMPL = 0x3 + NL80211_FILS_DISCOVERY_TMPL_MIN_LEN = 0x2a + NL80211_FREQUENCY_ATTR_16MHZ = 0x19 + NL80211_FREQUENCY_ATTR_1MHZ = 0x15 + NL80211_FREQUENCY_ATTR_2MHZ = 0x16 + NL80211_FREQUENCY_ATTR_4MHZ = 0x17 + NL80211_FREQUENCY_ATTR_8MHZ = 0x18 + NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP = 0x21 + NL80211_FREQUENCY_ATTR_CAN_MONITOR = 0x20 + NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd + NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 0x1d + NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 + NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 + NL80211_FREQUENCY_ATTR_DISABLED = 0x2 + NL80211_FREQUENCY_ATTR_FREQ = 0x1 + NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf + NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe + NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf + NL80211_FREQUENCY_ATTR_MAX = 0x21 + NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 + NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 + NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc + NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 + NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a + NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 0x1f + NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 0x1e + NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb + NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b + NL80211_FREQUENCY_ATTR_NO_HE = 0x13 + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa + NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 + NL80211_FREQUENCY_ATTR_NO_IR = 0x3 + NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT = 0x1f + NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT = 0x1e + NL80211_FREQUENCY_ATTR_OFFSET = 0x14 + NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 + NL80211_FREQUENCY_ATTR_PSD = 0x1c + NL80211_FREQUENCY_ATTR_RADAR = 0x5 + NL80211_FREQUENCY_ATTR_WMM = 0x12 + NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 + NL80211_FTM_RESP_ATTR_ENABLED = 0x1 + NL80211_FTM_RESP_ATTR_LCI = 0x2 + NL80211_FTM_RESP_ATTR_MAX = 0x3 + NL80211_FTM_STATS_ASAP_NUM = 0x4 + NL80211_FTM_STATS_FAILED_NUM = 0x3 + NL80211_FTM_STATS_MAX = 0xa + NL80211_FTM_STATS_NON_ASAP_NUM = 0x5 + NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 0x9 + NL80211_FTM_STATS_PAD = 0xa + NL80211_FTM_STATS_PARTIAL_NUM = 0x2 + NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 0x8 + NL80211_FTM_STATS_SUCCESS_NUM = 0x1 + NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 0x6 + NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 0x7 + NL80211_GENL_NAME = "nl80211" + NL80211_HE_BSS_COLOR_ATTR_COLOR = 0x1 + NL80211_HE_BSS_COLOR_ATTR_DISABLED = 0x2 + NL80211_HE_BSS_COLOR_ATTR_MAX = 0x3 + NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 0x3 + NL80211_HE_MAX_CAPABILITY_LEN = 0x36 + NL80211_HE_MIN_CAPABILITY_LEN = 0x10 + NL80211_HE_NSS_MAX = 0x8 + NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 0x4 + NL80211_HE_OBSS_PD_ATTR_MAX = 0x6 + NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 0x2 + NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 0x1 + NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 0x3 + NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 0x5 + NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 0x6 + NL80211_HIDDEN_SSID_NOT_IN_USE = 0x0 + NL80211_HIDDEN_SSID_ZERO_CONTENTS = 0x2 + NL80211_HIDDEN_SSID_ZERO_LEN = 0x1 + NL80211_HT_CAPABILITY_LEN = 0x1a + NL80211_IFACE_COMB_BI_MIN_GCD = 0x7 + NL80211_IFACE_COMB_LIMITS = 0x1 + NL80211_IFACE_COMB_MAXNUM = 0x2 + NL80211_IFACE_COMB_NUM_CHANNELS = 0x4 + NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 0x6 + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 0x5 + NL80211_IFACE_COMB_STA_AP_BI_MATCH = 0x3 + NL80211_IFACE_COMB_UNSPEC = 0x0 + NL80211_IFACE_LIMIT_MAX = 0x1 + NL80211_IFACE_LIMIT_TYPES = 0x2 + NL80211_IFACE_LIMIT_UNSPEC = 0x0 + NL80211_IFTYPE_ADHOC = 0x1 + NL80211_IFTYPE_AKM_ATTR_IFTYPES = 0x1 + NL80211_IFTYPE_AKM_ATTR_MAX = 0x2 + NL80211_IFTYPE_AKM_ATTR_SUITES = 0x2 + NL80211_IFTYPE_AP = 0x3 + NL80211_IFTYPE_AP_VLAN = 0x4 + NL80211_IFTYPE_MAX = 0xc + NL80211_IFTYPE_MESH_POINT = 0x7 + NL80211_IFTYPE_MONITOR = 0x6 + NL80211_IFTYPE_NAN = 0xc + NL80211_IFTYPE_OCB = 0xb + NL80211_IFTYPE_P2P_CLIENT = 0x8 + NL80211_IFTYPE_P2P_DEVICE = 0xa + NL80211_IFTYPE_P2P_GO = 0x9 + NL80211_IFTYPE_STATION = 0x2 + NL80211_IFTYPE_UNSPECIFIED = 0x0 + NL80211_IFTYPE_WDS = 0x5 + NL80211_KCK_EXT_LEN_32 = 0x20 + NL80211_KCK_EXT_LEN = 0x18 + NL80211_KCK_LEN = 0x10 + NL80211_KEK_EXT_LEN = 0x20 + NL80211_KEK_LEN = 0x10 + NL80211_KEY_CIPHER = 0x3 + NL80211_KEY_DATA = 0x1 + NL80211_KEY_DEFAULT_BEACON = 0xa + NL80211_KEY_DEFAULT = 0x5 + NL80211_KEY_DEFAULT_MGMT = 0x6 + NL80211_KEY_DEFAULT_TYPE_MULTICAST = 0x2 + NL80211_KEY_DEFAULT_TYPES = 0x8 + NL80211_KEY_DEFAULT_TYPE_UNICAST = 0x1 + NL80211_KEY_IDX = 0x2 + NL80211_KEY_MAX = 0xa + NL80211_KEY_MODE = 0x9 + NL80211_KEY_NO_TX = 0x1 + NL80211_KEY_RX_TX = 0x0 + NL80211_KEY_SEQ = 0x4 + NL80211_KEY_SET_TX = 0x2 + NL80211_KEY_TYPE = 0x7 + NL80211_KEYTYPE_GROUP = 0x0 + NL80211_KEYTYPE_PAIRWISE = 0x1 + NL80211_KEYTYPE_PEERKEY = 0x2 + NL80211_MAX_NR_AKM_SUITES = 0x2 + NL80211_MAX_NR_CIPHER_SUITES = 0x5 + NL80211_MAX_SUPP_HT_RATES = 0x4d + NL80211_MAX_SUPP_RATES = 0x20 + NL80211_MAX_SUPP_REG_RULES = 0x80 + NL80211_MAX_SUPP_SELECTORS = 0x80 + NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 + NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 + NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 + NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 + NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 + NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 + NL80211_MESHCONF_ATTR_MAX = 0x1f + NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 + NL80211_MESHCONF_AWAKE_WINDOW = 0x1b + NL80211_MESHCONF_CONFIRM_TIMEOUT = 0x2 + NL80211_MESHCONF_CONNECTED_TO_AS = 0x1f + NL80211_MESHCONF_CONNECTED_TO_GATE = 0x1d + NL80211_MESHCONF_ELEMENT_TTL = 0xf + NL80211_MESHCONF_FORWARDING = 0x13 + NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 0x11 + NL80211_MESHCONF_HOLDING_TIMEOUT = 0x3 + NL80211_MESHCONF_HT_OPMODE = 0x16 + NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 0xb + NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 0x19 + NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 0x8 + NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 0xd + NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 0x17 + NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 0x12 + NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 0xc + NL80211_MESHCONF_HWMP_RANN_INTERVAL = 0x10 + NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 0x18 + NL80211_MESHCONF_HWMP_ROOTMODE = 0xe + NL80211_MESHCONF_MAX_PEER_LINKS = 0x4 + NL80211_MESHCONF_MAX_RETRIES = 0x5 + NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 0xa + NL80211_MESHCONF_NOLEARN = 0x1e + NL80211_MESHCONF_PATH_REFRESH_TIME = 0x9 + NL80211_MESHCONF_PLINK_TIMEOUT = 0x1c + NL80211_MESHCONF_POWER_MODE = 0x1a + NL80211_MESHCONF_RETRY_TIMEOUT = 0x1 + NL80211_MESHCONF_RSSI_THRESHOLD = 0x14 + NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 0x15 + NL80211_MESHCONF_TTL = 0x6 + NL80211_MESH_POWER_ACTIVE = 0x1 + NL80211_MESH_POWER_DEEP_SLEEP = 0x3 + NL80211_MESH_POWER_LIGHT_SLEEP = 0x2 + NL80211_MESH_POWER_MAX = 0x3 + NL80211_MESH_POWER_UNKNOWN = 0x0 + NL80211_MESH_SETUP_ATTR_MAX = 0x8 + NL80211_MESH_SETUP_AUTH_PROTOCOL = 0x8 + NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 0x2 + NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 0x1 + NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 0x6 + NL80211_MESH_SETUP_IE = 0x3 + NL80211_MESH_SETUP_USERSPACE_AMPE = 0x5 + NL80211_MESH_SETUP_USERSPACE_AUTH = 0x4 + NL80211_MESH_SETUP_USERSPACE_MPM = 0x7 + NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE = 0x3 + NL80211_MFP_NO = 0x0 + NL80211_MFP_OPTIONAL = 0x2 + NL80211_MFP_REQUIRED = 0x1 + NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 0xa + NL80211_MNTR_FLAG_ACTIVE = 0x6 + NL80211_MNTR_FLAG_CONTROL = 0x3 + NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 + NL80211_MNTR_FLAG_FCSFAIL = 0x1 + NL80211_MNTR_FLAG_MAX = 0x7 + NL80211_MNTR_FLAG_OTHER_BSS = 0x4 + NL80211_MNTR_FLAG_PLCPFAIL = 0x2 + NL80211_MPATH_FLAG_ACTIVE = 0x1 + NL80211_MPATH_FLAG_FIXED = 0x8 + NL80211_MPATH_FLAG_RESOLVED = 0x10 + NL80211_MPATH_FLAG_RESOLVING = 0x2 + NL80211_MPATH_FLAG_SN_VALID = 0x4 + NL80211_MPATH_INFO_DISCOVERY_RETRIES = 0x7 + NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 0x6 + NL80211_MPATH_INFO_EXPTIME = 0x4 + NL80211_MPATH_INFO_FLAGS = 0x5 + NL80211_MPATH_INFO_FRAME_QLEN = 0x1 + NL80211_MPATH_INFO_HOP_COUNT = 0x8 + NL80211_MPATH_INFO_MAX = 0x9 + NL80211_MPATH_INFO_METRIC = 0x3 + NL80211_MPATH_INFO_PATH_CHANGE = 0x9 + NL80211_MPATH_INFO_SN = 0x2 + NL80211_MULTICAST_GROUP_CONFIG = "config" + NL80211_MULTICAST_GROUP_MLME = "mlme" + NL80211_MULTICAST_GROUP_NAN = "nan" + NL80211_MULTICAST_GROUP_REG = "regulatory" + NL80211_MULTICAST_GROUP_SCAN = "scan" + NL80211_MULTICAST_GROUP_TESTMODE = "testmode" + NL80211_MULTICAST_GROUP_VENDOR = "vendor" + NL80211_NAN_FUNC_ATTR_MAX = 0x10 + NL80211_NAN_FUNC_CLOSE_RANGE = 0x9 + NL80211_NAN_FUNC_FOLLOW_UP = 0x2 + NL80211_NAN_FUNC_FOLLOW_UP_DEST = 0x8 + NL80211_NAN_FUNC_FOLLOW_UP_ID = 0x6 + NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 0x7 + NL80211_NAN_FUNC_INSTANCE_ID = 0xf + NL80211_NAN_FUNC_MAX_TYPE = 0x2 + NL80211_NAN_FUNC_PUBLISH_BCAST = 0x4 + NL80211_NAN_FUNC_PUBLISH = 0x0 + NL80211_NAN_FUNC_PUBLISH_TYPE = 0x3 + NL80211_NAN_FUNC_RX_MATCH_FILTER = 0xd + NL80211_NAN_FUNC_SERVICE_ID = 0x2 + NL80211_NAN_FUNC_SERVICE_ID_LEN = 0x6 + NL80211_NAN_FUNC_SERVICE_INFO = 0xb + NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 0xff + NL80211_NAN_FUNC_SRF = 0xc + NL80211_NAN_FUNC_SRF_MAX_LEN = 0xff + NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 0x5 + NL80211_NAN_FUNC_SUBSCRIBE = 0x1 + NL80211_NAN_FUNC_TERM_REASON = 0x10 + NL80211_NAN_FUNC_TERM_REASON_ERROR = 0x2 + NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 0x1 + NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0x0 + NL80211_NAN_FUNC_TTL = 0xa + NL80211_NAN_FUNC_TX_MATCH_FILTER = 0xe + NL80211_NAN_FUNC_TYPE = 0x1 + NL80211_NAN_MATCH_ATTR_MAX = 0x2 + NL80211_NAN_MATCH_FUNC_LOCAL = 0x1 + NL80211_NAN_MATCH_FUNC_PEER = 0x2 + NL80211_NAN_SOLICITED_PUBLISH = 0x1 + NL80211_NAN_SRF_ATTR_MAX = 0x4 + NL80211_NAN_SRF_BF = 0x2 + NL80211_NAN_SRF_BF_IDX = 0x3 + NL80211_NAN_SRF_INCLUDE = 0x1 + NL80211_NAN_SRF_MAC_ADDRS = 0x4 + NL80211_NAN_UNSOLICITED_PUBLISH = 0x2 + NL80211_NUM_ACS = 0x4 + NL80211_P2P_PS_SUPPORTED = 0x1 + NL80211_P2P_PS_UNSUPPORTED = 0x0 + NL80211_PKTPAT_MASK = 0x1 + NL80211_PKTPAT_OFFSET = 0x3 + NL80211_PKTPAT_PATTERN = 0x2 + NL80211_PLINK_ACTION_BLOCK = 0x2 + NL80211_PLINK_ACTION_NO_ACTION = 0x0 + NL80211_PLINK_ACTION_OPEN = 0x1 + NL80211_PLINK_BLOCKED = 0x6 + NL80211_PLINK_CNF_RCVD = 0x3 + NL80211_PLINK_ESTAB = 0x4 + NL80211_PLINK_HOLDING = 0x5 + NL80211_PLINK_LISTEN = 0x0 + NL80211_PLINK_OPN_RCVD = 0x2 + NL80211_PLINK_OPN_SNT = 0x1 + NL80211_PMKSA_CANDIDATE_BSSID = 0x2 + NL80211_PMKSA_CANDIDATE_INDEX = 0x1 + NL80211_PMKSA_CANDIDATE_PREAUTH = 0x3 + NL80211_PMSR_ATTR_MAX = 0x5 + NL80211_PMSR_ATTR_MAX_PEERS = 0x1 + NL80211_PMSR_ATTR_PEERS = 0x5 + NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 0x3 + NL80211_PMSR_ATTR_REPORT_AP_TSF = 0x2 + NL80211_PMSR_ATTR_TYPE_CAPA = 0x4 + NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 0x6 + NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 0x7 + NL80211_PMSR_FTM_CAPA_ATTR_MAX = 0xa + NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 0x8 + NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 0x2 + NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 0xa + NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 0x5 + NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 0x4 + NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 0x3 + NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 0x9 + NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 0x7 + NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 0x5 + NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 0x1 + NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 0x6 + NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 0x4 + NL80211_PMSR_FTM_FAILURE_REJECTED = 0x2 + NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 + NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 + NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd + NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 + NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 + NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 + NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 0xc + NL80211_PMSR_FTM_REQ_ATTR_MAX = 0xd + NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 0xb + NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 0x3 + NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 0x7 + NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 0x2 + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 0x9 + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 0x8 + NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 0xa + NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 0x7 + NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 0x2 + NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 0x5 + NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 0x14 + NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 0x10 + NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 0x12 + NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 0x11 + NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 0x1 + NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 0x8 + NL80211_PMSR_FTM_RESP_ATTR_LCI = 0x13 + NL80211_PMSR_FTM_RESP_ATTR_MAX = 0x15 + NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 0x6 + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 0x3 + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 0x4 + NL80211_PMSR_FTM_RESP_ATTR_PAD = 0x15 + NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 0x9 + NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 0xa + NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 0xd + NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 0xf + NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 0xe + NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 0xc + NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 0xb + NL80211_PMSR_PEER_ATTR_ADDR = 0x1 + NL80211_PMSR_PEER_ATTR_CHAN = 0x2 + NL80211_PMSR_PEER_ATTR_MAX = 0x4 + NL80211_PMSR_PEER_ATTR_REQ = 0x3 + NL80211_PMSR_PEER_ATTR_RESP = 0x4 + NL80211_PMSR_REQ_ATTR_DATA = 0x1 + NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 0x2 + NL80211_PMSR_REQ_ATTR_MAX = 0x2 + NL80211_PMSR_RESP_ATTR_AP_TSF = 0x4 + NL80211_PMSR_RESP_ATTR_DATA = 0x1 + NL80211_PMSR_RESP_ATTR_FINAL = 0x5 + NL80211_PMSR_RESP_ATTR_HOST_TIME = 0x3 + NL80211_PMSR_RESP_ATTR_MAX = 0x6 + NL80211_PMSR_RESP_ATTR_PAD = 0x6 + NL80211_PMSR_RESP_ATTR_STATUS = 0x2 + NL80211_PMSR_STATUS_FAILURE = 0x3 + NL80211_PMSR_STATUS_REFUSED = 0x1 + NL80211_PMSR_STATUS_SUCCESS = 0x0 + NL80211_PMSR_STATUS_TIMEOUT = 0x2 + NL80211_PMSR_TYPE_FTM = 0x1 + NL80211_PMSR_TYPE_INVALID = 0x0 + NL80211_PMSR_TYPE_MAX = 0x1 + NL80211_PREAMBLE_DMG = 0x3 + NL80211_PREAMBLE_HE = 0x4 + NL80211_PREAMBLE_HT = 0x1 + NL80211_PREAMBLE_LEGACY = 0x0 + NL80211_PREAMBLE_VHT = 0x2 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 0x8 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 0x4 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 0x2 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 0x1 + NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 0x1 + NL80211_PS_DISABLED = 0x0 + NL80211_PS_ENABLED = 0x1 + NL80211_RADAR_CAC_ABORTED = 0x2 + NL80211_RADAR_CAC_FINISHED = 0x1 + NL80211_RADAR_CAC_STARTED = 0x5 + NL80211_RADAR_DETECTED = 0x0 + NL80211_RADAR_NOP_FINISHED = 0x3 + NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 + NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb + NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa + NL80211_RATE_INFO_16_MHZ_WIDTH = 0x1d + NL80211_RATE_INFO_1_MHZ_WIDTH = 0x19 + NL80211_RATE_INFO_2_MHZ_WIDTH = 0x1a + NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 + NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 + NL80211_RATE_INFO_4_MHZ_WIDTH = 0x1b + NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc + NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 + NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 + NL80211_RATE_INFO_8_MHZ_WIDTH = 0x1c + NL80211_RATE_INFO_BITRATE32 = 0x5 + NL80211_RATE_INFO_BITRATE = 0x1 + NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 + NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 + NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 + NL80211_RATE_INFO_EHT_GI = 0x15 + NL80211_RATE_INFO_EHT_MCS = 0x13 + NL80211_RATE_INFO_EHT_NSS = 0x14 + NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 + NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 + NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 + NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe + NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 + NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 + NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf + NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 + NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa + NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 + NL80211_RATE_INFO_HE_1XLTF = 0x0 + NL80211_RATE_INFO_HE_2XLTF = 0x1 + NL80211_RATE_INFO_HE_4XLTF = 0x2 + NL80211_RATE_INFO_HE_DCM = 0x10 + NL80211_RATE_INFO_HE_GI_0_8 = 0x0 + NL80211_RATE_INFO_HE_GI_1_6 = 0x1 + NL80211_RATE_INFO_HE_GI_3_2 = 0x2 + NL80211_RATE_INFO_HE_GI = 0xf + NL80211_RATE_INFO_HE_MCS = 0xd + NL80211_RATE_INFO_HE_NSS = 0xe + NL80211_RATE_INFO_HE_RU_ALLOC_106 = 0x2 + NL80211_RATE_INFO_HE_RU_ALLOC_242 = 0x3 + NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 0x6 + NL80211_RATE_INFO_HE_RU_ALLOC_484 = 0x4 + NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 + NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 + NL80211_RATE_INFO_MAX = 0x1d + NL80211_RATE_INFO_MCS = 0x2 + NL80211_RATE_INFO_S1G_MCS = 0x17 + NL80211_RATE_INFO_S1G_NSS = 0x18 + NL80211_RATE_INFO_SHORT_GI = 0x4 + NL80211_RATE_INFO_VHT_MCS = 0x6 + NL80211_RATE_INFO_VHT_NSS = 0x7 + NL80211_REGDOM_SET_BY_CORE = 0x0 + NL80211_REGDOM_SET_BY_COUNTRY_IE = 0x3 + NL80211_REGDOM_SET_BY_DRIVER = 0x2 + NL80211_REGDOM_SET_BY_USER = 0x1 + NL80211_REGDOM_TYPE_COUNTRY = 0x0 + NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 + NL80211_REGDOM_TYPE_INTERSECTION = 0x3 + NL80211_REGDOM_TYPE_WORLD = 0x1 + NL80211_REG_RULE_ATTR_MAX = 0x8 + NL80211_REKEY_DATA_AKM = 0x4 + NL80211_REKEY_DATA_KCK = 0x2 + NL80211_REKEY_DATA_KEK = 0x1 + NL80211_REKEY_DATA_REPLAY_CTR = 0x3 + NL80211_REPLAY_CTR_LEN = 0x8 + NL80211_RRF_ALLOW_6GHZ_VLP_AP = 0x1000000 + NL80211_RRF_AUTO_BW = 0x800 + NL80211_RRF_DFS = 0x10 + NL80211_RRF_DFS_CONCURRENT = 0x200000 + NL80211_RRF_GO_CONCURRENT = 0x1000 + NL80211_RRF_IR_CONCURRENT = 0x1000 + NL80211_RRF_NO_160MHZ = 0x10000 + NL80211_RRF_NO_320MHZ = 0x40000 + NL80211_RRF_NO_6GHZ_AFC_CLIENT = 0x800000 + NL80211_RRF_NO_6GHZ_VLP_CLIENT = 0x400000 + NL80211_RRF_NO_80MHZ = 0x8000 + NL80211_RRF_NO_CCK = 0x2 + NL80211_RRF_NO_EHT = 0x80000 + NL80211_RRF_NO_HE = 0x20000 + NL80211_RRF_NO_HT40 = 0x6000 + NL80211_RRF_NO_HT40MINUS = 0x2000 + NL80211_RRF_NO_HT40PLUS = 0x4000 + NL80211_RRF_NO_IBSS = 0x80 + NL80211_RRF_NO_INDOOR = 0x4 + NL80211_RRF_NO_IR_ALL = 0x180 + NL80211_RRF_NO_IR = 0x80 + NL80211_RRF_NO_OFDM = 0x1 + NL80211_RRF_NO_OUTDOOR = 0x8 + NL80211_RRF_NO_UHB_AFC_CLIENT = 0x800000 + NL80211_RRF_NO_UHB_VLP_CLIENT = 0x400000 + NL80211_RRF_PASSIVE_SCAN = 0x80 + NL80211_RRF_PSD = 0x100000 + NL80211_RRF_PTMP_ONLY = 0x40 + NL80211_RRF_PTP_ONLY = 0x20 + NL80211_RXMGMT_FLAG_ANSWERED = 0x1 + NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 0x2 + NL80211_SAE_PWE_BOTH = 0x3 + NL80211_SAE_PWE_HASH_TO_ELEMENT = 0x2 + NL80211_SAE_PWE_HUNT_AND_PECK = 0x1 + NL80211_SAE_PWE_UNSPECIFIED = 0x0 + NL80211_SAR_ATTR_MAX = 0x2 + NL80211_SAR_ATTR_SPECS = 0x2 + NL80211_SAR_ATTR_SPECS_END_FREQ = 0x4 + NL80211_SAR_ATTR_SPECS_MAX = 0x4 + NL80211_SAR_ATTR_SPECS_POWER = 0x1 + NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 0x2 + NL80211_SAR_ATTR_SPECS_START_FREQ = 0x3 + NL80211_SAR_ATTR_TYPE = 0x1 + NL80211_SAR_TYPE_POWER = 0x0 + NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 0x20 + NL80211_SCAN_FLAG_AP = 0x4 + NL80211_SCAN_FLAG_COLOCATED_6GHZ = 0x4000 + NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 0x10 + NL80211_SCAN_FLAG_FLUSH = 0x2 + NL80211_SCAN_FLAG_FREQ_KHZ = 0x2000 + NL80211_SCAN_FLAG_HIGH_ACCURACY = 0x400 + NL80211_SCAN_FLAG_LOW_POWER = 0x200 + NL80211_SCAN_FLAG_LOW_PRIORITY = 0x1 + NL80211_SCAN_FLAG_LOW_SPAN = 0x100 + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 0x1000 + NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x80 + NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 0x40 + NL80211_SCAN_FLAG_RANDOM_ADDR = 0x8 + NL80211_SCAN_FLAG_RANDOM_SN = 0x800 + NL80211_SCAN_RSSI_THOLD_OFF = -0x12c + NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 0x5 + NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 0x6 + NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 0x3 + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 0x4 + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 0x2 + NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 0x1 + NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 0x6 + NL80211_SCHED_SCAN_PLAN_INTERVAL = 0x1 + NL80211_SCHED_SCAN_PLAN_ITERATIONS = 0x2 + NL80211_SCHED_SCAN_PLAN_MAX = 0x2 + NL80211_SMPS_DYNAMIC = 0x2 + NL80211_SMPS_MAX = 0x2 + NL80211_SMPS_OFF = 0x0 + NL80211_SMPS_STATIC = 0x1 + NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 0x5 + NL80211_STA_BSS_PARAM_CTS_PROT = 0x1 + NL80211_STA_BSS_PARAM_DTIM_PERIOD = 0x4 + NL80211_STA_BSS_PARAM_MAX = 0x5 + NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 0x2 + NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 0x3 + NL80211_STA_FLAG_ASSOCIATED = 0x7 + NL80211_STA_FLAG_AUTHENTICATED = 0x5 + NL80211_STA_FLAG_AUTHORIZED = 0x1 + NL80211_STA_FLAG_MAX = 0x8 + NL80211_STA_FLAG_MAX_OLD_API = 0x6 + NL80211_STA_FLAG_MFP = 0x4 + NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 + NL80211_STA_FLAG_SPP_AMSDU = 0x8 + NL80211_STA_FLAG_TDLS_PEER = 0x6 + NL80211_STA_FLAG_WME = 0x3 + NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 + NL80211_STA_INFO_ACK_SIGNAL = 0x22 + NL80211_STA_INFO_AIRTIME_LINK_METRIC = 0x29 + NL80211_STA_INFO_AIRTIME_WEIGHT = 0x28 + NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 0x2a + NL80211_STA_INFO_BEACON_LOSS = 0x12 + NL80211_STA_INFO_BEACON_RX = 0x1d + NL80211_STA_INFO_BEACON_SIGNAL_AVG = 0x1e + NL80211_STA_INFO_BSS_PARAM = 0xf + NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 0x1a + NL80211_STA_INFO_CHAIN_SIGNAL = 0x19 + NL80211_STA_INFO_CONNECTED_TIME = 0x10 + NL80211_STA_INFO_CONNECTED_TO_AS = 0x2b + NL80211_STA_INFO_CONNECTED_TO_GATE = 0x26 + NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG = 0x23 + NL80211_STA_INFO_EXPECTED_THROUGHPUT = 0x1b + NL80211_STA_INFO_FCS_ERROR_COUNT = 0x25 + NL80211_STA_INFO_INACTIVE_TIME = 0x1 + NL80211_STA_INFO_LLID = 0x4 + NL80211_STA_INFO_LOCAL_PM = 0x14 + NL80211_STA_INFO_MAX = 0x2b + NL80211_STA_INFO_NONPEER_PM = 0x16 + NL80211_STA_INFO_PAD = 0x21 + NL80211_STA_INFO_PEER_PM = 0x15 + NL80211_STA_INFO_PLID = 0x5 + NL80211_STA_INFO_PLINK_STATE = 0x6 + NL80211_STA_INFO_RX_BITRATE = 0xe + NL80211_STA_INFO_RX_BYTES64 = 0x17 + NL80211_STA_INFO_RX_BYTES = 0x2 + NL80211_STA_INFO_RX_DROP_MISC = 0x1c + NL80211_STA_INFO_RX_DURATION = 0x20 + NL80211_STA_INFO_RX_MPDUS = 0x24 + NL80211_STA_INFO_RX_PACKETS = 0x9 + NL80211_STA_INFO_SIGNAL_AVG = 0xd + NL80211_STA_INFO_SIGNAL = 0x7 + NL80211_STA_INFO_STA_FLAGS = 0x11 + NL80211_STA_INFO_TID_STATS = 0x1f + NL80211_STA_INFO_T_OFFSET = 0x13 + NL80211_STA_INFO_TX_BITRATE = 0x8 + NL80211_STA_INFO_TX_BYTES64 = 0x18 + NL80211_STA_INFO_TX_BYTES = 0x3 + NL80211_STA_INFO_TX_DURATION = 0x27 + NL80211_STA_INFO_TX_FAILED = 0xc + NL80211_STA_INFO_TX_PACKETS = 0xa + NL80211_STA_INFO_TX_RETRIES = 0xb + NL80211_STA_WME_MAX = 0x2 + NL80211_STA_WME_MAX_SP = 0x2 + NL80211_STA_WME_UAPSD_QUEUES = 0x1 + NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY = 0x5 + NL80211_SURVEY_INFO_CHANNEL_TIME = 0x4 + NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 0x6 + NL80211_SURVEY_INFO_CHANNEL_TIME_RX = 0x7 + NL80211_SURVEY_INFO_CHANNEL_TIME_TX = 0x8 + NL80211_SURVEY_INFO_FREQUENCY = 0x1 + NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 0xc + NL80211_SURVEY_INFO_IN_USE = 0x3 + NL80211_SURVEY_INFO_MAX = 0xc + NL80211_SURVEY_INFO_NOISE = 0x2 + NL80211_SURVEY_INFO_PAD = 0xa + NL80211_SURVEY_INFO_TIME_BSS_RX = 0xb + NL80211_SURVEY_INFO_TIME_BUSY = 0x5 + NL80211_SURVEY_INFO_TIME = 0x4 + NL80211_SURVEY_INFO_TIME_EXT_BUSY = 0x6 + NL80211_SURVEY_INFO_TIME_RX = 0x7 + NL80211_SURVEY_INFO_TIME_SCAN = 0x9 + NL80211_SURVEY_INFO_TIME_TX = 0x8 + NL80211_TDLS_DISABLE_LINK = 0x4 + NL80211_TDLS_DISCOVERY_REQ = 0x0 + NL80211_TDLS_ENABLE_LINK = 0x3 + NL80211_TDLS_PEER_HE = 0x8 + NL80211_TDLS_PEER_HT = 0x1 + NL80211_TDLS_PEER_VHT = 0x2 + NL80211_TDLS_PEER_WMM = 0x4 + NL80211_TDLS_SETUP = 0x1 + NL80211_TDLS_TEARDOWN = 0x2 + NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 0x9 + NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 0xb + NL80211_TID_CONFIG_ATTR_MAX = 0xd + NL80211_TID_CONFIG_ATTR_NOACK = 0x6 + NL80211_TID_CONFIG_ATTR_OVERRIDE = 0x4 + NL80211_TID_CONFIG_ATTR_PAD = 0x1 + NL80211_TID_CONFIG_ATTR_PEER_SUPP = 0x3 + NL80211_TID_CONFIG_ATTR_RETRY_LONG = 0x8 + NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 0x7 + NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 0xa + NL80211_TID_CONFIG_ATTR_TIDS = 0x5 + NL80211_TID_CONFIG_ATTR_TX_RATE = 0xd + NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 0xc + NL80211_TID_CONFIG_ATTR_VIF_SUPP = 0x2 + NL80211_TID_CONFIG_DISABLE = 0x1 + NL80211_TID_CONFIG_ENABLE = 0x0 + NL80211_TID_STATS_MAX = 0x6 + NL80211_TID_STATS_PAD = 0x5 + NL80211_TID_STATS_RX_MSDU = 0x1 + NL80211_TID_STATS_TX_MSDU = 0x2 + NL80211_TID_STATS_TX_MSDU_FAILED = 0x4 + NL80211_TID_STATS_TX_MSDU_RETRIES = 0x3 + NL80211_TID_STATS_TXQ_STATS = 0x6 + NL80211_TIMEOUT_ASSOC = 0x3 + NL80211_TIMEOUT_AUTH = 0x2 + NL80211_TIMEOUT_SCAN = 0x1 + NL80211_TIMEOUT_UNSPECIFIED = 0x0 + NL80211_TKIP_DATA_OFFSET_ENCR_KEY = 0x0 + NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY = 0x18 + NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY = 0x10 + NL80211_TX_POWER_AUTOMATIC = 0x0 + NL80211_TX_POWER_FIXED = 0x2 + NL80211_TX_POWER_LIMITED = 0x1 + NL80211_TXQ_ATTR_AC = 0x1 + NL80211_TXQ_ATTR_AIFS = 0x5 + NL80211_TXQ_ATTR_CWMAX = 0x4 + NL80211_TXQ_ATTR_CWMIN = 0x3 + NL80211_TXQ_ATTR_MAX = 0x5 + NL80211_TXQ_ATTR_QUEUE = 0x1 + NL80211_TXQ_ATTR_TXOP = 0x2 + NL80211_TXQ_Q_BE = 0x2 + NL80211_TXQ_Q_BK = 0x3 + NL80211_TXQ_Q_VI = 0x1 + NL80211_TXQ_Q_VO = 0x0 + NL80211_TXQ_STATS_BACKLOG_BYTES = 0x1 + NL80211_TXQ_STATS_BACKLOG_PACKETS = 0x2 + NL80211_TXQ_STATS_COLLISIONS = 0x8 + NL80211_TXQ_STATS_DROPS = 0x4 + NL80211_TXQ_STATS_ECN_MARKS = 0x5 + NL80211_TXQ_STATS_FLOWS = 0x3 + NL80211_TXQ_STATS_MAX = 0xb + NL80211_TXQ_STATS_MAX_FLOWS = 0xb + NL80211_TXQ_STATS_OVERLIMIT = 0x6 + NL80211_TXQ_STATS_OVERMEMORY = 0x7 + NL80211_TXQ_STATS_TX_BYTES = 0x9 + NL80211_TXQ_STATS_TX_PACKETS = 0xa + NL80211_TX_RATE_AUTOMATIC = 0x0 + NL80211_TXRATE_DEFAULT_GI = 0x0 + NL80211_TX_RATE_FIXED = 0x2 + NL80211_TXRATE_FORCE_LGI = 0x2 + NL80211_TXRATE_FORCE_SGI = 0x1 + NL80211_TXRATE_GI = 0x4 + NL80211_TXRATE_HE = 0x5 + NL80211_TXRATE_HE_GI = 0x6 + NL80211_TXRATE_HE_LTF = 0x7 + NL80211_TXRATE_HT = 0x2 + NL80211_TXRATE_LEGACY = 0x1 + NL80211_TX_RATE_LIMITED = 0x1 + NL80211_TXRATE_MAX = 0x7 + NL80211_TXRATE_MCS = 0x2 + NL80211_TXRATE_VHT = 0x3 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 0x1 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 0x2 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 0x2 + NL80211_USER_REG_HINT_CELL_BASE = 0x1 + NL80211_USER_REG_HINT_INDOOR = 0x2 + NL80211_USER_REG_HINT_USER = 0x0 + NL80211_VENDOR_ID_IS_LINUX = 0x80000000 + NL80211_VHT_CAPABILITY_LEN = 0xc + NL80211_VHT_NSS_MAX = 0x8 + NL80211_WIPHY_NAME_MAXLEN = 0x40 + NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE = 0x2 + NL80211_WIPHY_RADIO_ATTR_INDEX = 0x1 + NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION = 0x3 + NL80211_WIPHY_RADIO_ATTR_MAX = 0x4 + NL80211_WIPHY_RADIO_FREQ_ATTR_END = 0x2 + NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = 0x2 + NL80211_WIPHY_RADIO_FREQ_ATTR_START = 0x1 + NL80211_WMMR_AIFSN = 0x3 + NL80211_WMMR_CW_MAX = 0x2 + NL80211_WMMR_CW_MIN = 0x1 + NL80211_WMMR_MAX = 0x4 + NL80211_WMMR_TXOP = 0x4 + NL80211_WOWLAN_PKTPAT_MASK = 0x1 + NL80211_WOWLAN_PKTPAT_OFFSET = 0x3 + NL80211_WOWLAN_PKTPAT_PATTERN = 0x2 + NL80211_WOWLAN_TCP_DATA_INTERVAL = 0x9 + NL80211_WOWLAN_TCP_DATA_PAYLOAD = 0x6 + NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 0x7 + NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 0x8 + NL80211_WOWLAN_TCP_DST_IPV4 = 0x2 + NL80211_WOWLAN_TCP_DST_MAC = 0x3 + NL80211_WOWLAN_TCP_DST_PORT = 0x5 + NL80211_WOWLAN_TCP_SRC_IPV4 = 0x1 + NL80211_WOWLAN_TCP_SRC_PORT = 0x4 + NL80211_WOWLAN_TCP_WAKE_MASK = 0xb + NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 0xa + NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 0x8 + NL80211_WOWLAN_TRIG_ANY = 0x1 + NL80211_WOWLAN_TRIG_DISCONNECT = 0x2 + NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 0x7 + NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 0x6 + NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 0x5 + NL80211_WOWLAN_TRIG_MAGIC_PKT = 0x3 + NL80211_WOWLAN_TRIG_NET_DETECT = 0x12 + NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 0x13 + NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 + NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 + NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe + NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 0x14 + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 0xd + NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 0x10 + NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 0xf + NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 0x11 + NL80211_WPA_VERSION_1 = 0x1 + NL80211_WPA_VERSION_2 = 0x2 + NL80211_WPA_VERSION_3 = 0x4 +) + +const ( + FRA_UNSPEC = 0x0 + FRA_DST = 0x1 + FRA_SRC = 0x2 + FRA_IIFNAME = 0x3 + FRA_GOTO = 0x4 + FRA_UNUSED2 = 0x5 + FRA_PRIORITY = 0x6 + FRA_UNUSED3 = 0x7 + FRA_UNUSED4 = 0x8 + FRA_UNUSED5 = 0x9 + FRA_FWMARK = 0xa + FRA_FLOW = 0xb + FRA_TUN_ID = 0xc + FRA_SUPPRESS_IFGROUP = 0xd + FRA_SUPPRESS_PREFIXLEN = 0xe + FRA_TABLE = 0xf + FRA_FWMASK = 0x10 + FRA_OIFNAME = 0x11 + FRA_PAD = 0x12 + FRA_L3MDEV = 0x13 + FRA_UID_RANGE = 0x14 + FRA_PROTOCOL = 0x15 + FRA_IP_PROTO = 0x16 + FRA_SPORT_RANGE = 0x17 + FRA_DPORT_RANGE = 0x18 + FR_ACT_UNSPEC = 0x0 + FR_ACT_TO_TBL = 0x1 + FR_ACT_GOTO = 0x2 + FR_ACT_NOP = 0x3 + FR_ACT_RES3 = 0x4 + FR_ACT_RES4 = 0x5 + FR_ACT_BLACKHOLE = 0x6 + FR_ACT_UNREACHABLE = 0x7 + FR_ACT_PROHIBIT = 0x8 +) + +const ( + AUDIT_NLGRP_NONE = 0x0 + AUDIT_NLGRP_READLOG = 0x1 +) + +const ( + TUN_F_CSUM = 0x1 + TUN_F_TSO4 = 0x2 + TUN_F_TSO6 = 0x4 + TUN_F_TSO_ECN = 0x8 + TUN_F_UFO = 0x10 + TUN_F_USO4 = 0x20 + TUN_F_USO6 = 0x40 +) + +const ( + VIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1 + VIRTIO_NET_HDR_F_DATA_VALID = 0x2 + VIRTIO_NET_HDR_F_RSC_INFO = 0x4 +) + +const ( + VIRTIO_NET_HDR_GSO_NONE = 0x0 + VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 + VIRTIO_NET_HDR_GSO_UDP = 0x3 + VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 + VIRTIO_NET_HDR_GSO_UDP_L4 = 0x5 + VIRTIO_NET_HDR_GSO_ECN = 0x80 +) + +type SchedAttr struct { + Size uint32 + Policy uint32 + Flags uint64 + Nice int32 + Priority uint32 + Runtime uint64 + Deadline uint64 + Period uint64 + Util_min uint32 + Util_max uint32 +} + +const SizeofSchedAttr = 0x38 + +type Cachestat_t struct { + Cache uint64 + Dirty uint64 + Writeback uint64 + Evicted uint64 + Recently_evicted uint64 +} +type CachestatRange struct { + Off uint64 + Len uint64 +} + +const ( + SK_MEMINFO_RMEM_ALLOC = 0x0 + SK_MEMINFO_RCVBUF = 0x1 + SK_MEMINFO_WMEM_ALLOC = 0x2 + SK_MEMINFO_SNDBUF = 0x3 + SK_MEMINFO_FWD_ALLOC = 0x4 + SK_MEMINFO_WMEM_QUEUED = 0x5 + SK_MEMINFO_OPTMEM = 0x6 + SK_MEMINFO_BACKLOG = 0x7 + SK_MEMINFO_DROPS = 0x8 + SK_MEMINFO_VARS = 0x9 + SKNLGRP_NONE = 0x0 + SKNLGRP_INET_TCP_DESTROY = 0x1 + SKNLGRP_INET_UDP_DESTROY = 0x2 + SKNLGRP_INET6_TCP_DESTROY = 0x3 + SKNLGRP_INET6_UDP_DESTROY = 0x4 + SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0 + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1 + SK_DIAG_BPF_STORAGE_REP_NONE = 0x0 + SK_DIAG_BPF_STORAGE = 0x1 + SK_DIAG_BPF_STORAGE_NONE = 0x0 + SK_DIAG_BPF_STORAGE_PAD = 0x1 + SK_DIAG_BPF_STORAGE_MAP_ID = 0x2 + SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3 +) + +type SockDiagReq struct { + Family uint8 + Protocol uint8 +} + +const RTM_NEWNVLAN = 0x70 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go new file mode 100644 index 0000000..62db85f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -0,0 +1,705 @@ +// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [1]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type DmNameList struct { + Dev uint64 + Next uint32 +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len 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 ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ [2]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Atime_high uint32 + Dtime uint32 + Dtime_high uint32 + Ctime uint32 + Ctime_high uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go new file mode 100644 index 0000000..7d89d64 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -0,0 +1,719 @@ +// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [3]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go new file mode 100644 index 0000000..9c0b39e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -0,0 +1,699 @@ +// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len 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 ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Uregs [18]uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ [2]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Atime_high uint32 + Dtime uint32 + Dtime_high uint32 + Ctime uint32 + Ctime_high uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go new file mode 100644 index 0000000..de9c7ff --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -0,0 +1,698 @@ +// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go new file mode 100644 index 0000000..2336bd2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -0,0 +1,699 @@ +// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Orig_a0 uint64 + Era uint64 + Badv uint64 + Reserved [10]uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go new file mode 100644 index 0000000..4711f0b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -0,0 +1,704 @@ +// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips && linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len 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 ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Dtime uint32 + Ctime uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + Atime_high uint16 + Dtime_high uint16 + Ctime_high uint16 + _ uint16 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go new file mode 100644 index 0000000..ab99a34 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -0,0 +1,701 @@ +// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go new file mode 100644 index 0000000..04c9866 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -0,0 +1,701 @@ +// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go new file mode 100644 index 0000000..60aa69f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -0,0 +1,704 @@ +// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mipsle && linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len 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 ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Dtime uint32 + Ctime uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + Atime_high uint16 + Dtime_high uint16 + Ctime_high uint16 + _ uint16 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go new file mode 100644 index 0000000..cb4fad7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -0,0 +1,712 @@ +// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint32 + _ uint32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len 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 ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Gpr [32]uint32 + Nip uint32 + Msr uint32 + Orig_gpr3 uint32 + Ctr uint32 + Link uint32 + Xer uint32 + Ccr uint32 + Mq uint32 + Trap uint32 + Dar uint32 + Dsisr uint32 + Result uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime_high uint32 + Atime uint32 + Dtime_high uint32 + Dtime uint32 + Ctime_high uint32 + Ctime uint32 + _ uint32 + Segsz uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 + _ [4]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go new file mode 100644 index 0000000..60272cf --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -0,0 +1,707 @@ +// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go new file mode 100644 index 0000000..3f5b91b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -0,0 +1,707 @@ +// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go new file mode 100644 index 0000000..51550f1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -0,0 +1,786 @@ +// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Pc uint64 + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T0 uint64 + T1 uint64 + T2 uint64 + S0 uint64 + S1 uint64 + A0 uint64 + A1 uint64 + A2 uint64 + A3 uint64 + A4 uint64 + A5 uint64 + A6 uint64 + A7 uint64 + S2 uint64 + S3 uint64 + S4 uint64 + S5 uint64 + S6 uint64 + S7 uint64 + S8 uint64 + S9 uint64 + S10 uint64 + S11 uint64 + T3 uint64 + T4 uint64 + T5 uint64 + T6 uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} + +type RISCVHWProbePairs struct { + Key int64 + Value uint64 +} + +const ( + RISCV_HWPROBE_KEY_MVENDORID = 0x0 + RISCV_HWPROBE_KEY_MARCHID = 0x1 + RISCV_HWPROBE_KEY_MIMPID = 0x2 + RISCV_HWPROBE_KEY_BASE_BEHAVIOR = 0x3 + RISCV_HWPROBE_BASE_BEHAVIOR_IMA = 0x1 + RISCV_HWPROBE_KEY_IMA_EXT_0 = 0x4 + RISCV_HWPROBE_IMA_FD = 0x1 + RISCV_HWPROBE_IMA_C = 0x2 + RISCV_HWPROBE_IMA_V = 0x4 + RISCV_HWPROBE_EXT_ZBA = 0x8 + RISCV_HWPROBE_EXT_ZBB = 0x10 + RISCV_HWPROBE_EXT_ZBS = 0x20 + RISCV_HWPROBE_EXT_ZICBOZ = 0x40 + RISCV_HWPROBE_EXT_ZBC = 0x80 + RISCV_HWPROBE_EXT_ZBKB = 0x100 + RISCV_HWPROBE_EXT_ZBKC = 0x200 + RISCV_HWPROBE_EXT_ZBKX = 0x400 + RISCV_HWPROBE_EXT_ZKND = 0x800 + RISCV_HWPROBE_EXT_ZKNE = 0x1000 + RISCV_HWPROBE_EXT_ZKNH = 0x2000 + RISCV_HWPROBE_EXT_ZKSED = 0x4000 + RISCV_HWPROBE_EXT_ZKSH = 0x8000 + RISCV_HWPROBE_EXT_ZKT = 0x10000 + RISCV_HWPROBE_EXT_ZVBB = 0x20000 + RISCV_HWPROBE_EXT_ZVBC = 0x40000 + RISCV_HWPROBE_EXT_ZVKB = 0x80000 + RISCV_HWPROBE_EXT_ZVKG = 0x100000 + RISCV_HWPROBE_EXT_ZVKNED = 0x200000 + RISCV_HWPROBE_EXT_ZVKNHA = 0x400000 + RISCV_HWPROBE_EXT_ZVKNHB = 0x800000 + RISCV_HWPROBE_EXT_ZVKSED = 0x1000000 + RISCV_HWPROBE_EXT_ZVKSH = 0x2000000 + RISCV_HWPROBE_EXT_ZVKT = 0x4000000 + RISCV_HWPROBE_EXT_ZFH = 0x8000000 + RISCV_HWPROBE_EXT_ZFHMIN = 0x10000000 + RISCV_HWPROBE_EXT_ZIHINTNTL = 0x20000000 + RISCV_HWPROBE_EXT_ZVFH = 0x40000000 + RISCV_HWPROBE_EXT_ZVFHMIN = 0x80000000 + RISCV_HWPROBE_EXT_ZFA = 0x100000000 + RISCV_HWPROBE_EXT_ZTSO = 0x200000000 + RISCV_HWPROBE_EXT_ZACAS = 0x400000000 + RISCV_HWPROBE_EXT_ZICOND = 0x800000000 + RISCV_HWPROBE_EXT_ZIHINTPAUSE = 0x1000000000 + RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 + RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 + RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 + RISCV_HWPROBE_MISALIGNED_SLOW = 0x2 + RISCV_HWPROBE_MISALIGNED_FAST = 0x3 + RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 + RISCV_HWPROBE_MISALIGNED_MASK = 0x7 + RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE = 0x6 + RISCV_HWPROBE_WHICH_CPUS = 0x1 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go new file mode 100644 index 0000000..3239e50 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -0,0 +1,721 @@ +// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + 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 Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x6 + FADV_NOREUSE = 0x7 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Psw PtracePsw + Gprs [16]uint64 + Acrs [16]uint32 + Orig_gpr2 uint64 + Fp_regs PtraceFpregs + Per_info PtracePer + Ieee_instruction_pointer uint64 +} + +type PtracePsw struct { + Mask uint64 + Addr uint64 +} + +type PtraceFpregs struct { + Fpc uint32 + Fprs [16]float64 +} + +type PtracePer struct { + Control_regs [3]uint64 + _ [8]byte + Starting_addr uint64 + Ending_addr uint64 + Perc_atmid uint16 + Address uint64 + Access_id uint8 + _ [7]byte +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen uint32 + Frsize uint32 + Flags uint32 + Spare [4]uint32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ uint16 + Seq uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go new file mode 100644 index 0000000..faf2002 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -0,0 +1,702 @@ +// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 Stat_t struct { + Dev uint64 + _ uint16 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ int16 + _ [2]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [16]uint64 + Tstate uint64 + Tpc uint64 + Tnpc uint64 + Y uint32 + Magic uint32 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x400000 +) + +const ( + POLLRDHUP = 0x800 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x4 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Cpu_delay_max uint64 + Cpu_delay_min uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Blkio_delay_max uint64 + Blkio_delay_min uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Swapin_delay_max uint64 + Swapin_delay_min uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Freepages_delay_max uint64 + Freepages_delay_min uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Thrashing_delay_max uint64 + Thrashing_delay_min uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Compact_delay_max uint64 + Compact_delay_min uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 + Wpcopy_delay_max uint64 + Wpcopy_delay_min uint64 + Irq_count uint64 + Irq_delay_total uint64 + Irq_delay_max uint64 + Irq_delay_min uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +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 CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +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 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +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 +) + +const ( + PIDFD_NONBLOCK = 0x4000 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ uint16 + Seq uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go new file mode 100644 index 0000000..f22e794 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -0,0 +1,585 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + 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 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [12]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 uint32 +} + +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 int32 + 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 = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x84 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData + Pad_cgo_1 [4]byte +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +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 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +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 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +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 Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +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_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go new file mode 100644 index 0000000..066a7d8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -0,0 +1,593 @@ +// 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 + +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 int32 + Pad_cgo_0 [4]byte +} + +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 { + 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 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [12]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 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + 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 = 0x14 + 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 uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +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 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +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 Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +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_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go new file mode 100644 index 0000000..439548e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -0,0 +1,590 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + 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 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [12]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 uint32 +} + +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 int32 + 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 = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 + Pad_cgo_0 [4]byte +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +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 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +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 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +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 Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +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_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go new file mode 100644 index 0000000..16085d3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -0,0 +1,593 @@ +// 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 + +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 int32 + Pad_cgo_0 [4]byte +} + +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 { + 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 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +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 [12]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 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + 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 = 0x14 + 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 uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +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 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +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 Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +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_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go new file mode 100644 index 0000000..afd13a3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -0,0 +1,568 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 uint32 +} + +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 = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa0 + SizeofIfData = 0x88 + 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 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go new file mode 100644 index 0000000..5d97f1f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -0,0 +1,568 @@ +// 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 + +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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go new file mode 100644 index 0000000..34871cd --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -0,0 +1,575 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +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 + _ [4]byte + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + _ [4]byte + 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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 uint32 +} + +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 = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + _ [4]byte + Data int64 + Udata *byte + _ [4]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 + _ [4]byte + 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 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} 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 0000000..5911bce --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -0,0 +1,568 @@ +// 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 + +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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick 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 0000000..e4f24f3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -0,0 +1,568 @@ +// 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 + +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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go new file mode 100644 index 0000000..ca50a79 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go @@ -0,0 +1,570 @@ +// 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 ppc64 && 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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go new file mode 100644 index 0000000..d7d7f79 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go @@ -0,0 +1,570 @@ +// 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 riscv64 && 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]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [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 = 0x18 +) + +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 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +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_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +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 = 0x10 + +type Clockinfo struct { + Hz int32 + Tick 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 new file mode 100644 index 0000000..1416057 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -0,0 +1,516 @@ +// 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 + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x400 + MaxHostNameLen = 0x100 +) + +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 Timeval32 struct { + Sec int32 + Usec int32 +} + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime 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 { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int64 + Fstype [16]int8 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Sysid int32 + Pid int32 + Pad [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Name [1]int8 + _ [5]byte +} + +type _Fsblkcnt_t uint64 + +type Statvfs_t struct { + Bsize uint64 + Frsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fsid uint64 + Basetype [16]int8 + Flag uint64 + Namemax uint64 + Fstr [32]int8 +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + _ uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [236]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 int32 + Accrights *int8 + Accrightslen int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint32 + Level int32 + 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 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x20 + SizeofSockaddrAny = 0xfc + SizeofSockaddrUnix = 0x6e + SizeofSockaddrDatalink = 0xfc + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x24 + SizeofICMPv6Filter = 0x20 +) + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [257]byte + Nodename [257]byte + Release [257]byte + Version [257]byte + Machine [257]byte +} + +type Ustat_t struct { + Tfree int64 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +const ( + AT_FDCWD = 0xffd19553 + AT_SYMLINK_NOFOLLOW = 0x1000 + AT_SYMLINK_FOLLOW = 0x2000 + AT_REMOVEDIR = 0x1 + AT_EACCESS = 0x4 +) + +const ( + SizeofIfMsghdr = 0x54 + SizeofIfData = 0x44 + SizeofIfaMsghdr = 0x14 + SizeofRtMsghdr = 0x4c + SizeofRtMetrics = 0x28 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + _ [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + _ [1]byte +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line int8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +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 fileObj struct { + Atim Timespec + Mtim Timespec + Ctim Timespec + Pad [3]uint64 + Name *int8 +} + +type portEvent struct { + Events int32 + Source uint16 + Pad uint16 + Object uint64 + User *byte +} + +const ( + PORT_SOURCE_AIO = 0x1 + PORT_SOURCE_TIMER = 0x2 + PORT_SOURCE_USER = 0x3 + PORT_SOURCE_FD = 0x4 + PORT_SOURCE_ALERT = 0x5 + PORT_SOURCE_MQ = 0x6 + PORT_SOURCE_FILE = 0x7 + PORT_ALERT_SET = 0x1 + PORT_ALERT_UPDATE = 0x2 + PORT_ALERT_INVALID = 0x3 + FILE_ACCESS = 0x1 + FILE_MODIFIED = 0x2 + FILE_ATTRIB = 0x4 + FILE_TRUNC = 0x100000 + FILE_NOFOLLOW = 0x10000000 + FILE_DELETE = 0x10 + FILE_RENAME_TO = 0x20 + FILE_RENAME_FROM = 0x40 + UNMOUNTED = 0x20000000 + MOUNTEDOVER = 0x40000000 + FILE_EXCEPTION = 0x60000070 +) + +const ( + TUNNEWPPA = 0x540001 + TUNSETPPA = 0x540002 + + I_STR = 0x5308 + I_POP = 0x5303 + I_PUSH = 0x5302 + I_LINK = 0x530c + I_UNLINK = 0x530d + 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_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go new file mode 100644 index 0000000..2e5d5a4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -0,0 +1,552 @@ +// 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 + +// 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 + SizeofInet4Pktinfo = 8 + SizeofInet6Pktinfo = 20 + SizeofLinger = 8 + SizeofSockaddrInet4 = 16 + SizeofSockaddrInet6 = 28 + SizeofTCPInfo = 0x68 + SizeofUcred = 12 +) + +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 [16]byte + Nodename [32]byte + Release [8]byte + Version [8]byte + Machine [16]byte +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +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 uint64 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint32 + Ffree uint32 + Fsid uint64 + Namelen uint64 + Frsize uint64 + Flags uint64 + _ [4]uint64 +} + +type direntLE struct { + Reclen uint16 + Namlen uint16 + Ino uint32 + Extra uintptr + Name [256]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type FdSet struct { + Bits [64]int32 +} + +// 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 F_cnvrt struct { + Cvtcmd int32 + Pccsid int16 + Fccsid int16 +} + +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 +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name string +} + +const ( + SizeofInotifyEvent = 0x10 +) + +type ConsMsg2 struct { + Cm2Format uint16 + Cm2R1 uint16 + Cm2Msglength uint32 + Cm2Msg *byte + Cm2R2 [4]byte + Cm2R3 [4]byte + Cm2Routcde *uint32 + Cm2Descr *uint32 + Cm2Msgflag uint32 + Cm2Token uint32 + Cm2Msgid *uint32 + Cm2R4 [4]byte + Cm2DomToken uint32 + Cm2DomMsgid *uint32 + Cm2ModCartptr *byte + Cm2ModConsidptr *byte + Cm2MsgCart [8]byte + Cm2MsgConsid [4]byte + Cm2R5 [12]byte +} + +const ( + CC_modify = 1 + CC_stop = 2 + CONSOLE_FORMAT_2 = 2 + CONSOLE_FORMAT_3 = 3 + CONSOLE_HRDCPY = 0x80000000 +) + +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_CACHED = 0x20 + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + _ [44]byte +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode int32 +} + +type SysvShmDesc struct { + Perm SysvIpcPerm + _ [4]byte + Lpid int32 + Cpid int32 + Nattch uint32 + _ [4]byte + _ [4]byte + _ [4]byte + _ int32 + _ uint8 + _ uint8 + _ uint16 + _ *byte + Segsz uint64 + Atime Time_t + Dtime Time_t + Ctime Time_t +} + +type SysvShmDesc64 struct { + Perm SysvIpcPerm + _ [4]byte + Lpid int32 + Cpid int32 + Nattch uint32 + _ [4]byte + _ [4]byte + _ [4]byte + _ int32 + _ byte + _ uint8 + _ uint16 + _ *byte + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 +} diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go new file mode 100644 index 0000000..16f9056 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/aliases.go @@ -0,0 +1,12 @@ +// 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. + +//go:build windows + +package windows + +import "syscall" + +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go new file mode 100644 index 0000000..3ca814f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -0,0 +1,415 @@ +// 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 + +import ( + "sync" + "sync/atomic" + "syscall" + "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 + ObjName string + Msg string +} + +func (e *DLLError) Error() string { return e.Msg } + +func (e *DLLError) Unwrap() error { return e.Err } + +// A DLL implements access to a single DLL. +type DLL struct { + Name string + Handle Handle +} + +// LoadDLL loads DLL file into memory. +// +// Warning: using LoadDLL without an absolute path name is subject to +// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], +// or use [LoadLibraryEx] directly. +func LoadDLL(name string) (dll *DLL, err error) { + namep, err := UTF16PtrFromString(name) + if err != nil { + return nil, err + } + h, e := syscall_loadlibrary(namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to load " + name + ": " + e.Error(), + } + } + d := &DLL{ + Name: name, + Handle: h, + } + return d, nil +} + +// MustLoadDLL is like LoadDLL but panics if load operation fails. +func MustLoadDLL(name string) *DLL { + d, e := LoadDLL(name) + if e != nil { + panic(e) + } + return d +} + +// FindProc searches DLL d for procedure named name and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProc(name string) (proc *Proc, err error) { + namep, err := BytePtrFromString(name) + if err != nil { + return nil, err + } + a, e := syscall_getprocaddress(d.Handle, namep) + if e != 0 { + 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 +} + +// MustFindProc is like FindProc but panics if search fails. +func (d *DLL) MustFindProc(name string) *Proc { + p, e := d.FindProc(name) + if e != nil { + panic(e) + } + 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) +} + +// A Proc implements access to a procedure inside a DLL. +type Proc struct { + Dll *DLL + Name string + addr uintptr +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +func (p *Proc) Addr() uintptr { + return p.addr +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + switch len(a) { + case 0: + return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) + case 1: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) + case 2: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) + case 3: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) + case 4: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) + case 5: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) + case 6: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) + case 7: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) + case 8: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) + case 9: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) + case 10: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) + case 11: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) + case 12: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) + case 13: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) + case 14: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) + case 15: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) + default: + panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") + } +} + +// A LazyDLL implements access to a single DLL. +// It will delay the load of the DLL until the first +// call to its Handle method or to one of its +// LazyProc's Addr method. +type LazyDLL struct { + Name string + + // System determines whether the DLL must be loaded from the + // Windows System directory, bypassing the normal DLL search + // path. + System bool + + mu sync.Mutex + dll *DLL // non nil once DLL is loaded +} + +// Load loads DLL file d.Name into memory. It returns an error if fails. +// Load will not try to load DLL, if it is already loaded into memory. +func (d *LazyDLL) Load() error { + // Non-racy version of: + // if d.dll != nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { + return nil + } + d.mu.Lock() + defer d.mu.Unlock() + if d.dll != nil { + return nil + } + + // kernel32.dll is special, since it's where LoadLibraryEx comes from. + // The kernel already special-cases its name, so it's always + // loaded from system32. + var dll *DLL + var err error + if d.Name == "kernel32.dll" { + dll, err = LoadDLL(d.Name) + } else { + dll, err = loadLibraryEx(d.Name, d.System) + } + if err != nil { + return err + } + + // Non-racy version of: + // d.dll = dll + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) + return nil +} + +// mustLoad is like Load but panics if search fails. +func (d *LazyDLL) mustLoad() { + e := d.Load() + if e != nil { + panic(e) + } +} + +// Handle returns d's module handle. +func (d *LazyDLL) Handle() uintptr { + d.mustLoad() + return uintptr(d.dll.Handle) +} + +// NewProc returns a LazyProc for accessing the named procedure in the DLL d. +func (d *LazyDLL) NewProc(name string) *LazyProc { + return &LazyProc{l: d, Name: name} +} + +// NewLazyDLL creates new LazyDLL associated with DLL file. +// +// Warning: using NewLazyDLL without an absolute path name is subject to +// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. +func NewLazyDLL(name string) *LazyDLL { + return &LazyDLL{Name: name} +} + +// NewLazySystemDLL is like NewLazyDLL, but will only +// search Windows System directory for the DLL if name is +// a base name (like "advapi32.dll"). +func NewLazySystemDLL(name string) *LazyDLL { + return &LazyDLL{Name: name, System: true} +} + +// A LazyProc implements access to a procedure inside a LazyDLL. +// It delays the lookup until the Addr method is called. +type LazyProc struct { + Name string + + mu sync.Mutex + l *LazyDLL + proc *Proc +} + +// Find searches DLL for procedure named p.Name. It returns +// an error if search fails. Find will not search procedure, +// if it is already found and loaded into memory. +func (p *LazyProc) Find() error { + // Non-racy version of: + // if p.proc == nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { + p.mu.Lock() + defer p.mu.Unlock() + if p.proc == nil { + e := p.l.Load() + if e != nil { + return e + } + proc, e := p.l.dll.FindProc(p.Name) + if e != nil { + return e + } + // Non-racy version of: + // p.proc = proc + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) + } + } + return nil +} + +// mustFind is like Find but panics if search fails. +func (p *LazyProc) mustFind() { + e := p.Find() + if e != nil { + panic(e) + } +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +// It will panic if the procedure cannot be found. +func (p *LazyProc) Addr() uintptr { + p.mustFind() + return p.proc.Addr() +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. It will also panic if the procedure cannot be found. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + p.mustFind() + return p.proc.Call(a...) +} + +var canDoSearchSystem32Once struct { + sync.Once + v bool +} + +func initCanDoSearchSystem32() { + // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: + // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows + // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on + // systems that have KB2533623 installed. To determine whether the + // flags are available, use GetProcAddress to get the address of the + // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories + // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* + // flags can be used with LoadLibraryEx." + canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) +} + +func canDoSearchSystem32() bool { + canDoSearchSystem32Once.Do(initCanDoSearchSystem32) + return canDoSearchSystem32Once.v +} + +func isBaseName(name string) bool { + for _, c := range name { + if c == ':' || c == '/' || c == '\\' { + return false + } + } + return true +} + +// loadLibraryEx wraps the Windows LoadLibraryEx function. +// +// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx +// +// If name is not an absolute path, LoadLibraryEx searches for the DLL +// in a variety of automatic locations unless constrained by flags. +// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx +func loadLibraryEx(name string, system bool) (*DLL, error) { + loadDLL := name + var flags uintptr + if system { + if canDoSearchSystem32() { + flags = LOAD_LIBRARY_SEARCH_SYSTEM32 + } else if isBaseName(name) { + // WindowsXP or unpatched Windows machine + // trying to load "foo.dll" out of the system + // folder, but LoadLibraryEx doesn't support + // that yet on their system, so emulate it. + systemdir, err := GetSystemDirectory() + if err != nil { + return nil, err + } + loadDLL = systemdir + "\\" + name + } + } + h, err := LoadLibraryEx(loadDLL, 0, flags) + if err != nil { + return nil, err + } + return &DLL{Name: name, Handle: h}, nil +} diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go new file mode 100644 index 0000000..d4577a4 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -0,0 +1,57 @@ +// 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. + +// Windows environment variables. + +package windows + +import ( + "syscall" + "unsafe" +) + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +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) + size := unsafe.Sizeof(*block) + for *block != 0 { + // find NUL terminator + end := unsafe.Pointer(block) + for *(*uint16)(end) != 0 { + end = unsafe.Add(end, size) + } + + entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) + env = append(env, UTF16ToString(entry)) + block = (*uint16)(unsafe.Add(end, size)) + } + return env, nil +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go new file mode 100644 index 0000000..6c36695 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/eventlog.go @@ -0,0 +1,20 @@ +// 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. + +//go:build windows + +package windows + +const ( + EVENTLOG_SUCCESS = 0 + EVENTLOG_ERROR_TYPE = 1 + EVENTLOG_WARNING_TYPE = 2 + EVENTLOG_INFORMATION_TYPE = 4 + EVENTLOG_AUDIT_SUCCESS = 8 + EVENTLOG_AUDIT_FAILURE = 16 +) + +//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW +//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource +//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go new file mode 100644 index 0000000..9cabbb6 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -0,0 +1,248 @@ +// 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. + +// Fork, exec, wait, etc. + +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. +// Alternatively, these transformations are done: +// - every back slash (\) is doubled, but only if immediately +// followed by double quote ("); +// - every double quote (") is escaped by back slash (\); +// - finally, s is wrapped with double quotes (arg -> "arg"), +// but only if there is space or tab inside s. +func EscapeArg(s string) string { + if len(s) == 0 { + return `""` + } + n := len(s) + hasSpace := false + for i := 0; i < len(s); i++ { + switch s[i] { + case '"', '\\': + n++ + case ' ', '\t': + hasSpace = true + } + } + if hasSpace { + n += 2 // Reserve space for quotes. + } + if n == len(s) { + return s + } + + qs := make([]byte, n) + j := 0 + if hasSpace { + qs[j] = '"' + j++ + } + slashes := 0 + for i := 0; i < len(s); i++ { + switch s[i] { + default: + slashes = 0 + qs[j] = s[i] + case '\\': + slashes++ + qs[j] = s[i] + case '"': + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '\\' + j++ + qs[j] = s[i] + } + j++ + } + if hasSpace { + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '"' + j++ + } + return string(qs[:j]) +} + +// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, +// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, +// or any program that uses CommandLineToArgv. +func ComposeCommandLine(args []string) string { + if len(args) == 0 { + return "" + } + + // Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw: + // “This function accepts command lines that contain a program name; the + // program name can be enclosed in quotation marks or not.” + // + // Unfortunately, it provides no means of escaping interior quotation marks + // within that program name, and we have no way to report them here. + prog := args[0] + mustQuote := len(prog) == 0 + for i := 0; i < len(prog); i++ { + c := prog[i] + if c <= ' ' || (c == '"' && i == 0) { + // Force quotes for not only the ASCII space and tab as described in the + // MSDN article, but also ASCII control characters. + // The documentation for CommandLineToArgvW doesn't say what happens when + // the first argument is not a valid program name, but it empirically + // seems to drop unquoted control characters. + mustQuote = true + break + } + } + var commandLine []byte + if mustQuote { + commandLine = make([]byte, 0, len(prog)+2) + commandLine = append(commandLine, '"') + for i := 0; i < len(prog); i++ { + c := prog[i] + if c == '"' { + // This quote would interfere with our surrounding quotes. + // We have no way to report an error, so just strip out + // the offending character instead. + continue + } + commandLine = append(commandLine, c) + } + commandLine = append(commandLine, '"') + } else { + if len(args) == 1 { + // args[0] is a valid command line representing itself. + // No need to allocate a new slice or string for it. + return prog + } + commandLine = []byte(prog) + } + + for _, arg := range args[1:] { + commandLine = append(commandLine, ' ') + // TODO(bcmills): since we're already appending to a slice, it would be nice + // to avoid the intermediate allocations of EscapeArg. + // Perhaps we can factor out an appendEscapedArg function. + commandLine = append(commandLine, EscapeArg(arg)...) + } + return string(commandLine) +} + +// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, +// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that +// command lines are passed around. +// DecomposeCommandLine returns an error if commandLine contains NUL. +func DecomposeCommandLine(commandLine string) ([]string, error) { + if len(commandLine) == 0 { + return []string{}, nil + } + utf16CommandLine, err := UTF16FromString(commandLine) + if err != nil { + return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") + } + var argc int32 + argv, err := commandLineToArgv(&utf16CommandLine[0], &argc) + if err != nil { + return nil, err + } + defer LocalFree(Handle(unsafe.Pointer(argv))) + + var args []string + for _, p := range unsafe.Slice(argv, argc) { + args = append(args, UTF16PtrToString(p)) + } + return args, nil +} + +// CommandLineToArgv parses a Unicode command line string and sets +// argc to the number of parsed arguments. +// +// The returned memory should be freed using a single call to LocalFree. +// +// Note that although the return type of CommandLineToArgv indicates 8192 +// entries of up to 8192 characters each, the actual count of parsed arguments +// may exceed 8192, and the documentation for CommandLineToArgvW does not mention +// any bound on the lengths of the individual argument strings. +// (See https://go.dev/issue/63236.) +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + argp, err := commandLineToArgv(cmd, argc) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp)) + return argv, err +} + +func CloseOnExec(fd Handle) { + SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) +} + +// FullPath retrieves the full path of the specified file. +func FullPath(name string) (path string, err error) { + p, err := UTF16PtrFromString(name) + if err != nil { + return "", err + } + n := uint32(100) + for { + buf := make([]uint16, n) + n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) + if err != nil { + return "", err + } + if n <= uint32(len(buf)) { + return UTF16ToString(buf[:n]), nil + } + } +} + +// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, 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 + } + alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) + if err != nil { + return nil, err + } + // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. + al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} + err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) + if err != nil { + return nil, err + } + return al, err +} + +// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. +func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { + al.pointers = append(al.pointers, value) + return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) +} + +// Delete frees ProcThreadAttributeList's resources. +func (al *ProcThreadAttributeListContainer) Delete() { + deleteProcThreadAttributeList(al.data) + LocalFree(Handle(unsafe.Pointer(al.data))) + al.data = nil + al.pointers = nil +} + +// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. +func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { + return al.data +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go new file mode 100644 index 0000000..6dc0920 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -0,0 +1,48 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +const ( + MEM_COMMIT = 0x00001000 + MEM_RESERVE = 0x00002000 + MEM_DECOMMIT = 0x00004000 + MEM_RELEASE = 0x00008000 + MEM_RESET = 0x00080000 + MEM_TOP_DOWN = 0x00100000 + MEM_WRITE_WATCH = 0x00200000 + MEM_PHYSICAL = 0x00400000 + MEM_RESET_UNDO = 0x01000000 + MEM_LARGE_PAGES = 0x20000000 + + 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 +) + +type MemoryBasicInformation struct { + BaseAddress uintptr + AllocationBase uintptr + AllocationProtect uint32 + PartitionId uint16 + RegionSize uintptr + State uint32 + Protect uint32 + Type uint32 +} diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash new file mode 100644 index 0000000..58e0188 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -0,0 +1,70 @@ +#!/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 + +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 'mkerrors.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "import \"syscall\"" + echo "const (" + + while read -r line; do + unset vtype + if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + else + continue + fi + [[ -n $key && -n $value ]] || continue + [[ -z ${errors["$key"]} ]] || continue + errors["$key"]="$value" + if [[ -v vtype ]]; then + if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then + vtype="" + elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then + vtype="Handle" + else + vtype="syscall.Errno" + fi + last_vtype="$vtype" + else + vtype="" + if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then + value="S_OK" + elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then + value="ERROR_SUCCESS" + fi + fi + + 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 > "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 0000000..ab8924e --- /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 new file mode 100644 index 0000000..dbcdb09 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mksyscall.go @@ -0,0 +1,9 @@ +// 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 generate + +package windows + +//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go new file mode 100644 index 0000000..0f1bdc3 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race.go @@ -0,0 +1,30 @@ +// 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. + +//go:build windows && race + +package windows + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go new file mode 100644 index 0000000..0c78da7 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race0.go @@ -0,0 +1,25 @@ +// 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. + +//go:build windows && !race + +package windows + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go new file mode 100644 index 0000000..a8b0364 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -0,0 +1,1497 @@ +// 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 windows + +import ( + "syscall" + "unsafe" +) + +const ( + NameUnknown = 0 + NameFullyQualifiedDN = 1 + NameSamCompatible = 2 + NameDisplay = 3 + NameUniqueId = 6 + NameCanonical = 7 + NameUserPrincipal = 8 + NameCanonicalEx = 9 + NameServicePrincipal = 10 + NameDnsDomain = 12 +) + +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx +//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW +//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW + +// TranslateAccountName converts a directory service +// object name from one format to another. +func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { + u, e := UTF16PtrFromString(username) + if e != nil { + return "", e + } + n := uint32(50) + for { + b := make([]uint16, n) + e = TranslateName(u, from, to, &b[0], &n) + if e == nil { + return UTF16ToString(b[:n]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +const ( + // do not reorder + NetSetupUnknownStatus = iota + NetSetupUnjoined + NetSetupWorkgroupName + NetSetupDomainName +) + +type UserInfo10 struct { + Name *uint16 + Comment *uint16 + UsrComment *uint16 + FullName *uint16 +} + +//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo +//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation +//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree +//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum + +const ( + // do not reorder + SidTypeUser = 1 + iota + SidTypeGroup + SidTypeDomain + SidTypeAlias + SidTypeWellKnownGroup + SidTypeDeletedAccount + SidTypeInvalid + SidTypeUnknown + SidTypeComputer + SidTypeLabel +) + +type SidIdentifierAuthority struct { + Value [6]byte +} + +var ( + SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} + SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} + SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} + SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} + SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} + SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} + SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} +) + +const ( + SECURITY_NULL_RID = 0 + SECURITY_WORLD_RID = 0 + SECURITY_LOCAL_RID = 0 + SECURITY_CREATOR_OWNER_RID = 0 + SECURITY_CREATOR_GROUP_RID = 1 + SECURITY_DIALUP_RID = 1 + SECURITY_NETWORK_RID = 2 + SECURITY_BATCH_RID = 3 + SECURITY_INTERACTIVE_RID = 4 + SECURITY_LOGON_IDS_RID = 5 + SECURITY_SERVICE_RID = 6 + SECURITY_LOCAL_SYSTEM_RID = 18 + SECURITY_BUILTIN_DOMAIN_RID = 32 + SECURITY_PRINCIPAL_SELF_RID = 10 + SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 + SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 + SECURITY_LOGON_IDS_RID_COUNT = 0x3 + SECURITY_ANONYMOUS_LOGON_RID = 0x7 + SECURITY_PROXY_RID = 0x8 + SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID + SECURITY_AUTHENTICATED_USER_RID = 0xb + SECURITY_RESTRICTED_CODE_RID = 0xc + SECURITY_NT_NON_UNIQUE_RID = 0x15 +) + +// Predefined domain-relative RIDs for local groups. +// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx +const ( + DOMAIN_ALIAS_RID_ADMINS = 0x220 + DOMAIN_ALIAS_RID_USERS = 0x221 + DOMAIN_ALIAS_RID_GUESTS = 0x222 + DOMAIN_ALIAS_RID_POWER_USERS = 0x223 + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 + DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 + DOMAIN_ALIAS_RID_REPLICATOR = 0x228 + DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 + DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a + DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b + DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c + DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d + DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e + DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f + DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 + DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 + DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 + DOMAIN_ALIAS_RID_IUSERS = 0x238 + DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 + DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b + DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c + DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d + DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e +) + +//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW +//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW +//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW +//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW +//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid +//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. +func StringToSid(s string) (*SID, error) { + var sid *SID + p, e := UTF16PtrFromString(s) + if e != nil { + return nil, e + } + e = ConvertStringSidToSid(p, &sid) + if e != nil { + return nil, e + } + defer LocalFree((Handle)(unsafe.Pointer(sid))) + return sid.Copy() +} + +// 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) { + if len(account) == 0 { + return nil, "", 0, syscall.EINVAL + } + acc, e := UTF16PtrFromString(account) + if e != nil { + return nil, "", 0, e + } + var sys *uint16 + if len(system) > 0 { + sys, e = UTF16PtrFromString(system) + if e != nil { + return nil, "", 0, e + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]byte, n) + db := make([]uint16, dn) + sid = (*SID)(unsafe.Pointer(&b[0])) + e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) + if e == nil { + return sid, UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, "", 0, e + } + if n <= uint32(len(b)) { + return nil, "", 0, e + } + } +} + +// 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 "" + } + defer LocalFree((Handle)(unsafe.Pointer(s))) + return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) +} + +// 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. +func (sid *SID) Copy() (*SID, error) { + b := make([]byte, sid.Len()) + sid2 := (*SID)(unsafe.Pointer(&b[0])) + e := CopySid(uint32(len(b)), sid2, sid) + if e != nil { + return nil, e + } + return sid2, nil +} + +// 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 + if len(system) > 0 { + sys, err = UTF16PtrFromString(system) + if err != nil { + return "", "", 0, err + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]uint16, n) + db := make([]uint16, dn) + e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) + if e == nil { + return UTF16ToString(b), UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", "", 0, e + } + if n <= uint32(len(b)) { + return "", "", 0, e + } + } +} + +// Various types of pre-specified SIDs that can be synthesized and compared at runtime. +type WELL_KNOWN_SID_TYPE uint32 + +const ( + WinNullSid = 0 + WinWorldSid = 1 + WinLocalSid = 2 + WinCreatorOwnerSid = 3 + WinCreatorGroupSid = 4 + WinCreatorOwnerServerSid = 5 + WinCreatorGroupServerSid = 6 + WinNtAuthoritySid = 7 + WinDialupSid = 8 + WinNetworkSid = 9 + WinBatchSid = 10 + WinInteractiveSid = 11 + WinServiceSid = 12 + WinAnonymousSid = 13 + WinProxySid = 14 + WinEnterpriseControllersSid = 15 + WinSelfSid = 16 + WinAuthenticatedUserSid = 17 + WinRestrictedCodeSid = 18 + WinTerminalServerSid = 19 + WinRemoteLogonIdSid = 20 + WinLogonIdsSid = 21 + WinLocalSystemSid = 22 + WinLocalServiceSid = 23 + WinNetworkServiceSid = 24 + WinBuiltinDomainSid = 25 + WinBuiltinAdministratorsSid = 26 + WinBuiltinUsersSid = 27 + WinBuiltinGuestsSid = 28 + WinBuiltinPowerUsersSid = 29 + WinBuiltinAccountOperatorsSid = 30 + WinBuiltinSystemOperatorsSid = 31 + WinBuiltinPrintOperatorsSid = 32 + WinBuiltinBackupOperatorsSid = 33 + WinBuiltinReplicatorSid = 34 + WinBuiltinPreWindows2000CompatibleAccessSid = 35 + WinBuiltinRemoteDesktopUsersSid = 36 + WinBuiltinNetworkConfigurationOperatorsSid = 37 + WinAccountAdministratorSid = 38 + WinAccountGuestSid = 39 + WinAccountKrbtgtSid = 40 + WinAccountDomainAdminsSid = 41 + WinAccountDomainUsersSid = 42 + WinAccountDomainGuestsSid = 43 + WinAccountComputersSid = 44 + WinAccountControllersSid = 45 + WinAccountCertAdminsSid = 46 + WinAccountSchemaAdminsSid = 47 + WinAccountEnterpriseAdminsSid = 48 + WinAccountPolicyAdminsSid = 49 + WinAccountRasAndIasServersSid = 50 + WinNTLMAuthenticationSid = 51 + WinDigestAuthenticationSid = 52 + WinSChannelAuthenticationSid = 53 + WinThisOrganizationSid = 54 + WinOtherOrganizationSid = 55 + WinBuiltinIncomingForestTrustBuildersSid = 56 + WinBuiltinPerfMonitoringUsersSid = 57 + WinBuiltinPerfLoggingUsersSid = 58 + WinBuiltinAuthorizationAccessSid = 59 + WinBuiltinTerminalServerLicenseServersSid = 60 + WinBuiltinDCOMUsersSid = 61 + WinBuiltinIUsersSid = 62 + WinIUserSid = 63 + WinBuiltinCryptoOperatorsSid = 64 + WinUntrustedLabelSid = 65 + WinLowLabelSid = 66 + WinMediumLabelSid = 67 + WinHighLabelSid = 68 + WinSystemLabelSid = 69 + WinWriteRestrictedCodeSid = 70 + WinCreatorOwnerRightsSid = 71 + WinCacheablePrincipalsGroupSid = 72 + WinNonCacheablePrincipalsGroupSid = 73 + WinEnterpriseReadonlyControllersSid = 74 + WinAccountReadonlyControllersSid = 75 + WinBuiltinEventLogReadersGroup = 76 + WinNewEnterpriseReadonlyControllersSid = 77 + WinBuiltinCertSvcDComAccessGroup = 78 + WinMediumPlusLabelSid = 79 + WinLocalLogonSid = 80 + WinConsoleLogonSid = 81 + WinThisOrganizationCertificateSid = 82 + WinApplicationPackageAuthoritySid = 83 + WinBuiltinAnyPackageSid = 84 + WinCapabilityInternetClientSid = 85 + WinCapabilityInternetClientServerSid = 86 + WinCapabilityPrivateNetworkClientServerSid = 87 + WinCapabilityPicturesLibrarySid = 88 + WinCapabilityVideosLibrarySid = 89 + WinCapabilityMusicLibrarySid = 90 + WinCapabilityDocumentsLibrarySid = 91 + WinCapabilitySharedUserCertificatesSid = 92 + WinCapabilityEnterpriseAuthenticationSid = 93 + WinCapabilityRemovableStorageSid = 94 + WinBuiltinRDSRemoteAccessServersSid = 95 + WinBuiltinRDSEndpointServersSid = 96 + WinBuiltinRDSManagementServersSid = 97 + WinUserModeDriversSid = 98 + WinBuiltinHyperVAdminsSid = 99 + WinAccountCloneableControllersSid = 100 + WinBuiltinAccessControlAssistanceOperatorsSid = 101 + WinBuiltinRemoteManagementUsersSid = 102 + WinAuthenticationAuthorityAssertedSid = 103 + WinAuthenticationServiceAssertedSid = 104 + WinLocalAccountSid = 105 + WinLocalAccountAndAdministratorSid = 106 + WinAccountProtectedUsersSid = 107 + WinCapabilityAppointmentsSid = 108 + WinCapabilityContactsSid = 109 + WinAccountDefaultSystemManagedSid = 110 + WinBuiltinDefaultSystemManagedGroupSid = 111 + WinBuiltinStorageReplicaAdminsSid = 112 + WinAccountKeyAdminsSid = 113 + WinAccountEnterpriseKeyAdminsSid = 114 + WinAuthenticationKeyTrustSid = 115 + WinAuthenticationKeyPropertyMFASid = 116 + WinAuthenticationKeyPropertyAttestationSid = 117 + WinAuthenticationFreshKeyAuthSid = 118 + WinBuiltinDeviceOwnersSid = 119 +) + +// 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 +// Win*Sid, for the domain specified by the domainSid parameter. +func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { + n := uint32(50) + for { + b := make([]byte, n) + sid := (*SID)(unsafe.Pointer(&b[0])) + err := createWellKnownSid(sidType, domainSid, sid, &n) + if err == nil { + return sid, nil + } + if err != ERROR_INSUFFICIENT_BUFFER { + return nil, err + } + if n <= uint32(len(b)) { + return nil, err + } + } +} + +const ( + // do not reorder + TOKEN_ASSIGN_PRIMARY = 1 << iota + TOKEN_DUPLICATE + TOKEN_IMPERSONATE + TOKEN_QUERY + TOKEN_QUERY_SOURCE + TOKEN_ADJUST_PRIVILEGES + TOKEN_ADJUST_GROUPS + TOKEN_ADJUST_DEFAULT + TOKEN_ADJUST_SESSIONID + + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | + TOKEN_ASSIGN_PRIMARY | + TOKEN_DUPLICATE | + TOKEN_IMPERSONATE | + TOKEN_QUERY | + TOKEN_QUERY_SOURCE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT | + TOKEN_ADJUST_SESSIONID + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY + TOKEN_WRITE = STANDARD_RIGHTS_WRITE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE +) + +const ( + // do not reorder + TokenUser = 1 + iota + TokenGroups + TokenPrivileges + TokenOwner + TokenPrimaryGroup + TokenDefaultDacl + TokenSource + TokenType + TokenImpersonationLevel + TokenStatistics + TokenRestrictedSids + TokenSessionId + TokenGroupsAndPrivileges + TokenSessionReference + TokenSandBoxInert + TokenAuditPolicy + TokenOrigin + TokenElevationType + TokenLinkedToken + TokenElevation + TokenHasRestrictions + TokenAccessInformation + TokenVirtualizationAllowed + TokenVirtualizationEnabled + TokenIntegrityLevel + TokenUIAccess + TokenMandatoryPolicy + TokenLogonSid + 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 +} + +type Tokenuser struct { + User SIDAndAttributes +} + +type Tokenprimarygroup struct { + PrimaryGroup *SID +} + +type Tokengroups struct { + GroupCount uint32 + 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 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 +// process executed on behalf of the user has a copy of the token. +// The token identifies the user, the user's groups, and the user's +// privileges. The system uses the token to control access to securable +// objects and to control the ability of the user to perform various +// system-related operations on the local computer. +type Token Handle + +// 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) { + 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. +func (t Token) Close() error { + return CloseHandle(Handle(t)) +} + +// getInfo retrieves a specified type of information about an access token. +func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { + n := uint32(initSize) + for { + b := make([]byte, n) + e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) + if e == nil { + return unsafe.Pointer(&b[0]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, e + } + if n <= uint32(len(b)) { + return nil, e + } + } +} + +// GetTokenUser retrieves access token t user account information. +func (t Token) GetTokenUser() (*Tokenuser, error) { + i, e := t.getInfo(TokenUser, 50) + if e != nil { + return nil, e + } + return (*Tokenuser)(i), nil +} + +// GetTokenGroups retrieves group accounts associated with access token t. +func (t Token) GetTokenGroups() (*Tokengroups, error) { + i, e := t.getInfo(TokenGroups, 50) + if e != nil { + return nil, e + } + return (*Tokengroups)(i), nil +} + +// GetTokenPrimaryGroup retrieves access token t primary group information. +// A pointer to a SID structure representing a group that will become +// the primary group of any objects created by a process using this access token. +func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { + i, e := t.getInfo(TokenPrimaryGroup, 50) + if e != nil { + return nil, e + } + return (*Tokenprimarygroup)(i), nil +} + +// GetUserProfileDirectory retrieves path to the +// root directory of the access token t user's profile. +func (t Token) GetUserProfileDirectory() (string, error) { + n := uint32(100) + for { + b := make([]uint16, n) + e := GetUserProfileDirectory(t, &b[0], &n) + if e == nil { + return UTF16ToString(b), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +// 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 { + b := make([]uint16, n) + l, e := getSystemDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// 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 + if e := checkTokenMembership(t, sid, &b); e != nil { + return false, e + } + 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 +//sys WTSGetActiveConsoleSessionId() (sessionID uint32) + +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 +} + +// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header +type ACE_HEADER struct { + AceType uint8 + AceFlags uint8 + AceSize uint16 +} + +// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace +type ACCESS_ALLOWED_ACE struct { + Header ACE_HEADER + Mask ACCESS_MASK + SidStart uint32 +} + +const ( + // Constants for AceType + // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header + ACCESS_ALLOWED_ACE_TYPE = 0 + ACCESS_DENIED_ACE_TYPE = 1 +) + +// 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 +//sys GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce + +// 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 = new(SECURITY_DESCRIPTOR) + if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) { + panic("sizeof(SECURITY_DESCRIPTOR) too small") + } + } + var ( + dacl *ACL + sacl *ACL + owner *SID + group *SID + ) + if daclSize > 0 { + dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize)))) + } + if saclSize > 0 { + sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize)))) + } + if ownerSize > 0 { + owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize)))) + } + if groupSize > 0 { + group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize)))) + } + // We call into Windows via makeAbsoluteSD, which sets up + // pointers within absoluteSD that point to other chunks of memory + // we pass into makeAbsoluteSD, and that happens outside the view of the GC. + // We therefore take some care here to then verify the pointers are as we expect + // and set them explicitly in view of the GC. See https://go.dev/issue/73199. + // TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575. + err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, + dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + if err != nil { + // Don't return absoluteSD, which might be partially initialized. + return nil, err + } + // Before using any fields, verify absoluteSD is in the format we expect according to Windows. + // See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors + absControl, _, err := absoluteSD.Control() + if err != nil { + panic("absoluteSD: " + err.Error()) + } + if absControl&SE_SELF_RELATIVE != 0 { + panic("absoluteSD not in absolute format") + } + if absoluteSD.dacl != dacl { + panic("dacl pointer mismatch") + } + if absoluteSD.sacl != sacl { + panic("sacl pointer mismatch") + } + if absoluteSD.owner != owner { + panic("owner pointer mismatch") + } + if absoluteSD.group != group { + panic("group pointer mismatch") + } + absoluteSD.dacl = dacl + absoluteSD.sacl = sacl + absoluteSD.owner = owner + absoluteSD.group = group + + return +} + +// 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 + } + + src := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen) + // SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to + // be aligned properly. When we're copying a Windows-allocated struct to a + // Go-allocated one, make sure that the Go allocation is aligned to the + // pointer size. + const psize = int(unsafe.Sizeof(uintptr(0))) + alloc := make([]uintptr, (sdLen+psize-1)/psize) + dst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), 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 new file mode 100644 index 0000000..a9dc630 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/service.go @@ -0,0 +1,257 @@ +// 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. + +//go:build windows + +package windows + +const ( + SC_MANAGER_CONNECT = 1 + SC_MANAGER_CREATE_SERVICE = 2 + SC_MANAGER_ENUMERATE_SERVICE = 4 + SC_MANAGER_LOCK = 8 + SC_MANAGER_QUERY_LOCK_STATUS = 16 + SC_MANAGER_MODIFY_BOOT_CONFIG = 32 + SC_MANAGER_ALL_ACCESS = 0xf003f +) + +const ( + SERVICE_KERNEL_DRIVER = 1 + SERVICE_FILE_SYSTEM_DRIVER = 2 + SERVICE_ADAPTER = 4 + SERVICE_RECOGNIZER_DRIVER = 8 + SERVICE_WIN32_OWN_PROCESS = 16 + SERVICE_WIN32_SHARE_PROCESS = 32 + SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS = 256 + SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER + SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS + + SERVICE_BOOT_START = 0 + SERVICE_SYSTEM_START = 1 + SERVICE_AUTO_START = 2 + SERVICE_DEMAND_START = 3 + SERVICE_DISABLED = 4 + + SERVICE_ERROR_IGNORE = 0 + SERVICE_ERROR_NORMAL = 1 + SERVICE_ERROR_SEVERE = 2 + SERVICE_ERROR_CRITICAL = 3 + + SC_STATUS_PROCESS_INFO = 0 + + SC_ACTION_NONE = 0 + SC_ACTION_RESTART = 1 + SC_ACTION_REBOOT = 2 + SC_ACTION_RUN_COMMAND = 3 + + SERVICE_STOPPED = 1 + SERVICE_START_PENDING = 2 + SERVICE_STOP_PENDING = 3 + SERVICE_RUNNING = 4 + SERVICE_CONTINUE_PENDING = 5 + SERVICE_PAUSE_PENDING = 6 + SERVICE_PAUSED = 7 + SERVICE_NO_CHANGE = 0xffffffff + + SERVICE_ACCEPT_STOP = 1 + SERVICE_ACCEPT_PAUSE_CONTINUE = 2 + SERVICE_ACCEPT_SHUTDOWN = 4 + SERVICE_ACCEPT_PARAMCHANGE = 8 + SERVICE_ACCEPT_NETBINDCHANGE = 16 + SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 + SERVICE_ACCEPT_POWEREVENT = 64 + SERVICE_ACCEPT_SESSIONCHANGE = 128 + SERVICE_ACCEPT_PRESHUTDOWN = 256 + + SERVICE_CONTROL_STOP = 1 + SERVICE_CONTROL_PAUSE = 2 + SERVICE_CONTROL_CONTINUE = 3 + SERVICE_CONTROL_INTERROGATE = 4 + SERVICE_CONTROL_SHUTDOWN = 5 + SERVICE_CONTROL_PARAMCHANGE = 6 + SERVICE_CONTROL_NETBINDADD = 7 + SERVICE_CONTROL_NETBINDREMOVE = 8 + SERVICE_CONTROL_NETBINDENABLE = 9 + SERVICE_CONTROL_NETBINDDISABLE = 10 + SERVICE_CONTROL_DEVICEEVENT = 11 + 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_RUNS_IN_SYSTEM_PROCESS = 1 + + 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 + + SERVICE_START_REASON_DEMAND = 0x00000001 + SERVICE_START_REASON_AUTO = 0x00000002 + SERVICE_START_REASON_TRIGGER = 0x00000004 + SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 + SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 + + SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 +) + +type ENUM_SERVICE_STATUS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatus SERVICE_STATUS +} + +type SERVICE_STATUS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 +} + +type SERVICE_TABLE_ENTRY struct { + ServiceName *uint16 + ServiceProc uintptr +} + +type QUERY_SERVICE_CONFIG struct { + ServiceType uint32 + StartType uint32 + ErrorControl uint32 + BinaryPathName *uint16 + LoadOrderGroup *uint16 + TagId uint32 + Dependencies *uint16 + ServiceStartName *uint16 + DisplayName *uint16 +} + +type SERVICE_DESCRIPTION struct { + Description *uint16 +} + +type SERVICE_DELAYED_AUTO_START_INFO struct { + IsDelayedAutoStartUp uint32 +} + +type SERVICE_STATUS_PROCESS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 + ProcessId uint32 + ServiceFlags uint32 +} + +type ENUM_SERVICE_STATUS_PROCESS struct { + ServiceName *uint16 + DisplayName *uint16 + 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 + Command *uint16 + ActionsCount uint32 + Actions *SC_ACTION +} + +type SERVICE_FAILURE_ACTIONS_FLAG struct { + FailureActionsOnNonCrashFailures int32 +} + +type SC_ACTION struct { + Type uint32 + Delay uint32 +} + +type QUERY_SERVICE_LOCK_STATUS struct { + IsLocked uint32 + LockOwner *uint16 + LockDuration uint32 +} + +//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW +//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 +//sys 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) = advapi32.ChangeServiceConfigW +//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW +//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 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? +//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW +//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? +//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go new file mode 100644 index 0000000..f812648 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/setupapi_windows.go @@ -0,0 +1,1425 @@ +// 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. + +package windows + +import ( + "encoding/binary" + "errors" + "fmt" + "runtime" + "strings" + "syscall" + "unsafe" +) + +// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, +// core system functions for managing hardware devices, drivers, and the PnP tree. +// Information about these APIs can be found at: +// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi +// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- + +const ( + ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 + ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 + ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 + ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 + ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 + ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 + ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 + ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 + ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 + ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 + ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 + ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 + ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 + ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 + ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 + ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 + ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 + ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 + ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A + ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B + ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C + ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D + ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E + ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F + ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 + ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 + ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 + ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 + ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 + ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 + ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 + ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 + ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 + ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 + ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B + ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E + ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F + ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 + ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 + ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 + ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 + ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 + ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 + ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 + ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 + ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A + ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B + ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C + ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D + ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E + ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 + ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 + ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 + ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 + ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 + ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 + ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 + ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 + ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 + ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A + ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C + ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D + ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E + ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F + ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 + ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 + ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 + ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 + ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 + ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A + ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B + ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C + ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 + EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW + ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE + ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE + ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED + ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE +) + +const ( + MAX_DEVICE_ID_LEN = 200 + MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN + MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null + MAX_CLASS_NAME_LEN = 32 + MAX_PROFILE_LEN = 80 + MAX_CONFIG_VALUE = 9999 + MAX_INSTANCE_VALUE = 9999 + CONFIGMG_VERSION = 0x0400 +) + +// Maximum string length constants +const ( + LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. + MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). + MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. + MAX_TITLE_LEN = 60 + MAX_INSTRUCTION_LEN = 256 + MAX_LABEL_LEN = 30 + MAX_SERVICE_NAME_LEN = 256 + MAX_SUBTITLE_LEN = 256 +) + +const ( + // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). + SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 +) + +// HSPFILEQ is type for setup file queue +type HSPFILEQ uintptr + +// DevInfo holds reference to device information set +type DevInfo Handle + +// DEVINST is a handle usually recognized by cfgmgr32 APIs +type DEVINST uint32 + +// DevInfoData is a device information structure (references a device instance that is a member of a device information set) +type DevInfoData struct { + size uint32 + ClassGUID GUID + DevInst DEVINST + _ uintptr +} + +// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). +type DevInfoListDetailData struct { + size uint32 // Use unsafeSizeOf method + ClassGUID GUID + RemoteMachineHandle Handle + remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 +} + +func (*DevInfoListDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) + } + return uint32(unsafe.Sizeof(DevInfoListDetailData{})) +} + +func (data *DevInfoListDetailData) RemoteMachineName() string { + return UTF16ToString(data.remoteMachineName[:]) +} + +func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { + str, err := UTF16FromString(remoteMachineName) + if err != nil { + return err + } + copy(data.remoteMachineName[:], str) + return nil +} + +// DI_FUNCTION is function type for device installer +type DI_FUNCTION uint32 + +const ( + DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 + DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 + DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 + DIF_PROPERTIES DI_FUNCTION = 0x00000004 + DIF_REMOVE DI_FUNCTION = 0x00000005 + DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 + DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 + DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 + DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 + DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A + DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B + DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C + DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D + DIF_DETECT DI_FUNCTION = 0x0000000F + DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 + DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 + DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 + DIF_ENABLECLASS DI_FUNCTION = 0x00000013 + DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 + DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 + DIF_UNREMOVE DI_FUNCTION = 0x00000016 + DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 + DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 + DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 + DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A + DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B + DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C + DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D + DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E + DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 + DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 + DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 + DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 + DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 + DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 + DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 + DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 + DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 + DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A +) + +// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) +type DevInstallParams struct { + size uint32 + Flags DI_FLAGS + FlagsEx DI_FLAGSEX + hwndParent uintptr + InstallMsgHandler uintptr + InstallMsgHandlerContext uintptr + FileQueue HSPFILEQ + _ uintptr + _ uint32 + driverPath [MAX_PATH]uint16 +} + +func (params *DevInstallParams) DriverPath() string { + return UTF16ToString(params.driverPath[:]) +} + +func (params *DevInstallParams) SetDriverPath(driverPath string) error { + str, err := UTF16FromString(driverPath) + if err != nil { + return err + } + copy(params.driverPath[:], str) + return nil +} + +// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values +type DI_FLAGS uint32 + +const ( + // Flags for choosing a device + DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button + DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list + DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list + DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown + DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue + DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices + DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices + DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible + + // Flags returned by DiInstallDevice to indicate need to reboot/restart + DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect + DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" + + // Flags for device installation + DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk + + // Flags set by DiBuildDriverInfoList + DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list + + // Flag indicates that device is disabled + DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled + + // Flags for Device/Class Properties + DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 + DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 + + // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. + DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 + + // Flag to indicate that the sorting from the INF file should be used. + DI_INF_IS_SORTED DI_FLAGS = 0x00008000 + + // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. + DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 + + // Flag that prevents ConfigMgr from removing/re-enumerating devices during device + // registration, installation, and deletion. + DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 + + // The following flag can be used to install a device disabled + DI_INSTALLDISABLED DI_FLAGS = 0x00040000 + + // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver + // list from its existing class driver list, instead of the normal INF search. + DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 + + // This flag is set if the Class Install params should be used. + DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 + + // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. + DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 + + // Flags for device installation + DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info + DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary + DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path + DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. + DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg + DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags + DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props + + DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs + + DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install +) + +// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values +type DI_FLAGSEX uint32 + +const ( + DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer + DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. + DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List + DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List + DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 + DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 + DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 + DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 + DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. + DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 + DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 + DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) + DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. + DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. + DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update + DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. + DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used + DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used + DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) + DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. + DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page + DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list + DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList + DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list + DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue + DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. + DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search + DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search +) + +// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. +type ClassInstallHeader struct { + size uint32 + InstallFunction DI_FUNCTION +} + +func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { + hdr := &ClassInstallHeader{InstallFunction: installFunction} + hdr.size = uint32(unsafe.Sizeof(*hdr)) + return hdr +} + +// DICS_STATE specifies values indicating a change in a device's state +type DICS_STATE uint32 + +const ( + DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. + DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. + DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. + DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). + DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. +) + +// DICS_FLAG specifies the scope of a device property change +type DICS_FLAG uint32 + +const ( + DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles + DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only + DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) +) + +// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. +type PropChangeParams struct { + ClassInstallHeader ClassInstallHeader + StateChange DICS_STATE + Scope DICS_FLAG + HwProfile uint32 +} + +// DI_REMOVEDEVICE specifies the scope of the device removal +type DI_REMOVEDEVICE uint32 + +const ( + DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. + DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. +) + +// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. +type RemoveDeviceParams struct { + ClassInstallHeader ClassInstallHeader + Scope DI_REMOVEDEVICE + HwProfile uint32 +} + +// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) +type DrvInfoData struct { + size uint32 + DriverType uint32 + _ uintptr + description [LINE_LEN]uint16 + mfgName [LINE_LEN]uint16 + providerName [LINE_LEN]uint16 + DriverDate Filetime + DriverVersion uint64 +} + +func (data *DrvInfoData) Description() string { + return UTF16ToString(data.description[:]) +} + +func (data *DrvInfoData) SetDescription(description string) error { + str, err := UTF16FromString(description) + if err != nil { + return err + } + copy(data.description[:], str) + return nil +} + +func (data *DrvInfoData) MfgName() string { + return UTF16ToString(data.mfgName[:]) +} + +func (data *DrvInfoData) SetMfgName(mfgName string) error { + str, err := UTF16FromString(mfgName) + if err != nil { + return err + } + copy(data.mfgName[:], str) + return nil +} + +func (data *DrvInfoData) ProviderName() string { + return UTF16ToString(data.providerName[:]) +} + +func (data *DrvInfoData) SetProviderName(providerName string) error { + str, err := UTF16FromString(providerName) + if err != nil { + return err + } + copy(data.providerName[:], str) + return nil +} + +// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. +func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { + if data.DriverDate.HighDateTime > driverDate.HighDateTime { + return true + } + if data.DriverDate.HighDateTime < driverDate.HighDateTime { + return false + } + + if data.DriverDate.LowDateTime > driverDate.LowDateTime { + return true + } + if data.DriverDate.LowDateTime < driverDate.LowDateTime { + return false + } + + if data.DriverVersion > driverVersion { + return true + } + if data.DriverVersion < driverVersion { + return false + } + + return false +} + +// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) +type DrvInfoDetailData struct { + size uint32 // Use unsafeSizeOf method + InfDate Filetime + compatIDsOffset uint32 + compatIDsLength uint32 + _ uintptr + sectionName [LINE_LEN]uint16 + infFileName [MAX_PATH]uint16 + drvDescription [LINE_LEN]uint16 + hardwareID [1]uint16 +} + +func (*DrvInfoDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) + } + return uint32(unsafe.Sizeof(DrvInfoDetailData{})) +} + +func (data *DrvInfoDetailData) SectionName() string { + return UTF16ToString(data.sectionName[:]) +} + +func (data *DrvInfoDetailData) InfFileName() string { + return UTF16ToString(data.infFileName[:]) +} + +func (data *DrvInfoDetailData) DrvDescription() string { + return UTF16ToString(data.drvDescription[:]) +} + +func (data *DrvInfoDetailData) HardwareID() string { + if data.compatIDsOffset > 1 { + bufW := data.getBuf() + return UTF16ToString(bufW[:wcslen(bufW)]) + } + + return "" +} + +func (data *DrvInfoDetailData) CompatIDs() []string { + a := make([]string, 0) + + if data.compatIDsLength > 0 { + bufW := data.getBuf() + bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + } + + return a +} + +func (data *DrvInfoDetailData) getBuf() []uint16 { + len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 + sl := struct { + addr *uint16 + len int + cap int + }{&data.hardwareID[0], int(len), int(len)} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. +func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { + hwidLC := strings.ToLower(hwid) + if strings.ToLower(data.HardwareID()) == hwidLC { + return true + } + a := data.CompatIDs() + for i := range a { + if strings.ToLower(a[i]) == hwidLC { + return true + } + } + + return false +} + +// DICD flags control SetupDiCreateDeviceInfo +type DICD uint32 + +const ( + DICD_GENERATE_ID DICD = 0x00000001 + DICD_INHERIT_CLASSDRVS DICD = 0x00000002 +) + +// SUOI flags control SetupUninstallOEMInf +type SUOI uint32 + +const ( + SUOI_FORCEDELETE SUOI = 0x0001 +) + +// SPDIT flags to distinguish between class drivers and +// device drivers. (Passed in 'DriverType' parameter of +// driver information list APIs) +type SPDIT uint32 + +const ( + SPDIT_NODRIVER SPDIT = 0x00000000 + SPDIT_CLASSDRIVER SPDIT = 0x00000001 + SPDIT_COMPATDRIVER SPDIT = 0x00000002 +) + +// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs +type DIGCF uint32 + +const ( + DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE + DIGCF_PRESENT DIGCF = 0x00000002 + DIGCF_ALLCLASSES DIGCF = 0x00000004 + DIGCF_PROFILE DIGCF = 0x00000008 + DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 +) + +// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. +type DIREG uint32 + +const ( + DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key + DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key + DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key +) + +// SPDRP specifies device registry property codes +// (Codes marked as read-only (R) may only be used for +// SetupDiGetDeviceRegistryProperty) +// +// These values should cover the same set of registry properties +// as defined by the CM_DRP codes in cfgmgr32.h. +// +// Note that SPDRP codes are zero based while CM_DRP codes are one based! +type SPDRP uint32 + +const ( + SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) + SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) + SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) + SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) + SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) + SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) + SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) + SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) + SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) + SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) + SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) + SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) + SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) + SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) + SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) + SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) + SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) + SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) + SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) + SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) + SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) + SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) + SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) + SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) + SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) + SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) + SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) + SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) + SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) + SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) + SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) + SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) + SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) + SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) + + SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals +) + +// DEVPROPTYPE represents the property-data-type identifier that specifies the +// data type of a device property value in the unified device property model. +type DEVPROPTYPE uint32 + +const ( + DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 + DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 + + DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 + DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 + DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 + DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 + DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 + DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 + DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 + DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 + DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 + DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 + DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A + DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B + DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C + DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D + DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E + DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F + DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 + DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 + DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 + DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST + DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 + DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 + DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 + DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 + DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY + DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 + DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 + DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 + + MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 + MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 + + DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF + DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 +) + +// DEVPROPGUID specifies a property category. +type DEVPROPGUID GUID + +// DEVPROPID uniquely identifies the property within the property category. +type DEVPROPID uint32 + +const DEVPROPID_FIRST_USABLE DEVPROPID = 2 + +// DEVPROPKEY represents a device property key for a device property in the +// unified device property model. +type DEVPROPKEY struct { + FmtID DEVPROPGUID + PID DEVPROPID +} + +// CONFIGRET is a return value or error code from cfgmgr32 APIs +type CONFIGRET uint32 + +func (ret CONFIGRET) Error() string { + if win32Error, ok := ret.Unwrap().(Errno); ok { + return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) + } + return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) +} + +func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { + return cm_MapCrToWin32Err(ret, defaultError) +} + +func (ret CONFIGRET) Unwrap() error { + const noMatch = Errno(^uintptr(0)) + win32Error := ret.Win32Error(noMatch) + if win32Error == noMatch { + return nil + } + return win32Error +} + +const ( + CR_SUCCESS CONFIGRET = 0x00000000 + CR_DEFAULT CONFIGRET = 0x00000001 + CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 + CR_INVALID_POINTER CONFIGRET = 0x00000003 + CR_INVALID_FLAG CONFIGRET = 0x00000004 + CR_INVALID_DEVNODE CONFIGRET = 0x00000005 + CR_INVALID_DEVINST = CR_INVALID_DEVNODE + CR_INVALID_RES_DES CONFIGRET = 0x00000006 + CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 + CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 + CR_INVALID_NODELIST CONFIGRET = 0x00000009 + CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A + CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS + CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B + CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C + CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D + CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE + CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E + CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F + CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 + CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE + CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 + CR_INVALID_RANGE CONFIGRET = 0x00000012 + CR_FAILURE CONFIGRET = 0x00000013 + CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 + CR_CREATE_BLOCKED CONFIGRET = 0x00000015 + CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 + CR_REMOVE_VETOED CONFIGRET = 0x00000017 + CR_APM_VETOED CONFIGRET = 0x00000018 + CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 + CR_BUFFER_SMALL CONFIGRET = 0x0000001A + CR_NO_ARBITRATOR CONFIGRET = 0x0000001B + CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C + CR_REGISTRY_ERROR CONFIGRET = 0x0000001D + CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E + CR_INVALID_DATA CONFIGRET = 0x0000001F + CR_INVALID_API CONFIGRET = 0x00000020 + CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 + CR_NEED_RESTART CONFIGRET = 0x00000022 + CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 + CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 + CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 + CR_WRONG_TYPE CONFIGRET = 0x00000026 + CR_INVALID_PRIORITY CONFIGRET = 0x00000027 + CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 + CR_FREE_RESOURCES CONFIGRET = 0x00000029 + CR_QUERY_VETOED CONFIGRET = 0x0000002A + CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B + CR_NO_DEPENDENT CONFIGRET = 0x0000002C + CR_SAME_RESOURCES CONFIGRET = 0x0000002D + CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E + CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F + CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 + CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 + CR_NO_CM_SERVICES CONFIGRET = 0x00000032 + CR_ACCESS_DENIED CONFIGRET = 0x00000033 + CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 + CR_INVALID_PROPERTY CONFIGRET = 0x00000035 + CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 + CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 + CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 + CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 + CR_INVALID_INDEX CONFIGRET = 0x0000003A + CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B + NUM_CR_RESULTS CONFIGRET = 0x0000003C +) + +const ( + CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces + CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not +) + +const ( + DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT + DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver + DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator + DN_STARTED = 0x00000008 // Is currently configured + DN_MANUAL = 0x00000010 // Manually installed + DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration + DN_NOT_FIRST_TIME = 0x00000040 // Has received a config + DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID + DN_LIAR = 0x00000100 // Lied about can reconfig once + DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately + DN_HAS_PROBLEM = 0x00000400 // Need device installer + DN_FILTERED = 0x00000800 // Is filtered + DN_MOVED = 0x00001000 // Has been moved + DN_DISABLEABLE = 0x00002000 // Can be disabled + DN_REMOVABLE = 0x00004000 // Can be removed + DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem + DN_MF_PARENT = 0x00010000 // Multi function parent + DN_MF_CHILD = 0x00020000 // Multi function child + DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed + DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate + DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources + DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance + DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources + DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator + DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver + DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing + DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device + DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator + DN_APM_DRIVER = 0x10000000 // APM aware driver + DN_SILENT_INSTALL = 0x20000000 // Silent install + DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager + DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf + DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly + DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode + DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver + DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs + DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. + DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal + DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP + DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM +) + +//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW + +// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. +func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) +} + +//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW + +// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { + data := &DevInfoListDetailData{} + data.size = data.unsafeSizeOf() + + return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) +} + +// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { + return SetupDiGetDeviceInfoListDetail(deviceInfoSet) +} + +//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW + +// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. +func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { + deviceNameUTF16, err := UTF16PtrFromString(deviceName) + if err != nil { + return + } + + var deviceDescriptionUTF16 *uint16 + if deviceDescription != "" { + deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) + if err != nil { + return + } + } + + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) +} + +// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. +func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { + return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) +} + +//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo + +// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. +func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) +} + +// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. +func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { + return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) +} + +// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. +//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList + +// Close method deletes a device information set and frees all associated memory. +func (deviceInfoSet DevInfo) Close() error { + return SetupDiDestroyDeviceInfoList(deviceInfoSet) +} + +//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList + +// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. +func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch + +// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. +func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { + return SetupDiCancelDriverInfoSearch(deviceInfoSet) +} + +//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW + +// SetupDiEnumDriverInfo function enumerates the members of a driver list. +func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) +} + +// EnumDriverInfo method enumerates the members of a driver list. +func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) +} + +//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW + +// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. +func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) +} + +// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { + return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) +} + +//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW + +// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. +func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { + return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW + +// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. +func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + reqSize := uint32(2048) + for { + buf := make([]byte, reqSize) + data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) + data.size = data.unsafeSizeOf() + err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + data.size = reqSize + return data, nil + } +} + +// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. +func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList + +// DestroyDriverInfoList method deletes a driver list. +func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW + +// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. +func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { + var enumeratorUTF16 *uint16 + if enumerator != "" { + enumeratorUTF16, err = UTF16PtrFromString(enumerator) + if err != nil { + return + } + } + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) +} + +// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller + +// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { + return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) +} + +// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. +//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey + +// OpenDevRegKey method opens a registry key for device-specific configuration information. +func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { + return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) +} + +//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW + +// SetupDiGetDeviceProperty function retrieves a specified device instance property. +func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType DEVPROPTYPE + buf := make([]byte, reqSize) + err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + switch dataType { + case DEVPROP_TYPE_STRING: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + } + return nil, errors.New("unimplemented property type") + } +} + +//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW + +// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. +func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType uint32 + buf := make([]byte, reqSize) + err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + return getRegistryValue(buf[:reqSize], dataType) + } +} + +func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { + switch dataType { + case REG_SZ: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + case REG_EXPAND_SZ: + value := UTF16ToString(bufToUTF16(buf)) + if value == "" { + return "", nil + } + p, err := syscall.UTF16PtrFromString(value) + if err != nil { + return "", err + } + ret := make([]uint16, 100) + for { + n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) + if err != nil { + return "", err + } + if n <= uint32(len(ret)) { + return UTF16ToString(ret[:n]), nil + } + ret = make([]uint16, n) + } + case REG_BINARY: + return buf, nil + case REG_DWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint32(buf), nil + case REG_DWORD_BIG_ENDIAN: + return binary.BigEndian.Uint32(buf), nil + case REG_MULTI_SZ: + bufW := bufToUTF16(buf) + a := []string{} + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + runtime.KeepAlive(buf) + return a, nil + case REG_QWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint64(buf), nil + default: + return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) + } +} + +// bufToUTF16 function reinterprets []byte buffer as []uint16 +func bufToUTF16(buf []byte) []uint16 { + sl := struct { + addr *uint16 + len int + cap int + }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// utf16ToBuf function reinterprets []uint16 as []byte +func utf16ToBuf(buf []uint16) []byte { + sl := struct { + addr *byte + len int + cap int + }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} + return *(*[]byte)(unsafe.Pointer(&sl)) +} + +func wcslen(str []uint16) int { + for i := 0; i < len(str); i++ { + if str[i] == 0 { + return i + } + } + return len(str) +} + +// DeviceRegistryProperty method retrieves a specified Plug and Play device property. +func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { + return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) +} + +//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW + +// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) +} + +// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) +} + +// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { + str16, err := UTF16FromString(str) + if err != nil { + return err + } + err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) + runtime.KeepAlive(str16) + return err +} + +//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW + +// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. +func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { + params := &DevInstallParams{} + params.size = uint32(unsafe.Sizeof(*params)) + + return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) +} + +// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { + return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) +} + +//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW + +// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. +func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { + reqSize := uint32(1024) + for { + buf := make([]uint16, reqSize) + err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return "", err + } + return UTF16ToString(buf), nil + } +} + +// DeviceInstanceID method retrieves the instance ID of the device. +func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { + return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) +} + +// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. +//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW + +// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { + return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) +} + +//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW + +// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { + return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) +} + +// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. +//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW + +// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { + return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) +} + +//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW + +// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. +func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { + var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + + err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) + if err != nil { + return + } + + className = UTF16ToString(classNameUTF16[:]) + return +} + +//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW + +// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. +func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { + classNameUTF16, err := UTF16PtrFromString(className) + if err != nil { + return nil, err + } + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return nil, err + } + } + + reqSize := uint32(4) + for { + buf := make([]GUID, reqSize) + err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + return buf[:reqSize], nil + } +} + +//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice + +// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. +func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDevice(deviceInfoSet, data) +} + +// SelectedDevice method retrieves the selected device information element in a device information set. +func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { + return SetupDiGetSelectedDevice(deviceInfoSet) +} + +// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice + +// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { + return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) +} + +//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW + +// SetupUninstallOEMInf uninstalls the specified driver. +func SetupUninstallOEMInf(infFileName string, flags SUOI) error { + infFileName16, err := UTF16PtrFromString(infFileName) + if err != nil { + return err + } + return setupUninstallOEMInf(infFileName16, flags, 0) +} + +//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err + +//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW +//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW + +func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { + deviceID16, err := UTF16PtrFromString(deviceID) + if err != nil { + return nil, err + } + var buf []uint16 + var buflen uint32 + for { + if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { + return nil, ret + } + buf = make([]uint16, buflen) + if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { + break + } else if ret != CR_BUFFER_SMALL { + return nil, ret + } + } + var interfaces []string + for i := 0; i < len(buf); { + j := i + wcslen(buf[i:]) + if i < j { + interfaces = append(interfaces, UTF16ToString(buf[i:j])) + } + i = j + 1 + } + if interfaces == nil { + return nil, ERROR_NO_SUCH_DEVICE_INTERFACE + } + return interfaces, nil +} + +//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status + +func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { + ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) + if ret == CR_SUCCESS { + return nil + } + return ret +} diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go new file mode 100644 index 0000000..6a4f9ce --- /dev/null +++ b/vendor/golang.org/x/sys/windows/str.go @@ -0,0 +1,22 @@ +// 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 windows + +package windows + +func itoa(val int) string { // do it here rather than with fmt to avoid dependency + if val < 0 { + return "-" + itoa(-val) + } + var buf [32]byte // big enough for int64 + i := len(buf) - 1 + for val >= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go new file mode 100644 index 0000000..e85ed6b --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -0,0 +1,104 @@ +// 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 windows + +// Package windows contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display syscall documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package windows // import "golang.org/x/sys/windows" + +import ( + "bytes" + "strings" + "syscall" + "unsafe" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + 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) + } + + return string(unsafe.Slice(p, n)) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go new file mode 100644 index 0000000..640f6b1 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -0,0 +1,1934 @@ +// 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. + +// Windows system calls. + +package windows + +import ( + errorspkg "errors" + "fmt" + "runtime" + "sync" + "syscall" + "time" + "unicode/utf16" + "unsafe" +) + +type ( + Handle uintptr + HWND uintptr +) + +const ( + InvalidHandle = ^Handle(0) + InvalidHWND = ^HWND(0) + + // Flags for DefineDosDevice. + DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 + DDD_NO_BROADCAST_SYSTEM = 0x00000008 + DDD_RAW_TARGET_PATH = 0x00000001 + DDD_REMOVE_DEFINITION = 0x00000002 + + // Return values for GetDriveType. + DRIVE_UNKNOWN = 0 + DRIVE_NO_ROOT_DIR = 1 + DRIVE_REMOVABLE = 2 + DRIVE_FIXED = 3 + DRIVE_REMOTE = 4 + DRIVE_CDROM = 5 + DRIVE_RAMDISK = 6 + + // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. + FILE_CASE_SENSITIVE_SEARCH = 0x00000001 + FILE_CASE_PRESERVED_NAMES = 0x00000002 + FILE_FILE_COMPRESSION = 0x00000010 + FILE_DAX_VOLUME = 0x20000000 + FILE_NAMED_STREAMS = 0x00040000 + FILE_PERSISTENT_ACLS = 0x00000008 + FILE_READ_ONLY_VOLUME = 0x00080000 + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 + FILE_SUPPORTS_ENCRYPTION = 0x00020000 + FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 + FILE_SUPPORTS_HARD_LINKS = 0x00400000 + FILE_SUPPORTS_OBJECT_IDS = 0x00010000 + FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 + FILE_SUPPORTS_SPARSE_FILES = 0x00000040 + FILE_SUPPORTS_TRANSACTIONS = 0x00200000 + FILE_SUPPORTS_USN_JOURNAL = 0x02000000 + 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. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16(s string) []uint16 { + a, err := UTF16FromString(s) + if err != nil { + panic("windows: string with NUL passed to StringToUTF16") + } + return a +} + +// UTF16FromString returns the UTF-16 encoding of the UTF-8 string +// s, with a terminating NUL added. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func UTF16FromString(s string) ([]uint16, error) { + return syscall.UTF16FromString(s) +} + +// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, +// with a terminating NUL and any bytes after the NUL removed. +func UTF16ToString(s []uint16) string { + return syscall.UTF16ToString(s) +} + +// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } + +// UTF16PtrFromString returns pointer to the UTF-16 encoding of +// the UTF-8 string s, with a terminating NUL added. If s +// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). +func UTF16PtrFromString(s string) (*uint16, error) { + a, err := UTF16FromString(s) + if err != nil { + return nil, err + } + 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)) + } + return UTF16ToString(unsafe.Slice(p, n)) +} + +func Getpagesize() int { return 4096 } + +// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallback(fn interface{}) uintptr { + return syscall.NewCallback(fn) +} + +// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallbackCDecl(fn interface{}) uintptr { + return syscall.NewCallbackCDecl(fn) +} + +// windows api calls + +//sys GetLastError() (lasterr error) +//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW +//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 AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory +//sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory +//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 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 DisconnectNamedPipe(pipe Handle) (err error) +//sys GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) +//sys GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (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) = ReadFile +//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile +//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) +//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] +//sys CloseHandle(handle Handle) (err error) +//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] +//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) +//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW +//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 +//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW +//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 SetFileValidData(handle Handle, validDataLength int64) (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 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 CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW +//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 LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW +//sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout +//sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout +//sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx +//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) = GetStartupInfoW +//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] +//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects +//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW +//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) +//sys GetFileType(filehandle Handle) (n uint32, err error) +//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW +//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext +//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom +//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW +//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 ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW +//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 GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) +//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 +//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW +//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW +//sys commandLineToArgv(cmd *uint16, argc *int32) (argv **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 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) +//sys VirtualLock(addr uintptr, length uintptr) (err error) +//sys VirtualUnlock(addr uintptr, length uintptr) (err error) +//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc +//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree +//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect +//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx +//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery +//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx +//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory +//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory +//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) = 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 CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore +//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 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 ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole +//sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole +//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 GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP +//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP +//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP +//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP +//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW +//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole +//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot +//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW +//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW +//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) [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 ClearCommBreak(handle Handle) (err error) +//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) +//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) +//sys GetCommState(handle Handle, lpDCB *DCB) (err error) +//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) +//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys PurgeComm(handle Handle, dwFlags uint32) (err error) +//sys SetCommBreak(handle Handle) (err error) +//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) +//sys SetCommState(handle Handle, lpDCB *DCB) (err error) +//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) +//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) +//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) +//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) +//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows +//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows +//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW +//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow +//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow +//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow +//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode +//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible +//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo +//sys GetLargePageMinimum() (size uintptr) + +// Volume Management Functions +//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW +//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW +//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW +//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW +//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW +//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 +//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW +//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW +//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW +//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW +//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW +//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 + +// Version APIs +//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW +//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW +//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW + +// Process Status API (PSAPI) +//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses +//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules +//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx +//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation +//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW +//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW +//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx + +// 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 NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile +//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 +//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation +//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation +//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable +//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable + +// Desktop Window Manager API (Dwmapi) +//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute +//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute + +// Windows Multimedia API +//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod +//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod + +// 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 { + err = errnoErr(e1) + } + return +} + +func Exit(code int) { ExitProcess(uint32(code)) } + +func makeInheritSa() *SecurityAttributes { + var sa SecurityAttributes + sa.Length = uint32(unsafe.Sizeof(sa)) + sa.InheritHandle = 1 + return &sa +} + +func Open(path string, mode int, perm uint32) (fd Handle, err error) { + if len(path) == 0 { + return InvalidHandle, ERROR_FILE_NOT_FOUND + } + pathp, err := UTF16PtrFromString(path) + if err != nil { + return InvalidHandle, err + } + var access uint32 + switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { + case O_RDONLY: + access = GENERIC_READ + case O_WRONLY: + access = GENERIC_WRITE + case O_RDWR: + access = GENERIC_READ | GENERIC_WRITE + } + if mode&O_CREAT != 0 { + access |= GENERIC_WRITE + } + if mode&O_APPEND != 0 { + access &^= GENERIC_WRITE + access |= FILE_APPEND_DATA + } + sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) + var sa *SecurityAttributes + if mode&O_CLOEXEC == 0 { + sa = makeInheritSa() + } + var createmode uint32 + switch { + case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): + createmode = CREATE_NEW + case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): + createmode = CREATE_ALWAYS + case mode&O_CREAT == O_CREAT: + createmode = OPEN_ALWAYS + case mode&O_TRUNC == O_TRUNC: + createmode = TRUNCATE_EXISTING + default: + createmode = OPEN_EXISTING + } + 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 +} + +func Read(fd Handle, p []byte) (n int, err error) { + var done uint32 + e := ReadFile(fd, p, &done, nil) + if e != nil { + if e == ERROR_BROKEN_PIPE { + // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin + return 0, nil + } + return 0, e + } + return int(done), nil +} + +func Write(fd Handle, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var done uint32 + e := WriteFile(fd, p, &done, nil) + if e != nil { + return 0, e + } + return int(done), nil +} + +func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + err := readFile(fd, p, done, overlapped) + if raceenabled { + if *done > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) + } + raceAcquire(unsafe.Pointer(&ioSync)) + } + return err +} + +func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + err := writeFile(fd, p, done, overlapped) + if raceenabled && *done > 0 { + raceReadRange(unsafe.Pointer(&p[0]), int(*done)) + } + return err +} + +var ioSync int64 + +func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { + var w uint32 + switch whence { + case 0: + w = FILE_BEGIN + case 1: + w = FILE_CURRENT + case 2: + w = FILE_END + } + hi := int32(offset >> 32) + lo := int32(offset) + // use GetFileType to check pipe, pipe can't do seek + ft, _ := GetFileType(fd) + if ft == FILE_TYPE_PIPE { + return 0, syscall.EPIPE + } + rlo, e := SetFilePointer(fd, lo, &hi, w) + if e != nil { + return 0, e + } + return int64(hi)<<32 + int64(rlo), nil +} + +func Close(fd Handle) (err error) { + return CloseHandle(fd) +} + +var ( + Stdin = getStdHandle(STD_INPUT_HANDLE) + Stdout = getStdHandle(STD_OUTPUT_HANDLE) + Stderr = getStdHandle(STD_ERROR_HANDLE) +) + +func getStdHandle(stdhandle uint32) (fd Handle) { + r, _ := GetStdHandle(stdhandle) + return r +} + +const ImplementsGetwd = true + +func Getwd() (wd string, err error) { + b := make([]uint16, 300) + n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func Chdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return SetCurrentDirectory(pathp) +} + +func Mkdir(path string, mode uint32) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return CreateDirectory(pathp, nil) +} + +func Rmdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return RemoveDirectory(pathp) +} + +func Unlink(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return DeleteFile(pathp) +} + +func Rename(oldpath, newpath string) (err error) { + from, err := UTF16PtrFromString(oldpath) + if err != nil { + return err + } + to, err := UTF16PtrFromString(newpath) + if err != nil { + return err + } + return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) +} + +func ComputerName() (name string, err error) { + var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 + b := make([]uint16, n) + e := GetComputerName(&b[0], &n) + if e != nil { + return "", e + } + 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) { + type _FILE_END_OF_FILE_INFO struct { + EndOfFile int64 + } + var info _FILE_END_OF_FILE_INFO + info.EndOfFile = length + return SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info))) +} + +func Gettimeofday(tv *Timeval) (err error) { + var ft Filetime + GetSystemTimeAsFileTime(&ft) + *tv = NsecToTimeval(ft.Nanoseconds()) + return nil +} + +func Pipe(p []Handle) (err error) { + if len(p) != 2 { + return syscall.EINVAL + } + var r, w Handle + e := CreatePipe(&r, &w, makeInheritSa(), 0) + if e != nil { + return e + } + p[0] = r + p[1] = w + return nil +} + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(tv[0].Nanoseconds()) + w := NsecToFiletime(tv[1].Nanoseconds()) + return SetFileTime(h, nil, &a, &w) +} + +func UtimesNano(path string, ts []Timespec) (err error) { + if len(ts) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(TimespecToNsec(ts[0])) + w := NsecToFiletime(TimespecToNsec(ts[1])) + return SetFileTime(h, nil, &a, &w) +} + +func Fsync(fd Handle) (err error) { + return FlushFileBuffers(fd) +} + +func Chmod(path string, mode uint32) (err error) { + p, e := UTF16PtrFromString(path) + if e != nil { + return e + } + attrs, e := GetFileAttributes(p) + if e != nil { + return e + } + if mode&S_IWRITE != 0 { + attrs &^= FILE_ATTRIBUTE_READONLY + } else { + attrs |= FILE_ATTRIBUTE_READONLY + } + return SetFileAttributes(p, attrs) +} + +func LoadGetSystemTimePreciseAsFileTime() error { + return procGetSystemTimePreciseAsFileTime.Find() +} + +func LoadCancelIoEx() error { + return procCancelIoEx.Find() +} + +func LoadSetFileCompletionNotificationModes() error { + return procSetFileCompletionNotificationModes.Find() +} + +func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + // Every other win32 array API takes arguments as "pointer, count", except for this function. So we + // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore + // trivially stub this ourselves. + + var handlePtr *Handle + if len(handles) > 0 { + handlePtr = &handles[0] + } + return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) +} + +// net api calls + +const socket_error = uintptr(^uint32(0)) + +//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup +//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 WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW +//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW +//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd +//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 +//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect +//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname +//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername +//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen +//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown +//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket +//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx +//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs +//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv +//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 WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW +//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname +//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname +//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs +//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname +//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W +//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree +//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W +//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW +//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW +//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry +//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 +//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx +//sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex +//sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry +//sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange +//sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange +//sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +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 RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [100]int8 +} + +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs +} + +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + 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 + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type RawSockaddrUnix struct { + Family uint16 + Path [UNIX_PATH_MAX]int8 +} + +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, syscall.EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := int32(2) + if n > 0 { + sl += int32(n) + 1 + } + if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { + // Check sl > 3 so we don't change unnamed socket behavior. + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +type RawSockaddrBth struct { + AddressFamily [2]byte + BtAddr [8]byte + ServiceClassId [16]byte + Port [4]byte +} + +type SockaddrBth struct { + BtAddr uint64 + ServiceClassId GUID + Port uint32 + + raw RawSockaddrBth +} + +func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { + family := AF_BTH + sa.raw = RawSockaddrBth{ + AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), + BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), + Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), + ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if 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. + // 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 < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + 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]) + sa.Addr = pp.Addr + 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 + sa.Addr = pp.Addr + return sa, nil + } + return nil, syscall.EAFNOSUPPORT +} + +func Socket(domain, typ, proto int) (fd Handle, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return InvalidHandle, syscall.EAFNOSUPPORT + } + return socket(int32(domain), int32(typ), int32(proto)) +} + +func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { + v := int32(value) + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) +} + +func Bind(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { + ptr, _, err := sa.sockaddr() + if err != nil { + return err + } + return getBestInterfaceEx(ptr, pdwBestIfIndex) +} + +func Getsockname(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getsockname(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Getpeername(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getpeername(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Listen(s Handle, n int) (err error) { + return listen(s, int32(n)) +} + +func Shutdown(fd Handle, how int) (err error) { + return shutdown(fd, int32(how)) +} + +func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { + var rsa unsafe.Pointer + var l int32 + if to != nil { + rsa, l, err = to.sockaddr() + if err != nil { + return err + } + } + return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) +} + +func LoadGetAddrInfo() error { + return procGetAddrInfoW.Find() +} + +var connectExFunc struct { + once sync.Once + addr uintptr + err error +} + +func LoadConnectEx() error { + connectExFunc.once.Do(func() { + var s Handle + s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) + if connectExFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + connectExFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), + uint32(unsafe.Sizeof(WSAID_CONNECTEX)), + (*byte)(unsafe.Pointer(&connectExFunc.addr)), + uint32(unsafe.Sizeof(connectExFunc.addr)), + &n, nil, 0) + }) + return connectExFunc.err +} + +func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { + err := LoadConnectEx() + if err != nil { + return errorspkg.New("failed to find ConnectEx: " + err.Error()) + } + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) +} + +var sendRecvMsgFunc struct { + once sync.Once + sendAddr uintptr + recvAddr uintptr + err error +} + +func loadWSASendRecvMsg() error { + sendRecvMsgFunc.once.Do(func() { + var s Handle + s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) + if sendRecvMsgFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), + uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), + &n, nil, 0) + if sendRecvMsgFunc.err != nil { + return + } + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), + uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), + &n, nil, 0) + }) + return sendRecvMsgFunc.err +} + +func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + 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 { + err = errnoErr(e1) + } + return err +} + +func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + 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 { + err = errnoErr(e1) + } + return err +} + +// Invented structures to support what package os expects. +type Rusage struct { + CreationTime Filetime + ExitTime Filetime + KernelTime Filetime + UserTime Filetime +} + +type WaitStatus struct { + ExitCode uint32 +} + +func (w WaitStatus) Exited() bool { return true } + +func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } + +func (w WaitStatus) Signal() Signal { return -1 } + +func (w WaitStatus) CoreDump() bool { return false } + +func (w WaitStatus) Stopped() bool { return false } + +func (w WaitStatus) Continued() bool { return false } + +func (w WaitStatus) StopSignal() Signal { return -1 } + +func (w WaitStatus) Signaled() bool { return false } + +func (w WaitStatus) TrapCause() int { return -1 } + +// Timespec is an invented structure on Windows, but here for +// consistency with the corresponding package for other operating systems. +type Timespec struct { + Sec int64 + Nsec int64 +} + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = nsec / 1e9 + ts.Nsec = nsec % 1e9 + return +} + +// 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) { + 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 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. +// sysLinger is the real system call structure. + +// BUG(brainman): The definition of Linger is not appropriate for direct use +// with Setsockopt and Getsockopt. +// Use SetsockoptLinger instead. + +type Linger struct { + Onoff int32 + Linger int32 +} + +type sysLinger struct { + Onoff uint16 + Linger uint16 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +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)} + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) +} + +func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) +} + +func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) +} + +func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { + return syscall.EWINDOWS +} + +func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { + // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses + // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. + var p *uint32 + if len(processIds) > 0 { + p = &processIds[0] + } + size := uint32(len(processIds) * 4) + return enumProcesses(p, size, bytesReturned) +} + +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: + // the two paths are each one uint16 short. Use the correct struct, + // a win32finddata1, and then copy the results out. + // There is no loss of expressivity here, because the final + // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. + // For Go 1.1, we might avoid the allocation of win32finddata1 here + // by adding a final Bug [2]uint16 field to the struct and then + // adjusting the fields in the result directly. + var data1 win32finddata1 + handle, err = findFirstFile1(name, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func FindNextFile(handle Handle, data *Win32finddata) (err error) { + var data1 win32finddata1 + err = findNextFile1(handle, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func getProcessEntry(pid int) (*ProcessEntry32, error) { + snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) + if err != nil { + return nil, err + } + defer CloseHandle(snapshot) + var procEntry ProcessEntry32 + procEntry.Size = uint32(unsafe.Sizeof(procEntry)) + if err = Process32First(snapshot, &procEntry); err != nil { + return nil, err + } + for { + if procEntry.ProcessID == uint32(pid) { + return &procEntry, nil + } + err = Process32Next(snapshot, &procEntry) + if err != nil { + return nil, err + } + } +} + +func Getppid() (ppid int) { + pe, err := getProcessEntry(Getpid()) + if err != nil { + return -1 + } + return int(pe.ParentProcessID) +} + +// TODO(brainman): fix all needed for os +func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } +func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } +func Symlink(path, link string) (err error) { return syscall.EWINDOWS } + +func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } +func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } + +func Getuid() (uid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getegid() (egid int) { return -1 } +func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } + +type Signal int + +func (s Signal) Signal() {} + +func (s Signal) String() string { + if 0 <= s && int(s) < len(signals) { + str := signals[s] + if str != "" { + return str + } + } + return "signal " + itoa(int(s)) +} + +func LoadCreateSymbolicLink() error { + return procCreateSymbolicLinkW.Find() +} + +// Readlink returns the destination of the named symbolic link. +func Readlink(path string, buf []byte) (n int, err error) { + fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, + FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) + if err != nil { + return -1, err + } + defer CloseHandle(fd) + + rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) + var bytesReturned uint32 + err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) + if err != nil { + return -1, err + } + + rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) + var s string + switch rdb.ReparseTag { + case IO_REPARSE_TAG_SYMLINK: + data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + case IO_REPARSE_TAG_MOUNT_POINT: + data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + default: + // the path is not a symlink or junction but another type of reparse + // point + return -1, syscall.ENOENT + } + n = copy(buf, []byte(s)) + + 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 GetStartupInfo(startupInfo *StartupInfo) error { + getStartupInfo(startupInfo) + return nil +} + +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) { + s16, err := UTF16FromString(s) + if err != nil { + return nil, err + } + n := uint16(len(s16) * 2) + return &NTUnicodeString{ + Length: n - 2, // subtract 2 bytes for the NULL terminator + MaximumLength: n, + Buffer: &s16[0], + }, nil +} + +// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +func (s *NTUnicodeString) Slice() []uint16 { + // Note: this rounds the length down, if it happens + // to (incorrectly) be odd. Probably safer than rounding up. + return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2] +} + +func (s *NTUnicodeString) String() string { + 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 { + slice := unsafe.Slice(s.Buffer, s.MaximumLength) + return slice[:s.Length] +} + +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 + } + data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size) + return +} + +// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. +type PSAPI_WORKING_SET_EX_BLOCK uint64 + +// Valid returns the validity of this page. +// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. +func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { + return (b & 1) == 1 +} + +// ShareCount is the number of processes that share this page. The maximum value of this member is 7. +func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { + return b.intField(1, 3) +} + +// Win32Protection is the memory protection attributes of the page. For a list of values, see +// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants +func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { + return b.intField(4, 11) +} + +// Shared returns the shared status of this page. +// If this bit is 1, the page can be shared. +func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { + return (b & (1 << 15)) == 1 +} + +// Node is the NUMA node. The maximum value of this member is 63. +func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { + return b.intField(16, 6) +} + +// Locked returns the locked status of this page. +// If this bit is 1, the virtual page is locked in physical memory. +func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { + return (b & (1 << 22)) == 1 +} + +// LargePage returns the large page status of this page. +// If this bit is 1, the page is a large page. +func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { + return (b & (1 << 23)) == 1 +} + +// Bad returns the bad status of this page. +// If this bit is 1, the page is has been reported as bad. +func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { + return (b & (1 << 31)) == 1 +} + +// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. +func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { + var mask PSAPI_WORKING_SET_EX_BLOCK + for pos := start; pos < start+length; pos++ { + mask |= (1 << pos) + } + + masked := b & mask + return uint64(masked >> start) +} + +// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. +type PSAPI_WORKING_SET_EX_INFORMATION struct { + // The virtual address. + VirtualAddress Pointer + // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. + VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK +} + +// CreatePseudoConsole creates a windows pseudo console. +func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error { + // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only + // accept arguments that can be casted to uintptr, and Coord can't. + return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole) +} + +// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. +func ResizePseudoConsole(pconsole Handle, size Coord) error { + // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only + // accept arguments that can be casted to uintptr, and Coord can't. + return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) +} + +// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. +const ( + CBR_110 = 110 + CBR_300 = 300 + CBR_600 = 600 + CBR_1200 = 1200 + CBR_2400 = 2400 + CBR_4800 = 4800 + CBR_9600 = 9600 + CBR_14400 = 14400 + CBR_19200 = 19200 + CBR_38400 = 38400 + CBR_57600 = 57600 + CBR_115200 = 115200 + CBR_128000 = 128000 + CBR_256000 = 256000 + + DTR_CONTROL_DISABLE = 0x00000000 + DTR_CONTROL_ENABLE = 0x00000010 + DTR_CONTROL_HANDSHAKE = 0x00000020 + + RTS_CONTROL_DISABLE = 0x00000000 + RTS_CONTROL_ENABLE = 0x00001000 + RTS_CONTROL_HANDSHAKE = 0x00002000 + RTS_CONTROL_TOGGLE = 0x00003000 + + NOPARITY = 0 + ODDPARITY = 1 + EVENPARITY = 2 + MARKPARITY = 3 + SPACEPARITY = 4 + + ONESTOPBIT = 0 + ONE5STOPBITS = 1 + TWOSTOPBITS = 2 +) + +// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. +const ( + SETXOFF = 1 + SETXON = 2 + SETRTS = 3 + CLRRTS = 4 + SETDTR = 5 + CLRDTR = 6 + SETBREAK = 8 + CLRBREAK = 9 +) + +// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. +const ( + PURGE_TXABORT = 0x0001 + PURGE_RXABORT = 0x0002 + PURGE_TXCLEAR = 0x0004 + PURGE_RXCLEAR = 0x0008 +) + +// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. +const ( + EV_RXCHAR = 0x0001 + EV_RXFLAG = 0x0002 + EV_TXEMPTY = 0x0004 + EV_CTS = 0x0008 + EV_DSR = 0x0010 + EV_RLSD = 0x0020 + EV_BREAK = 0x0040 + EV_ERR = 0x0080 + EV_RING = 0x0100 +) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go new file mode 100644 index 0000000..958bcf4 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -0,0 +1,3842 @@ +// 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 + +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. + O_RDONLY = 0x00000 + O_WRONLY = 0x00001 + O_RDWR = 0x00002 + O_CREAT = 0x00040 + O_EXCL = 0x00080 + O_NOCTTY = 0x00100 + O_TRUNC = 0x00200 + O_NONBLOCK = 0x00800 + O_APPEND = 0x00400 + O_SYNC = 0x01000 + O_ASYNC = 0x02000 + O_CLOEXEC = 0x80000 +) + +const ( + // More invented values for signals + SIGHUP = Signal(0x1) + SIGINT = Signal(0x2) + SIGQUIT = Signal(0x3) + SIGILL = Signal(0x4) + SIGTRAP = Signal(0x5) + SIGABRT = Signal(0x6) + SIGBUS = Signal(0x7) + SIGFPE = Signal(0x8) + SIGKILL = Signal(0x9) + SIGSEGV = Signal(0xb) + SIGPIPE = Signal(0xd) + SIGALRM = Signal(0xe) + SIGTERM = Signal(0xf) +) + +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "bus error", + 8: "floating point exception", + 9: "killed", + 10: "user defined signal 1", + 11: "segmentation fault", + 12: "user defined signal 2", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", +} + +const ( + FILE_READ_DATA = 0x00000001 + FILE_READ_ATTRIBUTES = 0x00000080 + FILE_READ_EA = 0x00000008 + FILE_WRITE_DATA = 0x00000002 + FILE_WRITE_ATTRIBUTES = 0x00000100 + FILE_WRITE_EA = 0x00000010 + FILE_APPEND_DATA = 0x00000004 + FILE_EXECUTE = 0x00000020 + + FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE + FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE + FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE + + FILE_LIST_DIRECTORY = 0x00000001 + FILE_TRAVERSE = 0x00000020 + + FILE_SHARE_READ = 0x00000001 + FILE_SHARE_WRITE = 0x00000002 + FILE_SHARE_DELETE = 0x00000004 + + FILE_ATTRIBUTE_READONLY = 0x00000001 + FILE_ATTRIBUTE_HIDDEN = 0x00000002 + FILE_ATTRIBUTE_SYSTEM = 0x00000004 + FILE_ATTRIBUTE_DIRECTORY = 0x00000010 + FILE_ATTRIBUTE_ARCHIVE = 0x00000020 + FILE_ATTRIBUTE_DEVICE = 0x00000040 + FILE_ATTRIBUTE_NORMAL = 0x00000080 + FILE_ATTRIBUTE_TEMPORARY = 0x00000100 + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 + FILE_ATTRIBUTE_COMPRESSED = 0x00000800 + FILE_ATTRIBUTE_OFFLINE = 0x00001000 + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 + FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 + FILE_ATTRIBUTE_VIRTUAL = 0x00010000 + FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 + FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 + FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 + + INVALID_FILE_ATTRIBUTES = 0xffffffff + + CREATE_NEW = 1 + CREATE_ALWAYS = 2 + OPEN_EXISTING = 3 + OPEN_ALWAYS = 4 + TRUNCATE_EXISTING = 5 + + FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 + FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 + FILE_FLAG_OPEN_NO_RECALL = 0x00100000 + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 + FILE_FLAG_SESSION_AWARE = 0x00800000 + FILE_FLAG_POSIX_SEMANTICS = 0x01000000 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 + FILE_FLAG_RANDOM_ACCESS = 0x10000000 + FILE_FLAG_NO_BUFFERING = 0x20000000 + FILE_FLAG_OVERLAPPED = 0x40000000 + FILE_FLAG_WRITE_THROUGH = 0x80000000 + + HANDLE_FLAG_INHERIT = 0x00000001 + STARTF_USESTDHANDLES = 0x00000100 + STARTF_USESHOWWINDOW = 0x00000001 + DUPLICATE_CLOSE_SOURCE = 0x00000001 + DUPLICATE_SAME_ACCESS = 0x00000002 + + STD_INPUT_HANDLE = -10 & (1<<32 - 1) + STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) + STD_ERROR_HANDLE = -12 & (1<<32 - 1) + + FILE_BEGIN = 0 + FILE_CURRENT = 1 + FILE_END = 2 + + LANG_ENGLISH = 0x09 + SUBLANG_ENGLISH_US = 0x01 + + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 + FORMAT_MESSAGE_IGNORE_INSERTS = 512 + FORMAT_MESSAGE_FROM_STRING = 1024 + FORMAT_MESSAGE_FROM_HMODULE = 2048 + FORMAT_MESSAGE_FROM_SYSTEM = 4096 + FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 + FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 + + MAX_PATH = 260 + MAX_LONG_PATH = 32768 + + MAX_MODULE_NAME32 = 255 + + MAX_COMPUTERNAME_LENGTH = 15 + + MAX_DHCPV6_DUID_LENGTH = 130 + + MAX_DNS_SUFFIX_STRING_LENGTH = 256 + + TIME_ZONE_ID_UNKNOWN = 0 + TIME_ZONE_ID_STANDARD = 1 + + TIME_ZONE_ID_DAYLIGHT = 2 + IGNORE = 0 + INFINITE = 0xffffffff + + WAIT_ABANDONED = 0x00000080 + WAIT_OBJECT_0 = 0x00000000 + WAIT_FAILED = 0xFFFFFFFF + + // Access rights for process. + PROCESS_ALL_ACCESS = 0xFFFF + 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_CLOSE_EVENT = 2 + CTRL_LOGOFF_EVENT = 5 + CTRL_SHUTDOWN_EVENT = 6 + + // Windows reserves errors >= 1<<29 for application use. + APPLICATION_ERROR = 1 << 29 +) + +const ( + // Process creation flags. + CREATE_BREAKAWAY_FROM_JOB = 0x01000000 + CREATE_DEFAULT_ERROR_MODE = 0x04000000 + CREATE_NEW_CONSOLE = 0x00000010 + CREATE_NEW_PROCESS_GROUP = 0x00000200 + CREATE_NO_WINDOW = 0x08000000 + CREATE_PROTECTED_PROCESS = 0x00040000 + CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 + CREATE_SEPARATE_WOW_VDM = 0x00000800 + CREATE_SHARED_WOW_VDM = 0x00001000 + CREATE_SUSPENDED = 0x00000004 + CREATE_UNICODE_ENVIRONMENT = 0x00000400 + DEBUG_ONLY_THIS_PROCESS = 0x00000002 + DEBUG_PROCESS = 0x00000001 + DETACHED_PROCESS = 0x00000008 + EXTENDED_STARTUPINFO_PRESENT = 0x00080000 + 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 + PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016 +) + +const ( + // flags for CreateToolhelp32Snapshot + TH32CS_SNAPHEAPLIST = 0x01 + TH32CS_SNAPPROCESS = 0x02 + TH32CS_SNAPTHREAD = 0x04 + TH32CS_SNAPMODULE = 0x08 + TH32CS_SNAPMODULE32 = 0x10 + TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD + TH32CS_INHERIT = 0x80000000 +) + +const ( + // flags for EnumProcessModulesEx + LIST_MODULES_32BIT = 0x01 + LIST_MODULES_64BIT = 0x02 + LIST_MODULES_ALL = 0x03 + LIST_MODULES_DEFAULT = 0x00 +) + +const ( + // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW + FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 + FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 + FILE_NOTIFY_CHANGE_SIZE = 0x008 + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 + FILE_NOTIFY_CHANGE_CREATION = 0x040 + FILE_NOTIFY_CHANGE_SECURITY = 0x100 +) + +const ( + // do not reorder + FILE_ACTION_ADDED = iota + 1 + FILE_ACTION_REMOVED + FILE_ACTION_MODIFIED + FILE_ACTION_RENAMED_OLD_NAME + FILE_ACTION_RENAMED_NEW_NAME +) + +const ( + // wincrypt.h + /* 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 + CRYPT_MACHINE_KEYSET = 0x00000020 + 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 + + /* msgAndCertEncodingType values for CertOpenStore function */ + X509_ASN_ENCODING = 0x00000001 + PKCS_7_ASN_ENCODING = 0x00010000 + + /* storeProvider values for CertOpenStore function */ + CERT_STORE_PROV_MSG = 1 + CERT_STORE_PROV_MEMORY = 2 + CERT_STORE_PROV_FILE = 3 + CERT_STORE_PROV_REG = 4 + CERT_STORE_PROV_PKCS7 = 5 + CERT_STORE_PROV_SERIALIZED = 6 + CERT_STORE_PROV_FILENAME_A = 7 + CERT_STORE_PROV_FILENAME_W = 8 + CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W + CERT_STORE_PROV_SYSTEM_A = 9 + CERT_STORE_PROV_SYSTEM_W = 10 + CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W + CERT_STORE_PROV_COLLECTION = 11 + CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 + CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 + CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W + CERT_STORE_PROV_PHYSICAL_W = 14 + CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W + CERT_STORE_PROV_SMART_CARD_W = 15 + CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W + CERT_STORE_PROV_LDAP_W = 16 + CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W + CERT_STORE_PROV_PKCS12 = 17 + + /* store characteristics (low WORD of flag) for CertOpenStore function */ + CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 + CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 + CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 + CERT_STORE_DELETE_FLAG = 0x00000010 + CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 + CERT_STORE_SHARE_STORE_FLAG = 0x00000040 + CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 + CERT_STORE_MANIFOLD_FLAG = 0x00000100 + CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 + CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 + CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 + CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 + CERT_STORE_CREATE_NEW_FLAG = 0x00002000 + CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 + CERT_STORE_READONLY_FLAG = 0x00008000 + + /* store locations (high WORD of flag) for CertOpenStore function */ + CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 + CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 + CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 + CERT_SYSTEM_STORE_SERVICES = 0x00050000 + CERT_SYSTEM_STORE_USERS = 0x00060000 + CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 + CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 + CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 + + /* Miscellaneous high-WORD flags for CertOpenStore function */ + CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 + CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 + CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 + CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 + CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 + CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 + CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 + CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 + CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 + CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 + CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 + + /* addDisposition values for CertAddCertificateContextToStore function */ + CERT_STORE_ADD_NEW = 1 + CERT_STORE_ADD_USE_EXISTING = 2 + CERT_STORE_ADD_REPLACE_EXISTING = 3 + CERT_STORE_ADD_ALWAYS = 4 + CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 + CERT_STORE_ADD_NEWER = 6 + CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 + + /* ErrorStatus values for CertTrustStatus struct */ + CERT_TRUST_NO_ERROR = 0x00000000 + CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 + CERT_TRUST_IS_REVOKED = 0x00000004 + CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 + CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 + CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 + CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 + CERT_TRUST_IS_CYCLIC = 0x00000080 + CERT_TRUST_INVALID_EXTENSION = 0x00000100 + CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 + CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 + CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 + CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 + CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 + CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 + CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 + CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 + CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 + CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 + CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 + CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 + CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 + CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 + CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 + CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 + + /* InfoStatus values for CertTrustStatus struct */ + CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 + CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 + CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 + CERT_TRUST_IS_SELF_SIGNED = 0x00000008 + CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 + CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 + CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 + CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 + CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 + CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 + 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<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) + CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) + CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) + CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) + CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) + CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) + CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W + CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) + CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) + CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W + CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) + CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) + CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE + CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) + CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) + CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) + CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) + CERT_FIND_CROSS_CERT_DIST_POINTS = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) + CERT_FIND_PUBKEY_MD5_HASH = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_SUBJECT_INFO_ACCESS = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT) + CERT_FIND_HASH_STR = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT) + CERT_FIND_HAS_PRIVATE_KEY = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT) + CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1 + CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2 + CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4 + CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8 + CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10 + CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20 + CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG + CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG + CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG + CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG + CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG + CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG + + /* policyOID values for CertVerifyCertificateChainPolicy function */ + CERT_CHAIN_POLICY_BASE = 1 + CERT_CHAIN_POLICY_AUTHENTICODE = 2 + CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3 + CERT_CHAIN_POLICY_SSL = 4 + CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5 + CERT_CHAIN_POLICY_NT_AUTH = 6 + CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7 + CERT_CHAIN_POLICY_EV = 8 + CERT_CHAIN_POLICY_SSL_F12 = 9 + + /* flag for dwFindType CertFindChainInStore */ + CERT_CHAIN_FIND_BY_ISSUER = 1 + + /* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */ + CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001 + CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002 + CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004 + CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008 + CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000 + CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000 + + /* Certificate Store close flags */ + CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001 + CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002 + + /* CryptQueryObject object type */ + CERT_QUERY_OBJECT_FILE = 1 + CERT_QUERY_OBJECT_BLOB = 2 + + /* CryptQueryObject content type flags */ + CERT_QUERY_CONTENT_CERT = 1 + CERT_QUERY_CONTENT_CTL = 2 + CERT_QUERY_CONTENT_CRL = 3 + CERT_QUERY_CONTENT_SERIALIZED_STORE = 4 + CERT_QUERY_CONTENT_SERIALIZED_CERT = 5 + CERT_QUERY_CONTENT_SERIALIZED_CTL = 6 + CERT_QUERY_CONTENT_SERIALIZED_CRL = 7 + CERT_QUERY_CONTENT_PKCS7_SIGNED = 8 + CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9 + CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10 + CERT_QUERY_CONTENT_PKCS10 = 11 + CERT_QUERY_CONTENT_PFX = 12 + CERT_QUERY_CONTENT_CERT_PAIR = 13 + CERT_QUERY_CONTENT_PFX_AND_LOAD = 14 + CERT_QUERY_CONTENT_FLAG_CERT = (1 << CERT_QUERY_CONTENT_CERT) + CERT_QUERY_CONTENT_FLAG_CTL = (1 << CERT_QUERY_CONTENT_CTL) + CERT_QUERY_CONTENT_FLAG_CRL = (1 << CERT_QUERY_CONTENT_CRL) + CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) + CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) + CERT_QUERY_CONTENT_FLAG_PKCS10 = (1 << CERT_QUERY_CONTENT_PKCS10) + CERT_QUERY_CONTENT_FLAG_PFX = (1 << CERT_QUERY_CONTENT_PFX) + CERT_QUERY_CONTENT_FLAG_CERT_PAIR = (1 << CERT_QUERY_CONTENT_CERT_PAIR) + CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD) + CERT_QUERY_CONTENT_FLAG_ALL = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR) + CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED) + + /* CryptQueryObject format type flags */ + CERT_QUERY_FORMAT_BINARY = 1 + CERT_QUERY_FORMAT_BASE64_ENCODED = 2 + CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3 + CERT_QUERY_FORMAT_FLAG_BINARY = (1 << CERT_QUERY_FORMAT_BINARY) + CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED) + CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) + CERT_QUERY_FORMAT_FLAG_ALL = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED) + + /* CertGetNameString name types */ + CERT_NAME_EMAIL_TYPE = 1 + CERT_NAME_RDN_TYPE = 2 + CERT_NAME_ATTR_TYPE = 3 + CERT_NAME_SIMPLE_DISPLAY_TYPE = 4 + CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5 + CERT_NAME_DNS_TYPE = 6 + CERT_NAME_URL_TYPE = 7 + CERT_NAME_UPN_TYPE = 8 + + /* CertGetNameString flags */ + CERT_NAME_ISSUER_FLAG = 0x1 + CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x10000 + CERT_NAME_SEARCH_ALL_NAMES_FLAG = 0x2 + CERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000 + + /* AuthType values for SSLExtraCertChainPolicyPara struct */ + AUTHTYPE_CLIENT = 1 + AUTHTYPE_SERVER = 2 + + /* Checks values for SSLExtraCertChainPolicyPara struct */ + SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080 + SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 + SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200 + SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 + SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 + + /* Flags for Crypt[Un]ProtectData */ + CRYPTPROTECT_UI_FORBIDDEN = 0x1 + CRYPTPROTECT_LOCAL_MACHINE = 0x4 + CRYPTPROTECT_CRED_SYNC = 0x8 + CRYPTPROTECT_AUDIT = 0x10 + CRYPTPROTECT_NO_RECOVERY = 0x20 + CRYPTPROTECT_VERIFY_PROTECTION = 0x40 + CRYPTPROTECT_CRED_REGENERATE = 0x80 + + /* Flags for CryptProtectPromptStruct */ + CRYPTPROTECT_PROMPT_ON_UNPROTECT = 1 + CRYPTPROTECT_PROMPT_ON_PROTECT = 2 + CRYPTPROTECT_PROMPT_RESERVED = 4 + CRYPTPROTECT_PROMPT_STRONG = 8 + CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16 +) + +const ( + // flags for SetErrorMode + SEM_FAILCRITICALERRORS = 0x0001 + SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 + SEM_NOGPFAULTERRORBOX = 0x0002 + SEM_NOOPENFILEERRORBOX = 0x8000 +) + +const ( + // Priority class. + ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 + BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 + HIGH_PRIORITY_CLASS = 0x00000080 + IDLE_PRIORITY_CLASS = 0x00000040 + NORMAL_PRIORITY_CLASS = 0x00000020 + PROCESS_MODE_BACKGROUND_BEGIN = 0x00100000 + PROCESS_MODE_BACKGROUND_END = 0x00200000 + REALTIME_PRIORITY_CLASS = 0x00000100 +) + +/* wintrust.h constants for WinVerifyTrustEx */ +const ( + WTD_UI_ALL = 1 + WTD_UI_NONE = 2 + WTD_UI_NOBAD = 3 + WTD_UI_NOGOOD = 4 + + WTD_REVOKE_NONE = 0 + WTD_REVOKE_WHOLECHAIN = 1 + + WTD_CHOICE_FILE = 1 + WTD_CHOICE_CATALOG = 2 + WTD_CHOICE_BLOB = 3 + WTD_CHOICE_SIGNER = 4 + WTD_CHOICE_CERT = 5 + + WTD_STATEACTION_IGNORE = 0x00000000 + WTD_STATEACTION_VERIFY = 0x00000001 + WTD_STATEACTION_CLOSE = 0x00000002 + WTD_STATEACTION_AUTO_CACHE = 0x00000003 + WTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004 + + WTD_USE_IE4_TRUST_FLAG = 0x1 + WTD_NO_IE4_CHAIN_FLAG = 0x2 + WTD_NO_POLICY_USAGE_FLAG = 0x4 + WTD_REVOCATION_CHECK_NONE = 0x10 + WTD_REVOCATION_CHECK_END_CERT = 0x20 + WTD_REVOCATION_CHECK_CHAIN = 0x40 + WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80 + WTD_SAFER_FLAG = 0x100 + WTD_HASH_ONLY_FLAG = 0x200 + WTD_USE_DEFAULT_OSVER_CHECK = 0x400 + WTD_LIFETIME_SIGNING_FLAG = 0x800 + WTD_CACHE_ONLY_URL_RETRIEVAL = 0x1000 + WTD_DISABLE_MD2_MD4 = 0x2000 + WTD_MOTW = 0x4000 + + WTD_UICONTEXT_EXECUTE = 0 + WTD_UICONTEXT_INSTALL = 1 +) + +var ( + OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00") + OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00") + OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00") + + WINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{ + Data1: 0xaac56b, + Data2: 0xcd44, + Data3: 0x11d0, + Data4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee}, + } +) + +// Pointer represents a pointer to an arbitrary Windows type. +// +// Pointer-typed fields may point to one of many different types. It's +// up to the caller to provide a pointer to the appropriate type, cast +// to Pointer. The caller must obey the unsafe.Pointer rules while +// doing so. +type Pointer *struct{} + +// Invented values to support what package os expects. +type Timeval struct { + Sec int32 + Usec int32 +} + +func (tv *Timeval) Nanoseconds() int64 { + return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3 +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + tv.Sec = int32(nsec / 1e9) + tv.Usec = int32(nsec % 1e9 / 1e3) + return +} + +type Overlapped struct { + Internal uintptr + InternalHigh uintptr + Offset uint32 + OffsetHigh uint32 + HEvent Handle +} + +type FileNotifyInformation struct { + NextEntryOffset uint32 + Action uint32 + FileNameLength uint32 + FileName uint16 +} + +type Filetime struct { + LowDateTime uint32 + HighDateTime uint32 +} + +// Nanoseconds returns Filetime ft in nanoseconds +// since Epoch (00:00:00 UTC, January 1, 1970). +func (ft *Filetime) Nanoseconds() int64 { + // 100-nanosecond intervals since January 1, 1601 + nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime) + // change starting time to the Epoch (00:00:00 UTC, January 1, 1970) + nsec -= 116444736000000000 + // convert into nanoseconds + nsec *= 100 + return nsec +} + +func NsecToFiletime(nsec int64) (ft Filetime) { + // convert into 100-nanosecond + nsec /= 100 + // change starting time to January 1, 1601 + nsec += 116444736000000000 + // split into high / low + ft.LowDateTime = uint32(nsec & 0xffffffff) + ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff) + return ft +} + +type Win32finddata struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH - 1]uint16 + AlternateFileName [13]uint16 +} + +// This is the actual system call structure. +// Win32finddata is what we committed to in Go 1. +type win32finddata1 struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH]uint16 + AlternateFileName [14]uint16 + + // The Microsoft documentation for this struct¹ describes three additional + // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields + // are empirically only present in the macOS port of the Win32 API,² and thus + // not needed for binaries built for Windows. + // + // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe + // ² https://golang.org/issue/42637#issuecomment-760715755. +} + +func copyFindData(dst *Win32finddata, src *win32finddata1) { + dst.FileAttributes = src.FileAttributes + dst.CreationTime = src.CreationTime + dst.LastAccessTime = src.LastAccessTime + dst.LastWriteTime = src.LastWriteTime + dst.FileSizeHigh = src.FileSizeHigh + dst.FileSizeLow = src.FileSizeLow + dst.Reserved0 = src.Reserved0 + dst.Reserved1 = src.Reserved1 + + // The src is 1 element bigger than dst, but it must be NUL. + copy(dst.FileName[:], src.FileName[:]) + copy(dst.AlternateFileName[:], src.AlternateFileName[:]) +} + +type ByHandleFileInformation struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + VolumeSerialNumber uint32 + FileSizeHigh uint32 + FileSizeLow uint32 + NumberOfLinks uint32 + FileIndexHigh uint32 + FileIndexLow uint32 +} + +const ( + GetFileExInfoStandard = 0 + GetFileExMaxInfoLevel = 1 +) + +type Win32FileAttributeData struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 +} + +// ShowWindow constants +const ( + // winuser.h + SW_HIDE = 0 + SW_NORMAL = 1 + SW_SHOWNORMAL = 1 + SW_SHOWMINIMIZED = 2 + SW_SHOWMAXIMIZED = 3 + SW_MAXIMIZE = 3 + SW_SHOWNOACTIVATE = 4 + SW_SHOW = 5 + SW_MINIMIZE = 6 + SW_SHOWMINNOACTIVE = 7 + SW_SHOWNA = 8 + SW_RESTORE = 9 + SW_SHOWDEFAULT = 10 + SW_FORCEMINIMIZE = 11 +) + +type StartupInfo struct { + Cb uint32 + _ *uint16 + Desktop *uint16 + Title *uint16 + X uint32 + Y uint32 + XSize uint32 + YSize uint32 + XCountChars uint32 + YCountChars uint32 + FillAttribute uint32 + Flags uint32 + ShowWindow uint16 + _ uint16 + _ *byte + StdInput Handle + StdOutput Handle + StdErr Handle +} + +type StartupInfoEx struct { + StartupInfo + ProcThreadAttributeList *ProcThreadAttributeList +} + +// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. +// +// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update +// it with ProcThreadAttributeListContainer.Update, free its memory using +// ProcThreadAttributeListContainer.Delete, and access the list itself using +// ProcThreadAttributeListContainer.List. +type ProcThreadAttributeList struct{} + +type ProcThreadAttributeListContainer struct { + data *ProcThreadAttributeList + pointers []unsafe.Pointer +} + +type ProcessInformation struct { + Process Handle + Thread Handle + ProcessId uint32 + ThreadId uint32 +} + +type ProcessEntry32 struct { + Size uint32 + Usage uint32 + ProcessID uint32 + DefaultHeapID uintptr + ModuleID uint32 + Threads uint32 + ParentProcessID uint32 + PriClassBase int32 + Flags uint32 + ExeFile [MAX_PATH]uint16 +} + +type ThreadEntry32 struct { + Size uint32 + Usage uint32 + ThreadID uint32 + OwnerProcessID uint32 + BasePri int32 + DeltaPri int32 + Flags uint32 +} + +type ModuleEntry32 struct { + Size uint32 + ModuleID uint32 + ProcessID uint32 + GlblcntUsage uint32 + ProccntUsage uint32 + ModBaseAddr uintptr + ModBaseSize uint32 + ModuleHandle Handle + Module [MAX_MODULE_NAME32 + 1]uint16 + ExePath [MAX_PATH]uint16 +} + +const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) + +type Systemtime struct { + Year uint16 + Month uint16 + DayOfWeek uint16 + Day uint16 + Hour uint16 + Minute uint16 + Second uint16 + Milliseconds uint16 +} + +type Timezoneinformation struct { + Bias int32 + StandardName [32]uint16 + StandardDate Systemtime + StandardBias int32 + DaylightName [32]uint16 + DaylightDate Systemtime + DaylightBias int32 +} + +// Socket related. + +const ( + AF_UNSPEC = 0 + AF_UNIX = 1 + AF_INET = 2 + AF_NETBIOS = 17 + AF_INET6 = 23 + AF_IRDA = 26 + AF_BTH = 32 + + SOCK_STREAM = 1 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + + IPPROTO_IP = 0 + IPPROTO_ICMP = 1 + IPPROTO_IGMP = 2 + BTHPROTO_RFCOMM = 3 + IPPROTO_TCP = 6 + IPPROTO_UDP = 17 + IPPROTO_IPV6 = 41 + IPPROTO_ICMPV6 = 58 + IPPROTO_RM = 113 + + SOL_SOCKET = 0xffff + SO_REUSEADDR = 4 + SO_KEEPALIVE = 8 + SO_DONTROUTE = 16 + SO_BROADCAST = 32 + SO_LINGER = 128 + SO_RCVBUF = 0x1002 + SO_RCVTIMEO = 0x1006 + SO_SNDBUF = 0x1001 + SO_UPDATE_ACCEPT_CONTEXT = 0x700b + SO_UPDATE_CONNECT_CONTEXT = 0x7010 + + IOC_OUT = 0x40000000 + IOC_IN = 0x80000000 + IOC_VENDOR = 0x18000000 + IOC_INOUT = IOC_IN | IOC_OUT + IOC_WS2 = 0x08000000 + SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 + SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 + SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 + SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 + + // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 + + IP_HDRINCL = 0x2 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_LOOP = 0xb + IP_ADD_MEMBERSHIP = 0xc + IP_DROP_MEMBERSHIP = 0xd + IP_PKTINFO = 0x13 + IP_MTU_DISCOVER = 0x47 + + IPV6_V6ONLY = 0x1b + IPV6_UNICAST_HOPS = 0x4 + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_LOOP = 0xb + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_PKTINFO = 0x13 + IPV6_MTU_DISCOVER = 0x47 + + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_DONTROUTE = 0x4 + MSG_WAITALL = 0x8 + + MSG_TRUNC = 0x0100 + MSG_CTRUNC = 0x0200 + MSG_BCAST = 0x0400 + MSG_MCAST = 0x0800 + + SOMAXCONN = 0x7fffffff + + TCP_NODELAY = 1 + TCP_EXPEDITED_1122 = 2 + TCP_KEEPALIVE = 3 + TCP_MAXSEG = 4 + TCP_MAXRT = 5 + TCP_STDURG = 6 + TCP_NOURG = 7 + TCP_ATMARK = 8 + TCP_NOSYNRETRIES = 9 + TCP_TIMESTAMPS = 10 + TCP_OFFLOAD_PREFERENCE = 11 + TCP_CONGESTION_ALGORITHM = 12 + TCP_DELAY_FIN_ACK = 13 + TCP_MAXRTMS = 14 + TCP_FASTOPEN = 15 + TCP_KEEPCNT = 16 + TCP_KEEPIDLE = TCP_KEEPALIVE + TCP_KEEPINTVL = 17 + TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18 + TCP_ICMP_ERROR_INFO = 19 + + UDP_NOCHECKSUM = 1 + UDP_SEND_MSG_SIZE = 2 + UDP_RECV_MAX_COALESCED_SIZE = 3 + UDP_CHECKSUM_COVERAGE = 20 + + UDP_COALESCED_INFO = 3 + + SHUT_RD = 0 + SHUT_WR = 1 + SHUT_RDWR = 2 + + WSADESCRIPTION_LEN = 256 + WSASYS_STATUS_LEN = 128 +) + +// enum PMTUD_STATE from ws2ipdef.h +const ( + IP_PMTUDISC_NOT_SET = 0 + IP_PMTUDISC_DO = 1 + IP_PMTUDISC_DONT = 2 + IP_PMTUDISC_PROBE = 3 + IP_PMTUDISC_MAX = 4 +) + +type WSABuf struct { + Len uint32 + Buf *byte +} + +type WSAMsg struct { + Name *syscall.RawSockaddrAny + Namelen int32 + Buffers *WSABuf + BufferCount uint32 + Control WSABuf + Flags uint32 +} + +type WSACMSGHDR struct { + Len uintptr + Level int32 + Type int32 +} + +type IN_PKTINFO struct { + Addr [4]byte + Ifindex uint32 +} + +type IN6_PKTINFO struct { + Addr [16]byte + Ifindex uint32 +} + +// Flags for WSASocket +const ( + WSA_FLAG_OVERLAPPED = 0x01 + WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 + WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 + WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 + WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 + WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 + WSA_FLAG_NO_HANDLE_INHERIT = 0x80 + WSA_FLAG_REGISTERED_IO = 0x100 +) + +// Invented values to support what package os expects. +const ( + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXUSR = 0x40 +) + +const ( + FILE_TYPE_CHAR = 0x0002 + FILE_TYPE_DISK = 0x0001 + FILE_TYPE_PIPE = 0x0003 + FILE_TYPE_REMOTE = 0x8000 + FILE_TYPE_UNKNOWN = 0x0000 +) + +type Hostent struct { + Name *byte + Aliases **byte + AddrType uint16 + Length uint16 + AddrList **byte +} + +type Protoent struct { + Name *byte + Aliases **byte + Proto uint16 +} + +const ( + DNS_TYPE_A = 0x0001 + DNS_TYPE_NS = 0x0002 + DNS_TYPE_MD = 0x0003 + DNS_TYPE_MF = 0x0004 + DNS_TYPE_CNAME = 0x0005 + DNS_TYPE_SOA = 0x0006 + DNS_TYPE_MB = 0x0007 + DNS_TYPE_MG = 0x0008 + DNS_TYPE_MR = 0x0009 + DNS_TYPE_NULL = 0x000a + DNS_TYPE_WKS = 0x000b + DNS_TYPE_PTR = 0x000c + DNS_TYPE_HINFO = 0x000d + DNS_TYPE_MINFO = 0x000e + DNS_TYPE_MX = 0x000f + DNS_TYPE_TEXT = 0x0010 + DNS_TYPE_RP = 0x0011 + DNS_TYPE_AFSDB = 0x0012 + DNS_TYPE_X25 = 0x0013 + DNS_TYPE_ISDN = 0x0014 + DNS_TYPE_RT = 0x0015 + DNS_TYPE_NSAP = 0x0016 + DNS_TYPE_NSAPPTR = 0x0017 + DNS_TYPE_SIG = 0x0018 + DNS_TYPE_KEY = 0x0019 + DNS_TYPE_PX = 0x001a + DNS_TYPE_GPOS = 0x001b + DNS_TYPE_AAAA = 0x001c + DNS_TYPE_LOC = 0x001d + DNS_TYPE_NXT = 0x001e + DNS_TYPE_EID = 0x001f + DNS_TYPE_NIMLOC = 0x0020 + DNS_TYPE_SRV = 0x0021 + DNS_TYPE_ATMA = 0x0022 + DNS_TYPE_NAPTR = 0x0023 + DNS_TYPE_KX = 0x0024 + DNS_TYPE_CERT = 0x0025 + DNS_TYPE_A6 = 0x0026 + DNS_TYPE_DNAME = 0x0027 + DNS_TYPE_SINK = 0x0028 + DNS_TYPE_OPT = 0x0029 + DNS_TYPE_DS = 0x002B + DNS_TYPE_RRSIG = 0x002E + DNS_TYPE_NSEC = 0x002F + DNS_TYPE_DNSKEY = 0x0030 + DNS_TYPE_DHCID = 0x0031 + DNS_TYPE_UINFO = 0x0064 + DNS_TYPE_UID = 0x0065 + DNS_TYPE_GID = 0x0066 + DNS_TYPE_UNSPEC = 0x0067 + DNS_TYPE_ADDRS = 0x00f8 + DNS_TYPE_TKEY = 0x00f9 + DNS_TYPE_TSIG = 0x00fa + DNS_TYPE_IXFR = 0x00fb + DNS_TYPE_AXFR = 0x00fc + DNS_TYPE_MAILB = 0x00fd + DNS_TYPE_MAILA = 0x00fe + DNS_TYPE_ALL = 0x00ff + DNS_TYPE_ANY = 0x00ff + DNS_TYPE_WINS = 0xff01 + DNS_TYPE_WINSR = 0xff02 + DNS_TYPE_NBSTAT = 0xff01 +) + +const ( + // flags inside DNSRecord.Dw + DnsSectionQuestion = 0x0000 + DnsSectionAnswer = 0x0001 + DnsSectionAuthority = 0x0002 + DnsSectionAdditional = 0x0003 +) + +const ( + // flags of WSALookupService + LUP_DEEP = 0x0001 + LUP_CONTAINERS = 0x0002 + LUP_NOCONTAINERS = 0x0004 + LUP_NEAREST = 0x0008 + LUP_RETURN_NAME = 0x0010 + LUP_RETURN_TYPE = 0x0020 + LUP_RETURN_VERSION = 0x0040 + LUP_RETURN_COMMENT = 0x0080 + LUP_RETURN_ADDR = 0x0100 + LUP_RETURN_BLOB = 0x0200 + LUP_RETURN_ALIASES = 0x0400 + LUP_RETURN_QUERY_STRING = 0x0800 + LUP_RETURN_ALL = 0x0FF0 + LUP_RES_SERVICE = 0x8000 + + LUP_FLUSHCACHE = 0x1000 + LUP_FLUSHPREVIOUS = 0x2000 + + LUP_NON_AUTHORITATIVE = 0x4000 + LUP_SECURE = 0x8000 + LUP_RETURN_PREFERRED_NAMES = 0x10000 + LUP_DNS_ONLY = 0x20000 + + LUP_ADDRCONFIG = 0x100000 + LUP_DUAL_ADDR = 0x200000 + LUP_FILESERVER = 0x400000 + LUP_DISABLE_IDN_ENCODING = 0x00800000 + LUP_API_ANSI = 0x01000000 + + LUP_RESOLUTION_HANDLE = 0x80000000 +) + +const ( + // values of WSAQUERYSET's namespace + NS_ALL = 0 + NS_DNS = 12 + NS_NLA = 15 + NS_BTH = 16 + NS_EMAIL = 37 + NS_PNRPNAME = 38 + NS_PNRPCLOUD = 39 +) + +type DNSSRVData struct { + Target *uint16 + Priority uint16 + Weight uint16 + Port uint16 + Pad uint16 +} + +type DNSPTRData struct { + Host *uint16 +} + +type DNSMXData struct { + NameExchange *uint16 + Preference uint16 + Pad uint16 +} + +type DNSTXTData struct { + StringCount uint16 + StringArray [1]*uint16 +} + +type DNSRecord struct { + Next *DNSRecord + Name *uint16 + Type uint16 + Length uint16 + Dw uint32 + Ttl uint32 + Reserved uint32 + Data [40]byte +} + +const ( + TF_DISCONNECT = 1 + TF_REUSE_SOCKET = 2 + TF_WRITE_BEHIND = 4 + TF_USE_DEFAULT_WORKER = 0 + TF_USE_SYSTEM_THREAD = 16 + TF_USE_KERNEL_APC = 32 +) + +type TransmitFileBuffers struct { + Head uintptr + HeadLength uint32 + Tail uintptr + TailLength uint32 +} + +const ( + IFF_UP = 1 + IFF_BROADCAST = 2 + IFF_LOOPBACK = 4 + IFF_POINTTOPOINT = 8 + IFF_MULTICAST = 16 +) + +const SIO_GET_INTERFACE_LIST = 0x4004747F + +// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. +// will be fixed to change variable type as suitable. + +type SockaddrGen [24]byte + +type InterfaceInfo struct { + Flags uint32 + Address SockaddrGen + BroadcastAddress SockaddrGen + Netmask SockaddrGen +} + +type IpAddressString struct { + String [16]byte +} + +type IpMaskString IpAddressString + +type IpAddrString struct { + Next *IpAddrString + IpAddress IpAddressString + IpMask IpMaskString + Context uint32 +} + +const MAX_ADAPTER_NAME_LENGTH = 256 +const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 +const MAX_ADAPTER_ADDRESS_LENGTH = 8 + +type IpAdapterInfo struct { + Next *IpAdapterInfo + ComboIndex uint32 + AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte + Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte + AddressLength uint32 + Address [MAX_ADAPTER_ADDRESS_LENGTH]byte + Index uint32 + Type uint32 + DhcpEnabled uint32 + CurrentIpAddress *IpAddrString + IpAddressList IpAddrString + GatewayList IpAddrString + DhcpServer IpAddrString + HaveWins bool + PrimaryWinsServer IpAddrString + SecondaryWinsServer IpAddrString + LeaseObtained int64 + LeaseExpires int64 +} + +const MAXLEN_PHYSADDR = 8 +const MAX_INTERFACE_NAME_LEN = 256 +const MAXLEN_IFDESCR = 256 + +type MibIfRow struct { + Name [MAX_INTERFACE_NAME_LEN]uint16 + Index uint32 + Type uint32 + Mtu uint32 + Speed uint32 + PhysAddrLen uint32 + PhysAddr [MAXLEN_PHYSADDR]byte + AdminStatus uint32 + OperStatus uint32 + LastChange uint32 + InOctets uint32 + InUcastPkts uint32 + InNUcastPkts uint32 + InDiscards uint32 + InErrors uint32 + InUnknownProtos uint32 + OutOctets uint32 + OutUcastPkts uint32 + OutNUcastPkts uint32 + OutDiscards uint32 + OutErrors uint32 + OutQLen uint32 + DescrLen uint32 + Descr [MAXLEN_IFDESCR]byte +} + +type CertInfo struct { + Version uint32 + SerialNumber CryptIntegerBlob + SignatureAlgorithm CryptAlgorithmIdentifier + Issuer CertNameBlob + NotBefore Filetime + NotAfter Filetime + Subject CertNameBlob + SubjectPublicKeyInfo CertPublicKeyInfo + IssuerUniqueId CryptBitBlob + SubjectUniqueId CryptBitBlob + CountExtensions uint32 + Extensions *CertExtension +} + +type CertExtension struct { + ObjId *byte + Critical int32 + Value CryptObjidBlob +} + +type CryptAlgorithmIdentifier struct { + ObjId *byte + Parameters CryptObjidBlob +} + +type CertPublicKeyInfo struct { + Algorithm CryptAlgorithmIdentifier + PublicKey CryptBitBlob +} + +type DataBlob struct { + Size uint32 + Data *byte +} +type CryptIntegerBlob DataBlob +type CryptUintBlob DataBlob +type CryptObjidBlob DataBlob +type CertNameBlob DataBlob +type CertRdnValueBlob DataBlob +type CertBlob DataBlob +type CrlBlob DataBlob +type CryptDataBlob DataBlob +type CryptHashBlob DataBlob +type CryptDigestBlob DataBlob +type CryptDerBlob DataBlob +type CryptAttrBlob DataBlob + +type CryptBitBlob struct { + Size uint32 + Data *byte + UnusedBits uint32 +} + +type CertContext struct { + EncodingType uint32 + EncodedCert *byte + Length uint32 + CertInfo *CertInfo + Store Handle +} + +type CertChainContext struct { + Size uint32 + TrustStatus CertTrustStatus + ChainCount uint32 + Chains **CertSimpleChain + LowerQualityChainCount uint32 + LowerQualityChains **CertChainContext + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertTrustListInfo struct { + // Not implemented +} + +type CertSimpleChain struct { + Size uint32 + TrustStatus CertTrustStatus + NumElements uint32 + Elements **CertChainElement + TrustListInfo *CertTrustListInfo + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertChainElement struct { + Size uint32 + CertContext *CertContext + TrustStatus CertTrustStatus + RevocationInfo *CertRevocationInfo + IssuanceUsage *CertEnhKeyUsage + ApplicationUsage *CertEnhKeyUsage + ExtendedErrorInfo *uint16 +} + +type CertRevocationCrlInfo struct { + // Not implemented +} + +type CertRevocationInfo struct { + Size uint32 + RevocationResult uint32 + RevocationOid *byte + OidSpecificInfo Pointer + HasFreshnessTime uint32 + FreshnessTime uint32 + CrlInfo *CertRevocationCrlInfo +} + +type CertTrustStatus struct { + ErrorStatus uint32 + InfoStatus uint32 +} + +type CertUsageMatch struct { + Type uint32 + Usage CertEnhKeyUsage +} + +type CertEnhKeyUsage struct { + Length uint32 + UsageIdentifiers **byte +} + +type CertChainPara struct { + Size uint32 + RequestedUsage CertUsageMatch + RequstedIssuancePolicy CertUsageMatch + URLRetrievalTimeout uint32 + CheckRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 + CacheResync *Filetime +} + +type CertChainPolicyPara struct { + Size uint32 + Flags uint32 + ExtraPolicyPara Pointer +} + +type SSLExtraCertChainPolicyPara struct { + Size uint32 + AuthType uint32 + Checks uint32 + ServerName *uint16 +} + +type CertChainPolicyStatus struct { + Size uint32 + Error uint32 + ChainIndex uint32 + ElementIndex uint32 + ExtraPolicyStatus Pointer +} + +type CertPolicyInfo struct { + Identifier *byte + CountQualifiers uint32 + Qualifiers *CertPolicyQualifierInfo +} + +type CertPoliciesInfo struct { + Count uint32 + PolicyInfos *CertPolicyInfo +} + +type CertPolicyQualifierInfo struct { + // Not implemented +} + +type CertStrongSignPara struct { + Size uint32 + InfoChoice uint32 + InfoOrSerializedInfoOrOID unsafe.Pointer +} + +type CryptProtectPromptStruct struct { + Size uint32 + PromptFlags uint32 + App HWND + Prompt *uint16 +} + +type CertChainFindByIssuerPara struct { + Size uint32 + UsageIdentifier *byte + KeySpec uint32 + AcquirePrivateKeyFlags uint32 + IssuerCount uint32 + Issuer Pointer + FindCallback Pointer + FindArg Pointer + IssuerChainIndex *uint32 + IssuerElementIndex *uint32 +} + +type WinTrustData struct { + Size uint32 + PolicyCallbackData uintptr + SIPClientData uintptr + UIChoice uint32 + RevocationChecks uint32 + UnionChoice uint32 + FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer + StateAction uint32 + StateData Handle + URLReference *uint16 + ProvFlags uint32 + UIContext uint32 + SignatureSettings *WinTrustSignatureSettings +} + +type WinTrustFileInfo struct { + Size uint32 + FilePath *uint16 + File Handle + KnownSubject *GUID +} + +type WinTrustSignatureSettings struct { + Size uint32 + Index uint32 + Flags uint32 + SecondarySigs uint32 + VerifiedSigIndex uint32 + CryptoPolicy *CertStrongSignPara +} + +const ( + // do not reorder + HKEY_CLASSES_ROOT = 0x80000000 + iota + HKEY_CURRENT_USER + HKEY_LOCAL_MACHINE + HKEY_USERS + HKEY_PERFORMANCE_DATA + HKEY_CURRENT_CONFIG + HKEY_DYN_DATA + + KEY_QUERY_VALUE = 1 + KEY_SET_VALUE = 2 + KEY_CREATE_SUB_KEY = 4 + KEY_ENUMERATE_SUB_KEYS = 8 + KEY_NOTIFY = 16 + KEY_CREATE_LINK = 32 + KEY_WRITE = 0x20006 + KEY_EXECUTE = 0x20019 + KEY_READ = 0x20019 + KEY_WOW64_64KEY = 0x0100 + KEY_WOW64_32KEY = 0x0200 + KEY_ALL_ACCESS = 0xf003f +) + +const ( + // do not reorder + REG_NONE = iota + REG_SZ + REG_EXPAND_SZ + REG_BINARY + REG_DWORD_LITTLE_ENDIAN + REG_DWORD_BIG_ENDIAN + REG_LINK + REG_MULTI_SZ + REG_RESOURCE_LIST + REG_FULL_RESOURCE_DESCRIPTOR + REG_RESOURCE_REQUIREMENTS_LIST + REG_QWORD_LITTLE_ENDIAN + REG_DWORD = REG_DWORD_LITTLE_ENDIAN + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +) + +const ( + EVENT_MODIFY_STATE = 0x0002 + EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + MUTANT_QUERY_STATE = 0x0001 + MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE + + SEMAPHORE_MODIFY_STATE = 0x0002 + SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + TIMER_QUERY_STATE = 0x0001 + TIMER_MODIFY_STATE = 0x0002 + TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE + + MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE + MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS + + CREATE_EVENT_MANUAL_RESET = 0x1 + CREATE_EVENT_INITIAL_SET = 0x2 + CREATE_MUTEX_INITIAL_OWNER = 0x1 +) + +type AddrinfoW struct { + Flags int32 + Family int32 + Socktype int32 + Protocol int32 + Addrlen uintptr + Canonname *uint16 + Addr uintptr + Next *AddrinfoW +} + +const ( + AI_PASSIVE = 1 + AI_CANONNAME = 2 + AI_NUMERICHOST = 4 +) + +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +var WSAID_CONNECTEX = GUID{ + 0x25a207b9, + 0xddf3, + 0x4660, + [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, +} + +var WSAID_WSASENDMSG = GUID{ + 0xa441e712, + 0x754f, + 0x43ca, + [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, +} + +var WSAID_WSARECVMSG = GUID{ + 0xf689d7c8, + 0x6f1f, + 0x436b, + [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, +} + +const ( + FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 + FILE_SKIP_SET_EVENT_ON_HANDLE = 2 +) + +const ( + WSAPROTOCOL_LEN = 255 + MAX_PROTOCOL_CHAIN = 7 + BASE_PROTOCOL = 1 + LAYERED_PROTOCOL = 0 + + XP1_CONNECTIONLESS = 0x00000001 + XP1_GUARANTEED_DELIVERY = 0x00000002 + XP1_GUARANTEED_ORDER = 0x00000004 + XP1_MESSAGE_ORIENTED = 0x00000008 + XP1_PSEUDO_STREAM = 0x00000010 + XP1_GRACEFUL_CLOSE = 0x00000020 + XP1_EXPEDITED_DATA = 0x00000040 + XP1_CONNECT_DATA = 0x00000080 + XP1_DISCONNECT_DATA = 0x00000100 + XP1_SUPPORT_BROADCAST = 0x00000200 + XP1_SUPPORT_MULTIPOINT = 0x00000400 + XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 + XP1_MULTIPOINT_DATA_PLANE = 0x00001000 + XP1_QOS_SUPPORTED = 0x00002000 + XP1_UNI_SEND = 0x00008000 + XP1_UNI_RECV = 0x00010000 + XP1_IFS_HANDLES = 0x00020000 + XP1_PARTIAL_MESSAGE = 0x00040000 + XP1_SAN_SUPPORT_SDP = 0x00080000 + + PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 + PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 + PFL_HIDDEN = 0x00000004 + PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 + PFL_NETWORKDIRECT_PROVIDER = 0x00000010 +) + +type WSAProtocolInfo struct { + ServiceFlags1 uint32 + ServiceFlags2 uint32 + ServiceFlags3 uint32 + ServiceFlags4 uint32 + ProviderFlags uint32 + ProviderId GUID + CatalogEntryId uint32 + ProtocolChain WSAProtocolChain + Version int32 + AddressFamily int32 + MaxSockAddr int32 + MinSockAddr int32 + SocketType int32 + Protocol int32 + ProtocolMaxOffset int32 + NetworkByteOrder int32 + SecurityScheme int32 + MessageSize uint32 + ProviderReserved uint32 + ProtocolName [WSAPROTOCOL_LEN + 1]uint16 +} + +type WSAProtocolChain struct { + ChainLen int32 + ChainEntries [MAX_PROTOCOL_CHAIN]uint32 +} + +type TCPKeepalive struct { + OnOff uint32 + Time uint32 + Interval uint32 +} + +type symbolicLinkReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + Flags uint32 + PathBuffer [1]uint16 +} + +type mountPointReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + PathBuffer [1]uint16 +} + +type reparseDataBuffer struct { + ReparseTag uint32 + ReparseDataLength uint16 + Reserved uint16 + + // GenericReparseBuffer + reparseBuffer byte +} + +const ( + FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 + FSCTL_DELETE_OBJECT_ID = 0x0900A0 + FSCTL_DELETE_REPARSE_POINT = 0x0900AC + FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 + FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 + FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 + FSCTL_FILE_LEVEL_TRIM = 0x098208 + FSCTL_FIND_FILES_BY_SID = 0x09008F + FSCTL_GET_COMPRESSION = 0x09003C + FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C + FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 + FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 + FSCTL_GET_OBJECT_ID = 0x09009C + FSCTL_GET_REPARSE_POINT = 0x0900A8 + FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B + FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 + FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 + FSCTL_IS_PATHNAME_VALID = 0x09002C + FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC + FSCTL_MARK_HANDLE = 0x0900FC + FSCTL_OFFLOAD_READ = 0x094264 + FSCTL_OFFLOAD_WRITE = 0x098268 + FSCTL_PIPE_PEEK = 0x11400C + FSCTL_PIPE_TRANSCEIVE = 0x11C017 + FSCTL_PIPE_WAIT = 0x110018 + FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF + FSCTL_QUERY_FAT_BPB = 0x090058 + FSCTL_QUERY_FILE_REGIONS = 0x090284 + FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C + FSCTL_QUERY_SPARING_INFO = 0x090138 + FSCTL_READ_FILE_USN_DATA = 0x0900EB + FSCTL_RECALL_FILE = 0x090117 + FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 + FSCTL_SET_COMPRESSION = 0x09C040 + FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 + FSCTL_SET_ENCRYPTION = 0x0900D7 + FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 + FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 + FSCTL_SET_OBJECT_ID = 0x090098 + FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC + FSCTL_SET_REPARSE_POINT = 0x0900A4 + FSCTL_SET_SPARSE = 0x0900C4 + FSCTL_SET_ZERO_DATA = 0x0980C8 + FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 + FSCTL_SIS_COPYFILE = 0x090100 + FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF + + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 + IO_REPARSE_TAG_SYMLINK = 0xA000000C + SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 +) + +const ( + ComputerNameNetBIOS = 0 + ComputerNameDnsHostname = 1 + ComputerNameDnsDomain = 2 + ComputerNameDnsFullyQualified = 3 + ComputerNamePhysicalNetBIOS = 4 + ComputerNamePhysicalDnsHostname = 5 + ComputerNamePhysicalDnsDomain = 6 + ComputerNamePhysicalDnsFullyQualified = 7 + ComputerNameMax = 8 +) + +// For MessageBox() +const ( + MB_OK = 0x00000000 + MB_OKCANCEL = 0x00000001 + MB_ABORTRETRYIGNORE = 0x00000002 + MB_YESNOCANCEL = 0x00000003 + MB_YESNO = 0x00000004 + MB_RETRYCANCEL = 0x00000005 + MB_CANCELTRYCONTINUE = 0x00000006 + MB_ICONHAND = 0x00000010 + MB_ICONQUESTION = 0x00000020 + MB_ICONEXCLAMATION = 0x00000030 + MB_ICONASTERISK = 0x00000040 + MB_USERICON = 0x00000080 + MB_ICONWARNING = MB_ICONEXCLAMATION + MB_ICONERROR = MB_ICONHAND + MB_ICONINFORMATION = MB_ICONASTERISK + MB_ICONSTOP = MB_ICONHAND + MB_DEFBUTTON1 = 0x00000000 + MB_DEFBUTTON2 = 0x00000100 + MB_DEFBUTTON3 = 0x00000200 + MB_DEFBUTTON4 = 0x00000300 + MB_APPLMODAL = 0x00000000 + MB_SYSTEMMODAL = 0x00001000 + MB_TASKMODAL = 0x00002000 + MB_HELP = 0x00004000 + MB_NOFOCUS = 0x00008000 + MB_SETFOREGROUND = 0x00010000 + MB_DEFAULT_DESKTOP_ONLY = 0x00020000 + MB_TOPMOST = 0x00040000 + MB_RIGHT = 0x00080000 + MB_RTLREADING = 0x00100000 + MB_SERVICE_NOTIFICATION = 0x00200000 +) + +const ( + MOVEFILE_REPLACE_EXISTING = 0x1 + MOVEFILE_COPY_ALLOWED = 0x2 + MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 + MOVEFILE_WRITE_THROUGH = 0x8 + MOVEFILE_CREATE_HARDLINK = 0x10 + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 +) + +// Flags for GetAdaptersAddresses, see +// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses. +const ( + GAA_FLAG_SKIP_UNICAST = 0x1 + GAA_FLAG_SKIP_ANYCAST = 0x2 + GAA_FLAG_SKIP_MULTICAST = 0x4 + GAA_FLAG_SKIP_DNS_SERVER = 0x8 + GAA_FLAG_INCLUDE_PREFIX = 0x10 + GAA_FLAG_SKIP_FRIENDLY_NAME = 0x20 + GAA_FLAG_INCLUDE_WINS_INFO = 0x40 + GAA_FLAG_INCLUDE_GATEWAYS = 0x80 + GAA_FLAG_INCLUDE_ALL_INTERFACES = 0x100 + GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = 0x200 + GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400 +) + +const ( + IF_TYPE_OTHER = 1 + IF_TYPE_ETHERNET_CSMACD = 6 + IF_TYPE_ISO88025_TOKENRING = 9 + IF_TYPE_PPP = 23 + IF_TYPE_SOFTWARE_LOOPBACK = 24 + IF_TYPE_ATM = 37 + IF_TYPE_IEEE80211 = 71 + IF_TYPE_TUNNEL = 131 + IF_TYPE_IEEE1394 = 144 +) + +// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin +const ( + IpPrefixOriginOther = 0 + IpPrefixOriginManual = 1 + IpPrefixOriginWellKnown = 2 + IpPrefixOriginDhcp = 3 + IpPrefixOriginRouterAdvertisement = 4 + IpPrefixOriginUnchanged = 1 << 4 +) + +// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin +const ( + NlsoOther = 0 + NlsoManual = 1 + NlsoWellKnown = 2 + NlsoDhcp = 3 + NlsoLinkLayerAddress = 4 + NlsoRandom = 5 + IpSuffixOriginOther = 0 + IpSuffixOriginManual = 1 + IpSuffixOriginWellKnown = 2 + IpSuffixOriginDhcp = 3 + IpSuffixOriginLinkLayerAddress = 4 + IpSuffixOriginRandom = 5 + IpSuffixOriginUnchanged = 1 << 4 +) + +// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state +const ( + NldsInvalid = 0 + NldsTentative = 1 + NldsDuplicate = 2 + NldsDeprecated = 3 + NldsPreferred = 4 + IpDadStateInvalid = 0 + IpDadStateTentative = 1 + IpDadStateDuplicate = 2 + IpDadStateDeprecated = 3 + IpDadStatePreferred = 4 +) + +type SocketAddress struct { + Sockaddr *syscall.RawSockaddrAny + SockaddrLength int32 +} + +// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. +func (addr *SocketAddress) IP() net.IP { + if uintptr(addr.SockaddrLength) >= 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 + Next *IpAdapterUnicastAddress + Address SocketAddress + PrefixOrigin int32 + SuffixOrigin int32 + DadState int32 + ValidLifetime uint32 + PreferredLifetime uint32 + LeaseLifetime uint32 + OnLinkPrefixLength uint8 +} + +type IpAdapterAnycastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterAnycastAddress + Address SocketAddress +} + +type IpAdapterMulticastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterMulticastAddress + Address SocketAddress +} + +type IpAdapterDnsServerAdapter struct { + Length uint32 + Reserved uint32 + Next *IpAdapterDnsServerAdapter + Address SocketAddress +} + +type IpAdapterPrefix struct { + Length uint32 + Flags uint32 + Next *IpAdapterPrefix + Address SocketAddress + PrefixLength uint32 +} + +type IpAdapterAddresses struct { + Length uint32 + IfIndex uint32 + Next *IpAdapterAddresses + AdapterName *byte + FirstUnicastAddress *IpAdapterUnicastAddress + FirstAnycastAddress *IpAdapterAnycastAddress + FirstMulticastAddress *IpAdapterMulticastAddress + FirstDnsServerAddress *IpAdapterDnsServerAdapter + DnsSuffix *uint16 + Description *uint16 + FriendlyName *uint16 + PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte + PhysicalAddressLength uint32 + Flags uint32 + Mtu uint32 + IfType uint32 + OperStatus uint32 + Ipv6IfIndex uint32 + ZoneIndices [16]uint32 + FirstPrefix *IpAdapterPrefix + TransmitLinkSpeed uint64 + ReceiveLinkSpeed uint64 + FirstWinsServerAddress *IpAdapterWinsServerAddress + FirstGatewayAddress *IpAdapterGatewayAddress + Ipv4Metric uint32 + Ipv6Metric uint32 + Luid uint64 + Dhcpv4Server SocketAddress + CompartmentId uint32 + NetworkGuid GUID + ConnectionType uint32 + TunnelType uint32 + Dhcpv6Server SocketAddress + Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte + Dhcpv6ClientDuidLength uint32 + Dhcpv6Iaid uint32 + FirstDnsSuffix *IpAdapterDNSSuffix +} + +type IpAdapterWinsServerAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterWinsServerAddress + Address SocketAddress +} + +type IpAdapterGatewayAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterGatewayAddress + Address SocketAddress +} + +type IpAdapterDNSSuffix struct { + Next *IpAdapterDNSSuffix + String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 +} + +const ( + IfOperStatusUp = 1 + IfOperStatusDown = 2 + IfOperStatusTesting = 3 + IfOperStatusUnknown = 4 + IfOperStatusDormant = 5 + IfOperStatusNotPresent = 6 + IfOperStatusLowerLayerDown = 7 +) + +const ( + IF_MAX_PHYS_ADDRESS_LENGTH = 32 + IF_MAX_STRING_SIZE = 256 +) + +// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex. +const ( + MibIfEntryNormal = 0 + MibIfEntryNormalWithoutStatistics = 2 +) + +// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type. +const ( + MibParameterNotification = 0 + MibAddInstance = 1 + MibDeleteInstance = 2 + MibInitialNotification = 3 +) + +// MibIfRow2 stores information about a particular interface. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2. +type MibIfRow2 struct { + InterfaceLuid uint64 + InterfaceIndex uint32 + InterfaceGuid GUID + Alias [IF_MAX_STRING_SIZE + 1]uint16 + Description [IF_MAX_STRING_SIZE + 1]uint16 + PhysicalAddressLength uint32 + PhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 + PermanentPhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 + Mtu uint32 + Type uint32 + TunnelType uint32 + MediaType uint32 + PhysicalMediumType uint32 + AccessType uint32 + DirectionType uint32 + InterfaceAndOperStatusFlags uint8 + OperStatus uint32 + AdminStatus uint32 + MediaConnectState uint32 + NetworkGuid GUID + ConnectionType uint32 + TransmitLinkSpeed uint64 + ReceiveLinkSpeed uint64 + InOctets uint64 + InUcastPkts uint64 + InNUcastPkts uint64 + InDiscards uint64 + InErrors uint64 + InUnknownProtos uint64 + InUcastOctets uint64 + InMulticastOctets uint64 + InBroadcastOctets uint64 + OutOctets uint64 + OutUcastPkts uint64 + OutNUcastPkts uint64 + OutDiscards uint64 + OutErrors uint64 + OutUcastOctets uint64 + OutMulticastOctets uint64 + OutBroadcastOctets uint64 + OutQLen uint64 +} + +// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. +type MibUnicastIpAddressRow struct { + Address RawSockaddrInet6 // SOCKADDR_INET union + InterfaceLuid uint64 + InterfaceIndex uint32 + PrefixOrigin uint32 + SuffixOrigin uint32 + ValidLifetime uint32 + PreferredLifetime uint32 + OnLinkPrefixLength uint8 + SkipAsSource uint8 + DadState uint32 + ScopeId uint32 + CreationTimeStamp Filetime +} + +const ScopeLevelCount = 16 + +// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface. +// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row. +type MibIpInterfaceRow struct { + Family uint16 + InterfaceLuid uint64 + InterfaceIndex uint32 + MaxReassemblySize uint32 + InterfaceIdentifier uint64 + MinRouterAdvertisementInterval uint32 + MaxRouterAdvertisementInterval uint32 + AdvertisingEnabled uint8 + ForwardingEnabled uint8 + WeakHostSend uint8 + WeakHostReceive uint8 + UseAutomaticMetric uint8 + UseNeighborUnreachabilityDetection uint8 + ManagedAddressConfigurationSupported uint8 + OtherStatefulConfigurationSupported uint8 + AdvertiseDefaultRoute uint8 + RouterDiscoveryBehavior uint32 + DadTransmits uint32 + BaseReachableTime uint32 + RetransmitTime uint32 + PathMtuDiscoveryTimeout uint32 + LinkLocalAddressBehavior uint32 + LinkLocalAddressTimeout uint32 + ZoneIndices [ScopeLevelCount]uint32 + SitePrefixLength uint32 + Metric uint32 + NlMtu uint32 + Connected uint8 + SupportsWakeUpPatterns uint8 + SupportsNeighborDiscovery uint8 + SupportsRouterDiscovery uint8 + ReachableTime uint32 + TransmitOffload uint32 + ReceiveOffload uint32 + DisableDefaultRoutes uint8 +} + +// Console related constants used for the mode parameter to SetConsoleMode. See +// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. + +const ( + ENABLE_PROCESSED_INPUT = 0x1 + ENABLE_LINE_INPUT = 0x2 + ENABLE_ECHO_INPUT = 0x4 + ENABLE_WINDOW_INPUT = 0x8 + ENABLE_MOUSE_INPUT = 0x10 + ENABLE_INSERT_MODE = 0x20 + ENABLE_QUICK_EDIT_MODE = 0x40 + ENABLE_EXTENDED_FLAGS = 0x80 + ENABLE_AUTO_POSITION = 0x100 + ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 + + ENABLE_PROCESSED_OUTPUT = 0x1 + ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 + ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 + DISABLE_NEWLINE_AUTO_RETURN = 0x8 + ENABLE_LVB_GRID_WORLDWIDE = 0x10 +) + +// Pseudo console related constants used for the flags parameter to +// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole +const ( + PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 +) + +type Coord struct { + X int16 + Y int16 +} + +type SmallRect struct { + Left int16 + Top int16 + Right int16 + Bottom int16 +} + +// Used with GetConsoleScreenBuffer to retrieve information about a console +// screen buffer. See +// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str +// for details. + +type ConsoleScreenBufferInfo struct { + Size Coord + CursorPosition Coord + Attributes uint16 + Window SmallRect + MaximumWindowSize Coord +} + +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 for QueryInformationJobObject and SetInformationJobObject + JobObjectAssociateCompletionPortInformation = 7 + JobObjectBasicAccountingInformation = 1 + JobObjectBasicAndIoAccountingInformation = 8 + JobObjectBasicLimitInformation = 2 + JobObjectBasicProcessIdList = 3 + JobObjectBasicUIRestrictions = 4 + JobObjectCpuRateControlInformation = 15 + JobObjectEndOfJobTimeInformation = 6 + JobObjectExtendedLimitInformation = 9 + JobObjectGroupInformation = 11 + JobObjectGroupInformationEx = 14 + JobObjectLimitViolationInformation = 13 + JobObjectLimitViolationInformation2 = 34 + JobObjectNetRateControlInformation = 32 + JobObjectNotificationLimitInformation = 12 + JobObjectNotificationLimitInformation2 = 33 + 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 { + // Note: Length and MaximumLength are in *bytes*, not uint16s. + // They should always be even. + 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 RUNTIME_FUNCTION struct { + BeginAddress uint32 + EndAddress uint32 + UnwindData uint32 +} + +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 +) + +const ( + // FileInformationClass for NtSetInformationFile + FileBasicInformation = 4 + FileRenameInformation = 10 + FileDispositionInformation = 13 + FilePositionInformation = 14 + FileEndOfFileInformation = 20 + FileValidDataLengthInformation = 39 + FileShortNameInformation = 40 + FileIoPriorityHintInformation = 43 + FileReplaceCompletionInformation = 61 + FileDispositionInformationEx = 64 + FileCaseSensitiveInformation = 71 + FileLinkInformation = 72 + FileCaseSensitiveInformationForceAccessCheck = 75 + FileKnownFolderInformation = 76 + + // Flags for FILE_RENAME_INFORMATION + FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 + FILE_RENAME_POSIX_SEMANTICS = 0x00000002 + FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 + FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 + + // Flags for FILE_DISPOSITION_INFORMATION_EX + FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 + FILE_DISPOSITION_DELETE = 0x00000001 + FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 + FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 + FILE_DISPOSITION_ON_CLOSE = 0x00000008 + FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 + + // Flags for FILE_CASE_SENSITIVE_INFORMATION + FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 + + // Flags for FILE_LINK_INFORMATION + FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 + FILE_LINK_POSIX_SEMANTICS = 0x00000002 + FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_LINK_FORCE_RESIZE_SR = 0x00000180 +) + +// 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 +} + +type SYSTEM_PROCESS_INFORMATION struct { + NextEntryOffset uint32 + NumberOfThreads uint32 + WorkingSetPrivateSize int64 + HardFaultCount uint32 + NumberOfThreadsHighWatermark uint32 + CycleTime uint64 + CreateTime int64 + UserTime int64 + KernelTime int64 + ImageName NTUnicodeString + BasePriority int32 + UniqueProcessID uintptr + InheritedFromUniqueProcessID uintptr + HandleCount uint32 + SessionID uint32 + UniqueProcessKey *uint32 + PeakVirtualSize uintptr + VirtualSize uintptr + PageFaultCount uint32 + PeakWorkingSetSize uintptr + WorkingSetSize uintptr + QuotaPeakPagedPoolUsage uintptr + QuotaPagedPoolUsage uintptr + QuotaPeakNonPagedPoolUsage uintptr + QuotaNonPagedPoolUsage uintptr + PagefileUsage uintptr + PeakPagefileUsage uintptr + PrivatePageCount uintptr + ReadOperationCount int64 + WriteOperationCount int64 + OtherOperationCount int64 + ReadTransferCount int64 + WriteTransferCount int64 + OtherTransferCount int64 +} + +// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation +const ( + SystemBasicInformation = iota + SystemProcessorInformation + SystemPerformanceInformation + SystemTimeOfDayInformation + SystemPathInformation + SystemProcessInformation + SystemCallCountInformation + SystemDeviceInformation + SystemProcessorPerformanceInformation + SystemFlagsInformation + SystemCallTimeInformation + SystemModuleInformation + SystemLocksInformation + SystemStackTraceInformation + SystemPagedPoolInformation + SystemNonPagedPoolInformation + SystemHandleInformation + SystemObjectInformation + SystemPageFileInformation + SystemVdmInstemulInformation + SystemVdmBopInformation + SystemFileCacheInformation + SystemPoolTagInformation + SystemInterruptInformation + SystemDpcBehaviorInformation + SystemFullMemoryInformation + SystemLoadGdiDriverInformation + SystemUnloadGdiDriverInformation + SystemTimeAdjustmentInformation + SystemSummaryMemoryInformation + SystemMirrorMemoryInformation + SystemPerformanceTraceInformation + systemObsolete0 + SystemExceptionInformation + SystemCrashDumpStateInformation + SystemKernelDebuggerInformation + SystemContextSwitchInformation + SystemRegistryQuotaInformation + SystemExtendServiceTableInformation + SystemPrioritySeperation + SystemVerifierAddDriverInformation + SystemVerifierRemoveDriverInformation + SystemProcessorIdleInformation + SystemLegacyDriverInformation + SystemCurrentTimeZoneInformation + SystemLookasideInformation + SystemTimeSlipNotification + SystemSessionCreate + SystemSessionDetach + SystemSessionInformation + SystemRangeStartInformation + SystemVerifierInformation + SystemVerifierThunkExtend + SystemSessionProcessInformation + SystemLoadGdiDriverInSystemSpace + SystemNumaProcessorMap + SystemPrefetcherInformation + SystemExtendedProcessInformation + SystemRecommendedSharedDataAlignment + SystemComPlusPackage + SystemNumaAvailableMemory + SystemProcessorPowerInformation + SystemEmulationBasicInformation + SystemEmulationProcessorInformation + SystemExtendedHandleInformation + SystemLostDelayedWriteInformation + SystemBigPoolInformation + SystemSessionPoolTagInformation + SystemSessionMappedViewInformation + SystemHotpatchInformation + SystemObjectSecurityMode + SystemWatchdogTimerHandler + SystemWatchdogTimerInformation + SystemLogicalProcessorInformation + SystemWow64SharedInformationObsolete + SystemRegisterFirmwareTableInformationHandler + SystemFirmwareTableInformation + SystemModuleInformationEx + SystemVerifierTriageInformation + SystemSuperfetchInformation + SystemMemoryListInformation + SystemFileCacheInformationEx + SystemThreadPriorityClientIdInformation + SystemProcessorIdleCycleTimeInformation + SystemVerifierCancellationInformation + SystemProcessorPowerInformationEx + SystemRefTraceInformation + SystemSpecialPoolInformation + SystemProcessIdInformation + SystemErrorPortInformation + SystemBootEnvironmentInformation + SystemHypervisorInformation + SystemVerifierInformationEx + SystemTimeZoneInformation + SystemImageFileExecutionOptionsInformation + SystemCoverageInformation + SystemPrefetchPatchInformation + SystemVerifierFaultsInformation + SystemSystemPartitionInformation + SystemSystemDiskInformation + SystemProcessorPerformanceDistribution + SystemNumaProximityNodeInformation + SystemDynamicTimeZoneInformation + SystemCodeIntegrityInformation + SystemProcessorMicrocodeUpdateInformation + SystemProcessorBrandString + SystemVirtualAddressInformation + SystemLogicalProcessorAndGroupInformation + SystemProcessorCycleTimeInformation + SystemStoreInformation + SystemRegistryAppendString + SystemAitSamplingValue + SystemVhdBootInformation + SystemCpuQuotaInformation + SystemNativeBasicInformation + systemSpare1 + SystemLowPriorityIoInformation + SystemTpmBootEntropyInformation + SystemVerifierCountersInformation + SystemPagedPoolInformationEx + SystemSystemPtesInformationEx + SystemNodeDistanceInformation + SystemAcpiAuditInformation + SystemBasicPerformanceInformation + SystemQueryPerformanceCounterInformation + SystemSessionBigPoolInformation + SystemBootGraphicsInformation + SystemScrubPhysicalMemoryInformation + SystemBadPageInformation + SystemProcessorProfileControlArea + SystemCombinePhysicalMemoryInformation + SystemEntropyInterruptTimingCallback + SystemConsoleInformation + SystemPlatformBinaryInformation + SystemThrottleNotificationInformation + SystemHypervisorProcessorCountInformation + SystemDeviceDataInformation + SystemDeviceDataEnumerationInformation + SystemMemoryTopologyInformation + SystemMemoryChannelInformation + SystemBootLogoInformation + SystemProcessorPerformanceInformationEx + systemSpare0 + SystemSecureBootPolicyInformation + SystemPageFileInformationEx + SystemSecureBootInformation + SystemEntropyInterruptTimingRawInformation + SystemPortableWorkspaceEfiLauncherInformation + SystemFullProcessInformation + SystemKernelDebuggerInformationEx + SystemBootMetadataInformation + SystemSoftRebootInformation + SystemElamCertificateInformation + SystemOfflineDumpConfigInformation + SystemProcessorFeaturesInformation + SystemRegistryReconciliationInformation + SystemEdidInformation + SystemManufacturingInformation + SystemEnergyEstimationConfigInformation + SystemHypervisorDetailInformation + SystemProcessorCycleStatsInformation + SystemVmGenerationCountInformation + SystemTrustedPlatformModuleInformation + SystemKernelDebuggerFlags + SystemCodeIntegrityPolicyInformation + SystemIsolatedUserModeInformation + SystemHardwareSecurityTestInterfaceResultsInformation + SystemSingleModuleInformation + SystemAllowedCpuSetsInformation + SystemDmaProtectionInformation + SystemInterruptCpuSetsInformation + SystemSecureBootPolicyFullInformation + SystemCodeIntegrityPolicyFullInformation + SystemAffinitizedInterruptProcessorInformation + SystemRootSiloInformation +) + +type RTL_PROCESS_MODULE_INFORMATION struct { + Section Handle + MappedBase uintptr + ImageBase uintptr + ImageSize uint32 + Flags uint32 + LoadOrderIndex uint16 + InitOrderIndex uint16 + LoadCount uint16 + OffsetToFileName uint16 + FullPathName [256]byte +} + +type RTL_PROCESS_MODULES struct { + NumberOfModules uint32 + Modules [1]RTL_PROCESS_MODULE_INFORMATION +} + +// 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 VS_FIXEDFILEINFO struct { + Signature uint32 + StrucVersion uint32 + FileVersionMS uint32 + FileVersionLS uint32 + ProductVersionMS uint32 + ProductVersionLS uint32 + FileFlagsMask uint32 + FileFlags uint32 + FileOS uint32 + FileType uint32 + FileSubtype uint32 + FileDateMS uint32 + FileDateLS uint32 +} + +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 + +type ModuleInfo struct { + BaseOfDll uintptr + SizeOfImage uint32 + EntryPoint uintptr +} + +const ALL_PROCESSOR_GROUPS = 0xFFFF + +type Rect struct { + Left int32 + Top int32 + Right int32 + Bottom int32 +} + +type GUIThreadInfo struct { + Size uint32 + Flags uint32 + Active HWND + Focus HWND + Capture HWND + MenuOwner HWND + MoveSize HWND + CaretHandle HWND + CaretRect Rect +} + +const ( + DWMWA_NCRENDERING_ENABLED = 1 + DWMWA_NCRENDERING_POLICY = 2 + DWMWA_TRANSITIONS_FORCEDISABLED = 3 + DWMWA_ALLOW_NCPAINT = 4 + DWMWA_CAPTION_BUTTON_BOUNDS = 5 + DWMWA_NONCLIENT_RTL_LAYOUT = 6 + DWMWA_FORCE_ICONIC_REPRESENTATION = 7 + DWMWA_FLIP3D_POLICY = 8 + DWMWA_EXTENDED_FRAME_BOUNDS = 9 + DWMWA_HAS_ICONIC_BITMAP = 10 + DWMWA_DISALLOW_PEEK = 11 + DWMWA_EXCLUDED_FROM_PEEK = 12 + DWMWA_CLOAK = 13 + DWMWA_CLOAKED = 14 + DWMWA_FREEZE_REPRESENTATION = 15 + DWMWA_PASSIVE_UPDATE_MODE = 16 + DWMWA_USE_HOSTBACKDROPBRUSH = 17 + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + DWMWA_WINDOW_CORNER_PREFERENCE = 33 + DWMWA_BORDER_COLOR = 34 + DWMWA_CAPTION_COLOR = 35 + DWMWA_TEXT_COLOR = 36 + DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 +) + +type WSAQUERYSET struct { + Size uint32 + ServiceInstanceName *uint16 + ServiceClassId *GUID + Version *WSAVersion + Comment *uint16 + NameSpace uint32 + NSProviderId *GUID + Context *uint16 + NumberOfProtocols uint32 + AfpProtocols *AFProtocols + QueryString *uint16 + NumberOfCsAddrs uint32 + SaBuffer *CSAddrInfo + OutputFlags uint32 + Blob *BLOB +} + +type WSAVersion struct { + Version uint32 + EnumerationOfComparison int32 +} + +type AFProtocols struct { + AddressFamily int32 + Protocol int32 +} + +type CSAddrInfo struct { + LocalAddr SocketAddress + RemoteAddr SocketAddress + SocketType int32 + Protocol int32 +} + +type BLOB struct { + Size uint32 + BlobData *byte +} + +type ComStat struct { + Flags uint32 + CBInQue uint32 + CBOutQue uint32 +} + +type DCB struct { + DCBlength uint32 + BaudRate uint32 + Flags uint32 + wReserved uint16 + XonLim uint16 + XoffLim uint16 + ByteSize uint8 + Parity uint8 + StopBits uint8 + XonChar byte + XoffChar byte + ErrorChar byte + EofChar byte + EvtChar byte + wReserved1 uint16 +} + +// Keyboard Layout Flags. +// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw +const ( + KLF_ACTIVATE = 0x00000001 + KLF_SUBSTITUTE_OK = 0x00000002 + KLF_REORDER = 0x00000008 + KLF_REPLACELANG = 0x00000010 + KLF_NOTELLSHELL = 0x00000080 + KLF_SETFORPROCESS = 0x00000100 +) + +// Virtual Key codes +// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes +const ( + VK_LBUTTON = 0x01 + VK_RBUTTON = 0x02 + VK_CANCEL = 0x03 + VK_MBUTTON = 0x04 + VK_XBUTTON1 = 0x05 + VK_XBUTTON2 = 0x06 + VK_BACK = 0x08 + VK_TAB = 0x09 + VK_CLEAR = 0x0C + VK_RETURN = 0x0D + VK_SHIFT = 0x10 + VK_CONTROL = 0x11 + VK_MENU = 0x12 + VK_PAUSE = 0x13 + VK_CAPITAL = 0x14 + VK_KANA = 0x15 + VK_HANGEUL = 0x15 + VK_HANGUL = 0x15 + VK_IME_ON = 0x16 + VK_JUNJA = 0x17 + VK_FINAL = 0x18 + VK_HANJA = 0x19 + VK_KANJI = 0x19 + VK_IME_OFF = 0x1A + VK_ESCAPE = 0x1B + VK_CONVERT = 0x1C + VK_NONCONVERT = 0x1D + VK_ACCEPT = 0x1E + VK_MODECHANGE = 0x1F + VK_SPACE = 0x20 + VK_PRIOR = 0x21 + VK_NEXT = 0x22 + VK_END = 0x23 + VK_HOME = 0x24 + VK_LEFT = 0x25 + VK_UP = 0x26 + VK_RIGHT = 0x27 + VK_DOWN = 0x28 + VK_SELECT = 0x29 + VK_PRINT = 0x2A + VK_EXECUTE = 0x2B + VK_SNAPSHOT = 0x2C + VK_INSERT = 0x2D + VK_DELETE = 0x2E + VK_HELP = 0x2F + VK_LWIN = 0x5B + VK_RWIN = 0x5C + VK_APPS = 0x5D + VK_SLEEP = 0x5F + VK_NUMPAD0 = 0x60 + VK_NUMPAD1 = 0x61 + VK_NUMPAD2 = 0x62 + VK_NUMPAD3 = 0x63 + VK_NUMPAD4 = 0x64 + VK_NUMPAD5 = 0x65 + VK_NUMPAD6 = 0x66 + VK_NUMPAD7 = 0x67 + VK_NUMPAD8 = 0x68 + VK_NUMPAD9 = 0x69 + VK_MULTIPLY = 0x6A + VK_ADD = 0x6B + VK_SEPARATOR = 0x6C + VK_SUBTRACT = 0x6D + VK_DECIMAL = 0x6E + VK_DIVIDE = 0x6F + VK_F1 = 0x70 + VK_F2 = 0x71 + VK_F3 = 0x72 + VK_F4 = 0x73 + VK_F5 = 0x74 + VK_F6 = 0x75 + VK_F7 = 0x76 + VK_F8 = 0x77 + VK_F9 = 0x78 + VK_F10 = 0x79 + VK_F11 = 0x7A + VK_F12 = 0x7B + VK_F13 = 0x7C + VK_F14 = 0x7D + VK_F15 = 0x7E + VK_F16 = 0x7F + VK_F17 = 0x80 + VK_F18 = 0x81 + VK_F19 = 0x82 + VK_F20 = 0x83 + VK_F21 = 0x84 + VK_F22 = 0x85 + VK_F23 = 0x86 + VK_F24 = 0x87 + VK_NUMLOCK = 0x90 + VK_SCROLL = 0x91 + VK_OEM_NEC_EQUAL = 0x92 + VK_OEM_FJ_JISHO = 0x92 + VK_OEM_FJ_MASSHOU = 0x93 + VK_OEM_FJ_TOUROKU = 0x94 + VK_OEM_FJ_LOYA = 0x95 + VK_OEM_FJ_ROYA = 0x96 + VK_LSHIFT = 0xA0 + VK_RSHIFT = 0xA1 + VK_LCONTROL = 0xA2 + VK_RCONTROL = 0xA3 + VK_LMENU = 0xA4 + VK_RMENU = 0xA5 + VK_BROWSER_BACK = 0xA6 + VK_BROWSER_FORWARD = 0xA7 + VK_BROWSER_REFRESH = 0xA8 + VK_BROWSER_STOP = 0xA9 + VK_BROWSER_SEARCH = 0xAA + VK_BROWSER_FAVORITES = 0xAB + VK_BROWSER_HOME = 0xAC + VK_VOLUME_MUTE = 0xAD + VK_VOLUME_DOWN = 0xAE + VK_VOLUME_UP = 0xAF + VK_MEDIA_NEXT_TRACK = 0xB0 + VK_MEDIA_PREV_TRACK = 0xB1 + VK_MEDIA_STOP = 0xB2 + VK_MEDIA_PLAY_PAUSE = 0xB3 + VK_LAUNCH_MAIL = 0xB4 + VK_LAUNCH_MEDIA_SELECT = 0xB5 + VK_LAUNCH_APP1 = 0xB6 + VK_LAUNCH_APP2 = 0xB7 + VK_OEM_1 = 0xBA + VK_OEM_PLUS = 0xBB + VK_OEM_COMMA = 0xBC + VK_OEM_MINUS = 0xBD + VK_OEM_PERIOD = 0xBE + VK_OEM_2 = 0xBF + VK_OEM_3 = 0xC0 + VK_OEM_4 = 0xDB + VK_OEM_5 = 0xDC + VK_OEM_6 = 0xDD + VK_OEM_7 = 0xDE + VK_OEM_8 = 0xDF + VK_OEM_AX = 0xE1 + VK_OEM_102 = 0xE2 + VK_ICO_HELP = 0xE3 + VK_ICO_00 = 0xE4 + VK_PROCESSKEY = 0xE5 + VK_ICO_CLEAR = 0xE6 + VK_OEM_RESET = 0xE9 + VK_OEM_JUMP = 0xEA + VK_OEM_PA1 = 0xEB + VK_OEM_PA2 = 0xEC + VK_OEM_PA3 = 0xED + VK_OEM_WSCTRL = 0xEE + VK_OEM_CUSEL = 0xEF + VK_OEM_ATTN = 0xF0 + VK_OEM_FINISH = 0xF1 + VK_OEM_COPY = 0xF2 + VK_OEM_AUTO = 0xF3 + VK_OEM_ENLW = 0xF4 + VK_OEM_BACKTAB = 0xF5 + VK_ATTN = 0xF6 + VK_CRSEL = 0xF7 + VK_EXSEL = 0xF8 + VK_EREOF = 0xF9 + VK_PLAY = 0xFA + VK_ZOOM = 0xFB + VK_NONAME = 0xFC + VK_PA1 = 0xFD + VK_OEM_CLEAR = 0xFE +) + +// Mouse button constants. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 + RIGHTMOST_BUTTON_PRESSED = 0x0002 + FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 + FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 + FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 +) + +// Control key state constaints. +// https://docs.microsoft.com/en-us/windows/console/key-event-record-str +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + CAPSLOCK_ON = 0x0080 + ENHANCED_KEY = 0x0100 + LEFT_ALT_PRESSED = 0x0002 + LEFT_CTRL_PRESSED = 0x0008 + NUMLOCK_ON = 0x0020 + RIGHT_ALT_PRESSED = 0x0001 + RIGHT_CTRL_PRESSED = 0x0004 + SCROLLLOCK_ON = 0x0040 + SHIFT_PRESSED = 0x0010 +) + +// Mouse event record event flags. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + MOUSE_MOVED = 0x0001 + DOUBLE_CLICK = 0x0002 + MOUSE_WHEELED = 0x0004 + MOUSE_HWHEELED = 0x0008 +) + +// Input Record Event Types +// https://learn.microsoft.com/en-us/windows/console/input-record-str +const ( + FOCUS_EVENT = 0x0010 + KEY_EVENT = 0x0001 + MENU_EVENT = 0x0008 + MOUSE_EVENT = 0x0002 + WINDOW_BUFFER_SIZE_EVENT = 0x0004 +) diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go new file mode 100644 index 0000000..8bce3e2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_386.go @@ -0,0 +1,35 @@ +// 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 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + 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 new file mode 100644 index 0000000..fdddc0c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_amd64.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/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go new file mode 100644 index 0000000..321872c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm.go @@ -0,0 +1,35 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + 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 0000000..fdddc0c --- /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 new file mode 100644 index 0000000..0cf658f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zerrors_windows.go @@ -0,0 +1,9468 @@ +// Code generated by 'mkerrors.bash'; DO NOT EDIT. + +package windows + +import "syscall" + +const ( + FACILITY_NULL = 0 + FACILITY_RPC = 1 + FACILITY_DISPATCH = 2 + FACILITY_STORAGE = 3 + FACILITY_ITF = 4 + FACILITY_WIN32 = 7 + FACILITY_WINDOWS = 8 + FACILITY_SSPI = 9 + FACILITY_SECURITY = 9 + FACILITY_CONTROL = 10 + FACILITY_CERT = 11 + FACILITY_INTERNET = 12 + FACILITY_MEDIASERVER = 13 + FACILITY_MSMQ = 14 + FACILITY_SETUPAPI = 15 + FACILITY_SCARD = 16 + FACILITY_COMPLUS = 17 + FACILITY_AAF = 18 + FACILITY_URT = 19 + FACILITY_ACS = 20 + FACILITY_DPLAY = 21 + FACILITY_UMI = 22 + FACILITY_SXS = 23 + FACILITY_WINDOWS_CE = 24 + FACILITY_HTTP = 25 + FACILITY_USERMODE_COMMONLOG = 26 + FACILITY_WER = 27 + FACILITY_USERMODE_FILTER_MANAGER = 31 + FACILITY_BACKGROUNDCOPY = 32 + FACILITY_CONFIGURATION = 33 + FACILITY_WIA = 33 + FACILITY_STATE_MANAGEMENT = 34 + FACILITY_METADIRECTORY = 35 + FACILITY_WINDOWSUPDATE = 36 + FACILITY_DIRECTORYSERVICE = 37 + FACILITY_GRAPHICS = 38 + FACILITY_SHELL = 39 + FACILITY_NAP = 39 + FACILITY_TPM_SERVICES = 40 + FACILITY_TPM_SOFTWARE = 41 + FACILITY_UI = 42 + FACILITY_XAML = 43 + FACILITY_ACTION_QUEUE = 44 + FACILITY_PLA = 48 + FACILITY_WINDOWS_SETUP = 48 + FACILITY_FVE = 49 + FACILITY_FWP = 50 + FACILITY_WINRM = 51 + FACILITY_NDIS = 52 + FACILITY_USERMODE_HYPERVISOR = 53 + FACILITY_CMI = 54 + FACILITY_USERMODE_VIRTUALIZATION = 55 + FACILITY_USERMODE_VOLMGR = 56 + FACILITY_BCD = 57 + FACILITY_USERMODE_VHD = 58 + FACILITY_USERMODE_HNS = 59 + FACILITY_SDIAG = 60 + FACILITY_WEBSERVICES = 61 + FACILITY_WINPE = 61 + FACILITY_WPN = 62 + FACILITY_WINDOWS_STORE = 63 + FACILITY_INPUT = 64 + FACILITY_EAP = 66 + FACILITY_WINDOWS_DEFENDER = 80 + FACILITY_OPC = 81 + FACILITY_XPS = 82 + FACILITY_MBN = 84 + FACILITY_POWERSHELL = 84 + FACILITY_RAS = 83 + FACILITY_P2P_INT = 98 + FACILITY_P2P = 99 + FACILITY_DAF = 100 + FACILITY_BLUETOOTH_ATT = 101 + FACILITY_AUDIO = 102 + FACILITY_STATEREPOSITORY = 103 + FACILITY_VISUALCPP = 109 + FACILITY_SCRIPT = 112 + FACILITY_PARSE = 113 + FACILITY_BLB = 120 + FACILITY_BLB_CLI = 121 + FACILITY_WSBAPP = 122 + FACILITY_BLBUI = 128 + FACILITY_USN = 129 + FACILITY_USERMODE_VOLSNAP = 130 + FACILITY_TIERING = 131 + FACILITY_WSB_ONLINE = 133 + FACILITY_ONLINE_ID = 134 + FACILITY_DEVICE_UPDATE_AGENT = 135 + FACILITY_DRVSERVICING = 136 + FACILITY_DLS = 153 + FACILITY_DELIVERY_OPTIMIZATION = 208 + FACILITY_USERMODE_SPACES = 231 + FACILITY_USER_MODE_SECURITY_CORE = 232 + FACILITY_USERMODE_LICENSING = 234 + FACILITY_SOS = 160 + FACILITY_DEBUGGERS = 176 + FACILITY_SPP = 256 + FACILITY_RESTORE = 256 + FACILITY_DMSERVER = 256 + FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 + FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 + FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 + FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 + FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 + FACILITY_DEPLOYMENT_SERVICES_PXE = 263 + FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 + FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 + FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 + FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 + FACILITY_LINGUISTIC_SERVICES = 305 + FACILITY_AUDIOSTREAMING = 1094 + FACILITY_ACCELERATOR = 1536 + FACILITY_WMAAECMA = 1996 + FACILITY_DIRECTMUSIC = 2168 + FACILITY_DIRECT3D10 = 2169 + FACILITY_DXGI = 2170 + FACILITY_DXGI_DDI = 2171 + FACILITY_DIRECT3D11 = 2172 + FACILITY_DIRECT3D11_DEBUG = 2173 + FACILITY_DIRECT3D12 = 2174 + FACILITY_DIRECT3D12_DEBUG = 2175 + FACILITY_LEAP = 2184 + FACILITY_AUDCLNT = 2185 + FACILITY_WINCODEC_DWRITE_DWM = 2200 + FACILITY_WINML = 2192 + FACILITY_DIRECT2D = 2201 + FACILITY_DEFRAG = 2304 + FACILITY_USERMODE_SDBUS = 2305 + FACILITY_JSCRIPT = 2306 + FACILITY_PIDGENX = 2561 + FACILITY_EAS = 85 + FACILITY_WEB = 885 + FACILITY_WEB_SOCKET = 886 + FACILITY_MOBILE = 1793 + FACILITY_SQLITE = 1967 + FACILITY_UTC = 1989 + FACILITY_WEP = 2049 + FACILITY_SYNCENGINE = 2050 + FACILITY_XBOX = 2339 + FACILITY_GAME = 2340 + FACILITY_PIX = 2748 + ERROR_SUCCESS syscall.Errno = 0 + NO_ERROR = 0 + SEC_E_OK Handle = 0x00000000 + ERROR_INVALID_FUNCTION syscall.Errno = 1 + ERROR_FILE_NOT_FOUND syscall.Errno = 2 + ERROR_PATH_NOT_FOUND syscall.Errno = 3 + ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 + ERROR_ACCESS_DENIED syscall.Errno = 5 + ERROR_INVALID_HANDLE syscall.Errno = 6 + ERROR_ARENA_TRASHED syscall.Errno = 7 + ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 + ERROR_INVALID_BLOCK syscall.Errno = 9 + ERROR_BAD_ENVIRONMENT syscall.Errno = 10 + ERROR_BAD_FORMAT syscall.Errno = 11 + ERROR_INVALID_ACCESS syscall.Errno = 12 + ERROR_INVALID_DATA syscall.Errno = 13 + ERROR_OUTOFMEMORY syscall.Errno = 14 + ERROR_INVALID_DRIVE syscall.Errno = 15 + ERROR_CURRENT_DIRECTORY syscall.Errno = 16 + ERROR_NOT_SAME_DEVICE syscall.Errno = 17 + ERROR_NO_MORE_FILES syscall.Errno = 18 + ERROR_WRITE_PROTECT syscall.Errno = 19 + ERROR_BAD_UNIT syscall.Errno = 20 + ERROR_NOT_READY syscall.Errno = 21 + ERROR_BAD_COMMAND syscall.Errno = 22 + ERROR_CRC syscall.Errno = 23 + ERROR_BAD_LENGTH syscall.Errno = 24 + ERROR_SEEK syscall.Errno = 25 + ERROR_NOT_DOS_DISK syscall.Errno = 26 + ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 + ERROR_OUT_OF_PAPER syscall.Errno = 28 + ERROR_WRITE_FAULT syscall.Errno = 29 + ERROR_READ_FAULT syscall.Errno = 30 + ERROR_GEN_FAILURE syscall.Errno = 31 + ERROR_SHARING_VIOLATION syscall.Errno = 32 + ERROR_LOCK_VIOLATION syscall.Errno = 33 + ERROR_WRONG_DISK syscall.Errno = 34 + ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 + ERROR_HANDLE_EOF syscall.Errno = 38 + ERROR_HANDLE_DISK_FULL syscall.Errno = 39 + ERROR_NOT_SUPPORTED syscall.Errno = 50 + ERROR_REM_NOT_LIST syscall.Errno = 51 + ERROR_DUP_NAME syscall.Errno = 52 + ERROR_BAD_NETPATH syscall.Errno = 53 + ERROR_NETWORK_BUSY syscall.Errno = 54 + ERROR_DEV_NOT_EXIST syscall.Errno = 55 + ERROR_TOO_MANY_CMDS syscall.Errno = 56 + ERROR_ADAP_HDW_ERR syscall.Errno = 57 + ERROR_BAD_NET_RESP syscall.Errno = 58 + ERROR_UNEXP_NET_ERR syscall.Errno = 59 + ERROR_BAD_REM_ADAP syscall.Errno = 60 + ERROR_PRINTQ_FULL syscall.Errno = 61 + ERROR_NO_SPOOL_SPACE syscall.Errno = 62 + ERROR_PRINT_CANCELLED syscall.Errno = 63 + ERROR_NETNAME_DELETED syscall.Errno = 64 + ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 + ERROR_BAD_DEV_TYPE syscall.Errno = 66 + ERROR_BAD_NET_NAME syscall.Errno = 67 + ERROR_TOO_MANY_NAMES syscall.Errno = 68 + ERROR_TOO_MANY_SESS syscall.Errno = 69 + ERROR_SHARING_PAUSED syscall.Errno = 70 + ERROR_REQ_NOT_ACCEP syscall.Errno = 71 + ERROR_REDIR_PAUSED syscall.Errno = 72 + ERROR_FILE_EXISTS syscall.Errno = 80 + ERROR_CANNOT_MAKE syscall.Errno = 82 + ERROR_FAIL_I24 syscall.Errno = 83 + ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 + ERROR_ALREADY_ASSIGNED syscall.Errno = 85 + ERROR_INVALID_PASSWORD syscall.Errno = 86 + ERROR_INVALID_PARAMETER syscall.Errno = 87 + ERROR_NET_WRITE_FAULT syscall.Errno = 88 + ERROR_NO_PROC_SLOTS syscall.Errno = 89 + ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 + ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 + ERROR_SEM_IS_SET syscall.Errno = 102 + ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 + ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 + ERROR_SEM_OWNER_DIED syscall.Errno = 105 + ERROR_SEM_USER_LIMIT syscall.Errno = 106 + ERROR_DISK_CHANGE syscall.Errno = 107 + ERROR_DRIVE_LOCKED syscall.Errno = 108 + ERROR_BROKEN_PIPE syscall.Errno = 109 + ERROR_OPEN_FAILED syscall.Errno = 110 + ERROR_BUFFER_OVERFLOW syscall.Errno = 111 + ERROR_DISK_FULL syscall.Errno = 112 + ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 + ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 + ERROR_INVALID_CATEGORY syscall.Errno = 117 + ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 + ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 + ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 + ERROR_SEM_TIMEOUT syscall.Errno = 121 + ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 + ERROR_INVALID_NAME syscall.Errno = 123 + ERROR_INVALID_LEVEL syscall.Errno = 124 + ERROR_NO_VOLUME_LABEL syscall.Errno = 125 + ERROR_MOD_NOT_FOUND syscall.Errno = 126 + ERROR_PROC_NOT_FOUND syscall.Errno = 127 + ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 + ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 + ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 + ERROR_NEGATIVE_SEEK syscall.Errno = 131 + ERROR_SEEK_ON_DEVICE syscall.Errno = 132 + ERROR_IS_JOIN_TARGET syscall.Errno = 133 + ERROR_IS_JOINED syscall.Errno = 134 + ERROR_IS_SUBSTED syscall.Errno = 135 + ERROR_NOT_JOINED syscall.Errno = 136 + ERROR_NOT_SUBSTED syscall.Errno = 137 + ERROR_JOIN_TO_JOIN syscall.Errno = 138 + ERROR_SUBST_TO_SUBST syscall.Errno = 139 + ERROR_JOIN_TO_SUBST syscall.Errno = 140 + ERROR_SUBST_TO_JOIN syscall.Errno = 141 + ERROR_BUSY_DRIVE syscall.Errno = 142 + ERROR_SAME_DRIVE syscall.Errno = 143 + ERROR_DIR_NOT_ROOT syscall.Errno = 144 + ERROR_DIR_NOT_EMPTY syscall.Errno = 145 + ERROR_IS_SUBST_PATH syscall.Errno = 146 + ERROR_IS_JOIN_PATH syscall.Errno = 147 + ERROR_PATH_BUSY syscall.Errno = 148 + ERROR_IS_SUBST_TARGET syscall.Errno = 149 + ERROR_SYSTEM_TRACE syscall.Errno = 150 + ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 + ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 + ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 + ERROR_LABEL_TOO_LONG syscall.Errno = 154 + ERROR_TOO_MANY_TCBS syscall.Errno = 155 + ERROR_SIGNAL_REFUSED syscall.Errno = 156 + ERROR_DISCARDED syscall.Errno = 157 + ERROR_NOT_LOCKED syscall.Errno = 158 + ERROR_BAD_THREADID_ADDR syscall.Errno = 159 + ERROR_BAD_ARGUMENTS syscall.Errno = 160 + ERROR_BAD_PATHNAME syscall.Errno = 161 + ERROR_SIGNAL_PENDING syscall.Errno = 162 + ERROR_MAX_THRDS_REACHED syscall.Errno = 164 + ERROR_LOCK_FAILED syscall.Errno = 167 + ERROR_BUSY syscall.Errno = 170 + ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 + ERROR_CANCEL_VIOLATION syscall.Errno = 173 + ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 + ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 + ERROR_INVALID_ORDINAL syscall.Errno = 182 + ERROR_ALREADY_EXISTS syscall.Errno = 183 + ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 + ERROR_SEM_NOT_FOUND syscall.Errno = 187 + ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 + ERROR_INVALID_STACKSEG syscall.Errno = 189 + ERROR_INVALID_MODULETYPE syscall.Errno = 190 + ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 + ERROR_EXE_MARKED_INVALID syscall.Errno = 192 + ERROR_BAD_EXE_FORMAT syscall.Errno = 193 + ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 + ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 + ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 + ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 + ERROR_INVALID_SEGDPL syscall.Errno = 198 + ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 + ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 + ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 + ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 + ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 + ERROR_NO_SIGNAL_SENT syscall.Errno = 205 + ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 + ERROR_RING2_STACK_IN_USE syscall.Errno = 207 + ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 + ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 + ERROR_THREAD_1_INACTIVE syscall.Errno = 210 + ERROR_LOCKED syscall.Errno = 212 + ERROR_TOO_MANY_MODULES syscall.Errno = 214 + ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 + ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 + ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 + ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 + ERROR_FILE_CHECKED_OUT syscall.Errno = 220 + ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 + ERROR_BAD_FILE_TYPE syscall.Errno = 222 + ERROR_FILE_TOO_LARGE syscall.Errno = 223 + ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 + ERROR_VIRUS_INFECTED syscall.Errno = 225 + ERROR_VIRUS_DELETED syscall.Errno = 226 + ERROR_PIPE_LOCAL syscall.Errno = 229 + ERROR_BAD_PIPE syscall.Errno = 230 + ERROR_PIPE_BUSY syscall.Errno = 231 + ERROR_NO_DATA syscall.Errno = 232 + ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 + ERROR_MORE_DATA syscall.Errno = 234 + ERROR_NO_WORK_DONE syscall.Errno = 235 + ERROR_VC_DISCONNECTED syscall.Errno = 240 + ERROR_INVALID_EA_NAME syscall.Errno = 254 + ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 + WAIT_TIMEOUT syscall.Errno = 258 + ERROR_NO_MORE_ITEMS syscall.Errno = 259 + ERROR_CANNOT_COPY syscall.Errno = 266 + ERROR_DIRECTORY syscall.Errno = 267 + ERROR_EAS_DIDNT_FIT syscall.Errno = 275 + ERROR_EA_FILE_CORRUPT syscall.Errno = 276 + ERROR_EA_TABLE_FULL syscall.Errno = 277 + ERROR_INVALID_EA_HANDLE syscall.Errno = 278 + ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 + ERROR_NOT_OWNER syscall.Errno = 288 + ERROR_TOO_MANY_POSTS syscall.Errno = 298 + ERROR_PARTIAL_COPY syscall.Errno = 299 + ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 + ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 + ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 + ERROR_DELETE_PENDING syscall.Errno = 303 + ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 + ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 + ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 + ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 + ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 + ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 + ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 + ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 + ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 + ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 + ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 + ERROR_INVALID_TOKEN syscall.Errno = 315 + ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 + ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 + ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 + ERROR_UNDEFINED_SCOPE syscall.Errno = 319 + ERROR_INVALID_CAP syscall.Errno = 320 + ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 + ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 + ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 + ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 + ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 + ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 + ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 + ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 + ERROR_BAD_DEVICE_PATH syscall.Errno = 330 + ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 + ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 + ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 + ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 + ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 + ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 + ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 + ERROR_FT_WRITE_FAILURE syscall.Errno = 338 + ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 + ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 + ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 + ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 + ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 + ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 + ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 + ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 + ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 + ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 + ERROR_ENCLAVE_FAILURE syscall.Errno = 349 + ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 + ERROR_FAIL_SHUTDOWN syscall.Errno = 351 + ERROR_FAIL_RESTART syscall.Errno = 352 + ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 + ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 + ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 + ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 + ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 + ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 + ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 + ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 + ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 + ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 + ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 + ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 + ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 + ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 + ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 + ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 + ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 + ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 + ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 + ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 + ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 + ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 + ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 + ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 + ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 + ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 + ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 + ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 + ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 + ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 + ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 + ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 + ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 + ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 + ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 + ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 + ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 + ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 + ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 + ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 + ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 + ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 + ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 + ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 + ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 + ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 + ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 + ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 + ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 + ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 + ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 + ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 + ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 + ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 + ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 + ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 + ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 + ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 + ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 + ERROR_FT_READ_FAILURE syscall.Errno = 415 + ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 + ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 + ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 + 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_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 + ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 + ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 + ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 + ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 + ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 + ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 + ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 + ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 + ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 + ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 + ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 + ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 + ERROR_INVALID_ADDRESS syscall.Errno = 487 + ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 + ERROR_PARTITION_TERMINATING syscall.Errno = 1184 + ERROR_USER_PROFILE_LOAD syscall.Errno = 500 + ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 + ERROR_PIPE_CONNECTED syscall.Errno = 535 + ERROR_PIPE_LISTENING syscall.Errno = 536 + ERROR_VERIFIER_STOP syscall.Errno = 537 + ERROR_ABIOS_ERROR syscall.Errno = 538 + ERROR_WX86_WARNING syscall.Errno = 539 + ERROR_WX86_ERROR syscall.Errno = 540 + ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 + ERROR_UNWIND syscall.Errno = 542 + ERROR_BAD_STACK syscall.Errno = 543 + ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 + ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 + ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 + ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 + ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 + ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 + ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 + ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 + ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 + ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 + ERROR_CANT_WAIT syscall.Errno = 554 + ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 + ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 + ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 + ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 + ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 + ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 + ERROR_INVALID_LDT_SIZE syscall.Errno = 561 + ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 + ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 + ERROR_TOO_MANY_THREADS syscall.Errno = 565 + ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 + ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 + ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 + ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 + ERROR_NET_OPEN_FAILED syscall.Errno = 570 + ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 + ERROR_CONTROL_C_EXIT syscall.Errno = 572 + ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 + ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 + ERROR_APP_INIT_FAILURE syscall.Errno = 575 + ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 + ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 + ERROR_NO_PAGEFILE syscall.Errno = 578 + ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 + ERROR_NO_EVENT_PAIR syscall.Errno = 580 + ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 + ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 + ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 + ERROR_FLOPPY_VOLUME syscall.Errno = 584 + ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 + ERROR_BACKUP_CONTROLLER syscall.Errno = 586 + ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 + ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 + ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 + ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 + ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 + ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 + ERROR_VDM_HARD_ERROR syscall.Errno = 593 + ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 + ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 + ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 + ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 + ERROR_NOT_TINY_STREAM syscall.Errno = 598 + ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 + ERROR_CONVERT_TO_LARGE syscall.Errno = 600 + ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 + ERROR_ALLOCATE_BUCKET syscall.Errno = 602 + ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 + ERROR_INVALID_VARIANT syscall.Errno = 604 + ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 + ERROR_AUDIT_FAILED syscall.Errno = 606 + ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 + ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 + ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 + ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 + ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 + ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 + ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 + ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 + ERROR_PWD_TOO_SHORT syscall.Errno = 615 + ERROR_PWD_TOO_RECENT syscall.Errno = 616 + ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 + ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 + ERROR_INVALID_HW_PROFILE syscall.Errno = 619 + ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 + ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 + ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 + ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 + ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 + ERROR_VALIDATE_CONTINUE syscall.Errno = 625 + ERROR_NO_MORE_MATCHES syscall.Errno = 626 + ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 + ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 + ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 + ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 + ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 + ERROR_NOINTERFACE syscall.Errno = 632 + ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 + ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 + ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 + ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 + ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 + ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 + ERROR_INSUFFICIENT_POWER syscall.Errno = 639 + ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 + ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 + ERROR_PORT_NOT_SET syscall.Errno = 642 + ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 + ERROR_RANGE_NOT_FOUND syscall.Errno = 644 + ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 + ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 + ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 + ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 + ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 + ERROR_MCA_OCCURED syscall.Errno = 651 + ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 + ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 + ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 + ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 + ERROR_HIBERNATION_FAILURE syscall.Errno = 656 + ERROR_PWD_TOO_LONG syscall.Errno = 657 + ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 + ERROR_ASSERTION_FAILURE syscall.Errno = 668 + ERROR_ACPI_ERROR syscall.Errno = 669 + ERROR_WOW_ASSERTION syscall.Errno = 670 + ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 + ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 + ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 + ERROR_PNP_INVALID_ID syscall.Errno = 674 + ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 + ERROR_HANDLES_CLOSED syscall.Errno = 676 + ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 + ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 + ERROR_MEDIA_CHECK syscall.Errno = 679 + ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 + ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 + ERROR_LONGJUMP syscall.Errno = 682 + ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 + ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 + ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 + ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 + ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 + ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 + ERROR_DBG_REPLY_LATER syscall.Errno = 689 + ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 + ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 + ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 + ERROR_DBG_CONTROL_C syscall.Errno = 693 + ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 + ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 + ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 + ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 + ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 + ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 + ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 + ERROR_RXACT_STATE_CREATED syscall.Errno = 701 + ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 + ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 + ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 + ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 + ERROR_RECEIVE_PARTIAL syscall.Errno = 707 + ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 + ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 + ERROR_EVENT_DONE syscall.Errno = 710 + ERROR_EVENT_PENDING syscall.Errno = 711 + ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 + ERROR_FATAL_APP_EXIT syscall.Errno = 713 + ERROR_PREDEFINED_HANDLE syscall.Errno = 714 + ERROR_WAS_UNLOCKED syscall.Errno = 715 + ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 + ERROR_WAS_LOCKED syscall.Errno = 717 + ERROR_LOG_HARD_ERROR syscall.Errno = 718 + ERROR_ALREADY_WIN32 syscall.Errno = 719 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 + ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 + ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 + ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 + ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 + ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 + ERROR_HIBERNATED syscall.Errno = 726 + ERROR_RESUME_HIBERNATION syscall.Errno = 727 + ERROR_FIRMWARE_UPDATED syscall.Errno = 728 + ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 + ERROR_WAKE_SYSTEM syscall.Errno = 730 + ERROR_WAIT_1 syscall.Errno = 731 + ERROR_WAIT_2 syscall.Errno = 732 + ERROR_WAIT_3 syscall.Errno = 733 + ERROR_WAIT_63 syscall.Errno = 734 + ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 + ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 + ERROR_USER_APC syscall.Errno = 737 + ERROR_KERNEL_APC syscall.Errno = 738 + ERROR_ALERTED syscall.Errno = 739 + ERROR_ELEVATION_REQUIRED syscall.Errno = 740 + ERROR_REPARSE syscall.Errno = 741 + ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 + ERROR_VOLUME_MOUNTED syscall.Errno = 743 + ERROR_RXACT_COMMITTED syscall.Errno = 744 + ERROR_NOTIFY_CLEANUP syscall.Errno = 745 + ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 + ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 + ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 + ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 + ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 + ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 + ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 + ERROR_CRASH_DUMP syscall.Errno = 753 + ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 + ERROR_REPARSE_OBJECT syscall.Errno = 755 + ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 + ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 + ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 + ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 + ERROR_PROCESS_IN_JOB syscall.Errno = 760 + ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 + ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 + ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 + ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 + ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 + ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 + ERROR_DBG_CONTINUE syscall.Errno = 767 + ERROR_CALLBACK_POP_STACK syscall.Errno = 768 + ERROR_COMPRESSION_DISABLED syscall.Errno = 769 + ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 + ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 + ERROR_ROWSNOTRELEASED syscall.Errno = 772 + ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 + ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 + ERROR_NOT_CAPABLE syscall.Errno = 775 + ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 + ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 + ERROR_BADSTARTPOSITION syscall.Errno = 778 + ERROR_MEMORY_HARDWARE syscall.Errno = 779 + ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 + ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 + ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 + ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 + ERROR_MCA_EXCEPTION syscall.Errno = 784 + ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 + ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 + ERROR_ABANDON_HIBERFILE syscall.Errno = 787 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 + ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 + ERROR_BAD_MCFG_TABLE syscall.Errno = 791 + ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 + ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 + ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 + ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 + ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 + ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 + ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 + ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 + ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 + ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 + ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 + ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 + ERROR_NO_ACE_CONDITION syscall.Errno = 804 + ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 + ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 + ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 + ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 + ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 + ERROR_QUOTA_ACTIVITY syscall.Errno = 810 + ERROR_HANDLE_REVOKED syscall.Errno = 811 + ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 + ERROR_CPU_SET_INVALID syscall.Errno = 813 + ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 + ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 + ERROR_EA_ACCESS_DENIED syscall.Errno = 994 + ERROR_OPERATION_ABORTED syscall.Errno = 995 + ERROR_IO_INCOMPLETE syscall.Errno = 996 + ERROR_IO_PENDING syscall.Errno = 997 + ERROR_NOACCESS syscall.Errno = 998 + ERROR_SWAPERROR syscall.Errno = 999 + ERROR_STACK_OVERFLOW syscall.Errno = 1001 + ERROR_INVALID_MESSAGE syscall.Errno = 1002 + ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 + ERROR_INVALID_FLAGS syscall.Errno = 1004 + ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 + ERROR_FILE_INVALID syscall.Errno = 1006 + ERROR_FULLSCREEN_MODE syscall.Errno = 1007 + ERROR_NO_TOKEN syscall.Errno = 1008 + ERROR_BADDB syscall.Errno = 1009 + ERROR_BADKEY syscall.Errno = 1010 + ERROR_CANTOPEN syscall.Errno = 1011 + ERROR_CANTREAD syscall.Errno = 1012 + ERROR_CANTWRITE syscall.Errno = 1013 + ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 + ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 + ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 + ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 + ERROR_KEY_DELETED syscall.Errno = 1018 + ERROR_NO_LOG_SPACE syscall.Errno = 1019 + ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 + ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 + ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 + ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 + ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 + ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 + ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 + ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 + ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 + ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 + ERROR_SERVICE_DISABLED syscall.Errno = 1058 + ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 + ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 + ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 + ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 + ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 + ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 + ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 + ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 + ERROR_PROCESS_ABORTED syscall.Errno = 1067 + ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 + ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 + ERROR_SERVICE_START_HANG syscall.Errno = 1070 + ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 + ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 + ERROR_SERVICE_EXISTS syscall.Errno = 1073 + ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 + ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 + ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 + ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 + ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 + ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 + ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 + ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 + ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 + ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 + ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 + ERROR_END_OF_MEDIA syscall.Errno = 1100 + ERROR_FILEMARK_DETECTED syscall.Errno = 1101 + ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 + ERROR_SETMARK_DETECTED syscall.Errno = 1103 + ERROR_NO_DATA_DETECTED syscall.Errno = 1104 + ERROR_PARTITION_FAILURE syscall.Errno = 1105 + ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 + ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 + ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 + ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 + ERROR_MEDIA_CHANGED syscall.Errno = 1110 + ERROR_BUS_RESET syscall.Errno = 1111 + ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 + ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 + ERROR_DLL_INIT_FAILED syscall.Errno = 1114 + ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 + ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 + ERROR_IO_DEVICE syscall.Errno = 1117 + ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 + ERROR_IRQ_BUSY syscall.Errno = 1119 + ERROR_MORE_WRITES syscall.Errno = 1120 + ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 + ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 + ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 + ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 + ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 + ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 + ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 + ERROR_DISK_RESET_FAILED syscall.Errno = 1128 + ERROR_EOM_OVERFLOW syscall.Errno = 1129 + ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 + ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 + ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 + ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 + ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 + ERROR_TOO_MANY_LINKS syscall.Errno = 1142 + ERROR_OLD_WIN_VERSION syscall.Errno = 1150 + ERROR_APP_WRONG_OS syscall.Errno = 1151 + ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 + ERROR_RMODE_APP syscall.Errno = 1153 + ERROR_INVALID_DLL syscall.Errno = 1154 + ERROR_NO_ASSOCIATION syscall.Errno = 1155 + ERROR_DDE_FAIL syscall.Errno = 1156 + ERROR_DLL_NOT_FOUND syscall.Errno = 1157 + ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 + ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 + ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 + ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 + ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 + ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 + ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 + ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 + ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 + ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 + ERROR_NOT_FOUND syscall.Errno = 1168 + ERROR_NO_MATCH syscall.Errno = 1169 + ERROR_SET_NOT_FOUND syscall.Errno = 1170 + ERROR_POINT_NOT_FOUND syscall.Errno = 1171 + ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 + ERROR_NO_VOLUME_ID syscall.Errno = 1173 + ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 + ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 + ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 + ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 + ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 + ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 + ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 + ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 + ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 + ERROR_BAD_DEVICE syscall.Errno = 1200 + ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 + ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 + ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 + ERROR_BAD_PROVIDER syscall.Errno = 1204 + ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 + ERROR_BAD_PROFILE syscall.Errno = 1206 + ERROR_NOT_CONTAINER syscall.Errno = 1207 + ERROR_EXTENDED_ERROR syscall.Errno = 1208 + ERROR_INVALID_GROUPNAME syscall.Errno = 1209 + ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 + ERROR_INVALID_EVENTNAME syscall.Errno = 1211 + ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 + ERROR_INVALID_SERVICENAME syscall.Errno = 1213 + ERROR_INVALID_NETNAME syscall.Errno = 1214 + ERROR_INVALID_SHARENAME syscall.Errno = 1215 + ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 + ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 + ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 + ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 + ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 + ERROR_DUP_DOMAINNAME syscall.Errno = 1221 + ERROR_NO_NETWORK syscall.Errno = 1222 + ERROR_CANCELLED syscall.Errno = 1223 + ERROR_USER_MAPPED_FILE syscall.Errno = 1224 + ERROR_CONNECTION_REFUSED syscall.Errno = 1225 + ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 + ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 + ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 + ERROR_CONNECTION_INVALID syscall.Errno = 1229 + ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 + ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 + ERROR_HOST_UNREACHABLE syscall.Errno = 1232 + ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 + ERROR_PORT_UNREACHABLE syscall.Errno = 1234 + ERROR_REQUEST_ABORTED syscall.Errno = 1235 + ERROR_CONNECTION_ABORTED syscall.Errno = 1236 + ERROR_RETRY syscall.Errno = 1237 + ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 + ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 + ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 + ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 + ERROR_ALREADY_REGISTERED syscall.Errno = 1242 + ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 + ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 + ERROR_NOT_LOGGED_ON syscall.Errno = 1245 + ERROR_CONTINUE syscall.Errno = 1246 + ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 + ERROR_NO_MORE_DEVICES syscall.Errno = 1248 + ERROR_NO_SUCH_SITE syscall.Errno = 1249 + ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 + ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 + ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 + ERROR_BAD_USER_PROFILE syscall.Errno = 1253 + ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 + ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 + ERROR_HOST_DOWN syscall.Errno = 1256 + ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 + ERROR_NON_DOMAIN_SID syscall.Errno = 1258 + ERROR_APPHELP_BLOCK syscall.Errno = 1259 + ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 + ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 + ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 + ERROR_PKINIT_FAILURE syscall.Errno = 1263 + ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 + ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 + ERROR_MACHINE_LOCKED syscall.Errno = 1271 + ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 + ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 + ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 + ERROR_DRIVER_BLOCKED syscall.Errno = 1275 + ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 + ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 + ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 + ERROR_RECOVERY_FAILURE syscall.Errno = 1279 + ERROR_ALREADY_FIBER syscall.Errno = 1280 + ERROR_ALREADY_THREAD syscall.Errno = 1281 + ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 + ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 + ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 + ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 + ERROR_VDM_DISALLOWED syscall.Errno = 1286 + ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 + ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 + ERROR_BEYOND_VDL syscall.Errno = 1289 + ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 + ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 + ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 + ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 + ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 + ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 + ERROR_CONTENT_BLOCKED syscall.Errno = 1296 + ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 + ERROR_APP_HANG syscall.Errno = 1298 + ERROR_INVALID_LABEL syscall.Errno = 1299 + ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 + ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 + ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 + ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 + ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 + ERROR_UNKNOWN_REVISION syscall.Errno = 1305 + ERROR_REVISION_MISMATCH syscall.Errno = 1306 + ERROR_INVALID_OWNER syscall.Errno = 1307 + ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 + ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 + ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 + ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 + ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 + ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 + ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 + ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 + ERROR_USER_EXISTS syscall.Errno = 1316 + ERROR_NO_SUCH_USER syscall.Errno = 1317 + ERROR_GROUP_EXISTS syscall.Errno = 1318 + ERROR_NO_SUCH_GROUP syscall.Errno = 1319 + ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 + ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 + ERROR_LAST_ADMIN syscall.Errno = 1322 + ERROR_WRONG_PASSWORD syscall.Errno = 1323 + ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 + ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 + ERROR_LOGON_FAILURE syscall.Errno = 1326 + ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 + ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 + ERROR_INVALID_WORKSTATION syscall.Errno = 1329 + ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 + ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 + ERROR_NONE_MAPPED syscall.Errno = 1332 + ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 + ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 + ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 + ERROR_INVALID_ACL syscall.Errno = 1336 + ERROR_INVALID_SID syscall.Errno = 1337 + ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 + ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 + ERROR_SERVER_DISABLED syscall.Errno = 1341 + ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 + ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 + ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 + ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 + ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 + ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 + ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 + ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 + ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 + ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 + ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 + ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 + ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 + ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 + ERROR_DOMAIN_EXISTS syscall.Errno = 1356 + ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 + ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 + ERROR_INTERNAL_ERROR syscall.Errno = 1359 + ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 + ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 + ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 + ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 + ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 + ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 + ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 + ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 + ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 + ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 + ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 + ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 + ERROR_SPECIAL_GROUP syscall.Errno = 1372 + ERROR_SPECIAL_USER syscall.Errno = 1373 + ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 + ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 + ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 + ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 + ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 + ERROR_ALIAS_EXISTS syscall.Errno = 1379 + ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 + ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 + ERROR_SECRET_TOO_LONG syscall.Errno = 1382 + ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 + ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 + ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 + ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 + ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 + ERROR_INVALID_MEMBER syscall.Errno = 1388 + ERROR_TOO_MANY_SIDS syscall.Errno = 1389 + ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 + ERROR_NO_INHERITANCE syscall.Errno = 1391 + ERROR_FILE_CORRUPT syscall.Errno = 1392 + ERROR_DISK_CORRUPT syscall.Errno = 1393 + ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 + ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 + ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 + ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 + ERROR_TIME_SKEW syscall.Errno = 1398 + ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 + ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 + ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 + ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 + ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 + ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 + ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 + ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 + ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 + ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 + ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 + ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 + ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 + ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 + ERROR_INVALID_INDEX syscall.Errno = 1413 + ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 + ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 + ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 + ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 + ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 + ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 + ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 + ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 + ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 + ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 + ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 + ERROR_DC_NOT_FOUND syscall.Errno = 1425 + ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 + ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 + ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 + ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 + ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 + ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 + ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 + ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 + ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 + ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 + ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 + ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 + ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 + ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 + ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 + ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 + ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 + ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 + ERROR_INVALID_THREAD_ID syscall.Errno = 1444 + ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 + ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 + ERROR_NO_SCROLLBARS syscall.Errno = 1447 + ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 + ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 + ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 + ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 + ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 + ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 + ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 + ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 + ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 + ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 + ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 + ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 + ERROR_TIMEOUT syscall.Errno = 1460 + ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 + ERROR_INCORRECT_SIZE syscall.Errno = 1462 + ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 + ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 + ERROR_XML_PARSE_ERROR syscall.Errno = 1465 + ERROR_XMLDSIG_ERROR syscall.Errno = 1466 + ERROR_RESTART_APPLICATION syscall.Errno = 1467 + ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 + ERROR_AUTHIP_FAILURE syscall.Errno = 1469 + ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 + ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 + ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 + ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 + ERROR_LOG_FILE_FULL syscall.Errno = 1502 + ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 + ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 + ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 + ERROR_INVALID_TASK_NAME syscall.Errno = 1550 + ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 + ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 + ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 + ERROR_INSTALL_USEREXIT syscall.Errno = 1602 + ERROR_INSTALL_FAILURE syscall.Errno = 1603 + ERROR_INSTALL_SUSPEND syscall.Errno = 1604 + ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 + ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 + ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 + ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 + ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 + ERROR_BAD_CONFIGURATION syscall.Errno = 1610 + ERROR_INDEX_ABSENT syscall.Errno = 1611 + ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 + ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 + ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 + ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 + ERROR_INVALID_FIELD syscall.Errno = 1616 + ERROR_DEVICE_REMOVED syscall.Errno = 1617 + ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 + ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 + ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 + ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 + ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 + ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 + ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 + ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 + ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 + ERROR_FUNCTION_FAILED syscall.Errno = 1627 + ERROR_INVALID_TABLE syscall.Errno = 1628 + ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 + ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 + ERROR_CREATE_FAILED syscall.Errno = 1631 + ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 + ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 + ERROR_INSTALL_NOTUSED syscall.Errno = 1634 + ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 + ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 + ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 + ERROR_PRODUCT_VERSION syscall.Errno = 1638 + ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 + ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 + ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 + ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 + ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 + ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 + ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 + ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 + ERROR_UNKNOWN_PATCH syscall.Errno = 1647 + ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 + ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 + ERROR_INVALID_PATCH_XML syscall.Errno = 1650 + ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 + ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 + ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 + ERROR_INSTALL_REJECTED syscall.Errno = 1654 + ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 + ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 + ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 + ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 + ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 + RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 + RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 + RPC_S_INVALID_BINDING syscall.Errno = 1702 + RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 + RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 + RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 + RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 + RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 + RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 + RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 + RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 + RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 + RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 + RPC_S_ALREADY_LISTENING syscall.Errno = 1713 + RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 + RPC_S_NOT_LISTENING syscall.Errno = 1715 + RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 + RPC_S_UNKNOWN_IF syscall.Errno = 1717 + RPC_S_NO_BINDINGS syscall.Errno = 1718 + RPC_S_NO_PROTSEQS syscall.Errno = 1719 + RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 + RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 + RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 + RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 + RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 + RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 + RPC_S_CALL_FAILED syscall.Errno = 1726 + RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 + RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 + RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 + RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 + RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 + RPC_S_INVALID_TAG syscall.Errno = 1733 + RPC_S_INVALID_BOUND syscall.Errno = 1734 + RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 + RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 + RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 + RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 + RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 + RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 + RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 + RPC_S_STRING_TOO_LONG syscall.Errno = 1743 + RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 + RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 + RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 + RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 + RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 + RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 + RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 + EPT_S_INVALID_ENTRY syscall.Errno = 1751 + EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 + EPT_S_NOT_REGISTERED syscall.Errno = 1753 + RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 + RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 + RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 + RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 + RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 + RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 + RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 + RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 + RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 + RPC_S_INVALID_NAF_ID syscall.Errno = 1763 + RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 + RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 + RPC_S_INTERNAL_ERROR syscall.Errno = 1766 + RPC_S_ZERO_DIVIDE syscall.Errno = 1767 + RPC_S_ADDRESS_ERROR syscall.Errno = 1768 + RPC_S_FP_DIV_ZERO syscall.Errno = 1769 + RPC_S_FP_UNDERFLOW syscall.Errno = 1770 + RPC_S_FP_OVERFLOW syscall.Errno = 1771 + RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 + RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 + RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 + RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 + RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 + RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 + RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 + RPC_X_NULL_REF_POINTER syscall.Errno = 1780 + RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 + RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 + RPC_X_BAD_STUB_DATA syscall.Errno = 1783 + ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 + ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 + ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 + ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 + ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 + ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 + ERROR_TRUST_FAILURE syscall.Errno = 1790 + RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 + ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 + ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 + ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 + ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 + ERROR_UNKNOWN_PORT syscall.Errno = 1796 + ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 + ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 + ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 + ERROR_INVALID_PRIORITY syscall.Errno = 1800 + ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 + ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 + ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 + ERROR_INVALID_DATATYPE syscall.Errno = 1804 + ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 + RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 + ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 + ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 + ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 + ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 + ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 + ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 + ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 + ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 + ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 + ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 + RPC_S_NO_INTERFACES syscall.Errno = 1817 + RPC_S_CALL_CANCELLED syscall.Errno = 1818 + RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 + RPC_S_COMM_FAILURE syscall.Errno = 1820 + RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 + RPC_S_NO_PRINC_NAME syscall.Errno = 1822 + RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 + RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 + RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 + RPC_S_NOT_CANCELLED syscall.Errno = 1826 + RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 + RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 + RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 + RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 + RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 + RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 + RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 + RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 + RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 + RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 + RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 + EPT_S_CANT_CREATE syscall.Errno = 1899 + RPC_S_INVALID_OBJECT syscall.Errno = 1900 + ERROR_INVALID_TIME syscall.Errno = 1901 + ERROR_INVALID_FORM_NAME syscall.Errno = 1902 + ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 + ERROR_ALREADY_WAITING syscall.Errno = 1904 + ERROR_PRINTER_DELETED syscall.Errno = 1905 + ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 + ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 + ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 + ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 + OR_INVALID_OXID syscall.Errno = 1910 + OR_INVALID_OID syscall.Errno = 1911 + OR_INVALID_SET syscall.Errno = 1912 + RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 + RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 + RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 + RPC_X_PIPE_CLOSED syscall.Errno = 1916 + RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 + RPC_X_PIPE_EMPTY syscall.Errno = 1918 + ERROR_NO_SITENAME syscall.Errno = 1919 + ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 + ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 + RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 + RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 + RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 + RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 + RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 + RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 + RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 + RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 + ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 + ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 + ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 + ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 + ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 + ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 + ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 + ERROR_NTLM_BLOCKED syscall.Errno = 1937 + ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 + ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 + ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 + ERROR_BAD_DRIVER syscall.Errno = 2001 + ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 + ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 + ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 + ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 + ERROR_INVALID_CMM syscall.Errno = 2010 + ERROR_INVALID_PROFILE syscall.Errno = 2011 + ERROR_TAG_NOT_FOUND syscall.Errno = 2012 + ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 + ERROR_DUPLICATE_TAG syscall.Errno = 2014 + ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 + ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 + ERROR_INVALID_COLORSPACE syscall.Errno = 2017 + ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 + ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 + ERROR_INVALID_TRANSFORM syscall.Errno = 2020 + ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 + ERROR_INVALID_COLORINDEX syscall.Errno = 2022 + ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 + ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 + ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 + ERROR_BAD_USERNAME syscall.Errno = 2202 + ERROR_NOT_CONNECTED syscall.Errno = 2250 + ERROR_OPEN_FILES syscall.Errno = 2401 + ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 + ERROR_DEVICE_IN_USE syscall.Errno = 2404 + ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 + ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 + ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 + ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 + ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 + ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 + ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 + ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 + ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 + ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 + ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 + ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 + ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 + ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 + ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 + ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 + ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 + ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 + ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 + ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 + ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 + ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 + ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 + ERROR_REQUEST_PAUSED syscall.Errno = 3050 + ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 + ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 + ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 + ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 + ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 + ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 + ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 + ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 + ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 + ERROR_WINS_INTERNAL syscall.Errno = 4000 + ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 + ERROR_STATIC_INIT syscall.Errno = 4002 + ERROR_INC_BACKUP syscall.Errno = 4003 + ERROR_FULL_BACKUP syscall.Errno = 4004 + ERROR_REC_NON_EXISTENT syscall.Errno = 4005 + ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 + PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 + PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 + PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 + PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 + PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 + PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 + PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 + PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 + PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 + PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 + PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 + PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 + PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 + PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 + PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 + PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 + PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 + ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 + ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 + ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 + ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 + ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 + ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 + ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 + ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 + ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 + ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 + ERROR_WMI_DP_FAILED syscall.Errno = 4209 + ERROR_WMI_INVALID_MOF syscall.Errno = 4210 + ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 + ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 + ERROR_WMI_READ_ONLY syscall.Errno = 4213 + ERROR_WMI_SET_FAILURE syscall.Errno = 4214 + ERROR_NOT_APPCONTAINER syscall.Errno = 4250 + ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 + ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 + ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 + ERROR_INVALID_MEDIA syscall.Errno = 4300 + ERROR_INVALID_LIBRARY syscall.Errno = 4301 + ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 + ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 + ERROR_MEDIA_OFFLINE syscall.Errno = 4304 + ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 + ERROR_EMPTY syscall.Errno = 4306 + ERROR_NOT_EMPTY syscall.Errno = 4307 + ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 + ERROR_RESOURCE_DISABLED syscall.Errno = 4309 + ERROR_INVALID_CLEANER syscall.Errno = 4310 + ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 + ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 + ERROR_DATABASE_FAILURE syscall.Errno = 4313 + ERROR_DATABASE_FULL syscall.Errno = 4314 + ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 + ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 + ERROR_INVALID_OPERATION syscall.Errno = 4317 + ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 + ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 + ERROR_REQUEST_REFUSED syscall.Errno = 4320 + ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 + ERROR_LIBRARY_FULL syscall.Errno = 4322 + ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 + ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 + ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 + ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 + ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 + ERROR_TRANSPORT_FULL syscall.Errno = 4328 + ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 + ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 + ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 + ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 + ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 + ERROR_UNEXPECTED_OMID syscall.Errno = 4334 + ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 + ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 + ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 + ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 + ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 + ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 + ERROR_IEPORT_FULL syscall.Errno = 4341 + ERROR_FILE_OFFLINE syscall.Errno = 4350 + ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 + ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 + ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 + ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 + ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 + ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 + ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 + ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 + ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 + ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 + ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 + ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 + ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 + ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 + ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 + ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 + ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 + ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 + ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 + ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 + ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 + ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 + ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 + ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 + ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 + ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 + ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 + ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 + ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 + ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 + ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 + ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 + ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 + ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 + ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 + ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 + ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 + ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 + ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 + ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 + 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 + ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 + ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 + ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 + ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 + ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 + ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 + ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 + ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 + ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 + ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 + ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 + ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 + ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 + ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 + ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 + ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 + ERROR_OBJECT_IN_LIST syscall.Errno = 5011 + ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 + ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 + ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 + ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 + ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 + ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 + ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 + ERROR_RESOURCE_ONLINE syscall.Errno = 5019 + ERROR_QUORUM_RESOURCE syscall.Errno = 5020 + ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 + ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 + ERROR_INVALID_STATE syscall.Errno = 5023 + ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 + ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 + ERROR_CORE_RESOURCE syscall.Errno = 5026 + ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 + ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 + ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 + ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 + ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 + ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 + ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 + ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 + ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 + ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 + ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 + ERROR_RESOURCE_FAILED syscall.Errno = 5038 + ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 + ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 + ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 + ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 + ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 + ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 + ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 + ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 + ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 + ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 + ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 + ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 + ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 + ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 + ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 + ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 + ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 + ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 + ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 + ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 + ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 + ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 + ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 + ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 + ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 + ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 + ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 + ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 + ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 + ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 + ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 + ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 + ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 + ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 + ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 + ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 + ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 + ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 + ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 + ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 + ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 + ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 + ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 + ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 + ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 + ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 + ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 + ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 + ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 + ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 + ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 + ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 + ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 + ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 + ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 + ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 + ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 + ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 + ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 + ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 + ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 + ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 + ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 + ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 + ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 + ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 + ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 + ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 + ERROR_CLUSTER_POISONED syscall.Errno = 5907 + ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 + ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 + ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 + ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 + ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 + ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 + ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 + ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 + ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 + ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 + ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 + ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 + ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 + ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 + ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 + ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 + ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 + ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 + ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 + ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 + ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 + ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 + ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 + ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 + ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 + ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 + ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 + ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 + ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 + ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 + ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 + ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 + ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 + ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 + ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 + ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 + ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 + ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 + ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 + ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 + ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 + ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 + ERROR_NON_CSV_PATH syscall.Errno = 5950 + ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 + ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 + ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 + ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 + ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 + ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 + ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 + ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 + ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 + ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 + ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 + ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 + ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 + ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 + ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 + ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 + ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 + ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 + ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 + ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 + ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 + ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 + ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 + ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 + ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 + ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 + ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 + ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 + ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 + ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 + ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 + ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 + ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 + ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 + ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 + ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 + ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 + ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 + ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 + ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 + ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 + ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 + ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 + ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 + ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 + ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 + ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 + ERROR_DECRYPTION_FAILED syscall.Errno = 6001 + ERROR_FILE_ENCRYPTED syscall.Errno = 6002 + ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 + ERROR_NO_EFS syscall.Errno = 6004 + ERROR_WRONG_EFS syscall.Errno = 6005 + ERROR_NO_USER_KEYS syscall.Errno = 6006 + ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 + ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 + ERROR_FILE_READ_ONLY syscall.Errno = 6009 + ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 + ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 + ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 + ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 + ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 + ERROR_EFS_DISABLED syscall.Errno = 6015 + ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 + ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 + ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 + ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 + 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 + ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 + ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 + ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 + ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 + ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 + ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 + ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 + ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 + ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 + ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 + ERROR_LOG_NO_RESTART syscall.Errno = 6611 + ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 + ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 + ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 + ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 + ERROR_LOG_CANT_DELETE syscall.Errno = 6616 + ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 + ERROR_LOG_START_OF_LOG syscall.Errno = 6618 + ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 + ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 + ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 + ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 + ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 + ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 + ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 + ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 + ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 + ERROR_LOG_FULL syscall.Errno = 6628 + ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 + ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 + ERROR_LOG_DEDICATED syscall.Errno = 6631 + ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 + ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 + ERROR_LOG_EPHEMERAL syscall.Errno = 6634 + ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 + ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 + ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 + ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 + ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 + ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 + ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 + ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 + ERROR_LOG_STATE_INVALID syscall.Errno = 6643 + ERROR_LOG_PINNED syscall.Errno = 6644 + ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 + ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 + ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 + ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 + ERROR_INVALID_TRANSACTION syscall.Errno = 6700 + ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 + ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 + ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 + ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 + ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 + ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 + ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 + ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 + ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 + ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 + ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 + ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 + ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 + ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 + ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 + ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 + ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 + ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 + ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 + ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 + ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 + ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 + ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 + ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 + ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 + ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 + ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 + ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 + ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 + ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 + ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 + ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 + ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 + ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 + ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 + ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 + ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 + ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 + ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 + ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 + ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 + ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 + ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 + ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 + ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 + ERROR_NO_TXF_METADATA syscall.Errno = 6816 + ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 + ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 + ERROR_RM_DISCONNECTED syscall.Errno = 6819 + ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 + ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 + ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 + ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 + ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 + ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 + ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 + ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 + ERROR_TM_VOLATILE syscall.Errno = 6828 + ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 + ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 + ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 + ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 + ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 + ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 + ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 + ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 + ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 + ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 + ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 + ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 + ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 + ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 + ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 + ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 + ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 + ERROR_FLOATED_SECTION syscall.Errno = 6846 + ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 + ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 + ERROR_BAD_CLUSTERS syscall.Errno = 6849 + ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 + ERROR_VOLUME_DIRTY syscall.Errno = 6851 + ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 + ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 + ERROR_EXPIRED_HANDLE syscall.Errno = 6854 + ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 + ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 + ERROR_CTX_INVALID_PD syscall.Errno = 7002 + ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 + ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 + ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 + ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 + ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 + ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 + ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 + ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 + ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 + ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 + ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 + ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 + ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 + ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 + ERROR_CTX_TD_ERROR syscall.Errno = 7017 + ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 + ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 + ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 + ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 + ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 + ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 + ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 + ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 + ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 + ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 + ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 + ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 + ERROR_CTX_INVALID_WD syscall.Errno = 7049 + ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 + ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 + ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 + ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 + ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 + ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 + ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 + ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 + ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 + ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 + ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 + ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 + ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 + ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 + ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 + ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 + ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 + ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 + ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 + ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 + ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 + FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 + FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 + FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 + FRS_ERR_INTERNAL_API syscall.Errno = 8004 + FRS_ERR_INTERNAL syscall.Errno = 8005 + FRS_ERR_SERVICE_COMM syscall.Errno = 8006 + FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 + FRS_ERR_AUTHENTICATION syscall.Errno = 8008 + FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 + FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 + FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 + FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 + FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 + FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 + FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 + FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 + FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 + DS_S_SUCCESS = ERROR_SUCCESS + ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 + ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 + ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 + ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 + ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 + ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 + ERROR_DS_BUSY syscall.Errno = 8206 + ERROR_DS_UNAVAILABLE syscall.Errno = 8207 + ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 + ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 + ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 + ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 + ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 + ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 + ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 + ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 + ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 + ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 + ERROR_SHARED_POLICY syscall.Errno = 8218 + ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 + ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 + ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 + ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 + ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 + ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 + ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 + ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 + ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 + ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 + ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 + ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 + ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 + ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 + ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 + ERROR_DS_REFERRAL syscall.Errno = 8235 + ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 + ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 + ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 + ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 + ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 + ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 + ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 + ERROR_DS_IS_LEAF syscall.Errno = 8243 + ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 + ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 + ERROR_DS_LOOP_DETECT syscall.Errno = 8246 + ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 + ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 + ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 + ERROR_DS_SERVER_DOWN syscall.Errno = 8250 + ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 + ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 + ERROR_DS_DECODING_ERROR syscall.Errno = 8253 + ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 + ERROR_DS_PARAM_ERROR syscall.Errno = 8255 + ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 + ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 + ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 + ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 + ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 + ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 + ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 + ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 + ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 + ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 + ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 + ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 + ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 + ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 + ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 + ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 + ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 + ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 + ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 + ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 + ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 + ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 + ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 + ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 + ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 + ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 + ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 + ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 + ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 + ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 + ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 + ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 + ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 + ERROR_DS_NO_CHAINING syscall.Errno = 8327 + ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 + ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 + ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 + ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 + ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 + ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 + ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 + ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 + ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 + ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 + ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 + ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 + ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 + ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 + ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 + ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 + ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 + ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 + ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 + ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 + ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 + ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 + ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 + ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 + ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 + ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 + ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 + ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 + ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 + ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 + ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 + ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 + ERROR_DS_INVALID_DMD syscall.Errno = 8360 + ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 + ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 + ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 + ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 + ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 + ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 + ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 + ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 + ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 + ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 + ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 + ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 + ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 + ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 + ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 + ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 + ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 + ERROR_DS_DUP_RDN syscall.Errno = 8378 + ERROR_DS_DUP_OID syscall.Errno = 8379 + ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 + ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 + ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 + ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 + ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 + ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 + ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 + ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 + ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 + ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 + ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 + ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 + ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 + ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 + ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 + ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 + ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 + ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 + ERROR_DS_CANT_DELETE syscall.Errno = 8398 + ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 + ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 + ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 + ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 + ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 + ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 + ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 + ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 + ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 + ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 + ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 + ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 + ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 + ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 + ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 + ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 + ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 + ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 + ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 + ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 + ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 + ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 + ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 + ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 + ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 + ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 + ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 + ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 + ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 + ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 + ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 + ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 + ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 + ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 + ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 + ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 + ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 + ERROR_DS_DRA_GENERIC syscall.Errno = 8436 + ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 + ERROR_DS_DRA_BUSY syscall.Errno = 8438 + ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 + ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 + ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 + ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 + ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 + ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 + ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 + ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 + ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 + ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 + ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 + ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 + ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 + ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 + ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 + ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 + ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 + ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 + ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 + ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 + ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 + ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 + ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 + ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 + ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 + ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 + ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 + ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 + ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 + ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 + ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 + ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 + ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 + ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 + ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 + ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 + ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 + ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 + ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 + ERROR_DS_DS_REQUIRED syscall.Errno = 8478 + ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 + ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 + ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 + ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 + ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 + ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 + ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 + ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 + ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 + ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 + ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 + ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 + ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 + ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 + ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 + ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 + ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 + ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 + ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 + ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 + ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 + ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 + ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 + ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 + ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 + ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 + ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 + ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 + ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 + ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 + ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 + ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 + ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 + ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 + ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 + ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 + ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 + ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 + ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 + ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 + ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 + ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 + ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 + ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 + ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 + ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 + ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 + ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 + ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 + ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 + ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 + ERROR_DS_CANT_START syscall.Errno = 8531 + ERROR_DS_INIT_FAILURE syscall.Errno = 8532 + ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 + ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 + ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 + ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 + ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 + ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 + ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 + ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 + ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 + ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 + ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 + ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 + ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 + ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 + ERROR_DS_GC_REQUIRED syscall.Errno = 8547 + ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 + ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 + ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 + ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 + ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 + ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 + ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 + ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 + ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 + ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 + ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 + ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 + ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 + ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 + ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 + ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 + ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 + ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 + ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 + ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 + ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 + ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 + ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 + ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 + ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 + ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 + ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 + ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 + ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 + ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 + ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 + ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 + ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 + ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 + ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 + ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 + ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 + ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 + ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 + ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 + ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 + ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 + ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 + ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 + ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 + ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 + ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 + ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 + ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 + ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 + ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 + ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 + ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 + ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 + ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 + ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 + ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 + ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 + ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 + ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 + ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 + ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 + ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 + ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 + ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 + ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 + ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 + ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 + ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 + ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 + ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 + ERROR_NO_SECRETS syscall.Errno = 8620 + ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 + ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 + ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 + ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 + ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 + ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 + ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 + ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 + ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 + ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 + ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 + ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 + ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 + ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 + ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 + ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 + ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 + ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 + ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 + ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 + ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 + ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 + ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 + ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 + ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 + ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 + ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 + ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 + ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 + ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 + DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 + DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS + DNS_ERROR_MASK syscall.Errno = 0x00002328 + DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 + DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 + DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 + DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 + DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 + DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 + DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 + DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 + DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 + DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 + DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 + DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 + DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 + DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME + DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 + DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 + DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 + DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 + DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 + DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 + DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 + DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 + DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 + DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 + DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 + DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 + DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 + DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 + DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 + DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 + DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 + DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 + DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 + DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 + DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 + DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 + DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 + DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 + DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 + DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 + DNS_ERROR_INVALID_XML syscall.Errno = 9126 + DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 + DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 + DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 + DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 + DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 + DNS_INFO_NO_RECORDS syscall.Errno = 9501 + DNS_ERROR_BAD_PACKET syscall.Errno = 9502 + DNS_ERROR_NO_PACKET syscall.Errno = 9503 + DNS_ERROR_RCODE syscall.Errno = 9504 + DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 + DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET + DNS_REQUEST_PENDING syscall.Errno = 9506 + DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY + DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME + DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA + DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 + DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 + DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 + DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 + DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 + DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 + DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 + DNS_STATUS_FQDN syscall.Errno = 9557 + DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 + DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 + DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 + DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 + DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 + DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 + DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 + DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 + DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 + DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 + DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 + DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 + DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 + DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 + DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 + DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 + DNS_ERROR_ZONE_BASE syscall.Errno = 9600 + DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 + DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 + DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 + DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 + DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 + DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 + DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 + DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 + DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 + DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 + DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 + DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 + DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 + DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 + DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 + DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 + DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 + DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 + DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 + DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 + DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 + DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 + DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 + DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 + DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 + DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 + DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 + DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 + DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 + DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 + DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 + DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 + DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 + DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 + DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 + DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 + DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 + DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 + DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 + DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 + DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 + DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 + DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 + DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 + DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 + DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 + DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 + DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 + DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 + DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 + DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 + DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 + DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 + DNS_ERROR_AXFR syscall.Errno = 9752 + DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 + DNS_ERROR_SECURE_BASE syscall.Errno = 9800 + DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 + DNS_ERROR_SETUP_BASE syscall.Errno = 9850 + DNS_ERROR_NO_TCPIP syscall.Errno = 9851 + DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 + DNS_ERROR_DP_BASE syscall.Errno = 9900 + DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 + DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 + DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 + DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 + DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 + DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 + DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 + DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 + DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 + DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 + DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 + DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 + DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 + DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 + DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 + DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 + DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 + DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 + DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 + DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 + DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 + DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 + DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 + DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 + DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 + DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 + DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 + DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 + DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 + DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 + DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 + DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 + DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 + DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 + DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 + DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 + DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 + DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 + DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 + DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 + DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 + DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 + DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 + DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 + DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 + DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 + DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 + DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 + DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 + DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 + DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 + DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 + DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 + DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 + DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 + DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 + DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 + WSABASEERR syscall.Errno = 10000 + WSAEINTR syscall.Errno = 10004 + WSAEBADF syscall.Errno = 10009 + WSAEACCES syscall.Errno = 10013 + WSAEFAULT syscall.Errno = 10014 + WSAEINVAL syscall.Errno = 10022 + WSAEMFILE syscall.Errno = 10024 + WSAEWOULDBLOCK syscall.Errno = 10035 + WSAEINPROGRESS syscall.Errno = 10036 + WSAEALREADY syscall.Errno = 10037 + WSAENOTSOCK syscall.Errno = 10038 + WSAEDESTADDRREQ syscall.Errno = 10039 + WSAEMSGSIZE syscall.Errno = 10040 + WSAEPROTOTYPE syscall.Errno = 10041 + WSAENOPROTOOPT syscall.Errno = 10042 + WSAEPROTONOSUPPORT syscall.Errno = 10043 + WSAESOCKTNOSUPPORT syscall.Errno = 10044 + WSAEOPNOTSUPP syscall.Errno = 10045 + WSAEPFNOSUPPORT syscall.Errno = 10046 + WSAEAFNOSUPPORT syscall.Errno = 10047 + WSAEADDRINUSE syscall.Errno = 10048 + WSAEADDRNOTAVAIL syscall.Errno = 10049 + WSAENETDOWN syscall.Errno = 10050 + WSAENETUNREACH syscall.Errno = 10051 + WSAENETRESET syscall.Errno = 10052 + WSAECONNABORTED syscall.Errno = 10053 + WSAECONNRESET syscall.Errno = 10054 + WSAENOBUFS syscall.Errno = 10055 + WSAEISCONN syscall.Errno = 10056 + WSAENOTCONN syscall.Errno = 10057 + WSAESHUTDOWN syscall.Errno = 10058 + WSAETOOMANYREFS syscall.Errno = 10059 + WSAETIMEDOUT syscall.Errno = 10060 + WSAECONNREFUSED syscall.Errno = 10061 + WSAELOOP syscall.Errno = 10062 + WSAENAMETOOLONG syscall.Errno = 10063 + WSAEHOSTDOWN syscall.Errno = 10064 + WSAEHOSTUNREACH syscall.Errno = 10065 + WSAENOTEMPTY syscall.Errno = 10066 + WSAEPROCLIM syscall.Errno = 10067 + WSAEUSERS syscall.Errno = 10068 + WSAEDQUOT syscall.Errno = 10069 + WSAESTALE syscall.Errno = 10070 + WSAEREMOTE syscall.Errno = 10071 + WSASYSNOTREADY syscall.Errno = 10091 + WSAVERNOTSUPPORTED syscall.Errno = 10092 + WSANOTINITIALISED syscall.Errno = 10093 + WSAEDISCON syscall.Errno = 10101 + WSAENOMORE syscall.Errno = 10102 + WSAECANCELLED syscall.Errno = 10103 + WSAEINVALIDPROCTABLE syscall.Errno = 10104 + WSAEINVALIDPROVIDER syscall.Errno = 10105 + WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 + WSASYSCALLFAILURE syscall.Errno = 10107 + WSASERVICE_NOT_FOUND syscall.Errno = 10108 + WSATYPE_NOT_FOUND syscall.Errno = 10109 + WSA_E_NO_MORE syscall.Errno = 10110 + WSA_E_CANCELLED syscall.Errno = 10111 + WSAEREFUSED syscall.Errno = 10112 + WSAHOST_NOT_FOUND syscall.Errno = 11001 + WSATRY_AGAIN syscall.Errno = 11002 + WSANO_RECOVERY syscall.Errno = 11003 + WSANO_DATA syscall.Errno = 11004 + WSA_QOS_RECEIVERS syscall.Errno = 11005 + WSA_QOS_SENDERS syscall.Errno = 11006 + WSA_QOS_NO_SENDERS syscall.Errno = 11007 + WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 + WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 + WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 + WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 + WSA_QOS_BAD_STYLE syscall.Errno = 11012 + WSA_QOS_BAD_OBJECT syscall.Errno = 11013 + WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 + WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 + WSA_QOS_ESERVICETYPE syscall.Errno = 11016 + WSA_QOS_EFLOWSPEC syscall.Errno = 11017 + WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 + WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 + WSA_QOS_EFILTERTYPE syscall.Errno = 11020 + WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 + WSA_QOS_EOBJLENGTH syscall.Errno = 11022 + WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 + WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 + WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 + WSA_QOS_EFLOWDESC syscall.Errno = 11026 + WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 + WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 + WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 + WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 + WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 + WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 + WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 + ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 + ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 + ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 + ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 + ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 + ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 + ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 + ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 + ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 + ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 + ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 + ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 + ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 + ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 + ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 + ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 + ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 + ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 + ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 + ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 + ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 + ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 + ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 + ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 + WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 + WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 + ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 + ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 + ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 + ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 + ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 + ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 + ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 + ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 + ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 + ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 + ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 + ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 + ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 + ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 + ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 + ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 + ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 + ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 + ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 + ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 + ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 + ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 + ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 + ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 + ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 + ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 + ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 + ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 + ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 + ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 + ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 + ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 + ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 + ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 + ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 + ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 + ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 + ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 + ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 + ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 + ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 + ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 + ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 + ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 + ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 + ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 + ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 + ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 + ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 + ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 + ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 + ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 + ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 + ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 + ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 + ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 + ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 + ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 + ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 + ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 + ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 + ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 + ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 + ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 + ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 + ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 + ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 + ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 + ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 + ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 + ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 + ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 + ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 + ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 + ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 + ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 + ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 + ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 + ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 + ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 + ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 + ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 + ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 + ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 + ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 + ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 + ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 + ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 + ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 + ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 + ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 + ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 + ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 + ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 + ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 + ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 + ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 + ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 + ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 + ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 + ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 + ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 + ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 + ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 + ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 + ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 + ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 + ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 + ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 + ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 + ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 + ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 + ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 + ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 + ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 + ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 + ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 + ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 + ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 + ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 + ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 + ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 + ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 + ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 + ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 + ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 + ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 + ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 + ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 + ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 + ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 + ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 + ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 + ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 + ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 + ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 + ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 + ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 + ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 + ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 + ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 + ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 + ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 + ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 + ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 + ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 + ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 + ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 + ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 + ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 + ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 + ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 + ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 + ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 + ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 + ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 + ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 + ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 + ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 + ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 + ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 + ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 + ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 + ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 + ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 + ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 + ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 + ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 + ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 + ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 + ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 + ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 + ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 + ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 + ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 + ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 + ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 + ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 + ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 + ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 + ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 + ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 + ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 + ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 + ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 + ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 + ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 + ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 + ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 + ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 + ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 + ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 + ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 + ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 + ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 + ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 + ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 + ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 + ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 + ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 + ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 + ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 + ERROR_SXS_CORRUPTION syscall.Errno = 14083 + ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 + ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 + ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 + ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 + ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 + ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 + ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 + ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 + ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 + ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 + ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 + ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 + ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 + ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 + ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 + ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 + ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 + ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 + ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 + ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 + ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 + ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 + 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 + ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 + ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 + ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 + ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 + ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 + ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 + ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 + ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 + ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 + ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 + ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 + ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 + ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 + ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 + ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 + ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 + ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 + ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 + ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 + ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 + ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 + ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 + ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 + ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 + ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 + ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 + ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 + ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 + ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 + ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 + ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 + ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 + ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 + ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 + ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 + ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 + ERROR_EC_LOG_DISABLED syscall.Errno = 15081 + ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 + ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 + ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 + ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 + ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 + ERROR_MUI_INVALID_FILE syscall.Errno = 15101 + ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 + ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 + ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 + ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 + ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 + ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 + ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 + ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 + ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 + ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 + ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 + ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 + ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 + ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 + ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 + ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 + ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 + ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 + ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 + ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 + ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 + ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 + ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 + ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 + ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 + ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 + ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 + ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 + ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 + ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 + ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 + ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 + ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 + ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 + ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 + ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 + ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 + ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 + ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 + ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 + ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 + ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 + 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 + ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 + ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 + ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 + ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 + ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 + ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 + ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 + ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 + ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 + ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 + ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 + ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 + ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 + ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 + ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 + ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 + ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 + ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 + ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 + ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 + ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 + ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 + ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 + ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 + ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 + ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 + ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 + ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 + ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 + ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 + ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 + ERROR_INSTALL_CANCEL syscall.Errno = 15608 + ERROR_INSTALL_FAILED syscall.Errno = 15609 + ERROR_REMOVE_FAILED syscall.Errno = 15610 + ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 + ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 + ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 + ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 + ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 + ERROR_PACKAGE_UPDATING syscall.Errno = 15616 + ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 + ERROR_PACKAGES_IN_USE syscall.Errno = 15618 + ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 + ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 + ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 + ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 + ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 + ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 + ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 + ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 + ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 + ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 + ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 + ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 + ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 + ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 + ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 + ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 + ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 + ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 + ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 + ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 + ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 + ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 + ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 + ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 + 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 + APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 + 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 + ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 + ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 + ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 + ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 + ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 + ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 + ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 + ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 + ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 + ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 + ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 + ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 + ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 + ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 + ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 + ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 + ERROR_API_UNAVAILABLE syscall.Errno = 15841 + STORE_ERROR_UNLICENSED syscall.Errno = 15861 + STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 + STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 + STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 + SEVERITY_SUCCESS syscall.Errno = 0 + SEVERITY_ERROR syscall.Errno = 1 + FACILITY_NT_BIT = 0x10000000 + E_NOT_SET = ERROR_NOT_FOUND + E_NOT_VALID_STATE = ERROR_INVALID_STATE + E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER + 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 + E_OUTOFMEMORY Handle = 0x8007000E + E_INVALIDARG Handle = 0x80070057 + E_NOINTERFACE Handle = 0x80004002 + E_POINTER Handle = 0x80004003 + E_HANDLE Handle = 0x80070006 + E_ABORT Handle = 0x80004004 + E_FAIL Handle = 0x80004005 + E_ACCESSDENIED Handle = 0x80070005 + E_PENDING Handle = 0x8000000A + E_BOUNDS Handle = 0x8000000B + E_CHANGED_STATE Handle = 0x8000000C + E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D + E_ILLEGAL_METHOD_CALL Handle = 0x8000000E + RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F + RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 + RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 + RO_E_INVALID_METADATA_FILE Handle = 0x80000012 + RO_E_CLOSED Handle = 0x80000013 + RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 + RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 + RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 + E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 + E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 + E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 + E_APPLICATION_EXITING Handle = 0x8000001A + E_APPLICATION_VIEW_EXITING Handle = 0x8000001B + RO_E_MUST_BE_AGILE Handle = 0x8000001C + RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D + RO_E_COMMITTED Handle = 0x8000001E + RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F + RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 + RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 + CO_E_INIT_TLS Handle = 0x80004006 + CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 + CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 + CO_E_INIT_CLASS_CACHE Handle = 0x80004009 + CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A + CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B + CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C + CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D + CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E + CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F + CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 + CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 + CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 + CO_E_CANT_REMOTE Handle = 0x80004013 + CO_E_BAD_SERVER_NAME Handle = 0x80004014 + CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 + CO_E_OLE1DDE_DISABLED Handle = 0x80004016 + CO_E_RUNAS_SYNTAX Handle = 0x80004017 + CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 + CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 + CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A + CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B + CO_E_START_SERVICE_FAILURE Handle = 0x8000401C + CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D + CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E + CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F + CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 + CO_E_NOT_SUPPORTED Handle = 0x80004021 + CO_E_RELOAD_DLL Handle = 0x80004022 + CO_E_MSI_ERROR Handle = 0x80004023 + CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 + CO_E_SERVER_PAUSED Handle = 0x80004025 + CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 + CO_E_CLASS_DISABLED Handle = 0x80004027 + CO_E_CLRNOTAVAILABLE Handle = 0x80004028 + CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 + CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A + CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B + CO_E_TRACKER_CONFIG Handle = 0x80004030 + CO_E_THREADPOOL_CONFIG Handle = 0x80004031 + CO_E_SXS_CONFIG Handle = 0x80004032 + CO_E_MALFORMED_SPN Handle = 0x80004033 + CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 + CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 + S_OK Handle = 0 + S_FALSE Handle = 1 + OLE_E_FIRST Handle = 0x80040000 + OLE_E_LAST Handle = 0x800400FF + OLE_S_FIRST Handle = 0x00040000 + OLE_S_LAST Handle = 0x000400FF + OLE_E_OLEVERB Handle = 0x80040000 + OLE_E_ADVF Handle = 0x80040001 + OLE_E_ENUM_NOMORE Handle = 0x80040002 + OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 + OLE_E_NOCONNECTION Handle = 0x80040004 + OLE_E_NOTRUNNING Handle = 0x80040005 + OLE_E_NOCACHE Handle = 0x80040006 + OLE_E_BLANK Handle = 0x80040007 + OLE_E_CLASSDIFF Handle = 0x80040008 + OLE_E_CANT_GETMONIKER Handle = 0x80040009 + OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A + OLE_E_STATIC Handle = 0x8004000B + OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C + OLE_E_INVALIDRECT Handle = 0x8004000D + OLE_E_WRONGCOMPOBJ Handle = 0x8004000E + OLE_E_INVALIDHWND Handle = 0x8004000F + OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 + OLE_E_CANTCONVERT Handle = 0x80040011 + OLE_E_NOSTORAGE Handle = 0x80040012 + DV_E_FORMATETC Handle = 0x80040064 + DV_E_DVTARGETDEVICE Handle = 0x80040065 + DV_E_STGMEDIUM Handle = 0x80040066 + DV_E_STATDATA Handle = 0x80040067 + DV_E_LINDEX Handle = 0x80040068 + DV_E_TYMED Handle = 0x80040069 + DV_E_CLIPFORMAT Handle = 0x8004006A + DV_E_DVASPECT Handle = 0x8004006B + DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C + DV_E_NOIVIEWOBJECT Handle = 0x8004006D + DRAGDROP_E_FIRST syscall.Errno = 0x80040100 + DRAGDROP_E_LAST syscall.Errno = 0x8004010F + DRAGDROP_S_FIRST syscall.Errno = 0x00040100 + DRAGDROP_S_LAST syscall.Errno = 0x0004010F + DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 + DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 + DRAGDROP_E_INVALIDHWND Handle = 0x80040102 + DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 + CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 + CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F + CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 + CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F + CLASS_E_NOAGGREGATION Handle = 0x80040110 + CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 + CLASS_E_NOTLICENSED Handle = 0x80040112 + MARSHAL_E_FIRST syscall.Errno = 0x80040120 + MARSHAL_E_LAST syscall.Errno = 0x8004012F + MARSHAL_S_FIRST syscall.Errno = 0x00040120 + MARSHAL_S_LAST syscall.Errno = 0x0004012F + DATA_E_FIRST syscall.Errno = 0x80040130 + DATA_E_LAST syscall.Errno = 0x8004013F + DATA_S_FIRST syscall.Errno = 0x00040130 + DATA_S_LAST syscall.Errno = 0x0004013F + VIEW_E_FIRST syscall.Errno = 0x80040140 + VIEW_E_LAST syscall.Errno = 0x8004014F + VIEW_S_FIRST syscall.Errno = 0x00040140 + VIEW_S_LAST syscall.Errno = 0x0004014F + VIEW_E_DRAW Handle = 0x80040140 + REGDB_E_FIRST syscall.Errno = 0x80040150 + REGDB_E_LAST syscall.Errno = 0x8004015F + REGDB_S_FIRST syscall.Errno = 0x00040150 + REGDB_S_LAST syscall.Errno = 0x0004015F + REGDB_E_READREGDB Handle = 0x80040150 + REGDB_E_WRITEREGDB Handle = 0x80040151 + REGDB_E_KEYMISSING Handle = 0x80040152 + REGDB_E_INVALIDVALUE Handle = 0x80040153 + REGDB_E_CLASSNOTREG Handle = 0x80040154 + REGDB_E_IIDNOTREG Handle = 0x80040155 + REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 + REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 + CAT_E_FIRST syscall.Errno = 0x80040160 + CAT_E_LAST syscall.Errno = 0x80040161 + CAT_E_CATIDNOEXIST Handle = 0x80040160 + CAT_E_NODESCRIPTION Handle = 0x80040161 + CS_E_FIRST syscall.Errno = 0x80040164 + CS_E_LAST syscall.Errno = 0x8004016F + CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 + CS_E_NOT_DELETABLE Handle = 0x80040165 + CS_E_CLASS_NOTFOUND Handle = 0x80040166 + CS_E_INVALID_VERSION Handle = 0x80040167 + CS_E_NO_CLASSSTORE Handle = 0x80040168 + CS_E_OBJECT_NOTFOUND Handle = 0x80040169 + CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A + CS_E_INVALID_PATH Handle = 0x8004016B + CS_E_NETWORK_ERROR Handle = 0x8004016C + CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D + CS_E_SCHEMA_MISMATCH Handle = 0x8004016E + CS_E_INTERNAL_ERROR Handle = 0x8004016F + CACHE_E_FIRST syscall.Errno = 0x80040170 + CACHE_E_LAST syscall.Errno = 0x8004017F + CACHE_S_FIRST syscall.Errno = 0x00040170 + CACHE_S_LAST syscall.Errno = 0x0004017F + CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 + OLEOBJ_E_FIRST syscall.Errno = 0x80040180 + OLEOBJ_E_LAST syscall.Errno = 0x8004018F + OLEOBJ_S_FIRST syscall.Errno = 0x00040180 + OLEOBJ_S_LAST syscall.Errno = 0x0004018F + OLEOBJ_E_NOVERBS Handle = 0x80040180 + OLEOBJ_E_INVALIDVERB Handle = 0x80040181 + CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 + CLIENTSITE_E_LAST syscall.Errno = 0x8004019F + CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 + CLIENTSITE_S_LAST syscall.Errno = 0x0004019F + INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 + INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 + INPLACE_E_FIRST syscall.Errno = 0x800401A0 + INPLACE_E_LAST syscall.Errno = 0x800401AF + INPLACE_S_FIRST syscall.Errno = 0x000401A0 + INPLACE_S_LAST syscall.Errno = 0x000401AF + ENUM_E_FIRST syscall.Errno = 0x800401B0 + ENUM_E_LAST syscall.Errno = 0x800401BF + ENUM_S_FIRST syscall.Errno = 0x000401B0 + ENUM_S_LAST syscall.Errno = 0x000401BF + CONVERT10_E_FIRST syscall.Errno = 0x800401C0 + CONVERT10_E_LAST syscall.Errno = 0x800401CF + CONVERT10_S_FIRST syscall.Errno = 0x000401C0 + CONVERT10_S_LAST syscall.Errno = 0x000401CF + CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 + CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 + CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 + CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 + CONVERT10_E_STG_FMT Handle = 0x800401C4 + CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 + CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 + CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 + CLIPBRD_E_LAST syscall.Errno = 0x800401DF + CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 + CLIPBRD_S_LAST syscall.Errno = 0x000401DF + CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 + CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 + CLIPBRD_E_CANT_SET Handle = 0x800401D2 + CLIPBRD_E_BAD_DATA Handle = 0x800401D3 + CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 + MK_E_FIRST syscall.Errno = 0x800401E0 + MK_E_LAST syscall.Errno = 0x800401EF + MK_S_FIRST syscall.Errno = 0x000401E0 + MK_S_LAST syscall.Errno = 0x000401EF + MK_E_CONNECTMANUALLY Handle = 0x800401E0 + MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 + MK_E_NEEDGENERIC Handle = 0x800401E2 + MK_E_UNAVAILABLE Handle = 0x800401E3 + MK_E_SYNTAX Handle = 0x800401E4 + MK_E_NOOBJECT Handle = 0x800401E5 + MK_E_INVALIDEXTENSION Handle = 0x800401E6 + MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 + MK_E_NOTBINDABLE Handle = 0x800401E8 + MK_E_NOTBOUND Handle = 0x800401E9 + MK_E_CANTOPENFILE Handle = 0x800401EA + MK_E_MUSTBOTHERUSER Handle = 0x800401EB + MK_E_NOINVERSE Handle = 0x800401EC + MK_E_NOSTORAGE Handle = 0x800401ED + MK_E_NOPREFIX Handle = 0x800401EE + MK_E_ENUMERATION_FAILED Handle = 0x800401EF + CO_E_FIRST syscall.Errno = 0x800401F0 + CO_E_LAST syscall.Errno = 0x800401FF + CO_S_FIRST syscall.Errno = 0x000401F0 + CO_S_LAST syscall.Errno = 0x000401FF + CO_E_NOTINITIALIZED Handle = 0x800401F0 + CO_E_ALREADYINITIALIZED Handle = 0x800401F1 + CO_E_CANTDETERMINECLASS Handle = 0x800401F2 + CO_E_CLASSSTRING Handle = 0x800401F3 + CO_E_IIDSTRING Handle = 0x800401F4 + CO_E_APPNOTFOUND Handle = 0x800401F5 + CO_E_APPSINGLEUSE Handle = 0x800401F6 + CO_E_ERRORINAPP Handle = 0x800401F7 + CO_E_DLLNOTFOUND Handle = 0x800401F8 + CO_E_ERRORINDLL Handle = 0x800401F9 + CO_E_WRONGOSFORAPP Handle = 0x800401FA + CO_E_OBJNOTREG Handle = 0x800401FB + CO_E_OBJISREG Handle = 0x800401FC + CO_E_OBJNOTCONNECTED Handle = 0x800401FD + CO_E_APPDIDNTREG Handle = 0x800401FE + CO_E_RELEASED Handle = 0x800401FF + EVENT_E_FIRST syscall.Errno = 0x80040200 + EVENT_E_LAST syscall.Errno = 0x8004021F + EVENT_S_FIRST syscall.Errno = 0x00040200 + EVENT_S_LAST syscall.Errno = 0x0004021F + EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 + EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 + EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 + EVENT_E_QUERYSYNTAX Handle = 0x80040203 + EVENT_E_QUERYFIELD Handle = 0x80040204 + EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 + EVENT_E_INTERNALERROR Handle = 0x80040206 + EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 + EVENT_E_USER_EXCEPTION Handle = 0x80040208 + EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 + EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A + EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B + EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C + EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D + EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E + EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F + EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 + TPC_E_INVALID_PROPERTY Handle = 0x80040241 + TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 + TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B + TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 + TPC_E_INVALID_STROKE Handle = 0x80040222 + TPC_E_INITIALIZE_FAIL Handle = 0x80040223 + TPC_E_NOT_RELEVANT Handle = 0x80040232 + TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 + TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 + TPC_E_INVALID_RIGHTS Handle = 0x80040236 + TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 + TPC_E_QUEUE_FULL Handle = 0x80040238 + TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 + TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A + TPC_S_TRUNCATED Handle = 0x00040252 + TPC_S_INTERRUPTED Handle = 0x00040253 + TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 + XACT_E_FIRST syscall.Errno = 0x8004D000 + XACT_E_LAST syscall.Errno = 0x8004D02B + XACT_S_FIRST syscall.Errno = 0x0004D000 + XACT_S_LAST syscall.Errno = 0x0004D010 + XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 + XACT_E_CANTRETAIN Handle = 0x8004D001 + XACT_E_COMMITFAILED Handle = 0x8004D002 + XACT_E_COMMITPREVENTED Handle = 0x8004D003 + XACT_E_HEURISTICABORT Handle = 0x8004D004 + XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 + XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 + XACT_E_HEURISTICDANGER Handle = 0x8004D007 + XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 + XACT_E_NOASYNC Handle = 0x8004D009 + XACT_E_NOENLIST Handle = 0x8004D00A + XACT_E_NOISORETAIN Handle = 0x8004D00B + XACT_E_NORESOURCE Handle = 0x8004D00C + XACT_E_NOTCURRENT Handle = 0x8004D00D + XACT_E_NOTRANSACTION Handle = 0x8004D00E + XACT_E_NOTSUPPORTED Handle = 0x8004D00F + XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 + XACT_E_WRONGSTATE Handle = 0x8004D011 + XACT_E_WRONGUOW Handle = 0x8004D012 + XACT_E_XTIONEXISTS Handle = 0x8004D013 + XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 + XACT_E_INVALIDCOOKIE Handle = 0x8004D015 + XACT_E_INDOUBT Handle = 0x8004D016 + XACT_E_NOTIMEOUT Handle = 0x8004D017 + XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 + XACT_E_ABORTED Handle = 0x8004D019 + XACT_E_LOGFULL Handle = 0x8004D01A + XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B + XACT_E_CONNECTION_DOWN Handle = 0x8004D01C + XACT_E_CONNECTION_DENIED Handle = 0x8004D01D + XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E + XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F + XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 + XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 + XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 + XACT_E_TIP_DISABLED Handle = 0x8004D023 + XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 + XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 + XACT_E_XA_TX_DISABLED Handle = 0x8004D026 + XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 + XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 + XACT_E_ABORTING Handle = 0x8004D029 + XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A + XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B + XACT_E_LU_TX_DISABLED Handle = 0x8004D02C + XACT_E_CLERKNOTFOUND Handle = 0x8004D080 + XACT_E_CLERKEXISTS Handle = 0x8004D081 + XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 + XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 + XACT_E_INVALIDLSN Handle = 0x8004D084 + XACT_E_REPLAYREQUEST Handle = 0x8004D085 + XACT_S_ASYNC Handle = 0x0004D000 + XACT_S_DEFECT Handle = 0x0004D001 + XACT_S_READONLY Handle = 0x0004D002 + XACT_S_SOMENORETAIN Handle = 0x0004D003 + XACT_S_OKINFORM Handle = 0x0004D004 + XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 + XACT_S_MADECHANGESINFORM Handle = 0x0004D006 + XACT_S_ALLNORETAIN Handle = 0x0004D007 + XACT_S_ABORTING Handle = 0x0004D008 + XACT_S_SINGLEPHASE Handle = 0x0004D009 + XACT_S_LOCALLY_OK Handle = 0x0004D00A + XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 + CONTEXT_E_FIRST syscall.Errno = 0x8004E000 + CONTEXT_E_LAST syscall.Errno = 0x8004E02F + CONTEXT_S_FIRST syscall.Errno = 0x0004E000 + CONTEXT_S_LAST syscall.Errno = 0x0004E02F + CONTEXT_E_ABORTED Handle = 0x8004E002 + CONTEXT_E_ABORTING Handle = 0x8004E003 + CONTEXT_E_NOCONTEXT Handle = 0x8004E004 + CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 + CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 + CONTEXT_E_OLDREF Handle = 0x8004E007 + CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C + CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F + CO_E_ACTIVATIONFAILED Handle = 0x8004E021 + CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 + CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 + CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 + CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 + CONTEXT_E_NOJIT Handle = 0x8004E026 + CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 + CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 + CO_E_NOIISINTRINSICS Handle = 0x8004E029 + CO_E_NOCOOKIES Handle = 0x8004E02A + CO_E_DBERROR Handle = 0x8004E02B + CO_E_NOTPOOLED Handle = 0x8004E02C + CO_E_NOTCONSTRUCTED Handle = 0x8004E02D + CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E + CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F + CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 + CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 + OLE_S_USEREG Handle = 0x00040000 + OLE_S_STATIC Handle = 0x00040001 + OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 + DRAGDROP_S_DROP Handle = 0x00040100 + DRAGDROP_S_CANCEL Handle = 0x00040101 + DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 + DATA_S_SAMEFORMATETC Handle = 0x00040130 + VIEW_S_ALREADY_FROZEN Handle = 0x00040140 + CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 + CACHE_S_SAMECACHE Handle = 0x00040171 + CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 + OLEOBJ_S_INVALIDVERB Handle = 0x00040180 + OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 + OLEOBJ_S_INVALIDHWND Handle = 0x00040182 + INPLACE_S_TRUNCATED Handle = 0x000401A0 + CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 + MK_S_REDUCED_TO_SELF Handle = 0x000401E2 + MK_S_ME Handle = 0x000401E4 + MK_S_HIM Handle = 0x000401E5 + MK_S_US Handle = 0x000401E6 + MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 + SCHED_S_TASK_READY Handle = 0x00041300 + SCHED_S_TASK_RUNNING Handle = 0x00041301 + SCHED_S_TASK_DISABLED Handle = 0x00041302 + SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 + SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 + SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 + SCHED_S_TASK_TERMINATED Handle = 0x00041306 + SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 + SCHED_S_EVENT_TRIGGER Handle = 0x00041308 + SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 + SCHED_E_TASK_NOT_READY Handle = 0x8004130A + SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B + SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C + SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D + SCHED_E_INVALID_TASK Handle = 0x8004130E + SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F + SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 + SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 + SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 + SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 + SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 + SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 + SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 + SCHED_E_NAMESPACE Handle = 0x80041317 + SCHED_E_INVALIDVALUE Handle = 0x80041318 + SCHED_E_MISSINGNODE Handle = 0x80041319 + SCHED_E_MALFORMEDXML Handle = 0x8004131A + SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B + SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C + SCHED_E_TOO_MANY_NODES Handle = 0x8004131D + SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E + SCHED_E_ALREADY_RUNNING Handle = 0x8004131F + SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 + SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 + SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 + SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 + SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 + SCHED_S_TASK_QUEUED Handle = 0x00041325 + SCHED_E_TASK_DISABLED Handle = 0x80041326 + SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 + SCHED_E_START_ON_DEMAND Handle = 0x80041328 + SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 + SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 + CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 + CO_E_SCM_ERROR Handle = 0x80080002 + CO_E_SCM_RPC_FAILURE Handle = 0x80080003 + CO_E_BAD_PATH Handle = 0x80080004 + CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 + CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 + MK_E_NO_NORMALIZED Handle = 0x80080007 + CO_E_SERVER_STOPPING Handle = 0x80080008 + MEM_E_INVALID_ROOT Handle = 0x80080009 + MEM_E_INVALID_LINK Handle = 0x80080010 + MEM_E_INVALID_SIZE Handle = 0x80080011 + CO_S_NOTALLINTERFACES Handle = 0x00080012 + CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 + CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 + CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 + CO_E_ELEVATION_DISABLED Handle = 0x80080017 + APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 + APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 + APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 + APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 + APPX_E_INVALID_MANIFEST Handle = 0x80080204 + APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 + APPX_E_CORRUPT_CONTENT Handle = 0x80080206 + APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 + APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 + APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 + APPX_E_INVALID_KEY_INFO Handle = 0x8008020A + APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B + APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C + APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D + APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E + APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F + APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 + APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 + APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 + APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 + APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 + APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 + APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 + BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 + DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 + DISP_E_MEMBERNOTFOUND Handle = 0x80020003 + DISP_E_PARAMNOTFOUND Handle = 0x80020004 + DISP_E_TYPEMISMATCH Handle = 0x80020005 + DISP_E_UNKNOWNNAME Handle = 0x80020006 + DISP_E_NONAMEDARGS Handle = 0x80020007 + DISP_E_BADVARTYPE Handle = 0x80020008 + DISP_E_EXCEPTION Handle = 0x80020009 + DISP_E_OVERFLOW Handle = 0x8002000A + DISP_E_BADINDEX Handle = 0x8002000B + DISP_E_UNKNOWNLCID Handle = 0x8002000C + DISP_E_ARRAYISLOCKED Handle = 0x8002000D + DISP_E_BADPARAMCOUNT Handle = 0x8002000E + DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F + DISP_E_BADCALLEE Handle = 0x80020010 + DISP_E_NOTACOLLECTION Handle = 0x80020011 + DISP_E_DIVBYZERO Handle = 0x80020012 + DISP_E_BUFFERTOOSMALL Handle = 0x80020013 + TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 + TYPE_E_FIELDNOTFOUND Handle = 0x80028017 + TYPE_E_INVDATAREAD Handle = 0x80028018 + TYPE_E_UNSUPFORMAT Handle = 0x80028019 + TYPE_E_REGISTRYACCESS Handle = 0x8002801C + TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D + TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 + TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 + TYPE_E_INVALIDSTATE Handle = 0x80028029 + TYPE_E_WRONGTYPEKIND Handle = 0x8002802A + TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B + TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C + TYPE_E_NAMECONFLICT Handle = 0x8002802D + TYPE_E_UNKNOWNLCID Handle = 0x8002802E + TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F + TYPE_E_BADMODULEKIND Handle = 0x800288BD + TYPE_E_SIZETOOBIG Handle = 0x800288C5 + TYPE_E_DUPLICATEID Handle = 0x800288C6 + TYPE_E_INVALIDID Handle = 0x800288CF + TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 + TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 + TYPE_E_IOERROR Handle = 0x80028CA2 + TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 + TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A + TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 + TYPE_E_CIRCULARTYPE Handle = 0x80029C84 + STG_E_INVALIDFUNCTION Handle = 0x80030001 + STG_E_FILENOTFOUND Handle = 0x80030002 + STG_E_PATHNOTFOUND Handle = 0x80030003 + STG_E_TOOMANYOPENFILES Handle = 0x80030004 + STG_E_ACCESSDENIED Handle = 0x80030005 + STG_E_INVALIDHANDLE Handle = 0x80030006 + STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 + STG_E_INVALIDPOINTER Handle = 0x80030009 + STG_E_NOMOREFILES Handle = 0x80030012 + STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 + STG_E_SEEKERROR Handle = 0x80030019 + STG_E_WRITEFAULT Handle = 0x8003001D + STG_E_READFAULT Handle = 0x8003001E + STG_E_SHAREVIOLATION Handle = 0x80030020 + STG_E_LOCKVIOLATION Handle = 0x80030021 + STG_E_FILEALREADYEXISTS Handle = 0x80030050 + STG_E_INVALIDPARAMETER Handle = 0x80030057 + STG_E_MEDIUMFULL Handle = 0x80030070 + STG_E_PROPSETMISMATCHED Handle = 0x800300F0 + STG_E_ABNORMALAPIEXIT Handle = 0x800300FA + STG_E_INVALIDHEADER Handle = 0x800300FB + STG_E_INVALIDNAME Handle = 0x800300FC + STG_E_UNKNOWN Handle = 0x800300FD + STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE + STG_E_INVALIDFLAG Handle = 0x800300FF + STG_E_INUSE Handle = 0x80030100 + STG_E_NOTCURRENT Handle = 0x80030101 + STG_E_REVERTED Handle = 0x80030102 + STG_E_CANTSAVE Handle = 0x80030103 + STG_E_OLDFORMAT Handle = 0x80030104 + STG_E_OLDDLL Handle = 0x80030105 + STG_E_SHAREREQUIRED Handle = 0x80030106 + STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 + STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 + STG_E_DOCFILECORRUPT Handle = 0x80030109 + STG_E_BADBASEADDRESS Handle = 0x80030110 + STG_E_DOCFILETOOLARGE Handle = 0x80030111 + STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 + STG_E_INCOMPLETE Handle = 0x80030201 + STG_E_TERMINATED Handle = 0x80030202 + STG_S_CONVERTED Handle = 0x00030200 + STG_S_BLOCK Handle = 0x00030201 + STG_S_RETRYNOW Handle = 0x00030202 + STG_S_MONITORING Handle = 0x00030203 + STG_S_MULTIPLEOPENS Handle = 0x00030204 + STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 + STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 + STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 + STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 + STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 + STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A + STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 + STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 + STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 + STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 + STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 + STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A + STG_E_RESETS_EXHAUSTED Handle = 0x8003030B + RPC_E_CALL_REJECTED Handle = 0x80010001 + RPC_E_CALL_CANCELED Handle = 0x80010002 + RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 + RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 + RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 + RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 + RPC_E_SERVER_DIED Handle = 0x80010007 + RPC_E_CLIENT_DIED Handle = 0x80010008 + RPC_E_INVALID_DATAPACKET Handle = 0x80010009 + RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A + RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B + RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C + RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D + RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E + RPC_E_INVALID_DATA Handle = 0x8001000F + RPC_E_INVALID_PARAMETER Handle = 0x80010010 + RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 + RPC_E_SERVER_DIED_DNE Handle = 0x80010012 + RPC_E_SYS_CALL_FAILED Handle = 0x80010100 + RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 + RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 + RPC_E_NOT_REGISTERED Handle = 0x80010103 + RPC_E_FAULT Handle = 0x80010104 + RPC_E_SERVERFAULT Handle = 0x80010105 + RPC_E_CHANGED_MODE Handle = 0x80010106 + RPC_E_INVALIDMETHOD Handle = 0x80010107 + RPC_E_DISCONNECTED Handle = 0x80010108 + RPC_E_RETRY Handle = 0x80010109 + RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A + RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B + RPC_E_INVALID_CALLDATA Handle = 0x8001010C + RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D + RPC_E_WRONG_THREAD Handle = 0x8001010E + RPC_E_THREAD_NOT_INIT Handle = 0x8001010F + RPC_E_VERSION_MISMATCH Handle = 0x80010110 + RPC_E_INVALID_HEADER Handle = 0x80010111 + RPC_E_INVALID_EXTENSION Handle = 0x80010112 + RPC_E_INVALID_IPID Handle = 0x80010113 + RPC_E_INVALID_OBJECT Handle = 0x80010114 + RPC_S_CALLPENDING Handle = 0x80010115 + RPC_S_WAITONTIMER Handle = 0x80010116 + RPC_E_CALL_COMPLETE Handle = 0x80010117 + RPC_E_UNSECURE_CALL Handle = 0x80010118 + RPC_E_TOO_LATE Handle = 0x80010119 + RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A + RPC_E_ACCESS_DENIED Handle = 0x8001011B + RPC_E_REMOTE_DISABLED Handle = 0x8001011C + RPC_E_INVALID_OBJREF Handle = 0x8001011D + RPC_E_NO_CONTEXT Handle = 0x8001011E + RPC_E_TIMEOUT Handle = 0x8001011F + RPC_E_NO_SYNC Handle = 0x80010120 + RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 + RPC_E_INVALID_STD_NAME Handle = 0x80010122 + CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 + CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 + CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 + CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 + CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 + CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 + CO_E_FAILEDTOSETDACL Handle = 0x80010129 + CO_E_ACCESSCHECKFAILED Handle = 0x8001012A + CO_E_NETACCESSAPIFAILED Handle = 0x8001012B + CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C + CO_E_INVALIDSID Handle = 0x8001012D + CO_E_CONVERSIONFAILED Handle = 0x8001012E + CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F + CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 + CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 + CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 + CO_E_SETSERLHNDLFAILED Handle = 0x80010133 + CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 + CO_E_PATHTOOLONG Handle = 0x80010135 + CO_E_FAILEDTOGENUUID Handle = 0x80010136 + CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 + CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 + CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 + CO_E_ACESINWRONGORDER Handle = 0x8001013A + CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B + CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C + CO_E_DECODEFAILED Handle = 0x8001013D + CO_E_ACNOTINITIALIZED Handle = 0x8001013F + CO_E_CANCEL_DISABLED Handle = 0x80010140 + RPC_E_UNEXPECTED Handle = 0x8001FFFF + ERROR_AUDITING_DISABLED Handle = 0xC0090001 + ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 + ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 + NTE_BAD_UID Handle = 0x80090001 + NTE_BAD_HASH Handle = 0x80090002 + NTE_BAD_KEY Handle = 0x80090003 + NTE_BAD_LEN Handle = 0x80090004 + NTE_BAD_DATA Handle = 0x80090005 + NTE_BAD_SIGNATURE Handle = 0x80090006 + NTE_BAD_VER Handle = 0x80090007 + NTE_BAD_ALGID Handle = 0x80090008 + NTE_BAD_FLAGS Handle = 0x80090009 + NTE_BAD_TYPE Handle = 0x8009000A + NTE_BAD_KEY_STATE Handle = 0x8009000B + NTE_BAD_HASH_STATE Handle = 0x8009000C + NTE_NO_KEY Handle = 0x8009000D + NTE_NO_MEMORY Handle = 0x8009000E + NTE_EXISTS Handle = 0x8009000F + NTE_PERM Handle = 0x80090010 + NTE_NOT_FOUND Handle = 0x80090011 + NTE_DOUBLE_ENCRYPT Handle = 0x80090012 + NTE_BAD_PROVIDER Handle = 0x80090013 + NTE_BAD_PROV_TYPE Handle = 0x80090014 + NTE_BAD_PUBLIC_KEY Handle = 0x80090015 + NTE_BAD_KEYSET Handle = 0x80090016 + NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 + NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 + NTE_KEYSET_NOT_DEF Handle = 0x80090019 + NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A + NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B + NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C + NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D + NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E + NTE_BAD_KEYSET_PARAM Handle = 0x8009001F + NTE_FAIL Handle = 0x80090020 + NTE_SYS_ERR Handle = 0x80090021 + NTE_SILENT_CONTEXT Handle = 0x80090022 + NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 + NTE_TEMPORARY_PROFILE Handle = 0x80090024 + NTE_FIXEDPARAMETER Handle = 0x80090025 + NTE_INVALID_HANDLE Handle = 0x80090026 + NTE_INVALID_PARAMETER Handle = 0x80090027 + NTE_BUFFER_TOO_SMALL Handle = 0x80090028 + NTE_NOT_SUPPORTED Handle = 0x80090029 + NTE_NO_MORE_ITEMS Handle = 0x8009002A + NTE_BUFFERS_OVERLAP Handle = 0x8009002B + NTE_DECRYPTION_FAILURE Handle = 0x8009002C + NTE_INTERNAL_ERROR Handle = 0x8009002D + NTE_UI_REQUIRED Handle = 0x8009002E + NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F + NTE_DEVICE_NOT_READY Handle = 0x80090030 + NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 + NTE_VALIDATION_FAILED Handle = 0x80090032 + NTE_INCORRECT_PASSWORD Handle = 0x80090033 + NTE_ENCRYPTION_FAILURE Handle = 0x80090034 + NTE_DEVICE_NOT_FOUND Handle = 0x80090035 + NTE_USER_CANCELLED Handle = 0x80090036 + NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 + NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 + SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 + SEC_E_INVALID_HANDLE Handle = 0x80090301 + SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 + SEC_E_TARGET_UNKNOWN Handle = 0x80090303 + SEC_E_INTERNAL_ERROR Handle = 0x80090304 + SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 + SEC_E_NOT_OWNER Handle = 0x80090306 + SEC_E_CANNOT_INSTALL Handle = 0x80090307 + SEC_E_INVALID_TOKEN Handle = 0x80090308 + SEC_E_CANNOT_PACK Handle = 0x80090309 + SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A + SEC_E_NO_IMPERSONATION Handle = 0x8009030B + SEC_E_LOGON_DENIED Handle = 0x8009030C + SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D + SEC_E_NO_CREDENTIALS Handle = 0x8009030E + SEC_E_MESSAGE_ALTERED Handle = 0x8009030F + SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 + SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 + SEC_I_CONTINUE_NEEDED Handle = 0x00090312 + 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 + SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 + SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 + SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 + SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 + SEC_I_RENEGOTIATE Handle = 0x00090321 + SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 + SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 + SEC_E_TIME_SKEW Handle = 0x80090324 + SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 + SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 + SEC_E_CERT_UNKNOWN Handle = 0x80090327 + SEC_E_CERT_EXPIRED Handle = 0x80090328 + SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 + SEC_E_DECRYPT_FAILURE Handle = 0x80090330 + SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 + SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 + SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 + SEC_E_NO_TGT_REPLY Handle = 0x80090334 + SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 + SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 + SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 + SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 + SEC_E_MUST_BE_KDC Handle = 0x80090339 + SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A + SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B + SEC_E_NO_PA_DATA Handle = 0x8009033C + SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D + SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E + SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F + SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 + SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 + SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 + SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 + SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 + SEC_E_BAD_BINDINGS Handle = 0x80090346 + SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 + SEC_E_NO_KERB_KEY Handle = 0x80090348 + SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 + SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 + SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 + SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 + SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 + SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 + SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 + SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 + SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 + SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 + SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 + SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A + SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B + SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C + SEC_E_INVALID_PARAMETER Handle = 0x8009035D + SEC_E_DELEGATION_POLICY Handle = 0x8009035E + SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F + SEC_I_NO_RENEGOTIATION Handle = 0x00090360 + SEC_E_NO_CONTEXT Handle = 0x80090361 + SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 + SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 + SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 + SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 + SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 + 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 + CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 + CRYPT_E_OID_FORMAT Handle = 0x80091003 + CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 + CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 + CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 + CRYPT_E_HASH_VALUE Handle = 0x80091007 + CRYPT_E_INVALID_INDEX Handle = 0x80091008 + CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 + CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A + CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B + CRYPT_E_CONTROL_TYPE Handle = 0x8009100C + CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D + CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E + CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F + CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 + CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 + CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 + CRYPT_E_BAD_LEN Handle = 0x80092001 + CRYPT_E_BAD_ENCODE Handle = 0x80092002 + CRYPT_E_FILE_ERROR Handle = 0x80092003 + CRYPT_E_NOT_FOUND Handle = 0x80092004 + CRYPT_E_EXISTS Handle = 0x80092005 + CRYPT_E_NO_PROVIDER Handle = 0x80092006 + CRYPT_E_SELF_SIGNED Handle = 0x80092007 + CRYPT_E_DELETED_PREV Handle = 0x80092008 + CRYPT_E_NO_MATCH Handle = 0x80092009 + CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A + CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B + CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C + CRYPT_E_BAD_MSG Handle = 0x8009200D + CRYPT_E_NO_SIGNER Handle = 0x8009200E + CRYPT_E_PENDING_CLOSE Handle = 0x8009200F + CRYPT_E_REVOKED Handle = 0x80092010 + CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 + CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 + CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 + CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 + CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 + CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 + CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 + CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 + CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 + CRYPT_E_FILERESIZED Handle = 0x80092025 + CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 + CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 + CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 + CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 + CRYPT_E_NOT_IN_CTL Handle = 0x8009202A + CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B + CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C + CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D + CRYPT_E_OSS_ERROR Handle = 0x80093000 + OSS_MORE_BUF Handle = 0x80093001 + OSS_NEGATIVE_UINTEGER Handle = 0x80093002 + OSS_PDU_RANGE Handle = 0x80093003 + OSS_MORE_INPUT Handle = 0x80093004 + OSS_DATA_ERROR Handle = 0x80093005 + OSS_BAD_ARG Handle = 0x80093006 + OSS_BAD_VERSION Handle = 0x80093007 + OSS_OUT_MEMORY Handle = 0x80093008 + OSS_PDU_MISMATCH Handle = 0x80093009 + OSS_LIMITED Handle = 0x8009300A + OSS_BAD_PTR Handle = 0x8009300B + OSS_BAD_TIME Handle = 0x8009300C + OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D + OSS_MEM_ERROR Handle = 0x8009300E + OSS_BAD_TABLE Handle = 0x8009300F + OSS_TOO_LONG Handle = 0x80093010 + OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 + OSS_FATAL_ERROR Handle = 0x80093012 + OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 + OSS_NULL_TBL Handle = 0x80093014 + OSS_NULL_FCN Handle = 0x80093015 + OSS_BAD_ENCRULES Handle = 0x80093016 + OSS_UNAVAIL_ENCRULES Handle = 0x80093017 + OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 + OSS_UNIMPLEMENTED Handle = 0x80093019 + OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A + OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B + OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C + OSS_TABLE_MISMATCH Handle = 0x8009301D + OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E + OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F + OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 + OSS_OUT_OF_RANGE Handle = 0x80093021 + OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 + OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 + OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 + OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 + OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 + OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 + OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 + OSS_API_DLL_NOT_LINKED Handle = 0x80093029 + OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A + OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B + OSS_OPEN_TYPE_ERROR Handle = 0x8009302C + OSS_MUTEX_NOT_CREATED Handle = 0x8009302D + OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E + CRYPT_E_ASN1_ERROR Handle = 0x80093100 + CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 + CRYPT_E_ASN1_EOD Handle = 0x80093102 + CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 + CRYPT_E_ASN1_LARGE Handle = 0x80093104 + CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 + CRYPT_E_ASN1_MEMORY Handle = 0x80093106 + CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 + CRYPT_E_ASN1_BADPDU Handle = 0x80093108 + CRYPT_E_ASN1_BADARGS Handle = 0x80093109 + CRYPT_E_ASN1_BADREAL Handle = 0x8009310A + CRYPT_E_ASN1_BADTAG Handle = 0x8009310B + CRYPT_E_ASN1_CHOICE Handle = 0x8009310C + CRYPT_E_ASN1_RULE Handle = 0x8009310D + CRYPT_E_ASN1_UTF8 Handle = 0x8009310E + CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 + CRYPT_E_ASN1_NYI Handle = 0x80093134 + CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 + CRYPT_E_ASN1_NOEOD Handle = 0x80093202 + CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 + CERTSRV_E_NO_REQUEST Handle = 0x80094002 + CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 + CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 + CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 + CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 + CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 + CERTSRV_E_ROLECONFLICT Handle = 0x80094008 + CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 + CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A + CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B + CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C + CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D + CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E + CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F + CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 + CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 + CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 + CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 + CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 + CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 + CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 + CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 + CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 + CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 + CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 + CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 + CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 + CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 + CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 + CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 + CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 + CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 + CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 + CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A + CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B + CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C + CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D + CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E + CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F + CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 + CERTSRV_E_KEY_LENGTH Handle = 0x80094811 + CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 + CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 + CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 + CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 + CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 + CERTSRV_E_INVALID_EK Handle = 0x80094817 + CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 + CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 + CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A + CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B + CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C + CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D + CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E + CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F + CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 + XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 + XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 + XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 + XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 + XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 + XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 + TRUST_E_SYSTEM_ERROR Handle = 0x80096001 + TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 + TRUST_E_COUNTER_SIGNER Handle = 0x80096003 + TRUST_E_CERT_SIGNATURE Handle = 0x80096004 + TRUST_E_TIME_STAMP Handle = 0x80096005 + TRUST_E_BAD_DIGEST Handle = 0x80096010 + TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 + TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 + TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E + MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 + MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 + MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 + MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 + MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 + MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 + MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 + MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 + MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 + MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A + MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B + MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C + MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D + MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 + MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 + MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 + MSSIPOTF_E_FILE Handle = 0x80097013 + MSSIPOTF_E_CRYPT Handle = 0x80097014 + MSSIPOTF_E_BADVERSION Handle = 0x80097015 + MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 + MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 + MSSIPOTF_E_STRUCTURE Handle = 0x80097018 + ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 + NTE_OP_OK syscall.Errno = 0 + TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 + TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 + TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 + TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 + DIGSIG_E_ENCODE Handle = 0x800B0005 + DIGSIG_E_DECODE Handle = 0x800B0006 + DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 + DIGSIG_E_CRYPTO Handle = 0x800B0008 + PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 + PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A + PERSIST_E_NOTSELFSIZING Handle = 0x800B000B + TRUST_E_NOSIGNATURE Handle = 0x800B0100 + CERT_E_EXPIRED Handle = 0x800B0101 + CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 + CERT_E_ROLE Handle = 0x800B0103 + CERT_E_PATHLENCONST Handle = 0x800B0104 + CERT_E_CRITICAL Handle = 0x800B0105 + CERT_E_PURPOSE Handle = 0x800B0106 + CERT_E_ISSUERCHAINING Handle = 0x800B0107 + CERT_E_MALFORMED Handle = 0x800B0108 + CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 + CERT_E_CHAINING Handle = 0x800B010A + TRUST_E_FAIL Handle = 0x800B010B + CERT_E_REVOKED Handle = 0x800B010C + CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D + CERT_E_REVOCATION_FAILURE Handle = 0x800B010E + CERT_E_CN_NO_MATCH Handle = 0x800B010F + CERT_E_WRONG_USAGE Handle = 0x800B0110 + TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 + CERT_E_UNTRUSTEDCA Handle = 0x800B0112 + CERT_E_INVALID_POLICY Handle = 0x800B0113 + CERT_E_INVALID_NAME Handle = 0x800B0114 + SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 + SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 + SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 + SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 + SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 + SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 + SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 + SPAPI_E_NO_BACKUP Handle = 0x800F0103 + SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 + SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 + SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 + SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 + SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 + SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 + SPAPI_E_INVALID_CLASS Handle = 0x800F0206 + SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 + SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 + SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 + SPAPI_E_NO_INF Handle = 0x800F020A + SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B + SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C + SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D + SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E + SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F + SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 + SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 + SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 + SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 + SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 + SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 + SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 + SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 + SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 + SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 + SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A + SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B + SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C + SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D + SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E + SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F + SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 + SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 + SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 + SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 + SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 + SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 + SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 + SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 + SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 + SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 + SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A + SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B + SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C + SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D + SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E + SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F + SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 + SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 + SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 + SPAPI_E_INVALID_TARGET Handle = 0x800F0233 + SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 + SPAPI_E_IN_WOW64 Handle = 0x800F0235 + SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 + SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 + SPAPI_E_SCE_DISABLED Handle = 0x800F0238 + SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 + SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A + SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B + SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C + SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D + SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E + SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F + SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 + SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 + SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 + SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 + SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 + SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 + SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 + SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 + SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 + SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 + SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A + SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B + SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C + SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 + SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 + SCARD_S_SUCCESS = S_OK + SCARD_F_INTERNAL_ERROR Handle = 0x80100001 + SCARD_E_CANCELLED Handle = 0x80100002 + SCARD_E_INVALID_HANDLE Handle = 0x80100003 + SCARD_E_INVALID_PARAMETER Handle = 0x80100004 + SCARD_E_INVALID_TARGET Handle = 0x80100005 + SCARD_E_NO_MEMORY Handle = 0x80100006 + SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 + SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 + SCARD_E_UNKNOWN_READER Handle = 0x80100009 + SCARD_E_TIMEOUT Handle = 0x8010000A + SCARD_E_SHARING_VIOLATION Handle = 0x8010000B + SCARD_E_NO_SMARTCARD Handle = 0x8010000C + SCARD_E_UNKNOWN_CARD Handle = 0x8010000D + SCARD_E_CANT_DISPOSE Handle = 0x8010000E + SCARD_E_PROTO_MISMATCH Handle = 0x8010000F + SCARD_E_NOT_READY Handle = 0x80100010 + SCARD_E_INVALID_VALUE Handle = 0x80100011 + SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 + SCARD_F_COMM_ERROR Handle = 0x80100013 + SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 + SCARD_E_INVALID_ATR Handle = 0x80100015 + SCARD_E_NOT_TRANSACTED Handle = 0x80100016 + SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 + SCARD_P_SHUTDOWN Handle = 0x80100018 + SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 + SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A + SCARD_E_DUPLICATE_READER Handle = 0x8010001B + SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C + SCARD_E_NO_SERVICE Handle = 0x8010001D + SCARD_E_SERVICE_STOPPED Handle = 0x8010001E + SCARD_E_UNEXPECTED Handle = 0x8010001F + SCARD_E_ICC_INSTALLATION Handle = 0x80100020 + SCARD_E_ICC_CREATEORDER Handle = 0x80100021 + SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 + SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 + SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 + SCARD_E_NO_DIR Handle = 0x80100025 + SCARD_E_NO_FILE Handle = 0x80100026 + SCARD_E_NO_ACCESS Handle = 0x80100027 + SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 + SCARD_E_BAD_SEEK Handle = 0x80100029 + SCARD_E_INVALID_CHV Handle = 0x8010002A + SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B + SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C + SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D + SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E + SCARD_E_COMM_DATA_LOST Handle = 0x8010002F + SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 + SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 + SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 + SCARD_E_NO_PIN_CACHE Handle = 0x80100033 + SCARD_E_READ_ONLY_CARD Handle = 0x80100034 + SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 + SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 + SCARD_W_UNPOWERED_CARD Handle = 0x80100067 + SCARD_W_RESET_CARD Handle = 0x80100068 + SCARD_W_REMOVED_CARD Handle = 0x80100069 + SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A + SCARD_W_WRONG_CHV Handle = 0x8010006B + SCARD_W_CHV_BLOCKED Handle = 0x8010006C + SCARD_W_EOF Handle = 0x8010006D + SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E + SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F + SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 + SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 + SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 + COMADMIN_E_OBJECTERRORS Handle = 0x80110401 + COMADMIN_E_OBJECTINVALID Handle = 0x80110402 + COMADMIN_E_KEYMISSING Handle = 0x80110403 + COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 + COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 + COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 + COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 + COMADMIN_E_BADPATH Handle = 0x8011040A + COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B + COMADMIN_E_ROLEEXISTS Handle = 0x8011040C + COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D + COMADMIN_E_NOUSER Handle = 0x8011040F + COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 + COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 + COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 + COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 + COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 + COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 + COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 + COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A + COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B + COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D + COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E + COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F + COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 + COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 + COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 + COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 + COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 + COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 + COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 + COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A + COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B + COMADMIN_E_SESSION Handle = 0x8011042C + COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D + COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E + COMADMIN_E_REGISTERTLB Handle = 0x80110430 + COMADMIN_E_SYSTEMAPP Handle = 0x80110433 + COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 + COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 + COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 + COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 + COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 + COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 + COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B + COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C + COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E + COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F + COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 + COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 + COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 + COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 + COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A + COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B + COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C + COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D + COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E + COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F + COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 + COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 + COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 + COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 + COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 + COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A + COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B + COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C + COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D + COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 + COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 + COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 + COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 + COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 + COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 + COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 + COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 + COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 + COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 + COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 + COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 + COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 + COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 + COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 + COMQC_E_BAD_MESSAGE Handle = 0x80110604 + COMQC_E_UNAUTHENTICATED Handle = 0x80110605 + COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 + MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 + COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 + COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 + COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A + COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B + COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D + COMADMIN_E_USER_IN_SET Handle = 0x8011080E + COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F + COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 + COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 + COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 + COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 + COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 + COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 + COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 + COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 + COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B + COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C + COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D + COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E + COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F + COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 + COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 + COMADMIN_E_SAFERINVALID Handle = 0x80110822 + COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 + COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 + WER_S_REPORT_DEBUG Handle = 0x001B0000 + WER_S_REPORT_UPLOADED Handle = 0x001B0001 + WER_S_REPORT_QUEUED Handle = 0x001B0002 + WER_S_DISABLED Handle = 0x001B0003 + WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 + WER_S_DISABLED_QUEUE Handle = 0x001B0005 + WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 + WER_S_REPORT_ASYNC Handle = 0x001B0007 + WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 + WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 + WER_S_ASSERT_CONTINUE Handle = 0x001B000A + WER_S_THROTTLED Handle = 0x001B000B + WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C + WER_E_CRASH_FAILURE Handle = 0x801B8000 + WER_E_CANCELED Handle = 0x801B8001 + WER_E_NETWORK_FAILURE Handle = 0x801B8002 + WER_E_NOT_INITIALIZED Handle = 0x801B8003 + WER_E_ALREADY_REPORTING Handle = 0x801B8004 + WER_E_DUMP_THROTTLED Handle = 0x801B8005 + WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 + WER_E_TOO_HEAVY Handle = 0x801B8007 + ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 + ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 + ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 + ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 + ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 + ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 + ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 + ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 + ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 + ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 + ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A + ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B + ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C + ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D + ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E + ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F + ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 + ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 + ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 + ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 + ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 + ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 + ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 + ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 + ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 + ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 + ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A + ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B + ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C + ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 + ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 + ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 + DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 + DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 + DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 + DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 + DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 + DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 + DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 + DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 + ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 + ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 + ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 + ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 + ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 + ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 + ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 + ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 + ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 + ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A + ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 + ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 + ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 + ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 + ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 + ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 + ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 + ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 + ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 + ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 + ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A + ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B + ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C + ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D + ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E + 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 + ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 + ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 + ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 + ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 + ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 + ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 + ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 + ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 + ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 + ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 + ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 + ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 + ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 + ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 + ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 + ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 + ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 + ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 + ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 + ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A + ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B + ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 + ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 + ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 + ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 + ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 + ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 + ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 + ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C + ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D + ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E + ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F + ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 + ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 + ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 + ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 + ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 + ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B + ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C + ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D + ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E + ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F + ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 + ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 + ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 + ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 + ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 + ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 + ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 + ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 + ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 + ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 + ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A + ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B + ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C + ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D + ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E + ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F + ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 + ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 + ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 + ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 + ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 + ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 + ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 + ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 + ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 + ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A + ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B + ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D + ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E + ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F + ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 + ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 + ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 + ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 + ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 + ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 + ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 + ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 + ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A + ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B + ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C + ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 + ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 + ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F + ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 + ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 + ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 + ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 + ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 + ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 + ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 + ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 + ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 + ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 + ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A + ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B + ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C + ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 + ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 + ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 + ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 + ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 + ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B + ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C + ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E + ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F + ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 + ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 + ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 + ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 + ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 + ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A + ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C + ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D + ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F + ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 + ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 + ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 + ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 + ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 + ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 + ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 + ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 + ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 + ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 + ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B + ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C + ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D + ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 + ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 + ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA + ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB + ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC + ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE + ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF + ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 + ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 + ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 + ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 + ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 + ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 + ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 + ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 + ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 + NAP_E_INVALID_PACKET Handle = 0x80270001 + NAP_E_MISSING_SOH Handle = 0x80270002 + NAP_E_CONFLICTING_ID Handle = 0x80270003 + NAP_E_NO_CACHED_SOH Handle = 0x80270004 + NAP_E_STILL_BOUND Handle = 0x80270005 + NAP_E_NOT_REGISTERED Handle = 0x80270006 + NAP_E_NOT_INITIALIZED Handle = 0x80270007 + NAP_E_MISMATCHED_ID Handle = 0x80270008 + NAP_E_NOT_PENDING Handle = 0x80270009 + NAP_E_ID_NOT_FOUND Handle = 0x8027000A + NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B + NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C + NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D + NAP_E_ENTITY_DISABLED Handle = 0x8027000E + NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F + NAP_E_TOO_MANY_CALLS Handle = 0x80270010 + NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 + NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 + NAP_E_SHV_TIMEOUT Handle = 0x80270013 + TPM_E_ERROR_MASK Handle = 0x80280000 + TPM_E_AUTHFAIL Handle = 0x80280001 + TPM_E_BADINDEX Handle = 0x80280002 + TPM_E_BAD_PARAMETER Handle = 0x80280003 + TPM_E_AUDITFAILURE Handle = 0x80280004 + TPM_E_CLEAR_DISABLED Handle = 0x80280005 + TPM_E_DEACTIVATED Handle = 0x80280006 + TPM_E_DISABLED Handle = 0x80280007 + TPM_E_DISABLED_CMD Handle = 0x80280008 + TPM_E_FAIL Handle = 0x80280009 + TPM_E_BAD_ORDINAL Handle = 0x8028000A + TPM_E_INSTALL_DISABLED Handle = 0x8028000B + TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C + TPM_E_KEYNOTFOUND Handle = 0x8028000D + TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E + TPM_E_MIGRATEFAIL Handle = 0x8028000F + TPM_E_INVALID_PCR_INFO Handle = 0x80280010 + TPM_E_NOSPACE Handle = 0x80280011 + TPM_E_NOSRK Handle = 0x80280012 + TPM_E_NOTSEALED_BLOB Handle = 0x80280013 + TPM_E_OWNER_SET Handle = 0x80280014 + TPM_E_RESOURCES Handle = 0x80280015 + TPM_E_SHORTRANDOM Handle = 0x80280016 + TPM_E_SIZE Handle = 0x80280017 + TPM_E_WRONGPCRVAL Handle = 0x80280018 + TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 + TPM_E_SHA_THREAD Handle = 0x8028001A + TPM_E_SHA_ERROR Handle = 0x8028001B + TPM_E_FAILEDSELFTEST Handle = 0x8028001C + TPM_E_AUTH2FAIL Handle = 0x8028001D + TPM_E_BADTAG Handle = 0x8028001E + TPM_E_IOERROR Handle = 0x8028001F + TPM_E_ENCRYPT_ERROR Handle = 0x80280020 + TPM_E_DECRYPT_ERROR Handle = 0x80280021 + TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 + TPM_E_NO_ENDORSEMENT Handle = 0x80280023 + TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 + TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 + TPM_E_INVALID_POSTINIT Handle = 0x80280026 + TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 + TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 + TPM_E_BAD_MIGRATION Handle = 0x80280029 + TPM_E_BAD_SCHEME Handle = 0x8028002A + TPM_E_BAD_DATASIZE Handle = 0x8028002B + TPM_E_BAD_MODE Handle = 0x8028002C + TPM_E_BAD_PRESENCE Handle = 0x8028002D + TPM_E_BAD_VERSION Handle = 0x8028002E + TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F + TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 + TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 + TPM_E_NOTRESETABLE Handle = 0x80280032 + TPM_E_NOTLOCAL Handle = 0x80280033 + TPM_E_BAD_TYPE Handle = 0x80280034 + TPM_E_INVALID_RESOURCE Handle = 0x80280035 + TPM_E_NOTFIPS Handle = 0x80280036 + TPM_E_INVALID_FAMILY Handle = 0x80280037 + TPM_E_NO_NV_PERMISSION Handle = 0x80280038 + TPM_E_REQUIRES_SIGN Handle = 0x80280039 + TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A + TPM_E_AUTH_CONFLICT Handle = 0x8028003B + TPM_E_AREA_LOCKED Handle = 0x8028003C + TPM_E_BAD_LOCALITY Handle = 0x8028003D + TPM_E_READ_ONLY Handle = 0x8028003E + TPM_E_PER_NOWRITE Handle = 0x8028003F + TPM_E_FAMILYCOUNT Handle = 0x80280040 + TPM_E_WRITE_LOCKED Handle = 0x80280041 + TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 + TPM_E_INVALID_STRUCTURE Handle = 0x80280043 + TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 + TPM_E_BAD_COUNTER Handle = 0x80280045 + TPM_E_NOT_FULLWRITE Handle = 0x80280046 + TPM_E_CONTEXT_GAP Handle = 0x80280047 + TPM_E_MAXNVWRITES Handle = 0x80280048 + TPM_E_NOOPERATOR Handle = 0x80280049 + TPM_E_RESOURCEMISSING Handle = 0x8028004A + TPM_E_DELEGATE_LOCK Handle = 0x8028004B + TPM_E_DELEGATE_FAMILY Handle = 0x8028004C + TPM_E_DELEGATE_ADMIN Handle = 0x8028004D + TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E + TPM_E_OWNER_CONTROL Handle = 0x8028004F + TPM_E_DAA_RESOURCES Handle = 0x80280050 + TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 + TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 + TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 + TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 + TPM_E_DAA_STAGE Handle = 0x80280055 + TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 + TPM_E_DAA_WRONG_W Handle = 0x80280057 + TPM_E_BAD_HANDLE Handle = 0x80280058 + TPM_E_BAD_DELEGATE Handle = 0x80280059 + TPM_E_BADCONTEXT Handle = 0x8028005A + TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B + TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C + TPM_E_MA_DESTINATION Handle = 0x8028005D + TPM_E_MA_SOURCE Handle = 0x8028005E + TPM_E_MA_AUTHORITY Handle = 0x8028005F + TPM_E_PERMANENTEK Handle = 0x80280061 + TPM_E_BAD_SIGNATURE Handle = 0x80280062 + TPM_E_NOCONTEXTSPACE Handle = 0x80280063 + TPM_20_E_ASYMMETRIC Handle = 0x80280081 + TPM_20_E_ATTRIBUTES Handle = 0x80280082 + TPM_20_E_HASH Handle = 0x80280083 + TPM_20_E_VALUE Handle = 0x80280084 + TPM_20_E_HIERARCHY Handle = 0x80280085 + TPM_20_E_KEY_SIZE Handle = 0x80280087 + TPM_20_E_MGF Handle = 0x80280088 + TPM_20_E_MODE Handle = 0x80280089 + TPM_20_E_TYPE Handle = 0x8028008A + TPM_20_E_HANDLE Handle = 0x8028008B + TPM_20_E_KDF Handle = 0x8028008C + TPM_20_E_RANGE Handle = 0x8028008D + TPM_20_E_AUTH_FAIL Handle = 0x8028008E + TPM_20_E_NONCE Handle = 0x8028008F + TPM_20_E_PP Handle = 0x80280090 + TPM_20_E_SCHEME Handle = 0x80280092 + TPM_20_E_SIZE Handle = 0x80280095 + TPM_20_E_SYMMETRIC Handle = 0x80280096 + TPM_20_E_TAG Handle = 0x80280097 + TPM_20_E_SELECTOR Handle = 0x80280098 + TPM_20_E_INSUFFICIENT Handle = 0x8028009A + TPM_20_E_SIGNATURE Handle = 0x8028009B + TPM_20_E_KEY Handle = 0x8028009C + TPM_20_E_POLICY_FAIL Handle = 0x8028009D + TPM_20_E_INTEGRITY Handle = 0x8028009F + TPM_20_E_TICKET Handle = 0x802800A0 + TPM_20_E_RESERVED_BITS Handle = 0x802800A1 + TPM_20_E_BAD_AUTH Handle = 0x802800A2 + TPM_20_E_EXPIRED Handle = 0x802800A3 + TPM_20_E_POLICY_CC Handle = 0x802800A4 + TPM_20_E_BINDING Handle = 0x802800A5 + TPM_20_E_CURVE Handle = 0x802800A6 + TPM_20_E_ECC_POINT Handle = 0x802800A7 + TPM_20_E_INITIALIZE Handle = 0x80280100 + TPM_20_E_FAILURE Handle = 0x80280101 + TPM_20_E_SEQUENCE Handle = 0x80280103 + TPM_20_E_PRIVATE Handle = 0x8028010B + TPM_20_E_HMAC Handle = 0x80280119 + TPM_20_E_DISABLED Handle = 0x80280120 + TPM_20_E_EXCLUSIVE Handle = 0x80280121 + TPM_20_E_ECC_CURVE Handle = 0x80280123 + TPM_20_E_AUTH_TYPE Handle = 0x80280124 + TPM_20_E_AUTH_MISSING Handle = 0x80280125 + TPM_20_E_POLICY Handle = 0x80280126 + TPM_20_E_PCR Handle = 0x80280127 + TPM_20_E_PCR_CHANGED Handle = 0x80280128 + TPM_20_E_UPGRADE Handle = 0x8028012D + TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E + TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F + TPM_20_E_REBOOT Handle = 0x80280130 + TPM_20_E_UNBALANCED Handle = 0x80280131 + TPM_20_E_COMMAND_SIZE Handle = 0x80280142 + TPM_20_E_COMMAND_CODE Handle = 0x80280143 + TPM_20_E_AUTHSIZE Handle = 0x80280144 + TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 + TPM_20_E_NV_RANGE Handle = 0x80280146 + TPM_20_E_NV_SIZE Handle = 0x80280147 + TPM_20_E_NV_LOCKED Handle = 0x80280148 + TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 + TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A + TPM_20_E_NV_SPACE Handle = 0x8028014B + TPM_20_E_NV_DEFINED Handle = 0x8028014C + TPM_20_E_BAD_CONTEXT Handle = 0x80280150 + TPM_20_E_CPHASH Handle = 0x80280151 + TPM_20_E_PARENT Handle = 0x80280152 + TPM_20_E_NEEDS_TEST Handle = 0x80280153 + TPM_20_E_NO_RESULT Handle = 0x80280154 + TPM_20_E_SENSITIVE Handle = 0x80280155 + TPM_E_COMMAND_BLOCKED Handle = 0x80280400 + TPM_E_INVALID_HANDLE Handle = 0x80280401 + TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 + TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 + TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 + TPM_E_RETRY Handle = 0x80280800 + TPM_E_NEEDS_SELFTEST Handle = 0x80280801 + TPM_E_DOING_SELFTEST Handle = 0x80280802 + TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 + TPM_20_E_CONTEXT_GAP Handle = 0x80280901 + TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 + TPM_20_E_SESSION_MEMORY Handle = 0x80280903 + TPM_20_E_MEMORY Handle = 0x80280904 + TPM_20_E_SESSION_HANDLES Handle = 0x80280905 + TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 + TPM_20_E_LOCALITY Handle = 0x80280907 + TPM_20_E_YIELDED Handle = 0x80280908 + TPM_20_E_CANCELED Handle = 0x80280909 + TPM_20_E_TESTING Handle = 0x8028090A + TPM_20_E_NV_RATE Handle = 0x80280920 + TPM_20_E_LOCKOUT Handle = 0x80280921 + TPM_20_E_RETRY Handle = 0x80280922 + TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 + TBS_E_INTERNAL_ERROR Handle = 0x80284001 + TBS_E_BAD_PARAMETER Handle = 0x80284002 + TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 + TBS_E_INVALID_CONTEXT Handle = 0x80284004 + TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 + TBS_E_IOERROR Handle = 0x80284006 + TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 + TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 + TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 + TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A + TBS_E_SERVICE_START_PENDING Handle = 0x8028400B + TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C + TBS_E_COMMAND_CANCELED Handle = 0x8028400D + TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E + TBS_E_TPM_NOT_FOUND Handle = 0x8028400F + TBS_E_SERVICE_DISABLED Handle = 0x80284010 + TBS_E_NO_EVENT_LOG Handle = 0x80284011 + TBS_E_ACCESS_DENIED Handle = 0x80284012 + TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 + TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 + TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 + TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 + TPMAPI_E_INVALID_STATE Handle = 0x80290100 + TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 + TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 + TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 + TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 + TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 + TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 + TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 + TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 + TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 + TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A + TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B + TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C + TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D + TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E + TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F + TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 + TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 + TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 + TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 + TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 + TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 + TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 + TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 + TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 + TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 + TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A + TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B + TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C + TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D + TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E + TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F + TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 + TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 + TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 + TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 + TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 + TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 + TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 + TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 + TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 + TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 + TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A + TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B + TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C + TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 + TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 + TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 + TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 + TBSIMP_E_TPM_ERROR Handle = 0x80290204 + TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 + TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 + TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 + TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 + TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 + TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A + TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B + TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C + TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D + TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E + TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F + TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 + TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 + TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 + TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 + TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 + TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 + TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 + TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 + TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 + TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 + TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A + TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B + TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 + TPM_E_PPI_USER_ABORT Handle = 0x80290301 + TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 + TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 + TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 + TPM_E_PCP_ERROR_MASK Handle = 0x80290400 + TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 + TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 + TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 + TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 + TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 + TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 + TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 + TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 + TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 + TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A + TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B + TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C + TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E + TPM_E_KEY_NOT_LOADED Handle = 0x8029040F + TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 + TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 + TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 + TPM_E_NOT_PCR_BOUND Handle = 0x80290413 + TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 + TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 + TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 + TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 + TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 + TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 + TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A + TPM_E_LOCKED_OUT Handle = 0x8029041B + TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C + TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D + TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E + TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F + TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 + TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 + TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 + TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 + TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 + PLA_E_DCS_NOT_FOUND Handle = 0x80300002 + PLA_E_DCS_IN_USE Handle = 0x803000AA + PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 + PLA_E_NO_MIN_DISK Handle = 0x80300070 + PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 + PLA_S_PROPERTY_IGNORED Handle = 0x00300100 + PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 + PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 + PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 + PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 + PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 + PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 + PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 + PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 + PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 + PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A + PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B + PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C + PLA_E_NO_DUPLICATES Handle = 0x8030010D + PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E + PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F + PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 + PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 + PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 + PLA_E_CABAPI_FAILURE Handle = 0x80300113 + FVE_E_LOCKED_VOLUME Handle = 0x80310000 + FVE_E_NOT_ENCRYPTED Handle = 0x80310001 + FVE_E_NO_TPM_BIOS Handle = 0x80310002 + FVE_E_NO_MBR_METRIC Handle = 0x80310003 + FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 + FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 + FVE_E_WRONG_BOOTMGR Handle = 0x80310006 + FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 + FVE_E_NOT_ACTIVATED Handle = 0x80310008 + FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 + FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A + FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B + FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C + FVE_E_AD_NO_VALUES Handle = 0x8031000D + FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E + FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F + FVE_E_BAD_INFORMATION Handle = 0x80310010 + FVE_E_TOO_SMALL Handle = 0x80310011 + FVE_E_SYSTEM_VOLUME Handle = 0x80310012 + FVE_E_FAILED_WRONG_FS Handle = 0x80310013 + FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 + FVE_E_NOT_SUPPORTED Handle = 0x80310015 + FVE_E_BAD_DATA Handle = 0x80310016 + FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 + FVE_E_TPM_NOT_OWNED Handle = 0x80310018 + FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 + FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A + FVE_E_CONV_READ Handle = 0x8031001B + FVE_E_CONV_WRITE Handle = 0x8031001C + FVE_E_KEY_REQUIRED Handle = 0x8031001D + FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E + FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F + FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 + FVE_E_PROTECTION_DISABLED Handle = 0x80310021 + FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 + FVE_E_FOREIGN_VOLUME Handle = 0x80310023 + FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 + FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 + FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 + FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 + FVE_E_NOT_OS_VOLUME Handle = 0x80310028 + FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 + FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A + FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B + FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C + FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D + FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E + FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 + FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 + FVE_E_RELATIVE_PATH Handle = 0x80310032 + FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 + FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 + FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 + FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 + FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 + FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 + FVE_E_NOT_DECRYPTED Handle = 0x80310039 + FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A + FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B + FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C + FVE_E_KEYFILE_INVALID Handle = 0x8031003D + FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E + FVE_E_TPM_DISABLED Handle = 0x8031003F + FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 + FVE_E_TPM_INVALID_PCR Handle = 0x80310041 + FVE_E_TPM_NO_VMK Handle = 0x80310042 + FVE_E_PIN_INVALID Handle = 0x80310043 + FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 + FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 + FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 + FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 + FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 + FVE_E_NO_LICENSE Handle = 0x80310049 + FVE_E_NOT_ON_STACK Handle = 0x8031004A + FVE_E_FS_MOUNTED Handle = 0x8031004B + FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C + FVE_E_DRY_RUN_FAILED Handle = 0x8031004D + FVE_E_REBOOT_REQUIRED Handle = 0x8031004E + FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F + FVE_E_RAW_ACCESS Handle = 0x80310050 + FVE_E_RAW_BLOCKED Handle = 0x80310051 + FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 + FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 + FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 + FVE_E_MOR_FAILED Handle = 0x80310055 + FVE_E_HIDDEN_VOLUME Handle = 0x80310056 + FVE_E_TRANSIENT_STATE Handle = 0x80310057 + FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 + FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 + FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A + FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B + FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C + FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D + FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E + FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F + FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 + FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 + FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 + FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 + FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 + FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 + FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 + FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 + FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 + FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 + FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A + FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B + FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C + FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D + FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E + FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F + FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 + FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 + FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 + FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 + FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 + FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 + FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 + FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 + FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 + FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 + FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 + FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 + FVE_E_RECOVERY_PARTITION Handle = 0x80310082 + FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 + FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 + FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 + FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 + FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 + FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 + FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 + FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 + FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 + FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 + FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 + FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 + FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 + FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 + FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 + FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 + FVE_E_ENH_PIN_INVALID Handle = 0x80310099 + FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A + FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B + FVE_E_EFI_ONLY Handle = 0x8031009C + FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D + FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E + FVE_E_INVALID_NKP_CERT Handle = 0x8031009F + FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 + FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 + FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 + FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 + FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 + FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 + FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 + FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 + FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 + FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 + FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA + FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB + FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC + FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD + FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE + FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF + FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 + FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 + FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 + FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 + FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 + FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 + FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 + FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 + FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 + FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 + FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA + FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB + FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC + FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD + FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE + FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF + FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 + FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 + FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 + FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 + FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 + FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 + FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 + FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 + FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 + FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 + FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA + FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB + FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC + FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD + FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE + FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF + FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 + FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 + FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 + FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 + FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 + FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 + FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 + 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 + FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 + FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 + FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 + FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 + FWP_E_NOT_FOUND Handle = 0x80320008 + FWP_E_ALREADY_EXISTS Handle = 0x80320009 + FWP_E_IN_USE Handle = 0x8032000A + FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B + FWP_E_WRONG_SESSION Handle = 0x8032000C + FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D + FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E + FWP_E_TXN_ABORTED Handle = 0x8032000F + FWP_E_SESSION_ABORTED Handle = 0x80320010 + FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 + FWP_E_TIMEOUT Handle = 0x80320012 + FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 + FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 + FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 + FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 + FWP_E_BUILTIN_OBJECT Handle = 0x80320017 + FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 + FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 + FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A + FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B + FWP_E_NULL_POINTER Handle = 0x8032001C + FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D + FWP_E_INVALID_FLAGS Handle = 0x8032001E + FWP_E_INVALID_NET_MASK Handle = 0x8032001F + FWP_E_INVALID_RANGE Handle = 0x80320020 + FWP_E_INVALID_INTERVAL Handle = 0x80320021 + FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 + FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 + FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 + FWP_E_INVALID_WEIGHT Handle = 0x80320025 + FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 + FWP_E_TYPE_MISMATCH Handle = 0x80320027 + FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 + FWP_E_RESERVED Handle = 0x80320029 + FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A + FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B + FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C + FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D + FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E + FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F + FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 + FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 + FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 + FWP_E_NEVER_MATCH Handle = 0x80320033 + FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 + FWP_E_INVALID_PARAMETER Handle = 0x80320035 + FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 + FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 + FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 + FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 + FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A + FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B + FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C + FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D + FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E + FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F + FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 + FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 + FWP_E_INVALID_DNS_NAME Handle = 0x80320042 + FWP_E_STILL_ON Handle = 0x80320043 + FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 + FWP_E_DROP_NOICMP Handle = 0x80320104 + WS_S_ASYNC Handle = 0x003D0000 + WS_S_END Handle = 0x003D0001 + WS_E_INVALID_FORMAT Handle = 0x803D0000 + WS_E_OBJECT_FAULTED Handle = 0x803D0001 + WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 + WS_E_INVALID_OPERATION Handle = 0x803D0003 + WS_E_OPERATION_ABORTED Handle = 0x803D0004 + WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 + WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 + WS_E_OPERATION_ABANDONED Handle = 0x803D0007 + WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 + WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 + WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A + WS_E_ADDRESS_IN_USE Handle = 0x803D000B + WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C + WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D + WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E + WS_E_ENDPOINT_FAILURE Handle = 0x803D000F + WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 + WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 + WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 + WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 + WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 + WS_E_PROXY_FAILURE Handle = 0x803D0015 + WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 + WS_E_NOT_SUPPORTED Handle = 0x803D0017 + WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 + WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 + WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A + WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B + WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C + WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D + WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E + WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F + WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 + WS_E_OTHER Handle = 0x803D0021 + WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 + WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 + ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 + ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 + ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 + ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 + ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 + ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 + ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 + ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A + ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B + ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C + ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D + ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB + ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F + ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 + ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 + ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 + ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 + ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 + ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 + ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 + ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A + ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B + ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C + ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D + ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E + ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F + ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 + ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 + ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A + ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B + ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C + ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D + ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E + ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F + ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 + ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 + ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 + ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 + ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 + ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 + ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 + ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 + ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 + ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 + ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 + ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 + ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F + ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 + ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 + ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 + ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 + ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 + ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 + ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 + ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 + ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 + ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 + ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A + ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B + ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C + ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D + ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E + ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 + ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 + ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 + ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 + ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 + ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 + ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 + ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 + ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 + ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A + ERROR_HV_NO_DATA syscall.Errno = 0xC035001B + ERROR_HV_INACTIVE syscall.Errno = 0xC035001C + ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D + ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E + ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 + ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 + ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C + ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D + ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E + ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F + ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 + ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 + ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 + ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 + ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 + ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 + ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 + ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 + ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F + ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 + ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 + ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 + ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 + ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 + ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 + ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 + ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 + ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 + ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 + ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 + ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 + ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 + ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 + ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A + ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B + ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C + ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D + ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E + ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F + ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 + ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 + ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 + ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 + ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 + ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 + ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 + ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 + ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 + ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 + ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A + ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B + ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C + ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D + ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E + ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F + ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 + ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 + ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 + ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 + ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 + ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 + ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 + ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 + ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 + ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 + ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A + ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 + ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 + ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 + ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 + ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 + ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 + ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 + ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 + ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 + ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 + ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A + ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B + ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C + ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D + ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E + ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F + ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 + ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 + ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 + ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 + HCS_E_TERMINATED_DURING_START Handle = 0x80370100 + HCS_E_IMAGE_MISMATCH Handle = 0x80370101 + HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 + HCS_E_INVALID_STATE Handle = 0x80370105 + HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 + HCS_E_TERMINATED Handle = 0x80370107 + HCS_E_CONNECT_FAILED Handle = 0x80370108 + HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 + HCS_E_CONNECTION_CLOSED Handle = 0x8037010A + HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B + HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C + HCS_E_INVALID_JSON Handle = 0x8037010D + HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E + HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F + HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 + HCS_E_PROTOCOL_ERROR Handle = 0x80370111 + HCS_E_INVALID_LAYER Handle = 0x80370112 + HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 + HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 + HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 + HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 + HCS_E_OPERATION_PENDING Handle = 0x80370117 + HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 + HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 + HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A + HCS_E_ACCESS_DENIED Handle = 0x8037011B + HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C + ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 + ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 + WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 + WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 + WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 + WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 + WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 + WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 + WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 + WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 + WHV_E_INVALID_VP_STATE Handle = 0x80370308 + WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 + ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 + ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 + ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 + ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 + ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 + ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 + ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 + ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 + ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 + ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 + ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 + ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 + ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 + ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A + ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B + ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C + ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D + ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E + ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F + ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 + ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 + ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 + ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 + ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 + ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 + ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 + ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 + ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A + ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B + ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C + ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D + ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E + ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F + ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 + ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 + ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 + ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 + ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 + ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 + ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 + ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 + ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 + ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 + ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A + ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B + ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C + ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D + ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E + ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F + ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 + ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 + ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 + ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 + ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 + ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 + ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 + ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 + ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 + ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 + ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A + ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B + ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C + ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D + ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E + ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F + ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 + ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 + ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 + ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 + ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 + ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 + ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 + ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 + ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 + ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 + ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A + ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B + ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C + ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D + ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E + ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F + ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 + ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 + ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 + ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 + ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 + ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 + ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 + ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 + ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A + ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B + ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C + ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 + ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 + ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 + ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 + ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 + ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 + ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 + ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 + ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 + ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 + ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 + ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 + ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A + ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B + ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C + ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D + ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E + ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F + ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 + ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 + ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 + ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 + ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 + ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 + ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 + ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 + ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 + ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 + ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A + ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B + ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C + ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D + ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E + ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F + ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 + ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 + ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 + ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 + ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 + ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 + ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 + ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 + ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 + ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 + ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A + ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 + ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 + HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 + HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 + HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 + HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 + HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 + HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 + HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 + HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 + HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 + HCN_E_INVALID_NETWORK Handle = 0x803B000A + HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B + HCN_E_INVALID_ENDPOINT Handle = 0x803B000C + HCN_E_INVALID_POLICY Handle = 0x803B000D + HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E + HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F + HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 + HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 + HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 + HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 + HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 + HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 + HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 + HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 + HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 + HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 + HCN_E_REGKEY_FAILURE Handle = 0x803B001A + HCN_E_INVALID_JSON Handle = 0x803B001B + HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C + HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D + HCN_E_INVALID_IP Handle = 0x803B001E + HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F + HCN_E_MANAGER_STOPPED Handle = 0x803B0020 + GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 + GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 + GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 + GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 + GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 + GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 + 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 + SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 + SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 + SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 + SDIAG_E_DISABLED syscall.Errno = 0x803C0106 + SDIAG_E_TRUST syscall.Errno = 0x803C0107 + SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 + SDIAG_E_VERSION syscall.Errno = 0x803C0109 + SDIAG_E_RESOURCE syscall.Errno = 0x803C010A + SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B + WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 + WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 + WPN_E_INVALID_APP Handle = 0x803E0102 + WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 + WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 + WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 + WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 + WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 + WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 + WPN_E_CLOUD_DISABLED Handle = 0x803E0109 + WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 + WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A + WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B + WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C + WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 + WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 + WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 + WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 + WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 + WPN_E_TAG_SIZE Handle = 0x803E0116 + WPN_E_ACCESS_DENIED Handle = 0x803E0117 + WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 + WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 + WPN_E_DEV_ID_SIZE Handle = 0x803E0120 + WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A + WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B + WPN_E_OUT_OF_SESSION Handle = 0x803E0200 + WPN_E_POWER_SAVE Handle = 0x803E0201 + WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 + WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 + WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 + WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 + WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 + WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 + WPN_E_STORAGE_LOCKED Handle = 0x803E0208 + WPN_E_GROUP_SIZE Handle = 0x803E0209 + WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A + WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B + E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 + E_MBN_BAD_SIM Handle = 0x80548202 + E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 + E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 + E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 + E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 + E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 + E_MBN_RADIO_POWER_OFF Handle = 0x80548208 + E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 + E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A + E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B + E_MBN_INVALID_CACHE Handle = 0x8054820C + E_MBN_NOT_REGISTERED Handle = 0x8054820D + E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E + E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F + E_MBN_PIN_REQUIRED Handle = 0x80548210 + E_MBN_PIN_DISABLED Handle = 0x80548211 + E_MBN_FAILURE Handle = 0x80548212 + E_MBN_INVALID_PROFILE Handle = 0x80548218 + E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 + E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 + E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 + E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 + E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 + E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 + E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 + E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 + E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 + E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 + E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 + PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 + PEER_E_NOT_INITIALIZED Handle = 0x80630002 + PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 + PEER_E_NOT_LICENSED Handle = 0x80630004 + PEER_E_INVALID_GRAPH Handle = 0x80630010 + PEER_E_DBNAME_CHANGED Handle = 0x80630011 + PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 + PEER_E_GRAPH_NOT_READY Handle = 0x80630013 + PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 + PEER_E_GRAPH_IN_USE Handle = 0x80630015 + PEER_E_INVALID_DATABASE Handle = 0x80630016 + PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 + PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 + PEER_E_CONNECT_SELF Handle = 0x80630106 + PEER_E_ALREADY_LISTENING Handle = 0x80630107 + PEER_E_NODE_NOT_FOUND Handle = 0x80630108 + PEER_E_CONNECTION_FAILED Handle = 0x80630109 + PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A + PEER_E_CONNECTION_REFUSED Handle = 0x8063010B + PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 + PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 + PEER_E_NO_KEY_ACCESS Handle = 0x80630203 + PEER_E_GROUPS_EXIST Handle = 0x80630204 + PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 + PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 + PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 + PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 + PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 + PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 + PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 + PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 + PEER_E_INVALID_SEARCH Handle = 0x80630601 + PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 + PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 + PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 + PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 + PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 + PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 + PEER_E_NO_CLOUD Handle = 0x80631001 + PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 + PEER_E_INVALID_RECORD Handle = 0x80632010 + PEER_E_NOT_AUTHORIZED Handle = 0x80632020 + PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 + PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 + PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 + PEER_E_INVALID_PEER_NAME Handle = 0x80632050 + PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 + PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 + PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 + PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 + PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 + PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 + PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 + PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 + PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 + PEER_E_GROUP_NOT_READY Handle = 0x80632091 + PEER_E_GROUP_IN_USE Handle = 0x80632092 + PEER_E_INVALID_GROUP Handle = 0x80632093 + PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 + PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 + PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 + PEER_E_IDENTITY_DELETED Handle = 0x806320A0 + PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 + PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 + PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 + PEER_S_NO_EVENT_DATA Handle = 0x00630002 + PEER_S_ALREADY_CONNECTED Handle = 0x00632000 + PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 + PEER_S_NO_CONNECTIVITY Handle = 0x00630005 + PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 + PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 + PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 + PEER_E_NO_MORE Handle = 0x80634003 + PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 + PEER_E_INVITE_CANCELLED Handle = 0x80637000 + PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 + PEER_E_NOT_SIGNED_IN Handle = 0x80637003 + PEER_E_PRIVACY_DECLINED Handle = 0x80637004 + PEER_E_TIMEOUT Handle = 0x80637005 + PEER_E_INVALID_ADDRESS Handle = 0x80637007 + PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 + PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 + PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A + PEER_E_FW_DECLINED Handle = 0x8063700B + UI_E_CREATE_FAILED Handle = 0x802A0001 + UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 + UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 + UI_E_OBJECT_SEALED Handle = 0x802A0004 + UI_E_VALUE_NOT_SET Handle = 0x802A0005 + UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 + UI_E_INVALID_OUTPUT Handle = 0x802A0007 + UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 + UI_E_DIFFERENT_OWNER Handle = 0x802A0009 + UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A + UI_E_FP_OVERFLOW Handle = 0x802A000B + UI_E_WRONG_THREAD Handle = 0x802A000C + UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 + UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 + UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 + UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 + UI_E_LOOPS_OVERLAP Handle = 0x802A0105 + UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 + UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 + UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 + UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 + UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A + UI_E_INVALID_DIMENSION Handle = 0x802A010B + UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C + UI_E_WINDOW_CLOSED Handle = 0x802A0201 + E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 + E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 + E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 + E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 + E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 + E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 + E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C + E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D + E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F + E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 + E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 + E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 + E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 + E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 + E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 + E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 + E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 + STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 + STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 + STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 + STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 + STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 + STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 + STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 + STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 + STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A + STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B + STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C + STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D + STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F + STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 + STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 + STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 + STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 + STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 + ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 + ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 + ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 + ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 + ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 + ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 + ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 + ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 + ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 + ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A + ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B + ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C + ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D + ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E + ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F + ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 + ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 + ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 + ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 + ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 + ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 + ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 + ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 + ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 + ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 + ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 + ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 + ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 + ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 + ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 + ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 + ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A + ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 + ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 + ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 + ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 + ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 + ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 + ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 + ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 + ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 + ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 + ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A + DXGI_STATUS_OCCLUDED Handle = 0x087A0001 + DXGI_STATUS_CLIPPED Handle = 0x087A0002 + DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 + DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 + DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 + DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 + DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 + DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 + DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 + DXGI_ERROR_MORE_DATA Handle = 0x887A0003 + DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 + DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 + DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 + DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 + DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A + DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B + DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C + DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 + DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 + DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 + DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 + DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 + DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 + DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 + DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 + DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 + DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A + DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B + DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C + DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D + DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E + DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 + DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 + DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 + DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 + DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A + DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 + DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F + DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 + DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 + DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 + DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 + DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 + DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 + DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 + D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 + D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 + D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 + D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 + D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 + D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 + D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 + D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 + D2DERR_WRONG_STATE Handle = 0x88990001 + D2DERR_NOT_INITIALIZED Handle = 0x88990002 + D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 + D2DERR_SCANNER_FAILED Handle = 0x88990004 + D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 + D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 + D2DERR_ZERO_VECTOR Handle = 0x88990007 + D2DERR_INTERNAL_ERROR Handle = 0x88990008 + D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 + D2DERR_INVALID_CALL Handle = 0x8899000A + D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B + D2DERR_RECREATE_TARGET Handle = 0x8899000C + D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D + D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E + D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F + D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 + D2DERR_BAD_NUMBER Handle = 0x88990011 + D2DERR_WRONG_FACTORY Handle = 0x88990012 + D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 + D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 + D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 + D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 + D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 + D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 + D2DERR_WIN32_ERROR Handle = 0x88990019 + D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A + D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B + D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C + D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D + D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E + D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F + D2DERR_CYCLIC_GRAPH Handle = 0x88990020 + D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 + D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 + D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 + D2DERR_INVALID_TARGET Handle = 0x88990024 + D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 + D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 + D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 + D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 + D2DERR_INVALID_PROPERTY Handle = 0x88990029 + D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A + D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B + D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C + D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D + D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E + DWRITE_E_FILEFORMAT Handle = 0x88985000 + DWRITE_E_UNEXPECTED Handle = 0x88985001 + DWRITE_E_NOFONT Handle = 0x88985002 + DWRITE_E_FILENOTFOUND Handle = 0x88985003 + DWRITE_E_FILEACCESS Handle = 0x88985004 + DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 + DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 + DWRITE_E_CACHEFORMAT Handle = 0x88985007 + DWRITE_E_CACHEVERSION Handle = 0x88985008 + DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 + DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A + DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B + DWRITE_E_NOCOLOR Handle = 0x8898500C + DWRITE_E_REMOTEFONT Handle = 0x8898500D + DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E + DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F + DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 + WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 + WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 + WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 + WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B + WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C + WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D + WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 + WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 + WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 + WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 + WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 + WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 + WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 + WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 + WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 + WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 + WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 + WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 + WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 + WINCODEC_ERR_BADHEADER Handle = 0x88982F61 + WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 + WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 + WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 + WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 + WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 + WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 + WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 + WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 + WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A + WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B + WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C + WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D + WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E + WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F + WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 + WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 + WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 + WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 + WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 + WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 + WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 + MILERR_OBJECTBUSY Handle = 0x88980001 + MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 + MILERR_WIN32ERROR Handle = 0x88980003 + MILERR_SCANNER_FAILED Handle = 0x88980004 + MILERR_SCREENACCESSDENIED Handle = 0x88980005 + MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 + MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 + MILERR_ZEROVECTOR Handle = 0x88980008 + MILERR_TERMINATED Handle = 0x88980009 + MILERR_BADNUMBER Handle = 0x8898000A + MILERR_INTERNALERROR Handle = 0x88980080 + MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 + MILERR_INVALIDCALL Handle = 0x88980085 + MILERR_ALREADYLOCKED Handle = 0x88980086 + MILERR_NOTLOCKED Handle = 0x88980087 + MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 + MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 + MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A + MILERR_GENERIC_IGNORE Handle = 0x8898008B + MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C + MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D + MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E + MILERR_ALREADY_INITIALIZED Handle = 0x8898008F + MILERR_MISMATCHED_SIZE Handle = 0x88980090 + MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 + MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 + MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 + MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 + MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 + MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 + MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 + MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 + MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 + MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A + MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B + MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D + MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E + MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F + MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 + MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 + UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 + UCEERR_UNKNOWNPACKET Handle = 0x88980401 + UCEERR_ILLEGALPACKET Handle = 0x88980402 + UCEERR_MALFORMEDPACKET Handle = 0x88980403 + UCEERR_ILLEGALHANDLE Handle = 0x88980404 + UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 + UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 + UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 + UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 + UCEERR_BLOCKSFULL Handle = 0x88980409 + UCEERR_MEMORYFAILURE Handle = 0x8898040A + UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B + UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C + UCEERR_OUTOFHANDLES Handle = 0x8898040D + UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E + UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F + UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 + UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 + UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 + UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 + UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 + UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 + UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 + UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 + UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 + UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 + UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 + UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 + UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 + UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 + MILAVERR_NOCLOCK Handle = 0x88980500 + MILAVERR_NOMEDIATYPE Handle = 0x88980501 + MILAVERR_NOVIDEOMIXER Handle = 0x88980502 + MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 + MILAVERR_NOREADYFRAMES Handle = 0x88980504 + MILAVERR_MODULENOTLOADED Handle = 0x88980505 + MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 + MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 + MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 + MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 + MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A + MILAVERR_SEEKFAILED Handle = 0x8898050B + MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C + MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D + MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E + MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E + MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F + MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 + MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 + MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 + MILEFFECTSERR_RESERVED Handle = 0x88980613 + MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 + MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 + MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 + MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 + MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 + MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 + MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A + MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B + DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 + DWMERR_THEME_FAILED Handle = 0x88980701 + DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 + DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 + DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 + DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 + ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 + ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 + ONL_E_INVALID_APPLICATION Handle = 0x80860003 + ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 + ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 + ONL_E_FORCESIGNIN Handle = 0x80860006 + ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 + ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 + ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 + ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A + ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B + ONL_E_ACTION_REQUIRED Handle = 0x8086000C + ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D + ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E + ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F + ONL_E_REQUEST_THROTTLED Handle = 0x80860010 + FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 + FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 + E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 + E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 + E_UAC_DISABLED Handle = 0x80270252 + E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 + E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 + E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 + E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 + E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 + S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 + S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 + E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A + E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B + E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C + E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D + E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 + E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 + E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 + E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 + E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 + E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 + E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 + E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 + E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 + E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 + E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 + E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 + E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 + E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 + E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 + E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 + E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 + E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 + E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 + E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 + E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 + E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 + E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 + E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 + E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 + E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 + E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 + E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A + E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B + EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 + EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 + EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 + EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 + EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 + EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 + EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 + EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 + EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A + EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C + EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D + WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 + WEB_E_INVALID_XML Handle = 0x83750002 + WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 + WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 + WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 + WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 + WEB_E_INVALID_JSON_STRING Handle = 0x83750007 + WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 + WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 + HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 + HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 + HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 + HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 + HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C + HTTP_E_STATUS_MOVED Handle = 0x8019012D + HTTP_E_STATUS_REDIRECT Handle = 0x8019012E + HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F + HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 + HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 + HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 + HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 + HTTP_E_STATUS_DENIED Handle = 0x80190191 + HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 + HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 + HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 + HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 + HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 + HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 + HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 + HTTP_E_STATUS_CONFLICT Handle = 0x80190199 + HTTP_E_STATUS_GONE Handle = 0x8019019A + HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B + HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C + HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D + HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E + HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F + HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 + HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 + HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 + HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 + HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 + HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 + HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 + HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 + E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 + E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 + E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 + E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 + E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 + INPUT_E_OUT_OF_ORDER Handle = 0x80400000 + INPUT_E_REENTRANCY Handle = 0x80400001 + INPUT_E_MULTIMODAL Handle = 0x80400002 + INPUT_E_PACKET Handle = 0x80400003 + INPUT_E_FRAME Handle = 0x80400004 + INPUT_E_HISTORY Handle = 0x80400005 + INPUT_E_DEVICE_INFO Handle = 0x80400006 + INPUT_E_TRANSFORM Handle = 0x80400007 + INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 + INET_E_INVALID_URL Handle = 0x800C0002 + INET_E_NO_SESSION Handle = 0x800C0003 + INET_E_CANNOT_CONNECT Handle = 0x800C0004 + INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 + INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 + INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 + INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 + INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 + INET_E_NO_VALID_MEDIA Handle = 0x800C000A + INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B + INET_E_INVALID_REQUEST Handle = 0x800C000C + INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D + INET_E_SECURITY_PROBLEM Handle = 0x800C000E + INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F + INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 + INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 + INET_E_REDIRECT_FAILED Handle = 0x800C0014 + INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 + ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 + ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 + ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 + ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 + ERROR_IO_PREEMPTED Handle = 0x89010001 + JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 + WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 + WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 + WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 + WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 + WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 + WEP_E_NO_LICENSE Handle = 0x88010006 + WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 + WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 + WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 + ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 + ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 + ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 + ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 + ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 + ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 + ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 + ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 + ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 + ERROR_VHD_SHARED Handle = 0xC05CFF0A + ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B + ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C + ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 + ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 + WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 + WININET_E_TIMEOUT Handle = 0x80072EE2 + WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 + WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 + WININET_E_INVALID_URL Handle = 0x80072EE5 + WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 + WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 + WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 + WININET_E_INVALID_OPTION Handle = 0x80072EE9 + WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA + WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB + WININET_E_SHUTDOWN Handle = 0x80072EEC + WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED + WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE + WININET_E_LOGIN_FAILURE Handle = 0x80072EEF + WININET_E_INVALID_OPERATION Handle = 0x80072EF0 + WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 + WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 + WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 + WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 + WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 + WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 + WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 + WININET_E_NO_CONTEXT Handle = 0x80072EF8 + WININET_E_NO_CALLBACK Handle = 0x80072EF9 + WININET_E_REQUEST_PENDING Handle = 0x80072EFA + WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB + WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC + WININET_E_CANNOT_CONNECT Handle = 0x80072EFD + WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE + WININET_E_CONNECTION_RESET Handle = 0x80072EFF + WININET_E_FORCE_RETRY Handle = 0x80072F00 + WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 + WININET_E_NEED_UI Handle = 0x80072F02 + WININET_E_HANDLE_EXISTS Handle = 0x80072F04 + WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 + WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 + WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 + WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 + WININET_E_MIXED_SECURITY Handle = 0x80072F09 + WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A + WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B + WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C + WININET_E_INVALID_CA Handle = 0x80072F0D + WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E + WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F + WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 + WININET_E_DIALOG_PENDING Handle = 0x80072F11 + WININET_E_RETRY_DIALOG Handle = 0x80072F12 + WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 + WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 + WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 + WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 + WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 + WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 + WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 + WININET_E_INVALID_HEADER Handle = 0x80072F79 + WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A + WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B + WININET_E_REDIRECT_FAILED Handle = 0x80072F7C + WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D + WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E + WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F + WININET_E_DISCONNECTED Handle = 0x80072F83 + WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 + WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 + WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 + WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 + WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 + WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A + WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B + WININET_E_NOT_INITIALIZED Handle = 0x80072F8C + WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E + WININET_E_DECODING_FAILED Handle = 0x80072F8F + WININET_E_NOT_REDIRECTED Handle = 0x80072F80 + WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 + WININET_E_COOKIE_DECLINED Handle = 0x80072F82 + WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 + SQLITE_E_ERROR Handle = 0x87AF0001 + SQLITE_E_INTERNAL Handle = 0x87AF0002 + SQLITE_E_PERM Handle = 0x87AF0003 + SQLITE_E_ABORT Handle = 0x87AF0004 + SQLITE_E_BUSY Handle = 0x87AF0005 + SQLITE_E_LOCKED Handle = 0x87AF0006 + SQLITE_E_NOMEM Handle = 0x87AF0007 + SQLITE_E_READONLY Handle = 0x87AF0008 + SQLITE_E_INTERRUPT Handle = 0x87AF0009 + SQLITE_E_IOERR Handle = 0x87AF000A + SQLITE_E_CORRUPT Handle = 0x87AF000B + SQLITE_E_NOTFOUND Handle = 0x87AF000C + SQLITE_E_FULL Handle = 0x87AF000D + SQLITE_E_CANTOPEN Handle = 0x87AF000E + SQLITE_E_PROTOCOL Handle = 0x87AF000F + SQLITE_E_EMPTY Handle = 0x87AF0010 + SQLITE_E_SCHEMA Handle = 0x87AF0011 + SQLITE_E_TOOBIG Handle = 0x87AF0012 + SQLITE_E_CONSTRAINT Handle = 0x87AF0013 + SQLITE_E_MISMATCH Handle = 0x87AF0014 + SQLITE_E_MISUSE Handle = 0x87AF0015 + SQLITE_E_NOLFS Handle = 0x87AF0016 + SQLITE_E_AUTH Handle = 0x87AF0017 + SQLITE_E_FORMAT Handle = 0x87AF0018 + SQLITE_E_RANGE Handle = 0x87AF0019 + SQLITE_E_NOTADB Handle = 0x87AF001A + SQLITE_E_NOTICE Handle = 0x87AF001B + SQLITE_E_WARNING Handle = 0x87AF001C + SQLITE_E_ROW Handle = 0x87AF0064 + SQLITE_E_DONE Handle = 0x87AF0065 + SQLITE_E_IOERR_READ Handle = 0x87AF010A + SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A + SQLITE_E_IOERR_WRITE Handle = 0x87AF030A + SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A + SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A + SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A + SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A + SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A + SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A + SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A + SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A + SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A + SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A + SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A + SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A + SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A + SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A + SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A + SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A + SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A + SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A + SQLITE_E_IOERR_SEEK Handle = 0x87AF160A + SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A + SQLITE_E_IOERR_MMAP Handle = 0x87AF180A + SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A + SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A + SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 + SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 + SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 + SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 + SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 + SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E + SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E + SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E + SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E + SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B + SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 + SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 + SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 + SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 + SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 + SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 + SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 + SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 + SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 + SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 + SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 + SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 + SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 + SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 + SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 + SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B + SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B + SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C + UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 + UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 + UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 + UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 + UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 + UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 + UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 + UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 + UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 + UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A + UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B + UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C + UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D + UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E + UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F + UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 + UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 + UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 + UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 + UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 + UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 + UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 + UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 + UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 + UTC_E_INVALID_FILTER Handle = 0x87C51019 + UTC_E_EXE_TERMINATED Handle = 0x87C5101A + UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B + UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C + UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D + UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E + UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F + UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 + UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 + UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 + UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 + UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 + UTC_E_DELAY_TERMINATED Handle = 0x87C51025 + UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 + UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 + UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 + UTC_E_RPC_TIMEOUT Handle = 0x87C51029 + UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A + UTC_E_API_BUSY Handle = 0x87C5102B + UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C + UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D + UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E + UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F + UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 + UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 + UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 + UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 + UTC_E_BINARY_MISSING Handle = 0x87C51034 + UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 + UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 + UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 + UTC_E_THROTTLED Handle = 0x87C51038 + UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 + UTC_E_SCRIPT_MISSING Handle = 0x87C5103A + UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B + UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C + UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D + UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E + UTC_E_CERT_REV_FAILED Handle = 0x87C5103F + UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 + UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 + UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 + UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 + UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 + UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 + UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 + UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 + UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 + UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 + UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 + UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 + UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 + UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 + UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 + UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 + UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 + UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 + UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 + 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 0000000..6048ac6 --- /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 new file mode 100644 index 0000000..a58bc48 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -0,0 +1,4695 @@ +// Code generated by 'go generate'; DO NOT EDIT. + +package windows + +import ( + "syscall" + "unsafe" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") + modadvapi32 = NewLazySystemDLL("advapi32.dll") + modcrypt32 = NewLazySystemDLL("crypt32.dll") + moddnsapi = NewLazySystemDLL("dnsapi.dll") + moddwmapi = NewLazySystemDLL("dwmapi.dll") + modiphlpapi = NewLazySystemDLL("iphlpapi.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") + modsetupapi = NewLazySystemDLL("setupapi.dll") + modshell32 = NewLazySystemDLL("shell32.dll") + moduser32 = NewLazySystemDLL("user32.dll") + moduserenv = NewLazySystemDLL("userenv.dll") + modversion = NewLazySystemDLL("version.dll") + modwinmm = NewLazySystemDLL("winmm.dll") + modwintrust = NewLazySystemDLL("wintrust.dll") + modws2_32 = NewLazySystemDLL("ws2_32.dll") + modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") + + procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") + procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") + procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") + procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") + 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") + procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") + 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") + procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procEqualSid = modadvapi32.NewProc("EqualSid") + procFreeSid = modadvapi32.NewProc("FreeSid") + procGetAce = modadvapi32.NewProc("GetAce") + 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") + procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") + 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") + procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") + 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") + procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") + procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") + procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") + procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") + procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") + procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") + procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") + procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") + procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procClearCommBreak = modkernel32.NewProc("ClearCommBreak") + procClearCommError = modkernel32.NewProc("ClearCommError") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") + 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") + procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") + 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") + procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") + procExitProcess = modkernel32.NewProc("ExitProcess") + procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") + 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") + procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") + procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") + procGetCommState = modkernel32.NewProc("GetCommState") + procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") + 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") + procGetFileTime = modkernel32.NewProc("GetFileTime") + procGetFileType = modkernel32.NewProc("GetFileType") + procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") + procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") + procGetLastError = modkernel32.NewProc("GetLastError") + procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") + procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") + procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") + procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") + procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") + procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") + procGetNamedPipeClientProcessId = modkernel32.NewProc("GetNamedPipeClientProcessId") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") + 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") + procModule32FirstW = modkernel32.NewProc("Module32FirstW") + procModule32NextW = modkernel32.NewProc("Module32NextW") + 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") + procPurgeComm = modkernel32.NewProc("PurgeComm") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") + procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") + procReadConsoleW = modkernel32.NewProc("ReadConsoleW") + procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") + procReadFile = modkernel32.NewProc("ReadFile") + procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") + procReleaseMutex = modkernel32.NewProc("ReleaseMutex") + procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") + procRemoveDllDirectory = modkernel32.NewProc("RemoveDllDirectory") + procResetEvent = modkernel32.NewProc("ResetEvent") + procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") + procResumeThread = modkernel32.NewProc("ResumeThread") + procSetCommBreak = modkernel32.NewProc("SetCommBreak") + procSetCommMask = modkernel32.NewProc("SetCommMask") + procSetCommState = modkernel32.NewProc("SetCommState") + procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") + procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") + procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") + 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") + procSetFileValidData = modkernel32.NewProc("SetFileValidData") + 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") + procSetupComm = modkernel32.NewProc("SetupComm") + 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") + procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") + procVirtualQuery = modkernel32.NewProc("VirtualQuery") + procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") + procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") + procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") + procWriteFile = modkernel32.NewProc("WriteFile") + procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") + procAcceptEx = modmswsock.NewProc("AcceptEx") + procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") + procTransmitFile = modmswsock.NewProc("TransmitFile") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetUserEnum = modnetapi32.NewProc("NetUserEnum") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") + procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") + procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") + procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") + procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") + procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") + procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") + procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") + procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") + 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") + procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") + procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") + procEnumProcesses = modpsapi.NewProc("EnumProcesses") + procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") + procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") + procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") + procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") + procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") + procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") + procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") + procTranslateNameW = modsecur32.NewProc("TranslateNameW") + procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") + procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") + procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") + procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") + procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") + procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") + procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") + procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") + procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") + procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") + procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") + procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") + procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") + procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") + procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") + procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") + procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") + procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") + procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") + procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") + procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") + procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") + procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") + procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") + procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") + procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") + procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") + procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") + procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") + procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") + procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procEnumChildWindows = moduser32.NewProc("EnumChildWindows") + procEnumWindows = moduser32.NewProc("EnumWindows") + procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") + procGetClassNameW = moduser32.NewProc("GetClassNameW") + procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") + procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") + procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") + procGetKeyboardLayout = moduser32.NewProc("GetKeyboardLayout") + procGetShellWindow = moduser32.NewProc("GetShellWindow") + procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procIsWindow = moduser32.NewProc("IsWindow") + procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") + procIsWindowVisible = moduser32.NewProc("IsWindowVisible") + procLoadKeyboardLayoutW = moduser32.NewProc("LoadKeyboardLayoutW") + procMessageBoxW = moduser32.NewProc("MessageBoxW") + procToUnicodeEx = moduser32.NewProc("ToUnicodeEx") + procUnloadKeyboardLayout = moduser32.NewProc("UnloadKeyboardLayout") + procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") + procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") + procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") + procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") + procVerQueryValueW = modversion.NewProc("VerQueryValueW") + proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") + proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") + procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") + procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") + procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") + procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW") + procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") + procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") + procWSAIoctl = modws2_32.NewProc("WSAIoctl") + procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") + procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") + procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") + 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 cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { + r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + ret = Errno(r0) + return +} + +func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { + var _p0 uint32 + if resetToDefault { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { + var _p0 uint32 + if disableAllPrivileges { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 { + 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))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseServiceHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + 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) + if r1 == 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))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateProcessAsUser(token Token, 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 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + if r1 == 0 { + 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 { + 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) + 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) + if r1 == 0 { + 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))) + if r1 == 0 { + err = errnoErr(e1) + } + 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 +} + +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 DeregisterEventSource(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + if r1 == 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) + if r1 == 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 + return +} + +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 GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { + r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) + return +} + +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 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return + } + return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) +} + +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 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 getSecurityDescriptorDacl(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(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 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { + var _p0 uint32 + if *groupDefaulted { + _p0 = 1 + } + 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 { + err = errnoErr(e1) + } + return +} + +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 *ownerDefaulted { + _p0 = 1 + } + 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 { + err = errnoErr(e1) + } + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +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 getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { + r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) + return +} + +func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + subAuthority = (*uint32)(unsafe.Pointer(r0)) + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +func ImpersonateSelf(impersonationlevel uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +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 isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + isValid = r0 != 0 + return +} + +func isValidSid(sid *SID) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + isValid = r0 != 0 + return +} + +func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { + r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + 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 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 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 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 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 { + err = errnoErr(e1) + } + return +} + +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 { + 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 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { + err = procQueryServiceDynamicInformation.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + 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) + if r1 == 0 { + 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) + if r1 == 0 { + 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 RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { + var _p0 uint32 + if watchSubtree { + _p0 = 1 + } + 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 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 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 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 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 RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + handle = Handle(r0) + if handle == 0 { + 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 { + err = errnoErr(e1) + } + return +} + +func RevertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) +} + +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 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 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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { + syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + if r1 == 0 { + 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))) + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 CertDeleteCertificateFromStore(certContext *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 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 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 CertFreeCertificateChain(ctx *CertChainContext) { + syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + return +} + +func CertFreeCertificateContext(ctx *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + if r1 == 0 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 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 { + err = errnoErr(e1) + } + return +} + +func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { + var _p0 uint32 + if *callerFreeProvOrNCryptKey { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + *callerFreeProvOrNCryptKey = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 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 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 _DnsQuery(_p0, qtype, options, extra, qrs, pr) +} + +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) + } + return +} + +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + return +} + +func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { + r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + 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) + } + return +} + +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 { + errcode = syscall.Errno(r0) + } + return +} + +func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + 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) + } + return +} + +func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { + var _p0 uint32 + if initialNotification { + _p0 = 1 + } + r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { + var _p0 uint32 + if initialNotification { + _p0 = 1 + } + r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func AddDllDirectory(path *uint16) (cookie uintptr, err error) { + r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + cookie = uintptr(r0) + if cookie == 0 { + err = errnoErr(e1) + } + return +} + +func AssignProcessToJobObject(job Handle, process Handle) (err error) { + r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + if r1 == 0 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClearCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClosePseudoConsole(console Handle) { + syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) + return +} + +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 { + 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 { + 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) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + 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) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + 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 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +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 +} + +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 { + err = errnoErr(e1) + } + return +} + +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 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 { + err = errnoErr(e1) + } + return +} + +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 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if initialOwner { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +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 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 { + 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 + } + 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 { + err = errnoErr(e1) + } + return +} + +func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { + r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) + if r0 != 0 { + hr = syscall.Errno(r0) + } + 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 { + 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 { + err = errnoErr(e1) + } + 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))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { + syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + return +} + +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + if r1 == 0 { + 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 { + err = errnoErr(e1) + } + return +} + +func DisconnectNamedPipe(pipe Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + if r1 == 0 { + 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 + } + 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 EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + return +} + +func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindCloseChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) +} + +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 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 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 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 FindNextChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + 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 { + 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 { + 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)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 FlushFileBuffers(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) + return +} + +func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) + return +} + +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + if r1 == 0 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + err = errnoErr(e1) + } + return +} + +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 GetConsoleOutputCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + 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) + if r1 == 0 { + 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 { + err = errnoErr(e1) + } + return +} + +func GetCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) + return +} + +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return +} + +func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { + r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + if r1 == 0 { + 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 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 +} + +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 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 +} + +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 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 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 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 GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + 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 { + err = errnoErr(e1) + } + return +} + +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 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 GetLargePageMinimum() (size uintptr) { + r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + size = uintptr(r0) + return +} + +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + if r0 != 0 { + lasterr = syscall.Errno(r0) + } + 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 { + err = errnoErr(e1) + } + return +} + +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 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 GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +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 GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 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 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 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 { + err = errnoErr(e1) + } + return +} + +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 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +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 { + 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 { + err = errnoErr(e1) + } + return +} + +func getStartupInfo(startupInfo *StartupInfo) { + syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + 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 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 { + err = errnoErr(e1) + } + return +} + +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 { + err = errnoErr(e1) + } + return +} + +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 { + 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 { + 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) + if r1 == 0 { + err = errnoErr(e1) + } + 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) + if r1 == 0 { + 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 { + err = errnoErr(e1) + } + return +} + +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 { + 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 { + err = errnoErr(e1) + } + return +} + +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 { + 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 Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 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 PurgeComm(handle Handle, dwFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 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 ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + 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 RemoveDllDirectory(cookie uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 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 resizePseudoConsole(pconsole Handle, size uint32) (hr error) { + r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) + if r0 != 0 { + hr = syscall.Errno(r0) + } + 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 SetCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + 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 SetConsoleCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 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 SetConsoleOutputCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 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 SetFileValidData(handle Handle, validDataLength int64) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 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 SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + 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 VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + 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 WTSGetActiveConsoleSessionId() (sessionID uint32) { + r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + sessionID = uint32(r0) + return +} + +func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + 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 WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + 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 NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { + r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + 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 NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + 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 NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + ret = r0 != 0 + 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 RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + ret = r0 != 0 + return +} + +func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + 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 EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + 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 SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + key = Handle(r0) + if key == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (**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 EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { + syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + return +} + +func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + if r1 == 0 { + 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 GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { + r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + copied = int32(r0) + if copied == 0 { + err = errnoErr(e1) + } + return +} + +func GetDesktopWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetForegroundWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetKeyboardLayout(tid uint32) (hkl Handle) { + r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) + hkl = Handle(r0) + 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 IsWindow(hwnd HWND) (isWindow bool) { + r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + isWindow = r0 != 0 + return +} + +func IsWindowUnicode(hwnd HWND) (isUnicode bool) { + r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + isUnicode = r0 != 0 + return +} + +func IsWindowVisible(hwnd HWND) (isVisible bool) { + r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + isVisible = r0 != 0 + return +} + +func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) + hkl = Handle(r0) + if hkl == 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 ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { + r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) + ret = int32(r0) + return +} + +func UnloadKeyboardLayout(hkl Handle) (err error) { + r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) + if r1 == 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 GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfoSize(_p0, zeroHandle) +} + +func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + bufSize = uint32(r0) + if bufSize == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfo(_p0, handle, bufSize, buffer) +} + +func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(subBlock) + if err != nil { + return + } + return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) +} + +func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TimeBeginPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func TimeEndPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + 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 WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { + r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + 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 WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceEnd(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { + r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + 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/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE new file mode 100644 index 0000000..2a7cf70 --- /dev/null +++ b/vendor/golang.org/x/tools/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/tools/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go new file mode 100644 index 0000000..89f5097 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go @@ -0,0 +1,663 @@ +// Copyright 2013 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 astutil + +// This file defines utilities for working with source positions. + +import ( + "fmt" + "go/ast" + "go/token" + "sort" +) + +// PathEnclosingInterval returns the node that encloses the source +// interval [start, end), and all its ancestors up to the AST root. +// +// The definition of "enclosing" used by this function considers +// additional whitespace abutting a node to be enclosed by it. +// In this example: +// +// z := x + y // add them +// <-A-> +// <----B-----> +// +// the ast.BinaryExpr(+) node is considered to enclose interval B +// even though its [Pos()..End()) is actually only interval A. +// This behaviour makes user interfaces more tolerant of imperfect +// input. +// +// This function treats tokens as nodes, though they are not included +// in the result. e.g. PathEnclosingInterval("+") returns the +// enclosing ast.BinaryExpr("x + y"). +// +// If start==end, the 1-char interval following start is used instead. +// +// The 'exact' result is true if the interval contains only path[0] +// and perhaps some adjacent whitespace. It is false if the interval +// overlaps multiple children of path[0], or if it contains only +// interior whitespace of path[0]. +// In this example: +// +// z := x + y // add them +// <--C--> <---E--> +// ^ +// D +// +// intervals C, D and E are inexact. C is contained by the +// z-assignment statement, because it spans three of its children (:=, +// x, +). So too is the 1-char interval D, because it contains only +// interior whitespace of the assignment. E is considered interior +// whitespace of the BlockStmt containing the assignment. +// +// The resulting path is never empty; it always contains at least the +// 'root' *ast.File. Ideally PathEnclosingInterval would reject +// intervals that lie wholly or partially outside the range of the +// file, but unfortunately ast.File records only the token.Pos of +// the 'package' keyword, but not of the start of the file itself. +func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) { + // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging + + // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end). + var visit func(node ast.Node) bool + visit = func(node ast.Node) bool { + path = append(path, node) + + nodePos := node.Pos() + nodeEnd := node.End() + + // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging + + // Intersect [start, end) with interval of node. + if start < nodePos { + start = nodePos + } + if end > nodeEnd { + end = nodeEnd + } + + // Find sole child that contains [start, end). + children := childrenOf(node) + l := len(children) + for i, child := range children { + // [childPos, childEnd) is unaugmented interval of child. + childPos := child.Pos() + childEnd := child.End() + + // [augPos, augEnd) is whitespace-augmented interval of child. + augPos := childPos + augEnd := childEnd + if i > 0 { + augPos = children[i-1].End() // start of preceding whitespace + } + if i < l-1 { + nextChildPos := children[i+1].Pos() + // Does [start, end) lie between child and next child? + if start >= augEnd && end <= nextChildPos { + return false // inexact match + } + augEnd = nextChildPos // end of following whitespace + } + + // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n", + // i, augPos, augEnd, start, end) // debugging + + // Does augmented child strictly contain [start, end)? + if augPos <= start && end <= augEnd { + if is[tokenNode](child) { + return true + } + + // childrenOf elides the FuncType node beneath FuncDecl. + // Add it back here for TypeParams, Params, Results, + // all FieldLists). But we don't add it back for the "func" token + // even though it is is the tree at FuncDecl.Type.Func. + if decl, ok := node.(*ast.FuncDecl); ok { + if fields, ok := child.(*ast.FieldList); ok && fields != decl.Recv { + path = append(path, decl.Type) + } + } + + return visit(child) + } + + // Does [start, end) overlap multiple children? + // i.e. left-augmented child contains start + // but LR-augmented child does not contain end. + if start < childEnd && end > augEnd { + break + } + } + + // No single child contained [start, end), + // so node is the result. Is it exact? + + // (It's tempting to put this condition before the + // child loop, but it gives the wrong result in the + // case where a node (e.g. ExprStmt) and its sole + // child have equal intervals.) + if start == nodePos && end == nodeEnd { + return true // exact match + } + + return false // inexact: overlaps multiple children + } + + // Ensure [start,end) is nondecreasing. + if start > end { + start, end = end, start + } + + if start < root.End() && end > root.Pos() { + if start == end { + end = start + 1 // empty interval => interval of size 1 + } + exact = visit(root) + + // Reverse the path: + for i, l := 0, len(path); i < l/2; i++ { + path[i], path[l-1-i] = path[l-1-i], path[i] + } + } else { + // Selection lies within whitespace preceding the + // first (or following the last) declaration in the file. + // The result nonetheless always includes the ast.File. + path = append(path, root) + } + + return +} + +// tokenNode is a dummy implementation of ast.Node for a single token. +// They are used transiently by PathEnclosingInterval but never escape +// this package. +type tokenNode struct { + pos token.Pos + end token.Pos +} + +func (n tokenNode) Pos() token.Pos { + return n.pos +} + +func (n tokenNode) End() token.Pos { + return n.end +} + +func tok(pos token.Pos, len int) ast.Node { + return tokenNode{pos, pos + token.Pos(len)} +} + +// childrenOf returns the direct non-nil children of ast.Node n. +// It may include fake ast.Node implementations for bare tokens. +// it is not safe to call (e.g.) ast.Walk on such nodes. +func childrenOf(n ast.Node) []ast.Node { + var children []ast.Node + + // First add nodes for all true subtrees. + ast.Inspect(n, func(node ast.Node) bool { + if node == n { // push n + return true // recur + } + if node != nil { // push child + children = append(children, node) + } + return false // no recursion + }) + + // TODO(adonovan): be more careful about missing (!Pos.Valid) + // tokens in trees produced from invalid input. + + // Then add fake Nodes for bare tokens. + switch n := n.(type) { + case *ast.ArrayType: + children = append(children, + tok(n.Lbrack, len("[")), + tok(n.Elt.End(), len("]"))) + + case *ast.AssignStmt: + children = append(children, + tok(n.TokPos, len(n.Tok.String()))) + + case *ast.BasicLit: + children = append(children, + tok(n.ValuePos, len(n.Value))) + + case *ast.BinaryExpr: + children = append(children, tok(n.OpPos, len(n.Op.String()))) + + case *ast.BlockStmt: + if n.Lbrace.IsValid() { + children = append(children, tok(n.Lbrace, len("{"))) + } + if n.Rbrace.IsValid() { + children = append(children, tok(n.Rbrace, len("}"))) + } + + case *ast.BranchStmt: + children = append(children, + tok(n.TokPos, len(n.Tok.String()))) + + case *ast.CallExpr: + children = append(children, + tok(n.Lparen, len("(")), + tok(n.Rparen, len(")"))) + if n.Ellipsis != 0 { + children = append(children, tok(n.Ellipsis, len("..."))) + } + + case *ast.CaseClause: + if n.List == nil { + children = append(children, + tok(n.Case, len("default"))) + } else { + children = append(children, + tok(n.Case, len("case"))) + } + children = append(children, tok(n.Colon, len(":"))) + + case *ast.ChanType: + switch n.Dir { + case ast.RECV: + children = append(children, tok(n.Begin, len("<-chan"))) + case ast.SEND: + children = append(children, tok(n.Begin, len("chan<-"))) + case ast.RECV | ast.SEND: + children = append(children, tok(n.Begin, len("chan"))) + } + + case *ast.CommClause: + if n.Comm == nil { + children = append(children, + tok(n.Case, len("default"))) + } else { + children = append(children, + tok(n.Case, len("case"))) + } + children = append(children, tok(n.Colon, len(":"))) + + case *ast.Comment: + // nop + + case *ast.CommentGroup: + // nop + + case *ast.CompositeLit: + children = append(children, + tok(n.Lbrace, len("{")), + tok(n.Rbrace, len("{"))) + + case *ast.DeclStmt: + // nop + + case *ast.DeferStmt: + children = append(children, + tok(n.Defer, len("defer"))) + + case *ast.Ellipsis: + children = append(children, + tok(n.Ellipsis, len("..."))) + + case *ast.EmptyStmt: + // nop + + case *ast.ExprStmt: + // nop + + case *ast.Field: + // TODO(adonovan): Field.{Doc,Comment,Tag}? + + case *ast.FieldList: + if n.Opening.IsValid() { + children = append(children, tok(n.Opening, len("("))) + } + if n.Closing.IsValid() { + children = append(children, tok(n.Closing, len(")"))) + } + + case *ast.File: + // TODO test: Doc + children = append(children, + tok(n.Package, len("package"))) + + case *ast.ForStmt: + children = append(children, + tok(n.For, len("for"))) + + case *ast.FuncDecl: + // TODO(adonovan): FuncDecl.Comment? + + // Uniquely, FuncDecl breaks the invariant that + // preorder traversal yields tokens in lexical order: + // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func. + // + // As a workaround, we inline the case for FuncType + // here and order things correctly. + // We also need to insert the elided FuncType just + // before the 'visit' recursion. + // + children = nil // discard ast.Walk(FuncDecl) info subtrees + children = append(children, tok(n.Type.Func, len("func"))) + if n.Recv != nil { + children = append(children, n.Recv) + } + children = append(children, n.Name) + if tparams := n.Type.TypeParams; tparams != nil { + children = append(children, tparams) + } + if n.Type.Params != nil { + children = append(children, n.Type.Params) + } + if n.Type.Results != nil { + children = append(children, n.Type.Results) + } + if n.Body != nil { + children = append(children, n.Body) + } + + case *ast.FuncLit: + // nop + + case *ast.FuncType: + if n.Func != 0 { + children = append(children, + tok(n.Func, len("func"))) + } + + case *ast.GenDecl: + children = append(children, + tok(n.TokPos, len(n.Tok.String()))) + if n.Lparen != 0 { + children = append(children, + tok(n.Lparen, len("(")), + tok(n.Rparen, len(")"))) + } + + case *ast.GoStmt: + children = append(children, + tok(n.Go, len("go"))) + + case *ast.Ident: + children = append(children, + tok(n.NamePos, len(n.Name))) + + case *ast.IfStmt: + children = append(children, + tok(n.If, len("if"))) + + case *ast.ImportSpec: + // TODO(adonovan): ImportSpec.{Doc,EndPos}? + + case *ast.IncDecStmt: + children = append(children, + tok(n.TokPos, len(n.Tok.String()))) + + case *ast.IndexExpr: + children = append(children, + tok(n.Lbrack, len("[")), + tok(n.Rbrack, len("]"))) + + case *ast.IndexListExpr: + children = append(children, + tok(n.Lbrack, len("[")), + tok(n.Rbrack, len("]"))) + + case *ast.InterfaceType: + children = append(children, + tok(n.Interface, len("interface"))) + + case *ast.KeyValueExpr: + children = append(children, + tok(n.Colon, len(":"))) + + case *ast.LabeledStmt: + children = append(children, + tok(n.Colon, len(":"))) + + case *ast.MapType: + children = append(children, + tok(n.Map, len("map"))) + + case *ast.ParenExpr: + children = append(children, + tok(n.Lparen, len("(")), + tok(n.Rparen, len(")"))) + + case *ast.RangeStmt: + children = append(children, + tok(n.For, len("for")), + tok(n.TokPos, len(n.Tok.String()))) + + case *ast.ReturnStmt: + children = append(children, + tok(n.Return, len("return"))) + + case *ast.SelectStmt: + children = append(children, + tok(n.Select, len("select"))) + + case *ast.SelectorExpr: + // nop + + case *ast.SendStmt: + children = append(children, + tok(n.Arrow, len("<-"))) + + case *ast.SliceExpr: + children = append(children, + tok(n.Lbrack, len("[")), + tok(n.Rbrack, len("]"))) + + case *ast.StarExpr: + children = append(children, tok(n.Star, len("*"))) + + case *ast.StructType: + children = append(children, tok(n.Struct, len("struct"))) + + case *ast.SwitchStmt: + children = append(children, tok(n.Switch, len("switch"))) + + case *ast.TypeAssertExpr: + children = append(children, + tok(n.Lparen-1, len(".")), + tok(n.Lparen, len("(")), + tok(n.Rparen, len(")"))) + + case *ast.TypeSpec: + // TODO(adonovan): TypeSpec.{Doc,Comment}? + + case *ast.TypeSwitchStmt: + children = append(children, tok(n.Switch, len("switch"))) + + case *ast.UnaryExpr: + children = append(children, tok(n.OpPos, len(n.Op.String()))) + + case *ast.ValueSpec: + // TODO(adonovan): ValueSpec.{Doc,Comment}? + + case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt: + // nop + } + + // TODO(adonovan): opt: merge the logic of ast.Inspect() into + // the switch above so we can make interleaved callbacks for + // both Nodes and Tokens in the right order and avoid the need + // to sort. + sort.Sort(byPos(children)) + + return children +} + +type byPos []ast.Node + +func (sl byPos) Len() int { + return len(sl) +} +func (sl byPos) Less(i, j int) bool { + return sl[i].Pos() < sl[j].Pos() +} +func (sl byPos) Swap(i, j int) { + sl[i], sl[j] = sl[j], sl[i] +} + +// NodeDescription returns a description of the concrete type of n suitable +// for a user interface. +// +// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident, +// StarExpr) we could be much more specific given the path to the AST +// root. Perhaps we should do that. +func NodeDescription(n ast.Node) string { + switch n := n.(type) { + case *ast.ArrayType: + return "array type" + case *ast.AssignStmt: + return "assignment" + case *ast.BadDecl: + return "bad declaration" + case *ast.BadExpr: + return "bad expression" + case *ast.BadStmt: + return "bad statement" + case *ast.BasicLit: + return "basic literal" + case *ast.BinaryExpr: + return fmt.Sprintf("binary %s operation", n.Op) + case *ast.BlockStmt: + return "block" + case *ast.BranchStmt: + switch n.Tok { + case token.BREAK: + return "break statement" + case token.CONTINUE: + return "continue statement" + case token.GOTO: + return "goto statement" + case token.FALLTHROUGH: + return "fall-through statement" + } + case *ast.CallExpr: + if len(n.Args) == 1 && !n.Ellipsis.IsValid() { + return "function call (or conversion)" + } + return "function call" + case *ast.CaseClause: + return "case clause" + case *ast.ChanType: + return "channel type" + case *ast.CommClause: + return "communication clause" + case *ast.Comment: + return "comment" + case *ast.CommentGroup: + return "comment group" + case *ast.CompositeLit: + return "composite literal" + case *ast.DeclStmt: + return NodeDescription(n.Decl) + " statement" + case *ast.DeferStmt: + return "defer statement" + case *ast.Ellipsis: + return "ellipsis" + case *ast.EmptyStmt: + return "empty statement" + case *ast.ExprStmt: + return "expression statement" + case *ast.Field: + // Can be any of these: + // struct {x, y int} -- struct field(s) + // struct {T} -- anon struct field + // interface {I} -- interface embedding + // interface {f()} -- interface method + // func (A) func(B) C -- receiver, param(s), result(s) + return "field/method/parameter" + case *ast.FieldList: + return "field/method/parameter list" + case *ast.File: + return "source file" + case *ast.ForStmt: + return "for loop" + case *ast.FuncDecl: + return "function declaration" + case *ast.FuncLit: + return "function literal" + case *ast.FuncType: + return "function type" + case *ast.GenDecl: + switch n.Tok { + case token.IMPORT: + return "import declaration" + case token.CONST: + return "constant declaration" + case token.TYPE: + return "type declaration" + case token.VAR: + return "variable declaration" + } + case *ast.GoStmt: + return "go statement" + case *ast.Ident: + return "identifier" + case *ast.IfStmt: + return "if statement" + case *ast.ImportSpec: + return "import specification" + case *ast.IncDecStmt: + if n.Tok == token.INC { + return "increment statement" + } + return "decrement statement" + case *ast.IndexExpr: + return "index expression" + case *ast.IndexListExpr: + return "index list expression" + case *ast.InterfaceType: + return "interface type" + case *ast.KeyValueExpr: + return "key/value association" + case *ast.LabeledStmt: + return "statement label" + case *ast.MapType: + return "map type" + case *ast.Package: + return "package" + case *ast.ParenExpr: + return "parenthesized " + NodeDescription(n.X) + case *ast.RangeStmt: + return "range loop" + case *ast.ReturnStmt: + return "return statement" + case *ast.SelectStmt: + return "select statement" + case *ast.SelectorExpr: + return "selector" + case *ast.SendStmt: + return "channel send" + case *ast.SliceExpr: + return "slice expression" + case *ast.StarExpr: + return "*-operation" // load/store expr or pointer type + case *ast.StructType: + return "struct type" + case *ast.SwitchStmt: + return "switch statement" + case *ast.TypeAssertExpr: + return "type assertion" + case *ast.TypeSpec: + return "type specification" + case *ast.TypeSwitchStmt: + return "type switch" + case *ast.UnaryExpr: + return fmt.Sprintf("unary %s operation", n.Op) + case *ast.ValueSpec: + return "value specification" + + } + panic(fmt.Sprintf("unexpected node type: %T", n)) +} + +func is[T any](x any) bool { + _, ok := x.(T) + return ok +} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go new file mode 100644 index 0000000..5e5601a --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -0,0 +1,491 @@ +// Copyright 2013 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 astutil contains common utilities for working with the Go AST. +package astutil // import "golang.org/x/tools/go/ast/astutil" + +import ( + "fmt" + "go/ast" + "go/token" + "slices" + "strconv" + "strings" +) + +// AddImport adds the import path to the file f, if absent. +func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) { + return AddNamedImport(fset, f, "", path) +} + +// AddNamedImport adds the import with the given name and path to the file f, if absent. +// If name is not empty, it is used to rename the import. +// +// For example, calling +// +// AddNamedImport(fset, f, "pathpkg", "path") +// +// adds +// +// import pathpkg "path" +func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) { + if imports(f, name, path) { + return false + } + + newImport := &ast.ImportSpec{ + Path: &ast.BasicLit{ + Kind: token.STRING, + Value: strconv.Quote(path), + }, + } + if name != "" { + newImport.Name = &ast.Ident{Name: name} + } + + // Find an import decl to add to. + // The goal is to find an existing import + // whose import path has the longest shared + // prefix with path. + var ( + bestMatch = -1 // length of longest shared prefix + lastImport = -1 // index in f.Decls of the file's final import decl + impDecl *ast.GenDecl // import decl containing the best match + impIndex = -1 // spec index in impDecl containing the best match + + isThirdPartyPath = isThirdParty(path) + ) + for i, decl := range f.Decls { + gen, ok := decl.(*ast.GenDecl) + if ok && gen.Tok == token.IMPORT { + lastImport = i + // Do not add to import "C", to avoid disrupting the + // association with its doc comment, breaking cgo. + if declImports(gen, "C") { + continue + } + + // Match an empty import decl if that's all that is available. + if len(gen.Specs) == 0 && bestMatch == -1 { + impDecl = gen + } + + // Compute longest shared prefix with imports in this group and find best + // matched import spec. + // 1. Always prefer import spec with longest shared prefix. + // 2. While match length is 0, + // - for stdlib package: prefer first import spec. + // - for third party package: prefer first third party import spec. + // We cannot use last import spec as best match for third party package + // because grouped imports are usually placed last by goimports -local + // flag. + // See issue #19190. + seenAnyThirdParty := false + for j, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + p := importPath(impspec) + n := matchLen(p, path) + if n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) { + bestMatch = n + impDecl = gen + impIndex = j + } + seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p) + } + } + } + + // If no import decl found, add one after the last import. + if impDecl == nil { + impDecl = &ast.GenDecl{ + Tok: token.IMPORT, + } + if lastImport >= 0 { + impDecl.TokPos = f.Decls[lastImport].End() + } else { + // There are no existing imports. + // Our new import, preceded by a blank line, goes after the package declaration + // and after the comment, if any, that starts on the same line as the + // package declaration. + impDecl.TokPos = f.Package + + file := fset.File(f.Package) + pkgLine := file.Line(f.Package) + for _, c := range f.Comments { + if file.Line(c.Pos()) > pkgLine { + break + } + // +2 for a blank line + impDecl.TokPos = c.End() + 2 + } + } + f.Decls = append(f.Decls, nil) + copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:]) + f.Decls[lastImport+1] = impDecl + } + + // Insert new import at insertAt. + insertAt := 0 + if impIndex >= 0 { + // insert after the found import + insertAt = impIndex + 1 + } + impDecl.Specs = append(impDecl.Specs, nil) + copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:]) + impDecl.Specs[insertAt] = newImport + pos := impDecl.Pos() + if insertAt > 0 { + // If there is a comment after an existing import, preserve the comment + // position by adding the new import after the comment. + if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil { + pos = spec.Comment.End() + } else { + // Assign same position as the previous import, + // so that the sorter sees it as being in the same block. + pos = impDecl.Specs[insertAt-1].Pos() + } + } + if newImport.Name != nil { + newImport.Name.NamePos = pos + } + newImport.Path.ValuePos = pos + newImport.EndPos = pos + + // Clean up parens. impDecl contains at least one spec. + if len(impDecl.Specs) == 1 { + // Remove unneeded parens. + impDecl.Lparen = token.NoPos + } else if !impDecl.Lparen.IsValid() { + // impDecl needs parens added. + impDecl.Lparen = impDecl.Specs[0].Pos() + } + + f.Imports = append(f.Imports, newImport) + + if len(f.Decls) <= 1 { + return true + } + + // Merge all the import declarations into the first one. + var first *ast.GenDecl + for i := 0; i < len(f.Decls); i++ { + decl := f.Decls[i] + gen, ok := decl.(*ast.GenDecl) + if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { + continue + } + if first == nil { + first = gen + continue // Don't touch the first one. + } + // We now know there is more than one package in this import + // declaration. Ensure that it ends up parenthesized. + first.Lparen = first.Pos() + // Move the imports of the other import declaration to the first one. + for _, spec := range gen.Specs { + spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() + first.Specs = append(first.Specs, spec) + } + f.Decls = slices.Delete(f.Decls, i, i+1) + i-- + } + + return true +} + +func isThirdParty(importPath string) bool { + // Third party package import path usually contains "." (".com", ".org", ...) + // This logic is taken from golang.org/x/tools/imports package. + return strings.Contains(importPath, ".") +} + +// DeleteImport deletes the import path from the file f, if present. +// If there are duplicate import declarations, all matching ones are deleted. +func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) { + return DeleteNamedImport(fset, f, "", path) +} + +// DeleteNamedImport deletes the import with the given name and path from the file f, if present. +// If there are duplicate import declarations, all matching ones are deleted. +func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { + var delspecs []*ast.ImportSpec + var delcomments []*ast.CommentGroup + + // Find the import nodes that import path, if any. + for i := 0; i < len(f.Decls); i++ { + decl := f.Decls[i] + gen, ok := decl.(*ast.GenDecl) + if !ok || gen.Tok != token.IMPORT { + continue + } + for j := 0; j < len(gen.Specs); j++ { + spec := gen.Specs[j] + impspec := spec.(*ast.ImportSpec) + if importName(impspec) != name || importPath(impspec) != path { + continue + } + + // We found an import spec that imports path. + // Delete it. + delspecs = append(delspecs, impspec) + deleted = true + copy(gen.Specs[j:], gen.Specs[j+1:]) + gen.Specs = gen.Specs[:len(gen.Specs)-1] + + // If this was the last import spec in this decl, + // delete the decl, too. + if len(gen.Specs) == 0 { + copy(f.Decls[i:], f.Decls[i+1:]) + f.Decls = f.Decls[:len(f.Decls)-1] + i-- + break + } else if len(gen.Specs) == 1 { + if impspec.Doc != nil { + delcomments = append(delcomments, impspec.Doc) + } + if impspec.Comment != nil { + delcomments = append(delcomments, impspec.Comment) + } + for _, cg := range f.Comments { + // Found comment on the same line as the import spec. + if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line { + delcomments = append(delcomments, cg) + break + } + } + + spec := gen.Specs[0].(*ast.ImportSpec) + + // Move the documentation right after the import decl. + if spec.Doc != nil { + for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line { + fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) + } + } + for _, cg := range f.Comments { + if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line { + for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line { + fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) + } + break + } + } + } + if j > 0 { + lastImpspec := gen.Specs[j-1].(*ast.ImportSpec) + lastLine := fset.PositionFor(lastImpspec.Path.ValuePos, false).Line + line := fset.PositionFor(impspec.Path.ValuePos, false).Line + + // We deleted an entry but now there may be + // a blank line-sized hole where the import was. + if line-lastLine > 1 || !gen.Rparen.IsValid() { + // There was a blank line immediately preceding the deleted import, + // so there's no need to close the hole. The right parenthesis is + // invalid after AddImport to an import statement without parenthesis. + // Do nothing. + } else if line != fset.File(gen.Rparen).LineCount() { + // There was no blank line. Close the hole. + fset.File(gen.Rparen).MergeLine(line) + } + } + j-- + } + } + + // Delete imports from f.Imports. + for i := 0; i < len(f.Imports); i++ { + imp := f.Imports[i] + for j, del := range delspecs { + if imp == del { + copy(f.Imports[i:], f.Imports[i+1:]) + f.Imports = f.Imports[:len(f.Imports)-1] + copy(delspecs[j:], delspecs[j+1:]) + delspecs = delspecs[:len(delspecs)-1] + i-- + break + } + } + } + + // Delete comments from f.Comments. + for i := 0; i < len(f.Comments); i++ { + cg := f.Comments[i] + for j, del := range delcomments { + if cg == del { + copy(f.Comments[i:], f.Comments[i+1:]) + f.Comments = f.Comments[:len(f.Comments)-1] + copy(delcomments[j:], delcomments[j+1:]) + delcomments = delcomments[:len(delcomments)-1] + i-- + break + } + } + } + + if len(delspecs) > 0 { + panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) + } + + return +} + +// RewriteImport rewrites any import of path oldPath to path newPath. +func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) { + for _, imp := range f.Imports { + if importPath(imp) == oldPath { + rewrote = true + // record old End, because the default is to compute + // it using the length of imp.Path.Value. + imp.EndPos = imp.End() + imp.Path.Value = strconv.Quote(newPath) + } + } + return +} + +// UsesImport reports whether a given import is used. +// The provided File must have been parsed with syntactic object resolution +// (not using go/parser.SkipObjectResolution). +func UsesImport(f *ast.File, path string) (used bool) { + if f.Scope == nil { + panic("file f was not parsed with syntactic object resolution") + } + spec := importSpec(f, path) + if spec == nil { + return + } + + name := spec.Name.String() + switch name { + case "<nil>": + // If the package name is not explicitly specified, + // make an educated guess. This is not guaranteed to be correct. + lastSlash := strings.LastIndex(path, "/") + if lastSlash == -1 { + name = path + } else { + name = path[lastSlash+1:] + } + case "_", ".": + // Not sure if this import is used - err on the side of caution. + return true + } + + ast.Walk(visitFn(func(n ast.Node) { + sel, ok := n.(*ast.SelectorExpr) + if ok && isTopName(sel.X, name) { + used = true + } + }), f) + + return +} + +type visitFn func(node ast.Node) + +func (fn visitFn) Visit(node ast.Node) ast.Visitor { + fn(node) + return fn +} + +// imports reports whether f has an import with the specified name and path. +func imports(f *ast.File, name, path string) bool { + for _, s := range f.Imports { + if importName(s) == name && importPath(s) == path { + return true + } + } + return false +} + +// importSpec returns the import spec if f imports path, +// or nil otherwise. +func importSpec(f *ast.File, path string) *ast.ImportSpec { + for _, s := range f.Imports { + if importPath(s) == path { + return s + } + } + return nil +} + +// importName returns the name of s, +// or "" if the import is not named. +func importName(s *ast.ImportSpec) string { + if s.Name == nil { + return "" + } + return s.Name.Name +} + +// importPath returns the unquoted import path of s, +// or "" if the path is not properly quoted. +func importPath(s *ast.ImportSpec) string { + t, err := strconv.Unquote(s.Path.Value) + if err != nil { + return "" + } + return t +} + +// declImports reports whether gen contains an import of path. +func declImports(gen *ast.GenDecl, path string) bool { + if gen.Tok != token.IMPORT { + return false + } + for _, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + if importPath(impspec) == path { + return true + } + } + return false +} + +// matchLen returns the length of the longest path segment prefix shared by x and y. +func matchLen(x, y string) int { + n := 0 + for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ { + if x[i] == '/' { + n++ + } + } + return n +} + +// isTopName returns true if n is a top-level unresolved identifier with the given name. +func isTopName(n ast.Expr, name string) bool { + id, ok := n.(*ast.Ident) + return ok && id.Name == name && id.Obj == nil +} + +// Imports returns the file imports grouped by paragraph. +func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec { + var groups [][]*ast.ImportSpec + + for _, decl := range f.Decls { + genDecl, ok := decl.(*ast.GenDecl) + if !ok || genDecl.Tok != token.IMPORT { + break + } + + group := []*ast.ImportSpec{} + + var lastLine int + for _, spec := range genDecl.Specs { + importSpec := spec.(*ast.ImportSpec) + pos := importSpec.Path.ValuePos + line := fset.Position(pos).Line + if lastLine > 0 && pos > 0 && line-lastLine > 1 { + groups = append(groups, group) + group = []*ast.ImportSpec{} + } + group = append(group, importSpec) + lastLine = line + } + groups = append(groups, group) + } + + return groups +} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go new file mode 100644 index 0000000..4ad0549 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go @@ -0,0 +1,490 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package astutil + +import ( + "fmt" + "go/ast" + "reflect" + "sort" +) + +// An ApplyFunc is invoked by Apply for each node n, even if n is nil, +// before and/or after the node's children, using a Cursor describing +// the current node and providing operations on it. +// +// The return value of ApplyFunc controls the syntax tree traversal. +// See Apply for details. +type ApplyFunc func(*Cursor) bool + +// Apply traverses a syntax tree recursively, starting with root, +// and calling pre and post for each node as described below. +// Apply returns the syntax tree, possibly modified. +// +// If pre is not nil, it is called for each node before the node's +// children are traversed (pre-order). If pre returns false, no +// children are traversed, and post is not called for that node. +// +// If post is not nil, and a prior call of pre didn't return false, +// post is called for each node after its children are traversed +// (post-order). If post returns false, traversal is terminated and +// Apply returns immediately. +// +// Only fields that refer to AST nodes are considered children; +// i.e., token.Pos, Scopes, Objects, and fields of basic types +// (strings, etc.) are ignored. +// +// Children are traversed in the order in which they appear in the +// respective node's struct definition. A package's files are +// traversed in the filenames' alphabetical order. +func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) { + parent := &struct{ ast.Node }{root} + defer func() { + if r := recover(); r != nil && r != abort { + panic(r) + } + result = parent.Node + }() + a := &application{pre: pre, post: post} + a.apply(parent, "Node", nil, root) + return +} + +var abort = new(int) // singleton, to signal termination of Apply + +// A Cursor describes a node encountered during Apply. +// Information about the node and its parent is available +// from the Node, Parent, Name, and Index methods. +// +// If p is a variable of type and value of the current parent node +// c.Parent(), and f is the field identifier with name c.Name(), +// the following invariants hold: +// +// p.f == c.Node() if c.Index() < 0 +// p.f[c.Index()] == c.Node() if c.Index() >= 0 +// +// The methods Replace, Delete, InsertBefore, and InsertAfter +// can be used to change the AST without disrupting Apply. +// +// This type is not to be confused with [inspector.Cursor] from +// package [golang.org/x/tools/go/ast/inspector], which provides +// stateless navigation of immutable syntax trees. +type Cursor struct { + parent ast.Node + name string + iter *iterator // valid if non-nil + node ast.Node +} + +// Node returns the current Node. +func (c *Cursor) Node() ast.Node { return c.node } + +// Parent returns the parent of the current Node. +func (c *Cursor) Parent() ast.Node { return c.parent } + +// Name returns the name of the parent Node field that contains the current Node. +// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns +// the filename for the current Node. +func (c *Cursor) Name() string { return c.name } + +// Index reports the index >= 0 of the current Node in the slice of Nodes that +// contains it, or a value < 0 if the current Node is not part of a slice. +// The index of the current node changes if InsertBefore is called while +// processing the current node. +func (c *Cursor) Index() int { + if c.iter != nil { + return c.iter.index + } + return -1 +} + +// field returns the current node's parent field value. +func (c *Cursor) field() reflect.Value { + return reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name) +} + +// Replace replaces the current Node with n. +// The replacement node is not walked by Apply. +func (c *Cursor) Replace(n ast.Node) { + if _, ok := c.node.(*ast.File); ok { + file, ok := n.(*ast.File) + if !ok { + panic("attempt to replace *ast.File with non-*ast.File") + } + c.parent.(*ast.Package).Files[c.name] = file + return + } + + v := c.field() + if i := c.Index(); i >= 0 { + v = v.Index(i) + } + v.Set(reflect.ValueOf(n)) +} + +// Delete deletes the current Node from its containing slice. +// If the current Node is not part of a slice, Delete panics. +// As a special case, if the current node is a package file, +// Delete removes it from the package's Files map. +func (c *Cursor) Delete() { + if _, ok := c.node.(*ast.File); ok { + delete(c.parent.(*ast.Package).Files, c.name) + return + } + + i := c.Index() + if i < 0 { + panic("Delete node not contained in slice") + } + v := c.field() + l := v.Len() + reflect.Copy(v.Slice(i, l), v.Slice(i+1, l)) + v.Index(l - 1).Set(reflect.Zero(v.Type().Elem())) + v.SetLen(l - 1) + c.iter.step-- +} + +// InsertAfter inserts n after the current Node in its containing slice. +// If the current Node is not part of a slice, InsertAfter panics. +// Apply does not walk n. +func (c *Cursor) InsertAfter(n ast.Node) { + i := c.Index() + if i < 0 { + panic("InsertAfter node not contained in slice") + } + v := c.field() + v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) + l := v.Len() + reflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l)) + v.Index(i + 1).Set(reflect.ValueOf(n)) + c.iter.step++ +} + +// InsertBefore inserts n before the current Node in its containing slice. +// If the current Node is not part of a slice, InsertBefore panics. +// Apply will not walk n. +func (c *Cursor) InsertBefore(n ast.Node) { + i := c.Index() + if i < 0 { + panic("InsertBefore node not contained in slice") + } + v := c.field() + v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) + l := v.Len() + reflect.Copy(v.Slice(i+1, l), v.Slice(i, l)) + v.Index(i).Set(reflect.ValueOf(n)) + c.iter.index++ +} + +// application carries all the shared data so we can pass it around cheaply. +type application struct { + pre, post ApplyFunc + cursor Cursor + iter iterator +} + +func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) { + // convert typed nil into untyped nil + if v := reflect.ValueOf(n); v.Kind() == reflect.Pointer && v.IsNil() { + n = nil + } + + // avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead + saved := a.cursor + a.cursor.parent = parent + a.cursor.name = name + a.cursor.iter = iter + a.cursor.node = n + + if a.pre != nil && !a.pre(&a.cursor) { + a.cursor = saved + return + } + + // walk children + // (the order of the cases matches the order of the corresponding node types in go/ast) + switch n := n.(type) { + case nil: + // nothing to do + + // Comments and fields + case *ast.Comment: + // nothing to do + + case *ast.CommentGroup: + if n != nil { + a.applyList(n, "List") + } + + case *ast.Field: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Names") + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Tag", nil, n.Tag) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.FieldList: + a.applyList(n, "List") + + // Expressions + case *ast.BadExpr, *ast.Ident, *ast.BasicLit: + // nothing to do + + case *ast.Ellipsis: + a.apply(n, "Elt", nil, n.Elt) + + case *ast.FuncLit: + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Body", nil, n.Body) + + case *ast.CompositeLit: + a.apply(n, "Type", nil, n.Type) + a.applyList(n, "Elts") + + case *ast.ParenExpr: + a.apply(n, "X", nil, n.X) + + case *ast.SelectorExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Sel", nil, n.Sel) + + case *ast.IndexExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Index", nil, n.Index) + + case *ast.IndexListExpr: + a.apply(n, "X", nil, n.X) + a.applyList(n, "Indices") + + case *ast.SliceExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Low", nil, n.Low) + a.apply(n, "High", nil, n.High) + a.apply(n, "Max", nil, n.Max) + + case *ast.TypeAssertExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Type", nil, n.Type) + + case *ast.CallExpr: + a.apply(n, "Fun", nil, n.Fun) + a.applyList(n, "Args") + + case *ast.StarExpr: + a.apply(n, "X", nil, n.X) + + case *ast.UnaryExpr: + a.apply(n, "X", nil, n.X) + + case *ast.BinaryExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Y", nil, n.Y) + + case *ast.KeyValueExpr: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + + // Types + case *ast.ArrayType: + a.apply(n, "Len", nil, n.Len) + a.apply(n, "Elt", nil, n.Elt) + + case *ast.StructType: + a.apply(n, "Fields", nil, n.Fields) + + case *ast.FuncType: + if tparams := n.TypeParams; tparams != nil { + a.apply(n, "TypeParams", nil, tparams) + } + a.apply(n, "Params", nil, n.Params) + a.apply(n, "Results", nil, n.Results) + + case *ast.InterfaceType: + a.apply(n, "Methods", nil, n.Methods) + + case *ast.MapType: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + + case *ast.ChanType: + a.apply(n, "Value", nil, n.Value) + + // Statements + case *ast.BadStmt: + // nothing to do + + case *ast.DeclStmt: + a.apply(n, "Decl", nil, n.Decl) + + case *ast.EmptyStmt: + // nothing to do + + case *ast.LabeledStmt: + a.apply(n, "Label", nil, n.Label) + a.apply(n, "Stmt", nil, n.Stmt) + + case *ast.ExprStmt: + a.apply(n, "X", nil, n.X) + + case *ast.SendStmt: + a.apply(n, "Chan", nil, n.Chan) + a.apply(n, "Value", nil, n.Value) + + case *ast.IncDecStmt: + a.apply(n, "X", nil, n.X) + + case *ast.AssignStmt: + a.applyList(n, "Lhs") + a.applyList(n, "Rhs") + + case *ast.GoStmt: + a.apply(n, "Call", nil, n.Call) + + case *ast.DeferStmt: + a.apply(n, "Call", nil, n.Call) + + case *ast.ReturnStmt: + a.applyList(n, "Results") + + case *ast.BranchStmt: + a.apply(n, "Label", nil, n.Label) + + case *ast.BlockStmt: + a.applyList(n, "List") + + case *ast.IfStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Cond", nil, n.Cond) + a.apply(n, "Body", nil, n.Body) + a.apply(n, "Else", nil, n.Else) + + case *ast.CaseClause: + a.applyList(n, "List") + a.applyList(n, "Body") + + case *ast.SwitchStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Tag", nil, n.Tag) + a.apply(n, "Body", nil, n.Body) + + case *ast.TypeSwitchStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Assign", nil, n.Assign) + a.apply(n, "Body", nil, n.Body) + + case *ast.CommClause: + a.apply(n, "Comm", nil, n.Comm) + a.applyList(n, "Body") + + case *ast.SelectStmt: + a.apply(n, "Body", nil, n.Body) + + case *ast.ForStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Cond", nil, n.Cond) + a.apply(n, "Post", nil, n.Post) + a.apply(n, "Body", nil, n.Body) + + case *ast.RangeStmt: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + a.apply(n, "X", nil, n.X) + a.apply(n, "Body", nil, n.Body) + + // Declarations + case *ast.ImportSpec: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + a.apply(n, "Path", nil, n.Path) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.ValueSpec: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Names") + a.apply(n, "Type", nil, n.Type) + a.applyList(n, "Values") + a.apply(n, "Comment", nil, n.Comment) + + case *ast.TypeSpec: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + if tparams := n.TypeParams; tparams != nil { + a.apply(n, "TypeParams", nil, tparams) + } + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.BadDecl: + // nothing to do + + case *ast.GenDecl: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Specs") + + case *ast.FuncDecl: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Recv", nil, n.Recv) + a.apply(n, "Name", nil, n.Name) + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Body", nil, n.Body) + + // Files and packages + case *ast.File: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + a.applyList(n, "Decls") + // Don't walk n.Comments; they have either been walked already if + // they are Doc comments, or they can be easily walked explicitly. + + case *ast.Package: + // collect and sort names for reproducible behavior + var names []string + for name := range n.Files { + names = append(names, name) + } + sort.Strings(names) + for _, name := range names { + a.apply(n, name, nil, n.Files[name]) + } + + default: + panic(fmt.Sprintf("Apply: unexpected node type %T", n)) + } + + if a.post != nil && !a.post(&a.cursor) { + panic(abort) + } + + a.cursor = saved +} + +// An iterator controls iteration over a slice of nodes. +type iterator struct { + index, step int +} + +func (a *application) applyList(parent ast.Node, name string) { + // avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead + saved := a.iter + a.iter.index = 0 + for { + // must reload parent.name each time, since cursor modifications might change it + v := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name) + if a.iter.index >= v.Len() { + break + } + + // element x may be nil in a bad AST - be cautious + var x ast.Node + if e := v.Index(a.iter.index); e.IsValid() { + x = e.Interface().(ast.Node) + } + + a.iter.step = 1 + a.apply(parent, name, &a.iter, x) + a.iter.index += a.iter.step + } + a.iter = saved +} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go new file mode 100644 index 0000000..c820b20 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/astutil/util.go @@ -0,0 +1,13 @@ +// 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. + +package astutil + +import "go/ast" + +// Unparen returns e with any enclosing parentheses stripped. +// Deprecated: use [ast.Unparen]. +// +//go:fix inline +func Unparen(e ast.Expr) ast.Expr { return ast.Unparen(e) } diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go new file mode 100644 index 0000000..7b90bc9 --- /dev/null +++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -0,0 +1,236 @@ +// 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 gcexportdata provides functions for reading and writing +// export data, which is a serialized description of the API of a Go +// package including the names, kinds, types, and locations of all +// exported declarations. +// +// The standard Go compiler (cmd/compile) writes an export data file +// for each package it compiles, which it later reads when compiling +// packages that import the earlier one. The compiler must thus +// contain logic to both write and read export data. +// (See the "Export" section in the cmd/compile/README file.) +// +// The [Read] function in this package can read files produced by the +// compiler, producing [go/types] data structures. As a matter of +// policy, Read supports export data files produced by only the last +// two Go releases plus tip; see https://go.dev/issue/68898. The +// export data files produced by the compiler contain additional +// details related to generics, inlining, and other optimizations that +// cannot be decoded by the [Read] function. +// +// In files written by the compiler, the export data is not at the +// start of the file. Before calling Read, use [NewReader] to locate +// the desired portion of the file. +// +// The [Write] function in this package encodes the exported API of a +// Go package ([types.Package]) as a file. Such files can be later +// decoded by Read, but cannot be consumed by the compiler. +// +// # Future changes +// +// Although Read supports the formats written by both Write and the +// compiler, the two are quite different, and there is an open +// proposal (https://go.dev/issue/69491) to separate these APIs. +// +// Under that proposal, this package would ultimately provide only the +// Read operation for compiler export data, which must be defined in +// this module (golang.org/x/tools), not in the standard library, to +// avoid version skew for developer tools that need to read compiler +// export data both before and after a Go release, such as from Go +// 1.23 to Go 1.24. Because this package lives in the tools module, +// clients can update their version of the module some time before the +// Go 1.24 release and rebuild and redeploy their tools, which will +// then be able to consume both Go 1.23 and Go 1.24 export data files, +// so they will work before and after the Go update. (See discussion +// at https://go.dev/issue/15651.) +// +// The operations to import and export [go/types] data structures +// would be defined in the go/types package as Import and Export. +// [Write] would (eventually) delegate to Export, +// and [Read], when it detects a file produced by Export, +// would delegate to Import. +// +// # Deprecations +// +// The [NewImporter] and [Find] functions are deprecated and should +// not be used in new code. The [WriteBundle] and [ReadBundle] +// functions are experimental, and there is an open proposal to +// deprecate them (https://go.dev/issue/69573). +package gcexportdata + +import ( + "bufio" + "bytes" + "encoding/json" + "fmt" + "go/token" + "go/types" + "io" + "os/exec" + + "golang.org/x/tools/internal/gcimporter" +) + +// Find returns the name of an object (.o) or archive (.a) file +// containing type information for the specified import path, +// using the go command. +// If no file was found, an empty filename is returned. +// +// A relative srcDir is interpreted relative to the current working directory. +// +// Find also returns the package's resolved (canonical) import path, +// reflecting the effects of srcDir and vendoring on importPath. +// +// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, +// which is more efficient. +func Find(importPath, srcDir string) (filename, path string) { + cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) + cmd.Dir = srcDir + out, err := cmd.Output() + if err != nil { + return "", "" + } + var data struct { + ImportPath string + Export string + } + json.Unmarshal(out, &data) + return data.Export, data.ImportPath +} + +// NewReader returns a reader for the export data section of an object +// (.o) or archive (.a) file read from r. The new reader may provide +// additional trailing data beyond the end of the export data. +func NewReader(r io.Reader) (io.Reader, error) { + buf := bufio.NewReader(r) + size, err := gcimporter.FindExportData(buf) + if err != nil { + return nil, err + } + + // We were given an archive and found the __.PKGDEF in it. + // This tells us the size of the export data, and we don't + // need to return the entire file. + return &io.LimitedReader{ + R: buf, + N: size, + }, nil +} + +// readAll works the same way as io.ReadAll, but avoids allocations and copies +// by preallocating a byte slice of the necessary size if the size is known up +// front. This is always possible when the input is an archive. In that case, +// NewReader will return the known size using an io.LimitedReader. +func readAll(r io.Reader) ([]byte, error) { + if lr, ok := r.(*io.LimitedReader); ok { + data := make([]byte, lr.N) + _, err := io.ReadFull(lr, data) + return data, err + } + return io.ReadAll(r) +} + +// Read reads export data from in, decodes it, and returns type +// information for the package. +// +// Read is capable of reading export data produced by [Write] at the +// same source code version, or by the last two Go releases (plus tip) +// of the standard Go compiler. Reading files from older compilers may +// produce an error. +// +// The package path (effectively its linker symbol prefix) is +// specified by path, since unlike the package name, this information +// may not be recorded in the export data. +// +// File position information is added to fset. +// +// Read may inspect and add to the imports map to ensure that references +// within the export data to other packages are consistent. The caller +// must ensure that imports[path] does not exist, or exists but is +// incomplete (see types.Package.Complete), and Read inserts the +// resulting package into this map entry. +// +// On return, the state of the reader is undefined. +func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { + data, err := readAll(in) + if err != nil { + return nil, fmt.Errorf("reading export data for %q: %v", path, err) + } + + if bytes.HasPrefix(data, []byte("!<arch>")) { + return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) + } + + // The indexed export format starts with an 'i'; the older + // binary export format starts with a 'c', 'd', or 'v' + // (from "version"). Select appropriate importer. + if len(data) > 0 { + switch data[0] { + case 'v', 'c', 'd': + // binary, produced by cmd/compile till go1.10 + return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) + + case 'i': + // indexed, produced by cmd/compile till go1.19, + // and also by [Write]. + // + // If proposal #69491 is accepted, go/types + // serialization will be implemented by + // types.Export, to which Write would eventually + // delegate (explicitly dropping any pretence at + // inter-version Write-Read compatibility). + // This [Read] function would delegate to types.Import + // when it detects that the file was produced by Export. + _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) + return pkg, err + + case 'u': + // unified, produced by cmd/compile since go1.20 + _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) + return pkg, err + + default: + l := min(len(data), 10) + return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) + } + } + return nil, fmt.Errorf("empty export data for %s", path) +} + +// Write writes encoded type information for the specified package to out. +// The FileSet provides file position information for named objects. +func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { + if _, err := io.WriteString(out, "i"); err != nil { + return err + } + return gcimporter.IExportData(out, fset, pkg) +} + +// ReadBundle reads an export bundle from in, decodes it, and returns type +// information for the packages. +// File position information is added to fset. +// +// ReadBundle may inspect and add to the imports map to ensure that references +// within the export bundle to other packages are consistent. +// +// On return, the state of the reader is undefined. +// +// Experimental: This API is experimental and may change in the future. +func ReadBundle(in io.Reader, fset *token.FileSet, imports map[string]*types.Package) ([]*types.Package, error) { + data, err := readAll(in) + if err != nil { + return nil, fmt.Errorf("reading export bundle: %v", err) + } + return gcimporter.IImportBundle(fset, imports, data) +} + +// WriteBundle writes encoded type information for the specified packages to out. +// The FileSet provides file position information for named objects. +// +// Experimental: This API is experimental and may change in the future. +func WriteBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { + return gcimporter.IExportBundle(out, fset, pkgs) +} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go new file mode 100644 index 0000000..37a7247 --- /dev/null +++ b/vendor/golang.org/x/tools/go/gcexportdata/importer.go @@ -0,0 +1,75 @@ +// 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 gcexportdata + +import ( + "fmt" + "go/token" + "go/types" + "os" +) + +// NewImporter returns a new instance of the types.Importer interface +// that reads type information from export data files written by gc. +// The Importer also satisfies types.ImporterFrom. +// +// Export data files are located using "go build" workspace conventions +// and the build.Default context. +// +// Use this importer instead of go/importer.For("gc", ...) to avoid the +// version-skew problems described in the documentation of this package, +// or to control the FileSet or access the imports map populated during +// package loading. +// +// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, +// which is more efficient. +func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { + return importer{fset, imports} +} + +type importer struct { + fset *token.FileSet + imports map[string]*types.Package +} + +func (imp importer) Import(importPath string) (*types.Package, error) { + return imp.ImportFrom(importPath, "", 0) +} + +func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { + filename, path := Find(importPath, srcDir) + if filename == "" { + if importPath == "unsafe" { + // Even for unsafe, call Find first in case + // the package was vendored. + return types.Unsafe, nil + } + return nil, fmt.Errorf("can't find import: %s", importPath) + } + + if pkg, ok := imp.imports[path]; ok && pkg.Complete() { + return pkg, nil // cache hit + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + f.Close() + if err != nil { + // add file name to error + err = fmt.Errorf("reading export data: %s: %v", filename, err) + } + }() + + r, err := NewReader(f) + if err != nil { + return nil, err + } + + return Read(r, imp.fset, imp.imports, path) +} diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go new file mode 100644 index 0000000..f1931d1 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/doc.go @@ -0,0 +1,251 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package packages loads Go packages for inspection and analysis. + +The [Load] function takes as input a list of patterns and returns a +list of [Package] values describing individual packages matched by those +patterns. +A [Config] specifies configuration options, the most important of which is +the [LoadMode], which controls the amount of detail in the loaded packages. + +Load passes most patterns directly to the underlying build tool. +The default build tool is the go command. +Its supported patterns are described at +https://pkg.go.dev/cmd/go#hdr-Package_lists_and_patterns. +Other build systems may be supported by providing a "driver"; +see [The driver protocol]. + +All patterns with the prefix "query=", where query is a +non-empty string of letters from [a-z], are reserved and may be +interpreted as query operators. + +Two query operators are currently supported: "file" and "pattern". + +The query "file=path/to/file.go" matches the package or packages enclosing +the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" +might return the packages "fmt" and "fmt [fmt.test]". + +The query "pattern=string" causes "string" to be passed directly to +the underlying build tool. In most cases this is unnecessary, +but an application can use Load("pattern=" + x) as an escaping mechanism +to ensure that x is not interpreted as a query operator if it contains '='. + +All other query operators are reserved for future use and currently +cause Load to report an error. + +The Package struct provides basic information about the package, including + + - ID, a unique identifier for the package in the returned set; + - GoFiles, the names of the package's Go source files; + - Imports, a map from source import strings to the Packages they name; + - Types, the type information for the package's exported symbols; + - Syntax, the parsed syntax trees for the package's source code; and + - TypesInfo, the result of a complete type-check of the package syntax trees. + +(See the documentation for type Package for the complete list of fields +and more detailed descriptions.) + +For example, + + Load(nil, "bytes", "unicode...") + +returns four Package structs describing the standard library packages +bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern +can match multiple packages and that a package might be matched by +multiple patterns: in general it is not possible to determine which +packages correspond to which patterns. + +Note that the list returned by Load contains only the packages matched +by the patterns. Their dependencies can be found by walking the import +graph using the Imports fields. + +The Load function can be configured by passing a pointer to a Config as +the first argument. A nil Config is equivalent to the zero Config, which +causes Load to run in [LoadFiles] mode, collecting minimal information. +See the documentation for type Config for details. + +As noted earlier, the Config.Mode controls the amount of detail +reported about the loaded packages. See the documentation for type LoadMode +for details. + +Most tools should pass their command-line arguments (after any flags) +uninterpreted to Load, so that it can interpret them +according to the conventions of the underlying build system. + +See the Example function for typical usage. + +# The driver protocol + +Load may be used to load Go packages even in Go projects that use +alternative build systems, by installing an appropriate "driver" +program for the build system and specifying its location in the +GOPACKAGESDRIVER environment variable. +For example, +https://github.com/bazelbuild/rules_go/wiki/Editor-and-tool-integration +explains how to use the driver for Bazel. + +The driver program is responsible for interpreting patterns in its +preferred notation and reporting information about the packages that +those patterns identify. Drivers must also support the special "file=" +and "pattern=" patterns described above. + +The patterns are provided as positional command-line arguments. A +JSON-encoded [DriverRequest] message providing additional information +is written to the driver's standard input. The driver must write a +JSON-encoded [DriverResponse] message to its standard output. (This +message differs from the JSON schema produced by 'go list'.) + +The value of the PWD environment variable seen by the driver process +is the preferred name of its working directory. (The working directory +may have other aliases due to symbolic links; see the comment on the +Dir field of [exec.Cmd] for related information.) +When the driver process emits in its response the name of a file +that is a descendant of this directory, it must use an absolute path +that has the value of PWD as a prefix, to ensure that the returned +filenames satisfy the original query. +*/ +package packages // import "golang.org/x/tools/go/packages" + +/* + +Motivation and design considerations + +The new package's design solves problems addressed by two existing +packages: go/build, which locates and describes packages, and +golang.org/x/tools/go/loader, which loads, parses and type-checks them. +The go/build.Package structure encodes too much of the 'go build' way +of organizing projects, leaving us in need of a data type that describes a +package of Go source code independent of the underlying build system. +We wanted something that works equally well with go build and vgo, and +also other build systems such as Bazel and Blaze, making it possible to +construct analysis tools that work in all these environments. +Tools such as errcheck and staticcheck were essentially unavailable to +the Go community at Google, and some of Google's internal tools for Go +are unavailable externally. +This new package provides a uniform way to obtain package metadata by +querying each of these build systems, optionally supporting their +preferred command-line notations for packages, so that tools integrate +neatly with users' build environments. The Metadata query function +executes an external query tool appropriate to the current workspace. + +Loading packages always returns the complete import graph "all the way down", +even if all you want is information about a single package, because the query +mechanisms of all the build systems we currently support ({go,vgo} list, and +blaze/bazel aspect-based query) cannot provide detailed information +about one package without visiting all its dependencies too, so there is +no additional asymptotic cost to providing transitive information. +(This property might not be true of a hypothetical 5th build system.) + +In calls to TypeCheck, all initial packages, and any package that +transitively depends on one of them, must be loaded from source. +Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from +source; D may be loaded from export data, and E may not be loaded at all +(though it's possible that D's export data mentions it, so a +types.Package may be created for it and exposed.) + +The old loader had a feature to suppress type-checking of function +bodies on a per-package basis, primarily intended to reduce the work of +obtaining type information for imported packages. Now that imports are +satisfied by export data, the optimization no longer seems necessary. + +Despite some early attempts, the old loader did not exploit export data, +instead always using the equivalent of WholeProgram mode. This was due +to the complexity of mixing source and export data packages (now +resolved by the upward traversal mentioned above), and because export data +files were nearly always missing or stale. Now that 'go build' supports +caching, all the underlying build systems can guarantee to produce +export data in a reasonable (amortized) time. + +Test "main" packages synthesized by the build system are now reported as +first-class packages, avoiding the need for clients (such as go/ssa) to +reinvent this generation logic. + +One way in which go/packages is simpler than the old loader is in its +treatment of in-package tests. In-package tests are packages that +consist of all the files of the library under test, plus the test files. +The old loader constructed in-package tests by a two-phase process of +mutation called "augmentation": first it would construct and type check +all the ordinary library packages and type-check the packages that +depend on them; then it would add more (test) files to the package and +type-check again. This two-phase approach had four major problems: +1) in processing the tests, the loader modified the library package, + leaving no way for a client application to see both the test + package and the library package; one would mutate into the other. +2) because test files can declare additional methods on types defined in + the library portion of the package, the dispatch of method calls in + the library portion was affected by the presence of the test files. + This should have been a clue that the packages were logically + different. +3) this model of "augmentation" assumed at most one in-package test + per library package, which is true of projects using 'go build', + but not other build systems. +4) because of the two-phase nature of test processing, all packages that + import the library package had to be processed before augmentation, + forcing a "one-shot" API and preventing the client from calling Load + in several times in sequence as is now possible in WholeProgram mode. + (TypeCheck mode has a similar one-shot restriction for a different reason.) + +Early drafts of this package supported "multi-shot" operation. +Although it allowed clients to make a sequence of calls (or concurrent +calls) to Load, building up the graph of Packages incrementally, +it was of marginal value: it complicated the API +(since it allowed some options to vary across calls but not others), +it complicated the implementation, +it cannot be made to work in Types mode, as explained above, +and it was less efficient than making one combined call (when this is possible). +Among the clients we have inspected, none made multiple calls to load +but could not be easily and satisfactorily modified to make only a single call. +However, applications changes may be required. +For example, the ssadump command loads the user-specified packages +and in addition the runtime package. It is tempting to simply append +"runtime" to the user-provided list, but that does not work if the user +specified an ad-hoc package such as [a.go b.go]. +Instead, ssadump no longer requests the runtime package, +but seeks it among the dependencies of the user-specified packages, +and emits an error if it is not found. + +Questions & Tasks + +- Add GOARCH/GOOS? + They are not portable concepts, but could be made portable. + Our goal has been to allow users to express themselves using the conventions + of the underlying build system: if the build system honors GOARCH + during a build and during a metadata query, then so should + applications built atop that query mechanism. + Conversely, if the target architecture of the build is determined by + command-line flags, the application can pass the relevant + flags through to the build system using a command such as: + myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" + However, this approach is low-level, unwieldy, and non-portable. + GOOS and GOARCH seem important enough to warrant a dedicated option. + +- How should we handle partial failures such as a mixture of good and + malformed patterns, existing and non-existent packages, successful and + failed builds, import failures, import cycles, and so on, in a call to + Load? + +- Support bazel, blaze, and go1.10 list, not just go1.11 list. + +- Handle (and test) various partial success cases, e.g. + a mixture of good packages and: + invalid patterns + nonexistent packages + empty packages + packages with malformed package or import declarations + unreadable files + import cycles + other parse errors + type errors + Make sure we record errors at the correct place in the graph. + +- Missing packages among initial arguments are not reported. + Return bogus packages for them, like golist does. + +- "undeclared name" errors (for example) are reported out of source file + order. I suspect this is due to the breadth-first resolution now used + by go/types. Is that a bug? Discuss with gri. + +*/ diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go new file mode 100644 index 0000000..f37bc65 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/external.go @@ -0,0 +1,153 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +// This file defines the protocol that enables an external "driver" +// tool to supply package metadata in place of 'go list'. + +import ( + "bytes" + "encoding/json" + "fmt" + "os" + "os/exec" + "slices" + "strings" +) + +// DriverRequest defines the schema of a request for package metadata +// from an external driver program. The JSON-encoded DriverRequest +// message is provided to the driver program's standard input. The +// query patterns are provided as command-line arguments. +// +// See the package documentation for an overview. +type DriverRequest struct { + Mode LoadMode `json:"mode"` + + // Env specifies the environment the underlying build system should be run in. + Env []string `json:"env"` + + // BuildFlags are flags that should be passed to the underlying build system. + BuildFlags []string `json:"build_flags"` + + // Tests specifies whether the patterns should also return test packages. + Tests bool `json:"tests"` + + // Overlay maps file paths (relative to the driver's working directory) + // to the contents of overlay files (see Config.Overlay). + Overlay map[string][]byte `json:"overlay"` +} + +// DriverResponse defines the schema of a response from an external +// driver program, providing the results of a query for package +// metadata. The driver program must write a JSON-encoded +// DriverResponse message to its standard output. +// +// See the package documentation for an overview. +type DriverResponse struct { + // NotHandled is returned if the request can't be handled by the current + // driver. If an external driver returns a response with NotHandled, the + // rest of the DriverResponse is ignored, and go/packages will fallback + // to the next driver. If go/packages is extended in the future to support + // lists of multiple drivers, go/packages will fall back to the next driver. + NotHandled bool + + // Compiler and Arch are the arguments pass of types.SizesFor + // to get a types.Sizes to use when type checking. + Compiler string + Arch string + + // Roots is the set of package IDs that make up the root packages. + // We have to encode this separately because when we encode a single package + // we cannot know if it is one of the roots as that requires knowledge of the + // graph it is part of. + Roots []string `json:",omitempty"` + + // Packages is the full set of packages in the graph. + // The packages are not connected into a graph. + // The Imports if populated will be stubs that only have their ID set. + // Imports will be connected and then type and syntax information added in a + // later pass (see refine). + Packages []*Package + + // GoVersion is the minor version number used by the driver + // (e.g. the go command on the PATH) when selecting .go files. + // Zero means unknown. + GoVersion int +} + +// driver is the type for functions that query the build system for the +// packages named by the patterns. +type driver func(cfg *Config, patterns []string) (*DriverResponse, error) + +// findExternalDriver returns the file path of a tool that supplies +// the build system package structure, or "" if not found. +// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its +// value, otherwise it searches for a binary named gopackagesdriver on the PATH. +func findExternalDriver(cfg *Config) driver { + const toolPrefix = "GOPACKAGESDRIVER=" + tool := "" + for _, env := range cfg.Env { + if val, ok := strings.CutPrefix(env, toolPrefix); ok { + tool = val + } + } + if tool != "" && tool == "off" { + return nil + } + if tool == "" { + var err error + tool, err = exec.LookPath("gopackagesdriver") + if err != nil { + return nil + } + } + return func(cfg *Config, patterns []string) (*DriverResponse, error) { + req, err := json.Marshal(DriverRequest{ + Mode: cfg.Mode, + Env: cfg.Env, + BuildFlags: cfg.BuildFlags, + Tests: cfg.Tests, + Overlay: cfg.Overlay, + }) + if err != nil { + return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) + } + + buf := new(bytes.Buffer) + stderr := new(bytes.Buffer) + cmd := exec.CommandContext(cfg.Context, tool, patterns...) + cmd.Dir = cfg.Dir + // The cwd gets resolved to the real path. On Darwin, where + // /tmp is a symlink, this breaks anything that expects the + // working directory to keep the original path, including the + // go command when dealing with modules. + // + // os.Getwd stdlib has a special feature where if the + // cwd and the PWD are the same node then it trusts + // the PWD, so by setting it in the env for the child + // process we fix up all the paths returned by the go + // command. + // + // (See similar trick in Invocation.run in ../../internal/gocommand/invoke.go) + cmd.Env = append(slices.Clip(cfg.Env), "PWD="+cfg.Dir) + cmd.Stdin = bytes.NewReader(req) + cmd.Stdout = buf + cmd.Stderr = stderr + + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) + } + if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) + } + + var response DriverResponse + if err := json.Unmarshal(buf.Bytes(), &response); err != nil { + return nil, err + } + return &response, nil + } +} diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go new file mode 100644 index 0000000..89f89dd --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -0,0 +1,1092 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "log" + "os" + "os/exec" + "path" + "path/filepath" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "unicode" + + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" +) + +// debug controls verbose logging. +var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) + +// A goTooOldError reports that the go command +// found by exec.LookPath is too old to use the new go list behavior. +type goTooOldError struct { + error +} + +// responseDeduper wraps a DriverResponse, deduplicating its contents. +type responseDeduper struct { + seenRoots map[string]bool + seenPackages map[string]*Package + dr *DriverResponse +} + +func newDeduper() *responseDeduper { + return &responseDeduper{ + dr: &DriverResponse{}, + seenRoots: map[string]bool{}, + seenPackages: map[string]*Package{}, + } +} + +// addAll fills in r with a DriverResponse. +func (r *responseDeduper) addAll(dr *DriverResponse) { + for _, pkg := range dr.Packages { + r.addPackage(pkg) + } + for _, root := range dr.Roots { + r.addRoot(root) + } + r.dr.GoVersion = dr.GoVersion +} + +func (r *responseDeduper) addPackage(p *Package) { + if r.seenPackages[p.ID] != nil { + return + } + r.seenPackages[p.ID] = p + r.dr.Packages = append(r.dr.Packages, p) +} + +func (r *responseDeduper) addRoot(id string) { + if r.seenRoots[id] { + return + } + r.seenRoots[id] = true + r.dr.Roots = append(r.dr.Roots, id) +} + +type golistState struct { + cfg *Config + ctx context.Context + + runner *gocommand.Runner + + // overlay is the JSON file that encodes the Config.Overlay + // mapping, used by 'go list -overlay=...'. + overlay string + + envOnce sync.Once + goEnvError error + goEnv map[string]string + + rootsOnce sync.Once + rootDirsError error + rootDirs map[string]string + + goVersionOnce sync.Once + goVersionError error + goVersion int // The X in Go 1.X. + + // vendorDirs caches the (non)existence of vendor directories. + vendorDirs map[string]bool +} + +// getEnv returns Go environment variables. Only specific variables are +// populated -- computing all of them is slow. +func (state *golistState) getEnv() (map[string]string, error) { + state.envOnce.Do(func() { + var b *bytes.Buffer + b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH") + if state.goEnvError != nil { + return + } + + state.goEnv = make(map[string]string) + decoder := json.NewDecoder(b) + if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil { + return + } + }) + return state.goEnv, state.goEnvError +} + +// mustGetEnv is a convenience function that can be used if getEnv has already succeeded. +func (state *golistState) mustGetEnv() map[string]string { + env, err := state.getEnv() + if err != nil { + panic(fmt.Sprintf("mustGetEnv: %v", err)) + } + return env +} + +// goListDriver uses the go list command to interpret the patterns and produce +// the build system package structure. +// See driver for more details. +// +// overlay is the JSON file that encodes the cfg.Overlay +// mapping, used by 'go list -overlay=...' +func goListDriver(cfg *Config, runner *gocommand.Runner, overlay string, patterns []string) (_ *DriverResponse, err error) { + // Make sure that any asynchronous go commands are killed when we return. + parentCtx := cfg.Context + if parentCtx == nil { + parentCtx = context.Background() + } + ctx, cancel := context.WithCancel(parentCtx) + defer cancel() + + response := newDeduper() + + state := &golistState{ + cfg: cfg, + ctx: ctx, + vendorDirs: map[string]bool{}, + overlay: overlay, + runner: runner, + } + + // Fill in response.Sizes asynchronously if necessary. + if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { + errCh := make(chan error) + go func() { + compiler, arch, err := getSizesForArgs(ctx, state.cfgInvocation(), runner) + response.dr.Compiler = compiler + response.dr.Arch = arch + errCh <- err + }() + defer func() { + if sizesErr := <-errCh; sizesErr != nil { + err = sizesErr + } + }() + } + + // Determine files requested in contains patterns + var containFiles []string + restPatterns := make([]string, 0, len(patterns)) + // Extract file= and other [querytype]= patterns. Report an error if querytype + // doesn't exist. +extractQueries: + for _, pattern := range patterns { + eqidx := strings.Index(pattern, "=") + if eqidx < 0 { + restPatterns = append(restPatterns, pattern) + } else { + query, value := pattern[:eqidx], pattern[eqidx+len("="):] + switch query { + case "file": + containFiles = append(containFiles, value) + case "pattern": + restPatterns = append(restPatterns, value) + case "": // not a reserved query + restPatterns = append(restPatterns, pattern) + default: + for _, rune := range query { + if rune < 'a' || rune > 'z' { // not a reserved query + restPatterns = append(restPatterns, pattern) + continue extractQueries + } + } + // Reject all other patterns containing "=" + return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) + } + } + } + + // See if we have any patterns to pass through to go list. Zero initial + // patterns also requires a go list call, since it's the equivalent of + // ".". + if len(restPatterns) > 0 || len(patterns) == 0 { + dr, err := state.createDriverResponse(restPatterns...) + if err != nil { + return nil, err + } + response.addAll(dr) + } + + if len(containFiles) != 0 { + if err := state.runContainsQueries(response, containFiles); err != nil { + return nil, err + } + } + + // (We may yet return an error due to defer.) + return response.dr, nil +} + +// abs returns an absolute representation of path, based on cfg.Dir. +func (cfg *Config) abs(path string) (string, error) { + if filepath.IsAbs(path) { + return path, nil + } + // In case cfg.Dir is relative, pass it to filepath.Abs. + return filepath.Abs(filepath.Join(cfg.Dir, path)) +} + +func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { + for _, query := range queries { + // TODO(matloob): Do only one query per directory. + fdir := filepath.Dir(query) + // Pass absolute path of directory to go list so that it knows to treat it as a directory, + // not a package path. + pattern, err := state.cfg.abs(fdir) + if err != nil { + return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) + } + dirResponse, err := state.createDriverResponse(pattern) + + // If there was an error loading the package, or no packages are returned, + // or the package is returned with errors, try to load the file as an + // ad-hoc package. + // Usually the error will appear in a returned package, but may not if we're + // in module mode and the ad-hoc is located outside a module. + if err != nil || len(dirResponse.Packages) == 0 || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 && + len(dirResponse.Packages[0].Errors) == 1 { + var queryErr error + if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil { + return err // return the original error + } + } + isRoot := make(map[string]bool, len(dirResponse.Roots)) + for _, root := range dirResponse.Roots { + isRoot[root] = true + } + for _, pkg := range dirResponse.Packages { + // Add any new packages to the main set + // We don't bother to filter packages that will be dropped by the changes of roots, + // that will happen anyway during graph construction outside this function. + // Over-reporting packages is not a problem. + response.addPackage(pkg) + // if the package was not a root one, it cannot have the file + if !isRoot[pkg.ID] { + continue + } + for _, pkgFile := range pkg.GoFiles { + if filepath.Base(query) == filepath.Base(pkgFile) { + response.addRoot(pkg.ID) + break + } + } + } + } + return nil +} + +// adhocPackage attempts to load or construct an ad-hoc package for a given +// query, if the original call to the driver produced inadequate results. +func (state *golistState) adhocPackage(pattern, query string) (*DriverResponse, error) { + response, err := state.createDriverResponse(query) + if err != nil { + return nil, err + } + // If we get nothing back from `go list`, + // try to make this file into its own ad-hoc package. + // TODO(rstambler): Should this check against the original response? + if len(response.Packages) == 0 { + response.Packages = append(response.Packages, &Package{ + ID: "command-line-arguments", + PkgPath: query, + GoFiles: []string{query}, + CompiledGoFiles: []string{query}, + Imports: make(map[string]*Package), + }) + response.Roots = append(response.Roots, "command-line-arguments") + } + // Handle special cases. + if len(response.Packages) == 1 { + // golang/go#33482: If this is a file= query for ad-hoc packages where + // the file only exists on an overlay, and exists outside of a module, + // add the file to the package and remove the errors. + if response.Packages[0].ID == "command-line-arguments" || + filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) { + if len(response.Packages[0].GoFiles) == 0 { + filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath + // TODO(matloob): check if the file is outside of a root dir? + for path := range state.cfg.Overlay { + if path == filename { + response.Packages[0].Errors = nil + response.Packages[0].GoFiles = []string{path} + response.Packages[0].CompiledGoFiles = []string{path} + } + } + } + } + } + return response, nil +} + +// Fields must match go list; +// see $GOROOT/src/cmd/go/internal/load/pkg.go. +type jsonPackage struct { + ImportPath string + Dir string + Name string + Target string + Export string + GoFiles []string + CompiledGoFiles []string + IgnoredGoFiles []string + IgnoredOtherFiles []string + EmbedPatterns []string + EmbedFiles []string + CFiles []string + CgoFiles []string + CXXFiles []string + MFiles []string + HFiles []string + FFiles []string + SFiles []string + SwigFiles []string + SwigCXXFiles []string + SysoFiles []string + Imports []string + ImportMap map[string]string + Deps []string + Module *Module + TestGoFiles []string + TestImports []string + XTestGoFiles []string + XTestImports []string + ForTest string // q in a "p [q.test]" package, else "" + DepOnly bool + + Error *packagesinternal.PackageError + DepsErrors []*packagesinternal.PackageError +} + +type jsonPackageError struct { + ImportStack []string + Pos string + Err string +} + +func otherFiles(p *jsonPackage) [][]string { + return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} +} + +// createDriverResponse uses the "go list" command to expand the pattern +// words and return a response for the specified packages. +func (state *golistState) createDriverResponse(words ...string) (*DriverResponse, error) { + // go list uses the following identifiers in ImportPath and Imports: + // + // "p" -- importable package or main (command) + // "q.test" -- q's test executable + // "p [q.test]" -- variant of p as built for q's test executable + // "q_test [q.test]" -- q's external test package + // + // The packages p that are built differently for a test q.test + // are q itself, plus any helpers used by the external test q_test, + // typically including "testing" and all its dependencies. + + // Run "go list" for complete + // information on the specified packages. + goVersion, err := state.getGoVersion() + if err != nil { + return nil, err + } + buf, err := state.invokeGo("list", golistargs(state.cfg, words, goVersion)...) + if err != nil { + return nil, err + } + + seen := make(map[string]*jsonPackage) + pkgs := make(map[string]*Package) + additionalErrors := make(map[string][]Error) + // Decode the JSON and convert it to Package form. + response := &DriverResponse{ + GoVersion: goVersion, + } + for dec := json.NewDecoder(buf); dec.More(); { + p := new(jsonPackage) + if err := dec.Decode(p); err != nil { + return nil, fmt.Errorf("JSON decoding failed: %v", err) + } + + if p.ImportPath == "" { + // The documentation for go list says that “[e]rroneous packages will have + // a non-empty ImportPath”. If for some reason it comes back empty, we + // prefer to error out rather than silently discarding data or handing + // back a package without any way to refer to it. + if p.Error != nil { + return nil, Error{ + Pos: p.Error.Pos, + Msg: p.Error.Err, + } + } + return nil, fmt.Errorf("package missing import path: %+v", p) + } + + // Work around https://golang.org/issue/33157: + // go list -e, when given an absolute path, will find the package contained at + // that directory. But when no package exists there, it will return a fake package + // with an error and the ImportPath set to the absolute path provided to go list. + // Try to convert that absolute path to what its package path would be if it's + // contained in a known module or GOPATH entry. This will allow the package to be + // properly "reclaimed" when overlays are processed. + if filepath.IsAbs(p.ImportPath) && p.Error != nil { + pkgPath, ok, err := state.getPkgPath(p.ImportPath) + if err != nil { + return nil, err + } + if ok { + p.ImportPath = pkgPath + } + } + + if old, found := seen[p.ImportPath]; found { + // If one version of the package has an error, and the other doesn't, assume + // that this is a case where go list is reporting a fake dependency variant + // of the imported package: When a package tries to invalidly import another + // package, go list emits a variant of the imported package (with the same + // import path, but with an error on it, and the package will have a + // DepError set on it). An example of when this can happen is for imports of + // main packages: main packages can not be imported, but they may be + // separately matched and listed by another pattern. + // See golang.org/issue/36188 for more details. + + // The plan is that eventually, hopefully in Go 1.15, the error will be + // reported on the importing package rather than the duplicate "fake" + // version of the imported package. Once all supported versions of Go + // have the new behavior this logic can be deleted. + // TODO(matloob): delete the workaround logic once all supported versions of + // Go return the errors on the proper package. + + // There should be exactly one version of a package that doesn't have an + // error. + if old.Error == nil && p.Error == nil { + if !reflect.DeepEqual(p, old) { + return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) + } + continue + } + + // Determine if this package's error needs to be bubbled up. + // This is a hack, and we expect for go list to eventually set the error + // on the package. + if old.Error != nil { + var errkind string + if strings.Contains(old.Error.Err, "not an importable package") { + errkind = "not an importable package" + } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") { + errkind = "use of internal package not allowed" + } + if errkind != "" { + if len(old.Error.ImportStack) < 1 { + return nil, fmt.Errorf(`internal error: go list gave a %q error with empty import stack`, errkind) + } + importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-1] + if importingPkg == old.ImportPath { + // Using an older version of Go which put this package itself on top of import + // stack, instead of the importer. Look for importer in second from top + // position. + if len(old.Error.ImportStack) < 2 { + return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack without importing package`, errkind) + } + importingPkg = old.Error.ImportStack[len(old.Error.ImportStack)-2] + } + additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{ + Pos: old.Error.Pos, + Msg: old.Error.Err, + Kind: ListError, + }) + } + } + + // Make sure that if there's a version of the package without an error, + // that's the one reported to the user. + if old.Error == nil { + continue + } + + // This package will replace the old one at the end of the loop. + } + seen[p.ImportPath] = p + + pkg := &Package{ + Name: p.Name, + ID: p.ImportPath, + Dir: p.Dir, + Target: p.Target, + GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), + CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), + OtherFiles: absJoin(p.Dir, otherFiles(p)...), + EmbedFiles: absJoin(p.Dir, p.EmbedFiles), + EmbedPatterns: absJoin(p.Dir, p.EmbedPatterns), + IgnoredFiles: absJoin(p.Dir, p.IgnoredGoFiles, p.IgnoredOtherFiles), + ForTest: p.ForTest, + depsErrors: p.DepsErrors, + Module: p.Module, + } + + if (state.cfg.Mode&typecheckCgo) != 0 && len(p.CgoFiles) != 0 { + if len(p.CompiledGoFiles) > len(p.GoFiles) { + // We need the cgo definitions, which are in the first + // CompiledGoFile after the non-cgo ones. This is a hack but there + // isn't currently a better way to find it. We also need the pure + // Go files and unprocessed cgo files, all of which are already + // in pkg.GoFiles. + cgoTypes := p.CompiledGoFiles[len(p.GoFiles)] + pkg.CompiledGoFiles = append([]string{cgoTypes}, pkg.GoFiles...) + } else { + // golang/go#38990: go list silently fails to do cgo processing + pkg.CompiledGoFiles = nil + pkg.Errors = append(pkg.Errors, Error{ + Msg: "go list failed to return CompiledGoFiles. This may indicate failure to perform cgo processing; try building at the command line. See https://golang.org/issue/38990.", + Kind: ListError, + }) + } + } + + // Work around https://golang.org/issue/28749: + // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. + // Remove files from CompiledGoFiles that are non-go files + // (or are not files that look like they are from the cache). + if len(pkg.CompiledGoFiles) > 0 { + out := pkg.CompiledGoFiles[:0] + for _, f := range pkg.CompiledGoFiles { + if ext := filepath.Ext(f); ext != ".go" && ext != "" { // ext == "" means the file is from the cache, so probably cgo-processed file + continue + } + out = append(out, f) + } + pkg.CompiledGoFiles = out + } + + // Extract the PkgPath from the package's ID. + if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { + pkg.PkgPath = pkg.ID[:i] + } else { + pkg.PkgPath = pkg.ID + } + + if pkg.PkgPath == "unsafe" { + pkg.CompiledGoFiles = nil // ignore fake unsafe.go file (#59929) + } else if len(pkg.CompiledGoFiles) == 0 { + // Work around for pre-go.1.11 versions of go list. + // TODO(matloob): they should be handled by the fallback. + // Can we delete this? + pkg.CompiledGoFiles = pkg.GoFiles + } + + // Assume go list emits only absolute paths for Dir. + if p.Dir != "" && !filepath.IsAbs(p.Dir) { + log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) + } + + if p.Export != "" && !filepath.IsAbs(p.Export) { + pkg.ExportFile = filepath.Join(p.Dir, p.Export) + } else { + pkg.ExportFile = p.Export + } + + // imports + // + // Imports contains the IDs of all imported packages. + // ImportsMap records (path, ID) only where they differ. + ids := make(map[string]bool) + for _, id := range p.Imports { + ids[id] = true + } + pkg.Imports = make(map[string]*Package) + for path, id := range p.ImportMap { + pkg.Imports[path] = &Package{ID: id} // non-identity import + delete(ids, id) + } + for id := range ids { + if id == "C" { + continue + } + + pkg.Imports[id] = &Package{ID: id} // identity import + } + if !p.DepOnly { + response.Roots = append(response.Roots, pkg.ID) + } + + // Temporary work-around for golang/go#39986. Parse filenames out of + // error messages. This happens if there are unrecoverable syntax + // errors in the source, so we can't match on a specific error message. + // + // TODO(rfindley): remove this heuristic, in favor of considering + // InvalidGoFiles from the list driver. + if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { + addFilenameFromPos := func(pos string) bool { + split := strings.Split(pos, ":") + if len(split) < 1 { + return false + } + filename := strings.TrimSpace(split[0]) + if filename == "" { + return false + } + if !filepath.IsAbs(filename) { + filename = filepath.Join(state.cfg.Dir, filename) + } + info, _ := os.Stat(filename) + if info == nil { + return false + } + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, filename) + pkg.GoFiles = append(pkg.GoFiles, filename) + return true + } + found := addFilenameFromPos(err.Pos) + // In some cases, go list only reports the error position in the + // error text, not the error position. One such case is when the + // file's package name is a keyword (see golang.org/issue/39763). + if !found { + addFilenameFromPos(err.Err) + } + } + + if p.Error != nil { + msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363. + // Address golang.org/issue/35964 by appending import stack to error message. + if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 { + msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack) + } + pkg.Errors = append(pkg.Errors, Error{ + Pos: p.Error.Pos, + Msg: msg, + Kind: ListError, + }) + } + + pkgs[pkg.ID] = pkg + } + + for id, errs := range additionalErrors { + if p, ok := pkgs[id]; ok { + p.Errors = append(p.Errors, errs...) + } + } + for _, pkg := range pkgs { + response.Packages = append(response.Packages, pkg) + } + sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID }) + + return response, nil +} + +func (state *golistState) shouldAddFilenameFromError(p *jsonPackage) bool { + if len(p.GoFiles) > 0 || len(p.CompiledGoFiles) > 0 { + return false + } + + goV, err := state.getGoVersion() + if err != nil { + return false + } + + // On Go 1.14 and earlier, only add filenames from errors if the import stack is empty. + // The import stack behaves differently for these versions than newer Go versions. + if goV < 15 { + return len(p.Error.ImportStack) == 0 + } + + // On Go 1.15 and later, only parse filenames out of error if there's no import stack, + // or the current package is at the top of the import stack. This is not guaranteed + // to work perfectly, but should avoid some cases where files in errors don't belong to this + // package. + return len(p.Error.ImportStack) == 0 || p.Error.ImportStack[len(p.Error.ImportStack)-1] == p.ImportPath +} + +// getGoVersion returns the effective minor version of the go command. +func (state *golistState) getGoVersion() (int, error) { + state.goVersionOnce.Do(func() { + state.goVersion, state.goVersionError = gocommand.GoVersion(state.ctx, state.cfgInvocation(), state.runner) + }) + return state.goVersion, state.goVersionError +} + +// getPkgPath finds the package path of a directory if it's relative to a root +// directory. +func (state *golistState) getPkgPath(dir string) (string, bool, error) { + if !filepath.IsAbs(dir) { + panic("non-absolute dir passed to getPkgPath") + } + roots, err := state.determineRootDirs() + if err != nil { + return "", false, err + } + + for rdir, rpath := range roots { + // Make sure that the directory is in the module, + // to avoid creating a path relative to another module. + if !strings.HasPrefix(dir, rdir) { + continue + } + // TODO(matloob): This doesn't properly handle symlinks. + r, err := filepath.Rel(rdir, dir) + if err != nil { + continue + } + if rpath != "" { + // We choose only one root even though the directory even it can belong in multiple modules + // or GOPATH entries. This is okay because we only need to work with absolute dirs when a + // file is missing from disk, for instance when gopls calls go/packages in an overlay. + // Once the file is saved, gopls, or the next invocation of the tool will get the correct + // result straight from golist. + // TODO(matloob): Implement module tiebreaking? + return path.Join(rpath, filepath.ToSlash(r)), true, nil + } + return filepath.ToSlash(r), true, nil + } + return "", false, nil +} + +// absJoin absolutizes and flattens the lists of files. +func absJoin(dir string, fileses ...[]string) (res []string) { + for _, files := range fileses { + for _, file := range files { + if !filepath.IsAbs(file) { + file = filepath.Join(dir, file) + } + res = append(res, file) + } + } + return res +} + +func jsonFlag(cfg *Config, goVersion int) string { + if goVersion < 19 { + return "-json" + } + var fields []string + added := make(map[string]bool) + addFields := func(fs ...string) { + for _, f := range fs { + if !added[f] { + added[f] = true + fields = append(fields, f) + } + } + } + addFields("Name", "ImportPath", "Error") // These fields are always needed + if cfg.Mode&NeedFiles != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { + addFields("Dir", "GoFiles", "IgnoredGoFiles", "IgnoredOtherFiles", "CFiles", + "CgoFiles", "CXXFiles", "MFiles", "HFiles", "FFiles", "SFiles", + "SwigFiles", "SwigCXXFiles", "SysoFiles") + if cfg.Tests { + addFields("TestGoFiles", "XTestGoFiles") + } + } + if cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { + // CompiledGoFiles seems to be required for the test case TestCgoNoSyntax, + // even when -compiled isn't passed in. + // TODO(#52435): Should we make the test ask for -compiled, or automatically + // request CompiledGoFiles in certain circumstances? + addFields("Dir", "CompiledGoFiles") + } + if cfg.Mode&NeedCompiledGoFiles != 0 { + addFields("Dir", "CompiledGoFiles", "Export") + } + if cfg.Mode&NeedImports != 0 { + // When imports are requested, DepOnly is used to distinguish between packages + // explicitly requested and transitive imports of those packages. + addFields("DepOnly", "Imports", "ImportMap") + if cfg.Tests { + addFields("TestImports", "XTestImports") + } + } + if cfg.Mode&NeedDeps != 0 { + addFields("DepOnly") + } + if usesExportData(cfg) { + // Request Dir in the unlikely case Export is not absolute. + addFields("Dir", "Export") + } + if cfg.Mode&NeedForTest != 0 { + addFields("ForTest") + } + if cfg.Mode&needInternalDepsErrors != 0 { + addFields("DepsErrors") + } + if cfg.Mode&NeedModule != 0 { + addFields("Module") + } + if cfg.Mode&NeedEmbedFiles != 0 { + addFields("EmbedFiles") + } + if cfg.Mode&NeedEmbedPatterns != 0 { + addFields("EmbedPatterns") + } + if cfg.Mode&NeedTarget != 0 { + addFields("Target") + } + return "-json=" + strings.Join(fields, ",") +} + +func golistargs(cfg *Config, words []string, goVersion int) []string { + const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo + fullargs := []string{ + "-e", jsonFlag(cfg, goVersion), + fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0), + fmt.Sprintf("-test=%t", cfg.Tests), + fmt.Sprintf("-export=%t", usesExportData(cfg)), + fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0), + // go list doesn't let you pass -test and -find together, + // probably because you'd just get the TestMain. + fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), + } + + // golang/go#60456: with go1.21 and later, go list serves pgo variants, which + // can be costly to compute and may result in redundant processing for the + // caller. Disable these variants. If someone wants to add e.g. a NeedPGO + // mode flag, that should be a separate proposal. + if goVersion >= 21 { + fullargs = append(fullargs, "-pgo=off") + } + + fullargs = append(fullargs, cfg.BuildFlags...) + fullargs = append(fullargs, "--") + fullargs = append(fullargs, words...) + return fullargs +} + +// cfgInvocation returns an Invocation that reflects cfg's settings. +func (state *golistState) cfgInvocation() gocommand.Invocation { + cfg := state.cfg + return gocommand.Invocation{ + BuildFlags: cfg.BuildFlags, + CleanEnv: cfg.Env != nil, + Env: cfg.Env, + Logf: cfg.Logf, + WorkingDir: cfg.Dir, + Overlay: state.overlay, + } +} + +// invokeGo returns the stdout of a go command invocation. +func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) { + cfg := state.cfg + + inv := state.cfgInvocation() + inv.Verb = verb + inv.Args = args + + stdout, stderr, friendlyErr, err := state.runner.RunRaw(cfg.Context, inv) + if err != nil { + // Check for 'go' executable not being found. + if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { + return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) + } + + exitErr, ok := err.(*exec.ExitError) + if !ok { + // Catastrophic error: + // - context cancellation + return nil, fmt.Errorf("couldn't run 'go': %w", err) + } + + // Old go version? + if strings.Contains(stderr.String(), "flag provided but not defined") { + return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} + } + + // Related to #24854 + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") { + return nil, friendlyErr + } + + // Return an error if 'go list' failed due to missing tools in + // $GOROOT/pkg/tool/$GOOS_$GOARCH (#69606). + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), `go: no such tool`) { + return nil, friendlyErr + } + + // Is there an error running the C compiler in cgo? This will be reported in the "Error" field + // and should be suppressed by go list -e. + // + // This condition is not perfect yet because the error message can include other error messages than runtime/cgo. + isPkgPathRune := func(r rune) bool { + // From https://golang.org/ref/spec#Import_declarations: + // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings + // using only characters belonging to Unicode's L, M, N, P, and S general categories + // (the Graphic characters without spaces) and may also exclude the + // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD. + return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) && + !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r) + } + // golang/go#36770: Handle case where cmd/go prints module download messages before the error. + msg := stderr.String() + for strings.HasPrefix(msg, "go: downloading") { + msg = msg[strings.IndexRune(msg, '\n')+1:] + } + if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") { + msg := msg[len("# "):] + if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") { + return stdout, nil + } + // Treat pkg-config errors as a special case (golang.org/issue/36770). + if strings.HasPrefix(msg, "pkg-config") { + return stdout, nil + } + } + + // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show + // the error in the Err section of stdout in case -e option is provided. + // This fix is provided for backwards compatibility. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Similar to the previous error, but currently lacks a fix in Go. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath. + // If the package doesn't exist, put the absolute path of the directory into the error message, + // as Go 1.13 list does. + const noSuchDirectory = "no such directory" + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) { + errstr := stderr.String() + abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):]) + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + abspath, strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist. + // Note that the error message we look for in this case is different that the one looked for above. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a + // directory outside any module. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") { + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + // TODO(matloob): command-line-arguments isn't correct here. + "command-line-arguments", strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Another variation of the previous error + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") { + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + // TODO(matloob): command-line-arguments isn't correct here. + "command-line-arguments", strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit + // status if there's a dependency on a package that doesn't exist. But it should return + // a zero exit status and set an error on that package. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") { + // Don't clobber stdout if `go list` actually returned something. + if len(stdout.String()) > 0 { + return stdout, nil + } + // try to extract package name from string + stderrStr := stderr.String() + var importPath string + colon := strings.Index(stderrStr, ":") + if colon > 0 && strings.HasPrefix(stderrStr, "go build ") { + importPath = stderrStr[len("go build "):colon] + } + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + importPath, strings.Trim(stderrStr, "\n")) + return bytes.NewBufferString(output), nil + } + + // Export mode entails a build. + // If that build fails, errors appear on stderr + // (despite the -e flag) and the Export field is blank. + // Do not fail in that case. + // The same is true if an ad-hoc package given to go list doesn't exist. + // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when + // packages don't exist or a build fails. + if !usesExportData(cfg) && !containsGoFile(args) { + return nil, friendlyErr + } + } + return stdout, nil +} + +func containsGoFile(s []string) bool { + for _, f := range s { + if strings.HasSuffix(f, ".go") { + return true + } + } + return false +} + +func cmdDebugStr(cmd *exec.Cmd) string { + env := make(map[string]string) + for _, kv := range cmd.Env { + split := strings.SplitN(kv, "=", 2) + k, v := split[0], split[1] + env[k] = v + } + + var args []string + for _, arg := range cmd.Args { + quoted := strconv.Quote(arg) + if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { + args = append(args, quoted) + } else { + args = append(args, arg) + } + } + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) +} + +// getSizesForArgs queries 'go list' for the appropriate +// Compiler and GOARCH arguments to pass to [types.SizesFor]. +func getSizesForArgs(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { + inv.Verb = "list" + inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} + stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) + var goarch, compiler string + if rawErr != nil { + rawErrMsg := rawErr.Error() + if strings.Contains(rawErrMsg, "cannot find main module") || + strings.Contains(rawErrMsg, "go.mod file not found") { + // User's running outside of a module. + // All bets are off. Get GOARCH and guess compiler is gc. + // TODO(matloob): Is this a problem in practice? + inv.Verb = "env" + inv.Args = []string{"GOARCH"} + envout, enverr := gocmdRunner.Run(ctx, inv) + if enverr != nil { + return "", "", enverr + } + goarch = strings.TrimSpace(envout.String()) + compiler = "gc" + } else if friendlyErr != nil { + return "", "", friendlyErr + } else { + // This should be unreachable, but be defensive + // in case RunRaw's error results are inconsistent. + return "", "", rawErr + } + } else { + fields := strings.Fields(stdout.String()) + if len(fields) < 2 { + return "", "", fmt.Errorf("could not parse GOARCH and Go compiler in format \"<GOARCH> <compiler>\":\nstdout: <<%s>>\nstderr: <<%s>>", + stdout.String(), stderr.String()) + } + goarch = fields[0] + compiler = fields[1] + } + return compiler, goarch, nil +} diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go new file mode 100644 index 0000000..d9d5a45 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go @@ -0,0 +1,83 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "encoding/json" + "path/filepath" + + "golang.org/x/tools/internal/gocommand" +) + +// determineRootDirs returns a mapping from absolute directories that could +// contain code to their corresponding import path prefixes. +func (state *golistState) determineRootDirs() (map[string]string, error) { + env, err := state.getEnv() + if err != nil { + return nil, err + } + if env["GOMOD"] != "" { + state.rootsOnce.Do(func() { + state.rootDirs, state.rootDirsError = state.determineRootDirsModules() + }) + } else { + state.rootsOnce.Do(func() { + state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH() + }) + } + return state.rootDirs, state.rootDirsError +} + +func (state *golistState) determineRootDirsModules() (map[string]string, error) { + // List all of the modules--the first will be the directory for the main + // module. Any replaced modules will also need to be treated as roots. + // Editing files in the module cache isn't a great idea, so we don't + // plan to ever support that. + out, err := state.invokeGo("list", "-m", "-json", "all") + if err != nil { + // 'go list all' will fail if we're outside of a module and + // GO111MODULE=on. Try falling back without 'all'. + var innerErr error + out, innerErr = state.invokeGo("list", "-m", "-json") + if innerErr != nil { + return nil, err + } + } + roots := map[string]string{} + modules := map[string]string{} + var i int + for dec := json.NewDecoder(out); dec.More(); { + mod := new(gocommand.ModuleJSON) + if err := dec.Decode(mod); err != nil { + return nil, err + } + if mod.Dir != "" && mod.Path != "" { + // This is a valid module; add it to the map. + absDir, err := state.cfg.abs(mod.Dir) + if err != nil { + return nil, err + } + modules[absDir] = mod.Path + // The first result is the main module. + if i == 0 || mod.Replace != nil && mod.Replace.Path != "" { + roots[absDir] = mod.Path + } + } + i++ + } + return roots, nil +} + +func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { + m := map[string]string{} + for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) { + absDir, err := filepath.Abs(dir) + if err != nil { + return nil, err + } + m[filepath.Join(absDir, "src")] = "" + } + return m, nil +} diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go new file mode 100644 index 0000000..69eec9f --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/loadmode_string.go @@ -0,0 +1,56 @@ +// 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 packages + +import ( + "fmt" + "strings" +) + +var modes = [...]struct { + mode LoadMode + name string +}{ + {NeedName, "NeedName"}, + {NeedFiles, "NeedFiles"}, + {NeedCompiledGoFiles, "NeedCompiledGoFiles"}, + {NeedImports, "NeedImports"}, + {NeedDeps, "NeedDeps"}, + {NeedExportFile, "NeedExportFile"}, + {NeedTypes, "NeedTypes"}, + {NeedSyntax, "NeedSyntax"}, + {NeedTypesInfo, "NeedTypesInfo"}, + {NeedTypesSizes, "NeedTypesSizes"}, + {NeedForTest, "NeedForTest"}, + {NeedModule, "NeedModule"}, + {NeedEmbedFiles, "NeedEmbedFiles"}, + {NeedEmbedPatterns, "NeedEmbedPatterns"}, + {NeedTarget, "NeedTarget"}, +} + +func (mode LoadMode) String() string { + if mode == 0 { + return "LoadMode(0)" + } + var out []string + // named bits + for _, item := range modes { + if (mode & item.mode) != 0 { + mode ^= item.mode + out = append(out, item.name) + } + } + // unnamed residue + if mode != 0 { + if out == nil { + return fmt.Sprintf("LoadMode(%#x)", int(mode)) + } + out = append(out, fmt.Sprintf("%#x", int(mode))) + } + if len(out) == 1 { + return out[0] + } + return "(" + strings.Join(out, "|") + ")" +} diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go new file mode 100644 index 0000000..060ab08 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -0,0 +1,1559 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +// See doc.go for package documentation and implementation notes. + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "go/ast" + "go/parser" + "go/scanner" + "go/token" + "go/types" + "log" + "os" + "path/filepath" + "runtime" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/sync/errgroup" + + "golang.org/x/tools/go/gcexportdata" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" + "golang.org/x/tools/internal/typesinternal" +) + +// A LoadMode controls the amount of detail to return when loading. +// The bits below can be combined to specify which fields should be +// filled in the result packages. +// +// The zero value is a special case, equivalent to combining +// the NeedName, NeedFiles, and NeedCompiledGoFiles bits. +// +// ID and Errors (if present) will always be filled. +// [Load] may return more information than requested. +// +// The Mode flag is a union of several bits named NeedName, +// NeedFiles, and so on, each of which determines whether +// a given field of Package (Name, Files, etc) should be +// populated. +// +// For convenience, we provide named constants for the most +// common combinations of Need flags: +// +// [LoadFiles] lists of files in each package +// [LoadImports] ... plus imports +// [LoadTypes] ... plus type information +// [LoadSyntax] ... plus type-annotated syntax +// [LoadAllSyntax] ... for all dependencies +// +// Unfortunately there are a number of open bugs related to +// interactions among the LoadMode bits: +// - https://go.dev/issue/56633 +// - https://go.dev/issue/56677 +// - https://go.dev/issue/58726 +// - https://go.dev/issue/63517 +type LoadMode int + +const ( + // NeedName adds Name and PkgPath. + NeedName LoadMode = 1 << iota + + // NeedFiles adds Dir, GoFiles, OtherFiles, and IgnoredFiles + NeedFiles + + // NeedCompiledGoFiles adds CompiledGoFiles. + NeedCompiledGoFiles + + // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain + // "placeholder" Packages with only the ID set. + NeedImports + + // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. + NeedDeps + + // NeedExportFile adds ExportFile. + NeedExportFile + + // NeedTypes adds Types, Fset, and IllTyped. + NeedTypes + + // NeedSyntax adds Syntax and Fset. + NeedSyntax + + // NeedTypesInfo adds TypesInfo and Fset. + NeedTypesInfo + + // NeedTypesSizes adds TypesSizes. + NeedTypesSizes + + // needInternalDepsErrors adds the internal deps errors field for use by gopls. + needInternalDepsErrors + + // NeedForTest adds ForTest. + // + // Tests must also be set on the context for this field to be populated. + NeedForTest + + // typecheckCgo enables full support for type checking cgo. Requires Go 1.15+. + // Modifies CompiledGoFiles and Types, and has no effect on its own. + typecheckCgo + + // NeedModule adds Module. + NeedModule + + // NeedEmbedFiles adds EmbedFiles. + NeedEmbedFiles + + // NeedEmbedPatterns adds EmbedPatterns. + NeedEmbedPatterns + + // NeedTarget adds Target. + NeedTarget + + // Be sure to update loadmode_string.go when adding new items! +) + +const ( + // LoadFiles loads the name and file names for the initial packages. + LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles + + // LoadImports loads the name, file names, and import mapping for the initial packages. + LoadImports = LoadFiles | NeedImports + + // LoadTypes loads exported type information for the initial packages. + LoadTypes = LoadImports | NeedTypes | NeedTypesSizes + + // LoadSyntax loads typed syntax for the initial packages. + LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo + + // LoadAllSyntax loads typed syntax for the initial packages and all dependencies. + LoadAllSyntax = LoadSyntax | NeedDeps + + // Deprecated: NeedExportsFile is a historical misspelling of NeedExportFile. + // + //go:fix inline + NeedExportsFile = NeedExportFile +) + +// A Config specifies details about how packages should be loaded. +// The zero value is a valid configuration. +// +// Calls to [Load] do not modify this struct. +type Config struct { + // Mode controls the level of information returned for each package. + Mode LoadMode + + // Context specifies the context for the load operation. + // Cancelling the context may cause [Load] to abort and + // return an error. + Context context.Context + + // Logf is the logger for the config. + // If the user provides a logger, debug logging is enabled. + // If the GOPACKAGESDEBUG environment variable is set to true, + // but the logger is nil, default to log.Printf. + Logf func(format string, args ...any) + + // Dir is the directory in which to run the build system's query tool + // that provides information about the packages. + // If Dir is empty, the tool is run in the current directory. + Dir string + + // Env is the environment to use when invoking the build system's query tool. + // If Env is nil, the current environment is used. + // As in os/exec's Cmd, only the last value in the slice for + // each environment key is used. To specify the setting of only + // a few variables, append to the current environment, as in: + // + // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") + // + Env []string + + // BuildFlags is a list of command-line flags to be passed through to + // the build system's query tool. + BuildFlags []string + + // Fset provides source position information for syntax trees and types. + // If Fset is nil, Load will use a new fileset, but preserve Fset's value. + Fset *token.FileSet + + // ParseFile is called to read and parse each file + // when preparing a package's type-checked syntax tree. + // It must be safe to call ParseFile simultaneously from multiple goroutines. + // If ParseFile is nil, the loader will uses parser.ParseFile. + // + // ParseFile should parse the source from src and use filename only for + // recording position information. + // + // An application may supply a custom implementation of ParseFile + // to change the effective file contents or the behavior of the parser, + // or to modify the syntax tree. For example, selectively eliminating + // unwanted function bodies can significantly accelerate type checking. + ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) + + // If Tests is set, the loader includes not just the packages + // matching a particular pattern but also any related test packages, + // including test-only variants of the package and the test executable. + // + // For example, when using the go command, loading "fmt" with Tests=true + // returns four packages, with IDs "fmt" (the standard package), + // "fmt [fmt.test]" (the package as compiled for the test), + // "fmt_test" (the test functions from source files in package fmt_test), + // and "fmt.test" (the test binary). + // + // In build systems with explicit names for tests, + // setting Tests may have no effect. + Tests bool + + // Overlay is a mapping from absolute file paths to file contents. + // + // For each map entry, [Load] uses the alternative file + // contents provided by the overlay mapping instead of reading + // from the file system. This mechanism can be used to enable + // editor-integrated tools to correctly analyze the contents + // of modified but unsaved buffers, for example. + // + // The overlay mapping is passed to the build system's driver + // (see "The driver protocol") so that it too can report + // consistent package metadata about unsaved files. However, + // drivers may vary in their level of support for overlays. + Overlay map[string][]byte +} + +// Load loads and returns the Go packages named by the given patterns. +// +// The cfg parameter specifies loading options; nil behaves the same as an empty [Config]. +// +// The [Config.Mode] field is a set of bits that determine what kinds +// of information should be computed and returned. Modes that require +// more information tend to be slower. See [LoadMode] for details +// and important caveats. Its zero value is equivalent to +// [NeedName] | [NeedFiles] | [NeedCompiledGoFiles]. +// +// Each call to Load returns a new set of [Package] instances. +// The Packages and their Imports form a directed acyclic graph. +// +// If the [NeedTypes] mode flag was set, each call to Load uses a new +// [types.Importer], so [types.Object] and [types.Type] values from +// different calls to Load must not be mixed as they will have +// inconsistent notions of type identity. +// +// If any of the patterns was invalid as defined by the +// underlying build system, Load returns an error. +// It may return an empty list of packages without an error, +// for instance for an empty expansion of a valid wildcard. +// Errors associated with a particular package are recorded in the +// corresponding Package's Errors list, and do not cause Load to +// return an error. Clients may need to handle such errors before +// proceeding with further analysis. The [PrintErrors] function is +// provided for convenient display of all errors. +func Load(cfg *Config, patterns ...string) ([]*Package, error) { + ld := newLoader(cfg) + response, external, err := defaultDriver(&ld.Config, patterns...) + if err != nil { + return nil, err + } + + ld.sizes = types.SizesFor(response.Compiler, response.Arch) + if ld.sizes == nil && ld.Config.Mode&(NeedTypes|NeedTypesSizes|NeedTypesInfo) != 0 { + // Type size information is needed but unavailable. + if external { + // An external driver may fail to populate the Compiler/GOARCH fields, + // especially since they are relatively new (see #63700). + // Provide a sensible fallback in this case. + ld.sizes = types.SizesFor("gc", runtime.GOARCH) + if ld.sizes == nil { // gccgo-only arch + ld.sizes = types.SizesFor("gc", "amd64") + } + } else { + // Go list should never fail to deliver accurate size information. + // Reject the whole Load since the error is the same for every package. + return nil, fmt.Errorf("can't determine type sizes for compiler %q on GOARCH %q", + response.Compiler, response.Arch) + } + } + + return ld.refine(response) +} + +// defaultDriver is a driver that implements go/packages' fallback behavior. +// It will try to request to an external driver, if one exists. If there's +// no external driver, or the driver returns a response with NotHandled set, +// defaultDriver will fall back to the go list driver. +// The boolean result indicates that an external driver handled the request. +func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, error) { + const ( + // windowsArgMax specifies the maximum command line length for + // the Windows' CreateProcess function. + windowsArgMax = 32767 + // maxEnvSize is a very rough estimation of the maximum environment + // size of a user. + maxEnvSize = 16384 + // safeArgMax specifies the maximum safe command line length to use + // by the underlying driver excl. the environment. We choose the Windows' + // ARG_MAX as the starting point because it's one of the lowest ARG_MAX + // constants out of the different supported platforms, + // e.g., https://www.in-ulm.de/~mascheck/various/argmax/#results. + safeArgMax = windowsArgMax - maxEnvSize + ) + chunks, err := splitIntoChunks(patterns, safeArgMax) + if err != nil { + return nil, false, err + } + + if driver := findExternalDriver(cfg); driver != nil { + response, err := callDriverOnChunks(driver, cfg, chunks) + if err != nil { + return nil, false, err + } else if !response.NotHandled { + return response, true, nil + } + // not handled: fall through + } + + // go list fallback + + // Write overlays once, as there are many calls + // to 'go list' (one per chunk plus others too). + overlayFile, cleanupOverlay, err := gocommand.WriteOverlays(cfg.Overlay) + if err != nil { + return nil, false, err + } + defer cleanupOverlay() + + var runner gocommand.Runner // (shared across many 'go list' calls) + driver := func(cfg *Config, patterns []string) (*DriverResponse, error) { + return goListDriver(cfg, &runner, overlayFile, patterns) + } + response, err := callDriverOnChunks(driver, cfg, chunks) + if err != nil { + return nil, false, err + } + return response, false, err +} + +// splitIntoChunks chunks the slice so that the total number of characters +// in a chunk is no longer than argMax. +func splitIntoChunks(patterns []string, argMax int) ([][]string, error) { + if argMax <= 0 { + return nil, errors.New("failed to split patterns into chunks, negative safe argMax value") + } + var chunks [][]string + charsInChunk := 0 + nextChunkStart := 0 + for i, v := range patterns { + vChars := len(v) + if vChars > argMax { + // a single pattern is longer than the maximum safe ARG_MAX, hardly should happen + return nil, errors.New("failed to split patterns into chunks, a pattern is too long") + } + charsInChunk += vChars + 1 // +1 is for a whitespace between patterns that has to be counted too + if charsInChunk > argMax { + chunks = append(chunks, patterns[nextChunkStart:i]) + nextChunkStart = i + charsInChunk = vChars + } + } + // add the last chunk + if nextChunkStart < len(patterns) { + chunks = append(chunks, patterns[nextChunkStart:]) + } + return chunks, nil +} + +func callDriverOnChunks(driver driver, cfg *Config, chunks [][]string) (*DriverResponse, error) { + if len(chunks) == 0 { + return driver(cfg, nil) + } + responses := make([]*DriverResponse, len(chunks)) + errNotHandled := errors.New("driver returned NotHandled") + var g errgroup.Group + for i, chunk := range chunks { + g.Go(func() (err error) { + responses[i], err = driver(cfg, chunk) + if responses[i] != nil && responses[i].NotHandled { + err = errNotHandled + } + return err + }) + } + if err := g.Wait(); err != nil { + if errors.Is(err, errNotHandled) { + return &DriverResponse{NotHandled: true}, nil + } + return nil, err + } + return mergeResponses(responses...), nil +} + +func mergeResponses(responses ...*DriverResponse) *DriverResponse { + if len(responses) == 0 { + return nil + } + response := newDeduper() + response.dr.NotHandled = false + response.dr.Compiler = responses[0].Compiler + response.dr.Arch = responses[0].Arch + response.dr.GoVersion = responses[0].GoVersion + for _, v := range responses { + response.addAll(v) + } + return response.dr +} + +// A Package describes a loaded Go package. +// +// It also defines part of the JSON schema of [DriverResponse]. +// See the package documentation for an overview. +type Package struct { + // ID is a unique identifier for a package, + // in a syntax provided by the underlying build system. + // + // Because the syntax varies based on the build system, + // clients should treat IDs as opaque and not attempt to + // interpret them. + ID string + + // Name is the package name as it appears in the package source code. + Name string + + // PkgPath is the package path as used by the go/types package. + PkgPath string + + // Dir is the directory associated with the package, if it exists. + // + // For packages listed by the go command, this is the directory containing + // the package files. + Dir string + + // Errors contains any errors encountered querying the metadata + // of the package, or while parsing or type-checking its files. + Errors []Error + + // TypeErrors contains the subset of errors produced during type checking. + TypeErrors []types.Error + + // GoFiles lists the absolute file paths of the package's Go source files. + // It may include files that should not be compiled, for example because + // they contain non-matching build tags, are documentary pseudo-files such as + // unsafe/unsafe.go or builtin/builtin.go, or are subject to cgo preprocessing. + GoFiles []string + + // CompiledGoFiles lists the absolute file paths of the package's source + // files that are suitable for type checking. + // This may differ from GoFiles if files are processed before compilation. + CompiledGoFiles []string + + // OtherFiles lists the absolute file paths of the package's non-Go source files, + // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. + OtherFiles []string + + // EmbedFiles lists the absolute file paths of the package's files + // embedded with go:embed. + EmbedFiles []string + + // EmbedPatterns lists the absolute file patterns of the package's + // files embedded with go:embed. + EmbedPatterns []string + + // IgnoredFiles lists source files that are not part of the package + // using the current build configuration but that might be part of + // the package using other build configurations. + IgnoredFiles []string + + // ExportFile is the absolute path to a file containing type + // information for the package as provided by the build system. + ExportFile string + + // Target is the absolute install path of the .a file, for libraries, + // and of the executable file, for binaries. + Target string + + // Imports maps import paths appearing in the package's Go source files + // to corresponding loaded Packages. + Imports map[string]*Package + + // Module is the module information for the package if it exists. + // + // Note: it may be missing for std and cmd; see Go issue #65816. + Module *Module + + // -- The following fields are not part of the driver JSON schema. -- + + // Types provides type information for the package. + // The NeedTypes LoadMode bit sets this field for packages matching the + // patterns; type information for dependencies may be missing or incomplete, + // unless NeedDeps and NeedImports are also set. + // + // Each call to [Load] returns a consistent set of type + // symbols, as defined by the comment at [types.Identical]. + // Avoid mixing type information from two or more calls to [Load]. + Types *types.Package `json:"-"` + + // Fset provides position information for Types, TypesInfo, and Syntax. + // It is set only when Types is set. + Fset *token.FileSet `json:"-"` + + // IllTyped indicates whether the package or any dependency contains errors. + // It is set only when Types is set. + IllTyped bool `json:"-"` + + // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. + // + // The NeedSyntax LoadMode bit populates this field for packages matching the patterns. + // If NeedDeps and NeedImports are also set, this field will also be populated + // for dependencies. + // + // Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are + // removed. If parsing returned nil, Syntax may be shorter than CompiledGoFiles. + Syntax []*ast.File `json:"-"` + + // TypesInfo provides type information about the package's syntax trees. + // It is set only when Syntax is set. + TypesInfo *types.Info `json:"-"` + + // TypesSizes provides the effective size function for types in TypesInfo. + TypesSizes types.Sizes `json:"-"` + + // -- internal -- + + // ForTest is the package under test, if any. + ForTest string + + // depsErrors is the DepsErrors field from the go list response, if any. + depsErrors []*packagesinternal.PackageError +} + +// Module provides module information for a package. +// +// It also defines part of the JSON schema of [DriverResponse]. +// See the package documentation for an overview. +type Module struct { + Path string // module path + Version string // module version + Replace *Module // replaced by this module + Time *time.Time // time version was created + Main bool // is this the main module? + Indirect bool // is this module only an indirect dependency of main module? + Dir string // directory holding files for this module, if any + GoMod string // path to go.mod file used when loading this module, if any + GoVersion string // go version used in module + Error *ModuleError // error loading module +} + +// ModuleError holds errors loading a module. +type ModuleError struct { + Err string // the error itself +} + +func init() { + packagesinternal.GetDepsErrors = func(p any) []*packagesinternal.PackageError { + return p.(*Package).depsErrors + } + packagesinternal.TypecheckCgo = int(typecheckCgo) + packagesinternal.DepsErrors = int(needInternalDepsErrors) +} + +// An Error describes a problem with a package's metadata, syntax, or types. +type Error struct { + Pos string // "file:line:col" or "file:line" or "" or "-" + Msg string + Kind ErrorKind +} + +// ErrorKind describes the source of the error, allowing the user to +// differentiate between errors generated by the driver, the parser, or the +// type-checker. +type ErrorKind int + +const ( + UnknownError ErrorKind = iota + ListError + ParseError + TypeError +) + +func (err Error) Error() string { + pos := err.Pos + if pos == "" { + pos = "-" // like token.Position{}.String() + } + return pos + ": " + err.Msg +} + +// flatPackage is the JSON form of Package +// It drops all the type and syntax fields, and transforms the Imports +// +// TODO(adonovan): identify this struct with Package, effectively +// publishing the JSON protocol. +type flatPackage struct { + ID string + Name string `json:",omitempty"` + PkgPath string `json:",omitempty"` + Errors []Error `json:",omitempty"` + GoFiles []string `json:",omitempty"` + CompiledGoFiles []string `json:",omitempty"` + OtherFiles []string `json:",omitempty"` + EmbedFiles []string `json:",omitempty"` + EmbedPatterns []string `json:",omitempty"` + IgnoredFiles []string `json:",omitempty"` + ExportFile string `json:",omitempty"` + Imports map[string]string `json:",omitempty"` +} + +// MarshalJSON returns the Package in its JSON form. +// For the most part, the structure fields are written out unmodified, and +// the type and syntax fields are skipped. +// The imports are written out as just a map of path to package id. +// The errors are written using a custom type that tries to preserve the +// structure of error types we know about. +// +// This method exists to enable support for additional build systems. It is +// not intended for use by clients of the API and we may change the format. +func (p *Package) MarshalJSON() ([]byte, error) { + flat := &flatPackage{ + ID: p.ID, + Name: p.Name, + PkgPath: p.PkgPath, + Errors: p.Errors, + GoFiles: p.GoFiles, + CompiledGoFiles: p.CompiledGoFiles, + OtherFiles: p.OtherFiles, + EmbedFiles: p.EmbedFiles, + EmbedPatterns: p.EmbedPatterns, + IgnoredFiles: p.IgnoredFiles, + ExportFile: p.ExportFile, + } + if len(p.Imports) > 0 { + flat.Imports = make(map[string]string, len(p.Imports)) + for path, ipkg := range p.Imports { + flat.Imports[path] = ipkg.ID + } + } + return json.Marshal(flat) +} + +// UnmarshalJSON reads in a Package from its JSON format. +// See MarshalJSON for details about the format accepted. +func (p *Package) UnmarshalJSON(b []byte) error { + flat := &flatPackage{} + if err := json.Unmarshal(b, &flat); err != nil { + return err + } + *p = Package{ + ID: flat.ID, + Name: flat.Name, + PkgPath: flat.PkgPath, + Errors: flat.Errors, + GoFiles: flat.GoFiles, + CompiledGoFiles: flat.CompiledGoFiles, + OtherFiles: flat.OtherFiles, + EmbedFiles: flat.EmbedFiles, + EmbedPatterns: flat.EmbedPatterns, + IgnoredFiles: flat.IgnoredFiles, + ExportFile: flat.ExportFile, + } + if len(flat.Imports) > 0 { + p.Imports = make(map[string]*Package, len(flat.Imports)) + for path, id := range flat.Imports { + p.Imports[path] = &Package{ID: id} + } + } + return nil +} + +func (p *Package) String() string { return p.ID } + +// loaderPackage augments Package with state used during the loading phase +type loaderPackage struct { + *Package + importErrors map[string]error // maps each bad import to its error + preds []*loaderPackage // packages that import this one + unfinishedSuccs atomic.Int32 // number of direct imports not yet loaded + color uint8 // for cycle detection + needsrc bool // load from source (Mode >= LoadTypes) + needtypes bool // type information is either requested or depended on + initial bool // package was matched by a pattern + goVersion int // minor version number of go command on PATH +} + +// loader holds the working state of a single call to load. +type loader struct { + pkgs map[string]*loaderPackage // keyed by Package.ID + Config + sizes types.Sizes // non-nil if needed by mode + parseCache map[string]*parseValue + parseCacheMu sync.Mutex + exportMu sync.Mutex // enforces mutual exclusion of exportdata operations + + // Config.Mode contains the implied mode (see impliedLoadMode). + // Implied mode contains all the fields we need the data for. + // In requestedMode there are the actually requested fields. + // We'll zero them out before returning packages to the user. + // This makes it easier for us to get the conditions where + // we need certain modes right. + requestedMode LoadMode +} + +type parseValue struct { + f *ast.File + err error + ready chan struct{} +} + +func newLoader(cfg *Config) *loader { + ld := &loader{ + parseCache: map[string]*parseValue{}, + } + if cfg != nil { + ld.Config = *cfg + // If the user has provided a logger, use it. + ld.Config.Logf = cfg.Logf + } + if ld.Config.Logf == nil { + // If the GOPACKAGESDEBUG environment variable is set to true, + // but the user has not provided a logger, default to log.Printf. + if debug { + ld.Config.Logf = log.Printf + } else { + ld.Config.Logf = func(format string, args ...any) {} + } + } + if ld.Config.Mode == 0 { + ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility. + } + if ld.Config.Env == nil { + ld.Config.Env = os.Environ() + } + if ld.Context == nil { + ld.Context = context.Background() + } + if ld.Dir == "" { + if dir, err := os.Getwd(); err == nil { + ld.Dir = dir + } + } + + // Save the actually requested fields. We'll zero them out before returning packages to the user. + ld.requestedMode = ld.Mode + ld.Mode = impliedLoadMode(ld.Mode) + + if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { + if ld.Fset == nil { + ld.Fset = token.NewFileSet() + } + + // ParseFile is required even in LoadTypes mode + // because we load source if export data is missing. + if ld.ParseFile == nil { + ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { + // We implicitly promise to keep doing ast.Object resolution. :( + const mode = parser.AllErrors | parser.ParseComments + return parser.ParseFile(fset, filename, src, mode) + } + } + } + + return ld +} + +// refine connects the supplied packages into a graph and then adds type +// and syntax information as requested by the LoadMode. +func (ld *loader) refine(response *DriverResponse) ([]*Package, error) { + roots := response.Roots + rootMap := make(map[string]int, len(roots)) + for i, root := range roots { + rootMap[root] = i + } + ld.pkgs = make(map[string]*loaderPackage) + // first pass, fixup and build the map and roots + var initial = make([]*loaderPackage, len(roots)) + for _, pkg := range response.Packages { + rootIndex := -1 + if i, found := rootMap[pkg.ID]; found { + rootIndex = i + } + + // Overlays can invalidate export data. + // TODO(matloob): make this check fine-grained based on dependencies on overlaid files + exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe" + // This package needs type information if the caller requested types and the package is + // either a root, or it's a non-root and the user requested dependencies ... + needtypes := (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) + // This package needs source if the call requested source (or types info, which implies source) + // and the package is either a root, or itas a non- root and the user requested dependencies... + needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) || + // ... or if we need types and the exportData is invalid. We fall back to (incompletely) + // typechecking packages from source if they fail to compile. + (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe" + lpkg := &loaderPackage{ + Package: pkg, + needtypes: needtypes, + needsrc: needsrc, + goVersion: response.GoVersion, + } + ld.pkgs[lpkg.ID] = lpkg + if rootIndex >= 0 { + initial[rootIndex] = lpkg + lpkg.initial = true + } + } + for i, root := range roots { + if initial[i] == nil { + return nil, fmt.Errorf("root package %v is missing", root) + } + } + + // Materialize the import graph if it is needed (NeedImports), + // or if we'll be using loadPackages (Need{Syntax|Types|TypesInfo}). + var leaves []*loaderPackage // packages with no unfinished successors + if ld.Mode&(NeedImports|NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { + const ( + white = 0 // new + grey = 1 // in progress + black = 2 // complete + ) + + // visit traverses the import graph, depth-first, + // and materializes the graph as Packages.Imports. + // + // Valid imports are saved in the Packages.Import map. + // Invalid imports (cycles and missing nodes) are saved in the importErrors map. + // Thus, even in the presence of both kinds of errors, + // the Import graph remains a DAG. + // + // visit returns whether the package needs src or has a transitive + // dependency on a package that does. These are the only packages + // for which we load source code. + var stack []*loaderPackage + var visit func(from, lpkg *loaderPackage) bool + visit = func(from, lpkg *loaderPackage) bool { + if lpkg.color == grey { + panic("internal error: grey node") + } + if lpkg.color == white { + lpkg.color = grey + stack = append(stack, lpkg) // push + stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports + lpkg.Imports = make(map[string]*Package, len(stubs)) + for importPath, ipkg := range stubs { + var importErr error + imp := ld.pkgs[ipkg.ID] + if imp == nil { + // (includes package "C" when DisableCgo) + importErr = fmt.Errorf("missing package: %q", ipkg.ID) + } else if imp.color == grey { + importErr = fmt.Errorf("import cycle: %s", stack) + } + if importErr != nil { + if lpkg.importErrors == nil { + lpkg.importErrors = make(map[string]error) + } + lpkg.importErrors[importPath] = importErr + continue + } + + if visit(lpkg, imp) { + lpkg.needsrc = true + } + lpkg.Imports[importPath] = imp.Package + } + + // -- postorder -- + + // Complete type information is required for the + // immediate dependencies of each source package. + if lpkg.needsrc && ld.Mode&NeedTypes != 0 { + for _, ipkg := range lpkg.Imports { + ld.pkgs[ipkg.ID].needtypes = true + } + } + + // NeedTypeSizes causes TypeSizes to be set even + // on packages for which types aren't needed. + if ld.Mode&NeedTypesSizes != 0 { + lpkg.TypesSizes = ld.sizes + } + + // Add packages with no imports directly to the queue of leaves. + if len(lpkg.Imports) == 0 { + leaves = append(leaves, lpkg) + } + + stack = stack[:len(stack)-1] // pop + lpkg.color = black + } + + // Add edge from predecessor. + if from != nil { + from.unfinishedSuccs.Add(+1) // incref + lpkg.preds = append(lpkg.preds, from) + } + + return lpkg.needsrc + } + + // For each initial package, create its import DAG. + for _, lpkg := range initial { + visit(nil, lpkg) + } + + } else { + // !NeedImports: drop the stub (ID-only) import packages + // that we are not even going to try to resolve. + for _, lpkg := range initial { + lpkg.Imports = nil + } + } + + // Load type data and syntax if needed, starting at + // the initial packages (roots of the import DAG). + if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { + + // We avoid using g.SetLimit to limit concurrency as + // it makes g.Go stop accepting work, which prevents + // workers from enqeuing, and thus finishing, and thus + // allowing the group to make progress: deadlock. + // + // Instead we use the ioLimit and cpuLimit semaphores. + g, _ := errgroup.WithContext(ld.Context) + + // enqueues adds a package to the type-checking queue. + // It must have no unfinished successors. + var enqueue func(*loaderPackage) + enqueue = func(lpkg *loaderPackage) { + g.Go(func() error { + // Parse and type-check. + ld.loadPackage(lpkg) + + // Notify each waiting predecessor, + // and enqueue it when it becomes a leaf. + for _, pred := range lpkg.preds { + if pred.unfinishedSuccs.Add(-1) == 0 { // decref + enqueue(pred) + } + } + + return nil + }) + } + + // Load leaves first, adding new packages + // to the queue as they become leaves. + for _, leaf := range leaves { + enqueue(leaf) + } + + if err := g.Wait(); err != nil { + return nil, err // cancelled + } + } + + // If the context is done, return its error and + // throw out [likely] incomplete packages. + if err := ld.Context.Err(); err != nil { + return nil, err + } + + result := make([]*Package, len(initial)) + for i, lpkg := range initial { + result[i] = lpkg.Package + } + for i := range ld.pkgs { + // Clear all unrequested fields, + // to catch programs that use more than they request. + if ld.requestedMode&NeedName == 0 { + ld.pkgs[i].Name = "" + ld.pkgs[i].PkgPath = "" + } + if ld.requestedMode&NeedFiles == 0 { + ld.pkgs[i].GoFiles = nil + ld.pkgs[i].OtherFiles = nil + ld.pkgs[i].IgnoredFiles = nil + } + if ld.requestedMode&NeedEmbedFiles == 0 { + ld.pkgs[i].EmbedFiles = nil + } + if ld.requestedMode&NeedEmbedPatterns == 0 { + ld.pkgs[i].EmbedPatterns = nil + } + if ld.requestedMode&NeedCompiledGoFiles == 0 { + ld.pkgs[i].CompiledGoFiles = nil + } + if ld.requestedMode&NeedImports == 0 { + ld.pkgs[i].Imports = nil + } + if ld.requestedMode&NeedExportFile == 0 { + ld.pkgs[i].ExportFile = "" + } + if ld.requestedMode&NeedTypes == 0 { + ld.pkgs[i].Types = nil + ld.pkgs[i].IllTyped = false + } + if ld.requestedMode&NeedSyntax == 0 { + ld.pkgs[i].Syntax = nil + } + if ld.requestedMode&(NeedSyntax|NeedTypes|NeedTypesInfo) == 0 { + ld.pkgs[i].Fset = nil + } + if ld.requestedMode&NeedTypesInfo == 0 { + ld.pkgs[i].TypesInfo = nil + } + if ld.requestedMode&NeedTypesSizes == 0 { + ld.pkgs[i].TypesSizes = nil + } + if ld.requestedMode&NeedModule == 0 { + ld.pkgs[i].Module = nil + } + } + + return result, nil +} + +// loadPackage loads/parses/typechecks the specified package. +// It must be called only once per Package, +// after immediate dependencies are loaded. +// Precondition: ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0. +func (ld *loader) loadPackage(lpkg *loaderPackage) { + if lpkg.PkgPath == "unsafe" { + // Fill in the blanks to avoid surprises. + lpkg.Types = types.Unsafe + lpkg.Fset = ld.Fset + lpkg.Syntax = []*ast.File{} + lpkg.TypesInfo = new(types.Info) + lpkg.TypesSizes = ld.sizes + return + } + + // Call NewPackage directly with explicit name. + // This avoids skew between golist and go/types when the files' + // package declarations are inconsistent. + lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) + lpkg.Fset = ld.Fset + + // Start shutting down if the context is done and do not load + // source or export data files. + // Packages that import this one will have ld.Context.Err() != nil. + // ld.Context.Err() will be returned later by refine. + if ld.Context.Err() != nil { + return + } + + // Subtle: we populate all Types fields with an empty Package + // before loading export data so that export data processing + // never has to create a types.Package for an indirect dependency, + // which would then require that such created packages be explicitly + // inserted back into the Import graph as a final step after export data loading. + // (Hence this return is after the Types assignment.) + // The Diamond test exercises this case. + if !lpkg.needtypes && !lpkg.needsrc { + return + } + + // TODO(adonovan): this condition looks wrong: + // I think it should be lpkg.needtypes && !lpg.needsrc, + // so that NeedSyntax without NeedTypes can be satisfied by export data. + if !lpkg.needsrc { + if err := ld.loadFromExportData(lpkg); err != nil { + lpkg.Errors = append(lpkg.Errors, Error{ + Pos: "-", + Msg: err.Error(), + Kind: UnknownError, // e.g. can't find/open/parse export data + }) + } + return // not a source package, don't get syntax trees + } + + appendError := func(err error) { + // Convert various error types into the one true Error. + var errs []Error + switch err := err.(type) { + case Error: + // from driver + errs = append(errs, err) + + case *os.PathError: + // from parser + errs = append(errs, Error{ + Pos: err.Path + ":1", + Msg: err.Err.Error(), + Kind: ParseError, + }) + + case scanner.ErrorList: + // from parser + for _, err := range err { + errs = append(errs, Error{ + Pos: err.Pos.String(), + Msg: err.Msg, + Kind: ParseError, + }) + } + + case types.Error: + // from type checker + lpkg.TypeErrors = append(lpkg.TypeErrors, err) + errs = append(errs, Error{ + Pos: err.Fset.Position(err.Pos).String(), + Msg: err.Msg, + Kind: TypeError, + }) + + default: + // unexpected impoverished error from parser? + errs = append(errs, Error{ + Pos: "-", + Msg: err.Error(), + Kind: UnknownError, + }) + + // If you see this error message, please file a bug. + log.Printf("internal error: error %q (%T) without position", err, err) + } + + lpkg.Errors = append(lpkg.Errors, errs...) + } + + // If the go command on the PATH is newer than the runtime, + // then the go/{scanner,ast,parser,types} packages from the + // standard library may be unable to process the files + // selected by go list. + // + // There is currently no way to downgrade the effective + // version of the go command (see issue 52078), so we proceed + // with the newer go command but, in case of parse or type + // errors, we emit an additional diagnostic. + // + // See: + // - golang.org/issue/52078 (flag to set release tags) + // - golang.org/issue/50825 (gopls legacy version support) + // - golang.org/issue/55883 (go/packages confusing error) + // + // Should we assert a hard minimum of (currently) go1.16 here? + var runtimeVersion int + if _, err := fmt.Sscanf(runtime.Version(), "go1.%d", &runtimeVersion); err == nil && runtimeVersion < lpkg.goVersion { + defer func() { + if len(lpkg.Errors) > 0 { + appendError(Error{ + Pos: "-", + Msg: fmt.Sprintf("This application uses version go1.%d of the source-processing packages but runs version go1.%d of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go.", runtimeVersion, lpkg.goVersion), + Kind: UnknownError, + }) + } + }() + } + + if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" { + // The config requested loading sources and types, but sources are missing. + // Add an error to the package and fall back to loading from export data. + appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError}) + _ = ld.loadFromExportData(lpkg) // ignore any secondary errors + + return // can't get syntax trees for this package + } + + files, errs := ld.parseFiles(lpkg.CompiledGoFiles) + for _, err := range errs { + appendError(err) + } + + lpkg.Syntax = files + if ld.Config.Mode&(NeedTypes|NeedTypesInfo) == 0 { + return + } + + // Start shutting down if the context is done and do not type check. + // Packages that import this one will have ld.Context.Err() != nil. + // ld.Context.Err() will be returned later by refine. + if ld.Context.Err() != nil { + return + } + + // Populate TypesInfo only if needed, as it + // causes the type checker to work much harder. + if ld.Config.Mode&NeedTypesInfo != 0 { + lpkg.TypesInfo = &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Instances: make(map[*ast.Ident]types.Instance), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + FileVersions: make(map[*ast.File]string), + } + } + lpkg.TypesSizes = ld.sizes + + importer := importerFunc(func(path string) (*types.Package, error) { + if path == "unsafe" { + return types.Unsafe, nil + } + + // The imports map is keyed by import path. + ipkg := lpkg.Imports[path] + if ipkg == nil { + if err := lpkg.importErrors[path]; err != nil { + return nil, err + } + // There was skew between the metadata and the + // import declarations, likely due to an edit + // race, or because the ParseFile feature was + // used to supply alternative file contents. + return nil, fmt.Errorf("no metadata for %s", path) + } + + if ipkg.Types != nil && ipkg.Types.Complete() { + return ipkg.Types, nil + } + log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg) + panic("unreachable") + }) + + // type-check + tc := &types.Config{ + Importer: importer, + + // Type-check bodies of functions only in initial packages. + // Example: for import graph A->B->C and initial packages {A,C}, + // we can ignore function bodies in B. + IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, + + Error: appendError, + Sizes: ld.sizes, // may be nil + } + if lpkg.Module != nil && lpkg.Module.GoVersion != "" { + tc.GoVersion = "go" + lpkg.Module.GoVersion + } + if (ld.Mode & typecheckCgo) != 0 { + if !typesinternal.SetUsesCgo(tc) { + appendError(Error{ + Msg: "typecheckCgo requires Go 1.15+", + Kind: ListError, + }) + return + } + } + + // Type-checking is CPU intensive. + cpuLimit <- unit{} // acquire a token + defer func() { <-cpuLimit }() // release a token + + typErr := types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) + lpkg.importErrors = nil // no longer needed + + // In go/types go1.21 and go1.22, Checker.Files failed fast with a + // a "too new" error, without calling tc.Error and without + // proceeding to type-check the package (#66525). + // We rely on the runtimeVersion error to give the suggested remedy. + if typErr != nil && len(lpkg.Errors) == 0 && len(lpkg.Syntax) > 0 { + if msg := typErr.Error(); strings.HasPrefix(msg, "package requires newer Go version") { + appendError(types.Error{ + Fset: ld.Fset, + Pos: lpkg.Syntax[0].Package, + Msg: msg, + }) + } + } + + // If !Cgo, the type-checker uses FakeImportC mode, so + // it doesn't invoke the importer for import "C", + // nor report an error for the import, + // or for any undefined C.f reference. + // We must detect this explicitly and correctly + // mark the package as IllTyped (by reporting an error). + // TODO(adonovan): if these errors are annoying, + // we could just set IllTyped quietly. + if tc.FakeImportC { + outer: + for _, f := range lpkg.Syntax { + for _, imp := range f.Imports { + if imp.Path.Value == `"C"` { + err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} + appendError(err) + break outer + } + } + } + } + + // If types.Checker.Files had an error that was unreported, + // make sure to report the unknown error so the package is illTyped. + if typErr != nil && len(lpkg.Errors) == 0 { + appendError(typErr) + } + + // Record accumulated errors. + illTyped := len(lpkg.Errors) > 0 + if !illTyped { + for _, imp := range lpkg.Imports { + if imp.IllTyped { + illTyped = true + break + } + } + } + lpkg.IllTyped = illTyped +} + +// An importFunc is an implementation of the single-method +// types.Importer interface based on a function value. +type importerFunc func(path string) (*types.Package, error) + +func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } + +// We use a counting semaphore to limit +// the number of parallel I/O calls or CPU threads per process. +var ( + ioLimit = make(chan unit, 20) + cpuLimit = make(chan unit, runtime.GOMAXPROCS(0)) +) + +func (ld *loader) parseFile(filename string) (*ast.File, error) { + ld.parseCacheMu.Lock() + v, ok := ld.parseCache[filename] + if ok { + // cache hit + ld.parseCacheMu.Unlock() + <-v.ready + } else { + // cache miss + v = &parseValue{ready: make(chan struct{})} + ld.parseCache[filename] = v + ld.parseCacheMu.Unlock() + + var src []byte + for f, contents := range ld.Config.Overlay { + // TODO(adonovan): Inefficient for large overlays. + // Do an exact name-based map lookup + // (for nonexistent files) followed by a + // FileID-based map lookup (for existing ones). + if sameFile(f, filename) { + src = contents + break + } + } + var err error + if src == nil { + ioLimit <- unit{} // acquire a token + src, err = os.ReadFile(filename) + <-ioLimit // release a token + } + if err != nil { + v.err = err + } else { + // Parsing is CPU intensive. + cpuLimit <- unit{} // acquire a token + v.f, v.err = ld.ParseFile(ld.Fset, filename, src) + <-cpuLimit // release a token + } + + close(v.ready) + } + return v.f, v.err +} + +// parseFiles reads and parses the Go source files and returns the ASTs +// of the ones that could be at least partially parsed, along with a +// list of I/O and parse errors encountered. +// +// Because files are scanned in parallel, the token.Pos +// positions of the resulting ast.Files are not ordered. +func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { + var ( + n = len(filenames) + parsed = make([]*ast.File, n) + errors = make([]error, n) + ) + var g errgroup.Group + for i, filename := range filenames { + // This creates goroutines unnecessarily in the + // cache-hit case, but that case is uncommon. + g.Go(func() error { + parsed[i], errors[i] = ld.parseFile(filename) + return nil + }) + } + g.Wait() + + // Eliminate nils, preserving order. + var o int + for _, f := range parsed { + if f != nil { + parsed[o] = f + o++ + } + } + parsed = parsed[:o] + + o = 0 + for _, err := range errors { + if err != nil { + errors[o] = err + o++ + } + } + errors = errors[:o] + + return parsed, errors +} + +// sameFile returns true if x and y have the same basename and denote +// the same file. +func sameFile(x, y string) bool { + if x == y { + // It could be the case that y doesn't exist. + // For instance, it may be an overlay file that + // hasn't been written to disk. To handle that case + // let x == y through. (We added the exact absolute path + // string to the CompiledGoFiles list, so the unwritten + // overlay case implies x==y.) + return true + } + if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) + if xi, err := os.Stat(x); err == nil { + if yi, err := os.Stat(y); err == nil { + return os.SameFile(xi, yi) + } + } + } + return false +} + +// loadFromExportData ensures that type information is present for the specified +// package, loading it from an export data file on the first request. +// On success it sets lpkg.Types to a new Package. +func (ld *loader) loadFromExportData(lpkg *loaderPackage) error { + if lpkg.PkgPath == "" { + log.Fatalf("internal error: Package %s has no PkgPath", lpkg) + } + + // Because gcexportdata.Read has the potential to create or + // modify the types.Package for each node in the transitive + // closure of dependencies of lpkg, all exportdata operations + // must be sequential. (Finer-grained locking would require + // changes to the gcexportdata API.) + // + // The exportMu lock guards the lpkg.Types field and the + // types.Package it points to, for each loaderPackage in the graph. + // + // Not all accesses to Package.Pkg need to be protected by exportMu: + // graph ordering ensures that direct dependencies of source + // packages are fully loaded before the importer reads their Pkg field. + ld.exportMu.Lock() + defer ld.exportMu.Unlock() + + if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { + return nil // cache hit + } + + lpkg.IllTyped = true // fail safe + + if lpkg.ExportFile == "" { + // Errors while building export data will have been printed to stderr. + return fmt.Errorf("no export data file") + } + f, err := os.Open(lpkg.ExportFile) + if err != nil { + return err + } + defer f.Close() + + // Read gc export data. + // + // We don't currently support gccgo export data because all + // underlying workspaces use the gc toolchain. (Even build + // systems that support gccgo don't use it for workspace + // queries.) + r, err := gcexportdata.NewReader(f) + if err != nil { + return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + + // Build the view. + // + // The gcexportdata machinery has no concept of package ID. + // It identifies packages by their PkgPath, which although not + // globally unique is unique within the scope of one invocation + // of the linker, type-checker, or gcexportdata. + // + // So, we must build a PkgPath-keyed view of the global + // (conceptually ID-keyed) cache of packages and pass it to + // gcexportdata. The view must contain every existing + // package that might possibly be mentioned by the + // current package---its transitive closure. + // + // In loadPackage, we unconditionally create a types.Package for + // each dependency so that export data loading does not + // create new ones. + // + // TODO(adonovan): it would be simpler and more efficient + // if the export data machinery invoked a callback to + // get-or-create a package instead of a map. + // + view := make(map[string]*types.Package) // view seen by gcexportdata + seen := make(map[*loaderPackage]bool) // all visited packages + var visit func(pkgs map[string]*Package) + visit = func(pkgs map[string]*Package) { + for _, p := range pkgs { + lpkg := ld.pkgs[p.ID] + if !seen[lpkg] { + seen[lpkg] = true + view[lpkg.PkgPath] = lpkg.Types + visit(lpkg.Imports) + } + } + } + visit(lpkg.Imports) + + viewLen := len(view) + 1 // adding the self package + // Parse the export data. + // (May modify incomplete packages in view but not create new ones.) + tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) + if err != nil { + return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + if _, ok := view["go.shape"]; ok { + // Account for the pseudopackage "go.shape" that gets + // created by generic code. + viewLen++ + } + if viewLen != len(view) { + log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath) + } + + lpkg.Types = tpkg + lpkg.IllTyped = false + return nil +} + +// impliedLoadMode returns loadMode with its dependencies. +func impliedLoadMode(loadMode LoadMode) LoadMode { + if loadMode&(NeedDeps|NeedTypes|NeedTypesInfo) != 0 { + // All these things require knowing the import graph. + loadMode |= NeedImports + } + if loadMode&NeedTypes != 0 { + // Types require the GoVersion from Module. + loadMode |= NeedModule + } + + return loadMode +} + +func usesExportData(cfg *Config) bool { + return cfg.Mode&NeedExportFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0 +} + +type unit struct{} diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go new file mode 100644 index 0000000..df14ffd --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/visit.go @@ -0,0 +1,68 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "fmt" + "os" + "sort" +) + +// Visit visits all the packages in the import graph whose roots are +// pkgs, calling the optional pre function the first time each package +// is encountered (preorder), and the optional post function after a +// package's dependencies have been visited (postorder). +// The boolean result of pre(pkg) determines whether +// the imports of package pkg are visited. +func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { + seen := make(map[*Package]bool) + var visit func(*Package) + visit = func(pkg *Package) { + if !seen[pkg] { + seen[pkg] = true + + if pre == nil || pre(pkg) { + paths := make([]string, 0, len(pkg.Imports)) + for path := range pkg.Imports { + paths = append(paths, path) + } + sort.Strings(paths) // Imports is a map, this makes visit stable + for _, path := range paths { + visit(pkg.Imports[path]) + } + } + + if post != nil { + post(pkg) + } + } + } + for _, pkg := range pkgs { + visit(pkg) + } +} + +// PrintErrors prints to os.Stderr the accumulated errors of all +// packages in the import graph rooted at pkgs, dependencies first. +// PrintErrors returns the number of errors printed. +func PrintErrors(pkgs []*Package) int { + var n int + errModules := make(map[*Module]bool) + Visit(pkgs, nil, func(pkg *Package) { + for _, err := range pkg.Errors { + fmt.Fprintln(os.Stderr, err) + n++ + } + + // Print pkg.Module.Error once if present. + mod := pkg.Module + if mod != nil && mod.Error != nil && !errModules[mod] { + errModules[mod] = true + fmt.Fprintln(os.Stderr, mod.Error.Err) + n++ + } + }) + return n +} diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go new file mode 100644 index 0000000..d3c2913 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -0,0 +1,817 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package objectpath defines a naming scheme for types.Objects +// (that is, named entities in Go programs) relative to their enclosing +// package. +// +// Type-checker objects are canonical, so they are usually identified by +// their address in memory (a pointer), but a pointer has meaning only +// within one address space. By contrast, objectpath names allow the +// identity of an object to be sent from one program to another, +// establishing a correspondence between types.Object variables that are +// distinct but logically equivalent. +// +// A single object may have multiple paths. In this example, +// +// type A struct{ X int } +// type B A +// +// the field X has two paths due to its membership of both A and B. +// The For(obj) function always returns one of these paths, arbitrarily +// but consistently. +package objectpath + +import ( + "fmt" + "go/types" + "strconv" + "strings" + + "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/typesinternal" +) + +// TODO(adonovan): think about generic aliases. + +// A Path is an opaque name that identifies a types.Object +// relative to its package. Conceptually, the name consists of a +// sequence of destructuring operations applied to the package scope +// to obtain the original object. +// The name does not include the package itself. +type Path string + +// Encoding +// +// An object path is a textual and (with training) human-readable encoding +// of a sequence of destructuring operators, starting from a types.Package. +// The sequences represent a path through the package/object/type graph. +// We classify these operators by their type: +// +// PO package->object Package.Scope.Lookup +// OT object->type Object.Type +// TT type->type Type.{Elem,Key,{,{,Recv}Type}Params,Results,Underlying,Rhs} [EKPRUTrCa] +// TO type->object Type.{At,Field,Method,Obj} [AFMO] +// +// All valid paths start with a package and end at an object +// and thus may be defined by the regular language: +// +// objectpath = PO (OT TT* TO)* +// +// The concrete encoding follows directly: +// - The only PO operator is Package.Scope.Lookup, which requires an identifier. +// - The only OT operator is Object.Type, +// which we encode as '.' because dot cannot appear in an identifier. +// - The TT operators are encoded as [EKPRUTrCa]; +// two of these ({,Recv}TypeParams) require an integer operand, +// which is encoded as a string of decimal digits. +// - The TO operators are encoded as [AFMO]; +// three of these (At,Field,Method) require an integer operand, +// which is encoded as a string of decimal digits. +// These indices are stable across different representations +// of the same package, even source and export data. +// The indices used are implementation specific and may not correspond to +// the argument to the go/types function. +// +// In the example below, +// +// package p +// +// type T interface { +// f() (a string, b struct{ X int }) +// } +// +// field X has the path "T.UM0.RA1.F0", +// representing the following sequence of operations: +// +// p.Lookup("T") T +// .Type().Underlying().Method(0). f +// .Type().Results().At(1) b +// .Type().Field(0) X +// +// The encoding is not maximally compact---every R or P is +// followed by an A, for example---but this simplifies the +// encoder and decoder. +const ( + // object->type operators + opType = '.' // .Type() (Object) + + // type->type operators + opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map) + opKey = 'K' // .Key() (Map) + opParams = 'P' // .Params() (Signature) + opResults = 'R' // .Results() (Signature) + opUnderlying = 'U' // .Underlying() (Named) + opTypeParam = 'T' // .TypeParams.At(i) (Named, Signature) + opRecvTypeParam = 'r' // .RecvTypeParams.At(i) (Signature) + opConstraint = 'C' // .Constraint() (TypeParam) + opRhs = 'a' // .Rhs() (Alias) + + // type->object operators + opAt = 'A' // .At(i) (Tuple) + opField = 'F' // .Field(i) (Struct) + opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored) + opObj = 'O' // .Obj() (Named, TypeParam) +) + +// For is equivalent to new(Encoder).For(obj). +// +// It may be more efficient to reuse a single Encoder across several calls. +func For(obj types.Object) (Path, error) { + return new(Encoder).For(obj) +} + +// An Encoder amortizes the cost of encoding the paths of multiple objects. +// The zero value of an Encoder is ready to use. +type Encoder struct { + scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects +} + +// For returns the path to an object relative to its package, +// or an error if the object is not accessible from the package's Scope. +// +// The For function guarantees to return a path only for the following objects: +// - package-level types +// - exported package-level non-types +// - methods +// - parameter and result variables +// - struct fields +// These objects are sufficient to define the API of their package. +// The objects described by a package's export data are drawn from this set. +// +// The set of objects accessible from a package's Scope depends on +// whether the package was produced by type-checking syntax, or +// reading export data; the latter may have a smaller Scope since +// export data trims objects that are not reachable from an exported +// declaration. For example, the For function will return a path for +// an exported method of an unexported type that is not reachable +// from any public declaration; this path will cause the Object +// function to fail if called on a package loaded from export data. +// TODO(adonovan): is this a bug or feature? Should this package +// compute accessibility in the same way? +// +// For does not return a path for predeclared names, imported package +// names, local names, and unexported package-level names (except +// types). +// +// Example: given this definition, +// +// package p +// +// type T interface { +// f() (a string, b struct{ X int }) +// } +// +// For(X) would return a path that denotes the following sequence of operations: +// +// p.Scope().Lookup("T") (TypeName T) +// .Type().Underlying().Method(0). (method Func f) +// .Type().Results().At(1) (field Var b) +// .Type().Field(0) (field Var X) +// +// where p is the package (*types.Package) to which X belongs. +func (enc *Encoder) For(obj types.Object) (Path, error) { + pkg := obj.Pkg() + + // This table lists the cases of interest. + // + // Object Action + // ------ ------ + // nil reject + // builtin reject + // pkgname reject + // label reject + // var + // package-level accept + // func param/result accept + // local reject + // struct field accept + // const + // package-level accept + // local reject + // func + // package-level accept + // init functions reject + // concrete method accept + // interface method accept + // type + // package-level accept + // local reject + // + // The only accessible package-level objects are members of pkg itself. + // + // The cases are handled in four steps: + // + // 1. reject nil and builtin + // 2. accept package-level objects + // 3. reject obviously invalid objects + // 4. search the API for the path to the param/result/field/method. + + // 1. reference to nil or builtin? + if pkg == nil { + return "", fmt.Errorf("predeclared %s has no path", obj) + } + scope := pkg.Scope() + + // 2. package-level object? + if scope.Lookup(obj.Name()) == obj { + // Only exported objects (and non-exported types) have a path. + // Non-exported types may be referenced by other objects. + if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() { + return "", fmt.Errorf("no path for non-exported %v", obj) + } + return Path(obj.Name()), nil + } + + // 3. Not a package-level object. + // Reject obviously non-viable cases. + switch obj := obj.(type) { + case *types.TypeName: + if _, ok := types.Unalias(obj.Type()).(*types.TypeParam); !ok { + // With the exception of type parameters, only package-level type names + // have a path. + return "", fmt.Errorf("no path for %v", obj) + } + case *types.Const, // Only package-level constants have a path. + *types.Label, // Labels are function-local. + *types.PkgName: // PkgNames are file-local. + return "", fmt.Errorf("no path for %v", obj) + + case *types.Var: + // Could be: + // - a field (obj.IsField()) + // - a func parameter or result + // - a local var. + // Sadly there is no way to distinguish + // a param/result from a local + // so we must proceed to the find. + + case *types.Func: + // A func, if not package-level, must be a method. + if recv := obj.Type().(*types.Signature).Recv(); recv == nil { + return "", fmt.Errorf("func is not a method: %v", obj) + } + + if path, ok := enc.concreteMethod(obj); ok { + // Fast path for concrete methods that avoids looping over scope. + return path, nil + } + + default: + panic(obj) + } + + // 4. Search the API for the path to the var (field/param/result) or method. + + // First inspect package-level named types. + // In the presence of path aliases, these give + // the best paths because non-types may + // refer to types, but not the reverse. + empty := make([]byte, 0, 48) // initial space + objs := enc.scopeObjects(scope) + for _, o := range objs { + tname, ok := o.(*types.TypeName) + if !ok { + continue // handle non-types in second pass + } + + path := append(empty, o.Name()...) + path = append(path, opType) + + T := o.Type() + if alias, ok := T.(*types.Alias); ok { + if r := findTypeParam(obj, aliases.TypeParams(alias), path, opTypeParam); r != nil { + return Path(r), nil + } + if r := find(obj, aliases.Rhs(alias), append(path, opRhs)); r != nil { + return Path(r), nil + } + + } else if tname.IsAlias() { + // legacy alias + if r := find(obj, T, path); r != nil { + return Path(r), nil + } + + } else if named, ok := T.(*types.Named); ok { + // defined (named) type + if r := findTypeParam(obj, named.TypeParams(), path, opTypeParam); r != nil { + return Path(r), nil + } + if r := find(obj, named.Underlying(), append(path, opUnderlying)); r != nil { + return Path(r), nil + } + } + } + + // Then inspect everything else: + // non-types, and declared methods of defined types. + for _, o := range objs { + path := append(empty, o.Name()...) + if _, ok := o.(*types.TypeName); !ok { + if o.Exported() { + // exported non-type (const, var, func) + if r := find(obj, o.Type(), append(path, opType)); r != nil { + return Path(r), nil + } + } + continue + } + + // Inspect declared methods of defined types. + if T, ok := types.Unalias(o.Type()).(*types.Named); ok { + path = append(path, opType) + // The method index here is always with respect + // to the underlying go/types data structures, + // which ultimately derives from source order + // and must be preserved by export data. + for i := 0; i < T.NumMethods(); i++ { + m := T.Method(i) + path2 := appendOpArg(path, opMethod, i) + if m == obj { + return Path(path2), nil // found declared method + } + if r := find(obj, m.Type(), append(path2, opType)); r != nil { + return Path(r), nil + } + } + } + } + + return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path()) +} + +func appendOpArg(path []byte, op byte, arg int) []byte { + path = append(path, op) + path = strconv.AppendInt(path, int64(arg), 10) + return path +} + +// concreteMethod returns the path for meth, which must have a non-nil receiver. +// The second return value indicates success and may be false if the method is +// an interface method or if it is an instantiated method. +// +// This function is just an optimization that avoids the general scope walking +// approach. You are expected to fall back to the general approach if this +// function fails. +func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { + // Concrete methods can only be declared on package-scoped named types. For + // that reason we can skip the expensive walk over the package scope: the + // path will always be package -> named type -> method. We can trivially get + // the type name from the receiver, and only have to look over the type's + // methods to find the method index. + // + // Methods on generic types require special consideration, however. Consider + // the following package: + // + // L1: type S[T any] struct{} + // L2: func (recv S[A]) Foo() { recv.Bar() } + // L3: func (recv S[B]) Bar() { } + // L4: type Alias = S[int] + // L5: func _[T any]() { var s S[int]; s.Foo() } + // + // The receivers of methods on generic types are instantiations. L2 and L3 + // instantiate S with the type-parameters A and B, which are scoped to the + // respective methods. L4 and L5 each instantiate S with int. Each of these + // instantiations has its own method set, full of methods (and thus objects) + // with receivers whose types are the respective instantiations. In other + // words, we have + // + // S[A].Foo, S[A].Bar + // S[B].Foo, S[B].Bar + // S[int].Foo, S[int].Bar + // + // We may thus be trying to produce object paths for any of these objects. + // + // S[A].Foo and S[B].Bar are the origin methods, and their paths are S.Foo + // and S.Bar, which are the paths that this function naturally produces. + // + // S[A].Bar, S[B].Foo, and both methods on S[int] are instantiations that + // don't correspond to the origin methods. For S[int], this is significant. + // The most precise object path for S[int].Foo, for example, is Alias.Foo, + // not S.Foo. Our function, however, would produce S.Foo, which would + // resolve to a different object. + // + // For S[A].Bar and S[B].Foo it could be argued that S.Bar and S.Foo are + // still the correct paths, since only the origin methods have meaningful + // paths. But this is likely only true for trivial cases and has edge cases. + // Since this function is only an optimization, we err on the side of giving + // up, deferring to the slower but definitely correct algorithm. Most users + // of objectpath will only be giving us origin methods, anyway, as referring + // to instantiated methods is usually not useful. + + if meth.Origin() != meth { + return "", false + } + + _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) + if named == nil { + return "", false + } + + if types.IsInterface(named) { + // Named interfaces don't have to be package-scoped + // + // TODO(dominikh): opt: if scope.Lookup(name) == named, then we can apply this optimization to interface + // methods, too, I think. + return "", false + } + + // Preallocate space for the name, opType, opMethod, and some digits. + name := named.Obj().Name() + path := make([]byte, 0, len(name)+8) + path = append(path, name...) + path = append(path, opType) + + // Method indices are w.r.t. the go/types data structures, + // ultimately deriving from source order, + // which is preserved by export data. + for i := 0; i < named.NumMethods(); i++ { + if named.Method(i) == meth { + path = appendOpArg(path, opMethod, i) + return Path(path), true + } + } + + // Due to golang/go#59944, go/types fails to associate the receiver with + // certain methods on cgo types. + // + // TODO(rfindley): replace this panic once golang/go#59944 is fixed in all Go + // versions gopls supports. + return "", false + // panic(fmt.Sprintf("couldn't find method %s on type %s; methods: %#v", meth, named, enc.namedMethods(named))) +} + +// find finds obj within type T, returning the path to it, or nil if not found. +// +// The seen map is used to short circuit cycles through type parameters. If +// nil, it will be allocated as necessary. +// +// The seenMethods map is used internally to short circuit cycles through +// interface methods, such as occur in the following example: +// +// type I interface { f() interface{I} } +// +// See golang/go#68046 for details. +func find(obj types.Object, T types.Type, path []byte) []byte { + return (&finder{obj: obj}).find(T, path) +} + +// finder closes over search state for a call to find. +type finder struct { + obj types.Object // the sought object + seenTParamNames map[*types.TypeName]bool // for cycle breaking through type parameters + seenMethods map[*types.Func]bool // for cycle breaking through recursive interfaces +} + +func (f *finder) find(T types.Type, path []byte) []byte { + switch T := T.(type) { + case *types.Alias: + return f.find(types.Unalias(T), path) + case *types.Basic, *types.Named: + // Named types belonging to pkg were handled already, + // so T must belong to another package. No path. + return nil + case *types.Pointer: + return f.find(T.Elem(), append(path, opElem)) + case *types.Slice: + return f.find(T.Elem(), append(path, opElem)) + case *types.Array: + return f.find(T.Elem(), append(path, opElem)) + case *types.Chan: + return f.find(T.Elem(), append(path, opElem)) + case *types.Map: + if r := f.find(T.Key(), append(path, opKey)); r != nil { + return r + } + return f.find(T.Elem(), append(path, opElem)) + case *types.Signature: + if r := f.findTypeParam(T.RecvTypeParams(), path, opRecvTypeParam); r != nil { + return r + } + if r := f.findTypeParam(T.TypeParams(), path, opTypeParam); r != nil { + return r + } + if r := f.find(T.Params(), append(path, opParams)); r != nil { + return r + } + return f.find(T.Results(), append(path, opResults)) + case *types.Struct: + for i := 0; i < T.NumFields(); i++ { + fld := T.Field(i) + path2 := appendOpArg(path, opField, i) + if fld == f.obj { + return path2 // found field var + } + if r := f.find(fld.Type(), append(path2, opType)); r != nil { + return r + } + } + return nil + case *types.Tuple: + for i := 0; i < T.Len(); i++ { + v := T.At(i) + path2 := appendOpArg(path, opAt, i) + if v == f.obj { + return path2 // found param/result var + } + if r := f.find(v.Type(), append(path2, opType)); r != nil { + return r + } + } + return nil + case *types.Interface: + for i := 0; i < T.NumMethods(); i++ { + m := T.Method(i) + if f.seenMethods[m] { + return nil + } + path2 := appendOpArg(path, opMethod, i) + if m == f.obj { + return path2 // found interface method + } + if f.seenMethods == nil { + f.seenMethods = make(map[*types.Func]bool) + } + f.seenMethods[m] = true + if r := f.find(m.Type(), append(path2, opType)); r != nil { + return r + } + } + return nil + case *types.TypeParam: + name := T.Obj() + if f.seenTParamNames[name] { + return nil + } + if name == f.obj { + return append(path, opObj) + } + if f.seenTParamNames == nil { + f.seenTParamNames = make(map[*types.TypeName]bool) + } + f.seenTParamNames[name] = true + if r := f.find(T.Constraint(), append(path, opConstraint)); r != nil { + return r + } + return nil + } + panic(T) +} + +func findTypeParam(obj types.Object, list *types.TypeParamList, path []byte, op byte) []byte { + return (&finder{obj: obj}).findTypeParam(list, path, op) +} + +func (f *finder) findTypeParam(list *types.TypeParamList, path []byte, op byte) []byte { + for i := 0; i < list.Len(); i++ { + tparam := list.At(i) + path2 := appendOpArg(path, op, i) + if r := f.find(tparam, path2); r != nil { + return r + } + } + return nil +} + +// Object returns the object denoted by path p within the package pkg. +func Object(pkg *types.Package, p Path) (types.Object, error) { + pathstr := string(p) + if pathstr == "" { + return nil, fmt.Errorf("empty path") + } + + var pkgobj, suffix string + if dot := strings.IndexByte(pathstr, opType); dot < 0 { + pkgobj = pathstr + } else { + pkgobj = pathstr[:dot] + suffix = pathstr[dot:] // suffix starts with "." + } + + obj := pkg.Scope().Lookup(pkgobj) + if obj == nil { + return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj) + } + + // abstraction of *types.{Pointer,Slice,Array,Chan,Map} + type hasElem interface { + Elem() types.Type + } + // abstraction of *types.{Named,Signature} + type hasTypeParams interface { + TypeParams() *types.TypeParamList + } + // abstraction of *types.{Alias,Named,TypeParam} + type hasObj interface { + Obj() *types.TypeName + } + + // The loop state is the pair (t, obj), + // exactly one of which is non-nil, initially obj. + // All suffixes start with '.' (the only object->type operation), + // followed by optional type->type operations, + // then a type->object operation. + // The cycle then repeats. + var t types.Type + for suffix != "" { + code := suffix[0] + suffix = suffix[1:] + + // Codes [AFMTr] have an integer operand. + var index int + switch code { + case opAt, opField, opMethod, opTypeParam, opRecvTypeParam: + rest := strings.TrimLeft(suffix, "0123456789") + numerals := suffix[:len(suffix)-len(rest)] + suffix = rest + i, err := strconv.Atoi(numerals) + if err != nil { + return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code) + } + index = int(i) + case opObj: + // no operand + default: + // The suffix must end with a type->object operation. + if suffix == "" { + return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code) + } + } + + if code == opType { + if t != nil { + return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType) + } + t = obj.Type() + obj = nil + continue + } + + if t == nil { + return nil, fmt.Errorf("invalid path: code %q in object context", code) + } + + // Inv: t != nil, obj == nil + + t = types.Unalias(t) + switch code { + case opElem: + hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t) + } + t = hasElem.Elem() + + case opKey: + mapType, ok := t.(*types.Map) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t) + } + t = mapType.Key() + + case opParams: + sig, ok := t.(*types.Signature) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) + } + t = sig.Params() + + case opResults: + sig, ok := t.(*types.Signature) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) + } + t = sig.Results() + + case opUnderlying: + named, ok := t.(*types.Named) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named)", code, t, t) + } + t = named.Underlying() + + case opRhs: + if alias, ok := t.(*types.Alias); ok { + t = aliases.Rhs(alias) + } else if false && aliases.Enabled() { + // The Enabled check is too expensive, so for now we + // simply assume that aliases are not enabled. + // TODO(adonovan): replace with "if true {" when go1.24 is assured. + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want alias)", code, t, t) + } + + case opTypeParam: + hasTypeParams, ok := t.(hasTypeParams) // Named, Signature + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or signature)", code, t, t) + } + tparams := hasTypeParams.TypeParams() + if n := tparams.Len(); index >= n { + return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) + } + t = tparams.At(index) + + case opRecvTypeParam: + sig, ok := t.(*types.Signature) // Signature + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) + } + rtparams := sig.RecvTypeParams() + if n := rtparams.Len(); index >= n { + return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) + } + t = rtparams.At(index) + + case opConstraint: + tparam, ok := t.(*types.TypeParam) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) + } + t = tparam.Constraint() + + case opAt: + tuple, ok := t.(*types.Tuple) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want tuple)", code, t, t) + } + if n := tuple.Len(); index >= n { + return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) + } + obj = tuple.At(index) + t = nil + + case opField: + structType, ok := t.(*types.Struct) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t) + } + if n := structType.NumFields(); index >= n { + return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n) + } + obj = structType.Field(index) + t = nil + + case opMethod: + switch t := t.(type) { + case *types.Interface: + if index >= t.NumMethods() { + return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) + } + obj = t.Method(index) // Id-ordered + + case *types.Named: + if index >= t.NumMethods() { + return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) + } + obj = t.Method(index) + + default: + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) + } + t = nil + + case opObj: + hasObj, ok := t.(hasObj) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or type param)", code, t, t) + } + obj = hasObj.Obj() + t = nil + + default: + return nil, fmt.Errorf("invalid path: unknown code %q", code) + } + } + + if obj == nil { + panic(p) // path does not end in an object-valued operator + } + + if obj.Pkg() != pkg { + return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj) + } + + return obj, nil // success +} + +// scopeObjects is a memoization of scope objects. +// Callers must not modify the result. +func (enc *Encoder) scopeObjects(scope *types.Scope) []types.Object { + m := enc.scopeMemo + if m == nil { + m = make(map[*types.Scope][]types.Object) + enc.scopeMemo = m + } + objs, ok := m[scope] + if !ok { + names := scope.Names() // allocates and sorts + objs = make([]types.Object, len(names)) + for i, name := range names { + objs[i] = scope.Lookup(name) + } + m[scope] = objs + } + return objs +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go new file mode 100644 index 0000000..5f10f56 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go @@ -0,0 +1,85 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +import ( + "go/ast" + "go/types" + _ "unsafe" // for linkname +) + +// Callee returns the named target of a function call, if any: +// a function, method, builtin, or variable. +// +// Functions and methods may potentially have type parameters. +// +// Note: for calls of instantiated functions and methods, Callee returns +// the corresponding generic function or method on the generic type. +func Callee(info *types.Info, call *ast.CallExpr) types.Object { + obj := info.Uses[usedIdent(info, call.Fun)] + if obj == nil { + return nil + } + if _, ok := obj.(*types.TypeName); ok { + return nil + } + return obj +} + +// StaticCallee returns the target (function or method) of a static function +// call, if any. It returns nil for calls to builtins. +// +// Note: for calls of instantiated functions and methods, StaticCallee returns +// the corresponding generic function or method on the generic type. +func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { + obj := info.Uses[usedIdent(info, call.Fun)] + fn, _ := obj.(*types.Func) + if fn == nil || interfaceMethod(fn) { + return nil + } + return fn +} + +// usedIdent is the implementation of [internal/typesinternal.UsedIdent]. +// It returns the identifier associated with e. +// See typesinternal.UsedIdent for a fuller description. +// This function should live in typesinternal, but cannot because it would +// create an import cycle. +// +//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent +func usedIdent(info *types.Info, e ast.Expr) *ast.Ident { + if info.Types == nil || info.Uses == nil { + panic("one of info.Types or info.Uses is nil; both must be populated") + } + // Look through type instantiation if necessary. + switch d := ast.Unparen(e).(type) { + case *ast.IndexExpr: + if info.Types[d.Index].IsType() { + e = d.X + } + case *ast.IndexListExpr: + e = d.X + } + + switch e := ast.Unparen(e).(type) { + // info.Uses always has the object we want, even for selector expressions. + // We don't need info.Selections. + // See go/types/recording.go:recordSelection. + case *ast.Ident: + return e + case *ast.SelectorExpr: + return e.Sel + } + return nil +} + +// interfaceMethod reports whether its argument is a method of an interface. +// This function should live in typesinternal, but cannot because it would create an import cycle. +// +//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod +func interfaceMethod(f *types.Func) bool { + recv := f.Signature().Recv() + return recv != nil && types.IsInterface(recv.Type()) +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/vendor/golang.org/x/tools/go/types/typeutil/imports.go new file mode 100644 index 0000000..b81ce0c --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/imports.go @@ -0,0 +1,30 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +import "go/types" + +// Dependencies returns all dependencies of the specified packages. +// +// Dependent packages appear in topological order: if package P imports +// package Q, Q appears earlier than P in the result. +// The algorithm follows import statements in the order they +// appear in the source code, so the result is a total order. +func Dependencies(pkgs ...*types.Package) []*types.Package { + var result []*types.Package + seen := make(map[*types.Package]bool) + var visit func(pkgs []*types.Package) + visit = func(pkgs []*types.Package) { + for _, p := range pkgs { + if !seen[p] { + seen[p] = true + visit(p.Imports()) + result = append(result, p) + } + } + } + visit(pkgs) + return result +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go new file mode 100644 index 0000000..b6d542c --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go @@ -0,0 +1,475 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package typeutil defines various utilities for types, such as [Map], +// a hash table that maps [types.Type] to any value. +package typeutil + +import ( + "bytes" + "fmt" + "go/types" + "hash/maphash" + "unsafe" + + "golang.org/x/tools/internal/typeparams" +) + +// Map is a hash-table-based mapping from types (types.Type) to +// arbitrary values. The concrete types that implement +// the Type interface are pointers. Since they are not canonicalized, +// == cannot be used to check for equivalence, and thus we cannot +// simply use a Go map. +// +// Just as with map[K]V, a nil *Map is a valid empty map. +// +// Read-only map operations ([Map.At], [Map.Len], and so on) may +// safely be called concurrently. +// +// TODO(adonovan): deprecate in favor of https://go.dev/issues/69420 +// and 69559, if the latter proposals for a generic hash-map type and +// a types.Hash function are accepted. +type Map struct { + table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused + length int // number of map entries +} + +// entry is an entry (key/value association) in a hash bucket. +type entry struct { + key types.Type + value any +} + +// SetHasher has no effect. +// +// It is a relic of an optimization that is no longer profitable. Do +// not use [Hasher], [MakeHasher], or [SetHasher] in new code. +func (m *Map) SetHasher(Hasher) {} + +// Delete removes the entry with the given key, if any. +// It returns true if the entry was found. +func (m *Map) Delete(key types.Type) bool { + if m != nil && m.table != nil { + hash := hash(key) + bucket := m.table[hash] + for i, e := range bucket { + if e.key != nil && types.Identical(key, e.key) { + // We can't compact the bucket as it + // would disturb iterators. + bucket[i] = entry{} + m.length-- + return true + } + } + } + return false +} + +// At returns the map entry for the given key. +// The result is nil if the entry is not present. +func (m *Map) At(key types.Type) any { + if m != nil && m.table != nil { + for _, e := range m.table[hash(key)] { + if e.key != nil && types.Identical(key, e.key) { + return e.value + } + } + } + return nil +} + +// Set sets the map entry for key to val, +// and returns the previous entry, if any. +func (m *Map) Set(key types.Type, value any) (prev any) { + if m.table != nil { + hash := hash(key) + bucket := m.table[hash] + var hole *entry + for i, e := range bucket { + if e.key == nil { + hole = &bucket[i] + } else if types.Identical(key, e.key) { + prev = e.value + bucket[i].value = value + return + } + } + + if hole != nil { + *hole = entry{key, value} // overwrite deleted entry + } else { + m.table[hash] = append(bucket, entry{key, value}) + } + } else { + hash := hash(key) + m.table = map[uint32][]entry{hash: {entry{key, value}}} + } + + m.length++ + return +} + +// Len returns the number of map entries. +func (m *Map) Len() int { + if m != nil { + return m.length + } + return 0 +} + +// Iterate calls function f on each entry in the map in unspecified order. +// +// If f should mutate the map, Iterate provides the same guarantees as +// Go maps: if f deletes a map entry that Iterate has not yet reached, +// f will not be invoked for it, but if f inserts a map entry that +// Iterate has not yet reached, whether or not f will be invoked for +// it is unspecified. +func (m *Map) Iterate(f func(key types.Type, value any)) { + if m != nil { + for _, bucket := range m.table { + for _, e := range bucket { + if e.key != nil { + f(e.key, e.value) + } + } + } + } +} + +// Keys returns a new slice containing the set of map keys. +// The order is unspecified. +func (m *Map) Keys() []types.Type { + keys := make([]types.Type, 0, m.Len()) + m.Iterate(func(key types.Type, _ any) { + keys = append(keys, key) + }) + return keys +} + +func (m *Map) toString(values bool) string { + if m == nil { + return "{}" + } + var buf bytes.Buffer + fmt.Fprint(&buf, "{") + sep := "" + m.Iterate(func(key types.Type, value any) { + fmt.Fprint(&buf, sep) + sep = ", " + fmt.Fprint(&buf, key) + if values { + fmt.Fprintf(&buf, ": %q", value) + } + }) + fmt.Fprint(&buf, "}") + return buf.String() +} + +// String returns a string representation of the map's entries. +// Values are printed using fmt.Sprintf("%v", v). +// Order is unspecified. +func (m *Map) String() string { + return m.toString(true) +} + +// KeysString returns a string representation of the map's key set. +// Order is unspecified. +func (m *Map) KeysString() string { + return m.toString(false) +} + +// -- Hasher -- + +// hash returns the hash of type t. +// TODO(adonovan): replace by types.Hash when Go proposal #69420 is accepted. +func hash(t types.Type) uint32 { + return theHasher.Hash(t) +} + +// A Hasher provides a [Hasher.Hash] method to map a type to its hash value. +// Hashers are stateless, and all are equivalent. +type Hasher struct{} + +var theHasher Hasher + +// MakeHasher returns Hasher{}. +// Hashers are stateless; all are equivalent. +func MakeHasher() Hasher { return theHasher } + +// Hash computes a hash value for the given type t such that +// Identical(t, t') => Hash(t) == Hash(t'). +func (h Hasher) Hash(t types.Type) uint32 { + return hasher{inGenericSig: false}.hash(t) +} + +// hasher holds the state of a single Hash traversal: whether we are +// inside the signature of a generic function; this is used to +// optimize [hasher.hashTypeParam]. +type hasher struct{ inGenericSig bool } + +// hashString computes the Fowler–Noll–Vo hash of s. +func hashString(s string) uint32 { + var h uint32 + for i := 0; i < len(s); i++ { + h ^= uint32(s[i]) + h *= 16777619 + } + return h +} + +// hash computes the hash of t. +func (h hasher) hash(t types.Type) uint32 { + // See Identical for rationale. + switch t := t.(type) { + case *types.Basic: + return uint32(t.Kind()) + + case *types.Alias: + return h.hash(types.Unalias(t)) + + case *types.Array: + return 9043 + 2*uint32(t.Len()) + 3*h.hash(t.Elem()) + + case *types.Slice: + return 9049 + 2*h.hash(t.Elem()) + + case *types.Struct: + var hash uint32 = 9059 + for i, n := 0, t.NumFields(); i < n; i++ { + f := t.Field(i) + if f.Anonymous() { + hash += 8861 + } + hash += hashString(t.Tag(i)) + hash += hashString(f.Name()) // (ignore f.Pkg) + hash += h.hash(f.Type()) + } + return hash + + case *types.Pointer: + return 9067 + 2*h.hash(t.Elem()) + + case *types.Signature: + var hash uint32 = 9091 + if t.Variadic() { + hash *= 8863 + } + + tparams := t.TypeParams() + if n := tparams.Len(); n > 0 { + h.inGenericSig = true // affects constraints, params, and results + + for i := range n { + tparam := tparams.At(i) + hash += 7 * h.hash(tparam.Constraint()) + } + } + + return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results()) + + case *types.Union: + return h.hashUnion(t) + + case *types.Interface: + // Interfaces are identical if they have the same set of methods, with + // identical names and types, and they have the same set of type + // restrictions. See go/types.identical for more details. + var hash uint32 = 9103 + + // Hash methods. + for i, n := 0, t.NumMethods(); i < n; i++ { + // Method order is not significant. + // Ignore m.Pkg(). + m := t.Method(i) + // Use shallow hash on method signature to + // avoid anonymous interface cycles. + hash += 3*hashString(m.Name()) + 5*h.shallowHash(m.Type()) + } + + // Hash type restrictions. + terms, err := typeparams.InterfaceTermSet(t) + // if err != nil t has invalid type restrictions. + if err == nil { + hash += h.hashTermSet(terms) + } + + return hash + + case *types.Map: + return 9109 + 2*h.hash(t.Key()) + 3*h.hash(t.Elem()) + + case *types.Chan: + return 9127 + 2*uint32(t.Dir()) + 3*h.hash(t.Elem()) + + case *types.Named: + hash := h.hashTypeName(t.Obj()) + targs := t.TypeArgs() + for i := 0; i < targs.Len(); i++ { + targ := targs.At(i) + hash += 2 * h.hash(targ) + } + return hash + + case *types.TypeParam: + return h.hashTypeParam(t) + + case *types.Tuple: + return h.hashTuple(t) + } + + panic(fmt.Sprintf("%T: %v", t, t)) +} + +func (h hasher) hashTuple(tuple *types.Tuple) uint32 { + // See go/types.identicalTypes for rationale. + n := tuple.Len() + hash := 9137 + 2*uint32(n) + for i := range n { + hash += 3 * h.hash(tuple.At(i).Type()) + } + return hash +} + +func (h hasher) hashUnion(t *types.Union) uint32 { + // Hash type restrictions. + terms, err := typeparams.UnionTermSet(t) + // if err != nil t has invalid type restrictions. Fall back on a non-zero + // hash. + if err != nil { + return 9151 + } + return h.hashTermSet(terms) +} + +func (h hasher) hashTermSet(terms []*types.Term) uint32 { + hash := 9157 + 2*uint32(len(terms)) + for _, term := range terms { + // term order is not significant. + termHash := h.hash(term.Type()) + if term.Tilde() { + termHash *= 9161 + } + hash += 3 * termHash + } + return hash +} + +// hashTypeParam returns the hash of a type parameter. +func (h hasher) hashTypeParam(t *types.TypeParam) uint32 { + // Within the signature of a generic function, TypeParams are + // identical if they have the same index and constraint, so we + // hash them based on index. + // + // When we are outside a generic function, free TypeParams are + // identical iff they are the same object, so we can use a + // more discriminating hash consistent with object identity. + // This optimization saves [Map] about 4% when hashing all the + // types.Info.Types in the forward closure of net/http. + if !h.inGenericSig { + // Optimization: outside a generic function signature, + // use a more discrimating hash consistent with object identity. + return h.hashTypeName(t.Obj()) + } + return 9173 + 3*uint32(t.Index()) +} + +var theSeed = maphash.MakeSeed() + +// hashTypeName hashes the pointer of tname. +func (hasher) hashTypeName(tname *types.TypeName) uint32 { + // Since types.Identical uses == to compare TypeNames, + // the Hash function uses maphash.Comparable. + // TODO(adonovan): or will, when it becomes available in go1.24. + // In the meantime we use the pointer's numeric value. + // + // hash := maphash.Comparable(theSeed, tname) + // + // (Another approach would be to hash the name and package + // path, and whether or not it is a package-level typename. It + // is rare for a package to define multiple local types with + // the same name.) + ptr := uintptr(unsafe.Pointer(tname)) + if unsafe.Sizeof(ptr) == 8 { + hash := uint64(ptr) + return uint32(hash ^ (hash >> 32)) + } else { + return uint32(ptr) + } +} + +// shallowHash computes a hash of t without looking at any of its +// element Types, to avoid potential anonymous cycles in the types of +// interface methods. +// +// When an unnamed non-empty interface type appears anywhere among the +// arguments or results of an interface method, there is a potential +// for endless recursion. Consider: +// +// type X interface { m() []*interface { X } } +// +// The problem is that the Methods of the interface in m's result type +// include m itself; there is no mention of the named type X that +// might help us break the cycle. +// (See comment in go/types.identical, case *Interface, for more.) +func (h hasher) shallowHash(t types.Type) uint32 { + // t is the type of an interface method (Signature), + // its params or results (Tuples), or their immediate + // elements (mostly Slice, Pointer, Basic, Named), + // so there's no need to optimize anything else. + switch t := t.(type) { + case *types.Alias: + return h.shallowHash(types.Unalias(t)) + + case *types.Signature: + var hash uint32 = 604171 + if t.Variadic() { + hash *= 971767 + } + // The Signature/Tuple recursion is always finite + // and invariably shallow. + return hash + 1062599*h.shallowHash(t.Params()) + 1282529*h.shallowHash(t.Results()) + + case *types.Tuple: + n := t.Len() + hash := 9137 + 2*uint32(n) + for i := range n { + hash += 53471161 * h.shallowHash(t.At(i).Type()) + } + return hash + + case *types.Basic: + return 45212177 * uint32(t.Kind()) + + case *types.Array: + return 1524181 + 2*uint32(t.Len()) + + case *types.Slice: + return 2690201 + + case *types.Struct: + return 3326489 + + case *types.Pointer: + return 4393139 + + case *types.Union: + return 562448657 + + case *types.Interface: + return 2124679 // no recursion here + + case *types.Map: + return 9109 + + case *types.Chan: + return 9127 + + case *types.Named: + return h.hashTypeName(t.Obj()) + + case *types.TypeParam: + return h.hashTypeParam(t) + } + panic(fmt.Sprintf("shallowHash: %T: %v", t, t)) +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go new file mode 100644 index 0000000..f766602 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go @@ -0,0 +1,71 @@ +// 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. + +// This file implements a cache of method sets. + +package typeutil + +import ( + "go/types" + "sync" +) + +// A MethodSetCache records the method set of each type T for which +// MethodSet(T) is called so that repeat queries are fast. +// The zero value is a ready-to-use cache instance. +type MethodSetCache struct { + mu sync.Mutex + named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N + others map[types.Type]*types.MethodSet // all other types +} + +// MethodSet returns the method set of type T. It is thread-safe. +// +// If cache is nil, this function is equivalent to types.NewMethodSet(T). +// Utility functions can thus expose an optional *MethodSetCache +// parameter to clients that care about performance. +func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet { + if cache == nil { + return types.NewMethodSet(T) + } + cache.mu.Lock() + defer cache.mu.Unlock() + + switch T := types.Unalias(T).(type) { + case *types.Named: + return cache.lookupNamed(T).value + + case *types.Pointer: + if N, ok := types.Unalias(T.Elem()).(*types.Named); ok { + return cache.lookupNamed(N).pointer + } + } + + // all other types + // (The map uses pointer equivalence, not type identity.) + mset := cache.others[T] + if mset == nil { + mset = types.NewMethodSet(T) + if cache.others == nil { + cache.others = make(map[types.Type]*types.MethodSet) + } + cache.others[T] = mset + } + return mset +} + +func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } { + if cache.named == nil { + cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet }) + } + // Avoid recomputing mset(*T) for each distinct Pointer + // instance whose underlying type is a named type. + msets, ok := cache.named[named] + if !ok { + msets.value = types.NewMethodSet(named) + msets.pointer = types.NewMethodSet(types.NewPointer(named)) + cache.named[named] = msets + } + return msets +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/vendor/golang.org/x/tools/go/types/typeutil/ui.go new file mode 100644 index 0000000..9dda6a2 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/ui.go @@ -0,0 +1,53 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +// This file defines utilities for user interfaces that display types. + +import ( + "go/types" +) + +// IntuitiveMethodSet returns the intuitive method set of a type T, +// which is the set of methods you can call on an addressable value of +// that type. +// +// The result always contains MethodSet(T), and is exactly MethodSet(T) +// for interface types and for pointer-to-concrete types. +// For all other concrete types T, the result additionally +// contains each method belonging to *T if there is no identically +// named method on T itself. +// +// This corresponds to user intuition about method sets; +// this function is intended only for user interfaces. +// +// The order of the result is as for types.MethodSet(T). +func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection { + isPointerToConcrete := func(T types.Type) bool { + ptr, ok := types.Unalias(T).(*types.Pointer) + return ok && !types.IsInterface(ptr.Elem()) + } + + var result []*types.Selection + mset := msets.MethodSet(T) + if types.IsInterface(T) || isPointerToConcrete(T) { + for i, n := 0, mset.Len(); i < n; i++ { + result = append(result, mset.At(i)) + } + } else { + // T is some other concrete type. + // Report methods of T and *T, preferring those of T. + pmset := msets.MethodSet(types.NewPointer(T)) + for i, n := 0, pmset.Len(); i < n; i++ { + meth := pmset.At(i) + if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil { + meth = m + } + result = append(result, meth) + } + + } + return result +} diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go new file mode 100644 index 0000000..cb6db88 --- /dev/null +++ b/vendor/golang.org/x/tools/imports/forward.go @@ -0,0 +1,77 @@ +// 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 imports implements a Go pretty-printer (like package "go/format") +// that also adds or removes import statements as necessary. +package imports // import "golang.org/x/tools/imports" + +import ( + "log" + "os" + + "golang.org/x/tools/internal/gocommand" + intimp "golang.org/x/tools/internal/imports" +) + +// Options specifies options for processing files. +type Options struct { + Fragment bool // Accept fragment of a source file (no package statement) + AllErrors bool // Report all errors (not just the first 10 on different lines) + + Comments bool // Print comments (true if nil *Options provided) + TabIndent bool // Use tabs for indent (true if nil *Options provided) + TabWidth int // Tab width (8 if nil *Options provided) + + FormatOnly bool // Disable the insertion and deletion of imports +} + +// Debug controls verbose logging. +var Debug = false + +// LocalPrefix is a comma-separated string of import path prefixes, which, if +// set, instructs Process to sort the import paths with the given prefixes +// into another group after 3rd-party packages. +var LocalPrefix string + +// Process formats and adjusts imports for the provided file. +// If opt is nil the defaults are used, and if src is nil the source +// is read from the filesystem. +// +// Note that filename's directory influences which imports can be chosen, +// so it is important that filename be accurate. +// To process data “as if” it were in filename, pass the data as a non-nil src. +func Process(filename string, src []byte, opt *Options) ([]byte, error) { + var err error + if src == nil { + src, err = os.ReadFile(filename) + if err != nil { + return nil, err + } + } + if opt == nil { + opt = &Options{Comments: true, TabIndent: true, TabWidth: 8} + } + intopt := &intimp.Options{ + Env: &intimp.ProcessEnv{ + GocmdRunner: &gocommand.Runner{}, + }, + LocalPrefix: LocalPrefix, + AllErrors: opt.AllErrors, + Comments: opt.Comments, + FormatOnly: opt.FormatOnly, + Fragment: opt.Fragment, + TabIndent: opt.TabIndent, + TabWidth: opt.TabWidth, + } + if Debug { + intopt.Env.Logf = log.Printf + } + return intimp.Process(filename, src, intopt) +} + +// VendorlessPath returns the devendorized version of the import path ipath. +// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". +func VendorlessPath(ipath string) string { + return intimp.VendorlessPath(ipath) +} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go new file mode 100644 index 0000000..b9425f5 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/aliases/aliases.go @@ -0,0 +1,38 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package aliases + +import ( + "go/token" + "go/types" +) + +// Package aliases defines backward compatible shims +// for the types.Alias type representation added in 1.22. +// This defines placeholders for x/tools until 1.26. + +// NewAlias creates a new TypeName in Package pkg that +// is an alias for the type rhs. +// +// The enabled parameter determines whether the resulting [TypeName]'s +// type is an [types.Alias]. Its value must be the result of a call to +// [Enabled], which computes the effective value of +// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled +// function is expensive and should be called once per task (e.g. +// package import), not once per call to NewAlias. +// +// Precondition: enabled || len(tparams)==0. +// If materialized aliases are disabled, there must not be any type parameters. +func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type, tparams []*types.TypeParam) *types.TypeName { + if enabled { + tname := types.NewTypeName(pos, pkg, name, nil) + SetTypeParams(types.NewAlias(tname, rhs), tparams) + return tname + } + if len(tparams) > 0 { + panic("cannot create an alias with type parameters when gotypesalias is not enabled") + } + return types.NewTypeName(pos, pkg, name, rhs) +} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go new file mode 100644 index 0000000..7716a33 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go @@ -0,0 +1,80 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package aliases + +import ( + "go/ast" + "go/parser" + "go/token" + "go/types" +) + +// Rhs returns the type on the right-hand side of the alias declaration. +func Rhs(alias *types.Alias) types.Type { + if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { + return alias.Rhs() // go1.23+ + } + + // go1.22's Alias didn't have the Rhs method, + // so Unalias is the best we can do. + return types.Unalias(alias) +} + +// TypeParams returns the type parameter list of the alias. +func TypeParams(alias *types.Alias) *types.TypeParamList { + if alias, ok := any(alias).(interface{ TypeParams() *types.TypeParamList }); ok { + return alias.TypeParams() // go1.23+ + } + return nil +} + +// SetTypeParams sets the type parameters of the alias type. +func SetTypeParams(alias *types.Alias, tparams []*types.TypeParam) { + if alias, ok := any(alias).(interface { + SetTypeParams(tparams []*types.TypeParam) + }); ok { + alias.SetTypeParams(tparams) // go1.23+ + } else if len(tparams) > 0 { + panic("cannot set type parameters of an Alias type in go1.22") + } +} + +// TypeArgs returns the type arguments used to instantiate the Alias type. +func TypeArgs(alias *types.Alias) *types.TypeList { + if alias, ok := any(alias).(interface{ TypeArgs() *types.TypeList }); ok { + return alias.TypeArgs() // go1.23+ + } + return nil // empty (go1.22) +} + +// Origin returns the generic Alias type of which alias is an instance. +// If alias is not an instance of a generic alias, Origin returns alias. +func Origin(alias *types.Alias) *types.Alias { + if alias, ok := any(alias).(interface{ Origin() *types.Alias }); ok { + return alias.Origin() // go1.23+ + } + return alias // not an instance of a generic alias (go1.22) +} + +// Enabled reports whether [NewAlias] should create [types.Alias] types. +// +// This function is expensive! Call it sparingly. +func Enabled() bool { + // The only reliable way to compute the answer is to invoke go/types. + // We don't parse the GODEBUG environment variable, because + // (a) it's tricky to do so in a manner that is consistent + // with the godebug package; in particular, a simple + // substring check is not good enough. The value is a + // rightmost-wins list of options. But more importantly: + // (b) it is impossible to detect changes to the effective + // setting caused by os.Setenv("GODEBUG"), as happens in + // many tests. Therefore any attempt to cache the result + // is just incorrect. + fset := token.NewFileSet() + f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", parser.SkipObjectResolution) + pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) + _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) + return enabled +} diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go new file mode 100644 index 0000000..a6cf0e6 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/core/event.go @@ -0,0 +1,85 @@ +// 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 core provides support for event based telemetry. +package core + +import ( + "fmt" + "time" + + "golang.org/x/tools/internal/event/label" +) + +// Event holds the information about an event of note that occurred. +type Event struct { + at time.Time + + // As events are often on the stack, storing the first few labels directly + // in the event can avoid an allocation at all for the very common cases of + // simple events. + // The length needs to be large enough to cope with the majority of events + // but no so large as to cause undue stack pressure. + // A log message with two values will use 3 labels (one for each value and + // one for the message itself). + + static [3]label.Label // inline storage for the first few labels + dynamic []label.Label // dynamically sized storage for remaining labels +} + +// eventLabelMap implements label.Map for a the labels of an Event. +type eventLabelMap struct { + event Event +} + +func (ev Event) At() time.Time { return ev.at } + +func (ev Event) Format(f fmt.State, r rune) { + if !ev.at.IsZero() { + fmt.Fprint(f, ev.at.Format("2006/01/02 15:04:05 ")) + } + for index := 0; ev.Valid(index); index++ { + if l := ev.Label(index); l.Valid() { + fmt.Fprintf(f, "\n\t%v", l) + } + } +} + +func (ev Event) Valid(index int) bool { + return index >= 0 && index < len(ev.static)+len(ev.dynamic) +} + +func (ev Event) Label(index int) label.Label { + if index < len(ev.static) { + return ev.static[index] + } + return ev.dynamic[index-len(ev.static)] +} + +func (ev Event) Find(key label.Key) label.Label { + for _, l := range ev.static { + if l.Key() == key { + return l + } + } + for _, l := range ev.dynamic { + if l.Key() == key { + return l + } + } + return label.Label{} +} + +func MakeEvent(static [3]label.Label, labels []label.Label) Event { + return Event{ + static: static, + dynamic: labels, + } +} + +// CloneEvent event returns a copy of the event with the time adjusted to at. +func CloneEvent(ev Event, at time.Time) Event { + ev.at = at + return ev +} diff --git a/vendor/golang.org/x/tools/internal/event/core/export.go b/vendor/golang.org/x/tools/internal/event/core/export.go new file mode 100644 index 0000000..05f3a9a --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/core/export.go @@ -0,0 +1,70 @@ +// 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 core + +import ( + "context" + "sync/atomic" + "time" + "unsafe" + + "golang.org/x/tools/internal/event/label" +) + +// Exporter is a function that handles events. +// It may return a modified context and event. +type Exporter func(context.Context, Event, label.Map) context.Context + +var ( + exporter unsafe.Pointer +) + +// SetExporter sets the global exporter function that handles all events. +// The exporter is called synchronously from the event call site, so it should +// return quickly so as not to hold up user code. +func SetExporter(e Exporter) { + p := unsafe.Pointer(&e) + if e == nil { + // &e is always valid, and so p is always valid, but for the early abort + // of ProcessEvent to be efficient it needs to make the nil check on the + // pointer without having to dereference it, so we make the nil function + // also a nil pointer + p = nil + } + atomic.StorePointer(&exporter, p) +} + +// deliver is called to deliver an event to the supplied exporter. +// it will fill in the time. +func deliver(ctx context.Context, exporter Exporter, ev Event) context.Context { + // add the current time to the event + ev.at = time.Now() + // hand the event off to the current exporter + return exporter(ctx, ev, ev) +} + +// Export is called to deliver an event to the global exporter if set. +func Export(ctx context.Context, ev Event) context.Context { + // get the global exporter and abort early if there is not one + exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) + if exporterPtr == nil { + return ctx + } + return deliver(ctx, *exporterPtr, ev) +} + +// ExportPair is called to deliver a start event to the supplied exporter. +// It also returns a function that will deliver the end event to the same +// exporter. +// It will fill in the time. +func ExportPair(ctx context.Context, begin, end Event) (context.Context, func()) { + // get the global exporter and abort early if there is not one + exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) + if exporterPtr == nil { + return ctx, func() {} + } + ctx = deliver(ctx, *exporterPtr, begin) + return ctx, func() { deliver(ctx, *exporterPtr, end) } +} diff --git a/vendor/golang.org/x/tools/internal/event/core/fast.go b/vendor/golang.org/x/tools/internal/event/core/fast.go new file mode 100644 index 0000000..06c1d46 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/core/fast.go @@ -0,0 +1,77 @@ +// 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 core + +import ( + "context" + + "golang.org/x/tools/internal/event/keys" + "golang.org/x/tools/internal/event/label" +) + +// Log1 takes a message and one label delivers a log event to the exporter. +// It is a customized version of Print that is faster and does no allocation. +func Log1(ctx context.Context, message string, t1 label.Label) { + Export(ctx, MakeEvent([3]label.Label{ + keys.Msg.Of(message), + t1, + }, nil)) +} + +// Log2 takes a message and two labels and delivers a log event to the exporter. +// It is a customized version of Print that is faster and does no allocation. +func Log2(ctx context.Context, message string, t1 label.Label, t2 label.Label) { + Export(ctx, MakeEvent([3]label.Label{ + keys.Msg.Of(message), + t1, + t2, + }, nil)) +} + +// Metric1 sends a label event to the exporter with the supplied labels. +func Metric1(ctx context.Context, t1 label.Label) context.Context { + return Export(ctx, MakeEvent([3]label.Label{ + keys.Metric.New(), + t1, + }, nil)) +} + +// Metric2 sends a label event to the exporter with the supplied labels. +func Metric2(ctx context.Context, t1, t2 label.Label) context.Context { + return Export(ctx, MakeEvent([3]label.Label{ + keys.Metric.New(), + t1, + t2, + }, nil)) +} + +// Start1 sends a span start event with the supplied label list to the exporter. +// It also returns a function that will end the span, which should normally be +// deferred. +func Start1(ctx context.Context, name string, t1 label.Label) (context.Context, func()) { + return ExportPair(ctx, + MakeEvent([3]label.Label{ + keys.Start.Of(name), + t1, + }, nil), + MakeEvent([3]label.Label{ + keys.End.New(), + }, nil)) +} + +// Start2 sends a span start event with the supplied label list to the exporter. +// It also returns a function that will end the span, which should normally be +// deferred. +func Start2(ctx context.Context, name string, t1, t2 label.Label) (context.Context, func()) { + return ExportPair(ctx, + MakeEvent([3]label.Label{ + keys.Start.Of(name), + t1, + t2, + }, nil), + MakeEvent([3]label.Label{ + keys.End.New(), + }, nil)) +} diff --git a/vendor/golang.org/x/tools/internal/event/doc.go b/vendor/golang.org/x/tools/internal/event/doc.go new file mode 100644 index 0000000..5dc6e6b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/doc.go @@ -0,0 +1,7 @@ +// 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 event provides a set of packages that cover the main +// concepts of telemetry in an implementation agnostic way. +package event diff --git a/vendor/golang.org/x/tools/internal/event/event.go b/vendor/golang.org/x/tools/internal/event/event.go new file mode 100644 index 0000000..4d55e57 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/event.go @@ -0,0 +1,127 @@ +// 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 event + +import ( + "context" + + "golang.org/x/tools/internal/event/core" + "golang.org/x/tools/internal/event/keys" + "golang.org/x/tools/internal/event/label" +) + +// Exporter is a function that handles events. +// It may return a modified context and event. +type Exporter func(context.Context, core.Event, label.Map) context.Context + +// SetExporter sets the global exporter function that handles all events. +// The exporter is called synchronously from the event call site, so it should +// return quickly so as not to hold up user code. +func SetExporter(e Exporter) { + core.SetExporter(core.Exporter(e)) +} + +// Log takes a message and a label list and combines them into a single event +// before delivering them to the exporter. +func Log(ctx context.Context, message string, labels ...label.Label) { + core.Export(ctx, core.MakeEvent([3]label.Label{ + keys.Msg.Of(message), + }, labels)) +} + +// IsLog returns true if the event was built by the Log function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsLog(ev core.Event) bool { + return ev.Label(0).Key() == keys.Msg +} + +// Error takes a message and a label list and combines them into a single event +// before delivering them to the exporter. It captures the error in the +// delivered event. +func Error(ctx context.Context, message string, err error, labels ...label.Label) { + core.Export(ctx, core.MakeEvent([3]label.Label{ + keys.Msg.Of(message), + keys.Err.Of(err), + }, labels)) +} + +// IsError returns true if the event was built by the Error function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsError(ev core.Event) bool { + return ev.Label(0).Key() == keys.Msg && + ev.Label(1).Key() == keys.Err +} + +// Metric sends a label event to the exporter with the supplied labels. +func Metric(ctx context.Context, labels ...label.Label) { + core.Export(ctx, core.MakeEvent([3]label.Label{ + keys.Metric.New(), + }, labels)) +} + +// IsMetric returns true if the event was built by the Metric function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsMetric(ev core.Event) bool { + return ev.Label(0).Key() == keys.Metric +} + +// Label sends a label event to the exporter with the supplied labels. +func Label(ctx context.Context, labels ...label.Label) context.Context { + return core.Export(ctx, core.MakeEvent([3]label.Label{ + keys.Label.New(), + }, labels)) +} + +// IsLabel returns true if the event was built by the Label function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsLabel(ev core.Event) bool { + return ev.Label(0).Key() == keys.Label +} + +// Start sends a span start event with the supplied label list to the exporter. +// It also returns a function that will end the span, which should normally be +// deferred. +func Start(ctx context.Context, name string, labels ...label.Label) (context.Context, func()) { + return core.ExportPair(ctx, + core.MakeEvent([3]label.Label{ + keys.Start.Of(name), + }, labels), + core.MakeEvent([3]label.Label{ + keys.End.New(), + }, nil)) +} + +// IsStart returns true if the event was built by the Start function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsStart(ev core.Event) bool { + return ev.Label(0).Key() == keys.Start +} + +// IsEnd returns true if the event was built by the End function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsEnd(ev core.Event) bool { + return ev.Label(0).Key() == keys.End +} + +// Detach returns a context without an associated span. +// This allows the creation of spans that are not children of the current span. +func Detach(ctx context.Context) context.Context { + return core.Export(ctx, core.MakeEvent([3]label.Label{ + keys.Detach.New(), + }, nil)) +} + +// IsDetach returns true if the event was built by the Detach function. +// It is intended to be used in exporters to identify the semantics of the +// event when deciding what to do with it. +func IsDetach(ev core.Event) bool { + return ev.Label(0).Key() == keys.Detach +} diff --git a/vendor/golang.org/x/tools/internal/event/keys/keys.go b/vendor/golang.org/x/tools/internal/event/keys/keys.go new file mode 100644 index 0000000..4cfa51b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/keys/keys.go @@ -0,0 +1,564 @@ +// 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 keys + +import ( + "fmt" + "io" + "math" + "strconv" + + "golang.org/x/tools/internal/event/label" +) + +// Value represents a key for untyped values. +type Value struct { + name string + description string +} + +// New creates a new Key for untyped values. +func New(name, description string) *Value { + return &Value{name: name, description: description} +} + +func (k *Value) Name() string { return k.name } +func (k *Value) Description() string { return k.description } + +func (k *Value) Format(w io.Writer, buf []byte, l label.Label) { + fmt.Fprint(w, k.From(l)) +} + +// Get can be used to get a label for the key from a label.Map. +func (k *Value) Get(lm label.Map) any { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return nil +} + +// From can be used to get a value from a Label. +func (k *Value) From(t label.Label) any { return t.UnpackValue() } + +// Of creates a new Label with this key and the supplied value. +func (k *Value) Of(value any) label.Label { return label.OfValue(k, value) } + +// Tag represents a key for tagging labels that have no value. +// These are used when the existence of the label is the entire information it +// carries, such as marking events to be of a specific kind, or from a specific +// package. +type Tag struct { + name string + description string +} + +// NewTag creates a new Key for tagging labels. +func NewTag(name, description string) *Tag { + return &Tag{name: name, description: description} +} + +func (k *Tag) Name() string { return k.name } +func (k *Tag) Description() string { return k.description } + +func (k *Tag) Format(w io.Writer, buf []byte, l label.Label) {} + +// New creates a new Label with this key. +func (k *Tag) New() label.Label { return label.OfValue(k, nil) } + +// Int represents a key +type Int struct { + name string + description string +} + +// NewInt creates a new Key for int values. +func NewInt(name, description string) *Int { + return &Int{name: name, description: description} +} + +func (k *Int) Name() string { return k.name } +func (k *Int) Description() string { return k.description } + +func (k *Int) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Int) Of(v int) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Int) Get(lm label.Map) int { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Int) From(t label.Label) int { return int(t.Unpack64()) } + +// Int8 represents a key +type Int8 struct { + name string + description string +} + +// NewInt8 creates a new Key for int8 values. +func NewInt8(name, description string) *Int8 { + return &Int8{name: name, description: description} +} + +func (k *Int8) Name() string { return k.name } +func (k *Int8) Description() string { return k.description } + +func (k *Int8) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Int8) Of(v int8) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Int8) Get(lm label.Map) int8 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Int8) From(t label.Label) int8 { return int8(t.Unpack64()) } + +// Int16 represents a key +type Int16 struct { + name string + description string +} + +// NewInt16 creates a new Key for int16 values. +func NewInt16(name, description string) *Int16 { + return &Int16{name: name, description: description} +} + +func (k *Int16) Name() string { return k.name } +func (k *Int16) Description() string { return k.description } + +func (k *Int16) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Int16) Of(v int16) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Int16) Get(lm label.Map) int16 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Int16) From(t label.Label) int16 { return int16(t.Unpack64()) } + +// Int32 represents a key +type Int32 struct { + name string + description string +} + +// NewInt32 creates a new Key for int32 values. +func NewInt32(name, description string) *Int32 { + return &Int32{name: name, description: description} +} + +func (k *Int32) Name() string { return k.name } +func (k *Int32) Description() string { return k.description } + +func (k *Int32) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Int32) Of(v int32) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Int32) Get(lm label.Map) int32 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Int32) From(t label.Label) int32 { return int32(t.Unpack64()) } + +// Int64 represents a key +type Int64 struct { + name string + description string +} + +// NewInt64 creates a new Key for int64 values. +func NewInt64(name, description string) *Int64 { + return &Int64{name: name, description: description} +} + +func (k *Int64) Name() string { return k.name } +func (k *Int64) Description() string { return k.description } + +func (k *Int64) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendInt(buf, k.From(l), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Int64) Of(v int64) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Int64) Get(lm label.Map) int64 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Int64) From(t label.Label) int64 { return int64(t.Unpack64()) } + +// UInt represents a key +type UInt struct { + name string + description string +} + +// NewUInt creates a new Key for uint values. +func NewUInt(name, description string) *UInt { + return &UInt{name: name, description: description} +} + +func (k *UInt) Name() string { return k.name } +func (k *UInt) Description() string { return k.description } + +func (k *UInt) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *UInt) Of(v uint) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *UInt) Get(lm label.Map) uint { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *UInt) From(t label.Label) uint { return uint(t.Unpack64()) } + +// UInt8 represents a key +type UInt8 struct { + name string + description string +} + +// NewUInt8 creates a new Key for uint8 values. +func NewUInt8(name, description string) *UInt8 { + return &UInt8{name: name, description: description} +} + +func (k *UInt8) Name() string { return k.name } +func (k *UInt8) Description() string { return k.description } + +func (k *UInt8) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *UInt8) Of(v uint8) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *UInt8) Get(lm label.Map) uint8 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *UInt8) From(t label.Label) uint8 { return uint8(t.Unpack64()) } + +// UInt16 represents a key +type UInt16 struct { + name string + description string +} + +// NewUInt16 creates a new Key for uint16 values. +func NewUInt16(name, description string) *UInt16 { + return &UInt16{name: name, description: description} +} + +func (k *UInt16) Name() string { return k.name } +func (k *UInt16) Description() string { return k.description } + +func (k *UInt16) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *UInt16) Of(v uint16) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *UInt16) Get(lm label.Map) uint16 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *UInt16) From(t label.Label) uint16 { return uint16(t.Unpack64()) } + +// UInt32 represents a key +type UInt32 struct { + name string + description string +} + +// NewUInt32 creates a new Key for uint32 values. +func NewUInt32(name, description string) *UInt32 { + return &UInt32{name: name, description: description} +} + +func (k *UInt32) Name() string { return k.name } +func (k *UInt32) Description() string { return k.description } + +func (k *UInt32) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *UInt32) Of(v uint32) label.Label { return label.Of64(k, uint64(v)) } + +// Get can be used to get a label for the key from a label.Map. +func (k *UInt32) Get(lm label.Map) uint32 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *UInt32) From(t label.Label) uint32 { return uint32(t.Unpack64()) } + +// UInt64 represents a key +type UInt64 struct { + name string + description string +} + +// NewUInt64 creates a new Key for uint64 values. +func NewUInt64(name, description string) *UInt64 { + return &UInt64{name: name, description: description} +} + +func (k *UInt64) Name() string { return k.name } +func (k *UInt64) Description() string { return k.description } + +func (k *UInt64) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendUint(buf, k.From(l), 10)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *UInt64) Of(v uint64) label.Label { return label.Of64(k, v) } + +// Get can be used to get a label for the key from a label.Map. +func (k *UInt64) Get(lm label.Map) uint64 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *UInt64) From(t label.Label) uint64 { return t.Unpack64() } + +// Float32 represents a key +type Float32 struct { + name string + description string +} + +// NewFloat32 creates a new Key for float32 values. +func NewFloat32(name, description string) *Float32 { + return &Float32{name: name, description: description} +} + +func (k *Float32) Name() string { return k.name } +func (k *Float32) Description() string { return k.description } + +func (k *Float32) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendFloat(buf, float64(k.From(l)), 'E', -1, 32)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Float32) Of(v float32) label.Label { + return label.Of64(k, uint64(math.Float32bits(v))) +} + +// Get can be used to get a label for the key from a label.Map. +func (k *Float32) Get(lm label.Map) float32 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Float32) From(t label.Label) float32 { + return math.Float32frombits(uint32(t.Unpack64())) +} + +// Float64 represents a key +type Float64 struct { + name string + description string +} + +// NewFloat64 creates a new Key for int64 values. +func NewFloat64(name, description string) *Float64 { + return &Float64{name: name, description: description} +} + +func (k *Float64) Name() string { return k.name } +func (k *Float64) Description() string { return k.description } + +func (k *Float64) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendFloat(buf, k.From(l), 'E', -1, 64)) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Float64) Of(v float64) label.Label { + return label.Of64(k, math.Float64bits(v)) +} + +// Get can be used to get a label for the key from a label.Map. +func (k *Float64) Get(lm label.Map) float64 { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return 0 +} + +// From can be used to get a value from a Label. +func (k *Float64) From(t label.Label) float64 { + return math.Float64frombits(t.Unpack64()) +} + +// String represents a key +type String struct { + name string + description string +} + +// NewString creates a new Key for int64 values. +func NewString(name, description string) *String { + return &String{name: name, description: description} +} + +func (k *String) Name() string { return k.name } +func (k *String) Description() string { return k.description } + +func (k *String) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendQuote(buf, k.From(l))) +} + +// Of creates a new Label with this key and the supplied value. +func (k *String) Of(v string) label.Label { return label.OfString(k, v) } + +// Get can be used to get a label for the key from a label.Map. +func (k *String) Get(lm label.Map) string { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return "" +} + +// From can be used to get a value from a Label. +func (k *String) From(t label.Label) string { return t.UnpackString() } + +// Boolean represents a key +type Boolean struct { + name string + description string +} + +// NewBoolean creates a new Key for bool values. +func NewBoolean(name, description string) *Boolean { + return &Boolean{name: name, description: description} +} + +func (k *Boolean) Name() string { return k.name } +func (k *Boolean) Description() string { return k.description } + +func (k *Boolean) Format(w io.Writer, buf []byte, l label.Label) { + w.Write(strconv.AppendBool(buf, k.From(l))) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Boolean) Of(v bool) label.Label { + if v { + return label.Of64(k, 1) + } + return label.Of64(k, 0) +} + +// Get can be used to get a label for the key from a label.Map. +func (k *Boolean) Get(lm label.Map) bool { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return false +} + +// From can be used to get a value from a Label. +func (k *Boolean) From(t label.Label) bool { return t.Unpack64() > 0 } + +// Error represents a key +type Error struct { + name string + description string +} + +// NewError creates a new Key for int64 values. +func NewError(name, description string) *Error { + return &Error{name: name, description: description} +} + +func (k *Error) Name() string { return k.name } +func (k *Error) Description() string { return k.description } + +func (k *Error) Format(w io.Writer, buf []byte, l label.Label) { + io.WriteString(w, k.From(l).Error()) +} + +// Of creates a new Label with this key and the supplied value. +func (k *Error) Of(v error) label.Label { return label.OfValue(k, v) } + +// Get can be used to get a label for the key from a label.Map. +func (k *Error) Get(lm label.Map) error { + if t := lm.Find(k); t.Valid() { + return k.From(t) + } + return nil +} + +// From can be used to get a value from a Label. +func (k *Error) From(t label.Label) error { + err, _ := t.UnpackValue().(error) + return err +} diff --git a/vendor/golang.org/x/tools/internal/event/keys/standard.go b/vendor/golang.org/x/tools/internal/event/keys/standard.go new file mode 100644 index 0000000..7e95866 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/keys/standard.go @@ -0,0 +1,22 @@ +// 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 keys + +var ( + // Msg is a key used to add message strings to label lists. + Msg = NewString("message", "a readable message") + // Label is a key used to indicate an event adds labels to the context. + Label = NewTag("label", "a label context marker") + // Start is used for things like traces that have a name. + Start = NewString("start", "span start") + // Metric is a key used to indicate an event records metrics. + End = NewTag("end", "a span end marker") + // Metric is a key used to indicate an event records metrics. + Detach = NewTag("detach", "a span detach marker") + // Err is a key used to add error values to label lists. + Err = NewError("error", "an error that occurred") + // Metric is a key used to indicate an event records metrics. + Metric = NewTag("metric", "a metric event marker") +) diff --git a/vendor/golang.org/x/tools/internal/event/keys/util.go b/vendor/golang.org/x/tools/internal/event/keys/util.go new file mode 100644 index 0000000..c0e8e73 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/keys/util.go @@ -0,0 +1,21 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package keys + +import ( + "sort" + "strings" +) + +// Join returns a canonical join of the keys in S: +// a sorted comma-separated string list. +func Join[S ~[]T, T ~string](s S) string { + strs := make([]string, 0, len(s)) + for _, v := range s { + strs = append(strs, string(v)) + } + sort.Strings(strs) + return strings.Join(strs, ",") +} diff --git a/vendor/golang.org/x/tools/internal/event/label/label.go b/vendor/golang.org/x/tools/internal/event/label/label.go new file mode 100644 index 0000000..92a3910 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/label/label.go @@ -0,0 +1,214 @@ +// 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 label + +import ( + "fmt" + "io" + "reflect" + "slices" + "unsafe" +) + +// Key is used as the identity of a Label. +// Keys are intended to be compared by pointer only, the name should be unique +// for communicating with external systems, but it is not required or enforced. +type Key interface { + // Name returns the key name. + Name() string + // Description returns a string that can be used to describe the value. + Description() string + + // Format is used in formatting to append the value of the label to the + // supplied buffer. + // The formatter may use the supplied buf as a scratch area to avoid + // allocations. + Format(w io.Writer, buf []byte, l Label) +} + +// Label holds a key and value pair. +// It is normally used when passing around lists of labels. +type Label struct { + key Key + packed uint64 + untyped any +} + +// Map is the interface to a collection of Labels indexed by key. +type Map interface { + // Find returns the label that matches the supplied key. + Find(key Key) Label +} + +// List is the interface to something that provides an iterable +// list of labels. +// Iteration should start from 0 and continue until Valid returns false. +type List interface { + // Valid returns true if the index is within range for the list. + // It does not imply the label at that index will itself be valid. + Valid(index int) bool + // Label returns the label at the given index. + Label(index int) Label +} + +// list implements LabelList for a list of Labels. +type list struct { + labels []Label +} + +// filter wraps a LabelList filtering out specific labels. +type filter struct { + keys []Key + underlying List +} + +// listMap implements LabelMap for a simple list of labels. +type listMap struct { + labels []Label +} + +// mapChain implements LabelMap for a list of underlying LabelMap. +type mapChain struct { + maps []Map +} + +// OfValue creates a new label from the key and value. +// This method is for implementing new key types, label creation should +// normally be done with the Of method of the key. +func OfValue(k Key, value any) Label { return Label{key: k, untyped: value} } + +// UnpackValue assumes the label was built using LabelOfValue and returns the value +// that was passed to that constructor. +// This method is for implementing new key types, for type safety normal +// access should be done with the From method of the key. +func (t Label) UnpackValue() any { return t.untyped } + +// Of64 creates a new label from a key and a uint64. This is often +// used for non uint64 values that can be packed into a uint64. +// This method is for implementing new key types, label creation should +// normally be done with the Of method of the key. +func Of64(k Key, v uint64) Label { return Label{key: k, packed: v} } + +// Unpack64 assumes the label was built using LabelOf64 and returns the value that +// was passed to that constructor. +// This method is for implementing new key types, for type safety normal +// access should be done with the From method of the key. +func (t Label) Unpack64() uint64 { return t.packed } + +type stringptr unsafe.Pointer + +// OfString creates a new label from a key and a string. +// This method is for implementing new key types, label creation should +// normally be done with the Of method of the key. +func OfString(k Key, v string) Label { + hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) + return Label{ + key: k, + packed: uint64(hdr.Len), + untyped: stringptr(hdr.Data), + } +} + +// UnpackString assumes the label was built using LabelOfString and returns the +// value that was passed to that constructor. +// This method is for implementing new key types, for type safety normal +// access should be done with the From method of the key. +func (t Label) UnpackString() string { + var v string + hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) + hdr.Data = uintptr(t.untyped.(stringptr)) + hdr.Len = int(t.packed) + return v +} + +// Valid returns true if the Label is a valid one (it has a key). +func (t Label) Valid() bool { return t.key != nil } + +// Key returns the key of this Label. +func (t Label) Key() Key { return t.key } + +// Format is used for debug printing of labels. +func (t Label) Format(f fmt.State, r rune) { + if !t.Valid() { + io.WriteString(f, `nil`) + return + } + io.WriteString(f, t.Key().Name()) + io.WriteString(f, "=") + var buf [128]byte + t.Key().Format(f, buf[:0], t) +} + +func (l *list) Valid(index int) bool { + return index >= 0 && index < len(l.labels) +} + +func (l *list) Label(index int) Label { + return l.labels[index] +} + +func (f *filter) Valid(index int) bool { + return f.underlying.Valid(index) +} + +func (f *filter) Label(index int) Label { + l := f.underlying.Label(index) + if slices.Contains(f.keys, l.Key()) { + return Label{} + } + return l +} + +func (lm listMap) Find(key Key) Label { + for _, l := range lm.labels { + if l.Key() == key { + return l + } + } + return Label{} +} + +func (c mapChain) Find(key Key) Label { + for _, src := range c.maps { + l := src.Find(key) + if l.Valid() { + return l + } + } + return Label{} +} + +var emptyList = &list{} + +func NewList(labels ...Label) List { + if len(labels) == 0 { + return emptyList + } + return &list{labels: labels} +} + +func Filter(l List, keys ...Key) List { + if len(keys) == 0 { + return l + } + return &filter{keys: keys, underlying: l} +} + +func NewMap(labels ...Label) Map { + return listMap{labels: labels} +} + +func MergeMaps(srcs ...Map) Map { + var nonNil []Map + for _, src := range srcs { + if src != nil { + nonNil = append(nonNil, src) + } + } + if len(nonNil) == 1 { + return nonNil[0] + } + return mapChain{maps: nonNil} +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go new file mode 100644 index 0000000..734c461 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go @@ -0,0 +1,89 @@ +// 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. + +// This file contains the remaining vestiges of +// $GOROOT/src/go/internal/gcimporter/bimport.go. + +package gcimporter + +import ( + "fmt" + "go/token" + "go/types" + "sync" +) + +func errorf(format string, args ...any) { + panic(fmt.Sprintf(format, args...)) +} + +const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go + +// Synthesize a token.Pos +type fakeFileSet struct { + fset *token.FileSet + files map[string]*fileInfo +} + +type fileInfo struct { + file *token.File + lastline int +} + +const maxlines = 64 * 1024 + +func (s *fakeFileSet) pos(file string, line, column int) token.Pos { + // TODO(mdempsky): Make use of column. + + // Since we don't know the set of needed file positions, we reserve maxlines + // positions per file. We delay calling token.File.SetLines until all + // positions have been calculated (by way of fakeFileSet.setLines), so that + // we can avoid setting unnecessary lines. See also golang/go#46586. + f := s.files[file] + if f == nil { + f = &fileInfo{file: s.fset.AddFile(file, -1, maxlines)} + s.files[file] = f + } + if line > maxlines { + line = 1 + } + if line > f.lastline { + f.lastline = line + } + + // Return a fake position assuming that f.file consists only of newlines. + return token.Pos(f.file.Base() + line - 1) +} + +func (s *fakeFileSet) setLines() { + fakeLinesOnce.Do(func() { + fakeLines = make([]int, maxlines) + for i := range fakeLines { + fakeLines[i] = i + } + }) + for _, f := range s.files { + f.file.SetLines(fakeLines[:f.lastline]) + } +} + +var ( + fakeLines []int + fakeLinesOnce sync.Once +) + +func chanDir(d int) types.ChanDir { + // tag values must match the constants in cmd/compile/internal/gc/go.go + switch d { + case 1 /* Crecv */ : + return types.RecvOnly + case 2 /* Csend */ : + return types.SendOnly + case 3 /* Cboth */ : + return types.SendRecv + default: + errorf("unexpected channel dir %d", d) + return 0 + } +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go new file mode 100644 index 0000000..5662a31 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go @@ -0,0 +1,421 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file should be kept in sync with $GOROOT/src/internal/exportdata/exportdata.go. +// This file also additionally implements FindExportData for gcexportdata.NewReader. + +package gcimporter + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "go/build" + "io" + "os" + "os/exec" + "path/filepath" + "strings" + "sync" +) + +// FindExportData positions the reader r at the beginning of the +// export data section of an underlying cmd/compile created archive +// file by reading from it. The reader must be positioned at the +// start of the file before calling this function. +// This returns the length of the export data in bytes. +// +// This function is needed by [gcexportdata.Read], which must +// accept inputs produced by the last two releases of cmd/compile, +// plus tip. +func FindExportData(r *bufio.Reader) (size int64, err error) { + arsize, err := FindPackageDefinition(r) + if err != nil { + return + } + size = int64(arsize) + + objapi, headers, err := ReadObjectHeaders(r) + if err != nil { + return + } + size -= int64(len(objapi)) + for _, h := range headers { + size -= int64(len(h)) + } + + // Check for the binary export data section header "$$B\n". + // TODO(taking): Unify with ReadExportDataHeader so that it stops at the 'u' instead of reading + line, err := r.ReadSlice('\n') + if err != nil { + return + } + hdr := string(line) + if hdr != "$$B\n" { + err = fmt.Errorf("unknown export data header: %q", hdr) + return + } + size -= int64(len(hdr)) + + // For files with a binary export data header "$$B\n", + // these are always terminated by an end-of-section marker "\n$$\n". + // So the last bytes must always be this constant. + // + // The end-of-section marker is not a part of the export data itself. + // Do not include these in size. + // + // It would be nice to have sanity check that the final bytes after + // the export data are indeed the end-of-section marker. The split + // of gcexportdata.NewReader and gcexportdata.Read make checking this + // ugly so gcimporter gives up enforcing this. The compiler and go/types + // importer do enforce this, which seems good enough. + const endofsection = "\n$$\n" + size -= int64(len(endofsection)) + + if size < 0 { + err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", arsize, size) + return + } + + return +} + +// ReadUnified reads the contents of the unified export data from a reader r +// that contains the contents of a GC-created archive file. +// +// On success, the reader will be positioned after the end-of-section marker "\n$$\n". +// +// Supported GC-created archive files have 4 layers of nesting: +// - An archive file containing a package definition file. +// - The package definition file contains headers followed by a data section. +// Headers are lines (≤ 4kb) that do not start with "$$". +// - The data section starts with "$$B\n" followed by export data followed +// by an end of section marker "\n$$\n". (The section start "$$\n" is no +// longer supported.) +// - The export data starts with a format byte ('u') followed by the <data> in +// the given format. (See ReadExportDataHeader for older formats.) +// +// Putting this together, the bytes in a GC-created archive files are expected +// to look like the following. +// See cmd/internal/archive for more details on ar file headers. +// +// | <!arch>\n | ar file signature +// | __.PKGDEF...size...\n | ar header for __.PKGDEF including size. +// | go object <...>\n | objabi header +// | <optional headers>\n | other headers such as build id +// | $$B\n | binary format marker +// | u<data>\n | unified export <data> +// | $$\n | end-of-section marker +// | [optional padding] | padding byte (0x0A) if size is odd +// | [ar file header] | other ar files +// | [ar file data] | +func ReadUnified(r *bufio.Reader) (data []byte, err error) { + // We historically guaranteed headers at the default buffer size (4096) work. + // This ensures we can use ReadSlice throughout. + const minBufferSize = 4096 + r = bufio.NewReaderSize(r, minBufferSize) + + size, err := FindPackageDefinition(r) + if err != nil { + return + } + n := size + + objapi, headers, err := ReadObjectHeaders(r) + if err != nil { + return + } + n -= len(objapi) + for _, h := range headers { + n -= len(h) + } + + hdrlen, err := ReadExportDataHeader(r) + if err != nil { + return + } + n -= hdrlen + + // size also includes the end of section marker. Remove that many bytes from the end. + const marker = "\n$$\n" + n -= len(marker) + + if n < 0 { + err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", size, n) + return + } + + // Read n bytes from buf. + data = make([]byte, n) + _, err = io.ReadFull(r, data) + if err != nil { + return + } + + // Check for marker at the end. + var suffix [len(marker)]byte + _, err = io.ReadFull(r, suffix[:]) + if err != nil { + return + } + if s := string(suffix[:]); s != marker { + err = fmt.Errorf("read %q instead of end-of-section marker (%q)", s, marker) + return + } + + return +} + +// FindPackageDefinition positions the reader r at the beginning of a package +// definition file ("__.PKGDEF") within a GC-created archive by reading +// from it, and returns the size of the package definition file in the archive. +// +// The reader must be positioned at the start of the archive file before calling +// this function, and "__.PKGDEF" is assumed to be the first file in the archive. +// +// See cmd/internal/archive for details on the archive format. +func FindPackageDefinition(r *bufio.Reader) (size int, err error) { + // Uses ReadSlice to limit risk of malformed inputs. + + // Read first line to make sure this is an object file. + line, err := r.ReadSlice('\n') + if err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + + // Is the first line an archive file signature? + if string(line) != "!<arch>\n" { + err = fmt.Errorf("not the start of an archive file (%q)", line) + return + } + + // package export block should be first + size = readArchiveHeader(r, "__.PKGDEF") + if size <= 0 { + err = fmt.Errorf("not a package file") + return + } + + return +} + +// ReadObjectHeaders reads object headers from the reader. Object headers are +// lines that do not start with an end-of-section marker "$$". The first header +// is the objabi header. On success, the reader will be positioned at the beginning +// of the end-of-section marker. +// +// It returns an error if any header does not fit in r.Size() bytes. +func ReadObjectHeaders(r *bufio.Reader) (objapi string, headers []string, err error) { + // line is a temporary buffer for headers. + // Use bounded reads (ReadSlice, Peek) to limit risk of malformed inputs. + var line []byte + + // objapi header should be the first line + if line, err = r.ReadSlice('\n'); err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + objapi = string(line) + + // objapi header begins with "go object ". + if !strings.HasPrefix(objapi, "go object ") { + err = fmt.Errorf("not a go object file: %s", objapi) + return + } + + // process remaining object header lines + for { + // check for an end of section marker "$$" + line, err = r.Peek(2) + if err != nil { + return + } + if string(line) == "$$" { + return // stop + } + + // read next header + line, err = r.ReadSlice('\n') + if err != nil { + return + } + headers = append(headers, string(line)) + } +} + +// ReadExportDataHeader reads the export data header and format from r. +// It returns the number of bytes read, or an error if the format is no longer +// supported or it failed to read. +// +// The only currently supported format is binary export data in the +// unified export format. +func ReadExportDataHeader(r *bufio.Reader) (n int, err error) { + // Read export data header. + line, err := r.ReadSlice('\n') + if err != nil { + return + } + + hdr := string(line) + switch hdr { + case "$$\n": + err = fmt.Errorf("old textual export format no longer supported (recompile package)") + return + + case "$$B\n": + var format byte + format, err = r.ReadByte() + if err != nil { + return + } + // The unified export format starts with a 'u'. + switch format { + case 'u': + default: + // Older no longer supported export formats include: + // indexed export format which started with an 'i'; and + // the older binary export format which started with a 'c', + // 'd', or 'v' (from "version"). + err = fmt.Errorf("binary export format %q is no longer supported (recompile package)", format) + return + } + + default: + err = fmt.Errorf("unknown export data header: %q", hdr) + return + } + + n = len(hdr) + 1 // + 1 is for 'u' + return +} + +// FindPkg returns the filename and unique package id for an import +// path based on package information provided by build.Import (using +// the build.Default build.Context). A relative srcDir is interpreted +// relative to the current working directory. +// +// FindPkg is only used in tests within x/tools. +func FindPkg(path, srcDir string) (filename, id string, err error) { + // TODO(taking): Move internal/exportdata.FindPkg into its own file, + // and then this copy into a _test package. + if path == "" { + return "", "", errors.New("path is empty") + } + + var noext string + switch { + default: + // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" + // Don't require the source files to be present. + if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 + srcDir = abs + } + var bp *build.Package + bp, err = build.Import(path, srcDir, build.FindOnly|build.AllowBinary) + if bp.PkgObj == "" { + if bp.Goroot && bp.Dir != "" { + filename, err = lookupGorootExport(bp.Dir) + if err == nil { + _, err = os.Stat(filename) + } + if err == nil { + return filename, bp.ImportPath, nil + } + } + goto notfound + } else { + noext = strings.TrimSuffix(bp.PkgObj, ".a") + } + id = bp.ImportPath + + case build.IsLocalImport(path): + // "./x" -> "/this/directory/x.ext", "/this/directory/x" + noext = filepath.Join(srcDir, path) + id = noext + + case filepath.IsAbs(path): + // for completeness only - go/build.Import + // does not support absolute imports + // "/x" -> "/x.ext", "/x" + noext = path + id = path + } + + if false { // for debugging + if path != id { + fmt.Printf("%s -> %s\n", path, id) + } + } + + // try extensions + for _, ext := range pkgExts { + filename = noext + ext + f, statErr := os.Stat(filename) + if statErr == nil && !f.IsDir() { + return filename, id, nil + } + if err == nil { + err = statErr + } + } + +notfound: + if err == nil { + return "", path, fmt.Errorf("can't find import: %q", path) + } + return "", path, fmt.Errorf("can't find import: %q: %w", path, err) +} + +var pkgExts = [...]string{".a", ".o"} // a file from the build cache will have no extension + +var exportMap sync.Map // package dir → func() (string, error) + +// lookupGorootExport returns the location of the export data +// (normally found in the build cache, but located in GOROOT/pkg +// in prior Go releases) for the package located in pkgDir. +// +// (We use the package's directory instead of its import path +// mainly to simplify handling of the packages in src/vendor +// and cmd/vendor.) +// +// lookupGorootExport is only used in tests within x/tools. +func lookupGorootExport(pkgDir string) (string, error) { + f, ok := exportMap.Load(pkgDir) + if !ok { + var ( + listOnce sync.Once + exportPath string + err error + ) + f, _ = exportMap.LoadOrStore(pkgDir, func() (string, error) { + listOnce.Do(func() { + cmd := exec.Command(filepath.Join(build.Default.GOROOT, "bin", "go"), "list", "-export", "-f", "{{.Export}}", pkgDir) + cmd.Dir = build.Default.GOROOT + cmd.Env = append(os.Environ(), "PWD="+cmd.Dir, "GOROOT="+build.Default.GOROOT) + var output []byte + output, err = cmd.Output() + if err != nil { + if ee, ok := err.(*exec.ExitError); ok && len(ee.Stderr) > 0 { + err = errors.New(string(ee.Stderr)) + } + return + } + + exports := strings.Split(string(bytes.TrimSpace(output)), "\n") + if len(exports) != 1 { + err = fmt.Errorf("go list reported %d exports; expected 1", len(exports)) + return + } + + exportPath = exports[0] + }) + + return exportPath, err + }) + } + + return f.(func() (string, error))() +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go new file mode 100644 index 0000000..3dbd21d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go @@ -0,0 +1,108 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a reduced copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go. + +// Package gcimporter provides various functions for reading +// gc-generated object files that can be used to implement the +// Importer interface defined by the Go 1.5 standard library package. +// +// The encoding is deterministic: if the encoder is applied twice to +// the same types.Package data structure, both encodings are equal. +// This property may be important to avoid spurious changes in +// applications such as build systems. +// +// However, the encoder is not necessarily idempotent. Importing an +// exported package may yield a types.Package that, while it +// represents the same set of Go types as the original, may differ in +// the details of its internal representation. Because of these +// differences, re-encoding the imported package may yield a +// different, but equally valid, encoding of the package. +package gcimporter // import "golang.org/x/tools/internal/gcimporter" + +import ( + "bufio" + "fmt" + "go/token" + "go/types" + "io" + "os" +) + +const ( + // Enable debug during development: it adds some additional checks, and + // prevents errors from being recovered. + debug = false + + // If trace is set, debugging output is printed to std out. + trace = false +) + +// Import imports a gc-generated package given its import path and srcDir, adds +// the corresponding package object to the packages map, and returns the object. +// The packages map must contain all packages already imported. +// +// Import is only used in tests. +func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { + var rc io.ReadCloser + var id string + if lookup != nil { + // With custom lookup specified, assume that caller has + // converted path to a canonical import path for use in the map. + if path == "unsafe" { + return types.Unsafe, nil + } + id = path + + // No need to re-import if the package was imported completely before. + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + f, err := lookup(path) + if err != nil { + return nil, err + } + rc = f + } else { + var filename string + filename, id, err = FindPkg(path, srcDir) + if filename == "" { + if path == "unsafe" { + return types.Unsafe, nil + } + return nil, err + } + + // no need to re-import if the package was imported completely before + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + if err != nil { + // add file name to error + err = fmt.Errorf("%s: %v", filename, err) + } + }() + rc = f + } + defer rc.Close() + + buf := bufio.NewReader(rc) + data, err := ReadUnified(buf) + if err != nil { + err = fmt.Errorf("import %q: %v", path, err) + return + } + + // unified: emitted by cmd/compile since go1.20. + _, pkg, err = UImportData(fset, packages, data, id) + + return +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go new file mode 100644 index 0000000..780873e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -0,0 +1,1596 @@ +// 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. + +// Indexed package export. +// +// The indexed export data format is an evolution of the previous +// binary export data format. Its chief contribution is introducing an +// index table, which allows efficient random access of individual +// declarations and inline function bodies. In turn, this allows +// avoiding unnecessary work for compilation units that import large +// packages. +// +// +// The top-level data format is structured as: +// +// Header struct { +// Tag byte // 'i' +// Version uvarint +// StringSize uvarint +// DataSize uvarint +// } +// +// Strings [StringSize]byte +// Data [DataSize]byte +// +// MainIndex []struct{ +// PkgPath stringOff +// PkgName stringOff +// PkgHeight uvarint +// +// Decls []struct{ +// Name stringOff +// Offset declOff +// } +// } +// +// Fingerprint [8]byte +// +// uvarint means a uint64 written out using uvarint encoding. +// +// []T means a uvarint followed by that many T objects. In other +// words: +// +// Len uvarint +// Elems [Len]T +// +// stringOff means a uvarint that indicates an offset within the +// Strings section. At that offset is another uvarint, followed by +// that many bytes, which form the string value. +// +// declOff means a uvarint that indicates an offset within the Data +// section where the associated declaration can be found. +// +// +// There are five kinds of declarations, distinguished by their first +// byte: +// +// type Var struct { +// Tag byte // 'V' +// Pos Pos +// Type typeOff +// } +// +// type Func struct { +// Tag byte // 'F' or 'G' +// Pos Pos +// TypeParams []typeOff // only present if Tag == 'G' +// Signature Signature +// } +// +// type Const struct { +// Tag byte // 'C' +// Pos Pos +// Value Value +// } +// +// type Type struct { +// Tag byte // 'T' or 'U' +// Pos Pos +// TypeParams []typeOff // only present if Tag == 'U' +// Underlying typeOff +// +// Methods []struct{ // omitted if Underlying is an interface type +// Pos Pos +// Name stringOff +// Recv Param +// Signature Signature +// } +// } +// +// type Alias struct { +// Tag byte // 'A' or 'B' +// Pos Pos +// TypeParams []typeOff // only present if Tag == 'B' +// Type typeOff +// } +// +// // "Automatic" declaration of each typeparam +// type TypeParam struct { +// Tag byte // 'P' +// Pos Pos +// Implicit bool +// Constraint typeOff +// } +// +// typeOff means a uvarint that either indicates a predeclared type, +// or an offset into the Data section. If the uvarint is less than +// predeclReserved, then it indicates the index into the predeclared +// types list (see predeclared in bexport.go for order). Otherwise, +// subtracting predeclReserved yields the offset of a type descriptor. +// +// Value means a type, kind, and type-specific value. See +// (*exportWriter).value for details. +// +// +// There are twelve kinds of type descriptors, distinguished by an itag: +// +// type DefinedType struct { +// Tag itag // definedType +// Name stringOff +// PkgPath stringOff +// } +// +// type PointerType struct { +// Tag itag // pointerType +// Elem typeOff +// } +// +// type SliceType struct { +// Tag itag // sliceType +// Elem typeOff +// } +// +// type ArrayType struct { +// Tag itag // arrayType +// Len uint64 +// Elem typeOff +// } +// +// type ChanType struct { +// Tag itag // chanType +// Dir uint64 // 1 RecvOnly; 2 SendOnly; 3 SendRecv +// Elem typeOff +// } +// +// type MapType struct { +// Tag itag // mapType +// Key typeOff +// Elem typeOff +// } +// +// type FuncType struct { +// Tag itag // signatureType +// PkgPath stringOff +// Signature Signature +// } +// +// type StructType struct { +// Tag itag // structType +// PkgPath stringOff +// Fields []struct { +// Pos Pos +// Name stringOff +// Type typeOff +// Embedded bool +// Note stringOff +// } +// } +// +// type InterfaceType struct { +// Tag itag // interfaceType +// PkgPath stringOff +// Embeddeds []struct { +// Pos Pos +// Type typeOff +// } +// Methods []struct { +// Pos Pos +// Name stringOff +// Signature Signature +// } +// } +// +// // Reference to a type param declaration +// type TypeParamType struct { +// Tag itag // typeParamType +// Name stringOff +// PkgPath stringOff +// } +// +// // Instantiation of a generic type (like List[T2] or List[int]) +// type InstanceType struct { +// Tag itag // instanceType +// Pos pos +// TypeArgs []typeOff +// BaseType typeOff +// } +// +// type UnionType struct { +// Tag itag // interfaceType +// Terms []struct { +// tilde bool +// Type typeOff +// } +// } +// +// +// +// type Signature struct { +// Params []Param +// Results []Param +// Variadic bool // omitted if Results is empty +// } +// +// type Param struct { +// Pos Pos +// Name stringOff +// Type typOff +// } +// +// +// Pos encodes a file:line:column triple, incorporating a simple delta +// encoding scheme within a data object. See exportWriter.pos for +// details. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "io" + "math/big" + "reflect" + "slices" + "sort" + "strconv" + "strings" + + "golang.org/x/tools/go/types/objectpath" + "golang.org/x/tools/internal/aliases" +) + +// IExportShallow encodes "shallow" export data for the specified package. +// +// For types, we use "shallow" export data. Historically, the Go +// compiler always produced a summary of the types for a given package +// that included types from other packages that it indirectly +// referenced: "deep" export data. This had the advantage that the +// compiler (and analogous tools such as gopls) need only load one +// file per direct import. However, it meant that the files tended to +// get larger based on the level of the package in the import +// graph. For example, higher-level packages in the kubernetes module +// have over 1MB of "deep" export data, even when they have almost no +// content of their own, merely because they mention a major type that +// references many others. In pathological cases the export data was +// 300x larger than the source for a package due to this quadratic +// growth. +// +// "Shallow" export data means that the serialized types describe only +// a single package. If those types mention types from other packages, +// the type checker may need to request additional packages beyond +// just the direct imports. Type information for the entire transitive +// closure of imports is provided (lazily) by the DAG. +// +// No promises are made about the encoding other than that it can be decoded by +// the same version of IIExportShallow. If you plan to save export data in the +// file system, be sure to include a cryptographic digest of the executable in +// the key to avoid version skew. +// +// If the provided reportf func is non-nil, it is used for reporting +// bugs (e.g. recovered panics) encountered during export, enabling us +// to obtain via telemetry the stack that would otherwise be lost by +// merely returning an error. +func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) ([]byte, error) { + // In principle this operation can only fail if out.Write fails, + // but that's impossible for bytes.Buffer---and as a matter of + // fact iexportCommon doesn't even check for I/O errors. + // TODO(adonovan): handle I/O errors properly. + // TODO(adonovan): use byte slices throughout, avoiding copying. + const bundle, shallow = false, true + var out bytes.Buffer + err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, reportf) + return out.Bytes(), err +} + +// IImportShallow decodes "shallow" types.Package data encoded by +// [IExportShallow] in the same executable. This function cannot import data +// from cmd/compile or gcexportdata.Write. +// +// The importer calls getPackages to obtain package symbols for all +// packages mentioned in the export data, including the one being +// decoded. +// +// If the provided reportf func is non-nil, it will be used for reporting bugs +// encountered during import. +// TODO(rfindley): remove reportf when we are confident enough in the new +// objectpath encoding. +func IImportShallow(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, path string, reportf ReportFunc) (*types.Package, error) { + const bundle = false + const shallow = true + pkgs, err := iimportCommon(fset, getPackages, data, bundle, path, shallow, reportf) + if err != nil { + return nil, err + } + return pkgs[0], nil +} + +// ReportFunc is the type of a function used to report formatted bugs. +type ReportFunc = func(string, ...any) + +// Current bundled export format version. Increase with each format change. +// 0: initial implementation +const bundleVersion = 0 + +// IExportData writes indexed export data for pkg to out. +// +// If no file set is provided, position info will be missing. +// The package path of the top-level package will not be recorded, +// so that calls to IImportData can override with a provided package path. +func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { + const bundle, shallow = false, false + return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, nil) +} + +// IExportBundle writes an indexed export bundle for pkgs to out. +func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { + const bundle, shallow = true, false + return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs, nil) +} + +func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package, reportf ReportFunc) (err error) { + if !debug { + defer func() { + if e := recover(); e != nil { + // Report the stack via telemetry (see #71067). + if reportf != nil { + reportf("panic in exporter") + } + if ierr, ok := e.(internalError); ok { + // internalError usually means we exported a + // bad go/types data structure: a violation + // of an implicit precondition of Export. + err = ierr + return + } + // Not an internal error; panic again. + panic(e) + } + }() + } + + p := iexporter{ + fset: fset, + version: version, + shallow: shallow, + allPkgs: map[*types.Package]bool{}, + stringIndex: map[string]uint64{}, + declIndex: map[types.Object]uint64{}, + tparamNames: map[types.Object]string{}, + typIndex: map[types.Type]uint64{}, + } + if !bundle { + p.localpkg = pkgs[0] + } + + for i, pt := range predeclared() { + p.typIndex[pt] = uint64(i) + } + if len(p.typIndex) > predeclReserved { + panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) + } + + // Initialize work queue with exported declarations. + for _, pkg := range pkgs { + scope := pkg.Scope() + for _, name := range scope.Names() { + if token.IsExported(name) { + p.pushDecl(scope.Lookup(name)) + } + } + + if bundle { + // Ensure pkg and its imports are included in the index. + p.allPkgs[pkg] = true + for _, imp := range pkg.Imports() { + p.allPkgs[imp] = true + } + } + } + + // Loop until no more work. + for !p.declTodo.empty() { + p.doDecl(p.declTodo.popHead()) + } + + // Produce index of offset of each file record in files. + var files intWriter + var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i + if p.shallow { + fileOffset = make([]uint64, len(p.fileInfos)) + for i, info := range p.fileInfos { + fileOffset[i] = uint64(files.Len()) + p.encodeFile(&files, info.file, info.needed) + } + } + + // Append indices to data0 section. + dataLen := uint64(p.data0.Len()) + w := p.newWriter() + w.writeIndex(p.declIndex) + + if bundle { + w.uint64(uint64(len(pkgs))) + for _, pkg := range pkgs { + w.pkg(pkg) + imps := pkg.Imports() + w.uint64(uint64(len(imps))) + for _, imp := range imps { + w.pkg(imp) + } + } + } + w.flush() + + // Assemble header. + var hdr intWriter + if bundle { + hdr.uint64(bundleVersion) + } + hdr.uint64(uint64(p.version)) + hdr.uint64(uint64(p.strings.Len())) + if p.shallow { + hdr.uint64(uint64(files.Len())) + hdr.uint64(uint64(len(fileOffset))) + for _, offset := range fileOffset { + hdr.uint64(offset) + } + } + hdr.uint64(dataLen) + + // Flush output. + io.Copy(out, &hdr) + io.Copy(out, &p.strings) + if p.shallow { + io.Copy(out, &files) + } + io.Copy(out, &p.data0) + + return nil +} + +// encodeFile writes to w a representation of the file sufficient to +// faithfully restore position information about all needed offsets. +// Mutates the needed array. +func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) { + _ = needed[0] // precondition: needed is non-empty + + w.uint64(p.stringOff(file.Name())) + + size := uint64(file.Size()) + w.uint64(size) + + // Sort the set of needed offsets. Duplicates are harmless. + slices.Sort(needed) + + lines := file.Lines() // byte offset of each line start + w.uint64(uint64(len(lines))) + + // Rather than record the entire array of line start offsets, + // we save only a sparse list of (index, offset) pairs for + // the start of each line that contains a needed position. + var sparse [][2]int // (index, offset) pairs +outer: + for i, lineStart := range lines { + lineEnd := size + if i < len(lines)-1 { + lineEnd = uint64(lines[i+1]) + } + // Does this line contains a needed offset? + if needed[0] < lineEnd { + sparse = append(sparse, [2]int{i, lineStart}) + for needed[0] < lineEnd { + needed = needed[1:] + if len(needed) == 0 { + break outer + } + } + } + } + + // Delta-encode the columns. + w.uint64(uint64(len(sparse))) + var prev [2]int + for _, pair := range sparse { + w.uint64(uint64(pair[0] - prev[0])) + w.uint64(uint64(pair[1] - prev[1])) + prev = pair + } +} + +// writeIndex writes out an object index. mainIndex indicates whether +// we're writing out the main index, which is also read by +// non-compiler tools and includes a complete package description +// (i.e., name and height). +func (w *exportWriter) writeIndex(index map[types.Object]uint64) { + type pkgObj struct { + obj types.Object + name string // qualified name; differs from obj.Name for type params + } + // Build a map from packages to objects from that package. + pkgObjs := map[*types.Package][]pkgObj{} + + // For the main index, make sure to include every package that + // we reference, even if we're not exporting (or reexporting) + // any symbols from it. + if w.p.localpkg != nil { + pkgObjs[w.p.localpkg] = nil + } + for pkg := range w.p.allPkgs { + pkgObjs[pkg] = nil + } + + for obj := range index { + name := w.p.exportName(obj) + pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], pkgObj{obj, name}) + } + + var pkgs []*types.Package + for pkg, objs := range pkgObjs { + pkgs = append(pkgs, pkg) + + sort.Slice(objs, func(i, j int) bool { + return objs[i].name < objs[j].name + }) + } + + sort.Slice(pkgs, func(i, j int) bool { + return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j]) + }) + + w.uint64(uint64(len(pkgs))) + for _, pkg := range pkgs { + w.string(w.exportPath(pkg)) + w.string(pkg.Name()) + w.uint64(uint64(0)) // package height is not needed for go/types + + objs := pkgObjs[pkg] + w.uint64(uint64(len(objs))) + for _, obj := range objs { + w.string(obj.name) + w.uint64(index[obj.obj]) + } + } +} + +// exportName returns the 'exported' name of an object. It differs from +// obj.Name() only for type parameters (see tparamExportName for details). +func (p *iexporter) exportName(obj types.Object) (res string) { + if name := p.tparamNames[obj]; name != "" { + return name + } + return obj.Name() +} + +type iexporter struct { + fset *token.FileSet + out *bytes.Buffer + version int + + shallow bool // don't put types from other packages in the index + objEncoder *objectpath.Encoder // encodes objects from other packages in shallow mode; lazily allocated + localpkg *types.Package // (nil in bundle mode) + + // allPkgs tracks all packages that have been referenced by + // the export data, so we can ensure to include them in the + // main index. + allPkgs map[*types.Package]bool + + declTodo objQueue + + strings intWriter + stringIndex map[string]uint64 + + // In shallow mode, object positions are encoded as (file, offset). + // Each file is recorded as a line-number table. + // Only the lines of needed positions are saved faithfully. + fileInfo map[*token.File]uint64 // value is index in fileInfos + fileInfos []*filePositions + + data0 intWriter + declIndex map[types.Object]uint64 + tparamNames map[types.Object]string // typeparam->exported name + typIndex map[types.Type]uint64 + + indent int // for tracing support +} + +type filePositions struct { + file *token.File + needed []uint64 // unordered list of needed file offsets +} + +func (p *iexporter) trace(format string, args ...any) { + if !trace { + // Call sites should also be guarded, but having this check here allows + // easily enabling/disabling debug trace statements. + return + } + fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) +} + +// objectpathEncoder returns the lazily allocated objectpath.Encoder to use +// when encoding objects in other packages during shallow export. +// +// Using a shared Encoder amortizes some of cost of objectpath search. +func (p *iexporter) objectpathEncoder() *objectpath.Encoder { + if p.objEncoder == nil { + p.objEncoder = new(objectpath.Encoder) + } + return p.objEncoder +} + +// stringOff returns the offset of s within the string section. +// If not already present, it's added to the end. +func (p *iexporter) stringOff(s string) uint64 { + off, ok := p.stringIndex[s] + if !ok { + off = uint64(p.strings.Len()) + p.stringIndex[s] = off + + p.strings.uint64(uint64(len(s))) + p.strings.WriteString(s) + } + return off +} + +// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it. +func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) { + index, ok := p.fileInfo[file] + if !ok { + index = uint64(len(p.fileInfo)) + p.fileInfos = append(p.fileInfos, &filePositions{file: file}) + if p.fileInfo == nil { + p.fileInfo = make(map[*token.File]uint64) + } + p.fileInfo[file] = index + } + // Record each needed offset. + info := p.fileInfos[index] + offset := uint64(file.Offset(pos)) + info.needed = append(info.needed, offset) + + return index, offset +} + +// pushDecl adds n to the declaration work queue, if not already present. +func (p *iexporter) pushDecl(obj types.Object) { + // Package unsafe is known to the compiler and predeclared. + // Caller should not ask us to do export it. + if obj.Pkg() == types.Unsafe { + panic("cannot export package unsafe") + } + + // Shallow export data: don't index decls from other packages. + if p.shallow && obj.Pkg() != p.localpkg { + return + } + + if _, ok := p.declIndex[obj]; ok { + return + } + + p.declIndex[obj] = ^uint64(0) // mark obj present in work queue + p.declTodo.pushTail(obj) +} + +// exportWriter handles writing out individual data section chunks. +type exportWriter struct { + p *iexporter + + data intWriter + prevFile string + prevLine int64 + prevColumn int64 +} + +func (w *exportWriter) exportPath(pkg *types.Package) string { + if pkg == w.p.localpkg { + return "" + } + return pkg.Path() +} + +func (p *iexporter) doDecl(obj types.Object) { + if trace { + p.trace("exporting decl %v (%T)", obj, obj) + p.indent++ + defer func() { + p.indent-- + p.trace("=> %s", obj) + }() + } + w := p.newWriter() + + switch obj := obj.(type) { + case *types.Var: + w.tag(varTag) + w.pos(obj.Pos()) + w.typ(obj.Type(), obj.Pkg()) + + case *types.Func: + sig, _ := obj.Type().(*types.Signature) + if sig.Recv() != nil { + // We shouldn't see methods in the package scope, + // but the type checker may repair "func () F() {}" + // to "func (Invalid) F()" and then treat it like "func F()", + // so allow that. See golang/go#57729. + if sig.Recv().Type() != types.Typ[types.Invalid] { + panic(internalErrorf("unexpected method: %v", sig)) + } + } + + // Function. + if sig.TypeParams().Len() == 0 { + w.tag(funcTag) + } else { + w.tag(genericFuncTag) + } + w.pos(obj.Pos()) + // The tparam list of the function type is the declaration of the type + // params. So, write out the type params right now. Then those type params + // will be referenced via their type offset (via typOff) in all other + // places in the signature and function where they are used. + // + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. + if tparams := sig.TypeParams(); tparams.Len() > 0 { + w.tparamList(obj.Name(), tparams, obj.Pkg()) + } + w.signature(sig) + + case *types.Const: + w.tag(constTag) + w.pos(obj.Pos()) + w.value(obj.Type(), obj.Val()) + + case *types.TypeName: + t := obj.Type() + + if tparam, ok := types.Unalias(t).(*types.TypeParam); ok { + w.tag(typeParamTag) + w.pos(obj.Pos()) + constraint := tparam.Constraint() + if p.version >= iexportVersionGo1_18 { + implicit := false + if iface, _ := types.Unalias(constraint).(*types.Interface); iface != nil { + implicit = iface.IsImplicit() + } + w.bool(implicit) + } + w.typ(constraint, obj.Pkg()) + break + } + + if obj.IsAlias() { + alias, materialized := t.(*types.Alias) // may fail when aliases are not enabled + + var tparams *types.TypeParamList + if materialized { + tparams = aliases.TypeParams(alias) + } + if tparams.Len() == 0 { + w.tag(aliasTag) + } else { + w.tag(genericAliasTag) + } + w.pos(obj.Pos()) + if tparams.Len() > 0 { + w.tparamList(obj.Name(), tparams, obj.Pkg()) + } + if materialized { + // Preserve materialized aliases, + // even of non-exported types. + t = aliases.Rhs(alias) + } + w.typ(t, obj.Pkg()) + break + } + + // Defined type. + named, ok := t.(*types.Named) + if !ok { + panic(internalErrorf("%s is not a defined type", t)) + } + + if named.TypeParams().Len() == 0 { + w.tag(typeTag) + } else { + w.tag(genericTypeTag) + } + w.pos(obj.Pos()) + + if named.TypeParams().Len() > 0 { + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. + w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg()) + } + + underlying := named.Underlying() + w.typ(underlying, obj.Pkg()) + + if types.IsInterface(t) { + break + } + + n := named.NumMethods() + w.uint64(uint64(n)) + for i := range n { + m := named.Method(i) + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + + // Receiver type parameters are type arguments of the receiver type, so + // their name must be qualified before exporting recv. + if rparams := sig.RecvTypeParams(); rparams.Len() > 0 { + prefix := obj.Name() + "." + m.Name() + for i := 0; i < rparams.Len(); i++ { + rparam := rparams.At(i) + name := tparamExportName(prefix, rparam) + w.p.tparamNames[rparam.Obj()] = name + } + } + w.param(sig.Recv()) + w.signature(sig) + } + + default: + panic(internalErrorf("unexpected object: %v", obj)) + } + + p.declIndex[obj] = w.flush() +} + +func (w *exportWriter) tag(tag byte) { + w.data.WriteByte(tag) +} + +func (w *exportWriter) pos(pos token.Pos) { + if w.p.shallow { + w.posV2(pos) + } else if w.p.version >= iexportVersionPosCol { + w.posV1(pos) + } else { + w.posV0(pos) + } +} + +// posV2 encoding (used only in shallow mode) records positions as +// (file, offset), where file is the index in the token.File table +// (which records the file name and newline offsets) and offset is a +// byte offset. It effectively ignores //line directives. +func (w *exportWriter) posV2(pos token.Pos) { + if pos == token.NoPos { + w.uint64(0) + return + } + file := w.p.fset.File(pos) // fset must be non-nil + index, offset := w.p.fileIndexAndOffset(file, pos) + w.uint64(1 + index) + w.uint64(offset) +} + +func (w *exportWriter) posV1(pos token.Pos) { + if w.p.fset == nil { + w.int64(0) + return + } + + p := w.p.fset.Position(pos) + file := p.Filename + line := int64(p.Line) + column := int64(p.Column) + + deltaColumn := (column - w.prevColumn) << 1 + deltaLine := (line - w.prevLine) << 1 + + if file != w.prevFile { + deltaLine |= 1 + } + if deltaLine != 0 { + deltaColumn |= 1 + } + + w.int64(deltaColumn) + if deltaColumn&1 != 0 { + w.int64(deltaLine) + if deltaLine&1 != 0 { + w.string(file) + } + } + + w.prevFile = file + w.prevLine = line + w.prevColumn = column +} + +func (w *exportWriter) posV0(pos token.Pos) { + if w.p.fset == nil { + w.int64(0) + return + } + + p := w.p.fset.Position(pos) + file := p.Filename + line := int64(p.Line) + + // When file is the same as the last position (common case), + // we can save a few bytes by delta encoding just the line + // number. + // + // Note: Because data objects may be read out of order (or not + // at all), we can only apply delta encoding within a single + // object. This is handled implicitly by tracking prevFile and + // prevLine as fields of exportWriter. + + if file == w.prevFile { + delta := line - w.prevLine + w.int64(delta) + if delta == deltaNewFile { + w.int64(-1) + } + } else { + w.int64(deltaNewFile) + w.int64(line) // line >= 0 + w.string(file) + w.prevFile = file + } + w.prevLine = line +} + +func (w *exportWriter) pkg(pkg *types.Package) { + // Ensure any referenced packages are declared in the main index. + w.p.allPkgs[pkg] = true + + w.string(w.exportPath(pkg)) +} + +func (w *exportWriter) qualifiedType(obj *types.TypeName) { + name := w.p.exportName(obj) + + // Ensure any referenced declarations are written out too. + w.p.pushDecl(obj) + w.string(name) + w.pkg(obj.Pkg()) +} + +// TODO(rfindley): what does 'pkg' even mean here? It would be better to pass +// it in explicitly into signatures and structs that may use it for +// constructing fields. +func (w *exportWriter) typ(t types.Type, pkg *types.Package) { + w.data.uint64(w.p.typOff(t, pkg)) +} + +func (p *iexporter) newWriter() *exportWriter { + return &exportWriter{p: p} +} + +func (w *exportWriter) flush() uint64 { + off := uint64(w.p.data0.Len()) + io.Copy(&w.p.data0, &w.data) + return off +} + +func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { + off, ok := p.typIndex[t] + if !ok { + w := p.newWriter() + w.doTyp(t, pkg) + off = predeclReserved + w.flush() + p.typIndex[t] = off + } + return off +} + +func (w *exportWriter) startType(k itag) { + w.data.uint64(uint64(k)) +} + +func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + if trace { + w.p.trace("exporting type %s (%T)", t, t) + w.p.indent++ + defer func() { + w.p.indent-- + w.p.trace("=> %s", t) + }() + } + switch t := t.(type) { + case *types.Alias: + if targs := aliases.TypeArgs(t); targs.Len() > 0 { + w.startType(instanceType) + w.pos(t.Obj().Pos()) + w.typeList(targs, pkg) + w.typ(aliases.Origin(t), pkg) + return + } + w.startType(aliasType) + w.qualifiedType(t.Obj()) + + case *types.Named: + if targs := t.TypeArgs(); targs.Len() > 0 { + w.startType(instanceType) + // TODO(rfindley): investigate if this position is correct, and if it + // matters. + w.pos(t.Obj().Pos()) + w.typeList(targs, pkg) + w.typ(t.Origin(), pkg) + return + } + w.startType(definedType) + w.qualifiedType(t.Obj()) + + case *types.TypeParam: + w.startType(typeParamType) + w.qualifiedType(t.Obj()) + + case *types.Pointer: + w.startType(pointerType) + w.typ(t.Elem(), pkg) + + case *types.Slice: + w.startType(sliceType) + w.typ(t.Elem(), pkg) + + case *types.Array: + w.startType(arrayType) + w.uint64(uint64(t.Len())) + w.typ(t.Elem(), pkg) + + case *types.Chan: + w.startType(chanType) + // 1 RecvOnly; 2 SendOnly; 3 SendRecv + var dir uint64 + switch t.Dir() { + case types.RecvOnly: + dir = 1 + case types.SendOnly: + dir = 2 + case types.SendRecv: + dir = 3 + } + w.uint64(dir) + w.typ(t.Elem(), pkg) + + case *types.Map: + w.startType(mapType) + w.typ(t.Key(), pkg) + w.typ(t.Elem(), pkg) + + case *types.Signature: + w.startType(signatureType) + w.pkg(pkg) + w.signature(t) + + case *types.Struct: + w.startType(structType) + n := t.NumFields() + // Even for struct{} we must emit some qualifying package, because that's + // what the compiler does, and thus that's what the importer expects. + fieldPkg := pkg + if n > 0 { + fieldPkg = t.Field(0).Pkg() + } + if fieldPkg == nil { + // TODO(rfindley): improve this very hacky logic. + // + // The importer expects a package to be set for all struct types, even + // those with no fields. A better encoding might be to set NumFields + // before pkg. setPkg panics with a nil package, which may be possible + // to reach with invalid packages (and perhaps valid packages, too?), so + // (arbitrarily) set the localpkg if available. + // + // Alternatively, we may be able to simply guarantee that pkg != nil, by + // reconsidering the encoding of constant values. + if w.p.shallow { + fieldPkg = w.p.localpkg + } else { + panic(internalErrorf("no package to set for empty struct")) + } + } + w.pkg(fieldPkg) + w.uint64(uint64(n)) + + for i := range n { + f := t.Field(i) + if w.p.shallow { + w.objectPath(f) + } + w.pos(f.Pos()) + w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg + w.typ(f.Type(), fieldPkg) + w.bool(f.Anonymous()) + w.string(t.Tag(i)) // note (or tag) + } + + case *types.Interface: + w.startType(interfaceType) + w.pkg(pkg) + + n := t.NumEmbeddeds() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + ft := t.EmbeddedType(i) + tPkg := pkg + if named, _ := types.Unalias(ft).(*types.Named); named != nil { + w.pos(named.Obj().Pos()) + } else { + w.pos(token.NoPos) + } + w.typ(ft, tPkg) + } + + // See comment for struct fields. In shallow mode we change the encoding + // for interface methods that are promoted from other packages. + + n = t.NumExplicitMethods() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + m := t.ExplicitMethod(i) + if w.p.shallow { + w.objectPath(m) + } + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + w.signature(sig) + } + + case *types.Union: + w.startType(unionType) + nt := t.Len() + w.uint64(uint64(nt)) + for i := range nt { + term := t.Term(i) + w.bool(term.Tilde()) + w.typ(term.Type(), pkg) + } + + default: + panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) + } +} + +// objectPath writes the package and objectPath to use to look up obj in a +// different package, when encoding in "shallow" mode. +// +// When doing a shallow import, the importer creates only the local package, +// and requests package symbols for dependencies from the client. +// However, certain types defined in the local package may hold objects defined +// (perhaps deeply) within another package. +// +// For example, consider the following: +// +// package a +// func F() chan * map[string] struct { X int } +// +// package b +// import "a" +// var B = a.F() +// +// In this example, the type of b.B holds fields defined in package a. +// In order to have the correct canonical objects for the field defined in the +// type of B, they are encoded as objectPaths and later looked up in the +// importer. The same problem applies to interface methods. +func (w *exportWriter) objectPath(obj types.Object) { + if obj.Pkg() == nil || obj.Pkg() == w.p.localpkg { + // obj.Pkg() may be nil for the builtin error.Error. + // In this case, or if obj is declared in the local package, no need to + // encode. + w.string("") + return + } + objectPath, err := w.p.objectpathEncoder().For(obj) + if err != nil { + // Fall back to the empty string, which will cause the importer to create a + // new object, which matches earlier behavior. Creating a new object is + // sufficient for many purposes (such as type checking), but causes certain + // references algorithms to fail (golang/go#60819). However, we didn't + // notice this problem during months of gopls@v0.12.0 testing. + // + // TODO(golang/go#61674): this workaround is insufficient, as in the case + // where the field forwarded from an instantiated type that may not appear + // in the export data of the original package: + // + // // package a + // type A[P any] struct{ F P } + // + // // package b + // type B a.A[int] + // + // We need to update references algorithms not to depend on this + // de-duplication, at which point we may want to simply remove the + // workaround here. + w.string("") + return + } + w.string(string(objectPath)) + w.pkg(obj.Pkg()) +} + +func (w *exportWriter) signature(sig *types.Signature) { + w.paramList(sig.Params()) + w.paramList(sig.Results()) + if sig.Params().Len() > 0 { + w.bool(sig.Variadic()) + } +} + +func (w *exportWriter) typeList(ts *types.TypeList, pkg *types.Package) { + w.uint64(uint64(ts.Len())) + for i := 0; i < ts.Len(); i++ { + w.typ(ts.At(i), pkg) + } +} + +func (w *exportWriter) tparamList(prefix string, list *types.TypeParamList, pkg *types.Package) { + ll := uint64(list.Len()) + w.uint64(ll) + for i := 0; i < list.Len(); i++ { + tparam := list.At(i) + // Set the type parameter exportName before exporting its type. + exportName := tparamExportName(prefix, tparam) + w.p.tparamNames[tparam.Obj()] = exportName + w.typ(list.At(i), pkg) + } +} + +const blankMarker = "$" + +// tparamExportName returns the 'exported' name of a type parameter, which +// differs from its actual object name: it is prefixed with a qualifier, and +// blank type parameter names are disambiguated by their index in the type +// parameter list. +func tparamExportName(prefix string, tparam *types.TypeParam) string { + assert(prefix != "") + name := tparam.Obj().Name() + if name == "_" { + name = blankMarker + strconv.Itoa(tparam.Index()) + } + return prefix + "." + name +} + +// tparamName returns the real name of a type parameter, after stripping its +// qualifying prefix and reverting blank-name encoding. See tparamExportName +// for details. +func tparamName(exportName string) string { + // Remove the "path" from the type param name that makes it unique. + ix := strings.LastIndex(exportName, ".") + if ix < 0 { + errorf("malformed type parameter export name %s: missing prefix", exportName) + } + name := exportName[ix+1:] + if strings.HasPrefix(name, blankMarker) { + return "_" + } + return name +} + +func (w *exportWriter) paramList(tup *types.Tuple) { + n := tup.Len() + w.uint64(uint64(n)) + for i := range n { + w.param(tup.At(i)) + } +} + +func (w *exportWriter) param(obj types.Object) { + w.pos(obj.Pos()) + w.localIdent(obj) + w.typ(obj.Type(), obj.Pkg()) +} + +func (w *exportWriter) value(typ types.Type, v constant.Value) { + w.typ(typ, nil) + if w.p.version >= iexportVersionGo1_18 { + w.int64(int64(v.Kind())) + } + + if v.Kind() == constant.Unknown { + // golang/go#60605: treat unknown constant values as if they have invalid type + // + // This loses some fidelity over the package type-checked from source, but that + // is acceptable. + // + // TODO(rfindley): we should switch on the recorded constant kind rather + // than the constant type + return + } + + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { + case types.IsBoolean: + w.bool(constant.BoolVal(v)) + case types.IsInteger: + var i big.Int + if i64, exact := constant.Int64Val(v); exact { + i.SetInt64(i64) + } else if ui64, exact := constant.Uint64Val(v); exact { + i.SetUint64(ui64) + } else { + i.SetString(v.ExactString(), 10) + } + w.mpint(&i, typ) + case types.IsFloat: + f := constantToFloat(v) + w.mpfloat(f, typ) + case types.IsComplex: + w.mpfloat(constantToFloat(constant.Real(v)), typ) + w.mpfloat(constantToFloat(constant.Imag(v)), typ) + case types.IsString: + w.string(constant.StringVal(v)) + default: + if b.Kind() == types.Invalid { + // package contains type errors + break + } + panic(internalErrorf("unexpected type %v (%v)", typ, typ.Underlying())) + } +} + +// constantToFloat converts a constant.Value with kind constant.Float to a +// big.Float. +func constantToFloat(x constant.Value) *big.Float { + x = constant.ToFloat(x) + // Use the same floating-point precision (512) as cmd/compile + // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). + const mpprec = 512 + var f big.Float + f.SetPrec(mpprec) + if v, exact := constant.Float64Val(x); exact { + // float64 + f.SetFloat64(v) + } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { + // TODO(gri): add big.Rat accessor to constant.Value. + n := valueToRat(num) + d := valueToRat(denom) + f.SetRat(n.Quo(n, d)) + } else { + // Value too large to represent as a fraction => inaccessible. + // TODO(gri): add big.Float accessor to constant.Value. + _, ok := f.SetString(x.ExactString()) + assert(ok) + } + return &f +} + +func valueToRat(x constant.Value) *big.Rat { + // Convert little-endian to big-endian. + // I can't believe this is necessary. + bytes := constant.Bytes(x) + for i := 0; i < len(bytes)/2; i++ { + bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] + } + return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) +} + +// mpint exports a multi-precision integer. +// +// For unsigned types, small values are written out as a single +// byte. Larger values are written out as a length-prefixed big-endian +// byte string, where the length prefix is encoded as its complement. +// For example, bytes 0, 1, and 2 directly represent the integer +// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, +// 2-, and 3-byte big-endian string follow. +// +// Encoding for signed types use the same general approach as for +// unsigned types, except small values use zig-zag encoding and the +// bottom bit of length prefix byte for large values is reserved as a +// sign bit. +// +// The exact boundary between small and large encodings varies +// according to the maximum number of bytes needed to encode a value +// of type typ. As a special case, 8-bit types are always encoded as a +// single byte. +// +// TODO(mdempsky): Is this level of complexity really worthwhile? +func (w *exportWriter) mpint(x *big.Int, typ types.Type) { + basic, ok := typ.Underlying().(*types.Basic) + if !ok { + panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) + } + + signed, maxBytes := intSize(basic) + + negative := x.Sign() < 0 + if !signed && negative { + panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) + } + + b := x.Bytes() + if len(b) > 0 && b[0] == 0 { + panic(internalErrorf("leading zeros")) + } + if uint(len(b)) > maxBytes { + panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) + } + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + // Check if x can use small value encoding. + if len(b) <= 1 { + var ux uint + if len(b) == 1 { + ux = uint(b[0]) + } + if signed { + ux <<= 1 + if negative { + ux-- + } + } + if ux < maxSmall { + w.data.WriteByte(byte(ux)) + return + } + } + + n := 256 - uint(len(b)) + if signed { + n = 256 - 2*uint(len(b)) + if negative { + n |= 1 + } + } + if n < maxSmall || n >= 256 { + panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) + } + + w.data.WriteByte(byte(n)) + w.data.Write(b) +} + +// mpfloat exports a multi-precision floating point number. +// +// The number's value is decomposed into mantissa × 2**exponent, where +// mantissa is an integer. The value is written out as mantissa (as a +// multi-precision integer) and then the exponent, except exponent is +// omitted if mantissa is zero. +func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { + if f.IsInf() { + panic("infinite constant") + } + + // Break into f = mant × 2**exp, with 0.5 <= mant < 1. + var mant big.Float + exp := int64(f.MantExp(&mant)) + + // Scale so that mant is an integer. + prec := mant.MinPrec() + mant.SetMantExp(&mant, int(prec)) + exp -= int64(prec) + + manti, acc := mant.Int(nil) + if acc != big.Exact { + panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) + } + w.mpint(manti, typ) + if manti.Sign() != 0 { + w.int64(exp) + } +} + +func (w *exportWriter) bool(b bool) bool { + var x uint64 + if b { + x = 1 + } + w.uint64(x) + return b +} + +func (w *exportWriter) int64(x int64) { w.data.int64(x) } +func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } +func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } + +func (w *exportWriter) localIdent(obj types.Object) { + // Anonymous parameters. + if obj == nil { + w.string("") + return + } + + name := obj.Name() + if name == "_" { + w.string("_") + return + } + + w.string(name) +} + +type intWriter struct { + bytes.Buffer +} + +func (w *intWriter) int64(x int64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutVarint(buf[:], x) + w.Write(buf[:n]) +} + +func (w *intWriter) uint64(x uint64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], x) + w.Write(buf[:n]) +} + +func assert(cond bool) { + if !cond { + panic("internal error: assertion failed") + } +} + +// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. + +// objQueue is a FIFO queue of types.Object. The zero value of objQueue is +// a ready-to-use empty queue. +type objQueue struct { + ring []types.Object + head, tail int +} + +// empty returns true if q contains no Nodes. +func (q *objQueue) empty() bool { + return q.head == q.tail +} + +// pushTail appends n to the tail of the queue. +func (q *objQueue) pushTail(obj types.Object) { + if len(q.ring) == 0 { + q.ring = make([]types.Object, 16) + } else if q.head+len(q.ring) == q.tail { + // Grow the ring. + nring := make([]types.Object, len(q.ring)*2) + // Copy the old elements. + part := q.ring[q.head%len(q.ring):] + if q.tail-q.head <= len(part) { + part = part[:q.tail-q.head] + copy(nring, part) + } else { + pos := copy(nring, part) + copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) + } + q.ring, q.head, q.tail = nring, 0, q.tail-q.head + } + + q.ring[q.tail%len(q.ring)] = obj + q.tail++ +} + +// popHead pops a node from the head of the queue. It panics if q is empty. +func (q *objQueue) popHead() types.Object { + if q.empty() { + panic("dequeue empty") + } + obj := q.ring[q.head%len(q.ring)] + q.head++ + return obj +} + +// internalError represents an error generated inside this package. +type internalError string + +func (e internalError) Error() string { return "gcimporter: " + string(e) } + +// TODO(adonovan): make this call panic, so that it's symmetric with errorf. +// Otherwise it's easy to forget to do anything with the error. +// +// TODO(adonovan): also, consider switching the names "errorf" and +// "internalErrorf" as the former is used for bugs, whose cause is +// internal inconsistency, whereas the latter is used for ordinary +// situations like bad input, whose cause is external. +func internalErrorf(format string, args ...any) error { + return internalError(fmt.Sprintf(format, args...)) +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go new file mode 100644 index 0000000..82e6c9d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -0,0 +1,1120 @@ +// 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. + +// Indexed package import. +// See iexport.go for the export data format. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "io" + "math/big" + "slices" + "sort" + "strings" + + "golang.org/x/tools/go/types/objectpath" + "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/typesinternal" +) + +type intReader struct { + *bytes.Reader + path string +} + +func (r *intReader) int64() int64 { + i, err := binary.ReadVarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +func (r *intReader) uint64() uint64 { + i, err := binary.ReadUvarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +// Keep this in sync with constants in iexport.go. +const ( + iexportVersionGo1_11 = 0 + iexportVersionPosCol = 1 + iexportVersionGo1_18 = 2 + iexportVersionGenerics = 2 + iexportVersion = iexportVersionGenerics + + iexportVersionCurrent = 2 +) + +type ident struct { + pkg *types.Package + name string +} + +const predeclReserved = 32 + +type itag uint64 + +const ( + // Types + definedType itag = iota + pointerType + sliceType + arrayType + chanType + mapType + signatureType + structType + interfaceType + typeParamType + instanceType + unionType + aliasType +) + +// Object tags +const ( + varTag = 'V' + funcTag = 'F' + genericFuncTag = 'G' + constTag = 'C' + aliasTag = 'A' + genericAliasTag = 'B' + typeParamTag = 'P' + typeTag = 'T' + genericTypeTag = 'U' +) + +// IImportData imports a package from the serialized package data +// and returns 0 and a reference to the package. +// If the export data version is not recognized or the format is otherwise +// compromised, an error is returned. +func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { + pkgs, err := iimportCommon(fset, GetPackagesFromMap(imports), data, false, path, false, nil) + if err != nil { + return 0, nil, err + } + return 0, pkgs[0], nil +} + +// IImportBundle imports a set of packages from the serialized package bundle. +func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { + return iimportCommon(fset, GetPackagesFromMap(imports), data, true, "", false, nil) +} + +// A GetPackagesFunc function obtains the non-nil symbols for a set of +// packages, creating and recursively importing them as needed. An +// implementation should store each package symbol is in the Pkg +// field of the items array. +// +// Any error causes importing to fail. This can be used to quickly read +// the import manifest of an export data file without fully decoding it. +type GetPackagesFunc = func(items []GetPackagesItem) error + +// A GetPackagesItem is a request from the importer for the package +// symbol of the specified name and path. +type GetPackagesItem struct { + Name, Path string + Pkg *types.Package // to be filled in by GetPackagesFunc call + + // private importer state + pathOffset uint64 + nameIndex map[string]uint64 +} + +// GetPackagesFromMap returns a GetPackagesFunc that retrieves +// packages from the given map of package path to package. +// +// The returned function may mutate m: each requested package that is not +// found is created with types.NewPackage and inserted into m. +func GetPackagesFromMap(m map[string]*types.Package) GetPackagesFunc { + return func(items []GetPackagesItem) error { + for i, item := range items { + pkg, ok := m[item.Path] + if !ok { + pkg = types.NewPackage(item.Path, item.Name) + m[item.Path] = pkg + } + items[i].Pkg = pkg + } + return nil + } +} + +func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, bundle bool, path string, shallow bool, reportf ReportFunc) (pkgs []*types.Package, err error) { + const currentVersion = iexportVersionCurrent + version := int64(-1) + if !debug { + defer func() { + if e := recover(); e != nil { + if bundle { + err = fmt.Errorf("%v", e) + } else if version > currentVersion { + err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) + } else { + err = fmt.Errorf("internal error while importing %q (%v); please report an issue", path, e) + } + } + }() + } + + r := &intReader{bytes.NewReader(data), path} + + if bundle { + if v := r.uint64(); v != bundleVersion { + errorf("unknown bundle format version %d", v) + } + } + + version = int64(r.uint64()) + switch version { + case iexportVersionGo1_18, iexportVersionPosCol, iexportVersionGo1_11: + default: + if version > iexportVersionGo1_18 { + errorf("unstable iexport format version %d, just rebuild compiler and std library", version) + } else { + errorf("unknown iexport format version %d", version) + } + } + + sLen := int64(r.uint64()) + var fLen int64 + var fileOffset []uint64 + if shallow { + // Shallow mode uses a different position encoding. + fLen = int64(r.uint64()) + fileOffset = make([]uint64, r.uint64()) + for i := range fileOffset { + fileOffset[i] = r.uint64() + } + } + dLen := int64(r.uint64()) + + whence, _ := r.Seek(0, io.SeekCurrent) + stringData := data[whence : whence+sLen] + fileData := data[whence+sLen : whence+sLen+fLen] + declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen] + r.Seek(sLen+fLen+dLen, io.SeekCurrent) + + p := iimporter{ + version: int(version), + ipath: path, + aliases: aliases.Enabled(), + shallow: shallow, + reportf: reportf, + + stringData: stringData, + stringCache: make(map[uint64]string), + fileOffset: fileOffset, + fileData: fileData, + fileCache: make([]*token.File, len(fileOffset)), + pkgCache: make(map[uint64]*types.Package), + + declData: declData, + pkgIndex: make(map[*types.Package]map[string]uint64), + typCache: make(map[uint64]types.Type), + // Separate map for typeparams, keyed by their package and unique + // name. + tparamIndex: make(map[ident]types.Type), + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + } + defer p.fake.setLines() // set lines for files in fset + + for i, pt := range predeclared() { + p.typCache[uint64(i)] = pt + } + + // Gather the relevant packages from the manifest. + items := make([]GetPackagesItem, r.uint64()) + uniquePkgPaths := make(map[string]bool) + for i := range items { + pkgPathOff := r.uint64() + pkgPath := p.stringAt(pkgPathOff) + pkgName := p.stringAt(r.uint64()) + _ = r.uint64() // package height; unused by go/types + + if pkgPath == "" { + pkgPath = path + } + items[i].Name = pkgName + items[i].Path = pkgPath + items[i].pathOffset = pkgPathOff + + // Read index for package. + nameIndex := make(map[string]uint64) + nSyms := r.uint64() + // In shallow mode, only the current package (i=0) has an index. + assert(!(shallow && i > 0 && nSyms != 0)) + for ; nSyms > 0; nSyms-- { + name := p.stringAt(r.uint64()) + nameIndex[name] = r.uint64() + } + + items[i].nameIndex = nameIndex + + uniquePkgPaths[pkgPath] = true + } + // Debugging #63822; hypothesis: there are duplicate PkgPaths. + if len(uniquePkgPaths) != len(items) { + reportf("found duplicate PkgPaths while reading export data manifest: %v", items) + } + + // Request packages all at once from the client, + // enabling a parallel implementation. + if err := getPackages(items); err != nil { + return nil, err // don't wrap this error + } + + // Check the results and complete the index. + pkgList := make([]*types.Package, len(items)) + for i, item := range items { + pkg := item.Pkg + if pkg == nil { + errorf("internal error: getPackages returned nil package for %q", item.Path) + } else if pkg.Path() != item.Path { + errorf("internal error: getPackages returned wrong path %q, want %q", pkg.Path(), item.Path) + } else if pkg.Name() != item.Name { + errorf("internal error: getPackages returned wrong name %s for package %q, want %s", pkg.Name(), item.Path, item.Name) + } + p.pkgCache[item.pathOffset] = pkg + p.pkgIndex[pkg] = item.nameIndex + pkgList[i] = pkg + } + + if bundle { + pkgs = make([]*types.Package, r.uint64()) + for i := range pkgs { + pkg := p.pkgAt(r.uint64()) + imps := make([]*types.Package, r.uint64()) + for j := range imps { + imps[j] = p.pkgAt(r.uint64()) + } + pkg.SetImports(imps) + pkgs[i] = pkg + } + } else { + if len(pkgList) == 0 { + errorf("no packages found for %s", path) + panic("unreachable") + } + pkgs = pkgList[:1] + + // record all referenced packages as imports + list := slices.Clone(pkgList[1:]) + sort.Sort(byPath(list)) + pkgs[0].SetImports(list) + } + + for _, pkg := range pkgs { + if pkg.Complete() { + continue + } + + names := make([]string, 0, len(p.pkgIndex[pkg])) + for name := range p.pkgIndex[pkg] { + names = append(names, name) + } + sort.Strings(names) + for _, name := range names { + p.doDecl(pkg, name) + } + + // package was imported completely and without errors + pkg.MarkComplete() + } + + // SetConstraint can't be called if the constraint type is not yet complete. + // When type params are created in the typeParamTag case of (*importReader).obj(), + // the associated constraint type may not be complete due to recursion. + // Therefore, we defer calling SetConstraint there, and call it here instead + // after all types are complete. + for _, d := range p.later { + d.t.SetConstraint(d.constraint) + } + + for _, typ := range p.interfaceList { + typ.Complete() + } + + // Workaround for golang/go#61561. See the doc for instanceList for details. + for _, typ := range p.instanceList { + if iface, _ := typ.Underlying().(*types.Interface); iface != nil { + iface.Complete() + } + } + + return pkgs, nil +} + +type setConstraintArgs struct { + t *types.TypeParam + constraint types.Type +} + +type iimporter struct { + version int + ipath string + + aliases bool + shallow bool + reportf ReportFunc // if non-nil, used to report bugs + + stringData []byte + stringCache map[uint64]string + fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i + fileData []byte + fileCache []*token.File // memoized decoding of file encoded as i + pkgCache map[uint64]*types.Package + + declData []byte + pkgIndex map[*types.Package]map[string]uint64 + typCache map[uint64]types.Type + tparamIndex map[ident]types.Type + + fake fakeFileSet + interfaceList []*types.Interface + + // Workaround for the go/types bug golang/go#61561: instances produced during + // instantiation may contain incomplete interfaces. Here we only complete the + // underlying type of the instance, which is the most common case but doesn't + // handle parameterized interface literals defined deeper in the type. + instanceList []types.Type // instances for later completion (see golang/go#61561) + + // Arguments for calls to SetConstraint that are deferred due to recursive types + later []setConstraintArgs + + indent int // for tracing support +} + +func (p *iimporter) trace(format string, args ...any) { + if !trace { + // Call sites should also be guarded, but having this check here allows + // easily enabling/disabling debug trace statements. + return + } + fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) +} + +func (p *iimporter) doDecl(pkg *types.Package, name string) { + if debug { + p.trace("import decl %s", name) + p.indent++ + defer func() { + p.indent-- + p.trace("=> %s", name) + }() + } + // See if we've already imported this declaration. + if obj := pkg.Scope().Lookup(name); obj != nil { + return + } + + off, ok := p.pkgIndex[pkg][name] + if !ok { + // In deep mode, the index should be complete. In shallow + // mode, we should have already recursively loaded necessary + // dependencies so the above Lookup succeeds. + errorf("%v.%v not in index", pkg, name) + } + + r := &importReader{p: p, currPkg: pkg} + r.declReader.Reset(p.declData[off:]) + + r.obj(name) +} + +func (p *iimporter) stringAt(off uint64) string { + if s, ok := p.stringCache[off]; ok { + return s + } + + slen, n := binary.Uvarint(p.stringData[off:]) + if n <= 0 { + errorf("varint failed") + } + spos := off + uint64(n) + s := string(p.stringData[spos : spos+slen]) + p.stringCache[off] = s + return s +} + +func (p *iimporter) fileAt(index uint64) *token.File { + file := p.fileCache[index] + if file == nil { + off := p.fileOffset[index] + file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath}) + p.fileCache[index] = file + } + return file +} + +func (p *iimporter) decodeFile(rd intReader) *token.File { + filename := p.stringAt(rd.uint64()) + size := int(rd.uint64()) + file := p.fake.fset.AddFile(filename, -1, size) + + // SetLines requires a nondecreasing sequence. + // Because it is common for clients to derive the interval + // [start, start+len(name)] from a start position, and we + // want to ensure that the end offset is on the same line, + // we fill in the gaps of the sparse encoding with values + // that strictly increase by the largest possible amount. + // This allows us to avoid having to record the actual end + // offset of each needed line. + + lines := make([]int, int(rd.uint64())) + var index, offset int + for i, n := 0, int(rd.uint64()); i < n; i++ { + index += int(rd.uint64()) + offset += int(rd.uint64()) + lines[index] = offset + + // Ensure monotonicity between points. + for j := index - 1; j > 0 && lines[j] == 0; j-- { + lines[j] = lines[j+1] - 1 + } + } + + // Ensure monotonicity after last point. + for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- { + size-- + lines[j] = size + } + + if !file.SetLines(lines) { + errorf("SetLines failed: %d", lines) // can't happen + } + return file +} + +func (p *iimporter) pkgAt(off uint64) *types.Package { + if pkg, ok := p.pkgCache[off]; ok { + return pkg + } + path := p.stringAt(off) + errorf("missing package %q in %q", path, p.ipath) + return nil +} + +func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { + if t, ok := p.typCache[off]; ok && canReuse(base, t) { + return t + } + + if off < predeclReserved { + errorf("predeclared type missing from cache: %v", off) + } + + r := &importReader{p: p} + r.declReader.Reset(p.declData[off-predeclReserved:]) + t := r.doType(base) + + if canReuse(base, t) { + p.typCache[off] = t + } + return t +} + +// canReuse reports whether the type rhs on the RHS of the declaration for def +// may be re-used. +// +// Specifically, if def is non-nil and rhs is an interface type with methods, it +// may not be re-used because we have a convention of setting the receiver type +// for interface methods to def. +func canReuse(def *types.Named, rhs types.Type) bool { + if def == nil { + return true + } + iface, _ := types.Unalias(rhs).(*types.Interface) + if iface == nil { + return true + } + // Don't use iface.Empty() here as iface may not be complete. + return iface.NumEmbeddeds() == 0 && iface.NumExplicitMethods() == 0 +} + +type importReader struct { + p *iimporter + declReader bytes.Reader + currPkg *types.Package + prevFile string + prevLine int64 + prevColumn int64 +} + +// markBlack is redefined in iimport_go123.go, to work around golang/go#69912. +// +// If TypeNames are not marked black (in the sense of go/types cycle +// detection), they may be mutated when dot-imported. Fix this by punching a +// hole through the type, when compiling with Go 1.23. (The bug has been fixed +// for 1.24, but the fix was not worth back-porting). +var markBlack = func(name *types.TypeName) {} + +func (r *importReader) obj(name string) { + tag := r.byte() + pos := r.pos() + + switch tag { + case aliasTag, genericAliasTag: + var tparams []*types.TypeParam + if tag == genericAliasTag { + tparams = r.tparamList() + } + typ := r.typ() + obj := aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ, tparams) + markBlack(obj) // workaround for golang/go#69912 + r.declare(obj) + + case constTag: + typ, val := r.value() + + r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) + + case funcTag, genericFuncTag: + var tparams []*types.TypeParam + if tag == genericFuncTag { + tparams = r.tparamList() + } + sig := r.signature(nil, nil, tparams) + r.declare(types.NewFunc(pos, r.currPkg, name, sig)) + + case typeTag, genericTypeTag: + // Types can be recursive. We need to setup a stub + // declaration before recursing. + obj := types.NewTypeName(pos, r.currPkg, name, nil) + named := types.NewNamed(obj, nil, nil) + + markBlack(obj) // workaround for golang/go#69912 + + // Declare obj before calling r.tparamList, so the new type name is recognized + // if used in the constraint of one of its own typeparams (see #48280). + r.declare(obj) + if tag == genericTypeTag { + tparams := r.tparamList() + named.SetTypeParams(tparams) + } + + underlying := r.p.typAt(r.uint64(), named).Underlying() + named.SetUnderlying(underlying) + + if !isInterface(underlying) { + for n := r.uint64(); n > 0; n-- { + mpos := r.pos() + mname := r.ident() + recv := r.param() + + // If the receiver has any targs, set those as the + // rparams of the method (since those are the + // typeparams being used in the method sig/body). + _, recvNamed := typesinternal.ReceiverNamed(recv) + targs := recvNamed.TypeArgs() + var rparams []*types.TypeParam + if targs.Len() > 0 { + rparams = make([]*types.TypeParam, targs.Len()) + for i := range rparams { + rparams[i] = types.Unalias(targs.At(i)).(*types.TypeParam) + } + } + msig := r.signature(recv, rparams, nil) + + named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) + } + } + + case typeParamTag: + // We need to "declare" a typeparam in order to have a name that + // can be referenced recursively (if needed) in the type param's + // bound. + if r.p.version < iexportVersionGenerics { + errorf("unexpected type param type") + } + name0 := tparamName(name) + tn := types.NewTypeName(pos, r.currPkg, name0, nil) + t := types.NewTypeParam(tn, nil) + + // To handle recursive references to the typeparam within its + // bound, save the partial type in tparamIndex before reading the bounds. + id := ident{r.currPkg, name} + r.p.tparamIndex[id] = t + var implicit bool + if r.p.version >= iexportVersionGo1_18 { + implicit = r.bool() + } + constraint := r.typ() + if implicit { + iface, _ := types.Unalias(constraint).(*types.Interface) + if iface == nil { + errorf("non-interface constraint marked implicit") + } + iface.MarkImplicit() + } + // The constraint type may not be complete, if we + // are in the middle of a type recursion involving type + // constraints. So, we defer SetConstraint until we have + // completely set up all types in ImportData. + r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) + + case varTag: + typ := r.typ() + + v := types.NewVar(pos, r.currPkg, name, typ) + typesinternal.SetVarKind(v, typesinternal.PackageVar) + r.declare(v) + + default: + errorf("unexpected tag: %v", tag) + } +} + +func (r *importReader) declare(obj types.Object) { + obj.Pkg().Scope().Insert(obj) +} + +func (r *importReader) value() (typ types.Type, val constant.Value) { + typ = r.typ() + if r.p.version >= iexportVersionGo1_18 { + // TODO: add support for using the kind. + _ = constant.Kind(r.int64()) + } + + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { + case types.IsBoolean: + val = constant.MakeBool(r.bool()) + + case types.IsString: + val = constant.MakeString(r.string()) + + case types.IsInteger: + var x big.Int + r.mpint(&x, b) + val = constant.Make(&x) + + case types.IsFloat: + val = r.mpfloat(b) + + case types.IsComplex: + re := r.mpfloat(b) + im := r.mpfloat(b) + val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + + default: + if b.Kind() == types.Invalid { + val = constant.MakeUnknown() + return + } + errorf("unexpected type %v", typ) // panics + panic("unreachable") + } + + return +} + +func intSize(b *types.Basic) (signed bool, maxBytes uint) { + if (b.Info() & types.IsUntyped) != 0 { + return true, 64 + } + + switch b.Kind() { + case types.Float32, types.Complex64: + return true, 3 + case types.Float64, types.Complex128: + return true, 7 + } + + signed = (b.Info() & types.IsUnsigned) == 0 + switch b.Kind() { + case types.Int8, types.Uint8: + maxBytes = 1 + case types.Int16, types.Uint16: + maxBytes = 2 + case types.Int32, types.Uint32: + maxBytes = 4 + default: + maxBytes = 8 + } + + return +} + +func (r *importReader) mpint(x *big.Int, typ *types.Basic) { + signed, maxBytes := intSize(typ) + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + n, _ := r.declReader.ReadByte() + if uint(n) < maxSmall { + v := int64(n) + if signed { + v >>= 1 + if n&1 != 0 { + v = ^v + } + } + x.SetInt64(v) + return + } + + v := -n + if signed { + v = -(n &^ 1) >> 1 + } + if v < 1 || uint(v) > maxBytes { + errorf("weird decoding: %v, %v => %v", n, signed, v) + } + b := make([]byte, v) + io.ReadFull(&r.declReader, b) + x.SetBytes(b) + if signed && n&1 != 0 { + x.Neg(x) + } +} + +func (r *importReader) mpfloat(typ *types.Basic) constant.Value { + var mant big.Int + r.mpint(&mant, typ) + var f big.Float + f.SetInt(&mant) + if f.Sign() != 0 { + f.SetMantExp(&f, int(r.int64())) + } + return constant.Make(&f) +} + +func (r *importReader) ident() string { + return r.string() +} + +func (r *importReader) qualifiedIdent() (*types.Package, string) { + name := r.string() + pkg := r.pkg() + return pkg, name +} + +func (r *importReader) pos() token.Pos { + if r.p.shallow { + // precise offsets are encoded only in shallow mode + return r.posv2() + } + if r.p.version >= iexportVersionPosCol { + r.posv1() + } else { + r.posv0() + } + + if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 { + return token.NoPos + } + return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn)) +} + +func (r *importReader) posv0() { + delta := r.int64() + if delta != deltaNewFile { + r.prevLine += delta + } else if l := r.int64(); l == -1 { + r.prevLine += deltaNewFile + } else { + r.prevFile = r.string() + r.prevLine = l + } +} + +func (r *importReader) posv1() { + delta := r.int64() + r.prevColumn += delta >> 1 + if delta&1 != 0 { + delta = r.int64() + r.prevLine += delta >> 1 + if delta&1 != 0 { + r.prevFile = r.string() + } + } +} + +func (r *importReader) posv2() token.Pos { + file := r.uint64() + if file == 0 { + return token.NoPos + } + tf := r.p.fileAt(file - 1) + return tf.Pos(int(r.uint64())) +} + +func (r *importReader) typ() types.Type { + return r.p.typAt(r.uint64(), nil) +} + +func isInterface(t types.Type) bool { + _, ok := types.Unalias(t).(*types.Interface) + return ok +} + +func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } +func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } + +func (r *importReader) doType(base *types.Named) (res types.Type) { + k := r.kind() + if debug { + r.p.trace("importing type %d (base: %v)", k, base) + r.p.indent++ + defer func() { + r.p.indent-- + r.p.trace("=> %s", res) + }() + } + switch k { + default: + errorf("unexpected kind tag in %q: %v", r.p.ipath, k) + return nil + + case aliasType, definedType: + pkg, name := r.qualifiedIdent() + r.p.doDecl(pkg, name) + return pkg.Scope().Lookup(name).(*types.TypeName).Type() + case pointerType: + return types.NewPointer(r.typ()) + case sliceType: + return types.NewSlice(r.typ()) + case arrayType: + n := r.uint64() + return types.NewArray(r.typ(), int64(n)) + case chanType: + dir := chanDir(int(r.uint64())) + return types.NewChan(dir, r.typ()) + case mapType: + return types.NewMap(r.typ(), r.typ()) + case signatureType: + r.currPkg = r.pkg() + return r.signature(nil, nil, nil) + + case structType: + r.currPkg = r.pkg() + + fields := make([]*types.Var, r.uint64()) + tags := make([]string, len(fields)) + for i := range fields { + var field *types.Var + if r.p.shallow { + field, _ = r.objectPathObject().(*types.Var) + } + + fpos := r.pos() + fname := r.ident() + ftyp := r.typ() + emb := r.bool() + tag := r.string() + + // Either this is not a shallow import, the field is local, or the + // encoded objectPath failed to produce an object (a bug). + // + // Even in this last, buggy case, fall back on creating a new field. As + // discussed in iexport.go, this is not correct, but mostly works and is + // preferable to failing (for now at least). + if field == nil { + field = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + } + + fields[i] = field + tags[i] = tag + } + return types.NewStruct(fields, tags) + + case interfaceType: + r.currPkg = r.pkg() + + embeddeds := make([]types.Type, r.uint64()) + for i := range embeddeds { + _ = r.pos() + embeddeds[i] = r.typ() + } + + methods := make([]*types.Func, r.uint64()) + for i := range methods { + var method *types.Func + if r.p.shallow { + method, _ = r.objectPathObject().(*types.Func) + } + + mpos := r.pos() + mname := r.ident() + + // TODO(mdempsky): Matches bimport.go, but I + // don't agree with this. + var recv *types.Var + if base != nil { + recv = types.NewVar(token.NoPos, r.currPkg, "", base) + } + msig := r.signature(recv, nil, nil) + + if method == nil { + method = types.NewFunc(mpos, r.currPkg, mname, msig) + } + methods[i] = method + } + + typ := types.NewInterfaceType(methods, embeddeds) + r.p.interfaceList = append(r.p.interfaceList, typ) + return typ + + case typeParamType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected type param type") + } + pkg, name := r.qualifiedIdent() + id := ident{pkg, name} + if t, ok := r.p.tparamIndex[id]; ok { + // We're already in the process of importing this typeparam. + return t + } + // Otherwise, import the definition of the typeparam now. + r.p.doDecl(pkg, name) + return r.p.tparamIndex[id] + + case instanceType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected instantiation type") + } + // pos does not matter for instances: they are positioned on the original + // type. + _ = r.pos() + len := r.uint64() + targs := make([]types.Type, len) + for i := range targs { + targs[i] = r.typ() + } + baseType := r.typ() + // The imported instantiated type doesn't include any methods, so + // we must always use the methods of the base (orig) type. + // TODO provide a non-nil *Environment + t, _ := types.Instantiate(nil, baseType, targs, false) + + // Workaround for golang/go#61561. See the doc for instanceList for details. + r.p.instanceList = append(r.p.instanceList, t) + return t + + case unionType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected instantiation type") + } + terms := make([]*types.Term, r.uint64()) + for i := range terms { + terms[i] = types.NewTerm(r.bool(), r.typ()) + } + return types.NewUnion(terms) + } +} + +func (r *importReader) kind() itag { + return itag(r.uint64()) +} + +// objectPathObject is the inverse of exportWriter.objectPath. +// +// In shallow mode, certain fields and methods may need to be looked up in an +// imported package. See the doc for exportWriter.objectPath for a full +// explanation. +func (r *importReader) objectPathObject() types.Object { + objPath := objectpath.Path(r.string()) + if objPath == "" { + return nil + } + pkg := r.pkg() + obj, err := objectpath.Object(pkg, objPath) + if err != nil { + if r.p.reportf != nil { + r.p.reportf("failed to find object for objectPath %q: %v", objPath, err) + } + } + return obj +} + +func (r *importReader) signature(recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { + params := r.paramList() + results := r.paramList() + variadic := params.Len() > 0 && r.bool() + return types.NewSignatureType(recv, rparams, tparams, params, results, variadic) +} + +func (r *importReader) tparamList() []*types.TypeParam { + n := r.uint64() + if n == 0 { + return nil + } + xs := make([]*types.TypeParam, n) + for i := range xs { + // Note: the standard library importer is tolerant of nil types here, + // though would panic in SetTypeParams. + xs[i] = types.Unalias(r.typ()).(*types.TypeParam) + } + return xs +} + +func (r *importReader) paramList() *types.Tuple { + xs := make([]*types.Var, r.uint64()) + for i := range xs { + xs[i] = r.param() + } + return types.NewTuple(xs...) +} + +func (r *importReader) param() *types.Var { + pos := r.pos() + name := r.ident() + typ := r.typ() + return types.NewParam(pos, r.currPkg, name, typ) +} + +func (r *importReader) bool() bool { + return r.uint64() != 0 +} + +func (r *importReader) int64() int64 { + n, err := binary.ReadVarint(&r.declReader) + if err != nil { + errorf("readVarint: %v", err) + } + return n +} + +func (r *importReader) uint64() uint64 { + n, err := binary.ReadUvarint(&r.declReader) + if err != nil { + errorf("readUvarint: %v", err) + } + return n +} + +func (r *importReader) byte() byte { + x, err := r.declReader.ReadByte() + if err != nil { + errorf("declReader.ReadByte: %v", err) + } + return x +} + +type byPath []*types.Package + +func (a byPath) Len() int { return len(a) } +func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go new file mode 100644 index 0000000..7586bfa --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go @@ -0,0 +1,53 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.22 && !go1.24 + +package gcimporter + +import ( + "go/token" + "go/types" + "unsafe" +) + +// TODO(rfindley): delete this workaround once go1.24 is assured. + +func init() { + // Update markBlack so that it correctly sets the color + // of imported TypeNames. + // + // See the doc comment for markBlack for details. + + type color uint32 + const ( + white color = iota + black + grey + ) + type object struct { + _ *types.Scope + _ token.Pos + _ *types.Package + _ string + _ types.Type + _ uint32 + color_ color + _ token.Pos + } + type typeName struct { + object + } + + // If the size of types.TypeName changes, this will fail to compile. + const delta = int64(unsafe.Sizeof(typeName{})) - int64(unsafe.Sizeof(types.TypeName{})) + var _ [-delta * delta]int + + markBlack = func(obj *types.TypeName) { + type uP = unsafe.Pointer + var ptr *typeName + *(*uP)(uP(&ptr)) = uP(obj) + ptr.color_ = black + } +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go b/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go new file mode 100644 index 0000000..907c855 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go @@ -0,0 +1,91 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gcimporter + +import ( + "go/types" + "sync" +) + +// predecl is a cache for the predeclared types in types.Universe. +// +// Cache a distinct result based on the runtime value of any. +// The pointer value of the any type varies based on GODEBUG settings. +var predeclMu sync.Mutex +var predecl map[types.Type][]types.Type + +func predeclared() []types.Type { + anyt := types.Universe.Lookup("any").Type() + + predeclMu.Lock() + defer predeclMu.Unlock() + + if pre, ok := predecl[anyt]; ok { + return pre + } + + if predecl == nil { + predecl = make(map[types.Type][]types.Type) + } + + decls := []types.Type{ // basic types + types.Typ[types.Bool], + types.Typ[types.Int], + types.Typ[types.Int8], + types.Typ[types.Int16], + types.Typ[types.Int32], + types.Typ[types.Int64], + types.Typ[types.Uint], + types.Typ[types.Uint8], + types.Typ[types.Uint16], + types.Typ[types.Uint32], + types.Typ[types.Uint64], + types.Typ[types.Uintptr], + types.Typ[types.Float32], + types.Typ[types.Float64], + types.Typ[types.Complex64], + types.Typ[types.Complex128], + types.Typ[types.String], + + // basic type aliases + types.Universe.Lookup("byte").Type(), + types.Universe.Lookup("rune").Type(), + + // error + types.Universe.Lookup("error").Type(), + + // untyped types + types.Typ[types.UntypedBool], + types.Typ[types.UntypedInt], + types.Typ[types.UntypedRune], + types.Typ[types.UntypedFloat], + types.Typ[types.UntypedComplex], + types.Typ[types.UntypedString], + types.Typ[types.UntypedNil], + + // package unsafe + types.Typ[types.UnsafePointer], + + // invalid type + types.Typ[types.Invalid], // only appears in packages with errors + + // used internally by gc; never used by this package or in .a files + anyType{}, + + // comparable + types.Universe.Lookup("comparable").Type(), + + // any + anyt, + } + + predecl[anyt] = decls + return decls +} + +type anyType struct{} + +func (t anyType) Underlying() types.Type { return t } +func (t anyType) String() string { return "any" } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support.go b/vendor/golang.org/x/tools/internal/gcimporter/support.go new file mode 100644 index 0000000..4af810d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/support.go @@ -0,0 +1,30 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gcimporter + +import ( + "bufio" + "io" + "strconv" + "strings" +) + +// Copy of $GOROOT/src/cmd/internal/archive.ReadHeader. +func readArchiveHeader(b *bufio.Reader, name string) int { + // architecture-independent object file output + const HeaderSize = 60 + + var buf [HeaderSize]byte + if _, err := io.ReadFull(b, buf[:]); err != nil { + return -1 + } + aname := strings.Trim(string(buf[0:16]), " ") + if !strings.HasPrefix(aname, name) { + return -1 + } + asize := strings.Trim(string(buf[48:58]), " ") + i, _ := strconv.Atoi(asize) + return i +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go new file mode 100644 index 0000000..37b4a39 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go @@ -0,0 +1,761 @@ +// 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. + +// Derived from go/internal/gcimporter/ureader.go + +package gcimporter + +import ( + "fmt" + "go/token" + "go/types" + "sort" + + "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/pkgbits" + "golang.org/x/tools/internal/typesinternal" +) + +// A pkgReader holds the shared state for reading a unified IR package +// description. +type pkgReader struct { + pkgbits.PkgDecoder + + fake fakeFileSet + + ctxt *types.Context + imports map[string]*types.Package // previously imported packages, indexed by path + aliases bool // create types.Alias nodes + + // lazily initialized arrays corresponding to the unified IR + // PosBase, Pkg, and Type sections, respectively. + posBases []string // position bases (i.e., file names) + pkgs []*types.Package + typs []types.Type + + // laterFns holds functions that need to be invoked at the end of + // import reading. + laterFns []func() + // laterFors is used in case of 'type A B' to ensure that B is processed before A. + laterFors map[types.Type]int + + // ifaces holds a list of constructed Interfaces, which need to have + // Complete called after importing is done. + ifaces []*types.Interface +} + +// later adds a function to be invoked at the end of import reading. +func (pr *pkgReader) later(fn func()) { + pr.laterFns = append(pr.laterFns, fn) +} + +// See cmd/compile/internal/noder.derivedInfo. +type derivedInfo struct { + idx pkgbits.Index +} + +// See cmd/compile/internal/noder.typeInfo. +type typeInfo struct { + idx pkgbits.Index + derived bool +} + +func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + if !debug { + defer func() { + if x := recover(); x != nil { + err = fmt.Errorf("internal error in importing %q (%v); please report an issue", path, x) + } + }() + } + + s := string(data) + input := pkgbits.NewPkgDecoder(path, s) + pkg = readUnifiedPackage(fset, nil, imports, input) + return +} + +// laterFor adds a function to be invoked at the end of import reading, and records the type that function is finishing. +func (pr *pkgReader) laterFor(t types.Type, fn func()) { + if pr.laterFors == nil { + pr.laterFors = make(map[types.Type]int) + } + pr.laterFors[t] = len(pr.laterFns) + pr.laterFns = append(pr.laterFns, fn) +} + +// readUnifiedPackage reads a package description from the given +// unified IR export data decoder. +func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { + pr := pkgReader{ + PkgDecoder: input, + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + + ctxt: ctxt, + imports: imports, + aliases: aliases.Enabled(), + + posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), + pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), + typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), + } + defer pr.fake.setLines() + + r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) + pkg := r.pkg() + if r.Version().Has(pkgbits.HasInit) { + r.Bool() + } + + for i, n := 0, r.Len(); i < n; i++ { + // As if r.obj(), but avoiding the Scope.Lookup call, + // to avoid eager loading of imports. + r.Sync(pkgbits.SyncObject) + if r.Version().Has(pkgbits.DerivedFuncInstance) { + assert(!r.Bool()) + } + r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + assert(r.Len() == 0) + } + + r.Sync(pkgbits.SyncEOF) + + for _, fn := range pr.laterFns { + fn() + } + + for _, iface := range pr.ifaces { + iface.Complete() + } + + // Imports() of pkg are all of the transitive packages that were loaded. + var imps []*types.Package + for _, imp := range pr.pkgs { + if imp != nil && imp != pkg { + imps = append(imps, imp) + } + } + sort.Sort(byPath(imps)) + pkg.SetImports(imps) + + pkg.MarkComplete() + return pkg +} + +// A reader holds the state for reading a single unified IR element +// within a package. +type reader struct { + pkgbits.Decoder + + p *pkgReader + + dict *readerDict +} + +// A readerDict holds the state for type parameters that parameterize +// the current unified IR element. +type readerDict struct { + // bounds is a slice of typeInfos corresponding to the underlying + // bounds of the element's type parameters. + bounds []typeInfo + + // tparams is a slice of the constructed TypeParams for the element. + tparams []*types.TypeParam + + // derived is a slice of types derived from tparams, which may be + // instantiated while reading the current element. + derived []derivedInfo + derivedTypes []types.Type // lazily instantiated from derived +} + +func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { + return &reader{ + Decoder: pr.NewDecoder(k, idx, marker), + p: pr, + } +} + +func (pr *pkgReader) tempReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { + return &reader{ + Decoder: pr.TempDecoder(k, idx, marker), + p: pr, + } +} + +func (pr *pkgReader) retireReader(r *reader) { + pr.RetireDecoder(&r.Decoder) +} + +// @@@ Positions + +func (r *reader) pos() token.Pos { + r.Sync(pkgbits.SyncPos) + if !r.Bool() { + return token.NoPos + } + + // TODO(mdempsky): Delta encoding. + posBase := r.posBase() + line := r.Uint() + col := r.Uint() + return r.p.fake.pos(posBase, int(line), int(col)) +} + +func (r *reader) posBase() string { + return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) +} + +func (pr *pkgReader) posBaseIdx(idx pkgbits.Index) string { + if b := pr.posBases[idx]; b != "" { + return b + } + + var filename string + { + r := pr.tempReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) + + // Within types2, position bases have a lot more details (e.g., + // keeping track of where //line directives appeared exactly). + // + // For go/types, we just track the file name. + + filename = r.String() + + if r.Bool() { // file base + // Was: "b = token.NewTrimmedFileBase(filename, true)" + } else { // line base + pos := r.pos() + line := r.Uint() + col := r.Uint() + + // Was: "b = token.NewLineBase(pos, filename, true, line, col)" + _, _, _ = pos, line, col + } + pr.retireReader(r) + } + b := filename + pr.posBases[idx] = b + return b +} + +// @@@ Packages + +func (r *reader) pkg() *types.Package { + r.Sync(pkgbits.SyncPkg) + return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) +} + +func (pr *pkgReader) pkgIdx(idx pkgbits.Index) *types.Package { + // TODO(mdempsky): Consider using some non-nil pointer to indicate + // the universe scope, so we don't need to keep re-reading it. + if pkg := pr.pkgs[idx]; pkg != nil { + return pkg + } + + pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() + pr.pkgs[idx] = pkg + return pkg +} + +func (r *reader) doPkg() *types.Package { + path := r.String() + switch path { + // cmd/compile emits path="main" for main packages because + // that's the linker symbol prefix it used; but we need + // the package's path as it would be reported by go list, + // hence "main" below. + // See test at go/packages.TestMainPackagePathInModeTypes. + case "", "main": + path = r.p.PkgPath() + case "builtin": + return nil // universe + case "unsafe": + return types.Unsafe + } + + if pkg := r.p.imports[path]; pkg != nil { + return pkg + } + + name := r.String() + + pkg := types.NewPackage(path, name) + r.p.imports[path] = pkg + + return pkg +} + +// @@@ Types + +func (r *reader) typ() types.Type { + return r.p.typIdx(r.typInfo(), r.dict) +} + +func (r *reader) typInfo() typeInfo { + r.Sync(pkgbits.SyncType) + if r.Bool() { + return typeInfo{idx: pkgbits.Index(r.Len()), derived: true} + } + return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} +} + +func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { + idx := info.idx + var where *types.Type + if info.derived { + where = &dict.derivedTypes[idx] + idx = dict.derived[idx].idx + } else { + where = &pr.typs[idx] + } + + if typ := *where; typ != nil { + return typ + } + + var typ types.Type + { + r := pr.tempReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) + r.dict = dict + + typ = r.doTyp() + assert(typ != nil) + pr.retireReader(r) + } + // See comment in pkgReader.typIdx explaining how this happens. + if prev := *where; prev != nil { + return prev + } + + *where = typ + return typ +} + +func (r *reader) doTyp() (res types.Type) { + switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { + default: + errorf("unhandled type tag: %v", tag) + panic("unreachable") + + case pkgbits.TypeBasic: + return types.Typ[r.Len()] + + case pkgbits.TypeNamed: + obj, targs := r.obj() + name := obj.(*types.TypeName) + if len(targs) != 0 { + t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) + return t + } + return name.Type() + + case pkgbits.TypeTypeParam: + return r.dict.tparams[r.Len()] + + case pkgbits.TypeArray: + len := int64(r.Uint64()) + return types.NewArray(r.typ(), len) + case pkgbits.TypeChan: + dir := types.ChanDir(r.Len()) + return types.NewChan(dir, r.typ()) + case pkgbits.TypeMap: + return types.NewMap(r.typ(), r.typ()) + case pkgbits.TypePointer: + return types.NewPointer(r.typ()) + case pkgbits.TypeSignature: + return r.signature(nil, nil, nil) + case pkgbits.TypeSlice: + return types.NewSlice(r.typ()) + case pkgbits.TypeStruct: + return r.structType() + case pkgbits.TypeInterface: + return r.interfaceType() + case pkgbits.TypeUnion: + return r.unionType() + } +} + +func (r *reader) structType() *types.Struct { + fields := make([]*types.Var, r.Len()) + var tags []string + for i := range fields { + pos := r.pos() + pkg, name := r.selector() + ftyp := r.typ() + tag := r.String() + embedded := r.Bool() + + fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) + if tag != "" { + for len(tags) < i { + tags = append(tags, "") + } + tags = append(tags, tag) + } + } + return types.NewStruct(fields, tags) +} + +func (r *reader) unionType() *types.Union { + terms := make([]*types.Term, r.Len()) + for i := range terms { + terms[i] = types.NewTerm(r.Bool(), r.typ()) + } + return types.NewUnion(terms) +} + +func (r *reader) interfaceType() *types.Interface { + methods := make([]*types.Func, r.Len()) + embeddeds := make([]types.Type, r.Len()) + implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() + + for i := range methods { + pos := r.pos() + pkg, name := r.selector() + mtyp := r.signature(nil, nil, nil) + methods[i] = types.NewFunc(pos, pkg, name, mtyp) + } + + for i := range embeddeds { + embeddeds[i] = r.typ() + } + + iface := types.NewInterfaceType(methods, embeddeds) + if implicit { + iface.MarkImplicit() + } + + // We need to call iface.Complete(), but if there are any embedded + // defined types, then we may not have set their underlying + // interface type yet. So we need to defer calling Complete until + // after we've called SetUnderlying everywhere. + // + // TODO(mdempsky): After CL 424876 lands, it should be safe to call + // iface.Complete() immediately. + r.p.ifaces = append(r.p.ifaces, iface) + + return iface +} + +func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { + r.Sync(pkgbits.SyncSignature) + + params := r.params() + results := r.params() + variadic := r.Bool() + + return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) +} + +func (r *reader) params() *types.Tuple { + r.Sync(pkgbits.SyncParams) + + params := make([]*types.Var, r.Len()) + for i := range params { + params[i] = r.param() + } + + return types.NewTuple(params...) +} + +func (r *reader) param() *types.Var { + r.Sync(pkgbits.SyncParam) + + pos := r.pos() + pkg, name := r.localIdent() + typ := r.typ() + + return types.NewParam(pos, pkg, name, typ) +} + +// @@@ Objects + +func (r *reader) obj() (types.Object, []types.Type) { + r.Sync(pkgbits.SyncObject) + + if r.Version().Has(pkgbits.DerivedFuncInstance) { + assert(!r.Bool()) + } + + pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + obj := pkgScope(pkg).Lookup(name) + + targs := make([]types.Type, r.Len()) + for i := range targs { + targs[i] = r.typ() + } + + return obj, targs +} + +func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { + + var objPkg *types.Package + var objName string + var tag pkgbits.CodeObj + { + rname := pr.tempReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) + + objPkg, objName = rname.qualifiedIdent() + assert(objName != "") + + tag = pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) + pr.retireReader(rname) + } + + if tag == pkgbits.ObjStub { + assert(objPkg == nil || objPkg == types.Unsafe) + return objPkg, objName + } + + // Ignore local types promoted to global scope (#55110). + if _, suffix := splitVargenSuffix(objName); suffix != "" { + return objPkg, objName + } + + if objPkg.Scope().Lookup(objName) == nil { + dict := pr.objDictIdx(idx) + + r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) + r.dict = dict + + declare := func(obj types.Object) { + objPkg.Scope().Insert(obj) + } + + switch tag { + default: + panic("weird") + + case pkgbits.ObjAlias: + pos := r.pos() + var tparams []*types.TypeParam + if r.Version().Has(pkgbits.AliasTypeParamNames) { + tparams = r.typeParamNames() + } + typ := r.typ() + declare(aliases.NewAlias(r.p.aliases, pos, objPkg, objName, typ, tparams)) + + case pkgbits.ObjConst: + pos := r.pos() + typ := r.typ() + val := r.Value() + declare(types.NewConst(pos, objPkg, objName, typ, val)) + + case pkgbits.ObjFunc: + pos := r.pos() + tparams := r.typeParamNames() + sig := r.signature(nil, nil, tparams) + declare(types.NewFunc(pos, objPkg, objName, sig)) + + case pkgbits.ObjType: + pos := r.pos() + + obj := types.NewTypeName(pos, objPkg, objName, nil) + named := types.NewNamed(obj, nil, nil) + declare(obj) + + named.SetTypeParams(r.typeParamNames()) + + setUnderlying := func(underlying types.Type) { + // If the underlying type is an interface, we need to + // duplicate its methods so we can replace the receiver + // parameter's type (#49906). + if iface, ok := types.Unalias(underlying).(*types.Interface); ok && iface.NumExplicitMethods() != 0 { + methods := make([]*types.Func, iface.NumExplicitMethods()) + for i := range methods { + fn := iface.ExplicitMethod(i) + sig := fn.Type().(*types.Signature) + + recv := types.NewVar(fn.Pos(), fn.Pkg(), "", named) + typesinternal.SetVarKind(recv, typesinternal.RecvVar) + methods[i] = types.NewFunc(fn.Pos(), fn.Pkg(), fn.Name(), types.NewSignatureType(recv, nil, nil, sig.Params(), sig.Results(), sig.Variadic())) + } + + embeds := make([]types.Type, iface.NumEmbeddeds()) + for i := range embeds { + embeds[i] = iface.EmbeddedType(i) + } + + newIface := types.NewInterfaceType(methods, embeds) + r.p.ifaces = append(r.p.ifaces, newIface) + underlying = newIface + } + + named.SetUnderlying(underlying) + } + + // Since go.dev/cl/455279, we can assume rhs.Underlying() will + // always be non-nil. However, to temporarily support users of + // older snapshot releases, we continue to fallback to the old + // behavior for now. + // + // TODO(mdempsky): Remove fallback code and simplify after + // allowing time for snapshot users to upgrade. + rhs := r.typ() + if underlying := rhs.Underlying(); underlying != nil { + setUnderlying(underlying) + } else { + pk := r.p + pk.laterFor(named, func() { + // First be sure that the rhs is initialized, if it needs to be initialized. + delete(pk.laterFors, named) // prevent cycles + if i, ok := pk.laterFors[rhs]; ok { + f := pk.laterFns[i] + pk.laterFns[i] = func() {} // function is running now, so replace it with a no-op + f() // initialize RHS + } + setUnderlying(rhs.Underlying()) + }) + } + + for i, n := 0, r.Len(); i < n; i++ { + named.AddMethod(r.method()) + } + + case pkgbits.ObjVar: + pos := r.pos() + typ := r.typ() + v := types.NewVar(pos, objPkg, objName, typ) + typesinternal.SetVarKind(v, typesinternal.PackageVar) + declare(v) + } + } + + return objPkg, objName +} + +func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict { + + var dict readerDict + + { + r := pr.tempReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) + if implicits := r.Len(); implicits != 0 { + errorf("unexpected object with %v implicit type parameter(s)", implicits) + } + + dict.bounds = make([]typeInfo, r.Len()) + for i := range dict.bounds { + dict.bounds[i] = r.typInfo() + } + + dict.derived = make([]derivedInfo, r.Len()) + dict.derivedTypes = make([]types.Type, len(dict.derived)) + for i := range dict.derived { + dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)} + if r.Version().Has(pkgbits.DerivedInfoNeeded) { + assert(!r.Bool()) + } + } + + pr.retireReader(r) + } + // function references follow, but reader doesn't need those + + return &dict +} + +func (r *reader) typeParamNames() []*types.TypeParam { + r.Sync(pkgbits.SyncTypeParamNames) + + // Note: This code assumes it only processes objects without + // implement type parameters. This is currently fine, because + // reader is only used to read in exported declarations, which are + // always package scoped. + + if len(r.dict.bounds) == 0 { + return nil + } + + // Careful: Type parameter lists may have cycles. To allow for this, + // we construct the type parameter list in two passes: first we + // create all the TypeNames and TypeParams, then we construct and + // set the bound type. + + r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) + for i := range r.dict.bounds { + pos := r.pos() + pkg, name := r.localIdent() + + tname := types.NewTypeName(pos, pkg, name, nil) + r.dict.tparams[i] = types.NewTypeParam(tname, nil) + } + + typs := make([]types.Type, len(r.dict.bounds)) + for i, bound := range r.dict.bounds { + typs[i] = r.p.typIdx(bound, r.dict) + } + + // TODO(mdempsky): This is subtle, elaborate further. + // + // We have to save tparams outside of the closure, because + // typeParamNames() can be called multiple times with the same + // dictionary instance. + // + // Also, this needs to happen later to make sure SetUnderlying has + // been called. + // + // TODO(mdempsky): Is it safe to have a single "later" slice or do + // we need to have multiple passes? See comments on CL 386002 and + // go.dev/issue/52104. + tparams := r.dict.tparams + r.p.later(func() { + for i, typ := range typs { + tparams[i].SetConstraint(typ) + } + }) + + return r.dict.tparams +} + +func (r *reader) method() *types.Func { + r.Sync(pkgbits.SyncMethod) + pos := r.pos() + pkg, name := r.selector() + + rparams := r.typeParamNames() + sig := r.signature(r.param(), rparams, nil) + + _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. + return types.NewFunc(pos, pkg, name, sig) +} + +func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } +func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } +func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } + +func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { + r.Sync(marker) + return r.pkg(), r.String() +} + +// pkgScope returns pkg.Scope(). +// If pkg is nil, it returns types.Universe instead. +// +// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. +func pkgScope(pkg *types.Package) *types.Scope { + if pkg != nil { + return pkg.Scope() + } + return types.Universe +} + +// See cmd/compile/internal/types.SplitVargenSuffix. +func splitVargenSuffix(name string) (base, suffix string) { + i := len(name) + for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { + i-- + } + const dot = "·" + if i >= len(dot) && name[i-len(dot):i] == dot { + i -= len(dot) + return name[:i], name[i:] + } + return name, "" +} diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go new file mode 100644 index 0000000..5872120 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -0,0 +1,567 @@ +// 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 gocommand is a helper for calling the go command. +package gocommand + +import ( + "bytes" + "context" + "encoding/json" + "errors" + "fmt" + "io" + "log" + "os" + "os/exec" + "path/filepath" + "regexp" + "runtime" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/tools/internal/event" + "golang.org/x/tools/internal/event/keys" + "golang.org/x/tools/internal/event/label" +) + +// A Runner will run go command invocations and serialize +// them if it sees a concurrency error. +type Runner struct { + // once guards the runner initialization. + once sync.Once + + // inFlight tracks available workers. + inFlight chan struct{} + + // serialized guards the ability to run a go command serially, + // to avoid deadlocks when claiming workers. + serialized chan struct{} +} + +const maxInFlight = 10 + +func (runner *Runner) initialize() { + runner.once.Do(func() { + runner.inFlight = make(chan struct{}, maxInFlight) + runner.serialized = make(chan struct{}, 1) + }) +} + +// 1.13: go: updates to go.mod needed, but contents have changed +// 1.14: go: updating go.mod: existing contents have changed since last read +var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) + +// event keys for go command invocations +var ( + verb = keys.NewString("verb", "go command verb") + directory = keys.NewString("directory", "") +) + +func invLabels(inv Invocation) []label.Label { + return []label.Label{verb.Of(inv.Verb), directory.Of(inv.WorkingDir)} +} + +// Run is a convenience wrapper around RunRaw. +// It returns only stdout and a "friendly" error. +func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, error) { + ctx, done := event.Start(ctx, "gocommand.Runner.Run", invLabels(inv)...) + defer done() + + stdout, _, friendly, _ := runner.RunRaw(ctx, inv) + return stdout, friendly +} + +// RunPiped runs the invocation serially, always waiting for any concurrent +// invocations to complete first. +func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) error { + ctx, done := event.Start(ctx, "gocommand.Runner.RunPiped", invLabels(inv)...) + defer done() + + _, err := runner.runPiped(ctx, inv, stdout, stderr) + return err +} + +// RunRaw runs the invocation, serializing requests only if they fight over +// go.mod changes. +// Postcondition: both error results have same nilness. +func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { + ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) + defer done() + // Make sure the runner is always initialized. + runner.initialize() + + // First, try to run the go command concurrently. + stdout, stderr, friendlyErr, err := runner.runConcurrent(ctx, inv) + + // If we encounter a load concurrency error, we need to retry serially. + if friendlyErr != nil && modConcurrencyError.MatchString(friendlyErr.Error()) { + event.Error(ctx, "Load concurrency error, will retry serially", err) + + // Run serially by calling runPiped. + stdout.Reset() + stderr.Reset() + friendlyErr, err = runner.runPiped(ctx, inv, stdout, stderr) + } + + return stdout, stderr, friendlyErr, err +} + +// Postcondition: both error results have same nilness. +func (runner *Runner) runConcurrent(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { + // Wait for 1 worker to become available. + select { + case <-ctx.Done(): + return nil, nil, ctx.Err(), ctx.Err() + case runner.inFlight <- struct{}{}: + defer func() { <-runner.inFlight }() + } + + stdout, stderr := &bytes.Buffer{}, &bytes.Buffer{} + friendlyErr, err := inv.runWithFriendlyError(ctx, stdout, stderr) + return stdout, stderr, friendlyErr, err +} + +// Postcondition: both error results have same nilness. +func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) (error, error) { + // Make sure the runner is always initialized. + runner.initialize() + + // Acquire the serialization lock. This avoids deadlocks between two + // runPiped commands. + select { + case <-ctx.Done(): + return ctx.Err(), ctx.Err() + case runner.serialized <- struct{}{}: + defer func() { <-runner.serialized }() + } + + // Wait for all in-progress go commands to return before proceeding, + // to avoid load concurrency errors. + for range maxInFlight { + select { + case <-ctx.Done(): + return ctx.Err(), ctx.Err() + case runner.inFlight <- struct{}{}: + // Make sure we always "return" any workers we took. + defer func() { <-runner.inFlight }() + } + } + + return inv.runWithFriendlyError(ctx, stdout, stderr) +} + +// An Invocation represents a call to the go command. +type Invocation struct { + Verb string + Args []string + BuildFlags []string + + // If ModFlag is set, the go command is invoked with -mod=ModFlag. + // TODO(rfindley): remove, in favor of Args. + ModFlag string + + // If ModFile is set, the go command is invoked with -modfile=ModFile. + // TODO(rfindley): remove, in favor of Args. + ModFile string + + // Overlay is the name of the JSON overlay file that describes + // unsaved editor buffers; see [WriteOverlays]. + // If set, the go command is invoked with -overlay=Overlay. + // TODO(rfindley): remove, in favor of Args. + Overlay string + + // If CleanEnv is set, the invocation will run only with the environment + // in Env, not starting with os.Environ. + CleanEnv bool + Env []string + WorkingDir string + Logf func(format string, args ...any) +} + +// Postcondition: both error results have same nilness. +func (i *Invocation) runWithFriendlyError(ctx context.Context, stdout, stderr io.Writer) (friendlyError error, rawError error) { + rawError = i.run(ctx, stdout, stderr) + if rawError != nil { + friendlyError = rawError + // Check for 'go' executable not being found. + if ee, ok := rawError.(*exec.Error); ok && ee.Err == exec.ErrNotFound { + friendlyError = fmt.Errorf("go command required, not found: %v", ee) + } + if ctx.Err() != nil { + friendlyError = ctx.Err() + } + friendlyError = fmt.Errorf("err: %v: stderr: %s", friendlyError, stderr) + } + return +} + +// logf logs if i.Logf is non-nil. +func (i *Invocation) logf(format string, args ...any) { + if i.Logf != nil { + i.Logf(format, args...) + } +} + +func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { + goArgs := []string{i.Verb} + + appendModFile := func() { + if i.ModFile != "" { + goArgs = append(goArgs, "-modfile="+i.ModFile) + } + } + appendModFlag := func() { + if i.ModFlag != "" { + goArgs = append(goArgs, "-mod="+i.ModFlag) + } + } + appendOverlayFlag := func() { + if i.Overlay != "" { + goArgs = append(goArgs, "-overlay="+i.Overlay) + } + } + + switch i.Verb { + case "env", "version": + goArgs = append(goArgs, i.Args...) + case "mod": + // mod needs the sub-verb before flags. + goArgs = append(goArgs, i.Args[0]) + appendModFile() + goArgs = append(goArgs, i.Args[1:]...) + case "get": + goArgs = append(goArgs, i.BuildFlags...) + appendModFile() + goArgs = append(goArgs, i.Args...) + + default: // notably list and build. + goArgs = append(goArgs, i.BuildFlags...) + appendModFile() + appendModFlag() + appendOverlayFlag() + goArgs = append(goArgs, i.Args...) + } + cmd := exec.Command("go", goArgs...) + cmd.Stdout = stdout + cmd.Stderr = stderr + + // https://go.dev/issue/59541: don't wait forever copying stderr + // after the command has exited. + // After CL 484741 we copy stdout manually, so we we'll stop reading that as + // soon as ctx is done. However, we also don't want to wait around forever + // for stderr. Give a much-longer-than-reasonable delay and then assume that + // something has wedged in the kernel or runtime. + cmd.WaitDelay = 30 * time.Second + + // The cwd gets resolved to the real path. On Darwin, where + // /tmp is a symlink, this breaks anything that expects the + // working directory to keep the original path, including the + // go command when dealing with modules. + // + // os.Getwd has a special feature where if the cwd and the PWD + // are the same node then it trusts the PWD, so by setting it + // in the env for the child process we fix up all the paths + // returned by the go command. + if !i.CleanEnv { + cmd.Env = os.Environ() + } + cmd.Env = append(cmd.Env, i.Env...) + if i.WorkingDir != "" { + cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) + cmd.Dir = i.WorkingDir + } + + debugStr := cmdDebugStr(cmd) + i.logf("starting %v", debugStr) + start := time.Now() + defer func() { + i.logf("%s for %v", time.Since(start), debugStr) + }() + + return runCmdContext(ctx, cmd) +} + +// DebugHangingGoCommands may be set by tests to enable additional +// instrumentation (including panics) for debugging hanging Go commands. +// +// See golang/go#54461 for details. +var DebugHangingGoCommands = false + +// runCmdContext is like exec.CommandContext except it sends os.Interrupt +// before os.Kill. +func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { + // If cmd.Stdout is not an *os.File, the exec package will create a pipe and + // copy it to the Writer in a goroutine until the process has finished and + // either the pipe reaches EOF or command's WaitDelay expires. + // + // However, the output from 'go list' can be quite large, and we don't want to + // keep reading (and allocating buffers) if we've already decided we don't + // care about the output. We don't want to wait for the process to finish, and + // we don't wait to wait for the WaitDelay to expire either. + // + // Instead, if cmd.Stdout requires a copying goroutine we explicitly replace + // it with a pipe (which is an *os.File), which we can close in order to stop + // copying output as soon as we realize we don't care about it. + var stdoutW *os.File + if cmd.Stdout != nil { + if _, ok := cmd.Stdout.(*os.File); !ok { + var stdoutR *os.File + stdoutR, stdoutW, err = os.Pipe() + if err != nil { + return err + } + prevStdout := cmd.Stdout + cmd.Stdout = stdoutW + + stdoutErr := make(chan error, 1) + go func() { + _, err := io.Copy(prevStdout, stdoutR) + if err != nil { + err = fmt.Errorf("copying stdout: %w", err) + } + stdoutErr <- err + }() + defer func() { + // We started a goroutine to copy a stdout pipe. + // Wait for it to finish, or terminate it if need be. + var err2 error + select { + case err2 = <-stdoutErr: + stdoutR.Close() + case <-ctx.Done(): + stdoutR.Close() + // Per https://pkg.go.dev/os#File.Close, the call to stdoutR.Close + // should cause the Read call in io.Copy to unblock and return + // immediately, but we still need to receive from stdoutErr to confirm + // that it has happened. + <-stdoutErr + err2 = ctx.Err() + } + if err == nil { + err = err2 + } + }() + + // Per https://pkg.go.dev/os/exec#Cmd, “If Stdout and Stderr are the + // same writer, and have a type that can be compared with ==, at most + // one goroutine at a time will call Write.” + // + // Since we're starting a goroutine that writes to cmd.Stdout, we must + // also update cmd.Stderr so that it still holds. + func() { + defer func() { recover() }() + if cmd.Stderr == prevStdout { + cmd.Stderr = cmd.Stdout + } + }() + } + } + + startTime := time.Now() + err = cmd.Start() + if stdoutW != nil { + // The child process has inherited the pipe file, + // so close the copy held in this process. + stdoutW.Close() + stdoutW = nil + } + if err != nil { + return err + } + + resChan := make(chan error, 1) + go func() { + resChan <- cmd.Wait() + }() + + // If we're interested in debugging hanging Go commands, stop waiting after a + // minute and panic with interesting information. + debug := DebugHangingGoCommands + if debug { + timer := time.NewTimer(1 * time.Minute) + defer timer.Stop() + select { + case err := <-resChan: + return err + case <-timer.C: + // HandleHangingGoCommand terminates this process. + // Pass off resChan in case we can collect the command error. + handleHangingGoCommand(startTime, cmd, resChan) + case <-ctx.Done(): + } + } else { + select { + case err := <-resChan: + return err + case <-ctx.Done(): + } + } + + // Cancelled. Interrupt and see if it ends voluntarily. + if err := cmd.Process.Signal(os.Interrupt); err == nil { + // (We used to wait only 1s but this proved + // fragile on loaded builder machines.) + timer := time.NewTimer(5 * time.Second) + defer timer.Stop() + select { + case err := <-resChan: + return err + case <-timer.C: + } + } + + // Didn't shut down in response to interrupt. Kill it hard. + if err := cmd.Process.Kill(); err != nil && !errors.Is(err, os.ErrProcessDone) && debug { + log.Printf("error killing the Go command: %v", err) + } + + return <-resChan +} + +// handleHangingGoCommand outputs debugging information to help diagnose the +// cause of a hanging Go command, and then exits with log.Fatalf. +func handleHangingGoCommand(start time.Time, cmd *exec.Cmd, resChan chan error) { + switch runtime.GOOS { + case "linux", "darwin", "freebsd", "netbsd", "openbsd": + fmt.Fprintln(os.Stderr, `DETECTED A HANGING GO COMMAND + + The gopls test runner has detected a hanging go command. In order to debug + this, the output of ps and lsof/fstat is printed below. + + See golang/go#54461 for more details.`) + + fmt.Fprintln(os.Stderr, "\nps axo ppid,pid,command:") + fmt.Fprintln(os.Stderr, "-------------------------") + psCmd := exec.Command("ps", "axo", "ppid,pid,command") + psCmd.Stdout = os.Stderr + psCmd.Stderr = os.Stderr + if err := psCmd.Run(); err != nil { + log.Printf("Handling hanging Go command: running ps: %v", err) + } + + listFiles := "lsof" + if runtime.GOOS == "freebsd" || runtime.GOOS == "netbsd" { + listFiles = "fstat" + } + + fmt.Fprintln(os.Stderr, "\n"+listFiles+":") + fmt.Fprintln(os.Stderr, "-----") + listFilesCmd := exec.Command(listFiles) + listFilesCmd.Stdout = os.Stderr + listFilesCmd.Stderr = os.Stderr + if err := listFilesCmd.Run(); err != nil { + log.Printf("Handling hanging Go command: running %s: %v", listFiles, err) + } + // Try to extract information about the slow go process by issuing a SIGQUIT. + if err := cmd.Process.Signal(sigStuckProcess); err == nil { + select { + case err := <-resChan: + stderr := "not a bytes.Buffer" + if buf, _ := cmd.Stderr.(*bytes.Buffer); buf != nil { + stderr = buf.String() + } + log.Printf("Quit hanging go command:\n\terr:%v\n\tstderr:\n%v\n\n", err, stderr) + case <-time.After(5 * time.Second): + } + } else { + log.Printf("Sending signal %d to hanging go command: %v", sigStuckProcess, err) + } + } + log.Fatalf("detected hanging go command (golang/go#54461); waited %s\n\tcommand:%s\n\tpid:%d", time.Since(start), cmd, cmd.Process.Pid) +} + +func cmdDebugStr(cmd *exec.Cmd) string { + env := make(map[string]string) + for _, kv := range cmd.Env { + split := strings.SplitN(kv, "=", 2) + if len(split) == 2 { + k, v := split[0], split[1] + env[k] = v + } + } + + var args []string + for _, arg := range cmd.Args { + quoted := strconv.Quote(arg) + if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { + args = append(args, quoted) + } else { + args = append(args, arg) + } + } + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) +} + +// WriteOverlays writes each value in the overlay (see the Overlay +// field of go/packages.Config) to a temporary file and returns the name +// of a JSON file describing the mapping that is suitable for the "go +// list -overlay" flag. +// +// On success, the caller must call the cleanup function exactly once +// when the files are no longer needed. +func WriteOverlays(overlay map[string][]byte) (filename string, cleanup func(), err error) { + // Do nothing if there are no overlays in the config. + if len(overlay) == 0 { + return "", func() {}, nil + } + + dir, err := os.MkdirTemp("", "gocommand-*") + if err != nil { + return "", nil, err + } + + // The caller must clean up this directory, + // unless this function returns an error. + // (The cleanup operand of each return + // statement below is ignored.) + defer func() { + cleanup = func() { + os.RemoveAll(dir) + } + if err != nil { + cleanup() + cleanup = nil + } + }() + + // Write each map entry to a temporary file. + overlays := make(map[string]string) + for k, v := range overlay { + // Use a unique basename for each file (001-foo.go), + // to avoid creating nested directories. + base := fmt.Sprintf("%d-%s", 1+len(overlays), filepath.Base(k)) + filename := filepath.Join(dir, base) + err := os.WriteFile(filename, v, 0666) + if err != nil { + return "", nil, err + } + overlays[k] = filename + } + + // Write the JSON overlay file that maps logical file names to temp files. + // + // OverlayJSON is the format overlay files are expected to be in. + // The Replace map maps from overlaid paths to replacement paths: + // the Go command will forward all reads trying to open + // each overlaid path to its replacement path, or consider the overlaid + // path not to exist if the replacement path is empty. + // + // From golang/go#39958. + type OverlayJSON struct { + Replace map[string]string `json:"replace,omitempty"` + } + b, err := json.Marshal(OverlayJSON{Replace: overlays}) + if err != nil { + return "", nil, err + } + filename = filepath.Join(dir, "overlay.json") + if err := os.WriteFile(filename, b, 0666); err != nil { + return "", nil, err + } + + return filename, nil, nil +} diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go b/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go new file mode 100644 index 0000000..469c648 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go @@ -0,0 +1,13 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !unix + +package gocommand + +import "os" + +// sigStuckProcess is the signal to send to kill a hanging subprocess. +// On Unix we send SIGQUIT, but on non-Unix we only have os.Kill. +var sigStuckProcess = os.Kill diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go b/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go new file mode 100644 index 0000000..169d37c --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go @@ -0,0 +1,13 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build unix + +package gocommand + +import "syscall" + +// Sigstuckprocess is the signal to send to kill a hanging subprocess. +// Send SIGQUIT to get a stack trace. +var sigStuckProcess = syscall.SIGQUIT diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go new file mode 100644 index 0000000..e38d1fb --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/vendor.go @@ -0,0 +1,163 @@ +// 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 gocommand + +import ( + "bytes" + "context" + "fmt" + "os" + "path/filepath" + "regexp" + "strings" + "time" + + "golang.org/x/mod/semver" +) + +// ModuleJSON holds information about a module. +type ModuleJSON struct { + Path string // module path + Version string // module version + Versions []string // available module versions (with -versions) + Replace *ModuleJSON // replaced by this module + Time *time.Time // time version was created + Update *ModuleJSON // available update, if any (with -u) + Main bool // is this the main module? + Indirect bool // is this module only an indirect dependency of main module? + Dir string // directory holding files for this module, if any + GoMod string // path to go.mod file used when loading this module, if any + GoVersion string // go version used in module +} + +var modFlagRegexp = regexp.MustCompile(`-mod[ =](\w+)`) + +// VendorEnabled reports whether vendoring is enabled. It takes a *Runner to execute Go commands +// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, +// of which only Verb and Args are modified to run the appropriate Go command. +// Inspired by setDefaultBuildMod in modload/init.go +func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, *ModuleJSON, error) { + mainMod, go114, err := getMainModuleAnd114(ctx, inv, r) + if err != nil { + return false, nil, err + } + + // We check the GOFLAGS to see if there is anything overridden or not. + inv.Verb = "env" + inv.Args = []string{"GOFLAGS"} + stdout, err := r.Run(ctx, inv) + if err != nil { + return false, nil, err + } + goflags := string(bytes.TrimSpace(stdout.Bytes())) + matches := modFlagRegexp.FindStringSubmatch(goflags) + var modFlag string + if len(matches) != 0 { + modFlag = matches[1] + } + // Don't override an explicit '-mod=' argument. + if modFlag == "vendor" { + return true, mainMod, nil + } else if modFlag != "" { + return false, nil, nil + } + if mainMod == nil || !go114 { + return false, nil, nil + } + // Check 1.14's automatic vendor mode. + if fi, err := os.Stat(filepath.Join(mainMod.Dir, "vendor")); err == nil && fi.IsDir() { + if mainMod.GoVersion != "" && semver.Compare("v"+mainMod.GoVersion, "v1.14") >= 0 { + // The Go version is at least 1.14, and a vendor directory exists. + // Set -mod=vendor by default. + return true, mainMod, nil + } + } + return false, nil, nil +} + +// getMainModuleAnd114 gets one of the main modules' information and whether the +// go command in use is 1.14+. This is the information needed to figure out +// if vendoring should be enabled. +func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, bool, error) { + const format = `{{.Path}} +{{.Dir}} +{{.GoMod}} +{{.GoVersion}} +{{range context.ReleaseTags}}{{if eq . "go1.14"}}{{.}}{{end}}{{end}} +` + inv.Verb = "list" + inv.Args = []string{"-m", "-f", format} + stdout, err := r.Run(ctx, inv) + if err != nil { + return nil, false, err + } + + lines := strings.Split(stdout.String(), "\n") + if len(lines) < 5 { + return nil, false, fmt.Errorf("unexpected stdout: %q", stdout.String()) + } + mod := &ModuleJSON{ + Path: lines[0], + Dir: lines[1], + GoMod: lines[2], + GoVersion: lines[3], + Main: true, + } + return mod, lines[4] == "go1.14", nil +} + +// WorkspaceVendorEnabled reports whether workspace vendoring is enabled. It takes a *Runner to execute Go commands +// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, +// of which only Verb and Args are modified to run the appropriate Go command. +// Inspired by setDefaultBuildMod in modload/init.go +func WorkspaceVendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, []*ModuleJSON, error) { + inv.Verb = "env" + inv.Args = []string{"GOWORK"} + stdout, err := r.Run(ctx, inv) + if err != nil { + return false, nil, err + } + goWork := string(bytes.TrimSpace(stdout.Bytes())) + if fi, err := os.Stat(filepath.Join(filepath.Dir(goWork), "vendor")); err == nil && fi.IsDir() { + mainMods, err := getWorkspaceMainModules(ctx, inv, r) + if err != nil { + return false, nil, err + } + return true, mainMods, nil + } + return false, nil, nil +} + +// getWorkspaceMainModules gets the main modules' information. +// This is the information needed to figure out if vendoring should be enabled. +func getWorkspaceMainModules(ctx context.Context, inv Invocation, r *Runner) ([]*ModuleJSON, error) { + const format = `{{.Path}} +{{.Dir}} +{{.GoMod}} +{{.GoVersion}} +` + inv.Verb = "list" + inv.Args = []string{"-m", "-f", format} + stdout, err := r.Run(ctx, inv) + if err != nil { + return nil, err + } + + lines := strings.Split(strings.TrimSuffix(stdout.String(), "\n"), "\n") + if len(lines) < 4 { + return nil, fmt.Errorf("unexpected stdout: %q", stdout.String()) + } + mods := make([]*ModuleJSON, 0, len(lines)/4) + for i := 0; i < len(lines); i += 4 { + mods = append(mods, &ModuleJSON{ + Path: lines[i], + Dir: lines[i+1], + GoMod: lines[i+2], + GoVersion: lines[i+3], + Main: true, + }) + } + return mods, nil +} diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go new file mode 100644 index 0000000..446c584 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gocommand/version.go @@ -0,0 +1,71 @@ +// 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 gocommand + +import ( + "context" + "fmt" + "regexp" + "strings" +) + +// GoVersion reports the minor version number of the highest release +// tag built into the go command on the PATH. +// +// Note that this may be higher than the version of the go tool used +// to build this application, and thus the versions of the standard +// go/{scanner,parser,ast,types} packages that are linked into it. +// In that case, callers should either downgrade to the version of +// go used to build the application, or report an error that the +// application is too old to use the go command on the PATH. +func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { + inv.Verb = "list" + inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`, `--`, `unsafe`} + inv.BuildFlags = nil // This is not a build command. + inv.ModFlag = "" + inv.ModFile = "" + inv.Env = append(inv.Env[:len(inv.Env):len(inv.Env)], "GO111MODULE=off") + + stdoutBytes, err := r.Run(ctx, inv) + if err != nil { + return 0, err + } + stdout := stdoutBytes.String() + if len(stdout) < 3 { + return 0, fmt.Errorf("bad ReleaseTags output: %q", stdout) + } + // Split up "[go1.1 go1.15]" and return highest go1.X value. + tags := strings.Fields(stdout[1 : len(stdout)-2]) + for i := len(tags) - 1; i >= 0; i-- { + var version int + if _, err := fmt.Sscanf(tags[i], "go1.%d", &version); err != nil { + continue + } + return version, nil + } + return 0, fmt.Errorf("no parseable ReleaseTags in %v", tags) +} + +// GoVersionOutput returns the complete output of the go version command. +func GoVersionOutput(ctx context.Context, inv Invocation, r *Runner) (string, error) { + inv.Verb = "version" + goVersion, err := r.Run(ctx, inv) + if err != nil { + return "", err + } + return goVersion.String(), nil +} + +// ParseGoVersionOutput extracts the Go version string +// from the output of the "go version" command. +// Given an unrecognized form, it returns an empty string. +func ParseGoVersionOutput(data string) string { + re := regexp.MustCompile(`^go version (go\S+|devel \S+)`) + m := re.FindStringSubmatch(data) + if len(m) != 2 { + return "" // unrecognized version + } + return m[1] +} diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go new file mode 100644 index 0000000..5252144 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -0,0 +1,336 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package gopathwalk is like filepath.Walk but specialized for finding Go +// packages, particularly in $GOPATH and $GOROOT. +package gopathwalk + +import ( + "bufio" + "bytes" + "io" + "io/fs" + "os" + "path/filepath" + "runtime" + "slices" + "strings" + "sync" + "time" +) + +// Options controls the behavior of a Walk call. +type Options struct { + // If Logf is non-nil, debug logging is enabled through this function. + Logf func(format string, args ...any) + + // Search module caches. Also disables legacy goimports ignore rules. + ModulesEnabled bool + + // Maximum number of concurrent calls to user-provided callbacks, + // or 0 for GOMAXPROCS. + Concurrency int +} + +// RootType indicates the type of a Root. +type RootType int + +const ( + RootUnknown RootType = iota + RootGOROOT + RootGOPATH + RootCurrentModule + RootModuleCache + RootOther +) + +// A Root is a starting point for a Walk. +type Root struct { + Path string + Type RootType +} + +// Walk concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. +// +// For each package found, add will be called with the absolute +// paths of the containing source directory and the package directory. +// +// Unlike filepath.WalkDir, Walk follows symbolic links +// (while guarding against cycles). +func Walk(roots []Root, add func(root Root, dir string), opts Options) { + WalkSkip(roots, add, func(Root, string) bool { return false }, opts) +} + +// WalkSkip concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to +// find packages. +// +// For each package found, add will be called with the absolute +// paths of the containing source directory and the package directory. +// For each directory that will be scanned, skip will be called +// with the absolute paths of the containing source directory and the directory. +// If skip returns false on a directory it will be processed. +// +// Unlike filepath.WalkDir, WalkSkip follows symbolic links +// (while guarding against cycles). +func WalkSkip(roots []Root, add func(root Root, dir string), skip func(root Root, dir string) bool, opts Options) { + for _, root := range roots { + walkDir(root, add, skip, opts) + } +} + +// walkDir creates a walker and starts fastwalk with this walker. +func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) bool, opts Options) { + if opts.Logf == nil { + opts.Logf = func(format string, args ...any) {} + } + if _, err := os.Stat(root.Path); os.IsNotExist(err) { + opts.Logf("skipping nonexistent directory: %v", root.Path) + return + } + start := time.Now() + opts.Logf("scanning %s", root.Path) + + concurrency := opts.Concurrency + if concurrency == 0 { + // The walk be either CPU-bound or I/O-bound, depending on what the + // caller-supplied add function does and the details of the user's platform + // and machine. Rather than trying to fine-tune the concurrency level for a + // specific environment, we default to GOMAXPROCS: it is likely to be a good + // choice for a CPU-bound add function, and if it is instead I/O-bound, then + // dealing with I/O saturation is arguably the job of the kernel and/or + // runtime. (Oversaturating I/O seems unlikely to harm performance as badly + // as failing to saturate would.) + concurrency = runtime.GOMAXPROCS(0) + } + w := &walker{ + root: root, + add: add, + skip: skip, + opts: opts, + sem: make(chan struct{}, concurrency), + } + w.init() + + w.sem <- struct{}{} + path := root.Path + if path == "" { + path = "." + } + if fi, err := os.Lstat(path); err == nil { + w.walk(path, nil, fs.FileInfoToDirEntry(fi)) + } else { + w.opts.Logf("scanning directory %v: %v", root.Path, err) + } + <-w.sem + w.walking.Wait() + + opts.Logf("scanned %s in %v", root.Path, time.Since(start)) +} + +// walker is the callback for fastwalk.Walk. +type walker struct { + root Root // The source directory to scan. + add func(Root, string) // The callback that will be invoked for every possible Go package dir. + skip func(Root, string) bool // The callback that will be invoked for every dir. dir is skipped if it returns true. + opts Options // Options passed to Walk by the user. + + walking sync.WaitGroup + sem chan struct{} // Channel of semaphore tokens; send to acquire, receive to release. + ignoredDirs []string + + added sync.Map // map[string]bool +} + +// A symlinkList is a linked list of os.FileInfos for parent directories +// reached via symlinks. +type symlinkList struct { + info os.FileInfo + prev *symlinkList +} + +// init initializes the walker based on its Options +func (w *walker) init() { + var ignoredPaths []string + if w.root.Type == RootModuleCache { + ignoredPaths = []string{"cache"} + } + if !w.opts.ModulesEnabled && w.root.Type == RootGOPATH { + ignoredPaths = w.getIgnoredDirs(w.root.Path) + ignoredPaths = append(ignoredPaths, "v", "mod") + } + + for _, p := range ignoredPaths { + full := filepath.Join(w.root.Path, p) + w.ignoredDirs = append(w.ignoredDirs, full) + w.opts.Logf("Directory added to ignore list: %s", full) + } +} + +// getIgnoredDirs reads an optional config file at <path>/.goimportsignore +// of relative directories to ignore when scanning for go files. +// The provided path is one of the $GOPATH entries with "src" appended. +func (w *walker) getIgnoredDirs(path string) []string { + file := filepath.Join(path, ".goimportsignore") + slurp, err := os.ReadFile(file) + if err != nil { + w.opts.Logf("%v", err) + } else { + w.opts.Logf("Read %s", file) + } + if err != nil { + return nil + } + + var ignoredDirs []string + bs := bufio.NewScanner(bytes.NewReader(slurp)) + for bs.Scan() { + line := strings.TrimSpace(bs.Text()) + if line == "" || strings.HasPrefix(line, "#") { + continue + } + ignoredDirs = append(ignoredDirs, line) + } + return ignoredDirs +} + +// shouldSkipDir reports whether the file should be skipped or not. +func (w *walker) shouldSkipDir(dir string) bool { + if slices.Contains(w.ignoredDirs, dir) { + return true + } + if w.skip != nil { + // Check with the user specified callback. + return w.skip(w.root, dir) + } + return false +} + +// walk walks through the given path. +// +// Errors are logged if w.opts.Logf is non-nil, but otherwise ignored. +func (w *walker) walk(path string, pathSymlinks *symlinkList, d fs.DirEntry) { + if d.Type()&os.ModeSymlink != 0 { + // Walk the symlink's target rather than the symlink itself. + // + // (Note that os.Stat, unlike the lower-lever os.Readlink, + // follows arbitrarily many layers of symlinks, so it will eventually + // reach either a non-symlink or a nonexistent target.) + // + // TODO(bcmills): 'go list all' itself ignores symlinks within GOROOT/src + // and GOPATH/src. Do we really need to traverse them here? If so, why? + + fi, err := os.Stat(path) + if err != nil { + w.opts.Logf("%v", err) + return + } + + // Avoid walking symlink cycles: if we have already followed a symlink to + // this directory as a parent of itself, don't follow it again. + // + // This doesn't catch the first time through a cycle, but it also minimizes + // the number of extra stat calls we make if we *don't* encounter a cycle. + // Since we don't actually expect to encounter symlink cycles in practice, + // this seems like the right tradeoff. + for parent := pathSymlinks; parent != nil; parent = parent.prev { + if os.SameFile(fi, parent.info) { + return + } + } + + pathSymlinks = &symlinkList{ + info: fi, + prev: pathSymlinks, + } + d = fs.FileInfoToDirEntry(fi) + } + + if d.Type().IsRegular() { + if !strings.HasSuffix(path, ".go") { + return + } + + dir := filepath.Dir(path) + if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) { + // Doesn't make sense to have regular files + // directly in your $GOPATH/src or $GOROOT/src. + // + // TODO(bcmills): there are many levels of directory within + // RootModuleCache where this also wouldn't make sense, + // Can we generalize this to any directory without a corresponding + // import path? + return + } + + if _, dup := w.added.LoadOrStore(dir, true); !dup { + w.add(w.root, dir) + } + } + + if !d.IsDir() { + return + } + + base := filepath.Base(path) + if base == "" || base[0] == '.' || base[0] == '_' || + base == "testdata" || + (w.root.Type == RootGOROOT && w.opts.ModulesEnabled && base == "vendor") || + (!w.opts.ModulesEnabled && base == "node_modules") || + w.shouldSkipDir(path) { + return + } + + // Read the directory and walk its entries. + + f, err := os.Open(path) + if err != nil { + w.opts.Logf("%v", err) + return + } + defer f.Close() + + for { + // We impose an arbitrary limit on the number of ReadDir results per + // directory to limit the amount of memory consumed for stale or upcoming + // directory entries. The limit trades off CPU (number of syscalls to read + // the whole directory) against RAM (reachable directory entries other than + // the one currently being processed). + // + // Since we process the directories recursively, we will end up maintaining + // a slice of entries for each level of the directory tree. + // (Compare https://go.dev/issue/36197.) + ents, err := f.ReadDir(1024) + if err != nil { + if err != io.EOF { + w.opts.Logf("%v", err) + } + break + } + + for _, d := range ents { + nextPath := filepath.Join(path, d.Name()) + if d.IsDir() { + select { + case w.sem <- struct{}{}: + // Got a new semaphore token, so we can traverse the directory concurrently. + d := d + w.walking.Add(1) + go func() { + defer func() { + <-w.sem + w.walking.Done() + }() + w.walk(nextPath, pathSymlinks, d) + }() + continue + + default: + // No tokens available, so traverse serially. + } + } + + w.walk(nextPath, pathSymlinks, d) + } + } +} diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go new file mode 100644 index 0000000..50b6ca5 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -0,0 +1,1898 @@ +// Copyright 2013 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 imports + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "go/ast" + "go/build" + "go/parser" + "go/token" + "go/types" + "io/fs" + "io/ioutil" + "os" + "path" + "path/filepath" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "unicode" + "unicode/utf8" + + "maps" + + "golang.org/x/tools/go/ast/astutil" + "golang.org/x/tools/internal/event" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" +) + +// importToGroup is a list of functions which map from an import path to +// a group number. +var importToGroup = []func(localPrefix, importPath string) (num int, ok bool){ + func(localPrefix, importPath string) (num int, ok bool) { + if localPrefix == "" { + return + } + for _, p := range strings.Split(localPrefix, ",") { + if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath { + return 3, true + } + } + return + }, + func(_, importPath string) (num int, ok bool) { + if strings.HasPrefix(importPath, "appengine") { + return 2, true + } + return + }, + func(_, importPath string) (num int, ok bool) { + firstComponent := strings.Split(importPath, "/")[0] + if strings.Contains(firstComponent, ".") { + return 1, true + } + return + }, +} + +func importGroup(localPrefix, importPath string) int { + for _, fn := range importToGroup { + if n, ok := fn(localPrefix, importPath); ok { + return n + } + } + return 0 +} + +type ImportFixType int + +const ( + AddImport ImportFixType = iota + DeleteImport + SetImportName +) + +type ImportFix struct { + // StmtInfo represents the import statement this fix will add, remove, or change. + StmtInfo ImportInfo + // IdentName is the identifier that this fix will add or remove. + IdentName string + // FixType is the type of fix this is (AddImport, DeleteImport, SetImportName). + FixType ImportFixType + Relevance float64 // see pkg +} + +// parseOtherFiles parses all the Go files in srcDir except filename, including +// test files if filename looks like a test. +// +// It returns an error only if ctx is cancelled. Files with parse errors are +// ignored. +func parseOtherFiles(ctx context.Context, fset *token.FileSet, srcDir, filename string) ([]*ast.File, error) { + // This could use go/packages but it doesn't buy much, and it fails + // with https://golang.org/issue/26296 in LoadFiles mode in some cases. + considerTests := strings.HasSuffix(filename, "_test.go") + + fileBase := filepath.Base(filename) + packageFileInfos, err := os.ReadDir(srcDir) + if err != nil { + return nil, ctx.Err() + } + + var files []*ast.File + for _, fi := range packageFileInfos { + if ctx.Err() != nil { + return nil, ctx.Err() + } + if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") { + continue + } + if !considerTests && strings.HasSuffix(fi.Name(), "_test.go") { + continue + } + + f, err := parser.ParseFile(fset, filepath.Join(srcDir, fi.Name()), nil, parser.SkipObjectResolution) + if err != nil { + continue + } + + files = append(files, f) + } + + return files, ctx.Err() +} + +// addGlobals puts the names of package vars into the provided map. +func addGlobals(f *ast.File, globals map[string]bool) { + for _, decl := range f.Decls { + genDecl, ok := decl.(*ast.GenDecl) + if !ok { + continue + } + + for _, spec := range genDecl.Specs { + valueSpec, ok := spec.(*ast.ValueSpec) + if !ok { + continue + } + globals[valueSpec.Names[0].Name] = true + } + } +} + +// collectReferences builds a map of selector expressions, from +// left hand side (X) to a set of right hand sides (Sel). +func collectReferences(f *ast.File) References { + refs := References{} + + var visitor visitFn + visitor = func(node ast.Node) ast.Visitor { + if node == nil { + return visitor + } + switch v := node.(type) { + case *ast.SelectorExpr: + xident, ok := v.X.(*ast.Ident) + if !ok { + break + } + if xident.Obj != nil { + // If the parser can resolve it, it's not a package ref. + break + } + if !ast.IsExported(v.Sel.Name) { + // Whatever this is, it's not exported from a package. + break + } + pkgName := xident.Name + r := refs[pkgName] + if r == nil { + r = make(map[string]bool) + refs[pkgName] = r + } + r[v.Sel.Name] = true + } + return visitor + } + ast.Walk(visitor, f) + return refs +} + +// collectImports returns all the imports in f. +// Unnamed imports (., _) and "C" are ignored. +func collectImports(f *ast.File) []*ImportInfo { + var imports []*ImportInfo + for _, imp := range f.Imports { + var name string + if imp.Name != nil { + name = imp.Name.Name + } + if imp.Path.Value == `"C"` || name == "_" || name == "." { + continue + } + path := strings.Trim(imp.Path.Value, `"`) + imports = append(imports, &ImportInfo{ + Name: name, + ImportPath: path, + }) + } + return imports +} + +// findMissingImport searches pass's candidates for an import that provides +// pkg, containing all of syms. +func (p *pass) findMissingImport(pkg string, syms map[string]bool) *ImportInfo { + for _, candidate := range p.candidates { + pkgInfo, ok := p.knownPackages[candidate.ImportPath] + if !ok { + continue + } + if p.importIdentifier(candidate) != pkg { + continue + } + + allFound := true + for right := range syms { + if !pkgInfo.Exports[right] { + allFound = false + break + } + } + + if allFound { + return candidate + } + } + return nil +} + +// A pass contains all the inputs and state necessary to fix a file's imports. +// It can be modified in some ways during use; see comments below. +type pass struct { + // Inputs. These must be set before a call to load, and not modified after. + fset *token.FileSet // fset used to parse f and its siblings. + f *ast.File // the file being fixed. + srcDir string // the directory containing f. + logf func(string, ...any) + source Source // the environment to use for go commands, etc. + loadRealPackageNames bool // if true, load package names from disk rather than guessing them. + otherFiles []*ast.File // sibling files. + goroot string + + // Intermediate state, generated by load. + existingImports map[string][]*ImportInfo + allRefs References + missingRefs References + + // Inputs to fix. These can be augmented between successive fix calls. + lastTry bool // indicates that this is the last call and fix should clean up as best it can. + candidates []*ImportInfo // candidate imports in priority order. + knownPackages map[string]*PackageInfo // information about all known packages. +} + +// loadPackageNames saves the package names for everything referenced by imports. +func (p *pass) loadPackageNames(ctx context.Context, imports []*ImportInfo) error { + if p.logf != nil { + p.logf("loading package names for %v packages", len(imports)) + defer func() { + p.logf("done loading package names for %v packages", len(imports)) + }() + } + var unknown []string + for _, imp := range imports { + if _, ok := p.knownPackages[imp.ImportPath]; ok { + continue + } + unknown = append(unknown, imp.ImportPath) + } + + names, err := p.source.LoadPackageNames(ctx, p.srcDir, unknown) + if err != nil { + return err + } + + // TODO(rfindley): revisit this. Why do we need to store known packages with + // no exports? The inconsistent data is confusing. + for path, name := range names { + p.knownPackages[path] = &PackageInfo{ + Name: name, + Exports: map[string]bool{}, + } + } + return nil +} + +// WithoutVersion removes a trailing major version, if there is one. +func WithoutVersion(nm string) string { + if v := path.Base(nm); len(v) > 0 && v[0] == 'v' { + if _, err := strconv.Atoi(v[1:]); err == nil { + // this is, for instance, called with rand/v2 and returns rand + if len(v) < len(nm) { + xnm := nm[:len(nm)-len(v)-1] + return path.Base(xnm) + } + } + } + return nm +} + +// importIdentifier returns the identifier that imp will introduce. It will +// guess if the package name has not been loaded, e.g. because the source +// is not available. +func (p *pass) importIdentifier(imp *ImportInfo) string { + if imp.Name != "" { + return imp.Name + } + known := p.knownPackages[imp.ImportPath] + if known != nil && known.Name != "" { + return WithoutVersion(known.Name) + } + return ImportPathToAssumedName(imp.ImportPath) +} + +// load reads in everything necessary to run a pass, and reports whether the +// file already has all the imports it needs. It fills in p.missingRefs with the +// file's missing symbols, if any, or removes unused imports if not. +func (p *pass) load(ctx context.Context) ([]*ImportFix, bool) { + p.knownPackages = map[string]*PackageInfo{} + p.missingRefs = References{} + p.existingImports = map[string][]*ImportInfo{} + + // Load basic information about the file in question. + p.allRefs = collectReferences(p.f) + + // Load stuff from other files in the same package: + // global variables so we know they don't need resolving, and imports + // that we might want to mimic. + globals := map[string]bool{} + for _, otherFile := range p.otherFiles { + // Don't load globals from files that are in the same directory + // but a different package. Using them to suggest imports is OK. + if p.f.Name.Name == otherFile.Name.Name { + addGlobals(otherFile, globals) + } + p.candidates = append(p.candidates, collectImports(otherFile)...) + } + + // Resolve all the import paths we've seen to package names, and store + // f's imports by the identifier they introduce. + imports := collectImports(p.f) + if p.loadRealPackageNames { + err := p.loadPackageNames(ctx, append(imports, p.candidates...)) + if err != nil { + if p.logf != nil { + p.logf("loading package names: %v", err) + } + return nil, false + } + } + for _, imp := range imports { + p.existingImports[p.importIdentifier(imp)] = append(p.existingImports[p.importIdentifier(imp)], imp) + } + + // Find missing references. + for left, rights := range p.allRefs { + if globals[left] { + continue + } + _, ok := p.existingImports[left] + if !ok { + p.missingRefs[left] = rights + continue + } + } + if len(p.missingRefs) != 0 { + return nil, false + } + + return p.fix() +} + +// fix attempts to satisfy missing imports using p.candidates. If it finds +// everything, or if p.lastTry is true, it updates fixes to add the imports it found, +// delete anything unused, and update import names, and returns true. +func (p *pass) fix() ([]*ImportFix, bool) { + // Find missing imports. + var selected []*ImportInfo + for left, rights := range p.missingRefs { + if imp := p.findMissingImport(left, rights); imp != nil { + selected = append(selected, imp) + } + } + + if !p.lastTry && len(selected) != len(p.missingRefs) { + return nil, false + } + + // Found everything, or giving up. Add the new imports and remove any unused. + var fixes []*ImportFix + for _, identifierImports := range p.existingImports { + for _, imp := range identifierImports { + // We deliberately ignore globals here, because we can't be sure + // they're in the same package. People do things like put multiple + // main packages in the same directory, and we don't want to + // remove imports if they happen to have the same name as a var in + // a different package. + if _, ok := p.allRefs[p.importIdentifier(imp)]; !ok { + fixes = append(fixes, &ImportFix{ + StmtInfo: *imp, + IdentName: p.importIdentifier(imp), + FixType: DeleteImport, + }) + continue + } + + // An existing import may need to update its import name to be correct. + if name := p.importSpecName(imp); name != imp.Name { + fixes = append(fixes, &ImportFix{ + StmtInfo: ImportInfo{ + Name: name, + ImportPath: imp.ImportPath, + }, + IdentName: p.importIdentifier(imp), + FixType: SetImportName, + }) + } + } + } + // Collecting fixes involved map iteration, so sort for stability. See + // golang/go#59976. + sortFixes(fixes) + + // collect selected fixes in a separate slice, so that it can be sorted + // separately. Note that these fixes must occur after fixes to existing + // imports. TODO(rfindley): figure out why. + var selectedFixes []*ImportFix + for _, imp := range selected { + selectedFixes = append(selectedFixes, &ImportFix{ + StmtInfo: ImportInfo{ + Name: p.importSpecName(imp), + ImportPath: imp.ImportPath, + }, + IdentName: p.importIdentifier(imp), + FixType: AddImport, + }) + } + sortFixes(selectedFixes) + + return append(fixes, selectedFixes...), true +} + +func sortFixes(fixes []*ImportFix) { + sort.Slice(fixes, func(i, j int) bool { + fi, fj := fixes[i], fixes[j] + if fi.StmtInfo.ImportPath != fj.StmtInfo.ImportPath { + return fi.StmtInfo.ImportPath < fj.StmtInfo.ImportPath + } + if fi.StmtInfo.Name != fj.StmtInfo.Name { + return fi.StmtInfo.Name < fj.StmtInfo.Name + } + if fi.IdentName != fj.IdentName { + return fi.IdentName < fj.IdentName + } + return fi.FixType < fj.FixType + }) +} + +// importSpecName gets the import name of imp in the import spec. +// +// When the import identifier matches the assumed import name, the import name does +// not appear in the import spec. +func (p *pass) importSpecName(imp *ImportInfo) string { + // If we did not load the real package names, or the name is already set, + // we just return the existing name. + if !p.loadRealPackageNames || imp.Name != "" { + return imp.Name + } + + ident := p.importIdentifier(imp) + if ident == ImportPathToAssumedName(imp.ImportPath) { + return "" // ident not needed since the assumed and real names are the same. + } + return ident +} + +// apply will perform the fixes on f in order. +func apply(fset *token.FileSet, f *ast.File, fixes []*ImportFix) { + for _, fix := range fixes { + switch fix.FixType { + case DeleteImport: + astutil.DeleteNamedImport(fset, f, fix.StmtInfo.Name, fix.StmtInfo.ImportPath) + case AddImport: + astutil.AddNamedImport(fset, f, fix.StmtInfo.Name, fix.StmtInfo.ImportPath) + case SetImportName: + // Find the matching import path and change the name. + for _, spec := range f.Imports { + path := strings.Trim(spec.Path.Value, `"`) + if path == fix.StmtInfo.ImportPath { + spec.Name = &ast.Ident{ + Name: fix.StmtInfo.Name, + NamePos: spec.Pos(), + } + } + } + } + } +} + +// assumeSiblingImportsValid assumes that siblings' use of packages is valid, +// adding the exports they use. +func (p *pass) assumeSiblingImportsValid() { + for _, f := range p.otherFiles { + refs := collectReferences(f) + imports := collectImports(f) + importsByName := map[string]*ImportInfo{} + for _, imp := range imports { + importsByName[p.importIdentifier(imp)] = imp + } + for left, rights := range refs { + if imp, ok := importsByName[left]; ok { + if m, ok := stdlib.PackageSymbols[imp.ImportPath]; ok { + // We have the stdlib in memory; no need to guess. + rights = symbolNameSet(m) + } + // TODO(rfindley): we should set package name here, for consistency. + p.addCandidate(imp, &PackageInfo{ + // no name; we already know it. + Exports: rights, + }) + } + } + } +} + +// addCandidate adds a candidate import to p, and merges in the information +// in pkg. +func (p *pass) addCandidate(imp *ImportInfo, pkg *PackageInfo) { + p.candidates = append(p.candidates, imp) + if existing, ok := p.knownPackages[imp.ImportPath]; ok { + if existing.Name == "" { + existing.Name = pkg.Name + } + for export := range pkg.Exports { + existing.Exports[export] = true + } + } else { + p.knownPackages[imp.ImportPath] = pkg + } +} + +// fixImports adds and removes imports from f so that all its references are +// satisfied and there are no unused imports. +// +// This is declared as a variable rather than a function so goimports can +// easily be extended by adding a file with an init function. +// +// DO NOT REMOVE: used internally at Google. +var fixImports = fixImportsDefault + +func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { + fixes, err := getFixes(context.Background(), fset, f, filename, env) + if err != nil { + return err + } + apply(fset, f, fixes) + return nil +} + +// getFixes gets the import fixes that need to be made to f in order to fix the imports. +// It does not modify the ast. +func getFixes(ctx context.Context, fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) ([]*ImportFix, error) { + source, err := NewProcessEnvSource(env, filename, f.Name.Name) + if err != nil { + return nil, err + } + goEnv, err := env.goEnv() + if err != nil { + return nil, err + } + return getFixesWithSource(ctx, fset, f, filename, goEnv["GOROOT"], env.logf, source) +} + +func getFixesWithSource(ctx context.Context, fset *token.FileSet, f *ast.File, filename string, goroot string, logf func(string, ...any), source Source) ([]*ImportFix, error) { + // This logic is defensively duplicated from getFixes. + abs, err := filepath.Abs(filename) + if err != nil { + return nil, err + } + srcDir := filepath.Dir(abs) + + if logf != nil { + logf("fixImports(filename=%q), srcDir=%q ...", filename, srcDir) + } + + // First pass: looking only at f, and using the naive algorithm to + // derive package names from import paths, see if the file is already + // complete. We can't add any imports yet, because we don't know + // if missing references are actually package vars. + p := &pass{ + fset: fset, + f: f, + srcDir: srcDir, + logf: logf, + goroot: goroot, + source: source, + } + if fixes, done := p.load(ctx); done { + return fixes, nil + } + + otherFiles, err := parseOtherFiles(ctx, fset, srcDir, filename) + if err != nil { + return nil, err + } + + // Second pass: add information from other files in the same package, + // like their package vars and imports. + p.otherFiles = otherFiles + if fixes, done := p.load(ctx); done { + return fixes, nil + } + + // Now we can try adding imports from the stdlib. + p.assumeSiblingImportsValid() + addStdlibCandidates(p, p.missingRefs) + if fixes, done := p.fix(); done { + return fixes, nil + } + + // Third pass: get real package names where we had previously used + // the naive algorithm. + p = &pass{ + fset: fset, + f: f, + srcDir: srcDir, + logf: logf, + goroot: goroot, + source: p.source, // safe to reuse, as it's just a wrapper around env + } + p.loadRealPackageNames = true + p.otherFiles = otherFiles + if fixes, done := p.load(ctx); done { + return fixes, nil + } + + if err := addStdlibCandidates(p, p.missingRefs); err != nil { + return nil, err + } + p.assumeSiblingImportsValid() + if fixes, done := p.fix(); done { + return fixes, nil + } + + // Go look for candidates in $GOPATH, etc. We don't necessarily load + // the real exports of sibling imports, so keep assuming their contents. + if err := addExternalCandidates(ctx, p, p.missingRefs, filename); err != nil { + return nil, err + } + + p.lastTry = true + fixes, _ := p.fix() + return fixes, nil +} + +// MaxRelevance is the highest relevance, used for the standard library. +// Chosen arbitrarily to match pre-existing gopls code. +const MaxRelevance = 7.0 + +// getCandidatePkgs works with the passed callback to find all acceptable packages. +// It deduplicates by import path, and uses a cached stdlib rather than reading +// from disk. +func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filename, filePkg string, env *ProcessEnv) error { + notSelf := func(p *pkg) bool { + return p.packageName != filePkg || p.dir != filepath.Dir(filename) + } + goenv, err := env.goEnv() + if err != nil { + return err + } + + var mu sync.Mutex // to guard asynchronous access to dupCheck + dupCheck := map[string]struct{}{} + + // Start off with the standard library. + for importPath, symbols := range stdlib.PackageSymbols { + p := &pkg{ + dir: filepath.Join(goenv["GOROOT"], "src", importPath), + importPathShort: importPath, + packageName: path.Base(importPath), + relevance: MaxRelevance, + } + dupCheck[importPath] = struct{}{} + if notSelf(p) && wrappedCallback.dirFound(p) && wrappedCallback.packageNameLoaded(p) { + var exports []stdlib.Symbol + for _, sym := range symbols { + switch sym.Kind { + case stdlib.Func, stdlib.Type, stdlib.Var, stdlib.Const: + exports = append(exports, sym) + } + } + wrappedCallback.exportsLoaded(p, exports) + } + } + + scanFilter := &scanCallback{ + rootFound: func(root gopathwalk.Root) bool { + // Exclude goroot results -- getting them is relatively expensive, not cached, + // and generally redundant with the in-memory version. + return root.Type != gopathwalk.RootGOROOT && wrappedCallback.rootFound(root) + }, + dirFound: wrappedCallback.dirFound, + packageNameLoaded: func(pkg *pkg) bool { + mu.Lock() + defer mu.Unlock() + if _, ok := dupCheck[pkg.importPathShort]; ok { + return false + } + dupCheck[pkg.importPathShort] = struct{}{} + return notSelf(pkg) && wrappedCallback.packageNameLoaded(pkg) + }, + exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { + // If we're an x_test, load the package under test's test variant. + if strings.HasSuffix(filePkg, "_test") && pkg.dir == filepath.Dir(filename) { + var err error + _, exports, err = loadExportsFromFiles(ctx, env, pkg.dir, true) + if err != nil { + return + } + } + wrappedCallback.exportsLoaded(pkg, exports) + }, + } + resolver, err := env.GetResolver() + if err != nil { + return err + } + return resolver.scan(ctx, scanFilter) +} + +func ScoreImportPaths(ctx context.Context, env *ProcessEnv, paths []string) (map[string]float64, error) { + result := make(map[string]float64) + resolver, err := env.GetResolver() + if err != nil { + return nil, err + } + for _, path := range paths { + result[path] = resolver.scoreImportPath(ctx, path) + } + return result, nil +} + +func PrimeCache(ctx context.Context, resolver Resolver) error { + // Fully scan the disk for directories, but don't actually read any Go files. + callback := &scanCallback{ + rootFound: func(root gopathwalk.Root) bool { + // See getCandidatePkgs: walking GOROOT is apparently expensive and + // unnecessary. + return root.Type != gopathwalk.RootGOROOT + }, + dirFound: func(pkg *pkg) bool { + return false + }, + // packageNameLoaded and exportsLoaded must never be called. + } + + return resolver.scan(ctx, callback) +} + +func candidateImportName(pkg *pkg) string { + if ImportPathToAssumedName(pkg.importPathShort) != pkg.packageName { + return pkg.packageName + } + return "" +} + +// GetAllCandidates calls wrapped for each package whose name starts with +// searchPrefix, and can be imported from filename with the package name filePkg. +// +// Beware that the wrapped function may be called multiple times concurrently. +// TODO(adonovan): encapsulate the concurrency. +func GetAllCandidates(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { + callback := &scanCallback{ + rootFound: func(gopathwalk.Root) bool { + return true + }, + dirFound: func(pkg *pkg) bool { + if !CanUse(filename, pkg.dir) { + return false + } + // Try the assumed package name first, then a simpler path match + // in case of packages named vN, which are not uncommon. + return strings.HasPrefix(ImportPathToAssumedName(pkg.importPathShort), searchPrefix) || + strings.HasPrefix(path.Base(pkg.importPathShort), searchPrefix) + }, + packageNameLoaded: func(pkg *pkg) bool { + if !strings.HasPrefix(pkg.packageName, searchPrefix) { + return false + } + wrapped(ImportFix{ + StmtInfo: ImportInfo{ + ImportPath: pkg.importPathShort, + Name: candidateImportName(pkg), + }, + IdentName: pkg.packageName, + FixType: AddImport, + Relevance: pkg.relevance, + }) + return false + }, + } + return getCandidatePkgs(ctx, callback, filename, filePkg, env) +} + +// GetImportPaths calls wrapped for each package whose import path starts with +// searchPrefix, and can be imported from filename with the package name filePkg. +func GetImportPaths(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { + callback := &scanCallback{ + rootFound: func(gopathwalk.Root) bool { + return true + }, + dirFound: func(pkg *pkg) bool { + if !CanUse(filename, pkg.dir) { + return false + } + return strings.HasPrefix(pkg.importPathShort, searchPrefix) + }, + packageNameLoaded: func(pkg *pkg) bool { + wrapped(ImportFix{ + StmtInfo: ImportInfo{ + ImportPath: pkg.importPathShort, + Name: candidateImportName(pkg), + }, + IdentName: pkg.packageName, + FixType: AddImport, + Relevance: pkg.relevance, + }) + return false + }, + } + return getCandidatePkgs(ctx, callback, filename, filePkg, env) +} + +// A PackageExport is a package and its exports. +type PackageExport struct { + Fix *ImportFix + Exports []stdlib.Symbol +} + +// GetPackageExports returns all known packages with name pkg and their exports. +func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchPkg, filename, filePkg string, env *ProcessEnv) error { + callback := &scanCallback{ + rootFound: func(gopathwalk.Root) bool { + return true + }, + dirFound: func(pkg *pkg) bool { + return pkgIsCandidate(filename, References{searchPkg: nil}, pkg) + }, + packageNameLoaded: func(pkg *pkg) bool { + return pkg.packageName == searchPkg + }, + exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { + sortSymbols(exports) + wrapped(PackageExport{ + Fix: &ImportFix{ + StmtInfo: ImportInfo{ + ImportPath: pkg.importPathShort, + Name: candidateImportName(pkg), + }, + IdentName: pkg.packageName, + FixType: AddImport, + Relevance: pkg.relevance, + }, + Exports: exports, + }) + }, + } + return getCandidatePkgs(ctx, callback, filename, filePkg, env) +} + +// TODO(rfindley): we should depend on GOOS and GOARCH, to provide accurate +// imports when doing cross-platform development. +var requiredGoEnvVars = []string{ + "GO111MODULE", + "GOFLAGS", + "GOINSECURE", + "GOMOD", + "GOMODCACHE", + "GONOPROXY", + "GONOSUMDB", + "GOPATH", + "GOPROXY", + "GOROOT", + "GOSUMDB", + "GOWORK", +} + +// ProcessEnv contains environment variables and settings that affect the use of +// the go command, the go/build package, etc. +// +// ...a ProcessEnv *also* overwrites its Env along with derived state in the +// form of the resolver. And because it is lazily initialized, an env may just +// be broken and unusable, but there is no way for the caller to detect that: +// all queries will just fail. +// +// TODO(rfindley): refactor this package so that this type (perhaps renamed to +// just Env or Config) is an immutable configuration struct, to be exchanged +// for an initialized object via a constructor that returns an error. Perhaps +// the signature should be `func NewResolver(*Env) (*Resolver, error)`, where +// resolver is a concrete type used for resolving imports. Via this +// refactoring, we can avoid the need to call ProcessEnv.init and +// ProcessEnv.GoEnv everywhere, and implicitly fix all the places where this +// these are misused. Also, we'd delegate the caller the decision of how to +// handle a broken environment. +type ProcessEnv struct { + GocmdRunner *gocommand.Runner + + BuildFlags []string + ModFlag string + + // SkipPathInScan returns true if the path should be skipped from scans of + // the RootCurrentModule root type. The function argument is a clean, + // absolute path. + SkipPathInScan func(string) bool + + // Env overrides the OS environment, and can be used to specify + // GOPROXY, GO111MODULE, etc. PATH cannot be set here, because + // exec.Command will not honor it. + // Specifying all of requiredGoEnvVars avoids a call to `go env`. + Env map[string]string + + WorkingDir string + + // If Logf is non-nil, debug logging is enabled through this function. + Logf func(format string, args ...any) + + // If set, ModCache holds a shared cache of directory info to use across + // multiple ProcessEnvs. + ModCache *DirInfoCache + + initialized bool // see TODO above + + // resolver and resolverErr are lazily evaluated (see GetResolver). + // This is unclean, but see the big TODO in the docstring for ProcessEnv + // above: for now, we can't be sure that the ProcessEnv is fully initialized. + resolver Resolver + resolverErr error +} + +func (e *ProcessEnv) goEnv() (map[string]string, error) { + if err := e.init(); err != nil { + return nil, err + } + return e.Env, nil +} + +func (e *ProcessEnv) matchFile(dir, name string) (bool, error) { + bctx, err := e.buildContext() + if err != nil { + return false, err + } + return bctx.MatchFile(dir, name) +} + +// CopyConfig copies the env's configuration into a new env. +func (e *ProcessEnv) CopyConfig() *ProcessEnv { + copy := &ProcessEnv{ + GocmdRunner: e.GocmdRunner, + initialized: e.initialized, + BuildFlags: e.BuildFlags, + Logf: e.Logf, + WorkingDir: e.WorkingDir, + resolver: nil, + Env: map[string]string{}, + } + maps.Copy(copy.Env, e.Env) + return copy +} + +func (e *ProcessEnv) init() error { + if e.initialized { + return nil + } + + foundAllRequired := true + for _, k := range requiredGoEnvVars { + if _, ok := e.Env[k]; !ok { + foundAllRequired = false + break + } + } + if foundAllRequired { + e.initialized = true + return nil + } + + if e.Env == nil { + e.Env = map[string]string{} + } + + goEnv := map[string]string{} + stdout, err := e.invokeGo(context.TODO(), "env", append([]string{"-json"}, requiredGoEnvVars...)...) + if err != nil { + return err + } + if err := json.Unmarshal(stdout.Bytes(), &goEnv); err != nil { + return err + } + maps.Copy(e.Env, goEnv) + e.initialized = true + return nil +} + +func (e *ProcessEnv) env() []string { + var env []string // the gocommand package will prepend os.Environ. + for k, v := range e.Env { + env = append(env, k+"="+v) + } + return env +} + +func (e *ProcessEnv) GetResolver() (Resolver, error) { + if err := e.init(); err != nil { + return nil, err + } + + if e.resolver == nil && e.resolverErr == nil { + // TODO(rfindley): we should only use a gopathResolver here if the working + // directory is actually *in* GOPATH. (I seem to recall an open gopls issue + // for this behavior, but I can't find it). + // + // For gopls, we can optionally explicitly choose a resolver type, since we + // already know the view type. + if e.Env["GOMOD"] == "" && (e.Env["GOWORK"] == "" || e.Env["GOWORK"] == "off") { + e.resolver = newGopathResolver(e) + e.logf("created gopath resolver") + } else if r, err := newModuleResolver(e, e.ModCache); err != nil { + e.resolverErr = err + e.logf("failed to create module resolver: %v", err) + } else { + e.resolver = Resolver(r) + e.logf("created module resolver") + } + } + + return e.resolver, e.resolverErr +} + +// logf logs if e.Logf is non-nil. +func (e *ProcessEnv) logf(format string, args ...any) { + if e.Logf != nil { + e.Logf(format, args...) + } +} + +// buildContext returns the build.Context to use for matching files. +// +// TODO(rfindley): support dynamic GOOS, GOARCH here, when doing cross-platform +// development. +func (e *ProcessEnv) buildContext() (*build.Context, error) { + ctx := build.Default + goenv, err := e.goEnv() + if err != nil { + return nil, err + } + ctx.GOROOT = goenv["GOROOT"] + ctx.GOPATH = goenv["GOPATH"] + + // As of Go 1.14, build.Context has a Dir field + // (see golang.org/issue/34860). + // Populate it only if present. + rc := reflect.ValueOf(&ctx).Elem() + dir := rc.FieldByName("Dir") + if dir.IsValid() && dir.Kind() == reflect.String { + dir.SetString(e.WorkingDir) + } + + // Since Go 1.11, go/build.Context.Import may invoke 'go list' depending on + // the value in GO111MODULE in the process's environment. We always want to + // run in GOPATH mode when calling Import, so we need to prevent this from + // happening. In Go 1.16, GO111MODULE defaults to "on", so this problem comes + // up more frequently. + // + // HACK: setting any of the Context I/O hooks prevents Import from invoking + // 'go list', regardless of GO111MODULE. This is undocumented, but it's + // unlikely to change before GOPATH support is removed. + ctx.ReadDir = ioutil.ReadDir + + return &ctx, nil +} + +func (e *ProcessEnv) invokeGo(ctx context.Context, verb string, args ...string) (*bytes.Buffer, error) { + inv := gocommand.Invocation{ + Verb: verb, + Args: args, + BuildFlags: e.BuildFlags, + Env: e.env(), + Logf: e.Logf, + WorkingDir: e.WorkingDir, + } + return e.GocmdRunner.Run(ctx, inv) +} + +func addStdlibCandidates(pass *pass, refs References) error { + localbase := func(nm string) string { + ans := path.Base(nm) + if ans[0] == 'v' { + // this is called, for instance, with math/rand/v2 and returns rand/v2 + if _, err := strconv.Atoi(ans[1:]); err == nil { + ix := strings.LastIndex(nm, ans) + more := path.Base(nm[:ix]) + ans = path.Join(more, ans) + } + } + return ans + } + add := func(pkg string) { + // Prevent self-imports. + if path.Base(pkg) == pass.f.Name.Name && filepath.Join(pass.goroot, "src", pkg) == pass.srcDir { + return + } + exports := symbolNameSet(stdlib.PackageSymbols[pkg]) + pass.addCandidate( + &ImportInfo{ImportPath: pkg}, + &PackageInfo{Name: localbase(pkg), Exports: exports}) + } + for left := range refs { + if left == "rand" { + // Make sure we try crypto/rand before any version of math/rand as both have Int() + // and our policy is to recommend crypto + add("crypto/rand") + // if the user's no later than go1.21, this should be "math/rand" + // but we have no way of figuring out what the user is using + // TODO: investigate using the toolchain version to disambiguate in the stdlib + add("math/rand/v2") + // math/rand has an overlapping API + // TestIssue66407 fails without this + add("math/rand") + continue + } + for importPath := range stdlib.PackageSymbols { + if path.Base(importPath) == left { + add(importPath) + } + } + } + return nil +} + +// A Resolver does the build-system-specific parts of goimports. +type Resolver interface { + // loadPackageNames loads the package names in importPaths. + loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) + + // scan works with callback to search for packages. See scanCallback for details. + scan(ctx context.Context, callback *scanCallback) error + + // loadExports returns the package name and set of exported symbols in the + // package at dir. loadExports may be called concurrently. + loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) + + // scoreImportPath returns the relevance for an import path. + scoreImportPath(ctx context.Context, path string) float64 + + // ClearForNewScan returns a new Resolver based on the receiver that has + // cleared its internal caches of directory contents. + // + // The new resolver should be primed and then set via + // [ProcessEnv.UpdateResolver]. + ClearForNewScan() Resolver +} + +// A scanCallback controls a call to scan and receives its results. +// In general, minor errors will be silently discarded; a user should not +// expect to receive a full series of calls for everything. +type scanCallback struct { + // rootFound is called before scanning a new root dir. If it returns true, + // the root will be scanned. Returning false will not necessarily prevent + // directories from that root making it to dirFound. + rootFound func(gopathwalk.Root) bool + // dirFound is called when a directory is found that is possibly a Go package. + // pkg will be populated with everything except packageName. + // If it returns true, the package's name will be loaded. + dirFound func(pkg *pkg) bool + // packageNameLoaded is called when a package is found and its name is loaded. + // If it returns true, the package's exports will be loaded. + packageNameLoaded func(pkg *pkg) bool + // exportsLoaded is called when a package's exports have been loaded. + exportsLoaded func(pkg *pkg, exports []stdlib.Symbol) +} + +func addExternalCandidates(ctx context.Context, pass *pass, refs References, filename string) error { + ctx, done := event.Start(ctx, "imports.addExternalCandidates") + defer done() + + results, err := pass.source.ResolveReferences(ctx, filename, refs) + if err != nil { + return err + } + + for _, result := range results { + if result == nil { + continue + } + // Don't offer completions that would shadow predeclared + // names, such as github.com/coreos/etcd/error. + if types.Universe.Lookup(result.Package.Name) != nil { // predeclared + // Ideally we would skip this candidate only + // if the predeclared name is actually + // referenced by the file, but that's a lot + // trickier to compute and would still create + // an import that is likely to surprise the + // user before long. + continue + } + pass.addCandidate(result.Import, result.Package) + } + return nil +} + +// notIdentifier reports whether ch is an invalid identifier character. +func notIdentifier(ch rune) bool { + return !('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || + '0' <= ch && ch <= '9' || + ch == '_' || + ch >= utf8.RuneSelf && (unicode.IsLetter(ch) || unicode.IsDigit(ch))) +} + +// ImportPathToAssumedName returns the assumed package name of an import path. +// It does this using only string parsing of the import path. +// It picks the last element of the path that does not look like a major +// version, and then picks the valid identifier off the start of that element. +// It is used to determine if a local rename should be added to an import for +// clarity. +// This function could be moved to a standard package and exported if we want +// for use in other tools. +func ImportPathToAssumedName(importPath string) string { + base := path.Base(importPath) + if strings.HasPrefix(base, "v") { + if _, err := strconv.Atoi(base[1:]); err == nil { + dir := path.Dir(importPath) + if dir != "." { + base = path.Base(dir) + } + } + } + base = strings.TrimPrefix(base, "go-") + if i := strings.IndexFunc(base, notIdentifier); i >= 0 { + base = base[:i] + } + return base +} + +// gopathResolver implements resolver for GOPATH workspaces. +type gopathResolver struct { + env *ProcessEnv + walked bool + cache *DirInfoCache + scanSema chan struct{} // scanSema prevents concurrent scans. +} + +func newGopathResolver(env *ProcessEnv) *gopathResolver { + r := &gopathResolver{ + env: env, + cache: NewDirInfoCache(), + scanSema: make(chan struct{}, 1), + } + r.scanSema <- struct{}{} + return r +} + +func (r *gopathResolver) ClearForNewScan() Resolver { + return newGopathResolver(r.env) +} + +func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { + names := map[string]string{} + bctx, err := r.env.buildContext() + if err != nil { + return nil, err + } + for _, path := range importPaths { + names[path] = importPathToName(bctx, path, srcDir) + } + return names, nil +} + +// importPathToName finds out the actual package name, as declared in its .go files. +func importPathToName(bctx *build.Context, importPath, srcDir string) string { + // Fast path for standard library without going to disk. + if stdlib.HasPackage(importPath) { + return path.Base(importPath) // stdlib packages always match their paths. + } + + buildPkg, err := bctx.Import(importPath, srcDir, build.FindOnly) + if err != nil { + return "" + } + pkgName, err := packageDirToName(buildPkg.Dir) + if err != nil { + return "" + } + return pkgName +} + +// packageDirToName is a faster version of build.Import if +// the only thing desired is the package name. Given a directory, +// packageDirToName then only parses one file in the package, +// trusting that the files in the directory are consistent. +func packageDirToName(dir string) (packageName string, err error) { + d, err := os.Open(dir) + if err != nil { + return "", err + } + names, err := d.Readdirnames(-1) + d.Close() + if err != nil { + return "", err + } + sort.Strings(names) // to have predictable behavior + var lastErr error + var nfile int + for _, name := range names { + if !strings.HasSuffix(name, ".go") { + continue + } + if strings.HasSuffix(name, "_test.go") { + continue + } + nfile++ + fullFile := filepath.Join(dir, name) + + fset := token.NewFileSet() + f, err := parser.ParseFile(fset, fullFile, nil, parser.PackageClauseOnly) + if err != nil { + lastErr = err + continue + } + pkgName := f.Name.Name + if pkgName == "documentation" { + // Special case from go/build.ImportDir, not + // handled by ctx.MatchFile. + continue + } + if pkgName == "main" { + // Also skip package main, assuming it's a +build ignore generator or example. + // Since you can't import a package main anyway, there's no harm here. + continue + } + return pkgName, nil + } + if lastErr != nil { + return "", lastErr + } + return "", fmt.Errorf("no importable package found in %d Go files", nfile) +} + +type pkg struct { + dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http") + importPathShort string // vendorless import path ("net/http", "a/b") + packageName string // package name loaded from source if requested + relevance float64 // a weakly-defined score of how relevant a package is. 0 is most relevant. +} + +type pkgDistance struct { + pkg *pkg + distance int // relative distance to target +} + +// byDistanceOrImportPathShortLength sorts by relative distance breaking ties +// on the short import path length and then the import string itself. +type byDistanceOrImportPathShortLength []pkgDistance + +func (s byDistanceOrImportPathShortLength) Len() int { return len(s) } +func (s byDistanceOrImportPathShortLength) Less(i, j int) bool { + di, dj := s[i].distance, s[j].distance + if di == -1 { + return false + } + if dj == -1 { + return true + } + if di != dj { + return di < dj + } + + vi, vj := s[i].pkg.importPathShort, s[j].pkg.importPathShort + if len(vi) != len(vj) { + return len(vi) < len(vj) + } + return vi < vj +} +func (s byDistanceOrImportPathShortLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +func distance(basepath, targetpath string) int { + p, err := filepath.Rel(basepath, targetpath) + if err != nil { + return -1 + } + if p == "." { + return 0 + } + return strings.Count(p, string(filepath.Separator)) + 1 +} + +func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error { + add := func(root gopathwalk.Root, dir string) { + // We assume cached directories have not changed. We can skip them and their + // children. + if _, ok := r.cache.Load(dir); ok { + return + } + + importpath := filepath.ToSlash(dir[len(root.Path)+len("/"):]) + info := directoryPackageInfo{ + status: directoryScanned, + dir: dir, + rootType: root.Type, + nonCanonicalImportPath: VendorlessPath(importpath), + } + r.cache.Store(dir, info) + } + processDir := func(info directoryPackageInfo) { + // Skip this directory if we were not able to get the package information successfully. + if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { + return + } + + p := &pkg{ + importPathShort: info.nonCanonicalImportPath, + dir: info.dir, + relevance: MaxRelevance - 1, + } + if info.rootType == gopathwalk.RootGOROOT { + p.relevance = MaxRelevance + } + + if !callback.dirFound(p) { + return + } + var err error + p.packageName, err = r.cache.CachePackageName(info) + if err != nil { + return + } + + if !callback.packageNameLoaded(p) { + return + } + if _, exports, err := r.loadExports(ctx, p, false); err == nil { + callback.exportsLoaded(p, exports) + } + } + stop := r.cache.ScanAndListen(ctx, processDir) + defer stop() + + goenv, err := r.env.goEnv() + if err != nil { + return err + } + var roots []gopathwalk.Root + roots = append(roots, gopathwalk.Root{Path: filepath.Join(goenv["GOROOT"], "src"), Type: gopathwalk.RootGOROOT}) + for _, p := range filepath.SplitList(goenv["GOPATH"]) { + roots = append(roots, gopathwalk.Root{Path: filepath.Join(p, "src"), Type: gopathwalk.RootGOPATH}) + } + // The callback is not necessarily safe to use in the goroutine below. Process roots eagerly. + roots = filterRoots(roots, callback.rootFound) + // We can't cancel walks, because we need them to finish to have a usable + // cache. Instead, run them in a separate goroutine and detach. + scanDone := make(chan struct{}) + go func() { + select { + case <-ctx.Done(): + return + case <-r.scanSema: + } + defer func() { r.scanSema <- struct{}{} }() + gopathwalk.Walk(roots, add, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: false}) + close(scanDone) + }() + select { + case <-ctx.Done(): + case <-scanDone: + } + return nil +} + +func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) float64 { + if stdlib.HasPackage(path) { + return MaxRelevance + } + return MaxRelevance - 1 +} + +func filterRoots(roots []gopathwalk.Root, include func(gopathwalk.Root) bool) []gopathwalk.Root { + var result []gopathwalk.Root + for _, root := range roots { + if !include(root) { + continue + } + result = append(result, root) + } + return result +} + +func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { + if info, ok := r.cache.Load(pkg.dir); ok && !includeTest { + return r.cache.CacheExports(ctx, r.env, info) + } + return loadExportsFromFiles(ctx, r.env, pkg.dir, includeTest) +} + +// VendorlessPath returns the devendorized version of the import path ipath. +// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". +func VendorlessPath(ipath string) string { + // Devendorize for use in import statement. + if i := strings.LastIndex(ipath, "/vendor/"); i >= 0 { + return ipath[i+len("/vendor/"):] + } + if strings.HasPrefix(ipath, "vendor/") { + return ipath[len("vendor/"):] + } + return ipath +} + +func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []stdlib.Symbol, error) { + // Look for non-test, buildable .go files which could provide exports. + all, err := os.ReadDir(dir) + if err != nil { + return "", nil, err + } + var files []fs.DirEntry + for _, fi := range all { + name := fi.Name() + if !strings.HasSuffix(name, ".go") || (!includeTest && strings.HasSuffix(name, "_test.go")) { + continue + } + match, err := env.matchFile(dir, fi.Name()) + if err != nil || !match { + continue + } + files = append(files, fi) + } + + if len(files) == 0 { + return "", nil, fmt.Errorf("dir %v contains no buildable, non-test .go files", dir) + } + + var pkgName string + var exports []stdlib.Symbol + fset := token.NewFileSet() + for _, fi := range files { + select { + case <-ctx.Done(): + return "", nil, ctx.Err() + default: + } + + fullFile := filepath.Join(dir, fi.Name()) + // Legacy ast.Object resolution is needed here. + f, err := parser.ParseFile(fset, fullFile, nil, 0) + if err != nil { + env.logf("error parsing %v: %v", fullFile, err) + continue + } + if f.Name.Name == "documentation" { + // Special case from go/build.ImportDir, not + // handled by MatchFile above. + continue + } + if includeTest && strings.HasSuffix(f.Name.Name, "_test") { + // x_test package. We want internal test files only. + continue + } + pkgName = f.Name.Name + for name, obj := range f.Scope.Objects { + if ast.IsExported(name) { + var kind stdlib.Kind + switch obj.Kind { + case ast.Con: + kind = stdlib.Const + case ast.Typ: + kind = stdlib.Type + case ast.Var: + kind = stdlib.Var + case ast.Fun: + kind = stdlib.Func + } + exports = append(exports, stdlib.Symbol{ + Name: name, + Kind: kind, + Version: 0, // unknown; be permissive + }) + } + } + } + sortSymbols(exports) + + env.logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports) + return pkgName, exports, nil +} + +func sortSymbols(syms []stdlib.Symbol) { + sort.Slice(syms, func(i, j int) bool { + return syms[i].Name < syms[j].Name + }) +} + +// A symbolSearcher searches for a package with a set of symbols, among a set +// of candidates. See [symbolSearcher.search]. +// +// The search occurs within the scope of a single file, with context captured +// in srcDir and xtest. +type symbolSearcher struct { + logf func(string, ...any) + srcDir string // directory containing the file + xtest bool // if set, the file containing is an x_test file + loadExports func(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) +} + +// search searches the provided candidates for a package containing all +// exported symbols. +// +// If successful, returns the resulting package. +func (s *symbolSearcher) search(ctx context.Context, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) { + // Sort the candidates by their import package length, + // assuming that shorter package names are better than long + // ones. Note that this sorts by the de-vendored name, so + // there's no "penalty" for vendoring. + sort.Sort(byDistanceOrImportPathShortLength(candidates)) + if s.logf != nil { + for i, c := range candidates { + s.logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir) + } + } + + // Arrange rescv so that we can we can await results in order of relevance + // and exit as soon as we find the first match. + // + // Search with bounded concurrency, returning as soon as the first result + // among rescv is non-nil. + rescv := make([]chan *pkg, len(candidates)) + for i := range candidates { + rescv[i] = make(chan *pkg, 1) + } + const maxConcurrentPackageImport = 4 + loadExportsSem := make(chan struct{}, maxConcurrentPackageImport) + + // Ensure that all work is completed at exit. + ctx, cancel := context.WithCancel(ctx) + var wg sync.WaitGroup + defer func() { + cancel() + wg.Wait() + }() + + // Start the search. + wg.Add(1) + go func() { + defer wg.Done() + for i, c := range candidates { + select { + case loadExportsSem <- struct{}{}: + case <-ctx.Done(): + return + } + + i := i + c := c + wg.Add(1) + go func() { + defer func() { + <-loadExportsSem + wg.Done() + }() + if s.logf != nil { + s.logf("loading exports in dir %s (seeking package %s)", c.pkg.dir, pkgName) + } + pkg, err := s.searchOne(ctx, c, symbols) + if err != nil { + if s.logf != nil && ctx.Err() == nil { + s.logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err) + } + pkg = nil + } + rescv[i] <- pkg // may be nil + }() + } + }() + + // Await the first (best) result. + for _, resc := range rescv { + select { + case r := <-resc: + if r != nil { + return r, nil + } + case <-ctx.Done(): + return nil, ctx.Err() + } + } + return nil, nil +} + +func (s *symbolSearcher) searchOne(ctx context.Context, c pkgDistance, symbols map[string]bool) (*pkg, error) { + if ctx.Err() != nil { + return nil, ctx.Err() + } + // If we're considering the package under test from an x_test, load the + // test variant. + includeTest := s.xtest && c.pkg.dir == s.srcDir + _, exports, err := s.loadExports(ctx, c.pkg, includeTest) + if err != nil { + return nil, err + } + + exportsMap := make(map[string]bool, len(exports)) + for _, sym := range exports { + exportsMap[sym.Name] = true + } + for symbol := range symbols { + if !exportsMap[symbol] { + return nil, nil // no match + } + } + return c.pkg, nil +} + +// pkgIsCandidate reports whether pkg is a candidate for satisfying the +// finding which package pkgIdent in the file named by filename is trying +// to refer to. +// +// This check is purely lexical and is meant to be as fast as possible +// because it's run over all $GOPATH directories to filter out poor +// candidates in order to limit the CPU and I/O later parsing the +// exports in candidate packages. +// +// filename is the file being formatted. +// pkgIdent is the package being searched for, like "client" (if +// searching for "client.New") +func pkgIsCandidate(filename string, refs References, pkg *pkg) bool { + // Check "internal" and "vendor" visibility: + if !CanUse(filename, pkg.dir) { + return false + } + + // Speed optimization to minimize disk I/O: + // + // Use the matchesPath heuristic to filter to package paths that could + // reasonably match a dangling reference. + // + // This permits mismatch naming like directory "go-foo" being package "foo", + // or "pkg.v3" being "pkg", or directory + // "google.golang.org/api/cloudbilling/v1" being package "cloudbilling", but + // doesn't permit a directory "foo" to be package "bar", which is strongly + // discouraged anyway. There's no reason goimports needs to be slow just to + // accommodate that. + for pkgIdent := range refs { + if matchesPath(pkgIdent, pkg.importPathShort) { + return true + } + } + return false +} + +// CanUse reports whether the package in dir is usable from filename, +// respecting the Go "internal" and "vendor" visibility rules. +func CanUse(filename, dir string) bool { + // Fast path check, before any allocations. If it doesn't contain vendor + // or internal, it's not tricky: + // Note that this can false-negative on directories like "notinternal", + // but we check it correctly below. This is just a fast path. + if !strings.Contains(dir, "vendor") && !strings.Contains(dir, "internal") { + return true + } + + dirSlash := filepath.ToSlash(dir) + if !strings.Contains(dirSlash, "/vendor/") && !strings.Contains(dirSlash, "/internal/") && !strings.HasSuffix(dirSlash, "/internal") { + return true + } + // Vendor or internal directory only visible from children of parent. + // That means the path from the current directory to the target directory + // can contain ../vendor or ../internal but not ../foo/vendor or ../foo/internal + // or bar/vendor or bar/internal. + // After stripping all the leading ../, the only okay place to see vendor or internal + // is at the very beginning of the path. + absfile, err := filepath.Abs(filename) + if err != nil { + return false + } + absdir, err := filepath.Abs(dir) + if err != nil { + return false + } + rel, err := filepath.Rel(absfile, absdir) + if err != nil { + return false + } + relSlash := filepath.ToSlash(rel) + if i := strings.LastIndex(relSlash, "../"); i >= 0 { + relSlash = relSlash[i+len("../"):] + } + return !strings.Contains(relSlash, "/vendor/") && !strings.Contains(relSlash, "/internal/") && !strings.HasSuffix(relSlash, "/internal") +} + +// matchesPath reports whether ident may match a potential package name +// referred to by path, using heuristics to filter out unidiomatic package +// names. +// +// Specifically, it checks whether either of the last two '/'- or '\'-delimited +// path segments matches the identifier. The segment-matching heuristic must +// allow for various conventions around segment naming, including go-foo, +// foo-go, and foo.v3. To handle all of these, matching considers both (1) the +// entire segment, ignoring '-' and '.', as well as (2) the last subsegment +// separated by '-' or '.'. So the segment foo-go matches all of the following +// identifiers: foo, go, and foogo. All matches are case insensitive (for ASCII +// identifiers). +// +// See the docstring for [pkgIsCandidate] for an explanation of how this +// heuristic filters potential candidate packages. +func matchesPath(ident, path string) bool { + // Ignore case, for ASCII. + lowerIfASCII := func(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b + } + + // match reports whether path[start:end] matches ident, ignoring [.-]. + match := func(start, end int) bool { + ii := len(ident) - 1 // current byte in ident + pi := end - 1 // current byte in path + for ; pi >= start && ii >= 0; pi-- { + pb := path[pi] + if pb == '-' || pb == '.' { + continue + } + pb = lowerIfASCII(pb) + ib := lowerIfASCII(ident[ii]) + if pb != ib { + return false + } + ii-- + } + return ii < 0 && pi < start // all bytes matched + } + + // segmentEnd and subsegmentEnd hold the end points of the current segment + // and subsegment intervals. + segmentEnd := len(path) + subsegmentEnd := len(path) + + // Count slashes; we only care about the last two segments. + nslash := 0 + + for i := len(path) - 1; i >= 0; i-- { + switch b := path[i]; b { + // TODO(rfindley): we handle backlashes here only because the previous + // heuristic handled backslashes. This is perhaps overly defensive, but is + // the result of many lessons regarding Chesterton's fence and the + // goimports codebase. + // + // However, this function is only ever called with something called an + // 'importPath'. Is it possible that this is a real import path, and + // therefore we need only consider forward slashes? + case '/', '\\': + if match(i+1, segmentEnd) || match(i+1, subsegmentEnd) { + return true + } + nslash++ + if nslash == 2 { + return false // did not match above + } + segmentEnd, subsegmentEnd = i, i // reset + case '-', '.': + if match(i+1, subsegmentEnd) { + return true + } + subsegmentEnd = i + } + } + return match(0, segmentEnd) || match(0, subsegmentEnd) +} + +type visitFn func(node ast.Node) ast.Visitor + +func (fn visitFn) Visit(node ast.Node) ast.Visitor { + return fn(node) +} + +func symbolNameSet(symbols []stdlib.Symbol) map[string]bool { + names := make(map[string]bool) + for _, sym := range symbols { + switch sym.Kind { + case stdlib.Const, stdlib.Var, stdlib.Type, stdlib.Func: + names[sym.Name] = true + } + } + return names +} diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go new file mode 100644 index 0000000..b5f5218 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -0,0 +1,359 @@ +// Copyright 2013 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 imports implements a Go pretty-printer (like package "go/format") +// that also adds or removes import statements as necessary. +package imports + +import ( + "bufio" + "bytes" + "context" + "fmt" + "go/ast" + "go/format" + "go/parser" + "go/printer" + "go/token" + "io" + "regexp" + "strconv" + "strings" + + "golang.org/x/tools/go/ast/astutil" + "golang.org/x/tools/internal/event" +) + +// Options is golang.org/x/tools/imports.Options with extra internal-only options. +type Options struct { + Env *ProcessEnv // The environment to use. Note: this contains the cached module and filesystem state. + + // LocalPrefix is a comma-separated string of import path prefixes, which, if + // set, instructs Process to sort the import paths with the given prefixes + // into another group after 3rd-party packages. + LocalPrefix string + + Fragment bool // Accept fragment of a source file (no package statement) + AllErrors bool // Report all errors (not just the first 10 on different lines) + + Comments bool // Print comments (true if nil *Options provided) + TabIndent bool // Use tabs for indent (true if nil *Options provided) + TabWidth int // Tab width (8 if nil *Options provided) + + FormatOnly bool // Disable the insertion and deletion of imports +} + +// Process implements golang.org/x/tools/imports.Process with explicit context in opt.Env. +func Process(filename string, src []byte, opt *Options) (formatted []byte, err error) { + fileSet := token.NewFileSet() + var parserMode parser.Mode + if opt.Comments { + parserMode |= parser.ParseComments + } + if opt.AllErrors { + parserMode |= parser.AllErrors + } + file, adjust, err := parse(fileSet, filename, src, parserMode, opt.Fragment) + if err != nil { + return nil, err + } + + if !opt.FormatOnly { + if err := fixImports(fileSet, file, filename, opt.Env); err != nil { + return nil, err + } + } + return formatFile(fileSet, file, src, adjust, opt) +} + +// FixImports returns a list of fixes to the imports that, when applied, +// will leave the imports in the same state as Process. src and opt must +// be specified. +// +// Note that filename's directory influences which imports can be chosen, +// so it is important that filename be accurate. +func FixImports(ctx context.Context, filename string, src []byte, goroot string, logf func(string, ...any), source Source) (fixes []*ImportFix, err error) { + ctx, done := event.Start(ctx, "imports.FixImports") + defer done() + + fileSet := token.NewFileSet() + // TODO(rfindley): these default values for ParseComments and AllErrors were + // extracted from gopls, but are they even needed? + file, _, err := parse(fileSet, filename, src, parser.ParseComments|parser.AllErrors, true) + if err != nil { + return nil, err + } + + return getFixesWithSource(ctx, fileSet, file, filename, goroot, logf, source) +} + +// ApplyFixes applies all of the fixes to the file and formats it. extraMode +// is added in when parsing the file. src and opts must be specified, but no +// env is needed. +func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, extraMode parser.Mode) (formatted []byte, err error) { + // Don't use parse() -- we don't care about fragments or statement lists + // here, and we need to work with unparsable files. + fileSet := token.NewFileSet() + parserMode := parser.SkipObjectResolution + if opt.Comments { + parserMode |= parser.ParseComments + } + if opt.AllErrors { + parserMode |= parser.AllErrors + } + parserMode |= extraMode + + file, err := parser.ParseFile(fileSet, filename, src, parserMode) + if file == nil { + return nil, err + } + + // Apply the fixes to the file. + apply(fileSet, file, fixes) + + return formatFile(fileSet, file, src, nil, opt) +} + +// formatFile formats the file syntax tree. +// It may mutate the token.FileSet and the ast.File. +// +// If an adjust function is provided, it is called after formatting +// with the original source (formatFile's src parameter) and the +// formatted file, and returns the postpocessed result. +func formatFile(fset *token.FileSet, file *ast.File, src []byte, adjust func(orig []byte, src []byte) []byte, opt *Options) ([]byte, error) { + mergeImports(file) + sortImports(opt.LocalPrefix, fset.File(file.FileStart), file) + var spacesBefore []string // import paths we need spaces before + for _, impSection := range astutil.Imports(fset, file) { + // Within each block of contiguous imports, see if any + // import lines are in different group numbers. If so, + // we'll need to put a space between them so it's + // compatible with gofmt. + lastGroup := -1 + for _, importSpec := range impSection { + importPath, _ := strconv.Unquote(importSpec.Path.Value) + groupNum := importGroup(opt.LocalPrefix, importPath) + if groupNum != lastGroup && lastGroup != -1 { + spacesBefore = append(spacesBefore, importPath) + } + lastGroup = groupNum + } + + } + + printerMode := printer.UseSpaces + if opt.TabIndent { + printerMode |= printer.TabIndent + } + printConfig := &printer.Config{Mode: printerMode, Tabwidth: opt.TabWidth} + + var buf bytes.Buffer + err := printConfig.Fprint(&buf, fset, file) + if err != nil { + return nil, err + } + out := buf.Bytes() + if adjust != nil { + out = adjust(src, out) + } + if len(spacesBefore) > 0 { + out, err = addImportSpaces(bytes.NewReader(out), spacesBefore) + if err != nil { + return nil, err + } + } + + out, err = format.Source(out) + if err != nil { + return nil, err + } + return out, nil +} + +// parse parses src, which was read from filename, +// as a Go source file or statement list. +func parse(fset *token.FileSet, filename string, src []byte, parserMode parser.Mode, fragment bool) (*ast.File, func(orig, src []byte) []byte, error) { + if parserMode&parser.SkipObjectResolution != 0 { + panic("legacy ast.Object resolution is required") + } + + // Try as whole source file. + file, err := parser.ParseFile(fset, filename, src, parserMode) + if err == nil { + return file, nil, nil + } + // If the error is that the source file didn't begin with a + // package line and we accept fragmented input, fall through to + // try as a source fragment. Stop and return on any other error. + if !fragment || !strings.Contains(err.Error(), "expected 'package'") { + return nil, nil, err + } + + // If this is a declaration list, make it a source file + // by inserting a package clause. + // Insert using a ;, not a newline, so that parse errors are on + // the correct line. + const prefix = "package main;" + psrc := append([]byte(prefix), src...) + file, err = parser.ParseFile(fset, filename, psrc, parserMode) + if err == nil { + // Gofmt will turn the ; into a \n. + // Do that ourselves now and update the file contents, + // so that positions and line numbers are correct going forward. + psrc[len(prefix)-1] = '\n' + fset.File(file.Package).SetLinesForContent(psrc) + + // If a main function exists, we will assume this is a main + // package and leave the file. + if containsMainFunc(file) { + return file, nil, nil + } + + adjust := func(orig, src []byte) []byte { + // Remove the package clause. + src = src[len(prefix):] + return matchSpace(orig, src) + } + return file, adjust, nil + } + // If the error is that the source file didn't begin with a + // declaration, fall through to try as a statement list. + // Stop and return on any other error. + if !strings.Contains(err.Error(), "expected declaration") { + return nil, nil, err + } + + // If this is a statement list, make it a source file + // by inserting a package clause and turning the list + // into a function body. This handles expressions too. + // Insert using a ;, not a newline, so that the line numbers + // in fsrc match the ones in src. + fsrc := append(append([]byte("package p; func _() {"), src...), '}') + file, err = parser.ParseFile(fset, filename, fsrc, parserMode) + if err == nil { + adjust := func(orig, src []byte) []byte { + // Remove the wrapping. + // Gofmt has turned the ; into a \n\n. + src = src[len("package p\n\nfunc _() {"):] + src = src[:len(src)-len("}\n")] + // Gofmt has also indented the function body one level. + // Remove that indent. + src = bytes.ReplaceAll(src, []byte("\n\t"), []byte("\n")) + return matchSpace(orig, src) + } + return file, adjust, nil + } + + // Failed, and out of options. + return nil, nil, err +} + +// containsMainFunc checks if a file contains a function declaration with the +// function signature 'func main()' +func containsMainFunc(file *ast.File) bool { + for _, decl := range file.Decls { + if f, ok := decl.(*ast.FuncDecl); ok { + if f.Name.Name != "main" { + continue + } + + if len(f.Type.Params.List) != 0 { + continue + } + + if f.Type.Results != nil && len(f.Type.Results.List) != 0 { + continue + } + + return true + } + } + + return false +} + +func cutSpace(b []byte) (before, middle, after []byte) { + i := 0 + for i < len(b) && (b[i] == ' ' || b[i] == '\t' || b[i] == '\n') { + i++ + } + j := len(b) + for j > 0 && (b[j-1] == ' ' || b[j-1] == '\t' || b[j-1] == '\n') { + j-- + } + if i <= j { + return b[:i], b[i:j], b[j:] + } + return nil, nil, b[j:] +} + +// matchSpace reformats src to use the same space context as orig. +// 1. If orig begins with blank lines, matchSpace inserts them at the beginning of src. +// 2. matchSpace copies the indentation of the first non-blank line in orig +// to every non-blank line in src. +// 3. matchSpace copies the trailing space from orig and uses it in place +// of src's trailing space. +func matchSpace(orig []byte, src []byte) []byte { + before, _, after := cutSpace(orig) + i := bytes.LastIndex(before, []byte{'\n'}) + before, indent := before[:i+1], before[i+1:] + + _, src, _ = cutSpace(src) + + var b bytes.Buffer + b.Write(before) + for len(src) > 0 { + line := src + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, src = line[:i+1], line[i+1:] + } else { + src = nil + } + if len(line) > 0 && line[0] != '\n' { // not blank + b.Write(indent) + } + b.Write(line) + } + b.Write(after) + return b.Bytes() +} + +var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+?)"`) + +func addImportSpaces(r io.Reader, breaks []string) ([]byte, error) { + var out bytes.Buffer + in := bufio.NewReader(r) + inImports := false + done := false + for { + s, err := in.ReadString('\n') + if err == io.EOF { + break + } else if err != nil { + return nil, err + } + + if !inImports && !done && strings.HasPrefix(s, "import") { + inImports = true + } + if inImports && (strings.HasPrefix(s, "var") || + strings.HasPrefix(s, "func") || + strings.HasPrefix(s, "const") || + strings.HasPrefix(s, "type")) { + done = true + inImports = false + } + if inImports && len(breaks) > 0 { + if m := impLine.FindStringSubmatch(s); m != nil { + if m[1] == breaks[0] { + out.WriteByte('\n') + breaks = breaks[1:] + } + } + } + + fmt.Fprint(&out, s) + } + return out.Bytes(), nil +} diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go new file mode 100644 index 0000000..df94ec8 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -0,0 +1,841 @@ +// 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 imports + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "os" + "path" + "path/filepath" + "regexp" + "slices" + "sort" + "strconv" + "strings" + + "golang.org/x/mod/module" + "golang.org/x/tools/internal/event" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" +) + +// Notes(rfindley): ModuleResolver appears to be heavily optimized for scanning +// as fast as possible, which is desirable for a call to goimports from the +// command line, but it doesn't work as well for gopls, where it suffers from +// slow startup (golang/go#44863) and intermittent hanging (golang/go#59216), +// both caused by populating the cache, albeit in slightly different ways. +// +// A high level list of TODOs: +// - Optimize the scan itself, as there is some redundancy statting and +// reading go.mod files. +// - Invert the relationship between ProcessEnv and Resolver (see the +// docstring of ProcessEnv). +// - Make it easier to use an external resolver implementation. +// +// Smaller TODOs are annotated in the code below. + +// ModuleResolver implements the Resolver interface for a workspace using +// modules. +// +// A goal of the ModuleResolver is to invoke the Go command as little as +// possible. To this end, it runs the Go command only for listing module +// information (i.e. `go list -m -e -json ...`). Package scanning, the process +// of loading package information for the modules, is implemented internally +// via the scan method. +// +// It has two types of state: the state derived from the go command, which +// is populated by init, and the state derived from scans, which is populated +// via scan. A root is considered scanned if it has been walked to discover +// directories. However, if the scan did not require additional information +// from the directory (such as package name or exports), the directory +// information itself may be partially populated. It will be lazily filled in +// as needed by scans, using the scanCallback. +type ModuleResolver struct { + env *ProcessEnv + + // Module state, populated during construction + dummyVendorMod *gocommand.ModuleJSON // if vendoring is enabled, a pseudo-module to represent the /vendor directory + moduleCacheDir string // GOMODCACHE, inferred from GOPATH if unset + roots []gopathwalk.Root // roots to scan, in approximate order of importance + mains []*gocommand.ModuleJSON // main modules + mainByDir map[string]*gocommand.ModuleJSON // module information by dir, to join with roots + modsByModPath []*gocommand.ModuleJSON // all modules, ordered by # of path components in their module path + modsByDir []*gocommand.ModuleJSON // ...or by the number of path components in their Dir. + + // Scanning state, populated by scan + + // scanSema prevents concurrent scans, and guards scannedRoots and the cache + // fields below (though the caches themselves are concurrency safe). + // Receive to acquire, send to release. + scanSema chan struct{} + scannedRoots map[gopathwalk.Root]bool // if true, root has been walked + + // Caches of directory info, populated by scans and scan callbacks + // + // moduleCacheCache stores cached information about roots in the module + // cache, which are immutable and therefore do not need to be invalidated. + // + // otherCache stores information about all other roots (even GOROOT), which + // may change. + moduleCacheCache *DirInfoCache + otherCache *DirInfoCache +} + +// newModuleResolver returns a new module-aware goimports resolver. +// +// Note: use caution when modifying this constructor: changes must also be +// reflected in ModuleResolver.ClearForNewScan. +func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleResolver, error) { + r := &ModuleResolver{ + env: e, + scanSema: make(chan struct{}, 1), + } + r.scanSema <- struct{}{} // release + + goenv, err := r.env.goEnv() + if err != nil { + return nil, err + } + + // TODO(rfindley): can we refactor to share logic with r.env.invokeGo? + inv := gocommand.Invocation{ + BuildFlags: r.env.BuildFlags, + ModFlag: r.env.ModFlag, + Env: r.env.env(), + Logf: r.env.Logf, + WorkingDir: r.env.WorkingDir, + } + + vendorEnabled := false + var mainModVendor *gocommand.ModuleJSON // for module vendoring + var mainModsVendor []*gocommand.ModuleJSON // for workspace vendoring + + goWork := r.env.Env["GOWORK"] + if len(goWork) == 0 { + // TODO(rfindley): VendorEnabled runs the go command to get GOFLAGS, but + // they should be available from the ProcessEnv. Can we avoid the redundant + // invocation? + vendorEnabled, mainModVendor, err = gocommand.VendorEnabled(context.TODO(), inv, r.env.GocmdRunner) + if err != nil { + return nil, err + } + } else { + vendorEnabled, mainModsVendor, err = gocommand.WorkspaceVendorEnabled(context.Background(), inv, r.env.GocmdRunner) + if err != nil { + return nil, err + } + } + + if vendorEnabled { + if mainModVendor != nil { + // Module vendor mode is on, so all the non-Main modules are irrelevant, + // and we need to search /vendor for everything. + r.mains = []*gocommand.ModuleJSON{mainModVendor} + r.dummyVendorMod = &gocommand.ModuleJSON{ + Path: "", + Dir: filepath.Join(mainModVendor.Dir, "vendor"), + } + r.modsByModPath = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} + r.modsByDir = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} + } else { + // Workspace vendor mode is on, so all the non-Main modules are irrelevant, + // and we need to search /vendor for everything. + r.mains = mainModsVendor + r.dummyVendorMod = &gocommand.ModuleJSON{ + Path: "", + Dir: filepath.Join(filepath.Dir(goWork), "vendor"), + } + r.modsByModPath = append(slices.Clone(mainModsVendor), r.dummyVendorMod) + r.modsByDir = append(slices.Clone(mainModsVendor), r.dummyVendorMod) + } + } else { + // Vendor mode is off, so run go list -m ... to find everything. + err := r.initAllMods() + // We expect an error when running outside of a module with + // GO111MODULE=on. Other errors are fatal. + if err != nil { + if errMsg := err.Error(); !strings.Contains(errMsg, "working directory is not part of a module") && !strings.Contains(errMsg, "go.mod file not found") { + return nil, err + } + } + } + + r.moduleCacheDir = gomodcacheForEnv(goenv) + if r.moduleCacheDir == "" { + return nil, fmt.Errorf("cannot resolve GOMODCACHE") + } + + sort.Slice(r.modsByModPath, func(i, j int) bool { + count := func(x int) int { + return strings.Count(r.modsByModPath[x].Path, "/") + } + return count(j) < count(i) // descending order + }) + sort.Slice(r.modsByDir, func(i, j int) bool { + count := func(x int) int { + return strings.Count(r.modsByDir[x].Dir, string(filepath.Separator)) + } + return count(j) < count(i) // descending order + }) + + r.roots = []gopathwalk.Root{} + if goenv["GOROOT"] != "" { // "" happens in tests + r.roots = append(r.roots, gopathwalk.Root{Path: filepath.Join(goenv["GOROOT"], "/src"), Type: gopathwalk.RootGOROOT}) + } + r.mainByDir = make(map[string]*gocommand.ModuleJSON) + for _, main := range r.mains { + r.roots = append(r.roots, gopathwalk.Root{Path: main.Dir, Type: gopathwalk.RootCurrentModule}) + r.mainByDir[main.Dir] = main + } + if vendorEnabled { + r.roots = append(r.roots, gopathwalk.Root{Path: r.dummyVendorMod.Dir, Type: gopathwalk.RootOther}) + } else { + addDep := func(mod *gocommand.ModuleJSON) { + if mod.Replace == nil { + // This is redundant with the cache, but we'll skip it cheaply enough + // when we encounter it in the module cache scan. + // + // Including it at a lower index in r.roots than the module cache dir + // helps prioritize matches from within existing dependencies. + r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootModuleCache}) + } else { + r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootOther}) + } + } + // Walk dependent modules before scanning the full mod cache, direct deps first. + for _, mod := range r.modsByModPath { + if !mod.Indirect && !mod.Main { + addDep(mod) + } + } + for _, mod := range r.modsByModPath { + if mod.Indirect && !mod.Main { + addDep(mod) + } + } + // If provided, share the moduleCacheCache. + // + // TODO(rfindley): The module cache is immutable. However, the loaded + // exports do depend on GOOS and GOARCH. Fortunately, the + // ProcessEnv.buildContext does not adjust these from build.DefaultContext + // (even though it should). So for now, this is OK to share, but we need to + // add logic for handling GOOS/GOARCH. + r.moduleCacheCache = moduleCacheCache + r.roots = append(r.roots, gopathwalk.Root{Path: r.moduleCacheDir, Type: gopathwalk.RootModuleCache}) + } + + r.scannedRoots = map[gopathwalk.Root]bool{} + if r.moduleCacheCache == nil { + r.moduleCacheCache = NewDirInfoCache() + } + r.otherCache = NewDirInfoCache() + return r, nil +} + +// gomodcacheForEnv returns the GOMODCACHE value to use based on the given env +// map, which must have GOMODCACHE and GOPATH populated. +// +// TODO(rfindley): this is defensive refactoring. +// 1. Is this even relevant anymore? Can't we just read GOMODCACHE. +// 2. Use this to separate module cache scanning from other scanning. +func gomodcacheForEnv(goenv map[string]string) string { + if gmc := goenv["GOMODCACHE"]; gmc != "" { + // golang/go#67156: ensure that the module cache is clean, since it is + // assumed as a prefix to directories scanned by gopathwalk, which are + // themselves clean. + return filepath.Clean(gmc) + } + gopaths := filepath.SplitList(goenv["GOPATH"]) + if len(gopaths) == 0 { + return "" + } + return filepath.Join(gopaths[0], "/pkg/mod") +} + +func (r *ModuleResolver) initAllMods() error { + stdout, err := r.env.invokeGo(context.TODO(), "list", "-m", "-e", "-json", "...") + if err != nil { + return err + } + for dec := json.NewDecoder(stdout); dec.More(); { + mod := &gocommand.ModuleJSON{} + if err := dec.Decode(mod); err != nil { + return err + } + if mod.Dir == "" { + r.env.logf("module %v has not been downloaded and will be ignored", mod.Path) + // Can't do anything with a module that's not downloaded. + continue + } + // golang/go#36193: the go command doesn't always clean paths. + mod.Dir = filepath.Clean(mod.Dir) + r.modsByModPath = append(r.modsByModPath, mod) + r.modsByDir = append(r.modsByDir, mod) + if mod.Main { + r.mains = append(r.mains, mod) + } + } + return nil +} + +// ClearForNewScan invalidates the last scan. +// +// It preserves the set of roots, but forgets about the set of directories. +// Though it forgets the set of module cache directories, it remembers their +// contents, since they are assumed to be immutable. +func (r *ModuleResolver) ClearForNewScan() Resolver { + <-r.scanSema // acquire r, to guard scannedRoots + r2 := &ModuleResolver{ + env: r.env, + dummyVendorMod: r.dummyVendorMod, + moduleCacheDir: r.moduleCacheDir, + roots: r.roots, + mains: r.mains, + mainByDir: r.mainByDir, + modsByModPath: r.modsByModPath, + + scanSema: make(chan struct{}, 1), + scannedRoots: make(map[gopathwalk.Root]bool), + otherCache: NewDirInfoCache(), + moduleCacheCache: r.moduleCacheCache, + } + r2.scanSema <- struct{}{} // r2 must start released + // Invalidate root scans. We don't need to invalidate module cache roots, + // because they are immutable. + // (We don't support a use case where GOMODCACHE is cleaned in the middle of + // e.g. a gopls session: the user must restart gopls to get accurate + // imports.) + // + // Scanning for new directories in GOMODCACHE should be handled elsewhere, + // via a call to ScanModuleCache. + for _, root := range r.roots { + if root.Type == gopathwalk.RootModuleCache && r.scannedRoots[root] { + r2.scannedRoots[root] = true + } + } + r.scanSema <- struct{}{} // release r + return r2 +} + +// ClearModuleInfo invalidates resolver state that depends on go.mod file +// contents (essentially, the output of go list -m -json ...). +// +// Notably, it does not forget directory contents, which are reset +// asynchronously via ClearForNewScan. +// +// If the ProcessEnv is a GOPATH environment, ClearModuleInfo is a no op. +// +// TODO(rfindley): move this to a new env.go, consolidating ProcessEnv methods. +func (e *ProcessEnv) ClearModuleInfo() { + if r, ok := e.resolver.(*ModuleResolver); ok { + resolver, err := newModuleResolver(e, e.ModCache) + if err != nil { + e.resolver = nil + e.resolverErr = err + return + } + + <-r.scanSema // acquire (guards caches) + resolver.moduleCacheCache = r.moduleCacheCache + resolver.otherCache = r.otherCache + r.scanSema <- struct{}{} // release + + e.UpdateResolver(resolver) + } +} + +// UpdateResolver sets the resolver for the ProcessEnv to use in imports +// operations. Only for use with the result of [Resolver.ClearForNewScan]. +// +// TODO(rfindley): this awkward API is a result of the (arguably) inverted +// relationship between configuration and state described in the doc comment +// for [ProcessEnv]. +func (e *ProcessEnv) UpdateResolver(r Resolver) { + e.resolver = r + e.resolverErr = nil +} + +// findPackage returns the module and directory from within the main modules +// and their dependencies that contains the package at the given import path, +// or returns nil, "" if no module is in scope. +func (r *ModuleResolver) findPackage(importPath string) (*gocommand.ModuleJSON, string) { + // This can't find packages in the stdlib, but that's harmless for all + // the existing code paths. + for _, m := range r.modsByModPath { + if !strings.HasPrefix(importPath, m.Path) { + continue + } + pathInModule := importPath[len(m.Path):] + pkgDir := filepath.Join(m.Dir, pathInModule) + if r.dirIsNestedModule(pkgDir, m) { + continue + } + + if info, ok := r.cacheLoad(pkgDir); ok { + if loaded, err := info.reachedStatus(nameLoaded); loaded { + if err != nil { + continue // No package in this dir. + } + return m, pkgDir + } + if scanned, err := info.reachedStatus(directoryScanned); scanned && err != nil { + continue // Dir is unreadable, etc. + } + // This is slightly wrong: a directory doesn't have to have an + // importable package to count as a package for package-to-module + // resolution. package main or _test files should count but + // don't. + // TODO(heschi): fix this. + if _, err := r.cachePackageName(info); err == nil { + return m, pkgDir + } + } + + // Not cached. Read the filesystem. + pkgFiles, err := os.ReadDir(pkgDir) + if err != nil { + continue + } + // A module only contains a package if it has buildable go + // files in that directory. If not, it could be provided by an + // outer module. See #29736. + for _, fi := range pkgFiles { + if ok, _ := r.env.matchFile(pkgDir, fi.Name()); ok { + return m, pkgDir + } + } + } + return nil, "" +} + +func (r *ModuleResolver) cacheLoad(dir string) (directoryPackageInfo, bool) { + if info, ok := r.moduleCacheCache.Load(dir); ok { + return info, ok + } + return r.otherCache.Load(dir) +} + +func (r *ModuleResolver) cacheStore(info directoryPackageInfo) { + if info.rootType == gopathwalk.RootModuleCache { + r.moduleCacheCache.Store(info.dir, info) + } else { + r.otherCache.Store(info.dir, info) + } +} + +// cachePackageName caches the package name for a dir already in the cache. +func (r *ModuleResolver) cachePackageName(info directoryPackageInfo) (string, error) { + if info.rootType == gopathwalk.RootModuleCache { + return r.moduleCacheCache.CachePackageName(info) + } + return r.otherCache.CachePackageName(info) +} + +func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { + if info.rootType == gopathwalk.RootModuleCache { + return r.moduleCacheCache.CacheExports(ctx, env, info) + } + return r.otherCache.CacheExports(ctx, env, info) +} + +// findModuleByDir returns the module that contains dir, or nil if no such +// module is in scope. +func (r *ModuleResolver) findModuleByDir(dir string) *gocommand.ModuleJSON { + // This is quite tricky and may not be correct. dir could be: + // - a package in the main module. + // - a replace target underneath the main module's directory. + // - a nested module in the above. + // - a replace target somewhere totally random. + // - a nested module in the above. + // - in the mod cache. + // - in /vendor/ in -mod=vendor mode. + // - nested module? Dunno. + // Rumor has it that replace targets cannot contain other replace targets. + // + // Note that it is critical here that modsByDir is sorted to have deeper dirs + // first. This ensures that findModuleByDir finds the innermost module. + // See also golang/go#56291. + for _, m := range r.modsByDir { + if !strings.HasPrefix(dir, m.Dir) { + continue + } + + if r.dirIsNestedModule(dir, m) { + continue + } + + return m + } + return nil +} + +// dirIsNestedModule reports if dir is contained in a nested module underneath +// mod, not actually in mod. +func (r *ModuleResolver) dirIsNestedModule(dir string, mod *gocommand.ModuleJSON) bool { + if !strings.HasPrefix(dir, mod.Dir) { + return false + } + if r.dirInModuleCache(dir) { + // Nested modules in the module cache are pruned, + // so it cannot be a nested module. + return false + } + if mod != nil && mod == r.dummyVendorMod { + // The /vendor pseudomodule is flattened and doesn't actually count. + return false + } + modDir, _ := r.modInfo(dir) + if modDir == "" { + return false + } + return modDir != mod.Dir +} + +func readModName(modFile string) string { + modBytes, err := os.ReadFile(modFile) + if err != nil { + return "" + } + return modulePath(modBytes) +} + +func (r *ModuleResolver) modInfo(dir string) (modDir, modName string) { + if r.dirInModuleCache(dir) { + if matches := modCacheRegexp.FindStringSubmatch(dir); len(matches) == 3 { + index := strings.Index(dir, matches[1]+"@"+matches[2]) + modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) + return modDir, readModName(filepath.Join(modDir, "go.mod")) + } + } + for { + if info, ok := r.cacheLoad(dir); ok { + return info.moduleDir, info.moduleName + } + f := filepath.Join(dir, "go.mod") + info, err := os.Stat(f) + if err == nil && !info.IsDir() { + return dir, readModName(f) + } + + d := filepath.Dir(dir) + if len(d) >= len(dir) { + return "", "" // reached top of file system, no go.mod + } + dir = d + } +} + +func (r *ModuleResolver) dirInModuleCache(dir string) bool { + if r.moduleCacheDir == "" { + return false + } + return strings.HasPrefix(dir, r.moduleCacheDir) +} + +func (r *ModuleResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { + names := map[string]string{} + for _, path := range importPaths { + // TODO(rfindley): shouldn't this use the dirInfoCache? + _, packageDir := r.findPackage(path) + if packageDir == "" { + continue + } + name, err := packageDirToName(packageDir) + if err != nil { + continue + } + names[path] = name + } + return names, nil +} + +func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error { + ctx, done := event.Start(ctx, "imports.ModuleResolver.scan") + defer done() + + processDir := func(info directoryPackageInfo) { + // Skip this directory if we were not able to get the package information successfully. + if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { + return + } + pkg, err := r.canonicalize(info) + if err != nil { + return + } + if !callback.dirFound(pkg) { + return + } + + pkg.packageName, err = r.cachePackageName(info) + if err != nil { + return + } + if !callback.packageNameLoaded(pkg) { + return + } + + _, exports, err := r.loadExports(ctx, pkg, false) + if err != nil { + return + } + callback.exportsLoaded(pkg, exports) + } + + // Start processing everything in the cache, and listen for the new stuff + // we discover in the walk below. + stop1 := r.moduleCacheCache.ScanAndListen(ctx, processDir) + defer stop1() + stop2 := r.otherCache.ScanAndListen(ctx, processDir) + defer stop2() + + // We assume cached directories are fully cached, including all their + // children, and have not changed. We can skip them. + skip := func(root gopathwalk.Root, dir string) bool { + if r.env.SkipPathInScan != nil && root.Type == gopathwalk.RootCurrentModule { + if root.Path == dir { + return false + } + + if r.env.SkipPathInScan(filepath.Clean(dir)) { + return true + } + } + + info, ok := r.cacheLoad(dir) + if !ok { + return false + } + // This directory can be skipped as long as we have already scanned it. + // Packages with errors will continue to have errors, so there is no need + // to rescan them. + packageScanned, _ := info.reachedStatus(directoryScanned) + return packageScanned + } + + add := func(root gopathwalk.Root, dir string) { + r.cacheStore(r.scanDirForPackage(root, dir)) + } + + // r.roots and the callback are not necessarily safe to use in the + // goroutine below. Process them eagerly. + roots := filterRoots(r.roots, callback.rootFound) + // We can't cancel walks, because we need them to finish to have a usable + // cache. Instead, run them in a separate goroutine and detach. + scanDone := make(chan struct{}) + go func() { + select { + case <-ctx.Done(): + return + case <-r.scanSema: // acquire + } + defer func() { r.scanSema <- struct{}{} }() // release + // We have the lock on r.scannedRoots, and no other scans can run. + for _, root := range roots { + if ctx.Err() != nil { + return + } + + if r.scannedRoots[root] { + continue + } + gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: true}) + r.scannedRoots[root] = true + } + close(scanDone) + }() + select { + case <-ctx.Done(): + case <-scanDone: + } + return nil +} + +func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) float64 { + if stdlib.HasPackage(path) { + return MaxRelevance + } + mod, _ := r.findPackage(path) + return modRelevance(mod) +} + +func modRelevance(mod *gocommand.ModuleJSON) float64 { + var relevance float64 + switch { + case mod == nil: // out of scope + return MaxRelevance - 4 + case mod.Indirect: + relevance = MaxRelevance - 3 + case !mod.Main: + relevance = MaxRelevance - 2 + default: + relevance = MaxRelevance - 1 // main module ties with stdlib + } + + _, versionString, ok := module.SplitPathVersion(mod.Path) + if ok { + index := strings.Index(versionString, "v") + if index == -1 { + return relevance + } + if versionNumber, err := strconv.ParseFloat(versionString[index+1:], 64); err == nil { + relevance += versionNumber / 1000 + } + } + + return relevance +} + +// canonicalize gets the result of canonicalizing the packages using the results +// of initializing the resolver from 'go list -m'. +func (r *ModuleResolver) canonicalize(info directoryPackageInfo) (*pkg, error) { + // Packages in GOROOT are already canonical, regardless of the std/cmd modules. + if info.rootType == gopathwalk.RootGOROOT { + return &pkg{ + importPathShort: info.nonCanonicalImportPath, + dir: info.dir, + packageName: path.Base(info.nonCanonicalImportPath), + relevance: MaxRelevance, + }, nil + } + + importPath := info.nonCanonicalImportPath + mod := r.findModuleByDir(info.dir) + // Check if the directory is underneath a module that's in scope. + if mod != nil { + // It is. If dir is the target of a replace directive, + // our guessed import path is wrong. Use the real one. + if mod.Dir == info.dir { + importPath = mod.Path + } else { + dirInMod := info.dir[len(mod.Dir)+len("/"):] + importPath = path.Join(mod.Path, filepath.ToSlash(dirInMod)) + } + } else if !strings.HasPrefix(importPath, info.moduleName) { + // The module's name doesn't match the package's import path. It + // probably needs a replace directive we don't have. + return nil, fmt.Errorf("package in %q is not valid without a replace statement", info.dir) + } + + res := &pkg{ + importPathShort: importPath, + dir: info.dir, + relevance: modRelevance(mod), + } + // We may have discovered a package that has a different version + // in scope already. Canonicalize to that one if possible. + if _, canonicalDir := r.findPackage(importPath); canonicalDir != "" { + res.dir = canonicalDir + } + return res, nil +} + +func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { + if info, ok := r.cacheLoad(pkg.dir); ok && !includeTest { + return r.cacheExports(ctx, r.env, info) + } + return loadExportsFromFiles(ctx, r.env, pkg.dir, includeTest) +} + +func (r *ModuleResolver) scanDirForPackage(root gopathwalk.Root, dir string) directoryPackageInfo { + subdir := "" + if prefix := root.Path + string(filepath.Separator); strings.HasPrefix(dir, prefix) { + subdir = dir[len(prefix):] + } + importPath := filepath.ToSlash(subdir) + if strings.HasPrefix(importPath, "vendor/") { + // Only enter vendor directories if they're explicitly requested as a root. + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("unwanted vendor directory"), + } + } + switch root.Type { + case gopathwalk.RootCurrentModule: + importPath = path.Join(r.mainByDir[root.Path].Path, filepath.ToSlash(subdir)) + case gopathwalk.RootModuleCache: + matches := modCacheRegexp.FindStringSubmatch(subdir) + if len(matches) == 0 { + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("invalid module cache path: %v", subdir), + } + } + modPath, err := module.UnescapePath(filepath.ToSlash(matches[1])) + if err != nil { + r.env.logf("decoding module cache path %q: %v", subdir, err) + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("decoding module cache path %q: %v", subdir, err), + } + } + importPath = path.Join(modPath, filepath.ToSlash(matches[3])) + } + + modDir, modName := r.modInfo(dir) + result := directoryPackageInfo{ + status: directoryScanned, + dir: dir, + rootType: root.Type, + nonCanonicalImportPath: importPath, + moduleDir: modDir, + moduleName: modName, + } + if root.Type == gopathwalk.RootGOROOT { + // stdlib packages are always in scope, despite the confusing go.mod + return result + } + return result +} + +// modCacheRegexp splits a path in a module cache into module, module version, and package. +var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) + +var ( + slashSlash = []byte("//") + moduleStr = []byte("module") +) + +// modulePath returns the module path from the gomod file text. +// If it cannot find a module path, it returns an empty string. +// It is tolerant of unrelated problems in the go.mod file. +// +// Copied from cmd/go/internal/modfile. +func modulePath(mod []byte) string { + for len(mod) > 0 { + line := mod + mod = nil + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, mod = line[:i], line[i+1:] + } + if i := bytes.Index(line, slashSlash); i >= 0 { + line = line[:i] + } + line = bytes.TrimSpace(line) + if !bytes.HasPrefix(line, moduleStr) { + continue + } + line = line[len(moduleStr):] + n := len(line) + line = bytes.TrimSpace(line) + if len(line) == n || len(line) == 0 { + continue + } + + if line[0] == '"' || line[0] == '`' { + p, err := strconv.Unquote(string(line)) + if err != nil { + return "" // malformed quoted string or multiline module path + } + return p + } + + return string(line) + } + return "" // missing module path +} diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go new file mode 100644 index 0000000..b96c9d4 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go @@ -0,0 +1,331 @@ +// 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 imports + +import ( + "context" + "fmt" + "path" + "path/filepath" + "strings" + "sync" + + "golang.org/x/mod/module" + "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" +) + +// To find packages to import, the resolver needs to know about all of +// the packages that could be imported. This includes packages that are +// already in modules that are in (1) the current module, (2) replace targets, +// and (3) packages in the module cache. Packages in (1) and (2) may change over +// time, as the client may edit the current module and locally replaced modules. +// The module cache (which includes all of the packages in (3)) can only +// ever be added to. +// +// The resolver can thus save state about packages in the module cache +// and guarantee that this will not change over time. To obtain information +// about new modules added to the module cache, the module cache should be +// rescanned. +// +// It is OK to serve information about modules that have been deleted, +// as they do still exist. +// TODO(suzmue): can we share information with the caller about +// what module needs to be downloaded to import this package? + +type directoryPackageStatus int + +const ( + _ directoryPackageStatus = iota + directoryScanned + nameLoaded + exportsLoaded +) + +// directoryPackageInfo holds (possibly incomplete) information about packages +// contained in a given directory. +type directoryPackageInfo struct { + // status indicates the extent to which this struct has been filled in. + status directoryPackageStatus + // err is non-nil when there was an error trying to reach status. + err error + + // Set when status >= directoryScanned. + + // dir is the absolute directory of this package. + dir string + rootType gopathwalk.RootType + // nonCanonicalImportPath is the package's expected import path. It may + // not actually be importable at that path. + nonCanonicalImportPath string + + // Module-related information. + moduleDir string // The directory that is the module root of this dir. + moduleName string // The module name that contains this dir. + + // Set when status >= nameLoaded. + + packageName string // the package name, as declared in the source. + + // Set when status >= exportsLoaded. + // TODO(rfindley): it's hard to see this, but exports depend implicitly on + // the default build context GOOS and GOARCH. + // + // We can make this explicit, and key exports by GOOS, GOARCH. + exports []stdlib.Symbol +} + +// reachedStatus returns true when info has a status at least target and any error associated with +// an attempt to reach target. +func (info *directoryPackageInfo) reachedStatus(target directoryPackageStatus) (bool, error) { + if info.err == nil { + return info.status >= target, nil + } + if info.status == target { + return true, info.err + } + return true, nil +} + +// DirInfoCache is a concurrency-safe map for storing information about +// directories that may contain packages. +// +// The information in this cache is built incrementally. Entries are initialized in scan. +// No new keys should be added in any other functions, as all directories containing +// packages are identified in scan. +// +// Other functions, including loadExports and findPackage, may update entries in this cache +// as they discover new things about the directory. +// +// The information in the cache is not expected to change for the cache's +// lifetime, so there is no protection against competing writes. Users should +// take care not to hold the cache across changes to the underlying files. +type DirInfoCache struct { + mu sync.Mutex + // dirs stores information about packages in directories, keyed by absolute path. + dirs map[string]*directoryPackageInfo + listeners map[*int]cacheListener +} + +func NewDirInfoCache() *DirInfoCache { + return &DirInfoCache{ + dirs: make(map[string]*directoryPackageInfo), + listeners: make(map[*int]cacheListener), + } +} + +type cacheListener func(directoryPackageInfo) + +// ScanAndListen calls listener on all the items in the cache, and on anything +// newly added. The returned stop function waits for all in-flight callbacks to +// finish and blocks new ones. +func (d *DirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener) func() { + ctx, cancel := context.WithCancel(ctx) + + // Flushing out all the callbacks is tricky without knowing how many there + // are going to be. Setting an arbitrary limit makes it much easier. + const maxInFlight = 10 + sema := make(chan struct{}, maxInFlight) + for range maxInFlight { + sema <- struct{}{} + } + + cookie := new(int) // A unique ID we can use for the listener. + + // We can't hold mu while calling the listener. + d.mu.Lock() + var keys []string + for key := range d.dirs { + keys = append(keys, key) + } + d.listeners[cookie] = func(info directoryPackageInfo) { + select { + case <-ctx.Done(): + return + case <-sema: + } + listener(info) + sema <- struct{}{} + } + d.mu.Unlock() + + stop := func() { + cancel() + d.mu.Lock() + delete(d.listeners, cookie) + d.mu.Unlock() + for range maxInFlight { + <-sema + } + } + + // Process the pre-existing keys. + for _, k := range keys { + select { + case <-ctx.Done(): + return stop + default: + } + if v, ok := d.Load(k); ok { + listener(v) + } + } + + return stop +} + +// Store stores the package info for dir. +func (d *DirInfoCache) Store(dir string, info directoryPackageInfo) { + d.mu.Lock() + // TODO(rfindley, golang/go#59216): should we overwrite an existing entry? + // That seems incorrect as the cache should be idempotent. + _, old := d.dirs[dir] + d.dirs[dir] = &info + var listeners []cacheListener + for _, l := range d.listeners { + listeners = append(listeners, l) + } + d.mu.Unlock() + + if !old { + for _, l := range listeners { + l(info) + } + } +} + +// Load returns a copy of the directoryPackageInfo for absolute directory dir. +func (d *DirInfoCache) Load(dir string) (directoryPackageInfo, bool) { + d.mu.Lock() + defer d.mu.Unlock() + info, ok := d.dirs[dir] + if !ok { + return directoryPackageInfo{}, false + } + return *info, true +} + +// Keys returns the keys currently present in d. +func (d *DirInfoCache) Keys() (keys []string) { + d.mu.Lock() + defer d.mu.Unlock() + for key := range d.dirs { + keys = append(keys, key) + } + return keys +} + +func (d *DirInfoCache) CachePackageName(info directoryPackageInfo) (string, error) { + if loaded, err := info.reachedStatus(nameLoaded); loaded { + return info.packageName, err + } + if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { + return "", fmt.Errorf("cannot read package name, scan error: %v", err) + } + info.packageName, info.err = packageDirToName(info.dir) + info.status = nameLoaded + d.Store(info.dir, info) + return info.packageName, info.err +} + +func (d *DirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { + if reached, _ := info.reachedStatus(exportsLoaded); reached { + return info.packageName, info.exports, info.err + } + if reached, err := info.reachedStatus(nameLoaded); reached && err != nil { + return "", nil, err + } + info.packageName, info.exports, info.err = loadExportsFromFiles(ctx, env, info.dir, false) + if info.err == context.Canceled || info.err == context.DeadlineExceeded { + return info.packageName, info.exports, info.err + } + // The cache structure wants things to proceed linearly. We can skip a + // step here, but only if we succeed. + if info.status == nameLoaded || info.err == nil { + info.status = exportsLoaded + } else { + info.status = nameLoaded + } + d.Store(info.dir, info) + return info.packageName, info.exports, info.err +} + +// ScanModuleCache walks the given directory, which must be a GOMODCACHE value, +// for directory package information, storing the results in cache. +func ScanModuleCache(dir string, cache *DirInfoCache, logf func(string, ...any)) { + // Note(rfindley): it's hard to see, but this function attempts to implement + // just the side effects on cache of calling PrimeCache with a ProcessEnv + // that has the given dir as its GOMODCACHE. + // + // Teasing out the control flow, we see that we can avoid any handling of + // vendor/ and can infer module info entirely from the path, simplifying the + // logic here. + + root := gopathwalk.Root{ + Path: filepath.Clean(dir), + Type: gopathwalk.RootModuleCache, + } + + directoryInfo := func(root gopathwalk.Root, dir string) directoryPackageInfo { + // This is a copy of ModuleResolver.scanDirForPackage, trimmed down to + // logic that applies to a module cache directory. + + subdir := "" + if dir != root.Path { + subdir = dir[len(root.Path)+len("/"):] + } + + matches := modCacheRegexp.FindStringSubmatch(subdir) + if len(matches) == 0 { + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("invalid module cache path: %v", subdir), + } + } + modPath, err := module.UnescapePath(filepath.ToSlash(matches[1])) + if err != nil { + if logf != nil { + logf("decoding module cache path %q: %v", subdir, err) + } + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("decoding module cache path %q: %v", subdir, err), + } + } + importPath := path.Join(modPath, filepath.ToSlash(matches[3])) + index := strings.Index(dir, matches[1]+"@"+matches[2]) + modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) + modName := readModName(filepath.Join(modDir, "go.mod")) + return directoryPackageInfo{ + status: directoryScanned, + dir: dir, + rootType: root.Type, + nonCanonicalImportPath: importPath, + moduleDir: modDir, + moduleName: modName, + } + } + + add := func(root gopathwalk.Root, dir string) { + info := directoryInfo(root, dir) + cache.Store(info.dir, info) + } + + skip := func(_ gopathwalk.Root, dir string) bool { + // Skip directories that have already been scanned. + // + // Note that gopathwalk only adds "package" directories, which must contain + // a .go file, and all such package directories in the module cache are + // immutable. So if we can load a dir, it can be skipped. + info, ok := cache.Load(dir) + if !ok { + return false + } + packageScanned, _ := info.reachedStatus(directoryScanned) + return packageScanned + } + + gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: logf, ModulesEnabled: true}) +} diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go new file mode 100644 index 0000000..67c17bc --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/sortimports.go @@ -0,0 +1,298 @@ +// Copyright 2013 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. + +// Hacked up copy of go/ast/import.go +// Modified to use a single token.File in preference to a FileSet. + +package imports + +import ( + "go/ast" + "go/token" + "log" + "slices" + "sort" + "strconv" +) + +// sortImports sorts runs of consecutive import lines in import blocks in f. +// It also removes duplicate imports when it is possible to do so without data loss. +// +// It may mutate the token.File and the ast.File. +func sortImports(localPrefix string, tokFile *token.File, f *ast.File) { + for i, d := range f.Decls { + d, ok := d.(*ast.GenDecl) + if !ok || d.Tok != token.IMPORT { + // Not an import declaration, so we're done. + // Imports are always first. + break + } + + if len(d.Specs) == 0 { + // Empty import block, remove it. + f.Decls = slices.Delete(f.Decls, i, i+1) + } + + if !d.Lparen.IsValid() { + // Not a block: sorted by default. + continue + } + + // Identify and sort runs of specs on successive lines. + i := 0 + specs := d.Specs[:0] + for j, s := range d.Specs { + if j > i && tokFile.Line(s.Pos()) > 1+tokFile.Line(d.Specs[j-1].End()) { + // j begins a new run. End this one. + specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:j])...) + i = j + } + } + specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:])...) + d.Specs = specs + + // Deduping can leave a blank line before the rparen; clean that up. + // Ignore line directives. + if len(d.Specs) > 0 { + lastSpec := d.Specs[len(d.Specs)-1] + lastLine := tokFile.PositionFor(lastSpec.Pos(), false).Line + if rParenLine := tokFile.PositionFor(d.Rparen, false).Line; rParenLine > lastLine+1 { + tokFile.MergeLine(rParenLine - 1) // has side effects! + } + } + } +} + +// mergeImports merges all the import declarations into the first one. +// Taken from golang.org/x/tools/ast/astutil. +// This does not adjust line numbers properly +func mergeImports(f *ast.File) { + if len(f.Decls) <= 1 { + return + } + + // Merge all the import declarations into the first one. + var first *ast.GenDecl + for i := 0; i < len(f.Decls); i++ { + decl := f.Decls[i] + gen, ok := decl.(*ast.GenDecl) + if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { + continue + } + if first == nil { + first = gen + continue // Don't touch the first one. + } + // We now know there is more than one package in this import + // declaration. Ensure that it ends up parenthesized. + first.Lparen = first.Pos() + // Move the imports of the other import declaration to the first one. + for _, spec := range gen.Specs { + spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() + first.Specs = append(first.Specs, spec) + } + f.Decls = slices.Delete(f.Decls, i, i+1) + i-- + } +} + +// declImports reports whether gen contains an import of path. +// Taken from golang.org/x/tools/ast/astutil. +func declImports(gen *ast.GenDecl, path string) bool { + if gen.Tok != token.IMPORT { + return false + } + for _, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + if importPath(impspec) == path { + return true + } + } + return false +} + +func importPath(s ast.Spec) string { + t, err := strconv.Unquote(s.(*ast.ImportSpec).Path.Value) + if err == nil { + return t + } + return "" +} + +func importName(s ast.Spec) string { + n := s.(*ast.ImportSpec).Name + if n == nil { + return "" + } + return n.Name +} + +func importComment(s ast.Spec) string { + c := s.(*ast.ImportSpec).Comment + if c == nil { + return "" + } + return c.Text() +} + +// collapse indicates whether prev may be removed, leaving only next. +func collapse(prev, next ast.Spec) bool { + if importPath(next) != importPath(prev) || importName(next) != importName(prev) { + return false + } + return prev.(*ast.ImportSpec).Comment == nil +} + +type posSpan struct { + Start token.Pos + End token.Pos +} + +// sortSpecs sorts the import specs within each import decl. +// It may mutate the token.File. +func sortSpecs(localPrefix string, tokFile *token.File, f *ast.File, specs []ast.Spec) []ast.Spec { + // Can't short-circuit here even if specs are already sorted, + // since they might yet need deduplication. + // A lone import, however, may be safely ignored. + if len(specs) <= 1 { + return specs + } + + // Record positions for specs. + pos := make([]posSpan, len(specs)) + for i, s := range specs { + pos[i] = posSpan{s.Pos(), s.End()} + } + + // Identify comments in this range. + // Any comment from pos[0].Start to the final line counts. + lastLine := tokFile.Line(pos[len(pos)-1].End) + cstart := len(f.Comments) + cend := len(f.Comments) + for i, g := range f.Comments { + if g.Pos() < pos[0].Start { + continue + } + if i < cstart { + cstart = i + } + if tokFile.Line(g.End()) > lastLine { + cend = i + break + } + } + comments := f.Comments[cstart:cend] + + // Assign each comment to the import spec preceding it. + importComment := map[*ast.ImportSpec][]*ast.CommentGroup{} + specIndex := 0 + for _, g := range comments { + for specIndex+1 < len(specs) && pos[specIndex+1].Start <= g.Pos() { + specIndex++ + } + s := specs[specIndex].(*ast.ImportSpec) + importComment[s] = append(importComment[s], g) + } + + // Sort the import specs by import path. + // Remove duplicates, when possible without data loss. + // Reassign the import paths to have the same position sequence. + // Reassign each comment to abut the end of its spec. + // Sort the comments by new position. + sort.Sort(byImportSpec{localPrefix, specs}) + + // Dedup. Thanks to our sorting, we can just consider + // adjacent pairs of imports. + deduped := specs[:0] + for i, s := range specs { + if i == len(specs)-1 || !collapse(s, specs[i+1]) { + deduped = append(deduped, s) + } else { + p := s.Pos() + tokFile.MergeLine(tokFile.Line(p)) // has side effects! + } + } + specs = deduped + + // Fix up comment positions + for i, s := range specs { + s := s.(*ast.ImportSpec) + if s.Name != nil { + s.Name.NamePos = pos[i].Start + } + s.Path.ValuePos = pos[i].Start + s.EndPos = pos[i].End + nextSpecPos := pos[i].End + + for _, g := range importComment[s] { + for _, c := range g.List { + c.Slash = pos[i].End + nextSpecPos = c.End() + } + } + if i < len(specs)-1 { + pos[i+1].Start = nextSpecPos + pos[i+1].End = nextSpecPos + } + } + + sort.Sort(byCommentPos(comments)) + + // Fixup comments can insert blank lines, because import specs are on different lines. + // We remove those blank lines here by merging import spec to the first import spec line. + firstSpecLine := tokFile.Line(specs[0].Pos()) + for _, s := range specs[1:] { + p := s.Pos() + line := tokFile.Line(p) + for previousLine := line - 1; previousLine >= firstSpecLine; { + // MergeLine can panic. Avoid the panic at the cost of not removing the blank line + // golang/go#50329 + if previousLine > 0 && previousLine < tokFile.LineCount() { + tokFile.MergeLine(previousLine) // has side effects! + previousLine-- + } else { + // try to gather some data to diagnose how this could happen + req := "Please report what the imports section of your go file looked like." + log.Printf("panic avoided: first:%d line:%d previous:%d max:%d. %s", + firstSpecLine, line, previousLine, tokFile.LineCount(), req) + } + } + } + return specs +} + +type byImportSpec struct { + localPrefix string + specs []ast.Spec // slice of *ast.ImportSpec +} + +func (x byImportSpec) Len() int { return len(x.specs) } +func (x byImportSpec) Swap(i, j int) { x.specs[i], x.specs[j] = x.specs[j], x.specs[i] } +func (x byImportSpec) Less(i, j int) bool { + ipath := importPath(x.specs[i]) + jpath := importPath(x.specs[j]) + + igroup := importGroup(x.localPrefix, ipath) + jgroup := importGroup(x.localPrefix, jpath) + if igroup != jgroup { + return igroup < jgroup + } + + if ipath != jpath { + return ipath < jpath + } + iname := importName(x.specs[i]) + jname := importName(x.specs[j]) + + if iname != jname { + return iname < jname + } + return importComment(x.specs[i]) < importComment(x.specs[j]) +} + +type byCommentPos []*ast.CommentGroup + +func (x byCommentPos) Len() int { return len(x) } +func (x byCommentPos) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x byCommentPos) Less(i, j int) bool { return x[i].Pos() < x[j].Pos() } diff --git a/vendor/golang.org/x/tools/internal/imports/source.go b/vendor/golang.org/x/tools/internal/imports/source.go new file mode 100644 index 0000000..cbe4f3c --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/source.go @@ -0,0 +1,63 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package imports + +import "context" + +// These types document the APIs below. +// +// TODO(rfindley): consider making these defined types rather than aliases. +type ( + ImportPath = string + PackageName = string + Symbol = string + + // References is set of References found in a Go file. The first map key is the + // left hand side of a selector expression, the second key is the right hand + // side, and the value should always be true. + References = map[PackageName]map[Symbol]bool +) + +// A Result satisfies a missing import. +// +// The Import field describes the missing import spec, and the Package field +// summarizes the package exports. +type Result struct { + Import *ImportInfo + Package *PackageInfo +} + +// An ImportInfo represents a single import statement. +type ImportInfo struct { + ImportPath string // import path, e.g. "crypto/rand". + Name string // import name, e.g. "crand", or "" if none. +} + +// A PackageInfo represents what's known about a package. +type PackageInfo struct { + Name string // package name in the package declaration, if known + Exports map[string]bool // set of names of known package level sortSymbols +} + +// A Source provides imports to satisfy unresolved references in the file being +// fixed. +type Source interface { + // LoadPackageNames queries PackageName information for the requested import + // paths, when operating from the provided srcDir. + // + // TODO(rfindley): try to refactor to remove this operation. + LoadPackageNames(ctx context.Context, srcDir string, paths []ImportPath) (map[ImportPath]PackageName, error) + + // ResolveReferences asks the Source for the best package name to satisfy + // each of the missing references, in the context of fixing the given + // filename. + // + // Returns a map from package name to a [Result] for that package name that + // provides the required symbols. Keys may be omitted in the map if no + // candidates satisfy all missing references for that package name. It is up + // to each data source to select the best result for each entry in the + // missing map. + ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) +} diff --git a/vendor/golang.org/x/tools/internal/imports/source_env.go b/vendor/golang.org/x/tools/internal/imports/source_env.go new file mode 100644 index 0000000..ec996c3 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/source_env.go @@ -0,0 +1,129 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package imports + +import ( + "context" + "path/filepath" + "strings" + "sync" + + "golang.org/x/sync/errgroup" + "golang.org/x/tools/internal/gopathwalk" +) + +// ProcessEnvSource implements the [Source] interface using the legacy +// [ProcessEnv] abstraction. +type ProcessEnvSource struct { + env *ProcessEnv + srcDir string + filename string + pkgName string +} + +// NewProcessEnvSource returns a [ProcessEnvSource] wrapping the given +// env, to be used for fixing imports in the file with name filename in package +// named pkgName. +func NewProcessEnvSource(env *ProcessEnv, filename, pkgName string) (*ProcessEnvSource, error) { + abs, err := filepath.Abs(filename) + if err != nil { + return nil, err + } + srcDir := filepath.Dir(abs) + return &ProcessEnvSource{ + env: env, + srcDir: srcDir, + filename: filename, + pkgName: pkgName, + }, nil +} + +func (s *ProcessEnvSource) LoadPackageNames(ctx context.Context, srcDir string, unknown []string) (map[string]string, error) { + r, err := s.env.GetResolver() + if err != nil { + return nil, err + } + return r.loadPackageNames(unknown, srcDir) +} + +func (s *ProcessEnvSource) ResolveReferences(ctx context.Context, filename string, refs map[string]map[string]bool) ([]*Result, error) { + var mu sync.Mutex + found := make(map[string][]pkgDistance) + callback := &scanCallback{ + rootFound: func(gopathwalk.Root) bool { + return true // We want everything. + }, + dirFound: func(pkg *pkg) bool { + return pkgIsCandidate(filename, refs, pkg) + }, + packageNameLoaded: func(pkg *pkg) bool { + if _, want := refs[pkg.packageName]; !want { + return false + } + if pkg.dir == s.srcDir && s.pkgName == pkg.packageName { + // The candidate is in the same directory and has the + // same package name. Don't try to import ourselves. + return false + } + if !CanUse(filename, pkg.dir) { + return false + } + mu.Lock() + defer mu.Unlock() + found[pkg.packageName] = append(found[pkg.packageName], pkgDistance{pkg, distance(s.srcDir, pkg.dir)}) + return false // We'll do our own loading after we sort. + }, + } + resolver, err := s.env.GetResolver() + if err != nil { + return nil, err + } + if err := resolver.scan(ctx, callback); err != nil { + return nil, err + } + + g, ctx := errgroup.WithContext(ctx) + + searcher := symbolSearcher{ + logf: s.env.logf, + srcDir: s.srcDir, + xtest: strings.HasSuffix(s.pkgName, "_test"), + loadExports: resolver.loadExports, + } + + var resultMu sync.Mutex + results := make(map[string]*Result, len(refs)) + for pkgName, symbols := range refs { + g.Go(func() error { + found, err := searcher.search(ctx, found[pkgName], pkgName, symbols) + if err != nil { + return err + } + if found == nil { + return nil // No matching package. + } + + imp := &ImportInfo{ + ImportPath: found.importPathShort, + } + pkg := &PackageInfo{ + Name: pkgName, + Exports: symbols, + } + resultMu.Lock() + results[pkgName] = &Result{Import: imp, Package: pkg} + resultMu.Unlock() + return nil + }) + } + if err := g.Wait(); err != nil { + return nil, err + } + var ans []*Result + for _, x := range results { + ans = append(ans, x) + } + return ans, nil +} diff --git a/vendor/golang.org/x/tools/internal/imports/source_modindex.go b/vendor/golang.org/x/tools/internal/imports/source_modindex.go new file mode 100644 index 0000000..05229f0 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/imports/source_modindex.go @@ -0,0 +1,103 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package imports + +import ( + "context" + "sync" + "time" + + "golang.org/x/tools/internal/modindex" +) + +// This code is here rather than in the modindex package +// to avoid import loops + +// implements Source using modindex, so only for module cache. +// +// this is perhaps over-engineered. A new Index is read at first use. +// And then Update is called after every 15 minutes, and a new Index +// is read if the index changed. It is not clear the Mutex is needed. +type IndexSource struct { + modcachedir string + mutex sync.Mutex + ix *modindex.Index + expires time.Time +} + +// create a new Source. Called from NewView in cache/session.go. +func NewIndexSource(cachedir string) *IndexSource { + return &IndexSource{modcachedir: cachedir} +} + +func (s *IndexSource) LoadPackageNames(ctx context.Context, srcDir string, paths []ImportPath) (map[ImportPath]PackageName, error) { + /// This is used by goimports to resolve the package names of imports of the + // current package, which is irrelevant for the module cache. + return nil, nil +} + +func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) { + if err := s.maybeReadIndex(); err != nil { + return nil, err + } + var cs []modindex.Candidate + for pkg, nms := range missing { + for nm := range nms { + x := s.ix.Lookup(pkg, nm, false) + cs = append(cs, x...) + } + } + found := make(map[string]*Result) + for _, c := range cs { + var x *Result + if x = found[c.ImportPath]; x == nil { + x = &Result{ + Import: &ImportInfo{ + ImportPath: c.ImportPath, + Name: "", + }, + Package: &PackageInfo{ + Name: c.PkgName, + Exports: make(map[string]bool), + }, + } + found[c.ImportPath] = x + } + x.Package.Exports[c.Name] = true + } + var ans []*Result + for _, x := range found { + ans = append(ans, x) + } + return ans, nil +} + +func (s *IndexSource) maybeReadIndex() error { + s.mutex.Lock() + defer s.mutex.Unlock() + + var readIndex bool + if time.Now().After(s.expires) { + ok, err := modindex.Update(s.modcachedir) + if err != nil { + return err + } + if ok { + readIndex = true + } + } + + if readIndex || s.ix == nil { + ix, err := modindex.ReadIndex(s.modcachedir) + if err != nil { + return err + } + s.ix = ix + // for now refresh every 15 minutes + s.expires = time.Now().Add(time.Minute * 15) + } + + return nil +} diff --git a/vendor/golang.org/x/tools/internal/modindex/directories.go b/vendor/golang.org/x/tools/internal/modindex/directories.go new file mode 100644 index 0000000..2faa6ce --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/directories.go @@ -0,0 +1,135 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modindex + +import ( + "fmt" + "log" + "os" + "path/filepath" + "regexp" + "slices" + "strings" + "sync" + "time" + + "golang.org/x/mod/semver" + "golang.org/x/tools/internal/gopathwalk" +) + +type directory struct { + path Relpath + importPath string + version string // semantic version + syms []symbol +} + +// byImportPath groups the directories by import path, +// sorting the ones with the same import path by semantic version, +// most recent first. +func byImportPath(dirs []Relpath) (map[string][]*directory, error) { + ans := make(map[string][]*directory) // key is import path + for _, d := range dirs { + ip, sv, err := DirToImportPathVersion(d) + if err != nil { + return nil, err + } + ans[ip] = append(ans[ip], &directory{ + path: d, + importPath: ip, + version: sv, + }) + } + for k, v := range ans { + semanticSort(v) + ans[k] = v + } + return ans, nil +} + +// sort the directories by semantic version, latest first +func semanticSort(v []*directory) { + slices.SortFunc(v, func(l, r *directory) int { + if n := semver.Compare(l.version, r.version); n != 0 { + return -n // latest first + } + return strings.Compare(string(l.path), string(r.path)) + }) +} + +// modCacheRegexp splits a relpathpath into module, module version, and package. +var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) + +// DirToImportPathVersion computes import path and semantic version +func DirToImportPathVersion(dir Relpath) (string, string, error) { + m := modCacheRegexp.FindStringSubmatch(string(dir)) + // m[1] is the module path + // m[2] is the version major.minor.patch(-<pre release identifier) + // m[3] is the rest of the package path + if len(m) != 4 { + return "", "", fmt.Errorf("bad dir %s", dir) + } + if !semver.IsValid(m[2]) { + return "", "", fmt.Errorf("bad semantic version %s", m[2]) + } + // ToSlash is required for Windows. + return filepath.ToSlash(m[1] + m[3]), m[2], nil +} + +// a region controls what directories to look at, for +// updating the index incrementally, and for testing that. +// (for testing one builds an index as of A, incrementally +// updates it to B, and compares the result to an index build +// as of B.) +type region struct { + onlyAfter, onlyBefore time.Time + sync.Mutex + ans []Relpath +} + +func findDirs(root string, onlyAfter, onlyBefore time.Time) []Relpath { + roots := []gopathwalk.Root{{Path: root, Type: gopathwalk.RootModuleCache}} + // TODO(PJW): adjust concurrency + opts := gopathwalk.Options{ModulesEnabled: true, Concurrency: 1 /* ,Logf: log.Printf*/} + betw := &region{ + onlyAfter: onlyAfter, + onlyBefore: onlyBefore, + } + gopathwalk.WalkSkip(roots, betw.addDir, betw.skipDir, opts) + return betw.ans +} + +func (r *region) addDir(rt gopathwalk.Root, dir string) { + // do we need to check times? + r.Lock() + defer r.Unlock() + x := filepath.ToSlash(string(toRelpath(Abspath(rt.Path), dir))) + r.ans = append(r.ans, toRelpath(Abspath(rt.Path), x)) +} + +func (r *region) skipDir(_ gopathwalk.Root, dir string) bool { + // The cache directory is already ignored in gopathwalk\ + if filepath.Base(dir) == "internal" { + return true + } + if strings.Contains(dir, "toolchain@") { + return true + } + // don't look inside @ directories that are too old + if strings.Contains(filepath.Base(dir), "@") { + st, err := os.Stat(dir) + if err != nil { + log.Printf("can't stat dir %s %v", dir, err) + return true + } + if st.ModTime().Before(r.onlyAfter) { + return true + } + if st.ModTime().After(r.onlyBefore) { + return true + } + } + return false +} diff --git a/vendor/golang.org/x/tools/internal/modindex/index.go b/vendor/golang.org/x/tools/internal/modindex/index.go new file mode 100644 index 0000000..9665356 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/index.go @@ -0,0 +1,266 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modindex + +import ( + "bufio" + "encoding/csv" + "errors" + "fmt" + "hash/crc64" + "io" + "io/fs" + "log" + "os" + "path/filepath" + "strconv" + "strings" + "testing" + "time" +) + +/* +The on-disk index is a text file. +The first 3 lines are header information containing CurrentVersion, +the value of GOMODCACHE, and the validity date of the index. +(This is when the code started building the index.) +Following the header are sections of lines, one section for each +import path. These sections are sorted by package name. +The first line of each section, marked by a leading :, contains +the package name, the import path, the name of the directory relative +to GOMODCACHE, and its semantic version. +The rest of each section consists of one line per exported symbol. +The lines are sorted by the symbol's name and contain the name, +an indication of its lexical type (C, T, V, F), and if it is the +name of a function, information about the signature. + +The fields in the section header lines are separated by commas, and +in the unlikely event this would be confusing, the csv package is used +to write (and read) them. + +In the lines containing exported names, C=const, V=var, T=type, F=func. +If it is a func, the next field is the number of returned values, +followed by pairs consisting of formal parameter names and types. +All these fields are separated by spaces. Any spaces in a type +(e.g., chan struct{}) are replaced by $s on the disk. The $s are +turned back into spaces when read. + +Here is an index header (the comments are not part of the index): +0 // version (of the index format) +/usr/local/google/home/pjw/go/pkg/mod // GOMODCACHE +2024-09-11 18:55:09 // validity date of the index + +Here is an index section: +:yaml,gopkg.in/yaml.v1,gopkg.in/yaml.v1@v1.0.0-20140924161607-9f9df34309c0,v1.0.0-20140924161607-9f9df34309c0 +Getter T +Marshal F 2 in interface{} +Setter T +Unmarshal F 1 in []byte out interface{} + +The package name is yaml, the import path is gopkg.in/yaml.v1. +Getter and Setter are types, and Marshal and Unmarshal are functions. +The latter returns one value and has two arguments, 'in' and 'out' +whose types are []byte and interface{}. +*/ + +// CurrentVersion tells readers about the format of the index. +const CurrentVersion int = 0 + +// Index is returned by ReadIndex(). +type Index struct { + Version int + Cachedir Abspath // The directory containing the module cache + Changed time.Time // The index is up to date as of Changed + Entries []Entry +} + +// An Entry contains information for an import path. +type Entry struct { + Dir Relpath // directory in modcache + ImportPath string + PkgName string + Version string + //ModTime STime // is this useful? + Names []string // exported names and information +} + +// IndexDir is where the module index is stored. +var IndexDir string + +// Set IndexDir +func init() { + var dir string + var err error + if testing.Testing() { + dir = os.TempDir() + } else { + dir, err = os.UserCacheDir() + // shouldn't happen, but TempDir is better than + // creating ./go/imports + if err != nil { + dir = os.TempDir() + } + } + dir = filepath.Join(dir, "go", "imports") + os.MkdirAll(dir, 0777) + IndexDir = dir +} + +// ReadIndex reads the latest version of the on-disk index +// for the cache directory cd. +// It returns (nil, nil) if there is no index, but returns +// a non-nil error if the index exists but could not be read. +func ReadIndex(cachedir string) (*Index, error) { + cachedir, err := filepath.Abs(cachedir) + if err != nil { + return nil, err + } + cd := Abspath(cachedir) + dir := IndexDir + base := indexNameBase(cd) + iname := filepath.Join(dir, base) + buf, err := os.ReadFile(iname) + if err != nil { + if errors.Is(err, fs.ErrNotExist) { + return nil, nil + } + return nil, fmt.Errorf("cannot read %s: %w", iname, err) + } + fname := filepath.Join(dir, string(buf)) + fd, err := os.Open(fname) + if err != nil { + return nil, err + } + defer fd.Close() + r := bufio.NewReader(fd) + ix, err := readIndexFrom(cd, r) + if err != nil { + return nil, err + } + return ix, nil +} + +func readIndexFrom(cd Abspath, bx io.Reader) (*Index, error) { + b := bufio.NewScanner(bx) + var ans Index + // header + ok := b.Scan() + if !ok { + return nil, fmt.Errorf("unexpected scan error") + } + l := b.Text() + var err error + ans.Version, err = strconv.Atoi(l) + if err != nil { + return nil, err + } + if ans.Version != CurrentVersion { + return nil, fmt.Errorf("got version %d, expected %d", ans.Version, CurrentVersion) + } + if ok := b.Scan(); !ok { + return nil, fmt.Errorf("scanner error reading cachedir") + } + ans.Cachedir = Abspath(b.Text()) + if ok := b.Scan(); !ok { + return nil, fmt.Errorf("scanner error reading index creation time") + } + // TODO(pjw): need to check that this is the expected cachedir + // so the tag should be passed in to this function + ans.Changed, err = time.ParseInLocation(time.DateTime, b.Text(), time.Local) + if err != nil { + return nil, err + } + var curEntry *Entry + for b.Scan() { + v := b.Text() + if v[0] == ':' { + if curEntry != nil { + ans.Entries = append(ans.Entries, *curEntry) + } + // as directories may contain commas and quotes, they need to be read as csv. + rdr := strings.NewReader(v[1:]) + cs := csv.NewReader(rdr) + flds, err := cs.Read() + if err != nil { + return nil, err + } + if len(flds) != 4 { + return nil, fmt.Errorf("header contains %d fields, not 4: %q", len(v), v) + } + curEntry = &Entry{PkgName: flds[0], ImportPath: flds[1], Dir: toRelpath(cd, flds[2]), Version: flds[3]} + continue + } + curEntry.Names = append(curEntry.Names, v) + } + if curEntry != nil { + ans.Entries = append(ans.Entries, *curEntry) + } + if err := b.Err(); err != nil { + return nil, fmt.Errorf("scanner failed %v", err) + } + return &ans, nil +} + +// write the index as a text file +func writeIndex(cachedir Abspath, ix *Index) error { + ipat := fmt.Sprintf("index-%d-*", CurrentVersion) + fd, err := os.CreateTemp(IndexDir, ipat) + if err != nil { + return err // can this happen? + } + defer fd.Close() + if err := writeIndexToFile(ix, fd); err != nil { + return err + } + content := fd.Name() + content = filepath.Base(content) + base := indexNameBase(cachedir) + nm := filepath.Join(IndexDir, base) + err = os.WriteFile(nm, []byte(content), 0666) + if err != nil { + return err + } + return nil +} + +func writeIndexToFile(x *Index, fd *os.File) error { + cnt := 0 + w := bufio.NewWriter(fd) + fmt.Fprintf(w, "%d\n", x.Version) + fmt.Fprintf(w, "%s\n", x.Cachedir) + // round the time down + tm := x.Changed.Add(-time.Second / 2) + fmt.Fprintf(w, "%s\n", tm.Format(time.DateTime)) + for _, e := range x.Entries { + if e.ImportPath == "" { + continue // shouldn't happen + } + // PJW: maybe always write these headers as csv? + if strings.ContainsAny(string(e.Dir), ",\"") { + log.Printf("DIR: %s", e.Dir) + cw := csv.NewWriter(w) + cw.Write([]string{":" + e.PkgName, e.ImportPath, string(e.Dir), e.Version}) + cw.Flush() + } else { + fmt.Fprintf(w, ":%s,%s,%s,%s\n", e.PkgName, e.ImportPath, e.Dir, e.Version) + } + for _, x := range e.Names { + fmt.Fprintf(w, "%s\n", x) + cnt++ + } + } + if err := w.Flush(); err != nil { + return err + } + return nil +} + +// return the base name of the file containing the name of the current index +func indexNameBase(cachedir Abspath) string { + // crc64 is a way to convert path names into 16 hex digits. + h := crc64.Checksum([]byte(cachedir), crc64.MakeTable(crc64.ECMA)) + fname := fmt.Sprintf("index-name-%d-%016x", CurrentVersion, h) + return fname +} diff --git a/vendor/golang.org/x/tools/internal/modindex/lookup.go b/vendor/golang.org/x/tools/internal/modindex/lookup.go new file mode 100644 index 0000000..0c011a9 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/lookup.go @@ -0,0 +1,178 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modindex + +import ( + "slices" + "strconv" + "strings" +) + +type Candidate struct { + PkgName string + Name string + Dir string + ImportPath string + Type LexType + Deprecated bool + // information for Funcs + Results int16 // how many results + Sig []Field // arg names and types +} + +type Field struct { + Arg, Type string +} + +type LexType int8 + +const ( + Const LexType = iota + Var + Type + Func +) + +// LookupAll only returns those Candidates whose import path +// finds all the names. +func (ix *Index) LookupAll(pkgName string, names ...string) map[string][]Candidate { + // this can be made faster when benchmarks show that it needs to be + names = uniquify(names) + byImpPath := make(map[string][]Candidate) + for _, nm := range names { + cands := ix.Lookup(pkgName, nm, false) + for _, c := range cands { + byImpPath[c.ImportPath] = append(byImpPath[c.ImportPath], c) + } + } + for k, v := range byImpPath { + if len(v) != len(names) { + delete(byImpPath, k) + } + } + return byImpPath +} + +// remove duplicates +func uniquify(in []string) []string { + if len(in) == 0 { + return in + } + in = slices.Clone(in) + slices.Sort(in) + return slices.Compact(in) +} + +// Lookup finds all the symbols in the index with the given PkgName and name. +// If prefix is true, it finds all of these with name as a prefix. +func (ix *Index) Lookup(pkgName, name string, prefix bool) []Candidate { + loc, ok := slices.BinarySearchFunc(ix.Entries, pkgName, func(e Entry, pkg string) int { + return strings.Compare(e.PkgName, pkgName) + }) + if !ok { + return nil // didn't find the package + } + var ans []Candidate + // loc is the first entry for this package name, but there may be several + for i := loc; i < len(ix.Entries); i++ { + e := ix.Entries[i] + if e.PkgName != pkgName { + break // end of sorted package names + } + nloc, ok := slices.BinarySearchFunc(e.Names, name, func(s string, name string) int { + if strings.HasPrefix(s, name) { + return 0 + } + if s < name { + return -1 + } + return 1 + }) + if !ok { + continue // didn't find the name, nor any symbols with name as a prefix + } + for j := nloc; j < len(e.Names); j++ { + nstr := e.Names[j] + // benchmarks show this makes a difference when there are a lot of Possibilities + flds := fastSplit(nstr) + if !(flds[0] == name || prefix && strings.HasPrefix(flds[0], name)) { + // past range of matching Names + break + } + if len(flds) < 2 { + continue // should never happen + } + px := Candidate{ + PkgName: pkgName, + Name: flds[0], + Dir: string(e.Dir), + ImportPath: e.ImportPath, + Type: asLexType(flds[1][0]), + Deprecated: len(flds[1]) > 1 && flds[1][1] == 'D', + } + if px.Type == Func { + n, err := strconv.Atoi(flds[2]) + if err != nil { + continue // should never happen + } + px.Results = int16(n) + if len(flds) >= 4 { + sig := strings.Split(flds[3], " ") + for i := range sig { + // $ cannot otherwise occur. removing the spaces + // almost works, but for chan struct{}, e.g. + sig[i] = strings.Replace(sig[i], "$", " ", -1) + } + px.Sig = toFields(sig) + } + } + ans = append(ans, px) + } + } + return ans +} + +func toFields(sig []string) []Field { + ans := make([]Field, len(sig)/2) + for i := range ans { + ans[i] = Field{Arg: sig[2*i], Type: sig[2*i+1]} + } + return ans +} + +// benchmarks show this is measurably better than strings.Split +// split into first 4 fields separated by single space +func fastSplit(x string) []string { + ans := make([]string, 0, 4) + nxt := 0 + start := 0 + for i := 0; i < len(x); i++ { + if x[i] != ' ' { + continue + } + ans = append(ans, x[start:i]) + nxt++ + start = i + 1 + if nxt >= 3 { + break + } + } + ans = append(ans, x[start:]) + return ans +} + +func asLexType(c byte) LexType { + switch c { + case 'C': + return Const + case 'V': + return Var + case 'T': + return Type + case 'F': + return Func + } + return -1 +} diff --git a/vendor/golang.org/x/tools/internal/modindex/modindex.go b/vendor/golang.org/x/tools/internal/modindex/modindex.go new file mode 100644 index 0000000..355a53e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/modindex.go @@ -0,0 +1,164 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package modindex contains code for building and searching an index to +// the Go module cache. The directory containing the index, returned by +// IndexDir(), contains a file index-name-<ver> that contains the name +// of the current index. We believe writing that short file is atomic. +// ReadIndex reads that file to get the file name of the index. +// WriteIndex writes an index with a unique name and then +// writes that name into a new version of index-name-<ver>. +// (<ver> stands for the CurrentVersion of the index format.) +package modindex + +import ( + "path/filepath" + "slices" + "strings" + "time" + + "golang.org/x/mod/semver" +) + +// Create always creates a new index for the go module cache that is in cachedir. +func Create(cachedir string) error { + _, err := indexModCache(cachedir, true) + return err +} + +// Update the index for the go module cache that is in cachedir, +// If there is no existing index it will build one. +// If there are changed directories since the last index, it will +// write a new one and return true. Otherwise it returns false. +func Update(cachedir string) (bool, error) { + return indexModCache(cachedir, false) +} + +// indexModCache writes an index current as of when it is called. +// If clear is true the index is constructed from all of GOMODCACHE +// otherwise the index is constructed from the last previous index +// and the updates to the cache. It returns true if it wrote an index, +// false otherwise. +func indexModCache(cachedir string, clear bool) (bool, error) { + cachedir, err := filepath.Abs(cachedir) + if err != nil { + return false, err + } + cd := Abspath(cachedir) + future := time.Now().Add(24 * time.Hour) // safely in the future + ok, err := modindexTimed(future, cd, clear) + if err != nil { + return false, err + } + return ok, nil +} + +// modindexTimed writes an index current as of onlyBefore. +// If clear is true the index is constructed from all of GOMODCACHE +// otherwise the index is constructed from the last previous index +// and all the updates to the cache before onlyBefore. +// It returns true if it wrote a new index, false if it wrote nothing. +func modindexTimed(onlyBefore time.Time, cachedir Abspath, clear bool) (bool, error) { + var curIndex *Index + if !clear { + var err error + curIndex, err = ReadIndex(string(cachedir)) + if clear && err != nil { + return false, err + } + // TODO(pjw): check that most of those directories still exist + } + cfg := &work{ + onlyBefore: onlyBefore, + oldIndex: curIndex, + cacheDir: cachedir, + } + if curIndex != nil { + cfg.onlyAfter = curIndex.Changed + } + if err := cfg.buildIndex(); err != nil { + return false, err + } + if len(cfg.newIndex.Entries) == 0 && curIndex != nil { + // no changes from existing curIndex, don't write a new index + return false, nil + } + if err := cfg.writeIndex(); err != nil { + return false, err + } + return true, nil +} + +type work struct { + onlyBefore time.Time // do not use directories later than this + onlyAfter time.Time // only interested in directories after this + // directories from before onlyAfter come from oldIndex + oldIndex *Index + newIndex *Index + cacheDir Abspath +} + +func (w *work) buildIndex() error { + // The effective date of the new index should be at least + // slightly earlier than when the directories are scanned + // so set it now. + w.newIndex = &Index{Changed: time.Now(), Cachedir: w.cacheDir} + dirs := findDirs(string(w.cacheDir), w.onlyAfter, w.onlyBefore) + if len(dirs) == 0 { + return nil + } + newdirs, err := byImportPath(dirs) + if err != nil { + return err + } + // for each import path it might occur only in newdirs, + // only in w.oldIndex, or in both. + // If it occurs in both, use the semantically later one + if w.oldIndex != nil { + for _, e := range w.oldIndex.Entries { + found, ok := newdirs[e.ImportPath] + if !ok { + w.newIndex.Entries = append(w.newIndex.Entries, e) + continue // use this one, there is no new one + } + if semver.Compare(found[0].version, e.Version) > 0 { + // use the new one + } else { + // use the old one, forget the new one + w.newIndex.Entries = append(w.newIndex.Entries, e) + delete(newdirs, e.ImportPath) + } + } + } + // get symbol information for all the new diredtories + getSymbols(w.cacheDir, newdirs) + // assemble the new index entries + for k, v := range newdirs { + d := v[0] + pkg, names := processSyms(d.syms) + if pkg == "" { + continue // PJW: does this ever happen? + } + entry := Entry{ + PkgName: pkg, + Dir: d.path, + ImportPath: k, + Version: d.version, + Names: names, + } + w.newIndex.Entries = append(w.newIndex.Entries, entry) + } + // sort the entries in the new index + slices.SortFunc(w.newIndex.Entries, func(l, r Entry) int { + if n := strings.Compare(l.PkgName, r.PkgName); n != 0 { + return n + } + return strings.Compare(l.ImportPath, r.ImportPath) + }) + return nil +} + +func (w *work) writeIndex() error { + return writeIndex(w.cacheDir, w.newIndex) +} diff --git a/vendor/golang.org/x/tools/internal/modindex/symbols.go b/vendor/golang.org/x/tools/internal/modindex/symbols.go new file mode 100644 index 0000000..31a502c --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/symbols.go @@ -0,0 +1,218 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modindex + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "go/types" + "os" + "path/filepath" + "runtime" + "slices" + "strings" + + "golang.org/x/sync/errgroup" +) + +// The name of a symbol contains information about the symbol: +// <name> T for types, TD if the type is deprecated +// <name> C for consts, CD if the const is deprecated +// <name> V for vars, VD if the var is deprecated +// and for funcs: <name> F <num of return values> (<arg-name> <arg-type>)* +// any spaces in <arg-type> are replaced by $s so that the fields +// of the name are space separated. F is replaced by FD if the func +// is deprecated. +type symbol struct { + pkg string // name of the symbols's package + name string // declared name + kind string // T, C, V, or F, followed by D if deprecated + sig string // signature information, for F +} + +// find the symbols for the best directories +func getSymbols(cd Abspath, dirs map[string][]*directory) { + var g errgroup.Group + g.SetLimit(max(2, runtime.GOMAXPROCS(0)/2)) + for _, vv := range dirs { + // throttling some day? + d := vv[0] + g.Go(func() error { + thedir := filepath.Join(string(cd), string(d.path)) + mode := parser.SkipObjectResolution | parser.ParseComments + + fi, err := os.ReadDir(thedir) + if err != nil { + return nil // log this someday? + } + for _, fx := range fi { + if !strings.HasSuffix(fx.Name(), ".go") || strings.HasSuffix(fx.Name(), "_test.go") { + continue + } + fname := filepath.Join(thedir, fx.Name()) + tr, err := parser.ParseFile(token.NewFileSet(), fname, nil, mode) + if err != nil { + continue // ignore errors, someday log them? + } + d.syms = append(d.syms, getFileExports(tr)...) + } + return nil + }) + } + g.Wait() +} + +func getFileExports(f *ast.File) []symbol { + pkg := f.Name.Name + if pkg == "main" { + return nil + } + var ans []symbol + // should we look for //go:build ignore? + for _, decl := range f.Decls { + switch decl := decl.(type) { + case *ast.FuncDecl: + if decl.Recv != nil { + // ignore methods, as we are completing package selections + continue + } + name := decl.Name.Name + dtype := decl.Type + // not looking at dtype.TypeParams. That is, treating + // generic functions just like non-generic ones. + sig := dtype.Params + kind := "F" + if isDeprecated(decl.Doc) { + kind += "D" + } + result := []string{fmt.Sprintf("%d", dtype.Results.NumFields())} + for _, x := range sig.List { + // This code creates a string representing the type. + // TODO(pjw): it may be fragile: + // 1. x.Type could be nil, perhaps in ill-formed code + // 2. ExprString might someday change incompatibly to + // include struct tags, which can be arbitrary strings + if x.Type == nil { + // Can this happen without a parse error? (Files with parse + // errors are ignored in getSymbols) + continue // maybe report this someday + } + tp := types.ExprString(x.Type) + if len(tp) == 0 { + // Can this happen? + continue // maybe report this someday + } + // This is only safe if ExprString never returns anything with a $ + // The only place a $ can occur seems to be in a struct tag, which + // can be an arbitrary string literal, and ExprString does not presently + // print struct tags. So for this to happen the type of a formal parameter + // has to be a explicit struct, e.g. foo(x struct{a int "$"}) and ExprString + // would have to show the struct tag. Even testing for this case seems + // a waste of effort, but let's remember the possibility + if strings.Contains(tp, "$") { + continue + } + tp = strings.Replace(tp, " ", "$", -1) + if len(x.Names) == 0 { + result = append(result, "_") + result = append(result, tp) + } else { + for _, y := range x.Names { + result = append(result, y.Name) + result = append(result, tp) + } + } + } + sigs := strings.Join(result, " ") + if s := newsym(pkg, name, kind, sigs); s != nil { + ans = append(ans, *s) + } + case *ast.GenDecl: + depr := isDeprecated(decl.Doc) + switch decl.Tok { + case token.CONST, token.VAR: + tp := "V" + if decl.Tok == token.CONST { + tp = "C" + } + if depr { + tp += "D" + } + for _, sp := range decl.Specs { + for _, x := range sp.(*ast.ValueSpec).Names { + if s := newsym(pkg, x.Name, tp, ""); s != nil { + ans = append(ans, *s) + } + } + } + case token.TYPE: + tp := "T" + if depr { + tp += "D" + } + for _, sp := range decl.Specs { + if s := newsym(pkg, sp.(*ast.TypeSpec).Name.Name, tp, ""); s != nil { + ans = append(ans, *s) + } + } + } + } + } + return ans +} + +func newsym(pkg, name, kind, sig string) *symbol { + if len(name) == 0 || !ast.IsExported(name) { + return nil + } + sym := symbol{pkg: pkg, name: name, kind: kind, sig: sig} + return &sym +} + +func isDeprecated(doc *ast.CommentGroup) bool { + if doc == nil { + return false + } + // go.dev/wiki/Deprecated Paragraph starting 'Deprecated:' + // This code fails for /* Deprecated: */, but it's the code from + // gopls/internal/analysis/deprecated + lines := strings.Split(doc.Text(), "\n\n") + for _, line := range lines { + if strings.HasPrefix(line, "Deprecated:") { + return true + } + } + return false +} + +// return the package name and the value for the symbols. +// if there are multiple packages, choose one arbitrarily +// the returned slice is sorted lexicographically +func processSyms(syms []symbol) (string, []string) { + if len(syms) == 0 { + return "", nil + } + slices.SortFunc(syms, func(l, r symbol) int { + return strings.Compare(l.name, r.name) + }) + pkg := syms[0].pkg + var names []string + for _, s := range syms { + var nx string + if s.pkg == pkg { + if s.sig != "" { + nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig) + } else { + nx = fmt.Sprintf("%s %s", s.name, s.kind) + } + names = append(names, nx) + } else { + continue // PJW: do we want to keep track of these? + } + } + return pkg, names +} diff --git a/vendor/golang.org/x/tools/internal/modindex/types.go b/vendor/golang.org/x/tools/internal/modindex/types.go new file mode 100644 index 0000000..ece4488 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/modindex/types.go @@ -0,0 +1,25 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modindex + +import ( + "strings" +) + +// some special types to avoid confusions + +// distinguish various types of directory names. It's easy to get confused. +type Abspath string // absolute paths +type Relpath string // paths with GOMODCACHE prefix removed + +func toRelpath(cachedir Abspath, s string) Relpath { + if strings.HasPrefix(s, string(cachedir)) { + if s == string(cachedir) { + return Relpath("") + } + return Relpath(s[len(cachedir)+1:]) + } + return Relpath(s) +} diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go new file mode 100644 index 0000000..929b470 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go @@ -0,0 +1,23 @@ +// 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 packagesinternal exposes internal-only fields from go/packages. +package packagesinternal + +import "fmt" + +var GetDepsErrors = func(p any) []*PackageError { return nil } + +type PackageError struct { + ImportStack []string // shortest path from package named on command line to this one + Pos string // position of error (if present, file:line:col) + Err string // the error itself +} + +func (err PackageError) String() string { + return fmt.Sprintf("%s: %s (import stack: %s)", err.Pos, err.Err, err.ImportStack) +} + +var TypecheckCgo int +var DepsErrors int // must be set as a LoadMode to call GetDepsErrors diff --git a/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/vendor/golang.org/x/tools/internal/pkgbits/codes.go new file mode 100644 index 0000000..f0cabde --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/codes.go @@ -0,0 +1,77 @@ +// 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. + +package pkgbits + +// A Code is an enum value that can be encoded into bitstreams. +// +// Code types are preferable for enum types, because they allow +// Decoder to detect desyncs. +type Code interface { + // Marker returns the SyncMarker for the Code's dynamic type. + Marker() SyncMarker + + // Value returns the Code's ordinal value. + Value() int +} + +// A CodeVal distinguishes among go/constant.Value encodings. +type CodeVal int + +func (c CodeVal) Marker() SyncMarker { return SyncVal } +func (c CodeVal) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + ValBool CodeVal = iota + ValString + ValInt64 + ValBigInt + ValBigRat + ValBigFloat +) + +// A CodeType distinguishes among go/types.Type encodings. +type CodeType int + +func (c CodeType) Marker() SyncMarker { return SyncType } +func (c CodeType) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + TypeBasic CodeType = iota + TypeNamed + TypePointer + TypeSlice + TypeArray + TypeChan + TypeMap + TypeSignature + TypeStruct + TypeInterface + TypeUnion + TypeTypeParam +) + +// A CodeObj distinguishes among go/types.Object encodings. +type CodeObj int + +func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } +func (c CodeObj) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + ObjAlias CodeObj = iota + ObjConst + ObjType + ObjFunc + ObjVar + ObjStub +) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go new file mode 100644 index 0000000..c0aba26 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go @@ -0,0 +1,519 @@ +// 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. + +package pkgbits + +import ( + "encoding/binary" + "errors" + "fmt" + "go/constant" + "go/token" + "io" + "math/big" + "os" + "runtime" + "strings" +) + +// A PkgDecoder provides methods for decoding a package's Unified IR +// export data. +type PkgDecoder struct { + // version is the file format version. + version Version + + // sync indicates whether the file uses sync markers. + sync bool + + // pkgPath is the package path for the package to be decoded. + // + // TODO(mdempsky): Remove; unneeded since CL 391014. + pkgPath string + + // elemData is the full data payload of the encoded package. + // Elements are densely and contiguously packed together. + // + // The last 8 bytes of elemData are the package fingerprint. + elemData string + + // elemEnds stores the byte-offset end positions of element + // bitstreams within elemData. + // + // For example, element I's bitstream data starts at elemEnds[I-1] + // (or 0, if I==0) and ends at elemEnds[I]. + // + // Note: elemEnds is indexed by absolute indices, not + // section-relative indices. + elemEnds []uint32 + + // elemEndsEnds stores the index-offset end positions of relocation + // sections within elemEnds. + // + // For example, section K's end positions start at elemEndsEnds[K-1] + // (or 0, if K==0) and end at elemEndsEnds[K]. + elemEndsEnds [numRelocs]uint32 + + scratchRelocEnt []RelocEnt +} + +// PkgPath returns the package path for the package +// +// TODO(mdempsky): Remove; unneeded since CL 391014. +func (pr *PkgDecoder) PkgPath() string { return pr.pkgPath } + +// SyncMarkers reports whether pr uses sync markers. +func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } + +// NewPkgDecoder returns a PkgDecoder initialized to read the Unified +// IR export data from input. pkgPath is the package path for the +// compilation unit that produced the export data. +func NewPkgDecoder(pkgPath, input string) PkgDecoder { + pr := PkgDecoder{ + pkgPath: pkgPath, + } + + // TODO(mdempsky): Implement direct indexing of input string to + // avoid copying the position information. + + r := strings.NewReader(input) + + var ver uint32 + assert(binary.Read(r, binary.LittleEndian, &ver) == nil) + pr.version = Version(ver) + + if pr.version >= numVersions { + panic(fmt.Errorf("cannot decode %q, export data version %d is greater than maximum supported version %d", pkgPath, pr.version, numVersions-1)) + } + + if pr.version.Has(Flags) { + var flags uint32 + assert(binary.Read(r, binary.LittleEndian, &flags) == nil) + pr.sync = flags&flagSyncMarkers != 0 + } + + assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) + + pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) + assert(binary.Read(r, binary.LittleEndian, pr.elemEnds[:]) == nil) + + pos, err := r.Seek(0, io.SeekCurrent) + assert(err == nil) + + pr.elemData = input[pos:] + + const fingerprintSize = 8 + assert(len(pr.elemData)-fingerprintSize == int(pr.elemEnds[len(pr.elemEnds)-1])) + + return pr +} + +// NumElems returns the number of elements in section k. +func (pr *PkgDecoder) NumElems(k RelocKind) int { + count := int(pr.elemEndsEnds[k]) + if k > 0 { + count -= int(pr.elemEndsEnds[k-1]) + } + return count +} + +// TotalElems returns the total number of elements across all sections. +func (pr *PkgDecoder) TotalElems() int { + return len(pr.elemEnds) +} + +// Fingerprint returns the package fingerprint. +func (pr *PkgDecoder) Fingerprint() [8]byte { + var fp [8]byte + copy(fp[:], pr.elemData[len(pr.elemData)-8:]) + return fp +} + +// AbsIdx returns the absolute index for the given (section, index) +// pair. +func (pr *PkgDecoder) AbsIdx(k RelocKind, idx Index) int { + absIdx := int(idx) + if k > 0 { + absIdx += int(pr.elemEndsEnds[k-1]) + } + if absIdx >= int(pr.elemEndsEnds[k]) { + panicf("%v:%v is out of bounds; %v", k, idx, pr.elemEndsEnds) + } + return absIdx +} + +// DataIdx returns the raw element bitstream for the given (section, +// index) pair. +func (pr *PkgDecoder) DataIdx(k RelocKind, idx Index) string { + absIdx := pr.AbsIdx(k, idx) + + var start uint32 + if absIdx > 0 { + start = pr.elemEnds[absIdx-1] + } + end := pr.elemEnds[absIdx] + + return pr.elemData[start:end] +} + +// StringIdx returns the string value for the given string index. +func (pr *PkgDecoder) StringIdx(idx Index) string { + return pr.DataIdx(RelocString, idx) +} + +// NewDecoder returns a Decoder for the given (section, index) pair, +// and decodes the given SyncMarker from the element bitstream. +func (pr *PkgDecoder) NewDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { + r := pr.NewDecoderRaw(k, idx) + r.Sync(marker) + return r +} + +// TempDecoder returns a Decoder for the given (section, index) pair, +// and decodes the given SyncMarker from the element bitstream. +// If possible the Decoder should be RetireDecoder'd when it is no longer +// needed, this will avoid heap allocations. +func (pr *PkgDecoder) TempDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { + r := pr.TempDecoderRaw(k, idx) + r.Sync(marker) + return r +} + +func (pr *PkgDecoder) RetireDecoder(d *Decoder) { + pr.scratchRelocEnt = d.Relocs + d.Relocs = nil +} + +// NewDecoderRaw returns a Decoder for the given (section, index) pair. +// +// Most callers should use NewDecoder instead. +func (pr *PkgDecoder) NewDecoderRaw(k RelocKind, idx Index) Decoder { + r := Decoder{ + common: pr, + k: k, + Idx: idx, + } + + r.Data.Reset(pr.DataIdx(k, idx)) + r.Sync(SyncRelocs) + r.Relocs = make([]RelocEnt, r.Len()) + for i := range r.Relocs { + r.Sync(SyncReloc) + r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} + } + + return r +} + +func (pr *PkgDecoder) TempDecoderRaw(k RelocKind, idx Index) Decoder { + r := Decoder{ + common: pr, + k: k, + Idx: idx, + } + + r.Data.Reset(pr.DataIdx(k, idx)) + r.Sync(SyncRelocs) + l := r.Len() + if cap(pr.scratchRelocEnt) >= l { + r.Relocs = pr.scratchRelocEnt[:l] + pr.scratchRelocEnt = nil + } else { + r.Relocs = make([]RelocEnt, l) + } + for i := range r.Relocs { + r.Sync(SyncReloc) + r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} + } + + return r +} + +// A Decoder provides methods for decoding an individual element's +// bitstream data. +type Decoder struct { + common *PkgDecoder + + Relocs []RelocEnt + Data strings.Reader + + k RelocKind + Idx Index +} + +func (r *Decoder) checkErr(err error) { + if err != nil { + panicf("unexpected decoding error: %w", err) + } +} + +func (r *Decoder) rawUvarint() uint64 { + x, err := readUvarint(&r.Data) + r.checkErr(err) + return x +} + +// readUvarint is a type-specialized copy of encoding/binary.ReadUvarint. +// This avoids the interface conversion and thus has better escape properties, +// which flows up the stack. +func readUvarint(r *strings.Reader) (uint64, error) { + var x uint64 + var s uint + for i := range binary.MaxVarintLen64 { + b, err := r.ReadByte() + if err != nil { + if i > 0 && err == io.EOF { + err = io.ErrUnexpectedEOF + } + return x, err + } + if b < 0x80 { + if i == binary.MaxVarintLen64-1 && b > 1 { + return x, overflow + } + return x | uint64(b)<<s, nil + } + x |= uint64(b&0x7f) << s + s += 7 + } + return x, overflow +} + +var overflow = errors.New("pkgbits: readUvarint overflows a 64-bit integer") + +func (r *Decoder) rawVarint() int64 { + ux := r.rawUvarint() + + // Zig-zag decode. + x := int64(ux >> 1) + if ux&1 != 0 { + x = ^x + } + return x +} + +func (r *Decoder) rawReloc(k RelocKind, idx int) Index { + e := r.Relocs[idx] + assert(e.Kind == k) + return e.Idx +} + +// Sync decodes a sync marker from the element bitstream and asserts +// that it matches the expected marker. +// +// If r.common.sync is false, then Sync is a no-op. +func (r *Decoder) Sync(mWant SyncMarker) { + if !r.common.sync { + return + } + + pos, _ := r.Data.Seek(0, io.SeekCurrent) + mHave := SyncMarker(r.rawUvarint()) + writerPCs := make([]int, r.rawUvarint()) + for i := range writerPCs { + writerPCs[i] = int(r.rawUvarint()) + } + + if mHave == mWant { + return + } + + // There's some tension here between printing: + // + // (1) full file paths that tools can recognize (e.g., so emacs + // hyperlinks the "file:line" text for easy navigation), or + // + // (2) short file paths that are easier for humans to read (e.g., by + // omitting redundant or irrelevant details, so it's easier to + // focus on the useful bits that remain). + // + // The current formatting favors the former, as it seems more + // helpful in practice. But perhaps the formatting could be improved + // to better address both concerns. For example, use relative file + // paths if they would be shorter, or rewrite file paths to contain + // "$GOROOT" (like objabi.AbsFile does) if tools can be taught how + // to reliably expand that again. + + fmt.Printf("export data desync: package %q, section %v, index %v, offset %v\n", r.common.pkgPath, r.k, r.Idx, pos) + + fmt.Printf("\nfound %v, written at:\n", mHave) + if len(writerPCs) == 0 { + fmt.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n", r.common.pkgPath) + } + for _, pc := range writerPCs { + fmt.Printf("\t%s\n", r.common.StringIdx(r.rawReloc(RelocString, pc))) + } + + fmt.Printf("\nexpected %v, reading at:\n", mWant) + var readerPCs [32]uintptr // TODO(mdempsky): Dynamically size? + n := runtime.Callers(2, readerPCs[:]) + for _, pc := range fmtFrames(readerPCs[:n]...) { + fmt.Printf("\t%s\n", pc) + } + + // We already printed a stack trace for the reader, so now we can + // simply exit. Printing a second one with panic or base.Fatalf + // would just be noise. + os.Exit(1) +} + +// Bool decodes and returns a bool value from the element bitstream. +func (r *Decoder) Bool() bool { + r.Sync(SyncBool) + x, err := r.Data.ReadByte() + r.checkErr(err) + assert(x < 2) + return x != 0 +} + +// Int64 decodes and returns an int64 value from the element bitstream. +func (r *Decoder) Int64() int64 { + r.Sync(SyncInt64) + return r.rawVarint() +} + +// Uint64 decodes and returns a uint64 value from the element bitstream. +func (r *Decoder) Uint64() uint64 { + r.Sync(SyncUint64) + return r.rawUvarint() +} + +// Len decodes and returns a non-negative int value from the element bitstream. +func (r *Decoder) Len() int { x := r.Uint64(); v := int(x); assert(uint64(v) == x); return v } + +// Int decodes and returns an int value from the element bitstream. +func (r *Decoder) Int() int { x := r.Int64(); v := int(x); assert(int64(v) == x); return v } + +// Uint decodes and returns a uint value from the element bitstream. +func (r *Decoder) Uint() uint { x := r.Uint64(); v := uint(x); assert(uint64(v) == x); return v } + +// Code decodes a Code value from the element bitstream and returns +// its ordinal value. It's the caller's responsibility to convert the +// result to an appropriate Code type. +// +// TODO(mdempsky): Ideally this method would have signature "Code[T +// Code] T" instead, but we don't allow generic methods and the +// compiler can't depend on generics yet anyway. +func (r *Decoder) Code(mark SyncMarker) int { + r.Sync(mark) + return r.Len() +} + +// Reloc decodes a relocation of expected section k from the element +// bitstream and returns an index to the referenced element. +func (r *Decoder) Reloc(k RelocKind) Index { + r.Sync(SyncUseReloc) + return r.rawReloc(k, r.Len()) +} + +// String decodes and returns a string value from the element +// bitstream. +func (r *Decoder) String() string { + r.Sync(SyncString) + return r.common.StringIdx(r.Reloc(RelocString)) +} + +// Strings decodes and returns a variable-length slice of strings from +// the element bitstream. +func (r *Decoder) Strings() []string { + res := make([]string, r.Len()) + for i := range res { + res[i] = r.String() + } + return res +} + +// Value decodes and returns a constant.Value from the element +// bitstream. +func (r *Decoder) Value() constant.Value { + r.Sync(SyncValue) + isComplex := r.Bool() + val := r.scalar() + if isComplex { + val = constant.BinaryOp(val, token.ADD, constant.MakeImag(r.scalar())) + } + return val +} + +func (r *Decoder) scalar() constant.Value { + switch tag := CodeVal(r.Code(SyncVal)); tag { + default: + panic(fmt.Errorf("unexpected scalar tag: %v", tag)) + + case ValBool: + return constant.MakeBool(r.Bool()) + case ValString: + return constant.MakeString(r.String()) + case ValInt64: + return constant.MakeInt64(r.Int64()) + case ValBigInt: + return constant.Make(r.bigInt()) + case ValBigRat: + num := r.bigInt() + denom := r.bigInt() + return constant.Make(new(big.Rat).SetFrac(num, denom)) + case ValBigFloat: + return constant.Make(r.bigFloat()) + } +} + +func (r *Decoder) bigInt() *big.Int { + v := new(big.Int).SetBytes([]byte(r.String())) + if r.Bool() { + v.Neg(v) + } + return v +} + +func (r *Decoder) bigFloat() *big.Float { + v := new(big.Float).SetPrec(512) + assert(v.UnmarshalText([]byte(r.String())) == nil) + return v +} + +// @@@ Helpers + +// TODO(mdempsky): These should probably be removed. I think they're a +// smell that the export data format is not yet quite right. + +// PeekPkgPath returns the package path for the specified package +// index. +func (pr *PkgDecoder) PeekPkgPath(idx Index) string { + var path string + { + r := pr.TempDecoder(RelocPkg, idx, SyncPkgDef) + path = r.String() + pr.RetireDecoder(&r) + } + if path == "" { + path = pr.pkgPath + } + return path +} + +// PeekObj returns the package path, object name, and CodeObj for the +// specified object index. +func (pr *PkgDecoder) PeekObj(idx Index) (string, string, CodeObj) { + var ridx Index + var name string + var rcode int + { + r := pr.TempDecoder(RelocName, idx, SyncObject1) + r.Sync(SyncSym) + r.Sync(SyncPkg) + ridx = r.Reloc(RelocPkg) + name = r.String() + rcode = r.Code(SyncCodeObj) + pr.RetireDecoder(&r) + } + + path := pr.PeekPkgPath(ridx) + assert(name != "") + + tag := CodeObj(rcode) + + return path, name, tag +} + +// Version reports the version of the bitstream. +func (w *Decoder) Version() Version { return w.common.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/vendor/golang.org/x/tools/internal/pkgbits/doc.go new file mode 100644 index 0000000..c8a2796 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/doc.go @@ -0,0 +1,32 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package pkgbits implements low-level coding abstractions for +// Unified IR's export data format. +// +// At a low-level, a package is a collection of bitstream elements. +// Each element has a "kind" and a dense, non-negative index. +// Elements can be randomly accessed given their kind and index. +// +// Individual elements are sequences of variable-length values (e.g., +// integers, booleans, strings, go/constant values, cross-references +// to other elements). Package pkgbits provides APIs for encoding and +// decoding these low-level values, but the details of mapping +// higher-level Go constructs into elements is left to higher-level +// abstractions. +// +// Elements may cross-reference each other with "relocations." For +// example, an element representing a pointer type has a relocation +// referring to the element type. +// +// Go constructs may be composed as a constellation of multiple +// elements. For example, a declared function may have one element to +// describe the object (e.g., its name, type, position), and a +// separate element to describe its function body. This allows readers +// some flexibility in efficiently seeking or re-reading data (e.g., +// inlining requires re-reading the function body for each inlined +// call, without needing to re-read the object-level details). +// +// This is a copy of internal/pkgbits in the Go implementation. +package pkgbits diff --git a/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/vendor/golang.org/x/tools/internal/pkgbits/encoder.go new file mode 100644 index 0000000..c17a123 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/encoder.go @@ -0,0 +1,392 @@ +// 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. + +package pkgbits + +import ( + "bytes" + "crypto/md5" + "encoding/binary" + "go/constant" + "io" + "math/big" + "runtime" + "strings" +) + +// A PkgEncoder provides methods for encoding a package's Unified IR +// export data. +type PkgEncoder struct { + // version of the bitstream. + version Version + + // elems holds the bitstream for previously encoded elements. + elems [numRelocs][]string + + // stringsIdx maps previously encoded strings to their index within + // the RelocString section, to allow deduplication. That is, + // elems[RelocString][stringsIdx[s]] == s (if present). + stringsIdx map[string]Index + + // syncFrames is the number of frames to write at each sync + // marker. A negative value means sync markers are omitted. + syncFrames int +} + +// SyncMarkers reports whether pw uses sync markers. +func (pw *PkgEncoder) SyncMarkers() bool { return pw.syncFrames >= 0 } + +// NewPkgEncoder returns an initialized PkgEncoder. +// +// syncFrames is the number of caller frames that should be serialized +// at Sync points. Serializing additional frames results in larger +// export data files, but can help diagnosing desync errors in +// higher-level Unified IR reader/writer code. If syncFrames is +// negative, then sync markers are omitted entirely. +func NewPkgEncoder(version Version, syncFrames int) PkgEncoder { + return PkgEncoder{ + version: version, + stringsIdx: make(map[string]Index), + syncFrames: syncFrames, + } +} + +// DumpTo writes the package's encoded data to out0 and returns the +// package fingerprint. +func (pw *PkgEncoder) DumpTo(out0 io.Writer) (fingerprint [8]byte) { + h := md5.New() + out := io.MultiWriter(out0, h) + + writeUint32 := func(x uint32) { + assert(binary.Write(out, binary.LittleEndian, x) == nil) + } + + writeUint32(uint32(pw.version)) + + if pw.version.Has(Flags) { + var flags uint32 + if pw.SyncMarkers() { + flags |= flagSyncMarkers + } + writeUint32(flags) + } + + // Write elemEndsEnds. + var sum uint32 + for _, elems := range &pw.elems { + sum += uint32(len(elems)) + writeUint32(sum) + } + + // Write elemEnds. + sum = 0 + for _, elems := range &pw.elems { + for _, elem := range elems { + sum += uint32(len(elem)) + writeUint32(sum) + } + } + + // Write elemData. + for _, elems := range &pw.elems { + for _, elem := range elems { + _, err := io.WriteString(out, elem) + assert(err == nil) + } + } + + // Write fingerprint. + copy(fingerprint[:], h.Sum(nil)) + _, err := out0.Write(fingerprint[:]) + assert(err == nil) + + return +} + +// StringIdx adds a string value to the strings section, if not +// already present, and returns its index. +func (pw *PkgEncoder) StringIdx(s string) Index { + if idx, ok := pw.stringsIdx[s]; ok { + assert(pw.elems[RelocString][idx] == s) + return idx + } + + idx := Index(len(pw.elems[RelocString])) + pw.elems[RelocString] = append(pw.elems[RelocString], s) + pw.stringsIdx[s] = idx + return idx +} + +// NewEncoder returns an Encoder for a new element within the given +// section, and encodes the given SyncMarker as the start of the +// element bitstream. +func (pw *PkgEncoder) NewEncoder(k RelocKind, marker SyncMarker) Encoder { + e := pw.NewEncoderRaw(k) + e.Sync(marker) + return e +} + +// NewEncoderRaw returns an Encoder for a new element within the given +// section. +// +// Most callers should use NewEncoder instead. +func (pw *PkgEncoder) NewEncoderRaw(k RelocKind) Encoder { + idx := Index(len(pw.elems[k])) + pw.elems[k] = append(pw.elems[k], "") // placeholder + + return Encoder{ + p: pw, + k: k, + Idx: idx, + } +} + +// An Encoder provides methods for encoding an individual element's +// bitstream data. +type Encoder struct { + p *PkgEncoder + + Relocs []RelocEnt + RelocMap map[RelocEnt]uint32 + Data bytes.Buffer // accumulated element bitstream data + + encodingRelocHeader bool + + k RelocKind + Idx Index // index within relocation section +} + +// Flush finalizes the element's bitstream and returns its Index. +func (w *Encoder) Flush() Index { + var sb strings.Builder + + // Backup the data so we write the relocations at the front. + var tmp bytes.Buffer + io.Copy(&tmp, &w.Data) + + // TODO(mdempsky): Consider writing these out separately so they're + // easier to strip, along with function bodies, so that we can prune + // down to just the data that's relevant to go/types. + if w.encodingRelocHeader { + panic("encodingRelocHeader already true; recursive flush?") + } + w.encodingRelocHeader = true + w.Sync(SyncRelocs) + w.Len(len(w.Relocs)) + for _, rEnt := range w.Relocs { + w.Sync(SyncReloc) + w.Len(int(rEnt.Kind)) + w.Len(int(rEnt.Idx)) + } + + io.Copy(&sb, &w.Data) + io.Copy(&sb, &tmp) + w.p.elems[w.k][w.Idx] = sb.String() + + return w.Idx +} + +func (w *Encoder) checkErr(err error) { + if err != nil { + panicf("unexpected encoding error: %v", err) + } +} + +func (w *Encoder) rawUvarint(x uint64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], x) + _, err := w.Data.Write(buf[:n]) + w.checkErr(err) +} + +func (w *Encoder) rawVarint(x int64) { + // Zig-zag encode. + ux := uint64(x) << 1 + if x < 0 { + ux = ^ux + } + + w.rawUvarint(ux) +} + +func (w *Encoder) rawReloc(r RelocKind, idx Index) int { + e := RelocEnt{r, idx} + if w.RelocMap != nil { + if i, ok := w.RelocMap[e]; ok { + return int(i) + } + } else { + w.RelocMap = make(map[RelocEnt]uint32) + } + + i := len(w.Relocs) + w.RelocMap[e] = uint32(i) + w.Relocs = append(w.Relocs, e) + return i +} + +func (w *Encoder) Sync(m SyncMarker) { + if !w.p.SyncMarkers() { + return + } + + // Writing out stack frame string references requires working + // relocations, but writing out the relocations themselves involves + // sync markers. To prevent infinite recursion, we simply trim the + // stack frame for sync markers within the relocation header. + var frames []string + if !w.encodingRelocHeader && w.p.syncFrames > 0 { + pcs := make([]uintptr, w.p.syncFrames) + n := runtime.Callers(2, pcs) + frames = fmtFrames(pcs[:n]...) + } + + // TODO(mdempsky): Save space by writing out stack frames as a + // linked list so we can share common stack frames. + w.rawUvarint(uint64(m)) + w.rawUvarint(uint64(len(frames))) + for _, frame := range frames { + w.rawUvarint(uint64(w.rawReloc(RelocString, w.p.StringIdx(frame)))) + } +} + +// Bool encodes and writes a bool value into the element bitstream, +// and then returns the bool value. +// +// For simple, 2-alternative encodings, the idiomatic way to call Bool +// is something like: +// +// if w.Bool(x != 0) { +// // alternative #1 +// } else { +// // alternative #2 +// } +// +// For multi-alternative encodings, use Code instead. +func (w *Encoder) Bool(b bool) bool { + w.Sync(SyncBool) + var x byte + if b { + x = 1 + } + err := w.Data.WriteByte(x) + w.checkErr(err) + return b +} + +// Int64 encodes and writes an int64 value into the element bitstream. +func (w *Encoder) Int64(x int64) { + w.Sync(SyncInt64) + w.rawVarint(x) +} + +// Uint64 encodes and writes a uint64 value into the element bitstream. +func (w *Encoder) Uint64(x uint64) { + w.Sync(SyncUint64) + w.rawUvarint(x) +} + +// Len encodes and writes a non-negative int value into the element bitstream. +func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) } + +// Int encodes and writes an int value into the element bitstream. +func (w *Encoder) Int(x int) { w.Int64(int64(x)) } + +// Uint encodes and writes a uint value into the element bitstream. +func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) } + +// Reloc encodes and writes a relocation for the given (section, +// index) pair into the element bitstream. +// +// Note: Only the index is formally written into the element +// bitstream, so bitstream decoders must know from context which +// section an encoded relocation refers to. +func (w *Encoder) Reloc(r RelocKind, idx Index) { + w.Sync(SyncUseReloc) + w.Len(w.rawReloc(r, idx)) +} + +// Code encodes and writes a Code value into the element bitstream. +func (w *Encoder) Code(c Code) { + w.Sync(c.Marker()) + w.Len(c.Value()) +} + +// String encodes and writes a string value into the element +// bitstream. +// +// Internally, strings are deduplicated by adding them to the strings +// section (if not already present), and then writing a relocation +// into the element bitstream. +func (w *Encoder) String(s string) { + w.StringRef(w.p.StringIdx(s)) +} + +// StringRef writes a reference to the given index, which must be a +// previously encoded string value. +func (w *Encoder) StringRef(idx Index) { + w.Sync(SyncString) + w.Reloc(RelocString, idx) +} + +// Strings encodes and writes a variable-length slice of strings into +// the element bitstream. +func (w *Encoder) Strings(ss []string) { + w.Len(len(ss)) + for _, s := range ss { + w.String(s) + } +} + +// Value encodes and writes a constant.Value into the element +// bitstream. +func (w *Encoder) Value(val constant.Value) { + w.Sync(SyncValue) + if w.Bool(val.Kind() == constant.Complex) { + w.scalar(constant.Real(val)) + w.scalar(constant.Imag(val)) + } else { + w.scalar(val) + } +} + +func (w *Encoder) scalar(val constant.Value) { + switch v := constant.Val(val).(type) { + default: + panicf("unhandled %v (%v)", val, val.Kind()) + case bool: + w.Code(ValBool) + w.Bool(v) + case string: + w.Code(ValString) + w.String(v) + case int64: + w.Code(ValInt64) + w.Int64(v) + case *big.Int: + w.Code(ValBigInt) + w.bigInt(v) + case *big.Rat: + w.Code(ValBigRat) + w.bigInt(v.Num()) + w.bigInt(v.Denom()) + case *big.Float: + w.Code(ValBigFloat) + w.bigFloat(v) + } +} + +func (w *Encoder) bigInt(v *big.Int) { + b := v.Bytes() + w.String(string(b)) // TODO: More efficient encoding. + w.Bool(v.Sign() < 0) +} + +func (w *Encoder) bigFloat(v *big.Float) { + b := v.Append(nil, 'p', -1) + w.String(string(b)) // TODO: More efficient encoding. +} + +// Version reports the version of the bitstream. +func (w *Encoder) Version() Version { return w.p.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/vendor/golang.org/x/tools/internal/pkgbits/flags.go new file mode 100644 index 0000000..6542227 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/flags.go @@ -0,0 +1,9 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +const ( + flagSyncMarkers = 1 << iota // file format contains sync markers +) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/vendor/golang.org/x/tools/internal/pkgbits/reloc.go new file mode 100644 index 0000000..fcdfb97 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/reloc.go @@ -0,0 +1,42 @@ +// 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. + +package pkgbits + +// A RelocKind indicates a particular section within a unified IR export. +type RelocKind int32 + +// An Index represents a bitstream element index within a particular +// section. +type Index int32 + +// A relocEnt (relocation entry) is an entry in an element's local +// reference table. +// +// TODO(mdempsky): Rename this too. +type RelocEnt struct { + Kind RelocKind + Idx Index +} + +// Reserved indices within the meta relocation section. +const ( + PublicRootIdx Index = 0 + PrivateRootIdx Index = 1 +) + +const ( + RelocString RelocKind = iota + RelocMeta + RelocPosBase + RelocPkg + RelocName + RelocType + RelocObj + RelocObjExt + RelocObjDict + RelocBody + + numRelocs = iota +) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/support.go b/vendor/golang.org/x/tools/internal/pkgbits/support.go new file mode 100644 index 0000000..50534a2 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/support.go @@ -0,0 +1,17 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +import "fmt" + +func assert(b bool) { + if !b { + panic("assertion failed") + } +} + +func panicf(format string, args ...any) { + panic(fmt.Errorf(format, args...)) +} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/vendor/golang.org/x/tools/internal/pkgbits/sync.go new file mode 100644 index 0000000..1520b73 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/sync.go @@ -0,0 +1,136 @@ +// 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. + +package pkgbits + +import ( + "fmt" + "runtime" + "strings" +) + +// fmtFrames formats a backtrace for reporting reader/writer desyncs. +func fmtFrames(pcs ...uintptr) []string { + res := make([]string, 0, len(pcs)) + walkFrames(pcs, func(file string, line int, name string, offset uintptr) { + // Trim package from function name. It's just redundant noise. + name = strings.TrimPrefix(name, "cmd/compile/internal/noder.") + + res = append(res, fmt.Sprintf("%s:%v: %s +0x%v", file, line, name, offset)) + }) + return res +} + +type frameVisitor func(file string, line int, name string, offset uintptr) + +// walkFrames calls visit for each call frame represented by pcs. +// +// pcs should be a slice of PCs, as returned by runtime.Callers. +func walkFrames(pcs []uintptr, visit frameVisitor) { + if len(pcs) == 0 { + return + } + + frames := runtime.CallersFrames(pcs) + for { + frame, more := frames.Next() + visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) + if !more { + return + } + } +} + +// SyncMarker is an enum type that represents markers that may be +// written to export data to ensure the reader and writer stay +// synchronized. +type SyncMarker int + +//go:generate stringer -type=SyncMarker -trimprefix=Sync + +const ( + _ SyncMarker = iota + + // Public markers (known to go/types importers). + + // Low-level coding markers. + SyncEOF + SyncBool + SyncInt64 + SyncUint64 + SyncString + SyncValue + SyncVal + SyncRelocs + SyncReloc + SyncUseReloc + + // Higher-level object and type markers. + SyncPublic + SyncPos + SyncPosBase + SyncObject + SyncObject1 + SyncPkg + SyncPkgDef + SyncMethod + SyncType + SyncTypeIdx + SyncTypeParamNames + SyncSignature + SyncParams + SyncParam + SyncCodeObj + SyncSym + SyncLocalIdent + SyncSelector + + // Private markers (only known to cmd/compile). + SyncPrivate + + SyncFuncExt + SyncVarExt + SyncTypeExt + SyncPragma + + SyncExprList + SyncExprs + SyncExpr + SyncExprType + SyncAssign + SyncOp + SyncFuncLit + SyncCompLit + + SyncDecl + SyncFuncBody + SyncOpenScope + SyncCloseScope + SyncCloseAnotherScope + SyncDeclNames + SyncDeclName + + SyncStmts + SyncBlockStmt + SyncIfStmt + SyncForStmt + SyncSwitchStmt + SyncRangeStmt + SyncCaseClause + SyncCommClause + SyncSelectStmt + SyncDecls + SyncLabeledStmt + SyncUseObjLocal + SyncAddLocal + SyncLinkname + SyncStmt1 + SyncStmtsEnd + SyncLabel + SyncOptLabel + + SyncMultiExpr + SyncRType + SyncConvRTTI +) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go new file mode 100644 index 0000000..582ad56 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go @@ -0,0 +1,92 @@ +// Code generated by "stringer -type=SyncMarker -trimprefix=Sync"; DO NOT EDIT. + +package pkgbits + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[SyncEOF-1] + _ = x[SyncBool-2] + _ = x[SyncInt64-3] + _ = x[SyncUint64-4] + _ = x[SyncString-5] + _ = x[SyncValue-6] + _ = x[SyncVal-7] + _ = x[SyncRelocs-8] + _ = x[SyncReloc-9] + _ = x[SyncUseReloc-10] + _ = x[SyncPublic-11] + _ = x[SyncPos-12] + _ = x[SyncPosBase-13] + _ = x[SyncObject-14] + _ = x[SyncObject1-15] + _ = x[SyncPkg-16] + _ = x[SyncPkgDef-17] + _ = x[SyncMethod-18] + _ = x[SyncType-19] + _ = x[SyncTypeIdx-20] + _ = x[SyncTypeParamNames-21] + _ = x[SyncSignature-22] + _ = x[SyncParams-23] + _ = x[SyncParam-24] + _ = x[SyncCodeObj-25] + _ = x[SyncSym-26] + _ = x[SyncLocalIdent-27] + _ = x[SyncSelector-28] + _ = x[SyncPrivate-29] + _ = x[SyncFuncExt-30] + _ = x[SyncVarExt-31] + _ = x[SyncTypeExt-32] + _ = x[SyncPragma-33] + _ = x[SyncExprList-34] + _ = x[SyncExprs-35] + _ = x[SyncExpr-36] + _ = x[SyncExprType-37] + _ = x[SyncAssign-38] + _ = x[SyncOp-39] + _ = x[SyncFuncLit-40] + _ = x[SyncCompLit-41] + _ = x[SyncDecl-42] + _ = x[SyncFuncBody-43] + _ = x[SyncOpenScope-44] + _ = x[SyncCloseScope-45] + _ = x[SyncCloseAnotherScope-46] + _ = x[SyncDeclNames-47] + _ = x[SyncDeclName-48] + _ = x[SyncStmts-49] + _ = x[SyncBlockStmt-50] + _ = x[SyncIfStmt-51] + _ = x[SyncForStmt-52] + _ = x[SyncSwitchStmt-53] + _ = x[SyncRangeStmt-54] + _ = x[SyncCaseClause-55] + _ = x[SyncCommClause-56] + _ = x[SyncSelectStmt-57] + _ = x[SyncDecls-58] + _ = x[SyncLabeledStmt-59] + _ = x[SyncUseObjLocal-60] + _ = x[SyncAddLocal-61] + _ = x[SyncLinkname-62] + _ = x[SyncStmt1-63] + _ = x[SyncStmtsEnd-64] + _ = x[SyncLabel-65] + _ = x[SyncOptLabel-66] + _ = x[SyncMultiExpr-67] + _ = x[SyncRType-68] + _ = x[SyncConvRTTI-69] +} + +const _SyncMarker_name = "EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabelMultiExprRTypeConvRTTI" + +var _SyncMarker_index = [...]uint16{0, 3, 7, 12, 18, 24, 29, 32, 38, 43, 51, 57, 60, 67, 73, 80, 83, 89, 95, 99, 106, 120, 129, 135, 140, 147, 150, 160, 168, 175, 182, 188, 195, 201, 209, 214, 218, 226, 232, 234, 241, 248, 252, 260, 269, 279, 296, 305, 313, 318, 327, 333, 340, 350, 359, 369, 379, 389, 394, 405, 416, 424, 432, 437, 445, 450, 458, 467, 472, 480} + +func (i SyncMarker) String() string { + i -= 1 + if i < 0 || i >= SyncMarker(len(_SyncMarker_index)-1) { + return "SyncMarker(" + strconv.FormatInt(int64(i+1), 10) + ")" + } + return _SyncMarker_name[_SyncMarker_index[i]:_SyncMarker_index[i+1]] +} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/version.go b/vendor/golang.org/x/tools/internal/pkgbits/version.go new file mode 100644 index 0000000..53af9df --- /dev/null +++ b/vendor/golang.org/x/tools/internal/pkgbits/version.go @@ -0,0 +1,85 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +// Version indicates a version of a unified IR bitstream. +// Each Version indicates the addition, removal, or change of +// new data in the bitstream. +// +// These are serialized to disk and the interpretation remains fixed. +type Version uint32 + +const ( + // V0: initial prototype. + // + // All data that is not assigned a Field is in version V0 + // and has not been deprecated. + V0 Version = iota + + // V1: adds the Flags uint32 word + V1 + + // V2: removes unused legacy fields and supports type parameters for aliases. + // - remove the legacy "has init" bool from the public root + // - remove obj's "derived func instance" bool + // - add a TypeParamNames field to ObjAlias + // - remove derived info "needed" bool + V2 + + numVersions = iota +) + +// Field denotes a unit of data in the serialized unified IR bitstream. +// It is conceptually a like field in a structure. +// +// We only really need Fields when the data may or may not be present +// in a stream based on the Version of the bitstream. +// +// Unlike much of pkgbits, Fields are not serialized and +// can change values as needed. +type Field int + +const ( + // Flags in a uint32 in the header of a bitstream + // that is used to indicate whether optional features are enabled. + Flags Field = iota + + // Deprecated: HasInit was a bool indicating whether a package + // has any init functions. + HasInit + + // Deprecated: DerivedFuncInstance was a bool indicating + // whether an object was a function instance. + DerivedFuncInstance + + // ObjAlias has a list of TypeParamNames. + AliasTypeParamNames + + // Deprecated: DerivedInfoNeeded was a bool indicating + // whether a type was a derived type. + DerivedInfoNeeded + + numFields = iota +) + +// introduced is the version a field was added. +var introduced = [numFields]Version{ + Flags: V1, + AliasTypeParamNames: V2, +} + +// removed is the version a field was removed in or 0 for fields +// that have not yet been deprecated. +// (So removed[f]-1 is the last version it is included in.) +var removed = [numFields]Version{ + HasInit: V2, + DerivedFuncInstance: V2, + DerivedInfoNeeded: V2, +} + +// Has reports whether field f is present in a bitstream at version v. +func (v Version) Has(f Field) bool { + return introduced[f] <= v && (v < removed[f] || removed[f] == V0) +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go new file mode 100644 index 0000000..77cf8d2 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/deps.go @@ -0,0 +1,359 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate.go. DO NOT EDIT. + +package stdlib + +type pkginfo struct { + name string + deps string // list of indices of dependencies, as varint-encoded deltas +} + +var deps = [...]pkginfo{ + {"archive/tar", "\x03j\x03E5\x01\v\x01#\x01\x01\x02\x05\n\x02\x01\x02\x02\v"}, + {"archive/zip", "\x02\x04`\a\x16\x0205\x01+\x05\x01\x11\x03\x02\r\x04"}, + {"bufio", "\x03j}F\x13"}, + {"bytes", "m+R\x03\fH\x02\x02"}, + {"cmp", ""}, + {"compress/bzip2", "\x02\x02\xe6\x01C"}, + {"compress/flate", "\x02k\x03z\r\x025\x01\x03"}, + {"compress/gzip", "\x02\x04`\a\x03\x15eU"}, + {"compress/lzw", "\x02k\x03z"}, + {"compress/zlib", "\x02\x04`\a\x03\x13\x01f"}, + {"container/heap", "\xae\x02"}, + {"container/list", ""}, + {"container/ring", ""}, + {"context", "m\\i\x01\f"}, + {"crypto", "\x83\x01gE"}, + {"crypto/aes", "\x10\n\a\x8e\x02"}, + {"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1c,Q"}, + {"crypto/des", "\x10\x13\x1d-,\x96\x01\x03"}, + {"crypto/dsa", "@\x04)}\x0e"}, + {"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1c}"}, + {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1c}\x0e\x04L\x01"}, + {"crypto/ed25519", "\x0e\x1c\x16\n\a\x1c}E"}, + {"crypto/elliptic", "0=}\x0e:"}, + {"crypto/fips140", " \x05\x90\x01"}, + {"crypto/hkdf", "-\x12\x01-\x16"}, + {"crypto/hmac", "\x1a\x14\x11\x01\x112"}, + {"crypto/internal/boring", "\x0e\x02\rf"}, + {"crypto/internal/boring/bbig", "\x1a\xde\x01M"}, + {"crypto/internal/boring/bcache", "\xb3\x02\x12"}, + {"crypto/internal/boring/sig", ""}, + {"crypto/internal/cryptotest", "\x03\r\n)\x0e\x19\x06\x13\x12#\a\t\x11\x11\x11\x1b\x01\f\r\x05\n"}, + {"crypto/internal/entropy", "E"}, + {"crypto/internal/fips140", ">/}9\r\x15"}, + {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05*\x8c\x016"}, + {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06*\x8a\x01"}, + {"crypto/internal/fips140/alias", "\xc5\x02"}, + {"crypto/internal/fips140/bigmod", "%\x17\x01\x06*\x8c\x01"}, + {"crypto/internal/fips140/check", " \x0e\x06\b\x02\xac\x01["}, + {"crypto/internal/fips140/check/checktest", "%\xfe\x01\""}, + {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01(}\x0f9"}, + {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f1}\x0f9"}, + {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x067}H"}, + {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v7\xc2\x01\x03"}, + {"crypto/internal/fips140/edwards25519", "%\a\f\x041\x8c\x019"}, + {"crypto/internal/fips140/edwards25519/field", "%\x13\x041\x8c\x01"}, + {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x069"}, + {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x017"}, + {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x041"}, + {"crypto/internal/fips140/nistec", "%\f\a\x041\x8c\x01*\x0f\x13"}, + {"crypto/internal/fips140/nistec/fiat", "%\x135\x8c\x01"}, + {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x069"}, + {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x025}H"}, + {"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, + {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x010\x8c\x01L"}, + {"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, + {"crypto/internal/fips140/ssh", " \x05"}, + {"crypto/internal/fips140/subtle", "#"}, + {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x027"}, + {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b1"}, + {"crypto/internal/fips140deps", ""}, + {"crypto/internal/fips140deps/byteorder", "\x99\x01"}, + {"crypto/internal/fips140deps/cpu", "\xad\x01\a"}, + {"crypto/internal/fips140deps/godebug", "\xb5\x01"}, + {"crypto/internal/fips140hash", "5\x1a4\xc2\x01"}, + {"crypto/internal/fips140only", "'\r\x01\x01M25"}, + {"crypto/internal/fips140test", ""}, + {"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d#,`N"}, + {"crypto/internal/impl", "\xb0\x02"}, + {"crypto/internal/randutil", "\xea\x01\x12"}, + {"crypto/internal/sysrand", "mi!\x1f\r\x0f\x01\x01\v\x06"}, + {"crypto/internal/sysrand/internal/seccomp", "m"}, + {"crypto/md5", "\x0e2-\x16\x16`"}, + {"crypto/mlkem", "/"}, + {"crypto/pbkdf2", "2\r\x01-\x16"}, + {"crypto/rand", "\x1a\x06\a\x19\x04\x01(}\x0eM"}, + {"crypto/rc4", "#\x1d-\xc2\x01"}, + {"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1c\x03\x1325\r\x01"}, + {"crypto/sha1", "\x0e\f&-\x16\x16\x14L"}, + {"crypto/sha256", "\x0e\f\x1aO"}, + {"crypto/sha3", "\x0e'N\xc2\x01"}, + {"crypto/sha512", "\x0e\f\x1cM"}, + {"crypto/subtle", "8\x96\x01U"}, + {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x13\x16\x14\b5\x16\x16\r\n\x01\x01\x01\x02\x01\f\x06\x02\x01"}, + {"crypto/tls/internal/fips140tls", " \x93\x02"}, + {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x032\x01\x02\t\x01\x01\x01\a\x10\x05\x01\x06\x02\x05\f\x01\x02\r\x02\x01\x01\x02\x03\x01"}, + {"crypto/x509/pkix", "c\x06\a\x88\x01G"}, + {"database/sql", "\x03\nJ\x16\x03z\f\x06\"\x05\n\x02\x03\x01\f\x02\x02\x02"}, + {"database/sql/driver", "\r`\x03\xae\x01\x11\x10"}, + {"debug/buildinfo", "\x03W\x02\x01\x01\b\a\x03`\x18\x02\x01+\x0f "}, + {"debug/dwarf", "\x03c\a\x03z1\x13\x01\x01"}, + {"debug/elf", "\x03\x06P\r\a\x03`\x19\x01,\x19\x01\x15"}, + {"debug/gosym", "\x03c\n\xbe\x01\x01\x01\x02"}, + {"debug/macho", "\x03\x06P\r\n`\x1a,\x19\x01"}, + {"debug/pe", "\x03\x06P\r\a\x03`\x1a,\x19\x01\x15"}, + {"debug/plan9obj", "f\a\x03`\x1a,"}, + {"embed", "m+:\x18\x01T"}, + {"embed/internal/embedtest", ""}, + {"encoding", ""}, + {"encoding/ascii85", "\xea\x01E"}, + {"encoding/asn1", "\x03j\x03\x87\x01\x01&\x0f\x02\x01\x0f\x03\x01"}, + {"encoding/base32", "\xea\x01C\x02"}, + {"encoding/base64", "\x99\x01QC\x02"}, + {"encoding/binary", "m}\r'\x0f\x05"}, + {"encoding/csv", "\x02\x01j\x03zF\x11\x02"}, + {"encoding/gob", "\x02_\x05\a\x03`\x1a\f\x01\x02\x1d\b\x14\x01\x0e\x02"}, + {"encoding/hex", "m\x03zC\x03"}, + {"encoding/json", "\x03\x01]\x04\b\x03z\r'\x0f\x02\x01\x02\x0f\x01\x01\x02"}, + {"encoding/pem", "\x03b\b}C\x03"}, + {"encoding/xml", "\x02\x01^\f\x03z4\x05\f\x01\x02\x0f\x02"}, + {"errors", "\xc9\x01|"}, + {"expvar", "jK9\t\n\x15\r\n\x02\x03\x01\x10"}, + {"flag", "a\f\x03z,\b\x05\n\x02\x01\x0f"}, + {"fmt", "mE8\r\x1f\b\x0f\x02\x03\x11"}, + {"go/ast", "\x03\x01l\x0f\x01j\x03)\b\x0f\x02\x01"}, + {"go/ast/internal/tests", ""}, + {"go/build", "\x02\x01j\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x12\x01+\x01\x04\x01\a\n\x02\x01\x11\x02\x02"}, + {"go/build/constraint", "m\xc2\x01\x01\x11\x02"}, + {"go/constant", "p\x10w\x01\x016\x01\x02\x11"}, + {"go/doc", "\x04l\x01\x06\t=-1\x12\x02\x01\x11\x02"}, + {"go/doc/comment", "\x03m\xbd\x01\x01\x01\x01\x11\x02"}, + {"go/format", "\x03m\x01\f\x01\x02jF"}, + {"go/importer", "s\a\x01\x01\x04\x01i9"}, + {"go/internal/gccgoimporter", "\x02\x01W\x13\x03\x05\v\x01g\x02,\x01\x05\x13\x01\v\b"}, + {"go/internal/gcimporter", "\x02n\x10\x01/\x05\x0e',\x17\x03\x02"}, + {"go/internal/srcimporter", "p\x01\x02\n\x03\x01i,\x01\x05\x14\x02\x13"}, + {"go/parser", "\x03j\x03\x01\x03\v\x01j\x01+\x06\x14"}, + {"go/printer", "p\x01\x03\x03\tj\r\x1f\x17\x02\x01\x02\n\x05\x02"}, + {"go/scanner", "\x03m\x10j2\x12\x01\x12\x02"}, + {"go/token", "\x04l\xbd\x01\x02\x03\x01\x0e\x02"}, + {"go/types", "\x03\x01\x06c\x03\x01\x04\b\x03\x02\x15\x1e\x06+\x04\x03\n%\a\n\x01\x01\x01\x02\x01\x0e\x02\x02"}, + {"go/version", "\xba\x01v"}, + {"hash", "\xea\x01"}, + {"hash/adler32", "m\x16\x16"}, + {"hash/crc32", "m\x16\x16\x14\x85\x01\x01\x12"}, + {"hash/crc64", "m\x16\x16\x99\x01"}, + {"hash/fnv", "m\x16\x16`"}, + {"hash/maphash", "\x94\x01\x05\x1b\x03@N"}, + {"html", "\xb0\x02\x02\x11"}, + {"html/template", "\x03g\x06\x19,5\x01\v \x05\x01\x02\x03\x0e\x01\x02\v\x01\x03\x02"}, + {"image", "\x02k\x1f^\x0f6\x03\x01"}, + {"image/color", ""}, + {"image/color/palette", "\x8c\x01"}, + {"image/draw", "\x8b\x01\x01\x04"}, + {"image/gif", "\x02\x01\x05e\x03\x1b\x01\x01\x01\vQ"}, + {"image/internal/imageutil", "\x8b\x01"}, + {"image/jpeg", "\x02k\x1e\x01\x04Z"}, + {"image/png", "\x02\a]\n\x13\x02\x06\x01^E"}, + {"index/suffixarray", "\x03c\a}\r*\f\x01"}, + {"internal/abi", "\xb4\x01\x91\x01"}, + {"internal/asan", "\xc5\x02"}, + {"internal/bisect", "\xa3\x02\x0f\x01"}, + {"internal/buildcfg", "pG_\x06\x02\x05\f\x01"}, + {"internal/bytealg", "\xad\x01\x98\x01"}, + {"internal/byteorder", ""}, + {"internal/cfg", ""}, + {"internal/chacha8rand", "\x99\x01\x1b\x91\x01"}, + {"internal/copyright", ""}, + {"internal/coverage", ""}, + {"internal/coverage/calloc", ""}, + {"internal/coverage/cfile", "j\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x01\x1f,\x06\a\f\x01\x03\f\x06"}, + {"internal/coverage/cformat", "\x04l-\x04I\f7\x01\x02\f"}, + {"internal/coverage/cmerge", "p-Z"}, + {"internal/coverage/decodecounter", "f\n-\v\x02@,\x19\x16"}, + {"internal/coverage/decodemeta", "\x02d\n\x17\x16\v\x02@,"}, + {"internal/coverage/encodecounter", "\x02d\n-\f\x01\x02>\f \x17"}, + {"internal/coverage/encodemeta", "\x02\x01c\n\x13\x04\x16\r\x02>,/"}, + {"internal/coverage/pods", "\x04l-y\x06\x05\f\x02\x01"}, + {"internal/coverage/rtcov", "\xc5\x02"}, + {"internal/coverage/slicereader", "f\nz["}, + {"internal/coverage/slicewriter", "pz"}, + {"internal/coverage/stringtab", "p8\x04>"}, + {"internal/coverage/test", ""}, + {"internal/coverage/uleb128", ""}, + {"internal/cpu", "\xc5\x02"}, + {"internal/dag", "\x04l\xbd\x01\x03"}, + {"internal/diff", "\x03m\xbe\x01\x02"}, + {"internal/exportdata", "\x02\x01j\x03\x03]\x1a,\x01\x05\x13\x01\x02"}, + {"internal/filepathlite", "m+:\x19B"}, + {"internal/fmtsort", "\x04\x9a\x02\x0f"}, + {"internal/fuzz", "\x03\nA\x18\x04\x03\x03\x01\f\x0355\r\x02\x1d\x01\x05\x02\x05\f\x01\x02\x01\x01\v\x04\x02"}, + {"internal/goarch", ""}, + {"internal/godebug", "\x96\x01 |\x01\x12"}, + {"internal/godebugs", ""}, + {"internal/goexperiment", ""}, + {"internal/goos", ""}, + {"internal/goroot", "\x96\x02\x01\x05\x14\x02"}, + {"internal/gover", "\x04"}, + {"internal/goversion", ""}, + {"internal/itoa", ""}, + {"internal/lazyregexp", "\x96\x02\v\x0f\x02"}, + {"internal/lazytemplate", "\xea\x01,\x1a\x02\v"}, + {"internal/msan", "\xc5\x02"}, + {"internal/nettrace", ""}, + {"internal/obscuretestdata", "e\x85\x01,"}, + {"internal/oserror", "m"}, + {"internal/pkgbits", "\x03K\x18\a\x03\x05\vj\x0e\x1e\r\f\x01"}, + {"internal/platform", ""}, + {"internal/poll", "mO\x1a\x149\x0f\x01\x01\v\x06"}, + {"internal/profile", "\x03\x04f\x03z7\r\x01\x01\x0f"}, + {"internal/profilerecord", ""}, + {"internal/race", "\x94\x01\xb1\x01"}, + {"internal/reflectlite", "\x94\x01 3<\""}, + {"internal/runtime/atomic", "\xc5\x02"}, + {"internal/runtime/exithook", "\xca\x01{"}, + {"internal/runtime/maps", "\x94\x01\x01\x1f\v\t\x05\x01w"}, + {"internal/runtime/math", "\xb4\x01"}, + {"internal/runtime/sys", "\xb4\x01\x04"}, + {"internal/runtime/syscall", "\xc5\x02"}, + {"internal/saferio", "\xea\x01["}, + {"internal/singleflight", "\xb2\x02"}, + {"internal/stringslite", "\x98\x01\xad\x01"}, + {"internal/sync", "\x94\x01 \x14k\x12"}, + {"internal/synctest", "\xc5\x02"}, + {"internal/syscall/execenv", "\xb4\x02"}, + {"internal/syscall/unix", "\xa3\x02\x10\x01\x11"}, + {"internal/sysinfo", "\x02\x01\xaa\x01=,\x1a\x02"}, + {"internal/syslist", ""}, + {"internal/testenv", "\x03\n`\x02\x01*\x1a\x10'+\x01\x05\a\f\x01\x02\x02\x01\n"}, + {"internal/testlog", "\xb2\x02\x01\x12"}, + {"internal/testpty", "m\x03\xa6\x01"}, + {"internal/trace", "\x02\x01\x01\x06\\\a\x03n\x03\x03\x06\x03\n6\x01\x02\x0f\x06"}, + {"internal/trace/internal/testgen", "\x03c\nl\x03\x02\x03\x011\v\x0f"}, + {"internal/trace/internal/tracev1", "\x03\x01b\a\x03t\x06\r6\x01"}, + {"internal/trace/raw", "\x02d\nq\x03\x06E\x01\x11"}, + {"internal/trace/testtrace", "\x02\x01j\x03l\x03\x06\x057\f\x02\x01"}, + {"internal/trace/tracev2", ""}, + {"internal/trace/traceviewer", "\x02]\v\x06\x1a<\x16\a\a\x04\t\n\x15\x01\x05\a\f\x01\x02\r"}, + {"internal/trace/traceviewer/format", ""}, + {"internal/trace/version", "pq\t"}, + {"internal/txtar", "\x03m\xa6\x01\x1a"}, + {"internal/types/errors", "\xaf\x02"}, + {"internal/unsafeheader", "\xc5\x02"}, + {"internal/xcoff", "Y\r\a\x03`\x1a,\x19\x01"}, + {"internal/zstd", "f\a\x03z\x0f"}, + {"io", "m\xc5\x01"}, + {"io/fs", "m+*(1\x12\x12\x04"}, + {"io/ioutil", "\xea\x01\x01+\x17\x03"}, + {"iter", "\xc8\x01[\""}, + {"log", "pz\x05'\r\x0f\x01\f"}, + {"log/internal", ""}, + {"log/slog", "\x03\nT\t\x03\x03z\x04\x01\x02\x02\x04'\x05\n\x02\x01\x02\x01\f\x02\x02\x02"}, + {"log/slog/internal", ""}, + {"log/slog/internal/benchmarks", "\r`\x03z\x06\x03<\x10"}, + {"log/slog/internal/buffer", "\xb2\x02"}, + {"log/slog/internal/slogtest", "\xf0\x01"}, + {"log/syslog", "m\x03~\x12\x16\x1a\x02\r"}, + {"maps", "\xed\x01X"}, + {"math", "\xad\x01LL"}, + {"math/big", "\x03j\x03)\x14=\r\x02\x024\x01\x02\x13"}, + {"math/bits", "\xc5\x02"}, + {"math/cmplx", "\xf7\x01\x02"}, + {"math/rand", "\xb5\x01B;\x01\x12"}, + {"math/rand/v2", "m,\x02\\\x02L"}, + {"mime", "\x02\x01b\b\x03z\f \x17\x03\x02\x0f\x02"}, + {"mime/multipart", "\x02\x01G#\x03E5\f\x01\x06\x02\x15\x02\x06\x11\x02\x01\x15"}, + {"mime/quotedprintable", "\x02\x01mz"}, + {"net", "\x04\t`+\x1d\a\x04\x05\f\x01\x04\x14\x01%\x06\r\n\x05\x01\x01\v\x06\a"}, + {"net/http", "\x02\x01\x04\x04\x02=\b\x13\x01\a\x03E5\x01\x03\b\x01\x02\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\n\x01\x01\x01\x02\x01\x01\v\x02\x02\x02\b\x01\x01\x01"}, + {"net/http/cgi", "\x02P\x1b\x03z\x04\b\n\x01\x13\x01\x01\x01\x04\x01\x05\x02\n\x02\x01\x0f\x0e"}, + {"net/http/cookiejar", "\x04i\x03\x90\x01\x01\b\f\x18\x03\x02\r\x04"}, + {"net/http/fcgi", "\x02\x01\nY\a\x03z\x16\x01\x01\x14\x1a\x02\r"}, + {"net/http/httptest", "\x02\x01\nE\x02\x1b\x01z\x04\x12\x01\n\t\x02\x19\x01\x02\r\x0e"}, + {"net/http/httptrace", "\rEn@\x14\n!"}, + {"net/http/httputil", "\x02\x01\n`\x03z\x04\x0f\x03\x01\x05\x02\x01\v\x01\x1b\x02\r\x0e"}, + {"net/http/internal", "\x02\x01j\x03z"}, + {"net/http/internal/ascii", "\xb0\x02\x11"}, + {"net/http/internal/httpcommon", "\r`\x03\x96\x01\x0e\x01\x19\x01\x01\x02\x1b\x02"}, + {"net/http/internal/testcert", "\xb0\x02"}, + {"net/http/pprof", "\x02\x01\nc\x19,\x11$\x04\x13\x14\x01\r\x06\x03\x01\x02\x01\x0f"}, + {"net/internal/cgotest", ""}, + {"net/internal/socktest", "p\xc2\x01\x02"}, + {"net/mail", "\x02k\x03z\x04\x0f\x03\x14\x1c\x02\r\x04"}, + {"net/netip", "\x04i+\x01#;\x026\x15"}, + {"net/rpc", "\x02f\x05\x03\x10\n`\x04\x12\x01\x1d\x0f\x03\x02"}, + {"net/rpc/jsonrpc", "j\x03\x03z\x16\x11!"}, + {"net/smtp", "\x19.\v\x13\b\x03z\x16\x14\x1c"}, + {"net/textproto", "\x02\x01j\x03z\r\t/\x01\x02\x13"}, + {"net/url", "m\x03\x86\x01%\x12\x02\x01\x15"}, + {"os", "m+\x01\x18\x03\b\t\r\x03\x01\x04\x10\x018\n\x05\x01\x01\v\x06"}, + {"os/exec", "\x03\n`H \x01\x14\x01+\x06\a\f\x01\x04\v"}, + {"os/exec/internal/fdtest", "\xb4\x02"}, + {"os/signal", "\r\x89\x02\x17\x05\x02"}, + {"os/user", "\x02\x01j\x03z,\r\f\x01\x02"}, + {"path", "m+\xab\x01"}, + {"path/filepath", "m+\x19:+\r\n\x03\x04\x0f"}, + {"plugin", "m"}, + {"reflect", "m'\x04\x1c\b\f\x04\x02\x19\x10,\f\x03\x0f\x02\x02"}, + {"reflect/internal/example1", ""}, + {"reflect/internal/example2", ""}, + {"regexp", "\x03\xe7\x018\v\x02\x01\x02\x0f\x02"}, + {"regexp/syntax", "\xad\x02\x01\x01\x01\x11\x02"}, + {"runtime", "\x94\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x03\x0fd"}, + {"runtime/coverage", "\x9f\x01K"}, + {"runtime/debug", "pUQ\r\n\x02\x01\x0f\x06"}, + {"runtime/internal/startlinetest", ""}, + {"runtime/internal/wasitest", ""}, + {"runtime/metrics", "\xb6\x01A,\""}, + {"runtime/pprof", "\x02\x01\x01\x03\x06Y\a\x03$3#\r\x1f\r\n\x01\x01\x01\x02\x02\b\x03\x06"}, + {"runtime/race", "\xab\x02"}, + {"runtime/race/internal/amd64v1", ""}, + {"runtime/trace", "\rcz9\x0f\x01\x12"}, + {"slices", "\x04\xe9\x01\fL"}, + {"sort", "\xc9\x0104"}, + {"strconv", "m+:%\x02J"}, + {"strings", "m'\x04:\x18\x03\f9\x0f\x02\x02"}, + {"structs", ""}, + {"sync", "\xc8\x01\vP\x10\x12"}, + {"sync/atomic", "\xc5\x02"}, + {"syscall", "m(\x03\x01\x1b\b\x03\x03\x06\aT\n\x05\x01\x12"}, + {"testing", "\x03\n`\x02\x01X\x0f\x13\r\x04\x1b\x06\x02\x05\x02\a\x01\x02\x01\x02\x01\f\x02\x02\x02"}, + {"testing/fstest", "m\x03z\x01\v%\x12\x03\b\a"}, + {"testing/internal/testdeps", "\x02\v\xa6\x01'\x10,\x03\x05\x03\b\a\x02\r"}, + {"testing/iotest", "\x03j\x03z\x04"}, + {"testing/quick", "o\x01\x87\x01\x04#\x12\x0f"}, + {"testing/slogtest", "\r`\x03\x80\x01.\x05\x12\n"}, + {"text/scanner", "\x03mz,+\x02"}, + {"text/tabwriter", "pzY"}, + {"text/template", "m\x03B8\x01\v\x1f\x01\x05\x01\x02\x05\r\x02\f\x03\x02"}, + {"text/template/parse", "\x03m\xb3\x01\f\x01\x11\x02"}, + {"time", "m+\x1d\x1d'*\x0f\x02\x11"}, + {"time/tzdata", "m\xc7\x01\x11"}, + {"unicode", ""}, + {"unicode/utf16", ""}, + {"unicode/utf8", ""}, + {"unique", "\x94\x01>\x01P\x0f\x13\x12"}, + {"unsafe", ""}, + {"vendor/golang.org/x/crypto/chacha20", "\x10V\a\x8c\x01*'"}, + {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10V\a\xd9\x01\x04\x01\a"}, + {"vendor/golang.org/x/crypto/cryptobyte", "c\n\x03\x88\x01&!\n"}, + {"vendor/golang.org/x/crypto/cryptobyte/asn1", ""}, + {"vendor/golang.org/x/crypto/internal/alias", "\xc5\x02"}, + {"vendor/golang.org/x/crypto/internal/poly1305", "Q\x15\x93\x01"}, + {"vendor/golang.org/x/net/dns/dnsmessage", "m"}, + {"vendor/golang.org/x/net/http/httpguts", "\x80\x02\x14\x1c\x13\r"}, + {"vendor/golang.org/x/net/http/httpproxy", "m\x03\x90\x01\x15\x01\x1a\x13\r"}, + {"vendor/golang.org/x/net/http2/hpack", "\x03j\x03zH"}, + {"vendor/golang.org/x/net/idna", "p\x87\x019\x13\x10\x02\x01"}, + {"vendor/golang.org/x/net/nettest", "\x03c\a\x03z\x11\x05\x16\x01\f\f\x01\x02\x02\x01\n"}, + {"vendor/golang.org/x/sys/cpu", "\x96\x02\r\f\x01\x15"}, + {"vendor/golang.org/x/text/secure/bidirule", "m\xd6\x01\x11\x01"}, + {"vendor/golang.org/x/text/transform", "\x03j}Y"}, + {"vendor/golang.org/x/text/unicode/bidi", "\x03\be~@\x15"}, + {"vendor/golang.org/x/text/unicode/norm", "f\nzH\x11\x11"}, + {"weak", "\x94\x01\x8f\x01\""}, +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/import.go b/vendor/golang.org/x/tools/internal/stdlib/import.go new file mode 100644 index 0000000..f690987 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/import.go @@ -0,0 +1,89 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package stdlib + +// This file provides the API for the import graph of the standard library. +// +// Be aware that the compiler-generated code for every package +// implicitly depends on package "runtime" and a handful of others +// (see runtimePkgs in GOROOT/src/cmd/internal/objabi/pkgspecial.go). + +import ( + "encoding/binary" + "iter" + "slices" + "strings" +) + +// Imports returns the sequence of packages directly imported by the +// named standard packages, in name order. +// The imports of an unknown package are the empty set. +// +// The graph is built into the application and may differ from the +// graph in the Go source tree being analyzed by the application. +func Imports(pkgs ...string) iter.Seq[string] { + return func(yield func(string) bool) { + for _, pkg := range pkgs { + if i, ok := find(pkg); ok { + var depIndex uint64 + for data := []byte(deps[i].deps); len(data) > 0; { + delta, n := binary.Uvarint(data) + depIndex += delta + if !yield(deps[depIndex].name) { + return + } + data = data[n:] + } + } + } + } +} + +// Dependencies returns the set of all dependencies of the named +// standard packages, including the initial package, +// in a deterministic topological order. +// The dependencies of an unknown package are the empty set. +// +// The graph is built into the application and may differ from the +// graph in the Go source tree being analyzed by the application. +func Dependencies(pkgs ...string) iter.Seq[string] { + return func(yield func(string) bool) { + for _, pkg := range pkgs { + if i, ok := find(pkg); ok { + var seen [1 + len(deps)/8]byte // bit set of seen packages + var visit func(i int) bool + visit = func(i int) bool { + bit := byte(1) << (i % 8) + if seen[i/8]&bit == 0 { + seen[i/8] |= bit + var depIndex uint64 + for data := []byte(deps[i].deps); len(data) > 0; { + delta, n := binary.Uvarint(data) + depIndex += delta + if !visit(int(depIndex)) { + return false + } + data = data[n:] + } + if !yield(deps[i].name) { + return false + } + } + return true + } + if !visit(i) { + return + } + } + } + } +} + +// find returns the index of pkg in the deps table. +func find(pkg string) (int, bool) { + return slices.BinarySearchFunc(deps[:], pkg, func(p pkginfo, n string) int { + return strings.Compare(p.name, n) + }) +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go new file mode 100644 index 0000000..64f0326 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go @@ -0,0 +1,17676 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate.go. DO NOT EDIT. + +package stdlib + +var PackageSymbols = map[string][]Symbol{ + "archive/tar": { + {"(*Header).FileInfo", Method, 1, ""}, + {"(*Reader).Next", Method, 0, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Writer).AddFS", Method, 22, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"(*Writer).WriteHeader", Method, 0, ""}, + {"(Format).String", Method, 10, ""}, + {"ErrFieldTooLong", Var, 0, ""}, + {"ErrHeader", Var, 0, ""}, + {"ErrInsecurePath", Var, 20, ""}, + {"ErrWriteAfterClose", Var, 0, ""}, + {"ErrWriteTooLong", Var, 0, ""}, + {"FileInfoHeader", Func, 1, "func(fi fs.FileInfo, link string) (*Header, error)"}, + {"FileInfoNames", Type, 23, ""}, + {"Format", Type, 10, ""}, + {"FormatGNU", Const, 10, ""}, + {"FormatPAX", Const, 10, ""}, + {"FormatUSTAR", Const, 10, ""}, + {"FormatUnknown", Const, 10, ""}, + {"Header", Type, 0, ""}, + {"Header.AccessTime", Field, 0, ""}, + {"Header.ChangeTime", Field, 0, ""}, + {"Header.Devmajor", Field, 0, ""}, + {"Header.Devminor", Field, 0, ""}, + {"Header.Format", Field, 10, ""}, + {"Header.Gid", Field, 0, ""}, + {"Header.Gname", Field, 0, ""}, + {"Header.Linkname", Field, 0, ""}, + {"Header.ModTime", Field, 0, ""}, + {"Header.Mode", Field, 0, ""}, + {"Header.Name", Field, 0, ""}, + {"Header.PAXRecords", Field, 10, ""}, + {"Header.Size", Field, 0, ""}, + {"Header.Typeflag", Field, 0, ""}, + {"Header.Uid", Field, 0, ""}, + {"Header.Uname", Field, 0, ""}, + {"Header.Xattrs", Field, 3, ""}, + {"NewReader", Func, 0, "func(r io.Reader) *Reader"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"Reader", Type, 0, ""}, + {"TypeBlock", Const, 0, ""}, + {"TypeChar", Const, 0, ""}, + {"TypeCont", Const, 0, ""}, + {"TypeDir", Const, 0, ""}, + {"TypeFifo", Const, 0, ""}, + {"TypeGNULongLink", Const, 1, ""}, + {"TypeGNULongName", Const, 1, ""}, + {"TypeGNUSparse", Const, 3, ""}, + {"TypeLink", Const, 0, ""}, + {"TypeReg", Const, 0, ""}, + {"TypeRegA", Const, 0, ""}, + {"TypeSymlink", Const, 0, ""}, + {"TypeXGlobalHeader", Const, 0, ""}, + {"TypeXHeader", Const, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "archive/zip": { + {"(*File).DataOffset", Method, 2, ""}, + {"(*File).FileInfo", Method, 0, ""}, + {"(*File).ModTime", Method, 0, ""}, + {"(*File).Mode", Method, 0, ""}, + {"(*File).Open", Method, 0, ""}, + {"(*File).OpenRaw", Method, 17, ""}, + {"(*File).SetModTime", Method, 0, ""}, + {"(*File).SetMode", Method, 0, ""}, + {"(*FileHeader).FileInfo", Method, 0, ""}, + {"(*FileHeader).ModTime", Method, 0, ""}, + {"(*FileHeader).Mode", Method, 0, ""}, + {"(*FileHeader).SetModTime", Method, 0, ""}, + {"(*FileHeader).SetMode", Method, 0, ""}, + {"(*ReadCloser).Close", Method, 0, ""}, + {"(*ReadCloser).Open", Method, 16, ""}, + {"(*ReadCloser).RegisterDecompressor", Method, 6, ""}, + {"(*Reader).Open", Method, 16, ""}, + {"(*Reader).RegisterDecompressor", Method, 6, ""}, + {"(*Writer).AddFS", Method, 22, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Copy", Method, 17, ""}, + {"(*Writer).Create", Method, 0, ""}, + {"(*Writer).CreateHeader", Method, 0, ""}, + {"(*Writer).CreateRaw", Method, 17, ""}, + {"(*Writer).Flush", Method, 4, ""}, + {"(*Writer).RegisterCompressor", Method, 6, ""}, + {"(*Writer).SetComment", Method, 10, ""}, + {"(*Writer).SetOffset", Method, 5, ""}, + {"Compressor", Type, 2, ""}, + {"Decompressor", Type, 2, ""}, + {"Deflate", Const, 0, ""}, + {"ErrAlgorithm", Var, 0, ""}, + {"ErrChecksum", Var, 0, ""}, + {"ErrFormat", Var, 0, ""}, + {"ErrInsecurePath", Var, 20, ""}, + {"File", Type, 0, ""}, + {"File.FileHeader", Field, 0, ""}, + {"FileHeader", Type, 0, ""}, + {"FileHeader.CRC32", Field, 0, ""}, + {"FileHeader.Comment", Field, 0, ""}, + {"FileHeader.CompressedSize", Field, 0, ""}, + {"FileHeader.CompressedSize64", Field, 1, ""}, + {"FileHeader.CreatorVersion", Field, 0, ""}, + {"FileHeader.ExternalAttrs", Field, 0, ""}, + {"FileHeader.Extra", Field, 0, ""}, + {"FileHeader.Flags", Field, 0, ""}, + {"FileHeader.Method", Field, 0, ""}, + {"FileHeader.Modified", Field, 10, ""}, + {"FileHeader.ModifiedDate", Field, 0, ""}, + {"FileHeader.ModifiedTime", Field, 0, ""}, + {"FileHeader.Name", Field, 0, ""}, + {"FileHeader.NonUTF8", Field, 10, ""}, + {"FileHeader.ReaderVersion", Field, 0, ""}, + {"FileHeader.UncompressedSize", Field, 0, ""}, + {"FileHeader.UncompressedSize64", Field, 1, ""}, + {"FileInfoHeader", Func, 0, "func(fi fs.FileInfo) (*FileHeader, error)"}, + {"NewReader", Func, 0, "func(r io.ReaderAt, size int64) (*Reader, error)"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"OpenReader", Func, 0, "func(name string) (*ReadCloser, error)"}, + {"ReadCloser", Type, 0, ""}, + {"ReadCloser.Reader", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"Reader.Comment", Field, 0, ""}, + {"Reader.File", Field, 0, ""}, + {"RegisterCompressor", Func, 2, "func(method uint16, comp Compressor)"}, + {"RegisterDecompressor", Func, 2, "func(method uint16, dcomp Decompressor)"}, + {"Store", Const, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "bufio": { + {"(*Reader).Buffered", Method, 0, ""}, + {"(*Reader).Discard", Method, 5, ""}, + {"(*Reader).Peek", Method, 0, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Reader).ReadByte", Method, 0, ""}, + {"(*Reader).ReadBytes", Method, 0, ""}, + {"(*Reader).ReadLine", Method, 0, ""}, + {"(*Reader).ReadRune", Method, 0, ""}, + {"(*Reader).ReadSlice", Method, 0, ""}, + {"(*Reader).ReadString", Method, 0, ""}, + {"(*Reader).Reset", Method, 2, ""}, + {"(*Reader).Size", Method, 10, ""}, + {"(*Reader).UnreadByte", Method, 0, ""}, + {"(*Reader).UnreadRune", Method, 0, ""}, + {"(*Reader).WriteTo", Method, 1, ""}, + {"(*Scanner).Buffer", Method, 6, ""}, + {"(*Scanner).Bytes", Method, 1, ""}, + {"(*Scanner).Err", Method, 1, ""}, + {"(*Scanner).Scan", Method, 1, ""}, + {"(*Scanner).Split", Method, 1, ""}, + {"(*Scanner).Text", Method, 1, ""}, + {"(*Writer).Available", Method, 0, ""}, + {"(*Writer).AvailableBuffer", Method, 18, ""}, + {"(*Writer).Buffered", Method, 0, ""}, + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).ReadFrom", Method, 1, ""}, + {"(*Writer).Reset", Method, 2, ""}, + {"(*Writer).Size", Method, 10, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"(*Writer).WriteByte", Method, 0, ""}, + {"(*Writer).WriteRune", Method, 0, ""}, + {"(*Writer).WriteString", Method, 0, ""}, + {"(ReadWriter).Available", Method, 0, ""}, + {"(ReadWriter).AvailableBuffer", Method, 18, ""}, + {"(ReadWriter).Discard", Method, 5, ""}, + {"(ReadWriter).Flush", Method, 0, ""}, + {"(ReadWriter).Peek", Method, 0, ""}, + {"(ReadWriter).Read", Method, 0, ""}, + {"(ReadWriter).ReadByte", Method, 0, ""}, + {"(ReadWriter).ReadBytes", Method, 0, ""}, + {"(ReadWriter).ReadFrom", Method, 1, ""}, + {"(ReadWriter).ReadLine", Method, 0, ""}, + {"(ReadWriter).ReadRune", Method, 0, ""}, + {"(ReadWriter).ReadSlice", Method, 0, ""}, + {"(ReadWriter).ReadString", Method, 0, ""}, + {"(ReadWriter).UnreadByte", Method, 0, ""}, + {"(ReadWriter).UnreadRune", Method, 0, ""}, + {"(ReadWriter).Write", Method, 0, ""}, + {"(ReadWriter).WriteByte", Method, 0, ""}, + {"(ReadWriter).WriteRune", Method, 0, ""}, + {"(ReadWriter).WriteString", Method, 0, ""}, + {"(ReadWriter).WriteTo", Method, 1, ""}, + {"ErrAdvanceTooFar", Var, 1, ""}, + {"ErrBadReadCount", Var, 15, ""}, + {"ErrBufferFull", Var, 0, ""}, + {"ErrFinalToken", Var, 6, ""}, + {"ErrInvalidUnreadByte", Var, 0, ""}, + {"ErrInvalidUnreadRune", Var, 0, ""}, + {"ErrNegativeAdvance", Var, 1, ""}, + {"ErrNegativeCount", Var, 0, ""}, + {"ErrTooLong", Var, 1, ""}, + {"MaxScanTokenSize", Const, 1, ""}, + {"NewReadWriter", Func, 0, "func(r *Reader, w *Writer) *ReadWriter"}, + {"NewReader", Func, 0, "func(rd io.Reader) *Reader"}, + {"NewReaderSize", Func, 0, "func(rd io.Reader, size int) *Reader"}, + {"NewScanner", Func, 1, "func(r io.Reader) *Scanner"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"NewWriterSize", Func, 0, "func(w io.Writer, size int) *Writer"}, + {"ReadWriter", Type, 0, ""}, + {"ReadWriter.Reader", Field, 0, ""}, + {"ReadWriter.Writer", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"ScanBytes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, + {"ScanLines", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, + {"ScanRunes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, + {"ScanWords", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, + {"Scanner", Type, 1, ""}, + {"SplitFunc", Type, 1, ""}, + {"Writer", Type, 0, ""}, + }, + "bytes": { + {"(*Buffer).Available", Method, 21, ""}, + {"(*Buffer).AvailableBuffer", Method, 21, ""}, + {"(*Buffer).Bytes", Method, 0, ""}, + {"(*Buffer).Cap", Method, 5, ""}, + {"(*Buffer).Grow", Method, 1, ""}, + {"(*Buffer).Len", Method, 0, ""}, + {"(*Buffer).Next", Method, 0, ""}, + {"(*Buffer).Read", Method, 0, ""}, + {"(*Buffer).ReadByte", Method, 0, ""}, + {"(*Buffer).ReadBytes", Method, 0, ""}, + {"(*Buffer).ReadFrom", Method, 0, ""}, + {"(*Buffer).ReadRune", Method, 0, ""}, + {"(*Buffer).ReadString", Method, 0, ""}, + {"(*Buffer).Reset", Method, 0, ""}, + {"(*Buffer).String", Method, 0, ""}, + {"(*Buffer).Truncate", Method, 0, ""}, + {"(*Buffer).UnreadByte", Method, 0, ""}, + {"(*Buffer).UnreadRune", Method, 0, ""}, + {"(*Buffer).Write", Method, 0, ""}, + {"(*Buffer).WriteByte", Method, 0, ""}, + {"(*Buffer).WriteRune", Method, 0, ""}, + {"(*Buffer).WriteString", Method, 0, ""}, + {"(*Buffer).WriteTo", Method, 0, ""}, + {"(*Reader).Len", Method, 0, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Reader).ReadAt", Method, 0, ""}, + {"(*Reader).ReadByte", Method, 0, ""}, + {"(*Reader).ReadRune", Method, 0, ""}, + {"(*Reader).Reset", Method, 7, ""}, + {"(*Reader).Seek", Method, 0, ""}, + {"(*Reader).Size", Method, 5, ""}, + {"(*Reader).UnreadByte", Method, 0, ""}, + {"(*Reader).UnreadRune", Method, 0, ""}, + {"(*Reader).WriteTo", Method, 1, ""}, + {"Buffer", Type, 0, ""}, + {"Clone", Func, 20, "func(b []byte) []byte"}, + {"Compare", Func, 0, "func(a []byte, b []byte) int"}, + {"Contains", Func, 0, "func(b []byte, subslice []byte) bool"}, + {"ContainsAny", Func, 7, "func(b []byte, chars string) bool"}, + {"ContainsFunc", Func, 21, "func(b []byte, f func(rune) bool) bool"}, + {"ContainsRune", Func, 7, "func(b []byte, r rune) bool"}, + {"Count", Func, 0, "func(s []byte, sep []byte) int"}, + {"Cut", Func, 18, "func(s []byte, sep []byte) (before []byte, after []byte, found bool)"}, + {"CutPrefix", Func, 20, "func(s []byte, prefix []byte) (after []byte, found bool)"}, + {"CutSuffix", Func, 20, "func(s []byte, suffix []byte) (before []byte, found bool)"}, + {"Equal", Func, 0, "func(a []byte, b []byte) bool"}, + {"EqualFold", Func, 0, "func(s []byte, t []byte) bool"}, + {"ErrTooLarge", Var, 0, ""}, + {"Fields", Func, 0, "func(s []byte) [][]byte"}, + {"FieldsFunc", Func, 0, "func(s []byte, f func(rune) bool) [][]byte"}, + {"FieldsFuncSeq", Func, 24, "func(s []byte, f func(rune) bool) iter.Seq[[]byte]"}, + {"FieldsSeq", Func, 24, "func(s []byte) iter.Seq[[]byte]"}, + {"HasPrefix", Func, 0, "func(s []byte, prefix []byte) bool"}, + {"HasSuffix", Func, 0, "func(s []byte, suffix []byte) bool"}, + {"Index", Func, 0, "func(s []byte, sep []byte) int"}, + {"IndexAny", Func, 0, "func(s []byte, chars string) int"}, + {"IndexByte", Func, 0, "func(b []byte, c byte) int"}, + {"IndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"}, + {"IndexRune", Func, 0, "func(s []byte, r rune) int"}, + {"Join", Func, 0, "func(s [][]byte, sep []byte) []byte"}, + {"LastIndex", Func, 0, "func(s []byte, sep []byte) int"}, + {"LastIndexAny", Func, 0, "func(s []byte, chars string) int"}, + {"LastIndexByte", Func, 5, "func(s []byte, c byte) int"}, + {"LastIndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"}, + {"Lines", Func, 24, "func(s []byte) iter.Seq[[]byte]"}, + {"Map", Func, 0, "func(mapping func(r rune) rune, s []byte) []byte"}, + {"MinRead", Const, 0, ""}, + {"NewBuffer", Func, 0, "func(buf []byte) *Buffer"}, + {"NewBufferString", Func, 0, "func(s string) *Buffer"}, + {"NewReader", Func, 0, "func(b []byte) *Reader"}, + {"Reader", Type, 0, ""}, + {"Repeat", Func, 0, "func(b []byte, count int) []byte"}, + {"Replace", Func, 0, "func(s []byte, old []byte, new []byte, n int) []byte"}, + {"ReplaceAll", Func, 12, "func(s []byte, old []byte, new []byte) []byte"}, + {"Runes", Func, 0, "func(s []byte) []rune"}, + {"Split", Func, 0, "func(s []byte, sep []byte) [][]byte"}, + {"SplitAfter", Func, 0, "func(s []byte, sep []byte) [][]byte"}, + {"SplitAfterN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"}, + {"SplitAfterSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"}, + {"SplitN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"}, + {"SplitSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"}, + {"Title", Func, 0, "func(s []byte) []byte"}, + {"ToLower", Func, 0, "func(s []byte) []byte"}, + {"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, + {"ToTitle", Func, 0, "func(s []byte) []byte"}, + {"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, + {"ToUpper", Func, 0, "func(s []byte) []byte"}, + {"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, + {"ToValidUTF8", Func, 13, "func(s []byte, replacement []byte) []byte"}, + {"Trim", Func, 0, "func(s []byte, cutset string) []byte"}, + {"TrimFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, + {"TrimLeft", Func, 0, "func(s []byte, cutset string) []byte"}, + {"TrimLeftFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, + {"TrimPrefix", Func, 1, "func(s []byte, prefix []byte) []byte"}, + {"TrimRight", Func, 0, "func(s []byte, cutset string) []byte"}, + {"TrimRightFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, + {"TrimSpace", Func, 0, "func(s []byte) []byte"}, + {"TrimSuffix", Func, 1, "func(s []byte, suffix []byte) []byte"}, + }, + "cmp": { + {"Compare", Func, 21, "func[T Ordered](x T, y T) int"}, + {"Less", Func, 21, "func[T Ordered](x T, y T) bool"}, + {"Or", Func, 22, "func[T comparable](vals ...T) T"}, + {"Ordered", Type, 21, ""}, + }, + "compress/bzip2": { + {"(StructuralError).Error", Method, 0, ""}, + {"NewReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"StructuralError", Type, 0, ""}, + }, + "compress/flate": { + {"(*ReadError).Error", Method, 0, ""}, + {"(*WriteError).Error", Method, 0, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).Reset", Method, 2, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"(CorruptInputError).Error", Method, 0, ""}, + {"(InternalError).Error", Method, 0, ""}, + {"BestCompression", Const, 0, ""}, + {"BestSpeed", Const, 0, ""}, + {"CorruptInputError", Type, 0, ""}, + {"DefaultCompression", Const, 0, ""}, + {"HuffmanOnly", Const, 7, ""}, + {"InternalError", Type, 0, ""}, + {"NewReader", Func, 0, "func(r io.Reader) io.ReadCloser"}, + {"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) io.ReadCloser"}, + {"NewWriter", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, + {"NewWriterDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"}, + {"NoCompression", Const, 0, ""}, + {"ReadError", Type, 0, ""}, + {"ReadError.Err", Field, 0, ""}, + {"ReadError.Offset", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"Resetter", Type, 4, ""}, + {"WriteError", Type, 0, ""}, + {"WriteError.Err", Field, 0, ""}, + {"WriteError.Offset", Field, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "compress/gzip": { + {"(*Reader).Close", Method, 0, ""}, + {"(*Reader).Multistream", Method, 4, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Reader).Reset", Method, 3, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Flush", Method, 1, ""}, + {"(*Writer).Reset", Method, 2, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"BestCompression", Const, 0, ""}, + {"BestSpeed", Const, 0, ""}, + {"DefaultCompression", Const, 0, ""}, + {"ErrChecksum", Var, 0, ""}, + {"ErrHeader", Var, 0, ""}, + {"Header", Type, 0, ""}, + {"Header.Comment", Field, 0, ""}, + {"Header.Extra", Field, 0, ""}, + {"Header.ModTime", Field, 0, ""}, + {"Header.Name", Field, 0, ""}, + {"Header.OS", Field, 0, ""}, + {"HuffmanOnly", Const, 8, ""}, + {"NewReader", Func, 0, "func(r io.Reader) (*Reader, error)"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, + {"NoCompression", Const, 0, ""}, + {"Reader", Type, 0, ""}, + {"Reader.Header", Field, 0, ""}, + {"Writer", Type, 0, ""}, + {"Writer.Header", Field, 0, ""}, + }, + "compress/lzw": { + {"(*Reader).Close", Method, 17, ""}, + {"(*Reader).Read", Method, 17, ""}, + {"(*Reader).Reset", Method, 17, ""}, + {"(*Writer).Close", Method, 17, ""}, + {"(*Writer).Reset", Method, 17, ""}, + {"(*Writer).Write", Method, 17, ""}, + {"LSB", Const, 0, ""}, + {"MSB", Const, 0, ""}, + {"NewReader", Func, 0, "func(r io.Reader, order Order, litWidth int) io.ReadCloser"}, + {"NewWriter", Func, 0, "func(w io.Writer, order Order, litWidth int) io.WriteCloser"}, + {"Order", Type, 0, ""}, + {"Reader", Type, 17, ""}, + {"Writer", Type, 17, ""}, + }, + "compress/zlib": { + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).Reset", Method, 2, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"BestCompression", Const, 0, ""}, + {"BestSpeed", Const, 0, ""}, + {"DefaultCompression", Const, 0, ""}, + {"ErrChecksum", Var, 0, ""}, + {"ErrDictionary", Var, 0, ""}, + {"ErrHeader", Var, 0, ""}, + {"HuffmanOnly", Const, 8, ""}, + {"NewReader", Func, 0, "func(r io.Reader) (io.ReadCloser, error)"}, + {"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) (io.ReadCloser, error)"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, + {"NewWriterLevelDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"}, + {"NoCompression", Const, 0, ""}, + {"Resetter", Type, 4, ""}, + {"Writer", Type, 0, ""}, + }, + "container/heap": { + {"Fix", Func, 2, "func(h Interface, i int)"}, + {"Init", Func, 0, "func(h Interface)"}, + {"Interface", Type, 0, ""}, + {"Pop", Func, 0, "func(h Interface) any"}, + {"Push", Func, 0, "func(h Interface, x any)"}, + {"Remove", Func, 0, "func(h Interface, i int) any"}, + }, + "container/list": { + {"(*Element).Next", Method, 0, ""}, + {"(*Element).Prev", Method, 0, ""}, + {"(*List).Back", Method, 0, ""}, + {"(*List).Front", Method, 0, ""}, + {"(*List).Init", Method, 0, ""}, + {"(*List).InsertAfter", Method, 0, ""}, + {"(*List).InsertBefore", Method, 0, ""}, + {"(*List).Len", Method, 0, ""}, + {"(*List).MoveAfter", Method, 2, ""}, + {"(*List).MoveBefore", Method, 2, ""}, + {"(*List).MoveToBack", Method, 0, ""}, + {"(*List).MoveToFront", Method, 0, ""}, + {"(*List).PushBack", Method, 0, ""}, + {"(*List).PushBackList", Method, 0, ""}, + {"(*List).PushFront", Method, 0, ""}, + {"(*List).PushFrontList", Method, 0, ""}, + {"(*List).Remove", Method, 0, ""}, + {"Element", Type, 0, ""}, + {"Element.Value", Field, 0, ""}, + {"List", Type, 0, ""}, + {"New", Func, 0, "func() *List"}, + }, + "container/ring": { + {"(*Ring).Do", Method, 0, ""}, + {"(*Ring).Len", Method, 0, ""}, + {"(*Ring).Link", Method, 0, ""}, + {"(*Ring).Move", Method, 0, ""}, + {"(*Ring).Next", Method, 0, ""}, + {"(*Ring).Prev", Method, 0, ""}, + {"(*Ring).Unlink", Method, 0, ""}, + {"New", Func, 0, "func(n int) *Ring"}, + {"Ring", Type, 0, ""}, + {"Ring.Value", Field, 0, ""}, + }, + "context": { + {"AfterFunc", Func, 21, "func(ctx Context, f func()) (stop func() bool)"}, + {"Background", Func, 7, "func() Context"}, + {"CancelCauseFunc", Type, 20, ""}, + {"CancelFunc", Type, 7, ""}, + {"Canceled", Var, 7, ""}, + {"Cause", Func, 20, "func(c Context) error"}, + {"Context", Type, 7, ""}, + {"DeadlineExceeded", Var, 7, ""}, + {"TODO", Func, 7, "func() Context"}, + {"WithCancel", Func, 7, "func(parent Context) (ctx Context, cancel CancelFunc)"}, + {"WithCancelCause", Func, 20, "func(parent Context) (ctx Context, cancel CancelCauseFunc)"}, + {"WithDeadline", Func, 7, "func(parent Context, d time.Time) (Context, CancelFunc)"}, + {"WithDeadlineCause", Func, 21, "func(parent Context, d time.Time, cause error) (Context, CancelFunc)"}, + {"WithTimeout", Func, 7, "func(parent Context, timeout time.Duration) (Context, CancelFunc)"}, + {"WithTimeoutCause", Func, 21, "func(parent Context, timeout time.Duration, cause error) (Context, CancelFunc)"}, + {"WithValue", Func, 7, "func(parent Context, key any, val any) Context"}, + {"WithoutCancel", Func, 21, "func(parent Context) Context"}, + }, + "crypto": { + {"(Hash).Available", Method, 0, ""}, + {"(Hash).HashFunc", Method, 4, ""}, + {"(Hash).New", Method, 0, ""}, + {"(Hash).Size", Method, 0, ""}, + {"(Hash).String", Method, 15, ""}, + {"BLAKE2b_256", Const, 9, ""}, + {"BLAKE2b_384", Const, 9, ""}, + {"BLAKE2b_512", Const, 9, ""}, + {"BLAKE2s_256", Const, 9, ""}, + {"Decrypter", Type, 5, ""}, + {"DecrypterOpts", Type, 5, ""}, + {"Hash", Type, 0, ""}, + {"MD4", Const, 0, ""}, + {"MD5", Const, 0, ""}, + {"MD5SHA1", Const, 0, ""}, + {"PrivateKey", Type, 0, ""}, + {"PublicKey", Type, 2, ""}, + {"RIPEMD160", Const, 0, ""}, + {"RegisterHash", Func, 0, "func(h Hash, f func() hash.Hash)"}, + {"SHA1", Const, 0, ""}, + {"SHA224", Const, 0, ""}, + {"SHA256", Const, 0, ""}, + {"SHA384", Const, 0, ""}, + {"SHA3_224", Const, 4, ""}, + {"SHA3_256", Const, 4, ""}, + {"SHA3_384", Const, 4, ""}, + {"SHA3_512", Const, 4, ""}, + {"SHA512", Const, 0, ""}, + {"SHA512_224", Const, 5, ""}, + {"SHA512_256", Const, 5, ""}, + {"Signer", Type, 4, ""}, + {"SignerOpts", Type, 4, ""}, + }, + "crypto/aes": { + {"(KeySizeError).Error", Method, 0, ""}, + {"BlockSize", Const, 0, ""}, + {"KeySizeError", Type, 0, ""}, + {"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, + }, + "crypto/cipher": { + {"(StreamReader).Read", Method, 0, ""}, + {"(StreamWriter).Close", Method, 0, ""}, + {"(StreamWriter).Write", Method, 0, ""}, + {"AEAD", Type, 2, ""}, + {"Block", Type, 0, ""}, + {"BlockMode", Type, 0, ""}, + {"NewCBCDecrypter", Func, 0, "func(b Block, iv []byte) BlockMode"}, + {"NewCBCEncrypter", Func, 0, "func(b Block, iv []byte) BlockMode"}, + {"NewCFBDecrypter", Func, 0, "func(block Block, iv []byte) Stream"}, + {"NewCFBEncrypter", Func, 0, "func(block Block, iv []byte) Stream"}, + {"NewCTR", Func, 0, "func(block Block, iv []byte) Stream"}, + {"NewGCM", Func, 2, "func(cipher Block) (AEAD, error)"}, + {"NewGCMWithNonceSize", Func, 5, "func(cipher Block, size int) (AEAD, error)"}, + {"NewGCMWithRandomNonce", Func, 24, "func(cipher Block) (AEAD, error)"}, + {"NewGCMWithTagSize", Func, 11, "func(cipher Block, tagSize int) (AEAD, error)"}, + {"NewOFB", Func, 0, "func(b Block, iv []byte) Stream"}, + {"Stream", Type, 0, ""}, + {"StreamReader", Type, 0, ""}, + {"StreamReader.R", Field, 0, ""}, + {"StreamReader.S", Field, 0, ""}, + {"StreamWriter", Type, 0, ""}, + {"StreamWriter.Err", Field, 0, ""}, + {"StreamWriter.S", Field, 0, ""}, + {"StreamWriter.W", Field, 0, ""}, + }, + "crypto/des": { + {"(KeySizeError).Error", Method, 0, ""}, + {"BlockSize", Const, 0, ""}, + {"KeySizeError", Type, 0, ""}, + {"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, + {"NewTripleDESCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, + }, + "crypto/dsa": { + {"ErrInvalidPublicKey", Var, 0, ""}, + {"GenerateKey", Func, 0, "func(priv *PrivateKey, rand io.Reader) error"}, + {"GenerateParameters", Func, 0, "func(params *Parameters, rand io.Reader, sizes ParameterSizes) error"}, + {"L1024N160", Const, 0, ""}, + {"L2048N224", Const, 0, ""}, + {"L2048N256", Const, 0, ""}, + {"L3072N256", Const, 0, ""}, + {"ParameterSizes", Type, 0, ""}, + {"Parameters", Type, 0, ""}, + {"Parameters.G", Field, 0, ""}, + {"Parameters.P", Field, 0, ""}, + {"Parameters.Q", Field, 0, ""}, + {"PrivateKey", Type, 0, ""}, + {"PrivateKey.PublicKey", Field, 0, ""}, + {"PrivateKey.X", Field, 0, ""}, + {"PublicKey", Type, 0, ""}, + {"PublicKey.Parameters", Field, 0, ""}, + {"PublicKey.Y", Field, 0, ""}, + {"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"}, + {"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"}, + }, + "crypto/ecdh": { + {"(*PrivateKey).Bytes", Method, 20, ""}, + {"(*PrivateKey).Curve", Method, 20, ""}, + {"(*PrivateKey).ECDH", Method, 20, ""}, + {"(*PrivateKey).Equal", Method, 20, ""}, + {"(*PrivateKey).Public", Method, 20, ""}, + {"(*PrivateKey).PublicKey", Method, 20, ""}, + {"(*PublicKey).Bytes", Method, 20, ""}, + {"(*PublicKey).Curve", Method, 20, ""}, + {"(*PublicKey).Equal", Method, 20, ""}, + {"Curve", Type, 20, ""}, + {"P256", Func, 20, "func() Curve"}, + {"P384", Func, 20, "func() Curve"}, + {"P521", Func, 20, "func() Curve"}, + {"PrivateKey", Type, 20, ""}, + {"PublicKey", Type, 20, ""}, + {"X25519", Func, 20, "func() Curve"}, + }, + "crypto/ecdsa": { + {"(*PrivateKey).ECDH", Method, 20, ""}, + {"(*PrivateKey).Equal", Method, 15, ""}, + {"(*PrivateKey).Public", Method, 4, ""}, + {"(*PrivateKey).Sign", Method, 4, ""}, + {"(*PublicKey).ECDH", Method, 20, ""}, + {"(*PublicKey).Equal", Method, 15, ""}, + {"(PrivateKey).Add", Method, 0, ""}, + {"(PrivateKey).Double", Method, 0, ""}, + {"(PrivateKey).IsOnCurve", Method, 0, ""}, + {"(PrivateKey).Params", Method, 0, ""}, + {"(PrivateKey).ScalarBaseMult", Method, 0, ""}, + {"(PrivateKey).ScalarMult", Method, 0, ""}, + {"(PublicKey).Add", Method, 0, ""}, + {"(PublicKey).Double", Method, 0, ""}, + {"(PublicKey).IsOnCurve", Method, 0, ""}, + {"(PublicKey).Params", Method, 0, ""}, + {"(PublicKey).ScalarBaseMult", Method, 0, ""}, + {"(PublicKey).ScalarMult", Method, 0, ""}, + {"GenerateKey", Func, 0, "func(c elliptic.Curve, rand io.Reader) (*PrivateKey, error)"}, + {"PrivateKey", Type, 0, ""}, + {"PrivateKey.D", Field, 0, ""}, + {"PrivateKey.PublicKey", Field, 0, ""}, + {"PublicKey", Type, 0, ""}, + {"PublicKey.Curve", Field, 0, ""}, + {"PublicKey.X", Field, 0, ""}, + {"PublicKey.Y", Field, 0, ""}, + {"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"}, + {"SignASN1", Func, 15, "func(rand io.Reader, priv *PrivateKey, hash []byte) ([]byte, error)"}, + {"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"}, + {"VerifyASN1", Func, 15, "func(pub *PublicKey, hash []byte, sig []byte) bool"}, + }, + "crypto/ed25519": { + {"(*Options).HashFunc", Method, 20, ""}, + {"(PrivateKey).Equal", Method, 15, ""}, + {"(PrivateKey).Public", Method, 13, ""}, + {"(PrivateKey).Seed", Method, 13, ""}, + {"(PrivateKey).Sign", Method, 13, ""}, + {"(PublicKey).Equal", Method, 15, ""}, + {"GenerateKey", Func, 13, "func(rand io.Reader) (PublicKey, PrivateKey, error)"}, + {"NewKeyFromSeed", Func, 13, "func(seed []byte) PrivateKey"}, + {"Options", Type, 20, ""}, + {"Options.Context", Field, 20, ""}, + {"Options.Hash", Field, 20, ""}, + {"PrivateKey", Type, 13, ""}, + {"PrivateKeySize", Const, 13, ""}, + {"PublicKey", Type, 13, ""}, + {"PublicKeySize", Const, 13, ""}, + {"SeedSize", Const, 13, ""}, + {"Sign", Func, 13, "func(privateKey PrivateKey, message []byte) []byte"}, + {"SignatureSize", Const, 13, ""}, + {"Verify", Func, 13, "func(publicKey PublicKey, message []byte, sig []byte) bool"}, + {"VerifyWithOptions", Func, 20, "func(publicKey PublicKey, message []byte, sig []byte, opts *Options) error"}, + }, + "crypto/elliptic": { + {"(*CurveParams).Add", Method, 0, ""}, + {"(*CurveParams).Double", Method, 0, ""}, + {"(*CurveParams).IsOnCurve", Method, 0, ""}, + {"(*CurveParams).Params", Method, 0, ""}, + {"(*CurveParams).ScalarBaseMult", Method, 0, ""}, + {"(*CurveParams).ScalarMult", Method, 0, ""}, + {"Curve", Type, 0, ""}, + {"CurveParams", Type, 0, ""}, + {"CurveParams.B", Field, 0, ""}, + {"CurveParams.BitSize", Field, 0, ""}, + {"CurveParams.Gx", Field, 0, ""}, + {"CurveParams.Gy", Field, 0, ""}, + {"CurveParams.N", Field, 0, ""}, + {"CurveParams.Name", Field, 5, ""}, + {"CurveParams.P", Field, 0, ""}, + {"GenerateKey", Func, 0, "func(curve Curve, rand io.Reader) (priv []byte, x *big.Int, y *big.Int, err error)"}, + {"Marshal", Func, 0, "func(curve Curve, x *big.Int, y *big.Int) []byte"}, + {"MarshalCompressed", Func, 15, "func(curve Curve, x *big.Int, y *big.Int) []byte"}, + {"P224", Func, 0, "func() Curve"}, + {"P256", Func, 0, "func() Curve"}, + {"P384", Func, 0, "func() Curve"}, + {"P521", Func, 0, "func() Curve"}, + {"Unmarshal", Func, 0, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"}, + {"UnmarshalCompressed", Func, 15, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"}, + }, + "crypto/fips140": { + {"Enabled", Func, 24, "func() bool"}, + }, + "crypto/hkdf": { + {"Expand", Func, 24, "func[H hash.Hash](h func() H, pseudorandomKey []byte, info string, keyLength int) ([]byte, error)"}, + {"Extract", Func, 24, "func[H hash.Hash](h func() H, secret []byte, salt []byte) ([]byte, error)"}, + {"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, secret []byte, salt []byte, info string, keyLength int) ([]byte, error)"}, + }, + "crypto/hmac": { + {"Equal", Func, 1, "func(mac1 []byte, mac2 []byte) bool"}, + {"New", Func, 0, "func(h func() hash.Hash, key []byte) hash.Hash"}, + }, + "crypto/md5": { + {"BlockSize", Const, 0, ""}, + {"New", Func, 0, "func() hash.Hash"}, + {"Size", Const, 0, ""}, + {"Sum", Func, 2, "func(data []byte) [16]byte"}, + }, + "crypto/mlkem": { + {"(*DecapsulationKey1024).Bytes", Method, 24, ""}, + {"(*DecapsulationKey1024).Decapsulate", Method, 24, ""}, + {"(*DecapsulationKey1024).EncapsulationKey", Method, 24, ""}, + {"(*DecapsulationKey768).Bytes", Method, 24, ""}, + {"(*DecapsulationKey768).Decapsulate", Method, 24, ""}, + {"(*DecapsulationKey768).EncapsulationKey", Method, 24, ""}, + {"(*EncapsulationKey1024).Bytes", Method, 24, ""}, + {"(*EncapsulationKey1024).Encapsulate", Method, 24, ""}, + {"(*EncapsulationKey768).Bytes", Method, 24, ""}, + {"(*EncapsulationKey768).Encapsulate", Method, 24, ""}, + {"CiphertextSize1024", Const, 24, ""}, + {"CiphertextSize768", Const, 24, ""}, + {"DecapsulationKey1024", Type, 24, ""}, + {"DecapsulationKey768", Type, 24, ""}, + {"EncapsulationKey1024", Type, 24, ""}, + {"EncapsulationKey768", Type, 24, ""}, + {"EncapsulationKeySize1024", Const, 24, ""}, + {"EncapsulationKeySize768", Const, 24, ""}, + {"GenerateKey1024", Func, 24, "func() (*DecapsulationKey1024, error)"}, + {"GenerateKey768", Func, 24, "func() (*DecapsulationKey768, error)"}, + {"NewDecapsulationKey1024", Func, 24, "func(seed []byte) (*DecapsulationKey1024, error)"}, + {"NewDecapsulationKey768", Func, 24, "func(seed []byte) (*DecapsulationKey768, error)"}, + {"NewEncapsulationKey1024", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey1024, error)"}, + {"NewEncapsulationKey768", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey768, error)"}, + {"SeedSize", Const, 24, ""}, + {"SharedKeySize", Const, 24, ""}, + }, + "crypto/pbkdf2": { + {"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, password string, salt []byte, iter int, keyLength int) ([]byte, error)"}, + }, + "crypto/rand": { + {"Int", Func, 0, "func(rand io.Reader, max *big.Int) (n *big.Int, err error)"}, + {"Prime", Func, 0, "func(rand io.Reader, bits int) (*big.Int, error)"}, + {"Read", Func, 0, "func(b []byte) (n int, err error)"}, + {"Reader", Var, 0, ""}, + {"Text", Func, 24, "func() string"}, + }, + "crypto/rc4": { + {"(*Cipher).Reset", Method, 0, ""}, + {"(*Cipher).XORKeyStream", Method, 0, ""}, + {"(KeySizeError).Error", Method, 0, ""}, + {"Cipher", Type, 0, ""}, + {"KeySizeError", Type, 0, ""}, + {"NewCipher", Func, 0, "func(key []byte) (*Cipher, error)"}, + }, + "crypto/rsa": { + {"(*PSSOptions).HashFunc", Method, 4, ""}, + {"(*PrivateKey).Decrypt", Method, 5, ""}, + {"(*PrivateKey).Equal", Method, 15, ""}, + {"(*PrivateKey).Precompute", Method, 0, ""}, + {"(*PrivateKey).Public", Method, 4, ""}, + {"(*PrivateKey).Sign", Method, 4, ""}, + {"(*PrivateKey).Size", Method, 11, ""}, + {"(*PrivateKey).Validate", Method, 0, ""}, + {"(*PublicKey).Equal", Method, 15, ""}, + {"(*PublicKey).Size", Method, 11, ""}, + {"CRTValue", Type, 0, ""}, + {"CRTValue.Coeff", Field, 0, ""}, + {"CRTValue.Exp", Field, 0, ""}, + {"CRTValue.R", Field, 0, ""}, + {"DecryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, priv *PrivateKey, ciphertext []byte, label []byte) ([]byte, error)"}, + {"DecryptPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte) ([]byte, error)"}, + {"DecryptPKCS1v15SessionKey", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte, key []byte) error"}, + {"EncryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, pub *PublicKey, msg []byte, label []byte) ([]byte, error)"}, + {"EncryptPKCS1v15", Func, 0, "func(random io.Reader, pub *PublicKey, msg []byte) ([]byte, error)"}, + {"ErrDecryption", Var, 0, ""}, + {"ErrMessageTooLong", Var, 0, ""}, + {"ErrVerification", Var, 0, ""}, + {"GenerateKey", Func, 0, "func(random io.Reader, bits int) (*PrivateKey, error)"}, + {"GenerateMultiPrimeKey", Func, 0, "func(random io.Reader, nprimes int, bits int) (*PrivateKey, error)"}, + {"OAEPOptions", Type, 5, ""}, + {"OAEPOptions.Hash", Field, 5, ""}, + {"OAEPOptions.Label", Field, 5, ""}, + {"OAEPOptions.MGFHash", Field, 20, ""}, + {"PKCS1v15DecryptOptions", Type, 5, ""}, + {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5, ""}, + {"PSSOptions", Type, 2, ""}, + {"PSSOptions.Hash", Field, 4, ""}, + {"PSSOptions.SaltLength", Field, 2, ""}, + {"PSSSaltLengthAuto", Const, 2, ""}, + {"PSSSaltLengthEqualsHash", Const, 2, ""}, + {"PrecomputedValues", Type, 0, ""}, + {"PrecomputedValues.CRTValues", Field, 0, ""}, + {"PrecomputedValues.Dp", Field, 0, ""}, + {"PrecomputedValues.Dq", Field, 0, ""}, + {"PrecomputedValues.Qinv", Field, 0, ""}, + {"PrivateKey", Type, 0, ""}, + {"PrivateKey.D", Field, 0, ""}, + {"PrivateKey.Precomputed", Field, 0, ""}, + {"PrivateKey.Primes", Field, 0, ""}, + {"PrivateKey.PublicKey", Field, 0, ""}, + {"PublicKey", Type, 0, ""}, + {"PublicKey.E", Field, 0, ""}, + {"PublicKey.N", Field, 0, ""}, + {"SignPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error)"}, + {"SignPSS", Func, 2, "func(rand io.Reader, priv *PrivateKey, hash crypto.Hash, digest []byte, opts *PSSOptions) ([]byte, error)"}, + {"VerifyPKCS1v15", Func, 0, "func(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error"}, + {"VerifyPSS", Func, 2, "func(pub *PublicKey, hash crypto.Hash, digest []byte, sig []byte, opts *PSSOptions) error"}, + }, + "crypto/sha1": { + {"BlockSize", Const, 0, ""}, + {"New", Func, 0, "func() hash.Hash"}, + {"Size", Const, 0, ""}, + {"Sum", Func, 2, "func(data []byte) [20]byte"}, + }, + "crypto/sha256": { + {"BlockSize", Const, 0, ""}, + {"New", Func, 0, "func() hash.Hash"}, + {"New224", Func, 0, "func() hash.Hash"}, + {"Size", Const, 0, ""}, + {"Size224", Const, 0, ""}, + {"Sum224", Func, 2, "func(data []byte) [28]byte"}, + {"Sum256", Func, 2, "func(data []byte) [32]byte"}, + }, + "crypto/sha3": { + {"(*SHA3).AppendBinary", Method, 24, ""}, + {"(*SHA3).BlockSize", Method, 24, ""}, + {"(*SHA3).MarshalBinary", Method, 24, ""}, + {"(*SHA3).Reset", Method, 24, ""}, + {"(*SHA3).Size", Method, 24, ""}, + {"(*SHA3).Sum", Method, 24, ""}, + {"(*SHA3).UnmarshalBinary", Method, 24, ""}, + {"(*SHA3).Write", Method, 24, ""}, + {"(*SHAKE).AppendBinary", Method, 24, ""}, + {"(*SHAKE).BlockSize", Method, 24, ""}, + {"(*SHAKE).MarshalBinary", Method, 24, ""}, + {"(*SHAKE).Read", Method, 24, ""}, + {"(*SHAKE).Reset", Method, 24, ""}, + {"(*SHAKE).UnmarshalBinary", Method, 24, ""}, + {"(*SHAKE).Write", Method, 24, ""}, + {"New224", Func, 24, "func() *SHA3"}, + {"New256", Func, 24, "func() *SHA3"}, + {"New384", Func, 24, "func() *SHA3"}, + {"New512", Func, 24, "func() *SHA3"}, + {"NewCSHAKE128", Func, 24, "func(N []byte, S []byte) *SHAKE"}, + {"NewCSHAKE256", Func, 24, "func(N []byte, S []byte) *SHAKE"}, + {"NewSHAKE128", Func, 24, "func() *SHAKE"}, + {"NewSHAKE256", Func, 24, "func() *SHAKE"}, + {"SHA3", Type, 24, ""}, + {"SHAKE", Type, 24, ""}, + {"Sum224", Func, 24, "func(data []byte) [28]byte"}, + {"Sum256", Func, 24, "func(data []byte) [32]byte"}, + {"Sum384", Func, 24, "func(data []byte) [48]byte"}, + {"Sum512", Func, 24, "func(data []byte) [64]byte"}, + {"SumSHAKE128", Func, 24, "func(data []byte, length int) []byte"}, + {"SumSHAKE256", Func, 24, "func(data []byte, length int) []byte"}, + }, + "crypto/sha512": { + {"BlockSize", Const, 0, ""}, + {"New", Func, 0, "func() hash.Hash"}, + {"New384", Func, 0, "func() hash.Hash"}, + {"New512_224", Func, 5, "func() hash.Hash"}, + {"New512_256", Func, 5, "func() hash.Hash"}, + {"Size", Const, 0, ""}, + {"Size224", Const, 5, ""}, + {"Size256", Const, 5, ""}, + {"Size384", Const, 0, ""}, + {"Sum384", Func, 2, "func(data []byte) [48]byte"}, + {"Sum512", Func, 2, "func(data []byte) [64]byte"}, + {"Sum512_224", Func, 5, "func(data []byte) [28]byte"}, + {"Sum512_256", Func, 5, "func(data []byte) [32]byte"}, + }, + "crypto/subtle": { + {"ConstantTimeByteEq", Func, 0, "func(x uint8, y uint8) int"}, + {"ConstantTimeCompare", Func, 0, "func(x []byte, y []byte) int"}, + {"ConstantTimeCopy", Func, 0, "func(v int, x []byte, y []byte)"}, + {"ConstantTimeEq", Func, 0, "func(x int32, y int32) int"}, + {"ConstantTimeLessOrEq", Func, 2, "func(x int, y int) int"}, + {"ConstantTimeSelect", Func, 0, "func(v int, x int, y int) int"}, + {"WithDataIndependentTiming", Func, 24, "func(f func())"}, + {"XORBytes", Func, 20, "func(dst []byte, x []byte, y []byte) int"}, + }, + "crypto/tls": { + {"(*CertificateRequestInfo).Context", Method, 17, ""}, + {"(*CertificateRequestInfo).SupportsCertificate", Method, 14, ""}, + {"(*CertificateVerificationError).Error", Method, 20, ""}, + {"(*CertificateVerificationError).Unwrap", Method, 20, ""}, + {"(*ClientHelloInfo).Context", Method, 17, ""}, + {"(*ClientHelloInfo).SupportsCertificate", Method, 14, ""}, + {"(*ClientSessionState).ResumptionState", Method, 21, ""}, + {"(*Config).BuildNameToCertificate", Method, 0, ""}, + {"(*Config).Clone", Method, 8, ""}, + {"(*Config).DecryptTicket", Method, 21, ""}, + {"(*Config).EncryptTicket", Method, 21, ""}, + {"(*Config).SetSessionTicketKeys", Method, 5, ""}, + {"(*Conn).Close", Method, 0, ""}, + {"(*Conn).CloseWrite", Method, 8, ""}, + {"(*Conn).ConnectionState", Method, 0, ""}, + {"(*Conn).Handshake", Method, 0, ""}, + {"(*Conn).HandshakeContext", Method, 17, ""}, + {"(*Conn).LocalAddr", Method, 0, ""}, + {"(*Conn).NetConn", Method, 18, ""}, + {"(*Conn).OCSPResponse", Method, 0, ""}, + {"(*Conn).Read", Method, 0, ""}, + {"(*Conn).RemoteAddr", Method, 0, ""}, + {"(*Conn).SetDeadline", Method, 0, ""}, + {"(*Conn).SetReadDeadline", Method, 0, ""}, + {"(*Conn).SetWriteDeadline", Method, 0, ""}, + {"(*Conn).VerifyHostname", Method, 0, ""}, + {"(*Conn).Write", Method, 0, ""}, + {"(*ConnectionState).ExportKeyingMaterial", Method, 11, ""}, + {"(*Dialer).Dial", Method, 15, ""}, + {"(*Dialer).DialContext", Method, 15, ""}, + {"(*ECHRejectionError).Error", Method, 23, ""}, + {"(*QUICConn).Close", Method, 21, ""}, + {"(*QUICConn).ConnectionState", Method, 21, ""}, + {"(*QUICConn).HandleData", Method, 21, ""}, + {"(*QUICConn).NextEvent", Method, 21, ""}, + {"(*QUICConn).SendSessionTicket", Method, 21, ""}, + {"(*QUICConn).SetTransportParameters", Method, 21, ""}, + {"(*QUICConn).Start", Method, 21, ""}, + {"(*QUICConn).StoreSession", Method, 23, ""}, + {"(*SessionState).Bytes", Method, 21, ""}, + {"(AlertError).Error", Method, 21, ""}, + {"(ClientAuthType).String", Method, 15, ""}, + {"(CurveID).String", Method, 15, ""}, + {"(QUICEncryptionLevel).String", Method, 21, ""}, + {"(RecordHeaderError).Error", Method, 6, ""}, + {"(SignatureScheme).String", Method, 15, ""}, + {"AlertError", Type, 21, ""}, + {"Certificate", Type, 0, ""}, + {"Certificate.Certificate", Field, 0, ""}, + {"Certificate.Leaf", Field, 0, ""}, + {"Certificate.OCSPStaple", Field, 0, ""}, + {"Certificate.PrivateKey", Field, 0, ""}, + {"Certificate.SignedCertificateTimestamps", Field, 5, ""}, + {"Certificate.SupportedSignatureAlgorithms", Field, 14, ""}, + {"CertificateRequestInfo", Type, 8, ""}, + {"CertificateRequestInfo.AcceptableCAs", Field, 8, ""}, + {"CertificateRequestInfo.SignatureSchemes", Field, 8, ""}, + {"CertificateRequestInfo.Version", Field, 14, ""}, + {"CertificateVerificationError", Type, 20, ""}, + {"CertificateVerificationError.Err", Field, 20, ""}, + {"CertificateVerificationError.UnverifiedCertificates", Field, 20, ""}, + {"CipherSuite", Type, 14, ""}, + {"CipherSuite.ID", Field, 14, ""}, + {"CipherSuite.Insecure", Field, 14, ""}, + {"CipherSuite.Name", Field, 14, ""}, + {"CipherSuite.SupportedVersions", Field, 14, ""}, + {"CipherSuiteName", Func, 14, "func(id uint16) string"}, + {"CipherSuites", Func, 14, "func() []*CipherSuite"}, + {"Client", Func, 0, "func(conn net.Conn, config *Config) *Conn"}, + {"ClientAuthType", Type, 0, ""}, + {"ClientHelloInfo", Type, 4, ""}, + {"ClientHelloInfo.CipherSuites", Field, 4, ""}, + {"ClientHelloInfo.Conn", Field, 8, ""}, + {"ClientHelloInfo.Extensions", Field, 24, ""}, + {"ClientHelloInfo.ServerName", Field, 4, ""}, + {"ClientHelloInfo.SignatureSchemes", Field, 8, ""}, + {"ClientHelloInfo.SupportedCurves", Field, 4, ""}, + {"ClientHelloInfo.SupportedPoints", Field, 4, ""}, + {"ClientHelloInfo.SupportedProtos", Field, 8, ""}, + {"ClientHelloInfo.SupportedVersions", Field, 8, ""}, + {"ClientSessionCache", Type, 3, ""}, + {"ClientSessionState", Type, 3, ""}, + {"Config", Type, 0, ""}, + {"Config.Certificates", Field, 0, ""}, + {"Config.CipherSuites", Field, 0, ""}, + {"Config.ClientAuth", Field, 0, ""}, + {"Config.ClientCAs", Field, 0, ""}, + {"Config.ClientSessionCache", Field, 3, ""}, + {"Config.CurvePreferences", Field, 3, ""}, + {"Config.DynamicRecordSizingDisabled", Field, 7, ""}, + {"Config.EncryptedClientHelloConfigList", Field, 23, ""}, + {"Config.EncryptedClientHelloKeys", Field, 24, ""}, + {"Config.EncryptedClientHelloRejectionVerify", Field, 23, ""}, + {"Config.GetCertificate", Field, 4, ""}, + {"Config.GetClientCertificate", Field, 8, ""}, + {"Config.GetConfigForClient", Field, 8, ""}, + {"Config.InsecureSkipVerify", Field, 0, ""}, + {"Config.KeyLogWriter", Field, 8, ""}, + {"Config.MaxVersion", Field, 2, ""}, + {"Config.MinVersion", Field, 2, ""}, + {"Config.NameToCertificate", Field, 0, ""}, + {"Config.NextProtos", Field, 0, ""}, + {"Config.PreferServerCipherSuites", Field, 1, ""}, + {"Config.Rand", Field, 0, ""}, + {"Config.Renegotiation", Field, 7, ""}, + {"Config.RootCAs", Field, 0, ""}, + {"Config.ServerName", Field, 0, ""}, + {"Config.SessionTicketKey", Field, 1, ""}, + {"Config.SessionTicketsDisabled", Field, 1, ""}, + {"Config.Time", Field, 0, ""}, + {"Config.UnwrapSession", Field, 21, ""}, + {"Config.VerifyConnection", Field, 15, ""}, + {"Config.VerifyPeerCertificate", Field, 8, ""}, + {"Config.WrapSession", Field, 21, ""}, + {"Conn", Type, 0, ""}, + {"ConnectionState", Type, 0, ""}, + {"ConnectionState.CipherSuite", Field, 0, ""}, + {"ConnectionState.CurveID", Field, 25, ""}, + {"ConnectionState.DidResume", Field, 1, ""}, + {"ConnectionState.ECHAccepted", Field, 23, ""}, + {"ConnectionState.HandshakeComplete", Field, 0, ""}, + {"ConnectionState.NegotiatedProtocol", Field, 0, ""}, + {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0, ""}, + {"ConnectionState.OCSPResponse", Field, 5, ""}, + {"ConnectionState.PeerCertificates", Field, 0, ""}, + {"ConnectionState.ServerName", Field, 0, ""}, + {"ConnectionState.SignedCertificateTimestamps", Field, 5, ""}, + {"ConnectionState.TLSUnique", Field, 4, ""}, + {"ConnectionState.VerifiedChains", Field, 0, ""}, + {"ConnectionState.Version", Field, 3, ""}, + {"CurveID", Type, 3, ""}, + {"CurveP256", Const, 3, ""}, + {"CurveP384", Const, 3, ""}, + {"CurveP521", Const, 3, ""}, + {"Dial", Func, 0, "func(network string, addr string, config *Config) (*Conn, error)"}, + {"DialWithDialer", Func, 3, "func(dialer *net.Dialer, network string, addr string, config *Config) (*Conn, error)"}, + {"Dialer", Type, 15, ""}, + {"Dialer.Config", Field, 15, ""}, + {"Dialer.NetDialer", Field, 15, ""}, + {"ECDSAWithP256AndSHA256", Const, 8, ""}, + {"ECDSAWithP384AndSHA384", Const, 8, ""}, + {"ECDSAWithP521AndSHA512", Const, 8, ""}, + {"ECDSAWithSHA1", Const, 10, ""}, + {"ECHRejectionError", Type, 23, ""}, + {"ECHRejectionError.RetryConfigList", Field, 23, ""}, + {"Ed25519", Const, 13, ""}, + {"EncryptedClientHelloKey", Type, 24, ""}, + {"EncryptedClientHelloKey.Config", Field, 24, ""}, + {"EncryptedClientHelloKey.PrivateKey", Field, 24, ""}, + {"EncryptedClientHelloKey.SendAsRetry", Field, 24, ""}, + {"InsecureCipherSuites", Func, 14, "func() []*CipherSuite"}, + {"Listen", Func, 0, "func(network string, laddr string, config *Config) (net.Listener, error)"}, + {"LoadX509KeyPair", Func, 0, "func(certFile string, keyFile string) (Certificate, error)"}, + {"NewLRUClientSessionCache", Func, 3, "func(capacity int) ClientSessionCache"}, + {"NewListener", Func, 0, "func(inner net.Listener, config *Config) net.Listener"}, + {"NewResumptionState", Func, 21, "func(ticket []byte, state *SessionState) (*ClientSessionState, error)"}, + {"NoClientCert", Const, 0, ""}, + {"PKCS1WithSHA1", Const, 8, ""}, + {"PKCS1WithSHA256", Const, 8, ""}, + {"PKCS1WithSHA384", Const, 8, ""}, + {"PKCS1WithSHA512", Const, 8, ""}, + {"PSSWithSHA256", Const, 8, ""}, + {"PSSWithSHA384", Const, 8, ""}, + {"PSSWithSHA512", Const, 8, ""}, + {"ParseSessionState", Func, 21, "func(data []byte) (*SessionState, error)"}, + {"QUICClient", Func, 21, "func(config *QUICConfig) *QUICConn"}, + {"QUICConfig", Type, 21, ""}, + {"QUICConfig.EnableSessionEvents", Field, 23, ""}, + {"QUICConfig.TLSConfig", Field, 21, ""}, + {"QUICConn", Type, 21, ""}, + {"QUICEncryptionLevel", Type, 21, ""}, + {"QUICEncryptionLevelApplication", Const, 21, ""}, + {"QUICEncryptionLevelEarly", Const, 21, ""}, + {"QUICEncryptionLevelHandshake", Const, 21, ""}, + {"QUICEncryptionLevelInitial", Const, 21, ""}, + {"QUICEvent", Type, 21, ""}, + {"QUICEvent.Data", Field, 21, ""}, + {"QUICEvent.Kind", Field, 21, ""}, + {"QUICEvent.Level", Field, 21, ""}, + {"QUICEvent.SessionState", Field, 23, ""}, + {"QUICEvent.Suite", Field, 21, ""}, + {"QUICEventKind", Type, 21, ""}, + {"QUICHandshakeDone", Const, 21, ""}, + {"QUICNoEvent", Const, 21, ""}, + {"QUICRejectedEarlyData", Const, 21, ""}, + {"QUICResumeSession", Const, 23, ""}, + {"QUICServer", Func, 21, "func(config *QUICConfig) *QUICConn"}, + {"QUICSessionTicketOptions", Type, 21, ""}, + {"QUICSessionTicketOptions.EarlyData", Field, 21, ""}, + {"QUICSessionTicketOptions.Extra", Field, 23, ""}, + {"QUICSetReadSecret", Const, 21, ""}, + {"QUICSetWriteSecret", Const, 21, ""}, + {"QUICStoreSession", Const, 23, ""}, + {"QUICTransportParameters", Const, 21, ""}, + {"QUICTransportParametersRequired", Const, 21, ""}, + {"QUICWriteData", Const, 21, ""}, + {"RecordHeaderError", Type, 6, ""}, + {"RecordHeaderError.Conn", Field, 12, ""}, + {"RecordHeaderError.Msg", Field, 6, ""}, + {"RecordHeaderError.RecordHeader", Field, 6, ""}, + {"RenegotiateFreelyAsClient", Const, 7, ""}, + {"RenegotiateNever", Const, 7, ""}, + {"RenegotiateOnceAsClient", Const, 7, ""}, + {"RenegotiationSupport", Type, 7, ""}, + {"RequestClientCert", Const, 0, ""}, + {"RequireAndVerifyClientCert", Const, 0, ""}, + {"RequireAnyClientCert", Const, 0, ""}, + {"Server", Func, 0, "func(conn net.Conn, config *Config) *Conn"}, + {"SessionState", Type, 21, ""}, + {"SessionState.EarlyData", Field, 21, ""}, + {"SessionState.Extra", Field, 21, ""}, + {"SignatureScheme", Type, 8, ""}, + {"TLS_AES_128_GCM_SHA256", Const, 12, ""}, + {"TLS_AES_256_GCM_SHA384", Const, 12, ""}, + {"TLS_CHACHA20_POLY1305_SHA256", Const, 12, ""}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2, ""}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2, ""}, + {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2, ""}, + {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5, ""}, + {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8, ""}, + {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""}, + {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2, ""}, + {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""}, + {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""}, + {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, + {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2, ""}, + {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""}, + {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5, ""}, + {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8, ""}, + {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""}, + {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0, ""}, + {"TLS_FALLBACK_SCSV", Const, 4, ""}, + {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""}, + {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""}, + {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, + {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6, ""}, + {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""}, + {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6, ""}, + {"TLS_RSA_WITH_RC4_128_SHA", Const, 0, ""}, + {"VerifyClientCertIfGiven", Const, 0, ""}, + {"VersionName", Func, 21, "func(version uint16) string"}, + {"VersionSSL30", Const, 2, ""}, + {"VersionTLS10", Const, 2, ""}, + {"VersionTLS11", Const, 2, ""}, + {"VersionTLS12", Const, 2, ""}, + {"VersionTLS13", Const, 12, ""}, + {"X25519", Const, 8, ""}, + {"X25519MLKEM768", Const, 24, ""}, + {"X509KeyPair", Func, 0, "func(certPEMBlock []byte, keyPEMBlock []byte) (Certificate, error)"}, + }, + "crypto/x509": { + {"(*CertPool).AddCert", Method, 0, ""}, + {"(*CertPool).AddCertWithConstraint", Method, 22, ""}, + {"(*CertPool).AppendCertsFromPEM", Method, 0, ""}, + {"(*CertPool).Clone", Method, 19, ""}, + {"(*CertPool).Equal", Method, 19, ""}, + {"(*CertPool).Subjects", Method, 0, ""}, + {"(*Certificate).CheckCRLSignature", Method, 0, ""}, + {"(*Certificate).CheckSignature", Method, 0, ""}, + {"(*Certificate).CheckSignatureFrom", Method, 0, ""}, + {"(*Certificate).CreateCRL", Method, 0, ""}, + {"(*Certificate).Equal", Method, 0, ""}, + {"(*Certificate).Verify", Method, 0, ""}, + {"(*Certificate).VerifyHostname", Method, 0, ""}, + {"(*CertificateRequest).CheckSignature", Method, 5, ""}, + {"(*OID).UnmarshalBinary", Method, 23, ""}, + {"(*OID).UnmarshalText", Method, 23, ""}, + {"(*RevocationList).CheckSignatureFrom", Method, 19, ""}, + {"(CertificateInvalidError).Error", Method, 0, ""}, + {"(ConstraintViolationError).Error", Method, 0, ""}, + {"(HostnameError).Error", Method, 0, ""}, + {"(InsecureAlgorithmError).Error", Method, 6, ""}, + {"(OID).AppendBinary", Method, 24, ""}, + {"(OID).AppendText", Method, 24, ""}, + {"(OID).Equal", Method, 22, ""}, + {"(OID).EqualASN1OID", Method, 22, ""}, + {"(OID).MarshalBinary", Method, 23, ""}, + {"(OID).MarshalText", Method, 23, ""}, + {"(OID).String", Method, 22, ""}, + {"(PublicKeyAlgorithm).String", Method, 10, ""}, + {"(SignatureAlgorithm).String", Method, 6, ""}, + {"(SystemRootsError).Error", Method, 1, ""}, + {"(SystemRootsError).Unwrap", Method, 16, ""}, + {"(UnhandledCriticalExtension).Error", Method, 0, ""}, + {"(UnknownAuthorityError).Error", Method, 0, ""}, + {"CANotAuthorizedForExtKeyUsage", Const, 10, ""}, + {"CANotAuthorizedForThisName", Const, 0, ""}, + {"CertPool", Type, 0, ""}, + {"Certificate", Type, 0, ""}, + {"Certificate.AuthorityKeyId", Field, 0, ""}, + {"Certificate.BasicConstraintsValid", Field, 0, ""}, + {"Certificate.CRLDistributionPoints", Field, 2, ""}, + {"Certificate.DNSNames", Field, 0, ""}, + {"Certificate.EmailAddresses", Field, 0, ""}, + {"Certificate.ExcludedDNSDomains", Field, 9, ""}, + {"Certificate.ExcludedEmailAddresses", Field, 10, ""}, + {"Certificate.ExcludedIPRanges", Field, 10, ""}, + {"Certificate.ExcludedURIDomains", Field, 10, ""}, + {"Certificate.ExtKeyUsage", Field, 0, ""}, + {"Certificate.Extensions", Field, 2, ""}, + {"Certificate.ExtraExtensions", Field, 2, ""}, + {"Certificate.IPAddresses", Field, 1, ""}, + {"Certificate.InhibitAnyPolicy", Field, 24, ""}, + {"Certificate.InhibitAnyPolicyZero", Field, 24, ""}, + {"Certificate.InhibitPolicyMapping", Field, 24, ""}, + {"Certificate.InhibitPolicyMappingZero", Field, 24, ""}, + {"Certificate.IsCA", Field, 0, ""}, + {"Certificate.Issuer", Field, 0, ""}, + {"Certificate.IssuingCertificateURL", Field, 2, ""}, + {"Certificate.KeyUsage", Field, 0, ""}, + {"Certificate.MaxPathLen", Field, 0, ""}, + {"Certificate.MaxPathLenZero", Field, 4, ""}, + {"Certificate.NotAfter", Field, 0, ""}, + {"Certificate.NotBefore", Field, 0, ""}, + {"Certificate.OCSPServer", Field, 2, ""}, + {"Certificate.PermittedDNSDomains", Field, 0, ""}, + {"Certificate.PermittedDNSDomainsCritical", Field, 0, ""}, + {"Certificate.PermittedEmailAddresses", Field, 10, ""}, + {"Certificate.PermittedIPRanges", Field, 10, ""}, + {"Certificate.PermittedURIDomains", Field, 10, ""}, + {"Certificate.Policies", Field, 22, ""}, + {"Certificate.PolicyIdentifiers", Field, 0, ""}, + {"Certificate.PolicyMappings", Field, 24, ""}, + {"Certificate.PublicKey", Field, 0, ""}, + {"Certificate.PublicKeyAlgorithm", Field, 0, ""}, + {"Certificate.Raw", Field, 0, ""}, + {"Certificate.RawIssuer", Field, 0, ""}, + {"Certificate.RawSubject", Field, 0, ""}, + {"Certificate.RawSubjectPublicKeyInfo", Field, 0, ""}, + {"Certificate.RawTBSCertificate", Field, 0, ""}, + {"Certificate.RequireExplicitPolicy", Field, 24, ""}, + {"Certificate.RequireExplicitPolicyZero", Field, 24, ""}, + {"Certificate.SerialNumber", Field, 0, ""}, + {"Certificate.Signature", Field, 0, ""}, + {"Certificate.SignatureAlgorithm", Field, 0, ""}, + {"Certificate.Subject", Field, 0, ""}, + {"Certificate.SubjectKeyId", Field, 0, ""}, + {"Certificate.URIs", Field, 10, ""}, + {"Certificate.UnhandledCriticalExtensions", Field, 5, ""}, + {"Certificate.UnknownExtKeyUsage", Field, 0, ""}, + {"Certificate.Version", Field, 0, ""}, + {"CertificateInvalidError", Type, 0, ""}, + {"CertificateInvalidError.Cert", Field, 0, ""}, + {"CertificateInvalidError.Detail", Field, 10, ""}, + {"CertificateInvalidError.Reason", Field, 0, ""}, + {"CertificateRequest", Type, 3, ""}, + {"CertificateRequest.Attributes", Field, 3, ""}, + {"CertificateRequest.DNSNames", Field, 3, ""}, + {"CertificateRequest.EmailAddresses", Field, 3, ""}, + {"CertificateRequest.Extensions", Field, 3, ""}, + {"CertificateRequest.ExtraExtensions", Field, 3, ""}, + {"CertificateRequest.IPAddresses", Field, 3, ""}, + {"CertificateRequest.PublicKey", Field, 3, ""}, + {"CertificateRequest.PublicKeyAlgorithm", Field, 3, ""}, + {"CertificateRequest.Raw", Field, 3, ""}, + {"CertificateRequest.RawSubject", Field, 3, ""}, + {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3, ""}, + {"CertificateRequest.RawTBSCertificateRequest", Field, 3, ""}, + {"CertificateRequest.Signature", Field, 3, ""}, + {"CertificateRequest.SignatureAlgorithm", Field, 3, ""}, + {"CertificateRequest.Subject", Field, 3, ""}, + {"CertificateRequest.URIs", Field, 10, ""}, + {"CertificateRequest.Version", Field, 3, ""}, + {"ConstraintViolationError", Type, 0, ""}, + {"CreateCertificate", Func, 0, "func(rand io.Reader, template *Certificate, parent *Certificate, pub any, priv any) ([]byte, error)"}, + {"CreateCertificateRequest", Func, 3, "func(rand io.Reader, template *CertificateRequest, priv any) (csr []byte, err error)"}, + {"CreateRevocationList", Func, 15, "func(rand io.Reader, template *RevocationList, issuer *Certificate, priv crypto.Signer) ([]byte, error)"}, + {"DSA", Const, 0, ""}, + {"DSAWithSHA1", Const, 0, ""}, + {"DSAWithSHA256", Const, 0, ""}, + {"DecryptPEMBlock", Func, 1, "func(b *pem.Block, password []byte) ([]byte, error)"}, + {"ECDSA", Const, 1, ""}, + {"ECDSAWithSHA1", Const, 1, ""}, + {"ECDSAWithSHA256", Const, 1, ""}, + {"ECDSAWithSHA384", Const, 1, ""}, + {"ECDSAWithSHA512", Const, 1, ""}, + {"Ed25519", Const, 13, ""}, + {"EncryptPEMBlock", Func, 1, "func(rand io.Reader, blockType string, data []byte, password []byte, alg PEMCipher) (*pem.Block, error)"}, + {"ErrUnsupportedAlgorithm", Var, 0, ""}, + {"Expired", Const, 0, ""}, + {"ExtKeyUsage", Type, 0, ""}, + {"ExtKeyUsageAny", Const, 0, ""}, + {"ExtKeyUsageClientAuth", Const, 0, ""}, + {"ExtKeyUsageCodeSigning", Const, 0, ""}, + {"ExtKeyUsageEmailProtection", Const, 0, ""}, + {"ExtKeyUsageIPSECEndSystem", Const, 1, ""}, + {"ExtKeyUsageIPSECTunnel", Const, 1, ""}, + {"ExtKeyUsageIPSECUser", Const, 1, ""}, + {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10, ""}, + {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10, ""}, + {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1, ""}, + {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1, ""}, + {"ExtKeyUsageOCSPSigning", Const, 0, ""}, + {"ExtKeyUsageServerAuth", Const, 0, ""}, + {"ExtKeyUsageTimeStamping", Const, 0, ""}, + {"HostnameError", Type, 0, ""}, + {"HostnameError.Certificate", Field, 0, ""}, + {"HostnameError.Host", Field, 0, ""}, + {"IncompatibleUsage", Const, 1, ""}, + {"IncorrectPasswordError", Var, 1, ""}, + {"InsecureAlgorithmError", Type, 6, ""}, + {"InvalidReason", Type, 0, ""}, + {"IsEncryptedPEMBlock", Func, 1, "func(b *pem.Block) bool"}, + {"KeyUsage", Type, 0, ""}, + {"KeyUsageCRLSign", Const, 0, ""}, + {"KeyUsageCertSign", Const, 0, ""}, + {"KeyUsageContentCommitment", Const, 0, ""}, + {"KeyUsageDataEncipherment", Const, 0, ""}, + {"KeyUsageDecipherOnly", Const, 0, ""}, + {"KeyUsageDigitalSignature", Const, 0, ""}, + {"KeyUsageEncipherOnly", Const, 0, ""}, + {"KeyUsageKeyAgreement", Const, 0, ""}, + {"KeyUsageKeyEncipherment", Const, 0, ""}, + {"MD2WithRSA", Const, 0, ""}, + {"MD5WithRSA", Const, 0, ""}, + {"MarshalECPrivateKey", Func, 2, "func(key *ecdsa.PrivateKey) ([]byte, error)"}, + {"MarshalPKCS1PrivateKey", Func, 0, "func(key *rsa.PrivateKey) []byte"}, + {"MarshalPKCS1PublicKey", Func, 10, "func(key *rsa.PublicKey) []byte"}, + {"MarshalPKCS8PrivateKey", Func, 10, "func(key any) ([]byte, error)"}, + {"MarshalPKIXPublicKey", Func, 0, "func(pub any) ([]byte, error)"}, + {"NameConstraintsWithoutSANs", Const, 10, ""}, + {"NameMismatch", Const, 8, ""}, + {"NewCertPool", Func, 0, "func() *CertPool"}, + {"NoValidChains", Const, 24, ""}, + {"NotAuthorizedToSign", Const, 0, ""}, + {"OID", Type, 22, ""}, + {"OIDFromInts", Func, 22, "func(oid []uint64) (OID, error)"}, + {"PEMCipher", Type, 1, ""}, + {"PEMCipher3DES", Const, 1, ""}, + {"PEMCipherAES128", Const, 1, ""}, + {"PEMCipherAES192", Const, 1, ""}, + {"PEMCipherAES256", Const, 1, ""}, + {"PEMCipherDES", Const, 1, ""}, + {"ParseCRL", Func, 0, "func(crlBytes []byte) (*pkix.CertificateList, error)"}, + {"ParseCertificate", Func, 0, "func(der []byte) (*Certificate, error)"}, + {"ParseCertificateRequest", Func, 3, "func(asn1Data []byte) (*CertificateRequest, error)"}, + {"ParseCertificates", Func, 0, "func(der []byte) ([]*Certificate, error)"}, + {"ParseDERCRL", Func, 0, "func(derBytes []byte) (*pkix.CertificateList, error)"}, + {"ParseECPrivateKey", Func, 1, "func(der []byte) (*ecdsa.PrivateKey, error)"}, + {"ParseOID", Func, 23, "func(oid string) (OID, error)"}, + {"ParsePKCS1PrivateKey", Func, 0, "func(der []byte) (*rsa.PrivateKey, error)"}, + {"ParsePKCS1PublicKey", Func, 10, "func(der []byte) (*rsa.PublicKey, error)"}, + {"ParsePKCS8PrivateKey", Func, 0, "func(der []byte) (key any, err error)"}, + {"ParsePKIXPublicKey", Func, 0, "func(derBytes []byte) (pub any, err error)"}, + {"ParseRevocationList", Func, 19, "func(der []byte) (*RevocationList, error)"}, + {"PolicyMapping", Type, 24, ""}, + {"PolicyMapping.IssuerDomainPolicy", Field, 24, ""}, + {"PolicyMapping.SubjectDomainPolicy", Field, 24, ""}, + {"PublicKeyAlgorithm", Type, 0, ""}, + {"PureEd25519", Const, 13, ""}, + {"RSA", Const, 0, ""}, + {"RevocationList", Type, 15, ""}, + {"RevocationList.AuthorityKeyId", Field, 19, ""}, + {"RevocationList.Extensions", Field, 19, ""}, + {"RevocationList.ExtraExtensions", Field, 15, ""}, + {"RevocationList.Issuer", Field, 19, ""}, + {"RevocationList.NextUpdate", Field, 15, ""}, + {"RevocationList.Number", Field, 15, ""}, + {"RevocationList.Raw", Field, 19, ""}, + {"RevocationList.RawIssuer", Field, 19, ""}, + {"RevocationList.RawTBSRevocationList", Field, 19, ""}, + {"RevocationList.RevokedCertificateEntries", Field, 21, ""}, + {"RevocationList.RevokedCertificates", Field, 15, ""}, + {"RevocationList.Signature", Field, 19, ""}, + {"RevocationList.SignatureAlgorithm", Field, 15, ""}, + {"RevocationList.ThisUpdate", Field, 15, ""}, + {"RevocationListEntry", Type, 21, ""}, + {"RevocationListEntry.Extensions", Field, 21, ""}, + {"RevocationListEntry.ExtraExtensions", Field, 21, ""}, + {"RevocationListEntry.Raw", Field, 21, ""}, + {"RevocationListEntry.ReasonCode", Field, 21, ""}, + {"RevocationListEntry.RevocationTime", Field, 21, ""}, + {"RevocationListEntry.SerialNumber", Field, 21, ""}, + {"SHA1WithRSA", Const, 0, ""}, + {"SHA256WithRSA", Const, 0, ""}, + {"SHA256WithRSAPSS", Const, 8, ""}, + {"SHA384WithRSA", Const, 0, ""}, + {"SHA384WithRSAPSS", Const, 8, ""}, + {"SHA512WithRSA", Const, 0, ""}, + {"SHA512WithRSAPSS", Const, 8, ""}, + {"SetFallbackRoots", Func, 20, "func(roots *CertPool)"}, + {"SignatureAlgorithm", Type, 0, ""}, + {"SystemCertPool", Func, 7, "func() (*CertPool, error)"}, + {"SystemRootsError", Type, 1, ""}, + {"SystemRootsError.Err", Field, 7, ""}, + {"TooManyConstraints", Const, 10, ""}, + {"TooManyIntermediates", Const, 0, ""}, + {"UnconstrainedName", Const, 10, ""}, + {"UnhandledCriticalExtension", Type, 0, ""}, + {"UnknownAuthorityError", Type, 0, ""}, + {"UnknownAuthorityError.Cert", Field, 8, ""}, + {"UnknownPublicKeyAlgorithm", Const, 0, ""}, + {"UnknownSignatureAlgorithm", Const, 0, ""}, + {"VerifyOptions", Type, 0, ""}, + {"VerifyOptions.CertificatePolicies", Field, 24, ""}, + {"VerifyOptions.CurrentTime", Field, 0, ""}, + {"VerifyOptions.DNSName", Field, 0, ""}, + {"VerifyOptions.Intermediates", Field, 0, ""}, + {"VerifyOptions.KeyUsages", Field, 1, ""}, + {"VerifyOptions.MaxConstraintComparisions", Field, 10, ""}, + {"VerifyOptions.Roots", Field, 0, ""}, + }, + "crypto/x509/pkix": { + {"(*CertificateList).HasExpired", Method, 0, ""}, + {"(*Name).FillFromRDNSequence", Method, 0, ""}, + {"(Name).String", Method, 10, ""}, + {"(Name).ToRDNSequence", Method, 0, ""}, + {"(RDNSequence).String", Method, 10, ""}, + {"AlgorithmIdentifier", Type, 0, ""}, + {"AlgorithmIdentifier.Algorithm", Field, 0, ""}, + {"AlgorithmIdentifier.Parameters", Field, 0, ""}, + {"AttributeTypeAndValue", Type, 0, ""}, + {"AttributeTypeAndValue.Type", Field, 0, ""}, + {"AttributeTypeAndValue.Value", Field, 0, ""}, + {"AttributeTypeAndValueSET", Type, 3, ""}, + {"AttributeTypeAndValueSET.Type", Field, 3, ""}, + {"AttributeTypeAndValueSET.Value", Field, 3, ""}, + {"CertificateList", Type, 0, ""}, + {"CertificateList.SignatureAlgorithm", Field, 0, ""}, + {"CertificateList.SignatureValue", Field, 0, ""}, + {"CertificateList.TBSCertList", Field, 0, ""}, + {"Extension", Type, 0, ""}, + {"Extension.Critical", Field, 0, ""}, + {"Extension.Id", Field, 0, ""}, + {"Extension.Value", Field, 0, ""}, + {"Name", Type, 0, ""}, + {"Name.CommonName", Field, 0, ""}, + {"Name.Country", Field, 0, ""}, + {"Name.ExtraNames", Field, 5, ""}, + {"Name.Locality", Field, 0, ""}, + {"Name.Names", Field, 0, ""}, + {"Name.Organization", Field, 0, ""}, + {"Name.OrganizationalUnit", Field, 0, ""}, + {"Name.PostalCode", Field, 0, ""}, + {"Name.Province", Field, 0, ""}, + {"Name.SerialNumber", Field, 0, ""}, + {"Name.StreetAddress", Field, 0, ""}, + {"RDNSequence", Type, 0, ""}, + {"RelativeDistinguishedNameSET", Type, 0, ""}, + {"RevokedCertificate", Type, 0, ""}, + {"RevokedCertificate.Extensions", Field, 0, ""}, + {"RevokedCertificate.RevocationTime", Field, 0, ""}, + {"RevokedCertificate.SerialNumber", Field, 0, ""}, + {"TBSCertificateList", Type, 0, ""}, + {"TBSCertificateList.Extensions", Field, 0, ""}, + {"TBSCertificateList.Issuer", Field, 0, ""}, + {"TBSCertificateList.NextUpdate", Field, 0, ""}, + {"TBSCertificateList.Raw", Field, 0, ""}, + {"TBSCertificateList.RevokedCertificates", Field, 0, ""}, + {"TBSCertificateList.Signature", Field, 0, ""}, + {"TBSCertificateList.ThisUpdate", Field, 0, ""}, + {"TBSCertificateList.Version", Field, 0, ""}, + }, + "database/sql": { + {"(*ColumnType).DatabaseTypeName", Method, 8, ""}, + {"(*ColumnType).DecimalSize", Method, 8, ""}, + {"(*ColumnType).Length", Method, 8, ""}, + {"(*ColumnType).Name", Method, 8, ""}, + {"(*ColumnType).Nullable", Method, 8, ""}, + {"(*ColumnType).ScanType", Method, 8, ""}, + {"(*Conn).BeginTx", Method, 9, ""}, + {"(*Conn).Close", Method, 9, ""}, + {"(*Conn).ExecContext", Method, 9, ""}, + {"(*Conn).PingContext", Method, 9, ""}, + {"(*Conn).PrepareContext", Method, 9, ""}, + {"(*Conn).QueryContext", Method, 9, ""}, + {"(*Conn).QueryRowContext", Method, 9, ""}, + {"(*Conn).Raw", Method, 13, ""}, + {"(*DB).Begin", Method, 0, ""}, + {"(*DB).BeginTx", Method, 8, ""}, + {"(*DB).Close", Method, 0, ""}, + {"(*DB).Conn", Method, 9, ""}, + {"(*DB).Driver", Method, 0, ""}, + {"(*DB).Exec", Method, 0, ""}, + {"(*DB).ExecContext", Method, 8, ""}, + {"(*DB).Ping", Method, 1, ""}, + {"(*DB).PingContext", Method, 8, ""}, + {"(*DB).Prepare", Method, 0, ""}, + {"(*DB).PrepareContext", Method, 8, ""}, + {"(*DB).Query", Method, 0, ""}, + {"(*DB).QueryContext", Method, 8, ""}, + {"(*DB).QueryRow", Method, 0, ""}, + {"(*DB).QueryRowContext", Method, 8, ""}, + {"(*DB).SetConnMaxIdleTime", Method, 15, ""}, + {"(*DB).SetConnMaxLifetime", Method, 6, ""}, + {"(*DB).SetMaxIdleConns", Method, 1, ""}, + {"(*DB).SetMaxOpenConns", Method, 2, ""}, + {"(*DB).Stats", Method, 5, ""}, + {"(*Null).Scan", Method, 22, ""}, + {"(*NullBool).Scan", Method, 0, ""}, + {"(*NullByte).Scan", Method, 17, ""}, + {"(*NullFloat64).Scan", Method, 0, ""}, + {"(*NullInt16).Scan", Method, 17, ""}, + {"(*NullInt32).Scan", Method, 13, ""}, + {"(*NullInt64).Scan", Method, 0, ""}, + {"(*NullString).Scan", Method, 0, ""}, + {"(*NullTime).Scan", Method, 13, ""}, + {"(*Row).Err", Method, 15, ""}, + {"(*Row).Scan", Method, 0, ""}, + {"(*Rows).Close", Method, 0, ""}, + {"(*Rows).ColumnTypes", Method, 8, ""}, + {"(*Rows).Columns", Method, 0, ""}, + {"(*Rows).Err", Method, 0, ""}, + {"(*Rows).Next", Method, 0, ""}, + {"(*Rows).NextResultSet", Method, 8, ""}, + {"(*Rows).Scan", Method, 0, ""}, + {"(*Stmt).Close", Method, 0, ""}, + {"(*Stmt).Exec", Method, 0, ""}, + {"(*Stmt).ExecContext", Method, 8, ""}, + {"(*Stmt).Query", Method, 0, ""}, + {"(*Stmt).QueryContext", Method, 8, ""}, + {"(*Stmt).QueryRow", Method, 0, ""}, + {"(*Stmt).QueryRowContext", Method, 8, ""}, + {"(*Tx).Commit", Method, 0, ""}, + {"(*Tx).Exec", Method, 0, ""}, + {"(*Tx).ExecContext", Method, 8, ""}, + {"(*Tx).Prepare", Method, 0, ""}, + {"(*Tx).PrepareContext", Method, 8, ""}, + {"(*Tx).Query", Method, 0, ""}, + {"(*Tx).QueryContext", Method, 8, ""}, + {"(*Tx).QueryRow", Method, 0, ""}, + {"(*Tx).QueryRowContext", Method, 8, ""}, + {"(*Tx).Rollback", Method, 0, ""}, + {"(*Tx).Stmt", Method, 0, ""}, + {"(*Tx).StmtContext", Method, 8, ""}, + {"(IsolationLevel).String", Method, 11, ""}, + {"(Null).Value", Method, 22, ""}, + {"(NullBool).Value", Method, 0, ""}, + {"(NullByte).Value", Method, 17, ""}, + {"(NullFloat64).Value", Method, 0, ""}, + {"(NullInt16).Value", Method, 17, ""}, + {"(NullInt32).Value", Method, 13, ""}, + {"(NullInt64).Value", Method, 0, ""}, + {"(NullString).Value", Method, 0, ""}, + {"(NullTime).Value", Method, 13, ""}, + {"ColumnType", Type, 8, ""}, + {"Conn", Type, 9, ""}, + {"DB", Type, 0, ""}, + {"DBStats", Type, 5, ""}, + {"DBStats.Idle", Field, 11, ""}, + {"DBStats.InUse", Field, 11, ""}, + {"DBStats.MaxIdleClosed", Field, 11, ""}, + {"DBStats.MaxIdleTimeClosed", Field, 15, ""}, + {"DBStats.MaxLifetimeClosed", Field, 11, ""}, + {"DBStats.MaxOpenConnections", Field, 11, ""}, + {"DBStats.OpenConnections", Field, 5, ""}, + {"DBStats.WaitCount", Field, 11, ""}, + {"DBStats.WaitDuration", Field, 11, ""}, + {"Drivers", Func, 4, "func() []string"}, + {"ErrConnDone", Var, 9, ""}, + {"ErrNoRows", Var, 0, ""}, + {"ErrTxDone", Var, 0, ""}, + {"IsolationLevel", Type, 8, ""}, + {"LevelDefault", Const, 8, ""}, + {"LevelLinearizable", Const, 8, ""}, + {"LevelReadCommitted", Const, 8, ""}, + {"LevelReadUncommitted", Const, 8, ""}, + {"LevelRepeatableRead", Const, 8, ""}, + {"LevelSerializable", Const, 8, ""}, + {"LevelSnapshot", Const, 8, ""}, + {"LevelWriteCommitted", Const, 8, ""}, + {"Named", Func, 8, "func(name string, value any) NamedArg"}, + {"NamedArg", Type, 8, ""}, + {"NamedArg.Name", Field, 8, ""}, + {"NamedArg.Value", Field, 8, ""}, + {"Null", Type, 22, ""}, + {"Null.V", Field, 22, ""}, + {"Null.Valid", Field, 22, ""}, + {"NullBool", Type, 0, ""}, + {"NullBool.Bool", Field, 0, ""}, + {"NullBool.Valid", Field, 0, ""}, + {"NullByte", Type, 17, ""}, + {"NullByte.Byte", Field, 17, ""}, + {"NullByte.Valid", Field, 17, ""}, + {"NullFloat64", Type, 0, ""}, + {"NullFloat64.Float64", Field, 0, ""}, + {"NullFloat64.Valid", Field, 0, ""}, + {"NullInt16", Type, 17, ""}, + {"NullInt16.Int16", Field, 17, ""}, + {"NullInt16.Valid", Field, 17, ""}, + {"NullInt32", Type, 13, ""}, + {"NullInt32.Int32", Field, 13, ""}, + {"NullInt32.Valid", Field, 13, ""}, + {"NullInt64", Type, 0, ""}, + {"NullInt64.Int64", Field, 0, ""}, + {"NullInt64.Valid", Field, 0, ""}, + {"NullString", Type, 0, ""}, + {"NullString.String", Field, 0, ""}, + {"NullString.Valid", Field, 0, ""}, + {"NullTime", Type, 13, ""}, + {"NullTime.Time", Field, 13, ""}, + {"NullTime.Valid", Field, 13, ""}, + {"Open", Func, 0, "func(driverName string, dataSourceName string) (*DB, error)"}, + {"OpenDB", Func, 10, "func(c driver.Connector) *DB"}, + {"Out", Type, 9, ""}, + {"Out.Dest", Field, 9, ""}, + {"Out.In", Field, 9, ""}, + {"RawBytes", Type, 0, ""}, + {"Register", Func, 0, "func(name string, driver driver.Driver)"}, + {"Result", Type, 0, ""}, + {"Row", Type, 0, ""}, + {"Rows", Type, 0, ""}, + {"Scanner", Type, 0, ""}, + {"Stmt", Type, 0, ""}, + {"Tx", Type, 0, ""}, + {"TxOptions", Type, 8, ""}, + {"TxOptions.Isolation", Field, 8, ""}, + {"TxOptions.ReadOnly", Field, 8, ""}, + }, + "database/sql/driver": { + {"(NotNull).ConvertValue", Method, 0, ""}, + {"(Null).ConvertValue", Method, 0, ""}, + {"(RowsAffected).LastInsertId", Method, 0, ""}, + {"(RowsAffected).RowsAffected", Method, 0, ""}, + {"Bool", Var, 0, ""}, + {"ColumnConverter", Type, 0, ""}, + {"Conn", Type, 0, ""}, + {"ConnBeginTx", Type, 8, ""}, + {"ConnPrepareContext", Type, 8, ""}, + {"Connector", Type, 10, ""}, + {"DefaultParameterConverter", Var, 0, ""}, + {"Driver", Type, 0, ""}, + {"DriverContext", Type, 10, ""}, + {"ErrBadConn", Var, 0, ""}, + {"ErrRemoveArgument", Var, 9, ""}, + {"ErrSkip", Var, 0, ""}, + {"Execer", Type, 0, ""}, + {"ExecerContext", Type, 8, ""}, + {"Int32", Var, 0, ""}, + {"IsScanValue", Func, 0, "func(v any) bool"}, + {"IsValue", Func, 0, "func(v any) bool"}, + {"IsolationLevel", Type, 8, ""}, + {"NamedValue", Type, 8, ""}, + {"NamedValue.Name", Field, 8, ""}, + {"NamedValue.Ordinal", Field, 8, ""}, + {"NamedValue.Value", Field, 8, ""}, + {"NamedValueChecker", Type, 9, ""}, + {"NotNull", Type, 0, ""}, + {"NotNull.Converter", Field, 0, ""}, + {"Null", Type, 0, ""}, + {"Null.Converter", Field, 0, ""}, + {"Pinger", Type, 8, ""}, + {"Queryer", Type, 1, ""}, + {"QueryerContext", Type, 8, ""}, + {"Result", Type, 0, ""}, + {"ResultNoRows", Var, 0, ""}, + {"Rows", Type, 0, ""}, + {"RowsAffected", Type, 0, ""}, + {"RowsColumnTypeDatabaseTypeName", Type, 8, ""}, + {"RowsColumnTypeLength", Type, 8, ""}, + {"RowsColumnTypeNullable", Type, 8, ""}, + {"RowsColumnTypePrecisionScale", Type, 8, ""}, + {"RowsColumnTypeScanType", Type, 8, ""}, + {"RowsNextResultSet", Type, 8, ""}, + {"SessionResetter", Type, 10, ""}, + {"Stmt", Type, 0, ""}, + {"StmtExecContext", Type, 8, ""}, + {"StmtQueryContext", Type, 8, ""}, + {"String", Var, 0, ""}, + {"Tx", Type, 0, ""}, + {"TxOptions", Type, 8, ""}, + {"TxOptions.Isolation", Field, 8, ""}, + {"TxOptions.ReadOnly", Field, 8, ""}, + {"Validator", Type, 15, ""}, + {"Value", Type, 0, ""}, + {"ValueConverter", Type, 0, ""}, + {"Valuer", Type, 0, ""}, + }, + "debug/buildinfo": { + {"BuildInfo", Type, 18, ""}, + {"Read", Func, 18, "func(r io.ReaderAt) (*BuildInfo, error)"}, + {"ReadFile", Func, 18, "func(name string) (info *BuildInfo, err error)"}, + }, + "debug/dwarf": { + {"(*AddrType).Basic", Method, 0, ""}, + {"(*AddrType).Common", Method, 0, ""}, + {"(*AddrType).Size", Method, 0, ""}, + {"(*AddrType).String", Method, 0, ""}, + {"(*ArrayType).Common", Method, 0, ""}, + {"(*ArrayType).Size", Method, 0, ""}, + {"(*ArrayType).String", Method, 0, ""}, + {"(*BasicType).Basic", Method, 0, ""}, + {"(*BasicType).Common", Method, 0, ""}, + {"(*BasicType).Size", Method, 0, ""}, + {"(*BasicType).String", Method, 0, ""}, + {"(*BoolType).Basic", Method, 0, ""}, + {"(*BoolType).Common", Method, 0, ""}, + {"(*BoolType).Size", Method, 0, ""}, + {"(*BoolType).String", Method, 0, ""}, + {"(*CharType).Basic", Method, 0, ""}, + {"(*CharType).Common", Method, 0, ""}, + {"(*CharType).Size", Method, 0, ""}, + {"(*CharType).String", Method, 0, ""}, + {"(*CommonType).Common", Method, 0, ""}, + {"(*CommonType).Size", Method, 0, ""}, + {"(*ComplexType).Basic", Method, 0, ""}, + {"(*ComplexType).Common", Method, 0, ""}, + {"(*ComplexType).Size", Method, 0, ""}, + {"(*ComplexType).String", Method, 0, ""}, + {"(*Data).AddSection", Method, 14, ""}, + {"(*Data).AddTypes", Method, 3, ""}, + {"(*Data).LineReader", Method, 5, ""}, + {"(*Data).Ranges", Method, 7, ""}, + {"(*Data).Reader", Method, 0, ""}, + {"(*Data).Type", Method, 0, ""}, + {"(*DotDotDotType).Common", Method, 0, ""}, + {"(*DotDotDotType).Size", Method, 0, ""}, + {"(*DotDotDotType).String", Method, 0, ""}, + {"(*Entry).AttrField", Method, 5, ""}, + {"(*Entry).Val", Method, 0, ""}, + {"(*EnumType).Common", Method, 0, ""}, + {"(*EnumType).Size", Method, 0, ""}, + {"(*EnumType).String", Method, 0, ""}, + {"(*FloatType).Basic", Method, 0, ""}, + {"(*FloatType).Common", Method, 0, ""}, + {"(*FloatType).Size", Method, 0, ""}, + {"(*FloatType).String", Method, 0, ""}, + {"(*FuncType).Common", Method, 0, ""}, + {"(*FuncType).Size", Method, 0, ""}, + {"(*FuncType).String", Method, 0, ""}, + {"(*IntType).Basic", Method, 0, ""}, + {"(*IntType).Common", Method, 0, ""}, + {"(*IntType).Size", Method, 0, ""}, + {"(*IntType).String", Method, 0, ""}, + {"(*LineReader).Files", Method, 14, ""}, + {"(*LineReader).Next", Method, 5, ""}, + {"(*LineReader).Reset", Method, 5, ""}, + {"(*LineReader).Seek", Method, 5, ""}, + {"(*LineReader).SeekPC", Method, 5, ""}, + {"(*LineReader).Tell", Method, 5, ""}, + {"(*PtrType).Common", Method, 0, ""}, + {"(*PtrType).Size", Method, 0, ""}, + {"(*PtrType).String", Method, 0, ""}, + {"(*QualType).Common", Method, 0, ""}, + {"(*QualType).Size", Method, 0, ""}, + {"(*QualType).String", Method, 0, ""}, + {"(*Reader).AddressSize", Method, 5, ""}, + {"(*Reader).ByteOrder", Method, 14, ""}, + {"(*Reader).Next", Method, 0, ""}, + {"(*Reader).Seek", Method, 0, ""}, + {"(*Reader).SeekPC", Method, 7, ""}, + {"(*Reader).SkipChildren", Method, 0, ""}, + {"(*StructType).Common", Method, 0, ""}, + {"(*StructType).Defn", Method, 0, ""}, + {"(*StructType).Size", Method, 0, ""}, + {"(*StructType).String", Method, 0, ""}, + {"(*TypedefType).Common", Method, 0, ""}, + {"(*TypedefType).Size", Method, 0, ""}, + {"(*TypedefType).String", Method, 0, ""}, + {"(*UcharType).Basic", Method, 0, ""}, + {"(*UcharType).Common", Method, 0, ""}, + {"(*UcharType).Size", Method, 0, ""}, + {"(*UcharType).String", Method, 0, ""}, + {"(*UintType).Basic", Method, 0, ""}, + {"(*UintType).Common", Method, 0, ""}, + {"(*UintType).Size", Method, 0, ""}, + {"(*UintType).String", Method, 0, ""}, + {"(*UnspecifiedType).Basic", Method, 4, ""}, + {"(*UnspecifiedType).Common", Method, 4, ""}, + {"(*UnspecifiedType).Size", Method, 4, ""}, + {"(*UnspecifiedType).String", Method, 4, ""}, + {"(*UnsupportedType).Common", Method, 13, ""}, + {"(*UnsupportedType).Size", Method, 13, ""}, + {"(*UnsupportedType).String", Method, 13, ""}, + {"(*VoidType).Common", Method, 0, ""}, + {"(*VoidType).Size", Method, 0, ""}, + {"(*VoidType).String", Method, 0, ""}, + {"(Attr).GoString", Method, 0, ""}, + {"(Attr).String", Method, 0, ""}, + {"(Class).GoString", Method, 5, ""}, + {"(Class).String", Method, 5, ""}, + {"(DecodeError).Error", Method, 0, ""}, + {"(Tag).GoString", Method, 0, ""}, + {"(Tag).String", Method, 0, ""}, + {"AddrType", Type, 0, ""}, + {"AddrType.BasicType", Field, 0, ""}, + {"ArrayType", Type, 0, ""}, + {"ArrayType.CommonType", Field, 0, ""}, + {"ArrayType.Count", Field, 0, ""}, + {"ArrayType.StrideBitSize", Field, 0, ""}, + {"ArrayType.Type", Field, 0, ""}, + {"Attr", Type, 0, ""}, + {"AttrAbstractOrigin", Const, 0, ""}, + {"AttrAccessibility", Const, 0, ""}, + {"AttrAddrBase", Const, 14, ""}, + {"AttrAddrClass", Const, 0, ""}, + {"AttrAlignment", Const, 14, ""}, + {"AttrAllocated", Const, 0, ""}, + {"AttrArtificial", Const, 0, ""}, + {"AttrAssociated", Const, 0, ""}, + {"AttrBaseTypes", Const, 0, ""}, + {"AttrBinaryScale", Const, 14, ""}, + {"AttrBitOffset", Const, 0, ""}, + {"AttrBitSize", Const, 0, ""}, + {"AttrByteSize", Const, 0, ""}, + {"AttrCallAllCalls", Const, 14, ""}, + {"AttrCallAllSourceCalls", Const, 14, ""}, + {"AttrCallAllTailCalls", Const, 14, ""}, + {"AttrCallColumn", Const, 0, ""}, + {"AttrCallDataLocation", Const, 14, ""}, + {"AttrCallDataValue", Const, 14, ""}, + {"AttrCallFile", Const, 0, ""}, + {"AttrCallLine", Const, 0, ""}, + {"AttrCallOrigin", Const, 14, ""}, + {"AttrCallPC", Const, 14, ""}, + {"AttrCallParameter", Const, 14, ""}, + {"AttrCallReturnPC", Const, 14, ""}, + {"AttrCallTailCall", Const, 14, ""}, + {"AttrCallTarget", Const, 14, ""}, + {"AttrCallTargetClobbered", Const, 14, ""}, + {"AttrCallValue", Const, 14, ""}, + {"AttrCalling", Const, 0, ""}, + {"AttrCommonRef", Const, 0, ""}, + {"AttrCompDir", Const, 0, ""}, + {"AttrConstExpr", Const, 14, ""}, + {"AttrConstValue", Const, 0, ""}, + {"AttrContainingType", Const, 0, ""}, + {"AttrCount", Const, 0, ""}, + {"AttrDataBitOffset", Const, 14, ""}, + {"AttrDataLocation", Const, 0, ""}, + {"AttrDataMemberLoc", Const, 0, ""}, + {"AttrDecimalScale", Const, 14, ""}, + {"AttrDecimalSign", Const, 14, ""}, + {"AttrDeclColumn", Const, 0, ""}, + {"AttrDeclFile", Const, 0, ""}, + {"AttrDeclLine", Const, 0, ""}, + {"AttrDeclaration", Const, 0, ""}, + {"AttrDefaultValue", Const, 0, ""}, + {"AttrDefaulted", Const, 14, ""}, + {"AttrDeleted", Const, 14, ""}, + {"AttrDescription", Const, 0, ""}, + {"AttrDigitCount", Const, 14, ""}, + {"AttrDiscr", Const, 0, ""}, + {"AttrDiscrList", Const, 0, ""}, + {"AttrDiscrValue", Const, 0, ""}, + {"AttrDwoName", Const, 14, ""}, + {"AttrElemental", Const, 14, ""}, + {"AttrEncoding", Const, 0, ""}, + {"AttrEndianity", Const, 14, ""}, + {"AttrEntrypc", Const, 0, ""}, + {"AttrEnumClass", Const, 14, ""}, + {"AttrExplicit", Const, 14, ""}, + {"AttrExportSymbols", Const, 14, ""}, + {"AttrExtension", Const, 0, ""}, + {"AttrExternal", Const, 0, ""}, + {"AttrFrameBase", Const, 0, ""}, + {"AttrFriend", Const, 0, ""}, + {"AttrHighpc", Const, 0, ""}, + {"AttrIdentifierCase", Const, 0, ""}, + {"AttrImport", Const, 0, ""}, + {"AttrInline", Const, 0, ""}, + {"AttrIsOptional", Const, 0, ""}, + {"AttrLanguage", Const, 0, ""}, + {"AttrLinkageName", Const, 14, ""}, + {"AttrLocation", Const, 0, ""}, + {"AttrLoclistsBase", Const, 14, ""}, + {"AttrLowerBound", Const, 0, ""}, + {"AttrLowpc", Const, 0, ""}, + {"AttrMacroInfo", Const, 0, ""}, + {"AttrMacros", Const, 14, ""}, + {"AttrMainSubprogram", Const, 14, ""}, + {"AttrMutable", Const, 14, ""}, + {"AttrName", Const, 0, ""}, + {"AttrNamelistItem", Const, 0, ""}, + {"AttrNoreturn", Const, 14, ""}, + {"AttrObjectPointer", Const, 14, ""}, + {"AttrOrdering", Const, 0, ""}, + {"AttrPictureString", Const, 14, ""}, + {"AttrPriority", Const, 0, ""}, + {"AttrProducer", Const, 0, ""}, + {"AttrPrototyped", Const, 0, ""}, + {"AttrPure", Const, 14, ""}, + {"AttrRanges", Const, 0, ""}, + {"AttrRank", Const, 14, ""}, + {"AttrRecursive", Const, 14, ""}, + {"AttrReference", Const, 14, ""}, + {"AttrReturnAddr", Const, 0, ""}, + {"AttrRnglistsBase", Const, 14, ""}, + {"AttrRvalueReference", Const, 14, ""}, + {"AttrSegment", Const, 0, ""}, + {"AttrSibling", Const, 0, ""}, + {"AttrSignature", Const, 14, ""}, + {"AttrSmall", Const, 14, ""}, + {"AttrSpecification", Const, 0, ""}, + {"AttrStartScope", Const, 0, ""}, + {"AttrStaticLink", Const, 0, ""}, + {"AttrStmtList", Const, 0, ""}, + {"AttrStrOffsetsBase", Const, 14, ""}, + {"AttrStride", Const, 0, ""}, + {"AttrStrideSize", Const, 0, ""}, + {"AttrStringLength", Const, 0, ""}, + {"AttrStringLengthBitSize", Const, 14, ""}, + {"AttrStringLengthByteSize", Const, 14, ""}, + {"AttrThreadsScaled", Const, 14, ""}, + {"AttrTrampoline", Const, 0, ""}, + {"AttrType", Const, 0, ""}, + {"AttrUpperBound", Const, 0, ""}, + {"AttrUseLocation", Const, 0, ""}, + {"AttrUseUTF8", Const, 0, ""}, + {"AttrVarParam", Const, 0, ""}, + {"AttrVirtuality", Const, 0, ""}, + {"AttrVisibility", Const, 0, ""}, + {"AttrVtableElemLoc", Const, 0, ""}, + {"BasicType", Type, 0, ""}, + {"BasicType.BitOffset", Field, 0, ""}, + {"BasicType.BitSize", Field, 0, ""}, + {"BasicType.CommonType", Field, 0, ""}, + {"BasicType.DataBitOffset", Field, 18, ""}, + {"BoolType", Type, 0, ""}, + {"BoolType.BasicType", Field, 0, ""}, + {"CharType", Type, 0, ""}, + {"CharType.BasicType", Field, 0, ""}, + {"Class", Type, 5, ""}, + {"ClassAddrPtr", Const, 14, ""}, + {"ClassAddress", Const, 5, ""}, + {"ClassBlock", Const, 5, ""}, + {"ClassConstant", Const, 5, ""}, + {"ClassExprLoc", Const, 5, ""}, + {"ClassFlag", Const, 5, ""}, + {"ClassLinePtr", Const, 5, ""}, + {"ClassLocList", Const, 14, ""}, + {"ClassLocListPtr", Const, 5, ""}, + {"ClassMacPtr", Const, 5, ""}, + {"ClassRangeListPtr", Const, 5, ""}, + {"ClassReference", Const, 5, ""}, + {"ClassReferenceAlt", Const, 5, ""}, + {"ClassReferenceSig", Const, 5, ""}, + {"ClassRngList", Const, 14, ""}, + {"ClassRngListsPtr", Const, 14, ""}, + {"ClassStrOffsetsPtr", Const, 14, ""}, + {"ClassString", Const, 5, ""}, + {"ClassStringAlt", Const, 5, ""}, + {"ClassUnknown", Const, 6, ""}, + {"CommonType", Type, 0, ""}, + {"CommonType.ByteSize", Field, 0, ""}, + {"CommonType.Name", Field, 0, ""}, + {"ComplexType", Type, 0, ""}, + {"ComplexType.BasicType", Field, 0, ""}, + {"Data", Type, 0, ""}, + {"DecodeError", Type, 0, ""}, + {"DecodeError.Err", Field, 0, ""}, + {"DecodeError.Name", Field, 0, ""}, + {"DecodeError.Offset", Field, 0, ""}, + {"DotDotDotType", Type, 0, ""}, + {"DotDotDotType.CommonType", Field, 0, ""}, + {"Entry", Type, 0, ""}, + {"Entry.Children", Field, 0, ""}, + {"Entry.Field", Field, 0, ""}, + {"Entry.Offset", Field, 0, ""}, + {"Entry.Tag", Field, 0, ""}, + {"EnumType", Type, 0, ""}, + {"EnumType.CommonType", Field, 0, ""}, + {"EnumType.EnumName", Field, 0, ""}, + {"EnumType.Val", Field, 0, ""}, + {"EnumValue", Type, 0, ""}, + {"EnumValue.Name", Field, 0, ""}, + {"EnumValue.Val", Field, 0, ""}, + {"ErrUnknownPC", Var, 5, ""}, + {"Field", Type, 0, ""}, + {"Field.Attr", Field, 0, ""}, + {"Field.Class", Field, 5, ""}, + {"Field.Val", Field, 0, ""}, + {"FloatType", Type, 0, ""}, + {"FloatType.BasicType", Field, 0, ""}, + {"FuncType", Type, 0, ""}, + {"FuncType.CommonType", Field, 0, ""}, + {"FuncType.ParamType", Field, 0, ""}, + {"FuncType.ReturnType", Field, 0, ""}, + {"IntType", Type, 0, ""}, + {"IntType.BasicType", Field, 0, ""}, + {"LineEntry", Type, 5, ""}, + {"LineEntry.Address", Field, 5, ""}, + {"LineEntry.BasicBlock", Field, 5, ""}, + {"LineEntry.Column", Field, 5, ""}, + {"LineEntry.Discriminator", Field, 5, ""}, + {"LineEntry.EndSequence", Field, 5, ""}, + {"LineEntry.EpilogueBegin", Field, 5, ""}, + {"LineEntry.File", Field, 5, ""}, + {"LineEntry.ISA", Field, 5, ""}, + {"LineEntry.IsStmt", Field, 5, ""}, + {"LineEntry.Line", Field, 5, ""}, + {"LineEntry.OpIndex", Field, 5, ""}, + {"LineEntry.PrologueEnd", Field, 5, ""}, + {"LineFile", Type, 5, ""}, + {"LineFile.Length", Field, 5, ""}, + {"LineFile.Mtime", Field, 5, ""}, + {"LineFile.Name", Field, 5, ""}, + {"LineReader", Type, 5, ""}, + {"LineReaderPos", Type, 5, ""}, + {"New", Func, 0, "func(abbrev []byte, aranges []byte, frame []byte, info []byte, line []byte, pubnames []byte, ranges []byte, str []byte) (*Data, error)"}, + {"Offset", Type, 0, ""}, + {"PtrType", Type, 0, ""}, + {"PtrType.CommonType", Field, 0, ""}, + {"PtrType.Type", Field, 0, ""}, + {"QualType", Type, 0, ""}, + {"QualType.CommonType", Field, 0, ""}, + {"QualType.Qual", Field, 0, ""}, + {"QualType.Type", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"StructField", Type, 0, ""}, + {"StructField.BitOffset", Field, 0, ""}, + {"StructField.BitSize", Field, 0, ""}, + {"StructField.ByteOffset", Field, 0, ""}, + {"StructField.ByteSize", Field, 0, ""}, + {"StructField.DataBitOffset", Field, 18, ""}, + {"StructField.Name", Field, 0, ""}, + {"StructField.Type", Field, 0, ""}, + {"StructType", Type, 0, ""}, + {"StructType.CommonType", Field, 0, ""}, + {"StructType.Field", Field, 0, ""}, + {"StructType.Incomplete", Field, 0, ""}, + {"StructType.Kind", Field, 0, ""}, + {"StructType.StructName", Field, 0, ""}, + {"Tag", Type, 0, ""}, + {"TagAccessDeclaration", Const, 0, ""}, + {"TagArrayType", Const, 0, ""}, + {"TagAtomicType", Const, 14, ""}, + {"TagBaseType", Const, 0, ""}, + {"TagCallSite", Const, 14, ""}, + {"TagCallSiteParameter", Const, 14, ""}, + {"TagCatchDwarfBlock", Const, 0, ""}, + {"TagClassType", Const, 0, ""}, + {"TagCoarrayType", Const, 14, ""}, + {"TagCommonDwarfBlock", Const, 0, ""}, + {"TagCommonInclusion", Const, 0, ""}, + {"TagCompileUnit", Const, 0, ""}, + {"TagCondition", Const, 3, ""}, + {"TagConstType", Const, 0, ""}, + {"TagConstant", Const, 0, ""}, + {"TagDwarfProcedure", Const, 0, ""}, + {"TagDynamicType", Const, 14, ""}, + {"TagEntryPoint", Const, 0, ""}, + {"TagEnumerationType", Const, 0, ""}, + {"TagEnumerator", Const, 0, ""}, + {"TagFileType", Const, 0, ""}, + {"TagFormalParameter", Const, 0, ""}, + {"TagFriend", Const, 0, ""}, + {"TagGenericSubrange", Const, 14, ""}, + {"TagImmutableType", Const, 14, ""}, + {"TagImportedDeclaration", Const, 0, ""}, + {"TagImportedModule", Const, 0, ""}, + {"TagImportedUnit", Const, 0, ""}, + {"TagInheritance", Const, 0, ""}, + {"TagInlinedSubroutine", Const, 0, ""}, + {"TagInterfaceType", Const, 0, ""}, + {"TagLabel", Const, 0, ""}, + {"TagLexDwarfBlock", Const, 0, ""}, + {"TagMember", Const, 0, ""}, + {"TagModule", Const, 0, ""}, + {"TagMutableType", Const, 0, ""}, + {"TagNamelist", Const, 0, ""}, + {"TagNamelistItem", Const, 0, ""}, + {"TagNamespace", Const, 0, ""}, + {"TagPackedType", Const, 0, ""}, + {"TagPartialUnit", Const, 0, ""}, + {"TagPointerType", Const, 0, ""}, + {"TagPtrToMemberType", Const, 0, ""}, + {"TagReferenceType", Const, 0, ""}, + {"TagRestrictType", Const, 0, ""}, + {"TagRvalueReferenceType", Const, 3, ""}, + {"TagSetType", Const, 0, ""}, + {"TagSharedType", Const, 3, ""}, + {"TagSkeletonUnit", Const, 14, ""}, + {"TagStringType", Const, 0, ""}, + {"TagStructType", Const, 0, ""}, + {"TagSubprogram", Const, 0, ""}, + {"TagSubrangeType", Const, 0, ""}, + {"TagSubroutineType", Const, 0, ""}, + {"TagTemplateAlias", Const, 3, ""}, + {"TagTemplateTypeParameter", Const, 0, ""}, + {"TagTemplateValueParameter", Const, 0, ""}, + {"TagThrownType", Const, 0, ""}, + {"TagTryDwarfBlock", Const, 0, ""}, + {"TagTypeUnit", Const, 3, ""}, + {"TagTypedef", Const, 0, ""}, + {"TagUnionType", Const, 0, ""}, + {"TagUnspecifiedParameters", Const, 0, ""}, + {"TagUnspecifiedType", Const, 0, ""}, + {"TagVariable", Const, 0, ""}, + {"TagVariant", Const, 0, ""}, + {"TagVariantPart", Const, 0, ""}, + {"TagVolatileType", Const, 0, ""}, + {"TagWithStmt", Const, 0, ""}, + {"Type", Type, 0, ""}, + {"TypedefType", Type, 0, ""}, + {"TypedefType.CommonType", Field, 0, ""}, + {"TypedefType.Type", Field, 0, ""}, + {"UcharType", Type, 0, ""}, + {"UcharType.BasicType", Field, 0, ""}, + {"UintType", Type, 0, ""}, + {"UintType.BasicType", Field, 0, ""}, + {"UnspecifiedType", Type, 4, ""}, + {"UnspecifiedType.BasicType", Field, 4, ""}, + {"UnsupportedType", Type, 13, ""}, + {"UnsupportedType.CommonType", Field, 13, ""}, + {"UnsupportedType.Tag", Field, 13, ""}, + {"VoidType", Type, 0, ""}, + {"VoidType.CommonType", Field, 0, ""}, + }, + "debug/elf": { + {"(*File).Close", Method, 0, ""}, + {"(*File).DWARF", Method, 0, ""}, + {"(*File).DynString", Method, 1, ""}, + {"(*File).DynValue", Method, 21, ""}, + {"(*File).DynamicSymbols", Method, 4, ""}, + {"(*File).DynamicVersionNeeds", Method, 24, ""}, + {"(*File).DynamicVersions", Method, 24, ""}, + {"(*File).ImportedLibraries", Method, 0, ""}, + {"(*File).ImportedSymbols", Method, 0, ""}, + {"(*File).Section", Method, 0, ""}, + {"(*File).SectionByType", Method, 0, ""}, + {"(*File).Symbols", Method, 0, ""}, + {"(*FormatError).Error", Method, 0, ""}, + {"(*Prog).Open", Method, 0, ""}, + {"(*Section).Data", Method, 0, ""}, + {"(*Section).Open", Method, 0, ""}, + {"(Class).GoString", Method, 0, ""}, + {"(Class).String", Method, 0, ""}, + {"(CompressionType).GoString", Method, 6, ""}, + {"(CompressionType).String", Method, 6, ""}, + {"(Data).GoString", Method, 0, ""}, + {"(Data).String", Method, 0, ""}, + {"(DynFlag).GoString", Method, 0, ""}, + {"(DynFlag).String", Method, 0, ""}, + {"(DynFlag1).GoString", Method, 21, ""}, + {"(DynFlag1).String", Method, 21, ""}, + {"(DynTag).GoString", Method, 0, ""}, + {"(DynTag).String", Method, 0, ""}, + {"(Machine).GoString", Method, 0, ""}, + {"(Machine).String", Method, 0, ""}, + {"(NType).GoString", Method, 0, ""}, + {"(NType).String", Method, 0, ""}, + {"(OSABI).GoString", Method, 0, ""}, + {"(OSABI).String", Method, 0, ""}, + {"(Prog).ReadAt", Method, 0, ""}, + {"(ProgFlag).GoString", Method, 0, ""}, + {"(ProgFlag).String", Method, 0, ""}, + {"(ProgType).GoString", Method, 0, ""}, + {"(ProgType).String", Method, 0, ""}, + {"(R_386).GoString", Method, 0, ""}, + {"(R_386).String", Method, 0, ""}, + {"(R_390).GoString", Method, 7, ""}, + {"(R_390).String", Method, 7, ""}, + {"(R_AARCH64).GoString", Method, 4, ""}, + {"(R_AARCH64).String", Method, 4, ""}, + {"(R_ALPHA).GoString", Method, 0, ""}, + {"(R_ALPHA).String", Method, 0, ""}, + {"(R_ARM).GoString", Method, 0, ""}, + {"(R_ARM).String", Method, 0, ""}, + {"(R_LARCH).GoString", Method, 19, ""}, + {"(R_LARCH).String", Method, 19, ""}, + {"(R_MIPS).GoString", Method, 6, ""}, + {"(R_MIPS).String", Method, 6, ""}, + {"(R_PPC).GoString", Method, 0, ""}, + {"(R_PPC).String", Method, 0, ""}, + {"(R_PPC64).GoString", Method, 5, ""}, + {"(R_PPC64).String", Method, 5, ""}, + {"(R_RISCV).GoString", Method, 11, ""}, + {"(R_RISCV).String", Method, 11, ""}, + {"(R_SPARC).GoString", Method, 0, ""}, + {"(R_SPARC).String", Method, 0, ""}, + {"(R_X86_64).GoString", Method, 0, ""}, + {"(R_X86_64).String", Method, 0, ""}, + {"(Section).ReadAt", Method, 0, ""}, + {"(SectionFlag).GoString", Method, 0, ""}, + {"(SectionFlag).String", Method, 0, ""}, + {"(SectionIndex).GoString", Method, 0, ""}, + {"(SectionIndex).String", Method, 0, ""}, + {"(SectionType).GoString", Method, 0, ""}, + {"(SectionType).String", Method, 0, ""}, + {"(SymBind).GoString", Method, 0, ""}, + {"(SymBind).String", Method, 0, ""}, + {"(SymType).GoString", Method, 0, ""}, + {"(SymType).String", Method, 0, ""}, + {"(SymVis).GoString", Method, 0, ""}, + {"(SymVis).String", Method, 0, ""}, + {"(Type).GoString", Method, 0, ""}, + {"(Type).String", Method, 0, ""}, + {"(Version).GoString", Method, 0, ""}, + {"(Version).String", Method, 0, ""}, + {"(VersionIndex).Index", Method, 24, ""}, + {"(VersionIndex).IsHidden", Method, 24, ""}, + {"ARM_MAGIC_TRAMP_NUMBER", Const, 0, ""}, + {"COMPRESS_HIOS", Const, 6, ""}, + {"COMPRESS_HIPROC", Const, 6, ""}, + {"COMPRESS_LOOS", Const, 6, ""}, + {"COMPRESS_LOPROC", Const, 6, ""}, + {"COMPRESS_ZLIB", Const, 6, ""}, + {"COMPRESS_ZSTD", Const, 21, ""}, + {"Chdr32", Type, 6, ""}, + {"Chdr32.Addralign", Field, 6, ""}, + {"Chdr32.Size", Field, 6, ""}, + {"Chdr32.Type", Field, 6, ""}, + {"Chdr64", Type, 6, ""}, + {"Chdr64.Addralign", Field, 6, ""}, + {"Chdr64.Size", Field, 6, ""}, + {"Chdr64.Type", Field, 6, ""}, + {"Class", Type, 0, ""}, + {"CompressionType", Type, 6, ""}, + {"DF_1_CONFALT", Const, 21, ""}, + {"DF_1_DIRECT", Const, 21, ""}, + {"DF_1_DISPRELDNE", Const, 21, ""}, + {"DF_1_DISPRELPND", Const, 21, ""}, + {"DF_1_EDITED", Const, 21, ""}, + {"DF_1_ENDFILTEE", Const, 21, ""}, + {"DF_1_GLOBAL", Const, 21, ""}, + {"DF_1_GLOBAUDIT", Const, 21, ""}, + {"DF_1_GROUP", Const, 21, ""}, + {"DF_1_IGNMULDEF", Const, 21, ""}, + {"DF_1_INITFIRST", Const, 21, ""}, + {"DF_1_INTERPOSE", Const, 21, ""}, + {"DF_1_KMOD", Const, 21, ""}, + {"DF_1_LOADFLTR", Const, 21, ""}, + {"DF_1_NOCOMMON", Const, 21, ""}, + {"DF_1_NODEFLIB", Const, 21, ""}, + {"DF_1_NODELETE", Const, 21, ""}, + {"DF_1_NODIRECT", Const, 21, ""}, + {"DF_1_NODUMP", Const, 21, ""}, + {"DF_1_NOHDR", Const, 21, ""}, + {"DF_1_NOKSYMS", Const, 21, ""}, + {"DF_1_NOOPEN", Const, 21, ""}, + {"DF_1_NORELOC", Const, 21, ""}, + {"DF_1_NOW", Const, 21, ""}, + {"DF_1_ORIGIN", Const, 21, ""}, + {"DF_1_PIE", Const, 21, ""}, + {"DF_1_SINGLETON", Const, 21, ""}, + {"DF_1_STUB", Const, 21, ""}, + {"DF_1_SYMINTPOSE", Const, 21, ""}, + {"DF_1_TRANS", Const, 21, ""}, + {"DF_1_WEAKFILTER", Const, 21, ""}, + {"DF_BIND_NOW", Const, 0, ""}, + {"DF_ORIGIN", Const, 0, ""}, + {"DF_STATIC_TLS", Const, 0, ""}, + {"DF_SYMBOLIC", Const, 0, ""}, + {"DF_TEXTREL", Const, 0, ""}, + {"DT_ADDRRNGHI", Const, 16, ""}, + {"DT_ADDRRNGLO", Const, 16, ""}, + {"DT_AUDIT", Const, 16, ""}, + {"DT_AUXILIARY", Const, 16, ""}, + {"DT_BIND_NOW", Const, 0, ""}, + {"DT_CHECKSUM", Const, 16, ""}, + {"DT_CONFIG", Const, 16, ""}, + {"DT_DEBUG", Const, 0, ""}, + {"DT_DEPAUDIT", Const, 16, ""}, + {"DT_ENCODING", Const, 0, ""}, + {"DT_FEATURE", Const, 16, ""}, + {"DT_FILTER", Const, 16, ""}, + {"DT_FINI", Const, 0, ""}, + {"DT_FINI_ARRAY", Const, 0, ""}, + {"DT_FINI_ARRAYSZ", Const, 0, ""}, + {"DT_FLAGS", Const, 0, ""}, + {"DT_FLAGS_1", Const, 16, ""}, + {"DT_GNU_CONFLICT", Const, 16, ""}, + {"DT_GNU_CONFLICTSZ", Const, 16, ""}, + {"DT_GNU_HASH", Const, 16, ""}, + {"DT_GNU_LIBLIST", Const, 16, ""}, + {"DT_GNU_LIBLISTSZ", Const, 16, ""}, + {"DT_GNU_PRELINKED", Const, 16, ""}, + {"DT_HASH", Const, 0, ""}, + {"DT_HIOS", Const, 0, ""}, + {"DT_HIPROC", Const, 0, ""}, + {"DT_INIT", Const, 0, ""}, + {"DT_INIT_ARRAY", Const, 0, ""}, + {"DT_INIT_ARRAYSZ", Const, 0, ""}, + {"DT_JMPREL", Const, 0, ""}, + {"DT_LOOS", Const, 0, ""}, + {"DT_LOPROC", Const, 0, ""}, + {"DT_MIPS_AUX_DYNAMIC", Const, 16, ""}, + {"DT_MIPS_BASE_ADDRESS", Const, 16, ""}, + {"DT_MIPS_COMPACT_SIZE", Const, 16, ""}, + {"DT_MIPS_CONFLICT", Const, 16, ""}, + {"DT_MIPS_CONFLICTNO", Const, 16, ""}, + {"DT_MIPS_CXX_FLAGS", Const, 16, ""}, + {"DT_MIPS_DELTA_CLASS", Const, 16, ""}, + {"DT_MIPS_DELTA_CLASSSYM", Const, 16, ""}, + {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16, ""}, + {"DT_MIPS_DELTA_CLASS_NO", Const, 16, ""}, + {"DT_MIPS_DELTA_INSTANCE", Const, 16, ""}, + {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16, ""}, + {"DT_MIPS_DELTA_RELOC", Const, 16, ""}, + {"DT_MIPS_DELTA_RELOC_NO", Const, 16, ""}, + {"DT_MIPS_DELTA_SYM", Const, 16, ""}, + {"DT_MIPS_DELTA_SYM_NO", Const, 16, ""}, + {"DT_MIPS_DYNSTR_ALIGN", Const, 16, ""}, + {"DT_MIPS_FLAGS", Const, 16, ""}, + {"DT_MIPS_GOTSYM", Const, 16, ""}, + {"DT_MIPS_GP_VALUE", Const, 16, ""}, + {"DT_MIPS_HIDDEN_GOTIDX", Const, 16, ""}, + {"DT_MIPS_HIPAGENO", Const, 16, ""}, + {"DT_MIPS_ICHECKSUM", Const, 16, ""}, + {"DT_MIPS_INTERFACE", Const, 16, ""}, + {"DT_MIPS_INTERFACE_SIZE", Const, 16, ""}, + {"DT_MIPS_IVERSION", Const, 16, ""}, + {"DT_MIPS_LIBLIST", Const, 16, ""}, + {"DT_MIPS_LIBLISTNO", Const, 16, ""}, + {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16, ""}, + {"DT_MIPS_LOCAL_GOTIDX", Const, 16, ""}, + {"DT_MIPS_LOCAL_GOTNO", Const, 16, ""}, + {"DT_MIPS_MSYM", Const, 16, ""}, + {"DT_MIPS_OPTIONS", Const, 16, ""}, + {"DT_MIPS_PERF_SUFFIX", Const, 16, ""}, + {"DT_MIPS_PIXIE_INIT", Const, 16, ""}, + {"DT_MIPS_PLTGOT", Const, 16, ""}, + {"DT_MIPS_PROTECTED_GOTIDX", Const, 16, ""}, + {"DT_MIPS_RLD_MAP", Const, 16, ""}, + {"DT_MIPS_RLD_MAP_REL", Const, 16, ""}, + {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16, ""}, + {"DT_MIPS_RLD_VERSION", Const, 16, ""}, + {"DT_MIPS_RWPLT", Const, 16, ""}, + {"DT_MIPS_SYMBOL_LIB", Const, 16, ""}, + {"DT_MIPS_SYMTABNO", Const, 16, ""}, + {"DT_MIPS_TIME_STAMP", Const, 16, ""}, + {"DT_MIPS_UNREFEXTNO", Const, 16, ""}, + {"DT_MOVEENT", Const, 16, ""}, + {"DT_MOVESZ", Const, 16, ""}, + {"DT_MOVETAB", Const, 16, ""}, + {"DT_NEEDED", Const, 0, ""}, + {"DT_NULL", Const, 0, ""}, + {"DT_PLTGOT", Const, 0, ""}, + {"DT_PLTPAD", Const, 16, ""}, + {"DT_PLTPADSZ", Const, 16, ""}, + {"DT_PLTREL", Const, 0, ""}, + {"DT_PLTRELSZ", Const, 0, ""}, + {"DT_POSFLAG_1", Const, 16, ""}, + {"DT_PPC64_GLINK", Const, 16, ""}, + {"DT_PPC64_OPD", Const, 16, ""}, + {"DT_PPC64_OPDSZ", Const, 16, ""}, + {"DT_PPC64_OPT", Const, 16, ""}, + {"DT_PPC_GOT", Const, 16, ""}, + {"DT_PPC_OPT", Const, 16, ""}, + {"DT_PREINIT_ARRAY", Const, 0, ""}, + {"DT_PREINIT_ARRAYSZ", Const, 0, ""}, + {"DT_REL", Const, 0, ""}, + {"DT_RELA", Const, 0, ""}, + {"DT_RELACOUNT", Const, 16, ""}, + {"DT_RELAENT", Const, 0, ""}, + {"DT_RELASZ", Const, 0, ""}, + {"DT_RELCOUNT", Const, 16, ""}, + {"DT_RELENT", Const, 0, ""}, + {"DT_RELSZ", Const, 0, ""}, + {"DT_RPATH", Const, 0, ""}, + {"DT_RUNPATH", Const, 0, ""}, + {"DT_SONAME", Const, 0, ""}, + {"DT_SPARC_REGISTER", Const, 16, ""}, + {"DT_STRSZ", Const, 0, ""}, + {"DT_STRTAB", Const, 0, ""}, + {"DT_SYMBOLIC", Const, 0, ""}, + {"DT_SYMENT", Const, 0, ""}, + {"DT_SYMINENT", Const, 16, ""}, + {"DT_SYMINFO", Const, 16, ""}, + {"DT_SYMINSZ", Const, 16, ""}, + {"DT_SYMTAB", Const, 0, ""}, + {"DT_SYMTAB_SHNDX", Const, 16, ""}, + {"DT_TEXTREL", Const, 0, ""}, + {"DT_TLSDESC_GOT", Const, 16, ""}, + {"DT_TLSDESC_PLT", Const, 16, ""}, + {"DT_USED", Const, 16, ""}, + {"DT_VALRNGHI", Const, 16, ""}, + {"DT_VALRNGLO", Const, 16, ""}, + {"DT_VERDEF", Const, 16, ""}, + {"DT_VERDEFNUM", Const, 16, ""}, + {"DT_VERNEED", Const, 0, ""}, + {"DT_VERNEEDNUM", Const, 0, ""}, + {"DT_VERSYM", Const, 0, ""}, + {"Data", Type, 0, ""}, + {"Dyn32", Type, 0, ""}, + {"Dyn32.Tag", Field, 0, ""}, + {"Dyn32.Val", Field, 0, ""}, + {"Dyn64", Type, 0, ""}, + {"Dyn64.Tag", Field, 0, ""}, + {"Dyn64.Val", Field, 0, ""}, + {"DynFlag", Type, 0, ""}, + {"DynFlag1", Type, 21, ""}, + {"DynTag", Type, 0, ""}, + {"DynamicVersion", Type, 24, ""}, + {"DynamicVersion.Deps", Field, 24, ""}, + {"DynamicVersion.Flags", Field, 24, ""}, + {"DynamicVersion.Index", Field, 24, ""}, + {"DynamicVersion.Name", Field, 24, ""}, + {"DynamicVersionDep", Type, 24, ""}, + {"DynamicVersionDep.Dep", Field, 24, ""}, + {"DynamicVersionDep.Flags", Field, 24, ""}, + {"DynamicVersionDep.Index", Field, 24, ""}, + {"DynamicVersionFlag", Type, 24, ""}, + {"DynamicVersionNeed", Type, 24, ""}, + {"DynamicVersionNeed.Name", Field, 24, ""}, + {"DynamicVersionNeed.Needs", Field, 24, ""}, + {"EI_ABIVERSION", Const, 0, ""}, + {"EI_CLASS", Const, 0, ""}, + {"EI_DATA", Const, 0, ""}, + {"EI_NIDENT", Const, 0, ""}, + {"EI_OSABI", Const, 0, ""}, + {"EI_PAD", Const, 0, ""}, + {"EI_VERSION", Const, 0, ""}, + {"ELFCLASS32", Const, 0, ""}, + {"ELFCLASS64", Const, 0, ""}, + {"ELFCLASSNONE", Const, 0, ""}, + {"ELFDATA2LSB", Const, 0, ""}, + {"ELFDATA2MSB", Const, 0, ""}, + {"ELFDATANONE", Const, 0, ""}, + {"ELFMAG", Const, 0, ""}, + {"ELFOSABI_86OPEN", Const, 0, ""}, + {"ELFOSABI_AIX", Const, 0, ""}, + {"ELFOSABI_ARM", Const, 0, ""}, + {"ELFOSABI_AROS", Const, 11, ""}, + {"ELFOSABI_CLOUDABI", Const, 11, ""}, + {"ELFOSABI_FENIXOS", Const, 11, ""}, + {"ELFOSABI_FREEBSD", Const, 0, ""}, + {"ELFOSABI_HPUX", Const, 0, ""}, + {"ELFOSABI_HURD", Const, 0, ""}, + {"ELFOSABI_IRIX", Const, 0, ""}, + {"ELFOSABI_LINUX", Const, 0, ""}, + {"ELFOSABI_MODESTO", Const, 0, ""}, + {"ELFOSABI_NETBSD", Const, 0, ""}, + {"ELFOSABI_NONE", Const, 0, ""}, + {"ELFOSABI_NSK", Const, 0, ""}, + {"ELFOSABI_OPENBSD", Const, 0, ""}, + {"ELFOSABI_OPENVMS", Const, 0, ""}, + {"ELFOSABI_SOLARIS", Const, 0, ""}, + {"ELFOSABI_STANDALONE", Const, 0, ""}, + {"ELFOSABI_TRU64", Const, 0, ""}, + {"EM_386", Const, 0, ""}, + {"EM_486", Const, 0, ""}, + {"EM_56800EX", Const, 11, ""}, + {"EM_68HC05", Const, 11, ""}, + {"EM_68HC08", Const, 11, ""}, + {"EM_68HC11", Const, 11, ""}, + {"EM_68HC12", Const, 0, ""}, + {"EM_68HC16", Const, 11, ""}, + {"EM_68K", Const, 0, ""}, + {"EM_78KOR", Const, 11, ""}, + {"EM_8051", Const, 11, ""}, + {"EM_860", Const, 0, ""}, + {"EM_88K", Const, 0, ""}, + {"EM_960", Const, 0, ""}, + {"EM_AARCH64", Const, 4, ""}, + {"EM_ALPHA", Const, 0, ""}, + {"EM_ALPHA_STD", Const, 0, ""}, + {"EM_ALTERA_NIOS2", Const, 11, ""}, + {"EM_AMDGPU", Const, 11, ""}, + {"EM_ARC", Const, 0, ""}, + {"EM_ARCA", Const, 11, ""}, + {"EM_ARC_COMPACT", Const, 11, ""}, + {"EM_ARC_COMPACT2", Const, 11, ""}, + {"EM_ARM", Const, 0, ""}, + {"EM_AVR", Const, 11, ""}, + {"EM_AVR32", Const, 11, ""}, + {"EM_BA1", Const, 11, ""}, + {"EM_BA2", Const, 11, ""}, + {"EM_BLACKFIN", Const, 11, ""}, + {"EM_BPF", Const, 11, ""}, + {"EM_C166", Const, 11, ""}, + {"EM_CDP", Const, 11, ""}, + {"EM_CE", Const, 11, ""}, + {"EM_CLOUDSHIELD", Const, 11, ""}, + {"EM_COGE", Const, 11, ""}, + {"EM_COLDFIRE", Const, 0, ""}, + {"EM_COOL", Const, 11, ""}, + {"EM_COREA_1ST", Const, 11, ""}, + {"EM_COREA_2ND", Const, 11, ""}, + {"EM_CR", Const, 11, ""}, + {"EM_CR16", Const, 11, ""}, + {"EM_CRAYNV2", Const, 11, ""}, + {"EM_CRIS", Const, 11, ""}, + {"EM_CRX", Const, 11, ""}, + {"EM_CSR_KALIMBA", Const, 11, ""}, + {"EM_CUDA", Const, 11, ""}, + {"EM_CYPRESS_M8C", Const, 11, ""}, + {"EM_D10V", Const, 11, ""}, + {"EM_D30V", Const, 11, ""}, + {"EM_DSP24", Const, 11, ""}, + {"EM_DSPIC30F", Const, 11, ""}, + {"EM_DXP", Const, 11, ""}, + {"EM_ECOG1", Const, 11, ""}, + {"EM_ECOG16", Const, 11, ""}, + {"EM_ECOG1X", Const, 11, ""}, + {"EM_ECOG2", Const, 11, ""}, + {"EM_ETPU", Const, 11, ""}, + {"EM_EXCESS", Const, 11, ""}, + {"EM_F2MC16", Const, 11, ""}, + {"EM_FIREPATH", Const, 11, ""}, + {"EM_FR20", Const, 0, ""}, + {"EM_FR30", Const, 11, ""}, + {"EM_FT32", Const, 11, ""}, + {"EM_FX66", Const, 11, ""}, + {"EM_H8S", Const, 0, ""}, + {"EM_H8_300", Const, 0, ""}, + {"EM_H8_300H", Const, 0, ""}, + {"EM_H8_500", Const, 0, ""}, + {"EM_HUANY", Const, 11, ""}, + {"EM_IA_64", Const, 0, ""}, + {"EM_INTEL205", Const, 11, ""}, + {"EM_INTEL206", Const, 11, ""}, + {"EM_INTEL207", Const, 11, ""}, + {"EM_INTEL208", Const, 11, ""}, + {"EM_INTEL209", Const, 11, ""}, + {"EM_IP2K", Const, 11, ""}, + {"EM_JAVELIN", Const, 11, ""}, + {"EM_K10M", Const, 11, ""}, + {"EM_KM32", Const, 11, ""}, + {"EM_KMX16", Const, 11, ""}, + {"EM_KMX32", Const, 11, ""}, + {"EM_KMX8", Const, 11, ""}, + {"EM_KVARC", Const, 11, ""}, + {"EM_L10M", Const, 11, ""}, + {"EM_LANAI", Const, 11, ""}, + {"EM_LATTICEMICO32", Const, 11, ""}, + {"EM_LOONGARCH", Const, 19, ""}, + {"EM_M16C", Const, 11, ""}, + {"EM_M32", Const, 0, ""}, + {"EM_M32C", Const, 11, ""}, + {"EM_M32R", Const, 11, ""}, + {"EM_MANIK", Const, 11, ""}, + {"EM_MAX", Const, 11, ""}, + {"EM_MAXQ30", Const, 11, ""}, + {"EM_MCHP_PIC", Const, 11, ""}, + {"EM_MCST_ELBRUS", Const, 11, ""}, + {"EM_ME16", Const, 0, ""}, + {"EM_METAG", Const, 11, ""}, + {"EM_MICROBLAZE", Const, 11, ""}, + {"EM_MIPS", Const, 0, ""}, + {"EM_MIPS_RS3_LE", Const, 0, ""}, + {"EM_MIPS_RS4_BE", Const, 0, ""}, + {"EM_MIPS_X", Const, 0, ""}, + {"EM_MMA", Const, 0, ""}, + {"EM_MMDSP_PLUS", Const, 11, ""}, + {"EM_MMIX", Const, 11, ""}, + {"EM_MN10200", Const, 11, ""}, + {"EM_MN10300", Const, 11, ""}, + {"EM_MOXIE", Const, 11, ""}, + {"EM_MSP430", Const, 11, ""}, + {"EM_NCPU", Const, 0, ""}, + {"EM_NDR1", Const, 0, ""}, + {"EM_NDS32", Const, 11, ""}, + {"EM_NONE", Const, 0, ""}, + {"EM_NORC", Const, 11, ""}, + {"EM_NS32K", Const, 11, ""}, + {"EM_OPEN8", Const, 11, ""}, + {"EM_OPENRISC", Const, 11, ""}, + {"EM_PARISC", Const, 0, ""}, + {"EM_PCP", Const, 0, ""}, + {"EM_PDP10", Const, 11, ""}, + {"EM_PDP11", Const, 11, ""}, + {"EM_PDSP", Const, 11, ""}, + {"EM_PJ", Const, 11, ""}, + {"EM_PPC", Const, 0, ""}, + {"EM_PPC64", Const, 0, ""}, + {"EM_PRISM", Const, 11, ""}, + {"EM_QDSP6", Const, 11, ""}, + {"EM_R32C", Const, 11, ""}, + {"EM_RCE", Const, 0, ""}, + {"EM_RH32", Const, 0, ""}, + {"EM_RISCV", Const, 11, ""}, + {"EM_RL78", Const, 11, ""}, + {"EM_RS08", Const, 11, ""}, + {"EM_RX", Const, 11, ""}, + {"EM_S370", Const, 0, ""}, + {"EM_S390", Const, 0, ""}, + {"EM_SCORE7", Const, 11, ""}, + {"EM_SEP", Const, 11, ""}, + {"EM_SE_C17", Const, 11, ""}, + {"EM_SE_C33", Const, 11, ""}, + {"EM_SH", Const, 0, ""}, + {"EM_SHARC", Const, 11, ""}, + {"EM_SLE9X", Const, 11, ""}, + {"EM_SNP1K", Const, 11, ""}, + {"EM_SPARC", Const, 0, ""}, + {"EM_SPARC32PLUS", Const, 0, ""}, + {"EM_SPARCV9", Const, 0, ""}, + {"EM_ST100", Const, 0, ""}, + {"EM_ST19", Const, 11, ""}, + {"EM_ST200", Const, 11, ""}, + {"EM_ST7", Const, 11, ""}, + {"EM_ST9PLUS", Const, 11, ""}, + {"EM_STARCORE", Const, 0, ""}, + {"EM_STM8", Const, 11, ""}, + {"EM_STXP7X", Const, 11, ""}, + {"EM_SVX", Const, 11, ""}, + {"EM_TILE64", Const, 11, ""}, + {"EM_TILEGX", Const, 11, ""}, + {"EM_TILEPRO", Const, 11, ""}, + {"EM_TINYJ", Const, 0, ""}, + {"EM_TI_ARP32", Const, 11, ""}, + {"EM_TI_C2000", Const, 11, ""}, + {"EM_TI_C5500", Const, 11, ""}, + {"EM_TI_C6000", Const, 11, ""}, + {"EM_TI_PRU", Const, 11, ""}, + {"EM_TMM_GPP", Const, 11, ""}, + {"EM_TPC", Const, 11, ""}, + {"EM_TRICORE", Const, 0, ""}, + {"EM_TRIMEDIA", Const, 11, ""}, + {"EM_TSK3000", Const, 11, ""}, + {"EM_UNICORE", Const, 11, ""}, + {"EM_V800", Const, 0, ""}, + {"EM_V850", Const, 11, ""}, + {"EM_VAX", Const, 11, ""}, + {"EM_VIDEOCORE", Const, 11, ""}, + {"EM_VIDEOCORE3", Const, 11, ""}, + {"EM_VIDEOCORE5", Const, 11, ""}, + {"EM_VISIUM", Const, 11, ""}, + {"EM_VPP500", Const, 0, ""}, + {"EM_X86_64", Const, 0, ""}, + {"EM_XCORE", Const, 11, ""}, + {"EM_XGATE", Const, 11, ""}, + {"EM_XIMO16", Const, 11, ""}, + {"EM_XTENSA", Const, 11, ""}, + {"EM_Z80", Const, 11, ""}, + {"EM_ZSP", Const, 11, ""}, + {"ET_CORE", Const, 0, ""}, + {"ET_DYN", Const, 0, ""}, + {"ET_EXEC", Const, 0, ""}, + {"ET_HIOS", Const, 0, ""}, + {"ET_HIPROC", Const, 0, ""}, + {"ET_LOOS", Const, 0, ""}, + {"ET_LOPROC", Const, 0, ""}, + {"ET_NONE", Const, 0, ""}, + {"ET_REL", Const, 0, ""}, + {"EV_CURRENT", Const, 0, ""}, + {"EV_NONE", Const, 0, ""}, + {"ErrNoSymbols", Var, 4, ""}, + {"File", Type, 0, ""}, + {"File.FileHeader", Field, 0, ""}, + {"File.Progs", Field, 0, ""}, + {"File.Sections", Field, 0, ""}, + {"FileHeader", Type, 0, ""}, + {"FileHeader.ABIVersion", Field, 0, ""}, + {"FileHeader.ByteOrder", Field, 0, ""}, + {"FileHeader.Class", Field, 0, ""}, + {"FileHeader.Data", Field, 0, ""}, + {"FileHeader.Entry", Field, 1, ""}, + {"FileHeader.Machine", Field, 0, ""}, + {"FileHeader.OSABI", Field, 0, ""}, + {"FileHeader.Type", Field, 0, ""}, + {"FileHeader.Version", Field, 0, ""}, + {"FormatError", Type, 0, ""}, + {"Header32", Type, 0, ""}, + {"Header32.Ehsize", Field, 0, ""}, + {"Header32.Entry", Field, 0, ""}, + {"Header32.Flags", Field, 0, ""}, + {"Header32.Ident", Field, 0, ""}, + {"Header32.Machine", Field, 0, ""}, + {"Header32.Phentsize", Field, 0, ""}, + {"Header32.Phnum", Field, 0, ""}, + {"Header32.Phoff", Field, 0, ""}, + {"Header32.Shentsize", Field, 0, ""}, + {"Header32.Shnum", Field, 0, ""}, + {"Header32.Shoff", Field, 0, ""}, + {"Header32.Shstrndx", Field, 0, ""}, + {"Header32.Type", Field, 0, ""}, + {"Header32.Version", Field, 0, ""}, + {"Header64", Type, 0, ""}, + {"Header64.Ehsize", Field, 0, ""}, + {"Header64.Entry", Field, 0, ""}, + {"Header64.Flags", Field, 0, ""}, + {"Header64.Ident", Field, 0, ""}, + {"Header64.Machine", Field, 0, ""}, + {"Header64.Phentsize", Field, 0, ""}, + {"Header64.Phnum", Field, 0, ""}, + {"Header64.Phoff", Field, 0, ""}, + {"Header64.Shentsize", Field, 0, ""}, + {"Header64.Shnum", Field, 0, ""}, + {"Header64.Shoff", Field, 0, ""}, + {"Header64.Shstrndx", Field, 0, ""}, + {"Header64.Type", Field, 0, ""}, + {"Header64.Version", Field, 0, ""}, + {"ImportedSymbol", Type, 0, ""}, + {"ImportedSymbol.Library", Field, 0, ""}, + {"ImportedSymbol.Name", Field, 0, ""}, + {"ImportedSymbol.Version", Field, 0, ""}, + {"Machine", Type, 0, ""}, + {"NT_FPREGSET", Const, 0, ""}, + {"NT_PRPSINFO", Const, 0, ""}, + {"NT_PRSTATUS", Const, 0, ""}, + {"NType", Type, 0, ""}, + {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, + {"OSABI", Type, 0, ""}, + {"Open", Func, 0, "func(name string) (*File, error)"}, + {"PF_MASKOS", Const, 0, ""}, + {"PF_MASKPROC", Const, 0, ""}, + {"PF_R", Const, 0, ""}, + {"PF_W", Const, 0, ""}, + {"PF_X", Const, 0, ""}, + {"PT_AARCH64_ARCHEXT", Const, 16, ""}, + {"PT_AARCH64_UNWIND", Const, 16, ""}, + {"PT_ARM_ARCHEXT", Const, 16, ""}, + {"PT_ARM_EXIDX", Const, 16, ""}, + {"PT_DYNAMIC", Const, 0, ""}, + {"PT_GNU_EH_FRAME", Const, 16, ""}, + {"PT_GNU_MBIND_HI", Const, 16, ""}, + {"PT_GNU_MBIND_LO", Const, 16, ""}, + {"PT_GNU_PROPERTY", Const, 16, ""}, + {"PT_GNU_RELRO", Const, 16, ""}, + {"PT_GNU_STACK", Const, 16, ""}, + {"PT_HIOS", Const, 0, ""}, + {"PT_HIPROC", Const, 0, ""}, + {"PT_INTERP", Const, 0, ""}, + {"PT_LOAD", Const, 0, ""}, + {"PT_LOOS", Const, 0, ""}, + {"PT_LOPROC", Const, 0, ""}, + {"PT_MIPS_ABIFLAGS", Const, 16, ""}, + {"PT_MIPS_OPTIONS", Const, 16, ""}, + {"PT_MIPS_REGINFO", Const, 16, ""}, + {"PT_MIPS_RTPROC", Const, 16, ""}, + {"PT_NOTE", Const, 0, ""}, + {"PT_NULL", Const, 0, ""}, + {"PT_OPENBSD_BOOTDATA", Const, 16, ""}, + {"PT_OPENBSD_NOBTCFI", Const, 23, ""}, + {"PT_OPENBSD_RANDOMIZE", Const, 16, ""}, + {"PT_OPENBSD_WXNEEDED", Const, 16, ""}, + {"PT_PAX_FLAGS", Const, 16, ""}, + {"PT_PHDR", Const, 0, ""}, + {"PT_RISCV_ATTRIBUTES", Const, 25, ""}, + {"PT_S390_PGSTE", Const, 16, ""}, + {"PT_SHLIB", Const, 0, ""}, + {"PT_SUNWSTACK", Const, 16, ""}, + {"PT_SUNW_EH_FRAME", Const, 16, ""}, + {"PT_TLS", Const, 0, ""}, + {"Prog", Type, 0, ""}, + {"Prog.ProgHeader", Field, 0, ""}, + {"Prog.ReaderAt", Field, 0, ""}, + {"Prog32", Type, 0, ""}, + {"Prog32.Align", Field, 0, ""}, + {"Prog32.Filesz", Field, 0, ""}, + {"Prog32.Flags", Field, 0, ""}, + {"Prog32.Memsz", Field, 0, ""}, + {"Prog32.Off", Field, 0, ""}, + {"Prog32.Paddr", Field, 0, ""}, + {"Prog32.Type", Field, 0, ""}, + {"Prog32.Vaddr", Field, 0, ""}, + {"Prog64", Type, 0, ""}, + {"Prog64.Align", Field, 0, ""}, + {"Prog64.Filesz", Field, 0, ""}, + {"Prog64.Flags", Field, 0, ""}, + {"Prog64.Memsz", Field, 0, ""}, + {"Prog64.Off", Field, 0, ""}, + {"Prog64.Paddr", Field, 0, ""}, + {"Prog64.Type", Field, 0, ""}, + {"Prog64.Vaddr", Field, 0, ""}, + {"ProgFlag", Type, 0, ""}, + {"ProgHeader", Type, 0, ""}, + {"ProgHeader.Align", Field, 0, ""}, + {"ProgHeader.Filesz", Field, 0, ""}, + {"ProgHeader.Flags", Field, 0, ""}, + {"ProgHeader.Memsz", Field, 0, ""}, + {"ProgHeader.Off", Field, 0, ""}, + {"ProgHeader.Paddr", Field, 0, ""}, + {"ProgHeader.Type", Field, 0, ""}, + {"ProgHeader.Vaddr", Field, 0, ""}, + {"ProgType", Type, 0, ""}, + {"R_386", Type, 0, ""}, + {"R_386_16", Const, 10, ""}, + {"R_386_32", Const, 0, ""}, + {"R_386_32PLT", Const, 10, ""}, + {"R_386_8", Const, 10, ""}, + {"R_386_COPY", Const, 0, ""}, + {"R_386_GLOB_DAT", Const, 0, ""}, + {"R_386_GOT32", Const, 0, ""}, + {"R_386_GOT32X", Const, 10, ""}, + {"R_386_GOTOFF", Const, 0, ""}, + {"R_386_GOTPC", Const, 0, ""}, + {"R_386_IRELATIVE", Const, 10, ""}, + {"R_386_JMP_SLOT", Const, 0, ""}, + {"R_386_NONE", Const, 0, ""}, + {"R_386_PC16", Const, 10, ""}, + {"R_386_PC32", Const, 0, ""}, + {"R_386_PC8", Const, 10, ""}, + {"R_386_PLT32", Const, 0, ""}, + {"R_386_RELATIVE", Const, 0, ""}, + {"R_386_SIZE32", Const, 10, ""}, + {"R_386_TLS_DESC", Const, 10, ""}, + {"R_386_TLS_DESC_CALL", Const, 10, ""}, + {"R_386_TLS_DTPMOD32", Const, 0, ""}, + {"R_386_TLS_DTPOFF32", Const, 0, ""}, + {"R_386_TLS_GD", Const, 0, ""}, + {"R_386_TLS_GD_32", Const, 0, ""}, + {"R_386_TLS_GD_CALL", Const, 0, ""}, + {"R_386_TLS_GD_POP", Const, 0, ""}, + {"R_386_TLS_GD_PUSH", Const, 0, ""}, + {"R_386_TLS_GOTDESC", Const, 10, ""}, + {"R_386_TLS_GOTIE", Const, 0, ""}, + {"R_386_TLS_IE", Const, 0, ""}, + {"R_386_TLS_IE_32", Const, 0, ""}, + {"R_386_TLS_LDM", Const, 0, ""}, + {"R_386_TLS_LDM_32", Const, 0, ""}, + {"R_386_TLS_LDM_CALL", Const, 0, ""}, + {"R_386_TLS_LDM_POP", Const, 0, ""}, + {"R_386_TLS_LDM_PUSH", Const, 0, ""}, + {"R_386_TLS_LDO_32", Const, 0, ""}, + {"R_386_TLS_LE", Const, 0, ""}, + {"R_386_TLS_LE_32", Const, 0, ""}, + {"R_386_TLS_TPOFF", Const, 0, ""}, + {"R_386_TLS_TPOFF32", Const, 0, ""}, + {"R_390", Type, 7, ""}, + {"R_390_12", Const, 7, ""}, + {"R_390_16", Const, 7, ""}, + {"R_390_20", Const, 7, ""}, + {"R_390_32", Const, 7, ""}, + {"R_390_64", Const, 7, ""}, + {"R_390_8", Const, 7, ""}, + {"R_390_COPY", Const, 7, ""}, + {"R_390_GLOB_DAT", Const, 7, ""}, + {"R_390_GOT12", Const, 7, ""}, + {"R_390_GOT16", Const, 7, ""}, + {"R_390_GOT20", Const, 7, ""}, + {"R_390_GOT32", Const, 7, ""}, + {"R_390_GOT64", Const, 7, ""}, + {"R_390_GOTENT", Const, 7, ""}, + {"R_390_GOTOFF", Const, 7, ""}, + {"R_390_GOTOFF16", Const, 7, ""}, + {"R_390_GOTOFF64", Const, 7, ""}, + {"R_390_GOTPC", Const, 7, ""}, + {"R_390_GOTPCDBL", Const, 7, ""}, + {"R_390_GOTPLT12", Const, 7, ""}, + {"R_390_GOTPLT16", Const, 7, ""}, + {"R_390_GOTPLT20", Const, 7, ""}, + {"R_390_GOTPLT32", Const, 7, ""}, + {"R_390_GOTPLT64", Const, 7, ""}, + {"R_390_GOTPLTENT", Const, 7, ""}, + {"R_390_GOTPLTOFF16", Const, 7, ""}, + {"R_390_GOTPLTOFF32", Const, 7, ""}, + {"R_390_GOTPLTOFF64", Const, 7, ""}, + {"R_390_JMP_SLOT", Const, 7, ""}, + {"R_390_NONE", Const, 7, ""}, + {"R_390_PC16", Const, 7, ""}, + {"R_390_PC16DBL", Const, 7, ""}, + {"R_390_PC32", Const, 7, ""}, + {"R_390_PC32DBL", Const, 7, ""}, + {"R_390_PC64", Const, 7, ""}, + {"R_390_PLT16DBL", Const, 7, ""}, + {"R_390_PLT32", Const, 7, ""}, + {"R_390_PLT32DBL", Const, 7, ""}, + {"R_390_PLT64", Const, 7, ""}, + {"R_390_RELATIVE", Const, 7, ""}, + {"R_390_TLS_DTPMOD", Const, 7, ""}, + {"R_390_TLS_DTPOFF", Const, 7, ""}, + {"R_390_TLS_GD32", Const, 7, ""}, + {"R_390_TLS_GD64", Const, 7, ""}, + {"R_390_TLS_GDCALL", Const, 7, ""}, + {"R_390_TLS_GOTIE12", Const, 7, ""}, + {"R_390_TLS_GOTIE20", Const, 7, ""}, + {"R_390_TLS_GOTIE32", Const, 7, ""}, + {"R_390_TLS_GOTIE64", Const, 7, ""}, + {"R_390_TLS_IE32", Const, 7, ""}, + {"R_390_TLS_IE64", Const, 7, ""}, + {"R_390_TLS_IEENT", Const, 7, ""}, + {"R_390_TLS_LDCALL", Const, 7, ""}, + {"R_390_TLS_LDM32", Const, 7, ""}, + {"R_390_TLS_LDM64", Const, 7, ""}, + {"R_390_TLS_LDO32", Const, 7, ""}, + {"R_390_TLS_LDO64", Const, 7, ""}, + {"R_390_TLS_LE32", Const, 7, ""}, + {"R_390_TLS_LE64", Const, 7, ""}, + {"R_390_TLS_LOAD", Const, 7, ""}, + {"R_390_TLS_TPOFF", Const, 7, ""}, + {"R_AARCH64", Type, 4, ""}, + {"R_AARCH64_ABS16", Const, 4, ""}, + {"R_AARCH64_ABS32", Const, 4, ""}, + {"R_AARCH64_ABS64", Const, 4, ""}, + {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_ADR_GOT_PAGE", Const, 4, ""}, + {"R_AARCH64_ADR_PREL_LO21", Const, 4, ""}, + {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4, ""}, + {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4, ""}, + {"R_AARCH64_CALL26", Const, 4, ""}, + {"R_AARCH64_CONDBR19", Const, 4, ""}, + {"R_AARCH64_COPY", Const, 4, ""}, + {"R_AARCH64_GLOB_DAT", Const, 4, ""}, + {"R_AARCH64_GOT_LD_PREL19", Const, 4, ""}, + {"R_AARCH64_IRELATIVE", Const, 4, ""}, + {"R_AARCH64_JUMP26", Const, 4, ""}, + {"R_AARCH64_JUMP_SLOT", Const, 4, ""}, + {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10, ""}, + {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10, ""}, + {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_LD_PREL_LO19", Const, 4, ""}, + {"R_AARCH64_MOVW_SABS_G0", Const, 4, ""}, + {"R_AARCH64_MOVW_SABS_G1", Const, 4, ""}, + {"R_AARCH64_MOVW_SABS_G2", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G0", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G1", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G2", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4, ""}, + {"R_AARCH64_MOVW_UABS_G3", Const, 4, ""}, + {"R_AARCH64_NONE", Const, 4, ""}, + {"R_AARCH64_NULL", Const, 4, ""}, + {"R_AARCH64_P32_ABS16", Const, 4, ""}, + {"R_AARCH64_P32_ABS32", Const, 4, ""}, + {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4, ""}, + {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4, ""}, + {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4, ""}, + {"R_AARCH64_P32_CALL26", Const, 4, ""}, + {"R_AARCH64_P32_CONDBR19", Const, 4, ""}, + {"R_AARCH64_P32_COPY", Const, 4, ""}, + {"R_AARCH64_P32_GLOB_DAT", Const, 4, ""}, + {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4, ""}, + {"R_AARCH64_P32_IRELATIVE", Const, 4, ""}, + {"R_AARCH64_P32_JUMP26", Const, 4, ""}, + {"R_AARCH64_P32_JUMP_SLOT", Const, 4, ""}, + {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_LD_PREL_LO19", Const, 4, ""}, + {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4, ""}, + {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4, ""}, + {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4, ""}, + {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4, ""}, + {"R_AARCH64_P32_PREL16", Const, 4, ""}, + {"R_AARCH64_P32_PREL32", Const, 4, ""}, + {"R_AARCH64_P32_RELATIVE", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_CALL", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4, ""}, + {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4, ""}, + {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""}, + {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4, ""}, + {"R_AARCH64_P32_TLS_DTPMOD", Const, 4, ""}, + {"R_AARCH64_P32_TLS_DTPREL", Const, 4, ""}, + {"R_AARCH64_P32_TLS_TPREL", Const, 4, ""}, + {"R_AARCH64_P32_TSTBR14", Const, 4, ""}, + {"R_AARCH64_PREL16", Const, 4, ""}, + {"R_AARCH64_PREL32", Const, 4, ""}, + {"R_AARCH64_PREL64", Const, 4, ""}, + {"R_AARCH64_RELATIVE", Const, 4, ""}, + {"R_AARCH64_TLSDESC", Const, 4, ""}, + {"R_AARCH64_TLSDESC_ADD", Const, 4, ""}, + {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4, ""}, + {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4, ""}, + {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4, ""}, + {"R_AARCH64_TLSDESC_CALL", Const, 4, ""}, + {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4, ""}, + {"R_AARCH64_TLSDESC_LDR", Const, 4, ""}, + {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4, ""}, + {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4, ""}, + {"R_AARCH64_TLSDESC_OFF_G1", Const, 4, ""}, + {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4, ""}, + {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4, ""}, + {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10, ""}, + {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10, ""}, + {"R_AARCH64_TLSGD_MOVW_G1", Const, 10, ""}, + {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""}, + {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4, ""}, + {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""}, + {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4, ""}, + {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4, ""}, + {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10, ""}, + {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10, ""}, + {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10, ""}, + {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10, ""}, + {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4, ""}, + {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4, ""}, + {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""}, + {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10, ""}, + {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10, ""}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4, ""}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4, ""}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4, ""}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4, ""}, + {"R_AARCH64_TLS_DTPMOD64", Const, 4, ""}, + {"R_AARCH64_TLS_DTPREL64", Const, 4, ""}, + {"R_AARCH64_TLS_TPREL64", Const, 4, ""}, + {"R_AARCH64_TSTBR14", Const, 4, ""}, + {"R_ALPHA", Type, 0, ""}, + {"R_ALPHA_BRADDR", Const, 0, ""}, + {"R_ALPHA_COPY", Const, 0, ""}, + {"R_ALPHA_GLOB_DAT", Const, 0, ""}, + {"R_ALPHA_GPDISP", Const, 0, ""}, + {"R_ALPHA_GPREL32", Const, 0, ""}, + {"R_ALPHA_GPRELHIGH", Const, 0, ""}, + {"R_ALPHA_GPRELLOW", Const, 0, ""}, + {"R_ALPHA_GPVALUE", Const, 0, ""}, + {"R_ALPHA_HINT", Const, 0, ""}, + {"R_ALPHA_IMMED_BR_HI32", Const, 0, ""}, + {"R_ALPHA_IMMED_GP_16", Const, 0, ""}, + {"R_ALPHA_IMMED_GP_HI32", Const, 0, ""}, + {"R_ALPHA_IMMED_LO32", Const, 0, ""}, + {"R_ALPHA_IMMED_SCN_HI32", Const, 0, ""}, + {"R_ALPHA_JMP_SLOT", Const, 0, ""}, + {"R_ALPHA_LITERAL", Const, 0, ""}, + {"R_ALPHA_LITUSE", Const, 0, ""}, + {"R_ALPHA_NONE", Const, 0, ""}, + {"R_ALPHA_OP_PRSHIFT", Const, 0, ""}, + {"R_ALPHA_OP_PSUB", Const, 0, ""}, + {"R_ALPHA_OP_PUSH", Const, 0, ""}, + {"R_ALPHA_OP_STORE", Const, 0, ""}, + {"R_ALPHA_REFLONG", Const, 0, ""}, + {"R_ALPHA_REFQUAD", Const, 0, ""}, + {"R_ALPHA_RELATIVE", Const, 0, ""}, + {"R_ALPHA_SREL16", Const, 0, ""}, + {"R_ALPHA_SREL32", Const, 0, ""}, + {"R_ALPHA_SREL64", Const, 0, ""}, + {"R_ARM", Type, 0, ""}, + {"R_ARM_ABS12", Const, 0, ""}, + {"R_ARM_ABS16", Const, 0, ""}, + {"R_ARM_ABS32", Const, 0, ""}, + {"R_ARM_ABS32_NOI", Const, 10, ""}, + {"R_ARM_ABS8", Const, 0, ""}, + {"R_ARM_ALU_PCREL_15_8", Const, 10, ""}, + {"R_ARM_ALU_PCREL_23_15", Const, 10, ""}, + {"R_ARM_ALU_PCREL_7_0", Const, 10, ""}, + {"R_ARM_ALU_PC_G0", Const, 10, ""}, + {"R_ARM_ALU_PC_G0_NC", Const, 10, ""}, + {"R_ARM_ALU_PC_G1", Const, 10, ""}, + {"R_ARM_ALU_PC_G1_NC", Const, 10, ""}, + {"R_ARM_ALU_PC_G2", Const, 10, ""}, + {"R_ARM_ALU_SBREL_19_12_NC", Const, 10, ""}, + {"R_ARM_ALU_SBREL_27_20_CK", Const, 10, ""}, + {"R_ARM_ALU_SB_G0", Const, 10, ""}, + {"R_ARM_ALU_SB_G0_NC", Const, 10, ""}, + {"R_ARM_ALU_SB_G1", Const, 10, ""}, + {"R_ARM_ALU_SB_G1_NC", Const, 10, ""}, + {"R_ARM_ALU_SB_G2", Const, 10, ""}, + {"R_ARM_AMP_VCALL9", Const, 0, ""}, + {"R_ARM_BASE_ABS", Const, 10, ""}, + {"R_ARM_CALL", Const, 10, ""}, + {"R_ARM_COPY", Const, 0, ""}, + {"R_ARM_GLOB_DAT", Const, 0, ""}, + {"R_ARM_GNU_VTENTRY", Const, 0, ""}, + {"R_ARM_GNU_VTINHERIT", Const, 0, ""}, + {"R_ARM_GOT32", Const, 0, ""}, + {"R_ARM_GOTOFF", Const, 0, ""}, + {"R_ARM_GOTOFF12", Const, 10, ""}, + {"R_ARM_GOTPC", Const, 0, ""}, + {"R_ARM_GOTRELAX", Const, 10, ""}, + {"R_ARM_GOT_ABS", Const, 10, ""}, + {"R_ARM_GOT_BREL12", Const, 10, ""}, + {"R_ARM_GOT_PREL", Const, 10, ""}, + {"R_ARM_IRELATIVE", Const, 10, ""}, + {"R_ARM_JUMP24", Const, 10, ""}, + {"R_ARM_JUMP_SLOT", Const, 0, ""}, + {"R_ARM_LDC_PC_G0", Const, 10, ""}, + {"R_ARM_LDC_PC_G1", Const, 10, ""}, + {"R_ARM_LDC_PC_G2", Const, 10, ""}, + {"R_ARM_LDC_SB_G0", Const, 10, ""}, + {"R_ARM_LDC_SB_G1", Const, 10, ""}, + {"R_ARM_LDC_SB_G2", Const, 10, ""}, + {"R_ARM_LDRS_PC_G0", Const, 10, ""}, + {"R_ARM_LDRS_PC_G1", Const, 10, ""}, + {"R_ARM_LDRS_PC_G2", Const, 10, ""}, + {"R_ARM_LDRS_SB_G0", Const, 10, ""}, + {"R_ARM_LDRS_SB_G1", Const, 10, ""}, + {"R_ARM_LDRS_SB_G2", Const, 10, ""}, + {"R_ARM_LDR_PC_G1", Const, 10, ""}, + {"R_ARM_LDR_PC_G2", Const, 10, ""}, + {"R_ARM_LDR_SBREL_11_10_NC", Const, 10, ""}, + {"R_ARM_LDR_SB_G0", Const, 10, ""}, + {"R_ARM_LDR_SB_G1", Const, 10, ""}, + {"R_ARM_LDR_SB_G2", Const, 10, ""}, + {"R_ARM_ME_TOO", Const, 10, ""}, + {"R_ARM_MOVT_ABS", Const, 10, ""}, + {"R_ARM_MOVT_BREL", Const, 10, ""}, + {"R_ARM_MOVT_PREL", Const, 10, ""}, + {"R_ARM_MOVW_ABS_NC", Const, 10, ""}, + {"R_ARM_MOVW_BREL", Const, 10, ""}, + {"R_ARM_MOVW_BREL_NC", Const, 10, ""}, + {"R_ARM_MOVW_PREL_NC", Const, 10, ""}, + {"R_ARM_NONE", Const, 0, ""}, + {"R_ARM_PC13", Const, 0, ""}, + {"R_ARM_PC24", Const, 0, ""}, + {"R_ARM_PLT32", Const, 0, ""}, + {"R_ARM_PLT32_ABS", Const, 10, ""}, + {"R_ARM_PREL31", Const, 10, ""}, + {"R_ARM_PRIVATE_0", Const, 10, ""}, + {"R_ARM_PRIVATE_1", Const, 10, ""}, + {"R_ARM_PRIVATE_10", Const, 10, ""}, + {"R_ARM_PRIVATE_11", Const, 10, ""}, + {"R_ARM_PRIVATE_12", Const, 10, ""}, + {"R_ARM_PRIVATE_13", Const, 10, ""}, + {"R_ARM_PRIVATE_14", Const, 10, ""}, + {"R_ARM_PRIVATE_15", Const, 10, ""}, + {"R_ARM_PRIVATE_2", Const, 10, ""}, + {"R_ARM_PRIVATE_3", Const, 10, ""}, + {"R_ARM_PRIVATE_4", Const, 10, ""}, + {"R_ARM_PRIVATE_5", Const, 10, ""}, + {"R_ARM_PRIVATE_6", Const, 10, ""}, + {"R_ARM_PRIVATE_7", Const, 10, ""}, + {"R_ARM_PRIVATE_8", Const, 10, ""}, + {"R_ARM_PRIVATE_9", Const, 10, ""}, + {"R_ARM_RABS32", Const, 0, ""}, + {"R_ARM_RBASE", Const, 0, ""}, + {"R_ARM_REL32", Const, 0, ""}, + {"R_ARM_REL32_NOI", Const, 10, ""}, + {"R_ARM_RELATIVE", Const, 0, ""}, + {"R_ARM_RPC24", Const, 0, ""}, + {"R_ARM_RREL32", Const, 0, ""}, + {"R_ARM_RSBREL32", Const, 0, ""}, + {"R_ARM_RXPC25", Const, 10, ""}, + {"R_ARM_SBREL31", Const, 10, ""}, + {"R_ARM_SBREL32", Const, 0, ""}, + {"R_ARM_SWI24", Const, 0, ""}, + {"R_ARM_TARGET1", Const, 10, ""}, + {"R_ARM_TARGET2", Const, 10, ""}, + {"R_ARM_THM_ABS5", Const, 0, ""}, + {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10, ""}, + {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10, ""}, + {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10, ""}, + {"R_ARM_THM_ALU_ABS_G3", Const, 10, ""}, + {"R_ARM_THM_ALU_PREL_11_0", Const, 10, ""}, + {"R_ARM_THM_GOT_BREL12", Const, 10, ""}, + {"R_ARM_THM_JUMP11", Const, 10, ""}, + {"R_ARM_THM_JUMP19", Const, 10, ""}, + {"R_ARM_THM_JUMP24", Const, 10, ""}, + {"R_ARM_THM_JUMP6", Const, 10, ""}, + {"R_ARM_THM_JUMP8", Const, 10, ""}, + {"R_ARM_THM_MOVT_ABS", Const, 10, ""}, + {"R_ARM_THM_MOVT_BREL", Const, 10, ""}, + {"R_ARM_THM_MOVT_PREL", Const, 10, ""}, + {"R_ARM_THM_MOVW_ABS_NC", Const, 10, ""}, + {"R_ARM_THM_MOVW_BREL", Const, 10, ""}, + {"R_ARM_THM_MOVW_BREL_NC", Const, 10, ""}, + {"R_ARM_THM_MOVW_PREL_NC", Const, 10, ""}, + {"R_ARM_THM_PC12", Const, 10, ""}, + {"R_ARM_THM_PC22", Const, 0, ""}, + {"R_ARM_THM_PC8", Const, 0, ""}, + {"R_ARM_THM_RPC22", Const, 0, ""}, + {"R_ARM_THM_SWI8", Const, 0, ""}, + {"R_ARM_THM_TLS_CALL", Const, 10, ""}, + {"R_ARM_THM_TLS_DESCSEQ16", Const, 10, ""}, + {"R_ARM_THM_TLS_DESCSEQ32", Const, 10, ""}, + {"R_ARM_THM_XPC22", Const, 0, ""}, + {"R_ARM_TLS_CALL", Const, 10, ""}, + {"R_ARM_TLS_DESCSEQ", Const, 10, ""}, + {"R_ARM_TLS_DTPMOD32", Const, 10, ""}, + {"R_ARM_TLS_DTPOFF32", Const, 10, ""}, + {"R_ARM_TLS_GD32", Const, 10, ""}, + {"R_ARM_TLS_GOTDESC", Const, 10, ""}, + {"R_ARM_TLS_IE12GP", Const, 10, ""}, + {"R_ARM_TLS_IE32", Const, 10, ""}, + {"R_ARM_TLS_LDM32", Const, 10, ""}, + {"R_ARM_TLS_LDO12", Const, 10, ""}, + {"R_ARM_TLS_LDO32", Const, 10, ""}, + {"R_ARM_TLS_LE12", Const, 10, ""}, + {"R_ARM_TLS_LE32", Const, 10, ""}, + {"R_ARM_TLS_TPOFF32", Const, 10, ""}, + {"R_ARM_V4BX", Const, 10, ""}, + {"R_ARM_XPC25", Const, 0, ""}, + {"R_INFO", Func, 0, "func(sym uint32, typ uint32) uint64"}, + {"R_INFO32", Func, 0, "func(sym uint32, typ uint32) uint32"}, + {"R_LARCH", Type, 19, ""}, + {"R_LARCH_32", Const, 19, ""}, + {"R_LARCH_32_PCREL", Const, 20, ""}, + {"R_LARCH_64", Const, 19, ""}, + {"R_LARCH_64_PCREL", Const, 22, ""}, + {"R_LARCH_ABS64_HI12", Const, 20, ""}, + {"R_LARCH_ABS64_LO20", Const, 20, ""}, + {"R_LARCH_ABS_HI20", Const, 20, ""}, + {"R_LARCH_ABS_LO12", Const, 20, ""}, + {"R_LARCH_ADD16", Const, 19, ""}, + {"R_LARCH_ADD24", Const, 19, ""}, + {"R_LARCH_ADD32", Const, 19, ""}, + {"R_LARCH_ADD6", Const, 22, ""}, + {"R_LARCH_ADD64", Const, 19, ""}, + {"R_LARCH_ADD8", Const, 19, ""}, + {"R_LARCH_ADD_ULEB128", Const, 22, ""}, + {"R_LARCH_ALIGN", Const, 22, ""}, + {"R_LARCH_B16", Const, 20, ""}, + {"R_LARCH_B21", Const, 20, ""}, + {"R_LARCH_B26", Const, 20, ""}, + {"R_LARCH_CFA", Const, 22, ""}, + {"R_LARCH_COPY", Const, 19, ""}, + {"R_LARCH_DELETE", Const, 22, ""}, + {"R_LARCH_GNU_VTENTRY", Const, 20, ""}, + {"R_LARCH_GNU_VTINHERIT", Const, 20, ""}, + {"R_LARCH_GOT64_HI12", Const, 20, ""}, + {"R_LARCH_GOT64_LO20", Const, 20, ""}, + {"R_LARCH_GOT64_PC_HI12", Const, 20, ""}, + {"R_LARCH_GOT64_PC_LO20", Const, 20, ""}, + {"R_LARCH_GOT_HI20", Const, 20, ""}, + {"R_LARCH_GOT_LO12", Const, 20, ""}, + {"R_LARCH_GOT_PC_HI20", Const, 20, ""}, + {"R_LARCH_GOT_PC_LO12", Const, 20, ""}, + {"R_LARCH_IRELATIVE", Const, 19, ""}, + {"R_LARCH_JUMP_SLOT", Const, 19, ""}, + {"R_LARCH_MARK_LA", Const, 19, ""}, + {"R_LARCH_MARK_PCREL", Const, 19, ""}, + {"R_LARCH_NONE", Const, 19, ""}, + {"R_LARCH_PCALA64_HI12", Const, 20, ""}, + {"R_LARCH_PCALA64_LO20", Const, 20, ""}, + {"R_LARCH_PCALA_HI20", Const, 20, ""}, + {"R_LARCH_PCALA_LO12", Const, 20, ""}, + {"R_LARCH_PCREL20_S2", Const, 22, ""}, + {"R_LARCH_RELATIVE", Const, 19, ""}, + {"R_LARCH_RELAX", Const, 20, ""}, + {"R_LARCH_SOP_ADD", Const, 19, ""}, + {"R_LARCH_SOP_AND", Const, 19, ""}, + {"R_LARCH_SOP_ASSERT", Const, 19, ""}, + {"R_LARCH_SOP_IF_ELSE", Const, 19, ""}, + {"R_LARCH_SOP_NOT", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_10_12", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_10_16", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_10_5", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_S_5_20", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_U", Const, 19, ""}, + {"R_LARCH_SOP_POP_32_U_10_12", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_DUP", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_GPREL", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_PCREL", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19, ""}, + {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19, ""}, + {"R_LARCH_SOP_SL", Const, 19, ""}, + {"R_LARCH_SOP_SR", Const, 19, ""}, + {"R_LARCH_SOP_SUB", Const, 19, ""}, + {"R_LARCH_SUB16", Const, 19, ""}, + {"R_LARCH_SUB24", Const, 19, ""}, + {"R_LARCH_SUB32", Const, 19, ""}, + {"R_LARCH_SUB6", Const, 22, ""}, + {"R_LARCH_SUB64", Const, 19, ""}, + {"R_LARCH_SUB8", Const, 19, ""}, + {"R_LARCH_SUB_ULEB128", Const, 22, ""}, + {"R_LARCH_TLS_DTPMOD32", Const, 19, ""}, + {"R_LARCH_TLS_DTPMOD64", Const, 19, ""}, + {"R_LARCH_TLS_DTPREL32", Const, 19, ""}, + {"R_LARCH_TLS_DTPREL64", Const, 19, ""}, + {"R_LARCH_TLS_GD_HI20", Const, 20, ""}, + {"R_LARCH_TLS_GD_PC_HI20", Const, 20, ""}, + {"R_LARCH_TLS_IE64_HI12", Const, 20, ""}, + {"R_LARCH_TLS_IE64_LO20", Const, 20, ""}, + {"R_LARCH_TLS_IE64_PC_HI12", Const, 20, ""}, + {"R_LARCH_TLS_IE64_PC_LO20", Const, 20, ""}, + {"R_LARCH_TLS_IE_HI20", Const, 20, ""}, + {"R_LARCH_TLS_IE_LO12", Const, 20, ""}, + {"R_LARCH_TLS_IE_PC_HI20", Const, 20, ""}, + {"R_LARCH_TLS_IE_PC_LO12", Const, 20, ""}, + {"R_LARCH_TLS_LD_HI20", Const, 20, ""}, + {"R_LARCH_TLS_LD_PC_HI20", Const, 20, ""}, + {"R_LARCH_TLS_LE64_HI12", Const, 20, ""}, + {"R_LARCH_TLS_LE64_LO20", Const, 20, ""}, + {"R_LARCH_TLS_LE_HI20", Const, 20, ""}, + {"R_LARCH_TLS_LE_LO12", Const, 20, ""}, + {"R_LARCH_TLS_TPREL32", Const, 19, ""}, + {"R_LARCH_TLS_TPREL64", Const, 19, ""}, + {"R_MIPS", Type, 6, ""}, + {"R_MIPS_16", Const, 6, ""}, + {"R_MIPS_26", Const, 6, ""}, + {"R_MIPS_32", Const, 6, ""}, + {"R_MIPS_64", Const, 6, ""}, + {"R_MIPS_ADD_IMMEDIATE", Const, 6, ""}, + {"R_MIPS_CALL16", Const, 6, ""}, + {"R_MIPS_CALL_HI16", Const, 6, ""}, + {"R_MIPS_CALL_LO16", Const, 6, ""}, + {"R_MIPS_DELETE", Const, 6, ""}, + {"R_MIPS_GOT16", Const, 6, ""}, + {"R_MIPS_GOT_DISP", Const, 6, ""}, + {"R_MIPS_GOT_HI16", Const, 6, ""}, + {"R_MIPS_GOT_LO16", Const, 6, ""}, + {"R_MIPS_GOT_OFST", Const, 6, ""}, + {"R_MIPS_GOT_PAGE", Const, 6, ""}, + {"R_MIPS_GPREL16", Const, 6, ""}, + {"R_MIPS_GPREL32", Const, 6, ""}, + {"R_MIPS_HI16", Const, 6, ""}, + {"R_MIPS_HIGHER", Const, 6, ""}, + {"R_MIPS_HIGHEST", Const, 6, ""}, + {"R_MIPS_INSERT_A", Const, 6, ""}, + {"R_MIPS_INSERT_B", Const, 6, ""}, + {"R_MIPS_JALR", Const, 6, ""}, + {"R_MIPS_LITERAL", Const, 6, ""}, + {"R_MIPS_LO16", Const, 6, ""}, + {"R_MIPS_NONE", Const, 6, ""}, + {"R_MIPS_PC16", Const, 6, ""}, + {"R_MIPS_PC32", Const, 22, ""}, + {"R_MIPS_PJUMP", Const, 6, ""}, + {"R_MIPS_REL16", Const, 6, ""}, + {"R_MIPS_REL32", Const, 6, ""}, + {"R_MIPS_RELGOT", Const, 6, ""}, + {"R_MIPS_SCN_DISP", Const, 6, ""}, + {"R_MIPS_SHIFT5", Const, 6, ""}, + {"R_MIPS_SHIFT6", Const, 6, ""}, + {"R_MIPS_SUB", Const, 6, ""}, + {"R_MIPS_TLS_DTPMOD32", Const, 6, ""}, + {"R_MIPS_TLS_DTPMOD64", Const, 6, ""}, + {"R_MIPS_TLS_DTPREL32", Const, 6, ""}, + {"R_MIPS_TLS_DTPREL64", Const, 6, ""}, + {"R_MIPS_TLS_DTPREL_HI16", Const, 6, ""}, + {"R_MIPS_TLS_DTPREL_LO16", Const, 6, ""}, + {"R_MIPS_TLS_GD", Const, 6, ""}, + {"R_MIPS_TLS_GOTTPREL", Const, 6, ""}, + {"R_MIPS_TLS_LDM", Const, 6, ""}, + {"R_MIPS_TLS_TPREL32", Const, 6, ""}, + {"R_MIPS_TLS_TPREL64", Const, 6, ""}, + {"R_MIPS_TLS_TPREL_HI16", Const, 6, ""}, + {"R_MIPS_TLS_TPREL_LO16", Const, 6, ""}, + {"R_PPC", Type, 0, ""}, + {"R_PPC64", Type, 5, ""}, + {"R_PPC64_ADDR14", Const, 5, ""}, + {"R_PPC64_ADDR14_BRNTAKEN", Const, 5, ""}, + {"R_PPC64_ADDR14_BRTAKEN", Const, 5, ""}, + {"R_PPC64_ADDR16", Const, 5, ""}, + {"R_PPC64_ADDR16_DS", Const, 5, ""}, + {"R_PPC64_ADDR16_HA", Const, 5, ""}, + {"R_PPC64_ADDR16_HI", Const, 5, ""}, + {"R_PPC64_ADDR16_HIGH", Const, 10, ""}, + {"R_PPC64_ADDR16_HIGHA", Const, 10, ""}, + {"R_PPC64_ADDR16_HIGHER", Const, 5, ""}, + {"R_PPC64_ADDR16_HIGHER34", Const, 20, ""}, + {"R_PPC64_ADDR16_HIGHERA", Const, 5, ""}, + {"R_PPC64_ADDR16_HIGHERA34", Const, 20, ""}, + {"R_PPC64_ADDR16_HIGHEST", Const, 5, ""}, + {"R_PPC64_ADDR16_HIGHEST34", Const, 20, ""}, + {"R_PPC64_ADDR16_HIGHESTA", Const, 5, ""}, + {"R_PPC64_ADDR16_HIGHESTA34", Const, 20, ""}, + {"R_PPC64_ADDR16_LO", Const, 5, ""}, + {"R_PPC64_ADDR16_LO_DS", Const, 5, ""}, + {"R_PPC64_ADDR24", Const, 5, ""}, + {"R_PPC64_ADDR32", Const, 5, ""}, + {"R_PPC64_ADDR64", Const, 5, ""}, + {"R_PPC64_ADDR64_LOCAL", Const, 10, ""}, + {"R_PPC64_COPY", Const, 20, ""}, + {"R_PPC64_D28", Const, 20, ""}, + {"R_PPC64_D34", Const, 20, ""}, + {"R_PPC64_D34_HA30", Const, 20, ""}, + {"R_PPC64_D34_HI30", Const, 20, ""}, + {"R_PPC64_D34_LO", Const, 20, ""}, + {"R_PPC64_DTPMOD64", Const, 5, ""}, + {"R_PPC64_DTPREL16", Const, 5, ""}, + {"R_PPC64_DTPREL16_DS", Const, 5, ""}, + {"R_PPC64_DTPREL16_HA", Const, 5, ""}, + {"R_PPC64_DTPREL16_HI", Const, 5, ""}, + {"R_PPC64_DTPREL16_HIGH", Const, 10, ""}, + {"R_PPC64_DTPREL16_HIGHA", Const, 10, ""}, + {"R_PPC64_DTPREL16_HIGHER", Const, 5, ""}, + {"R_PPC64_DTPREL16_HIGHERA", Const, 5, ""}, + {"R_PPC64_DTPREL16_HIGHEST", Const, 5, ""}, + {"R_PPC64_DTPREL16_HIGHESTA", Const, 5, ""}, + {"R_PPC64_DTPREL16_LO", Const, 5, ""}, + {"R_PPC64_DTPREL16_LO_DS", Const, 5, ""}, + {"R_PPC64_DTPREL34", Const, 20, ""}, + {"R_PPC64_DTPREL64", Const, 5, ""}, + {"R_PPC64_ENTRY", Const, 10, ""}, + {"R_PPC64_GLOB_DAT", Const, 20, ""}, + {"R_PPC64_GNU_VTENTRY", Const, 20, ""}, + {"R_PPC64_GNU_VTINHERIT", Const, 20, ""}, + {"R_PPC64_GOT16", Const, 5, ""}, + {"R_PPC64_GOT16_DS", Const, 5, ""}, + {"R_PPC64_GOT16_HA", Const, 5, ""}, + {"R_PPC64_GOT16_HI", Const, 5, ""}, + {"R_PPC64_GOT16_LO", Const, 5, ""}, + {"R_PPC64_GOT16_LO_DS", Const, 5, ""}, + {"R_PPC64_GOT_DTPREL16_DS", Const, 5, ""}, + {"R_PPC64_GOT_DTPREL16_HA", Const, 5, ""}, + {"R_PPC64_GOT_DTPREL16_HI", Const, 5, ""}, + {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5, ""}, + {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20, ""}, + {"R_PPC64_GOT_PCREL34", Const, 20, ""}, + {"R_PPC64_GOT_TLSGD16", Const, 5, ""}, + {"R_PPC64_GOT_TLSGD16_HA", Const, 5, ""}, + {"R_PPC64_GOT_TLSGD16_HI", Const, 5, ""}, + {"R_PPC64_GOT_TLSGD16_LO", Const, 5, ""}, + {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20, ""}, + {"R_PPC64_GOT_TLSLD16", Const, 5, ""}, + {"R_PPC64_GOT_TLSLD16_HA", Const, 5, ""}, + {"R_PPC64_GOT_TLSLD16_HI", Const, 5, ""}, + {"R_PPC64_GOT_TLSLD16_LO", Const, 5, ""}, + {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20, ""}, + {"R_PPC64_GOT_TPREL16_DS", Const, 5, ""}, + {"R_PPC64_GOT_TPREL16_HA", Const, 5, ""}, + {"R_PPC64_GOT_TPREL16_HI", Const, 5, ""}, + {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5, ""}, + {"R_PPC64_GOT_TPREL_PCREL34", Const, 20, ""}, + {"R_PPC64_IRELATIVE", Const, 10, ""}, + {"R_PPC64_JMP_IREL", Const, 10, ""}, + {"R_PPC64_JMP_SLOT", Const, 5, ""}, + {"R_PPC64_NONE", Const, 5, ""}, + {"R_PPC64_PCREL28", Const, 20, ""}, + {"R_PPC64_PCREL34", Const, 20, ""}, + {"R_PPC64_PCREL_OPT", Const, 20, ""}, + {"R_PPC64_PLT16_HA", Const, 20, ""}, + {"R_PPC64_PLT16_HI", Const, 20, ""}, + {"R_PPC64_PLT16_LO", Const, 20, ""}, + {"R_PPC64_PLT16_LO_DS", Const, 10, ""}, + {"R_PPC64_PLT32", Const, 20, ""}, + {"R_PPC64_PLT64", Const, 20, ""}, + {"R_PPC64_PLTCALL", Const, 20, ""}, + {"R_PPC64_PLTCALL_NOTOC", Const, 20, ""}, + {"R_PPC64_PLTGOT16", Const, 10, ""}, + {"R_PPC64_PLTGOT16_DS", Const, 10, ""}, + {"R_PPC64_PLTGOT16_HA", Const, 10, ""}, + {"R_PPC64_PLTGOT16_HI", Const, 10, ""}, + {"R_PPC64_PLTGOT16_LO", Const, 10, ""}, + {"R_PPC64_PLTGOT_LO_DS", Const, 10, ""}, + {"R_PPC64_PLTREL32", Const, 20, ""}, + {"R_PPC64_PLTREL64", Const, 20, ""}, + {"R_PPC64_PLTSEQ", Const, 20, ""}, + {"R_PPC64_PLTSEQ_NOTOC", Const, 20, ""}, + {"R_PPC64_PLT_PCREL34", Const, 20, ""}, + {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20, ""}, + {"R_PPC64_REL14", Const, 5, ""}, + {"R_PPC64_REL14_BRNTAKEN", Const, 5, ""}, + {"R_PPC64_REL14_BRTAKEN", Const, 5, ""}, + {"R_PPC64_REL16", Const, 5, ""}, + {"R_PPC64_REL16DX_HA", Const, 10, ""}, + {"R_PPC64_REL16_HA", Const, 5, ""}, + {"R_PPC64_REL16_HI", Const, 5, ""}, + {"R_PPC64_REL16_HIGH", Const, 20, ""}, + {"R_PPC64_REL16_HIGHA", Const, 20, ""}, + {"R_PPC64_REL16_HIGHER", Const, 20, ""}, + {"R_PPC64_REL16_HIGHER34", Const, 20, ""}, + {"R_PPC64_REL16_HIGHERA", Const, 20, ""}, + {"R_PPC64_REL16_HIGHERA34", Const, 20, ""}, + {"R_PPC64_REL16_HIGHEST", Const, 20, ""}, + {"R_PPC64_REL16_HIGHEST34", Const, 20, ""}, + {"R_PPC64_REL16_HIGHESTA", Const, 20, ""}, + {"R_PPC64_REL16_HIGHESTA34", Const, 20, ""}, + {"R_PPC64_REL16_LO", Const, 5, ""}, + {"R_PPC64_REL24", Const, 5, ""}, + {"R_PPC64_REL24_NOTOC", Const, 10, ""}, + {"R_PPC64_REL24_P9NOTOC", Const, 21, ""}, + {"R_PPC64_REL30", Const, 20, ""}, + {"R_PPC64_REL32", Const, 5, ""}, + {"R_PPC64_REL64", Const, 5, ""}, + {"R_PPC64_RELATIVE", Const, 18, ""}, + {"R_PPC64_SECTOFF", Const, 20, ""}, + {"R_PPC64_SECTOFF_DS", Const, 10, ""}, + {"R_PPC64_SECTOFF_HA", Const, 20, ""}, + {"R_PPC64_SECTOFF_HI", Const, 20, ""}, + {"R_PPC64_SECTOFF_LO", Const, 20, ""}, + {"R_PPC64_SECTOFF_LO_DS", Const, 10, ""}, + {"R_PPC64_TLS", Const, 5, ""}, + {"R_PPC64_TLSGD", Const, 5, ""}, + {"R_PPC64_TLSLD", Const, 5, ""}, + {"R_PPC64_TOC", Const, 5, ""}, + {"R_PPC64_TOC16", Const, 5, ""}, + {"R_PPC64_TOC16_DS", Const, 5, ""}, + {"R_PPC64_TOC16_HA", Const, 5, ""}, + {"R_PPC64_TOC16_HI", Const, 5, ""}, + {"R_PPC64_TOC16_LO", Const, 5, ""}, + {"R_PPC64_TOC16_LO_DS", Const, 5, ""}, + {"R_PPC64_TOCSAVE", Const, 10, ""}, + {"R_PPC64_TPREL16", Const, 5, ""}, + {"R_PPC64_TPREL16_DS", Const, 5, ""}, + {"R_PPC64_TPREL16_HA", Const, 5, ""}, + {"R_PPC64_TPREL16_HI", Const, 5, ""}, + {"R_PPC64_TPREL16_HIGH", Const, 10, ""}, + {"R_PPC64_TPREL16_HIGHA", Const, 10, ""}, + {"R_PPC64_TPREL16_HIGHER", Const, 5, ""}, + {"R_PPC64_TPREL16_HIGHERA", Const, 5, ""}, + {"R_PPC64_TPREL16_HIGHEST", Const, 5, ""}, + {"R_PPC64_TPREL16_HIGHESTA", Const, 5, ""}, + {"R_PPC64_TPREL16_LO", Const, 5, ""}, + {"R_PPC64_TPREL16_LO_DS", Const, 5, ""}, + {"R_PPC64_TPREL34", Const, 20, ""}, + {"R_PPC64_TPREL64", Const, 5, ""}, + {"R_PPC64_UADDR16", Const, 20, ""}, + {"R_PPC64_UADDR32", Const, 20, ""}, + {"R_PPC64_UADDR64", Const, 20, ""}, + {"R_PPC_ADDR14", Const, 0, ""}, + {"R_PPC_ADDR14_BRNTAKEN", Const, 0, ""}, + {"R_PPC_ADDR14_BRTAKEN", Const, 0, ""}, + {"R_PPC_ADDR16", Const, 0, ""}, + {"R_PPC_ADDR16_HA", Const, 0, ""}, + {"R_PPC_ADDR16_HI", Const, 0, ""}, + {"R_PPC_ADDR16_LO", Const, 0, ""}, + {"R_PPC_ADDR24", Const, 0, ""}, + {"R_PPC_ADDR32", Const, 0, ""}, + {"R_PPC_COPY", Const, 0, ""}, + {"R_PPC_DTPMOD32", Const, 0, ""}, + {"R_PPC_DTPREL16", Const, 0, ""}, + {"R_PPC_DTPREL16_HA", Const, 0, ""}, + {"R_PPC_DTPREL16_HI", Const, 0, ""}, + {"R_PPC_DTPREL16_LO", Const, 0, ""}, + {"R_PPC_DTPREL32", Const, 0, ""}, + {"R_PPC_EMB_BIT_FLD", Const, 0, ""}, + {"R_PPC_EMB_MRKREF", Const, 0, ""}, + {"R_PPC_EMB_NADDR16", Const, 0, ""}, + {"R_PPC_EMB_NADDR16_HA", Const, 0, ""}, + {"R_PPC_EMB_NADDR16_HI", Const, 0, ""}, + {"R_PPC_EMB_NADDR16_LO", Const, 0, ""}, + {"R_PPC_EMB_NADDR32", Const, 0, ""}, + {"R_PPC_EMB_RELSDA", Const, 0, ""}, + {"R_PPC_EMB_RELSEC16", Const, 0, ""}, + {"R_PPC_EMB_RELST_HA", Const, 0, ""}, + {"R_PPC_EMB_RELST_HI", Const, 0, ""}, + {"R_PPC_EMB_RELST_LO", Const, 0, ""}, + {"R_PPC_EMB_SDA21", Const, 0, ""}, + {"R_PPC_EMB_SDA2I16", Const, 0, ""}, + {"R_PPC_EMB_SDA2REL", Const, 0, ""}, + {"R_PPC_EMB_SDAI16", Const, 0, ""}, + {"R_PPC_GLOB_DAT", Const, 0, ""}, + {"R_PPC_GOT16", Const, 0, ""}, + {"R_PPC_GOT16_HA", Const, 0, ""}, + {"R_PPC_GOT16_HI", Const, 0, ""}, + {"R_PPC_GOT16_LO", Const, 0, ""}, + {"R_PPC_GOT_TLSGD16", Const, 0, ""}, + {"R_PPC_GOT_TLSGD16_HA", Const, 0, ""}, + {"R_PPC_GOT_TLSGD16_HI", Const, 0, ""}, + {"R_PPC_GOT_TLSGD16_LO", Const, 0, ""}, + {"R_PPC_GOT_TLSLD16", Const, 0, ""}, + {"R_PPC_GOT_TLSLD16_HA", Const, 0, ""}, + {"R_PPC_GOT_TLSLD16_HI", Const, 0, ""}, + {"R_PPC_GOT_TLSLD16_LO", Const, 0, ""}, + {"R_PPC_GOT_TPREL16", Const, 0, ""}, + {"R_PPC_GOT_TPREL16_HA", Const, 0, ""}, + {"R_PPC_GOT_TPREL16_HI", Const, 0, ""}, + {"R_PPC_GOT_TPREL16_LO", Const, 0, ""}, + {"R_PPC_JMP_SLOT", Const, 0, ""}, + {"R_PPC_LOCAL24PC", Const, 0, ""}, + {"R_PPC_NONE", Const, 0, ""}, + {"R_PPC_PLT16_HA", Const, 0, ""}, + {"R_PPC_PLT16_HI", Const, 0, ""}, + {"R_PPC_PLT16_LO", Const, 0, ""}, + {"R_PPC_PLT32", Const, 0, ""}, + {"R_PPC_PLTREL24", Const, 0, ""}, + {"R_PPC_PLTREL32", Const, 0, ""}, + {"R_PPC_REL14", Const, 0, ""}, + {"R_PPC_REL14_BRNTAKEN", Const, 0, ""}, + {"R_PPC_REL14_BRTAKEN", Const, 0, ""}, + {"R_PPC_REL24", Const, 0, ""}, + {"R_PPC_REL32", Const, 0, ""}, + {"R_PPC_RELATIVE", Const, 0, ""}, + {"R_PPC_SDAREL16", Const, 0, ""}, + {"R_PPC_SECTOFF", Const, 0, ""}, + {"R_PPC_SECTOFF_HA", Const, 0, ""}, + {"R_PPC_SECTOFF_HI", Const, 0, ""}, + {"R_PPC_SECTOFF_LO", Const, 0, ""}, + {"R_PPC_TLS", Const, 0, ""}, + {"R_PPC_TPREL16", Const, 0, ""}, + {"R_PPC_TPREL16_HA", Const, 0, ""}, + {"R_PPC_TPREL16_HI", Const, 0, ""}, + {"R_PPC_TPREL16_LO", Const, 0, ""}, + {"R_PPC_TPREL32", Const, 0, ""}, + {"R_PPC_UADDR16", Const, 0, ""}, + {"R_PPC_UADDR32", Const, 0, ""}, + {"R_RISCV", Type, 11, ""}, + {"R_RISCV_32", Const, 11, ""}, + {"R_RISCV_32_PCREL", Const, 12, ""}, + {"R_RISCV_64", Const, 11, ""}, + {"R_RISCV_ADD16", Const, 11, ""}, + {"R_RISCV_ADD32", Const, 11, ""}, + {"R_RISCV_ADD64", Const, 11, ""}, + {"R_RISCV_ADD8", Const, 11, ""}, + {"R_RISCV_ALIGN", Const, 11, ""}, + {"R_RISCV_BRANCH", Const, 11, ""}, + {"R_RISCV_CALL", Const, 11, ""}, + {"R_RISCV_CALL_PLT", Const, 11, ""}, + {"R_RISCV_COPY", Const, 11, ""}, + {"R_RISCV_GNU_VTENTRY", Const, 11, ""}, + {"R_RISCV_GNU_VTINHERIT", Const, 11, ""}, + {"R_RISCV_GOT_HI20", Const, 11, ""}, + {"R_RISCV_GPREL_I", Const, 11, ""}, + {"R_RISCV_GPREL_S", Const, 11, ""}, + {"R_RISCV_HI20", Const, 11, ""}, + {"R_RISCV_JAL", Const, 11, ""}, + {"R_RISCV_JUMP_SLOT", Const, 11, ""}, + {"R_RISCV_LO12_I", Const, 11, ""}, + {"R_RISCV_LO12_S", Const, 11, ""}, + {"R_RISCV_NONE", Const, 11, ""}, + {"R_RISCV_PCREL_HI20", Const, 11, ""}, + {"R_RISCV_PCREL_LO12_I", Const, 11, ""}, + {"R_RISCV_PCREL_LO12_S", Const, 11, ""}, + {"R_RISCV_RELATIVE", Const, 11, ""}, + {"R_RISCV_RELAX", Const, 11, ""}, + {"R_RISCV_RVC_BRANCH", Const, 11, ""}, + {"R_RISCV_RVC_JUMP", Const, 11, ""}, + {"R_RISCV_RVC_LUI", Const, 11, ""}, + {"R_RISCV_SET16", Const, 11, ""}, + {"R_RISCV_SET32", Const, 11, ""}, + {"R_RISCV_SET6", Const, 11, ""}, + {"R_RISCV_SET8", Const, 11, ""}, + {"R_RISCV_SUB16", Const, 11, ""}, + {"R_RISCV_SUB32", Const, 11, ""}, + {"R_RISCV_SUB6", Const, 11, ""}, + {"R_RISCV_SUB64", Const, 11, ""}, + {"R_RISCV_SUB8", Const, 11, ""}, + {"R_RISCV_TLS_DTPMOD32", Const, 11, ""}, + {"R_RISCV_TLS_DTPMOD64", Const, 11, ""}, + {"R_RISCV_TLS_DTPREL32", Const, 11, ""}, + {"R_RISCV_TLS_DTPREL64", Const, 11, ""}, + {"R_RISCV_TLS_GD_HI20", Const, 11, ""}, + {"R_RISCV_TLS_GOT_HI20", Const, 11, ""}, + {"R_RISCV_TLS_TPREL32", Const, 11, ""}, + {"R_RISCV_TLS_TPREL64", Const, 11, ""}, + {"R_RISCV_TPREL_ADD", Const, 11, ""}, + {"R_RISCV_TPREL_HI20", Const, 11, ""}, + {"R_RISCV_TPREL_I", Const, 11, ""}, + {"R_RISCV_TPREL_LO12_I", Const, 11, ""}, + {"R_RISCV_TPREL_LO12_S", Const, 11, ""}, + {"R_RISCV_TPREL_S", Const, 11, ""}, + {"R_SPARC", Type, 0, ""}, + {"R_SPARC_10", Const, 0, ""}, + {"R_SPARC_11", Const, 0, ""}, + {"R_SPARC_13", Const, 0, ""}, + {"R_SPARC_16", Const, 0, ""}, + {"R_SPARC_22", Const, 0, ""}, + {"R_SPARC_32", Const, 0, ""}, + {"R_SPARC_5", Const, 0, ""}, + {"R_SPARC_6", Const, 0, ""}, + {"R_SPARC_64", Const, 0, ""}, + {"R_SPARC_7", Const, 0, ""}, + {"R_SPARC_8", Const, 0, ""}, + {"R_SPARC_COPY", Const, 0, ""}, + {"R_SPARC_DISP16", Const, 0, ""}, + {"R_SPARC_DISP32", Const, 0, ""}, + {"R_SPARC_DISP64", Const, 0, ""}, + {"R_SPARC_DISP8", Const, 0, ""}, + {"R_SPARC_GLOB_DAT", Const, 0, ""}, + {"R_SPARC_GLOB_JMP", Const, 0, ""}, + {"R_SPARC_GOT10", Const, 0, ""}, + {"R_SPARC_GOT13", Const, 0, ""}, + {"R_SPARC_GOT22", Const, 0, ""}, + {"R_SPARC_H44", Const, 0, ""}, + {"R_SPARC_HH22", Const, 0, ""}, + {"R_SPARC_HI22", Const, 0, ""}, + {"R_SPARC_HIPLT22", Const, 0, ""}, + {"R_SPARC_HIX22", Const, 0, ""}, + {"R_SPARC_HM10", Const, 0, ""}, + {"R_SPARC_JMP_SLOT", Const, 0, ""}, + {"R_SPARC_L44", Const, 0, ""}, + {"R_SPARC_LM22", Const, 0, ""}, + {"R_SPARC_LO10", Const, 0, ""}, + {"R_SPARC_LOPLT10", Const, 0, ""}, + {"R_SPARC_LOX10", Const, 0, ""}, + {"R_SPARC_M44", Const, 0, ""}, + {"R_SPARC_NONE", Const, 0, ""}, + {"R_SPARC_OLO10", Const, 0, ""}, + {"R_SPARC_PC10", Const, 0, ""}, + {"R_SPARC_PC22", Const, 0, ""}, + {"R_SPARC_PCPLT10", Const, 0, ""}, + {"R_SPARC_PCPLT22", Const, 0, ""}, + {"R_SPARC_PCPLT32", Const, 0, ""}, + {"R_SPARC_PC_HH22", Const, 0, ""}, + {"R_SPARC_PC_HM10", Const, 0, ""}, + {"R_SPARC_PC_LM22", Const, 0, ""}, + {"R_SPARC_PLT32", Const, 0, ""}, + {"R_SPARC_PLT64", Const, 0, ""}, + {"R_SPARC_REGISTER", Const, 0, ""}, + {"R_SPARC_RELATIVE", Const, 0, ""}, + {"R_SPARC_UA16", Const, 0, ""}, + {"R_SPARC_UA32", Const, 0, ""}, + {"R_SPARC_UA64", Const, 0, ""}, + {"R_SPARC_WDISP16", Const, 0, ""}, + {"R_SPARC_WDISP19", Const, 0, ""}, + {"R_SPARC_WDISP22", Const, 0, ""}, + {"R_SPARC_WDISP30", Const, 0, ""}, + {"R_SPARC_WPLT30", Const, 0, ""}, + {"R_SYM32", Func, 0, "func(info uint32) uint32"}, + {"R_SYM64", Func, 0, "func(info uint64) uint32"}, + {"R_TYPE32", Func, 0, "func(info uint32) uint32"}, + {"R_TYPE64", Func, 0, "func(info uint64) uint32"}, + {"R_X86_64", Type, 0, ""}, + {"R_X86_64_16", Const, 0, ""}, + {"R_X86_64_32", Const, 0, ""}, + {"R_X86_64_32S", Const, 0, ""}, + {"R_X86_64_64", Const, 0, ""}, + {"R_X86_64_8", Const, 0, ""}, + {"R_X86_64_COPY", Const, 0, ""}, + {"R_X86_64_DTPMOD64", Const, 0, ""}, + {"R_X86_64_DTPOFF32", Const, 0, ""}, + {"R_X86_64_DTPOFF64", Const, 0, ""}, + {"R_X86_64_GLOB_DAT", Const, 0, ""}, + {"R_X86_64_GOT32", Const, 0, ""}, + {"R_X86_64_GOT64", Const, 10, ""}, + {"R_X86_64_GOTOFF64", Const, 10, ""}, + {"R_X86_64_GOTPC32", Const, 10, ""}, + {"R_X86_64_GOTPC32_TLSDESC", Const, 10, ""}, + {"R_X86_64_GOTPC64", Const, 10, ""}, + {"R_X86_64_GOTPCREL", Const, 0, ""}, + {"R_X86_64_GOTPCREL64", Const, 10, ""}, + {"R_X86_64_GOTPCRELX", Const, 10, ""}, + {"R_X86_64_GOTPLT64", Const, 10, ""}, + {"R_X86_64_GOTTPOFF", Const, 0, ""}, + {"R_X86_64_IRELATIVE", Const, 10, ""}, + {"R_X86_64_JMP_SLOT", Const, 0, ""}, + {"R_X86_64_NONE", Const, 0, ""}, + {"R_X86_64_PC16", Const, 0, ""}, + {"R_X86_64_PC32", Const, 0, ""}, + {"R_X86_64_PC32_BND", Const, 10, ""}, + {"R_X86_64_PC64", Const, 10, ""}, + {"R_X86_64_PC8", Const, 0, ""}, + {"R_X86_64_PLT32", Const, 0, ""}, + {"R_X86_64_PLT32_BND", Const, 10, ""}, + {"R_X86_64_PLTOFF64", Const, 10, ""}, + {"R_X86_64_RELATIVE", Const, 0, ""}, + {"R_X86_64_RELATIVE64", Const, 10, ""}, + {"R_X86_64_REX_GOTPCRELX", Const, 10, ""}, + {"R_X86_64_SIZE32", Const, 10, ""}, + {"R_X86_64_SIZE64", Const, 10, ""}, + {"R_X86_64_TLSDESC", Const, 10, ""}, + {"R_X86_64_TLSDESC_CALL", Const, 10, ""}, + {"R_X86_64_TLSGD", Const, 0, ""}, + {"R_X86_64_TLSLD", Const, 0, ""}, + {"R_X86_64_TPOFF32", Const, 0, ""}, + {"R_X86_64_TPOFF64", Const, 0, ""}, + {"Rel32", Type, 0, ""}, + {"Rel32.Info", Field, 0, ""}, + {"Rel32.Off", Field, 0, ""}, + {"Rel64", Type, 0, ""}, + {"Rel64.Info", Field, 0, ""}, + {"Rel64.Off", Field, 0, ""}, + {"Rela32", Type, 0, ""}, + {"Rela32.Addend", Field, 0, ""}, + {"Rela32.Info", Field, 0, ""}, + {"Rela32.Off", Field, 0, ""}, + {"Rela64", Type, 0, ""}, + {"Rela64.Addend", Field, 0, ""}, + {"Rela64.Info", Field, 0, ""}, + {"Rela64.Off", Field, 0, ""}, + {"SHF_ALLOC", Const, 0, ""}, + {"SHF_COMPRESSED", Const, 6, ""}, + {"SHF_EXECINSTR", Const, 0, ""}, + {"SHF_GROUP", Const, 0, ""}, + {"SHF_INFO_LINK", Const, 0, ""}, + {"SHF_LINK_ORDER", Const, 0, ""}, + {"SHF_MASKOS", Const, 0, ""}, + {"SHF_MASKPROC", Const, 0, ""}, + {"SHF_MERGE", Const, 0, ""}, + {"SHF_OS_NONCONFORMING", Const, 0, ""}, + {"SHF_STRINGS", Const, 0, ""}, + {"SHF_TLS", Const, 0, ""}, + {"SHF_WRITE", Const, 0, ""}, + {"SHN_ABS", Const, 0, ""}, + {"SHN_COMMON", Const, 0, ""}, + {"SHN_HIOS", Const, 0, ""}, + {"SHN_HIPROC", Const, 0, ""}, + {"SHN_HIRESERVE", Const, 0, ""}, + {"SHN_LOOS", Const, 0, ""}, + {"SHN_LOPROC", Const, 0, ""}, + {"SHN_LORESERVE", Const, 0, ""}, + {"SHN_UNDEF", Const, 0, ""}, + {"SHN_XINDEX", Const, 0, ""}, + {"SHT_DYNAMIC", Const, 0, ""}, + {"SHT_DYNSYM", Const, 0, ""}, + {"SHT_FINI_ARRAY", Const, 0, ""}, + {"SHT_GNU_ATTRIBUTES", Const, 0, ""}, + {"SHT_GNU_HASH", Const, 0, ""}, + {"SHT_GNU_LIBLIST", Const, 0, ""}, + {"SHT_GNU_VERDEF", Const, 0, ""}, + {"SHT_GNU_VERNEED", Const, 0, ""}, + {"SHT_GNU_VERSYM", Const, 0, ""}, + {"SHT_GROUP", Const, 0, ""}, + {"SHT_HASH", Const, 0, ""}, + {"SHT_HIOS", Const, 0, ""}, + {"SHT_HIPROC", Const, 0, ""}, + {"SHT_HIUSER", Const, 0, ""}, + {"SHT_INIT_ARRAY", Const, 0, ""}, + {"SHT_LOOS", Const, 0, ""}, + {"SHT_LOPROC", Const, 0, ""}, + {"SHT_LOUSER", Const, 0, ""}, + {"SHT_MIPS_ABIFLAGS", Const, 17, ""}, + {"SHT_NOBITS", Const, 0, ""}, + {"SHT_NOTE", Const, 0, ""}, + {"SHT_NULL", Const, 0, ""}, + {"SHT_PREINIT_ARRAY", Const, 0, ""}, + {"SHT_PROGBITS", Const, 0, ""}, + {"SHT_REL", Const, 0, ""}, + {"SHT_RELA", Const, 0, ""}, + {"SHT_RISCV_ATTRIBUTES", Const, 25, ""}, + {"SHT_SHLIB", Const, 0, ""}, + {"SHT_STRTAB", Const, 0, ""}, + {"SHT_SYMTAB", Const, 0, ""}, + {"SHT_SYMTAB_SHNDX", Const, 0, ""}, + {"STB_GLOBAL", Const, 0, ""}, + {"STB_HIOS", Const, 0, ""}, + {"STB_HIPROC", Const, 0, ""}, + {"STB_LOCAL", Const, 0, ""}, + {"STB_LOOS", Const, 0, ""}, + {"STB_LOPROC", Const, 0, ""}, + {"STB_WEAK", Const, 0, ""}, + {"STT_COMMON", Const, 0, ""}, + {"STT_FILE", Const, 0, ""}, + {"STT_FUNC", Const, 0, ""}, + {"STT_GNU_IFUNC", Const, 23, ""}, + {"STT_HIOS", Const, 0, ""}, + {"STT_HIPROC", Const, 0, ""}, + {"STT_LOOS", Const, 0, ""}, + {"STT_LOPROC", Const, 0, ""}, + {"STT_NOTYPE", Const, 0, ""}, + {"STT_OBJECT", Const, 0, ""}, + {"STT_RELC", Const, 23, ""}, + {"STT_SECTION", Const, 0, ""}, + {"STT_SRELC", Const, 23, ""}, + {"STT_TLS", Const, 0, ""}, + {"STV_DEFAULT", Const, 0, ""}, + {"STV_HIDDEN", Const, 0, ""}, + {"STV_INTERNAL", Const, 0, ""}, + {"STV_PROTECTED", Const, 0, ""}, + {"ST_BIND", Func, 0, "func(info uint8) SymBind"}, + {"ST_INFO", Func, 0, "func(bind SymBind, typ SymType) uint8"}, + {"ST_TYPE", Func, 0, "func(info uint8) SymType"}, + {"ST_VISIBILITY", Func, 0, "func(other uint8) SymVis"}, + {"Section", Type, 0, ""}, + {"Section.ReaderAt", Field, 0, ""}, + {"Section.SectionHeader", Field, 0, ""}, + {"Section32", Type, 0, ""}, + {"Section32.Addr", Field, 0, ""}, + {"Section32.Addralign", Field, 0, ""}, + {"Section32.Entsize", Field, 0, ""}, + {"Section32.Flags", Field, 0, ""}, + {"Section32.Info", Field, 0, ""}, + {"Section32.Link", Field, 0, ""}, + {"Section32.Name", Field, 0, ""}, + {"Section32.Off", Field, 0, ""}, + {"Section32.Size", Field, 0, ""}, + {"Section32.Type", Field, 0, ""}, + {"Section64", Type, 0, ""}, + {"Section64.Addr", Field, 0, ""}, + {"Section64.Addralign", Field, 0, ""}, + {"Section64.Entsize", Field, 0, ""}, + {"Section64.Flags", Field, 0, ""}, + {"Section64.Info", Field, 0, ""}, + {"Section64.Link", Field, 0, ""}, + {"Section64.Name", Field, 0, ""}, + {"Section64.Off", Field, 0, ""}, + {"Section64.Size", Field, 0, ""}, + {"Section64.Type", Field, 0, ""}, + {"SectionFlag", Type, 0, ""}, + {"SectionHeader", Type, 0, ""}, + {"SectionHeader.Addr", Field, 0, ""}, + {"SectionHeader.Addralign", Field, 0, ""}, + {"SectionHeader.Entsize", Field, 0, ""}, + {"SectionHeader.FileSize", Field, 6, ""}, + {"SectionHeader.Flags", Field, 0, ""}, + {"SectionHeader.Info", Field, 0, ""}, + {"SectionHeader.Link", Field, 0, ""}, + {"SectionHeader.Name", Field, 0, ""}, + {"SectionHeader.Offset", Field, 0, ""}, + {"SectionHeader.Size", Field, 0, ""}, + {"SectionHeader.Type", Field, 0, ""}, + {"SectionIndex", Type, 0, ""}, + {"SectionType", Type, 0, ""}, + {"Sym32", Type, 0, ""}, + {"Sym32.Info", Field, 0, ""}, + {"Sym32.Name", Field, 0, ""}, + {"Sym32.Other", Field, 0, ""}, + {"Sym32.Shndx", Field, 0, ""}, + {"Sym32.Size", Field, 0, ""}, + {"Sym32.Value", Field, 0, ""}, + {"Sym32Size", Const, 0, ""}, + {"Sym64", Type, 0, ""}, + {"Sym64.Info", Field, 0, ""}, + {"Sym64.Name", Field, 0, ""}, + {"Sym64.Other", Field, 0, ""}, + {"Sym64.Shndx", Field, 0, ""}, + {"Sym64.Size", Field, 0, ""}, + {"Sym64.Value", Field, 0, ""}, + {"Sym64Size", Const, 0, ""}, + {"SymBind", Type, 0, ""}, + {"SymType", Type, 0, ""}, + {"SymVis", Type, 0, ""}, + {"Symbol", Type, 0, ""}, + {"Symbol.HasVersion", Field, 24, ""}, + {"Symbol.Info", Field, 0, ""}, + {"Symbol.Library", Field, 13, ""}, + {"Symbol.Name", Field, 0, ""}, + {"Symbol.Other", Field, 0, ""}, + {"Symbol.Section", Field, 0, ""}, + {"Symbol.Size", Field, 0, ""}, + {"Symbol.Value", Field, 0, ""}, + {"Symbol.Version", Field, 13, ""}, + {"Symbol.VersionIndex", Field, 24, ""}, + {"Type", Type, 0, ""}, + {"VER_FLG_BASE", Const, 24, ""}, + {"VER_FLG_INFO", Const, 24, ""}, + {"VER_FLG_WEAK", Const, 24, ""}, + {"Version", Type, 0, ""}, + {"VersionIndex", Type, 24, ""}, + }, + "debug/gosym": { + {"(*DecodingError).Error", Method, 0, ""}, + {"(*LineTable).LineToPC", Method, 0, ""}, + {"(*LineTable).PCToLine", Method, 0, ""}, + {"(*Sym).BaseName", Method, 0, ""}, + {"(*Sym).PackageName", Method, 0, ""}, + {"(*Sym).ReceiverName", Method, 0, ""}, + {"(*Sym).Static", Method, 0, ""}, + {"(*Table).LineToPC", Method, 0, ""}, + {"(*Table).LookupFunc", Method, 0, ""}, + {"(*Table).LookupSym", Method, 0, ""}, + {"(*Table).PCToFunc", Method, 0, ""}, + {"(*Table).PCToLine", Method, 0, ""}, + {"(*Table).SymByAddr", Method, 0, ""}, + {"(*UnknownLineError).Error", Method, 0, ""}, + {"(Func).BaseName", Method, 0, ""}, + {"(Func).PackageName", Method, 0, ""}, + {"(Func).ReceiverName", Method, 0, ""}, + {"(Func).Static", Method, 0, ""}, + {"(UnknownFileError).Error", Method, 0, ""}, + {"DecodingError", Type, 0, ""}, + {"Func", Type, 0, ""}, + {"Func.End", Field, 0, ""}, + {"Func.Entry", Field, 0, ""}, + {"Func.FrameSize", Field, 0, ""}, + {"Func.LineTable", Field, 0, ""}, + {"Func.Locals", Field, 0, ""}, + {"Func.Obj", Field, 0, ""}, + {"Func.Params", Field, 0, ""}, + {"Func.Sym", Field, 0, ""}, + {"LineTable", Type, 0, ""}, + {"LineTable.Data", Field, 0, ""}, + {"LineTable.Line", Field, 0, ""}, + {"LineTable.PC", Field, 0, ""}, + {"NewLineTable", Func, 0, "func(data []byte, text uint64) *LineTable"}, + {"NewTable", Func, 0, "func(symtab []byte, pcln *LineTable) (*Table, error)"}, + {"Obj", Type, 0, ""}, + {"Obj.Funcs", Field, 0, ""}, + {"Obj.Paths", Field, 0, ""}, + {"Sym", Type, 0, ""}, + {"Sym.Func", Field, 0, ""}, + {"Sym.GoType", Field, 0, ""}, + {"Sym.Name", Field, 0, ""}, + {"Sym.Type", Field, 0, ""}, + {"Sym.Value", Field, 0, ""}, + {"Table", Type, 0, ""}, + {"Table.Files", Field, 0, ""}, + {"Table.Funcs", Field, 0, ""}, + {"Table.Objs", Field, 0, ""}, + {"Table.Syms", Field, 0, ""}, + {"UnknownFileError", Type, 0, ""}, + {"UnknownLineError", Type, 0, ""}, + {"UnknownLineError.File", Field, 0, ""}, + {"UnknownLineError.Line", Field, 0, ""}, + }, + "debug/macho": { + {"(*FatFile).Close", Method, 3, ""}, + {"(*File).Close", Method, 0, ""}, + {"(*File).DWARF", Method, 0, ""}, + {"(*File).ImportedLibraries", Method, 0, ""}, + {"(*File).ImportedSymbols", Method, 0, ""}, + {"(*File).Section", Method, 0, ""}, + {"(*File).Segment", Method, 0, ""}, + {"(*FormatError).Error", Method, 0, ""}, + {"(*Section).Data", Method, 0, ""}, + {"(*Section).Open", Method, 0, ""}, + {"(*Segment).Data", Method, 0, ""}, + {"(*Segment).Open", Method, 0, ""}, + {"(Cpu).GoString", Method, 0, ""}, + {"(Cpu).String", Method, 0, ""}, + {"(Dylib).Raw", Method, 0, ""}, + {"(Dysymtab).Raw", Method, 0, ""}, + {"(FatArch).Close", Method, 3, ""}, + {"(FatArch).DWARF", Method, 3, ""}, + {"(FatArch).ImportedLibraries", Method, 3, ""}, + {"(FatArch).ImportedSymbols", Method, 3, ""}, + {"(FatArch).Section", Method, 3, ""}, + {"(FatArch).Segment", Method, 3, ""}, + {"(LoadBytes).Raw", Method, 0, ""}, + {"(LoadCmd).GoString", Method, 0, ""}, + {"(LoadCmd).String", Method, 0, ""}, + {"(RelocTypeARM).GoString", Method, 10, ""}, + {"(RelocTypeARM).String", Method, 10, ""}, + {"(RelocTypeARM64).GoString", Method, 10, ""}, + {"(RelocTypeARM64).String", Method, 10, ""}, + {"(RelocTypeGeneric).GoString", Method, 10, ""}, + {"(RelocTypeGeneric).String", Method, 10, ""}, + {"(RelocTypeX86_64).GoString", Method, 10, ""}, + {"(RelocTypeX86_64).String", Method, 10, ""}, + {"(Rpath).Raw", Method, 10, ""}, + {"(Section).ReadAt", Method, 0, ""}, + {"(Segment).Raw", Method, 0, ""}, + {"(Segment).ReadAt", Method, 0, ""}, + {"(Symtab).Raw", Method, 0, ""}, + {"(Type).GoString", Method, 10, ""}, + {"(Type).String", Method, 10, ""}, + {"ARM64_RELOC_ADDEND", Const, 10, ""}, + {"ARM64_RELOC_BRANCH26", Const, 10, ""}, + {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10, ""}, + {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10, ""}, + {"ARM64_RELOC_PAGE21", Const, 10, ""}, + {"ARM64_RELOC_PAGEOFF12", Const, 10, ""}, + {"ARM64_RELOC_POINTER_TO_GOT", Const, 10, ""}, + {"ARM64_RELOC_SUBTRACTOR", Const, 10, ""}, + {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10, ""}, + {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10, ""}, + {"ARM64_RELOC_UNSIGNED", Const, 10, ""}, + {"ARM_RELOC_BR24", Const, 10, ""}, + {"ARM_RELOC_HALF", Const, 10, ""}, + {"ARM_RELOC_HALF_SECTDIFF", Const, 10, ""}, + {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10, ""}, + {"ARM_RELOC_PAIR", Const, 10, ""}, + {"ARM_RELOC_PB_LA_PTR", Const, 10, ""}, + {"ARM_RELOC_SECTDIFF", Const, 10, ""}, + {"ARM_RELOC_VANILLA", Const, 10, ""}, + {"ARM_THUMB_32BIT_BRANCH", Const, 10, ""}, + {"ARM_THUMB_RELOC_BR22", Const, 10, ""}, + {"Cpu", Type, 0, ""}, + {"Cpu386", Const, 0, ""}, + {"CpuAmd64", Const, 0, ""}, + {"CpuArm", Const, 3, ""}, + {"CpuArm64", Const, 11, ""}, + {"CpuPpc", Const, 3, ""}, + {"CpuPpc64", Const, 3, ""}, + {"Dylib", Type, 0, ""}, + {"Dylib.CompatVersion", Field, 0, ""}, + {"Dylib.CurrentVersion", Field, 0, ""}, + {"Dylib.LoadBytes", Field, 0, ""}, + {"Dylib.Name", Field, 0, ""}, + {"Dylib.Time", Field, 0, ""}, + {"DylibCmd", Type, 0, ""}, + {"DylibCmd.Cmd", Field, 0, ""}, + {"DylibCmd.CompatVersion", Field, 0, ""}, + {"DylibCmd.CurrentVersion", Field, 0, ""}, + {"DylibCmd.Len", Field, 0, ""}, + {"DylibCmd.Name", Field, 0, ""}, + {"DylibCmd.Time", Field, 0, ""}, + {"Dysymtab", Type, 0, ""}, + {"Dysymtab.DysymtabCmd", Field, 0, ""}, + {"Dysymtab.IndirectSyms", Field, 0, ""}, + {"Dysymtab.LoadBytes", Field, 0, ""}, + {"DysymtabCmd", Type, 0, ""}, + {"DysymtabCmd.Cmd", Field, 0, ""}, + {"DysymtabCmd.Extrefsymoff", Field, 0, ""}, + {"DysymtabCmd.Extreloff", Field, 0, ""}, + {"DysymtabCmd.Iextdefsym", Field, 0, ""}, + {"DysymtabCmd.Ilocalsym", Field, 0, ""}, + {"DysymtabCmd.Indirectsymoff", Field, 0, ""}, + {"DysymtabCmd.Iundefsym", Field, 0, ""}, + {"DysymtabCmd.Len", Field, 0, ""}, + {"DysymtabCmd.Locreloff", Field, 0, ""}, + {"DysymtabCmd.Modtaboff", Field, 0, ""}, + {"DysymtabCmd.Nextdefsym", Field, 0, ""}, + {"DysymtabCmd.Nextrefsyms", Field, 0, ""}, + {"DysymtabCmd.Nextrel", Field, 0, ""}, + {"DysymtabCmd.Nindirectsyms", Field, 0, ""}, + {"DysymtabCmd.Nlocalsym", Field, 0, ""}, + {"DysymtabCmd.Nlocrel", Field, 0, ""}, + {"DysymtabCmd.Nmodtab", Field, 0, ""}, + {"DysymtabCmd.Ntoc", Field, 0, ""}, + {"DysymtabCmd.Nundefsym", Field, 0, ""}, + {"DysymtabCmd.Tocoffset", Field, 0, ""}, + {"ErrNotFat", Var, 3, ""}, + {"FatArch", Type, 3, ""}, + {"FatArch.FatArchHeader", Field, 3, ""}, + {"FatArch.File", Field, 3, ""}, + {"FatArchHeader", Type, 3, ""}, + {"FatArchHeader.Align", Field, 3, ""}, + {"FatArchHeader.Cpu", Field, 3, ""}, + {"FatArchHeader.Offset", Field, 3, ""}, + {"FatArchHeader.Size", Field, 3, ""}, + {"FatArchHeader.SubCpu", Field, 3, ""}, + {"FatFile", Type, 3, ""}, + {"FatFile.Arches", Field, 3, ""}, + {"FatFile.Magic", Field, 3, ""}, + {"File", Type, 0, ""}, + {"File.ByteOrder", Field, 0, ""}, + {"File.Dysymtab", Field, 0, ""}, + {"File.FileHeader", Field, 0, ""}, + {"File.Loads", Field, 0, ""}, + {"File.Sections", Field, 0, ""}, + {"File.Symtab", Field, 0, ""}, + {"FileHeader", Type, 0, ""}, + {"FileHeader.Cmdsz", Field, 0, ""}, + {"FileHeader.Cpu", Field, 0, ""}, + {"FileHeader.Flags", Field, 0, ""}, + {"FileHeader.Magic", Field, 0, ""}, + {"FileHeader.Ncmd", Field, 0, ""}, + {"FileHeader.SubCpu", Field, 0, ""}, + {"FileHeader.Type", Field, 0, ""}, + {"FlagAllModsBound", Const, 10, ""}, + {"FlagAllowStackExecution", Const, 10, ""}, + {"FlagAppExtensionSafe", Const, 10, ""}, + {"FlagBindAtLoad", Const, 10, ""}, + {"FlagBindsToWeak", Const, 10, ""}, + {"FlagCanonical", Const, 10, ""}, + {"FlagDeadStrippableDylib", Const, 10, ""}, + {"FlagDyldLink", Const, 10, ""}, + {"FlagForceFlat", Const, 10, ""}, + {"FlagHasTLVDescriptors", Const, 10, ""}, + {"FlagIncrLink", Const, 10, ""}, + {"FlagLazyInit", Const, 10, ""}, + {"FlagNoFixPrebinding", Const, 10, ""}, + {"FlagNoHeapExecution", Const, 10, ""}, + {"FlagNoMultiDefs", Const, 10, ""}, + {"FlagNoReexportedDylibs", Const, 10, ""}, + {"FlagNoUndefs", Const, 10, ""}, + {"FlagPIE", Const, 10, ""}, + {"FlagPrebindable", Const, 10, ""}, + {"FlagPrebound", Const, 10, ""}, + {"FlagRootSafe", Const, 10, ""}, + {"FlagSetuidSafe", Const, 10, ""}, + {"FlagSplitSegs", Const, 10, ""}, + {"FlagSubsectionsViaSymbols", Const, 10, ""}, + {"FlagTwoLevel", Const, 10, ""}, + {"FlagWeakDefines", Const, 10, ""}, + {"FormatError", Type, 0, ""}, + {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10, ""}, + {"GENERIC_RELOC_PAIR", Const, 10, ""}, + {"GENERIC_RELOC_PB_LA_PTR", Const, 10, ""}, + {"GENERIC_RELOC_SECTDIFF", Const, 10, ""}, + {"GENERIC_RELOC_TLV", Const, 10, ""}, + {"GENERIC_RELOC_VANILLA", Const, 10, ""}, + {"Load", Type, 0, ""}, + {"LoadBytes", Type, 0, ""}, + {"LoadCmd", Type, 0, ""}, + {"LoadCmdDylib", Const, 0, ""}, + {"LoadCmdDylinker", Const, 0, ""}, + {"LoadCmdDysymtab", Const, 0, ""}, + {"LoadCmdRpath", Const, 10, ""}, + {"LoadCmdSegment", Const, 0, ""}, + {"LoadCmdSegment64", Const, 0, ""}, + {"LoadCmdSymtab", Const, 0, ""}, + {"LoadCmdThread", Const, 0, ""}, + {"LoadCmdUnixThread", Const, 0, ""}, + {"Magic32", Const, 0, ""}, + {"Magic64", Const, 0, ""}, + {"MagicFat", Const, 3, ""}, + {"NewFatFile", Func, 3, "func(r io.ReaderAt) (*FatFile, error)"}, + {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, + {"Nlist32", Type, 0, ""}, + {"Nlist32.Desc", Field, 0, ""}, + {"Nlist32.Name", Field, 0, ""}, + {"Nlist32.Sect", Field, 0, ""}, + {"Nlist32.Type", Field, 0, ""}, + {"Nlist32.Value", Field, 0, ""}, + {"Nlist64", Type, 0, ""}, + {"Nlist64.Desc", Field, 0, ""}, + {"Nlist64.Name", Field, 0, ""}, + {"Nlist64.Sect", Field, 0, ""}, + {"Nlist64.Type", Field, 0, ""}, + {"Nlist64.Value", Field, 0, ""}, + {"Open", Func, 0, "func(name string) (*File, error)"}, + {"OpenFat", Func, 3, "func(name string) (*FatFile, error)"}, + {"Regs386", Type, 0, ""}, + {"Regs386.AX", Field, 0, ""}, + {"Regs386.BP", Field, 0, ""}, + {"Regs386.BX", Field, 0, ""}, + {"Regs386.CS", Field, 0, ""}, + {"Regs386.CX", Field, 0, ""}, + {"Regs386.DI", Field, 0, ""}, + {"Regs386.DS", Field, 0, ""}, + {"Regs386.DX", Field, 0, ""}, + {"Regs386.ES", Field, 0, ""}, + {"Regs386.FLAGS", Field, 0, ""}, + {"Regs386.FS", Field, 0, ""}, + {"Regs386.GS", Field, 0, ""}, + {"Regs386.IP", Field, 0, ""}, + {"Regs386.SI", Field, 0, ""}, + {"Regs386.SP", Field, 0, ""}, + {"Regs386.SS", Field, 0, ""}, + {"RegsAMD64", Type, 0, ""}, + {"RegsAMD64.AX", Field, 0, ""}, + {"RegsAMD64.BP", Field, 0, ""}, + {"RegsAMD64.BX", Field, 0, ""}, + {"RegsAMD64.CS", Field, 0, ""}, + {"RegsAMD64.CX", Field, 0, ""}, + {"RegsAMD64.DI", Field, 0, ""}, + {"RegsAMD64.DX", Field, 0, ""}, + {"RegsAMD64.FLAGS", Field, 0, ""}, + {"RegsAMD64.FS", Field, 0, ""}, + {"RegsAMD64.GS", Field, 0, ""}, + {"RegsAMD64.IP", Field, 0, ""}, + {"RegsAMD64.R10", Field, 0, ""}, + {"RegsAMD64.R11", Field, 0, ""}, + {"RegsAMD64.R12", Field, 0, ""}, + {"RegsAMD64.R13", Field, 0, ""}, + {"RegsAMD64.R14", Field, 0, ""}, + {"RegsAMD64.R15", Field, 0, ""}, + {"RegsAMD64.R8", Field, 0, ""}, + {"RegsAMD64.R9", Field, 0, ""}, + {"RegsAMD64.SI", Field, 0, ""}, + {"RegsAMD64.SP", Field, 0, ""}, + {"Reloc", Type, 10, ""}, + {"Reloc.Addr", Field, 10, ""}, + {"Reloc.Extern", Field, 10, ""}, + {"Reloc.Len", Field, 10, ""}, + {"Reloc.Pcrel", Field, 10, ""}, + {"Reloc.Scattered", Field, 10, ""}, + {"Reloc.Type", Field, 10, ""}, + {"Reloc.Value", Field, 10, ""}, + {"RelocTypeARM", Type, 10, ""}, + {"RelocTypeARM64", Type, 10, ""}, + {"RelocTypeGeneric", Type, 10, ""}, + {"RelocTypeX86_64", Type, 10, ""}, + {"Rpath", Type, 10, ""}, + {"Rpath.LoadBytes", Field, 10, ""}, + {"Rpath.Path", Field, 10, ""}, + {"RpathCmd", Type, 10, ""}, + {"RpathCmd.Cmd", Field, 10, ""}, + {"RpathCmd.Len", Field, 10, ""}, + {"RpathCmd.Path", Field, 10, ""}, + {"Section", Type, 0, ""}, + {"Section.ReaderAt", Field, 0, ""}, + {"Section.Relocs", Field, 10, ""}, + {"Section.SectionHeader", Field, 0, ""}, + {"Section32", Type, 0, ""}, + {"Section32.Addr", Field, 0, ""}, + {"Section32.Align", Field, 0, ""}, + {"Section32.Flags", Field, 0, ""}, + {"Section32.Name", Field, 0, ""}, + {"Section32.Nreloc", Field, 0, ""}, + {"Section32.Offset", Field, 0, ""}, + {"Section32.Reloff", Field, 0, ""}, + {"Section32.Reserve1", Field, 0, ""}, + {"Section32.Reserve2", Field, 0, ""}, + {"Section32.Seg", Field, 0, ""}, + {"Section32.Size", Field, 0, ""}, + {"Section64", Type, 0, ""}, + {"Section64.Addr", Field, 0, ""}, + {"Section64.Align", Field, 0, ""}, + {"Section64.Flags", Field, 0, ""}, + {"Section64.Name", Field, 0, ""}, + {"Section64.Nreloc", Field, 0, ""}, + {"Section64.Offset", Field, 0, ""}, + {"Section64.Reloff", Field, 0, ""}, + {"Section64.Reserve1", Field, 0, ""}, + {"Section64.Reserve2", Field, 0, ""}, + {"Section64.Reserve3", Field, 0, ""}, + {"Section64.Seg", Field, 0, ""}, + {"Section64.Size", Field, 0, ""}, + {"SectionHeader", Type, 0, ""}, + {"SectionHeader.Addr", Field, 0, ""}, + {"SectionHeader.Align", Field, 0, ""}, + {"SectionHeader.Flags", Field, 0, ""}, + {"SectionHeader.Name", Field, 0, ""}, + {"SectionHeader.Nreloc", Field, 0, ""}, + {"SectionHeader.Offset", Field, 0, ""}, + {"SectionHeader.Reloff", Field, 0, ""}, + {"SectionHeader.Seg", Field, 0, ""}, + {"SectionHeader.Size", Field, 0, ""}, + {"Segment", Type, 0, ""}, + {"Segment.LoadBytes", Field, 0, ""}, + {"Segment.ReaderAt", Field, 0, ""}, + {"Segment.SegmentHeader", Field, 0, ""}, + {"Segment32", Type, 0, ""}, + {"Segment32.Addr", Field, 0, ""}, + {"Segment32.Cmd", Field, 0, ""}, + {"Segment32.Filesz", Field, 0, ""}, + {"Segment32.Flag", Field, 0, ""}, + {"Segment32.Len", Field, 0, ""}, + {"Segment32.Maxprot", Field, 0, ""}, + {"Segment32.Memsz", Field, 0, ""}, + {"Segment32.Name", Field, 0, ""}, + {"Segment32.Nsect", Field, 0, ""}, + {"Segment32.Offset", Field, 0, ""}, + {"Segment32.Prot", Field, 0, ""}, + {"Segment64", Type, 0, ""}, + {"Segment64.Addr", Field, 0, ""}, + {"Segment64.Cmd", Field, 0, ""}, + {"Segment64.Filesz", Field, 0, ""}, + {"Segment64.Flag", Field, 0, ""}, + {"Segment64.Len", Field, 0, ""}, + {"Segment64.Maxprot", Field, 0, ""}, + {"Segment64.Memsz", Field, 0, ""}, + {"Segment64.Name", Field, 0, ""}, + {"Segment64.Nsect", Field, 0, ""}, + {"Segment64.Offset", Field, 0, ""}, + {"Segment64.Prot", Field, 0, ""}, + {"SegmentHeader", Type, 0, ""}, + {"SegmentHeader.Addr", Field, 0, ""}, + {"SegmentHeader.Cmd", Field, 0, ""}, + {"SegmentHeader.Filesz", Field, 0, ""}, + {"SegmentHeader.Flag", Field, 0, ""}, + {"SegmentHeader.Len", Field, 0, ""}, + {"SegmentHeader.Maxprot", Field, 0, ""}, + {"SegmentHeader.Memsz", Field, 0, ""}, + {"SegmentHeader.Name", Field, 0, ""}, + {"SegmentHeader.Nsect", Field, 0, ""}, + {"SegmentHeader.Offset", Field, 0, ""}, + {"SegmentHeader.Prot", Field, 0, ""}, + {"Symbol", Type, 0, ""}, + {"Symbol.Desc", Field, 0, ""}, + {"Symbol.Name", Field, 0, ""}, + {"Symbol.Sect", Field, 0, ""}, + {"Symbol.Type", Field, 0, ""}, + {"Symbol.Value", Field, 0, ""}, + {"Symtab", Type, 0, ""}, + {"Symtab.LoadBytes", Field, 0, ""}, + {"Symtab.Syms", Field, 0, ""}, + {"Symtab.SymtabCmd", Field, 0, ""}, + {"SymtabCmd", Type, 0, ""}, + {"SymtabCmd.Cmd", Field, 0, ""}, + {"SymtabCmd.Len", Field, 0, ""}, + {"SymtabCmd.Nsyms", Field, 0, ""}, + {"SymtabCmd.Stroff", Field, 0, ""}, + {"SymtabCmd.Strsize", Field, 0, ""}, + {"SymtabCmd.Symoff", Field, 0, ""}, + {"Thread", Type, 0, ""}, + {"Thread.Cmd", Field, 0, ""}, + {"Thread.Data", Field, 0, ""}, + {"Thread.Len", Field, 0, ""}, + {"Thread.Type", Field, 0, ""}, + {"Type", Type, 0, ""}, + {"TypeBundle", Const, 3, ""}, + {"TypeDylib", Const, 3, ""}, + {"TypeExec", Const, 0, ""}, + {"TypeObj", Const, 0, ""}, + {"X86_64_RELOC_BRANCH", Const, 10, ""}, + {"X86_64_RELOC_GOT", Const, 10, ""}, + {"X86_64_RELOC_GOT_LOAD", Const, 10, ""}, + {"X86_64_RELOC_SIGNED", Const, 10, ""}, + {"X86_64_RELOC_SIGNED_1", Const, 10, ""}, + {"X86_64_RELOC_SIGNED_2", Const, 10, ""}, + {"X86_64_RELOC_SIGNED_4", Const, 10, ""}, + {"X86_64_RELOC_SUBTRACTOR", Const, 10, ""}, + {"X86_64_RELOC_TLV", Const, 10, ""}, + {"X86_64_RELOC_UNSIGNED", Const, 10, ""}, + }, + "debug/pe": { + {"(*COFFSymbol).FullName", Method, 8, ""}, + {"(*File).COFFSymbolReadSectionDefAux", Method, 19, ""}, + {"(*File).Close", Method, 0, ""}, + {"(*File).DWARF", Method, 0, ""}, + {"(*File).ImportedLibraries", Method, 0, ""}, + {"(*File).ImportedSymbols", Method, 0, ""}, + {"(*File).Section", Method, 0, ""}, + {"(*FormatError).Error", Method, 0, ""}, + {"(*Section).Data", Method, 0, ""}, + {"(*Section).Open", Method, 0, ""}, + {"(Section).ReadAt", Method, 0, ""}, + {"(StringTable).String", Method, 8, ""}, + {"COFFSymbol", Type, 1, ""}, + {"COFFSymbol.Name", Field, 1, ""}, + {"COFFSymbol.NumberOfAuxSymbols", Field, 1, ""}, + {"COFFSymbol.SectionNumber", Field, 1, ""}, + {"COFFSymbol.StorageClass", Field, 1, ""}, + {"COFFSymbol.Type", Field, 1, ""}, + {"COFFSymbol.Value", Field, 1, ""}, + {"COFFSymbolAuxFormat5", Type, 19, ""}, + {"COFFSymbolAuxFormat5.Checksum", Field, 19, ""}, + {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19, ""}, + {"COFFSymbolAuxFormat5.NumRelocs", Field, 19, ""}, + {"COFFSymbolAuxFormat5.SecNum", Field, 19, ""}, + {"COFFSymbolAuxFormat5.Selection", Field, 19, ""}, + {"COFFSymbolAuxFormat5.Size", Field, 19, ""}, + {"COFFSymbolSize", Const, 1, ""}, + {"DataDirectory", Type, 3, ""}, + {"DataDirectory.Size", Field, 3, ""}, + {"DataDirectory.VirtualAddress", Field, 3, ""}, + {"File", Type, 0, ""}, + {"File.COFFSymbols", Field, 8, ""}, + {"File.FileHeader", Field, 0, ""}, + {"File.OptionalHeader", Field, 3, ""}, + {"File.Sections", Field, 0, ""}, + {"File.StringTable", Field, 8, ""}, + {"File.Symbols", Field, 1, ""}, + {"FileHeader", Type, 0, ""}, + {"FileHeader.Characteristics", Field, 0, ""}, + {"FileHeader.Machine", Field, 0, ""}, + {"FileHeader.NumberOfSections", Field, 0, ""}, + {"FileHeader.NumberOfSymbols", Field, 0, ""}, + {"FileHeader.PointerToSymbolTable", Field, 0, ""}, + {"FileHeader.SizeOfOptionalHeader", Field, 0, ""}, + {"FileHeader.TimeDateStamp", Field, 0, ""}, + {"FormatError", Type, 0, ""}, + {"IMAGE_COMDAT_SELECT_ANY", Const, 19, ""}, + {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19, ""}, + {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19, ""}, + {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19, ""}, + {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19, ""}, + {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19, ""}, + {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11, ""}, + {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11, ""}, + {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15, ""}, + {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15, ""}, + {"IMAGE_FILE_32BIT_MACHINE", Const, 15, ""}, + {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15, ""}, + {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15, ""}, + {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15, ""}, + {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15, ""}, + {"IMAGE_FILE_DLL", Const, 15, ""}, + {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15, ""}, + {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15, ""}, + {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15, ""}, + {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15, ""}, + {"IMAGE_FILE_MACHINE_AM33", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_AMD64", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_ARM", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_ARM64", Const, 11, ""}, + {"IMAGE_FILE_MACHINE_ARMNT", Const, 12, ""}, + {"IMAGE_FILE_MACHINE_EBC", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_I386", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_IA64", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19, ""}, + {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19, ""}, + {"IMAGE_FILE_MACHINE_M32R", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_MIPS16", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_POWERPC", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_R4000", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_RISCV128", Const, 20, ""}, + {"IMAGE_FILE_MACHINE_RISCV32", Const, 20, ""}, + {"IMAGE_FILE_MACHINE_RISCV64", Const, 20, ""}, + {"IMAGE_FILE_MACHINE_SH3", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_SH4", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_SH5", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_THUMB", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0, ""}, + {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0, ""}, + {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15, ""}, + {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15, ""}, + {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15, ""}, + {"IMAGE_FILE_SYSTEM", Const, 15, ""}, + {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15, ""}, + {"IMAGE_SCN_CNT_CODE", Const, 19, ""}, + {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19, ""}, + {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19, ""}, + {"IMAGE_SCN_LNK_COMDAT", Const, 19, ""}, + {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19, ""}, + {"IMAGE_SCN_MEM_EXECUTE", Const, 19, ""}, + {"IMAGE_SCN_MEM_READ", Const, 19, ""}, + {"IMAGE_SCN_MEM_WRITE", Const, 19, ""}, + {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_NATIVE", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15, ""}, + {"IMAGE_SUBSYSTEM_XBOX", Const, 15, ""}, + {"ImportDirectory", Type, 0, ""}, + {"ImportDirectory.FirstThunk", Field, 0, ""}, + {"ImportDirectory.ForwarderChain", Field, 0, ""}, + {"ImportDirectory.Name", Field, 0, ""}, + {"ImportDirectory.OriginalFirstThunk", Field, 0, ""}, + {"ImportDirectory.TimeDateStamp", Field, 0, ""}, + {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, + {"Open", Func, 0, "func(name string) (*File, error)"}, + {"OptionalHeader32", Type, 3, ""}, + {"OptionalHeader32.AddressOfEntryPoint", Field, 3, ""}, + {"OptionalHeader32.BaseOfCode", Field, 3, ""}, + {"OptionalHeader32.BaseOfData", Field, 3, ""}, + {"OptionalHeader32.CheckSum", Field, 3, ""}, + {"OptionalHeader32.DataDirectory", Field, 3, ""}, + {"OptionalHeader32.DllCharacteristics", Field, 3, ""}, + {"OptionalHeader32.FileAlignment", Field, 3, ""}, + {"OptionalHeader32.ImageBase", Field, 3, ""}, + {"OptionalHeader32.LoaderFlags", Field, 3, ""}, + {"OptionalHeader32.Magic", Field, 3, ""}, + {"OptionalHeader32.MajorImageVersion", Field, 3, ""}, + {"OptionalHeader32.MajorLinkerVersion", Field, 3, ""}, + {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3, ""}, + {"OptionalHeader32.MajorSubsystemVersion", Field, 3, ""}, + {"OptionalHeader32.MinorImageVersion", Field, 3, ""}, + {"OptionalHeader32.MinorLinkerVersion", Field, 3, ""}, + {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3, ""}, + {"OptionalHeader32.MinorSubsystemVersion", Field, 3, ""}, + {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3, ""}, + {"OptionalHeader32.SectionAlignment", Field, 3, ""}, + {"OptionalHeader32.SizeOfCode", Field, 3, ""}, + {"OptionalHeader32.SizeOfHeaders", Field, 3, ""}, + {"OptionalHeader32.SizeOfHeapCommit", Field, 3, ""}, + {"OptionalHeader32.SizeOfHeapReserve", Field, 3, ""}, + {"OptionalHeader32.SizeOfImage", Field, 3, ""}, + {"OptionalHeader32.SizeOfInitializedData", Field, 3, ""}, + {"OptionalHeader32.SizeOfStackCommit", Field, 3, ""}, + {"OptionalHeader32.SizeOfStackReserve", Field, 3, ""}, + {"OptionalHeader32.SizeOfUninitializedData", Field, 3, ""}, + {"OptionalHeader32.Subsystem", Field, 3, ""}, + {"OptionalHeader32.Win32VersionValue", Field, 3, ""}, + {"OptionalHeader64", Type, 3, ""}, + {"OptionalHeader64.AddressOfEntryPoint", Field, 3, ""}, + {"OptionalHeader64.BaseOfCode", Field, 3, ""}, + {"OptionalHeader64.CheckSum", Field, 3, ""}, + {"OptionalHeader64.DataDirectory", Field, 3, ""}, + {"OptionalHeader64.DllCharacteristics", Field, 3, ""}, + {"OptionalHeader64.FileAlignment", Field, 3, ""}, + {"OptionalHeader64.ImageBase", Field, 3, ""}, + {"OptionalHeader64.LoaderFlags", Field, 3, ""}, + {"OptionalHeader64.Magic", Field, 3, ""}, + {"OptionalHeader64.MajorImageVersion", Field, 3, ""}, + {"OptionalHeader64.MajorLinkerVersion", Field, 3, ""}, + {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3, ""}, + {"OptionalHeader64.MajorSubsystemVersion", Field, 3, ""}, + {"OptionalHeader64.MinorImageVersion", Field, 3, ""}, + {"OptionalHeader64.MinorLinkerVersion", Field, 3, ""}, + {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3, ""}, + {"OptionalHeader64.MinorSubsystemVersion", Field, 3, ""}, + {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3, ""}, + {"OptionalHeader64.SectionAlignment", Field, 3, ""}, + {"OptionalHeader64.SizeOfCode", Field, 3, ""}, + {"OptionalHeader64.SizeOfHeaders", Field, 3, ""}, + {"OptionalHeader64.SizeOfHeapCommit", Field, 3, ""}, + {"OptionalHeader64.SizeOfHeapReserve", Field, 3, ""}, + {"OptionalHeader64.SizeOfImage", Field, 3, ""}, + {"OptionalHeader64.SizeOfInitializedData", Field, 3, ""}, + {"OptionalHeader64.SizeOfStackCommit", Field, 3, ""}, + {"OptionalHeader64.SizeOfStackReserve", Field, 3, ""}, + {"OptionalHeader64.SizeOfUninitializedData", Field, 3, ""}, + {"OptionalHeader64.Subsystem", Field, 3, ""}, + {"OptionalHeader64.Win32VersionValue", Field, 3, ""}, + {"Reloc", Type, 8, ""}, + {"Reloc.SymbolTableIndex", Field, 8, ""}, + {"Reloc.Type", Field, 8, ""}, + {"Reloc.VirtualAddress", Field, 8, ""}, + {"Section", Type, 0, ""}, + {"Section.ReaderAt", Field, 0, ""}, + {"Section.Relocs", Field, 8, ""}, + {"Section.SectionHeader", Field, 0, ""}, + {"SectionHeader", Type, 0, ""}, + {"SectionHeader.Characteristics", Field, 0, ""}, + {"SectionHeader.Name", Field, 0, ""}, + {"SectionHeader.NumberOfLineNumbers", Field, 0, ""}, + {"SectionHeader.NumberOfRelocations", Field, 0, ""}, + {"SectionHeader.Offset", Field, 0, ""}, + {"SectionHeader.PointerToLineNumbers", Field, 0, ""}, + {"SectionHeader.PointerToRelocations", Field, 0, ""}, + {"SectionHeader.Size", Field, 0, ""}, + {"SectionHeader.VirtualAddress", Field, 0, ""}, + {"SectionHeader.VirtualSize", Field, 0, ""}, + {"SectionHeader32", Type, 0, ""}, + {"SectionHeader32.Characteristics", Field, 0, ""}, + {"SectionHeader32.Name", Field, 0, ""}, + {"SectionHeader32.NumberOfLineNumbers", Field, 0, ""}, + {"SectionHeader32.NumberOfRelocations", Field, 0, ""}, + {"SectionHeader32.PointerToLineNumbers", Field, 0, ""}, + {"SectionHeader32.PointerToRawData", Field, 0, ""}, + {"SectionHeader32.PointerToRelocations", Field, 0, ""}, + {"SectionHeader32.SizeOfRawData", Field, 0, ""}, + {"SectionHeader32.VirtualAddress", Field, 0, ""}, + {"SectionHeader32.VirtualSize", Field, 0, ""}, + {"StringTable", Type, 8, ""}, + {"Symbol", Type, 1, ""}, + {"Symbol.Name", Field, 1, ""}, + {"Symbol.SectionNumber", Field, 1, ""}, + {"Symbol.StorageClass", Field, 1, ""}, + {"Symbol.Type", Field, 1, ""}, + {"Symbol.Value", Field, 1, ""}, + }, + "debug/plan9obj": { + {"(*File).Close", Method, 3, ""}, + {"(*File).Section", Method, 3, ""}, + {"(*File).Symbols", Method, 3, ""}, + {"(*Section).Data", Method, 3, ""}, + {"(*Section).Open", Method, 3, ""}, + {"(Section).ReadAt", Method, 3, ""}, + {"ErrNoSymbols", Var, 18, ""}, + {"File", Type, 3, ""}, + {"File.FileHeader", Field, 3, ""}, + {"File.Sections", Field, 3, ""}, + {"FileHeader", Type, 3, ""}, + {"FileHeader.Bss", Field, 3, ""}, + {"FileHeader.Entry", Field, 3, ""}, + {"FileHeader.HdrSize", Field, 4, ""}, + {"FileHeader.LoadAddress", Field, 4, ""}, + {"FileHeader.Magic", Field, 3, ""}, + {"FileHeader.PtrSize", Field, 3, ""}, + {"Magic386", Const, 3, ""}, + {"Magic64", Const, 3, ""}, + {"MagicAMD64", Const, 3, ""}, + {"MagicARM", Const, 3, ""}, + {"NewFile", Func, 3, "func(r io.ReaderAt) (*File, error)"}, + {"Open", Func, 3, "func(name string) (*File, error)"}, + {"Section", Type, 3, ""}, + {"Section.ReaderAt", Field, 3, ""}, + {"Section.SectionHeader", Field, 3, ""}, + {"SectionHeader", Type, 3, ""}, + {"SectionHeader.Name", Field, 3, ""}, + {"SectionHeader.Offset", Field, 3, ""}, + {"SectionHeader.Size", Field, 3, ""}, + {"Sym", Type, 3, ""}, + {"Sym.Name", Field, 3, ""}, + {"Sym.Type", Field, 3, ""}, + {"Sym.Value", Field, 3, ""}, + }, + "embed": { + {"(FS).Open", Method, 16, ""}, + {"(FS).ReadDir", Method, 16, ""}, + {"(FS).ReadFile", Method, 16, ""}, + {"FS", Type, 16, ""}, + }, + "encoding": { + {"BinaryAppender", Type, 24, ""}, + {"BinaryMarshaler", Type, 2, ""}, + {"BinaryUnmarshaler", Type, 2, ""}, + {"TextAppender", Type, 24, ""}, + {"TextMarshaler", Type, 2, ""}, + {"TextUnmarshaler", Type, 2, ""}, + }, + "encoding/ascii85": { + {"(CorruptInputError).Error", Method, 0, ""}, + {"CorruptInputError", Type, 0, ""}, + {"Decode", Func, 0, "func(dst []byte, src []byte, flush bool) (ndst int, nsrc int, err error)"}, + {"Encode", Func, 0, "func(dst []byte, src []byte) int"}, + {"MaxEncodedLen", Func, 0, "func(n int) int"}, + {"NewDecoder", Func, 0, "func(r io.Reader) io.Reader"}, + {"NewEncoder", Func, 0, "func(w io.Writer) io.WriteCloser"}, + }, + "encoding/asn1": { + {"(BitString).At", Method, 0, ""}, + {"(BitString).RightAlign", Method, 0, ""}, + {"(ObjectIdentifier).Equal", Method, 0, ""}, + {"(ObjectIdentifier).String", Method, 3, ""}, + {"(StructuralError).Error", Method, 0, ""}, + {"(SyntaxError).Error", Method, 0, ""}, + {"BitString", Type, 0, ""}, + {"BitString.BitLength", Field, 0, ""}, + {"BitString.Bytes", Field, 0, ""}, + {"ClassApplication", Const, 6, ""}, + {"ClassContextSpecific", Const, 6, ""}, + {"ClassPrivate", Const, 6, ""}, + {"ClassUniversal", Const, 6, ""}, + {"Enumerated", Type, 0, ""}, + {"Flag", Type, 0, ""}, + {"Marshal", Func, 0, "func(val any) ([]byte, error)"}, + {"MarshalWithParams", Func, 10, "func(val any, params string) ([]byte, error)"}, + {"NullBytes", Var, 9, ""}, + {"NullRawValue", Var, 9, ""}, + {"ObjectIdentifier", Type, 0, ""}, + {"RawContent", Type, 0, ""}, + {"RawValue", Type, 0, ""}, + {"RawValue.Bytes", Field, 0, ""}, + {"RawValue.Class", Field, 0, ""}, + {"RawValue.FullBytes", Field, 0, ""}, + {"RawValue.IsCompound", Field, 0, ""}, + {"RawValue.Tag", Field, 0, ""}, + {"StructuralError", Type, 0, ""}, + {"StructuralError.Msg", Field, 0, ""}, + {"SyntaxError", Type, 0, ""}, + {"SyntaxError.Msg", Field, 0, ""}, + {"TagBMPString", Const, 14, ""}, + {"TagBitString", Const, 6, ""}, + {"TagBoolean", Const, 6, ""}, + {"TagEnum", Const, 6, ""}, + {"TagGeneralString", Const, 6, ""}, + {"TagGeneralizedTime", Const, 6, ""}, + {"TagIA5String", Const, 6, ""}, + {"TagInteger", Const, 6, ""}, + {"TagNull", Const, 9, ""}, + {"TagNumericString", Const, 10, ""}, + {"TagOID", Const, 6, ""}, + {"TagOctetString", Const, 6, ""}, + {"TagPrintableString", Const, 6, ""}, + {"TagSequence", Const, 6, ""}, + {"TagSet", Const, 6, ""}, + {"TagT61String", Const, 6, ""}, + {"TagUTCTime", Const, 6, ""}, + {"TagUTF8String", Const, 6, ""}, + {"Unmarshal", Func, 0, "func(b []byte, val any) (rest []byte, err error)"}, + {"UnmarshalWithParams", Func, 0, "func(b []byte, val any, params string) (rest []byte, err error)"}, + }, + "encoding/base32": { + {"(*Encoding).AppendDecode", Method, 22, ""}, + {"(*Encoding).AppendEncode", Method, 22, ""}, + {"(*Encoding).Decode", Method, 0, ""}, + {"(*Encoding).DecodeString", Method, 0, ""}, + {"(*Encoding).DecodedLen", Method, 0, ""}, + {"(*Encoding).Encode", Method, 0, ""}, + {"(*Encoding).EncodeToString", Method, 0, ""}, + {"(*Encoding).EncodedLen", Method, 0, ""}, + {"(CorruptInputError).Error", Method, 0, ""}, + {"(Encoding).WithPadding", Method, 9, ""}, + {"CorruptInputError", Type, 0, ""}, + {"Encoding", Type, 0, ""}, + {"HexEncoding", Var, 0, ""}, + {"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"}, + {"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"}, + {"NewEncoding", Func, 0, "func(encoder string) *Encoding"}, + {"NoPadding", Const, 9, ""}, + {"StdEncoding", Var, 0, ""}, + {"StdPadding", Const, 9, ""}, + }, + "encoding/base64": { + {"(*Encoding).AppendDecode", Method, 22, ""}, + {"(*Encoding).AppendEncode", Method, 22, ""}, + {"(*Encoding).Decode", Method, 0, ""}, + {"(*Encoding).DecodeString", Method, 0, ""}, + {"(*Encoding).DecodedLen", Method, 0, ""}, + {"(*Encoding).Encode", Method, 0, ""}, + {"(*Encoding).EncodeToString", Method, 0, ""}, + {"(*Encoding).EncodedLen", Method, 0, ""}, + {"(CorruptInputError).Error", Method, 0, ""}, + {"(Encoding).Strict", Method, 8, ""}, + {"(Encoding).WithPadding", Method, 5, ""}, + {"CorruptInputError", Type, 0, ""}, + {"Encoding", Type, 0, ""}, + {"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"}, + {"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"}, + {"NewEncoding", Func, 0, "func(encoder string) *Encoding"}, + {"NoPadding", Const, 5, ""}, + {"RawStdEncoding", Var, 5, ""}, + {"RawURLEncoding", Var, 5, ""}, + {"StdEncoding", Var, 0, ""}, + {"StdPadding", Const, 5, ""}, + {"URLEncoding", Var, 0, ""}, + }, + "encoding/binary": { + {"Append", Func, 23, "func(buf []byte, order ByteOrder, data any) ([]byte, error)"}, + {"AppendByteOrder", Type, 19, ""}, + {"AppendUvarint", Func, 19, "func(buf []byte, x uint64) []byte"}, + {"AppendVarint", Func, 19, "func(buf []byte, x int64) []byte"}, + {"BigEndian", Var, 0, ""}, + {"ByteOrder", Type, 0, ""}, + {"Decode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"}, + {"Encode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"}, + {"LittleEndian", Var, 0, ""}, + {"MaxVarintLen16", Const, 0, ""}, + {"MaxVarintLen32", Const, 0, ""}, + {"MaxVarintLen64", Const, 0, ""}, + {"NativeEndian", Var, 21, ""}, + {"PutUvarint", Func, 0, "func(buf []byte, x uint64) int"}, + {"PutVarint", Func, 0, "func(buf []byte, x int64) int"}, + {"Read", Func, 0, "func(r io.Reader, order ByteOrder, data any) error"}, + {"ReadUvarint", Func, 0, "func(r io.ByteReader) (uint64, error)"}, + {"ReadVarint", Func, 0, "func(r io.ByteReader) (int64, error)"}, + {"Size", Func, 0, "func(v any) int"}, + {"Uvarint", Func, 0, "func(buf []byte) (uint64, int)"}, + {"Varint", Func, 0, "func(buf []byte) (int64, int)"}, + {"Write", Func, 0, "func(w io.Writer, order ByteOrder, data any) error"}, + }, + "encoding/csv": { + {"(*ParseError).Error", Method, 0, ""}, + {"(*ParseError).Unwrap", Method, 13, ""}, + {"(*Reader).FieldPos", Method, 17, ""}, + {"(*Reader).InputOffset", Method, 19, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Reader).ReadAll", Method, 0, ""}, + {"(*Writer).Error", Method, 1, ""}, + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"(*Writer).WriteAll", Method, 0, ""}, + {"ErrBareQuote", Var, 0, ""}, + {"ErrFieldCount", Var, 0, ""}, + {"ErrQuote", Var, 0, ""}, + {"ErrTrailingComma", Var, 0, ""}, + {"NewReader", Func, 0, "func(r io.Reader) *Reader"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"ParseError", Type, 0, ""}, + {"ParseError.Column", Field, 0, ""}, + {"ParseError.Err", Field, 0, ""}, + {"ParseError.Line", Field, 0, ""}, + {"ParseError.StartLine", Field, 10, ""}, + {"Reader", Type, 0, ""}, + {"Reader.Comma", Field, 0, ""}, + {"Reader.Comment", Field, 0, ""}, + {"Reader.FieldsPerRecord", Field, 0, ""}, + {"Reader.LazyQuotes", Field, 0, ""}, + {"Reader.ReuseRecord", Field, 9, ""}, + {"Reader.TrailingComma", Field, 0, ""}, + {"Reader.TrimLeadingSpace", Field, 0, ""}, + {"Writer", Type, 0, ""}, + {"Writer.Comma", Field, 0, ""}, + {"Writer.UseCRLF", Field, 0, ""}, + }, + "encoding/gob": { + {"(*Decoder).Decode", Method, 0, ""}, + {"(*Decoder).DecodeValue", Method, 0, ""}, + {"(*Encoder).Encode", Method, 0, ""}, + {"(*Encoder).EncodeValue", Method, 0, ""}, + {"CommonType", Type, 0, ""}, + {"CommonType.Id", Field, 0, ""}, + {"CommonType.Name", Field, 0, ""}, + {"Decoder", Type, 0, ""}, + {"Encoder", Type, 0, ""}, + {"GobDecoder", Type, 0, ""}, + {"GobEncoder", Type, 0, ""}, + {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, + {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, + {"Register", Func, 0, "func(value any)"}, + {"RegisterName", Func, 0, "func(name string, value any)"}, + }, + "encoding/hex": { + {"(InvalidByteError).Error", Method, 0, ""}, + {"AppendDecode", Func, 22, "func(dst []byte, src []byte) ([]byte, error)"}, + {"AppendEncode", Func, 22, "func(dst []byte, src []byte) []byte"}, + {"Decode", Func, 0, "func(dst []byte, src []byte) (int, error)"}, + {"DecodeString", Func, 0, "func(s string) ([]byte, error)"}, + {"DecodedLen", Func, 0, "func(x int) int"}, + {"Dump", Func, 0, "func(data []byte) string"}, + {"Dumper", Func, 0, "func(w io.Writer) io.WriteCloser"}, + {"Encode", Func, 0, "func(dst []byte, src []byte) int"}, + {"EncodeToString", Func, 0, "func(src []byte) string"}, + {"EncodedLen", Func, 0, "func(n int) int"}, + {"ErrLength", Var, 0, ""}, + {"InvalidByteError", Type, 0, ""}, + {"NewDecoder", Func, 10, "func(r io.Reader) io.Reader"}, + {"NewEncoder", Func, 10, "func(w io.Writer) io.Writer"}, + }, + "encoding/json": { + {"(*Decoder).Buffered", Method, 1, ""}, + {"(*Decoder).Decode", Method, 0, ""}, + {"(*Decoder).DisallowUnknownFields", Method, 10, ""}, + {"(*Decoder).InputOffset", Method, 14, ""}, + {"(*Decoder).More", Method, 5, ""}, + {"(*Decoder).Token", Method, 5, ""}, + {"(*Decoder).UseNumber", Method, 1, ""}, + {"(*Encoder).Encode", Method, 0, ""}, + {"(*Encoder).SetEscapeHTML", Method, 7, ""}, + {"(*Encoder).SetIndent", Method, 7, ""}, + {"(*InvalidUTF8Error).Error", Method, 0, ""}, + {"(*InvalidUnmarshalError).Error", Method, 0, ""}, + {"(*MarshalerError).Error", Method, 0, ""}, + {"(*MarshalerError).Unwrap", Method, 13, ""}, + {"(*RawMessage).MarshalJSON", Method, 0, ""}, + {"(*RawMessage).UnmarshalJSON", Method, 0, ""}, + {"(*SyntaxError).Error", Method, 0, ""}, + {"(*UnmarshalFieldError).Error", Method, 0, ""}, + {"(*UnmarshalTypeError).Error", Method, 0, ""}, + {"(*UnsupportedTypeError).Error", Method, 0, ""}, + {"(*UnsupportedValueError).Error", Method, 0, ""}, + {"(Delim).String", Method, 5, ""}, + {"(Number).Float64", Method, 1, ""}, + {"(Number).Int64", Method, 1, ""}, + {"(Number).String", Method, 1, ""}, + {"(RawMessage).MarshalJSON", Method, 8, ""}, + {"Compact", Func, 0, "func(dst *bytes.Buffer, src []byte) error"}, + {"Decoder", Type, 0, ""}, + {"Delim", Type, 5, ""}, + {"Encoder", Type, 0, ""}, + {"HTMLEscape", Func, 0, "func(dst *bytes.Buffer, src []byte)"}, + {"Indent", Func, 0, "func(dst *bytes.Buffer, src []byte, prefix string, indent string) error"}, + {"InvalidUTF8Error", Type, 0, ""}, + {"InvalidUTF8Error.S", Field, 0, ""}, + {"InvalidUnmarshalError", Type, 0, ""}, + {"InvalidUnmarshalError.Type", Field, 0, ""}, + {"Marshal", Func, 0, "func(v any) ([]byte, error)"}, + {"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"}, + {"Marshaler", Type, 0, ""}, + {"MarshalerError", Type, 0, ""}, + {"MarshalerError.Err", Field, 0, ""}, + {"MarshalerError.Type", Field, 0, ""}, + {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, + {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, + {"Number", Type, 1, ""}, + {"RawMessage", Type, 0, ""}, + {"SyntaxError", Type, 0, ""}, + {"SyntaxError.Offset", Field, 0, ""}, + {"Token", Type, 5, ""}, + {"Unmarshal", Func, 0, "func(data []byte, v any) error"}, + {"UnmarshalFieldError", Type, 0, ""}, + {"UnmarshalFieldError.Field", Field, 0, ""}, + {"UnmarshalFieldError.Key", Field, 0, ""}, + {"UnmarshalFieldError.Type", Field, 0, ""}, + {"UnmarshalTypeError", Type, 0, ""}, + {"UnmarshalTypeError.Field", Field, 8, ""}, + {"UnmarshalTypeError.Offset", Field, 5, ""}, + {"UnmarshalTypeError.Struct", Field, 8, ""}, + {"UnmarshalTypeError.Type", Field, 0, ""}, + {"UnmarshalTypeError.Value", Field, 0, ""}, + {"Unmarshaler", Type, 0, ""}, + {"UnsupportedTypeError", Type, 0, ""}, + {"UnsupportedTypeError.Type", Field, 0, ""}, + {"UnsupportedValueError", Type, 0, ""}, + {"UnsupportedValueError.Str", Field, 0, ""}, + {"UnsupportedValueError.Value", Field, 0, ""}, + {"Valid", Func, 9, "func(data []byte) bool"}, + }, + "encoding/pem": { + {"Block", Type, 0, ""}, + {"Block.Bytes", Field, 0, ""}, + {"Block.Headers", Field, 0, ""}, + {"Block.Type", Field, 0, ""}, + {"Decode", Func, 0, "func(data []byte) (p *Block, rest []byte)"}, + {"Encode", Func, 0, "func(out io.Writer, b *Block) error"}, + {"EncodeToMemory", Func, 0, "func(b *Block) []byte"}, + }, + "encoding/xml": { + {"(*Decoder).Decode", Method, 0, ""}, + {"(*Decoder).DecodeElement", Method, 0, ""}, + {"(*Decoder).InputOffset", Method, 4, ""}, + {"(*Decoder).InputPos", Method, 19, ""}, + {"(*Decoder).RawToken", Method, 0, ""}, + {"(*Decoder).Skip", Method, 0, ""}, + {"(*Decoder).Token", Method, 0, ""}, + {"(*Encoder).Close", Method, 20, ""}, + {"(*Encoder).Encode", Method, 0, ""}, + {"(*Encoder).EncodeElement", Method, 2, ""}, + {"(*Encoder).EncodeToken", Method, 2, ""}, + {"(*Encoder).Flush", Method, 2, ""}, + {"(*Encoder).Indent", Method, 1, ""}, + {"(*SyntaxError).Error", Method, 0, ""}, + {"(*TagPathError).Error", Method, 0, ""}, + {"(*UnsupportedTypeError).Error", Method, 0, ""}, + {"(CharData).Copy", Method, 0, ""}, + {"(Comment).Copy", Method, 0, ""}, + {"(Directive).Copy", Method, 0, ""}, + {"(ProcInst).Copy", Method, 0, ""}, + {"(StartElement).Copy", Method, 0, ""}, + {"(StartElement).End", Method, 2, ""}, + {"(UnmarshalError).Error", Method, 0, ""}, + {"Attr", Type, 0, ""}, + {"Attr.Name", Field, 0, ""}, + {"Attr.Value", Field, 0, ""}, + {"CharData", Type, 0, ""}, + {"Comment", Type, 0, ""}, + {"CopyToken", Func, 0, "func(t Token) Token"}, + {"Decoder", Type, 0, ""}, + {"Decoder.AutoClose", Field, 0, ""}, + {"Decoder.CharsetReader", Field, 0, ""}, + {"Decoder.DefaultSpace", Field, 1, ""}, + {"Decoder.Entity", Field, 0, ""}, + {"Decoder.Strict", Field, 0, ""}, + {"Directive", Type, 0, ""}, + {"Encoder", Type, 0, ""}, + {"EndElement", Type, 0, ""}, + {"EndElement.Name", Field, 0, ""}, + {"Escape", Func, 0, "func(w io.Writer, s []byte)"}, + {"EscapeText", Func, 1, "func(w io.Writer, s []byte) error"}, + {"HTMLAutoClose", Var, 0, ""}, + {"HTMLEntity", Var, 0, ""}, + {"Header", Const, 0, ""}, + {"Marshal", Func, 0, "func(v any) ([]byte, error)"}, + {"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"}, + {"Marshaler", Type, 2, ""}, + {"MarshalerAttr", Type, 2, ""}, + {"Name", Type, 0, ""}, + {"Name.Local", Field, 0, ""}, + {"Name.Space", Field, 0, ""}, + {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, + {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, + {"NewTokenDecoder", Func, 10, "func(t TokenReader) *Decoder"}, + {"ProcInst", Type, 0, ""}, + {"ProcInst.Inst", Field, 0, ""}, + {"ProcInst.Target", Field, 0, ""}, + {"StartElement", Type, 0, ""}, + {"StartElement.Attr", Field, 0, ""}, + {"StartElement.Name", Field, 0, ""}, + {"SyntaxError", Type, 0, ""}, + {"SyntaxError.Line", Field, 0, ""}, + {"SyntaxError.Msg", Field, 0, ""}, + {"TagPathError", Type, 0, ""}, + {"TagPathError.Field1", Field, 0, ""}, + {"TagPathError.Field2", Field, 0, ""}, + {"TagPathError.Struct", Field, 0, ""}, + {"TagPathError.Tag1", Field, 0, ""}, + {"TagPathError.Tag2", Field, 0, ""}, + {"Token", Type, 0, ""}, + {"TokenReader", Type, 10, ""}, + {"Unmarshal", Func, 0, "func(data []byte, v any) error"}, + {"UnmarshalError", Type, 0, ""}, + {"Unmarshaler", Type, 2, ""}, + {"UnmarshalerAttr", Type, 2, ""}, + {"UnsupportedTypeError", Type, 0, ""}, + {"UnsupportedTypeError.Type", Field, 0, ""}, + }, + "errors": { + {"As", Func, 13, "func(err error, target any) bool"}, + {"ErrUnsupported", Var, 21, ""}, + {"Is", Func, 13, "func(err error, target error) bool"}, + {"Join", Func, 20, "func(errs ...error) error"}, + {"New", Func, 0, "func(text string) error"}, + {"Unwrap", Func, 13, "func(err error) error"}, + }, + "expvar": { + {"(*Float).Add", Method, 0, ""}, + {"(*Float).Set", Method, 0, ""}, + {"(*Float).String", Method, 0, ""}, + {"(*Float).Value", Method, 8, ""}, + {"(*Int).Add", Method, 0, ""}, + {"(*Int).Set", Method, 0, ""}, + {"(*Int).String", Method, 0, ""}, + {"(*Int).Value", Method, 8, ""}, + {"(*Map).Add", Method, 0, ""}, + {"(*Map).AddFloat", Method, 0, ""}, + {"(*Map).Delete", Method, 12, ""}, + {"(*Map).Do", Method, 0, ""}, + {"(*Map).Get", Method, 0, ""}, + {"(*Map).Init", Method, 0, ""}, + {"(*Map).Set", Method, 0, ""}, + {"(*Map).String", Method, 0, ""}, + {"(*String).Set", Method, 0, ""}, + {"(*String).String", Method, 0, ""}, + {"(*String).Value", Method, 8, ""}, + {"(Func).String", Method, 0, ""}, + {"(Func).Value", Method, 8, ""}, + {"Do", Func, 0, "func(f func(KeyValue))"}, + {"Float", Type, 0, ""}, + {"Func", Type, 0, ""}, + {"Get", Func, 0, "func(name string) Var"}, + {"Handler", Func, 8, "func() http.Handler"}, + {"Int", Type, 0, ""}, + {"KeyValue", Type, 0, ""}, + {"KeyValue.Key", Field, 0, ""}, + {"KeyValue.Value", Field, 0, ""}, + {"Map", Type, 0, ""}, + {"NewFloat", Func, 0, "func(name string) *Float"}, + {"NewInt", Func, 0, "func(name string) *Int"}, + {"NewMap", Func, 0, "func(name string) *Map"}, + {"NewString", Func, 0, "func(name string) *String"}, + {"Publish", Func, 0, "func(name string, v Var)"}, + {"String", Type, 0, ""}, + {"Var", Type, 0, ""}, + }, + "flag": { + {"(*FlagSet).Arg", Method, 0, ""}, + {"(*FlagSet).Args", Method, 0, ""}, + {"(*FlagSet).Bool", Method, 0, ""}, + {"(*FlagSet).BoolFunc", Method, 21, ""}, + {"(*FlagSet).BoolVar", Method, 0, ""}, + {"(*FlagSet).Duration", Method, 0, ""}, + {"(*FlagSet).DurationVar", Method, 0, ""}, + {"(*FlagSet).ErrorHandling", Method, 10, ""}, + {"(*FlagSet).Float64", Method, 0, ""}, + {"(*FlagSet).Float64Var", Method, 0, ""}, + {"(*FlagSet).Func", Method, 16, ""}, + {"(*FlagSet).Init", Method, 0, ""}, + {"(*FlagSet).Int", Method, 0, ""}, + {"(*FlagSet).Int64", Method, 0, ""}, + {"(*FlagSet).Int64Var", Method, 0, ""}, + {"(*FlagSet).IntVar", Method, 0, ""}, + {"(*FlagSet).Lookup", Method, 0, ""}, + {"(*FlagSet).NArg", Method, 0, ""}, + {"(*FlagSet).NFlag", Method, 0, ""}, + {"(*FlagSet).Name", Method, 10, ""}, + {"(*FlagSet).Output", Method, 10, ""}, + {"(*FlagSet).Parse", Method, 0, ""}, + {"(*FlagSet).Parsed", Method, 0, ""}, + {"(*FlagSet).PrintDefaults", Method, 0, ""}, + {"(*FlagSet).Set", Method, 0, ""}, + {"(*FlagSet).SetOutput", Method, 0, ""}, + {"(*FlagSet).String", Method, 0, ""}, + {"(*FlagSet).StringVar", Method, 0, ""}, + {"(*FlagSet).TextVar", Method, 19, ""}, + {"(*FlagSet).Uint", Method, 0, ""}, + {"(*FlagSet).Uint64", Method, 0, ""}, + {"(*FlagSet).Uint64Var", Method, 0, ""}, + {"(*FlagSet).UintVar", Method, 0, ""}, + {"(*FlagSet).Var", Method, 0, ""}, + {"(*FlagSet).Visit", Method, 0, ""}, + {"(*FlagSet).VisitAll", Method, 0, ""}, + {"Arg", Func, 0, "func(i int) string"}, + {"Args", Func, 0, "func() []string"}, + {"Bool", Func, 0, "func(name string, value bool, usage string) *bool"}, + {"BoolFunc", Func, 21, "func(name string, usage string, fn func(string) error)"}, + {"BoolVar", Func, 0, "func(p *bool, name string, value bool, usage string)"}, + {"CommandLine", Var, 2, ""}, + {"ContinueOnError", Const, 0, ""}, + {"Duration", Func, 0, "func(name string, value time.Duration, usage string) *time.Duration"}, + {"DurationVar", Func, 0, "func(p *time.Duration, name string, value time.Duration, usage string)"}, + {"ErrHelp", Var, 0, ""}, + {"ErrorHandling", Type, 0, ""}, + {"ExitOnError", Const, 0, ""}, + {"Flag", Type, 0, ""}, + {"Flag.DefValue", Field, 0, ""}, + {"Flag.Name", Field, 0, ""}, + {"Flag.Usage", Field, 0, ""}, + {"Flag.Value", Field, 0, ""}, + {"FlagSet", Type, 0, ""}, + {"FlagSet.Usage", Field, 0, ""}, + {"Float64", Func, 0, "func(name string, value float64, usage string) *float64"}, + {"Float64Var", Func, 0, "func(p *float64, name string, value float64, usage string)"}, + {"Func", Func, 16, "func(name string, usage string, fn func(string) error)"}, + {"Getter", Type, 2, ""}, + {"Int", Func, 0, "func(name string, value int, usage string) *int"}, + {"Int64", Func, 0, "func(name string, value int64, usage string) *int64"}, + {"Int64Var", Func, 0, "func(p *int64, name string, value int64, usage string)"}, + {"IntVar", Func, 0, "func(p *int, name string, value int, usage string)"}, + {"Lookup", Func, 0, "func(name string) *Flag"}, + {"NArg", Func, 0, "func() int"}, + {"NFlag", Func, 0, "func() int"}, + {"NewFlagSet", Func, 0, "func(name string, errorHandling ErrorHandling) *FlagSet"}, + {"PanicOnError", Const, 0, ""}, + {"Parse", Func, 0, "func()"}, + {"Parsed", Func, 0, "func() bool"}, + {"PrintDefaults", Func, 0, "func()"}, + {"Set", Func, 0, "func(name string, value string) error"}, + {"String", Func, 0, "func(name string, value string, usage string) *string"}, + {"StringVar", Func, 0, "func(p *string, name string, value string, usage string)"}, + {"TextVar", Func, 19, "func(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string)"}, + {"Uint", Func, 0, "func(name string, value uint, usage string) *uint"}, + {"Uint64", Func, 0, "func(name string, value uint64, usage string) *uint64"}, + {"Uint64Var", Func, 0, "func(p *uint64, name string, value uint64, usage string)"}, + {"UintVar", Func, 0, "func(p *uint, name string, value uint, usage string)"}, + {"UnquoteUsage", Func, 5, "func(flag *Flag) (name string, usage string)"}, + {"Usage", Var, 0, ""}, + {"Value", Type, 0, ""}, + {"Var", Func, 0, "func(value Value, name string, usage string)"}, + {"Visit", Func, 0, "func(fn func(*Flag))"}, + {"VisitAll", Func, 0, "func(fn func(*Flag))"}, + }, + "fmt": { + {"Append", Func, 19, "func(b []byte, a ...any) []byte"}, + {"Appendf", Func, 19, "func(b []byte, format string, a ...any) []byte"}, + {"Appendln", Func, 19, "func(b []byte, a ...any) []byte"}, + {"Errorf", Func, 0, "func(format string, a ...any) error"}, + {"FormatString", Func, 20, "func(state State, verb rune) string"}, + {"Formatter", Type, 0, ""}, + {"Fprint", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"}, + {"Fprintf", Func, 0, "func(w io.Writer, format string, a ...any) (n int, err error)"}, + {"Fprintln", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"}, + {"Fscan", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"}, + {"Fscanf", Func, 0, "func(r io.Reader, format string, a ...any) (n int, err error)"}, + {"Fscanln", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"}, + {"GoStringer", Type, 0, ""}, + {"Print", Func, 0, "func(a ...any) (n int, err error)"}, + {"Printf", Func, 0, "func(format string, a ...any) (n int, err error)"}, + {"Println", Func, 0, "func(a ...any) (n int, err error)"}, + {"Scan", Func, 0, "func(a ...any) (n int, err error)"}, + {"ScanState", Type, 0, ""}, + {"Scanf", Func, 0, "func(format string, a ...any) (n int, err error)"}, + {"Scanln", Func, 0, "func(a ...any) (n int, err error)"}, + {"Scanner", Type, 0, ""}, + {"Sprint", Func, 0, "func(a ...any) string"}, + {"Sprintf", Func, 0, "func(format string, a ...any) string"}, + {"Sprintln", Func, 0, "func(a ...any) string"}, + {"Sscan", Func, 0, "func(str string, a ...any) (n int, err error)"}, + {"Sscanf", Func, 0, "func(str string, format string, a ...any) (n int, err error)"}, + {"Sscanln", Func, 0, "func(str string, a ...any) (n int, err error)"}, + {"State", Type, 0, ""}, + {"Stringer", Type, 0, ""}, + }, + "go/ast": { + {"(*ArrayType).End", Method, 0, ""}, + {"(*ArrayType).Pos", Method, 0, ""}, + {"(*AssignStmt).End", Method, 0, ""}, + {"(*AssignStmt).Pos", Method, 0, ""}, + {"(*BadDecl).End", Method, 0, ""}, + {"(*BadDecl).Pos", Method, 0, ""}, + {"(*BadExpr).End", Method, 0, ""}, + {"(*BadExpr).Pos", Method, 0, ""}, + {"(*BadStmt).End", Method, 0, ""}, + {"(*BadStmt).Pos", Method, 0, ""}, + {"(*BasicLit).End", Method, 0, ""}, + {"(*BasicLit).Pos", Method, 0, ""}, + {"(*BinaryExpr).End", Method, 0, ""}, + {"(*BinaryExpr).Pos", Method, 0, ""}, + {"(*BlockStmt).End", Method, 0, ""}, + {"(*BlockStmt).Pos", Method, 0, ""}, + {"(*BranchStmt).End", Method, 0, ""}, + {"(*BranchStmt).Pos", Method, 0, ""}, + {"(*CallExpr).End", Method, 0, ""}, + {"(*CallExpr).Pos", Method, 0, ""}, + {"(*CaseClause).End", Method, 0, ""}, + {"(*CaseClause).Pos", Method, 0, ""}, + {"(*ChanType).End", Method, 0, ""}, + {"(*ChanType).Pos", Method, 0, ""}, + {"(*CommClause).End", Method, 0, ""}, + {"(*CommClause).Pos", Method, 0, ""}, + {"(*Comment).End", Method, 0, ""}, + {"(*Comment).Pos", Method, 0, ""}, + {"(*CommentGroup).End", Method, 0, ""}, + {"(*CommentGroup).Pos", Method, 0, ""}, + {"(*CommentGroup).Text", Method, 0, ""}, + {"(*CompositeLit).End", Method, 0, ""}, + {"(*CompositeLit).Pos", Method, 0, ""}, + {"(*DeclStmt).End", Method, 0, ""}, + {"(*DeclStmt).Pos", Method, 0, ""}, + {"(*DeferStmt).End", Method, 0, ""}, + {"(*DeferStmt).Pos", Method, 0, ""}, + {"(*Ellipsis).End", Method, 0, ""}, + {"(*Ellipsis).Pos", Method, 0, ""}, + {"(*EmptyStmt).End", Method, 0, ""}, + {"(*EmptyStmt).Pos", Method, 0, ""}, + {"(*ExprStmt).End", Method, 0, ""}, + {"(*ExprStmt).Pos", Method, 0, ""}, + {"(*Field).End", Method, 0, ""}, + {"(*Field).Pos", Method, 0, ""}, + {"(*FieldList).End", Method, 0, ""}, + {"(*FieldList).NumFields", Method, 0, ""}, + {"(*FieldList).Pos", Method, 0, ""}, + {"(*File).End", Method, 0, ""}, + {"(*File).Pos", Method, 0, ""}, + {"(*ForStmt).End", Method, 0, ""}, + {"(*ForStmt).Pos", Method, 0, ""}, + {"(*FuncDecl).End", Method, 0, ""}, + {"(*FuncDecl).Pos", Method, 0, ""}, + {"(*FuncLit).End", Method, 0, ""}, + {"(*FuncLit).Pos", Method, 0, ""}, + {"(*FuncType).End", Method, 0, ""}, + {"(*FuncType).Pos", Method, 0, ""}, + {"(*GenDecl).End", Method, 0, ""}, + {"(*GenDecl).Pos", Method, 0, ""}, + {"(*GoStmt).End", Method, 0, ""}, + {"(*GoStmt).Pos", Method, 0, ""}, + {"(*Ident).End", Method, 0, ""}, + {"(*Ident).IsExported", Method, 0, ""}, + {"(*Ident).Pos", Method, 0, ""}, + {"(*Ident).String", Method, 0, ""}, + {"(*IfStmt).End", Method, 0, ""}, + {"(*IfStmt).Pos", Method, 0, ""}, + {"(*ImportSpec).End", Method, 0, ""}, + {"(*ImportSpec).Pos", Method, 0, ""}, + {"(*IncDecStmt).End", Method, 0, ""}, + {"(*IncDecStmt).Pos", Method, 0, ""}, + {"(*IndexExpr).End", Method, 0, ""}, + {"(*IndexExpr).Pos", Method, 0, ""}, + {"(*IndexListExpr).End", Method, 18, ""}, + {"(*IndexListExpr).Pos", Method, 18, ""}, + {"(*InterfaceType).End", Method, 0, ""}, + {"(*InterfaceType).Pos", Method, 0, ""}, + {"(*KeyValueExpr).End", Method, 0, ""}, + {"(*KeyValueExpr).Pos", Method, 0, ""}, + {"(*LabeledStmt).End", Method, 0, ""}, + {"(*LabeledStmt).Pos", Method, 0, ""}, + {"(*MapType).End", Method, 0, ""}, + {"(*MapType).Pos", Method, 0, ""}, + {"(*Object).Pos", Method, 0, ""}, + {"(*Package).End", Method, 0, ""}, + {"(*Package).Pos", Method, 0, ""}, + {"(*ParenExpr).End", Method, 0, ""}, + {"(*ParenExpr).Pos", Method, 0, ""}, + {"(*RangeStmt).End", Method, 0, ""}, + {"(*RangeStmt).Pos", Method, 0, ""}, + {"(*ReturnStmt).End", Method, 0, ""}, + {"(*ReturnStmt).Pos", Method, 0, ""}, + {"(*Scope).Insert", Method, 0, ""}, + {"(*Scope).Lookup", Method, 0, ""}, + {"(*Scope).String", Method, 0, ""}, + {"(*SelectStmt).End", Method, 0, ""}, + {"(*SelectStmt).Pos", Method, 0, ""}, + {"(*SelectorExpr).End", Method, 0, ""}, + {"(*SelectorExpr).Pos", Method, 0, ""}, + {"(*SendStmt).End", Method, 0, ""}, + {"(*SendStmt).Pos", Method, 0, ""}, + {"(*SliceExpr).End", Method, 0, ""}, + {"(*SliceExpr).Pos", Method, 0, ""}, + {"(*StarExpr).End", Method, 0, ""}, + {"(*StarExpr).Pos", Method, 0, ""}, + {"(*StructType).End", Method, 0, ""}, + {"(*StructType).Pos", Method, 0, ""}, + {"(*SwitchStmt).End", Method, 0, ""}, + {"(*SwitchStmt).Pos", Method, 0, ""}, + {"(*TypeAssertExpr).End", Method, 0, ""}, + {"(*TypeAssertExpr).Pos", Method, 0, ""}, + {"(*TypeSpec).End", Method, 0, ""}, + {"(*TypeSpec).Pos", Method, 0, ""}, + {"(*TypeSwitchStmt).End", Method, 0, ""}, + {"(*TypeSwitchStmt).Pos", Method, 0, ""}, + {"(*UnaryExpr).End", Method, 0, ""}, + {"(*UnaryExpr).Pos", Method, 0, ""}, + {"(*ValueSpec).End", Method, 0, ""}, + {"(*ValueSpec).Pos", Method, 0, ""}, + {"(CommentMap).Comments", Method, 1, ""}, + {"(CommentMap).Filter", Method, 1, ""}, + {"(CommentMap).String", Method, 1, ""}, + {"(CommentMap).Update", Method, 1, ""}, + {"(ObjKind).String", Method, 0, ""}, + {"ArrayType", Type, 0, ""}, + {"ArrayType.Elt", Field, 0, ""}, + {"ArrayType.Lbrack", Field, 0, ""}, + {"ArrayType.Len", Field, 0, ""}, + {"AssignStmt", Type, 0, ""}, + {"AssignStmt.Lhs", Field, 0, ""}, + {"AssignStmt.Rhs", Field, 0, ""}, + {"AssignStmt.Tok", Field, 0, ""}, + {"AssignStmt.TokPos", Field, 0, ""}, + {"Bad", Const, 0, ""}, + {"BadDecl", Type, 0, ""}, + {"BadDecl.From", Field, 0, ""}, + {"BadDecl.To", Field, 0, ""}, + {"BadExpr", Type, 0, ""}, + {"BadExpr.From", Field, 0, ""}, + {"BadExpr.To", Field, 0, ""}, + {"BadStmt", Type, 0, ""}, + {"BadStmt.From", Field, 0, ""}, + {"BadStmt.To", Field, 0, ""}, + {"BasicLit", Type, 0, ""}, + {"BasicLit.Kind", Field, 0, ""}, + {"BasicLit.Value", Field, 0, ""}, + {"BasicLit.ValuePos", Field, 0, ""}, + {"BinaryExpr", Type, 0, ""}, + {"BinaryExpr.Op", Field, 0, ""}, + {"BinaryExpr.OpPos", Field, 0, ""}, + {"BinaryExpr.X", Field, 0, ""}, + {"BinaryExpr.Y", Field, 0, ""}, + {"BlockStmt", Type, 0, ""}, + {"BlockStmt.Lbrace", Field, 0, ""}, + {"BlockStmt.List", Field, 0, ""}, + {"BlockStmt.Rbrace", Field, 0, ""}, + {"BranchStmt", Type, 0, ""}, + {"BranchStmt.Label", Field, 0, ""}, + {"BranchStmt.Tok", Field, 0, ""}, + {"BranchStmt.TokPos", Field, 0, ""}, + {"CallExpr", Type, 0, ""}, + {"CallExpr.Args", Field, 0, ""}, + {"CallExpr.Ellipsis", Field, 0, ""}, + {"CallExpr.Fun", Field, 0, ""}, + {"CallExpr.Lparen", Field, 0, ""}, + {"CallExpr.Rparen", Field, 0, ""}, + {"CaseClause", Type, 0, ""}, + {"CaseClause.Body", Field, 0, ""}, + {"CaseClause.Case", Field, 0, ""}, + {"CaseClause.Colon", Field, 0, ""}, + {"CaseClause.List", Field, 0, ""}, + {"ChanDir", Type, 0, ""}, + {"ChanType", Type, 0, ""}, + {"ChanType.Arrow", Field, 1, ""}, + {"ChanType.Begin", Field, 0, ""}, + {"ChanType.Dir", Field, 0, ""}, + {"ChanType.Value", Field, 0, ""}, + {"CommClause", Type, 0, ""}, + {"CommClause.Body", Field, 0, ""}, + {"CommClause.Case", Field, 0, ""}, + {"CommClause.Colon", Field, 0, ""}, + {"CommClause.Comm", Field, 0, ""}, + {"Comment", Type, 0, ""}, + {"Comment.Slash", Field, 0, ""}, + {"Comment.Text", Field, 0, ""}, + {"CommentGroup", Type, 0, ""}, + {"CommentGroup.List", Field, 0, ""}, + {"CommentMap", Type, 1, ""}, + {"CompositeLit", Type, 0, ""}, + {"CompositeLit.Elts", Field, 0, ""}, + {"CompositeLit.Incomplete", Field, 11, ""}, + {"CompositeLit.Lbrace", Field, 0, ""}, + {"CompositeLit.Rbrace", Field, 0, ""}, + {"CompositeLit.Type", Field, 0, ""}, + {"Con", Const, 0, ""}, + {"Decl", Type, 0, ""}, + {"DeclStmt", Type, 0, ""}, + {"DeclStmt.Decl", Field, 0, ""}, + {"DeferStmt", Type, 0, ""}, + {"DeferStmt.Call", Field, 0, ""}, + {"DeferStmt.Defer", Field, 0, ""}, + {"Ellipsis", Type, 0, ""}, + {"Ellipsis.Ellipsis", Field, 0, ""}, + {"Ellipsis.Elt", Field, 0, ""}, + {"EmptyStmt", Type, 0, ""}, + {"EmptyStmt.Implicit", Field, 5, ""}, + {"EmptyStmt.Semicolon", Field, 0, ""}, + {"Expr", Type, 0, ""}, + {"ExprStmt", Type, 0, ""}, + {"ExprStmt.X", Field, 0, ""}, + {"Field", Type, 0, ""}, + {"Field.Comment", Field, 0, ""}, + {"Field.Doc", Field, 0, ""}, + {"Field.Names", Field, 0, ""}, + {"Field.Tag", Field, 0, ""}, + {"Field.Type", Field, 0, ""}, + {"FieldFilter", Type, 0, ""}, + {"FieldList", Type, 0, ""}, + {"FieldList.Closing", Field, 0, ""}, + {"FieldList.List", Field, 0, ""}, + {"FieldList.Opening", Field, 0, ""}, + {"File", Type, 0, ""}, + {"File.Comments", Field, 0, ""}, + {"File.Decls", Field, 0, ""}, + {"File.Doc", Field, 0, ""}, + {"File.FileEnd", Field, 20, ""}, + {"File.FileStart", Field, 20, ""}, + {"File.GoVersion", Field, 21, ""}, + {"File.Imports", Field, 0, ""}, + {"File.Name", Field, 0, ""}, + {"File.Package", Field, 0, ""}, + {"File.Scope", Field, 0, ""}, + {"File.Unresolved", Field, 0, ""}, + {"FileExports", Func, 0, "func(src *File) bool"}, + {"Filter", Type, 0, ""}, + {"FilterDecl", Func, 0, "func(decl Decl, f Filter) bool"}, + {"FilterFile", Func, 0, "func(src *File, f Filter) bool"}, + {"FilterFuncDuplicates", Const, 0, ""}, + {"FilterImportDuplicates", Const, 0, ""}, + {"FilterPackage", Func, 0, "func(pkg *Package, f Filter) bool"}, + {"FilterUnassociatedComments", Const, 0, ""}, + {"ForStmt", Type, 0, ""}, + {"ForStmt.Body", Field, 0, ""}, + {"ForStmt.Cond", Field, 0, ""}, + {"ForStmt.For", Field, 0, ""}, + {"ForStmt.Init", Field, 0, ""}, + {"ForStmt.Post", Field, 0, ""}, + {"Fprint", Func, 0, "func(w io.Writer, fset *token.FileSet, x any, f FieldFilter) error"}, + {"Fun", Const, 0, ""}, + {"FuncDecl", Type, 0, ""}, + {"FuncDecl.Body", Field, 0, ""}, + {"FuncDecl.Doc", Field, 0, ""}, + {"FuncDecl.Name", Field, 0, ""}, + {"FuncDecl.Recv", Field, 0, ""}, + {"FuncDecl.Type", Field, 0, ""}, + {"FuncLit", Type, 0, ""}, + {"FuncLit.Body", Field, 0, ""}, + {"FuncLit.Type", Field, 0, ""}, + {"FuncType", Type, 0, ""}, + {"FuncType.Func", Field, 0, ""}, + {"FuncType.Params", Field, 0, ""}, + {"FuncType.Results", Field, 0, ""}, + {"FuncType.TypeParams", Field, 18, ""}, + {"GenDecl", Type, 0, ""}, + {"GenDecl.Doc", Field, 0, ""}, + {"GenDecl.Lparen", Field, 0, ""}, + {"GenDecl.Rparen", Field, 0, ""}, + {"GenDecl.Specs", Field, 0, ""}, + {"GenDecl.Tok", Field, 0, ""}, + {"GenDecl.TokPos", Field, 0, ""}, + {"GoStmt", Type, 0, ""}, + {"GoStmt.Call", Field, 0, ""}, + {"GoStmt.Go", Field, 0, ""}, + {"Ident", Type, 0, ""}, + {"Ident.Name", Field, 0, ""}, + {"Ident.NamePos", Field, 0, ""}, + {"Ident.Obj", Field, 0, ""}, + {"IfStmt", Type, 0, ""}, + {"IfStmt.Body", Field, 0, ""}, + {"IfStmt.Cond", Field, 0, ""}, + {"IfStmt.Else", Field, 0, ""}, + {"IfStmt.If", Field, 0, ""}, + {"IfStmt.Init", Field, 0, ""}, + {"ImportSpec", Type, 0, ""}, + {"ImportSpec.Comment", Field, 0, ""}, + {"ImportSpec.Doc", Field, 0, ""}, + {"ImportSpec.EndPos", Field, 0, ""}, + {"ImportSpec.Name", Field, 0, ""}, + {"ImportSpec.Path", Field, 0, ""}, + {"Importer", Type, 0, ""}, + {"IncDecStmt", Type, 0, ""}, + {"IncDecStmt.Tok", Field, 0, ""}, + {"IncDecStmt.TokPos", Field, 0, ""}, + {"IncDecStmt.X", Field, 0, ""}, + {"IndexExpr", Type, 0, ""}, + {"IndexExpr.Index", Field, 0, ""}, + {"IndexExpr.Lbrack", Field, 0, ""}, + {"IndexExpr.Rbrack", Field, 0, ""}, + {"IndexExpr.X", Field, 0, ""}, + {"IndexListExpr", Type, 18, ""}, + {"IndexListExpr.Indices", Field, 18, ""}, + {"IndexListExpr.Lbrack", Field, 18, ""}, + {"IndexListExpr.Rbrack", Field, 18, ""}, + {"IndexListExpr.X", Field, 18, ""}, + {"Inspect", Func, 0, "func(node Node, f func(Node) bool)"}, + {"InterfaceType", Type, 0, ""}, + {"InterfaceType.Incomplete", Field, 0, ""}, + {"InterfaceType.Interface", Field, 0, ""}, + {"InterfaceType.Methods", Field, 0, ""}, + {"IsExported", Func, 0, "func(name string) bool"}, + {"IsGenerated", Func, 21, "func(file *File) bool"}, + {"KeyValueExpr", Type, 0, ""}, + {"KeyValueExpr.Colon", Field, 0, ""}, + {"KeyValueExpr.Key", Field, 0, ""}, + {"KeyValueExpr.Value", Field, 0, ""}, + {"LabeledStmt", Type, 0, ""}, + {"LabeledStmt.Colon", Field, 0, ""}, + {"LabeledStmt.Label", Field, 0, ""}, + {"LabeledStmt.Stmt", Field, 0, ""}, + {"Lbl", Const, 0, ""}, + {"MapType", Type, 0, ""}, + {"MapType.Key", Field, 0, ""}, + {"MapType.Map", Field, 0, ""}, + {"MapType.Value", Field, 0, ""}, + {"MergeMode", Type, 0, ""}, + {"MergePackageFiles", Func, 0, "func(pkg *Package, mode MergeMode) *File"}, + {"NewCommentMap", Func, 1, "func(fset *token.FileSet, node Node, comments []*CommentGroup) CommentMap"}, + {"NewIdent", Func, 0, "func(name string) *Ident"}, + {"NewObj", Func, 0, "func(kind ObjKind, name string) *Object"}, + {"NewPackage", Func, 0, "func(fset *token.FileSet, files map[string]*File, importer Importer, universe *Scope) (*Package, error)"}, + {"NewScope", Func, 0, "func(outer *Scope) *Scope"}, + {"Node", Type, 0, ""}, + {"NotNilFilter", Func, 0, "func(_ string, v reflect.Value) bool"}, + {"ObjKind", Type, 0, ""}, + {"Object", Type, 0, ""}, + {"Object.Data", Field, 0, ""}, + {"Object.Decl", Field, 0, ""}, + {"Object.Kind", Field, 0, ""}, + {"Object.Name", Field, 0, ""}, + {"Object.Type", Field, 0, ""}, + {"Package", Type, 0, ""}, + {"Package.Files", Field, 0, ""}, + {"Package.Imports", Field, 0, ""}, + {"Package.Name", Field, 0, ""}, + {"Package.Scope", Field, 0, ""}, + {"PackageExports", Func, 0, "func(pkg *Package) bool"}, + {"ParenExpr", Type, 0, ""}, + {"ParenExpr.Lparen", Field, 0, ""}, + {"ParenExpr.Rparen", Field, 0, ""}, + {"ParenExpr.X", Field, 0, ""}, + {"Pkg", Const, 0, ""}, + {"Preorder", Func, 23, "func(root Node) iter.Seq[Node]"}, + {"Print", Func, 0, "func(fset *token.FileSet, x any) error"}, + {"RECV", Const, 0, ""}, + {"RangeStmt", Type, 0, ""}, + {"RangeStmt.Body", Field, 0, ""}, + {"RangeStmt.For", Field, 0, ""}, + {"RangeStmt.Key", Field, 0, ""}, + {"RangeStmt.Range", Field, 20, ""}, + {"RangeStmt.Tok", Field, 0, ""}, + {"RangeStmt.TokPos", Field, 0, ""}, + {"RangeStmt.Value", Field, 0, ""}, + {"RangeStmt.X", Field, 0, ""}, + {"ReturnStmt", Type, 0, ""}, + {"ReturnStmt.Results", Field, 0, ""}, + {"ReturnStmt.Return", Field, 0, ""}, + {"SEND", Const, 0, ""}, + {"Scope", Type, 0, ""}, + {"Scope.Objects", Field, 0, ""}, + {"Scope.Outer", Field, 0, ""}, + {"SelectStmt", Type, 0, ""}, + {"SelectStmt.Body", Field, 0, ""}, + {"SelectStmt.Select", Field, 0, ""}, + {"SelectorExpr", Type, 0, ""}, + {"SelectorExpr.Sel", Field, 0, ""}, + {"SelectorExpr.X", Field, 0, ""}, + {"SendStmt", Type, 0, ""}, + {"SendStmt.Arrow", Field, 0, ""}, + {"SendStmt.Chan", Field, 0, ""}, + {"SendStmt.Value", Field, 0, ""}, + {"SliceExpr", Type, 0, ""}, + {"SliceExpr.High", Field, 0, ""}, + {"SliceExpr.Lbrack", Field, 0, ""}, + {"SliceExpr.Low", Field, 0, ""}, + {"SliceExpr.Max", Field, 2, ""}, + {"SliceExpr.Rbrack", Field, 0, ""}, + {"SliceExpr.Slice3", Field, 2, ""}, + {"SliceExpr.X", Field, 0, ""}, + {"SortImports", Func, 0, "func(fset *token.FileSet, f *File)"}, + {"Spec", Type, 0, ""}, + {"StarExpr", Type, 0, ""}, + {"StarExpr.Star", Field, 0, ""}, + {"StarExpr.X", Field, 0, ""}, + {"Stmt", Type, 0, ""}, + {"StructType", Type, 0, ""}, + {"StructType.Fields", Field, 0, ""}, + {"StructType.Incomplete", Field, 0, ""}, + {"StructType.Struct", Field, 0, ""}, + {"SwitchStmt", Type, 0, ""}, + {"SwitchStmt.Body", Field, 0, ""}, + {"SwitchStmt.Init", Field, 0, ""}, + {"SwitchStmt.Switch", Field, 0, ""}, + {"SwitchStmt.Tag", Field, 0, ""}, + {"Typ", Const, 0, ""}, + {"TypeAssertExpr", Type, 0, ""}, + {"TypeAssertExpr.Lparen", Field, 2, ""}, + {"TypeAssertExpr.Rparen", Field, 2, ""}, + {"TypeAssertExpr.Type", Field, 0, ""}, + {"TypeAssertExpr.X", Field, 0, ""}, + {"TypeSpec", Type, 0, ""}, + {"TypeSpec.Assign", Field, 9, ""}, + {"TypeSpec.Comment", Field, 0, ""}, + {"TypeSpec.Doc", Field, 0, ""}, + {"TypeSpec.Name", Field, 0, ""}, + {"TypeSpec.Type", Field, 0, ""}, + {"TypeSpec.TypeParams", Field, 18, ""}, + {"TypeSwitchStmt", Type, 0, ""}, + {"TypeSwitchStmt.Assign", Field, 0, ""}, + {"TypeSwitchStmt.Body", Field, 0, ""}, + {"TypeSwitchStmt.Init", Field, 0, ""}, + {"TypeSwitchStmt.Switch", Field, 0, ""}, + {"UnaryExpr", Type, 0, ""}, + {"UnaryExpr.Op", Field, 0, ""}, + {"UnaryExpr.OpPos", Field, 0, ""}, + {"UnaryExpr.X", Field, 0, ""}, + {"Unparen", Func, 22, "func(e Expr) Expr"}, + {"ValueSpec", Type, 0, ""}, + {"ValueSpec.Comment", Field, 0, ""}, + {"ValueSpec.Doc", Field, 0, ""}, + {"ValueSpec.Names", Field, 0, ""}, + {"ValueSpec.Type", Field, 0, ""}, + {"ValueSpec.Values", Field, 0, ""}, + {"Var", Const, 0, ""}, + {"Visitor", Type, 0, ""}, + {"Walk", Func, 0, "func(v Visitor, node Node)"}, + }, + "go/build": { + {"(*Context).Import", Method, 0, ""}, + {"(*Context).ImportDir", Method, 0, ""}, + {"(*Context).MatchFile", Method, 2, ""}, + {"(*Context).SrcDirs", Method, 0, ""}, + {"(*MultiplePackageError).Error", Method, 4, ""}, + {"(*NoGoError).Error", Method, 0, ""}, + {"(*Package).IsCommand", Method, 0, ""}, + {"AllowBinary", Const, 0, ""}, + {"ArchChar", Func, 0, "func(goarch string) (string, error)"}, + {"Context", Type, 0, ""}, + {"Context.BuildTags", Field, 0, ""}, + {"Context.CgoEnabled", Field, 0, ""}, + {"Context.Compiler", Field, 0, ""}, + {"Context.Dir", Field, 14, ""}, + {"Context.GOARCH", Field, 0, ""}, + {"Context.GOOS", Field, 0, ""}, + {"Context.GOPATH", Field, 0, ""}, + {"Context.GOROOT", Field, 0, ""}, + {"Context.HasSubdir", Field, 0, ""}, + {"Context.InstallSuffix", Field, 1, ""}, + {"Context.IsAbsPath", Field, 0, ""}, + {"Context.IsDir", Field, 0, ""}, + {"Context.JoinPath", Field, 0, ""}, + {"Context.OpenFile", Field, 0, ""}, + {"Context.ReadDir", Field, 0, ""}, + {"Context.ReleaseTags", Field, 1, ""}, + {"Context.SplitPathList", Field, 0, ""}, + {"Context.ToolTags", Field, 17, ""}, + {"Context.UseAllFiles", Field, 0, ""}, + {"Default", Var, 0, ""}, + {"Directive", Type, 21, ""}, + {"Directive.Pos", Field, 21, ""}, + {"Directive.Text", Field, 21, ""}, + {"FindOnly", Const, 0, ""}, + {"IgnoreVendor", Const, 6, ""}, + {"Import", Func, 0, "func(path string, srcDir string, mode ImportMode) (*Package, error)"}, + {"ImportComment", Const, 4, ""}, + {"ImportDir", Func, 0, "func(dir string, mode ImportMode) (*Package, error)"}, + {"ImportMode", Type, 0, ""}, + {"IsLocalImport", Func, 0, "func(path string) bool"}, + {"MultiplePackageError", Type, 4, ""}, + {"MultiplePackageError.Dir", Field, 4, ""}, + {"MultiplePackageError.Files", Field, 4, ""}, + {"MultiplePackageError.Packages", Field, 4, ""}, + {"NoGoError", Type, 0, ""}, + {"NoGoError.Dir", Field, 0, ""}, + {"Package", Type, 0, ""}, + {"Package.AllTags", Field, 2, ""}, + {"Package.BinDir", Field, 0, ""}, + {"Package.BinaryOnly", Field, 7, ""}, + {"Package.CFiles", Field, 0, ""}, + {"Package.CXXFiles", Field, 2, ""}, + {"Package.CgoCFLAGS", Field, 0, ""}, + {"Package.CgoCPPFLAGS", Field, 2, ""}, + {"Package.CgoCXXFLAGS", Field, 2, ""}, + {"Package.CgoFFLAGS", Field, 7, ""}, + {"Package.CgoFiles", Field, 0, ""}, + {"Package.CgoLDFLAGS", Field, 0, ""}, + {"Package.CgoPkgConfig", Field, 0, ""}, + {"Package.ConflictDir", Field, 2, ""}, + {"Package.Dir", Field, 0, ""}, + {"Package.Directives", Field, 21, ""}, + {"Package.Doc", Field, 0, ""}, + {"Package.EmbedPatternPos", Field, 16, ""}, + {"Package.EmbedPatterns", Field, 16, ""}, + {"Package.FFiles", Field, 7, ""}, + {"Package.GoFiles", Field, 0, ""}, + {"Package.Goroot", Field, 0, ""}, + {"Package.HFiles", Field, 0, ""}, + {"Package.IgnoredGoFiles", Field, 1, ""}, + {"Package.IgnoredOtherFiles", Field, 16, ""}, + {"Package.ImportComment", Field, 4, ""}, + {"Package.ImportPath", Field, 0, ""}, + {"Package.ImportPos", Field, 0, ""}, + {"Package.Imports", Field, 0, ""}, + {"Package.InvalidGoFiles", Field, 6, ""}, + {"Package.MFiles", Field, 3, ""}, + {"Package.Name", Field, 0, ""}, + {"Package.PkgObj", Field, 0, ""}, + {"Package.PkgRoot", Field, 0, ""}, + {"Package.PkgTargetRoot", Field, 5, ""}, + {"Package.Root", Field, 0, ""}, + {"Package.SFiles", Field, 0, ""}, + {"Package.SrcRoot", Field, 0, ""}, + {"Package.SwigCXXFiles", Field, 1, ""}, + {"Package.SwigFiles", Field, 1, ""}, + {"Package.SysoFiles", Field, 0, ""}, + {"Package.TestDirectives", Field, 21, ""}, + {"Package.TestEmbedPatternPos", Field, 16, ""}, + {"Package.TestEmbedPatterns", Field, 16, ""}, + {"Package.TestGoFiles", Field, 0, ""}, + {"Package.TestImportPos", Field, 0, ""}, + {"Package.TestImports", Field, 0, ""}, + {"Package.XTestDirectives", Field, 21, ""}, + {"Package.XTestEmbedPatternPos", Field, 16, ""}, + {"Package.XTestEmbedPatterns", Field, 16, ""}, + {"Package.XTestGoFiles", Field, 0, ""}, + {"Package.XTestImportPos", Field, 0, ""}, + {"Package.XTestImports", Field, 0, ""}, + {"ToolDir", Var, 0, ""}, + }, + "go/build/constraint": { + {"(*AndExpr).Eval", Method, 16, ""}, + {"(*AndExpr).String", Method, 16, ""}, + {"(*NotExpr).Eval", Method, 16, ""}, + {"(*NotExpr).String", Method, 16, ""}, + {"(*OrExpr).Eval", Method, 16, ""}, + {"(*OrExpr).String", Method, 16, ""}, + {"(*SyntaxError).Error", Method, 16, ""}, + {"(*TagExpr).Eval", Method, 16, ""}, + {"(*TagExpr).String", Method, 16, ""}, + {"AndExpr", Type, 16, ""}, + {"AndExpr.X", Field, 16, ""}, + {"AndExpr.Y", Field, 16, ""}, + {"Expr", Type, 16, ""}, + {"GoVersion", Func, 21, "func(x Expr) string"}, + {"IsGoBuild", Func, 16, "func(line string) bool"}, + {"IsPlusBuild", Func, 16, "func(line string) bool"}, + {"NotExpr", Type, 16, ""}, + {"NotExpr.X", Field, 16, ""}, + {"OrExpr", Type, 16, ""}, + {"OrExpr.X", Field, 16, ""}, + {"OrExpr.Y", Field, 16, ""}, + {"Parse", Func, 16, "func(line string) (Expr, error)"}, + {"PlusBuildLines", Func, 16, "func(x Expr) ([]string, error)"}, + {"SyntaxError", Type, 16, ""}, + {"SyntaxError.Err", Field, 16, ""}, + {"SyntaxError.Offset", Field, 16, ""}, + {"TagExpr", Type, 16, ""}, + {"TagExpr.Tag", Field, 16, ""}, + }, + "go/constant": { + {"(Kind).String", Method, 18, ""}, + {"BinaryOp", Func, 5, "func(x_ Value, op token.Token, y_ Value) Value"}, + {"BitLen", Func, 5, "func(x Value) int"}, + {"Bool", Const, 5, ""}, + {"BoolVal", Func, 5, "func(x Value) bool"}, + {"Bytes", Func, 5, "func(x Value) []byte"}, + {"Compare", Func, 5, "func(x_ Value, op token.Token, y_ Value) bool"}, + {"Complex", Const, 5, ""}, + {"Denom", Func, 5, "func(x Value) Value"}, + {"Float", Const, 5, ""}, + {"Float32Val", Func, 5, "func(x Value) (float32, bool)"}, + {"Float64Val", Func, 5, "func(x Value) (float64, bool)"}, + {"Imag", Func, 5, "func(x Value) Value"}, + {"Int", Const, 5, ""}, + {"Int64Val", Func, 5, "func(x Value) (int64, bool)"}, + {"Kind", Type, 5, ""}, + {"Make", Func, 13, "func(x any) Value"}, + {"MakeBool", Func, 5, "func(b bool) Value"}, + {"MakeFloat64", Func, 5, "func(x float64) Value"}, + {"MakeFromBytes", Func, 5, "func(bytes []byte) Value"}, + {"MakeFromLiteral", Func, 5, "func(lit string, tok token.Token, zero uint) Value"}, + {"MakeImag", Func, 5, "func(x Value) Value"}, + {"MakeInt64", Func, 5, "func(x int64) Value"}, + {"MakeString", Func, 5, "func(s string) Value"}, + {"MakeUint64", Func, 5, "func(x uint64) Value"}, + {"MakeUnknown", Func, 5, "func() Value"}, + {"Num", Func, 5, "func(x Value) Value"}, + {"Real", Func, 5, "func(x Value) Value"}, + {"Shift", Func, 5, "func(x Value, op token.Token, s uint) Value"}, + {"Sign", Func, 5, "func(x Value) int"}, + {"String", Const, 5, ""}, + {"StringVal", Func, 5, "func(x Value) string"}, + {"ToComplex", Func, 6, "func(x Value) Value"}, + {"ToFloat", Func, 6, "func(x Value) Value"}, + {"ToInt", Func, 6, "func(x Value) Value"}, + {"Uint64Val", Func, 5, "func(x Value) (uint64, bool)"}, + {"UnaryOp", Func, 5, "func(op token.Token, y Value, prec uint) Value"}, + {"Unknown", Const, 5, ""}, + {"Val", Func, 13, "func(x Value) any"}, + {"Value", Type, 5, ""}, + }, + "go/doc": { + {"(*Package).Filter", Method, 0, ""}, + {"(*Package).HTML", Method, 19, ""}, + {"(*Package).Markdown", Method, 19, ""}, + {"(*Package).Parser", Method, 19, ""}, + {"(*Package).Printer", Method, 19, ""}, + {"(*Package).Synopsis", Method, 19, ""}, + {"(*Package).Text", Method, 19, ""}, + {"AllDecls", Const, 0, ""}, + {"AllMethods", Const, 0, ""}, + {"Example", Type, 0, ""}, + {"Example.Code", Field, 0, ""}, + {"Example.Comments", Field, 0, ""}, + {"Example.Doc", Field, 0, ""}, + {"Example.EmptyOutput", Field, 1, ""}, + {"Example.Name", Field, 0, ""}, + {"Example.Order", Field, 1, ""}, + {"Example.Output", Field, 0, ""}, + {"Example.Play", Field, 1, ""}, + {"Example.Suffix", Field, 14, ""}, + {"Example.Unordered", Field, 7, ""}, + {"Examples", Func, 0, "func(testFiles ...*ast.File) []*Example"}, + {"Filter", Type, 0, ""}, + {"Func", Type, 0, ""}, + {"Func.Decl", Field, 0, ""}, + {"Func.Doc", Field, 0, ""}, + {"Func.Examples", Field, 14, ""}, + {"Func.Level", Field, 0, ""}, + {"Func.Name", Field, 0, ""}, + {"Func.Orig", Field, 0, ""}, + {"Func.Recv", Field, 0, ""}, + {"IllegalPrefixes", Var, 1, ""}, + {"IsPredeclared", Func, 8, "func(s string) bool"}, + {"Mode", Type, 0, ""}, + {"New", Func, 0, "func(pkg *ast.Package, importPath string, mode Mode) *Package"}, + {"NewFromFiles", Func, 14, "func(fset *token.FileSet, files []*ast.File, importPath string, opts ...any) (*Package, error)"}, + {"Note", Type, 1, ""}, + {"Note.Body", Field, 1, ""}, + {"Note.End", Field, 1, ""}, + {"Note.Pos", Field, 1, ""}, + {"Note.UID", Field, 1, ""}, + {"Package", Type, 0, ""}, + {"Package.Bugs", Field, 0, ""}, + {"Package.Consts", Field, 0, ""}, + {"Package.Doc", Field, 0, ""}, + {"Package.Examples", Field, 14, ""}, + {"Package.Filenames", Field, 0, ""}, + {"Package.Funcs", Field, 0, ""}, + {"Package.ImportPath", Field, 0, ""}, + {"Package.Imports", Field, 0, ""}, + {"Package.Name", Field, 0, ""}, + {"Package.Notes", Field, 1, ""}, + {"Package.Types", Field, 0, ""}, + {"Package.Vars", Field, 0, ""}, + {"PreserveAST", Const, 12, ""}, + {"Synopsis", Func, 0, "func(text string) string"}, + {"ToHTML", Func, 0, "func(w io.Writer, text string, words map[string]string)"}, + {"ToText", Func, 0, "func(w io.Writer, text string, prefix string, codePrefix string, width int)"}, + {"Type", Type, 0, ""}, + {"Type.Consts", Field, 0, ""}, + {"Type.Decl", Field, 0, ""}, + {"Type.Doc", Field, 0, ""}, + {"Type.Examples", Field, 14, ""}, + {"Type.Funcs", Field, 0, ""}, + {"Type.Methods", Field, 0, ""}, + {"Type.Name", Field, 0, ""}, + {"Type.Vars", Field, 0, ""}, + {"Value", Type, 0, ""}, + {"Value.Decl", Field, 0, ""}, + {"Value.Doc", Field, 0, ""}, + {"Value.Names", Field, 0, ""}, + }, + "go/doc/comment": { + {"(*DocLink).DefaultURL", Method, 19, ""}, + {"(*Heading).DefaultID", Method, 19, ""}, + {"(*List).BlankBefore", Method, 19, ""}, + {"(*List).BlankBetween", Method, 19, ""}, + {"(*Parser).Parse", Method, 19, ""}, + {"(*Printer).Comment", Method, 19, ""}, + {"(*Printer).HTML", Method, 19, ""}, + {"(*Printer).Markdown", Method, 19, ""}, + {"(*Printer).Text", Method, 19, ""}, + {"Block", Type, 19, ""}, + {"Code", Type, 19, ""}, + {"Code.Text", Field, 19, ""}, + {"DefaultLookupPackage", Func, 19, "func(name string) (importPath string, ok bool)"}, + {"Doc", Type, 19, ""}, + {"Doc.Content", Field, 19, ""}, + {"Doc.Links", Field, 19, ""}, + {"DocLink", Type, 19, ""}, + {"DocLink.ImportPath", Field, 19, ""}, + {"DocLink.Name", Field, 19, ""}, + {"DocLink.Recv", Field, 19, ""}, + {"DocLink.Text", Field, 19, ""}, + {"Heading", Type, 19, ""}, + {"Heading.Text", Field, 19, ""}, + {"Italic", Type, 19, ""}, + {"Link", Type, 19, ""}, + {"Link.Auto", Field, 19, ""}, + {"Link.Text", Field, 19, ""}, + {"Link.URL", Field, 19, ""}, + {"LinkDef", Type, 19, ""}, + {"LinkDef.Text", Field, 19, ""}, + {"LinkDef.URL", Field, 19, ""}, + {"LinkDef.Used", Field, 19, ""}, + {"List", Type, 19, ""}, + {"List.ForceBlankBefore", Field, 19, ""}, + {"List.ForceBlankBetween", Field, 19, ""}, + {"List.Items", Field, 19, ""}, + {"ListItem", Type, 19, ""}, + {"ListItem.Content", Field, 19, ""}, + {"ListItem.Number", Field, 19, ""}, + {"Paragraph", Type, 19, ""}, + {"Paragraph.Text", Field, 19, ""}, + {"Parser", Type, 19, ""}, + {"Parser.LookupPackage", Field, 19, ""}, + {"Parser.LookupSym", Field, 19, ""}, + {"Parser.Words", Field, 19, ""}, + {"Plain", Type, 19, ""}, + {"Printer", Type, 19, ""}, + {"Printer.DocLinkBaseURL", Field, 19, ""}, + {"Printer.DocLinkURL", Field, 19, ""}, + {"Printer.HeadingID", Field, 19, ""}, + {"Printer.HeadingLevel", Field, 19, ""}, + {"Printer.TextCodePrefix", Field, 19, ""}, + {"Printer.TextPrefix", Field, 19, ""}, + {"Printer.TextWidth", Field, 19, ""}, + {"Text", Type, 19, ""}, + }, + "go/format": { + {"Node", Func, 1, "func(dst io.Writer, fset *token.FileSet, node any) error"}, + {"Source", Func, 1, "func(src []byte) ([]byte, error)"}, + }, + "go/importer": { + {"Default", Func, 5, "func() types.Importer"}, + {"For", Func, 5, "func(compiler string, lookup Lookup) types.Importer"}, + {"ForCompiler", Func, 12, "func(fset *token.FileSet, compiler string, lookup Lookup) types.Importer"}, + {"Lookup", Type, 5, ""}, + }, + "go/parser": { + {"AllErrors", Const, 1, ""}, + {"DeclarationErrors", Const, 0, ""}, + {"ImportsOnly", Const, 0, ""}, + {"Mode", Type, 0, ""}, + {"PackageClauseOnly", Const, 0, ""}, + {"ParseComments", Const, 0, ""}, + {"ParseDir", Func, 0, "func(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, mode Mode) (pkgs map[string]*ast.Package, first error)"}, + {"ParseExpr", Func, 0, "func(x string) (ast.Expr, error)"}, + {"ParseExprFrom", Func, 5, "func(fset *token.FileSet, filename string, src any, mode Mode) (expr ast.Expr, err error)"}, + {"ParseFile", Func, 0, "func(fset *token.FileSet, filename string, src any, mode Mode) (f *ast.File, err error)"}, + {"SkipObjectResolution", Const, 17, ""}, + {"SpuriousErrors", Const, 0, ""}, + {"Trace", Const, 0, ""}, + }, + "go/printer": { + {"(*Config).Fprint", Method, 0, ""}, + {"CommentedNode", Type, 0, ""}, + {"CommentedNode.Comments", Field, 0, ""}, + {"CommentedNode.Node", Field, 0, ""}, + {"Config", Type, 0, ""}, + {"Config.Indent", Field, 1, ""}, + {"Config.Mode", Field, 0, ""}, + {"Config.Tabwidth", Field, 0, ""}, + {"Fprint", Func, 0, "func(output io.Writer, fset *token.FileSet, node any) error"}, + {"Mode", Type, 0, ""}, + {"RawFormat", Const, 0, ""}, + {"SourcePos", Const, 0, ""}, + {"TabIndent", Const, 0, ""}, + {"UseSpaces", Const, 0, ""}, + }, + "go/scanner": { + {"(*ErrorList).Add", Method, 0, ""}, + {"(*ErrorList).RemoveMultiples", Method, 0, ""}, + {"(*ErrorList).Reset", Method, 0, ""}, + {"(*Scanner).Init", Method, 0, ""}, + {"(*Scanner).Scan", Method, 0, ""}, + {"(Error).Error", Method, 0, ""}, + {"(ErrorList).Err", Method, 0, ""}, + {"(ErrorList).Error", Method, 0, ""}, + {"(ErrorList).Len", Method, 0, ""}, + {"(ErrorList).Less", Method, 0, ""}, + {"(ErrorList).Sort", Method, 0, ""}, + {"(ErrorList).Swap", Method, 0, ""}, + {"Error", Type, 0, ""}, + {"Error.Msg", Field, 0, ""}, + {"Error.Pos", Field, 0, ""}, + {"ErrorHandler", Type, 0, ""}, + {"ErrorList", Type, 0, ""}, + {"Mode", Type, 0, ""}, + {"PrintError", Func, 0, "func(w io.Writer, err error)"}, + {"ScanComments", Const, 0, ""}, + {"Scanner", Type, 0, ""}, + {"Scanner.ErrorCount", Field, 0, ""}, + }, + "go/token": { + {"(*File).AddLine", Method, 0, ""}, + {"(*File).AddLineColumnInfo", Method, 11, ""}, + {"(*File).AddLineInfo", Method, 0, ""}, + {"(*File).Base", Method, 0, ""}, + {"(*File).Line", Method, 0, ""}, + {"(*File).LineCount", Method, 0, ""}, + {"(*File).LineStart", Method, 12, ""}, + {"(*File).Lines", Method, 21, ""}, + {"(*File).MergeLine", Method, 2, ""}, + {"(*File).Name", Method, 0, ""}, + {"(*File).Offset", Method, 0, ""}, + {"(*File).Pos", Method, 0, ""}, + {"(*File).Position", Method, 0, ""}, + {"(*File).PositionFor", Method, 4, ""}, + {"(*File).SetLines", Method, 0, ""}, + {"(*File).SetLinesForContent", Method, 0, ""}, + {"(*File).Size", Method, 0, ""}, + {"(*FileSet).AddFile", Method, 0, ""}, + {"(*FileSet).Base", Method, 0, ""}, + {"(*FileSet).File", Method, 0, ""}, + {"(*FileSet).Iterate", Method, 0, ""}, + {"(*FileSet).Position", Method, 0, ""}, + {"(*FileSet).PositionFor", Method, 4, ""}, + {"(*FileSet).Read", Method, 0, ""}, + {"(*FileSet).RemoveFile", Method, 20, ""}, + {"(*FileSet).Write", Method, 0, ""}, + {"(*Position).IsValid", Method, 0, ""}, + {"(Pos).IsValid", Method, 0, ""}, + {"(Position).String", Method, 0, ""}, + {"(Token).IsKeyword", Method, 0, ""}, + {"(Token).IsLiteral", Method, 0, ""}, + {"(Token).IsOperator", Method, 0, ""}, + {"(Token).Precedence", Method, 0, ""}, + {"(Token).String", Method, 0, ""}, + {"ADD", Const, 0, ""}, + {"ADD_ASSIGN", Const, 0, ""}, + {"AND", Const, 0, ""}, + {"AND_ASSIGN", Const, 0, ""}, + {"AND_NOT", Const, 0, ""}, + {"AND_NOT_ASSIGN", Const, 0, ""}, + {"ARROW", Const, 0, ""}, + {"ASSIGN", Const, 0, ""}, + {"BREAK", Const, 0, ""}, + {"CASE", Const, 0, ""}, + {"CHAN", Const, 0, ""}, + {"CHAR", Const, 0, ""}, + {"COLON", Const, 0, ""}, + {"COMMA", Const, 0, ""}, + {"COMMENT", Const, 0, ""}, + {"CONST", Const, 0, ""}, + {"CONTINUE", Const, 0, ""}, + {"DEC", Const, 0, ""}, + {"DEFAULT", Const, 0, ""}, + {"DEFER", Const, 0, ""}, + {"DEFINE", Const, 0, ""}, + {"ELLIPSIS", Const, 0, ""}, + {"ELSE", Const, 0, ""}, + {"EOF", Const, 0, ""}, + {"EQL", Const, 0, ""}, + {"FALLTHROUGH", Const, 0, ""}, + {"FLOAT", Const, 0, ""}, + {"FOR", Const, 0, ""}, + {"FUNC", Const, 0, ""}, + {"File", Type, 0, ""}, + {"FileSet", Type, 0, ""}, + {"GEQ", Const, 0, ""}, + {"GO", Const, 0, ""}, + {"GOTO", Const, 0, ""}, + {"GTR", Const, 0, ""}, + {"HighestPrec", Const, 0, ""}, + {"IDENT", Const, 0, ""}, + {"IF", Const, 0, ""}, + {"ILLEGAL", Const, 0, ""}, + {"IMAG", Const, 0, ""}, + {"IMPORT", Const, 0, ""}, + {"INC", Const, 0, ""}, + {"INT", Const, 0, ""}, + {"INTERFACE", Const, 0, ""}, + {"IsExported", Func, 13, "func(name string) bool"}, + {"IsIdentifier", Func, 13, "func(name string) bool"}, + {"IsKeyword", Func, 13, "func(name string) bool"}, + {"LAND", Const, 0, ""}, + {"LBRACE", Const, 0, ""}, + {"LBRACK", Const, 0, ""}, + {"LEQ", Const, 0, ""}, + {"LOR", Const, 0, ""}, + {"LPAREN", Const, 0, ""}, + {"LSS", Const, 0, ""}, + {"Lookup", Func, 0, "func(ident string) Token"}, + {"LowestPrec", Const, 0, ""}, + {"MAP", Const, 0, ""}, + {"MUL", Const, 0, ""}, + {"MUL_ASSIGN", Const, 0, ""}, + {"NEQ", Const, 0, ""}, + {"NOT", Const, 0, ""}, + {"NewFileSet", Func, 0, "func() *FileSet"}, + {"NoPos", Const, 0, ""}, + {"OR", Const, 0, ""}, + {"OR_ASSIGN", Const, 0, ""}, + {"PACKAGE", Const, 0, ""}, + {"PERIOD", Const, 0, ""}, + {"Pos", Type, 0, ""}, + {"Position", Type, 0, ""}, + {"Position.Column", Field, 0, ""}, + {"Position.Filename", Field, 0, ""}, + {"Position.Line", Field, 0, ""}, + {"Position.Offset", Field, 0, ""}, + {"QUO", Const, 0, ""}, + {"QUO_ASSIGN", Const, 0, ""}, + {"RANGE", Const, 0, ""}, + {"RBRACE", Const, 0, ""}, + {"RBRACK", Const, 0, ""}, + {"REM", Const, 0, ""}, + {"REM_ASSIGN", Const, 0, ""}, + {"RETURN", Const, 0, ""}, + {"RPAREN", Const, 0, ""}, + {"SELECT", Const, 0, ""}, + {"SEMICOLON", Const, 0, ""}, + {"SHL", Const, 0, ""}, + {"SHL_ASSIGN", Const, 0, ""}, + {"SHR", Const, 0, ""}, + {"SHR_ASSIGN", Const, 0, ""}, + {"STRING", Const, 0, ""}, + {"STRUCT", Const, 0, ""}, + {"SUB", Const, 0, ""}, + {"SUB_ASSIGN", Const, 0, ""}, + {"SWITCH", Const, 0, ""}, + {"TILDE", Const, 18, ""}, + {"TYPE", Const, 0, ""}, + {"Token", Type, 0, ""}, + {"UnaryPrec", Const, 0, ""}, + {"VAR", Const, 0, ""}, + {"XOR", Const, 0, ""}, + {"XOR_ASSIGN", Const, 0, ""}, + }, + "go/types": { + {"(*Alias).Obj", Method, 22, ""}, + {"(*Alias).Origin", Method, 23, ""}, + {"(*Alias).Rhs", Method, 23, ""}, + {"(*Alias).SetTypeParams", Method, 23, ""}, + {"(*Alias).String", Method, 22, ""}, + {"(*Alias).TypeArgs", Method, 23, ""}, + {"(*Alias).TypeParams", Method, 23, ""}, + {"(*Alias).Underlying", Method, 22, ""}, + {"(*ArgumentError).Error", Method, 18, ""}, + {"(*ArgumentError).Unwrap", Method, 18, ""}, + {"(*Array).Elem", Method, 5, ""}, + {"(*Array).Len", Method, 5, ""}, + {"(*Array).String", Method, 5, ""}, + {"(*Array).Underlying", Method, 5, ""}, + {"(*Basic).Info", Method, 5, ""}, + {"(*Basic).Kind", Method, 5, ""}, + {"(*Basic).Name", Method, 5, ""}, + {"(*Basic).String", Method, 5, ""}, + {"(*Basic).Underlying", Method, 5, ""}, + {"(*Builtin).Exported", Method, 5, ""}, + {"(*Builtin).Id", Method, 5, ""}, + {"(*Builtin).Name", Method, 5, ""}, + {"(*Builtin).Parent", Method, 5, ""}, + {"(*Builtin).Pkg", Method, 5, ""}, + {"(*Builtin).Pos", Method, 5, ""}, + {"(*Builtin).String", Method, 5, ""}, + {"(*Builtin).Type", Method, 5, ""}, + {"(*Chan).Dir", Method, 5, ""}, + {"(*Chan).Elem", Method, 5, ""}, + {"(*Chan).String", Method, 5, ""}, + {"(*Chan).Underlying", Method, 5, ""}, + {"(*Checker).Files", Method, 5, ""}, + {"(*Config).Check", Method, 5, ""}, + {"(*Const).Exported", Method, 5, ""}, + {"(*Const).Id", Method, 5, ""}, + {"(*Const).Name", Method, 5, ""}, + {"(*Const).Parent", Method, 5, ""}, + {"(*Const).Pkg", Method, 5, ""}, + {"(*Const).Pos", Method, 5, ""}, + {"(*Const).String", Method, 5, ""}, + {"(*Const).Type", Method, 5, ""}, + {"(*Const).Val", Method, 5, ""}, + {"(*Func).Exported", Method, 5, ""}, + {"(*Func).FullName", Method, 5, ""}, + {"(*Func).Id", Method, 5, ""}, + {"(*Func).Name", Method, 5, ""}, + {"(*Func).Origin", Method, 19, ""}, + {"(*Func).Parent", Method, 5, ""}, + {"(*Func).Pkg", Method, 5, ""}, + {"(*Func).Pos", Method, 5, ""}, + {"(*Func).Scope", Method, 5, ""}, + {"(*Func).Signature", Method, 23, ""}, + {"(*Func).String", Method, 5, ""}, + {"(*Func).Type", Method, 5, ""}, + {"(*Info).ObjectOf", Method, 5, ""}, + {"(*Info).PkgNameOf", Method, 22, ""}, + {"(*Info).TypeOf", Method, 5, ""}, + {"(*Initializer).String", Method, 5, ""}, + {"(*Interface).Complete", Method, 5, ""}, + {"(*Interface).Embedded", Method, 5, ""}, + {"(*Interface).EmbeddedType", Method, 11, ""}, + {"(*Interface).EmbeddedTypes", Method, 24, ""}, + {"(*Interface).Empty", Method, 5, ""}, + {"(*Interface).ExplicitMethod", Method, 5, ""}, + {"(*Interface).ExplicitMethods", Method, 24, ""}, + {"(*Interface).IsComparable", Method, 18, ""}, + {"(*Interface).IsImplicit", Method, 18, ""}, + {"(*Interface).IsMethodSet", Method, 18, ""}, + {"(*Interface).MarkImplicit", Method, 18, ""}, + {"(*Interface).Method", Method, 5, ""}, + {"(*Interface).Methods", Method, 24, ""}, + {"(*Interface).NumEmbeddeds", Method, 5, ""}, + {"(*Interface).NumExplicitMethods", Method, 5, ""}, + {"(*Interface).NumMethods", Method, 5, ""}, + {"(*Interface).String", Method, 5, ""}, + {"(*Interface).Underlying", Method, 5, ""}, + {"(*Label).Exported", Method, 5, ""}, + {"(*Label).Id", Method, 5, ""}, + {"(*Label).Name", Method, 5, ""}, + {"(*Label).Parent", Method, 5, ""}, + {"(*Label).Pkg", Method, 5, ""}, + {"(*Label).Pos", Method, 5, ""}, + {"(*Label).String", Method, 5, ""}, + {"(*Label).Type", Method, 5, ""}, + {"(*Map).Elem", Method, 5, ""}, + {"(*Map).Key", Method, 5, ""}, + {"(*Map).String", Method, 5, ""}, + {"(*Map).Underlying", Method, 5, ""}, + {"(*MethodSet).At", Method, 5, ""}, + {"(*MethodSet).Len", Method, 5, ""}, + {"(*MethodSet).Lookup", Method, 5, ""}, + {"(*MethodSet).Methods", Method, 24, ""}, + {"(*MethodSet).String", Method, 5, ""}, + {"(*Named).AddMethod", Method, 5, ""}, + {"(*Named).Method", Method, 5, ""}, + {"(*Named).Methods", Method, 24, ""}, + {"(*Named).NumMethods", Method, 5, ""}, + {"(*Named).Obj", Method, 5, ""}, + {"(*Named).Origin", Method, 18, ""}, + {"(*Named).SetTypeParams", Method, 18, ""}, + {"(*Named).SetUnderlying", Method, 5, ""}, + {"(*Named).String", Method, 5, ""}, + {"(*Named).TypeArgs", Method, 18, ""}, + {"(*Named).TypeParams", Method, 18, ""}, + {"(*Named).Underlying", Method, 5, ""}, + {"(*Nil).Exported", Method, 5, ""}, + {"(*Nil).Id", Method, 5, ""}, + {"(*Nil).Name", Method, 5, ""}, + {"(*Nil).Parent", Method, 5, ""}, + {"(*Nil).Pkg", Method, 5, ""}, + {"(*Nil).Pos", Method, 5, ""}, + {"(*Nil).String", Method, 5, ""}, + {"(*Nil).Type", Method, 5, ""}, + {"(*Package).Complete", Method, 5, ""}, + {"(*Package).GoVersion", Method, 21, ""}, + {"(*Package).Imports", Method, 5, ""}, + {"(*Package).MarkComplete", Method, 5, ""}, + {"(*Package).Name", Method, 5, ""}, + {"(*Package).Path", Method, 5, ""}, + {"(*Package).Scope", Method, 5, ""}, + {"(*Package).SetImports", Method, 5, ""}, + {"(*Package).SetName", Method, 6, ""}, + {"(*Package).String", Method, 5, ""}, + {"(*PkgName).Exported", Method, 5, ""}, + {"(*PkgName).Id", Method, 5, ""}, + {"(*PkgName).Imported", Method, 5, ""}, + {"(*PkgName).Name", Method, 5, ""}, + {"(*PkgName).Parent", Method, 5, ""}, + {"(*PkgName).Pkg", Method, 5, ""}, + {"(*PkgName).Pos", Method, 5, ""}, + {"(*PkgName).String", Method, 5, ""}, + {"(*PkgName).Type", Method, 5, ""}, + {"(*Pointer).Elem", Method, 5, ""}, + {"(*Pointer).String", Method, 5, ""}, + {"(*Pointer).Underlying", Method, 5, ""}, + {"(*Scope).Child", Method, 5, ""}, + {"(*Scope).Children", Method, 24, ""}, + {"(*Scope).Contains", Method, 5, ""}, + {"(*Scope).End", Method, 5, ""}, + {"(*Scope).Innermost", Method, 5, ""}, + {"(*Scope).Insert", Method, 5, ""}, + {"(*Scope).Len", Method, 5, ""}, + {"(*Scope).Lookup", Method, 5, ""}, + {"(*Scope).LookupParent", Method, 5, ""}, + {"(*Scope).Names", Method, 5, ""}, + {"(*Scope).NumChildren", Method, 5, ""}, + {"(*Scope).Parent", Method, 5, ""}, + {"(*Scope).Pos", Method, 5, ""}, + {"(*Scope).String", Method, 5, ""}, + {"(*Scope).WriteTo", Method, 5, ""}, + {"(*Selection).Index", Method, 5, ""}, + {"(*Selection).Indirect", Method, 5, ""}, + {"(*Selection).Kind", Method, 5, ""}, + {"(*Selection).Obj", Method, 5, ""}, + {"(*Selection).Recv", Method, 5, ""}, + {"(*Selection).String", Method, 5, ""}, + {"(*Selection).Type", Method, 5, ""}, + {"(*Signature).Params", Method, 5, ""}, + {"(*Signature).Recv", Method, 5, ""}, + {"(*Signature).RecvTypeParams", Method, 18, ""}, + {"(*Signature).Results", Method, 5, ""}, + {"(*Signature).String", Method, 5, ""}, + {"(*Signature).TypeParams", Method, 18, ""}, + {"(*Signature).Underlying", Method, 5, ""}, + {"(*Signature).Variadic", Method, 5, ""}, + {"(*Slice).Elem", Method, 5, ""}, + {"(*Slice).String", Method, 5, ""}, + {"(*Slice).Underlying", Method, 5, ""}, + {"(*StdSizes).Alignof", Method, 5, ""}, + {"(*StdSizes).Offsetsof", Method, 5, ""}, + {"(*StdSizes).Sizeof", Method, 5, ""}, + {"(*Struct).Field", Method, 5, ""}, + {"(*Struct).Fields", Method, 24, ""}, + {"(*Struct).NumFields", Method, 5, ""}, + {"(*Struct).String", Method, 5, ""}, + {"(*Struct).Tag", Method, 5, ""}, + {"(*Struct).Underlying", Method, 5, ""}, + {"(*Term).String", Method, 18, ""}, + {"(*Term).Tilde", Method, 18, ""}, + {"(*Term).Type", Method, 18, ""}, + {"(*Tuple).At", Method, 5, ""}, + {"(*Tuple).Len", Method, 5, ""}, + {"(*Tuple).String", Method, 5, ""}, + {"(*Tuple).Underlying", Method, 5, ""}, + {"(*Tuple).Variables", Method, 24, ""}, + {"(*TypeList).At", Method, 18, ""}, + {"(*TypeList).Len", Method, 18, ""}, + {"(*TypeList).Types", Method, 24, ""}, + {"(*TypeName).Exported", Method, 5, ""}, + {"(*TypeName).Id", Method, 5, ""}, + {"(*TypeName).IsAlias", Method, 9, ""}, + {"(*TypeName).Name", Method, 5, ""}, + {"(*TypeName).Parent", Method, 5, ""}, + {"(*TypeName).Pkg", Method, 5, ""}, + {"(*TypeName).Pos", Method, 5, ""}, + {"(*TypeName).String", Method, 5, ""}, + {"(*TypeName).Type", Method, 5, ""}, + {"(*TypeParam).Constraint", Method, 18, ""}, + {"(*TypeParam).Index", Method, 18, ""}, + {"(*TypeParam).Obj", Method, 18, ""}, + {"(*TypeParam).SetConstraint", Method, 18, ""}, + {"(*TypeParam).String", Method, 18, ""}, + {"(*TypeParam).Underlying", Method, 18, ""}, + {"(*TypeParamList).At", Method, 18, ""}, + {"(*TypeParamList).Len", Method, 18, ""}, + {"(*TypeParamList).TypeParams", Method, 24, ""}, + {"(*Union).Len", Method, 18, ""}, + {"(*Union).String", Method, 18, ""}, + {"(*Union).Term", Method, 18, ""}, + {"(*Union).Terms", Method, 24, ""}, + {"(*Union).Underlying", Method, 18, ""}, + {"(*Var).Anonymous", Method, 5, ""}, + {"(*Var).Embedded", Method, 11, ""}, + {"(*Var).Exported", Method, 5, ""}, + {"(*Var).Id", Method, 5, ""}, + {"(*Var).IsField", Method, 5, ""}, + {"(*Var).Kind", Method, 25, ""}, + {"(*Var).Name", Method, 5, ""}, + {"(*Var).Origin", Method, 19, ""}, + {"(*Var).Parent", Method, 5, ""}, + {"(*Var).Pkg", Method, 5, ""}, + {"(*Var).Pos", Method, 5, ""}, + {"(*Var).SetKind", Method, 25, ""}, + {"(*Var).String", Method, 5, ""}, + {"(*Var).Type", Method, 5, ""}, + {"(Checker).ObjectOf", Method, 5, ""}, + {"(Checker).PkgNameOf", Method, 22, ""}, + {"(Checker).TypeOf", Method, 5, ""}, + {"(Error).Error", Method, 5, ""}, + {"(TypeAndValue).Addressable", Method, 5, ""}, + {"(TypeAndValue).Assignable", Method, 5, ""}, + {"(TypeAndValue).HasOk", Method, 5, ""}, + {"(TypeAndValue).IsBuiltin", Method, 5, ""}, + {"(TypeAndValue).IsNil", Method, 5, ""}, + {"(TypeAndValue).IsType", Method, 5, ""}, + {"(TypeAndValue).IsValue", Method, 5, ""}, + {"(TypeAndValue).IsVoid", Method, 5, ""}, + {"(VarKind).String", Method, 25, ""}, + {"Alias", Type, 22, ""}, + {"ArgumentError", Type, 18, ""}, + {"ArgumentError.Err", Field, 18, ""}, + {"ArgumentError.Index", Field, 18, ""}, + {"Array", Type, 5, ""}, + {"AssertableTo", Func, 5, "func(V *Interface, T Type) bool"}, + {"AssignableTo", Func, 5, "func(V Type, T Type) bool"}, + {"Basic", Type, 5, ""}, + {"BasicInfo", Type, 5, ""}, + {"BasicKind", Type, 5, ""}, + {"Bool", Const, 5, ""}, + {"Builtin", Type, 5, ""}, + {"Byte", Const, 5, ""}, + {"Chan", Type, 5, ""}, + {"ChanDir", Type, 5, ""}, + {"CheckExpr", Func, 13, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr ast.Expr, info *Info) (err error)"}, + {"Checker", Type, 5, ""}, + {"Checker.Info", Field, 5, ""}, + {"Comparable", Func, 5, "func(T Type) bool"}, + {"Complex128", Const, 5, ""}, + {"Complex64", Const, 5, ""}, + {"Config", Type, 5, ""}, + {"Config.Context", Field, 18, ""}, + {"Config.DisableUnusedImportCheck", Field, 5, ""}, + {"Config.Error", Field, 5, ""}, + {"Config.FakeImportC", Field, 5, ""}, + {"Config.GoVersion", Field, 18, ""}, + {"Config.IgnoreFuncBodies", Field, 5, ""}, + {"Config.Importer", Field, 5, ""}, + {"Config.Sizes", Field, 5, ""}, + {"Const", Type, 5, ""}, + {"Context", Type, 18, ""}, + {"ConvertibleTo", Func, 5, "func(V Type, T Type) bool"}, + {"DefPredeclaredTestFuncs", Func, 5, "func()"}, + {"Default", Func, 8, "func(t Type) Type"}, + {"Error", Type, 5, ""}, + {"Error.Fset", Field, 5, ""}, + {"Error.Msg", Field, 5, ""}, + {"Error.Pos", Field, 5, ""}, + {"Error.Soft", Field, 5, ""}, + {"Eval", Func, 5, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr string) (_ TypeAndValue, err error)"}, + {"ExprString", Func, 5, "func(x ast.Expr) string"}, + {"FieldVal", Const, 5, ""}, + {"FieldVar", Const, 25, ""}, + {"Float32", Const, 5, ""}, + {"Float64", Const, 5, ""}, + {"Func", Type, 5, ""}, + {"Id", Func, 5, "func(pkg *Package, name string) string"}, + {"Identical", Func, 5, "func(x Type, y Type) bool"}, + {"IdenticalIgnoreTags", Func, 8, "func(x Type, y Type) bool"}, + {"Implements", Func, 5, "func(V Type, T *Interface) bool"}, + {"ImportMode", Type, 6, ""}, + {"Importer", Type, 5, ""}, + {"ImporterFrom", Type, 6, ""}, + {"Info", Type, 5, ""}, + {"Info.Defs", Field, 5, ""}, + {"Info.FileVersions", Field, 22, ""}, + {"Info.Implicits", Field, 5, ""}, + {"Info.InitOrder", Field, 5, ""}, + {"Info.Instances", Field, 18, ""}, + {"Info.Scopes", Field, 5, ""}, + {"Info.Selections", Field, 5, ""}, + {"Info.Types", Field, 5, ""}, + {"Info.Uses", Field, 5, ""}, + {"Initializer", Type, 5, ""}, + {"Initializer.Lhs", Field, 5, ""}, + {"Initializer.Rhs", Field, 5, ""}, + {"Instance", Type, 18, ""}, + {"Instance.Type", Field, 18, ""}, + {"Instance.TypeArgs", Field, 18, ""}, + {"Instantiate", Func, 18, "func(ctxt *Context, orig Type, targs []Type, validate bool) (Type, error)"}, + {"Int", Const, 5, ""}, + {"Int16", Const, 5, ""}, + {"Int32", Const, 5, ""}, + {"Int64", Const, 5, ""}, + {"Int8", Const, 5, ""}, + {"Interface", Type, 5, ""}, + {"Invalid", Const, 5, ""}, + {"IsBoolean", Const, 5, ""}, + {"IsComplex", Const, 5, ""}, + {"IsConstType", Const, 5, ""}, + {"IsFloat", Const, 5, ""}, + {"IsInteger", Const, 5, ""}, + {"IsInterface", Func, 5, "func(t Type) bool"}, + {"IsNumeric", Const, 5, ""}, + {"IsOrdered", Const, 5, ""}, + {"IsString", Const, 5, ""}, + {"IsUnsigned", Const, 5, ""}, + {"IsUntyped", Const, 5, ""}, + {"Label", Type, 5, ""}, + {"LocalVar", Const, 25, ""}, + {"LookupFieldOrMethod", Func, 5, "func(T Type, addressable bool, pkg *Package, name string) (obj Object, index []int, indirect bool)"}, + {"LookupSelection", Func, 25, ""}, + {"Map", Type, 5, ""}, + {"MethodExpr", Const, 5, ""}, + {"MethodSet", Type, 5, ""}, + {"MethodVal", Const, 5, ""}, + {"MissingMethod", Func, 5, "func(V Type, T *Interface, static bool) (method *Func, wrongType bool)"}, + {"Named", Type, 5, ""}, + {"NewAlias", Func, 22, "func(obj *TypeName, rhs Type) *Alias"}, + {"NewArray", Func, 5, "func(elem Type, len int64) *Array"}, + {"NewChan", Func, 5, "func(dir ChanDir, elem Type) *Chan"}, + {"NewChecker", Func, 5, "func(conf *Config, fset *token.FileSet, pkg *Package, info *Info) *Checker"}, + {"NewConst", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, val constant.Value) *Const"}, + {"NewContext", Func, 18, "func() *Context"}, + {"NewField", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var"}, + {"NewFunc", Func, 5, "func(pos token.Pos, pkg *Package, name string, sig *Signature) *Func"}, + {"NewInterface", Func, 5, "func(methods []*Func, embeddeds []*Named) *Interface"}, + {"NewInterfaceType", Func, 11, "func(methods []*Func, embeddeds []Type) *Interface"}, + {"NewLabel", Func, 5, "func(pos token.Pos, pkg *Package, name string) *Label"}, + {"NewMap", Func, 5, "func(key Type, elem Type) *Map"}, + {"NewMethodSet", Func, 5, "func(T Type) *MethodSet"}, + {"NewNamed", Func, 5, "func(obj *TypeName, underlying Type, methods []*Func) *Named"}, + {"NewPackage", Func, 5, "func(path string, name string) *Package"}, + {"NewParam", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"}, + {"NewPkgName", Func, 5, "func(pos token.Pos, pkg *Package, name string, imported *Package) *PkgName"}, + {"NewPointer", Func, 5, "func(elem Type) *Pointer"}, + {"NewScope", Func, 5, "func(parent *Scope, pos token.Pos, end token.Pos, comment string) *Scope"}, + {"NewSignature", Func, 5, "func(recv *Var, params *Tuple, results *Tuple, variadic bool) *Signature"}, + {"NewSignatureType", Func, 18, "func(recv *Var, recvTypeParams []*TypeParam, typeParams []*TypeParam, params *Tuple, results *Tuple, variadic bool) *Signature"}, + {"NewSlice", Func, 5, "func(elem Type) *Slice"}, + {"NewStruct", Func, 5, "func(fields []*Var, tags []string) *Struct"}, + {"NewTerm", Func, 18, "func(tilde bool, typ Type) *Term"}, + {"NewTuple", Func, 5, "func(x ...*Var) *Tuple"}, + {"NewTypeName", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *TypeName"}, + {"NewTypeParam", Func, 18, "func(obj *TypeName, constraint Type) *TypeParam"}, + {"NewUnion", Func, 18, "func(terms []*Term) *Union"}, + {"NewVar", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"}, + {"Nil", Type, 5, ""}, + {"Object", Type, 5, ""}, + {"ObjectString", Func, 5, "func(obj Object, qf Qualifier) string"}, + {"Package", Type, 5, ""}, + {"PackageVar", Const, 25, ""}, + {"ParamVar", Const, 25, ""}, + {"PkgName", Type, 5, ""}, + {"Pointer", Type, 5, ""}, + {"Qualifier", Type, 5, ""}, + {"RecvOnly", Const, 5, ""}, + {"RecvVar", Const, 25, ""}, + {"RelativeTo", Func, 5, "func(pkg *Package) Qualifier"}, + {"ResultVar", Const, 25, ""}, + {"Rune", Const, 5, ""}, + {"Satisfies", Func, 20, "func(V Type, T *Interface) bool"}, + {"Scope", Type, 5, ""}, + {"Selection", Type, 5, ""}, + {"SelectionKind", Type, 5, ""}, + {"SelectionString", Func, 5, "func(s *Selection, qf Qualifier) string"}, + {"SendOnly", Const, 5, ""}, + {"SendRecv", Const, 5, ""}, + {"Signature", Type, 5, ""}, + {"Sizes", Type, 5, ""}, + {"SizesFor", Func, 9, "func(compiler string, arch string) Sizes"}, + {"Slice", Type, 5, ""}, + {"StdSizes", Type, 5, ""}, + {"StdSizes.MaxAlign", Field, 5, ""}, + {"StdSizes.WordSize", Field, 5, ""}, + {"String", Const, 5, ""}, + {"Struct", Type, 5, ""}, + {"Term", Type, 18, ""}, + {"Tuple", Type, 5, ""}, + {"Typ", Var, 5, ""}, + {"Type", Type, 5, ""}, + {"TypeAndValue", Type, 5, ""}, + {"TypeAndValue.Type", Field, 5, ""}, + {"TypeAndValue.Value", Field, 5, ""}, + {"TypeList", Type, 18, ""}, + {"TypeName", Type, 5, ""}, + {"TypeParam", Type, 18, ""}, + {"TypeParamList", Type, 18, ""}, + {"TypeString", Func, 5, "func(typ Type, qf Qualifier) string"}, + {"Uint", Const, 5, ""}, + {"Uint16", Const, 5, ""}, + {"Uint32", Const, 5, ""}, + {"Uint64", Const, 5, ""}, + {"Uint8", Const, 5, ""}, + {"Uintptr", Const, 5, ""}, + {"Unalias", Func, 22, "func(t Type) Type"}, + {"Union", Type, 18, ""}, + {"Universe", Var, 5, ""}, + {"Unsafe", Var, 5, ""}, + {"UnsafePointer", Const, 5, ""}, + {"UntypedBool", Const, 5, ""}, + {"UntypedComplex", Const, 5, ""}, + {"UntypedFloat", Const, 5, ""}, + {"UntypedInt", Const, 5, ""}, + {"UntypedNil", Const, 5, ""}, + {"UntypedRune", Const, 5, ""}, + {"UntypedString", Const, 5, ""}, + {"Var", Type, 5, ""}, + {"VarKind", Type, 25, ""}, + {"WriteExpr", Func, 5, "func(buf *bytes.Buffer, x ast.Expr)"}, + {"WriteSignature", Func, 5, "func(buf *bytes.Buffer, sig *Signature, qf Qualifier)"}, + {"WriteType", Func, 5, "func(buf *bytes.Buffer, typ Type, qf Qualifier)"}, + }, + "go/version": { + {"Compare", Func, 22, "func(x string, y string) int"}, + {"IsValid", Func, 22, "func(x string) bool"}, + {"Lang", Func, 22, "func(x string) string"}, + }, + "hash": { + {"Hash", Type, 0, ""}, + {"Hash32", Type, 0, ""}, + {"Hash64", Type, 0, ""}, + }, + "hash/adler32": { + {"Checksum", Func, 0, "func(data []byte) uint32"}, + {"New", Func, 0, "func() hash.Hash32"}, + {"Size", Const, 0, ""}, + }, + "hash/crc32": { + {"Castagnoli", Const, 0, ""}, + {"Checksum", Func, 0, "func(data []byte, tab *Table) uint32"}, + {"ChecksumIEEE", Func, 0, "func(data []byte) uint32"}, + {"IEEE", Const, 0, ""}, + {"IEEETable", Var, 0, ""}, + {"Koopman", Const, 0, ""}, + {"MakeTable", Func, 0, "func(poly uint32) *Table"}, + {"New", Func, 0, "func(tab *Table) hash.Hash32"}, + {"NewIEEE", Func, 0, "func() hash.Hash32"}, + {"Size", Const, 0, ""}, + {"Table", Type, 0, ""}, + {"Update", Func, 0, "func(crc uint32, tab *Table, p []byte) uint32"}, + }, + "hash/crc64": { + {"Checksum", Func, 0, "func(data []byte, tab *Table) uint64"}, + {"ECMA", Const, 0, ""}, + {"ISO", Const, 0, ""}, + {"MakeTable", Func, 0, "func(poly uint64) *Table"}, + {"New", Func, 0, "func(tab *Table) hash.Hash64"}, + {"Size", Const, 0, ""}, + {"Table", Type, 0, ""}, + {"Update", Func, 0, "func(crc uint64, tab *Table, p []byte) uint64"}, + }, + "hash/fnv": { + {"New128", Func, 9, "func() hash.Hash"}, + {"New128a", Func, 9, "func() hash.Hash"}, + {"New32", Func, 0, "func() hash.Hash32"}, + {"New32a", Func, 0, "func() hash.Hash32"}, + {"New64", Func, 0, "func() hash.Hash64"}, + {"New64a", Func, 0, "func() hash.Hash64"}, + }, + "hash/maphash": { + {"(*Hash).BlockSize", Method, 14, ""}, + {"(*Hash).Reset", Method, 14, ""}, + {"(*Hash).Seed", Method, 14, ""}, + {"(*Hash).SetSeed", Method, 14, ""}, + {"(*Hash).Size", Method, 14, ""}, + {"(*Hash).Sum", Method, 14, ""}, + {"(*Hash).Sum64", Method, 14, ""}, + {"(*Hash).Write", Method, 14, ""}, + {"(*Hash).WriteByte", Method, 14, ""}, + {"(*Hash).WriteString", Method, 14, ""}, + {"Bytes", Func, 19, "func(seed Seed, b []byte) uint64"}, + {"Comparable", Func, 24, "func[T comparable](seed Seed, v T) uint64"}, + {"Hash", Type, 14, ""}, + {"MakeSeed", Func, 14, "func() Seed"}, + {"Seed", Type, 14, ""}, + {"String", Func, 19, "func(seed Seed, s string) uint64"}, + {"WriteComparable", Func, 24, "func[T comparable](h *Hash, x T)"}, + }, + "html": { + {"EscapeString", Func, 0, "func(s string) string"}, + {"UnescapeString", Func, 0, "func(s string) string"}, + }, + "html/template": { + {"(*Error).Error", Method, 0, ""}, + {"(*Template).AddParseTree", Method, 0, ""}, + {"(*Template).Clone", Method, 0, ""}, + {"(*Template).DefinedTemplates", Method, 6, ""}, + {"(*Template).Delims", Method, 0, ""}, + {"(*Template).Execute", Method, 0, ""}, + {"(*Template).ExecuteTemplate", Method, 0, ""}, + {"(*Template).Funcs", Method, 0, ""}, + {"(*Template).Lookup", Method, 0, ""}, + {"(*Template).Name", Method, 0, ""}, + {"(*Template).New", Method, 0, ""}, + {"(*Template).Option", Method, 5, ""}, + {"(*Template).Parse", Method, 0, ""}, + {"(*Template).ParseFS", Method, 16, ""}, + {"(*Template).ParseFiles", Method, 0, ""}, + {"(*Template).ParseGlob", Method, 0, ""}, + {"(*Template).Templates", Method, 0, ""}, + {"CSS", Type, 0, ""}, + {"ErrAmbigContext", Const, 0, ""}, + {"ErrBadHTML", Const, 0, ""}, + {"ErrBranchEnd", Const, 0, ""}, + {"ErrEndContext", Const, 0, ""}, + {"ErrJSTemplate", Const, 21, ""}, + {"ErrNoSuchTemplate", Const, 0, ""}, + {"ErrOutputContext", Const, 0, ""}, + {"ErrPartialCharset", Const, 0, ""}, + {"ErrPartialEscape", Const, 0, ""}, + {"ErrPredefinedEscaper", Const, 9, ""}, + {"ErrRangeLoopReentry", Const, 0, ""}, + {"ErrSlashAmbig", Const, 0, ""}, + {"Error", Type, 0, ""}, + {"Error.Description", Field, 0, ""}, + {"Error.ErrorCode", Field, 0, ""}, + {"Error.Line", Field, 0, ""}, + {"Error.Name", Field, 0, ""}, + {"Error.Node", Field, 4, ""}, + {"ErrorCode", Type, 0, ""}, + {"FuncMap", Type, 0, ""}, + {"HTML", Type, 0, ""}, + {"HTMLAttr", Type, 0, ""}, + {"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"}, + {"HTMLEscapeString", Func, 0, "func(s string) string"}, + {"HTMLEscaper", Func, 0, "func(args ...any) string"}, + {"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"}, + {"JS", Type, 0, ""}, + {"JSEscape", Func, 0, "func(w io.Writer, b []byte)"}, + {"JSEscapeString", Func, 0, "func(s string) string"}, + {"JSEscaper", Func, 0, "func(args ...any) string"}, + {"JSStr", Type, 0, ""}, + {"Must", Func, 0, "func(t *Template, err error) *Template"}, + {"New", Func, 0, "func(name string) *Template"}, + {"OK", Const, 0, ""}, + {"ParseFS", Func, 16, "func(fs fs.FS, patterns ...string) (*Template, error)"}, + {"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"}, + {"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"}, + {"Srcset", Type, 10, ""}, + {"Template", Type, 0, ""}, + {"Template.Tree", Field, 2, ""}, + {"URL", Type, 0, ""}, + {"URLQueryEscaper", Func, 0, "func(args ...any) string"}, + }, + "image": { + {"(*Alpha).AlphaAt", Method, 4, ""}, + {"(*Alpha).At", Method, 0, ""}, + {"(*Alpha).Bounds", Method, 0, ""}, + {"(*Alpha).ColorModel", Method, 0, ""}, + {"(*Alpha).Opaque", Method, 0, ""}, + {"(*Alpha).PixOffset", Method, 0, ""}, + {"(*Alpha).RGBA64At", Method, 17, ""}, + {"(*Alpha).Set", Method, 0, ""}, + {"(*Alpha).SetAlpha", Method, 0, ""}, + {"(*Alpha).SetRGBA64", Method, 17, ""}, + {"(*Alpha).SubImage", Method, 0, ""}, + {"(*Alpha16).Alpha16At", Method, 4, ""}, + {"(*Alpha16).At", Method, 0, ""}, + {"(*Alpha16).Bounds", Method, 0, ""}, + {"(*Alpha16).ColorModel", Method, 0, ""}, + {"(*Alpha16).Opaque", Method, 0, ""}, + {"(*Alpha16).PixOffset", Method, 0, ""}, + {"(*Alpha16).RGBA64At", Method, 17, ""}, + {"(*Alpha16).Set", Method, 0, ""}, + {"(*Alpha16).SetAlpha16", Method, 0, ""}, + {"(*Alpha16).SetRGBA64", Method, 17, ""}, + {"(*Alpha16).SubImage", Method, 0, ""}, + {"(*CMYK).At", Method, 5, ""}, + {"(*CMYK).Bounds", Method, 5, ""}, + {"(*CMYK).CMYKAt", Method, 5, ""}, + {"(*CMYK).ColorModel", Method, 5, ""}, + {"(*CMYK).Opaque", Method, 5, ""}, + {"(*CMYK).PixOffset", Method, 5, ""}, + {"(*CMYK).RGBA64At", Method, 17, ""}, + {"(*CMYK).Set", Method, 5, ""}, + {"(*CMYK).SetCMYK", Method, 5, ""}, + {"(*CMYK).SetRGBA64", Method, 17, ""}, + {"(*CMYK).SubImage", Method, 5, ""}, + {"(*Gray).At", Method, 0, ""}, + {"(*Gray).Bounds", Method, 0, ""}, + {"(*Gray).ColorModel", Method, 0, ""}, + {"(*Gray).GrayAt", Method, 4, ""}, + {"(*Gray).Opaque", Method, 0, ""}, + {"(*Gray).PixOffset", Method, 0, ""}, + {"(*Gray).RGBA64At", Method, 17, ""}, + {"(*Gray).Set", Method, 0, ""}, + {"(*Gray).SetGray", Method, 0, ""}, + {"(*Gray).SetRGBA64", Method, 17, ""}, + {"(*Gray).SubImage", Method, 0, ""}, + {"(*Gray16).At", Method, 0, ""}, + {"(*Gray16).Bounds", Method, 0, ""}, + {"(*Gray16).ColorModel", Method, 0, ""}, + {"(*Gray16).Gray16At", Method, 4, ""}, + {"(*Gray16).Opaque", Method, 0, ""}, + {"(*Gray16).PixOffset", Method, 0, ""}, + {"(*Gray16).RGBA64At", Method, 17, ""}, + {"(*Gray16).Set", Method, 0, ""}, + {"(*Gray16).SetGray16", Method, 0, ""}, + {"(*Gray16).SetRGBA64", Method, 17, ""}, + {"(*Gray16).SubImage", Method, 0, ""}, + {"(*NRGBA).At", Method, 0, ""}, + {"(*NRGBA).Bounds", Method, 0, ""}, + {"(*NRGBA).ColorModel", Method, 0, ""}, + {"(*NRGBA).NRGBAAt", Method, 4, ""}, + {"(*NRGBA).Opaque", Method, 0, ""}, + {"(*NRGBA).PixOffset", Method, 0, ""}, + {"(*NRGBA).RGBA64At", Method, 17, ""}, + {"(*NRGBA).Set", Method, 0, ""}, + {"(*NRGBA).SetNRGBA", Method, 0, ""}, + {"(*NRGBA).SetRGBA64", Method, 17, ""}, + {"(*NRGBA).SubImage", Method, 0, ""}, + {"(*NRGBA64).At", Method, 0, ""}, + {"(*NRGBA64).Bounds", Method, 0, ""}, + {"(*NRGBA64).ColorModel", Method, 0, ""}, + {"(*NRGBA64).NRGBA64At", Method, 4, ""}, + {"(*NRGBA64).Opaque", Method, 0, ""}, + {"(*NRGBA64).PixOffset", Method, 0, ""}, + {"(*NRGBA64).RGBA64At", Method, 17, ""}, + {"(*NRGBA64).Set", Method, 0, ""}, + {"(*NRGBA64).SetNRGBA64", Method, 0, ""}, + {"(*NRGBA64).SetRGBA64", Method, 17, ""}, + {"(*NRGBA64).SubImage", Method, 0, ""}, + {"(*NYCbCrA).AOffset", Method, 6, ""}, + {"(*NYCbCrA).At", Method, 6, ""}, + {"(*NYCbCrA).Bounds", Method, 6, ""}, + {"(*NYCbCrA).COffset", Method, 6, ""}, + {"(*NYCbCrA).ColorModel", Method, 6, ""}, + {"(*NYCbCrA).NYCbCrAAt", Method, 6, ""}, + {"(*NYCbCrA).Opaque", Method, 6, ""}, + {"(*NYCbCrA).RGBA64At", Method, 17, ""}, + {"(*NYCbCrA).SubImage", Method, 6, ""}, + {"(*NYCbCrA).YCbCrAt", Method, 6, ""}, + {"(*NYCbCrA).YOffset", Method, 6, ""}, + {"(*Paletted).At", Method, 0, ""}, + {"(*Paletted).Bounds", Method, 0, ""}, + {"(*Paletted).ColorIndexAt", Method, 0, ""}, + {"(*Paletted).ColorModel", Method, 0, ""}, + {"(*Paletted).Opaque", Method, 0, ""}, + {"(*Paletted).PixOffset", Method, 0, ""}, + {"(*Paletted).RGBA64At", Method, 17, ""}, + {"(*Paletted).Set", Method, 0, ""}, + {"(*Paletted).SetColorIndex", Method, 0, ""}, + {"(*Paletted).SetRGBA64", Method, 17, ""}, + {"(*Paletted).SubImage", Method, 0, ""}, + {"(*RGBA).At", Method, 0, ""}, + {"(*RGBA).Bounds", Method, 0, ""}, + {"(*RGBA).ColorModel", Method, 0, ""}, + {"(*RGBA).Opaque", Method, 0, ""}, + {"(*RGBA).PixOffset", Method, 0, ""}, + {"(*RGBA).RGBA64At", Method, 17, ""}, + {"(*RGBA).RGBAAt", Method, 4, ""}, + {"(*RGBA).Set", Method, 0, ""}, + {"(*RGBA).SetRGBA", Method, 0, ""}, + {"(*RGBA).SetRGBA64", Method, 17, ""}, + {"(*RGBA).SubImage", Method, 0, ""}, + {"(*RGBA64).At", Method, 0, ""}, + {"(*RGBA64).Bounds", Method, 0, ""}, + {"(*RGBA64).ColorModel", Method, 0, ""}, + {"(*RGBA64).Opaque", Method, 0, ""}, + {"(*RGBA64).PixOffset", Method, 0, ""}, + {"(*RGBA64).RGBA64At", Method, 4, ""}, + {"(*RGBA64).Set", Method, 0, ""}, + {"(*RGBA64).SetRGBA64", Method, 0, ""}, + {"(*RGBA64).SubImage", Method, 0, ""}, + {"(*Uniform).At", Method, 0, ""}, + {"(*Uniform).Bounds", Method, 0, ""}, + {"(*Uniform).ColorModel", Method, 0, ""}, + {"(*Uniform).Convert", Method, 0, ""}, + {"(*Uniform).Opaque", Method, 0, ""}, + {"(*Uniform).RGBA", Method, 0, ""}, + {"(*Uniform).RGBA64At", Method, 17, ""}, + {"(*YCbCr).At", Method, 0, ""}, + {"(*YCbCr).Bounds", Method, 0, ""}, + {"(*YCbCr).COffset", Method, 0, ""}, + {"(*YCbCr).ColorModel", Method, 0, ""}, + {"(*YCbCr).Opaque", Method, 0, ""}, + {"(*YCbCr).RGBA64At", Method, 17, ""}, + {"(*YCbCr).SubImage", Method, 0, ""}, + {"(*YCbCr).YCbCrAt", Method, 4, ""}, + {"(*YCbCr).YOffset", Method, 0, ""}, + {"(Point).Add", Method, 0, ""}, + {"(Point).Div", Method, 0, ""}, + {"(Point).Eq", Method, 0, ""}, + {"(Point).In", Method, 0, ""}, + {"(Point).Mod", Method, 0, ""}, + {"(Point).Mul", Method, 0, ""}, + {"(Point).String", Method, 0, ""}, + {"(Point).Sub", Method, 0, ""}, + {"(Rectangle).Add", Method, 0, ""}, + {"(Rectangle).At", Method, 5, ""}, + {"(Rectangle).Bounds", Method, 5, ""}, + {"(Rectangle).Canon", Method, 0, ""}, + {"(Rectangle).ColorModel", Method, 5, ""}, + {"(Rectangle).Dx", Method, 0, ""}, + {"(Rectangle).Dy", Method, 0, ""}, + {"(Rectangle).Empty", Method, 0, ""}, + {"(Rectangle).Eq", Method, 0, ""}, + {"(Rectangle).In", Method, 0, ""}, + {"(Rectangle).Inset", Method, 0, ""}, + {"(Rectangle).Intersect", Method, 0, ""}, + {"(Rectangle).Overlaps", Method, 0, ""}, + {"(Rectangle).RGBA64At", Method, 17, ""}, + {"(Rectangle).Size", Method, 0, ""}, + {"(Rectangle).String", Method, 0, ""}, + {"(Rectangle).Sub", Method, 0, ""}, + {"(Rectangle).Union", Method, 0, ""}, + {"(YCbCrSubsampleRatio).String", Method, 0, ""}, + {"Alpha", Type, 0, ""}, + {"Alpha.Pix", Field, 0, ""}, + {"Alpha.Rect", Field, 0, ""}, + {"Alpha.Stride", Field, 0, ""}, + {"Alpha16", Type, 0, ""}, + {"Alpha16.Pix", Field, 0, ""}, + {"Alpha16.Rect", Field, 0, ""}, + {"Alpha16.Stride", Field, 0, ""}, + {"Black", Var, 0, ""}, + {"CMYK", Type, 5, ""}, + {"CMYK.Pix", Field, 5, ""}, + {"CMYK.Rect", Field, 5, ""}, + {"CMYK.Stride", Field, 5, ""}, + {"Config", Type, 0, ""}, + {"Config.ColorModel", Field, 0, ""}, + {"Config.Height", Field, 0, ""}, + {"Config.Width", Field, 0, ""}, + {"Decode", Func, 0, "func(r io.Reader) (Image, string, error)"}, + {"DecodeConfig", Func, 0, "func(r io.Reader) (Config, string, error)"}, + {"ErrFormat", Var, 0, ""}, + {"Gray", Type, 0, ""}, + {"Gray.Pix", Field, 0, ""}, + {"Gray.Rect", Field, 0, ""}, + {"Gray.Stride", Field, 0, ""}, + {"Gray16", Type, 0, ""}, + {"Gray16.Pix", Field, 0, ""}, + {"Gray16.Rect", Field, 0, ""}, + {"Gray16.Stride", Field, 0, ""}, + {"Image", Type, 0, ""}, + {"NRGBA", Type, 0, ""}, + {"NRGBA.Pix", Field, 0, ""}, + {"NRGBA.Rect", Field, 0, ""}, + {"NRGBA.Stride", Field, 0, ""}, + {"NRGBA64", Type, 0, ""}, + {"NRGBA64.Pix", Field, 0, ""}, + {"NRGBA64.Rect", Field, 0, ""}, + {"NRGBA64.Stride", Field, 0, ""}, + {"NYCbCrA", Type, 6, ""}, + {"NYCbCrA.A", Field, 6, ""}, + {"NYCbCrA.AStride", Field, 6, ""}, + {"NYCbCrA.YCbCr", Field, 6, ""}, + {"NewAlpha", Func, 0, "func(r Rectangle) *Alpha"}, + {"NewAlpha16", Func, 0, "func(r Rectangle) *Alpha16"}, + {"NewCMYK", Func, 5, "func(r Rectangle) *CMYK"}, + {"NewGray", Func, 0, "func(r Rectangle) *Gray"}, + {"NewGray16", Func, 0, "func(r Rectangle) *Gray16"}, + {"NewNRGBA", Func, 0, "func(r Rectangle) *NRGBA"}, + {"NewNRGBA64", Func, 0, "func(r Rectangle) *NRGBA64"}, + {"NewNYCbCrA", Func, 6, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA"}, + {"NewPaletted", Func, 0, "func(r Rectangle, p color.Palette) *Paletted"}, + {"NewRGBA", Func, 0, "func(r Rectangle) *RGBA"}, + {"NewRGBA64", Func, 0, "func(r Rectangle) *RGBA64"}, + {"NewUniform", Func, 0, "func(c color.Color) *Uniform"}, + {"NewYCbCr", Func, 0, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr"}, + {"Opaque", Var, 0, ""}, + {"Paletted", Type, 0, ""}, + {"Paletted.Palette", Field, 0, ""}, + {"Paletted.Pix", Field, 0, ""}, + {"Paletted.Rect", Field, 0, ""}, + {"Paletted.Stride", Field, 0, ""}, + {"PalettedImage", Type, 0, ""}, + {"Point", Type, 0, ""}, + {"Point.X", Field, 0, ""}, + {"Point.Y", Field, 0, ""}, + {"Pt", Func, 0, "func(X int, Y int) Point"}, + {"RGBA", Type, 0, ""}, + {"RGBA.Pix", Field, 0, ""}, + {"RGBA.Rect", Field, 0, ""}, + {"RGBA.Stride", Field, 0, ""}, + {"RGBA64", Type, 0, ""}, + {"RGBA64.Pix", Field, 0, ""}, + {"RGBA64.Rect", Field, 0, ""}, + {"RGBA64.Stride", Field, 0, ""}, + {"RGBA64Image", Type, 17, ""}, + {"Rect", Func, 0, "func(x0 int, y0 int, x1 int, y1 int) Rectangle"}, + {"Rectangle", Type, 0, ""}, + {"Rectangle.Max", Field, 0, ""}, + {"Rectangle.Min", Field, 0, ""}, + {"RegisterFormat", Func, 0, "func(name string, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))"}, + {"Transparent", Var, 0, ""}, + {"Uniform", Type, 0, ""}, + {"Uniform.C", Field, 0, ""}, + {"White", Var, 0, ""}, + {"YCbCr", Type, 0, ""}, + {"YCbCr.CStride", Field, 0, ""}, + {"YCbCr.Cb", Field, 0, ""}, + {"YCbCr.Cr", Field, 0, ""}, + {"YCbCr.Rect", Field, 0, ""}, + {"YCbCr.SubsampleRatio", Field, 0, ""}, + {"YCbCr.Y", Field, 0, ""}, + {"YCbCr.YStride", Field, 0, ""}, + {"YCbCrSubsampleRatio", Type, 0, ""}, + {"YCbCrSubsampleRatio410", Const, 5, ""}, + {"YCbCrSubsampleRatio411", Const, 5, ""}, + {"YCbCrSubsampleRatio420", Const, 0, ""}, + {"YCbCrSubsampleRatio422", Const, 0, ""}, + {"YCbCrSubsampleRatio440", Const, 1, ""}, + {"YCbCrSubsampleRatio444", Const, 0, ""}, + {"ZP", Var, 0, ""}, + {"ZR", Var, 0, ""}, + }, + "image/color": { + {"(Alpha).RGBA", Method, 0, ""}, + {"(Alpha16).RGBA", Method, 0, ""}, + {"(CMYK).RGBA", Method, 5, ""}, + {"(Gray).RGBA", Method, 0, ""}, + {"(Gray16).RGBA", Method, 0, ""}, + {"(NRGBA).RGBA", Method, 0, ""}, + {"(NRGBA64).RGBA", Method, 0, ""}, + {"(NYCbCrA).RGBA", Method, 6, ""}, + {"(Palette).Convert", Method, 0, ""}, + {"(Palette).Index", Method, 0, ""}, + {"(RGBA).RGBA", Method, 0, ""}, + {"(RGBA64).RGBA", Method, 0, ""}, + {"(YCbCr).RGBA", Method, 0, ""}, + {"Alpha", Type, 0, ""}, + {"Alpha.A", Field, 0, ""}, + {"Alpha16", Type, 0, ""}, + {"Alpha16.A", Field, 0, ""}, + {"Alpha16Model", Var, 0, ""}, + {"AlphaModel", Var, 0, ""}, + {"Black", Var, 0, ""}, + {"CMYK", Type, 5, ""}, + {"CMYK.C", Field, 5, ""}, + {"CMYK.K", Field, 5, ""}, + {"CMYK.M", Field, 5, ""}, + {"CMYK.Y", Field, 5, ""}, + {"CMYKModel", Var, 5, ""}, + {"CMYKToRGB", Func, 5, "func(c uint8, m uint8, y uint8, k uint8) (uint8, uint8, uint8)"}, + {"Color", Type, 0, ""}, + {"Gray", Type, 0, ""}, + {"Gray.Y", Field, 0, ""}, + {"Gray16", Type, 0, ""}, + {"Gray16.Y", Field, 0, ""}, + {"Gray16Model", Var, 0, ""}, + {"GrayModel", Var, 0, ""}, + {"Model", Type, 0, ""}, + {"ModelFunc", Func, 0, "func(f func(Color) Color) Model"}, + {"NRGBA", Type, 0, ""}, + {"NRGBA.A", Field, 0, ""}, + {"NRGBA.B", Field, 0, ""}, + {"NRGBA.G", Field, 0, ""}, + {"NRGBA.R", Field, 0, ""}, + {"NRGBA64", Type, 0, ""}, + {"NRGBA64.A", Field, 0, ""}, + {"NRGBA64.B", Field, 0, ""}, + {"NRGBA64.G", Field, 0, ""}, + {"NRGBA64.R", Field, 0, ""}, + {"NRGBA64Model", Var, 0, ""}, + {"NRGBAModel", Var, 0, ""}, + {"NYCbCrA", Type, 6, ""}, + {"NYCbCrA.A", Field, 6, ""}, + {"NYCbCrA.YCbCr", Field, 6, ""}, + {"NYCbCrAModel", Var, 6, ""}, + {"Opaque", Var, 0, ""}, + {"Palette", Type, 0, ""}, + {"RGBA", Type, 0, ""}, + {"RGBA.A", Field, 0, ""}, + {"RGBA.B", Field, 0, ""}, + {"RGBA.G", Field, 0, ""}, + {"RGBA.R", Field, 0, ""}, + {"RGBA64", Type, 0, ""}, + {"RGBA64.A", Field, 0, ""}, + {"RGBA64.B", Field, 0, ""}, + {"RGBA64.G", Field, 0, ""}, + {"RGBA64.R", Field, 0, ""}, + {"RGBA64Model", Var, 0, ""}, + {"RGBAModel", Var, 0, ""}, + {"RGBToCMYK", Func, 5, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8, uint8)"}, + {"RGBToYCbCr", Func, 0, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8)"}, + {"Transparent", Var, 0, ""}, + {"White", Var, 0, ""}, + {"YCbCr", Type, 0, ""}, + {"YCbCr.Cb", Field, 0, ""}, + {"YCbCr.Cr", Field, 0, ""}, + {"YCbCr.Y", Field, 0, ""}, + {"YCbCrModel", Var, 0, ""}, + {"YCbCrToRGB", Func, 0, "func(y uint8, cb uint8, cr uint8) (uint8, uint8, uint8)"}, + }, + "image/color/palette": { + {"Plan9", Var, 2, ""}, + {"WebSafe", Var, 2, ""}, + }, + "image/draw": { + {"(Op).Draw", Method, 2, ""}, + {"Draw", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)"}, + {"DrawMask", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op)"}, + {"Drawer", Type, 2, ""}, + {"FloydSteinberg", Var, 2, ""}, + {"Image", Type, 0, ""}, + {"Op", Type, 0, ""}, + {"Over", Const, 0, ""}, + {"Quantizer", Type, 2, ""}, + {"RGBA64Image", Type, 17, ""}, + {"Src", Const, 0, ""}, + }, + "image/gif": { + {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, + {"DecodeAll", Func, 0, "func(r io.Reader) (*GIF, error)"}, + {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, + {"DisposalBackground", Const, 5, ""}, + {"DisposalNone", Const, 5, ""}, + {"DisposalPrevious", Const, 5, ""}, + {"Encode", Func, 2, "func(w io.Writer, m image.Image, o *Options) error"}, + {"EncodeAll", Func, 2, "func(w io.Writer, g *GIF) error"}, + {"GIF", Type, 0, ""}, + {"GIF.BackgroundIndex", Field, 5, ""}, + {"GIF.Config", Field, 5, ""}, + {"GIF.Delay", Field, 0, ""}, + {"GIF.Disposal", Field, 5, ""}, + {"GIF.Image", Field, 0, ""}, + {"GIF.LoopCount", Field, 0, ""}, + {"Options", Type, 2, ""}, + {"Options.Drawer", Field, 2, ""}, + {"Options.NumColors", Field, 2, ""}, + {"Options.Quantizer", Field, 2, ""}, + }, + "image/jpeg": { + {"(FormatError).Error", Method, 0, ""}, + {"(UnsupportedError).Error", Method, 0, ""}, + {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, + {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, + {"DefaultQuality", Const, 0, ""}, + {"Encode", Func, 0, "func(w io.Writer, m image.Image, o *Options) error"}, + {"FormatError", Type, 0, ""}, + {"Options", Type, 0, ""}, + {"Options.Quality", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"UnsupportedError", Type, 0, ""}, + }, + "image/png": { + {"(*Encoder).Encode", Method, 4, ""}, + {"(FormatError).Error", Method, 0, ""}, + {"(UnsupportedError).Error", Method, 0, ""}, + {"BestCompression", Const, 4, ""}, + {"BestSpeed", Const, 4, ""}, + {"CompressionLevel", Type, 4, ""}, + {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, + {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, + {"DefaultCompression", Const, 4, ""}, + {"Encode", Func, 0, "func(w io.Writer, m image.Image) error"}, + {"Encoder", Type, 4, ""}, + {"Encoder.BufferPool", Field, 9, ""}, + {"Encoder.CompressionLevel", Field, 4, ""}, + {"EncoderBuffer", Type, 9, ""}, + {"EncoderBufferPool", Type, 9, ""}, + {"FormatError", Type, 0, ""}, + {"NoCompression", Const, 4, ""}, + {"UnsupportedError", Type, 0, ""}, + }, + "index/suffixarray": { + {"(*Index).Bytes", Method, 0, ""}, + {"(*Index).FindAllIndex", Method, 0, ""}, + {"(*Index).Lookup", Method, 0, ""}, + {"(*Index).Read", Method, 0, ""}, + {"(*Index).Write", Method, 0, ""}, + {"Index", Type, 0, ""}, + {"New", Func, 0, "func(data []byte) *Index"}, + }, + "io": { + {"(*LimitedReader).Read", Method, 0, ""}, + {"(*OffsetWriter).Seek", Method, 20, ""}, + {"(*OffsetWriter).Write", Method, 20, ""}, + {"(*OffsetWriter).WriteAt", Method, 20, ""}, + {"(*PipeReader).Close", Method, 0, ""}, + {"(*PipeReader).CloseWithError", Method, 0, ""}, + {"(*PipeReader).Read", Method, 0, ""}, + {"(*PipeWriter).Close", Method, 0, ""}, + {"(*PipeWriter).CloseWithError", Method, 0, ""}, + {"(*PipeWriter).Write", Method, 0, ""}, + {"(*SectionReader).Outer", Method, 22, ""}, + {"(*SectionReader).Read", Method, 0, ""}, + {"(*SectionReader).ReadAt", Method, 0, ""}, + {"(*SectionReader).Seek", Method, 0, ""}, + {"(*SectionReader).Size", Method, 0, ""}, + {"ByteReader", Type, 0, ""}, + {"ByteScanner", Type, 0, ""}, + {"ByteWriter", Type, 1, ""}, + {"Closer", Type, 0, ""}, + {"Copy", Func, 0, "func(dst Writer, src Reader) (written int64, err error)"}, + {"CopyBuffer", Func, 5, "func(dst Writer, src Reader, buf []byte) (written int64, err error)"}, + {"CopyN", Func, 0, "func(dst Writer, src Reader, n int64) (written int64, err error)"}, + {"Discard", Var, 16, ""}, + {"EOF", Var, 0, ""}, + {"ErrClosedPipe", Var, 0, ""}, + {"ErrNoProgress", Var, 1, ""}, + {"ErrShortBuffer", Var, 0, ""}, + {"ErrShortWrite", Var, 0, ""}, + {"ErrUnexpectedEOF", Var, 0, ""}, + {"LimitReader", Func, 0, "func(r Reader, n int64) Reader"}, + {"LimitedReader", Type, 0, ""}, + {"LimitedReader.N", Field, 0, ""}, + {"LimitedReader.R", Field, 0, ""}, + {"MultiReader", Func, 0, "func(readers ...Reader) Reader"}, + {"MultiWriter", Func, 0, "func(writers ...Writer) Writer"}, + {"NewOffsetWriter", Func, 20, "func(w WriterAt, off int64) *OffsetWriter"}, + {"NewSectionReader", Func, 0, "func(r ReaderAt, off int64, n int64) *SectionReader"}, + {"NopCloser", Func, 16, "func(r Reader) ReadCloser"}, + {"OffsetWriter", Type, 20, ""}, + {"Pipe", Func, 0, "func() (*PipeReader, *PipeWriter)"}, + {"PipeReader", Type, 0, ""}, + {"PipeWriter", Type, 0, ""}, + {"ReadAll", Func, 16, "func(r Reader) ([]byte, error)"}, + {"ReadAtLeast", Func, 0, "func(r Reader, buf []byte, min int) (n int, err error)"}, + {"ReadCloser", Type, 0, ""}, + {"ReadFull", Func, 0, "func(r Reader, buf []byte) (n int, err error)"}, + {"ReadSeekCloser", Type, 16, ""}, + {"ReadSeeker", Type, 0, ""}, + {"ReadWriteCloser", Type, 0, ""}, + {"ReadWriteSeeker", Type, 0, ""}, + {"ReadWriter", Type, 0, ""}, + {"Reader", Type, 0, ""}, + {"ReaderAt", Type, 0, ""}, + {"ReaderFrom", Type, 0, ""}, + {"RuneReader", Type, 0, ""}, + {"RuneScanner", Type, 0, ""}, + {"SectionReader", Type, 0, ""}, + {"SeekCurrent", Const, 7, ""}, + {"SeekEnd", Const, 7, ""}, + {"SeekStart", Const, 7, ""}, + {"Seeker", Type, 0, ""}, + {"StringWriter", Type, 12, ""}, + {"TeeReader", Func, 0, "func(r Reader, w Writer) Reader"}, + {"WriteCloser", Type, 0, ""}, + {"WriteSeeker", Type, 0, ""}, + {"WriteString", Func, 0, "func(w Writer, s string) (n int, err error)"}, + {"Writer", Type, 0, ""}, + {"WriterAt", Type, 0, ""}, + {"WriterTo", Type, 0, ""}, + }, + "io/fs": { + {"(*PathError).Error", Method, 16, ""}, + {"(*PathError).Timeout", Method, 16, ""}, + {"(*PathError).Unwrap", Method, 16, ""}, + {"(FileMode).IsDir", Method, 16, ""}, + {"(FileMode).IsRegular", Method, 16, ""}, + {"(FileMode).Perm", Method, 16, ""}, + {"(FileMode).String", Method, 16, ""}, + {"(FileMode).Type", Method, 16, ""}, + {"DirEntry", Type, 16, ""}, + {"ErrClosed", Var, 16, ""}, + {"ErrExist", Var, 16, ""}, + {"ErrInvalid", Var, 16, ""}, + {"ErrNotExist", Var, 16, ""}, + {"ErrPermission", Var, 16, ""}, + {"FS", Type, 16, ""}, + {"File", Type, 16, ""}, + {"FileInfo", Type, 16, ""}, + {"FileInfoToDirEntry", Func, 17, "func(info FileInfo) DirEntry"}, + {"FileMode", Type, 16, ""}, + {"FormatDirEntry", Func, 21, "func(dir DirEntry) string"}, + {"FormatFileInfo", Func, 21, "func(info FileInfo) string"}, + {"Glob", Func, 16, "func(fsys FS, pattern string) (matches []string, err error)"}, + {"GlobFS", Type, 16, ""}, + {"Lstat", Func, 25, ""}, + {"ModeAppend", Const, 16, ""}, + {"ModeCharDevice", Const, 16, ""}, + {"ModeDevice", Const, 16, ""}, + {"ModeDir", Const, 16, ""}, + {"ModeExclusive", Const, 16, ""}, + {"ModeIrregular", Const, 16, ""}, + {"ModeNamedPipe", Const, 16, ""}, + {"ModePerm", Const, 16, ""}, + {"ModeSetgid", Const, 16, ""}, + {"ModeSetuid", Const, 16, ""}, + {"ModeSocket", Const, 16, ""}, + {"ModeSticky", Const, 16, ""}, + {"ModeSymlink", Const, 16, ""}, + {"ModeTemporary", Const, 16, ""}, + {"ModeType", Const, 16, ""}, + {"PathError", Type, 16, ""}, + {"PathError.Err", Field, 16, ""}, + {"PathError.Op", Field, 16, ""}, + {"PathError.Path", Field, 16, ""}, + {"ReadDir", Func, 16, "func(fsys FS, name string) ([]DirEntry, error)"}, + {"ReadDirFS", Type, 16, ""}, + {"ReadDirFile", Type, 16, ""}, + {"ReadFile", Func, 16, "func(fsys FS, name string) ([]byte, error)"}, + {"ReadFileFS", Type, 16, ""}, + {"ReadLink", Func, 25, ""}, + {"ReadLinkFS", Type, 25, ""}, + {"SkipAll", Var, 20, ""}, + {"SkipDir", Var, 16, ""}, + {"Stat", Func, 16, "func(fsys FS, name string) (FileInfo, error)"}, + {"StatFS", Type, 16, ""}, + {"Sub", Func, 16, "func(fsys FS, dir string) (FS, error)"}, + {"SubFS", Type, 16, ""}, + {"ValidPath", Func, 16, "func(name string) bool"}, + {"WalkDir", Func, 16, "func(fsys FS, root string, fn WalkDirFunc) error"}, + {"WalkDirFunc", Type, 16, ""}, + }, + "io/ioutil": { + {"Discard", Var, 0, ""}, + {"NopCloser", Func, 0, "func(r io.Reader) io.ReadCloser"}, + {"ReadAll", Func, 0, "func(r io.Reader) ([]byte, error)"}, + {"ReadDir", Func, 0, "func(dirname string) ([]fs.FileInfo, error)"}, + {"ReadFile", Func, 0, "func(filename string) ([]byte, error)"}, + {"TempDir", Func, 0, "func(dir string, pattern string) (name string, err error)"}, + {"TempFile", Func, 0, "func(dir string, pattern string) (f *os.File, err error)"}, + {"WriteFile", Func, 0, "func(filename string, data []byte, perm fs.FileMode) error"}, + }, + "iter": { + {"Pull", Func, 23, "func[V any](seq Seq[V]) (next func() (V, bool), stop func())"}, + {"Pull2", Func, 23, "func[K, V any](seq Seq2[K, V]) (next func() (K, V, bool), stop func())"}, + {"Seq", Type, 23, ""}, + {"Seq2", Type, 23, ""}, + }, + "log": { + {"(*Logger).Fatal", Method, 0, ""}, + {"(*Logger).Fatalf", Method, 0, ""}, + {"(*Logger).Fatalln", Method, 0, ""}, + {"(*Logger).Flags", Method, 0, ""}, + {"(*Logger).Output", Method, 0, ""}, + {"(*Logger).Panic", Method, 0, ""}, + {"(*Logger).Panicf", Method, 0, ""}, + {"(*Logger).Panicln", Method, 0, ""}, + {"(*Logger).Prefix", Method, 0, ""}, + {"(*Logger).Print", Method, 0, ""}, + {"(*Logger).Printf", Method, 0, ""}, + {"(*Logger).Println", Method, 0, ""}, + {"(*Logger).SetFlags", Method, 0, ""}, + {"(*Logger).SetOutput", Method, 5, ""}, + {"(*Logger).SetPrefix", Method, 0, ""}, + {"(*Logger).Writer", Method, 12, ""}, + {"Default", Func, 16, "func() *Logger"}, + {"Fatal", Func, 0, "func(v ...any)"}, + {"Fatalf", Func, 0, "func(format string, v ...any)"}, + {"Fatalln", Func, 0, "func(v ...any)"}, + {"Flags", Func, 0, "func() int"}, + {"LUTC", Const, 5, ""}, + {"Ldate", Const, 0, ""}, + {"Llongfile", Const, 0, ""}, + {"Lmicroseconds", Const, 0, ""}, + {"Lmsgprefix", Const, 14, ""}, + {"Logger", Type, 0, ""}, + {"Lshortfile", Const, 0, ""}, + {"LstdFlags", Const, 0, ""}, + {"Ltime", Const, 0, ""}, + {"New", Func, 0, "func(out io.Writer, prefix string, flag int) *Logger"}, + {"Output", Func, 5, "func(calldepth int, s string) error"}, + {"Panic", Func, 0, "func(v ...any)"}, + {"Panicf", Func, 0, "func(format string, v ...any)"}, + {"Panicln", Func, 0, "func(v ...any)"}, + {"Prefix", Func, 0, "func() string"}, + {"Print", Func, 0, "func(v ...any)"}, + {"Printf", Func, 0, "func(format string, v ...any)"}, + {"Println", Func, 0, "func(v ...any)"}, + {"SetFlags", Func, 0, "func(flag int)"}, + {"SetOutput", Func, 0, "func(w io.Writer)"}, + {"SetPrefix", Func, 0, "func(prefix string)"}, + {"Writer", Func, 13, "func() io.Writer"}, + }, + "log/slog": { + {"(*JSONHandler).Enabled", Method, 21, ""}, + {"(*JSONHandler).Handle", Method, 21, ""}, + {"(*JSONHandler).WithAttrs", Method, 21, ""}, + {"(*JSONHandler).WithGroup", Method, 21, ""}, + {"(*Level).UnmarshalJSON", Method, 21, ""}, + {"(*Level).UnmarshalText", Method, 21, ""}, + {"(*LevelVar).AppendText", Method, 24, ""}, + {"(*LevelVar).Level", Method, 21, ""}, + {"(*LevelVar).MarshalText", Method, 21, ""}, + {"(*LevelVar).Set", Method, 21, ""}, + {"(*LevelVar).String", Method, 21, ""}, + {"(*LevelVar).UnmarshalText", Method, 21, ""}, + {"(*Logger).Debug", Method, 21, ""}, + {"(*Logger).DebugContext", Method, 21, ""}, + {"(*Logger).Enabled", Method, 21, ""}, + {"(*Logger).Error", Method, 21, ""}, + {"(*Logger).ErrorContext", Method, 21, ""}, + {"(*Logger).Handler", Method, 21, ""}, + {"(*Logger).Info", Method, 21, ""}, + {"(*Logger).InfoContext", Method, 21, ""}, + {"(*Logger).Log", Method, 21, ""}, + {"(*Logger).LogAttrs", Method, 21, ""}, + {"(*Logger).Warn", Method, 21, ""}, + {"(*Logger).WarnContext", Method, 21, ""}, + {"(*Logger).With", Method, 21, ""}, + {"(*Logger).WithGroup", Method, 21, ""}, + {"(*Record).Add", Method, 21, ""}, + {"(*Record).AddAttrs", Method, 21, ""}, + {"(*TextHandler).Enabled", Method, 21, ""}, + {"(*TextHandler).Handle", Method, 21, ""}, + {"(*TextHandler).WithAttrs", Method, 21, ""}, + {"(*TextHandler).WithGroup", Method, 21, ""}, + {"(Attr).Equal", Method, 21, ""}, + {"(Attr).String", Method, 21, ""}, + {"(Kind).String", Method, 21, ""}, + {"(Level).AppendText", Method, 24, ""}, + {"(Level).Level", Method, 21, ""}, + {"(Level).MarshalJSON", Method, 21, ""}, + {"(Level).MarshalText", Method, 21, ""}, + {"(Level).String", Method, 21, ""}, + {"(Record).Attrs", Method, 21, ""}, + {"(Record).Clone", Method, 21, ""}, + {"(Record).NumAttrs", Method, 21, ""}, + {"(Value).Any", Method, 21, ""}, + {"(Value).Bool", Method, 21, ""}, + {"(Value).Duration", Method, 21, ""}, + {"(Value).Equal", Method, 21, ""}, + {"(Value).Float64", Method, 21, ""}, + {"(Value).Group", Method, 21, ""}, + {"(Value).Int64", Method, 21, ""}, + {"(Value).Kind", Method, 21, ""}, + {"(Value).LogValuer", Method, 21, ""}, + {"(Value).Resolve", Method, 21, ""}, + {"(Value).String", Method, 21, ""}, + {"(Value).Time", Method, 21, ""}, + {"(Value).Uint64", Method, 21, ""}, + {"Any", Func, 21, "func(key string, value any) Attr"}, + {"AnyValue", Func, 21, "func(v any) Value"}, + {"Attr", Type, 21, ""}, + {"Attr.Key", Field, 21, ""}, + {"Attr.Value", Field, 21, ""}, + {"Bool", Func, 21, "func(key string, v bool) Attr"}, + {"BoolValue", Func, 21, "func(v bool) Value"}, + {"Debug", Func, 21, "func(msg string, args ...any)"}, + {"DebugContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, + {"Default", Func, 21, "func() *Logger"}, + {"DiscardHandler", Var, 24, ""}, + {"Duration", Func, 21, "func(key string, v time.Duration) Attr"}, + {"DurationValue", Func, 21, "func(v time.Duration) Value"}, + {"Error", Func, 21, "func(msg string, args ...any)"}, + {"ErrorContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, + {"Float64", Func, 21, "func(key string, v float64) Attr"}, + {"Float64Value", Func, 21, "func(v float64) Value"}, + {"Group", Func, 21, "func(key string, args ...any) Attr"}, + {"GroupValue", Func, 21, "func(as ...Attr) Value"}, + {"Handler", Type, 21, ""}, + {"HandlerOptions", Type, 21, ""}, + {"HandlerOptions.AddSource", Field, 21, ""}, + {"HandlerOptions.Level", Field, 21, ""}, + {"HandlerOptions.ReplaceAttr", Field, 21, ""}, + {"Info", Func, 21, "func(msg string, args ...any)"}, + {"InfoContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, + {"Int", Func, 21, "func(key string, value int) Attr"}, + {"Int64", Func, 21, "func(key string, value int64) Attr"}, + {"Int64Value", Func, 21, "func(v int64) Value"}, + {"IntValue", Func, 21, "func(v int) Value"}, + {"JSONHandler", Type, 21, ""}, + {"Kind", Type, 21, ""}, + {"KindAny", Const, 21, ""}, + {"KindBool", Const, 21, ""}, + {"KindDuration", Const, 21, ""}, + {"KindFloat64", Const, 21, ""}, + {"KindGroup", Const, 21, ""}, + {"KindInt64", Const, 21, ""}, + {"KindLogValuer", Const, 21, ""}, + {"KindString", Const, 21, ""}, + {"KindTime", Const, 21, ""}, + {"KindUint64", Const, 21, ""}, + {"Level", Type, 21, ""}, + {"LevelDebug", Const, 21, ""}, + {"LevelError", Const, 21, ""}, + {"LevelInfo", Const, 21, ""}, + {"LevelKey", Const, 21, ""}, + {"LevelVar", Type, 21, ""}, + {"LevelWarn", Const, 21, ""}, + {"Leveler", Type, 21, ""}, + {"Log", Func, 21, "func(ctx context.Context, level Level, msg string, args ...any)"}, + {"LogAttrs", Func, 21, "func(ctx context.Context, level Level, msg string, attrs ...Attr)"}, + {"LogValuer", Type, 21, ""}, + {"Logger", Type, 21, ""}, + {"MessageKey", Const, 21, ""}, + {"New", Func, 21, "func(h Handler) *Logger"}, + {"NewJSONHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *JSONHandler"}, + {"NewLogLogger", Func, 21, "func(h Handler, level Level) *log.Logger"}, + {"NewRecord", Func, 21, "func(t time.Time, level Level, msg string, pc uintptr) Record"}, + {"NewTextHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *TextHandler"}, + {"Record", Type, 21, ""}, + {"Record.Level", Field, 21, ""}, + {"Record.Message", Field, 21, ""}, + {"Record.PC", Field, 21, ""}, + {"Record.Time", Field, 21, ""}, + {"SetDefault", Func, 21, "func(l *Logger)"}, + {"SetLogLoggerLevel", Func, 22, "func(level Level) (oldLevel Level)"}, + {"Source", Type, 21, ""}, + {"Source.File", Field, 21, ""}, + {"Source.Function", Field, 21, ""}, + {"Source.Line", Field, 21, ""}, + {"SourceKey", Const, 21, ""}, + {"String", Func, 21, "func(key string, value string) Attr"}, + {"StringValue", Func, 21, "func(value string) Value"}, + {"TextHandler", Type, 21, ""}, + {"Time", Func, 21, "func(key string, v time.Time) Attr"}, + {"TimeKey", Const, 21, ""}, + {"TimeValue", Func, 21, "func(v time.Time) Value"}, + {"Uint64", Func, 21, "func(key string, v uint64) Attr"}, + {"Uint64Value", Func, 21, "func(v uint64) Value"}, + {"Value", Type, 21, ""}, + {"Warn", Func, 21, "func(msg string, args ...any)"}, + {"WarnContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, + {"With", Func, 21, "func(args ...any) *Logger"}, + }, + "log/syslog": { + {"(*Writer).Alert", Method, 0, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).Crit", Method, 0, ""}, + {"(*Writer).Debug", Method, 0, ""}, + {"(*Writer).Emerg", Method, 0, ""}, + {"(*Writer).Err", Method, 0, ""}, + {"(*Writer).Info", Method, 0, ""}, + {"(*Writer).Notice", Method, 0, ""}, + {"(*Writer).Warning", Method, 0, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"Dial", Func, 0, "func(network string, raddr string, priority Priority, tag string) (*Writer, error)"}, + {"LOG_ALERT", Const, 0, ""}, + {"LOG_AUTH", Const, 1, ""}, + {"LOG_AUTHPRIV", Const, 1, ""}, + {"LOG_CRIT", Const, 0, ""}, + {"LOG_CRON", Const, 1, ""}, + {"LOG_DAEMON", Const, 1, ""}, + {"LOG_DEBUG", Const, 0, ""}, + {"LOG_EMERG", Const, 0, ""}, + {"LOG_ERR", Const, 0, ""}, + {"LOG_FTP", Const, 1, ""}, + {"LOG_INFO", Const, 0, ""}, + {"LOG_KERN", Const, 1, ""}, + {"LOG_LOCAL0", Const, 1, ""}, + {"LOG_LOCAL1", Const, 1, ""}, + {"LOG_LOCAL2", Const, 1, ""}, + {"LOG_LOCAL3", Const, 1, ""}, + {"LOG_LOCAL4", Const, 1, ""}, + {"LOG_LOCAL5", Const, 1, ""}, + {"LOG_LOCAL6", Const, 1, ""}, + {"LOG_LOCAL7", Const, 1, ""}, + {"LOG_LPR", Const, 1, ""}, + {"LOG_MAIL", Const, 1, ""}, + {"LOG_NEWS", Const, 1, ""}, + {"LOG_NOTICE", Const, 0, ""}, + {"LOG_SYSLOG", Const, 1, ""}, + {"LOG_USER", Const, 1, ""}, + {"LOG_UUCP", Const, 1, ""}, + {"LOG_WARNING", Const, 0, ""}, + {"New", Func, 0, "func(priority Priority, tag string) (*Writer, error)"}, + {"NewLogger", Func, 0, "func(p Priority, logFlag int) (*log.Logger, error)"}, + {"Priority", Type, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "maps": { + {"All", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]"}, + {"Clone", Func, 21, "func[M ~map[K]V, K comparable, V any](m M) M"}, + {"Collect", Func, 23, "func[K comparable, V any](seq iter.Seq2[K, V]) map[K]V"}, + {"Copy", Func, 21, "func[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)"}, + {"DeleteFunc", Func, 21, "func[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)"}, + {"Equal", Func, 21, "func[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool"}, + {"EqualFunc", Func, 21, "func[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool"}, + {"Insert", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])"}, + {"Keys", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[K]"}, + {"Values", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[V]"}, + }, + "math": { + {"Abs", Func, 0, "func(x float64) float64"}, + {"Acos", Func, 0, "func(x float64) float64"}, + {"Acosh", Func, 0, "func(x float64) float64"}, + {"Asin", Func, 0, "func(x float64) float64"}, + {"Asinh", Func, 0, "func(x float64) float64"}, + {"Atan", Func, 0, "func(x float64) float64"}, + {"Atan2", Func, 0, "func(y float64, x float64) float64"}, + {"Atanh", Func, 0, "func(x float64) float64"}, + {"Cbrt", Func, 0, "func(x float64) float64"}, + {"Ceil", Func, 0, "func(x float64) float64"}, + {"Copysign", Func, 0, "func(f float64, sign float64) float64"}, + {"Cos", Func, 0, "func(x float64) float64"}, + {"Cosh", Func, 0, "func(x float64) float64"}, + {"Dim", Func, 0, "func(x float64, y float64) float64"}, + {"E", Const, 0, ""}, + {"Erf", Func, 0, "func(x float64) float64"}, + {"Erfc", Func, 0, "func(x float64) float64"}, + {"Erfcinv", Func, 10, "func(x float64) float64"}, + {"Erfinv", Func, 10, "func(x float64) float64"}, + {"Exp", Func, 0, "func(x float64) float64"}, + {"Exp2", Func, 0, "func(x float64) float64"}, + {"Expm1", Func, 0, "func(x float64) float64"}, + {"FMA", Func, 14, "func(x float64, y float64, z float64) float64"}, + {"Float32bits", Func, 0, "func(f float32) uint32"}, + {"Float32frombits", Func, 0, "func(b uint32) float32"}, + {"Float64bits", Func, 0, "func(f float64) uint64"}, + {"Float64frombits", Func, 0, "func(b uint64) float64"}, + {"Floor", Func, 0, "func(x float64) float64"}, + {"Frexp", Func, 0, "func(f float64) (frac float64, exp int)"}, + {"Gamma", Func, 0, "func(x float64) float64"}, + {"Hypot", Func, 0, "func(p float64, q float64) float64"}, + {"Ilogb", Func, 0, "func(x float64) int"}, + {"Inf", Func, 0, "func(sign int) float64"}, + {"IsInf", Func, 0, "func(f float64, sign int) bool"}, + {"IsNaN", Func, 0, "func(f float64) (is bool)"}, + {"J0", Func, 0, "func(x float64) float64"}, + {"J1", Func, 0, "func(x float64) float64"}, + {"Jn", Func, 0, "func(n int, x float64) float64"}, + {"Ldexp", Func, 0, "func(frac float64, exp int) float64"}, + {"Lgamma", Func, 0, "func(x float64) (lgamma float64, sign int)"}, + {"Ln10", Const, 0, ""}, + {"Ln2", Const, 0, ""}, + {"Log", Func, 0, "func(x float64) float64"}, + {"Log10", Func, 0, "func(x float64) float64"}, + {"Log10E", Const, 0, ""}, + {"Log1p", Func, 0, "func(x float64) float64"}, + {"Log2", Func, 0, "func(x float64) float64"}, + {"Log2E", Const, 0, ""}, + {"Logb", Func, 0, "func(x float64) float64"}, + {"Max", Func, 0, "func(x float64, y float64) float64"}, + {"MaxFloat32", Const, 0, ""}, + {"MaxFloat64", Const, 0, ""}, + {"MaxInt", Const, 17, ""}, + {"MaxInt16", Const, 0, ""}, + {"MaxInt32", Const, 0, ""}, + {"MaxInt64", Const, 0, ""}, + {"MaxInt8", Const, 0, ""}, + {"MaxUint", Const, 17, ""}, + {"MaxUint16", Const, 0, ""}, + {"MaxUint32", Const, 0, ""}, + {"MaxUint64", Const, 0, ""}, + {"MaxUint8", Const, 0, ""}, + {"Min", Func, 0, "func(x float64, y float64) float64"}, + {"MinInt", Const, 17, ""}, + {"MinInt16", Const, 0, ""}, + {"MinInt32", Const, 0, ""}, + {"MinInt64", Const, 0, ""}, + {"MinInt8", Const, 0, ""}, + {"Mod", Func, 0, "func(x float64, y float64) float64"}, + {"Modf", Func, 0, "func(f float64) (int float64, frac float64)"}, + {"NaN", Func, 0, "func() float64"}, + {"Nextafter", Func, 0, "func(x float64, y float64) (r float64)"}, + {"Nextafter32", Func, 4, "func(x float32, y float32) (r float32)"}, + {"Phi", Const, 0, ""}, + {"Pi", Const, 0, ""}, + {"Pow", Func, 0, "func(x float64, y float64) float64"}, + {"Pow10", Func, 0, "func(n int) float64"}, + {"Remainder", Func, 0, "func(x float64, y float64) float64"}, + {"Round", Func, 10, "func(x float64) float64"}, + {"RoundToEven", Func, 10, "func(x float64) float64"}, + {"Signbit", Func, 0, "func(x float64) bool"}, + {"Sin", Func, 0, "func(x float64) float64"}, + {"Sincos", Func, 0, "func(x float64) (sin float64, cos float64)"}, + {"Sinh", Func, 0, "func(x float64) float64"}, + {"SmallestNonzeroFloat32", Const, 0, ""}, + {"SmallestNonzeroFloat64", Const, 0, ""}, + {"Sqrt", Func, 0, "func(x float64) float64"}, + {"Sqrt2", Const, 0, ""}, + {"SqrtE", Const, 0, ""}, + {"SqrtPhi", Const, 0, ""}, + {"SqrtPi", Const, 0, ""}, + {"Tan", Func, 0, "func(x float64) float64"}, + {"Tanh", Func, 0, "func(x float64) float64"}, + {"Trunc", Func, 0, "func(x float64) float64"}, + {"Y0", Func, 0, "func(x float64) float64"}, + {"Y1", Func, 0, "func(x float64) float64"}, + {"Yn", Func, 0, "func(n int, x float64) float64"}, + }, + "math/big": { + {"(*Float).Abs", Method, 5, ""}, + {"(*Float).Acc", Method, 5, ""}, + {"(*Float).Add", Method, 5, ""}, + {"(*Float).Append", Method, 5, ""}, + {"(*Float).AppendText", Method, 24, ""}, + {"(*Float).Cmp", Method, 5, ""}, + {"(*Float).Copy", Method, 5, ""}, + {"(*Float).Float32", Method, 5, ""}, + {"(*Float).Float64", Method, 5, ""}, + {"(*Float).Format", Method, 5, ""}, + {"(*Float).GobDecode", Method, 7, ""}, + {"(*Float).GobEncode", Method, 7, ""}, + {"(*Float).Int", Method, 5, ""}, + {"(*Float).Int64", Method, 5, ""}, + {"(*Float).IsInf", Method, 5, ""}, + {"(*Float).IsInt", Method, 5, ""}, + {"(*Float).MantExp", Method, 5, ""}, + {"(*Float).MarshalText", Method, 6, ""}, + {"(*Float).MinPrec", Method, 5, ""}, + {"(*Float).Mode", Method, 5, ""}, + {"(*Float).Mul", Method, 5, ""}, + {"(*Float).Neg", Method, 5, ""}, + {"(*Float).Parse", Method, 5, ""}, + {"(*Float).Prec", Method, 5, ""}, + {"(*Float).Quo", Method, 5, ""}, + {"(*Float).Rat", Method, 5, ""}, + {"(*Float).Scan", Method, 8, ""}, + {"(*Float).Set", Method, 5, ""}, + {"(*Float).SetFloat64", Method, 5, ""}, + {"(*Float).SetInf", Method, 5, ""}, + {"(*Float).SetInt", Method, 5, ""}, + {"(*Float).SetInt64", Method, 5, ""}, + {"(*Float).SetMantExp", Method, 5, ""}, + {"(*Float).SetMode", Method, 5, ""}, + {"(*Float).SetPrec", Method, 5, ""}, + {"(*Float).SetRat", Method, 5, ""}, + {"(*Float).SetString", Method, 5, ""}, + {"(*Float).SetUint64", Method, 5, ""}, + {"(*Float).Sign", Method, 5, ""}, + {"(*Float).Signbit", Method, 5, ""}, + {"(*Float).Sqrt", Method, 10, ""}, + {"(*Float).String", Method, 5, ""}, + {"(*Float).Sub", Method, 5, ""}, + {"(*Float).Text", Method, 5, ""}, + {"(*Float).Uint64", Method, 5, ""}, + {"(*Float).UnmarshalText", Method, 6, ""}, + {"(*Int).Abs", Method, 0, ""}, + {"(*Int).Add", Method, 0, ""}, + {"(*Int).And", Method, 0, ""}, + {"(*Int).AndNot", Method, 0, ""}, + {"(*Int).Append", Method, 6, ""}, + {"(*Int).AppendText", Method, 24, ""}, + {"(*Int).Binomial", Method, 0, ""}, + {"(*Int).Bit", Method, 0, ""}, + {"(*Int).BitLen", Method, 0, ""}, + {"(*Int).Bits", Method, 0, ""}, + {"(*Int).Bytes", Method, 0, ""}, + {"(*Int).Cmp", Method, 0, ""}, + {"(*Int).CmpAbs", Method, 10, ""}, + {"(*Int).Div", Method, 0, ""}, + {"(*Int).DivMod", Method, 0, ""}, + {"(*Int).Exp", Method, 0, ""}, + {"(*Int).FillBytes", Method, 15, ""}, + {"(*Int).Float64", Method, 21, ""}, + {"(*Int).Format", Method, 0, ""}, + {"(*Int).GCD", Method, 0, ""}, + {"(*Int).GobDecode", Method, 0, ""}, + {"(*Int).GobEncode", Method, 0, ""}, + {"(*Int).Int64", Method, 0, ""}, + {"(*Int).IsInt64", Method, 9, ""}, + {"(*Int).IsUint64", Method, 9, ""}, + {"(*Int).Lsh", Method, 0, ""}, + {"(*Int).MarshalJSON", Method, 1, ""}, + {"(*Int).MarshalText", Method, 3, ""}, + {"(*Int).Mod", Method, 0, ""}, + {"(*Int).ModInverse", Method, 0, ""}, + {"(*Int).ModSqrt", Method, 5, ""}, + {"(*Int).Mul", Method, 0, ""}, + {"(*Int).MulRange", Method, 0, ""}, + {"(*Int).Neg", Method, 0, ""}, + {"(*Int).Not", Method, 0, ""}, + {"(*Int).Or", Method, 0, ""}, + {"(*Int).ProbablyPrime", Method, 0, ""}, + {"(*Int).Quo", Method, 0, ""}, + {"(*Int).QuoRem", Method, 0, ""}, + {"(*Int).Rand", Method, 0, ""}, + {"(*Int).Rem", Method, 0, ""}, + {"(*Int).Rsh", Method, 0, ""}, + {"(*Int).Scan", Method, 0, ""}, + {"(*Int).Set", Method, 0, ""}, + {"(*Int).SetBit", Method, 0, ""}, + {"(*Int).SetBits", Method, 0, ""}, + {"(*Int).SetBytes", Method, 0, ""}, + {"(*Int).SetInt64", Method, 0, ""}, + {"(*Int).SetString", Method, 0, ""}, + {"(*Int).SetUint64", Method, 1, ""}, + {"(*Int).Sign", Method, 0, ""}, + {"(*Int).Sqrt", Method, 8, ""}, + {"(*Int).String", Method, 0, ""}, + {"(*Int).Sub", Method, 0, ""}, + {"(*Int).Text", Method, 6, ""}, + {"(*Int).TrailingZeroBits", Method, 13, ""}, + {"(*Int).Uint64", Method, 1, ""}, + {"(*Int).UnmarshalJSON", Method, 1, ""}, + {"(*Int).UnmarshalText", Method, 3, ""}, + {"(*Int).Xor", Method, 0, ""}, + {"(*Rat).Abs", Method, 0, ""}, + {"(*Rat).Add", Method, 0, ""}, + {"(*Rat).AppendText", Method, 24, ""}, + {"(*Rat).Cmp", Method, 0, ""}, + {"(*Rat).Denom", Method, 0, ""}, + {"(*Rat).Float32", Method, 4, ""}, + {"(*Rat).Float64", Method, 1, ""}, + {"(*Rat).FloatPrec", Method, 22, ""}, + {"(*Rat).FloatString", Method, 0, ""}, + {"(*Rat).GobDecode", Method, 0, ""}, + {"(*Rat).GobEncode", Method, 0, ""}, + {"(*Rat).Inv", Method, 0, ""}, + {"(*Rat).IsInt", Method, 0, ""}, + {"(*Rat).MarshalText", Method, 3, ""}, + {"(*Rat).Mul", Method, 0, ""}, + {"(*Rat).Neg", Method, 0, ""}, + {"(*Rat).Num", Method, 0, ""}, + {"(*Rat).Quo", Method, 0, ""}, + {"(*Rat).RatString", Method, 0, ""}, + {"(*Rat).Scan", Method, 0, ""}, + {"(*Rat).Set", Method, 0, ""}, + {"(*Rat).SetFloat64", Method, 1, ""}, + {"(*Rat).SetFrac", Method, 0, ""}, + {"(*Rat).SetFrac64", Method, 0, ""}, + {"(*Rat).SetInt", Method, 0, ""}, + {"(*Rat).SetInt64", Method, 0, ""}, + {"(*Rat).SetString", Method, 0, ""}, + {"(*Rat).SetUint64", Method, 13, ""}, + {"(*Rat).Sign", Method, 0, ""}, + {"(*Rat).String", Method, 0, ""}, + {"(*Rat).Sub", Method, 0, ""}, + {"(*Rat).UnmarshalText", Method, 3, ""}, + {"(Accuracy).String", Method, 5, ""}, + {"(ErrNaN).Error", Method, 5, ""}, + {"(RoundingMode).String", Method, 5, ""}, + {"Above", Const, 5, ""}, + {"Accuracy", Type, 5, ""}, + {"AwayFromZero", Const, 5, ""}, + {"Below", Const, 5, ""}, + {"ErrNaN", Type, 5, ""}, + {"Exact", Const, 5, ""}, + {"Float", Type, 5, ""}, + {"Int", Type, 0, ""}, + {"Jacobi", Func, 5, "func(x *Int, y *Int) int"}, + {"MaxBase", Const, 0, ""}, + {"MaxExp", Const, 5, ""}, + {"MaxPrec", Const, 5, ""}, + {"MinExp", Const, 5, ""}, + {"NewFloat", Func, 5, "func(x float64) *Float"}, + {"NewInt", Func, 0, "func(x int64) *Int"}, + {"NewRat", Func, 0, "func(a int64, b int64) *Rat"}, + {"ParseFloat", Func, 5, "func(s string, base int, prec uint, mode RoundingMode) (f *Float, b int, err error)"}, + {"Rat", Type, 0, ""}, + {"RoundingMode", Type, 5, ""}, + {"ToNearestAway", Const, 5, ""}, + {"ToNearestEven", Const, 5, ""}, + {"ToNegativeInf", Const, 5, ""}, + {"ToPositiveInf", Const, 5, ""}, + {"ToZero", Const, 5, ""}, + {"Word", Type, 0, ""}, + }, + "math/bits": { + {"Add", Func, 12, "func(x uint, y uint, carry uint) (sum uint, carryOut uint)"}, + {"Add32", Func, 12, "func(x uint32, y uint32, carry uint32) (sum uint32, carryOut uint32)"}, + {"Add64", Func, 12, "func(x uint64, y uint64, carry uint64) (sum uint64, carryOut uint64)"}, + {"Div", Func, 12, "func(hi uint, lo uint, y uint) (quo uint, rem uint)"}, + {"Div32", Func, 12, "func(hi uint32, lo uint32, y uint32) (quo uint32, rem uint32)"}, + {"Div64", Func, 12, "func(hi uint64, lo uint64, y uint64) (quo uint64, rem uint64)"}, + {"LeadingZeros", Func, 9, "func(x uint) int"}, + {"LeadingZeros16", Func, 9, "func(x uint16) int"}, + {"LeadingZeros32", Func, 9, "func(x uint32) int"}, + {"LeadingZeros64", Func, 9, "func(x uint64) int"}, + {"LeadingZeros8", Func, 9, "func(x uint8) int"}, + {"Len", Func, 9, "func(x uint) int"}, + {"Len16", Func, 9, "func(x uint16) (n int)"}, + {"Len32", Func, 9, "func(x uint32) (n int)"}, + {"Len64", Func, 9, "func(x uint64) (n int)"}, + {"Len8", Func, 9, "func(x uint8) int"}, + {"Mul", Func, 12, "func(x uint, y uint) (hi uint, lo uint)"}, + {"Mul32", Func, 12, "func(x uint32, y uint32) (hi uint32, lo uint32)"}, + {"Mul64", Func, 12, "func(x uint64, y uint64) (hi uint64, lo uint64)"}, + {"OnesCount", Func, 9, "func(x uint) int"}, + {"OnesCount16", Func, 9, "func(x uint16) int"}, + {"OnesCount32", Func, 9, "func(x uint32) int"}, + {"OnesCount64", Func, 9, "func(x uint64) int"}, + {"OnesCount8", Func, 9, "func(x uint8) int"}, + {"Rem", Func, 14, "func(hi uint, lo uint, y uint) uint"}, + {"Rem32", Func, 14, "func(hi uint32, lo uint32, y uint32) uint32"}, + {"Rem64", Func, 14, "func(hi uint64, lo uint64, y uint64) uint64"}, + {"Reverse", Func, 9, "func(x uint) uint"}, + {"Reverse16", Func, 9, "func(x uint16) uint16"}, + {"Reverse32", Func, 9, "func(x uint32) uint32"}, + {"Reverse64", Func, 9, "func(x uint64) uint64"}, + {"Reverse8", Func, 9, "func(x uint8) uint8"}, + {"ReverseBytes", Func, 9, "func(x uint) uint"}, + {"ReverseBytes16", Func, 9, "func(x uint16) uint16"}, + {"ReverseBytes32", Func, 9, "func(x uint32) uint32"}, + {"ReverseBytes64", Func, 9, "func(x uint64) uint64"}, + {"RotateLeft", Func, 9, "func(x uint, k int) uint"}, + {"RotateLeft16", Func, 9, "func(x uint16, k int) uint16"}, + {"RotateLeft32", Func, 9, "func(x uint32, k int) uint32"}, + {"RotateLeft64", Func, 9, "func(x uint64, k int) uint64"}, + {"RotateLeft8", Func, 9, "func(x uint8, k int) uint8"}, + {"Sub", Func, 12, "func(x uint, y uint, borrow uint) (diff uint, borrowOut uint)"}, + {"Sub32", Func, 12, "func(x uint32, y uint32, borrow uint32) (diff uint32, borrowOut uint32)"}, + {"Sub64", Func, 12, "func(x uint64, y uint64, borrow uint64) (diff uint64, borrowOut uint64)"}, + {"TrailingZeros", Func, 9, "func(x uint) int"}, + {"TrailingZeros16", Func, 9, "func(x uint16) int"}, + {"TrailingZeros32", Func, 9, "func(x uint32) int"}, + {"TrailingZeros64", Func, 9, "func(x uint64) int"}, + {"TrailingZeros8", Func, 9, "func(x uint8) int"}, + {"UintSize", Const, 9, ""}, + }, + "math/cmplx": { + {"Abs", Func, 0, "func(x complex128) float64"}, + {"Acos", Func, 0, "func(x complex128) complex128"}, + {"Acosh", Func, 0, "func(x complex128) complex128"}, + {"Asin", Func, 0, "func(x complex128) complex128"}, + {"Asinh", Func, 0, "func(x complex128) complex128"}, + {"Atan", Func, 0, "func(x complex128) complex128"}, + {"Atanh", Func, 0, "func(x complex128) complex128"}, + {"Conj", Func, 0, "func(x complex128) complex128"}, + {"Cos", Func, 0, "func(x complex128) complex128"}, + {"Cosh", Func, 0, "func(x complex128) complex128"}, + {"Cot", Func, 0, "func(x complex128) complex128"}, + {"Exp", Func, 0, "func(x complex128) complex128"}, + {"Inf", Func, 0, "func() complex128"}, + {"IsInf", Func, 0, "func(x complex128) bool"}, + {"IsNaN", Func, 0, "func(x complex128) bool"}, + {"Log", Func, 0, "func(x complex128) complex128"}, + {"Log10", Func, 0, "func(x complex128) complex128"}, + {"NaN", Func, 0, "func() complex128"}, + {"Phase", Func, 0, "func(x complex128) float64"}, + {"Polar", Func, 0, "func(x complex128) (r float64, θ float64)"}, + {"Pow", Func, 0, "func(x complex128, y complex128) complex128"}, + {"Rect", Func, 0, "func(r float64, θ float64) complex128"}, + {"Sin", Func, 0, "func(x complex128) complex128"}, + {"Sinh", Func, 0, "func(x complex128) complex128"}, + {"Sqrt", Func, 0, "func(x complex128) complex128"}, + {"Tan", Func, 0, "func(x complex128) complex128"}, + {"Tanh", Func, 0, "func(x complex128) complex128"}, + }, + "math/rand": { + {"(*Rand).ExpFloat64", Method, 0, ""}, + {"(*Rand).Float32", Method, 0, ""}, + {"(*Rand).Float64", Method, 0, ""}, + {"(*Rand).Int", Method, 0, ""}, + {"(*Rand).Int31", Method, 0, ""}, + {"(*Rand).Int31n", Method, 0, ""}, + {"(*Rand).Int63", Method, 0, ""}, + {"(*Rand).Int63n", Method, 0, ""}, + {"(*Rand).Intn", Method, 0, ""}, + {"(*Rand).NormFloat64", Method, 0, ""}, + {"(*Rand).Perm", Method, 0, ""}, + {"(*Rand).Read", Method, 6, ""}, + {"(*Rand).Seed", Method, 0, ""}, + {"(*Rand).Shuffle", Method, 10, ""}, + {"(*Rand).Uint32", Method, 0, ""}, + {"(*Rand).Uint64", Method, 8, ""}, + {"(*Zipf).Uint64", Method, 0, ""}, + {"ExpFloat64", Func, 0, "func() float64"}, + {"Float32", Func, 0, "func() float32"}, + {"Float64", Func, 0, "func() float64"}, + {"Int", Func, 0, "func() int"}, + {"Int31", Func, 0, "func() int32"}, + {"Int31n", Func, 0, "func(n int32) int32"}, + {"Int63", Func, 0, "func() int64"}, + {"Int63n", Func, 0, "func(n int64) int64"}, + {"Intn", Func, 0, "func(n int) int"}, + {"New", Func, 0, "func(src Source) *Rand"}, + {"NewSource", Func, 0, "func(seed int64) Source"}, + {"NewZipf", Func, 0, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"}, + {"NormFloat64", Func, 0, "func() float64"}, + {"Perm", Func, 0, "func(n int) []int"}, + {"Rand", Type, 0, ""}, + {"Read", Func, 6, "func(p []byte) (n int, err error)"}, + {"Seed", Func, 0, "func(seed int64)"}, + {"Shuffle", Func, 10, "func(n int, swap func(i int, j int))"}, + {"Source", Type, 0, ""}, + {"Source64", Type, 8, ""}, + {"Uint32", Func, 0, "func() uint32"}, + {"Uint64", Func, 8, "func() uint64"}, + {"Zipf", Type, 0, ""}, + }, + "math/rand/v2": { + {"(*ChaCha8).AppendBinary", Method, 24, ""}, + {"(*ChaCha8).MarshalBinary", Method, 22, ""}, + {"(*ChaCha8).Read", Method, 23, ""}, + {"(*ChaCha8).Seed", Method, 22, ""}, + {"(*ChaCha8).Uint64", Method, 22, ""}, + {"(*ChaCha8).UnmarshalBinary", Method, 22, ""}, + {"(*PCG).AppendBinary", Method, 24, ""}, + {"(*PCG).MarshalBinary", Method, 22, ""}, + {"(*PCG).Seed", Method, 22, ""}, + {"(*PCG).Uint64", Method, 22, ""}, + {"(*PCG).UnmarshalBinary", Method, 22, ""}, + {"(*Rand).ExpFloat64", Method, 22, ""}, + {"(*Rand).Float32", Method, 22, ""}, + {"(*Rand).Float64", Method, 22, ""}, + {"(*Rand).Int", Method, 22, ""}, + {"(*Rand).Int32", Method, 22, ""}, + {"(*Rand).Int32N", Method, 22, ""}, + {"(*Rand).Int64", Method, 22, ""}, + {"(*Rand).Int64N", Method, 22, ""}, + {"(*Rand).IntN", Method, 22, ""}, + {"(*Rand).NormFloat64", Method, 22, ""}, + {"(*Rand).Perm", Method, 22, ""}, + {"(*Rand).Shuffle", Method, 22, ""}, + {"(*Rand).Uint", Method, 23, ""}, + {"(*Rand).Uint32", Method, 22, ""}, + {"(*Rand).Uint32N", Method, 22, ""}, + {"(*Rand).Uint64", Method, 22, ""}, + {"(*Rand).Uint64N", Method, 22, ""}, + {"(*Rand).UintN", Method, 22, ""}, + {"(*Zipf).Uint64", Method, 22, ""}, + {"ChaCha8", Type, 22, ""}, + {"ExpFloat64", Func, 22, "func() float64"}, + {"Float32", Func, 22, "func() float32"}, + {"Float64", Func, 22, "func() float64"}, + {"Int", Func, 22, "func() int"}, + {"Int32", Func, 22, "func() int32"}, + {"Int32N", Func, 22, "func(n int32) int32"}, + {"Int64", Func, 22, "func() int64"}, + {"Int64N", Func, 22, "func(n int64) int64"}, + {"IntN", Func, 22, "func(n int) int"}, + {"N", Func, 22, "func[Int intType](n Int) Int"}, + {"New", Func, 22, "func(src Source) *Rand"}, + {"NewChaCha8", Func, 22, "func(seed [32]byte) *ChaCha8"}, + {"NewPCG", Func, 22, "func(seed1 uint64, seed2 uint64) *PCG"}, + {"NewZipf", Func, 22, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"}, + {"NormFloat64", Func, 22, "func() float64"}, + {"PCG", Type, 22, ""}, + {"Perm", Func, 22, "func(n int) []int"}, + {"Rand", Type, 22, ""}, + {"Shuffle", Func, 22, "func(n int, swap func(i int, j int))"}, + {"Source", Type, 22, ""}, + {"Uint", Func, 23, "func() uint"}, + {"Uint32", Func, 22, "func() uint32"}, + {"Uint32N", Func, 22, "func(n uint32) uint32"}, + {"Uint64", Func, 22, "func() uint64"}, + {"Uint64N", Func, 22, "func(n uint64) uint64"}, + {"UintN", Func, 22, "func(n uint) uint"}, + {"Zipf", Type, 22, ""}, + }, + "mime": { + {"(*WordDecoder).Decode", Method, 5, ""}, + {"(*WordDecoder).DecodeHeader", Method, 5, ""}, + {"(WordEncoder).Encode", Method, 5, ""}, + {"AddExtensionType", Func, 0, "func(ext string, typ string) error"}, + {"BEncoding", Const, 5, ""}, + {"ErrInvalidMediaParameter", Var, 9, ""}, + {"ExtensionsByType", Func, 5, "func(typ string) ([]string, error)"}, + {"FormatMediaType", Func, 0, "func(t string, param map[string]string) string"}, + {"ParseMediaType", Func, 0, "func(v string) (mediatype string, params map[string]string, err error)"}, + {"QEncoding", Const, 5, ""}, + {"TypeByExtension", Func, 0, "func(ext string) string"}, + {"WordDecoder", Type, 5, ""}, + {"WordDecoder.CharsetReader", Field, 5, ""}, + {"WordEncoder", Type, 5, ""}, + }, + "mime/multipart": { + {"(*FileHeader).Open", Method, 0, ""}, + {"(*Form).RemoveAll", Method, 0, ""}, + {"(*Part).Close", Method, 0, ""}, + {"(*Part).FileName", Method, 0, ""}, + {"(*Part).FormName", Method, 0, ""}, + {"(*Part).Read", Method, 0, ""}, + {"(*Reader).NextPart", Method, 0, ""}, + {"(*Reader).NextRawPart", Method, 14, ""}, + {"(*Reader).ReadForm", Method, 0, ""}, + {"(*Writer).Boundary", Method, 0, ""}, + {"(*Writer).Close", Method, 0, ""}, + {"(*Writer).CreateFormField", Method, 0, ""}, + {"(*Writer).CreateFormFile", Method, 0, ""}, + {"(*Writer).CreatePart", Method, 0, ""}, + {"(*Writer).FormDataContentType", Method, 0, ""}, + {"(*Writer).SetBoundary", Method, 1, ""}, + {"(*Writer).WriteField", Method, 0, ""}, + {"ErrMessageTooLarge", Var, 9, ""}, + {"File", Type, 0, ""}, + {"FileContentDisposition", Func, 25, ""}, + {"FileHeader", Type, 0, ""}, + {"FileHeader.Filename", Field, 0, ""}, + {"FileHeader.Header", Field, 0, ""}, + {"FileHeader.Size", Field, 9, ""}, + {"Form", Type, 0, ""}, + {"Form.File", Field, 0, ""}, + {"Form.Value", Field, 0, ""}, + {"NewReader", Func, 0, "func(r io.Reader, boundary string) *Reader"}, + {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, + {"Part", Type, 0, ""}, + {"Part.Header", Field, 0, ""}, + {"Reader", Type, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "mime/quotedprintable": { + {"(*Reader).Read", Method, 5, ""}, + {"(*Writer).Close", Method, 5, ""}, + {"(*Writer).Write", Method, 5, ""}, + {"NewReader", Func, 5, "func(r io.Reader) *Reader"}, + {"NewWriter", Func, 5, "func(w io.Writer) *Writer"}, + {"Reader", Type, 5, ""}, + {"Writer", Type, 5, ""}, + {"Writer.Binary", Field, 5, ""}, + }, + "net": { + {"(*AddrError).Error", Method, 0, ""}, + {"(*AddrError).Temporary", Method, 0, ""}, + {"(*AddrError).Timeout", Method, 0, ""}, + {"(*Buffers).Read", Method, 8, ""}, + {"(*Buffers).WriteTo", Method, 8, ""}, + {"(*DNSConfigError).Error", Method, 0, ""}, + {"(*DNSConfigError).Temporary", Method, 0, ""}, + {"(*DNSConfigError).Timeout", Method, 0, ""}, + {"(*DNSConfigError).Unwrap", Method, 13, ""}, + {"(*DNSError).Error", Method, 0, ""}, + {"(*DNSError).Temporary", Method, 0, ""}, + {"(*DNSError).Timeout", Method, 0, ""}, + {"(*DNSError).Unwrap", Method, 23, ""}, + {"(*Dialer).Dial", Method, 1, ""}, + {"(*Dialer).DialContext", Method, 7, ""}, + {"(*Dialer).MultipathTCP", Method, 21, ""}, + {"(*Dialer).SetMultipathTCP", Method, 21, ""}, + {"(*IP).UnmarshalText", Method, 2, ""}, + {"(*IPAddr).Network", Method, 0, ""}, + {"(*IPAddr).String", Method, 0, ""}, + {"(*IPConn).Close", Method, 0, ""}, + {"(*IPConn).File", Method, 0, ""}, + {"(*IPConn).LocalAddr", Method, 0, ""}, + {"(*IPConn).Read", Method, 0, ""}, + {"(*IPConn).ReadFrom", Method, 0, ""}, + {"(*IPConn).ReadFromIP", Method, 0, ""}, + {"(*IPConn).ReadMsgIP", Method, 1, ""}, + {"(*IPConn).RemoteAddr", Method, 0, ""}, + {"(*IPConn).SetDeadline", Method, 0, ""}, + {"(*IPConn).SetReadBuffer", Method, 0, ""}, + {"(*IPConn).SetReadDeadline", Method, 0, ""}, + {"(*IPConn).SetWriteBuffer", Method, 0, ""}, + {"(*IPConn).SetWriteDeadline", Method, 0, ""}, + {"(*IPConn).SyscallConn", Method, 9, ""}, + {"(*IPConn).Write", Method, 0, ""}, + {"(*IPConn).WriteMsgIP", Method, 1, ""}, + {"(*IPConn).WriteTo", Method, 0, ""}, + {"(*IPConn).WriteToIP", Method, 0, ""}, + {"(*IPNet).Contains", Method, 0, ""}, + {"(*IPNet).Network", Method, 0, ""}, + {"(*IPNet).String", Method, 0, ""}, + {"(*Interface).Addrs", Method, 0, ""}, + {"(*Interface).MulticastAddrs", Method, 0, ""}, + {"(*ListenConfig).Listen", Method, 11, ""}, + {"(*ListenConfig).ListenPacket", Method, 11, ""}, + {"(*ListenConfig).MultipathTCP", Method, 21, ""}, + {"(*ListenConfig).SetMultipathTCP", Method, 21, ""}, + {"(*OpError).Error", Method, 0, ""}, + {"(*OpError).Temporary", Method, 0, ""}, + {"(*OpError).Timeout", Method, 0, ""}, + {"(*OpError).Unwrap", Method, 13, ""}, + {"(*ParseError).Error", Method, 0, ""}, + {"(*ParseError).Temporary", Method, 17, ""}, + {"(*ParseError).Timeout", Method, 17, ""}, + {"(*Resolver).LookupAddr", Method, 8, ""}, + {"(*Resolver).LookupCNAME", Method, 8, ""}, + {"(*Resolver).LookupHost", Method, 8, ""}, + {"(*Resolver).LookupIP", Method, 15, ""}, + {"(*Resolver).LookupIPAddr", Method, 8, ""}, + {"(*Resolver).LookupMX", Method, 8, ""}, + {"(*Resolver).LookupNS", Method, 8, ""}, + {"(*Resolver).LookupNetIP", Method, 18, ""}, + {"(*Resolver).LookupPort", Method, 8, ""}, + {"(*Resolver).LookupSRV", Method, 8, ""}, + {"(*Resolver).LookupTXT", Method, 8, ""}, + {"(*TCPAddr).AddrPort", Method, 18, ""}, + {"(*TCPAddr).Network", Method, 0, ""}, + {"(*TCPAddr).String", Method, 0, ""}, + {"(*TCPConn).Close", Method, 0, ""}, + {"(*TCPConn).CloseRead", Method, 0, ""}, + {"(*TCPConn).CloseWrite", Method, 0, ""}, + {"(*TCPConn).File", Method, 0, ""}, + {"(*TCPConn).LocalAddr", Method, 0, ""}, + {"(*TCPConn).MultipathTCP", Method, 21, ""}, + {"(*TCPConn).Read", Method, 0, ""}, + {"(*TCPConn).ReadFrom", Method, 0, ""}, + {"(*TCPConn).RemoteAddr", Method, 0, ""}, + {"(*TCPConn).SetDeadline", Method, 0, ""}, + {"(*TCPConn).SetKeepAlive", Method, 0, ""}, + {"(*TCPConn).SetKeepAliveConfig", Method, 23, ""}, + {"(*TCPConn).SetKeepAlivePeriod", Method, 2, ""}, + {"(*TCPConn).SetLinger", Method, 0, ""}, + {"(*TCPConn).SetNoDelay", Method, 0, ""}, + {"(*TCPConn).SetReadBuffer", Method, 0, ""}, + {"(*TCPConn).SetReadDeadline", Method, 0, ""}, + {"(*TCPConn).SetWriteBuffer", Method, 0, ""}, + {"(*TCPConn).SetWriteDeadline", Method, 0, ""}, + {"(*TCPConn).SyscallConn", Method, 9, ""}, + {"(*TCPConn).Write", Method, 0, ""}, + {"(*TCPConn).WriteTo", Method, 22, ""}, + {"(*TCPListener).Accept", Method, 0, ""}, + {"(*TCPListener).AcceptTCP", Method, 0, ""}, + {"(*TCPListener).Addr", Method, 0, ""}, + {"(*TCPListener).Close", Method, 0, ""}, + {"(*TCPListener).File", Method, 0, ""}, + {"(*TCPListener).SetDeadline", Method, 0, ""}, + {"(*TCPListener).SyscallConn", Method, 10, ""}, + {"(*UDPAddr).AddrPort", Method, 18, ""}, + {"(*UDPAddr).Network", Method, 0, ""}, + {"(*UDPAddr).String", Method, 0, ""}, + {"(*UDPConn).Close", Method, 0, ""}, + {"(*UDPConn).File", Method, 0, ""}, + {"(*UDPConn).LocalAddr", Method, 0, ""}, + {"(*UDPConn).Read", Method, 0, ""}, + {"(*UDPConn).ReadFrom", Method, 0, ""}, + {"(*UDPConn).ReadFromUDP", Method, 0, ""}, + {"(*UDPConn).ReadFromUDPAddrPort", Method, 18, ""}, + {"(*UDPConn).ReadMsgUDP", Method, 1, ""}, + {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18, ""}, + {"(*UDPConn).RemoteAddr", Method, 0, ""}, + {"(*UDPConn).SetDeadline", Method, 0, ""}, + {"(*UDPConn).SetReadBuffer", Method, 0, ""}, + {"(*UDPConn).SetReadDeadline", Method, 0, ""}, + {"(*UDPConn).SetWriteBuffer", Method, 0, ""}, + {"(*UDPConn).SetWriteDeadline", Method, 0, ""}, + {"(*UDPConn).SyscallConn", Method, 9, ""}, + {"(*UDPConn).Write", Method, 0, ""}, + {"(*UDPConn).WriteMsgUDP", Method, 1, ""}, + {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18, ""}, + {"(*UDPConn).WriteTo", Method, 0, ""}, + {"(*UDPConn).WriteToUDP", Method, 0, ""}, + {"(*UDPConn).WriteToUDPAddrPort", Method, 18, ""}, + {"(*UnixAddr).Network", Method, 0, ""}, + {"(*UnixAddr).String", Method, 0, ""}, + {"(*UnixConn).Close", Method, 0, ""}, + {"(*UnixConn).CloseRead", Method, 1, ""}, + {"(*UnixConn).CloseWrite", Method, 1, ""}, + {"(*UnixConn).File", Method, 0, ""}, + {"(*UnixConn).LocalAddr", Method, 0, ""}, + {"(*UnixConn).Read", Method, 0, ""}, + {"(*UnixConn).ReadFrom", Method, 0, ""}, + {"(*UnixConn).ReadFromUnix", Method, 0, ""}, + {"(*UnixConn).ReadMsgUnix", Method, 0, ""}, + {"(*UnixConn).RemoteAddr", Method, 0, ""}, + {"(*UnixConn).SetDeadline", Method, 0, ""}, + {"(*UnixConn).SetReadBuffer", Method, 0, ""}, + {"(*UnixConn).SetReadDeadline", Method, 0, ""}, + {"(*UnixConn).SetWriteBuffer", Method, 0, ""}, + {"(*UnixConn).SetWriteDeadline", Method, 0, ""}, + {"(*UnixConn).SyscallConn", Method, 9, ""}, + {"(*UnixConn).Write", Method, 0, ""}, + {"(*UnixConn).WriteMsgUnix", Method, 0, ""}, + {"(*UnixConn).WriteTo", Method, 0, ""}, + {"(*UnixConn).WriteToUnix", Method, 0, ""}, + {"(*UnixListener).Accept", Method, 0, ""}, + {"(*UnixListener).AcceptUnix", Method, 0, ""}, + {"(*UnixListener).Addr", Method, 0, ""}, + {"(*UnixListener).Close", Method, 0, ""}, + {"(*UnixListener).File", Method, 0, ""}, + {"(*UnixListener).SetDeadline", Method, 0, ""}, + {"(*UnixListener).SetUnlinkOnClose", Method, 8, ""}, + {"(*UnixListener).SyscallConn", Method, 10, ""}, + {"(Flags).String", Method, 0, ""}, + {"(HardwareAddr).String", Method, 0, ""}, + {"(IP).AppendText", Method, 24, ""}, + {"(IP).DefaultMask", Method, 0, ""}, + {"(IP).Equal", Method, 0, ""}, + {"(IP).IsGlobalUnicast", Method, 0, ""}, + {"(IP).IsInterfaceLocalMulticast", Method, 0, ""}, + {"(IP).IsLinkLocalMulticast", Method, 0, ""}, + {"(IP).IsLinkLocalUnicast", Method, 0, ""}, + {"(IP).IsLoopback", Method, 0, ""}, + {"(IP).IsMulticast", Method, 0, ""}, + {"(IP).IsPrivate", Method, 17, ""}, + {"(IP).IsUnspecified", Method, 0, ""}, + {"(IP).MarshalText", Method, 2, ""}, + {"(IP).Mask", Method, 0, ""}, + {"(IP).String", Method, 0, ""}, + {"(IP).To16", Method, 0, ""}, + {"(IP).To4", Method, 0, ""}, + {"(IPMask).Size", Method, 0, ""}, + {"(IPMask).String", Method, 0, ""}, + {"(InvalidAddrError).Error", Method, 0, ""}, + {"(InvalidAddrError).Temporary", Method, 0, ""}, + {"(InvalidAddrError).Timeout", Method, 0, ""}, + {"(UnknownNetworkError).Error", Method, 0, ""}, + {"(UnknownNetworkError).Temporary", Method, 0, ""}, + {"(UnknownNetworkError).Timeout", Method, 0, ""}, + {"Addr", Type, 0, ""}, + {"AddrError", Type, 0, ""}, + {"AddrError.Addr", Field, 0, ""}, + {"AddrError.Err", Field, 0, ""}, + {"Buffers", Type, 8, ""}, + {"CIDRMask", Func, 0, "func(ones int, bits int) IPMask"}, + {"Conn", Type, 0, ""}, + {"DNSConfigError", Type, 0, ""}, + {"DNSConfigError.Err", Field, 0, ""}, + {"DNSError", Type, 0, ""}, + {"DNSError.Err", Field, 0, ""}, + {"DNSError.IsNotFound", Field, 13, ""}, + {"DNSError.IsTemporary", Field, 6, ""}, + {"DNSError.IsTimeout", Field, 0, ""}, + {"DNSError.Name", Field, 0, ""}, + {"DNSError.Server", Field, 0, ""}, + {"DNSError.UnwrapErr", Field, 23, ""}, + {"DefaultResolver", Var, 8, ""}, + {"Dial", Func, 0, "func(network string, address string) (Conn, error)"}, + {"DialIP", Func, 0, "func(network string, laddr *IPAddr, raddr *IPAddr) (*IPConn, error)"}, + {"DialTCP", Func, 0, "func(network string, laddr *TCPAddr, raddr *TCPAddr) (*TCPConn, error)"}, + {"DialTimeout", Func, 0, "func(network string, address string, timeout time.Duration) (Conn, error)"}, + {"DialUDP", Func, 0, "func(network string, laddr *UDPAddr, raddr *UDPAddr) (*UDPConn, error)"}, + {"DialUnix", Func, 0, "func(network string, laddr *UnixAddr, raddr *UnixAddr) (*UnixConn, error)"}, + {"Dialer", Type, 1, ""}, + {"Dialer.Cancel", Field, 6, ""}, + {"Dialer.Control", Field, 11, ""}, + {"Dialer.ControlContext", Field, 20, ""}, + {"Dialer.Deadline", Field, 1, ""}, + {"Dialer.DualStack", Field, 2, ""}, + {"Dialer.FallbackDelay", Field, 5, ""}, + {"Dialer.KeepAlive", Field, 3, ""}, + {"Dialer.KeepAliveConfig", Field, 23, ""}, + {"Dialer.LocalAddr", Field, 1, ""}, + {"Dialer.Resolver", Field, 8, ""}, + {"Dialer.Timeout", Field, 1, ""}, + {"ErrClosed", Var, 16, ""}, + {"ErrWriteToConnected", Var, 0, ""}, + {"Error", Type, 0, ""}, + {"FileConn", Func, 0, "func(f *os.File) (c Conn, err error)"}, + {"FileListener", Func, 0, "func(f *os.File) (ln Listener, err error)"}, + {"FilePacketConn", Func, 0, "func(f *os.File) (c PacketConn, err error)"}, + {"FlagBroadcast", Const, 0, ""}, + {"FlagLoopback", Const, 0, ""}, + {"FlagMulticast", Const, 0, ""}, + {"FlagPointToPoint", Const, 0, ""}, + {"FlagRunning", Const, 20, ""}, + {"FlagUp", Const, 0, ""}, + {"Flags", Type, 0, ""}, + {"HardwareAddr", Type, 0, ""}, + {"IP", Type, 0, ""}, + {"IPAddr", Type, 0, ""}, + {"IPAddr.IP", Field, 0, ""}, + {"IPAddr.Zone", Field, 1, ""}, + {"IPConn", Type, 0, ""}, + {"IPMask", Type, 0, ""}, + {"IPNet", Type, 0, ""}, + {"IPNet.IP", Field, 0, ""}, + {"IPNet.Mask", Field, 0, ""}, + {"IPv4", Func, 0, "func(a byte, b byte, c byte, d byte) IP"}, + {"IPv4Mask", Func, 0, "func(a byte, b byte, c byte, d byte) IPMask"}, + {"IPv4allrouter", Var, 0, ""}, + {"IPv4allsys", Var, 0, ""}, + {"IPv4bcast", Var, 0, ""}, + {"IPv4len", Const, 0, ""}, + {"IPv4zero", Var, 0, ""}, + {"IPv6interfacelocalallnodes", Var, 0, ""}, + {"IPv6len", Const, 0, ""}, + {"IPv6linklocalallnodes", Var, 0, ""}, + {"IPv6linklocalallrouters", Var, 0, ""}, + {"IPv6loopback", Var, 0, ""}, + {"IPv6unspecified", Var, 0, ""}, + {"IPv6zero", Var, 0, ""}, + {"Interface", Type, 0, ""}, + {"Interface.Flags", Field, 0, ""}, + {"Interface.HardwareAddr", Field, 0, ""}, + {"Interface.Index", Field, 0, ""}, + {"Interface.MTU", Field, 0, ""}, + {"Interface.Name", Field, 0, ""}, + {"InterfaceAddrs", Func, 0, "func() ([]Addr, error)"}, + {"InterfaceByIndex", Func, 0, "func(index int) (*Interface, error)"}, + {"InterfaceByName", Func, 0, "func(name string) (*Interface, error)"}, + {"Interfaces", Func, 0, "func() ([]Interface, error)"}, + {"InvalidAddrError", Type, 0, ""}, + {"JoinHostPort", Func, 0, "func(host string, port string) string"}, + {"KeepAliveConfig", Type, 23, ""}, + {"KeepAliveConfig.Count", Field, 23, ""}, + {"KeepAliveConfig.Enable", Field, 23, ""}, + {"KeepAliveConfig.Idle", Field, 23, ""}, + {"KeepAliveConfig.Interval", Field, 23, ""}, + {"Listen", Func, 0, "func(network string, address string) (Listener, error)"}, + {"ListenConfig", Type, 11, ""}, + {"ListenConfig.Control", Field, 11, ""}, + {"ListenConfig.KeepAlive", Field, 13, ""}, + {"ListenConfig.KeepAliveConfig", Field, 23, ""}, + {"ListenIP", Func, 0, "func(network string, laddr *IPAddr) (*IPConn, error)"}, + {"ListenMulticastUDP", Func, 0, "func(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)"}, + {"ListenPacket", Func, 0, "func(network string, address string) (PacketConn, error)"}, + {"ListenTCP", Func, 0, "func(network string, laddr *TCPAddr) (*TCPListener, error)"}, + {"ListenUDP", Func, 0, "func(network string, laddr *UDPAddr) (*UDPConn, error)"}, + {"ListenUnix", Func, 0, "func(network string, laddr *UnixAddr) (*UnixListener, error)"}, + {"ListenUnixgram", Func, 0, "func(network string, laddr *UnixAddr) (*UnixConn, error)"}, + {"Listener", Type, 0, ""}, + {"LookupAddr", Func, 0, "func(addr string) (names []string, err error)"}, + {"LookupCNAME", Func, 0, "func(host string) (cname string, err error)"}, + {"LookupHost", Func, 0, "func(host string) (addrs []string, err error)"}, + {"LookupIP", Func, 0, "func(host string) ([]IP, error)"}, + {"LookupMX", Func, 0, "func(name string) ([]*MX, error)"}, + {"LookupNS", Func, 1, "func(name string) ([]*NS, error)"}, + {"LookupPort", Func, 0, "func(network string, service string) (port int, err error)"}, + {"LookupSRV", Func, 0, "func(service string, proto string, name string) (cname string, addrs []*SRV, err error)"}, + {"LookupTXT", Func, 0, "func(name string) ([]string, error)"}, + {"MX", Type, 0, ""}, + {"MX.Host", Field, 0, ""}, + {"MX.Pref", Field, 0, ""}, + {"NS", Type, 1, ""}, + {"NS.Host", Field, 1, ""}, + {"OpError", Type, 0, ""}, + {"OpError.Addr", Field, 0, ""}, + {"OpError.Err", Field, 0, ""}, + {"OpError.Net", Field, 0, ""}, + {"OpError.Op", Field, 0, ""}, + {"OpError.Source", Field, 5, ""}, + {"PacketConn", Type, 0, ""}, + {"ParseCIDR", Func, 0, "func(s string) (IP, *IPNet, error)"}, + {"ParseError", Type, 0, ""}, + {"ParseError.Text", Field, 0, ""}, + {"ParseError.Type", Field, 0, ""}, + {"ParseIP", Func, 0, "func(s string) IP"}, + {"ParseMAC", Func, 0, "func(s string) (hw HardwareAddr, err error)"}, + {"Pipe", Func, 0, "func() (Conn, Conn)"}, + {"ResolveIPAddr", Func, 0, "func(network string, address string) (*IPAddr, error)"}, + {"ResolveTCPAddr", Func, 0, "func(network string, address string) (*TCPAddr, error)"}, + {"ResolveUDPAddr", Func, 0, "func(network string, address string) (*UDPAddr, error)"}, + {"ResolveUnixAddr", Func, 0, "func(network string, address string) (*UnixAddr, error)"}, + {"Resolver", Type, 8, ""}, + {"Resolver.Dial", Field, 9, ""}, + {"Resolver.PreferGo", Field, 8, ""}, + {"Resolver.StrictErrors", Field, 9, ""}, + {"SRV", Type, 0, ""}, + {"SRV.Port", Field, 0, ""}, + {"SRV.Priority", Field, 0, ""}, + {"SRV.Target", Field, 0, ""}, + {"SRV.Weight", Field, 0, ""}, + {"SplitHostPort", Func, 0, "func(hostport string) (host string, port string, err error)"}, + {"TCPAddr", Type, 0, ""}, + {"TCPAddr.IP", Field, 0, ""}, + {"TCPAddr.Port", Field, 0, ""}, + {"TCPAddr.Zone", Field, 1, ""}, + {"TCPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *TCPAddr"}, + {"TCPConn", Type, 0, ""}, + {"TCPListener", Type, 0, ""}, + {"UDPAddr", Type, 0, ""}, + {"UDPAddr.IP", Field, 0, ""}, + {"UDPAddr.Port", Field, 0, ""}, + {"UDPAddr.Zone", Field, 1, ""}, + {"UDPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *UDPAddr"}, + {"UDPConn", Type, 0, ""}, + {"UnixAddr", Type, 0, ""}, + {"UnixAddr.Name", Field, 0, ""}, + {"UnixAddr.Net", Field, 0, ""}, + {"UnixConn", Type, 0, ""}, + {"UnixListener", Type, 0, ""}, + {"UnknownNetworkError", Type, 0, ""}, + }, + "net/http": { + {"(*Client).CloseIdleConnections", Method, 12, ""}, + {"(*Client).Do", Method, 0, ""}, + {"(*Client).Get", Method, 0, ""}, + {"(*Client).Head", Method, 0, ""}, + {"(*Client).Post", Method, 0, ""}, + {"(*Client).PostForm", Method, 0, ""}, + {"(*Cookie).String", Method, 0, ""}, + {"(*Cookie).Valid", Method, 18, ""}, + {"(*MaxBytesError).Error", Method, 19, ""}, + {"(*ProtocolError).Error", Method, 0, ""}, + {"(*ProtocolError).Is", Method, 21, ""}, + {"(*Protocols).SetHTTP1", Method, 24, ""}, + {"(*Protocols).SetHTTP2", Method, 24, ""}, + {"(*Protocols).SetUnencryptedHTTP2", Method, 24, ""}, + {"(*Request).AddCookie", Method, 0, ""}, + {"(*Request).BasicAuth", Method, 4, ""}, + {"(*Request).Clone", Method, 13, ""}, + {"(*Request).Context", Method, 7, ""}, + {"(*Request).Cookie", Method, 0, ""}, + {"(*Request).Cookies", Method, 0, ""}, + {"(*Request).CookiesNamed", Method, 23, ""}, + {"(*Request).FormFile", Method, 0, ""}, + {"(*Request).FormValue", Method, 0, ""}, + {"(*Request).MultipartReader", Method, 0, ""}, + {"(*Request).ParseForm", Method, 0, ""}, + {"(*Request).ParseMultipartForm", Method, 0, ""}, + {"(*Request).PathValue", Method, 22, ""}, + {"(*Request).PostFormValue", Method, 1, ""}, + {"(*Request).ProtoAtLeast", Method, 0, ""}, + {"(*Request).Referer", Method, 0, ""}, + {"(*Request).SetBasicAuth", Method, 0, ""}, + {"(*Request).SetPathValue", Method, 22, ""}, + {"(*Request).UserAgent", Method, 0, ""}, + {"(*Request).WithContext", Method, 7, ""}, + {"(*Request).Write", Method, 0, ""}, + {"(*Request).WriteProxy", Method, 0, ""}, + {"(*Response).Cookies", Method, 0, ""}, + {"(*Response).Location", Method, 0, ""}, + {"(*Response).ProtoAtLeast", Method, 0, ""}, + {"(*Response).Write", Method, 0, ""}, + {"(*ResponseController).EnableFullDuplex", Method, 21, ""}, + {"(*ResponseController).Flush", Method, 20, ""}, + {"(*ResponseController).Hijack", Method, 20, ""}, + {"(*ResponseController).SetReadDeadline", Method, 20, ""}, + {"(*ResponseController).SetWriteDeadline", Method, 20, ""}, + {"(*ServeMux).Handle", Method, 0, ""}, + {"(*ServeMux).HandleFunc", Method, 0, ""}, + {"(*ServeMux).Handler", Method, 1, ""}, + {"(*ServeMux).ServeHTTP", Method, 0, ""}, + {"(*Server).Close", Method, 8, ""}, + {"(*Server).ListenAndServe", Method, 0, ""}, + {"(*Server).ListenAndServeTLS", Method, 0, ""}, + {"(*Server).RegisterOnShutdown", Method, 9, ""}, + {"(*Server).Serve", Method, 0, ""}, + {"(*Server).ServeTLS", Method, 9, ""}, + {"(*Server).SetKeepAlivesEnabled", Method, 3, ""}, + {"(*Server).Shutdown", Method, 8, ""}, + {"(*Transport).CancelRequest", Method, 1, ""}, + {"(*Transport).Clone", Method, 13, ""}, + {"(*Transport).CloseIdleConnections", Method, 0, ""}, + {"(*Transport).RegisterProtocol", Method, 0, ""}, + {"(*Transport).RoundTrip", Method, 0, ""}, + {"(ConnState).String", Method, 3, ""}, + {"(Dir).Open", Method, 0, ""}, + {"(HandlerFunc).ServeHTTP", Method, 0, ""}, + {"(Header).Add", Method, 0, ""}, + {"(Header).Clone", Method, 13, ""}, + {"(Header).Del", Method, 0, ""}, + {"(Header).Get", Method, 0, ""}, + {"(Header).Set", Method, 0, ""}, + {"(Header).Values", Method, 14, ""}, + {"(Header).Write", Method, 0, ""}, + {"(Header).WriteSubset", Method, 0, ""}, + {"(Protocols).HTTP1", Method, 24, ""}, + {"(Protocols).HTTP2", Method, 24, ""}, + {"(Protocols).String", Method, 24, ""}, + {"(Protocols).UnencryptedHTTP2", Method, 24, ""}, + {"AllowQuerySemicolons", Func, 17, "func(h Handler) Handler"}, + {"CanonicalHeaderKey", Func, 0, "func(s string) string"}, + {"Client", Type, 0, ""}, + {"Client.CheckRedirect", Field, 0, ""}, + {"Client.Jar", Field, 0, ""}, + {"Client.Timeout", Field, 3, ""}, + {"Client.Transport", Field, 0, ""}, + {"CloseNotifier", Type, 1, ""}, + {"ConnState", Type, 3, ""}, + {"Cookie", Type, 0, ""}, + {"Cookie.Domain", Field, 0, ""}, + {"Cookie.Expires", Field, 0, ""}, + {"Cookie.HttpOnly", Field, 0, ""}, + {"Cookie.MaxAge", Field, 0, ""}, + {"Cookie.Name", Field, 0, ""}, + {"Cookie.Partitioned", Field, 23, ""}, + {"Cookie.Path", Field, 0, ""}, + {"Cookie.Quoted", Field, 23, ""}, + {"Cookie.Raw", Field, 0, ""}, + {"Cookie.RawExpires", Field, 0, ""}, + {"Cookie.SameSite", Field, 11, ""}, + {"Cookie.Secure", Field, 0, ""}, + {"Cookie.Unparsed", Field, 0, ""}, + {"Cookie.Value", Field, 0, ""}, + {"CookieJar", Type, 0, ""}, + {"DefaultClient", Var, 0, ""}, + {"DefaultMaxHeaderBytes", Const, 0, ""}, + {"DefaultMaxIdleConnsPerHost", Const, 0, ""}, + {"DefaultServeMux", Var, 0, ""}, + {"DefaultTransport", Var, 0, ""}, + {"DetectContentType", Func, 0, "func(data []byte) string"}, + {"Dir", Type, 0, ""}, + {"ErrAbortHandler", Var, 8, ""}, + {"ErrBodyNotAllowed", Var, 0, ""}, + {"ErrBodyReadAfterClose", Var, 0, ""}, + {"ErrContentLength", Var, 0, ""}, + {"ErrHandlerTimeout", Var, 0, ""}, + {"ErrHeaderTooLong", Var, 0, ""}, + {"ErrHijacked", Var, 0, ""}, + {"ErrLineTooLong", Var, 0, ""}, + {"ErrMissingBoundary", Var, 0, ""}, + {"ErrMissingContentLength", Var, 0, ""}, + {"ErrMissingFile", Var, 0, ""}, + {"ErrNoCookie", Var, 0, ""}, + {"ErrNoLocation", Var, 0, ""}, + {"ErrNotMultipart", Var, 0, ""}, + {"ErrNotSupported", Var, 0, ""}, + {"ErrSchemeMismatch", Var, 21, ""}, + {"ErrServerClosed", Var, 8, ""}, + {"ErrShortBody", Var, 0, ""}, + {"ErrSkipAltProtocol", Var, 6, ""}, + {"ErrUnexpectedTrailer", Var, 0, ""}, + {"ErrUseLastResponse", Var, 7, ""}, + {"ErrWriteAfterFlush", Var, 0, ""}, + {"Error", Func, 0, "func(w ResponseWriter, error string, code int)"}, + {"FS", Func, 16, "func(fsys fs.FS) FileSystem"}, + {"File", Type, 0, ""}, + {"FileServer", Func, 0, "func(root FileSystem) Handler"}, + {"FileServerFS", Func, 22, "func(root fs.FS) Handler"}, + {"FileSystem", Type, 0, ""}, + {"Flusher", Type, 0, ""}, + {"Get", Func, 0, "func(url string) (resp *Response, err error)"}, + {"HTTP2Config", Type, 24, ""}, + {"HTTP2Config.CountError", Field, 24, ""}, + {"HTTP2Config.MaxConcurrentStreams", Field, 24, ""}, + {"HTTP2Config.MaxDecoderHeaderTableSize", Field, 24, ""}, + {"HTTP2Config.MaxEncoderHeaderTableSize", Field, 24, ""}, + {"HTTP2Config.MaxReadFrameSize", Field, 24, ""}, + {"HTTP2Config.MaxReceiveBufferPerConnection", Field, 24, ""}, + {"HTTP2Config.MaxReceiveBufferPerStream", Field, 24, ""}, + {"HTTP2Config.PermitProhibitedCipherSuites", Field, 24, ""}, + {"HTTP2Config.PingTimeout", Field, 24, ""}, + {"HTTP2Config.SendPingTimeout", Field, 24, ""}, + {"HTTP2Config.WriteByteTimeout", Field, 24, ""}, + {"Handle", Func, 0, "func(pattern string, handler Handler)"}, + {"HandleFunc", Func, 0, "func(pattern string, handler func(ResponseWriter, *Request))"}, + {"Handler", Type, 0, ""}, + {"HandlerFunc", Type, 0, ""}, + {"Head", Func, 0, "func(url string) (resp *Response, err error)"}, + {"Header", Type, 0, ""}, + {"Hijacker", Type, 0, ""}, + {"ListenAndServe", Func, 0, "func(addr string, handler Handler) error"}, + {"ListenAndServeTLS", Func, 0, "func(addr string, certFile string, keyFile string, handler Handler) error"}, + {"LocalAddrContextKey", Var, 7, ""}, + {"MaxBytesError", Type, 19, ""}, + {"MaxBytesError.Limit", Field, 19, ""}, + {"MaxBytesHandler", Func, 18, "func(h Handler, n int64) Handler"}, + {"MaxBytesReader", Func, 0, "func(w ResponseWriter, r io.ReadCloser, n int64) io.ReadCloser"}, + {"MethodConnect", Const, 6, ""}, + {"MethodDelete", Const, 6, ""}, + {"MethodGet", Const, 6, ""}, + {"MethodHead", Const, 6, ""}, + {"MethodOptions", Const, 6, ""}, + {"MethodPatch", Const, 6, ""}, + {"MethodPost", Const, 6, ""}, + {"MethodPut", Const, 6, ""}, + {"MethodTrace", Const, 6, ""}, + {"NewFileTransport", Func, 0, "func(fs FileSystem) RoundTripper"}, + {"NewFileTransportFS", Func, 22, "func(fsys fs.FS) RoundTripper"}, + {"NewRequest", Func, 0, "func(method string, url string, body io.Reader) (*Request, error)"}, + {"NewRequestWithContext", Func, 13, "func(ctx context.Context, method string, url string, body io.Reader) (*Request, error)"}, + {"NewResponseController", Func, 20, "func(rw ResponseWriter) *ResponseController"}, + {"NewServeMux", Func, 0, "func() *ServeMux"}, + {"NoBody", Var, 8, ""}, + {"NotFound", Func, 0, "func(w ResponseWriter, r *Request)"}, + {"NotFoundHandler", Func, 0, "func() Handler"}, + {"ParseCookie", Func, 23, "func(line string) ([]*Cookie, error)"}, + {"ParseHTTPVersion", Func, 0, "func(vers string) (major int, minor int, ok bool)"}, + {"ParseSetCookie", Func, 23, "func(line string) (*Cookie, error)"}, + {"ParseTime", Func, 1, "func(text string) (t time.Time, err error)"}, + {"Post", Func, 0, "func(url string, contentType string, body io.Reader) (resp *Response, err error)"}, + {"PostForm", Func, 0, "func(url string, data url.Values) (resp *Response, err error)"}, + {"ProtocolError", Type, 0, ""}, + {"ProtocolError.ErrorString", Field, 0, ""}, + {"Protocols", Type, 24, ""}, + {"ProxyFromEnvironment", Func, 0, "func(req *Request) (*url.URL, error)"}, + {"ProxyURL", Func, 0, "func(fixedURL *url.URL) func(*Request) (*url.URL, error)"}, + {"PushOptions", Type, 8, ""}, + {"PushOptions.Header", Field, 8, ""}, + {"PushOptions.Method", Field, 8, ""}, + {"Pusher", Type, 8, ""}, + {"ReadRequest", Func, 0, "func(b *bufio.Reader) (*Request, error)"}, + {"ReadResponse", Func, 0, "func(r *bufio.Reader, req *Request) (*Response, error)"}, + {"Redirect", Func, 0, "func(w ResponseWriter, r *Request, url string, code int)"}, + {"RedirectHandler", Func, 0, "func(url string, code int) Handler"}, + {"Request", Type, 0, ""}, + {"Request.Body", Field, 0, ""}, + {"Request.Cancel", Field, 5, ""}, + {"Request.Close", Field, 0, ""}, + {"Request.ContentLength", Field, 0, ""}, + {"Request.Form", Field, 0, ""}, + {"Request.GetBody", Field, 8, ""}, + {"Request.Header", Field, 0, ""}, + {"Request.Host", Field, 0, ""}, + {"Request.Method", Field, 0, ""}, + {"Request.MultipartForm", Field, 0, ""}, + {"Request.Pattern", Field, 23, ""}, + {"Request.PostForm", Field, 1, ""}, + {"Request.Proto", Field, 0, ""}, + {"Request.ProtoMajor", Field, 0, ""}, + {"Request.ProtoMinor", Field, 0, ""}, + {"Request.RemoteAddr", Field, 0, ""}, + {"Request.RequestURI", Field, 0, ""}, + {"Request.Response", Field, 7, ""}, + {"Request.TLS", Field, 0, ""}, + {"Request.Trailer", Field, 0, ""}, + {"Request.TransferEncoding", Field, 0, ""}, + {"Request.URL", Field, 0, ""}, + {"Response", Type, 0, ""}, + {"Response.Body", Field, 0, ""}, + {"Response.Close", Field, 0, ""}, + {"Response.ContentLength", Field, 0, ""}, + {"Response.Header", Field, 0, ""}, + {"Response.Proto", Field, 0, ""}, + {"Response.ProtoMajor", Field, 0, ""}, + {"Response.ProtoMinor", Field, 0, ""}, + {"Response.Request", Field, 0, ""}, + {"Response.Status", Field, 0, ""}, + {"Response.StatusCode", Field, 0, ""}, + {"Response.TLS", Field, 3, ""}, + {"Response.Trailer", Field, 0, ""}, + {"Response.TransferEncoding", Field, 0, ""}, + {"Response.Uncompressed", Field, 7, ""}, + {"ResponseController", Type, 20, ""}, + {"ResponseWriter", Type, 0, ""}, + {"RoundTripper", Type, 0, ""}, + {"SameSite", Type, 11, ""}, + {"SameSiteDefaultMode", Const, 11, ""}, + {"SameSiteLaxMode", Const, 11, ""}, + {"SameSiteNoneMode", Const, 13, ""}, + {"SameSiteStrictMode", Const, 11, ""}, + {"Serve", Func, 0, "func(l net.Listener, handler Handler) error"}, + {"ServeContent", Func, 0, "func(w ResponseWriter, req *Request, name string, modtime time.Time, content io.ReadSeeker)"}, + {"ServeFile", Func, 0, "func(w ResponseWriter, r *Request, name string)"}, + {"ServeFileFS", Func, 22, "func(w ResponseWriter, r *Request, fsys fs.FS, name string)"}, + {"ServeMux", Type, 0, ""}, + {"ServeTLS", Func, 9, "func(l net.Listener, handler Handler, certFile string, keyFile string) error"}, + {"Server", Type, 0, ""}, + {"Server.Addr", Field, 0, ""}, + {"Server.BaseContext", Field, 13, ""}, + {"Server.ConnContext", Field, 13, ""}, + {"Server.ConnState", Field, 3, ""}, + {"Server.DisableGeneralOptionsHandler", Field, 20, ""}, + {"Server.ErrorLog", Field, 3, ""}, + {"Server.HTTP2", Field, 24, ""}, + {"Server.Handler", Field, 0, ""}, + {"Server.IdleTimeout", Field, 8, ""}, + {"Server.MaxHeaderBytes", Field, 0, ""}, + {"Server.Protocols", Field, 24, ""}, + {"Server.ReadHeaderTimeout", Field, 8, ""}, + {"Server.ReadTimeout", Field, 0, ""}, + {"Server.TLSConfig", Field, 0, ""}, + {"Server.TLSNextProto", Field, 1, ""}, + {"Server.WriteTimeout", Field, 0, ""}, + {"ServerContextKey", Var, 7, ""}, + {"SetCookie", Func, 0, "func(w ResponseWriter, cookie *Cookie)"}, + {"StateActive", Const, 3, ""}, + {"StateClosed", Const, 3, ""}, + {"StateHijacked", Const, 3, ""}, + {"StateIdle", Const, 3, ""}, + {"StateNew", Const, 3, ""}, + {"StatusAccepted", Const, 0, ""}, + {"StatusAlreadyReported", Const, 7, ""}, + {"StatusBadGateway", Const, 0, ""}, + {"StatusBadRequest", Const, 0, ""}, + {"StatusConflict", Const, 0, ""}, + {"StatusContinue", Const, 0, ""}, + {"StatusCreated", Const, 0, ""}, + {"StatusEarlyHints", Const, 13, ""}, + {"StatusExpectationFailed", Const, 0, ""}, + {"StatusFailedDependency", Const, 7, ""}, + {"StatusForbidden", Const, 0, ""}, + {"StatusFound", Const, 0, ""}, + {"StatusGatewayTimeout", Const, 0, ""}, + {"StatusGone", Const, 0, ""}, + {"StatusHTTPVersionNotSupported", Const, 0, ""}, + {"StatusIMUsed", Const, 7, ""}, + {"StatusInsufficientStorage", Const, 7, ""}, + {"StatusInternalServerError", Const, 0, ""}, + {"StatusLengthRequired", Const, 0, ""}, + {"StatusLocked", Const, 7, ""}, + {"StatusLoopDetected", Const, 7, ""}, + {"StatusMethodNotAllowed", Const, 0, ""}, + {"StatusMisdirectedRequest", Const, 11, ""}, + {"StatusMovedPermanently", Const, 0, ""}, + {"StatusMultiStatus", Const, 7, ""}, + {"StatusMultipleChoices", Const, 0, ""}, + {"StatusNetworkAuthenticationRequired", Const, 6, ""}, + {"StatusNoContent", Const, 0, ""}, + {"StatusNonAuthoritativeInfo", Const, 0, ""}, + {"StatusNotAcceptable", Const, 0, ""}, + {"StatusNotExtended", Const, 7, ""}, + {"StatusNotFound", Const, 0, ""}, + {"StatusNotImplemented", Const, 0, ""}, + {"StatusNotModified", Const, 0, ""}, + {"StatusOK", Const, 0, ""}, + {"StatusPartialContent", Const, 0, ""}, + {"StatusPaymentRequired", Const, 0, ""}, + {"StatusPermanentRedirect", Const, 7, ""}, + {"StatusPreconditionFailed", Const, 0, ""}, + {"StatusPreconditionRequired", Const, 6, ""}, + {"StatusProcessing", Const, 7, ""}, + {"StatusProxyAuthRequired", Const, 0, ""}, + {"StatusRequestEntityTooLarge", Const, 0, ""}, + {"StatusRequestHeaderFieldsTooLarge", Const, 6, ""}, + {"StatusRequestTimeout", Const, 0, ""}, + {"StatusRequestURITooLong", Const, 0, ""}, + {"StatusRequestedRangeNotSatisfiable", Const, 0, ""}, + {"StatusResetContent", Const, 0, ""}, + {"StatusSeeOther", Const, 0, ""}, + {"StatusServiceUnavailable", Const, 0, ""}, + {"StatusSwitchingProtocols", Const, 0, ""}, + {"StatusTeapot", Const, 0, ""}, + {"StatusTemporaryRedirect", Const, 0, ""}, + {"StatusText", Func, 0, "func(code int) string"}, + {"StatusTooEarly", Const, 12, ""}, + {"StatusTooManyRequests", Const, 6, ""}, + {"StatusUnauthorized", Const, 0, ""}, + {"StatusUnavailableForLegalReasons", Const, 6, ""}, + {"StatusUnprocessableEntity", Const, 7, ""}, + {"StatusUnsupportedMediaType", Const, 0, ""}, + {"StatusUpgradeRequired", Const, 7, ""}, + {"StatusUseProxy", Const, 0, ""}, + {"StatusVariantAlsoNegotiates", Const, 7, ""}, + {"StripPrefix", Func, 0, "func(prefix string, h Handler) Handler"}, + {"TimeFormat", Const, 0, ""}, + {"TimeoutHandler", Func, 0, "func(h Handler, dt time.Duration, msg string) Handler"}, + {"TrailerPrefix", Const, 8, ""}, + {"Transport", Type, 0, ""}, + {"Transport.Dial", Field, 0, ""}, + {"Transport.DialContext", Field, 7, ""}, + {"Transport.DialTLS", Field, 4, ""}, + {"Transport.DialTLSContext", Field, 14, ""}, + {"Transport.DisableCompression", Field, 0, ""}, + {"Transport.DisableKeepAlives", Field, 0, ""}, + {"Transport.ExpectContinueTimeout", Field, 6, ""}, + {"Transport.ForceAttemptHTTP2", Field, 13, ""}, + {"Transport.GetProxyConnectHeader", Field, 16, ""}, + {"Transport.HTTP2", Field, 24, ""}, + {"Transport.IdleConnTimeout", Field, 7, ""}, + {"Transport.MaxConnsPerHost", Field, 11, ""}, + {"Transport.MaxIdleConns", Field, 7, ""}, + {"Transport.MaxIdleConnsPerHost", Field, 0, ""}, + {"Transport.MaxResponseHeaderBytes", Field, 7, ""}, + {"Transport.OnProxyConnectResponse", Field, 20, ""}, + {"Transport.Protocols", Field, 24, ""}, + {"Transport.Proxy", Field, 0, ""}, + {"Transport.ProxyConnectHeader", Field, 8, ""}, + {"Transport.ReadBufferSize", Field, 13, ""}, + {"Transport.ResponseHeaderTimeout", Field, 1, ""}, + {"Transport.TLSClientConfig", Field, 0, ""}, + {"Transport.TLSHandshakeTimeout", Field, 3, ""}, + {"Transport.TLSNextProto", Field, 6, ""}, + {"Transport.WriteBufferSize", Field, 13, ""}, + }, + "net/http/cgi": { + {"(*Handler).ServeHTTP", Method, 0, ""}, + {"Handler", Type, 0, ""}, + {"Handler.Args", Field, 0, ""}, + {"Handler.Dir", Field, 0, ""}, + {"Handler.Env", Field, 0, ""}, + {"Handler.InheritEnv", Field, 0, ""}, + {"Handler.Logger", Field, 0, ""}, + {"Handler.Path", Field, 0, ""}, + {"Handler.PathLocationHandler", Field, 0, ""}, + {"Handler.Root", Field, 0, ""}, + {"Handler.Stderr", Field, 7, ""}, + {"Request", Func, 0, "func() (*http.Request, error)"}, + {"RequestFromMap", Func, 0, "func(params map[string]string) (*http.Request, error)"}, + {"Serve", Func, 0, "func(handler http.Handler) error"}, + }, + "net/http/cookiejar": { + {"(*Jar).Cookies", Method, 1, ""}, + {"(*Jar).SetCookies", Method, 1, ""}, + {"Jar", Type, 1, ""}, + {"New", Func, 1, "func(o *Options) (*Jar, error)"}, + {"Options", Type, 1, ""}, + {"Options.PublicSuffixList", Field, 1, ""}, + {"PublicSuffixList", Type, 1, ""}, + }, + "net/http/fcgi": { + {"ErrConnClosed", Var, 5, ""}, + {"ErrRequestAborted", Var, 5, ""}, + {"ProcessEnv", Func, 9, "func(r *http.Request) map[string]string"}, + {"Serve", Func, 0, "func(l net.Listener, handler http.Handler) error"}, + }, + "net/http/httptest": { + {"(*ResponseRecorder).Flush", Method, 0, ""}, + {"(*ResponseRecorder).Header", Method, 0, ""}, + {"(*ResponseRecorder).Result", Method, 7, ""}, + {"(*ResponseRecorder).Write", Method, 0, ""}, + {"(*ResponseRecorder).WriteHeader", Method, 0, ""}, + {"(*ResponseRecorder).WriteString", Method, 6, ""}, + {"(*Server).Certificate", Method, 9, ""}, + {"(*Server).Client", Method, 9, ""}, + {"(*Server).Close", Method, 0, ""}, + {"(*Server).CloseClientConnections", Method, 0, ""}, + {"(*Server).Start", Method, 0, ""}, + {"(*Server).StartTLS", Method, 0, ""}, + {"DefaultRemoteAddr", Const, 0, ""}, + {"NewRecorder", Func, 0, "func() *ResponseRecorder"}, + {"NewRequest", Func, 7, "func(method string, target string, body io.Reader) *http.Request"}, + {"NewRequestWithContext", Func, 23, "func(ctx context.Context, method string, target string, body io.Reader) *http.Request"}, + {"NewServer", Func, 0, "func(handler http.Handler) *Server"}, + {"NewTLSServer", Func, 0, "func(handler http.Handler) *Server"}, + {"NewUnstartedServer", Func, 0, "func(handler http.Handler) *Server"}, + {"ResponseRecorder", Type, 0, ""}, + {"ResponseRecorder.Body", Field, 0, ""}, + {"ResponseRecorder.Code", Field, 0, ""}, + {"ResponseRecorder.Flushed", Field, 0, ""}, + {"ResponseRecorder.HeaderMap", Field, 0, ""}, + {"Server", Type, 0, ""}, + {"Server.Config", Field, 0, ""}, + {"Server.EnableHTTP2", Field, 14, ""}, + {"Server.Listener", Field, 0, ""}, + {"Server.TLS", Field, 0, ""}, + {"Server.URL", Field, 0, ""}, + }, + "net/http/httptrace": { + {"ClientTrace", Type, 7, ""}, + {"ClientTrace.ConnectDone", Field, 7, ""}, + {"ClientTrace.ConnectStart", Field, 7, ""}, + {"ClientTrace.DNSDone", Field, 7, ""}, + {"ClientTrace.DNSStart", Field, 7, ""}, + {"ClientTrace.GetConn", Field, 7, ""}, + {"ClientTrace.Got100Continue", Field, 7, ""}, + {"ClientTrace.Got1xxResponse", Field, 11, ""}, + {"ClientTrace.GotConn", Field, 7, ""}, + {"ClientTrace.GotFirstResponseByte", Field, 7, ""}, + {"ClientTrace.PutIdleConn", Field, 7, ""}, + {"ClientTrace.TLSHandshakeDone", Field, 8, ""}, + {"ClientTrace.TLSHandshakeStart", Field, 8, ""}, + {"ClientTrace.Wait100Continue", Field, 7, ""}, + {"ClientTrace.WroteHeaderField", Field, 11, ""}, + {"ClientTrace.WroteHeaders", Field, 7, ""}, + {"ClientTrace.WroteRequest", Field, 7, ""}, + {"ContextClientTrace", Func, 7, "func(ctx context.Context) *ClientTrace"}, + {"DNSDoneInfo", Type, 7, ""}, + {"DNSDoneInfo.Addrs", Field, 7, ""}, + {"DNSDoneInfo.Coalesced", Field, 7, ""}, + {"DNSDoneInfo.Err", Field, 7, ""}, + {"DNSStartInfo", Type, 7, ""}, + {"DNSStartInfo.Host", Field, 7, ""}, + {"GotConnInfo", Type, 7, ""}, + {"GotConnInfo.Conn", Field, 7, ""}, + {"GotConnInfo.IdleTime", Field, 7, ""}, + {"GotConnInfo.Reused", Field, 7, ""}, + {"GotConnInfo.WasIdle", Field, 7, ""}, + {"WithClientTrace", Func, 7, "func(ctx context.Context, trace *ClientTrace) context.Context"}, + {"WroteRequestInfo", Type, 7, ""}, + {"WroteRequestInfo.Err", Field, 7, ""}, + }, + "net/http/httputil": { + {"(*ClientConn).Close", Method, 0, ""}, + {"(*ClientConn).Do", Method, 0, ""}, + {"(*ClientConn).Hijack", Method, 0, ""}, + {"(*ClientConn).Pending", Method, 0, ""}, + {"(*ClientConn).Read", Method, 0, ""}, + {"(*ClientConn).Write", Method, 0, ""}, + {"(*ProxyRequest).SetURL", Method, 20, ""}, + {"(*ProxyRequest).SetXForwarded", Method, 20, ""}, + {"(*ReverseProxy).ServeHTTP", Method, 0, ""}, + {"(*ServerConn).Close", Method, 0, ""}, + {"(*ServerConn).Hijack", Method, 0, ""}, + {"(*ServerConn).Pending", Method, 0, ""}, + {"(*ServerConn).Read", Method, 0, ""}, + {"(*ServerConn).Write", Method, 0, ""}, + {"BufferPool", Type, 6, ""}, + {"ClientConn", Type, 0, ""}, + {"DumpRequest", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"}, + {"DumpRequestOut", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"}, + {"DumpResponse", Func, 0, "func(resp *http.Response, body bool) ([]byte, error)"}, + {"ErrClosed", Var, 0, ""}, + {"ErrLineTooLong", Var, 0, ""}, + {"ErrPersistEOF", Var, 0, ""}, + {"ErrPipeline", Var, 0, ""}, + {"NewChunkedReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"NewChunkedWriter", Func, 0, "func(w io.Writer) io.WriteCloser"}, + {"NewClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"}, + {"NewProxyClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"}, + {"NewServerConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ServerConn"}, + {"NewSingleHostReverseProxy", Func, 0, "func(target *url.URL) *ReverseProxy"}, + {"ProxyRequest", Type, 20, ""}, + {"ProxyRequest.In", Field, 20, ""}, + {"ProxyRequest.Out", Field, 20, ""}, + {"ReverseProxy", Type, 0, ""}, + {"ReverseProxy.BufferPool", Field, 6, ""}, + {"ReverseProxy.Director", Field, 0, ""}, + {"ReverseProxy.ErrorHandler", Field, 11, ""}, + {"ReverseProxy.ErrorLog", Field, 4, ""}, + {"ReverseProxy.FlushInterval", Field, 0, ""}, + {"ReverseProxy.ModifyResponse", Field, 8, ""}, + {"ReverseProxy.Rewrite", Field, 20, ""}, + {"ReverseProxy.Transport", Field, 0, ""}, + {"ServerConn", Type, 0, ""}, + }, + "net/http/pprof": { + {"Cmdline", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, + {"Handler", Func, 0, "func(name string) http.Handler"}, + {"Index", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, + {"Profile", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, + {"Symbol", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, + {"Trace", Func, 5, "func(w http.ResponseWriter, r *http.Request)"}, + }, + "net/mail": { + {"(*Address).String", Method, 0, ""}, + {"(*AddressParser).Parse", Method, 5, ""}, + {"(*AddressParser).ParseList", Method, 5, ""}, + {"(Header).AddressList", Method, 0, ""}, + {"(Header).Date", Method, 0, ""}, + {"(Header).Get", Method, 0, ""}, + {"Address", Type, 0, ""}, + {"Address.Address", Field, 0, ""}, + {"Address.Name", Field, 0, ""}, + {"AddressParser", Type, 5, ""}, + {"AddressParser.WordDecoder", Field, 5, ""}, + {"ErrHeaderNotPresent", Var, 0, ""}, + {"Header", Type, 0, ""}, + {"Message", Type, 0, ""}, + {"Message.Body", Field, 0, ""}, + {"Message.Header", Field, 0, ""}, + {"ParseAddress", Func, 1, "func(address string) (*Address, error)"}, + {"ParseAddressList", Func, 1, "func(list string) ([]*Address, error)"}, + {"ParseDate", Func, 8, "func(date string) (time.Time, error)"}, + {"ReadMessage", Func, 0, "func(r io.Reader) (msg *Message, err error)"}, + }, + "net/netip": { + {"(*Addr).UnmarshalBinary", Method, 18, ""}, + {"(*Addr).UnmarshalText", Method, 18, ""}, + {"(*AddrPort).UnmarshalBinary", Method, 18, ""}, + {"(*AddrPort).UnmarshalText", Method, 18, ""}, + {"(*Prefix).UnmarshalBinary", Method, 18, ""}, + {"(*Prefix).UnmarshalText", Method, 18, ""}, + {"(Addr).AppendBinary", Method, 24, ""}, + {"(Addr).AppendText", Method, 24, ""}, + {"(Addr).AppendTo", Method, 18, ""}, + {"(Addr).As16", Method, 18, ""}, + {"(Addr).As4", Method, 18, ""}, + {"(Addr).AsSlice", Method, 18, ""}, + {"(Addr).BitLen", Method, 18, ""}, + {"(Addr).Compare", Method, 18, ""}, + {"(Addr).Is4", Method, 18, ""}, + {"(Addr).Is4In6", Method, 18, ""}, + {"(Addr).Is6", Method, 18, ""}, + {"(Addr).IsGlobalUnicast", Method, 18, ""}, + {"(Addr).IsInterfaceLocalMulticast", Method, 18, ""}, + {"(Addr).IsLinkLocalMulticast", Method, 18, ""}, + {"(Addr).IsLinkLocalUnicast", Method, 18, ""}, + {"(Addr).IsLoopback", Method, 18, ""}, + {"(Addr).IsMulticast", Method, 18, ""}, + {"(Addr).IsPrivate", Method, 18, ""}, + {"(Addr).IsUnspecified", Method, 18, ""}, + {"(Addr).IsValid", Method, 18, ""}, + {"(Addr).Less", Method, 18, ""}, + {"(Addr).MarshalBinary", Method, 18, ""}, + {"(Addr).MarshalText", Method, 18, ""}, + {"(Addr).Next", Method, 18, ""}, + {"(Addr).Prefix", Method, 18, ""}, + {"(Addr).Prev", Method, 18, ""}, + {"(Addr).String", Method, 18, ""}, + {"(Addr).StringExpanded", Method, 18, ""}, + {"(Addr).Unmap", Method, 18, ""}, + {"(Addr).WithZone", Method, 18, ""}, + {"(Addr).Zone", Method, 18, ""}, + {"(AddrPort).Addr", Method, 18, ""}, + {"(AddrPort).AppendBinary", Method, 24, ""}, + {"(AddrPort).AppendText", Method, 24, ""}, + {"(AddrPort).AppendTo", Method, 18, ""}, + {"(AddrPort).Compare", Method, 22, ""}, + {"(AddrPort).IsValid", Method, 18, ""}, + {"(AddrPort).MarshalBinary", Method, 18, ""}, + {"(AddrPort).MarshalText", Method, 18, ""}, + {"(AddrPort).Port", Method, 18, ""}, + {"(AddrPort).String", Method, 18, ""}, + {"(Prefix).Addr", Method, 18, ""}, + {"(Prefix).AppendBinary", Method, 24, ""}, + {"(Prefix).AppendText", Method, 24, ""}, + {"(Prefix).AppendTo", Method, 18, ""}, + {"(Prefix).Bits", Method, 18, ""}, + {"(Prefix).Contains", Method, 18, ""}, + {"(Prefix).IsSingleIP", Method, 18, ""}, + {"(Prefix).IsValid", Method, 18, ""}, + {"(Prefix).MarshalBinary", Method, 18, ""}, + {"(Prefix).MarshalText", Method, 18, ""}, + {"(Prefix).Masked", Method, 18, ""}, + {"(Prefix).Overlaps", Method, 18, ""}, + {"(Prefix).String", Method, 18, ""}, + {"Addr", Type, 18, ""}, + {"AddrFrom16", Func, 18, "func(addr [16]byte) Addr"}, + {"AddrFrom4", Func, 18, "func(addr [4]byte) Addr"}, + {"AddrFromSlice", Func, 18, "func(slice []byte) (ip Addr, ok bool)"}, + {"AddrPort", Type, 18, ""}, + {"AddrPortFrom", Func, 18, "func(ip Addr, port uint16) AddrPort"}, + {"IPv4Unspecified", Func, 18, "func() Addr"}, + {"IPv6LinkLocalAllNodes", Func, 18, "func() Addr"}, + {"IPv6LinkLocalAllRouters", Func, 20, "func() Addr"}, + {"IPv6Loopback", Func, 20, "func() Addr"}, + {"IPv6Unspecified", Func, 18, "func() Addr"}, + {"MustParseAddr", Func, 18, "func(s string) Addr"}, + {"MustParseAddrPort", Func, 18, "func(s string) AddrPort"}, + {"MustParsePrefix", Func, 18, "func(s string) Prefix"}, + {"ParseAddr", Func, 18, "func(s string) (Addr, error)"}, + {"ParseAddrPort", Func, 18, "func(s string) (AddrPort, error)"}, + {"ParsePrefix", Func, 18, "func(s string) (Prefix, error)"}, + {"Prefix", Type, 18, ""}, + {"PrefixFrom", Func, 18, "func(ip Addr, bits int) Prefix"}, + }, + "net/rpc": { + {"(*Client).Call", Method, 0, ""}, + {"(*Client).Close", Method, 0, ""}, + {"(*Client).Go", Method, 0, ""}, + {"(*Server).Accept", Method, 0, ""}, + {"(*Server).HandleHTTP", Method, 0, ""}, + {"(*Server).Register", Method, 0, ""}, + {"(*Server).RegisterName", Method, 0, ""}, + {"(*Server).ServeCodec", Method, 0, ""}, + {"(*Server).ServeConn", Method, 0, ""}, + {"(*Server).ServeHTTP", Method, 0, ""}, + {"(*Server).ServeRequest", Method, 0, ""}, + {"(ServerError).Error", Method, 0, ""}, + {"Accept", Func, 0, "func(lis net.Listener)"}, + {"Call", Type, 0, ""}, + {"Call.Args", Field, 0, ""}, + {"Call.Done", Field, 0, ""}, + {"Call.Error", Field, 0, ""}, + {"Call.Reply", Field, 0, ""}, + {"Call.ServiceMethod", Field, 0, ""}, + {"Client", Type, 0, ""}, + {"ClientCodec", Type, 0, ""}, + {"DefaultDebugPath", Const, 0, ""}, + {"DefaultRPCPath", Const, 0, ""}, + {"DefaultServer", Var, 0, ""}, + {"Dial", Func, 0, "func(network string, address string) (*Client, error)"}, + {"DialHTTP", Func, 0, "func(network string, address string) (*Client, error)"}, + {"DialHTTPPath", Func, 0, "func(network string, address string, path string) (*Client, error)"}, + {"ErrShutdown", Var, 0, ""}, + {"HandleHTTP", Func, 0, "func()"}, + {"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *Client"}, + {"NewClientWithCodec", Func, 0, "func(codec ClientCodec) *Client"}, + {"NewServer", Func, 0, "func() *Server"}, + {"Register", Func, 0, "func(rcvr any) error"}, + {"RegisterName", Func, 0, "func(name string, rcvr any) error"}, + {"Request", Type, 0, ""}, + {"Request.Seq", Field, 0, ""}, + {"Request.ServiceMethod", Field, 0, ""}, + {"Response", Type, 0, ""}, + {"Response.Error", Field, 0, ""}, + {"Response.Seq", Field, 0, ""}, + {"Response.ServiceMethod", Field, 0, ""}, + {"ServeCodec", Func, 0, "func(codec ServerCodec)"}, + {"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"}, + {"ServeRequest", Func, 0, "func(codec ServerCodec) error"}, + {"Server", Type, 0, ""}, + {"ServerCodec", Type, 0, ""}, + {"ServerError", Type, 0, ""}, + }, + "net/rpc/jsonrpc": { + {"Dial", Func, 0, "func(network string, address string) (*rpc.Client, error)"}, + {"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *rpc.Client"}, + {"NewClientCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ClientCodec"}, + {"NewServerCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ServerCodec"}, + {"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"}, + }, + "net/smtp": { + {"(*Client).Auth", Method, 0, ""}, + {"(*Client).Close", Method, 2, ""}, + {"(*Client).Data", Method, 0, ""}, + {"(*Client).Extension", Method, 0, ""}, + {"(*Client).Hello", Method, 1, ""}, + {"(*Client).Mail", Method, 0, ""}, + {"(*Client).Noop", Method, 10, ""}, + {"(*Client).Quit", Method, 0, ""}, + {"(*Client).Rcpt", Method, 0, ""}, + {"(*Client).Reset", Method, 0, ""}, + {"(*Client).StartTLS", Method, 0, ""}, + {"(*Client).TLSConnectionState", Method, 5, ""}, + {"(*Client).Verify", Method, 0, ""}, + {"Auth", Type, 0, ""}, + {"CRAMMD5Auth", Func, 0, "func(username string, secret string) Auth"}, + {"Client", Type, 0, ""}, + {"Client.Text", Field, 0, ""}, + {"Dial", Func, 0, "func(addr string) (*Client, error)"}, + {"NewClient", Func, 0, "func(conn net.Conn, host string) (*Client, error)"}, + {"PlainAuth", Func, 0, "func(identity string, username string, password string, host string) Auth"}, + {"SendMail", Func, 0, "func(addr string, a Auth, from string, to []string, msg []byte) error"}, + {"ServerInfo", Type, 0, ""}, + {"ServerInfo.Auth", Field, 0, ""}, + {"ServerInfo.Name", Field, 0, ""}, + {"ServerInfo.TLS", Field, 0, ""}, + }, + "net/textproto": { + {"(*Conn).Close", Method, 0, ""}, + {"(*Conn).Cmd", Method, 0, ""}, + {"(*Conn).DotReader", Method, 0, ""}, + {"(*Conn).DotWriter", Method, 0, ""}, + {"(*Conn).EndRequest", Method, 0, ""}, + {"(*Conn).EndResponse", Method, 0, ""}, + {"(*Conn).Next", Method, 0, ""}, + {"(*Conn).PrintfLine", Method, 0, ""}, + {"(*Conn).ReadCodeLine", Method, 0, ""}, + {"(*Conn).ReadContinuedLine", Method, 0, ""}, + {"(*Conn).ReadContinuedLineBytes", Method, 0, ""}, + {"(*Conn).ReadDotBytes", Method, 0, ""}, + {"(*Conn).ReadDotLines", Method, 0, ""}, + {"(*Conn).ReadLine", Method, 0, ""}, + {"(*Conn).ReadLineBytes", Method, 0, ""}, + {"(*Conn).ReadMIMEHeader", Method, 0, ""}, + {"(*Conn).ReadResponse", Method, 0, ""}, + {"(*Conn).StartRequest", Method, 0, ""}, + {"(*Conn).StartResponse", Method, 0, ""}, + {"(*Error).Error", Method, 0, ""}, + {"(*Pipeline).EndRequest", Method, 0, ""}, + {"(*Pipeline).EndResponse", Method, 0, ""}, + {"(*Pipeline).Next", Method, 0, ""}, + {"(*Pipeline).StartRequest", Method, 0, ""}, + {"(*Pipeline).StartResponse", Method, 0, ""}, + {"(*Reader).DotReader", Method, 0, ""}, + {"(*Reader).ReadCodeLine", Method, 0, ""}, + {"(*Reader).ReadContinuedLine", Method, 0, ""}, + {"(*Reader).ReadContinuedLineBytes", Method, 0, ""}, + {"(*Reader).ReadDotBytes", Method, 0, ""}, + {"(*Reader).ReadDotLines", Method, 0, ""}, + {"(*Reader).ReadLine", Method, 0, ""}, + {"(*Reader).ReadLineBytes", Method, 0, ""}, + {"(*Reader).ReadMIMEHeader", Method, 0, ""}, + {"(*Reader).ReadResponse", Method, 0, ""}, + {"(*Writer).DotWriter", Method, 0, ""}, + {"(*Writer).PrintfLine", Method, 0, ""}, + {"(MIMEHeader).Add", Method, 0, ""}, + {"(MIMEHeader).Del", Method, 0, ""}, + {"(MIMEHeader).Get", Method, 0, ""}, + {"(MIMEHeader).Set", Method, 0, ""}, + {"(MIMEHeader).Values", Method, 14, ""}, + {"(ProtocolError).Error", Method, 0, ""}, + {"CanonicalMIMEHeaderKey", Func, 0, "func(s string) string"}, + {"Conn", Type, 0, ""}, + {"Conn.Pipeline", Field, 0, ""}, + {"Conn.Reader", Field, 0, ""}, + {"Conn.Writer", Field, 0, ""}, + {"Dial", Func, 0, "func(network string, addr string) (*Conn, error)"}, + {"Error", Type, 0, ""}, + {"Error.Code", Field, 0, ""}, + {"Error.Msg", Field, 0, ""}, + {"MIMEHeader", Type, 0, ""}, + {"NewConn", Func, 0, "func(conn io.ReadWriteCloser) *Conn"}, + {"NewReader", Func, 0, "func(r *bufio.Reader) *Reader"}, + {"NewWriter", Func, 0, "func(w *bufio.Writer) *Writer"}, + {"Pipeline", Type, 0, ""}, + {"ProtocolError", Type, 0, ""}, + {"Reader", Type, 0, ""}, + {"Reader.R", Field, 0, ""}, + {"TrimBytes", Func, 1, "func(b []byte) []byte"}, + {"TrimString", Func, 1, "func(s string) string"}, + {"Writer", Type, 0, ""}, + {"Writer.W", Field, 0, ""}, + }, + "net/url": { + {"(*Error).Error", Method, 0, ""}, + {"(*Error).Temporary", Method, 6, ""}, + {"(*Error).Timeout", Method, 6, ""}, + {"(*Error).Unwrap", Method, 13, ""}, + {"(*URL).AppendBinary", Method, 24, ""}, + {"(*URL).EscapedFragment", Method, 15, ""}, + {"(*URL).EscapedPath", Method, 5, ""}, + {"(*URL).Hostname", Method, 8, ""}, + {"(*URL).IsAbs", Method, 0, ""}, + {"(*URL).JoinPath", Method, 19, ""}, + {"(*URL).MarshalBinary", Method, 8, ""}, + {"(*URL).Parse", Method, 0, ""}, + {"(*URL).Port", Method, 8, ""}, + {"(*URL).Query", Method, 0, ""}, + {"(*URL).Redacted", Method, 15, ""}, + {"(*URL).RequestURI", Method, 0, ""}, + {"(*URL).ResolveReference", Method, 0, ""}, + {"(*URL).String", Method, 0, ""}, + {"(*URL).UnmarshalBinary", Method, 8, ""}, + {"(*Userinfo).Password", Method, 0, ""}, + {"(*Userinfo).String", Method, 0, ""}, + {"(*Userinfo).Username", Method, 0, ""}, + {"(EscapeError).Error", Method, 0, ""}, + {"(InvalidHostError).Error", Method, 6, ""}, + {"(Values).Add", Method, 0, ""}, + {"(Values).Del", Method, 0, ""}, + {"(Values).Encode", Method, 0, ""}, + {"(Values).Get", Method, 0, ""}, + {"(Values).Has", Method, 17, ""}, + {"(Values).Set", Method, 0, ""}, + {"Error", Type, 0, ""}, + {"Error.Err", Field, 0, ""}, + {"Error.Op", Field, 0, ""}, + {"Error.URL", Field, 0, ""}, + {"EscapeError", Type, 0, ""}, + {"InvalidHostError", Type, 6, ""}, + {"JoinPath", Func, 19, "func(base string, elem ...string) (result string, err error)"}, + {"Parse", Func, 0, "func(rawURL string) (*URL, error)"}, + {"ParseQuery", Func, 0, "func(query string) (Values, error)"}, + {"ParseRequestURI", Func, 0, "func(rawURL string) (*URL, error)"}, + {"PathEscape", Func, 8, "func(s string) string"}, + {"PathUnescape", Func, 8, "func(s string) (string, error)"}, + {"QueryEscape", Func, 0, "func(s string) string"}, + {"QueryUnescape", Func, 0, "func(s string) (string, error)"}, + {"URL", Type, 0, ""}, + {"URL.ForceQuery", Field, 7, ""}, + {"URL.Fragment", Field, 0, ""}, + {"URL.Host", Field, 0, ""}, + {"URL.OmitHost", Field, 19, ""}, + {"URL.Opaque", Field, 0, ""}, + {"URL.Path", Field, 0, ""}, + {"URL.RawFragment", Field, 15, ""}, + {"URL.RawPath", Field, 5, ""}, + {"URL.RawQuery", Field, 0, ""}, + {"URL.Scheme", Field, 0, ""}, + {"URL.User", Field, 0, ""}, + {"User", Func, 0, "func(username string) *Userinfo"}, + {"UserPassword", Func, 0, "func(username string, password string) *Userinfo"}, + {"Userinfo", Type, 0, ""}, + {"Values", Type, 0, ""}, + }, + "os": { + {"(*File).Chdir", Method, 0, ""}, + {"(*File).Chmod", Method, 0, ""}, + {"(*File).Chown", Method, 0, ""}, + {"(*File).Close", Method, 0, ""}, + {"(*File).Fd", Method, 0, ""}, + {"(*File).Name", Method, 0, ""}, + {"(*File).Read", Method, 0, ""}, + {"(*File).ReadAt", Method, 0, ""}, + {"(*File).ReadDir", Method, 16, ""}, + {"(*File).ReadFrom", Method, 15, ""}, + {"(*File).Readdir", Method, 0, ""}, + {"(*File).Readdirnames", Method, 0, ""}, + {"(*File).Seek", Method, 0, ""}, + {"(*File).SetDeadline", Method, 10, ""}, + {"(*File).SetReadDeadline", Method, 10, ""}, + {"(*File).SetWriteDeadline", Method, 10, ""}, + {"(*File).Stat", Method, 0, ""}, + {"(*File).Sync", Method, 0, ""}, + {"(*File).SyscallConn", Method, 12, ""}, + {"(*File).Truncate", Method, 0, ""}, + {"(*File).Write", Method, 0, ""}, + {"(*File).WriteAt", Method, 0, ""}, + {"(*File).WriteString", Method, 0, ""}, + {"(*File).WriteTo", Method, 22, ""}, + {"(*LinkError).Error", Method, 0, ""}, + {"(*LinkError).Unwrap", Method, 13, ""}, + {"(*PathError).Error", Method, 0, ""}, + {"(*PathError).Timeout", Method, 10, ""}, + {"(*PathError).Unwrap", Method, 13, ""}, + {"(*Process).Kill", Method, 0, ""}, + {"(*Process).Release", Method, 0, ""}, + {"(*Process).Signal", Method, 0, ""}, + {"(*Process).Wait", Method, 0, ""}, + {"(*ProcessState).ExitCode", Method, 12, ""}, + {"(*ProcessState).Exited", Method, 0, ""}, + {"(*ProcessState).Pid", Method, 0, ""}, + {"(*ProcessState).String", Method, 0, ""}, + {"(*ProcessState).Success", Method, 0, ""}, + {"(*ProcessState).Sys", Method, 0, ""}, + {"(*ProcessState).SysUsage", Method, 0, ""}, + {"(*ProcessState).SystemTime", Method, 0, ""}, + {"(*ProcessState).UserTime", Method, 0, ""}, + {"(*Root).Chmod", Method, 25, ""}, + {"(*Root).Chown", Method, 25, ""}, + {"(*Root).Chtimes", Method, 25, ""}, + {"(*Root).Close", Method, 24, ""}, + {"(*Root).Create", Method, 24, ""}, + {"(*Root).FS", Method, 24, ""}, + {"(*Root).Lchown", Method, 25, ""}, + {"(*Root).Link", Method, 25, ""}, + {"(*Root).Lstat", Method, 24, ""}, + {"(*Root).Mkdir", Method, 24, ""}, + {"(*Root).Name", Method, 24, ""}, + {"(*Root).Open", Method, 24, ""}, + {"(*Root).OpenFile", Method, 24, ""}, + {"(*Root).OpenRoot", Method, 24, ""}, + {"(*Root).Readlink", Method, 25, ""}, + {"(*Root).Remove", Method, 24, ""}, + {"(*Root).Rename", Method, 25, ""}, + {"(*Root).Stat", Method, 24, ""}, + {"(*Root).Symlink", Method, 25, ""}, + {"(*SyscallError).Error", Method, 0, ""}, + {"(*SyscallError).Timeout", Method, 10, ""}, + {"(*SyscallError).Unwrap", Method, 13, ""}, + {"(FileMode).IsDir", Method, 0, ""}, + {"(FileMode).IsRegular", Method, 1, ""}, + {"(FileMode).Perm", Method, 0, ""}, + {"(FileMode).String", Method, 0, ""}, + {"Args", Var, 0, ""}, + {"Chdir", Func, 0, "func(dir string) error"}, + {"Chmod", Func, 0, "func(name string, mode FileMode) error"}, + {"Chown", Func, 0, "func(name string, uid int, gid int) error"}, + {"Chtimes", Func, 0, "func(name string, atime time.Time, mtime time.Time) error"}, + {"Clearenv", Func, 0, "func()"}, + {"CopyFS", Func, 23, "func(dir string, fsys fs.FS) error"}, + {"Create", Func, 0, "func(name string) (*File, error)"}, + {"CreateTemp", Func, 16, "func(dir string, pattern string) (*File, error)"}, + {"DevNull", Const, 0, ""}, + {"DirEntry", Type, 16, ""}, + {"DirFS", Func, 16, "func(dir string) fs.FS"}, + {"Environ", Func, 0, "func() []string"}, + {"ErrClosed", Var, 8, ""}, + {"ErrDeadlineExceeded", Var, 15, ""}, + {"ErrExist", Var, 0, ""}, + {"ErrInvalid", Var, 0, ""}, + {"ErrNoDeadline", Var, 10, ""}, + {"ErrNotExist", Var, 0, ""}, + {"ErrPermission", Var, 0, ""}, + {"ErrProcessDone", Var, 16, ""}, + {"Executable", Func, 8, "func() (string, error)"}, + {"Exit", Func, 0, "func(code int)"}, + {"Expand", Func, 0, "func(s string, mapping func(string) string) string"}, + {"ExpandEnv", Func, 0, "func(s string) string"}, + {"File", Type, 0, ""}, + {"FileInfo", Type, 0, ""}, + {"FileMode", Type, 0, ""}, + {"FindProcess", Func, 0, "func(pid int) (*Process, error)"}, + {"Getegid", Func, 0, "func() int"}, + {"Getenv", Func, 0, "func(key string) string"}, + {"Geteuid", Func, 0, "func() int"}, + {"Getgid", Func, 0, "func() int"}, + {"Getgroups", Func, 0, "func() ([]int, error)"}, + {"Getpagesize", Func, 0, "func() int"}, + {"Getpid", Func, 0, "func() int"}, + {"Getppid", Func, 0, "func() int"}, + {"Getuid", Func, 0, "func() int"}, + {"Getwd", Func, 0, "func() (dir string, err error)"}, + {"Hostname", Func, 0, "func() (name string, err error)"}, + {"Interrupt", Var, 0, ""}, + {"IsExist", Func, 0, "func(err error) bool"}, + {"IsNotExist", Func, 0, "func(err error) bool"}, + {"IsPathSeparator", Func, 0, "func(c uint8) bool"}, + {"IsPermission", Func, 0, "func(err error) bool"}, + {"IsTimeout", Func, 10, "func(err error) bool"}, + {"Kill", Var, 0, ""}, + {"Lchown", Func, 0, "func(name string, uid int, gid int) error"}, + {"Link", Func, 0, "func(oldname string, newname string) error"}, + {"LinkError", Type, 0, ""}, + {"LinkError.Err", Field, 0, ""}, + {"LinkError.New", Field, 0, ""}, + {"LinkError.Old", Field, 0, ""}, + {"LinkError.Op", Field, 0, ""}, + {"LookupEnv", Func, 5, "func(key string) (string, bool)"}, + {"Lstat", Func, 0, "func(name string) (FileInfo, error)"}, + {"Mkdir", Func, 0, "func(name string, perm FileMode) error"}, + {"MkdirAll", Func, 0, "func(path string, perm FileMode) error"}, + {"MkdirTemp", Func, 16, "func(dir string, pattern string) (string, error)"}, + {"ModeAppend", Const, 0, ""}, + {"ModeCharDevice", Const, 0, ""}, + {"ModeDevice", Const, 0, ""}, + {"ModeDir", Const, 0, ""}, + {"ModeExclusive", Const, 0, ""}, + {"ModeIrregular", Const, 11, ""}, + {"ModeNamedPipe", Const, 0, ""}, + {"ModePerm", Const, 0, ""}, + {"ModeSetgid", Const, 0, ""}, + {"ModeSetuid", Const, 0, ""}, + {"ModeSocket", Const, 0, ""}, + {"ModeSticky", Const, 0, ""}, + {"ModeSymlink", Const, 0, ""}, + {"ModeTemporary", Const, 0, ""}, + {"ModeType", Const, 0, ""}, + {"NewFile", Func, 0, "func(fd uintptr, name string) *File"}, + {"NewSyscallError", Func, 0, "func(syscall string, err error) error"}, + {"O_APPEND", Const, 0, ""}, + {"O_CREATE", Const, 0, ""}, + {"O_EXCL", Const, 0, ""}, + {"O_RDONLY", Const, 0, ""}, + {"O_RDWR", Const, 0, ""}, + {"O_SYNC", Const, 0, ""}, + {"O_TRUNC", Const, 0, ""}, + {"O_WRONLY", Const, 0, ""}, + {"Open", Func, 0, "func(name string) (*File, error)"}, + {"OpenFile", Func, 0, "func(name string, flag int, perm FileMode) (*File, error)"}, + {"OpenInRoot", Func, 24, "func(dir string, name string) (*File, error)"}, + {"OpenRoot", Func, 24, "func(name string) (*Root, error)"}, + {"PathError", Type, 0, ""}, + {"PathError.Err", Field, 0, ""}, + {"PathError.Op", Field, 0, ""}, + {"PathError.Path", Field, 0, ""}, + {"PathListSeparator", Const, 0, ""}, + {"PathSeparator", Const, 0, ""}, + {"Pipe", Func, 0, "func() (r *File, w *File, err error)"}, + {"ProcAttr", Type, 0, ""}, + {"ProcAttr.Dir", Field, 0, ""}, + {"ProcAttr.Env", Field, 0, ""}, + {"ProcAttr.Files", Field, 0, ""}, + {"ProcAttr.Sys", Field, 0, ""}, + {"Process", Type, 0, ""}, + {"Process.Pid", Field, 0, ""}, + {"ProcessState", Type, 0, ""}, + {"ReadDir", Func, 16, "func(name string) ([]DirEntry, error)"}, + {"ReadFile", Func, 16, "func(name string) ([]byte, error)"}, + {"Readlink", Func, 0, "func(name string) (string, error)"}, + {"Remove", Func, 0, "func(name string) error"}, + {"RemoveAll", Func, 0, "func(path string) error"}, + {"Rename", Func, 0, "func(oldpath string, newpath string) error"}, + {"Root", Type, 24, ""}, + {"SEEK_CUR", Const, 0, ""}, + {"SEEK_END", Const, 0, ""}, + {"SEEK_SET", Const, 0, ""}, + {"SameFile", Func, 0, "func(fi1 FileInfo, fi2 FileInfo) bool"}, + {"Setenv", Func, 0, "func(key string, value string) error"}, + {"Signal", Type, 0, ""}, + {"StartProcess", Func, 0, "func(name string, argv []string, attr *ProcAttr) (*Process, error)"}, + {"Stat", Func, 0, "func(name string) (FileInfo, error)"}, + {"Stderr", Var, 0, ""}, + {"Stdin", Var, 0, ""}, + {"Stdout", Var, 0, ""}, + {"Symlink", Func, 0, "func(oldname string, newname string) error"}, + {"SyscallError", Type, 0, ""}, + {"SyscallError.Err", Field, 0, ""}, + {"SyscallError.Syscall", Field, 0, ""}, + {"TempDir", Func, 0, "func() string"}, + {"Truncate", Func, 0, "func(name string, size int64) error"}, + {"Unsetenv", Func, 4, "func(key string) error"}, + {"UserCacheDir", Func, 11, "func() (string, error)"}, + {"UserConfigDir", Func, 13, "func() (string, error)"}, + {"UserHomeDir", Func, 12, "func() (string, error)"}, + {"WriteFile", Func, 16, "func(name string, data []byte, perm FileMode) error"}, + }, + "os/exec": { + {"(*Cmd).CombinedOutput", Method, 0, ""}, + {"(*Cmd).Environ", Method, 19, ""}, + {"(*Cmd).Output", Method, 0, ""}, + {"(*Cmd).Run", Method, 0, ""}, + {"(*Cmd).Start", Method, 0, ""}, + {"(*Cmd).StderrPipe", Method, 0, ""}, + {"(*Cmd).StdinPipe", Method, 0, ""}, + {"(*Cmd).StdoutPipe", Method, 0, ""}, + {"(*Cmd).String", Method, 13, ""}, + {"(*Cmd).Wait", Method, 0, ""}, + {"(*Error).Error", Method, 0, ""}, + {"(*Error).Unwrap", Method, 13, ""}, + {"(*ExitError).Error", Method, 0, ""}, + {"(ExitError).ExitCode", Method, 12, ""}, + {"(ExitError).Exited", Method, 0, ""}, + {"(ExitError).Pid", Method, 0, ""}, + {"(ExitError).String", Method, 0, ""}, + {"(ExitError).Success", Method, 0, ""}, + {"(ExitError).Sys", Method, 0, ""}, + {"(ExitError).SysUsage", Method, 0, ""}, + {"(ExitError).SystemTime", Method, 0, ""}, + {"(ExitError).UserTime", Method, 0, ""}, + {"Cmd", Type, 0, ""}, + {"Cmd.Args", Field, 0, ""}, + {"Cmd.Cancel", Field, 20, ""}, + {"Cmd.Dir", Field, 0, ""}, + {"Cmd.Env", Field, 0, ""}, + {"Cmd.Err", Field, 19, ""}, + {"Cmd.ExtraFiles", Field, 0, ""}, + {"Cmd.Path", Field, 0, ""}, + {"Cmd.Process", Field, 0, ""}, + {"Cmd.ProcessState", Field, 0, ""}, + {"Cmd.Stderr", Field, 0, ""}, + {"Cmd.Stdin", Field, 0, ""}, + {"Cmd.Stdout", Field, 0, ""}, + {"Cmd.SysProcAttr", Field, 0, ""}, + {"Cmd.WaitDelay", Field, 20, ""}, + {"Command", Func, 0, "func(name string, arg ...string) *Cmd"}, + {"CommandContext", Func, 7, "func(ctx context.Context, name string, arg ...string) *Cmd"}, + {"ErrDot", Var, 19, ""}, + {"ErrNotFound", Var, 0, ""}, + {"ErrWaitDelay", Var, 20, ""}, + {"Error", Type, 0, ""}, + {"Error.Err", Field, 0, ""}, + {"Error.Name", Field, 0, ""}, + {"ExitError", Type, 0, ""}, + {"ExitError.ProcessState", Field, 0, ""}, + {"ExitError.Stderr", Field, 6, ""}, + {"LookPath", Func, 0, "func(file string) (string, error)"}, + }, + "os/signal": { + {"Ignore", Func, 5, "func(sig ...os.Signal)"}, + {"Ignored", Func, 11, "func(sig os.Signal) bool"}, + {"Notify", Func, 0, "func(c chan<- os.Signal, sig ...os.Signal)"}, + {"NotifyContext", Func, 16, "func(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc)"}, + {"Reset", Func, 5, "func(sig ...os.Signal)"}, + {"Stop", Func, 1, "func(c chan<- os.Signal)"}, + }, + "os/user": { + {"(*User).GroupIds", Method, 7, ""}, + {"(UnknownGroupError).Error", Method, 7, ""}, + {"(UnknownGroupIdError).Error", Method, 7, ""}, + {"(UnknownUserError).Error", Method, 0, ""}, + {"(UnknownUserIdError).Error", Method, 0, ""}, + {"Current", Func, 0, "func() (*User, error)"}, + {"Group", Type, 7, ""}, + {"Group.Gid", Field, 7, ""}, + {"Group.Name", Field, 7, ""}, + {"Lookup", Func, 0, "func(username string) (*User, error)"}, + {"LookupGroup", Func, 7, "func(name string) (*Group, error)"}, + {"LookupGroupId", Func, 7, "func(gid string) (*Group, error)"}, + {"LookupId", Func, 0, "func(uid string) (*User, error)"}, + {"UnknownGroupError", Type, 7, ""}, + {"UnknownGroupIdError", Type, 7, ""}, + {"UnknownUserError", Type, 0, ""}, + {"UnknownUserIdError", Type, 0, ""}, + {"User", Type, 0, ""}, + {"User.Gid", Field, 0, ""}, + {"User.HomeDir", Field, 0, ""}, + {"User.Name", Field, 0, ""}, + {"User.Uid", Field, 0, ""}, + {"User.Username", Field, 0, ""}, + }, + "path": { + {"Base", Func, 0, "func(path string) string"}, + {"Clean", Func, 0, "func(path string) string"}, + {"Dir", Func, 0, "func(path string) string"}, + {"ErrBadPattern", Var, 0, ""}, + {"Ext", Func, 0, "func(path string) string"}, + {"IsAbs", Func, 0, "func(path string) bool"}, + {"Join", Func, 0, "func(elem ...string) string"}, + {"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"}, + {"Split", Func, 0, "func(path string) (dir string, file string)"}, + }, + "path/filepath": { + {"Abs", Func, 0, "func(path string) (string, error)"}, + {"Base", Func, 0, "func(path string) string"}, + {"Clean", Func, 0, "func(path string) string"}, + {"Dir", Func, 0, "func(path string) string"}, + {"ErrBadPattern", Var, 0, ""}, + {"EvalSymlinks", Func, 0, "func(path string) (string, error)"}, + {"Ext", Func, 0, "func(path string) string"}, + {"FromSlash", Func, 0, "func(path string) string"}, + {"Glob", Func, 0, "func(pattern string) (matches []string, err error)"}, + {"HasPrefix", Func, 0, "func(p string, prefix string) bool"}, + {"IsAbs", Func, 0, "func(path string) bool"}, + {"IsLocal", Func, 20, "func(path string) bool"}, + {"Join", Func, 0, "func(elem ...string) string"}, + {"ListSeparator", Const, 0, ""}, + {"Localize", Func, 23, "func(path string) (string, error)"}, + {"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"}, + {"Rel", Func, 0, "func(basepath string, targpath string) (string, error)"}, + {"Separator", Const, 0, ""}, + {"SkipAll", Var, 20, ""}, + {"SkipDir", Var, 0, ""}, + {"Split", Func, 0, "func(path string) (dir string, file string)"}, + {"SplitList", Func, 0, "func(path string) []string"}, + {"ToSlash", Func, 0, "func(path string) string"}, + {"VolumeName", Func, 0, "func(path string) string"}, + {"Walk", Func, 0, "func(root string, fn WalkFunc) error"}, + {"WalkDir", Func, 16, "func(root string, fn fs.WalkDirFunc) error"}, + {"WalkFunc", Type, 0, ""}, + }, + "plugin": { + {"(*Plugin).Lookup", Method, 8, ""}, + {"Open", Func, 8, "func(path string) (*Plugin, error)"}, + {"Plugin", Type, 8, ""}, + {"Symbol", Type, 8, ""}, + }, + "reflect": { + {"(*MapIter).Key", Method, 12, ""}, + {"(*MapIter).Next", Method, 12, ""}, + {"(*MapIter).Reset", Method, 18, ""}, + {"(*MapIter).Value", Method, 12, ""}, + {"(*ValueError).Error", Method, 0, ""}, + {"(ChanDir).String", Method, 0, ""}, + {"(Kind).String", Method, 0, ""}, + {"(Method).IsExported", Method, 17, ""}, + {"(StructField).IsExported", Method, 17, ""}, + {"(StructTag).Get", Method, 0, ""}, + {"(StructTag).Lookup", Method, 7, ""}, + {"(Value).Addr", Method, 0, ""}, + {"(Value).Bool", Method, 0, ""}, + {"(Value).Bytes", Method, 0, ""}, + {"(Value).Call", Method, 0, ""}, + {"(Value).CallSlice", Method, 0, ""}, + {"(Value).CanAddr", Method, 0, ""}, + {"(Value).CanComplex", Method, 18, ""}, + {"(Value).CanConvert", Method, 17, ""}, + {"(Value).CanFloat", Method, 18, ""}, + {"(Value).CanInt", Method, 18, ""}, + {"(Value).CanInterface", Method, 0, ""}, + {"(Value).CanSet", Method, 0, ""}, + {"(Value).CanUint", Method, 18, ""}, + {"(Value).Cap", Method, 0, ""}, + {"(Value).Clear", Method, 21, ""}, + {"(Value).Close", Method, 0, ""}, + {"(Value).Comparable", Method, 20, ""}, + {"(Value).Complex", Method, 0, ""}, + {"(Value).Convert", Method, 1, ""}, + {"(Value).Elem", Method, 0, ""}, + {"(Value).Equal", Method, 20, ""}, + {"(Value).Field", Method, 0, ""}, + {"(Value).FieldByIndex", Method, 0, ""}, + {"(Value).FieldByIndexErr", Method, 18, ""}, + {"(Value).FieldByName", Method, 0, ""}, + {"(Value).FieldByNameFunc", Method, 0, ""}, + {"(Value).Float", Method, 0, ""}, + {"(Value).Grow", Method, 20, ""}, + {"(Value).Index", Method, 0, ""}, + {"(Value).Int", Method, 0, ""}, + {"(Value).Interface", Method, 0, ""}, + {"(Value).InterfaceData", Method, 0, ""}, + {"(Value).IsNil", Method, 0, ""}, + {"(Value).IsValid", Method, 0, ""}, + {"(Value).IsZero", Method, 13, ""}, + {"(Value).Kind", Method, 0, ""}, + {"(Value).Len", Method, 0, ""}, + {"(Value).MapIndex", Method, 0, ""}, + {"(Value).MapKeys", Method, 0, ""}, + {"(Value).MapRange", Method, 12, ""}, + {"(Value).Method", Method, 0, ""}, + {"(Value).MethodByName", Method, 0, ""}, + {"(Value).NumField", Method, 0, ""}, + {"(Value).NumMethod", Method, 0, ""}, + {"(Value).OverflowComplex", Method, 0, ""}, + {"(Value).OverflowFloat", Method, 0, ""}, + {"(Value).OverflowInt", Method, 0, ""}, + {"(Value).OverflowUint", Method, 0, ""}, + {"(Value).Pointer", Method, 0, ""}, + {"(Value).Recv", Method, 0, ""}, + {"(Value).Send", Method, 0, ""}, + {"(Value).Seq", Method, 23, ""}, + {"(Value).Seq2", Method, 23, ""}, + {"(Value).Set", Method, 0, ""}, + {"(Value).SetBool", Method, 0, ""}, + {"(Value).SetBytes", Method, 0, ""}, + {"(Value).SetCap", Method, 2, ""}, + {"(Value).SetComplex", Method, 0, ""}, + {"(Value).SetFloat", Method, 0, ""}, + {"(Value).SetInt", Method, 0, ""}, + {"(Value).SetIterKey", Method, 18, ""}, + {"(Value).SetIterValue", Method, 18, ""}, + {"(Value).SetLen", Method, 0, ""}, + {"(Value).SetMapIndex", Method, 0, ""}, + {"(Value).SetPointer", Method, 0, ""}, + {"(Value).SetString", Method, 0, ""}, + {"(Value).SetUint", Method, 0, ""}, + {"(Value).SetZero", Method, 20, ""}, + {"(Value).Slice", Method, 0, ""}, + {"(Value).Slice3", Method, 2, ""}, + {"(Value).String", Method, 0, ""}, + {"(Value).TryRecv", Method, 0, ""}, + {"(Value).TrySend", Method, 0, ""}, + {"(Value).Type", Method, 0, ""}, + {"(Value).Uint", Method, 0, ""}, + {"(Value).UnsafeAddr", Method, 0, ""}, + {"(Value).UnsafePointer", Method, 18, ""}, + {"Append", Func, 0, "func(s Value, x ...Value) Value"}, + {"AppendSlice", Func, 0, "func(s Value, t Value) Value"}, + {"Array", Const, 0, ""}, + {"ArrayOf", Func, 5, "func(length int, elem Type) Type"}, + {"Bool", Const, 0, ""}, + {"BothDir", Const, 0, ""}, + {"Chan", Const, 0, ""}, + {"ChanDir", Type, 0, ""}, + {"ChanOf", Func, 1, "func(dir ChanDir, t Type) Type"}, + {"Complex128", Const, 0, ""}, + {"Complex64", Const, 0, ""}, + {"Copy", Func, 0, "func(dst Value, src Value) int"}, + {"DeepEqual", Func, 0, "func(x any, y any) bool"}, + {"Float32", Const, 0, ""}, + {"Float64", Const, 0, ""}, + {"Func", Const, 0, ""}, + {"FuncOf", Func, 5, "func(in []Type, out []Type, variadic bool) Type"}, + {"Indirect", Func, 0, "func(v Value) Value"}, + {"Int", Const, 0, ""}, + {"Int16", Const, 0, ""}, + {"Int32", Const, 0, ""}, + {"Int64", Const, 0, ""}, + {"Int8", Const, 0, ""}, + {"Interface", Const, 0, ""}, + {"Invalid", Const, 0, ""}, + {"Kind", Type, 0, ""}, + {"MakeChan", Func, 0, "func(typ Type, buffer int) Value"}, + {"MakeFunc", Func, 1, "func(typ Type, fn func(args []Value) (results []Value)) Value"}, + {"MakeMap", Func, 0, "func(typ Type) Value"}, + {"MakeMapWithSize", Func, 9, "func(typ Type, n int) Value"}, + {"MakeSlice", Func, 0, "func(typ Type, len int, cap int) Value"}, + {"Map", Const, 0, ""}, + {"MapIter", Type, 12, ""}, + {"MapOf", Func, 1, "func(key Type, elem Type) Type"}, + {"Method", Type, 0, ""}, + {"Method.Func", Field, 0, ""}, + {"Method.Index", Field, 0, ""}, + {"Method.Name", Field, 0, ""}, + {"Method.PkgPath", Field, 0, ""}, + {"Method.Type", Field, 0, ""}, + {"New", Func, 0, "func(typ Type) Value"}, + {"NewAt", Func, 0, "func(typ Type, p unsafe.Pointer) Value"}, + {"Pointer", Const, 18, ""}, + {"PointerTo", Func, 18, "func(t Type) Type"}, + {"Ptr", Const, 0, ""}, + {"PtrTo", Func, 0, "func(t Type) Type"}, + {"RecvDir", Const, 0, ""}, + {"Select", Func, 1, "func(cases []SelectCase) (chosen int, recv Value, recvOK bool)"}, + {"SelectCase", Type, 1, ""}, + {"SelectCase.Chan", Field, 1, ""}, + {"SelectCase.Dir", Field, 1, ""}, + {"SelectCase.Send", Field, 1, ""}, + {"SelectDefault", Const, 1, ""}, + {"SelectDir", Type, 1, ""}, + {"SelectRecv", Const, 1, ""}, + {"SelectSend", Const, 1, ""}, + {"SendDir", Const, 0, ""}, + {"Slice", Const, 0, ""}, + {"SliceAt", Func, 23, "func(typ Type, p unsafe.Pointer, n int) Value"}, + {"SliceHeader", Type, 0, ""}, + {"SliceHeader.Cap", Field, 0, ""}, + {"SliceHeader.Data", Field, 0, ""}, + {"SliceHeader.Len", Field, 0, ""}, + {"SliceOf", Func, 1, "func(t Type) Type"}, + {"String", Const, 0, ""}, + {"StringHeader", Type, 0, ""}, + {"StringHeader.Data", Field, 0, ""}, + {"StringHeader.Len", Field, 0, ""}, + {"Struct", Const, 0, ""}, + {"StructField", Type, 0, ""}, + {"StructField.Anonymous", Field, 0, ""}, + {"StructField.Index", Field, 0, ""}, + {"StructField.Name", Field, 0, ""}, + {"StructField.Offset", Field, 0, ""}, + {"StructField.PkgPath", Field, 0, ""}, + {"StructField.Tag", Field, 0, ""}, + {"StructField.Type", Field, 0, ""}, + {"StructOf", Func, 7, "func(fields []StructField) Type"}, + {"StructTag", Type, 0, ""}, + {"Swapper", Func, 8, "func(slice any) func(i int, j int)"}, + {"Type", Type, 0, ""}, + {"TypeFor", Func, 22, "func[T any]() Type"}, + {"TypeOf", Func, 0, "func(i any) Type"}, + {"Uint", Const, 0, ""}, + {"Uint16", Const, 0, ""}, + {"Uint32", Const, 0, ""}, + {"Uint64", Const, 0, ""}, + {"Uint8", Const, 0, ""}, + {"Uintptr", Const, 0, ""}, + {"UnsafePointer", Const, 0, ""}, + {"Value", Type, 0, ""}, + {"ValueError", Type, 0, ""}, + {"ValueError.Kind", Field, 0, ""}, + {"ValueError.Method", Field, 0, ""}, + {"ValueOf", Func, 0, "func(i any) Value"}, + {"VisibleFields", Func, 17, "func(t Type) []StructField"}, + {"Zero", Func, 0, "func(typ Type) Value"}, + }, + "regexp": { + {"(*Regexp).AppendText", Method, 24, ""}, + {"(*Regexp).Copy", Method, 6, ""}, + {"(*Regexp).Expand", Method, 0, ""}, + {"(*Regexp).ExpandString", Method, 0, ""}, + {"(*Regexp).Find", Method, 0, ""}, + {"(*Regexp).FindAll", Method, 0, ""}, + {"(*Regexp).FindAllIndex", Method, 0, ""}, + {"(*Regexp).FindAllString", Method, 0, ""}, + {"(*Regexp).FindAllStringIndex", Method, 0, ""}, + {"(*Regexp).FindAllStringSubmatch", Method, 0, ""}, + {"(*Regexp).FindAllStringSubmatchIndex", Method, 0, ""}, + {"(*Regexp).FindAllSubmatch", Method, 0, ""}, + {"(*Regexp).FindAllSubmatchIndex", Method, 0, ""}, + {"(*Regexp).FindIndex", Method, 0, ""}, + {"(*Regexp).FindReaderIndex", Method, 0, ""}, + {"(*Regexp).FindReaderSubmatchIndex", Method, 0, ""}, + {"(*Regexp).FindString", Method, 0, ""}, + {"(*Regexp).FindStringIndex", Method, 0, ""}, + {"(*Regexp).FindStringSubmatch", Method, 0, ""}, + {"(*Regexp).FindStringSubmatchIndex", Method, 0, ""}, + {"(*Regexp).FindSubmatch", Method, 0, ""}, + {"(*Regexp).FindSubmatchIndex", Method, 0, ""}, + {"(*Regexp).LiteralPrefix", Method, 0, ""}, + {"(*Regexp).Longest", Method, 1, ""}, + {"(*Regexp).MarshalText", Method, 21, ""}, + {"(*Regexp).Match", Method, 0, ""}, + {"(*Regexp).MatchReader", Method, 0, ""}, + {"(*Regexp).MatchString", Method, 0, ""}, + {"(*Regexp).NumSubexp", Method, 0, ""}, + {"(*Regexp).ReplaceAll", Method, 0, ""}, + {"(*Regexp).ReplaceAllFunc", Method, 0, ""}, + {"(*Regexp).ReplaceAllLiteral", Method, 0, ""}, + {"(*Regexp).ReplaceAllLiteralString", Method, 0, ""}, + {"(*Regexp).ReplaceAllString", Method, 0, ""}, + {"(*Regexp).ReplaceAllStringFunc", Method, 0, ""}, + {"(*Regexp).Split", Method, 1, ""}, + {"(*Regexp).String", Method, 0, ""}, + {"(*Regexp).SubexpIndex", Method, 15, ""}, + {"(*Regexp).SubexpNames", Method, 0, ""}, + {"(*Regexp).UnmarshalText", Method, 21, ""}, + {"Compile", Func, 0, "func(expr string) (*Regexp, error)"}, + {"CompilePOSIX", Func, 0, "func(expr string) (*Regexp, error)"}, + {"Match", Func, 0, "func(pattern string, b []byte) (matched bool, err error)"}, + {"MatchReader", Func, 0, "func(pattern string, r io.RuneReader) (matched bool, err error)"}, + {"MatchString", Func, 0, "func(pattern string, s string) (matched bool, err error)"}, + {"MustCompile", Func, 0, "func(str string) *Regexp"}, + {"MustCompilePOSIX", Func, 0, "func(str string) *Regexp"}, + {"QuoteMeta", Func, 0, "func(s string) string"}, + {"Regexp", Type, 0, ""}, + }, + "regexp/syntax": { + {"(*Error).Error", Method, 0, ""}, + {"(*Inst).MatchEmptyWidth", Method, 0, ""}, + {"(*Inst).MatchRune", Method, 0, ""}, + {"(*Inst).MatchRunePos", Method, 3, ""}, + {"(*Inst).String", Method, 0, ""}, + {"(*Prog).Prefix", Method, 0, ""}, + {"(*Prog).StartCond", Method, 0, ""}, + {"(*Prog).String", Method, 0, ""}, + {"(*Regexp).CapNames", Method, 0, ""}, + {"(*Regexp).Equal", Method, 0, ""}, + {"(*Regexp).MaxCap", Method, 0, ""}, + {"(*Regexp).Simplify", Method, 0, ""}, + {"(*Regexp).String", Method, 0, ""}, + {"(ErrorCode).String", Method, 0, ""}, + {"(InstOp).String", Method, 3, ""}, + {"(Op).String", Method, 11, ""}, + {"ClassNL", Const, 0, ""}, + {"Compile", Func, 0, "func(re *Regexp) (*Prog, error)"}, + {"DotNL", Const, 0, ""}, + {"EmptyBeginLine", Const, 0, ""}, + {"EmptyBeginText", Const, 0, ""}, + {"EmptyEndLine", Const, 0, ""}, + {"EmptyEndText", Const, 0, ""}, + {"EmptyNoWordBoundary", Const, 0, ""}, + {"EmptyOp", Type, 0, ""}, + {"EmptyOpContext", Func, 0, "func(r1 rune, r2 rune) EmptyOp"}, + {"EmptyWordBoundary", Const, 0, ""}, + {"ErrInternalError", Const, 0, ""}, + {"ErrInvalidCharClass", Const, 0, ""}, + {"ErrInvalidCharRange", Const, 0, ""}, + {"ErrInvalidEscape", Const, 0, ""}, + {"ErrInvalidNamedCapture", Const, 0, ""}, + {"ErrInvalidPerlOp", Const, 0, ""}, + {"ErrInvalidRepeatOp", Const, 0, ""}, + {"ErrInvalidRepeatSize", Const, 0, ""}, + {"ErrInvalidUTF8", Const, 0, ""}, + {"ErrLarge", Const, 20, ""}, + {"ErrMissingBracket", Const, 0, ""}, + {"ErrMissingParen", Const, 0, ""}, + {"ErrMissingRepeatArgument", Const, 0, ""}, + {"ErrNestingDepth", Const, 19, ""}, + {"ErrTrailingBackslash", Const, 0, ""}, + {"ErrUnexpectedParen", Const, 1, ""}, + {"Error", Type, 0, ""}, + {"Error.Code", Field, 0, ""}, + {"Error.Expr", Field, 0, ""}, + {"ErrorCode", Type, 0, ""}, + {"Flags", Type, 0, ""}, + {"FoldCase", Const, 0, ""}, + {"Inst", Type, 0, ""}, + {"Inst.Arg", Field, 0, ""}, + {"Inst.Op", Field, 0, ""}, + {"Inst.Out", Field, 0, ""}, + {"Inst.Rune", Field, 0, ""}, + {"InstAlt", Const, 0, ""}, + {"InstAltMatch", Const, 0, ""}, + {"InstCapture", Const, 0, ""}, + {"InstEmptyWidth", Const, 0, ""}, + {"InstFail", Const, 0, ""}, + {"InstMatch", Const, 0, ""}, + {"InstNop", Const, 0, ""}, + {"InstOp", Type, 0, ""}, + {"InstRune", Const, 0, ""}, + {"InstRune1", Const, 0, ""}, + {"InstRuneAny", Const, 0, ""}, + {"InstRuneAnyNotNL", Const, 0, ""}, + {"IsWordChar", Func, 0, "func(r rune) bool"}, + {"Literal", Const, 0, ""}, + {"MatchNL", Const, 0, ""}, + {"NonGreedy", Const, 0, ""}, + {"OneLine", Const, 0, ""}, + {"Op", Type, 0, ""}, + {"OpAlternate", Const, 0, ""}, + {"OpAnyChar", Const, 0, ""}, + {"OpAnyCharNotNL", Const, 0, ""}, + {"OpBeginLine", Const, 0, ""}, + {"OpBeginText", Const, 0, ""}, + {"OpCapture", Const, 0, ""}, + {"OpCharClass", Const, 0, ""}, + {"OpConcat", Const, 0, ""}, + {"OpEmptyMatch", Const, 0, ""}, + {"OpEndLine", Const, 0, ""}, + {"OpEndText", Const, 0, ""}, + {"OpLiteral", Const, 0, ""}, + {"OpNoMatch", Const, 0, ""}, + {"OpNoWordBoundary", Const, 0, ""}, + {"OpPlus", Const, 0, ""}, + {"OpQuest", Const, 0, ""}, + {"OpRepeat", Const, 0, ""}, + {"OpStar", Const, 0, ""}, + {"OpWordBoundary", Const, 0, ""}, + {"POSIX", Const, 0, ""}, + {"Parse", Func, 0, "func(s string, flags Flags) (*Regexp, error)"}, + {"Perl", Const, 0, ""}, + {"PerlX", Const, 0, ""}, + {"Prog", Type, 0, ""}, + {"Prog.Inst", Field, 0, ""}, + {"Prog.NumCap", Field, 0, ""}, + {"Prog.Start", Field, 0, ""}, + {"Regexp", Type, 0, ""}, + {"Regexp.Cap", Field, 0, ""}, + {"Regexp.Flags", Field, 0, ""}, + {"Regexp.Max", Field, 0, ""}, + {"Regexp.Min", Field, 0, ""}, + {"Regexp.Name", Field, 0, ""}, + {"Regexp.Op", Field, 0, ""}, + {"Regexp.Rune", Field, 0, ""}, + {"Regexp.Rune0", Field, 0, ""}, + {"Regexp.Sub", Field, 0, ""}, + {"Regexp.Sub0", Field, 0, ""}, + {"Simple", Const, 0, ""}, + {"UnicodeGroups", Const, 0, ""}, + {"WasDollar", Const, 0, ""}, + }, + "runtime": { + {"(*BlockProfileRecord).Stack", Method, 1, ""}, + {"(*Frames).Next", Method, 7, ""}, + {"(*Func).Entry", Method, 0, ""}, + {"(*Func).FileLine", Method, 0, ""}, + {"(*Func).Name", Method, 0, ""}, + {"(*MemProfileRecord).InUseBytes", Method, 0, ""}, + {"(*MemProfileRecord).InUseObjects", Method, 0, ""}, + {"(*MemProfileRecord).Stack", Method, 0, ""}, + {"(*PanicNilError).Error", Method, 21, ""}, + {"(*PanicNilError).RuntimeError", Method, 21, ""}, + {"(*Pinner).Pin", Method, 21, ""}, + {"(*Pinner).Unpin", Method, 21, ""}, + {"(*StackRecord).Stack", Method, 0, ""}, + {"(*TypeAssertionError).Error", Method, 0, ""}, + {"(*TypeAssertionError).RuntimeError", Method, 0, ""}, + {"(Cleanup).Stop", Method, 24, ""}, + {"AddCleanup", Func, 24, "func[T, S any](ptr *T, cleanup func(S), arg S) Cleanup"}, + {"BlockProfile", Func, 1, "func(p []BlockProfileRecord) (n int, ok bool)"}, + {"BlockProfileRecord", Type, 1, ""}, + {"BlockProfileRecord.Count", Field, 1, ""}, + {"BlockProfileRecord.Cycles", Field, 1, ""}, + {"BlockProfileRecord.StackRecord", Field, 1, ""}, + {"Breakpoint", Func, 0, "func()"}, + {"CPUProfile", Func, 0, "func() []byte"}, + {"Caller", Func, 0, "func(skip int) (pc uintptr, file string, line int, ok bool)"}, + {"Callers", Func, 0, "func(skip int, pc []uintptr) int"}, + {"CallersFrames", Func, 7, "func(callers []uintptr) *Frames"}, + {"Cleanup", Type, 24, ""}, + {"Compiler", Const, 0, ""}, + {"Error", Type, 0, ""}, + {"Frame", Type, 7, ""}, + {"Frame.Entry", Field, 7, ""}, + {"Frame.File", Field, 7, ""}, + {"Frame.Func", Field, 7, ""}, + {"Frame.Function", Field, 7, ""}, + {"Frame.Line", Field, 7, ""}, + {"Frame.PC", Field, 7, ""}, + {"Frames", Type, 7, ""}, + {"Func", Type, 0, ""}, + {"FuncForPC", Func, 0, "func(pc uintptr) *Func"}, + {"GC", Func, 0, "func()"}, + {"GOARCH", Const, 0, ""}, + {"GOMAXPROCS", Func, 0, "func(n int) int"}, + {"GOOS", Const, 0, ""}, + {"GOROOT", Func, 0, "func() string"}, + {"Goexit", Func, 0, "func()"}, + {"GoroutineProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"}, + {"Gosched", Func, 0, "func()"}, + {"KeepAlive", Func, 7, "func(x any)"}, + {"LockOSThread", Func, 0, "func()"}, + {"MemProfile", Func, 0, "func(p []MemProfileRecord, inuseZero bool) (n int, ok bool)"}, + {"MemProfileRate", Var, 0, ""}, + {"MemProfileRecord", Type, 0, ""}, + {"MemProfileRecord.AllocBytes", Field, 0, ""}, + {"MemProfileRecord.AllocObjects", Field, 0, ""}, + {"MemProfileRecord.FreeBytes", Field, 0, ""}, + {"MemProfileRecord.FreeObjects", Field, 0, ""}, + {"MemProfileRecord.Stack0", Field, 0, ""}, + {"MemStats", Type, 0, ""}, + {"MemStats.Alloc", Field, 0, ""}, + {"MemStats.BuckHashSys", Field, 0, ""}, + {"MemStats.BySize", Field, 0, ""}, + {"MemStats.DebugGC", Field, 0, ""}, + {"MemStats.EnableGC", Field, 0, ""}, + {"MemStats.Frees", Field, 0, ""}, + {"MemStats.GCCPUFraction", Field, 5, ""}, + {"MemStats.GCSys", Field, 2, ""}, + {"MemStats.HeapAlloc", Field, 0, ""}, + {"MemStats.HeapIdle", Field, 0, ""}, + {"MemStats.HeapInuse", Field, 0, ""}, + {"MemStats.HeapObjects", Field, 0, ""}, + {"MemStats.HeapReleased", Field, 0, ""}, + {"MemStats.HeapSys", Field, 0, ""}, + {"MemStats.LastGC", Field, 0, ""}, + {"MemStats.Lookups", Field, 0, ""}, + {"MemStats.MCacheInuse", Field, 0, ""}, + {"MemStats.MCacheSys", Field, 0, ""}, + {"MemStats.MSpanInuse", Field, 0, ""}, + {"MemStats.MSpanSys", Field, 0, ""}, + {"MemStats.Mallocs", Field, 0, ""}, + {"MemStats.NextGC", Field, 0, ""}, + {"MemStats.NumForcedGC", Field, 8, ""}, + {"MemStats.NumGC", Field, 0, ""}, + {"MemStats.OtherSys", Field, 2, ""}, + {"MemStats.PauseEnd", Field, 4, ""}, + {"MemStats.PauseNs", Field, 0, ""}, + {"MemStats.PauseTotalNs", Field, 0, ""}, + {"MemStats.StackInuse", Field, 0, ""}, + {"MemStats.StackSys", Field, 0, ""}, + {"MemStats.Sys", Field, 0, ""}, + {"MemStats.TotalAlloc", Field, 0, ""}, + {"MutexProfile", Func, 8, "func(p []BlockProfileRecord) (n int, ok bool)"}, + {"NumCPU", Func, 0, "func() int"}, + {"NumCgoCall", Func, 0, "func() int64"}, + {"NumGoroutine", Func, 0, "func() int"}, + {"PanicNilError", Type, 21, ""}, + {"Pinner", Type, 21, ""}, + {"ReadMemStats", Func, 0, "func(m *MemStats)"}, + {"ReadTrace", Func, 5, "func() []byte"}, + {"SetBlockProfileRate", Func, 1, "func(rate int)"}, + {"SetCPUProfileRate", Func, 0, "func(hz int)"}, + {"SetCgoTraceback", Func, 7, "func(version int, traceback unsafe.Pointer, context unsafe.Pointer, symbolizer unsafe.Pointer)"}, + {"SetFinalizer", Func, 0, "func(obj any, finalizer any)"}, + {"SetMutexProfileFraction", Func, 8, "func(rate int) int"}, + {"Stack", Func, 0, "func(buf []byte, all bool) int"}, + {"StackRecord", Type, 0, ""}, + {"StackRecord.Stack0", Field, 0, ""}, + {"StartTrace", Func, 5, "func() error"}, + {"StopTrace", Func, 5, "func()"}, + {"ThreadCreateProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"}, + {"TypeAssertionError", Type, 0, ""}, + {"UnlockOSThread", Func, 0, "func()"}, + {"Version", Func, 0, "func() string"}, + }, + "runtime/cgo": { + {"(Handle).Delete", Method, 17, ""}, + {"(Handle).Value", Method, 17, ""}, + {"Handle", Type, 17, ""}, + {"Incomplete", Type, 20, ""}, + {"NewHandle", Func, 17, ""}, + }, + "runtime/coverage": { + {"ClearCounters", Func, 20, "func() error"}, + {"WriteCounters", Func, 20, "func(w io.Writer) error"}, + {"WriteCountersDir", Func, 20, "func(dir string) error"}, + {"WriteMeta", Func, 20, "func(w io.Writer) error"}, + {"WriteMetaDir", Func, 20, "func(dir string) error"}, + }, + "runtime/debug": { + {"(*BuildInfo).String", Method, 18, ""}, + {"BuildInfo", Type, 12, ""}, + {"BuildInfo.Deps", Field, 12, ""}, + {"BuildInfo.GoVersion", Field, 18, ""}, + {"BuildInfo.Main", Field, 12, ""}, + {"BuildInfo.Path", Field, 12, ""}, + {"BuildInfo.Settings", Field, 18, ""}, + {"BuildSetting", Type, 18, ""}, + {"BuildSetting.Key", Field, 18, ""}, + {"BuildSetting.Value", Field, 18, ""}, + {"CrashOptions", Type, 23, ""}, + {"FreeOSMemory", Func, 1, "func()"}, + {"GCStats", Type, 1, ""}, + {"GCStats.LastGC", Field, 1, ""}, + {"GCStats.NumGC", Field, 1, ""}, + {"GCStats.Pause", Field, 1, ""}, + {"GCStats.PauseEnd", Field, 4, ""}, + {"GCStats.PauseQuantiles", Field, 1, ""}, + {"GCStats.PauseTotal", Field, 1, ""}, + {"Module", Type, 12, ""}, + {"Module.Path", Field, 12, ""}, + {"Module.Replace", Field, 12, ""}, + {"Module.Sum", Field, 12, ""}, + {"Module.Version", Field, 12, ""}, + {"ParseBuildInfo", Func, 18, "func(data string) (bi *BuildInfo, err error)"}, + {"PrintStack", Func, 0, "func()"}, + {"ReadBuildInfo", Func, 12, "func() (info *BuildInfo, ok bool)"}, + {"ReadGCStats", Func, 1, "func(stats *GCStats)"}, + {"SetCrashOutput", Func, 23, "func(f *os.File, opts CrashOptions) error"}, + {"SetGCPercent", Func, 1, "func(percent int) int"}, + {"SetMaxStack", Func, 2, "func(bytes int) int"}, + {"SetMaxThreads", Func, 2, "func(threads int) int"}, + {"SetMemoryLimit", Func, 19, "func(limit int64) int64"}, + {"SetPanicOnFault", Func, 3, "func(enabled bool) bool"}, + {"SetTraceback", Func, 6, "func(level string)"}, + {"Stack", Func, 0, "func() []byte"}, + {"WriteHeapDump", Func, 3, "func(fd uintptr)"}, + }, + "runtime/metrics": { + {"(Value).Float64", Method, 16, ""}, + {"(Value).Float64Histogram", Method, 16, ""}, + {"(Value).Kind", Method, 16, ""}, + {"(Value).Uint64", Method, 16, ""}, + {"All", Func, 16, "func() []Description"}, + {"Description", Type, 16, ""}, + {"Description.Cumulative", Field, 16, ""}, + {"Description.Description", Field, 16, ""}, + {"Description.Kind", Field, 16, ""}, + {"Description.Name", Field, 16, ""}, + {"Float64Histogram", Type, 16, ""}, + {"Float64Histogram.Buckets", Field, 16, ""}, + {"Float64Histogram.Counts", Field, 16, ""}, + {"KindBad", Const, 16, ""}, + {"KindFloat64", Const, 16, ""}, + {"KindFloat64Histogram", Const, 16, ""}, + {"KindUint64", Const, 16, ""}, + {"Read", Func, 16, "func(m []Sample)"}, + {"Sample", Type, 16, ""}, + {"Sample.Name", Field, 16, ""}, + {"Sample.Value", Field, 16, ""}, + {"Value", Type, 16, ""}, + {"ValueKind", Type, 16, ""}, + }, + "runtime/pprof": { + {"(*Profile).Add", Method, 0, ""}, + {"(*Profile).Count", Method, 0, ""}, + {"(*Profile).Name", Method, 0, ""}, + {"(*Profile).Remove", Method, 0, ""}, + {"(*Profile).WriteTo", Method, 0, ""}, + {"Do", Func, 9, "func(ctx context.Context, labels LabelSet, f func(context.Context))"}, + {"ForLabels", Func, 9, "func(ctx context.Context, f func(key string, value string) bool)"}, + {"Label", Func, 9, "func(ctx context.Context, key string) (string, bool)"}, + {"LabelSet", Type, 9, ""}, + {"Labels", Func, 9, "func(args ...string) LabelSet"}, + {"Lookup", Func, 0, "func(name string) *Profile"}, + {"NewProfile", Func, 0, "func(name string) *Profile"}, + {"Profile", Type, 0, ""}, + {"Profiles", Func, 0, "func() []*Profile"}, + {"SetGoroutineLabels", Func, 9, "func(ctx context.Context)"}, + {"StartCPUProfile", Func, 0, "func(w io.Writer) error"}, + {"StopCPUProfile", Func, 0, "func()"}, + {"WithLabels", Func, 9, "func(ctx context.Context, labels LabelSet) context.Context"}, + {"WriteHeapProfile", Func, 0, "func(w io.Writer) error"}, + }, + "runtime/trace": { + {"(*Region).End", Method, 11, ""}, + {"(*Task).End", Method, 11, ""}, + {"IsEnabled", Func, 11, "func() bool"}, + {"Log", Func, 11, "func(ctx context.Context, category string, message string)"}, + {"Logf", Func, 11, "func(ctx context.Context, category string, format string, args ...any)"}, + {"NewTask", Func, 11, "func(pctx context.Context, taskType string) (ctx context.Context, task *Task)"}, + {"Region", Type, 11, ""}, + {"Start", Func, 5, "func(w io.Writer) error"}, + {"StartRegion", Func, 11, "func(ctx context.Context, regionType string) *Region"}, + {"Stop", Func, 5, "func()"}, + {"Task", Type, 11, ""}, + {"WithRegion", Func, 11, "func(ctx context.Context, regionType string, fn func())"}, + }, + "slices": { + {"All", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"}, + {"AppendSeq", Func, 23, "func[Slice ~[]E, E any](s Slice, seq iter.Seq[E]) Slice"}, + {"Backward", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"}, + {"BinarySearch", Func, 21, "func[S ~[]E, E cmp.Ordered](x S, target E) (int, bool)"}, + {"BinarySearchFunc", Func, 21, "func[S ~[]E, E, T any](x S, target T, cmp func(E, T) int) (int, bool)"}, + {"Chunk", Func, 23, "func[Slice ~[]E, E any](s Slice, n int) iter.Seq[Slice]"}, + {"Clip", Func, 21, "func[S ~[]E, E any](s S) S"}, + {"Clone", Func, 21, "func[S ~[]E, E any](s S) S"}, + {"Collect", Func, 23, "func[E any](seq iter.Seq[E]) []E"}, + {"Compact", Func, 21, "func[S ~[]E, E comparable](s S) S"}, + {"CompactFunc", Func, 21, "func[S ~[]E, E any](s S, eq func(E, E) bool) S"}, + {"Compare", Func, 21, "func[S ~[]E, E cmp.Ordered](s1 S, s2 S) int"}, + {"CompareFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, cmp func(E1, E2) int) int"}, + {"Concat", Func, 22, "func[S ~[]E, E any](slices ...S) S"}, + {"Contains", Func, 21, "func[S ~[]E, E comparable](s S, v E) bool"}, + {"ContainsFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) bool"}, + {"Delete", Func, 21, "func[S ~[]E, E any](s S, i int, j int) S"}, + {"DeleteFunc", Func, 21, "func[S ~[]E, E any](s S, del func(E) bool) S"}, + {"Equal", Func, 21, "func[S ~[]E, E comparable](s1 S, s2 S) bool"}, + {"EqualFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, eq func(E1, E2) bool) bool"}, + {"Grow", Func, 21, "func[S ~[]E, E any](s S, n int) S"}, + {"Index", Func, 21, "func[S ~[]E, E comparable](s S, v E) int"}, + {"IndexFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) int"}, + {"Insert", Func, 21, "func[S ~[]E, E any](s S, i int, v ...E) S"}, + {"IsSorted", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) bool"}, + {"IsSortedFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) bool"}, + {"Max", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"}, + {"MaxFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"}, + {"Min", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"}, + {"MinFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"}, + {"Repeat", Func, 23, "func[S ~[]E, E any](x S, count int) S"}, + {"Replace", Func, 21, "func[S ~[]E, E any](s S, i int, j int, v ...E) S"}, + {"Reverse", Func, 21, "func[S ~[]E, E any](s S)"}, + {"Sort", Func, 21, "func[S ~[]E, E cmp.Ordered](x S)"}, + {"SortFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"}, + {"SortStableFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"}, + {"Sorted", Func, 23, "func[E cmp.Ordered](seq iter.Seq[E]) []E"}, + {"SortedFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"}, + {"SortedStableFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"}, + {"Values", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq[E]"}, + }, + "sort": { + {"(Float64Slice).Len", Method, 0, ""}, + {"(Float64Slice).Less", Method, 0, ""}, + {"(Float64Slice).Search", Method, 0, ""}, + {"(Float64Slice).Sort", Method, 0, ""}, + {"(Float64Slice).Swap", Method, 0, ""}, + {"(IntSlice).Len", Method, 0, ""}, + {"(IntSlice).Less", Method, 0, ""}, + {"(IntSlice).Search", Method, 0, ""}, + {"(IntSlice).Sort", Method, 0, ""}, + {"(IntSlice).Swap", Method, 0, ""}, + {"(StringSlice).Len", Method, 0, ""}, + {"(StringSlice).Less", Method, 0, ""}, + {"(StringSlice).Search", Method, 0, ""}, + {"(StringSlice).Sort", Method, 0, ""}, + {"(StringSlice).Swap", Method, 0, ""}, + {"Find", Func, 19, "func(n int, cmp func(int) int) (i int, found bool)"}, + {"Float64Slice", Type, 0, ""}, + {"Float64s", Func, 0, "func(x []float64)"}, + {"Float64sAreSorted", Func, 0, "func(x []float64) bool"}, + {"IntSlice", Type, 0, ""}, + {"Interface", Type, 0, ""}, + {"Ints", Func, 0, "func(x []int)"}, + {"IntsAreSorted", Func, 0, "func(x []int) bool"}, + {"IsSorted", Func, 0, "func(data Interface) bool"}, + {"Reverse", Func, 1, "func(data Interface) Interface"}, + {"Search", Func, 0, "func(n int, f func(int) bool) int"}, + {"SearchFloat64s", Func, 0, "func(a []float64, x float64) int"}, + {"SearchInts", Func, 0, "func(a []int, x int) int"}, + {"SearchStrings", Func, 0, "func(a []string, x string) int"}, + {"Slice", Func, 8, "func(x any, less func(i int, j int) bool)"}, + {"SliceIsSorted", Func, 8, "func(x any, less func(i int, j int) bool) bool"}, + {"SliceStable", Func, 8, "func(x any, less func(i int, j int) bool)"}, + {"Sort", Func, 0, "func(data Interface)"}, + {"Stable", Func, 2, "func(data Interface)"}, + {"StringSlice", Type, 0, ""}, + {"Strings", Func, 0, "func(x []string)"}, + {"StringsAreSorted", Func, 0, "func(x []string) bool"}, + }, + "strconv": { + {"(*NumError).Error", Method, 0, ""}, + {"(*NumError).Unwrap", Method, 14, ""}, + {"AppendBool", Func, 0, "func(dst []byte, b bool) []byte"}, + {"AppendFloat", Func, 0, "func(dst []byte, f float64, fmt byte, prec int, bitSize int) []byte"}, + {"AppendInt", Func, 0, "func(dst []byte, i int64, base int) []byte"}, + {"AppendQuote", Func, 0, "func(dst []byte, s string) []byte"}, + {"AppendQuoteRune", Func, 0, "func(dst []byte, r rune) []byte"}, + {"AppendQuoteRuneToASCII", Func, 0, "func(dst []byte, r rune) []byte"}, + {"AppendQuoteRuneToGraphic", Func, 6, "func(dst []byte, r rune) []byte"}, + {"AppendQuoteToASCII", Func, 0, "func(dst []byte, s string) []byte"}, + {"AppendQuoteToGraphic", Func, 6, "func(dst []byte, s string) []byte"}, + {"AppendUint", Func, 0, "func(dst []byte, i uint64, base int) []byte"}, + {"Atoi", Func, 0, "func(s string) (int, error)"}, + {"CanBackquote", Func, 0, "func(s string) bool"}, + {"ErrRange", Var, 0, ""}, + {"ErrSyntax", Var, 0, ""}, + {"FormatBool", Func, 0, "func(b bool) string"}, + {"FormatComplex", Func, 15, "func(c complex128, fmt byte, prec int, bitSize int) string"}, + {"FormatFloat", Func, 0, "func(f float64, fmt byte, prec int, bitSize int) string"}, + {"FormatInt", Func, 0, "func(i int64, base int) string"}, + {"FormatUint", Func, 0, "func(i uint64, base int) string"}, + {"IntSize", Const, 0, ""}, + {"IsGraphic", Func, 6, "func(r rune) bool"}, + {"IsPrint", Func, 0, "func(r rune) bool"}, + {"Itoa", Func, 0, "func(i int) string"}, + {"NumError", Type, 0, ""}, + {"NumError.Err", Field, 0, ""}, + {"NumError.Func", Field, 0, ""}, + {"NumError.Num", Field, 0, ""}, + {"ParseBool", Func, 0, "func(str string) (bool, error)"}, + {"ParseComplex", Func, 15, "func(s string, bitSize int) (complex128, error)"}, + {"ParseFloat", Func, 0, "func(s string, bitSize int) (float64, error)"}, + {"ParseInt", Func, 0, "func(s string, base int, bitSize int) (i int64, err error)"}, + {"ParseUint", Func, 0, "func(s string, base int, bitSize int) (uint64, error)"}, + {"Quote", Func, 0, "func(s string) string"}, + {"QuoteRune", Func, 0, "func(r rune) string"}, + {"QuoteRuneToASCII", Func, 0, "func(r rune) string"}, + {"QuoteRuneToGraphic", Func, 6, "func(r rune) string"}, + {"QuoteToASCII", Func, 0, "func(s string) string"}, + {"QuoteToGraphic", Func, 6, "func(s string) string"}, + {"QuotedPrefix", Func, 17, "func(s string) (string, error)"}, + {"Unquote", Func, 0, "func(s string) (string, error)"}, + {"UnquoteChar", Func, 0, "func(s string, quote byte) (value rune, multibyte bool, tail string, err error)"}, + }, + "strings": { + {"(*Builder).Cap", Method, 12, ""}, + {"(*Builder).Grow", Method, 10, ""}, + {"(*Builder).Len", Method, 10, ""}, + {"(*Builder).Reset", Method, 10, ""}, + {"(*Builder).String", Method, 10, ""}, + {"(*Builder).Write", Method, 10, ""}, + {"(*Builder).WriteByte", Method, 10, ""}, + {"(*Builder).WriteRune", Method, 10, ""}, + {"(*Builder).WriteString", Method, 10, ""}, + {"(*Reader).Len", Method, 0, ""}, + {"(*Reader).Read", Method, 0, ""}, + {"(*Reader).ReadAt", Method, 0, ""}, + {"(*Reader).ReadByte", Method, 0, ""}, + {"(*Reader).ReadRune", Method, 0, ""}, + {"(*Reader).Reset", Method, 7, ""}, + {"(*Reader).Seek", Method, 0, ""}, + {"(*Reader).Size", Method, 5, ""}, + {"(*Reader).UnreadByte", Method, 0, ""}, + {"(*Reader).UnreadRune", Method, 0, ""}, + {"(*Reader).WriteTo", Method, 1, ""}, + {"(*Replacer).Replace", Method, 0, ""}, + {"(*Replacer).WriteString", Method, 0, ""}, + {"Builder", Type, 10, ""}, + {"Clone", Func, 18, "func(s string) string"}, + {"Compare", Func, 5, "func(a string, b string) int"}, + {"Contains", Func, 0, "func(s string, substr string) bool"}, + {"ContainsAny", Func, 0, "func(s string, chars string) bool"}, + {"ContainsFunc", Func, 21, "func(s string, f func(rune) bool) bool"}, + {"ContainsRune", Func, 0, "func(s string, r rune) bool"}, + {"Count", Func, 0, "func(s string, substr string) int"}, + {"Cut", Func, 18, "func(s string, sep string) (before string, after string, found bool)"}, + {"CutPrefix", Func, 20, "func(s string, prefix string) (after string, found bool)"}, + {"CutSuffix", Func, 20, "func(s string, suffix string) (before string, found bool)"}, + {"EqualFold", Func, 0, "func(s string, t string) bool"}, + {"Fields", Func, 0, "func(s string) []string"}, + {"FieldsFunc", Func, 0, "func(s string, f func(rune) bool) []string"}, + {"FieldsFuncSeq", Func, 24, "func(s string, f func(rune) bool) iter.Seq[string]"}, + {"FieldsSeq", Func, 24, "func(s string) iter.Seq[string]"}, + {"HasPrefix", Func, 0, "func(s string, prefix string) bool"}, + {"HasSuffix", Func, 0, "func(s string, suffix string) bool"}, + {"Index", Func, 0, "func(s string, substr string) int"}, + {"IndexAny", Func, 0, "func(s string, chars string) int"}, + {"IndexByte", Func, 2, "func(s string, c byte) int"}, + {"IndexFunc", Func, 0, "func(s string, f func(rune) bool) int"}, + {"IndexRune", Func, 0, "func(s string, r rune) int"}, + {"Join", Func, 0, "func(elems []string, sep string) string"}, + {"LastIndex", Func, 0, "func(s string, substr string) int"}, + {"LastIndexAny", Func, 0, "func(s string, chars string) int"}, + {"LastIndexByte", Func, 5, "func(s string, c byte) int"}, + {"LastIndexFunc", Func, 0, "func(s string, f func(rune) bool) int"}, + {"Lines", Func, 24, "func(s string) iter.Seq[string]"}, + {"Map", Func, 0, "func(mapping func(rune) rune, s string) string"}, + {"NewReader", Func, 0, "func(s string) *Reader"}, + {"NewReplacer", Func, 0, "func(oldnew ...string) *Replacer"}, + {"Reader", Type, 0, ""}, + {"Repeat", Func, 0, "func(s string, count int) string"}, + {"Replace", Func, 0, "func(s string, old string, new string, n int) string"}, + {"ReplaceAll", Func, 12, "func(s string, old string, new string) string"}, + {"Replacer", Type, 0, ""}, + {"Split", Func, 0, "func(s string, sep string) []string"}, + {"SplitAfter", Func, 0, "func(s string, sep string) []string"}, + {"SplitAfterN", Func, 0, "func(s string, sep string, n int) []string"}, + {"SplitAfterSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"}, + {"SplitN", Func, 0, "func(s string, sep string, n int) []string"}, + {"SplitSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"}, + {"Title", Func, 0, "func(s string) string"}, + {"ToLower", Func, 0, "func(s string) string"}, + {"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, + {"ToTitle", Func, 0, "func(s string) string"}, + {"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, + {"ToUpper", Func, 0, "func(s string) string"}, + {"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, + {"ToValidUTF8", Func, 13, "func(s string, replacement string) string"}, + {"Trim", Func, 0, "func(s string, cutset string) string"}, + {"TrimFunc", Func, 0, "func(s string, f func(rune) bool) string"}, + {"TrimLeft", Func, 0, "func(s string, cutset string) string"}, + {"TrimLeftFunc", Func, 0, "func(s string, f func(rune) bool) string"}, + {"TrimPrefix", Func, 1, "func(s string, prefix string) string"}, + {"TrimRight", Func, 0, "func(s string, cutset string) string"}, + {"TrimRightFunc", Func, 0, "func(s string, f func(rune) bool) string"}, + {"TrimSpace", Func, 0, "func(s string) string"}, + {"TrimSuffix", Func, 1, "func(s string, suffix string) string"}, + }, + "structs": { + {"HostLayout", Type, 23, ""}, + }, + "sync": { + {"(*Cond).Broadcast", Method, 0, ""}, + {"(*Cond).Signal", Method, 0, ""}, + {"(*Cond).Wait", Method, 0, ""}, + {"(*Map).Clear", Method, 23, ""}, + {"(*Map).CompareAndDelete", Method, 20, ""}, + {"(*Map).CompareAndSwap", Method, 20, ""}, + {"(*Map).Delete", Method, 9, ""}, + {"(*Map).Load", Method, 9, ""}, + {"(*Map).LoadAndDelete", Method, 15, ""}, + {"(*Map).LoadOrStore", Method, 9, ""}, + {"(*Map).Range", Method, 9, ""}, + {"(*Map).Store", Method, 9, ""}, + {"(*Map).Swap", Method, 20, ""}, + {"(*Mutex).Lock", Method, 0, ""}, + {"(*Mutex).TryLock", Method, 18, ""}, + {"(*Mutex).Unlock", Method, 0, ""}, + {"(*Once).Do", Method, 0, ""}, + {"(*Pool).Get", Method, 3, ""}, + {"(*Pool).Put", Method, 3, ""}, + {"(*RWMutex).Lock", Method, 0, ""}, + {"(*RWMutex).RLock", Method, 0, ""}, + {"(*RWMutex).RLocker", Method, 0, ""}, + {"(*RWMutex).RUnlock", Method, 0, ""}, + {"(*RWMutex).TryLock", Method, 18, ""}, + {"(*RWMutex).TryRLock", Method, 18, ""}, + {"(*RWMutex).Unlock", Method, 0, ""}, + {"(*WaitGroup).Add", Method, 0, ""}, + {"(*WaitGroup).Done", Method, 0, ""}, + {"(*WaitGroup).Go", Method, 25, ""}, + {"(*WaitGroup).Wait", Method, 0, ""}, + {"Cond", Type, 0, ""}, + {"Cond.L", Field, 0, ""}, + {"Locker", Type, 0, ""}, + {"Map", Type, 9, ""}, + {"Mutex", Type, 0, ""}, + {"NewCond", Func, 0, "func(l Locker) *Cond"}, + {"Once", Type, 0, ""}, + {"OnceFunc", Func, 21, "func(f func()) func()"}, + {"OnceValue", Func, 21, "func[T any](f func() T) func() T"}, + {"OnceValues", Func, 21, "func[T1, T2 any](f func() (T1, T2)) func() (T1, T2)"}, + {"Pool", Type, 3, ""}, + {"Pool.New", Field, 3, ""}, + {"RWMutex", Type, 0, ""}, + {"WaitGroup", Type, 0, ""}, + }, + "sync/atomic": { + {"(*Bool).CompareAndSwap", Method, 19, ""}, + {"(*Bool).Load", Method, 19, ""}, + {"(*Bool).Store", Method, 19, ""}, + {"(*Bool).Swap", Method, 19, ""}, + {"(*Int32).Add", Method, 19, ""}, + {"(*Int32).And", Method, 23, ""}, + {"(*Int32).CompareAndSwap", Method, 19, ""}, + {"(*Int32).Load", Method, 19, ""}, + {"(*Int32).Or", Method, 23, ""}, + {"(*Int32).Store", Method, 19, ""}, + {"(*Int32).Swap", Method, 19, ""}, + {"(*Int64).Add", Method, 19, ""}, + {"(*Int64).And", Method, 23, ""}, + {"(*Int64).CompareAndSwap", Method, 19, ""}, + {"(*Int64).Load", Method, 19, ""}, + {"(*Int64).Or", Method, 23, ""}, + {"(*Int64).Store", Method, 19, ""}, + {"(*Int64).Swap", Method, 19, ""}, + {"(*Pointer).CompareAndSwap", Method, 19, ""}, + {"(*Pointer).Load", Method, 19, ""}, + {"(*Pointer).Store", Method, 19, ""}, + {"(*Pointer).Swap", Method, 19, ""}, + {"(*Uint32).Add", Method, 19, ""}, + {"(*Uint32).And", Method, 23, ""}, + {"(*Uint32).CompareAndSwap", Method, 19, ""}, + {"(*Uint32).Load", Method, 19, ""}, + {"(*Uint32).Or", Method, 23, ""}, + {"(*Uint32).Store", Method, 19, ""}, + {"(*Uint32).Swap", Method, 19, ""}, + {"(*Uint64).Add", Method, 19, ""}, + {"(*Uint64).And", Method, 23, ""}, + {"(*Uint64).CompareAndSwap", Method, 19, ""}, + {"(*Uint64).Load", Method, 19, ""}, + {"(*Uint64).Or", Method, 23, ""}, + {"(*Uint64).Store", Method, 19, ""}, + {"(*Uint64).Swap", Method, 19, ""}, + {"(*Uintptr).Add", Method, 19, ""}, + {"(*Uintptr).And", Method, 23, ""}, + {"(*Uintptr).CompareAndSwap", Method, 19, ""}, + {"(*Uintptr).Load", Method, 19, ""}, + {"(*Uintptr).Or", Method, 23, ""}, + {"(*Uintptr).Store", Method, 19, ""}, + {"(*Uintptr).Swap", Method, 19, ""}, + {"(*Value).CompareAndSwap", Method, 17, ""}, + {"(*Value).Load", Method, 4, ""}, + {"(*Value).Store", Method, 4, ""}, + {"(*Value).Swap", Method, 17, ""}, + {"AddInt32", Func, 0, "func(addr *int32, delta int32) (new int32)"}, + {"AddInt64", Func, 0, "func(addr *int64, delta int64) (new int64)"}, + {"AddUint32", Func, 0, "func(addr *uint32, delta uint32) (new uint32)"}, + {"AddUint64", Func, 0, "func(addr *uint64, delta uint64) (new uint64)"}, + {"AddUintptr", Func, 0, "func(addr *uintptr, delta uintptr) (new uintptr)"}, + {"AndInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"}, + {"AndInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"}, + {"AndUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"}, + {"AndUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"}, + {"AndUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"}, + {"Bool", Type, 19, ""}, + {"CompareAndSwapInt32", Func, 0, "func(addr *int32, old int32, new int32) (swapped bool)"}, + {"CompareAndSwapInt64", Func, 0, "func(addr *int64, old int64, new int64) (swapped bool)"}, + {"CompareAndSwapPointer", Func, 0, "func(addr *unsafe.Pointer, old unsafe.Pointer, new unsafe.Pointer) (swapped bool)"}, + {"CompareAndSwapUint32", Func, 0, "func(addr *uint32, old uint32, new uint32) (swapped bool)"}, + {"CompareAndSwapUint64", Func, 0, "func(addr *uint64, old uint64, new uint64) (swapped bool)"}, + {"CompareAndSwapUintptr", Func, 0, "func(addr *uintptr, old uintptr, new uintptr) (swapped bool)"}, + {"Int32", Type, 19, ""}, + {"Int64", Type, 19, ""}, + {"LoadInt32", Func, 0, "func(addr *int32) (val int32)"}, + {"LoadInt64", Func, 0, "func(addr *int64) (val int64)"}, + {"LoadPointer", Func, 0, "func(addr *unsafe.Pointer) (val unsafe.Pointer)"}, + {"LoadUint32", Func, 0, "func(addr *uint32) (val uint32)"}, + {"LoadUint64", Func, 0, "func(addr *uint64) (val uint64)"}, + {"LoadUintptr", Func, 0, "func(addr *uintptr) (val uintptr)"}, + {"OrInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"}, + {"OrInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"}, + {"OrUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"}, + {"OrUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"}, + {"OrUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"}, + {"Pointer", Type, 19, ""}, + {"StoreInt32", Func, 0, "func(addr *int32, val int32)"}, + {"StoreInt64", Func, 0, "func(addr *int64, val int64)"}, + {"StorePointer", Func, 0, "func(addr *unsafe.Pointer, val unsafe.Pointer)"}, + {"StoreUint32", Func, 0, "func(addr *uint32, val uint32)"}, + {"StoreUint64", Func, 0, "func(addr *uint64, val uint64)"}, + {"StoreUintptr", Func, 0, "func(addr *uintptr, val uintptr)"}, + {"SwapInt32", Func, 2, "func(addr *int32, new int32) (old int32)"}, + {"SwapInt64", Func, 2, "func(addr *int64, new int64) (old int64)"}, + {"SwapPointer", Func, 2, "func(addr *unsafe.Pointer, new unsafe.Pointer) (old unsafe.Pointer)"}, + {"SwapUint32", Func, 2, "func(addr *uint32, new uint32) (old uint32)"}, + {"SwapUint64", Func, 2, "func(addr *uint64, new uint64) (old uint64)"}, + {"SwapUintptr", Func, 2, "func(addr *uintptr, new uintptr) (old uintptr)"}, + {"Uint32", Type, 19, ""}, + {"Uint64", Type, 19, ""}, + {"Uintptr", Type, 19, ""}, + {"Value", Type, 4, ""}, + }, + "syscall": { + {"(*Cmsghdr).SetLen", Method, 0, ""}, + {"(*DLL).FindProc", Method, 0, ""}, + {"(*DLL).MustFindProc", Method, 0, ""}, + {"(*DLL).Release", Method, 0, ""}, + {"(*DLLError).Error", Method, 0, ""}, + {"(*DLLError).Unwrap", Method, 16, ""}, + {"(*Filetime).Nanoseconds", Method, 0, ""}, + {"(*Iovec).SetLen", Method, 0, ""}, + {"(*LazyDLL).Handle", Method, 0, ""}, + {"(*LazyDLL).Load", Method, 0, ""}, + {"(*LazyDLL).NewProc", Method, 0, ""}, + {"(*LazyProc).Addr", Method, 0, ""}, + {"(*LazyProc).Call", Method, 0, ""}, + {"(*LazyProc).Find", Method, 0, ""}, + {"(*Msghdr).SetControllen", Method, 0, ""}, + {"(*Proc).Addr", Method, 0, ""}, + {"(*Proc).Call", Method, 0, ""}, + {"(*PtraceRegs).PC", Method, 0, ""}, + {"(*PtraceRegs).SetPC", Method, 0, ""}, + {"(*RawSockaddrAny).Sockaddr", Method, 0, ""}, + {"(*SID).Copy", Method, 0, ""}, + {"(*SID).Len", Method, 0, ""}, + {"(*SID).LookupAccount", Method, 0, ""}, + {"(*SID).String", Method, 0, ""}, + {"(*Timespec).Nano", Method, 0, ""}, + {"(*Timespec).Unix", Method, 0, ""}, + {"(*Timeval).Nano", Method, 0, ""}, + {"(*Timeval).Nanoseconds", Method, 0, ""}, + {"(*Timeval).Unix", Method, 0, ""}, + {"(Errno).Error", Method, 0, ""}, + {"(Errno).Is", Method, 13, ""}, + {"(Errno).Temporary", Method, 0, ""}, + {"(Errno).Timeout", Method, 0, ""}, + {"(Signal).Signal", Method, 0, ""}, + {"(Signal).String", Method, 0, ""}, + {"(Token).Close", Method, 0, ""}, + {"(Token).GetTokenPrimaryGroup", Method, 0, ""}, + {"(Token).GetTokenUser", Method, 0, ""}, + {"(Token).GetUserProfileDirectory", Method, 0, ""}, + {"(WaitStatus).Continued", Method, 0, ""}, + {"(WaitStatus).CoreDump", Method, 0, ""}, + {"(WaitStatus).ExitStatus", Method, 0, ""}, + {"(WaitStatus).Exited", Method, 0, ""}, + {"(WaitStatus).Signal", Method, 0, ""}, + {"(WaitStatus).Signaled", Method, 0, ""}, + {"(WaitStatus).StopSignal", Method, 0, ""}, + {"(WaitStatus).Stopped", Method, 0, ""}, + {"(WaitStatus).TrapCause", Method, 0, ""}, + {"AF_ALG", Const, 0, ""}, + {"AF_APPLETALK", Const, 0, ""}, + {"AF_ARP", Const, 0, ""}, + {"AF_ASH", Const, 0, ""}, + {"AF_ATM", Const, 0, ""}, + {"AF_ATMPVC", Const, 0, ""}, + {"AF_ATMSVC", Const, 0, ""}, + {"AF_AX25", Const, 0, ""}, + {"AF_BLUETOOTH", Const, 0, ""}, + {"AF_BRIDGE", Const, 0, ""}, + {"AF_CAIF", Const, 0, ""}, + {"AF_CAN", Const, 0, ""}, + {"AF_CCITT", Const, 0, ""}, + {"AF_CHAOS", Const, 0, ""}, + {"AF_CNT", Const, 0, ""}, + {"AF_COIP", Const, 0, ""}, + {"AF_DATAKIT", Const, 0, ""}, + {"AF_DECnet", Const, 0, ""}, + {"AF_DLI", Const, 0, ""}, + {"AF_E164", Const, 0, ""}, + {"AF_ECMA", Const, 0, ""}, + {"AF_ECONET", Const, 0, ""}, + {"AF_ENCAP", Const, 1, ""}, + {"AF_FILE", Const, 0, ""}, + {"AF_HYLINK", Const, 0, ""}, + {"AF_IEEE80211", Const, 0, ""}, + {"AF_IEEE802154", Const, 0, ""}, + {"AF_IMPLINK", Const, 0, ""}, + {"AF_INET", Const, 0, ""}, + {"AF_INET6", Const, 0, ""}, + {"AF_INET6_SDP", Const, 3, ""}, + {"AF_INET_SDP", Const, 3, ""}, + {"AF_IPX", Const, 0, ""}, + {"AF_IRDA", Const, 0, ""}, + {"AF_ISDN", Const, 0, ""}, + {"AF_ISO", Const, 0, ""}, + {"AF_IUCV", Const, 0, ""}, + {"AF_KEY", Const, 0, ""}, + {"AF_LAT", Const, 0, ""}, + {"AF_LINK", Const, 0, ""}, + {"AF_LLC", Const, 0, ""}, + {"AF_LOCAL", Const, 0, ""}, + {"AF_MAX", Const, 0, ""}, + {"AF_MPLS", Const, 1, ""}, + {"AF_NATM", Const, 0, ""}, + {"AF_NDRV", Const, 0, ""}, + {"AF_NETBEUI", Const, 0, ""}, + {"AF_NETBIOS", Const, 0, ""}, + {"AF_NETGRAPH", Const, 0, ""}, + {"AF_NETLINK", Const, 0, ""}, + {"AF_NETROM", Const, 0, ""}, + {"AF_NS", Const, 0, ""}, + {"AF_OROUTE", Const, 1, ""}, + {"AF_OSI", Const, 0, ""}, + {"AF_PACKET", Const, 0, ""}, + {"AF_PHONET", Const, 0, ""}, + {"AF_PPP", Const, 0, ""}, + {"AF_PPPOX", Const, 0, ""}, + {"AF_PUP", Const, 0, ""}, + {"AF_RDS", Const, 0, ""}, + {"AF_RESERVED_36", Const, 0, ""}, + {"AF_ROSE", Const, 0, ""}, + {"AF_ROUTE", Const, 0, ""}, + {"AF_RXRPC", Const, 0, ""}, + {"AF_SCLUSTER", Const, 0, ""}, + {"AF_SECURITY", Const, 0, ""}, + {"AF_SIP", Const, 0, ""}, + {"AF_SLOW", Const, 0, ""}, + {"AF_SNA", Const, 0, ""}, + {"AF_SYSTEM", Const, 0, ""}, + {"AF_TIPC", Const, 0, ""}, + {"AF_UNIX", Const, 0, ""}, + {"AF_UNSPEC", Const, 0, ""}, + {"AF_UTUN", Const, 16, ""}, + {"AF_VENDOR00", Const, 0, ""}, + {"AF_VENDOR01", Const, 0, ""}, + {"AF_VENDOR02", Const, 0, ""}, + {"AF_VENDOR03", Const, 0, ""}, + {"AF_VENDOR04", Const, 0, ""}, + {"AF_VENDOR05", Const, 0, ""}, + {"AF_VENDOR06", Const, 0, ""}, + {"AF_VENDOR07", Const, 0, ""}, + {"AF_VENDOR08", Const, 0, ""}, + {"AF_VENDOR09", Const, 0, ""}, + {"AF_VENDOR10", Const, 0, ""}, + {"AF_VENDOR11", Const, 0, ""}, + {"AF_VENDOR12", Const, 0, ""}, + {"AF_VENDOR13", Const, 0, ""}, + {"AF_VENDOR14", Const, 0, ""}, + {"AF_VENDOR15", Const, 0, ""}, + {"AF_VENDOR16", Const, 0, ""}, + {"AF_VENDOR17", Const, 0, ""}, + {"AF_VENDOR18", Const, 0, ""}, + {"AF_VENDOR19", Const, 0, ""}, + {"AF_VENDOR20", Const, 0, ""}, + {"AF_VENDOR21", Const, 0, ""}, + {"AF_VENDOR22", Const, 0, ""}, + {"AF_VENDOR23", Const, 0, ""}, + {"AF_VENDOR24", Const, 0, ""}, + {"AF_VENDOR25", Const, 0, ""}, + {"AF_VENDOR26", Const, 0, ""}, + {"AF_VENDOR27", Const, 0, ""}, + {"AF_VENDOR28", Const, 0, ""}, + {"AF_VENDOR29", Const, 0, ""}, + {"AF_VENDOR30", Const, 0, ""}, + {"AF_VENDOR31", Const, 0, ""}, + {"AF_VENDOR32", Const, 0, ""}, + {"AF_VENDOR33", Const, 0, ""}, + {"AF_VENDOR34", Const, 0, ""}, + {"AF_VENDOR35", Const, 0, ""}, + {"AF_VENDOR36", Const, 0, ""}, + {"AF_VENDOR37", Const, 0, ""}, + {"AF_VENDOR38", Const, 0, ""}, + {"AF_VENDOR39", Const, 0, ""}, + {"AF_VENDOR40", Const, 0, ""}, + {"AF_VENDOR41", Const, 0, ""}, + {"AF_VENDOR42", Const, 0, ""}, + {"AF_VENDOR43", Const, 0, ""}, + {"AF_VENDOR44", Const, 0, ""}, + {"AF_VENDOR45", Const, 0, ""}, + {"AF_VENDOR46", Const, 0, ""}, + {"AF_VENDOR47", Const, 0, ""}, + {"AF_WANPIPE", Const, 0, ""}, + {"AF_X25", Const, 0, ""}, + {"AI_CANONNAME", Const, 1, ""}, + {"AI_NUMERICHOST", Const, 1, ""}, + {"AI_PASSIVE", Const, 1, ""}, + {"APPLICATION_ERROR", Const, 0, ""}, + {"ARPHRD_ADAPT", Const, 0, ""}, + {"ARPHRD_APPLETLK", Const, 0, ""}, + {"ARPHRD_ARCNET", Const, 0, ""}, + {"ARPHRD_ASH", Const, 0, ""}, + {"ARPHRD_ATM", Const, 0, ""}, + {"ARPHRD_AX25", Const, 0, ""}, + {"ARPHRD_BIF", Const, 0, ""}, + {"ARPHRD_CHAOS", Const, 0, ""}, + {"ARPHRD_CISCO", Const, 0, ""}, + {"ARPHRD_CSLIP", Const, 0, ""}, + {"ARPHRD_CSLIP6", Const, 0, ""}, + {"ARPHRD_DDCMP", Const, 0, ""}, + {"ARPHRD_DLCI", Const, 0, ""}, + {"ARPHRD_ECONET", Const, 0, ""}, + {"ARPHRD_EETHER", Const, 0, ""}, + {"ARPHRD_ETHER", Const, 0, ""}, + {"ARPHRD_EUI64", Const, 0, ""}, + {"ARPHRD_FCAL", Const, 0, ""}, + {"ARPHRD_FCFABRIC", Const, 0, ""}, + {"ARPHRD_FCPL", Const, 0, ""}, + {"ARPHRD_FCPP", Const, 0, ""}, + {"ARPHRD_FDDI", Const, 0, ""}, + {"ARPHRD_FRAD", Const, 0, ""}, + {"ARPHRD_FRELAY", Const, 1, ""}, + {"ARPHRD_HDLC", Const, 0, ""}, + {"ARPHRD_HIPPI", Const, 0, ""}, + {"ARPHRD_HWX25", Const, 0, ""}, + {"ARPHRD_IEEE1394", Const, 0, ""}, + {"ARPHRD_IEEE802", Const, 0, ""}, + {"ARPHRD_IEEE80211", Const, 0, ""}, + {"ARPHRD_IEEE80211_PRISM", Const, 0, ""}, + {"ARPHRD_IEEE80211_RADIOTAP", Const, 0, ""}, + {"ARPHRD_IEEE802154", Const, 0, ""}, + {"ARPHRD_IEEE802154_PHY", Const, 0, ""}, + {"ARPHRD_IEEE802_TR", Const, 0, ""}, + {"ARPHRD_INFINIBAND", Const, 0, ""}, + {"ARPHRD_IPDDP", Const, 0, ""}, + {"ARPHRD_IPGRE", Const, 0, ""}, + {"ARPHRD_IRDA", Const, 0, ""}, + {"ARPHRD_LAPB", Const, 0, ""}, + {"ARPHRD_LOCALTLK", Const, 0, ""}, + {"ARPHRD_LOOPBACK", Const, 0, ""}, + {"ARPHRD_METRICOM", Const, 0, ""}, + {"ARPHRD_NETROM", Const, 0, ""}, + {"ARPHRD_NONE", Const, 0, ""}, + {"ARPHRD_PIMREG", Const, 0, ""}, + {"ARPHRD_PPP", Const, 0, ""}, + {"ARPHRD_PRONET", Const, 0, ""}, + {"ARPHRD_RAWHDLC", Const, 0, ""}, + {"ARPHRD_ROSE", Const, 0, ""}, + {"ARPHRD_RSRVD", Const, 0, ""}, + {"ARPHRD_SIT", Const, 0, ""}, + {"ARPHRD_SKIP", Const, 0, ""}, + {"ARPHRD_SLIP", Const, 0, ""}, + {"ARPHRD_SLIP6", Const, 0, ""}, + {"ARPHRD_STRIP", Const, 1, ""}, + {"ARPHRD_TUNNEL", Const, 0, ""}, + {"ARPHRD_TUNNEL6", Const, 0, ""}, + {"ARPHRD_VOID", Const, 0, ""}, + {"ARPHRD_X25", Const, 0, ""}, + {"AUTHTYPE_CLIENT", Const, 0, ""}, + {"AUTHTYPE_SERVER", Const, 0, ""}, + {"Accept", Func, 0, "func(fd int) (nfd int, sa Sockaddr, err error)"}, + {"Accept4", Func, 1, "func(fd int, flags int) (nfd int, sa Sockaddr, err error)"}, + {"AcceptEx", Func, 0, ""}, + {"Access", Func, 0, "func(path string, mode uint32) (err error)"}, + {"Acct", Func, 0, "func(path string) (err error)"}, + {"AddrinfoW", Type, 1, ""}, + {"AddrinfoW.Addr", Field, 1, ""}, + {"AddrinfoW.Addrlen", Field, 1, ""}, + {"AddrinfoW.Canonname", Field, 1, ""}, + {"AddrinfoW.Family", Field, 1, ""}, + {"AddrinfoW.Flags", Field, 1, ""}, + {"AddrinfoW.Next", Field, 1, ""}, + {"AddrinfoW.Protocol", Field, 1, ""}, + {"AddrinfoW.Socktype", Field, 1, ""}, + {"Adjtime", Func, 0, ""}, + {"Adjtimex", Func, 0, "func(buf *Timex) (state int, err error)"}, + {"AllThreadsSyscall", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"AllThreadsSyscall6", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"AttachLsf", Func, 0, "func(fd int, i []SockFilter) error"}, + {"B0", Const, 0, ""}, + {"B1000000", Const, 0, ""}, + {"B110", Const, 0, ""}, + {"B115200", Const, 0, ""}, + {"B1152000", Const, 0, ""}, + {"B1200", Const, 0, ""}, + {"B134", Const, 0, ""}, + {"B14400", Const, 1, ""}, + {"B150", Const, 0, ""}, + {"B1500000", Const, 0, ""}, + {"B1800", Const, 0, ""}, + {"B19200", Const, 0, ""}, + {"B200", Const, 0, ""}, + {"B2000000", Const, 0, ""}, + {"B230400", Const, 0, ""}, + {"B2400", Const, 0, ""}, + {"B2500000", Const, 0, ""}, + {"B28800", Const, 1, ""}, + {"B300", Const, 0, ""}, + {"B3000000", Const, 0, ""}, + {"B3500000", Const, 0, ""}, + {"B38400", Const, 0, ""}, + {"B4000000", Const, 0, ""}, + {"B460800", Const, 0, ""}, + {"B4800", Const, 0, ""}, + {"B50", Const, 0, ""}, + {"B500000", Const, 0, ""}, + {"B57600", Const, 0, ""}, + {"B576000", Const, 0, ""}, + {"B600", Const, 0, ""}, + {"B7200", Const, 1, ""}, + {"B75", Const, 0, ""}, + {"B76800", Const, 1, ""}, + {"B921600", Const, 0, ""}, + {"B9600", Const, 0, ""}, + {"BASE_PROTOCOL", Const, 2, ""}, + {"BIOCFEEDBACK", Const, 0, ""}, + {"BIOCFLUSH", Const, 0, ""}, + {"BIOCGBLEN", Const, 0, ""}, + {"BIOCGDIRECTION", Const, 0, ""}, + {"BIOCGDIRFILT", Const, 1, ""}, + {"BIOCGDLT", Const, 0, ""}, + {"BIOCGDLTLIST", Const, 0, ""}, + {"BIOCGETBUFMODE", Const, 0, ""}, + {"BIOCGETIF", Const, 0, ""}, + {"BIOCGETZMAX", Const, 0, ""}, + {"BIOCGFEEDBACK", Const, 1, ""}, + {"BIOCGFILDROP", Const, 1, ""}, + {"BIOCGHDRCMPLT", Const, 0, ""}, + {"BIOCGRSIG", Const, 0, ""}, + {"BIOCGRTIMEOUT", Const, 0, ""}, + {"BIOCGSEESENT", Const, 0, ""}, + {"BIOCGSTATS", Const, 0, ""}, + {"BIOCGSTATSOLD", Const, 1, ""}, + {"BIOCGTSTAMP", Const, 1, ""}, + {"BIOCIMMEDIATE", Const, 0, ""}, + {"BIOCLOCK", Const, 0, ""}, + {"BIOCPROMISC", Const, 0, ""}, + {"BIOCROTZBUF", Const, 0, ""}, + {"BIOCSBLEN", Const, 0, ""}, + {"BIOCSDIRECTION", Const, 0, ""}, + {"BIOCSDIRFILT", Const, 1, ""}, + {"BIOCSDLT", Const, 0, ""}, + {"BIOCSETBUFMODE", Const, 0, ""}, + {"BIOCSETF", Const, 0, ""}, + {"BIOCSETFNR", Const, 0, ""}, + {"BIOCSETIF", Const, 0, ""}, + {"BIOCSETWF", Const, 0, ""}, + {"BIOCSETZBUF", Const, 0, ""}, + {"BIOCSFEEDBACK", Const, 1, ""}, + {"BIOCSFILDROP", Const, 1, ""}, + {"BIOCSHDRCMPLT", Const, 0, ""}, + {"BIOCSRSIG", Const, 0, ""}, + {"BIOCSRTIMEOUT", Const, 0, ""}, + {"BIOCSSEESENT", Const, 0, ""}, + {"BIOCSTCPF", Const, 1, ""}, + {"BIOCSTSTAMP", Const, 1, ""}, + {"BIOCSUDPF", Const, 1, ""}, + {"BIOCVERSION", Const, 0, ""}, + {"BPF_A", Const, 0, ""}, + {"BPF_ABS", Const, 0, ""}, + {"BPF_ADD", Const, 0, ""}, + {"BPF_ALIGNMENT", Const, 0, ""}, + {"BPF_ALIGNMENT32", Const, 1, ""}, + {"BPF_ALU", Const, 0, ""}, + {"BPF_AND", Const, 0, ""}, + {"BPF_B", Const, 0, ""}, + {"BPF_BUFMODE_BUFFER", Const, 0, ""}, + {"BPF_BUFMODE_ZBUF", Const, 0, ""}, + {"BPF_DFLTBUFSIZE", Const, 1, ""}, + {"BPF_DIRECTION_IN", Const, 1, ""}, + {"BPF_DIRECTION_OUT", Const, 1, ""}, + {"BPF_DIV", Const, 0, ""}, + {"BPF_H", Const, 0, ""}, + {"BPF_IMM", Const, 0, ""}, + {"BPF_IND", Const, 0, ""}, + {"BPF_JA", Const, 0, ""}, + {"BPF_JEQ", Const, 0, ""}, + {"BPF_JGE", Const, 0, ""}, + {"BPF_JGT", Const, 0, ""}, + {"BPF_JMP", Const, 0, ""}, + {"BPF_JSET", Const, 0, ""}, + {"BPF_K", Const, 0, ""}, + {"BPF_LD", Const, 0, ""}, + {"BPF_LDX", Const, 0, ""}, + {"BPF_LEN", Const, 0, ""}, + {"BPF_LSH", Const, 0, ""}, + {"BPF_MAJOR_VERSION", Const, 0, ""}, + {"BPF_MAXBUFSIZE", Const, 0, ""}, + {"BPF_MAXINSNS", Const, 0, ""}, + {"BPF_MEM", Const, 0, ""}, + {"BPF_MEMWORDS", Const, 0, ""}, + {"BPF_MINBUFSIZE", Const, 0, ""}, + {"BPF_MINOR_VERSION", Const, 0, ""}, + {"BPF_MISC", Const, 0, ""}, + {"BPF_MSH", Const, 0, ""}, + {"BPF_MUL", Const, 0, ""}, + {"BPF_NEG", Const, 0, ""}, + {"BPF_OR", Const, 0, ""}, + {"BPF_RELEASE", Const, 0, ""}, + {"BPF_RET", Const, 0, ""}, + {"BPF_RSH", Const, 0, ""}, + {"BPF_ST", Const, 0, ""}, + {"BPF_STX", Const, 0, ""}, + {"BPF_SUB", Const, 0, ""}, + {"BPF_TAX", Const, 0, ""}, + {"BPF_TXA", Const, 0, ""}, + {"BPF_T_BINTIME", Const, 1, ""}, + {"BPF_T_BINTIME_FAST", Const, 1, ""}, + {"BPF_T_BINTIME_MONOTONIC", Const, 1, ""}, + {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1, ""}, + {"BPF_T_FAST", Const, 1, ""}, + {"BPF_T_FLAG_MASK", Const, 1, ""}, + {"BPF_T_FORMAT_MASK", Const, 1, ""}, + {"BPF_T_MICROTIME", Const, 1, ""}, + {"BPF_T_MICROTIME_FAST", Const, 1, ""}, + {"BPF_T_MICROTIME_MONOTONIC", Const, 1, ""}, + {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1, ""}, + {"BPF_T_MONOTONIC", Const, 1, ""}, + {"BPF_T_MONOTONIC_FAST", Const, 1, ""}, + {"BPF_T_NANOTIME", Const, 1, ""}, + {"BPF_T_NANOTIME_FAST", Const, 1, ""}, + {"BPF_T_NANOTIME_MONOTONIC", Const, 1, ""}, + {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1, ""}, + {"BPF_T_NONE", Const, 1, ""}, + {"BPF_T_NORMAL", Const, 1, ""}, + {"BPF_W", Const, 0, ""}, + {"BPF_X", Const, 0, ""}, + {"BRKINT", Const, 0, ""}, + {"Bind", Func, 0, "func(fd int, sa Sockaddr) (err error)"}, + {"BindToDevice", Func, 0, "func(fd int, device string) (err error)"}, + {"BpfBuflen", Func, 0, ""}, + {"BpfDatalink", Func, 0, ""}, + {"BpfHdr", Type, 0, ""}, + {"BpfHdr.Caplen", Field, 0, ""}, + {"BpfHdr.Datalen", Field, 0, ""}, + {"BpfHdr.Hdrlen", Field, 0, ""}, + {"BpfHdr.Pad_cgo_0", Field, 0, ""}, + {"BpfHdr.Tstamp", Field, 0, ""}, + {"BpfHeadercmpl", Func, 0, ""}, + {"BpfInsn", Type, 0, ""}, + {"BpfInsn.Code", Field, 0, ""}, + {"BpfInsn.Jf", Field, 0, ""}, + {"BpfInsn.Jt", Field, 0, ""}, + {"BpfInsn.K", Field, 0, ""}, + {"BpfInterface", Func, 0, ""}, + {"BpfJump", Func, 0, ""}, + {"BpfProgram", Type, 0, ""}, + {"BpfProgram.Insns", Field, 0, ""}, + {"BpfProgram.Len", Field, 0, ""}, + {"BpfProgram.Pad_cgo_0", Field, 0, ""}, + {"BpfStat", Type, 0, ""}, + {"BpfStat.Capt", Field, 2, ""}, + {"BpfStat.Drop", Field, 0, ""}, + {"BpfStat.Padding", Field, 2, ""}, + {"BpfStat.Recv", Field, 0, ""}, + {"BpfStats", Func, 0, ""}, + {"BpfStmt", Func, 0, ""}, + {"BpfTimeout", Func, 0, ""}, + {"BpfTimeval", Type, 2, ""}, + {"BpfTimeval.Sec", Field, 2, ""}, + {"BpfTimeval.Usec", Field, 2, ""}, + {"BpfVersion", Type, 0, ""}, + {"BpfVersion.Major", Field, 0, ""}, + {"BpfVersion.Minor", Field, 0, ""}, + {"BpfZbuf", Type, 0, ""}, + {"BpfZbuf.Bufa", Field, 0, ""}, + {"BpfZbuf.Bufb", Field, 0, ""}, + {"BpfZbuf.Buflen", Field, 0, ""}, + {"BpfZbufHeader", Type, 0, ""}, + {"BpfZbufHeader.Kernel_gen", Field, 0, ""}, + {"BpfZbufHeader.Kernel_len", Field, 0, ""}, + {"BpfZbufHeader.User_gen", Field, 0, ""}, + {"BpfZbufHeader.X_bzh_pad", Field, 0, ""}, + {"ByHandleFileInformation", Type, 0, ""}, + {"ByHandleFileInformation.CreationTime", Field, 0, ""}, + {"ByHandleFileInformation.FileAttributes", Field, 0, ""}, + {"ByHandleFileInformation.FileIndexHigh", Field, 0, ""}, + {"ByHandleFileInformation.FileIndexLow", Field, 0, ""}, + {"ByHandleFileInformation.FileSizeHigh", Field, 0, ""}, + {"ByHandleFileInformation.FileSizeLow", Field, 0, ""}, + {"ByHandleFileInformation.LastAccessTime", Field, 0, ""}, + {"ByHandleFileInformation.LastWriteTime", Field, 0, ""}, + {"ByHandleFileInformation.NumberOfLinks", Field, 0, ""}, + {"ByHandleFileInformation.VolumeSerialNumber", Field, 0, ""}, + {"BytePtrFromString", Func, 1, "func(s string) (*byte, error)"}, + {"ByteSliceFromString", Func, 1, "func(s string) ([]byte, error)"}, + {"CCR0_FLUSH", Const, 1, ""}, + {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0, ""}, + {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0, ""}, + {"CERT_CHAIN_POLICY_BASE", Const, 0, ""}, + {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0, ""}, + {"CERT_CHAIN_POLICY_EV", Const, 0, ""}, + {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0, ""}, + {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0, ""}, + {"CERT_CHAIN_POLICY_SSL", Const, 0, ""}, + {"CERT_E_CN_NO_MATCH", Const, 0, ""}, + {"CERT_E_EXPIRED", Const, 0, ""}, + {"CERT_E_PURPOSE", Const, 0, ""}, + {"CERT_E_ROLE", Const, 0, ""}, + {"CERT_E_UNTRUSTEDROOT", Const, 0, ""}, + {"CERT_STORE_ADD_ALWAYS", Const, 0, ""}, + {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0, ""}, + {"CERT_STORE_PROV_MEMORY", Const, 0, ""}, + {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0, ""}, + {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0, ""}, + {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0, ""}, + {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0, ""}, + {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0, ""}, + {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0, ""}, + {"CERT_TRUST_INVALID_EXTENSION", Const, 0, ""}, + {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0, ""}, + {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0, ""}, + {"CERT_TRUST_IS_CYCLIC", Const, 0, ""}, + {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0, ""}, + {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0, ""}, + {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0, ""}, + {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0, ""}, + {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0, ""}, + {"CERT_TRUST_IS_REVOKED", Const, 0, ""}, + {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0, ""}, + {"CERT_TRUST_NO_ERROR", Const, 0, ""}, + {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0, ""}, + {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0, ""}, + {"CFLUSH", Const, 1, ""}, + {"CLOCAL", Const, 0, ""}, + {"CLONE_CHILD_CLEARTID", Const, 2, ""}, + {"CLONE_CHILD_SETTID", Const, 2, ""}, + {"CLONE_CLEAR_SIGHAND", Const, 20, ""}, + {"CLONE_CSIGNAL", Const, 3, ""}, + {"CLONE_DETACHED", Const, 2, ""}, + {"CLONE_FILES", Const, 2, ""}, + {"CLONE_FS", Const, 2, ""}, + {"CLONE_INTO_CGROUP", Const, 20, ""}, + {"CLONE_IO", Const, 2, ""}, + {"CLONE_NEWCGROUP", Const, 20, ""}, + {"CLONE_NEWIPC", Const, 2, ""}, + {"CLONE_NEWNET", Const, 2, ""}, + {"CLONE_NEWNS", Const, 2, ""}, + {"CLONE_NEWPID", Const, 2, ""}, + {"CLONE_NEWTIME", Const, 20, ""}, + {"CLONE_NEWUSER", Const, 2, ""}, + {"CLONE_NEWUTS", Const, 2, ""}, + {"CLONE_PARENT", Const, 2, ""}, + {"CLONE_PARENT_SETTID", Const, 2, ""}, + {"CLONE_PID", Const, 3, ""}, + {"CLONE_PIDFD", Const, 20, ""}, + {"CLONE_PTRACE", Const, 2, ""}, + {"CLONE_SETTLS", Const, 2, ""}, + {"CLONE_SIGHAND", Const, 2, ""}, + {"CLONE_SYSVSEM", Const, 2, ""}, + {"CLONE_THREAD", Const, 2, ""}, + {"CLONE_UNTRACED", Const, 2, ""}, + {"CLONE_VFORK", Const, 2, ""}, + {"CLONE_VM", Const, 2, ""}, + {"CPUID_CFLUSH", Const, 1, ""}, + {"CREAD", Const, 0, ""}, + {"CREATE_ALWAYS", Const, 0, ""}, + {"CREATE_NEW", Const, 0, ""}, + {"CREATE_NEW_PROCESS_GROUP", Const, 1, ""}, + {"CREATE_UNICODE_ENVIRONMENT", Const, 0, ""}, + {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0, ""}, + {"CRYPT_DELETEKEYSET", Const, 0, ""}, + {"CRYPT_MACHINE_KEYSET", Const, 0, ""}, + {"CRYPT_NEWKEYSET", Const, 0, ""}, + {"CRYPT_SILENT", Const, 0, ""}, + {"CRYPT_VERIFYCONTEXT", Const, 0, ""}, + {"CS5", Const, 0, ""}, + {"CS6", Const, 0, ""}, + {"CS7", Const, 0, ""}, + {"CS8", Const, 0, ""}, + {"CSIZE", Const, 0, ""}, + {"CSTART", Const, 1, ""}, + {"CSTATUS", Const, 1, ""}, + {"CSTOP", Const, 1, ""}, + {"CSTOPB", Const, 0, ""}, + {"CSUSP", Const, 1, ""}, + {"CTL_MAXNAME", Const, 0, ""}, + {"CTL_NET", Const, 0, ""}, + {"CTL_QUERY", Const, 1, ""}, + {"CTRL_BREAK_EVENT", Const, 1, ""}, + {"CTRL_CLOSE_EVENT", Const, 14, ""}, + {"CTRL_C_EVENT", Const, 1, ""}, + {"CTRL_LOGOFF_EVENT", Const, 14, ""}, + {"CTRL_SHUTDOWN_EVENT", Const, 14, ""}, + {"CancelIo", Func, 0, ""}, + {"CancelIoEx", Func, 1, ""}, + {"CertAddCertificateContextToStore", Func, 0, ""}, + {"CertChainContext", Type, 0, ""}, + {"CertChainContext.ChainCount", Field, 0, ""}, + {"CertChainContext.Chains", Field, 0, ""}, + {"CertChainContext.HasRevocationFreshnessTime", Field, 0, ""}, + {"CertChainContext.LowerQualityChainCount", Field, 0, ""}, + {"CertChainContext.LowerQualityChains", Field, 0, ""}, + {"CertChainContext.RevocationFreshnessTime", Field, 0, ""}, + {"CertChainContext.Size", Field, 0, ""}, + {"CertChainContext.TrustStatus", Field, 0, ""}, + {"CertChainElement", Type, 0, ""}, + {"CertChainElement.ApplicationUsage", Field, 0, ""}, + {"CertChainElement.CertContext", Field, 0, ""}, + {"CertChainElement.ExtendedErrorInfo", Field, 0, ""}, + {"CertChainElement.IssuanceUsage", Field, 0, ""}, + {"CertChainElement.RevocationInfo", Field, 0, ""}, + {"CertChainElement.Size", Field, 0, ""}, + {"CertChainElement.TrustStatus", Field, 0, ""}, + {"CertChainPara", Type, 0, ""}, + {"CertChainPara.CacheResync", Field, 0, ""}, + {"CertChainPara.CheckRevocationFreshnessTime", Field, 0, ""}, + {"CertChainPara.RequestedUsage", Field, 0, ""}, + {"CertChainPara.RequstedIssuancePolicy", Field, 0, ""}, + {"CertChainPara.RevocationFreshnessTime", Field, 0, ""}, + {"CertChainPara.Size", Field, 0, ""}, + {"CertChainPara.URLRetrievalTimeout", Field, 0, ""}, + {"CertChainPolicyPara", Type, 0, ""}, + {"CertChainPolicyPara.ExtraPolicyPara", Field, 0, ""}, + {"CertChainPolicyPara.Flags", Field, 0, ""}, + {"CertChainPolicyPara.Size", Field, 0, ""}, + {"CertChainPolicyStatus", Type, 0, ""}, + {"CertChainPolicyStatus.ChainIndex", Field, 0, ""}, + {"CertChainPolicyStatus.ElementIndex", Field, 0, ""}, + {"CertChainPolicyStatus.Error", Field, 0, ""}, + {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0, ""}, + {"CertChainPolicyStatus.Size", Field, 0, ""}, + {"CertCloseStore", Func, 0, ""}, + {"CertContext", Type, 0, ""}, + {"CertContext.CertInfo", Field, 0, ""}, + {"CertContext.EncodedCert", Field, 0, ""}, + {"CertContext.EncodingType", Field, 0, ""}, + {"CertContext.Length", Field, 0, ""}, + {"CertContext.Store", Field, 0, ""}, + {"CertCreateCertificateContext", Func, 0, ""}, + {"CertEnhKeyUsage", Type, 0, ""}, + {"CertEnhKeyUsage.Length", Field, 0, ""}, + {"CertEnhKeyUsage.UsageIdentifiers", Field, 0, ""}, + {"CertEnumCertificatesInStore", Func, 0, ""}, + {"CertFreeCertificateChain", Func, 0, ""}, + {"CertFreeCertificateContext", Func, 0, ""}, + {"CertGetCertificateChain", Func, 0, ""}, + {"CertInfo", Type, 11, ""}, + {"CertOpenStore", Func, 0, ""}, + {"CertOpenSystemStore", Func, 0, ""}, + {"CertRevocationCrlInfo", Type, 11, ""}, + {"CertRevocationInfo", Type, 0, ""}, + {"CertRevocationInfo.CrlInfo", Field, 0, ""}, + {"CertRevocationInfo.FreshnessTime", Field, 0, ""}, + {"CertRevocationInfo.HasFreshnessTime", Field, 0, ""}, + {"CertRevocationInfo.OidSpecificInfo", Field, 0, ""}, + {"CertRevocationInfo.RevocationOid", Field, 0, ""}, + {"CertRevocationInfo.RevocationResult", Field, 0, ""}, + {"CertRevocationInfo.Size", Field, 0, ""}, + {"CertSimpleChain", Type, 0, ""}, + {"CertSimpleChain.Elements", Field, 0, ""}, + {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0, ""}, + {"CertSimpleChain.NumElements", Field, 0, ""}, + {"CertSimpleChain.RevocationFreshnessTime", Field, 0, ""}, + {"CertSimpleChain.Size", Field, 0, ""}, + {"CertSimpleChain.TrustListInfo", Field, 0, ""}, + {"CertSimpleChain.TrustStatus", Field, 0, ""}, + {"CertTrustListInfo", Type, 11, ""}, + {"CertTrustStatus", Type, 0, ""}, + {"CertTrustStatus.ErrorStatus", Field, 0, ""}, + {"CertTrustStatus.InfoStatus", Field, 0, ""}, + {"CertUsageMatch", Type, 0, ""}, + {"CertUsageMatch.Type", Field, 0, ""}, + {"CertUsageMatch.Usage", Field, 0, ""}, + {"CertVerifyCertificateChainPolicy", Func, 0, ""}, + {"Chdir", Func, 0, "func(path string) (err error)"}, + {"CheckBpfVersion", Func, 0, ""}, + {"Chflags", Func, 0, ""}, + {"Chmod", Func, 0, "func(path string, mode uint32) (err error)"}, + {"Chown", Func, 0, "func(path string, uid int, gid int) (err error)"}, + {"Chroot", Func, 0, "func(path string) (err error)"}, + {"Clearenv", Func, 0, "func()"}, + {"Close", Func, 0, "func(fd int) (err error)"}, + {"CloseHandle", Func, 0, ""}, + {"CloseOnExec", Func, 0, "func(fd int)"}, + {"Closesocket", Func, 0, ""}, + {"CmsgLen", Func, 0, "func(datalen int) int"}, + {"CmsgSpace", Func, 0, "func(datalen int) int"}, + {"Cmsghdr", Type, 0, ""}, + {"Cmsghdr.Len", Field, 0, ""}, + {"Cmsghdr.Level", Field, 0, ""}, + {"Cmsghdr.Type", Field, 0, ""}, + {"Cmsghdr.X__cmsg_data", Field, 0, ""}, + {"CommandLineToArgv", Func, 0, ""}, + {"ComputerName", Func, 0, ""}, + {"Conn", Type, 9, ""}, + {"Connect", Func, 0, "func(fd int, sa Sockaddr) (err error)"}, + {"ConnectEx", Func, 1, ""}, + {"ConvertSidToStringSid", Func, 0, ""}, + {"ConvertStringSidToSid", Func, 0, ""}, + {"CopySid", Func, 0, ""}, + {"Creat", Func, 0, "func(path string, mode uint32) (fd int, err error)"}, + {"CreateDirectory", Func, 0, ""}, + {"CreateFile", Func, 0, ""}, + {"CreateFileMapping", Func, 0, ""}, + {"CreateHardLink", Func, 4, ""}, + {"CreateIoCompletionPort", Func, 0, ""}, + {"CreatePipe", Func, 0, ""}, + {"CreateProcess", Func, 0, ""}, + {"CreateProcessAsUser", Func, 10, ""}, + {"CreateSymbolicLink", Func, 4, ""}, + {"CreateToolhelp32Snapshot", Func, 4, ""}, + {"Credential", Type, 0, ""}, + {"Credential.Gid", Field, 0, ""}, + {"Credential.Groups", Field, 0, ""}, + {"Credential.NoSetGroups", Field, 9, ""}, + {"Credential.Uid", Field, 0, ""}, + {"CryptAcquireContext", Func, 0, ""}, + {"CryptGenRandom", Func, 0, ""}, + {"CryptReleaseContext", Func, 0, ""}, + {"DIOCBSFLUSH", Const, 1, ""}, + {"DIOCOSFPFLUSH", Const, 1, ""}, + {"DLL", Type, 0, ""}, + {"DLL.Handle", Field, 0, ""}, + {"DLL.Name", Field, 0, ""}, + {"DLLError", Type, 0, ""}, + {"DLLError.Err", Field, 0, ""}, + {"DLLError.Msg", Field, 0, ""}, + {"DLLError.ObjName", Field, 0, ""}, + {"DLT_A429", Const, 0, ""}, + {"DLT_A653_ICM", Const, 0, ""}, + {"DLT_AIRONET_HEADER", Const, 0, ""}, + {"DLT_AOS", Const, 1, ""}, + {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0, ""}, + {"DLT_ARCNET", Const, 0, ""}, + {"DLT_ARCNET_LINUX", Const, 0, ""}, + {"DLT_ATM_CLIP", Const, 0, ""}, + {"DLT_ATM_RFC1483", Const, 0, ""}, + {"DLT_AURORA", Const, 0, ""}, + {"DLT_AX25", Const, 0, ""}, + {"DLT_AX25_KISS", Const, 0, ""}, + {"DLT_BACNET_MS_TP", Const, 0, ""}, + {"DLT_BLUETOOTH_HCI_H4", Const, 0, ""}, + {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0, ""}, + {"DLT_CAN20B", Const, 0, ""}, + {"DLT_CAN_SOCKETCAN", Const, 1, ""}, + {"DLT_CHAOS", Const, 0, ""}, + {"DLT_CHDLC", Const, 0, ""}, + {"DLT_CISCO_IOS", Const, 0, ""}, + {"DLT_C_HDLC", Const, 0, ""}, + {"DLT_C_HDLC_WITH_DIR", Const, 0, ""}, + {"DLT_DBUS", Const, 1, ""}, + {"DLT_DECT", Const, 1, ""}, + {"DLT_DOCSIS", Const, 0, ""}, + {"DLT_DVB_CI", Const, 1, ""}, + {"DLT_ECONET", Const, 0, ""}, + {"DLT_EN10MB", Const, 0, ""}, + {"DLT_EN3MB", Const, 0, ""}, + {"DLT_ENC", Const, 0, ""}, + {"DLT_ERF", Const, 0, ""}, + {"DLT_ERF_ETH", Const, 0, ""}, + {"DLT_ERF_POS", Const, 0, ""}, + {"DLT_FC_2", Const, 1, ""}, + {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1, ""}, + {"DLT_FDDI", Const, 0, ""}, + {"DLT_FLEXRAY", Const, 0, ""}, + {"DLT_FRELAY", Const, 0, ""}, + {"DLT_FRELAY_WITH_DIR", Const, 0, ""}, + {"DLT_GCOM_SERIAL", Const, 0, ""}, + {"DLT_GCOM_T1E1", Const, 0, ""}, + {"DLT_GPF_F", Const, 0, ""}, + {"DLT_GPF_T", Const, 0, ""}, + {"DLT_GPRS_LLC", Const, 0, ""}, + {"DLT_GSMTAP_ABIS", Const, 1, ""}, + {"DLT_GSMTAP_UM", Const, 1, ""}, + {"DLT_HDLC", Const, 1, ""}, + {"DLT_HHDLC", Const, 0, ""}, + {"DLT_HIPPI", Const, 1, ""}, + {"DLT_IBM_SN", Const, 0, ""}, + {"DLT_IBM_SP", Const, 0, ""}, + {"DLT_IEEE802", Const, 0, ""}, + {"DLT_IEEE802_11", Const, 0, ""}, + {"DLT_IEEE802_11_RADIO", Const, 0, ""}, + {"DLT_IEEE802_11_RADIO_AVS", Const, 0, ""}, + {"DLT_IEEE802_15_4", Const, 0, ""}, + {"DLT_IEEE802_15_4_LINUX", Const, 0, ""}, + {"DLT_IEEE802_15_4_NOFCS", Const, 1, ""}, + {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0, ""}, + {"DLT_IEEE802_16_MAC_CPS", Const, 0, ""}, + {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0, ""}, + {"DLT_IPFILTER", Const, 0, ""}, + {"DLT_IPMB", Const, 0, ""}, + {"DLT_IPMB_LINUX", Const, 0, ""}, + {"DLT_IPNET", Const, 1, ""}, + {"DLT_IPOIB", Const, 1, ""}, + {"DLT_IPV4", Const, 1, ""}, + {"DLT_IPV6", Const, 1, ""}, + {"DLT_IP_OVER_FC", Const, 0, ""}, + {"DLT_JUNIPER_ATM1", Const, 0, ""}, + {"DLT_JUNIPER_ATM2", Const, 0, ""}, + {"DLT_JUNIPER_ATM_CEMIC", Const, 1, ""}, + {"DLT_JUNIPER_CHDLC", Const, 0, ""}, + {"DLT_JUNIPER_ES", Const, 0, ""}, + {"DLT_JUNIPER_ETHER", Const, 0, ""}, + {"DLT_JUNIPER_FIBRECHANNEL", Const, 1, ""}, + {"DLT_JUNIPER_FRELAY", Const, 0, ""}, + {"DLT_JUNIPER_GGSN", Const, 0, ""}, + {"DLT_JUNIPER_ISM", Const, 0, ""}, + {"DLT_JUNIPER_MFR", Const, 0, ""}, + {"DLT_JUNIPER_MLFR", Const, 0, ""}, + {"DLT_JUNIPER_MLPPP", Const, 0, ""}, + {"DLT_JUNIPER_MONITOR", Const, 0, ""}, + {"DLT_JUNIPER_PIC_PEER", Const, 0, ""}, + {"DLT_JUNIPER_PPP", Const, 0, ""}, + {"DLT_JUNIPER_PPPOE", Const, 0, ""}, + {"DLT_JUNIPER_PPPOE_ATM", Const, 0, ""}, + {"DLT_JUNIPER_SERVICES", Const, 0, ""}, + {"DLT_JUNIPER_SRX_E2E", Const, 1, ""}, + {"DLT_JUNIPER_ST", Const, 0, ""}, + {"DLT_JUNIPER_VP", Const, 0, ""}, + {"DLT_JUNIPER_VS", Const, 1, ""}, + {"DLT_LAPB_WITH_DIR", Const, 0, ""}, + {"DLT_LAPD", Const, 0, ""}, + {"DLT_LIN", Const, 0, ""}, + {"DLT_LINUX_EVDEV", Const, 1, ""}, + {"DLT_LINUX_IRDA", Const, 0, ""}, + {"DLT_LINUX_LAPD", Const, 0, ""}, + {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0, ""}, + {"DLT_LINUX_SLL", Const, 0, ""}, + {"DLT_LOOP", Const, 0, ""}, + {"DLT_LTALK", Const, 0, ""}, + {"DLT_MATCHING_MAX", Const, 1, ""}, + {"DLT_MATCHING_MIN", Const, 1, ""}, + {"DLT_MFR", Const, 0, ""}, + {"DLT_MOST", Const, 0, ""}, + {"DLT_MPEG_2_TS", Const, 1, ""}, + {"DLT_MPLS", Const, 1, ""}, + {"DLT_MTP2", Const, 0, ""}, + {"DLT_MTP2_WITH_PHDR", Const, 0, ""}, + {"DLT_MTP3", Const, 0, ""}, + {"DLT_MUX27010", Const, 1, ""}, + {"DLT_NETANALYZER", Const, 1, ""}, + {"DLT_NETANALYZER_TRANSPARENT", Const, 1, ""}, + {"DLT_NFC_LLCP", Const, 1, ""}, + {"DLT_NFLOG", Const, 1, ""}, + {"DLT_NG40", Const, 1, ""}, + {"DLT_NULL", Const, 0, ""}, + {"DLT_PCI_EXP", Const, 0, ""}, + {"DLT_PFLOG", Const, 0, ""}, + {"DLT_PFSYNC", Const, 0, ""}, + {"DLT_PPI", Const, 0, ""}, + {"DLT_PPP", Const, 0, ""}, + {"DLT_PPP_BSDOS", Const, 0, ""}, + {"DLT_PPP_ETHER", Const, 0, ""}, + {"DLT_PPP_PPPD", Const, 0, ""}, + {"DLT_PPP_SERIAL", Const, 0, ""}, + {"DLT_PPP_WITH_DIR", Const, 0, ""}, + {"DLT_PPP_WITH_DIRECTION", Const, 0, ""}, + {"DLT_PRISM_HEADER", Const, 0, ""}, + {"DLT_PRONET", Const, 0, ""}, + {"DLT_RAIF1", Const, 0, ""}, + {"DLT_RAW", Const, 0, ""}, + {"DLT_RAWAF_MASK", Const, 1, ""}, + {"DLT_RIO", Const, 0, ""}, + {"DLT_SCCP", Const, 0, ""}, + {"DLT_SITA", Const, 0, ""}, + {"DLT_SLIP", Const, 0, ""}, + {"DLT_SLIP_BSDOS", Const, 0, ""}, + {"DLT_STANAG_5066_D_PDU", Const, 1, ""}, + {"DLT_SUNATM", Const, 0, ""}, + {"DLT_SYMANTEC_FIREWALL", Const, 0, ""}, + {"DLT_TZSP", Const, 0, ""}, + {"DLT_USB", Const, 0, ""}, + {"DLT_USB_LINUX", Const, 0, ""}, + {"DLT_USB_LINUX_MMAPPED", Const, 1, ""}, + {"DLT_USER0", Const, 0, ""}, + {"DLT_USER1", Const, 0, ""}, + {"DLT_USER10", Const, 0, ""}, + {"DLT_USER11", Const, 0, ""}, + {"DLT_USER12", Const, 0, ""}, + {"DLT_USER13", Const, 0, ""}, + {"DLT_USER14", Const, 0, ""}, + {"DLT_USER15", Const, 0, ""}, + {"DLT_USER2", Const, 0, ""}, + {"DLT_USER3", Const, 0, ""}, + {"DLT_USER4", Const, 0, ""}, + {"DLT_USER5", Const, 0, ""}, + {"DLT_USER6", Const, 0, ""}, + {"DLT_USER7", Const, 0, ""}, + {"DLT_USER8", Const, 0, ""}, + {"DLT_USER9", Const, 0, ""}, + {"DLT_WIHART", Const, 1, ""}, + {"DLT_X2E_SERIAL", Const, 0, ""}, + {"DLT_X2E_XORAYA", Const, 0, ""}, + {"DNSMXData", Type, 0, ""}, + {"DNSMXData.NameExchange", Field, 0, ""}, + {"DNSMXData.Pad", Field, 0, ""}, + {"DNSMXData.Preference", Field, 0, ""}, + {"DNSPTRData", Type, 0, ""}, + {"DNSPTRData.Host", Field, 0, ""}, + {"DNSRecord", Type, 0, ""}, + {"DNSRecord.Data", Field, 0, ""}, + {"DNSRecord.Dw", Field, 0, ""}, + {"DNSRecord.Length", Field, 0, ""}, + {"DNSRecord.Name", Field, 0, ""}, + {"DNSRecord.Next", Field, 0, ""}, + {"DNSRecord.Reserved", Field, 0, ""}, + {"DNSRecord.Ttl", Field, 0, ""}, + {"DNSRecord.Type", Field, 0, ""}, + {"DNSSRVData", Type, 0, ""}, + {"DNSSRVData.Pad", Field, 0, ""}, + {"DNSSRVData.Port", Field, 0, ""}, + {"DNSSRVData.Priority", Field, 0, ""}, + {"DNSSRVData.Target", Field, 0, ""}, + {"DNSSRVData.Weight", Field, 0, ""}, + {"DNSTXTData", Type, 0, ""}, + {"DNSTXTData.StringArray", Field, 0, ""}, + {"DNSTXTData.StringCount", Field, 0, ""}, + {"DNS_INFO_NO_RECORDS", Const, 4, ""}, + {"DNS_TYPE_A", Const, 0, ""}, + {"DNS_TYPE_A6", Const, 0, ""}, + {"DNS_TYPE_AAAA", Const, 0, ""}, + {"DNS_TYPE_ADDRS", Const, 0, ""}, + {"DNS_TYPE_AFSDB", Const, 0, ""}, + {"DNS_TYPE_ALL", Const, 0, ""}, + {"DNS_TYPE_ANY", Const, 0, ""}, + {"DNS_TYPE_ATMA", Const, 0, ""}, + {"DNS_TYPE_AXFR", Const, 0, ""}, + {"DNS_TYPE_CERT", Const, 0, ""}, + {"DNS_TYPE_CNAME", Const, 0, ""}, + {"DNS_TYPE_DHCID", Const, 0, ""}, + {"DNS_TYPE_DNAME", Const, 0, ""}, + {"DNS_TYPE_DNSKEY", Const, 0, ""}, + {"DNS_TYPE_DS", Const, 0, ""}, + {"DNS_TYPE_EID", Const, 0, ""}, + {"DNS_TYPE_GID", Const, 0, ""}, + {"DNS_TYPE_GPOS", Const, 0, ""}, + {"DNS_TYPE_HINFO", Const, 0, ""}, + {"DNS_TYPE_ISDN", Const, 0, ""}, + {"DNS_TYPE_IXFR", Const, 0, ""}, + {"DNS_TYPE_KEY", Const, 0, ""}, + {"DNS_TYPE_KX", Const, 0, ""}, + {"DNS_TYPE_LOC", Const, 0, ""}, + {"DNS_TYPE_MAILA", Const, 0, ""}, + {"DNS_TYPE_MAILB", Const, 0, ""}, + {"DNS_TYPE_MB", Const, 0, ""}, + {"DNS_TYPE_MD", Const, 0, ""}, + {"DNS_TYPE_MF", Const, 0, ""}, + {"DNS_TYPE_MG", Const, 0, ""}, + {"DNS_TYPE_MINFO", Const, 0, ""}, + {"DNS_TYPE_MR", Const, 0, ""}, + {"DNS_TYPE_MX", Const, 0, ""}, + {"DNS_TYPE_NAPTR", Const, 0, ""}, + {"DNS_TYPE_NBSTAT", Const, 0, ""}, + {"DNS_TYPE_NIMLOC", Const, 0, ""}, + {"DNS_TYPE_NS", Const, 0, ""}, + {"DNS_TYPE_NSAP", Const, 0, ""}, + {"DNS_TYPE_NSAPPTR", Const, 0, ""}, + {"DNS_TYPE_NSEC", Const, 0, ""}, + {"DNS_TYPE_NULL", Const, 0, ""}, + {"DNS_TYPE_NXT", Const, 0, ""}, + {"DNS_TYPE_OPT", Const, 0, ""}, + {"DNS_TYPE_PTR", Const, 0, ""}, + {"DNS_TYPE_PX", Const, 0, ""}, + {"DNS_TYPE_RP", Const, 0, ""}, + {"DNS_TYPE_RRSIG", Const, 0, ""}, + {"DNS_TYPE_RT", Const, 0, ""}, + {"DNS_TYPE_SIG", Const, 0, ""}, + {"DNS_TYPE_SINK", Const, 0, ""}, + {"DNS_TYPE_SOA", Const, 0, ""}, + {"DNS_TYPE_SRV", Const, 0, ""}, + {"DNS_TYPE_TEXT", Const, 0, ""}, + {"DNS_TYPE_TKEY", Const, 0, ""}, + {"DNS_TYPE_TSIG", Const, 0, ""}, + {"DNS_TYPE_UID", Const, 0, ""}, + {"DNS_TYPE_UINFO", Const, 0, ""}, + {"DNS_TYPE_UNSPEC", Const, 0, ""}, + {"DNS_TYPE_WINS", Const, 0, ""}, + {"DNS_TYPE_WINSR", Const, 0, ""}, + {"DNS_TYPE_WKS", Const, 0, ""}, + {"DNS_TYPE_X25", Const, 0, ""}, + {"DT_BLK", Const, 0, ""}, + {"DT_CHR", Const, 0, ""}, + {"DT_DIR", Const, 0, ""}, + {"DT_FIFO", Const, 0, ""}, + {"DT_LNK", Const, 0, ""}, + {"DT_REG", Const, 0, ""}, + {"DT_SOCK", Const, 0, ""}, + {"DT_UNKNOWN", Const, 0, ""}, + {"DT_WHT", Const, 0, ""}, + {"DUPLICATE_CLOSE_SOURCE", Const, 0, ""}, + {"DUPLICATE_SAME_ACCESS", Const, 0, ""}, + {"DeleteFile", Func, 0, ""}, + {"DetachLsf", Func, 0, "func(fd int) error"}, + {"DeviceIoControl", Func, 4, ""}, + {"Dirent", Type, 0, ""}, + {"Dirent.Fileno", Field, 0, ""}, + {"Dirent.Ino", Field, 0, ""}, + {"Dirent.Name", Field, 0, ""}, + {"Dirent.Namlen", Field, 0, ""}, + {"Dirent.Off", Field, 0, ""}, + {"Dirent.Pad0", Field, 12, ""}, + {"Dirent.Pad1", Field, 12, ""}, + {"Dirent.Pad_cgo_0", Field, 0, ""}, + {"Dirent.Reclen", Field, 0, ""}, + {"Dirent.Seekoff", Field, 0, ""}, + {"Dirent.Type", Field, 0, ""}, + {"Dirent.X__d_padding", Field, 3, ""}, + {"DnsNameCompare", Func, 4, ""}, + {"DnsQuery", Func, 0, ""}, + {"DnsRecordListFree", Func, 0, ""}, + {"DnsSectionAdditional", Const, 4, ""}, + {"DnsSectionAnswer", Const, 4, ""}, + {"DnsSectionAuthority", Const, 4, ""}, + {"DnsSectionQuestion", Const, 4, ""}, + {"Dup", Func, 0, "func(oldfd int) (fd int, err error)"}, + {"Dup2", Func, 0, "func(oldfd int, newfd int) (err error)"}, + {"Dup3", Func, 2, "func(oldfd int, newfd int, flags int) (err error)"}, + {"DuplicateHandle", Func, 0, ""}, + {"E2BIG", Const, 0, ""}, + {"EACCES", Const, 0, ""}, + {"EADDRINUSE", Const, 0, ""}, + {"EADDRNOTAVAIL", Const, 0, ""}, + {"EADV", Const, 0, ""}, + {"EAFNOSUPPORT", Const, 0, ""}, + {"EAGAIN", Const, 0, ""}, + {"EALREADY", Const, 0, ""}, + {"EAUTH", Const, 0, ""}, + {"EBADARCH", Const, 0, ""}, + {"EBADE", Const, 0, ""}, + {"EBADEXEC", Const, 0, ""}, + {"EBADF", Const, 0, ""}, + {"EBADFD", Const, 0, ""}, + {"EBADMACHO", Const, 0, ""}, + {"EBADMSG", Const, 0, ""}, + {"EBADR", Const, 0, ""}, + {"EBADRPC", Const, 0, ""}, + {"EBADRQC", Const, 0, ""}, + {"EBADSLT", Const, 0, ""}, + {"EBFONT", Const, 0, ""}, + {"EBUSY", Const, 0, ""}, + {"ECANCELED", Const, 0, ""}, + {"ECAPMODE", Const, 1, ""}, + {"ECHILD", Const, 0, ""}, + {"ECHO", Const, 0, ""}, + {"ECHOCTL", Const, 0, ""}, + {"ECHOE", Const, 0, ""}, + {"ECHOK", Const, 0, ""}, + {"ECHOKE", Const, 0, ""}, + {"ECHONL", Const, 0, ""}, + {"ECHOPRT", Const, 0, ""}, + {"ECHRNG", Const, 0, ""}, + {"ECOMM", Const, 0, ""}, + {"ECONNABORTED", Const, 0, ""}, + {"ECONNREFUSED", Const, 0, ""}, + {"ECONNRESET", Const, 0, ""}, + {"EDEADLK", Const, 0, ""}, + {"EDEADLOCK", Const, 0, ""}, + {"EDESTADDRREQ", Const, 0, ""}, + {"EDEVERR", Const, 0, ""}, + {"EDOM", Const, 0, ""}, + {"EDOOFUS", Const, 0, ""}, + {"EDOTDOT", Const, 0, ""}, + {"EDQUOT", Const, 0, ""}, + {"EEXIST", Const, 0, ""}, + {"EFAULT", Const, 0, ""}, + {"EFBIG", Const, 0, ""}, + {"EFER_LMA", Const, 1, ""}, + {"EFER_LME", Const, 1, ""}, + {"EFER_NXE", Const, 1, ""}, + {"EFER_SCE", Const, 1, ""}, + {"EFTYPE", Const, 0, ""}, + {"EHOSTDOWN", Const, 0, ""}, + {"EHOSTUNREACH", Const, 0, ""}, + {"EHWPOISON", Const, 0, ""}, + {"EIDRM", Const, 0, ""}, + {"EILSEQ", Const, 0, ""}, + {"EINPROGRESS", Const, 0, ""}, + {"EINTR", Const, 0, ""}, + {"EINVAL", Const, 0, ""}, + {"EIO", Const, 0, ""}, + {"EIPSEC", Const, 1, ""}, + {"EISCONN", Const, 0, ""}, + {"EISDIR", Const, 0, ""}, + {"EISNAM", Const, 0, ""}, + {"EKEYEXPIRED", Const, 0, ""}, + {"EKEYREJECTED", Const, 0, ""}, + {"EKEYREVOKED", Const, 0, ""}, + {"EL2HLT", Const, 0, ""}, + {"EL2NSYNC", Const, 0, ""}, + {"EL3HLT", Const, 0, ""}, + {"EL3RST", Const, 0, ""}, + {"ELAST", Const, 0, ""}, + {"ELF_NGREG", Const, 0, ""}, + {"ELF_PRARGSZ", Const, 0, ""}, + {"ELIBACC", Const, 0, ""}, + {"ELIBBAD", Const, 0, ""}, + {"ELIBEXEC", Const, 0, ""}, + {"ELIBMAX", Const, 0, ""}, + {"ELIBSCN", Const, 0, ""}, + {"ELNRNG", Const, 0, ""}, + {"ELOOP", Const, 0, ""}, + {"EMEDIUMTYPE", Const, 0, ""}, + {"EMFILE", Const, 0, ""}, + {"EMLINK", Const, 0, ""}, + {"EMSGSIZE", Const, 0, ""}, + {"EMT_TAGOVF", Const, 1, ""}, + {"EMULTIHOP", Const, 0, ""}, + {"EMUL_ENABLED", Const, 1, ""}, + {"EMUL_LINUX", Const, 1, ""}, + {"EMUL_LINUX32", Const, 1, ""}, + {"EMUL_MAXID", Const, 1, ""}, + {"EMUL_NATIVE", Const, 1, ""}, + {"ENAMETOOLONG", Const, 0, ""}, + {"ENAVAIL", Const, 0, ""}, + {"ENDRUNDISC", Const, 1, ""}, + {"ENEEDAUTH", Const, 0, ""}, + {"ENETDOWN", Const, 0, ""}, + {"ENETRESET", Const, 0, ""}, + {"ENETUNREACH", Const, 0, ""}, + {"ENFILE", Const, 0, ""}, + {"ENOANO", Const, 0, ""}, + {"ENOATTR", Const, 0, ""}, + {"ENOBUFS", Const, 0, ""}, + {"ENOCSI", Const, 0, ""}, + {"ENODATA", Const, 0, ""}, + {"ENODEV", Const, 0, ""}, + {"ENOENT", Const, 0, ""}, + {"ENOEXEC", Const, 0, ""}, + {"ENOKEY", Const, 0, ""}, + {"ENOLCK", Const, 0, ""}, + {"ENOLINK", Const, 0, ""}, + {"ENOMEDIUM", Const, 0, ""}, + {"ENOMEM", Const, 0, ""}, + {"ENOMSG", Const, 0, ""}, + {"ENONET", Const, 0, ""}, + {"ENOPKG", Const, 0, ""}, + {"ENOPOLICY", Const, 0, ""}, + {"ENOPROTOOPT", Const, 0, ""}, + {"ENOSPC", Const, 0, ""}, + {"ENOSR", Const, 0, ""}, + {"ENOSTR", Const, 0, ""}, + {"ENOSYS", Const, 0, ""}, + {"ENOTBLK", Const, 0, ""}, + {"ENOTCAPABLE", Const, 0, ""}, + {"ENOTCONN", Const, 0, ""}, + {"ENOTDIR", Const, 0, ""}, + {"ENOTEMPTY", Const, 0, ""}, + {"ENOTNAM", Const, 0, ""}, + {"ENOTRECOVERABLE", Const, 0, ""}, + {"ENOTSOCK", Const, 0, ""}, + {"ENOTSUP", Const, 0, ""}, + {"ENOTTY", Const, 0, ""}, + {"ENOTUNIQ", Const, 0, ""}, + {"ENXIO", Const, 0, ""}, + {"EN_SW_CTL_INF", Const, 1, ""}, + {"EN_SW_CTL_PREC", Const, 1, ""}, + {"EN_SW_CTL_ROUND", Const, 1, ""}, + {"EN_SW_DATACHAIN", Const, 1, ""}, + {"EN_SW_DENORM", Const, 1, ""}, + {"EN_SW_INVOP", Const, 1, ""}, + {"EN_SW_OVERFLOW", Const, 1, ""}, + {"EN_SW_PRECLOSS", Const, 1, ""}, + {"EN_SW_UNDERFLOW", Const, 1, ""}, + {"EN_SW_ZERODIV", Const, 1, ""}, + {"EOPNOTSUPP", Const, 0, ""}, + {"EOVERFLOW", Const, 0, ""}, + {"EOWNERDEAD", Const, 0, ""}, + {"EPERM", Const, 0, ""}, + {"EPFNOSUPPORT", Const, 0, ""}, + {"EPIPE", Const, 0, ""}, + {"EPOLLERR", Const, 0, ""}, + {"EPOLLET", Const, 0, ""}, + {"EPOLLHUP", Const, 0, ""}, + {"EPOLLIN", Const, 0, ""}, + {"EPOLLMSG", Const, 0, ""}, + {"EPOLLONESHOT", Const, 0, ""}, + {"EPOLLOUT", Const, 0, ""}, + {"EPOLLPRI", Const, 0, ""}, + {"EPOLLRDBAND", Const, 0, ""}, + {"EPOLLRDHUP", Const, 0, ""}, + {"EPOLLRDNORM", Const, 0, ""}, + {"EPOLLWRBAND", Const, 0, ""}, + {"EPOLLWRNORM", Const, 0, ""}, + {"EPOLL_CLOEXEC", Const, 0, ""}, + {"EPOLL_CTL_ADD", Const, 0, ""}, + {"EPOLL_CTL_DEL", Const, 0, ""}, + {"EPOLL_CTL_MOD", Const, 0, ""}, + {"EPOLL_NONBLOCK", Const, 0, ""}, + {"EPROCLIM", Const, 0, ""}, + {"EPROCUNAVAIL", Const, 0, ""}, + {"EPROGMISMATCH", Const, 0, ""}, + {"EPROGUNAVAIL", Const, 0, ""}, + {"EPROTO", Const, 0, ""}, + {"EPROTONOSUPPORT", Const, 0, ""}, + {"EPROTOTYPE", Const, 0, ""}, + {"EPWROFF", Const, 0, ""}, + {"EQFULL", Const, 16, ""}, + {"ERANGE", Const, 0, ""}, + {"EREMCHG", Const, 0, ""}, + {"EREMOTE", Const, 0, ""}, + {"EREMOTEIO", Const, 0, ""}, + {"ERESTART", Const, 0, ""}, + {"ERFKILL", Const, 0, ""}, + {"EROFS", Const, 0, ""}, + {"ERPCMISMATCH", Const, 0, ""}, + {"ERROR_ACCESS_DENIED", Const, 0, ""}, + {"ERROR_ALREADY_EXISTS", Const, 0, ""}, + {"ERROR_BROKEN_PIPE", Const, 0, ""}, + {"ERROR_BUFFER_OVERFLOW", Const, 0, ""}, + {"ERROR_DIR_NOT_EMPTY", Const, 8, ""}, + {"ERROR_ENVVAR_NOT_FOUND", Const, 0, ""}, + {"ERROR_FILE_EXISTS", Const, 0, ""}, + {"ERROR_FILE_NOT_FOUND", Const, 0, ""}, + {"ERROR_HANDLE_EOF", Const, 2, ""}, + {"ERROR_INSUFFICIENT_BUFFER", Const, 0, ""}, + {"ERROR_IO_PENDING", Const, 0, ""}, + {"ERROR_MOD_NOT_FOUND", Const, 0, ""}, + {"ERROR_MORE_DATA", Const, 3, ""}, + {"ERROR_NETNAME_DELETED", Const, 3, ""}, + {"ERROR_NOT_FOUND", Const, 1, ""}, + {"ERROR_NO_MORE_FILES", Const, 0, ""}, + {"ERROR_OPERATION_ABORTED", Const, 0, ""}, + {"ERROR_PATH_NOT_FOUND", Const, 0, ""}, + {"ERROR_PRIVILEGE_NOT_HELD", Const, 4, ""}, + {"ERROR_PROC_NOT_FOUND", Const, 0, ""}, + {"ESHLIBVERS", Const, 0, ""}, + {"ESHUTDOWN", Const, 0, ""}, + {"ESOCKTNOSUPPORT", Const, 0, ""}, + {"ESPIPE", Const, 0, ""}, + {"ESRCH", Const, 0, ""}, + {"ESRMNT", Const, 0, ""}, + {"ESTALE", Const, 0, ""}, + {"ESTRPIPE", Const, 0, ""}, + {"ETHERCAP_JUMBO_MTU", Const, 1, ""}, + {"ETHERCAP_VLAN_HWTAGGING", Const, 1, ""}, + {"ETHERCAP_VLAN_MTU", Const, 1, ""}, + {"ETHERMIN", Const, 1, ""}, + {"ETHERMTU", Const, 1, ""}, + {"ETHERMTU_JUMBO", Const, 1, ""}, + {"ETHERTYPE_8023", Const, 1, ""}, + {"ETHERTYPE_AARP", Const, 1, ""}, + {"ETHERTYPE_ACCTON", Const, 1, ""}, + {"ETHERTYPE_AEONIC", Const, 1, ""}, + {"ETHERTYPE_ALPHA", Const, 1, ""}, + {"ETHERTYPE_AMBER", Const, 1, ""}, + {"ETHERTYPE_AMOEBA", Const, 1, ""}, + {"ETHERTYPE_AOE", Const, 1, ""}, + {"ETHERTYPE_APOLLO", Const, 1, ""}, + {"ETHERTYPE_APOLLODOMAIN", Const, 1, ""}, + {"ETHERTYPE_APPLETALK", Const, 1, ""}, + {"ETHERTYPE_APPLITEK", Const, 1, ""}, + {"ETHERTYPE_ARGONAUT", Const, 1, ""}, + {"ETHERTYPE_ARP", Const, 1, ""}, + {"ETHERTYPE_AT", Const, 1, ""}, + {"ETHERTYPE_ATALK", Const, 1, ""}, + {"ETHERTYPE_ATOMIC", Const, 1, ""}, + {"ETHERTYPE_ATT", Const, 1, ""}, + {"ETHERTYPE_ATTSTANFORD", Const, 1, ""}, + {"ETHERTYPE_AUTOPHON", Const, 1, ""}, + {"ETHERTYPE_AXIS", Const, 1, ""}, + {"ETHERTYPE_BCLOOP", Const, 1, ""}, + {"ETHERTYPE_BOFL", Const, 1, ""}, + {"ETHERTYPE_CABLETRON", Const, 1, ""}, + {"ETHERTYPE_CHAOS", Const, 1, ""}, + {"ETHERTYPE_COMDESIGN", Const, 1, ""}, + {"ETHERTYPE_COMPUGRAPHIC", Const, 1, ""}, + {"ETHERTYPE_COUNTERPOINT", Const, 1, ""}, + {"ETHERTYPE_CRONUS", Const, 1, ""}, + {"ETHERTYPE_CRONUSVLN", Const, 1, ""}, + {"ETHERTYPE_DCA", Const, 1, ""}, + {"ETHERTYPE_DDE", Const, 1, ""}, + {"ETHERTYPE_DEBNI", Const, 1, ""}, + {"ETHERTYPE_DECAM", Const, 1, ""}, + {"ETHERTYPE_DECCUST", Const, 1, ""}, + {"ETHERTYPE_DECDIAG", Const, 1, ""}, + {"ETHERTYPE_DECDNS", Const, 1, ""}, + {"ETHERTYPE_DECDTS", Const, 1, ""}, + {"ETHERTYPE_DECEXPER", Const, 1, ""}, + {"ETHERTYPE_DECLAST", Const, 1, ""}, + {"ETHERTYPE_DECLTM", Const, 1, ""}, + {"ETHERTYPE_DECMUMPS", Const, 1, ""}, + {"ETHERTYPE_DECNETBIOS", Const, 1, ""}, + {"ETHERTYPE_DELTACON", Const, 1, ""}, + {"ETHERTYPE_DIDDLE", Const, 1, ""}, + {"ETHERTYPE_DLOG1", Const, 1, ""}, + {"ETHERTYPE_DLOG2", Const, 1, ""}, + {"ETHERTYPE_DN", Const, 1, ""}, + {"ETHERTYPE_DOGFIGHT", Const, 1, ""}, + {"ETHERTYPE_DSMD", Const, 1, ""}, + {"ETHERTYPE_ECMA", Const, 1, ""}, + {"ETHERTYPE_ENCRYPT", Const, 1, ""}, + {"ETHERTYPE_ES", Const, 1, ""}, + {"ETHERTYPE_EXCELAN", Const, 1, ""}, + {"ETHERTYPE_EXPERDATA", Const, 1, ""}, + {"ETHERTYPE_FLIP", Const, 1, ""}, + {"ETHERTYPE_FLOWCONTROL", Const, 1, ""}, + {"ETHERTYPE_FRARP", Const, 1, ""}, + {"ETHERTYPE_GENDYN", Const, 1, ""}, + {"ETHERTYPE_HAYES", Const, 1, ""}, + {"ETHERTYPE_HIPPI_FP", Const, 1, ""}, + {"ETHERTYPE_HITACHI", Const, 1, ""}, + {"ETHERTYPE_HP", Const, 1, ""}, + {"ETHERTYPE_IEEEPUP", Const, 1, ""}, + {"ETHERTYPE_IEEEPUPAT", Const, 1, ""}, + {"ETHERTYPE_IMLBL", Const, 1, ""}, + {"ETHERTYPE_IMLBLDIAG", Const, 1, ""}, + {"ETHERTYPE_IP", Const, 1, ""}, + {"ETHERTYPE_IPAS", Const, 1, ""}, + {"ETHERTYPE_IPV6", Const, 1, ""}, + {"ETHERTYPE_IPX", Const, 1, ""}, + {"ETHERTYPE_IPXNEW", Const, 1, ""}, + {"ETHERTYPE_KALPANA", Const, 1, ""}, + {"ETHERTYPE_LANBRIDGE", Const, 1, ""}, + {"ETHERTYPE_LANPROBE", Const, 1, ""}, + {"ETHERTYPE_LAT", Const, 1, ""}, + {"ETHERTYPE_LBACK", Const, 1, ""}, + {"ETHERTYPE_LITTLE", Const, 1, ""}, + {"ETHERTYPE_LLDP", Const, 1, ""}, + {"ETHERTYPE_LOGICRAFT", Const, 1, ""}, + {"ETHERTYPE_LOOPBACK", Const, 1, ""}, + {"ETHERTYPE_MATRA", Const, 1, ""}, + {"ETHERTYPE_MAX", Const, 1, ""}, + {"ETHERTYPE_MERIT", Const, 1, ""}, + {"ETHERTYPE_MICP", Const, 1, ""}, + {"ETHERTYPE_MOPDL", Const, 1, ""}, + {"ETHERTYPE_MOPRC", Const, 1, ""}, + {"ETHERTYPE_MOTOROLA", Const, 1, ""}, + {"ETHERTYPE_MPLS", Const, 1, ""}, + {"ETHERTYPE_MPLS_MCAST", Const, 1, ""}, + {"ETHERTYPE_MUMPS", Const, 1, ""}, + {"ETHERTYPE_NBPCC", Const, 1, ""}, + {"ETHERTYPE_NBPCLAIM", Const, 1, ""}, + {"ETHERTYPE_NBPCLREQ", Const, 1, ""}, + {"ETHERTYPE_NBPCLRSP", Const, 1, ""}, + {"ETHERTYPE_NBPCREQ", Const, 1, ""}, + {"ETHERTYPE_NBPCRSP", Const, 1, ""}, + {"ETHERTYPE_NBPDG", Const, 1, ""}, + {"ETHERTYPE_NBPDGB", Const, 1, ""}, + {"ETHERTYPE_NBPDLTE", Const, 1, ""}, + {"ETHERTYPE_NBPRAR", Const, 1, ""}, + {"ETHERTYPE_NBPRAS", Const, 1, ""}, + {"ETHERTYPE_NBPRST", Const, 1, ""}, + {"ETHERTYPE_NBPSCD", Const, 1, ""}, + {"ETHERTYPE_NBPVCD", Const, 1, ""}, + {"ETHERTYPE_NBS", Const, 1, ""}, + {"ETHERTYPE_NCD", Const, 1, ""}, + {"ETHERTYPE_NESTAR", Const, 1, ""}, + {"ETHERTYPE_NETBEUI", Const, 1, ""}, + {"ETHERTYPE_NOVELL", Const, 1, ""}, + {"ETHERTYPE_NS", Const, 1, ""}, + {"ETHERTYPE_NSAT", Const, 1, ""}, + {"ETHERTYPE_NSCOMPAT", Const, 1, ""}, + {"ETHERTYPE_NTRAILER", Const, 1, ""}, + {"ETHERTYPE_OS9", Const, 1, ""}, + {"ETHERTYPE_OS9NET", Const, 1, ""}, + {"ETHERTYPE_PACER", Const, 1, ""}, + {"ETHERTYPE_PAE", Const, 1, ""}, + {"ETHERTYPE_PCS", Const, 1, ""}, + {"ETHERTYPE_PLANNING", Const, 1, ""}, + {"ETHERTYPE_PPP", Const, 1, ""}, + {"ETHERTYPE_PPPOE", Const, 1, ""}, + {"ETHERTYPE_PPPOEDISC", Const, 1, ""}, + {"ETHERTYPE_PRIMENTS", Const, 1, ""}, + {"ETHERTYPE_PUP", Const, 1, ""}, + {"ETHERTYPE_PUPAT", Const, 1, ""}, + {"ETHERTYPE_QINQ", Const, 1, ""}, + {"ETHERTYPE_RACAL", Const, 1, ""}, + {"ETHERTYPE_RATIONAL", Const, 1, ""}, + {"ETHERTYPE_RAWFR", Const, 1, ""}, + {"ETHERTYPE_RCL", Const, 1, ""}, + {"ETHERTYPE_RDP", Const, 1, ""}, + {"ETHERTYPE_RETIX", Const, 1, ""}, + {"ETHERTYPE_REVARP", Const, 1, ""}, + {"ETHERTYPE_SCA", Const, 1, ""}, + {"ETHERTYPE_SECTRA", Const, 1, ""}, + {"ETHERTYPE_SECUREDATA", Const, 1, ""}, + {"ETHERTYPE_SGITW", Const, 1, ""}, + {"ETHERTYPE_SG_BOUNCE", Const, 1, ""}, + {"ETHERTYPE_SG_DIAG", Const, 1, ""}, + {"ETHERTYPE_SG_NETGAMES", Const, 1, ""}, + {"ETHERTYPE_SG_RESV", Const, 1, ""}, + {"ETHERTYPE_SIMNET", Const, 1, ""}, + {"ETHERTYPE_SLOW", Const, 1, ""}, + {"ETHERTYPE_SLOWPROTOCOLS", Const, 1, ""}, + {"ETHERTYPE_SNA", Const, 1, ""}, + {"ETHERTYPE_SNMP", Const, 1, ""}, + {"ETHERTYPE_SONIX", Const, 1, ""}, + {"ETHERTYPE_SPIDER", Const, 1, ""}, + {"ETHERTYPE_SPRITE", Const, 1, ""}, + {"ETHERTYPE_STP", Const, 1, ""}, + {"ETHERTYPE_TALARIS", Const, 1, ""}, + {"ETHERTYPE_TALARISMC", Const, 1, ""}, + {"ETHERTYPE_TCPCOMP", Const, 1, ""}, + {"ETHERTYPE_TCPSM", Const, 1, ""}, + {"ETHERTYPE_TEC", Const, 1, ""}, + {"ETHERTYPE_TIGAN", Const, 1, ""}, + {"ETHERTYPE_TRAIL", Const, 1, ""}, + {"ETHERTYPE_TRANSETHER", Const, 1, ""}, + {"ETHERTYPE_TYMSHARE", Const, 1, ""}, + {"ETHERTYPE_UBBST", Const, 1, ""}, + {"ETHERTYPE_UBDEBUG", Const, 1, ""}, + {"ETHERTYPE_UBDIAGLOOP", Const, 1, ""}, + {"ETHERTYPE_UBDL", Const, 1, ""}, + {"ETHERTYPE_UBNIU", Const, 1, ""}, + {"ETHERTYPE_UBNMC", Const, 1, ""}, + {"ETHERTYPE_VALID", Const, 1, ""}, + {"ETHERTYPE_VARIAN", Const, 1, ""}, + {"ETHERTYPE_VAXELN", Const, 1, ""}, + {"ETHERTYPE_VEECO", Const, 1, ""}, + {"ETHERTYPE_VEXP", Const, 1, ""}, + {"ETHERTYPE_VGLAB", Const, 1, ""}, + {"ETHERTYPE_VINES", Const, 1, ""}, + {"ETHERTYPE_VINESECHO", Const, 1, ""}, + {"ETHERTYPE_VINESLOOP", Const, 1, ""}, + {"ETHERTYPE_VITAL", Const, 1, ""}, + {"ETHERTYPE_VLAN", Const, 1, ""}, + {"ETHERTYPE_VLTLMAN", Const, 1, ""}, + {"ETHERTYPE_VPROD", Const, 1, ""}, + {"ETHERTYPE_VURESERVED", Const, 1, ""}, + {"ETHERTYPE_WATERLOO", Const, 1, ""}, + {"ETHERTYPE_WELLFLEET", Const, 1, ""}, + {"ETHERTYPE_X25", Const, 1, ""}, + {"ETHERTYPE_X75", Const, 1, ""}, + {"ETHERTYPE_XNSSM", Const, 1, ""}, + {"ETHERTYPE_XTP", Const, 1, ""}, + {"ETHER_ADDR_LEN", Const, 1, ""}, + {"ETHER_ALIGN", Const, 1, ""}, + {"ETHER_CRC_LEN", Const, 1, ""}, + {"ETHER_CRC_POLY_BE", Const, 1, ""}, + {"ETHER_CRC_POLY_LE", Const, 1, ""}, + {"ETHER_HDR_LEN", Const, 1, ""}, + {"ETHER_MAX_DIX_LEN", Const, 1, ""}, + {"ETHER_MAX_LEN", Const, 1, ""}, + {"ETHER_MAX_LEN_JUMBO", Const, 1, ""}, + {"ETHER_MIN_LEN", Const, 1, ""}, + {"ETHER_PPPOE_ENCAP_LEN", Const, 1, ""}, + {"ETHER_TYPE_LEN", Const, 1, ""}, + {"ETHER_VLAN_ENCAP_LEN", Const, 1, ""}, + {"ETH_P_1588", Const, 0, ""}, + {"ETH_P_8021Q", Const, 0, ""}, + {"ETH_P_802_2", Const, 0, ""}, + {"ETH_P_802_3", Const, 0, ""}, + {"ETH_P_AARP", Const, 0, ""}, + {"ETH_P_ALL", Const, 0, ""}, + {"ETH_P_AOE", Const, 0, ""}, + {"ETH_P_ARCNET", Const, 0, ""}, + {"ETH_P_ARP", Const, 0, ""}, + {"ETH_P_ATALK", Const, 0, ""}, + {"ETH_P_ATMFATE", Const, 0, ""}, + {"ETH_P_ATMMPOA", Const, 0, ""}, + {"ETH_P_AX25", Const, 0, ""}, + {"ETH_P_BPQ", Const, 0, ""}, + {"ETH_P_CAIF", Const, 0, ""}, + {"ETH_P_CAN", Const, 0, ""}, + {"ETH_P_CONTROL", Const, 0, ""}, + {"ETH_P_CUST", Const, 0, ""}, + {"ETH_P_DDCMP", Const, 0, ""}, + {"ETH_P_DEC", Const, 0, ""}, + {"ETH_P_DIAG", Const, 0, ""}, + {"ETH_P_DNA_DL", Const, 0, ""}, + {"ETH_P_DNA_RC", Const, 0, ""}, + {"ETH_P_DNA_RT", Const, 0, ""}, + {"ETH_P_DSA", Const, 0, ""}, + {"ETH_P_ECONET", Const, 0, ""}, + {"ETH_P_EDSA", Const, 0, ""}, + {"ETH_P_FCOE", Const, 0, ""}, + {"ETH_P_FIP", Const, 0, ""}, + {"ETH_P_HDLC", Const, 0, ""}, + {"ETH_P_IEEE802154", Const, 0, ""}, + {"ETH_P_IEEEPUP", Const, 0, ""}, + {"ETH_P_IEEEPUPAT", Const, 0, ""}, + {"ETH_P_IP", Const, 0, ""}, + {"ETH_P_IPV6", Const, 0, ""}, + {"ETH_P_IPX", Const, 0, ""}, + {"ETH_P_IRDA", Const, 0, ""}, + {"ETH_P_LAT", Const, 0, ""}, + {"ETH_P_LINK_CTL", Const, 0, ""}, + {"ETH_P_LOCALTALK", Const, 0, ""}, + {"ETH_P_LOOP", Const, 0, ""}, + {"ETH_P_MOBITEX", Const, 0, ""}, + {"ETH_P_MPLS_MC", Const, 0, ""}, + {"ETH_P_MPLS_UC", Const, 0, ""}, + {"ETH_P_PAE", Const, 0, ""}, + {"ETH_P_PAUSE", Const, 0, ""}, + {"ETH_P_PHONET", Const, 0, ""}, + {"ETH_P_PPPTALK", Const, 0, ""}, + {"ETH_P_PPP_DISC", Const, 0, ""}, + {"ETH_P_PPP_MP", Const, 0, ""}, + {"ETH_P_PPP_SES", Const, 0, ""}, + {"ETH_P_PUP", Const, 0, ""}, + {"ETH_P_PUPAT", Const, 0, ""}, + {"ETH_P_RARP", Const, 0, ""}, + {"ETH_P_SCA", Const, 0, ""}, + {"ETH_P_SLOW", Const, 0, ""}, + {"ETH_P_SNAP", Const, 0, ""}, + {"ETH_P_TEB", Const, 0, ""}, + {"ETH_P_TIPC", Const, 0, ""}, + {"ETH_P_TRAILER", Const, 0, ""}, + {"ETH_P_TR_802_2", Const, 0, ""}, + {"ETH_P_WAN_PPP", Const, 0, ""}, + {"ETH_P_WCCP", Const, 0, ""}, + {"ETH_P_X25", Const, 0, ""}, + {"ETIME", Const, 0, ""}, + {"ETIMEDOUT", Const, 0, ""}, + {"ETOOMANYREFS", Const, 0, ""}, + {"ETXTBSY", Const, 0, ""}, + {"EUCLEAN", Const, 0, ""}, + {"EUNATCH", Const, 0, ""}, + {"EUSERS", Const, 0, ""}, + {"EVFILT_AIO", Const, 0, ""}, + {"EVFILT_FS", Const, 0, ""}, + {"EVFILT_LIO", Const, 0, ""}, + {"EVFILT_MACHPORT", Const, 0, ""}, + {"EVFILT_PROC", Const, 0, ""}, + {"EVFILT_READ", Const, 0, ""}, + {"EVFILT_SIGNAL", Const, 0, ""}, + {"EVFILT_SYSCOUNT", Const, 0, ""}, + {"EVFILT_THREADMARKER", Const, 0, ""}, + {"EVFILT_TIMER", Const, 0, ""}, + {"EVFILT_USER", Const, 0, ""}, + {"EVFILT_VM", Const, 0, ""}, + {"EVFILT_VNODE", Const, 0, ""}, + {"EVFILT_WRITE", Const, 0, ""}, + {"EV_ADD", Const, 0, ""}, + {"EV_CLEAR", Const, 0, ""}, + {"EV_DELETE", Const, 0, ""}, + {"EV_DISABLE", Const, 0, ""}, + {"EV_DISPATCH", Const, 0, ""}, + {"EV_DROP", Const, 3, ""}, + {"EV_ENABLE", Const, 0, ""}, + {"EV_EOF", Const, 0, ""}, + {"EV_ERROR", Const, 0, ""}, + {"EV_FLAG0", Const, 0, ""}, + {"EV_FLAG1", Const, 0, ""}, + {"EV_ONESHOT", Const, 0, ""}, + {"EV_OOBAND", Const, 0, ""}, + {"EV_POLL", Const, 0, ""}, + {"EV_RECEIPT", Const, 0, ""}, + {"EV_SYSFLAGS", Const, 0, ""}, + {"EWINDOWS", Const, 0, ""}, + {"EWOULDBLOCK", Const, 0, ""}, + {"EXDEV", Const, 0, ""}, + {"EXFULL", Const, 0, ""}, + {"EXTA", Const, 0, ""}, + {"EXTB", Const, 0, ""}, + {"EXTPROC", Const, 0, ""}, + {"Environ", Func, 0, "func() []string"}, + {"EpollCreate", Func, 0, "func(size int) (fd int, err error)"}, + {"EpollCreate1", Func, 0, "func(flag int) (fd int, err error)"}, + {"EpollCtl", Func, 0, "func(epfd int, op int, fd int, event *EpollEvent) (err error)"}, + {"EpollEvent", Type, 0, ""}, + {"EpollEvent.Events", Field, 0, ""}, + {"EpollEvent.Fd", Field, 0, ""}, + {"EpollEvent.Pad", Field, 0, ""}, + {"EpollEvent.PadFd", Field, 0, ""}, + {"EpollWait", Func, 0, "func(epfd int, events []EpollEvent, msec int) (n int, err error)"}, + {"Errno", Type, 0, ""}, + {"EscapeArg", Func, 0, ""}, + {"Exchangedata", Func, 0, ""}, + {"Exec", Func, 0, "func(argv0 string, argv []string, envv []string) (err error)"}, + {"Exit", Func, 0, "func(code int)"}, + {"ExitProcess", Func, 0, ""}, + {"FD_CLOEXEC", Const, 0, ""}, + {"FD_SETSIZE", Const, 0, ""}, + {"FILE_ACTION_ADDED", Const, 0, ""}, + {"FILE_ACTION_MODIFIED", Const, 0, ""}, + {"FILE_ACTION_REMOVED", Const, 0, ""}, + {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0, ""}, + {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0, ""}, + {"FILE_APPEND_DATA", Const, 0, ""}, + {"FILE_ATTRIBUTE_ARCHIVE", Const, 0, ""}, + {"FILE_ATTRIBUTE_DIRECTORY", Const, 0, ""}, + {"FILE_ATTRIBUTE_HIDDEN", Const, 0, ""}, + {"FILE_ATTRIBUTE_NORMAL", Const, 0, ""}, + {"FILE_ATTRIBUTE_READONLY", Const, 0, ""}, + {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4, ""}, + {"FILE_ATTRIBUTE_SYSTEM", Const, 0, ""}, + {"FILE_BEGIN", Const, 0, ""}, + {"FILE_CURRENT", Const, 0, ""}, + {"FILE_END", Const, 0, ""}, + {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0, ""}, + {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4, ""}, + {"FILE_FLAG_OVERLAPPED", Const, 0, ""}, + {"FILE_LIST_DIRECTORY", Const, 0, ""}, + {"FILE_MAP_COPY", Const, 0, ""}, + {"FILE_MAP_EXECUTE", Const, 0, ""}, + {"FILE_MAP_READ", Const, 0, ""}, + {"FILE_MAP_WRITE", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_CREATION", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0, ""}, + {"FILE_NOTIFY_CHANGE_SIZE", Const, 0, ""}, + {"FILE_SHARE_DELETE", Const, 0, ""}, + {"FILE_SHARE_READ", Const, 0, ""}, + {"FILE_SHARE_WRITE", Const, 0, ""}, + {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2, ""}, + {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2, ""}, + {"FILE_TYPE_CHAR", Const, 0, ""}, + {"FILE_TYPE_DISK", Const, 0, ""}, + {"FILE_TYPE_PIPE", Const, 0, ""}, + {"FILE_TYPE_REMOTE", Const, 0, ""}, + {"FILE_TYPE_UNKNOWN", Const, 0, ""}, + {"FILE_WRITE_ATTRIBUTES", Const, 0, ""}, + {"FLUSHO", Const, 0, ""}, + {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0, ""}, + {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0, ""}, + {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0, ""}, + {"FORMAT_MESSAGE_FROM_STRING", Const, 0, ""}, + {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0, ""}, + {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0, ""}, + {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0, ""}, + {"FSCTL_GET_REPARSE_POINT", Const, 4, ""}, + {"F_ADDFILESIGS", Const, 0, ""}, + {"F_ADDSIGS", Const, 0, ""}, + {"F_ALLOCATEALL", Const, 0, ""}, + {"F_ALLOCATECONTIG", Const, 0, ""}, + {"F_CANCEL", Const, 0, ""}, + {"F_CHKCLEAN", Const, 0, ""}, + {"F_CLOSEM", Const, 1, ""}, + {"F_DUP2FD", Const, 0, ""}, + {"F_DUP2FD_CLOEXEC", Const, 1, ""}, + {"F_DUPFD", Const, 0, ""}, + {"F_DUPFD_CLOEXEC", Const, 0, ""}, + {"F_EXLCK", Const, 0, ""}, + {"F_FINDSIGS", Const, 16, ""}, + {"F_FLUSH_DATA", Const, 0, ""}, + {"F_FREEZE_FS", Const, 0, ""}, + {"F_FSCTL", Const, 1, ""}, + {"F_FSDIRMASK", Const, 1, ""}, + {"F_FSIN", Const, 1, ""}, + {"F_FSINOUT", Const, 1, ""}, + {"F_FSOUT", Const, 1, ""}, + {"F_FSPRIV", Const, 1, ""}, + {"F_FSVOID", Const, 1, ""}, + {"F_FULLFSYNC", Const, 0, ""}, + {"F_GETCODEDIR", Const, 16, ""}, + {"F_GETFD", Const, 0, ""}, + {"F_GETFL", Const, 0, ""}, + {"F_GETLEASE", Const, 0, ""}, + {"F_GETLK", Const, 0, ""}, + {"F_GETLK64", Const, 0, ""}, + {"F_GETLKPID", Const, 0, ""}, + {"F_GETNOSIGPIPE", Const, 0, ""}, + {"F_GETOWN", Const, 0, ""}, + {"F_GETOWN_EX", Const, 0, ""}, + {"F_GETPATH", Const, 0, ""}, + {"F_GETPATH_MTMINFO", Const, 0, ""}, + {"F_GETPIPE_SZ", Const, 0, ""}, + {"F_GETPROTECTIONCLASS", Const, 0, ""}, + {"F_GETPROTECTIONLEVEL", Const, 16, ""}, + {"F_GETSIG", Const, 0, ""}, + {"F_GLOBAL_NOCACHE", Const, 0, ""}, + {"F_LOCK", Const, 0, ""}, + {"F_LOG2PHYS", Const, 0, ""}, + {"F_LOG2PHYS_EXT", Const, 0, ""}, + {"F_MARKDEPENDENCY", Const, 0, ""}, + {"F_MAXFD", Const, 1, ""}, + {"F_NOCACHE", Const, 0, ""}, + {"F_NODIRECT", Const, 0, ""}, + {"F_NOTIFY", Const, 0, ""}, + {"F_OGETLK", Const, 0, ""}, + {"F_OK", Const, 0, ""}, + {"F_OSETLK", Const, 0, ""}, + {"F_OSETLKW", Const, 0, ""}, + {"F_PARAM_MASK", Const, 1, ""}, + {"F_PARAM_MAX", Const, 1, ""}, + {"F_PATHPKG_CHECK", Const, 0, ""}, + {"F_PEOFPOSMODE", Const, 0, ""}, + {"F_PREALLOCATE", Const, 0, ""}, + {"F_RDADVISE", Const, 0, ""}, + {"F_RDAHEAD", Const, 0, ""}, + {"F_RDLCK", Const, 0, ""}, + {"F_READAHEAD", Const, 0, ""}, + {"F_READBOOTSTRAP", Const, 0, ""}, + {"F_SETBACKINGSTORE", Const, 0, ""}, + {"F_SETFD", Const, 0, ""}, + {"F_SETFL", Const, 0, ""}, + {"F_SETLEASE", Const, 0, ""}, + {"F_SETLK", Const, 0, ""}, + {"F_SETLK64", Const, 0, ""}, + {"F_SETLKW", Const, 0, ""}, + {"F_SETLKW64", Const, 0, ""}, + {"F_SETLKWTIMEOUT", Const, 16, ""}, + {"F_SETLK_REMOTE", Const, 0, ""}, + {"F_SETNOSIGPIPE", Const, 0, ""}, + {"F_SETOWN", Const, 0, ""}, + {"F_SETOWN_EX", Const, 0, ""}, + {"F_SETPIPE_SZ", Const, 0, ""}, + {"F_SETPROTECTIONCLASS", Const, 0, ""}, + {"F_SETSIG", Const, 0, ""}, + {"F_SETSIZE", Const, 0, ""}, + {"F_SHLCK", Const, 0, ""}, + {"F_SINGLE_WRITER", Const, 16, ""}, + {"F_TEST", Const, 0, ""}, + {"F_THAW_FS", Const, 0, ""}, + {"F_TLOCK", Const, 0, ""}, + {"F_TRANSCODEKEY", Const, 16, ""}, + {"F_ULOCK", Const, 0, ""}, + {"F_UNLCK", Const, 0, ""}, + {"F_UNLCKSYS", Const, 0, ""}, + {"F_VOLPOSMODE", Const, 0, ""}, + {"F_WRITEBOOTSTRAP", Const, 0, ""}, + {"F_WRLCK", Const, 0, ""}, + {"Faccessat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) (err error)"}, + {"Fallocate", Func, 0, "func(fd int, mode uint32, off int64, len int64) (err error)"}, + {"Fbootstraptransfer_t", Type, 0, ""}, + {"Fbootstraptransfer_t.Buffer", Field, 0, ""}, + {"Fbootstraptransfer_t.Length", Field, 0, ""}, + {"Fbootstraptransfer_t.Offset", Field, 0, ""}, + {"Fchdir", Func, 0, "func(fd int) (err error)"}, + {"Fchflags", Func, 0, ""}, + {"Fchmod", Func, 0, "func(fd int, mode uint32) (err error)"}, + {"Fchmodat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) error"}, + {"Fchown", Func, 0, "func(fd int, uid int, gid int) (err error)"}, + {"Fchownat", Func, 0, "func(dirfd int, path string, uid int, gid int, flags int) (err error)"}, + {"FcntlFlock", Func, 3, "func(fd uintptr, cmd int, lk *Flock_t) error"}, + {"FdSet", Type, 0, ""}, + {"FdSet.Bits", Field, 0, ""}, + {"FdSet.X__fds_bits", Field, 0, ""}, + {"Fdatasync", Func, 0, "func(fd int) (err error)"}, + {"FileNotifyInformation", Type, 0, ""}, + {"FileNotifyInformation.Action", Field, 0, ""}, + {"FileNotifyInformation.FileName", Field, 0, ""}, + {"FileNotifyInformation.FileNameLength", Field, 0, ""}, + {"FileNotifyInformation.NextEntryOffset", Field, 0, ""}, + {"Filetime", Type, 0, ""}, + {"Filetime.HighDateTime", Field, 0, ""}, + {"Filetime.LowDateTime", Field, 0, ""}, + {"FindClose", Func, 0, ""}, + {"FindFirstFile", Func, 0, ""}, + {"FindNextFile", Func, 0, ""}, + {"Flock", Func, 0, "func(fd int, how int) (err error)"}, + {"Flock_t", Type, 0, ""}, + {"Flock_t.Len", Field, 0, ""}, + {"Flock_t.Pad_cgo_0", Field, 0, ""}, + {"Flock_t.Pad_cgo_1", Field, 3, ""}, + {"Flock_t.Pid", Field, 0, ""}, + {"Flock_t.Start", Field, 0, ""}, + {"Flock_t.Sysid", Field, 0, ""}, + {"Flock_t.Type", Field, 0, ""}, + {"Flock_t.Whence", Field, 0, ""}, + {"FlushBpf", Func, 0, ""}, + {"FlushFileBuffers", Func, 0, ""}, + {"FlushViewOfFile", Func, 0, ""}, + {"ForkExec", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, err error)"}, + {"ForkLock", Var, 0, ""}, + {"FormatMessage", Func, 0, ""}, + {"Fpathconf", Func, 0, ""}, + {"FreeAddrInfoW", Func, 1, ""}, + {"FreeEnvironmentStrings", Func, 0, ""}, + {"FreeLibrary", Func, 0, ""}, + {"Fsid", Type, 0, ""}, + {"Fsid.Val", Field, 0, ""}, + {"Fsid.X__fsid_val", Field, 2, ""}, + {"Fsid.X__val", Field, 0, ""}, + {"Fstat", Func, 0, "func(fd int, stat *Stat_t) (err error)"}, + {"Fstatat", Func, 12, ""}, + {"Fstatfs", Func, 0, "func(fd int, buf *Statfs_t) (err error)"}, + {"Fstore_t", Type, 0, ""}, + {"Fstore_t.Bytesalloc", Field, 0, ""}, + {"Fstore_t.Flags", Field, 0, ""}, + {"Fstore_t.Length", Field, 0, ""}, + {"Fstore_t.Offset", Field, 0, ""}, + {"Fstore_t.Posmode", Field, 0, ""}, + {"Fsync", Func, 0, "func(fd int) (err error)"}, + {"Ftruncate", Func, 0, "func(fd int, length int64) (err error)"}, + {"FullPath", Func, 4, ""}, + {"Futimes", Func, 0, "func(fd int, tv []Timeval) (err error)"}, + {"Futimesat", Func, 0, "func(dirfd int, path string, tv []Timeval) (err error)"}, + {"GENERIC_ALL", Const, 0, ""}, + {"GENERIC_EXECUTE", Const, 0, ""}, + {"GENERIC_READ", Const, 0, ""}, + {"GENERIC_WRITE", Const, 0, ""}, + {"GUID", Type, 1, ""}, + {"GUID.Data1", Field, 1, ""}, + {"GUID.Data2", Field, 1, ""}, + {"GUID.Data3", Field, 1, ""}, + {"GUID.Data4", Field, 1, ""}, + {"GetAcceptExSockaddrs", Func, 0, ""}, + {"GetAdaptersInfo", Func, 0, ""}, + {"GetAddrInfoW", Func, 1, ""}, + {"GetCommandLine", Func, 0, ""}, + {"GetComputerName", Func, 0, ""}, + {"GetConsoleMode", Func, 1, ""}, + {"GetCurrentDirectory", Func, 0, ""}, + {"GetCurrentProcess", Func, 0, ""}, + {"GetEnvironmentStrings", Func, 0, ""}, + {"GetEnvironmentVariable", Func, 0, ""}, + {"GetExitCodeProcess", Func, 0, ""}, + {"GetFileAttributes", Func, 0, ""}, + {"GetFileAttributesEx", Func, 0, ""}, + {"GetFileExInfoStandard", Const, 0, ""}, + {"GetFileExMaxInfoLevel", Const, 0, ""}, + {"GetFileInformationByHandle", Func, 0, ""}, + {"GetFileType", Func, 0, ""}, + {"GetFullPathName", Func, 0, ""}, + {"GetHostByName", Func, 0, ""}, + {"GetIfEntry", Func, 0, ""}, + {"GetLastError", Func, 0, ""}, + {"GetLengthSid", Func, 0, ""}, + {"GetLongPathName", Func, 0, ""}, + {"GetProcAddress", Func, 0, ""}, + {"GetProcessTimes", Func, 0, ""}, + {"GetProtoByName", Func, 0, ""}, + {"GetQueuedCompletionStatus", Func, 0, ""}, + {"GetServByName", Func, 0, ""}, + {"GetShortPathName", Func, 0, ""}, + {"GetStartupInfo", Func, 0, ""}, + {"GetStdHandle", Func, 0, ""}, + {"GetSystemTimeAsFileTime", Func, 0, ""}, + {"GetTempPath", Func, 0, ""}, + {"GetTimeZoneInformation", Func, 0, ""}, + {"GetTokenInformation", Func, 0, ""}, + {"GetUserNameEx", Func, 0, ""}, + {"GetUserProfileDirectory", Func, 0, ""}, + {"GetVersion", Func, 0, ""}, + {"Getcwd", Func, 0, "func(buf []byte) (n int, err error)"}, + {"Getdents", Func, 0, "func(fd int, buf []byte) (n int, err error)"}, + {"Getdirentries", Func, 0, ""}, + {"Getdtablesize", Func, 0, ""}, + {"Getegid", Func, 0, "func() (egid int)"}, + {"Getenv", Func, 0, "func(key string) (value string, found bool)"}, + {"Geteuid", Func, 0, "func() (euid int)"}, + {"Getfsstat", Func, 0, ""}, + {"Getgid", Func, 0, "func() (gid int)"}, + {"Getgroups", Func, 0, "func() (gids []int, err error)"}, + {"Getpagesize", Func, 0, "func() int"}, + {"Getpeername", Func, 0, "func(fd int) (sa Sockaddr, err error)"}, + {"Getpgid", Func, 0, "func(pid int) (pgid int, err error)"}, + {"Getpgrp", Func, 0, "func() (pid int)"}, + {"Getpid", Func, 0, "func() (pid int)"}, + {"Getppid", Func, 0, "func() (ppid int)"}, + {"Getpriority", Func, 0, "func(which int, who int) (prio int, err error)"}, + {"Getrlimit", Func, 0, "func(resource int, rlim *Rlimit) (err error)"}, + {"Getrusage", Func, 0, "func(who int, rusage *Rusage) (err error)"}, + {"Getsid", Func, 0, ""}, + {"Getsockname", Func, 0, "func(fd int) (sa Sockaddr, err error)"}, + {"Getsockopt", Func, 1, ""}, + {"GetsockoptByte", Func, 0, ""}, + {"GetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int) (*ICMPv6Filter, error)"}, + {"GetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int) (*IPMreq, error)"}, + {"GetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int) (*IPMreqn, error)"}, + {"GetsockoptIPv6MTUInfo", Func, 2, "func(fd int, level int, opt int) (*IPv6MTUInfo, error)"}, + {"GetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int) (*IPv6Mreq, error)"}, + {"GetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int) (value [4]byte, err error)"}, + {"GetsockoptInt", Func, 0, "func(fd int, level int, opt int) (value int, err error)"}, + {"GetsockoptUcred", Func, 1, "func(fd int, level int, opt int) (*Ucred, error)"}, + {"Gettid", Func, 0, "func() (tid int)"}, + {"Gettimeofday", Func, 0, "func(tv *Timeval) (err error)"}, + {"Getuid", Func, 0, "func() (uid int)"}, + {"Getwd", Func, 0, "func() (wd string, err error)"}, + {"Getxattr", Func, 1, "func(path string, attr string, dest []byte) (sz int, err error)"}, + {"HANDLE_FLAG_INHERIT", Const, 0, ""}, + {"HKEY_CLASSES_ROOT", Const, 0, ""}, + {"HKEY_CURRENT_CONFIG", Const, 0, ""}, + {"HKEY_CURRENT_USER", Const, 0, ""}, + {"HKEY_DYN_DATA", Const, 0, ""}, + {"HKEY_LOCAL_MACHINE", Const, 0, ""}, + {"HKEY_PERFORMANCE_DATA", Const, 0, ""}, + {"HKEY_USERS", Const, 0, ""}, + {"HUPCL", Const, 0, ""}, + {"Handle", Type, 0, ""}, + {"Hostent", Type, 0, ""}, + {"Hostent.AddrList", Field, 0, ""}, + {"Hostent.AddrType", Field, 0, ""}, + {"Hostent.Aliases", Field, 0, ""}, + {"Hostent.Length", Field, 0, ""}, + {"Hostent.Name", Field, 0, ""}, + {"ICANON", Const, 0, ""}, + {"ICMP6_FILTER", Const, 2, ""}, + {"ICMPV6_FILTER", Const, 2, ""}, + {"ICMPv6Filter", Type, 2, ""}, + {"ICMPv6Filter.Data", Field, 2, ""}, + {"ICMPv6Filter.Filt", Field, 2, ""}, + {"ICRNL", Const, 0, ""}, + {"IEXTEN", Const, 0, ""}, + {"IFAN_ARRIVAL", Const, 1, ""}, + {"IFAN_DEPARTURE", Const, 1, ""}, + {"IFA_ADDRESS", Const, 0, ""}, + {"IFA_ANYCAST", Const, 0, ""}, + {"IFA_BROADCAST", Const, 0, ""}, + {"IFA_CACHEINFO", Const, 0, ""}, + {"IFA_F_DADFAILED", Const, 0, ""}, + {"IFA_F_DEPRECATED", Const, 0, ""}, + {"IFA_F_HOMEADDRESS", Const, 0, ""}, + {"IFA_F_NODAD", Const, 0, ""}, + {"IFA_F_OPTIMISTIC", Const, 0, ""}, + {"IFA_F_PERMANENT", Const, 0, ""}, + {"IFA_F_SECONDARY", Const, 0, ""}, + {"IFA_F_TEMPORARY", Const, 0, ""}, + {"IFA_F_TENTATIVE", Const, 0, ""}, + {"IFA_LABEL", Const, 0, ""}, + {"IFA_LOCAL", Const, 0, ""}, + {"IFA_MAX", Const, 0, ""}, + {"IFA_MULTICAST", Const, 0, ""}, + {"IFA_ROUTE", Const, 1, ""}, + {"IFA_UNSPEC", Const, 0, ""}, + {"IFF_ALLMULTI", Const, 0, ""}, + {"IFF_ALTPHYS", Const, 0, ""}, + {"IFF_AUTOMEDIA", Const, 0, ""}, + {"IFF_BROADCAST", Const, 0, ""}, + {"IFF_CANTCHANGE", Const, 0, ""}, + {"IFF_CANTCONFIG", Const, 1, ""}, + {"IFF_DEBUG", Const, 0, ""}, + {"IFF_DRV_OACTIVE", Const, 0, ""}, + {"IFF_DRV_RUNNING", Const, 0, ""}, + {"IFF_DYING", Const, 0, ""}, + {"IFF_DYNAMIC", Const, 0, ""}, + {"IFF_LINK0", Const, 0, ""}, + {"IFF_LINK1", Const, 0, ""}, + {"IFF_LINK2", Const, 0, ""}, + {"IFF_LOOPBACK", Const, 0, ""}, + {"IFF_MASTER", Const, 0, ""}, + {"IFF_MONITOR", Const, 0, ""}, + {"IFF_MULTICAST", Const, 0, ""}, + {"IFF_NOARP", Const, 0, ""}, + {"IFF_NOTRAILERS", Const, 0, ""}, + {"IFF_NO_PI", Const, 0, ""}, + {"IFF_OACTIVE", Const, 0, ""}, + {"IFF_ONE_QUEUE", Const, 0, ""}, + {"IFF_POINTOPOINT", Const, 0, ""}, + {"IFF_POINTTOPOINT", Const, 0, ""}, + {"IFF_PORTSEL", Const, 0, ""}, + {"IFF_PPROMISC", Const, 0, ""}, + {"IFF_PROMISC", Const, 0, ""}, + {"IFF_RENAMING", Const, 0, ""}, + {"IFF_RUNNING", Const, 0, ""}, + {"IFF_SIMPLEX", Const, 0, ""}, + {"IFF_SLAVE", Const, 0, ""}, + {"IFF_SMART", Const, 0, ""}, + {"IFF_STATICARP", Const, 0, ""}, + {"IFF_TAP", Const, 0, ""}, + {"IFF_TUN", Const, 0, ""}, + {"IFF_TUN_EXCL", Const, 0, ""}, + {"IFF_UP", Const, 0, ""}, + {"IFF_VNET_HDR", Const, 0, ""}, + {"IFLA_ADDRESS", Const, 0, ""}, + {"IFLA_BROADCAST", Const, 0, ""}, + {"IFLA_COST", Const, 0, ""}, + {"IFLA_IFALIAS", Const, 0, ""}, + {"IFLA_IFNAME", Const, 0, ""}, + {"IFLA_LINK", Const, 0, ""}, + {"IFLA_LINKINFO", Const, 0, ""}, + {"IFLA_LINKMODE", Const, 0, ""}, + {"IFLA_MAP", Const, 0, ""}, + {"IFLA_MASTER", Const, 0, ""}, + {"IFLA_MAX", Const, 0, ""}, + {"IFLA_MTU", Const, 0, ""}, + {"IFLA_NET_NS_PID", Const, 0, ""}, + {"IFLA_OPERSTATE", Const, 0, ""}, + {"IFLA_PRIORITY", Const, 0, ""}, + {"IFLA_PROTINFO", Const, 0, ""}, + {"IFLA_QDISC", Const, 0, ""}, + {"IFLA_STATS", Const, 0, ""}, + {"IFLA_TXQLEN", Const, 0, ""}, + {"IFLA_UNSPEC", Const, 0, ""}, + {"IFLA_WEIGHT", Const, 0, ""}, + {"IFLA_WIRELESS", Const, 0, ""}, + {"IFNAMSIZ", Const, 0, ""}, + {"IFT_1822", Const, 0, ""}, + {"IFT_A12MPPSWITCH", Const, 0, ""}, + {"IFT_AAL2", Const, 0, ""}, + {"IFT_AAL5", Const, 0, ""}, + {"IFT_ADSL", Const, 0, ""}, + {"IFT_AFLANE8023", Const, 0, ""}, + {"IFT_AFLANE8025", Const, 0, ""}, + {"IFT_ARAP", Const, 0, ""}, + {"IFT_ARCNET", Const, 0, ""}, + {"IFT_ARCNETPLUS", Const, 0, ""}, + {"IFT_ASYNC", Const, 0, ""}, + {"IFT_ATM", Const, 0, ""}, + {"IFT_ATMDXI", Const, 0, ""}, + {"IFT_ATMFUNI", Const, 0, ""}, + {"IFT_ATMIMA", Const, 0, ""}, + {"IFT_ATMLOGICAL", Const, 0, ""}, + {"IFT_ATMRADIO", Const, 0, ""}, + {"IFT_ATMSUBINTERFACE", Const, 0, ""}, + {"IFT_ATMVCIENDPT", Const, 0, ""}, + {"IFT_ATMVIRTUAL", Const, 0, ""}, + {"IFT_BGPPOLICYACCOUNTING", Const, 0, ""}, + {"IFT_BLUETOOTH", Const, 1, ""}, + {"IFT_BRIDGE", Const, 0, ""}, + {"IFT_BSC", Const, 0, ""}, + {"IFT_CARP", Const, 0, ""}, + {"IFT_CCTEMUL", Const, 0, ""}, + {"IFT_CELLULAR", Const, 0, ""}, + {"IFT_CEPT", Const, 0, ""}, + {"IFT_CES", Const, 0, ""}, + {"IFT_CHANNEL", Const, 0, ""}, + {"IFT_CNR", Const, 0, ""}, + {"IFT_COFFEE", Const, 0, ""}, + {"IFT_COMPOSITELINK", Const, 0, ""}, + {"IFT_DCN", Const, 0, ""}, + {"IFT_DIGITALPOWERLINE", Const, 0, ""}, + {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0, ""}, + {"IFT_DLSW", Const, 0, ""}, + {"IFT_DOCSCABLEDOWNSTREAM", Const, 0, ""}, + {"IFT_DOCSCABLEMACLAYER", Const, 0, ""}, + {"IFT_DOCSCABLEUPSTREAM", Const, 0, ""}, + {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1, ""}, + {"IFT_DS0", Const, 0, ""}, + {"IFT_DS0BUNDLE", Const, 0, ""}, + {"IFT_DS1FDL", Const, 0, ""}, + {"IFT_DS3", Const, 0, ""}, + {"IFT_DTM", Const, 0, ""}, + {"IFT_DUMMY", Const, 1, ""}, + {"IFT_DVBASILN", Const, 0, ""}, + {"IFT_DVBASIOUT", Const, 0, ""}, + {"IFT_DVBRCCDOWNSTREAM", Const, 0, ""}, + {"IFT_DVBRCCMACLAYER", Const, 0, ""}, + {"IFT_DVBRCCUPSTREAM", Const, 0, ""}, + {"IFT_ECONET", Const, 1, ""}, + {"IFT_ENC", Const, 0, ""}, + {"IFT_EON", Const, 0, ""}, + {"IFT_EPLRS", Const, 0, ""}, + {"IFT_ESCON", Const, 0, ""}, + {"IFT_ETHER", Const, 0, ""}, + {"IFT_FAITH", Const, 0, ""}, + {"IFT_FAST", Const, 0, ""}, + {"IFT_FASTETHER", Const, 0, ""}, + {"IFT_FASTETHERFX", Const, 0, ""}, + {"IFT_FDDI", Const, 0, ""}, + {"IFT_FIBRECHANNEL", Const, 0, ""}, + {"IFT_FRAMERELAYINTERCONNECT", Const, 0, ""}, + {"IFT_FRAMERELAYMPI", Const, 0, ""}, + {"IFT_FRDLCIENDPT", Const, 0, ""}, + {"IFT_FRELAY", Const, 0, ""}, + {"IFT_FRELAYDCE", Const, 0, ""}, + {"IFT_FRF16MFRBUNDLE", Const, 0, ""}, + {"IFT_FRFORWARD", Const, 0, ""}, + {"IFT_G703AT2MB", Const, 0, ""}, + {"IFT_G703AT64K", Const, 0, ""}, + {"IFT_GIF", Const, 0, ""}, + {"IFT_GIGABITETHERNET", Const, 0, ""}, + {"IFT_GR303IDT", Const, 0, ""}, + {"IFT_GR303RDT", Const, 0, ""}, + {"IFT_H323GATEKEEPER", Const, 0, ""}, + {"IFT_H323PROXY", Const, 0, ""}, + {"IFT_HDH1822", Const, 0, ""}, + {"IFT_HDLC", Const, 0, ""}, + {"IFT_HDSL2", Const, 0, ""}, + {"IFT_HIPERLAN2", Const, 0, ""}, + {"IFT_HIPPI", Const, 0, ""}, + {"IFT_HIPPIINTERFACE", Const, 0, ""}, + {"IFT_HOSTPAD", Const, 0, ""}, + {"IFT_HSSI", Const, 0, ""}, + {"IFT_HY", Const, 0, ""}, + {"IFT_IBM370PARCHAN", Const, 0, ""}, + {"IFT_IDSL", Const, 0, ""}, + {"IFT_IEEE1394", Const, 0, ""}, + {"IFT_IEEE80211", Const, 0, ""}, + {"IFT_IEEE80212", Const, 0, ""}, + {"IFT_IEEE8023ADLAG", Const, 0, ""}, + {"IFT_IFGSN", Const, 0, ""}, + {"IFT_IMT", Const, 0, ""}, + {"IFT_INFINIBAND", Const, 1, ""}, + {"IFT_INTERLEAVE", Const, 0, ""}, + {"IFT_IP", Const, 0, ""}, + {"IFT_IPFORWARD", Const, 0, ""}, + {"IFT_IPOVERATM", Const, 0, ""}, + {"IFT_IPOVERCDLC", Const, 0, ""}, + {"IFT_IPOVERCLAW", Const, 0, ""}, + {"IFT_IPSWITCH", Const, 0, ""}, + {"IFT_IPXIP", Const, 0, ""}, + {"IFT_ISDN", Const, 0, ""}, + {"IFT_ISDNBASIC", Const, 0, ""}, + {"IFT_ISDNPRIMARY", Const, 0, ""}, + {"IFT_ISDNS", Const, 0, ""}, + {"IFT_ISDNU", Const, 0, ""}, + {"IFT_ISO88022LLC", Const, 0, ""}, + {"IFT_ISO88023", Const, 0, ""}, + {"IFT_ISO88024", Const, 0, ""}, + {"IFT_ISO88025", Const, 0, ""}, + {"IFT_ISO88025CRFPINT", Const, 0, ""}, + {"IFT_ISO88025DTR", Const, 0, ""}, + {"IFT_ISO88025FIBER", Const, 0, ""}, + {"IFT_ISO88026", Const, 0, ""}, + {"IFT_ISUP", Const, 0, ""}, + {"IFT_L2VLAN", Const, 0, ""}, + {"IFT_L3IPVLAN", Const, 0, ""}, + {"IFT_L3IPXVLAN", Const, 0, ""}, + {"IFT_LAPB", Const, 0, ""}, + {"IFT_LAPD", Const, 0, ""}, + {"IFT_LAPF", Const, 0, ""}, + {"IFT_LINEGROUP", Const, 1, ""}, + {"IFT_LOCALTALK", Const, 0, ""}, + {"IFT_LOOP", Const, 0, ""}, + {"IFT_MEDIAMAILOVERIP", Const, 0, ""}, + {"IFT_MFSIGLINK", Const, 0, ""}, + {"IFT_MIOX25", Const, 0, ""}, + {"IFT_MODEM", Const, 0, ""}, + {"IFT_MPC", Const, 0, ""}, + {"IFT_MPLS", Const, 0, ""}, + {"IFT_MPLSTUNNEL", Const, 0, ""}, + {"IFT_MSDSL", Const, 0, ""}, + {"IFT_MVL", Const, 0, ""}, + {"IFT_MYRINET", Const, 0, ""}, + {"IFT_NFAS", Const, 0, ""}, + {"IFT_NSIP", Const, 0, ""}, + {"IFT_OPTICALCHANNEL", Const, 0, ""}, + {"IFT_OPTICALTRANSPORT", Const, 0, ""}, + {"IFT_OTHER", Const, 0, ""}, + {"IFT_P10", Const, 0, ""}, + {"IFT_P80", Const, 0, ""}, + {"IFT_PARA", Const, 0, ""}, + {"IFT_PDP", Const, 0, ""}, + {"IFT_PFLOG", Const, 0, ""}, + {"IFT_PFLOW", Const, 1, ""}, + {"IFT_PFSYNC", Const, 0, ""}, + {"IFT_PLC", Const, 0, ""}, + {"IFT_PON155", Const, 1, ""}, + {"IFT_PON622", Const, 1, ""}, + {"IFT_POS", Const, 0, ""}, + {"IFT_PPP", Const, 0, ""}, + {"IFT_PPPMULTILINKBUNDLE", Const, 0, ""}, + {"IFT_PROPATM", Const, 1, ""}, + {"IFT_PROPBWAP2MP", Const, 0, ""}, + {"IFT_PROPCNLS", Const, 0, ""}, + {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0, ""}, + {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0, ""}, + {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0, ""}, + {"IFT_PROPMUX", Const, 0, ""}, + {"IFT_PROPVIRTUAL", Const, 0, ""}, + {"IFT_PROPWIRELESSP2P", Const, 0, ""}, + {"IFT_PTPSERIAL", Const, 0, ""}, + {"IFT_PVC", Const, 0, ""}, + {"IFT_Q2931", Const, 1, ""}, + {"IFT_QLLC", Const, 0, ""}, + {"IFT_RADIOMAC", Const, 0, ""}, + {"IFT_RADSL", Const, 0, ""}, + {"IFT_REACHDSL", Const, 0, ""}, + {"IFT_RFC1483", Const, 0, ""}, + {"IFT_RS232", Const, 0, ""}, + {"IFT_RSRB", Const, 0, ""}, + {"IFT_SDLC", Const, 0, ""}, + {"IFT_SDSL", Const, 0, ""}, + {"IFT_SHDSL", Const, 0, ""}, + {"IFT_SIP", Const, 0, ""}, + {"IFT_SIPSIG", Const, 1, ""}, + {"IFT_SIPTG", Const, 1, ""}, + {"IFT_SLIP", Const, 0, ""}, + {"IFT_SMDSDXI", Const, 0, ""}, + {"IFT_SMDSICIP", Const, 0, ""}, + {"IFT_SONET", Const, 0, ""}, + {"IFT_SONETOVERHEADCHANNEL", Const, 0, ""}, + {"IFT_SONETPATH", Const, 0, ""}, + {"IFT_SONETVT", Const, 0, ""}, + {"IFT_SRP", Const, 0, ""}, + {"IFT_SS7SIGLINK", Const, 0, ""}, + {"IFT_STACKTOSTACK", Const, 0, ""}, + {"IFT_STARLAN", Const, 0, ""}, + {"IFT_STF", Const, 0, ""}, + {"IFT_T1", Const, 0, ""}, + {"IFT_TDLC", Const, 0, ""}, + {"IFT_TELINK", Const, 1, ""}, + {"IFT_TERMPAD", Const, 0, ""}, + {"IFT_TR008", Const, 0, ""}, + {"IFT_TRANSPHDLC", Const, 0, ""}, + {"IFT_TUNNEL", Const, 0, ""}, + {"IFT_ULTRA", Const, 0, ""}, + {"IFT_USB", Const, 0, ""}, + {"IFT_V11", Const, 0, ""}, + {"IFT_V35", Const, 0, ""}, + {"IFT_V36", Const, 0, ""}, + {"IFT_V37", Const, 0, ""}, + {"IFT_VDSL", Const, 0, ""}, + {"IFT_VIRTUALIPADDRESS", Const, 0, ""}, + {"IFT_VIRTUALTG", Const, 1, ""}, + {"IFT_VOICEDID", Const, 1, ""}, + {"IFT_VOICEEM", Const, 0, ""}, + {"IFT_VOICEEMFGD", Const, 1, ""}, + {"IFT_VOICEENCAP", Const, 0, ""}, + {"IFT_VOICEFGDEANA", Const, 1, ""}, + {"IFT_VOICEFXO", Const, 0, ""}, + {"IFT_VOICEFXS", Const, 0, ""}, + {"IFT_VOICEOVERATM", Const, 0, ""}, + {"IFT_VOICEOVERCABLE", Const, 1, ""}, + {"IFT_VOICEOVERFRAMERELAY", Const, 0, ""}, + {"IFT_VOICEOVERIP", Const, 0, ""}, + {"IFT_X213", Const, 0, ""}, + {"IFT_X25", Const, 0, ""}, + {"IFT_X25DDN", Const, 0, ""}, + {"IFT_X25HUNTGROUP", Const, 0, ""}, + {"IFT_X25MLP", Const, 0, ""}, + {"IFT_X25PLE", Const, 0, ""}, + {"IFT_XETHER", Const, 0, ""}, + {"IGNBRK", Const, 0, ""}, + {"IGNCR", Const, 0, ""}, + {"IGNORE", Const, 0, ""}, + {"IGNPAR", Const, 0, ""}, + {"IMAXBEL", Const, 0, ""}, + {"INFINITE", Const, 0, ""}, + {"INLCR", Const, 0, ""}, + {"INPCK", Const, 0, ""}, + {"INVALID_FILE_ATTRIBUTES", Const, 0, ""}, + {"IN_ACCESS", Const, 0, ""}, + {"IN_ALL_EVENTS", Const, 0, ""}, + {"IN_ATTRIB", Const, 0, ""}, + {"IN_CLASSA_HOST", Const, 0, ""}, + {"IN_CLASSA_MAX", Const, 0, ""}, + {"IN_CLASSA_NET", Const, 0, ""}, + {"IN_CLASSA_NSHIFT", Const, 0, ""}, + {"IN_CLASSB_HOST", Const, 0, ""}, + {"IN_CLASSB_MAX", Const, 0, ""}, + {"IN_CLASSB_NET", Const, 0, ""}, + {"IN_CLASSB_NSHIFT", Const, 0, ""}, + {"IN_CLASSC_HOST", Const, 0, ""}, + {"IN_CLASSC_NET", Const, 0, ""}, + {"IN_CLASSC_NSHIFT", Const, 0, ""}, + {"IN_CLASSD_HOST", Const, 0, ""}, + {"IN_CLASSD_NET", Const, 0, ""}, + {"IN_CLASSD_NSHIFT", Const, 0, ""}, + {"IN_CLOEXEC", Const, 0, ""}, + {"IN_CLOSE", Const, 0, ""}, + {"IN_CLOSE_NOWRITE", Const, 0, ""}, + {"IN_CLOSE_WRITE", Const, 0, ""}, + {"IN_CREATE", Const, 0, ""}, + {"IN_DELETE", Const, 0, ""}, + {"IN_DELETE_SELF", Const, 0, ""}, + {"IN_DONT_FOLLOW", Const, 0, ""}, + {"IN_EXCL_UNLINK", Const, 0, ""}, + {"IN_IGNORED", Const, 0, ""}, + {"IN_ISDIR", Const, 0, ""}, + {"IN_LINKLOCALNETNUM", Const, 0, ""}, + {"IN_LOOPBACKNET", Const, 0, ""}, + {"IN_MASK_ADD", Const, 0, ""}, + {"IN_MODIFY", Const, 0, ""}, + {"IN_MOVE", Const, 0, ""}, + {"IN_MOVED_FROM", Const, 0, ""}, + {"IN_MOVED_TO", Const, 0, ""}, + {"IN_MOVE_SELF", Const, 0, ""}, + {"IN_NONBLOCK", Const, 0, ""}, + {"IN_ONESHOT", Const, 0, ""}, + {"IN_ONLYDIR", Const, 0, ""}, + {"IN_OPEN", Const, 0, ""}, + {"IN_Q_OVERFLOW", Const, 0, ""}, + {"IN_RFC3021_HOST", Const, 1, ""}, + {"IN_RFC3021_MASK", Const, 1, ""}, + {"IN_RFC3021_NET", Const, 1, ""}, + {"IN_RFC3021_NSHIFT", Const, 1, ""}, + {"IN_UNMOUNT", Const, 0, ""}, + {"IOC_IN", Const, 1, ""}, + {"IOC_INOUT", Const, 1, ""}, + {"IOC_OUT", Const, 1, ""}, + {"IOC_VENDOR", Const, 3, ""}, + {"IOC_WS2", Const, 1, ""}, + {"IO_REPARSE_TAG_SYMLINK", Const, 4, ""}, + {"IPMreq", Type, 0, ""}, + {"IPMreq.Interface", Field, 0, ""}, + {"IPMreq.Multiaddr", Field, 0, ""}, + {"IPMreqn", Type, 0, ""}, + {"IPMreqn.Address", Field, 0, ""}, + {"IPMreqn.Ifindex", Field, 0, ""}, + {"IPMreqn.Multiaddr", Field, 0, ""}, + {"IPPROTO_3PC", Const, 0, ""}, + {"IPPROTO_ADFS", Const, 0, ""}, + {"IPPROTO_AH", Const, 0, ""}, + {"IPPROTO_AHIP", Const, 0, ""}, + {"IPPROTO_APES", Const, 0, ""}, + {"IPPROTO_ARGUS", Const, 0, ""}, + {"IPPROTO_AX25", Const, 0, ""}, + {"IPPROTO_BHA", Const, 0, ""}, + {"IPPROTO_BLT", Const, 0, ""}, + {"IPPROTO_BRSATMON", Const, 0, ""}, + {"IPPROTO_CARP", Const, 0, ""}, + {"IPPROTO_CFTP", Const, 0, ""}, + {"IPPROTO_CHAOS", Const, 0, ""}, + {"IPPROTO_CMTP", Const, 0, ""}, + {"IPPROTO_COMP", Const, 0, ""}, + {"IPPROTO_CPHB", Const, 0, ""}, + {"IPPROTO_CPNX", Const, 0, ""}, + {"IPPROTO_DCCP", Const, 0, ""}, + {"IPPROTO_DDP", Const, 0, ""}, + {"IPPROTO_DGP", Const, 0, ""}, + {"IPPROTO_DIVERT", Const, 0, ""}, + {"IPPROTO_DIVERT_INIT", Const, 3, ""}, + {"IPPROTO_DIVERT_RESP", Const, 3, ""}, + {"IPPROTO_DONE", Const, 0, ""}, + {"IPPROTO_DSTOPTS", Const, 0, ""}, + {"IPPROTO_EGP", Const, 0, ""}, + {"IPPROTO_EMCON", Const, 0, ""}, + {"IPPROTO_ENCAP", Const, 0, ""}, + {"IPPROTO_EON", Const, 0, ""}, + {"IPPROTO_ESP", Const, 0, ""}, + {"IPPROTO_ETHERIP", Const, 0, ""}, + {"IPPROTO_FRAGMENT", Const, 0, ""}, + {"IPPROTO_GGP", Const, 0, ""}, + {"IPPROTO_GMTP", Const, 0, ""}, + {"IPPROTO_GRE", Const, 0, ""}, + {"IPPROTO_HELLO", Const, 0, ""}, + {"IPPROTO_HMP", Const, 0, ""}, + {"IPPROTO_HOPOPTS", Const, 0, ""}, + {"IPPROTO_ICMP", Const, 0, ""}, + {"IPPROTO_ICMPV6", Const, 0, ""}, + {"IPPROTO_IDP", Const, 0, ""}, + {"IPPROTO_IDPR", Const, 0, ""}, + {"IPPROTO_IDRP", Const, 0, ""}, + {"IPPROTO_IGMP", Const, 0, ""}, + {"IPPROTO_IGP", Const, 0, ""}, + {"IPPROTO_IGRP", Const, 0, ""}, + {"IPPROTO_IL", Const, 0, ""}, + {"IPPROTO_INLSP", Const, 0, ""}, + {"IPPROTO_INP", Const, 0, ""}, + {"IPPROTO_IP", Const, 0, ""}, + {"IPPROTO_IPCOMP", Const, 0, ""}, + {"IPPROTO_IPCV", Const, 0, ""}, + {"IPPROTO_IPEIP", Const, 0, ""}, + {"IPPROTO_IPIP", Const, 0, ""}, + {"IPPROTO_IPPC", Const, 0, ""}, + {"IPPROTO_IPV4", Const, 0, ""}, + {"IPPROTO_IPV6", Const, 0, ""}, + {"IPPROTO_IPV6_ICMP", Const, 1, ""}, + {"IPPROTO_IRTP", Const, 0, ""}, + {"IPPROTO_KRYPTOLAN", Const, 0, ""}, + {"IPPROTO_LARP", Const, 0, ""}, + {"IPPROTO_LEAF1", Const, 0, ""}, + {"IPPROTO_LEAF2", Const, 0, ""}, + {"IPPROTO_MAX", Const, 0, ""}, + {"IPPROTO_MAXID", Const, 0, ""}, + {"IPPROTO_MEAS", Const, 0, ""}, + {"IPPROTO_MH", Const, 1, ""}, + {"IPPROTO_MHRP", Const, 0, ""}, + {"IPPROTO_MICP", Const, 0, ""}, + {"IPPROTO_MOBILE", Const, 0, ""}, + {"IPPROTO_MPLS", Const, 1, ""}, + {"IPPROTO_MTP", Const, 0, ""}, + {"IPPROTO_MUX", Const, 0, ""}, + {"IPPROTO_ND", Const, 0, ""}, + {"IPPROTO_NHRP", Const, 0, ""}, + {"IPPROTO_NONE", Const, 0, ""}, + {"IPPROTO_NSP", Const, 0, ""}, + {"IPPROTO_NVPII", Const, 0, ""}, + {"IPPROTO_OLD_DIVERT", Const, 0, ""}, + {"IPPROTO_OSPFIGP", Const, 0, ""}, + {"IPPROTO_PFSYNC", Const, 0, ""}, + {"IPPROTO_PGM", Const, 0, ""}, + {"IPPROTO_PIGP", Const, 0, ""}, + {"IPPROTO_PIM", Const, 0, ""}, + {"IPPROTO_PRM", Const, 0, ""}, + {"IPPROTO_PUP", Const, 0, ""}, + {"IPPROTO_PVP", Const, 0, ""}, + {"IPPROTO_RAW", Const, 0, ""}, + {"IPPROTO_RCCMON", Const, 0, ""}, + {"IPPROTO_RDP", Const, 0, ""}, + {"IPPROTO_ROUTING", Const, 0, ""}, + {"IPPROTO_RSVP", Const, 0, ""}, + {"IPPROTO_RVD", Const, 0, ""}, + {"IPPROTO_SATEXPAK", Const, 0, ""}, + {"IPPROTO_SATMON", Const, 0, ""}, + {"IPPROTO_SCCSP", Const, 0, ""}, + {"IPPROTO_SCTP", Const, 0, ""}, + {"IPPROTO_SDRP", Const, 0, ""}, + {"IPPROTO_SEND", Const, 1, ""}, + {"IPPROTO_SEP", Const, 0, ""}, + {"IPPROTO_SKIP", Const, 0, ""}, + {"IPPROTO_SPACER", Const, 0, ""}, + {"IPPROTO_SRPC", Const, 0, ""}, + {"IPPROTO_ST", Const, 0, ""}, + {"IPPROTO_SVMTP", Const, 0, ""}, + {"IPPROTO_SWIPE", Const, 0, ""}, + {"IPPROTO_TCF", Const, 0, ""}, + {"IPPROTO_TCP", Const, 0, ""}, + {"IPPROTO_TLSP", Const, 0, ""}, + {"IPPROTO_TP", Const, 0, ""}, + {"IPPROTO_TPXX", Const, 0, ""}, + {"IPPROTO_TRUNK1", Const, 0, ""}, + {"IPPROTO_TRUNK2", Const, 0, ""}, + {"IPPROTO_TTP", Const, 0, ""}, + {"IPPROTO_UDP", Const, 0, ""}, + {"IPPROTO_UDPLITE", Const, 0, ""}, + {"IPPROTO_VINES", Const, 0, ""}, + {"IPPROTO_VISA", Const, 0, ""}, + {"IPPROTO_VMTP", Const, 0, ""}, + {"IPPROTO_VRRP", Const, 1, ""}, + {"IPPROTO_WBEXPAK", Const, 0, ""}, + {"IPPROTO_WBMON", Const, 0, ""}, + {"IPPROTO_WSN", Const, 0, ""}, + {"IPPROTO_XNET", Const, 0, ""}, + {"IPPROTO_XTP", Const, 0, ""}, + {"IPV6_2292DSTOPTS", Const, 0, ""}, + {"IPV6_2292HOPLIMIT", Const, 0, ""}, + {"IPV6_2292HOPOPTS", Const, 0, ""}, + {"IPV6_2292NEXTHOP", Const, 0, ""}, + {"IPV6_2292PKTINFO", Const, 0, ""}, + {"IPV6_2292PKTOPTIONS", Const, 0, ""}, + {"IPV6_2292RTHDR", Const, 0, ""}, + {"IPV6_ADDRFORM", Const, 0, ""}, + {"IPV6_ADD_MEMBERSHIP", Const, 0, ""}, + {"IPV6_AUTHHDR", Const, 0, ""}, + {"IPV6_AUTH_LEVEL", Const, 1, ""}, + {"IPV6_AUTOFLOWLABEL", Const, 0, ""}, + {"IPV6_BINDANY", Const, 0, ""}, + {"IPV6_BINDV6ONLY", Const, 0, ""}, + {"IPV6_BOUND_IF", Const, 0, ""}, + {"IPV6_CHECKSUM", Const, 0, ""}, + {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0, ""}, + {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0, ""}, + {"IPV6_DEFHLIM", Const, 0, ""}, + {"IPV6_DONTFRAG", Const, 0, ""}, + {"IPV6_DROP_MEMBERSHIP", Const, 0, ""}, + {"IPV6_DSTOPTS", Const, 0, ""}, + {"IPV6_ESP_NETWORK_LEVEL", Const, 1, ""}, + {"IPV6_ESP_TRANS_LEVEL", Const, 1, ""}, + {"IPV6_FAITH", Const, 0, ""}, + {"IPV6_FLOWINFO_MASK", Const, 0, ""}, + {"IPV6_FLOWLABEL_MASK", Const, 0, ""}, + {"IPV6_FRAGTTL", Const, 0, ""}, + {"IPV6_FW_ADD", Const, 0, ""}, + {"IPV6_FW_DEL", Const, 0, ""}, + {"IPV6_FW_FLUSH", Const, 0, ""}, + {"IPV6_FW_GET", Const, 0, ""}, + {"IPV6_FW_ZERO", Const, 0, ""}, + {"IPV6_HLIMDEC", Const, 0, ""}, + {"IPV6_HOPLIMIT", Const, 0, ""}, + {"IPV6_HOPOPTS", Const, 0, ""}, + {"IPV6_IPCOMP_LEVEL", Const, 1, ""}, + {"IPV6_IPSEC_POLICY", Const, 0, ""}, + {"IPV6_JOIN_ANYCAST", Const, 0, ""}, + {"IPV6_JOIN_GROUP", Const, 0, ""}, + {"IPV6_LEAVE_ANYCAST", Const, 0, ""}, + {"IPV6_LEAVE_GROUP", Const, 0, ""}, + {"IPV6_MAXHLIM", Const, 0, ""}, + {"IPV6_MAXOPTHDR", Const, 0, ""}, + {"IPV6_MAXPACKET", Const, 0, ""}, + {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0, ""}, + {"IPV6_MAX_MEMBERSHIPS", Const, 0, ""}, + {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0, ""}, + {"IPV6_MIN_MEMBERSHIPS", Const, 0, ""}, + {"IPV6_MMTU", Const, 0, ""}, + {"IPV6_MSFILTER", Const, 0, ""}, + {"IPV6_MTU", Const, 0, ""}, + {"IPV6_MTU_DISCOVER", Const, 0, ""}, + {"IPV6_MULTICAST_HOPS", Const, 0, ""}, + {"IPV6_MULTICAST_IF", Const, 0, ""}, + {"IPV6_MULTICAST_LOOP", Const, 0, ""}, + {"IPV6_NEXTHOP", Const, 0, ""}, + {"IPV6_OPTIONS", Const, 1, ""}, + {"IPV6_PATHMTU", Const, 0, ""}, + {"IPV6_PIPEX", Const, 1, ""}, + {"IPV6_PKTINFO", Const, 0, ""}, + {"IPV6_PMTUDISC_DO", Const, 0, ""}, + {"IPV6_PMTUDISC_DONT", Const, 0, ""}, + {"IPV6_PMTUDISC_PROBE", Const, 0, ""}, + {"IPV6_PMTUDISC_WANT", Const, 0, ""}, + {"IPV6_PORTRANGE", Const, 0, ""}, + {"IPV6_PORTRANGE_DEFAULT", Const, 0, ""}, + {"IPV6_PORTRANGE_HIGH", Const, 0, ""}, + {"IPV6_PORTRANGE_LOW", Const, 0, ""}, + {"IPV6_PREFER_TEMPADDR", Const, 0, ""}, + {"IPV6_RECVDSTOPTS", Const, 0, ""}, + {"IPV6_RECVDSTPORT", Const, 3, ""}, + {"IPV6_RECVERR", Const, 0, ""}, + {"IPV6_RECVHOPLIMIT", Const, 0, ""}, + {"IPV6_RECVHOPOPTS", Const, 0, ""}, + {"IPV6_RECVPATHMTU", Const, 0, ""}, + {"IPV6_RECVPKTINFO", Const, 0, ""}, + {"IPV6_RECVRTHDR", Const, 0, ""}, + {"IPV6_RECVTCLASS", Const, 0, ""}, + {"IPV6_ROUTER_ALERT", Const, 0, ""}, + {"IPV6_RTABLE", Const, 1, ""}, + {"IPV6_RTHDR", Const, 0, ""}, + {"IPV6_RTHDRDSTOPTS", Const, 0, ""}, + {"IPV6_RTHDR_LOOSE", Const, 0, ""}, + {"IPV6_RTHDR_STRICT", Const, 0, ""}, + {"IPV6_RTHDR_TYPE_0", Const, 0, ""}, + {"IPV6_RXDSTOPTS", Const, 0, ""}, + {"IPV6_RXHOPOPTS", Const, 0, ""}, + {"IPV6_SOCKOPT_RESERVED1", Const, 0, ""}, + {"IPV6_TCLASS", Const, 0, ""}, + {"IPV6_UNICAST_HOPS", Const, 0, ""}, + {"IPV6_USE_MIN_MTU", Const, 0, ""}, + {"IPV6_V6ONLY", Const, 0, ""}, + {"IPV6_VERSION", Const, 0, ""}, + {"IPV6_VERSION_MASK", Const, 0, ""}, + {"IPV6_XFRM_POLICY", Const, 0, ""}, + {"IP_ADD_MEMBERSHIP", Const, 0, ""}, + {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0, ""}, + {"IP_AUTH_LEVEL", Const, 1, ""}, + {"IP_BINDANY", Const, 0, ""}, + {"IP_BLOCK_SOURCE", Const, 0, ""}, + {"IP_BOUND_IF", Const, 0, ""}, + {"IP_DEFAULT_MULTICAST_LOOP", Const, 0, ""}, + {"IP_DEFAULT_MULTICAST_TTL", Const, 0, ""}, + {"IP_DF", Const, 0, ""}, + {"IP_DIVERTFL", Const, 3, ""}, + {"IP_DONTFRAG", Const, 0, ""}, + {"IP_DROP_MEMBERSHIP", Const, 0, ""}, + {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0, ""}, + {"IP_DUMMYNET3", Const, 0, ""}, + {"IP_DUMMYNET_CONFIGURE", Const, 0, ""}, + {"IP_DUMMYNET_DEL", Const, 0, ""}, + {"IP_DUMMYNET_FLUSH", Const, 0, ""}, + {"IP_DUMMYNET_GET", Const, 0, ""}, + {"IP_EF", Const, 1, ""}, + {"IP_ERRORMTU", Const, 1, ""}, + {"IP_ESP_NETWORK_LEVEL", Const, 1, ""}, + {"IP_ESP_TRANS_LEVEL", Const, 1, ""}, + {"IP_FAITH", Const, 0, ""}, + {"IP_FREEBIND", Const, 0, ""}, + {"IP_FW3", Const, 0, ""}, + {"IP_FW_ADD", Const, 0, ""}, + {"IP_FW_DEL", Const, 0, ""}, + {"IP_FW_FLUSH", Const, 0, ""}, + {"IP_FW_GET", Const, 0, ""}, + {"IP_FW_NAT_CFG", Const, 0, ""}, + {"IP_FW_NAT_DEL", Const, 0, ""}, + {"IP_FW_NAT_GET_CONFIG", Const, 0, ""}, + {"IP_FW_NAT_GET_LOG", Const, 0, ""}, + {"IP_FW_RESETLOG", Const, 0, ""}, + {"IP_FW_TABLE_ADD", Const, 0, ""}, + {"IP_FW_TABLE_DEL", Const, 0, ""}, + {"IP_FW_TABLE_FLUSH", Const, 0, ""}, + {"IP_FW_TABLE_GETSIZE", Const, 0, ""}, + {"IP_FW_TABLE_LIST", Const, 0, ""}, + {"IP_FW_ZERO", Const, 0, ""}, + {"IP_HDRINCL", Const, 0, ""}, + {"IP_IPCOMP_LEVEL", Const, 1, ""}, + {"IP_IPSECFLOWINFO", Const, 1, ""}, + {"IP_IPSEC_LOCAL_AUTH", Const, 1, ""}, + {"IP_IPSEC_LOCAL_CRED", Const, 1, ""}, + {"IP_IPSEC_LOCAL_ID", Const, 1, ""}, + {"IP_IPSEC_POLICY", Const, 0, ""}, + {"IP_IPSEC_REMOTE_AUTH", Const, 1, ""}, + {"IP_IPSEC_REMOTE_CRED", Const, 1, ""}, + {"IP_IPSEC_REMOTE_ID", Const, 1, ""}, + {"IP_MAXPACKET", Const, 0, ""}, + {"IP_MAX_GROUP_SRC_FILTER", Const, 0, ""}, + {"IP_MAX_MEMBERSHIPS", Const, 0, ""}, + {"IP_MAX_SOCK_MUTE_FILTER", Const, 0, ""}, + {"IP_MAX_SOCK_SRC_FILTER", Const, 0, ""}, + {"IP_MAX_SOURCE_FILTER", Const, 0, ""}, + {"IP_MF", Const, 0, ""}, + {"IP_MINFRAGSIZE", Const, 1, ""}, + {"IP_MINTTL", Const, 0, ""}, + {"IP_MIN_MEMBERSHIPS", Const, 0, ""}, + {"IP_MSFILTER", Const, 0, ""}, + {"IP_MSS", Const, 0, ""}, + {"IP_MTU", Const, 0, ""}, + {"IP_MTU_DISCOVER", Const, 0, ""}, + {"IP_MULTICAST_IF", Const, 0, ""}, + {"IP_MULTICAST_IFINDEX", Const, 0, ""}, + {"IP_MULTICAST_LOOP", Const, 0, ""}, + {"IP_MULTICAST_TTL", Const, 0, ""}, + {"IP_MULTICAST_VIF", Const, 0, ""}, + {"IP_NAT__XXX", Const, 0, ""}, + {"IP_OFFMASK", Const, 0, ""}, + {"IP_OLD_FW_ADD", Const, 0, ""}, + {"IP_OLD_FW_DEL", Const, 0, ""}, + {"IP_OLD_FW_FLUSH", Const, 0, ""}, + {"IP_OLD_FW_GET", Const, 0, ""}, + {"IP_OLD_FW_RESETLOG", Const, 0, ""}, + {"IP_OLD_FW_ZERO", Const, 0, ""}, + {"IP_ONESBCAST", Const, 0, ""}, + {"IP_OPTIONS", Const, 0, ""}, + {"IP_ORIGDSTADDR", Const, 0, ""}, + {"IP_PASSSEC", Const, 0, ""}, + {"IP_PIPEX", Const, 1, ""}, + {"IP_PKTINFO", Const, 0, ""}, + {"IP_PKTOPTIONS", Const, 0, ""}, + {"IP_PMTUDISC", Const, 0, ""}, + {"IP_PMTUDISC_DO", Const, 0, ""}, + {"IP_PMTUDISC_DONT", Const, 0, ""}, + {"IP_PMTUDISC_PROBE", Const, 0, ""}, + {"IP_PMTUDISC_WANT", Const, 0, ""}, + {"IP_PORTRANGE", Const, 0, ""}, + {"IP_PORTRANGE_DEFAULT", Const, 0, ""}, + {"IP_PORTRANGE_HIGH", Const, 0, ""}, + {"IP_PORTRANGE_LOW", Const, 0, ""}, + {"IP_RECVDSTADDR", Const, 0, ""}, + {"IP_RECVDSTPORT", Const, 1, ""}, + {"IP_RECVERR", Const, 0, ""}, + {"IP_RECVIF", Const, 0, ""}, + {"IP_RECVOPTS", Const, 0, ""}, + {"IP_RECVORIGDSTADDR", Const, 0, ""}, + {"IP_RECVPKTINFO", Const, 0, ""}, + {"IP_RECVRETOPTS", Const, 0, ""}, + {"IP_RECVRTABLE", Const, 1, ""}, + {"IP_RECVTOS", Const, 0, ""}, + {"IP_RECVTTL", Const, 0, ""}, + {"IP_RETOPTS", Const, 0, ""}, + {"IP_RF", Const, 0, ""}, + {"IP_ROUTER_ALERT", Const, 0, ""}, + {"IP_RSVP_OFF", Const, 0, ""}, + {"IP_RSVP_ON", Const, 0, ""}, + {"IP_RSVP_VIF_OFF", Const, 0, ""}, + {"IP_RSVP_VIF_ON", Const, 0, ""}, + {"IP_RTABLE", Const, 1, ""}, + {"IP_SENDSRCADDR", Const, 0, ""}, + {"IP_STRIPHDR", Const, 0, ""}, + {"IP_TOS", Const, 0, ""}, + {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0, ""}, + {"IP_TRANSPARENT", Const, 0, ""}, + {"IP_TTL", Const, 0, ""}, + {"IP_UNBLOCK_SOURCE", Const, 0, ""}, + {"IP_XFRM_POLICY", Const, 0, ""}, + {"IPv6MTUInfo", Type, 2, ""}, + {"IPv6MTUInfo.Addr", Field, 2, ""}, + {"IPv6MTUInfo.Mtu", Field, 2, ""}, + {"IPv6Mreq", Type, 0, ""}, + {"IPv6Mreq.Interface", Field, 0, ""}, + {"IPv6Mreq.Multiaddr", Field, 0, ""}, + {"ISIG", Const, 0, ""}, + {"ISTRIP", Const, 0, ""}, + {"IUCLC", Const, 0, ""}, + {"IUTF8", Const, 0, ""}, + {"IXANY", Const, 0, ""}, + {"IXOFF", Const, 0, ""}, + {"IXON", Const, 0, ""}, + {"IfAddrmsg", Type, 0, ""}, + {"IfAddrmsg.Family", Field, 0, ""}, + {"IfAddrmsg.Flags", Field, 0, ""}, + {"IfAddrmsg.Index", Field, 0, ""}, + {"IfAddrmsg.Prefixlen", Field, 0, ""}, + {"IfAddrmsg.Scope", Field, 0, ""}, + {"IfAnnounceMsghdr", Type, 1, ""}, + {"IfAnnounceMsghdr.Hdrlen", Field, 2, ""}, + {"IfAnnounceMsghdr.Index", Field, 1, ""}, + {"IfAnnounceMsghdr.Msglen", Field, 1, ""}, + {"IfAnnounceMsghdr.Name", Field, 1, ""}, + {"IfAnnounceMsghdr.Type", Field, 1, ""}, + {"IfAnnounceMsghdr.Version", Field, 1, ""}, + {"IfAnnounceMsghdr.What", Field, 1, ""}, + {"IfData", Type, 0, ""}, + {"IfData.Addrlen", Field, 0, ""}, + {"IfData.Baudrate", Field, 0, ""}, + {"IfData.Capabilities", Field, 2, ""}, + {"IfData.Collisions", Field, 0, ""}, + {"IfData.Datalen", Field, 0, ""}, + {"IfData.Epoch", Field, 0, ""}, + {"IfData.Hdrlen", Field, 0, ""}, + {"IfData.Hwassist", Field, 0, ""}, + {"IfData.Ibytes", Field, 0, ""}, + {"IfData.Ierrors", Field, 0, ""}, + {"IfData.Imcasts", Field, 0, ""}, + {"IfData.Ipackets", Field, 0, ""}, + {"IfData.Iqdrops", Field, 0, ""}, + {"IfData.Lastchange", Field, 0, ""}, + {"IfData.Link_state", Field, 0, ""}, + {"IfData.Mclpool", Field, 2, ""}, + {"IfData.Metric", Field, 0, ""}, + {"IfData.Mtu", Field, 0, ""}, + {"IfData.Noproto", Field, 0, ""}, + {"IfData.Obytes", Field, 0, ""}, + {"IfData.Oerrors", Field, 0, ""}, + {"IfData.Omcasts", Field, 0, ""}, + {"IfData.Opackets", Field, 0, ""}, + {"IfData.Pad", Field, 2, ""}, + {"IfData.Pad_cgo_0", Field, 2, ""}, + {"IfData.Pad_cgo_1", Field, 2, ""}, + {"IfData.Physical", Field, 0, ""}, + {"IfData.Recvquota", Field, 0, ""}, + {"IfData.Recvtiming", Field, 0, ""}, + {"IfData.Reserved1", Field, 0, ""}, + {"IfData.Reserved2", Field, 0, ""}, + {"IfData.Spare_char1", Field, 0, ""}, + {"IfData.Spare_char2", Field, 0, ""}, + {"IfData.Type", Field, 0, ""}, + {"IfData.Typelen", Field, 0, ""}, + {"IfData.Unused1", Field, 0, ""}, + {"IfData.Unused2", Field, 0, ""}, + {"IfData.Xmitquota", Field, 0, ""}, + {"IfData.Xmittiming", Field, 0, ""}, + {"IfInfomsg", Type, 0, ""}, + {"IfInfomsg.Change", Field, 0, ""}, + {"IfInfomsg.Family", Field, 0, ""}, + {"IfInfomsg.Flags", Field, 0, ""}, + {"IfInfomsg.Index", Field, 0, ""}, + {"IfInfomsg.Type", Field, 0, ""}, + {"IfInfomsg.X__ifi_pad", Field, 0, ""}, + {"IfMsghdr", Type, 0, ""}, + {"IfMsghdr.Addrs", Field, 0, ""}, + {"IfMsghdr.Data", Field, 0, ""}, + {"IfMsghdr.Flags", Field, 0, ""}, + {"IfMsghdr.Hdrlen", Field, 2, ""}, + {"IfMsghdr.Index", Field, 0, ""}, + {"IfMsghdr.Msglen", Field, 0, ""}, + {"IfMsghdr.Pad1", Field, 2, ""}, + {"IfMsghdr.Pad2", Field, 2, ""}, + {"IfMsghdr.Pad_cgo_0", Field, 0, ""}, + {"IfMsghdr.Pad_cgo_1", Field, 2, ""}, + {"IfMsghdr.Tableid", Field, 2, ""}, + {"IfMsghdr.Type", Field, 0, ""}, + {"IfMsghdr.Version", Field, 0, ""}, + {"IfMsghdr.Xflags", Field, 2, ""}, + {"IfaMsghdr", Type, 0, ""}, + {"IfaMsghdr.Addrs", Field, 0, ""}, + {"IfaMsghdr.Flags", Field, 0, ""}, + {"IfaMsghdr.Hdrlen", Field, 2, ""}, + {"IfaMsghdr.Index", Field, 0, ""}, + {"IfaMsghdr.Metric", Field, 0, ""}, + {"IfaMsghdr.Msglen", Field, 0, ""}, + {"IfaMsghdr.Pad1", Field, 2, ""}, + {"IfaMsghdr.Pad2", Field, 2, ""}, + {"IfaMsghdr.Pad_cgo_0", Field, 0, ""}, + {"IfaMsghdr.Tableid", Field, 2, ""}, + {"IfaMsghdr.Type", Field, 0, ""}, + {"IfaMsghdr.Version", Field, 0, ""}, + {"IfmaMsghdr", Type, 0, ""}, + {"IfmaMsghdr.Addrs", Field, 0, ""}, + {"IfmaMsghdr.Flags", Field, 0, ""}, + {"IfmaMsghdr.Index", Field, 0, ""}, + {"IfmaMsghdr.Msglen", Field, 0, ""}, + {"IfmaMsghdr.Pad_cgo_0", Field, 0, ""}, + {"IfmaMsghdr.Type", Field, 0, ""}, + {"IfmaMsghdr.Version", Field, 0, ""}, + {"IfmaMsghdr2", Type, 0, ""}, + {"IfmaMsghdr2.Addrs", Field, 0, ""}, + {"IfmaMsghdr2.Flags", Field, 0, ""}, + {"IfmaMsghdr2.Index", Field, 0, ""}, + {"IfmaMsghdr2.Msglen", Field, 0, ""}, + {"IfmaMsghdr2.Pad_cgo_0", Field, 0, ""}, + {"IfmaMsghdr2.Refcount", Field, 0, ""}, + {"IfmaMsghdr2.Type", Field, 0, ""}, + {"IfmaMsghdr2.Version", Field, 0, ""}, + {"ImplementsGetwd", Const, 0, ""}, + {"Inet4Pktinfo", Type, 0, ""}, + {"Inet4Pktinfo.Addr", Field, 0, ""}, + {"Inet4Pktinfo.Ifindex", Field, 0, ""}, + {"Inet4Pktinfo.Spec_dst", Field, 0, ""}, + {"Inet6Pktinfo", Type, 0, ""}, + {"Inet6Pktinfo.Addr", Field, 0, ""}, + {"Inet6Pktinfo.Ifindex", Field, 0, ""}, + {"InotifyAddWatch", Func, 0, "func(fd int, pathname string, mask uint32) (watchdesc int, err error)"}, + {"InotifyEvent", Type, 0, ""}, + {"InotifyEvent.Cookie", Field, 0, ""}, + {"InotifyEvent.Len", Field, 0, ""}, + {"InotifyEvent.Mask", Field, 0, ""}, + {"InotifyEvent.Name", Field, 0, ""}, + {"InotifyEvent.Wd", Field, 0, ""}, + {"InotifyInit", Func, 0, "func() (fd int, err error)"}, + {"InotifyInit1", Func, 0, "func(flags int) (fd int, err error)"}, + {"InotifyRmWatch", Func, 0, "func(fd int, watchdesc uint32) (success int, err error)"}, + {"InterfaceAddrMessage", Type, 0, ""}, + {"InterfaceAddrMessage.Data", Field, 0, ""}, + {"InterfaceAddrMessage.Header", Field, 0, ""}, + {"InterfaceAnnounceMessage", Type, 1, ""}, + {"InterfaceAnnounceMessage.Header", Field, 1, ""}, + {"InterfaceInfo", Type, 0, ""}, + {"InterfaceInfo.Address", Field, 0, ""}, + {"InterfaceInfo.BroadcastAddress", Field, 0, ""}, + {"InterfaceInfo.Flags", Field, 0, ""}, + {"InterfaceInfo.Netmask", Field, 0, ""}, + {"InterfaceMessage", Type, 0, ""}, + {"InterfaceMessage.Data", Field, 0, ""}, + {"InterfaceMessage.Header", Field, 0, ""}, + {"InterfaceMulticastAddrMessage", Type, 0, ""}, + {"InterfaceMulticastAddrMessage.Data", Field, 0, ""}, + {"InterfaceMulticastAddrMessage.Header", Field, 0, ""}, + {"InvalidHandle", Const, 0, ""}, + {"Ioperm", Func, 0, "func(from int, num int, on int) (err error)"}, + {"Iopl", Func, 0, "func(level int) (err error)"}, + {"Iovec", Type, 0, ""}, + {"Iovec.Base", Field, 0, ""}, + {"Iovec.Len", Field, 0, ""}, + {"IpAdapterInfo", Type, 0, ""}, + {"IpAdapterInfo.AdapterName", Field, 0, ""}, + {"IpAdapterInfo.Address", Field, 0, ""}, + {"IpAdapterInfo.AddressLength", Field, 0, ""}, + {"IpAdapterInfo.ComboIndex", Field, 0, ""}, + {"IpAdapterInfo.CurrentIpAddress", Field, 0, ""}, + {"IpAdapterInfo.Description", Field, 0, ""}, + {"IpAdapterInfo.DhcpEnabled", Field, 0, ""}, + {"IpAdapterInfo.DhcpServer", Field, 0, ""}, + {"IpAdapterInfo.GatewayList", Field, 0, ""}, + {"IpAdapterInfo.HaveWins", Field, 0, ""}, + {"IpAdapterInfo.Index", Field, 0, ""}, + {"IpAdapterInfo.IpAddressList", Field, 0, ""}, + {"IpAdapterInfo.LeaseExpires", Field, 0, ""}, + {"IpAdapterInfo.LeaseObtained", Field, 0, ""}, + {"IpAdapterInfo.Next", Field, 0, ""}, + {"IpAdapterInfo.PrimaryWinsServer", Field, 0, ""}, + {"IpAdapterInfo.SecondaryWinsServer", Field, 0, ""}, + {"IpAdapterInfo.Type", Field, 0, ""}, + {"IpAddrString", Type, 0, ""}, + {"IpAddrString.Context", Field, 0, ""}, + {"IpAddrString.IpAddress", Field, 0, ""}, + {"IpAddrString.IpMask", Field, 0, ""}, + {"IpAddrString.Next", Field, 0, ""}, + {"IpAddressString", Type, 0, ""}, + {"IpAddressString.String", Field, 0, ""}, + {"IpMaskString", Type, 0, ""}, + {"IpMaskString.String", Field, 2, ""}, + {"Issetugid", Func, 0, ""}, + {"KEY_ALL_ACCESS", Const, 0, ""}, + {"KEY_CREATE_LINK", Const, 0, ""}, + {"KEY_CREATE_SUB_KEY", Const, 0, ""}, + {"KEY_ENUMERATE_SUB_KEYS", Const, 0, ""}, + {"KEY_EXECUTE", Const, 0, ""}, + {"KEY_NOTIFY", Const, 0, ""}, + {"KEY_QUERY_VALUE", Const, 0, ""}, + {"KEY_READ", Const, 0, ""}, + {"KEY_SET_VALUE", Const, 0, ""}, + {"KEY_WOW64_32KEY", Const, 0, ""}, + {"KEY_WOW64_64KEY", Const, 0, ""}, + {"KEY_WRITE", Const, 0, ""}, + {"Kevent", Func, 0, ""}, + {"Kevent_t", Type, 0, ""}, + {"Kevent_t.Data", Field, 0, ""}, + {"Kevent_t.Fflags", Field, 0, ""}, + {"Kevent_t.Filter", Field, 0, ""}, + {"Kevent_t.Flags", Field, 0, ""}, + {"Kevent_t.Ident", Field, 0, ""}, + {"Kevent_t.Pad_cgo_0", Field, 2, ""}, + {"Kevent_t.Udata", Field, 0, ""}, + {"Kill", Func, 0, "func(pid int, sig Signal) (err error)"}, + {"Klogctl", Func, 0, "func(typ int, buf []byte) (n int, err error)"}, + {"Kqueue", Func, 0, ""}, + {"LANG_ENGLISH", Const, 0, ""}, + {"LAYERED_PROTOCOL", Const, 2, ""}, + {"LCNT_OVERLOAD_FLUSH", Const, 1, ""}, + {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0, ""}, + {"LINUX_REBOOT_CMD_CAD_ON", Const, 0, ""}, + {"LINUX_REBOOT_CMD_HALT", Const, 0, ""}, + {"LINUX_REBOOT_CMD_KEXEC", Const, 0, ""}, + {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0, ""}, + {"LINUX_REBOOT_CMD_RESTART", Const, 0, ""}, + {"LINUX_REBOOT_CMD_RESTART2", Const, 0, ""}, + {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0, ""}, + {"LINUX_REBOOT_MAGIC1", Const, 0, ""}, + {"LINUX_REBOOT_MAGIC2", Const, 0, ""}, + {"LOCK_EX", Const, 0, ""}, + {"LOCK_NB", Const, 0, ""}, + {"LOCK_SH", Const, 0, ""}, + {"LOCK_UN", Const, 0, ""}, + {"LazyDLL", Type, 0, ""}, + {"LazyDLL.Name", Field, 0, ""}, + {"LazyProc", Type, 0, ""}, + {"LazyProc.Name", Field, 0, ""}, + {"Lchown", Func, 0, "func(path string, uid int, gid int) (err error)"}, + {"Linger", Type, 0, ""}, + {"Linger.Linger", Field, 0, ""}, + {"Linger.Onoff", Field, 0, ""}, + {"Link", Func, 0, "func(oldpath string, newpath string) (err error)"}, + {"Listen", Func, 0, "func(s int, n int) (err error)"}, + {"Listxattr", Func, 1, "func(path string, dest []byte) (sz int, err error)"}, + {"LoadCancelIoEx", Func, 1, ""}, + {"LoadConnectEx", Func, 1, ""}, + {"LoadCreateSymbolicLink", Func, 4, ""}, + {"LoadDLL", Func, 0, ""}, + {"LoadGetAddrInfo", Func, 1, ""}, + {"LoadLibrary", Func, 0, ""}, + {"LoadSetFileCompletionNotificationModes", Func, 2, ""}, + {"LocalFree", Func, 0, ""}, + {"Log2phys_t", Type, 0, ""}, + {"Log2phys_t.Contigbytes", Field, 0, ""}, + {"Log2phys_t.Devoffset", Field, 0, ""}, + {"Log2phys_t.Flags", Field, 0, ""}, + {"LookupAccountName", Func, 0, ""}, + {"LookupAccountSid", Func, 0, ""}, + {"LookupSID", Func, 0, ""}, + {"LsfJump", Func, 0, "func(code int, k int, jt int, jf int) *SockFilter"}, + {"LsfSocket", Func, 0, "func(ifindex int, proto int) (int, error)"}, + {"LsfStmt", Func, 0, "func(code int, k int) *SockFilter"}, + {"Lstat", Func, 0, "func(path string, stat *Stat_t) (err error)"}, + {"MADV_AUTOSYNC", Const, 1, ""}, + {"MADV_CAN_REUSE", Const, 0, ""}, + {"MADV_CORE", Const, 1, ""}, + {"MADV_DOFORK", Const, 0, ""}, + {"MADV_DONTFORK", Const, 0, ""}, + {"MADV_DONTNEED", Const, 0, ""}, + {"MADV_FREE", Const, 0, ""}, + {"MADV_FREE_REUSABLE", Const, 0, ""}, + {"MADV_FREE_REUSE", Const, 0, ""}, + {"MADV_HUGEPAGE", Const, 0, ""}, + {"MADV_HWPOISON", Const, 0, ""}, + {"MADV_MERGEABLE", Const, 0, ""}, + {"MADV_NOCORE", Const, 1, ""}, + {"MADV_NOHUGEPAGE", Const, 0, ""}, + {"MADV_NORMAL", Const, 0, ""}, + {"MADV_NOSYNC", Const, 1, ""}, + {"MADV_PROTECT", Const, 1, ""}, + {"MADV_RANDOM", Const, 0, ""}, + {"MADV_REMOVE", Const, 0, ""}, + {"MADV_SEQUENTIAL", Const, 0, ""}, + {"MADV_SPACEAVAIL", Const, 3, ""}, + {"MADV_UNMERGEABLE", Const, 0, ""}, + {"MADV_WILLNEED", Const, 0, ""}, + {"MADV_ZERO_WIRED_PAGES", Const, 0, ""}, + {"MAP_32BIT", Const, 0, ""}, + {"MAP_ALIGNED_SUPER", Const, 3, ""}, + {"MAP_ALIGNMENT_16MB", Const, 3, ""}, + {"MAP_ALIGNMENT_1TB", Const, 3, ""}, + {"MAP_ALIGNMENT_256TB", Const, 3, ""}, + {"MAP_ALIGNMENT_4GB", Const, 3, ""}, + {"MAP_ALIGNMENT_64KB", Const, 3, ""}, + {"MAP_ALIGNMENT_64PB", Const, 3, ""}, + {"MAP_ALIGNMENT_MASK", Const, 3, ""}, + {"MAP_ALIGNMENT_SHIFT", Const, 3, ""}, + {"MAP_ANON", Const, 0, ""}, + {"MAP_ANONYMOUS", Const, 0, ""}, + {"MAP_COPY", Const, 0, ""}, + {"MAP_DENYWRITE", Const, 0, ""}, + {"MAP_EXECUTABLE", Const, 0, ""}, + {"MAP_FILE", Const, 0, ""}, + {"MAP_FIXED", Const, 0, ""}, + {"MAP_FLAGMASK", Const, 3, ""}, + {"MAP_GROWSDOWN", Const, 0, ""}, + {"MAP_HASSEMAPHORE", Const, 0, ""}, + {"MAP_HUGETLB", Const, 0, ""}, + {"MAP_INHERIT", Const, 3, ""}, + {"MAP_INHERIT_COPY", Const, 3, ""}, + {"MAP_INHERIT_DEFAULT", Const, 3, ""}, + {"MAP_INHERIT_DONATE_COPY", Const, 3, ""}, + {"MAP_INHERIT_NONE", Const, 3, ""}, + {"MAP_INHERIT_SHARE", Const, 3, ""}, + {"MAP_JIT", Const, 0, ""}, + {"MAP_LOCKED", Const, 0, ""}, + {"MAP_NOCACHE", Const, 0, ""}, + {"MAP_NOCORE", Const, 1, ""}, + {"MAP_NOEXTEND", Const, 0, ""}, + {"MAP_NONBLOCK", Const, 0, ""}, + {"MAP_NORESERVE", Const, 0, ""}, + {"MAP_NOSYNC", Const, 1, ""}, + {"MAP_POPULATE", Const, 0, ""}, + {"MAP_PREFAULT_READ", Const, 1, ""}, + {"MAP_PRIVATE", Const, 0, ""}, + {"MAP_RENAME", Const, 0, ""}, + {"MAP_RESERVED0080", Const, 0, ""}, + {"MAP_RESERVED0100", Const, 1, ""}, + {"MAP_SHARED", Const, 0, ""}, + {"MAP_STACK", Const, 0, ""}, + {"MAP_TRYFIXED", Const, 3, ""}, + {"MAP_TYPE", Const, 0, ""}, + {"MAP_WIRED", Const, 3, ""}, + {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4, ""}, + {"MAXLEN_IFDESCR", Const, 0, ""}, + {"MAXLEN_PHYSADDR", Const, 0, ""}, + {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0, ""}, + {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0, ""}, + {"MAX_ADAPTER_NAME_LENGTH", Const, 0, ""}, + {"MAX_COMPUTERNAME_LENGTH", Const, 0, ""}, + {"MAX_INTERFACE_NAME_LEN", Const, 0, ""}, + {"MAX_LONG_PATH", Const, 0, ""}, + {"MAX_PATH", Const, 0, ""}, + {"MAX_PROTOCOL_CHAIN", Const, 2, ""}, + {"MCL_CURRENT", Const, 0, ""}, + {"MCL_FUTURE", Const, 0, ""}, + {"MNT_DETACH", Const, 0, ""}, + {"MNT_EXPIRE", Const, 0, ""}, + {"MNT_FORCE", Const, 0, ""}, + {"MSG_BCAST", Const, 1, ""}, + {"MSG_CMSG_CLOEXEC", Const, 0, ""}, + {"MSG_COMPAT", Const, 0, ""}, + {"MSG_CONFIRM", Const, 0, ""}, + {"MSG_CONTROLMBUF", Const, 1, ""}, + {"MSG_CTRUNC", Const, 0, ""}, + {"MSG_DONTROUTE", Const, 0, ""}, + {"MSG_DONTWAIT", Const, 0, ""}, + {"MSG_EOF", Const, 0, ""}, + {"MSG_EOR", Const, 0, ""}, + {"MSG_ERRQUEUE", Const, 0, ""}, + {"MSG_FASTOPEN", Const, 1, ""}, + {"MSG_FIN", Const, 0, ""}, + {"MSG_FLUSH", Const, 0, ""}, + {"MSG_HAVEMORE", Const, 0, ""}, + {"MSG_HOLD", Const, 0, ""}, + {"MSG_IOVUSRSPACE", Const, 1, ""}, + {"MSG_LENUSRSPACE", Const, 1, ""}, + {"MSG_MCAST", Const, 1, ""}, + {"MSG_MORE", Const, 0, ""}, + {"MSG_NAMEMBUF", Const, 1, ""}, + {"MSG_NBIO", Const, 0, ""}, + {"MSG_NEEDSA", Const, 0, ""}, + {"MSG_NOSIGNAL", Const, 0, ""}, + {"MSG_NOTIFICATION", Const, 0, ""}, + {"MSG_OOB", Const, 0, ""}, + {"MSG_PEEK", Const, 0, ""}, + {"MSG_PROXY", Const, 0, ""}, + {"MSG_RCVMORE", Const, 0, ""}, + {"MSG_RST", Const, 0, ""}, + {"MSG_SEND", Const, 0, ""}, + {"MSG_SYN", Const, 0, ""}, + {"MSG_TRUNC", Const, 0, ""}, + {"MSG_TRYHARD", Const, 0, ""}, + {"MSG_USERFLAGS", Const, 1, ""}, + {"MSG_WAITALL", Const, 0, ""}, + {"MSG_WAITFORONE", Const, 0, ""}, + {"MSG_WAITSTREAM", Const, 0, ""}, + {"MS_ACTIVE", Const, 0, ""}, + {"MS_ASYNC", Const, 0, ""}, + {"MS_BIND", Const, 0, ""}, + {"MS_DEACTIVATE", Const, 0, ""}, + {"MS_DIRSYNC", Const, 0, ""}, + {"MS_INVALIDATE", Const, 0, ""}, + {"MS_I_VERSION", Const, 0, ""}, + {"MS_KERNMOUNT", Const, 0, ""}, + {"MS_KILLPAGES", Const, 0, ""}, + {"MS_MANDLOCK", Const, 0, ""}, + {"MS_MGC_MSK", Const, 0, ""}, + {"MS_MGC_VAL", Const, 0, ""}, + {"MS_MOVE", Const, 0, ""}, + {"MS_NOATIME", Const, 0, ""}, + {"MS_NODEV", Const, 0, ""}, + {"MS_NODIRATIME", Const, 0, ""}, + {"MS_NOEXEC", Const, 0, ""}, + {"MS_NOSUID", Const, 0, ""}, + {"MS_NOUSER", Const, 0, ""}, + {"MS_POSIXACL", Const, 0, ""}, + {"MS_PRIVATE", Const, 0, ""}, + {"MS_RDONLY", Const, 0, ""}, + {"MS_REC", Const, 0, ""}, + {"MS_RELATIME", Const, 0, ""}, + {"MS_REMOUNT", Const, 0, ""}, + {"MS_RMT_MASK", Const, 0, ""}, + {"MS_SHARED", Const, 0, ""}, + {"MS_SILENT", Const, 0, ""}, + {"MS_SLAVE", Const, 0, ""}, + {"MS_STRICTATIME", Const, 0, ""}, + {"MS_SYNC", Const, 0, ""}, + {"MS_SYNCHRONOUS", Const, 0, ""}, + {"MS_UNBINDABLE", Const, 0, ""}, + {"Madvise", Func, 0, "func(b []byte, advice int) (err error)"}, + {"MapViewOfFile", Func, 0, ""}, + {"MaxTokenInfoClass", Const, 0, ""}, + {"Mclpool", Type, 2, ""}, + {"Mclpool.Alive", Field, 2, ""}, + {"Mclpool.Cwm", Field, 2, ""}, + {"Mclpool.Grown", Field, 2, ""}, + {"Mclpool.Hwm", Field, 2, ""}, + {"Mclpool.Lwm", Field, 2, ""}, + {"MibIfRow", Type, 0, ""}, + {"MibIfRow.AdminStatus", Field, 0, ""}, + {"MibIfRow.Descr", Field, 0, ""}, + {"MibIfRow.DescrLen", Field, 0, ""}, + {"MibIfRow.InDiscards", Field, 0, ""}, + {"MibIfRow.InErrors", Field, 0, ""}, + {"MibIfRow.InNUcastPkts", Field, 0, ""}, + {"MibIfRow.InOctets", Field, 0, ""}, + {"MibIfRow.InUcastPkts", Field, 0, ""}, + {"MibIfRow.InUnknownProtos", Field, 0, ""}, + {"MibIfRow.Index", Field, 0, ""}, + {"MibIfRow.LastChange", Field, 0, ""}, + {"MibIfRow.Mtu", Field, 0, ""}, + {"MibIfRow.Name", Field, 0, ""}, + {"MibIfRow.OperStatus", Field, 0, ""}, + {"MibIfRow.OutDiscards", Field, 0, ""}, + {"MibIfRow.OutErrors", Field, 0, ""}, + {"MibIfRow.OutNUcastPkts", Field, 0, ""}, + {"MibIfRow.OutOctets", Field, 0, ""}, + {"MibIfRow.OutQLen", Field, 0, ""}, + {"MibIfRow.OutUcastPkts", Field, 0, ""}, + {"MibIfRow.PhysAddr", Field, 0, ""}, + {"MibIfRow.PhysAddrLen", Field, 0, ""}, + {"MibIfRow.Speed", Field, 0, ""}, + {"MibIfRow.Type", Field, 0, ""}, + {"Mkdir", Func, 0, "func(path string, mode uint32) (err error)"}, + {"Mkdirat", Func, 0, "func(dirfd int, path string, mode uint32) (err error)"}, + {"Mkfifo", Func, 0, "func(path string, mode uint32) (err error)"}, + {"Mknod", Func, 0, "func(path string, mode uint32, dev int) (err error)"}, + {"Mknodat", Func, 0, "func(dirfd int, path string, mode uint32, dev int) (err error)"}, + {"Mlock", Func, 0, "func(b []byte) (err error)"}, + {"Mlockall", Func, 0, "func(flags int) (err error)"}, + {"Mmap", Func, 0, "func(fd int, offset int64, length int, prot int, flags int) (data []byte, err error)"}, + {"Mount", Func, 0, "func(source string, target string, fstype string, flags uintptr, data string) (err error)"}, + {"MoveFile", Func, 0, ""}, + {"Mprotect", Func, 0, "func(b []byte, prot int) (err error)"}, + {"Msghdr", Type, 0, ""}, + {"Msghdr.Control", Field, 0, ""}, + {"Msghdr.Controllen", Field, 0, ""}, + {"Msghdr.Flags", Field, 0, ""}, + {"Msghdr.Iov", Field, 0, ""}, + {"Msghdr.Iovlen", Field, 0, ""}, + {"Msghdr.Name", Field, 0, ""}, + {"Msghdr.Namelen", Field, 0, ""}, + {"Msghdr.Pad_cgo_0", Field, 0, ""}, + {"Msghdr.Pad_cgo_1", Field, 0, ""}, + {"Munlock", Func, 0, "func(b []byte) (err error)"}, + {"Munlockall", Func, 0, "func() (err error)"}, + {"Munmap", Func, 0, "func(b []byte) (err error)"}, + {"MustLoadDLL", Func, 0, ""}, + {"NAME_MAX", Const, 0, ""}, + {"NETLINK_ADD_MEMBERSHIP", Const, 0, ""}, + {"NETLINK_AUDIT", Const, 0, ""}, + {"NETLINK_BROADCAST_ERROR", Const, 0, ""}, + {"NETLINK_CONNECTOR", Const, 0, ""}, + {"NETLINK_DNRTMSG", Const, 0, ""}, + {"NETLINK_DROP_MEMBERSHIP", Const, 0, ""}, + {"NETLINK_ECRYPTFS", Const, 0, ""}, + {"NETLINK_FIB_LOOKUP", Const, 0, ""}, + {"NETLINK_FIREWALL", Const, 0, ""}, + {"NETLINK_GENERIC", Const, 0, ""}, + {"NETLINK_INET_DIAG", Const, 0, ""}, + {"NETLINK_IP6_FW", Const, 0, ""}, + {"NETLINK_ISCSI", Const, 0, ""}, + {"NETLINK_KOBJECT_UEVENT", Const, 0, ""}, + {"NETLINK_NETFILTER", Const, 0, ""}, + {"NETLINK_NFLOG", Const, 0, ""}, + {"NETLINK_NO_ENOBUFS", Const, 0, ""}, + {"NETLINK_PKTINFO", Const, 0, ""}, + {"NETLINK_RDMA", Const, 0, ""}, + {"NETLINK_ROUTE", Const, 0, ""}, + {"NETLINK_SCSITRANSPORT", Const, 0, ""}, + {"NETLINK_SELINUX", Const, 0, ""}, + {"NETLINK_UNUSED", Const, 0, ""}, + {"NETLINK_USERSOCK", Const, 0, ""}, + {"NETLINK_XFRM", Const, 0, ""}, + {"NET_RT_DUMP", Const, 0, ""}, + {"NET_RT_DUMP2", Const, 0, ""}, + {"NET_RT_FLAGS", Const, 0, ""}, + {"NET_RT_IFLIST", Const, 0, ""}, + {"NET_RT_IFLIST2", Const, 0, ""}, + {"NET_RT_IFLISTL", Const, 1, ""}, + {"NET_RT_IFMALIST", Const, 0, ""}, + {"NET_RT_MAXID", Const, 0, ""}, + {"NET_RT_OIFLIST", Const, 1, ""}, + {"NET_RT_OOIFLIST", Const, 1, ""}, + {"NET_RT_STAT", Const, 0, ""}, + {"NET_RT_STATS", Const, 1, ""}, + {"NET_RT_TABLE", Const, 1, ""}, + {"NET_RT_TRASH", Const, 0, ""}, + {"NLA_ALIGNTO", Const, 0, ""}, + {"NLA_F_NESTED", Const, 0, ""}, + {"NLA_F_NET_BYTEORDER", Const, 0, ""}, + {"NLA_HDRLEN", Const, 0, ""}, + {"NLMSG_ALIGNTO", Const, 0, ""}, + {"NLMSG_DONE", Const, 0, ""}, + {"NLMSG_ERROR", Const, 0, ""}, + {"NLMSG_HDRLEN", Const, 0, ""}, + {"NLMSG_MIN_TYPE", Const, 0, ""}, + {"NLMSG_NOOP", Const, 0, ""}, + {"NLMSG_OVERRUN", Const, 0, ""}, + {"NLM_F_ACK", Const, 0, ""}, + {"NLM_F_APPEND", Const, 0, ""}, + {"NLM_F_ATOMIC", Const, 0, ""}, + {"NLM_F_CREATE", Const, 0, ""}, + {"NLM_F_DUMP", Const, 0, ""}, + {"NLM_F_ECHO", Const, 0, ""}, + {"NLM_F_EXCL", Const, 0, ""}, + {"NLM_F_MATCH", Const, 0, ""}, + {"NLM_F_MULTI", Const, 0, ""}, + {"NLM_F_REPLACE", Const, 0, ""}, + {"NLM_F_REQUEST", Const, 0, ""}, + {"NLM_F_ROOT", Const, 0, ""}, + {"NOFLSH", Const, 0, ""}, + {"NOTE_ABSOLUTE", Const, 0, ""}, + {"NOTE_ATTRIB", Const, 0, ""}, + {"NOTE_BACKGROUND", Const, 16, ""}, + {"NOTE_CHILD", Const, 0, ""}, + {"NOTE_CRITICAL", Const, 16, ""}, + {"NOTE_DELETE", Const, 0, ""}, + {"NOTE_EOF", Const, 1, ""}, + {"NOTE_EXEC", Const, 0, ""}, + {"NOTE_EXIT", Const, 0, ""}, + {"NOTE_EXITSTATUS", Const, 0, ""}, + {"NOTE_EXIT_CSERROR", Const, 16, ""}, + {"NOTE_EXIT_DECRYPTFAIL", Const, 16, ""}, + {"NOTE_EXIT_DETAIL", Const, 16, ""}, + {"NOTE_EXIT_DETAIL_MASK", Const, 16, ""}, + {"NOTE_EXIT_MEMORY", Const, 16, ""}, + {"NOTE_EXIT_REPARENTED", Const, 16, ""}, + {"NOTE_EXTEND", Const, 0, ""}, + {"NOTE_FFAND", Const, 0, ""}, + {"NOTE_FFCOPY", Const, 0, ""}, + {"NOTE_FFCTRLMASK", Const, 0, ""}, + {"NOTE_FFLAGSMASK", Const, 0, ""}, + {"NOTE_FFNOP", Const, 0, ""}, + {"NOTE_FFOR", Const, 0, ""}, + {"NOTE_FORK", Const, 0, ""}, + {"NOTE_LEEWAY", Const, 16, ""}, + {"NOTE_LINK", Const, 0, ""}, + {"NOTE_LOWAT", Const, 0, ""}, + {"NOTE_NONE", Const, 0, ""}, + {"NOTE_NSECONDS", Const, 0, ""}, + {"NOTE_PCTRLMASK", Const, 0, ""}, + {"NOTE_PDATAMASK", Const, 0, ""}, + {"NOTE_REAP", Const, 0, ""}, + {"NOTE_RENAME", Const, 0, ""}, + {"NOTE_RESOURCEEND", Const, 0, ""}, + {"NOTE_REVOKE", Const, 0, ""}, + {"NOTE_SECONDS", Const, 0, ""}, + {"NOTE_SIGNAL", Const, 0, ""}, + {"NOTE_TRACK", Const, 0, ""}, + {"NOTE_TRACKERR", Const, 0, ""}, + {"NOTE_TRIGGER", Const, 0, ""}, + {"NOTE_TRUNCATE", Const, 1, ""}, + {"NOTE_USECONDS", Const, 0, ""}, + {"NOTE_VM_ERROR", Const, 0, ""}, + {"NOTE_VM_PRESSURE", Const, 0, ""}, + {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0, ""}, + {"NOTE_VM_PRESSURE_TERMINATE", Const, 0, ""}, + {"NOTE_WRITE", Const, 0, ""}, + {"NameCanonical", Const, 0, ""}, + {"NameCanonicalEx", Const, 0, ""}, + {"NameDisplay", Const, 0, ""}, + {"NameDnsDomain", Const, 0, ""}, + {"NameFullyQualifiedDN", Const, 0, ""}, + {"NameSamCompatible", Const, 0, ""}, + {"NameServicePrincipal", Const, 0, ""}, + {"NameUniqueId", Const, 0, ""}, + {"NameUnknown", Const, 0, ""}, + {"NameUserPrincipal", Const, 0, ""}, + {"Nanosleep", Func, 0, "func(time *Timespec, leftover *Timespec) (err error)"}, + {"NetApiBufferFree", Func, 0, ""}, + {"NetGetJoinInformation", Func, 2, ""}, + {"NetSetupDomainName", Const, 2, ""}, + {"NetSetupUnjoined", Const, 2, ""}, + {"NetSetupUnknownStatus", Const, 2, ""}, + {"NetSetupWorkgroupName", Const, 2, ""}, + {"NetUserGetInfo", Func, 0, ""}, + {"NetlinkMessage", Type, 0, ""}, + {"NetlinkMessage.Data", Field, 0, ""}, + {"NetlinkMessage.Header", Field, 0, ""}, + {"NetlinkRIB", Func, 0, "func(proto int, family int) ([]byte, error)"}, + {"NetlinkRouteAttr", Type, 0, ""}, + {"NetlinkRouteAttr.Attr", Field, 0, ""}, + {"NetlinkRouteAttr.Value", Field, 0, ""}, + {"NetlinkRouteRequest", Type, 0, ""}, + {"NetlinkRouteRequest.Data", Field, 0, ""}, + {"NetlinkRouteRequest.Header", Field, 0, ""}, + {"NewCallback", Func, 0, ""}, + {"NewCallbackCDecl", Func, 3, ""}, + {"NewLazyDLL", Func, 0, ""}, + {"NlAttr", Type, 0, ""}, + {"NlAttr.Len", Field, 0, ""}, + {"NlAttr.Type", Field, 0, ""}, + {"NlMsgerr", Type, 0, ""}, + {"NlMsgerr.Error", Field, 0, ""}, + {"NlMsgerr.Msg", Field, 0, ""}, + {"NlMsghdr", Type, 0, ""}, + {"NlMsghdr.Flags", Field, 0, ""}, + {"NlMsghdr.Len", Field, 0, ""}, + {"NlMsghdr.Pid", Field, 0, ""}, + {"NlMsghdr.Seq", Field, 0, ""}, + {"NlMsghdr.Type", Field, 0, ""}, + {"NsecToFiletime", Func, 0, ""}, + {"NsecToTimespec", Func, 0, "func(nsec int64) Timespec"}, + {"NsecToTimeval", Func, 0, "func(nsec int64) Timeval"}, + {"Ntohs", Func, 0, ""}, + {"OCRNL", Const, 0, ""}, + {"OFDEL", Const, 0, ""}, + {"OFILL", Const, 0, ""}, + {"OFIOGETBMAP", Const, 1, ""}, + {"OID_PKIX_KP_SERVER_AUTH", Var, 0, ""}, + {"OID_SERVER_GATED_CRYPTO", Var, 0, ""}, + {"OID_SGC_NETSCAPE", Var, 0, ""}, + {"OLCUC", Const, 0, ""}, + {"ONLCR", Const, 0, ""}, + {"ONLRET", Const, 0, ""}, + {"ONOCR", Const, 0, ""}, + {"ONOEOT", Const, 1, ""}, + {"OPEN_ALWAYS", Const, 0, ""}, + {"OPEN_EXISTING", Const, 0, ""}, + {"OPOST", Const, 0, ""}, + {"O_ACCMODE", Const, 0, ""}, + {"O_ALERT", Const, 0, ""}, + {"O_ALT_IO", Const, 1, ""}, + {"O_APPEND", Const, 0, ""}, + {"O_ASYNC", Const, 0, ""}, + {"O_CLOEXEC", Const, 0, ""}, + {"O_CREAT", Const, 0, ""}, + {"O_DIRECT", Const, 0, ""}, + {"O_DIRECTORY", Const, 0, ""}, + {"O_DP_GETRAWENCRYPTED", Const, 16, ""}, + {"O_DSYNC", Const, 0, ""}, + {"O_EVTONLY", Const, 0, ""}, + {"O_EXCL", Const, 0, ""}, + {"O_EXEC", Const, 0, ""}, + {"O_EXLOCK", Const, 0, ""}, + {"O_FSYNC", Const, 0, ""}, + {"O_LARGEFILE", Const, 0, ""}, + {"O_NDELAY", Const, 0, ""}, + {"O_NOATIME", Const, 0, ""}, + {"O_NOCTTY", Const, 0, ""}, + {"O_NOFOLLOW", Const, 0, ""}, + {"O_NONBLOCK", Const, 0, ""}, + {"O_NOSIGPIPE", Const, 1, ""}, + {"O_POPUP", Const, 0, ""}, + {"O_RDONLY", Const, 0, ""}, + {"O_RDWR", Const, 0, ""}, + {"O_RSYNC", Const, 0, ""}, + {"O_SHLOCK", Const, 0, ""}, + {"O_SYMLINK", Const, 0, ""}, + {"O_SYNC", Const, 0, ""}, + {"O_TRUNC", Const, 0, ""}, + {"O_TTY_INIT", Const, 0, ""}, + {"O_WRONLY", Const, 0, ""}, + {"Open", Func, 0, "func(path string, mode int, perm uint32) (fd int, err error)"}, + {"OpenCurrentProcessToken", Func, 0, ""}, + {"OpenProcess", Func, 0, ""}, + {"OpenProcessToken", Func, 0, ""}, + {"Openat", Func, 0, "func(dirfd int, path string, flags int, mode uint32) (fd int, err error)"}, + {"Overlapped", Type, 0, ""}, + {"Overlapped.HEvent", Field, 0, ""}, + {"Overlapped.Internal", Field, 0, ""}, + {"Overlapped.InternalHigh", Field, 0, ""}, + {"Overlapped.Offset", Field, 0, ""}, + {"Overlapped.OffsetHigh", Field, 0, ""}, + {"PACKET_ADD_MEMBERSHIP", Const, 0, ""}, + {"PACKET_BROADCAST", Const, 0, ""}, + {"PACKET_DROP_MEMBERSHIP", Const, 0, ""}, + {"PACKET_FASTROUTE", Const, 0, ""}, + {"PACKET_HOST", Const, 0, ""}, + {"PACKET_LOOPBACK", Const, 0, ""}, + {"PACKET_MR_ALLMULTI", Const, 0, ""}, + {"PACKET_MR_MULTICAST", Const, 0, ""}, + {"PACKET_MR_PROMISC", Const, 0, ""}, + {"PACKET_MULTICAST", Const, 0, ""}, + {"PACKET_OTHERHOST", Const, 0, ""}, + {"PACKET_OUTGOING", Const, 0, ""}, + {"PACKET_RECV_OUTPUT", Const, 0, ""}, + {"PACKET_RX_RING", Const, 0, ""}, + {"PACKET_STATISTICS", Const, 0, ""}, + {"PAGE_EXECUTE_READ", Const, 0, ""}, + {"PAGE_EXECUTE_READWRITE", Const, 0, ""}, + {"PAGE_EXECUTE_WRITECOPY", Const, 0, ""}, + {"PAGE_READONLY", Const, 0, ""}, + {"PAGE_READWRITE", Const, 0, ""}, + {"PAGE_WRITECOPY", Const, 0, ""}, + {"PARENB", Const, 0, ""}, + {"PARMRK", Const, 0, ""}, + {"PARODD", Const, 0, ""}, + {"PENDIN", Const, 0, ""}, + {"PFL_HIDDEN", Const, 2, ""}, + {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2, ""}, + {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2, ""}, + {"PFL_NETWORKDIRECT_PROVIDER", Const, 2, ""}, + {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2, ""}, + {"PF_FLUSH", Const, 1, ""}, + {"PKCS_7_ASN_ENCODING", Const, 0, ""}, + {"PMC5_PIPELINE_FLUSH", Const, 1, ""}, + {"PRIO_PGRP", Const, 2, ""}, + {"PRIO_PROCESS", Const, 2, ""}, + {"PRIO_USER", Const, 2, ""}, + {"PRI_IOFLUSH", Const, 1, ""}, + {"PROCESS_QUERY_INFORMATION", Const, 0, ""}, + {"PROCESS_TERMINATE", Const, 2, ""}, + {"PROT_EXEC", Const, 0, ""}, + {"PROT_GROWSDOWN", Const, 0, ""}, + {"PROT_GROWSUP", Const, 0, ""}, + {"PROT_NONE", Const, 0, ""}, + {"PROT_READ", Const, 0, ""}, + {"PROT_WRITE", Const, 0, ""}, + {"PROV_DH_SCHANNEL", Const, 0, ""}, + {"PROV_DSS", Const, 0, ""}, + {"PROV_DSS_DH", Const, 0, ""}, + {"PROV_EC_ECDSA_FULL", Const, 0, ""}, + {"PROV_EC_ECDSA_SIG", Const, 0, ""}, + {"PROV_EC_ECNRA_FULL", Const, 0, ""}, + {"PROV_EC_ECNRA_SIG", Const, 0, ""}, + {"PROV_FORTEZZA", Const, 0, ""}, + {"PROV_INTEL_SEC", Const, 0, ""}, + {"PROV_MS_EXCHANGE", Const, 0, ""}, + {"PROV_REPLACE_OWF", Const, 0, ""}, + {"PROV_RNG", Const, 0, ""}, + {"PROV_RSA_AES", Const, 0, ""}, + {"PROV_RSA_FULL", Const, 0, ""}, + {"PROV_RSA_SCHANNEL", Const, 0, ""}, + {"PROV_RSA_SIG", Const, 0, ""}, + {"PROV_SPYRUS_LYNKS", Const, 0, ""}, + {"PROV_SSL", Const, 0, ""}, + {"PR_CAPBSET_DROP", Const, 0, ""}, + {"PR_CAPBSET_READ", Const, 0, ""}, + {"PR_CLEAR_SECCOMP_FILTER", Const, 0, ""}, + {"PR_ENDIAN_BIG", Const, 0, ""}, + {"PR_ENDIAN_LITTLE", Const, 0, ""}, + {"PR_ENDIAN_PPC_LITTLE", Const, 0, ""}, + {"PR_FPEMU_NOPRINT", Const, 0, ""}, + {"PR_FPEMU_SIGFPE", Const, 0, ""}, + {"PR_FP_EXC_ASYNC", Const, 0, ""}, + {"PR_FP_EXC_DISABLED", Const, 0, ""}, + {"PR_FP_EXC_DIV", Const, 0, ""}, + {"PR_FP_EXC_INV", Const, 0, ""}, + {"PR_FP_EXC_NONRECOV", Const, 0, ""}, + {"PR_FP_EXC_OVF", Const, 0, ""}, + {"PR_FP_EXC_PRECISE", Const, 0, ""}, + {"PR_FP_EXC_RES", Const, 0, ""}, + {"PR_FP_EXC_SW_ENABLE", Const, 0, ""}, + {"PR_FP_EXC_UND", Const, 0, ""}, + {"PR_GET_DUMPABLE", Const, 0, ""}, + {"PR_GET_ENDIAN", Const, 0, ""}, + {"PR_GET_FPEMU", Const, 0, ""}, + {"PR_GET_FPEXC", Const, 0, ""}, + {"PR_GET_KEEPCAPS", Const, 0, ""}, + {"PR_GET_NAME", Const, 0, ""}, + {"PR_GET_PDEATHSIG", Const, 0, ""}, + {"PR_GET_SECCOMP", Const, 0, ""}, + {"PR_GET_SECCOMP_FILTER", Const, 0, ""}, + {"PR_GET_SECUREBITS", Const, 0, ""}, + {"PR_GET_TIMERSLACK", Const, 0, ""}, + {"PR_GET_TIMING", Const, 0, ""}, + {"PR_GET_TSC", Const, 0, ""}, + {"PR_GET_UNALIGN", Const, 0, ""}, + {"PR_MCE_KILL", Const, 0, ""}, + {"PR_MCE_KILL_CLEAR", Const, 0, ""}, + {"PR_MCE_KILL_DEFAULT", Const, 0, ""}, + {"PR_MCE_KILL_EARLY", Const, 0, ""}, + {"PR_MCE_KILL_GET", Const, 0, ""}, + {"PR_MCE_KILL_LATE", Const, 0, ""}, + {"PR_MCE_KILL_SET", Const, 0, ""}, + {"PR_SECCOMP_FILTER_EVENT", Const, 0, ""}, + {"PR_SECCOMP_FILTER_SYSCALL", Const, 0, ""}, + {"PR_SET_DUMPABLE", Const, 0, ""}, + {"PR_SET_ENDIAN", Const, 0, ""}, + {"PR_SET_FPEMU", Const, 0, ""}, + {"PR_SET_FPEXC", Const, 0, ""}, + {"PR_SET_KEEPCAPS", Const, 0, ""}, + {"PR_SET_NAME", Const, 0, ""}, + {"PR_SET_PDEATHSIG", Const, 0, ""}, + {"PR_SET_PTRACER", Const, 0, ""}, + {"PR_SET_SECCOMP", Const, 0, ""}, + {"PR_SET_SECCOMP_FILTER", Const, 0, ""}, + {"PR_SET_SECUREBITS", Const, 0, ""}, + {"PR_SET_TIMERSLACK", Const, 0, ""}, + {"PR_SET_TIMING", Const, 0, ""}, + {"PR_SET_TSC", Const, 0, ""}, + {"PR_SET_UNALIGN", Const, 0, ""}, + {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0, ""}, + {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0, ""}, + {"PR_TIMING_STATISTICAL", Const, 0, ""}, + {"PR_TIMING_TIMESTAMP", Const, 0, ""}, + {"PR_TSC_ENABLE", Const, 0, ""}, + {"PR_TSC_SIGSEGV", Const, 0, ""}, + {"PR_UNALIGN_NOPRINT", Const, 0, ""}, + {"PR_UNALIGN_SIGBUS", Const, 0, ""}, + {"PTRACE_ARCH_PRCTL", Const, 0, ""}, + {"PTRACE_ATTACH", Const, 0, ""}, + {"PTRACE_CONT", Const, 0, ""}, + {"PTRACE_DETACH", Const, 0, ""}, + {"PTRACE_EVENT_CLONE", Const, 0, ""}, + {"PTRACE_EVENT_EXEC", Const, 0, ""}, + {"PTRACE_EVENT_EXIT", Const, 0, ""}, + {"PTRACE_EVENT_FORK", Const, 0, ""}, + {"PTRACE_EVENT_VFORK", Const, 0, ""}, + {"PTRACE_EVENT_VFORK_DONE", Const, 0, ""}, + {"PTRACE_GETCRUNCHREGS", Const, 0, ""}, + {"PTRACE_GETEVENTMSG", Const, 0, ""}, + {"PTRACE_GETFPREGS", Const, 0, ""}, + {"PTRACE_GETFPXREGS", Const, 0, ""}, + {"PTRACE_GETHBPREGS", Const, 0, ""}, + {"PTRACE_GETREGS", Const, 0, ""}, + {"PTRACE_GETREGSET", Const, 0, ""}, + {"PTRACE_GETSIGINFO", Const, 0, ""}, + {"PTRACE_GETVFPREGS", Const, 0, ""}, + {"PTRACE_GETWMMXREGS", Const, 0, ""}, + {"PTRACE_GET_THREAD_AREA", Const, 0, ""}, + {"PTRACE_KILL", Const, 0, ""}, + {"PTRACE_OLDSETOPTIONS", Const, 0, ""}, + {"PTRACE_O_MASK", Const, 0, ""}, + {"PTRACE_O_TRACECLONE", Const, 0, ""}, + {"PTRACE_O_TRACEEXEC", Const, 0, ""}, + {"PTRACE_O_TRACEEXIT", Const, 0, ""}, + {"PTRACE_O_TRACEFORK", Const, 0, ""}, + {"PTRACE_O_TRACESYSGOOD", Const, 0, ""}, + {"PTRACE_O_TRACEVFORK", Const, 0, ""}, + {"PTRACE_O_TRACEVFORKDONE", Const, 0, ""}, + {"PTRACE_PEEKDATA", Const, 0, ""}, + {"PTRACE_PEEKTEXT", Const, 0, ""}, + {"PTRACE_PEEKUSR", Const, 0, ""}, + {"PTRACE_POKEDATA", Const, 0, ""}, + {"PTRACE_POKETEXT", Const, 0, ""}, + {"PTRACE_POKEUSR", Const, 0, ""}, + {"PTRACE_SETCRUNCHREGS", Const, 0, ""}, + {"PTRACE_SETFPREGS", Const, 0, ""}, + {"PTRACE_SETFPXREGS", Const, 0, ""}, + {"PTRACE_SETHBPREGS", Const, 0, ""}, + {"PTRACE_SETOPTIONS", Const, 0, ""}, + {"PTRACE_SETREGS", Const, 0, ""}, + {"PTRACE_SETREGSET", Const, 0, ""}, + {"PTRACE_SETSIGINFO", Const, 0, ""}, + {"PTRACE_SETVFPREGS", Const, 0, ""}, + {"PTRACE_SETWMMXREGS", Const, 0, ""}, + {"PTRACE_SET_SYSCALL", Const, 0, ""}, + {"PTRACE_SET_THREAD_AREA", Const, 0, ""}, + {"PTRACE_SINGLEBLOCK", Const, 0, ""}, + {"PTRACE_SINGLESTEP", Const, 0, ""}, + {"PTRACE_SYSCALL", Const, 0, ""}, + {"PTRACE_SYSEMU", Const, 0, ""}, + {"PTRACE_SYSEMU_SINGLESTEP", Const, 0, ""}, + {"PTRACE_TRACEME", Const, 0, ""}, + {"PT_ATTACH", Const, 0, ""}, + {"PT_ATTACHEXC", Const, 0, ""}, + {"PT_CONTINUE", Const, 0, ""}, + {"PT_DATA_ADDR", Const, 0, ""}, + {"PT_DENY_ATTACH", Const, 0, ""}, + {"PT_DETACH", Const, 0, ""}, + {"PT_FIRSTMACH", Const, 0, ""}, + {"PT_FORCEQUOTA", Const, 0, ""}, + {"PT_KILL", Const, 0, ""}, + {"PT_MASK", Const, 1, ""}, + {"PT_READ_D", Const, 0, ""}, + {"PT_READ_I", Const, 0, ""}, + {"PT_READ_U", Const, 0, ""}, + {"PT_SIGEXC", Const, 0, ""}, + {"PT_STEP", Const, 0, ""}, + {"PT_TEXT_ADDR", Const, 0, ""}, + {"PT_TEXT_END_ADDR", Const, 0, ""}, + {"PT_THUPDATE", Const, 0, ""}, + {"PT_TRACE_ME", Const, 0, ""}, + {"PT_WRITE_D", Const, 0, ""}, + {"PT_WRITE_I", Const, 0, ""}, + {"PT_WRITE_U", Const, 0, ""}, + {"ParseDirent", Func, 0, "func(buf []byte, max int, names []string) (consumed int, count int, newnames []string)"}, + {"ParseNetlinkMessage", Func, 0, "func(b []byte) ([]NetlinkMessage, error)"}, + {"ParseNetlinkRouteAttr", Func, 0, "func(m *NetlinkMessage) ([]NetlinkRouteAttr, error)"}, + {"ParseRoutingMessage", Func, 0, ""}, + {"ParseRoutingSockaddr", Func, 0, ""}, + {"ParseSocketControlMessage", Func, 0, "func(b []byte) ([]SocketControlMessage, error)"}, + {"ParseUnixCredentials", Func, 0, "func(m *SocketControlMessage) (*Ucred, error)"}, + {"ParseUnixRights", Func, 0, "func(m *SocketControlMessage) ([]int, error)"}, + {"PathMax", Const, 0, ""}, + {"Pathconf", Func, 0, ""}, + {"Pause", Func, 0, "func() (err error)"}, + {"Pipe", Func, 0, "func(p []int) error"}, + {"Pipe2", Func, 1, "func(p []int, flags int) error"}, + {"PivotRoot", Func, 0, "func(newroot string, putold string) (err error)"}, + {"Pointer", Type, 11, ""}, + {"PostQueuedCompletionStatus", Func, 0, ""}, + {"Pread", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"}, + {"Proc", Type, 0, ""}, + {"Proc.Dll", Field, 0, ""}, + {"Proc.Name", Field, 0, ""}, + {"ProcAttr", Type, 0, ""}, + {"ProcAttr.Dir", Field, 0, ""}, + {"ProcAttr.Env", Field, 0, ""}, + {"ProcAttr.Files", Field, 0, ""}, + {"ProcAttr.Sys", Field, 0, ""}, + {"Process32First", Func, 4, ""}, + {"Process32Next", Func, 4, ""}, + {"ProcessEntry32", Type, 4, ""}, + {"ProcessEntry32.DefaultHeapID", Field, 4, ""}, + {"ProcessEntry32.ExeFile", Field, 4, ""}, + {"ProcessEntry32.Flags", Field, 4, ""}, + {"ProcessEntry32.ModuleID", Field, 4, ""}, + {"ProcessEntry32.ParentProcessID", Field, 4, ""}, + {"ProcessEntry32.PriClassBase", Field, 4, ""}, + {"ProcessEntry32.ProcessID", Field, 4, ""}, + {"ProcessEntry32.Size", Field, 4, ""}, + {"ProcessEntry32.Threads", Field, 4, ""}, + {"ProcessEntry32.Usage", Field, 4, ""}, + {"ProcessInformation", Type, 0, ""}, + {"ProcessInformation.Process", Field, 0, ""}, + {"ProcessInformation.ProcessId", Field, 0, ""}, + {"ProcessInformation.Thread", Field, 0, ""}, + {"ProcessInformation.ThreadId", Field, 0, ""}, + {"Protoent", Type, 0, ""}, + {"Protoent.Aliases", Field, 0, ""}, + {"Protoent.Name", Field, 0, ""}, + {"Protoent.Proto", Field, 0, ""}, + {"PtraceAttach", Func, 0, "func(pid int) (err error)"}, + {"PtraceCont", Func, 0, "func(pid int, signal int) (err error)"}, + {"PtraceDetach", Func, 0, "func(pid int) (err error)"}, + {"PtraceGetEventMsg", Func, 0, "func(pid int) (msg uint, err error)"}, + {"PtraceGetRegs", Func, 0, "func(pid int, regsout *PtraceRegs) (err error)"}, + {"PtracePeekData", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"}, + {"PtracePeekText", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"}, + {"PtracePokeData", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"}, + {"PtracePokeText", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"}, + {"PtraceRegs", Type, 0, ""}, + {"PtraceRegs.Cs", Field, 0, ""}, + {"PtraceRegs.Ds", Field, 0, ""}, + {"PtraceRegs.Eax", Field, 0, ""}, + {"PtraceRegs.Ebp", Field, 0, ""}, + {"PtraceRegs.Ebx", Field, 0, ""}, + {"PtraceRegs.Ecx", Field, 0, ""}, + {"PtraceRegs.Edi", Field, 0, ""}, + {"PtraceRegs.Edx", Field, 0, ""}, + {"PtraceRegs.Eflags", Field, 0, ""}, + {"PtraceRegs.Eip", Field, 0, ""}, + {"PtraceRegs.Es", Field, 0, ""}, + {"PtraceRegs.Esi", Field, 0, ""}, + {"PtraceRegs.Esp", Field, 0, ""}, + {"PtraceRegs.Fs", Field, 0, ""}, + {"PtraceRegs.Fs_base", Field, 0, ""}, + {"PtraceRegs.Gs", Field, 0, ""}, + {"PtraceRegs.Gs_base", Field, 0, ""}, + {"PtraceRegs.Orig_eax", Field, 0, ""}, + {"PtraceRegs.Orig_rax", Field, 0, ""}, + {"PtraceRegs.R10", Field, 0, ""}, + {"PtraceRegs.R11", Field, 0, ""}, + {"PtraceRegs.R12", Field, 0, ""}, + {"PtraceRegs.R13", Field, 0, ""}, + {"PtraceRegs.R14", Field, 0, ""}, + {"PtraceRegs.R15", Field, 0, ""}, + {"PtraceRegs.R8", Field, 0, ""}, + {"PtraceRegs.R9", Field, 0, ""}, + {"PtraceRegs.Rax", Field, 0, ""}, + {"PtraceRegs.Rbp", Field, 0, ""}, + {"PtraceRegs.Rbx", Field, 0, ""}, + {"PtraceRegs.Rcx", Field, 0, ""}, + {"PtraceRegs.Rdi", Field, 0, ""}, + {"PtraceRegs.Rdx", Field, 0, ""}, + {"PtraceRegs.Rip", Field, 0, ""}, + {"PtraceRegs.Rsi", Field, 0, ""}, + {"PtraceRegs.Rsp", Field, 0, ""}, + {"PtraceRegs.Ss", Field, 0, ""}, + {"PtraceRegs.Uregs", Field, 0, ""}, + {"PtraceRegs.Xcs", Field, 0, ""}, + {"PtraceRegs.Xds", Field, 0, ""}, + {"PtraceRegs.Xes", Field, 0, ""}, + {"PtraceRegs.Xfs", Field, 0, ""}, + {"PtraceRegs.Xgs", Field, 0, ""}, + {"PtraceRegs.Xss", Field, 0, ""}, + {"PtraceSetOptions", Func, 0, "func(pid int, options int) (err error)"}, + {"PtraceSetRegs", Func, 0, "func(pid int, regs *PtraceRegs) (err error)"}, + {"PtraceSingleStep", Func, 0, "func(pid int) (err error)"}, + {"PtraceSyscall", Func, 1, "func(pid int, signal int) (err error)"}, + {"Pwrite", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"}, + {"REG_BINARY", Const, 0, ""}, + {"REG_DWORD", Const, 0, ""}, + {"REG_DWORD_BIG_ENDIAN", Const, 0, ""}, + {"REG_DWORD_LITTLE_ENDIAN", Const, 0, ""}, + {"REG_EXPAND_SZ", Const, 0, ""}, + {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0, ""}, + {"REG_LINK", Const, 0, ""}, + {"REG_MULTI_SZ", Const, 0, ""}, + {"REG_NONE", Const, 0, ""}, + {"REG_QWORD", Const, 0, ""}, + {"REG_QWORD_LITTLE_ENDIAN", Const, 0, ""}, + {"REG_RESOURCE_LIST", Const, 0, ""}, + {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0, ""}, + {"REG_SZ", Const, 0, ""}, + {"RLIMIT_AS", Const, 0, ""}, + {"RLIMIT_CORE", Const, 0, ""}, + {"RLIMIT_CPU", Const, 0, ""}, + {"RLIMIT_CPU_USAGE_MONITOR", Const, 16, ""}, + {"RLIMIT_DATA", Const, 0, ""}, + {"RLIMIT_FSIZE", Const, 0, ""}, + {"RLIMIT_NOFILE", Const, 0, ""}, + {"RLIMIT_STACK", Const, 0, ""}, + {"RLIM_INFINITY", Const, 0, ""}, + {"RTAX_ADVMSS", Const, 0, ""}, + {"RTAX_AUTHOR", Const, 0, ""}, + {"RTAX_BRD", Const, 0, ""}, + {"RTAX_CWND", Const, 0, ""}, + {"RTAX_DST", Const, 0, ""}, + {"RTAX_FEATURES", Const, 0, ""}, + {"RTAX_FEATURE_ALLFRAG", Const, 0, ""}, + {"RTAX_FEATURE_ECN", Const, 0, ""}, + {"RTAX_FEATURE_SACK", Const, 0, ""}, + {"RTAX_FEATURE_TIMESTAMP", Const, 0, ""}, + {"RTAX_GATEWAY", Const, 0, ""}, + {"RTAX_GENMASK", Const, 0, ""}, + {"RTAX_HOPLIMIT", Const, 0, ""}, + {"RTAX_IFA", Const, 0, ""}, + {"RTAX_IFP", Const, 0, ""}, + {"RTAX_INITCWND", Const, 0, ""}, + {"RTAX_INITRWND", Const, 0, ""}, + {"RTAX_LABEL", Const, 1, ""}, + {"RTAX_LOCK", Const, 0, ""}, + {"RTAX_MAX", Const, 0, ""}, + {"RTAX_MTU", Const, 0, ""}, + {"RTAX_NETMASK", Const, 0, ""}, + {"RTAX_REORDERING", Const, 0, ""}, + {"RTAX_RTO_MIN", Const, 0, ""}, + {"RTAX_RTT", Const, 0, ""}, + {"RTAX_RTTVAR", Const, 0, ""}, + {"RTAX_SRC", Const, 1, ""}, + {"RTAX_SRCMASK", Const, 1, ""}, + {"RTAX_SSTHRESH", Const, 0, ""}, + {"RTAX_TAG", Const, 1, ""}, + {"RTAX_UNSPEC", Const, 0, ""}, + {"RTAX_WINDOW", Const, 0, ""}, + {"RTA_ALIGNTO", Const, 0, ""}, + {"RTA_AUTHOR", Const, 0, ""}, + {"RTA_BRD", Const, 0, ""}, + {"RTA_CACHEINFO", Const, 0, ""}, + {"RTA_DST", Const, 0, ""}, + {"RTA_FLOW", Const, 0, ""}, + {"RTA_GATEWAY", Const, 0, ""}, + {"RTA_GENMASK", Const, 0, ""}, + {"RTA_IFA", Const, 0, ""}, + {"RTA_IFP", Const, 0, ""}, + {"RTA_IIF", Const, 0, ""}, + {"RTA_LABEL", Const, 1, ""}, + {"RTA_MAX", Const, 0, ""}, + {"RTA_METRICS", Const, 0, ""}, + {"RTA_MULTIPATH", Const, 0, ""}, + {"RTA_NETMASK", Const, 0, ""}, + {"RTA_OIF", Const, 0, ""}, + {"RTA_PREFSRC", Const, 0, ""}, + {"RTA_PRIORITY", Const, 0, ""}, + {"RTA_SRC", Const, 0, ""}, + {"RTA_SRCMASK", Const, 1, ""}, + {"RTA_TABLE", Const, 0, ""}, + {"RTA_TAG", Const, 1, ""}, + {"RTA_UNSPEC", Const, 0, ""}, + {"RTCF_DIRECTSRC", Const, 0, ""}, + {"RTCF_DOREDIRECT", Const, 0, ""}, + {"RTCF_LOG", Const, 0, ""}, + {"RTCF_MASQ", Const, 0, ""}, + {"RTCF_NAT", Const, 0, ""}, + {"RTCF_VALVE", Const, 0, ""}, + {"RTF_ADDRCLASSMASK", Const, 0, ""}, + {"RTF_ADDRCONF", Const, 0, ""}, + {"RTF_ALLONLINK", Const, 0, ""}, + {"RTF_ANNOUNCE", Const, 1, ""}, + {"RTF_BLACKHOLE", Const, 0, ""}, + {"RTF_BROADCAST", Const, 0, ""}, + {"RTF_CACHE", Const, 0, ""}, + {"RTF_CLONED", Const, 1, ""}, + {"RTF_CLONING", Const, 0, ""}, + {"RTF_CONDEMNED", Const, 0, ""}, + {"RTF_DEFAULT", Const, 0, ""}, + {"RTF_DELCLONE", Const, 0, ""}, + {"RTF_DONE", Const, 0, ""}, + {"RTF_DYNAMIC", Const, 0, ""}, + {"RTF_FLOW", Const, 0, ""}, + {"RTF_FMASK", Const, 0, ""}, + {"RTF_GATEWAY", Const, 0, ""}, + {"RTF_GWFLAG_COMPAT", Const, 3, ""}, + {"RTF_HOST", Const, 0, ""}, + {"RTF_IFREF", Const, 0, ""}, + {"RTF_IFSCOPE", Const, 0, ""}, + {"RTF_INTERFACE", Const, 0, ""}, + {"RTF_IRTT", Const, 0, ""}, + {"RTF_LINKRT", Const, 0, ""}, + {"RTF_LLDATA", Const, 0, ""}, + {"RTF_LLINFO", Const, 0, ""}, + {"RTF_LOCAL", Const, 0, ""}, + {"RTF_MASK", Const, 1, ""}, + {"RTF_MODIFIED", Const, 0, ""}, + {"RTF_MPATH", Const, 1, ""}, + {"RTF_MPLS", Const, 1, ""}, + {"RTF_MSS", Const, 0, ""}, + {"RTF_MTU", Const, 0, ""}, + {"RTF_MULTICAST", Const, 0, ""}, + {"RTF_NAT", Const, 0, ""}, + {"RTF_NOFORWARD", Const, 0, ""}, + {"RTF_NONEXTHOP", Const, 0, ""}, + {"RTF_NOPMTUDISC", Const, 0, ""}, + {"RTF_PERMANENT_ARP", Const, 1, ""}, + {"RTF_PINNED", Const, 0, ""}, + {"RTF_POLICY", Const, 0, ""}, + {"RTF_PRCLONING", Const, 0, ""}, + {"RTF_PROTO1", Const, 0, ""}, + {"RTF_PROTO2", Const, 0, ""}, + {"RTF_PROTO3", Const, 0, ""}, + {"RTF_PROXY", Const, 16, ""}, + {"RTF_REINSTATE", Const, 0, ""}, + {"RTF_REJECT", Const, 0, ""}, + {"RTF_RNH_LOCKED", Const, 0, ""}, + {"RTF_ROUTER", Const, 16, ""}, + {"RTF_SOURCE", Const, 1, ""}, + {"RTF_SRC", Const, 1, ""}, + {"RTF_STATIC", Const, 0, ""}, + {"RTF_STICKY", Const, 0, ""}, + {"RTF_THROW", Const, 0, ""}, + {"RTF_TUNNEL", Const, 1, ""}, + {"RTF_UP", Const, 0, ""}, + {"RTF_USETRAILERS", Const, 1, ""}, + {"RTF_WASCLONED", Const, 0, ""}, + {"RTF_WINDOW", Const, 0, ""}, + {"RTF_XRESOLVE", Const, 0, ""}, + {"RTM_ADD", Const, 0, ""}, + {"RTM_BASE", Const, 0, ""}, + {"RTM_CHANGE", Const, 0, ""}, + {"RTM_CHGADDR", Const, 1, ""}, + {"RTM_DELACTION", Const, 0, ""}, + {"RTM_DELADDR", Const, 0, ""}, + {"RTM_DELADDRLABEL", Const, 0, ""}, + {"RTM_DELETE", Const, 0, ""}, + {"RTM_DELLINK", Const, 0, ""}, + {"RTM_DELMADDR", Const, 0, ""}, + {"RTM_DELNEIGH", Const, 0, ""}, + {"RTM_DELQDISC", Const, 0, ""}, + {"RTM_DELROUTE", Const, 0, ""}, + {"RTM_DELRULE", Const, 0, ""}, + {"RTM_DELTCLASS", Const, 0, ""}, + {"RTM_DELTFILTER", Const, 0, ""}, + {"RTM_DESYNC", Const, 1, ""}, + {"RTM_F_CLONED", Const, 0, ""}, + {"RTM_F_EQUALIZE", Const, 0, ""}, + {"RTM_F_NOTIFY", Const, 0, ""}, + {"RTM_F_PREFIX", Const, 0, ""}, + {"RTM_GET", Const, 0, ""}, + {"RTM_GET2", Const, 0, ""}, + {"RTM_GETACTION", Const, 0, ""}, + {"RTM_GETADDR", Const, 0, ""}, + {"RTM_GETADDRLABEL", Const, 0, ""}, + {"RTM_GETANYCAST", Const, 0, ""}, + {"RTM_GETDCB", Const, 0, ""}, + {"RTM_GETLINK", Const, 0, ""}, + {"RTM_GETMULTICAST", Const, 0, ""}, + {"RTM_GETNEIGH", Const, 0, ""}, + {"RTM_GETNEIGHTBL", Const, 0, ""}, + {"RTM_GETQDISC", Const, 0, ""}, + {"RTM_GETROUTE", Const, 0, ""}, + {"RTM_GETRULE", Const, 0, ""}, + {"RTM_GETTCLASS", Const, 0, ""}, + {"RTM_GETTFILTER", Const, 0, ""}, + {"RTM_IEEE80211", Const, 0, ""}, + {"RTM_IFANNOUNCE", Const, 0, ""}, + {"RTM_IFINFO", Const, 0, ""}, + {"RTM_IFINFO2", Const, 0, ""}, + {"RTM_LLINFO_UPD", Const, 1, ""}, + {"RTM_LOCK", Const, 0, ""}, + {"RTM_LOSING", Const, 0, ""}, + {"RTM_MAX", Const, 0, ""}, + {"RTM_MAXSIZE", Const, 1, ""}, + {"RTM_MISS", Const, 0, ""}, + {"RTM_NEWACTION", Const, 0, ""}, + {"RTM_NEWADDR", Const, 0, ""}, + {"RTM_NEWADDRLABEL", Const, 0, ""}, + {"RTM_NEWLINK", Const, 0, ""}, + {"RTM_NEWMADDR", Const, 0, ""}, + {"RTM_NEWMADDR2", Const, 0, ""}, + {"RTM_NEWNDUSEROPT", Const, 0, ""}, + {"RTM_NEWNEIGH", Const, 0, ""}, + {"RTM_NEWNEIGHTBL", Const, 0, ""}, + {"RTM_NEWPREFIX", Const, 0, ""}, + {"RTM_NEWQDISC", Const, 0, ""}, + {"RTM_NEWROUTE", Const, 0, ""}, + {"RTM_NEWRULE", Const, 0, ""}, + {"RTM_NEWTCLASS", Const, 0, ""}, + {"RTM_NEWTFILTER", Const, 0, ""}, + {"RTM_NR_FAMILIES", Const, 0, ""}, + {"RTM_NR_MSGTYPES", Const, 0, ""}, + {"RTM_OIFINFO", Const, 1, ""}, + {"RTM_OLDADD", Const, 0, ""}, + {"RTM_OLDDEL", Const, 0, ""}, + {"RTM_OOIFINFO", Const, 1, ""}, + {"RTM_REDIRECT", Const, 0, ""}, + {"RTM_RESOLVE", Const, 0, ""}, + {"RTM_RTTUNIT", Const, 0, ""}, + {"RTM_SETDCB", Const, 0, ""}, + {"RTM_SETGATE", Const, 1, ""}, + {"RTM_SETLINK", Const, 0, ""}, + {"RTM_SETNEIGHTBL", Const, 0, ""}, + {"RTM_VERSION", Const, 0, ""}, + {"RTNH_ALIGNTO", Const, 0, ""}, + {"RTNH_F_DEAD", Const, 0, ""}, + {"RTNH_F_ONLINK", Const, 0, ""}, + {"RTNH_F_PERVASIVE", Const, 0, ""}, + {"RTNLGRP_IPV4_IFADDR", Const, 1, ""}, + {"RTNLGRP_IPV4_MROUTE", Const, 1, ""}, + {"RTNLGRP_IPV4_ROUTE", Const, 1, ""}, + {"RTNLGRP_IPV4_RULE", Const, 1, ""}, + {"RTNLGRP_IPV6_IFADDR", Const, 1, ""}, + {"RTNLGRP_IPV6_IFINFO", Const, 1, ""}, + {"RTNLGRP_IPV6_MROUTE", Const, 1, ""}, + {"RTNLGRP_IPV6_PREFIX", Const, 1, ""}, + {"RTNLGRP_IPV6_ROUTE", Const, 1, ""}, + {"RTNLGRP_IPV6_RULE", Const, 1, ""}, + {"RTNLGRP_LINK", Const, 1, ""}, + {"RTNLGRP_ND_USEROPT", Const, 1, ""}, + {"RTNLGRP_NEIGH", Const, 1, ""}, + {"RTNLGRP_NONE", Const, 1, ""}, + {"RTNLGRP_NOTIFY", Const, 1, ""}, + {"RTNLGRP_TC", Const, 1, ""}, + {"RTN_ANYCAST", Const, 0, ""}, + {"RTN_BLACKHOLE", Const, 0, ""}, + {"RTN_BROADCAST", Const, 0, ""}, + {"RTN_LOCAL", Const, 0, ""}, + {"RTN_MAX", Const, 0, ""}, + {"RTN_MULTICAST", Const, 0, ""}, + {"RTN_NAT", Const, 0, ""}, + {"RTN_PROHIBIT", Const, 0, ""}, + {"RTN_THROW", Const, 0, ""}, + {"RTN_UNICAST", Const, 0, ""}, + {"RTN_UNREACHABLE", Const, 0, ""}, + {"RTN_UNSPEC", Const, 0, ""}, + {"RTN_XRESOLVE", Const, 0, ""}, + {"RTPROT_BIRD", Const, 0, ""}, + {"RTPROT_BOOT", Const, 0, ""}, + {"RTPROT_DHCP", Const, 0, ""}, + {"RTPROT_DNROUTED", Const, 0, ""}, + {"RTPROT_GATED", Const, 0, ""}, + {"RTPROT_KERNEL", Const, 0, ""}, + {"RTPROT_MRT", Const, 0, ""}, + {"RTPROT_NTK", Const, 0, ""}, + {"RTPROT_RA", Const, 0, ""}, + {"RTPROT_REDIRECT", Const, 0, ""}, + {"RTPROT_STATIC", Const, 0, ""}, + {"RTPROT_UNSPEC", Const, 0, ""}, + {"RTPROT_XORP", Const, 0, ""}, + {"RTPROT_ZEBRA", Const, 0, ""}, + {"RTV_EXPIRE", Const, 0, ""}, + {"RTV_HOPCOUNT", Const, 0, ""}, + {"RTV_MTU", Const, 0, ""}, + {"RTV_RPIPE", Const, 0, ""}, + {"RTV_RTT", Const, 0, ""}, + {"RTV_RTTVAR", Const, 0, ""}, + {"RTV_SPIPE", Const, 0, ""}, + {"RTV_SSTHRESH", Const, 0, ""}, + {"RTV_WEIGHT", Const, 0, ""}, + {"RT_CACHING_CONTEXT", Const, 1, ""}, + {"RT_CLASS_DEFAULT", Const, 0, ""}, + {"RT_CLASS_LOCAL", Const, 0, ""}, + {"RT_CLASS_MAIN", Const, 0, ""}, + {"RT_CLASS_MAX", Const, 0, ""}, + {"RT_CLASS_UNSPEC", Const, 0, ""}, + {"RT_DEFAULT_FIB", Const, 1, ""}, + {"RT_NORTREF", Const, 1, ""}, + {"RT_SCOPE_HOST", Const, 0, ""}, + {"RT_SCOPE_LINK", Const, 0, ""}, + {"RT_SCOPE_NOWHERE", Const, 0, ""}, + {"RT_SCOPE_SITE", Const, 0, ""}, + {"RT_SCOPE_UNIVERSE", Const, 0, ""}, + {"RT_TABLEID_MAX", Const, 1, ""}, + {"RT_TABLE_COMPAT", Const, 0, ""}, + {"RT_TABLE_DEFAULT", Const, 0, ""}, + {"RT_TABLE_LOCAL", Const, 0, ""}, + {"RT_TABLE_MAIN", Const, 0, ""}, + {"RT_TABLE_MAX", Const, 0, ""}, + {"RT_TABLE_UNSPEC", Const, 0, ""}, + {"RUSAGE_CHILDREN", Const, 0, ""}, + {"RUSAGE_SELF", Const, 0, ""}, + {"RUSAGE_THREAD", Const, 0, ""}, + {"Radvisory_t", Type, 0, ""}, + {"Radvisory_t.Count", Field, 0, ""}, + {"Radvisory_t.Offset", Field, 0, ""}, + {"Radvisory_t.Pad_cgo_0", Field, 0, ""}, + {"RawConn", Type, 9, ""}, + {"RawSockaddr", Type, 0, ""}, + {"RawSockaddr.Data", Field, 0, ""}, + {"RawSockaddr.Family", Field, 0, ""}, + {"RawSockaddr.Len", Field, 0, ""}, + {"RawSockaddrAny", Type, 0, ""}, + {"RawSockaddrAny.Addr", Field, 0, ""}, + {"RawSockaddrAny.Pad", Field, 0, ""}, + {"RawSockaddrDatalink", Type, 0, ""}, + {"RawSockaddrDatalink.Alen", Field, 0, ""}, + {"RawSockaddrDatalink.Data", Field, 0, ""}, + {"RawSockaddrDatalink.Family", Field, 0, ""}, + {"RawSockaddrDatalink.Index", Field, 0, ""}, + {"RawSockaddrDatalink.Len", Field, 0, ""}, + {"RawSockaddrDatalink.Nlen", Field, 0, ""}, + {"RawSockaddrDatalink.Pad_cgo_0", Field, 2, ""}, + {"RawSockaddrDatalink.Slen", Field, 0, ""}, + {"RawSockaddrDatalink.Type", Field, 0, ""}, + {"RawSockaddrInet4", Type, 0, ""}, + {"RawSockaddrInet4.Addr", Field, 0, ""}, + {"RawSockaddrInet4.Family", Field, 0, ""}, + {"RawSockaddrInet4.Len", Field, 0, ""}, + {"RawSockaddrInet4.Port", Field, 0, ""}, + {"RawSockaddrInet4.Zero", Field, 0, ""}, + {"RawSockaddrInet6", Type, 0, ""}, + {"RawSockaddrInet6.Addr", Field, 0, ""}, + {"RawSockaddrInet6.Family", Field, 0, ""}, + {"RawSockaddrInet6.Flowinfo", Field, 0, ""}, + {"RawSockaddrInet6.Len", Field, 0, ""}, + {"RawSockaddrInet6.Port", Field, 0, ""}, + {"RawSockaddrInet6.Scope_id", Field, 0, ""}, + {"RawSockaddrLinklayer", Type, 0, ""}, + {"RawSockaddrLinklayer.Addr", Field, 0, ""}, + {"RawSockaddrLinklayer.Family", Field, 0, ""}, + {"RawSockaddrLinklayer.Halen", Field, 0, ""}, + {"RawSockaddrLinklayer.Hatype", Field, 0, ""}, + {"RawSockaddrLinklayer.Ifindex", Field, 0, ""}, + {"RawSockaddrLinklayer.Pkttype", Field, 0, ""}, + {"RawSockaddrLinklayer.Protocol", Field, 0, ""}, + {"RawSockaddrNetlink", Type, 0, ""}, + {"RawSockaddrNetlink.Family", Field, 0, ""}, + {"RawSockaddrNetlink.Groups", Field, 0, ""}, + {"RawSockaddrNetlink.Pad", Field, 0, ""}, + {"RawSockaddrNetlink.Pid", Field, 0, ""}, + {"RawSockaddrUnix", Type, 0, ""}, + {"RawSockaddrUnix.Family", Field, 0, ""}, + {"RawSockaddrUnix.Len", Field, 0, ""}, + {"RawSockaddrUnix.Pad_cgo_0", Field, 2, ""}, + {"RawSockaddrUnix.Path", Field, 0, ""}, + {"RawSyscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"RawSyscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"Read", Func, 0, "func(fd int, p []byte) (n int, err error)"}, + {"ReadConsole", Func, 1, ""}, + {"ReadDirectoryChanges", Func, 0, ""}, + {"ReadDirent", Func, 0, "func(fd int, buf []byte) (n int, err error)"}, + {"ReadFile", Func, 0, ""}, + {"Readlink", Func, 0, "func(path string, buf []byte) (n int, err error)"}, + {"Reboot", Func, 0, "func(cmd int) (err error)"}, + {"Recvfrom", Func, 0, "func(fd int, p []byte, flags int) (n int, from Sockaddr, err error)"}, + {"Recvmsg", Func, 0, "func(fd int, p []byte, oob []byte, flags int) (n int, oobn int, recvflags int, from Sockaddr, err error)"}, + {"RegCloseKey", Func, 0, ""}, + {"RegEnumKeyEx", Func, 0, ""}, + {"RegOpenKeyEx", Func, 0, ""}, + {"RegQueryInfoKey", Func, 0, ""}, + {"RegQueryValueEx", Func, 0, ""}, + {"RemoveDirectory", Func, 0, ""}, + {"Removexattr", Func, 1, "func(path string, attr string) (err error)"}, + {"Rename", Func, 0, "func(oldpath string, newpath string) (err error)"}, + {"Renameat", Func, 0, "func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)"}, + {"Revoke", Func, 0, ""}, + {"Rlimit", Type, 0, ""}, + {"Rlimit.Cur", Field, 0, ""}, + {"Rlimit.Max", Field, 0, ""}, + {"Rmdir", Func, 0, "func(path string) error"}, + {"RouteMessage", Type, 0, ""}, + {"RouteMessage.Data", Field, 0, ""}, + {"RouteMessage.Header", Field, 0, ""}, + {"RouteRIB", Func, 0, ""}, + {"RoutingMessage", Type, 0, ""}, + {"RtAttr", Type, 0, ""}, + {"RtAttr.Len", Field, 0, ""}, + {"RtAttr.Type", Field, 0, ""}, + {"RtGenmsg", Type, 0, ""}, + {"RtGenmsg.Family", Field, 0, ""}, + {"RtMetrics", Type, 0, ""}, + {"RtMetrics.Expire", Field, 0, ""}, + {"RtMetrics.Filler", Field, 0, ""}, + {"RtMetrics.Hopcount", Field, 0, ""}, + {"RtMetrics.Locks", Field, 0, ""}, + {"RtMetrics.Mtu", Field, 0, ""}, + {"RtMetrics.Pad", Field, 3, ""}, + {"RtMetrics.Pksent", Field, 0, ""}, + {"RtMetrics.Recvpipe", Field, 0, ""}, + {"RtMetrics.Refcnt", Field, 2, ""}, + {"RtMetrics.Rtt", Field, 0, ""}, + {"RtMetrics.Rttvar", Field, 0, ""}, + {"RtMetrics.Sendpipe", Field, 0, ""}, + {"RtMetrics.Ssthresh", Field, 0, ""}, + {"RtMetrics.Weight", Field, 0, ""}, + {"RtMsg", Type, 0, ""}, + {"RtMsg.Dst_len", Field, 0, ""}, + {"RtMsg.Family", Field, 0, ""}, + {"RtMsg.Flags", Field, 0, ""}, + {"RtMsg.Protocol", Field, 0, ""}, + {"RtMsg.Scope", Field, 0, ""}, + {"RtMsg.Src_len", Field, 0, ""}, + {"RtMsg.Table", Field, 0, ""}, + {"RtMsg.Tos", Field, 0, ""}, + {"RtMsg.Type", Field, 0, ""}, + {"RtMsghdr", Type, 0, ""}, + {"RtMsghdr.Addrs", Field, 0, ""}, + {"RtMsghdr.Errno", Field, 0, ""}, + {"RtMsghdr.Flags", Field, 0, ""}, + {"RtMsghdr.Fmask", Field, 0, ""}, + {"RtMsghdr.Hdrlen", Field, 2, ""}, + {"RtMsghdr.Index", Field, 0, ""}, + {"RtMsghdr.Inits", Field, 0, ""}, + {"RtMsghdr.Mpls", Field, 2, ""}, + {"RtMsghdr.Msglen", Field, 0, ""}, + {"RtMsghdr.Pad_cgo_0", Field, 0, ""}, + {"RtMsghdr.Pad_cgo_1", Field, 2, ""}, + {"RtMsghdr.Pid", Field, 0, ""}, + {"RtMsghdr.Priority", Field, 2, ""}, + {"RtMsghdr.Rmx", Field, 0, ""}, + {"RtMsghdr.Seq", Field, 0, ""}, + {"RtMsghdr.Tableid", Field, 2, ""}, + {"RtMsghdr.Type", Field, 0, ""}, + {"RtMsghdr.Use", Field, 0, ""}, + {"RtMsghdr.Version", Field, 0, ""}, + {"RtNexthop", Type, 0, ""}, + {"RtNexthop.Flags", Field, 0, ""}, + {"RtNexthop.Hops", Field, 0, ""}, + {"RtNexthop.Ifindex", Field, 0, ""}, + {"RtNexthop.Len", Field, 0, ""}, + {"Rusage", Type, 0, ""}, + {"Rusage.CreationTime", Field, 0, ""}, + {"Rusage.ExitTime", Field, 0, ""}, + {"Rusage.Idrss", Field, 0, ""}, + {"Rusage.Inblock", Field, 0, ""}, + {"Rusage.Isrss", Field, 0, ""}, + {"Rusage.Ixrss", Field, 0, ""}, + {"Rusage.KernelTime", Field, 0, ""}, + {"Rusage.Majflt", Field, 0, ""}, + {"Rusage.Maxrss", Field, 0, ""}, + {"Rusage.Minflt", Field, 0, ""}, + {"Rusage.Msgrcv", Field, 0, ""}, + {"Rusage.Msgsnd", Field, 0, ""}, + {"Rusage.Nivcsw", Field, 0, ""}, + {"Rusage.Nsignals", Field, 0, ""}, + {"Rusage.Nswap", Field, 0, ""}, + {"Rusage.Nvcsw", Field, 0, ""}, + {"Rusage.Oublock", Field, 0, ""}, + {"Rusage.Stime", Field, 0, ""}, + {"Rusage.UserTime", Field, 0, ""}, + {"Rusage.Utime", Field, 0, ""}, + {"SCM_BINTIME", Const, 0, ""}, + {"SCM_CREDENTIALS", Const, 0, ""}, + {"SCM_CREDS", Const, 0, ""}, + {"SCM_RIGHTS", Const, 0, ""}, + {"SCM_TIMESTAMP", Const, 0, ""}, + {"SCM_TIMESTAMPING", Const, 0, ""}, + {"SCM_TIMESTAMPNS", Const, 0, ""}, + {"SCM_TIMESTAMP_MONOTONIC", Const, 0, ""}, + {"SHUT_RD", Const, 0, ""}, + {"SHUT_RDWR", Const, 0, ""}, + {"SHUT_WR", Const, 0, ""}, + {"SID", Type, 0, ""}, + {"SIDAndAttributes", Type, 0, ""}, + {"SIDAndAttributes.Attributes", Field, 0, ""}, + {"SIDAndAttributes.Sid", Field, 0, ""}, + {"SIGABRT", Const, 0, ""}, + {"SIGALRM", Const, 0, ""}, + {"SIGBUS", Const, 0, ""}, + {"SIGCHLD", Const, 0, ""}, + {"SIGCLD", Const, 0, ""}, + {"SIGCONT", Const, 0, ""}, + {"SIGEMT", Const, 0, ""}, + {"SIGFPE", Const, 0, ""}, + {"SIGHUP", Const, 0, ""}, + {"SIGILL", Const, 0, ""}, + {"SIGINFO", Const, 0, ""}, + {"SIGINT", Const, 0, ""}, + {"SIGIO", Const, 0, ""}, + {"SIGIOT", Const, 0, ""}, + {"SIGKILL", Const, 0, ""}, + {"SIGLIBRT", Const, 1, ""}, + {"SIGLWP", Const, 0, ""}, + {"SIGPIPE", Const, 0, ""}, + {"SIGPOLL", Const, 0, ""}, + {"SIGPROF", Const, 0, ""}, + {"SIGPWR", Const, 0, ""}, + {"SIGQUIT", Const, 0, ""}, + {"SIGSEGV", Const, 0, ""}, + {"SIGSTKFLT", Const, 0, ""}, + {"SIGSTOP", Const, 0, ""}, + {"SIGSYS", Const, 0, ""}, + {"SIGTERM", Const, 0, ""}, + {"SIGTHR", Const, 0, ""}, + {"SIGTRAP", Const, 0, ""}, + {"SIGTSTP", Const, 0, ""}, + {"SIGTTIN", Const, 0, ""}, + {"SIGTTOU", Const, 0, ""}, + {"SIGUNUSED", Const, 0, ""}, + {"SIGURG", Const, 0, ""}, + {"SIGUSR1", Const, 0, ""}, + {"SIGUSR2", Const, 0, ""}, + {"SIGVTALRM", Const, 0, ""}, + {"SIGWINCH", Const, 0, ""}, + {"SIGXCPU", Const, 0, ""}, + {"SIGXFSZ", Const, 0, ""}, + {"SIOCADDDLCI", Const, 0, ""}, + {"SIOCADDMULTI", Const, 0, ""}, + {"SIOCADDRT", Const, 0, ""}, + {"SIOCAIFADDR", Const, 0, ""}, + {"SIOCAIFGROUP", Const, 0, ""}, + {"SIOCALIFADDR", Const, 0, ""}, + {"SIOCARPIPLL", Const, 0, ""}, + {"SIOCATMARK", Const, 0, ""}, + {"SIOCAUTOADDR", Const, 0, ""}, + {"SIOCAUTONETMASK", Const, 0, ""}, + {"SIOCBRDGADD", Const, 1, ""}, + {"SIOCBRDGADDS", Const, 1, ""}, + {"SIOCBRDGARL", Const, 1, ""}, + {"SIOCBRDGDADDR", Const, 1, ""}, + {"SIOCBRDGDEL", Const, 1, ""}, + {"SIOCBRDGDELS", Const, 1, ""}, + {"SIOCBRDGFLUSH", Const, 1, ""}, + {"SIOCBRDGFRL", Const, 1, ""}, + {"SIOCBRDGGCACHE", Const, 1, ""}, + {"SIOCBRDGGFD", Const, 1, ""}, + {"SIOCBRDGGHT", Const, 1, ""}, + {"SIOCBRDGGIFFLGS", Const, 1, ""}, + {"SIOCBRDGGMA", Const, 1, ""}, + {"SIOCBRDGGPARAM", Const, 1, ""}, + {"SIOCBRDGGPRI", Const, 1, ""}, + {"SIOCBRDGGRL", Const, 1, ""}, + {"SIOCBRDGGSIFS", Const, 1, ""}, + {"SIOCBRDGGTO", Const, 1, ""}, + {"SIOCBRDGIFS", Const, 1, ""}, + {"SIOCBRDGRTS", Const, 1, ""}, + {"SIOCBRDGSADDR", Const, 1, ""}, + {"SIOCBRDGSCACHE", Const, 1, ""}, + {"SIOCBRDGSFD", Const, 1, ""}, + {"SIOCBRDGSHT", Const, 1, ""}, + {"SIOCBRDGSIFCOST", Const, 1, ""}, + {"SIOCBRDGSIFFLGS", Const, 1, ""}, + {"SIOCBRDGSIFPRIO", Const, 1, ""}, + {"SIOCBRDGSMA", Const, 1, ""}, + {"SIOCBRDGSPRI", Const, 1, ""}, + {"SIOCBRDGSPROTO", Const, 1, ""}, + {"SIOCBRDGSTO", Const, 1, ""}, + {"SIOCBRDGSTXHC", Const, 1, ""}, + {"SIOCDARP", Const, 0, ""}, + {"SIOCDELDLCI", Const, 0, ""}, + {"SIOCDELMULTI", Const, 0, ""}, + {"SIOCDELRT", Const, 0, ""}, + {"SIOCDEVPRIVATE", Const, 0, ""}, + {"SIOCDIFADDR", Const, 0, ""}, + {"SIOCDIFGROUP", Const, 0, ""}, + {"SIOCDIFPHYADDR", Const, 0, ""}, + {"SIOCDLIFADDR", Const, 0, ""}, + {"SIOCDRARP", Const, 0, ""}, + {"SIOCGARP", Const, 0, ""}, + {"SIOCGDRVSPEC", Const, 0, ""}, + {"SIOCGETKALIVE", Const, 1, ""}, + {"SIOCGETLABEL", Const, 1, ""}, + {"SIOCGETPFLOW", Const, 1, ""}, + {"SIOCGETPFSYNC", Const, 1, ""}, + {"SIOCGETSGCNT", Const, 0, ""}, + {"SIOCGETVIFCNT", Const, 0, ""}, + {"SIOCGETVLAN", Const, 0, ""}, + {"SIOCGHIWAT", Const, 0, ""}, + {"SIOCGIFADDR", Const, 0, ""}, + {"SIOCGIFADDRPREF", Const, 1, ""}, + {"SIOCGIFALIAS", Const, 1, ""}, + {"SIOCGIFALTMTU", Const, 0, ""}, + {"SIOCGIFASYNCMAP", Const, 0, ""}, + {"SIOCGIFBOND", Const, 0, ""}, + {"SIOCGIFBR", Const, 0, ""}, + {"SIOCGIFBRDADDR", Const, 0, ""}, + {"SIOCGIFCAP", Const, 0, ""}, + {"SIOCGIFCONF", Const, 0, ""}, + {"SIOCGIFCOUNT", Const, 0, ""}, + {"SIOCGIFDATA", Const, 1, ""}, + {"SIOCGIFDESCR", Const, 0, ""}, + {"SIOCGIFDEVMTU", Const, 0, ""}, + {"SIOCGIFDLT", Const, 1, ""}, + {"SIOCGIFDSTADDR", Const, 0, ""}, + {"SIOCGIFENCAP", Const, 0, ""}, + {"SIOCGIFFIB", Const, 1, ""}, + {"SIOCGIFFLAGS", Const, 0, ""}, + {"SIOCGIFGATTR", Const, 1, ""}, + {"SIOCGIFGENERIC", Const, 0, ""}, + {"SIOCGIFGMEMB", Const, 0, ""}, + {"SIOCGIFGROUP", Const, 0, ""}, + {"SIOCGIFHARDMTU", Const, 3, ""}, + {"SIOCGIFHWADDR", Const, 0, ""}, + {"SIOCGIFINDEX", Const, 0, ""}, + {"SIOCGIFKPI", Const, 0, ""}, + {"SIOCGIFMAC", Const, 0, ""}, + {"SIOCGIFMAP", Const, 0, ""}, + {"SIOCGIFMEDIA", Const, 0, ""}, + {"SIOCGIFMEM", Const, 0, ""}, + {"SIOCGIFMETRIC", Const, 0, ""}, + {"SIOCGIFMTU", Const, 0, ""}, + {"SIOCGIFNAME", Const, 0, ""}, + {"SIOCGIFNETMASK", Const, 0, ""}, + {"SIOCGIFPDSTADDR", Const, 0, ""}, + {"SIOCGIFPFLAGS", Const, 0, ""}, + {"SIOCGIFPHYS", Const, 0, ""}, + {"SIOCGIFPRIORITY", Const, 1, ""}, + {"SIOCGIFPSRCADDR", Const, 0, ""}, + {"SIOCGIFRDOMAIN", Const, 1, ""}, + {"SIOCGIFRTLABEL", Const, 1, ""}, + {"SIOCGIFSLAVE", Const, 0, ""}, + {"SIOCGIFSTATUS", Const, 0, ""}, + {"SIOCGIFTIMESLOT", Const, 1, ""}, + {"SIOCGIFTXQLEN", Const, 0, ""}, + {"SIOCGIFVLAN", Const, 0, ""}, + {"SIOCGIFWAKEFLAGS", Const, 0, ""}, + {"SIOCGIFXFLAGS", Const, 1, ""}, + {"SIOCGLIFADDR", Const, 0, ""}, + {"SIOCGLIFPHYADDR", Const, 0, ""}, + {"SIOCGLIFPHYRTABLE", Const, 1, ""}, + {"SIOCGLIFPHYTTL", Const, 3, ""}, + {"SIOCGLINKSTR", Const, 1, ""}, + {"SIOCGLOWAT", Const, 0, ""}, + {"SIOCGPGRP", Const, 0, ""}, + {"SIOCGPRIVATE_0", Const, 0, ""}, + {"SIOCGPRIVATE_1", Const, 0, ""}, + {"SIOCGRARP", Const, 0, ""}, + {"SIOCGSPPPPARAMS", Const, 3, ""}, + {"SIOCGSTAMP", Const, 0, ""}, + {"SIOCGSTAMPNS", Const, 0, ""}, + {"SIOCGVH", Const, 1, ""}, + {"SIOCGVNETID", Const, 3, ""}, + {"SIOCIFCREATE", Const, 0, ""}, + {"SIOCIFCREATE2", Const, 0, ""}, + {"SIOCIFDESTROY", Const, 0, ""}, + {"SIOCIFGCLONERS", Const, 0, ""}, + {"SIOCINITIFADDR", Const, 1, ""}, + {"SIOCPROTOPRIVATE", Const, 0, ""}, + {"SIOCRSLVMULTI", Const, 0, ""}, + {"SIOCRTMSG", Const, 0, ""}, + {"SIOCSARP", Const, 0, ""}, + {"SIOCSDRVSPEC", Const, 0, ""}, + {"SIOCSETKALIVE", Const, 1, ""}, + {"SIOCSETLABEL", Const, 1, ""}, + {"SIOCSETPFLOW", Const, 1, ""}, + {"SIOCSETPFSYNC", Const, 1, ""}, + {"SIOCSETVLAN", Const, 0, ""}, + {"SIOCSHIWAT", Const, 0, ""}, + {"SIOCSIFADDR", Const, 0, ""}, + {"SIOCSIFADDRPREF", Const, 1, ""}, + {"SIOCSIFALTMTU", Const, 0, ""}, + {"SIOCSIFASYNCMAP", Const, 0, ""}, + {"SIOCSIFBOND", Const, 0, ""}, + {"SIOCSIFBR", Const, 0, ""}, + {"SIOCSIFBRDADDR", Const, 0, ""}, + {"SIOCSIFCAP", Const, 0, ""}, + {"SIOCSIFDESCR", Const, 0, ""}, + {"SIOCSIFDSTADDR", Const, 0, ""}, + {"SIOCSIFENCAP", Const, 0, ""}, + {"SIOCSIFFIB", Const, 1, ""}, + {"SIOCSIFFLAGS", Const, 0, ""}, + {"SIOCSIFGATTR", Const, 1, ""}, + {"SIOCSIFGENERIC", Const, 0, ""}, + {"SIOCSIFHWADDR", Const, 0, ""}, + {"SIOCSIFHWBROADCAST", Const, 0, ""}, + {"SIOCSIFKPI", Const, 0, ""}, + {"SIOCSIFLINK", Const, 0, ""}, + {"SIOCSIFLLADDR", Const, 0, ""}, + {"SIOCSIFMAC", Const, 0, ""}, + {"SIOCSIFMAP", Const, 0, ""}, + {"SIOCSIFMEDIA", Const, 0, ""}, + {"SIOCSIFMEM", Const, 0, ""}, + {"SIOCSIFMETRIC", Const, 0, ""}, + {"SIOCSIFMTU", Const, 0, ""}, + {"SIOCSIFNAME", Const, 0, ""}, + {"SIOCSIFNETMASK", Const, 0, ""}, + {"SIOCSIFPFLAGS", Const, 0, ""}, + {"SIOCSIFPHYADDR", Const, 0, ""}, + {"SIOCSIFPHYS", Const, 0, ""}, + {"SIOCSIFPRIORITY", Const, 1, ""}, + {"SIOCSIFRDOMAIN", Const, 1, ""}, + {"SIOCSIFRTLABEL", Const, 1, ""}, + {"SIOCSIFRVNET", Const, 0, ""}, + {"SIOCSIFSLAVE", Const, 0, ""}, + {"SIOCSIFTIMESLOT", Const, 1, ""}, + {"SIOCSIFTXQLEN", Const, 0, ""}, + {"SIOCSIFVLAN", Const, 0, ""}, + {"SIOCSIFVNET", Const, 0, ""}, + {"SIOCSIFXFLAGS", Const, 1, ""}, + {"SIOCSLIFPHYADDR", Const, 0, ""}, + {"SIOCSLIFPHYRTABLE", Const, 1, ""}, + {"SIOCSLIFPHYTTL", Const, 3, ""}, + {"SIOCSLINKSTR", Const, 1, ""}, + {"SIOCSLOWAT", Const, 0, ""}, + {"SIOCSPGRP", Const, 0, ""}, + {"SIOCSRARP", Const, 0, ""}, + {"SIOCSSPPPPARAMS", Const, 3, ""}, + {"SIOCSVH", Const, 1, ""}, + {"SIOCSVNETID", Const, 3, ""}, + {"SIOCZIFDATA", Const, 1, ""}, + {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1, ""}, + {"SIO_GET_INTERFACE_LIST", Const, 0, ""}, + {"SIO_KEEPALIVE_VALS", Const, 3, ""}, + {"SIO_UDP_CONNRESET", Const, 4, ""}, + {"SOCK_CLOEXEC", Const, 0, ""}, + {"SOCK_DCCP", Const, 0, ""}, + {"SOCK_DGRAM", Const, 0, ""}, + {"SOCK_FLAGS_MASK", Const, 1, ""}, + {"SOCK_MAXADDRLEN", Const, 0, ""}, + {"SOCK_NONBLOCK", Const, 0, ""}, + {"SOCK_NOSIGPIPE", Const, 1, ""}, + {"SOCK_PACKET", Const, 0, ""}, + {"SOCK_RAW", Const, 0, ""}, + {"SOCK_RDM", Const, 0, ""}, + {"SOCK_SEQPACKET", Const, 0, ""}, + {"SOCK_STREAM", Const, 0, ""}, + {"SOL_AAL", Const, 0, ""}, + {"SOL_ATM", Const, 0, ""}, + {"SOL_DECNET", Const, 0, ""}, + {"SOL_ICMPV6", Const, 0, ""}, + {"SOL_IP", Const, 0, ""}, + {"SOL_IPV6", Const, 0, ""}, + {"SOL_IRDA", Const, 0, ""}, + {"SOL_PACKET", Const, 0, ""}, + {"SOL_RAW", Const, 0, ""}, + {"SOL_SOCKET", Const, 0, ""}, + {"SOL_TCP", Const, 0, ""}, + {"SOL_X25", Const, 0, ""}, + {"SOMAXCONN", Const, 0, ""}, + {"SO_ACCEPTCONN", Const, 0, ""}, + {"SO_ACCEPTFILTER", Const, 0, ""}, + {"SO_ATTACH_FILTER", Const, 0, ""}, + {"SO_BINDANY", Const, 1, ""}, + {"SO_BINDTODEVICE", Const, 0, ""}, + {"SO_BINTIME", Const, 0, ""}, + {"SO_BROADCAST", Const, 0, ""}, + {"SO_BSDCOMPAT", Const, 0, ""}, + {"SO_DEBUG", Const, 0, ""}, + {"SO_DETACH_FILTER", Const, 0, ""}, + {"SO_DOMAIN", Const, 0, ""}, + {"SO_DONTROUTE", Const, 0, ""}, + {"SO_DONTTRUNC", Const, 0, ""}, + {"SO_ERROR", Const, 0, ""}, + {"SO_KEEPALIVE", Const, 0, ""}, + {"SO_LABEL", Const, 0, ""}, + {"SO_LINGER", Const, 0, ""}, + {"SO_LINGER_SEC", Const, 0, ""}, + {"SO_LISTENINCQLEN", Const, 0, ""}, + {"SO_LISTENQLEN", Const, 0, ""}, + {"SO_LISTENQLIMIT", Const, 0, ""}, + {"SO_MARK", Const, 0, ""}, + {"SO_NETPROC", Const, 1, ""}, + {"SO_NKE", Const, 0, ""}, + {"SO_NOADDRERR", Const, 0, ""}, + {"SO_NOHEADER", Const, 1, ""}, + {"SO_NOSIGPIPE", Const, 0, ""}, + {"SO_NOTIFYCONFLICT", Const, 0, ""}, + {"SO_NO_CHECK", Const, 0, ""}, + {"SO_NO_DDP", Const, 0, ""}, + {"SO_NO_OFFLOAD", Const, 0, ""}, + {"SO_NP_EXTENSIONS", Const, 0, ""}, + {"SO_NREAD", Const, 0, ""}, + {"SO_NUMRCVPKT", Const, 16, ""}, + {"SO_NWRITE", Const, 0, ""}, + {"SO_OOBINLINE", Const, 0, ""}, + {"SO_OVERFLOWED", Const, 1, ""}, + {"SO_PASSCRED", Const, 0, ""}, + {"SO_PASSSEC", Const, 0, ""}, + {"SO_PEERCRED", Const, 0, ""}, + {"SO_PEERLABEL", Const, 0, ""}, + {"SO_PEERNAME", Const, 0, ""}, + {"SO_PEERSEC", Const, 0, ""}, + {"SO_PRIORITY", Const, 0, ""}, + {"SO_PROTOCOL", Const, 0, ""}, + {"SO_PROTOTYPE", Const, 1, ""}, + {"SO_RANDOMPORT", Const, 0, ""}, + {"SO_RCVBUF", Const, 0, ""}, + {"SO_RCVBUFFORCE", Const, 0, ""}, + {"SO_RCVLOWAT", Const, 0, ""}, + {"SO_RCVTIMEO", Const, 0, ""}, + {"SO_RESTRICTIONS", Const, 0, ""}, + {"SO_RESTRICT_DENYIN", Const, 0, ""}, + {"SO_RESTRICT_DENYOUT", Const, 0, ""}, + {"SO_RESTRICT_DENYSET", Const, 0, ""}, + {"SO_REUSEADDR", Const, 0, ""}, + {"SO_REUSEPORT", Const, 0, ""}, + {"SO_REUSESHAREUID", Const, 0, ""}, + {"SO_RTABLE", Const, 1, ""}, + {"SO_RXQ_OVFL", Const, 0, ""}, + {"SO_SECURITY_AUTHENTICATION", Const, 0, ""}, + {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0, ""}, + {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0, ""}, + {"SO_SETFIB", Const, 0, ""}, + {"SO_SNDBUF", Const, 0, ""}, + {"SO_SNDBUFFORCE", Const, 0, ""}, + {"SO_SNDLOWAT", Const, 0, ""}, + {"SO_SNDTIMEO", Const, 0, ""}, + {"SO_SPLICE", Const, 1, ""}, + {"SO_TIMESTAMP", Const, 0, ""}, + {"SO_TIMESTAMPING", Const, 0, ""}, + {"SO_TIMESTAMPNS", Const, 0, ""}, + {"SO_TIMESTAMP_MONOTONIC", Const, 0, ""}, + {"SO_TYPE", Const, 0, ""}, + {"SO_UPCALLCLOSEWAIT", Const, 0, ""}, + {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0, ""}, + {"SO_UPDATE_CONNECT_CONTEXT", Const, 1, ""}, + {"SO_USELOOPBACK", Const, 0, ""}, + {"SO_USER_COOKIE", Const, 1, ""}, + {"SO_VENDOR", Const, 3, ""}, + {"SO_WANTMORE", Const, 0, ""}, + {"SO_WANTOOBFLAG", Const, 0, ""}, + {"SSLExtraCertChainPolicyPara", Type, 0, ""}, + {"SSLExtraCertChainPolicyPara.AuthType", Field, 0, ""}, + {"SSLExtraCertChainPolicyPara.Checks", Field, 0, ""}, + {"SSLExtraCertChainPolicyPara.ServerName", Field, 0, ""}, + {"SSLExtraCertChainPolicyPara.Size", Field, 0, ""}, + {"STANDARD_RIGHTS_ALL", Const, 0, ""}, + {"STANDARD_RIGHTS_EXECUTE", Const, 0, ""}, + {"STANDARD_RIGHTS_READ", Const, 0, ""}, + {"STANDARD_RIGHTS_REQUIRED", Const, 0, ""}, + {"STANDARD_RIGHTS_WRITE", Const, 0, ""}, + {"STARTF_USESHOWWINDOW", Const, 0, ""}, + {"STARTF_USESTDHANDLES", Const, 0, ""}, + {"STD_ERROR_HANDLE", Const, 0, ""}, + {"STD_INPUT_HANDLE", Const, 0, ""}, + {"STD_OUTPUT_HANDLE", Const, 0, ""}, + {"SUBLANG_ENGLISH_US", Const, 0, ""}, + {"SW_FORCEMINIMIZE", Const, 0, ""}, + {"SW_HIDE", Const, 0, ""}, + {"SW_MAXIMIZE", Const, 0, ""}, + {"SW_MINIMIZE", Const, 0, ""}, + {"SW_NORMAL", Const, 0, ""}, + {"SW_RESTORE", Const, 0, ""}, + {"SW_SHOW", Const, 0, ""}, + {"SW_SHOWDEFAULT", Const, 0, ""}, + {"SW_SHOWMAXIMIZED", Const, 0, ""}, + {"SW_SHOWMINIMIZED", Const, 0, ""}, + {"SW_SHOWMINNOACTIVE", Const, 0, ""}, + {"SW_SHOWNA", Const, 0, ""}, + {"SW_SHOWNOACTIVATE", Const, 0, ""}, + {"SW_SHOWNORMAL", Const, 0, ""}, + {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4, ""}, + {"SYNCHRONIZE", Const, 0, ""}, + {"SYSCTL_VERSION", Const, 1, ""}, + {"SYSCTL_VERS_0", Const, 1, ""}, + {"SYSCTL_VERS_1", Const, 1, ""}, + {"SYSCTL_VERS_MASK", Const, 1, ""}, + {"SYS_ABORT2", Const, 0, ""}, + {"SYS_ACCEPT", Const, 0, ""}, + {"SYS_ACCEPT4", Const, 0, ""}, + {"SYS_ACCEPT_NOCANCEL", Const, 0, ""}, + {"SYS_ACCESS", Const, 0, ""}, + {"SYS_ACCESS_EXTENDED", Const, 0, ""}, + {"SYS_ACCT", Const, 0, ""}, + {"SYS_ADD_KEY", Const, 0, ""}, + {"SYS_ADD_PROFIL", Const, 0, ""}, + {"SYS_ADJFREQ", Const, 1, ""}, + {"SYS_ADJTIME", Const, 0, ""}, + {"SYS_ADJTIMEX", Const, 0, ""}, + {"SYS_AFS_SYSCALL", Const, 0, ""}, + {"SYS_AIO_CANCEL", Const, 0, ""}, + {"SYS_AIO_ERROR", Const, 0, ""}, + {"SYS_AIO_FSYNC", Const, 0, ""}, + {"SYS_AIO_MLOCK", Const, 14, ""}, + {"SYS_AIO_READ", Const, 0, ""}, + {"SYS_AIO_RETURN", Const, 0, ""}, + {"SYS_AIO_SUSPEND", Const, 0, ""}, + {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0, ""}, + {"SYS_AIO_WAITCOMPLETE", Const, 14, ""}, + {"SYS_AIO_WRITE", Const, 0, ""}, + {"SYS_ALARM", Const, 0, ""}, + {"SYS_ARCH_PRCTL", Const, 0, ""}, + {"SYS_ARM_FADVISE64_64", Const, 0, ""}, + {"SYS_ARM_SYNC_FILE_RANGE", Const, 0, ""}, + {"SYS_ATGETMSG", Const, 0, ""}, + {"SYS_ATPGETREQ", Const, 0, ""}, + {"SYS_ATPGETRSP", Const, 0, ""}, + {"SYS_ATPSNDREQ", Const, 0, ""}, + {"SYS_ATPSNDRSP", Const, 0, ""}, + {"SYS_ATPUTMSG", Const, 0, ""}, + {"SYS_ATSOCKET", Const, 0, ""}, + {"SYS_AUDIT", Const, 0, ""}, + {"SYS_AUDITCTL", Const, 0, ""}, + {"SYS_AUDITON", Const, 0, ""}, + {"SYS_AUDIT_SESSION_JOIN", Const, 0, ""}, + {"SYS_AUDIT_SESSION_PORT", Const, 0, ""}, + {"SYS_AUDIT_SESSION_SELF", Const, 0, ""}, + {"SYS_BDFLUSH", Const, 0, ""}, + {"SYS_BIND", Const, 0, ""}, + {"SYS_BINDAT", Const, 3, ""}, + {"SYS_BREAK", Const, 0, ""}, + {"SYS_BRK", Const, 0, ""}, + {"SYS_BSDTHREAD_CREATE", Const, 0, ""}, + {"SYS_BSDTHREAD_REGISTER", Const, 0, ""}, + {"SYS_BSDTHREAD_TERMINATE", Const, 0, ""}, + {"SYS_CAPGET", Const, 0, ""}, + {"SYS_CAPSET", Const, 0, ""}, + {"SYS_CAP_ENTER", Const, 0, ""}, + {"SYS_CAP_FCNTLS_GET", Const, 1, ""}, + {"SYS_CAP_FCNTLS_LIMIT", Const, 1, ""}, + {"SYS_CAP_GETMODE", Const, 0, ""}, + {"SYS_CAP_GETRIGHTS", Const, 0, ""}, + {"SYS_CAP_IOCTLS_GET", Const, 1, ""}, + {"SYS_CAP_IOCTLS_LIMIT", Const, 1, ""}, + {"SYS_CAP_NEW", Const, 0, ""}, + {"SYS_CAP_RIGHTS_GET", Const, 1, ""}, + {"SYS_CAP_RIGHTS_LIMIT", Const, 1, ""}, + {"SYS_CHDIR", Const, 0, ""}, + {"SYS_CHFLAGS", Const, 0, ""}, + {"SYS_CHFLAGSAT", Const, 3, ""}, + {"SYS_CHMOD", Const, 0, ""}, + {"SYS_CHMOD_EXTENDED", Const, 0, ""}, + {"SYS_CHOWN", Const, 0, ""}, + {"SYS_CHOWN32", Const, 0, ""}, + {"SYS_CHROOT", Const, 0, ""}, + {"SYS_CHUD", Const, 0, ""}, + {"SYS_CLOCK_ADJTIME", Const, 0, ""}, + {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1, ""}, + {"SYS_CLOCK_GETRES", Const, 0, ""}, + {"SYS_CLOCK_GETTIME", Const, 0, ""}, + {"SYS_CLOCK_NANOSLEEP", Const, 0, ""}, + {"SYS_CLOCK_SETTIME", Const, 0, ""}, + {"SYS_CLONE", Const, 0, ""}, + {"SYS_CLOSE", Const, 0, ""}, + {"SYS_CLOSEFROM", Const, 0, ""}, + {"SYS_CLOSE_NOCANCEL", Const, 0, ""}, + {"SYS_CONNECT", Const, 0, ""}, + {"SYS_CONNECTAT", Const, 3, ""}, + {"SYS_CONNECT_NOCANCEL", Const, 0, ""}, + {"SYS_COPYFILE", Const, 0, ""}, + {"SYS_CPUSET", Const, 0, ""}, + {"SYS_CPUSET_GETAFFINITY", Const, 0, ""}, + {"SYS_CPUSET_GETID", Const, 0, ""}, + {"SYS_CPUSET_SETAFFINITY", Const, 0, ""}, + {"SYS_CPUSET_SETID", Const, 0, ""}, + {"SYS_CREAT", Const, 0, ""}, + {"SYS_CREATE_MODULE", Const, 0, ""}, + {"SYS_CSOPS", Const, 0, ""}, + {"SYS_CSOPS_AUDITTOKEN", Const, 16, ""}, + {"SYS_DELETE", Const, 0, ""}, + {"SYS_DELETE_MODULE", Const, 0, ""}, + {"SYS_DUP", Const, 0, ""}, + {"SYS_DUP2", Const, 0, ""}, + {"SYS_DUP3", Const, 0, ""}, + {"SYS_EACCESS", Const, 0, ""}, + {"SYS_EPOLL_CREATE", Const, 0, ""}, + {"SYS_EPOLL_CREATE1", Const, 0, ""}, + {"SYS_EPOLL_CTL", Const, 0, ""}, + {"SYS_EPOLL_CTL_OLD", Const, 0, ""}, + {"SYS_EPOLL_PWAIT", Const, 0, ""}, + {"SYS_EPOLL_WAIT", Const, 0, ""}, + {"SYS_EPOLL_WAIT_OLD", Const, 0, ""}, + {"SYS_EVENTFD", Const, 0, ""}, + {"SYS_EVENTFD2", Const, 0, ""}, + {"SYS_EXCHANGEDATA", Const, 0, ""}, + {"SYS_EXECVE", Const, 0, ""}, + {"SYS_EXIT", Const, 0, ""}, + {"SYS_EXIT_GROUP", Const, 0, ""}, + {"SYS_EXTATTRCTL", Const, 0, ""}, + {"SYS_EXTATTR_DELETE_FD", Const, 0, ""}, + {"SYS_EXTATTR_DELETE_FILE", Const, 0, ""}, + {"SYS_EXTATTR_DELETE_LINK", Const, 0, ""}, + {"SYS_EXTATTR_GET_FD", Const, 0, ""}, + {"SYS_EXTATTR_GET_FILE", Const, 0, ""}, + {"SYS_EXTATTR_GET_LINK", Const, 0, ""}, + {"SYS_EXTATTR_LIST_FD", Const, 0, ""}, + {"SYS_EXTATTR_LIST_FILE", Const, 0, ""}, + {"SYS_EXTATTR_LIST_LINK", Const, 0, ""}, + {"SYS_EXTATTR_SET_FD", Const, 0, ""}, + {"SYS_EXTATTR_SET_FILE", Const, 0, ""}, + {"SYS_EXTATTR_SET_LINK", Const, 0, ""}, + {"SYS_FACCESSAT", Const, 0, ""}, + {"SYS_FADVISE64", Const, 0, ""}, + {"SYS_FADVISE64_64", Const, 0, ""}, + {"SYS_FALLOCATE", Const, 0, ""}, + {"SYS_FANOTIFY_INIT", Const, 0, ""}, + {"SYS_FANOTIFY_MARK", Const, 0, ""}, + {"SYS_FCHDIR", Const, 0, ""}, + {"SYS_FCHFLAGS", Const, 0, ""}, + {"SYS_FCHMOD", Const, 0, ""}, + {"SYS_FCHMODAT", Const, 0, ""}, + {"SYS_FCHMOD_EXTENDED", Const, 0, ""}, + {"SYS_FCHOWN", Const, 0, ""}, + {"SYS_FCHOWN32", Const, 0, ""}, + {"SYS_FCHOWNAT", Const, 0, ""}, + {"SYS_FCHROOT", Const, 1, ""}, + {"SYS_FCNTL", Const, 0, ""}, + {"SYS_FCNTL64", Const, 0, ""}, + {"SYS_FCNTL_NOCANCEL", Const, 0, ""}, + {"SYS_FDATASYNC", Const, 0, ""}, + {"SYS_FEXECVE", Const, 0, ""}, + {"SYS_FFCLOCK_GETCOUNTER", Const, 0, ""}, + {"SYS_FFCLOCK_GETESTIMATE", Const, 0, ""}, + {"SYS_FFCLOCK_SETESTIMATE", Const, 0, ""}, + {"SYS_FFSCTL", Const, 0, ""}, + {"SYS_FGETATTRLIST", Const, 0, ""}, + {"SYS_FGETXATTR", Const, 0, ""}, + {"SYS_FHOPEN", Const, 0, ""}, + {"SYS_FHSTAT", Const, 0, ""}, + {"SYS_FHSTATFS", Const, 0, ""}, + {"SYS_FILEPORT_MAKEFD", Const, 0, ""}, + {"SYS_FILEPORT_MAKEPORT", Const, 0, ""}, + {"SYS_FKTRACE", Const, 1, ""}, + {"SYS_FLISTXATTR", Const, 0, ""}, + {"SYS_FLOCK", Const, 0, ""}, + {"SYS_FORK", Const, 0, ""}, + {"SYS_FPATHCONF", Const, 0, ""}, + {"SYS_FREEBSD6_FTRUNCATE", Const, 0, ""}, + {"SYS_FREEBSD6_LSEEK", Const, 0, ""}, + {"SYS_FREEBSD6_MMAP", Const, 0, ""}, + {"SYS_FREEBSD6_PREAD", Const, 0, ""}, + {"SYS_FREEBSD6_PWRITE", Const, 0, ""}, + {"SYS_FREEBSD6_TRUNCATE", Const, 0, ""}, + {"SYS_FREMOVEXATTR", Const, 0, ""}, + {"SYS_FSCTL", Const, 0, ""}, + {"SYS_FSETATTRLIST", Const, 0, ""}, + {"SYS_FSETXATTR", Const, 0, ""}, + {"SYS_FSGETPATH", Const, 0, ""}, + {"SYS_FSTAT", Const, 0, ""}, + {"SYS_FSTAT64", Const, 0, ""}, + {"SYS_FSTAT64_EXTENDED", Const, 0, ""}, + {"SYS_FSTATAT", Const, 0, ""}, + {"SYS_FSTATAT64", Const, 0, ""}, + {"SYS_FSTATFS", Const, 0, ""}, + {"SYS_FSTATFS64", Const, 0, ""}, + {"SYS_FSTATV", Const, 0, ""}, + {"SYS_FSTATVFS1", Const, 1, ""}, + {"SYS_FSTAT_EXTENDED", Const, 0, ""}, + {"SYS_FSYNC", Const, 0, ""}, + {"SYS_FSYNC_NOCANCEL", Const, 0, ""}, + {"SYS_FSYNC_RANGE", Const, 1, ""}, + {"SYS_FTIME", Const, 0, ""}, + {"SYS_FTRUNCATE", Const, 0, ""}, + {"SYS_FTRUNCATE64", Const, 0, ""}, + {"SYS_FUTEX", Const, 0, ""}, + {"SYS_FUTIMENS", Const, 1, ""}, + {"SYS_FUTIMES", Const, 0, ""}, + {"SYS_FUTIMESAT", Const, 0, ""}, + {"SYS_GETATTRLIST", Const, 0, ""}, + {"SYS_GETAUDIT", Const, 0, ""}, + {"SYS_GETAUDIT_ADDR", Const, 0, ""}, + {"SYS_GETAUID", Const, 0, ""}, + {"SYS_GETCONTEXT", Const, 0, ""}, + {"SYS_GETCPU", Const, 0, ""}, + {"SYS_GETCWD", Const, 0, ""}, + {"SYS_GETDENTS", Const, 0, ""}, + {"SYS_GETDENTS64", Const, 0, ""}, + {"SYS_GETDIRENTRIES", Const, 0, ""}, + {"SYS_GETDIRENTRIES64", Const, 0, ""}, + {"SYS_GETDIRENTRIESATTR", Const, 0, ""}, + {"SYS_GETDTABLECOUNT", Const, 1, ""}, + {"SYS_GETDTABLESIZE", Const, 0, ""}, + {"SYS_GETEGID", Const, 0, ""}, + {"SYS_GETEGID32", Const, 0, ""}, + {"SYS_GETEUID", Const, 0, ""}, + {"SYS_GETEUID32", Const, 0, ""}, + {"SYS_GETFH", Const, 0, ""}, + {"SYS_GETFSSTAT", Const, 0, ""}, + {"SYS_GETFSSTAT64", Const, 0, ""}, + {"SYS_GETGID", Const, 0, ""}, + {"SYS_GETGID32", Const, 0, ""}, + {"SYS_GETGROUPS", Const, 0, ""}, + {"SYS_GETGROUPS32", Const, 0, ""}, + {"SYS_GETHOSTUUID", Const, 0, ""}, + {"SYS_GETITIMER", Const, 0, ""}, + {"SYS_GETLCID", Const, 0, ""}, + {"SYS_GETLOGIN", Const, 0, ""}, + {"SYS_GETLOGINCLASS", Const, 0, ""}, + {"SYS_GETPEERNAME", Const, 0, ""}, + {"SYS_GETPGID", Const, 0, ""}, + {"SYS_GETPGRP", Const, 0, ""}, + {"SYS_GETPID", Const, 0, ""}, + {"SYS_GETPMSG", Const, 0, ""}, + {"SYS_GETPPID", Const, 0, ""}, + {"SYS_GETPRIORITY", Const, 0, ""}, + {"SYS_GETRESGID", Const, 0, ""}, + {"SYS_GETRESGID32", Const, 0, ""}, + {"SYS_GETRESUID", Const, 0, ""}, + {"SYS_GETRESUID32", Const, 0, ""}, + {"SYS_GETRLIMIT", Const, 0, ""}, + {"SYS_GETRTABLE", Const, 1, ""}, + {"SYS_GETRUSAGE", Const, 0, ""}, + {"SYS_GETSGROUPS", Const, 0, ""}, + {"SYS_GETSID", Const, 0, ""}, + {"SYS_GETSOCKNAME", Const, 0, ""}, + {"SYS_GETSOCKOPT", Const, 0, ""}, + {"SYS_GETTHRID", Const, 1, ""}, + {"SYS_GETTID", Const, 0, ""}, + {"SYS_GETTIMEOFDAY", Const, 0, ""}, + {"SYS_GETUID", Const, 0, ""}, + {"SYS_GETUID32", Const, 0, ""}, + {"SYS_GETVFSSTAT", Const, 1, ""}, + {"SYS_GETWGROUPS", Const, 0, ""}, + {"SYS_GETXATTR", Const, 0, ""}, + {"SYS_GET_KERNEL_SYMS", Const, 0, ""}, + {"SYS_GET_MEMPOLICY", Const, 0, ""}, + {"SYS_GET_ROBUST_LIST", Const, 0, ""}, + {"SYS_GET_THREAD_AREA", Const, 0, ""}, + {"SYS_GSSD_SYSCALL", Const, 14, ""}, + {"SYS_GTTY", Const, 0, ""}, + {"SYS_IDENTITYSVC", Const, 0, ""}, + {"SYS_IDLE", Const, 0, ""}, + {"SYS_INITGROUPS", Const, 0, ""}, + {"SYS_INIT_MODULE", Const, 0, ""}, + {"SYS_INOTIFY_ADD_WATCH", Const, 0, ""}, + {"SYS_INOTIFY_INIT", Const, 0, ""}, + {"SYS_INOTIFY_INIT1", Const, 0, ""}, + {"SYS_INOTIFY_RM_WATCH", Const, 0, ""}, + {"SYS_IOCTL", Const, 0, ""}, + {"SYS_IOPERM", Const, 0, ""}, + {"SYS_IOPL", Const, 0, ""}, + {"SYS_IOPOLICYSYS", Const, 0, ""}, + {"SYS_IOPRIO_GET", Const, 0, ""}, + {"SYS_IOPRIO_SET", Const, 0, ""}, + {"SYS_IO_CANCEL", Const, 0, ""}, + {"SYS_IO_DESTROY", Const, 0, ""}, + {"SYS_IO_GETEVENTS", Const, 0, ""}, + {"SYS_IO_SETUP", Const, 0, ""}, + {"SYS_IO_SUBMIT", Const, 0, ""}, + {"SYS_IPC", Const, 0, ""}, + {"SYS_ISSETUGID", Const, 0, ""}, + {"SYS_JAIL", Const, 0, ""}, + {"SYS_JAIL_ATTACH", Const, 0, ""}, + {"SYS_JAIL_GET", Const, 0, ""}, + {"SYS_JAIL_REMOVE", Const, 0, ""}, + {"SYS_JAIL_SET", Const, 0, ""}, + {"SYS_KAS_INFO", Const, 16, ""}, + {"SYS_KDEBUG_TRACE", Const, 0, ""}, + {"SYS_KENV", Const, 0, ""}, + {"SYS_KEVENT", Const, 0, ""}, + {"SYS_KEVENT64", Const, 0, ""}, + {"SYS_KEXEC_LOAD", Const, 0, ""}, + {"SYS_KEYCTL", Const, 0, ""}, + {"SYS_KILL", Const, 0, ""}, + {"SYS_KLDFIND", Const, 0, ""}, + {"SYS_KLDFIRSTMOD", Const, 0, ""}, + {"SYS_KLDLOAD", Const, 0, ""}, + {"SYS_KLDNEXT", Const, 0, ""}, + {"SYS_KLDSTAT", Const, 0, ""}, + {"SYS_KLDSYM", Const, 0, ""}, + {"SYS_KLDUNLOAD", Const, 0, ""}, + {"SYS_KLDUNLOADF", Const, 0, ""}, + {"SYS_KMQ_NOTIFY", Const, 14, ""}, + {"SYS_KMQ_OPEN", Const, 14, ""}, + {"SYS_KMQ_SETATTR", Const, 14, ""}, + {"SYS_KMQ_TIMEDRECEIVE", Const, 14, ""}, + {"SYS_KMQ_TIMEDSEND", Const, 14, ""}, + {"SYS_KMQ_UNLINK", Const, 14, ""}, + {"SYS_KQUEUE", Const, 0, ""}, + {"SYS_KQUEUE1", Const, 1, ""}, + {"SYS_KSEM_CLOSE", Const, 14, ""}, + {"SYS_KSEM_DESTROY", Const, 14, ""}, + {"SYS_KSEM_GETVALUE", Const, 14, ""}, + {"SYS_KSEM_INIT", Const, 14, ""}, + {"SYS_KSEM_OPEN", Const, 14, ""}, + {"SYS_KSEM_POST", Const, 14, ""}, + {"SYS_KSEM_TIMEDWAIT", Const, 14, ""}, + {"SYS_KSEM_TRYWAIT", Const, 14, ""}, + {"SYS_KSEM_UNLINK", Const, 14, ""}, + {"SYS_KSEM_WAIT", Const, 14, ""}, + {"SYS_KTIMER_CREATE", Const, 0, ""}, + {"SYS_KTIMER_DELETE", Const, 0, ""}, + {"SYS_KTIMER_GETOVERRUN", Const, 0, ""}, + {"SYS_KTIMER_GETTIME", Const, 0, ""}, + {"SYS_KTIMER_SETTIME", Const, 0, ""}, + {"SYS_KTRACE", Const, 0, ""}, + {"SYS_LCHFLAGS", Const, 0, ""}, + {"SYS_LCHMOD", Const, 0, ""}, + {"SYS_LCHOWN", Const, 0, ""}, + {"SYS_LCHOWN32", Const, 0, ""}, + {"SYS_LEDGER", Const, 16, ""}, + {"SYS_LGETFH", Const, 0, ""}, + {"SYS_LGETXATTR", Const, 0, ""}, + {"SYS_LINK", Const, 0, ""}, + {"SYS_LINKAT", Const, 0, ""}, + {"SYS_LIO_LISTIO", Const, 0, ""}, + {"SYS_LISTEN", Const, 0, ""}, + {"SYS_LISTXATTR", Const, 0, ""}, + {"SYS_LLISTXATTR", Const, 0, ""}, + {"SYS_LOCK", Const, 0, ""}, + {"SYS_LOOKUP_DCOOKIE", Const, 0, ""}, + {"SYS_LPATHCONF", Const, 0, ""}, + {"SYS_LREMOVEXATTR", Const, 0, ""}, + {"SYS_LSEEK", Const, 0, ""}, + {"SYS_LSETXATTR", Const, 0, ""}, + {"SYS_LSTAT", Const, 0, ""}, + {"SYS_LSTAT64", Const, 0, ""}, + {"SYS_LSTAT64_EXTENDED", Const, 0, ""}, + {"SYS_LSTATV", Const, 0, ""}, + {"SYS_LSTAT_EXTENDED", Const, 0, ""}, + {"SYS_LUTIMES", Const, 0, ""}, + {"SYS_MAC_SYSCALL", Const, 0, ""}, + {"SYS_MADVISE", Const, 0, ""}, + {"SYS_MADVISE1", Const, 0, ""}, + {"SYS_MAXSYSCALL", Const, 0, ""}, + {"SYS_MBIND", Const, 0, ""}, + {"SYS_MIGRATE_PAGES", Const, 0, ""}, + {"SYS_MINCORE", Const, 0, ""}, + {"SYS_MINHERIT", Const, 0, ""}, + {"SYS_MKCOMPLEX", Const, 0, ""}, + {"SYS_MKDIR", Const, 0, ""}, + {"SYS_MKDIRAT", Const, 0, ""}, + {"SYS_MKDIR_EXTENDED", Const, 0, ""}, + {"SYS_MKFIFO", Const, 0, ""}, + {"SYS_MKFIFOAT", Const, 0, ""}, + {"SYS_MKFIFO_EXTENDED", Const, 0, ""}, + {"SYS_MKNOD", Const, 0, ""}, + {"SYS_MKNODAT", Const, 0, ""}, + {"SYS_MLOCK", Const, 0, ""}, + {"SYS_MLOCKALL", Const, 0, ""}, + {"SYS_MMAP", Const, 0, ""}, + {"SYS_MMAP2", Const, 0, ""}, + {"SYS_MODCTL", Const, 1, ""}, + {"SYS_MODFIND", Const, 0, ""}, + {"SYS_MODFNEXT", Const, 0, ""}, + {"SYS_MODIFY_LDT", Const, 0, ""}, + {"SYS_MODNEXT", Const, 0, ""}, + {"SYS_MODSTAT", Const, 0, ""}, + {"SYS_MODWATCH", Const, 0, ""}, + {"SYS_MOUNT", Const, 0, ""}, + {"SYS_MOVE_PAGES", Const, 0, ""}, + {"SYS_MPROTECT", Const, 0, ""}, + {"SYS_MPX", Const, 0, ""}, + {"SYS_MQUERY", Const, 1, ""}, + {"SYS_MQ_GETSETATTR", Const, 0, ""}, + {"SYS_MQ_NOTIFY", Const, 0, ""}, + {"SYS_MQ_OPEN", Const, 0, ""}, + {"SYS_MQ_TIMEDRECEIVE", Const, 0, ""}, + {"SYS_MQ_TIMEDSEND", Const, 0, ""}, + {"SYS_MQ_UNLINK", Const, 0, ""}, + {"SYS_MREMAP", Const, 0, ""}, + {"SYS_MSGCTL", Const, 0, ""}, + {"SYS_MSGGET", Const, 0, ""}, + {"SYS_MSGRCV", Const, 0, ""}, + {"SYS_MSGRCV_NOCANCEL", Const, 0, ""}, + {"SYS_MSGSND", Const, 0, ""}, + {"SYS_MSGSND_NOCANCEL", Const, 0, ""}, + {"SYS_MSGSYS", Const, 0, ""}, + {"SYS_MSYNC", Const, 0, ""}, + {"SYS_MSYNC_NOCANCEL", Const, 0, ""}, + {"SYS_MUNLOCK", Const, 0, ""}, + {"SYS_MUNLOCKALL", Const, 0, ""}, + {"SYS_MUNMAP", Const, 0, ""}, + {"SYS_NAME_TO_HANDLE_AT", Const, 0, ""}, + {"SYS_NANOSLEEP", Const, 0, ""}, + {"SYS_NEWFSTATAT", Const, 0, ""}, + {"SYS_NFSCLNT", Const, 0, ""}, + {"SYS_NFSSERVCTL", Const, 0, ""}, + {"SYS_NFSSVC", Const, 0, ""}, + {"SYS_NFSTAT", Const, 0, ""}, + {"SYS_NICE", Const, 0, ""}, + {"SYS_NLM_SYSCALL", Const, 14, ""}, + {"SYS_NLSTAT", Const, 0, ""}, + {"SYS_NMOUNT", Const, 0, ""}, + {"SYS_NSTAT", Const, 0, ""}, + {"SYS_NTP_ADJTIME", Const, 0, ""}, + {"SYS_NTP_GETTIME", Const, 0, ""}, + {"SYS_NUMA_GETAFFINITY", Const, 14, ""}, + {"SYS_NUMA_SETAFFINITY", Const, 14, ""}, + {"SYS_OABI_SYSCALL_BASE", Const, 0, ""}, + {"SYS_OBREAK", Const, 0, ""}, + {"SYS_OLDFSTAT", Const, 0, ""}, + {"SYS_OLDLSTAT", Const, 0, ""}, + {"SYS_OLDOLDUNAME", Const, 0, ""}, + {"SYS_OLDSTAT", Const, 0, ""}, + {"SYS_OLDUNAME", Const, 0, ""}, + {"SYS_OPEN", Const, 0, ""}, + {"SYS_OPENAT", Const, 0, ""}, + {"SYS_OPENBSD_POLL", Const, 0, ""}, + {"SYS_OPEN_BY_HANDLE_AT", Const, 0, ""}, + {"SYS_OPEN_DPROTECTED_NP", Const, 16, ""}, + {"SYS_OPEN_EXTENDED", Const, 0, ""}, + {"SYS_OPEN_NOCANCEL", Const, 0, ""}, + {"SYS_OVADVISE", Const, 0, ""}, + {"SYS_PACCEPT", Const, 1, ""}, + {"SYS_PATHCONF", Const, 0, ""}, + {"SYS_PAUSE", Const, 0, ""}, + {"SYS_PCICONFIG_IOBASE", Const, 0, ""}, + {"SYS_PCICONFIG_READ", Const, 0, ""}, + {"SYS_PCICONFIG_WRITE", Const, 0, ""}, + {"SYS_PDFORK", Const, 0, ""}, + {"SYS_PDGETPID", Const, 0, ""}, + {"SYS_PDKILL", Const, 0, ""}, + {"SYS_PERF_EVENT_OPEN", Const, 0, ""}, + {"SYS_PERSONALITY", Const, 0, ""}, + {"SYS_PID_HIBERNATE", Const, 0, ""}, + {"SYS_PID_RESUME", Const, 0, ""}, + {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0, ""}, + {"SYS_PID_SUSPEND", Const, 0, ""}, + {"SYS_PIPE", Const, 0, ""}, + {"SYS_PIPE2", Const, 0, ""}, + {"SYS_PIVOT_ROOT", Const, 0, ""}, + {"SYS_PMC_CONTROL", Const, 1, ""}, + {"SYS_PMC_GET_INFO", Const, 1, ""}, + {"SYS_POLL", Const, 0, ""}, + {"SYS_POLLTS", Const, 1, ""}, + {"SYS_POLL_NOCANCEL", Const, 0, ""}, + {"SYS_POSIX_FADVISE", Const, 0, ""}, + {"SYS_POSIX_FALLOCATE", Const, 0, ""}, + {"SYS_POSIX_OPENPT", Const, 0, ""}, + {"SYS_POSIX_SPAWN", Const, 0, ""}, + {"SYS_PPOLL", Const, 0, ""}, + {"SYS_PRCTL", Const, 0, ""}, + {"SYS_PREAD", Const, 0, ""}, + {"SYS_PREAD64", Const, 0, ""}, + {"SYS_PREADV", Const, 0, ""}, + {"SYS_PREAD_NOCANCEL", Const, 0, ""}, + {"SYS_PRLIMIT64", Const, 0, ""}, + {"SYS_PROCCTL", Const, 3, ""}, + {"SYS_PROCESS_POLICY", Const, 0, ""}, + {"SYS_PROCESS_VM_READV", Const, 0, ""}, + {"SYS_PROCESS_VM_WRITEV", Const, 0, ""}, + {"SYS_PROC_INFO", Const, 0, ""}, + {"SYS_PROF", Const, 0, ""}, + {"SYS_PROFIL", Const, 0, ""}, + {"SYS_PSELECT", Const, 0, ""}, + {"SYS_PSELECT6", Const, 0, ""}, + {"SYS_PSET_ASSIGN", Const, 1, ""}, + {"SYS_PSET_CREATE", Const, 1, ""}, + {"SYS_PSET_DESTROY", Const, 1, ""}, + {"SYS_PSYNCH_CVBROAD", Const, 0, ""}, + {"SYS_PSYNCH_CVCLRPREPOST", Const, 0, ""}, + {"SYS_PSYNCH_CVSIGNAL", Const, 0, ""}, + {"SYS_PSYNCH_CVWAIT", Const, 0, ""}, + {"SYS_PSYNCH_MUTEXDROP", Const, 0, ""}, + {"SYS_PSYNCH_MUTEXWAIT", Const, 0, ""}, + {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0, ""}, + {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0, ""}, + {"SYS_PSYNCH_RW_RDLOCK", Const, 0, ""}, + {"SYS_PSYNCH_RW_UNLOCK", Const, 0, ""}, + {"SYS_PSYNCH_RW_UNLOCK2", Const, 0, ""}, + {"SYS_PSYNCH_RW_UPGRADE", Const, 0, ""}, + {"SYS_PSYNCH_RW_WRLOCK", Const, 0, ""}, + {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0, ""}, + {"SYS_PTRACE", Const, 0, ""}, + {"SYS_PUTPMSG", Const, 0, ""}, + {"SYS_PWRITE", Const, 0, ""}, + {"SYS_PWRITE64", Const, 0, ""}, + {"SYS_PWRITEV", Const, 0, ""}, + {"SYS_PWRITE_NOCANCEL", Const, 0, ""}, + {"SYS_QUERY_MODULE", Const, 0, ""}, + {"SYS_QUOTACTL", Const, 0, ""}, + {"SYS_RASCTL", Const, 1, ""}, + {"SYS_RCTL_ADD_RULE", Const, 0, ""}, + {"SYS_RCTL_GET_LIMITS", Const, 0, ""}, + {"SYS_RCTL_GET_RACCT", Const, 0, ""}, + {"SYS_RCTL_GET_RULES", Const, 0, ""}, + {"SYS_RCTL_REMOVE_RULE", Const, 0, ""}, + {"SYS_READ", Const, 0, ""}, + {"SYS_READAHEAD", Const, 0, ""}, + {"SYS_READDIR", Const, 0, ""}, + {"SYS_READLINK", Const, 0, ""}, + {"SYS_READLINKAT", Const, 0, ""}, + {"SYS_READV", Const, 0, ""}, + {"SYS_READV_NOCANCEL", Const, 0, ""}, + {"SYS_READ_NOCANCEL", Const, 0, ""}, + {"SYS_REBOOT", Const, 0, ""}, + {"SYS_RECV", Const, 0, ""}, + {"SYS_RECVFROM", Const, 0, ""}, + {"SYS_RECVFROM_NOCANCEL", Const, 0, ""}, + {"SYS_RECVMMSG", Const, 0, ""}, + {"SYS_RECVMSG", Const, 0, ""}, + {"SYS_RECVMSG_NOCANCEL", Const, 0, ""}, + {"SYS_REMAP_FILE_PAGES", Const, 0, ""}, + {"SYS_REMOVEXATTR", Const, 0, ""}, + {"SYS_RENAME", Const, 0, ""}, + {"SYS_RENAMEAT", Const, 0, ""}, + {"SYS_REQUEST_KEY", Const, 0, ""}, + {"SYS_RESTART_SYSCALL", Const, 0, ""}, + {"SYS_REVOKE", Const, 0, ""}, + {"SYS_RFORK", Const, 0, ""}, + {"SYS_RMDIR", Const, 0, ""}, + {"SYS_RTPRIO", Const, 0, ""}, + {"SYS_RTPRIO_THREAD", Const, 0, ""}, + {"SYS_RT_SIGACTION", Const, 0, ""}, + {"SYS_RT_SIGPENDING", Const, 0, ""}, + {"SYS_RT_SIGPROCMASK", Const, 0, ""}, + {"SYS_RT_SIGQUEUEINFO", Const, 0, ""}, + {"SYS_RT_SIGRETURN", Const, 0, ""}, + {"SYS_RT_SIGSUSPEND", Const, 0, ""}, + {"SYS_RT_SIGTIMEDWAIT", Const, 0, ""}, + {"SYS_RT_TGSIGQUEUEINFO", Const, 0, ""}, + {"SYS_SBRK", Const, 0, ""}, + {"SYS_SCHED_GETAFFINITY", Const, 0, ""}, + {"SYS_SCHED_GETPARAM", Const, 0, ""}, + {"SYS_SCHED_GETSCHEDULER", Const, 0, ""}, + {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0, ""}, + {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0, ""}, + {"SYS_SCHED_RR_GET_INTERVAL", Const, 0, ""}, + {"SYS_SCHED_SETAFFINITY", Const, 0, ""}, + {"SYS_SCHED_SETPARAM", Const, 0, ""}, + {"SYS_SCHED_SETSCHEDULER", Const, 0, ""}, + {"SYS_SCHED_YIELD", Const, 0, ""}, + {"SYS_SCTP_GENERIC_RECVMSG", Const, 0, ""}, + {"SYS_SCTP_GENERIC_SENDMSG", Const, 0, ""}, + {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0, ""}, + {"SYS_SCTP_PEELOFF", Const, 0, ""}, + {"SYS_SEARCHFS", Const, 0, ""}, + {"SYS_SECURITY", Const, 0, ""}, + {"SYS_SELECT", Const, 0, ""}, + {"SYS_SELECT_NOCANCEL", Const, 0, ""}, + {"SYS_SEMCONFIG", Const, 1, ""}, + {"SYS_SEMCTL", Const, 0, ""}, + {"SYS_SEMGET", Const, 0, ""}, + {"SYS_SEMOP", Const, 0, ""}, + {"SYS_SEMSYS", Const, 0, ""}, + {"SYS_SEMTIMEDOP", Const, 0, ""}, + {"SYS_SEM_CLOSE", Const, 0, ""}, + {"SYS_SEM_DESTROY", Const, 0, ""}, + {"SYS_SEM_GETVALUE", Const, 0, ""}, + {"SYS_SEM_INIT", Const, 0, ""}, + {"SYS_SEM_OPEN", Const, 0, ""}, + {"SYS_SEM_POST", Const, 0, ""}, + {"SYS_SEM_TRYWAIT", Const, 0, ""}, + {"SYS_SEM_UNLINK", Const, 0, ""}, + {"SYS_SEM_WAIT", Const, 0, ""}, + {"SYS_SEM_WAIT_NOCANCEL", Const, 0, ""}, + {"SYS_SEND", Const, 0, ""}, + {"SYS_SENDFILE", Const, 0, ""}, + {"SYS_SENDFILE64", Const, 0, ""}, + {"SYS_SENDMMSG", Const, 0, ""}, + {"SYS_SENDMSG", Const, 0, ""}, + {"SYS_SENDMSG_NOCANCEL", Const, 0, ""}, + {"SYS_SENDTO", Const, 0, ""}, + {"SYS_SENDTO_NOCANCEL", Const, 0, ""}, + {"SYS_SETATTRLIST", Const, 0, ""}, + {"SYS_SETAUDIT", Const, 0, ""}, + {"SYS_SETAUDIT_ADDR", Const, 0, ""}, + {"SYS_SETAUID", Const, 0, ""}, + {"SYS_SETCONTEXT", Const, 0, ""}, + {"SYS_SETDOMAINNAME", Const, 0, ""}, + {"SYS_SETEGID", Const, 0, ""}, + {"SYS_SETEUID", Const, 0, ""}, + {"SYS_SETFIB", Const, 0, ""}, + {"SYS_SETFSGID", Const, 0, ""}, + {"SYS_SETFSGID32", Const, 0, ""}, + {"SYS_SETFSUID", Const, 0, ""}, + {"SYS_SETFSUID32", Const, 0, ""}, + {"SYS_SETGID", Const, 0, ""}, + {"SYS_SETGID32", Const, 0, ""}, + {"SYS_SETGROUPS", Const, 0, ""}, + {"SYS_SETGROUPS32", Const, 0, ""}, + {"SYS_SETHOSTNAME", Const, 0, ""}, + {"SYS_SETITIMER", Const, 0, ""}, + {"SYS_SETLCID", Const, 0, ""}, + {"SYS_SETLOGIN", Const, 0, ""}, + {"SYS_SETLOGINCLASS", Const, 0, ""}, + {"SYS_SETNS", Const, 0, ""}, + {"SYS_SETPGID", Const, 0, ""}, + {"SYS_SETPRIORITY", Const, 0, ""}, + {"SYS_SETPRIVEXEC", Const, 0, ""}, + {"SYS_SETREGID", Const, 0, ""}, + {"SYS_SETREGID32", Const, 0, ""}, + {"SYS_SETRESGID", Const, 0, ""}, + {"SYS_SETRESGID32", Const, 0, ""}, + {"SYS_SETRESUID", Const, 0, ""}, + {"SYS_SETRESUID32", Const, 0, ""}, + {"SYS_SETREUID", Const, 0, ""}, + {"SYS_SETREUID32", Const, 0, ""}, + {"SYS_SETRLIMIT", Const, 0, ""}, + {"SYS_SETRTABLE", Const, 1, ""}, + {"SYS_SETSGROUPS", Const, 0, ""}, + {"SYS_SETSID", Const, 0, ""}, + {"SYS_SETSOCKOPT", Const, 0, ""}, + {"SYS_SETTID", Const, 0, ""}, + {"SYS_SETTID_WITH_PID", Const, 0, ""}, + {"SYS_SETTIMEOFDAY", Const, 0, ""}, + {"SYS_SETUID", Const, 0, ""}, + {"SYS_SETUID32", Const, 0, ""}, + {"SYS_SETWGROUPS", Const, 0, ""}, + {"SYS_SETXATTR", Const, 0, ""}, + {"SYS_SET_MEMPOLICY", Const, 0, ""}, + {"SYS_SET_ROBUST_LIST", Const, 0, ""}, + {"SYS_SET_THREAD_AREA", Const, 0, ""}, + {"SYS_SET_TID_ADDRESS", Const, 0, ""}, + {"SYS_SGETMASK", Const, 0, ""}, + {"SYS_SHARED_REGION_CHECK_NP", Const, 0, ""}, + {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0, ""}, + {"SYS_SHMAT", Const, 0, ""}, + {"SYS_SHMCTL", Const, 0, ""}, + {"SYS_SHMDT", Const, 0, ""}, + {"SYS_SHMGET", Const, 0, ""}, + {"SYS_SHMSYS", Const, 0, ""}, + {"SYS_SHM_OPEN", Const, 0, ""}, + {"SYS_SHM_UNLINK", Const, 0, ""}, + {"SYS_SHUTDOWN", Const, 0, ""}, + {"SYS_SIGACTION", Const, 0, ""}, + {"SYS_SIGALTSTACK", Const, 0, ""}, + {"SYS_SIGNAL", Const, 0, ""}, + {"SYS_SIGNALFD", Const, 0, ""}, + {"SYS_SIGNALFD4", Const, 0, ""}, + {"SYS_SIGPENDING", Const, 0, ""}, + {"SYS_SIGPROCMASK", Const, 0, ""}, + {"SYS_SIGQUEUE", Const, 0, ""}, + {"SYS_SIGQUEUEINFO", Const, 1, ""}, + {"SYS_SIGRETURN", Const, 0, ""}, + {"SYS_SIGSUSPEND", Const, 0, ""}, + {"SYS_SIGSUSPEND_NOCANCEL", Const, 0, ""}, + {"SYS_SIGTIMEDWAIT", Const, 0, ""}, + {"SYS_SIGWAIT", Const, 0, ""}, + {"SYS_SIGWAITINFO", Const, 0, ""}, + {"SYS_SOCKET", Const, 0, ""}, + {"SYS_SOCKETCALL", Const, 0, ""}, + {"SYS_SOCKETPAIR", Const, 0, ""}, + {"SYS_SPLICE", Const, 0, ""}, + {"SYS_SSETMASK", Const, 0, ""}, + {"SYS_SSTK", Const, 0, ""}, + {"SYS_STACK_SNAPSHOT", Const, 0, ""}, + {"SYS_STAT", Const, 0, ""}, + {"SYS_STAT64", Const, 0, ""}, + {"SYS_STAT64_EXTENDED", Const, 0, ""}, + {"SYS_STATFS", Const, 0, ""}, + {"SYS_STATFS64", Const, 0, ""}, + {"SYS_STATV", Const, 0, ""}, + {"SYS_STATVFS1", Const, 1, ""}, + {"SYS_STAT_EXTENDED", Const, 0, ""}, + {"SYS_STIME", Const, 0, ""}, + {"SYS_STTY", Const, 0, ""}, + {"SYS_SWAPCONTEXT", Const, 0, ""}, + {"SYS_SWAPCTL", Const, 1, ""}, + {"SYS_SWAPOFF", Const, 0, ""}, + {"SYS_SWAPON", Const, 0, ""}, + {"SYS_SYMLINK", Const, 0, ""}, + {"SYS_SYMLINKAT", Const, 0, ""}, + {"SYS_SYNC", Const, 0, ""}, + {"SYS_SYNCFS", Const, 0, ""}, + {"SYS_SYNC_FILE_RANGE", Const, 0, ""}, + {"SYS_SYSARCH", Const, 0, ""}, + {"SYS_SYSCALL", Const, 0, ""}, + {"SYS_SYSCALL_BASE", Const, 0, ""}, + {"SYS_SYSFS", Const, 0, ""}, + {"SYS_SYSINFO", Const, 0, ""}, + {"SYS_SYSLOG", Const, 0, ""}, + {"SYS_TEE", Const, 0, ""}, + {"SYS_TGKILL", Const, 0, ""}, + {"SYS_THREAD_SELFID", Const, 0, ""}, + {"SYS_THR_CREATE", Const, 0, ""}, + {"SYS_THR_EXIT", Const, 0, ""}, + {"SYS_THR_KILL", Const, 0, ""}, + {"SYS_THR_KILL2", Const, 0, ""}, + {"SYS_THR_NEW", Const, 0, ""}, + {"SYS_THR_SELF", Const, 0, ""}, + {"SYS_THR_SET_NAME", Const, 0, ""}, + {"SYS_THR_SUSPEND", Const, 0, ""}, + {"SYS_THR_WAKE", Const, 0, ""}, + {"SYS_TIME", Const, 0, ""}, + {"SYS_TIMERFD_CREATE", Const, 0, ""}, + {"SYS_TIMERFD_GETTIME", Const, 0, ""}, + {"SYS_TIMERFD_SETTIME", Const, 0, ""}, + {"SYS_TIMER_CREATE", Const, 0, ""}, + {"SYS_TIMER_DELETE", Const, 0, ""}, + {"SYS_TIMER_GETOVERRUN", Const, 0, ""}, + {"SYS_TIMER_GETTIME", Const, 0, ""}, + {"SYS_TIMER_SETTIME", Const, 0, ""}, + {"SYS_TIMES", Const, 0, ""}, + {"SYS_TKILL", Const, 0, ""}, + {"SYS_TRUNCATE", Const, 0, ""}, + {"SYS_TRUNCATE64", Const, 0, ""}, + {"SYS_TUXCALL", Const, 0, ""}, + {"SYS_UGETRLIMIT", Const, 0, ""}, + {"SYS_ULIMIT", Const, 0, ""}, + {"SYS_UMASK", Const, 0, ""}, + {"SYS_UMASK_EXTENDED", Const, 0, ""}, + {"SYS_UMOUNT", Const, 0, ""}, + {"SYS_UMOUNT2", Const, 0, ""}, + {"SYS_UNAME", Const, 0, ""}, + {"SYS_UNDELETE", Const, 0, ""}, + {"SYS_UNLINK", Const, 0, ""}, + {"SYS_UNLINKAT", Const, 0, ""}, + {"SYS_UNMOUNT", Const, 0, ""}, + {"SYS_UNSHARE", Const, 0, ""}, + {"SYS_USELIB", Const, 0, ""}, + {"SYS_USTAT", Const, 0, ""}, + {"SYS_UTIME", Const, 0, ""}, + {"SYS_UTIMENSAT", Const, 0, ""}, + {"SYS_UTIMES", Const, 0, ""}, + {"SYS_UTRACE", Const, 0, ""}, + {"SYS_UUIDGEN", Const, 0, ""}, + {"SYS_VADVISE", Const, 1, ""}, + {"SYS_VFORK", Const, 0, ""}, + {"SYS_VHANGUP", Const, 0, ""}, + {"SYS_VM86", Const, 0, ""}, + {"SYS_VM86OLD", Const, 0, ""}, + {"SYS_VMSPLICE", Const, 0, ""}, + {"SYS_VM_PRESSURE_MONITOR", Const, 0, ""}, + {"SYS_VSERVER", Const, 0, ""}, + {"SYS_WAIT4", Const, 0, ""}, + {"SYS_WAIT4_NOCANCEL", Const, 0, ""}, + {"SYS_WAIT6", Const, 1, ""}, + {"SYS_WAITEVENT", Const, 0, ""}, + {"SYS_WAITID", Const, 0, ""}, + {"SYS_WAITID_NOCANCEL", Const, 0, ""}, + {"SYS_WAITPID", Const, 0, ""}, + {"SYS_WATCHEVENT", Const, 0, ""}, + {"SYS_WORKQ_KERNRETURN", Const, 0, ""}, + {"SYS_WORKQ_OPEN", Const, 0, ""}, + {"SYS_WRITE", Const, 0, ""}, + {"SYS_WRITEV", Const, 0, ""}, + {"SYS_WRITEV_NOCANCEL", Const, 0, ""}, + {"SYS_WRITE_NOCANCEL", Const, 0, ""}, + {"SYS_YIELD", Const, 0, ""}, + {"SYS__LLSEEK", Const, 0, ""}, + {"SYS__LWP_CONTINUE", Const, 1, ""}, + {"SYS__LWP_CREATE", Const, 1, ""}, + {"SYS__LWP_CTL", Const, 1, ""}, + {"SYS__LWP_DETACH", Const, 1, ""}, + {"SYS__LWP_EXIT", Const, 1, ""}, + {"SYS__LWP_GETNAME", Const, 1, ""}, + {"SYS__LWP_GETPRIVATE", Const, 1, ""}, + {"SYS__LWP_KILL", Const, 1, ""}, + {"SYS__LWP_PARK", Const, 1, ""}, + {"SYS__LWP_SELF", Const, 1, ""}, + {"SYS__LWP_SETNAME", Const, 1, ""}, + {"SYS__LWP_SETPRIVATE", Const, 1, ""}, + {"SYS__LWP_SUSPEND", Const, 1, ""}, + {"SYS__LWP_UNPARK", Const, 1, ""}, + {"SYS__LWP_UNPARK_ALL", Const, 1, ""}, + {"SYS__LWP_WAIT", Const, 1, ""}, + {"SYS__LWP_WAKEUP", Const, 1, ""}, + {"SYS__NEWSELECT", Const, 0, ""}, + {"SYS__PSET_BIND", Const, 1, ""}, + {"SYS__SCHED_GETAFFINITY", Const, 1, ""}, + {"SYS__SCHED_GETPARAM", Const, 1, ""}, + {"SYS__SCHED_SETAFFINITY", Const, 1, ""}, + {"SYS__SCHED_SETPARAM", Const, 1, ""}, + {"SYS__SYSCTL", Const, 0, ""}, + {"SYS__UMTX_LOCK", Const, 0, ""}, + {"SYS__UMTX_OP", Const, 0, ""}, + {"SYS__UMTX_UNLOCK", Const, 0, ""}, + {"SYS___ACL_ACLCHECK_FD", Const, 0, ""}, + {"SYS___ACL_ACLCHECK_FILE", Const, 0, ""}, + {"SYS___ACL_ACLCHECK_LINK", Const, 0, ""}, + {"SYS___ACL_DELETE_FD", Const, 0, ""}, + {"SYS___ACL_DELETE_FILE", Const, 0, ""}, + {"SYS___ACL_DELETE_LINK", Const, 0, ""}, + {"SYS___ACL_GET_FD", Const, 0, ""}, + {"SYS___ACL_GET_FILE", Const, 0, ""}, + {"SYS___ACL_GET_LINK", Const, 0, ""}, + {"SYS___ACL_SET_FD", Const, 0, ""}, + {"SYS___ACL_SET_FILE", Const, 0, ""}, + {"SYS___ACL_SET_LINK", Const, 0, ""}, + {"SYS___CAP_RIGHTS_GET", Const, 14, ""}, + {"SYS___CLONE", Const, 1, ""}, + {"SYS___DISABLE_THREADSIGNAL", Const, 0, ""}, + {"SYS___GETCWD", Const, 0, ""}, + {"SYS___GETLOGIN", Const, 1, ""}, + {"SYS___GET_TCB", Const, 1, ""}, + {"SYS___MAC_EXECVE", Const, 0, ""}, + {"SYS___MAC_GETFSSTAT", Const, 0, ""}, + {"SYS___MAC_GET_FD", Const, 0, ""}, + {"SYS___MAC_GET_FILE", Const, 0, ""}, + {"SYS___MAC_GET_LCID", Const, 0, ""}, + {"SYS___MAC_GET_LCTX", Const, 0, ""}, + {"SYS___MAC_GET_LINK", Const, 0, ""}, + {"SYS___MAC_GET_MOUNT", Const, 0, ""}, + {"SYS___MAC_GET_PID", Const, 0, ""}, + {"SYS___MAC_GET_PROC", Const, 0, ""}, + {"SYS___MAC_MOUNT", Const, 0, ""}, + {"SYS___MAC_SET_FD", Const, 0, ""}, + {"SYS___MAC_SET_FILE", Const, 0, ""}, + {"SYS___MAC_SET_LCTX", Const, 0, ""}, + {"SYS___MAC_SET_LINK", Const, 0, ""}, + {"SYS___MAC_SET_PROC", Const, 0, ""}, + {"SYS___MAC_SYSCALL", Const, 0, ""}, + {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0, ""}, + {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""}, + {"SYS___POSIX_CHOWN", Const, 1, ""}, + {"SYS___POSIX_FCHOWN", Const, 1, ""}, + {"SYS___POSIX_LCHOWN", Const, 1, ""}, + {"SYS___POSIX_RENAME", Const, 1, ""}, + {"SYS___PTHREAD_CANCELED", Const, 0, ""}, + {"SYS___PTHREAD_CHDIR", Const, 0, ""}, + {"SYS___PTHREAD_FCHDIR", Const, 0, ""}, + {"SYS___PTHREAD_KILL", Const, 0, ""}, + {"SYS___PTHREAD_MARKCANCEL", Const, 0, ""}, + {"SYS___PTHREAD_SIGMASK", Const, 0, ""}, + {"SYS___QUOTACTL", Const, 1, ""}, + {"SYS___SEMCTL", Const, 1, ""}, + {"SYS___SEMWAIT_SIGNAL", Const, 0, ""}, + {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""}, + {"SYS___SETLOGIN", Const, 1, ""}, + {"SYS___SETUGID", Const, 0, ""}, + {"SYS___SET_TCB", Const, 1, ""}, + {"SYS___SIGACTION_SIGTRAMP", Const, 1, ""}, + {"SYS___SIGTIMEDWAIT", Const, 1, ""}, + {"SYS___SIGWAIT", Const, 0, ""}, + {"SYS___SIGWAIT_NOCANCEL", Const, 0, ""}, + {"SYS___SYSCTL", Const, 0, ""}, + {"SYS___TFORK", Const, 1, ""}, + {"SYS___THREXIT", Const, 1, ""}, + {"SYS___THRSIGDIVERT", Const, 1, ""}, + {"SYS___THRSLEEP", Const, 1, ""}, + {"SYS___THRWAKEUP", Const, 1, ""}, + {"S_ARCH1", Const, 1, ""}, + {"S_ARCH2", Const, 1, ""}, + {"S_BLKSIZE", Const, 0, ""}, + {"S_IEXEC", Const, 0, ""}, + {"S_IFBLK", Const, 0, ""}, + {"S_IFCHR", Const, 0, ""}, + {"S_IFDIR", Const, 0, ""}, + {"S_IFIFO", Const, 0, ""}, + {"S_IFLNK", Const, 0, ""}, + {"S_IFMT", Const, 0, ""}, + {"S_IFREG", Const, 0, ""}, + {"S_IFSOCK", Const, 0, ""}, + {"S_IFWHT", Const, 0, ""}, + {"S_IREAD", Const, 0, ""}, + {"S_IRGRP", Const, 0, ""}, + {"S_IROTH", Const, 0, ""}, + {"S_IRUSR", Const, 0, ""}, + {"S_IRWXG", Const, 0, ""}, + {"S_IRWXO", Const, 0, ""}, + {"S_IRWXU", Const, 0, ""}, + {"S_ISGID", Const, 0, ""}, + {"S_ISTXT", Const, 0, ""}, + {"S_ISUID", Const, 0, ""}, + {"S_ISVTX", Const, 0, ""}, + {"S_IWGRP", Const, 0, ""}, + {"S_IWOTH", Const, 0, ""}, + {"S_IWRITE", Const, 0, ""}, + {"S_IWUSR", Const, 0, ""}, + {"S_IXGRP", Const, 0, ""}, + {"S_IXOTH", Const, 0, ""}, + {"S_IXUSR", Const, 0, ""}, + {"S_LOGIN_SET", Const, 1, ""}, + {"SecurityAttributes", Type, 0, ""}, + {"SecurityAttributes.InheritHandle", Field, 0, ""}, + {"SecurityAttributes.Length", Field, 0, ""}, + {"SecurityAttributes.SecurityDescriptor", Field, 0, ""}, + {"Seek", Func, 0, "func(fd int, offset int64, whence int) (off int64, err error)"}, + {"Select", Func, 0, "func(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)"}, + {"Sendfile", Func, 0, "func(outfd int, infd int, offset *int64, count int) (written int, err error)"}, + {"Sendmsg", Func, 0, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (err error)"}, + {"SendmsgN", Func, 3, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (n int, err error)"}, + {"Sendto", Func, 0, "func(fd int, p []byte, flags int, to Sockaddr) (err error)"}, + {"Servent", Type, 0, ""}, + {"Servent.Aliases", Field, 0, ""}, + {"Servent.Name", Field, 0, ""}, + {"Servent.Port", Field, 0, ""}, + {"Servent.Proto", Field, 0, ""}, + {"SetBpf", Func, 0, ""}, + {"SetBpfBuflen", Func, 0, ""}, + {"SetBpfDatalink", Func, 0, ""}, + {"SetBpfHeadercmpl", Func, 0, ""}, + {"SetBpfImmediate", Func, 0, ""}, + {"SetBpfInterface", Func, 0, ""}, + {"SetBpfPromisc", Func, 0, ""}, + {"SetBpfTimeout", Func, 0, ""}, + {"SetCurrentDirectory", Func, 0, ""}, + {"SetEndOfFile", Func, 0, ""}, + {"SetEnvironmentVariable", Func, 0, ""}, + {"SetFileAttributes", Func, 0, ""}, + {"SetFileCompletionNotificationModes", Func, 2, ""}, + {"SetFilePointer", Func, 0, ""}, + {"SetFileTime", Func, 0, ""}, + {"SetHandleInformation", Func, 0, ""}, + {"SetKevent", Func, 0, ""}, + {"SetLsfPromisc", Func, 0, "func(name string, m bool) error"}, + {"SetNonblock", Func, 0, "func(fd int, nonblocking bool) (err error)"}, + {"Setdomainname", Func, 0, "func(p []byte) (err error)"}, + {"Setegid", Func, 0, "func(egid int) (err error)"}, + {"Setenv", Func, 0, "func(key string, value string) error"}, + {"Seteuid", Func, 0, "func(euid int) (err error)"}, + {"Setfsgid", Func, 0, "func(gid int) (err error)"}, + {"Setfsuid", Func, 0, "func(uid int) (err error)"}, + {"Setgid", Func, 0, "func(gid int) (err error)"}, + {"Setgroups", Func, 0, "func(gids []int) (err error)"}, + {"Sethostname", Func, 0, "func(p []byte) (err error)"}, + {"Setlogin", Func, 0, ""}, + {"Setpgid", Func, 0, "func(pid int, pgid int) (err error)"}, + {"Setpriority", Func, 0, "func(which int, who int, prio int) (err error)"}, + {"Setprivexec", Func, 0, ""}, + {"Setregid", Func, 0, "func(rgid int, egid int) (err error)"}, + {"Setresgid", Func, 0, "func(rgid int, egid int, sgid int) (err error)"}, + {"Setresuid", Func, 0, "func(ruid int, euid int, suid int) (err error)"}, + {"Setreuid", Func, 0, "func(ruid int, euid int) (err error)"}, + {"Setrlimit", Func, 0, "func(resource int, rlim *Rlimit) error"}, + {"Setsid", Func, 0, "func() (pid int, err error)"}, + {"Setsockopt", Func, 0, ""}, + {"SetsockoptByte", Func, 0, "func(fd int, level int, opt int, value byte) (err error)"}, + {"SetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int, filter *ICMPv6Filter) error"}, + {"SetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int, mreq *IPMreq) (err error)"}, + {"SetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int, mreq *IPMreqn) (err error)"}, + {"SetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int, mreq *IPv6Mreq) (err error)"}, + {"SetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int, value [4]byte) (err error)"}, + {"SetsockoptInt", Func, 0, "func(fd int, level int, opt int, value int) (err error)"}, + {"SetsockoptLinger", Func, 0, "func(fd int, level int, opt int, l *Linger) (err error)"}, + {"SetsockoptString", Func, 0, "func(fd int, level int, opt int, s string) (err error)"}, + {"SetsockoptTimeval", Func, 0, "func(fd int, level int, opt int, tv *Timeval) (err error)"}, + {"Settimeofday", Func, 0, "func(tv *Timeval) (err error)"}, + {"Setuid", Func, 0, "func(uid int) (err error)"}, + {"Setxattr", Func, 1, "func(path string, attr string, data []byte, flags int) (err error)"}, + {"Shutdown", Func, 0, "func(fd int, how int) (err error)"}, + {"SidTypeAlias", Const, 0, ""}, + {"SidTypeComputer", Const, 0, ""}, + {"SidTypeDeletedAccount", Const, 0, ""}, + {"SidTypeDomain", Const, 0, ""}, + {"SidTypeGroup", Const, 0, ""}, + {"SidTypeInvalid", Const, 0, ""}, + {"SidTypeLabel", Const, 0, ""}, + {"SidTypeUnknown", Const, 0, ""}, + {"SidTypeUser", Const, 0, ""}, + {"SidTypeWellKnownGroup", Const, 0, ""}, + {"Signal", Type, 0, ""}, + {"SizeofBpfHdr", Const, 0, ""}, + {"SizeofBpfInsn", Const, 0, ""}, + {"SizeofBpfProgram", Const, 0, ""}, + {"SizeofBpfStat", Const, 0, ""}, + {"SizeofBpfVersion", Const, 0, ""}, + {"SizeofBpfZbuf", Const, 0, ""}, + {"SizeofBpfZbufHeader", Const, 0, ""}, + {"SizeofCmsghdr", Const, 0, ""}, + {"SizeofICMPv6Filter", Const, 2, ""}, + {"SizeofIPMreq", Const, 0, ""}, + {"SizeofIPMreqn", Const, 0, ""}, + {"SizeofIPv6MTUInfo", Const, 2, ""}, + {"SizeofIPv6Mreq", Const, 0, ""}, + {"SizeofIfAddrmsg", Const, 0, ""}, + {"SizeofIfAnnounceMsghdr", Const, 1, ""}, + {"SizeofIfData", Const, 0, ""}, + {"SizeofIfInfomsg", Const, 0, ""}, + {"SizeofIfMsghdr", Const, 0, ""}, + {"SizeofIfaMsghdr", Const, 0, ""}, + {"SizeofIfmaMsghdr", Const, 0, ""}, + {"SizeofIfmaMsghdr2", Const, 0, ""}, + {"SizeofInet4Pktinfo", Const, 0, ""}, + {"SizeofInet6Pktinfo", Const, 0, ""}, + {"SizeofInotifyEvent", Const, 0, ""}, + {"SizeofLinger", Const, 0, ""}, + {"SizeofMsghdr", Const, 0, ""}, + {"SizeofNlAttr", Const, 0, ""}, + {"SizeofNlMsgerr", Const, 0, ""}, + {"SizeofNlMsghdr", Const, 0, ""}, + {"SizeofRtAttr", Const, 0, ""}, + {"SizeofRtGenmsg", Const, 0, ""}, + {"SizeofRtMetrics", Const, 0, ""}, + {"SizeofRtMsg", Const, 0, ""}, + {"SizeofRtMsghdr", Const, 0, ""}, + {"SizeofRtNexthop", Const, 0, ""}, + {"SizeofSockFilter", Const, 0, ""}, + {"SizeofSockFprog", Const, 0, ""}, + {"SizeofSockaddrAny", Const, 0, ""}, + {"SizeofSockaddrDatalink", Const, 0, ""}, + {"SizeofSockaddrInet4", Const, 0, ""}, + {"SizeofSockaddrInet6", Const, 0, ""}, + {"SizeofSockaddrLinklayer", Const, 0, ""}, + {"SizeofSockaddrNetlink", Const, 0, ""}, + {"SizeofSockaddrUnix", Const, 0, ""}, + {"SizeofTCPInfo", Const, 1, ""}, + {"SizeofUcred", Const, 0, ""}, + {"SlicePtrFromStrings", Func, 1, "func(ss []string) ([]*byte, error)"}, + {"SockFilter", Type, 0, ""}, + {"SockFilter.Code", Field, 0, ""}, + {"SockFilter.Jf", Field, 0, ""}, + {"SockFilter.Jt", Field, 0, ""}, + {"SockFilter.K", Field, 0, ""}, + {"SockFprog", Type, 0, ""}, + {"SockFprog.Filter", Field, 0, ""}, + {"SockFprog.Len", Field, 0, ""}, + {"SockFprog.Pad_cgo_0", Field, 0, ""}, + {"Sockaddr", Type, 0, ""}, + {"SockaddrDatalink", Type, 0, ""}, + {"SockaddrDatalink.Alen", Field, 0, ""}, + {"SockaddrDatalink.Data", Field, 0, ""}, + {"SockaddrDatalink.Family", Field, 0, ""}, + {"SockaddrDatalink.Index", Field, 0, ""}, + {"SockaddrDatalink.Len", Field, 0, ""}, + {"SockaddrDatalink.Nlen", Field, 0, ""}, + {"SockaddrDatalink.Slen", Field, 0, ""}, + {"SockaddrDatalink.Type", Field, 0, ""}, + {"SockaddrGen", Type, 0, ""}, + {"SockaddrInet4", Type, 0, ""}, + {"SockaddrInet4.Addr", Field, 0, ""}, + {"SockaddrInet4.Port", Field, 0, ""}, + {"SockaddrInet6", Type, 0, ""}, + {"SockaddrInet6.Addr", Field, 0, ""}, + {"SockaddrInet6.Port", Field, 0, ""}, + {"SockaddrInet6.ZoneId", Field, 0, ""}, + {"SockaddrLinklayer", Type, 0, ""}, + {"SockaddrLinklayer.Addr", Field, 0, ""}, + {"SockaddrLinklayer.Halen", Field, 0, ""}, + {"SockaddrLinklayer.Hatype", Field, 0, ""}, + {"SockaddrLinklayer.Ifindex", Field, 0, ""}, + {"SockaddrLinklayer.Pkttype", Field, 0, ""}, + {"SockaddrLinklayer.Protocol", Field, 0, ""}, + {"SockaddrNetlink", Type, 0, ""}, + {"SockaddrNetlink.Family", Field, 0, ""}, + {"SockaddrNetlink.Groups", Field, 0, ""}, + {"SockaddrNetlink.Pad", Field, 0, ""}, + {"SockaddrNetlink.Pid", Field, 0, ""}, + {"SockaddrUnix", Type, 0, ""}, + {"SockaddrUnix.Name", Field, 0, ""}, + {"Socket", Func, 0, "func(domain int, typ int, proto int) (fd int, err error)"}, + {"SocketControlMessage", Type, 0, ""}, + {"SocketControlMessage.Data", Field, 0, ""}, + {"SocketControlMessage.Header", Field, 0, ""}, + {"SocketDisableIPv6", Var, 0, ""}, + {"Socketpair", Func, 0, "func(domain int, typ int, proto int) (fd [2]int, err error)"}, + {"Splice", Func, 0, "func(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)"}, + {"StartProcess", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, handle uintptr, err error)"}, + {"StartupInfo", Type, 0, ""}, + {"StartupInfo.Cb", Field, 0, ""}, + {"StartupInfo.Desktop", Field, 0, ""}, + {"StartupInfo.FillAttribute", Field, 0, ""}, + {"StartupInfo.Flags", Field, 0, ""}, + {"StartupInfo.ShowWindow", Field, 0, ""}, + {"StartupInfo.StdErr", Field, 0, ""}, + {"StartupInfo.StdInput", Field, 0, ""}, + {"StartupInfo.StdOutput", Field, 0, ""}, + {"StartupInfo.Title", Field, 0, ""}, + {"StartupInfo.X", Field, 0, ""}, + {"StartupInfo.XCountChars", Field, 0, ""}, + {"StartupInfo.XSize", Field, 0, ""}, + {"StartupInfo.Y", Field, 0, ""}, + {"StartupInfo.YCountChars", Field, 0, ""}, + {"StartupInfo.YSize", Field, 0, ""}, + {"Stat", Func, 0, "func(path string, stat *Stat_t) (err error)"}, + {"Stat_t", Type, 0, ""}, + {"Stat_t.Atim", Field, 0, ""}, + {"Stat_t.Atim_ext", Field, 12, ""}, + {"Stat_t.Atimespec", Field, 0, ""}, + {"Stat_t.Birthtimespec", Field, 0, ""}, + {"Stat_t.Blksize", Field, 0, ""}, + {"Stat_t.Blocks", Field, 0, ""}, + {"Stat_t.Btim_ext", Field, 12, ""}, + {"Stat_t.Ctim", Field, 0, ""}, + {"Stat_t.Ctim_ext", Field, 12, ""}, + {"Stat_t.Ctimespec", Field, 0, ""}, + {"Stat_t.Dev", Field, 0, ""}, + {"Stat_t.Flags", Field, 0, ""}, + {"Stat_t.Gen", Field, 0, ""}, + {"Stat_t.Gid", Field, 0, ""}, + {"Stat_t.Ino", Field, 0, ""}, + {"Stat_t.Lspare", Field, 0, ""}, + {"Stat_t.Lspare0", Field, 2, ""}, + {"Stat_t.Lspare1", Field, 2, ""}, + {"Stat_t.Mode", Field, 0, ""}, + {"Stat_t.Mtim", Field, 0, ""}, + {"Stat_t.Mtim_ext", Field, 12, ""}, + {"Stat_t.Mtimespec", Field, 0, ""}, + {"Stat_t.Nlink", Field, 0, ""}, + {"Stat_t.Pad_cgo_0", Field, 0, ""}, + {"Stat_t.Pad_cgo_1", Field, 0, ""}, + {"Stat_t.Pad_cgo_2", Field, 0, ""}, + {"Stat_t.Padding0", Field, 12, ""}, + {"Stat_t.Padding1", Field, 12, ""}, + {"Stat_t.Qspare", Field, 0, ""}, + {"Stat_t.Rdev", Field, 0, ""}, + {"Stat_t.Size", Field, 0, ""}, + {"Stat_t.Spare", Field, 2, ""}, + {"Stat_t.Uid", Field, 0, ""}, + {"Stat_t.X__pad0", Field, 0, ""}, + {"Stat_t.X__pad1", Field, 0, ""}, + {"Stat_t.X__pad2", Field, 0, ""}, + {"Stat_t.X__st_birthtim", Field, 2, ""}, + {"Stat_t.X__st_ino", Field, 0, ""}, + {"Stat_t.X__unused", Field, 0, ""}, + {"Statfs", Func, 0, "func(path string, buf *Statfs_t) (err error)"}, + {"Statfs_t", Type, 0, ""}, + {"Statfs_t.Asyncreads", Field, 0, ""}, + {"Statfs_t.Asyncwrites", Field, 0, ""}, + {"Statfs_t.Bavail", Field, 0, ""}, + {"Statfs_t.Bfree", Field, 0, ""}, + {"Statfs_t.Blocks", Field, 0, ""}, + {"Statfs_t.Bsize", Field, 0, ""}, + {"Statfs_t.Charspare", Field, 0, ""}, + {"Statfs_t.F_asyncreads", Field, 2, ""}, + {"Statfs_t.F_asyncwrites", Field, 2, ""}, + {"Statfs_t.F_bavail", Field, 2, ""}, + {"Statfs_t.F_bfree", Field, 2, ""}, + {"Statfs_t.F_blocks", Field, 2, ""}, + {"Statfs_t.F_bsize", Field, 2, ""}, + {"Statfs_t.F_ctime", Field, 2, ""}, + {"Statfs_t.F_favail", Field, 2, ""}, + {"Statfs_t.F_ffree", Field, 2, ""}, + {"Statfs_t.F_files", Field, 2, ""}, + {"Statfs_t.F_flags", Field, 2, ""}, + {"Statfs_t.F_fsid", Field, 2, ""}, + {"Statfs_t.F_fstypename", Field, 2, ""}, + {"Statfs_t.F_iosize", Field, 2, ""}, + {"Statfs_t.F_mntfromname", Field, 2, ""}, + {"Statfs_t.F_mntfromspec", Field, 3, ""}, + {"Statfs_t.F_mntonname", Field, 2, ""}, + {"Statfs_t.F_namemax", Field, 2, ""}, + {"Statfs_t.F_owner", Field, 2, ""}, + {"Statfs_t.F_spare", Field, 2, ""}, + {"Statfs_t.F_syncreads", Field, 2, ""}, + {"Statfs_t.F_syncwrites", Field, 2, ""}, + {"Statfs_t.Ffree", Field, 0, ""}, + {"Statfs_t.Files", Field, 0, ""}, + {"Statfs_t.Flags", Field, 0, ""}, + {"Statfs_t.Frsize", Field, 0, ""}, + {"Statfs_t.Fsid", Field, 0, ""}, + {"Statfs_t.Fssubtype", Field, 0, ""}, + {"Statfs_t.Fstypename", Field, 0, ""}, + {"Statfs_t.Iosize", Field, 0, ""}, + {"Statfs_t.Mntfromname", Field, 0, ""}, + {"Statfs_t.Mntonname", Field, 0, ""}, + {"Statfs_t.Mount_info", Field, 2, ""}, + {"Statfs_t.Namelen", Field, 0, ""}, + {"Statfs_t.Namemax", Field, 0, ""}, + {"Statfs_t.Owner", Field, 0, ""}, + {"Statfs_t.Pad_cgo_0", Field, 0, ""}, + {"Statfs_t.Pad_cgo_1", Field, 2, ""}, + {"Statfs_t.Reserved", Field, 0, ""}, + {"Statfs_t.Spare", Field, 0, ""}, + {"Statfs_t.Syncreads", Field, 0, ""}, + {"Statfs_t.Syncwrites", Field, 0, ""}, + {"Statfs_t.Type", Field, 0, ""}, + {"Statfs_t.Version", Field, 0, ""}, + {"Stderr", Var, 0, ""}, + {"Stdin", Var, 0, ""}, + {"Stdout", Var, 0, ""}, + {"StringBytePtr", Func, 0, "func(s string) *byte"}, + {"StringByteSlice", Func, 0, "func(s string) []byte"}, + {"StringSlicePtr", Func, 0, "func(ss []string) []*byte"}, + {"StringToSid", Func, 0, ""}, + {"StringToUTF16", Func, 0, ""}, + {"StringToUTF16Ptr", Func, 0, ""}, + {"Symlink", Func, 0, "func(oldpath string, newpath string) (err error)"}, + {"Sync", Func, 0, "func()"}, + {"SyncFileRange", Func, 0, "func(fd int, off int64, n int64, flags int) (err error)"}, + {"SysProcAttr", Type, 0, ""}, + {"SysProcAttr.AdditionalInheritedHandles", Field, 17, ""}, + {"SysProcAttr.AmbientCaps", Field, 9, ""}, + {"SysProcAttr.CgroupFD", Field, 20, ""}, + {"SysProcAttr.Chroot", Field, 0, ""}, + {"SysProcAttr.Cloneflags", Field, 2, ""}, + {"SysProcAttr.CmdLine", Field, 0, ""}, + {"SysProcAttr.CreationFlags", Field, 1, ""}, + {"SysProcAttr.Credential", Field, 0, ""}, + {"SysProcAttr.Ctty", Field, 1, ""}, + {"SysProcAttr.Foreground", Field, 5, ""}, + {"SysProcAttr.GidMappings", Field, 4, ""}, + {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5, ""}, + {"SysProcAttr.HideWindow", Field, 0, ""}, + {"SysProcAttr.Jail", Field, 21, ""}, + {"SysProcAttr.NoInheritHandles", Field, 16, ""}, + {"SysProcAttr.Noctty", Field, 0, ""}, + {"SysProcAttr.ParentProcess", Field, 17, ""}, + {"SysProcAttr.Pdeathsig", Field, 0, ""}, + {"SysProcAttr.Pgid", Field, 5, ""}, + {"SysProcAttr.PidFD", Field, 22, ""}, + {"SysProcAttr.ProcessAttributes", Field, 13, ""}, + {"SysProcAttr.Ptrace", Field, 0, ""}, + {"SysProcAttr.Setctty", Field, 0, ""}, + {"SysProcAttr.Setpgid", Field, 0, ""}, + {"SysProcAttr.Setsid", Field, 0, ""}, + {"SysProcAttr.ThreadAttributes", Field, 13, ""}, + {"SysProcAttr.Token", Field, 10, ""}, + {"SysProcAttr.UidMappings", Field, 4, ""}, + {"SysProcAttr.Unshareflags", Field, 7, ""}, + {"SysProcAttr.UseCgroupFD", Field, 20, ""}, + {"SysProcIDMap", Type, 4, ""}, + {"SysProcIDMap.ContainerID", Field, 4, ""}, + {"SysProcIDMap.HostID", Field, 4, ""}, + {"SysProcIDMap.Size", Field, 4, ""}, + {"Syscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"Syscall12", Func, 0, ""}, + {"Syscall15", Func, 0, ""}, + {"Syscall18", Func, 12, ""}, + {"Syscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, + {"Syscall9", Func, 0, ""}, + {"SyscallN", Func, 18, ""}, + {"Sysctl", Func, 0, ""}, + {"SysctlUint32", Func, 0, ""}, + {"Sysctlnode", Type, 2, ""}, + {"Sysctlnode.Flags", Field, 2, ""}, + {"Sysctlnode.Name", Field, 2, ""}, + {"Sysctlnode.Num", Field, 2, ""}, + {"Sysctlnode.Un", Field, 2, ""}, + {"Sysctlnode.Ver", Field, 2, ""}, + {"Sysctlnode.X__rsvd", Field, 2, ""}, + {"Sysctlnode.X_sysctl_desc", Field, 2, ""}, + {"Sysctlnode.X_sysctl_func", Field, 2, ""}, + {"Sysctlnode.X_sysctl_parent", Field, 2, ""}, + {"Sysctlnode.X_sysctl_size", Field, 2, ""}, + {"Sysinfo", Func, 0, "func(info *Sysinfo_t) (err error)"}, + {"Sysinfo_t", Type, 0, ""}, + {"Sysinfo_t.Bufferram", Field, 0, ""}, + {"Sysinfo_t.Freehigh", Field, 0, ""}, + {"Sysinfo_t.Freeram", Field, 0, ""}, + {"Sysinfo_t.Freeswap", Field, 0, ""}, + {"Sysinfo_t.Loads", Field, 0, ""}, + {"Sysinfo_t.Pad", Field, 0, ""}, + {"Sysinfo_t.Pad_cgo_0", Field, 0, ""}, + {"Sysinfo_t.Pad_cgo_1", Field, 0, ""}, + {"Sysinfo_t.Procs", Field, 0, ""}, + {"Sysinfo_t.Sharedram", Field, 0, ""}, + {"Sysinfo_t.Totalhigh", Field, 0, ""}, + {"Sysinfo_t.Totalram", Field, 0, ""}, + {"Sysinfo_t.Totalswap", Field, 0, ""}, + {"Sysinfo_t.Unit", Field, 0, ""}, + {"Sysinfo_t.Uptime", Field, 0, ""}, + {"Sysinfo_t.X_f", Field, 0, ""}, + {"Systemtime", Type, 0, ""}, + {"Systemtime.Day", Field, 0, ""}, + {"Systemtime.DayOfWeek", Field, 0, ""}, + {"Systemtime.Hour", Field, 0, ""}, + {"Systemtime.Milliseconds", Field, 0, ""}, + {"Systemtime.Minute", Field, 0, ""}, + {"Systemtime.Month", Field, 0, ""}, + {"Systemtime.Second", Field, 0, ""}, + {"Systemtime.Year", Field, 0, ""}, + {"TCGETS", Const, 0, ""}, + {"TCIFLUSH", Const, 1, ""}, + {"TCIOFLUSH", Const, 1, ""}, + {"TCOFLUSH", Const, 1, ""}, + {"TCPInfo", Type, 1, ""}, + {"TCPInfo.Advmss", Field, 1, ""}, + {"TCPInfo.Ato", Field, 1, ""}, + {"TCPInfo.Backoff", Field, 1, ""}, + {"TCPInfo.Ca_state", Field, 1, ""}, + {"TCPInfo.Fackets", Field, 1, ""}, + {"TCPInfo.Last_ack_recv", Field, 1, ""}, + {"TCPInfo.Last_ack_sent", Field, 1, ""}, + {"TCPInfo.Last_data_recv", Field, 1, ""}, + {"TCPInfo.Last_data_sent", Field, 1, ""}, + {"TCPInfo.Lost", Field, 1, ""}, + {"TCPInfo.Options", Field, 1, ""}, + {"TCPInfo.Pad_cgo_0", Field, 1, ""}, + {"TCPInfo.Pmtu", Field, 1, ""}, + {"TCPInfo.Probes", Field, 1, ""}, + {"TCPInfo.Rcv_mss", Field, 1, ""}, + {"TCPInfo.Rcv_rtt", Field, 1, ""}, + {"TCPInfo.Rcv_space", Field, 1, ""}, + {"TCPInfo.Rcv_ssthresh", Field, 1, ""}, + {"TCPInfo.Reordering", Field, 1, ""}, + {"TCPInfo.Retrans", Field, 1, ""}, + {"TCPInfo.Retransmits", Field, 1, ""}, + {"TCPInfo.Rto", Field, 1, ""}, + {"TCPInfo.Rtt", Field, 1, ""}, + {"TCPInfo.Rttvar", Field, 1, ""}, + {"TCPInfo.Sacked", Field, 1, ""}, + {"TCPInfo.Snd_cwnd", Field, 1, ""}, + {"TCPInfo.Snd_mss", Field, 1, ""}, + {"TCPInfo.Snd_ssthresh", Field, 1, ""}, + {"TCPInfo.State", Field, 1, ""}, + {"TCPInfo.Total_retrans", Field, 1, ""}, + {"TCPInfo.Unacked", Field, 1, ""}, + {"TCPKeepalive", Type, 3, ""}, + {"TCPKeepalive.Interval", Field, 3, ""}, + {"TCPKeepalive.OnOff", Field, 3, ""}, + {"TCPKeepalive.Time", Field, 3, ""}, + {"TCP_CA_NAME_MAX", Const, 0, ""}, + {"TCP_CONGCTL", Const, 1, ""}, + {"TCP_CONGESTION", Const, 0, ""}, + {"TCP_CONNECTIONTIMEOUT", Const, 0, ""}, + {"TCP_CORK", Const, 0, ""}, + {"TCP_DEFER_ACCEPT", Const, 0, ""}, + {"TCP_ENABLE_ECN", Const, 16, ""}, + {"TCP_INFO", Const, 0, ""}, + {"TCP_KEEPALIVE", Const, 0, ""}, + {"TCP_KEEPCNT", Const, 0, ""}, + {"TCP_KEEPIDLE", Const, 0, ""}, + {"TCP_KEEPINIT", Const, 1, ""}, + {"TCP_KEEPINTVL", Const, 0, ""}, + {"TCP_LINGER2", Const, 0, ""}, + {"TCP_MAXBURST", Const, 0, ""}, + {"TCP_MAXHLEN", Const, 0, ""}, + {"TCP_MAXOLEN", Const, 0, ""}, + {"TCP_MAXSEG", Const, 0, ""}, + {"TCP_MAXWIN", Const, 0, ""}, + {"TCP_MAX_SACK", Const, 0, ""}, + {"TCP_MAX_WINSHIFT", Const, 0, ""}, + {"TCP_MD5SIG", Const, 0, ""}, + {"TCP_MD5SIG_MAXKEYLEN", Const, 0, ""}, + {"TCP_MINMSS", Const, 0, ""}, + {"TCP_MINMSSOVERLOAD", Const, 0, ""}, + {"TCP_MSS", Const, 0, ""}, + {"TCP_NODELAY", Const, 0, ""}, + {"TCP_NOOPT", Const, 0, ""}, + {"TCP_NOPUSH", Const, 0, ""}, + {"TCP_NOTSENT_LOWAT", Const, 16, ""}, + {"TCP_NSTATES", Const, 1, ""}, + {"TCP_QUICKACK", Const, 0, ""}, + {"TCP_RXT_CONNDROPTIME", Const, 0, ""}, + {"TCP_RXT_FINDROP", Const, 0, ""}, + {"TCP_SACK_ENABLE", Const, 1, ""}, + {"TCP_SENDMOREACKS", Const, 16, ""}, + {"TCP_SYNCNT", Const, 0, ""}, + {"TCP_VENDOR", Const, 3, ""}, + {"TCP_WINDOW_CLAMP", Const, 0, ""}, + {"TCSAFLUSH", Const, 1, ""}, + {"TCSETS", Const, 0, ""}, + {"TF_DISCONNECT", Const, 0, ""}, + {"TF_REUSE_SOCKET", Const, 0, ""}, + {"TF_USE_DEFAULT_WORKER", Const, 0, ""}, + {"TF_USE_KERNEL_APC", Const, 0, ""}, + {"TF_USE_SYSTEM_THREAD", Const, 0, ""}, + {"TF_WRITE_BEHIND", Const, 0, ""}, + {"TH32CS_INHERIT", Const, 4, ""}, + {"TH32CS_SNAPALL", Const, 4, ""}, + {"TH32CS_SNAPHEAPLIST", Const, 4, ""}, + {"TH32CS_SNAPMODULE", Const, 4, ""}, + {"TH32CS_SNAPMODULE32", Const, 4, ""}, + {"TH32CS_SNAPPROCESS", Const, 4, ""}, + {"TH32CS_SNAPTHREAD", Const, 4, ""}, + {"TIME_ZONE_ID_DAYLIGHT", Const, 0, ""}, + {"TIME_ZONE_ID_STANDARD", Const, 0, ""}, + {"TIME_ZONE_ID_UNKNOWN", Const, 0, ""}, + {"TIOCCBRK", Const, 0, ""}, + {"TIOCCDTR", Const, 0, ""}, + {"TIOCCONS", Const, 0, ""}, + {"TIOCDCDTIMESTAMP", Const, 0, ""}, + {"TIOCDRAIN", Const, 0, ""}, + {"TIOCDSIMICROCODE", Const, 0, ""}, + {"TIOCEXCL", Const, 0, ""}, + {"TIOCEXT", Const, 0, ""}, + {"TIOCFLAG_CDTRCTS", Const, 1, ""}, + {"TIOCFLAG_CLOCAL", Const, 1, ""}, + {"TIOCFLAG_CRTSCTS", Const, 1, ""}, + {"TIOCFLAG_MDMBUF", Const, 1, ""}, + {"TIOCFLAG_PPS", Const, 1, ""}, + {"TIOCFLAG_SOFTCAR", Const, 1, ""}, + {"TIOCFLUSH", Const, 0, ""}, + {"TIOCGDEV", Const, 0, ""}, + {"TIOCGDRAINWAIT", Const, 0, ""}, + {"TIOCGETA", Const, 0, ""}, + {"TIOCGETD", Const, 0, ""}, + {"TIOCGFLAGS", Const, 1, ""}, + {"TIOCGICOUNT", Const, 0, ""}, + {"TIOCGLCKTRMIOS", Const, 0, ""}, + {"TIOCGLINED", Const, 1, ""}, + {"TIOCGPGRP", Const, 0, ""}, + {"TIOCGPTN", Const, 0, ""}, + {"TIOCGQSIZE", Const, 1, ""}, + {"TIOCGRANTPT", Const, 1, ""}, + {"TIOCGRS485", Const, 0, ""}, + {"TIOCGSERIAL", Const, 0, ""}, + {"TIOCGSID", Const, 0, ""}, + {"TIOCGSIZE", Const, 1, ""}, + {"TIOCGSOFTCAR", Const, 0, ""}, + {"TIOCGTSTAMP", Const, 1, ""}, + {"TIOCGWINSZ", Const, 0, ""}, + {"TIOCINQ", Const, 0, ""}, + {"TIOCIXOFF", Const, 0, ""}, + {"TIOCIXON", Const, 0, ""}, + {"TIOCLINUX", Const, 0, ""}, + {"TIOCMBIC", Const, 0, ""}, + {"TIOCMBIS", Const, 0, ""}, + {"TIOCMGDTRWAIT", Const, 0, ""}, + {"TIOCMGET", Const, 0, ""}, + {"TIOCMIWAIT", Const, 0, ""}, + {"TIOCMODG", Const, 0, ""}, + {"TIOCMODS", Const, 0, ""}, + {"TIOCMSDTRWAIT", Const, 0, ""}, + {"TIOCMSET", Const, 0, ""}, + {"TIOCM_CAR", Const, 0, ""}, + {"TIOCM_CD", Const, 0, ""}, + {"TIOCM_CTS", Const, 0, ""}, + {"TIOCM_DCD", Const, 0, ""}, + {"TIOCM_DSR", Const, 0, ""}, + {"TIOCM_DTR", Const, 0, ""}, + {"TIOCM_LE", Const, 0, ""}, + {"TIOCM_RI", Const, 0, ""}, + {"TIOCM_RNG", Const, 0, ""}, + {"TIOCM_RTS", Const, 0, ""}, + {"TIOCM_SR", Const, 0, ""}, + {"TIOCM_ST", Const, 0, ""}, + {"TIOCNOTTY", Const, 0, ""}, + {"TIOCNXCL", Const, 0, ""}, + {"TIOCOUTQ", Const, 0, ""}, + {"TIOCPKT", Const, 0, ""}, + {"TIOCPKT_DATA", Const, 0, ""}, + {"TIOCPKT_DOSTOP", Const, 0, ""}, + {"TIOCPKT_FLUSHREAD", Const, 0, ""}, + {"TIOCPKT_FLUSHWRITE", Const, 0, ""}, + {"TIOCPKT_IOCTL", Const, 0, ""}, + {"TIOCPKT_NOSTOP", Const, 0, ""}, + {"TIOCPKT_START", Const, 0, ""}, + {"TIOCPKT_STOP", Const, 0, ""}, + {"TIOCPTMASTER", Const, 0, ""}, + {"TIOCPTMGET", Const, 1, ""}, + {"TIOCPTSNAME", Const, 1, ""}, + {"TIOCPTYGNAME", Const, 0, ""}, + {"TIOCPTYGRANT", Const, 0, ""}, + {"TIOCPTYUNLK", Const, 0, ""}, + {"TIOCRCVFRAME", Const, 1, ""}, + {"TIOCREMOTE", Const, 0, ""}, + {"TIOCSBRK", Const, 0, ""}, + {"TIOCSCONS", Const, 0, ""}, + {"TIOCSCTTY", Const, 0, ""}, + {"TIOCSDRAINWAIT", Const, 0, ""}, + {"TIOCSDTR", Const, 0, ""}, + {"TIOCSERCONFIG", Const, 0, ""}, + {"TIOCSERGETLSR", Const, 0, ""}, + {"TIOCSERGETMULTI", Const, 0, ""}, + {"TIOCSERGSTRUCT", Const, 0, ""}, + {"TIOCSERGWILD", Const, 0, ""}, + {"TIOCSERSETMULTI", Const, 0, ""}, + {"TIOCSERSWILD", Const, 0, ""}, + {"TIOCSER_TEMT", Const, 0, ""}, + {"TIOCSETA", Const, 0, ""}, + {"TIOCSETAF", Const, 0, ""}, + {"TIOCSETAW", Const, 0, ""}, + {"TIOCSETD", Const, 0, ""}, + {"TIOCSFLAGS", Const, 1, ""}, + {"TIOCSIG", Const, 0, ""}, + {"TIOCSLCKTRMIOS", Const, 0, ""}, + {"TIOCSLINED", Const, 1, ""}, + {"TIOCSPGRP", Const, 0, ""}, + {"TIOCSPTLCK", Const, 0, ""}, + {"TIOCSQSIZE", Const, 1, ""}, + {"TIOCSRS485", Const, 0, ""}, + {"TIOCSSERIAL", Const, 0, ""}, + {"TIOCSSIZE", Const, 1, ""}, + {"TIOCSSOFTCAR", Const, 0, ""}, + {"TIOCSTART", Const, 0, ""}, + {"TIOCSTAT", Const, 0, ""}, + {"TIOCSTI", Const, 0, ""}, + {"TIOCSTOP", Const, 0, ""}, + {"TIOCSTSTAMP", Const, 1, ""}, + {"TIOCSWINSZ", Const, 0, ""}, + {"TIOCTIMESTAMP", Const, 0, ""}, + {"TIOCUCNTL", Const, 0, ""}, + {"TIOCVHANGUP", Const, 0, ""}, + {"TIOCXMTFRAME", Const, 1, ""}, + {"TOKEN_ADJUST_DEFAULT", Const, 0, ""}, + {"TOKEN_ADJUST_GROUPS", Const, 0, ""}, + {"TOKEN_ADJUST_PRIVILEGES", Const, 0, ""}, + {"TOKEN_ADJUST_SESSIONID", Const, 11, ""}, + {"TOKEN_ALL_ACCESS", Const, 0, ""}, + {"TOKEN_ASSIGN_PRIMARY", Const, 0, ""}, + {"TOKEN_DUPLICATE", Const, 0, ""}, + {"TOKEN_EXECUTE", Const, 0, ""}, + {"TOKEN_IMPERSONATE", Const, 0, ""}, + {"TOKEN_QUERY", Const, 0, ""}, + {"TOKEN_QUERY_SOURCE", Const, 0, ""}, + {"TOKEN_READ", Const, 0, ""}, + {"TOKEN_WRITE", Const, 0, ""}, + {"TOSTOP", Const, 0, ""}, + {"TRUNCATE_EXISTING", Const, 0, ""}, + {"TUNATTACHFILTER", Const, 0, ""}, + {"TUNDETACHFILTER", Const, 0, ""}, + {"TUNGETFEATURES", Const, 0, ""}, + {"TUNGETIFF", Const, 0, ""}, + {"TUNGETSNDBUF", Const, 0, ""}, + {"TUNGETVNETHDRSZ", Const, 0, ""}, + {"TUNSETDEBUG", Const, 0, ""}, + {"TUNSETGROUP", Const, 0, ""}, + {"TUNSETIFF", Const, 0, ""}, + {"TUNSETLINK", Const, 0, ""}, + {"TUNSETNOCSUM", Const, 0, ""}, + {"TUNSETOFFLOAD", Const, 0, ""}, + {"TUNSETOWNER", Const, 0, ""}, + {"TUNSETPERSIST", Const, 0, ""}, + {"TUNSETSNDBUF", Const, 0, ""}, + {"TUNSETTXFILTER", Const, 0, ""}, + {"TUNSETVNETHDRSZ", Const, 0, ""}, + {"Tee", Func, 0, "func(rfd int, wfd int, len int, flags int) (n int64, err error)"}, + {"TerminateProcess", Func, 0, ""}, + {"Termios", Type, 0, ""}, + {"Termios.Cc", Field, 0, ""}, + {"Termios.Cflag", Field, 0, ""}, + {"Termios.Iflag", Field, 0, ""}, + {"Termios.Ispeed", Field, 0, ""}, + {"Termios.Lflag", Field, 0, ""}, + {"Termios.Line", Field, 0, ""}, + {"Termios.Oflag", Field, 0, ""}, + {"Termios.Ospeed", Field, 0, ""}, + {"Termios.Pad_cgo_0", Field, 0, ""}, + {"Tgkill", Func, 0, "func(tgid int, tid int, sig Signal) (err error)"}, + {"Time", Func, 0, "func(t *Time_t) (tt Time_t, err error)"}, + {"Time_t", Type, 0, ""}, + {"Times", Func, 0, "func(tms *Tms) (ticks uintptr, err error)"}, + {"Timespec", Type, 0, ""}, + {"Timespec.Nsec", Field, 0, ""}, + {"Timespec.Pad_cgo_0", Field, 2, ""}, + {"Timespec.Sec", Field, 0, ""}, + {"TimespecToNsec", Func, 0, "func(ts Timespec) int64"}, + {"Timeval", Type, 0, ""}, + {"Timeval.Pad_cgo_0", Field, 0, ""}, + {"Timeval.Sec", Field, 0, ""}, + {"Timeval.Usec", Field, 0, ""}, + {"Timeval32", Type, 0, ""}, + {"Timeval32.Sec", Field, 0, ""}, + {"Timeval32.Usec", Field, 0, ""}, + {"TimevalToNsec", Func, 0, "func(tv Timeval) int64"}, + {"Timex", Type, 0, ""}, + {"Timex.Calcnt", Field, 0, ""}, + {"Timex.Constant", Field, 0, ""}, + {"Timex.Errcnt", Field, 0, ""}, + {"Timex.Esterror", Field, 0, ""}, + {"Timex.Freq", Field, 0, ""}, + {"Timex.Jitcnt", Field, 0, ""}, + {"Timex.Jitter", Field, 0, ""}, + {"Timex.Maxerror", Field, 0, ""}, + {"Timex.Modes", Field, 0, ""}, + {"Timex.Offset", Field, 0, ""}, + {"Timex.Pad_cgo_0", Field, 0, ""}, + {"Timex.Pad_cgo_1", Field, 0, ""}, + {"Timex.Pad_cgo_2", Field, 0, ""}, + {"Timex.Pad_cgo_3", Field, 0, ""}, + {"Timex.Ppsfreq", Field, 0, ""}, + {"Timex.Precision", Field, 0, ""}, + {"Timex.Shift", Field, 0, ""}, + {"Timex.Stabil", Field, 0, ""}, + {"Timex.Status", Field, 0, ""}, + {"Timex.Stbcnt", Field, 0, ""}, + {"Timex.Tai", Field, 0, ""}, + {"Timex.Tick", Field, 0, ""}, + {"Timex.Time", Field, 0, ""}, + {"Timex.Tolerance", Field, 0, ""}, + {"Timezoneinformation", Type, 0, ""}, + {"Timezoneinformation.Bias", Field, 0, ""}, + {"Timezoneinformation.DaylightBias", Field, 0, ""}, + {"Timezoneinformation.DaylightDate", Field, 0, ""}, + {"Timezoneinformation.DaylightName", Field, 0, ""}, + {"Timezoneinformation.StandardBias", Field, 0, ""}, + {"Timezoneinformation.StandardDate", Field, 0, ""}, + {"Timezoneinformation.StandardName", Field, 0, ""}, + {"Tms", Type, 0, ""}, + {"Tms.Cstime", Field, 0, ""}, + {"Tms.Cutime", Field, 0, ""}, + {"Tms.Stime", Field, 0, ""}, + {"Tms.Utime", Field, 0, ""}, + {"Token", Type, 0, ""}, + {"TokenAccessInformation", Const, 0, ""}, + {"TokenAuditPolicy", Const, 0, ""}, + {"TokenDefaultDacl", Const, 0, ""}, + {"TokenElevation", Const, 0, ""}, + {"TokenElevationType", Const, 0, ""}, + {"TokenGroups", Const, 0, ""}, + {"TokenGroupsAndPrivileges", Const, 0, ""}, + {"TokenHasRestrictions", Const, 0, ""}, + {"TokenImpersonationLevel", Const, 0, ""}, + {"TokenIntegrityLevel", Const, 0, ""}, + {"TokenLinkedToken", Const, 0, ""}, + {"TokenLogonSid", Const, 0, ""}, + {"TokenMandatoryPolicy", Const, 0, ""}, + {"TokenOrigin", Const, 0, ""}, + {"TokenOwner", Const, 0, ""}, + {"TokenPrimaryGroup", Const, 0, ""}, + {"TokenPrivileges", Const, 0, ""}, + {"TokenRestrictedSids", Const, 0, ""}, + {"TokenSandBoxInert", Const, 0, ""}, + {"TokenSessionId", Const, 0, ""}, + {"TokenSessionReference", Const, 0, ""}, + {"TokenSource", Const, 0, ""}, + {"TokenStatistics", Const, 0, ""}, + {"TokenType", Const, 0, ""}, + {"TokenUIAccess", Const, 0, ""}, + {"TokenUser", Const, 0, ""}, + {"TokenVirtualizationAllowed", Const, 0, ""}, + {"TokenVirtualizationEnabled", Const, 0, ""}, + {"Tokenprimarygroup", Type, 0, ""}, + {"Tokenprimarygroup.PrimaryGroup", Field, 0, ""}, + {"Tokenuser", Type, 0, ""}, + {"Tokenuser.User", Field, 0, ""}, + {"TranslateAccountName", Func, 0, ""}, + {"TranslateName", Func, 0, ""}, + {"TransmitFile", Func, 0, ""}, + {"TransmitFileBuffers", Type, 0, ""}, + {"TransmitFileBuffers.Head", Field, 0, ""}, + {"TransmitFileBuffers.HeadLength", Field, 0, ""}, + {"TransmitFileBuffers.Tail", Field, 0, ""}, + {"TransmitFileBuffers.TailLength", Field, 0, ""}, + {"Truncate", Func, 0, "func(path string, length int64) (err error)"}, + {"UNIX_PATH_MAX", Const, 12, ""}, + {"USAGE_MATCH_TYPE_AND", Const, 0, ""}, + {"USAGE_MATCH_TYPE_OR", Const, 0, ""}, + {"UTF16FromString", Func, 1, ""}, + {"UTF16PtrFromString", Func, 1, ""}, + {"UTF16ToString", Func, 0, ""}, + {"Ucred", Type, 0, ""}, + {"Ucred.Gid", Field, 0, ""}, + {"Ucred.Pid", Field, 0, ""}, + {"Ucred.Uid", Field, 0, ""}, + {"Umask", Func, 0, "func(mask int) (oldmask int)"}, + {"Uname", Func, 0, "func(buf *Utsname) (err error)"}, + {"Undelete", Func, 0, ""}, + {"UnixCredentials", Func, 0, "func(ucred *Ucred) []byte"}, + {"UnixRights", Func, 0, "func(fds ...int) []byte"}, + {"Unlink", Func, 0, "func(path string) error"}, + {"Unlinkat", Func, 0, "func(dirfd int, path string) error"}, + {"UnmapViewOfFile", Func, 0, ""}, + {"Unmount", Func, 0, "func(target string, flags int) (err error)"}, + {"Unsetenv", Func, 4, "func(key string) error"}, + {"Unshare", Func, 0, "func(flags int) (err error)"}, + {"UserInfo10", Type, 0, ""}, + {"UserInfo10.Comment", Field, 0, ""}, + {"UserInfo10.FullName", Field, 0, ""}, + {"UserInfo10.Name", Field, 0, ""}, + {"UserInfo10.UsrComment", Field, 0, ""}, + {"Ustat", Func, 0, "func(dev int, ubuf *Ustat_t) (err error)"}, + {"Ustat_t", Type, 0, ""}, + {"Ustat_t.Fname", Field, 0, ""}, + {"Ustat_t.Fpack", Field, 0, ""}, + {"Ustat_t.Pad_cgo_0", Field, 0, ""}, + {"Ustat_t.Pad_cgo_1", Field, 0, ""}, + {"Ustat_t.Tfree", Field, 0, ""}, + {"Ustat_t.Tinode", Field, 0, ""}, + {"Utimbuf", Type, 0, ""}, + {"Utimbuf.Actime", Field, 0, ""}, + {"Utimbuf.Modtime", Field, 0, ""}, + {"Utime", Func, 0, "func(path string, buf *Utimbuf) (err error)"}, + {"Utimes", Func, 0, "func(path string, tv []Timeval) (err error)"}, + {"UtimesNano", Func, 1, "func(path string, ts []Timespec) (err error)"}, + {"Utsname", Type, 0, ""}, + {"Utsname.Domainname", Field, 0, ""}, + {"Utsname.Machine", Field, 0, ""}, + {"Utsname.Nodename", Field, 0, ""}, + {"Utsname.Release", Field, 0, ""}, + {"Utsname.Sysname", Field, 0, ""}, + {"Utsname.Version", Field, 0, ""}, + {"VDISCARD", Const, 0, ""}, + {"VDSUSP", Const, 1, ""}, + {"VEOF", Const, 0, ""}, + {"VEOL", Const, 0, ""}, + {"VEOL2", Const, 0, ""}, + {"VERASE", Const, 0, ""}, + {"VERASE2", Const, 1, ""}, + {"VINTR", Const, 0, ""}, + {"VKILL", Const, 0, ""}, + {"VLNEXT", Const, 0, ""}, + {"VMIN", Const, 0, ""}, + {"VQUIT", Const, 0, ""}, + {"VREPRINT", Const, 0, ""}, + {"VSTART", Const, 0, ""}, + {"VSTATUS", Const, 1, ""}, + {"VSTOP", Const, 0, ""}, + {"VSUSP", Const, 0, ""}, + {"VSWTC", Const, 0, ""}, + {"VT0", Const, 1, ""}, + {"VT1", Const, 1, ""}, + {"VTDLY", Const, 1, ""}, + {"VTIME", Const, 0, ""}, + {"VWERASE", Const, 0, ""}, + {"VirtualLock", Func, 0, ""}, + {"VirtualUnlock", Func, 0, ""}, + {"WAIT_ABANDONED", Const, 0, ""}, + {"WAIT_FAILED", Const, 0, ""}, + {"WAIT_OBJECT_0", Const, 0, ""}, + {"WAIT_TIMEOUT", Const, 0, ""}, + {"WALL", Const, 0, ""}, + {"WALLSIG", Const, 1, ""}, + {"WALTSIG", Const, 1, ""}, + {"WCLONE", Const, 0, ""}, + {"WCONTINUED", Const, 0, ""}, + {"WCOREFLAG", Const, 0, ""}, + {"WEXITED", Const, 0, ""}, + {"WLINUXCLONE", Const, 0, ""}, + {"WNOHANG", Const, 0, ""}, + {"WNOTHREAD", Const, 0, ""}, + {"WNOWAIT", Const, 0, ""}, + {"WNOZOMBIE", Const, 1, ""}, + {"WOPTSCHECKED", Const, 1, ""}, + {"WORDSIZE", Const, 0, ""}, + {"WSABuf", Type, 0, ""}, + {"WSABuf.Buf", Field, 0, ""}, + {"WSABuf.Len", Field, 0, ""}, + {"WSACleanup", Func, 0, ""}, + {"WSADESCRIPTION_LEN", Const, 0, ""}, + {"WSAData", Type, 0, ""}, + {"WSAData.Description", Field, 0, ""}, + {"WSAData.HighVersion", Field, 0, ""}, + {"WSAData.MaxSockets", Field, 0, ""}, + {"WSAData.MaxUdpDg", Field, 0, ""}, + {"WSAData.SystemStatus", Field, 0, ""}, + {"WSAData.VendorInfo", Field, 0, ""}, + {"WSAData.Version", Field, 0, ""}, + {"WSAEACCES", Const, 2, ""}, + {"WSAECONNABORTED", Const, 9, ""}, + {"WSAECONNRESET", Const, 3, ""}, + {"WSAENOPROTOOPT", Const, 23, ""}, + {"WSAEnumProtocols", Func, 2, ""}, + {"WSAID_CONNECTEX", Var, 1, ""}, + {"WSAIoctl", Func, 0, ""}, + {"WSAPROTOCOL_LEN", Const, 2, ""}, + {"WSAProtocolChain", Type, 2, ""}, + {"WSAProtocolChain.ChainEntries", Field, 2, ""}, + {"WSAProtocolChain.ChainLen", Field, 2, ""}, + {"WSAProtocolInfo", Type, 2, ""}, + {"WSAProtocolInfo.AddressFamily", Field, 2, ""}, + {"WSAProtocolInfo.CatalogEntryId", Field, 2, ""}, + {"WSAProtocolInfo.MaxSockAddr", Field, 2, ""}, + {"WSAProtocolInfo.MessageSize", Field, 2, ""}, + {"WSAProtocolInfo.MinSockAddr", Field, 2, ""}, + {"WSAProtocolInfo.NetworkByteOrder", Field, 2, ""}, + {"WSAProtocolInfo.Protocol", Field, 2, ""}, + {"WSAProtocolInfo.ProtocolChain", Field, 2, ""}, + {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2, ""}, + {"WSAProtocolInfo.ProtocolName", Field, 2, ""}, + {"WSAProtocolInfo.ProviderFlags", Field, 2, ""}, + {"WSAProtocolInfo.ProviderId", Field, 2, ""}, + {"WSAProtocolInfo.ProviderReserved", Field, 2, ""}, + {"WSAProtocolInfo.SecurityScheme", Field, 2, ""}, + {"WSAProtocolInfo.ServiceFlags1", Field, 2, ""}, + {"WSAProtocolInfo.ServiceFlags2", Field, 2, ""}, + {"WSAProtocolInfo.ServiceFlags3", Field, 2, ""}, + {"WSAProtocolInfo.ServiceFlags4", Field, 2, ""}, + {"WSAProtocolInfo.SocketType", Field, 2, ""}, + {"WSAProtocolInfo.Version", Field, 2, ""}, + {"WSARecv", Func, 0, ""}, + {"WSARecvFrom", Func, 0, ""}, + {"WSASYS_STATUS_LEN", Const, 0, ""}, + {"WSASend", Func, 0, ""}, + {"WSASendTo", Func, 0, ""}, + {"WSASendto", Func, 0, ""}, + {"WSAStartup", Func, 0, ""}, + {"WSTOPPED", Const, 0, ""}, + {"WTRAPPED", Const, 1, ""}, + {"WUNTRACED", Const, 0, ""}, + {"Wait4", Func, 0, "func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)"}, + {"WaitForSingleObject", Func, 0, ""}, + {"WaitStatus", Type, 0, ""}, + {"WaitStatus.ExitCode", Field, 0, ""}, + {"Win32FileAttributeData", Type, 0, ""}, + {"Win32FileAttributeData.CreationTime", Field, 0, ""}, + {"Win32FileAttributeData.FileAttributes", Field, 0, ""}, + {"Win32FileAttributeData.FileSizeHigh", Field, 0, ""}, + {"Win32FileAttributeData.FileSizeLow", Field, 0, ""}, + {"Win32FileAttributeData.LastAccessTime", Field, 0, ""}, + {"Win32FileAttributeData.LastWriteTime", Field, 0, ""}, + {"Win32finddata", Type, 0, ""}, + {"Win32finddata.AlternateFileName", Field, 0, ""}, + {"Win32finddata.CreationTime", Field, 0, ""}, + {"Win32finddata.FileAttributes", Field, 0, ""}, + {"Win32finddata.FileName", Field, 0, ""}, + {"Win32finddata.FileSizeHigh", Field, 0, ""}, + {"Win32finddata.FileSizeLow", Field, 0, ""}, + {"Win32finddata.LastAccessTime", Field, 0, ""}, + {"Win32finddata.LastWriteTime", Field, 0, ""}, + {"Win32finddata.Reserved0", Field, 0, ""}, + {"Win32finddata.Reserved1", Field, 0, ""}, + {"Write", Func, 0, "func(fd int, p []byte) (n int, err error)"}, + {"WriteConsole", Func, 1, ""}, + {"WriteFile", Func, 0, ""}, + {"X509_ASN_ENCODING", Const, 0, ""}, + {"XCASE", Const, 0, ""}, + {"XP1_CONNECTIONLESS", Const, 2, ""}, + {"XP1_CONNECT_DATA", Const, 2, ""}, + {"XP1_DISCONNECT_DATA", Const, 2, ""}, + {"XP1_EXPEDITED_DATA", Const, 2, ""}, + {"XP1_GRACEFUL_CLOSE", Const, 2, ""}, + {"XP1_GUARANTEED_DELIVERY", Const, 2, ""}, + {"XP1_GUARANTEED_ORDER", Const, 2, ""}, + {"XP1_IFS_HANDLES", Const, 2, ""}, + {"XP1_MESSAGE_ORIENTED", Const, 2, ""}, + {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2, ""}, + {"XP1_MULTIPOINT_DATA_PLANE", Const, 2, ""}, + {"XP1_PARTIAL_MESSAGE", Const, 2, ""}, + {"XP1_PSEUDO_STREAM", Const, 2, ""}, + {"XP1_QOS_SUPPORTED", Const, 2, ""}, + {"XP1_SAN_SUPPORT_SDP", Const, 2, ""}, + {"XP1_SUPPORT_BROADCAST", Const, 2, ""}, + {"XP1_SUPPORT_MULTIPOINT", Const, 2, ""}, + {"XP1_UNI_RECV", Const, 2, ""}, + {"XP1_UNI_SEND", Const, 2, ""}, + }, + "syscall/js": { + {"CopyBytesToGo", Func, 0, ""}, + {"CopyBytesToJS", Func, 0, ""}, + {"Error", Type, 0, ""}, + {"Func", Type, 0, ""}, + {"FuncOf", Func, 0, ""}, + {"Global", Func, 0, ""}, + {"Null", Func, 0, ""}, + {"Type", Type, 0, ""}, + {"TypeBoolean", Const, 0, ""}, + {"TypeFunction", Const, 0, ""}, + {"TypeNull", Const, 0, ""}, + {"TypeNumber", Const, 0, ""}, + {"TypeObject", Const, 0, ""}, + {"TypeString", Const, 0, ""}, + {"TypeSymbol", Const, 0, ""}, + {"TypeUndefined", Const, 0, ""}, + {"Undefined", Func, 0, ""}, + {"Value", Type, 0, ""}, + {"ValueError", Type, 0, ""}, + {"ValueOf", Func, 0, ""}, + }, + "testing": { + {"(*B).Chdir", Method, 24, ""}, + {"(*B).Cleanup", Method, 14, ""}, + {"(*B).Context", Method, 24, ""}, + {"(*B).Elapsed", Method, 20, ""}, + {"(*B).Error", Method, 0, ""}, + {"(*B).Errorf", Method, 0, ""}, + {"(*B).Fail", Method, 0, ""}, + {"(*B).FailNow", Method, 0, ""}, + {"(*B).Failed", Method, 0, ""}, + {"(*B).Fatal", Method, 0, ""}, + {"(*B).Fatalf", Method, 0, ""}, + {"(*B).Helper", Method, 9, ""}, + {"(*B).Log", Method, 0, ""}, + {"(*B).Logf", Method, 0, ""}, + {"(*B).Loop", Method, 24, ""}, + {"(*B).Name", Method, 8, ""}, + {"(*B).ReportAllocs", Method, 1, ""}, + {"(*B).ReportMetric", Method, 13, ""}, + {"(*B).ResetTimer", Method, 0, ""}, + {"(*B).Run", Method, 7, ""}, + {"(*B).RunParallel", Method, 3, ""}, + {"(*B).SetBytes", Method, 0, ""}, + {"(*B).SetParallelism", Method, 3, ""}, + {"(*B).Setenv", Method, 17, ""}, + {"(*B).Skip", Method, 1, ""}, + {"(*B).SkipNow", Method, 1, ""}, + {"(*B).Skipf", Method, 1, ""}, + {"(*B).Skipped", Method, 1, ""}, + {"(*B).StartTimer", Method, 0, ""}, + {"(*B).StopTimer", Method, 0, ""}, + {"(*B).TempDir", Method, 15, ""}, + {"(*F).Add", Method, 18, ""}, + {"(*F).Chdir", Method, 24, ""}, + {"(*F).Cleanup", Method, 18, ""}, + {"(*F).Context", Method, 24, ""}, + {"(*F).Error", Method, 18, ""}, + {"(*F).Errorf", Method, 18, ""}, + {"(*F).Fail", Method, 18, ""}, + {"(*F).FailNow", Method, 18, ""}, + {"(*F).Failed", Method, 18, ""}, + {"(*F).Fatal", Method, 18, ""}, + {"(*F).Fatalf", Method, 18, ""}, + {"(*F).Fuzz", Method, 18, ""}, + {"(*F).Helper", Method, 18, ""}, + {"(*F).Log", Method, 18, ""}, + {"(*F).Logf", Method, 18, ""}, + {"(*F).Name", Method, 18, ""}, + {"(*F).Setenv", Method, 18, ""}, + {"(*F).Skip", Method, 18, ""}, + {"(*F).SkipNow", Method, 18, ""}, + {"(*F).Skipf", Method, 18, ""}, + {"(*F).Skipped", Method, 18, ""}, + {"(*F).TempDir", Method, 18, ""}, + {"(*M).Run", Method, 4, ""}, + {"(*PB).Next", Method, 3, ""}, + {"(*T).Chdir", Method, 24, ""}, + {"(*T).Cleanup", Method, 14, ""}, + {"(*T).Context", Method, 24, ""}, + {"(*T).Deadline", Method, 15, ""}, + {"(*T).Error", Method, 0, ""}, + {"(*T).Errorf", Method, 0, ""}, + {"(*T).Fail", Method, 0, ""}, + {"(*T).FailNow", Method, 0, ""}, + {"(*T).Failed", Method, 0, ""}, + {"(*T).Fatal", Method, 0, ""}, + {"(*T).Fatalf", Method, 0, ""}, + {"(*T).Helper", Method, 9, ""}, + {"(*T).Log", Method, 0, ""}, + {"(*T).Logf", Method, 0, ""}, + {"(*T).Name", Method, 8, ""}, + {"(*T).Parallel", Method, 0, ""}, + {"(*T).Run", Method, 7, ""}, + {"(*T).Setenv", Method, 17, ""}, + {"(*T).Skip", Method, 1, ""}, + {"(*T).SkipNow", Method, 1, ""}, + {"(*T).Skipf", Method, 1, ""}, + {"(*T).Skipped", Method, 1, ""}, + {"(*T).TempDir", Method, 15, ""}, + {"(BenchmarkResult).AllocedBytesPerOp", Method, 1, ""}, + {"(BenchmarkResult).AllocsPerOp", Method, 1, ""}, + {"(BenchmarkResult).MemString", Method, 1, ""}, + {"(BenchmarkResult).NsPerOp", Method, 0, ""}, + {"(BenchmarkResult).String", Method, 0, ""}, + {"AllocsPerRun", Func, 1, "func(runs int, f func()) (avg float64)"}, + {"B", Type, 0, ""}, + {"B.N", Field, 0, ""}, + {"Benchmark", Func, 0, "func(f func(b *B)) BenchmarkResult"}, + {"BenchmarkResult", Type, 0, ""}, + {"BenchmarkResult.Bytes", Field, 0, ""}, + {"BenchmarkResult.Extra", Field, 13, ""}, + {"BenchmarkResult.MemAllocs", Field, 1, ""}, + {"BenchmarkResult.MemBytes", Field, 1, ""}, + {"BenchmarkResult.N", Field, 0, ""}, + {"BenchmarkResult.T", Field, 0, ""}, + {"Cover", Type, 2, ""}, + {"Cover.Blocks", Field, 2, ""}, + {"Cover.Counters", Field, 2, ""}, + {"Cover.CoveredPackages", Field, 2, ""}, + {"Cover.Mode", Field, 2, ""}, + {"CoverBlock", Type, 2, ""}, + {"CoverBlock.Col0", Field, 2, ""}, + {"CoverBlock.Col1", Field, 2, ""}, + {"CoverBlock.Line0", Field, 2, ""}, + {"CoverBlock.Line1", Field, 2, ""}, + {"CoverBlock.Stmts", Field, 2, ""}, + {"CoverMode", Func, 8, "func() string"}, + {"Coverage", Func, 4, "func() float64"}, + {"F", Type, 18, ""}, + {"Init", Func, 13, "func()"}, + {"InternalBenchmark", Type, 0, ""}, + {"InternalBenchmark.F", Field, 0, ""}, + {"InternalBenchmark.Name", Field, 0, ""}, + {"InternalExample", Type, 0, ""}, + {"InternalExample.F", Field, 0, ""}, + {"InternalExample.Name", Field, 0, ""}, + {"InternalExample.Output", Field, 0, ""}, + {"InternalExample.Unordered", Field, 7, ""}, + {"InternalFuzzTarget", Type, 18, ""}, + {"InternalFuzzTarget.Fn", Field, 18, ""}, + {"InternalFuzzTarget.Name", Field, 18, ""}, + {"InternalTest", Type, 0, ""}, + {"InternalTest.F", Field, 0, ""}, + {"InternalTest.Name", Field, 0, ""}, + {"M", Type, 4, ""}, + {"Main", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest, benchmarks []InternalBenchmark, examples []InternalExample)"}, + {"MainStart", Func, 4, "func(deps testDeps, tests []InternalTest, benchmarks []InternalBenchmark, fuzzTargets []InternalFuzzTarget, examples []InternalExample) *M"}, + {"PB", Type, 3, ""}, + {"RegisterCover", Func, 2, "func(c Cover)"}, + {"RunBenchmarks", Func, 0, "func(matchString func(pat string, str string) (bool, error), benchmarks []InternalBenchmark)"}, + {"RunExamples", Func, 0, "func(matchString func(pat string, str string) (bool, error), examples []InternalExample) (ok bool)"}, + {"RunTests", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest) (ok bool)"}, + {"Short", Func, 0, "func() bool"}, + {"T", Type, 0, ""}, + {"TB", Type, 2, ""}, + {"Testing", Func, 21, "func() bool"}, + {"Verbose", Func, 1, "func() bool"}, + }, + "testing/fstest": { + {"(MapFS).Glob", Method, 16, ""}, + {"(MapFS).Lstat", Method, 25, ""}, + {"(MapFS).Open", Method, 16, ""}, + {"(MapFS).ReadDir", Method, 16, ""}, + {"(MapFS).ReadFile", Method, 16, ""}, + {"(MapFS).ReadLink", Method, 25, ""}, + {"(MapFS).Stat", Method, 16, ""}, + {"(MapFS).Sub", Method, 16, ""}, + {"MapFS", Type, 16, ""}, + {"MapFile", Type, 16, ""}, + {"MapFile.Data", Field, 16, ""}, + {"MapFile.ModTime", Field, 16, ""}, + {"MapFile.Mode", Field, 16, ""}, + {"MapFile.Sys", Field, 16, ""}, + {"TestFS", Func, 16, "func(fsys fs.FS, expected ...string) error"}, + }, + "testing/iotest": { + {"DataErrReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"ErrReader", Func, 16, "func(err error) io.Reader"}, + {"ErrTimeout", Var, 0, ""}, + {"HalfReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"NewReadLogger", Func, 0, "func(prefix string, r io.Reader) io.Reader"}, + {"NewWriteLogger", Func, 0, "func(prefix string, w io.Writer) io.Writer"}, + {"OneByteReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"TestReader", Func, 16, "func(r io.Reader, content []byte) error"}, + {"TimeoutReader", Func, 0, "func(r io.Reader) io.Reader"}, + {"TruncateWriter", Func, 0, "func(w io.Writer, n int64) io.Writer"}, + }, + "testing/quick": { + {"(*CheckEqualError).Error", Method, 0, ""}, + {"(*CheckError).Error", Method, 0, ""}, + {"(SetupError).Error", Method, 0, ""}, + {"Check", Func, 0, "func(f any, config *Config) error"}, + {"CheckEqual", Func, 0, "func(f any, g any, config *Config) error"}, + {"CheckEqualError", Type, 0, ""}, + {"CheckEqualError.CheckError", Field, 0, ""}, + {"CheckEqualError.Out1", Field, 0, ""}, + {"CheckEqualError.Out2", Field, 0, ""}, + {"CheckError", Type, 0, ""}, + {"CheckError.Count", Field, 0, ""}, + {"CheckError.In", Field, 0, ""}, + {"Config", Type, 0, ""}, + {"Config.MaxCount", Field, 0, ""}, + {"Config.MaxCountScale", Field, 0, ""}, + {"Config.Rand", Field, 0, ""}, + {"Config.Values", Field, 0, ""}, + {"Generator", Type, 0, ""}, + {"SetupError", Type, 0, ""}, + {"Value", Func, 0, "func(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)"}, + }, + "testing/slogtest": { + {"Run", Func, 22, "func(t *testing.T, newHandler func(*testing.T) slog.Handler, result func(*testing.T) map[string]any)"}, + {"TestHandler", Func, 21, "func(h slog.Handler, results func() []map[string]any) error"}, + }, + "text/scanner": { + {"(*Position).IsValid", Method, 0, ""}, + {"(*Scanner).Init", Method, 0, ""}, + {"(*Scanner).IsValid", Method, 0, ""}, + {"(*Scanner).Next", Method, 0, ""}, + {"(*Scanner).Peek", Method, 0, ""}, + {"(*Scanner).Pos", Method, 0, ""}, + {"(*Scanner).Scan", Method, 0, ""}, + {"(*Scanner).TokenText", Method, 0, ""}, + {"(Position).String", Method, 0, ""}, + {"(Scanner).String", Method, 0, ""}, + {"Char", Const, 0, ""}, + {"Comment", Const, 0, ""}, + {"EOF", Const, 0, ""}, + {"Float", Const, 0, ""}, + {"GoTokens", Const, 0, ""}, + {"GoWhitespace", Const, 0, ""}, + {"Ident", Const, 0, ""}, + {"Int", Const, 0, ""}, + {"Position", Type, 0, ""}, + {"Position.Column", Field, 0, ""}, + {"Position.Filename", Field, 0, ""}, + {"Position.Line", Field, 0, ""}, + {"Position.Offset", Field, 0, ""}, + {"RawString", Const, 0, ""}, + {"ScanChars", Const, 0, ""}, + {"ScanComments", Const, 0, ""}, + {"ScanFloats", Const, 0, ""}, + {"ScanIdents", Const, 0, ""}, + {"ScanInts", Const, 0, ""}, + {"ScanRawStrings", Const, 0, ""}, + {"ScanStrings", Const, 0, ""}, + {"Scanner", Type, 0, ""}, + {"Scanner.Error", Field, 0, ""}, + {"Scanner.ErrorCount", Field, 0, ""}, + {"Scanner.IsIdentRune", Field, 4, ""}, + {"Scanner.Mode", Field, 0, ""}, + {"Scanner.Position", Field, 0, ""}, + {"Scanner.Whitespace", Field, 0, ""}, + {"SkipComments", Const, 0, ""}, + {"String", Const, 0, ""}, + {"TokenString", Func, 0, "func(tok rune) string"}, + }, + "text/tabwriter": { + {"(*Writer).Flush", Method, 0, ""}, + {"(*Writer).Init", Method, 0, ""}, + {"(*Writer).Write", Method, 0, ""}, + {"AlignRight", Const, 0, ""}, + {"Debug", Const, 0, ""}, + {"DiscardEmptyColumns", Const, 0, ""}, + {"Escape", Const, 0, ""}, + {"FilterHTML", Const, 0, ""}, + {"NewWriter", Func, 0, "func(output io.Writer, minwidth int, tabwidth int, padding int, padchar byte, flags uint) *Writer"}, + {"StripEscape", Const, 0, ""}, + {"TabIndent", Const, 0, ""}, + {"Writer", Type, 0, ""}, + }, + "text/template": { + {"(*Template).AddParseTree", Method, 0, ""}, + {"(*Template).Clone", Method, 0, ""}, + {"(*Template).DefinedTemplates", Method, 5, ""}, + {"(*Template).Delims", Method, 0, ""}, + {"(*Template).Execute", Method, 0, ""}, + {"(*Template).ExecuteTemplate", Method, 0, ""}, + {"(*Template).Funcs", Method, 0, ""}, + {"(*Template).Lookup", Method, 0, ""}, + {"(*Template).Name", Method, 0, ""}, + {"(*Template).New", Method, 0, ""}, + {"(*Template).Option", Method, 5, ""}, + {"(*Template).Parse", Method, 0, ""}, + {"(*Template).ParseFS", Method, 16, ""}, + {"(*Template).ParseFiles", Method, 0, ""}, + {"(*Template).ParseGlob", Method, 0, ""}, + {"(*Template).Templates", Method, 0, ""}, + {"(ExecError).Error", Method, 6, ""}, + {"(ExecError).Unwrap", Method, 13, ""}, + {"(Template).Copy", Method, 2, ""}, + {"(Template).ErrorContext", Method, 1, ""}, + {"ExecError", Type, 6, ""}, + {"ExecError.Err", Field, 6, ""}, + {"ExecError.Name", Field, 6, ""}, + {"FuncMap", Type, 0, ""}, + {"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"}, + {"HTMLEscapeString", Func, 0, "func(s string) string"}, + {"HTMLEscaper", Func, 0, "func(args ...any) string"}, + {"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"}, + {"JSEscape", Func, 0, "func(w io.Writer, b []byte)"}, + {"JSEscapeString", Func, 0, "func(s string) string"}, + {"JSEscaper", Func, 0, "func(args ...any) string"}, + {"Must", Func, 0, "func(t *Template, err error) *Template"}, + {"New", Func, 0, "func(name string) *Template"}, + {"ParseFS", Func, 16, "func(fsys fs.FS, patterns ...string) (*Template, error)"}, + {"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"}, + {"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"}, + {"Template", Type, 0, ""}, + {"Template.Tree", Field, 0, ""}, + {"URLQueryEscaper", Func, 0, "func(args ...any) string"}, + }, + "text/template/parse": { + {"(*ActionNode).Copy", Method, 0, ""}, + {"(*ActionNode).String", Method, 0, ""}, + {"(*BoolNode).Copy", Method, 0, ""}, + {"(*BoolNode).String", Method, 0, ""}, + {"(*BranchNode).Copy", Method, 4, ""}, + {"(*BranchNode).String", Method, 0, ""}, + {"(*BreakNode).Copy", Method, 18, ""}, + {"(*BreakNode).String", Method, 18, ""}, + {"(*ChainNode).Add", Method, 1, ""}, + {"(*ChainNode).Copy", Method, 1, ""}, + {"(*ChainNode).String", Method, 1, ""}, + {"(*CommandNode).Copy", Method, 0, ""}, + {"(*CommandNode).String", Method, 0, ""}, + {"(*CommentNode).Copy", Method, 16, ""}, + {"(*CommentNode).String", Method, 16, ""}, + {"(*ContinueNode).Copy", Method, 18, ""}, + {"(*ContinueNode).String", Method, 18, ""}, + {"(*DotNode).Copy", Method, 0, ""}, + {"(*DotNode).String", Method, 0, ""}, + {"(*DotNode).Type", Method, 0, ""}, + {"(*FieldNode).Copy", Method, 0, ""}, + {"(*FieldNode).String", Method, 0, ""}, + {"(*IdentifierNode).Copy", Method, 0, ""}, + {"(*IdentifierNode).SetPos", Method, 1, ""}, + {"(*IdentifierNode).SetTree", Method, 4, ""}, + {"(*IdentifierNode).String", Method, 0, ""}, + {"(*IfNode).Copy", Method, 0, ""}, + {"(*IfNode).String", Method, 0, ""}, + {"(*ListNode).Copy", Method, 0, ""}, + {"(*ListNode).CopyList", Method, 0, ""}, + {"(*ListNode).String", Method, 0, ""}, + {"(*NilNode).Copy", Method, 1, ""}, + {"(*NilNode).String", Method, 1, ""}, + {"(*NilNode).Type", Method, 1, ""}, + {"(*NumberNode).Copy", Method, 0, ""}, + {"(*NumberNode).String", Method, 0, ""}, + {"(*PipeNode).Copy", Method, 0, ""}, + {"(*PipeNode).CopyPipe", Method, 0, ""}, + {"(*PipeNode).String", Method, 0, ""}, + {"(*RangeNode).Copy", Method, 0, ""}, + {"(*RangeNode).String", Method, 0, ""}, + {"(*StringNode).Copy", Method, 0, ""}, + {"(*StringNode).String", Method, 0, ""}, + {"(*TemplateNode).Copy", Method, 0, ""}, + {"(*TemplateNode).String", Method, 0, ""}, + {"(*TextNode).Copy", Method, 0, ""}, + {"(*TextNode).String", Method, 0, ""}, + {"(*Tree).Copy", Method, 2, ""}, + {"(*Tree).ErrorContext", Method, 1, ""}, + {"(*Tree).Parse", Method, 0, ""}, + {"(*VariableNode).Copy", Method, 0, ""}, + {"(*VariableNode).String", Method, 0, ""}, + {"(*WithNode).Copy", Method, 0, ""}, + {"(*WithNode).String", Method, 0, ""}, + {"(ActionNode).Position", Method, 1, ""}, + {"(ActionNode).Type", Method, 0, ""}, + {"(BoolNode).Position", Method, 1, ""}, + {"(BoolNode).Type", Method, 0, ""}, + {"(BranchNode).Position", Method, 1, ""}, + {"(BranchNode).Type", Method, 0, ""}, + {"(BreakNode).Position", Method, 18, ""}, + {"(BreakNode).Type", Method, 18, ""}, + {"(ChainNode).Position", Method, 1, ""}, + {"(ChainNode).Type", Method, 1, ""}, + {"(CommandNode).Position", Method, 1, ""}, + {"(CommandNode).Type", Method, 0, ""}, + {"(CommentNode).Position", Method, 16, ""}, + {"(CommentNode).Type", Method, 16, ""}, + {"(ContinueNode).Position", Method, 18, ""}, + {"(ContinueNode).Type", Method, 18, ""}, + {"(DotNode).Position", Method, 1, ""}, + {"(FieldNode).Position", Method, 1, ""}, + {"(FieldNode).Type", Method, 0, ""}, + {"(IdentifierNode).Position", Method, 1, ""}, + {"(IdentifierNode).Type", Method, 0, ""}, + {"(IfNode).Position", Method, 1, ""}, + {"(IfNode).Type", Method, 0, ""}, + {"(ListNode).Position", Method, 1, ""}, + {"(ListNode).Type", Method, 0, ""}, + {"(NilNode).Position", Method, 1, ""}, + {"(NodeType).Type", Method, 0, ""}, + {"(NumberNode).Position", Method, 1, ""}, + {"(NumberNode).Type", Method, 0, ""}, + {"(PipeNode).Position", Method, 1, ""}, + {"(PipeNode).Type", Method, 0, ""}, + {"(Pos).Position", Method, 1, ""}, + {"(RangeNode).Position", Method, 1, ""}, + {"(RangeNode).Type", Method, 0, ""}, + {"(StringNode).Position", Method, 1, ""}, + {"(StringNode).Type", Method, 0, ""}, + {"(TemplateNode).Position", Method, 1, ""}, + {"(TemplateNode).Type", Method, 0, ""}, + {"(TextNode).Position", Method, 1, ""}, + {"(TextNode).Type", Method, 0, ""}, + {"(VariableNode).Position", Method, 1, ""}, + {"(VariableNode).Type", Method, 0, ""}, + {"(WithNode).Position", Method, 1, ""}, + {"(WithNode).Type", Method, 0, ""}, + {"ActionNode", Type, 0, ""}, + {"ActionNode.Line", Field, 0, ""}, + {"ActionNode.NodeType", Field, 0, ""}, + {"ActionNode.Pipe", Field, 0, ""}, + {"ActionNode.Pos", Field, 1, ""}, + {"BoolNode", Type, 0, ""}, + {"BoolNode.NodeType", Field, 0, ""}, + {"BoolNode.Pos", Field, 1, ""}, + {"BoolNode.True", Field, 0, ""}, + {"BranchNode", Type, 0, ""}, + {"BranchNode.ElseList", Field, 0, ""}, + {"BranchNode.Line", Field, 0, ""}, + {"BranchNode.List", Field, 0, ""}, + {"BranchNode.NodeType", Field, 0, ""}, + {"BranchNode.Pipe", Field, 0, ""}, + {"BranchNode.Pos", Field, 1, ""}, + {"BreakNode", Type, 18, ""}, + {"BreakNode.Line", Field, 18, ""}, + {"BreakNode.NodeType", Field, 18, ""}, + {"BreakNode.Pos", Field, 18, ""}, + {"ChainNode", Type, 1, ""}, + {"ChainNode.Field", Field, 1, ""}, + {"ChainNode.Node", Field, 1, ""}, + {"ChainNode.NodeType", Field, 1, ""}, + {"ChainNode.Pos", Field, 1, ""}, + {"CommandNode", Type, 0, ""}, + {"CommandNode.Args", Field, 0, ""}, + {"CommandNode.NodeType", Field, 0, ""}, + {"CommandNode.Pos", Field, 1, ""}, + {"CommentNode", Type, 16, ""}, + {"CommentNode.NodeType", Field, 16, ""}, + {"CommentNode.Pos", Field, 16, ""}, + {"CommentNode.Text", Field, 16, ""}, + {"ContinueNode", Type, 18, ""}, + {"ContinueNode.Line", Field, 18, ""}, + {"ContinueNode.NodeType", Field, 18, ""}, + {"ContinueNode.Pos", Field, 18, ""}, + {"DotNode", Type, 0, ""}, + {"DotNode.NodeType", Field, 4, ""}, + {"DotNode.Pos", Field, 1, ""}, + {"FieldNode", Type, 0, ""}, + {"FieldNode.Ident", Field, 0, ""}, + {"FieldNode.NodeType", Field, 0, ""}, + {"FieldNode.Pos", Field, 1, ""}, + {"IdentifierNode", Type, 0, ""}, + {"IdentifierNode.Ident", Field, 0, ""}, + {"IdentifierNode.NodeType", Field, 0, ""}, + {"IdentifierNode.Pos", Field, 1, ""}, + {"IfNode", Type, 0, ""}, + {"IfNode.BranchNode", Field, 0, ""}, + {"IsEmptyTree", Func, 0, "func(n Node) bool"}, + {"ListNode", Type, 0, ""}, + {"ListNode.NodeType", Field, 0, ""}, + {"ListNode.Nodes", Field, 0, ""}, + {"ListNode.Pos", Field, 1, ""}, + {"Mode", Type, 16, ""}, + {"New", Func, 0, "func(name string, funcs ...map[string]any) *Tree"}, + {"NewIdentifier", Func, 0, "func(ident string) *IdentifierNode"}, + {"NilNode", Type, 1, ""}, + {"NilNode.NodeType", Field, 4, ""}, + {"NilNode.Pos", Field, 1, ""}, + {"Node", Type, 0, ""}, + {"NodeAction", Const, 0, ""}, + {"NodeBool", Const, 0, ""}, + {"NodeBreak", Const, 18, ""}, + {"NodeChain", Const, 1, ""}, + {"NodeCommand", Const, 0, ""}, + {"NodeComment", Const, 16, ""}, + {"NodeContinue", Const, 18, ""}, + {"NodeDot", Const, 0, ""}, + {"NodeField", Const, 0, ""}, + {"NodeIdentifier", Const, 0, ""}, + {"NodeIf", Const, 0, ""}, + {"NodeList", Const, 0, ""}, + {"NodeNil", Const, 1, ""}, + {"NodeNumber", Const, 0, ""}, + {"NodePipe", Const, 0, ""}, + {"NodeRange", Const, 0, ""}, + {"NodeString", Const, 0, ""}, + {"NodeTemplate", Const, 0, ""}, + {"NodeText", Const, 0, ""}, + {"NodeType", Type, 0, ""}, + {"NodeVariable", Const, 0, ""}, + {"NodeWith", Const, 0, ""}, + {"NumberNode", Type, 0, ""}, + {"NumberNode.Complex128", Field, 0, ""}, + {"NumberNode.Float64", Field, 0, ""}, + {"NumberNode.Int64", Field, 0, ""}, + {"NumberNode.IsComplex", Field, 0, ""}, + {"NumberNode.IsFloat", Field, 0, ""}, + {"NumberNode.IsInt", Field, 0, ""}, + {"NumberNode.IsUint", Field, 0, ""}, + {"NumberNode.NodeType", Field, 0, ""}, + {"NumberNode.Pos", Field, 1, ""}, + {"NumberNode.Text", Field, 0, ""}, + {"NumberNode.Uint64", Field, 0, ""}, + {"Parse", Func, 0, "func(name string, text string, leftDelim string, rightDelim string, funcs ...map[string]any) (map[string]*Tree, error)"}, + {"ParseComments", Const, 16, ""}, + {"PipeNode", Type, 0, ""}, + {"PipeNode.Cmds", Field, 0, ""}, + {"PipeNode.Decl", Field, 0, ""}, + {"PipeNode.IsAssign", Field, 11, ""}, + {"PipeNode.Line", Field, 0, ""}, + {"PipeNode.NodeType", Field, 0, ""}, + {"PipeNode.Pos", Field, 1, ""}, + {"Pos", Type, 1, ""}, + {"RangeNode", Type, 0, ""}, + {"RangeNode.BranchNode", Field, 0, ""}, + {"SkipFuncCheck", Const, 17, ""}, + {"StringNode", Type, 0, ""}, + {"StringNode.NodeType", Field, 0, ""}, + {"StringNode.Pos", Field, 1, ""}, + {"StringNode.Quoted", Field, 0, ""}, + {"StringNode.Text", Field, 0, ""}, + {"TemplateNode", Type, 0, ""}, + {"TemplateNode.Line", Field, 0, ""}, + {"TemplateNode.Name", Field, 0, ""}, + {"TemplateNode.NodeType", Field, 0, ""}, + {"TemplateNode.Pipe", Field, 0, ""}, + {"TemplateNode.Pos", Field, 1, ""}, + {"TextNode", Type, 0, ""}, + {"TextNode.NodeType", Field, 0, ""}, + {"TextNode.Pos", Field, 1, ""}, + {"TextNode.Text", Field, 0, ""}, + {"Tree", Type, 0, ""}, + {"Tree.Mode", Field, 16, ""}, + {"Tree.Name", Field, 0, ""}, + {"Tree.ParseName", Field, 1, ""}, + {"Tree.Root", Field, 0, ""}, + {"VariableNode", Type, 0, ""}, + {"VariableNode.Ident", Field, 0, ""}, + {"VariableNode.NodeType", Field, 0, ""}, + {"VariableNode.Pos", Field, 1, ""}, + {"WithNode", Type, 0, ""}, + {"WithNode.BranchNode", Field, 0, ""}, + }, + "time": { + {"(*Location).String", Method, 0, ""}, + {"(*ParseError).Error", Method, 0, ""}, + {"(*Ticker).Reset", Method, 15, ""}, + {"(*Ticker).Stop", Method, 0, ""}, + {"(*Time).GobDecode", Method, 0, ""}, + {"(*Time).UnmarshalBinary", Method, 2, ""}, + {"(*Time).UnmarshalJSON", Method, 0, ""}, + {"(*Time).UnmarshalText", Method, 2, ""}, + {"(*Timer).Reset", Method, 1, ""}, + {"(*Timer).Stop", Method, 0, ""}, + {"(Duration).Abs", Method, 19, ""}, + {"(Duration).Hours", Method, 0, ""}, + {"(Duration).Microseconds", Method, 13, ""}, + {"(Duration).Milliseconds", Method, 13, ""}, + {"(Duration).Minutes", Method, 0, ""}, + {"(Duration).Nanoseconds", Method, 0, ""}, + {"(Duration).Round", Method, 9, ""}, + {"(Duration).Seconds", Method, 0, ""}, + {"(Duration).String", Method, 0, ""}, + {"(Duration).Truncate", Method, 9, ""}, + {"(Month).String", Method, 0, ""}, + {"(Time).Add", Method, 0, ""}, + {"(Time).AddDate", Method, 0, ""}, + {"(Time).After", Method, 0, ""}, + {"(Time).AppendBinary", Method, 24, ""}, + {"(Time).AppendFormat", Method, 5, ""}, + {"(Time).AppendText", Method, 24, ""}, + {"(Time).Before", Method, 0, ""}, + {"(Time).Clock", Method, 0, ""}, + {"(Time).Compare", Method, 20, ""}, + {"(Time).Date", Method, 0, ""}, + {"(Time).Day", Method, 0, ""}, + {"(Time).Equal", Method, 0, ""}, + {"(Time).Format", Method, 0, ""}, + {"(Time).GoString", Method, 17, ""}, + {"(Time).GobEncode", Method, 0, ""}, + {"(Time).Hour", Method, 0, ""}, + {"(Time).ISOWeek", Method, 0, ""}, + {"(Time).In", Method, 0, ""}, + {"(Time).IsDST", Method, 17, ""}, + {"(Time).IsZero", Method, 0, ""}, + {"(Time).Local", Method, 0, ""}, + {"(Time).Location", Method, 0, ""}, + {"(Time).MarshalBinary", Method, 2, ""}, + {"(Time).MarshalJSON", Method, 0, ""}, + {"(Time).MarshalText", Method, 2, ""}, + {"(Time).Minute", Method, 0, ""}, + {"(Time).Month", Method, 0, ""}, + {"(Time).Nanosecond", Method, 0, ""}, + {"(Time).Round", Method, 1, ""}, + {"(Time).Second", Method, 0, ""}, + {"(Time).String", Method, 0, ""}, + {"(Time).Sub", Method, 0, ""}, + {"(Time).Truncate", Method, 1, ""}, + {"(Time).UTC", Method, 0, ""}, + {"(Time).Unix", Method, 0, ""}, + {"(Time).UnixMicro", Method, 17, ""}, + {"(Time).UnixMilli", Method, 17, ""}, + {"(Time).UnixNano", Method, 0, ""}, + {"(Time).Weekday", Method, 0, ""}, + {"(Time).Year", Method, 0, ""}, + {"(Time).YearDay", Method, 1, ""}, + {"(Time).Zone", Method, 0, ""}, + {"(Time).ZoneBounds", Method, 19, ""}, + {"(Weekday).String", Method, 0, ""}, + {"ANSIC", Const, 0, ""}, + {"After", Func, 0, "func(d Duration) <-chan Time"}, + {"AfterFunc", Func, 0, "func(d Duration, f func()) *Timer"}, + {"April", Const, 0, ""}, + {"August", Const, 0, ""}, + {"Date", Func, 0, "func(year int, month Month, day int, hour int, min int, sec int, nsec int, loc *Location) Time"}, + {"DateOnly", Const, 20, ""}, + {"DateTime", Const, 20, ""}, + {"December", Const, 0, ""}, + {"Duration", Type, 0, ""}, + {"February", Const, 0, ""}, + {"FixedZone", Func, 0, "func(name string, offset int) *Location"}, + {"Friday", Const, 0, ""}, + {"Hour", Const, 0, ""}, + {"January", Const, 0, ""}, + {"July", Const, 0, ""}, + {"June", Const, 0, ""}, + {"Kitchen", Const, 0, ""}, + {"Layout", Const, 17, ""}, + {"LoadLocation", Func, 0, "func(name string) (*Location, error)"}, + {"LoadLocationFromTZData", Func, 10, "func(name string, data []byte) (*Location, error)"}, + {"Local", Var, 0, ""}, + {"Location", Type, 0, ""}, + {"March", Const, 0, ""}, + {"May", Const, 0, ""}, + {"Microsecond", Const, 0, ""}, + {"Millisecond", Const, 0, ""}, + {"Minute", Const, 0, ""}, + {"Monday", Const, 0, ""}, + {"Month", Type, 0, ""}, + {"Nanosecond", Const, 0, ""}, + {"NewTicker", Func, 0, "func(d Duration) *Ticker"}, + {"NewTimer", Func, 0, "func(d Duration) *Timer"}, + {"November", Const, 0, ""}, + {"Now", Func, 0, "func() Time"}, + {"October", Const, 0, ""}, + {"Parse", Func, 0, "func(layout string, value string) (Time, error)"}, + {"ParseDuration", Func, 0, "func(s string) (Duration, error)"}, + {"ParseError", Type, 0, ""}, + {"ParseError.Layout", Field, 0, ""}, + {"ParseError.LayoutElem", Field, 0, ""}, + {"ParseError.Message", Field, 0, ""}, + {"ParseError.Value", Field, 0, ""}, + {"ParseError.ValueElem", Field, 0, ""}, + {"ParseInLocation", Func, 1, "func(layout string, value string, loc *Location) (Time, error)"}, + {"RFC1123", Const, 0, ""}, + {"RFC1123Z", Const, 0, ""}, + {"RFC3339", Const, 0, ""}, + {"RFC3339Nano", Const, 0, ""}, + {"RFC822", Const, 0, ""}, + {"RFC822Z", Const, 0, ""}, + {"RFC850", Const, 0, ""}, + {"RubyDate", Const, 0, ""}, + {"Saturday", Const, 0, ""}, + {"Second", Const, 0, ""}, + {"September", Const, 0, ""}, + {"Since", Func, 0, "func(t Time) Duration"}, + {"Sleep", Func, 0, "func(d Duration)"}, + {"Stamp", Const, 0, ""}, + {"StampMicro", Const, 0, ""}, + {"StampMilli", Const, 0, ""}, + {"StampNano", Const, 0, ""}, + {"Sunday", Const, 0, ""}, + {"Thursday", Const, 0, ""}, + {"Tick", Func, 0, "func(d Duration) <-chan Time"}, + {"Ticker", Type, 0, ""}, + {"Ticker.C", Field, 0, ""}, + {"Time", Type, 0, ""}, + {"TimeOnly", Const, 20, ""}, + {"Timer", Type, 0, ""}, + {"Timer.C", Field, 0, ""}, + {"Tuesday", Const, 0, ""}, + {"UTC", Var, 0, ""}, + {"Unix", Func, 0, "func(sec int64, nsec int64) Time"}, + {"UnixDate", Const, 0, ""}, + {"UnixMicro", Func, 17, "func(usec int64) Time"}, + {"UnixMilli", Func, 17, "func(msec int64) Time"}, + {"Until", Func, 8, "func(t Time) Duration"}, + {"Wednesday", Const, 0, ""}, + {"Weekday", Type, 0, ""}, + }, + "unicode": { + {"(SpecialCase).ToLower", Method, 0, ""}, + {"(SpecialCase).ToTitle", Method, 0, ""}, + {"(SpecialCase).ToUpper", Method, 0, ""}, + {"ASCII_Hex_Digit", Var, 0, ""}, + {"Adlam", Var, 7, ""}, + {"Ahom", Var, 5, ""}, + {"Anatolian_Hieroglyphs", Var, 5, ""}, + {"Arabic", Var, 0, ""}, + {"Armenian", Var, 0, ""}, + {"Avestan", Var, 0, ""}, + {"AzeriCase", Var, 0, ""}, + {"Balinese", Var, 0, ""}, + {"Bamum", Var, 0, ""}, + {"Bassa_Vah", Var, 4, ""}, + {"Batak", Var, 0, ""}, + {"Bengali", Var, 0, ""}, + {"Bhaiksuki", Var, 7, ""}, + {"Bidi_Control", Var, 0, ""}, + {"Bopomofo", Var, 0, ""}, + {"Brahmi", Var, 0, ""}, + {"Braille", Var, 0, ""}, + {"Buginese", Var, 0, ""}, + {"Buhid", Var, 0, ""}, + {"C", Var, 0, ""}, + {"Canadian_Aboriginal", Var, 0, ""}, + {"Carian", Var, 0, ""}, + {"CaseRange", Type, 0, ""}, + {"CaseRange.Delta", Field, 0, ""}, + {"CaseRange.Hi", Field, 0, ""}, + {"CaseRange.Lo", Field, 0, ""}, + {"CaseRanges", Var, 0, ""}, + {"Categories", Var, 0, ""}, + {"Caucasian_Albanian", Var, 4, ""}, + {"Cc", Var, 0, ""}, + {"Cf", Var, 0, ""}, + {"Chakma", Var, 1, ""}, + {"Cham", Var, 0, ""}, + {"Cherokee", Var, 0, ""}, + {"Chorasmian", Var, 16, ""}, + {"Co", Var, 0, ""}, + {"Common", Var, 0, ""}, + {"Coptic", Var, 0, ""}, + {"Cs", Var, 0, ""}, + {"Cuneiform", Var, 0, ""}, + {"Cypriot", Var, 0, ""}, + {"Cypro_Minoan", Var, 21, ""}, + {"Cyrillic", Var, 0, ""}, + {"Dash", Var, 0, ""}, + {"Deprecated", Var, 0, ""}, + {"Deseret", Var, 0, ""}, + {"Devanagari", Var, 0, ""}, + {"Diacritic", Var, 0, ""}, + {"Digit", Var, 0, ""}, + {"Dives_Akuru", Var, 16, ""}, + {"Dogra", Var, 13, ""}, + {"Duployan", Var, 4, ""}, + {"Egyptian_Hieroglyphs", Var, 0, ""}, + {"Elbasan", Var, 4, ""}, + {"Elymaic", Var, 14, ""}, + {"Ethiopic", Var, 0, ""}, + {"Extender", Var, 0, ""}, + {"FoldCategory", Var, 0, ""}, + {"FoldScript", Var, 0, ""}, + {"Georgian", Var, 0, ""}, + {"Glagolitic", Var, 0, ""}, + {"Gothic", Var, 0, ""}, + {"Grantha", Var, 4, ""}, + {"GraphicRanges", Var, 0, ""}, + {"Greek", Var, 0, ""}, + {"Gujarati", Var, 0, ""}, + {"Gunjala_Gondi", Var, 13, ""}, + {"Gurmukhi", Var, 0, ""}, + {"Han", Var, 0, ""}, + {"Hangul", Var, 0, ""}, + {"Hanifi_Rohingya", Var, 13, ""}, + {"Hanunoo", Var, 0, ""}, + {"Hatran", Var, 5, ""}, + {"Hebrew", Var, 0, ""}, + {"Hex_Digit", Var, 0, ""}, + {"Hiragana", Var, 0, ""}, + {"Hyphen", Var, 0, ""}, + {"IDS_Binary_Operator", Var, 0, ""}, + {"IDS_Trinary_Operator", Var, 0, ""}, + {"Ideographic", Var, 0, ""}, + {"Imperial_Aramaic", Var, 0, ""}, + {"In", Func, 2, "func(r rune, ranges ...*RangeTable) bool"}, + {"Inherited", Var, 0, ""}, + {"Inscriptional_Pahlavi", Var, 0, ""}, + {"Inscriptional_Parthian", Var, 0, ""}, + {"Is", Func, 0, "func(rangeTab *RangeTable, r rune) bool"}, + {"IsControl", Func, 0, "func(r rune) bool"}, + {"IsDigit", Func, 0, "func(r rune) bool"}, + {"IsGraphic", Func, 0, "func(r rune) bool"}, + {"IsLetter", Func, 0, "func(r rune) bool"}, + {"IsLower", Func, 0, "func(r rune) bool"}, + {"IsMark", Func, 0, "func(r rune) bool"}, + {"IsNumber", Func, 0, "func(r rune) bool"}, + {"IsOneOf", Func, 0, "func(ranges []*RangeTable, r rune) bool"}, + {"IsPrint", Func, 0, "func(r rune) bool"}, + {"IsPunct", Func, 0, "func(r rune) bool"}, + {"IsSpace", Func, 0, "func(r rune) bool"}, + {"IsSymbol", Func, 0, "func(r rune) bool"}, + {"IsTitle", Func, 0, "func(r rune) bool"}, + {"IsUpper", Func, 0, "func(r rune) bool"}, + {"Javanese", Var, 0, ""}, + {"Join_Control", Var, 0, ""}, + {"Kaithi", Var, 0, ""}, + {"Kannada", Var, 0, ""}, + {"Katakana", Var, 0, ""}, + {"Kawi", Var, 21, ""}, + {"Kayah_Li", Var, 0, ""}, + {"Kharoshthi", Var, 0, ""}, + {"Khitan_Small_Script", Var, 16, ""}, + {"Khmer", Var, 0, ""}, + {"Khojki", Var, 4, ""}, + {"Khudawadi", Var, 4, ""}, + {"L", Var, 0, ""}, + {"Lao", Var, 0, ""}, + {"Latin", Var, 0, ""}, + {"Lepcha", Var, 0, ""}, + {"Letter", Var, 0, ""}, + {"Limbu", Var, 0, ""}, + {"Linear_A", Var, 4, ""}, + {"Linear_B", Var, 0, ""}, + {"Lisu", Var, 0, ""}, + {"Ll", Var, 0, ""}, + {"Lm", Var, 0, ""}, + {"Lo", Var, 0, ""}, + {"Logical_Order_Exception", Var, 0, ""}, + {"Lower", Var, 0, ""}, + {"LowerCase", Const, 0, ""}, + {"Lt", Var, 0, ""}, + {"Lu", Var, 0, ""}, + {"Lycian", Var, 0, ""}, + {"Lydian", Var, 0, ""}, + {"M", Var, 0, ""}, + {"Mahajani", Var, 4, ""}, + {"Makasar", Var, 13, ""}, + {"Malayalam", Var, 0, ""}, + {"Mandaic", Var, 0, ""}, + {"Manichaean", Var, 4, ""}, + {"Marchen", Var, 7, ""}, + {"Mark", Var, 0, ""}, + {"Masaram_Gondi", Var, 10, ""}, + {"MaxASCII", Const, 0, ""}, + {"MaxCase", Const, 0, ""}, + {"MaxLatin1", Const, 0, ""}, + {"MaxRune", Const, 0, ""}, + {"Mc", Var, 0, ""}, + {"Me", Var, 0, ""}, + {"Medefaidrin", Var, 13, ""}, + {"Meetei_Mayek", Var, 0, ""}, + {"Mende_Kikakui", Var, 4, ""}, + {"Meroitic_Cursive", Var, 1, ""}, + {"Meroitic_Hieroglyphs", Var, 1, ""}, + {"Miao", Var, 1, ""}, + {"Mn", Var, 0, ""}, + {"Modi", Var, 4, ""}, + {"Mongolian", Var, 0, ""}, + {"Mro", Var, 4, ""}, + {"Multani", Var, 5, ""}, + {"Myanmar", Var, 0, ""}, + {"N", Var, 0, ""}, + {"Nabataean", Var, 4, ""}, + {"Nag_Mundari", Var, 21, ""}, + {"Nandinagari", Var, 14, ""}, + {"Nd", Var, 0, ""}, + {"New_Tai_Lue", Var, 0, ""}, + {"Newa", Var, 7, ""}, + {"Nko", Var, 0, ""}, + {"Nl", Var, 0, ""}, + {"No", Var, 0, ""}, + {"Noncharacter_Code_Point", Var, 0, ""}, + {"Number", Var, 0, ""}, + {"Nushu", Var, 10, ""}, + {"Nyiakeng_Puachue_Hmong", Var, 14, ""}, + {"Ogham", Var, 0, ""}, + {"Ol_Chiki", Var, 0, ""}, + {"Old_Hungarian", Var, 5, ""}, + {"Old_Italic", Var, 0, ""}, + {"Old_North_Arabian", Var, 4, ""}, + {"Old_Permic", Var, 4, ""}, + {"Old_Persian", Var, 0, ""}, + {"Old_Sogdian", Var, 13, ""}, + {"Old_South_Arabian", Var, 0, ""}, + {"Old_Turkic", Var, 0, ""}, + {"Old_Uyghur", Var, 21, ""}, + {"Oriya", Var, 0, ""}, + {"Osage", Var, 7, ""}, + {"Osmanya", Var, 0, ""}, + {"Other", Var, 0, ""}, + {"Other_Alphabetic", Var, 0, ""}, + {"Other_Default_Ignorable_Code_Point", Var, 0, ""}, + {"Other_Grapheme_Extend", Var, 0, ""}, + {"Other_ID_Continue", Var, 0, ""}, + {"Other_ID_Start", Var, 0, ""}, + {"Other_Lowercase", Var, 0, ""}, + {"Other_Math", Var, 0, ""}, + {"Other_Uppercase", Var, 0, ""}, + {"P", Var, 0, ""}, + {"Pahawh_Hmong", Var, 4, ""}, + {"Palmyrene", Var, 4, ""}, + {"Pattern_Syntax", Var, 0, ""}, + {"Pattern_White_Space", Var, 0, ""}, + {"Pau_Cin_Hau", Var, 4, ""}, + {"Pc", Var, 0, ""}, + {"Pd", Var, 0, ""}, + {"Pe", Var, 0, ""}, + {"Pf", Var, 0, ""}, + {"Phags_Pa", Var, 0, ""}, + {"Phoenician", Var, 0, ""}, + {"Pi", Var, 0, ""}, + {"Po", Var, 0, ""}, + {"Prepended_Concatenation_Mark", Var, 7, ""}, + {"PrintRanges", Var, 0, ""}, + {"Properties", Var, 0, ""}, + {"Ps", Var, 0, ""}, + {"Psalter_Pahlavi", Var, 4, ""}, + {"Punct", Var, 0, ""}, + {"Quotation_Mark", Var, 0, ""}, + {"Radical", Var, 0, ""}, + {"Range16", Type, 0, ""}, + {"Range16.Hi", Field, 0, ""}, + {"Range16.Lo", Field, 0, ""}, + {"Range16.Stride", Field, 0, ""}, + {"Range32", Type, 0, ""}, + {"Range32.Hi", Field, 0, ""}, + {"Range32.Lo", Field, 0, ""}, + {"Range32.Stride", Field, 0, ""}, + {"RangeTable", Type, 0, ""}, + {"RangeTable.LatinOffset", Field, 1, ""}, + {"RangeTable.R16", Field, 0, ""}, + {"RangeTable.R32", Field, 0, ""}, + {"Regional_Indicator", Var, 10, ""}, + {"Rejang", Var, 0, ""}, + {"ReplacementChar", Const, 0, ""}, + {"Runic", Var, 0, ""}, + {"S", Var, 0, ""}, + {"STerm", Var, 0, ""}, + {"Samaritan", Var, 0, ""}, + {"Saurashtra", Var, 0, ""}, + {"Sc", Var, 0, ""}, + {"Scripts", Var, 0, ""}, + {"Sentence_Terminal", Var, 7, ""}, + {"Sharada", Var, 1, ""}, + {"Shavian", Var, 0, ""}, + {"Siddham", Var, 4, ""}, + {"SignWriting", Var, 5, ""}, + {"SimpleFold", Func, 0, "func(r rune) rune"}, + {"Sinhala", Var, 0, ""}, + {"Sk", Var, 0, ""}, + {"Sm", Var, 0, ""}, + {"So", Var, 0, ""}, + {"Soft_Dotted", Var, 0, ""}, + {"Sogdian", Var, 13, ""}, + {"Sora_Sompeng", Var, 1, ""}, + {"Soyombo", Var, 10, ""}, + {"Space", Var, 0, ""}, + {"SpecialCase", Type, 0, ""}, + {"Sundanese", Var, 0, ""}, + {"Syloti_Nagri", Var, 0, ""}, + {"Symbol", Var, 0, ""}, + {"Syriac", Var, 0, ""}, + {"Tagalog", Var, 0, ""}, + {"Tagbanwa", Var, 0, ""}, + {"Tai_Le", Var, 0, ""}, + {"Tai_Tham", Var, 0, ""}, + {"Tai_Viet", Var, 0, ""}, + {"Takri", Var, 1, ""}, + {"Tamil", Var, 0, ""}, + {"Tangsa", Var, 21, ""}, + {"Tangut", Var, 7, ""}, + {"Telugu", Var, 0, ""}, + {"Terminal_Punctuation", Var, 0, ""}, + {"Thaana", Var, 0, ""}, + {"Thai", Var, 0, ""}, + {"Tibetan", Var, 0, ""}, + {"Tifinagh", Var, 0, ""}, + {"Tirhuta", Var, 4, ""}, + {"Title", Var, 0, ""}, + {"TitleCase", Const, 0, ""}, + {"To", Func, 0, "func(_case int, r rune) rune"}, + {"ToLower", Func, 0, "func(r rune) rune"}, + {"ToTitle", Func, 0, "func(r rune) rune"}, + {"ToUpper", Func, 0, "func(r rune) rune"}, + {"Toto", Var, 21, ""}, + {"TurkishCase", Var, 0, ""}, + {"Ugaritic", Var, 0, ""}, + {"Unified_Ideograph", Var, 0, ""}, + {"Upper", Var, 0, ""}, + {"UpperCase", Const, 0, ""}, + {"UpperLower", Const, 0, ""}, + {"Vai", Var, 0, ""}, + {"Variation_Selector", Var, 0, ""}, + {"Version", Const, 0, ""}, + {"Vithkuqi", Var, 21, ""}, + {"Wancho", Var, 14, ""}, + {"Warang_Citi", Var, 4, ""}, + {"White_Space", Var, 0, ""}, + {"Yezidi", Var, 16, ""}, + {"Yi", Var, 0, ""}, + {"Z", Var, 0, ""}, + {"Zanabazar_Square", Var, 10, ""}, + {"Zl", Var, 0, ""}, + {"Zp", Var, 0, ""}, + {"Zs", Var, 0, ""}, + }, + "unicode/utf16": { + {"AppendRune", Func, 20, "func(a []uint16, r rune) []uint16"}, + {"Decode", Func, 0, "func(s []uint16) []rune"}, + {"DecodeRune", Func, 0, "func(r1 rune, r2 rune) rune"}, + {"Encode", Func, 0, "func(s []rune) []uint16"}, + {"EncodeRune", Func, 0, "func(r rune) (r1 rune, r2 rune)"}, + {"IsSurrogate", Func, 0, "func(r rune) bool"}, + {"RuneLen", Func, 23, "func(r rune) int"}, + }, + "unicode/utf8": { + {"AppendRune", Func, 18, "func(p []byte, r rune) []byte"}, + {"DecodeLastRune", Func, 0, "func(p []byte) (r rune, size int)"}, + {"DecodeLastRuneInString", Func, 0, "func(s string) (r rune, size int)"}, + {"DecodeRune", Func, 0, "func(p []byte) (r rune, size int)"}, + {"DecodeRuneInString", Func, 0, "func(s string) (r rune, size int)"}, + {"EncodeRune", Func, 0, "func(p []byte, r rune) int"}, + {"FullRune", Func, 0, "func(p []byte) bool"}, + {"FullRuneInString", Func, 0, "func(s string) bool"}, + {"MaxRune", Const, 0, ""}, + {"RuneCount", Func, 0, "func(p []byte) int"}, + {"RuneCountInString", Func, 0, "func(s string) (n int)"}, + {"RuneError", Const, 0, ""}, + {"RuneLen", Func, 0, "func(r rune) int"}, + {"RuneSelf", Const, 0, ""}, + {"RuneStart", Func, 0, "func(b byte) bool"}, + {"UTFMax", Const, 0, ""}, + {"Valid", Func, 0, "func(p []byte) bool"}, + {"ValidRune", Func, 1, "func(r rune) bool"}, + {"ValidString", Func, 0, "func(s string) bool"}, + }, + "unique": { + {"(Handle).Value", Method, 23, ""}, + {"Handle", Type, 23, ""}, + {"Make", Func, 23, "func[T comparable](value T) Handle[T]"}, + }, + "unsafe": { + {"Add", Func, 0, ""}, + {"Alignof", Func, 0, ""}, + {"Offsetof", Func, 0, ""}, + {"Pointer", Type, 0, ""}, + {"Sizeof", Func, 0, ""}, + {"Slice", Func, 0, ""}, + {"SliceData", Func, 0, ""}, + {"String", Func, 0, ""}, + {"StringData", Func, 0, ""}, + }, + "weak": { + {"(Pointer).Value", Method, 24, ""}, + {"Make", Func, 24, "func[T any](ptr *T) Pointer[T]"}, + {"Pointer", Type, 24, ""}, + }, +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go new file mode 100644 index 0000000..e223e0f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go @@ -0,0 +1,105 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run generate.go + +// Package stdlib provides a table of all exported symbols in the +// standard library, along with the version at which they first +// appeared. It also provides the import graph of std packages. +package stdlib + +import ( + "fmt" + "strings" +) + +type Symbol struct { + Name string + Kind Kind + Version Version // Go version that first included the symbol + // Signature provides the type of a function (defined only for Kind=Func). + // Imported types are denoted as pkg.T; pkg is not fully qualified. + // TODO(adonovan): use an unambiguous encoding that is parseable. + // + // Example2: + // func[M ~map[K]V, K comparable, V any](m M) M + // func(fi fs.FileInfo, link string) (*Header, error) + Signature string // if Kind == stdlib.Func +} + +// A Kind indicates the kind of a symbol: +// function, variable, constant, type, and so on. +type Kind int8 + +const ( + Invalid Kind = iota // Example name: + Type // "Buffer" + Func // "Println" + Var // "EOF" + Const // "Pi" + Field // "Point.X" + Method // "(*Buffer).Grow" +) + +func (kind Kind) String() string { + return [...]string{ + Invalid: "invalid", + Type: "type", + Func: "func", + Var: "var", + Const: "const", + Field: "field", + Method: "method", + }[kind] +} + +// A Version represents a version of Go of the form "go1.%d". +type Version int8 + +// String returns a version string of the form "go1.23", without allocating. +func (v Version) String() string { return versions[v] } + +var versions [30]string // (increase constant as needed) + +func init() { + for i := range versions { + versions[i] = fmt.Sprintf("go1.%d", i) + } +} + +// HasPackage reports whether the specified package path is part of +// the standard library's public API. +func HasPackage(path string) bool { + _, ok := PackageSymbols[path] + return ok +} + +// SplitField splits the field symbol name into type and field +// components. It must be called only on Field symbols. +// +// Example: "File.Package" -> ("File", "Package") +func (sym *Symbol) SplitField() (typename, name string) { + if sym.Kind != Field { + panic("not a field") + } + typename, name, _ = strings.Cut(sym.Name, ".") + return +} + +// SplitMethod splits the method symbol name into pointer, receiver, +// and method components. It must be called only on Method symbols. +// +// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow") +func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) { + if sym.Kind != Method { + panic("not a method") + } + recv, name, _ = strings.Cut(sym.Name, ".") + recv = recv[len("(") : len(recv)-len(")")] + ptr = recv[0] == '*' + if ptr { + recv = recv[len("*"):] + } + return +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go new file mode 100644 index 0000000..cdae2b8 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/common.go @@ -0,0 +1,68 @@ +// 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. + +// Package typeparams contains common utilities for writing tools that +// interact with generic Go code, as introduced with Go 1.18. It +// supplements the standard library APIs. Notably, the StructuralTerms +// API computes a minimal representation of the structural +// restrictions on a type parameter. +// +// An external version of these APIs is available in the +// golang.org/x/exp/typeparams module. +package typeparams + +import ( + "go/ast" + "go/token" + "go/types" +) + +// UnpackIndexExpr extracts data from AST nodes that represent index +// expressions. +// +// For an ast.IndexExpr, the resulting indices slice will contain exactly one +// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable +// number of index expressions. +// +// For nodes that don't represent index expressions, the first return value of +// UnpackIndexExpr will be nil. +func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { + switch e := n.(type) { + case *ast.IndexExpr: + return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack + case *ast.IndexListExpr: + return e.X, e.Lbrack, e.Indices, e.Rbrack + } + return nil, token.NoPos, nil, token.NoPos +} + +// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on +// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 +// will panic. +func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { + switch len(indices) { + case 0: + panic("empty indices") + case 1: + return &ast.IndexExpr{ + X: x, + Lbrack: lbrack, + Index: indices[0], + Rbrack: rbrack, + } + default: + return &ast.IndexListExpr{ + X: x, + Lbrack: lbrack, + Indices: indices, + Rbrack: rbrack, + } + } +} + +// IsTypeParam reports whether t is a type parameter (or an alias of one). +func IsTypeParam(t types.Type) bool { + _, ok := types.Unalias(t).(*types.TypeParam) + return ok +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go new file mode 100644 index 0000000..27a2b17 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/coretype.go @@ -0,0 +1,155 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeparams + +import ( + "fmt" + "go/types" +) + +// CoreType returns the core type of T or nil if T does not have a core type. +// +// See https://go.dev/ref/spec#Core_types for the definition of a core type. +func CoreType(T types.Type) types.Type { + U := T.Underlying() + if _, ok := U.(*types.Interface); !ok { + return U // for non-interface types, + } + + terms, err := NormalTerms(U) + if len(terms) == 0 || err != nil { + // len(terms) -> empty type set of interface. + // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. + return nil // no core type. + } + + U = terms[0].Type().Underlying() + var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) + for identical = 1; identical < len(terms); identical++ { + if !types.Identical(U, terms[identical].Type().Underlying()) { + break + } + } + + if identical == len(terms) { + // https://go.dev/ref/spec#Core_types + // "There is a single type U which is the underlying type of all types in the type set of T" + return U + } + ch, ok := U.(*types.Chan) + if !ok { + return nil // no core type as identical < len(terms) and U is not a channel. + } + // https://go.dev/ref/spec#Core_types + // "the type chan E if T contains only bidirectional channels, or the type chan<- E or + // <-chan E depending on the direction of the directional channels present." + for chans := identical; chans < len(terms); chans++ { + curr, ok := terms[chans].Type().Underlying().(*types.Chan) + if !ok { + return nil + } + if !types.Identical(ch.Elem(), curr.Elem()) { + return nil // channel elements are not identical. + } + if ch.Dir() == types.SendRecv { + // ch is bidirectional. We can safely always use curr's direction. + ch = curr + } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { + // ch and curr are not bidirectional and not the same direction. + return nil + } + } + return ch +} + +// NormalTerms returns a slice of terms representing the normalized structural +// type restrictions of a type, if any. +// +// For all types other than *types.TypeParam, *types.Interface, and +// *types.Union, this is just a single term with Tilde() == false and +// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see +// below. +// +// Structural type restrictions of a type parameter are created via +// non-interface types embedded in its constraint interface (directly, or via a +// chain of interface embeddings). For example, in the declaration type +// T[P interface{~int; m()}] int the structural restriction of the type +// parameter P is ~int. +// +// With interface embedding and unions, the specification of structural type +// restrictions may be arbitrarily complex. For example, consider the +// following: +// +// type A interface{ ~string|~[]byte } +// +// type B interface{ int|string } +// +// type C interface { ~string|~int } +// +// type T[P interface{ A|B; C }] int +// +// In this example, the structural type restriction of P is ~string|int: A|B +// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +// which when intersected with C (~string|~int) yields ~string|int. +// +// NormalTerms computes these expansions and reductions, producing a +// "normalized" form of the embeddings. A structural restriction is normalized +// if it is a single union containing no interface terms, and is minimal in the +// sense that removing any term changes the set of types satisfying the +// constraint. It is left as a proof for the reader that, modulo sorting, there +// is exactly one such normalized form. +// +// Because the minimal representation always takes this form, NormalTerms +// returns a slice of tilde terms corresponding to the terms of the union in +// the normalized structural restriction. An error is returned if the type is +// invalid, exceeds complexity bounds, or has an empty type set. In the latter +// case, NormalTerms returns ErrEmptyTypeSet. +// +// NormalTerms makes no guarantees about the order of terms, except that it +// is deterministic. +func NormalTerms(T types.Type) ([]*types.Term, error) { + // typeSetOf(T) == typeSetOf(Unalias(T)) + typ := types.Unalias(T) + if named, ok := typ.(*types.Named); ok { + typ = named.Underlying() + } + switch typ := typ.(type) { + case *types.TypeParam: + return StructuralTerms(typ) + case *types.Union: + return UnionTermSet(typ) + case *types.Interface: + return InterfaceTermSet(typ) + default: + return []*types.Term{types.NewTerm(false, T)}, nil + } +} + +// Deref returns the type of the variable pointed to by t, +// if t's core type is a pointer; otherwise it returns t. +// +// Do not assume that Deref(T)==T implies T is not a pointer: +// consider "type T *T", for example. +// +// TODO(adonovan): ideally this would live in typesinternal, but that +// creates an import cycle. Move there when we melt this package down. +func Deref(t types.Type) types.Type { + if ptr, ok := CoreType(t).(*types.Pointer); ok { + return ptr.Elem() + } + return t +} + +// MustDeref returns the type of the variable pointed to by t. +// It panics if t's core type is not a pointer. +// +// TODO(adonovan): ideally this would live in typesinternal, but that +// creates an import cycle. Move there when we melt this package down. +func MustDeref(t types.Type) types.Type { + if ptr, ok := CoreType(t).(*types.Pointer); ok { + return ptr.Elem() + } + panic(fmt.Sprintf("%v is not a pointer", t)) +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/free.go b/vendor/golang.org/x/tools/internal/typeparams/free.go new file mode 100644 index 0000000..709d2fc --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/free.go @@ -0,0 +1,131 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeparams + +import ( + "go/types" + + "golang.org/x/tools/internal/aliases" +) + +// Free is a memoization of the set of free type parameters within a +// type. It makes a sequence of calls to [Free.Has] for overlapping +// types more efficient. The zero value is ready for use. +// +// NOTE: Adapted from go/types/infer.go. If it is later exported, factor. +type Free struct { + seen map[types.Type]bool +} + +// Has reports whether the specified type has a free type parameter. +func (w *Free) Has(typ types.Type) (res bool) { + // detect cycles + if x, ok := w.seen[typ]; ok { + return x + } + if w.seen == nil { + w.seen = make(map[types.Type]bool) + } + w.seen[typ] = false + defer func() { + w.seen[typ] = res + }() + + switch t := typ.(type) { + case nil, *types.Basic: // TODO(gri) should nil be handled here? + break + + case *types.Alias: + if aliases.TypeParams(t).Len() > aliases.TypeArgs(t).Len() { + return true // This is an uninstantiated Alias. + } + // The expansion of an alias can have free type parameters, + // whether or not the alias itself has type parameters: + // + // func _[K comparable]() { + // type Set = map[K]bool // free(Set) = {K} + // type MapTo[V] = map[K]V // free(Map[foo]) = {V} + // } + // + // So, we must Unalias. + return w.Has(types.Unalias(t)) + + case *types.Array: + return w.Has(t.Elem()) + + case *types.Slice: + return w.Has(t.Elem()) + + case *types.Struct: + for i, n := 0, t.NumFields(); i < n; i++ { + if w.Has(t.Field(i).Type()) { + return true + } + } + + case *types.Pointer: + return w.Has(t.Elem()) + + case *types.Tuple: + n := t.Len() + for i := range n { + if w.Has(t.At(i).Type()) { + return true + } + } + + case *types.Signature: + // t.tparams may not be nil if we are looking at a signature + // of a generic function type (or an interface method) that is + // part of the type we're testing. We don't care about these type + // parameters. + // Similarly, the receiver of a method may declare (rather than + // use) type parameters, we don't care about those either. + // Thus, we only need to look at the input and result parameters. + return w.Has(t.Params()) || w.Has(t.Results()) + + case *types.Interface: + for i, n := 0, t.NumMethods(); i < n; i++ { + if w.Has(t.Method(i).Type()) { + return true + } + } + terms, err := InterfaceTermSet(t) + if err != nil { + return false // ill typed + } + for _, term := range terms { + if w.Has(term.Type()) { + return true + } + } + + case *types.Map: + return w.Has(t.Key()) || w.Has(t.Elem()) + + case *types.Chan: + return w.Has(t.Elem()) + + case *types.Named: + args := t.TypeArgs() + if params := t.TypeParams(); params.Len() > args.Len() { + return true // this is an uninstantiated named type. + } + for i, n := 0, args.Len(); i < n; i++ { + if w.Has(args.At(i)) { + return true + } + } + return w.Has(t.Underlying()) // recurse for types local to parameterized functions + + case *types.TypeParam: + return true + + default: + panic(t) // unreachable + } + + return false +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go new file mode 100644 index 0000000..f49802b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/normalize.go @@ -0,0 +1,218 @@ +// 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. + +package typeparams + +import ( + "errors" + "fmt" + "go/types" + "os" + "strings" +) + +//go:generate go run copytermlist.go + +const debug = false + +var ErrEmptyTypeSet = errors.New("empty type set") + +// StructuralTerms returns a slice of terms representing the normalized +// structural type restrictions of a type parameter, if any. +// +// Structural type restrictions of a type parameter are created via +// non-interface types embedded in its constraint interface (directly, or via a +// chain of interface embeddings). For example, in the declaration +// +// type T[P interface{~int; m()}] int +// +// the structural restriction of the type parameter P is ~int. +// +// With interface embedding and unions, the specification of structural type +// restrictions may be arbitrarily complex. For example, consider the +// following: +// +// type A interface{ ~string|~[]byte } +// +// type B interface{ int|string } +// +// type C interface { ~string|~int } +// +// type T[P interface{ A|B; C }] int +// +// In this example, the structural type restriction of P is ~string|int: A|B +// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +// which when intersected with C (~string|~int) yields ~string|int. +// +// StructuralTerms computes these expansions and reductions, producing a +// "normalized" form of the embeddings. A structural restriction is normalized +// if it is a single union containing no interface terms, and is minimal in the +// sense that removing any term changes the set of types satisfying the +// constraint. It is left as a proof for the reader that, modulo sorting, there +// is exactly one such normalized form. +// +// Because the minimal representation always takes this form, StructuralTerms +// returns a slice of tilde terms corresponding to the terms of the union in +// the normalized structural restriction. An error is returned if the +// constraint interface is invalid, exceeds complexity bounds, or has an empty +// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. +// +// StructuralTerms makes no guarantees about the order of terms, except that it +// is deterministic. +func StructuralTerms(tparam *types.TypeParam) ([]*types.Term, error) { + constraint := tparam.Constraint() + if constraint == nil { + return nil, fmt.Errorf("%s has nil constraint", tparam) + } + iface, _ := constraint.Underlying().(*types.Interface) + if iface == nil { + return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) + } + return InterfaceTermSet(iface) +} + +// InterfaceTermSet computes the normalized terms for a constraint interface, +// returning an error if the term set cannot be computed or is empty. In the +// latter case, the error will be ErrEmptyTypeSet. +// +// See the documentation of StructuralTerms for more information on +// normalization. +func InterfaceTermSet(iface *types.Interface) ([]*types.Term, error) { + return computeTermSet(iface) +} + +// UnionTermSet computes the normalized terms for a union, returning an error +// if the term set cannot be computed or is empty. In the latter case, the +// error will be ErrEmptyTypeSet. +// +// See the documentation of StructuralTerms for more information on +// normalization. +func UnionTermSet(union *types.Union) ([]*types.Term, error) { + return computeTermSet(union) +} + +func computeTermSet(typ types.Type) ([]*types.Term, error) { + tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) + if err != nil { + return nil, err + } + if tset.terms.isEmpty() { + return nil, ErrEmptyTypeSet + } + if tset.terms.isAll() { + return nil, nil + } + var terms []*types.Term + for _, term := range tset.terms { + terms = append(terms, types.NewTerm(term.tilde, term.typ)) + } + return terms, nil +} + +// A termSet holds the normalized set of terms for a given type. +// +// The name termSet is intentionally distinct from 'type set': a type set is +// all types that implement a type (and includes method restrictions), whereas +// a term set just represents the structural restrictions on a type. +type termSet struct { + complete bool + terms termlist +} + +func indentf(depth int, format string, args ...any) { + fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) +} + +func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { + if t == nil { + panic("nil type") + } + + if debug { + indentf(depth, "%s", t.String()) + defer func() { + if err != nil { + indentf(depth, "=> %s", err) + } else { + indentf(depth, "=> %s", res.terms.String()) + } + }() + } + + const maxTermCount = 100 + if tset, ok := seen[t]; ok { + if !tset.complete { + return nil, fmt.Errorf("cycle detected in the declaration of %s", t) + } + return tset, nil + } + + // Mark the current type as seen to avoid infinite recursion. + tset := new(termSet) + defer func() { + tset.complete = true + }() + seen[t] = tset + + switch u := t.Underlying().(type) { + case *types.Interface: + // The term set of an interface is the intersection of the term sets of its + // embedded types. + tset.terms = allTermlist + for i := 0; i < u.NumEmbeddeds(); i++ { + embedded := u.EmbeddedType(i) + if _, ok := embedded.Underlying().(*types.TypeParam); ok { + return nil, fmt.Errorf("invalid embedded type %T", embedded) + } + tset2, err := computeTermSetInternal(embedded, seen, depth+1) + if err != nil { + return nil, err + } + tset.terms = tset.terms.intersect(tset2.terms) + } + case *types.Union: + // The term set of a union is the union of term sets of its terms. + tset.terms = nil + for i := 0; i < u.Len(); i++ { + t := u.Term(i) + var terms termlist + switch t.Type().Underlying().(type) { + case *types.Interface: + tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) + if err != nil { + return nil, err + } + terms = tset2.terms + case *types.TypeParam, *types.Union: + // A stand-alone type parameter or union is not permitted as union + // term. + return nil, fmt.Errorf("invalid union term %T", t) + default: + if t.Type() == types.Typ[types.Invalid] { + continue + } + terms = termlist{{t.Tilde(), t.Type()}} + } + tset.terms = tset.terms.union(terms) + if len(tset.terms) > maxTermCount { + return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) + } + } + case *types.TypeParam: + panic("unreachable") + default: + // For all other types, the term set is just a single non-tilde term + // holding the type itself. + if u != types.Typ[types.Invalid] { + tset.terms = termlist{{false, t}} + } + } + return tset, nil +} + +// under is a facade for the go/types internal function of the same name. It is +// used by typeterm.go. +func under(t types.Type) types.Type { + return t.Underlying() +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go new file mode 100644 index 0000000..9bc2914 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/termlist.go @@ -0,0 +1,169 @@ +// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. +// Source: ../../cmd/compile/internal/types2/termlist.go + +// 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. + +// Code generated by copytermlist.go DO NOT EDIT. + +package typeparams + +import ( + "go/types" + "strings" +) + +// A termlist represents the type set represented by the union +// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. +// A termlist is in normal form if all terms are disjoint. +// termlist operations don't require the operands to be in +// normal form. +type termlist []*term + +// allTermlist represents the set of all types. +// It is in normal form. +var allTermlist = termlist{new(term)} + +// termSep is the separator used between individual terms. +const termSep = " | " + +// String prints the termlist exactly (without normalization). +func (xl termlist) String() string { + if len(xl) == 0 { + return "∅" + } + var buf strings.Builder + for i, x := range xl { + if i > 0 { + buf.WriteString(termSep) + } + buf.WriteString(x.String()) + } + return buf.String() +} + +// isEmpty reports whether the termlist xl represents the empty set of types. +func (xl termlist) isEmpty() bool { + // If there's a non-nil term, the entire list is not empty. + // If the termlist is in normal form, this requires at most + // one iteration. + for _, x := range xl { + if x != nil { + return false + } + } + return true +} + +// isAll reports whether the termlist xl represents the set of all types. +func (xl termlist) isAll() bool { + // If there's a 𝓤 term, the entire list is 𝓤. + // If the termlist is in normal form, this requires at most + // one iteration. + for _, x := range xl { + if x != nil && x.typ == nil { + return true + } + } + return false +} + +// norm returns the normal form of xl. +func (xl termlist) norm() termlist { + // Quadratic algorithm, but good enough for now. + // TODO(gri) fix asymptotic performance + used := make([]bool, len(xl)) + var rl termlist + for i, xi := range xl { + if xi == nil || used[i] { + continue + } + for j := i + 1; j < len(xl); j++ { + xj := xl[j] + if xj == nil || used[j] { + continue + } + if u1, u2 := xi.union(xj); u2 == nil { + // If we encounter a 𝓤 term, the entire list is 𝓤. + // Exit early. + // (Note that this is not just an optimization; + // if we continue, we may end up with a 𝓤 term + // and other terms and the result would not be + // in normal form.) + if u1.typ == nil { + return allTermlist + } + xi = u1 + used[j] = true // xj is now unioned into xi - ignore it in future iterations + } + } + rl = append(rl, xi) + } + return rl +} + +// union returns the union xl ∪ yl. +func (xl termlist) union(yl termlist) termlist { + return append(xl, yl...).norm() +} + +// intersect returns the intersection xl ∩ yl. +func (xl termlist) intersect(yl termlist) termlist { + if xl.isEmpty() || yl.isEmpty() { + return nil + } + + // Quadratic algorithm, but good enough for now. + // TODO(gri) fix asymptotic performance + var rl termlist + for _, x := range xl { + for _, y := range yl { + if r := x.intersect(y); r != nil { + rl = append(rl, r) + } + } + } + return rl.norm() +} + +// equal reports whether xl and yl represent the same type set. +func (xl termlist) equal(yl termlist) bool { + // TODO(gri) this should be more efficient + return xl.subsetOf(yl) && yl.subsetOf(xl) +} + +// includes reports whether t ∈ xl. +func (xl termlist) includes(t types.Type) bool { + for _, x := range xl { + if x.includes(t) { + return true + } + } + return false +} + +// supersetOf reports whether y ⊆ xl. +func (xl termlist) supersetOf(y *term) bool { + for _, x := range xl { + if y.subsetOf(x) { + return true + } + } + return false +} + +// subsetOf reports whether xl ⊆ yl. +func (xl termlist) subsetOf(yl termlist) bool { + if yl.isEmpty() { + return xl.isEmpty() + } + + // each term x of xl must be a subset of yl + for _, x := range xl { + if !yl.supersetOf(x) { + return false // x is not a subset yl + } + } + return true +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go new file mode 100644 index 0000000..fa758cd --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go @@ -0,0 +1,172 @@ +// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. +// Source: ../../cmd/compile/internal/types2/typeterm.go + +// 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. + +// Code generated by copytermlist.go DO NOT EDIT. + +package typeparams + +import "go/types" + +// A term describes elementary type sets: +// +// ∅: (*term)(nil) == ∅ // set of no types (empty set) +// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) +// T: &term{false, T} == {T} // set of type T +// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t +type term struct { + tilde bool // valid if typ != nil + typ types.Type +} + +func (x *term) String() string { + switch { + case x == nil: + return "∅" + case x.typ == nil: + return "𝓤" + case x.tilde: + return "~" + x.typ.String() + default: + return x.typ.String() + } +} + +// equal reports whether x and y represent the same type set. +func (x *term) equal(y *term) bool { + // easy cases + switch { + case x == nil || y == nil: + return x == y + case x.typ == nil || y.typ == nil: + return x.typ == y.typ + } + // ∅ ⊂ x, y ⊂ 𝓤 + + return x.tilde == y.tilde && types.Identical(x.typ, y.typ) +} + +// union returns the union x ∪ y: zero, one, or two non-nil terms. +func (x *term) union(y *term) (_, _ *term) { + // easy cases + switch { + case x == nil && y == nil: + return nil, nil // ∅ ∪ ∅ == ∅ + case x == nil: + return y, nil // ∅ ∪ y == y + case y == nil: + return x, nil // x ∪ ∅ == x + case x.typ == nil: + return x, nil // 𝓤 ∪ y == 𝓤 + case y.typ == nil: + return y, nil // x ∪ 𝓤 == 𝓤 + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return x, y // x ∪ y == (x, y) if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ∪ ~t == ~t + // ~t ∪ T == ~t + // T ∪ ~t == ~t + // T ∪ T == T + if x.tilde || !y.tilde { + return x, nil + } + return y, nil +} + +// intersect returns the intersection x ∩ y. +func (x *term) intersect(y *term) *term { + // easy cases + switch { + case x == nil || y == nil: + return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ + case x.typ == nil: + return y // 𝓤 ∩ y == y + case y.typ == nil: + return x // x ∩ 𝓤 == x + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return nil // x ∩ y == ∅ if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ∩ ~t == ~t + // ~t ∩ T == T + // T ∩ ~t == T + // T ∩ T == T + if !x.tilde || y.tilde { + return x + } + return y +} + +// includes reports whether t ∈ x. +func (x *term) includes(t types.Type) bool { + // easy cases + switch { + case x == nil: + return false // t ∈ ∅ == false + case x.typ == nil: + return true // t ∈ 𝓤 == true + } + // ∅ ⊂ x ⊂ 𝓤 + + u := t + if x.tilde { + u = under(u) + } + return types.Identical(x.typ, u) +} + +// subsetOf reports whether x ⊆ y. +func (x *term) subsetOf(y *term) bool { + // easy cases + switch { + case x == nil: + return true // ∅ ⊆ y == true + case y == nil: + return false // x ⊆ ∅ == false since x != ∅ + case y.typ == nil: + return true // x ⊆ 𝓤 == true + case x.typ == nil: + return false // 𝓤 ⊆ y == false since y != 𝓤 + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return false // x ⊆ y == false if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ⊆ ~t == true + // ~t ⊆ T == false + // T ⊆ ~t == true + // T ⊆ T == true + return !x.tilde || y.tilde +} + +// disjoint reports whether x ∩ y == ∅. +// x.typ and y.typ must not be nil. +func (x *term) disjoint(y *term) bool { + if debug && (x.typ == nil || y.typ == nil) { + panic("invalid argument(s)") + } + ux := x.typ + if y.tilde { + ux = under(ux) + } + uy := y.typ + if x.tilde { + uy = under(uy) + } + return !types.Identical(ux, uy) +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go new file mode 100644 index 0000000..3db2a13 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go @@ -0,0 +1,137 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "fmt" + "go/ast" + "go/types" + _ "unsafe" +) + +// CallKind describes the function position of an [*ast.CallExpr]. +type CallKind int + +const ( + CallStatic CallKind = iota // static call to known function + CallInterface // dynamic call through an interface method + CallDynamic // dynamic call of a func value + CallBuiltin // call to a builtin function + CallConversion // a conversion (not a call) +) + +var callKindNames = []string{ + "CallStatic", + "CallInterface", + "CallDynamic", + "CallBuiltin", + "CallConversion", +} + +func (k CallKind) String() string { + if i := int(k); i >= 0 && i < len(callKindNames) { + return callKindNames[i] + } + return fmt.Sprintf("typeutil.CallKind(%d)", k) +} + +// ClassifyCall classifies the function position of a call expression ([*ast.CallExpr]). +// It distinguishes among true function calls, calls to builtins, and type conversions, +// and further classifies function calls as static calls (where the function is known), +// dynamic interface calls, and other dynamic calls. +// +// For the declarations: +// +// func f() {} +// func g[T any]() {} +// var v func() +// var s []func() +// type I interface { M() } +// var i I +// +// ClassifyCall returns the following: +// +// f() CallStatic +// g[int]() CallStatic +// i.M() CallInterface +// min(1, 2) CallBuiltin +// v() CallDynamic +// s[0]() CallDynamic +// int(x) CallConversion +// []byte("") CallConversion +func ClassifyCall(info *types.Info, call *ast.CallExpr) CallKind { + if info.Types == nil { + panic("ClassifyCall: info.Types is nil") + } + tv := info.Types[call.Fun] + if tv.IsType() { + return CallConversion + } + if tv.IsBuiltin() { + return CallBuiltin + } + obj := info.Uses[UsedIdent(info, call.Fun)] + // Classify the call by the type of the object, if any. + switch obj := obj.(type) { + case *types.Func: + if interfaceMethod(obj) { + return CallInterface + } + return CallStatic + default: + return CallDynamic + } +} + +// UsedIdent returns the identifier such that info.Uses[UsedIdent(info, e)] +// is the [types.Object] used by e, if any. +// +// If e is one of various forms of reference: +// +// f, c, v, T lexical reference +// pkg.X qualified identifier +// f[T] or pkg.F[K,V] instantiations of the above kinds +// expr.f field or method value selector +// T.f method expression selector +// +// UsedIdent returns the identifier whose is associated value in [types.Info.Uses] +// is the object to which it refers. +// +// For the declarations: +// +// func F[T any] {...} +// type I interface { M() } +// var ( +// x int +// s struct { f int } +// a []int +// i I +// ) +// +// UsedIdent returns the following: +// +// Expr UsedIdent +// x x +// s.f f +// F[int] F +// i.M M +// I.M M +// min min +// int int +// 1 nil +// a[0] nil +// []byte nil +// +// Note: if e is an instantiated function or method, UsedIdent returns +// the corresponding generic function or method on the generic type. +func UsedIdent(info *types.Info, e ast.Expr) *ast.Ident { + return usedIdent(info, e) +} + +//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent +func usedIdent(info *types.Info, e ast.Expr) *ast.Ident + +//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod +func interfaceMethod(f *types.Func) bool diff --git a/vendor/golang.org/x/tools/internal/typesinternal/element.go b/vendor/golang.org/x/tools/internal/typesinternal/element.go new file mode 100644 index 0000000..4957f02 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/element.go @@ -0,0 +1,133 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "fmt" + "go/types" + + "golang.org/x/tools/go/types/typeutil" +) + +// ForEachElement calls f for type T and each type reachable from its +// type through reflection. It does this by recursively stripping off +// type constructors; in addition, for each named type N, the type *N +// is added to the result as it may have additional methods. +// +// The caller must provide an initially empty set used to de-duplicate +// identical types, potentially across multiple calls to ForEachElement. +// (Its final value holds all the elements seen, matching the arguments +// passed to f.) +// +// TODO(adonovan): share/harmonize with go/callgraph/rta. +func ForEachElement(rtypes *typeutil.Map, msets *typeutil.MethodSetCache, T types.Type, f func(types.Type)) { + var visit func(T types.Type, skip bool) + visit = func(T types.Type, skip bool) { + if !skip { + if seen, _ := rtypes.Set(T, true).(bool); seen { + return // de-dup + } + + f(T) // notify caller of new element type + } + + // Recursion over signatures of each method. + tmset := msets.MethodSet(T) + for i := 0; i < tmset.Len(); i++ { + sig := tmset.At(i).Type().(*types.Signature) + // It is tempting to call visit(sig, false) + // but, as noted in golang.org/cl/65450043, + // the Signature.Recv field is ignored by + // types.Identical and typeutil.Map, which + // is confusing at best. + // + // More importantly, the true signature rtype + // reachable from a method using reflection + // has no receiver but an extra ordinary parameter. + // For the Read method of io.Reader we want: + // func(Reader, []byte) (int, error) + // but here sig is: + // func([]byte) (int, error) + // with .Recv = Reader (though it is hard to + // notice because it doesn't affect Signature.String + // or types.Identical). + // + // TODO(adonovan): construct and visit the correct + // non-method signature with an extra parameter + // (though since unnamed func types have no methods + // there is essentially no actual demand for this). + // + // TODO(adonovan): document whether or not it is + // safe to skip non-exported methods (as RTA does). + visit(sig.Params(), true) // skip the Tuple + visit(sig.Results(), true) // skip the Tuple + } + + switch T := T.(type) { + case *types.Alias: + visit(types.Unalias(T), skip) // emulates the pre-Alias behavior + + case *types.Basic: + // nop + + case *types.Interface: + // nop---handled by recursion over method set. + + case *types.Pointer: + visit(T.Elem(), false) + + case *types.Slice: + visit(T.Elem(), false) + + case *types.Chan: + visit(T.Elem(), false) + + case *types.Map: + visit(T.Key(), false) + visit(T.Elem(), false) + + case *types.Signature: + if T.Recv() != nil { + panic(fmt.Sprintf("Signature %s has Recv %s", T, T.Recv())) + } + visit(T.Params(), true) // skip the Tuple + visit(T.Results(), true) // skip the Tuple + + case *types.Named: + // A pointer-to-named type can be derived from a named + // type via reflection. It may have methods too. + visit(types.NewPointer(T), false) + + // Consider 'type T struct{S}' where S has methods. + // Reflection provides no way to get from T to struct{S}, + // only to S, so the method set of struct{S} is unwanted, + // so set 'skip' flag during recursion. + visit(T.Underlying(), true) // skip the unnamed type + + case *types.Array: + visit(T.Elem(), false) + + case *types.Struct: + for i, n := 0, T.NumFields(); i < n; i++ { + // TODO(adonovan): document whether or not + // it is safe to skip non-exported fields. + visit(T.Field(i).Type(), false) + } + + case *types.Tuple: + for i, n := 0, T.Len(); i < n; i++ { + visit(T.At(i).Type(), false) + } + + case *types.TypeParam, *types.Union: + // forEachReachable must not be called on parameterized types. + panic(T) + + default: + panic(T) + } + } + visit(T, false) +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go new file mode 100644 index 0000000..235a6de --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go @@ -0,0 +1,1560 @@ +// 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 typesinternal + +//go:generate stringer -type=ErrorCode + +type ErrorCode int + +// This file defines the error codes that can be produced during type-checking. +// Collectively, these codes provide an identifier that may be used to +// implement special handling for certain types of errors. +// +// Error codes should be fine-grained enough that the exact nature of the error +// can be easily determined, but coarse enough that they are not an +// implementation detail of the type checking algorithm. As a rule-of-thumb, +// errors should be considered equivalent if there is a theoretical refactoring +// of the type checker in which they are emitted in exactly one place. For +// example, the type checker emits different error messages for "too many +// arguments" and "too few arguments", but one can imagine an alternative type +// checker where this check instead just emits a single "wrong number of +// arguments", so these errors should have the same code. +// +// Error code names should be as brief as possible while retaining accuracy and +// distinctiveness. In most cases names should start with an adjective +// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), +// and end with a noun identifying the relevant language object. For example, +// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the +// convention that "bad" implies a problem with syntax, and "invalid" implies a +// problem with types. + +const ( + // InvalidSyntaxTree occurs if an invalid syntax tree is provided + // to the type checker. It should never happen. + InvalidSyntaxTree ErrorCode = -1 +) + +const ( + _ ErrorCode = iota + + // Test is reserved for errors that only apply while in self-test mode. + Test + + /* package names */ + + // BlankPkgName occurs when a package name is the blank identifier "_". + // + // Per the spec: + // "The PackageName must not be the blank identifier." + BlankPkgName + + // MismatchedPkgName occurs when a file's package name doesn't match the + // package name already established by other files. + MismatchedPkgName + + // InvalidPkgUse occurs when a package identifier is used outside of a + // selector expression. + // + // Example: + // import "fmt" + // + // var _ = fmt + InvalidPkgUse + + /* imports */ + + // BadImportPath occurs when an import path is not valid. + BadImportPath + + // BrokenImport occurs when importing a package fails. + // + // Example: + // import "amissingpackage" + BrokenImport + + // ImportCRenamed occurs when the special import "C" is renamed. "C" is a + // pseudo-package, and must not be renamed. + // + // Example: + // import _ "C" + ImportCRenamed + + // UnusedImport occurs when an import is unused. + // + // Example: + // import "fmt" + // + // func main() {} + UnusedImport + + /* initialization */ + + // InvalidInitCycle occurs when an invalid cycle is detected within the + // initialization graph. + // + // Example: + // var x int = f() + // + // func f() int { return x } + InvalidInitCycle + + /* decls */ + + // DuplicateDecl occurs when an identifier is declared multiple times. + // + // Example: + // var x = 1 + // var x = 2 + DuplicateDecl + + // InvalidDeclCycle occurs when a declaration cycle is not valid. + // + // Example: + // import "unsafe" + // + // type T struct { + // a [n]int + // } + // + // var n = unsafe.Sizeof(T{}) + InvalidDeclCycle + + // InvalidTypeCycle occurs when a cycle in type definitions results in a + // type that is not well-defined. + // + // Example: + // import "unsafe" + // + // type T [unsafe.Sizeof(T{})]int + InvalidTypeCycle + + /* decls > const */ + + // InvalidConstInit occurs when a const declaration has a non-constant + // initializer. + // + // Example: + // var x int + // const _ = x + InvalidConstInit + + // InvalidConstVal occurs when a const value cannot be converted to its + // target type. + // + // TODO(findleyr): this error code and example are not very clear. Consider + // removing it. + // + // Example: + // const _ = 1 << "hello" + InvalidConstVal + + // InvalidConstType occurs when the underlying type in a const declaration + // is not a valid constant type. + // + // Example: + // const c *int = 4 + InvalidConstType + + /* decls > var (+ other variable assignment codes) */ + + // UntypedNilUse occurs when the predeclared (untyped) value nil is used to + // initialize a variable declared without an explicit type. + // + // Example: + // var x = nil + UntypedNilUse + + // WrongAssignCount occurs when the number of values on the right-hand side + // of an assignment or initialization expression does not match the number + // of variables on the left-hand side. + // + // Example: + // var x = 1, 2 + WrongAssignCount + + // UnassignableOperand occurs when the left-hand side of an assignment is + // not assignable. + // + // Example: + // func f() { + // const c = 1 + // c = 2 + // } + UnassignableOperand + + // NoNewVar occurs when a short variable declaration (':=') does not declare + // new variables. + // + // Example: + // func f() { + // x := 1 + // x := 2 + // } + NoNewVar + + // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does + // not have single-valued left-hand or right-hand side. + // + // Per the spec: + // "In assignment operations, both the left- and right-hand expression lists + // must contain exactly one single-valued expression" + // + // Example: + // func f() int { + // x, y := 1, 2 + // x, y += 1 + // return x + y + // } + MultiValAssignOp + + // InvalidIfaceAssign occurs when a value of type T is used as an + // interface, but T does not implement a method of the expected interface. + // + // Example: + // type I interface { + // f() + // } + // + // type T int + // + // var x I = T(1) + InvalidIfaceAssign + + // InvalidChanAssign occurs when a chan assignment is invalid. + // + // Per the spec, a value x is assignable to a channel type T if: + // "x is a bidirectional channel value, T is a channel type, x's type V and + // T have identical element types, and at least one of V or T is not a + // defined type." + // + // Example: + // type T1 chan int + // type T2 chan int + // + // var x T1 + // // Invalid assignment because both types are named + // var _ T2 = x + InvalidChanAssign + + // IncompatibleAssign occurs when the type of the right-hand side expression + // in an assignment cannot be assigned to the type of the variable being + // assigned. + // + // Example: + // var x []int + // var _ int = x + IncompatibleAssign + + // UnaddressableFieldAssign occurs when trying to assign to a struct field + // in a map value. + // + // Example: + // func f() { + // m := make(map[string]struct{i int}) + // m["foo"].i = 42 + // } + UnaddressableFieldAssign + + /* decls > type (+ other type expression codes) */ + + // NotAType occurs when the identifier used as the underlying type in a type + // declaration or the right-hand side of a type alias does not denote a type. + // + // Example: + // var S = 2 + // + // type T S + NotAType + + // InvalidArrayLen occurs when an array length is not a constant value. + // + // Example: + // var n = 3 + // var _ = [n]int{} + InvalidArrayLen + + // BlankIfaceMethod occurs when a method name is '_'. + // + // Per the spec: + // "The name of each explicitly specified method must be unique and not + // blank." + // + // Example: + // type T interface { + // _(int) + // } + BlankIfaceMethod + + // IncomparableMapKey occurs when a map key type does not support the == and + // != operators. + // + // Per the spec: + // "The comparison operators == and != must be fully defined for operands of + // the key type; thus the key type must not be a function, map, or slice." + // + // Example: + // var x map[T]int + // + // type T []int + IncomparableMapKey + + // InvalidIfaceEmbed occurs when a non-interface type is embedded in an + // interface. + // + // Example: + // type T struct {} + // + // func (T) m() + // + // type I interface { + // T + // } + InvalidIfaceEmbed + + // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, + // and T itself is itself a pointer, an unsafe.Pointer, or an interface. + // + // Per the spec: + // "An embedded field must be specified as a type name T or as a pointer to + // a non-interface type name *T, and T itself may not be a pointer type." + // + // Example: + // type T *int + // + // type S struct { + // *T + // } + InvalidPtrEmbed + + /* decls > func and method */ + + // BadRecv occurs when a method declaration does not have exactly one + // receiver parameter. + // + // Example: + // func () _() {} + BadRecv + + // InvalidRecv occurs when a receiver type expression is not of the form T + // or *T, or T is a pointer type. + // + // Example: + // type T struct {} + // + // func (**T) m() {} + InvalidRecv + + // DuplicateFieldAndMethod occurs when an identifier appears as both a field + // and method name. + // + // Example: + // type T struct { + // m int + // } + // + // func (T) m() {} + DuplicateFieldAndMethod + + // DuplicateMethod occurs when two methods on the same receiver type have + // the same name. + // + // Example: + // type T struct {} + // func (T) m() {} + // func (T) m(i int) int { return i } + DuplicateMethod + + /* decls > special */ + + // InvalidBlank occurs when a blank identifier is used as a value or type. + // + // Per the spec: + // "The blank identifier may appear as an operand only on the left-hand side + // of an assignment." + // + // Example: + // var x = _ + InvalidBlank + + // InvalidIota occurs when the predeclared identifier iota is used outside + // of a constant declaration. + // + // Example: + // var x = iota + InvalidIota + + // MissingInitBody occurs when an init function is missing its body. + // + // Example: + // func init() + MissingInitBody + + // InvalidInitSig occurs when an init function declares parameters or + // results. + // + // Example: + // func init() int { return 1 } + InvalidInitSig + + // InvalidInitDecl occurs when init is declared as anything other than a + // function. + // + // Example: + // var init = 1 + InvalidInitDecl + + // InvalidMainDecl occurs when main is declared as anything other than a + // function, in a main package. + InvalidMainDecl + + /* exprs */ + + // TooManyValues occurs when a function returns too many values for the + // expression context in which it is used. + // + // Example: + // func ReturnTwo() (int, int) { + // return 1, 2 + // } + // + // var x = ReturnTwo() + TooManyValues + + // NotAnExpr occurs when a type expression is used where a value expression + // is expected. + // + // Example: + // type T struct {} + // + // func f() { + // T + // } + NotAnExpr + + /* exprs > const */ + + // TruncatedFloat occurs when a float constant is truncated to an integer + // value. + // + // Example: + // var _ int = 98.6 + TruncatedFloat + + // NumericOverflow occurs when a numeric constant overflows its target type. + // + // Example: + // var x int8 = 1000 + NumericOverflow + + /* exprs > operation */ + + // UndefinedOp occurs when an operator is not defined for the type(s) used + // in an operation. + // + // Example: + // var c = "a" - "b" + UndefinedOp + + // MismatchedTypes occurs when operand types are incompatible in a binary + // operation. + // + // Example: + // var a = "hello" + // var b = 1 + // var c = a - b + MismatchedTypes + + // DivByZero occurs when a division operation is provable at compile + // time to be a division by zero. + // + // Example: + // const divisor = 0 + // var x int = 1/divisor + DivByZero + + // NonNumericIncDec occurs when an increment or decrement operator is + // applied to a non-numeric value. + // + // Example: + // func f() { + // var c = "c" + // c++ + // } + NonNumericIncDec + + /* exprs > ptr */ + + // UnaddressableOperand occurs when the & operator is applied to an + // unaddressable expression. + // + // Example: + // var x = &1 + UnaddressableOperand + + // InvalidIndirection occurs when a non-pointer value is indirected via the + // '*' operator. + // + // Example: + // var x int + // var y = *x + InvalidIndirection + + /* exprs > [] */ + + // NonIndexableOperand occurs when an index operation is applied to a value + // that cannot be indexed. + // + // Example: + // var x = 1 + // var y = x[1] + NonIndexableOperand + + // InvalidIndex occurs when an index argument is not of integer type, + // negative, or out-of-bounds. + // + // Example: + // var s = [...]int{1,2,3} + // var x = s[5] + // + // Example: + // var s = []int{1,2,3} + // var _ = s[-1] + // + // Example: + // var s = []int{1,2,3} + // var i string + // var _ = s[i] + InvalidIndex + + // SwappedSliceIndices occurs when constant indices in a slice expression + // are decreasing in value. + // + // Example: + // var _ = []int{1,2,3}[2:1] + SwappedSliceIndices + + /* operators > slice */ + + // NonSliceableOperand occurs when a slice operation is applied to a value + // whose type is not sliceable, or is unaddressable. + // + // Example: + // var x = [...]int{1, 2, 3}[:1] + // + // Example: + // var x = 1 + // var y = 1[:1] + NonSliceableOperand + + // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is + // applied to a string. + // + // Example: + // var s = "hello" + // var x = s[1:2:3] + InvalidSliceExpr + + /* exprs > shift */ + + // InvalidShiftCount occurs when the right-hand side of a shift operation is + // either non-integer, negative, or too large. + // + // Example: + // var ( + // x string + // y int = 1 << x + // ) + InvalidShiftCount + + // InvalidShiftOperand occurs when the shifted operand is not an integer. + // + // Example: + // var s = "hello" + // var x = s << 2 + InvalidShiftOperand + + /* exprs > chan */ + + // InvalidReceive occurs when there is a channel receive from a value that + // is either not a channel, or is a send-only channel. + // + // Example: + // func f() { + // var x = 1 + // <-x + // } + InvalidReceive + + // InvalidSend occurs when there is a channel send to a value that is not a + // channel, or is a receive-only channel. + // + // Example: + // func f() { + // var x = 1 + // x <- "hello!" + // } + InvalidSend + + /* exprs > literal */ + + // DuplicateLitKey occurs when an index is duplicated in a slice, array, or + // map literal. + // + // Example: + // var _ = []int{0:1, 0:2} + // + // Example: + // var _ = map[string]int{"a": 1, "a": 2} + DuplicateLitKey + + // MissingLitKey occurs when a map literal is missing a key expression. + // + // Example: + // var _ = map[string]int{1} + MissingLitKey + + // InvalidLitIndex occurs when the key in a key-value element of a slice or + // array literal is not an integer constant. + // + // Example: + // var i = 0 + // var x = []string{i: "world"} + InvalidLitIndex + + // OversizeArrayLit occurs when an array literal exceeds its length. + // + // Example: + // var _ = [2]int{1,2,3} + OversizeArrayLit + + // MixedStructLit occurs when a struct literal contains a mix of positional + // and named elements. + // + // Example: + // var _ = struct{i, j int}{i: 1, 2} + MixedStructLit + + // InvalidStructLit occurs when a positional struct literal has an incorrect + // number of values. + // + // Example: + // var _ = struct{i, j int}{1,2,3} + InvalidStructLit + + // MissingLitField occurs when a struct literal refers to a field that does + // not exist on the struct type. + // + // Example: + // var _ = struct{i int}{j: 2} + MissingLitField + + // DuplicateLitField occurs when a struct literal contains duplicated + // fields. + // + // Example: + // var _ = struct{i int}{i: 1, i: 2} + DuplicateLitField + + // UnexportedLitField occurs when a positional struct literal implicitly + // assigns an unexported field of an imported type. + UnexportedLitField + + // InvalidLitField occurs when a field name is not a valid identifier. + // + // Example: + // var _ = struct{i int}{1: 1} + InvalidLitField + + // UntypedLit occurs when a composite literal omits a required type + // identifier. + // + // Example: + // type outer struct{ + // inner struct { i int } + // } + // + // var _ = outer{inner: {1}} + UntypedLit + + // InvalidLit occurs when a composite literal expression does not match its + // type. + // + // Example: + // type P *struct{ + // x int + // } + // var _ = P {} + InvalidLit + + /* exprs > selector */ + + // AmbiguousSelector occurs when a selector is ambiguous. + // + // Example: + // type E1 struct { i int } + // type E2 struct { i int } + // type T struct { E1; E2 } + // + // var x T + // var _ = x.i + AmbiguousSelector + + // UndeclaredImportedName occurs when a package-qualified identifier is + // undeclared by the imported package. + // + // Example: + // import "go/types" + // + // var _ = types.NotAnActualIdentifier + UndeclaredImportedName + + // UnexportedName occurs when a selector refers to an unexported identifier + // of an imported package. + // + // Example: + // import "reflect" + // + // type _ reflect.flag + UnexportedName + + // UndeclaredName occurs when an identifier is not declared in the current + // scope. + // + // Example: + // var x T + UndeclaredName + + // MissingFieldOrMethod occurs when a selector references a field or method + // that does not exist. + // + // Example: + // type T struct {} + // + // var x = T{}.f + MissingFieldOrMethod + + /* exprs > ... */ + + // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is + // not valid. + // + // Example: + // var _ = map[int][...]int{0: {}} + BadDotDotDotSyntax + + // NonVariadicDotDotDot occurs when a "..." is used on the final argument to + // a non-variadic function. + // + // Example: + // func printArgs(s []string) { + // for _, a := range s { + // println(a) + // } + // } + // + // func f() { + // s := []string{"a", "b", "c"} + // printArgs(s...) + // } + NonVariadicDotDotDot + + // MisplacedDotDotDot occurs when a "..." is used somewhere other than the + // final argument to a function call. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := []int{1,2,3} + // printArgs(0, a...) + // } + MisplacedDotDotDot + + // InvalidDotDotDotOperand occurs when a "..." operator is applied to a + // single-valued operand. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := 1 + // printArgs(a...) + // } + // + // Example: + // func args() (int, int) { + // return 1, 2 + // } + // + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func g() { + // printArgs(args()...) + // } + InvalidDotDotDotOperand + + // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in + // function. + // + // Example: + // var s = []int{1, 2, 3} + // var l = len(s...) + InvalidDotDotDot + + /* exprs > built-in */ + + // UncalledBuiltin occurs when a built-in function is used as a + // function-valued expression, instead of being called. + // + // Per the spec: + // "The built-in functions do not have standard Go types, so they can only + // appear in call expressions; they cannot be used as function values." + // + // Example: + // var _ = copy + UncalledBuiltin + + // InvalidAppend occurs when append is called with a first argument that is + // not a slice. + // + // Example: + // var _ = append(1, 2) + InvalidAppend + + // InvalidCap occurs when an argument to the cap built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Length_and_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = cap(s) + InvalidCap + + // InvalidClose occurs when close(...) is called with an argument that is + // not of channel type, or that is a receive-only channel. + // + // Example: + // func f() { + // var x int + // close(x) + // } + InvalidClose + + // InvalidCopy occurs when the arguments are not of slice type or do not + // have compatible type. + // + // See https://golang.org/ref/spec#Appending_and_copying_slices for more + // information on the type requirements for the copy built-in. + // + // Example: + // func f() { + // var x []int + // y := []int64{1,2,3} + // copy(x, y) + // } + InvalidCopy + + // InvalidComplex occurs when the complex built-in function is called with + // arguments with incompatible types. + // + // Example: + // var _ = complex(float32(1), float64(2)) + InvalidComplex + + // InvalidDelete occurs when the delete built-in function is called with a + // first argument that is not a map. + // + // Example: + // func f() { + // m := "hello" + // delete(m, "e") + // } + InvalidDelete + + // InvalidImag occurs when the imag built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = imag(int(1)) + InvalidImag + + // InvalidLen occurs when an argument to the len built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Length_and_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = len(s) + InvalidLen + + // SwappedMakeArgs occurs when make is called with three arguments, and its + // length argument is larger than its capacity argument. + // + // Example: + // var x = make([]int, 3, 2) + SwappedMakeArgs + + // InvalidMake occurs when make is called with an unsupported type argument. + // + // See https://golang.org/ref/spec#Making_slices_maps_and_channels for + // information on the types that may be created using make. + // + // Example: + // var x = make(int) + InvalidMake + + // InvalidReal occurs when the real built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = real(int(1)) + InvalidReal + + /* exprs > assertion */ + + // InvalidAssert occurs when a type assertion is applied to a + // value that is not of interface type. + // + // Example: + // var x = 1 + // var _ = x.(float64) + InvalidAssert + + // ImpossibleAssert occurs for a type assertion x.(T) when the value x of + // interface cannot have dynamic type T, due to a missing or mismatching + // method on T. + // + // Example: + // type T int + // + // func (t *T) m() int { return int(*t) } + // + // type I interface { m() int } + // + // var x I + // var _ = x.(T) + ImpossibleAssert + + /* exprs > conversion */ + + // InvalidConversion occurs when the argument type cannot be converted to the + // target. + // + // See https://golang.org/ref/spec#Conversions for the rules of + // convertibility. + // + // Example: + // var x float64 + // var _ = string(x) + InvalidConversion + + // InvalidUntypedConversion occurs when there is no valid implicit + // conversion from an untyped value satisfying the type constraints of the + // context in which it is used. + // + // Example: + // var _ = 1 + "" + InvalidUntypedConversion + + /* offsetof */ + + // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument + // that is not a selector expression. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Offsetof(x) + BadOffsetofSyntax + + // InvalidOffsetof occurs when unsafe.Offsetof is called with a method + // selector, rather than a field selector, or when the field is embedded via + // a pointer. + // + // Per the spec: + // + // "If f is an embedded field, it must be reachable without pointer + // indirections through fields of the struct. " + // + // Example: + // import "unsafe" + // + // type T struct { f int } + // type S struct { *T } + // var s S + // var _ = unsafe.Offsetof(s.f) + // + // Example: + // import "unsafe" + // + // type S struct{} + // + // func (S) m() {} + // + // var s S + // var _ = unsafe.Offsetof(s.m) + InvalidOffsetof + + /* control flow > scope */ + + // UnusedExpr occurs when a side-effect free expression is used as a + // statement. Such a statement has no effect. + // + // Example: + // func f(i int) { + // i*i + // } + UnusedExpr + + // UnusedVar occurs when a variable is declared but unused. + // + // Example: + // func f() { + // x := 1 + // } + UnusedVar + + // MissingReturn occurs when a function with results is missing a return + // statement. + // + // Example: + // func f() int {} + MissingReturn + + // WrongResultCount occurs when a return statement returns an incorrect + // number of values. + // + // Example: + // func ReturnOne() int { + // return 1, 2 + // } + WrongResultCount + + // OutOfScopeResult occurs when the name of a value implicitly returned by + // an empty return statement is shadowed in a nested scope. + // + // Example: + // func factor(n int) (i int) { + // for i := 2; i < n; i++ { + // if n%i == 0 { + // return + // } + // } + // return 0 + // } + OutOfScopeResult + + /* control flow > if */ + + // InvalidCond occurs when an if condition is not a boolean expression. + // + // Example: + // func checkReturn(i int) { + // if i { + // panic("non-zero return") + // } + // } + InvalidCond + + /* control flow > for */ + + // InvalidPostDecl occurs when there is a declaration in a for-loop post + // statement. + // + // Example: + // func f() { + // for i := 0; i < 10; j := 0 {} + // } + InvalidPostDecl + + // InvalidChanRange occurs when a send-only channel used in a range + // expression. + // + // Example: + // func sum(c chan<- int) { + // s := 0 + // for i := range c { + // s += i + // } + // } + InvalidChanRange + + // InvalidIterVar occurs when two iteration variables are used while ranging + // over a channel. + // + // Example: + // func f(c chan int) { + // for k, v := range c { + // println(k, v) + // } + // } + InvalidIterVar + + // InvalidRangeExpr occurs when the type of a range expression is not array, + // slice, string, map, or channel. + // + // Example: + // func f(i int) { + // for j := range i { + // println(j) + // } + // } + InvalidRangeExpr + + /* control flow > switch */ + + // MisplacedBreak occurs when a break statement is not within a for, switch, + // or select statement of the innermost function definition. + // + // Example: + // func f() { + // break + // } + MisplacedBreak + + // MisplacedContinue occurs when a continue statement is not within a for + // loop of the innermost function definition. + // + // Example: + // func sumeven(n int) int { + // proceed := func() { + // continue + // } + // sum := 0 + // for i := 1; i <= n; i++ { + // if i % 2 != 0 { + // proceed() + // } + // sum += i + // } + // return sum + // } + MisplacedContinue + + // MisplacedFallthrough occurs when a fallthrough statement is not within an + // expression switch. + // + // Example: + // func typename(i interface{}) string { + // switch i.(type) { + // case int64: + // fallthrough + // case int: + // return "int" + // } + // return "unsupported" + // } + MisplacedFallthrough + + // DuplicateCase occurs when a type or expression switch has duplicate + // cases. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // case 1: + // println("One") + // } + // } + DuplicateCase + + // DuplicateDefault occurs when a type or expression switch has multiple + // default clauses. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // default: + // println("One") + // default: + // println("1") + // } + // } + DuplicateDefault + + // BadTypeKeyword occurs when a .(type) expression is used anywhere other + // than a type switch. + // + // Example: + // type I interface { + // m() + // } + // var t I + // var _ = t.(type) + BadTypeKeyword + + // InvalidTypeSwitch occurs when .(type) is used on an expression that is + // not of interface type. + // + // Example: + // func f(i int) { + // switch x := i.(type) {} + // } + InvalidTypeSwitch + + // InvalidExprSwitch occurs when a switch expression is not comparable. + // + // Example: + // func _() { + // var a struct{ _ func() } + // switch a /* ERROR cannot switch on a */ { + // } + // } + InvalidExprSwitch + + /* control flow > select */ + + // InvalidSelectCase occurs when a select case is not a channel send or + // receive. + // + // Example: + // func checkChan(c <-chan int) bool { + // select { + // case c: + // return true + // default: + // return false + // } + // } + InvalidSelectCase + + /* control flow > labels and jumps */ + + // UndeclaredLabel occurs when an undeclared label is jumped to. + // + // Example: + // func f() { + // goto L + // } + UndeclaredLabel + + // DuplicateLabel occurs when a label is declared more than once. + // + // Example: + // func f() int { + // L: + // L: + // return 1 + // } + DuplicateLabel + + // MisplacedLabel occurs when a break or continue label is not on a for, + // switch, or select statement. + // + // Example: + // func f() { + // L: + // a := []int{1,2,3} + // for _, e := range a { + // if e > 10 { + // break L + // } + // println(a) + // } + // } + MisplacedLabel + + // UnusedLabel occurs when a label is declared but not used. + // + // Example: + // func f() { + // L: + // } + UnusedLabel + + // JumpOverDecl occurs when a label jumps over a variable declaration. + // + // Example: + // func f() int { + // goto L + // x := 2 + // L: + // x++ + // return x + // } + JumpOverDecl + + // JumpIntoBlock occurs when a forward jump goes to a label inside a nested + // block. + // + // Example: + // func f(x int) { + // goto L + // if x > 0 { + // L: + // print("inside block") + // } + // } + JumpIntoBlock + + /* control flow > calls */ + + // InvalidMethodExpr occurs when a pointer method is called but the argument + // is not addressable. + // + // Example: + // type T struct {} + // + // func (*T) m() int { return 1 } + // + // var _ = T.m(T{}) + InvalidMethodExpr + + // WrongArgCount occurs when too few or too many arguments are passed by a + // function call. + // + // Example: + // func f(i int) {} + // var x = f() + WrongArgCount + + // InvalidCall occurs when an expression is called that is not of function + // type. + // + // Example: + // var x = "x" + // var y = x() + InvalidCall + + /* control flow > suspended */ + + // UnusedResults occurs when a restricted expression-only built-in function + // is suspended via go or defer. Such a suspension discards the results of + // these side-effect free built-in functions, and therefore is ineffectual. + // + // Example: + // func f(a []int) int { + // defer len(a) + // return i + // } + UnusedResults + + // InvalidDefer occurs when a deferred expression is not a function call, + // for example if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // defer int32(i) + // return i + // } + InvalidDefer + + // InvalidGo occurs when a go expression is not a function call, for example + // if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // go int32(i) + // return i + // } + InvalidGo + + // All codes below were added in Go 1.17. + + /* decl */ + + // BadDecl occurs when a declaration has invalid syntax. + BadDecl + + // RepeatedDecl occurs when an identifier occurs more than once on the left + // hand side of a short variable declaration. + // + // Example: + // func _() { + // x, y, y := 1, 2, 3 + // } + RepeatedDecl + + /* unsafe */ + + // InvalidUnsafeAdd occurs when unsafe.Add is called with a + // length argument that is not of integer type. + // + // Example: + // import "unsafe" + // + // var p unsafe.Pointer + // var _ = unsafe.Add(p, float64(1)) + InvalidUnsafeAdd + + // InvalidUnsafeSlice occurs when unsafe.Slice is called with a + // pointer argument that is not of pointer type or a length argument + // that is not of integer type, negative, or out of bounds. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(x, 1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, float64(1)) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, -1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, uint64(1) << 63) + InvalidUnsafeSlice + + // All codes below were added in Go 1.18. + + /* features */ + + // UnsupportedFeature occurs when a language feature is used that is not + // supported at this Go version. + UnsupportedFeature + + /* type params */ + + // NotAGenericType occurs when a non-generic type is used where a generic + // type is expected: in type or function instantiation. + // + // Example: + // type T int + // + // var _ T[int] + NotAGenericType + + // WrongTypeArgCount occurs when a type or function is instantiated with an + // incorrect number of type arguments, including when a generic type or + // function is used without instantiation. + // + // Errors involving failed type inference are assigned other error codes. + // + // Example: + // type T[p any] int + // + // var _ T[int, string] + // + // Example: + // func f[T any]() {} + // + // var x = f + WrongTypeArgCount + + // CannotInferTypeArgs occurs when type or function type argument inference + // fails to infer all type arguments. + // + // Example: + // func f[T any]() {} + // + // func _() { + // f() + // } + // + // Example: + // type N[P, Q any] struct{} + // + // var _ N[int] + CannotInferTypeArgs + + // InvalidTypeArg occurs when a type argument does not satisfy its + // corresponding type parameter constraints. + // + // Example: + // type T[P ~int] struct{} + // + // var _ T[string] + InvalidTypeArg // arguments? InferenceFailed + + // InvalidInstanceCycle occurs when an invalid cycle is detected + // within the instantiation graph. + // + // Example: + // func f[T any]() { f[*T]() } + InvalidInstanceCycle + + // InvalidUnion occurs when an embedded union or approximation element is + // not valid. + // + // Example: + // type _ interface { + // ~int | interface{ m() } + // } + InvalidUnion + + // MisplacedConstraintIface occurs when a constraint-type interface is used + // outside of constraint position. + // + // Example: + // type I interface { ~int } + // + // var _ I + MisplacedConstraintIface + + // InvalidMethodTypeParams occurs when methods have type parameters. + // + // It cannot be encountered with an AST parsed using go/parser. + InvalidMethodTypeParams + + // MisplacedTypeParam occurs when a type parameter is used in a place where + // it is not permitted. + // + // Example: + // type T[P any] P + // + // Example: + // type T[P any] struct{ *P } + MisplacedTypeParam + + // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with + // an argument that is not of slice type. It also occurs if it is used + // in a package compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.SliceData(x) + InvalidUnsafeSliceData + + // InvalidUnsafeString occurs when unsafe.String is called with + // a length argument that is not of integer type, negative, or + // out of bounds. It also occurs if it is used in a package + // compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var b [10]byte + // var _ = unsafe.String(&b[0], -1) + InvalidUnsafeString + + // InvalidUnsafeStringData occurs if it is used in a package + // compiled for a language version before go1.20. + _ // not used anymore + +) diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go new file mode 100644 index 0000000..15ecf7c --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go @@ -0,0 +1,179 @@ +// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. + +package typesinternal + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[InvalidSyntaxTree - -1] + _ = x[Test-1] + _ = x[BlankPkgName-2] + _ = x[MismatchedPkgName-3] + _ = x[InvalidPkgUse-4] + _ = x[BadImportPath-5] + _ = x[BrokenImport-6] + _ = x[ImportCRenamed-7] + _ = x[UnusedImport-8] + _ = x[InvalidInitCycle-9] + _ = x[DuplicateDecl-10] + _ = x[InvalidDeclCycle-11] + _ = x[InvalidTypeCycle-12] + _ = x[InvalidConstInit-13] + _ = x[InvalidConstVal-14] + _ = x[InvalidConstType-15] + _ = x[UntypedNilUse-16] + _ = x[WrongAssignCount-17] + _ = x[UnassignableOperand-18] + _ = x[NoNewVar-19] + _ = x[MultiValAssignOp-20] + _ = x[InvalidIfaceAssign-21] + _ = x[InvalidChanAssign-22] + _ = x[IncompatibleAssign-23] + _ = x[UnaddressableFieldAssign-24] + _ = x[NotAType-25] + _ = x[InvalidArrayLen-26] + _ = x[BlankIfaceMethod-27] + _ = x[IncomparableMapKey-28] + _ = x[InvalidIfaceEmbed-29] + _ = x[InvalidPtrEmbed-30] + _ = x[BadRecv-31] + _ = x[InvalidRecv-32] + _ = x[DuplicateFieldAndMethod-33] + _ = x[DuplicateMethod-34] + _ = x[InvalidBlank-35] + _ = x[InvalidIota-36] + _ = x[MissingInitBody-37] + _ = x[InvalidInitSig-38] + _ = x[InvalidInitDecl-39] + _ = x[InvalidMainDecl-40] + _ = x[TooManyValues-41] + _ = x[NotAnExpr-42] + _ = x[TruncatedFloat-43] + _ = x[NumericOverflow-44] + _ = x[UndefinedOp-45] + _ = x[MismatchedTypes-46] + _ = x[DivByZero-47] + _ = x[NonNumericIncDec-48] + _ = x[UnaddressableOperand-49] + _ = x[InvalidIndirection-50] + _ = x[NonIndexableOperand-51] + _ = x[InvalidIndex-52] + _ = x[SwappedSliceIndices-53] + _ = x[NonSliceableOperand-54] + _ = x[InvalidSliceExpr-55] + _ = x[InvalidShiftCount-56] + _ = x[InvalidShiftOperand-57] + _ = x[InvalidReceive-58] + _ = x[InvalidSend-59] + _ = x[DuplicateLitKey-60] + _ = x[MissingLitKey-61] + _ = x[InvalidLitIndex-62] + _ = x[OversizeArrayLit-63] + _ = x[MixedStructLit-64] + _ = x[InvalidStructLit-65] + _ = x[MissingLitField-66] + _ = x[DuplicateLitField-67] + _ = x[UnexportedLitField-68] + _ = x[InvalidLitField-69] + _ = x[UntypedLit-70] + _ = x[InvalidLit-71] + _ = x[AmbiguousSelector-72] + _ = x[UndeclaredImportedName-73] + _ = x[UnexportedName-74] + _ = x[UndeclaredName-75] + _ = x[MissingFieldOrMethod-76] + _ = x[BadDotDotDotSyntax-77] + _ = x[NonVariadicDotDotDot-78] + _ = x[MisplacedDotDotDot-79] + _ = x[InvalidDotDotDotOperand-80] + _ = x[InvalidDotDotDot-81] + _ = x[UncalledBuiltin-82] + _ = x[InvalidAppend-83] + _ = x[InvalidCap-84] + _ = x[InvalidClose-85] + _ = x[InvalidCopy-86] + _ = x[InvalidComplex-87] + _ = x[InvalidDelete-88] + _ = x[InvalidImag-89] + _ = x[InvalidLen-90] + _ = x[SwappedMakeArgs-91] + _ = x[InvalidMake-92] + _ = x[InvalidReal-93] + _ = x[InvalidAssert-94] + _ = x[ImpossibleAssert-95] + _ = x[InvalidConversion-96] + _ = x[InvalidUntypedConversion-97] + _ = x[BadOffsetofSyntax-98] + _ = x[InvalidOffsetof-99] + _ = x[UnusedExpr-100] + _ = x[UnusedVar-101] + _ = x[MissingReturn-102] + _ = x[WrongResultCount-103] + _ = x[OutOfScopeResult-104] + _ = x[InvalidCond-105] + _ = x[InvalidPostDecl-106] + _ = x[InvalidChanRange-107] + _ = x[InvalidIterVar-108] + _ = x[InvalidRangeExpr-109] + _ = x[MisplacedBreak-110] + _ = x[MisplacedContinue-111] + _ = x[MisplacedFallthrough-112] + _ = x[DuplicateCase-113] + _ = x[DuplicateDefault-114] + _ = x[BadTypeKeyword-115] + _ = x[InvalidTypeSwitch-116] + _ = x[InvalidExprSwitch-117] + _ = x[InvalidSelectCase-118] + _ = x[UndeclaredLabel-119] + _ = x[DuplicateLabel-120] + _ = x[MisplacedLabel-121] + _ = x[UnusedLabel-122] + _ = x[JumpOverDecl-123] + _ = x[JumpIntoBlock-124] + _ = x[InvalidMethodExpr-125] + _ = x[WrongArgCount-126] + _ = x[InvalidCall-127] + _ = x[UnusedResults-128] + _ = x[InvalidDefer-129] + _ = x[InvalidGo-130] + _ = x[BadDecl-131] + _ = x[RepeatedDecl-132] + _ = x[InvalidUnsafeAdd-133] + _ = x[InvalidUnsafeSlice-134] + _ = x[UnsupportedFeature-135] + _ = x[NotAGenericType-136] + _ = x[WrongTypeArgCount-137] + _ = x[CannotInferTypeArgs-138] + _ = x[InvalidTypeArg-139] + _ = x[InvalidInstanceCycle-140] + _ = x[InvalidUnion-141] + _ = x[MisplacedConstraintIface-142] + _ = x[InvalidMethodTypeParams-143] + _ = x[MisplacedTypeParam-144] + _ = x[InvalidUnsafeSliceData-145] + _ = x[InvalidUnsafeString-146] +} + +const ( + _ErrorCode_name_0 = "InvalidSyntaxTree" + _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" +) + +var ( + _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} +) + +func (i ErrorCode) String() string { + switch { + case i == -1: + return _ErrorCode_name_0 + case 1 <= i && i <= 146: + i -= 1 + return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] + default: + return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" + } +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go new file mode 100644 index 0000000..b64f714 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go @@ -0,0 +1,46 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "go/ast" + "go/types" + "strconv" +) + +// FileQualifier returns a [types.Qualifier] function that qualifies +// imported symbols appropriately based on the import environment of a given +// file. +// If the same package is imported multiple times, the last appearance is +// recorded. +func FileQualifier(f *ast.File, pkg *types.Package) types.Qualifier { + // Construct mapping of import paths to their defined names. + // It is only necessary to look at renaming imports. + imports := make(map[string]string) + for _, imp := range f.Imports { + if imp.Name != nil && imp.Name.Name != "_" { + path, _ := strconv.Unquote(imp.Path.Value) + imports[path] = imp.Name.Name + } + } + + // Define qualifier to replace full package paths with names of the imports. + return func(p *types.Package) string { + if p == nil || p == pkg { + return "" + } + + if name, ok := imports[p.Path()]; ok { + if name == "." { + return "" + } else { + return name + } + } + + // If there is no local renaming, fall back to the package name. + return p.Name() + } +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go new file mode 100644 index 0000000..8352ea7 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/recv.go @@ -0,0 +1,44 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "go/types" +) + +// ReceiverNamed returns the named type (if any) associated with the +// type of recv, which may be of the form N or *N, or aliases thereof. +// It also reports whether a Pointer was present. +// +// The named result may be nil if recv is from a method on an +// anonymous interface or struct types or in ill-typed code. +func ReceiverNamed(recv *types.Var) (isPtr bool, named *types.Named) { + t := recv.Type() + if ptr, ok := types.Unalias(t).(*types.Pointer); ok { + isPtr = true + t = ptr.Elem() + } + named, _ = types.Unalias(t).(*types.Named) + return +} + +// Unpointer returns T given *T or an alias thereof. +// For all other types it is the identity function. +// It does not look at underlying types. +// The result may be an alias. +// +// Use this function to strip off the optional pointer on a receiver +// in a field or method selection, without losing the named type +// (which is needed to compute the method set). +// +// See also [typeparams.MustDeref], which removes one level of +// indirection from the type, regardless of named types (analogous to +// a LOAD instruction). +func Unpointer(t types.Type) types.Type { + if ptr, ok := types.Unalias(t).(*types.Pointer); ok { + return ptr.Elem() + } + return t +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go new file mode 100644 index 0000000..cc86487 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go @@ -0,0 +1,89 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "go/types" + + "golang.org/x/tools/internal/stdlib" + "golang.org/x/tools/internal/versions" +) + +// TooNewStdSymbols computes the set of package-level symbols +// exported by pkg that are not available at the specified version. +// The result maps each symbol to its minimum version. +// +// The pkg is allowed to contain type errors. +func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string { + disallowed := make(map[types.Object]string) + + // Pass 1: package-level symbols. + symbols := stdlib.PackageSymbols[pkg.Path()] + for _, sym := range symbols { + symver := sym.Version.String() + if versions.Before(version, symver) { + switch sym.Kind { + case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type: + disallowed[pkg.Scope().Lookup(sym.Name)] = symver + } + } + } + + // Pass 2: fields and methods. + // + // We allow fields and methods if their associated type is + // disallowed, as otherwise we would report false positives + // for compatibility shims. Consider: + // + // //go:build go1.22 + // type T struct { F std.Real } // correct new API + // + // //go:build !go1.22 + // type T struct { F fake } // shim + // type fake struct { ... } + // func (fake) M () {} + // + // These alternative declarations of T use either the std.Real + // type, introduced in go1.22, or a fake type, for the field + // F. (The fakery could be arbitrarily deep, involving more + // nested fields and methods than are shown here.) Clients + // that use the compatibility shim T will compile with any + // version of go, whether older or newer than go1.22, but only + // the newer version will use the std.Real implementation. + // + // Now consider a reference to method M in new(T).F.M() in a + // module that requires a minimum of go1.21. The analysis may + // occur using a version of Go higher than 1.21, selecting the + // first version of T, so the method M is Real.M. This would + // spuriously cause the analyzer to report a reference to a + // too-new symbol even though this expression compiles just + // fine (with the fake implementation) using go1.21. + for _, sym := range symbols { + symVersion := sym.Version.String() + if !versions.Before(version, symVersion) { + continue // allowed + } + + var obj types.Object + switch sym.Kind { + case stdlib.Field: + typename, name := sym.SplitField() + if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" { + obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name) + } + + case stdlib.Method: + ptr, recvname, name := sym.SplitMethod() + if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" { + obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name) + } + } + if obj != nil { + disallowed[obj] = symVersion + } + } + + return disallowed +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go new file mode 100644 index 0000000..a5cd7e8 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -0,0 +1,155 @@ +// 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 typesinternal provides access to internal go/types APIs that are not +// yet exported. +package typesinternal + +import ( + "go/ast" + "go/token" + "go/types" + "reflect" + "unsafe" + + "golang.org/x/tools/internal/aliases" +) + +func SetUsesCgo(conf *types.Config) bool { + v := reflect.ValueOf(conf).Elem() + + f := v.FieldByName("go115UsesCgo") + if !f.IsValid() { + f = v.FieldByName("UsesCgo") + if !f.IsValid() { + return false + } + } + + addr := unsafe.Pointer(f.UnsafeAddr()) + *(*bool)(addr) = true + + return true +} + +// ErrorCodeStartEnd extracts additional information from types.Error values +// generated by Go version 1.16 and later: the error code, start position, and +// end position. If all positions are valid, start <= err.Pos <= end. +// +// If the data could not be read, the final result parameter will be false. +// +// TODO(adonovan): eliminate start/end when proposal #71803 is accepted. +func ErrorCodeStartEnd(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { + var data [3]int + // By coincidence all of these fields are ints, which simplifies things. + v := reflect.ValueOf(err) + for i, name := range []string{"go116code", "go116start", "go116end"} { + f := v.FieldByName(name) + if !f.IsValid() { + return 0, 0, 0, false + } + data[i] = int(f.Int()) + } + return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true +} + +// NameRelativeTo returns a types.Qualifier that qualifies members of +// all packages other than pkg, using only the package name. +// (By contrast, [types.RelativeTo] uses the complete package path, +// which is often excessive.) +// +// If pkg is nil, it is equivalent to [*types.Package.Name]. +func NameRelativeTo(pkg *types.Package) types.Qualifier { + return func(other *types.Package) string { + if pkg != nil && pkg == other { + return "" // same package; unqualified + } + return other.Name() + } +} + +// TypeNameFor returns the type name symbol for the specified type, if +// it is a [*types.Alias], [*types.Named], [*types.TypeParam], or a +// [*types.Basic] representing a type. +// +// For all other types, and for Basic types representing a builtin, +// constant, or nil, it returns nil. Be careful not to convert the +// resulting nil pointer to a [types.Object]! +// +// If t is the type of a constant, it may be an "untyped" type, which +// has no TypeName. To access the name of such types (e.g. "untyped +// int"), use [types.Basic.Name]. +func TypeNameFor(t types.Type) *types.TypeName { + switch t := t.(type) { + case *types.Alias: + return t.Obj() + case *types.Named: + return t.Obj() + case *types.TypeParam: + return t.Obj() + case *types.Basic: + // See issues #71886 and #66890 for some history. + if tname, ok := types.Universe.Lookup(t.Name()).(*types.TypeName); ok { + return tname + } + } + return nil +} + +// A NamedOrAlias is a [types.Type] that is named (as +// defined by the spec) and capable of bearing type parameters: it +// abstracts aliases ([types.Alias]) and defined types +// ([types.Named]). +// +// Every type declared by an explicit "type" declaration is a +// NamedOrAlias. (Built-in type symbols may additionally +// have type [types.Basic], which is not a NamedOrAlias, +// though the spec regards them as "named"; see [TypeNameFor].) +// +// NamedOrAlias cannot expose the Origin method, because +// [types.Alias.Origin] and [types.Named.Origin] have different +// (covariant) result types; use [Origin] instead. +type NamedOrAlias interface { + types.Type + Obj() *types.TypeName + TypeArgs() *types.TypeList + TypeParams() *types.TypeParamList + SetTypeParams(tparams []*types.TypeParam) +} + +var ( + _ NamedOrAlias = (*types.Alias)(nil) + _ NamedOrAlias = (*types.Named)(nil) +) + +// Origin returns the generic type of the Named or Alias type t if it +// is instantiated, otherwise it returns t. +func Origin(t NamedOrAlias) NamedOrAlias { + switch t := t.(type) { + case *types.Alias: + return aliases.Origin(t) + case *types.Named: + return t.Origin() + } + return t +} + +// IsPackageLevel reports whether obj is a package-level symbol. +func IsPackageLevel(obj types.Object) bool { + return obj.Pkg() != nil && obj.Parent() == obj.Pkg().Scope() +} + +// NewTypesInfo returns a *types.Info with all maps populated. +func NewTypesInfo() *types.Info { + return &types.Info{ + Types: map[ast.Expr]types.TypeAndValue{}, + Instances: map[*ast.Ident]types.Instance{}, + Defs: map[*ast.Ident]types.Object{}, + Uses: map[*ast.Ident]types.Object{}, + Implicits: map[ast.Node]types.Object{}, + Selections: map[*ast.SelectorExpr]*types.Selection{}, + Scopes: map[ast.Node]*types.Scope{}, + FileVersions: map[*ast.File]string{}, + } +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/varkind.go b/vendor/golang.org/x/tools/internal/typesinternal/varkind.go new file mode 100644 index 0000000..e5da049 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/varkind.go @@ -0,0 +1,40 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +// TODO(adonovan): when CL 645115 lands, define the go1.25 version of +// this API that actually does something. + +import "go/types" + +type VarKind uint8 + +const ( + _ VarKind = iota // (not meaningful) + PackageVar // a package-level variable + LocalVar // a local variable + RecvVar // a method receiver variable + ParamVar // a function parameter variable + ResultVar // a function result variable + FieldVar // a struct field +) + +func (kind VarKind) String() string { + return [...]string{ + 0: "VarKind(0)", + PackageVar: "PackageVar", + LocalVar: "LocalVar", + RecvVar: "RecvVar", + ParamVar: "ParamVar", + ResultVar: "ResultVar", + FieldVar: "FieldVar", + }[kind] +} + +// GetVarKind returns an invalid VarKind. +func GetVarKind(v *types.Var) VarKind { return 0 } + +// SetVarKind has no effect. +func SetVarKind(v *types.Var, kind VarKind) {} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go new file mode 100644 index 0000000..d272949 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go @@ -0,0 +1,392 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "fmt" + "go/ast" + "go/token" + "go/types" + "strings" +) + +// ZeroString returns the string representation of the zero value for any type t. +// The boolean result indicates whether the type is or contains an invalid type +// or a non-basic (constraint) interface type. +// +// Even for invalid input types, ZeroString may return a partially correct +// string representation. The caller should use the returned isValid boolean +// to determine the validity of the expression. +// +// When assigning to a wider type (such as 'any'), it's the caller's +// responsibility to handle any necessary type conversions. +// +// This string can be used on the right-hand side of an assignment where the +// left-hand side has that explicit type. +// References to named types are qualified by an appropriate (optional) +// qualifier function. +// Exception: This does not apply to tuples. Their string representation is +// informational only and cannot be used in an assignment. +// +// See [ZeroExpr] for a variant that returns an [ast.Expr]. +func ZeroString(t types.Type, qual types.Qualifier) (_ string, isValid bool) { + switch t := t.(type) { + case *types.Basic: + switch { + case t.Info()&types.IsBoolean != 0: + return "false", true + case t.Info()&types.IsNumeric != 0: + return "0", true + case t.Info()&types.IsString != 0: + return `""`, true + case t.Kind() == types.UnsafePointer: + fallthrough + case t.Kind() == types.UntypedNil: + return "nil", true + case t.Kind() == types.Invalid: + return "invalid", false + default: + panic(fmt.Sprintf("ZeroString for unexpected type %v", t)) + } + + case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: + return "nil", true + + case *types.Interface: + if !t.IsMethodSet() { + return "invalid", false + } + return "nil", true + + case *types.Named: + switch under := t.Underlying().(type) { + case *types.Struct, *types.Array: + return types.TypeString(t, qual) + "{}", true + default: + return ZeroString(under, qual) + } + + case *types.Alias: + switch t.Underlying().(type) { + case *types.Struct, *types.Array: + return types.TypeString(t, qual) + "{}", true + default: + // A type parameter can have alias but alias type's underlying type + // can never be a type parameter. + // Use types.Unalias to preserve the info of type parameter instead + // of call Underlying() going right through and get the underlying + // type of the type parameter which is always an interface. + return ZeroString(types.Unalias(t), qual) + } + + case *types.Array, *types.Struct: + return types.TypeString(t, qual) + "{}", true + + case *types.TypeParam: + // Assumes func new is not shadowed. + return "*new(" + types.TypeString(t, qual) + ")", true + + case *types.Tuple: + // Tuples are not normal values. + // We are currently format as "(t[0], ..., t[n])". Could be something else. + isValid := true + components := make([]string, t.Len()) + for i := 0; i < t.Len(); i++ { + comp, ok := ZeroString(t.At(i).Type(), qual) + + components[i] = comp + isValid = isValid && ok + } + return "(" + strings.Join(components, ", ") + ")", isValid + + case *types.Union: + // Variables of these types cannot be created, so it makes + // no sense to ask for their zero value. + panic(fmt.Sprintf("invalid type for a variable: %v", t)) + + default: + panic(t) // unreachable. + } +} + +// ZeroExpr returns the ast.Expr representation of the zero value for any type t. +// The boolean result indicates whether the type is or contains an invalid type +// or a non-basic (constraint) interface type. +// +// Even for invalid input types, ZeroExpr may return a partially correct ast.Expr +// representation. The caller should use the returned isValid boolean to determine +// the validity of the expression. +// +// This function is designed for types suitable for variables and should not be +// used with Tuple or Union types.References to named types are qualified by an +// appropriate (optional) qualifier function. +// +// See [ZeroString] for a variant that returns a string. +func ZeroExpr(t types.Type, qual types.Qualifier) (_ ast.Expr, isValid bool) { + switch t := t.(type) { + case *types.Basic: + switch { + case t.Info()&types.IsBoolean != 0: + return &ast.Ident{Name: "false"}, true + case t.Info()&types.IsNumeric != 0: + return &ast.BasicLit{Kind: token.INT, Value: "0"}, true + case t.Info()&types.IsString != 0: + return &ast.BasicLit{Kind: token.STRING, Value: `""`}, true + case t.Kind() == types.UnsafePointer: + fallthrough + case t.Kind() == types.UntypedNil: + return ast.NewIdent("nil"), true + case t.Kind() == types.Invalid: + return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false + default: + panic(fmt.Sprintf("ZeroExpr for unexpected type %v", t)) + } + + case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: + return ast.NewIdent("nil"), true + + case *types.Interface: + if !t.IsMethodSet() { + return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false + } + return ast.NewIdent("nil"), true + + case *types.Named: + switch under := t.Underlying().(type) { + case *types.Struct, *types.Array: + return &ast.CompositeLit{ + Type: TypeExpr(t, qual), + }, true + default: + return ZeroExpr(under, qual) + } + + case *types.Alias: + switch t.Underlying().(type) { + case *types.Struct, *types.Array: + return &ast.CompositeLit{ + Type: TypeExpr(t, qual), + }, true + default: + return ZeroExpr(types.Unalias(t), qual) + } + + case *types.Array, *types.Struct: + return &ast.CompositeLit{ + Type: TypeExpr(t, qual), + }, true + + case *types.TypeParam: + return &ast.StarExpr{ // *new(T) + X: &ast.CallExpr{ + // Assumes func new is not shadowed. + Fun: ast.NewIdent("new"), + Args: []ast.Expr{ + ast.NewIdent(t.Obj().Name()), + }, + }, + }, true + + case *types.Tuple: + // Unlike ZeroString, there is no ast.Expr can express tuple by + // "(t[0], ..., t[n])". + panic(fmt.Sprintf("invalid type for a variable: %v", t)) + + case *types.Union: + // Variables of these types cannot be created, so it makes + // no sense to ask for their zero value. + panic(fmt.Sprintf("invalid type for a variable: %v", t)) + + default: + panic(t) // unreachable. + } +} + +// IsZeroExpr uses simple syntactic heuristics to report whether expr +// is a obvious zero value, such as 0, "", nil, or false. +// It cannot do better without type information. +func IsZeroExpr(expr ast.Expr) bool { + switch e := expr.(type) { + case *ast.BasicLit: + return e.Value == "0" || e.Value == `""` + case *ast.Ident: + return e.Name == "nil" || e.Name == "false" + default: + return false + } +} + +// TypeExpr returns syntax for the specified type. References to named types +// are qualified by an appropriate (optional) qualifier function. +// It may panic for types such as Tuple or Union. +func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { + switch t := t.(type) { + case *types.Basic: + switch t.Kind() { + case types.UnsafePointer: + return &ast.SelectorExpr{X: ast.NewIdent(qual(types.NewPackage("unsafe", "unsafe"))), Sel: ast.NewIdent("Pointer")} + default: + return ast.NewIdent(t.Name()) + } + + case *types.Pointer: + return &ast.UnaryExpr{ + Op: token.MUL, + X: TypeExpr(t.Elem(), qual), + } + + case *types.Array: + return &ast.ArrayType{ + Len: &ast.BasicLit{ + Kind: token.INT, + Value: fmt.Sprintf("%d", t.Len()), + }, + Elt: TypeExpr(t.Elem(), qual), + } + + case *types.Slice: + return &ast.ArrayType{ + Elt: TypeExpr(t.Elem(), qual), + } + + case *types.Map: + return &ast.MapType{ + Key: TypeExpr(t.Key(), qual), + Value: TypeExpr(t.Elem(), qual), + } + + case *types.Chan: + dir := ast.ChanDir(t.Dir()) + if t.Dir() == types.SendRecv { + dir = ast.SEND | ast.RECV + } + return &ast.ChanType{ + Dir: dir, + Value: TypeExpr(t.Elem(), qual), + } + + case *types.Signature: + var params []*ast.Field + for i := 0; i < t.Params().Len(); i++ { + params = append(params, &ast.Field{ + Type: TypeExpr(t.Params().At(i).Type(), qual), + Names: []*ast.Ident{ + { + Name: t.Params().At(i).Name(), + }, + }, + }) + } + if t.Variadic() { + last := params[len(params)-1] + last.Type = &ast.Ellipsis{Elt: last.Type.(*ast.ArrayType).Elt} + } + var returns []*ast.Field + for i := 0; i < t.Results().Len(); i++ { + returns = append(returns, &ast.Field{ + Type: TypeExpr(t.Results().At(i).Type(), qual), + }) + } + return &ast.FuncType{ + Params: &ast.FieldList{ + List: params, + }, + Results: &ast.FieldList{ + List: returns, + }, + } + + case *types.TypeParam: + pkgName := qual(t.Obj().Pkg()) + if pkgName == "" || t.Obj().Pkg() == nil { + return ast.NewIdent(t.Obj().Name()) + } + return &ast.SelectorExpr{ + X: ast.NewIdent(pkgName), + Sel: ast.NewIdent(t.Obj().Name()), + } + + // types.TypeParam also implements interface NamedOrAlias. To differentiate, + // case TypeParam need to be present before case NamedOrAlias. + // TODO(hxjiang): remove this comment once TypeArgs() is added to interface + // NamedOrAlias. + case NamedOrAlias: + var expr ast.Expr = ast.NewIdent(t.Obj().Name()) + if pkgName := qual(t.Obj().Pkg()); pkgName != "." && pkgName != "" { + expr = &ast.SelectorExpr{ + X: ast.NewIdent(pkgName), + Sel: expr.(*ast.Ident), + } + } + + // TODO(hxjiang): call t.TypeArgs after adding method TypeArgs() to + // typesinternal.NamedOrAlias. + if hasTypeArgs, ok := t.(interface{ TypeArgs() *types.TypeList }); ok { + if typeArgs := hasTypeArgs.TypeArgs(); typeArgs != nil && typeArgs.Len() > 0 { + var indices []ast.Expr + for i := range typeArgs.Len() { + indices = append(indices, TypeExpr(typeArgs.At(i), qual)) + } + expr = &ast.IndexListExpr{ + X: expr, + Indices: indices, + } + } + } + + return expr + + case *types.Struct: + return ast.NewIdent(t.String()) + + case *types.Interface: + return ast.NewIdent(t.String()) + + case *types.Union: + if t.Len() == 0 { + panic("Union type should have at least one term") + } + // Same as go/ast, the return expression will put last term in the + // Y field at topmost level of BinaryExpr. + // For union of type "float32 | float64 | int64", the structure looks + // similar to: + // { + // X: { + // X: float32, + // Op: | + // Y: float64, + // } + // Op: |, + // Y: int64, + // } + var union ast.Expr + for i := range t.Len() { + term := t.Term(i) + termExpr := TypeExpr(term.Type(), qual) + if term.Tilde() { + termExpr = &ast.UnaryExpr{ + Op: token.TILDE, + X: termExpr, + } + } + if i == 0 { + union = termExpr + } else { + union = &ast.BinaryExpr{ + X: union, + Op: token.OR, + Y: termExpr, + } + } + } + return union + + case *types.Tuple: + panic("invalid input type types.Tuple") + + default: + panic("unreachable") + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go new file mode 100644 index 0000000..b53f178 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/features.go @@ -0,0 +1,43 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +// This file contains predicates for working with file versions to +// decide when a tool should consider a language feature enabled. + +// GoVersions that features in x/tools can be gated to. +const ( + Go1_18 = "go1.18" + Go1_19 = "go1.19" + Go1_20 = "go1.20" + Go1_21 = "go1.21" + Go1_22 = "go1.22" +) + +// Future is an invalid unknown Go version sometime in the future. +// Do not use directly with Compare. +const Future = "" + +// AtLeast reports whether the file version v comes after a Go release. +// +// Use this predicate to enable a behavior once a certain Go release +// has happened (and stays enabled in the future). +func AtLeast(v, release string) bool { + if v == Future { + return true // an unknown future version is always after y. + } + return Compare(Lang(v), Lang(release)) >= 0 +} + +// Before reports whether the file version v is strictly before a Go release. +// +// Use this predicate to disable a behavior once a certain Go release +// has happened (and stays enabled in the future). +func Before(v, release string) bool { + if v == Future { + return false // an unknown future version happens after y. + } + return Compare(Lang(v), Lang(release)) < 0 +} diff --git a/vendor/golang.org/x/tools/internal/versions/gover.go b/vendor/golang.org/x/tools/internal/versions/gover.go new file mode 100644 index 0000000..bbabcd2 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/gover.go @@ -0,0 +1,172 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This is a fork of internal/gover for use by x/tools until +// go1.21 and earlier are no longer supported by x/tools. + +package versions + +import "strings" + +// A gover is a parsed Go gover: major[.Minor[.Patch]][kind[pre]] +// The numbers are the original decimal strings to avoid integer overflows +// and since there is very little actual math. (Probably overflow doesn't matter in practice, +// but at the time this code was written, there was an existing test that used +// go1.99999999999, which does not fit in an int on 32-bit platforms. +// The "big decimal" representation avoids the problem entirely.) +type gover struct { + major string // decimal + minor string // decimal or "" + patch string // decimal or "" + kind string // "", "alpha", "beta", "rc" + pre string // decimal or "" +} + +// compare returns -1, 0, or +1 depending on whether +// x < y, x == y, or x > y, interpreted as toolchain versions. +// The versions x and y must not begin with a "go" prefix: just "1.21" not "go1.21". +// Malformed versions compare less than well-formed versions and equal to each other. +// The language version "1.21" compares less than the release candidate and eventual releases "1.21rc1" and "1.21.0". +func compare(x, y string) int { + vx := parse(x) + vy := parse(y) + + if c := cmpInt(vx.major, vy.major); c != 0 { + return c + } + if c := cmpInt(vx.minor, vy.minor); c != 0 { + return c + } + if c := cmpInt(vx.patch, vy.patch); c != 0 { + return c + } + if c := strings.Compare(vx.kind, vy.kind); c != 0 { // "" < alpha < beta < rc + return c + } + if c := cmpInt(vx.pre, vy.pre); c != 0 { + return c + } + return 0 +} + +// lang returns the Go language version. For example, lang("1.2.3") == "1.2". +func lang(x string) string { + v := parse(x) + if v.minor == "" || v.major == "1" && v.minor == "0" { + return v.major + } + return v.major + "." + v.minor +} + +// isValid reports whether the version x is valid. +func isValid(x string) bool { + return parse(x) != gover{} +} + +// parse parses the Go version string x into a version. +// It returns the zero version if x is malformed. +func parse(x string) gover { + var v gover + + // Parse major version. + var ok bool + v.major, x, ok = cutInt(x) + if !ok { + return gover{} + } + if x == "" { + // Interpret "1" as "1.0.0". + v.minor = "0" + v.patch = "0" + return v + } + + // Parse . before minor version. + if x[0] != '.' { + return gover{} + } + + // Parse minor version. + v.minor, x, ok = cutInt(x[1:]) + if !ok { + return gover{} + } + if x == "" { + // Patch missing is same as "0" for older versions. + // Starting in Go 1.21, patch missing is different from explicit .0. + if cmpInt(v.minor, "21") < 0 { + v.patch = "0" + } + return v + } + + // Parse patch if present. + if x[0] == '.' { + v.patch, x, ok = cutInt(x[1:]) + if !ok || x != "" { + // Note that we are disallowing prereleases (alpha, beta, rc) for patch releases here (x != ""). + // Allowing them would be a bit confusing because we already have: + // 1.21 < 1.21rc1 + // But a prerelease of a patch would have the opposite effect: + // 1.21.3rc1 < 1.21.3 + // We've never needed them before, so let's not start now. + return gover{} + } + return v + } + + // Parse prerelease. + i := 0 + for i < len(x) && (x[i] < '0' || '9' < x[i]) { + if x[i] < 'a' || 'z' < x[i] { + return gover{} + } + i++ + } + if i == 0 { + return gover{} + } + v.kind, x = x[:i], x[i:] + if x == "" { + return v + } + v.pre, x, ok = cutInt(x) + if !ok || x != "" { + return gover{} + } + + return v +} + +// cutInt scans the leading decimal number at the start of x to an integer +// and returns that value and the rest of the string. +func cutInt(x string) (n, rest string, ok bool) { + i := 0 + for i < len(x) && '0' <= x[i] && x[i] <= '9' { + i++ + } + if i == 0 || x[0] == '0' && i != 1 { // no digits or unnecessary leading zero + return "", "", false + } + return x[:i], x[i:], true +} + +// cmpInt returns cmp.Compare(x, y) interpreting x and y as decimal numbers. +// (Copied from golang.org/x/mod/semver's compareInt.) +func cmpInt(x, y string) int { + if x == y { + return 0 + } + if len(x) < len(y) { + return -1 + } + if len(x) > len(y) { + return +1 + } + if x < y { + return -1 + } else { + return +1 + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/types.go b/vendor/golang.org/x/tools/internal/versions/types.go new file mode 100644 index 0000000..0fc10ce --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/types.go @@ -0,0 +1,33 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +import ( + "go/ast" + "go/types" +) + +// FileVersion returns a file's Go version. +// The reported version is an unknown Future version if a +// version cannot be determined. +func FileVersion(info *types.Info, file *ast.File) string { + // In tools built with Go >= 1.22, the Go version of a file + // follow a cascades of sources: + // 1) types.Info.FileVersion, which follows the cascade: + // 1.a) file version (ast.File.GoVersion), + // 1.b) the package version (types.Config.GoVersion), or + // 2) is some unknown Future version. + // + // File versions require a valid package version to be provided to types + // in Config.GoVersion. Config.GoVersion is either from the package's module + // or the toolchain (go run). This value should be provided by go/packages + // or unitchecker.Config.GoVersion. + if v := info.FileVersions[file]; IsValid(v) { + return v + } + // Note: we could instead return runtime.Version() [if valid]. + // This would act as a max version on what a tool can support. + return Future +} diff --git a/vendor/golang.org/x/tools/internal/versions/versions.go b/vendor/golang.org/x/tools/internal/versions/versions.go new file mode 100644 index 0000000..8d1f745 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/versions.go @@ -0,0 +1,57 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +import ( + "strings" +) + +// Note: If we use build tags to use go/versions when go >=1.22, +// we run into go.dev/issue/53737. Under some operations users would see an +// import of "go/versions" even if they would not compile the file. +// For example, during `go get -u ./...` (go.dev/issue/64490) we do not try to include +// For this reason, this library just a clone of go/versions for the moment. + +// Lang returns the Go language version for version x. +// If x is not a valid version, Lang returns the empty string. +// For example: +// +// Lang("go1.21rc2") = "go1.21" +// Lang("go1.21.2") = "go1.21" +// Lang("go1.21") = "go1.21" +// Lang("go1") = "go1" +// Lang("bad") = "" +// Lang("1.21") = "" +func Lang(x string) string { + v := lang(stripGo(x)) + if v == "" { + return "" + } + return x[:2+len(v)] // "go"+v without allocation +} + +// Compare returns -1, 0, or +1 depending on whether +// x < y, x == y, or x > y, interpreted as Go versions. +// The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". +// Invalid versions, including the empty string, compare less than +// valid versions and equal to each other. +// The language version "go1.21" compares less than the +// release candidate and eventual releases "go1.21rc1" and "go1.21.0". +// Custom toolchain suffixes are ignored during comparison: +// "go1.21.0" and "go1.21.0-bigcorp" are equal. +func Compare(x, y string) int { return compare(stripGo(x), stripGo(y)) } + +// IsValid reports whether the version x is valid. +func IsValid(x string) bool { return isValid(stripGo(x)) } + +// stripGo converts from a "go1.21" version to a "1.21" version. +// If v does not start with "go", stripGo returns the empty string (a known invalid version). +func stripGo(v string) string { + v, _, _ = strings.Cut(v, "-") // strip -bigcorp suffix. + if len(v) < 2 || v[:2] != "go" { + return "" + } + return v[2:] +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 0c13ccc..ab1e6de 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,7 +1,78 @@ ## workspace +# github.com/a-h/parse v0.0.0-20250122154542-74294addb73e +## explicit; go 1.18 +github.com/a-h/parse +# github.com/a-h/templ v0.3.960 +## explicit; go 1.23.0 +github.com/a-h/templ +github.com/a-h/templ/cmd/templ +github.com/a-h/templ/cmd/templ/fmtcmd +github.com/a-h/templ/cmd/templ/generatecmd +github.com/a-h/templ/cmd/templ/generatecmd/modcheck +github.com/a-h/templ/cmd/templ/generatecmd/proxy +github.com/a-h/templ/cmd/templ/generatecmd/run +github.com/a-h/templ/cmd/templ/generatecmd/sse +github.com/a-h/templ/cmd/templ/generatecmd/watcher +github.com/a-h/templ/cmd/templ/infocmd +github.com/a-h/templ/cmd/templ/lspcmd +github.com/a-h/templ/cmd/templ/lspcmd/httpdebug +github.com/a-h/templ/cmd/templ/lspcmd/pls +github.com/a-h/templ/cmd/templ/lspcmd/proxy +github.com/a-h/templ/cmd/templ/processor +github.com/a-h/templ/cmd/templ/sloghandler +github.com/a-h/templ/cmd/templ/visualize +github.com/a-h/templ/generator +github.com/a-h/templ/internal/format +github.com/a-h/templ/internal/htmlfind +github.com/a-h/templ/internal/imports +github.com/a-h/templ/internal/lazyloader +github.com/a-h/templ/internal/prettier +github.com/a-h/templ/internal/skipdir +github.com/a-h/templ/internal/syncmap +github.com/a-h/templ/internal/syncset +github.com/a-h/templ/lsp/jsonrpc2 +github.com/a-h/templ/lsp/protocol +github.com/a-h/templ/lsp/uri +github.com/a-h/templ/lsp/xcontext +github.com/a-h/templ/parser/v2 +github.com/a-h/templ/parser/v2/goexpression +github.com/a-h/templ/parser/v2/visitor +github.com/a-h/templ/runtime +github.com/a-h/templ/safehtml +# github.com/andybalholm/brotli v1.1.0 +## explicit; go 1.13 +github.com/andybalholm/brotli +github.com/andybalholm/brotli/matchfinder +# github.com/cenkalti/backoff/v4 v4.3.0 +## explicit; go 1.18 +github.com/cenkalti/backoff/v4 +# github.com/cli/browser v1.3.0 +## explicit; go 1.21 +github.com/cli/browser +# github.com/fatih/color v1.16.0 +## explicit; go 1.17 +github.com/fatih/color +# github.com/fsnotify/fsnotify v1.7.0 +## explicit; go 1.17 +github.com/fsnotify/fsnotify +# github.com/hack-pad/safejs v0.1.1 +## explicit; go 1.18 +# github.com/mattn/go-colorable v0.1.13 +## explicit; go 1.15 +github.com/mattn/go-colorable +# github.com/mattn/go-isatty v0.0.20 +## explicit; go 1.15 +github.com/mattn/go-isatty # github.com/mdm-code/scanner v1.2.1 ## explicit; go 1.21 github.com/mdm-code/scanner +# github.com/natefinch/atomic v1.0.1 +## explicit; go 1.12 +github.com/natefinch/atomic +# github.com/nlepage/go-js-promise v1.0.0 +## explicit; go 1.12 +# github.com/nlepage/go-wasm-http-server/v2 v2.2.1 +## explicit; go 1.18 # github.com/pelletier/go-toml/v2 v2.1.0 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 @@ -9,3 +80,44 @@ github.com/pelletier/go-toml/v2/internal/characters github.com/pelletier/go-toml/v2/internal/danger github.com/pelletier/go-toml/v2/internal/tracker github.com/pelletier/go-toml/v2/unstable +# golang.org/x/mod v0.26.0 +## explicit; go 1.23.0 +golang.org/x/mod/internal/lazyregexp +golang.org/x/mod/modfile +golang.org/x/mod/module +golang.org/x/mod/semver +# golang.org/x/net v0.42.0 +## explicit; go 1.23.0 +golang.org/x/net/html +golang.org/x/net/html/atom +# golang.org/x/sync v0.16.0 +## explicit; go 1.23.0 +golang.org/x/sync/errgroup +# golang.org/x/sys v0.34.0 +## explicit; go 1.23.0 +golang.org/x/sys/unix +golang.org/x/sys/windows +# golang.org/x/tools v0.35.0 +## explicit; go 1.23.0 +golang.org/x/tools/go/ast/astutil +golang.org/x/tools/go/gcexportdata +golang.org/x/tools/go/packages +golang.org/x/tools/go/types/objectpath +golang.org/x/tools/go/types/typeutil +golang.org/x/tools/imports +golang.org/x/tools/internal/aliases +golang.org/x/tools/internal/event +golang.org/x/tools/internal/event/core +golang.org/x/tools/internal/event/keys +golang.org/x/tools/internal/event/label +golang.org/x/tools/internal/gcimporter +golang.org/x/tools/internal/gocommand +golang.org/x/tools/internal/gopathwalk +golang.org/x/tools/internal/imports +golang.org/x/tools/internal/modindex +golang.org/x/tools/internal/packagesinternal +golang.org/x/tools/internal/pkgbits +golang.org/x/tools/internal/stdlib +golang.org/x/tools/internal/typeparams +golang.org/x/tools/internal/typesinternal +golang.org/x/tools/internal/versions From 1def14c40a11ea1bc12e8a7280406d3794dda656 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Sun, 30 Nov 2025 19:53:42 +0100 Subject: [PATCH 05/23] Created tqweb Makefile --- tqweb/Makefile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tqweb/Makefile diff --git a/tqweb/Makefile b/tqweb/Makefile new file mode 100644 index 0000000..aeb4e48 --- /dev/null +++ b/tqweb/Makefile @@ -0,0 +1,17 @@ +HTMX_VERSION?=2.0.8 + +ifndef VERBOSE +.SILENT: +endif + +.PHONY: assets build + +.PHONY: .ONESHELL +.ONESHELL: + +assets: + cp $$(go env GOROOT)/lib/wasm/wasm_exec.js ./assets/js/ + curl https://cdn.jsdelivr.net/npm/htmx.org@$(HTMX_VERSION)/dist/htmx.min.js > ./assets/js/htmx.min.js + +build: assets + echo "building..." From fee1967c235ec9675b8a8f60213c4eaa8f59eaa9 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Sun, 30 Nov 2025 19:59:05 +0100 Subject: [PATCH 06/23] Added js asserts and placeholders --- tqweb/assets/css/.gitkeep | 0 tqweb/assets/favicon/.gitkeep | 0 tqweb/assets/image/.gitkeep | 0 tqweb/assets/js/htmx.min.js | 1 + tqweb/assets/js/wasm_exec.js | 575 ++++++++++++++++++++++++++++++++++ 5 files changed, 576 insertions(+) create mode 100644 tqweb/assets/css/.gitkeep create mode 100644 tqweb/assets/favicon/.gitkeep create mode 100644 tqweb/assets/image/.gitkeep create mode 100644 tqweb/assets/js/htmx.min.js create mode 100644 tqweb/assets/js/wasm_exec.js diff --git a/tqweb/assets/css/.gitkeep b/tqweb/assets/css/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tqweb/assets/favicon/.gitkeep b/tqweb/assets/favicon/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tqweb/assets/image/.gitkeep b/tqweb/assets/image/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tqweb/assets/js/htmx.min.js b/tqweb/assets/js/htmx.min.js new file mode 100644 index 0000000..faafa3e --- /dev/null +++ b/tqweb/assets/js/htmx.min.js @@ -0,0 +1 @@ +var htmx=function(){"use strict";const Q={onLoad:null,process:null,on:null,off:null,trigger:null,ajax:null,find:null,findAll:null,closest:null,values:function(e,t){const n=dn(e,t||"post");return n.values},remove:null,addClass:null,removeClass:null,toggleClass:null,takeClass:null,swap:null,defineExtension:null,removeExtension:null,logAll:null,logNone:null,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:"innerHTML",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:"htmx-indicator",requestClass:"htmx-request",addedClass:"htmx-added",settlingClass:"htmx-settling",swappingClass:"htmx-swapping",allowEval:true,allowScriptTags:true,inlineScriptNonce:"",inlineStyleNonce:"",attributesToSettle:["class","style","width","height"],withCredentials:false,timeout:0,wsReconnectDelay:"full-jitter",wsBinaryType:"blob",disableSelector:"[hx-disable], [data-hx-disable]",scrollBehavior:"instant",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:["get","delete"],selfRequestsOnly:true,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null,disableInheritance:false,responseHandling:[{code:"204",swap:false},{code:"[23]..",swap:true},{code:"[45]..",swap:false,error:true}],allowNestedOobSwaps:true,historyRestoreAsHxRequest:true,reportValidityOfForms:false},parseInterval:null,location:location,_:null,version:"2.0.8"};Q.onLoad=V;Q.process=Ft;Q.on=xe;Q.off=be;Q.trigger=ae;Q.ajax=Ln;Q.find=f;Q.findAll=x;Q.closest=g;Q.remove=_;Q.addClass=K;Q.removeClass=G;Q.toggleClass=W;Q.takeClass=Z;Q.swap=ze;Q.defineExtension=_n;Q.removeExtension=zn;Q.logAll=j;Q.logNone=$;Q.parseInterval=d;Q._=e;const n={addTriggerHandler:St,bodyContains:se,canAccessLocalStorage:X,findThisElement:Se,filterValues:yn,swap:ze,hasAttribute:s,getAttributeValue:a,getClosestAttributeValue:ne,getClosestMatch:q,getExpressionVars:Rn,getHeaders:mn,getInputValues:dn,getInternalData:oe,getSwapSpecification:bn,getTriggerSpecs:st,getTarget:Ee,makeFragment:D,mergeObjects:le,makeSettleInfo:Sn,oobSwap:Te,querySelectorExt:ue,settleImmediately:Yt,shouldCancel:ht,triggerEvent:ae,triggerErrorEvent:fe,withExtensions:Vt};const de=["get","post","put","delete","patch"];const R=de.map(function(e){return"[hx-"+e+"], [data-hx-"+e+"]"}).join(", ");function d(e){if(e==undefined){return undefined}let t=NaN;if(e.slice(-2)=="ms"){t=parseFloat(e.slice(0,-2))}else if(e.slice(-1)=="s"){t=parseFloat(e.slice(0,-1))*1e3}else if(e.slice(-1)=="m"){t=parseFloat(e.slice(0,-1))*1e3*60}else{t=parseFloat(e)}return isNaN(t)?undefined:t}function ee(e,t){return e instanceof Element&&e.getAttribute(t)}function s(e,t){return!!e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute("data-"+t))}function a(e,t){return ee(e,t)||ee(e,"data-"+t)}function u(e){const t=e.parentElement;if(!t&&e.parentNode instanceof ShadowRoot)return e.parentNode;return t}function te(){return document}function y(e,t){return e.getRootNode?e.getRootNode({composed:t}):te()}function q(e,t){while(e&&!t(e)){e=u(e)}return e||null}function o(e,t,n){const r=a(t,n);const o=a(t,"hx-disinherit");var i=a(t,"hx-inherit");if(e!==t){if(Q.config.disableInheritance){if(i&&(i==="*"||i.split(" ").indexOf(n)>=0)){return r}else{return null}}if(o&&(o==="*"||o.split(" ").indexOf(n)>=0)){return"unset"}}return r}function ne(t,n){let r=null;q(t,function(e){return!!(r=o(t,ce(e),n))});if(r!=="unset"){return r}}function h(e,t){return e instanceof Element&&e.matches(t)}function A(e){const t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;const n=t.exec(e);if(n){return n[1].toLowerCase()}else{return""}}function L(e){if("parseHTMLUnsafe"in Document){return Document.parseHTMLUnsafe(e)}const t=new DOMParser;return t.parseFromString(e,"text/html")}function N(e,t){while(t.childNodes.length>0){e.append(t.childNodes[0])}}function r(e){const t=te().createElement("script");ie(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}return t}function i(e){return e.matches("script")&&(e.type==="text/javascript"||e.type==="module"||e.type==="")}function I(e){Array.from(e.querySelectorAll("script")).forEach(e=>{if(i(e)){const t=r(e);const n=e.parentNode;try{n.insertBefore(t,e)}catch(e){H(e)}finally{e.remove()}}})}function D(e){const t=e.replace(/<head(\s[^>]*)?>[\s\S]*?<\/head>/i,"");const n=A(t);let r;if(n==="html"){r=new DocumentFragment;const i=L(e);N(r,i.body);r.title=i.title}else if(n==="body"){r=new DocumentFragment;const i=L(t);N(r,i.body);r.title=i.title}else{const i=L('<body><template class="internal-htmx-wrapper">'+t+"</template></body>");r=i.querySelector("template").content;r.title=i.title;var o=r.querySelector("title");if(o&&o.parentNode===r){o.remove();r.title=o.innerText}}if(r){if(Q.config.allowScriptTags){I(r)}else{r.querySelectorAll("script").forEach(e=>e.remove())}}return r}function re(e){if(e){e()}}function t(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function P(e){return typeof e==="function"}function k(e){return t(e,"Object")}function oe(e){const t="htmx-internal-data";let n=e[t];if(!n){n=e[t]={}}return n}function M(t){const n=[];if(t){for(let e=0;e<t.length;e++){n.push(t[e])}}return n}function ie(t,n){if(t){for(let e=0;e<t.length;e++){n(t[e])}}}function F(e){const t=e.getBoundingClientRect();const n=t.top;const r=t.bottom;return n<window.innerHeight&&r>=0}function se(e){return e.getRootNode({composed:true})===document}function B(e){return e.trim().split(/\s+/)}function le(e,t){for(const n in t){if(t.hasOwnProperty(n)){e[n]=t[n]}}return e}function v(e){try{return JSON.parse(e)}catch(e){H(e);return null}}function X(){const e="htmx:sessionStorageTest";try{sessionStorage.setItem(e,e);sessionStorage.removeItem(e);return true}catch(e){return false}}function U(e){const t=new URL(e,"http://x");if(t){e=t.pathname+t.search}if(e!="/"){e=e.replace(/\/+$/,"")}return e}function e(e){return On(te().body,function(){return eval(e)})}function V(t){const e=Q.on("htmx:load",function(e){t(e.detail.elt)});return e}function j(){Q.logger=function(e,t,n){if(console){console.log(t,e,n)}}}function $(){Q.logger=null}function f(e,t){if(typeof e!=="string"){return e.querySelector(t)}else{return f(te(),e)}}function x(e,t){if(typeof e!=="string"){return e.querySelectorAll(t)}else{return x(te(),e)}}function b(){return window}function _(e,t){e=w(e);if(t){b().setTimeout(function(){_(e);e=null},t)}else{u(e).removeChild(e)}}function ce(e){return e instanceof Element?e:null}function z(e){return e instanceof HTMLElement?e:null}function J(e){return typeof e==="string"?e:null}function p(e){return e instanceof Element||e instanceof Document||e instanceof DocumentFragment?e:null}function K(e,t,n){e=ce(w(e));if(!e){return}if(n){b().setTimeout(function(){K(e,t);e=null},n)}else{e.classList&&e.classList.add(t)}}function G(e,t,n){let r=ce(w(e));if(!r){return}if(n){b().setTimeout(function(){G(r,t);r=null},n)}else{if(r.classList){r.classList.remove(t);if(r.classList.length===0){r.removeAttribute("class")}}}}function W(e,t){e=w(e);e.classList.toggle(t)}function Z(e,t){e=w(e);ie(e.parentElement.children,function(e){G(e,t)});K(ce(e),t)}function g(e,t){e=ce(w(e));if(e){return e.closest(t)}return null}function l(e,t){return e.substring(0,t.length)===t}function Y(e,t){return e.substring(e.length-t.length)===t}function pe(e){const t=e.trim();if(l(t,"<")&&Y(t,"/>")){return t.substring(1,t.length-2)}else{return t}}function m(t,r,n){if(r.indexOf("global ")===0){return m(t,r.slice(7),true)}t=w(t);const o=[];{let t=0;let n=0;for(let e=0;e<r.length;e++){const l=r[e];if(l===","&&t===0){o.push(r.substring(n,e));n=e+1;continue}if(l==="<"){t++}else if(l==="/"&&e<r.length-1&&r[e+1]===">"){t--}}if(n<r.length){o.push(r.substring(n))}}const i=[];const s=[];while(o.length>0){const r=pe(o.shift());let e;if(r.indexOf("closest ")===0){e=g(ce(t),pe(r.slice(8)))}else if(r.indexOf("find ")===0){e=f(p(t),pe(r.slice(5)))}else if(r==="next"||r==="nextElementSibling"){e=ce(t).nextElementSibling}else if(r.indexOf("next ")===0){e=ge(t,pe(r.slice(5)),!!n)}else if(r==="previous"||r==="previousElementSibling"){e=ce(t).previousElementSibling}else if(r.indexOf("previous ")===0){e=me(t,pe(r.slice(9)),!!n)}else if(r==="document"){e=document}else if(r==="window"){e=window}else if(r==="body"){e=document.body}else if(r==="root"){e=y(t,!!n)}else if(r==="host"){e=t.getRootNode().host}else{s.push(r)}if(e){i.push(e)}}if(s.length>0){const e=s.join(",");const c=p(y(t,!!n));i.push(...M(c.querySelectorAll(e)))}return i}var ge=function(t,e,n){const r=p(y(t,n)).querySelectorAll(e);for(let e=0;e<r.length;e++){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_PRECEDING){return o}}};var me=function(t,e,n){const r=p(y(t,n)).querySelectorAll(e);for(let e=r.length-1;e>=0;e--){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_FOLLOWING){return o}}};function ue(e,t){if(typeof e!=="string"){return m(e,t)[0]}else{return m(te().body,e)[0]}}function w(e,t){if(typeof e==="string"){return f(p(t)||document,e)}else{return e}}function ye(e,t,n,r){if(P(t)){return{target:te().body,event:J(e),listener:t,options:n}}else{return{target:w(e),event:J(t),listener:n,options:r}}}function xe(t,n,r,o){Gn(function(){const e=ye(t,n,r,o);e.target.addEventListener(e.event,e.listener,e.options)});const e=P(n);return e?n:r}function be(t,n,r){Gn(function(){const e=ye(t,n,r);e.target.removeEventListener(e.event,e.listener)});return P(n)?n:r}const ve=te().createElement("output");function we(t,n){const e=ne(t,n);if(e){if(e==="this"){return[Se(t,n)]}else{const r=m(t,e);const o=/(^|,)(\s*)inherit(\s*)($|,)/.test(e);if(o){const i=ce(q(t,function(e){return e!==t&&s(ce(e),n)}));if(i){r.push(...we(i,n))}}if(r.length===0){H('The selector "'+e+'" on '+n+" returned no matches!");return[ve]}else{return r}}}}function Se(e,t){return ce(q(e,function(e){return a(ce(e),t)!=null}))}function Ee(e){const t=ne(e,"hx-target");if(t){if(t==="this"){return Se(e,"hx-target")}else{return ue(e,t)}}else{const n=oe(e);if(n.boosted){return te().body}else{return e}}}function Ce(e){return Q.config.attributesToSettle.includes(e)}function Oe(t,n){ie(Array.from(t.attributes),function(e){if(!n.hasAttribute(e.name)&&Ce(e.name)){t.removeAttribute(e.name)}});ie(n.attributes,function(e){if(Ce(e.name)){t.setAttribute(e.name,e.value)}})}function He(t,e){const n=Jn(e);for(let e=0;e<n.length;e++){const r=n[e];try{if(r.isInlineSwap(t)){return true}}catch(e){H(e)}}return t==="outerHTML"}function Te(e,o,i,t){t=t||te();let n="#"+CSS.escape(ee(o,"id"));let s="outerHTML";if(e==="true"){}else if(e.indexOf(":")>0){s=e.substring(0,e.indexOf(":"));n=e.substring(e.indexOf(":")+1)}else{s=e}o.removeAttribute("hx-swap-oob");o.removeAttribute("data-hx-swap-oob");const r=m(t,n,false);if(r.length){ie(r,function(e){let t;const n=o.cloneNode(true);t=te().createDocumentFragment();t.appendChild(n);if(!He(s,e)){t=p(n)}const r={shouldSwap:true,target:e,fragment:t};if(!ae(e,"htmx:oobBeforeSwap",r))return;e=r.target;if(r.shouldSwap){qe(t);$e(s,e,e,t,i);Re()}ie(i.elts,function(e){ae(e,"htmx:oobAfterSwap",r)})});o.parentNode.removeChild(o)}else{o.parentNode.removeChild(o);fe(te().body,"htmx:oobErrorNoTarget",{content:o})}return e}function Re(){const e=f("#--htmx-preserve-pantry--");if(e){for(const t of[...e.children]){const n=f("#"+t.id);n.parentNode.moveBefore(t,n);n.remove()}e.remove()}}function qe(e){ie(x(e,"[hx-preserve], [data-hx-preserve]"),function(e){const t=a(e,"id");const n=te().getElementById(t);if(n!=null){if(e.moveBefore){let e=f("#--htmx-preserve-pantry--");if(e==null){te().body.insertAdjacentHTML("afterend","<div id='--htmx-preserve-pantry--'></div>");e=f("#--htmx-preserve-pantry--")}e.moveBefore(n,null)}else{e.parentNode.replaceChild(n,e)}}})}function Ae(l,e,c){ie(e.querySelectorAll("[id]"),function(t){const n=ee(t,"id");if(n&&n.length>0){const r=n.replace("'","\\'");const o=t.tagName.replace(":","\\:");const e=p(l);const i=e&&e.querySelector(o+"[id='"+r+"']");if(i&&i!==e){const s=t.cloneNode();Oe(t,i);c.tasks.push(function(){Oe(t,s)})}}})}function Le(e){return function(){G(e,Q.config.addedClass);Ft(ce(e));Ne(p(e));ae(e,"htmx:load")}}function Ne(e){const t="[autofocus]";const n=z(h(e,t)?e:e.querySelector(t));if(n!=null){n.focus()}}function c(e,t,n,r){Ae(e,n,r);while(n.childNodes.length>0){const o=n.firstChild;K(ce(o),Q.config.addedClass);e.insertBefore(o,t);if(o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE){r.tasks.push(Le(o))}}}function Ie(e,t){let n=0;while(n<e.length){t=(t<<5)-t+e.charCodeAt(n++)|0}return t}function De(t){let n=0;for(let e=0;e<t.attributes.length;e++){const r=t.attributes[e];if(r.value){n=Ie(r.name,n);n=Ie(r.value,n)}}return n}function Pe(t){const n=oe(t);if(n.onHandlers){for(let e=0;e<n.onHandlers.length;e++){const r=n.onHandlers[e];be(t,r.event,r.listener)}delete n.onHandlers}}function ke(e){const t=oe(e);if(t.timeout){clearTimeout(t.timeout)}if(t.listenerInfos){ie(t.listenerInfos,function(e){if(e.on){be(e.on,e.trigger,e.listener)}})}Pe(e);ie(Object.keys(t),function(e){if(e!=="firstInitCompleted")delete t[e]})}function S(e){ae(e,"htmx:beforeCleanupElement");ke(e);ie(e.children,function(e){S(e)})}function Me(t,e,n){if(t.tagName==="BODY"){return je(t,e,n)}let r;const o=t.previousSibling;const i=u(t);if(!i){return}c(i,t,e,n);if(o==null){r=i.firstChild}else{r=o.nextSibling}n.elts=n.elts.filter(function(e){return e!==t});while(r&&r!==t){if(r instanceof Element){n.elts.push(r)}r=r.nextSibling}S(t);t.remove()}function Fe(e,t,n){return c(e,e.firstChild,t,n)}function Be(e,t,n){return c(u(e),e,t,n)}function Xe(e,t,n){return c(e,null,t,n)}function Ue(e,t,n){return c(u(e),e.nextSibling,t,n)}function Ve(e){S(e);const t=u(e);if(t){return t.removeChild(e)}}function je(e,t,n){const r=e.firstChild;c(e,r,t,n);if(r){while(r.nextSibling){S(r.nextSibling);e.removeChild(r.nextSibling)}S(r);e.removeChild(r)}}function $e(t,e,n,r,o){switch(t){case"none":return;case"outerHTML":Me(n,r,o);return;case"afterbegin":Fe(n,r,o);return;case"beforebegin":Be(n,r,o);return;case"beforeend":Xe(n,r,o);return;case"afterend":Ue(n,r,o);return;case"delete":Ve(n);return;default:var i=Jn(e);for(let e=0;e<i.length;e++){const s=i[e];try{const l=s.handleSwap(t,n,r,o);if(l){if(Array.isArray(l)){for(let e=0;e<l.length;e++){const c=l[e];if(c.nodeType!==Node.TEXT_NODE&&c.nodeType!==Node.COMMENT_NODE){o.tasks.push(Le(c))}}}return}}catch(e){H(e)}}if(t==="innerHTML"){je(n,r,o)}else{$e(Q.config.defaultSwapStyle,e,n,r,o)}}}function _e(e,n,r){var t=x(e,"[hx-swap-oob], [data-hx-swap-oob]");ie(t,function(e){if(Q.config.allowNestedOobSwaps||e.parentElement===null){const t=a(e,"hx-swap-oob");if(t!=null){Te(t,e,n,r)}}else{e.removeAttribute("hx-swap-oob");e.removeAttribute("data-hx-swap-oob")}});return t.length>0}function ze(h,d,p,g){if(!g){g={}}let m=null;let n=null;let e=function(){re(g.beforeSwapCallback);h=w(h);const r=g.contextElement?y(g.contextElement,false):te();const e=document.activeElement;let t={};t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null};const o=Sn(h);if(p.swapStyle==="textContent"){h.textContent=d}else{let n=D(d);o.title=g.title||n.title;if(g.historyRequest){n=n.querySelector("[hx-history-elt],[data-hx-history-elt]")||n}if(g.selectOOB){const i=g.selectOOB.split(",");for(let t=0;t<i.length;t++){const s=i[t].split(":",2);let e=s[0].trim();if(e.indexOf("#")===0){e=e.substring(1)}const l=s[1]||"true";const c=n.querySelector("#"+e);if(c){Te(l,c,o,r)}}}_e(n,o,r);ie(x(n,"template"),function(e){if(e.content&&_e(e.content,o,r)){e.remove()}});if(g.select){const u=te().createDocumentFragment();ie(n.querySelectorAll(g.select),function(e){u.appendChild(e)});n=u}qe(n);$e(p.swapStyle,g.contextElement,h,n,o);Re()}if(t.elt&&!se(t.elt)&&ee(t.elt,"id")){const f=document.getElementById(ee(t.elt,"id"));const a={preventScroll:p.focusScroll!==undefined?!p.focusScroll:!Q.config.defaultFocusScroll};if(f){if(t.start&&f.setSelectionRange){try{f.setSelectionRange(t.start,t.end)}catch(e){}}f.focus(a)}}h.classList.remove(Q.config.swappingClass);ie(o.elts,function(e){if(e.classList){e.classList.add(Q.config.settlingClass)}ae(e,"htmx:afterSwap",g.eventInfo)});re(g.afterSwapCallback);if(!p.ignoreTitle){Xn(o.title)}const n=function(){ie(o.tasks,function(e){e.call()});ie(o.elts,function(e){if(e.classList){e.classList.remove(Q.config.settlingClass)}ae(e,"htmx:afterSettle",g.eventInfo)});if(g.anchor){const e=ce(w("#"+g.anchor));if(e){e.scrollIntoView({block:"start",behavior:"auto"})}}En(o.elts,p);re(g.afterSettleCallback);re(m)};if(p.settleDelay>0){b().setTimeout(n,p.settleDelay)}else{n()}};let t=Q.config.globalViewTransitions;if(p.hasOwnProperty("transition")){t=p.transition}const r=g.contextElement||te();if(t&&ae(r,"htmx:beforeTransition",g.eventInfo)&&typeof Promise!=="undefined"&&document.startViewTransition){const o=new Promise(function(e,t){m=e;n=t});const i=e;e=function(){document.startViewTransition(function(){i();return o})}}try{if(p?.swapDelay&&p.swapDelay>0){b().setTimeout(e,p.swapDelay)}else{e()}}catch(e){fe(r,"htmx:swapError",g.eventInfo);re(n);throw e}}function Je(e,t,n){const r=e.getResponseHeader(t);if(r.indexOf("{")===0){const o=v(r);for(const i in o){if(o.hasOwnProperty(i)){let e=o[i];if(k(e)){n=e.target!==undefined?e.target:n}else{e={value:e}}ae(n,i,e)}}}else{const s=r.split(",");for(let e=0;e<s.length;e++){ae(n,s[e].trim(),[])}}}const Ke=/\s/;const E=/[\s,]/;const Ge=/[_$a-zA-Z]/;const We=/[_$a-zA-Z0-9]/;const Ze=['"',"'","/"];const C=/[^\s]/;const Ye=/[{(]/;const Qe=/[})]/;function et(e){const t=[];let n=0;while(n<e.length){if(Ge.exec(e.charAt(n))){var r=n;while(We.exec(e.charAt(n+1))){n++}t.push(e.substring(r,n+1))}else if(Ze.indexOf(e.charAt(n))!==-1){const o=e.charAt(n);var r=n;n++;while(n<e.length&&e.charAt(n)!==o){if(e.charAt(n)==="\\"){n++}n++}t.push(e.substring(r,n+1))}else{const i=e.charAt(n);t.push(i)}n++}return t}function tt(e,t,n){return Ge.exec(e.charAt(0))&&e!=="true"&&e!=="false"&&e!=="this"&&e!==n&&t!=="."}function nt(r,o,i){if(o[0]==="["){o.shift();let e=1;let t=" return (function("+i+"){ return (";let n=null;while(o.length>0){const s=o[0];if(s==="]"){e--;if(e===0){if(n===null){t=t+"true"}o.shift();t+=")})";try{const l=On(r,function(){return Function(t)()},function(){return true});l.source=t;return l}catch(e){fe(te().body,"htmx:syntax:error",{error:e,source:t});return null}}}else if(s==="["){e++}if(tt(s,n,i)){t+="(("+i+"."+s+") ? ("+i+"."+s+") : (window."+s+"))"}else{t=t+s}n=o.shift()}}}function O(e,t){let n="";while(e.length>0&&!t.test(e[0])){n+=e.shift()}return n}function rt(e){let t;if(e.length>0&&Ye.test(e[0])){e.shift();t=O(e,Qe).trim();e.shift()}else{t=O(e,E)}return t}const ot="input, textarea, select";function it(e,t,n){const r=[];const o=et(t);do{O(o,C);const l=o.length;const c=O(o,/[,\[\s]/);if(c!==""){if(c==="every"){const u={trigger:"every"};O(o,C);u.pollInterval=d(O(o,/[,\[\s]/));O(o,C);var i=nt(e,o,"event");if(i){u.eventFilter=i}r.push(u)}else{const f={trigger:c};var i=nt(e,o,"event");if(i){f.eventFilter=i}O(o,C);while(o.length>0&&o[0]!==","){const a=o.shift();if(a==="changed"){f.changed=true}else if(a==="once"){f.once=true}else if(a==="consume"){f.consume=true}else if(a==="delay"&&o[0]===":"){o.shift();f.delay=d(O(o,E))}else if(a==="from"&&o[0]===":"){o.shift();if(Ye.test(o[0])){var s=rt(o)}else{var s=O(o,E);if(s==="closest"||s==="find"||s==="next"||s==="previous"){o.shift();const h=rt(o);if(h.length>0){s+=" "+h}}}f.from=s}else if(a==="target"&&o[0]===":"){o.shift();f.target=rt(o)}else if(a==="throttle"&&o[0]===":"){o.shift();f.throttle=d(O(o,E))}else if(a==="queue"&&o[0]===":"){o.shift();f.queue=O(o,E)}else if(a==="root"&&o[0]===":"){o.shift();f[a]=rt(o)}else if(a==="threshold"&&o[0]===":"){o.shift();f[a]=O(o,E)}else{fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}r.push(f)}}if(o.length===l){fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}while(o[0]===","&&o.shift());if(n){n[t]=r}return r}function st(e){const t=a(e,"hx-trigger");let n=[];if(t){const r=Q.config.triggerSpecsCache;n=r&&r[t]||it(e,t,r)}if(n.length>0){return n}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"], input[type="submit"]')){return[{trigger:"click"}]}else if(h(e,ot)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function lt(e){oe(e).cancelled=true}function ct(e,t,n){const r=oe(e);r.timeout=b().setTimeout(function(){if(se(e)&&r.cancelled!==true){if(!pt(n,e,Xt("hx:poll:trigger",{triggerSpec:n,target:e}))){t(e)}ct(e,t,n)}},n.pollInterval)}function ut(e){return location.hostname===e.hostname&&ee(e,"href")&&ee(e,"href").indexOf("#")!==0}function ft(e){return g(e,Q.config.disableSelector)}function at(t,n,e){if(t instanceof HTMLAnchorElement&&ut(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"&&String(ee(t,"method")).toLowerCase()!=="dialog"){n.boosted=true;let r,o;if(t.tagName==="A"){r="get";o=ee(t,"href")}else{const i=ee(t,"method");r=i?i.toLowerCase():"get";o=ee(t,"action");if(o==null||o===""){o=location.href}if(r==="get"&&o.includes("?")){o=o.replace(/\?[^#]+/,"")}}e.forEach(function(e){gt(t,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)},n,e,true)})}}function ht(e,t){if(e.type==="submit"&&t.tagName==="FORM"){return true}else if(e.type==="click"){const n=t.closest('input[type="submit"], button');if(n&&n.form&&n.type==="submit"){return true}const r=t.closest("a");const o=/^#.+/;if(r&&r.href&&!o.test(r.getAttribute("href"))){return true}}return false}function dt(e,t){return oe(e).boosted&&e instanceof HTMLAnchorElement&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function pt(e,t,n){const r=e.eventFilter;if(r){try{return r.call(t,n)!==true}catch(e){const o=r.source;fe(te().body,"htmx:eventFilter:error",{error:e,source:o});return true}}return false}function gt(l,c,e,u,f){const a=oe(l);let t;if(u.from){t=m(l,u.from)}else{t=[l]}if(u.changed){if(!("lastValue"in a)){a.lastValue=new WeakMap}t.forEach(function(e){if(!a.lastValue.has(u)){a.lastValue.set(u,new WeakMap)}a.lastValue.get(u).set(e,e.value)})}ie(t,function(i){const s=function(e){if(!se(l)){i.removeEventListener(u.trigger,s);return}if(dt(l,e)){return}if(f||ht(e,i)){e.preventDefault()}if(pt(u,l,e)){return}const t=oe(e);t.triggerSpec=u;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(l)<0){t.handledFor.push(l);if(u.consume){e.stopPropagation()}if(u.target&&e.target){if(!h(ce(e.target),u.target)){return}}if(u.once){if(a.triggeredOnce){return}else{a.triggeredOnce=true}}if(u.changed){const n=e.target;const r=n.value;const o=a.lastValue.get(u);if(o.has(n)&&o.get(n)===r){return}o.set(n,r)}if(a.delayed){clearTimeout(a.delayed)}if(a.throttle){return}if(u.throttle>0){if(!a.throttle){ae(l,"htmx:trigger");c(l,e);a.throttle=b().setTimeout(function(){a.throttle=null},u.throttle)}}else if(u.delay>0){a.delayed=b().setTimeout(function(){ae(l,"htmx:trigger");c(l,e)},u.delay)}else{ae(l,"htmx:trigger");c(l,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:u.trigger,listener:s,on:i});i.addEventListener(u.trigger,s)})}let mt=false;let yt=null;function xt(){if(!yt){yt=function(){mt=true};window.addEventListener("scroll",yt);window.addEventListener("resize",yt);setInterval(function(){if(mt){mt=false;ie(te().querySelectorAll("[hx-trigger*='revealed'],[data-hx-trigger*='revealed']"),function(e){bt(e)})}},200)}}function bt(e){if(!s(e,"data-hx-revealed")&&F(e)){e.setAttribute("data-hx-revealed","true");const t=oe(e);if(t.initHash){ae(e,"revealed")}else{e.addEventListener("htmx:afterProcessNode",function(){ae(e,"revealed")},{once:true})}}}function vt(e,t,n,r){const o=function(){if(!n.loaded){n.loaded=true;ae(e,"htmx:trigger");t(e)}};if(r>0){b().setTimeout(o,r)}else{o()}}function wt(t,n,e){let i=false;ie(de,function(r){if(s(t,"hx-"+r)){const o=a(t,"hx-"+r);i=true;n.path=o;n.verb=r;e.forEach(function(e){St(t,e,n,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)})})}});return i}function St(r,e,t,n){if(e.trigger==="revealed"){xt();gt(r,n,t,e);bt(ce(r))}else if(e.trigger==="intersect"){const o={};if(e.root){o.root=ue(r,e.root)}if(e.threshold){o.threshold=parseFloat(e.threshold)}const i=new IntersectionObserver(function(t){for(let e=0;e<t.length;e++){const n=t[e];if(n.isIntersecting){ae(r,"intersect");break}}},o);i.observe(ce(r));gt(ce(r),n,t,e)}else if(!t.firstInitCompleted&&e.trigger==="load"){if(!pt(e,r,Xt("load",{elt:r}))){vt(ce(r),n,t,e.delay)}}else if(e.pollInterval>0){t.polling=true;ct(ce(r),n,e)}else{gt(r,n,t,e)}}function Et(e){const t=ce(e);if(!t){return false}const n=t.attributes;for(let e=0;e<n.length;e++){const r=n[e].name;if(l(r,"hx-on:")||l(r,"data-hx-on:")||l(r,"hx-on-")||l(r,"data-hx-on-")){return true}}return false}const Ct=(new XPathEvaluator).createExpression('.//*[@*[ starts-with(name(), "hx-on:") or starts-with(name(), "data-hx-on:") or'+' starts-with(name(), "hx-on-") or starts-with(name(), "data-hx-on-") ]]');function Ot(e,t){if(Et(e)){t.push(ce(e))}const n=Ct.evaluate(e);let r=null;while(r=n.iterateNext())t.push(ce(r))}function Ht(e){const t=[];if(e instanceof DocumentFragment){for(const n of e.childNodes){Ot(n,t)}}else{Ot(e,t)}return t}function Tt(e){if(e.querySelectorAll){const n=", [hx-boost] a, [data-hx-boost] a, a[hx-boost], a[data-hx-boost]";const r=[];for(const i in jn){const s=jn[i];if(s.getSelectors){var t=s.getSelectors();if(t){r.push(t)}}}const o=e.querySelectorAll(R+n+", form, [type='submit'],"+" [hx-ext], [data-hx-ext], [hx-trigger], [data-hx-trigger]"+r.flat().map(e=>", "+e).join(""));return o}else{return[]}}function Rt(e){const t=At(e.target);const n=Nt(e);if(n){n.lastButtonClicked=t}}function qt(e){const t=Nt(e);if(t){t.lastButtonClicked=null}}function At(e){return g(ce(e),"button, input[type='submit']")}function Lt(e){return e.form||g(e,"form")}function Nt(e){const t=At(e.target);if(!t){return}const n=Lt(t);if(!n){return}return oe(n)}function It(e){e.addEventListener("click",Rt);e.addEventListener("focusin",Rt);e.addEventListener("focusout",qt)}function Dt(t,e,n){const r=oe(t);if(!Array.isArray(r.onHandlers)){r.onHandlers=[]}let o;const i=function(e){On(t,function(){if(ft(t)){return}if(!o){o=new Function("event",n)}o.call(t,e)})};t.addEventListener(e,i);r.onHandlers.push({event:e,listener:i})}function Pt(t){Pe(t);for(let e=0;e<t.attributes.length;e++){const n=t.attributes[e].name;const r=t.attributes[e].value;if(l(n,"hx-on")||l(n,"data-hx-on")){const o=n.indexOf("-on")+3;const i=n.slice(o,o+1);if(i==="-"||i===":"){let e=n.slice(o+1);if(l(e,":")){e="htmx"+e}else if(l(e,"-")){e="htmx:"+e.slice(1)}else if(l(e,"htmx-")){e="htmx:"+e.slice(5)}Dt(t,e,r)}}}}function kt(t){ae(t,"htmx:beforeProcessNode");const n=oe(t);const e=st(t);const r=wt(t,n,e);if(!r){if(ne(t,"hx-boost")==="true"){at(t,n,e)}else if(s(t,"hx-trigger")){e.forEach(function(e){St(t,e,n,function(){})})}}if(t.tagName==="FORM"||ee(t,"type")==="submit"&&s(t,"form")){It(t)}n.firstInitCompleted=true;ae(t,"htmx:afterProcessNode")}function Mt(e){if(!(e instanceof Element)){return false}const t=oe(e);const n=De(e);if(t.initHash!==n){ke(e);t.initHash=n;return true}return false}function Ft(e){e=w(e);if(ft(e)){S(e);return}const t=[];if(Mt(e)){t.push(e)}ie(Tt(e),function(e){if(ft(e)){S(e);return}if(Mt(e)){t.push(e)}});ie(Ht(e),Pt);ie(t,kt)}function Bt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function Xt(e,t){return new CustomEvent(e,{bubbles:true,cancelable:true,composed:true,detail:t})}function fe(e,t,n){ae(e,t,le({error:t},n))}function Ut(e){return e==="htmx:afterProcessNode"}function Vt(e,t,n){ie(Jn(e,[],n),function(e){try{t(e)}catch(e){H(e)}})}function H(e){console.error(e)}function ae(e,t,n){e=w(e);if(n==null){n={}}n.elt=e;const r=Xt(t,n);if(Q.logger&&!Ut(t)){Q.logger(e,t,n)}if(n.error){H(n.error);ae(e,"htmx:error",{errorInfo:n})}let o=e.dispatchEvent(r);const i=Bt(t);if(o&&i!==t){const s=Xt(i,r.detail);o=o&&e.dispatchEvent(s)}Vt(ce(e),function(e){o=o&&(e.onEvent(t,r)!==false&&!r.defaultPrevented)});return o}let jt;function $t(e){jt=e;if(X()){sessionStorage.setItem("htmx-current-path-for-history",e)}}$t(location.pathname+location.search);function _t(){const e=te().querySelector("[hx-history-elt],[data-hx-history-elt]");return e||te().body}function zt(t,e){if(!X()){return}const n=Kt(e);const r=te().title;const o=window.scrollY;if(Q.config.historyCacheSize<=0){sessionStorage.removeItem("htmx-history-cache");return}t=U(t);const i=v(sessionStorage.getItem("htmx-history-cache"))||[];for(let e=0;e<i.length;e++){if(i[e].url===t){i.splice(e,1);break}}const s={url:t,content:n,title:r,scroll:o};ae(te().body,"htmx:historyItemCreated",{item:s,cache:i});i.push(s);while(i.length>Q.config.historyCacheSize){i.shift()}while(i.length>0){try{sessionStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){fe(te().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Jt(t){if(!X()){return null}t=U(t);const n=v(sessionStorage.getItem("htmx-history-cache"))||[];for(let e=0;e<n.length;e++){if(n[e].url===t){return n[e]}}return null}function Kt(e){const t=Q.config.requestClass;const n=e.cloneNode(true);ie(x(n,"."+t),function(e){G(e,t)});ie(x(n,"[data-disabled-by-htmx]"),function(e){e.removeAttribute("disabled")});return n.innerHTML}function Gt(){const e=_t();let t=jt;if(X()){t=sessionStorage.getItem("htmx-current-path-for-history")}t=t||location.pathname+location.search;const n=te().querySelector('[hx-history="false" i],[data-hx-history="false" i]');if(!n){ae(te().body,"htmx:beforeHistorySave",{path:t,historyElt:e});zt(t,e)}if(Q.config.historyEnabled)history.replaceState({htmx:true},te().title,location.href)}function Wt(e){if(Q.config.getCacheBusterParam){e=e.replace(/org\.htmx\.cache-buster=[^&]*&?/,"");if(Y(e,"&")||Y(e,"?")){e=e.slice(0,-1)}}if(Q.config.historyEnabled){history.pushState({htmx:true},"",e)}$t(e)}function Zt(e){if(Q.config.historyEnabled)history.replaceState({htmx:true},"",e);$t(e)}function Yt(e){ie(e,function(e){e.call(undefined)})}function Qt(e){const t=new XMLHttpRequest;const n={swapStyle:"innerHTML",swapDelay:0,settleDelay:0};const r={path:e,xhr:t,historyElt:_t(),swapSpec:n};t.open("GET",e,true);if(Q.config.historyRestoreAsHxRequest){t.setRequestHeader("HX-Request","true")}t.setRequestHeader("HX-History-Restore-Request","true");t.setRequestHeader("HX-Current-URL",location.href);t.onload=function(){if(this.status>=200&&this.status<400){r.response=this.response;ae(te().body,"htmx:historyCacheMissLoad",r);ze(r.historyElt,r.response,n,{contextElement:r.historyElt,historyRequest:true});$t(r.path);ae(te().body,"htmx:historyRestore",{path:e,cacheMiss:true,serverResponse:r.response})}else{fe(te().body,"htmx:historyCacheMissLoadError",r)}};if(ae(te().body,"htmx:historyCacheMiss",r)){t.send()}}function en(e){Gt();e=e||location.pathname+location.search;const t=Jt(e);if(t){const n={swapStyle:"innerHTML",swapDelay:0,settleDelay:0,scroll:t.scroll};const r={path:e,item:t,historyElt:_t(),swapSpec:n};if(ae(te().body,"htmx:historyCacheHit",r)){ze(r.historyElt,t.content,n,{contextElement:r.historyElt,title:t.title});$t(r.path);ae(te().body,"htmx:historyRestore",r)}}else{if(Q.config.refreshOnHistoryMiss){Q.location.reload(true)}else{Qt(e)}}}function tn(e){let t=we(e,"hx-indicator");if(t==null){t=[e]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.classList.add.call(e.classList,Q.config.requestClass)});return t}function nn(e){let t=we(e,"hx-disabled-elt");if(t==null){t=[]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute("disabled","");e.setAttribute("data-disabled-by-htmx","")});return t}function rn(e,t){ie(e.concat(t),function(e){const t=oe(e);t.requestCount=(t.requestCount||1)-1});ie(e,function(e){const t=oe(e);if(t.requestCount===0){e.classList.remove.call(e.classList,Q.config.requestClass)}});ie(t,function(e){const t=oe(e);if(t.requestCount===0){e.removeAttribute("disabled");e.removeAttribute("data-disabled-by-htmx")}})}function on(t,n){for(let e=0;e<t.length;e++){const r=t[e];if(r.isSameNode(n)){return true}}return false}function sn(e){const t=e;if(t.name===""||t.name==null||t.disabled||g(t,"fieldset[disabled]")){return false}if(t.type==="button"||t.type==="submit"||t.tagName==="image"||t.tagName==="reset"||t.tagName==="file"){return false}if(t.type==="checkbox"||t.type==="radio"){return t.checked}return true}function ln(t,e,n){if(t!=null&&e!=null){if(Array.isArray(e)){e.forEach(function(e){n.append(t,e)})}else{n.append(t,e)}}}function cn(t,n,r){if(t!=null&&n!=null){let e=r.getAll(t);if(Array.isArray(n)){e=e.filter(e=>n.indexOf(e)<0)}else{e=e.filter(e=>e!==n)}r.delete(t);ie(e,e=>r.append(t,e))}}function un(e){if(e instanceof HTMLSelectElement&&e.multiple){return M(e.querySelectorAll("option:checked")).map(function(e){return e.value})}if(e instanceof HTMLInputElement&&e.files){return M(e.files)}return e.value}function fn(t,n,r,e,o){if(e==null||on(t,e)){return}else{t.push(e)}if(sn(e)){const i=ee(e,"name");ln(i,un(e),n);if(o){an(e,r)}}if(e instanceof HTMLFormElement){ie(e.elements,function(e){if(t.indexOf(e)>=0){cn(e.name,un(e),n)}else{t.push(e)}if(o){an(e,r)}});new FormData(e).forEach(function(e,t){if(e instanceof File&&e.name===""){return}ln(t,e,n)})}}function an(e,t){const n=e;if(n.willValidate){ae(n,"htmx:validation:validate");if(!n.checkValidity()){if(ae(n,"htmx:validation:failed",{message:n.validationMessage,validity:n.validity})&&!t.length&&Q.config.reportValidityOfForms){n.reportValidity()}t.push({elt:n,message:n.validationMessage,validity:n.validity})}}}function hn(n,e){for(const t of e.keys()){n.delete(t)}e.forEach(function(e,t){n.append(t,e)});return n}function dn(e,t){const n=[];const r=new FormData;const o=new FormData;const i=[];const s=oe(e);if(s.lastButtonClicked&&!se(s.lastButtonClicked)){s.lastButtonClicked=null}let l=e instanceof HTMLFormElement&&e.noValidate!==true||a(e,"hx-validate")==="true";if(s.lastButtonClicked){l=l&&s.lastButtonClicked.formNoValidate!==true}if(t!=="get"){fn(n,o,i,Lt(e),l)}fn(n,r,i,e,l);if(s.lastButtonClicked||e.tagName==="BUTTON"||e.tagName==="INPUT"&&ee(e,"type")==="submit"){const u=s.lastButtonClicked||e;const f=ee(u,"name");ln(f,u.value,o)}const c=we(e,"hx-include");ie(c,function(e){fn(n,r,i,ce(e),l);if(!h(e,"form")){ie(p(e).querySelectorAll(ot),function(e){fn(n,r,i,e,l)})}});hn(r,o);return{errors:i,formData:r,values:kn(r)}}function pn(e,t,n){if(e!==""){e+="&"}if(String(n)==="[object Object]"){n=JSON.stringify(n)}const r=encodeURIComponent(n);e+=encodeURIComponent(t)+"="+r;return e}function gn(e){e=Dn(e);let n="";e.forEach(function(e,t){n=pn(n,t,e)});return n}function mn(e,t,n){const r={"HX-Request":"true","HX-Trigger":ee(e,"id"),"HX-Trigger-Name":ee(e,"name"),"HX-Target":a(t,"id"),"HX-Current-URL":location.href};Cn(e,"hx-headers",false,r);if(n!==undefined){r["HX-Prompt"]=n}if(oe(e).boosted){r["HX-Boosted"]="true"}return r}function yn(n,e){const t=ne(e,"hx-params");if(t){if(t==="none"){return new FormData}else if(t==="*"){return n}else if(t.indexOf("not ")===0){ie(t.slice(4).split(","),function(e){e=e.trim();n.delete(e)});return n}else{const r=new FormData;ie(t.split(","),function(t){t=t.trim();if(n.has(t)){n.getAll(t).forEach(function(e){r.append(t,e)})}});return r}}else{return n}}function xn(e){return!!ee(e,"href")&&ee(e,"href").indexOf("#")>=0}function bn(e,t){const n=t||ne(e,"hx-swap");const r={swapStyle:oe(e).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&oe(e).boosted&&!xn(e)){r.show="top"}if(n){const s=B(n);if(s.length>0){for(let e=0;e<s.length;e++){const l=s[e];if(l.indexOf("swap:")===0){r.swapDelay=d(l.slice(5))}else if(l.indexOf("settle:")===0){r.settleDelay=d(l.slice(7))}else if(l.indexOf("transition:")===0){r.transition=l.slice(11)==="true"}else if(l.indexOf("ignoreTitle:")===0){r.ignoreTitle=l.slice(12)==="true"}else if(l.indexOf("scroll:")===0){const c=l.slice(7);var o=c.split(":");const u=o.pop();var i=o.length>0?o.join(":"):null;r.scroll=u;r.scrollTarget=i}else if(l.indexOf("show:")===0){const f=l.slice(5);var o=f.split(":");const a=o.pop();var i=o.length>0?o.join(":"):null;r.show=a;r.showTarget=i}else if(l.indexOf("focus-scroll:")===0){const h=l.slice("focus-scroll:".length);r.focusScroll=h=="true"}else if(e==0){r.swapStyle=l}else{H("Unknown modifier in hx-swap: "+l)}}}}return r}function vn(e){return ne(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&ee(e,"enctype")==="multipart/form-data"}function wn(t,n,r){let o=null;Vt(n,function(e){if(o==null){o=e.encodeParameters(t,r,n)}});if(o!=null){return o}else{if(vn(n)){return hn(new FormData,Dn(r))}else{return gn(r)}}}function Sn(e){return{tasks:[],elts:[e]}}function En(e,t){const n=e[0];const r=e[e.length-1];if(t.scroll){var o=null;if(t.scrollTarget){o=ce(ue(n,t.scrollTarget))}if(t.scroll==="top"&&(n||o)){o=o||n;o.scrollTop=0}if(t.scroll==="bottom"&&(r||o)){o=o||r;o.scrollTop=o.scrollHeight}if(typeof t.scroll==="number"){b().setTimeout(function(){window.scrollTo(0,t.scroll)},0)}}if(t.show){var o=null;if(t.showTarget){let e=t.showTarget;if(t.showTarget==="window"){e="body"}o=ce(ue(n,e))}if(t.show==="top"&&(n||o)){o=o||n;o.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})}if(t.show==="bottom"&&(r||o)){o=o||r;o.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior})}}}function Cn(r,e,o,i,s){if(i==null){i={}}if(r==null){return i}const l=a(r,e);if(l){let e=l.trim();let t=o;if(e==="unset"){return null}if(e.indexOf("javascript:")===0){e=e.slice(11);t=true}else if(e.indexOf("js:")===0){e=e.slice(3);t=true}if(e.indexOf("{")!==0){e="{"+e+"}"}let n;if(t){n=On(r,function(){if(s){return Function("event","return ("+e+")").call(r,s)}else{return Function("return ("+e+")").call(r)}},{})}else{n=v(e)}for(const c in n){if(n.hasOwnProperty(c)){if(i[c]==null){i[c]=n[c]}}}}return Cn(ce(u(r)),e,o,i,s)}function On(e,t,n){if(Q.config.allowEval){return t()}else{fe(e,"htmx:evalDisallowedError");return n}}function Hn(e,t,n){return Cn(e,"hx-vars",true,n,t)}function Tn(e,t,n){return Cn(e,"hx-vals",false,n,t)}function Rn(e,t){return le(Hn(e,t),Tn(e,t))}function qn(t,n,r){if(r!==null){try{t.setRequestHeader(n,r)}catch(e){t.setRequestHeader(n,encodeURIComponent(r));t.setRequestHeader(n+"-URI-AutoEncoded","true")}}}function An(t){if(t.responseURL){try{const e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(te().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function T(e,t){return t.test(e.getAllResponseHeaders())}function Ln(t,n,r){t=t.toLowerCase();if(r){if(r instanceof Element||typeof r==="string"){return he(t,n,null,null,{targetOverride:w(r)||ve,returnPromise:true})}else{let e=w(r.target);if(r.target&&!e||r.source&&!e&&!w(r.source)){e=ve}return he(t,n,w(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:e,swapOverride:r.swap,select:r.select,returnPromise:true,push:r.push,replace:r.replace,selectOOB:r.selectOOB})}}else{return he(t,n,null,null,{returnPromise:true})}}function Nn(e){const t=[];while(e){t.push(e);e=e.parentElement}return t}function In(e,t,n){const r=new URL(t,location.protocol!=="about:"?location.href:window.origin);const o=location.protocol!=="about:"?location.origin:window.origin;const i=o===r.origin;if(Q.config.selfRequestsOnly){if(!i){return false}}return ae(e,"htmx:validateUrl",le({url:r,sameHost:i},n))}function Dn(e){if(e instanceof FormData)return e;const t=new FormData;for(const n in e){if(e.hasOwnProperty(n)){if(e[n]&&typeof e[n].forEach==="function"){e[n].forEach(function(e){t.append(n,e)})}else if(typeof e[n]==="object"&&!(e[n]instanceof Blob)){t.append(n,JSON.stringify(e[n]))}else{t.append(n,e[n])}}}return t}function Pn(r,o,e){return new Proxy(e,{get:function(t,e){if(typeof e==="number")return t[e];if(e==="length")return t.length;if(e==="push"){return function(e){t.push(e);r.append(o,e)}}if(typeof t[e]==="function"){return function(){t[e].apply(t,arguments);r.delete(o);t.forEach(function(e){r.append(o,e)})}}if(t[e]&&t[e].length===1){return t[e][0]}else{return t[e]}},set:function(e,t,n){e[t]=n;r.delete(o);e.forEach(function(e){r.append(o,e)});return true}})}function kn(o){return new Proxy(o,{get:function(e,t){if(typeof t==="symbol"){const r=Reflect.get(e,t);if(typeof r==="function"){return function(){return r.apply(o,arguments)}}else{return r}}if(t==="toJSON"){return()=>Object.fromEntries(o)}if(t in e){if(typeof e[t]==="function"){return function(){return o[t].apply(o,arguments)}}}const n=o.getAll(t);if(n.length===0){return undefined}else if(n.length===1){return n[0]}else{return Pn(e,t,n)}},set:function(t,n,e){if(typeof n!=="string"){return false}t.delete(n);if(e&&typeof e.forEach==="function"){e.forEach(function(e){t.append(n,e)})}else if(typeof e==="object"&&!(e instanceof Blob)){t.append(n,JSON.stringify(e))}else{t.append(n,e)}return true},deleteProperty:function(e,t){if(typeof t==="string"){e.delete(t)}return true},ownKeys:function(e){return Reflect.ownKeys(Object.fromEntries(e))},getOwnPropertyDescriptor:function(e,t){return Reflect.getOwnPropertyDescriptor(Object.fromEntries(e),t)}})}function he(t,n,r,o,i,k){let s=null;let l=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var e=new Promise(function(e,t){s=e;l=t})}if(r==null){r=te().body}const M=i.handler||Vn;const F=i.select||null;if(!se(r)){re(s);return e}const c=i.targetOverride||ce(Ee(r));if(c==null||c==ve){fe(r,"htmx:targetError",{target:ne(r,"hx-target")});re(l);return e}let u=oe(r);const f=u.lastButtonClicked;if(f){const A=ee(f,"formaction");if(A!=null){n=A}const L=ee(f,"formmethod");if(L!=null){if(de.includes(L.toLowerCase())){t=L}else{re(s);return e}}}const a=ne(r,"hx-confirm");if(k===undefined){const K=function(e){return he(t,n,r,o,i,!!e)};const G={target:c,elt:r,path:n,verb:t,triggeringEvent:o,etc:i,issueRequest:K,question:a};if(ae(r,"htmx:confirm",G)===false){re(s);return e}}let h=r;let d=ne(r,"hx-sync");let p=null;let B=false;if(d){const N=d.split(":");const I=N[0].trim();if(I==="this"){h=Se(r,"hx-sync")}else{h=ce(ue(r,I))}d=(N[1]||"drop").trim();u=oe(h);if(d==="drop"&&u.xhr&&u.abortable!==true){re(s);return e}else if(d==="abort"){if(u.xhr){re(s);return e}else{B=true}}else if(d==="replace"){ae(h,"htmx:abort")}else if(d.indexOf("queue")===0){const W=d.split(" ");p=(W[1]||"last").trim()}}if(u.xhr){if(u.abortable){ae(h,"htmx:abort")}else{if(p==null){if(o){const D=oe(o);if(D&&D.triggerSpec&&D.triggerSpec.queue){p=D.triggerSpec.queue}}if(p==null){p="last"}}if(u.queuedRequests==null){u.queuedRequests=[]}if(p==="first"&&u.queuedRequests.length===0){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="all"){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="last"){u.queuedRequests=[];u.queuedRequests.push(function(){he(t,n,r,o,i)})}re(s);return e}}const g=new XMLHttpRequest;u.xhr=g;u.abortable=B;const m=function(){u.xhr=null;u.abortable=false;if(u.queuedRequests!=null&&u.queuedRequests.length>0){const e=u.queuedRequests.shift();e()}};const X=ne(r,"hx-prompt");if(X){var y=prompt(X);if(y===null||!ae(r,"htmx:prompt",{prompt:y,target:c})){re(s);m();return e}}if(a&&!k){if(!confirm(a)){re(s);m();return e}}let x=mn(r,c,y);if(t!=="get"&&!vn(r)){x["Content-Type"]="application/x-www-form-urlencoded"}if(i.headers){x=le(x,i.headers)}const U=dn(r,t);let b=U.errors;const V=U.formData;if(i.values){hn(V,Dn(i.values))}const j=Dn(Rn(r,o));const v=hn(V,j);let w=yn(v,r);if(Q.config.getCacheBusterParam&&t==="get"){w.set("org.htmx.cache-buster",ee(c,"id")||"true")}if(n==null||n===""){n=location.href}const S=Cn(r,"hx-request");const $=oe(r).boosted;let E=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;const C={boosted:$,useUrlParams:E,formData:w,parameters:kn(w),unfilteredFormData:v,unfilteredParameters:kn(v),headers:x,elt:r,target:c,verb:t,errors:b,withCredentials:i.credentials||S.credentials||Q.config.withCredentials,timeout:i.timeout||S.timeout||Q.config.timeout,path:n,triggeringEvent:o};if(!ae(r,"htmx:configRequest",C)){re(s);m();return e}n=C.path;t=C.verb;x=C.headers;w=Dn(C.parameters);b=C.errors;E=C.useUrlParams;if(b&&b.length>0){ae(r,"htmx:validation:halted",C);re(s);m();return e}const _=n.split("#");const z=_[0];const O=_[1];let H=n;if(E){H=z;const Z=!w.keys().next().done;if(Z){if(H.indexOf("?")<0){H+="?"}else{H+="&"}H+=gn(w);if(O){H+="#"+O}}}if(!In(r,H,C)){fe(r,"htmx:invalidPath",C);re(l);m();return e}g.open(t.toUpperCase(),H,true);g.overrideMimeType("text/html");g.withCredentials=C.withCredentials;g.timeout=C.timeout;if(S.noHeaders){}else{for(const P in x){if(x.hasOwnProperty(P)){const Y=x[P];qn(g,P,Y)}}}const T={xhr:g,target:c,requestConfig:C,etc:i,boosted:$,select:F,pathInfo:{requestPath:n,finalRequestPath:H,responsePath:null,anchor:O}};g.onload=function(){try{const t=Nn(r);T.pathInfo.responsePath=An(g);M(r,T);if(T.keepIndicators!==true){rn(R,q)}ae(r,"htmx:afterRequest",T);ae(r,"htmx:afterOnLoad",T);if(!se(r)){let e=null;while(t.length>0&&e==null){const n=t.shift();if(se(n)){e=n}}if(e){ae(e,"htmx:afterRequest",T);ae(e,"htmx:afterOnLoad",T)}}re(s)}catch(e){fe(r,"htmx:onLoadError",le({error:e},T));throw e}finally{m()}};g.onerror=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:sendError",T);re(l);m()};g.onabort=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:sendAbort",T);re(l);m()};g.ontimeout=function(){rn(R,q);fe(r,"htmx:afterRequest",T);fe(r,"htmx:timeout",T);re(l);m()};if(!ae(r,"htmx:beforeRequest",T)){re(s);m();return e}var R=tn(r);var q=nn(r);ie(["loadstart","loadend","progress","abort"],function(t){ie([g,g.upload],function(e){e.addEventListener(t,function(e){ae(r,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ae(r,"htmx:beforeSend",T);const J=E?null:wn(g,r,w);g.send(J);return e}function Mn(e,t){const n=t.xhr;let r=null;let o=null;if(T(n,/HX-Push:/i)){r=n.getResponseHeader("HX-Push");o="push"}else if(T(n,/HX-Push-Url:/i)){r=n.getResponseHeader("HX-Push-Url");o="push"}else if(T(n,/HX-Replace-Url:/i)){r=n.getResponseHeader("HX-Replace-Url");o="replace"}if(r){if(r==="false"){return{}}else{return{type:o,path:r}}}const i=t.pathInfo.finalRequestPath;const s=t.pathInfo.responsePath;const l=t.etc.push||ne(e,"hx-push-url");const c=t.etc.replace||ne(e,"hx-replace-url");const u=oe(e).boosted;let f=null;let a=null;if(l){f="push";a=l}else if(c){f="replace";a=c}else if(u){f="push";a=s||i}if(a){if(a==="false"){return{}}if(a==="true"){a=s||i}if(t.pathInfo.anchor&&a.indexOf("#")===-1){a=a+"#"+t.pathInfo.anchor}return{type:f,path:a}}else{return{}}}function Fn(e,t){var n=new RegExp(e.code);return n.test(t.toString(10))}function Bn(e){for(var t=0;t<Q.config.responseHandling.length;t++){var n=Q.config.responseHandling[t];if(Fn(n,e.status)){return n}}return{swap:false}}function Xn(e){if(e){const t=f("title");if(t){t.textContent=e}else{window.document.title=e}}}function Un(e,t){if(t==="this"){return e}const n=ce(ue(e,t));if(n==null){fe(e,"htmx:targetError",{target:t});throw new Error(`Invalid re-target ${t}`)}return n}function Vn(t,e){const n=e.xhr;let r=e.target;const o=e.etc;const i=e.select;if(!ae(t,"htmx:beforeOnLoad",e))return;if(T(n,/HX-Trigger:/i)){Je(n,"HX-Trigger",t)}if(T(n,/HX-Location:/i)){let e=n.getResponseHeader("HX-Location");var s={};if(e.indexOf("{")===0){s=v(e);e=s.path;delete s.path}s.push=s.push||"true";Ln("get",e,s);return}const l=T(n,/HX-Refresh:/i)&&n.getResponseHeader("HX-Refresh")==="true";if(T(n,/HX-Redirect:/i)){e.keepIndicators=true;Q.location.href=n.getResponseHeader("HX-Redirect");l&&Q.location.reload();return}if(l){e.keepIndicators=true;Q.location.reload();return}const c=Mn(t,e);const u=Bn(n);const f=u.swap;let a=!!u.error;let h=Q.config.ignoreTitle||u.ignoreTitle;let d=u.select;if(u.target){e.target=Un(t,u.target)}var p=o.swapOverride;if(p==null&&u.swapOverride){p=u.swapOverride}if(T(n,/HX-Retarget:/i)){e.target=Un(t,n.getResponseHeader("HX-Retarget"))}if(T(n,/HX-Reswap:/i)){p=n.getResponseHeader("HX-Reswap")}var g=n.response;var m=le({shouldSwap:f,serverResponse:g,isError:a,ignoreTitle:h,selectOverride:d,swapOverride:p},e);if(u.event&&!ae(r,u.event,m))return;if(!ae(r,"htmx:beforeSwap",m))return;r=m.target;g=m.serverResponse;a=m.isError;h=m.ignoreTitle;d=m.selectOverride;p=m.swapOverride;e.target=r;e.failed=a;e.successful=!a;if(m.shouldSwap){if(n.status===286){lt(t)}Vt(t,function(e){g=e.transformResponse(g,n,t)});if(c.type){Gt()}var y=bn(t,p);if(!y.hasOwnProperty("ignoreTitle")){y.ignoreTitle=h}r.classList.add(Q.config.swappingClass);if(i){d=i}if(T(n,/HX-Reselect:/i)){d=n.getResponseHeader("HX-Reselect")}const x=o.selectOOB||ne(t,"hx-select-oob");const b=ne(t,"hx-select");ze(r,g,y,{select:d==="unset"?null:d||b,selectOOB:x,eventInfo:e,anchor:e.pathInfo.anchor,contextElement:t,afterSwapCallback:function(){if(T(n,/HX-Trigger-After-Swap:/i)){let e=t;if(!se(t)){e=te().body}Je(n,"HX-Trigger-After-Swap",e)}},afterSettleCallback:function(){if(T(n,/HX-Trigger-After-Settle:/i)){let e=t;if(!se(t)){e=te().body}Je(n,"HX-Trigger-After-Settle",e)}},beforeSwapCallback:function(){if(c.type){ae(te().body,"htmx:beforeHistoryUpdate",le({history:c},e));if(c.type==="push"){Wt(c.path);ae(te().body,"htmx:pushedIntoHistory",{path:c.path})}else{Zt(c.path);ae(te().body,"htmx:replacedInHistory",{path:c.path})}}}})}if(a){fe(t,"htmx:responseError",le({error:"Response Status Error Code "+n.status+" from "+e.pathInfo.requestPath},e))}}const jn={};function $n(){return{init:function(e){return null},getSelectors:function(){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,n){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,n,r){return false},encodeParameters:function(e,t,n){return null}}}function _n(e,t){if(t.init){t.init(n)}jn[e]=le($n(),t)}function zn(e){delete jn[e]}function Jn(e,n,r){if(n==undefined){n=[]}if(e==undefined){return n}if(r==undefined){r=[]}const t=a(e,"hx-ext");if(t){ie(t.split(","),function(e){e=e.replace(/ /g,"");if(e.slice(0,7)=="ignore:"){r.push(e.slice(7));return}if(r.indexOf(e)<0){const t=jn[e];if(t&&n.indexOf(t)<0){n.push(t)}}})}return Jn(ce(u(e)),n,r)}var Kn=false;te().addEventListener("DOMContentLoaded",function(){Kn=true});function Gn(e){if(Kn||te().readyState==="complete"){e()}else{te().addEventListener("DOMContentLoaded",e)}}function Wn(){if(Q.config.includeIndicatorStyles!==false){const e=Q.config.inlineStyleNonce?` nonce="${Q.config.inlineStyleNonce}"`:"";const t=Q.config.indicatorClass;const n=Q.config.requestClass;te().head.insertAdjacentHTML("beforeend",`<style${e}>`+`.${t}{opacity:0;visibility: hidden} `+`.${n} .${t}, .${n}.${t}{opacity:1;visibility: visible;transition: opacity 200ms ease-in}`+"</style>")}}function Zn(){const e=te().querySelector('meta[name="htmx-config"]');if(e){return v(e.content)}else{return null}}function Yn(){const e=Zn();if(e){Q.config=le(Q.config,e)}}Gn(function(){Yn();Wn();let e=te().body;Ft(e);const t=te().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){const t=e.detail.elt||e.target;const n=oe(t);if(n&&n.xhr){n.xhr.abort()}});const n=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){en();ie(t,function(e){ae(e,"htmx:restored",{document:te(),triggerEvent:ae})})}else{if(n){n(e)}}};b().setTimeout(function(){ae(e,"htmx:load",{});e=null},0)});return Q}(); \ No newline at end of file diff --git a/tqweb/assets/js/wasm_exec.js b/tqweb/assets/js/wasm_exec.js new file mode 100644 index 0000000..d71af9e --- /dev/null +++ b/tqweb/assets/js/wasm_exec.js @@ -0,0 +1,575 @@ +// 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. + +"use strict"; + +(() => { + const enosys = () => { + const err = new Error("not implemented"); + err.code = "ENOSYS"; + return err; + }; + + if (!globalThis.fs) { + let outputBuf = ""; + globalThis.fs = { + constants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1, O_DIRECTORY: -1 }, // unused + writeSync(fd, buf) { + outputBuf += decoder.decode(buf); + const nl = outputBuf.lastIndexOf("\n"); + if (nl != -1) { + console.log(outputBuf.substring(0, nl)); + outputBuf = outputBuf.substring(nl + 1); + } + return buf.length; + }, + write(fd, buf, offset, length, position, callback) { + if (offset !== 0 || length !== buf.length || position !== null) { + callback(enosys()); + return; + } + const n = this.writeSync(fd, buf); + callback(null, n); + }, + chmod(path, mode, callback) { callback(enosys()); }, + chown(path, uid, gid, callback) { callback(enosys()); }, + close(fd, callback) { callback(enosys()); }, + fchmod(fd, mode, callback) { callback(enosys()); }, + fchown(fd, uid, gid, callback) { callback(enosys()); }, + fstat(fd, callback) { callback(enosys()); }, + fsync(fd, callback) { callback(null); }, + ftruncate(fd, length, callback) { callback(enosys()); }, + lchown(path, uid, gid, callback) { callback(enosys()); }, + link(path, link, callback) { callback(enosys()); }, + lstat(path, callback) { callback(enosys()); }, + mkdir(path, perm, callback) { callback(enosys()); }, + open(path, flags, mode, callback) { callback(enosys()); }, + read(fd, buffer, offset, length, position, callback) { callback(enosys()); }, + readdir(path, callback) { callback(enosys()); }, + readlink(path, callback) { callback(enosys()); }, + rename(from, to, callback) { callback(enosys()); }, + rmdir(path, callback) { callback(enosys()); }, + stat(path, callback) { callback(enosys()); }, + symlink(path, link, callback) { callback(enosys()); }, + truncate(path, length, callback) { callback(enosys()); }, + unlink(path, callback) { callback(enosys()); }, + utimes(path, atime, mtime, callback) { callback(enosys()); }, + }; + } + + if (!globalThis.process) { + globalThis.process = { + getuid() { return -1; }, + getgid() { return -1; }, + geteuid() { return -1; }, + getegid() { return -1; }, + getgroups() { throw enosys(); }, + pid: -1, + ppid: -1, + umask() { throw enosys(); }, + cwd() { throw enosys(); }, + chdir() { throw enosys(); }, + } + } + + if (!globalThis.path) { + globalThis.path = { + resolve(...pathSegments) { + return pathSegments.join("/"); + } + } + } + + if (!globalThis.crypto) { + throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)"); + } + + if (!globalThis.performance) { + throw new Error("globalThis.performance is not available, polyfill required (performance.now only)"); + } + + if (!globalThis.TextEncoder) { + throw new Error("globalThis.TextEncoder is not available, polyfill required"); + } + + if (!globalThis.TextDecoder) { + throw new Error("globalThis.TextDecoder is not available, polyfill required"); + } + + const encoder = new TextEncoder("utf-8"); + const decoder = new TextDecoder("utf-8"); + + globalThis.Go = class { + constructor() { + this.argv = ["js"]; + this.env = {}; + this.exit = (code) => { + if (code !== 0) { + console.warn("exit code:", code); + } + }; + this._exitPromise = new Promise((resolve) => { + this._resolveExitPromise = resolve; + }); + this._pendingEvent = null; + this._scheduledTimeouts = new Map(); + this._nextCallbackTimeoutID = 1; + + const setInt64 = (addr, v) => { + this.mem.setUint32(addr + 0, v, true); + this.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true); + } + + const setInt32 = (addr, v) => { + this.mem.setUint32(addr + 0, v, true); + } + + const getInt64 = (addr) => { + const low = this.mem.getUint32(addr + 0, true); + const high = this.mem.getInt32(addr + 4, true); + return low + high * 4294967296; + } + + const loadValue = (addr) => { + const f = this.mem.getFloat64(addr, true); + if (f === 0) { + return undefined; + } + if (!isNaN(f)) { + return f; + } + + const id = this.mem.getUint32(addr, true); + return this._values[id]; + } + + const storeValue = (addr, v) => { + const nanHead = 0x7FF80000; + + if (typeof v === "number" && v !== 0) { + if (isNaN(v)) { + this.mem.setUint32(addr + 4, nanHead, true); + this.mem.setUint32(addr, 0, true); + return; + } + this.mem.setFloat64(addr, v, true); + return; + } + + if (v === undefined) { + this.mem.setFloat64(addr, 0, true); + return; + } + + let id = this._ids.get(v); + if (id === undefined) { + id = this._idPool.pop(); + if (id === undefined) { + id = this._values.length; + } + this._values[id] = v; + this._goRefCounts[id] = 0; + this._ids.set(v, id); + } + this._goRefCounts[id]++; + let typeFlag = 0; + switch (typeof v) { + case "object": + if (v !== null) { + typeFlag = 1; + } + break; + case "string": + typeFlag = 2; + break; + case "symbol": + typeFlag = 3; + break; + case "function": + typeFlag = 4; + break; + } + this.mem.setUint32(addr + 4, nanHead | typeFlag, true); + this.mem.setUint32(addr, id, true); + } + + const loadSlice = (addr) => { + const array = getInt64(addr + 0); + const len = getInt64(addr + 8); + return new Uint8Array(this._inst.exports.mem.buffer, array, len); + } + + const loadSliceOfValues = (addr) => { + const array = getInt64(addr + 0); + const len = getInt64(addr + 8); + const a = new Array(len); + for (let i = 0; i < len; i++) { + a[i] = loadValue(array + i * 8); + } + return a; + } + + const loadString = (addr) => { + const saddr = getInt64(addr + 0); + const len = getInt64(addr + 8); + return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len)); + } + + const testCallExport = (a, b) => { + this._inst.exports.testExport0(); + return this._inst.exports.testExport(a, b); + } + + const timeOrigin = Date.now() - performance.now(); + this.importObject = { + _gotest: { + add: (a, b) => a + b, + callExport: testCallExport, + }, + gojs: { + // Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters) + // may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported + // function. A goroutine can switch to a new stack if the current stack is too small (see morestack function). + // This changes the SP, thus we have to update the SP used by the imported function. + + // func wasmExit(code int32) + "runtime.wasmExit": (sp) => { + sp >>>= 0; + const code = this.mem.getInt32(sp + 8, true); + this.exited = true; + delete this._inst; + delete this._values; + delete this._goRefCounts; + delete this._ids; + delete this._idPool; + this.exit(code); + }, + + // func wasmWrite(fd uintptr, p unsafe.Pointer, n int32) + "runtime.wasmWrite": (sp) => { + sp >>>= 0; + const fd = getInt64(sp + 8); + const p = getInt64(sp + 16); + const n = this.mem.getInt32(sp + 24, true); + fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n)); + }, + + // func resetMemoryDataView() + "runtime.resetMemoryDataView": (sp) => { + sp >>>= 0; + this.mem = new DataView(this._inst.exports.mem.buffer); + }, + + // func nanotime1() int64 + "runtime.nanotime1": (sp) => { + sp >>>= 0; + setInt64(sp + 8, (timeOrigin + performance.now()) * 1000000); + }, + + // func walltime() (sec int64, nsec int32) + "runtime.walltime": (sp) => { + sp >>>= 0; + const msec = (new Date).getTime(); + setInt64(sp + 8, msec / 1000); + this.mem.setInt32(sp + 16, (msec % 1000) * 1000000, true); + }, + + // func scheduleTimeoutEvent(delay int64) int32 + "runtime.scheduleTimeoutEvent": (sp) => { + sp >>>= 0; + const id = this._nextCallbackTimeoutID; + this._nextCallbackTimeoutID++; + this._scheduledTimeouts.set(id, setTimeout( + () => { + this._resume(); + while (this._scheduledTimeouts.has(id)) { + // for some reason Go failed to register the timeout event, log and try again + // (temporary workaround for https://github.com/golang/go/issues/28975) + console.warn("scheduleTimeoutEvent: missed timeout event"); + this._resume(); + } + }, + getInt64(sp + 8), + )); + this.mem.setInt32(sp + 16, id, true); + }, + + // func clearTimeoutEvent(id int32) + "runtime.clearTimeoutEvent": (sp) => { + sp >>>= 0; + const id = this.mem.getInt32(sp + 8, true); + clearTimeout(this._scheduledTimeouts.get(id)); + this._scheduledTimeouts.delete(id); + }, + + // func getRandomData(r []byte) + "runtime.getRandomData": (sp) => { + sp >>>= 0; + crypto.getRandomValues(loadSlice(sp + 8)); + }, + + // func finalizeRef(v ref) + "syscall/js.finalizeRef": (sp) => { + sp >>>= 0; + const id = this.mem.getUint32(sp + 8, true); + this._goRefCounts[id]--; + if (this._goRefCounts[id] === 0) { + const v = this._values[id]; + this._values[id] = null; + this._ids.delete(v); + this._idPool.push(id); + } + }, + + // func stringVal(value string) ref + "syscall/js.stringVal": (sp) => { + sp >>>= 0; + storeValue(sp + 24, loadString(sp + 8)); + }, + + // func valueGet(v ref, p string) ref + "syscall/js.valueGet": (sp) => { + sp >>>= 0; + const result = Reflect.get(loadValue(sp + 8), loadString(sp + 16)); + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 32, result); + }, + + // func valueSet(v ref, p string, x ref) + "syscall/js.valueSet": (sp) => { + sp >>>= 0; + Reflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32)); + }, + + // func valueDelete(v ref, p string) + "syscall/js.valueDelete": (sp) => { + sp >>>= 0; + Reflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16)); + }, + + // func valueIndex(v ref, i int) ref + "syscall/js.valueIndex": (sp) => { + sp >>>= 0; + storeValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16))); + }, + + // valueSetIndex(v ref, i int, x ref) + "syscall/js.valueSetIndex": (sp) => { + sp >>>= 0; + Reflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24)); + }, + + // func valueCall(v ref, m string, args []ref) (ref, bool) + "syscall/js.valueCall": (sp) => { + sp >>>= 0; + try { + const v = loadValue(sp + 8); + const m = Reflect.get(v, loadString(sp + 16)); + const args = loadSliceOfValues(sp + 32); + const result = Reflect.apply(m, v, args); + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 56, result); + this.mem.setUint8(sp + 64, 1); + } catch (err) { + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 56, err); + this.mem.setUint8(sp + 64, 0); + } + }, + + // func valueInvoke(v ref, args []ref) (ref, bool) + "syscall/js.valueInvoke": (sp) => { + sp >>>= 0; + try { + const v = loadValue(sp + 8); + const args = loadSliceOfValues(sp + 16); + const result = Reflect.apply(v, undefined, args); + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 40, result); + this.mem.setUint8(sp + 48, 1); + } catch (err) { + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 40, err); + this.mem.setUint8(sp + 48, 0); + } + }, + + // func valueNew(v ref, args []ref) (ref, bool) + "syscall/js.valueNew": (sp) => { + sp >>>= 0; + try { + const v = loadValue(sp + 8); + const args = loadSliceOfValues(sp + 16); + const result = Reflect.construct(v, args); + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 40, result); + this.mem.setUint8(sp + 48, 1); + } catch (err) { + sp = this._inst.exports.getsp() >>> 0; // see comment above + storeValue(sp + 40, err); + this.mem.setUint8(sp + 48, 0); + } + }, + + // func valueLength(v ref) int + "syscall/js.valueLength": (sp) => { + sp >>>= 0; + setInt64(sp + 16, parseInt(loadValue(sp + 8).length)); + }, + + // valuePrepareString(v ref) (ref, int) + "syscall/js.valuePrepareString": (sp) => { + sp >>>= 0; + const str = encoder.encode(String(loadValue(sp + 8))); + storeValue(sp + 16, str); + setInt64(sp + 24, str.length); + }, + + // valueLoadString(v ref, b []byte) + "syscall/js.valueLoadString": (sp) => { + sp >>>= 0; + const str = loadValue(sp + 8); + loadSlice(sp + 16).set(str); + }, + + // func valueInstanceOf(v ref, t ref) bool + "syscall/js.valueInstanceOf": (sp) => { + sp >>>= 0; + this.mem.setUint8(sp + 24, (loadValue(sp + 8) instanceof loadValue(sp + 16)) ? 1 : 0); + }, + + // func copyBytesToGo(dst []byte, src ref) (int, bool) + "syscall/js.copyBytesToGo": (sp) => { + sp >>>= 0; + const dst = loadSlice(sp + 8); + const src = loadValue(sp + 32); + if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) { + this.mem.setUint8(sp + 48, 0); + return; + } + const toCopy = src.subarray(0, dst.length); + dst.set(toCopy); + setInt64(sp + 40, toCopy.length); + this.mem.setUint8(sp + 48, 1); + }, + + // func copyBytesToJS(dst ref, src []byte) (int, bool) + "syscall/js.copyBytesToJS": (sp) => { + sp >>>= 0; + const dst = loadValue(sp + 8); + const src = loadSlice(sp + 16); + if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) { + this.mem.setUint8(sp + 48, 0); + return; + } + const toCopy = src.subarray(0, dst.length); + dst.set(toCopy); + setInt64(sp + 40, toCopy.length); + this.mem.setUint8(sp + 48, 1); + }, + + "debug": (value) => { + console.log(value); + }, + } + }; + } + + async run(instance) { + if (!(instance instanceof WebAssembly.Instance)) { + throw new Error("Go.run: WebAssembly.Instance expected"); + } + this._inst = instance; + this.mem = new DataView(this._inst.exports.mem.buffer); + this._values = [ // JS values that Go currently has references to, indexed by reference id + NaN, + 0, + null, + true, + false, + globalThis, + this, + ]; + this._goRefCounts = new Array(this._values.length).fill(Infinity); // number of references that Go has to a JS value, indexed by reference id + this._ids = new Map([ // mapping from JS values to reference ids + [0, 1], + [null, 2], + [true, 3], + [false, 4], + [globalThis, 5], + [this, 6], + ]); + this._idPool = []; // unused ids that have been garbage collected + this.exited = false; // whether the Go program has exited + + // Pass command line arguments and environment variables to WebAssembly by writing them to the linear memory. + let offset = 4096; + + const strPtr = (str) => { + const ptr = offset; + const bytes = encoder.encode(str + "\0"); + new Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes); + offset += bytes.length; + if (offset % 8 !== 0) { + offset += 8 - (offset % 8); + } + return ptr; + }; + + const argc = this.argv.length; + + const argvPtrs = []; + this.argv.forEach((arg) => { + argvPtrs.push(strPtr(arg)); + }); + argvPtrs.push(0); + + const keys = Object.keys(this.env).sort(); + keys.forEach((key) => { + argvPtrs.push(strPtr(`${key}=${this.env[key]}`)); + }); + argvPtrs.push(0); + + const argv = offset; + argvPtrs.forEach((ptr) => { + this.mem.setUint32(offset, ptr, true); + this.mem.setUint32(offset + 4, 0, true); + offset += 8; + }); + + // The linker guarantees global data starts from at least wasmMinDataAddr. + // Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr. + const wasmMinDataAddr = 4096 + 8192; + if (offset >= wasmMinDataAddr) { + throw new Error("total length of command line and environment variables exceeds limit"); + } + + this._inst.exports.run(argc, argv); + if (this.exited) { + this._resolveExitPromise(); + } + await this._exitPromise; + } + + _resume() { + if (this.exited) { + throw new Error("Go program has already exited"); + } + this._inst.exports.resume(); + if (this.exited) { + this._resolveExitPromise(); + } + } + + _makeFuncWrapper(id) { + const go = this; + return function () { + const event = { id: id, this: this, args: arguments }; + go._pendingEvent = event; + go._resume(); + return event.result; + }; + } + } +})(); From f210c986a3fec8bc7cdb0575bcb79be6f965c62f Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 9 Dec 2025 23:33:31 +0100 Subject: [PATCH 07/23] WIP --- go.mod | 2 + go.sum | 3 +- tqweb/Makefile | 35 +- tqweb/assets/css/.gitkeep | 0 tqweb/assets/favicon/.gitkeep | 0 tqweb/assets/image/.gitkeep | 0 tqweb/go.mod | 11 +- tqweb/go.sum | 16 + tqweb/{assets/js => }/htmx.min.js | 0 tqweb/index.html | 31 + tqweb/main.go | 28 +- tqweb/sw.js | 42 + tqweb/{assets/js => }/wasm_exec.js | 0 tqweb/worker.js | 14 + vendor/github.com/hack-pad/safejs/.env | 3 + vendor/github.com/hack-pad/safejs/.gitignore | 1 + .../github.com/hack-pad/safejs/.golangci.yml | 22 + vendor/github.com/hack-pad/safejs/LICENSE | 201 +++++ vendor/github.com/hack-pad/safejs/Makefile | 39 + vendor/github.com/hack-pad/safejs/README.md | 91 ++ vendor/github.com/hack-pad/safejs/bytes.go | 27 + vendor/github.com/hack-pad/safejs/doc.go | 8 + vendor/github.com/hack-pad/safejs/error.go | 23 + vendor/github.com/hack-pad/safejs/func.go | 45 + vendor/github.com/hack-pad/safejs/global.go | 42 + .../hack-pad/safejs/internal/catch/catch.go | 47 ++ .../safejs/internal/stackerr/stackerr.go | 79 ++ vendor/github.com/hack-pad/safejs/type.go | 25 + vendor/github.com/hack-pad/safejs/value.go | 242 ++++++ .../github.com/nlepage/go-js-promise/LICENSE | 201 +++++ .../nlepage/go-js-promise/README.md | 3 + .../nlepage/go-js-promise/promise.go | 56 ++ .../v2/.all-contributorsrc | 37 + .../nlepage/go-wasm-http-server/v2/.gitignore | 3 + .../go-wasm-http-server/v2/CODE_OF_CONDUCT.md | 76 ++ .../nlepage/go-wasm-http-server/v2/LICENSE | 201 +++++ .../nlepage/go-wasm-http-server/v2/README.md | 238 ++++++ .../v2/internal/jstype/types.go | 13 + .../v2/internal/readablestream/reader.go | 96 +++ .../v2/internal/readablestream/writer.go | 101 +++ .../v2/internal/safejs/bytes.go | 11 + .../v2/internal/safejs/func.go | 26 + .../v2/internal/safejs/value.go | 111 +++ .../go-wasm-http-server/v2/package-lock.json | 787 ++++++++++++++++++ .../nlepage/go-wasm-http-server/v2/package.go | 2 + .../go-wasm-http-server/v2/package.json | 12 + .../nlepage/go-wasm-http-server/v2/request.go | 119 +++ .../go-wasm-http-server/v2/response.go | 178 ++++ .../nlepage/go-wasm-http-server/v2/serve.go | 86 ++ .../nlepage/go-wasm-http-server/v2/sw.js | 42 + vendor/github.com/shurcooL/go-goon/LICENSE | 21 + vendor/github.com/shurcooL/go-goon/README.md | 92 ++ vendor/github.com/shurcooL/go-goon/dump.go | 394 +++++++++ vendor/github.com/shurcooL/go-goon/goon.go | 56 ++ .../shurcooL/go-goon/print_types.go | 107 +++ vendor/github.com/shurcooL/go/LICENSE | 21 + .../shurcooL/go/parserutil/parserutil.go | 34 + .../shurcooL/go/printerutil/printerutil.go | 36 + .../shurcooL/go/reflectfind/reflectfind.go | 112 +++ .../shurcooL/go/reflectsource/callername.go | 219 +++++ .../shurcooL/go/reflectsource/doc.go | 9 + .../shurcooL/go/reflectsource/funcsource.go | 82 ++ .../shurcooL/go/reflectsource/indicies.go | 29 + vendor/github.com/shurcooL/goexec/LICENSE | 21 + vendor/github.com/shurcooL/goexec/README.md | 82 ++ vendor/github.com/shurcooL/goexec/main.go | 154 ++++ vendor/modules.txt | 22 + 67 files changed, 4957 insertions(+), 10 deletions(-) delete mode 100644 tqweb/assets/css/.gitkeep delete mode 100644 tqweb/assets/favicon/.gitkeep delete mode 100644 tqweb/assets/image/.gitkeep rename tqweb/{assets/js => }/htmx.min.js (100%) create mode 100644 tqweb/index.html create mode 100644 tqweb/sw.js rename tqweb/{assets/js => }/wasm_exec.js (100%) create mode 100644 tqweb/worker.js create mode 100644 vendor/github.com/hack-pad/safejs/.env create mode 100644 vendor/github.com/hack-pad/safejs/.gitignore create mode 100644 vendor/github.com/hack-pad/safejs/.golangci.yml create mode 100644 vendor/github.com/hack-pad/safejs/LICENSE create mode 100644 vendor/github.com/hack-pad/safejs/Makefile create mode 100644 vendor/github.com/hack-pad/safejs/README.md create mode 100644 vendor/github.com/hack-pad/safejs/bytes.go create mode 100644 vendor/github.com/hack-pad/safejs/doc.go create mode 100644 vendor/github.com/hack-pad/safejs/error.go create mode 100644 vendor/github.com/hack-pad/safejs/func.go create mode 100644 vendor/github.com/hack-pad/safejs/global.go create mode 100644 vendor/github.com/hack-pad/safejs/internal/catch/catch.go create mode 100644 vendor/github.com/hack-pad/safejs/internal/stackerr/stackerr.go create mode 100644 vendor/github.com/hack-pad/safejs/type.go create mode 100644 vendor/github.com/hack-pad/safejs/value.go create mode 100644 vendor/github.com/nlepage/go-js-promise/LICENSE create mode 100644 vendor/github.com/nlepage/go-js-promise/README.md create mode 100644 vendor/github.com/nlepage/go-js-promise/promise.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/.all-contributorsrc create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/.gitignore create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/LICENSE create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/README.md create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/jstype/types.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/reader.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/writer.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/bytes.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/func.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/value.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/package-lock.json create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/package.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/package.json create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/request.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/response.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/serve.go create mode 100644 vendor/github.com/nlepage/go-wasm-http-server/v2/sw.js create mode 100644 vendor/github.com/shurcooL/go-goon/LICENSE create mode 100644 vendor/github.com/shurcooL/go-goon/README.md create mode 100644 vendor/github.com/shurcooL/go-goon/dump.go create mode 100644 vendor/github.com/shurcooL/go-goon/goon.go create mode 100644 vendor/github.com/shurcooL/go-goon/print_types.go create mode 100644 vendor/github.com/shurcooL/go/LICENSE create mode 100644 vendor/github.com/shurcooL/go/parserutil/parserutil.go create mode 100644 vendor/github.com/shurcooL/go/printerutil/printerutil.go create mode 100644 vendor/github.com/shurcooL/go/reflectfind/reflectfind.go create mode 100644 vendor/github.com/shurcooL/go/reflectsource/callername.go create mode 100644 vendor/github.com/shurcooL/go/reflectsource/doc.go create mode 100644 vendor/github.com/shurcooL/go/reflectsource/funcsource.go create mode 100644 vendor/github.com/shurcooL/go/reflectsource/indicies.go create mode 100644 vendor/github.com/shurcooL/goexec/LICENSE create mode 100644 vendor/github.com/shurcooL/goexec/README.md create mode 100644 vendor/github.com/shurcooL/goexec/main.go diff --git a/go.mod b/go.mod index 5d833a7..7088bc4 100644 --- a/go.mod +++ b/go.mod @@ -6,3 +6,5 @@ require ( github.com/mdm-code/scanner v1.2.1 github.com/pelletier/go-toml/v2 v2.1.0 ) + +require github.com/stretchr/testify v1.10.0 // indirect diff --git a/go.sum b/go.sum index 24b2f84..c1eedcf 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,9 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/tqweb/Makefile b/tqweb/Makefile index aeb4e48..dab8b2f 100644 --- a/tqweb/Makefile +++ b/tqweb/Makefile @@ -1,17 +1,42 @@ +GO=go +GOFLAGS=-mod=vendor HTMX_VERSION?=2.0.8 +# NOTE +# ==== +# #1 The master version of the Javascript code fom the go-wasm-http-server has +# been updated since the version v2.2.1. If for any reason it might be necessary +# to revert to the version used in Go code, here is a quick shell script to +# pull the version from the go.mod file. +# +# #2 The master version seems not to work right with Go 1.24.0. +# +GO_WASM_HTTP_SERVER_VERSION?=$(shell\ + grep go-wasm-http-server go.mod |\ + cut -d' ' -f3\ +) +# GO_WASM_HTTP_SERVER_VERSION?=master +# ==== + +# export CGO_ENABLED=0 +export GOOS=js +export GOARCH=wasm ifndef VERBOSE .SILENT: endif -.PHONY: assets build +.PHONY: assets build serve .PHONY: .ONESHELL .ONESHELL: assets: - cp $$(go env GOROOT)/lib/wasm/wasm_exec.js ./assets/js/ - curl https://cdn.jsdelivr.net/npm/htmx.org@$(HTMX_VERSION)/dist/htmx.min.js > ./assets/js/htmx.min.js + cp $$(go env GOROOT)/lib/wasm/wasm_exec.js wasm_exec.js + curl https://cdn.jsdelivr.net/npm/htmx.org@$(HTMX_VERSION)/dist/htmx.min.js > htmx.min.js + curl https://cdn.jsdelivr.net/gh/nlepage/go-wasm-http-server@$(GO_WASM_HTTP_SERVER_VERSION)/sw.js > sw.js + +build: + $(GO) build $(GOFLAGS) -o api.wasm . -build: assets - echo "building..." +serve: + $(shell goexec 'http.ListenAndServe(`:18080`, http.FileServer(http.Dir(`.`)))') diff --git a/tqweb/assets/css/.gitkeep b/tqweb/assets/css/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tqweb/assets/favicon/.gitkeep b/tqweb/assets/favicon/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tqweb/assets/image/.gitkeep b/tqweb/assets/image/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tqweb/go.mod b/tqweb/go.mod index dcfb133..dcf3aa2 100644 --- a/tqweb/go.mod +++ b/tqweb/go.mod @@ -2,6 +2,8 @@ module github.com/mdm-code/tqweb go 1.24.0 +require github.com/nlepage/go-wasm-http-server/v2 v2.2.1 + require ( github.com/a-h/parse v0.0.0-20250122154542-74294addb73e // indirect github.com/a-h/templ v0.3.960 // indirect @@ -15,7 +17,9 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/natefinch/atomic v1.0.1 // indirect github.com/nlepage/go-js-promise v1.0.0 // indirect - github.com/nlepage/go-wasm-http-server/v2 v2.2.1 // indirect + github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 // indirect + github.com/shurcooL/go-goon v1.0.0 // indirect + github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b // indirect golang.org/x/mod v0.26.0 // indirect golang.org/x/net v0.42.0 // indirect golang.org/x/sync v0.16.0 // indirect @@ -23,4 +27,7 @@ require ( golang.org/x/tools v0.35.0 // indirect ) -tool github.com/a-h/templ/cmd/templ +tool ( + github.com/a-h/templ/cmd/templ + github.com/shurcooL/goexec +) diff --git a/tqweb/go.sum b/tqweb/go.sum index ea2708b..d0b582b 100644 --- a/tqweb/go.sum +++ b/tqweb/go.sum @@ -8,10 +8,14 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3 github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cli/browser v1.3.0 h1:LejqCrpWr+1pRqmEPDGnTZOjsMe7sehifLynZJuqJpo= github.com/cli/browser v1.3.0/go.mod h1:HH8s+fOAxjhQoBUAsKuPCbqUuxZDhQ2/aD+SzsEfBTk= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hack-pad/safejs v0.1.1 h1:d5qPO0iQ7h2oVtpzGnLExE+Wn9AtytxIfltcS2b9KD8= github.com/hack-pad/safejs v0.1.1/go.mod h1:HdS+bKF1NrE72VoXZeWzxFOVQVUSqZJAG0xNCnb+Tio= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -25,6 +29,16 @@ github.com/nlepage/go-js-promise v1.0.0 h1:K7OmJ3+0BgWJ2LfXchg2sI6RDr7AW/KWR8182 github.com/nlepage/go-js-promise v1.0.0/go.mod h1:bdOP0wObXu34euibyK39K1hoBCtlgTKXGc56AGflaRo= github.com/nlepage/go-wasm-http-server/v2 v2.2.1 h1:4tzhSb3HKQ3Ykt2TPfqEnmcPfw8n1E8agv4OzAyckr8= github.com/nlepage/go-wasm-http-server/v2 v2.2.1/go.mod h1:r8j7cEOeUqNp+c+C52sNuWaFTvvT/cNqIwBuEtA36HA= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= +github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v1.0.0 h1:BCQPvxGkHHJ4WpBO4m/9FXbITVIsvAm/T66cCcCGI7E= +github.com/shurcooL/go-goon v1.0.0/go.mod h1:2wTHMsGo7qnpmqA8ADYZtP4I1DD94JpXGQ3Dxq2YQ5w= +github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b h1:637/WtTYN6u1wzt0dCpGdBJHIggB8inZei6q60AZwjk= +github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b/go.mod h1:YrZDETqiwAqnKsivK9+sxwhS9rjMR+2NWGy8TATNb6k= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= @@ -37,3 +51,5 @@ golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tqweb/assets/js/htmx.min.js b/tqweb/htmx.min.js similarity index 100% rename from tqweb/assets/js/htmx.min.js rename to tqweb/htmx.min.js diff --git a/tqweb/index.html b/tqweb/index.html new file mode 100644 index 0000000..5f82ea4 --- /dev/null +++ b/tqweb/index.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <script src="htmx.min.js"></script> + <script> + navigator.serviceWorker.register("worker.js"); + + async function hello() { + const name = document.querySelector('#name').value; + + const res = await fetch('api/hello', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ name }), + }); + + const { message } = await res.json(); + + alert(message); + } + </script> + </head> + <body> + <label for="name">Name: </label><input id="name" value="World" /> + <button onclick="hello()">Hello</button> + </body> +</html> diff --git a/tqweb/main.go b/tqweb/main.go index 761237d..f30a9f4 100644 --- a/tqweb/main.go +++ b/tqweb/main.go @@ -1,7 +1,31 @@ +//go:build js && wasm + package main -import "fmt" +import ( + "encoding/json" + "fmt" + "net/http" + + wasmhttp "github.com/nlepage/go-wasm-http-server/v2" +) func main() { - fmt.Println("Hello from tqweb") + http.HandleFunc("/hello", func(res http.ResponseWriter, req *http.Request) { + params := make(map[string]string) + if err := json.NewDecoder(req.Body).Decode(&params); err != nil { + panic(err) + } + + res.Header().Add("Content-Type", "application/json") + if err := json.NewEncoder(res).Encode(map[string]string{ + "message": fmt.Sprintf("Hello %s!", params["name"]), + }); err != nil { + panic(err) + } + }) + + wasmhttp.Serve(nil) + + select {} } diff --git a/tqweb/sw.js b/tqweb/sw.js new file mode 100644 index 0000000..11e0ae0 --- /dev/null +++ b/tqweb/sw.js @@ -0,0 +1,42 @@ +function registerWasmHTTPListener(wasm, { base, cacheName, passthrough, args = [] } = {}) { + let path = new URL(registration.scope).pathname + if (base && base !== '') path = `${trimEnd(path, '/')}/${trimStart(base, '/')}` + + const handlerPromise = new Promise(setHandler => { + self.wasmhttp = { + path, + setHandler, + } + }) + + const go = new Go() + go.argv = [wasm, ...args] + const source = cacheName + ? caches.open(cacheName).then((cache) => cache.match(wasm)).then((response) => response ?? fetch(wasm)) + : caches.match(wasm).then(response => (response) ?? fetch(wasm)) + WebAssembly.instantiateStreaming(source, go.importObject).then(({ instance }) => go.run(instance)) + + addEventListener('fetch', e => { + if (passthrough?.(e.request)) { + e.respondWith(fetch(e.request)) + return; + } + + const { pathname } = new URL(e.request.url) + if (!pathname.startsWith(path)) return + + e.respondWith(handlerPromise.then(handler => handler(e.request))) + }) +} + +function trimStart(s, c) { + let r = s + while (r.startsWith(c)) r = r.slice(c.length) + return r +} + +function trimEnd(s, c) { + let r = s + while (r.endsWith(c)) r = r.slice(0, -c.length) + return r +} diff --git a/tqweb/assets/js/wasm_exec.js b/tqweb/wasm_exec.js similarity index 100% rename from tqweb/assets/js/wasm_exec.js rename to tqweb/wasm_exec.js diff --git a/tqweb/worker.js b/tqweb/worker.js new file mode 100644 index 0000000..e04a585 --- /dev/null +++ b/tqweb/worker.js @@ -0,0 +1,14 @@ +importScripts('wasm_exec.js'); +importScripts('sw.js'); + +const wasm = 'api.wasm'; + +addEventListener('install', (event) => { + event.waitUntil(caches.open('api').then((cache) => cache.add(wasm))); +}); + +addEventListener('activate', (event) => { + event.waitUntil(clients.claim()); +}); + +registerWasmHTTPListener(wasm, { base: 'api' }); diff --git a/vendor/github.com/hack-pad/safejs/.env b/vendor/github.com/hack-pad/safejs/.env new file mode 100644 index 0000000..13468cb --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/.env @@ -0,0 +1,3 @@ +# Env file defines useful environment variables for editors. +GOOS=js +GOARCH=wasm diff --git a/vendor/github.com/hack-pad/safejs/.gitignore b/vendor/github.com/hack-pad/safejs/.gitignore new file mode 100644 index 0000000..e87afd9 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/.gitignore @@ -0,0 +1 @@ +/*.out diff --git a/vendor/github.com/hack-pad/safejs/.golangci.yml b/vendor/github.com/hack-pad/safejs/.golangci.yml new file mode 100644 index 0000000..423e830 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/.golangci.yml @@ -0,0 +1,22 @@ +linters: + enable: + # Default linters, plus these: + - exportloopref + - gocognit + - goconst + - gocritic + - gofmt + - gosec + - misspell + - paralleltest + - revive + +issues: + include: + # Re-enable default excluded rules + - EXC0001 + - EXC0002 + - EXC0012 + - EXC0013 + - EXC0014 + - EXC0015 diff --git a/vendor/github.com/hack-pad/safejs/LICENSE b/vendor/github.com/hack-pad/safejs/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/hack-pad/safejs/Makefile b/vendor/github.com/hack-pad/safejs/Makefile new file mode 100644 index 0000000..124a6e1 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/Makefile @@ -0,0 +1,39 @@ +SHELL := /usr/bin/env bash +BROWSERTEST_VERSION = v0.6 +LINT_VERSION = 1.50.1 +GO_BIN = $(shell printf '%s/bin' "$$(go env GOPATH)") + +.PHONY: all +all: lint test + +.PHONY: lint-deps +lint-deps: + @if ! which golangci-lint >/dev/null || [[ "$$(golangci-lint version 2>&1)" != *${LINT_VERSION}* ]]; then \ + curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "${GO_BIN}" v${LINT_VERSION}; \ + fi + +.PHONY: lint +lint: lint-deps + "${GO_BIN}/golangci-lint" run + GOOS=js GOARCH=wasm "${GO_BIN}/golangci-lint" run + +.PHONY: test-deps +test-deps: + @if [[ ! -f "${GO_BIN}/go_js_wasm_exec" ]]; then \ + set -ex; \ + go install github.com/agnivade/wasmbrowsertest@${BROWSERTEST_VERSION}; \ + mv "${GO_BIN}/wasmbrowsertest" "${GO_BIN}/go_js_wasm_exec"; \ + fi + +.PHONY: test +test: test-deps + go test wasm_tags_test.go # Verify build tags and whatnot first + go test -race -coverprofile=native-cover.out ./... # Test non-js side + GOOS=js GOARCH=wasm go test -coverprofile=js-cover.out -covermode=atomic ./... # Test js side + { echo 'mode: atomic'; cat *-cover.out | grep -v '^mode'; } > cover.out && rm *-cover.out # Combine JS and non-JS coverage. + go tool cover -func cover.out | grep total: + +.PHONY: test-publish-coverage +test-publish-coverage: + go install github.com/mattn/goveralls@v0.0.11 + COVERALLS_TOKEN=$$GITHUB_TOKEN goveralls -coverprofile="cover.out" -service=github diff --git a/vendor/github.com/hack-pad/safejs/README.md b/vendor/github.com/hack-pad/safejs/README.md new file mode 100644 index 0000000..dd7c104 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/README.md @@ -0,0 +1,91 @@ +# SafeJS [![Go Reference](https://pkg.go.dev/badge/github.com/hack-pad/safejs.svg)](https://pkg.go.dev/github.com/hack-pad/safejs) [![CI](https://github.com/hack-pad/safejs/actions/workflows/ci.yml/badge.svg)](https://github.com/hack-pad/safejs/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/hack-pad/safejs/badge.svg?branch=main)](https://coveralls.io/github/hack-pad/safejs?branch=main) + +A safer, drop-in replacement for Go's `syscall/js` JavaScript package. + +## What makes it safer? + +Today, `syscall/js` panics when the JavaScript runtime throws errors. +While sensible in a JavaScript runtime, [Go libraries should avoid using `panic`](https://go.dev/doc/effective_go#panic). + +SafeJS provides a nearly identical API to `syscall/js`, but returns errors instead of panicking. + +Although returned errors aren't pretty, they make it much easier to integrate with existing Go tools and code patterns. + +#### Backward compatibility + +This package uses the same backward compatibility guarantee as `syscall/js`. + +In an effort to align with the Go standard library API, some breaking changes may become necessary and receive their own minor version bumps. + +## Quick start + +1. Get `safejs`: +``` +go get github.com/hack-pad/safejs +``` +2. Import `safejs`: +```go +import "github.com/hack-pad/safejs" +``` +3. Replace uses of `syscall/js` with the `safejs` alternative. + +Before: +```go +//go:build js && wasm + +package buttons + +import "syscall/js" + +// InsertButton creates a new button, adds it to 'container', and returns it. Usually. +func InsertButton(container js.Value) js.Value { + // *whisper:* There's a good chance it could panic! Eh, probably don't need to document it, right? + dom := js.Global().Get("document") // BOOM! + button := dom.Call("createElement", "button") // BANG! + container.Call("appendChild", button) // BAM! + return button +} +``` + +After: +```go +//go:build js && wasm + +package buttons + +import "github.com/hack-pad/safejs" + +// InsertButton creates a new button, adds it to 'container', and returns the button or the first error. +func InsertButton(container safejs.Value) (safejs.Value, error) { + dom, err := safejs.Global().Get("document") + if err != nil { + return err + } + button, err := dom.Call("createElement", "button") + if err != nil { + return err + } + _, err = container.Call("appendChild", button) + if err != nil { + return err + } + return button, nil +} +``` + +## Even safer + +For additional JavaScript safety, use the `jsguard` linter too. + +`jsguard` reports the locations of unsafe JavaScript calls, which should be replaced with calls to SafeJS. + +```bash +# When installed without specifying a version, uses the go.mod version. +go install github.com/hack-pad/safejs/jsguard/cmd/jsguard +export GOOS=js GOARCH=wasm +jsguard ./... +``` + +It *does not* report use of types like `js.Value` -- only function calls on those types. + +This makes it easy to integrate SafeJS into existing libraries which expose only standard library types. diff --git a/vendor/github.com/hack-pad/safejs/bytes.go b/vendor/github.com/hack-pad/safejs/bytes.go new file mode 100644 index 0000000..7b42a3f --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/bytes.go @@ -0,0 +1,27 @@ +//go:build js && wasm + +package safejs + +import ( + "syscall/js" + + "github.com/hack-pad/safejs/internal/catch" +) + +// CopyBytesToGo copies bytes from src to dst. +// Returns the number of bytes copied, which is the minimum of the lengths of src and dst. +// Returns an error if src is not an Uint8Array or Uint8ClampedArray. +func CopyBytesToGo(dst []byte, src Value) (int, error) { + return catch.Try(func() int { + return js.CopyBytesToGo(dst, src.jsValue) + }) +} + +// CopyBytesToJS copies bytes from src to dst. +// Returns the number of bytes copied, which is the minimum of the lengths of src and dst. +// Returns an error if dst is not an Uint8Array or Uint8ClampedArray. +func CopyBytesToJS(dst Value, src []byte) (int, error) { + return catch.Try(func() int { + return js.CopyBytesToJS(dst.jsValue, src) + }) +} diff --git a/vendor/github.com/hack-pad/safejs/doc.go b/vendor/github.com/hack-pad/safejs/doc.go new file mode 100644 index 0000000..ca77820 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/doc.go @@ -0,0 +1,8 @@ +//go:build js && wasm + +/* +Package safejs provides guardrails around the [syscall/js] package, like turning thrown exceptions into errors. + +Since [syscall/js] is experimental, this package may have breaking changes to stay aligned with the latest versions of Go. +*/ +package safejs diff --git a/vendor/github.com/hack-pad/safejs/error.go b/vendor/github.com/hack-pad/safejs/error.go new file mode 100644 index 0000000..fa81a65 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/error.go @@ -0,0 +1,23 @@ +//go:build js && wasm + +package safejs + +import ( + "syscall/js" + + "github.com/hack-pad/safejs/internal/catch" +) + +// Error wraps a JavaScript error. +type Error struct { + err js.Error +} + +// Error implements the error interface. +func (e Error) Error() string { + errStr, err := catch.Try(e.err.Error) + if err != nil { + return "failed generating error message: " + err.Error() + } + return errStr +} diff --git a/vendor/github.com/hack-pad/safejs/func.go b/vendor/github.com/hack-pad/safejs/func.go new file mode 100644 index 0000000..44bc4ec --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/func.go @@ -0,0 +1,45 @@ +//go:build js && wasm + +package safejs + +import ( + "syscall/js" + + "github.com/hack-pad/safejs/internal/catch" +) + +// Func is a wrapped Go function to be called by JavaScript. +type Func struct { + fn js.Func +} + +// FuncOf returns a function to be used by JavaScript. See [js.FuncOf] for details. +func FuncOf(fn func(this Value, args []Value) any) (Func, error) { + jsFunc, err := toJSFunc(fn) + return Func{ + fn: jsFunc, + }, err +} + +func toJSFunc(fn func(this Value, args []Value) any) (js.Func, error) { + jsFunc := func(this js.Value, args []js.Value) any { + result := fn(Safe(this), toValues(args)) + return toJSValue(result) + } + return catch.Try(func() js.Func { + return js.FuncOf(jsFunc) + }) +} + +// Release frees up resources allocated for the function. The function must not be invoked after calling Release. +// It is allowed to call Release while the function is still running. +func (f Func) Release() { + f.fn.Release() +} + +// Value returns this Func's inner Value. For example, using value.Invoke() calls the function. +// +// Equivalent to accessing [js.Func]'s embedded [js.Value] field, only as a safejs type. +func (f Func) Value() Value { + return Safe(f.fn.Value) +} diff --git a/vendor/github.com/hack-pad/safejs/global.go b/vendor/github.com/hack-pad/safejs/global.go new file mode 100644 index 0000000..e46c3f6 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/global.go @@ -0,0 +1,42 @@ +//go:build js && wasm + +package safejs + +import ( + "fmt" + "syscall/js" +) + +// Global returns the JavaScript global object, usually "window" or "global". +func Global() Value { + return Safe(js.Global()) +} + +// MustGetGlobal fetches the given global, then verifies it is truthy. Panics on error or falsy values. +// This is intended for simple global variable initialization, like preparing classes for later instantiation. +// +// For example: +// +// var jsUint8Array = safejs.MustGetGlobal("Uint8Array") +func MustGetGlobal(property string) Value { + value, err := getGlobal(property) + if err != nil { + panic(err) + } + return value +} + +func getGlobal(property string) (Value, error) { + value, err := Global().Get(property) + if err != nil { + return Value{}, err + } + truthy, err := value.Truthy() + if err != nil { + return Value{}, err + } + if !truthy { + return Value{}, fmt.Errorf("global %q is not defined", property) + } + return value, nil +} diff --git a/vendor/github.com/hack-pad/safejs/internal/catch/catch.go b/vendor/github.com/hack-pad/safejs/internal/catch/catch.go new file mode 100644 index 0000000..538daf3 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/internal/catch/catch.go @@ -0,0 +1,47 @@ +//go:build js && wasm + +// Package catch runs functions and returns panic values as errors instead. +package catch + +import ( + "fmt" + "syscall/js" + + "github.com/hack-pad/safejs/internal/stackerr" +) + +// Try runs fn and returns the result. If fn panicked, the panic value is returned as an error instead. +func Try[Result any](fn func() Result) (result Result, err error) { + defer recoverErr(&err) + result = fn() + return +} + +// TrySideEffect is like Try, but does not have a return value. +func TrySideEffect(fn func()) (err error) { + defer recoverErr(&err) + fn() + return +} + +func recoverErr(err *error) { + value := recover() + valueErr := recoverValueToError(value) + if valueErr != nil { + *err = stackerr.WithStack(valueErr) + } +} + +func recoverValueToError(value any) error { + if value == nil { + return nil + } + switch value := value.(type) { + case error: + return value + case js.Value: + return js.Error{Value: value} + default: + return fmt.Errorf("%+v", value) + } +} diff --git a/vendor/github.com/hack-pad/safejs/internal/stackerr/stackerr.go b/vendor/github.com/hack-pad/safejs/internal/stackerr/stackerr.go new file mode 100644 index 0000000..d341f22 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/internal/stackerr/stackerr.go @@ -0,0 +1,79 @@ +//go:build js && wasm + +// Package stackerr adds stack traces to verbose error messages. +package stackerr + +import ( + "fmt" + "runtime" + "strings" +) + +type stackError struct { + err error + stack *stacktrace +} + +// WithStack returns 'err' with a stack trace in its verbose formatter output. +// Returns nil if err is nil. +func WithStack(err error) error { + if err == nil { + return nil + } + + return &stackError{ + err: err, + stack: collectStacktrace(3), + } +} + +func (s *stackError) Error() string { + return s.err.Error() +} + +func (s *stackError) Unwrap() error { + return s.err +} + +func (s *stackError) Format(f fmt.State, verb rune) { + switch verb { + case 'v': + if f.Flag('+') { + fmt.Fprintf(f, "%+v\n%s", s.err, s.stack) + return + } + fmt.Fprint(f, s.Error()) + case 's': + fmt.Fprint(f, s.Error()) + case 'q': + fmt.Fprintf(f, "%q", s.Error()) + } +} + +type stacktrace struct { + callers []uintptr +} + +func collectStacktrace(skip int) *stacktrace { + const ( + maxFrames = 32 + ) + pc := make([]uintptr, maxFrames) + n := runtime.Callers(1+skip, pc) + return &stacktrace{ + callers: pc[:n], + } +} + +func (s *stacktrace) String() string { + var sb strings.Builder + frames := runtime.CallersFrames(s.callers) + for frame, next := frames.Next(); next; frame, next = frames.Next() { + funcName := "unknown" + if frame.Func != nil { + funcName = frame.Func.Name() + } + sb.WriteString(fmt.Sprintf("%s\n\t%s:%d\n", funcName, frame.File, frame.Line)) + } + return sb.String() +} diff --git a/vendor/github.com/hack-pad/safejs/type.go b/vendor/github.com/hack-pad/safejs/type.go new file mode 100644 index 0000000..62db035 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/type.go @@ -0,0 +1,25 @@ +//go:build js && wasm + +package safejs + +import "syscall/js" + +// Type represents the JavaScript type of a Value. +type Type int + +// Available JavaScript types +const ( + TypeUndefined = Type(js.TypeUndefined) + TypeNull = Type(js.TypeNull) + TypeBoolean = Type(js.TypeBoolean) + TypeNumber = Type(js.TypeNumber) + TypeString = Type(js.TypeString) + TypeSymbol = Type(js.TypeSymbol) + TypeObject = Type(js.TypeObject) + TypeFunction = Type(js.TypeFunction) +) + +func (t Type) String() string { + // String() has a panic line, however it should be impossible to hit barring memory corruption + return js.Type(t).String() +} diff --git a/vendor/github.com/hack-pad/safejs/value.go b/vendor/github.com/hack-pad/safejs/value.go new file mode 100644 index 0000000..c4542f5 --- /dev/null +++ b/vendor/github.com/hack-pad/safejs/value.go @@ -0,0 +1,242 @@ +//go:build js && wasm + +package safejs + +import ( + "fmt" + "syscall/js" + + "github.com/hack-pad/safejs/internal/catch" +) + +// Value is a safer version of js.Value. Any panic returns an error instead. +type Value struct { + jsValue js.Value +} + +// Safe wraps a js.Value into a safejs.Value. +// Ideal for use in libraries where exposed types must match the standard library. +func Safe(value js.Value) Value { + return Value{ + jsValue: value, + } +} + +// Unsafe unwraps a safejs.Value back into its js.Value. +// Ideal for use in libraries where exposed types must match the standard library. +func Unsafe(value Value) js.Value { + return value.jsValue +} + +// Null returns the JavaScript value of "null". +func Null() Value { + return Safe(js.Null()) +} + +// Undefined returns the JavaScript value of "undefined". +func Undefined() Value { + return Safe(js.Undefined()) +} + +func toJSValue(jsValue any) any { + switch value := jsValue.(type) { + case Value: + return value.jsValue + case Func: + return value.fn + case Error: + return value.err + case map[string]any: + newValue := make(map[string]any) + for mapKey, mapValue := range value { + newValue[mapKey] = toJSValue(mapValue) + } + return newValue + case []any: + newValue := make([]any, len(value)) + for i, arg := range value { + newValue[i] = toJSValue(arg) + } + return newValue + default: + return jsValue + } +} + +func toJSValues(args []any) []any { + return toJSValue(args).([]any) +} + +func toValues(args []js.Value) []Value { + newArgs := make([]Value, len(args)) + for i, arg := range args { + newArgs[i] = Safe(arg) + } + return newArgs +} + +// ValueOf returns value as a JavaScript value. See [js.ValueOf] for details. +func ValueOf(value any) (Value, error) { + jsValue, err := catch.Try(func() js.Value { + return js.ValueOf(value) + }) + return Safe(jsValue), err +} + +// Bool attempts to convert this value into a boolean, otherwise returns an error. +func (v Value) Bool() (bool, error) { + return catch.Try(v.jsValue.Bool) +} + +// Call does a JavaScript call to the method m of value v with the given arguments. +// The arguments are mapped to JavaScript values according to the ValueOf function. +// Returns an error if v has no method m, the arguments failed to map to JavaScript values, or the function throws an error. +func (v Value) Call(m string, args ...any) (Value, error) { + args = toJSValues(args) + return catch.Try(func() Value { + return Safe(v.jsValue.Call(m, args...)) + }) +} + +// Delete deletes the JavaScript property p of value v. Returns an error if v is not a JavaScript object. +func (v Value) Delete(p string) error { + return catch.TrySideEffect(func() { + v.jsValue.Delete(p) + }) +} + +// Equal reports whether v and w are equal according to JavaScript's === operator. +func (v Value) Equal(w Value) bool { + return v.jsValue.Equal(w.jsValue) +} + +// Float returns the value v as a float64. Returns an error if v is not a JavaScript number. +func (v Value) Float() (float64, error) { + return catch.Try(v.jsValue.Float) +} + +// Get returns the JavaScript property p of value v. Returns an error if v is not a JavaScript object. +func (v Value) Get(p string) (Value, error) { + return catch.Try(func() Value { + return Safe(v.jsValue.Get(p)) + }) +} + +// Index returns JavaScript index i of value v. Returns an error if v is not a JavaScript object. +func (v Value) Index(i int) (Value, error) { + return catch.Try(func() Value { + return Safe(v.jsValue.Index(i)) + }) +} + +// InstanceOf reports whether v is an instance of type t according to JavaScript's instanceof operator. +// Returns an error if v is not a constructable type. +func (v Value) InstanceOf(t Value) (bool, error) { + // Type failures in JS throw "TypeError: Right-hand side of 'instanceof' is not an object" + // so catch those cases here. + // + // A valid type is a function with a field "prototype" which is an object. + if t.Type() != TypeFunction { + return false, fmt.Errorf("invalid type for instanceof: %v", t.Type()) + } + prototype, err := t.Get("prototype") + if err != nil { + return false, fmt.Errorf("invalid constructor type for instanceof: %v", err) + } else if prototype.Type() != TypeObject { + return false, fmt.Errorf("invalid constructor type for instanceof: %v", prototype.Type()) + } + return catch.Try(func() bool { + return v.jsValue.InstanceOf(t.jsValue) + }) +} + +// Int returns the value v truncated to an int. Returns an error if v is not a JavaScript number. +func (v Value) Int() (int, error) { + return catch.Try(v.jsValue.Int) +} + +// Invoke does a JavaScript call of the value v with the given arguments. +// The arguments get mapped to JavaScript values according to the ValueOf function. +// Returns an error if v is not a JavaScript function, the arguments failed to map to JavaScript values, or the function throws an error. +func (v Value) Invoke(args ...any) (Value, error) { + args = toJSValues(args) + return catch.Try(func() Value { + return Safe(v.jsValue.Invoke(args...)) + }) +} + +// IsNaN reports whether v is the JavaScript value "NaN". +func (v Value) IsNaN() bool { + return v.jsValue.IsNaN() +} + +// IsNull reports whether v is the JavaScript value "null". +func (v Value) IsNull() bool { + return v.jsValue.IsNull() +} + +// IsUndefined reports whether v is the JavaScript value "undefined". +func (v Value) IsUndefined() bool { + return v.jsValue.IsUndefined() +} + +// Length returns the JavaScript property "length" of v. +// Returns an error if v is not a JavaScript object. +func (v Value) Length() (int, error) { + return catch.Try(v.jsValue.Length) +} + +// New uses JavaScript's "new" operator with value v as constructor and the given arguments. +// The arguments get mapped to JavaScript values according to the ValueOf function. +// Returns an error if v is not a JavaScript function, the arguments failed to map to JavaScript values, or the constructor throws an error. +func (v Value) New(args ...any) (Value, error) { + args = toJSValues(args) + return catch.Try(func() Value { + return Safe(v.jsValue.New(args...)) + }) +} + +// Set sets the JavaScript property p of value v to ValueOf(x). +// Returns an error if v is not a JavaScript object or x failed to map to a JavaScript value. +func (v Value) Set(p string, x any) error { + x = toJSValue(x) + return catch.TrySideEffect(func() { + v.jsValue.Set(p, x) + }) +} + +// SetIndex sets the JavaScript index i of value v to ValueOf(x). +// Returns an error if if v is not a JavaScript object or x failed to map to a JavaScript value. +func (v Value) SetIndex(i int, x any) error { + x = toJSValue(x) + return catch.TrySideEffect(func() { + v.jsValue.SetIndex(i, x) + }) +} + +// String returns the value v as a string. +// Unlike the other getters, String() does not return an error if v's Type is not TypeString. +// Instead, it returns a string of the form "<T>" or "<T: V>" where T is v's type and V is a string representation of v's value. +// +// Returns an error if v is an invalid type or the string failed to load from the JavaScript runtime. +// +// NOTE: [syscall/js] takes the stance that String is a special case due to Go's String method convention and avoids panicking. +// However, js.String() can still fail in other ways so an error is returned anyway. +func (v Value) String() (string, error) { + return catch.Try(v.jsValue.String) +} + +// Truthy returns the JavaScript "truthiness" of the value v. +// In JavaScript, false, 0, "", null, undefined, and NaN are "falsy", and everything else is "truthy". +// See https://developer.mozilla.org/en-US/docs/Glossary/Truthy. +// +// Returns an error if v's type is invalid or if the value fails to load from the JavaScript runtime. +func (v Value) Truthy() (bool, error) { + return catch.Try(v.jsValue.Truthy) +} + +// Type returns the JavaScript type of the value v. +// It is similar to JavaScript's typeof operator, except it returns TypeNull instead of TypeObject for null. +func (v Value) Type() Type { + return Type(v.jsValue.Type()) +} diff --git a/vendor/github.com/nlepage/go-js-promise/LICENSE b/vendor/github.com/nlepage/go-js-promise/LICENSE new file mode 100644 index 0000000..fff153b --- /dev/null +++ b/vendor/github.com/nlepage/go-js-promise/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Nicolas LEPAGE + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/nlepage/go-js-promise/README.md b/vendor/github.com/nlepage/go-js-promise/README.md new file mode 100644 index 0000000..4827f46 --- /dev/null +++ b/vendor/github.com/nlepage/go-js-promise/README.md @@ -0,0 +1,3 @@ +# [github.com/nlepage/go-js-promise](https://pkg.go.dev/github.com/nlepage/go-js-promise) + +Go WebAssembly utility package for interacting with JavaScript promises diff --git a/vendor/github.com/nlepage/go-js-promise/promise.go b/vendor/github.com/nlepage/go-js-promise/promise.go new file mode 100644 index 0000000..8376bdb --- /dev/null +++ b/vendor/github.com/nlepage/go-js-promise/promise.go @@ -0,0 +1,56 @@ +package promise + +import ( + "syscall/js" +) + +// New creates a new JavaScript Promise +func New() (p js.Value, resolve func(interface{}), reject func(interface{})) { + var cbFunc js.Func + cbFunc = js.FuncOf(func(_ js.Value, args []js.Value) interface{} { + cbFunc.Release() + + resolve = func(value interface{}) { + args[0].Invoke(value) + } + + reject = func(value interface{}) { + args[1].Invoke(value) + } + + return js.Undefined() + }) + + p = js.Global().Get("Promise").New(cbFunc) + + return +} + +// Await waits for the Promise to be resolved and returns the value +// or an error if the promise rejected +func Await(p js.Value) (js.Value, error) { + resCh := make(chan js.Value) + var then js.Func + then = js.FuncOf(func(_ js.Value, args []js.Value) interface{} { + resCh <- args[0] + return nil + }) + defer then.Release() + + errCh := make(chan error) + var catch js.Func + catch = js.FuncOf(func(_ js.Value, args []js.Value) interface{} { + errCh <- js.Error{args[0]} + return nil + }) + defer catch.Release() + + p.Call("then", then).Call("catch", catch) + + select { + case res := <-resCh: + return res, nil + case err := <-errCh: + return js.Undefined(), err + } +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/.all-contributorsrc b/vendor/github.com/nlepage/go-wasm-http-server/v2/.all-contributorsrc new file mode 100644 index 0000000..642c6b7 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/.all-contributorsrc @@ -0,0 +1,37 @@ +{ + "projectName": "go-wasm-http-server", + "projectOwner": "nlepage", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": false, + "commitConvention": "gitmoji", + "contributors": [ + { + "login": "jphastings", + "name": "JP Hastings-Edrei", + "avatar_url": "https://avatars.githubusercontent.com/u/42999?v=4", + "profile": "https://byjp.me/", + "contributions": [ + "code", + "doc", + "example" + ] + }, + { + "login": "EliCDavis", + "name": "Eli Davis", + "avatar_url": "https://avatars.githubusercontent.com/u/9094977?v=4", + "profile": "https://recolude.com/", + "contributions": [ + "code", + "bug" + ] + } + ], + "contributorsPerLine": 7, + "linkToUsage": false +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/.gitignore b/vendor/github.com/nlepage/go-wasm-http-server/v2/.gitignore new file mode 100644 index 0000000..e3a2287 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +*.wasm +!docs/**/*.wasm diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/CODE_OF_CONDUCT.md b/vendor/github.com/nlepage/go-wasm-http-server/v2/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..c51d402 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at nicolas.lepage+go-wasm-http-server@zenika.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/LICENSE b/vendor/github.com/nlepage/go-wasm-http-server/v2/LICENSE new file mode 100644 index 0000000..907fcfd --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2025 Nicolas Lepage + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/README.md b/vendor/github.com/nlepage/go-wasm-http-server/v2/README.md new file mode 100644 index 0000000..c1181c9 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/README.md @@ -0,0 +1,238 @@ +<h1 align="center">Welcome to go-wasm-http-server 👋</h1> +<p> + <a href="https://pkg.go.dev/github.com/nlepage/go-wasm-http-server#section-documentation"> + <img src="https://pkg.go.dev/badge/github.com/nlepage/go-wasm-http-server.svg" alt="Go Reference"> + </a> + <a href="https://github.com/nlepage/go-wasm-http-server/blob/master/LICENSE" target="_blank"> + <img alt="License: Apache 2.0" src="https://img.shields.io/badge/License-Apache--2.0-yellow.svg" /> + </a> +</p> + +> Embed your Go HTTP handlers in a ServiceWorker (using [WebAssembly](https://mdn.io/WebAssembly/)) and emulate an HTTP server! + +## Examples + + - [Hello example](https://nlepage.github.io/go-wasm-http-server/hello) ([sources](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/hello)) + - [Hello example with state](https://nlepage.github.io/go-wasm-http-server/hello-state) ([sources](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/hello-state)) + - [Hello example with state and keepalive](https://nlepage.github.io/go-wasm-http-server/hello-state-keepalive) ([sources](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/hello-state-keepalive)) + - [Hello example with Server Sent Events](https://nlepage.github.io/go-wasm-http-server/hello-sse/) ([sources](https://nlepage.github.io/go-wasm-http-server/hello-sse/)) + - [😺 Catption generator example](https://nlepage.github.io/catption/wasm) ([sources](https://github.com/nlepage/catption/tree/wasm)) + - [Random password generator web server](https://nlepage.github.io/random-password-please/) ([sources](https://github.com/nlepage/random-password-please) forked from [jbarham/random-password-please](https://github.com/jbarham/random-password-please)) + - [Server fallbacks, and compiling with TinyGo](https://nlepage.github.io/go-wasm-http-server/tinygo/) (runs locally; see [sources & readme](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/tinygo#readme) for how to run this example) + +## How? + +Talk given at the Go devroom of FOSDEM 2021 explaining how `go-wasm-http-server` works: + +[![Deploy a Go HTTP server in your browser Youtube link](https://raw.githubusercontent.com/nlepage/go-wasm-http-talk/main/youtube.png)](https://youtu.be/O2RB_8ircdE) + +The slides are available [here](https://nlepage.github.io/go-wasm-http-talk/). + +## Why? + +`go-wasm-http-server` can help you put up a demonstration for a project without actually running a Go HTTP server. + +## Requirements + +`go-wasm-http-server` requires you to build your Go application to WebAssembly, so you need to make sure your code is compatible: +- no C bindings +- no System dependencies such as file system or network (database server for example) +- For smaller WASM blobs, your code may also benefit from being compatible with, and compiled by, [TinyGo](https://tinygo.org/docs/reference/lang-support/stdlib/). See the TinyGo specific details below. + +## Usage + +### Step 1: Build to `js/wasm` + +In your Go code, replace [`http.ListenAndServe()`](https://pkg.go.dev/net/http#ListenAndServe) (or [`net.Listen()`](https://pkg.go.dev/net#Listen) + [`http.Serve()`](https://pkg.go.dev/net/http#Serve)) by [wasmhttp.Serve()](https://pkg.go.dev/github.com/nlepage/go-wasm-http-server#Serve): + +📄 `server.go` +```go +// +build !js,!wasm + +package main + +import ( + "net/http" +) + +func main() { + // Define handlers... + + http.ListenAndServe(":8080", nil) +} +``` + +becomes: + +📄 `server_js_wasm.go` +```go +// +build js,wasm + +package main + +import ( + wasmhttp "github.com/nlepage/go-wasm-http-server/v2" +) + +func main() { + // Define handlers... + + wasmhttp.Serve(nil) +} +``` + +You may want to use build tags as shown above (or file name suffixes) in order to be able to build both to WebAssembly and other targets. + +Then build your WebAssembly binary: + +```sh +# To compile with Go +GOOS=js GOARCH=wasm go build -o server.wasm . + +# To compile with TinyGo, if your code is compatible +GOOS=js GOARCH=wasm tinygo build -o server.wasm . +``` + +### Step 2: Create ServiceWorker file + +First, check the version of Go/TinyGo you compiled your wasm with: + +```sh +$ go version +go version go1.23.4 darwin/arm64 +# ^------^ + +$ tinygo version +tinygo version 0.35.0 darwin/arm64 (using go version go1.23.4 and LLVM version 18.1.2) +# ^----^ +``` + +Create a ServiceWorker file with the following code: + +📄 `sw.js` +```js +// Note the 'go.1.23.4' below, that matches the version you just found: +importScripts('https://cdn.jsdelivr.net/gh/golang/go@go1.23.4/misc/wasm/wasm_exec.js') +// If you compiled with TinyGo then, similarly, use: +importScripts('https://cdn.jsdelivr.net/gh/tinygo-org/tinygo@0.35.0/targets/wasm_exec.js') + +importScripts('https://cdn.jsdelivr.net/gh/nlepage/go-wasm-http-server@v2.2.1/sw.js') + +registerWasmHTTPListener('path/to/server.wasm') +``` + +By default the server will deploy at the ServiceWorker's scope root, check [`registerWasmHTTPListener()`'s API](https://github.com/nlepage/go-wasm-http-server#registerwasmhttplistenerwasmurl-options) for more information. + +You may want to add these additional event listeners in your ServiceWorker: + +```js +// Skip installed stage and jump to activating stage +addEventListener('install', (event) => { + event.waitUntil(skipWaiting()) +}) + +// Start controlling clients as soon as the SW is activated +addEventListener('activate', event => { + event.waitUntil(clients.claim()) +}) +``` + +### Step 3: Register the ServiceWorker + +In your web page(s), register the ServiceWorker: + +```html +<script> + // By default the ServiceWorker's scope will be "server/" + navigator.serviceWorker.register('server/sw.js') +</script> +``` + +Now your web page(s) may start fetching from the server: + +```js +// The server will receive a request for "/path/to/resource" +fetch('server/path/to/resource').then(res => { + // use response... +}) +``` + +## API + +For Go API see [pkg.go.dev/github.com/nlepage/go-wasm-http-server](https://pkg.go.dev/github.com/nlepage/go-wasm-http-server#section-documentation) + +### JavaScript API + +### `registerWasmHTTPListener(wasmUrl, options)` + +Instantiates and runs the WebAssembly module at `wasmUrl`, and registers a fetch listener forwarding requests to the WebAssembly module's server. + +⚠ This function must be called only once in a ServiceWorker, if you want to register several servers you must use several ServiceWorkers. + +The server will be "deployed" at the root of the ServiceWorker's scope by default, `base` may be used to deploy the server at a subpath of the scope. + +See [ServiceWorkerContainer.register()](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register) for more information about the scope of a ServiceWorker. + +#### `wasmUrl` + +URL string of the WebAssembly module, example: `"path/to/my-module.wasm"`. + +#### `options` + +An optional object containing: + +- `base` (`string`): Base path of the server, relative to the ServiceWorker's scope. +- `cacheName` (`string`): Name of the [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) to store the WebAssembly binary. +- `args` (`string[]`): Arguments for the WebAssembly module. +- `passthrough` (`(request: Request): boolean`): Optional callback to allow passing the request through to network. + +## <abbr title="Frequently Asked Questions">FAQ</abbr> ❓ + +### Are WebSockets supported? + +No, WebSockets aren’t and won’t be supported, because Service Workers cannot intercept websocket connections. + +However [Server Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events), which is an alternative to WebSockets, are supported, you can find the code for an example [here](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/hello-sse) and the demo [here](https://nlepage.github.io/go-wasm-http-server/hello-sse/). + +### Is it compatible with TinyGo? + +Yes, an example and some specific information is available [here](https://github.com/nlepage/go-wasm-http-server/tree/master/docs/tinygo). + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + +<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> +<!-- prettier-ignore-start --> +<!-- markdownlint-disable --> +<table> + <tbody> + <tr> + <td align="center" valign="top" width="14.28%"><a href="https://byjp.me/"><img src="https://avatars.githubusercontent.com/u/42999?v=4?s=100" width="100px;" alt="JP Hastings-Edrei"/><br /><sub><b>JP Hastings-Edrei</b></sub></a><br /><a href="https://github.com/nlepage/go-wasm-http-server/commits?author=jphastings" title="Code">💻</a> <a href="https://github.com/nlepage/go-wasm-http-server/commits?author=jphastings" title="Documentation">📖</a> <a href="#example-jphastings" title="Examples">💡</a></td> + <td align="center" valign="top" width="14.28%"><a href="https://recolude.com/"><img src="https://avatars.githubusercontent.com/u/9094977?v=4?s=100" width="100px;" alt="Eli Davis"/><br /><sub><b>Eli Davis</b></sub></a><br /><a href="https://github.com/nlepage/go-wasm-http-server/commits?author=EliCDavis" title="Code">💻</a> <a href="https://github.com/nlepage/go-wasm-http-server/issues?q=author%3AEliCDavis" title="Bug reports">🐛</a></td> + </tr> + </tbody> +</table> + +<!-- markdownlint-restore --> +<!-- prettier-ignore-end --> + +<!-- ALL-CONTRIBUTORS-LIST:END --> + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + +## 🤝 Contributing + +Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/nlepage/go-wasm-http-server/issues). + +## Show your support + +Give a ⭐️ if this project helped you! + +## 📝 License + +Copyright © 2025 [Nicolas Lepage](https://github.com/nlepage).<br /> +This project is [Apache 2.0](https://github.com/nlepage/go-wasm-http-server/blob/master/LICENSE) licensed. + +*** +_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_ diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/jstype/types.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/jstype/types.go new file mode 100644 index 0000000..71cb0b5 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/jstype/types.go @@ -0,0 +1,13 @@ +package jstype + +import ( + "syscall/js" + + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +var ( + ReadableStream = safejs.Safe(js.Global().Get("ReadableStream")) + Response = safejs.Safe(js.Global().Get("Response")) + Uint8Array = safejs.Safe(js.Global().Get("Uint8Array")) +) diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/reader.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/reader.go new file mode 100644 index 0000000..1842d4d --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/reader.go @@ -0,0 +1,96 @@ +package readablestream + +import ( + "io" + + promise "github.com/nlepage/go-js-promise" + + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +type Reader struct { + value safejs.Value + buf []byte + off int +} + +var _ io.ReadCloser = (*Reader)(nil) + +func NewReader(r safejs.Value) *Reader { + return &Reader{ + value: r, + } +} + +func (r *Reader) Read(p []byte) (int, error) { + if r.off < len(r.buf) { + n := copy(p, r.buf[r.off:]) + + r.off += n + + return n, nil + } + + r.off = 0 + + pRes, err := r.value.Call("read") + if err != nil { + return 0, err + } + + ures, err := promise.Await(safejs.Unsafe(pRes)) + if err != nil { + return 0, err + } + + res := safejs.Safe(ures) + + done, err := res.GetBool("done") + if err != nil { + return 0, err + } + if done { + return 0, io.EOF + } + + value, err := res.Get("value") + if err != nil { + return 0, err + } + + l, err := value.GetInt("length") + if err != nil { + return 0, err + } + + if cap(r.buf) < l { + r.buf = make([]byte, l) + } + if len(r.buf) < cap(r.buf) { + r.buf = r.buf[:cap(r.buf)] + } + + n, err := safejs.CopyBytesToGo(r.buf, value) + if err != nil { + return 0, err + } + + r.buf = r.buf[:n] + + n = copy(p, r.buf[r.off:]) + + r.off += n + + return n, nil +} + +func (r *Reader) Close() error { + p, err := r.value.Call("cancel") + if err != nil { + return err + } + + _, err = promise.Await(safejs.Unsafe(p)) + + return err +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/writer.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/writer.go new file mode 100644 index 0000000..9484249 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/readablestream/writer.go @@ -0,0 +1,101 @@ +package readablestream + +import ( + "context" + "io" + + "github.com/nlepage/go-wasm-http-server/v2/internal/jstype" + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +type Writer struct { + Value safejs.Value + controller safejs.Value + ctx context.Context + cancelled bool +} + +var _ io.WriteCloser = (*Writer)(nil) + +func NewWriter() (*Writer, error) { + var rs *Writer + + var start safejs.Func + var controller safejs.Value + + start, err := safejs.FuncOf(func(_ safejs.Value, args []safejs.Value) any { + defer start.Release() + controller = args[0] + return nil + }) + if err != nil { + return nil, err + } + + var cancel safejs.Func + ctx, cancelCtx := context.WithCancel(context.Background()) + + cancel, err = safejs.FuncOf(func(_ safejs.Value, _ []safejs.Value) any { + defer cancel.Release() + rs.cancelled = true + cancelCtx() + return nil + }) + if err != nil { + return nil, err + } + + source, err := safejs.ValueOf(map[string]any{ + "start": safejs.Unsafe(start.Value()), + "cancel": safejs.Unsafe(cancel.Value()), + }) + if err != nil { + return nil, err + } + + value, err := jstype.ReadableStream.New(source) + if err != nil { + return nil, err + } + + rs = &Writer{ + Value: value, + controller: controller, + ctx: ctx, + } + + return rs, nil +} + +func (rs *Writer) Write(b []byte) (int, error) { + if rs.cancelled { + return 0, nil + } + + chunk, err := jstype.Uint8Array.New(len(b)) // FIXME reuse same Uint8Array? + if err != nil { + return 0, err + } + + n, err := safejs.CopyBytesToJS(chunk, b) + if err != nil { + return 0, err + } + + _, err = rs.controller.Call("enqueue", chunk) + + return n, err +} + +func (rs *Writer) Close() error { + if rs.cancelled { + return nil + } + + _, err := rs.controller.Call("close") + return err +} + +func (rs *Writer) Context() context.Context { + return rs.ctx +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/bytes.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/bytes.go new file mode 100644 index 0000000..f6087d5 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/bytes.go @@ -0,0 +1,11 @@ +package safejs + +import "github.com/hack-pad/safejs" + +func CopyBytesToGo(dst []byte, src Value) (int, error) { + return safejs.CopyBytesToGo(dst, safejs.Value(src)) +} + +func CopyBytesToJS(dst Value, src []byte) (int, error) { + return safejs.CopyBytesToJS(safejs.Value(dst), src) +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/func.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/func.go new file mode 100644 index 0000000..dc0b141 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/func.go @@ -0,0 +1,26 @@ +package safejs + +import ( + "github.com/hack-pad/safejs" +) + +type Func safejs.Func + +func FuncOf(fn func(this Value, args []Value) any) (Func, error) { + r, err := safejs.FuncOf(func(this safejs.Value, args []safejs.Value) any { + args2 := make([]Value, len(args)) + for i, v := range args { + args2[i] = Value(v) + } + return fn(Value(this), []Value(args2)) + }) + return Func(r), err +} + +func (f Func) Release() { + safejs.Func(f).Release() +} + +func (f Func) Value() Value { + return Value(safejs.Func(f).Value()) +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/value.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/value.go new file mode 100644 index 0000000..1c93691 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/internal/safejs/value.go @@ -0,0 +1,111 @@ +package safejs + +import ( + "syscall/js" + + "github.com/hack-pad/safejs" +) + +type Value safejs.Value + +func Safe(v js.Value) Value { + return Value(safejs.Safe(v)) +} + +func Unsafe(v Value) js.Value { + return safejs.Unsafe(safejs.Value(v)) +} + +func ValueOf(value any) (Value, error) { + v, err := safejs.ValueOf(value) + return Value(v), err +} + +func (v Value) Call(m string, args ...any) (Value, error) { + args = toJSValue(args).([]any) + r, err := safejs.Value(v).Call(m, args...) + return Value(r), err +} + +func (v Value) Get(p string) (Value, error) { + r, err := safejs.Value(v).Get(p) + return Value(r), err +} + +func (v Value) GetBool(p string) (bool, error) { + bv, err := v.Get(p) + if err != nil { + return false, err + } + + return safejs.Value(bv).Bool() +} + +func (v Value) GetInt(p string) (int, error) { + iv, err := v.Get(p) + if err != nil { + return 0, err + } + + return safejs.Value(iv).Int() +} + +func (v Value) GetString(p string) (string, error) { + sv, err := v.Get(p) + if err != nil { + return "", err + } + + return safejs.Value(sv).String() +} + +func (v Value) Index(i int) (Value, error) { + r, err := safejs.Value(v).Index(i) + return Value(r), err +} + +func (v Value) IndexString(i int) (string, error) { + sv, err := v.Index(i) + if err != nil { + return "", err + } + + return safejs.Value(sv).String() +} + +func (v Value) IsNull() bool { + return safejs.Value(v).IsNull() +} + +func (v Value) IsUndefined() bool { + return safejs.Value(v).IsUndefined() +} + +func (v Value) New(args ...any) (Value, error) { + args = toJSValue(args).([]any) + r, err := safejs.Value(v).New(args...) + return Value(r), err +} + +func toJSValue(jsValue any) any { + switch value := jsValue.(type) { + case Value: + return safejs.Value(value) + case Func: + return safejs.Func(value) + case map[string]any: + newValue := make(map[string]any) + for mapKey, mapValue := range value { + newValue[mapKey] = toJSValue(mapValue) + } + return newValue + case []any: + newValue := make([]any, len(value)) + for i, arg := range value { + newValue[i] = toJSValue(arg) + } + return newValue + default: + return jsValue + } +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/package-lock.json b/vendor/github.com/nlepage/go-wasm-http-server/v2/package-lock.json new file mode 100644 index 0000000..9d9e580 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/package-lock.json @@ -0,0 +1,787 @@ +{ + "name": "go-wasm-http-server", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "go-wasm-http-server", + "version": "0.1.0", + "license": "Apache-2.0", + "devDependencies": { + "all-contributors-cli": "^6.26.1" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/all-contributors-cli": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.26.1.tgz", + "integrity": "sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.6", + "async": "^3.1.0", + "chalk": "^4.0.0", + "didyoumean": "^1.2.1", + "inquirer": "^7.3.3", + "json-fixer": "^1.6.8", + "lodash": "^4.11.2", + "node-fetch": "^2.6.0", + "pify": "^5.0.0", + "yargs": "^15.0.1" + }, + "bin": { + "all-contributors": "dist/cli.js" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "prettier": "^2" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/json-fixer": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.15.tgz", + "integrity": "sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.9", + "chalk": "^4.1.2", + "pegjs": "^0.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", + "dev": true, + "license": "MIT", + "bin": { + "pegjs": "bin/pegjs" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/package.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/package.go new file mode 100644 index 0000000..f6b59f7 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/package.go @@ -0,0 +1,2 @@ +// Package wasmhttp allows to create a WebAssembly Go HTTP Server embedded in a ServiceWorker. +package wasmhttp diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/package.json b/vendor/github.com/nlepage/go-wasm-http-server/v2/package.json new file mode 100644 index 0000000..7756b34 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/package.json @@ -0,0 +1,12 @@ +{ + "name": "go-wasm-http-server", + "version": "0.1.0", + "description": "WebAssembly Go HTTP Server embedded in a ServiceWorker", + "main": "index.js", + "repository": "https://github.com/nlepage/go-wasm-http-server", + "author": "Nicolas Lepage <19571875+nlepage@users.noreply.github.com>", + "license": "Apache-2.0", + "devDependencies": { + "all-contributors-cli": "^6.26.1" + } +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/request.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/request.go new file mode 100644 index 0000000..63de281 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/request.go @@ -0,0 +1,119 @@ +package wasmhttp + +import ( + "io" + "net/http" + "net/url" + "syscall/js" + + promise "github.com/nlepage/go-js-promise" + "github.com/nlepage/go-wasm-http-server/v2/internal/readablestream" + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +// Request builds and returns the equivalent http.Request +func Request(uvalue js.Value) (*http.Request, error) { + value := safejs.Safe(uvalue) + + method, err := value.GetString("method") + if err != nil { + return nil, err + } + + rawURL, err := value.GetString("url") + if err != nil { + return nil, err + } + u, err := url.Parse(rawURL) + if err != nil { + return nil, err + } + + body, err := value.Get("body") + if err != nil { + return nil, err + } + + var bodyReader io.ReadCloser + + if !body.IsNull() { + // WORKAROUND: Firefox does not have request.body ReadableStream + if body.IsUndefined() { + blobp, err := value.Call("blob") + if err != nil { + return nil, err + } + + blob, err := promise.Await(safejs.Unsafe(blobp)) + if err != nil { + return nil, err + } + + body, err = safejs.Safe(blob).Call("stream") + if err != nil { + return nil, err + } + } + + r, err := body.Call("getReader") + if err != nil { + return nil, err + } + + bodyReader = readablestream.NewReader(r) + } + + req := &http.Request{ + Method: method, + URL: u, + Body: bodyReader, + Header: make(http.Header), + Proto: "HTTP/1.1", + ProtoMajor: 1, + ProtoMinor: 1, + } + + headers, err := value.Get("headers") + if err != nil { + return nil, err + } + + headersIt, err := headers.Call("entries") + if err != nil { + return nil, err + } + for { + e, err := headersIt.Call("next") + if err != nil { + return nil, err + } + + done, err := e.GetBool("done") + if err != nil { + return nil, err + } + + if done { + break + } + + v, err := e.Get("value") + if err != nil { + return nil, err + } + + key, err := v.IndexString(0) + if err != nil { + return nil, err + } + + value, err := v.IndexString(1) + if err != nil { + return nil, err + } + + req.Header.Set(key, value) + } + + return req, nil +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/response.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/response.go new file mode 100644 index 0000000..0d878e2 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/response.go @@ -0,0 +1,178 @@ +package wasmhttp + +import ( + "bufio" + "context" + "fmt" + "io" + "log/slog" + "net/http" + "syscall/js" + + promise "github.com/nlepage/go-js-promise" + + "github.com/nlepage/go-wasm-http-server/v2/internal/jstype" + "github.com/nlepage/go-wasm-http-server/v2/internal/readablestream" + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +type Response interface { + http.ResponseWriter + io.StringWriter + http.Flusher + io.Closer + Context() context.Context + WriteError(string) + JSValue() js.Value +} + +type response struct { + header http.Header + wroteHeader bool + + promise js.Value + resolve func(any) + + rs *readablestream.Writer + body *bufio.Writer +} + +func NewResponse() (Response, error) { + rs, err := readablestream.NewWriter() + if err != nil { + return nil, err + } + + promise, resolve, _ := promise.New() + + return &response{ + promise: promise, + resolve: resolve, + + rs: rs, + body: bufio.NewWriter(rs), + }, nil +} + +var _ Response = (*response)(nil) + +// Header implements [http.ResponseWriter]. +func (r *response) Header() http.Header { + if r.header == nil { + r.header = make(http.Header) + } + return r.header +} + +func (r *response) headerValue() map[string]any { + h := r.Header() + hh := make(map[string]any, len(h)+1) + for k := range h { + hh[k] = h.Get(k) + } + return hh +} + +// Write implements http.ResponseWriter. +func (r *response) Write(buf []byte) (int, error) { + r.writeHeader(buf, "") + return r.body.Write(buf) +} + +// WriteHeader implements [http.ResponseWriter]. +func (r *response) WriteHeader(code int) { + if r.wroteHeader { + return + } + + checkWriteHeaderCode(code) + + init, err := safejs.ValueOf(map[string]any{ + "status": code, + "headers": r.headerValue(), + }) + if err != nil { + panic(err) + } + + res, err := jstype.Response.New(r.rs.Value, init) + if err != nil { + panic(err) + } + + r.wroteHeader = true + + r.resolve(safejs.Unsafe(res)) +} + +// WriteString implements [io.StringWriter]. +func (r *response) WriteString(str string) (int, error) { + r.writeHeader(nil, str) + return r.body.WriteString(str) +} + +// Flush implements [http.Flusher] +func (r *response) Flush() { + if !r.wroteHeader { + r.WriteHeader(200) + } + if err := r.body.Flush(); err != nil { + panic(err) + } +} + +// Close implements [io.Closer] +func (r *response) Close() error { + if !r.wroteHeader { + r.WriteHeader(200) + } + if err := r.body.Flush(); err != nil { + return err + } + return r.rs.Close() +} + +func (r *response) Context() context.Context { + return r.rs.Context() +} + +func (r *response) WriteError(str string) { + slog.Error(str) + if !r.wroteHeader { + r.Header().Set("Content-Type", "text/plain") + r.WriteHeader(500) + _, _ = r.WriteString(str) + } +} + +func (r *response) JSValue() js.Value { + return r.promise +} + +func (r *response) writeHeader(b []byte, str string) { + if r.wroteHeader { + return + } + + m := r.Header() + + _, hasType := m["Content-Type"] + hasTE := m.Get("Transfer-Encoding") != "" + if !hasType && !hasTE { + if b == nil { + if len(str) > 512 { + str = str[:512] + } + b = []byte(str) + } + m.Set("Content-Type", http.DetectContentType(b)) + } + + r.WriteHeader(200) +} + +func checkWriteHeaderCode(code int) { + if code < 100 || code > 999 { + panic(fmt.Sprintf("invalid WriteHeader code %v", code)) + } +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/serve.go b/vendor/github.com/nlepage/go-wasm-http-server/v2/serve.go new file mode 100644 index 0000000..f4869d5 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/serve.go @@ -0,0 +1,86 @@ +package wasmhttp + +import ( + "context" + "fmt" + "net/http" + "strings" + "syscall/js" + + "github.com/nlepage/go-wasm-http-server/v2/internal/safejs" +) + +var ( + wasmhttp = safejs.Safe(js.Global().Get("wasmhttp")) +) + +// Serve serves HTTP requests using handler or http.DefaultServeMux if handler is nil. +func Serve(handler http.Handler) (func(), error) { + h := handler + if h == nil { + h = http.DefaultServeMux + } + + prefix, err := wasmhttp.GetString("path") + if err != nil { + return nil, err + } + + for strings.HasSuffix(prefix, "/") { + prefix = strings.TrimSuffix(prefix, "/") + } + + if prefix != "" { + mux := http.NewServeMux() + mux.Handle(prefix+"/", http.StripPrefix(prefix, h)) + h = mux + } + + handlerValue, err := safejs.FuncOf(func(_ safejs.Value, args []safejs.Value) interface{} { + res, err := NewResponse() + if err != nil { + panic(err) + } + + go func() { + ctx, cancel := context.WithCancel(res.Context()) + + defer func() { + cancel() + }() + + defer func() { + if err := res.Close(); err != nil { + panic(err) + } + }() + + defer func() { + if r := recover(); r != nil { + res.WriteError(fmt.Sprintf("%+v", r)) + } + }() + + req, err := Request(safejs.Unsafe(args[0])) + if err != nil { + res.WriteError(fmt.Sprintf("%+v", err)) + return + } + + req = req.WithContext(ctx) + + h.ServeHTTP(res, req) + }() + + return res.JSValue() + }) + if err != nil { + return nil, err + } + + if _, err = wasmhttp.Call("setHandler", handlerValue); err != nil { + return nil, err + } + + return handlerValue.Release, nil +} diff --git a/vendor/github.com/nlepage/go-wasm-http-server/v2/sw.js b/vendor/github.com/nlepage/go-wasm-http-server/v2/sw.js new file mode 100644 index 0000000..11e0ae0 --- /dev/null +++ b/vendor/github.com/nlepage/go-wasm-http-server/v2/sw.js @@ -0,0 +1,42 @@ +function registerWasmHTTPListener(wasm, { base, cacheName, passthrough, args = [] } = {}) { + let path = new URL(registration.scope).pathname + if (base && base !== '') path = `${trimEnd(path, '/')}/${trimStart(base, '/')}` + + const handlerPromise = new Promise(setHandler => { + self.wasmhttp = { + path, + setHandler, + } + }) + + const go = new Go() + go.argv = [wasm, ...args] + const source = cacheName + ? caches.open(cacheName).then((cache) => cache.match(wasm)).then((response) => response ?? fetch(wasm)) + : caches.match(wasm).then(response => (response) ?? fetch(wasm)) + WebAssembly.instantiateStreaming(source, go.importObject).then(({ instance }) => go.run(instance)) + + addEventListener('fetch', e => { + if (passthrough?.(e.request)) { + e.respondWith(fetch(e.request)) + return; + } + + const { pathname } = new URL(e.request.url) + if (!pathname.startsWith(path)) return + + e.respondWith(handlerPromise.then(handler => handler(e.request))) + }) +} + +function trimStart(s, c) { + let r = s + while (r.startsWith(c)) r = r.slice(c.length) + return r +} + +function trimEnd(s, c) { + let r = s + while (r.endsWith(c)) r = r.slice(0, -c.length) + return r +} diff --git a/vendor/github.com/shurcooL/go-goon/LICENSE b/vendor/github.com/shurcooL/go-goon/LICENSE new file mode 100644 index 0000000..207c455 --- /dev/null +++ b/vendor/github.com/shurcooL/go-goon/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Dave Collins + +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/shurcooL/go-goon/README.md b/vendor/github.com/shurcooL/go-goon/README.md new file mode 100644 index 0000000..3d33cb7 --- /dev/null +++ b/vendor/github.com/shurcooL/go-goon/README.md @@ -0,0 +1,92 @@ +goon +==== + +[![Go Reference](https://pkg.go.dev/badge/github.com/shurcooL/go-goon.svg)](https://pkg.go.dev/github.com/shurcooL/go-goon) + +Package goon is a deep pretty printer with Go-like notation. It implements the [goon](https://github.com/shurcooL/goon) specification. + +**Deprecated:** This package is old, incomplete, low code quality, and now unmaintained. +See [github.com/hexops/valast](https://github.com/hexops/valast) for a newer package that is the closest known direct replacement. +See the [Alternatives](#alternatives) section for other known entries in this problem space. + +Installation +------------ + +```bash +go get github.com/shurcooL/go-goon +``` + +Examples +-------- + +```Go +x := Lang{ + Name: "Go", + Year: 2009, + URL: "http", + Inner: &Inner{ + Field1: "Secret!", + }, +} + +goon.Dump(x) + +// Output: +// (Lang)(Lang{ +// Name: (string)("Go"), +// Year: (int)(2009), +// URL: (string)("http"), +// Inner: (*Inner)(&Inner{ +// Field1: (string)("Secret!"), +// Field2: (int)(0), +// }), +// }) +``` + +```Go +items := []int{1, 2, 3} + +goon.DumpExpr(len(items)) + +// Output: +// len(items) = (int)(3) +``` + +```Go +adderFunc := func(a int, b int) int { + c := a + b + return c +} + +goon.DumpExpr(adderFunc) + +// Output: +// adderFunc = (func(int, int) int)(func(a int, b int) int { +// c := a + b +// return c +// }) +``` + +Directories +----------- + +| Path | Synopsis | +|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------| +| [bypass](https://pkg.go.dev/github.com/shurcooL/go-goon/bypass) | Package bypass allows bypassing reflect restrictions on accessing unexported struct fields. | + +Alternatives +------------ + +- [`go-spew`](https://github.com/davecgh/go-spew) - A deep pretty printer for Go data structures to aid in debugging. +- [`valast`](https://github.com/hexops/valast) - Convert Go values to their AST. +- [`repr`](https://github.com/alecthomas/repr) - Python's repr() for Go. + +Attribution +----------- + +go-goon source was based on the existing source of [go-spew](https://github.com/davecgh/go-spew) by [Dave Collins](https://github.com/davecgh). + +License +------- + +- [MIT License](LICENSE) diff --git a/vendor/github.com/shurcooL/go-goon/dump.go b/vendor/github.com/shurcooL/go-goon/dump.go new file mode 100644 index 0000000..f05e878 --- /dev/null +++ b/vendor/github.com/shurcooL/go-goon/dump.go @@ -0,0 +1,394 @@ +package goon + +import ( + "bytes" + "fmt" + "go/format" + "io" + "reflect" + "strconv" + "strings" + "time" + + "github.com/shurcooL/go/reflectsource" +) + +var config = struct { + indent string +}{ + indent: "\t", +} + +// dumpState contains information about the state of a dump operation. +type dumpState struct { + w io.Writer + depth int + pointers map[uintptr]int + ignoreNextType bool + ignoreNextIndent bool +} + +// indent performs indentation according to the depth level and cs.Indent +// option. +func (d *dumpState) indent() { + if d.ignoreNextIndent { + d.ignoreNextIndent = false + return + } + d.w.Write(bytes.Repeat([]byte(config.indent), d.depth)) +} + +// unpackValue returns values inside of non-nil interfaces when possible. +// This is useful for data types like structs, arrays, slices, and maps which +// can contain varying types packed inside an interface. +func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { + if v.Kind() == reflect.Interface && !v.IsNil() { + v = v.Elem() + } + return v +} + +// dumpPtr handles formatting of pointers by indirecting them as necessary. +func (d *dumpState) dumpPtr(v reflect.Value) { + // Remove pointers at or below the current depth from map used to detect + // circular refs. + for k, depth := range d.pointers { + if depth >= d.depth { + delete(d.pointers, k) + } + } + + // Figure out how many levels of indirection there are by dereferencing + // pointers and unpacking interfaces down the chain while detecting circular + // references. + nilFound := false + cycleFound := false + indirects := 0 + ve := v + for ve.Kind() == reflect.Ptr { + if ve.IsNil() { + nilFound = true + break + } + indirects++ + addr := ve.Pointer() + if pd, ok := d.pointers[addr]; ok && pd < d.depth { + cycleFound = true + indirects-- + break + } + d.pointers[addr] = d.depth + + ve = ve.Elem() + if ve.Kind() == reflect.Interface { + if ve.IsNil() { + nilFound = true + break + } + ve = ve.Elem() + } + } + + // Display type information. + d.w.Write(bytes.Repeat(ampersandBytes, indirects)) + + // Display dereferenced value. + switch { + case nilFound: + d.w.Write(nilBytes) + + case cycleFound: + d.w.Write(circularBytes) + + default: + d.ignoreNextType = true + d.dump(ve) + } +} + +// dump is the main workhorse for dumping a value. It uses the passed reflect +// value to figure out what kind of object we are dealing with and formats it +// appropriately. It is a recursive function, however circular data structures +// are detected and handled properly. +func (d *dumpState) dump(v reflect.Value) { + // Handle invalid reflect values immediately. + kind := v.Kind() + if kind == reflect.Invalid { + d.w.Write(invalidAngleBytes) + return + } + + // Handle pointers specially. + if kind == reflect.Ptr { + d.indent() + d.w.Write(openParenBytes) + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(closeParenBytes) + d.w.Write(openParenBytes) + d.dumpPtr(v) + d.w.Write(closeParenBytes) + return + } + + // Print type information unless already handled elsewhere. + var shouldPrintClosingBr = false + if !d.ignoreNextType { + d.indent() + d.w.Write(openParenBytes) + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(closeParenBytes) + d.w.Write(openParenBytes) + shouldPrintClosingBr = true + } + d.ignoreNextType = false + + if v.Type() == timeType { + t := v.Interface().(time.Time) + switch t.IsZero() { + case false: + var location string + switch t.Location() { + case time.UTC: + location = "time.UTC" + case time.Local: + location = "time.Local" + default: + location = fmt.Sprintf("must(time.LoadLocation(%q))", t.Location().String()) + } + fmt.Fprintf(d.w, "time.Date(%d, %d, %d, %d, %d, %d, %d, %s)", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), location) + case true: + d.w.Write([]byte("time.Time{}")) + } + goto AfterKindSwitch + } + + switch kind { + case reflect.Invalid: + // Do nothing. We should never get here since invalid has already + // been handled above. + + case reflect.Bool: + printBool(d.w, v.Bool()) + + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + printInt(d.w, v.Int(), 10) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + printUint(d.w, v.Uint(), 10) + + case reflect.Float32: + printFloat(d.w, v.Float(), 32) + + case reflect.Float64: + printFloat(d.w, v.Float(), 64) + + case reflect.Complex64: + printComplex(d.w, v.Complex(), 32) + + case reflect.Complex128: + printComplex(d.w, v.Complex(), 64) + + case reflect.Array: + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(openBraceNewlineBytes) + d.depth++ + for i := 0; i < v.Len(); i++ { + d.dump(d.unpackValue(v.Index(i))) + d.w.Write(commaNewlineBytes) + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Slice: + if v.IsNil() { + d.w.Write(nilBytes) + } else { + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(openBraceNewlineBytes) + d.depth++ + for i := 0; i < v.Len(); i++ { + d.dump(d.unpackValue(v.Index(i))) + d.w.Write(commaNewlineBytes) + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + } + + case reflect.String: + d.w.Write([]byte(strconv.Quote(v.String()))) + + case reflect.Interface: + // If we got here, it's because interface is nil + // See https://github.com/davecgh/go-spew/issues/12 + d.w.Write(nilBytes) + + case reflect.Ptr: + // Do nothing. We should never get here since pointers have already + // been handled above. + + case reflect.Map: + if v.IsNil() { + d.w.Write(nilBytes) + } else { + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(openBraceNewlineBytes) + d.depth++ + keys := v.MapKeys() + for _, key := range keys { + d.dump(d.unpackValue(key)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.MapIndex(key))) + d.w.Write(commaNewlineBytes) + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + } + + case reflect.Struct: + d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) + d.w.Write(openBraceBytes) + d.depth++ + { + vt := v.Type() + numFields := v.NumField() + if numFields > 0 { + d.w.Write(newlineBytes) + } + for i := 0; i < numFields; i++ { + d.indent() + vtf := vt.Field(i) + d.w.Write([]byte(vtf.Name)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.Field(i))) + d.w.Write(commaBytes) + d.w.Write(newlineBytes) + } + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Uintptr: + printHexPtr(d.w, uintptr(v.Uint())) + + case reflect.Func: + d.w.Write([]byte(reflectsource.GetFuncValueSourceAsString(v))) + + case reflect.UnsafePointer, reflect.Chan: + printHexPtr(d.w, v.Pointer()) + + // There were not any other types at the time this code was written, but + // fall back to letting the default fmt package handle it in case any new + // types are added. + default: + if v.CanInterface() { + fmt.Fprintf(d.w, "%v", v.Interface()) + } else { + fmt.Fprintf(d.w, "%v", v.String()) + } + } +AfterKindSwitch: + + if shouldPrintClosingBr { + d.w.Write(closeParenBytes) + } +} + +var timeType = reflect.TypeOf(time.Time{}) + +func typeStringWithoutPackagePrefix(v reflect.Value) string { + //return v.Type().String()[len(v.Type().PkgPath())+1:] // TODO: Error checking? + //return v.Type().PkgPath() + //return v.Type().String() + //return v.Type().Name() + + /*x := v.Type().String() + if strings.HasPrefix(x, "main.") { + x = x[len("main."):] + } + return x*/ + + px := v.Type().String() + prefix := px[0 : len(px)-len(strings.TrimLeft(px, "*"))] // Split "**main.Lang" -> "**" and "main.Lang" + x := px[len(prefix):] + x = strings.TrimPrefix(x, "main.") + x = strings.TrimPrefix(x, "goon_test.") + return prefix + x + + /*x = string(debug.Stack())//GetLine(string(debug.Stack()), 0) + //x = x[1:strings.Index(x, ":")] + //spew.Printf(">%s<\n", x) + //panic(nil) + //st := string(debug.Stack()) + //debug.PrintStack() + + return x*/ +} + +// fdump is a helper function to consolidate the logic from the various public +// methods which take varying writers and config states. +func fdump(w io.Writer, a ...interface{}) { + for _, arg := range a { + d := dumpState{w: w} + if arg == nil { + d.w.Write(interfaceBytes) + d.w.Write(nilParenBytes) + } else { + d.pointers = make(map[uintptr]int) + d.dump(reflect.ValueOf(arg)) + } + d.w.Write(newlineBytes) + } +} + +// bdump dumps to []byte. +func bdump(a ...interface{}) []byte { + var buf bytes.Buffer + fdump(&buf, a...) + return gofmt(buf.Bytes()) +} + +func fdumpNamed(w io.Writer, names []string, a ...interface{}) { + for argIndex, arg := range a { + d := dumpState{w: w} + if argIndex < len(names) { + d.w.Write([]byte(names[argIndex])) + d.w.Write([]byte(" = ")) + } + if arg == nil { + d.w.Write(interfaceBytes) + d.w.Write(nilParenBytes) + } else { + d.pointers = make(map[uintptr]int) + d.dump(reflect.ValueOf(arg)) + } + if len(names) >= len(a) { + d.w.Write(newlineBytes) + } else { + if argIndex < len(a)-1 { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } + } +} + +func bdumpNamed(names []string, a ...interface{}) []byte { + var buf bytes.Buffer + fdumpNamed(&buf, names, a...) + return gofmt(buf.Bytes()) +} + +func gofmt(src []byte) []byte { + formattedSrc, err := format.Source(src) + if nil != err { + return []byte("gofmt error (" + err.Error() + ")!\n" + string(src)) + } + return formattedSrc +} diff --git a/vendor/github.com/shurcooL/go-goon/goon.go b/vendor/github.com/shurcooL/go-goon/goon.go new file mode 100644 index 0000000..8149147 --- /dev/null +++ b/vendor/github.com/shurcooL/go-goon/goon.go @@ -0,0 +1,56 @@ +// Package goon is a deep pretty printer with Go-like notation. It implements the goon specification. +// +// Deprecated: This package is old, incomplete, low code quality, and now unmaintained. +// See github.com/hexops/valast for a newer package that is the closest known direct replacement. +// See the Alternatives section in README.md for other known entries in this problem space. +package goon + +import ( + "io" + "os" + + "github.com/shurcooL/go/reflectsource" +) + +// Dump dumps goons to stdout. +func Dump(a ...interface{}) (n int, err error) { + return os.Stdout.Write(bdump(a...)) +} + +// Sdump dumps goons to a string. +func Sdump(a ...interface{}) string { + return string(bdump(a...)) +} + +// Fdump dumps goons to a writer. +func Fdump(w io.Writer, a ...interface{}) (n int, err error) { + return w.Write(bdump(a...)) +} + +// DumpExpr dumps goon expressions to stdout. +// +// E.g., this: +// +// somethingImportant := 5 +// DumpExpr(somethingImportant) +// +// Will print: +// +// somethingImportant = (int)(5) +func DumpExpr(a ...interface{}) (n int, err error) { + return os.Stdout.Write(bdumpNamed(reflectsource.GetParentArgExprAllAsString(), a...)) +} + +// SdumpExpr dumps goon expressions to a string. +func SdumpExpr(a ...interface{}) string { + return string(bdumpNamed(reflectsource.GetParentArgExprAllAsString(), a...)) +} + +// FdumpExpr dumps goon expressions to a writer. +func FdumpExpr(w io.Writer, a ...interface{}) (n int, err error) { + names := reflectsource.GetParentArgExprAllAsString() + if len(names) >= 1 { + names = names[1:] // First argument is the writer, skip it. + } + return w.Write(bdumpNamed(names, a...)) +} diff --git a/vendor/github.com/shurcooL/go-goon/print_types.go b/vendor/github.com/shurcooL/go-goon/print_types.go new file mode 100644 index 0000000..274f003 --- /dev/null +++ b/vendor/github.com/shurcooL/go-goon/print_types.go @@ -0,0 +1,107 @@ +package goon + +import ( + "io" + "strconv" +) + +// Some constants in the form of bytes to avoid string overhead. This mirrors +// the technique used in the fmt package. +var ( + plusBytes = []byte("+") + iBytes = []byte("i") + trueBytes = []byte("true") + falseBytes = []byte("false") + interfaceBytes = []byte("(interface{})") + commaBytes = []byte(",") + commaNewlineBytes = []byte(",\n") + newlineBytes = []byte("\n") + openBraceBytes = []byte("{") + openBraceNewlineBytes = []byte("{\n") + closeBraceBytes = []byte("}") + ampersandBytes = []byte("&") + colonSpaceBytes = []byte(": ") + openParenBytes = []byte("(") + closeParenBytes = []byte(")") + nilBytes = []byte("nil") + nilParenBytes = []byte("(nil)") + circularBytes = []byte("already_shown") + invalidAngleBytes = []byte("<invalid>") +) + +// hexDigits is used to map a decimal value to a hex digit. +var hexDigits = "0123456789abcdef" + +// printBool outputs a boolean value as true or false to Writer w. +func printBool(w io.Writer, val bool) { + if val { + w.Write(trueBytes) + } else { + w.Write(falseBytes) + } +} + +// printInt outputs a signed integer value to Writer w. +func printInt(w io.Writer, val int64, base int) { + w.Write([]byte(strconv.FormatInt(val, base))) +} + +// printUint outputs an unsigned integer value to Writer w. +func printUint(w io.Writer, val uint64, base int) { + w.Write([]byte(strconv.FormatUint(val, base))) +} + +// printFloat outputs a floating point value using the specified precision, +// which is expected to be 32 or 64bit, to Writer w. +func printFloat(w io.Writer, val float64, precision int) { + w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) +} + +// printComplex outputs a complex value using the specified float precision +// for the real and imaginary parts to Writer w. +func printComplex(w io.Writer, c complex128, floatPrecision int) { + r := real(c) + w.Write(openParenBytes) + w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) + i := imag(c) + if i >= 0 { + w.Write(plusBytes) + } + w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) + w.Write(iBytes) + w.Write(closeParenBytes) +} + +// printHexPtr outputs a uintptr formatted as hexidecimal with a leading '0x' +// prefix to Writer w. +func printHexPtr(w io.Writer, p uintptr) { + // Null pointer. + num := uint64(p) + if num == 0 { + w.Write(nilBytes) + return + } + + // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix + buf := make([]byte, 18) + + // It's simpler to construct the hex string right to left. + base := uint64(16) + i := len(buf) - 1 + for num >= base { + buf[i] = hexDigits[num%base] + num /= base + i-- + } + buf[i] = hexDigits[num] + + // Add '0x' prefix. + i-- + buf[i] = 'x' + i-- + buf[i] = '0' + + // Strip unused leading bytes. + buf = buf[i:] + w.Write(buf) +} diff --git a/vendor/github.com/shurcooL/go/LICENSE b/vendor/github.com/shurcooL/go/LICENSE new file mode 100644 index 0000000..2b3af91 --- /dev/null +++ b/vendor/github.com/shurcooL/go/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Dmitri Shuralyov + +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/shurcooL/go/parserutil/parserutil.go b/vendor/github.com/shurcooL/go/parserutil/parserutil.go new file mode 100644 index 0000000..32b234d --- /dev/null +++ b/vendor/github.com/shurcooL/go/parserutil/parserutil.go @@ -0,0 +1,34 @@ +// Package parserutil offers convenience functions for parsing Go code to AST. +package parserutil + +import ( + "errors" + "go/ast" + "go/parser" + "go/token" +) + +// ParseStmt is a convenience function for obtaining the AST of a statement x. +// The position information recorded in the AST is undefined. The filename used +// in error messages is the empty string. +func ParseStmt(x string) (ast.Stmt, error) { + file, err := parser.ParseFile(token.NewFileSet(), "", "package p;func _(){\n//line :1\n"+x+"\n;}", 0) + if err != nil { + return nil, err + } + return file.Decls[0].(*ast.FuncDecl).Body.List[0], nil +} + +// ParseDecl is a convenience function for obtaining the AST of a declaration x. +// The position information recorded in the AST is undefined. The filename used +// in error messages is the empty string. +func ParseDecl(x string) (ast.Decl, error) { + file, err := parser.ParseFile(token.NewFileSet(), "", "package p\n//line :1\n"+x+"\n", 0) + if err != nil { + return nil, err + } + if len(file.Decls) == 0 { + return nil, errors.New("no declaration") + } + return file.Decls[0], nil +} diff --git a/vendor/github.com/shurcooL/go/printerutil/printerutil.go b/vendor/github.com/shurcooL/go/printerutil/printerutil.go new file mode 100644 index 0000000..2306268 --- /dev/null +++ b/vendor/github.com/shurcooL/go/printerutil/printerutil.go @@ -0,0 +1,36 @@ +// Package printerutil provides formatted printing of AST nodes. +package printerutil + +import ( + "bytes" + "fmt" + "go/printer" + "go/token" +) + +// Consistent with the default gofmt behavior. +var config = printer.Config{Mode: printer.UseSpaces | printer.TabIndent, Tabwidth: 8} + +// SprintAst prints node, using fset, and returns it as string. +func SprintAst(fset *token.FileSet, node interface{}) string { + var buf bytes.Buffer + config.Fprint(&buf, fset, node) + return buf.String() +} + +// SprintAstBare prints node and returns it as string. +func SprintAstBare(node interface{}) string { + fset := token.NewFileSet() + return SprintAst(fset, node) +} + +// PrintlnAst prints node, using fset, to stdout. +func PrintlnAst(fset *token.FileSet, node interface{}) { + fmt.Println(SprintAst(fset, node)) +} + +// PrintlnAstBare prints node to stdout. +func PrintlnAstBare(node interface{}) { + fset := token.NewFileSet() + PrintlnAst(fset, node) +} diff --git a/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go b/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go new file mode 100644 index 0000000..dbf56e4 --- /dev/null +++ b/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go @@ -0,0 +1,112 @@ +// Package reflectfind offers funcs to perform deep-search via reflect to find instances that satisfy given query. +package reflectfind + +import "reflect" + +// First finds the first instances of i that satisfies query within d. +func First(d interface{}, query func(i interface{}) bool) interface{} { + s := state{Visited: make(map[uintptr]struct{})} + return s.findFirst(reflect.ValueOf(d), query) +} + +type state struct { + Visited map[uintptr]struct{} +} + +func (s *state) findFirst(v reflect.Value, query func(i interface{}) bool) interface{} { + // TODO: Should I check v.CanInterface()? It seems like I might be able to get away without it... + if query(v.Interface()) { + return v.Interface() + } + + switch v.Kind() { + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + if q := s.findFirst(v.Field(i), query); q != nil { + return q + } + } + case reflect.Map: + for _, key := range v.MapKeys() { + if q := s.findFirst(v.MapIndex(key), query); q != nil { + return q + } + } + case reflect.Array, reflect.Slice: + for i := 0; i < v.Len(); i++ { + if q := s.findFirst(v.Index(i), query); q != nil { + return q + } + } + case reflect.Ptr: + if !v.IsNil() { + if _, visited := s.Visited[v.Pointer()]; !visited { + s.Visited[v.Pointer()] = struct{}{} + if q := s.findFirst(v.Elem(), query); q != nil { + return q + } + } + } + case reflect.Interface: + if !v.IsNil() { + if q := s.findFirst(v.Elem(), query); q != nil { + return q + } + } + } + + return nil +} + +// All finds all instances of i that satisfy query within d. +func All(d interface{}, query func(i interface{}) bool) map[interface{}]struct{} { + s := stateAll{state: state{Visited: make(map[uintptr]struct{})}, Found: make(map[interface{}]struct{})} + s.findAll(reflect.ValueOf(d), query) + return s.Found +} + +type stateAll struct { + state + Found map[interface{}]struct{} +} + +func (s *stateAll) findAll(v reflect.Value, query func(i interface{}) bool) { + switch v.Kind() { + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + // TODO: Instead of skipping nil values, maybe pass the info as a bool parameter to query? + if v.IsNil() { + return + } + } + + // TODO: Should I check v.CanInterface()? It seems like I might be able to get away without it... + if query(v.Interface()) { + s.Found[v.Interface()] = struct{}{} + } + + switch v.Kind() { + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + s.findAll(v.Field(i), query) + } + case reflect.Map: + for _, key := range v.MapKeys() { + s.findAll(v.MapIndex(key), query) + } + case reflect.Array, reflect.Slice: + for i := 0; i < v.Len(); i++ { + s.findAll(v.Index(i), query) + } + case reflect.Ptr: + if !v.IsNil() { + if _, visited := s.Visited[v.Pointer()]; !visited { + s.Visited[v.Pointer()] = struct{}{} + s.findAll(v.Elem(), query) + } + } + case reflect.Interface: + if !v.IsNil() { + s.findAll(v.Elem(), query) + } + } +} diff --git a/vendor/github.com/shurcooL/go/reflectsource/callername.go b/vendor/github.com/shurcooL/go/reflectsource/callername.go new file mode 100644 index 0000000..eda5543 --- /dev/null +++ b/vendor/github.com/shurcooL/go/reflectsource/callername.go @@ -0,0 +1,219 @@ +package reflectsource + +import ( + "bytes" + "fmt" + "go/ast" + "io/ioutil" + "runtime" + "strings" + + "github.com/shurcooL/go/parserutil" + "github.com/shurcooL/go/printerutil" + "github.com/shurcooL/go/reflectfind" +) + +// GetParentFuncAsString gets the parent func as a string. +func GetParentFuncAsString() string { + // TODO: Replace use of debug.Stack() with direct use of runtime package... + // TODO: Use runtime.FuncForPC(runtime.Caller()).Name() to get func name if source code not found. + stack := string(stack()) + + funcName := getLine(stack, 3) + funcName = funcName[1:strings.Index(funcName, ": ")] + if dotPos := strings.LastIndex(funcName, "."); dotPos != -1 { // Trim package prefix. + funcName = funcName[dotPos+1:] + } + + funcArgs := getLine(stack, 5) + funcArgs = funcArgs[strings.Index(funcArgs, ": ")+len(": "):] + funcArgs = funcArgs[strings.Index(funcArgs, "(") : strings.LastIndex(funcArgs, ")")+len(")")] // TODO: This may fail if there are 2+ func calls on one line. + + return funcName + funcArgs +} + +// GetParentFuncArgsAsString gets the parent func with its args as a string. +func GetParentFuncArgsAsString(args ...interface{}) string { + // TODO: Replace use of debug.Stack() with direct use of runtime package... + // TODO: Use runtime.FuncForPC(runtime.Caller()).Name() to get func name if source code not found. + stack := string(stack()) + + funcName := getLine(stack, 3) + funcName = funcName[1:strings.Index(funcName, ": ")] + if dotPos := strings.LastIndex(funcName, "."); dotPos != -1 { // Trim package prefix. + funcName = funcName[dotPos+1:] + } + + funcArgs := "(" + for i, arg := range args { + // TODO: Add arg names. Maybe not? + if i != 0 { + funcArgs += ", " + } + funcArgs += fmt.Sprintf("%#v", arg) // TODO: Maybe use goon instead. Need to move elsewhere to avoid import cycle. + } + funcArgs += ")" + + return funcName + funcArgs +} + +// GetExprAsString gets the expression as a string. +func GetExprAsString(_ interface{}) string { + return GetParentArgExprAsString(0) +} + +func getParent2ArgExprAllAsAst() []ast.Expr { + // TODO: Replace use of debug.Stack() with direct use of runtime package... + stack := string(stack()) + + // TODO: Bounds error checking, get rid of GetLine gists, etc. + parentName := getLine(stack, 5) + if !strings.Contains(parentName, ": ") { + // TODO: This happens when source file isn't present in same location as when built. See if can do anything better + // via direct use of runtime package (instead of debug.Stack(), which will exclude any func names)... + return nil + } + parentName = parentName[1:strings.Index(parentName, ": ")] + if dotPos := strings.LastIndex(parentName, "."); dotPos != -1 { // Trim package prefix. + parentName = parentName[dotPos+1:] + } + + str := getLine(stack, 7) + str = str[strings.Index(str, ": ")+len(": "):] + p, err := parserutil.ParseStmt(str) + if err != nil { + return nil + } + + innerQuery := func(i interface{}) bool { + if ident, ok := i.(*ast.Ident); ok && ident.Name == parentName { + return true + } + return false + } + + query := func(i interface{}) bool { + if c, ok := i.(*ast.CallExpr); ok && nil != reflectfind.First(c.Fun, innerQuery) { + return true + } + return false + } + callExpr, _ := reflectfind.First(p, query).(*ast.CallExpr) + + if callExpr == nil { + return nil + } + return callExpr.Args +} + +// GetParentArgExprAsString gets the argIndex argument expression of parent func call as a string. +func GetParentArgExprAsString(argIndex uint32) string { + args := getParent2ArgExprAllAsAst() + if args == nil { + return "<expr not found>" + } + if argIndex >= uint32(len(args)) { + return "<out of range>" + } + + return printerutil.SprintAstBare(args[argIndex]) +} + +// GetParentArgExprAllAsString gets all argument expressions of parent func call as a string. +func GetParentArgExprAllAsString() []string { + args := getParent2ArgExprAllAsAst() + if args == nil { + return nil + } + + out := make([]string, len(args)) + for i := range args { + out[i] = printerutil.SprintAstBare(args[i]) + } + return out +} + +func getMySecondArgExprAsString(int, int) string { + return GetParentArgExprAsString(1) +} + +func getLine(s string, lineIndex int) string { + return strings.Split(s, "\n")[lineIndex] +} + +var ( + dunno = []byte("???") + centerDot = []byte("·") + dot = []byte(".") + slash = []byte("/") +) + +// stack returns a formatted stack trace of the goroutine that calls it. +// For each routine, it includes the source line information and PC value, +// then attempts to discover, for Go functions, the calling function or +// method and the text of the line containing the invocation. +// +// It was deprecated in Go 1.5, suggested to use package runtime's Stack instead, +// and replaced by another implementation in Go 1.6. +// +// stack implements the Go 1.5 version of debug.Stack(), skipping 1 frame, +// instead of 2, since it's being called directly (rather than via debug.Stack()). +func stack() []byte { + buf := new(bytes.Buffer) // the returned data + // As we loop, we open files and read them. These variables record the currently + // loaded file. + var lines [][]byte + var lastFile string + for i := 1; ; i++ { // Caller we care about is the user, 1 frame up + pc, file, line, ok := runtime.Caller(i) + if !ok { + break + } + // Print this much at least. If we can't find the source, it won't show. + fmt.Fprintf(buf, "%s:%d (0x%x)\n", file, line, pc) + if file != lastFile { + data, err := ioutil.ReadFile(file) + if err != nil { + continue + } + lines = bytes.Split(data, []byte{'\n'}) + lastFile = file + } + line-- // in stack trace, lines are 1-indexed but our array is 0-indexed + fmt.Fprintf(buf, "\t%s: %s\n", function(pc), source(lines, line)) + } + return buf.Bytes() +} + +// source returns a space-trimmed slice of the n'th line. +func source(lines [][]byte, n int) []byte { + if n < 0 || n >= len(lines) { + return dunno + } + return bytes.Trim(lines[n], " \t") +} + +// function returns, if possible, the name of the function containing the PC. +func function(pc uintptr) []byte { + fn := runtime.FuncForPC(pc) + if fn == nil { + return dunno + } + name := []byte(fn.Name()) + // The name includes the path name to the package, which is unnecessary + // since the file name is already included. Plus, it has center dots. + // That is, we see + // runtime/debug.*T·ptrmethod + // and want + // *T.ptrmethod + // Since the package path might contains dots (e.g. code.google.com/...), + // we first remove the path prefix if there is one. + if lastslash := bytes.LastIndex(name, slash); lastslash >= 0 { + name = name[lastslash+1:] + } + if period := bytes.Index(name, dot); period >= 0 { + name = name[period+1:] + } + name = bytes.Replace(name, centerDot, dot, -1) + return name +} diff --git a/vendor/github.com/shurcooL/go/reflectsource/doc.go b/vendor/github.com/shurcooL/go/reflectsource/doc.go new file mode 100644 index 0000000..8cabcfa --- /dev/null +++ b/vendor/github.com/shurcooL/go/reflectsource/doc.go @@ -0,0 +1,9 @@ +// Package sourcereflect implements run-time source reflection, allowing a program to +// look up string representation of objects from the underlying .go source files. +// +// Specifically, it implements ability to get name of caller funcs and their parameters. +// It also implements functionality to get a string containing source code of provided func. +// +// In order to succeed, it expects the program's source code to be available in normal location. +// It's intended to be used for development purposes, or for experimental programs. +package reflectsource diff --git a/vendor/github.com/shurcooL/go/reflectsource/funcsource.go b/vendor/github.com/shurcooL/go/reflectsource/funcsource.go new file mode 100644 index 0000000..9e2cf70 --- /dev/null +++ b/vendor/github.com/shurcooL/go/reflectsource/funcsource.go @@ -0,0 +1,82 @@ +package reflectsource + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "io/ioutil" + "reflect" + "runtime" + + "github.com/shurcooL/go/printerutil" + "github.com/shurcooL/go/reflectfind" +) + +// GetSourceAsString returns the source of the func f. +func GetSourceAsString(f interface{}) string { + // No need to check for f being nil, since that's handled below. + fv := reflect.ValueOf(f) + return GetFuncValueSourceAsString(fv) +} + +// GetFuncValueSourceAsString returns the source of the func value fv. +func GetFuncValueSourceAsString(fv reflect.Value) string { + // Checking the kind catches cases where f was nil, resulting in fv being a zero Value (i.e. invalid kind), + // as well as when fv is non-func. + if fv.Kind() != reflect.Func { + return "kind not func" + } + pc := fv.Pointer() + if pc == 0 { + return "nil" + } + function := runtime.FuncForPC(pc) + if function == nil { + return "nil" + } + file, line := function.FileLine(pc) + + var startIndex, endIndex int + { + b, err := ioutil.ReadFile(file) + if err != nil { + return "<file not found>" + } + startIndex, endIndex = getLineStartEndIndicies(b, line-1) + } + + fs := token.NewFileSet() + fileAst, err := parser.ParseFile(fs, file, nil, 0*parser.ParseComments) + if err != nil { + return "<ParseFile failed>" + } + + // TODO: Consider using ast.Walk() instead of custom FindFirst() + query := func(i interface{}) bool { + // TODO: Factor-out the unusual overlap check + if f, ok := i.(*ast.FuncLit); ok && ((startIndex <= int(f.Pos())-1 && int(f.Pos())-1 <= endIndex) || (int(f.Pos())-1 <= startIndex && startIndex <= int(f.End())-1)) { + return true + } + return false + } + funcAst := reflectfind.First(fileAst, query) + + // If func literal wasn't found, try again looking for func declaration + if funcAst == nil { + query := func(i interface{}) bool { + // TODO: Factor-out the unusual overlap check + if f, ok := i.(*ast.FuncDecl); ok && ((startIndex <= int(f.Pos())-1 && int(f.Pos())-1 <= endIndex) || (int(f.Pos())-1 <= startIndex && startIndex <= int(f.End())-1)) { + return true + } + return false + } + funcAst = reflectfind.First(fileAst, query) + } + + if funcAst == nil { + return fmt.Sprintf("<func src not found at %v:%v>", file, line) + } + + return printerutil.SprintAst(fs, funcAst) +} diff --git a/vendor/github.com/shurcooL/go/reflectsource/indicies.go b/vendor/github.com/shurcooL/go/reflectsource/indicies.go new file mode 100644 index 0000000..ea2041c --- /dev/null +++ b/vendor/github.com/shurcooL/go/reflectsource/indicies.go @@ -0,0 +1,29 @@ +package reflectsource + +import ( + "bytes" +) + +// getLineStartEndIndicies gets the starting and ending caret indicies of line with specified lineIndex. +// Does not include newline character. +// First line has index 0. +// Returns (-1, -1) if line is not found. +func getLineStartEndIndicies(b []byte, lineIndex int) (startIndex, endIndex int) { + index := 0 + for line := 0; ; line++ { + lineLength := bytes.IndexByte(b[index:], '\n') + if line == lineIndex { + if lineLength == -1 { + return index, len(b) + } else { + return index, index + lineLength + } + } + if lineLength == -1 { + break + } + index += lineLength + 1 + } + + return -1, -1 +} diff --git a/vendor/github.com/shurcooL/goexec/LICENSE b/vendor/github.com/shurcooL/goexec/LICENSE new file mode 100644 index 0000000..2b3af91 --- /dev/null +++ b/vendor/github.com/shurcooL/goexec/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Dmitri Shuralyov + +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/shurcooL/goexec/README.md b/vendor/github.com/shurcooL/goexec/README.md new file mode 100644 index 0000000..cac6392 --- /dev/null +++ b/vendor/github.com/shurcooL/goexec/README.md @@ -0,0 +1,82 @@ +goexec +====== + +[![Go Reference](https://pkg.go.dev/badge/github.com/shurcooL/goexec.svg)](https://pkg.go.dev/github.com/shurcooL/goexec) + +goexec is a command line tool to execute Go code. Output is printed as goons to stdout. + +Installation +------------ + +```sh +go install github.com/shurcooL/goexec@latest +``` + +Usage +----- + +``` +Usage: goexec [flags] [packages] [package.]function(parameters) + echo parameters | goexec -stdin [flags] [packages] [package.]function + -compiler string + Compiler to use, one of: "gc", "gopherjs". (default "gc") + -n Print the generated source but do not run it. + -quiet + Do not dump the return values as a goon. + -stdin + Read func parameters from stdin instead. + -tags string + A comma-separated list of build tags to consider satisfied during the build. +``` + +Examples +-------- + +```sh +$ goexec 'strings.Repeat("Go! ", 5)' +(string)("Go! Go! Go! Go! Go! ") + +$ goexec strings 'Replace("Calling Go functions from the terminal is hard.", "hard", "easy", -1)' +(string)("Calling Go functions from the terminal is easy.") + +# Note that parser.ParseExpr returns 2 values (ast.Expr, error). +$ goexec 'parser.ParseExpr("5 + 7")' +(*ast.BinaryExpr)(&ast.BinaryExpr{ + X: (*ast.BasicLit)(&ast.BasicLit{ + ValuePos: (token.Pos)(1), + Kind: (token.Token)(5), + Value: (string)("5"), + }), + OpPos: (token.Pos)(3), + Op: (token.Token)(12), + Y: (*ast.BasicLit)(&ast.BasicLit{ + ValuePos: (token.Pos)(5), + Kind: (token.Token)(5), + Value: (string)("7"), + }), +}) +(interface{})(nil) + +# Run function RepoRootForImportPath from package "golang.org/x/tools/go/vcs". +$ goexec 'vcs.RepoRootForImportPath("rsc.io/pdf", false)' +(*vcs.RepoRoot)(...) +(interface{})(nil) + +$ goexec -quiet 'fmt.Println("Use -quiet to disable output of goon; useful if you want to print to stdout.")' +Use -quiet to disable output of goon; useful if you want to print to stdout. + +$ echo '"fmt"' | goexec -stdin 'gist4727543.GetForcedUse' +(string)("var _ = fmt.Errorf") +``` + +Alternatives +------------ + +- [gommand](https://github.com/sno6/gommand) - Go one liner program, similar to python -c. +- [gorram](https://github.com/natefinch/gorram) - Like go run for any Go function. +- [goeval](https://github.com/dolmen-go/goeval) - Run Go snippets instantly from the command-line. + +License +------- + +- [MIT License](LICENSE) diff --git a/vendor/github.com/shurcooL/goexec/main.go b/vendor/github.com/shurcooL/goexec/main.go new file mode 100644 index 0000000..380f1a1 --- /dev/null +++ b/vendor/github.com/shurcooL/goexec/main.go @@ -0,0 +1,154 @@ +// goexec is a command line tool to execute Go code. Output is printed as goons to stdout. +package main + +import ( + "flag" + "fmt" + "go/build" + "io/ioutil" + "log" + "os" + "os/exec" + "path/filepath" + "strconv" + "strings" + + "golang.org/x/tools/imports" + + // We need go-goon to be available; this ensures getting goexec will get go-goon too. + _ "github.com/shurcooL/go-goon" +) + +var ( + quietFlag = flag.Bool("quiet", false, "Do not dump the return values as a goon.") + stdinFlag = flag.Bool("stdin", false, "Read func parameters from stdin instead.") + nFlag = flag.Bool("n", false, "Print the generated source but do not run it.") + compilerFlag = flag.String("compiler", "gc", `Compiler to use, one of: "gc", "gopherjs".`) + tagsFlag = flag.String("tags", "", "A comma-separated list of build tags to consider satisfied during the build.") +) + +func usage() { + fmt.Fprintln(os.Stderr, `Usage: goexec [flags] [packages] [package.]function(parameters) + echo parameters | goexec -stdin [flags] [packages] [package.]function`) + flag.PrintDefaults() +} + +func main() { + flag.Usage = usage + flag.Parse() + if flag.NArg() < 1 { + flag.Usage() + os.Exit(2) + } + switch *compilerFlag { + case "gc", "gopherjs": + default: + flag.Usage() + os.Exit(2) + } + + wd, err := os.Getwd() + if err != nil { + log.Fatalln(err) + } + + args := flag.Args() + importPaths := args[:len(args)-1] // All but last. + cmd := args[len(args)-1] // Last one. + if *stdinFlag { + stdin, err := ioutil.ReadAll(os.Stdin) + if err != nil { + log.Fatalln(err) + } + + cmd += "(" + strings.TrimSuffix(string(stdin), "\n") + ")" + } + if !*quietFlag { + cmd = "goon.Dump(" + cmd + ")" + } + + // Generate source code. + src := `package main + +import ( +` + if !*quietFlag { + src += ` "github.com/shurcooL/go-goon" +` + } + for _, importPath := range importPaths { + bpkg, err := build.Import(importPath, wd, build.FindOnly) + if err != nil { + log.Fatalln(err) + } + if build.IsLocalImport(bpkg.ImportPath) { + log.Fatalf("local import path %q not supported", bpkg.ImportPath) // TODO: Add support for this when it's a priority. + } + src += ` . ` + strconv.Quote(bpkg.ImportPath) + ` +` + } + src += `) + +func main() { + ` + cmd + ` +} +` + + // Run `goimports` on the source code. + { + out, err := imports.Process("gen.go", []byte(src), nil) + if err != nil { + fmt.Fprint(os.Stderr, src) + fmt.Fprintln(os.Stderr, "imports.Process:", err) // Output is like "gen.go:8:18: expected ...". + os.Exit(1) + } + src = string(out) + } + + if *nFlag { + fmt.Print(src) + return + } + + // Run the program. + err = run(src) + if err != nil { + fmt.Fprintln(os.Stderr, "### Error ###") + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +} + +func run(src string) error { + // Create a temp folder. + tempDir, err := ioutil.TempDir("", "goexec_") + if err != nil { + return err + } + defer func() { + err := os.RemoveAll(tempDir) + if err != nil { + fmt.Fprintln(os.Stderr, "warning: error removing temp dir:", err) + } + }() + + // Write the source code file. + tempFile := filepath.Join(tempDir, "gen.go") + err = ioutil.WriteFile(tempFile, []byte(src), 0600) + if err != nil { + return err + } + + // Compile and run the program. + var cmd *exec.Cmd + switch *compilerFlag { + case "gc": + cmd = exec.Command("go", "run", "-tags", *tagsFlag, tempFile) + case "gopherjs": + cmd = exec.Command("gopherjs", "run", "--tags", *tagsFlag, tempFile) + } + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return cmd.Run() +} diff --git a/vendor/modules.txt b/vendor/modules.txt index ab1e6de..e75d8e4 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -57,6 +57,9 @@ github.com/fatih/color github.com/fsnotify/fsnotify # github.com/hack-pad/safejs v0.1.1 ## explicit; go 1.18 +github.com/hack-pad/safejs +github.com/hack-pad/safejs/internal/catch +github.com/hack-pad/safejs/internal/stackerr # github.com/mattn/go-colorable v0.1.13 ## explicit; go 1.15 github.com/mattn/go-colorable @@ -71,8 +74,13 @@ github.com/mdm-code/scanner github.com/natefinch/atomic # github.com/nlepage/go-js-promise v1.0.0 ## explicit; go 1.12 +github.com/nlepage/go-js-promise # github.com/nlepage/go-wasm-http-server/v2 v2.2.1 ## explicit; go 1.18 +github.com/nlepage/go-wasm-http-server/v2 +github.com/nlepage/go-wasm-http-server/v2/internal/jstype +github.com/nlepage/go-wasm-http-server/v2/internal/readablestream +github.com/nlepage/go-wasm-http-server/v2/internal/safejs # github.com/pelletier/go-toml/v2 v2.1.0 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 @@ -80,6 +88,20 @@ github.com/pelletier/go-toml/v2/internal/characters github.com/pelletier/go-toml/v2/internal/danger github.com/pelletier/go-toml/v2/internal/tracker github.com/pelletier/go-toml/v2/unstable +# github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 +## explicit +github.com/shurcooL/go/parserutil +github.com/shurcooL/go/printerutil +github.com/shurcooL/go/reflectfind +github.com/shurcooL/go/reflectsource +# github.com/shurcooL/go-goon v1.0.0 +## explicit; go 1.17 +github.com/shurcooL/go-goon +# github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b +## explicit; go 1.19 +github.com/shurcooL/goexec +# github.com/stretchr/testify v1.10.0 +## explicit; go 1.17 # golang.org/x/mod v0.26.0 ## explicit; go 1.23.0 golang.org/x/mod/internal/lazyregexp From 0ec5f16130d21c39de3b3b57fa84e51d16b91804 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 27 Jan 2026 21:28:20 +0100 Subject: [PATCH 08/23] Added dummy form for query --- tqweb/index.html | 36 ++++++++++++++++++------------------ tqweb/views/index.html | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 tqweb/views/index.html diff --git a/tqweb/index.html b/tqweb/index.html index 5f82ea4..9548753 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -6,26 +6,26 @@ <script src="htmx.min.js"></script> <script> navigator.serviceWorker.register("worker.js"); - - async function hello() { - const name = document.querySelector('#name').value; - - const res = await fetch('api/hello', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ name }), - }); - - const { message } = await res.json(); - - alert(message); - } </script> </head> <body> - <label for="name">Name: </label><input id="name" value="World" /> - <button onclick="hello()">Hello</button> + <form class="box" id="tq-form"> + <div class="field" id="tq-form-field-query"> + <label class="label">Query</label> + <div class="control"> + <textarea + class="textarea" + name="query" + id="query" + hx-post="api/process" + hx-trigger="input changed delay:500ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#tq-form" + placeholder="Enter the query:" + >.</textarea> + </div> + </div> + </form> </body> </html> diff --git a/tqweb/views/index.html b/tqweb/views/index.html new file mode 100644 index 0000000..7e1d658 --- /dev/null +++ b/tqweb/views/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <script src="htmx.min.js"></script> + <script> + navigator.serviceWorker.register("worker.js"); + </script> + </head> + <body> + {{ block "form" . }} + <form class="box" id="tq-form"> + <div class="field" id="tq-form-field-query"> + <label class="label">Query</label> + <div class="control"> + <textarea + class="textarea" + name="query" + id="query" + hx-post="api/process" + hx-trigger="input changed delay:500ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#tq-form" + placeholder="Enter the query:" + >{{ .query }}</textarea> + </div> + </div> + </form> + {{ end }} + </body> +</html> From 8fde633a506adb45eaa5503222a71f6240921c1b Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 27 Jan 2026 21:30:24 +0100 Subject: [PATCH 09/23] Wrote dummy wasm http handler --- tqweb/main.go | 48 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/tqweb/main.go b/tqweb/main.go index f30a9f4..776318b 100644 --- a/tqweb/main.go +++ b/tqweb/main.go @@ -3,25 +3,47 @@ package main import ( - "encoding/json" - "fmt" + _ "embed" + "html/template" "net/http" wasmhttp "github.com/nlepage/go-wasm-http-server/v2" ) -func main() { - http.HandleFunc("/hello", func(res http.ResponseWriter, req *http.Request) { - params := make(map[string]string) - if err := json.NewDecoder(req.Body).Decode(&params); err != nil { - panic(err) - } +/* +TODO: +1. Index has to be rewritten imediately using htmx and the index api endpoint. +2. I can use structs with templates pretty much the same way it's done with templ. +3. Change in query or input triggers processing action with short debounce. +4. The output and ALL errors are displayed in the output box. +5. If there's an error, it's printed out the same way as in the terminal. +------------------------- +| | | +| query | | +| | | +| | | +------------ output | +| | | +| input | | +| | | +| | | +------------------------- +6. It seems the only thing I need to replace is the output box; query and input can stay as is. +7. That said, I don't need to add any hightlight to query and input or output for that matter. +8, Output stays read-only. +*/ - res.Header().Add("Content-Type", "application/json") - if err := json.NewEncoder(res).Encode(map[string]string{ - "message": fmt.Sprintf("Hello %s!", params["name"]), - }); err != nil { - panic(err) +var ( + //go:embed views/index.html + index string + indexT = template.Must(template.New("index").Parse(index)) +) + +func main() { + http.HandleFunc("/process", func(w http.ResponseWriter, r *http.Request) { + data := map[string]string{"query": r.FormValue("query")} + if err := indexT.ExecuteTemplate(w, "form", data); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) } }) From 995f72a075c9e10f721c2160ebfbde500b11f811 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Thu, 29 Jan 2026 20:00:31 +0100 Subject: [PATCH 10/23] Imported tq from the workspace --- tqweb/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tqweb/main.go b/tqweb/main.go index 776318b..0aebe7d 100644 --- a/tqweb/main.go +++ b/tqweb/main.go @@ -7,6 +7,8 @@ import ( "html/template" "net/http" + "github.com/mdm-code/tq/v2" + "github.com/mdm-code/tq/v2/toml" wasmhttp "github.com/nlepage/go-wasm-http-server/v2" ) @@ -47,6 +49,17 @@ func main() { } }) + // Instantiate TQ. + // var err error + conf := toml.GoTOMLConf{} + goToml := toml.NewGoTOML(conf) + adapter := toml.NewAdapter(goToml) + _ = tq.New(adapter) + // err = tq.Run(input, output, query) + // The error from the parser, lexer, scanner, toml adapter etc. -- all of these can be passed to the template in place of the output. + // This way the user is able to see that, first, he gets an error without any flashy effects on the front end, and second, the output + // is placed in a visible place. + wasmhttp.Serve(nil) select {} From 8efdb751f55312b80e00f56c096422bb255420cb Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 3 Feb 2026 18:55:32 +0100 Subject: [PATCH 11/23] Plop a css stylesheet placeholder --- tqweb/index.html | 1 + tqweb/style.css | 0 tqweb/views/index.html | 1 + 3 files changed, 2 insertions(+) create mode 100644 tqweb/style.css diff --git a/tqweb/index.html b/tqweb/index.html index 9548753..17345c9 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <link rel="stylesheet" href="style.css"/> <script src="htmx.min.js"></script> <script> navigator.serviceWorker.register("worker.js"); diff --git a/tqweb/style.css b/tqweb/style.css new file mode 100644 index 0000000..e69de29 diff --git a/tqweb/views/index.html b/tqweb/views/index.html index 7e1d658..d53dc93 100644 --- a/tqweb/views/index.html +++ b/tqweb/views/index.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <link rel="stylesheet" href="style.css"/> <script src="htmx.min.js"></script> <script> navigator.serviceWorker.register("worker.js"); From 10e0c658b8f82cf15e220c29c4609127f0483487 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 3 Feb 2026 18:56:05 +0100 Subject: [PATCH 12/23] Add basic tq processing with input and output --- tqweb/index.html | 34 +++++++++++++++++++++++++++++++++- tqweb/main.go | 36 ++++++++++++++++++++++++------------ tqweb/views/index.html | 36 ++++++++++++++++++++++++++++++++++-- 3 files changed, 91 insertions(+), 15 deletions(-) diff --git a/tqweb/index.html b/tqweb/index.html index 17345c9..e01f62a 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -11,6 +11,7 @@ </head> <body> <form class="box" id="tq-form"> + <div class="field" id="tq-form-field-query"> <label class="label">Query</label> <div class="control"> @@ -19,7 +20,7 @@ name="query" id="query" hx-post="api/process" - hx-trigger="input changed delay:500ms" + hx-trigger="input changed delay:1000ms" hx-sync="this:replace" hx-swap="outerHTML" hx-target="#tq-form" @@ -27,6 +28,37 @@ >.</textarea> </div> </div> + + <div class="field" id="tq-form-field-input"> + <label class="label">TOML</label> + <div class="control"> + <textarea + class="textarea" + name="input" + id="input" + hx-post="api/process" + hx-trigger="input changed delay:1000ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#tq-form" + placeholder="Enter the data:" + >.</textarea> + </div> + </div> + + <div class="field" id="tq-form-field-output"> + <label class="label">Output</label> + <div class="control"> + <textarea + class="textarea" + name="output" + id="output" + placeholder="output..." + readonly + ></textarea> + </div> + </div> + </form> </body> </html> diff --git a/tqweb/main.go b/tqweb/main.go index 0aebe7d..0245582 100644 --- a/tqweb/main.go +++ b/tqweb/main.go @@ -3,9 +3,11 @@ package main import ( + "bytes" _ "embed" "html/template" "net/http" + "strings" "github.com/mdm-code/tq/v2" "github.com/mdm-code/tq/v2/toml" @@ -42,24 +44,34 @@ var ( ) func main() { + conf := toml.GoTOMLConf{} + goToml := toml.NewGoTOML(conf) + adapter := toml.NewAdapter(goToml) + tq := tq.New(adapter) + http.HandleFunc("/process", func(w http.ResponseWriter, r *http.Request) { - data := map[string]string{"query": r.FormValue("query")} + var output bytes.Buffer + var outputStr string + input := r.FormValue("input") + query := r.FormValue("query") + err := tq.Run(strings.NewReader(input), &output, query) + if err != nil { + outputStr = err.Error() + } else { + outputStr = output.String() + } + data := struct { + Query, Input, Output string + }{ + Query: query, + Output: outputStr, + Input: input, + } if err := indexT.ExecuteTemplate(w, "form", data); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }) - // Instantiate TQ. - // var err error - conf := toml.GoTOMLConf{} - goToml := toml.NewGoTOML(conf) - adapter := toml.NewAdapter(goToml) - _ = tq.New(adapter) - // err = tq.Run(input, output, query) - // The error from the parser, lexer, scanner, toml adapter etc. -- all of these can be passed to the template in place of the output. - // This way the user is able to see that, first, he gets an error without any flashy effects on the front end, and second, the output - // is placed in a visible place. - wasmhttp.Serve(nil) select {} diff --git a/tqweb/views/index.html b/tqweb/views/index.html index d53dc93..683f861 100644 --- a/tqweb/views/index.html +++ b/tqweb/views/index.html @@ -12,6 +12,7 @@ <body> {{ block "form" . }} <form class="box" id="tq-form"> + <div class="field" id="tq-form-field-query"> <label class="label">Query</label> <div class="control"> @@ -20,14 +21,45 @@ name="query" id="query" hx-post="api/process" - hx-trigger="input changed delay:500ms" + hx-trigger="input changed delay:1000ms" hx-sync="this:replace" hx-swap="outerHTML" hx-target="#tq-form" placeholder="Enter the query:" - >{{ .query }}</textarea> + >{{ .Query }}</textarea> </div> </div> + + <div class="field" id="tq-form-field-input"> + <label class="label">TOML</label> + <div class="control"> + <textarea + class="textarea" + name="input" + id="input" + hx-post="api/process" + hx-trigger="input changed delay:1000ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#tq-form" + placeholder="Enter the data:" + >{{ .Input }}</textarea> + </div> + </div> + + <div class="field" id="tq-form-field-output"> + <label class="label">Output</label> + <div class="control"> + <textarea + class="textarea" + name="output" + id="output" + placeholder="" + readonly + >{{ .Output }}</textarea> + </div> + </div> + </form> {{ end }} </body> From 8560efa057723d22332f42d40ac21034418f50a7 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Fri, 6 Feb 2026 15:23:24 +0100 Subject: [PATCH 13/23] Simplified the wasm web server --- tqweb/index.html | 117 +++++++++++++++++++++++------------------ tqweb/main.go | 39 ++++---------- tqweb/style.css | 0 tqweb/views/index.html | 74 +++----------------------- 4 files changed, 82 insertions(+), 148 deletions(-) delete mode 100644 tqweb/style.css diff --git a/tqweb/index.html b/tqweb/index.html index e01f62a..7fb5661 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -3,62 +3,75 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="style.css"/> + <script src="https://cdn.tailwindcss.com"></script> <script src="htmx.min.js"></script> <script> navigator.serviceWorker.register("worker.js"); </script> </head> - <body> - <form class="box" id="tq-form"> - - <div class="field" id="tq-form-field-query"> - <label class="label">Query</label> - <div class="control"> - <textarea - class="textarea" - name="query" - id="query" - hx-post="api/process" - hx-trigger="input changed delay:1000ms" - hx-sync="this:replace" - hx-swap="outerHTML" - hx-target="#tq-form" - placeholder="Enter the query:" - >.</textarea> - </div> - </div> - - <div class="field" id="tq-form-field-input"> - <label class="label">TOML</label> - <div class="control"> - <textarea - class="textarea" - name="input" - id="input" - hx-post="api/process" - hx-trigger="input changed delay:1000ms" - hx-sync="this:replace" - hx-swap="outerHTML" - hx-target="#tq-form" - placeholder="Enter the data:" - >.</textarea> - </div> - </div> - - <div class="field" id="tq-form-field-output"> - <label class="label">Output</label> - <div class="control"> - <textarea - class="textarea" - name="output" - id="output" - placeholder="output..." - readonly - ></textarea> - </div> - </div> - - </form> + <body class="bg-[#000000] text-gray-100 min-h-screen"> + <div class="flex flex-col min-h-screen"> + <main class="flex flex-1 overflow-hidden"> + <form class="flex w-full" id="tq-form"> + <section class="w-1/2 border-r border-gray-700 flex flex-col gap-4 p-4"> + <div class="border border border-gray-700 bg-[#171717] rounded" id="tq-form-field-query"> + <header class="border-b border-gray-700 px-4 py-2"> + <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + QUERY + </h2> + </header> + <div class="h-32"> + <textarea + class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + name="query" + id="query" + hx-post="api/process" + hx-trigger="input changed delay:1000ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#output" + ></textarea> + </div> + </div> + <div class="flex-1 border border-gray-700 bg-[#171717] rouded flex flex-col" id="tq-form-field-input"> + <header class="border-b border-gray-700 px-4 py-2"> + <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + TOML + </h2> + </header> + <div class="flex-1"> + <textarea + class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + name="input" + id="input" + hx-post="api/process" + hx-trigger="input changed delay:1000ms" + hx-sync="this:replace" + hx-swap="outerHTML" + hx-target="#output" + ></textarea> + </div> + </div> + </section> + <section class="w-1/2 flex flex-col p-4"> + <div class="flex-1 border border-gray-700 bg-[#171717] rounded flex flex-col" id="tq-form-field-output"> + <header class="border-b border-gray-700 px-4 py-2"> + <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + OUTPUT + </h2> + </header> + <div class="flex-1"> + <textarea + class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + name="output" + id="output" + readonly + ></textarea> + </div> + </div> + </section> + </form> + </main> + </div> </body> </html> diff --git a/tqweb/main.go b/tqweb/main.go index 0245582..a6e57eb 100644 --- a/tqweb/main.go +++ b/tqweb/main.go @@ -16,25 +16,11 @@ import ( /* TODO: -1. Index has to be rewritten imediately using htmx and the index api endpoint. -2. I can use structs with templates pretty much the same way it's done with templ. -3. Change in query or input triggers processing action with short debounce. -4. The output and ALL errors are displayed in the output box. -5. If there's an error, it's printed out the same way as in the terminal. -------------------------- -| | | -| query | | -| | | -| | | ------------- output | -| | | -| input | | -| | | -| | | -------------------------- -6. It seems the only thing I need to replace is the output box; query and input can stay as is. -7. That said, I don't need to add any hightlight to query and input or output for that matter. -8, Output stays read-only. +1. Tq config for GoTOML is sent from the frontend selection component. +- Checkboxes: send true if checked. +- Buttons: on click, keep highlighted and add to the payload. +2. The config and TQ has to be instantiated with each call. +3. Curl tailwind css scripts. */ var ( @@ -51,23 +37,16 @@ func main() { http.HandleFunc("/process", func(w http.ResponseWriter, r *http.Request) { var output bytes.Buffer - var outputStr string + var data struct{ Output string } input := r.FormValue("input") query := r.FormValue("query") err := tq.Run(strings.NewReader(input), &output, query) if err != nil { - outputStr = err.Error() + data.Output = err.Error() } else { - outputStr = output.String() + data.Output = output.String() } - data := struct { - Query, Input, Output string - }{ - Query: query, - Output: outputStr, - Input: input, - } - if err := indexT.ExecuteTemplate(w, "form", data); err != nil { + if err := indexT.ExecuteTemplate(w, "output", data); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }) diff --git a/tqweb/style.css b/tqweb/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/tqweb/views/index.html b/tqweb/views/index.html index 683f861..b2cc191 100644 --- a/tqweb/views/index.html +++ b/tqweb/views/index.html @@ -1,66 +1,8 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <link rel="stylesheet" href="style.css"/> - <script src="htmx.min.js"></script> - <script> - navigator.serviceWorker.register("worker.js"); - </script> - </head> - <body> - {{ block "form" . }} - <form class="box" id="tq-form"> - - <div class="field" id="tq-form-field-query"> - <label class="label">Query</label> - <div class="control"> - <textarea - class="textarea" - name="query" - id="query" - hx-post="api/process" - hx-trigger="input changed delay:1000ms" - hx-sync="this:replace" - hx-swap="outerHTML" - hx-target="#tq-form" - placeholder="Enter the query:" - >{{ .Query }}</textarea> - </div> - </div> - - <div class="field" id="tq-form-field-input"> - <label class="label">TOML</label> - <div class="control"> - <textarea - class="textarea" - name="input" - id="input" - hx-post="api/process" - hx-trigger="input changed delay:1000ms" - hx-sync="this:replace" - hx-swap="outerHTML" - hx-target="#tq-form" - placeholder="Enter the data:" - >{{ .Input }}</textarea> - </div> - </div> - - <div class="field" id="tq-form-field-output"> - <label class="label">Output</label> - <div class="control"> - <textarea - class="textarea" - name="output" - id="output" - placeholder="" - readonly - >{{ .Output }}</textarea> - </div> - </div> - - </form> - {{ end }} - </body> -</html> +{{ block "output" . }} + <textarea + class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + name="output" + id="output" + readonly + >{{ .Output }}</textarea> +{{ end }} From a1c493d25b7a42e32fbf0f5956e3690905dd19c9 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Fri, 6 Feb 2026 15:24:16 +0100 Subject: [PATCH 14/23] Cleaned dependencies --- tqweb/go.mod | 31 +- tqweb/go.sum | 56 +- vendor/github.com/a-h/parse/.gitignore | 1 - vendor/github.com/a-h/parse/LICENSE | 21 - vendor/github.com/a-h/parse/README.md | 145 - vendor/github.com/a-h/parse/all.go | 26 - vendor/github.com/a-h/parse/any.go | 22 - vendor/github.com/a-h/parse/convert.go | 14 - vendor/github.com/a-h/parse/digits.go | 4 - vendor/github.com/a-h/parse/eof.go | 15 - vendor/github.com/a-h/parse/error.go | 21 - vendor/github.com/a-h/parse/input.go | 79 - vendor/github.com/a-h/parse/optional.go | 26 - vendor/github.com/a-h/parse/or.go | 37 - vendor/github.com/a-h/parse/regexp.go | 46 - vendor/github.com/a-h/parse/rune.go | 58 - vendor/github.com/a-h/parse/sequenceof2.go | 27 - vendor/github.com/a-h/parse/sequenceof3.go | 35 - vendor/github.com/a-h/parse/sequenceof4.go | 41 - vendor/github.com/a-h/parse/sequenceof5.go | 48 - vendor/github.com/a-h/parse/sequenceof6.go | 55 - vendor/github.com/a-h/parse/sequenceof7.go | 62 - vendor/github.com/a-h/parse/sequenceof8.go | 69 - vendor/github.com/a-h/parse/sequenceof9.go | 76 - vendor/github.com/a-h/parse/string.go | 40 - vendor/github.com/a-h/parse/stringfrom.go | 30 - vendor/github.com/a-h/parse/stringuntil.go | 49 - vendor/github.com/a-h/parse/then.go | 9 - vendor/github.com/a-h/parse/times.go | 83 - vendor/github.com/a-h/parse/tuples.go | 69 - vendor/github.com/a-h/parse/types.go | 33 - vendor/github.com/a-h/parse/until.go | 68 - vendor/github.com/a-h/parse/whitespace.go | 29 - vendor/github.com/a-h/templ/.dockerignore | 3 - vendor/github.com/a-h/templ/.envrc | 1 - vendor/github.com/a-h/templ/.gitignore | 36 - vendor/github.com/a-h/templ/.goreleaser.yaml | 72 - vendor/github.com/a-h/templ/.ignore | 9 - vendor/github.com/a-h/templ/.version | 1 - .../github.com/a-h/templ/CODE_OF_CONDUCT.md | 128 - vendor/github.com/a-h/templ/CONTRIBUTING.md | 247 - vendor/github.com/a-h/templ/LICENSE | 21 - vendor/github.com/a-h/templ/README.md | 194 - vendor/github.com/a-h/templ/SECURITY.md | 9 - .../a-h/templ/cmd/templ/fmtcmd/main.go | 132 - .../a-h/templ/cmd/templ/fmtcmd/testdata.txtar | 66 - .../a-h/templ/cmd/templ/generatecmd/cmd.go | 388 - .../cmd/templ/generatecmd/eventhandler.go | 315 - .../templ/cmd/templ/generatecmd/fatalerror.go | 23 - .../a-h/templ/cmd/templ/generatecmd/main.go | 192 - .../templ/generatecmd/modcheck/modcheck.go | 82 - .../cmd/templ/generatecmd/proxy/proxy.go | 299 - .../cmd/templ/generatecmd/proxy/script.js | 10 - .../cmd/templ/generatecmd/run/run_unix.go | 85 - .../cmd/templ/generatecmd/run/run_windows.go | 72 - .../templ/cmd/templ/generatecmd/sse/server.go | 84 - .../cmd/templ/generatecmd/watcher/watch.go | 166 - .../a-h/templ/cmd/templ/infocmd/main.go | 157 - .../cmd/templ/lspcmd/httpdebug/handler.go | 130 - .../cmd/templ/lspcmd/httpdebug/list.templ | 22 - .../cmd/templ/lspcmd/httpdebug/list_templ.go | 114 - .../a-h/templ/cmd/templ/lspcmd/main.go | 145 - .../a-h/templ/cmd/templ/lspcmd/pls/main.go | 128 - .../templ/cmd/templ/lspcmd/proxy/client.go | 146 - .../cmd/templ/lspcmd/proxy/diagnosticcache.go | 61 - .../templ/lspcmd/proxy/documentcontents.go | 215 - .../templ/cmd/templ/lspcmd/proxy/rewrite.go | 24 - .../templ/cmd/templ/lspcmd/proxy/server.go | 1345 - .../templ/cmd/templ/lspcmd/proxy/snippets.go | 111 - .../cmd/templ/lspcmd/proxy/sourcemapcache.go | 52 - .../a-h/templ/cmd/templ/lspcmd/stdrwc.go | 50 - vendor/github.com/a-h/templ/cmd/templ/main.go | 280 - .../templ/cmd/templ/processor/processor.go | 66 - .../templ/cmd/templ/sloghandler/handler.go | 120 - .../visualize/sourcemapvisualisation.templ | 68 - .../visualize/sourcemapvisualisation_templ.go | 295 - .../a-h/templ/cmd/templ/visualize/types.go | 87 - vendor/github.com/a-h/templ/cosign.pub | 4 - vendor/github.com/a-h/templ/flake.lock | 124 - vendor/github.com/a-h/templ/flake.nix | 104 - vendor/github.com/a-h/templ/flush.go | 36 - vendor/github.com/a-h/templ/fragment.go | 70 - .../a-h/templ/generator/generator.go | 1815 - .../a-h/templ/generator/rangewriter.go | 122 - vendor/github.com/a-h/templ/handler.go | 163 - vendor/github.com/a-h/templ/ide-demo.gif | Bin 544148 -> 0 bytes .../templ/internal/format/scriptelement.go | 96 - .../a-h/templ/internal/format/styleelement.go | 25 - .../a-h/templ/internal/format/templ.go | 102 - .../a-h/templ/internal/htmlfind/htmlfind.go | 67 - .../a-h/templ/internal/imports/process.go | 174 - .../templ/internal/lazyloader/docheader.go | 27 - .../internal/lazyloader/docheaderparser.go | 53 - .../templ/internal/lazyloader/pkgloader.go | 55 - .../templ/internal/lazyloader/pkgtraverser.go | 110 - .../internal/lazyloader/templdoclazyloader.go | 161 - .../a-h/templ/internal/prettier/prettier.go | 116 - .../templ/internal/prettier/testdata.txtar | 12 - .../a-h/templ/internal/skipdir/skipdir.go | 20 - .../a-h/templ/internal/syncmap/map.go | 49 - .../a-h/templ/internal/syncset/set.go | 42 - vendor/github.com/a-h/templ/join.go | 19 - vendor/github.com/a-h/templ/js.go | 40 - vendor/github.com/a-h/templ/jsonscript.go | 85 - vendor/github.com/a-h/templ/jsonstring.go | 14 - vendor/github.com/a-h/templ/lsp/LICENSE | 29 - .../a-h/templ/lsp/jsonrpc2/codes.go | 86 - .../github.com/a-h/templ/lsp/jsonrpc2/conn.go | 244 - .../a-h/templ/lsp/jsonrpc2/errors.go | 70 - .../a-h/templ/lsp/jsonrpc2/handler.go | 120 - .../a-h/templ/lsp/jsonrpc2/jsonrpc2.go | 7 - .../a-h/templ/lsp/jsonrpc2/message.go | 354 - .../a-h/templ/lsp/jsonrpc2/serve.go | 131 - .../a-h/templ/lsp/jsonrpc2/stream.go | 225 - .../github.com/a-h/templ/lsp/jsonrpc2/wire.go | 140 - .../github.com/a-h/templ/lsp/protocol/base.go | 95 - .../a-h/templ/lsp/protocol/basic.go | 705 - .../a-h/templ/lsp/protocol/callhierarchy.go | 103 - .../templ/lsp/protocol/capabilities_client.go | 1068 - .../templ/lsp/protocol/capabilities_server.go | 523 - .../a-h/templ/lsp/protocol/client.go | 412 - .../a-h/templ/lsp/protocol/context.go | 26 - .../a-h/templ/lsp/protocol/deprecated.go | 264 - .../a-h/templ/lsp/protocol/diagnostics.go | 149 - .../github.com/a-h/templ/lsp/protocol/doc.go | 23 - .../a-h/templ/lsp/protocol/errors.go | 40 - .../a-h/templ/lsp/protocol/general.go | 461 - .../a-h/templ/lsp/protocol/handler.go | 88 - .../a-h/templ/lsp/protocol/language.go | 1401 - .../a-h/templ/lsp/protocol/progress.go | 119 - .../a-h/templ/lsp/protocol/protocol.go | 41 - .../a-h/templ/lsp/protocol/registration.go | 44 - .../a-h/templ/lsp/protocol/selectionrange.go | 110 - .../a-h/templ/lsp/protocol/semantic_token.go | 179 - .../a-h/templ/lsp/protocol/server.go | 1893 - .../github.com/a-h/templ/lsp/protocol/text.go | 111 - .../github.com/a-h/templ/lsp/protocol/util.go | 9 - .../a-h/templ/lsp/protocol/version.go | 7 - .../a-h/templ/lsp/protocol/window.go | 111 - .../a-h/templ/lsp/protocol/workspace.go | 213 - vendor/github.com/a-h/templ/lsp/uri/uri.go | 192 - .../a-h/templ/lsp/xcontext/xcontext.go | 22 - vendor/github.com/a-h/templ/once.go | 64 - .../a-h/templ/parser/v2/calltemplateparser.go | 37 - .../a-h/templ/parser/v2/childrenparser.go | 21 - .../parser/v2/conditionalattributeparser.go | 101 - .../a-h/templ/parser/v2/cssparser.go | 200 - .../a-h/templ/parser/v2/diagnostics.go | 64 - .../a-h/templ/parser/v2/doctypeparser.go | 32 - .../a-h/templ/parser/v2/elementparser.go | 560 - .../a-h/templ/parser/v2/expressionparser.go | 246 - .../templ/parser/v2/forexpressionparser.go | 57 - vendor/github.com/a-h/templ/parser/v2/fuzz.sh | 5 - .../a-h/templ/parser/v2/gocodeparser.go | 60 - .../a-h/templ/parser/v2/gocommentparser.go | 66 - .../a-h/templ/parser/v2/goexpression/fuzz.sh | 19 - .../a-h/templ/parser/v2/goexpression/parse.go | 343 - .../templ/parser/v2/goexpression/scanner.go | 180 - .../a-h/templ/parser/v2/goparser.go | 70 - .../a-h/templ/parser/v2/htmlcommentparser.go | 40 - .../a-h/templ/parser/v2/ifexpressionparser.go | 144 - .../a-h/templ/parser/v2/packageparser.go | 32 - .../github.com/a-h/templ/parser/v2/parser.go | 55 - vendor/github.com/a-h/templ/parser/v2/raw.go | 67 - .../a-h/templ/parser/v2/scriptparser.go | 335 - .../templ/parser/v2/scripttemplateparser.go | 91 - .../a-h/templ/parser/v2/sourcemap.go | 134 - .../templ/parser/v2/stringexpressionparser.go | 40 - .../a-h/templ/parser/v2/structure.go | 43 - .../templ/parser/v2/switchexpressionparser.go | 114 - .../a-h/templ/parser/v2/templatefile.go | 195 - .../a-h/templ/parser/v2/templateparser.go | 153 - .../a-h/templ/parser/v2/templelementparser.go | 59 - .../a-h/templ/parser/v2/textparser.go | 53 - .../github.com/a-h/templ/parser/v2/types.go | 1498 - .../github.com/a-h/templ/parser/v2/visitor.go | 35 - .../a-h/templ/parser/v2/visitor/visitor.go | 349 - .../a-h/templ/parser/v2/whitespaceparser.go | 12 - vendor/github.com/a-h/templ/runtime.go | 714 - vendor/github.com/a-h/templ/runtime/buffer.go | 62 - .../a-h/templ/runtime/bufferpool.go | 38 - .../github.com/a-h/templ/runtime/builder.go | 8 - .../github.com/a-h/templ/runtime/runtime.go | 21 - .../a-h/templ/runtime/scriptelement.go | 107 - .../a-h/templ/runtime/styleattribute.go | 217 - .../github.com/a-h/templ/runtime/watchmode.go | 148 - vendor/github.com/a-h/templ/safehtml/style.go | 199 - vendor/github.com/a-h/templ/scripttemplate.go | 151 - vendor/github.com/a-h/templ/templ.png | Bin 15528 -> 0 bytes vendor/github.com/a-h/templ/url.go | 31 - vendor/github.com/a-h/templ/version.go | 10 - vendor/github.com/a-h/templ/watchmode.go | 105 - vendor/github.com/andybalholm/brotli/LICENSE | 19 - .../github.com/andybalholm/brotli/README.md | 14 - .../andybalholm/brotli/backward_references.go | 185 - .../brotli/backward_references_hq.go | 796 - .../github.com/andybalholm/brotli/bit_cost.go | 436 - .../andybalholm/brotli/bit_reader.go | 266 - .../andybalholm/brotli/bitwriter.go | 56 - .../andybalholm/brotli/block_splitter.go | 144 - .../brotli/block_splitter_command.go | 434 - .../brotli/block_splitter_distance.go | 433 - .../brotli/block_splitter_literal.go | 433 - .../andybalholm/brotli/brotli_bit_stream.go | 1539 - .../github.com/andybalholm/brotli/cluster.go | 30 - .../andybalholm/brotli/cluster_command.go | 164 - .../andybalholm/brotli/cluster_distance.go | 326 - .../andybalholm/brotli/cluster_literal.go | 326 - .../github.com/andybalholm/brotli/command.go | 254 - .../andybalholm/brotli/compress_fragment.go | 834 - .../brotli/compress_fragment_two_pass.go | 773 - .../andybalholm/brotli/constants.go | 77 - .../github.com/andybalholm/brotli/context.go | 2176 - .../github.com/andybalholm/brotli/decode.go | 2581 - .../andybalholm/brotli/dictionary.go | 122890 --------------- .../andybalholm/brotli/dictionary_hash.go | 32779 ---- .../github.com/andybalholm/brotli/encode.go | 1220 - .../github.com/andybalholm/brotli/encoder.go | 168 - .../andybalholm/brotli/encoder_dict.go | 22 - .../andybalholm/brotli/entropy_encode.go | 592 - .../brotli/entropy_encode_static.go | 4399 - .../github.com/andybalholm/brotli/fast_log.go | 290 - .../andybalholm/brotli/find_match_length.go | 45 - vendor/github.com/andybalholm/brotli/h10.go | 287 - vendor/github.com/andybalholm/brotli/h5.go | 214 - vendor/github.com/andybalholm/brotli/h6.go | 216 - vendor/github.com/andybalholm/brotli/hash.go | 342 - .../andybalholm/brotli/hash_composite.go | 93 - .../brotli/hash_forgetful_chain.go | 252 - .../brotli/hash_longest_match_quickly.go | 214 - .../andybalholm/brotli/hash_rolling.go | 168 - .../andybalholm/brotli/histogram.go | 226 - vendor/github.com/andybalholm/brotli/http.go | 184 - .../github.com/andybalholm/brotli/huffman.go | 653 - .../andybalholm/brotli/literal_cost.go | 182 - .../andybalholm/brotli/matchfinder/emitter.go | 45 - .../andybalholm/brotli/matchfinder/m0.go | 169 - .../andybalholm/brotli/matchfinder/m4.go | 297 - .../brotli/matchfinder/matchfinder.go | 103 - .../brotli/matchfinder/textencoder.go | 53 - .../github.com/andybalholm/brotli/memory.go | 66 - .../andybalholm/brotli/metablock.go | 574 - .../andybalholm/brotli/metablock_command.go | 165 - .../andybalholm/brotli/metablock_distance.go | 165 - .../andybalholm/brotli/metablock_literal.go | 165 - .../github.com/andybalholm/brotli/params.go | 37 - .../github.com/andybalholm/brotli/platform.go | 103 - .../github.com/andybalholm/brotli/prefix.go | 30 - .../andybalholm/brotli/prefix_dec.go | 723 - .../github.com/andybalholm/brotli/quality.go | 196 - .../github.com/andybalholm/brotli/reader.go | 108 - .../andybalholm/brotli/ringbuffer.go | 134 - vendor/github.com/andybalholm/brotli/state.go | 294 - .../andybalholm/brotli/static_dict.go | 662 - .../andybalholm/brotli/static_dict_lut.go | 75094 --------- .../andybalholm/brotli/symbol_list.go | 22 - .../andybalholm/brotli/transform.go | 641 - .../andybalholm/brotli/utf8_util.go | 70 - vendor/github.com/andybalholm/brotli/util.go | 7 - .../andybalholm/brotli/write_bits.go | 52 - .../github.com/andybalholm/brotli/writer.go | 162 - .../github.com/cenkalti/backoff/v4/.gitignore | 25 - vendor/github.com/cenkalti/backoff/v4/LICENSE | 20 - .../github.com/cenkalti/backoff/v4/README.md | 30 - .../github.com/cenkalti/backoff/v4/backoff.go | 66 - .../github.com/cenkalti/backoff/v4/context.go | 62 - .../cenkalti/backoff/v4/exponential.go | 216 - .../github.com/cenkalti/backoff/v4/retry.go | 146 - .../github.com/cenkalti/backoff/v4/ticker.go | 97 - .../github.com/cenkalti/backoff/v4/timer.go | 35 - .../github.com/cenkalti/backoff/v4/tries.go | 38 - vendor/github.com/cli/browser/LICENSE | 23 - vendor/github.com/cli/browser/README.md | 20 - vendor/github.com/cli/browser/browser.go | 57 - .../github.com/cli/browser/browser_darwin.go | 5 - .../github.com/cli/browser/browser_freebsd.go | 15 - .../github.com/cli/browser/browser_linux.go | 21 - .../github.com/cli/browser/browser_netbsd.go | 14 - .../github.com/cli/browser/browser_openbsd.go | 15 - .../cli/browser/browser_unsupported.go | 12 - .../github.com/cli/browser/browser_windows.go | 7 - vendor/github.com/fatih/color/LICENSE.md | 20 - vendor/github.com/fatih/color/README.md | 176 - vendor/github.com/fatih/color/color.go | 650 - .../github.com/fatih/color/color_windows.go | 19 - vendor/github.com/fatih/color/doc.go | 134 - .../github.com/fsnotify/fsnotify/.cirrus.yml | 13 - .../fsnotify/fsnotify/.editorconfig | 12 - .../fsnotify/fsnotify/.gitattributes | 1 - .../github.com/fsnotify/fsnotify/.gitignore | 7 - vendor/github.com/fsnotify/fsnotify/.mailmap | 2 - .../github.com/fsnotify/fsnotify/CHANGELOG.md | 541 - .../fsnotify/fsnotify/CONTRIBUTING.md | 26 - vendor/github.com/fsnotify/fsnotify/LICENSE | 25 - vendor/github.com/fsnotify/fsnotify/README.md | 184 - .../fsnotify/fsnotify/backend_fen.go | 640 - .../fsnotify/fsnotify/backend_inotify.go | 594 - .../fsnotify/fsnotify/backend_kqueue.go | 782 - .../fsnotify/fsnotify/backend_other.go | 205 - .../fsnotify/fsnotify/backend_windows.go | 827 - .../github.com/fsnotify/fsnotify/fsnotify.go | 146 - vendor/github.com/fsnotify/fsnotify/mkdoc.zsh | 259 - .../fsnotify/fsnotify/system_bsd.go | 8 - .../fsnotify/fsnotify/system_darwin.go | 9 - vendor/github.com/mattn/go-colorable/LICENSE | 21 - .../github.com/mattn/go-colorable/README.md | 48 - .../mattn/go-colorable/colorable_appengine.go | 38 - .../mattn/go-colorable/colorable_others.go | 38 - .../mattn/go-colorable/colorable_windows.go | 1047 - .../github.com/mattn/go-colorable/go.test.sh | 12 - .../mattn/go-colorable/noncolorable.go | 57 - vendor/github.com/mattn/go-isatty/LICENSE | 9 - vendor/github.com/mattn/go-isatty/README.md | 50 - vendor/github.com/mattn/go-isatty/doc.go | 2 - vendor/github.com/mattn/go-isatty/go.test.sh | 12 - .../github.com/mattn/go-isatty/isatty_bsd.go | 20 - .../mattn/go-isatty/isatty_others.go | 17 - .../mattn/go-isatty/isatty_plan9.go | 23 - .../mattn/go-isatty/isatty_solaris.go | 21 - .../mattn/go-isatty/isatty_tcgets.go | 20 - .../mattn/go-isatty/isatty_windows.go | 125 - vendor/github.com/natefinch/atomic/.gitignore | 24 - vendor/github.com/natefinch/atomic/LICENSE | 22 - vendor/github.com/natefinch/atomic/README.md | 35 - vendor/github.com/natefinch/atomic/atomic.go | 73 - .../github.com/natefinch/atomic/file_unix.go | 14 - .../natefinch/atomic/file_windows.go | 33 - .../natefinch/atomic/zfile_windows.go | 27 - vendor/github.com/shurcooL/go-goon/LICENSE | 21 - vendor/github.com/shurcooL/go-goon/README.md | 92 - vendor/github.com/shurcooL/go-goon/dump.go | 394 - vendor/github.com/shurcooL/go-goon/goon.go | 56 - .../shurcooL/go-goon/print_types.go | 107 - vendor/github.com/shurcooL/go/LICENSE | 21 - .../shurcooL/go/parserutil/parserutil.go | 34 - .../shurcooL/go/printerutil/printerutil.go | 36 - .../shurcooL/go/reflectfind/reflectfind.go | 112 - .../shurcooL/go/reflectsource/callername.go | 219 - .../shurcooL/go/reflectsource/doc.go | 9 - .../shurcooL/go/reflectsource/funcsource.go | 82 - .../shurcooL/go/reflectsource/indicies.go | 29 - vendor/github.com/shurcooL/goexec/LICENSE | 21 - vendor/github.com/shurcooL/goexec/README.md | 82 - vendor/github.com/shurcooL/goexec/main.go | 154 - vendor/golang.org/x/mod/LICENSE | 27 - vendor/golang.org/x/mod/PATENTS | 22 - .../x/mod/internal/lazyregexp/lazyre.go | 78 - vendor/golang.org/x/mod/modfile/print.go | 184 - vendor/golang.org/x/mod/modfile/read.go | 964 - vendor/golang.org/x/mod/modfile/rule.go | 1904 - vendor/golang.org/x/mod/modfile/work.go | 333 - vendor/golang.org/x/mod/module/module.go | 840 - vendor/golang.org/x/mod/module/pseudo.go | 250 - vendor/golang.org/x/mod/semver/semver.go | 407 - vendor/golang.org/x/net/LICENSE | 27 - vendor/golang.org/x/net/PATENTS | 22 - vendor/golang.org/x/net/html/atom/atom.go | 78 - vendor/golang.org/x/net/html/atom/table.go | 785 - vendor/golang.org/x/net/html/const.go | 111 - vendor/golang.org/x/net/html/doc.go | 122 - vendor/golang.org/x/net/html/doctype.go | 156 - vendor/golang.org/x/net/html/entity.go | 2253 - vendor/golang.org/x/net/html/escape.go | 339 - vendor/golang.org/x/net/html/foreign.go | 221 - vendor/golang.org/x/net/html/iter.go | 56 - vendor/golang.org/x/net/html/node.go | 229 - vendor/golang.org/x/net/html/parse.go | 2464 - vendor/golang.org/x/net/html/render.go | 293 - vendor/golang.org/x/net/html/token.go | 1286 - vendor/golang.org/x/sync/LICENSE | 27 - vendor/golang.org/x/sync/PATENTS | 22 - vendor/golang.org/x/sync/errgroup/errgroup.go | 151 - vendor/golang.org/x/sys/LICENSE | 27 - vendor/golang.org/x/sys/PATENTS | 22 - vendor/golang.org/x/sys/unix/.gitignore | 2 - vendor/golang.org/x/sys/unix/README.md | 184 - .../golang.org/x/sys/unix/affinity_linux.go | 86 - vendor/golang.org/x/sys/unix/aliases.go | 13 - vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 17 - vendor/golang.org/x/sys/unix/asm_bsd_386.s | 27 - vendor/golang.org/x/sys/unix/asm_bsd_amd64.s | 27 - vendor/golang.org/x/sys/unix/asm_bsd_arm.s | 27 - vendor/golang.org/x/sys/unix/asm_bsd_arm64.s | 27 - vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s | 29 - .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 27 - vendor/golang.org/x/sys/unix/asm_linux_386.s | 65 - .../golang.org/x/sys/unix/asm_linux_amd64.s | 57 - vendor/golang.org/x/sys/unix/asm_linux_arm.s | 56 - .../golang.org/x/sys/unix/asm_linux_arm64.s | 50 - .../golang.org/x/sys/unix/asm_linux_loong64.s | 51 - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 54 - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 52 - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 42 - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 47 - .../golang.org/x/sys/unix/asm_linux_s390x.s | 54 - .../x/sys/unix/asm_openbsd_mips64.s | 29 - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 17 - vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 382 - vendor/golang.org/x/sys/unix/auxv.go | 36 - .../golang.org/x/sys/unix/auxv_unsupported.go | 13 - .../golang.org/x/sys/unix/bluetooth_linux.go | 36 - vendor/golang.org/x/sys/unix/bpxsvc_zos.go | 657 - vendor/golang.org/x/sys/unix/bpxsvc_zos.s | 192 - vendor/golang.org/x/sys/unix/cap_freebsd.go | 195 - vendor/golang.org/x/sys/unix/constants.go | 13 - vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 26 - vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 28 - vendor/golang.org/x/sys/unix/dev_darwin.go | 24 - vendor/golang.org/x/sys/unix/dev_dragonfly.go | 30 - vendor/golang.org/x/sys/unix/dev_freebsd.go | 30 - vendor/golang.org/x/sys/unix/dev_linux.go | 42 - vendor/golang.org/x/sys/unix/dev_netbsd.go | 29 - vendor/golang.org/x/sys/unix/dev_openbsd.go | 29 - vendor/golang.org/x/sys/unix/dev_zos.go | 28 - vendor/golang.org/x/sys/unix/dirent.go | 102 - vendor/golang.org/x/sys/unix/endian_big.go | 9 - vendor/golang.org/x/sys/unix/endian_little.go | 9 - vendor/golang.org/x/sys/unix/env_unix.go | 31 - vendor/golang.org/x/sys/unix/fcntl.go | 36 - vendor/golang.org/x/sys/unix/fcntl_darwin.go | 24 - .../x/sys/unix/fcntl_linux_32bit.go | 13 - vendor/golang.org/x/sys/unix/fdset.go | 29 - vendor/golang.org/x/sys/unix/gccgo.go | 59 - vendor/golang.org/x/sys/unix/gccgo_c.c | 44 - .../x/sys/unix/gccgo_linux_amd64.go | 20 - vendor/golang.org/x/sys/unix/ifreq_linux.go | 141 - vendor/golang.org/x/sys/unix/ioctl_linux.go | 334 - vendor/golang.org/x/sys/unix/ioctl_signed.go | 69 - .../golang.org/x/sys/unix/ioctl_unsigned.go | 69 - vendor/golang.org/x/sys/unix/ioctl_zos.go | 71 - vendor/golang.org/x/sys/unix/mkall.sh | 249 - vendor/golang.org/x/sys/unix/mkerrors.sh | 805 - vendor/golang.org/x/sys/unix/mmap_nomremap.go | 13 - vendor/golang.org/x/sys/unix/mremap.go | 57 - vendor/golang.org/x/sys/unix/pagesize_unix.go | 15 - .../golang.org/x/sys/unix/pledge_openbsd.go | 111 - vendor/golang.org/x/sys/unix/ptrace_darwin.go | 11 - vendor/golang.org/x/sys/unix/ptrace_ios.go | 11 - vendor/golang.org/x/sys/unix/race.go | 30 - vendor/golang.org/x/sys/unix/race0.go | 25 - .../x/sys/unix/readdirent_getdents.go | 12 - .../x/sys/unix/readdirent_getdirentries.go | 19 - .../x/sys/unix/sockcmsg_dragonfly.go | 16 - .../golang.org/x/sys/unix/sockcmsg_linux.go | 85 - vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 106 - .../x/sys/unix/sockcmsg_unix_other.go | 46 - vendor/golang.org/x/sys/unix/sockcmsg_zos.go | 58 - .../golang.org/x/sys/unix/symaddr_zos_s390x.s | 75 - vendor/golang.org/x/sys/unix/syscall.go | 86 - vendor/golang.org/x/sys/unix/syscall_aix.go | 582 - .../golang.org/x/sys/unix/syscall_aix_ppc.go | 52 - .../x/sys/unix/syscall_aix_ppc64.go | 83 - vendor/golang.org/x/sys/unix/syscall_bsd.go | 609 - .../golang.org/x/sys/unix/syscall_darwin.go | 854 - .../x/sys/unix/syscall_darwin_amd64.go | 50 - .../x/sys/unix/syscall_darwin_arm64.go | 50 - .../x/sys/unix/syscall_darwin_libSystem.go | 26 - .../x/sys/unix/syscall_dragonfly.go | 359 - .../x/sys/unix/syscall_dragonfly_amd64.go | 56 - .../golang.org/x/sys/unix/syscall_freebsd.go | 455 - .../x/sys/unix/syscall_freebsd_386.go | 64 - .../x/sys/unix/syscall_freebsd_amd64.go | 64 - .../x/sys/unix/syscall_freebsd_arm.go | 60 - .../x/sys/unix/syscall_freebsd_arm64.go | 60 - .../x/sys/unix/syscall_freebsd_riscv64.go | 60 - vendor/golang.org/x/sys/unix/syscall_hurd.go | 30 - .../golang.org/x/sys/unix/syscall_hurd_386.go | 28 - .../golang.org/x/sys/unix/syscall_illumos.go | 78 - vendor/golang.org/x/sys/unix/syscall_linux.go | 2647 - .../x/sys/unix/syscall_linux_386.go | 314 - .../x/sys/unix/syscall_linux_alarm.go | 12 - .../x/sys/unix/syscall_linux_amd64.go | 145 - .../x/sys/unix/syscall_linux_amd64_gc.go | 12 - .../x/sys/unix/syscall_linux_arm.go | 216 - .../x/sys/unix/syscall_linux_arm64.go | 186 - .../golang.org/x/sys/unix/syscall_linux_gc.go | 14 - .../x/sys/unix/syscall_linux_gc_386.go | 16 - .../x/sys/unix/syscall_linux_gc_arm.go | 13 - .../x/sys/unix/syscall_linux_gccgo_386.go | 30 - .../x/sys/unix/syscall_linux_gccgo_arm.go | 20 - .../x/sys/unix/syscall_linux_loong64.go | 218 - .../x/sys/unix/syscall_linux_mips64x.go | 188 - .../x/sys/unix/syscall_linux_mipsx.go | 174 - .../x/sys/unix/syscall_linux_ppc.go | 204 - .../x/sys/unix/syscall_linux_ppc64x.go | 115 - .../x/sys/unix/syscall_linux_riscv64.go | 191 - .../x/sys/unix/syscall_linux_s390x.go | 296 - .../x/sys/unix/syscall_linux_sparc64.go | 112 - .../golang.org/x/sys/unix/syscall_netbsd.go | 371 - .../x/sys/unix/syscall_netbsd_386.go | 37 - .../x/sys/unix/syscall_netbsd_amd64.go | 37 - .../x/sys/unix/syscall_netbsd_arm.go | 37 - .../x/sys/unix/syscall_netbsd_arm64.go | 37 - .../golang.org/x/sys/unix/syscall_openbsd.go | 342 - .../x/sys/unix/syscall_openbsd_386.go | 41 - .../x/sys/unix/syscall_openbsd_amd64.go | 41 - .../x/sys/unix/syscall_openbsd_arm.go | 41 - .../x/sys/unix/syscall_openbsd_arm64.go | 41 - .../x/sys/unix/syscall_openbsd_libc.go | 26 - .../x/sys/unix/syscall_openbsd_mips64.go | 39 - .../x/sys/unix/syscall_openbsd_ppc64.go | 41 - .../x/sys/unix/syscall_openbsd_riscv64.go | 41 - .../golang.org/x/sys/unix/syscall_solaris.go | 1191 - .../x/sys/unix/syscall_solaris_amd64.go | 27 - vendor/golang.org/x/sys/unix/syscall_unix.go | 615 - .../golang.org/x/sys/unix/syscall_unix_gc.go | 14 - .../x/sys/unix/syscall_unix_gc_ppc64x.go | 22 - .../x/sys/unix/syscall_zos_s390x.go | 3213 - vendor/golang.org/x/sys/unix/sysvshm_linux.go | 20 - vendor/golang.org/x/sys/unix/sysvshm_unix.go | 51 - .../x/sys/unix/sysvshm_unix_other.go | 13 - vendor/golang.org/x/sys/unix/timestruct.go | 76 - .../golang.org/x/sys/unix/unveil_openbsd.go | 51 - .../golang.org/x/sys/unix/vgetrandom_linux.go | 13 - .../x/sys/unix/vgetrandom_unsupported.go | 11 - vendor/golang.org/x/sys/unix/xattr_bsd.go | 280 - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1384 - .../x/sys/unix/zerrors_aix_ppc64.go | 1385 - .../x/sys/unix/zerrors_darwin_amd64.go | 1922 - .../x/sys/unix/zerrors_darwin_arm64.go | 1922 - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1737 - .../x/sys/unix/zerrors_freebsd_386.go | 2042 - .../x/sys/unix/zerrors_freebsd_amd64.go | 2039 - .../x/sys/unix/zerrors_freebsd_arm.go | 2033 - .../x/sys/unix/zerrors_freebsd_arm64.go | 2033 - .../x/sys/unix/zerrors_freebsd_riscv64.go | 2147 - vendor/golang.org/x/sys/unix/zerrors_linux.go | 3767 - .../x/sys/unix/zerrors_linux_386.go | 874 - .../x/sys/unix/zerrors_linux_amd64.go | 874 - .../x/sys/unix/zerrors_linux_arm.go | 879 - .../x/sys/unix/zerrors_linux_arm64.go | 876 - .../x/sys/unix/zerrors_linux_loong64.go | 866 - .../x/sys/unix/zerrors_linux_mips.go | 880 - .../x/sys/unix/zerrors_linux_mips64.go | 880 - .../x/sys/unix/zerrors_linux_mips64le.go | 880 - .../x/sys/unix/zerrors_linux_mipsle.go | 880 - .../x/sys/unix/zerrors_linux_ppc.go | 932 - .../x/sys/unix/zerrors_linux_ppc64.go | 936 - .../x/sys/unix/zerrors_linux_ppc64le.go | 936 - .../x/sys/unix/zerrors_linux_riscv64.go | 863 - .../x/sys/unix/zerrors_linux_s390x.go | 935 - .../x/sys/unix/zerrors_linux_sparc64.go | 978 - .../x/sys/unix/zerrors_netbsd_386.go | 1779 - .../x/sys/unix/zerrors_netbsd_amd64.go | 1769 - .../x/sys/unix/zerrors_netbsd_arm.go | 1758 - .../x/sys/unix/zerrors_netbsd_arm64.go | 1769 - .../x/sys/unix/zerrors_openbsd_386.go | 1905 - .../x/sys/unix/zerrors_openbsd_amd64.go | 1905 - .../x/sys/unix/zerrors_openbsd_arm.go | 1905 - .../x/sys/unix/zerrors_openbsd_arm64.go | 1905 - .../x/sys/unix/zerrors_openbsd_mips64.go | 1905 - .../x/sys/unix/zerrors_openbsd_ppc64.go | 1904 - .../x/sys/unix/zerrors_openbsd_riscv64.go | 1903 - .../x/sys/unix/zerrors_solaris_amd64.go | 1556 - .../x/sys/unix/zerrors_zos_s390x.go | 990 - .../x/sys/unix/zptrace_armnn_linux.go | 40 - .../x/sys/unix/zptrace_linux_arm64.go | 17 - .../x/sys/unix/zptrace_mipsnn_linux.go | 49 - .../x/sys/unix/zptrace_mipsnnle_linux.go | 49 - .../x/sys/unix/zptrace_x86_linux.go | 79 - .../x/sys/unix/zsymaddr_zos_s390x.s | 364 - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1461 - .../x/sys/unix/zsyscall_aix_ppc64.go | 1420 - .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1188 - .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1069 - .../x/sys/unix/zsyscall_darwin_amd64.go | 2728 - .../x/sys/unix/zsyscall_darwin_amd64.s | 799 - .../x/sys/unix/zsyscall_darwin_arm64.go | 2728 - .../x/sys/unix/zsyscall_darwin_arm64.s | 799 - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1666 - .../x/sys/unix/zsyscall_freebsd_386.go | 1886 - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1886 - .../x/sys/unix/zsyscall_freebsd_arm.go | 1886 - .../x/sys/unix/zsyscall_freebsd_arm64.go | 1886 - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1886 - .../x/sys/unix/zsyscall_illumos_amd64.go | 101 - .../golang.org/x/sys/unix/zsyscall_linux.go | 2240 - .../x/sys/unix/zsyscall_linux_386.go | 486 - .../x/sys/unix/zsyscall_linux_amd64.go | 653 - .../x/sys/unix/zsyscall_linux_arm.go | 601 - .../x/sys/unix/zsyscall_linux_arm64.go | 552 - .../x/sys/unix/zsyscall_linux_loong64.go | 486 - .../x/sys/unix/zsyscall_linux_mips.go | 653 - .../x/sys/unix/zsyscall_linux_mips64.go | 647 - .../x/sys/unix/zsyscall_linux_mips64le.go | 636 - .../x/sys/unix/zsyscall_linux_mipsle.go | 653 - .../x/sys/unix/zsyscall_linux_ppc.go | 658 - .../x/sys/unix/zsyscall_linux_ppc64.go | 704 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 704 - .../x/sys/unix/zsyscall_linux_riscv64.go | 548 - .../x/sys/unix/zsyscall_linux_s390x.go | 495 - .../x/sys/unix/zsyscall_linux_sparc64.go | 648 - .../x/sys/unix/zsyscall_netbsd_386.go | 1848 - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1848 - .../x/sys/unix/zsyscall_netbsd_arm.go | 1848 - .../x/sys/unix/zsyscall_netbsd_arm64.go | 1848 - .../x/sys/unix/zsyscall_openbsd_386.go | 2323 - .../x/sys/unix/zsyscall_openbsd_386.s | 699 - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2323 - .../x/sys/unix/zsyscall_openbsd_amd64.s | 699 - .../x/sys/unix/zsyscall_openbsd_arm.go | 2323 - .../x/sys/unix/zsyscall_openbsd_arm.s | 699 - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2323 - .../x/sys/unix/zsyscall_openbsd_arm64.s | 699 - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2323 - .../x/sys/unix/zsyscall_openbsd_mips64.s | 699 - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2323 - .../x/sys/unix/zsyscall_openbsd_ppc64.s | 838 - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2323 - .../x/sys/unix/zsyscall_openbsd_riscv64.s | 699 - .../x/sys/unix/zsyscall_solaris_amd64.go | 2217 - .../x/sys/unix/zsyscall_zos_s390x.go | 3458 - .../x/sys/unix/zsysctl_openbsd_386.go | 280 - .../x/sys/unix/zsysctl_openbsd_amd64.go | 280 - .../x/sys/unix/zsysctl_openbsd_arm.go | 280 - .../x/sys/unix/zsysctl_openbsd_arm64.go | 280 - .../x/sys/unix/zsysctl_openbsd_mips64.go | 280 - .../x/sys/unix/zsysctl_openbsd_ppc64.go | 280 - .../x/sys/unix/zsysctl_openbsd_riscv64.go | 281 - .../x/sys/unix/zsysnum_darwin_amd64.go | 439 - .../x/sys/unix/zsysnum_darwin_arm64.go | 437 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 316 - .../x/sys/unix/zsysnum_freebsd_386.go | 393 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 393 - .../x/sys/unix/zsysnum_freebsd_arm.go | 393 - .../x/sys/unix/zsysnum_freebsd_arm64.go | 393 - .../x/sys/unix/zsysnum_freebsd_riscv64.go | 393 - .../x/sys/unix/zsysnum_linux_386.go | 465 - .../x/sys/unix/zsysnum_linux_amd64.go | 388 - .../x/sys/unix/zsysnum_linux_arm.go | 429 - .../x/sys/unix/zsysnum_linux_arm64.go | 332 - .../x/sys/unix/zsysnum_linux_loong64.go | 328 - .../x/sys/unix/zsysnum_linux_mips.go | 449 - .../x/sys/unix/zsysnum_linux_mips64.go | 379 - .../x/sys/unix/zsysnum_linux_mips64le.go | 379 - .../x/sys/unix/zsysnum_linux_mipsle.go | 449 - .../x/sys/unix/zsysnum_linux_ppc.go | 456 - .../x/sys/unix/zsysnum_linux_ppc64.go | 428 - .../x/sys/unix/zsysnum_linux_ppc64le.go | 428 - .../x/sys/unix/zsysnum_linux_riscv64.go | 333 - .../x/sys/unix/zsysnum_linux_s390x.go | 394 - .../x/sys/unix/zsysnum_linux_sparc64.go | 407 - .../x/sys/unix/zsysnum_netbsd_386.go | 274 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 274 - .../x/sys/unix/zsysnum_netbsd_arm.go | 274 - .../x/sys/unix/zsysnum_netbsd_arm64.go | 274 - .../x/sys/unix/zsysnum_openbsd_386.go | 219 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 219 - .../x/sys/unix/zsysnum_openbsd_arm.go | 219 - .../x/sys/unix/zsysnum_openbsd_arm64.go | 218 - .../x/sys/unix/zsysnum_openbsd_mips64.go | 221 - .../x/sys/unix/zsysnum_openbsd_ppc64.go | 217 - .../x/sys/unix/zsysnum_openbsd_riscv64.go | 218 - .../x/sys/unix/zsysnum_zos_s390x.go | 2852 - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 353 - .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 357 - .../x/sys/unix/ztypes_darwin_amd64.go | 878 - .../x/sys/unix/ztypes_darwin_arm64.go | 878 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 473 - .../x/sys/unix/ztypes_freebsd_386.go | 651 - .../x/sys/unix/ztypes_freebsd_amd64.go | 656 - .../x/sys/unix/ztypes_freebsd_arm.go | 642 - .../x/sys/unix/ztypes_freebsd_arm64.go | 636 - .../x/sys/unix/ztypes_freebsd_riscv64.go | 638 - vendor/golang.org/x/sys/unix/ztypes_linux.go | 6272 - .../golang.org/x/sys/unix/ztypes_linux_386.go | 705 - .../x/sys/unix/ztypes_linux_amd64.go | 719 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 699 - .../x/sys/unix/ztypes_linux_arm64.go | 698 - .../x/sys/unix/ztypes_linux_loong64.go | 699 - .../x/sys/unix/ztypes_linux_mips.go | 704 - .../x/sys/unix/ztypes_linux_mips64.go | 701 - .../x/sys/unix/ztypes_linux_mips64le.go | 701 - .../x/sys/unix/ztypes_linux_mipsle.go | 704 - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 712 - .../x/sys/unix/ztypes_linux_ppc64.go | 707 - .../x/sys/unix/ztypes_linux_ppc64le.go | 707 - .../x/sys/unix/ztypes_linux_riscv64.go | 786 - .../x/sys/unix/ztypes_linux_s390x.go | 721 - .../x/sys/unix/ztypes_linux_sparc64.go | 702 - .../x/sys/unix/ztypes_netbsd_386.go | 585 - .../x/sys/unix/ztypes_netbsd_amd64.go | 593 - .../x/sys/unix/ztypes_netbsd_arm.go | 590 - .../x/sys/unix/ztypes_netbsd_arm64.go | 593 - .../x/sys/unix/ztypes_openbsd_386.go | 568 - .../x/sys/unix/ztypes_openbsd_amd64.go | 568 - .../x/sys/unix/ztypes_openbsd_arm.go | 575 - .../x/sys/unix/ztypes_openbsd_arm64.go | 568 - .../x/sys/unix/ztypes_openbsd_mips64.go | 568 - .../x/sys/unix/ztypes_openbsd_ppc64.go | 570 - .../x/sys/unix/ztypes_openbsd_riscv64.go | 570 - .../x/sys/unix/ztypes_solaris_amd64.go | 516 - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 552 - vendor/golang.org/x/sys/windows/aliases.go | 12 - .../golang.org/x/sys/windows/dll_windows.go | 415 - .../golang.org/x/sys/windows/env_windows.go | 57 - vendor/golang.org/x/sys/windows/eventlog.go | 20 - .../golang.org/x/sys/windows/exec_windows.go | 248 - .../x/sys/windows/memory_windows.go | 48 - vendor/golang.org/x/sys/windows/mkerrors.bash | 70 - .../x/sys/windows/mkknownfolderids.bash | 27 - vendor/golang.org/x/sys/windows/mksyscall.go | 9 - vendor/golang.org/x/sys/windows/race.go | 30 - vendor/golang.org/x/sys/windows/race0.go | 25 - .../x/sys/windows/security_windows.go | 1497 - vendor/golang.org/x/sys/windows/service.go | 257 - .../x/sys/windows/setupapi_windows.go | 1425 - vendor/golang.org/x/sys/windows/str.go | 22 - vendor/golang.org/x/sys/windows/syscall.go | 104 - .../x/sys/windows/syscall_windows.go | 1934 - .../golang.org/x/sys/windows/types_windows.go | 3842 - .../x/sys/windows/types_windows_386.go | 35 - .../x/sys/windows/types_windows_amd64.go | 34 - .../x/sys/windows/types_windows_arm.go | 35 - .../x/sys/windows/types_windows_arm64.go | 34 - .../x/sys/windows/zerrors_windows.go | 9468 -- .../x/sys/windows/zknownfolderids_windows.go | 149 - .../x/sys/windows/zsyscall_windows.go | 4695 - vendor/golang.org/x/tools/LICENSE | 27 - vendor/golang.org/x/tools/PATENTS | 22 - .../x/tools/go/ast/astutil/enclosing.go | 663 - .../x/tools/go/ast/astutil/imports.go | 491 - .../x/tools/go/ast/astutil/rewrite.go | 490 - .../golang.org/x/tools/go/ast/astutil/util.go | 13 - .../x/tools/go/gcexportdata/gcexportdata.go | 236 - .../x/tools/go/gcexportdata/importer.go | 75 - vendor/golang.org/x/tools/go/packages/doc.go | 251 - .../x/tools/go/packages/external.go | 153 - .../golang.org/x/tools/go/packages/golist.go | 1092 - .../x/tools/go/packages/golist_overlay.go | 83 - .../x/tools/go/packages/loadmode_string.go | 56 - .../x/tools/go/packages/packages.go | 1559 - .../golang.org/x/tools/go/packages/visit.go | 68 - .../x/tools/go/types/objectpath/objectpath.go | 817 - .../x/tools/go/types/typeutil/callee.go | 85 - .../x/tools/go/types/typeutil/imports.go | 30 - .../x/tools/go/types/typeutil/map.go | 475 - .../tools/go/types/typeutil/methodsetcache.go | 71 - .../x/tools/go/types/typeutil/ui.go | 53 - vendor/golang.org/x/tools/imports/forward.go | 77 - .../x/tools/internal/aliases/aliases.go | 38 - .../x/tools/internal/aliases/aliases_go122.go | 80 - .../x/tools/internal/event/core/event.go | 85 - .../x/tools/internal/event/core/export.go | 70 - .../x/tools/internal/event/core/fast.go | 77 - .../golang.org/x/tools/internal/event/doc.go | 7 - .../x/tools/internal/event/event.go | 127 - .../x/tools/internal/event/keys/keys.go | 564 - .../x/tools/internal/event/keys/standard.go | 22 - .../x/tools/internal/event/keys/util.go | 21 - .../x/tools/internal/event/label/label.go | 214 - .../x/tools/internal/gcimporter/bimport.go | 89 - .../x/tools/internal/gcimporter/exportdata.go | 421 - .../x/tools/internal/gcimporter/gcimporter.go | 108 - .../x/tools/internal/gcimporter/iexport.go | 1596 - .../x/tools/internal/gcimporter/iimport.go | 1120 - .../internal/gcimporter/iimport_go122.go | 53 - .../tools/internal/gcimporter/predeclared.go | 91 - .../x/tools/internal/gcimporter/support.go | 30 - .../tools/internal/gcimporter/ureader_yes.go | 761 - .../x/tools/internal/gocommand/invoke.go | 567 - .../internal/gocommand/invoke_notunix.go | 13 - .../x/tools/internal/gocommand/invoke_unix.go | 13 - .../x/tools/internal/gocommand/vendor.go | 163 - .../x/tools/internal/gocommand/version.go | 71 - .../x/tools/internal/gopathwalk/walk.go | 336 - .../x/tools/internal/imports/fix.go | 1898 - .../x/tools/internal/imports/imports.go | 359 - .../x/tools/internal/imports/mod.go | 841 - .../x/tools/internal/imports/mod_cache.go | 331 - .../x/tools/internal/imports/sortimports.go | 298 - .../x/tools/internal/imports/source.go | 63 - .../x/tools/internal/imports/source_env.go | 129 - .../tools/internal/imports/source_modindex.go | 103 - .../x/tools/internal/modindex/directories.go | 135 - .../x/tools/internal/modindex/index.go | 266 - .../x/tools/internal/modindex/lookup.go | 178 - .../x/tools/internal/modindex/modindex.go | 164 - .../x/tools/internal/modindex/symbols.go | 218 - .../x/tools/internal/modindex/types.go | 25 - .../internal/packagesinternal/packages.go | 23 - .../x/tools/internal/pkgbits/codes.go | 77 - .../x/tools/internal/pkgbits/decoder.go | 519 - .../x/tools/internal/pkgbits/doc.go | 32 - .../x/tools/internal/pkgbits/encoder.go | 392 - .../x/tools/internal/pkgbits/flags.go | 9 - .../x/tools/internal/pkgbits/reloc.go | 42 - .../x/tools/internal/pkgbits/support.go | 17 - .../x/tools/internal/pkgbits/sync.go | 136 - .../internal/pkgbits/syncmarker_string.go | 92 - .../x/tools/internal/pkgbits/version.go | 85 - .../x/tools/internal/stdlib/deps.go | 359 - .../x/tools/internal/stdlib/import.go | 89 - .../x/tools/internal/stdlib/manifest.go | 17676 --- .../x/tools/internal/stdlib/stdlib.go | 105 - .../x/tools/internal/typeparams/common.go | 68 - .../x/tools/internal/typeparams/coretype.go | 155 - .../x/tools/internal/typeparams/free.go | 131 - .../x/tools/internal/typeparams/normalize.go | 218 - .../x/tools/internal/typeparams/termlist.go | 169 - .../x/tools/internal/typeparams/typeterm.go | 172 - .../internal/typesinternal/classify_call.go | 137 - .../x/tools/internal/typesinternal/element.go | 133 - .../tools/internal/typesinternal/errorcode.go | 1560 - .../typesinternal/errorcode_string.go | 179 - .../tools/internal/typesinternal/qualifier.go | 46 - .../x/tools/internal/typesinternal/recv.go | 44 - .../x/tools/internal/typesinternal/toonew.go | 89 - .../x/tools/internal/typesinternal/types.go | 155 - .../x/tools/internal/typesinternal/varkind.go | 40 - .../tools/internal/typesinternal/zerovalue.go | 392 - .../x/tools/internal/versions/features.go | 43 - .../x/tools/internal/versions/gover.go | 172 - .../x/tools/internal/versions/types.go | 33 - .../x/tools/internal/versions/versions.go | 57 - vendor/modules.txt | 120 +- 816 files changed, 24 insertions(+), 573409 deletions(-) delete mode 100644 vendor/github.com/a-h/parse/.gitignore delete mode 100644 vendor/github.com/a-h/parse/LICENSE delete mode 100644 vendor/github.com/a-h/parse/README.md delete mode 100644 vendor/github.com/a-h/parse/all.go delete mode 100644 vendor/github.com/a-h/parse/any.go delete mode 100644 vendor/github.com/a-h/parse/convert.go delete mode 100644 vendor/github.com/a-h/parse/digits.go delete mode 100644 vendor/github.com/a-h/parse/eof.go delete mode 100644 vendor/github.com/a-h/parse/error.go delete mode 100644 vendor/github.com/a-h/parse/input.go delete mode 100644 vendor/github.com/a-h/parse/optional.go delete mode 100644 vendor/github.com/a-h/parse/or.go delete mode 100644 vendor/github.com/a-h/parse/regexp.go delete mode 100644 vendor/github.com/a-h/parse/rune.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof2.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof3.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof4.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof5.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof6.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof7.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof8.go delete mode 100644 vendor/github.com/a-h/parse/sequenceof9.go delete mode 100644 vendor/github.com/a-h/parse/string.go delete mode 100644 vendor/github.com/a-h/parse/stringfrom.go delete mode 100644 vendor/github.com/a-h/parse/stringuntil.go delete mode 100644 vendor/github.com/a-h/parse/then.go delete mode 100644 vendor/github.com/a-h/parse/times.go delete mode 100644 vendor/github.com/a-h/parse/tuples.go delete mode 100644 vendor/github.com/a-h/parse/types.go delete mode 100644 vendor/github.com/a-h/parse/until.go delete mode 100644 vendor/github.com/a-h/parse/whitespace.go delete mode 100644 vendor/github.com/a-h/templ/.dockerignore delete mode 100644 vendor/github.com/a-h/templ/.envrc delete mode 100644 vendor/github.com/a-h/templ/.gitignore delete mode 100644 vendor/github.com/a-h/templ/.goreleaser.yaml delete mode 100644 vendor/github.com/a-h/templ/.ignore delete mode 100644 vendor/github.com/a-h/templ/.version delete mode 100644 vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md delete mode 100644 vendor/github.com/a-h/templ/CONTRIBUTING.md delete mode 100644 vendor/github.com/a-h/templ/LICENSE delete mode 100644 vendor/github.com/a-h/templ/README.md delete mode 100644 vendor/github.com/a-h/templ/SECURITY.md delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/main.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/processor/processor.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go delete mode 100644 vendor/github.com/a-h/templ/cmd/templ/visualize/types.go delete mode 100644 vendor/github.com/a-h/templ/cosign.pub delete mode 100644 vendor/github.com/a-h/templ/flake.lock delete mode 100644 vendor/github.com/a-h/templ/flake.nix delete mode 100644 vendor/github.com/a-h/templ/flush.go delete mode 100644 vendor/github.com/a-h/templ/fragment.go delete mode 100644 vendor/github.com/a-h/templ/generator/generator.go delete mode 100644 vendor/github.com/a-h/templ/generator/rangewriter.go delete mode 100644 vendor/github.com/a-h/templ/handler.go delete mode 100644 vendor/github.com/a-h/templ/ide-demo.gif delete mode 100644 vendor/github.com/a-h/templ/internal/format/scriptelement.go delete mode 100644 vendor/github.com/a-h/templ/internal/format/styleelement.go delete mode 100644 vendor/github.com/a-h/templ/internal/format/templ.go delete mode 100644 vendor/github.com/a-h/templ/internal/htmlfind/htmlfind.go delete mode 100644 vendor/github.com/a-h/templ/internal/imports/process.go delete mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/docheader.go delete mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/docheaderparser.go delete mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/pkgloader.go delete mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/pkgtraverser.go delete mode 100644 vendor/github.com/a-h/templ/internal/lazyloader/templdoclazyloader.go delete mode 100644 vendor/github.com/a-h/templ/internal/prettier/prettier.go delete mode 100644 vendor/github.com/a-h/templ/internal/prettier/testdata.txtar delete mode 100644 vendor/github.com/a-h/templ/internal/skipdir/skipdir.go delete mode 100644 vendor/github.com/a-h/templ/internal/syncmap/map.go delete mode 100644 vendor/github.com/a-h/templ/internal/syncset/set.go delete mode 100644 vendor/github.com/a-h/templ/join.go delete mode 100644 vendor/github.com/a-h/templ/js.go delete mode 100644 vendor/github.com/a-h/templ/jsonscript.go delete mode 100644 vendor/github.com/a-h/templ/jsonstring.go delete mode 100644 vendor/github.com/a-h/templ/lsp/LICENSE delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go delete mode 100644 vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/base.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/basic.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/client.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/context.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/deprecated.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/doc.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/errors.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/general.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/handler.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/language.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/progress.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/protocol.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/registration.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/server.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/text.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/util.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/version.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/window.go delete mode 100644 vendor/github.com/a-h/templ/lsp/protocol/workspace.go delete mode 100644 vendor/github.com/a-h/templ/lsp/uri/uri.go delete mode 100644 vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go delete mode 100644 vendor/github.com/a-h/templ/once.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/childrenparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/cssparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/diagnostics.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/doctypeparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/elementparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/expressionparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/fuzz.sh delete mode 100644 vendor/github.com/a-h/templ/parser/v2/gocodeparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/gocommentparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh delete mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/goparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/packageparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/parser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/raw.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/scriptparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/scripttemplateparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/sourcemap.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/stringexpressionparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/structure.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/switchexpressionparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/templatefile.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/templateparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/templelementparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/textparser.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/types.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/visitor.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go delete mode 100644 vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go delete mode 100644 vendor/github.com/a-h/templ/runtime.go delete mode 100644 vendor/github.com/a-h/templ/runtime/buffer.go delete mode 100644 vendor/github.com/a-h/templ/runtime/bufferpool.go delete mode 100644 vendor/github.com/a-h/templ/runtime/builder.go delete mode 100644 vendor/github.com/a-h/templ/runtime/runtime.go delete mode 100644 vendor/github.com/a-h/templ/runtime/scriptelement.go delete mode 100644 vendor/github.com/a-h/templ/runtime/styleattribute.go delete mode 100644 vendor/github.com/a-h/templ/runtime/watchmode.go delete mode 100644 vendor/github.com/a-h/templ/safehtml/style.go delete mode 100644 vendor/github.com/a-h/templ/scripttemplate.go delete mode 100644 vendor/github.com/a-h/templ/templ.png delete mode 100644 vendor/github.com/a-h/templ/url.go delete mode 100644 vendor/github.com/a-h/templ/version.go delete mode 100644 vendor/github.com/a-h/templ/watchmode.go delete mode 100644 vendor/github.com/andybalholm/brotli/LICENSE delete mode 100644 vendor/github.com/andybalholm/brotli/README.md delete mode 100644 vendor/github.com/andybalholm/brotli/backward_references.go delete mode 100644 vendor/github.com/andybalholm/brotli/backward_references_hq.go delete mode 100644 vendor/github.com/andybalholm/brotli/bit_cost.go delete mode 100644 vendor/github.com/andybalholm/brotli/bit_reader.go delete mode 100644 vendor/github.com/andybalholm/brotli/bitwriter.go delete mode 100644 vendor/github.com/andybalholm/brotli/block_splitter.go delete mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_command.go delete mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_distance.go delete mode 100644 vendor/github.com/andybalholm/brotli/block_splitter_literal.go delete mode 100644 vendor/github.com/andybalholm/brotli/brotli_bit_stream.go delete mode 100644 vendor/github.com/andybalholm/brotli/cluster.go delete mode 100644 vendor/github.com/andybalholm/brotli/cluster_command.go delete mode 100644 vendor/github.com/andybalholm/brotli/cluster_distance.go delete mode 100644 vendor/github.com/andybalholm/brotli/cluster_literal.go delete mode 100644 vendor/github.com/andybalholm/brotli/command.go delete mode 100644 vendor/github.com/andybalholm/brotli/compress_fragment.go delete mode 100644 vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go delete mode 100644 vendor/github.com/andybalholm/brotli/constants.go delete mode 100644 vendor/github.com/andybalholm/brotli/context.go delete mode 100644 vendor/github.com/andybalholm/brotli/decode.go delete mode 100644 vendor/github.com/andybalholm/brotli/dictionary.go delete mode 100644 vendor/github.com/andybalholm/brotli/dictionary_hash.go delete mode 100644 vendor/github.com/andybalholm/brotli/encode.go delete mode 100644 vendor/github.com/andybalholm/brotli/encoder.go delete mode 100644 vendor/github.com/andybalholm/brotli/encoder_dict.go delete mode 100644 vendor/github.com/andybalholm/brotli/entropy_encode.go delete mode 100644 vendor/github.com/andybalholm/brotli/entropy_encode_static.go delete mode 100644 vendor/github.com/andybalholm/brotli/fast_log.go delete mode 100644 vendor/github.com/andybalholm/brotli/find_match_length.go delete mode 100644 vendor/github.com/andybalholm/brotli/h10.go delete mode 100644 vendor/github.com/andybalholm/brotli/h5.go delete mode 100644 vendor/github.com/andybalholm/brotli/h6.go delete mode 100644 vendor/github.com/andybalholm/brotli/hash.go delete mode 100644 vendor/github.com/andybalholm/brotli/hash_composite.go delete mode 100644 vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go delete mode 100644 vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go delete mode 100644 vendor/github.com/andybalholm/brotli/hash_rolling.go delete mode 100644 vendor/github.com/andybalholm/brotli/histogram.go delete mode 100644 vendor/github.com/andybalholm/brotli/http.go delete mode 100644 vendor/github.com/andybalholm/brotli/huffman.go delete mode 100644 vendor/github.com/andybalholm/brotli/literal_cost.go delete mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/emitter.go delete mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/m0.go delete mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/m4.go delete mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go delete mode 100644 vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go delete mode 100644 vendor/github.com/andybalholm/brotli/memory.go delete mode 100644 vendor/github.com/andybalholm/brotli/metablock.go delete mode 100644 vendor/github.com/andybalholm/brotli/metablock_command.go delete mode 100644 vendor/github.com/andybalholm/brotli/metablock_distance.go delete mode 100644 vendor/github.com/andybalholm/brotli/metablock_literal.go delete mode 100644 vendor/github.com/andybalholm/brotli/params.go delete mode 100644 vendor/github.com/andybalholm/brotli/platform.go delete mode 100644 vendor/github.com/andybalholm/brotli/prefix.go delete mode 100644 vendor/github.com/andybalholm/brotli/prefix_dec.go delete mode 100644 vendor/github.com/andybalholm/brotli/quality.go delete mode 100644 vendor/github.com/andybalholm/brotli/reader.go delete mode 100644 vendor/github.com/andybalholm/brotli/ringbuffer.go delete mode 100644 vendor/github.com/andybalholm/brotli/state.go delete mode 100644 vendor/github.com/andybalholm/brotli/static_dict.go delete mode 100644 vendor/github.com/andybalholm/brotli/static_dict_lut.go delete mode 100644 vendor/github.com/andybalholm/brotli/symbol_list.go delete mode 100644 vendor/github.com/andybalholm/brotli/transform.go delete mode 100644 vendor/github.com/andybalholm/brotli/utf8_util.go delete mode 100644 vendor/github.com/andybalholm/brotli/util.go delete mode 100644 vendor/github.com/andybalholm/brotli/write_bits.go delete mode 100644 vendor/github.com/andybalholm/brotli/writer.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/.gitignore delete mode 100644 vendor/github.com/cenkalti/backoff/v4/LICENSE delete mode 100644 vendor/github.com/cenkalti/backoff/v4/README.md delete mode 100644 vendor/github.com/cenkalti/backoff/v4/backoff.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/context.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/exponential.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/retry.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/ticker.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/timer.go delete mode 100644 vendor/github.com/cenkalti/backoff/v4/tries.go delete mode 100644 vendor/github.com/cli/browser/LICENSE delete mode 100644 vendor/github.com/cli/browser/README.md delete mode 100644 vendor/github.com/cli/browser/browser.go delete mode 100644 vendor/github.com/cli/browser/browser_darwin.go delete mode 100644 vendor/github.com/cli/browser/browser_freebsd.go delete mode 100644 vendor/github.com/cli/browser/browser_linux.go delete mode 100644 vendor/github.com/cli/browser/browser_netbsd.go delete mode 100644 vendor/github.com/cli/browser/browser_openbsd.go delete mode 100644 vendor/github.com/cli/browser/browser_unsupported.go delete mode 100644 vendor/github.com/cli/browser/browser_windows.go delete mode 100644 vendor/github.com/fatih/color/LICENSE.md delete mode 100644 vendor/github.com/fatih/color/README.md delete mode 100644 vendor/github.com/fatih/color/color.go delete mode 100644 vendor/github.com/fatih/color/color_windows.go delete mode 100644 vendor/github.com/fatih/color/doc.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/.cirrus.yml delete mode 100644 vendor/github.com/fsnotify/fsnotify/.editorconfig delete mode 100644 vendor/github.com/fsnotify/fsnotify/.gitattributes delete mode 100644 vendor/github.com/fsnotify/fsnotify/.gitignore delete mode 100644 vendor/github.com/fsnotify/fsnotify/.mailmap delete mode 100644 vendor/github.com/fsnotify/fsnotify/CHANGELOG.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/LICENSE delete mode 100644 vendor/github.com/fsnotify/fsnotify/README.md delete mode 100644 vendor/github.com/fsnotify/fsnotify/backend_fen.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/backend_inotify.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/backend_kqueue.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/backend_other.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/backend_windows.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/fsnotify.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/mkdoc.zsh delete mode 100644 vendor/github.com/fsnotify/fsnotify/system_bsd.go delete mode 100644 vendor/github.com/fsnotify/fsnotify/system_darwin.go delete mode 100644 vendor/github.com/mattn/go-colorable/LICENSE delete mode 100644 vendor/github.com/mattn/go-colorable/README.md delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_appengine.go delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_others.go delete mode 100644 vendor/github.com/mattn/go-colorable/colorable_windows.go delete mode 100644 vendor/github.com/mattn/go-colorable/go.test.sh delete mode 100644 vendor/github.com/mattn/go-colorable/noncolorable.go delete mode 100644 vendor/github.com/mattn/go-isatty/LICENSE delete mode 100644 vendor/github.com/mattn/go-isatty/README.md delete mode 100644 vendor/github.com/mattn/go-isatty/doc.go delete mode 100644 vendor/github.com/mattn/go-isatty/go.test.sh delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_bsd.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_others.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_plan9.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_solaris.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_tcgets.go delete mode 100644 vendor/github.com/mattn/go-isatty/isatty_windows.go delete mode 100644 vendor/github.com/natefinch/atomic/.gitignore delete mode 100644 vendor/github.com/natefinch/atomic/LICENSE delete mode 100644 vendor/github.com/natefinch/atomic/README.md delete mode 100644 vendor/github.com/natefinch/atomic/atomic.go delete mode 100644 vendor/github.com/natefinch/atomic/file_unix.go delete mode 100644 vendor/github.com/natefinch/atomic/file_windows.go delete mode 100644 vendor/github.com/natefinch/atomic/zfile_windows.go delete mode 100644 vendor/github.com/shurcooL/go-goon/LICENSE delete mode 100644 vendor/github.com/shurcooL/go-goon/README.md delete mode 100644 vendor/github.com/shurcooL/go-goon/dump.go delete mode 100644 vendor/github.com/shurcooL/go-goon/goon.go delete mode 100644 vendor/github.com/shurcooL/go-goon/print_types.go delete mode 100644 vendor/github.com/shurcooL/go/LICENSE delete mode 100644 vendor/github.com/shurcooL/go/parserutil/parserutil.go delete mode 100644 vendor/github.com/shurcooL/go/printerutil/printerutil.go delete mode 100644 vendor/github.com/shurcooL/go/reflectfind/reflectfind.go delete mode 100644 vendor/github.com/shurcooL/go/reflectsource/callername.go delete mode 100644 vendor/github.com/shurcooL/go/reflectsource/doc.go delete mode 100644 vendor/github.com/shurcooL/go/reflectsource/funcsource.go delete mode 100644 vendor/github.com/shurcooL/go/reflectsource/indicies.go delete mode 100644 vendor/github.com/shurcooL/goexec/LICENSE delete mode 100644 vendor/github.com/shurcooL/goexec/README.md delete mode 100644 vendor/github.com/shurcooL/goexec/main.go delete mode 100644 vendor/golang.org/x/mod/LICENSE delete mode 100644 vendor/golang.org/x/mod/PATENTS delete mode 100644 vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go delete mode 100644 vendor/golang.org/x/mod/modfile/print.go delete mode 100644 vendor/golang.org/x/mod/modfile/read.go delete mode 100644 vendor/golang.org/x/mod/modfile/rule.go delete mode 100644 vendor/golang.org/x/mod/modfile/work.go delete mode 100644 vendor/golang.org/x/mod/module/module.go delete mode 100644 vendor/golang.org/x/mod/module/pseudo.go delete mode 100644 vendor/golang.org/x/mod/semver/semver.go delete mode 100644 vendor/golang.org/x/net/LICENSE delete mode 100644 vendor/golang.org/x/net/PATENTS delete mode 100644 vendor/golang.org/x/net/html/atom/atom.go delete mode 100644 vendor/golang.org/x/net/html/atom/table.go delete mode 100644 vendor/golang.org/x/net/html/const.go delete mode 100644 vendor/golang.org/x/net/html/doc.go delete mode 100644 vendor/golang.org/x/net/html/doctype.go delete mode 100644 vendor/golang.org/x/net/html/entity.go delete mode 100644 vendor/golang.org/x/net/html/escape.go delete mode 100644 vendor/golang.org/x/net/html/foreign.go delete mode 100644 vendor/golang.org/x/net/html/iter.go delete mode 100644 vendor/golang.org/x/net/html/node.go delete mode 100644 vendor/golang.org/x/net/html/parse.go delete mode 100644 vendor/golang.org/x/net/html/render.go delete mode 100644 vendor/golang.org/x/net/html/token.go delete mode 100644 vendor/golang.org/x/sync/LICENSE delete mode 100644 vendor/golang.org/x/sync/PATENTS delete mode 100644 vendor/golang.org/x/sync/errgroup/errgroup.go delete mode 100644 vendor/golang.org/x/sys/LICENSE delete mode 100644 vendor/golang.org/x/sys/PATENTS delete mode 100644 vendor/golang.org/x/sys/unix/.gitignore delete mode 100644 vendor/golang.org/x/sys/unix/README.md delete mode 100644 vendor/golang.org/x/sys/unix/affinity_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/aliases.go delete mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_386.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_loong64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mips64x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_linux_s390x.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_solaris_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/asm_zos_s390x.s delete mode 100644 vendor/golang.org/x/sys/unix/auxv.go delete mode 100644 vendor/golang.org/x/sys/unix/auxv_unsupported.go delete mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/bpxsvc_zos.s delete mode 100644 vendor/golang.org/x/sys/unix/cap_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/constants.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_netbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/dev_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/dirent.go delete mode 100644 vendor/golang.org/x/sys/unix/endian_big.go delete mode 100644 vendor/golang.org/x/sys/unix/endian_little.go delete mode 100644 vendor/golang.org/x/sys/unix/env_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/fcntl.go delete mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go delete mode 100644 vendor/golang.org/x/sys/unix/fdset.go delete mode 100644 vendor/golang.org/x/sys/unix/gccgo.go delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_c.c delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ifreq_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/ioctl_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/ioctl_signed.go delete mode 100644 vendor/golang.org/x/sys/unix/ioctl_unsigned.go delete mode 100644 vendor/golang.org/x/sys/unix/ioctl_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/mkall.sh delete mode 100644 vendor/golang.org/x/sys/unix/mkerrors.sh delete mode 100644 vendor/golang.org/x/sys/unix/mmap_nomremap.go delete mode 100644 vendor/golang.org/x/sys/unix/mremap.go delete mode 100644 vendor/golang.org/x/sys/unix/pagesize_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/pledge_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/ptrace_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/ptrace_ios.go delete mode 100644 vendor/golang.org/x/sys/unix/race.go delete mode 100644 vendor/golang.org/x/sys/unix/race0.go delete mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go delete mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go delete mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_zos.go delete mode 100644 vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s delete mode 100644 vendor/golang.org/x/sys/unix/syscall.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_bsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_alarm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_loong64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/sysvshm_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/sysvshm_unix.go delete mode 100644 vendor/golang.org/x/sys/unix/sysvshm_unix_other.go delete mode 100644 vendor/golang.org/x/sys/unix/timestruct.go delete mode 100644 vendor/golang.org/x/sys/unix/unveil_openbsd.go delete mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go delete mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zptrace_x86_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go delete mode 100644 vendor/golang.org/x/sys/windows/aliases.go delete mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/env_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/eventlog.go delete mode 100644 vendor/golang.org/x/sys/windows/exec_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/memory_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/mkerrors.bash delete mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash delete mode 100644 vendor/golang.org/x/sys/windows/mksyscall.go delete mode 100644 vendor/golang.org/x/sys/windows/race.go delete mode 100644 vendor/golang.org/x/sys/windows/race0.go delete mode 100644 vendor/golang.org/x/sys/windows/security_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/service.go delete mode 100644 vendor/golang.org/x/sys/windows/setupapi_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/str.go delete mode 100644 vendor/golang.org/x/sys/windows/syscall.go delete mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/types_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/types_windows_386.go delete mode 100644 vendor/golang.org/x/sys/windows/types_windows_amd64.go delete mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm.go delete mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm64.go delete mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go delete mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go delete mode 100644 vendor/golang.org/x/tools/LICENSE delete mode 100644 vendor/golang.org/x/tools/PATENTS delete mode 100644 vendor/golang.org/x/tools/go/ast/astutil/enclosing.go delete mode 100644 vendor/golang.org/x/tools/go/ast/astutil/imports.go delete mode 100644 vendor/golang.org/x/tools/go/ast/astutil/rewrite.go delete mode 100644 vendor/golang.org/x/tools/go/ast/astutil/util.go delete mode 100644 vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go delete mode 100644 vendor/golang.org/x/tools/go/gcexportdata/importer.go delete mode 100644 vendor/golang.org/x/tools/go/packages/doc.go delete mode 100644 vendor/golang.org/x/tools/go/packages/external.go delete mode 100644 vendor/golang.org/x/tools/go/packages/golist.go delete mode 100644 vendor/golang.org/x/tools/go/packages/golist_overlay.go delete mode 100644 vendor/golang.org/x/tools/go/packages/loadmode_string.go delete mode 100644 vendor/golang.org/x/tools/go/packages/packages.go delete mode 100644 vendor/golang.org/x/tools/go/packages/visit.go delete mode 100644 vendor/golang.org/x/tools/go/types/objectpath/objectpath.go delete mode 100644 vendor/golang.org/x/tools/go/types/typeutil/callee.go delete mode 100644 vendor/golang.org/x/tools/go/types/typeutil/imports.go delete mode 100644 vendor/golang.org/x/tools/go/types/typeutil/map.go delete mode 100644 vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go delete mode 100644 vendor/golang.org/x/tools/go/types/typeutil/ui.go delete mode 100644 vendor/golang.org/x/tools/imports/forward.go delete mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases.go delete mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go122.go delete mode 100644 vendor/golang.org/x/tools/internal/event/core/event.go delete mode 100644 vendor/golang.org/x/tools/internal/event/core/export.go delete mode 100644 vendor/golang.org/x/tools/internal/event/core/fast.go delete mode 100644 vendor/golang.org/x/tools/internal/event/doc.go delete mode 100644 vendor/golang.org/x/tools/internal/event/event.go delete mode 100644 vendor/golang.org/x/tools/internal/event/keys/keys.go delete mode 100644 vendor/golang.org/x/tools/internal/event/keys/standard.go delete mode 100644 vendor/golang.org/x/tools/internal/event/keys/util.go delete mode 100644 vendor/golang.org/x/tools/internal/event/label/label.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/bimport.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/exportdata.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iexport.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/predeclared.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/support.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go delete mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke.go delete mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go delete mode 100644 vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go delete mode 100644 vendor/golang.org/x/tools/internal/gocommand/vendor.go delete mode 100644 vendor/golang.org/x/tools/internal/gocommand/version.go delete mode 100644 vendor/golang.org/x/tools/internal/gopathwalk/walk.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/fix.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/imports.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/mod.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/mod_cache.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/sortimports.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/source.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/source_env.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/source_modindex.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/directories.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/index.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/lookup.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/modindex.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/symbols.go delete mode 100644 vendor/golang.org/x/tools/internal/modindex/types.go delete mode 100644 vendor/golang.org/x/tools/internal/packagesinternal/packages.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/codes.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/decoder.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/doc.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/encoder.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/flags.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/reloc.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/support.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/sync.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go delete mode 100644 vendor/golang.org/x/tools/internal/pkgbits/version.go delete mode 100644 vendor/golang.org/x/tools/internal/stdlib/deps.go delete mode 100644 vendor/golang.org/x/tools/internal/stdlib/import.go delete mode 100644 vendor/golang.org/x/tools/internal/stdlib/manifest.go delete mode 100644 vendor/golang.org/x/tools/internal/stdlib/stdlib.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/common.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/coretype.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/free.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/normalize.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/termlist.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeterm.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/classify_call.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/element.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/qualifier.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/recv.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/toonew.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/types.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/varkind.go delete mode 100644 vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go delete mode 100644 vendor/golang.org/x/tools/internal/versions/features.go delete mode 100644 vendor/golang.org/x/tools/internal/versions/gover.go delete mode 100644 vendor/golang.org/x/tools/internal/versions/types.go delete mode 100644 vendor/golang.org/x/tools/internal/versions/versions.go diff --git a/tqweb/go.mod b/tqweb/go.mod index dcf3aa2..ed39d38 100644 --- a/tqweb/go.mod +++ b/tqweb/go.mod @@ -2,32 +2,15 @@ module github.com/mdm-code/tqweb go 1.24.0 -require github.com/nlepage/go-wasm-http-server/v2 v2.2.1 +require ( + github.com/mdm-code/tq/v2 v2.4.0 + github.com/nlepage/go-wasm-http-server/v2 v2.2.1 +) require ( - github.com/a-h/parse v0.0.0-20250122154542-74294addb73e // indirect - github.com/a-h/templ v0.3.960 // indirect - github.com/andybalholm/brotli v1.1.0 // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/cli/browser v1.3.0 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/hack-pad/safejs v0.1.1 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/natefinch/atomic v1.0.1 // indirect + github.com/mdm-code/scanner v1.2.1 // indirect github.com/nlepage/go-js-promise v1.0.0 // indirect - github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 // indirect - github.com/shurcooL/go-goon v1.0.0 // indirect - github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.42.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.34.0 // indirect - golang.org/x/tools v0.35.0 // indirect -) - -tool ( - github.com/a-h/templ/cmd/templ - github.com/shurcooL/goexec + github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect ) diff --git a/tqweb/go.sum b/tqweb/go.sum index d0b582b..420a222 100644 --- a/tqweb/go.sum +++ b/tqweb/go.sum @@ -1,55 +1,29 @@ -github.com/a-h/parse v0.0.0-20250122154542-74294addb73e h1:HjVbSQHy+dnlS6C3XajZ69NYAb5jbGNfHanvm1+iYlo= -github.com/a-h/parse v0.0.0-20250122154542-74294addb73e/go.mod h1:3mnrkvGpurZ4ZrTDbYU84xhwXW2TjTKShSwjRi2ihfQ= -github.com/a-h/templ v0.3.960 h1:trshEpGa8clF5cdI39iY4ZrZG8Z/QixyzEyUnA7feTM= -github.com/a-h/templ v0.3.960/go.mod h1:oCZcnKRf5jjsGpf2yELzQfodLphd2mwecwG4Crk5HBo= -github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cli/browser v1.3.0 h1:LejqCrpWr+1pRqmEPDGnTZOjsMe7sehifLynZJuqJpo= -github.com/cli/browser v1.3.0/go.mod h1:HH8s+fOAxjhQoBUAsKuPCbqUuxZDhQ2/aD+SzsEfBTk= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hack-pad/safejs v0.1.1 h1:d5qPO0iQ7h2oVtpzGnLExE+Wn9AtytxIfltcS2b9KD8= github.com/hack-pad/safejs v0.1.1/go.mod h1:HdS+bKF1NrE72VoXZeWzxFOVQVUSqZJAG0xNCnb+Tio= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A= -github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= +github.com/mdm-code/scanner v1.2.1 h1:GZ1DYAkhTXK+M4AG65L5fnl5eUt7M6XDAYBVZNH+cBc= +github.com/mdm-code/scanner v1.2.1/go.mod h1:ut94FGYZVrQk7uBkf0vJ0ngKuJbdkTEDnmY07ZI8yb0= +github.com/mdm-code/tq/v2 v2.4.0 h1:vjrQfjRROhzquRSjPCrYGdlXTAqZSOdwS6/62hRsfrA= +github.com/mdm-code/tq/v2 v2.4.0/go.mod h1:VfOFONplmcxx0EXu8rLZYpC8dOJg76EYnwbnXL9R4ZA= github.com/nlepage/go-js-promise v1.0.0 h1:K7OmJ3+0BgWJ2LfXchg2sI6RDr7AW/KWR8182epFwGQ= github.com/nlepage/go-js-promise v1.0.0/go.mod h1:bdOP0wObXu34euibyK39K1hoBCtlgTKXGc56AGflaRo= github.com/nlepage/go-wasm-http-server/v2 v2.2.1 h1:4tzhSb3HKQ3Ykt2TPfqEnmcPfw8n1E8agv4OzAyckr8= github.com/nlepage/go-wasm-http-server/v2 v2.2.1/go.mod h1:r8j7cEOeUqNp+c+C52sNuWaFTvvT/cNqIwBuEtA36HA= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 h1:aSISeOcal5irEhJd1M+IrApc0PdcN7e7Aj4yuEnOrfQ= -github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v1.0.0 h1:BCQPvxGkHHJ4WpBO4m/9FXbITVIsvAm/T66cCcCGI7E= -github.com/shurcooL/go-goon v1.0.0/go.mod h1:2wTHMsGo7qnpmqA8ADYZtP4I1DD94JpXGQ3Dxq2YQ5w= -github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b h1:637/WtTYN6u1wzt0dCpGdBJHIggB8inZei6q60AZwjk= -github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b/go.mod h1:YrZDETqiwAqnKsivK9+sxwhS9rjMR+2NWGy8TATNb6k= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= -golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= -golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= -golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/vendor/github.com/a-h/parse/.gitignore b/vendor/github.com/a-h/parse/.gitignore deleted file mode 100644 index 2d83068..0000000 --- a/vendor/github.com/a-h/parse/.gitignore +++ /dev/null @@ -1 +0,0 @@ -coverage.out diff --git a/vendor/github.com/a-h/parse/LICENSE b/vendor/github.com/a-h/parse/LICENSE deleted file mode 100644 index a866b28..0000000 --- a/vendor/github.com/a-h/parse/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Adrian Hesketh - -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/a-h/parse/README.md b/vendor/github.com/a-h/parse/README.md deleted file mode 100644 index 1293d54..0000000 --- a/vendor/github.com/a-h/parse/README.md +++ /dev/null @@ -1,145 +0,0 @@ -# Parse - -A set of parsing tools for Go inspired by [Sprache](https://github.com/sprache/Sprache/). - -Build up complex parsers from small, simple functions that chomp away at the input. - -## Input - -The input moves along as the parser succeeds. - -```go -input := parse.NewInput("ABCD") -item, ok, err := parse.String("A").Parse(input) -// Input is now at index 1. -item, ok, err := parse.String("B").Parse(input) -// Input is now at index 2. -item, ok, err := parse.String("XYZ").Parse(input) -// Input index didn't change and ok=false. -item, ok, err := parse.String("CD").Parse(input) -// Input is now at index 4. -``` - -## Design - -A parser must match the `parse.Parser` interface, or be created by the use of the `parser.Func` helper. These 3 parsers are equivalent. - -```go -parse.String("<") -``` - -```go -parse.Func(func(in *parse.Input) (item string, ok bool, err error) { - item, _ = in.Peek(1) - ok = item == "<" - return -}) -``` - -```go -type lessThanParser struct{} - -func (ltp lessThanParser) Parse(in *parse.Input) (item string, ok bool, err error) { - item, _ = in.Peek(1) - ok = item == "<" - return -} -``` - -## Functions - -Parser functions provide a way of matching patterns in a given input. They are designed to be able to be composed together to make more complex operations. - -The [examples](./examples) directory contains several examples of composing the primitive functions. - -* `Any` - * Parse any of the provided parse functions, or roll back. -* `AnyRune` - * Parse any rune. -* `AtLeast` - * Parse the provided function at least the number of times specified, or roll back. -* `AtMost` - * Parse the provided function at least once, and at most the number of times specified, or roll back. -* `Letter` - * Parse any letter in the Unicode Letter range or roll back. -* `Many` - * Parse the provided parse function a number of times or roll back. -* `Optional` - * Attempt to parse, but don't roll back if a match isn't found. -* `Or` - * Return the first successful result of the provided parse functions, or roll back. -* `Rune` - * Parse the specified rune (character) or fallback. -* `RuneIn` - * Parse a rune from the input stream if it's in the specified string, or roll back. -* `RuneInRanges` - * Parse a rune from the input stream if it's in the specified Unicode ranges, or roll back. -* `RuneNotIn` - * Parse a rune from the input stream if it's not in the specified string, or roll back. -* `RuneWhere` - * Parse a rune from the input stream if the predicate function passed in succeeds, or roll back. -* `String` - * Parse a string from the input stream if it exactly matches the provided string, or roll back. -* `StringUntil` - * Parse a string from the input stream until the specified _until_ parser is matched. -* `Then` - * Return the results of the first and second parser passed through the combiner function which converts the two results into a single output (a map / reduce operation), or roll back if either doesn't match. -* `Times` - * Parse using the specified function a set number of times or roll back. -* `Until` - * Parse from the input stream until the specified _until_ parser is matched. -* `ZeroToNine` - * Parse a rune from the input stream if it's within the set of 1234567890. - -## More complex parsers - -More complex parsers will need to store the start position, and rollback by using the input's `Seek` function if the current parser does not match the input. - -```go -func ExampleParser() { - type GotoStatement struct { - Line int64 - } - gotoParser := parse.Func(func(in *parse.Input) (item GotoStatement, ok bool, err error) { - start := in.Index() - - if _, ok, err = parse.String("GOTO ").Parse(in); err != nil || !ok { - // Rollback, and return. - in.Seek(start) - return - } - - // Read until the next newline or the EOF. - until := parse.Any(parse.NewLine, parse.EOF[string]()) - var lineNumber string - if lineNumber, ok, err = parse.StringUntil(until).Parse(in); err != nil || !ok { - err = parse.Error("Syntax error: GOTO is missing line number", in.Position()) - return - } - // We must have a valid line number now, or there is a syntax error. - item.Line, err = strconv.ParseInt(lineNumber, 10, 64) - if err != nil { - return item, false, parse.Error("Syntax error: GOTO has invalid line number", in.Position()) - } - - // Chomp the newline we read up to. - until.Parse(in) - - return item, true, nil - }) - - inputs := []string{ - "GOTO 10", - "GOTO abc", - "FOR i = 0", - } - for _, input := range inputs { - stmt, ok, err := gotoParser.Parse(parse.NewInput(input)) - fmt.Printf("%+v, ok=%v, err=%v\n", stmt, ok, err) - } - // Output: - // {Line:10}, ok=true, err=<nil> - // {Line:0}, ok=false, err=Syntax error: GOTO has invalid line number: line 1, col 8 - // {Line:0}, ok=false, err=<nil> -} -``` diff --git a/vendor/github.com/a-h/parse/all.go b/vendor/github.com/a-h/parse/all.go deleted file mode 100644 index 362db8c..0000000 --- a/vendor/github.com/a-h/parse/all.go +++ /dev/null @@ -1,26 +0,0 @@ -package parse - -type allParser[T any] struct { - Parsers []Parser[T] -} - -func (p allParser[T]) Parse(in *Input) (match []T, ok bool, err error) { - start := in.Index() - for _, parser := range p.Parsers { - var m T - m, ok, err = parser.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match = append(match, m) - } - return -} - -// All parses all of the parsers in the list in sequence and combines the result. -func All[T any](parsers ...Parser[T]) Parser[[]T] { - return allParser[T]{ - Parsers: parsers, - } -} diff --git a/vendor/github.com/a-h/parse/any.go b/vendor/github.com/a-h/parse/any.go deleted file mode 100644 index 1469df8..0000000 --- a/vendor/github.com/a-h/parse/any.go +++ /dev/null @@ -1,22 +0,0 @@ -package parse - -type anyParser[T any] struct { - Parsers []Parser[T] -} - -func (p anyParser[T]) Parse(in *Input) (match T, ok bool, err error) { - for _, parser := range p.Parsers { - match, ok, err = parser.Parse(in) - if err != nil || ok { - return - } - } - return -} - -// Any parses any one of the parsers in the list. -func Any[T any](parsers ...Parser[T]) Parser[T] { - return anyParser[T]{ - Parsers: parsers, - } -} diff --git a/vendor/github.com/a-h/parse/convert.go b/vendor/github.com/a-h/parse/convert.go deleted file mode 100644 index 05e9438..0000000 --- a/vendor/github.com/a-h/parse/convert.go +++ /dev/null @@ -1,14 +0,0 @@ -package parse - -// Convert a parser's output type using the given conversion function. -func Convert[A, B any](parser Parser[A], converter func(a A) (B, error)) Parser[B] { - return Func(func(in *Input) (match B, ok bool, err error) { - var m A - m, ok, err = parser.Parse(in) - if err != nil || !ok { - return - } - match, err = converter(m) - return - }) -} diff --git a/vendor/github.com/a-h/parse/digits.go b/vendor/github.com/a-h/parse/digits.go deleted file mode 100644 index d4b68c0..0000000 --- a/vendor/github.com/a-h/parse/digits.go +++ /dev/null @@ -1,4 +0,0 @@ -package parse - -// ZeroToNine matches a single rune from 0123456789. -var ZeroToNine Parser[string] = RuneIn("0123456789") diff --git a/vendor/github.com/a-h/parse/eof.go b/vendor/github.com/a-h/parse/eof.go deleted file mode 100644 index 6751e1d..0000000 --- a/vendor/github.com/a-h/parse/eof.go +++ /dev/null @@ -1,15 +0,0 @@ -package parse - -type eofParser[T any] struct { -} - -func (p eofParser[T]) Parse(in *Input) (match T, ok bool, err error) { - _, canAdvance := in.Peek(1) - ok = !canAdvance - return -} - -// EOF matches the end of the input. -func EOF[T any]() Parser[T] { - return eofParser[T]{} -} diff --git a/vendor/github.com/a-h/parse/error.go b/vendor/github.com/a-h/parse/error.go deleted file mode 100644 index cf82c87..0000000 --- a/vendor/github.com/a-h/parse/error.go +++ /dev/null @@ -1,21 +0,0 @@ -package parse - -import ( - "fmt" -) - -func Error(msg string, pos Position) ParseError { - return ParseError{ - Msg: msg, - Pos: pos, - } -} - -type ParseError struct { - Msg string - Pos Position -} - -func (e ParseError) Error() string { - return fmt.Sprintf("%s: %v", e.Msg, e.Pos) -} diff --git a/vendor/github.com/a-h/parse/input.go b/vendor/github.com/a-h/parse/input.go deleted file mode 100644 index 1404722..0000000 --- a/vendor/github.com/a-h/parse/input.go +++ /dev/null @@ -1,79 +0,0 @@ -package parse - -import ( - "sort" -) - -// NewInput creates an input from the given string. -func NewInput(s string) *Input { - ip := &Input{ - s: s, - charIndex: 0, - } - for i, r := range s { - if r == '\n' { - ip.newLines = append(ip.newLines, i) - } - } - return ip -} - -// InputString is an input used by parsers. It stores the current location -// and character positions. -type Input struct { - s string - charIndex int - // character positions of new line characters. - newLines []int -} - -func (in *Input) Peek(n int) (s string, ok bool) { - if in.charIndex+n > len(in.s) { - return - } - if n < 0 { - return in.s[in.charIndex:], true - } - return in.s[in.charIndex : in.charIndex+n], true -} - -func (in *Input) Take(n int) (s string, ok bool) { - if in.charIndex+n > len(in.s) { - return - } - from := in.charIndex - in.charIndex += n - return in.s[from:in.charIndex], true -} - -// Position returns the zero-bound index, line and column number of the current position within the stream. -func (in *Input) Position() Position { - return in.PositionAt(in.charIndex) -} - -// Position returns the zero-bound index, line and column number of the current position within the stream. -func (in *Input) PositionAt(index int) Position { - lineIndex := sort.Search(len(in.newLines), func(lineIndex int) bool { - return index <= in.newLines[lineIndex] - }) - var previousLineEnd int - if lineIndex > 0 { - previousLineEnd = in.newLines[lineIndex-1] + 1 - } - colIndex := index - previousLineEnd - return Position{Index: index, Line: lineIndex, Col: colIndex} -} - -// Index returns the current character index of the parser input. -func (in *Input) Index() int { - return in.charIndex -} - -// Seek to a position in the string. -func (in *Input) Seek(index int) (ok bool) { - if index < 0 || index > len(in.s) { - return - } - in.charIndex = index - return true -} diff --git a/vendor/github.com/a-h/parse/optional.go b/vendor/github.com/a-h/parse/optional.go deleted file mode 100644 index 5c28e41..0000000 --- a/vendor/github.com/a-h/parse/optional.go +++ /dev/null @@ -1,26 +0,0 @@ -package parse - -type optionalParser[T any] struct { - Parser Parser[T] - Insensitive bool -} - -func (p optionalParser[T]) Parse(in *Input) (match Match[T], ok bool, err error) { - match.Value, match.OK, err = p.Parser.Parse(in) - if err != nil { - return - } - return match, true, nil -} - -type Match[T any] struct { - Value T - OK bool -} - -// Optional converts the given parser into an optional parser. -func Optional[T any](parser Parser[T]) Parser[Match[T]] { - return optionalParser[T]{ - Parser: parser, - } -} diff --git a/vendor/github.com/a-h/parse/or.go b/vendor/github.com/a-h/parse/or.go deleted file mode 100644 index 8a15e54..0000000 --- a/vendor/github.com/a-h/parse/or.go +++ /dev/null @@ -1,37 +0,0 @@ -package parse - -type orParser[A any, B any] struct { - A Parser[A] - B Parser[B] -} - -func (p orParser[A, B]) Parse(in *Input) (match Tuple2[Match[A], Match[B]], ok bool, err error) { - match.A.Value, match.A.OK, err = p.A.Parse(in) - if err != nil { - return - } - if match.A.OK { - ok = true - return - } - - match.B.Value, match.B.OK, err = p.B.Parse(in) - if err != nil { - return - } - if match.B.OK { - ok = true - return - } - - return -} - -// Or returns a success if either a or b can be parsed. -// If both a and b match, a takes precedence. -func Or[A any, B any](a Parser[A], b Parser[B]) Parser[Tuple2[Match[A], Match[B]]] { - return orParser[A, B]{ - A: a, - B: b, - } -} diff --git a/vendor/github.com/a-h/parse/regexp.go b/vendor/github.com/a-h/parse/regexp.go deleted file mode 100644 index 66c49b4..0000000 --- a/vendor/github.com/a-h/parse/regexp.go +++ /dev/null @@ -1,46 +0,0 @@ -package parse - -import ( - "regexp" -) - -type regexpParser struct { - Expression *regexp.Regexp -} - -func (p regexpParser) Parse(in *Input) (match string, ok bool, err error) { - remainder, ok := in.Peek(-1) - if !ok { - return - } - startAndEndIndex := p.Expression.FindStringIndex(remainder) - ok = startAndEndIndex != nil && startAndEndIndex[0] == 0 - if !ok { - return - } - match = remainder[startAndEndIndex[0]:startAndEndIndex[1]] - in.Take(len(match)) - return -} - -// Regexp creates a parser that parses from the input's current position, or fails. -func Regexp(exp string) (p Parser[string], err error) { - r, err := regexp.Compile(exp) - if err != nil { - return - } - p = regexpParser{ - Expression: r, - } - return -} - -// MustRegexp creates a parse that parses from the input's current position. -// Passing in a regular expression that doesn't compile will result in a panic. -func MustRegexp(exp string) (p Parser[string]) { - p, err := Regexp(exp) - if err != nil { - panic(err) - } - return -} diff --git a/vendor/github.com/a-h/parse/rune.go b/vendor/github.com/a-h/parse/rune.go deleted file mode 100644 index fd36440..0000000 --- a/vendor/github.com/a-h/parse/rune.go +++ /dev/null @@ -1,58 +0,0 @@ -package parse - -import ( - "strings" - "unicode" -) - -// Rune matches a single rune. -func Rune(r rune) Parser[string] { - return stringParser{ - Match: string(r), - } -} - -type runeWhereParser struct { - F func(r rune) bool -} - -func (p runeWhereParser) Parse(in *Input) (match string, ok bool, err error) { - match, ok = in.Peek(1) - if !ok { - return - } - ok = p.F(rune(match[0])) - if !ok { - return - } - in.Take(1) - return -} - -// RuneWhere matches a single rune using the given predicate function. -func RuneWhere(predicate func(r rune) bool) Parser[string] { - return runeWhereParser{ - F: predicate, - } -} - -// RuneIn matches a single rune when the rune is in the string s. -func RuneIn(s string) Parser[string] { - return RuneWhere(func(r rune) bool { return strings.Contains(s, string(r)) }) -} - -// RuneNotIn matches a single rune when the rune is not in the string s. -func RuneNotIn(s string) Parser[string] { - return RuneWhere(func(r rune) bool { return !strings.Contains(s, string(r)) }) -} - -// RuneInRanges matches a single rune when the rune is withig one of the given Unicode ranges. -func RuneInRanges(ranges ...*unicode.RangeTable) Parser[string] { - return RuneWhere(func(r rune) bool { return unicode.IsOneOf(ranges, r) }) -} - -// AnyRune matches any single rune. -var AnyRune = RuneWhere(func(r rune) bool { return true }) - -// Letter returns a parser which accepts a rune within the Letter Unicode range. -var Letter = RuneInRanges(unicode.Letter) diff --git a/vendor/github.com/a-h/parse/sequenceof2.go b/vendor/github.com/a-h/parse/sequenceof2.go deleted file mode 100644 index 8f31580..0000000 --- a/vendor/github.com/a-h/parse/sequenceof2.go +++ /dev/null @@ -1,27 +0,0 @@ -package parse - -type sequenceOf2Parser[A, B any] struct { - A Parser[A] - B Parser[B] -} - -func (p sequenceOf2Parser[A, B]) Parse(in *Input) (match Tuple2[A, B], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf2[A, B any](a Parser[A], b Parser[B]) Parser[Tuple2[A, B]] { - return sequenceOf2Parser[A, B]{ - A: a, - B: b, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof3.go b/vendor/github.com/a-h/parse/sequenceof3.go deleted file mode 100644 index 3c298a6..0000000 --- a/vendor/github.com/a-h/parse/sequenceof3.go +++ /dev/null @@ -1,35 +0,0 @@ -package parse - -type sequenceOf3Parser[A, B, C any] struct { - A Parser[A] - B Parser[B] - C Parser[C] -} - -func (p sequenceOf3Parser[A, B, C]) Parse(in *Input) (match Tuple3[A, B, C], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf3[A, B, C any](a Parser[A], b Parser[B], c Parser[C]) Parser[Tuple3[A, B, C]] { - return sequenceOf3Parser[A, B, C]{ - A: a, - B: b, - C: c, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof4.go b/vendor/github.com/a-h/parse/sequenceof4.go deleted file mode 100644 index beeb04c..0000000 --- a/vendor/github.com/a-h/parse/sequenceof4.go +++ /dev/null @@ -1,41 +0,0 @@ -package parse - -type sequenceOf4Parser[A, B, C, D any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] -} - -func (p sequenceOf4Parser[A, B, C, D]) Parse(in *Input) (match Tuple4[A, B, C, D], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf4[A, B, C, D any](a Parser[A], b Parser[B], c Parser[C], d Parser[D]) Parser[Tuple4[A, B, C, D]] { - return sequenceOf4Parser[A, B, C, D]{ - A: a, - B: b, - C: c, - D: d, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof5.go b/vendor/github.com/a-h/parse/sequenceof5.go deleted file mode 100644 index c4eb5e9..0000000 --- a/vendor/github.com/a-h/parse/sequenceof5.go +++ /dev/null @@ -1,48 +0,0 @@ -package parse - -type sequenceOf5Parser[A, B, C, D, E any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] - E Parser[E] -} - -func (p sequenceOf5Parser[A, B, C, D, E]) Parse(in *Input) (match Tuple5[A, B, C, D, E], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.E, ok, err = p.E.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf5[A, B, C, D, E any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E]) Parser[Tuple5[A, B, C, D, E]] { - return sequenceOf5Parser[A, B, C, D, E]{ - A: a, - B: b, - C: c, - D: d, - E: e, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof6.go b/vendor/github.com/a-h/parse/sequenceof6.go deleted file mode 100644 index 6aca462..0000000 --- a/vendor/github.com/a-h/parse/sequenceof6.go +++ /dev/null @@ -1,55 +0,0 @@ -package parse - -type sequenceOf6Parser[A, B, C, D, E, F any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] - E Parser[E] - F Parser[F] -} - -func (p sequenceOf6Parser[A, B, C, D, E, F]) Parse(in *Input) (match Tuple6[A, B, C, D, E, F], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.E, ok, err = p.E.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.F, ok, err = p.F.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf6[A, B, C, D, E, F any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F]) Parser[Tuple6[A, B, C, D, E, F]] { - return sequenceOf6Parser[A, B, C, D, E, F]{ - A: a, - B: b, - C: c, - D: d, - E: e, - F: f, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof7.go b/vendor/github.com/a-h/parse/sequenceof7.go deleted file mode 100644 index 29cc9c4..0000000 --- a/vendor/github.com/a-h/parse/sequenceof7.go +++ /dev/null @@ -1,62 +0,0 @@ -package parse - -type sequenceOf7Parser[A, B, C, D, E, F, G any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] - E Parser[E] - F Parser[F] - G Parser[G] -} - -func (p sequenceOf7Parser[A, B, C, D, E, F, G]) Parse(in *Input) (match Tuple7[A, B, C, D, E, F, G], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.E, ok, err = p.E.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.F, ok, err = p.F.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.G, ok, err = p.G.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf7[A, B, C, D, E, F, G any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G]) Parser[Tuple7[A, B, C, D, E, F, G]] { - return sequenceOf7Parser[A, B, C, D, E, F, G]{ - A: a, - B: b, - C: c, - D: d, - E: e, - F: f, - G: g, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof8.go b/vendor/github.com/a-h/parse/sequenceof8.go deleted file mode 100644 index 80e5fc2..0000000 --- a/vendor/github.com/a-h/parse/sequenceof8.go +++ /dev/null @@ -1,69 +0,0 @@ -package parse - -type sequenceOf8Parser[A, B, C, D, E, F, G, H any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] - E Parser[E] - F Parser[F] - G Parser[G] - H Parser[H] -} - -func (p sequenceOf8Parser[A, B, C, D, E, F, G, H]) Parse(in *Input) (match Tuple8[A, B, C, D, E, F, G, H], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.E, ok, err = p.E.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.F, ok, err = p.F.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.G, ok, err = p.G.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.H, ok, err = p.H.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf8[A, B, C, D, E, F, G, H any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G], h Parser[H]) Parser[Tuple8[A, B, C, D, E, F, G, H]] { - return sequenceOf8Parser[A, B, C, D, E, F, G, H]{ - A: a, - B: b, - C: c, - D: d, - E: e, - F: f, - G: g, - H: h, - } -} diff --git a/vendor/github.com/a-h/parse/sequenceof9.go b/vendor/github.com/a-h/parse/sequenceof9.go deleted file mode 100644 index 6edcab1..0000000 --- a/vendor/github.com/a-h/parse/sequenceof9.go +++ /dev/null @@ -1,76 +0,0 @@ -package parse - -type sequenceOf9Parser[A, B, C, D, E, F, G, H, I any] struct { - A Parser[A] - B Parser[B] - C Parser[C] - D Parser[D] - E Parser[E] - F Parser[F] - G Parser[G] - H Parser[H] - I Parser[I] -} - -func (p sequenceOf9Parser[A, B, C, D, E, F, G, H, I]) Parse(in *Input) (match Tuple9[A, B, C, D, E, F, G, H, I], ok bool, err error) { - start := in.Index() - match.A, ok, err = p.A.Parse(in) - if err != nil || !ok { - return - } - match.B, ok, err = p.B.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.C, ok, err = p.C.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.D, ok, err = p.D.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.E, ok, err = p.E.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.F, ok, err = p.F.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.G, ok, err = p.G.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.H, ok, err = p.H.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - match.I, ok, err = p.I.Parse(in) - if err != nil || !ok { - in.Seek(start) - return - } - return -} - -func SequenceOf9[A, B, C, D, E, F, G, H, I any](a Parser[A], b Parser[B], c Parser[C], d Parser[D], e Parser[E], f Parser[F], g Parser[G], h Parser[H], i Parser[I]) Parser[Tuple9[A, B, C, D, E, F, G, H, I]] { - return sequenceOf9Parser[A, B, C, D, E, F, G, H, I]{ - A: a, - B: b, - C: c, - D: d, - E: e, - F: f, - G: g, - H: h, - I: i, - } -} diff --git a/vendor/github.com/a-h/parse/string.go b/vendor/github.com/a-h/parse/string.go deleted file mode 100644 index e194b67..0000000 --- a/vendor/github.com/a-h/parse/string.go +++ /dev/null @@ -1,40 +0,0 @@ -package parse - -import "strings" - -type stringParser struct { - Match string - Insensitive bool -} - -func (p stringParser) Parse(in *Input) (match string, ok bool, err error) { - match, ok = in.Peek(len(p.Match)) - if !ok { - return - } - if p.Insensitive { - ok = strings.EqualFold(p.Match, match) - } else { - ok = p.Match == match - } - if !ok { - return "", false, nil - } - in.Take(len(p.Match)) - return -} - -// String matches a given string constant. -func String(s string) Parser[string] { - return stringParser{ - Match: s, - } -} - -// StringInsensitive matches a given string constant using Unicode case folding. -func StringInsensitive(s string) Parser[string] { - return stringParser{ - Match: s, - Insensitive: true, - } -} diff --git a/vendor/github.com/a-h/parse/stringfrom.go b/vendor/github.com/a-h/parse/stringfrom.go deleted file mode 100644 index 8984262..0000000 --- a/vendor/github.com/a-h/parse/stringfrom.go +++ /dev/null @@ -1,30 +0,0 @@ -package parse - -type stringFromParser[T any] struct { - Parsers []Parser[T] -} - -func (p stringFromParser[T]) Parse(in *Input) (match string, ok bool, err error) { - start := in.Index() - for _, parser := range p.Parsers { - _, ok, err = parser.Parse(in) - if err != nil { - return - } - if !ok { - in.Seek(start) - return - } - } - end := in.Index() - in.Seek(start) - match, ok = in.Take(end - start) - return -} - -// StringFrom returns the string range captured by the given parsers. -func StringFrom[T any](parsers ...Parser[T]) Parser[string] { - return stringFromParser[T]{ - Parsers: parsers, - } -} diff --git a/vendor/github.com/a-h/parse/stringuntil.go b/vendor/github.com/a-h/parse/stringuntil.go deleted file mode 100644 index b2f77cb..0000000 --- a/vendor/github.com/a-h/parse/stringuntil.go +++ /dev/null @@ -1,49 +0,0 @@ -package parse - -type stringUntilParser[T any] struct { - Delimiter Parser[T] - AllowEOF bool -} - -func (p stringUntilParser[T]) Parse(in *Input) (match string, ok bool, err error) { - start := in.Index() - for { - beforeDelimiter := in.Index() - _, ok, err = p.Delimiter.Parse(in) - if err != nil { - in.Seek(start) - return - } - if ok { - in.Seek(beforeDelimiter) - break - } - _, chompOK := in.Take(1) - if !chompOK { - if p.AllowEOF { - break - } - in.Seek(start) - return "", false, nil - } - } - end := in.Index() - in.Seek(start) - match, ok = in.Take(end - start) - return -} - -// StringUntil matches until the delimiter is reached. -func StringUntil[T any](delimiter Parser[T]) Parser[string] { - return stringUntilParser[T]{ - Delimiter: delimiter, - } -} - -// StringUntilEOF matches until the delimiter or the end of the file is reached. -func StringUntilEOF[T any](delimiter Parser[T]) Parser[string] { - return stringUntilParser[T]{ - Delimiter: delimiter, - AllowEOF: true, - } -} diff --git a/vendor/github.com/a-h/parse/then.go b/vendor/github.com/a-h/parse/then.go deleted file mode 100644 index 8b04228..0000000 --- a/vendor/github.com/a-h/parse/then.go +++ /dev/null @@ -1,9 +0,0 @@ -package parse - -// Then matches a sequence of two parsers. For multiples of the same type, use Times, Repeat, AtLeast, AtMost, ZeroOrMore, OneOrMore. -func Then[A any, B any](a Parser[A], b Parser[B]) Parser[Tuple2[A, B]] { - return sequenceOf2Parser[A, B]{ - A: a, - B: b, - } -} diff --git a/vendor/github.com/a-h/parse/times.go b/vendor/github.com/a-h/parse/times.go deleted file mode 100644 index 2cda33f..0000000 --- a/vendor/github.com/a-h/parse/times.go +++ /dev/null @@ -1,83 +0,0 @@ -package parse - -type timesParser[T any] struct { - P Parser[T] - Min int - Max func(i int) bool -} - -func (p timesParser[T]) Parse(in *Input) (match []T, ok bool, err error) { - start := in.Index() - for i := 0; p.Max(i); i++ { - var m T - m, ok, err = p.P.Parse(in) - if err != nil { - return match, false, err - } - if !ok { - break - } - match = append(match, m) - } - ok = len(match) >= p.Min && p.Max(len(match)-1) - if !ok { - in.Seek(start) - return match, false, nil - } - return match, true, nil -} - -// Times matches the given parser n times. -func Times[T any](n int, p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: n, - Max: func(i int) bool { return i < n }, - } -} - -// Repeat matches the given parser between min and max times. -func Repeat[T any](min, max int, p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: min, - Max: func(i int) bool { return i < max }, - } -} - -// AtLeast matches the given parser at least min times. -func AtLeast[T any](min int, p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: min, - Max: func(i int) bool { return true }, - } -} - -// AtMost matches the given parser at most max times. -// It is equivalent to ZeroOrMore. -func AtMost[T any](max int, p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: 0, - Max: func(i int) bool { return i < max }, - } -} - -// ZeroOrMore matches the given parser zero or more times. -func ZeroOrMore[T any](p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: 0, - Max: func(i int) bool { return true }, - } -} - -// OneOrMore matches the given parser at least once. -func OneOrMore[T any](p Parser[T]) Parser[[]T] { - return timesParser[T]{ - P: p, - Min: 1, - Max: func(i int) bool { return true }, - } -} diff --git a/vendor/github.com/a-h/parse/tuples.go b/vendor/github.com/a-h/parse/tuples.go deleted file mode 100644 index cb4e39d..0000000 --- a/vendor/github.com/a-h/parse/tuples.go +++ /dev/null @@ -1,69 +0,0 @@ -package parse - -type Tuple2[A, B any] struct { - A A - B B -} - -type Tuple3[A, B, C any] struct { - A A - B B - C C -} - -type Tuple4[A, B, C, D any] struct { - A A - B B - C C - D D -} - -type Tuple5[A, B, C, D, E any] struct { - A A - B B - C C - D D - E E -} - -type Tuple6[A, B, C, D, E, F any] struct { - A A - B B - C C - D D - E E - F F -} - -type Tuple7[A, B, C, D, E, F, G any] struct { - A A - B B - C C - D D - E E - F F - G G -} - -type Tuple8[A, B, C, D, E, F, G, H any] struct { - A A - B B - C C - D D - E E - F F - G G - H H -} - -type Tuple9[A, B, C, D, E, F, G, H, I any] struct { - A A - B B - C C - D D - E E - F F - G G - H H - I I -} diff --git a/vendor/github.com/a-h/parse/types.go b/vendor/github.com/a-h/parse/types.go deleted file mode 100644 index b500fdc..0000000 --- a/vendor/github.com/a-h/parse/types.go +++ /dev/null @@ -1,33 +0,0 @@ -package parse - -import "fmt" - -type Position struct { - Index, Line, Col int -} - -func (pos Position) String() string { - // The line number is 0-based, but text editors are usually 1-based. - // So the number is incremented by 1 for display. - return fmt.Sprintf("line %d, col %d", pos.Line+1, pos.Col) -} - -type pf[T any] struct { - f func(in *Input) (item T, ok bool, err error) -} - -func (p pf[T]) Parse(in *Input) (item T, ok bool, err error) { - return p.f(in) -} - -// Func creates a parser from an input function. -func Func[T any](f func(in *Input) (item T, ok bool, err error)) Parser[T] { - return pf[T]{ - f: f, - } -} - -// Parser is implemented by all parsers. -type Parser[T any] interface { - Parse(in *Input) (item T, ok bool, err error) -} diff --git a/vendor/github.com/a-h/parse/until.go b/vendor/github.com/a-h/parse/until.go deleted file mode 100644 index 2d91a5e..0000000 --- a/vendor/github.com/a-h/parse/until.go +++ /dev/null @@ -1,68 +0,0 @@ -package parse - -type untilParser[T, D any] struct { - Parser Parser[T] - Delimiter Parser[D] - AllowEOF bool -} - -func (p untilParser[T, D]) Parse(in *Input) (match []T, ok bool, err error) { - start := in.Index() - if _, ok = in.Peek(1); !ok && p.AllowEOF { - ok = true - return - } - var m T - m, ok, err = p.Parser.Parse(in) - if err != nil { - return - } - if !ok { - return - } - match = append(match, m) - for { - beforeDelimiter := in.Index() - _, ok, err = p.Delimiter.Parse(in) - if err != nil { - in.Seek(start) - return - } - if ok { - in.Seek(beforeDelimiter) - return - } - if _, ok = in.Peek(1); !ok && p.AllowEOF { - ok = true - return - } - var m T - m, ok, err = p.Parser.Parse(in) - if err != nil { - in.Seek(start) - return - } - if !ok { - in.Seek(start) - return - } - match = append(match, m) - } -} - -// Until matches until the delimiter is reached. -func Until[T, D any](parser Parser[T], delimiter Parser[D]) Parser[[]T] { - return untilParser[T, D]{ - Parser: parser, - Delimiter: delimiter, - } -} - -// UntilEOF matches until the delimiter or the end of the file is reached. -func UntilEOF[T, D any](parser Parser[T], delimiter Parser[D]) Parser[[]T] { - return untilParser[T, D]{ - Parser: parser, - Delimiter: delimiter, - AllowEOF: true, - } -} diff --git a/vendor/github.com/a-h/parse/whitespace.go b/vendor/github.com/a-h/parse/whitespace.go deleted file mode 100644 index 5f92f4f..0000000 --- a/vendor/github.com/a-h/parse/whitespace.go +++ /dev/null @@ -1,29 +0,0 @@ -package parse - -import ( - "unicode" -) - -// Whitespace parses whitespace. -var Whitespace Parser[string] = StringFrom(OneOrMore(RuneInRanges(unicode.White_Space))) - -// OptionalWhitespace parses optional whitespace. -var OptionalWhitespace = Func(func(in *Input) (output string, ok bool, err error) { - output, ok, err = Whitespace.Parse(in) - if err != nil { - return - } - return output, true, nil -}) - -// CR is a carriage return. -var CR = Rune('\r') - -// CR parses a line feed, used by Unix systems as the newline. -var LF = Rune('\n') - -// CRLF parses a carriage returned, followed by a line feed, used by Windows systems as the newline. -var CRLF = String("\r\n") - -// NewLine matches either a Windows or Unix line break character. -var NewLine = Any(CRLF, LF) diff --git a/vendor/github.com/a-h/templ/.dockerignore b/vendor/github.com/a-h/templ/.dockerignore deleted file mode 100644 index 17896fe..0000000 --- a/vendor/github.com/a-h/templ/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -.git -Dockerfile -.dockerignore diff --git a/vendor/github.com/a-h/templ/.envrc b/vendor/github.com/a-h/templ/.envrc deleted file mode 100644 index 8392d15..0000000 --- a/vendor/github.com/a-h/templ/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake \ No newline at end of file diff --git a/vendor/github.com/a-h/templ/.gitignore b/vendor/github.com/a-h/templ/.gitignore deleted file mode 100644 index 8318e77..0000000 --- a/vendor/github.com/a-h/templ/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# Output. -cmd/templ/templ - -# Logs. -cmd/templ/lspcmd/*log.txt - -# Go code coverage. -coverage.out -coverage - -# Mac filesystem jank. -.DS_Store - -# Docusaurus. -docs/build/ -docs/resources/_gen/ -node_modules/ -dist/ - -# Nix artifacts. -result - -# Editors -## nvim -.null-ls* -# vscode -.vscode/ - -# Go workspace. -go.work - -# direnv -.direnv - -# templ txt files. -*_templ.txt diff --git a/vendor/github.com/a-h/templ/.goreleaser.yaml b/vendor/github.com/a-h/templ/.goreleaser.yaml deleted file mode 100644 index 456187c..0000000 --- a/vendor/github.com/a-h/templ/.goreleaser.yaml +++ /dev/null @@ -1,72 +0,0 @@ -builds: - - env: - - CGO_ENABLED=0 - dir: cmd/templ - mod_timestamp: '{{ .CommitTimestamp }}' - flags: - - -trimpath - ldflags: - - -s -w - goos: - - linux - - windows - - darwin - -checksum: - name_template: 'checksums.txt' - -signs: - - id: checksums - cmd: cosign - stdin: '{{ .Env.COSIGN_PASSWORD }}' - output: true - artifacts: checksum - args: - - sign-blob - - --yes - - --key - - env://COSIGN_PRIVATE_KEY - - '--output-certificate=${certificate}' - - '--output-signature=${signature}' - - '${artifact}' - -archives: - - format: tar.gz - name_template: >- - {{ .ProjectName }}_ - {{- title .Os }}_ - {{- if eq .Arch "amd64" }}x86_64 - {{- else if eq .Arch "386" }}i386 - {{- else }}{{ .Arch }}{{ end }} - {{- if .Arm }}v{{ .Arm }}{{ end }} - -kos: - - repository: ghcr.io/a-h/templ - platforms: - - linux/amd64 - - linux/arm64 - tags: - - latest - - '{{.Tag}}' - bare: true - -docker_signs: - - cmd: cosign - artifacts: all - output: true - args: - - sign - - --yes - - --key - - env://COSIGN_PRIVATE_KEY - - '${artifact}' - -snapshot: - name_template: "{{ incpatch .Version }}-next" - -changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' diff --git a/vendor/github.com/a-h/templ/.ignore b/vendor/github.com/a-h/templ/.ignore deleted file mode 100644 index 9377535..0000000 --- a/vendor/github.com/a-h/templ/.ignore +++ /dev/null @@ -1,9 +0,0 @@ -*_templ.go -examples/integration-ct/static/index.js -examples/counter/assets/css/bulma.* -examples/counter/assets/js/htmx.min.js -examples/counter-basic/assets/css/bulma.* -examples/typescript/assets/index.js -package-lock.json -go.sum -docs/static/llms.md diff --git a/vendor/github.com/a-h/templ/.version b/vendor/github.com/a-h/templ/.version deleted file mode 100644 index a127cf0..0000000 --- a/vendor/github.com/a-h/templ/.version +++ /dev/null @@ -1 +0,0 @@ -0.3.960 \ No newline at end of file diff --git a/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md b/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md deleted file mode 100644 index 08340d3..0000000 --- a/vendor/github.com/a-h/templ/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,128 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, religion, or sexual identity -and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the - overall community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or - advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email - address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -adrianhesketh@hushail.com. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series -of actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or -permanent ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within -the community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/vendor/github.com/a-h/templ/CONTRIBUTING.md b/vendor/github.com/a-h/templ/CONTRIBUTING.md deleted file mode 100644 index 2726471..0000000 --- a/vendor/github.com/a-h/templ/CONTRIBUTING.md +++ /dev/null @@ -1,247 +0,0 @@ -# Contributing to templ - -## Vision - -Enable Go developers to build strongly typed, component-based HTML user interfaces with first-class developer tooling, and a short learning curve. - -## Come up with a design and share it - -Before starting work on any major pull requests or code changes, start a discussion at https://github.com/a-h/templ/discussions or raise an issue. - -We don't want you to spend time on a PR or feature that ultimately doesn't get merged because it doesn't fit with the project goals, or the design doesn't work for some reason. - -For issues, it really helps if you provide a reproduction repo, or can create a failing unit test to describe the behaviour. - -In designs, we need to consider: - -* Backwards compatibility - Not changing the public API between releases, introducing gradual deprecation - don't break people's code. -* Correctness over time - How can we reduce the risk of defects both now, and in future releases? -* Threat model - How could each change be used to inject vulnerabilities into web pages? -* Go version - We target the oldest supported version of Go as per https://go.dev/doc/devel/release -* Automatic migration - If we need to force through a change. -* Compile time vs runtime errors - Prefer compile time. -* Documentation - New features are only useful if people can understand the new feature, what would the documentation look like? -* Examples - How will we demonstrate the feature? - -## Project structure - -templ is structured into a few areas: - -### Parser `./parser` - -The parser directory currently contains both v1 and v2 parsers. - -The v1 parser is not maintained, it's only used to migrate v1 code over to the v2 syntax. - -The parser is responsible for parsing templ files into an object model. The types that make up the object model are in `types.go`. Automatic formatting of the types is tested in `types_test.go`. - -A templ file is parsed into the `TemplateFile` struct object model. - -```go -type TemplateFile struct { - // Header contains comments or whitespace at the top of the file. - Header []GoExpression - // Package expression. - Package Package - // Nodes in the file. - Nodes []TemplateFileNode -} -``` - -Parsers are individually tested using two types of unit test. - -One test covers the successful parsing of text into an object. For example, the `HTMLCommentParser` test checks for successful patterns. - -```go -func TestHTMLCommentParser(t *testing.T) { - var tests = []struct { - name string - input string - expected HTMLComment - }{ - { - name: "comment - single line", - input: `<!-- single line comment -->`, - expected: HTMLComment{ - Contents: " single line comment ", - }, - }, - { - name: "comment - no whitespace", - input: `<!--no whitespace between sequence open and close-->`, - expected: HTMLComment{ - Contents: "no whitespace between sequence open and close", - }, - }, - { - name: "comment - multiline", - input: `<!-- multiline - comment - -->`, - expected: HTMLComment{ - Contents: ` multiline - comment - `, - }, - }, - { - name: "comment - with tag", - input: `<!-- <p class="test">tag</p> -->`, - expected: HTMLComment{ - Contents: ` <p class="test">tag</p> `, - }, - }, - { - name: "comments can contain tags", - input: `<!-- <div> hello world </div> -->`, - expected: HTMLComment{ - Contents: ` <div> hello world </div> `, - }, - }, - } - for _, tt := range tests { - tt := tt - t.Run(tt.name, func(t *testing.T) { - input := parse.NewInput(tt.input) - result, ok, err := htmlComment.Parse(input) - if err != nil { - t.Fatalf("parser error: %v", err) - } - if !ok { - t.Fatalf("failed to parse at %d", input.Index()) - } - if diff := cmp.Diff(tt.expected, result); diff != "" { - t.Errorf(diff) - } - }) - } -} -``` - -Alongside each success test, is a similar test to check that invalid syntax is detected. - -```go -func TestHTMLCommentParserErrors(t *testing.T) { - var tests = []struct { - name string - input string - expected error - }{ - { - name: "unclosed HTML comment", - input: `<!-- unclosed HTML comment`, - expected: parse.Error("expected end comment literal '-->' not found", - parse.Position{ - Index: 26, - Line: 0, - Col: 26, - }), - }, - { - name: "comment in comment", - input: `<!-- <-- other --> -->`, - expected: parse.Error("comment contains invalid sequence '--'", parse.Position{ - Index: 8, - Line: 0, - Col: 8, - }), - }, - } - for _, tt := range tests { - tt := tt - t.Run(tt.name, func(t *testing.T) { - input := parse.NewInput(tt.input) - _, _, err := htmlComment.Parse(input) - if diff := cmp.Diff(tt.expected, err); diff != "" { - t.Error(diff) - } - }) - } -} -``` - -### Generator - -The generator takes the object model and writes out Go code that produces the expected output. Any changes to Go code output by templ are made in this area. - -Testing of the generator is carried out by creating a templ file, and a matching expected output file. - -For example, `./generator/test-a-href` contains a templ file of: - -```templ -package testahref - -templ render() { - <a href="javascript:alert(&#39;unaffected&#39;);">Ignored</a> - <a href={ templ.URL("javascript:alert('should be sanitized')") }>Sanitized</a> - <a href={ templ.SafeURL("javascript:alert('should not be sanitized')") }>Unsanitized</a> -} -``` - -It also contains an expected output file. - -```html -<a href="javascript:alert(&#39;unaffected&#39;);">Ignored</a> -<a href="about:invalid#TemplFailedSanitizationURL">Sanitized</a> -<a href="javascript:alert(&#39;should not be sanitized&#39;)">Unsanitized</a> -``` - -These tests contribute towards the code coverage metrics by building an instrumented test CLI program. See the `test-cover` task in the `README.md` file. - -### CLI - -The command line interface for templ is used to generate Go code from templ files, format templ files, and run the LSP. - -The code for this is at `./cmd/templ`. - -Testing of the templ command line is done with unit tests to check the argument parsing. - -The `templ generate` command is tested by generating templ files in the project, and testing that the expected output HTML is present. - -### Runtime - -The runtime is used by generated code, and by template authors, to serve template content over HTTP, and to carry out various operations. - -It is in the root directory of the project at `./runtime.go`. The runtime is unit tested, as well as being tested as part of the `generate` tests. - -### LSP - -The LSP is structured within the command line interface, and proxies commands through to the `gopls` LSP. - -### Docs - -The docs are a Docusaurus project at `./docs`. - -## Coding - -### Build tasks - -templ uses the `xc` task runner - https://github.com/joerdav/xc - -If you run `xc` you can get see a list of the development tasks that can be run, or you can read the `README.md` file and see the `Tasks` section. - -The most useful tasks for local development are: - -* `install-snapshot` - this builds the templ CLI and installs it into `~/bin`. Ensure that this is in your path. -* `test` - this regenerates all templates, and runs the unit tests. -* `fmt` - run the `gofmt` tool to format all Go code. -* `lint` - run the same linting as run in the CI process. -* `docs-run` - run the Docusaurus documentation site. - -### Commit messages - -The project using https://www.conventionalcommits.org/en/v1.0.0/ - -Examples: - -* `feat: support Go comments in templates, fixes #234"` - -### Coding style - -* Reduce nesting - i.e. prefer early returns over an `else` block, as per https://danp.net/posts/reducing-go-nesting/ or https://go.dev/doc/effective_go#if -* Use line breaks to separate "paragraphs" of code - don't use line breaks in between lines, or at the start/end of functions etc. -* Use the `fmt` and `lint` build tasks to format and lint your code before submitting a PR. - -### LLM instructions - -See additional coding standards at `.github/copilot-instructions.md` diff --git a/vendor/github.com/a-h/templ/LICENSE b/vendor/github.com/a-h/templ/LICENSE deleted file mode 100644 index 15e6fb8..0000000 --- a/vendor/github.com/a-h/templ/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Adrian Hesketh - -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/a-h/templ/README.md b/vendor/github.com/a-h/templ/README.md deleted file mode 100644 index 9bb25e6..0000000 --- a/vendor/github.com/a-h/templ/README.md +++ /dev/null @@ -1,194 +0,0 @@ -![templ](https://github.com/a-h/templ/raw/main/templ.png) - -## An HTML templating language for Go that has great developer tooling. - -![templ](ide-demo.gif) - - -## Documentation - -See user documentation at https://templ.guide - -<p align="center"> -<a href="https://pkg.go.dev/github.com/a-h/templ"><img src="https://pkg.go.dev/badge/github.com/a-h/templ.svg" alt="Go Reference" /></a> -<a href="https://xcfile.dev"><img src="https://xcfile.dev/badge.svg" alt="xc compatible" /></a> -<a href="https://raw.githack.com/wiki/a-h/templ/coverage.html"><img src="https://github.com/a-h/templ/wiki/coverage.svg" alt="Go Coverage" /></a> -<a href="https://goreportcard.com/report/github.com/a-h/templ"><img src="https://goreportcard.com/badge/github.com/a-h/templ" alt="Go Report Card" /></a> -</p> - -## Tasks - -### version-set - -Set the version of templ to the current version. - -```sh -version set --template="0.3.%d" -``` - -### build - -Build a local version. - -```sh -version set --template="0.3.%d" -cd cmd/templ -go build -``` - -### install-snapshot - -Build and install current version. - -```sh -# Remove templ from the non-standard ~/bin/templ path -# that this command previously used. -rm -f ~/bin/templ -# Clear LSP logs. -rm -f cmd/templ/lspcmd/*.txt -# Update version. -version set --template="0.3.%d" -# Install to $GOPATH/bin or $HOME/go/bin -cd cmd/templ && go install -``` - -### build-snapshot - -Use goreleaser to build the command line binary using goreleaser. - -```sh -goreleaser build --snapshot --clean -``` - -### generate - -Run templ generate using local version. - -```sh -go run ./cmd/templ generate -include-version=false -``` - -### test - -Run Go tests. - -```sh -version set --template="0.3.%d" -go run ./cmd/templ generate -include-version=false -go test ./... -``` - -### test-short - -Run Go tests. - -```sh -version set --template="0.3.%d" -go run ./cmd/templ generate -include-version=false -go test ./... -short -``` - -### test-cover - -Run Go tests. - -```sh -# Create test profile directories. -mkdir -p coverage/fmt -mkdir -p coverage/generate -mkdir -p coverage/version -mkdir -p coverage/unit -# Build the test binary. -go build -cover -o ./coverage/templ-cover ./cmd/templ -# Run the covered generate command. -GOCOVERDIR=coverage/fmt ./coverage/templ-cover fmt . -GOCOVERDIR=coverage/generate ./coverage/templ-cover generate -include-version=false -GOCOVERDIR=coverage/version ./coverage/templ-cover version -# Run the unit tests. -go test -cover ./... -coverpkg ./... -args -test.gocoverdir="$PWD/coverage/unit" -# Display the combined percentage. -go tool covdata percent -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit -# Generate a text coverage profile for tooling to use. -go tool covdata textfmt -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit -o coverage.out -# Print total -go tool cover -func coverage.out | grep total -``` - -### test-cover-watch - -interactive: true - -```sh -gotestsum --watch -- -coverprofile=coverage.out -``` - -### test-fuzz - -```sh -./parser/v2/fuzz.sh -./parser/v2/goexpression/fuzz.sh -``` - -### benchmark - -Run benchmarks. - -```sh -go run ./cmd/templ generate -include-version=false && go test ./... -bench=. -benchmem -``` - -### fmt - -Format all Go and templ code. - -```sh -gofmt -s -w . -go run ./cmd/templ fmt . -``` - -### lint - -Run the lint operations that are run as part of the CI. - -```sh -golangci-lint run --verbose -``` - -### ensure-generated - -Ensure that templ files have been generated with the local version of templ, and that those files have been added to git. - -Requires: generate - -```sh -git diff --exit-code -``` - -### push-release-tag - -Push a semantic version number to GitHub to trigger the release process. - -```sh -version push --template="0.3.%d" --prefix="v" -``` - -### docs-run - -Run the development server. - -Directory: docs - -```sh -npm run start -``` - -### docs-build - -Build production docs site. - -Directory: docs - -```sh -npm run build -``` - diff --git a/vendor/github.com/a-h/templ/SECURITY.md b/vendor/github.com/a-h/templ/SECURITY.md deleted file mode 100644 index e8c820e..0000000 --- a/vendor/github.com/a-h/templ/SECURITY.md +++ /dev/null @@ -1,9 +0,0 @@ -# Security Policy - -## Supported Versions - -The latest version of templ is supported. - -## Reporting a Vulnerability - -Use the "Security" tab in GitHub and fill out the "Report a vulnerability" form. diff --git a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go deleted file mode 100644 index 0fa5c19..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/main.go +++ /dev/null @@ -1,132 +0,0 @@ -package fmtcmd - -import ( - "bytes" - "errors" - "fmt" - "io" - "log/slog" - "os" - "runtime" - "time" - - "github.com/a-h/templ/cmd/templ/processor" - "github.com/a-h/templ/internal/format" - "github.com/natefinch/atomic" -) - -type Arguments struct { - FailIfChanged bool - ToStdout bool - StdinFilepath string - Files []string - WorkerCount int - PrettierCommand string - PrettierRequired bool -} - -func Run(log *slog.Logger, stdin io.Reader, stdout io.Writer, args Arguments) (err error) { - // If no files are provided, read from stdin and write to stdout. - formatterConfig := format.Config{ - PrettierCommand: args.PrettierCommand, - PrettierRequired: args.PrettierRequired, - } - if len(args.Files) == 0 { - src, err := io.ReadAll(stdin) - if err != nil { - return fmt.Errorf("failed to read from stdin: %w", err) - } - formatted, _, err := format.Templ(src, args.StdinFilepath, formatterConfig) - if err != nil { - return fmt.Errorf("failed to format stdin: %w", err) - } - if _, err = stdout.Write(formatted); err != nil { - return fmt.Errorf("failed to write to stdout: %w", err) - } - return nil - } - // If files are provided, process each file. - process := func(fileName string) (error, bool) { - src, err := os.ReadFile(fileName) - if err != nil { - return fmt.Errorf("failed to read file %q: %w", fileName, err), false - } - formatted, changed, err := format.Templ(src, fileName, formatterConfig) - if err != nil { - return fmt.Errorf("failed to format file %q: %w", fileName, err), false - } - if !changed && !args.ToStdout { - return nil, false - } - if args.ToStdout { - if _, err := stdout.Write(formatted); err != nil { - return fmt.Errorf("failed to write to stdout: %w", err), false - } - return nil, true - } - if err := atomic.WriteFile(fileName, bytes.NewBuffer(formatted)); err != nil { - return fmt.Errorf("failed to write file %q: %w", fileName, err), false - } - return nil, true - } - dir := args.Files[0] - return NewFormatter(log, dir, process, args.WorkerCount, args.FailIfChanged).Run() -} - -type Formatter struct { - Log *slog.Logger - Dir string - Process func(fileName string) (error, bool) - WorkerCount int - FailIfChange bool -} - -func NewFormatter(log *slog.Logger, dir string, process func(fileName string) (error, bool), workerCount int, failIfChange bool) *Formatter { - f := &Formatter{ - Log: log, - Dir: dir, - Process: process, - WorkerCount: workerCount, - FailIfChange: failIfChange, - } - if f.WorkerCount == 0 { - f.WorkerCount = runtime.NumCPU() - } - return f -} - -func (f *Formatter) Run() (err error) { - var errs []error - changesMade := 0 - start := time.Now() - results := make(chan processor.Result) - f.Log.Debug("Walking directory", slog.String("path", f.Dir)) - go processor.Process(f.Dir, f.Process, f.WorkerCount, results) - var successCount, errorCount int - for r := range results { - if r.ChangesMade { - changesMade += 1 - } - if r.Error != nil { - f.Log.Error(r.FileName, slog.Any("error", r.Error)) - errorCount++ - errs = append(errs, r.Error) - continue - } - f.Log.Debug(r.FileName, slog.Duration("duration", r.Duration)) - successCount++ - } - - if f.FailIfChange && changesMade > 0 { - f.Log.Error("Templates were valid but not properly formatted", slog.Int("count", successCount+errorCount), slog.Int("changed", changesMade), slog.Int("errors", errorCount), slog.Duration("duration", time.Since(start))) - return fmt.Errorf("templates were not formatted properly") - } - - f.Log.Info("Format Complete", slog.Int("count", successCount+errorCount), slog.Int("errors", errorCount), slog.Int("changed", changesMade), slog.Duration("duration", time.Since(start))) - - if err = errors.Join(errs...); err != nil { - return fmt.Errorf("formatting failed: %w", err) - } - - return nil -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar b/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar deleted file mode 100644 index a665b6a..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/fmtcmd/testdata.txtar +++ /dev/null @@ -1,66 +0,0 @@ --- a.templ -- -package test - -templ a() { - <div><p class={templ.Class("mapped")}>A -</p></div> -} --- a.templ -- -package test - -templ a() { - <div> - <p class={ templ.Class("mapped") }> - A - </p> - </div> -} --- b.templ -- -package test - -templ b() { - <div><p>B -</p></div> -} --- b.templ -- -package test - -templ b() { - <div> - <p> - B - </p> - </div> -} --- c.templ -- -package test - -templ c() { - <div> - <p> - C - </p> - </div> -} --- c.templ -- -package test - -templ c() { - <div> - <p> - C - </p> - </div> -} --- d.templ -- -package test - -templ c(s string) { - <div s= {s}/> -} --- d.templ -- -package test - -templ c(s string) { - <div s={ s }/> -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go deleted file mode 100644 index 4e991ad..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/cmd.go +++ /dev/null @@ -1,388 +0,0 @@ -package generatecmd - -import ( - "context" - "errors" - "fmt" - "io/fs" - "log/slog" - "net/http" - "net/url" - "os" - "path" - "path/filepath" - "strings" - "sync" - "time" - - "github.com/a-h/templ/internal/skipdir" - templruntime "github.com/a-h/templ/runtime" - "golang.org/x/sync/errgroup" - - "github.com/a-h/templ" - "github.com/a-h/templ/cmd/templ/generatecmd/modcheck" - "github.com/a-h/templ/cmd/templ/generatecmd/proxy" - "github.com/a-h/templ/cmd/templ/generatecmd/run" - "github.com/a-h/templ/cmd/templ/generatecmd/watcher" - "github.com/a-h/templ/generator" - "github.com/cenkalti/backoff/v4" - "github.com/cli/browser" - "github.com/fsnotify/fsnotify" -) - -func NewGenerate(log *slog.Logger, args Arguments) (g *Generate, err error) { - g = &Generate{ - Log: log, - Args: args, - } - return g, nil -} - -type Generate struct { - Log *slog.Logger - Args Arguments -} - -type GenerationEvent struct { - Event fsnotify.Event - WatchedFileUpdated bool - TemplFileTextUpdated bool - TemplFileGoUpdated bool -} - -func (cmd Generate) Run(ctx context.Context) (err error) { - if cmd.Args.NotifyProxy { - return proxy.NotifyProxy(cmd.Args.ProxyBind, cmd.Args.ProxyPort) - } - if cmd.Args.PPROFPort > 0 { - go func() { - _ = http.ListenAndServe(fmt.Sprintf("localhost:%d", cmd.Args.PPROFPort), nil) - }() - } - - // Use absolute path. - if !path.IsAbs(cmd.Args.Path) { - cmd.Args.Path, err = filepath.Abs(cmd.Args.Path) - if err != nil { - return fmt.Errorf("failed to get absolute path: %w", err) - } - } - - // Configure generator. - var opts []generator.GenerateOpt - if cmd.Args.IncludeVersion { - opts = append(opts, generator.WithVersion(templ.Version())) - } - if cmd.Args.IncludeTimestamp { - opts = append(opts, generator.WithTimestamp(time.Now())) - } - - // Check the version of the templ module. - if err := modcheck.Check(cmd.Args.Path); err != nil { - cmd.Log.Warn("templ version check: " + err.Error()) - } - - cmd.Log.Debug("Creating filesystem event handler") - fseh := NewFSEventHandler( - cmd.Log, - cmd.Args.Path, - cmd.Args.Watch, - opts, - cmd.Args.GenerateSourceMapVisualisations, - cmd.Args.KeepOrphanedFiles, - cmd.Args.FileWriter, - cmd.Args.Lazy, - ) - - // If we're processing a single file, don't bother setting up the channels/multithreaing. - if cmd.Args.FileName != "" { - _, err = fseh.HandleEvent(ctx, fsnotify.Event{ - Name: cmd.Args.FileName, - Op: fsnotify.Create, - }) - return err - } - - // Start timer. - start := time.Now() - - // For the initial filesystem walk and subsequent (optional) fsnotify events. - events := make(chan fsnotify.Event) - // For errs from the watcher. - errs := make(chan error) - - // Start process to push events into the events channel. - grp, ctx := errgroup.WithContext(ctx) - grp.Go(func() error { - defer close(events) - cmd.walkAndWatch(ctx, events, errs) - return nil - }) - - // For triggering actions after generation has completed. - postGeneration := make(chan *GenerationEvent, 256) - - // Start process to handle events. - grp.Go(func() error { - defer close(postGeneration) - cmd.handleEvents(ctx, events, errs, fseh, postGeneration) - return nil - }) - - // Start process to handle post-generation events. - var updates int - grp.Go(func() error { - defer close(errs) - updates, err = cmd.handlePostGenerationEvents(ctx, postGeneration) - return err - }) - - // Read errors. - var errorCount int - for err := range errs { - if err == nil { - continue - } - if errors.Is(err, FatalError{}) { - cmd.Log.Debug("Fatal error, exiting") - return err - } - cmd.Log.Error("Error", slog.Any("error", err)) - errorCount++ - } - - // Wait for everything to complete. - cmd.Log.Debug("Waiting for processes to complete") - if err = grp.Wait(); err != nil { - return err - } - if cmd.Args.Command != "" { - cmd.Log.Debug("Killing command", slog.String("command", cmd.Args.Command)) - if err := run.KillAll(); err != nil { - cmd.Log.Error("Error killing command", slog.Any("error", err)) - } - } - - // Clean up temporary watch mode text files. - if err := cmd.deleteWatchModeTextFiles(); err != nil { - cmd.Log.Warn("Failed to delete watch mode text files", slog.Any("error", err)) - } - - // Check for errors after everything has completed. - if errorCount > 0 { - return fmt.Errorf("generation completed with %d errors", errorCount) - } - - cmd.Log.Info("Complete", slog.Int("updates", updates), slog.Duration("duration", time.Since(start))) - return nil -} - -func (cmd Generate) groupUntilNoMessagesReceivedFor100ms(postGeneration chan *GenerationEvent) (grouped *GenerationEvent, updates int, ok bool, err error) { - timeout := time.NewTimer(time.Hour * 24 * 365) -loop: - for { - select { - case ge := <-postGeneration: - if ge == nil { - cmd.Log.Debug("Post-generation event channel closed, exiting") - return nil, 0, false, nil - } - if grouped == nil { - grouped = ge - } - grouped.WatchedFileUpdated = grouped.WatchedFileUpdated || ge.WatchedFileUpdated - grouped.TemplFileTextUpdated = grouped.TemplFileTextUpdated || ge.TemplFileTextUpdated - grouped.TemplFileGoUpdated = grouped.TemplFileGoUpdated || ge.TemplFileGoUpdated - if grouped.WatchedFileUpdated || grouped.TemplFileTextUpdated || grouped.TemplFileGoUpdated { - updates++ - } - // Now we have received an event, wait for 100ms. - // If no further messages are received in that time, the timeout will trigger. - timeout = time.NewTimer(time.Millisecond * 100) - case <-timeout.C: - // If grouped is nil, or if no updates were made, reset the timer and continue waiting. - if grouped == nil || (!grouped.WatchedFileUpdated && !grouped.TemplFileTextUpdated && !grouped.TemplFileGoUpdated) { - timeout = time.NewTimer(time.Hour * 24 * 365) - continue loop - } - // We have a grouped event, and no events have been sent in the last 100ms, so we need to return. - return grouped, updates, true, nil - } - } -} - -func (cmd Generate) handlePostGenerationEvents(ctx context.Context, postGeneration chan *GenerationEvent) (updates int, err error) { - cmd.Log.Debug("Starting post-generation handler") - var p *proxy.Handler -loop: - for { - grouped, updated, ok, err := cmd.groupUntilNoMessagesReceivedFor100ms(postGeneration) - if err != nil { - return 0, fmt.Errorf("error grouping post-generation events: %w", err) - } - if !ok { - break loop - } - - // The Go application needs to be restarted if any watched non-templ watched files (i.e. non-templ Go files) - // were updated, or if any Go code within a templ file was updated. - needsRestart := grouped.WatchedFileUpdated || grouped.TemplFileGoUpdated - // If the text in a templ file, or any other changes have happened, reload the browser. - needsBrowserReload := grouped.TemplFileTextUpdated || grouped.TemplFileGoUpdated || grouped.WatchedFileUpdated - - cmd.Log.Info("Post-generation event received, processing...", slog.Bool("needsRestart", needsRestart), slog.Bool("needsBrowserReload", needsBrowserReload)) - updates += updated - - if cmd.Args.Command != "" && needsRestart { - cmd.Log.Info("Executing command", slog.String("command", cmd.Args.Command)) - if cmd.Args.Watch { - if err := os.Setenv("TEMPL_DEV_MODE", "true"); err != nil { - cmd.Log.Error("Error setting TEMPL_DEV_MODE environment variable", slog.Any("error", err)) - } - } - if _, err := run.Run(ctx, cmd.Args.Path, cmd.Args.Command); err != nil { - cmd.Log.Error("Error executing command", slog.Any("error", err)) - } - } - if cmd.Args.Proxy != "" { - if p == nil { - cmd.Log.Debug("Starting proxy...") - p, err = cmd.startProxy() - if err != nil { - cmd.Log.Error("Failed to start proxy", slog.Any("error", err)) - } - } - if needsBrowserReload { - cmd.Log.Debug("Sending reload event") - p.SendSSE("message", "reload") - } - } - } - return updates, nil -} - -func (cmd Generate) handleEvents(ctx context.Context, events chan fsnotify.Event, errs chan error, fseh *FSEventHandler, postGeneration chan *GenerationEvent) { - var eventsWG sync.WaitGroup - sem := make(chan struct{}, cmd.Args.WorkerCount) - cmd.Log.Debug("Starting event handler") - for event := range events { - eventsWG.Add(1) - sem <- struct{}{} - go func(event fsnotify.Event) { - cmd.Log.Debug("Processing file", slog.String("file", event.Name)) - defer eventsWG.Done() - defer func() { <-sem }() - r, err := fseh.HandleEvent(ctx, event) - if err != nil { - errs <- err - } - if !r.WatchedFileUpdated && !r.TemplFileTextUpdated && !r.TemplFileGoUpdated { - cmd.Log.Debug("File not updated", slog.String("file", event.Name)) - return - } - e := &GenerationEvent{ - Event: event, - WatchedFileUpdated: r.WatchedFileUpdated, - TemplFileTextUpdated: r.TemplFileTextUpdated, - TemplFileGoUpdated: r.TemplFileGoUpdated, - } - cmd.Log.Debug("File updated", slog.String("file", event.Name)) - postGeneration <- e - }(event) - } - // Wait for all events to be processed before closing. - eventsWG.Wait() -} - -func (cmd *Generate) walkAndWatch(ctx context.Context, events chan fsnotify.Event, errs chan error) { - cmd.Log.Debug("Walking directory", slog.String("path", cmd.Args.Path), slog.Bool("devMode", cmd.Args.Watch)) - if err := watcher.WalkFiles(ctx, cmd.Args.Path, cmd.Args.WatchPattern, cmd.Args.IgnorePattern, events); err != nil { - cmd.Log.Error("WalkFiles failed, exiting", slog.Any("error", err)) - errs <- FatalError{Err: fmt.Errorf("failed to walk files: %w", err)} - return - } - if !cmd.Args.Watch { - cmd.Log.Debug("Dev mode not enabled, process can finish early") - return - } - cmd.Log.Info("Watching files") - rw, err := watcher.Recursive(ctx, cmd.Args.WatchPattern, cmd.Args.IgnorePattern, events, errs) - if err != nil { - cmd.Log.Error("Recursive watcher setup failed, exiting", slog.Any("error", err)) - errs <- FatalError{Err: fmt.Errorf("failed to setup recursive watcher: %w", err)} - return - } - if err = rw.Add(cmd.Args.Path); err != nil { - cmd.Log.Error("Failed to add path to watcher", slog.Any("error", err)) - errs <- FatalError{Err: fmt.Errorf("failed to add path to watcher: %w", err)} - return - } - defer func() { - if err := rw.Close(); err != nil { - cmd.Log.Error("Failed to close watcher", slog.Any("error", err)) - } - }() - cmd.Log.Debug("Waiting for context to be cancelled to stop watching files") - <-ctx.Done() -} - -func (cmd *Generate) deleteWatchModeTextFiles() error { - return fs.WalkDir(os.DirFS(cmd.Args.Path), ".", func(path string, info os.DirEntry, err error) error { - if err != nil { - return nil - } - absPath, err := filepath.Abs(filepath.Join(cmd.Args.Path, path)) - if err != nil { - return nil - } - if info.IsDir() && skipdir.ShouldSkip(absPath) { - return filepath.SkipDir - } - if !strings.HasSuffix(absPath, "_templ.go") && !strings.HasSuffix(absPath, ".templ") { - return nil - } - watchModeFileName := templruntime.GetDevModeTextFileName(absPath) - if err := os.Remove(watchModeFileName); err != nil && !errors.Is(err, os.ErrNotExist) { - cmd.Log.Warn("Failed to remove watch mode text file", slog.Any("error", err)) - } - return nil - }) -} - -func (cmd *Generate) startProxy() (p *proxy.Handler, err error) { - var target *url.URL - target, err = url.Parse(cmd.Args.Proxy) - if err != nil { - return nil, FatalError{Err: fmt.Errorf("failed to parse proxy URL: %w", err)} - } - p = proxy.New(cmd.Log, cmd.Args.ProxyBind, cmd.Args.ProxyPort, target) - go func() { - cmd.Log.Info("Proxying", slog.String("from", p.URL), slog.String("to", p.Target.String())) - if err := http.ListenAndServe(fmt.Sprintf("%s:%d", cmd.Args.ProxyBind, cmd.Args.ProxyPort), p); err != nil { - cmd.Log.Error("Proxy failed", slog.Any("error", err)) - } - }() - if !cmd.Args.OpenBrowser { - cmd.Log.Debug("Not opening browser") - return p, nil - } - go func() { - cmd.Log.Debug("Waiting for proxy to be ready", slog.String("url", p.URL)) - backoff := backoff.NewExponentialBackOff() - backoff.InitialInterval = time.Second - var client http.Client - client.Timeout = 1 * time.Second - for { - if _, err := client.Get(p.URL); err == nil { - break - } - d := backoff.NextBackOff() - cmd.Log.Debug("Proxy not ready, retrying", slog.String("url", p.URL), slog.Any("backoff", d)) - time.Sleep(d) - } - if err := browser.OpenURL(p.URL); err != nil { - cmd.Log.Error("Failed to open browser", slog.Any("error", err)) - } - }() - return p, nil -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go deleted file mode 100644 index b0504aa..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/eventhandler.go +++ /dev/null @@ -1,315 +0,0 @@ -package generatecmd - -import ( - "bufio" - "bytes" - "context" - "crypto/sha256" - "fmt" - "go/format" - "go/scanner" - "go/token" - "io" - "log/slog" - "os" - "path" - "path/filepath" - "strings" - "time" - - "github.com/a-h/templ/cmd/templ/visualize" - "github.com/a-h/templ/generator" - "github.com/a-h/templ/internal/syncmap" - "github.com/a-h/templ/internal/syncset" - "github.com/a-h/templ/parser/v2" - "github.com/a-h/templ/runtime" - "github.com/fsnotify/fsnotify" - "golang.org/x/sync/errgroup" -) - -type FileWriterFunc func(name string, contents []byte) error - -func FileWriter(fileName string, contents []byte) error { - return os.WriteFile(fileName, contents, 0o644) -} - -func WriterFileWriter(w io.Writer) FileWriterFunc { - return func(_ string, contents []byte) error { - _, err := w.Write(contents) - return err - } -} - -func NewFSEventHandler( - log *slog.Logger, - dir string, - devMode bool, - genOpts []generator.GenerateOpt, - genSourceMapVis bool, - keepOrphanedFiles bool, - fileWriter FileWriterFunc, - lazy bool, -) *FSEventHandler { - if !path.IsAbs(dir) { - dir, _ = filepath.Abs(dir) - } - fseh := &FSEventHandler{ - Log: log, - dir: dir, - fileNameToLastModTime: syncmap.New[string, time.Time](), - fileNameToError: syncset.New[string](), - fileNameToOutput: syncmap.New[string, generator.GeneratorOutput](), - devMode: devMode, - hashes: syncmap.New[string, [sha256.Size]byte](), - genOpts: genOpts, - genSourceMapVis: genSourceMapVis, - keepOrphanedFiles: keepOrphanedFiles, - writer: fileWriter, - lazy: lazy, - } - return fseh -} - -type FSEventHandler struct { - Log *slog.Logger - // dir is the root directory being processed. - dir string - fileNameToLastModTime *syncmap.Map[string, time.Time] - fileNameToError *syncset.Set[string] - fileNameToOutput *syncmap.Map[string, generator.GeneratorOutput] - devMode bool - hashes *syncmap.Map[string, [sha256.Size]byte] - genOpts []generator.GenerateOpt - genSourceMapVis bool - Errors []error - keepOrphanedFiles bool - writer FileWriterFunc - lazy bool -} - -type GenerateResult struct { - // WatchedFileUpdated indicates that a file matching the watch pattern was updated. - WatchedFileUpdated bool - // TemplFileTextUpdated indicates that text literals were updated. - TemplFileTextUpdated bool - // TemplFileGoUpdated indicates that Go expressions were updated. - TemplFileGoUpdated bool -} - -func (h *FSEventHandler) HandleEvent(ctx context.Context, event fsnotify.Event) (result GenerateResult, err error) { - // Handle _templ.go files. - if !event.Has(fsnotify.Remove) && strings.HasSuffix(event.Name, "_templ.go") { - _, err = os.Stat(strings.TrimSuffix(event.Name, "_templ.go") + ".templ") - if !os.IsNotExist(err) { - return GenerateResult{}, err - } - // File is orphaned. - if h.keepOrphanedFiles { - return GenerateResult{}, nil - } - h.Log.Debug("Deleting orphaned Go file", slog.String("file", event.Name)) - if err = os.Remove(event.Name); err != nil { - h.Log.Warn("Failed to remove orphaned file", slog.Any("error", err)) - } - return GenerateResult{WatchedFileUpdated: false, TemplFileGoUpdated: true, TemplFileTextUpdated: false}, nil - } - - // If the file hasn't been updated since the last time we processed it, ignore it. - fileInfo, err := os.Stat(event.Name) - if err != nil { - return GenerateResult{}, fmt.Errorf("failed to stat %q: %w", event.Name, err) - } - mustBeInTheFuture := func(previous, updated time.Time) bool { - return updated.After(previous) - } - updatedModTime := h.fileNameToLastModTime.CompareAndSwap(event.Name, mustBeInTheFuture, fileInfo.ModTime()) - if !updatedModTime { - h.Log.Debug("Skipping file because it wasn't updated", slog.String("file", event.Name)) - return GenerateResult{}, nil - } - - // Process anything that isn't a templ file. - if !strings.HasSuffix(event.Name, ".templ") { - if h.devMode { - h.Log.Info("Watched file updated", slog.String("file", event.Name)) - } - result.WatchedFileUpdated = true - return result, nil - } - - // Handle templ files. - - // If the go file is newer than the templ file, skip generation, because it's up-to-date. - if h.lazy && goFileIsUpToDate(event.Name, fileInfo.ModTime()) { - h.Log.Debug("Skipping file because the Go file is up-to-date", slog.String("file", event.Name)) - return GenerateResult{}, nil - } - - // Start a processor. - start := time.Now() - var diag []parser.Diagnostic - result, diag, err = h.generate(ctx, event.Name) - if err != nil { - h.fileNameToError.Set(event.Name) - return result, fmt.Errorf("failed to generate code for %q: %w", event.Name, err) - } - if len(diag) > 0 { - for _, d := range diag { - h.Log.Warn(d.Message, - slog.String("from", fmt.Sprintf("%d:%d", d.Range.From.Line, d.Range.From.Col)), - slog.String("to", fmt.Sprintf("%d:%d", d.Range.To.Line, d.Range.To.Col)), - ) - } - return result, nil - } - if errorCleared := h.fileNameToError.Delete(event.Name); errorCleared { - h.Log.Info("Error cleared", slog.String("file", event.Name), slog.Int("errors", h.fileNameToError.Count())) - } - h.Log.Debug("Generated code", slog.String("file", event.Name), slog.Duration("in", time.Since(start))) - - return result, nil -} - -func goFileIsUpToDate(templFileName string, templFileLastMod time.Time) (upToDate bool) { - goFileName := strings.TrimSuffix(templFileName, ".templ") + "_templ.go" - goFileInfo, err := os.Stat(goFileName) - if err != nil { - return false - } - return goFileInfo.ModTime().After(templFileLastMod) -} - -// generate Go code for a single template. -// If a basePath is provided, the filename included in error messages is relative to it. -func (h *FSEventHandler) generate(ctx context.Context, fileName string) (result GenerateResult, diagnostics []parser.Diagnostic, err error) { - t, err := parser.Parse(fileName) - if err != nil { - return GenerateResult{}, nil, fmt.Errorf("%s parsing error: %w", fileName, err) - } - targetFileName := strings.TrimSuffix(fileName, ".templ") + "_templ.go" - - // Only use relative filenames to the basepath for filenames in runtime error messages. - absFilePath, err := filepath.Abs(fileName) - if err != nil { - return GenerateResult{}, nil, fmt.Errorf("failed to get absolute path for %q: %w", fileName, err) - } - relFilePath, err := filepath.Rel(h.dir, absFilePath) - if err != nil { - return GenerateResult{}, nil, fmt.Errorf("failed to get relative path for %q: %w", fileName, err) - } - // Convert Windows file paths to Unix-style for consistency. - relFilePath = filepath.ToSlash(relFilePath) - - var b bytes.Buffer - generatorOutput, err := generator.Generate(t, &b, append(h.genOpts, generator.WithFileName(relFilePath))...) - if err != nil { - return GenerateResult{}, nil, fmt.Errorf("%s generation error: %w", fileName, err) - } - - formattedGoCode, err := format.Source(b.Bytes()) - if err != nil { - err = remapErrorList(err, generatorOutput.SourceMap, fileName) - return GenerateResult{}, nil, fmt.Errorf("%s source formatting error %w", fileName, err) - } - - // Hash output, and write out the file if the goCodeHash has changed. - goCodeHash := sha256.Sum256(formattedGoCode) - if h.hashes.CompareAndSwap(targetFileName, syncmap.UpdateIfChanged, goCodeHash) { - if err = h.writer(targetFileName, formattedGoCode); err != nil { - return result, nil, fmt.Errorf("failed to write target file %q: %w", targetFileName, err) - } - } - - // Add the txt file if it has changed. - if h.devMode { - txtFileName := runtime.GetDevModeTextFileName(fileName) - h.Log.Debug("Writing development mode text file", slog.String("file", fileName), slog.String("output", txtFileName)) - joined := strings.Join(generatorOutput.Literals, "\n") - txtHash := sha256.Sum256([]byte(joined)) - if h.hashes.CompareAndSwap(txtFileName, syncmap.UpdateIfChanged, txtHash) { - if err = os.WriteFile(txtFileName, []byte(joined), 0o644); err != nil { - return result, nil, fmt.Errorf("failed to write string literal file %q: %w", txtFileName, err) - } - } - // Check whether the change would require a recompilation or text update to take effect. - previous, hasPrevious := h.fileNameToOutput.Get(fileName) - if hasPrevious { - result.TemplFileTextUpdated = generator.HasTextChanged(previous, generatorOutput) - result.TemplFileGoUpdated = generator.HasGoChanged(previous, generatorOutput) - } - h.fileNameToOutput.Set(fileName, generatorOutput) - } - - parsedDiagnostics, err := parser.Diagnose(t) - if err != nil { - return result, nil, fmt.Errorf("%s diagnostics error: %w", fileName, err) - } - - if h.genSourceMapVis { - err = generateSourceMapVisualisation(ctx, fileName, targetFileName, generatorOutput.SourceMap) - } - - return result, parsedDiagnostics, err -} - -// Takes an error from the formatter and attempts to convert the positions reported in the target file to their positions -// in the source file. -func remapErrorList(err error, sourceMap *parser.SourceMap, fileName string) error { - list, ok := err.(scanner.ErrorList) - if !ok || len(list) == 0 { - return err - } - for i, e := range list { - // The positions in the source map are off by one line because of the package definition. - srcPos, ok := sourceMap.SourcePositionFromTarget(uint32(e.Pos.Line-1), uint32(e.Pos.Column)) - if !ok { - continue - } - list[i].Pos = token.Position{ - Filename: fileName, - Offset: int(srcPos.Index), - Line: int(srcPos.Line) + 1, - Column: int(srcPos.Col), - } - } - return list -} - -func generateSourceMapVisualisation(ctx context.Context, templFileName, goFileName string, sourceMap *parser.SourceMap) error { - if err := ctx.Err(); err != nil { - return err - } - var templContents, goContents []byte - var grp errgroup.Group - grp.Go(func() (err error) { - templContents, err = os.ReadFile(templFileName) - return err - }) - grp.Go(func() (err error) { - goContents, err = os.ReadFile(goFileName) - return err - }) - if err := grp.Wait(); err != nil { - return err - } - component := visualize.HTML(templFileName, string(templContents), string(goContents), sourceMap) - - targetFileName := strings.TrimSuffix(templFileName, ".templ") + "_templ_sourcemap.html" - w, err := os.Create(targetFileName) - if err != nil { - return fmt.Errorf("%s sourcemap visualisation error: %w", templFileName, err) - } - b := bufio.NewWriter(w) - if err = component.Render(ctx, b); err != nil { - _ = w.Close() - return fmt.Errorf("%s sourcemap visualisation render error: %w", templFileName, err) - } - if err = b.Flush(); err != nil { - _ = w.Close() - return fmt.Errorf("%s sourcemap visualisation flush error: %w", templFileName, err) - } - if err = w.Close(); err != nil { - return fmt.Errorf("%s sourcemap visualisation close error: %w", templFileName, err) - } - return nil -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go deleted file mode 100644 index 1081659..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/fatalerror.go +++ /dev/null @@ -1,23 +0,0 @@ -package generatecmd - -type FatalError struct { - Err error -} - -func (e FatalError) Error() string { - return e.Err.Error() -} - -func (e FatalError) Unwrap() error { - return e.Err -} - -func (e FatalError) Is(target error) bool { - _, ok := target.(FatalError) - return ok -} - -func (e FatalError) As(target any) bool { - _, ok := target.(*FatalError) - return ok -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go deleted file mode 100644 index da1fa2c..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/main.go +++ /dev/null @@ -1,192 +0,0 @@ -package generatecmd - -import ( - "context" - _ "embed" - "flag" - "fmt" - "io" - "log/slog" - "regexp" - "runtime" - - _ "net/http/pprof" - - "github.com/a-h/templ/cmd/templ/sloghandler" -) - -const generateUsageText = `usage: templ generate [<args>...] - -Generates Go code from templ files. - -Args: - -path <path> - Generates code for all files in path. (default .) - -f <file> - Optionally generates code for a single file, e.g. -f header.templ - -stdout - Prints to stdout instead of writing generated files to the filesystem. - Only applicable when -f is used. - -source-map-visualisations - Set to true to generate HTML files to visualise the templ code and its corresponding Go code. - -include-version - Set to false to skip inclusion of the templ version in the generated code. (default true) - -include-timestamp - Set to true to include the current time in the generated code. - -watch - Set to true to watch the path for changes and regenerate code. - -watch-pattern <regexp> - Set the regexp pattern of files that will be watched for changes. (default: '(.+\.go$)|(.+\.templ$)|(.+_templ\.txt$)') - -ignore-pattern <regexp> - Set the regexp pattern of files to ignore when watching for changes. (default: '') - -cmd <cmd> - Set the command to run after generating code. - -proxy - Set the URL to proxy after generating code and executing the command. - -proxyport - The port the proxy will listen on. (default 7331) - -proxybind - The address the proxy will listen on. (default 127.0.0.1) - -notify-proxy - If present, the command will issue a reload event to the proxy 127.0.0.1:7331, or use proxyport and proxybind to specify a different address. - -w - Number of workers to use when generating code. (default runtime.NumCPUs) - -lazy - Only generate .go files if the source .templ file is newer. - -pprof - Port to run the pprof server on. - -keep-orphaned-files - Keeps orphaned generated templ files. (default false) - -v - Set log verbosity level to "debug". (default "info") - -log-level - Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") - -help - Print help and exit. - -Examples: - - Generate code for all files in the current directory and subdirectories: - - templ generate - - Generate code for a single file: - - templ generate -f header.templ - - Watch the current directory and subdirectories for changes and regenerate code: - - templ generate -watch -` - -const defaultWatchPattern = `(.+\.go$)|(.+\.templ$)` - -func NewArguments(stdout, stderr io.Writer, args []string) (cmdArgs Arguments, log *slog.Logger, help bool, err error) { - cmd := flag.NewFlagSet("generate", flag.ContinueOnError) - cmd.StringVar(&cmdArgs.FileName, "f", "", "") - cmd.StringVar(&cmdArgs.Path, "path", ".", "") - toStdoutFlag := cmd.Bool("stdout", false, "") - cmd.BoolVar(&cmdArgs.GenerateSourceMapVisualisations, "source-map-visualisations", false, "") - cmd.BoolVar(&cmdArgs.IncludeVersion, "include-version", true, "") - cmd.BoolVar(&cmdArgs.IncludeTimestamp, "include-timestamp", false, "") - cmd.BoolVar(&cmdArgs.Watch, "watch", false, "") - watchPatternFlag := cmd.String("watch-pattern", defaultWatchPattern, "") - ignorePatternFlag := cmd.String("ignore-pattern", "", "") - cmd.BoolVar(&cmdArgs.OpenBrowser, "open-browser", true, "") - cmd.StringVar(&cmdArgs.Command, "cmd", "", "") - cmd.StringVar(&cmdArgs.Proxy, "proxy", "", "") - cmd.IntVar(&cmdArgs.ProxyPort, "proxyport", 7331, "") - cmd.StringVar(&cmdArgs.ProxyBind, "proxybind", "127.0.0.1", "") - cmd.BoolVar(&cmdArgs.NotifyProxy, "notify-proxy", false, "") - cmd.IntVar(&cmdArgs.WorkerCount, "w", runtime.NumCPU(), "") - cmd.IntVar(&cmdArgs.PPROFPort, "pprof", 0, "") - cmd.BoolVar(&cmdArgs.KeepOrphanedFiles, "keep-orphaned-files", false, "") - cmd.BoolVar(&cmdArgs.Lazy, "lazy", false, "") - verboseFlag := cmd.Bool("v", false, "") - logLevelFlag := cmd.String("log-level", "info", "") - helpFlag := cmd.Bool("help", false, "") - if err = cmd.Parse(args); err != nil { - return Arguments{}, nil, false, fmt.Errorf("failed to parse arguments: %w", err) - } - - log = sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) - - if cmdArgs.Watch && cmdArgs.FileName != "" { - return Arguments{}, log, *helpFlag, fmt.Errorf("cannot watch a single file, remove the -f or -watch flag") - } - cmdArgs.WatchPattern, err = regexp.Compile(*watchPatternFlag) - if err != nil { - return cmdArgs, log, *helpFlag, fmt.Errorf("invalid watch pattern %q: %w", *watchPatternFlag, err) - } - if *ignorePatternFlag != "" { - cmdArgs.IgnorePattern, err = regexp.Compile(*ignorePatternFlag) - if err != nil { - return cmdArgs, log, *helpFlag, fmt.Errorf("invalid ignore pattern %q: %w", *ignorePatternFlag, err) - } - } - - // Default to writing to files unless the stdout flag is set. - cmdArgs.FileWriter = FileWriter - if *toStdoutFlag { - if cmdArgs.FileName == "" { - return Arguments{}, log, *helpFlag, fmt.Errorf("only a single file can be output to stdout, add the -f flag to specify the file to generate code for") - } - cmdArgs.FileWriter = WriterFileWriter(stdout) - } - - return cmdArgs, log, *helpFlag, nil -} - -type Arguments struct { - FileName string - FileWriter FileWriterFunc - Path string - Watch bool - WatchPattern *regexp.Regexp - IgnorePattern *regexp.Regexp - OpenBrowser bool - Command string - ProxyBind string - ProxyPort int - Proxy string - NotifyProxy bool - WorkerCount int - GenerateSourceMapVisualisations bool - IncludeVersion bool - IncludeTimestamp bool - // PPROFPort is the port to run the pprof server on. - PPROFPort int - KeepOrphanedFiles bool - Lazy bool -} - -type ArgumentError struct { - Message string -} - -func (e *ArgumentError) Error() string { - return e.Message -} - -func (a *ArgumentError) Code() int { - return 64 // EX_USAGE -} - -func Run(ctx context.Context, stdout, stderr io.Writer, args []string) (err error) { - cmdArgs, log, help, err := NewArguments(stdout, stderr, args) - if err != nil { - _, _ = fmt.Fprint(stderr, generateUsageText) - return &ArgumentError{ - Message: err.Error(), - } - } - if help { - _, _ = fmt.Fprint(stdout, generateUsageText) - return nil - } - g, err := NewGenerate(log, cmdArgs) - if err != nil { - return err - } - return g.Run(ctx) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go deleted file mode 100644 index bc3fc03..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/modcheck/modcheck.go +++ /dev/null @@ -1,82 +0,0 @@ -package modcheck - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/a-h/templ" - "golang.org/x/mod/modfile" - "golang.org/x/mod/semver" -) - -// WalkUp the directory tree, starting at dir, until we find a directory containing -// a go.mod file. -func WalkUp(dir string) (string, error) { - dir, err := filepath.Abs(dir) - if err != nil { - return "", fmt.Errorf("failed to get absolute path: %w", err) - } - - var modFile string - for { - modFile = filepath.Join(dir, "go.mod") - _, err := os.Stat(modFile) - if err != nil && !os.IsNotExist(err) { - return "", fmt.Errorf("failed to stat go.mod file: %w", err) - } - if os.IsNotExist(err) { - // Move up. - prev := dir - dir = filepath.Dir(dir) - if dir == prev { - break - } - continue - } - break - } - - // No file found. - if modFile == "" { - return dir, fmt.Errorf("could not find go.mod file") - } - return dir, nil -} - -func Check(dir string) error { - dir, err := WalkUp(dir) - if err != nil { - return err - } - - // Found a go.mod file. - // Read it and find the templ version. - modFile := filepath.Join(dir, "go.mod") - m, err := os.ReadFile(modFile) - if err != nil { - return fmt.Errorf("failed to read go.mod file: %w", err) - } - - mf, err := modfile.Parse(modFile, m, nil) - if err != nil { - return fmt.Errorf("failed to parse go.mod file: %w", err) - } - if mf.Module.Mod.Path == "github.com/a-h/templ" { - // The go.mod file is for templ itself. - return nil - } - for _, r := range mf.Require { - if r.Mod.Path == "github.com/a-h/templ" { - cmp := semver.Compare(r.Mod.Version, templ.Version()) - if cmp < 0 { - return fmt.Errorf("generator %v is newer than templ version %v found in go.mod file, consider running `go get -u github.com/a-h/templ` to upgrade", templ.Version(), r.Mod.Version) - } - if cmp > 0 { - return fmt.Errorf("generator %v is older than templ version %v found in go.mod file, consider upgrading templ CLI", templ.Version(), r.Mod.Version) - } - return nil - } - } - return fmt.Errorf("templ not found in go.mod file, run `go get github.com/a-h/templ` to install it") -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go deleted file mode 100644 index b6fdeb7..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/proxy.go +++ /dev/null @@ -1,299 +0,0 @@ -package proxy - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - stdlog "log" - "log/slog" - "math" - "net/http" - "net/http/httputil" - "net/url" - "os" - "strconv" - "strings" - "time" - - "github.com/a-h/templ/cmd/templ/generatecmd/sse" - "github.com/a-h/templ/internal/htmlfind" - "github.com/andybalholm/brotli" - "golang.org/x/net/html" - - _ "embed" -) - -//go:embed script.js -var script string - -type Handler struct { - log *slog.Logger - URL string - Target *url.URL - p *httputil.ReverseProxy - sse *sse.Handler -} - -func reloadScript(nonce string) *html.Node { - script := &html.Node{ - Type: html.ElementNode, - Data: "script", - Attr: []html.Attribute{ - {Key: "src", Val: "/_templ/reload/script.js"}, - }, - } - if nonce != "" { - script.Attr = append(script.Attr, html.Attribute{Key: "nonce", Val: nonce}) - } - return script -} - -var ErrBodyNotFound = fmt.Errorf("body not found") - -func insertScriptTagIntoBody(nonce, body string) (updated string, err error) { - n, err := html.Parse(strings.NewReader(body)) - if err != nil { - return body, err - } - bodyNodes := htmlfind.All(n, htmlfind.Element("body")) - if len(bodyNodes) == 0 { - return body, ErrBodyNotFound - } - bodyNodes[0].AppendChild(reloadScript(nonce)) - buf := new(bytes.Buffer) - if err = html.Render(buf, n); err != nil { - return body, err - } - return buf.String(), nil -} - -type passthroughWriteCloser struct { - io.Writer -} - -func (pwc passthroughWriteCloser) Close() error { - return nil -} - -const unsupportedContentEncoding = "Unsupported content encoding, hot reload script not inserted." - -func (h *Handler) modifyResponse(r *http.Response) error { - log := h.log.With(slog.String("url", r.Request.URL.String())) - if r.Header.Get("templ-skip-modify") == "true" { - log.Debug("Skipping response modification because templ-skip-modify header is set") - return nil - } - if contentType := r.Header.Get("Content-Type"); !strings.HasPrefix(contentType, "text/html") { - log.Debug("Skipping response modification because content type is not text/html", slog.String("content-type", contentType)) - return nil - } - - // Set up readers and writers. - newReader := func(in io.Reader) (out io.Reader, err error) { - return in, nil - } - newWriter := func(out io.Writer) io.WriteCloser { - return passthroughWriteCloser{out} - } - switch r.Header.Get("Content-Encoding") { - case "gzip": - newReader = func(in io.Reader) (out io.Reader, err error) { - return gzip.NewReader(in) - } - newWriter = func(out io.Writer) io.WriteCloser { - return gzip.NewWriter(out) - } - case "br": - newReader = func(in io.Reader) (out io.Reader, err error) { - return brotli.NewReader(in), nil - } - newWriter = func(out io.Writer) io.WriteCloser { - return brotli.NewWriter(out) - } - case "": - log.Debug("No content encoding header found") - default: - h.log.Warn(unsupportedContentEncoding, slog.String("encoding", r.Header.Get("Content-Encoding"))) - } - - // Read the encoded body. - encr, err := newReader(r.Body) - if err != nil { - return err - } - defer func() { - _ = r.Body.Close() - }() - body, err := io.ReadAll(encr) - if err != nil { - return err - } - - // Update it. - csp := r.Header.Get("Content-Security-Policy") - updated, err := insertScriptTagIntoBody(parseNonce(csp), string(body)) - if err != nil { - log.Warn("Unable to insert reload script", slog.Any("error", err)) - updated = string(body) - } - if len(updated) == len(body) { - log.Debug("Reload script not inserted") - } else { - log.Debug("Reload script inserted") - } - - // Encode the response. - var buf bytes.Buffer - encw := newWriter(&buf) - _, err = encw.Write([]byte(updated)) - if err != nil { - return err - } - err = encw.Close() - if err != nil { - return err - } - - // Update the response. - r.Body = io.NopCloser(&buf) - r.ContentLength = int64(buf.Len()) - r.Header.Set("Content-Length", strconv.Itoa(buf.Len())) - return nil -} - -func parseNonce(csp string) (nonce string) { -outer: - for _, rawDirective := range strings.Split(csp, ";") { - parts := strings.Fields(rawDirective) - if len(parts) < 2 { - continue - } - if parts[0] != "script-src" { - continue - } - for _, source := range parts[1:] { - source = strings.TrimPrefix(source, "'") - source = strings.TrimSuffix(source, "'") - if strings.HasPrefix(source, "nonce-") { - nonce = source[6:] - break outer - } - } - } - return nonce -} - -func New(log *slog.Logger, bind string, port int, target *url.URL) (h *Handler) { - p := httputil.NewSingleHostReverseProxy(target) - p.ErrorLog = stdlog.New(os.Stderr, "Proxy to target error: ", 0) - p.Transport = &roundTripper{ - maxRetries: 20, - initialDelay: 100 * time.Millisecond, - backoffExponent: 1.5, - } - h = &Handler{ - log: log, - URL: fmt.Sprintf("http://%s:%d", bind, port), - Target: target, - p: p, - sse: sse.New(), - } - p.ModifyResponse = h.modifyResponse - return h -} - -func (p *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == "/_templ/reload/script.js" { - // Provides a script that reloads the page. - w.Header().Add("Content-Type", "text/javascript") - _, err := io.WriteString(w, script) - if err != nil { - fmt.Printf("failed to write script: %v\n", err) - } - return - } - if r.URL.Path == "/_templ/reload/events" { - switch r.Method { - case http.MethodGet: - // Provides a list of messages including a reload message. - p.sse.ServeHTTP(w, r) - return - case http.MethodPost: - // Send a reload message to all connected clients. - p.sse.Send("message", "reload") - return - } - http.Error(w, "only GET or POST method allowed", http.StatusMethodNotAllowed) - return - } - p.p.ServeHTTP(w, r) -} - -func (p *Handler) SendSSE(eventType string, data string) { - p.sse.Send(eventType, data) -} - -type roundTripper struct { - maxRetries int - initialDelay time.Duration - backoffExponent float64 -} - -func (rt *roundTripper) setShouldSkipResponseModificationHeader(r *http.Request, resp *http.Response) { - // Instruct the modifyResponse function to skip modifying the response if the - // HTTP request has come from HTMX or Datastar. - if r.Header.Get("HX-Request") != "true" && r.Header.Get("Datastar-Request") != "true" { - return - } - resp.Header.Set("templ-skip-modify", "true") -} - -func (rt *roundTripper) RoundTrip(r *http.Request) (*http.Response, error) { - // Read and buffer the body. - var bodyBytes []byte - if r.Body != nil && r.Body != http.NoBody { - var err error - bodyBytes, err = io.ReadAll(r.Body) - if err != nil { - return nil, err - } - if err = r.Body.Close(); err != nil { - return nil, fmt.Errorf("failed to close request body: %w", err) - } - } - - // Retry logic. - var resp *http.Response - var err error - for retries := range rt.maxRetries { - // Clone the request and set the body. - req := r.Clone(r.Context()) - if bodyBytes != nil { - req.Body = io.NopCloser(bytes.NewReader(bodyBytes)) - } - - // Execute the request. - resp, err = http.DefaultTransport.RoundTrip(req) - if err != nil { - time.Sleep(rt.initialDelay * time.Duration(math.Pow(rt.backoffExponent, float64(retries)))) - continue - } - - rt.setShouldSkipResponseModificationHeader(r, resp) - - return resp, nil - } - - return nil, fmt.Errorf("max retries reached: %q", r.URL.String()) -} - -func NotifyProxy(host string, port int) error { - urlStr := fmt.Sprintf("http://%s:%d/_templ/reload/events", host, port) - req, err := http.NewRequest(http.MethodPost, urlStr, nil) - if err != nil { - return err - } - _, err = http.DefaultClient.Do(req) - return err -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js deleted file mode 100644 index 8e55791..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/proxy/script.js +++ /dev/null @@ -1,10 +0,0 @@ -(function() { - let templ_reloadSrc = window.templ_reloadSrc || new EventSource("/_templ/reload/events"); - templ_reloadSrc.onmessage = (event) => { - if (event && event.data === "reload") { - window.location.reload(); - } - }; - window.templ_reloadSrc = templ_reloadSrc; - window.onbeforeunload = () => window.templ_reloadSrc.close(); -})(); diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go deleted file mode 100644 index 1ce9105..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_unix.go +++ /dev/null @@ -1,85 +0,0 @@ -//go:build unix - -package run - -import ( - "context" - "errors" - "fmt" - "os" - "os/exec" - "strings" - "sync" - "syscall" - "time" -) - -var ( - m = &sync.Mutex{} - running = map[string]*exec.Cmd{} -) - -func KillAll() (err error) { - m.Lock() - defer m.Unlock() - var errs []error - for _, cmd := range running { - if err := kill(cmd); err != nil { - errs = append(errs, fmt.Errorf("failed to kill process %d: %w", cmd.Process.Pid, err)) - } - } - running = map[string]*exec.Cmd{} - return errors.Join(errs...) -} - -func kill(cmd *exec.Cmd) (err error) { - errs := make([]error, 4) - errs[0] = ignoreExited(cmd.Process.Signal(syscall.SIGINT)) - errs[1] = ignoreExited(cmd.Process.Signal(syscall.SIGTERM)) - errs[2] = ignoreExited(cmd.Wait()) - errs[3] = ignoreExited(syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)) - return errors.Join(errs...) -} - -func ignoreExited(err error) error { - if errors.Is(err, syscall.ESRCH) { - return nil - } - // Ignore *exec.ExitError - if _, ok := err.(*exec.ExitError); ok { - return nil - } - return err -} - -func Run(ctx context.Context, workingDir string, input string) (cmd *exec.Cmd, err error) { - m.Lock() - defer m.Unlock() - cmd, ok := running[input] - if ok { - if err := kill(cmd); err != nil { - return cmd, fmt.Errorf("failed to kill process %d: %w", cmd.Process.Pid, err) - } - - delete(running, input) - } - parts := strings.Fields(input) - executable := parts[0] - args := []string{} - if len(parts) > 1 { - args = append(args, parts[1:]...) - } - - cmd = exec.CommandContext(ctx, executable, args...) - // Wait for the process to finish gracefully before termination. - cmd.WaitDelay = time.Second * 3 - cmd.Env = os.Environ() - cmd.Dir = workingDir - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} - running[input] = cmd - err = cmd.Start() - return -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go deleted file mode 100644 index b021607..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/run/run_windows.go +++ /dev/null @@ -1,72 +0,0 @@ -//go:build windows - -package run - -import ( - "context" - "os" - "os/exec" - "strconv" - "strings" - "sync" -) - -var ( - m = &sync.Mutex{} - running = map[string]*exec.Cmd{} -) - -func KillAll() (err error) { - m.Lock() - defer m.Unlock() - for _, cmd := range running { - kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) - kill.Stderr = os.Stderr - kill.Stdout = os.Stdout - err := kill.Run() - if err != nil { - return err - } - } - running = map[string]*exec.Cmd{} - return -} - -func Stop(cmd *exec.Cmd) (err error) { - kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) - kill.Stderr = os.Stderr - kill.Stdout = os.Stdout - return kill.Run() -} - -func Run(ctx context.Context, workingDir string, input string) (cmd *exec.Cmd, err error) { - m.Lock() - defer m.Unlock() - cmd, ok := running[input] - if ok { - kill := exec.Command("TASKKILL", "/T", "/F", "/PID", strconv.Itoa(cmd.Process.Pid)) - kill.Stderr = os.Stderr - kill.Stdout = os.Stdout - err := kill.Run() - if err != nil { - return cmd, err - } - delete(running, input) - } - parts := strings.Fields(input) - executable := parts[0] - args := []string{} - if len(parts) > 1 { - args = append(args, parts[1:]...) - } - - cmd = exec.Command(executable, args...) - cmd.Env = os.Environ() - cmd.Dir = workingDir - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - running[input] = cmd - err = cmd.Start() - return -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go deleted file mode 100644 index fb7fe92..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/sse/server.go +++ /dev/null @@ -1,84 +0,0 @@ -package sse - -import ( - _ "embed" - "fmt" - "net/http" - "sync" - "sync/atomic" - "time" -) - -func New() *Handler { - return &Handler{ - m: new(sync.Mutex), - requests: map[int64]chan event{}, - } -} - -type Handler struct { - m *sync.Mutex - counter int64 - requests map[int64]chan event -} - -type event struct { - Type string - Data string -} - -// Send an event to all connected clients. -func (s *Handler) Send(eventType string, data string) { - s.m.Lock() - defer s.m.Unlock() - for _, f := range s.requests { - f := f - go func(f chan event) { - f <- event{ - Type: eventType, - Data: data, - } - }(f) - } -} - -func (s *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - w.Header().Set("Access-Control-Allow-Headers", "Content-Type") - w.Header().Set("Content-Type", "text/event-stream") - w.Header().Set("Cache-Control", "no-cache") - w.Header().Set("Connection", "keep-alive") - - id := atomic.AddInt64(&s.counter, 1) - s.m.Lock() - events := make(chan event) - s.requests[id] = events - s.m.Unlock() - defer func() { - s.m.Lock() - defer s.m.Unlock() - delete(s.requests, id) - close(events) - }() - - timer := time.NewTimer(0) -loop: - for { - select { - case <-timer.C: - if _, err := fmt.Fprintf(w, "event: message\ndata: ping\n\n"); err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - timer.Reset(time.Second * 5) - case e := <-events: - if _, err := fmt.Fprintf(w, "event: %s\ndata: %s\n\n", e.Type, e.Data); err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - case <-r.Context().Done(): - break loop - } - w.(http.Flusher).Flush() - } -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go b/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go deleted file mode 100644 index 4e10775..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/generatecmd/watcher/watch.go +++ /dev/null @@ -1,166 +0,0 @@ -package watcher - -import ( - "context" - "io/fs" - "os" - "path/filepath" - "regexp" - "sync" - "time" - - "github.com/a-h/templ/internal/skipdir" - "github.com/fsnotify/fsnotify" -) - -func Recursive( - ctx context.Context, - watchPattern *regexp.Regexp, - ignorePattern *regexp.Regexp, - out chan fsnotify.Event, - errors chan error, -) (w *RecursiveWatcher, err error) { - fsnw, err := fsnotify.NewWatcher() - if err != nil { - return nil, err - } - w = &RecursiveWatcher{ - ctx: ctx, - w: fsnw, - WatchPattern: watchPattern, - IgnorePattern: ignorePattern, - Events: out, - Errors: errors, - timers: make(map[timerKey]*time.Timer), - loopComplete: sync.WaitGroup{}, - } - w.loopComplete.Add(1) - go func() { - defer w.loopComplete.Done() - w.loop() - }() - return w, nil -} - -// WalkFiles walks the file tree rooted at path, sending a Create event for each -// file it encounters. -func WalkFiles(ctx context.Context, rootPath string, watchPattern, ignorePattern *regexp.Regexp, out chan fsnotify.Event) (err error) { - return fs.WalkDir(os.DirFS(rootPath), ".", func(path string, info os.DirEntry, err error) error { - if err != nil { - return nil - } - absPath, err := filepath.Abs(filepath.Join(rootPath, path)) - if err != nil { - return nil - } - if info.IsDir() && skipdir.ShouldSkip(absPath) { - return filepath.SkipDir - } - if !watchPattern.MatchString(absPath) { - return nil - } - if ignorePattern != nil && ignorePattern.MatchString(absPath) { - return nil - } - out <- fsnotify.Event{ - Name: absPath, - Op: fsnotify.Create, - } - return nil - }) -} - -type RecursiveWatcher struct { - ctx context.Context - w *fsnotify.Watcher - WatchPattern *regexp.Regexp - IgnorePattern *regexp.Regexp - Events chan fsnotify.Event - Errors chan error - timerMu sync.Mutex - timers map[timerKey]*time.Timer - loopComplete sync.WaitGroup -} - -type timerKey struct { - name string - op fsnotify.Op -} - -func timerKeyFromEvent(event fsnotify.Event) timerKey { - return timerKey{ - name: event.Name, - op: event.Op, - } -} - -func (w *RecursiveWatcher) Close() error { - w.loopComplete.Wait() - for _, timer := range w.timers { - timer.Stop() - } - return w.w.Close() -} - -func (w *RecursiveWatcher) loop() { - for { - select { - case <-w.ctx.Done(): - return - case event, ok := <-w.w.Events: - if !ok { - return - } - if event.Has(fsnotify.Create) { - if err := w.Add(event.Name); err != nil { - w.Errors <- err - } - } - // Only notify on templ related files. - if !w.WatchPattern.MatchString(event.Name) { - continue - } - // Skip files that match the ignore pattern. - if w.IgnorePattern != nil && w.IgnorePattern.MatchString(event.Name) { - continue - } - tk := timerKeyFromEvent(event) - w.timerMu.Lock() - t, ok := w.timers[tk] - w.timerMu.Unlock() - if !ok { - t = time.AfterFunc(100*time.Millisecond, func() { - if w.ctx.Err() != nil { - return - } - w.Events <- event - }) - w.timerMu.Lock() - w.timers[tk] = t - w.timerMu.Unlock() - continue - } - t.Reset(100 * time.Millisecond) - case err, ok := <-w.w.Errors: - if !ok { - return - } - w.Errors <- err - } - } -} - -func (w *RecursiveWatcher) Add(dir string) error { - return filepath.WalkDir(dir, func(dir string, info os.DirEntry, err error) error { - if err != nil { - return nil - } - if !info.IsDir() { - return nil - } - if skipdir.ShouldSkip(dir) { - return filepath.SkipDir - } - return w.w.Add(dir) - }) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go deleted file mode 100644 index eddd932..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/infocmd/main.go +++ /dev/null @@ -1,157 +0,0 @@ -package infocmd - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "log/slog" - "os" - "os/exec" - "runtime" - "strings" - - "github.com/a-h/templ" - "github.com/a-h/templ/cmd/templ/lspcmd/pls" -) - -type Arguments struct { - JSON bool `flag:"json" help:"Output info as JSON."` -} - -type Info struct { - OS struct { - GOOS string `json:"goos"` - GOARCH string `json:"goarch"` - } `json:"os"` - Go ToolInfo `json:"go"` - Gopls ToolInfo `json:"gopls"` - Templ ToolInfo `json:"templ"` -} - -type ToolInfo struct { - Location string `json:"location"` - Version string `json:"version"` - OK bool `json:"ok"` - Message string `json:"message,omitempty"` -} - -func getGoInfo() (d ToolInfo) { - // Find Go. - var err error - d.Location, err = exec.LookPath("go") - if err != nil { - d.Message = fmt.Sprintf("failed to find go: %v", err) - return - } - // Run go to find the version. - cmd := exec.Command(d.Location, "version") - v, err := cmd.Output() - if err != nil { - d.Message = fmt.Sprintf("failed to get go version, check that Go is installed: %v", err) - return - } - d.Version = strings.TrimSpace(string(v)) - d.OK = true - return -} - -func getGoplsInfo() (d ToolInfo) { - var err error - d.Location, err = pls.FindGopls() - if err != nil { - d.Message = fmt.Sprintf("failed to find gopls: %v", err) - return - } - cmd := exec.Command(d.Location, "version") - v, err := cmd.Output() - if err != nil { - d.Message = fmt.Sprintf("failed to get gopls version: %v", err) - return - } - d.Version = strings.TrimSpace(string(v)) - d.OK = true - return -} - -func getTemplInfo() (d ToolInfo) { - // Find templ. - var err error - d.Location, err = findTempl() - if err != nil { - d.Message = err.Error() - return - } - // Run templ to find the version. - cmd := exec.Command(d.Location, "version") - v, err := cmd.Output() - if err != nil { - d.Message = fmt.Sprintf("failed to get templ version: %v", err) - return - } - d.Version = strings.TrimSpace(string(v)) - if d.Version != templ.Version() { - d.Message = fmt.Sprintf("version mismatch - you're running %q at the command line, but the version in the path is %q", templ.Version(), d.Version) - return - } - d.OK = true - return -} - -func findTempl() (location string, err error) { - executableName := "templ" - if runtime.GOOS == "windows" { - executableName = "templ.exe" - } - executableName, err = exec.LookPath(executableName) - if err == nil { - // Found on the path. - return executableName, nil - } - - // Unexpected error. - if !errors.Is(err, exec.ErrNotFound) { - return "", fmt.Errorf("unexpected error looking for templ: %w", err) - } - - return "", fmt.Errorf("templ is not in the path (%q). You can install templ with `go install github.com/a-h/templ/cmd/templ@latest`", os.Getenv("PATH")) -} - -func getInfo() (d Info) { - d.OS.GOOS = runtime.GOOS - d.OS.GOARCH = runtime.GOARCH - d.Go = getGoInfo() - d.Gopls = getGoplsInfo() - d.Templ = getTemplInfo() - return -} - -func Run(ctx context.Context, log *slog.Logger, stdout io.Writer, args Arguments) (err error) { - info := getInfo() - if args.JSON { - enc := json.NewEncoder(stdout) - enc.SetIndent("", " ") - return enc.Encode(info) - } - log.Info("os", slog.String("goos", info.OS.GOOS), slog.String("goarch", info.OS.GOARCH)) - logInfo(ctx, log, "go", info.Go) - logInfo(ctx, log, "gopls", info.Gopls) - logInfo(ctx, log, "templ", info.Templ) - return nil -} - -func logInfo(ctx context.Context, log *slog.Logger, name string, ti ToolInfo) { - level := slog.LevelInfo - if !ti.OK { - level = slog.LevelError - } - args := []any{ - slog.String("location", ti.Location), - slog.String("version", ti.Version), - } - if ti.Message != "" { - args = append(args, slog.String("message", ti.Message)) - } - log.Log(ctx, level, name, args...) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go deleted file mode 100644 index 0f94502..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/handler.go +++ /dev/null @@ -1,130 +0,0 @@ -package httpdebug - -import ( - "encoding/json" - "io" - "log/slog" - "net/http" - "net/url" - - "github.com/a-h/templ" - "github.com/a-h/templ/cmd/templ/lspcmd/proxy" - "github.com/a-h/templ/cmd/templ/visualize" -) - -var log *slog.Logger - -func NewHandler(l *slog.Logger, s *proxy.Server) http.Handler { - m := http.NewServeMux() - log = l - m.HandleFunc("/templ", func(w http.ResponseWriter, r *http.Request) { - uri := r.URL.Query().Get("uri") - c, ok := s.TemplSource.Get(uri) - if !ok { - Error(w, "uri not found", http.StatusNotFound) - return - } - String(w, c.String()) - }) - m.HandleFunc("/sourcemap", func(w http.ResponseWriter, r *http.Request) { - uri := r.URL.Query().Get("uri") - sm, ok := s.SourceMapCache.Get(uri) - if !ok { - Error(w, "uri not found", http.StatusNotFound) - return - } - JSON(w, sm.SourceLinesToTarget) - }) - m.HandleFunc("/go", func(w http.ResponseWriter, r *http.Request) { - uri := r.URL.Query().Get("uri") - c, ok := s.GoSource[uri] - if !ok { - Error(w, "uri not found", http.StatusNotFound) - return - } - String(w, c) - }) - m.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - uri := r.URL.Query().Get("uri") - if uri == "" { - // List all URIs. - if err := list(s.TemplSource.URIs()).Render(r.Context(), w); err != nil { - Error(w, "failed to list URIs", http.StatusInternalServerError) - } - return - } - // Assume we've got a URI. - templSource, ok := s.TemplSource.Get(uri) - if !ok { - if !ok { - Error(w, "uri not found in document contents", http.StatusNotFound) - return - } - } - goSource, ok := s.GoSource[uri] - if !ok { - if !ok { - Error(w, "uri not found in document contents", http.StatusNotFound) - return - } - } - sm, ok := s.SourceMapCache.Get(uri) - if !ok { - Error(w, "uri not found", http.StatusNotFound) - return - } - if err := visualize.HTML(uri, templSource.String(), goSource, sm).Render(r.Context(), w); err != nil { - Error(w, "failed to visualize HTML", http.StatusInternalServerError) - } - }) - return m -} - -func getMapURL(uri string) templ.SafeURL { - return withQuery("/", uri) -} - -func getSourceMapURL(uri string) templ.SafeURL { - return withQuery("/sourcemap", uri) -} - -func getTemplURL(uri string) templ.SafeURL { - return withQuery("/templ", uri) -} - -func getGoURL(uri string) templ.SafeURL { - return withQuery("/go", uri) -} - -func withQuery(path, uri string) templ.SafeURL { - q := make(url.Values) - q.Set("uri", uri) - u := &url.URL{ - Path: path, - RawPath: path, - RawQuery: q.Encode(), - } - return templ.SafeURL(u.String()) -} - -func JSON(w http.ResponseWriter, v any) { - w.Header().Set("Content-Type", "application/json") - enc := json.NewEncoder(w) - enc.SetIndent("", " ") - if err := enc.Encode(v); err != nil { - log.Error("failed to write JSON response", slog.Any("error", err)) - } -} - -func String(w http.ResponseWriter, s string) { - if _, err := io.WriteString(w, s); err != nil { - log.Error("failed to write string response", slog.Any("error", err)) - } -} - -func Error(w http.ResponseWriter, msg string, status int) { - w.WriteHeader(status) - if _, err := io.WriteString(w, msg); err != nil { - log.Error("failed to write error response", slog.Any("error", err)) - } -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ deleted file mode 100644 index a1e7296..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list.templ +++ /dev/null @@ -1,22 +0,0 @@ -package httpdebug - -templ list(uris []string) { - <table> - <tr> - <th>File</th> - <th></th> - <th></th> - <th></th> - <th></th> - </tr> - for _, uri := range uris { - <tr> - <td>{ uri }</td> - <td><a href={ getMapURL(uri) }>Mapping</a></td> - <td><a href={ getSourceMapURL(uri) }>Source Map</a></td> - <td><a href={ getTemplURL(uri) }>Templ</a></td> - <td><a href={ getGoURL(uri) }>Go</a></td> - </tr> - } - </table> -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go deleted file mode 100644 index 170a26c..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/httpdebug/list_templ.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -package httpdebug - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func list(uris []string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<table><tr><th>File</th><th></th><th></th><th></th><th></th></tr>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, uri := range uris { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<tr><td>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(uri) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 14, Col: 13} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</td><td><a href=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 templ.SafeURL - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(getMapURL(uri)) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 15, Col: 32} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\">Mapping</a></td><td><a href=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 templ.SafeURL - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinURLErrs(getSourceMapURL(uri)) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 16, Col: 38} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "\">Source Map</a></td><td><a href=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 templ.SafeURL - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinURLErrs(getTemplURL(uri)) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 17, Col: 34} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\">Templ</a></td><td><a href=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 templ.SafeURL - templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(getGoURL(uri)) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/lspcmd/httpdebug/list.templ`, Line: 18, Col: 31} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\">Go</a></td></tr>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</table>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go deleted file mode 100644 index dbe522f..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/main.go +++ /dev/null @@ -1,145 +0,0 @@ -package lspcmd - -import ( - "context" - "fmt" - "io" - "log/slog" - "net/http" - "os" - "os/signal" - - "github.com/a-h/templ/cmd/templ/lspcmd/httpdebug" - "github.com/a-h/templ/cmd/templ/lspcmd/pls" - "github.com/a-h/templ/cmd/templ/lspcmd/proxy" - "github.com/a-h/templ/lsp/jsonrpc2" - "github.com/a-h/templ/lsp/protocol" - - _ "net/http/pprof" -) - -type Arguments struct { - Log string - GoplsLog string - GoplsRPCTrace bool - GoplsRemote string - // PPROF sets whether to start a profiling server on localhost:9999 - PPROF bool - // HTTPDebug sets the HTTP endpoint to listen on. Leave empty for no web debug. - HTTPDebug string - // NoPreload disables preloading of templ files on server startup (useful for large monorepos) - NoPreload bool -} - -func Run(stdin io.Reader, stdout, stderr io.Writer, args Arguments) (err error) { - ctx := context.Background() - ctx, cancel := context.WithCancel(ctx) - signalChan := make(chan os.Signal, 1) - signal.Notify(signalChan, os.Interrupt) - defer func() { - signal.Stop(signalChan) - cancel() - }() - if args.PPROF { - go func() { - _ = http.ListenAndServe("localhost:9999", nil) - }() - } - go func() { - select { - case <-signalChan: // First signal, cancel context. - cancel() - case <-ctx.Done(): - } - <-signalChan // Second signal, hard exit. - os.Exit(2) - }() - log := slog.New(slog.NewJSONHandler(io.Discard, nil)) - if args.Log != "" { - file, err := os.OpenFile(args.Log, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600) - if err != nil { - return fmt.Errorf("failed to open log file: %w", err) - } - defer func() { - _ = file.Close() - }() - - // Create a new logger with a file writer - log = slog.New(slog.NewJSONHandler(file, nil)) - log.Debug("Logging to file", slog.String("file", args.Log)) - } - templStream := jsonrpc2.NewStream(newStdRwc(log, "templStream", stdout, stdin)) - return run(ctx, log, templStream, args) -} - -func run(ctx context.Context, log *slog.Logger, templStream jsonrpc2.Stream, args Arguments) (err error) { - log.Info("lsp: starting up...") - defer func() { - if r := recover(); r != nil { - log.Error("handled panic", slog.Any("recovered", r)) - } - }() - - log.Info("lsp: starting gopls...") - rwc, err := pls.NewGopls(ctx, log, pls.Options{ - Log: args.GoplsLog, - RPCTrace: args.GoplsRPCTrace, - Remote: args.GoplsRemote, - }) - if err != nil { - log.Error("failed to start gopls", slog.Any("error", err)) - os.Exit(1) - } - - cache := proxy.NewSourceMapCache() - diagnosticCache := proxy.NewDiagnosticCache() - - log.Info("creating gopls client") - clientProxy, clientInit := proxy.NewClient(log, cache, diagnosticCache) - _, goplsConn, goplsServer := protocol.NewClient(ctx, clientProxy, jsonrpc2.NewStream(rwc), log) - defer func() { - if closeErr := goplsConn.Close(); closeErr != nil { - log.Error("failed to close gopls connection", slog.Any("error", closeErr)) - } - }() - - log.Info("creating proxy") - // Create the proxy to sit between. - serverProxy := proxy.NewServer(log, goplsServer, cache, diagnosticCache, args.NoPreload) - - // Create templ server. - log.Info("creating templ server") - _, templConn, templClient := protocol.NewServer(context.Background(), serverProxy, templStream, log) - defer func() { - if err = templConn.Close(); err != nil { - log.Error("failed to close templ connection", slog.Any("error", err)) - } - }() - - // Allow both the server and the client to initiate outbound requests. - clientInit(templClient) - - // Start the web server if required. - if args.HTTPDebug != "" { - log.Info("starting debug http server", slog.String("addr", args.HTTPDebug)) - h := httpdebug.NewHandler(log, serverProxy) - go func() { - if err := http.ListenAndServe(args.HTTPDebug, h); err != nil { - log.Error("web server failed", slog.Any("error", err)) - } - }() - } - - log.Info("listening") - - select { - case <-ctx.Done(): - log.Info("context closed") - case <-templConn.Done(): - log.Info("templConn closed") - case <-goplsConn.Done(): - log.Info("goplsConn closed") - } - log.Info("shutdown complete") - return -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go deleted file mode 100644 index f5b4df5..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/pls/main.go +++ /dev/null @@ -1,128 +0,0 @@ -package pls - -import ( - "context" - "errors" - "fmt" - "io" - "log/slog" - "os" - "os/exec" - "path" - "runtime" -) - -// Options for the gopls client. -type Options struct { - Log string - RPCTrace bool - Remote string -} - -// AsArguments converts the options into command line arguments for gopls. -func (opts Options) AsArguments() []string { - var args []string - if opts.Log != "" { - args = append(args, "-logfile", opts.Log) - } - if opts.RPCTrace { - args = append(args, "-rpc.trace") - } - if opts.Remote != "" { - args = append(args, "-remote", opts.Remote) - } - return args -} - -func FindGopls() (location string, err error) { - executableName := "gopls" - if runtime.GOOS == "windows" { - executableName = "gopls.exe" - } - - pathLocation, err := exec.LookPath(executableName) - if err == nil { - // Found on the path. - return pathLocation, nil - } - // Unexpected error. - if !errors.Is(err, exec.ErrNotFound) { - return "", fmt.Errorf("unexpected error looking for gopls: %w", err) - } - - home, err := os.UserHomeDir() - if err != nil { - return "", fmt.Errorf("unexpected error looking for gopls: %w", err) - } - - // Probe standard locations. - locations := []string{ - path.Join(home, "go", "bin", executableName), - path.Join(home, ".local", "bin", executableName), - } - for _, location := range locations { - _, err = os.Stat(location) - if err != nil { - continue - } - // Found in a standard location. - return location, nil - } - - return "", fmt.Errorf("cannot find gopls on the path (%q), in $HOME/go/bin or $HOME/.local/bin/gopls. You can install gopls with `go install golang.org/x/tools/gopls@latest`", os.Getenv("PATH")) -} - -// NewGopls starts gopls and opens up a jsonrpc2 connection to it. -func NewGopls(ctx context.Context, log *slog.Logger, opts Options) (rwc io.ReadWriteCloser, err error) { - location, err := FindGopls() - if err != nil { - return nil, err - } - cmd := exec.Command(location, opts.AsArguments()...) - return newProcessReadWriteCloser(log, cmd) -} - -// newProcessReadWriteCloser creates a processReadWriteCloser to allow stdin/stdout to be used as -// a JSON RPC 2.0 transport. -func newProcessReadWriteCloser(logger *slog.Logger, cmd *exec.Cmd) (rwc processReadWriteCloser, err error) { - stdin, err := cmd.StdinPipe() - if err != nil { - return - } - stdout, err := cmd.StdoutPipe() - if err != nil { - return - } - rwc = processReadWriteCloser{ - in: stdin, - out: stdout, - } - go func() { - if err := cmd.Run(); err != nil { - logger.Error("gopls command error", slog.Any("error", err)) - } - }() - return -} - -type processReadWriteCloser struct { - in io.WriteCloser - out io.ReadCloser -} - -func (prwc processReadWriteCloser) Read(p []byte) (n int, err error) { - return prwc.out.Read(p) -} - -func (prwc processReadWriteCloser) Write(p []byte) (n int, err error) { - return prwc.in.Write(p) -} - -func (prwc processReadWriteCloser) Close() error { - errInClose := prwc.in.Close() - errOutClose := prwc.out.Close() - if errInClose != nil || errOutClose != nil { - return fmt.Errorf("error closing process - in: %v, out: %v", errInClose, errOutClose) - } - return nil -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go deleted file mode 100644 index cf1248b..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/client.go +++ /dev/null @@ -1,146 +0,0 @@ -package proxy - -import ( - "context" - "fmt" - "log/slog" - "strings" - - lsp "github.com/a-h/templ/lsp/protocol" -) - -// Client is responsible for rewriting messages that are -// originated from gopls, and are sent to the client. -// -// Since `gopls` is working on Go files, and this is the `templ` LSP, -// the job of this code is to rewrite incoming requests to adjust the -// file name from `*_templ.go` to `*.templ`, and to remap the char -// positions where required. -type Client struct { - Log *slog.Logger - Target lsp.Client - SourceMapCache *SourceMapCache - DiagnosticCache *DiagnosticCache -} - -func NewClient(log *slog.Logger, cache *SourceMapCache, diagnosticCache *DiagnosticCache) (c *Client, init func(lsp.Client)) { - c = &Client{ - Log: log, - SourceMapCache: cache, - DiagnosticCache: diagnosticCache, - } - return c, func(target lsp.Client) { - c.Target = target - } -} - -func (p Client) Progress(ctx context.Context, params *lsp.ProgressParams) (err error) { - p.Log.Info("client <- server: Progress") - return p.Target.Progress(ctx, params) -} - -func (p Client) WorkDoneProgressCreate(ctx context.Context, params *lsp.WorkDoneProgressCreateParams) (err error) { - p.Log.Info("client <- server: WorkDoneProgressCreate") - return p.Target.WorkDoneProgressCreate(ctx, params) -} - -func (p Client) LogMessage(ctx context.Context, params *lsp.LogMessageParams) (err error) { - p.Log.Info("client <- server: LogMessage", slog.String("message", params.Message)) - return p.Target.LogMessage(ctx, params) -} - -func (p Client) PublishDiagnostics(ctx context.Context, params *lsp.PublishDiagnosticsParams) (err error) { - p.Log.Info("client <- server: PublishDiagnostics") - if strings.HasSuffix(string(params.URI), "go.mod") { - p.Log.Info("client <- server: PublishDiagnostics: skipping go.mod diagnostics") - return nil - } - // Log diagnostics. - for i, diagnostic := range params.Diagnostics { - p.Log.Info(fmt.Sprintf("client <- server: PublishDiagnostics: [%d]", i), slog.Any("diagnostic", diagnostic)) - } - // Get the sourcemap from the cache. - uri := strings.TrimSuffix(string(params.URI), "_templ.go") + ".templ" - sourceMap, ok := p.SourceMapCache.Get(uri) - if !ok { - p.Log.Error("unable to complete because the sourcemap for the URI doesn't exist in the cache", slog.String("uri", uri)) - return fmt.Errorf("unable to complete because the sourcemap for %q doesn't exist in the cache, has the didOpen notification been sent yet?", uri) - } - params.URI = lsp.DocumentURI(uri) - // Rewrite the positions. - for i, item := range params.Diagnostics { - start, ok := sourceMap.SourcePositionFromTarget(item.Range.Start.Line, item.Range.Start.Character) - if !ok { - continue - } - if item.Range.Start.Line == item.Range.End.Line { - length := item.Range.End.Character - item.Range.Start.Character - item.Range.Start.Line = start.Line - item.Range.Start.Character = start.Col - item.Range.End.Line = start.Line - item.Range.End.Character = start.Col + length - params.Diagnostics[i] = item - p.Log.Info(fmt.Sprintf("diagnostic [%d] rewritten", i), slog.Any("diagnostic", item)) - continue - } - end, ok := sourceMap.SourcePositionFromTarget(item.Range.End.Line, item.Range.End.Character) - if !ok { - continue - } - item.Range.Start.Line = start.Line - item.Range.Start.Character = start.Col - item.Range.End.Line = end.Line - item.Range.End.Character = end.Col - params.Diagnostics[i] = item - p.Log.Info(fmt.Sprintf("diagnostic [%d] rewritten", i), slog.Any("diagnostic", item)) - } - params.Diagnostics = p.DiagnosticCache.AddTemplDiagnostics(uri, params.Diagnostics) - err = p.Target.PublishDiagnostics(ctx, params) - return err -} - -func (p Client) ShowMessage(ctx context.Context, params *lsp.ShowMessageParams) (err error) { - p.Log.Info("client <- server: ShowMessage", slog.String("message", params.Message)) - if strings.HasPrefix(params.Message, "Do not edit this file!") { - return - } - if strings.HasPrefix(params.Message, "Warning: editing") { - return - } - return p.Target.ShowMessage(ctx, params) -} - -func (p Client) ShowMessageRequest(ctx context.Context, params *lsp.ShowMessageRequestParams) (result *lsp.MessageActionItem, err error) { - p.Log.Info("client <- server: ShowMessageRequest", slog.String("message", params.Message)) - return p.Target.ShowMessageRequest(ctx, params) -} - -func (p Client) Telemetry(ctx context.Context, params any) (err error) { - p.Log.Info("client <- server: Telemetry") - return p.Target.Telemetry(ctx, params) -} - -func (p Client) RegisterCapability(ctx context.Context, params *lsp.RegistrationParams) (err error) { - p.Log.Info("client <- server: RegisterCapability") - return p.Target.RegisterCapability(ctx, params) -} - -func (p Client) UnregisterCapability(ctx context.Context, params *lsp.UnregistrationParams) (err error) { - p.Log.Info("client <- server: UnregisterCapability") - return p.Target.UnregisterCapability(ctx, params) -} - -func (p Client) ApplyEdit(ctx context.Context, params *lsp.ApplyWorkspaceEditParams) (result *lsp.ApplyWorkspaceEditResponse, err error) { - p.Log.Info("client <- server: ApplyEdit") - return p.Target.ApplyEdit(ctx, params) -} - -func (p Client) Configuration(ctx context.Context, params *lsp.ConfigurationParams) (result []any, err error) { - p.Log.Info("client <- server: Configuration") - return p.Target.Configuration(ctx, params) -} - -func (p Client) WorkspaceFolders(ctx context.Context) (result []lsp.WorkspaceFolder, err error) { - p.Log.Info("client <- server: WorkspaceFolders") - return p.Target.WorkspaceFolders(ctx) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go deleted file mode 100644 index 9af985b..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/diagnosticcache.go +++ /dev/null @@ -1,61 +0,0 @@ -package proxy - -import ( - "sync" - - lsp "github.com/a-h/templ/lsp/protocol" -) - -func NewDiagnosticCache() *DiagnosticCache { - return &DiagnosticCache{ - m: &sync.Mutex{}, - cache: make(map[string]fileDiagnostic), - } -} - -type fileDiagnostic struct { - templDiagnostics []lsp.Diagnostic - goplsDiagnostics []lsp.Diagnostic -} - -type DiagnosticCache struct { - m *sync.Mutex - cache map[string]fileDiagnostic -} - -func zeroLengthSliceIfNil(diags []lsp.Diagnostic) []lsp.Diagnostic { - if diags == nil { - return make([]lsp.Diagnostic, 0) - } - return diags -} - -func (dc *DiagnosticCache) AddTemplDiagnostics(uri string, goDiagnostics []lsp.Diagnostic) []lsp.Diagnostic { - goDiagnostics = zeroLengthSliceIfNil(goDiagnostics) - dc.m.Lock() - defer dc.m.Unlock() - diag := dc.cache[uri] - diag.goplsDiagnostics = goDiagnostics - diag.templDiagnostics = zeroLengthSliceIfNil(diag.templDiagnostics) - dc.cache[uri] = diag - return append(diag.templDiagnostics, goDiagnostics...) -} - -func (dc *DiagnosticCache) ClearTemplDiagnostics(uri string) { - dc.m.Lock() - defer dc.m.Unlock() - diag := dc.cache[uri] - diag.templDiagnostics = make([]lsp.Diagnostic, 0) - dc.cache[uri] = diag -} - -func (dc *DiagnosticCache) AddGoDiagnostics(uri string, templDiagnostics []lsp.Diagnostic) []lsp.Diagnostic { - templDiagnostics = zeroLengthSliceIfNil(templDiagnostics) - dc.m.Lock() - defer dc.m.Unlock() - diag := dc.cache[uri] - diag.templDiagnostics = templDiagnostics - diag.goplsDiagnostics = zeroLengthSliceIfNil(diag.goplsDiagnostics) - dc.cache[uri] = diag - return append(diag.goplsDiagnostics, templDiagnostics...) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go deleted file mode 100644 index 07819ab..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/documentcontents.go +++ /dev/null @@ -1,215 +0,0 @@ -package proxy - -import ( - "fmt" - "log/slog" - "strings" - "sync" - - lsp "github.com/a-h/templ/lsp/protocol" -) - -// newDocumentContents creates a document content processing tool. -func newDocumentContents(log *slog.Logger) *DocumentContents { - return &DocumentContents{ - m: new(sync.Mutex), - uriToContents: make(map[string]*Document), - log: log, - } -} - -type DocumentContents struct { - m *sync.Mutex - uriToContents map[string]*Document - log *slog.Logger -} - -// Set the contents of a document. -func (dc *DocumentContents) Set(uri string, d *Document) { - dc.m.Lock() - defer dc.m.Unlock() - dc.uriToContents[uri] = d -} - -// Get the contents of a document. -func (dc *DocumentContents) Get(uri string) (d *Document, ok bool) { - dc.m.Lock() - defer dc.m.Unlock() - d, ok = dc.uriToContents[uri] - return -} - -// Delete a document from memory. -func (dc *DocumentContents) Delete(uri string) { - dc.m.Lock() - defer dc.m.Unlock() - delete(dc.uriToContents, uri) -} - -func (dc *DocumentContents) URIs() (uris []string) { - dc.m.Lock() - defer dc.m.Unlock() - uris = make([]string, len(dc.uriToContents)) - var i int - for k := range dc.uriToContents { - uris[i] = k - i++ - } - return uris -} - -// Apply changes to the document from the client, and return a list of change requests to send back to the client. -func (dc *DocumentContents) Apply(uri string, changes []lsp.TextDocumentContentChangeEvent) (d *Document, err error) { - dc.m.Lock() - defer dc.m.Unlock() - var ok bool - d, ok = dc.uriToContents[uri] - if !ok { - err = fmt.Errorf("document not found") - return - } - for _, change := range changes { - d.Apply(change.Range, change.Text) - } - return -} - -func NewDocument(log *slog.Logger, s string) *Document { - return &Document{ - Log: log, - Lines: strings.Split(s, "\n"), - } -} - -type Document struct { - Log *slog.Logger - Lines []string -} - -func (d *Document) LineLengths() (lens []int) { - lens = make([]int, len(d.Lines)) - for i, l := range d.Lines { - lens[i] = len(l) - } - return -} - -func (d *Document) Len() (line, col int) { - line = len(d.Lines) - col = len(d.Lines[len(d.Lines)-1]) - return -} - -func (d *Document) Overwrite(fromLine, fromCol, toLine, toCol int, lines []string) { - suffix := d.Lines[toLine][toCol:] - toLen := d.LineLengths()[toLine] - d.Delete(fromLine, fromCol, toLine, toLen) - lines[len(lines)-1] = lines[len(lines)-1] + suffix - d.Insert(fromLine, fromCol, lines) -} - -func (d *Document) Insert(line, col int, lines []string) { - prefix := d.Lines[line][:col] - suffix := d.Lines[line][col:] - lines[0] = prefix + lines[0] - d.Lines[line] = lines[0] - - if len(lines) > 1 { - d.InsertLines(line+1, lines[1:]) - } - - d.Lines[line+len(lines)-1] = lines[len(lines)-1] + suffix -} - -func (d *Document) InsertLines(i int, withLines []string) { - d.Lines = append(d.Lines[:i], append(withLines, d.Lines[i:]...)...) -} - -func (d *Document) Delete(fromLine, fromCol, toLine, toCol int) { - prefix := d.Lines[fromLine][:fromCol] - suffix := d.Lines[toLine][toCol:] - - // Delete intermediate lines. - deleteFrom := fromLine - deleteTo := fromLine + (toLine - fromLine) - d.DeleteLines(deleteFrom, deleteTo) - - // Merge the contents of the final line. - d.Lines[fromLine] = prefix + suffix -} - -func (d *Document) DeleteLines(i, j int) { - d.Lines = append(d.Lines[:i], d.Lines[j:]...) -} - -func (d *Document) String() string { - return strings.Join(d.Lines, "\n") -} - -func (d *Document) Replace(with string) { - d.Lines = strings.Split(with, "\n") -} - -func (d *Document) Apply(r *lsp.Range, with string) { - withLines := strings.Split(with, "\n") - d.normalize(r) - if d.isWholeDocument(r) { - d.Lines = withLines - return - } - if d.isInsert(r, with) { - d.Insert(int(r.Start.Line), int(r.Start.Character), withLines) - return - } - if d.isDelete(r, with) { - d.Delete(int(r.Start.Line), int(r.Start.Character), int(r.End.Line), int(r.End.Character)) - return - } - if d.isOverwrite(r, with) { - d.Overwrite(int(r.Start.Line), int(r.Start.Character), int(r.End.Line), int(r.End.Character), withLines) - } -} - -func (d *Document) normalize(r *lsp.Range) { - if r == nil { - return - } - lens := d.LineLengths() - if r.Start.Line >= uint32(len(lens)) { - r.Start.Line = uint32(len(lens) - 1) - r.Start.Character = uint32(lens[r.Start.Line]) - } - if r.Start.Character > uint32(lens[r.Start.Line]) { - r.Start.Character = uint32(lens[r.Start.Line]) - } - if r.End.Line >= uint32(len(lens)) { - r.End.Line = uint32(len(lens) - 1) - r.End.Character = uint32(lens[r.End.Line]) - } - if r.End.Character > uint32(lens[r.End.Line]) { - r.End.Character = uint32(lens[r.End.Line]) - } -} - -func (d *Document) isOverwrite(r *lsp.Range, with string) bool { - return (r.End.Line != r.Start.Line || r.Start.Character != r.End.Character) && with != "" -} - -func (d *Document) isInsert(r *lsp.Range, with string) bool { - return r.End.Line == r.Start.Line && r.Start.Character == r.End.Character && with != "" -} - -func (d *Document) isDelete(r *lsp.Range, with string) bool { - return (r.End.Line != r.Start.Line || r.Start.Character != r.End.Character) && with == "" -} - -func (d *Document) isWholeDocument(r *lsp.Range) bool { - if r == nil { - return true - } - if r.Start.Line != 0 || r.Start.Character != 0 { - return false - } - l, c := d.Len() - return r.End.Line == uint32(l) || r.End.Character == uint32(c) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go deleted file mode 100644 index 3afb472..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/rewrite.go +++ /dev/null @@ -1,24 +0,0 @@ -package proxy - -import ( - "path" - "strings" - - lsp "github.com/a-h/templ/lsp/protocol" -) - -func convertTemplToGoURI(templURI lsp.DocumentURI) (isTemplFile bool, goURI lsp.DocumentURI) { - base, fileName := path.Split(string(templURI)) - if !strings.HasSuffix(fileName, ".templ") { - return - } - return true, lsp.DocumentURI(base + (strings.TrimSuffix(fileName, ".templ") + "_templ.go")) -} - -func convertTemplGoToTemplURI(goURI lsp.DocumentURI) (isTemplGoFile bool, templURI lsp.DocumentURI) { - base, fileName := path.Split(string(goURI)) - if !strings.HasSuffix(fileName, "_templ.go") { - return - } - return true, lsp.DocumentURI(base + (strings.TrimSuffix(fileName, "_templ.go") + ".templ")) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go deleted file mode 100644 index d600e63..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/server.go +++ /dev/null @@ -1,1345 +0,0 @@ -package proxy - -import ( - "context" - "fmt" - "log/slog" - "os" - "path/filepath" - "regexp" - "strings" - - "github.com/a-h/parse" - "github.com/a-h/templ/internal/imports" - "github.com/a-h/templ/internal/lazyloader" - lsp "github.com/a-h/templ/lsp/protocol" - "github.com/a-h/templ/lsp/uri" - - "github.com/a-h/templ" - "github.com/a-h/templ/generator" - "github.com/a-h/templ/parser/v2" -) - -// Server is responsible for rewriting messages that are -// originated from the text editor, and need to be sent to gopls. -// -// Since the editor is working on `templ` files, and `gopls` works -// on Go files, the job of this code is to rewrite incoming requests -// to adjust the file names from `*.templ` to `*_templ.go` and to -// remap the line/character positions in the `templ` files to their -// corresponding locations in the Go file. -// -// This allows gopls to operate as usual. -// -// This code also rewrites the responses back from gopls to do the -// inverse operation - to put the file names back, and readjust any -// character positions. -type Server struct { - Log *slog.Logger - Target lsp.Server - SourceMapCache *SourceMapCache - DiagnosticCache *DiagnosticCache - TemplSource *DocumentContents - GoSource map[string]string - NoPreload bool - preLoadURIs []*lsp.DidOpenTextDocumentParams - templDocLazyLoader lazyloader.TemplDocLazyLoader -} - -func NewServer(log *slog.Logger, target lsp.Server, cache *SourceMapCache, diagnosticCache *DiagnosticCache, noPreload bool) (s *Server) { - return &Server{ - Log: log, - Target: target, - SourceMapCache: cache, - DiagnosticCache: diagnosticCache, - TemplSource: newDocumentContents(log), - GoSource: make(map[string]string), - NoPreload: noPreload, - } -} - -// updatePosition maps positions and filenames from source templ files into the target *.go files. -func (p *Server) updatePosition(templURI lsp.DocumentURI, current lsp.Position) (ok bool, goURI lsp.DocumentURI, updated lsp.Position) { - log := p.Log.With(slog.String("uri", string(templURI))) - var isTemplFile bool - if isTemplFile, goURI = convertTemplToGoURI(templURI); !isTemplFile { - return false, templURI, current - } - sourceMap, ok := p.SourceMapCache.Get(string(templURI)) - if !ok { - log.Warn("completion: sourcemap not found in cache, it could be that didOpen was not called") - return - } - // Map from the source position to target Go position. - to, ok := sourceMap.TargetPositionFromSource(current.Line, current.Character) - if !ok { - log.Info("updatePosition: not found", slog.String("from", fmt.Sprintf("%d:%d", current.Line, current.Character))) - return false, templURI, current - } - log.Info("updatePosition: found", slog.String("fromTempl", fmt.Sprintf("%d:%d", current.Line, current.Character)), - slog.String("toGo", fmt.Sprintf("%d:%d", to.Line, to.Col))) - updated.Line = to.Line - updated.Character = to.Col - - return true, goURI, updated -} - -func (p *Server) convertTemplRangeToGoRange(templURI lsp.DocumentURI, input lsp.Range) (output lsp.Range, ok bool) { - output = input - var sourceMap *parser.SourceMap - sourceMap, ok = p.SourceMapCache.Get(string(templURI)) - if !ok { - p.Log.Warn("templ->go: sourcemap not found in cache") - return - } - // Map from the source position to target Go position. - start, ok := sourceMap.TargetPositionFromSource(input.Start.Line, input.Start.Character) - if ok { - output.Start.Line = start.Line - output.Start.Character = start.Col - } - end, ok := sourceMap.TargetPositionFromSource(input.End.Line, input.End.Character) - if ok { - output.End.Line = end.Line - output.End.Character = end.Col - } - return -} - -func (p *Server) convertGoRangeToTemplRange(templURI lsp.DocumentURI, input lsp.Range) (output lsp.Range) { - output = input - sourceMap, ok := p.SourceMapCache.Get(string(templURI)) - if !ok { - p.Log.Warn("go->templ: sourcemap not found in cache") - return - } - // Map from the source position to target Go position. - start, startPositionMapped := sourceMap.SourcePositionFromTarget(input.Start.Line, input.Start.Character) - if startPositionMapped { - output.Start.Line = start.Line - output.Start.Character = start.Col - } - end, endPositionMapped := sourceMap.SourcePositionFromTarget(input.End.Line, input.End.Character) - if endPositionMapped { - output.End.Line = end.Line - output.End.Character = end.Col - } - if !startPositionMapped || !endPositionMapped { - p.Log.Warn("go->templ: range not found in sourcemap", slog.Any("range", input)) - } - return -} - -// parseTemplate parses the templ file content, and notifies the end user via the LSP about how it went. -func (p *Server) parseTemplate(ctx context.Context, uri uri.URI, templateText string) (template *parser.TemplateFile, ok bool, err error) { - template, err = parser.ParseString(templateText) - if err != nil { - msg := &lsp.PublishDiagnosticsParams{ - URI: uri, - Diagnostics: []lsp.Diagnostic{ - { - Severity: lsp.DiagnosticSeverityError, - Code: "", - Source: "templ", - Message: err.Error(), - }, - }, - } - if pe, isParserError := err.(parse.ParseError); isParserError { - msg.Diagnostics[0].Range = lsp.Range{ - Start: lsp.Position{ - Line: uint32(pe.Pos.Line), - Character: uint32(pe.Pos.Col), - }, - End: lsp.Position{ - Line: uint32(pe.Pos.Line), - Character: uint32(pe.Pos.Col), - }, - } - } - msg.Diagnostics = p.DiagnosticCache.AddGoDiagnostics(string(uri), msg.Diagnostics) - err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, msg) - if err != nil { - p.Log.Error("failed to publish error diagnostics", slog.Any("error", err)) - } - // If the template was even partially parsed, it's still potentially useful. - if template != nil { - template.Filepath = string(uri) - } - return - } - template.Filepath = string(uri) - parsedDiagnostics, err := parser.Diagnose(template) - if err != nil { - return - } - ok = true - if len(parsedDiagnostics) > 0 { - msg := &lsp.PublishDiagnosticsParams{ - URI: uri, - } - for _, d := range parsedDiagnostics { - msg.Diagnostics = append(msg.Diagnostics, lsp.Diagnostic{ - Severity: lsp.DiagnosticSeverityWarning, - Code: "", - Source: "templ", - Message: d.Message, - Range: lsp.Range{ - Start: lsp.Position{ - Line: uint32(d.Range.From.Line), - Character: uint32(d.Range.From.Col), - }, - End: lsp.Position{ - Line: uint32(d.Range.To.Line), - Character: uint32(d.Range.To.Col), - }, - }, - }) - } - msg.Diagnostics = p.DiagnosticCache.AddGoDiagnostics(string(uri), msg.Diagnostics) - err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, msg) - if err != nil { - p.Log.Error("failed to publish error diagnostics", slog.Any("error", err)) - } - return - } - // Clear templ diagnostics. - p.DiagnosticCache.ClearTemplDiagnostics(string(uri)) - err = lsp.ClientFromContext(ctx).PublishDiagnostics(ctx, &lsp.PublishDiagnosticsParams{ - URI: uri, - // Cannot be nil as per https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#publishDiagnosticsParams - Diagnostics: []lsp.Diagnostic{}, - }) - if err != nil { - p.Log.Error("failed to publish diagnostics", slog.Any("error", err)) - return - } - return -} - -func (p *Server) Initialize(ctx context.Context, params *lsp.InitializeParams) (result *lsp.InitializeResult, err error) { - p.Log.Info("client -> server: Initialize") - defer p.Log.Info("client -> server: Initialize end") - result, err = p.Target.Initialize(ctx, params) - if err != nil { - p.Log.Error("Initialize failed", slog.Any("error", err)) - } - // Add the '<' and '{' trigger so that we can do snippets for tags. - if result.Capabilities.CompletionProvider == nil { - result.Capabilities.CompletionProvider = &lsp.CompletionOptions{} - } - result.Capabilities.CompletionProvider.TriggerCharacters = append(result.Capabilities.CompletionProvider.TriggerCharacters, "{", "<") - // Remove all the gopls commands. - if result.Capabilities.ExecuteCommandProvider == nil { - result.Capabilities.ExecuteCommandProvider = &lsp.ExecuteCommandOptions{} - } - result.Capabilities.ExecuteCommandProvider.Commands = []string{} - result.Capabilities.DocumentFormattingProvider = true - result.Capabilities.SemanticTokensProvider = nil - result.Capabilities.DocumentRangeFormattingProvider = false - result.Capabilities.TextDocumentSync = lsp.TextDocumentSyncOptions{ - OpenClose: true, - Change: lsp.TextDocumentSyncKindFull, - WillSave: false, - WillSaveWaitUntil: false, - Save: &lsp.SaveOptions{IncludeText: true}, - } - - if p.NoPreload { - p.templDocLazyLoader = lazyloader.New(lazyloader.NewParams{ - TemplDocHandler: p, - OpenDocSources: p.GoSource, - }) - } else { - p.preload(ctx, params.WorkspaceFolders) - } - - result.ServerInfo.Name = "templ-lsp" - result.ServerInfo.Version = templ.Version() - - return result, err -} - -func (p *Server) preload(ctx context.Context, workspaceFolders []lsp.WorkspaceFolder) { - for _, c := range workspaceFolders { - path := strings.TrimPrefix(c.URI, "file://") - werr := filepath.Walk(path, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - p.Log.Info("found file", slog.String("path", path)) - uri := uri.URI("file://" + path) - isTemplFile, goURI := convertTemplToGoURI(uri) - - if !isTemplFile { - return nil - } - - b, err := os.ReadFile(path) - if err != nil { - return err - } - p.TemplSource.Set(string(uri), NewDocument(p.Log, string(b))) - // Parse the template. - template, _, err := p.parseTemplate(ctx, uri, string(b)) - if err != nil { - // It's expected to have some failures while parsing the template, since - // you are likely to have invalid docs while you're typing. - p.Log.Info("parseTemplate failure", slog.Any("error", err)) - } - w := new(strings.Builder) - generatorOutput, err := generator.Generate(template, w) - if err != nil { - // It's expected to have some failures while generating code from the template, since - // you are likely to have invalid docs while you're typing. - p.Log.Info("generator failure", slog.Any("error", err)) - } - p.Log.Info("setting source map cache contents", slog.String("uri", string(uri))) - p.SourceMapCache.Set(string(uri), generatorOutput.SourceMap) - // Set the Go contents. - p.GoSource[string(uri)] = w.String() - - didOpenParams := &lsp.DidOpenTextDocumentParams{ - TextDocument: lsp.TextDocumentItem{ - URI: goURI, - Text: w.String(), - Version: 1, - LanguageID: "go", - }, - } - - p.preLoadURIs = append(p.preLoadURIs, didOpenParams) - return nil - }) - if werr != nil { - p.Log.Error("walk error", slog.Any("error", werr)) - } - } -} - -func (p *Server) Initialized(ctx context.Context, params *lsp.InitializedParams) (err error) { - p.Log.Info("client -> server: Initialized") - defer p.Log.Info("client -> server: Initialized end") - goInitErr := p.Target.Initialized(ctx, params) - - for i, doParams := range p.preLoadURIs { - doErr := p.Target.DidOpen(ctx, doParams) - if doErr != nil { - return doErr - } - p.preLoadURIs[i] = nil - } - - return goInitErr -} - -func (p *Server) Shutdown(ctx context.Context) (err error) { - p.Log.Info("client -> server: Shutdown") - defer p.Log.Info("client -> server: Shutdown end") - return p.Target.Shutdown(ctx) -} - -func (p *Server) Exit(ctx context.Context) (err error) { - p.Log.Info("client -> server: Exit") - defer p.Log.Info("client -> server: Exit end") - return p.Target.Exit(ctx) -} - -func (p *Server) WorkDoneProgressCancel(ctx context.Context, params *lsp.WorkDoneProgressCancelParams) (err error) { - p.Log.Info("client -> server: WorkDoneProgressCancel") - defer p.Log.Info("client -> server: WorkDoneProgressCancel end") - return p.Target.WorkDoneProgressCancel(ctx, params) -} - -func (p *Server) LogTrace(ctx context.Context, params *lsp.LogTraceParams) (err error) { - p.Log.Info("client -> server: LogTrace", slog.String("message", params.Message)) - defer p.Log.Info("client -> server: LogTrace end") - return p.Target.LogTrace(ctx, params) -} - -func (p *Server) SetTrace(ctx context.Context, params *lsp.SetTraceParams) (err error) { - p.Log.Info("client -> server: SetTrace") - defer p.Log.Info("client -> server: SetTrace end") - return p.Target.SetTrace(ctx, params) -} - -var supportedCodeActions = map[string]bool{} - -func (p *Server) CodeAction(ctx context.Context, params *lsp.CodeActionParams) (result []lsp.CodeAction, err error) { - p.Log.Info("client -> server: CodeAction", slog.Any("params", params)) - defer p.Log.Info("client -> server: CodeAction end") - - if p.NoPreload && !p.templDocLazyLoader.HasLoaded(params.TextDocument) { - p.Log.Error("lazy loader has not loaded document", slog.Any("params", params)) - return nil, nil - } - - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.CodeAction(ctx, params) - } - templURI := params.TextDocument.URI - var ok bool - if params.Range, ok = p.convertTemplRangeToGoRange(templURI, params.Range); !ok { - // Don't pass the request to gopls if the range is not within a Go code block. - return - } - params.TextDocument.URI = goURI - result, err = p.Target.CodeAction(ctx, params) - if err != nil { - return - } - var updatedResults []lsp.CodeAction - // Filter out commands that are not yet supported. - // For example, "Fill Struct" runs the `gopls.apply_fix` command. - // This command has a set of arguments, including Fix, Range and URI. - // However, these are just a map[string]any so for each command that we want to support, - // we need to know what the arguments are so that we can rewrite them. - for _, r := range result { - if !supportedCodeActions[r.Title] { - continue - } - // Rewrite the Diagnostics range field. - for di, diag := range r.Diagnostics { - r.Diagnostics[di].Range = p.convertGoRangeToTemplRange(templURI, diag.Range) - } - // Rewrite the DocumentChanges. - if r.Edit != nil { - for dci, dc := range r.Edit.DocumentChanges { - for ei, edit := range dc.Edits { - dc.Edits[ei].Range = p.convertGoRangeToTemplRange(templURI, edit.Range) - } - dc.TextDocument.URI = templURI - r.Edit.DocumentChanges[dci] = dc - } - } - updatedResults = append(updatedResults, r) - } - return updatedResults, nil -} - -func (p *Server) CodeLens(ctx context.Context, params *lsp.CodeLensParams) (result []lsp.CodeLens, err error) { - p.Log.Info("client -> server: CodeLens") - defer p.Log.Info("client -> server: CodeLens end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.CodeLens(ctx, params) - } - templURI := params.TextDocument.URI - params.TextDocument.URI = goURI - result, err = p.Target.CodeLens(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - for i, cl := range result { - cl.Range = p.convertGoRangeToTemplRange(templURI, cl.Range) - result[i] = cl - } - return -} - -func (p *Server) CodeLensResolve(ctx context.Context, params *lsp.CodeLens) (result *lsp.CodeLens, err error) { - p.Log.Info("client -> server: CodeLensResolve") - defer p.Log.Info("client -> server: CodeLensResolve end") - return p.Target.CodeLensResolve(ctx, params) -} - -func (p *Server) ColorPresentation(ctx context.Context, params *lsp.ColorPresentationParams) (result []lsp.ColorPresentation, err error) { - p.Log.Info("client -> server: ColorPresentation ColorPresentation") - defer p.Log.Info("client -> server: ColorPresentation end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.ColorPresentation(ctx, params) - } - templURI := params.TextDocument.URI - params.TextDocument.URI = goURI - result, err = p.Target.ColorPresentation(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - for i, r := range result { - if r.TextEdit != nil { - r.TextEdit.Range = p.convertGoRangeToTemplRange(templURI, r.TextEdit.Range) - } - result[i] = r - } - return -} - -func (p *Server) Completion(ctx context.Context, params *lsp.CompletionParams) (result *lsp.CompletionList, err error) { - p.Log.Info("client -> server: Completion") - defer p.Log.Info("client -> server: Completion end") - if params.Context != nil && params.Context.TriggerCharacter == "<" { - result = &lsp.CompletionList{ - Items: htmlSnippets, - } - return - } - // Get the sourcemap from the cache. - templURI := params.TextDocument.URI - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) - if !ok { - return nil, nil - } - - // Ensure that Go source is available. - gosrc := strings.Split(p.GoSource[string(templURI)], "\n") - if len(gosrc) < int(params.Position.Line) { - p.Log.Info("completion: line position out of range") - return nil, nil - } - if len(gosrc[params.Position.Line]) < int(params.Position.Character) { - p.Log.Info("completion: col position out of range") - return nil, nil - } - - // Call the target. - result, err = p.Target.Completion(ctx, params) - if err != nil { - p.Log.Warn("completion: got gopls error", slog.Any("error", err)) - return - } - if result == nil { - return - } - // Rewrite the result positions. - p.Log.Info("completion: received items", slog.Int("count", len(result.Items))) - - for i, item := range result.Items { - item.FilterText = stripTemplStringable(item.FilterText) - if item.TextEdit != nil { - if item.TextEdit.TextEdit != nil { - item.TextEdit.TextEdit.Range = p.convertGoRangeToTemplRange(templURI, item.TextEdit.TextEdit.Range) - item.TextEdit.TextEdit.NewText = stripTemplStringable(item.TextEdit.TextEdit.NewText) - } - if item.TextEdit.InsertReplaceEdit != nil { - item.TextEdit.InsertReplaceEdit.Insert = p.convertGoRangeToTemplRange(templURI, item.TextEdit.InsertReplaceEdit.Insert) - item.TextEdit.InsertReplaceEdit.Replace = p.convertGoRangeToTemplRange(templURI, item.TextEdit.InsertReplaceEdit.Replace) - item.TextEdit.InsertReplaceEdit.NewText = stripTemplStringable(item.TextEdit.InsertReplaceEdit.NewText) - } - } - if len(item.AdditionalTextEdits) > 0 { - doc, ok := p.TemplSource.Get(string(templURI)) - if !ok { - continue - } - pkg := getPackageFromItemDetail(item.Detail) - imp := addImport(doc.Lines, pkg) - item.AdditionalTextEdits = []lsp.TextEdit{ - { - Range: lsp.Range{ - Start: lsp.Position{Line: uint32(imp.LineIndex), Character: 0}, - End: lsp.Position{Line: uint32(imp.LineIndex), Character: 0}, - }, - NewText: imp.Text, - }, - } - } - result.Items[i] = item - } - - // Add templ snippet. - result.Items = append(result.Items, snippet...) - - return -} - -// The LSP attempts to insert `templ.stringable(variable)` as a completion, but this isn't required. -func stripTemplStringable(s string) string { - if !strings.HasPrefix(s, "templ.stringable(") { - return s - } - s = strings.TrimPrefix(s, "templ.stringable(") - s = strings.TrimSuffix(s, ")") - return s -} - -var completionWithImport = regexp.MustCompile(`^.*\(from\s(".+")\)$`) - -func getPackageFromItemDetail(pkg string) string { - if m := completionWithImport.FindStringSubmatch(pkg); len(m) == 2 { - return m[1] - } - return pkg -} - -type importInsert struct { - Text string - LineIndex int -} - -var nonImportKeywordRegexp = regexp.MustCompile(`^(?:templ|func|css|script|var|const|type)\s`) - -func addImport(lines []string, pkg string) (result importInsert) { - var isInMultiLineImport bool - lastSingleLineImportIndex := -1 - for lineIndex, line := range lines { - if strings.HasPrefix(line, "import (") { - isInMultiLineImport = true - continue - } - if strings.HasPrefix(line, "import \"") { - lastSingleLineImportIndex = lineIndex - continue - } - if isInMultiLineImport && strings.HasPrefix(line, ")") { - return importInsert{ - LineIndex: lineIndex, - Text: fmt.Sprintf("\t%s\n", pkg), - } - } - // Only add import statements before templates, functions, css, and script templates. - if nonImportKeywordRegexp.MatchString(line) { - break - } - } - var suffix string - if lastSingleLineImportIndex == -1 { - lastSingleLineImportIndex = 1 - suffix = "\n" - } - return importInsert{ - LineIndex: lastSingleLineImportIndex + 1, - Text: fmt.Sprintf("import %s\n%s", pkg, suffix), - } -} - -func (p *Server) CompletionResolve(ctx context.Context, params *lsp.CompletionItem) (result *lsp.CompletionItem, err error) { - p.Log.Info("client -> server: CompletionResolve") - defer p.Log.Info("client -> server: CompletionResolve end") - return p.Target.CompletionResolve(ctx, params) -} - -func (p *Server) Declaration(ctx context.Context, params *lsp.DeclarationParams) (result []lsp.Location /* Declaration | DeclarationLink[] | null */, err error) { - p.Log.Info("client -> server: Declaration") - defer p.Log.Info("client -> server: Declaration end") - // Rewrite the request. - templURI := params.TextDocument.URI - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) - if !ok { - return nil, nil - } - // Call gopls and get the result. - result, err = p.Target.Declaration(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - for i, r := range result { - if isTemplGoFile, templURI := convertTemplGoToTemplURI(r.URI); isTemplGoFile { - result[i].URI = templURI - result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) - } - } - return -} - -func (p *Server) Definition(ctx context.Context, params *lsp.DefinitionParams) (result []lsp.Location /* Definition | DefinitionLink[] | null */, err error) { - p.Log.Info("client -> server: Definition") - defer p.Log.Info("client -> server: Definition end") - // Rewrite the request. - templURI := params.TextDocument.URI - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) - if !ok { - return result, nil - } - // Call gopls and get the result. - result, err = p.Target.Definition(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - for i, r := range result { - if isTemplGoFile, templURI := convertTemplGoToTemplURI(r.URI); isTemplGoFile { - result[i].URI = templURI - result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) - } - } - return -} - -func (p *Server) DidChange(ctx context.Context, params *lsp.DidChangeTextDocumentParams) (err error) { - p.Log.Info("client -> server: DidChange", slog.Any("params", params)) - defer p.Log.Info("client -> server: DidChange end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - p.Log.Error("not a templ file") - return - } - // Apply content changes to the cached template. - d, err := p.TemplSource.Apply(string(params.TextDocument.URI), params.ContentChanges) - if err != nil { - p.Log.Error("error applying changes", slog.Any("error", err)) - return - } - // Update the Go code. - p.Log.Info("parsing template") - template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, d.String()) - if err != nil { - p.Log.Error("parseTemplate failure", slog.Any("error", err)) - } - if !ok { - p.Log.Info("parseTemplate not OK, but attempting to generate anyway") - } - // Even if the template isn't parsed successfully, attempt to generate, because we - // need the LSP to have an up-to-date view of completions. - w := new(strings.Builder) - // In future updates, we may pass `WithSkipCodeGeneratedComment` to the generator. - // This will enable a number of actions within gopls that it doesn't currently apply because - // it recognises templ code as being auto-generated. - // - // This change would increase the surface area of gopls that we use, so may surface a number of issues - // if enabled. - generatorOutput, err := generator.Generate(template, w) - if err != nil { - p.Log.Error("generate failure", slog.Any("error", err)) - return - } - // Cache the sourcemap. - p.Log.Info("setting cache", slog.String("uri", string(params.TextDocument.URI))) - p.SourceMapCache.Set(string(params.TextDocument.URI), generatorOutput.SourceMap) - p.GoSource[string(params.TextDocument.URI)] = w.String() - - if p.NoPreload { - if err := p.templDocLazyLoader.Sync(ctx, params); err != nil { - p.Log.Error("lazy loader sync", slog.Any("error", err)) - } - } - - // Change the path. - params.TextDocument.URI = goURI - params.TextDocument.URI = goURI - // Overwrite all the Go contents. - params.ContentChanges = []lsp.TextDocumentContentChangeEvent{{ - Text: w.String(), - }} - return p.Target.DidChange(ctx, params) -} - -func (p *Server) DidChangeConfiguration(ctx context.Context, params *lsp.DidChangeConfigurationParams) (err error) { - p.Log.Info("client -> server: DidChangeConfiguration") - defer p.Log.Info("client -> server: DidChangeConfiguration end") - return p.Target.DidChangeConfiguration(ctx, params) -} - -func (p *Server) DidChangeWatchedFiles(ctx context.Context, params *lsp.DidChangeWatchedFilesParams) (err error) { - p.Log.Info("client -> server: DidChangeWatchedFiles") - defer p.Log.Info("client -> server: DidChangeWatchedFiles end") - return p.Target.DidChangeWatchedFiles(ctx, params) -} - -func (p *Server) DidChangeWorkspaceFolders(ctx context.Context, params *lsp.DidChangeWorkspaceFoldersParams) (err error) { - p.Log.Info("client -> server: DidChangeWorkspaceFolders") - defer p.Log.Info("client -> server: DidChangeWorkspaceFolders end") - return p.Target.DidChangeWorkspaceFolders(ctx, params) -} - -func (p *Server) DidClose(ctx context.Context, params *lsp.DidCloseTextDocumentParams) (err error) { - p.Log.Info("client -> server: DidClose") - defer p.Log.Info("client -> server: DidClose end") - - if p.NoPreload { - return p.templDocLazyLoader.Unload(ctx, params) - } - - return p.HandleDidClose(ctx, params) -} - -func (p *Server) HandleDidClose(ctx context.Context, params *lsp.DidCloseTextDocumentParams) (err error) { - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.DidClose(ctx, params) - } - // Delete the template and sourcemaps from caches. - p.TemplSource.Delete(string(params.TextDocument.URI)) - p.SourceMapCache.Delete(string(params.TextDocument.URI)) - // Get gopls to delete the Go file from its cache. - params.TextDocument.URI = goURI - return p.Target.DidClose(ctx, params) -} - -func (p *Server) DidOpen(ctx context.Context, params *lsp.DidOpenTextDocumentParams) (err error) { - p.Log.Info("client -> server: DidOpen", slog.String("uri", string(params.TextDocument.URI))) - defer p.Log.Info("client -> server: DidOpen end") - - if p.NoPreload { - return p.templDocLazyLoader.Load(ctx, params) - } - - return p.HandleDidOpen(ctx, params) -} - -func (p *Server) HandleDidOpen(ctx context.Context, params *lsp.DidOpenTextDocumentParams) (err error) { - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.DidOpen(ctx, params) - } - // Cache the template doc. - p.TemplSource.Set(string(params.TextDocument.URI), NewDocument(p.Log, params.TextDocument.Text)) - // Parse the template. - template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, params.TextDocument.Text) - if err != nil { - p.Log.Error("parseTemplate failure", slog.Any("error", err)) - } - if !ok { - p.Log.Info("parsing template did not succeed", slog.String("uri", string(params.TextDocument.URI))) - return nil - } - // Generate the output code and cache the source map and Go contents to use during completion - // requests. - w := new(strings.Builder) - generatorOutput, err := generator.Generate(template, w) - if err != nil { - return - } - p.Log.Info("setting source map cache contents", slog.String("uri", string(params.TextDocument.URI))) - p.SourceMapCache.Set(string(params.TextDocument.URI), generatorOutput.SourceMap) - // Set the Go contents. - params.TextDocument.Text = w.String() - p.GoSource[string(params.TextDocument.URI)] = params.TextDocument.Text - // Change the path. - params.TextDocument.URI = goURI - return p.Target.DidOpen(ctx, params) -} - -func (p *Server) DidSave(ctx context.Context, params *lsp.DidSaveTextDocumentParams) (err error) { - p.Log.Info("client -> server: DidSave") - defer p.Log.Info("client -> server: DidSave end") - if isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI); isTemplFile { - params.TextDocument.URI = goURI - } - return p.Target.DidSave(ctx, params) -} - -func (p *Server) DocumentColor(ctx context.Context, params *lsp.DocumentColorParams) (result []lsp.ColorInformation, err error) { - p.Log.Info("client -> server: DocumentColor") - defer p.Log.Info("client -> server: DocumentColor end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.DocumentColor(ctx, params) - } - templURI := params.TextDocument.URI - params.TextDocument.URI = goURI - result, err = p.Target.DocumentColor(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - for i, r := range result { - result[i].Range = p.convertGoRangeToTemplRange(templURI, r.Range) - } - return -} - -func (p *Server) DocumentHighlight(ctx context.Context, params *lsp.DocumentHighlightParams) (result []lsp.DocumentHighlight, err error) { - p.Log.Info("client -> server: DocumentHighlight") - defer p.Log.Info("client -> server: DocumentHighlight end") - return -} - -func (p *Server) DocumentLink(ctx context.Context, params *lsp.DocumentLinkParams) (result []lsp.DocumentLink, err error) { - p.Log.Info("client -> server: DocumentLink", slog.String("uri", string(params.TextDocument.URI))) - defer p.Log.Info("client -> server: DocumentLink end") - return -} - -func (p *Server) DocumentLinkResolve(ctx context.Context, params *lsp.DocumentLink) (result *lsp.DocumentLink, err error) { - p.Log.Info("client -> server: DocumentLinkResolve") - defer p.Log.Info("client -> server: DocumentLinkResolve end") - isTemplFile, goURI := convertTemplToGoURI(params.Target) - if !isTemplFile { - return p.Target.DocumentLinkResolve(ctx, params) - } - templURI := params.Target - params.Target = goURI - var ok bool - if params.Range, ok = p.convertTemplRangeToGoRange(templURI, params.Range); !ok { - return - } - // Rewrite the result. - result, err = p.Target.DocumentLinkResolve(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - result.Target = templURI - result.Range = p.convertGoRangeToTemplRange(templURI, result.Range) - return -} - -func (p *Server) DocumentSymbol(ctx context.Context, params *lsp.DocumentSymbolParams) (result []lsp.SymbolInformationOrDocumentSymbol, err error) { - p.Log.Info("client -> server: DocumentSymbol") - defer p.Log.Info("client -> server: DocumentSymbol end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return p.Target.DocumentSymbol(ctx, params) - } - templURI := params.TextDocument.URI - params.TextDocument.URI = goURI - symbols, err := p.Target.DocumentSymbol(ctx, params) - if err != nil { - return nil, err - } - - for _, s := range symbols { - if s.DocumentSymbol != nil { - p.convertSymbolRange(templURI, s.DocumentSymbol) - result = append(result, s) - } - if s.SymbolInformation != nil { - s.SymbolInformation.Location.URI = templURI - s.SymbolInformation.Location.Range = p.convertGoRangeToTemplRange(templURI, s.SymbolInformation.Location.Range) - result = append(result, s) - } - } - - return result, err -} - -func (p *Server) convertSymbolRange(templURI lsp.DocumentURI, s *lsp.DocumentSymbol) { - sourceMap, ok := p.SourceMapCache.Get(string(templURI)) - if !ok { - p.Log.Warn("go->templ: sourcemap not found in cache") - return - } - src, ok := sourceMap.SymbolSourceRangeFromTarget(s.Range.Start.Line, s.Range.Start.Character) - if !ok { - p.Log.Warn("go->templ: symbol range not found", slog.Any("symbol", s), slog.Any("choices", sourceMap.TargetSymbolRangeToSource)) - return - } - s.Range = lsp.Range{ - Start: lsp.Position{ - Line: uint32(src.From.Line), - Character: uint32(src.From.Col), - }, - End: lsp.Position{ - Line: uint32(src.To.Line), - Character: uint32(src.To.Col), - }, - } - // Within the symbol, we can select sub-sections. - // These are Go expressions, in the standard source map. - s.SelectionRange = p.convertGoRangeToTemplRange(templURI, s.SelectionRange) - for i := range s.Children { - p.convertSymbolRange(templURI, &s.Children[i]) - if !isRangeWithin(s.Range, s.Children[i].Range) { - p.Log.Error("child symbol range not within parent range", slog.Any("symbol", s.Children[i]), slog.Int("index", i)) - } - } - if !isRangeWithin(s.Range, s.SelectionRange) { - p.Log.Error("selection range not within range", slog.Any("symbol", s)) - } -} - -func isRangeWithin(parent, child lsp.Range) bool { - if child.Start.Line < parent.Start.Line || child.End.Line > parent.End.Line { - return false - } - if child.Start.Line == parent.Start.Line && child.Start.Character < parent.Start.Character { - return false - } - if child.End.Line == parent.End.Line && child.End.Character > parent.End.Character { - return false - } - return true -} - -func (p *Server) ExecuteCommand(ctx context.Context, params *lsp.ExecuteCommandParams) (result any, err error) { - p.Log.Info("client -> server: ExecuteCommand") - defer p.Log.Info("client -> server: ExecuteCommand end") - return p.Target.ExecuteCommand(ctx, params) -} - -func (p *Server) FoldingRanges(ctx context.Context, params *lsp.FoldingRangeParams) (result []lsp.FoldingRange, err error) { - p.Log.Info("client -> server: FoldingRanges") - defer p.Log.Info("client -> server: FoldingRanges end") - // There are no folding ranges in templ files. - // return p.Target.FoldingRanges(ctx, params) - return []lsp.FoldingRange{}, nil -} - -func (p *Server) Formatting(ctx context.Context, params *lsp.DocumentFormattingParams) (result []lsp.TextEdit, err error) { - p.Log.Info("client -> server: Formatting") - defer p.Log.Info("client -> server: Formatting end") - // Format the current document. - d, _ := p.TemplSource.Get(string(params.TextDocument.URI)) - template, ok, err := p.parseTemplate(ctx, params.TextDocument.URI, d.String()) - if err != nil { - p.Log.Error("parseTemplate failure", slog.Any("error", err)) - return - } - if !ok { - return - } - p.Log.Info("attempting to organise imports", slog.String("uri", template.Filepath)) - template, err = imports.Process(template) - if err != nil { - p.Log.Error("organise imports failure", slog.Any("error", err)) - return - } - w := new(strings.Builder) - err = template.Write(w) - if err != nil { - p.Log.Error("handleFormatting: faled to write template", slog.Any("error", err)) - return - } - // Replace everything. - result = append(result, lsp.TextEdit{ - Range: lsp.Range{ - Start: lsp.Position{}, - End: lsp.Position{Line: uint32(len(d.Lines)), Character: 0}, - }, - NewText: w.String(), - }) - d.Replace(w.String()) - return -} - -func (p *Server) Hover(ctx context.Context, params *lsp.HoverParams) (result *lsp.Hover, err error) { - p.Log.Info("client -> server: Hover") - defer p.Log.Info("client -> server: Hover end") - // Rewrite the request. - templURI := params.TextDocument.URI - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - // Call gopls. - result, err = p.Target.Hover(ctx, params) - if err != nil { - return - } - // Rewrite the response. - if result != nil && result.Range != nil { - p.Log.Info("hover: result returned") - r := p.convertGoRangeToTemplRange(templURI, *result.Range) - p.Log.Info("hover: setting range") - result.Range = &r - } - return -} - -func (p *Server) Implementation(ctx context.Context, params *lsp.ImplementationParams) (result []lsp.Location, err error) { - p.Log.Info("client -> server: Implementation") - defer p.Log.Info("client -> server: Implementation end") - templURI := params.TextDocument.URI - // Rewrite the request. - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - result, err = p.Target.Implementation(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - // Rewrite the response. - for i, r := range result { - r.URI = templURI - r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) - result[i] = r - } - return -} - -func (p *Server) OnTypeFormatting(ctx context.Context, params *lsp.DocumentOnTypeFormattingParams) (result []lsp.TextEdit, err error) { - p.Log.Info("client -> server: OnTypeFormatting") - defer p.Log.Info("client -> server: OnTypeFormatting end") - templURI := params.TextDocument.URI - // Rewrite the request. - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - // Get the response. - result, err = p.Target.OnTypeFormatting(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - // Rewrite the response. - for i, r := range result { - r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) - result[i] = r - } - return -} - -func (p *Server) PrepareRename(ctx context.Context, params *lsp.PrepareRenameParams) (result *lsp.Range, err error) { - p.Log.Info("client -> server: PrepareRename") - defer p.Log.Info("client -> server: PrepareRename end") - templURI := params.TextDocument.URI - // Rewrite the request. - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - // Get the response. - result, err = p.Target.PrepareRename(ctx, params) - if err != nil { - return - } - if result == nil { - return - } - // Rewrite the response. - output := p.convertGoRangeToTemplRange(templURI, *result) - return &output, nil -} - -func (p *Server) RangeFormatting(ctx context.Context, params *lsp.DocumentRangeFormattingParams) (result []lsp.TextEdit, err error) { - p.Log.Info("client -> server: RangeFormatting") - defer p.Log.Info("client -> server: RangeFormatting end") - templURI := params.TextDocument.URI - // Rewrite the request. - var isTemplURI bool - isTemplURI, params.TextDocument.URI = convertTemplToGoURI(params.TextDocument.URI) - if !isTemplURI { - err = fmt.Errorf("not a templ file") - return - } - // Call gopls. - result, err = p.Target.RangeFormatting(ctx, params) - if err != nil { - return - } - // Rewrite the response. - for i, r := range result { - r.Range = p.convertGoRangeToTemplRange(templURI, r.Range) - result[i] = r - } - return result, err -} - -func (p *Server) References(ctx context.Context, params *lsp.ReferenceParams) (result []lsp.Location, err error) { - p.Log.Info("client -> server: References") - defer p.Log.Info("client -> server: References end") - // Rewrite the request. - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - // Call gopls. - result, err = p.Target.References(ctx, params) - if err != nil { - return - } - // Rewrite the response. - for i, r := range result { - isTemplURI, templURI := convertTemplGoToTemplURI(r.URI) - if isTemplURI { - p.Log.Info(fmt.Sprintf("references-%d - range conversion for %s", i, r.URI)) - r.URI, r.Range = templURI, p.convertGoRangeToTemplRange(templURI, r.Range) - } - p.Log.Info(fmt.Sprintf("references-%d: %+v", i, r)) - result[i] = r - } - return result, err -} - -func (p *Server) Rename(ctx context.Context, params *lsp.RenameParams) (result *lsp.WorkspaceEdit, err error) { - p.Log.Info("client -> server: Rename") - defer p.Log.Info("client -> server: Rename end") - return p.Target.Rename(ctx, params) -} - -func (p *Server) SignatureHelp(ctx context.Context, params *lsp.SignatureHelpParams) (result *lsp.SignatureHelp, err error) { - p.Log.Info("client -> server: SignatureHelp") - defer p.Log.Info("client -> server: SignatureHelp end") - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - return p.Target.SignatureHelp(ctx, params) -} - -func (p *Server) Symbols(ctx context.Context, params *lsp.WorkspaceSymbolParams) (result []lsp.SymbolInformation, err error) { - p.Log.Info("client -> server: Symbols") - defer p.Log.Info("client -> server: Symbols end") - return p.Target.Symbols(ctx, params) -} - -func (p *Server) TypeDefinition(ctx context.Context, params *lsp.TypeDefinitionParams) (result []lsp.Location, err error) { - p.Log.Info("client -> server: TypeDefinition") - defer p.Log.Info("client -> server: TypeDefinition end") - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(params.TextDocument.URI, params.Position) - if !ok { - return nil, nil - } - return p.Target.TypeDefinition(ctx, params) -} - -func (p *Server) WillSave(ctx context.Context, params *lsp.WillSaveTextDocumentParams) (err error) { - p.Log.Info("client -> server: WillSave") - defer p.Log.Info("client -> server: WillSave end") - var ok bool - ok, params.TextDocument.URI = convertTemplToGoURI(params.TextDocument.URI) - if !ok { - p.Log.Error("not a templ file") - return nil - } - return p.Target.WillSave(ctx, params) -} - -func (p *Server) WillSaveWaitUntil(ctx context.Context, params *lsp.WillSaveTextDocumentParams) (result []lsp.TextEdit, err error) { - p.Log.Info("client -> server: WillSaveWaitUntil") - defer p.Log.Info("client -> server: WillSaveWaitUntil end") - return p.Target.WillSaveWaitUntil(ctx, params) -} - -func (p *Server) ShowDocument(ctx context.Context, params *lsp.ShowDocumentParams) (result *lsp.ShowDocumentResult, err error) { - p.Log.Info("client -> server: ShowDocument") - defer p.Log.Info("client -> server: ShowDocument end") - return p.Target.ShowDocument(ctx, params) -} - -func (p *Server) WillCreateFiles(ctx context.Context, params *lsp.CreateFilesParams) (result *lsp.WorkspaceEdit, err error) { - p.Log.Info("client -> server: WillCreateFiles") - defer p.Log.Info("client -> server: WillCreateFiles end") - return p.Target.WillCreateFiles(ctx, params) -} - -func (p *Server) DidCreateFiles(ctx context.Context, params *lsp.CreateFilesParams) (err error) { - p.Log.Info("client -> server: DidCreateFiles") - defer p.Log.Info("client -> server: DidCreateFiles end") - return p.Target.DidCreateFiles(ctx, params) -} - -func (p *Server) WillRenameFiles(ctx context.Context, params *lsp.RenameFilesParams) (result *lsp.WorkspaceEdit, err error) { - p.Log.Info("client -> server: WillRenameFiles") - defer p.Log.Info("client -> server: WillRenameFiles end") - return p.Target.WillRenameFiles(ctx, params) -} - -func (p *Server) DidRenameFiles(ctx context.Context, params *lsp.RenameFilesParams) (err error) { - p.Log.Info("client -> server: DidRenameFiles") - defer p.Log.Info("client -> server: DidRenameFiles end") - return p.Target.DidRenameFiles(ctx, params) -} - -func (p *Server) WillDeleteFiles(ctx context.Context, params *lsp.DeleteFilesParams) (result *lsp.WorkspaceEdit, err error) { - p.Log.Info("client -> server: WillDeleteFiles") - defer p.Log.Info("client -> server: WillDeleteFiles end") - return p.Target.WillDeleteFiles(ctx, params) -} - -func (p *Server) DidDeleteFiles(ctx context.Context, params *lsp.DeleteFilesParams) (err error) { - p.Log.Info("client -> server: DidDeleteFiles") - defer p.Log.Info("client -> server: DidDeleteFiles end") - return p.Target.DidDeleteFiles(ctx, params) -} - -func (p *Server) CodeLensRefresh(ctx context.Context) (err error) { - p.Log.Info("client -> server: CodeLensRefresh") - defer p.Log.Info("client -> server: CodeLensRefresh end") - return p.Target.CodeLensRefresh(ctx) -} - -func (p *Server) PrepareCallHierarchy(ctx context.Context, params *lsp.CallHierarchyPrepareParams) (result []lsp.CallHierarchyItem, err error) { - p.Log.Info("client -> server: PrepareCallHierarchy") - defer p.Log.Info("client -> server: PrepareCallHierarchy end") - return p.Target.PrepareCallHierarchy(ctx, params) -} - -func (p *Server) IncomingCalls(ctx context.Context, params *lsp.CallHierarchyIncomingCallsParams) (result []lsp.CallHierarchyIncomingCall, err error) { - p.Log.Info("client -> server: IncomingCalls") - defer p.Log.Info("client -> server: IncomingCalls end") - return p.Target.IncomingCalls(ctx, params) -} - -func (p *Server) OutgoingCalls(ctx context.Context, params *lsp.CallHierarchyOutgoingCallsParams) (result []lsp.CallHierarchyOutgoingCall, err error) { - p.Log.Info("client -> server: OutgoingCalls") - defer p.Log.Info("client -> server: OutgoingCalls end") - return p.Target.OutgoingCalls(ctx, params) -} - -func (p *Server) SemanticTokensFull(ctx context.Context, params *lsp.SemanticTokensParams) (result *lsp.SemanticTokens, err error) { - p.Log.Info("client -> server: SemanticTokensFull") - defer p.Log.Info("client -> server: SemanticTokensFull end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return nil, nil - } - params.TextDocument.URI = goURI - return p.Target.SemanticTokensFull(ctx, params) -} - -func (p *Server) SemanticTokensFullDelta(ctx context.Context, params *lsp.SemanticTokensDeltaParams) (result any /* SemanticTokens | SemanticTokensDelta */, err error) { - p.Log.Info("client -> server: SemanticTokensFullDelta") - defer p.Log.Info("client -> server: SemanticTokensFullDelta end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return nil, nil - } - params.TextDocument.URI = goURI - return p.Target.SemanticTokensFullDelta(ctx, params) -} - -func (p *Server) SemanticTokensRange(ctx context.Context, params *lsp.SemanticTokensRangeParams) (result *lsp.SemanticTokens, err error) { - p.Log.Info("client -> server: SemanticTokensRange") - defer p.Log.Info("client -> server: SemanticTokensRange end") - isTemplFile, goURI := convertTemplToGoURI(params.TextDocument.URI) - if !isTemplFile { - return nil, nil - } - params.TextDocument.URI = goURI - return p.Target.SemanticTokensRange(ctx, params) -} - -func (p *Server) SemanticTokensRefresh(ctx context.Context) (err error) { - p.Log.Info("client -> server: SemanticTokensRefresh") - defer p.Log.Info("client -> server: SemanticTokensRefresh end") - return p.Target.SemanticTokensRefresh(ctx) -} - -func (p *Server) LinkedEditingRange(ctx context.Context, params *lsp.LinkedEditingRangeParams) (result *lsp.LinkedEditingRanges, err error) { - p.Log.Info("client -> server: LinkedEditingRange") - defer p.Log.Info("client -> server: LinkedEditingRange end") - return p.Target.LinkedEditingRange(ctx, params) -} - -func (p *Server) Moniker(ctx context.Context, params *lsp.MonikerParams) (result []lsp.Moniker, err error) { - p.Log.Info("client -> server: Moniker") - defer p.Log.Info("client -> server: Moniker end") - templURI := params.TextDocument.URI - var ok bool - ok, params.TextDocument.URI, params.Position = p.updatePosition(templURI, params.Position) - if !ok { - return nil, nil - } - return p.Target.Moniker(ctx, params) -} - -func (p *Server) Request(ctx context.Context, method string, params any) (result any, err error) { - p.Log.Info("client -> server: Request") - defer p.Log.Info("client -> server: Request end") - return p.Target.Request(ctx, method, params) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go deleted file mode 100644 index 94580f1..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/snippets.go +++ /dev/null @@ -1,111 +0,0 @@ -package proxy - -import lsp "github.com/a-h/templ/lsp/protocol" - -var htmlSnippets = []lsp.CompletionItem{ - { - Label: "<?>", - InsertText: `${1}> - ${0} -</${1}>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "a", - InsertText: `a href="${1:}">${2:}</a>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "button", - InsertText: `button type="button" ${1:}>${2:}</button>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "div", - InsertText: `div> - ${0} -</div>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "p", - InsertText: `p> - ${0} -</p>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "head", - InsertText: `head> - ${0} -</head>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "body", - InsertText: `body> - ${0} -</body>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "title", - InsertText: `title>${0}</title>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h1", - InsertText: `h1>${0}</h1>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h2", - InsertText: `h2>${0}</h2>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h3", - InsertText: `h3>${0}</h3>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h4", - InsertText: `h4>${0}</h4>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h5", - InsertText: `h5>${0}</h5>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, - { - Label: "h6", - InsertText: `h6>${0}</h6>`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, -} - -var snippet = []lsp.CompletionItem{ - { - Label: "templ", - InsertText: `templ ${2:TemplateName}() { - ${0} -}`, - Kind: lsp.CompletionItemKind(lsp.CompletionItemKindSnippet), - InsertTextFormat: lsp.InsertTextFormatSnippet, - }, -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go deleted file mode 100644 index ccf9024..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/proxy/sourcemapcache.go +++ /dev/null @@ -1,52 +0,0 @@ -package proxy - -import ( - "sync" - - "github.com/a-h/templ/parser/v2" -) - -// NewSourceMapCache creates a cache of .templ file URIs to the source map. -func NewSourceMapCache() *SourceMapCache { - return &SourceMapCache{ - m: new(sync.Mutex), - uriToSourceMap: make(map[string]*parser.SourceMap), - } -} - -// SourceMapCache is a cache of .templ file URIs to the source map. -type SourceMapCache struct { - m *sync.Mutex - uriToSourceMap map[string]*parser.SourceMap -} - -func (fc *SourceMapCache) Set(uri string, m *parser.SourceMap) { - fc.m.Lock() - defer fc.m.Unlock() - fc.uriToSourceMap[uri] = m -} - -func (fc *SourceMapCache) Get(uri string) (m *parser.SourceMap, ok bool) { - fc.m.Lock() - defer fc.m.Unlock() - m, ok = fc.uriToSourceMap[uri] - return -} - -func (fc *SourceMapCache) Delete(uri string) { - fc.m.Lock() - defer fc.m.Unlock() - delete(fc.uriToSourceMap, uri) -} - -func (fc *SourceMapCache) URIs() (uris []string) { - fc.m.Lock() - defer fc.m.Unlock() - uris = make([]string, len(fc.uriToSourceMap)) - var i int - for k := range fc.uriToSourceMap { - uris[i] = k - i++ - } - return uris -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go b/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go deleted file mode 100644 index 28d9f44..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/lspcmd/stdrwc.go +++ /dev/null @@ -1,50 +0,0 @@ -package lspcmd - -import ( - "errors" - "io" - "log/slog" -) - -// stdrwc (standard read/write closer) reads from stdin, and writes to stdout. -func newStdRwc(log *slog.Logger, name string, w io.Writer, r io.Reader) stdrwc { - return stdrwc{ - log: log, - name: name, - w: w, - r: r, - } -} - -type stdrwc struct { - log *slog.Logger - name string - w io.Writer - r io.Reader -} - -func (s stdrwc) Read(p []byte) (int, error) { - return s.r.Read(p) -} - -func (s stdrwc) Write(p []byte) (int, error) { - return s.w.Write(p) -} - -func (s stdrwc) Close() error { - s.log.Info("rwc: closing", slog.String("name", s.name)) - var errs []error - if closer, isCloser := s.r.(io.Closer); isCloser { - if err := closer.Close(); err != nil { - s.log.Error("rwc: error closing reader", slog.String("name", s.name), slog.Any("error", err)) - errs = append(errs, err) - } - } - if closer, isCloser := s.w.(io.Closer); isCloser { - if err := closer.Close(); err != nil { - s.log.Error("rwc: error closing writer", slog.String("name", s.name), slog.Any("error", err)) - errs = append(errs, err) - } - } - return errors.Join(errs...) -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/main.go b/vendor/github.com/a-h/templ/cmd/templ/main.go deleted file mode 100644 index 3f15d24..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/main.go +++ /dev/null @@ -1,280 +0,0 @@ -package main - -import ( - "context" - "flag" - "fmt" - "io" - "os" - "os/signal" - "runtime" - "syscall" - - "github.com/a-h/templ" - "github.com/a-h/templ/cmd/templ/fmtcmd" - "github.com/a-h/templ/cmd/templ/generatecmd" - "github.com/a-h/templ/cmd/templ/infocmd" - "github.com/a-h/templ/cmd/templ/lspcmd" - "github.com/a-h/templ/cmd/templ/sloghandler" - "github.com/fatih/color" -) - -func main() { - code := run(os.Stdin, os.Stdout, os.Stderr, os.Args) - if code != 0 { - os.Exit(code) - } -} - -const usageText = `usage: templ <command> [<args>...] - -templ - build HTML UIs with Go - -See docs at https://templ.guide - -commands: - generate Generates Go code from templ files - fmt Formats templ files - lsp Starts a language server for templ files - info Displays information about the templ environment - version Prints the version -` - -func run(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { - if len(args) < 2 { - _, _ = fmt.Fprint(stderr, usageText) - return 64 // EX_USAGE - } - switch args[1] { - case "info": - return infoCmd(stdout, stderr, args[2:]) - case "generate": - return generateCmd(stdout, stderr, args[2:]) - case "fmt": - return fmtCmd(stdin, stdout, stderr, args[2:]) - case "lsp": - return lspCmd(stdin, stdout, stderr, args[2:]) - case "version", "--version": - _, _ = fmt.Fprintln(stdout, templ.Version()) - return 0 - case "help", "-help", "--help", "-h": - _, _ = fmt.Fprint(stdout, usageText) - return 0 - } - _, _ = fmt.Fprint(stderr, usageText) - return 64 // EX_USAGE -} - -const infoUsageText = `usage: templ info [<args>...] - -Displays information about the templ environment. - -Args: - -json - Output information in JSON format to stdout. (default false) - -v - Set log verbosity level to "debug". (default "info") - -log-level - Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") - -help - Print help and exit. -` - -func infoCmd(stdout, stderr io.Writer, args []string) (code int) { - cmd := flag.NewFlagSet("diagnose", flag.ExitOnError) - jsonFlag := cmd.Bool("json", false, "") - verboseFlag := cmd.Bool("v", false, "") - logLevelFlag := cmd.String("log-level", "info", "") - helpFlag := cmd.Bool("help", false, "") - err := cmd.Parse(args) - if err != nil { - _, _ = fmt.Fprint(stderr, infoUsageText) - return 64 // EX_USAGE - } - if *helpFlag { - _, _ = fmt.Fprint(stdout, infoUsageText) - return - } - - log := sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) - - ctx, cancel := context.WithCancel(context.Background()) - signalChan := make(chan os.Signal, 1) - signal.Notify(signalChan, os.Interrupt) - go func() { - <-signalChan - _, _ = fmt.Fprintln(stderr, "Stopping...") - cancel() - }() - - err = infocmd.Run(ctx, log, stdout, infocmd.Arguments{ - JSON: *jsonFlag, - }) - if err != nil { - _, _ = color.New(color.FgRed).Fprint(stderr, "(✗) ") - _, _ = fmt.Fprintln(stderr, "Command failed: "+err.Error()) - return 1 - } - return 0 -} - -func generateCmd(stdout, stderr io.Writer, args []string) (code int) { - ctx, cancel := context.WithCancel(context.Background()) - signalChan := make(chan os.Signal, 1) - signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM) - go func() { - <-signalChan - _, _ = fmt.Fprintln(stderr, "Stopping...") - cancel() - }() - - err := generatecmd.Run(ctx, stdout, stderr, args) - if err != nil { - _, _ = color.New(color.FgRed).Fprint(stderr, "(✗) ") - _, _ = fmt.Fprintln(stderr, "Command failed: "+err.Error()) - exitCode := 1 - if e, ok := err.(ErrorCode); ok { - exitCode = e.Code() - } - return exitCode - } - return 0 -} - -type ErrorCode interface { - error - Code() int -} - -const fmtUsageText = `usage: templ fmt [<args> ...] - -Format all files in directory: - - templ fmt . - -Format stdin to stdout: - - templ fmt < header.templ - -Format file or directory to stdout: - - templ fmt -stdout FILE - -Args: - -stdout - Prints to stdout instead of in-place format - -stdin-filepath - Provides the formatter with filepath context when using -stdout. - Required for organising imports. - -v - Set log verbosity level to "debug". (default "info") - -log-level - Set log verbosity level. (default "info", options: "debug", "info", "warn", "error") - -w - Number of workers to use when formatting code. (default runtime.NumCPUs). - -prettier-command - Set the command to use for formatting HTML, CSS, and JS blocks. Default is "prettier --stdin-filepath $TEMPL_PRETTIER_FILENAME". - -prettier-required - Set to true to return an error the prettier command is not available. Default is false. - -fail - Fails with exit code 1 if files are changed. (e.g. in CI) - -help - Print help and exit. -` - -func fmtCmd(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { - cmd := flag.NewFlagSet("fmt", flag.ExitOnError) - helpFlag := cmd.Bool("help", false, "") - workerCountFlag := cmd.Int("w", runtime.NumCPU(), "") - verboseFlag := cmd.Bool("v", false, "") - logLevelFlag := cmd.String("log-level", "info", "") - failIfChanged := cmd.Bool("fail", false, "") - prettierCommand := cmd.String("prettier-command", "", "") - prettierRequired := cmd.Bool("prettier-required", false, "") - stdoutFlag := cmd.Bool("stdout", false, "") - stdinFilepath := cmd.String("stdin-filepath", "", "") - err := cmd.Parse(args) - if err != nil { - _, _ = fmt.Fprint(stderr, fmtUsageText) - return 64 // EX_USAGE - } - if *helpFlag { - _, _ = fmt.Fprint(stdout, fmtUsageText) - return - } - - log := sloghandler.NewLogger(*logLevelFlag, *verboseFlag, stderr) - - err = fmtcmd.Run(log, stdin, stdout, fmtcmd.Arguments{ - ToStdout: *stdoutFlag, - Files: cmd.Args(), - WorkerCount: *workerCountFlag, - StdinFilepath: *stdinFilepath, - FailIfChanged: *failIfChanged, - PrettierCommand: *prettierCommand, - PrettierRequired: *prettierRequired, - }) - if err != nil { - return 1 - } - return 0 -} - -const lspUsageText = `usage: templ lsp [<args> ...] - -Starts a language server for templ. - -Args: - -log string - The file to log templ LSP output to, or leave empty to disable logging. - -goplsLog string - The file to log gopls output, or leave empty to disable logging. - -goplsRPCTrace - Set gopls to log input and output messages. - -gopls-remote - Specify remote gopls instance to connect to. - -help - Print help and exit. - -pprof - Enable pprof web server (default address is localhost:9999) - -http string - Enable http debug server by setting a listen address (e.g. localhost:7474) - -no-preload - Disable preloading of templ files on server startup and use custom GOPACKAGESDRIVER for lazy loading (useful for large monorepos). GOPACKAGESDRIVER environment variable must be set. -` - -func lspCmd(stdin io.Reader, stdout, stderr io.Writer, args []string) (code int) { - cmd := flag.NewFlagSet("lsp", flag.ExitOnError) - logFlag := cmd.String("log", "", "") - goplsLog := cmd.String("goplsLog", "", "") - goplsRPCTrace := cmd.Bool("goplsRPCTrace", false, "") - goplsRemote := cmd.String("gopls-remote", "", "") - helpFlag := cmd.Bool("help", false, "") - pprofFlag := cmd.Bool("pprof", false, "") - httpDebugFlag := cmd.String("http", "", "") - noPreloadFlag := cmd.Bool("no-preload", false, "") - err := cmd.Parse(args) - if err != nil { - _, _ = fmt.Fprint(stderr, lspUsageText) - return 64 // EX_USAGE - } - if *helpFlag { - _, _ = fmt.Fprint(stdout, lspUsageText) - return - } - - err = lspcmd.Run(stdin, stdout, stderr, lspcmd.Arguments{ - Log: *logFlag, - GoplsLog: *goplsLog, - GoplsRPCTrace: *goplsRPCTrace, - GoplsRemote: *goplsRemote, - PPROF: *pprofFlag, - HTTPDebug: *httpDebugFlag, - NoPreload: *noPreloadFlag && os.Getenv("GOPACKAGESDRIVER") != "", - }) - if err != nil { - _, _ = fmt.Fprintln(stderr, err.Error()) - return 1 - } - return 0 -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go b/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go deleted file mode 100644 index aa2d00d..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/processor/processor.go +++ /dev/null @@ -1,66 +0,0 @@ -package processor - -import ( - "io/fs" - "path/filepath" - "strings" - "sync" - "time" - - "github.com/a-h/templ/internal/skipdir" -) - -type Result struct { - FileName string - Duration time.Duration - Error error - ChangesMade bool -} - -func Process(dir string, f func(fileName string) (error, bool), workerCount int, results chan<- Result) { - templates := make(chan string) - go func() { - defer close(templates) - if err := FindTemplates(dir, templates); err != nil { - results <- Result{Error: err} - } - }() - ProcessChannel(templates, dir, f, workerCount, results) -} - -func FindTemplates(srcPath string, output chan<- string) (err error) { - return filepath.WalkDir(srcPath, func(currentPath string, info fs.DirEntry, err error) error { - if err != nil { - return err - } - if info.IsDir() && skipdir.ShouldSkip(currentPath) { - return filepath.SkipDir - } - if !info.IsDir() && strings.HasSuffix(currentPath, ".templ") { - output <- currentPath - } - return nil - }) -} - -func ProcessChannel(templates <-chan string, dir string, f func(fileName string) (error, bool), workerCount int, results chan<- Result) { - defer close(results) - var wg sync.WaitGroup - wg.Add(workerCount) - for range workerCount { - go func() { - defer wg.Done() - for sourceFileName := range templates { - start := time.Now() - outErr, outChanged := f(sourceFileName) - results <- Result{ - FileName: sourceFileName, - Error: outErr, - Duration: time.Since(start), - ChangesMade: outChanged, - } - } - }() - } - wg.Wait() -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go b/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go deleted file mode 100644 index 7b87603..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/sloghandler/handler.go +++ /dev/null @@ -1,120 +0,0 @@ -package sloghandler - -import ( - "context" - "io" - "log/slog" - "strings" - "sync" - - "github.com/fatih/color" -) - -func NewLogger(logLevel string, verbose bool, stderr io.Writer) *slog.Logger { - if verbose { - logLevel = "debug" - } - level := slog.LevelInfo.Level() - switch logLevel { - case "debug": - level = slog.LevelDebug.Level() - case "warn": - level = slog.LevelWarn.Level() - case "error": - level = slog.LevelError.Level() - } - return slog.New(NewHandler(stderr, &slog.HandlerOptions{ - AddSource: logLevel == "debug", - Level: level, - })) -} - -var _ slog.Handler = &Handler{} - -type Handler struct { - h slog.Handler - m *sync.Mutex - w io.Writer -} - -var levelToIcon = map[slog.Level]string{ - slog.LevelDebug: "(✓)", - slog.LevelInfo: "(✓)", - slog.LevelWarn: "(!)", - slog.LevelError: "(✗)", -} -var levelToColor = map[slog.Level]*color.Color{ - slog.LevelDebug: color.New(color.FgCyan), - slog.LevelInfo: color.New(color.FgGreen), - slog.LevelWarn: color.New(color.FgYellow), - slog.LevelError: color.New(color.FgRed), -} - -func NewHandler(w io.Writer, opts *slog.HandlerOptions) *Handler { - if opts == nil { - opts = &slog.HandlerOptions{} - } - return &Handler{ - w: w, - h: slog.NewTextHandler(w, &slog.HandlerOptions{ - Level: opts.Level, - AddSource: opts.AddSource, - ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr { - if opts.ReplaceAttr != nil { - a = opts.ReplaceAttr(groups, a) - } - if a.Key == slog.LevelKey { - level, ok := levelToIcon[a.Value.Any().(slog.Level)] - if !ok { - level = a.Value.Any().(slog.Level).String() - } - a.Value = slog.StringValue(level) - return a - } - if a.Key == slog.TimeKey { - return slog.Attr{} - } - return a - }, - }), - m: &sync.Mutex{}, - } -} - -func (h *Handler) Enabled(ctx context.Context, level slog.Level) bool { - return h.h.Enabled(ctx, level) -} - -func (h *Handler) WithAttrs(attrs []slog.Attr) slog.Handler { - return &Handler{h: h.h.WithAttrs(attrs), w: h.w, m: h.m} -} - -func (h *Handler) WithGroup(name string) slog.Handler { - return &Handler{h: h.h.WithGroup(name), w: h.w, m: h.m} -} - -var keyValueColor = color.New(color.Faint & color.FgBlack) - -func (h *Handler) Handle(ctx context.Context, r slog.Record) (err error) { - var sb strings.Builder - - sb.WriteString(levelToColor[r.Level].Sprint(levelToIcon[r.Level])) - sb.WriteString(" ") - sb.WriteString(r.Message) - - if r.NumAttrs() != 0 { - sb.WriteString(" [") - r.Attrs(func(a slog.Attr) bool { - sb.WriteString(keyValueColor.Sprintf(" %s=%s", a.Key, a.Value.String())) - return true - }) - sb.WriteString(" ]") - } - - sb.WriteString("\n") - - h.m.Lock() - defer h.m.Unlock() - _, err = io.WriteString(h.w, sb.String()) - return err -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ deleted file mode 100644 index c0c6159..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation.templ +++ /dev/null @@ -1,68 +0,0 @@ -package visualize - -css row() { - display: flex; -} - -css column() { - flex: 50%; - overflow-y: scroll; - max-height: 100vh; -} - -css code() { - font-family: monospace; -} - -templ combine(templFileName string, left, right templ.Component) { - <html> - <head> - <title>{ templFileName }- Source Map Visualisation</title> - <style type="text/css"> - .mapped { - background-color: green; - } - .highlighted { - background-color: yellow; - } - </style> - </head> - <body> - <h1>{ templFileName }</h1> - <div class={ templ.Classes(row()) }> - <div class={ templ.Classes(column(), code()) }> - @left - </div> - <div class={ templ.Classes(column(), code()) }> - @right - </div> - </div> - </body> - </html> -} - -script highlight(sourceId, targetId string) { - let items = document.getElementsByClassName(sourceId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.add("highlighted"); - } - items = document.getElementsByClassName(targetId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.add("highlighted"); - } -} - -script removeHighlight(sourceId, targetId string) { - let items = document.getElementsByClassName(sourceId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.remove("highlighted"); - } - items = document.getElementsByClassName(targetId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.remove("highlighted"); - } -} - -templ mappedCharacter(s string, sourceID, targetID string) { - <span class={ templ.Classes(templ.Class("mapped"), templ.Class(sourceID), templ.Class(targetID)) } onMouseOver={ highlight(sourceID, targetID) } onMouseOut={ removeHighlight(sourceID, targetID) }>{ s }</span> -} diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go b/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go deleted file mode 100644 index 5021399..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/visualize/sourcemapvisualisation_templ.go +++ /dev/null @@ -1,295 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -package visualize - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func row() templ.CSSClass { - templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() - templ_7745c5c3_CSSBuilder.WriteString(`display:flex;`) - templ_7745c5c3_CSSID := templ.CSSID(`row`, templ_7745c5c3_CSSBuilder.String()) - return templ.ComponentCSSClass{ - ID: templ_7745c5c3_CSSID, - Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), - } -} - -func column() templ.CSSClass { - templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() - templ_7745c5c3_CSSBuilder.WriteString(`flex:50%;`) - templ_7745c5c3_CSSBuilder.WriteString(`overflow-y:scroll;`) - templ_7745c5c3_CSSBuilder.WriteString(`max-height:100vh;`) - templ_7745c5c3_CSSID := templ.CSSID(`column`, templ_7745c5c3_CSSBuilder.String()) - return templ.ComponentCSSClass{ - ID: templ_7745c5c3_CSSID, - Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), - } -} - -func code() templ.CSSClass { - templ_7745c5c3_CSSBuilder := templruntime.GetBuilder() - templ_7745c5c3_CSSBuilder.WriteString(`font-family:monospace;`) - templ_7745c5c3_CSSID := templ.CSSID(`code`, templ_7745c5c3_CSSBuilder.String()) - return templ.ComponentCSSClass{ - ID: templ_7745c5c3_CSSID, - Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`), - } -} - -func combine(templFileName string, left, right templ.Component) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<html><head><title>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(templFileName) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 20, Col: 25} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "- Source Map Visualisation</title><style type=\"text/css\">\n\t\t\t\t.mapped {\n\t\t\t\t\tbackground-color: green;\n\t\t\t\t}\n\t\t\t\t.highlighted {\n\t\t\t\t\tbackground-color: yellow;\n\t\t\t\t}\n\t\t\t</style></head><body><h1>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(templFileName) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 31, Col: 22} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</h1>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 = []any{templ.Classes(row())} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var4...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<div class=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var4).String()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 1, Col: 0} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "\">") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 = []any{templ.Classes(column(), code())} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var6...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<div class=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var7 string - templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var6).String()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 1, Col: 0} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\">") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = left.Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</div>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var8 = []any{templ.Classes(column(), code())} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var8...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<div class=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var9 string - templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var8).String()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 1, Col: 0} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "\">") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = right.Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</div></div></body></html>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func highlight(sourceId, targetId string) templ.ComponentScript { - return templ.ComponentScript{ - Name: `__templ_highlight_ae80`, - Function: `function __templ_highlight_ae80(sourceId, targetId){let items = document.getElementsByClassName(sourceId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.add("highlighted"); - } - items = document.getElementsByClassName(targetId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.add("highlighted"); - } -}`, - Call: templ.SafeScript(`__templ_highlight_ae80`, sourceId, targetId), - CallInline: templ.SafeScriptInline(`__templ_highlight_ae80`, sourceId, targetId), - } -} - -func removeHighlight(sourceId, targetId string) templ.ComponentScript { - return templ.ComponentScript{ - Name: `__templ_removeHighlight_58f2`, - Function: `function __templ_removeHighlight_58f2(sourceId, targetId){let items = document.getElementsByClassName(sourceId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.remove("highlighted"); - } - items = document.getElementsByClassName(targetId); - for(let i = 0; i < items.length; i ++) { - items[i].classList.remove("highlighted"); - } -}`, - Call: templ.SafeScript(`__templ_removeHighlight_58f2`, sourceId, targetId), - CallInline: templ.SafeScriptInline(`__templ_removeHighlight_58f2`, sourceId, targetId), - } -} - -func mappedCharacter(s string, sourceID, targetID string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var10 := templ.GetChildren(ctx) - if templ_7745c5c3_Var10 == nil { - templ_7745c5c3_Var10 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - var templ_7745c5c3_Var11 = []any{templ.Classes(templ.Class("mapped"), templ.Class(sourceID), templ.Class(targetID))} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var11...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, highlight(sourceID, targetID), removeHighlight(sourceID, targetID)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<span class=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 string - templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var11).String()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 1, Col: 0} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "\" onMouseOver=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var13 templ.ComponentScript = highlight(sourceID, targetID) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var13.Call) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "\" onMouseOut=\"") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var14 templ.ComponentScript = removeHighlight(sourceID, targetID) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var14.Call) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "\">") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var15 string - templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(s) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `cmd/templ/visualize/sourcemapvisualisation.templ`, Line: 67, Col: 200} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</span>") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go b/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go deleted file mode 100644 index 4a8c49a..0000000 --- a/vendor/github.com/a-h/templ/cmd/templ/visualize/types.go +++ /dev/null @@ -1,87 +0,0 @@ -package visualize - -import ( - "context" - "fmt" - "html" - "io" - "strconv" - "strings" - - "github.com/a-h/templ" - "github.com/a-h/templ/parser/v2" -) - -func HTML(templFileName string, templContents, goContents string, sourceMap *parser.SourceMap) templ.Component { - tl := templLines{contents: string(templContents), sourceMap: sourceMap} - gl := goLines{contents: string(goContents), sourceMap: sourceMap} - return combine(templFileName, tl, gl) -} - -type templLines struct { - contents string - sourceMap *parser.SourceMap -} - -func (tl templLines) Render(ctx context.Context, w io.Writer) (err error) { - templLines := strings.Split(tl.contents, "\n") - for lineIndex, line := range templLines { - if _, err = w.Write([]byte("<span>" + strconv.Itoa(lineIndex) + "&nbsp;</span>\n")); err != nil { - return - } - for colIndex, c := range line { - if tgt, ok := tl.sourceMap.TargetPositionFromSource(uint32(lineIndex), uint32(colIndex)); ok { - sourceID := fmt.Sprintf("src_%d_%d", lineIndex, colIndex) - targetID := fmt.Sprintf("tgt_%d_%d", tgt.Line, tgt.Col) - if err := mappedCharacter(string(c), sourceID, targetID).Render(ctx, w); err != nil { - return err - } - } else { - s := html.EscapeString(string(c)) - s = strings.ReplaceAll(s, "\t", "&nbsp;") - s = strings.ReplaceAll(s, " ", "&nbsp;") - if _, err := w.Write([]byte(s)); err != nil { - return err - } - } - } - if _, err = w.Write([]byte("\n<br/>\n")); err != nil { - return - } - } - return nil -} - -type goLines struct { - contents string - sourceMap *parser.SourceMap -} - -func (gl goLines) Render(ctx context.Context, w io.Writer) (err error) { - templLines := strings.Split(gl.contents, "\n") - for lineIndex, line := range templLines { - if _, err = w.Write([]byte("<span>" + strconv.Itoa(lineIndex) + "&nbsp;</span>\n")); err != nil { - return - } - for colIndex, c := range line { - if src, ok := gl.sourceMap.SourcePositionFromTarget(uint32(lineIndex), uint32(colIndex)); ok { - sourceID := fmt.Sprintf("src_%d_%d", src.Line, src.Col) - targetID := fmt.Sprintf("tgt_%d_%d", lineIndex, colIndex) - if err := mappedCharacter(string(c), sourceID, targetID).Render(ctx, w); err != nil { - return err - } - } else { - s := html.EscapeString(string(c)) - s = strings.ReplaceAll(s, "\t", "&nbsp;") - s = strings.ReplaceAll(s, " ", "&nbsp;") - if _, err := w.Write([]byte(s)); err != nil { - return err - } - } - } - if _, err = w.Write([]byte("\n<br/>\n")); err != nil { - return - } - } - return nil -} diff --git a/vendor/github.com/a-h/templ/cosign.pub b/vendor/github.com/a-h/templ/cosign.pub deleted file mode 100644 index 9d7967b..0000000 --- a/vendor/github.com/a-h/templ/cosign.pub +++ /dev/null @@ -1,4 +0,0 @@ ------BEGIN PUBLIC KEY----- -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqHp75uAj8XqKrLO2YvY0M2EddckH -evQnNAj+0GmBptqdf3NJcUCjL6w4z2Ikh/Zb8lh6b13akAwO/dJQaMLoMA== ------END PUBLIC KEY----- diff --git a/vendor/github.com/a-h/templ/flake.lock b/vendor/github.com/a-h/templ/flake.lock deleted file mode 100644 index 10dde36..0000000 --- a/vendor/github.com/a-h/templ/flake.lock +++ /dev/null @@ -1,124 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1754937576, - "narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1755027561, - "narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "005433b926e16227259a1843015b5b2b7f7d1fc3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "gitignore": "gitignore", - "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", - "version": "version", - "xc": "xc" - } - }, - "version": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1749991223, - "narHash": "sha256-K6OM2m+Bdkbq7MvTIwI1t0aPIwmkLUDeUfev5VHpiwg=", - "owner": "a-h", - "repo": "version", - "rev": "da721166410c6e7e2bea37cf3dee3948b5d0c83f", - "type": "github" - }, - "original": { - "owner": "a-h", - "ref": "0.0.10", - "repo": "version", - "type": "github" - } - }, - "xc": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1737995220, - "narHash": "sha256-1BTm0vPG6H7Xb6aGzA+v0Bv6+ONZm/kOebI4iKoZkSE=", - "owner": "joerdav", - "repo": "xc", - "rev": "85ad0fa8b705f290b050d93ae6be65d994d15528", - "type": "github" - }, - "original": { - "owner": "joerdav", - "repo": "xc", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/vendor/github.com/a-h/templ/flake.nix b/vendor/github.com/a-h/templ/flake.nix deleted file mode 100644 index 1c18f12..0000000 --- a/vendor/github.com/a-h/templ/flake.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ - description = "templ"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; - nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - gitignore = { - url = "github:hercules-ci/gitignore.nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - version = { - url = "github:a-h/version/0.0.10"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - xc = { - url = "github:joerdav/xc"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = { self, nixpkgs, nixpkgs-unstable, gitignore, version, xc }: - let - allSystems = [ - "x86_64-linux" # 64-bit Intel/AMD Linux - "aarch64-linux" # 64-bit ARM Linux - "x86_64-darwin" # 64-bit Intel macOS - "aarch64-darwin" # 64-bit ARM macOS - ]; - forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f { - inherit system; - pkgs = - let - pkgs-unstable = import nixpkgs-unstable { inherit system; }; - in - import nixpkgs { - inherit system; - overlays = [ - (final: prev: { - gopls = pkgs-unstable.gopls; - version = version.packages.${system}.default; # Used to apply version numbers to the repo. - xc = xc.packages.${system}.xc; - }) - ]; - }; - }); - in - { - packages = forAllSystems ({ pkgs, ... }: - rec { - default = templ; - - templ = pkgs.buildGo124Module { - name = "templ"; - subPackages = [ "cmd/templ" ]; - src = gitignore.lib.gitignoreSource ./.; - vendorHash = "sha256-pVZjZCXT/xhBCMyZdR7kEmB9jqhTwRISFp63bQf6w5A="; - env = { - CGO_ENABLED = 0; - }; - flags = [ - "-trimpath" - ]; - ldflags = [ - "-s" - "-w" - "-extldflags -static" - ]; - }; - }); - - # `nix develop` provides a shell containing development tools. - devShell = forAllSystems ({ pkgs, ... }: - pkgs.mkShell { - buildInputs = [ - pkgs.golangci-lint - pkgs.cosign # Used to sign container images. - pkgs.esbuild # Used to package JS examples. - pkgs.go - pkgs.gopls - pkgs.goreleaser - pkgs.gotestsum - pkgs.ko # Used to build Docker images. - pkgs.nodejs # Used to build templ-docs. - pkgs.nodePackages.prettier # Used for formatting JS and CSS. - pkgs.version - pkgs.xc - ]; - }); - - # This flake outputs an overlay that can be used to add templ and - # templ-docs to nixpkgs as per https://templ.guide/quick-start/installation/#nix - # - # Example usage: - # - # nixpkgs.overlays = [ - # inputs.templ.overlays.default - # ]; - overlays.default = final: prev: { - templ = self.packages.${final.stdenv.system}.templ; - templ-docs = self.packages.${final.stdenv.system}.templ-docs; - }; - }; -} - diff --git a/vendor/github.com/a-h/templ/flush.go b/vendor/github.com/a-h/templ/flush.go deleted file mode 100644 index 56d7d3a..0000000 --- a/vendor/github.com/a-h/templ/flush.go +++ /dev/null @@ -1,36 +0,0 @@ -package templ - -import ( - "context" - "io" -) - -// Flush flushes the output buffer after all its child components have been rendered. -func Flush() FlushComponent { - return FlushComponent{} -} - -type FlushComponent struct { -} - -type flusherError interface { - Flush() error -} - -type flusher interface { - Flush() -} - -func (f FlushComponent) Render(ctx context.Context, w io.Writer) (err error) { - if err = GetChildren(ctx).Render(ctx, w); err != nil { - return err - } - switch w := w.(type) { - case flusher: - w.Flush() - return nil - case flusherError: - return w.Flush() - } - return nil -} diff --git a/vendor/github.com/a-h/templ/fragment.go b/vendor/github.com/a-h/templ/fragment.go deleted file mode 100644 index 0b8624d..0000000 --- a/vendor/github.com/a-h/templ/fragment.go +++ /dev/null @@ -1,70 +0,0 @@ -package templ - -import ( - "context" - "io" - "slices" -) - -// RenderFragments renders the specified fragments to w. -func RenderFragments(ctx context.Context, w io.Writer, c Component, ids ...any) error { - ctx = context.WithValue(ctx, fragmentContextKey, &FragmentContext{ - W: w, - IDs: ids, - }) - return c.Render(ctx, io.Discard) -} - -type fragmentContextKeyType int - -const fragmentContextKey fragmentContextKeyType = iota - -// FragmentContext is used to control rendering of fragments within a template. -type FragmentContext struct { - W io.Writer - IDs []any - Active bool -} - -// Fragment defines a fragment within a template that can be rendered conditionally based on the id. -// You can use it to render a specific part of a page, e.g. to reduce the amount of HTML returned from a HTMX-initiated request. -// Any non-matching contents of the template are rendered, but discarded by the FramentWriter. -func Fragment(id any) Component { - return &fragment{ - ID: id, - } -} - -type fragment struct { - ID any -} - -func (f *fragment) Render(ctx context.Context, w io.Writer) (err error) { - // If not in a fragment context, if we're a child fragment, or in a mismatching fragment context, render children normally. - fragmentCtx := getFragmentContext(ctx) - if fragmentCtx == nil || fragmentCtx.Active || !slices.Contains(fragmentCtx.IDs, f.ID) { - return GetChildren(ctx).Render(ctx, w) - } - - // Instruct child fragments to render their contents normally, because the writer - // passed to them is already the FragmentContext's writer. - fragmentCtx.Active = true - defer func() { - fragmentCtx.Active = false - }() - return GetChildren(ctx).Render(ctx, fragmentCtx.W) -} - -// getFragmentContext retrieves the FragmentContext from the provided context. It returns nil if no -// FragmentContext is found or if the context value is of an unexpected type. -func getFragmentContext(ctx context.Context) *FragmentContext { - ctxValue := ctx.Value(fragmentContextKey) - if ctxValue == nil { - return nil - } - v, ok := ctxValue.(*FragmentContext) - if !ok { - return nil - } - return v -} diff --git a/vendor/github.com/a-h/templ/generator/generator.go b/vendor/github.com/a-h/templ/generator/generator.go deleted file mode 100644 index 6476741..0000000 --- a/vendor/github.com/a-h/templ/generator/generator.go +++ /dev/null @@ -1,1815 +0,0 @@ -package generator - -import ( - "crypto/sha256" - "encoding/hex" - "errors" - "fmt" - "html" - "io" - "path/filepath" - "reflect" - "strconv" - "strings" - "time" - "unicode" - - _ "embed" - - "github.com/a-h/templ/parser/v2" -) - -type GenerateOpt func(g *generator) error - -// WithVersion enables the version to be included in the generated code. -func WithVersion(v string) GenerateOpt { - return func(g *generator) error { - g.options.Version = v - return nil - } -} - -// WithTimestamp enables the generated date to be included in the generated code. -func WithTimestamp(d time.Time) GenerateOpt { - return func(g *generator) error { - g.options.GeneratedDate = d.Format(time.RFC3339) - return nil - } -} - -// WithFileName sets the filename of the templ file in template rendering error messages. -func WithFileName(name string) GenerateOpt { - return func(g *generator) error { - if filepath.IsAbs(name) { - _, g.options.FileName = filepath.Split(name) - return nil - } - g.options.FileName = name - return nil - } -} - -// WithSkipCodeGeneratedComment skips the code generated comment at the top of the file. -// gopls disables edit related functionality for generated files, so the templ LSP may -// wish to skip generation of this comment so that gopls provides expected results. -func WithSkipCodeGeneratedComment() GenerateOpt { - return func(g *generator) error { - g.options.SkipCodeGeneratedComment = true - return nil - } -} - -type GeneratorOutput struct { - Options GeneratorOptions `json:"meta"` - SourceMap *parser.SourceMap `json:"sourceMap"` - Literals []string `json:"literals"` -} - -type GeneratorOptions struct { - // Version of templ. - Version string - // FileName to include in error messages if string expressions return an error. - FileName string - // SkipCodeGeneratedComment skips the code generated comment at the top of the file. - SkipCodeGeneratedComment bool - // GeneratedDate to include as a comment. - GeneratedDate string -} - -// HasGoChanged returns true if the Go code has changed between the previous and updated GeneratorOutput. -func HasGoChanged(previous, updated GeneratorOutput) bool { - // If generator options have changed, we need to recompile. - if previous.Options.Version != updated.Options.Version { - return true - } - if previous.Options.FileName != updated.Options.FileName { - return true - } - if previous.Options.SkipCodeGeneratedComment != updated.Options.SkipCodeGeneratedComment { - return true - } - // We don't check the generated date as it's not used for determining if the file has changed. - // If the number of literals has changed, we need to recompile. - if len(previous.Literals) != len(updated.Literals) { - return true - } - // If the Go code has changed, we need to recompile. - if len(previous.SourceMap.Expressions) != len(updated.SourceMap.Expressions) { - return true - } - for i, prev := range previous.SourceMap.Expressions { - if prev != updated.SourceMap.Expressions[i] { - return true - } - } - return false -} - -// HasTextChanged returns true if the text literals have changed between the previous and updated GeneratorOutput. -func HasTextChanged(previous, updated GeneratorOutput) bool { - if len(previous.Literals) != len(updated.Literals) { - return true - } - for i, prev := range previous.Literals { - if prev != updated.Literals[i] { - return true - } - } - return false -} - -// Generate generates Go code from the input template file to w, and returns a map of the location of Go expressions in the template -// to the location of the generated Go code in the output. -func Generate(template *parser.TemplateFile, w io.Writer, opts ...GenerateOpt) (op GeneratorOutput, err error) { - g := &generator{ - tf: template, - w: NewRangeWriter(w), - sourceMap: parser.NewSourceMap(), - } - for _, opt := range opts { - if err = opt(g); err != nil { - return - } - } - err = g.generate() - if err != nil { - return op, err - } - op.Options = g.options - op.SourceMap = g.sourceMap - op.Literals = g.w.Literals - return op, nil -} - -type generator struct { - tf *parser.TemplateFile - w *RangeWriter - sourceMap *parser.SourceMap - variableID int - childrenVar string - - options GeneratorOptions -} - -func (g *generator) generate() (err error) { - if err = g.writeCodeGeneratedComment(); err != nil { - return - } - if err = g.writeVersionComment(); err != nil { - return - } - if err = g.writeGeneratedDateComment(); err != nil { - return - } - if err = g.writeHeader(); err != nil { - return - } - if err = g.writePackage(); err != nil { - return - } - if err = g.writeImports(); err != nil { - return - } - if err = g.writeTemplateNodes(); err != nil { - return - } - if err = g.writeBlankAssignmentForRuntimeImport(); err != nil { - return - } - return err -} - -// See https://pkg.go.dev/cmd/go#hdr-Generate_Go_files_by_processing_source -// Automatically generated files have a comment in the header that instructs the LSP -// to stop operating. -func (g *generator) writeCodeGeneratedComment() (err error) { - if g.options.SkipCodeGeneratedComment { - // Write an empty comment so that the file is the same shape. - _, err = g.w.Write("//\n\n") - return err - } - _, err = g.w.Write("// Code generated by templ - DO NOT EDIT.\n\n") - return err -} - -func (g *generator) writeVersionComment() (err error) { - if g.options.Version != "" { - _, err = g.w.Write("// templ: version: " + g.options.Version + "\n") - } - return err -} - -func (g *generator) writeGeneratedDateComment() (err error) { - if g.options.GeneratedDate != "" { - _, err = g.w.Write("// templ: generated: " + g.options.GeneratedDate + "\n") - } - return err -} - -func (g *generator) writeHeader() (err error) { - if len(g.tf.Header) == 0 { - return nil - } - for _, n := range g.tf.Header { - if err := g.writeGoExpression(n); err != nil { - return err - } - } - return err -} - -func (g *generator) writePackage() error { - var r parser.Range - var err error - // package ... - if r, err = g.w.Write(g.tf.Package.Expression.Value + "\n\n"); err != nil { - return err - } - g.sourceMap.Add(g.tf.Package.Expression, r) - if _, err = g.w.Write("//lint:file-ignore SA4006 This context is only used if a nested component is present.\n\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeImports() error { - var err error - // Always import templ because it's the interface type of all templates. - if _, err = g.w.Write("import \"github.com/a-h/templ\"\n"); err != nil { - return err - } - if _, err = g.w.Write("import templruntime \"github.com/a-h/templ/runtime\"\n"); err != nil { - return err - } - if _, err = g.w.Write("\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeTemplateNodes() error { - for i, n := range g.tf.Nodes { - switch n := n.(type) { - case *parser.TemplateFileGoExpression: - if err := g.writeGoExpression(n); err != nil { - return err - } - case *parser.HTMLTemplate: - if err := g.writeTemplate(i, n); err != nil { - return err - } - case *parser.CSSTemplate: - if err := g.writeCSS(n); err != nil { - return err - } - case *parser.ScriptTemplate: - if err := g.writeScript(n); err != nil { - return err - } - default: - return fmt.Errorf("unknown node type: %v", reflect.TypeOf(n)) - } - } - return nil -} - -func (g *generator) writeCSS(n *parser.CSSTemplate) error { - if n == nil { - return errors.New("CSS template is nil") - } - var r parser.Range - var tgtSymbolRange parser.Range - var err error - var indentLevel int - - // func - if r, err = g.w.Write("func "); err != nil { - return err - } - tgtSymbolRange.From = r.From - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // templ.CSSClass { - if _, err = g.w.Write(" templ.CSSClass {\n"); err != nil { - return err - } - { - indentLevel++ - // templ_7745c5c3_CSSBuilder := templruntim.GetBuilder() - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_CSSBuilder := templruntime.GetBuilder()\n"); err != nil { - return err - } - for _, p := range n.Properties { - switch p := p.(type) { - case *parser.ConstantCSSProperty: - // Constant CSS property values are not sanitized. - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_CSSBuilder.WriteString("+createGoString(p.String(true))+")\n"); err != nil { - return err - } - case *parser.ExpressionCSSProperty: - // templ_7745c5c3_CSSBuilder.WriteString(templ.SanitizeCSS('name', p.Expression())) - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_CSSBuilder.WriteString(string(templ.SanitizeCSS(`%s`, ", p.Name)); err != nil { - return err - } - if r, err = g.w.Write(p.Value.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(p.Value.Expression, r) - if _, err = g.w.Write(")))\n"); err != nil { - return err - } - default: - return fmt.Errorf("unknown CSS property type: %v", reflect.TypeOf(p)) - } - } - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_CSSID := templ.CSSID(`%s`, templ_7745c5c3_CSSBuilder.String())\n", n.Name)); err != nil { - return err - } - // return templ.CSS { - if _, err = g.w.WriteIndent(indentLevel, "return templ.ComponentCSSClass{\n"); err != nil { - return err - } - { - indentLevel++ - // ID: templ_7745c5c3_CSSID, - if _, err = g.w.WriteIndent(indentLevel, "ID: templ_7745c5c3_CSSID,\n"); err != nil { - return err - } - // Class: templ.SafeCSS(".cssID{" + templ.CSSBuilder.String() + "}"), - if _, err = g.w.WriteIndent(indentLevel, "Class: templ.SafeCSS(`.` + templ_7745c5c3_CSSID + `{` + templ_7745c5c3_CSSBuilder.String() + `}`),\n"); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - indentLevel-- - } - // } - if r, err = g.w.WriteIndent(indentLevel, "}\n\n"); err != nil { - return err - } - - // Keep a track of symbol ranges for the LSP. - tgtSymbolRange.To = r.To - g.sourceMap.AddSymbolRange(n.Range, tgtSymbolRange) - - return nil -} - -func (g *generator) writeGoExpression(n *parser.TemplateFileGoExpression) (err error) { - if n == nil { - return errors.New("go expression is nil") - } - var tgtSymbolRange parser.Range - - r, err := g.w.Write(n.Expression.Value) - if err != nil { - return err - } - tgtSymbolRange.From = r.From - g.sourceMap.Add(n.Expression, r) - v := n.Expression.Value - lineSlice := strings.Split(v, "\n") - lastLine := lineSlice[len(lineSlice)-1] - if strings.HasPrefix(lastLine, "//") { - if _, err = g.w.WriteIndent(0, "\n"); err != nil { - return err - } - return err - } - if r, err = g.w.WriteIndent(0, "\n\n"); err != nil { - return err - } - - // Keep a track of symbol ranges for the LSP. - tgtSymbolRange.To = r.To - g.sourceMap.AddSymbolRange(n.Expression.Range, tgtSymbolRange) - - return err -} - -func (g *generator) writeTemplBuffer(indentLevel int) (err error) { - // templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)\n"); err != nil { - return err - } - // if !templ_7745c5c3_IsBuffer { - // defer func() { - // templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - // if templ_7745c5c3_Err == nil { - // templ_7745c5c3_Err = templ_7745c5c3_BufErr - // } - // }() - // } - if _, err = g.w.WriteIndent(indentLevel, "if !templ_7745c5c3_IsBuffer {\n"); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "defer func() {\n"); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)\n"); err != nil { - return err - } - if _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err == nil {\n"); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ_7745c5c3_BufErr\n"); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}()\n"); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - return -} - -func (g *generator) writeTemplate(nodeIdx int, t *parser.HTMLTemplate) error { - if t == nil { - return errors.New("template is nil") - } - var r parser.Range - var tgtSymbolRange parser.Range - var err error - var indentLevel int - - // func - if r, err = g.w.Write("func "); err != nil { - return err - } - tgtSymbolRange.From = r.From - // (r *Receiver) Name(params []string) - if r, err = g.w.Write(t.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(t.Expression, r) - // templ.Component { - if _, err = g.w.Write(" templ.Component {\n"); err != nil { - return err - } - indentLevel++ - // return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - if _, err = g.w.WriteIndent(indentLevel, "return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {\n"); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context\n"); err != nil { - return err - } - if _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {\n"); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "return templ_7745c5c3_CtxErr"); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - if err := g.writeTemplBuffer(indentLevel); err != nil { - return err - } - // ctx = templ.InitializeContext(ctx) - if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.InitializeContext(ctx)\n"); err != nil { - return err - } - g.childrenVar = g.createVariableName() - // templ_7745c5c3_Var1 := templ.GetChildren(ctx) - // if templ_7745c5c3_Var1 == nil { - // templ_7745c5c3_Var1 = templ.NopComponent - // } - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("%s := templ.GetChildren(ctx)\n", g.childrenVar)); err != nil { - return err - } - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("if %s == nil {\n", g.childrenVar)); err != nil { - return err - } - { - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("%s = templ.NopComponent\n", g.childrenVar)); err != nil { - return err - } - indentLevel-- - } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - // ctx = templ.ClearChildren(children) - if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.ClearChildren(ctx)\n"); err != nil { - return err - } - // Nodes. - if err = g.writeNodes(indentLevel, stripWhitespace(t.Children), nil); err != nil { - return err - } - // return nil - if _, err = g.w.WriteIndent(indentLevel, "return nil\n"); err != nil { - return err - } - indentLevel-- - } - // }) - if _, err = g.w.WriteIndent(indentLevel, "})\n"); err != nil { - return err - } - indentLevel-- - // } - - // Note: gofmt wants to remove a single empty line at the end of a file - // so we have to make sure we don't output one if this is the last node. - closingBrace := "}\n\n" - if nodeIdx+1 >= len(g.tf.Nodes) { - closingBrace = "}\n" - } - - if r, err = g.w.WriteIndent(indentLevel, closingBrace); err != nil { - return err - } - - // Keep a track of symbol ranges for the LSP. - tgtSymbolRange.To = r.To - g.sourceMap.AddSymbolRange(t.Range, tgtSymbolRange) - - return nil -} - -func stripWhitespace(input []parser.Node) (output []parser.Node) { - for i, n := range input { - if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { - output = append(output, input[i]) - } - } - return output -} - -func stripLeadingWhitespace(nodes []parser.Node) []parser.Node { - for i, n := range nodes { - if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { - return nodes[i:] - } - } - return []parser.Node{} -} - -func stripTrailingWhitespace(nodes []parser.Node) []parser.Node { - for i := len(nodes) - 1; i >= 0; i-- { - n := nodes[i] - if _, isWhiteSpace := n.(*parser.Whitespace); !isWhiteSpace { - return nodes[0 : i+1] - } - } - return []parser.Node{} -} - -func stripLeadingAndTrailingWhitespace(nodes []parser.Node) []parser.Node { - return stripTrailingWhitespace(stripLeadingWhitespace(nodes)) -} - -func (g *generator) writeNodes(indentLevel int, nodes []parser.Node, next parser.Node) error { - for i, curr := range nodes { - var nextNode parser.Node - if i+1 < len(nodes) { - nextNode = nodes[i+1] - } - if nextNode == nil { - nextNode = next - } - if err := g.writeNode(indentLevel, curr, nextNode); err != nil { - return err - } - } - return nil -} - -func (g *generator) writeNode(indentLevel int, current parser.Node, next parser.Node) (err error) { - switch n := current.(type) { - case *parser.DocType: - err = g.writeDocType(indentLevel, n) - case *parser.Element: - err = g.writeElement(indentLevel, n) - case *parser.HTMLComment: - err = g.writeComment(indentLevel, n) - case *parser.ChildrenExpression: - err = g.writeChildrenExpression(indentLevel) - case *parser.RawElement: - err = g.writeRawElement(indentLevel, n) - case *parser.ScriptElement: - err = g.writeScriptElement(indentLevel, n) - case *parser.ForExpression: - err = g.writeForExpression(indentLevel, n, next) - case *parser.CallTemplateExpression: - err = g.writeCallTemplateExpression(indentLevel, n) - case *parser.TemplElementExpression: - err = g.writeTemplElementExpression(indentLevel, n) - case *parser.IfExpression: - err = g.writeIfExpression(indentLevel, n, next) - case *parser.SwitchExpression: - err = g.writeSwitchExpression(indentLevel, n, next) - case *parser.StringExpression: - err = g.writeStringExpression(indentLevel, n.Expression) - case *parser.GoCode: - err = g.writeGoCode(indentLevel, n.Expression) - case *parser.Whitespace: - err = g.writeWhitespace(indentLevel, n) - case *parser.Text: - err = g.writeText(indentLevel, n) - case *parser.GoComment: - // Do not render Go comments in the output HTML. - return - default: - return fmt.Errorf("unhandled type: %v", reflect.TypeOf(n)) - } - // Write trailing whitespace, if there is a next node that might need the space. - // If the next node is inline or text, we might need it. - // If the current node is a block element, we don't need it. - needed := (isInlineOrText(current) && isInlineOrText(next)) - if ws, ok := current.(parser.WhitespaceTrailer); ok && needed { - if err := g.writeWhitespaceTrailer(indentLevel, ws.Trailing()); err != nil { - return err - } - } - return -} - -func isInlineOrText(next parser.Node) bool { - // While these are formatted as blocks when they're written in the HTML template. - // They're inline - i.e. there's no whitespace rendered around them at runtime for minification. - if next == nil { - return false - } - switch n := next.(type) { - case *parser.IfExpression: - return true - case *parser.SwitchExpression: - return true - case *parser.ForExpression: - return true - case *parser.Element: - return !n.IsBlockElement() - case *parser.Text: - return true - case *parser.StringExpression: - return true - } - return false -} - -func (g *generator) writeWhitespaceTrailer(indentLevel int, n parser.TrailingSpace) (err error) { - if n == parser.SpaceNone { - return nil - } - // Normalize whitespace for minified output. In HTML, a single space is equivalent to - // any number of spaces, tabs, or newlines. - if n == parser.SpaceVertical { - n = parser.SpaceHorizontal - } - if _, err = g.w.WriteStringLiteral(indentLevel, string(n)); err != nil { - return err - } - return nil -} - -func (g *generator) writeDocType(indentLevel int, n *parser.DocType) (err error) { - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf("<!doctype %s>", escapeQuotes(n.Value))); err != nil { - return err - } - return nil -} - -func escapeQuotes(s string) string { - quoted := strconv.Quote(s) - return quoted[1 : len(quoted)-1] -} - -func (g *generator) writeIfExpression(indentLevel int, n *parser.IfExpression, nextNode parser.Node) (err error) { - var r parser.Range - // if - if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { - return err - } - // x == y { - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Then), nextNode); err != nil { - return err - } - indentLevel-- - } - for _, elseIf := range n.ElseIfs { - // } else if { - if _, err = g.w.WriteIndent(indentLevel, `} else if `); err != nil { - return err - } - // x == y { - if r, err = g.w.Write(elseIf.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(elseIf.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(elseIf.Then), nextNode); err != nil { - return err - } - indentLevel-- - } - } - if len(n.Else) > 0 { - // } else { - if _, err = g.w.WriteIndent(indentLevel, `} else {`+"\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Else), nextNode); err != nil { - return err - } - indentLevel-- - } - } - // } - if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeSwitchExpression(indentLevel int, n *parser.SwitchExpression, next parser.Node) (err error) { - var r parser.Range - // switch - if _, err = g.w.WriteIndent(indentLevel, `switch `); err != nil { - return err - } - // val - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - - if len(n.Cases) > 0 { - for _, c := range n.Cases { - // case x: - // default: - if r, err = g.w.WriteIndent(indentLevel, c.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(c.Expression, r) - indentLevel++ - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(c.Children), next); err != nil { - return err - } - indentLevel-- - } - } - // } - if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeChildrenExpression(indentLevel int) (err error) { - if _, err = g.w.WriteIndent(indentLevel, fmt.Sprintf("templ_7745c5c3_Err = %s.Render(ctx, templ_7745c5c3_Buffer)\n", g.childrenVar)); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { - if len(n.Children) == 0 { - return g.writeSelfClosingTemplElementExpression(indentLevel, n) - } - return g.writeBlockTemplElementExpression(indentLevel, n) -} - -func (g *generator) writeBlockTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { - var r parser.Range - childrenName := g.createVariableName() - if _, err = g.w.WriteIndent(indentLevel, childrenName+" := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {\n"); err != nil { - return err - } - indentLevel++ - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context\n"); err != nil { - return err - } - if err := g.writeTemplBuffer(indentLevel); err != nil { - return err - } - // ctx = templ.InitializeContext(ctx) - if _, err = g.w.WriteIndent(indentLevel, "ctx = templ.InitializeContext(ctx)\n"); err != nil { - return err - } - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Children), nil); err != nil { - return err - } - // return nil - if _, err = g.w.WriteIndent(indentLevel, "return nil\n"); err != nil { - return err - } - indentLevel-- - if _, err = g.w.WriteIndent(indentLevel, "})\n"); err != nil { - return err - } - if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { - return err - } - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // .Render(templ.WithChildren(ctx, children), templ_7745c5c3_Buffer) - if _, err = g.w.Write(".Render(templ.WithChildren(ctx, " + childrenName + "), templ_7745c5c3_Buffer)\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeSelfClosingTemplElementExpression(indentLevel int, n *parser.TemplElementExpression) (err error) { - if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { - return err - } - // Template expression. - var r parser.Range - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // .Render(ctx, templ_7745c5c3_Buffer) - if _, err = g.w.Write(".Render(ctx, templ_7745c5c3_Buffer)\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeCallTemplateExpression(indentLevel int, n *parser.CallTemplateExpression) (err error) { - if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = `); err != nil { - return err - } - // Template expression. - var r parser.Range - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // .Render(ctx, templ_7745c5c3_Buffer) - if _, err = g.w.Write(".Render(ctx, templ_7745c5c3_Buffer)\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeForExpression(indentLevel int, n *parser.ForExpression, next parser.Node) (err error) { - var r parser.Range - // for - if _, err = g.w.WriteIndent(indentLevel, `for `); err != nil { - return err - } - // i, v := range p.Stuff - if r, err = g.w.Write(n.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(n.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - // Children. - indentLevel++ - if err = g.writeNodes(indentLevel, stripLeadingAndTrailingWhitespace(n.Children), next); err != nil { - return err - } - indentLevel-- - // } - if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeErrorHandler(indentLevel int) (err error) { - _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") - if err != nil { - return err - } - indentLevel++ - _, err = g.w.WriteIndent(indentLevel, "return templ_7745c5c3_Err\n") - if err != nil { - return err - } - indentLevel-- - _, err = g.w.WriteIndent(indentLevel, "}\n") - if err != nil { - return err - } - return err -} - -func (g *generator) writeExpressionErrorHandler(indentLevel int, expression parser.Expression) (err error) { - _, err = g.w.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") - if err != nil { - return err - } - indentLevel++ - line := int(expression.Range.To.Line + 1) - col := int(expression.Range.To.Col) - _, err = g.w.WriteIndent(indentLevel, "return templ.Error{Err: templ_7745c5c3_Err, FileName: "+createGoString(g.options.FileName)+", Line: "+strconv.Itoa(line)+", Col: "+strconv.Itoa(col)+"}\n") - if err != nil { - return err - } - indentLevel-- - _, err = g.w.WriteIndent(indentLevel, "}\n") - if err != nil { - return err - } - return err -} - -func (g *generator) writeElement(indentLevel int, n *parser.Element) (err error) { - if len(n.Attributes) == 0 { - // <div> - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s>`, html.EscapeString(n.Name))); err != nil { - return err - } - } else { - attrs := parser.CopyAttributes(n.Attributes) - // <style type="text/css"></style> - if err = g.writeElementCSS(indentLevel, attrs); err != nil { - return err - } - // <script></script> - if err = g.writeElementScript(indentLevel, attrs); err != nil { - return err - } - // <div - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s`, html.EscapeString(n.Name))); err != nil { - return err - } - if err = g.writeElementAttributes(indentLevel, n.Name, attrs); err != nil { - return err - } - // > - if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { - return err - } - } - // Skip children and close tag for void elements. - if n.IsVoidElement() && len(n.Children) == 0 { - return nil - } - // Children. - if err = g.writeNodes(indentLevel, stripWhitespace(n.Children), nil); err != nil { - return err - } - // </div> - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`</%s>`, html.EscapeString(n.Name))); err != nil { - return err - } - return err -} - -func (g *generator) writeAttributeCSS(indentLevel int, attr *parser.ExpressionAttribute) (result *parser.ExpressionAttribute, ok bool, err error) { - var r parser.Range - name := html.EscapeString(attr.Key.String()) - if name != "class" { - ok = false - return - } - // Create a class name for the style. - // The expression can either be expecting a templ.Classes call, or an expression that returns - // var templ_7745c5c3_CSSClasses = []any{ - classesName := g.createVariableName() - if _, err = g.w.WriteIndent(indentLevel, "var "+classesName+" = []any{"); err != nil { - return - } - // p.Name() - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return - } - g.sourceMap.Add(attr.Expression, r) - // }\n - if _, err = g.w.Write("}\n"); err != nil { - return - } - // Render the CSS before the element if required. - // templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_CSSClasses...) - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, "+classesName+"...)\n"); err != nil { - return - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return - } - // Rewrite the ExpressionAttribute to point at the new variable. - newAttr := &parser.ExpressionAttribute{ - Key: attr.Key, - Expression: parser.Expression{ - Value: "templ.CSSClasses(" + classesName + ").String()", - }, - } - return newAttr, true, nil -} - -func (g *generator) writeAttributesCSS(indentLevel int, attrs []parser.Attribute) (err error) { - for i, attr := range attrs { - if attr, ok := attr.(*parser.ExpressionAttribute); ok { - attr, ok, err = g.writeAttributeCSS(indentLevel, attr) - if err != nil { - return err - } - if ok { - attrs[i] = attr - } - } - if cattr, ok := attr.(*parser.ConditionalAttribute); ok { - err = g.writeAttributesCSS(indentLevel, cattr.Then) - if err != nil { - return err - } - err = g.writeAttributesCSS(indentLevel, cattr.Else) - if err != nil { - return err - } - attrs[i] = cattr - } - } - return nil -} - -func (g *generator) writeElementCSS(indentLevel int, attrs []parser.Attribute) (err error) { - return g.writeAttributesCSS(indentLevel, attrs) -} - -func isScriptAttribute(name string) bool { - for _, prefix := range []string{"on", "hx-on:"} { - if strings.HasPrefix(name, prefix) { - return true - } - } - return false -} - -func (g *generator) writeElementScript(indentLevel int, attrs []parser.Attribute) (err error) { - var scriptExpressions []string - for _, attr := range attrs { - scriptExpressions = append(scriptExpressions, getAttributeScripts(attr)...) - } - if len(scriptExpressions) == 0 { - return - } - // Render the scripts before the element if required. - // templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, a, b, c) - if _, err = g.w.WriteIndent(indentLevel, "templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, "+strings.Join(scriptExpressions, ", ")+")\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return err -} - -func getAttributeScripts(attr parser.Attribute) (scripts []string) { - if attr, ok := attr.(*parser.ConditionalAttribute); ok { - for _, attr := range attr.Then { - scripts = append(scripts, getAttributeScripts(attr)...) - } - for _, attr := range attr.Else { - scripts = append(scripts, getAttributeScripts(attr)...) - } - } - if attr, ok := attr.(*parser.ExpressionAttribute); ok { - name := html.EscapeString(attr.Key.String()) - if isScriptAttribute(name) { - scripts = append(scripts, attr.Expression.Value) - } - } - return scripts -} - -func (g *generator) writeAttributeKey(indentLevel int, attr parser.AttributeKey) (err error) { - if attr, ok := attr.(parser.ConstantAttributeKey); ok { - name := html.EscapeString(attr.Name) - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(` %s`, name)); err != nil { - return err - } - return nil - } - if attr, ok := attr.(parser.ExpressionAttributeKey); ok { - var r parser.Range - vn := g.createVariableName() - // var vn string - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { - return err - } - // vn, templ_7745c5c3_Err = templ.JoinStringErrs( - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { - return err - } - // p.Name() - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - // Attribute expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) - if err != nil { - return err - } - - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(` `+"+vn+"))\n"); err != nil { - return err - } - return g.writeErrorHandler(indentLevel) - } - return fmt.Errorf("unknown attribute key type %T", attr) -} - -func (g *generator) writeBoolConstantAttribute(indentLevel int, attr *parser.BoolConstantAttribute) (err error) { - return g.writeAttributeKey(indentLevel, attr.Key) -} - -func (g *generator) writeConstantAttribute(indentLevel int, attr *parser.ConstantAttribute) (err error) { - if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { - return err - } - quote := `"` - if attr.SingleQuote { - quote = "'" - } - value := escapeQuotes("=" + quote + attr.Value + quote) - if _, err = g.w.WriteStringLiteral(indentLevel, value); err != nil { - return err - } - return nil -} - -func (g *generator) writeBoolExpressionAttribute(indentLevel int, attr *parser.BoolExpressionAttribute) (err error) { - // if - if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { - return err - } - // x == y - var r parser.Range - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { - return err - } - indentLevel-- - } - // } - if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeExpressionAttributeValueURL(indentLevel int, attr *parser.ExpressionAttribute) (err error) { - vn := g.createVariableName() - // var vn templ.SafeURL - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" templ.SafeURL\n"); err != nil { - return err - } - // vn, templ_7745c5c3_Err = templ.JoinURLErrs( - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinURLErrs("); err != nil { - return err - } - // p.Name() - var r parser.Range - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - // Attribute expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) - if err != nil { - return err - } - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { - return err - } - return g.writeErrorHandler(indentLevel) -} - -func (g *generator) writeExpressionAttributeValueScript(indentLevel int, attr *parser.ExpressionAttribute) (err error) { - // It's a JavaScript handler, and requires special handling, because we expect a JavaScript expression. - vn := g.createVariableName() - // var vn templ.ComponentScript = - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" templ.ComponentScript = "); err != nil { - return err - } - // p.Name() - var r parser.Range - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - if _, err = g.w.Write("\n"); err != nil { - return err - } - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("+vn+".Call)\n"); err != nil { - return err - } - return g.writeErrorHandler(indentLevel) -} - -func (g *generator) writeExpressionAttributeValueDefault(indentLevel int, attr *parser.ExpressionAttribute) (err error) { - var r parser.Range - vn := g.createVariableName() - // var vn string - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { - return err - } - // vn, templ_7745c5c3_Err = templ.JoinStringErrs( - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { - return err - } - // p.Name() - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - // Attribute expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) - if err != nil { - return err - } - - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { - return err - } - return g.writeErrorHandler(indentLevel) -} - -func (g *generator) writeExpressionAttributeValueStyle(indentLevel int, attr *parser.ExpressionAttribute) (err error) { - var r parser.Range - vn := g.createVariableName() - // var vn string - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { - return err - } - // vn, templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues( - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templruntime.SanitizeStyleAttributeValues("); err != nil { - return err - } - // value - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - // Attribute expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, attr.Expression) - if err != nil { - return err - } - - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(vn)) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { - return err - } - return g.writeErrorHandler(indentLevel) -} - -func (g *generator) writeExpressionAttribute(indentLevel int, elementName string, attr *parser.ExpressionAttribute) (err error) { - if err = g.writeAttributeKey(indentLevel, attr.Key); err != nil { - return err - } - // =" - if _, err = g.w.WriteStringLiteral(indentLevel, `=\"`); err != nil { - return err - } - attrKey := html.EscapeString(attr.Key.String()) - // Value. - if isExpressionAttributeValueURL(elementName, attrKey) { - if err := g.writeExpressionAttributeValueURL(indentLevel, attr); err != nil { - return err - } - } else if isScriptAttribute(attrKey) { - if err := g.writeExpressionAttributeValueScript(indentLevel, attr); err != nil { - return err - } - } else if attrKey == "style" { - if err := g.writeExpressionAttributeValueStyle(indentLevel, attr); err != nil { - return err - } - } else { - if err := g.writeExpressionAttributeValueDefault(indentLevel, attr); err != nil { - return err - } - } - // Close quote. - if _, err = g.w.WriteStringLiteral(indentLevel, `\"`); err != nil { - return err - } - return nil -} - -func (g *generator) writeSpreadAttributes(indentLevel int, attr *parser.SpreadAttributes) (err error) { - // templ.RenderAttributes(ctx, w, spreadAttrs) - if _, err = g.w.WriteIndent(indentLevel, `templ_7745c5c3_Err = templ.RenderAttributes(ctx, templ_7745c5c3_Buffer, `); err != nil { - return err - } - // spreadAttrs - var r parser.Range - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeConditionalAttribute(indentLevel int, elementName string, attr *parser.ConditionalAttribute) (err error) { - // if - if _, err = g.w.WriteIndent(indentLevel, `if `); err != nil { - return err - } - // x == y - var r parser.Range - if r, err = g.w.Write(attr.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(attr.Expression, r) - // { - if _, err = g.w.Write(` {` + "\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeElementAttributes(indentLevel, elementName, attr.Then); err != nil { - return err - } - indentLevel-- - } - if len(attr.Else) > 0 { - // } else { - if _, err = g.w.WriteIndent(indentLevel, `} else {`+"\n"); err != nil { - return err - } - { - indentLevel++ - if err = g.writeElementAttributes(indentLevel, elementName, attr.Else); err != nil { - return err - } - indentLevel-- - } - } - // } - if _, err = g.w.WriteIndent(indentLevel, `}`+"\n"); err != nil { - return err - } - return nil -} - -func (g *generator) writeElementAttributes(indentLevel int, name string, attrs []parser.Attribute) (err error) { - for _, attr := range attrs { - switch attr := attr.(type) { - case *parser.BoolConstantAttribute: - err = g.writeBoolConstantAttribute(indentLevel, attr) - case *parser.ConstantAttribute: - err = g.writeConstantAttribute(indentLevel, attr) - case *parser.BoolExpressionAttribute: - err = g.writeBoolExpressionAttribute(indentLevel, attr) - case *parser.ExpressionAttribute: - err = g.writeExpressionAttribute(indentLevel, name, attr) - case *parser.SpreadAttributes: - err = g.writeSpreadAttributes(indentLevel, attr) - case *parser.ConditionalAttribute: - err = g.writeConditionalAttribute(indentLevel, name, attr) - default: - err = fmt.Errorf("unknown attribute type %T", attr) - } - } - return -} - -func (g *generator) writeRawElement(indentLevel int, n *parser.RawElement) (err error) { - if len(n.Attributes) == 0 { - // <div> - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s>`, html.EscapeString(n.Name))); err != nil { - return err - } - } else { - // <script></script> - if err = g.writeElementScript(indentLevel, n.Attributes); err != nil { - return err - } - // <div - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`<%s`, html.EscapeString(n.Name))); err != nil { - return err - } - if err = g.writeElementAttributes(indentLevel, n.Name, n.Attributes); err != nil { - return err - } - // > - if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { - return err - } - } - // Contents. - if err = g.writeText(indentLevel, &parser.Text{Value: n.Contents}); err != nil { - return err - } - // </div> - if _, err = g.w.WriteStringLiteral(indentLevel, fmt.Sprintf(`</%s>`, html.EscapeString(n.Name))); err != nil { - return err - } - return err -} - -func (g *generator) writeScriptElement(indentLevel int, n *parser.ScriptElement) (err error) { - if len(n.Attributes) == 0 { - // <div> - if _, err = g.w.WriteStringLiteral(indentLevel, `<script>`); err != nil { - return err - } - } else { - // <script></script> - if err = g.writeElementScript(indentLevel, n.Attributes); err != nil { - return err - } - // <div - if _, err = g.w.WriteStringLiteral(indentLevel, "<script"); err != nil { - return err - } - if err = g.writeElementAttributes(indentLevel, "script", n.Attributes); err != nil { - return err - } - // > - if _, err = g.w.WriteStringLiteral(indentLevel, `>`); err != nil { - return err - } - } - // Contents. - for _, c := range n.Contents { - if err = g.writeScriptContents(indentLevel, c); err != nil { - return err - } - } - // </div> - if _, err = g.w.WriteStringLiteral(indentLevel, "</script>"); err != nil { - return err - } - return err -} - -func (g *generator) writeScriptContents(indentLevel int, c parser.ScriptContents) (err error) { - if c.Value != nil { - if *c.Value == "" { - return nil - } - // This is a JS expression and can be written directly to the output. - return g.writeText(indentLevel, &parser.Text{Value: *c.Value}) - } - if c.GoCode != nil { - // This is a Go code block. The code needs to be evaluated, and the result written to the output. - // The variable is JSON encoded to ensure that it is safe to use within a script tag. - var r parser.Range - vn := g.createVariableName() - // Here, we need to get the result, which might be any type. We can use templ.ScriptContent to get the result. - // vn, templ_7745c5c3_Err := templruntime.ScriptContent( - fnCall := "templruntime.ScriptContentOutsideStringLiteral" - if c.InsideStringLiteral { - fnCall = "templruntime.ScriptContentInsideStringLiteral" - } - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err := "+fnCall+"("); err != nil { - return err - } - // p.Name() - if r, err = g.w.Write(c.GoCode.Expression.Value); err != nil { - return err - } - g.sourceMap.Add(c.GoCode.Expression, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - - // Expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, c.GoCode.Expression) - if err != nil { - return err - } - - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(jvn) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("+vn+")\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - - // Write any trailing space. - if c.GoCode.TrailingSpace != "" { - if err = g.writeText(indentLevel, &parser.Text{Value: string(c.GoCode.TrailingSpace)}); err != nil { - return err - } - } - - return nil - } - return errors.New("unknown script content") -} - -func (g *generator) writeComment(indentLevel int, c *parser.HTMLComment) (err error) { - // <!-- - if _, err = g.w.WriteStringLiteral(indentLevel, "<!--"); err != nil { - return err - } - // Contents. - if err = g.writeText(indentLevel, &parser.Text{Value: c.Contents}); err != nil { - return err - } - // --> - if _, err = g.w.WriteStringLiteral(indentLevel, "-->"); err != nil { - return err - } - return err -} - -func (g *generator) createVariableName() string { - g.variableID++ - return "templ_7745c5c3_Var" + strconv.Itoa(g.variableID) -} - -func (g *generator) writeGoCode(indentLevel int, e parser.Expression) (err error) { - if strings.TrimSpace(e.Value) == "" { - return - } - var r parser.Range - if r, err = g.w.WriteIndent(indentLevel, e.Value+"\n"); err != nil { - return err - } - g.sourceMap.Add(e, r) - return nil -} - -func (g *generator) writeStringExpression(indentLevel int, e parser.Expression) (err error) { - if strings.TrimSpace(e.Value) == "" { - return - } - var r parser.Range - vn := g.createVariableName() - // var vn string - if _, err = g.w.WriteIndent(indentLevel, "var "+vn+" string\n"); err != nil { - return err - } - // vn, templ_7745c5c3_Err = templ.JoinStringErrs( - if _, err = g.w.WriteIndent(indentLevel, vn+", templ_7745c5c3_Err = templ.JoinStringErrs("); err != nil { - return err - } - // p.Name() - if r, err = g.w.Write(e.Value); err != nil { - return err - } - g.sourceMap.Add(e, r) - // ) - if _, err = g.w.Write(")\n"); err != nil { - return err - } - - // String expression error handler. - err = g.writeExpressionErrorHandler(indentLevel, e) - if err != nil { - return err - } - - // _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(vn) - if _, err = g.w.WriteIndent(indentLevel, "_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString("+vn+"))\n"); err != nil { - return err - } - if err = g.writeErrorHandler(indentLevel); err != nil { - return err - } - return nil -} - -func (g *generator) writeWhitespace(indentLevel int, n *parser.Whitespace) (err error) { - if len(n.Value) == 0 { - return - } - // _, err = templ_7745c5c3_Buffer.WriteString(` `) - if _, err = g.w.WriteStringLiteral(indentLevel, " "); err != nil { - return err - } - return nil -} - -func (g *generator) writeText(indentLevel int, n *parser.Text) (err error) { - _, err = g.w.WriteStringLiteral(indentLevel, escapeQuotes(n.Value)) - return err -} - -func createGoString(s string) string { - var sb strings.Builder - sb.WriteRune('`') - sects := strings.Split(s, "`") - for i, sect := range sects { - sb.WriteString(sect) - if len(sects) > i+1 { - sb.WriteString("` + \"`\" + `") - } - } - sb.WriteRune('`') - return sb.String() -} - -func (g *generator) writeScript(t *parser.ScriptTemplate) error { - if t == nil { - return errors.New("script template is nil") - } - var r parser.Range - var tgtSymbolRange parser.Range - var err error - var indentLevel int - - // func - if r, err = g.w.Write("func "); err != nil { - return err - } - tgtSymbolRange.From = r.From - if r, err = g.w.Write(t.Name.Value); err != nil { - return err - } - g.sourceMap.Add(t.Name, r) - // ( - if _, err = g.w.Write("("); err != nil { - return err - } - // Write parameters. - if r, err = g.w.Write(t.Parameters.Value); err != nil { - return err - } - g.sourceMap.Add(t.Parameters, r) - // ) templ.ComponentScript { - if _, err = g.w.Write(") templ.ComponentScript {\n"); err != nil { - return err - } - indentLevel++ - // return templ.ComponentScript{ - if _, err = g.w.WriteIndent(indentLevel, "return templ.ComponentScript{\n"); err != nil { - return err - } - { - indentLevel++ - fn := functionName(t.Name.Value, t.Value) - goFn := createGoString(fn) - // Name: "scriptName", - if _, err = g.w.WriteIndent(indentLevel, "Name: "+goFn+",\n"); err != nil { - return err - } - // Function: `function scriptName(a, b, c){` + `constantScriptValue` + `}`, - prefix := "function " + fn + "(" + stripTypes(t.Parameters.Value) + "){" - body := strings.TrimLeftFunc(t.Value, unicode.IsSpace) - suffix := "}" - if _, err = g.w.WriteIndent(indentLevel, "Function: "+createGoString(prefix+body+suffix)+",\n"); err != nil { - return err - } - // Call: templ.SafeScript(scriptName, a, b, c) - if _, err = g.w.WriteIndent(indentLevel, "Call: templ.SafeScript("+goFn+", "+stripTypes(t.Parameters.Value)+"),\n"); err != nil { - return err - } - // CallInline: templ.SafeScriptInline(scriptName, a, b, c) - if _, err = g.w.WriteIndent(indentLevel, "CallInline: templ.SafeScriptInline("+goFn+", "+stripTypes(t.Parameters.Value)+"),\n"); err != nil { - return err - } - indentLevel-- - } - // } - if _, err = g.w.WriteIndent(indentLevel, "}\n"); err != nil { - return err - } - indentLevel-- - // } - if r, err = g.w.WriteIndent(indentLevel, "}\n\n"); err != nil { - return err - } - - // Keep track of the symbol range for the LSP. - tgtSymbolRange.To = r.To - g.sourceMap.AddSymbolRange(t.Range, tgtSymbolRange) - - return nil -} - -// writeBlankAssignmentForRuntimeImport writes out a blank identifier assignment. -// This ensures that even if the github.com/a-h/templ/runtime package is not used in the generated code, -// the Go compiler will not complain about the unused import. -func (g *generator) writeBlankAssignmentForRuntimeImport() error { - var err error - if _, err = g.w.Write("var _ = templruntime.GeneratedTemplate"); err != nil { - return err - } - return nil -} - -func functionName(name string, body string) string { - h := sha256.New() - h.Write([]byte(body)) - hp := hex.EncodeToString(h.Sum(nil))[0:4] - return "__templ_" + name + "_" + hp -} - -func stripTypes(parameters string) string { - variableNames := []string{} - params := strings.Split(parameters, ",") - for _, param := range params { - p := strings.Split(strings.TrimSpace(param), " ") - variableNames = append(variableNames, strings.TrimSpace(p[0])) - } - return strings.Join(variableNames, ", ") -} - -func isExpressionAttributeValueURL(elementName, attrName string) bool { - switch elementName { - case "a", "link": - return attrName == "href" - case "form": - return attrName == "action" - case "object": - return attrName == "data" - } - return false -} diff --git a/vendor/github.com/a-h/templ/generator/rangewriter.go b/vendor/github.com/a-h/templ/generator/rangewriter.go deleted file mode 100644 index 5c28615..0000000 --- a/vendor/github.com/a-h/templ/generator/rangewriter.go +++ /dev/null @@ -1,122 +0,0 @@ -package generator - -import ( - "io" - "strconv" - "strings" - "unicode/utf8" - - "github.com/a-h/templ/parser/v2" -) - -func NewRangeWriter(w io.Writer) *RangeWriter { - return &RangeWriter{ - w: w, - builder: &strings.Builder{}, - } -} - -type RangeWriter struct { - Current parser.Position - inLiteral bool - w io.Writer - - // Extract strings. - index int - builder *strings.Builder - Literals []string -} - -func (rw *RangeWriter) closeLiteral(indent int) (r parser.Range, err error) { - rw.inLiteral = false - rw.index++ - - var sb strings.Builder - sb.WriteString(strings.Repeat("\t", indent)) - sb.WriteString(`templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, `) - sb.WriteString(strconv.Itoa(rw.index)) - sb.WriteString(`, "`) - literal := rw.builder.String() - rw.Literals = append(rw.Literals, literal) - sb.WriteString(literal) - rw.builder.Reset() - sb.WriteString(`")`) - sb.WriteString("\n") - - if _, err := rw.write(sb.String()); err != nil { - return r, err - } - - err = rw.writeErrorHandler(indent) - return -} - -func (rw *RangeWriter) WriteIndent(level int, s string) (r parser.Range, err error) { - if rw.inLiteral { - if _, err = rw.closeLiteral(level); err != nil { - return - } - } - _, err = rw.write(strings.Repeat("\t", level)) - if err != nil { - return - } - return rw.write(s) -} - -func (rw *RangeWriter) WriteStringLiteral(level int, s string) (r parser.Range, err error) { - rw.inLiteral = true - rw.builder.WriteString(s) - return -} - -func (rw *RangeWriter) Write(s string) (r parser.Range, err error) { - if rw.inLiteral { - if _, err = rw.closeLiteral(0); err != nil { - return - } - } - return rw.write(s) -} - -func (rw *RangeWriter) write(s string) (r parser.Range, err error) { - r.From = parser.Position{ - Index: rw.Current.Index, - Line: rw.Current.Line, - Col: rw.Current.Col, - } - utf8Bytes := make([]byte, 4) - for _, c := range s { - rlen := utf8.EncodeRune(utf8Bytes, c) - rw.Current.Col += uint32(rlen) - if c == '\n' { - rw.Current.Line++ - rw.Current.Col = 0 - } - _, err = rw.w.Write(utf8Bytes[:rlen]) - rw.Current.Index += int64(rlen) - if err != nil { - return r, err - } - } - r.To = rw.Current - return r, err -} - -func (rw *RangeWriter) writeErrorHandler(indentLevel int) (err error) { - _, err = rw.WriteIndent(indentLevel, "if templ_7745c5c3_Err != nil {\n") - if err != nil { - return err - } - indentLevel++ - _, err = rw.WriteIndent(indentLevel, "return templ_7745c5c3_Err\n") - if err != nil { - return err - } - indentLevel-- - _, err = rw.WriteIndent(indentLevel, "}\n") - if err != nil { - return err - } - return err -} diff --git a/vendor/github.com/a-h/templ/handler.go b/vendor/github.com/a-h/templ/handler.go deleted file mode 100644 index ae1552b..0000000 --- a/vendor/github.com/a-h/templ/handler.go +++ /dev/null @@ -1,163 +0,0 @@ -package templ - -import ( - "net/http" -) - -// ComponentHandler is a http.Handler that renders components. -type ComponentHandler struct { - Component Component - Status int - ContentType string - ErrorHandler func(r *http.Request, err error) http.Handler - StreamResponse bool - FragmentIDs []any -} - -const componentHandlerErrorMessage = "templ: failed to render template" - -func (ch *ComponentHandler) handleRenderErr(w http.ResponseWriter, r *http.Request, err error) { - if ch.ErrorHandler != nil { - w.Header().Set("Content-Type", ch.ContentType) - ch.ErrorHandler(r, err).ServeHTTP(w, r) - return - } - http.Error(w, componentHandlerErrorMessage, http.StatusInternalServerError) -} - -func (ch *ComponentHandler) ServeHTTPBufferedFragment(w http.ResponseWriter, r *http.Request) { - // Since the component may error, write to a buffer first. - // This prevents partial responses from being written to the client. - buf := GetBuffer() - defer ReleaseBuffer(buf) - - // Render the component into io.Discard, but use the buffer for fragments. - if err := RenderFragments(r.Context(), buf, ch.Component, ch.FragmentIDs...); err != nil { - ch.handleRenderErr(w, r, err) - return - } - - // The component rendered successfully, we can write the Content-Type and Status. - w.Header().Set("Content-Type", ch.ContentType) - if ch.Status != 0 { - w.WriteHeader(ch.Status) - } - // Ignore write error like http.Error() does, because there is - // no way to recover at this point. - _, _ = w.Write(buf.Bytes()) -} - -func (ch *ComponentHandler) ServeHTTPBufferedComplete(w http.ResponseWriter, r *http.Request) { - // Since the component may error, write to a buffer first. - // This prevents partial responses from being written to the client. - buf := GetBuffer() - defer ReleaseBuffer(buf) - - // Render the component into the buffer. - if err := ch.Component.Render(r.Context(), buf); err != nil { - ch.handleRenderErr(w, r, err) - return - } - - // The component rendered successfully, we can write the Content-Type and Status. - w.Header().Set("Content-Type", ch.ContentType) - if ch.Status != 0 { - w.WriteHeader(ch.Status) - } - // Ignore write error like http.Error() does, because there is - // no way to recover at this point. - _, _ = w.Write(buf.Bytes()) -} - -func (ch *ComponentHandler) ServeHTTPBuffered(w http.ResponseWriter, r *http.Request) { - // If fragments are specified, render only those. - if len(ch.FragmentIDs) > 0 { - ch.ServeHTTPBufferedFragment(w, r) - return - } - - // Otherwise, render the complete component. - ch.ServeHTTPBufferedComplete(w, r) -} - -func (ch *ComponentHandler) ServeHTTPStreamed(w http.ResponseWriter, r *http.Request) { - // If streaming, we do not buffer the response, so set the headers immediately. - w.Header().Set("Content-Type", ch.ContentType) - if ch.Status != 0 { - w.WriteHeader(ch.Status) - } - - // Pass fragment names to the context if specified. - if len(ch.FragmentIDs) > 0 { - - // Render the component into io.Discard, but use the buffer for fragments. - if err := RenderFragments(r.Context(), w, ch.Component, ch.FragmentIDs...); err != nil { - ch.handleRenderErr(w, r, err) - return - } - return - } - - // Render the component into the buffer. - if err := ch.Component.Render(r.Context(), w); err != nil { - ch.handleRenderErr(w, r, err) - return - } -} - -// ServeHTTP implements the http.Handler interface. -func (ch ComponentHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if ch.StreamResponse { - ch.ServeHTTPStreamed(w, r) - return - } - ch.ServeHTTPBuffered(w, r) -} - -// Handler creates a http.Handler that renders the template. -func Handler(c Component, options ...func(*ComponentHandler)) *ComponentHandler { - ch := &ComponentHandler{ - Component: c, - ContentType: "text/html; charset=utf-8", - } - for _, o := range options { - o(ch) - } - return ch -} - -// WithStatus sets the HTTP status code returned by the ComponentHandler. -func WithStatus(status int) func(*ComponentHandler) { - return func(ch *ComponentHandler) { - ch.Status = status - } -} - -// WithContentType sets the Content-Type header returned by the ComponentHandler. -func WithContentType(contentType string) func(*ComponentHandler) { - return func(ch *ComponentHandler) { - ch.ContentType = contentType - } -} - -// WithErrorHandler sets the error handler used if rendering fails. -func WithErrorHandler(eh func(r *http.Request, err error) http.Handler) func(*ComponentHandler) { - return func(ch *ComponentHandler) { - ch.ErrorHandler = eh - } -} - -// WithStreaming sets the ComponentHandler to stream the response instead of buffering it. -func WithStreaming() func(*ComponentHandler) { - return func(ch *ComponentHandler) { - ch.StreamResponse = true - } -} - -// WithFragments sets the ids of the fragments to render. -// If not set, all content is rendered. -func WithFragments(ids ...any) func(*ComponentHandler) { - return func(ch *ComponentHandler) { - ch.FragmentIDs = ids - } -} diff --git a/vendor/github.com/a-h/templ/ide-demo.gif b/vendor/github.com/a-h/templ/ide-demo.gif deleted file mode 100644 index e35fd68e766d02a19e3742bf7a9c04dd128670fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544148 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%0Dn7lhl@^uk)Fi7pwym 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 z%0D1RyMGsAm&%pmt<6G#$GgD(p`6Wt_L3$gFH7!>?`3w2OpErhJudovIG1y3O%qOq z-WA6yHpe~+qw^^_;%+dr7N6$>bsaGQlv^E%56R!!J3F+4V3E^idj)xpwm7BHgWE*p z4!s%01OR;5i6;CM4D?;rvzj8ka_?hr#s(XnJ*8hO_jR)xA7zg{dsg?N-2c*>@yX3+ zwT$iZfEcTZDe>C6F1?D2civ3QXxG*=uT@;O`h9a8E{nX`mabU)<_u3Tg-eqRGV;Pe z*RpD#&li9Md?{98efKKfpKAeQ#3`F&KbwA>;V{&ccfl`)%U5%r0Ib6lu*3!f?hIfy zbTX0J3ol!E@z!8~vdM>T7Tryc7W2(ePW>dveV>+(^R?tU-^Sq13jlaq0C*7q;_Pa# z>`j?M{T$wn(2Co;v6`{CKe?@XYdKsqnjDLvwevcx62Jto^a=$8P*=ZtrjR8h;D=#= z;g#@i72GkqE*>t*U2ODJ3={y_EOVqPc4Q?TG4|`0hig&gM>4c93L0|Gche!dKpZE= zWNAaZg^u=+F3RkIAQ`A5EQl83XfK!ZO6s@U!o(%Vu4@PPfj6;8Kr;3<<a2c#mJBw2 zQs3jML;*<Z7)=q!?wXjIc*XLJ8vE5w!tABObal$UpKe&8-NbwZeZf$9vx@^x=UEUa zoON9Q8T_oIfOpA5Ms$pln^T4$oNu$=v`tUD5XHVVuOdKe$u@%mLz3sB%Cdn9eSAHH z0m$5K=qvE}!I2?H+wI$Y1*qVG1?J7uCXTFY^9c=4HNN=EC~0_zb|KgA`y8ni1J#qw z^)XXEJ`VCSiviJ(*|+{GEuCZQUn<V&hR8gsAKmi!l@0lWKKsFV5GD+0Z{|T9I{nA_ zl)FJv`}hbGQvx9e?dwFyoIqN>%#C>yg9ZBM2zo1aaUQ`*Euo8)-J~hIg9<NDXN4Ol z1~kn82!<JT=+5}0-PM-oSD5I_Tk;)M5bbjG9jS9Eoib%eP`gE$kE;$xNkw4jm95^4 zpcn&5d+OwC_$Y0sB-+8AIt&nlk}hzn-5S0@04VX%ouWYEhWX>pE$tVVL^W&0Zi`W! zPZpd!J>jRsklX(r?c*yx@_i;=Z*eu58||?8Nr~}7;F`zV&bnc1|I0K4g%Z9czqm-g zR3_1M^}_E@+I$-(Y!88_>k}~#Wpa>E9p_vApI*93|Dty^-+B<9{+m4bI^u9X2oq|~ zb9%uO04{f;AkTd0pF-~hi4fMVfh)NzPO8kLdtN??fCIn}Rv7GLNOl@eAr(FM!(X&8 zT$c=9IY`bm_y0W<nLBhjwKMoS6Mc>8&x`OfJSqC&hhYrDrC})0hKzb~^2!YoLgz7r z$O^W>aEck8qJ<&&A81ut<N<RR_f81@nQJ{FlJh+e&s_@Xy!Pa0z)&9rO;o{VcwV8R zPjvF-P~#kj(LZn(Aqnv>eug6t#_7|7)UJAVbp+WIf;Hf7rEuVm@|9OB;p65pljlWo z0WsMD;KS^VvvG&WkwI5`;(_7EkQc&kAOfHbB(4vK+XP+MV}9Yh@}-~gk>C;Z_6qta zCg9UhT;fJtTpwi65VMO)iL{HqHgrBX-SdU;xxGU^uEK7nLq6YU-BV{F`ZSNEs~1v! zTzHds2^JJV76G0huU|Y76O!kqTgZF*N8;B4pO&E1U=i=jM7J05zW0><?yC6t{6PEs z@J&<#R=d3SWuzt*iEt5wWa6ce`_1Ho!i<%$Yf2YXMts<WOU+tjedTj65?xPlh+5*g zF;5W*K|`)JLpNj;Sd3px$@6MwXqgA)C-K%Vtvyx=BxJCtY&-#MsLw*4C3hTEvk<*c z;hJV2)63?VamDTcoG93AT%Cgm*Ih#G>>Vup?x*$eBcpf0bifdIT_q$;oeXT%01lb= zoHFlm$Y#4;d!|l+Wdp#`=4otlnx|u$cSxE~W}5G>G=H&lzr*PP7U>rq(}P3OL%q_& zGt;ltbCeAkl*1X3jv3Kj8L=T5$(b1`Nf|flGj5J%P!DI`cFepLl6f~NGc7aodPtgk z2>5|mR)XL?<NDoG@nC_I;Nto$HZ80CRaS*qHvMq+6UXc-uk4zT?1s$j=SkU3_1P~+ zvl)l)w>aK!4!Pf!biX6>es?{`*KnUXdcW`2{dbNz10gy6nK?tnIV1Hs??-c3zp~5O z#aUka!84Az@_5dNxlIlU<3Pq7^mXm<gLTITKSFkV4V(23wniWP`Sk!0r-8L;P$wFk z1IlF4xEpA^V>G@^8pesHNXWW$&xhj>5Y5UHZ^)D6_!>6zaN_xL+W87j`AVVrDp~oe z4f*P0`MWps@!}8nYCqiX^zdNlLoM!yoEAqx@owj5$E7ikjI<w_I6X28ee^f_I`+tB z^AX3_V5ePR?^JLiw7?;&z^S3&G^Yo%x#Md%*>F;*;r!&4LeH#1?}kF(u|ogN!T|Bd z7quT>c6uBX`Zzf2acINi@Uh1cn~y2tMbX+tlLdPWLW>f!ijo^RK=WA9jm;vec=2uR z;=4}8X`#g#S;bim#rMaGbDi+H-j-}k$s?zd!qAeUe?wm@HcOo0C76RHm6oOS(9*iB z(uRi8=VPT!o28FcOBFmypIDYLLd&|c%3e2=b&r+hsh0JMm%r04A8;xk3N3H8#5Z}D zbtIR+-z;Z|SA0w^XEu~fYFEr>RV*}AES8kcl$6X_o?IQPSa*8zBlO9JYRT9_$+yk3 z+gVQl2|8GZ&e*Id-h2YhrgJyad9Rnk$LSb}N`9TnPn&c;t4h)AO7X_ZO>KOlrBYim zT~en?;Z&89+7aQfD%Hj+_3^5;h9|HuReN=+_kXFtvrkoPWmjuk(RVdg>;JAMSXCU7 zs4+QJWA>&@FRaG0vF1n^-FUo)B=OX)vDiZA>4~tX4m|G1v!9+Ge|n<vsk6j0SDzZP z&NGj&XIiJ8c{V=t4XZ-*KMRnk)wqtoc&aw2vGV%8+R(<@@bTJ+-?bEpx@euc*i&`! zVRebwb;*r&DdTlFe%DbY>Tm1R-#t~I7FM5;U7yuhe}B9__jf%_q9I?W;nAsv!mx&- z?1qxYhO+U7f1s~bI*m1_8lQzV)@3&~G&VjT-!a-UB%Zg7??JDi-SS1-!=4MffZBbY zw}#1}nGgy9j*1gG7l6PSVFehV69I^s)zr7_>(a_N1svr_0v6P63+Dow_^>a$rqElY zrm040Zj$7P1c+rXYS4n-XBURf10o*tu1o>HbY4!%if*aBOlk&kkzan%!3t1?^;YEn z_%OzAiFd3rlBVSKXu=563uF|C|FnXTZ*#8;Ck1`=91EDeE-DTv4CTr3Yw``*S}1Kv z2?c;prM*bR3PvE1;*wZ?b&z6sYxgQ(O%uij$a6e_Y>*g+_8g@N66GL<Oz_gVHjxy$ z*Yvi#fxzi9fZrBmA_Cr9);@-nzPXA%UnY8b5is?|NUtdTVezR=ba+lk3a-iD#ezzj zTX~v6_O?<BZ<<2NB(XSoSN0Jx)S_76X$+disaeQ<A~nInyIx}rPn{5B2TI=5#khe% z;^cOLlvm2S7W*e4)+r)9!BWB97-@V<;g)1-xKQb75q>I|Yq5Qwuautlo2ovAt;Vio z7m1El*$3emW8UuGDIj7P^5lpphWa{w0>i(Bw(stK(+5bE@$v_}x!4EX2$U4;>v~Os z>k(dzl}S$J@oHdtLO>vG4{5<w>923l%FLE86B6pYoyi~&H@%7Fi{TulziVuH_55uG z$ePPqBtVymSZy(gmc*1Z^ZS?uAP|PYFXY!Jz1@eCdMB59QepK?UQ}Oz-8&6gQ7J!N z)QWJrx`ZgMU4$L|4xVR<VFDT&m_6knNpin%RKG!=zR(Js&f@LGKm-XASPG!P0Qa2g z7iR#67~%pT9wxvOPXG}#F#Hsl`4X=+wMPX6A)<ILU<UiY0S*N842y@32cOoE5W<0# z0w5?tKh_Aen+(<t079j@ZUQ_r1oTZRASeqmAdU0_JO}6lDz+dsfQL>%uTx-&etO(1 z$aOMDz=Eb~NboZNB`PTWk*qKUB*g^D;lwb_&)H1qI*a#`1{Os|#$N-t381KLtRSap zLqNn&>IoA-_fkj2$%B=)!%76O&NUen4Z;~tFMP+eZ=+{Od>TEYUK*IUY$>d-HJVQ1 z?>{!tc@3D>kU%kqc}WVgYe0}S_=7H1mc-Xf0q03!^9kq+<P*F5fGQLZn)>0b+xzs? z_tkkI0lKFc<BdfAm=bf$?evEkOh2k}bgO54H}*Z)hSlrFvc|KjZ;eTj!7?k8KURV5 zS#XF3R&e<(|0?i%a*{2@l9Sd0%0ayZv}MkFI>=s$lNZsG<7S5N;!F6OK{|X81icRp zVsg_zInaPJepoaHQoTLClA>!(9{A{Y;<$|%KNZw-Mh?pyR;2<5w}HAP-U}2MY8!Ha zF<OHX@Hjr|ISCb{4ZS%wTD=YVqbK3^e!}s&ESloM%MKXhcbP~#!zYcuyZ8OP0b@?x z5ai)EN+(Zswt}pIp^rTv>1A<Y2H4QXLS7E^t_L`s`p#E>+<^)0lvscof;1_x%gdmu zT>ju2FiP%+6&$LodJaJV>HL8Z^(AC5(=wRZjXoe}4(u+4)zJqd0zRP(K_HEpwr+lY z66ccutrgEJUg!#vL38C2LIki9#_ENXtT=61jL^of2_Dr@;tvEStY;*oSsrm9acR9d z8;M?jPSXom`h(*n5)79?m}|l_0O}&A*zo?tp5`gYpRcgqc?SxsW)-YN1Mf@yxUdQ= zo*Bm)PMwkZ?4_}W0kJ-6d{mFrNnuNW6h%w4moM{I$Yu;&Sd_*pOo7m6v0RMFp$h)) z@gX{Ov_EF*<_a2(`8H=YyEIve-8-+!1P<o(S1s`h<pFgX+}woEa#1bKej`!4^#qwi zKTtes<h3VxAVKB@8R{4K-Xj+cmNBcyUeZWB?W+J5nu6k?<nrIXHjtJ&I{6UfD>Z~C z{CwmBlA(g$RD9#XSP2FWc&2_Kyci&-4!D(1$hi!qrcNwDCSLVOC^RoFt{#o^pVWUb zcjF~SFaVfZ{;CH0$xY}cJ<u8U+ig|83F-TaU}F_re#>9m>UyyC`sG&lgO4^cOFag= z6kOmGdW(|OcC4J}SD#KpcFOiGunb62^!=V)!YqJ`c5aK-_eo~gJt)X&mTwn*=1ZiC z?W5K$258uTO|b)S0c-#?^?|?<0ZW@?kfw~{QBwM`qP8DRl7%#!+cIoFnca}mi-3yR zO%rb`TIZT%+Ra#|DXMLK>fF;7llEVruSfMsvuG;h;Xk3T&h1$T<YT2jZPiO8Ock7{ zI@gnHntfu)>6zc;pF8CCFIwkhJDS?FPkwc7y0-lXHX#r_T!013nB8|+b?r!%I#iC4 zD~v&kOP}qy@A%E5HwO~Qn%f;mcw1ooz%0k<yZ0?2v$l17)OX*pr{R7dI#Nfj%nM$< z#D+_s-U#@3=-kWM1jC@f*`6GO1nC#%nU7wJJ0#|w`5m-8DP{g+;lh0(SlWxf(AUjk zVXeFM$KtEt-xilXbUrxyl8D0ccR#*h0759x8DNb7j;Np4oo<MbiNzanDL<mOyij*w z8letN(_5eYv(|wRtOeWyTK{Vo1D^zuV~dZ1CW`L+>p+^oBi+Ifv#4^XUYFiEkmh%Z z<G;UhS3xX+|2|xUb0E#tXT)WNlSE1_&<K)R+`+16UJodf@=eT@&RIS!v3zV8V<eT- zUo!keFVY*O9dNo*>sWKi86T#yQaK+1^Za{U`DCMiwKiTJ6Wf=46%x~<bN2}WVcy8? zJW<m&o=1Vp!Mp4B9&Is1v9rrYs^;#+#_?Y!Dca1vEjk=8y}jqg=K=b0owP7~;NrMw zj<!~pSnb#N5JOLW-`}-?u?~ks?k_T0R_CBx7Y;txsk}7LH2$iXA=-Lnu_K0uovIsP zE{SASzm--MTm7=$+0O3Y`ni8=eC*91Hz8$E{O^}8N@E6}GLDN-Kougx9*s|h%`YK8 z7E0N-n~IKGWwZe;@se;w0q6(E#4MPsLlu{jvj0UnrMt2G@z>-c4jOSOUhc|6O17!E zz=YT5KN$$G6n&za2zzmC@k+%UgU*gXn3GuJ97vz=nz`q&W6(Lhb0EDV5azfT{y#pD z-uiD2r0>Exws`gGYx-*C@NgTS^4uYt>weGP`u{HD^!@gM;60(^Ww68C>p=a$?5`y( zGz3xJ*c-3I#PZ*@dQuIR%HyOHpIx7;{`}|8o|nJ(p2EW>mC6ho%ypS7jJZEQZz6<` zgwM4}6C3?*O!2nSJAzboNqDxW)gFZSX%U;73d6t35a2+nW{cn<pH&0-FWJ?vz~6Ph zzC~Y`+?ONGGeBT~FD&}PV3QM<Unz|1*7VQWP<P8)owfd6E3V6YI=uJPbx?okMcR)s z-`W?-sR5l*haRX6a9j*mzKQ*l`n-;#Pl*5<{^No8TPY=^>Y()>M(zJ}L-X(Xg#3S* zPYC4X69)e8e1dluC!etQ|H>!);N%lDjQ>+U;m~7FK0(Y<MRxdTbkmMen<FQ2h^C&G zQ}FGf|83L`ah;C7!y~hNq@ji*Cn=3c^QD8&y(!+gp=o?(9?fOQQ-hiM?m5ojGza~& zXh^KE!>J9NYn<oD9iw){&nI^d?on9$qkIm9a=90Ij4gANBPYob7oVobJc=T4sZSFP zSGS(;+|XPYAc0IJ_DHJ_P%uH$EW>M?ibbsG4Xi?xKu{MZ3MT2>7mt+3b?wMWkdlU| zZZZPPue%a0d33!nFJVV1<pI^W+94*ppAsvzZ$E2%M=ABmnW{%Oi4_j6>_DOyH$HJ5 z2#e#?y(t^fQdT5F)NPxc2jZ}yS)Rywf=Vl-qP%NIDK%>AesD~-Qw)?QmYc=7p?Pc~ zuJAYtx~HrU&X3-bSN6Rs>|K-<+R-Hm=Rv8y&!d_(OnaZ$t)P;2+oNRH^-|60`9fNJ z1Nm`Y&o0glP1>-X6|W=V>^bg7J2y0K|6T^P>f_wd6rWQpqyM7}xX#VVCwx5jrP@Sn zV5p`)lx`${pW$MRAq0H!t7S!~`PWU~@bRyo&n@+DSgiQs-?-AGcH#MYug`@S8}Cam zG;J+^x$qKTt8r|6Xy1Tlq)ZvUj$QLc0|N&st+q)jG)JTMLvO8ih+pkq?UYX7UF(wj z-!umg@56F(iH;ob1+ri5`@ne^nUhaAbtd{<(q5@g{q_kO2aiMU`u!L^_mJ^)_}1Yb z6YKK^P|Bd&u*Si$U^Fd=;v2^1dPej(WFG`vGQWla@fI;CK+vK0zVAK1PCgy>he+2N zddPF!en`AO2CTcn1c7d(|52MhZ}tA?FiB#WI+$x7`_u3o55Z`j7fPlAwCgqvpBayn z8%9f>EC;dpWGRfV{CU>D0nh}caT&boAB|RkKG`mAef;9t>QVW(7~sZq4DdbLxR*Lu z`;7qryjYyUr*mxMpPTa+p0Lv<zieOo&?#^h5Z#Ff#sGAmL|}mPuNg<V)YmGt1t(Bu zUfl%14lE$}kipwmPcBt*nuF;BFF%6t;axlcDBr9p0vQVcE2nu+jxa{CtROarwbf=o z1g399>*Ed4><|LD8U}!dzcmA}i#h_A{bNa6wp{GaXFwJTHPMC8x=dn3sJBS}3TXQU zrob;x$4J>E%8to-QomSGqm6i_u-H0A<o?wpC?+3mB-*ZD<(V7~Is1k7_;7&w#}u%G ziNWTr>o)7H;sDabfH{Q>QqK=CGjW}_r%?E&nb!ouagcCUBgp6|Ec?C$#OP{_=;rD@ zY4G%PhDUpm9tZ&DjSVi-x=w*<={E%lyl-nejwdh6XeubGux}Xx>;9KB1?9NP;w?#Q z*tC)Eo9ZXil?8_`a3X-6a-0YtgnuUj*s<G9g(9Ad0tW3t`ykAwpIq)SZ%?}n?CoM3 z%aEye!=8H_M1<!0aliB3F`1|r6P>dJfO-45-?Xc5ub#LRxb!>+eevqi_i=n#-+36O z9H9Ip|N5gJn)6(UUuges<BTgK=hTOOy@_zolZj%?VA+Asf;uiyfFk9s;04<cu;s+; z{e^nAuLstOYLee8d@xvGAOaT{Se|l-oHQ5U!xBUd)jfhE&Uf=+ZUC=q9xqcZO_CRG zJjm}aB4k?*PwC#fsN$;(9>~0Te8d<T)zzshJjw-?W0Y=pnTvN?c4=L_4GlCYgoqJF znZF2kMcq9PSRC$Y2tBBMwV>e8&m=&^BsF@izgaZ%m6j9}>zC3xWpHE#EyJE>=IY*k z=s)@MgqzKUiU%lvZ=>;=K7OG~wvA)Ux3im{AHauYo6MNG5u<UNj0XSiGdk?Pqmdq@ zI#vNH(BRnN+=hz$-{DBNRgb5LXnH8m7Vh)xxM9p`d<+BiB;wG%_s_Qd<O8!O!Jmb7 zT2YvnWiMu<zBPV;pDlbD5teOj^9BRe*=T8w!hgYcyJ&mWW%Do76Mqfs2^bw{lef{l zqkr02sBy%6BegQcI_0F`%Z(0oC(4bh-ELC-4mC#{nvrG!(b%olE)%o0om&S*wZpHh z<M-aq)SXd2Hu}o8sp@X!=^6D?zuq|WT}tolp4ofhSGSYRzKmBXvj?&rdwX0Xs<X!> z&udqU^<K^0mpgNMPH#N(ZOC$UE<$782(ihe*sMPgS(-Bw5bsNg*q?s=$Y+HItaq{w zAR(WWXnFZx{keSKsivp}+w6vcBBiG#M_(-1S8onh+_+MD9_8coreUbA>1l;u&zI9b zLx-FA4$>30zqs;@kF@DOtGd(U>#h?v`quwoO`Zl-_SEmOp+A9vF)5$?!;r9lGzUKu zz$C}_Hb0{?7|TJ8jgyje!9#uJ%c0|)kd5Bjrf=oy{$syCY-VOKG=%=?75~3?s{PBq z*io6y{SQ=T-fcyB4_ml})P4Ugw)9`{941|P$_cTGq*x}sx~T6V@eXHv-r+e&4=r;n zt74CrBHb2m&(0|iJ|VXzOIbZD8{JWvrPk$_kH`ES;uvcT{&$txv3SuV8#IJyM;R&_ z!x2#aqflJGX3UeZPv$O3uJQpi?Qfo=zvw{FY3l)UT<?(n<DF??X}s=|@wuhG1HPjT ze-(=B0zW-JB@(_Qw!S*|SAS#DH|~b)Jpp&=@sPj!8%HA^B6!u*busl@wLkyS-*}+K z!xy)%z{R;B{2e&~I{8<BgB2Avx{8L2Gb$~1rN&}oLgio^($PDyrFhBNbqZXV5nw8N zKOi3=u%*Xx-kBCYUdLNr&VdW*GNMocCM_HtSsC3mWk+R3g;_GPL%9P8af;=!SffiO ze~r)L=cm07Tm($SQ+@M^7<q!@%wOZP`#ybARHA}^{sV++GA9MG!*e*4D&}=6<*D$) zc@H>|r*i({ISxn78_M5j-GU;#`Sz>i|HX4i?z~GW6~nprGj@26yo$oYpxb|lJ3NQ> z`HKi^_QFnoLtMVBDaw0?=XfpRV?MR%b+u_HwsbaR^XSE*j|z)HC30#@H3J_n=Nuhz zJ!SvQS%{;o%-uy=;s_`k-yNSXJY{6NAidv+HwpEwyq*(V+H=Z(ru4!o?WHeY4Gs`n zQ{^N#IECW>roVADe2;VNJ;@dWr3d$qy;ct+fu&;zd7wA@hkd{GXwB`Y%ziF@drLrQ z{AZryo&2YJqXTl*X9PLZ0^kbfG67tN{`=U{r0o-S`(jn8Q2Qb)R>XgUQz+)B%u)_5 zZ+xPf@BU9Jv%{aRl?rJcdywwG`MKzE#pXg;?egXqdS^w*{Msx3-%E9K6~C9C|6Kn4 zmD(>Y^H2SaVji^2zsHtdeC|!Z`fstN-?@4rQ-8;nBBnmwto`%*F9GGpS{doT`x{pN z?Couyzxo>++h|?bU;Pcjywr*gDuo7BCK?Xw(Y1yCA)sWP3DB0}%|n`xG^3-bfAu#I zo<^U`b_A4Dn@*xqVmkuLGHF!aoxfCOFUO}Yu_-&TrCV2wbbGNo{SD{cNnL?Eu_e=1 z!%D5=906r<u<1u%j(}3#RU|=xqcZD@cN6Rt8}2gWFVxiX<McPwHq0iwIV!UwWT{Jc zI`ubgBg5KyWDpizVm1Yiuv-M^L4hbXv`Q|HqcVGWwd;$@G;FtMlp(&p!raN7qcWRW zFXD&m-euf^R5An>8PQxSkHMwkQBYkj3)``^w2nK;P+ttU9&Syh<ZdgEG#(?ak%!tt zn=uV|)$Q^A#x5azB3yxjumPeninq+63V_w&8aq2776XwbWPQQWE)y15s6AZY@Th1` zMh%|`b)|C|DBOnZ$pG<4udtym{3cMjjZTCXO)?)^gOkBDhcI6;<2{IAv?xdb&S~!G z0(=ET@IkgLNZ8Ym52t8k@NyK8?aD*>Ike(Wxq*~%{X}pdMR14#P8eG+Tr0*h1~5r> zzH+>8ZVU3_ZINW|N1VgVXsJXzM7Ass<-g(aH&l{=-!_L_BqJ1fA3Y4Bg5d#{LsfQ& zd__vMjHTc{LC;hinrOT$gWd-hZRWE{BtZG`5FL{%;5T;e;QN&07I`$3Gv3=`i5iod z^}Uihm<n@c^h*`w!P#0uHA;C%w3Z!rP_Uu=fh+Js3YT=Y@1FB1{0!CUBHv<<7)h9r zdb`+TKb{q3DoH!_A(cD{pc`>tge(o?QoUdE_!A8M3Ru=BEtBb03Pi}JB{Z>#z<0Du z)t|$2ys-zkQ`Q7L4rIT^?3d%0FDi!_1;iipw8J&)mOrv9J;M{u;ysTvgiy%|V%=4Z z03Y666$4f(yC)DsYvEQ{`Os~YC+Ok{7~aU9m^t|K9@CFbkfuY2oftem#3vL^f8!-d z1@4t-qH-__fny9qk~3m2zG$Bq2KPe>?tQiWT$+REA{XzWxALoyKFUcP-h<JgOJkn9 zDBYDqH4iSF$)QnR{CJA88~j3kG5VASz5{XAGWI!#nUT-_)$MY)@`CB!L~90t-D+;V zV3)mV?^2QkGb<_)nI=HxkuGrO_fMpz1K@A-IsFYjo|t{vu_T6JBlPpU`3wuLP*-zL zKfXl5F4^udQTE-QU{(It_vh`hLwAWg_@G#lUf~OOz|tFpBkjAGPH#3LH)_5{+w^>K zRxSW*l48X}V=z1_x52m)KOYr_FE<5xuj$6Kn%Z;eXKj9ujR^B3R`o3Thy5PknHD(x zjf>g8C+2Nx8-{y0)57n`l^eCs=d8bmj{knYGcEk=`5N*2_Xhx7$3WPuL`!V3kVpS# z{f*n%Thl7+qxG*(_O7KhZvC(N8>E{J1CMRKmz>&OaCqA=RNMQ#B5eB$r{XZuY4f8h zdwbFIXye#0M`hNyy%cb>abnKqXT$jRa`4;6_ut<Eu#Gb<mYEbV;6sI|uz-+a0yOdY z&&yU6&AoXsvVT?*4&haH5fUL7Z#9e&#z-KR1ev~R1RAk>1eRko^O$|uxHwGXa`t}} znpc_Xm)I&|X38!5BQFUoXd<;n?bN5Zgg&IRV3ML=OvEWMhXoB!mmj*S@eBm%Xf%QB z0!9voYd*<Wp<vc<Q1(Zz+tC8yhSIf^AR9aecJLA98^)HC)*!{sr)O(6&>}QZ;3zo# zPmwSHqAF9ctAHB)+T>4+I3XAga^S6V!D@oqE`zy<!5aZQD?j-Q9-l1QZ?#klzMkL< zYYvuBiGK6ZSLF^xm=T-|^)fFwIdneK>;xE32RG4ChD`7QPfrLIY{9ucs<l<5gQY1j z3xc}?1vdTzZA=6yQe*KfaYWZO0jxEC1s2GJ@?m0>SJ2)76iWqrub>|u0-X^>oTWmU z!f|X;1Xp0xK0|kP3S{pJ7)J{S!$?c!5F9{)=7FSfU>OYOE(oH91M|_<B>~d4dC(X; z55%R2*+YS-vw$0dAQ^HZ4hNFK`RsLYrQ`UXDkncph*95w58{$*6JS(j?m-ey{suB1 z$M+G({rV)&AOSH*4y*T!2KL5rbz%5fpe!06r!Kz%@EQQYqs){I8ei-RZzmB6$>W+1 zNa;fIj<re8DWe(65lB#iW>lyx0q%=O_%h&Hc+67zjpd9R`HGnCPPh&Q;*LkmCqn*o zf@d>sygi9ArQKLcxM2!_A*+BE12#{D>o8!p81TZ+q`Ej*B<=b*8F`s{i_HkWjN_|M zgvFD>$etj&3U`qTUjqf!fa4<<fz;|zO2yYdGLmnDQ?RlswQM^2Ed~)t<KCd6wxYn( zm<Uz^x(tJuCh!HVq8Tf^v5Y(VnJD)zTTNETVT;tMV4l6UAX7ZTmYk@Cf$7kRf;fl{ zle(S&IqyY<^o7r;r0HN_rc^)}0G}VdXUfrIj@;u*g8a}zY-Tv_q2BoJ0G;iE)hXQq zcZj0!oNx<p?WC+G9W_XTaB(sr6xh=)Q92!^xq?o|@m*L!U%+LdXq>DG&$aYSm81kA z@*OM|v9ZGI90+95(Xp(sX)1~*1GTo2S%yQ8t)mTA(6p(r2bAnjKhcS`VGbdfkD>y; z3|I%(DI8NALp!-70zOk648el50&cjmxngoXL16{Z-pA?gBlm0xpwsdY=TV{%GeU=X zfQyliDb7$xiySn^a5HbkGwvrKKusi+ECA|13FaarKQf?Y76|@lx68Cnhz7)z2HDep zVXy%_8!Ip<7BYXxYGH-9dYyNHzB`M8wjhNoQ#lSX#Pjo*-e2)fVgj-RxH|(JDg+YS zK+7QgSfB3!V854x;cP7ohIvm1w_BJB_Qk*?uRL^T#*LXk`Z;jPF7lRG3<{I=l#C>M zBh%^EZAUV3blOKMl$(|rNdrWwk;Blld0o(ypIJyztSl?LjK&pS!liGKElc2IkbN06 zKJcylBMebx0&<ki`PE~--z!`qdmlR1-#cRgH>E@N(Bt5J5puvIGj33@1BRQD8zSa) zrWpF^5ZIlNgJyt_Hry2;fy<K%968~I2B~TXRAX1^^93GF3T==^<IRF{F$(>&A~gx_ z;sB^R5yn3E*nR^ega?mO&^Jo>#<K1*2!ac=)FWO+Y-&Ckhj~j!kFIcK0bG(L+;@_* z_p1v0I1c4bx?#%zv*(Iw3*pSGoQL8G^wy(GI0*G5xc?Ohh0n01NtV5aJqs<JxK~Ql zzD^JVpV@GBPrTliRoJP@=eJq-kp#ISo=gHx1(onv{lbK(q7RTOHIl(+RQNxrV&X!J zHrNa(xDqX@h4ID|Z;yqnWZlzi;Gg{kQpcn_C#i0FV+^&^xok^5i_y>Qf~0NyKkU6} zIMn_B{y+O>nXymSAv9>A>`R7Jc0<b6VrfAXt)enx9sAgYG-TfzOA*r83Q0(1>8i0* zD%FsLWPWedbzPtJ`~BVc{crtm&vDGn_i?_S=XpL(EZ-wA4perKT!eT8*GE+eSX?=X zVLUR6h?OmuI9c8q4QA5d?ec=n1b#JKg#v{l5QW3Ca*wcsATyL55|x@Rm0j<1A-15p z63nq5*c4}6j69Y_@>a?Pn}|{{bjVwx`*bIwwxf1WpzOf0d_xuRzAT#MP^qH?<RA%= zmBn-jtaEiaAcBi_<Y2G9s7rR@Qv+SQq6NwLh82$~^!`|NDl@aJ<XVHO8y8oXQ2^o= z;i}QR(v*O!Vo*aCKG>yZBCuvcycS}_pQwwA<QCO)oI!>vxDO<LAJkoWFinnO8uSgT zUAlemv#Z<tj&b{IbIQPh->@8~U;)sTJUwQ<McF|XSOmv<k`5BY!OyZ+*=pL)KvGV8 zu1m<DN-fe}C`S$=g3OoKSN`<jb>3)r`65z4IXaJ&SYn!Nx`dRzgia?Rajw24_F$d& zDc(3_IVf&?w!*}=m`J}D^aK0K6m^7zGK<2}Mla<cdAp`AJ<-8+U8~$XY^qYFc$9$9 zbEWYfguRo;J&r6n5p@gFU;E|<R+5pX$I3Zz7y3zpWzH_N3}A+|CY)t-*wP#Lf3R?u z_u)CnM#mr{zvxEOn3P2XWGY&QO9urr`MewXa7)<5P07+`$kV%V!3R6<OySxbV;=^@ zKH<O_K=>IX$D;G8kU@0UVgV31%r&;<B9A`-o2iQ1^*(My{PHBz6+VOB6@|Uw_dwC@ z$fv1z_$8d@wRm;VCAL`tw@B$AJN{=U;wZDntQ)ai6}OR1-=hHD))#-otKss?hgT(q z)g<;|*kB`IG=Xv(*q>796IXC$Nm3vYX~740!XJM;_A#W2Pryov5`KgO&5yaFHkt>T z#j0|IL<n0QQLxyt2+!;*!dq~|kvNo9LA3+z9F6ut3|tifxmbL8ECrG?wMC{cQh5u6 z;1|i0G;p(fpk%Nc#C-#j<>XIFy7ojUs|4H;xMY31pnOnVP@sx}0|)b2;jr4^9!;?I zAA{(zLDl~9;rAdQ-7TjEJ_4k6r?zB(1)rpyRF4JgWr7MDp6G1x?H+mdBzJ?uK8U+h z<h&`OOsm)Hy64ln@@H;9e-SLnVtwv}+dq17@rvh1%eHeNU>Vh@QX~XN8VbL1T$GWM zl63u0=<~$u!x-v@%s+;6ehxFFM)C|sw8Mv<LWYkDBo_bNW8jaguo@Ahf^UAnm-*rz zXx47=XJKYW;4PzCZ(dl_;Zf)#l1!MBD&+P(m3jlhaSrylYv3(2T#hQZ>l6OX92i?K z_VHUJK39pv#X$?N2+BfWvnO#a1}~v*FFWJ*U9Eth>NDdMfX&a7=Vn3LF-VCsC@vi( zbO91YM(1;|)uh4O0^kiCEU#bJ<y@saRorRvWuY060}j)1J9T3pDw@M=|MW_Mad_4j zne}5-k^%Pxy;e(w8k1kuRypV8f;=2CIgP=5M#9hjz!&lbS&=Wx`GXAU{MBrkJ7762 zR|r*B5UrZYqz4IA9e#Ig{IKXN(HW3E1>?Yc^6AhxCvseQWzUD)!!ah$Md|QUB%B`R zNG#9T2+Sqst(f|(>^3~uqrf!P*4n`po59Miee}optWe+vtDt5{h?<3<qT7cb`1m)b zkGN7(R&@SK68p{=1Qq{Qtm>_$fK4y!`9S_Y(QmG9OxtMWJIVc*sb`WC$G518qNS|g zih|y{=X~(ucPXyDe?oeye2<=QFW8I(hlyD05a3QE*k;1pOp}c}m@renX@o4ym|iWF z2sPz^WpRj!)Txp`WK{g%8aOLCS6It+xV0)2Po6j?3*I`9ZRB8qB_RkE$<-Lf9_IyS zeZ0GEH91)RBw+Ll@}U_mwH0i{!Md?vH5_bB-}~{aq7*iUOXB5{5qt-LXb?JwfV1jr z!hv8rKTp-FfvcZ`l}7*Q-}%Yh2&@VObC_Ys8S580pM>6m!(Guv`nXZ<t52_iyb41; z!T2!R|Kr_PSLXTL{GNZjFFk#V;4VU*ei#os@&nu5J1x$h?%Vq5+U`%218?N=Pz7ux zArD;f4B<p^{3NnZhypw5hqx;8buZlcsOZ#Y0`f2gEDP))v5}T!$WK{ajlA9f)+Vz) zkWk+@C(gG3jnOy&LCfNUQu(0*n3Y^G9~s2~VFw6&Un%?!jQ#fHMJ|Y+L%==v!$z|& zdiw!C;krQBuVmY#T#b7i{yzw~SAG1cqyQ`^h|A`i0ijN82FHBHWJ^s7Fd$qy7>Tvq zNcev4^!MBGLh@W}FJne6^}7-C`|M%dycCA4I8WKOV9j;?dX<8S_JgYus2@&zbD(^4 zHgsE{qE#3^6zsg?3fAMu{D~tjB8>T=LEBT<@0~}!gJwuTbnM^dIjjfCW7J6b0L^ea zVa14W#E$8s0&YeoqI$l(XE+?$7zts7#fZ}^#T6=hAy$0>35zeVOCB6r_|9nEU1%ld zOvX$^=aIAKRA*dUjN>=Rsk-81J9=Z$){k>E%D}yb)*{A3ygQzVC*N}DbJ~>)!sxpR zR<fW-C_>v!e5HW;eOpQ-hRn)^<_Uc|+Ktr#DGP<P8RC1MYf#CmDvV%?Fd?N+{(2ck zRQZ0yr&=&nT9?ajDQZ4Qv@59EV&^#X<QnV+JoikF^S2L1Jdz0C5L<HF^U5P_@z-5t z_hjtZKO;ZJ81w@oBZd)@UL2z&J3orxWmmxh^EBT*n|~trDOxRaPrZFvQgkCkytMdc z5&+GEi>>B4&;y_d)#6rI0zseL4dH7~0u$kf>1{hhmHS)^GkL|`;&vDlPbrEbk^rb# z1}9X=8sRqHj`W!5+-ME-rz6nvKZ-(7a;Aik;KQt_PN^H`I+?J6g%d(=H!mEMR>qi? zf-I(;c%m<rhf%LLZ#I39DNq;|DIrWzCL{$5Q>%L;ySI172JjnsCIrt1JRzVcrhC(# zPn*nf%TWhajlvPCB$WpnPBy7MG!ZycmVL%pyP{rNYf-IJ78^*Qk=c09_KnF0tGnd1 zFc7RI31bI!QONHz<`r7r3pLb?l6`hqXAWobW67nv9k%aa)o!iB%X{s_ecNpxTHNZ; zbSYG>hu9l1NJb&Z=o&(p#z??N86JJ@T_zLSs)>UN({v+(=p;SQaJIHFk4~0DhcGVJ zUM~(2!Hmf#sZ&r1CZTc*B*exroI6@42bady6=5VLhsx8yQm67Z5@Gr)Rg*Hrl|&)< zxeKzr_*3Q?XL6kQ_Y*3e9z4UFw^<V>WOg1}EK1tR<*j859(Y=MqDVk)wybMDE|>c{ zIJ8r{Kh{JE6%$O^<>*GhsrL{n=GgfW<+5oR?lEeb)&yY&DJWS*d@3#ZblaP2_5|aW z32OBt1Ff)v=f2;YLsRyjeif)tuXW_T`uK|@l$xu$XCGf2Btf*v*TSN4(o>C{f+HDn zf4r^rgu?Zog{Ldp9b>kkxq;nAU0o7%*Kl=BqhoJUw2l;q;5C)tSP5lMiUazn_AY*{ z5k~WTVblq_#~pre3i_O&9`S~q{qeh?^otw5i}@L64CL5Ze@#FK#18WYy;i2PVo$B8 zy}R-Ab&1KqN|^d!afC)kl}yWaSBM}HL_N`k`f?emPegI-q=~d0NoSfSx7^}hLMMW7 z+EnB_Bb&g%lcC>ms8m!K1(QgEON(>v_Qh46OK#gm^dXdEvbUbEbUO6$@Lt>lkx6iE zjg-waT`$yxdGS6^4qQlkx3Y6PL}f~Bljh9ze!hGN(X(xXDoXEpE(P)>I(=B59j<Yi z1v%D^wLfa2wdJq^tga;Q+=_sTg`cs21I_xhG9l#b8xl;0Hq^nN`mo#ciHD{eM6W!T zW=yUoIGD1!<=mRn3!Yeg;(;$WJWO9w6Wn5@8mZaCNf7m8^M69Ijh11=FkWws81;hd zitLc!Vm6qr8zX5!+FPbd-8~GPUF!GH6-m+1%X1qE388Idlj9~~T%S-`0VU|}hCK%j zTH6yUnIYSb`^T6~<rx74uX|FHF>XDW4K5e=gbF7TKDytO7z?nW^46TXaM^V$T$dc; zIeD!bvwPzJ8OmR;;Qw7cz47w~y_26{Xb(4|Pm+aTEDX$FW9P`5BuL(afyJySzeO!4 zL-h!<U|}W&;u)!yBv>mqQj?^+OObD3I3JujDZjLt!0T78#HZPIt=G?MU$i_yAh>k` z{F$r{?i~oR&?D@-kq-sN@gT>}V)hzf2GnVD5$UBYl=|%r*F8J)4_K58#J`KAXi^Hc zhL>1=0@Vc%68QcYcE^d&mxlJ5=kiJ=yfYVoZAw+~kBlkij(_Nq`F!XcV#E2?J$g(1 z!Kvr-o#7QqZ|Wh+3m@%wkJBOQoZR;%b2;*vX6R}~Fiyt^>ETs|#Mol)ZP-U(C}62{ zF|>p{3uU1nm-zM@EF<E%93PEGnV+z^0_7oXX-W#F%s!pHzU|6K4<W4spd!=BQ0w07 zrV#y^`0d%pA%gVX`tDwIr}<g}jzZO;%^aRn2H@x97Q=&tj_C4}b@!}_9#A$)PNc-? zOX9lyWb=pQwcpENv`_ITNl@S92=M2kcFPtsA^z}lwFU4QXWffUM)W~Q$)Qg?&Jqug z-Zi=-Q})UC1bq}bI#c%(eg+cC1I+nMD}Hq{v)IWc;rK5T6t{X;H}JML?5Lf|Q6QQ) z<=X8l>=u9*ScM#Z7fO|^ce~Y&K4T*73Qe>H%kI6-gV+TC0p!O(q;Ff(c1GblR3E6( ztNb!W&O~199EXW;NOA*U5`&Ve9_gosq*cY2R3|xvoWdY<T|=<EiAtiZ>a-`N6&Myn zvNt2X0yln4RSb>Dz?&$=nKr7WFZOVW+i~iIoN(T|ogV@z;^ww)#a){e%ucl-(*`Ct z8O97_^Q%*ziF`<m6@U8Tc?Mjb;(6YSh2GL-EYXBBcrkpQ?_FA`RPP@MxxTL#E)-u+ zRt>wmvQt|H9}v<|!-i}1SYSLKXzr4ypt+&7kjGfy6FPY&Hn=BL%5otxYu_D6z;cLo z7YX^eIE6Pve%IJlf*%XOuDdToB^19zsJt4BdYkGh&h0}O_4v<vr4Wn`Og+$BshXwe z?S^cadIO_eO1pGA9@6jsAeR-03;LqVSKw;Q*g`pd<?HBcK{j!vJ{#wIcGNYE2zYfL zeEnjwUJ9vdH9Wggc_G~@YDUwvKWOL0BC8^XWG7X)ngkP=Bq2}dZV`kT2DCf@QAJ#- z>?1761~Fv6abKg*Q36E1$MyX=tt@z<F;2U^DkvL=Fp>j@_da9GI4tZ%iBpl~6Gj4f z%TNQ&#4x924^cOe_FJCqR6rNyiM11U3+3&L@K?~4jl$m)u-Jtg|JW>7+r@fbK{G%T z?turitP{zuQ7=>`XMmd98@`*l(L+DMZbZ27xgvVgmwR7y38rkcVL+Q0Y$p0d)7Nh{ zsyswARDeO*=pWZ>l(b)ob=Wo)He_fS1v(93ZFC|5$8;WOS%C$;044mafq9*FZ?8G# z$H@KaKFVVX1$MV71Y{I~;#;7xBJugb^;G{2x<)%<5dopW6!=LCS}z)E&j=ya+(*Qw zArId79p1THyD;37#pPjrOQt|Jv*eXp<&2U<Yg?5dc`Ad(A!GO;c9`(XRw>>#Q#VR* zCq>D!=6s7$NC5Plsy)iZ4B}CmtdbY<#y@(qWSjnAn?cVmI5{+!6pjX#=d*c59YND) zw`v@1L;7jaaAGF1=)jHbX8G;rylqI=kVAb?i%FAc7HDJty>Uj7&~&?<ddEJK4tx8K z{nHwDM>`zCIvmw^o1}C&*LJvMw^RN<URDzTy#&D#y8kvS8!9So4rFE5cFTUj8;~mY zG*oqd*MERFbk)4G<dF>d1#j4EhB5ie?7v<5tjw_nfH#PoL<`HVod478|Fv5-(S6;b zuJVs{v;Rf0O{j)BO8OVPA)PsMI(+<>*}o2NSYMkATTKr{LZ_Y<?<+gJzBaiY4O}(* zf598dxuU#HdG#|BodCR{xd}#pK+LeXVSTUR+sC1rHF(4KwYAB2hw~n&oebBHJ@Taa z-jDAbU~SUoe)Af<;q{aI_kq2V)!j0f@+L_mjW7l~gjaJN-T(x5O+44&4S?Cdx?4tA zgEypk=Fy~CuCW@SBtO9He?XjwRe$a|5w`|!Sd9j*?Uwz@%I*wclQaWdTYhI{oeF^I z+SRPAw~`SQqfQ{F|H{gm*+D#ZE+*J{G?%QK{nrnglUt*&$}`^>iZGQ<m<UL@PGyCT zD;1D%@}>VB-r!wiff<y~F1hoe)WV~Qt9){g$h4Q$jhcUjHyH5&`;Sl&R_%wXzS(Hw z+M4IxMT}eCq<>hOoSkDCIxMJ};$>;?2Ws9tP}z3(`K#zpO$%?!zBDh-udYpgUn21} zGNAn0Q+T1U#?37fz;4-B`&-g*6Q7w5{E0Pq!?H56h82ntGBZiypdM>Z=Re$B=hF|p z!*87Xm)U=Zj|A>jlMcH^B2KefnCARn%I6+DH}`lvK;FCM+n~LJ?>8fWhhrljqKrf6 zR;aT+n3)~%z0)L%-}qQ9E&J2_sNcga-(R*WGCK9cB?)AxC57w3%TP|R`p#}`ZE1-X zcCh?y_HRpJ5nMk0OnAX|+-KZvdP{QgU1i!GIq5X+SIMb$v)|<<OJr(!)&`1|WTN$6 z`bY<SY#LRkAyn>ETYPC314ef`zc^Eo_nDzld}_k2kLOhUa_ok?PJ9vI3`ib~o@YmH zTUnSqGDyO8;V=8ic6pvMFds_a#x-WS>{!0{_1!J*%5v~4655XzCYM2moWi$3ziiBU zxAc$|Jop6r%j_@MPXc!<gQksT@BFb}HTc_Td;d<;R>4e8*vwLrsW^e^#MsD(@ibc| z2Q(Q=T8qC#!THv9%lsU$6k|Ns90!rW`HD#fynqBd>i3V)qsXy<**}#86NX%T4npdM zxrLtX@{6*!zmD|Tk5UX<-z^i814|IyMH@ZCrOnwL+c2l%;+_hP3r7NG|4f2<3WXuh zpujGCj;Cb1-1AHAT-z->nv|>`UZ8p1eBW(vS{CShmv!K*Sw!v8;yKS-HhatnBjTMf z$z$CI8fH_Ou?3q?m_2d^%>H^{w`|*RDeR}Gv50w6yxn^gRrssSLt#^tK7)W&-Ivj4 zIe<wbA$3*VV0fZk^nt-VPtDG2coqwp^ZxOf%&*x~mPNWRx_U4C+ARwjd?YyiP^WJU zi^*%_%HUb9aPHhD64aRyB7RPXh;P|$$g%;YzSDoNQ*5%ye0{g<aq%9l?*90|xtoM7 zo(8Ae@DGO&a4sy~+@X6QO>vKUzFM5c3G=6!fZ4D8xWxKm_tTuExgru@>2YT`l+oD% zQNzU`CiAFFRX50$s8ahP^ZohLJ75+Sr3dP|pH&8aD|6*5b9@Mx{h8m&Jv%VADh%qK zhHn*qab*YJ>At|or$R*;tGi_me2xTIIK>#YWIog?KF_3CmAi{Q8hW5RUq#m_H=Pw9 z?slH9&UjpY9Dq0U2F}+o_$oa2T8s>2&es-ORd_o*8hPGupz`FFibJX9Blo#0yO_7u zcgtQa&DXK`D*YlYUXF`@ukW;~Jd^(DW$%Nu+H93AW*G$Vc-{c@^u1HZkq|}uI|m3D z8qEcsxB1wmIwqGT$a5R+G~Fv=F)p?3@*krwSK$o{k8fT5{^<3}()ary{!>0(3PYyz z@|6f{W{8-+_Wc7SNUFLiT%4q5k^@8dD2Sck5Gw>byU<49_wO|sr{Y0w$6@^xm@6q< zRlWr(a2y@6PpJ|T<ESXzT(uevq?mzFfj}C-+!kfRX9BTj!<5abnBDD!2g=u~B643& zq)gU#JN8zm-F-$;t(6lDC5Fq1E>H+5?n0I{s<?A5s_Bjiw|k;`Ce7x|8=cX`-hj0I za92_;KFqzxyow^@+ya9G{rf<|IjNi3WB$I{Ph?7V<ZrTiZ~kPm1<TpNfZI_;{8|NN zX{guE)X1jp`hJagN`aQ#`~8i;ZrNKJO#Rc{?KdGI*qrl3aqt74o4N-R;x%>;Wgc>q z_%YOZm{zG}phu)H$!uhhQJPgz0**r){jASd%RoZW!a;!9uT`G@>F$f$5Pm__4v`f% zw6*=0L3M;?YR4hEI*>J=1I+$+mZy?3T=*nuCMpB0Qx_uz<%jvxv%g!><?Syv@g~%_ zpMLq}p6%F6zGAS5a4p(;>XZT+>A>7%?L)I!HT$*vI=C|wd4@4obRh|*ZxBUp%VL%8 zxm32V_iIj(|C<XxYqER|XeT{>ypX%`z4_wjuZ4PlL>>ugx#5%pU>fs;HE}M`=aLZu zdGeF5o$K4Lt;|(t-3!@W4i*AN3<yIEgk&EJx^*W_aCsvtd&s2jb?n^fxXaUi290c_ zjS)IygGjL_eEhz?8NYm>kOQ{k^*+dj(@_TFM>jRS)w*@hplIwX!=_Cn2}R^58)3s) zP@E{=Y;(}bS>7l5?@rhRy>g<o);}~b+RUNQNO;B6FVEk2$SjNiyJdt}GmeYk=?qqL zm>V%|I??9mhaCcKbMT69rY>}lUYa~6VBuPDLiUv}|Fm27aQf_Cz0vv?&r8M=?yr1* z^7q}cg{xmTIe*)9NScGS^aI^Z4}$;GZdvC+B;FZq>b#{6n4dw)JBG;P5!TgI<zlBd zbs<|9LR9gg+qFa0J)MUkhoH93ha+(sL!oDPAK5Y$YOEb*;uy9kAdD-9`<o(^1Qmdm z;Qs$stwrL*oSC?PP-}!;e-=6ZO*Hdm*I74O4k`4XQCn-#%x`(&xX=v!Vqj(V#Xm$d z5An=;%Mt~K{;t-5mD%D`V=I56wpNQA9wDc$nFjnuZLO-cS1f;n-z&5G${t8wn*Fej z+FFff`tEAti)*a=@_Mz%VZH40aeP&+0jRC7@A!;%{Z?y2J1g%suB$Z}!+pA|E3*J< zYp34#`E|8+_4wEMuOC;{T5#o;pX;bCHdSsc@|Rj$f}_U5gbx5}?U54gms-m*Lygnq z(>%wcyuD~^sIBoBQWWZ!TH8=Un}`S0nn%p`72+hI*6uRm_pCLWO2v+@tF>-fv$bZE zg1617wPw@Zev{wLroxll;#Jg^wY?E4n$%Cq4tR^+1oyvljRbLdzqT^FhT4kWbR+tI zMr|dJ2!|qNYyU)T)dZ5;3~N`_T4f-)RfOcn`p9e-%__SUzzcy_KG6I)UDLN`HJbUq z*am;=y^l|!-1W=7b+tC@0>N?1DaQ9<Vm{1!#4z%g7GAAs)fNTdT%r{oz~TH>Ytu6i z36Yy;ftA_+ybXS~<!c)I&uHeM5I(R(#oPd}GCTK_EM{QL`@nGr3Tb<y;@k6s7e9S_ z@jpj1U%8KRkA@<-euRZz(M%cZep1wWG&6p|P~6j1`%Rj~=XyBN{!=6*Gji+FRQ^9l zGq?Vju6^+j(M%R{+cKve`lSvT)0VPKek7A`WG<4zz65bUaQf%BzWt1Q7QtHBgL6+k zR@K_Xa}s=G3daWOQ#g3VpY1Y%{PyO>Y3|RP2Bh68&;62n<kg0v&0p=!UU-ZRMgh^x z4NpND6sTm)P`lcYe=NTCi9Ad)9{j$J#UIECy>M;c_C9bV@WPO(phU`9Pwkv+u?d`= zAfQ&a!9(5vAeBh<6*X$GJb`yABm6tpG|6bpr!T_PGEXo|j*9o&B`%ZEgYEB+#_;xq zw<m&lvGwh%+u-`w;JO2xqF_ddl%K1tc{E;<&&M{x6^LfOqa`6(43U>W&iFzLpJDC$ z=v{MhGOoCtx~nU*FKHs*SaHa_HoT=L%X|nWY0*x?t6AnNYIT`~IWi#Gq`kxtP^gM2 zRML%plm|L2A<<No%#2l#lK{cbExTV4)CLJjzXz*S3dFQ|u~d!$z~c*Q;H#8Kg(<C~ zm1pb_6Ih`@q*o8HG8>A<!}K-Pa9ebRGB@T<o{kS#RclxI>LI%M;7}-$0rDg5-EPc& zluUc7HK|{;^ZO<4Jtr2hf?^sfS5M{FFYeD7;I-bl2t+g8%^<2MxKT@$wf?ey>bA}K zy8yMOXhwo))EkRuP$2su+izZ*E;e^Cm*+8MfK@Brnemufr2%RUGo4d36jqwkU>5WA zYY92hd~khbw$v`Yd$3UVTM0RCO|2O`<~el7{Xo+lWfd%Lz#GRd{Zp-3l{vrYe*ULg z!@S7pm_7oQ80wuby+xC16Bn5%b46PGi&~2-Ke~x$IOj2+mkK-Uc#LT1A=9>mEI_Tj znNR5dyIPyS&5Wz?Ibq?#<PO6SqU`H%cU*ms$d|gPT}G{!c~;fhMXKJKT6?SeeeFP9 zWbwxb=kE<exBu`}A>aKR_`Q+McPrqb3;5L;7G%QeR^W?AujU)R1G}D-`96u)|Dx8I z6r?446}5$0Rck$Lgx*36E}j{-$#M+ive3HnM`h@vQ5W8zRkc<{TV0vWT4*O)S4BJY zjEgodbg0Hx#Xc+>L%ev}Dng;4;oB#mJYnH~6dW|lc`+eZRA)u1%%*cq4CJtm1pWmi zBG&SavdiL{TC3}Mvo&Z#llUu~xHt58cIIM_<RvetG|N1RMd3C|+a2-gJ}At~SnSoT zb;niuh0FVavK20U{mLm9&=p$hqlucr52&K-Q}Tq1$uM4!fgk|Nl6zG_0d0HirGAoy ztzd=nxzi&|BN>kgRp*LiTMzM>vY<wex66H%!32{`C^kSz+8G=knrZT^<~R+pxsP-T z_G3uW>V(Q5qZ=s?773v2FsH;#hpDqcS?oRXrH_5DXcBm9P*5HP*HAKXJa1F(g*tRd zBrN4345`g(c;{<*Y=;Y>cWbzU^>xAXPlIqszuS#S!IOa!my-oi5M|6v0@9uV_Vese z+(YqBSO|I*?pFur_&o{@x}1D>i-`&w1QiaW3T1OM0y^~0%v{<;f@CrGN*h|AHPN&c zs37hp8VewHyN0}enl}HC2L}t7Cco0KS&{?}l#2PXd?XG_QP}_0Rh~a4IJJ=qDZSrx zoY`PiD@yAOfofFr;{$RV2|umIqkZA$r%T6cEL0eg2jtzJp3wTyB4P^?cJz?WrZlp@ z@`e#&S!IpVVXwYge>IY)q&>$sO`cfrjdGC_t{}H#h+C4<F8&x4C$mt+s*3~Lm=IOd zP#H`vQaOzB_4;1Dd+$|_BxkP7&j;1#eHj#da(1+@9(z>>?mI!feD_TDNm|nAxn;4M z>cs^S6cXirV(K4OX1g?GcXC5@dZ=&9&Imw^xQ2t<=u!5SkXmjtZ5J*~t4S6u?MYc4 zjycS<x%3Y!v)uh26DJP$ZPJ!zfw6chj;M`7xr^Yysv_VS2dX#)%za2D;6voJLjbj= zIOT?^cb!DK2`{+%pZTrU978n&LbZpEX!Uzf?8WhkYMT+R>S%|}gzK0Dgqdc9nb(I| z5`)iI1t_`cSmL1Dj~N&#UUtj~C&-4ME(|}s5PrBld_OAUsAB|=e8lmL2ydF9XMMz} zg@^;4V9UO6KSy9<R>3zQGO#|<B58GEmNK;QDzGx^NZYoZ7Lh@V)|LZ?X5(WPXd(kN zx^`4b03pdSDkCH6hyUuzY|fB0Ff^N|9X%!xogWZg>?l>35nVnM-BlG`iI1rsl3;4b z+zE)eWgAmpAJaq>Zx~u#nN6LEX?2W!5P)wFSY4S7OpNUTR%Yu(d-1C)vu<iWW)#S& z6RRt;#}oZRU2R`!$4`2S`jg|Q0wMwAn(QJBjsaK(oBv~{ND`zC2-l_mAY3>8^O<o~ zxGIrDfit63(!s9kf=B799^KhyHHGVp*shwQCpZ2Su3S6i-BEvbivBz^t_oLpdNllZ zr|7RUBk{ufmw)RNL3vhO974m}l#y!<<X@el;gTUFpQ<05USIw0$!|vN(_QK2_^HqK zV4mW?&WtzqJIlh1cJQAAglp5<nepR+5k@SDA17(w$7uR}W|S%!fL%mbbG3)>HLVNR z(?5d(sG^-Uzt4=f_Ls7M8uHHA7X9iJp%kb3FT&tNMhI>XaaFixNSO<%lgMDR^T&Um z86g+!;HWN#U&2*Y{CpAwse}K0X54d55N0q(rpFnqSMt$g30xC08D^>UtCH`p^m8AG z0P#1SOkJ<!Z+&|>)HZFM5nFgb$q6K#iEaMHh_&RsfTl(VtutaX>2_T0O=RfAGq1HX zqf&;yt`c33n;~FyIeCo{+gzVg&|Uk$t$2+Q3m++9fdNJwn-W>R#)y@35JTYeuYJ75 zLa3B`hRf<sS9L0uZ9dYm)UYO8eH|WKpZs)t=(x+EBgOmUr#g0o%4eWcbn^4vslu|) z4byi%es1La|BTolU)F`|+L>|Ft>xJstuM=ec8Y#}8#;08cc*CW%=oKQw6Zi^_hqe9 z6zs$-IA#Qod~?HaMLaj)^-n%vD27vXAA@IJ{n{wxBdw~+<MWn^Tk90HVB|P5Yn`G6 zR&W3)R1)YE>9AXXTt*m?w*}?U*(%zw+9}HAJz;8$WpE-C@J47dTS9z^6G`ID!*L^5 zJ4G|JRpGkYDbk%;KQo$kC_B$Y+x3|7`E_=z3Rmsg7Q+Le)lN~2>H<>O*zbYnoqnh{ z8>YC~=%KE&yHFa1D)GH@?aWBw%_ktydv!+o<Fj#lwlA}&M!K_!bf8nT$*jxVc{VAd zXH~eao*9!FyamL)X5Ds~vnj=}d{GN#$e(9MokxNow^$;hVC%)MM<NUmBAU^P3Iv4f zo$auIzFim}9Q6419SG8p3GbOT;hH(rQ>a<j_1IT#-?d(!<Gh(p7%#`0K&k=g6#aE( zd}sC~aO7*wLJuHZySPuTE`7ZL;wvU0&B?yrYA}>lv9VZpUxe;lu5@vWq4esRQ9W0h z)M8l7qQ(GcM$~PPB%2KYwHWz|=SdjNDhRz{u0S=e#B%M-XrC`{Rbpn78FI$C4J*j} z&%*Utsq?o|$H!}D#%pie5z>7()`jc-@-pfZCqTH?EMYMiPvFcLh=<48A5iExX{MAI zf)?h;oZ~BZeW;t?20B1snuC0LbaBFbz?o6O2QJ8X-mx+P$}rgMHU=HKJCd3on3`&) z<7RC@)U5vV%=lZlj*hH$it7LQ%y{tU6^-(fZpO}T1C+)O=Luw*33{ukD2(X}x$1RF zGK4@+&Z*7MHGN>Cltr4@PoPZg-UfAn9Qcq4$E3Meo;|iZlFBj`cxpfo5*awCEeyLw zK<)POvOhe&pMbEZgoKFkhRfII-|IT`*<y)@9h@D?uTe}@n2izLn_2*sqnHNUvi@+) zO{sm}2c`0CZh}owrKV{9u`S^EBg<{U@>HfXTSW--=mW6d{VC$R%MDaL1&LzpH(n|O zIT=mJ$l-hg9zGf$GoYZO$tJSZ`m{q#sF1jORQ%Jtm(ovOv>0twQq<OG;5;~7*_{ZZ ziv{{@WfvWAfHmm&2{6B6*d+yzJv<2>;~vNqJk<Mm%~e95V`Td!f}Q9sna-2%#x)3N z_7EIB9CPq?%C)`|SFQ7+4&L|{J#_cX%EOD$gYV46Y`}@GkzO({-`DawH#7M7FYh^& zXUq+iR;8(@9x`acq>#j47E{B{9z0olS^P!yEQKiA0W2ss5W<_oNVvxzgl}aGv1(NG z$o-U)LGpbk?tTj!!y%*ikHV_WTQVQ}-muz{->1fb8!*OV@qWewDTwc1<W+gjg^i6; zPR%>z+&iT`8AKq`zBdV&KzOwSo8cwk=>41h*aid?+w=j-Z}ai+`&!L>+|v|j{ucTa z#dRDNNa^?z=TEf+HG#e?d=X}#E~rDs&_!Af_|JkeJ4V{KIh><1M{zQzb%)r#w|g(X z$T~{dhz@>R+gF$OIqykbyL9n9O*(E)$tLha(>@Y@sEQ})q(STP-rJ#WE#NA#Vh6D& z-?DFh_O1Qc3&DEA^*A_A-530u!%xmfeaxAwP?_qVbG$vw^X1~m6-lX=l$L6X&kN<a zdkW!Ot2~u*&*4Otx|A4aU#kQ+BIRWTS5napHqsZHu967BC}W(W?Go1OBHSz>EXseU z&+}1h2olsV*41<=P1yMb<nHM&TLxcqOLHb3XuY03GH@y3oYY)#+J3G$mkNL1aD6k@ zZl^=<efo;#n2gy1#WO15=X5f*oN#m;e%+D2Npz|4rq&_HFcY)HU{Tep{OT0L6yeSG zR{|9-y`4m27!+Ygs%QWepFtI`r%Db{r5An)S5mEcuKb>(Fmo>xxX+xKGzF>i=Fn>e zNCpmC0y8H9wOJfQCm=L`E<`8Xjws?fu7Qf14E-fshr+BE!pQh=JMD0L$M6FI;q+Sb z<)aq$wKhZ?l<NmCueIq6L;F#Xo*5Bc?PwQ!G9X-+>?2MTM|cfko&!7YuvOuDc_{KK zAYAdZ5bagr8WBLFWzd?!BsK!&F0Po6BptR<BPs=jbYp~~TgYg^s8q)&Zw4|H1eZP@ z{2B^{)w&3RA|yF3e5z9S3c!N&!_|1wjO{@{xHiLMYKSob2!;BERpHvI9oxPtTw^;k zR)uTNP;Bp%vyNNz<Lz;S8G^_Nqh}d$BlWAo_0>Wg8y`Oo2v^7Ww*m1}8Sx+L<EMw> zKQF{{@Cmcp33HAK^8pD983{}E3ClwXD+>ur_&B0*f;^J`ddP_uf=Aq?^A6Mb7wNbS ziGn(b!cK{zmlE;U62<Q(N)9K!A<}P73Cb=CZM^Hd*==)vMpAsDp_**mC^boWLoyYp zhcZLCs-$h)v7`}j^7i56AX%^x19@=}<;8?N78BIHB<nPuY<W!#SPRc3V*)|Q=srv| z1u~5kG>ekbA5J+uEUGb#DrOwy4MSGY5rumMT`oxhTimCjL`6W*TpU_!9-AJ4xk^rw zs!ID*m2!G9-R~|W8;6#p$XzT!TGk0(c9P=HJ4#v1IFgI3pqv+XPqU<_ZLG@ZZrRWa zxt4QR<Ut`a3ltj8L_3fvn{%&qsiEASZMm_S=>V3nXQGR7m|_O1`>kMUlw^kLnM!mP zYlBDx82Bq>pfD^EhcWX@k*Ugh2!_RN$R5xU5d^`C$tW%d^bQUyV4%t}GM`pS33A!# zPn~j1`#}zU7(d)`4IOkg6XNt<pw~;%*DGfpEj(3{6DI;m<K)cTO&`0PJbCE`Y)Oa| zg&BAT0<e;n6il4!8RrcQ^Wkf7=UhG6Yb_}-Al*|8g7+xh5bREcdglV}!Gj2-q%)>i z6-}mOMsLXT(aBTLy}84Uq=JK)fnc(n+{fsfSIlzN#q+o2f<=I6F)3M9?M8>~4dapg z!?JNO9h|hzzh}g{m!>!9NWn^?J^mdd_7f`UM0DJRe`LglITzbU7kv$g%l7&gMyx=I z(DBS-SbwpUdr8hx2}8UzPj{6O>#Hnwv{dZ=`~32eQh*W56fdjREvt1d1NuCFXT-9^ z%UgBJ+nviF{EZRYyHwuyH%9DGX2nQD#mkZ3j9A^uN$1M9fxj8CBbA?*Dmmh}W_54< zV#H?NT57npJaTJg=@%mw=E6h-F;VM`*ik0`k6(;fVV5e=pkItw$<Zpz7zudsUQ@m) z?NZH?3*aw9<GS({N2~43^Hm;IZyl|Erd^}SJ&7YG8hZHG=#Q2VT{2?jY782y6x|%@ zinY74s&>a*L*lNR>D3s{Do-E@q@`MuAVE9`EZ+{4IX0Df-xinHBr}KIqFU{0Q3F6O zJw_oDi?>e%Rry!nHs~Y9FW$jRY+9L+yk=W>;bhfvivq+ALBN4u57#-w2;y)@miwT6 zC+gj@1XV5|frL*yPn}NCIiT%UV|O<pNHALthi2TJe*l1E<<3~tM<kZ!H!}TyU;#`j zj-ya!QKh5?mSpqC`~dCOYvhZO4HktQf7Doe5<mE?wo#=C<5HV3dPY8`sr;m%I?%!L z1L68q9)4^>X4L>=^Up_{hGLi+LO<?dC7Q=SGN0Ks<AR!}VlMnYdq6X(zyn&sl<+@2 zpiQ|>92_DZfO3SETLMhGUpbw>IX_MzBIbUr&~ILn=6>SYf6M6r&d+@c)TWl)Du_bT zg!G6wWIUvWzR}{(k(F1m*O+b{(bsprT}OER%ITEmU}X@W>_30}E2qPXd9del0K4AZ ze-Coq`B{T<q^lMVuY>d&emOrj&HCp*R!e0FphEl)e*H72W7fav@U}i9kI@DAYEDPg zlTCg5J`zuWE`FE({ebq&J-j6K;I$z?B;fZ0I;}G?gdaCa67di4{GHPQ(k;>4_I~%c zUpbww4S}ein|?Fx-a0r&BhC*^{$kqg36n-i%%3=#w*G)_#!E!Pb*3orW9uU;W;s_S zXVb@neY)32R*Jlc7Zzm@msY&iMpir>UACI`@%xjQQ|luuTDe1vU_JL=BP+&nD>b=6 zTjSS8R+NhhA#vQVSQUSH3bkx)WX0k*&9VI9`G>2{&q*H|#{2upc>nTC>ksJ5#E|(n zwL{0tKHX_52sh&;gsFUX^D!b5>((C7$xgTsg)CRWFN!nn#%4sf{O-@IIh|XM8&k-w z_2bd3miuc^jy+CfDjc`Be6Wqz;jf&||Hk?G&rpu1f97<aIsV@`KbOCAKYf2qL2mu+ z{QMUv$KpH2|CRIeUmwsaHyY2vh0ktVxhU%Ay0SP`1biN+Yl2U$LpkPFou7rZoX+<z zKvHb-2%3xw35IbftIm&DCkvs=`SSto%n8A-LpfHRAHu;K*4_l>YEFk}nTv5Cs!A+- zz&EcwpxeY(p&UKA{A)R#wFfks>%rvlTA)IW|Lp_X5rA^ktv{e$d2b5sbqo>7SkLJI zP!7#B5Nex=k;FUGhq@yGl%waS^xq%Q!w&@q+4$$gFeIvLJ*V?uAJCQlVX~$L$_`!Y zIh{EY-wOE8oDT4SKD;!W&f+apjRYRhh^J6h)d&p)80?|@^;%zSp?Z<oW5D_O^8uZC zD~rurr2WvWcQvPTXO5-Sf6e^*5DO|0Q>4H4fEIG!XWMPC{(#<*0|yh0R?PZB1chZ0 z-->n)pR+*^9f$B(6`Oo_q9ZJ8bIcQYcFE2sT;`w5n@u61Q{G3yI5iM1$;-GU-7YB4 zzJRd$fcEaA>J#!HQncM~7VWZ^k_)h9Cu|fN$T#Nq5zx3!gVfoCe#w-Z>Tw_T6qyeO z%YzE-)*jIN11sfAxWb)Sz>=#xqfx-ESK1AS*wzSY*uZy}Id5~euNz6tIe$;(@D_&c zy`|fwkVKGeva(}|cvykjrK0bBX`)Gr=PzGQ?3iNCB%qeVZgEi=$T<bUjyn}q&xuM$ z_o^giA>fz2GQu^=-D39yuoZH``&;PZa(&$BwA%WLc$gfO-*4GnbbyWE)z?iLs(gGW z;c>;8t^tZVW8(%(*QY23nUs##+T%g)4W~E0{2Uz)Z3H2ODlt1_T19iz0ym4Bv>*D? zkgkFSL9{RQQ_3_+ja%++jeWp+l^CIU_X{6$f950p-7J=14N!N`4Sdy+iQ+@|foLNt zY|JJFZ~zIpDGAKaU*jPvOY*wf|40+?gW65ZC^CV1G5F=1h(^j@S?wPJKes=>U$?s| zJ~Yq$oL?IPQ%r(n^tshmw?8<sV<tYmNr?C6gqWc9dsMmX!SM)K*YSPZlk0qv5eLCi zH5tBeW86z|#|`q1TeH&c_Pot7C2$chP503B8X%_}J>YVRW|>`g-fI51t00mA7@cGg zTo{CvImJ2Q&&xK{%T(Z_K(y;^Y3jrf2{r=~XHfmF>f2&JW8M_nO5pROK&1vu+X{88 z#wWJx4l<?9poLioVz%qE@(X@xN2ER;4$g;s_a)_2jC$X`GV-F+I@+BZ{Ul-gkKw*M zpsQBmpS)d0E1+hPBxw>kQFngiWP$Q3lp{l&T=Hfe%5ffw!hDLaGtg-iymVIMhB&J9 z-uK6+(?#2XreXSF<e8H<t%XzBDGFPLyEtxgUuDc`)JAdZndrs==%$585qB2&FmPMy zsSQvzV1p9@D2F`Pa2?7qF#uhBPI+X-AG&>cg5Qcw>N;`QGB&*hqxbG^-<DS)S=^hv z3RCr(9@6JLk`j|o$9inCCG6d&yFGOi6M%B;+$$VQa1BzQRI68`?LPC5P>zce$hSK~ zN*^Ag6ElAN@xA%{ttUUB7vBBAbY|=pYsJM7DJ^3)#W*$Hl^I8$WkYvU6R%0PS^5(o zr}Jd7H)!Q61AA|3ug%gx*2<jwAey)Pgb`1D22`BM=;5}6p~E=y^-r#R=Id+@#;MLX zV4FFSHp}BcPN&nRc{csY@>@ObqJaGsxH{?QhhNUm?IY9|F0Mb=*!$cC4R)n5Nft6; zbARc@la={K?oUp_{pEKy+@)JGmtWWYb56&Rf(W3XGANjOfZRdhU!dUDayrACu3(0) zAo3}nXR+`0{`G)fb$$Xuh#4Wu^&y*we&uu^o>X+k32`FMk^mM&ffd2v;fIO@N8GdT zSlf9#hTt~(-PVK_Vy-5>i|B^Ng`3oeJ=emS4qeqpfp-!^4-Tz5Kd$%)ckNZ@=XgMb zj3+hF|LTs!D@k%VN6J;(17cg5paw<!vq(75Z`Lio(ls9`=LQy3rG=T&wt=Bfi^Oz> zB3^6)pXRFK5=h`dExEHpxXHa>xNPJQl9oLrAWDIdaM5`vn31Z*Rw^ykQ_P1b^uhrQ z@GR#z2rCLCDI@x<f8?<-Xx%LC84_yc8oqe(%60A74gDbdK1?w^w#yMyKt@@12o@L9 zPCO8d(>}oU17XQAceDYzIY^NKpwnY`ZLbIesChQ;w*0vLrm@qe0wQFn7Y;E?Ot=a> z=v3om1mZ4LMXUK=5yHVBM&J*4IU>Wp$u#~}s?!JUuunsD0kDr!F0#NCx-ccML=%hY zjDEfse18GUvq3IR#F5|a%9|ZH9-S!uYe|B#V2!@mQM{noC9!3c(8^GvxGJ5%4LON0 zN~+O-Y+3|f)+xvtkar&@^8zg@Lu|uv!m~&xuu`m1YciM2uYm)%bkdElrJ_V2iA;1r zL<-4EbjPCLi-%w)0XJ43zY$`a=6QvWfPsufI_spvXF!&Hm;gqot5RGn5exzzft*Bn zxp*G`E5aaXFPR?z@vBgh&n;$%Fp$M`SmF6-vnVl-_kx3a!G@IhAYum4Y;iNgML6M9 z*%=8Xsiz;H6Ujb(0oN{8rKp=-5$Xd8`=z}=rJjt6IpBFERf(RJk$H9z<kpArB410> z$vm2PZHxbvZdp2>k}7AHm_M9i8vz+E28YRAZ!Jl(=tt$^po83N2~01sYO}QF;l#eK z>jrYEHkVSnhp%TZfXpbEP}~hsr=0UG*@GE5TsAL&j_;33l4}Jw4QCBHBw^4u7L;yu zrkxJ#!;l%ti^B|8|C~&(D?*H%;`bZvocN2JsQj5prw?GV$dI<Q?34H;OQ$PBuF*)K zn#;=3x4WY634TL&dMcK^afJS*7-2~gQuE50Knq4V9g66K6>Yd~Y<ES20*}C@^LpnR zU{10kvQ^dce{|*5yw8HkVlb?HTQ6{iDNaB!Z+~W?WNv}FlMsF+dq@imU&LC0t_R4* z3wMhEKJj2tq)z&E&(gw>KmnR*I6~V8-C2ZN0NHXg;-JwHf{3s|2XN@#10Kb~Um~M0 z^f*KGKRlp;krfrwP!x^IOs7a>gi6!E*Oy9I&m)UVuOtNiHL|k$fL5lK22#pPsqjIn zkaj_vZYi*{^7jX{oMU<9QlR*Pvj+3#ka#7?vv~Y(59p(vLSi&Vlz4iS?$yce%97Hn z-@O0!fabXxs>}ReKA@$4R1qYq<<>`5f~tvGzeZNJ{-{=!s97CZaRDCCL2Dx`jlctX zZDd8F)>v<CWF@H9G;3{SWwh4%$J)q>-ferAwUL#q+s=)vBP)l0+;#;<R`l*1by*!* z@yxp84UDXe-Z}MSb!6p?UfnrhWF@FBAnX76$O?7WRlrk5(*-x>Hnv&_T-8DO^ov>x zAS!j5da`hQAY@`6zB2}yP04#4bPqGr<nIS!B;tYWdk{DJUc-+jzrK6zGxx?+n(Hl^ z+jH?_A<Z8o?kkK5lUt?V@ifm$+@A~rc_m44vhI&RYL3a3k{rLkz{46UyBC!!wL*~K z#;_i%u!i046F4lKev_ajOUae>KB(nZRtuMnl{nafoNj4VX(3lj6G-TdeJzST4Uo(D zi>kPb95jJ*Wt)EUTp1oZhAk%_(#dWl>f?^PA~Yr2bq_X2+2U?cAX{VGi}c!mf+1NX z7TKqf@RGF>)aDS|p{L&hoFIm6J8WKd+{|j3V074Dh8**GkgL)H9b+lc^G;1SOpo4| zfBE42^xer(&vyU3z@~@UWvt;Ue0$=<5Z*?j?sT(gc4yg-rU1GW3<}ZY+&eejS*+&` z3{Yk3Z_D=Cwk5W!@*`MLeX9}~a*Nnq`BBwaq_fnA`M<m~oCb{ge`e>))v}nmZIQT* z<|zv{t)WrB*!d3=ekV+0xtrxpIfOS||IMfe;GaK>nE?C~?h$}8`gLb`_5qAa5pek% z{Bzx?cQZ&~?Lc)K*8c_ng!26E1O3gY&lW9x^9XS=#j)jX&6-g!DkT>yhbQj&mp;(m z^kUgK7g_Axb@=CcA80LMx^`#yvk!Dg^X->(jdU)46%`I7OpCS|pdyz3xevtsA)to$ zcubI7IKif(6aiHDuRhS4QU6bUpa7WwdEH~HiABb5qrQ0oBoZ1%caL4`1F3j3zzL-B zg#?7?GJfsOkWb&Wwd7`kb*m>B16j%?rTlN$`R-2R*HPC!!8!7pq?^c~S*5A#LFNQH zB6NMs)tQ_dxpTh}dcPuj>c5V;dY4iKxxy+%fe|0x5h%^8W3Cr;y$bFj{&mc?@&Mse zE#o=nL&aTV;Leb};vFZGcIKaq`bWfFp*?b^Rc1w7TgtCF|4_QK(D3nA{i_hby9N@b zzu})nx;*+XO?vpWD+nVc%{jB9oCi$^$*q4+n10pa(Y6euv_9H+IoiKSyvXNlq4ev& z;Gfsucaw+&@a>%59<Rs7TA%EDt$+7{o;|LV+yxb6+WX%5u`;~vxsev>eVt5l#VR|0 zwGVVl(p;rN*nJmtd+7D5AwMYh${p5~Uw4N3#u|o@nl{HV8SzT&qt%YrkvE&r(yRlO zi*K_peqMZc?K65W{xiG<t@|9*FIbVZ%}QsApd!bR#<12Crg~$1eus>{RIqNEekxC> zP<q<9(P!7&u63i{<_yG}vBP4Z;&gP=+$T*{$k&(aM*R&Rr~{*hXa2#7hI@-|jQP0B zYj=i#0|cXT<P;dIET)uGaX9k6Z`ZB$I|Ke6rrq_ViW!M7sfAw~cY2@sQ)%#q`f}(Q z;LZRT^?wwC^c|rhp?$mL%Uj|<R-LBQd%s2ny=hs4fA+X_Eg$9cV@yQ8%rHT7c|~+K z9R6@ccW^&n^14y~rkaFK!bPZ)!H9#8vIL~UO^AiwQHObN;vbssIk2A%zV~SS#hszz zt!cLQu9ty?DR5`lYGFfaIRH-+6sF3%LLg(P$(3Bt&SrVLvF-9E@|-#t@!uQu)d|I= zE$-TW;l?Sh$|-KK$OB$!`}4M^2KXy%t{VsAQJy$l#+p(8_dA35*NjffLU+4@Ywu$T zyx}CPi-jeb=>-v)Lq~g0#k<A5KKk|VcZNUvK>M_NdT>E6H|DJx^@Qk_t@&fz$YA!< z8w<RvMtxt1_#ESJM!kr+2=8WA;f80OrsunXK2T|YdN}B&<QrC;vH3t!=3G9}s${JX z^vkG!B;Su&nEJC1G+VaX2l|(UsYdaD^1!|#^S>MQ|J(=qoiG(C(b)3Q=C%2YhLLZT z0gqSvKrfn?zTKkmZMNH_3U2w;2RiEwZXM95JlgS`zTk|@K9E+8?D}w206vH=uY_bB zI%y>B`b_qASk2BQBw?GybAwMxCA?;4HisleI=ENQ6DX7KJ<prF3^iQ1qg3K+tEKWX z7ZVmhk{U3S^D7=Jyi?ik`@#Rn$<YrGk=ol5pA9oP*nt&|`ny)A2r*d)-Xzr(u?@D_ z-aL6|upzy?aR2F`P;*?CVk(`>JiVV!(1qN>Dpc*skrF6;3YMt%uGCiLzde&+RA~;~ zat(u|4V7@6H~XmBb6PRwWBfqEbR~~jhHr%#I=Tx*n}(XI@Ul<((tU`!TbH$Y$Hhk% z9_)Wgf)7xl?SxygiR^Y1>5&o-G9yk~S}ZQPXHrpb_$byDqAczPH94>FVD~At2)L!D zdcN;vi>uWc4=vw@crkDV^)9>Q{l=^|40Ag+oRXM%pn6|59q0q~?x<4+g_3!VA$&~A z?&Y#K_c|7RJ&Vs;f9sjrqbKf!H8oagr9d<mz}O42XVOOX@9t{!<rN^!ex6<i;Gau_ z1+zlR90rXHyDJjN-hT5{(=pqdfe!fqD*WQ(k4Cvzkz7t2W~C~`$TIN!sjcUVj{R}+ z;I@Y0J^=oCefFaji!H}jY@{SC@bc){k@Gn@nzznuS%rTN@==WcIN$@uI)(@-^qnj8 z^z}S`<A?oZGXVcIc#DLAMXoX(8$+8Qmpr0hJ-VZD-yro%xZd)ZbR`R;-A@a8a}ky` zWP%btEEg6!`U-bqp=Ou$Y?8_l<SLg07ZT=x;KeT3oY{Iro9`@Hqv@^olS_gMpfIwZ z9IySP2{D8)eo5uWgyf4w#;MA=LcQyuf~Lmu=C&AnlMr<0{Cwh#t!Eyc0pOpJfeuNa zFr4tAecKIR#kBPj3u^%QXJigThG}RV9Q2lupcnA6@_X}-Ly@BK(>EsdjxcpI=;1a^ zWaI!pRro@4qFvMEdx?oImz7!SZcP!@*U!p@!XRNcZWVs%SR4=&Ir1JyyLeiKE|{HG zN|*Y0(CW)G41+C0#!(@j+ZHdJu7mqn>+cE(UK|qw?hG;?zX<nHCS7jB4=hA(xZ3A9 zUN?%dqL+S6K7DihavMh4@h8_of_3?4tMq<q`n{n$H}><W8ZJ!NRlo@#>cfZJm4zq3 zogpFk$^0qE$ll8b+ky)nz&QFIFwL=Q(}5bT1Ios~?hJn!^#MnY$UA)0I-ryUdtXPD zcRZ}{w>v}hUe%;yXMxR2HCI2`i~EApLv?B1r^1vBTVdSWYki<%SAzg0Lwwk7AYnQb zW^*nqJ}FFdDs0uLr;*4*M7x0S)jNaZPN$&@JBq`Otlb&z2t~wHhkFjKCQL(aMntzp ztR_qYBJDQ*AL8CSsL6e8+rHCCLP?_-s-Z|10s>Mc6e)@r5ET$Ls7O@<DguHe5PC86 zB4DTjf`U}Bg(A%s5fv0&K~Ydyt|&+o&3oh8W$owP`+N2`^UZvJGov#<@d}*Rbsk4j zifvNFuSLB^WzzP|iMvq07WJm&I8Dvy!sJZhQZm~~FKtjGgP4*Zky7ZXo0F`OSC~?^ zl){P7z7U~NN=&T*FH8rw24B*uE=;|$lnTn*Dm_&iiE9_8?WSpJ?rEK4X}3|SU7crG zOKISuzMPo;TX$MNxTsG~8cdcQ9!noF%{aQ0UVsPJ^%*Z_SkD4v$2!**^=4xk)Grxt zz(qYOd}>JwgnWXFdgG2v*T<Oxa8ciR;_HmmCeQdqa8d6Wwp@#|CcrkZPYEN~D6b&M zxYXI)wMG5ob~X-N)N36lc&#n!JHoT%#<P@){1uk7RLrtnWU|#Fvo-5{)r+!q$Fong zX6wm<i+OvpS&m6$j*8GD$MkxRr5D9~JclBiJ2jVM>y_&;ZfPHxyX|`J#hhH1<y`8J z#bsiihgY7RS>7H{=9-f0c|GsIa^8;dJepbl5v@F<z4-w}`7v*EgU0iZqvH=P=ZBdU zSoP+giY$nz+ZbL{5ItTnaBWTI8ds+S`dkwu3v1j9ldpp^*HanGpvhG)RkkSCtB7x~ zW^yeq!WCXGD*I4Wx?EJ@Ra9<PTr*x+9a&r-SP1%DuZ$NoE*D>OE@(Ep&_15u2FhHW z^RHhAWv+R*mM`=;=XINv^k2`t8(A`}l{*B=T(9Rm08Or1IgiaspA}_4jVyhkl|2s1 zT#K?^EtkF#qO&H=%HBt^-$jBzv-2OWmwhhE{C&CXD?0Ow*~JC3jBk+_R|3<QuV4H* zp7vw;B2+XDVh+k&QxQ=d(T^$UE)GU6MPh|RNKM9@m&<%il8!2u^G=fODpyKPR9q=n z`3RnTR;YU?Y={D7t}Lyt3carQjVl#~FU}a4SDFlm8%I@|ubeXLs@zh1(rTsBc3YT@ zd6h#KeQQ+Jwy5LIT~)5y$9Ak#xeo`snOE;gJsuia?Y*tstE>7zYWe<^>O;fjzUDPY zMJxQGYJ#>^1a{RNPpts4mtn&dq2`yuMJrE7U5eUP8QFE|Txw;^%B8sBN~U>jqG%OJ zzD(U#m6Fj_o0(dbu~M5oT$N>BmoHkK7gblht-7eIt}M0Mf4Qz=_{47W`Wm?{)lv2J zE0%R#^;haG8dvJCiCQ$9Uv3{ZYXftJAk*tzmv76N-defb^TMRt9CWoB-;HV*Ha8yX zYIvw^^kAi7#Jj*l0NTYH$5!mI0HQg(aeSrG*+`miensTj!KtV#TO|M50sN0Q*2$0) z03KKm-dHaH#+FWO{>8*t6yAHuzq}lQp^8k}Oe!n);E0>TH2ZdVXAoqBjYQ|{UQ%%X zA=c{Nit6o%bJQ!I0a@`6E}-W*_HN2mi5Dp+KhFl@1E{6_5i3UZHUaJx=pvJ?-cW7Z zI@|Nz)TYr|-jS?5hn^O>;4iTWx)EEudJ@OlG`Aa}hMXlPst9{lCOP5S!#Jc}&&;RA z!eZNU-7U3z<D-TiCo)_I4{wx}#O!BY<AmtizpijGpzje~(fd&AQd)MqSnfkmeB+sO zt~0!HR$)KQqqWeWGRZd2I#JDQ<b3OX?Y&(gb;@v2whsPvUr2e}(<{Qi8sPrp8~uOy zg(Ki|>->6d;Xj{SQrl;+N!eBmw{bOR5Hd`%)U-667&P!rK2H*c{`u~TyG(q#uT>A) zJWIbzb>8Kha$z%GTOfHdp|9A;45hfD&nzp{)CQ{S%Ils~IA(0vUqA9;SEW;)`|km5 zfo^5)ZO31YeWO8}b`4}d1&MMA@j4YXyI)e{5$Z0MmP`JsLFndF>w?$}<Ze}##MCyF z&-0#Ca)NEl)_R6PZ_P0?fSG!#*)L(wM&16P5c>@9wtc6b1oE`)C4v&2ud6#~ZFNP$ zBm?h&*C0A3OlFn5v`rwFBrmq*r$>CoO7dsW6$S=#6X=6Z0$TU)M*_$2soRrhq%XJX zNHp!88D1U}<zBoOhDqDMB~YqtzhnB+PN*kQ?wyFclaf@=g!5S26ajh8spX!_*ko>w zjWUPf9%1(&pB*Z=z941$*N9>}_`amSzwhdHHlN9jMS<^I$cwWR6Oy7dnf|!kc=1iz z;@!<}?+}cuLUpEWDxFz6?)9siRT2$?<4sG9yef|FV98K#&gal-959slpO>kJ{9zYm zjWze1x7Hd34uy9!lcgrzYwQnxF5Z25a(DHPgCDhUHNibsp)KC>!3(p`o1U#o1*A1O zBwVJy8~IUC1v$_b^&zUMNlJweJB!wjVRvY}x{Q(k<CZogd1_$04u2@E@X8^y!Ovxg z4@YFbJi*9`u}k|8pDt%54+ayh{Na|8k)>0PpnY0YQ}>%*S35)Q?6KWRHd_-y_XOSv z-|>viaz^#KR(~_O?9l`35vt(~ri+$*k6_8++s0l#RvkS2%<1#)>t7G1?;lwmtO}kx zYAdD5Vq|&Q{Qi6&!ed908wL0;8W|Mud8PjTy#F#SCT&>?9Pys`9y?o>vSE<RU^#Ac zpz$`J)sBiP=gjy9*))T%2U7~j;Lo#_VR!8^6~ath3MuEeNl7~d5$n5Q$g(XN5b64I zTlC?Pqmy;KIe%W7-9{F_Rjh7zjh(!jQ+!kX$Ypd2CWik_cdVT7Lho+9iCz!PdAg?Y zLKEdcE9$Aq@81_26EB>*GqQWT=a&N&n<aUtZbWE$w?x67`z`Amyc?j)$3Alz{cL@o zAz^!*w7KmClm5O`&!xjQ+5L|9rqjjyl#f0Ul@H?6apkNbvhIOVVo&_nSS3-f?J{8? zz6STh>E+!>wfhBub{q_DoN(x2C3>TW)2*dLl>g%GT){RA7g`DdP(nb6R&Z+KbjPoK zYyL-{-kwp)wJPUql{LZSzqDE8c78NU`Ik1!x-;5a{|U{Jt{f@dy#~$sb&Ml+U_)T} zk+C&H4j7Uhv#XXN(fG7ypkQ(>B-1&0DM2+o4sm!Cfc@6H=F>~}^dF~9!q=B`n9c9* z6>bW4sBh`X8dOrsZM=DX&8N4^e|FW(bF!;`t<AD;&edU(=$5$uR}H)OBTG<(PkLMx zzgELurVezTo;&pmnxnkKyO2jR|2j3+n+E#yUelb#HUddv&kt=LUNhtzJm3!f{4E_r zE8MaM&8g0t2f5`o&y-?;wU8{Lv~T|@LP;M;T-q~}=PD_6DJKDh<|zA{Z*?qStzWBQ z$CTRp9JzWcY3&$iEbFkGiso9IrIY7+F=10ToS0h;3ML8HccIwt9LCOVHTj^HdQO^n zAAiaU6imu!8#8?rc)K@%$2j8`-HEe~BL#<Q>W)SnKGq4=ut%P&p9lpFIUy%sgU2{^ z8@Fm)Wc=A?`BlTNpQ%Xy-)q>v+AIz2|EOWN{%W)Q-_RVe%~I11L#qj}5il=OBSJ{M zFx&Ps6u3)@;PAU`lvz4@?Nh@8Hp&xDyX?@&M*im;@A|hZA>%y{yNILmI9G3fU63z> zo*TOn*M>M<$86;hMmHc;H#CrYe>z0(fkus`*&>j6QxK$tCIgou=0$?^Lr**7LXc?+ zHgMUOnqThOyM-7G9df4H8IIg1B*G8*R<jYR03^Ou*=e#b^ilCvcLX7V8z-($48Qh> zyjL;ze!oviD1ywnCT1~9easy_uCB(ED^XMSMjb0*wz?8-f_>|-!Da^({Gi{r*Vewm z#<n!)eLM>E+(b)Ci&cCG6`@0O9}JaYH6^Z7qJA$Gk(i<l$hvnn_ah_q?=H@m;J0i_ zQP%?QS~l8K1e8)MIuGWX+ry$zc0Oc&BHB}J{Ny}HJ!0#dUWvSh?IwAT$7X+yc0ziT zeEWk?Jj(spVkGFIOj}WH#C^GBh>dhEE=478y``=EzGxCl%8T>`vWVPH>R!1hHUyD& zrt^QC@;F-tSoDBYyW_gg50}E*_ijX6a$(NAUUgGEtSt18^?NA@X(fuxP^67$Fwa(g zmV{vCRY5-m+pWOgAU!nSh`!mU^aE<jmGid8ix@eeYtQ6;>OL$}p$xLy<A{k)tV5C! zGY3a7GI5~j4nF#Q0QHPwi>HAq=d;~#m$)92TDp-8a8Na~&|c`PyVJy_(%v?!H?2(z zYQjh|(q#kVyLI3$JeY>50ZO}p61m++Mrzv^5bXO77EFhU+2;VtW8EkT{vpvPdu886 zl28#`drc|)ZP^iO2FJ%qr>djZB+pMq5Rf2u+<((ndR&e%cj6CdAoHZ}A%v~{l<Y`> znFUHYTcczupyC^-B?d&JCi<kEYC5RqyOb+i_iDWyWe}ZI*UuH+wU)!Nta_A1qyqr# zj<0|^%T_`m{TXs>VEcm~?%4;bj@T&Sm^i93p_UtufO!eq{a1F89*<6%{-|K?=c-Ei zqHNnt*>FpjCfqp>rLf^Oj|$0FGi74x#fR-Qy&Z+Jr%CWlLn*dCzO>cZY3m=dyubrs zyPf?OE=3zq4%;Z6N;*tncQlY#Pz>yW;=AFIduK#8mGw?hBu2;%Y9ig~WgZ{4T^t`_ ze(X!49N}z`?@Dpkd~<$e<gf%es!R(bee&~sEnJ1qG-&`?F`j&DJ}#9?IfcO7oX`MS zJMP}!)I6V-MPlAt5q-*W#<XGyQ)W`GXkO(XtqkM=0aUiLTtdj1^${?TB;8L}Q{R5_ z@SofpWILI3MSd2&KB7dFuPjArs#JT`v^_}pjeyR|1;i$3Nv{_c)*mM_j}+DHtxFBB z_GOpJUv`vv+N{@h<Sn{Q4F_|bDfix$(|`+O-&{ws5y4*rL{Bl`Y9Js|h=cBY95JyV zL%H5Eh4v~mM)fM|bv4xi3e@uU{Kj;el&4qg&n!ls^q5!q%iy!`5KNK5glLImx{aI< zF)rarw<zNeg6}}v9u!Q;caAs<9fYWpA%PoV3bwihIDTD3_f#>X?TvdP&8VCVEux4K zCsT&_7^v}U7($c%R&miZYSX>K2bo#vduDY*%VQXd)(eM-)=xGmaXrt>cfV5wK0r3| z4GV+@w>O?NBd%X^E4&-cGWonqnCw@+eV}YNJJ4C|#-4|p?2PEiG|y1%%8WrlEQP5` z9~Vu$Vh=Y30%D>$gcZRYvbG%Su*$fX(X>vSv<DX&$=`>TEhuxm1!gw!a_Ri9m-HLY z8!B`mlml$5u-$&*(KL7&>J-`A3M%f?CBNXk_r~jYdhYTUR8(k?#^4{26V2Z1_XKpK zXcB=jtizBw3mdWUS3!Z50L(GK!7!Y8HGVej;DGBHduTMvuPE@s+c_@#qVbe!D<5XB zp3-<pkr^$7!Bi;_(U}l-La6sEls^iY=)xpPs5wcK3~h)%&Ba}4uL(kAZ(#l#*4b5M z@!Y|5YcM4H|HqKC_z(=qe*D3}-UOjJOFi;G1<5;azFGHZ31m!uVV}P_rLl8)7!1h@ z|LrkOEodv;`)K9aji29|&fl8#-}(K;%X4PZoTlF67wc+_CnZjJn*L$ox5=Luuk;T0 zQ?U6d!;uG**)cZ%b@T4+ZwL6mT-mvr;X|v^;$A^7?nnvSy3XGa91dE2S8KEI;GkBP z7a%uJwCNxJ?VK*JS2m*NPE{>J?5zb%%%&>#`z6SETJ$>}e3v>Ss{#Usiwo1@UuzgS z*Ayjb(HqFIgeA?Vj@Zsz=J!QxKN1FZTGoy(OycBFaq|Kg5`btfX^Qfrn-~adI$gg| zQ%V5qPm0Dz#HU`<6$;LJa-z4?YD#ecCr=hTj=AmsYO{bfZ12urA=$qk<A80Jpw7gQ zUm+R2GrFx0&Q~)J^;D7LLJX+TyH738m@037ves!4Gt`K8N=8>GO7oJE2bI-@k2iol z!KkOnUfG5feDQ}g)K?kr+*;BG8%QD`_Kt$B5CET>&z8=tzqkY-0oXfs^rga7MgSq# zE$;QS;kDY-7u}G4jo8k@w7F2i)4donE{$85d}AyP?6e4#)1?8ic?JTs#P{~4KZqbm z2}Bl=(F4rXXQoP-Ux0^6(bi2{f2&P<R+;foAYwPjn)X!csfF}Eha+jJyB9Lw;LmUH zOuv(SeoQ(2CNcKj%=sw@`#U(Fi_ZI~ou9`+QAKQ_CqY66c6BTx36=FARH@uFwR%aB zh|WaXK?-KXPw~@!EM?vQl5*+`AWBbNOwQI?P8lJn^&@f&0+UUIk&1~+*=Di|vrluL ze#xPj<=TTGS!AwL(OO96GM?)ShGepN?q+Kt*`CNePcS6Ap64^Z7Lw6q^ACX`nOFYN z$hD9x=z4w#7?LgL(`5_5knEIKK{yza6%|BXUkl03Ef+Arkj$)*<+T=)B^MQ@f+5*> zVI~-o$rfdst%YRykwt}INOrxbWW1<sxrifMTrsp+j~Es`8TWbycm0fwqZY(kAfn1H zKEp(Ka&yEd&rZx_n#n>7HDlAh0ExH^QPKsJTl4@j&0!qqUKZ(fE(x)LD1mHz3Z!NT z_h2#lagsX4dE<zeS$a9dfSB<?sD_6`#(dhGE5XS)PcHdw8L$>ai<{!bKg3Av&6OiT zc*%^1A7o@0kp3iS*AVWNqpX9h+0_~L_i>p#Wl``j3(w}j+~Pj2<7jF@DD+rE2YOmL zaEgKjSL@hjieUPJ!w1HrGi7(`GMXsmItz@~MJ3wx<@vs`O}LAgZpe=_v4CeOxv1>X zI!3;4g-+K+cmQK1GFO5JU)*d`I9b`m2KXKR5;GNW?_4Pc^c^6f%$9xQgiU0`n2a4d zvWGcOXF5cZe>!6g*o-tANWWtMX#0SCh;ga|x}A};Lqust^}{B*+X_y3utIYgAk$-! zblEK{C^VfcDRhf7Ak}Kt0pcsLkW``!H4gB`pD@n|UCCs5W9(KgEG(jsygDJS3=C^) zRx+e0$R<ifiZ7(RQ(h`7-og`O6>!l`rY71K;uvs2%z$L;#IpZz*}lIrf=MQZvYY~l zmxD55i?fLQ6O~?#&!QT~QnmA#4Q<_x`PUi^G-!|O6%>G=t#2Tgz15`!oOR8H3RHDH zH+9HD!@wbk9tWz(gQ)Nu>&t;lWQ-LEo%sp~i=j|?{8AJQ1(-{_L1Z~lH6BEkTCHsZ zRpUTW+{<KDh%61NPKRlepp*&)EDyHI5l{D4+r!5WQ-L37Jdq1%^P9!FhLXa`CMB_J zV%)35ZiqM?rt}GlC0`-T0h`i*x4og<a$uN`-2?2mdjsG(;;XnOJpQ8McBqy-9?yZP zbAfp^HJxq<fdl9XnoZj`FPgP%;#hHu<p^x(Dj9<jsEN{%Kk1?vdJ_h3DWpLa$<|Wc zfF&R5vh6D9<zVcq)31a`l3Qfy4)?ME2D<~n=#+c|gx$kpIIWmTh$0QTPae-o17=qU zJ+RIbdyJ8=>xK7-p^sbrnmSwwH(bTqFusuWKxdo|9!u%8z1Je2)uq<dMXrPpfmT^k zd$$`zgNt1SpeCQx&~(xKeI592NV!E977yXxtEv@V?o=e32O}Wm_n>d*x>DS({Ul?Q zxE)(<uj}pu<Syel!BCYZ!|&Ix;5j$-zY|8Goy%vt^m8DKsqL6c3KC7%-ZD0zX(GDY zZ-A;aaX~YR)QW8e^r+p6v@7JvTb7JwS+*Z}Qw!q;kkzMv=W?HXQo{q?Z|Mj32KT7b z{X5KBEJ@95QG%QR0`8a1R<Zr^`b0JaPHx!@RCVJaR=nE^{OfiqcZS)(m>8Zw?H0WN zd8h>uV?z|uEe+ft(hX2J8=@&=ASXCD{r$xK=Ij0wYERGJ`gQ?VZo&N?2*K9hw7)=r z=yt7KzI}sW$rihNyBzYCkF~-n?-XVOJAy?p)Vo+b^rlWF<}vWwjR9qwn@_*CPrd1S zfFEE`?z%!D3iLrM%H5M8xVF9<Jr=k-_h2<TlBwIF7A|^&pN1Yh?i=P^XNZ#|s3LQp zfD;oq1@e$&=-q@1J(I!ERu^+3xy2B0nV$sSQriTVRnup&EiZdce9>j>!w=3vBVQ2m z4DO|WH*^SwnuF?(Rs~Vu{w2n6V~BF7MTf`zLl`_wU+_Tcaoa&1L;dDG{+FSJv-%Re z=KBiQROJ<L0K_A>&3**9#KrC*4OfY^er#AT)eI<|ZMJwx&}KYFk^A&dDmW@MtK3t- z@t}SH^m(+Z3=h^KHiQ*2uM#gDMf@-j3YugtK!|OG<<#aELz{J;JbW-2XH=@HK<#jT zh4XV)@6^EuD(qG5AxH~UgP-2(>A4kcyiuC@NY>X@zx=6tVDEU;vw+fP&kap*w9z0d zRUrd0OO!kD1ON6+^g|x}o7Zzi2y6!_{>kujg>Hr@8M=t<kGmx&PAq-L=BC_|6A_hY zS{akYL$3}#&E0{YD2i4q9Vb8_JSXIl2hZE1Vjt3;m097ztJI%JvA*ILpN>YKAo(@@ zc&Z>sePaHo%?kHeYrO5|%hN~4Ga6rVH+p%Qk8^*==>?4Q1QkO+aMlcjVL;`h2e|Ch zms$Bwo|YPgy@Ed>c0GToXy_D>`c>}r+3>9QrLXrGyg04+U*+{1zy!_@j5vR#NI#wk z^g#gx9HHIH<@H!6iT;y`;yzD>J|bzNRTGKM?v-ok<vqG?c5)rIO6pe%op)7(Oq30o z$-ehrkT8<lQPRbrXE{fPIzL}YQ%Slcr;wPtH2-0Tgr~l@RZz2SN;O*j&{J+VEJ;K{ zJF_&ZIS!sIY!_9yOs;>4B4}Rm3m(z&Y?hNFXXQ6Y=OPJ<NACud!`ad@+R1~qQ<Idt z1np>=@>>M|mi7<tIZ2ad5wwl>k7A@A>P=Vb^0rone@@1I-6^MT(&?*k*_{suvnmr{ z6Ju#RQ`Jk!pT<Nb2(+%vwMHR4nGIw7s!O&<WR6!^3XgQ|W#TOSs|LTknKb>Hd#_hz zpcu%s+K!yR@<T)U4|{Y3oxq|<Gc>j$@HA;A0v<@^ixH>Vx1JUKHb4q57?N>|p7X6{ z#9WwKEJC23;v7))FY9{M&)L7@FxQimx60T8r^ojb+SlbF_X6GBFzML><^9rDf~NuK zQ?=bm3pABCAp}b@RPr4C+7L?m{#LeJwHlL`cKk@zT{-Vo-vL5oqp?k<_|LaYm1-$l zgs5BlI4wj{k*;=9(NMO+UYc|yUM@HH5L$r}@PRK{D0N6-529T;Npd|+&?9%OiNq`p zIl4PuE{he1R<Kzutj@+eH~D8Pno#aq-XIF+y$@5xd(dZGa(Tb8u`D-H$qNLjKzU8w zS}q~{KAZ0uJZvzTuxf>aO134aXdJQAmdO&iTp<@{FdI_gK#=6fpfwU$cvy-J=EH8a zRH_px!mD$P8)>G=t!pt)?E5V0F_wyMN_``{w_}?L8@_q*elOaanyaEGPB6kvm3msy zw`zIZG&vEm@aD39OR1}$4a_0Y*ICE6YBxDtfn@ocwW?aLtD2Q7t-CcUq$g!PwS+qD zX`w@KMz0eKrVWORKjz+kbkxr#*Yf+S8+u*1CiOmT!)j22=#pav!k`NOvD~IFH?+?; zdU;|*{B^M7ZR(=@Ivl-3B1yt}L1;4f%usdu(rGcb2P~zMzLW}tg4CfQQD=X|8Jfyr zKO49x<I>%CCqg-nnkC{ra8c~dcN1svp&3=#F6MQ=jrpyM`v!B)tw?-%YU4)s#HoFP zZZZANrUU-^o_ywd`X~p&-lVa4AHR8dd8*ysF)-gQK7<e-8!R2*C?o#k2|x%Zewl|E zj+Osh5tckIL&|8^l~XcKTU|tad$sw;J$K<81y|0n%Wwb2CSIqJR<j_417zm94*(h` z1tt7cX4M|KM<Y(+!d#y*c2NCeiKkF+g7_EveDrLjw{ZbsRyEw7o1ou%ACXX%B@#^` zI=%T#cr;Y}S!ZI@3((wMP{@X-(PmU8cZoqyWT!ti+F%mr+;2dIB%li4Cqp9{1M|Jo zl}1@c5@^*((<Zf;9ro#lvlVjswi&7ly&42kih}bSW}#=5TJZh1TaCDJhv|oLN}LoD zvTnfk1q-2+ymru(R4DN-%g&%m&CL)Z-Y1SwCZ+9WxJ$dbe$81|4v3(p6sLXs&v9I; z54^7!-g7_=oJ{`!JIVf<RcpINF!2stDj;>oGlc~0R>7k<yTrfDD%U?}6>7sjW|jNj zW|ijOXO-&TW|hvLv&t>w*Q{dv%dFbC=Wnx0b8S||iy$QW{ywW3v=uC#$APnIbY#Z| z>4p~~fengcc~i{3wzK-)o{%aQ0<C`yHKc<BCzJG+o9u3AuWz6BcW_pPt2`5-dMmd0 zONhK<<+pgZa(&s=($Y$UO>g_?@7f4QS1nW>A4-bT58pG<DxQCF-BX8i?DWnZPm-JU zw>Y_rX8NKHr%Z(@0^ApvM)=Jm&8pSP^RpTkgf(ePl=8Dt+hUczFMaEYJr_c-v*iyp z+r#npTVGS$Zt=#CyK}#thoA6Tc)e93+SnU9Y_&Jps_H|YJd)yrk7Hp0yr>d#f4e+h z1(%f|Wj4Ci7lzyBXM^$`<$$xw68W3GWWbD1l2;7zjs1^u%3V^m<{OCp<H_z6aGoNH z6x>6a6J^52l;Q9>D>AIWZL4vQddX6^JsRs_dNF|z3GCUU`19m%B&3s(3XV=AY*Pyw z1zu7JW84&_FjrE%d>H8q6LG%G;Da}QD!^tB!`ppWEoe+|7?GrXiLIodYwRB)$`9SC zh0qjIyxcvc2*c`8YWN=3oHN5w)27wbH{w79qX_Ok_{BEOvnb_#P4YJC+A!@IBDrw5 zxNMYGMR%zTbX~kL-#%LehqdIw)t|dVdf`}#&S!8;S5uj;@W>*`ut9Lx6<yQV?R4D> z*DKxbK!E!>{j5wz@WU>Ei1mq0=T(qKI0v147Q`R+^~yJfT(y)8{<hGeiKS>r{{FVe zy~=DiLc*!ZR_+1^y4Abddx_qsxQ(o5n&5-CL&&6q>3a!(xDORNyssM^(>=_ay>f-` z&g*of*VTA=;r!9mna8b4E+vD%Q>;&PE?8elbf>_oOu!w63D<XsLmv|Y9xcAP(7SiM znEnHVjb+cT-h0?D{=2mj96!Se6es>s&oL8kemU_m5_{2Qn*bPpniyBVe}jF6lU=e+ zcto0Z%R~hNuh#TZlEC+4A`^121-x*((@1^kXwp!1ZY+>$6KBkw97w_XFh!;H4!^67 zK>wVhJV$zgp}0QL*HMPAzt2`VFHO-f;NDi&(EGd7kv9*xxy^JxRn`QjaaD20z7sIB z^NL5=9FZw52Ia!HzQ&iu!mpl`X2zA8K35hSLs}1hDheTf1vGP2#BUefv)1IUIYOZ5 zI<7dI8>hRQk8tAIh-Wcau~Qt&nxKPQr8rWe{fS2jg$Y)-N9d)CmKw@8cEQ!@hvmem z6v+5?C%6=~;~uUm9JS&IPj|YMZj@yAyM=`G(JXMrsYmX2k&}ueDXUhnl#j78x1~xo zmj$}W_4Dls5&c^gQy*B@_=@eNW-B+D_E}-GhMy96fQ|ZBc6_>;LnbM%OdJYT8&Y$& z<PN2!+h=p`4=P4MC5sEc=IWrTwL{~?0y#mNP3eB<J<j)XJo#`9iVbSeJ?}ujpH7>2 z&DPw_Oi@xsS~a1@P>X>3=ScgHrvPri2|yX*|DU&ewUah+aG{aZ+VpeGl>7^1+465Y ze<^XBmiNOKOizBC7;4e5!6bA#Uv{hDr&c<}XzvHNd%N-!M7%c1^wLr;dtO}I?gj5c zoU6G4n6cx%FmjebM<Pv*yl4wCi&(4L55l8rDr%|J_=6G(N3<j8yb}(cVmeMh3KJ$0 z7mKXft-!q64JzA$Uav}BJ#a7kN0dqXP$KJg;U=9{0Oo`e!yXA4dQ71O-NEZdM<~bN zg^$*miLJkVa{d5cqUZj$aQz}AFX@C%1Gyrr;<-fFm`w%A{HT~&Rf8}~HEHkzuLCc6 z@X^oX2M!NxI-Jj8#5YH}1li@62_VuQdnq6Q*KSPN{#cOg`z)!jkn#k@?YKmxqq1%O zlL<K4=~u^O)VL{DzB9;@gH1LXY=qL<cWJaSKaPpE=Q0s^;``@fw*%KH`(QoTN>M}+ zttspN<-*qom0sjHoGDn|-3?Pvv$>lNx8mAs`8qN7F>RBZ>}7U#0@()%R1PDP6-b4M z`}UE$VKP+BOHp>uu6t!Usw_`tBlA$b(y6&`939)e04a4H;)e>woh6}(>%s>O?2BXl zkdrXielA*LZH~dx0&_J=!}Euw%PQ6DL~>wOA8ZH_Awoi`%CWHd=itv4P)AteRx&)& zfyS_5daKP8R9mb_Z%`^^jX25e?hd?gs=g@bnExNY8`q1VHM7sFAk+Z43#s5wdrCGD zyu+tLSDKy0y@Of<WTZUEOp$%9%${3$6|%CmI#h$fnke#@7m2I;FALlwqNWwEOfWW~ zTBSYcchyU5nQ?IX>jeN;&UY)P+&(^_<LKVmZF_TI<?@RhxlvrAN{Oa>Z)Bxj!^xcz z)6Qy2vtzv&CA1TO)Xt%P2^{Fy4bJBpd}}SvxPOQw=FlD;c%;z;T%OVCglz<sm78<p zrr)B~uJGxVNNKVMty^@jRL_ulM1*Ki$&qJ5?vQnu;~vAOC#utpj}9KHr=5pj)6Wo; z1f`o^<X)-@k9zffmlNcG*t{CjW;K4u`q4Aex*~cmf%PVF$Nq2DiT;f?Z?Y1A%MGpl z8-H)lTRb=NuA^@FBc;h1M^`RqL6azizNR5k|M5Ut2K4UdBXIN#@$g+8_=+jg>iE9K zKc<r4(Lv5%$ET(#eC9wpw$^PMp)hJX%Dd_EY$ZbFrT|Jv|9bJnA!;&NEj2Jl=OXmg zoUEIoR!r{&HbRXG!O}TUohEzb+T3DP01|!mUYug|CJW`UNtWj7fF!3%Z~Q@Ev{<@t z;<b0GtSn7u<sd==>KlWc3l+uBi1CF#HR9)1dl61Vn-X;rOocR=vU7DnoQ%7rIwVMa zUpdJt83nLJn9{N={yC5Y-R_g5TMqi_YaOo*D>y(6ddd{yO&izye#s<gWlPAj6Zd=e zDh)(DJV!9utUboHKg}w)F^zLzC5xVCm-xaAl90ixJ%r7YZ<lm=fa*tbHs@4osLWiJ zyWGb(bnR~r#1C22u542RD$Rh#XBLlTt1Auq*@k=_J|H>(OK5U1OpePvB=e+TP>O(D zC1vdI19W)lM-49pDod~c#0Jweub<@)+NpCF`kE<s`#Y8C#W_}0=KrF^_>Zi*|9JwB z%lNlS42e1?$A5bQ|8JET|JMop-yzHY%?bS9lo<c!1is-vL6*1wH%g5Eg;n=gCC2}R zEI+ss-f{2MKOoE7Uw<uLygBn1$a2Qj=;`hMuOZ9ChfRr_@Bcc1|Id(Rf0ws%PdcCy z0o=nXpTu>^;Kq*Dr>seV3?5R3J2IZYy*cOAk#AuhAt6vH95hCu9OCjU35h8`PfMl@ zWV8Vy#S<+0Os{BggMGo}H=eqiy)@VRq29>Fm!G$@=L}{X1GR2+sCn^LxGG!h$VSSP z<d1kLOJ@EM4EkSus{Y51TP!3MI0L2p`KtxmQXQA@zZ}#2=`_fI?y6s1yxgDqzckL) zK5m~}+PYV?0hkh%R{v$7`U}}+{BOrJjW0Xs|1eO!v`z7~2}+Qo$o#`V^_RxkU!4ZO z8fX0qeGZ5_CUGdw|6ri{<uv#c4Xbld>E`^0JZX0%j?DQx8ulMfgTFP-K&Qb!4OClJ zfQN2KH0@68w-4hx)&Y#4(jeL9pN+HWNq;-|%9rW=;0pqjMBGtFMmP#bp(HD=9n)ym z)PjvO!{mb!x|A=>ZI6F{u9yg)hh%CU4sqI_1i%d+5fm^0fM1@^QBwh0XQuvi8fYI{ zs*G8>i*wo*^Fx(+>gD8MlGTr<9JS5%0TF)jz|_c2#jPR?ie4K1$xgkk?thYP{8Is( z<^jNd^owt-S4|ZI4vnP7XN;vdt6S_uF&L^p=HqMf_>D!SmtHV~_5-e_6?SEE&?bB9 zQuxaB<)(h2_NRvTLqh{~6=6s~g-;^QL_+|Zcn_gkHx!ozrBD=ew)j>7!~?}zo6Q?) zbds0{uKOm!!nTtVft3iw#Fy`v*8`^~0`(eyp<y*KsNYWmGr&X1iNxh#z}(b^dv$b3 zo`02(;JhQdTLJH5@0om`&3mkutp)8OWQkeKoKk^z6g+E2S!9wJD2vigS|cWz9v`Y< z?-@{aH<PCY2gCRB<5vXl*BWP+2i8L=2N%mR6Q(*U;p@HSDiR!n&jj%FcCMQTl4L^c zr2EvHno4GKm*EiEsIGF%@rB;1@Eb>mA6ga>WEo;b4|A#}LOSFC$fD+u>+>IQ;UQ(f zU9(85<WOaI{bj3PWSjHbO*T(75X2z7ua8rVuX;XlHcV3xWk_D<fHk?&rEL_w3l?Ah zh&^JFWw<$Q$(;M@szsc`%%`BF_2T=kjB<O9EyQD>Tdv4z;-4KUURBv~Xz_Y>plDOQ zRi7&FycK+gU59~>oqTi$u6qssZd@ZJ__VOgxpU6sZOX~Ff&u+IWnp2x*DwKn4=-Z2 z3%Vs#wo_pEJxO{a;}1`7%2AS2=$07XJ?&)i28Lf@V7AcH_ImMb)^~mpRh!bI*d#-m zZ^P>VwVlqTgEs9AED`#VVGsBWa?a<d;yQws9l$1*wEAa!n0l+k+g3I!9Bxy#pYM&c z?!nbObG&-$`iXOE2CC93Z92|(pBoH-awl2GexT^H6joNTW2pq9NA9+0;jO~la@Q$n zh`ku={7(o*5$AG7Sxp8Zqt4hn+8k0d69?o!ZHqSTLC9ZwEk59PD;n5n59ixiE0o{u zJ$*unwrQ)i=212HC<LFDoKQODq`%p@JaYb8(W{z4kZcoXv-+lAS*zfZ=bL-p*an#S zEUKPVo@KoHMg@cSm1r_6&wK)*h(#`!+V7sRu6%-n(zDd)O&ixIlgbzk>%>le(b>fp z*C=c7m+*TKuSnb8ukODt8NAVP)`M{g&l9d(xb+o8!%m;w^HzB0{>GlnXLZkYc#L76 z1<``HqJ7$XHe0CNtZ?M1)Ff5`7!jinC#5%Po+&|>HZErwdx!Xg<DvaSgM+K#=*;Hk zl;r%bT+WN&-HSXehU@%WkHi~El1@kZS`Z#F^F|Yr-<;Q+1{RlX7?Mzk*#X<Mfc>YG zw&EE)hT&7D{#%hOl_1fkr%dl5OZ83qxdZ+WGv#Ljb|lXFriR3PaXPxI?%SA+o=Qb) z3AAazFkP*Wf4X_!@vk3X(^@9GRX*1y?+9^2+UqIupsrXox!Waslj0Y?rU#DV@U6uz zhvG6&i#_F;{ZW-9E=3z(o0R|+h@R^Fc6?!Ga^Gp%E=S==Q{s<KmBVTNRz(kCO0*WO z-M^oz_dosM661H|ZTJFrcV15OAG;b(UAk;)<|b~($<S`a39OrUwAI6SJXx(XBM<a! zC}oOM@1qld`;p|XmQ5R*J-$;^l?<s($377QFVyi~Eig@PAQwdfn|B53%QkJ*09I1# zHhb5HY_Td{5usGLDU+N}M@+@m-J8UGaw)ndZa=)uzx*jY?$mWk-yNgAq)BBX;B<14 z77xEkdOcckp9E!C)3J82TyNbdRA1>Bw>Hx@HAo}<mG?a_{R<1KvQLNib6-SSZ8~-} z``QD?Eu8A1UCN{r%ao-2-}@XC)wG<8wh_#mf~rp4+9j-1%4{j|_p4id*MpZ0mknNd zjx;i5AM~ny5u49LZV{AYVrJsYr*aWFZb>Njr54Ob97@@gDKE3pGf<uOZ2YOtkRB}< zQzGtXd`lm28bp{!C~sF&dm65efwx*ND4Xq1UswKwsY;5fvv@M}oJpJ8g%9;lez-g~ zcrGsy4xdIwHJjJj%Ht2px1V%FdcXU+ez)<lV%Liv;Pfo#ulQzYw)9)@RM?&UoyBjC z)%F1|8l69xAKU5sGEK0f{q|x^#fcLG#?SDEt%qU1|E^GnnYhu~Ft@RMnit>;+na+i ziqv>jc4HUh`)KgdGaG!M(I9x_IyY90ehxgQF%#ZcI^*G&vAfmhuDsH<-d(l_XBnei zH4irrpII|d`LoS<OfeCo+Et?2`%1&QM+Fb(Yc6ZNI-`56<NW9O`h7n>TJMdFkUOAU zdKhe+Vb5;L_$l}yn4WFfZt>#zm4$Y&ad!N?#l*DUV%L)&pTi$nyj}zwXLCRPIES_5 zBlVYhB!3DLcUrz#cXg?M)6XxN=Pjo+PAsi^5UpLe%tcbk(1&Ml&vAq|XY6*aJic&y zzSjEI$6b$Bp5D0qtts}_?BSi?$6wxF=)805^T|iwUwyy5$Q9la#P3|4l)tkyXnp%@ z@YTp`Pb`g<iOl&+pn>XNoCbfAZ3cG!{Q5r(R3O>r!FuTQ;Vr1g7k`m$=7p92;xs@N z#(dj++OHt?<vOSWAA&Yz{<CogqG2Oq#3CYvR8>rJjIsbrCc_QMPzBmK;dACc4OF0; zp?1BhXUv99s1psDO+p8g;Yv+$#=i_yf1+V$&cr+9$B(Ro%5mevDPmzHcz__@#+2n! z8@sVH_TX5;pJW^O3`^U_)=V?OBOt+n6Q>}6?&Kucq7t5HFjdK*(kjMo35y?0QU;g= z6!WZU3@#bOL?%fQ6OWGl**NQD2GkOGjxh=hs4X=iOpqu=hq?_yj7SLUTEs?L5*dJN z@*yq&axXh|bRE<LCqie7*zh3{o=_72W(*)*z?&Ta=|PTD0APC=px+Fd5Wq~=jJ-!p zc?dcU0uply3B2cV%IuWmrcfb2<*6eCPlj73!-q_v(j3$*8Py12=g8O_IN0NL;4hD2 zGXQpe5Yvc*f#6&+O=5&5F~`8fv&HZ1M%m9mqPP<Crr2jVk+(CkGtbi>6Mvy$>tdd0 z;?8HsD$wB8g)jwnvN@5tiHEe-MDOH6Hc(@vap*Y!Gr&hiktCLBXgPM0F<0V-kc^@; zkT+=H-wjm)V0-|ZN<{@f5v2o|i6$t{6g9_{NCl7?0A_{@kC-_pL}pD~%9H+eOp_6j zrOeJ6nTGgN#KIXOx;W;tMuI9C?k|Yn2V`ml#z^x}i!=!`83I;}1SAPfTnxxURp16< z`H&$1drLF-87*yui?N{tABb={9GnkeoCN?#Z>5v5Ej%`A5Nxy+S9uk0ipWw0h{qyD z!f`0;LWCgzYBQh?Jdsus+MNWG!ojln@V#a+GC1@i4K2yZ&>@?X*|E@OP<sg5zz|&k zkTRs)eq2mHfHB|!7syyD4@jV6bEtr%kPMOFLO_b}=Llv+VDaoY*f?XX(~5ITMg?;r zhNM)ADcmYK-?b@!c@U~@mZ=knJx7D|2TF{|#(+%WY6fQpz{~>J2r|TWS&X?PHZ~3v zlCd5Fppl=G--K4_LZi^|J7&yJ%VpYK6}qCaU%XOO1rYxx)Os#NiUM<`W@j_t!Q=Tr zRQ7~v4CsMG7IW$cCFTTT7ij1V5<7wl0b6Wfg>5et(!$FwD5{>INwkes99XHQ$>lF- z;K=4s|0a=*)O<YmLNFOB#b@A9Fi22A7KI}sdLH#LQ$bJ;H!DMO(F=kqH#sP=xYXlg zInx_T#=+8r!?jwnHEg-M?4bC=D_Gg_xU?n_CNV*kS4^ZO+i8MV<mlZb&gpHS*rQa5 z0UhFEmQ10K&xp^FYWcKsmU;CY9q~F6o52H^#AF|*EG_do5Dk0DtB#xs@#dj_YQ=1% zArEk}7R>6i*@$q{sxw{C$e>aI1tHN?M5ml@4Z56AUk-AfWpMBru0&BCM2=kQOlw#} z!^$!AQ)5RKvHXB+V-7^A3EEhfRIw88Pl9o-XD>49U!-C_*Fq9-`=Zz)7dW{sqSbto zI8#$xwySh6A3~&}cFLkHoGWh7D=_HzUhk{gH?H}c)_nEK2jz*@OK@F5LyV9Df$5+T z7m@>`V&0*!QS8PcM%m-N(2^z-VkIh{i=lHMWJb<%r`QAl!{X306ogIy8|8dnK$D1~ zUDN$Vwt05uYR?#S6RtoV%^Hmo@f2W{si`kIpn5hj50+~wMer6PoJi@=AwxHCYezb2 zwd&GJG-4E*pdJA7=1l65@11Om_M;XtT4<&+8Fobr-EqBzmKLMYRR<D@A|moQVqKBM z?Da+Gvu<=XY`>Zl9HT+Xc4uE`*X(FKd!zHh4ZV-o{5~=j1Xv~7jV_Cuefw@sE_RJS zhuQ?)y#Mm%!{FqbX;&Xv+#20?%Z+#|HQ?5Z8@Dc}-JJM-i@&_R{k8n<seQM<u2iV6 zT>g0D_Uy~spTFN0$lv*Dac6$torSY^mM+{`xp8Op<(;43?*Iy1D7Z-R;fh3aQLA^9 z0J!*4v<m>Y!F3ZXyQO@(Wum)@CEap2yA>w7l~%h+3Oy>8J!(EZ>d`%#B|X|Vdvqsy z^j3Sw3cVY|!2@(I)EA;jgPGs#wVdePvf4{g=(Dx#v-jz9i0*SL>DzX*&t;;|b+wPG zaM#`Pu7}UvJ<)ePOYVB>-qqx7(D8*x<N6O-_8;--KN{U1P|_cCvp-~_|M+S@U11>1 za^RHDKzQ^(M9BaMw27V=IJY{$P#BDyy{nD?udXGq;0BTo{c{7k5!EU<&%g8k+`0Li z`cU4k)+gm(Iya^#yL`G^E<OCGLB`1<-?PgIj0t|J58JeNU_4vA|JJ$by*)~4Z}?m1 zW+A|<<=Ee1g2WR;uV39;1K>K$1p$AGs*OcmLG|I=f#`L1YXDro`fUB+HTB{B`(<{Z z`mk7KW&{*fzmJY;`}Dj?tRr&=s6K3KIRT2Q_XT}^4aNkImd~ykWSnJou7PP%?p@q| z@u#IZD5{R%_vqoRv$May?oG2?FL4e8)8rvB_K$AIOy}vox_40+fk^$n_~FxU2RrQ_ zNw0zc-2F16074R`Ud!=z8KqNkVh)<ho`3Dv{l`G&KYjrRNe50s&Hk3u{1>&S)KPE| z+)dDQ|DUy|KNll^mH0U2Ea-;foRaZ>{uBHg2Jv5$nxRA>Oc4055+5an&2ZZrtap1P zx{0CxaE1HbN&FNf(XGrvVshLXG!3K?>BLKWeg5tW?|2ZxGkA)VvnP2~`3?FH%87c3 z!Q`}&+WhSJV3tk$-1Hh7==Pc8887yPUZosL%2#mCezqjk+tLZGkB&03|AvE0*6d%j zt-Iv<%N1V!Xk)<Ji@)Pvgii0rs5X%h5pQA~ylF~R-Ohx}1Zp=Va7;24vFum7W}oyN z^L3w0jAMimyJZh6+!Vm$HnHeEyA|kETeMsRX*WV{aF7|NG=|DU%0w`FPzJ8=Y!EV< zR7Sc-Adr+mjM97uGKifw978C}Kt*j&?NvFhcVz$~rnBv9Pi+5w<~GBj+#Yy<a$gf# zDPOI{Sv*VaNvcG+4Sq;(Na4w_^p;FMM7o;QgVu0aomR`;<DmVaDz`_b=kyq4u;)xT z@i7#kpV(O`e%i@4O;So%GY^@{g`GEg#udh6LT9^sGmR$hAAWFUkuxGIemyKF-RO$U zn@SM2*ehYNz&E()asGhkhc)};vD2sghHVsETixv73auPJf4cz4YuRj5n*$yS+;SZ$ zYBe*{*np0MTRh`(;pVgC=AJ9$2*6IwmrIe8n&9NH&etU1QmyC>V!K=24g{~c!f!r3 z2XiB__bYM4%A|~<6Az&s8f?<kyas`IwVh7lc?NT=$CUG;AtSS}#fLrJq7$AiP~;7c zWbZBoPii+DE5#eMiZVj(Mq%mD=KE5?4WNB;-@VZMT^AoGihGrOk}n8rnC%mj3*g#z z5zYc|^NBH>owzZFlVo+lNJu}SL*zCEqZRJ=U@qE2nU1Qt_FwN=rn=B8pW-(!SGDf< z2iZXK=XT%@B{w{d6VW$?9FTuCKFLB^1c{!UpmJ1o%v<L!V6_Qw$W9%ZRUHXYVk>kf z&PoRQ(6X%(7Kz9?c+9M-#8Lmp{I$p}?EULYng@|UW(qvQi3<iR1~-qZNiCUFB(Hpw z4Ef{pt$lN61-*OuSB&YSI6L%Cot|h9X^z4(y}bq>WkCk9TKcywA{=~)&8eNfE@HE| zWTZWgqQv8ht1(6D8vT!tfX}W?>8bwR>CDYJMFDFa3*FkI6xb>I)Fc!uG`<?PE3m-I z^h*PLP2v-M4=VhzscmaR`DwtLsd$r7NW8@f$)+)P2ZSe}?a2-sYIlpi>#&Ugm;nMt zT$CvT8aPS~11jX+>2is6biU|Z;a0Y&bl)0-cz^fEG$#&X<YX&qT>BWMPDIJyO%9nh z-?jTiwT?E21J~)a)huK{r20>s(~SnyqpIbIt%sEE$=jf5Ks-LT!mCo(&*M$2uH_gB zRo_>s>u+}Nz9kT%y2L=;M{JU#GT2g1c&SHCWOF%Z{48&`Vc1=arY8xtz*gn45}96O zswl8tU_9F`aac2W-Ewjt9Q;T<u9oCA<K$|%hi7le=~WV-Hf)@B-nstcm#AGu%)v68 z5N;8mjOsmNd!9Gtpv~$b4lN~YxI&FH^@U<=we6L~5lELlF4cw)zd+4`YtrMWC%fSq zCe3J<kV9^%#BBL;Uh-D_r806x;QZ$yZfyz4XOjRL5w4xG3H%wTzfTl78XpI8K`kXU zGZ7Vi5F@#5uqsGBvfr!??fI>K&qjV!zKQGZq4~?STf`kHrqYjEDHo@+yHE7|vQO$B z-k_P~N`c9U&o{2Ifm#TA8;p*wv4LpcwL$x2dlTzjFzj6v=n8+vIQ)a5w?PLw>>Yls zurcJQ{^jw9VGAvwebRrc*o()-?X9&N8iRJ;crkiyq3ue>v0#6(eJ_N=?d_en8jl~l z_i|z(yyLcn9zE&%%QvFWJNvAzgt?`$0deki2;<7Bix#hD+!wo^Jve^4BW?fZppF~- zA6Fu7ZGSDuKXdc_4*jU-XJ0SWKfg5_b2a+y_Jd0=&fH#X)IYa)`M00%7w@bhnqpxt ze2Ba!_oW2an!J?_plHBf?34fdVnnGq4*O<;2(p1pAFjE=--0(f0~E|P_F>Dz@uQ}_ z5P%V%w8jQn9-?Mm%e@5JCwFxYBFwHO<hU?4%#en#?Z4PSh8LFa2ORyHeJuT*$iYJ4 zz33)K>y_?|4FCZ6y0(-p-k;v`efd$y!<Hm815oIQBzb3&OWxhj)X+WjaDoIagn+K_ zeJdk{uA87J;0-X}EeFRjIQyalm}+tl=Vlx$k#v8!DRcz<e_65N=9I<T<>B@Nn^=k^ zM-J#jjym6Nsok_=_7La_Ka62u8YWr$&Jcl^893zVgE#I%yL$kMqDcG!-;-oEbfxU1 zp6z~L+nxK6J1IS_a|!@l7b4+GXEyZS41{xRkU&#M)m+Ijl~E=NPB*!RbQQ$OulAk! z{H<e7BJ-%w`*8$jp;+?3WU_`2k8p85u`y-}7*&3Hxqq(q4;Pl%a~nQRC<3Ug;FEps z7d=GrjUf$R!a~=X1Mp5{%lipr_<b`RFm_t;>zA;zW09lCon0dZ2k0gG<=EufcuY?N z%xIn|pGJqu<#PfQb(w(qj2-EA=E=qrrO!}wD75EwQr($SERzy<<M8b-?`sq!el#UX z!WrPXhlQ;EL3^G?!`E|D@rp4scJ&CM4}2<Ko=JhNKkyhEJow_v4~jkM{X|OnwCX6& z#8QPPm^sIn|KPG#d-~1ao>3{;Im0qOqz7y{rLvAs-l}Jg7Yl=NFcX7u#xBh|(UP>q z8x=oJW--3KI;lE>5drX><!6IUp$Z2bez44L2NzGn@CNHlg=Ga?iH8L~f)qXQD3k85 zI1f|mRX6%g^7F}Pi`PomT-(F|9{S1j*@sKv{@baMUHwsO3}REiVG+zuz7K5xB<6-s zkPxOwW`jCnhKK&B4wy55UK1dhe708xuopy`kpPrHw3!sN={fpqBJfNg>O_ukN(8~F zz-2o2$8+p;fnU!a<P6zAvndwN!_GKH=uD%wC7xVnV}}R)SSEnpB78X?J3|WM^RTni zVN30i$uyu{1eoKq))z8B25~^=;gKW^W|6Kn08H>g9!dM&8NdYKPCfp{1aPR!<YQWw zV0;n+-+{{4h>=M0=OxA<I{m^IeclVD0KKO8&_Set6g9hUKZ=KK=AB6xK;j*NI)}3W z2bM|lH$D@ViNtu$umC}TJpkw>olawjrLo2Ar<s9;X<eOZI*C9jfT`SkdVBvFbFPGk zQ^aY3s4bu7HyFg^N=&H-KY1Q<O(qVaff!3lcI70$a172M0#`Yyd>NE|!5Jowet+z^ zgH!ye&afC#7-tO2xdgLEVlo-1Wd6z8fP@N%NXT?5KslMXnQgxr+c}s9ww*-leA#1R zd`{d{f6!g0gt&#Xd^-E(I#kQvV0(e+VO(f3O%#HR7H1@H2QVAF&KR`^qg8{h?MbND z4D-!D_Q}aNVKMWXQ06@6c`U_0Sg+%JD{eoZo7&97ULA`)&4_!i9{Z}34c49lOiySg zqe4t003c~V(^uvL)2Sm#MKcKCMmw$po}qx3g)x8tJ~7D7&;%w;PdwTHEYL*XY)<`= zB$5`9bFnaJ>ix-9jocsfu&pQzCO<(KkbAZ>^G^Sn`=~sy_7sRZDqetye}0@95vo;y zSceXA?oXN-JoBUj{@6bwe>?|5j~O4x*BJ_Wc`60#0RG{TkNpeYyw7$T!<wd?jP@!_ zj`ZJ23mebJ)@uS2+*IHLG;tl{j7aznbkW1*5}0G$|6%XF-<s_6uH7qz6d;8nB2q%H zYDA@@0THl41f&RR5TuA;q<53hduSS}0i`2^-ZfZgQi25#P-8<-)BqN&?4b9|Gc$XR z_kH%Uf4%>SEBSoSwbn`HQ1w}eS$aN%Lvv$7{Q5(JSb4N~z;cZVnb0q`^-TP3evzqi zh6<pau)*8)Vn)8Yq^U&(v?3NS`389V7_edn$>GPpdUaG~N4AB1Cc>>qDeSzYSxVe8 z0;pH<PWl?<MTDo*F&A|&b2>_-1--6F#+Wn-dJ*HL8A99j{M1ziPF8t2SVT^+1SdGi z#R^Cb1==lvxYtJ;OAKNs6iN0)m6o3ccOaI_HJcw{)&@gHEE5V|C+QEOt=iqUe(|UB zyh0EK^<0v^Bw6!Ia-&Y*u1gpvg0IZ6a*sEjeD17IfXX;hR$9F!7)37nuCejJr+8p1 zmjq>1h?slrDz8{<OA9y_Q?u!+Y53)v9WfKU)5B|1X>)TfS_8Qz$AXsP0}52m6i86x zR4R0*&IOUrH3paSB|ctK$HVkox9<0y_N=b`=G$EE6|8YKonEps7^SP`lkm+yrIXR3 z;c6n~VbaMs-{Dh#pcXrqg`8wu?W`R>;IXyissRk}BB4?^{+S*Hv1i=HJu1z(2;+eo zwa>LmpKGP2YxxqNg9$XE!?i~hC9R#;R^WB>za>60eGEZ|x(~-(U!M6b@#%`<e7iDo zv<}3V_(aq}3a&Z9jt9)Mu-{ptn;XOp8zh_?BqJK63L2!l8f0f0aNipgHa996HmW!` zszo$v6f|met?PU6-y5|zH|;cR(mCebq-WS9*hhlMJE`$7dp0){44X}z`Ldp7^MYo} zuI2+X&4<1>TWxM38n)Otx7bCr*cY@ocC{RvX>s}9a$<8U$*}d5bE|tqt4BerS6Azq znN~+lC)oe~DFF6+y2Sgh<sE(lXMNv@x>w%s-kBUOejvX=a!q`-q5Y;Q*jVC--KwO& zlBJu%{?eUJHm8TOw>jT*@3^Nt!r0|GJzLdOF??A~*>cKDI3A9PtCh(f=*?(8x$D<a z!2i|IjhZz|YP;0G<Ocuk3jTRT;r}}R!GDObc}e5fHvaEdu(23Sg#F)DwxoYs$hAL9 zj|D-68T@$QpYf014-u6Ax{!NTk8%^p*)f(Dq3Z{X=C40Qbp9Uys5x<bN_+M?Kj;YH z3O*eNhl*fv%$e2?Pygf<^v+Bow!cj~%*5!~x_RAgLE$*v$}MmJmsNi<#0*GXAOBci z$i3xeT_KILOnn)ax6&|~aXiG&%%k2Kg>$%J@JQev8G%P76~7m9nPh+hbL3|PsLmem zWbAJ38G5KJ7qw_44}jA@-p540`P%aIxaRYR3dccu&l1tdQ5akFXQ1e_m_H^SQ5Brr z&g+#Mfka9SB{ow&gnoSZA?Uf-G!nZxNyYyP#MWX$;#qj};O9IB^G;u0plp1SM}Ckr zgG49yslP6~8Rc>M`0q@>slI;q^-KVe?f>Y}rtD~aZ(;%ni#r`<H`MwhH-(YN&NO>@ z6Kzn0kXK0x(z=<hh``;nQr$|ff+)<Mokoht_^n+^QG^Oo)d1^uZ>6H{&u`w=C%VS7 zSwYXrA-Z<&JvRC&z9}zk3_WhCb!B8U$hB0bTZckfBpjez4IVF#x$u*curW)eaYshd zlmM5Ov=X@SL#KgGct*%#;EXkH2!x9ZQ31Cr0A4TK6<NPcJhJI`QMxs^O)0sNfu}|^ zCjzsE6*hvoW?O6gAy%pfMd>Mh>B60l+O1eaBMJxo4pQ!>GeOG*OFaUYgMXF8Py)a2 zvy9!PBHCja`pn?j@n|sDYitbh(G3GKU{pdtpJ#Wdfl{=#Z-4lBgSRj63n}eahj>54 z<1gf1V^U_jt07W&xAI$}k>r>GQ7`OTi8c_F>Jo6bRVOW8arThWWboLMiJ9CyPu?TT zX`Tbut;bP!oY*9xL?sLf5Sl}ZUh>Mqy(n(aQ=uON0uutO(u>Xlc7mjb6Ss56jO|5b zn(~|F?`6Eaf5*P`QD|#k>kMCI+a0P)+iS*11ycY$t62S_8;iJ7nS1`@5{bJGN>r<c zHU?$gZR>|A6e)7&DQd3`<gOM1^|!6-)Q=;$UTt5=u|i&AEt6qtXTC~a^h2-{qV;Zu z!){F*T|b>1?Q*~nQ3+9y5D|iOV61;-g75KiYQl{_@J&3=yn#C?kd>B+)=RNV5)Sad zf%<(9<xkoIamLf~H>IBXoBmjPZpxCc_TBNx`GJR-&SogL)R61wup7IyW6W%e#5r(I zQtQAz=)Mst0LM0(TDs=$NOq=jpG)+L)x3BnOzyNPSzpNQ!z-VYbdLQopH<<&bdB9< zcTd<@Jn?AdS!c7*eSx(fZ#}XENed$~`f<pCS4s`IlDj8uYcKUhethP9-Zh!x;;?^< zm54~?p;vM><%+eLM}VSvc$#1^M)jk4=-hL+M^7ACuO2S(O*|ea88ko@`rK8w`Cdcg z#ySfH5<SwW{CV?Us2?dIvwYQFrrFF){s~s+67;d?_%rcGQ@6xVPCp4AIyzL@ps2%6 z;cOh~5Pr8>x98`;6ULA1wYzsZ&Xbgl7<j(QmJ|&uHed=+Bto=y$7zzsZa-Tc(k(c{ zH&N{QAtCbF%<y$&_O_y?ryeJ$>47>!vK_V+=u>%wsXKLY_YKuJr4vJ8>=(`rk>yk` zyE4C5{+EApvr8lr6!Eej69o=e+lZ(z58m;(GTbZ*{-}fZGz|cnHa)#<=6z(${lNt( zXHoFha{a3sg4roz#eia<O<?r7G8J&%!Ht({B3wo;<dq(In04Mp8_X?MKK3+mAot+u zTwkDvDgy4bg$s-ZRngPV)*~iv5?IOZU&IJF^NT`e!e?|Md5>@qBK%k$Sf+V-F_?3H z1Yn&xB~F_f^e-u^S>snHF58y2n8SAj(6(DQELv!{Hg}ko9Xa#4K?-V{pAqR;McZl0 z?pda$&q*Po4Cbvu4n2?wJY;L=d(2H)nI8`Xdz%Fo9Cb5%Am056gi40kNz}FEDSxD5 zA}jaGeIv<(PRk$lm#2w8uZb~$nj);Y=1O8gn<QT)wQbe&MAHmiepYVz1Nz5Jm9R}7 zhmdBtT5*k8gr#jakcXCTuoN9hCTv6B4#`bQblP&STW@rGhR2J%rL9&G0S)6F&o>?T zBwnv$Z)5wUc#!1l`tSgl(>o7LV0^G`>X8kiUK7yft#ZOcGg7vhFOV-gm7F3hA2#Gq z3QHf6T3AyLZ1AO*iN5SUTY+{s$V<E*X@9;iPrY&6L;xdht5s7;)S?ZwPVCsLcMCC8 z5;-3Da(M25bG}3T`@3ni4T4q?pBvhOmM@1HX$e()y;o_~QjK|WLwcSqa5;|{^W{{9 zZT+{2_R*FT%|?5UjUAh0qgz=*FT{I4=Iw2jZEd_Xa+ZDqwuAHJV)K>5@4TJ6rl+pA zwl<Bt^Nr}5;r?oEzjgTi`GT(5`Q2@u_eb6bb#*=FMYnaoIQ$`Ort8Tne<62e<U@$u zcZeLJ7Xh{6Q8#yU5qsKiijDH(47;CUFSOrQv|37X?tU(LqrGp(=u%ol_Y2%w`v89- zH?yGorP{iQ$98l%x2yXV{;3{&E%RDTED5SN)-k%CSNQ(pH38GfNwE4@y7}k4<@y!O z&np=ITp(t2KB%zzw4PUR^bALc`>)hStmhTFruwZuHx~Rc@iblk6dPzfFVCgGC#=47 z&is5II@a}Mef;A~_d7&b*VtYrNK)7YrpTo{{g?5N0(5A>S|Lx9K$B6DPueBi3rW7* z{SOmQrEd5ul)`GE+liHCdJLAs4jYTv{i%Jd=Y7c7_a{w7Zw)W>$ecPCdpm$DU|sq1 zwR8PSM+We*<f;DrE?me$0`7f4M#RVCWBjH&<?Hoz6VG~Hp+<I9|1}^Oi;vV7zYJDo zhs}E91V(*I1i1X)Qz93n!hR<Bqar|_1aSr6-dLzCH&U4d!4n~5HdGo5Ark~>{UAJ9 zAe1bi$%>kr{B7b%46kv(p4$jsw1`w>f|l9>#Ic~g>@Z6<RgnlvW}{;`f;>ECg(b9| z93amEcTvzheC#4ea61<y4?rexs0ln~9*-C#*~VeRWts3<eC!Gd<%)}u|6}5*3|3Ub z9`6U4^E;Ak(9?~P{<@GTc32h<Doq3%I)F0q7%o{jnhC$hzfG8+F$c&jODG0_hq8n| zvxMZiAUuHPtuYaC%&pe|IG2sm#D>J+F|$krnS<a`(1*B@u6oH=9h1uuL2j#<<NxIH zxRB!(q3c|p9p=oV`40sACzmG&taEw%x|CFwF3ba{X<jI#8fp;>g;Qcom>?4X&80&z zOg_hlui%ATLX+23wxP*YdMTbHIF%jdgoB)~;B!2vFF_~^C!kFLZO0+4aLM|fpiDC6 zBAzb<icx?-j#q%BSpNd$If;Gbfd2yJ|H0&q+tasx&BAY@y;Hl8$bw1ZAfMJI!}bCZ z!CYuVVyqT6LE9_gGZ!vFr)!c>(qRGXM4p-RPa>bTDm3{;Ncx{do}S1j^6ni-2Lu$n zDSLhVBP@J}K3I+nOW}c}380-^C|M0@iA`ye%<*rh>09KOC*>S?6!WwHA2=Qx$H(yw zdAZJya@TP@CE*DpkB{RKQy16AKOTji)BnxlDFL!r&{{i;Kk=jNMKv8v$t31je2t0Q z6ymBMry2$nk}w&Y^5mJhGW+vL3kAvmWILsBaDPI{qeA`_?5&&6hwziC7ZiaENp3h( z^*4ma=QQavTGs|M|4?`f23?UXyuvHsQurggd3*}5@SDO<hD5c&i+()1{L4G&T+%v% z-;)%uj^K&$x{r$Z2%f9TXvxbts1NP~Fm@c^IRd_SzL=+8=%Ro54}#~;(>LZp*Yfxa zxuq6gF3R(0=N%zZT#zP^!Raq541sBr(}P1X&+~HTIWba1gjyNgn}y7sDyAdRH_1^q zS-Emy0<siP95X4Cl<3hR<ULsGGF_%&kS~je9Ak%Bv%&CbxH#oX7W2x}kbGl{7#<TY zk}s?k7NE>VzG+lXCLtFAc${vc<-bt(WQRBhy;$BFAG@>4PVn;zQu$Z%Lbu={ZITH^ z{Y+1afD{(I3J=sILNu8HB7=n~3@D6`-SO3B$H0S00R#IJP-<koevl?XfXt(S^s26Z zt0~sc50nhyGxsGm<hOxx`kMf6r=pRH_)*p5(KoeY{qY>ZXf|JEdnP$IKR}feZ^O<& zN><POHu0EFUOTII<z@1^%67iG&TtY;LDqi`uV-u2ukuy4`StUY>nhu<&Y)fW;d);% ziWHV$0ZX`xg`WBUaRtML8j(rZ{}ogH_oK1ve|a<_#Q!%(qh;7dON7$x#J}kE{~4XS z?FIJFi~q;b7{A%n^>Od{s(8mpNj|;)qi^+pdNZ&oo{PN+fe)(L=g^bE=EC<iwf>=1 zd34HrD)bBjr9juZr+s_H4HZ`#_w`2(WCMAich^m9SI2L3I;q(Pdsp4&fNR)$FkNZC zPq^6HMi<c0-NsVPa0Cr`zb>NWp7mwxb#yxRO162a{&V8uOwgrU2rbK{<DtcAFb3S4 zoMq-FZ$~CbeU3c^ik9?PN2j75j&^M&Sf;f3*;YyTHly=gVfjMR2Do$%kp`1BJ4%IZ z_op-AyLP{#3dl0?;8dG1zQa^d9Q(pfihbl+oQ%0TADvq1&zK~{QE1rN%uwf)H|N>3 z<g9M)$@31(tV7ym_$4RA_OrAE<w1U-S81^M)ZXJnv&Mtk{muUSG897z`_xOwH<4n$ zc71ivrLUvY`Z&_#ptS~Wk&JmWftrGQqqbKji}M^RAZY%Is=#9_rtRV}*LKW?^H_=~ z-4(|xZ;dO-Fi733lH%c-xQ~?}SuXijx^d{h#@s6sHX85v==9)Y7luC(zQy+e76jko zKKKZGEHWfs$to4T0Zx7?c*oY8>2_FH8rqw_3y-Iw4G+~aHHBr_*!`0DRG5J7ywbRv zw|wj=jP#q`0$Xw>?AP_JK4m9O#1VFv;IE@q1yIFBjx-S;j>3KkZ8mODOk~gLVI$X_ z>?_~`{C7%E6PX3pov3B^Zk@l)6^BdM@q2axJN+|chmAMfgcKS{uiW0Wu5W$lms<9~ zvsr$x#N6lBGHDINB^peMMe(~W3sBLzI=8WVQEKz9V=AbrwHZMee*PF3-o$EpO($^2 z5z3iAv@;aMrW|+OK4h?I%Ou0It|R`$=0HgWpJrySkX7U)EF@S@o|c|>U07Fq{&w={ z;`h0jWT*-IezL%?12JIOHMSTuBaX5I^KRbg1ofr8!>{={j>Wd9vqc;2CgGl1%e@y) zDJ;o|;)%d1;ku2;J3VP?S<&AhlQo7PCRWkiybaAhDCu3diM0F4T9~5(*<Jas)O32l zQanmbRdN5X9egf7s-EIal>sjSh+q8>DF#)EgWdIM;INb=gCJmDxl`tqUr5jQ<2)Lk zYColj(kYl$c|X2q?ueDfVk2C&Fpe$DN2h*ANEg<wwkGakz2BqBirI*UT-iuJEUHyG zG+c)VA#PSen@wGR*dZ`DVU#S<5(6jVP*Uda_t+K`3P^};K)blgHUXj~ly!Y;rl!O4 ztSz1b+izI{+bKnbLXId(rj59GlnQqF?-LNuAqhAj1jO)U)78OqaTqqV-Ubq5KfE_g zQ4J(a!qaT<2Xn5*3Kr(X!8b$Yb3;<gv`#1G!6SX4a#)j&6Xp;>;ViIP`14KTI{gaj zG?|VAu(~ObfDp7-_WTbg4jwNQ0X2b`u;Pu|T~poPDad6qC~yY<-Cj#bW?+AxAR`eT zI0cbq7M2;kess&|n6<_Z#3L~pX$`&wYQi|g9nYJ#j3Y`aZo0v`z2N|$dWbD=8K-7e z!lfihifbSW9mO=V00ArE16vu~+bTNLq{C_lL`=^pic6JLKI5#E;p2*pHzIPyC_b<g ztLawC=V59jCd1(wA)JT>3#EF3Z#MurdgMM+Z_>^^pD21|I@Ic8E!9xFjC;59su|&* zY9tC4ux0o1BwpTk(dMBXC;8|!e_t)%2#WM#gQ=bCS`|%uZuo}2dA?TVr{+n>!Ks^~ z!K{eWBp1}(sXhr}t=zzA_kH+BLkB)L=G>`0z2okqk#PGa=DV|Ado-u-Wqsz~CD*)< zrc6KVY;9qkzIOJc;mp+9z0a+!Bfh>NDb7#cw6?K-UL!{xoaIV{wD%o;@4Z2k0@|qy zjHT5DlnFgvIM&uVRaO^V-}QLW|4Y{s)VYv;p%cr=ZQb+6_2DCTpL}c$>3N^FE%NpE zC*Sz~mybR5(JOaP{`eMhW9{8G3S5f|hC6nFR{P6@MFEg7xA*@GI#sYDo8}9>Sl6oj z8#>iaJ)Me`a?=9<FBbjMzoAp4*jJo+9X<=mg390?^&Ukxt!q`*(dj{Z|FrsHlF+%l zHO%LEi#_cPP(C>w_8R>QoraBszQ=>GWH+6SN_Vl*0fmp2V)qT?Z8lq7zO4EOoqCxA zpxx4x-HtH;7_l=2wFPT-BTV)u=_9b13RoEBBfx~f*xa+P4V^nC&P0=AGP~a@rAQ41 zqj!}jtfN!sVGxJ9tB{|MhcGckI7+R<p*I)YHv!PfTcwv-XYh(05B*04D%Fj=yx($> zmUNwB2!*1|>_u)(+{M_H2JD;%fKTZ=iyIEd8eplw$nIA5Iyx<w8twk9bG^6s>`B#c zqip*fH`RsD$HEPsXHAe>(xfQ{%wrEjBwC7+aIX!ZKYD>Rg4rH$rjY*FCQz3OWtWSr zpDCOId~v*3_??Z`hl7F6y1lzy{4xwurn&1!BQknL`6Eaqhy!8-QQ~)#-9)Siw?sv+ z#VBJ5@F+y=<hkOYYhzL%D*`a}9T!x$B9FE7(jDG4>XLJ%MD8=023VypyQ|)Ml>&6e z+CIsMWL?2T5rViyDU?XEBG!w0OOv1LchtQumxzchG?f1sN%{6D&H^eW{Wv2+E^1+Y zG4g9Ff*c6mSj2)23$PRTT^s50fqkl{w)+7OsGFTw@#=v==fLwP9GXJ5iq_Rd_z^mL z0UTJ@{~XGKa_erzC0<{U@k%5PJO{e5vL@Qz5S9g(9gn>M2QSvfM6>r!#XK>*84>-V zZ$@#VG8hCH90`xS`}Ik1D>UblPmRO6zSZX9SuPJc@+qj`GwEbM%7z?(X+L8_K^M{e zz)T1NcNRiHG^(Bj5ukOKApDoYdaO{1N<b0z9Df(Io&u$XxC??@!7RZq><d5XLMJ57 z22s%dbNsae;3qjcroum+?yh?Y^OYXytm6gY_*+xXeWjpFVCbK$=q(}V@)Hm+q7Q(_ z9G<5lerr_>B%<ayWORbRFdH>I=YpM!Sfs!R@Z+)wfXWiQ7w>NXplyKjDa5exesaj? zvy&E-WA-7VN3B3>T(AKmAriopv_*5`fS*{QNQ=-&;5?LarU?!ha1rOt15_qMx#YOR z2q4`Y3UK@#+7Rt5L<c@lCNZ8r6xmsM3c*2gap5)<?hzG`S$tfK1H2vwMVZIfNFZkM zehn&7!xBC?1lfihl`s!YVnj9dC4zW@Rja;Kd|>EC1kjecXdk;nFF|7xF8?LzCojwZ zAIRk*5-AAdkmRG1XR_hsYY1S6Lnv53aD|-G6-wu$(@mcfwcu!VJ--_BR9i`}>u@xz zDvFBZBOhoz9)?Xolmp}&{XjxHluO78)OG8O$CpU>*fEmj;T}`v>0;)g?<IYBYpY>D zz67*P_<yq$;s~H?B!zx*lYcnCRUQ47`qKpYi;-dR%fYlnRy++3obyT*vCotV4Gfp0 zmB4_zo`E1@8o*4Of&<p9G@-#nFp$1H=K>~S%CXU<0~frQi8>2Ol{$XLx)COiFe(<Y zTn@=`K4V{1!kc-Yh_+N~{$gZO{K;0b6E1WSmMD?n??lSH5$_%mnjWDVbr6Vp=$L1; z37ANT@~O(IDL;I1o&+Ufa^X=yoBXzf#r`B`>$Y8r4Pyj<hAJoce&zouW}|9WGqw^# z0WZ&!{W%%@qfwo#D2b3}KvLMKN_{{}4`#p#j&OkIZ}LJ=payHiqUY*Cah2!XzIvBP zAh>h^5<EtGpm6j~;<&133M+a_<x)#I#DF1O-k+NuU!dO+lJAKL;zC<i3m5|^2gwY8 zdnPlU@gxBj#6^51hAn?Bl<F+GppuM7?5v@{+}o)gK+N-ae;aOYl1I=jPgD&FRm6%m zU<q2Xe5hDo&G}S^FA<Yrt}`3Y3`)>bu;)6o3x0AhNA#x#RE8BLW-oGL4@~%P-H1r{ zNT~lRh>DK^D*WpteM~L**#d$4eI@S4%A-^OC>_EdaDb|v%eSXab>xcbcp(Vq5L__I z90(V5jWKr%>x`aOtJqnYPmsF$c~hZ*7wSZ7>g<}M-$)D18F|$XeonW-yQJKk|GheY zCgz7d{Ii6Qhg5ZGcsVC7L3ASP{>7-W&gv&RK1uc!y>kdjjmtBhF%2G-TPrG)_t%KP zu99F^laZG?=c;dgBW+0{r|MS^b=JB~WF5$N<3pwi7D5Z|-J)N)PscUx05qK)(-nSd z)Zo-;e#tQZXsixYT@8GY9JT3K&9ugar{Q($A@?EIlsxjwH+AAVb)Tl!(dqP;+TBAg zF9lh!2-chiYbyElm~sN@I}5$J0c+SG>f9h6(I8RKAlcO*HPaydy+L+!BhIi<!MRZ> zqEV%wQLU>{W2RB-d*jy4O?bm5ZRe()juB1T1tcMR{?HG<e$qtv-ekJD+03xn+_~8@ zqWM5U^P#S0tC?ov_hy^TEp~=2_RcMi5iQ3GT3otXPRz8BzPFs(-0IGcs5`fMMYNtN zXgwRzk{S2EyF%A9)PZ38-vQqLFBxjN|B|5|`p*pY-ha<fTm5T>dh}m2)ZYJ-p-%i~ zhT7_%8EWIdGSrm6GSqc{WvEB~WT>SSe`lyAqJC$n#eQd~eLH?<sAv9Us4?GuXQ+?- z$xx@PXQ-`yp8WV`s!8ZZT~AlY^z4mwbZKD3mwRr(NHebYM2u-VUB7HCw=5{Wx-|K8 z>?t{^So5PQmlEMbgoq!)^1TI~+mGBbHPOO7<9iGKL++{eJW=U?s@ARZ>)rx2#blI# zJe%(=sC<$B2VL@)P3UG4-oNFZFS8EmEc{iqwzKDZ3l77^i2zub`|1)YUVV<?e$jg_ z&#Sy@F8^%n0^eJ(jxGcF-h!ggxxcE`g&;j~_T|{{!7_#mjO<nNZ{7m+LaJYq$L~IP z#iiu^Y{q&YysD(U`c3s8Z-LcXzWUyni-YQ*D2m&V<mKQ^8US^;30esO2xhx~;!+Sm zgU;K<CXTu0wVJ|j-#h`6+XT(Lwq;lAJ&U-zD3Ri02i1X&kGAjz5RQIVVfJITP{aKR zpAS8&b2A!1O5G+vBq;TOTC0$;qbB2V^xaW0Fpg`v=Vz+3Z~k1e(-LFjg-sN(^m#&k z1)w!<t@`7Q&+?#JMeTCIyX9x+`%Z)TVJXDNyRU17;=+7n1os@N1quy>x9b|rO75uq zaqPQyMY48}T1CR=WZpd+>*ERCAM4fwydjUPO9?SZ3Yu%wyR%IP&WsU*PR%M$B~BNr zj0(y~10bWAw*eIsu(ck<ZN%+EW?L7T_mi-P3|;ya7WHU=!eZca+PDGk=HX{W*z>H0 z4!z|%tUrVYoxn%<ep{%l*!`M`XhzRf8jxQ!Rk@~5ldD?p?Jj56%|vxw0+0E|ltY^D zrayu5WacUiuFi}#x(x|$H(VhYodvcMj4+Ke4%W+$zbM@uUHS>N(FAOigqAutKq!3! z$~9Zp<(?Vjm05Dr0WBynVxc+_8n??JGj$(A7_b`H_o^L~ZuKA)=)f@*r#&j?^n3kh z9nD6PEdXHyFiLP(s;#;C+Nm-j8N_^U$Lc<)4`Dbig*35TNZ0a565Kyq%7eeTV!-pj zDFYnEc<ueT4p{3H^5=?t;|W+da5W|B?&inc2Rv_R99v5MbY`Qjb_Hao7nx|_2$pN7 zCMq+j2yrMuMryTJi1t3-iwxEM_FCC(AsJ&f4>4F}H|L!;fk$!sH0ijT+eL)sMG2PI zz}%beK??BwH4^+C?S^y_rrdU;sY`15wN@bRxwqd+cD3hZL;xdko3Bn+V8=1Lza`sZ zVoIm#boOaYFJEjwYd^p?i7k7C;>Qyb#4gTher$k<+{tpiw0i@>=fR?{yR&_TL1xO! zJ6o|m{!qO@obKK%vV4muTeEe+$TrXf2sJ#hTlyKz`W-$SG2^=Xn1cqGS0a}VsQif4 zTg!NvS1L!<lmNe>B<{PdaAHc_x$`P+Z$sMqh>leLvWbRz%lVk1pI0vJ8}Vp1m;lMl zc1yAflN4K!_p=jO=F5ew!&^J*%j|YO(0%Kn1`8JiwG$-tsxM*8uHugvrtX_~0Bb0f z3OZrf3<D5&Ot8|nO~95DxYT10PWx`Xs9>kKpf>cdE_{QvuGAG^WADhew09f4yecic zCyvAloZ29+B`b2GSCd)xz}5zULl|*{p6ZA8I}Q&h^d~8jtaiyoS;}7Wd$9G;uiQ%G zeX;JU1ru^vhZ3ze5LCZCYxwf`7P9h`^2gzCw`;H0Up#sE+8KwG^3C#WBz54VB~_x! zb#3dmdW2VvliR`mQzF#Ow;F5IvmD^19XVz4kL^esoNNPMR@#2X@4J`mUHjTNIAM{S zqwzJ@Zhq?($4WDYJ@Jp41Jhd59etnfebGPtxznK~`Cc8`tD(-IZ}jY4XE(on)5D(O zZ`ux$y$@tt#5RU$I}94%m+$qibYQx5hBWo7Rn^3djM`=wELv=PQFBw~M6fK+@`*>l z=4}~27elXXIk#sR)@G1=sA?%~A;R;J+t(INa-jyxml_Xfw_@5lWhfQ-kM{I|^^QQy zRY5-S6hPFbFHr2PjMJc1^ghSV!CL%n@x*5a>F;Gt%wBViKHqXTo2mj3A8u7Y!oN<t zxE5?J4OH)p2izZ0i;vee6n}{{_;P$F_F@1@PXL<;n*)pZu87MKrzU_0y#eKfgx6SK ztw5+QaPjTa8y`3Jx?r~q#2Z;Ecnfx$pTTw>keTuLo|#&@VcFOAm1{etat!%eQI7Dv zq92RB9?5($v6NMgrpIX|$_vT#Y?*ji{mo&w;rB-xK8%fqA+KYeS*Au2ATkdx#&I{D zK}K;Qa&I^ZyP>tmofs~c5^-_9Z<%N+mL}HTFxi1T;O4fYMX0nO=4e}|i=8ka>Q6<V za1lq={p6;BMG(v_es=E^q_>GzLM$FUbS;W-=!0aQomMCf2#RYRu<+BiR<3>&w5C*k zi6GJQZfonYdgumDrB2`MbU~;oEFTEuSbq9+ORBDKJde^^SzX1OU%DT*l>d48UA6R~ z9jfK2`}ydyKDhyZfBX`mXIb`I;i10jz1Y`}c~us99nLq7R0Q&@!+ag*#Ul#t1lt+; z1lhfny8rdmjycUbXTG;US7vrxT-&GiCNFU`pz?fiaCRG-Yl~U;7KG`S?0_4Psii-H z&h4OXS<c1u%v+pPDGj;5Qlz@>EeO|pRe9KR&%lE7y0@VCG)*e!eM<j-t6FD|{di?~ z<16RF^^aGqe=a!R_%?Op`sb#xpYI}WeCMuRUt7Ip{cEXU&-aG4e)w(*O{974=lhI3 zKVENJ`*wfr*XOZ4zrNJ3{aRUD`?ZmuJE4FbDbP>~j6p%PQv|0d!mAXtBo(Vi6?LSF zhf*aNRLOQKtUY=SZzLoFR>aek9BC^5BKQ2Cs<mT`PH2oCBgUXT#%L;L_i7A5GS*Zt zR#y^?mZzC9Vh{Y5ds?l=5+&no^y2t(PcyGr6g5^$a=qMb{~z9hM4ICO_85aE&jkI| z?54-_<({F8gz)x+$f*Rq_IUY9+PQzNbrTb!|EgL`CS~a*ZAT;uj>jwMCB|9)E_IU= zliCw={-8^~+%q)J!i$#g1uyi11`dF>@u1AgM1~{ngdR9$AW@|~QHm4SQz^<Gi0ft~ zNmKYc*C|zex#v_WziOS^o~$$gQo}*()Zi>jkSd<$VhOP!Cm!Q~hY%0~1uV;klF0&d zj<o+l!}OH@K*PQR|3JgURL<`!R8T+ZA_IF&5<Ib*%tymBUbJ;IOir{U(f<<-<7j`O zVNTY6qG5j3dJs4j$4*>l!<?*jHq6cx`r|EdibEw~EeAm6<V1bS2F5@fAC*Os6aTPb z703T%!<~-*jSchBFv0jQG|Z0sH#AI7Irzt0&=GSu3~M?6kIFVD&T=(=9SxHco#~k_ zVYL55!#LW%p<!l5h&O8G4;sd0{lC$$`KG*k`b7^m<z;`x6#edNC-D2)?6~#5_S(M} zwo~`h{wi$a!RmtqJSEosUklshOMN)n|A7swIu%Lgmq>NeCm-egVZ%=o6Zf)`_-MF5 zJzI;FD~-Ikj)n=B`DhrXL0d<|ge(6<!y#XVG?s*5)Bh-I<1g{iuvI701POiDQDS$j z%w8i&#(?&(X!w{q(vp=|)KTi<l&Lgdir2WZGd%0{KbzXDY(5(1+d}!O&~-G7yEvd< z$w$M>p=F8rmC4BoPHP6V^`17K#%IHCI@Z}R21(aClb^{e-JYLyZYb{Hbhb$NIveKu zLFEZo;cqGqBv-GqVO&kqo7|M}n)dt}yQxZkF3*Q4I;#hsNdo1yCu-9LvWNm(rmK7f zt6^_IYINa6Z1zWea6cYXC5Sfdtd26kIIx*tI0zJ0uC%g-AK;yricS07&Q>>|t)pRH zj(l=09}N!;lwUTuvdiEvG(3!iZ^^qhGgNK<=Gq@LJhWc|ln-4nXb^X9(4MN~xBs1; zexqSlQCDbfLMTidTSN-Oj2K**Cui}|uxR-@8orQpEnE<NbB!r_lXw*w{+kUG7@5E& zVyBSpnFjNSX7Rf<4pjmP{7N>qK8gTR&_pT~q-G}5WRaL~R{bEUM8OeUNHC83)5r!A zeATnN*eE;?$fTg{hzWZ(<!nJ>CYbPjDb3+sZ7D-Ff$MebeCMRZ&-^+z6C{sI*K7yx zVu6+0FSj1Mv>(VYp@34~wkzXn6xC`@gk`+brTwX6e{D~XjOeUPsqB7}>mmu>!7j=o z79TBWQ`akFC#N`Orlf{-wbi85GB#-Eb>1}W-t?wTDHMEMkN=e^Ua4%q{k@yBxo3-4 z_l=o`QO%yIf}VQ^dsL>tXR3R+o|~^%-R*hqe0|RF`n}NW{Hk??Pb@ApNpTgUh`aI8 z@WyB78><mFz7^c~(RJh3%njhj4X`wuUk!t~uo01L!9uohHyb_6#{OW7O81Hz^-8$( zN=Eid74}MZ_sY)p;%eC+JN|b^`QLThzw5St*KPl<+x}g*{kv}acir~yy6xX}+rR6! zf7fmQuG{`yxBa_r`*+<|Yn@q#fSvyfvwmiZ!iXxZR`izKNs-)fW_F<AN<ZJ4`Pc5( zKa$hw@~4I(AJHK>CZWVo=3vvmj!tPfs2$hH`BNGu9BBDRa(aVTQvJyUe@XWd$J9En z`_;$qw({q}CG-c1-jcV%a|M6o9CxLcu#>fR0r3ahS<h}Iiq(h@hw^SE(++D}F)Or^ z1<}UjP$u8QM3+z^?N<9zN<fMzsQnq8ve<0lp%&3P(3i6%!``tZcDr{I&yJ^cj|Rti zZXuHuUhO^kL{yJOUwVGaZ)&Q^=jmus>tcM1?}fFTqM51FH{|u+nd)M!V#Z|TT#)-- zQO|GlGk39YG>OgL;@3V76A}ybT%QM@xAzq=4xy7EB5ia6{K)(z&+MZfvL4To69lmL z)Q*%Wc_*x?VrCA$5Pqz=<Z>Ls7#Ab$V>uqbS<8~iU1!#cM63#vy{G6r-?H&TnL}|A zc_(oMVxYrgL!@`|Tp)r2W$Xy4oDe5BK@&TO;Y~8HFcf~22kgZVjvSEmk(xY(DEcYZ z>nD*&JdRjxU=`$}f2qwgV<n`@lQM<1P38L}-3A3M?SUBCYm(W+TH&Es<qeFh+f%lC zPvP%wkN&}zkoidk98%jayl`6Jsr=eiD%4HNZ7!z8iARBIx*WL`)VJZ(V3>cah$-5} z-6R$f6{kXlN2Pm!#14hBe3<bbHSb#aMjgJ|ncP&obAGl-C=TwJg)z9N1W7mUstlzl zd?nmLcTG?rV;er~A|i}<mWm@r^StjGF^KV@^lPxe@^ZKdw*gs$Qu+vpm0WG`Fwts# zX14iQt!sjWtWk(u`j!0@xJFv6NKD<7zvjyD&iYqd1ZSsK?%pLhLNMahyMP2)Jeg^N zyf%9!(JXG(Z9gdO<;q=%>#$oA{iyRTel5a<n!Za-n)&P!VolLRcu_jwZA|BZ@HmB% zv!xa-Bk3(jVap+XZJ{uaHP?RO%?^kyLmTR_=JF+E?Y0)t+b%0F=oVXZ+B7M*tVEG^ zz$fGALm#aL_+~nO?}r`m9uzl~Z4Q#RvH^q_o9{i^wn99@&Jl3rC&C3%QJU_lOAcVY z+1TUT`}bQ8@0WLF<4w45W2~7P88_G<;XjPe1nW;xZ!gg-?#ks7*xUE3WwvX5{kGU< zeShS30%g<b&pZ9uCa6&I9bB4PBhu*1-p58aiIi&fQb3c?uO)?zA@>3T2aq7y#igB3 zkHjkU*3hAPt_FI9X91dOP*sIY81C#`NRvpSEFa~)-SE~(gie*Y2=rus-7h~X1rp1t zfPMMOADxmOYg=QxqA<hOm``0NAq+e#f*NDo&trGbosR>LzMvpoNTM7NCNOk7WpThl zJ-nhoh^B6?yn4rYE>qa&4oR$x9fQ)~P@WYY0TZ~fWKo-1EY{3?haJlFZ2M)J5$?hv zB2?oCs}*OkoS6}OQY3?M`^oAd5go@~1dW}pW7UuhGh>1`)1kqRdqv_1Wg0bJCfr9V zJ4+ZAnm6gt9p`bUE^=cP>VTNmk#cY-LI8VaYWtpFd(His@^bKyTd_yf5oDH`n)tX; zzsYj`)YUwtv{lTvNA;kiK6gNG7!)P;t?XoG>4pZqA=rVvAUHkItS=AfIXjTL>4&sn zqQe>u3iWg7F)f^B;Aycv4R$JTrx3r?ZYd+QBV+ek3g2WRtOm9qCp6r3bcc@k`etW+ zwgsdY8<N0|gn+bm3-LW2R!2rl&);Og#k9Y4z_b>Qt`?5ea>{jtcbOlSR+E!fbcM+5 z2he4f;E#2$72;KPkSo8!qs_3?zN0wdLWai*@Nm2?e3!G_I~CD)Unn;I5X1&9MT)6* zCy=(By!9Fdd=HPg=B)xf#8*2Fgjzd*tzCtMGGKwqAaP;|_CT(<3T)i6x5cZZ|7;~r zpGVs`z!mmmn4I2&r<MrFUpa}o=5--(M=*JB^r?}46*N}LY6>FL$ATFWK^UJkG8Z_a zNRnK3y|H1~ZR4#l_Ki2;!hXXsGKaWt!+s>2u=CZ8kf1kKvh;Wxyla*83QhW>n3JKN z>){QOCYu)tPnL(C35?Mmc}?Cu0Y&LRlSzwmD+l6|%Z_5Y+Qp@<t|naANwFmm0WAK= zQ>+;nU95lfL|kU-akJ+!dUuYx!)7Ska|bKDq+aenLPGA#Icq9CK*jEM0ZHIoVT>c` zSULqN!)m`XOgqA7)-NWZ>Y$h~w%!LDtiaXW9UBr~@2L)?%v+NBCHO#5DyB?6rtXwT zA1Qqeln|DR*t;o{AW1wTmvFUwn}1YgktkhCyTbg+E~}<|A=_5G$^6<j-uZzL7>%xG zp$jcr6^P*CmC}`{$UbSL$$a;m>E?XAuN5LtKg&99$|>{)r#`jmQ0ZR&=oBKEbM<Sb zcTVVFxU2Sb!q&tEn}SZFcHaKIc15DdDKVI#cOu*)>dmp4X^Vq{Ep;IyZ%=&BpOjUL z-IXPudy+poHDI+~w_Wt$Giy$IYjefncW0cxPfv}uwziGD^D``vCn4L~`wzeOFDRIm z=Edv`7KsVy`u>=g-q!v4@Q3i3?@v}o+pd2Z`4Ij6`%?hZ{yRDSv_L+1fBVgiqr7-S z7l=H;1SxH`l<fTDx#U=TpYG^Vdc=<xI84WYh1GHve;!<I&AMaA;nz|>;`1wfhW@a1 zvT5GTkGcP2-PTdP^WW;WW1SOiqd`~pn1h#<n(jp<KbtlhE8q3u8wsPXd{yq=qO%PJ ztU~{kebebRxZw)v-HG6q?=o{@Uclp%b(#gcaSpc@x<*#&LJ`W>U%P(@WBArl5Ic)` z*l&hz3Yd?GK#$j$OaR3pgzt3GT_F2)3#jm7v}b#Tx8T36Y(2MvBr}m7?J*lt%>!TM zln9S)NQLH;5d_IKxF{=JK!HoeNFG_bYaRVDP7Wj-$^LpY$PubXjzTJ(T;bLqUK5BW z!(R$bd~TmK{?KzL^7Y%}-|vn6s;#~dg&DZK{qE~u@a`Kc5AOeZ^>bW+hzCg$LS=~p zN68`DuP;1XGCEkH8M9Hg3LYqdhaP2X>BG-pN`a$np>DkJT?$OkBX9#5+z2309B3mE z_H<HGjEs0fM=y}j_E=EQB;+vHB5M-dgNs?92rKUm+<*m7Gf|gsNeZ&y3)q+sB$$q6 z&;}mJk__`9!>n*%Z--N+Y%qomc9xXdMu0jI;!Y5t`m_sjIH)r*&WZ<i5sfBS0u(HU z!g7D!AF~?~TPzZ1I}q<Uk3TUGM@7V+vgEIV(~eZepPi4_{{oy|!wDV6f+#qlEm*2< zg2pWt0!t3-F%hc4?Mdke<q`x#&eNVPK@PK`%{@V?9B7YHv`QjPV}M3i1*PDH4;-bW zSU|KXVC&Z)11jt;9u|yHA*iaq!wCtJU`u4g9ks|kB=mhE%$_8mN)M(fpN`c9Rgut# zdGQ95KoSpKM@-wpOg8aU80H8Y3`ok7`A8mlcs15W6>E*xKFH%|u5gXxfGG*SjSj4> zf(xn8U>3{?C*Vn@L-ieHaRR}lIBW+Dg-m!h351Z)AwYVneELhTbaS_i)yj+?1MU!Y zI^aZy=h21sXC`<`W7RW-!$Nf{fCMbYV~q|pa?qh->DmM#DlhuE1Gt_i$ZV%bbA%uB z8=)+84=bslAJoG|X;RWmCxO#+bS^vd2^ccio;tFcsvlz0rUv;a8PG{XG}_3=1i8E6 zQ^(X!OK`)!gal-rLJv8@-VqZDbU}RS_y;mVfTg^vEj+<JiMAb7d_MSMdpL?K_?80= zs9@-|g^O{7<^aeGvuvz?@aJ*K8czmm*(gmPB*rgbQ$mqM<Of0uGl>ziFVDo`ls{cS zk}jpdm1cT_1P4JII0Ym%h#Z%0MuOYmuqckP6AyH>tWZ!bz*9B!v?t@9`sSLpVB32k zo&Jn9Rcf(!?wPEjjy2P~)CF4WMzAct_)=b8fx2X~cR_nqK|z0kC%1sD4!XFju<uA= zf0)M5V4*0t@Ugn2|5ScPUY`9|{~r$Es!g($N5Yi3Nft>Lr3u2*?3~c5kP=tWZ4z3O z2bAY&+Aah33we!s3_&970}+|MU>lNmDMJ0Cc3WhwXG*(ec8STQi(hO-IiA4^mdkm- zIdz&?pX7`x<R~7B=Y<6$A)$GtAJ~^@&p=zq-~=8z2@BrB0Wah+UVMoNjWLxbmSH&H z2UFm}FtD?R&;m)oc^Zs56L4l4Eb|R=Zb-6q5@Jt;9VUa%S(Zt2!d3aZ<&)X8?G?_| zp@QuEy0t+`=j!A>5aivwydXPIH{o(H0jlE_Qm_$(<br%zPysBsL?gIzJ64nk_T|7P zdJ8Tzxo;qXoX96G8eGa#EcFO4uMW+><^X%`Rdq%~@-Vw1?Y^X)cI|b8suoXB&veDa zS3s3jahS;;!r5&1reX`L!k8`T_O1N*v}C}siVy?MZS<;wZ_%xS)ujij50a`chDcQp zRo?<-?f_~U57aR8q&)XCDI{hcg~@OCDzL%ZabPv9tOyP)p$3-b3D%HfExk)5HH5-9 z*3FSBoWEV`6b0X!hE9O<Pj^<F1|VtU*Fsq6VoK%e>#Jd#%CrRohCQh}Il$?#I>EJq zt2>FHr=B3bu2O-GJ;VV7DuHwQFfsYff_P{VUii>KAve|)QIf5VVarZ+^#%GRS0@n^ z2{y-RIsO(k$3@wbLq$2@MiN@v3tbE(ivp0xT)_|yYJr2E!naCsfMQmx*XGva&M=oe zO$m1S@tU?dg0S)mU{4X=%|K6);eiRcPdGx4Iq2Ig_!AC#k`h@g-~NOxJamAWI!$Xb z6`bR?rOJb@`Un`l1x3&i)dc~J2G|K6NSupTphNU2P=6k@qpM3F4{_fpwZ^Lc{u%_> zWTA+K`s}=)@=)g~hBO_qy}d1$kS9upPtjZVOhF%px8-tC9&41mw{-N?MEP45!aLMr z?vtW*96(!m^$SARt<|s;T${F~@M1)pQyAhjzT+Jo9YU<K2U<y8nJen;UP7&L&e{!z zT`k{j+h)4DYr49Hx>u?cZ-3Y7Hw+#0f#2;4^Hzh-$2B{I!{Iogx1`D)o#1*dwHuow zIRPBy2_80tp}*?~?rbp-mX~G=AM5}-7&?Nf?AW)cr;-IBWYlgwlszwg0}Jk-(z-ww z^wDJt4!7B!wXjcV8BGj8;UEVM`OF;NR%tgh4sXWwo$5w-P61K4zHSy)k|J-mnWi|E zNhAn$6X8cW0_7~><D5-8fWQNrfd^m#6K=8Q8b>IJPP@&Geg72_L53Tu3x%-Y5ft5_ zaiI?!p}I+-C4yj@B4`g6^_YxGBEqV8=n*#Co-&y1jAV4fje!E%Q5eGrHAhA;&cZyh zVyB465X#+27Jn(O<pUO#F@=6ihQAmnrBUxvxTr~diKS%cq4Lr?UR0Lph(*$-$5>1; zuMJ-Tz>=VbLz3FhVg8)a#l_KJ9yGwnu^}0BX922u=g`xQpgT#>Eoz`0%eoh*fCwIX zfEf`&7qp9%s-g)0aE3jdLCqz!eW0Lv$ngC?&@iLeac1s~5X5cH?Gy)4&7$CqHh2%` zPLp=}IDR;ngq{Q-)``PeYY{XGdtf&VlC33lWGJ(}8{Rp5H-dY&*md+t_9(4k^qm&` z!|;P8qp_WyV^4C&q8i73rY0)j;K4YkbVti=Y*GS8=xA6#-?)Gq8=mJ_D+}hEp<zck zaM{%)3;>BeJCHC8^(d7t#tHFPFj5z7_sBeGngtgx0TG0@2qM3>ixN8ydy7Zia)DjN z2}SP&8T7!5xjC1F5%v`M4XlB*S!hOgy<jJ}1}_{%6!2p9catvmxC*A@VTeS;T@F$f z4-&;g-S9BsBdI|@n%xsX2b~23a3Wf`5)@wOGafVicy@(^F;<rJKXNs68V~>&5k$bN z;>HJpu;dypM3poC)N*LMBkV<BUM3RM54EnMqxaygXbAy@;{d}6{7&ETs74463SHm` zh4{dzPQYOndT1W>1SfQ%catO;^>8*MWjepqM|zx#!ULMnv@)w7m}f?#o7BMA1(?S| zan%wicUQb}G%WW{2JjPVO>wf~N*9ANwRy6tuXL?AwC!dm^ogl82{%7PSz@r@w+=g< zPd$#nVv<<yp_?&1+)Hp~sd$a%VGjTQ!pnop*S5n)CrL_zPnZ}EbODRn!cv9<3}<yo z5qjoZ0I`w=iaqQ)`S^b0_NSkso{Dmx1q08m+apB?&$p4DUr2wxjrm-g{d_C>h144E z#m=oYPvR2s%!e*AvTqa8a~y#E^rXuj!70GNogyHLC44y)h-S@>KAxQ?Ro=e_sw#fq zOv_sXo)(X{K4GHv5az=31k?78pC%jHD!hFE2!N9WG^-!`Iy81$EZ|kI-o+wBj{rw; zeFw@wvTWUvVxZX=sxx0Dz`Q6ZLcNjp;G~goIvprF0i5Gc90PEP7UbfS_sL?BVvd_P zZY`5l$N(K;CSfmnx}nE;E|~YR;v!OYbhJgGrd@%i4U)B0FQl@nY#NUWJOz8lg2Q=` zmo<Pa8TBMhUgakDat#Rcq*B(uEP|vg#fkaqBb~rSo+ed!Er6Uju=UKECk|XHk{CS* z^5H^}%oQu*71=CE%>hMy-bNG&+V}Ob2!GWg>P4yvNPz<NungY7zHjANrD~ulNa63o zWZ2{HbohN>C4-+(ggusD<-7$sYlBRYBDR~UT&;0uaB1Lheh3kG5eP_fP`7z5&NJv? zZo#=ecZ(Cth>W}q*TeAJR(76SIcAA-YFshCu|l}eX8IIncJ8C)Hh}|UAJfn`ZPvi8 z!%Gm258CvJ;vR4_K}ea{CCG+$vjpWR8t+bgFJL3HiQubyR+)J`jmS2Ot&Fgzzz7Ak zOF83g`lr(gxta$?m#&9Oa1pogP-AP5DogO%&saguit-u-EQw1s7m}ZFGfrE2w>uX& zPMis1{d)Tpd6y_Ka}rqIv$k>p(AWK7^b2D=1$~+@44Ay3#>&lwd$X7(CZ!=EQa|>p z^&ah1LG5(8?Fj0VNe>w!vqQ(h@KbXnON6(p=_aSC?w&&-TVlaG-o2Mz%^b}JW9}!O zw@k#}-j!#vSEKS{o$wGHIwEqPgY&FMns3t~@*n&x>yFDI8nUkt(1zApI~lH?<}~QG zmx)1!F9F+F>D_$k@Evrfpp-@==ahv|ma6a70jFi$Y5sfNUi0?*qlH=odsD)|fU9-A z-?pA>0Y{(JR)pAV*{{A%%YzF^nBpQPYqRp?MAxL<n(r-H`DSh~x^sVS!AeX>&H3(` zOBzSYUgdUsf9GsmHnf)LI`MeLFXK~=(&2kQrGn2sYVw|JjdI4lcS%+JF!y-o%Q<du z97gqoH1&PZub&;}lv9j-vWPbzsrUt`8cKygy?FFj1Az)wxymxF`LQ`k@*IhYy9%?+ zKCLg(@bx`N^WJ`oi+gLmOtxe0hE|Ba|8ZseRY6mH+$G7>`|M2DERF_P;tf7d;#laj z(~Rxn*ahl^;#g6IRB=hSyzL73<e}54S6|5~o(wBXhMuL+kUPfQ!O6HYAMu6+hBz|j z#66G#Ek%Jcz5%I}*vp&{KQ)gQz-joECU>4;t_h3Z_x8-k)=E`v%=Wv_r5aB!n0M^e zSeVPd;MJ&3r3Jr1ZW4%7cr#u{w>h&XR)v1LNCj<qfT-hr$TDSzX(bb^x`=&Fk)Oq% zLMk-UUnIF@2c3dl(ZX(_VMfU@ambx?Lag!x-3=vw&-7H^uVY=1P3D`o>}`m(3G<Y) z7S+F<9po<Z?pAOuv6d!k=Z2b*wOJ@H3K^D<bI8=2e<dS6^9W*f!?e;pKT!PrE4bGF z0~MRobo=5Z5m&So%@agM{JQECitLn7fv+Aqkm8gl9Nlw^Iv#mmDQcbeX?ol`bM77D zi+zdrSpp2CtcDdlVIVS6FDfnk3?#`hYg!w&J-=_Y>$B3$K)1ApBv|})dyT51U{=Si zJ2j-7^Yc<ioZ~i%f1?Fwy1H{PFx!g@SJMqRWcN)wMZL5SsAW|9??+v=W2T&5Wdm`d zD%+mPp`{piio<kXN6JQ|cjSBN%J}(O-LDgL!c~NS4Je6+r410zi=63A)i(N;SR>qW zy^^+}vv&?IAg%{M&Nk;&l^dGvN_gOX2sPAVx6MwiDp2I~49%ORPqoRc7M*U{)l8V* zw(Vu8Ny09F$Cw$N=}Rwu>d=Yb8%_pLvccZ_R&gNK|5Mv}Mm5o{Yj`GY5=y9nh=2hB zLlL61_z99kkWj=(Z)!w=pnyR^gIFd#R0E11V55DC4PyiJvxFvC&?um>VE`3WRKSJ> z+1cm(*uVB#=bW|A?{}?P&pR_~y))1K+}FL?Fy>4{Dj(ujLoT^euV@x%a<R_bTB#HE zI?8RuGhO!|LoqA|3g5(IaK`WnFVHq+J^E>`$a_{A4DC`tNm?RVZE2(lRqGBA!4hj_ zcec}lg^eE7>(4)Z9^`K<m?-~<{Ac2<=G&5Qr`PWKa(i%kvibV&X*YQJmZzryI}&2m zD>Sx^#@I1Zz1vc0Q1#AoL}k-qk<3|Y)y70JC-Clf6cP_Tkm*`WB<`~zycxe?pdk{P zdRz;=+Dc0r%MIt)gU&gz%dAMs{fNjkuGszHKG)j6LT=pWl(688?e_c|k=mZ3#@{LG zW<G1mCj0lq;NpRoHV>%l_vXvGY#5K{J+$x05tNnrlarVTFJ%SmRAGIGq!jY7u{zG7 zG3t}>EBG67>t=>-ehRa{T6?O%CPiTqlbKzdCOT!@c)1%F54R`8DUqu=?S72}zWIeg zy^UM}dI?G3MFo++K94}^{0m?GHMk9HgEv+u&zm2)(Qm8KXfz|7pv$TTjpYGpb}E3z z83C{>X<J7<Ep-2wFMK6@h{SVig+w&MfRci2^t}Htlm<F-gTBQkW6)Ry!mYS&QLftI zJ+NToZU64Y!;9{1A8<eNb8N(~&Pi2h7-@$IXkf-ifRaD<IdA(8e8K0F>*lweSXUo_ zV?6*I^wtsF`3!ROrQnc#%Di9n$B6vxG9*?(-B35Wj6kcBbe@&3>)eRm;em2^K1#Tv zJTQYA+mAw<&I4tJmV<^v^`X`QxOT2TO5J9P&rTvnk!cA3lYDa#$tj(mk*@#vNbKDQ zijS~PbQtMu!Kua^{^nTZh8zIhoz0=w>(U?4i?E&=u#qPXJ$2J(gnsX+juKc&q4=Ec zn81G|1!T>pISw8b`Y*?(E@K!LXUkX|0}^8gaoBJ11wOhcD+G@x37hRSE3A2Zh-d<$ zyQ}s8=!I9kP5>1Zon(Sx>#Qeo;g2i;qr*=_%6mn{yPAz5RfhY(g7Cb!LBY@X<s0L< zf_2u_xKBSKihTefmbiuWWE69zsuG`akak6%Og9kJw%05RV7z#~6fBzg?($J_HhkjM z?H#R2YkplzzCJy@35F6i$OPxsIk8;fIu}zOM*r+1qYSW&qUT@l1(Hk07G9P=L4IC4 z>nQdlD(UaknWpoI?z4!jVrP)Zo6944rC@i-4RyEBu0W*XS$$2zt9{r!efemmryO=d z3(BI17&k4n%>Q7M)?rjtuE;J$t>5hTVXR}JWh=BqGvA3t4WDy@h4#o!B5du?J}|WQ zsnGtEdGosfpKy>r)IqX>_}z@5wYN{kuC;pJ&|!nmVtAn^yh^tRI^AMn?h=1QY>Vyk z%qd$Q;rYohkLsT~uoH_<UElm(9$@ceB%~X6%x=-Iqt4V6&+x|lIfh>aR`nF&EYhIf zX1UO)$Pu+jq1;W_R<!Z125n2EV?#LYtBZ#D^Qf)E+vAYBUy*CQfx>L;+#A+6d;^md z64i4`pl#+Oz4TD7$6t%ide^pAVJg7cZD-r8kJ7t7{|KD>gp2-AwhGt9Bsum19q*~- zI4Z%{dU4+&=qn)eT_0(-?#0sUZ^Mo2e*~a#Yk2K*tS9ngehs;F^RQk66MLiwv2)$N z-+V8hj4@gHvNdxLhUbe}qStP^j@C}(C|3S8fzXc{MV47-$8>mU{#JK?wTV}mha7ru zm`qt}-)K{KB2r1{rtX~OWVH8wa~IM!y7X>mRRHeP44crd^0X*H#UX@02<wP~@inE7 zsVU)m^Xgk|IYw`tVo^waB4b{eN733VwfGHzS4Mi)o;!MhX7-x4@{``yEpa4&8z}{% zMr?*sc<q+2$?fT9OdK<~4UT>!Ne&a*!ofJxB%F%;h2xR~GH{dJ$bcqUt$|TY6m20? zyg+)7sYMRUR*z$78xVI?Cqy=W{soeQz1QE#0W%&#wioHm6PT+7`wqbKR0w<nF#DMU zUTwB`oW7Wfw86HBrU-NPAsu=AqwQwRT%q}tmp-=y^f!uARGe@UZj|c@6@t*?e+E;e zz4YRZ4VQ*Eh%J}=K0OgWUtGC+oHpb58M9&>E;<kUDlv{8P)hgp#Vhyen;tV(Nq&Bk z+->p80Gigny-sg4Gs~tE_t7o-{yB|4I@sztMJJiIiAZg8wDDi2^LB+7Rx+-XjvLu6 zFt!^M+bE6E4T2cWl6WFAf+D8+UlA@6ncPt>U75dFUJ+0!S<LaJjba=V8|RE4#&=vw zZL?kOY|*RZxrBy_2g+8{g?4n~B}C+EBC^Lg|L%`HIy6x0$=S-lw&n6y?FCI^FUDQL z;$x2$@~+_;;5kHZ{3U&SLydeK-ukit5q``>Rab-Ko3)hSG_V6%=r9goseBVA)?mD= zv?Wl#C2-pYenI51nS#Eq{4!?FkFLuNe)EQPa*P9O=oV&dYIz}GpqaDt2VB@vsC)mI zIlIMt3OE@bxc4AvrUdMZ3NRtdN=K`+5-v>hU=xL4;S?y6G4;9KC5g<SG0^xN!YrbF z?|s;edTSvS7i?2)Na<cU%15_$73tyfE_4&lcbD|Ra3oz<8MH6*rsA^hpL)*ETMH{s z1)bEu&Ci1Tg9=@+)SN_1qgb%b6eLnZvx)#CqQI&8>?YGY4huqdr|&WSachnSxR_OZ z`z4SaZ>SsFZN{CS6MFMTJs(mZ+ihCrL_}CHgNUqhxn|k(<FGG3=zfykJw2~-wQo5O zhJenQudwO(qRQ3ZgZ$c^u`(cKsch6H%%xyKIVEh^F6_xz`7Iw<o`qh&Vb5D1*YF1h zq3Knlrq0thdqBhrf77t5Jn+M><1fZ+vwkce4_a1kcx+H~9MbqCR>FF{J=YOo6`#Xq zSKfW&5_Sc#LLe{;Ejm1DNjdP$;s$F)N<8ACCT#i19^V>3M{R=bKjQtVaQfNu;jw~m z`;P0bt^OX_e%eCCo@?JPFpHT*adE`It?cQ(QZjPe)~fTq^_P`;IM7|@y@hsWj^_if zNx)H4I5+u$L(T(hE8IMuAZGgmr;Fjvr-Qe79CUv5!1Zc4;}a%yBET&p-11iV!hl|n zsK6Qbs9vv}2+OPYy~}$Sbvhd;1P&bVd42C$i}Su;di{JW-O+vYj9#jJ-_rNtx-fvn zhWY381&aHa<$d0seL)xdLOT0G`}>x^>YI1EFAUw!BJ{7c?+>5uUE$du8Py+^+#j72 z^_$ioQ{Er<SAYD)s6UGP&z^vX;t4~xjm<%U%#6mU{L{Zl_8kH(#Jn#d`C&@V!$m#) zE|Z6-6yc^}n5sfCRMAd7SR*bUZ5X-ei<OU7P-;g8utW?M(&-|s$K@-tXS?u_E=16G z=fk|tM>`02I61SM+90;fp>!Nz%b{E)w0ZRKZy7+KfJO>9ba5XB7UWi-XGT8*YuQk? z0?H(J$a#P{1w?h%76{PWtEHQjh{Ju4%99`Oze?C;RfT0Ea@gV{p?uQ@a5G72q+WsR z229v6w>+W=A&rJr#x%Z#22*nNr1s1=9tU{@3nB-xv>Hm~`u*Ae<n*if`Nd@eZ^}=N z7uugUIz>79cNI_{7i>BS9P%U**2iwVd10vG&mrR{=jOWxAMeqLJ$D|fE`pC=d9U-- zg@51WsbTDsk}t6+3TQ>PZmxk*)j%p)N~lmZc0RjvH7YZaZ%XC6u?1Kx-)%~uJO~>y z5uP&StSTd2A^(vt|6Pkw^D7^$J7|oJ-d4cZ3afp|f|)x$uB1AIXSKjkQ$m1yD6l|B z18coRaUEs`Sb+x%=|CAcC(=e=f<!X-*oxor%14(5nvB9rt`c;{fz)cLQA=V^&WmrW z`a@4>V?rhA-IyJ6h{41Bn$~930}PT>;Hgf>J|Cd-0atZZz<tB&=kGWGN&})`H3o~+ z`q?63Nb9a#BjfA(RzgZ-W(B0*BypA<)#0GIQ)0a)QMCGCG);zKAv3kwb`!=^f#38} zQj`qU1>FCb9RE8u)}$NA>vYCfC(a08*ry~#<SfCfU#yTJbEY1-bz^d2u;Q{fT_vI_ zqjOo(KZ2Yx`cXSt#HXUp%wVpS%qAr@vS1Gw+N#0$v4nSwFqr|SzG^j{i3|XsY;L_y zg*cCcrfM*G6bXfb;c@GcYE-5SMP(uVQXnS<cH0A_wl`29W?cu8I=>iVG+>ulow;=A zOU4U_=vPtuBS${L=`5)c6JRSL2Qt7=O5NCHL=B9f!Z;hzPL*g6L$(HwaQAxg*k0Pa z9H%!5OZ4x0m#lMQo`%%uJeJUQSO=#7xd22WH6pOcJdU`q3e8jS5m<2^EJVOsQCx^> zfQdvtk_w~9um@@6dgq88tj*kdsWbI*x(J@7<=>7r4l{-}H}KiXucQ)=|IVbDpI^=< z$RSco@(vcVZRPRe&#)V1_<FI917&zPG9@K*j{yZVsRmB+hI6TyZy|tBi!@yITF!*& zEz)Hb@-@-GMvWSyMrUh(@GC^QErK0~rSvJXuL;ML$S1L(buAW6LoerG*8JwdN8ZC` zr%N%0=<Pg_%;DWROkb!4sIPco$ONM0((D_rsPa?;)fz3Ek+LkMZv0UKB@MIs^-%&i ziS`pSg}ceAX#xaqN<5rMh*U^du~4B3RESb!RRY#vqy#d|tbjJ)g}G!@ZWG`$h0df& z{Um9lR&P$49pk^=qr(O#%b$D_gSX~GYZQs+AHIL?&^r_QcJ<FMaMP}L3Hzl~c3Fa2 zn$8xdUlm^|nOpYy9Xfj5>{;OC>D!L?M_BM)?0D*l#$ZI1ICuQ@1P01fNGz1;J+IU6 zVcvT`6%_}FnH<q_Sh}8-aT3Ehg&*R-+~8qmq0{hwGZz!fN*eGQNBTVowZLi2GFxs) zsboODOJax}v73r19e8)`aOTs5H>%t>?bkdzt<Mj^DhxNBssV1*Sf)P~-x(OYYnG~V zg-I}!CIj<a0U{gvc}@Qpp7SWW^~hE5%+XQ^`z}z;Ld8tlOC#Fj#?!Hx&0D!xgA@iC zE~LWjk`E)UZ_twD0pD3VB+x{jFm_lvvtFK7)s(g)kxwArJa`QXAj5A&j-0ftFOrFS zuBdHIP)N(<@(`i>^-T`!4F7W&F7W9c53mB_=MMPkv(}jMV0>kUL-Xg5)V=wVNzA-V zr!MIV>P2KMKV2<N;2c^LhRAI}=Y;{Rbp80>f{0-oG#fDC@<k3~X^pQpN{|`*)P7+| zX)Z9E24w=NXm+7-tO>5=lX>b#-#H_3@O(T)l1G*7N`rSvq|xjzn@+;3Xm9(f4q@1_ z=FHZ)VMF*!38AUm93ExIrJ#3IOd_WEe?JttkwobvsqP9HRTUkjl%}hq834j4Qbtum zIa&dqBsy6Nn^Q+;aNQnhu3P<>!aEBjKaV1`V5ZWQu=|i?852ou7>gsyYFyubDal$C z2yU!^!mvmmD#qw_mOd<G5K&=TkSbYpxEZ|6(nkD9Sy(Z>rAoRp#pi}RBIQNSrf<jm zxG}pVxELUcCAA>KRPqND2X<3`6QD7kEbZOV)2~jZL`(m6Rl8|QhPt;2cVaBl4N|?d z9O_PkF1G$}u|>m?HGxw03Y_8A?-orMAEGQygVDB10%#DK3_H`Lbj^0M_B9NXIBPI# z#{uov-YOW%re>(_sVSU1oC>*-E$zEj49WSzYj6Hqv900H>Bnmh&hLj05DH9z{24=S z5W=lHrc(kc6M=02?sdvcTH=UI@YTn}_V<S{nrVXU`A$?^X=i4hMucJuJf>EypM<^U z1eL<O9AF^@i@;u%8OMUvSkQahF#?N#Ch`Z91wCu{AC~VXaz0H%yPtzHj7{_@a?PNo z6><u7k-_6O9Wq0USaM9JzgTABy?JbOVs5wGHn7YkZPM=6KBt&->2D_OL-)_5Jn)IN zsgvlK;Nz>=;GhVjL*7sgyN{r7!S<omnuxl)xIm+LrK%N@oUkyhKilQVXVn_bCr{%% z$Aop>xxrIG57WbH40bhMy!1IUp&|HKa5tMFZZGpx5Nk(5k<Ugd3e4Rz$EFs%>@J%Z zVI6cn<<%a-!iH{m@5!qy+`^Fk8irVgBQE<Y3fQxHkxN}rZ)3(!uMf{IZxdee+3Ov3 z8k${S*%bti|4F3W@y&m=+yrkxwmXwK{m0j_C-Z*(PW8<a6Jp@8XC(_Km^wP9p~o_R z`~I4m9QpJi^BMz*`|NmT;Ny%R4C+jk?nGMf2KYFq7Lu@qpeBiof~huQLha{j@vIFk zHd3ow(i*8v0o69&{syWx-|<9?ZJ}MQ+O}xHE$TYh?E!CY$)dNs1I3GfOwE<kkM<qf z#<0k>D+{vrUrz%7o9|j=E-(YQtOV|YMgUej`@0C3!C8`7Lb^T*+W(VYqoE6N2iVm# zu)VzyLGWpyPT1bqZN1dil4x8XSY}{l9m?5k*S2p4f%w<e{;kpWf4@M}4kiD00+B!P zPmtC<hD?Z!At%Pxu5I6KX&c-}J6ro-L&+VngSCP}$km~RyteKJ#(ZT}Vr7<wCc>FJ zWlynerMs!lLweZ%mm2@=uKrbg=Kn1|$<{!5ip5UpDf5nb9eOG2uaGLQ)Zdm)7dT9u x@%FZHO^y8GdgDb?rA@kZ5<_zEucsSo7~<3aBTn|eE&4yW@UQ*<XCB_-e*kCgb;<w$ diff --git a/vendor/github.com/a-h/templ/internal/format/scriptelement.go b/vendor/github.com/a-h/templ/internal/format/scriptelement.go deleted file mode 100644 index 16c6aa0..0000000 --- a/vendor/github.com/a-h/templ/internal/format/scriptelement.go +++ /dev/null @@ -1,96 +0,0 @@ -package format - -import ( - "strings" - - "github.com/a-h/templ/internal/prettier" - "github.com/a-h/templ/parser/v2" -) - -const templScriptPlaceholder = "templ_go_expression_7331" - -// ScriptElement formats a ScriptElement node, replacing Go expressions with placeholders for formatting. -// After formatting, it updates the GoCode expressions and their ranges. -func ScriptElement(se *parser.ScriptElement, depth int, prettierCommand string) (err error) { - // Skip empty script elements, as they don't need formatting. - if len(se.Contents) == 0 { - return nil - } - - // ScriptElements may contain Go expressions in {{ }} blocks. Prettier has no idea how to handle - // that, so we replace them with a placeholder, format the script, and then replace the placeholders - // with the original Go expressions. - var placeholderContent []parser.ScriptContents - var scriptWithPlaceholders strings.Builder - for _, part := range se.Contents { - if part.Value != nil { - scriptWithPlaceholders.WriteString(*part.Value) - continue - } - if part.GoCode != nil { - scriptWithPlaceholders.WriteString(templScriptPlaceholder) - placeholderContent = append(placeholderContent, part) - continue - } - } - - // <script> elements can have a type attribute that specifies the script type. This is important - // to avoid formatting errors, e.g. attempting to format <script type="text/hyperscript"> with a - // JavaScript formatter. - var scriptType string -loop: - for _, attr := range se.Attributes { - switch attr := attr.(type) { - case *parser.ConstantAttribute: - if attr.Key.String() == "type" { - scriptType = attr.Value - } - break loop - } - } - - // Use the prettifyElement function to format the script contents. - after, err := prettier.Element("script", scriptType, scriptWithPlaceholders.String(), depth, prettierCommand) - if err != nil { - return err - } - - // If there were no placeholders, set the contents to the formatted script. - if len(placeholderContent) == 0 { - se.Contents = []parser.ScriptContents{ - { - Value: &after, - GoCode: nil, - InsideStringLiteral: false, - }, - } - return nil - } - - split := strings.Split(after, templScriptPlaceholder) - var appliedPlaceholderCount int - var newContents []parser.ScriptContents - for _, part := range split { - if part == "" { - continue - } - newContents = append(newContents, parser.ScriptContents{ - Value: &part, - GoCode: nil, - InsideStringLiteral: false, - }) - // If we had a GoCode part, we need to add it back in. - if appliedPlaceholderCount < len(placeholderContent) { - placeholder := placeholderContent[appliedPlaceholderCount] - // Trim horizontal space from the GoCode trailing space, as prettier will add its own. - if placeholder.GoCode != nil && strings.Contains(string(placeholder.GoCode.TrailingSpace), " ") { - placeholder.GoCode.TrailingSpace = parser.SpaceNone - } - newContents = append(newContents, placeholder) - appliedPlaceholderCount++ - } - } - se.Contents = newContents - - return nil -} diff --git a/vendor/github.com/a-h/templ/internal/format/styleelement.go b/vendor/github.com/a-h/templ/internal/format/styleelement.go deleted file mode 100644 index dbc56b8..0000000 --- a/vendor/github.com/a-h/templ/internal/format/styleelement.go +++ /dev/null @@ -1,25 +0,0 @@ -package format - -import ( - "github.com/a-h/templ/internal/prettier" - "github.com/a-h/templ/parser/v2" -) - -func StyleElement(se *parser.RawElement, depth int, prettierCommand string) (err error) { - if se.Name != "style" { - return nil - } - - // Skip empty style elements, as they don't need formatting. - if len(se.Contents) == 0 { - return nil - } - - // Prettyify the style contents. - se.Contents, err = prettier.Element("style", "text/css", se.Contents, depth, prettierCommand) - if err != nil { - return err - } - - return nil -} diff --git a/vendor/github.com/a-h/templ/internal/format/templ.go b/vendor/github.com/a-h/templ/internal/format/templ.go deleted file mode 100644 index fd2c551..0000000 --- a/vendor/github.com/a-h/templ/internal/format/templ.go +++ /dev/null @@ -1,102 +0,0 @@ -package format - -import ( - "bytes" - "fmt" - - "github.com/a-h/templ/internal/imports" - "github.com/a-h/templ/internal/prettier" - parser "github.com/a-h/templ/parser/v2" - "github.com/a-h/templ/parser/v2/visitor" -) - -type Config struct { - // PrettierCommand is the command to run to format the content of script and style elements. - // If empty, the default is "prettier --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME". - PrettierCommand string - // PrettierRequired indicates that formatting using Prettier must be applied. - PrettierRequired bool -} - -// Templ formats templ source, returning the formatted output, whether it changed, and an error if any. -// The fileName is used for Go import processing, use an empty name if the source is not from a file. -func Templ(src []byte, fileName string, config Config) (output []byte, changed bool, err error) { - t, err := parser.ParseString(string(src)) - if err != nil { - return nil, false, err - } - t.Filepath = fileName - t, err = imports.Process(t) - if err != nil { - return nil, false, err - } - - if err = applyPrettier(t, config); err != nil { - return nil, false, err - } - - w := new(bytes.Buffer) - if err = t.Write(w); err != nil { - return nil, false, fmt.Errorf("formatting error: %w", err) - } - out := w.Bytes() - changed = !bytes.Equal(src, out) - return out, changed, nil -} - -func applyPrettier(t *parser.TemplateFile, config Config) (err error) { - // Check to see if prettier can be run. - if config.PrettierCommand == "" { - config.PrettierCommand = prettier.DefaultCommand - } - if !prettier.IsAvailable(config.PrettierCommand) { - if config.PrettierRequired { - return fmt.Errorf("prettier command %q is not available, please install it or set a different command using the -prettier-command flag", config.PrettierCommand) - } - // Prettier is not available, skip applying it. - return nil - } - - nodeFormatter := visitor.New() - // Calculate the depth of each ScriptElement and RawElement in the tree so that the formatting is properly indented. - nodeToDepth := make(map[parser.Node]int) - nodeFormatter.HTMLTemplate = func(n *parser.HTMLTemplate) error { - // Visit the children first to calculate their depth. - for _, child := range n.Children { - calculateNodeDepth(child, nodeToDepth, 1) - } - // Now that we have the depth of each node, we can format them. - for _, child := range n.Children { - if err := child.Visit(nodeFormatter); err != nil { - return err - } - } - return nil - } - nodeFormatter.ScriptElement = func(se *parser.ScriptElement) error { - depth := nodeToDepth[se] - return ScriptElement(se, depth, config.PrettierCommand) - } - nodeFormatter.RawElement = func(re *parser.RawElement) error { - depth := nodeToDepth[re] - if re.Name != "style" { - return nil - } - return StyleElement(re, depth, config.PrettierCommand) - } - - return nodeFormatter.VisitTemplateFile(t) -} - -func calculateNodeDepth(e parser.Node, nodeToDepth map[parser.Node]int, depth int) { - switch e := e.(type) { - case *parser.ScriptElement: - nodeToDepth[e] = depth - case *parser.RawElement: - nodeToDepth[e] = depth - case parser.CompositeNode: - for _, child := range e.ChildNodes() { - calculateNodeDepth(child, nodeToDepth, depth+1) - } - } -} diff --git a/vendor/github.com/a-h/templ/internal/htmlfind/htmlfind.go b/vendor/github.com/a-h/templ/internal/htmlfind/htmlfind.go deleted file mode 100644 index 1eef8e4..0000000 --- a/vendor/github.com/a-h/templ/internal/htmlfind/htmlfind.go +++ /dev/null @@ -1,67 +0,0 @@ -package htmlfind - -import ( - "io" - - "golang.org/x/net/html" -) - -// AllReader returns all nodes that match the given function. -func AllReader(r io.Reader, f Matcher) (nodes []*html.Node, err error) { - root, err := html.Parse(r) - if err != nil { - return nil, err - } - return All(root, f), nil -} - -// All returns all nodes that match the given function. -func All(n *html.Node, f Matcher) (nodes []*html.Node) { - if f(n) { - nodes = append(nodes, n) - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - nodes = append(nodes, All(c, f)...) - } - return nodes -} - -// Matcher is a function that matches HTML nodes. -type Matcher func(*html.Node) bool - -// Attribute is a key-value pair for an HTML element. -type Attribute struct { - Name, Value string -} - -// Attr is a constructor for Attribute. -func Attr(name, value string) Attribute { - return Attribute{name, value} -} - -// Element returns a Matcher that matches an HTML element with the given name and attributes. -func Element(name string, attrs ...Attribute) Matcher { - return func(n *html.Node) bool { - if n.Type != html.ElementNode { - return false - } - if n.Data != name { - return false - } - for _, a := range attrs { - if getAttributeValue(n, a.Name) != a.Value { - return false - } - } - return true - } -} - -func getAttributeValue(n *html.Node, name string) string { - for _, a := range n.Attr { - if a.Key == name { - return a.Val - } - } - return "" -} diff --git a/vendor/github.com/a-h/templ/internal/imports/process.go b/vendor/github.com/a-h/templ/internal/imports/process.go deleted file mode 100644 index d9a24f2..0000000 --- a/vendor/github.com/a-h/templ/internal/imports/process.go +++ /dev/null @@ -1,174 +0,0 @@ -package imports - -import ( - "bytes" - "fmt" - "go/ast" - "go/format" - "go/token" - "path" - "slices" - "strconv" - "strings" - - goparser "go/parser" - - "golang.org/x/sync/errgroup" - "golang.org/x/tools/go/ast/astutil" - "golang.org/x/tools/imports" - - "github.com/a-h/templ/generator" - "github.com/a-h/templ/parser/v2" -) - -var internalImports = []string{"github.com/a-h/templ", "github.com/a-h/templ/runtime"} - -func convertTemplToGoURI(templURI string) (isTemplFile bool, goURI string) { - base, fileName := path.Split(templURI) - if !strings.HasSuffix(fileName, ".templ") { - return - } - return true, base + (strings.TrimSuffix(fileName, ".templ") + "_templ.go") -} - -var fset = token.NewFileSet() - -func updateImports(name, src string) (updated []*ast.ImportSpec, err error) { - // Apply auto imports. - updatedGoCode, err := imports.Process(name, []byte(src), nil) - if err != nil { - return updated, fmt.Errorf("failed to process go code %q: %w", src, err) - } - // Get updated imports. - gofile, err := goparser.ParseFile(fset, name, updatedGoCode, goparser.ImportsOnly) - if err != nil { - return updated, fmt.Errorf("failed to get imports from updated go code: %w", err) - } - for _, imp := range gofile.Imports { - if !slices.Contains(internalImports, strings.Trim(imp.Path.Value, "\"")) { - updated = append(updated, imp) - } - } - return updated, nil -} - -func Process(t *parser.TemplateFile) (*parser.TemplateFile, error) { - if t.Filepath == "" { - return t, nil - } - isTemplFile, fileName := convertTemplToGoURI(t.Filepath) - if !isTemplFile { - return t, fmt.Errorf("invalid filepath: %s", t.Filepath) - } - - // The first node always contains existing imports. - // If there isn't one, create it. - if len(t.Nodes) == 0 { - t.Nodes = append(t.Nodes, &parser.TemplateFileGoExpression{}) - } - // If there is one, ensure it is a Go expression. - if _, ok := t.Nodes[0].(*parser.TemplateFileGoExpression); !ok { - t.Nodes = append([]parser.TemplateFileNode{&parser.TemplateFileGoExpression{}}, t.Nodes...) - } - - // Find all existing imports. - importsNode := t.Nodes[0].(*parser.TemplateFileGoExpression) - - // Generate code. - gw := bytes.NewBuffer(nil) - var updatedImports []*ast.ImportSpec - var eg errgroup.Group - eg.Go(func() (err error) { - if _, err := generator.Generate(t, gw); err != nil { - return fmt.Errorf("failed to generate go code: %w", err) - } - updatedImports, err = updateImports(fileName, gw.String()) - if err != nil { - return fmt.Errorf("failed to get imports from generated go code: %w", err) - } - return nil - }) - - var firstGoNodeInTemplate *ast.File - // Update the template with the imports. - // Ensure that there is a Go expression to add the imports to as the first node. - eg.Go(func() (err error) { - firstGoNodeInTemplate, err = goparser.ParseFile(fset, fileName, t.Package.Expression.Value+"\n"+importsNode.Expression.Value, goparser.AllErrors|goparser.ParseComments) - if err != nil { - return fmt.Errorf("failed to parse imports section: %w", err) - } - return nil - }) - - // Wait for completion of both parts. - if err := eg.Wait(); err != nil { - return t, err - } - // Delete unused imports. - for _, imp := range firstGoNodeInTemplate.Imports { - if !containsImport(updatedImports, imp) { - name, path, err := getImportDetails(imp) - if err != nil { - return t, err - } - astutil.DeleteNamedImport(fset, firstGoNodeInTemplate, name, path) - } - } - // Add imports, if there are any to add. - for _, imp := range updatedImports { - if !containsImport(firstGoNodeInTemplate.Imports, imp) { - name, path, err := getImportDetails(imp) - if err != nil { - return t, err - } - astutil.AddNamedImport(fset, firstGoNodeInTemplate, name, path) - } - } - // Edge case: reinsert the import to use import syntax without parentheses. - if len(firstGoNodeInTemplate.Imports) == 1 { - name, path, err := getImportDetails(firstGoNodeInTemplate.Imports[0]) - if err != nil { - return t, err - } - astutil.DeleteNamedImport(fset, firstGoNodeInTemplate, name, path) - astutil.AddNamedImport(fset, firstGoNodeInTemplate, name, path) - } - // Write out the Go code with the imports. - updatedGoCode := new(strings.Builder) - err := format.Node(updatedGoCode, fset, firstGoNodeInTemplate) - if err != nil { - return t, fmt.Errorf("failed to write updated go code: %w", err) - } - // Remove the package statement from the node, by cutting the first line of the file. - importsNode.Expression.Value = strings.TrimSpace(strings.SplitN(updatedGoCode.String(), "\n", 2)[1]) - if len(updatedImports) == 0 && importsNode.Expression.Value == "" { - t.Nodes = t.Nodes[1:] - return t, nil - } - t.Nodes[0] = importsNode - return t, nil -} - -func getImportDetails(imp *ast.ImportSpec) (name, importPath string, err error) { - if imp.Name != nil { - name = imp.Name.Name - } - if imp.Path != nil { - importPath, err = strconv.Unquote(imp.Path.Value) - if err != nil { - err = fmt.Errorf("failed to unquote package path %s: %w", imp.Path.Value, err) - return - } - } - return name, importPath, nil -} - -func containsImport(imports []*ast.ImportSpec, spec *ast.ImportSpec) bool { - for _, imp := range imports { - if imp.Path.Value == spec.Path.Value { - return true - } - } - - return false -} diff --git a/vendor/github.com/a-h/templ/internal/lazyloader/docheader.go b/vendor/github.com/a-h/templ/internal/lazyloader/docheader.go deleted file mode 100644 index c30ec47..0000000 --- a/vendor/github.com/a-h/templ/internal/lazyloader/docheader.go +++ /dev/null @@ -1,27 +0,0 @@ -package lazyloader - -import ( - "maps" -) - -type docHeader interface { - equal(other docHeader) bool -} - -type goDocHeader struct { - pkgName string - imports map[string]struct{} -} - -func (h *goDocHeader) equal(other docHeader) bool { - o, ok := other.(*goDocHeader) - if !ok || o == nil { - return false - } - - if h.pkgName != o.pkgName { - return false - } - - return maps.Equal(h.imports, o.imports) -} diff --git a/vendor/github.com/a-h/templ/internal/lazyloader/docheaderparser.go b/vendor/github.com/a-h/templ/internal/lazyloader/docheaderparser.go deleted file mode 100644 index 9938c7a..0000000 --- a/vendor/github.com/a-h/templ/internal/lazyloader/docheaderparser.go +++ /dev/null @@ -1,53 +0,0 @@ -package lazyloader - -import ( - "go/ast" - "go/parser" - "go/token" - - "github.com/a-h/templ/lsp/uri" -) - -type docHeaderParser interface { - parse(filename string) docHeader -} - -type goDocHeaderParser struct { - openDocSources map[string]string - fileParser fileParser -} - -type fileParser interface { - parseFile(fset *token.FileSet, file string, overlay any, mode parser.Mode) (*ast.File, error) -} - -type goFileParser struct{} - -func (goFileParser) parseFile(fset *token.FileSet, file string, overlay any, mode parser.Mode) (*ast.File, error) { - return parser.ParseFile(fset, file, overlay, mode) -} - -func (p *goDocHeaderParser) parse(filename string) docHeader { - var overlay any - fileURI := string(uri.File(filename)) - if source, ok := p.openDocSources[fileURI]; ok { - overlay = source - } - - fset := token.NewFileSet() - file, err := p.fileParser.parseFile(fset, filename, overlay, parser.ImportsOnly) - if err != nil { - return &goDocHeader{} - } - - header := &goDocHeader{ - pkgName: file.Name.Name, - imports: make(map[string]struct{}), - } - - for _, imp := range file.Imports { - header.imports[imp.Path.Value] = struct{}{} - } - - return header -} diff --git a/vendor/github.com/a-h/templ/internal/lazyloader/pkgloader.go b/vendor/github.com/a-h/templ/internal/lazyloader/pkgloader.go deleted file mode 100644 index a8a94fd..0000000 --- a/vendor/github.com/a-h/templ/internal/lazyloader/pkgloader.go +++ /dev/null @@ -1,55 +0,0 @@ -package lazyloader - -import ( - "errors" - "fmt" - "unsafe" - - "github.com/a-h/templ/lsp/uri" - "golang.org/x/tools/go/packages" -) - -var ( - errNoPkgsLoaded = errors.New("loaded no packages") -) - -type pkgLoader interface { - load(file string) (*packages.Package, error) -} - -type goPkgLoader struct { - openDocSources map[string]string - loadPackages func(cfg *packages.Config, patterns ...string) ([]*packages.Package, error) -} - -func (l *goPkgLoader) load(file string) (*packages.Package, error) { - pkgs, err := l.loadPackages( - &packages.Config{ - Mode: packages.NeedName | packages.NeedFiles | packages.NeedImports | packages.NeedDeps, - Overlay: l.prepareOverlay(), - }, - "file="+file, - ) - - if err != nil { - return nil, err - } - - if len(pkgs) == 0 { - return nil, errNoPkgsLoaded - } - - if len(pkgs) > 1 { - return nil, fmt.Errorf("expected 1 package, loaded %d packages", len(pkgs)) - } - - return pkgs[0], nil -} - -func (l *goPkgLoader) prepareOverlay() map[string][]byte { - overlay := make(map[string][]byte, len(l.openDocSources)) - for fileURI, source := range l.openDocSources { - overlay[uri.New(fileURI).Filename()] = unsafe.Slice(unsafe.StringData(source), len(source)) - } - return overlay -} diff --git a/vendor/github.com/a-h/templ/internal/lazyloader/pkgtraverser.go b/vendor/github.com/a-h/templ/internal/lazyloader/pkgtraverser.go deleted file mode 100644 index 8483d19..0000000 --- a/vendor/github.com/a-h/templ/internal/lazyloader/pkgtraverser.go +++ /dev/null @@ -1,110 +0,0 @@ -package lazyloader - -import ( - "context" - "fmt" - "os" - "path/filepath" - - lsp "github.com/a-h/templ/lsp/protocol" - "github.com/a-h/templ/lsp/uri" - "golang.org/x/tools/go/packages" -) - -const ( - _templExt = ".templ" -) - -type pkgTraverser interface { - openTopologically(ctx context.Context, pkg *packages.Package) error - closeTopologically(ctx context.Context, pkg *packages.Package) error -} - -type goPkgTraverser struct { - templDocHandler TemplDocHandler - pkgsRefCount map[string]int - fileReader fileReader -} - -type TemplDocHandler interface { - HandleDidOpen(ctx context.Context, params *lsp.DidOpenTextDocumentParams) error - HandleDidClose(ctx context.Context, params *lsp.DidCloseTextDocumentParams) error -} - -type fileReader interface { - read(file string) ([]byte, error) -} - -type templFileReader struct{} - -func (templFileReader) read(file string) ([]byte, error) { - return os.ReadFile(file) -} - -func (t *goPkgTraverser) openTopologically(ctx context.Context, pkg *packages.Package) error { - if t.pkgsRefCount[pkg.PkgPath] > 0 { - t.pkgsRefCount[pkg.PkgPath]++ - return nil - } - - for _, imp := range pkg.Imports { - if err := t.openTopologically(ctx, imp); err != nil { - return fmt.Errorf("open topologically %q: %w", imp.PkgPath, err) - } - } - - for _, otherFile := range pkg.OtherFiles { - if filepath.Ext(otherFile) != _templExt { - continue - } - - text, err := t.fileReader.read(otherFile) - if err != nil { - return fmt.Errorf("read file %q: %w", otherFile, err) - } - - if err := t.templDocHandler.HandleDidOpen(ctx, &lsp.DidOpenTextDocumentParams{ - TextDocument: lsp.TextDocumentItem{ - URI: uri.File(otherFile), - Text: string(text), - Version: 1, - LanguageID: "go", - }, - }); err != nil { - return fmt.Errorf("did open file %q: %w", otherFile, err) - } - } - t.pkgsRefCount[pkg.PkgPath]++ - - return nil -} - -func (t *goPkgTraverser) closeTopologically(ctx context.Context, pkg *packages.Package) error { - if t.pkgsRefCount[pkg.PkgPath] > 1 { - t.pkgsRefCount[pkg.PkgPath]-- - return nil - } - - for _, otherFile := range pkg.OtherFiles { - if filepath.Ext(otherFile) != _templExt { - continue - } - - if err := t.templDocHandler.HandleDidClose(ctx, &lsp.DidCloseTextDocumentParams{ - TextDocument: lsp.TextDocumentIdentifier{ - URI: uri.File(otherFile), - }, - }); err != nil { - return fmt.Errorf("did close file %q: %w", otherFile, err) - } - } - delete(t.pkgsRefCount, pkg.PkgPath) - - for _, imp := range pkg.Imports { - if err := t.closeTopologically(ctx, imp); err != nil { - return fmt.Errorf("close topologically %q: %w", imp.PkgPath, err) - } - } - - return nil -} diff --git a/vendor/github.com/a-h/templ/internal/lazyloader/templdoclazyloader.go b/vendor/github.com/a-h/templ/internal/lazyloader/templdoclazyloader.go deleted file mode 100644 index 3912f0d..0000000 --- a/vendor/github.com/a-h/templ/internal/lazyloader/templdoclazyloader.go +++ /dev/null @@ -1,161 +0,0 @@ -package lazyloader - -import ( - "context" - "errors" - "fmt" - - lsp "github.com/a-h/templ/lsp/protocol" - "golang.org/x/tools/go/packages" -) - -// TemplDocLazyLoader lazily loads templ documents as necessary. -type TemplDocLazyLoader interface { - // Load loads a templ document and its dependencies. - Load(ctx context.Context, params *lsp.DidOpenTextDocumentParams) error - - // Sync syncs the dependencies of a templ document using the changes made to the document. - Sync(ctx context.Context, params *lsp.DidChangeTextDocumentParams) error - - // Unload unloads a templ document and its dependencies. - Unload(ctx context.Context, params *lsp.DidCloseTextDocumentParams) error - - // HasLoaded reports whether a templ document and its dependencies have been loaded. - HasLoaded(doc lsp.TextDocumentIdentifier) bool -} - -// templDocLazyLoader is a loader that uses the go/packages API to lazily load templ documents in the dependency graph. -type templDocLazyLoader struct { - loadedPkgs map[string]*packages.Package - openDocHeaders map[string]docHeader - docsPendingLoad map[string]struct{} - pkgLoader pkgLoader - pkgTraverser pkgTraverser - docHeaderParser docHeaderParser - docHandler TemplDocHandler -} - -// NewParams specifies the parameters necessary to create a new lazy loader. -type NewParams struct { - TemplDocHandler TemplDocHandler - OpenDocSources map[string]string -} - -// New creates a new lazy loader using the provided arguments. -func New(params NewParams) TemplDocLazyLoader { - return &templDocLazyLoader{ - loadedPkgs: make(map[string]*packages.Package), - openDocHeaders: make(map[string]docHeader), - docsPendingLoad: make(map[string]struct{}), - pkgLoader: &goPkgLoader{ - openDocSources: params.OpenDocSources, - loadPackages: packages.Load, - }, - pkgTraverser: &goPkgTraverser{ - templDocHandler: params.TemplDocHandler, - pkgsRefCount: make(map[string]int), - fileReader: templFileReader{}, - }, - docHeaderParser: &goDocHeaderParser{ - openDocSources: params.OpenDocSources, - fileParser: goFileParser{}, - }, - docHandler: params.TemplDocHandler, - } -} - -// Load loads all templ documents in the dependency graph topologically (dependencies are loaded before dependents). -func (l *templDocLazyLoader) Load(ctx context.Context, params *lsp.DidOpenTextDocumentParams) error { - filename := params.TextDocument.URI.Filename() - - pkg, err := l.pkgLoader.load(filename) - if err != nil { - if errors.Is(err, errNoPkgsLoaded) { - l.docsPendingLoad[filename] = struct{}{} - return l.docHandler.HandleDidOpen(ctx, params) - } - return fmt.Errorf("load package for file %q: %w", filename, err) - } - - if err := l.pkgTraverser.openTopologically(ctx, pkg); err != nil { - return fmt.Errorf("open topologically %q: %w", pkg.PkgPath, err) - } - - l.loadedPkgs[pkg.PkgPath] = pkg - l.openDocHeaders[filename] = l.docHeaderParser.parse(filename) - - return nil -} - -// Sync loads templ documents in newly added dependencies and unloads those that are no longer necessary. -func (l *templDocLazyLoader) Sync(ctx context.Context, params *lsp.DidChangeTextDocumentParams) error { - filename := params.TextDocument.URI.Filename() - - header := l.openDocHeaders[filename] - l.openDocHeaders[filename] = l.docHeaderParser.parse(filename) - if l.openDocHeaders[filename].equal(header) { - return nil - } - - pkg, err := l.pkgLoader.load(filename) - if err != nil { - return fmt.Errorf("load package for file %q: %w", filename, err) - } - delete(l.docsPendingLoad, filename) - - if _, ok := l.loadedPkgs[pkg.PkgPath]; !ok { - if err := l.pkgTraverser.openTopologically(ctx, pkg); err != nil { - return fmt.Errorf("open topologically %q: %w", pkg.PkgPath, err) - } - l.loadedPkgs[pkg.PkgPath] = pkg - - return nil - } - - for _, imp := range pkg.Imports { - if err := l.pkgTraverser.openTopologically(ctx, imp); err != nil { - return fmt.Errorf("open topologically %q: %w", imp.PkgPath, err) - } - } - - for _, imp := range l.loadedPkgs[pkg.PkgPath].Imports { - if err := l.pkgTraverser.closeTopologically(ctx, imp); err != nil { - return fmt.Errorf("close topologically %q: %w", imp.PkgPath, err) - } - } - l.loadedPkgs[pkg.PkgPath] = pkg - - return nil -} - -// Unload unloads all templ documents in the dependency graph topologically (dependents are unloaded before dependencies). -func (l *templDocLazyLoader) Unload(ctx context.Context, params *lsp.DidCloseTextDocumentParams) error { - filename := params.TextDocument.URI.Filename() - - pkg, err := l.pkgLoader.load(filename) - if err != nil { - if errors.Is(err, errNoPkgsLoaded) { - delete(l.docsPendingLoad, filename) - return l.docHandler.HandleDidClose(ctx, params) - } - return fmt.Errorf("load package for file %q: %w", filename, err) - } - - if err := l.pkgTraverser.closeTopologically(ctx, pkg); err != nil { - return fmt.Errorf("close topologically %q: %w", pkg.PkgPath, err) - } - - delete(l.loadedPkgs, pkg.PkgPath) - delete(l.openDocHeaders, filename) - - return nil -} - -func (l *templDocLazyLoader) HasLoaded(doc lsp.TextDocumentIdentifier) bool { - if _, ok := l.docsPendingLoad[doc.URI.Filename()]; ok { - return false - } - - _, ok := l.openDocHeaders[doc.URI.Filename()] - return ok -} diff --git a/vendor/github.com/a-h/templ/internal/prettier/prettier.go b/vendor/github.com/a-h/templ/internal/prettier/prettier.go deleted file mode 100644 index 131d2eb..0000000 --- a/vendor/github.com/a-h/templ/internal/prettier/prettier.go +++ /dev/null @@ -1,116 +0,0 @@ -package prettier - -import ( - "fmt" - "html" - "os" - "os/exec" - "runtime" - "strings" - - "github.com/a-h/templ/internal/htmlfind" -) - -const DefaultCommand = "prettier --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME" - -func IsAvailable(command string) bool { - executable := strings.Fields(command)[0] - _, err := exec.LookPath(executable) - return err == nil -} - -// Run the prettier command with the given input and file name. -// $TEMPL_PRETTIER_FILENAME is set to the file name being formatted. -// To format blocks inside templ files a fake name is provided, e.g. format.html, format.js, format.css etc. -// The command is run in a shell, so it can be a complex command with pipes and redirections. -// -// Examples: -// -// prettier --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME -// prettierd --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME -// npx prettier --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME -// prettier --config ./frontend/.prettierrc --use-tabs --stdin-filepath $TEMPL_PRETTIER_FILENAME -func Run(input, fileName, command string) (formatted string, err error) { - cmd := getCommand(runtime.GOOS, command) - cmd.Env = append(os.Environ(), fmt.Sprintf("TEMPL_PRETTIER_FILENAME=%s", fileName)) - cmd.Stdin = strings.NewReader(input) - output, err := cmd.CombinedOutput() - if err != nil { - return "", fmt.Errorf("unable to format with command %q, output: %q, error: %v", cmd.Args, string(output), err) - } - return string(output), nil -} - -func getCommand(goos, command string) *exec.Cmd { - if goos == "windows" { - return exec.Command("cmd.exe", "/C", command) - } - shell := os.Getenv("SHELL") - if shell == "" { - shell = "/bin/sh" - } - return exec.Command(shell, "-c", command) -} - -func Element(name string, typeAttrValue string, content string, depth int, prettierCommand string) (after string, err error) { - var indentationWrapper strings.Builder - - // Add divs to the start and end of the script to ensure that prettier formats the content with - // correct indentation. - for i := range depth { - indentationWrapper.WriteString(fmt.Sprintf("<div data-templ-depth=\"%d\">", i)) - } - - // Write start tag with type attribute if present. - indentationWrapper.WriteString("<") - indentationWrapper.WriteString(name) - if typeAttrValue != "" { - indentationWrapper.WriteString(" type=\"") - indentationWrapper.WriteString(html.EscapeString(typeAttrValue)) - indentationWrapper.WriteString("\"") - } - indentationWrapper.WriteString(">") - - // Write contents. - indentationWrapper.WriteString(content) - - // Write end tag. - indentationWrapper.WriteString("</") - indentationWrapper.WriteString(name) - indentationWrapper.WriteString(">") - - for range depth { - indentationWrapper.WriteString("</div>") - } - - before := indentationWrapper.String() - after, err = Run(before, "templ_content.html", prettierCommand) - if err != nil { - return "", fmt.Errorf("prettier error: %w", err) - } - if before == after { - return before, nil - } - - // Chop off the start and end divs we added to get prettier to format the content with correct - // indentation. - matcher := htmlfind.Element(name) - nodes, err := htmlfind.AllReader(strings.NewReader(after), matcher) - if err != nil { - return before, fmt.Errorf("htmlfind error: %w", err) - } - if len(nodes) != 1 { - return before, fmt.Errorf("expected 1 %q node, got %d", name, len(nodes)) - } - scriptNode := nodes[0] - if scriptNode.FirstChild == nil { - return before, fmt.Errorf("%q node has no children", name) - } - var sb strings.Builder - for node := range scriptNode.ChildNodes() { - sb.WriteString(node.Data) - } - after = strings.TrimRight(sb.String(), " \t\r\n") + "\n" + strings.Repeat("\t", depth) - - return after, nil -} diff --git a/vendor/github.com/a-h/templ/internal/prettier/testdata.txtar b/vendor/github.com/a-h/templ/internal/prettier/testdata.txtar deleted file mode 100644 index 609d22a..0000000 --- a/vendor/github.com/a-h/templ/internal/prettier/testdata.txtar +++ /dev/null @@ -1,12 +0,0 @@ --- js-1.js -- -function foo(){return 1;} --- js-1.js -- -function foo() { - return 1; -} --- css-1.css -- -body{color:red;} --- css-1.css -- -body { - color: red; -} diff --git a/vendor/github.com/a-h/templ/internal/skipdir/skipdir.go b/vendor/github.com/a-h/templ/internal/skipdir/skipdir.go deleted file mode 100644 index 4e3516e..0000000 --- a/vendor/github.com/a-h/templ/internal/skipdir/skipdir.go +++ /dev/null @@ -1,20 +0,0 @@ -package skipdir - -import ( - "path/filepath" - "strings" -) - -func ShouldSkip(path string) (skip bool) { - if path == "." { - return false - } - _, name := filepath.Split(path) - if name == "vendor" || name == "node_modules" { - return true - } - if strings.HasPrefix(name, ".") || strings.HasPrefix(name, "_") { - return true - } - return false -} diff --git a/vendor/github.com/a-h/templ/internal/syncmap/map.go b/vendor/github.com/a-h/templ/internal/syncmap/map.go deleted file mode 100644 index 54c9853..0000000 --- a/vendor/github.com/a-h/templ/internal/syncmap/map.go +++ /dev/null @@ -1,49 +0,0 @@ -package syncmap - -import "sync" - -func New[K comparable, V any]() *Map[K, V] { - return &Map[K, V]{ - m: make(map[K]V), - mu: sync.RWMutex{}, - } -} - -type Map[K comparable, V any] struct { - m map[K]V - mu sync.RWMutex -} - -func (m *Map[K, V]) Get(key K) (v V, ok bool) { - m.mu.RLock() - defer m.mu.RUnlock() - v, ok = m.m[key] - return v, ok -} - -func (m *Map[K, V]) Set(key K, value V) { - m.mu.Lock() - defer m.mu.Unlock() - m.m[key] = value -} - -func (m *Map[K, V]) Delete(key K) { - m.mu.Lock() - defer m.mu.Unlock() - delete(m.m, key) -} - -func (m *Map[K, V]) CompareAndSwap(key K, shouldUpdate func(previous, updated V) bool, value V) (swapped bool) { - m.mu.Lock() - defer m.mu.Unlock() - v, ok := m.m[key] - if ok && !shouldUpdate(v, value) { - return false - } - m.m[key] = value - return true -} - -func UpdateIfChanged[V comparable](previous, updated V) bool { - return previous != updated -} diff --git a/vendor/github.com/a-h/templ/internal/syncset/set.go b/vendor/github.com/a-h/templ/internal/syncset/set.go deleted file mode 100644 index cb2ff7b..0000000 --- a/vendor/github.com/a-h/templ/internal/syncset/set.go +++ /dev/null @@ -1,42 +0,0 @@ -package syncset - -import "sync" - -func New[T comparable]() *Set[T] { - return &Set[T]{ - m: make(map[T]struct{}), - mu: sync.RWMutex{}, - } -} - -type Set[T comparable] struct { - m map[T]struct{} - mu sync.RWMutex -} - -func (s *Set[T]) Get(key T) (ok bool) { - s.mu.RLock() - defer s.mu.RUnlock() - _, ok = s.m[key] - return ok -} - -func (s *Set[T]) Set(key T) { - s.mu.Lock() - defer s.mu.Unlock() - s.m[key] = struct{}{} -} - -func (s *Set[T]) Delete(key T) (deleted bool) { - s.mu.Lock() - defer s.mu.Unlock() - _, deleted = s.m[key] - delete(s.m, key) - return deleted -} - -func (s *Set[T]) Count() int { - s.mu.RLock() - defer s.mu.RUnlock() - return len(s.m) -} diff --git a/vendor/github.com/a-h/templ/join.go b/vendor/github.com/a-h/templ/join.go deleted file mode 100644 index a809359..0000000 --- a/vendor/github.com/a-h/templ/join.go +++ /dev/null @@ -1,19 +0,0 @@ -package templ - -import ( - "context" - "io" -) - -// Join returns a single `templ.Component` that will render provided components in order. -// If any of the components return an error the Join component will immediately return with the error. -func Join(components ...Component) Component { - return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { - for _, c := range components { - if err = c.Render(ctx, w); err != nil { - return err - } - } - return nil - }) -} diff --git a/vendor/github.com/a-h/templ/js.go b/vendor/github.com/a-h/templ/js.go deleted file mode 100644 index f07f7ff..0000000 --- a/vendor/github.com/a-h/templ/js.go +++ /dev/null @@ -1,40 +0,0 @@ -package templ - -import ( - "crypto/sha256" - "encoding/hex" - "html" -) - -// JSUnsafeFuncCall calls arbitrary JavaScript in the js parameter. -// -// Use of this function presents a security risk - the JavaScript must come -// from a trusted source, because it will be included as-is in the output. -func JSUnsafeFuncCall[T ~string](js T) ComponentScript { - sum := sha256.Sum256([]byte(js)) - return ComponentScript{ - Name: "jsUnsafeFuncCall_" + hex.EncodeToString(sum[:]), - // Function is empty because the body of the function is defined elsewhere, - // e.g. in a <script> tag within a templ.Once block. - Function: "", - Call: html.EscapeString(string(js)), - CallInline: string(js), - } -} - -// JSFuncCall calls a JavaScript function with the given arguments. -// -// It can be used in event handlers, e.g. onclick, onhover, etc. or -// directly in HTML. -func JSFuncCall[T ~string](functionName T, args ...any) ComponentScript { - call := SafeScript(string(functionName), args...) - sum := sha256.Sum256([]byte(call)) - return ComponentScript{ - Name: "jsFuncCall_" + hex.EncodeToString(sum[:]), - // Function is empty because the body of the function is defined elsewhere, - // e.g. in a <script> tag within a templ.Once block. - Function: "", - Call: call, - CallInline: SafeScriptInline(string(functionName), args...), - } -} diff --git a/vendor/github.com/a-h/templ/jsonscript.go b/vendor/github.com/a-h/templ/jsonscript.go deleted file mode 100644 index 6e88174..0000000 --- a/vendor/github.com/a-h/templ/jsonscript.go +++ /dev/null @@ -1,85 +0,0 @@ -package templ - -import ( - "context" - "encoding/json" - "fmt" - "io" -) - -var _ Component = JSONScriptElement{} - -// JSONScript renders a JSON object inside a script element. -// e.g. <script type="application/json">{"foo":"bar"}</script> -func JSONScript(id string, data any) JSONScriptElement { - return JSONScriptElement{ - ID: id, - Type: "application/json", - Data: data, - Nonce: GetNonce, - } -} - -// WithType sets the value of the type attribute of the script element. -func (j JSONScriptElement) WithType(t string) JSONScriptElement { - j.Type = t - return j -} - -// WithNonceFromString sets the value of the nonce attribute of the script element to the given string. -func (j JSONScriptElement) WithNonceFromString(nonce string) JSONScriptElement { - j.Nonce = func(context.Context) string { - return nonce - } - return j -} - -// WithNonceFrom sets the value of the nonce attribute of the script element to the value returned by the given function. -func (j JSONScriptElement) WithNonceFrom(f func(context.Context) string) JSONScriptElement { - j.Nonce = f - return j -} - -type JSONScriptElement struct { - // ID of the element in the DOM. - ID string - // Type of the script element, defaults to "application/json". - Type string - // Data that will be encoded as JSON. - Data any - // Nonce is a function that returns a CSP nonce. - // Defaults to CSPNonceFromContext. - // See https://content-security-policy.com/nonce for more information. - Nonce func(ctx context.Context) string -} - -func (j JSONScriptElement) Render(ctx context.Context, w io.Writer) (err error) { - if _, err = io.WriteString(w, "<script"); err != nil { - return err - } - if j.ID != "" { - if _, err = fmt.Fprintf(w, " id=\"%s\"", EscapeString(j.ID)); err != nil { - return err - } - } - if j.Type != "" { - if _, err = fmt.Fprintf(w, " type=\"%s\"", EscapeString(j.Type)); err != nil { - return err - } - } - if nonce := j.Nonce(ctx); nonce != "" { - if _, err = fmt.Fprintf(w, " nonce=\"%s\"", EscapeString(nonce)); err != nil { - return err - } - } - if _, err = io.WriteString(w, ">"); err != nil { - return err - } - if err = json.NewEncoder(w).Encode(j.Data); err != nil { - return err - } - if _, err = io.WriteString(w, "</script>"); err != nil { - return err - } - return nil -} diff --git a/vendor/github.com/a-h/templ/jsonstring.go b/vendor/github.com/a-h/templ/jsonstring.go deleted file mode 100644 index 425e4e8..0000000 --- a/vendor/github.com/a-h/templ/jsonstring.go +++ /dev/null @@ -1,14 +0,0 @@ -package templ - -import ( - "encoding/json" -) - -// JSONString returns a JSON encoded string of v. -func JSONString(v any) (string, error) { - b, err := json.Marshal(v) - if err != nil { - return "", err - } - return string(b), nil -} diff --git a/vendor/github.com/a-h/templ/lsp/LICENSE b/vendor/github.com/a-h/templ/lsp/LICENSE deleted file mode 100644 index e874870..0000000 --- a/vendor/github.com/a-h/templ/lsp/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2019, The Go Language Server Authors -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. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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/a-h/templ/lsp/jsonrpc2/codes.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go deleted file mode 100644 index 5da58ea..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/codes.go +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -// Code is an error code as defined in the JSON-RPC spec. -type Code int32 - -// list of JSON-RPC error codes. -const ( - // ParseError is the invalid JSON was received by the server. - // An error occurred on the server while parsing the JSON text. - ParseError Code = -32700 - - // InvalidRequest is the JSON sent is not a valid Request object. - InvalidRequest Code = -32600 - - // MethodNotFound is the method does not exist / is not available. - MethodNotFound Code = -32601 - - // InvalidParams is the invalid method parameter(s). - InvalidParams Code = -32602 - - // InternalError is the internal JSON-RPC error. - InternalError Code = -32603 - - // JSONRPCReservedErrorRangeStart is the start range of JSON RPC reserved error codes. - // - // It doesn't denote a real error code. No LSP error codes should - // be defined between the start and end range. For backwards - // compatibility the "ServerNotInitialized" and the "UnknownErrorCode" - // are left in the range. - // - // @since 3.16.0. - JSONRPCReservedErrorRangeStart Code = -32099 - - // CodeServerErrorStart reserved for implementation-defined server-errors. - // - // Deprecated: Use JSONRPCReservedErrorRangeStart instead. - CodeServerErrorStart = JSONRPCReservedErrorRangeStart - - // ServerNotInitialized is the error of server not initialized. - ServerNotInitialized Code = -32002 - - // UnknownError should be used for all non coded errors. - UnknownError Code = -32001 - - // JSONRPCReservedErrorRangeEnd is the start range of JSON RPC reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - JSONRPCReservedErrorRangeEnd Code = -32000 - - // CodeServerErrorEnd reserved for implementation-defined server-errors. - // - // Deprecated: Use JSONRPCReservedErrorRangeEnd instead. - CodeServerErrorEnd = JSONRPCReservedErrorRangeEnd -) - -// This file contains the Go forms of the wire specification. -// -// See http://www.jsonrpc.org/specification for details. -// -// list of JSON-RPC errors. -var ( - // ErrUnknown should be used for all non coded errors. - ErrUnknown = NewError(UnknownError, "JSON-RPC unknown error") - - // ErrParse is used when invalid JSON was received by the server. - ErrParse = NewError(ParseError, "JSON-RPC parse error") - - // ErrInvalidRequest is used when the JSON sent is not a valid Request object. - ErrInvalidRequest = NewError(InvalidRequest, "JSON-RPC invalid request") - - // ErrMethodNotFound should be returned by the handler when the method does - // not exist / is not available. - ErrMethodNotFound = NewError(MethodNotFound, "JSON-RPC method not found") - - // ErrInvalidParams should be returned by the handler when method - // parameter(s) were invalid. - ErrInvalidParams = NewError(InvalidParams, "JSON-RPC invalid params") - - // ErrInternal is not currently returned but defined for completeness. - ErrInternal = NewError(InternalError, "JSON-RPC internal error") -) diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go deleted file mode 100644 index e7aeec4..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/conn.go +++ /dev/null @@ -1,244 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bytes" - "context" - "fmt" - "sync" - "sync/atomic" - - "encoding/json" -) - -// Conn is the common interface to jsonrpc clients and servers. -// -// Conn is bidirectional; it does not have a designated server or client end. -// It manages the jsonrpc2 protocol, connecting responses back to their calls. -type Conn interface { - // Call invokes the target method and waits for a response. - // - // The params will be marshaled to JSON before sending over the wire, and will - // be handed to the method invoked. - // - // The response will be unmarshaled from JSON into the result. - // - // The id returned will be unique from this connection, and can be used for - // logging or tracking. - Call(ctx context.Context, method string, params, result any) (ID, error) - - // Notify invokes the target method but does not wait for a response. - // - // The params will be marshaled to JSON before sending over the wire, and will - // be handed to the method invoked. - Notify(ctx context.Context, method string, params any) error - - // Go starts a goroutine to handle the connection. - // - // It must be called exactly once for each Conn. It returns immediately. - // Must block on Done() to wait for the connection to shut down. - // - // This is a temporary measure, this should be started automatically in the - // future. - Go(ctx context.Context, handler Handler) - - // Close closes the connection and it's underlying stream. - // - // It does not wait for the close to complete, use the Done() channel for - // that. - Close() error - - // Done returns a channel that will be closed when the processing goroutine - // has terminated, which will happen if Close() is called or an underlying - // stream is closed. - Done() <-chan struct{} - - // Err returns an error if there was one from within the processing goroutine. - // - // If err returns non nil, the connection will be already closed or closing. - Err() error -} - -type conn struct { - seq int32 // access atomically - writeMu sync.Mutex // protects writes to the stream - stream Stream // supplied stream - pendingMu sync.Mutex // protects the pending map - pending map[ID]chan *Response // holds the pending response channel with the ID as the key. - - done chan struct{} // closed when done - err atomic.Value // holds run error -} - -// NewConn creates a new connection object around the supplied stream. -func NewConn(s Stream) Conn { - conn := &conn{ - stream: s, - pending: make(map[ID]chan *Response), - done: make(chan struct{}), - } - return conn -} - -// Call implements Conn. -func (c *conn) Call(ctx context.Context, method string, params, result any) (id ID, err error) { - // generate a new request identifier - id = NewNumberID(atomic.AddInt32(&c.seq, 1)) - call, err := NewCall(id, method, params) - if err != nil { - return id, fmt.Errorf("marshaling call parameters: %w", err) - } - - // We have to add ourselves to the pending map before we send, otherwise we - // are racing the response. Also add a buffer to rchan, so that if we get a - // wire response between the time this call is cancelled and id is deleted - // from c.pending, the send to rchan will not block. - rchan := make(chan *Response, 1) - - c.pendingMu.Lock() - c.pending[id] = rchan - c.pendingMu.Unlock() - - defer func() { - c.pendingMu.Lock() - delete(c.pending, id) - c.pendingMu.Unlock() - }() - - // now we are ready to send - _, err = c.write(ctx, call) - if err != nil { - // sending failed, we will never get a response, so don't leave it pending - return id, err - } - - // now wait for the response - select { - case resp := <-rchan: - // is it an error response? - if resp.err != nil { - return id, resp.err - } - - if result == nil || len(resp.result) == 0 { - return id, nil - } - - dec := json.NewDecoder(bytes.NewReader(resp.result)) - if err := dec.Decode(result); err != nil { - return id, fmt.Errorf("unmarshaling result: %w", err) - } - - return id, nil - - case <-ctx.Done(): - return id, ctx.Err() - } -} - -// Notify implements Conn. -func (c *conn) Notify(ctx context.Context, method string, params any) (err error) { - notify, err := NewNotification(method, params) - if err != nil { - return fmt.Errorf("marshaling notify parameters: %w", err) - } - - _, err = c.write(ctx, notify) - - return err -} - -func (c *conn) replier(req Message) Replier { - return func(ctx context.Context, result any, err error) error { - call, ok := req.(*Call) - if !ok { - // request was a notify, no need to respond - return nil - } - - response, err := NewResponse(call.id, result, err) - if err != nil { - return err - } - - _, err = c.write(ctx, response) - if err != nil { - // TODO(iancottrell): if a stream write fails, we really need to shut down the whole stream - return err - } - return nil - } -} - -func (c *conn) write(ctx context.Context, msg Message) (int64, error) { - c.writeMu.Lock() - n, err := c.stream.Write(ctx, msg) - c.writeMu.Unlock() - if err != nil { - return 0, fmt.Errorf("write to stream: %w", err) - } - - return n, nil -} - -// Go implements Conn. -func (c *conn) Go(ctx context.Context, handler Handler) { - go c.run(ctx, handler) -} - -func (c *conn) run(ctx context.Context, handler Handler) { - defer close(c.done) - - for { - // get the next message - msg, _, err := c.stream.Read(ctx) - if err != nil { - // The stream failed, we cannot continue. - c.fail(err) - return - } - - switch msg := msg.(type) { - case Request: - if err := handler(ctx, c.replier(msg), msg); err != nil { - c.fail(err) - } - - case *Response: - // If method is not set, this should be a response, in which case we must - // have an id to send the response back to the caller. - c.pendingMu.Lock() - rchan, ok := c.pending[msg.id] - c.pendingMu.Unlock() - if ok { - rchan <- msg - } - } - } -} - -// Close implements Conn. -func (c *conn) Close() error { - return c.stream.Close() -} - -// Done implements Conn. -func (c *conn) Done() <-chan struct{} { - return c.done -} - -// Err implements Conn. -func (c *conn) Err() error { - if err := c.err.Load(); err != nil { - return err.(error) - } - return nil -} - -// fail sets a failure condition on the stream and closes it. -func (c *conn) fail(err error) { - c.err.Store(err) - _ = c.stream.Close() -} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go deleted file mode 100644 index ce8427b..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/errors.go +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "errors" - "fmt" - - "encoding/json" -) - -// Error represents a JSON-RPC error. -type Error struct { - // Code a number indicating the error type that occurred. - Code Code `json:"code"` - - // Message a string providing a short description of the error. - Message string `json:"message"` - - // Data a Primitive or Structured value that contains additional - // information about the error. Can be omitted. - Data *json.RawMessage `json:"data,omitempty"` -} - -// compile time check whether the Error implements error interface. -var _ error = (*Error)(nil) - -// Error implements error.Error. -func (e *Error) Error() string { - if e == nil { - return "" - } - return e.Message -} - -// Unwrap implements errors.Unwrap. -// -// Returns the error underlying the receiver, which may be nil. -func (e *Error) Unwrap() error { return errors.New(e.Message) } - -// NewError builds a Error struct for the suppied code and message. -func NewError(c Code, message string) *Error { - return &Error{ - Code: c, - Message: message, - } -} - -// Errorf builds a Error struct for the suppied code, format and args. -func Errorf(c Code, format string, args ...any) *Error { - return &Error{ - Code: c, - Message: fmt.Sprintf(format, args...), - } -} - -// constErr represents a error constant. -type constErr string - -// compile time check whether the constErr implements error interface. -var _ error = (*constErr)(nil) - -// Error implements error.Error. -func (e constErr) Error() string { return string(e) } - -const ( - // ErrIdleTimeout is returned when serving timed out waiting for new connections. - ErrIdleTimeout = constErr("timed out waiting for new connections") -) diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go deleted file mode 100644 index 4992979..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/handler.go +++ /dev/null @@ -1,120 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "context" - "fmt" - "sync" -) - -// Handler is invoked to handle incoming requests. -// -// The Replier sends a reply to the request and must be called exactly once. -type Handler func(ctx context.Context, reply Replier, req Request) error - -// Replier is passed to handlers to allow them to reply to the request. -// -// If err is set then result will be ignored. -type Replier func(ctx context.Context, result any, err error) error - -// MethodNotFoundHandler is a Handler that replies to all call requests with the -// standard method not found response. -// -// This should normally be the final handler in a chain. -func MethodNotFoundHandler(ctx context.Context, reply Replier, req Request) error { - return reply(ctx, nil, fmt.Errorf("%q: %w", req.Method(), ErrMethodNotFound)) -} - -// ReplyHandler creates a Handler that panics if the wrapped handler does -// not call Reply for every request that it is passed. -func ReplyHandler(handler Handler) (h Handler) { - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - called := false - err := handler(ctx, func(ctx context.Context, result any, err error) error { - if called { - panic(fmt.Errorf("request %q replied to more than once", req.Method())) - } - called = true - - return reply(ctx, result, err) - }, req) - if !called { - panic(fmt.Errorf("request %q was never replied to", req.Method())) - } - return err - }) - - return h -} - -// CancelHandler returns a handler that supports cancellation, and a function -// that can be used to trigger canceling in progress requests. -func CancelHandler(handler Handler) (h Handler, canceller func(id ID)) { - var mu sync.Mutex - handling := make(map[ID]context.CancelFunc) - - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - if call, ok := req.(*Call); ok { - cancelCtx, cancel := context.WithCancel(ctx) - ctx = cancelCtx - - mu.Lock() - handling[call.ID()] = cancel - mu.Unlock() - - innerReply := reply - reply = func(ctx context.Context, result any, err error) error { - mu.Lock() - delete(handling, call.ID()) - mu.Unlock() - return innerReply(ctx, result, err) - } - } - return handler(ctx, reply, req) - }) - - canceller = func(id ID) { - mu.Lock() - cancel, found := handling[id] - mu.Unlock() - if found { - cancel() - } - } - - return h, canceller -} - -// AsyncHandler returns a handler that processes each request goes in its own -// goroutine. -// -// The handler returns immediately, without the request being processed. -// Each request then waits for the previous request to finish before it starts. -// -// This allows the stream to unblock at the cost of unbounded goroutines -// all stalled on the previous one. -func AsyncHandler(handler Handler) (h Handler) { - nextRequest := make(chan struct{}) - close(nextRequest) - - h = Handler(func(ctx context.Context, reply Replier, req Request) error { - waitForPrevious := nextRequest - nextRequest = make(chan struct{}) - unlockNext := nextRequest - innerReply := reply - reply = func(ctx context.Context, result any, err error) error { - close(unlockNext) - return innerReply(ctx, result, err) - } - - go func() { - <-waitForPrevious - _ = handler(ctx, reply, req) - }() - return nil - }) - - return h -} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go deleted file mode 100644 index ff428cc..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/jsonrpc2.go +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package jsonrpc2 is an implementation of the JSON-RPC 2 specification for Go. -// -// https://www.jsonrpc.org/specification -package jsonrpc2 // import "github.com/a-h/templ/lsp/jsonrpc2" diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go deleted file mode 100644 index 6ea146b..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/message.go +++ /dev/null @@ -1,354 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bytes" - "errors" - "fmt" - - "encoding/json" -) - -// Message is the interface to all JSON-RPC message types. -// -// They share no common functionality, but are a closed set of concrete types -// that are allowed to implement this interface. -// -// The message types are *Call, *Response and *Notification. -type Message interface { - // jsonrpc2Message is used to make the set of message implementations a - // closed set. - jsonrpc2Message() -} - -// Request is the shared interface to jsonrpc2 messages that request -// a method be invoked. -// -// The request types are a closed set of *Call and *Notification. -type Request interface { - Message - - // Method is a string containing the method name to invoke. - Method() string - // Params is either a struct or an array with the parameters of the method. - Params() json.RawMessage - - // jsonrpc2Request is used to make the set of request implementations closed. - jsonrpc2Request() -} - -// Call is a request that expects a response. -// -// The response will have a matching ID. -type Call struct { - // Method is a string containing the method name to invoke. - method string - // Params is either a struct or an array with the parameters of the method. - params json.RawMessage - // id of this request, used to tie the Response back to the request. - id ID -} - -// make sure a Call implements the Request, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Request = (*Call)(nil) - _ json.Marshaler = (*Call)(nil) - _ json.Unmarshaler = (*Call)(nil) -) - -// NewCall constructs a new Call message for the supplied ID, method and -// parameters. -func NewCall(id ID, method string, params any) (*Call, error) { - p, merr := marshalInterface(params) - req := &Call{ - id: id, - method: method, - params: p, - } - return req, merr -} - -// ID returns the current call id. -func (c *Call) ID() ID { return c.id } - -// Method implements Request. -func (c *Call) Method() string { return c.method } - -// Params implements Request. -func (c *Call) Params() json.RawMessage { return c.params } - -// jsonrpc2Message implements Request. -func (Call) jsonrpc2Message() {} - -// jsonrpc2Request implements Request. -func (Call) jsonrpc2Request() {} - -// MarshalJSON implements json.Marshaler. -func (c Call) MarshalJSON() ([]byte, error) { - req := wireRequest{ - Method: c.method, - Params: &c.params, - ID: &c.id, - } - data, err := json.Marshal(req) - if err != nil { - return data, fmt.Errorf("marshaling call: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (c *Call) UnmarshalJSON(data []byte) error { - var req wireRequest - dec := json.NewDecoder(bytes.NewReader(data)) - if err := dec.Decode(&req); err != nil { - return fmt.Errorf("unmarshaling call: %w", err) - } - - c.method = req.Method - if req.Params != nil { - c.params = *req.Params - } - if req.ID != nil { - c.id = *req.ID - } - - return nil -} - -// Response is a reply to a Request. -// -// It will have the same ID as the call it is a response to. -type Response struct { - // result is the content of the response. - result json.RawMessage - // err is set only if the call failed. - err error - // ID of the request this is a response to. - id ID -} - -// make sure a Response implements the Message, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Message = (*Response)(nil) - _ json.Marshaler = (*Response)(nil) - _ json.Unmarshaler = (*Response)(nil) -) - -// NewResponse constructs a new Response message that is a reply to the -// supplied. If err is set result may be ignored. -func NewResponse(id ID, result any, err error) (*Response, error) { - r, merr := marshalInterface(result) - resp := &Response{ - id: id, - result: r, - err: err, - } - return resp, merr -} - -// ID returns the current response id. -func (r *Response) ID() ID { return r.id } - -// Result returns the Response result. -func (r *Response) Result() json.RawMessage { return r.result } - -// Err returns the Response error. -func (r *Response) Err() error { return r.err } - -// jsonrpc2Message implements Message. -func (r *Response) jsonrpc2Message() {} - -// MarshalJSON implements json.Marshaler. -func (r Response) MarshalJSON() ([]byte, error) { - resp := &wireResponse{ - Error: toError(r.err), - ID: &r.id, - } - if resp.Error == nil { - resp.Result = &r.result - } - - data, err := json.Marshal(resp) - if err != nil { - return data, fmt.Errorf("marshaling notification: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (r *Response) UnmarshalJSON(data []byte) error { - var resp wireResponse - dec := json.NewDecoder(bytes.NewReader(data)) - if err := dec.Decode(&resp); err != nil { - return fmt.Errorf("unmarshaling jsonrpc response: %w", err) - } - - if resp.Result != nil { - r.result = *resp.Result - } - if resp.Error != nil { - r.err = resp.Error - } - if resp.ID != nil { - r.id = *resp.ID - } - - return nil -} - -func toError(err error) *Error { - if err == nil { - // no error, the response is complete - return nil - } - - var wrapped *Error - if errors.As(err, &wrapped) { - // already a wire error, just use it - return wrapped - } - - result := &Error{Message: err.Error()} - if errors.As(err, &wrapped) { - // if we wrapped a wire error, keep the code from the wrapped error - // but the message from the outer error - result.Code = wrapped.Code - } - - return result -} - -// Notification is a request for which a response cannot occur, and as such -// it has not ID. -type Notification struct { - // Method is a string containing the method name to invoke. - method string - - params json.RawMessage -} - -// make sure a Notification implements the Request, json.Marshaler and json.Unmarshaler and interfaces. -var ( - _ Request = (*Notification)(nil) - _ json.Marshaler = (*Notification)(nil) - _ json.Unmarshaler = (*Notification)(nil) -) - -// NewNotification constructs a new Notification message for the supplied -// method and parameters. -func NewNotification(method string, params any) (*Notification, error) { - p, merr := marshalInterface(params) - notify := &Notification{ - method: method, - params: p, - } - return notify, merr -} - -// Method implements Request. -func (n *Notification) Method() string { return n.method } - -// Params implements Request. -func (n *Notification) Params() json.RawMessage { return n.params } - -// jsonrpc2Message implements Request. -func (Notification) jsonrpc2Message() {} - -// jsonrpc2Request implements Request. -func (Notification) jsonrpc2Request() {} - -// MarshalJSON implements json.Marshaler. -func (n Notification) MarshalJSON() ([]byte, error) { - req := wireRequest{ - Method: n.method, - Params: &n.params, - } - data, err := json.Marshal(req) - if err != nil { - return data, fmt.Errorf("marshaling notification: %w", err) - } - - return data, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (n *Notification) UnmarshalJSON(data []byte) error { - var req wireRequest - dec := json.NewDecoder(bytes.NewReader(data)) - if err := dec.Decode(&req); err != nil { - return fmt.Errorf("unmarshaling notification: %w", err) - } - - n.method = req.Method - if req.Params != nil { - n.params = *req.Params - } - - return nil -} - -// DecodeMessage decodes data to Message. -func DecodeMessage(data []byte) (Message, error) { - var msg combined - dec := json.NewDecoder(bytes.NewReader(data)) - if err := dec.Decode(&msg); err != nil { - return nil, fmt.Errorf("unmarshaling jsonrpc message: %w", err) - } - - if msg.Method == "" { - // no method, should be a response - if msg.ID == nil { - return nil, ErrInvalidRequest - } - - resp := &Response{ - id: *msg.ID, - } - if msg.Error != nil { - resp.err = msg.Error - } - if msg.Result != nil { - resp.result = *msg.Result - } - - return resp, nil - } - - // has a method, must be a request - if msg.ID == nil { - // request with no ID is a notify - notify := &Notification{ - method: msg.Method, - } - if msg.Params != nil { - notify.params = *msg.Params - } - - return notify, nil - } - - // request with an ID, must be a call - call := &Call{ - method: msg.Method, - id: *msg.ID, - } - if msg.Params != nil { - call.params = *msg.Params - } - - return call, nil -} - -// marshalInterface marshal obj to json.RawMessage. -func marshalInterface(obj any) (json.RawMessage, error) { - data, err := json.Marshal(obj) - if err != nil { - return json.RawMessage{}, fmt.Errorf("failed to marshal json: %w", err) - } - return json.RawMessage(data), nil -} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go deleted file mode 100644 index 48b63cb..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/serve.go +++ /dev/null @@ -1,131 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "context" - "fmt" - "net" - "os" - "time" -) - -// NOTE: This file provides an experimental API for serving multiple remote -// jsonrpc2 clients over the network. For now, it is intentionally similar to -// net/http, but that may change in the future as we figure out the correct -// semantics. - -// StreamServer is used to serve incoming jsonrpc2 clients communicating over -// a newly created connection. -type StreamServer interface { - ServeStream(context.Context, Conn) error -} - -// ServerFunc is an adapter that implements the StreamServer interface -// using an ordinary function. -type ServerFunc func(context.Context, Conn) error - -// ServeStream implements StreamServer. -// -// ServeStream calls f(ctx, s). -func (f ServerFunc) ServeStream(ctx context.Context, c Conn) error { - return f(ctx, c) -} - -// HandlerServer returns a StreamServer that handles incoming streams using the -// provided handler. -func HandlerServer(h Handler) StreamServer { - return ServerFunc(func(ctx context.Context, conn Conn) error { - conn.Go(ctx, h) - <-conn.Done() - return conn.Err() - }) -} - -// ListenAndServe starts an jsonrpc2 server on the given address. -// -// If idleTimeout is non-zero, ListenAndServe exits after there are no clients for -// this duration, otherwise it exits only on error. -func ListenAndServe(ctx context.Context, network, addr string, server StreamServer, idleTimeout time.Duration) error { - ln, err := net.Listen(network, addr) - if err != nil { - return fmt.Errorf("failed to listen %s:%s: %w", network, addr, err) - } - defer func() { - _ = ln.Close() - }() - - if network == "unix" { - defer func() { _ = os.Remove(addr) }() - } - - return Serve(ctx, ln, server, idleTimeout) -} - -// Serve accepts incoming connections from the network, and handles them using -// the provided server. If idleTimeout is non-zero, ListenAndServe exits after -// there are no clients for this duration, otherwise it exits only on error. -func Serve(ctx context.Context, ln net.Listener, server StreamServer, idleTimeout time.Duration) error { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - // Max duration: ~290 years; surely that's long enough. - const forever = 1<<63 - 1 - if idleTimeout <= 0 { - idleTimeout = forever - } - connTimer := time.NewTimer(idleTimeout) - - newConns := make(chan net.Conn) - doneListening := make(chan error) - closedConns := make(chan error) - - go func() { - for { - nc, err := ln.Accept() - if err != nil { - select { - case doneListening <- fmt.Errorf("accept: %w", err): - case <-ctx.Done(): - } - return - } - - newConns <- nc - } - }() - - activeConns := 0 - for { - select { - case netConn := <-newConns: - activeConns++ - connTimer.Stop() - stream := NewStream(netConn) - go func() { - conn := NewConn(stream) - closedConns <- server.ServeStream(ctx, conn) - _ = stream.Close() - }() - - case err := <-doneListening: - return err - - case <-closedConns: - // if !isClosingError(err) { - // } - - activeConns-- - if activeConns == 0 { - connTimer.Reset(idleTimeout) - } - - case <-connTimer.C: - return ErrIdleTimeout - - case <-ctx.Done(): - return ctx.Err() - } - } -} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go deleted file mode 100644 index e7d24c6..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/stream.go +++ /dev/null @@ -1,225 +0,0 @@ -// SPDX-FileCopyrightText: 2018 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "bufio" - "context" - "fmt" - "io" - "strconv" - "strings" - - "encoding/json" -) - -const ( - // HdrContentLength is the HTTP header name of the length of the content part in bytes. This header is required. - // This entity header indicates the size of the entity-body, in bytes, sent to the recipient. - // - // RFC 7230, section 3.3.2: Content-Length: - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - HdrContentLength = "Content-Length" - - // HeaderContentType is the mime type of the content part. Defaults to "application/vscode-jsonrpc; charset=utf-8". - // This entity header is used to indicate the media type of the resource. - // - // RFC 7231, section 3.1.1.5: Content-Type: - // https://tools.ietf.org/html/rfc7231#section-3.1.1.5 - HdrContentType = "Content-Type" - - // HeaderContentSeparator is the header and content part separator. - HdrContentSeparator = "\r\n\r\n" -) - -// Framer wraps a network connection up into a Stream. -// -// It is responsible for the framing and encoding of messages into wire form. -// NewRawStream and NewStream are implementations of a Framer. -type Framer func(conn io.ReadWriteCloser) Stream - -// Stream abstracts the transport mechanics from the JSON RPC protocol. -// -// A Conn reads and writes messages using the stream it was provided on -// construction, and assumes that each call to Read or Write fully transfers -// a single message, or returns an error. -// -// A stream is not safe for concurrent use, it is expected it will be used by -// a single Conn in a safe manner. -type Stream interface { - // Read gets the next message from the stream. - Read(context.Context) (Message, int64, error) - - // Write sends a message to the stream. - Write(context.Context, Message) (int64, error) - - // Close closes the connection. - // Any blocked Read or Write operations will be unblocked and return errors. - Close() error -} - -type rawStream struct { - conn io.ReadWriteCloser - in *json.Decoder -} - -// NewRawStream returns a Stream built on top of a io.ReadWriteCloser. -// -// The messages are sent with no wrapping, and rely on json decode consistency -// to determine message boundaries. -func NewRawStream(conn io.ReadWriteCloser) Stream { - return &rawStream{ - conn: conn, - in: json.NewDecoder(conn), // TODO(zchee): why test fail using segmentio json.Decoder? - } -} - -// Read implements Stream.Read. -func (s *rawStream) Read(ctx context.Context) (Message, int64, error) { - select { - case <-ctx.Done(): - return nil, 0, ctx.Err() - default: - } - - var raw json.RawMessage - if err := s.in.Decode(&raw); err != nil { - return nil, 0, fmt.Errorf("decoding raw message: %w", err) - } - - msg, err := DecodeMessage(raw) - return msg, int64(len(raw)), err -} - -// Write implements Stream.Write. -func (s *rawStream) Write(ctx context.Context, msg Message) (int64, error) { - select { - case <-ctx.Done(): - return 0, ctx.Err() - default: - } - - data, err := json.Marshal(msg) - if err != nil { - return 0, fmt.Errorf("marshaling message: %w", err) - } - - n, err := s.conn.Write(data) - if err != nil { - return 0, fmt.Errorf("write to stream: %w", err) - } - - return int64(n), nil -} - -// Close implements Stream.Close. -func (s *rawStream) Close() error { - return s.conn.Close() -} - -type stream struct { - conn io.ReadWriteCloser - in *bufio.Reader -} - -// NewStream returns a Stream built on top of a io.ReadWriteCloser. -// -// The messages are sent with HTTP content length and MIME type headers. -// This is the format used by LSP and others. -func NewStream(conn io.ReadWriteCloser) Stream { - return &stream{ - conn: conn, - in: bufio.NewReader(conn), - } -} - -// Read implements Stream.Read. -func (s *stream) Read(ctx context.Context) (Message, int64, error) { - select { - case <-ctx.Done(): - return nil, 0, ctx.Err() - default: - } - - var total int64 - var length int64 - // read the header, stop on the first empty line - for { - line, err := s.in.ReadString('\n') - total += int64(len(line)) - if err != nil { - return nil, total, fmt.Errorf("failed reading header line: %w", err) - } - - line = strings.TrimSpace(line) - // check we have a header line - if line == "" { - break - } - - colon := strings.IndexRune(line, ':') - if colon < 0 { - return nil, total, fmt.Errorf("invalid header line %q", line) - } - - name, value := line[:colon], strings.TrimSpace(line[colon+1:]) - switch name { - case HdrContentLength: - if length, err = strconv.ParseInt(value, 10, 32); err != nil { - return nil, total, fmt.Errorf("failed parsing %s: %v: %w", HdrContentLength, value, err) - } - if length <= 0 { - return nil, total, fmt.Errorf("invalid %s: %v", HdrContentLength, length) - } - default: - // ignoring unknown headers - } - } - - if length == 0 { - return nil, total, fmt.Errorf("missing %s header", HdrContentLength) - } - - data := make([]byte, length) - if _, err := io.ReadFull(s.in, data); err != nil { - return nil, total, fmt.Errorf("read full of data: %w", err) - } - - total += length - msg, err := DecodeMessage(data) - return msg, total, err -} - -// Write implements Stream.Write. -func (s *stream) Write(ctx context.Context, msg Message) (int64, error) { - select { - case <-ctx.Done(): - return 0, ctx.Err() - default: - } - - data, err := json.Marshal(msg) - if err != nil { - return 0, fmt.Errorf("marshaling message: %w", err) - } - - n, err := fmt.Fprintf(s.conn, "%s: %v%s", HdrContentLength, len(data), HdrContentSeparator) - total := int64(n) - if err != nil { - return 0, fmt.Errorf("write data to conn: %w", err) - } - - n, err = s.conn.Write(data) - total += int64(n) - if err != nil { - return 0, fmt.Errorf("write data to conn: %w", err) - } - - return total, nil -} - -// Close implements Stream.Close. -func (s *stream) Close() error { - return s.conn.Close() -} diff --git a/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go b/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go deleted file mode 100644 index a322402..0000000 --- a/vendor/github.com/a-h/templ/lsp/jsonrpc2/wire.go +++ /dev/null @@ -1,140 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package jsonrpc2 - -import ( - "fmt" - - "encoding/json" -) - -// Version represents a JSON-RPC version. -const Version = "2.0" - -// version is a special 0 sized struct that encodes as the jsonrpc version tag. -// -// It will fail during decode if it is not the correct version tag in the stream. -type version struct{} - -// compile time check whether the version implements a json.Marshaler and json.Unmarshaler interfaces. -var ( - _ json.Marshaler = (*version)(nil) - _ json.Unmarshaler = (*version)(nil) -) - -// MarshalJSON implements json.Marshaler. -func (version) MarshalJSON() ([]byte, error) { - return json.Marshal(Version) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (version) UnmarshalJSON(data []byte) error { - version := "" - if err := json.Unmarshal(data, &version); err != nil { - return fmt.Errorf("failed to Unmarshal: %w", err) - } - if version != Version { - return fmt.Errorf("invalid RPC version %v", version) - } - return nil -} - -// ID is a Request identifier. -// -// Only one of either the Name or Number members will be set, using the -// number form if the Name is the empty string. -type ID struct { - name string - number int32 -} - -// compile time check whether the ID implements a fmt.Formatter, json.Marshaler and json.Unmarshaler interfaces. -var ( - _ fmt.Formatter = (*ID)(nil) - _ json.Marshaler = (*ID)(nil) - _ json.Unmarshaler = (*ID)(nil) -) - -// NewNumberID returns a new number request ID. -func NewNumberID(v int32) ID { return ID{number: v} } - -// NewStringID returns a new string request ID. -func NewStringID(v string) ID { return ID{name: v} } - -// Format writes the ID to the formatter. -// -// If the rune is q the representation is non ambiguous, -// string forms are quoted, number forms are preceded by a #. -func (id ID) Format(f fmt.State, r rune) { - numF, strF := `%d`, `%s` - if r == 'q' { - numF, strF = `#%d`, `%q` - } - - switch { - case id.name != "": - _, _ = fmt.Fprintf(f, strF, id.name) - default: - _, _ = fmt.Fprintf(f, numF, id.number) - } -} - -// MarshalJSON implements json.Marshaler. -func (id *ID) MarshalJSON() ([]byte, error) { - if id.name != "" { - return json.Marshal(id.name) - } - return json.Marshal(id.number) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (id *ID) UnmarshalJSON(data []byte) error { - *id = ID{} - if err := json.Unmarshal(data, &id.number); err == nil { - return nil - } - return json.Unmarshal(data, &id.name) -} - -// wireRequest is sent to a server to represent a Call or Notify operaton. -type wireRequest struct { - // VersionTag is always encoded as the string "2.0" - VersionTag version `json:"jsonrpc"` - // Method is a string containing the method name to invoke. - Method string `json:"method"` - // Params is either a struct or an array with the parameters of the method. - Params *json.RawMessage `json:"params,omitempty"` - // The id of this request, used to tie the Response back to the request. - // Will be either a string or a number. If not set, the Request is a notify, - // and no response is possible. - ID *ID `json:"id,omitempty"` -} - -// wireResponse is a reply to a Request. -// -// It will always have the ID field set to tie it back to a request, and will -// have either the Result or Error fields set depending on whether it is a -// success or failure wireResponse. -type wireResponse struct { - // VersionTag is always encoded as the string "2.0" - VersionTag version `json:"jsonrpc"` - // Result is the response value, and is required on success. - Result *json.RawMessage `json:"result,omitempty"` - // Error is a structured error response if the call fails. - Error *Error `json:"error,omitempty"` - // ID must be set and is the identifier of the Request this is a response to. - ID *ID `json:"id,omitempty"` -} - -// combined has all the fields of both Request and Response. -// -// We can decode this and then work out which it is. -type combined struct { - VersionTag version `json:"jsonrpc"` - ID *ID `json:"id,omitempty"` - Method string `json:"method"` - Params *json.RawMessage `json:"params,omitempty"` - Result *json.RawMessage `json:"result,omitempty"` - Error *Error `json:"error,omitempty"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/base.go b/vendor/github.com/a-h/templ/lsp/protocol/base.go deleted file mode 100644 index 5e92e69..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/base.go +++ /dev/null @@ -1,95 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "encoding/json" - "fmt" -) - -// CancelParams params of cancelRequest. -type CancelParams struct { - // ID is the request id to cancel. - ID any `json:"id"` // int32 | string -} - -// ProgressParams params of Progress netification. -// -// @since 3.15.0. -type ProgressParams struct { - // Token is the progress token provided by the client or server. - Token ProgressToken `json:"token"` - - // Value is the progress data. - Value any `json:"value"` -} - -// ProgressToken is the progress token provided by the client or server. -// -// @since 3.15.0. -type ProgressToken struct { - name string - number int32 -} - -// compile time check whether the ProgressToken implements a fmt.Formatter, fmt.Stringer, json.Marshaler and json.Unmarshaler interfaces. -var ( - _ fmt.Formatter = (*ProgressToken)(nil) - _ fmt.Stringer = (*ProgressToken)(nil) - _ json.Marshaler = (*ProgressToken)(nil) - _ json.Unmarshaler = (*ProgressToken)(nil) -) - -// NewProgressToken returns a new ProgressToken. -func NewProgressToken(s string) *ProgressToken { - return &ProgressToken{name: s} -} - -// NewNumberProgressToken returns a new number ProgressToken. -func NewNumberProgressToken(n int32) *ProgressToken { - return &ProgressToken{number: n} -} - -// Format writes the ProgressToken to the formatter. -// -// If the rune is q the representation is non ambiguous, -// string forms are quoted. -func (v ProgressToken) Format(f fmt.State, r rune) { - const numF = `%d` - strF := `%s` - if r == 'q' { - strF = `%q` - } - - switch { - case v.name != "": - _, _ = fmt.Fprintf(f, strF, v.name) - default: - _, _ = fmt.Fprintf(f, numF, v.number) - } -} - -// String returns a string representation of the ProgressToken. -func (v ProgressToken) String() string { - return fmt.Sprint(v) -} - -// MarshalJSON implements json.Marshaler. -func (v *ProgressToken) MarshalJSON() ([]byte, error) { - if v.name != "" { - return json.Marshal(v.name) - } - - return json.Marshal(v.number) -} - -// UnmarshalJSON implements json.Unmarshaler. -func (v *ProgressToken) UnmarshalJSON(data []byte) error { - *v = ProgressToken{} - if err := json.Unmarshal(data, &v.number); err == nil { - return nil - } - - return json.Unmarshal(data, &v.name) -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/basic.go b/vendor/github.com/a-h/templ/lsp/protocol/basic.go deleted file mode 100644 index 0830fa7..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/basic.go +++ /dev/null @@ -1,705 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "github.com/a-h/templ/lsp/uri" -) - -// DocumentURI represents the URI of a document. -// -// Many of the interfaces contain fields that correspond to the URI of a document. -// For clarity, the type of such a field is declared as a DocumentURI. -// Over the wire, it will still be transferred as a string, but this guarantees -// that the contents of that string can be parsed as a valid URI. -type DocumentURI = uri.URI - -// URI a tagging interface for normal non document URIs. -// -// @since 3.16.0. -type URI = uri.URI - -// EOL denotes represents the character offset. -var EOL = []string{"\n", "\r\n", "\r"} - -// Position represents a text document expressed as zero-based line and zero-based character offset. -// -// The offsets are based on a UTF-16 string representation. -// So a string of the form "a𐐀b" the character offset of the character "a" is 0, -// the character offset of "𐐀" is 1 and the character offset of "b" is 3 since 𐐀 is represented using two code -// units in UTF-16. -// -// Positions are line end character agnostic. So you can not specify a position that -// denotes "\r|\n" or "\n|" where "|" represents the character offset. -// -// Position is between two characters like an "insert" cursor in a editor. -// Special values like for example "-1" to denote the end of a line are not supported. -type Position struct { - // Line position in a document (zero-based). - // - // If a line number is greater than the number of lines in a document, it defaults back to the number of lines in - // the document. - // If a line number is negative, it defaults to 0. - Line uint32 `json:"line"` - - // Character offset on a line in a document (zero-based). - // - // Assuming that the line is represented as a string, the Character value represents the gap between the - // "character" and "character + 1". - // - // If the character value is greater than the line length it defaults back to the line length. - // If a line number is negative, it defaults to 0. - Character uint32 `json:"character"` -} - -// Range represents a text document expressed as (zero-based) start and end positions. -// -// A range is comparable to a selection in an editor. Therefore the end position is exclusive. -// If you want to specify a range that contains a line including the line ending character(s) then use an end position -// denoting the start of the next line. -type Range struct { - // Start is the range's start position. - Start Position `json:"start"` - - // End is the range's end position. - End Position `json:"end"` -} - -// Location represents a location inside a resource, such as a line inside a text file. -type Location struct { - URI DocumentURI `json:"uri"` - Range Range `json:"range"` -} - -// LocationLink represents a link between a source and a target location. -type LocationLink struct { - // OriginSelectionRange span of the origin of this link. - // - // Used as the underlined span for mouse interaction. Defaults to the word range at the mouse position. - OriginSelectionRange *Range `json:"originSelectionRange,omitempty"` - - // TargetURI is the target resource identifier of this link. - TargetURI DocumentURI `json:"targetUri"` - - // TargetRange is the full target range of this link. - // - // If the target for example is a symbol then target range is the range enclosing this symbol not including - // leading/trailing whitespace but everything else like comments. - // - // This information is typically used to highlight the range in the editor. - TargetRange Range `json:"targetRange"` - - // TargetSelectionRange is the range that should be selected and revealed when this link is being followed, - // e.g the name of a function. - // - // Must be contained by the the TargetRange. See also DocumentSymbol#range - TargetSelectionRange Range `json:"targetSelectionRange"` -} - -// Command represents a reference to a command. Provides a title which will be used to represent a command in the UI. -// -// Commands are identified by a string identifier. -// The recommended way to handle commands is to implement their execution on the server side if the client and -// server provides the corresponding capabilities. -// -// Alternatively the tool extension code could handle the command. The protocol currently doesn't specify -// a set of well-known commands. -type Command struct { - // Title of the command, like `save`. - Title string `json:"title"` - - // Command is the identifier of the actual command handler. - Command string `json:"command"` - - // Arguments that the command handler should be invoked with. - Arguments []any `json:"arguments,omitempty"` -} - -// TextEdit is a textual edit applicable to a text document. -type TextEdit struct { - // Range is the range of the text document to be manipulated. - // - // To insert text into a document create a range where start == end. - Range Range `json:"range"` - - // NewText is the string to be inserted. For delete operations use an - // empty string. - NewText string `json:"newText"` -} - -// ChangeAnnotation is the additional information that describes document changes. -// -// @since 3.16.0. -type ChangeAnnotation struct { - // Label a human-readable string describing the actual change. - // The string is rendered prominent in the user interface. - Label string `json:"label"` - - // NeedsConfirmation is a flag which indicates that user confirmation is needed - // before applying the change. - NeedsConfirmation bool `json:"needsConfirmation,omitempty"` - - // Description is a human-readable string which is rendered less prominent in - // the user interface. - Description string `json:"description,omitempty"` -} - -// ChangeAnnotationIdentifier an identifier referring to a change annotation managed by a workspace -// edit. -// -// @since 3.16.0. -type ChangeAnnotationIdentifier string - -// AnnotatedTextEdit is a special text edit with an additional change annotation. -// -// @since 3.16.0. -type AnnotatedTextEdit struct { - TextEdit - - // AnnotationID is the actual annotation identifier. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId"` -} - -// TextDocumentEdit describes textual changes on a single text document. -// -// The TextDocument is referred to as a OptionalVersionedTextDocumentIdentifier to allow clients to check the -// text document version before an edit is applied. -// -// TextDocumentEdit describes all changes on a version "Si" and after they are applied move the document to -// version "Si+1". -// So the creator of a TextDocumentEdit doesn't need to sort the array or do any kind of ordering. However the -// edits must be non overlapping. -type TextDocumentEdit struct { - // TextDocument is the text document to change. - TextDocument OptionalVersionedTextDocumentIdentifier `json:"textDocument"` - - // Edits is the edits to be applied. - // - // @since 3.16.0 - support for AnnotatedTextEdit. - // This is guarded by the client capability Workspace.WorkspaceEdit.ChangeAnnotationSupport. - Edits []TextEdit `json:"edits"` // []TextEdit | []AnnotatedTextEdit -} - -// ResourceOperationKind is the file event type. -type ResourceOperationKind string - -const ( - // CreateResourceOperation supports creating new files and folders. - CreateResourceOperation ResourceOperationKind = "create" - - // RenameResourceOperation supports renaming existing files and folders. - RenameResourceOperation ResourceOperationKind = "rename" - - // DeleteResourceOperation supports deleting existing files and folders. - DeleteResourceOperation ResourceOperationKind = "delete" -) - -// CreateFileOptions represents an options to create a file. -type CreateFileOptions struct { - // Overwrite existing file. Overwrite wins over `ignoreIfExists`. - Overwrite bool `json:"overwrite,omitempty"` - - // IgnoreIfExists ignore if exists. - IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` -} - -// CreateFile represents a create file operation. -type CreateFile struct { - // Kind a create. - Kind ResourceOperationKind `json:"kind"` // should be `create` - - // URI is the resource to create. - URI DocumentURI `json:"uri"` - - // Options additional options. - Options *CreateFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// RenameFileOptions represents a rename file options. -type RenameFileOptions struct { - // Overwrite target if existing. Overwrite wins over `ignoreIfExists`. - Overwrite bool `json:"overwrite,omitempty"` - - // IgnoreIfExists ignores if target exists. - IgnoreIfExists bool `json:"ignoreIfExists,omitempty"` -} - -// RenameFile represents a rename file operation. -type RenameFile struct { - // Kind a rename. - Kind ResourceOperationKind `json:"kind"` // should be `rename` - - // OldURI is the old (existing) location. - OldURI DocumentURI `json:"oldUri"` - - // NewURI is the new location. - NewURI DocumentURI `json:"newUri"` - - // Options rename options. - Options *RenameFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// DeleteFileOptions represents a delete file options. -type DeleteFileOptions struct { - // Recursive delete the content recursively if a folder is denoted. - Recursive bool `json:"recursive,omitempty"` - - // IgnoreIfNotExists ignore the operation if the file doesn't exist. - IgnoreIfNotExists bool `json:"ignoreIfNotExists,omitempty"` -} - -// DeleteFile represents a delete file operation. -type DeleteFile struct { - // Kind is a delete. - Kind ResourceOperationKind `json:"kind"` // should be `delete` - - // URI is the file to delete. - URI DocumentURI `json:"uri"` - - // Options delete options. - Options *DeleteFileOptions `json:"options,omitempty"` - - // AnnotationID an optional annotation identifier describing the operation. - // - // @since 3.16.0. - AnnotationID ChangeAnnotationIdentifier `json:"annotationId,omitempty"` -} - -// WorkspaceEdit represent a changes to many resources managed in the workspace. -// -// The edit should either provide changes or documentChanges. -// If the client can handle versioned document edits and if documentChanges are present, the latter are preferred over -// changes. -type WorkspaceEdit struct { - // Changes holds changes to existing resources. - Changes map[DocumentURI][]TextEdit `json:"changes,omitempty"` - - // DocumentChanges depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes - // are either an array of `TextDocumentEdit`s to express changes to n different text documents - // where each text document edit addresses a specific version of a text document. Or it can contain - // above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations. - // - // Whether a client supports versioned document edits is expressed via - // `workspace.workspaceEdit.documentChanges` client capability. - // - // If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then - // only plain `TextEdit`s using the `changes` property are supported. - DocumentChanges []TextDocumentEdit `json:"documentChanges,omitempty"` - - // ChangeAnnotations is a map of change annotations that can be referenced in - // "AnnotatedTextEdit"s or create, rename and delete file / folder - // operations. - // - // Whether clients honor this property depends on the client capability - // "workspace.changeAnnotationSupport". - // - // @since 3.16.0. - ChangeAnnotations map[ChangeAnnotationIdentifier]ChangeAnnotation `json:"changeAnnotations,omitempty"` -} - -// TextDocumentIdentifier indicates the using a URI. On the protocol level, URIs are passed as strings. -type TextDocumentIdentifier struct { - // URI is the text document's URI. - URI DocumentURI `json:"uri"` -} - -// TextDocumentItem represent an item to transfer a text document from the client to the server. -type TextDocumentItem struct { - // URI is the text document's URI. - URI DocumentURI `json:"uri"` - - // LanguageID is the text document's language identifier. - LanguageID LanguageIdentifier `json:"languageId"` - - // Version is the version number of this document (it will increase after each - // change, including undo/redo). - Version int32 `json:"version"` - - // Text is the content of the opened text document. - Text string `json:"text"` -} - -// LanguageIdentifier represent a text document's language identifier. -type LanguageIdentifier string - -const ( - // ABAPLanguage ABAP Language. - ABAPLanguage LanguageIdentifier = "abap" - - // BatLanguage Windows Bat Language. - BatLanguage LanguageIdentifier = "bat" - - // BibtexLanguage BibTeX Language. - BibtexLanguage LanguageIdentifier = "bibtex" - - // ClojureLanguage Clojure Language. - ClojureLanguage LanguageIdentifier = "clojure" - - // CoffeescriptLanguage CoffeeScript Language. - CoffeeScriptLanguage LanguageIdentifier = "coffeescript" - - // CLanguage C Language. - CLanguage LanguageIdentifier = "c" - - // CppLanguage C++ Language. - CppLanguage LanguageIdentifier = "cpp" - - // CsharpLanguage C# Language. - CsharpLanguage LanguageIdentifier = "csharp" - - // CSSLanguage CSS Language. - CSSLanguage LanguageIdentifier = "css" - - // DiffLanguage Diff Language. - DiffLanguage LanguageIdentifier = "diff" - - // DartLanguage Dart Language. - DartLanguage LanguageIdentifier = "dart" - - // DockerfileLanguage Dockerfile Language. - DockerfileLanguage LanguageIdentifier = "dockerfile" - - // ElixirLanguage Elixir Language. - ElixirLanguage LanguageIdentifier = "elixir" - - // ErlangLanguage Erlang Language. - ErlangLanguage LanguageIdentifier = "erlang" - - // FsharpLanguage F# Language. - FsharpLanguage LanguageIdentifier = "fsharp" - - // GitCommitLanguage Git Language. - GitCommitLanguage LanguageIdentifier = "git-commit" - - // GitRebaseLanguage Git Language. - GitRebaseLanguage LanguageIdentifier = "git-rebase" - - // GoLanguage Go Language. - GoLanguage LanguageIdentifier = "go" - - // GroovyLanguage Groovy Language. - GroovyLanguage LanguageIdentifier = "groovy" - - // HandlebarsLanguage Handlebars Language. - HandlebarsLanguage LanguageIdentifier = "handlebars" - - // HTMLLanguage HTML Language. - HTMLLanguage LanguageIdentifier = "html" - - // IniLanguage Ini Language. - IniLanguage LanguageIdentifier = "ini" - - // JavaLanguage Java Language. - JavaLanguage LanguageIdentifier = "java" - - // JavaScriptLanguage JavaScript Language. - JavaScriptLanguage LanguageIdentifier = "javascript" - - // JavaScriptReactLanguage JavaScript React Language. - JavaScriptReactLanguage LanguageIdentifier = "javascriptreact" - - // JSONLanguage JSON Language. - JSONLanguage LanguageIdentifier = "json" - - // LatexLanguage LaTeX Language. - LatexLanguage LanguageIdentifier = "latex" - - // LessLanguage Less Language. - LessLanguage LanguageIdentifier = "less" - - // LuaLanguage Lua Language. - LuaLanguage LanguageIdentifier = "lua" - - // MakefileLanguage Makefile Language. - MakefileLanguage LanguageIdentifier = "makefile" - - // MarkdownLanguage Markdown Language. - MarkdownLanguage LanguageIdentifier = "markdown" - - // ObjectiveCLanguage Objective-C Language. - ObjectiveCLanguage LanguageIdentifier = "objective-c" - - // ObjectiveCppLanguage Objective-C++ Language. - ObjectiveCppLanguage LanguageIdentifier = "objective-cpp" - - // PerlLanguage Perl Language. - PerlLanguage LanguageIdentifier = "perl" - - // Perl6Language Perl Language. - Perl6Language LanguageIdentifier = "perl6" - - // PHPLanguage PHP Language. - PHPLanguage LanguageIdentifier = "php" - - // PowershellLanguage Powershell Language. - PowershellLanguage LanguageIdentifier = "powershell" - - // JadeLanguage Pug Language. - JadeLanguage LanguageIdentifier = "jade" - - // PythonLanguage Python Language. - PythonLanguage LanguageIdentifier = "python" - - // RLanguage R Language. - RLanguage LanguageIdentifier = "r" - - // RazorLanguage Razor(cshtml) Language. - RazorLanguage LanguageIdentifier = "razor" - - // RubyLanguage Ruby Language. - RubyLanguage LanguageIdentifier = "ruby" - - // RustLanguage Rust Language. - RustLanguage LanguageIdentifier = "rust" - - // SCSSLanguage SCSS Languages syntax using curly brackets. - SCSSLanguage LanguageIdentifier = "scss" - - // SASSLanguage SCSS Languages indented syntax. - SASSLanguage LanguageIdentifier = "sass" - - // ScalaLanguage Scala Language. - ScalaLanguage LanguageIdentifier = "scala" - - // ShaderlabLanguage ShaderLab Language. - ShaderlabLanguage LanguageIdentifier = "shaderlab" - - // ShellscriptLanguage Shell Script (Bash) Language. - ShellscriptLanguage LanguageIdentifier = "shellscript" - - // SQLLanguage SQL Language. - SQLLanguage LanguageIdentifier = "sql" - - // SwiftLanguage Swift Language. - SwiftLanguage LanguageIdentifier = "swift" - - // TypeScriptLanguage TypeScript Language. - TypeScriptLanguage LanguageIdentifier = "typescript" - - // TypeScriptReactLanguage TypeScript React Language. - TypeScriptReactLanguage LanguageIdentifier = "typescriptreact" - - // TeXLanguage TeX Language. - TeXLanguage LanguageIdentifier = "tex" - - // VBLanguage Visual Basic Language. - VBLanguage LanguageIdentifier = "vb" - - // XMLLanguage XML Language. - XMLLanguage LanguageIdentifier = "xml" - - // XslLanguage XSL Language. - XslLanguage LanguageIdentifier = "xsl" - - // YamlLanguage YAML Language. - YamlLanguage LanguageIdentifier = "yaml" -) - -// languageIdentifierMap map of LanguageIdentifiers. -var languageIdentifierMap = map[string]LanguageIdentifier{ - "abap": ABAPLanguage, - "bat": BatLanguage, - "bibtex": BibtexLanguage, - "clojure": ClojureLanguage, - "coffeescript": CoffeeScriptLanguage, - "c": CLanguage, - "cpp": CppLanguage, - "csharp": CsharpLanguage, - "css": CSSLanguage, - "diff": DiffLanguage, - "dart": DartLanguage, - "dockerfile": DockerfileLanguage, - "elixir": ElixirLanguage, - "erlang": ErlangLanguage, - "fsharp": FsharpLanguage, - "git-commit": GitCommitLanguage, - "git-rebase": GitRebaseLanguage, - "go": GoLanguage, - "groovy": GroovyLanguage, - "handlebars": HandlebarsLanguage, - "html": HTMLLanguage, - "ini": IniLanguage, - "java": JavaLanguage, - "javascript": JavaScriptLanguage, - "javascriptreact": JavaScriptReactLanguage, - "json": JSONLanguage, - "latex": LatexLanguage, - "less": LessLanguage, - "lua": LuaLanguage, - "makefile": MakefileLanguage, - "markdown": MarkdownLanguage, - "objective-c": ObjectiveCLanguage, - "objective-cpp": ObjectiveCppLanguage, - "perl": PerlLanguage, - "perl6": Perl6Language, - "php": PHPLanguage, - "powershell": PowershellLanguage, - "jade": JadeLanguage, - "python": PythonLanguage, - "r": RLanguage, - "razor": RazorLanguage, - "ruby": RubyLanguage, - "rust": RustLanguage, - "scss": SCSSLanguage, - "sass": SASSLanguage, - "scala": ScalaLanguage, - "shaderlab": ShaderlabLanguage, - "shellscript": ShellscriptLanguage, - "sql": SQLLanguage, - "swift": SwiftLanguage, - "typescript": TypeScriptLanguage, - "typescriptreact": TypeScriptReactLanguage, - "tex": TeXLanguage, - "vb": VBLanguage, - "xml": XMLLanguage, - "xsl": XslLanguage, - "yaml": YamlLanguage, -} - -// ToLanguageIdentifier converts ft to LanguageIdentifier. -func ToLanguageIdentifier(ft string) LanguageIdentifier { - langID, ok := languageIdentifierMap[ft] - if ok { - return langID - } - - return LanguageIdentifier(ft) -} - -// VersionedTextDocumentIdentifier represents an identifier to denote a specific version of a text document. -// -// This information usually flows from the client to the server. -type VersionedTextDocumentIdentifier struct { - TextDocumentIdentifier - - // Version is the version number of this document. - // - // The version number of a document will increase after each change, including - // undo/redo. The number doesn't need to be consecutive. - Version int32 `json:"version"` -} - -// OptionalVersionedTextDocumentIdentifier represents an identifier which optionally denotes a specific version of -// a text document. -// -// This information usually flows from the server to the client. -// -// @since 3.16.0. -type OptionalVersionedTextDocumentIdentifier struct { - TextDocumentIdentifier - - // Version is the version number of this document. If an optional versioned text document - // identifier is sent from the server to the client and the file is not - // open in the editor (the server has not received an open notification - // before) the server can send `null` to indicate that the version is - // known and the content on disk is the master (as specified with document - // content ownership). - // - // The version number of a document will increase after each change, - // including undo/redo. The number doesn't need to be consecutive. - Version *int32 `json:"version"` // int32 | null -} - -// TextDocumentPositionParams is a parameter literal used in requests to pass a text document and a position -// inside that document. -// -// It is up to the client to decide how a selection is converted into a position when issuing a request for a text -// document. -// -// The client can for example honor or ignore the selection direction to make LSP request consistent with features -// implemented internally. -type TextDocumentPositionParams struct { - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Position is the position inside the text document. - Position Position `json:"position"` -} - -// DocumentFilter is a document filter denotes a document through properties like language, scheme or pattern. -// -// An example is a filter that applies to TypeScript files on disk. -type DocumentFilter struct { - // Language a language id, like `typescript`. - Language string `json:"language,omitempty"` - - // Scheme a URI scheme, like `file` or `untitled`. - Scheme string `json:"scheme,omitempty"` - - // Pattern a glob pattern, like `*.{ts,js}`. - // - // Glob patterns can have the following syntax: - // "*" - // "*" to match one or more characters in a path segment - // "?" - // "?" to match on one character in a path segment - // "**" - // "**" to match any number of path segments, including none - // "{}" - // "{}" to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) - // "[]" - // "[]" to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // "[!...]" - // "[!...]" to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) - Pattern string `json:"pattern,omitempty"` -} - -// DocumentSelector is a document selector is the combination of one or more document filters. -type DocumentSelector []*DocumentFilter - -// MarkupKind describes the content type that a client supports in various -// result literals like `Hover`, `ParameterInfo` or `CompletionItem`. -// -// Please note that `MarkupKinds` must not start with a `$`. This kinds -// are reserved for internal usage. -type MarkupKind string - -const ( - // PlainText is supported as a content format. - PlainText MarkupKind = "plaintext" - - // Markdown is supported as a content format. - Markdown MarkupKind = "markdown" -) - -// MarkupContent a `MarkupContent` literal represents a string value which content is interpreted base on its -// kind flag. -// -// Currently the protocol supports `plaintext` and `markdown` as markup kinds. -// -// If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues. -// See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting -// -// Here is an example how such a string can be constructed using JavaScript / TypeScript: -// -// let markdown: MarkdownContent = { -// kind: MarkupKind.Markdown, -// value: [ -// '# Header', -// 'Some text', -// '```typescript', -// 'someCode();', -// '```' -// ].join('\n') -// }; -// -// NOTE: clients might sanitize the return markdown. A client could decide to -// remove HTML from the markdown to avoid script execution. -type MarkupContent struct { - // Kind is the type of the Markup - Kind MarkupKind `json:"kind"` - - // Value is the content itself - Value string `json:"value"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go b/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go deleted file mode 100644 index 69a4d13..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/callhierarchy.go +++ /dev/null @@ -1,103 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// CallHierarchy capabilities specific to the "textDocument/callHierarchy". -// -// @since 3.16.0. -type CallHierarchy struct { - // DynamicRegistration whether implementation supports dynamic registration. - // - // If this is set to "true" the client supports the new - // TextDocumentRegistrationOptions && StaticRegistrationOptions return - // value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// CallHierarchyPrepareParams params of CallHierarchyPrepare. -// -// @since 3.16.0. -type CallHierarchyPrepareParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// CallHierarchyItem is the result of a "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -type CallHierarchyItem struct { - // name is the name of this item. - Name string `json:"name"` - - // Kind is the kind of this item. - Kind SymbolKind `json:"kind"` - - // Tags for this item. - Tags []SymbolTag `json:"tags,omitempty"` - - // Detail more detail for this item, e.g. the signature of a function. - Detail string `json:"detail,omitempty"` - - // URI is the resource identifier of this item. - URI DocumentURI `json:"uri"` - - // Range is the range enclosing this symbol not including leading/trailing whitespace - // but everything else, e.g. comments and code. - Range Range `json:"range"` - - // SelectionRange is the range that should be selected and revealed when this symbol is being - // picked, e.g. the name of a function. Must be contained by the - // Range. - SelectionRange Range `json:"selectionRange"` - - // Data is a data entry field that is preserved between a call hierarchy prepare and - // incoming calls or outgoing calls requests. - Data any `json:"data,omitempty"` -} - -// CallHierarchyIncomingCallsParams params of CallHierarchyIncomingCalls. -// -// @since 3.16.0. -type CallHierarchyIncomingCallsParams struct { - WorkDoneProgressParams - PartialResultParams - - // Item is the IncomingCalls item. - Item CallHierarchyItem `json:"item"` -} - -// CallHierarchyIncomingCall is the result of a "callHierarchy/incomingCalls" request. -// -// @since 3.16.0. -type CallHierarchyIncomingCall struct { - // From is the item that makes the call. - From CallHierarchyItem `json:"from"` - - // FromRanges is the ranges at which the calls appear. This is relative to the caller - // denoted by From. - FromRanges []Range `json:"fromRanges"` -} - -// CallHierarchyOutgoingCallsParams params of CallHierarchyOutgoingCalls. -// -// @since 3.16.0. -type CallHierarchyOutgoingCallsParams struct { - WorkDoneProgressParams - PartialResultParams - - // Item is the OutgoingCalls item. - Item CallHierarchyItem `json:"item"` -} - -// CallHierarchyOutgoingCall is the result of a "callHierarchy/outgoingCalls" request. -// -// @since 3.16.0. -type CallHierarchyOutgoingCall struct { - // To is the item that is called. - To CallHierarchyItem `json:"to"` - - // FromRanges is the range at which this item is called. This is the range relative to - // the caller, e.g the item passed to "callHierarchy/outgoingCalls" request. - FromRanges []Range `json:"fromRanges"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go deleted file mode 100644 index 3d80bef..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_client.go +++ /dev/null @@ -1,1068 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "strconv" - -// ClientCapabilities now define capabilities for dynamic registration, workspace and text document features -// the client supports. -// -// The experimental can be used to pass experimental capabilities under development. -// -// For future compatibility a ClientCapabilities object literal can have more properties set than currently defined. -// Servers receiving a ClientCapabilities object literal with unknown properties should ignore these properties. -// -// A missing property should be interpreted as an absence of the capability. -// If a missing property normally defines sub properties, all missing sub properties should be interpreted -// as an absence of the corresponding capability. -type ClientCapabilities struct { - // Workspace specific client capabilities. - Workspace *WorkspaceClientCapabilities `json:"workspace,omitempty"` - - // TextDocument specific client capabilities. - TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitempty"` - - // Window specific client capabilities. - Window *WindowClientCapabilities `json:"window,omitempty"` - - // General client capabilities. - // - // @since 3.16.0. - General *GeneralClientCapabilities `json:"general,omitempty"` - - // Experimental client capabilities. - Experimental any `json:"experimental,omitempty"` -} - -// WorkspaceClientCapabilities Workspace specific client capabilities. -type WorkspaceClientCapabilities struct { - // The client supports applying batch edits to the workspace by supporting - // the request "workspace/applyEdit". - ApplyEdit bool `json:"applyEdit,omitempty"` - - // WorkspaceEdit capabilities specific to `WorkspaceEdit`s. - WorkspaceEdit *WorkspaceClientCapabilitiesWorkspaceEdit `json:"workspaceEdit,omitempty"` - - // DidChangeConfiguration capabilities specific to the `workspace/didChangeConfiguration` notification. - DidChangeConfiguration *DidChangeConfigurationWorkspaceClientCapabilities `json:"didChangeConfiguration,omitempty"` - - // DidChangeWatchedFiles capabilities specific to the `workspace/didChangeWatchedFiles` notification. - DidChangeWatchedFiles *DidChangeWatchedFilesWorkspaceClientCapabilities `json:"didChangeWatchedFiles,omitempty"` - - // Symbol capabilities specific to the "workspace/symbol" request. - Symbol *WorkspaceSymbolClientCapabilities `json:"symbol,omitempty"` - - // ExecuteCommand capabilities specific to the "workspace/executeCommand" request. - ExecuteCommand *ExecuteCommandClientCapabilities `json:"executeCommand,omitempty"` - - // WorkspaceFolders is the client has support for workspace folders. - // - // @since 3.6.0. - WorkspaceFolders bool `json:"workspaceFolders,omitempty"` - - // Configuration is the client supports "workspace/configuration" requests. - // - // @since 3.6.0. - Configuration bool `json:"configuration,omitempty"` - - // SemanticTokens is the capabilities specific to the semantic token requests scoped to the - // workspace. - // - // @since 3.16.0. - SemanticTokens *SemanticTokensWorkspaceClientCapabilities `json:"semanticTokens,omitempty"` - - // CodeLens is the Capabilities specific to the code lens requests scoped to the - // workspace. - // - // @since 3.16.0. - CodeLens *CodeLensWorkspaceClientCapabilities `json:"codeLens,omitempty"` - - // FileOperations is the client has support for file requests/notifications. - // - // @since 3.16.0. - FileOperations *WorkspaceClientCapabilitiesFileOperations `json:"fileOperations,omitempty"` -} - -// WorkspaceClientCapabilitiesWorkspaceEdit capabilities specific to "WorkspaceEdit"s. -type WorkspaceClientCapabilitiesWorkspaceEdit struct { - // DocumentChanges is the client supports versioned document changes in `WorkspaceEdit`s - DocumentChanges bool `json:"documentChanges,omitempty"` - - // FailureHandling is the failure handling strategy of a client if applying the workspace edit - // fails. - // - // Mostly FailureHandlingKind. - FailureHandling string `json:"failureHandling,omitempty"` - - // ResourceOperations is the resource operations the client supports. Clients should at least - // support "create", "rename" and "delete" files and folders. - ResourceOperations []string `json:"resourceOperations,omitempty"` - - // NormalizesLineEndings whether the client normalizes line endings to the client specific - // setting. - // If set to `true` the client will normalize line ending characters - // in a workspace edit to the client specific new line character(s). - // - // @since 3.16.0. - NormalizesLineEndings bool `json:"normalizesLineEndings,omitempty"` - - // ChangeAnnotationSupport whether the client in general supports change annotations on text edits, - // create file, rename file and delete file changes. - // - // @since 3.16.0. - ChangeAnnotationSupport *WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport `json:"changeAnnotationSupport,omitempty"` -} - -// FailureHandlingKind is the kind of failure handling . -type FailureHandlingKind string - -const ( - // FailureHandlingKindAbort applying the workspace change is simply aborted if one of the changes provided - // fails. All operations executed before the failing operation stay executed. - FailureHandlingKindAbort FailureHandlingKind = "abort" - - // FailureHandlingKindTransactional all operations are executed transactional. That means they either all - // succeed or no changes at all are applied to the workspace. - FailureHandlingKindTransactional FailureHandlingKind = "transactional" - - // FailureHandlingKindTextOnlyTransactional if the workspace edit contains only textual file changes they are executed transactional. - // If resource changes (create, rename or delete file) are part of the change the failure - // handling strategy is abort. - FailureHandlingKindTextOnlyTransactional FailureHandlingKind = "textOnlyTransactional" - - // FailureHandlingKindUndo the client tries to undo the operations already executed. But there is no - // guarantee that this is succeeding. - FailureHandlingKindUndo FailureHandlingKind = "undo" -) - -// WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport is the ChangeAnnotationSupport of WorkspaceClientCapabilitiesWorkspaceEdit. -// -// @since 3.16.0. -type WorkspaceClientCapabilitiesWorkspaceEditChangeAnnotationSupport struct { - // GroupsOnLabel whether the client groups edits with equal labels into tree nodes, - // for instance all edits labeled with "Changes in Strings" would - // be a tree node. - GroupsOnLabel bool `json:"groupsOnLabel,omitempty"` -} - -// DidChangeConfigurationWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeConfiguration" notification. -// -// @since 3.16.0. -type DidChangeConfigurationWorkspaceClientCapabilities struct { - // DynamicRegistration whether the did change configuration notification supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DidChangeWatchedFilesWorkspaceClientCapabilities capabilities specific to the "workspace/didChangeWatchedFiles" notification. -// -// @since 3.16.0. -type DidChangeWatchedFilesWorkspaceClientCapabilities struct { - // Did change watched files notification supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// WorkspaceSymbolClientCapabilities capabilities specific to the `workspace/symbol` request. -// -// WorkspaceSymbolClientCapabilities is the workspace symbol request is sent from the client to the server to -// list project-wide symbols matching the query string. -type WorkspaceSymbolClientCapabilities struct { - // DynamicRegistration is the Symbol request supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SymbolKindCapabilities is the specific capabilities for the SymbolKindCapabilities in the "workspace/symbol" request. - SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` - - // TagSupport is the client supports tags on `SymbolInformation`. - // Clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.16.0 - TagSupport *TagSupportCapabilities `json:"tagSupport,omitempty"` -} - -type SymbolKindCapabilities struct { - // ValueSet is the symbol kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - // - // If this property is not present the client only supports - // the symbol kinds from `File` to `Array` as defined in - // the initial version of the protocol. - ValueSet []SymbolKind `json:"valueSet,omitempty"` -} - -type TagSupportCapabilities struct { - // ValueSet is the tags supported by the client. - ValueSet []SymbolTag `json:"valueSet,omitempty"` -} - -// ExecuteCommandClientCapabilities capabilities specific to the "workspace/executeCommand" request. -type ExecuteCommandClientCapabilities struct { - // DynamicRegistration Execute command supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// SemanticTokensWorkspaceClientCapabilities capabilities specific to the "workspace/semanticToken" request. -// -// @since 3.16.0. -type SemanticTokensWorkspaceClientCapabilities struct { - // RefreshSupport whether the client implementation supports a refresh request sent from - // the server to the client. - // - // Note that this event is global and will force the client to refresh all - // semantic tokens currently shown. It should be used with absolute care - // and is useful for situation where a server for example detect a project - // wide change that requires such a calculation. - RefreshSupport bool `json:"refreshSupport,omitempty"` -} - -// CodeLensWorkspaceClientCapabilities capabilities specific to the "workspace/codeLens" request. -// -// @since 3.16.0. -type CodeLensWorkspaceClientCapabilities struct { - // RefreshSupport whether the client implementation supports a refresh request sent from the - // server to the client. - // - // Note that this event is global and will force the client to refresh all - // code lenses currently shown. It should be used with absolute care and is - // useful for situation where a server for example detect a project wide - // change that requires such a calculation. - RefreshSupport bool `json:"refreshSupport,omitempty"` -} - -// WorkspaceClientCapabilitiesFileOperations capabilities specific to the fileOperations. -// -// @since 3.16.0. -type WorkspaceClientCapabilitiesFileOperations struct { - // DynamicRegistration whether the client supports dynamic registration for file - // requests/notifications. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // DidCreate is the client has support for sending didCreateFiles notifications. - DidCreate bool `json:"didCreate,omitempty"` - - // WillCreate is the client has support for sending willCreateFiles requests. - WillCreate bool `json:"willCreate,omitempty"` - - // DidRename is the client has support for sending didRenameFiles notifications. - DidRename bool `json:"didRename,omitempty"` - - // WillRename is the client has support for sending willRenameFiles requests. - WillRename bool `json:"willRename,omitempty"` - - // DidDelete is the client has support for sending didDeleteFiles notifications. - DidDelete bool `json:"didDelete,omitempty"` - - // WillDelete is the client has support for sending willDeleteFiles requests. - WillDelete bool `json:"willDelete,omitempty"` -} - -// TextDocumentClientCapabilities Text document specific client capabilities. -type TextDocumentClientCapabilities struct { - // Synchronization defines which synchronization capabilities the client supports. - Synchronization *TextDocumentSyncClientCapabilities `json:"synchronization,omitempty"` - - // Completion Capabilities specific to the "textDocument/completion". - Completion *CompletionTextDocumentClientCapabilities `json:"completion,omitempty"` - - // Hover capabilities specific to the "textDocument/hover". - Hover *HoverTextDocumentClientCapabilities `json:"hover,omitempty"` - - // SignatureHelp capabilities specific to the "textDocument/signatureHelp". - SignatureHelp *SignatureHelpTextDocumentClientCapabilities `json:"signatureHelp,omitempty"` - - // Declaration capabilities specific to the "textDocument/declaration". - Declaration *DeclarationTextDocumentClientCapabilities `json:"declaration,omitempty"` - - // Definition capabilities specific to the "textDocument/definition". - // - // @since 3.14.0. - Definition *DefinitionTextDocumentClientCapabilities `json:"definition,omitempty"` - - // TypeDefinition capabilities specific to the "textDocument/typeDefinition". - // - // @since 3.6.0. - TypeDefinition *TypeDefinitionTextDocumentClientCapabilities `json:"typeDefinition,omitempty"` - - // Implementation capabilities specific to the "textDocument/implementation". - // - // @since 3.6.0. - Implementation *ImplementationTextDocumentClientCapabilities `json:"implementation,omitempty"` - - // References capabilities specific to the "textDocument/references". - References *ReferencesTextDocumentClientCapabilities `json:"references,omitempty"` - - // DocumentHighlight capabilities specific to the "textDocument/documentHighlight". - DocumentHighlight *DocumentHighlightClientCapabilities `json:"documentHighlight,omitempty"` - - // DocumentSymbol capabilities specific to the "textDocument/documentSymbol". - DocumentSymbol *DocumentSymbolClientCapabilities `json:"documentSymbol,omitempty"` - - // CodeAction capabilities specific to the "textDocument/codeAction". - CodeAction *CodeActionClientCapabilities `json:"codeAction,omitempty"` - - // CodeLens capabilities specific to the "textDocument/codeLens". - CodeLens *CodeLensClientCapabilities `json:"codeLens,omitempty"` - - // DocumentLink capabilities specific to the "textDocument/documentLink". - DocumentLink *DocumentLinkClientCapabilities `json:"documentLink,omitempty"` - - // ColorProvider capabilities specific to the "textDocument/documentColor" and the - // "textDocument/colorPresentation" request. - // - // @since 3.6.0. - ColorProvider *DocumentColorClientCapabilities `json:"colorProvider,omitempty"` - - // Formatting Capabilities specific to the "textDocument/formatting" request. - Formatting *DocumentFormattingClientCapabilities `json:"formatting,omitempty"` - - // RangeFormatting Capabilities specific to the "textDocument/rangeFormatting" request. - RangeFormatting *DocumentRangeFormattingClientCapabilities `json:"rangeFormatting,omitempty"` - - // OnTypeFormatting Capabilities specific to the "textDocument/onTypeFormatting" request. - OnTypeFormatting *DocumentOnTypeFormattingClientCapabilities `json:"onTypeFormatting,omitempty"` - - // PublishDiagnostics capabilities specific to "textDocument/publishDiagnostics". - PublishDiagnostics *PublishDiagnosticsClientCapabilities `json:"publishDiagnostics,omitempty"` - - // Rename capabilities specific to the "textDocument/rename". - Rename *RenameClientCapabilities `json:"rename,omitempty"` - - // FoldingRange capabilities specific to "textDocument/foldingRange" requests. - // - // @since 3.10.0. - FoldingRange *FoldingRangeClientCapabilities `json:"foldingRange,omitempty"` - - // SelectionRange capabilities specific to "textDocument/selectionRange" requests. - // - // @since 3.15.0. - SelectionRange *SelectionRangeClientCapabilities `json:"selectionRange,omitempty"` - - // CallHierarchy capabilities specific to the various call hierarchy requests. - // - // @since 3.16.0. - CallHierarchy *CallHierarchyClientCapabilities `json:"callHierarchy,omitempty"` - - // SemanticTokens capabilities specific to the various semantic token requests. - // - // @since 3.16.0. - SemanticTokens *SemanticTokensClientCapabilities `json:"semanticTokens,omitempty"` - - // LinkedEditingRange capabilities specific to the "textDocument/linkedEditingRange" request. - // - // @since 3.16.0. - LinkedEditingRange *LinkedEditingRangeClientCapabilities `json:"linkedEditingRange,omitempty"` - - // Moniker capabilities specific to the "textDocument/moniker" request. - // - // @since 3.16.0. - Moniker *MonikerClientCapabilities `json:"moniker,omitempty"` -} - -// TextDocumentSyncClientCapabilities defines which synchronization capabilities the client supports. -type TextDocumentSyncClientCapabilities struct { - // DynamicRegistration whether text document synchronization supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // WillSave is the client supports sending will save notifications. - WillSave bool `json:"willSave,omitempty"` - - // WillSaveWaitUntil is the client supports sending a will save request and - // waits for a response providing text edits which will - // be applied to the document before it is saved. - WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` - - // DidSave is the client supports did save notifications. - DidSave bool `json:"didSave,omitempty"` -} - -// CompletionTextDocumentClientCapabilities Capabilities specific to the "textDocument/completion". -type CompletionTextDocumentClientCapabilities struct { - // Whether completion supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // The client supports the following `CompletionItem` specific - // capabilities. - CompletionItem *CompletionTextDocumentClientCapabilitiesItem `json:"completionItem,omitempty"` - - CompletionItemKind *CompletionTextDocumentClientCapabilitiesItemKind `json:"completionItemKind,omitempty"` - - // ContextSupport is the client supports to send additional context information for a - // `textDocument/completion` request. - ContextSupport bool `json:"contextSupport,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItem is the client supports the following "CompletionItem" specific -// capabilities. -type CompletionTextDocumentClientCapabilitiesItem struct { - // SnippetSupport client supports snippets as insert text. - // - // A snippet can define tab stops and placeholders with `$1`, `$2` - // and `${3:foo}`. `$0` defines the final tab stop, it defaults to - // the end of the snippet. Placeholders with equal identifiers are linked, - // that is typing in one will update others too. - SnippetSupport bool `json:"snippetSupport,omitempty"` - - // CommitCharactersSupport client supports commit characters on a completion item. - CommitCharactersSupport bool `json:"commitCharactersSupport,omitempty"` - - // DocumentationFormat client supports the follow content formats for the documentation - // property. The order describes the preferred format of the client. - DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` - - // DeprecatedSupport client supports the deprecated property on a completion item. - DeprecatedSupport bool `json:"deprecatedSupport,omitempty"` - - // PreselectSupport client supports the preselect property on a completion item. - PreselectSupport bool `json:"preselectSupport,omitempty"` - - // TagSupport is the client supports the tag property on a completion item. - // - // Clients supporting tags have to handle unknown tags gracefully. - // Clients especially need to preserve unknown tags when sending - // a completion item back to the server in a resolve call. - // - // @since 3.15.0. - TagSupport *CompletionTextDocumentClientCapabilitiesItemTagSupport `json:"tagSupport,omitempty"` - - // InsertReplaceSupport client supports insert replace edit to control different behavior if - // a completion item is inserted in the text or should replace text. - // - // @since 3.16.0. - InsertReplaceSupport bool `json:"insertReplaceSupport,omitempty"` - - // ResolveSupport indicates which properties a client can resolve lazily on a - // completion item. Before version 3.16.0 only the predefined properties - // `documentation` and `details` could be resolved lazily. - // - // @since 3.16.0. - ResolveSupport *CompletionTextDocumentClientCapabilitiesItemResolveSupport `json:"resolveSupport,omitempty"` - - // InsertTextModeSupport is the client supports the `insertTextMode` property on - // a completion item to override the whitespace handling mode - // as defined by the client (see `insertTextMode`). - // - // @since 3.16.0. - InsertTextModeSupport *CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport `json:"insertTextModeSupport,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemTagSupport specific capabilities for the "TagSupport" in the "textDocument/completion" request. -// -// @since 3.15.0. -type CompletionTextDocumentClientCapabilitiesItemTagSupport struct { - // ValueSet is the tags supported by the client. - // - // @since 3.15.0. - ValueSet []CompletionItemTag `json:"valueSet,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemResolveSupport specific capabilities for the ResolveSupport in the CompletionTextDocumentClientCapabilitiesItem. -// -// @since 3.16.0. -type CompletionTextDocumentClientCapabilitiesItemResolveSupport struct { - // Properties is the properties that a client can resolve lazily. - Properties []string `json:"properties"` -} - -// CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport specific capabilities for the InsertTextModeSupport in the CompletionTextDocumentClientCapabilitiesItem. -// -// @since 3.16.0. -type CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport struct { - // ValueSet is the tags supported by the client. - // - // @since 3.16.0. - ValueSet []InsertTextMode `json:"valueSet,omitempty"` -} - -// CompletionTextDocumentClientCapabilitiesItemKind specific capabilities for the "CompletionItemKind" in the "textDocument/completion" request. -type CompletionTextDocumentClientCapabilitiesItemKind struct { - // The completion item kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - // - // If this property is not present the client only supports - // the completion items kinds from `Text` to `Reference` as defined in - // the initial version of the protocol. - // - ValueSet []CompletionItemKind `json:"valueSet,omitempty"` -} - -// HoverTextDocumentClientCapabilities capabilities specific to the "textDocument/hover". -type HoverTextDocumentClientCapabilities struct { - // DynamicRegistration whether hover supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // ContentFormat is the client supports the follow content formats for the content - // property. The order describes the preferred format of the client. - ContentFormat []MarkupKind `json:"contentFormat,omitempty"` -} - -// SignatureHelpTextDocumentClientCapabilities capabilities specific to the "textDocument/signatureHelp". -type SignatureHelpTextDocumentClientCapabilities struct { - // DynamicRegistration whether signature help supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SignatureInformation is the client supports the following "SignatureInformation" - // specific properties. - SignatureInformation *TextDocumentClientCapabilitiesSignatureInformation `json:"signatureInformation,omitempty"` - - // ContextSupport is the client supports to send additional context information for a "textDocument/signatureHelp" request. - // - // A client that opts into contextSupport will also support the "retriggerCharacters" on "SignatureHelpOptions". - // - // @since 3.15.0. - ContextSupport bool `json:"contextSupport,omitempty"` -} - -// TextDocumentClientCapabilitiesSignatureInformation is the client supports the following "SignatureInformation" -// specific properties. -type TextDocumentClientCapabilitiesSignatureInformation struct { - // DocumentationFormat is the client supports the follow content formats for the documentation - // property. The order describes the preferred format of the client. - DocumentationFormat []MarkupKind `json:"documentationFormat,omitempty"` - - // ParameterInformation is the Client capabilities specific to parameter information. - ParameterInformation *TextDocumentClientCapabilitiesParameterInformation `json:"parameterInformation,omitempty"` - - // ActiveParameterSupport is the client supports the `activeParameter` property on - // `SignatureInformation` literal. - // - // @since 3.16.0. - ActiveParameterSupport bool `json:"activeParameterSupport,omitempty"` -} - -// TextDocumentClientCapabilitiesParameterInformation is the client capabilities specific to parameter information. -type TextDocumentClientCapabilitiesParameterInformation struct { - // LabelOffsetSupport is the client supports processing label offsets instead of a - // simple label string. - // - // @since 3.14.0. - LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"` -} - -// DeclarationTextDocumentClientCapabilities capabilities specific to the "textDocument/declaration". -type DeclarationTextDocumentClientCapabilities struct { - // DynamicRegistration whether declaration supports dynamic registration. If this is set to `true` - // the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of declaration links. - // - // @since 3.14.0. - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// DefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/definition". -// -// @since 3.14.0. -type DefinitionTextDocumentClientCapabilities struct { - // DynamicRegistration whether definition supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// TypeDefinitionTextDocumentClientCapabilities capabilities specific to the "textDocument/typeDefinition". -// -// @since 3.6.0. -type TypeDefinitionTextDocumentClientCapabilities struct { - // DynamicRegistration whether typeDefinition supports dynamic registration. If this is set to `true` - // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - // - // @since 3.14.0 - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// ImplementationTextDocumentClientCapabilities capabilities specific to the "textDocument/implementation". -// -// @since 3.6.0. -type ImplementationTextDocumentClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to `true` - // the client supports the new "(TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // LinkSupport is the client supports additional metadata in the form of definition links. - // - // @since 3.14.0 - LinkSupport bool `json:"linkSupport,omitempty"` -} - -// ReferencesTextDocumentClientCapabilities capabilities specific to the "textDocument/references". -type ReferencesTextDocumentClientCapabilities struct { - // DynamicRegistration whether references supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentHighlightClientCapabilities capabilities specific to the "textDocument/documentHighlight". -type DocumentHighlightClientCapabilities struct { - // DynamicRegistration Whether document highlight supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentSymbolClientCapabilities capabilities specific to the "textDocument/documentSymbol". -type DocumentSymbolClientCapabilities struct { - // DynamicRegistration whether document symbol supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // SymbolKind specific capabilities for the "SymbolKindCapabilities". - SymbolKind *SymbolKindCapabilities `json:"symbolKind,omitempty"` - - // HierarchicalDocumentSymbolSupport is the client support hierarchical document symbols. - HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"` - - // TagSupport is the client supports tags on "SymbolInformation". Tags are supported on - // "DocumentSymbol" if "HierarchicalDocumentSymbolSupport" is set to true. - // Clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.16.0. - TagSupport *DocumentSymbolClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` - - // LabelSupport is the client supports an additional label presented in the UI when - // registering a document symbol provider. - // - // @since 3.16.0. - LabelSupport bool `json:"labelSupport,omitempty"` -} - -// DocumentSymbolClientCapabilitiesTagSupport TagSupport in the DocumentSymbolClientCapabilities. -// -// @since 3.16.0. -type DocumentSymbolClientCapabilitiesTagSupport struct { - // ValueSet is the tags supported by the client. - ValueSet []SymbolTag `json:"valueSet"` -} - -// CodeActionClientCapabilities capabilities specific to the "textDocument/codeAction". -type CodeActionClientCapabilities struct { - // DynamicRegistration whether code action supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // CodeActionLiteralSupport is the client support code action literals as a valid - // response of the "textDocument/codeAction" request. - // - // @since 3.8.0 - CodeActionLiteralSupport *CodeActionClientCapabilitiesLiteralSupport `json:"codeActionLiteralSupport,omitempty"` - - // IsPreferredSupport whether code action supports the "isPreferred" property. - // - // @since 3.15.0. - IsPreferredSupport bool `json:"isPreferredSupport,omitempty"` - - // DisabledSupport whether code action supports the `disabled` property. - // - // @since 3.16.0. - DisabledSupport bool `json:"disabledSupport,omitempty"` - - // DataSupport whether code action supports the `data` property which is - // preserved between a `textDocument/codeAction` and a - // `codeAction/resolve` request. - // - // @since 3.16.0. - DataSupport bool `json:"dataSupport,omitempty"` - - // ResolveSupport whether the client supports resolving additional code action - // properties via a separate `codeAction/resolve` request. - // - // @since 3.16.0. - ResolveSupport *CodeActionClientCapabilitiesResolveSupport `json:"resolveSupport,omitempty"` - - // HonorsChangeAnnotations whether the client honors the change annotations in - // text edits and resource operations returned via the - // `CodeAction#edit` property by for example presenting - // the workspace edit in the user interface and asking - // for confirmation. - // - // @since 3.16.0. - HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` -} - -// CodeActionClientCapabilitiesLiteralSupport is the client support code action literals as a valid response of the "textDocument/codeAction" request. -type CodeActionClientCapabilitiesLiteralSupport struct { - // CodeActionKind is the code action kind is support with the following value - // set. - CodeActionKind *CodeActionClientCapabilitiesKind `json:"codeActionKind"` -} - -// CodeActionClientCapabilitiesKind is the code action kind is support with the following value set. -type CodeActionClientCapabilitiesKind struct { - // ValueSet is the code action kind values the client supports. When this - // property exists the client also guarantees that it will - // handle values outside its set gracefully and falls back - // to a default value when unknown. - ValueSet []CodeActionKind `json:"valueSet"` -} - -// CodeActionClientCapabilitiesResolveSupport ResolveSupport in the CodeActionClientCapabilities. -// -// @since 3.16.0. -type CodeActionClientCapabilitiesResolveSupport struct { - // Properties is the properties that a client can resolve lazily. - Properties []string `json:"properties"` -} - -// CodeLensClientCapabilities capabilities specific to the "textDocument/codeLens". -type CodeLensClientCapabilities struct { - // DynamicRegistration Whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentLinkClientCapabilities capabilities specific to the "textDocument/documentLink". -type DocumentLinkClientCapabilities struct { - // DynamicRegistration whether document link supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // TooltipSupport whether the client supports the "tooltip" property on "DocumentLink". - // - // @since 3.15.0. - TooltipSupport bool `json:"tooltipSupport,omitempty"` -} - -// DocumentColorClientCapabilities capabilities specific to the "textDocument/documentColor" and the -// "textDocument/colorPresentation" request. -// -// @since 3.6.0. -type DocumentColorClientCapabilities struct { - // DynamicRegistration whether colorProvider supports dynamic registration. If this is set to `true` - // the client supports the new "(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentFormattingClientCapabilities capabilities specific to the "textDocument/formatting". -type DocumentFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentRangeFormattingClientCapabilities capabilities specific to the "textDocument/rangeFormatting". -type DocumentRangeFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// DocumentOnTypeFormattingClientCapabilities capabilities specific to the "textDocument/onTypeFormatting". -type DocumentOnTypeFormattingClientCapabilities struct { - // DynamicRegistration whether code lens supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// PublishDiagnosticsClientCapabilities capabilities specific to "textDocument/publishDiagnostics". -type PublishDiagnosticsClientCapabilities struct { - // RelatedInformation whether the clients accepts diagnostics with related information. - RelatedInformation bool `json:"relatedInformation,omitempty"` - - // TagSupport clients supporting tags have to handle unknown tags gracefully. - // - // @since 3.15.0. - TagSupport *PublishDiagnosticsClientCapabilitiesTagSupport `json:"tagSupport,omitempty"` - - // VersionSupport whether the client interprets the version property of the - // "textDocument/publishDiagnostics" notification`s parameter. - // - // @since 3.15.0. - VersionSupport bool `json:"versionSupport,omitempty"` - - // CodeDescriptionSupport client supports a codeDescription property - // - // @since 3.16.0. - CodeDescriptionSupport bool `json:"codeDescriptionSupport,omitempty"` - - // DataSupport whether code action supports the `data` property which is - // preserved between a `textDocument/publishDiagnostics` and - // `textDocument/codeAction` request. - // - // @since 3.16.0. - DataSupport bool `json:"dataSupport,omitempty"` -} - -// PublishDiagnosticsClientCapabilitiesTagSupport is the client capacity of TagSupport. -// -// @since 3.15.0. -type PublishDiagnosticsClientCapabilitiesTagSupport struct { - // ValueSet is the tags supported by the client. - ValueSet []DiagnosticTag `json:"valueSet"` -} - -// RenameClientCapabilities capabilities specific to the "textDocument/rename". -type RenameClientCapabilities struct { - // DynamicRegistration whether rename supports dynamic registration. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // PrepareSupport is the client supports testing for validity of rename operations - // before execution. - PrepareSupport bool `json:"prepareSupport,omitempty"` - - // PrepareSupportDefaultBehavior client supports the default behavior result - // (`{ defaultBehavior: boolean }`). - // - // The value indicates the default behavior used by the - // client. - // - // @since 3.16.0. - PrepareSupportDefaultBehavior PrepareSupportDefaultBehavior `json:"prepareSupportDefaultBehavior,omitempty"` - - // HonorsChangeAnnotations whether th client honors the change annotations in - // text edits and resource operations returned via the - // rename request's workspace edit by for example presenting - // the workspace edit in the user interface and asking - // for confirmation. - // - // @since 3.16.0. - HonorsChangeAnnotations bool `json:"honorsChangeAnnotations,omitempty"` -} - -// PrepareSupportDefaultBehavior default behavior of PrepareSupport. -// -// @since 3.16.0. -type PrepareSupportDefaultBehavior float64 - -// list of PrepareSupportDefaultBehavior. -const ( - // PrepareSupportDefaultBehaviorIdentifier is the client's default behavior is to select the identifier - // according the to language's syntax rule. - PrepareSupportDefaultBehaviorIdentifier PrepareSupportDefaultBehavior = 1 -) - -// String returns a string representation of the PrepareSupportDefaultBehavior. -func (k PrepareSupportDefaultBehavior) String() string { - switch k { - case PrepareSupportDefaultBehaviorIdentifier: - return "Identifier" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// FoldingRangeClientCapabilities capabilities specific to "textDocument/foldingRange" requests. -// -// @since 3.10.0. -type FoldingRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration for folding range providers. If this is set to `true` - // the client supports the new "(FoldingRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // RangeLimit is the maximum number of folding ranges that the client prefers to receive per document. The value serves as a - // hint, servers are free to follow the limit. - RangeLimit uint32 `json:"rangeLimit,omitempty"` - - // LineFoldingOnly if set, the client signals that it only supports folding complete lines. If set, client will - // ignore specified "startCharacter" and "endCharacter" properties in a FoldingRange. - LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"` -} - -// SelectionRangeClientCapabilities capabilities specific to "textDocument/selectionRange" requests. -// -// @since 3.16.0. -type SelectionRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration for selection range providers. If this is set to `true` - // the client supports the new "(SelectionRangeProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)" - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// CallHierarchyClientCapabilities capabilities specific to "textDocument/callHierarchy" requests. -// -// @since 3.16.0. -type CallHierarchyClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well.} - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// SemanticTokensClientCapabilities capabilities specific to the "textDocument.semanticTokens" request. -// -// @since 3.16.0. -type SemanticTokensClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` - - // Requests which requests the client supports and might send to the server - // depending on the server's capability. Please note that clients might not - // show semantic tokens or degrade some of the user experience if a range - // or full request is advertised by the client but not provided by the - // server. If for example the client capability `requests.full` and - // `request.range` are both set to true but the server only provides a - // range provider the client might not render a minimap correctly or might - // even decide to not show any semantic tokens at all. - Requests SemanticTokensWorkspaceClientCapabilitiesRequests `json:"requests"` - - // TokenTypes is the token types that the client supports. - TokenTypes []string `json:"tokenTypes"` - - // TokenModifiers is the token modifiers that the client supports. - TokenModifiers []string `json:"tokenModifiers"` - - // Formats is the formats the clients supports. - Formats []TokenFormat `json:"formats"` - - // OverlappingTokenSupport whether the client supports tokens that can overlap each other. - OverlappingTokenSupport bool `json:"overlappingTokenSupport,omitempty"` - - // MultilineTokenSupport whether the client supports tokens that can span multiple lines. - MultilineTokenSupport bool `json:"multilineTokenSupport,omitempty"` -} - -// SemanticTokensWorkspaceClientCapabilitiesRequests capabilities specific to the "textDocument/semanticTokens/xxx" request. -// -// @since 3.16.0. -type SemanticTokensWorkspaceClientCapabilitiesRequests struct { - // Range is the client will send the "textDocument/semanticTokens/range" request - // if the server provides a corresponding handler. - Range bool `json:"range,omitempty"` - - // Full is the client will send the "textDocument/semanticTokens/full" request - // if the server provides a corresponding handler. The client will send the - // `textDocument/semanticTokens/full/delta` request if the server provides a - // corresponding handler. - Full any `json:"full,omitempty"` -} - -// LinkedEditingRangeClientCapabilities capabilities specific to "textDocument/linkedEditingRange" requests. -// -// @since 3.16.0. -type LinkedEditingRangeClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. - // If this is set to `true` the client supports the new - // `(TextDocumentRegistrationOptions & StaticRegistrationOptions)` - // return value for the corresponding server capability as well. - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// MonikerClientCapabilities capabilities specific to the "textDocument/moniker" request. -// -// @since 3.16.0. -type MonikerClientCapabilities struct { - // DynamicRegistration whether implementation supports dynamic registration. If this is set to - // `true` the client supports the new `(TextDocumentRegistrationOptions & - // StaticRegistrationOptions)` return value for the corresponding server - // capability as well.// DynamicRegistration whether implementation supports dynamic registration. If this is set to - DynamicRegistration bool `json:"dynamicRegistration,omitempty"` -} - -// WindowClientCapabilities represents a WindowClientCapabilities specific client capabilities. -// -// @since 3.15.0. -type WindowClientCapabilities struct { - // WorkDoneProgress whether client supports handling progress notifications. If set servers are allowed to - // report in "workDoneProgress" property in the request specific server capabilities. - // - // @since 3.15.0. - WorkDoneProgress bool `json:"workDoneProgress,omitempty"` - - // ShowMessage capabilities specific to the showMessage request. - // - // @since 3.16.0. - ShowMessage *ShowMessageRequestClientCapabilities `json:"showMessage,omitempty"` - - // ShowDocument client capabilities for the show document request. - // - // @since 3.16.0. - ShowDocument *ShowDocumentClientCapabilities `json:"showDocument,omitempty"` -} - -// ShowMessageRequestClientCapabilities show message request client capabilities. -// -// @since 3.16.0. -type ShowMessageRequestClientCapabilities struct { - // MessageActionItem capabilities specific to the "MessageActionItem" type. - MessageActionItem *ShowMessageRequestClientCapabilitiesMessageActionItem `json:"messageActionItem,omitempty"` -} - -// ShowMessageRequestClientCapabilitiesMessageActionItem capabilities specific to the "MessageActionItem" type. -// -// @since 3.16.0. -type ShowMessageRequestClientCapabilitiesMessageActionItem struct { - // AdditionalPropertiesSupport whether the client supports additional attributes which - // are preserved and sent back to the server in the - // request's response. - AdditionalPropertiesSupport bool `json:"additionalPropertiesSupport,omitempty"` -} - -// ShowDocumentClientCapabilities client capabilities for the show document request. -// -// @since 3.16.0. -type ShowDocumentClientCapabilities struct { - // Support is the client has support for the show document - // request. - Support bool `json:"support"` -} - -// GeneralClientCapabilities represents a General specific client capabilities. -// -// @since 3.16.0. -type GeneralClientCapabilities struct { - // RegularExpressions is the client capabilities specific to regular expressions. - // - // @since 3.16.0. - RegularExpressions *RegularExpressionsClientCapabilities `json:"regularExpressions,omitempty"` - - // Markdown client capabilities specific to the client's markdown parser. - // - // @since 3.16.0. - Markdown *MarkdownClientCapabilities `json:"markdown,omitempty"` -} - -// RegularExpressionsClientCapabilities represents a client capabilities specific to regular expressions. -// -// The following features from the ECMAScript 2020 regular expression specification are NOT mandatory for a client: -// -// Assertions -// -// Lookahead assertion, Negative lookahead assertion, lookbehind assertion, negative lookbehind assertion. -// -// Character classes -// -// Matching control characters using caret notation (e.g. "\cX") and matching UTF-16 code units (e.g. "\uhhhh"). -// -// Group and ranges -// -// Named capturing groups. -// -// Unicode property escapes -// -// None of the features needs to be supported. -// -// The only regular expression flag that a client needs to support is "i" to specify a case insensitive search. -// -// @since 3.16.0. -type RegularExpressionsClientCapabilities struct { - // Engine is the engine's name. - // - // Well known engine name is "ECMAScript". - // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions - Engine string `json:"engine"` - - // Version is the engine's version. - // - // Well known engine version is "ES2020". - // https://tc39.es/ecma262/#sec-regexp-regular-expression-objects - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions - Version string `json:"version,omitempty"` -} - -// MarkdownClientCapabilities represents a client capabilities specific to the used markdown parser. -// -// @since 3.16.0. -type MarkdownClientCapabilities struct { - // Parser is the name of the parser. - Parser string `json:"parser"` - - // version is the version of the parser. - Version string `json:"version,omitempty"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go b/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go deleted file mode 100644 index 1a8dc05..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/capabilities_server.go +++ /dev/null @@ -1,523 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// ServerCapabilities efines the capabilities provided by a language server. -type ServerCapabilities struct { - // TextDocumentSync defines how text documents are synced. Is either a detailed structure defining each notification - // or for backwards compatibility the TextDocumentSyncKind number. - // - // If omitted it defaults to TextDocumentSyncKind.None` - TextDocumentSync any `json:"textDocumentSync,omitempty"` // *TextDocumentSyncOptions | TextDocumentSyncKind - - // CompletionProvider is The server provides completion support. - CompletionProvider *CompletionOptions `json:"completionProvider,omitempty"` - - // HoverProvider is the server provides hover support. - HoverProvider any `json:"hoverProvider,omitempty"` // TODO(zchee): bool | *HoverOptions - - // SignatureHelpProvider is the server provides signature help support. - SignatureHelpProvider *SignatureHelpOptions `json:"signatureHelpProvider,omitempty"` - - // DeclarationProvider is the server provides Goto Declaration support. - // - // @since 3.14.0. - DeclarationProvider any `json:"declarationProvider,omitempty"` // TODO(zchee): bool | *DeclarationOptions | *DeclarationRegistrationOptions - - // DefinitionProvider is the server provides Goto definition support. - DefinitionProvider any `json:"definitionProvider,omitempty"` // TODO(zchee): bool | *DefinitionOptions - - // TypeDefinitionProvider is the provides Goto Type Definition support. - // - // @since 3.6.0. - TypeDefinitionProvider any `json:"typeDefinitionProvider,omitempty"` // TODO(zchee): bool | *TypeDefinitionOptions | *TypeDefinitionRegistrationOptions - - // ImplementationProvider is the provides Goto Implementation support. - // - // @since 3.6.0. - ImplementationProvider any `json:"implementationProvider,omitempty"` // TODO(zchee): bool | *ImplementationOptions | *ImplementationRegistrationOptions - - // ReferencesProvider is the server provides find references support. - ReferencesProvider any `json:"referencesProvider,omitempty"` // TODO(zchee): bool | *ReferenceOptions - - // DocumentHighlightProvider is the server provides document highlight support. - DocumentHighlightProvider any `json:"documentHighlightProvider,omitempty"` // TODO(zchee): bool | *DocumentHighlightOptions - - // DocumentSymbolProvider is the server provides document symbol support. - DocumentSymbolProvider any `json:"documentSymbolProvider,omitempty"` // TODO(zchee): bool | *DocumentSymbolOptions - - // CodeActionProvider is the server provides code actions. - // - // CodeActionOptions may only be specified if the client states that it supports CodeActionLiteralSupport in its - // initial Initialize request. - CodeActionProvider any `json:"codeActionProvider,omitempty"` // TODO(zchee): bool | *CodeActionOptions - - // CodeLensProvider is the server provides code lens. - CodeLensProvider *CodeLensOptions `json:"codeLensProvider,omitempty"` - - // The server provides document link support. - DocumentLinkProvider *DocumentLinkOptions `json:"documentLinkProvider,omitempty"` - - // ColorProvider is the server provides color provider support. - // - // @since 3.6.0. - ColorProvider any `json:"colorProvider,omitempty"` // TODO(zchee): bool | *DocumentColorOptions | *DocumentColorRegistrationOptions - - // WorkspaceSymbolProvider is the server provides workspace symbol support. - WorkspaceSymbolProvider any `json:"workspaceSymbolProvider,omitempty"` // TODO(zchee): bool | *WorkspaceSymbolOptions - - // DocumentFormattingProvider is the server provides document formatting. - DocumentFormattingProvider any `json:"documentFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentFormattingOptions - - // DocumentRangeFormattingProvider is the server provides document range formatting. - DocumentRangeFormattingProvider any `json:"documentRangeFormattingProvider,omitempty"` // TODO(zchee): bool | *DocumentRangeFormattingOptions - - // DocumentOnTypeFormattingProvider is the server provides document formatting on typing. - DocumentOnTypeFormattingProvider *DocumentOnTypeFormattingOptions `json:"documentOnTypeFormattingProvider,omitempty"` - - // RenameProvider is the server provides rename support. - // - // RenameOptions may only be specified if the client states that it supports PrepareSupport in its - // initial Initialize request. - RenameProvider any `json:"renameProvider,omitempty"` // TODO(zchee): bool | *RenameOptions - - // FoldingRangeProvider is the server provides folding provider support. - // - // @since 3.10.0. - FoldingRangeProvider any `json:"foldingRangeProvider,omitempty"` // TODO(zchee): bool | *FoldingRangeOptions | *FoldingRangeRegistrationOptions - - // SelectionRangeProvider is the server provides selection range support. - // - // @since 3.15.0. - SelectionRangeProvider any `json:"selectionRangeProvider,omitempty"` // TODO(zchee): bool | *SelectionRangeOptions | *SelectionRangeRegistrationOptions - - // ExecuteCommandProvider is the server provides execute command support. - ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"` - - // CallHierarchyProvider is the server provides call hierarchy support. - // - // @since 3.16.0. - CallHierarchyProvider any `json:"callHierarchyProvider,omitempty"` // TODO(zchee): bool | *CallHierarchyOptions | *CallHierarchyRegistrationOptions - - // LinkedEditingRangeProvider is the server provides linked editing range support. - // - // @since 3.16.0. - LinkedEditingRangeProvider any `json:"linkedEditingRangeProvider,omitempty"` // TODO(zchee): bool | *LinkedEditingRangeOptions | *LinkedEditingRangeRegistrationOptions - - // SemanticTokensProvider is the server provides semantic tokens support. - // - // @since 3.16.0. - SemanticTokensProvider any `json:"semanticTokensProvider,omitempty"` // TODO(zchee): *SemanticTokensOptions | *SemanticTokensRegistrationOptions - - // Workspace is the window specific server capabilities. - Workspace *ServerCapabilitiesWorkspace `json:"workspace,omitempty"` - - // MonikerProvider is the server provides moniker support. - // - // @since 3.16.0. - MonikerProvider any `json:"monikerProvider,omitempty"` // TODO(zchee): bool | *MonikerOptions | *MonikerRegistrationOptions - - // Experimental server capabilities. - Experimental any `json:"experimental,omitempty"` -} - -// TextDocumentSyncOptions TextDocumentSync options. -type TextDocumentSyncOptions struct { - // OpenClose open and close notifications are sent to the server. - OpenClose bool `json:"openClose,omitempty"` - - // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full - // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. - Change TextDocumentSyncKind `json:"change,omitempty"` - - // WillSave notifications are sent to the server. - WillSave bool `json:"willSave,omitempty"` - - // WillSaveWaitUntil will save wait until requests are sent to the server. - WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"` - - // Save notifications are sent to the server. - Save *SaveOptions `json:"save,omitempty"` -} - -// SaveOptions save options. -type SaveOptions struct { - // IncludeText is the client is supposed to include the content on save. - IncludeText bool `json:"includeText,omitempty"` -} - -// TextDocumentSyncKind defines how the host (editor) should sync document changes to the language server. -type TextDocumentSyncKind float64 - -const ( - // TextDocumentSyncKindNone documents should not be synced at all. - TextDocumentSyncKindNone TextDocumentSyncKind = 0 - - // TextDocumentSyncKindFull documents are synced by always sending the full content - // of the document. - TextDocumentSyncKindFull TextDocumentSyncKind = 1 - - // TextDocumentSyncKindIncremental documents are synced by sending the full content on open. - // After that only incremental updates to the document are - // send. - TextDocumentSyncKindIncremental TextDocumentSyncKind = 2 -) - -// String implements fmt.Stringer. -func (k TextDocumentSyncKind) String() string { - switch k { - case TextDocumentSyncKindNone: - return "None" - case TextDocumentSyncKindFull: - return "Full" - case TextDocumentSyncKindIncremental: - return "Incremental" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionOptions Completion options. -type CompletionOptions struct { - // The server provides support to resolve additional - // information for a completion item. - ResolveProvider bool `json:"resolveProvider,omitempty"` - - // The characters that trigger completion automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` -} - -// HoverOptions option of hover provider server capabilities. -type HoverOptions struct { - WorkDoneProgressOptions -} - -// SignatureHelpOptions SignatureHelp options. -type SignatureHelpOptions struct { - // The characters that trigger signature help - // automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` - - // RetriggerCharacters is the slist of characters that re-trigger signature help. - // - // These trigger characters are only active when signature help is already - // showing. - // All trigger characters are also counted as re-trigger characters. - // - // @since 3.15.0. - RetriggerCharacters []string `json:"retriggerCharacters,omitempty"` -} - -// DeclarationOptions registration option of Declaration server capability. -// -// @since 3.15.0. -type DeclarationOptions struct { - WorkDoneProgressOptions -} - -// DeclarationRegistrationOptions registration option of Declaration server capability. -// -// @since 3.15.0. -type DeclarationRegistrationOptions struct { - DeclarationOptions - TextDocumentRegistrationOptions - StaticRegistrationOptions -} - -// DefinitionOptions registration option of Definition server capability. -// -// @since 3.15.0. -type DefinitionOptions struct { - WorkDoneProgressOptions -} - -// TypeDefinitionOptions registration option of TypeDefinition server capability. -// -// @since 3.15.0. -type TypeDefinitionOptions struct { - WorkDoneProgressOptions -} - -// TypeDefinitionRegistrationOptions registration option of TypeDefinition server capability. -// -// @since 3.15.0. -type TypeDefinitionRegistrationOptions struct { - TextDocumentRegistrationOptions - TypeDefinitionOptions - StaticRegistrationOptions -} - -// ImplementationOptions registration option of Implementation server capability. -// -// @since 3.15.0. -type ImplementationOptions struct { - WorkDoneProgressOptions -} - -// ImplementationRegistrationOptions registration option of Implementation server capability. -// -// @since 3.15.0. -type ImplementationRegistrationOptions struct { - TextDocumentRegistrationOptions - ImplementationOptions - StaticRegistrationOptions -} - -// ReferenceOptions registration option of Reference server capability. -type ReferenceOptions struct { - WorkDoneProgressOptions -} - -// DocumentHighlightOptions registration option of DocumentHighlight server capability. -// -// @since 3.15.0. -type DocumentHighlightOptions struct { - WorkDoneProgressOptions -} - -// DocumentSymbolOptions registration option of DocumentSymbol server capability. -// -// @since 3.15.0. -type DocumentSymbolOptions struct { - WorkDoneProgressOptions - - // Label a human-readable string that is shown when multiple outlines trees - // are shown for the same document. - // - // @since 3.16.0. - Label string `json:"label,omitempty"` -} - -// CodeActionOptions CodeAction options. -type CodeActionOptions struct { - // CodeActionKinds that this server may return. - // - // The list of kinds may be generic, such as "CodeActionKind.Refactor", or the server - // may list out every specific kind they provide. - CodeActionKinds []CodeActionKind `json:"codeActionKinds,omitempty"` - - // ResolveProvider is the server provides support to resolve additional - // information for a code action. - // - // @since 3.16.0. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// CodeLensOptions CodeLens options. -type CodeLensOptions struct { - // Code lens has a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentLinkOptions document link options. -type DocumentLinkOptions struct { - // ResolveProvider document links have a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentColorOptions registration option of DocumentColor server capability. -// -// @since 3.15.0. -type DocumentColorOptions struct { - WorkDoneProgressOptions -} - -// DocumentColorRegistrationOptions registration option of DocumentColor server capability. -// -// @since 3.15.0. -type DocumentColorRegistrationOptions struct { - TextDocumentRegistrationOptions - StaticRegistrationOptions - DocumentColorOptions -} - -// WorkspaceSymbolOptions registration option of WorkspaceSymbol server capability. -// -// @since 3.15.0. -type WorkspaceSymbolOptions struct { - WorkDoneProgressOptions -} - -// DocumentFormattingOptions registration option of DocumentFormatting server capability. -// -// @since 3.15.0. -type DocumentFormattingOptions struct { - WorkDoneProgressOptions -} - -// DocumentRangeFormattingOptions registration option of DocumentRangeFormatting server capability. -// -// @since 3.15.0. -type DocumentRangeFormattingOptions struct { - WorkDoneProgressOptions -} - -// DocumentOnTypeFormattingOptions format document on type options. -type DocumentOnTypeFormattingOptions struct { - // FirstTriggerCharacter a character on which formatting should be triggered, like "}". - FirstTriggerCharacter string `json:"firstTriggerCharacter"` - - // MoreTriggerCharacter more trigger characters. - MoreTriggerCharacter []string `json:"moreTriggerCharacter,omitempty"` -} - -// RenameOptions rename options. -type RenameOptions struct { - // PrepareProvider renames should be checked and tested before being executed. - PrepareProvider bool `json:"prepareProvider,omitempty"` -} - -// FoldingRangeOptions registration option of FoldingRange server capability. -// -// @since 3.15.0. -type FoldingRangeOptions struct { - WorkDoneProgressOptions -} - -// FoldingRangeRegistrationOptions registration option of FoldingRange server capability. -// -// @since 3.15.0. -type FoldingRangeRegistrationOptions struct { - TextDocumentRegistrationOptions - FoldingRangeOptions - StaticRegistrationOptions -} - -// ExecuteCommandOptions execute command options. -type ExecuteCommandOptions struct { - // Commands is the commands to be executed on the server - Commands []string `json:"commands"` -} - -// CallHierarchyOptions option of CallHierarchy. -// -// @since 3.16.0. -type CallHierarchyOptions struct { - WorkDoneProgressOptions -} - -// CallHierarchyRegistrationOptions registration options of CallHierarchy. -// -// @since 3.16.0. -type CallHierarchyRegistrationOptions struct { - TextDocumentRegistrationOptions - CallHierarchyOptions - StaticRegistrationOptions -} - -// LinkedEditingRangeOptions option of linked editing range provider server capabilities. -// -// @since 3.16.0. -type LinkedEditingRangeOptions struct { - WorkDoneProgressOptions -} - -// LinkedEditingRangeRegistrationOptions registration option of linked editing range provider server capabilities. -// -// @since 3.16.0. -type LinkedEditingRangeRegistrationOptions struct { - TextDocumentRegistrationOptions - LinkedEditingRangeOptions - StaticRegistrationOptions -} - -// SemanticTokensOptions option of semantic tokens provider server capabilities. -// -// @since 3.16.0. -type SemanticTokensOptions struct { - WorkDoneProgressOptions -} - -// SemanticTokensRegistrationOptions registration option of semantic tokens provider server capabilities. -// -// @since 3.16.0. -type SemanticTokensRegistrationOptions struct { - TextDocumentRegistrationOptions - SemanticTokensOptions - StaticRegistrationOptions -} - -// ServerCapabilitiesWorkspace specific server capabilities. -type ServerCapabilitiesWorkspace struct { - // WorkspaceFolders is the server supports workspace folder. - // - // @since 3.6.0. - WorkspaceFolders *ServerCapabilitiesWorkspaceFolders `json:"workspaceFolders,omitempty"` - - // FileOperations is the server is interested in file notifications/requests. - // - // @since 3.16.0. - FileOperations *ServerCapabilitiesWorkspaceFileOperations `json:"fileOperations,omitempty"` -} - -// ServerCapabilitiesWorkspaceFolders is the server supports workspace folder. -// -// @since 3.6.0. -type ServerCapabilitiesWorkspaceFolders struct { - // Supported is the server has support for workspace folders - Supported bool `json:"supported,omitempty"` - - // ChangeNotifications whether the server wants to receive workspace folder - // change notifications. - // - // If a strings is provided the string is treated as a ID - // under which the notification is registered on the client - // side. The ID can be used to unregister for these events - // using the `client/unregisterCapability` request. - ChangeNotifications any `json:"changeNotifications,omitempty"` // string | boolean -} - -// ServerCapabilitiesWorkspaceFileOperations is the server is interested in file notifications/requests. -// -// @since 3.16.0. -type ServerCapabilitiesWorkspaceFileOperations struct { - // DidCreate is the server is interested in receiving didCreateFiles - // notifications. - DidCreate *FileOperationRegistrationOptions `json:"didCreate,omitempty"` - - // WillCreate is the server is interested in receiving willCreateFiles requests. - WillCreate *FileOperationRegistrationOptions `json:"willCreate,omitempty"` - - // DidRename is the server is interested in receiving didRenameFiles - // notifications. - DidRename *FileOperationRegistrationOptions `json:"didRename,omitempty"` - - // WillRename is the server is interested in receiving willRenameFiles requests. - WillRename *FileOperationRegistrationOptions `json:"willRename,omitempty"` - - // DidDelete is the server is interested in receiving didDeleteFiles file - // notifications. - DidDelete *FileOperationRegistrationOptions `json:"didDelete,omitempty"` - - // WillDelete is the server is interested in receiving willDeleteFiles file - // requests. - WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitempty"` -} - -// FileOperationRegistrationOptions is the options to register for file operations. -// -// @since 3.16.0. -type FileOperationRegistrationOptions struct { - // filters is the actual filters. - Filters []FileOperationFilter `json:"filters"` -} - -// MonikerOptions option of moniker provider server capabilities. -// -// @since 3.16.0. -type MonikerOptions struct { - WorkDoneProgressOptions -} - -// MonikerRegistrationOptions registration option of moniker provider server capabilities. -// -// @since 3.16.0. -type MonikerRegistrationOptions struct { - TextDocumentRegistrationOptions - MonikerOptions -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/client.go b/vendor/github.com/a-h/templ/lsp/protocol/client.go deleted file mode 100644 index 0526514..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/client.go +++ /dev/null @@ -1,412 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "bytes" - "context" - "fmt" - "log/slog" - - "encoding/json" - - "github.com/a-h/templ/lsp/jsonrpc2" - "github.com/a-h/templ/lsp/xcontext" -) - -// ClientDispatcher returns a Client that dispatches LSP requests across the -// given jsonrpc2 connection. -func ClientDispatcher(conn jsonrpc2.Conn, logger *slog.Logger) Client { - return &client{ - Conn: conn, - logger: logger, - } -} - -// ClientHandler handler of LSP client. -func ClientHandler(log *slog.Logger, client Client, handler jsonrpc2.Handler) jsonrpc2.Handler { - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if ctx.Err() != nil { - xctx := xcontext.Detach(ctx) - - return reply(xctx, nil, ErrRequestCancelled) - } - - handled, err := clientDispatch(ctx, log, client, reply, req) - if handled || err != nil { - return err - } - - return handler(ctx, reply, req) - } - - return h -} - -// clientDispatch implements jsonrpc2.Handler. -// -//nolint:funlen,cyclop -func clientDispatch(ctx context.Context, log *slog.Logger, client Client, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { - if ctx.Err() != nil { - return true, reply(ctx, nil, ErrRequestCancelled) - } - - dec := json.NewDecoder(bytes.NewReader(req.Params())) - - switch req.Method() { - case MethodProgress: // notification - defer log.Debug(MethodProgress, slog.Any("error", err)) - - var params ProgressParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.Progress(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWorkDoneProgressCreate: // request - defer log.Debug(MethodWorkDoneProgressCreate, slog.Any("error", err)) - - var params WorkDoneProgressCreateParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.WorkDoneProgressCreate(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWindowLogMessage: // notification - defer log.Debug(MethodWindowLogMessage, slog.Any("error", err)) - - var params LogMessageParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.LogMessage(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentPublishDiagnostics: // notification - defer log.Debug(MethodTextDocumentPublishDiagnostics, slog.Any("error", err)) - - var params PublishDiagnosticsParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.PublishDiagnostics(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWindowShowMessage: // notification - defer log.Debug(MethodWindowShowMessage, slog.Any("error", err)) - - var params ShowMessageParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.ShowMessage(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWindowShowMessageRequest: // request - defer log.Debug(MethodWindowShowMessageRequest, slog.Any("error", err)) - - var params ShowMessageRequestParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.ShowMessageRequest(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTelemetryEvent: // notification - defer log.Debug(MethodTelemetryEvent, slog.Any("error", err)) - - var params any - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.Telemetry(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodClientRegisterCapability: // request - defer log.Debug(MethodClientRegisterCapability, slog.Any("error", err)) - - var params RegistrationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.RegisterCapability(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodClientUnregisterCapability: // request - defer log.Debug(MethodClientUnregisterCapability, slog.Any("error", err)) - - var params UnregistrationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := client.UnregisterCapability(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceApplyEdit: // request - defer log.Debug(MethodWorkspaceApplyEdit, slog.Any("error", err)) - - var params ApplyWorkspaceEditParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.ApplyEdit(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceConfiguration: // request - defer log.Debug(MethodWorkspaceConfiguration, slog.Any("error", err)) - - var params ConfigurationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := client.Configuration(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceWorkspaceFolders: // request - defer log.Debug(MethodWorkspaceWorkspaceFolders, slog.Any("error", err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - resp, err := client.WorkspaceFolders(ctx) - - return true, reply(ctx, resp, err) - - default: - return false, nil - } -} - -// Client represents a Language Server Protocol client. -type Client interface { - Progress(ctx context.Context, params *ProgressParams) (err error) - WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) - LogMessage(ctx context.Context, params *LogMessageParams) (err error) - PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) - ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) - ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (result *MessageActionItem, err error) - Telemetry(ctx context.Context, params any) (err error) - RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) - UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) - ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result *ApplyWorkspaceEditResponse, err error) - Configuration(ctx context.Context, params *ConfigurationParams) (result []any, err error) - WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) -} - -// list of client methods. -const ( - // MethodProgress method name of "$/progress". - MethodProgress = "$/progress" - - // MethodWorkDoneProgressCreate method name of "window/workDoneProgress/create". - MethodWorkDoneProgressCreate = "window/workDoneProgress/create" - - // MethodWindowShowMessage method name of "window/showMessage". - MethodWindowShowMessage = "window/showMessage" - - // MethodWindowShowMessageRequest method name of "window/showMessageRequest. - MethodWindowShowMessageRequest = "window/showMessageRequest" - - // MethodWindowLogMessage method name of "window/logMessage. - MethodWindowLogMessage = "window/logMessage" - - // MethodTelemetryEvent method name of "telemetry/event. - MethodTelemetryEvent = "telemetry/event" - - // MethodClientRegisterCapability method name of "client/registerCapability. - MethodClientRegisterCapability = "client/registerCapability" - - // MethodClientUnregisterCapability method name of "client/unregisterCapability. - MethodClientUnregisterCapability = "client/unregisterCapability" - - // MethodTextDocumentPublishDiagnostics method name of "textDocument/publishDiagnostics. - MethodTextDocumentPublishDiagnostics = "textDocument/publishDiagnostics" - - // MethodWorkspaceApplyEdit method name of "workspace/applyEdit. - MethodWorkspaceApplyEdit = "workspace/applyEdit" - - // MethodWorkspaceConfiguration method name of "workspace/configuration. - MethodWorkspaceConfiguration = "workspace/configuration" - - // MethodWorkspaceWorkspaceFolders method name of "workspace/workspaceFolders". - MethodWorkspaceWorkspaceFolders = "workspace/workspaceFolders" -) - -// client implements a Language Server Protocol client. -type client struct { - jsonrpc2.Conn - - logger *slog.Logger -} - -// compiler time check whether the Client implements ClientInterface interface. -var _ Client = (*client)(nil) - -// Progress is the base protocol offers also support to report progress in a generic fashion. -// -// This mechanism can be used to report any kind of progress including work done progress (usually used to report progress in the user interface using a progress bar) and -// partial result progress to support streaming of results. -// -// @since 3.16.0. -func (c *client) Progress(ctx context.Context, params *ProgressParams) (err error) { - c.logger.Debug("call " + MethodProgress) - defer c.logger.Debug("end "+MethodProgress, slog.Any("error", err)) - - return c.Notify(ctx, MethodProgress, params) -} - -// WorkDoneProgressCreate sends the request is sent from the server to the client to ask the client to create a work done progress. -// -// @since 3.16.0. -func (c *client) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) (err error) { - c.logger.Debug("call " + MethodWorkDoneProgressCreate) - defer c.logger.Debug("end "+MethodWorkDoneProgressCreate, slog.Any("error", err)) - - return Call(ctx, c.Conn, MethodWorkDoneProgressCreate, params, nil) -} - -// LogMessage sends the notification from the server to the client to ask the client to log a particular message. -func (c *client) LogMessage(ctx context.Context, params *LogMessageParams) (err error) { - c.logger.Debug("call " + MethodWindowLogMessage) - defer c.logger.Debug("end "+MethodWindowLogMessage, slog.Any("error", err)) - - return c.Notify(ctx, MethodWindowLogMessage, params) -} - -// PublishDiagnostics sends the notification from the server to the client to signal results of validation runs. -// -// Diagnostics are “owned” by the server so it is the server’s responsibility to clear them if necessary. The following rule is used for VS Code servers that generate diagnostics: -// -// - if a language is single file only (for example HTML) then diagnostics are cleared by the server when the file is closed. -// - if a language has a project system (for example C#) diagnostics are not cleared when a file closes. When a project is opened all diagnostics for all files are recomputed (or read from a cache). -// -// When a file changes it is the server’s responsibility to re-compute diagnostics and push them to the client. -// If the computed set is empty it has to push the empty array to clear former diagnostics. -// Newly pushed diagnostics always replace previously pushed diagnostics. There is no merging that happens on the client side. -func (c *client) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) (err error) { - c.logger.Debug("call " + MethodTextDocumentPublishDiagnostics) - defer c.logger.Debug("end "+MethodTextDocumentPublishDiagnostics, slog.Any("error", err)) - - return c.Notify(ctx, MethodTextDocumentPublishDiagnostics, params) -} - -// ShowMessage sends the notification from a server to a client to ask the -// client to display a particular message in the user interface. -func (c *client) ShowMessage(ctx context.Context, params *ShowMessageParams) (err error) { - return c.Notify(ctx, MethodWindowShowMessage, params) -} - -// ShowMessageRequest sends the request from a server to a client to ask the client to display a particular message in the user interface. -// -// In addition to the show message notification the request allows to pass actions and to wait for an answer from the client. -func (c *client) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (_ *MessageActionItem, err error) { - c.logger.Debug("call " + MethodWindowShowMessageRequest) - defer c.logger.Debug("end "+MethodWindowShowMessageRequest, slog.Any("error", err)) - - var result *MessageActionItem - if err := Call(ctx, c.Conn, MethodWindowShowMessageRequest, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Telemetry sends the notification from the server to the client to ask the client to log a telemetry event. -func (c *client) Telemetry(ctx context.Context, params any) (err error) { - c.logger.Debug("call " + MethodTelemetryEvent) - defer c.logger.Debug("end "+MethodTelemetryEvent, slog.Any("error", err)) - - return c.Notify(ctx, MethodTelemetryEvent, params) -} - -// RegisterCapability sends the request from the server to the client to register for a new capability on the client side. -// -// Not all clients need to support dynamic capability registration. -// -// A client opts in via the dynamicRegistration property on the specific client capabilities. -// A client can even provide dynamic registration for capability A but not for capability B (see TextDocumentClientCapabilities as an example). -func (c *client) RegisterCapability(ctx context.Context, params *RegistrationParams) (err error) { - c.logger.Debug("call " + MethodClientRegisterCapability) - defer c.logger.Debug("end "+MethodClientRegisterCapability, slog.Any("error", err)) - - return Call(ctx, c.Conn, MethodClientRegisterCapability, params, nil) -} - -// UnregisterCapability sends the request from the server to the client to unregister a previously registered capability. -func (c *client) UnregisterCapability(ctx context.Context, params *UnregistrationParams) (err error) { - c.logger.Debug("call " + MethodClientUnregisterCapability) - defer c.logger.Debug("end "+MethodClientUnregisterCapability, slog.Any("error", err)) - - return Call(ctx, c.Conn, MethodClientUnregisterCapability, params, nil) -} - -// ApplyEdit sends the request from the server to the client to modify resource on the client side. -func (c *client) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (result *ApplyWorkspaceEditResponse, err error) { - c.logger.Debug("call " + MethodWorkspaceApplyEdit) - defer c.logger.Debug("end "+MethodWorkspaceApplyEdit, slog.Any("error", err)) - - if err := Call(ctx, c.Conn, MethodWorkspaceApplyEdit, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Configuration sends the request from the server to the client to fetch configuration settings from the client. -// -// The request can fetch several configuration settings in one roundtrip. -// The order of the returned configuration settings correspond to the order of the -// passed ConfigurationItems (e.g. the first item in the response is the result for the first configuration item in the params). -func (c *client) Configuration(ctx context.Context, params *ConfigurationParams) (_ []any, err error) { - c.logger.Debug("call " + MethodWorkspaceConfiguration) - defer c.logger.Debug("end "+MethodWorkspaceConfiguration, slog.Any("error", err)) - - var result []any - if err := Call(ctx, c.Conn, MethodWorkspaceConfiguration, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WorkspaceFolders sends the request from the server to the client to fetch the current open list of workspace folders. -// -// Returns null in the response if only a single file is open in the tool. Returns an empty array if a workspace is open but no folders are configured. -// -// @since 3.6.0. -func (c *client) WorkspaceFolders(ctx context.Context) (result []WorkspaceFolder, err error) { - c.logger.Debug("call " + MethodWorkspaceWorkspaceFolders) - defer c.logger.Debug("end "+MethodWorkspaceWorkspaceFolders, slog.Any("error", err)) - - if err := Call(ctx, c.Conn, MethodWorkspaceWorkspaceFolders, nil, &result); err != nil { - return nil, err - } - - return result, nil -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/context.go b/vendor/github.com/a-h/templ/lsp/protocol/context.go deleted file mode 100644 index 253f93b..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/context.go +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-FileCopyrightText: 2020 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" -) - -type ctxClientKey int - -var ctxClient ctxClientKey = 0 - -// WithClient returns the context with Client value. -func WithClient(ctx context.Context, client Client) context.Context { - return context.WithValue(ctx, ctxClient, client) -} - -// ClientFromContext extracts Client from context. -func ClientFromContext(ctx context.Context) Client { - client, ok := ctx.Value(ctxClient).(Client) - if !ok { - return nil - } - return client -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go b/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go deleted file mode 100644 index fa4b216..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/deprecated.go +++ /dev/null @@ -1,264 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// ClientCapabilitiesShowDocument alias of ShowDocumentClientCapabilities. -// -// Deprecated: Use ShowDocumentClientCapabilities instead. -type ClientCapabilitiesShowDocument = ShowDocumentClientCapabilities - -// ClientCapabilitiesShowMessageRequest alias of ShowMessageRequestClientCapabilities. -// -// Deprecated: Use ShowMessageRequestClientCapabilities instead. -type ClientCapabilitiesShowMessageRequest = ShowMessageRequestClientCapabilities - -// ClientCapabilitiesShowMessageRequestMessageActionItem alias of ShowMessageRequestClientCapabilitiesMessageActionItem. -// -// Deprecated: Use ShowMessageRequestClientCapabilitiesMessageActionItem instead. -type ClientCapabilitiesShowMessageRequestMessageActionItem = ShowMessageRequestClientCapabilitiesMessageActionItem - -// ReferencesParams alias of ReferenceParams. -// -// Deprecated: Use ReferenceParams instead. -type ReferencesParams = ReferenceParams - -// TextDocumentClientCapabilitiesCallHierarchy alias of CallHierarchyClientCapabilities. -// -// Deprecated: Use CallHierarchyClientCapabilities instead. -type TextDocumentClientCapabilitiesCallHierarchy = CallHierarchyClientCapabilities - -// TextDocumentClientCapabilitiesCodeAction alias of CodeActionClientCapabilities. -// -// Deprecated: Use CodeActionClientCapabilities instead. -type TextDocumentClientCapabilitiesCodeAction = CodeActionClientCapabilities - -// TextDocumentClientCapabilitiesCodeActionKind alias of CodeActionClientCapabilitiesKind. -// -// Deprecated: Use CodeActionClientCapabilitiesKind instead. -type TextDocumentClientCapabilitiesCodeActionKind = CodeActionClientCapabilitiesKind - -// TextDocumentClientCapabilitiesCodeActionLiteralSupport alias of CodeActionClientCapabilitiesLiteralSupport. -// -// Deprecated: Use CodeActionClientCapabilitiesLiteralSupport instead. -type TextDocumentClientCapabilitiesCodeActionLiteralSupport = CodeActionClientCapabilitiesLiteralSupport - -// TextDocumentClientCapabilitiesCodeActionResolveSupport alias of CodeActionClientCapabilitiesResolveSupport. -// -// Deprecated: Use CodeActionClientCapabilitiesResolveSupport instead. -type TextDocumentClientCapabilitiesCodeActionResolveSupport = CodeActionClientCapabilitiesResolveSupport - -// TextDocumentClientCapabilitiesCodeLens alias of CodeLensClientCapabilities. -// -// Deprecated: Use CodeLensClientCapabilities instead. -type TextDocumentClientCapabilitiesCodeLens = CodeLensClientCapabilities - -// TextDocumentClientCapabilitiesColorProvider alias of DocumentColorClientCapabilities. -// -// Deprecated: Use DocumentColorClientCapabilities instead. -type TextDocumentClientCapabilitiesColorProvider = DocumentColorClientCapabilities - -// TextDocumentClientCapabilitiesCompletion alias of CompletionTextDocumentClientCapabilities. -// -// Deprecated: Use CompletionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesCompletion = CompletionTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesCompletionItem alias of CompletionTextDocumentClientCapabilitiesItem. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItem instead. -type TextDocumentClientCapabilitiesCompletionItem = CompletionTextDocumentClientCapabilitiesItem - -// TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport alias of CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport instead. -type TextDocumentClientCapabilitiesCompletionItemInsertTextModeSupport = CompletionTextDocumentClientCapabilitiesItemInsertTextModeSupport - -// TextDocumentClientCapabilitiesCompletionItemKind alias of CompletionTextDocumentClientCapabilitiesItemKind. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemKind instead. -type TextDocumentClientCapabilitiesCompletionItemKind = CompletionTextDocumentClientCapabilitiesItemKind - -// TextDocumentClientCapabilitiesCompletionItemResolveSupport alias of CompletionTextDocumentClientCapabilitiesItemResolveSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemResolveSupport instead. -type TextDocumentClientCapabilitiesCompletionItemResolveSupport = CompletionTextDocumentClientCapabilitiesItemResolveSupport - -// TextDocumentClientCapabilitiesCompletionItemTagSupport alias of CompletionTextDocumentClientCapabilitiesItemTagSupport. -// -// Deprecated: Use CompletionTextDocumentClientCapabilitiesItemTagSupport instead. -type TextDocumentClientCapabilitiesCompletionItemTagSupport = CompletionTextDocumentClientCapabilitiesItemTagSupport - -// TextDocumentClientCapabilitiesDeclaration alias of DeclarationTextDocumentClientCapabilities. -// -// Deprecated: Use DeclarationTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesDeclaration = DeclarationTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesDefinition alias of DefinitionTextDocumentClientCapabilities. -// -// Deprecated: Use DefinitionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesDefinition = DefinitionTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesDocumentHighlight alias of DocumentHighlightClientCapabilities. -// -// Deprecated: Use DocumentHighlightClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentHighlight = DocumentHighlightClientCapabilities - -// TextDocumentClientCapabilitiesDocumentLink alias of DocumentLinkClientCapabilities. -// -// Deprecated: Use DocumentLinkClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentLink = DocumentLinkClientCapabilities - -// TextDocumentClientCapabilitiesDocumentSymbol alias of DocumentSymbolClientCapabilities. -// -// Deprecated: Use DocumentSymbolClientCapabilities instead. -type TextDocumentClientCapabilitiesDocumentSymbol = DocumentSymbolClientCapabilities - -// TextDocumentClientCapabilitiesDocumentSymbolTagSupport alias of DocumentSymbolClientCapabilitiesTagSupport. -// -// Deprecated: Use DocumentSymbolClientCapabilitiesTagSupport instead. -type TextDocumentClientCapabilitiesDocumentSymbolTagSupport = DocumentSymbolClientCapabilitiesTagSupport - -// TextDocumentClientCapabilitiesFoldingRange alias of FoldingRangeClientCapabilities. -// -// Deprecated: Use FoldingRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesFoldingRange = FoldingRangeClientCapabilities - -// TextDocumentClientCapabilitiesFormatting alias of DocumentFormattingClientCapabilities. -// -// Deprecated: Use DocumentFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesFormatting = DocumentFormattingClientCapabilities - -// TextDocumentClientCapabilitiesHover alias of HoverTextDocumentClientCapabilities. -// -// Deprecated: Use HoverTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesHover = HoverTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesImplementation alias of ImplementationTextDocumentClientCapabilities. -// -// Deprecated: Use ImplementationTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesImplementation = ImplementationTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesLinkedEditingRange alias of LinkedEditingRangeClientCapabilities. -// -// Deprecated: Use LinkedEditingRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesLinkedEditingRange = LinkedEditingRangeClientCapabilities - -// TextDocumentClientCapabilitiesMoniker of MonikerClientCapabilities. -// -// Deprecated: Use MonikerClientCapabilities instead. -type TextDocumentClientCapabilitiesMoniker = MonikerClientCapabilities - -// TextDocumentClientCapabilitiesOnTypeFormatting of DocumentOnTypeFormattingClientCapabilities. -// -// Deprecated: Use DocumentOnTypeFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesOnTypeFormatting = DocumentOnTypeFormattingClientCapabilities - -// TextDocumentClientCapabilitiesPublishDiagnostics of PublishDiagnosticsClientCapabilities. -// -// Deprecated: Use PublishDiagnosticsClientCapabilities instead. -type TextDocumentClientCapabilitiesPublishDiagnostics = PublishDiagnosticsClientCapabilities - -// TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport of PublishDiagnosticsClientCapabilitiesTagSupport. -// -// Deprecated: Use PublishDiagnosticsClientCapabilitiesTagSupport instead. -type TextDocumentClientCapabilitiesPublishDiagnosticsTagSupport = PublishDiagnosticsClientCapabilitiesTagSupport - -// TextDocumentClientCapabilitiesRangeFormatting of DocumentRangeFormattingClientCapabilities. -// -// Deprecated: Use DocumentRangeFormattingClientCapabilities instead. -type TextDocumentClientCapabilitiesRangeFormatting = DocumentRangeFormattingClientCapabilities - -// TextDocumentClientCapabilitiesReferences of ReferencesTextDocumentClientCapabilities. -// -// Deprecated: Use ReferencesTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesReferences = ReferencesTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesRename of RenameClientCapabilities. -// -// Deprecated: Use RenameClientCapabilities instead. -type TextDocumentClientCapabilitiesRename = RenameClientCapabilities - -// TextDocumentClientCapabilitiesSelectionRange of SelectionRangeClientCapabilities. -// -// Deprecated: Use SelectionRangeClientCapabilities instead. -type TextDocumentClientCapabilitiesSelectionRange = SelectionRangeClientCapabilities - -// TextDocumentClientCapabilitiesSemanticTokens of SemanticTokensClientCapabilities. -// -// Deprecated: Use SemanticTokensClientCapabilities instead. -type TextDocumentClientCapabilitiesSemanticTokens = SemanticTokensClientCapabilities - -// TextDocumentClientCapabilitiesSignatureHelp of SignatureHelpTextDocumentClientCapabilities. -// -// Deprecated: Use SignatureHelpTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesSignatureHelp = SignatureHelpTextDocumentClientCapabilities - -// TextDocumentClientCapabilitiesSynchronization of TextDocumentSyncClientCapabilities. -// -// Deprecated: Use TextDocumentSyncClientCapabilities instead. -type TextDocumentClientCapabilitiesSynchronization = TextDocumentSyncClientCapabilities - -// TextDocumentClientCapabilitiesTypeDefinition of TypeDefinitionTextDocumentClientCapabilities. -// -// Deprecated: Use TypeDefinitionTextDocumentClientCapabilities instead. -type TextDocumentClientCapabilitiesTypeDefinition = TypeDefinitionTextDocumentClientCapabilities - -// Abort alias of FailureHandlingKindAbort. -// -// Deprecated: Use FailureHandlingKindAbort instead. -const Abort = FailureHandlingKindAbort - -// TextOnlyTransactional alias of FailureHandlingKindTextOnlyTransactional. -// -// Deprecated: Use FailureHandlingKindTextOnlyTransactional instead. -const TextOnlyTransactional = FailureHandlingKindTextOnlyTransactional - -// Transactional alias of FailureHandlingKindTransactional. -// -// Deprecated: Use FailureHandlingKindTransactional instead. -const Transactional = FailureHandlingKindTransactional - -// Undo alias of FailureHandlingKindUndo. -// -// Deprecated: Use FailureHandlingKindUndo instead. -const Undo = FailureHandlingKindUndo - -// WorkspaceClientCapabilitiesSymbol alias of WorkspaceSymbolClientCapabilities. -// -// Deprecated: Use WorkspaceSymbolClientCapabilities instead. -type WorkspaceClientCapabilitiesSymbol = WorkspaceSymbolClientCapabilities - -// WorkspaceClientCapabilitiesSymbolKind alias of SymbolKindCapabilities. -// -// Deprecated: Use SymbolKindCapabilities instead. -type WorkspaceClientCapabilitiesSymbolKind = SymbolKindCapabilities - -// WorkspaceClientCapabilitiesCodeLens alias of CodeLensWorkspaceClientCapabilities. -// -// Deprecated: Use CodeLensWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesCodeLens = CodeLensWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesDidChangeConfiguration alias of DidChangeConfigurationWorkspaceClientCapabilities. -// -// Deprecated: Use DidChangeConfigurationWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesDidChangeConfiguration = DidChangeConfigurationWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesDidChangeWatchedFiles alias of DidChangeWatchedFilesWorkspaceClientCapabilities. -// -// Deprecated: Use DidChangeWatchedFilesWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesDidChangeWatchedFiles = DidChangeWatchedFilesWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesExecuteCommand alias of ExecuteCommandClientCapabilities. -// -// Deprecated: Use ExecuteCommandClientCapabilities instead. -type WorkspaceClientCapabilitiesExecuteCommand = ExecuteCommandClientCapabilities - -// WorkspaceClientCapabilitiesSemanticTokens alias of SemanticTokensWorkspaceClientCapabilities. -// -// Deprecated: Use SemanticTokensWorkspaceClientCapabilities instead. -type WorkspaceClientCapabilitiesSemanticTokens = SemanticTokensWorkspaceClientCapabilities - -// WorkspaceClientCapabilitiesSemanticTokensRequests alias of SemanticTokensWorkspaceClientCapabilitiesRequests. -// -// Deprecated: Use SemanticTokensWorkspaceClientCapabilitiesRequests instead. -type WorkspaceClientCapabilitiesSemanticTokensRequests = SemanticTokensWorkspaceClientCapabilitiesRequests diff --git a/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go b/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go deleted file mode 100644 index f88605e..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/diagnostics.go +++ /dev/null @@ -1,149 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// Diagnostic represents a diagnostic, such as a compiler error or warning. -// -// Diagnostic objects are only valid in the scope of a resource. -type Diagnostic struct { - // Range is the range at which the message applies. - Range Range `json:"range"` - - // Severity is the diagnostic's severity. Can be omitted. If omitted it is up to the - // client to interpret diagnostics as error, warning, info or hint. - Severity DiagnosticSeverity `json:"severity,omitempty"` - - // Code is the diagnostic's code, which might appear in the user interface. - Code any `json:"code,omitempty"` // int32 | string; - - // CodeDescription an optional property to describe the error code. - // - // @since 3.16.0. - CodeDescription *CodeDescription `json:"codeDescription,omitempty"` - - // Source a human-readable string describing the source of this - // diagnostic, e.g. 'typescript' or 'super lint'. - Source string `json:"source,omitempty"` - - // Message is the diagnostic's message. - Message string `json:"message"` - - // Tags is the additional metadata about the diagnostic. - // - // @since 3.15.0. - Tags []DiagnosticTag `json:"tags,omitempty"` - - // RelatedInformation an array of related diagnostic information, e.g. when symbol-names within - // a scope collide all definitions can be marked via this property. - RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"` - - // Data is a data entry field that is preserved between a - // "textDocument/publishDiagnostics" notification and - // "textDocument/codeAction" request. - // - // @since 3.16.0. - Data any `json:"data,omitempty"` -} - -// DiagnosticSeverity indicates the severity of a Diagnostic message. -type DiagnosticSeverity float64 - -const ( - // DiagnosticSeverityError reports an error. - DiagnosticSeverityError DiagnosticSeverity = 1 - - // DiagnosticSeverityWarning reports a warning. - DiagnosticSeverityWarning DiagnosticSeverity = 2 - - // DiagnosticSeverityInformation reports an information. - DiagnosticSeverityInformation DiagnosticSeverity = 3 - - // DiagnosticSeverityHint reports a hint. - DiagnosticSeverityHint DiagnosticSeverity = 4 -) - -// String implements fmt.Stringer. -func (d DiagnosticSeverity) String() string { - switch d { - case DiagnosticSeverityError: - return "Error" - case DiagnosticSeverityWarning: - return "Warning" - case DiagnosticSeverityInformation: - return "Information" - case DiagnosticSeverityHint: - return "Hint" - default: - return strconv.FormatFloat(float64(d), 'f', -10, 64) - } -} - -// CodeDescription is the structure to capture a description for an error code. -// -// @since 3.16.0. -type CodeDescription struct { - // Href an URI to open with more information about the diagnostic error. - Href URI `json:"href"` -} - -// DiagnosticTag is the diagnostic tags. -// -// @since 3.15.0. -type DiagnosticTag float64 - -// list of DiagnosticTag. -const ( - // DiagnosticTagUnnecessary unused or unnecessary code. - // - // Clients are allowed to render diagnostics with this tag faded out instead of having - // an error squiggle. - DiagnosticTagUnnecessary DiagnosticTag = 1 - - // DiagnosticTagDeprecated deprecated or obsolete code. - // - // Clients are allowed to rendered diagnostics with this tag strike through. - DiagnosticTagDeprecated DiagnosticTag = 2 -) - -// String implements fmt.Stringer. -func (d DiagnosticTag) String() string { - switch d { - case DiagnosticTagUnnecessary: - return "Unnecessary" - case DiagnosticTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(d), 'f', -10, 64) - } -} - -// DiagnosticRelatedInformation represents a related message and source code location for a diagnostic. -// -// This should be used to point to code locations that cause or related to a diagnostics, e.g when duplicating -// a symbol in a scope. -type DiagnosticRelatedInformation struct { - // Location is the location of this related diagnostic information. - Location Location `json:"location"` - - // Message is the message of this related diagnostic information. - Message string `json:"message"` -} - -// PublishDiagnosticsParams represents a params of PublishDiagnostics notification. -type PublishDiagnosticsParams struct { - // URI is the URI for which diagnostic information is reported. - URI DocumentURI `json:"uri"` - - // Version optional the version number of the document the diagnostics are published for. - // - // @since 3.15 - Version uint32 `json:"version,omitempty"` - - // Diagnostics an array of diagnostic information items. - Diagnostics []Diagnostic `json:"diagnostics"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/doc.go b/vendor/github.com/a-h/templ/lsp/protocol/doc.go deleted file mode 100644 index a53cc37..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package protocol implements Language Server Protocol specification in Go. -// -// This package contains the structs that map directly to the wire format -// of the Language Server Protocol. -// -// It is a literal transcription, with unmodified comments, and only the changes -// required to make it Go code. -// -// - Names are uppercased to export them. -// -// - All fields have JSON tags added to correct the names. -// -// - Fields marked with a ? are also marked as "omitempty". -// -// - Fields that are "|| null" are made pointers. -// -// - Fields that are string or number are left as string. -// -// - Fields that are type "number" are made float64. -package protocol // import "github.com/a-h/templ/lsp/protocol" diff --git a/vendor/github.com/a-h/templ/lsp/protocol/errors.go b/vendor/github.com/a-h/templ/lsp/protocol/errors.go deleted file mode 100644 index e37025f..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/errors.go +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "github.com/a-h/templ/lsp/jsonrpc2" - -const ( - // LSPReservedErrorRangeStart is the start range of LSP reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - LSPReservedErrorRangeStart jsonrpc2.Code = -32899 - - // ContentModified is the state change that invalidates the result of a request in execution. - // - // Defined by the protocol. - CodeContentModified jsonrpc2.Code = -32801 - - // RequestCancelled is the cancellation error. - // - // Defined by the protocol. - CodeRequestCancelled jsonrpc2.Code = -32800 - - // LSPReservedErrorRangeEnd is the end range of LSP reserved error codes. - // - // It doesn't denote a real error code. - // - // @since 3.16.0. - LSPReservedErrorRangeEnd jsonrpc2.Code = -32800 -) - -var ( - // ErrContentModified should be used when a request is canceled early. - ErrContentModified = jsonrpc2.NewError(CodeContentModified, "cancelled JSON-RPC") - - // ErrRequestCancelled should be used when a request is canceled early. - ErrRequestCancelled = jsonrpc2.NewError(CodeRequestCancelled, "cancelled JSON-RPC") -) diff --git a/vendor/github.com/a-h/templ/lsp/protocol/general.go b/vendor/github.com/a-h/templ/lsp/protocol/general.go deleted file mode 100644 index 9fe9ab4..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/general.go +++ /dev/null @@ -1,461 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// TraceValue represents a InitializeParams Trace mode. -type TraceValue string - -// list of TraceValue. -const ( - // TraceOff disable tracing. - TraceOff TraceValue = "off" - - // TraceMessage normal tracing mode. - TraceMessage TraceValue = "message" - - // TraceVerbose verbose tracing mode. - TraceVerbose TraceValue = "verbose" -) - -// ClientInfo information about the client. -// -// @since 3.15.0. -type ClientInfo struct { - // Name is the name of the client as defined by the client. - Name string `json:"name"` - - // Version is the client's version as defined by the client. - Version string `json:"version,omitempty"` -} - -// InitializeParams params of Initialize request. -type InitializeParams struct { - WorkDoneProgressParams - - // ProcessID is the process Id of the parent process that started - // the server. Is null if the process has not been started by another process. - // If the parent process is not alive then the server should exit (see exit notification) its process. - ProcessID int32 `json:"processId"` - - // ClientInfo is the information about the client. - // - // @since 3.15.0 - ClientInfo *ClientInfo `json:"clientInfo,omitempty"` - - // Locale is the locale the client is currently showing the user interface - // in. This must not necessarily be the locale of the operating - // system. - // - // Uses IETF language tags as the value's syntax - // (See https://en.wikipedia.org/wiki/IETF_language_tag) - // - // @since 3.16.0. - Locale string `json:"locale,omitempty"` - - // RootPath is the rootPath of the workspace. Is null - // if no folder is open. - // - // Deprecated: Use RootURI instead. - RootPath string `json:"rootPath,omitempty"` - - // RootURI is the rootUri of the workspace. Is null if no - // folder is open. If both `rootPath` and "rootUri" are set - // "rootUri" wins. - // - // Deprecated: Use WorkspaceFolders instead. - RootURI DocumentURI `json:"rootUri,omitempty"` - - // InitializationOptions user provided initialization options. - InitializationOptions any `json:"initializationOptions,omitempty"` - - // Capabilities is the capabilities provided by the client (editor or tool) - Capabilities ClientCapabilities `json:"capabilities"` - - // Trace is the initial trace setting. If omitted trace is disabled ('off'). - Trace TraceValue `json:"trace,omitempty"` - - // WorkspaceFolders is the workspace folders configured in the client when the server starts. - // This property is only available if the client supports workspace folders. - // It can be `null` if the client supports workspace folders but none are - // configured. - // - // @since 3.6.0. - WorkspaceFolders []WorkspaceFolder `json:"workspaceFolders,omitempty"` -} - -// InitializeResult result of ClientCapabilities. -type InitializeResult struct { - // Capabilities is the capabilities the language server provides. - Capabilities ServerCapabilities `json:"capabilities"` - - // ServerInfo Information about the server. - // - // @since 3.15.0. - ServerInfo *ServerInfo `json:"serverInfo,omitempty"` -} - -// LogTraceParams params of LogTrace notification. -// -// @since 3.16.0. -type LogTraceParams struct { - // Message is the message to be logged. - Message string `json:"message"` - - // Verbose is the additional information that can be computed if the "trace" configuration - // is set to "verbose". - Verbose TraceValue `json:"verbose,omitempty"` -} - -// SetTraceParams params of SetTrace notification. -// -// @since 3.16.0. -type SetTraceParams struct { - // Value is the new value that should be assigned to the trace setting. - Value TraceValue `json:"value"` -} - -// FileOperationPatternKind is a pattern kind describing if a glob pattern matches a file a folder or -// both. -// -// @since 3.16.0. -type FileOperationPatternKind string - -// list of FileOperationPatternKind. -const ( - // FileOperationPatternKindFile is the pattern matches a file only. - FileOperationPatternKindFile FileOperationPatternKind = "file" - - // FileOperationPatternKindFolder is the pattern matches a folder only. - FileOperationPatternKindFolder FileOperationPatternKind = "folder" -) - -// FileOperationPatternOptions matching options for the file operation pattern. -// -// @since 3.16.0. -type FileOperationPatternOptions struct { - // IgnoreCase is The pattern should be matched ignoring casing. - IgnoreCase bool `json:"ignoreCase,omitempty"` -} - -// FileOperationPattern a pattern to describe in which file operation requests or notifications -// the server is interested in. -// -// @since 3.16.0. -type FileOperationPattern struct { - // The glob pattern to match. Glob patterns can have the following syntax: - // - `*` to match one or more characters in a path segment - // - `?` to match on one character in a path segment - // - `**` to match any number of path segments, including none - // - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript - // and JavaScript files) - // - `[]` to declare a range of characters to match in a path segment - // (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // - `[!...]` to negate a range of characters to match in a path segment - // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but - // not `example.0`) - Glob string `json:"glob"` - - // Matches whether to match files or folders with this pattern. - // - // Matches both if undefined. - Matches FileOperationPatternKind `json:"matches,omitempty"` - - // Options additional options used during matching. - Options FileOperationPatternOptions `json:"options,omitempty"` -} - -// FileOperationFilter is a filter to describe in which file operation requests or notifications -// the server is interested in. -// -// @since 3.16.0. -type FileOperationFilter struct { - // Scheme is a URI like "file" or "untitled". - Scheme string `json:"scheme,omitempty"` - - // Pattern is the actual file operation pattern. - Pattern FileOperationPattern `json:"pattern"` -} - -// CreateFilesParams is the parameters sent in notifications/requests for user-initiated creation -// of files. -// -// @since 3.16.0. -type CreateFilesParams struct { - // Files an array of all files/folders created in this operation. - Files []FileCreate `json:"files"` -} - -// FileCreate nepresents information on a file/folder create. -// -// @since 3.16.0. -type FileCreate struct { - // URI is a file:// URI for the location of the file/folder being created. - URI string `json:"uri"` -} - -// RenameFilesParams is the parameters sent in notifications/requests for user-initiated renames -// of files. -// -// @since 3.16.0. -type RenameFilesParams struct { - // Files an array of all files/folders renamed in this operation. When a folder - // is renamed, only the folder will be included, and not its children. - Files []FileRename `json:"files"` -} - -// FileRename represents information on a file/folder rename. -// -// @since 3.16.0. -type FileRename struct { - // OldURI is a file:// URI for the original location of the file/folder being renamed. - OldURI string `json:"oldUri"` - - // NewURI is a file:// URI for the new location of the file/folder being renamed. - NewURI string `json:"newUri"` -} - -// DeleteFilesParams is the parameters sent in notifications/requests for user-initiated deletes -// of files. -// -// @since 3.16.0. -type DeleteFilesParams struct { - // Files an array of all files/folders deleted in this operation. - Files []FileDelete `json:"files"` -} - -// FileDelete represents information on a file/folder delete. -// -// @since 3.16.0. -type FileDelete struct { - // URI is a file:// URI for the location of the file/folder being deleted. - URI string `json:"uri"` -} - -// DocumentHighlightParams params of DocumentHighlight request. -// -// @since 3.15.0. -type DocumentHighlightParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// DeclarationParams params of Declaration request. -// -// @since 3.15.0. -type DeclarationParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// DefinitionParams params of Definition request. -// -// @since 3.15.0. -type DefinitionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// TypeDefinitionParams params of TypeDefinition request. -// -// @since 3.15.0. -type TypeDefinitionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// ImplementationParams params of Implementation request. -// -// @since 3.15.0. -type ImplementationParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// ShowDocumentParams params to show a document. -// -// @since 3.16.0. -type ShowDocumentParams struct { - // URI is the document uri to show. - URI URI `json:"uri"` - - // External indicates to show the resource in an external program. - // To show for example `https://code.visualstudio.com/` - // in the default WEB browser set `external` to `true`. - External bool `json:"external,omitempty"` - - // TakeFocus an optional property to indicate whether the editor - // showing the document should take focus or not. - // Clients might ignore this property if an external - // program is started. - TakeFocus bool `json:"takeFocus,omitempty"` - - // Selection an optional selection range if the document is a text - // document. Clients might ignore the property if an - // external program is started or the file is not a text - // file. - Selection *Range `json:"selection,omitempty"` -} - -// ShowDocumentResult is the result of an show document request. -// -// @since 3.16.0. -type ShowDocumentResult struct { - // Success a boolean indicating if the show was successful. - Success bool `json:"success"` -} - -// ServerInfo Information about the server. -// -// @since 3.15.0. -type ServerInfo struct { - // Name is the name of the server as defined by the server. - Name string `json:"name"` - - // Version is the server's version as defined by the server. - Version string `json:"version,omitempty"` -} - -// InitializeError known error codes for an "InitializeError". -type InitializeError struct { - // Retry indicates whether the client execute the following retry logic: - // (1) show the message provided by the ResponseError to the user - // (2) user selects retry or cancel - // (3) if user selected retry the initialize method is sent again. - Retry bool `json:"retry,omitempty"` -} - -// ReferencesOptions ReferencesProvider options. -// -// @since 3.15.0. -type ReferencesOptions struct { - WorkDoneProgressOptions -} - -// WorkDoneProgressOptions WorkDoneProgress options. -// -// @since 3.15.0. -type WorkDoneProgressOptions struct { - WorkDoneProgress bool `json:"workDoneProgress,omitempty"` -} - -// LinkedEditingRangeParams params for the LinkedEditingRange request. -// -// @since 3.16.0. -type LinkedEditingRangeParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// LinkedEditingRanges result of LinkedEditingRange request. -// -// @since 3.16.0. -type LinkedEditingRanges struct { - // Ranges a list of ranges that can be renamed together. - // - // The ranges must have identical length and contain identical text content. - // - // The ranges cannot overlap. - Ranges []Range `json:"ranges"` - - // WordPattern an optional word pattern (regular expression) that describes valid contents for - // the given ranges. - // - // If no pattern is provided, the client configuration's word pattern will be used. - WordPattern string `json:"wordPattern,omitempty"` -} - -// MonikerParams params for the Moniker request. -// -// @since 3.16.0. -type MonikerParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams -} - -// UniquenessLevel is the Moniker uniqueness level to define scope of the moniker. -// -// @since 3.16.0. -type UniquenessLevel string - -// list of UniquenessLevel. -const ( - // UniquenessLevelDocument is the moniker is only unique inside a document. - UniquenessLevelDocument UniquenessLevel = "document" - - // UniquenessLevelProject is the moniker is unique inside a project for which a dump got created. - UniquenessLevelProject UniquenessLevel = "project" - - // UniquenessLevelGroup is the moniker is unique inside the group to which a project belongs. - UniquenessLevelGroup UniquenessLevel = "group" - - // UniquenessLevelScheme is the moniker is unique inside the moniker scheme. - UniquenessLevelScheme UniquenessLevel = "scheme" - - // UniquenessLevelGlobal is the moniker is globally unique. - UniquenessLevelGlobal UniquenessLevel = "global" -) - -// MonikerKind is the moniker kind. -// -// @since 3.16.0. -type MonikerKind string - -// list of MonikerKind. -const ( - // MonikerKindImport is the moniker represent a symbol that is imported into a project. - MonikerKindImport MonikerKind = "import" - - // MonikerKindExport is the moniker represents a symbol that is exported from a project. - MonikerKindExport MonikerKind = "export" - - // MonikerKindLocal is the moniker represents a symbol that is local to a project (e.g. a local - // variable of a function, a class not visible outside the project, ...). - MonikerKindLocal MonikerKind = "local" -) - -// Moniker definition to match LSIF 0.5 moniker definition. -// -// @since 3.16.0. -type Moniker struct { - // Scheme is the scheme of the moniker. For example tsc or .Net. - Scheme string `json:"scheme"` - - // Identifier is the identifier of the moniker. - // - // The value is opaque in LSIF however schema owners are allowed to define the structure if they want. - Identifier string `json:"identifier"` - - // Unique is the scope in which the moniker is unique. - Unique UniquenessLevel `json:"unique"` - - // Kind is the moniker kind if known. - Kind MonikerKind `json:"kind,omitempty"` -} - -// StaticRegistrationOptions staticRegistration options to be returned in the initialize request. -type StaticRegistrationOptions struct { - // ID is the id used to register the request. The id can be used to deregister - // the request again. See also Registration#id. - ID string `json:"id,omitempty"` -} - -// DocumentLinkRegistrationOptions DocumentLinkRegistration options. -type DocumentLinkRegistrationOptions struct { - TextDocumentRegistrationOptions - - // ResolveProvider document links have a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// InitializedParams params of Initialized notification. -type InitializedParams struct{} - -// WorkspaceFolders represents a slice of WorkspaceFolder. -type WorkspaceFolders []WorkspaceFolder diff --git a/vendor/github.com/a-h/templ/lsp/protocol/handler.go b/vendor/github.com/a-h/templ/lsp/protocol/handler.go deleted file mode 100644 index 0cd437a..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/handler.go +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" - "fmt" - - "encoding/json" - - "github.com/a-h/templ/lsp/jsonrpc2" - "github.com/a-h/templ/lsp/xcontext" -) - -// CancelHandler handler of cancelling. -func CancelHandler(handler jsonrpc2.Handler) jsonrpc2.Handler { - handler, canceller := jsonrpc2.CancelHandler(handler) - - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if req.Method() != MethodCancelRequest { - // TODO(iancottrell): See if we can generate a reply for the request to be cancelled - // at the point of cancellation rather than waiting for gopls to naturally reply. - // To do that, we need to keep track of whether a reply has been sent already and - // be careful about racing between the two paths. - // TODO(iancottrell): Add a test that watches the stream and verifies the response - // for the cancelled request flows. - reply := func(ctx context.Context, resp any, err error) error { - // https://microsoft.github.io/language-server-protocol/specifications/specification-current/#cancelRequest - if ctx.Err() != nil && err == nil { - err = ErrRequestCancelled - } - ctx = xcontext.Detach(ctx) - - return reply(ctx, resp, err) - } - - return handler(ctx, reply, req) - } - - var params CancelParams - if err := json.Unmarshal(req.Params(), &params); err != nil { - return replyParseError(ctx, reply, err) - } - - switch id := params.ID.(type) { - case int32: - canceller(jsonrpc2.NewNumberID(id)) - case string: - canceller(jsonrpc2.NewStringID(id)) - default: - return replyParseError(ctx, reply, fmt.Errorf("request ID %v malformed", id)) - } - - return reply(ctx, nil, nil) - } - - return h -} - -// Handlers default jsonrpc2.Handler. -func Handlers(handler jsonrpc2.Handler) jsonrpc2.Handler { - return CancelHandler( - jsonrpc2.AsyncHandler( - jsonrpc2.ReplyHandler(handler), - ), - ) -} - -// Call calls method to params and result. -func Call(ctx context.Context, conn jsonrpc2.Conn, method string, params, result any) error { - id, err := conn.Call(ctx, method, params, result) - if ctx.Err() != nil { - notifyCancel(ctx, conn, id) - } - - return err -} - -func notifyCancel(ctx context.Context, conn jsonrpc2.Conn, id jsonrpc2.ID) { - ctx = xcontext.Detach(ctx) - // Note that only *jsonrpc2.ID implements json.Marshaler. - _ = conn.Notify(ctx, MethodCancelRequest, &CancelParams{ID: &id}) -} - -func replyParseError(ctx context.Context, reply jsonrpc2.Replier, err error) error { - return reply(ctx, nil, fmt.Errorf("%s: %w", jsonrpc2.ErrParse, err)) -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/language.go b/vendor/github.com/a-h/templ/lsp/protocol/language.go deleted file mode 100644 index 37e60c8..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/language.go +++ /dev/null @@ -1,1401 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" - - "encoding/json" -) - -// CompletionParams params of Completion request. -type CompletionParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams - - // Context is the completion context. This is only available if the client specifies - // to send this using `ClientCapabilities.textDocument.completion.contextSupport === true` - Context *CompletionContext `json:"context,omitempty"` -} - -// CompletionTriggerKind how a completion was triggered. -type CompletionTriggerKind float64 - -const ( - // CompletionTriggerKindInvoked completion was triggered by typing an identifier (24x7 code - // complete), manual invocation (e.g Ctrl+Space) or via API. - CompletionTriggerKindInvoked CompletionTriggerKind = 1 - - // CompletionTriggerKindTriggerCharacter completion was triggered by a trigger character specified by - // the `triggerCharacters` properties of the `CompletionRegistrationOptions`. - CompletionTriggerKindTriggerCharacter CompletionTriggerKind = 2 - - // CompletionTriggerKindTriggerForIncompleteCompletions completion was re-triggered as the current completion list is incomplete. - CompletionTriggerKindTriggerForIncompleteCompletions CompletionTriggerKind = 3 -) - -// String implements fmt.Stringer. -func (k CompletionTriggerKind) String() string { - switch k { - case CompletionTriggerKindInvoked: - return "Invoked" - case CompletionTriggerKindTriggerCharacter: - return "TriggerCharacter" - case CompletionTriggerKindTriggerForIncompleteCompletions: - return "TriggerForIncompleteCompletions" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionContext contains additional information about the context in which a completion request is triggered. -type CompletionContext struct { - // TriggerCharacter is the trigger character (a single character) that has trigger code complete. - // Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` - TriggerCharacter string `json:"triggerCharacter,omitempty"` - - // TriggerKind how the completion was triggered. - TriggerKind CompletionTriggerKind `json:"triggerKind"` -} - -// CompletionList represents a collection of [completion items](#CompletionItem) to be presented -// in the editor. -type CompletionList struct { - // IsIncomplete this list it not complete. Further typing should result in recomputing - // this list. - IsIncomplete bool `json:"isIncomplete"` - - // Items is the completion items. - Items []CompletionItem `json:"items"` -} - -// InsertTextFormat defines whether the insert text in a completion item should be interpreted as -// plain text or a snippet. -type InsertTextFormat float64 - -const ( - // InsertTextFormatPlainText is the primary text to be inserted is treated as a plain string. - InsertTextFormatPlainText InsertTextFormat = 1 - - // InsertTextFormatSnippet is the primary text to be inserted is treated as a snippet. - // - // A snippet can define tab stops and placeholders with `$1`, `$2` - // and `${3:foo}`. `$0` defines the final tab stop, it defaults to - // the end of the snippet. Placeholders with equal identifiers are linked, - // that is typing in one will update others too. - InsertTextFormatSnippet InsertTextFormat = 2 -) - -// String implements fmt.Stringer. -func (tf InsertTextFormat) String() string { - switch tf { - case InsertTextFormatPlainText: - return "PlainText" - case InsertTextFormatSnippet: - return "Snippet" - default: - return strconv.FormatFloat(float64(tf), 'f', -10, 64) - } -} - -// InsertReplaceEdit is a special text edit to provide an insert and a replace operation. -// -// @since 3.16.0. -type InsertReplaceEdit struct { - // NewText is the string to be inserted. - NewText string `json:"newText"` - - // Insert is the range if the insert is requested. - Insert Range `json:"insert"` - - // Replace is the range if the replace is requested. - Replace Range `json:"replace"` -} - -// InsertTextMode how whitespace and indentation is handled during completion -// item insertion. -// -// @since 3.16.0. -type InsertTextMode float64 - -const ( - // AsIs is the insertion or replace strings is taken as it is. If the - // value is multi line the lines below the cursor will be - // inserted using the indentation defined in the string value. - // The client will not apply any kind of adjustments to the - // string. - InsertTextModeAsIs InsertTextMode = 1 - - // AdjustIndentation is the editor adjusts leading whitespace of new lines so that - // they match the indentation up to the cursor of the line for - // which the item is accepted. - // - // Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a - // multi line completion item is indented using 2 tabs and all - // following lines inserted will be indented using 2 tabs as well. - InsertTextModeAdjustIndentation InsertTextMode = 2 -) - -// String returns a string representation of the InsertTextMode. -func (k InsertTextMode) String() string { - switch k { - case InsertTextModeAsIs: - return "AsIs" - case InsertTextModeAdjustIndentation: - return "AdjustIndentation" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionItem item of CompletionList. -type CompletionItem struct { - // AdditionalTextEdits an optional array of additional text edits that are applied when - // selecting this completion. Edits must not overlap (including the same insert position) - // with the main edit nor with themselves. - // - // Additional text edits should be used to change text unrelated to the current cursor position - // (for example adding an import statement at the top of the file if the completion item will - // insert an unqualified type). - AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` - - // Command an optional command that is executed *after* inserting this completion. *Note* that - // additional modifications to the current document should be described with the - // additionalTextEdits-property. - Command *Command `json:"command,omitempty"` - - // CommitCharacters an optional set of characters that when pressed while this completion is active will accept it first and - // then type that character. *Note* that all commit characters should have `length=1` and that superfluous - // characters will be ignored. - CommitCharacters []string `json:"commitCharacters,omitempty"` - - // Tags is the tag for this completion item. - // - // @since 3.15.0. - Tags []CompletionItemTag `json:"tags,omitempty"` - - // Data an data entry field that is preserved on a completion item between - // a completion and a completion resolve request. - Data any `json:"data,omitempty"` - - // Deprecated indicates if this item is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Detail a human-readable string with additional information - // about this item, like type or symbol information. - Detail string `json:"detail,omitempty"` - - // Documentation a human-readable string that represents a doc-comment. - Documentation any `json:"documentation,omitempty"` - - // FilterText a string that should be used when filtering a set of - // completion items. When `falsy` the label is used. - FilterText string `json:"filterText,omitempty"` - - // InsertText a string that should be inserted into a document when selecting - // this completion. When `falsy` the label is used. - // - // The `insertText` is subject to interpretation by the client side. - // Some tools might not take the string literally. For example - // VS Code when code complete is requested in this example `con<cursor position>` - // and a completion item with an `insertText` of `console` is provided it - // will only insert `sole`. Therefore it is recommended to use `textEdit` instead - // since it avoids additional client side interpretation. - InsertText string `json:"insertText,omitempty"` - - // InsertTextFormat is the format of the insert text. The format applies to both the `insertText` property - // and the `newText` property of a provided `textEdit`. - InsertTextFormat InsertTextFormat `json:"insertTextFormat,omitempty"` - - // InsertTextMode how whitespace and indentation is handled during completion - // item insertion. If not provided the client's default value depends on - // the `textDocument.completion.insertTextMode` client capability. - // - // @since 3.16.0. - InsertTextMode InsertTextMode `json:"insertTextMode,omitempty"` - - // Kind is the kind of this completion item. Based of the kind - // an icon is chosen by the editor. - Kind CompletionItemKind `json:"kind,omitempty"` - - // Label is the label of this completion item. By default - // also the text that is inserted when selecting - // this completion. - Label string `json:"label"` - - // Preselect select this item when showing. - // - // *Note* that only one completion item can be selected and that the - // tool / client decides which item that is. The rule is that the *first* - // item of those that match best is selected. - Preselect bool `json:"preselect,omitempty"` - - // SortText a string that should be used when comparing this item - // with other items. When `falsy` the label is used. - SortText string `json:"sortText,omitempty"` - - // TextEdit an edit which is applied to a document when selecting this completion. When an edit is provided the value of - // `insertText` is ignored. - // - // NOTE: The range of the edit must be a single line range and it must contain the position at which completion - // has been requested. - // - // Most editors support two different operations when accepting a completion - // item. One is to insert a completion text and the other is to replace an - // existing text with a completion text. Since this can usually not be - // predetermined by a server it can report both ranges. Clients need to - // signal support for `InsertReplaceEdits` via the - // "textDocument.completion.insertReplaceSupport" client capability - // property. - // - // NOTE 1: The text edit's range as well as both ranges from an insert - // replace edit must be a [single line] and they must contain the position - // at which completion has been requested. - // - // NOTE 2: If an "InsertReplaceEdit" is returned the edit's insert range - // must be a prefix of the edit's replace range, that means it must be - // contained and starting at the same position. - // - // @since 3.16.0 additional type "InsertReplaceEdit". - TextEdit *TextEditOrInsertReplaceEdit `json:"textEdit,omitempty"` // *TextEdit | *InsertReplaceEdit -} - -type TextEditOrInsertReplaceEdit struct { - TextEdit *TextEdit - InsertReplaceEdit *InsertReplaceEdit -} - -func (t *TextEditOrInsertReplaceEdit) MarshalJSON() ([]byte, error) { - if t.TextEdit != nil { - return json.Marshal(t.TextEdit) - } - return json.Marshal(t.InsertReplaceEdit) -} - -type textEditAndInsertReplaceEdit struct { - // NewText is in both types. - NewText string `json:"newText"` - - // Range is only present in TextEdit. - Range *Range `json:"range"` - - // Insert is only present in InsertReplaceEdit. - Insert Range `json:"insert"` - // Replace is only present in InsertReplaceEdit. - Replace Range `json:"replace"` -} - -func (t *TextEditOrInsertReplaceEdit) UnmarshalJSON(data []byte) error { - var teaire textEditAndInsertReplaceEdit - if err := json.Unmarshal(data, &teaire); err != nil { - return err - } - if teaire.Range != nil { - t.TextEdit = &TextEdit{ - NewText: teaire.NewText, - Range: *teaire.Range, - } - return nil - } - t.InsertReplaceEdit = &InsertReplaceEdit{ - NewText: teaire.NewText, - Insert: teaire.Insert, - Replace: teaire.Replace, - } - return nil -} - -// CompletionItemKind is the completion item kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -// -// If this property is not present the client only supports -// the completion items kinds from `Text` to `Reference` as defined in -// the initial version of the protocol. -type CompletionItemKind float64 - -const ( - // CompletionItemKindText text completion kind. - CompletionItemKindText CompletionItemKind = 1 - // CompletionItemKindMethod method completion kind. - CompletionItemKindMethod CompletionItemKind = 2 - // CompletionItemKindFunction function completion kind. - CompletionItemKindFunction CompletionItemKind = 3 - // CompletionItemKindConstructor constructor completion kind. - CompletionItemKindConstructor CompletionItemKind = 4 - // CompletionItemKindField field completion kind. - CompletionItemKindField CompletionItemKind = 5 - // CompletionItemKindVariable variable completion kind. - CompletionItemKindVariable CompletionItemKind = 6 - // CompletionItemKindClass class completion kind. - CompletionItemKindClass CompletionItemKind = 7 - // CompletionItemKindInterface interface completion kind. - CompletionItemKindInterface CompletionItemKind = 8 - // CompletionItemKindModule module completion kind. - CompletionItemKindModule CompletionItemKind = 9 - // CompletionItemKindProperty property completion kind. - CompletionItemKindProperty CompletionItemKind = 10 - // CompletionItemKindUnit unit completion kind. - CompletionItemKindUnit CompletionItemKind = 11 - // CompletionItemKindValue value completion kind. - CompletionItemKindValue CompletionItemKind = 12 - // CompletionItemKindEnum enum completion kind. - CompletionItemKindEnum CompletionItemKind = 13 - // CompletionItemKindKeyword keyword completion kind. - CompletionItemKindKeyword CompletionItemKind = 14 - // CompletionItemKindSnippet snippet completion kind. - CompletionItemKindSnippet CompletionItemKind = 15 - // CompletionItemKindColor color completion kind. - CompletionItemKindColor CompletionItemKind = 16 - // CompletionItemKindFile file completion kind. - CompletionItemKindFile CompletionItemKind = 17 - // CompletionItemKindReference reference completion kind. - CompletionItemKindReference CompletionItemKind = 18 - // CompletionItemKindFolder folder completion kind. - CompletionItemKindFolder CompletionItemKind = 19 - // CompletionItemKindEnumMember enum member completion kind. - CompletionItemKindEnumMember CompletionItemKind = 20 - // CompletionItemKindConstant constant completion kind. - CompletionItemKindConstant CompletionItemKind = 21 - // CompletionItemKindStruct struct completion kind. - CompletionItemKindStruct CompletionItemKind = 22 - // CompletionItemKindEvent event completion kind. - CompletionItemKindEvent CompletionItemKind = 23 - // CompletionItemKindOperator operator completion kind. - CompletionItemKindOperator CompletionItemKind = 24 - // CompletionItemKindTypeParameter type parameter completion kind. - CompletionItemKindTypeParameter CompletionItemKind = 25 -) - -// String implements fmt.Stringer. -// -//nolint:cyclop -func (k CompletionItemKind) String() string { - switch k { - case CompletionItemKindText: - return "Text" - case CompletionItemKindMethod: - return "Method" - case CompletionItemKindFunction: - return "Function" - case CompletionItemKindConstructor: - return "Constructor" - case CompletionItemKindField: - return "Field" - case CompletionItemKindVariable: - return "Variable" - case CompletionItemKindClass: - return "Class" - case CompletionItemKindInterface: - return "Interface" - case CompletionItemKindModule: - return "Module" - case CompletionItemKindProperty: - return "Property" - case CompletionItemKindUnit: - return "Unit" - case CompletionItemKindValue: - return "Value" - case CompletionItemKindEnum: - return "Enum" - case CompletionItemKindKeyword: - return "Keyword" - case CompletionItemKindSnippet: - return "Snippet" - case CompletionItemKindColor: - return "Color" - case CompletionItemKindFile: - return "File" - case CompletionItemKindReference: - return "Reference" - case CompletionItemKindFolder: - return "Folder" - case CompletionItemKindEnumMember: - return "EnumMember" - case CompletionItemKindConstant: - return "Constant" - case CompletionItemKindStruct: - return "Struct" - case CompletionItemKindEvent: - return "Event" - case CompletionItemKindOperator: - return "Operator" - case CompletionItemKindTypeParameter: - return "TypeParameter" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// CompletionItemTag completion item tags are extra annotations that tweak the rendering of a completion -// item. -// -// @since 3.15.0. -type CompletionItemTag float64 - -// list of CompletionItemTag. -const ( - // CompletionItemTagDeprecated is the render a completion as obsolete, usually using a strike-out. - CompletionItemTagDeprecated CompletionItemTag = 1 -) - -// String returns a string representation of the type. -func (c CompletionItemTag) String() string { - switch c { - case CompletionItemTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(c), 'f', -10, 64) - } -} - -// CompletionRegistrationOptions CompletionRegistration options. -type CompletionRegistrationOptions struct { - TextDocumentRegistrationOptions - - // TriggerCharacters most tools trigger completion request automatically without explicitly requesting - // it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user - // starts to type an identifier. For example if the user types `c` in a JavaScript file - // code complete will automatically pop up present `console` besides others as a - // completion item. Characters that make up identifiers don't need to be listed here. - // - // If code complete should automatically be trigger on characters not being valid inside - // an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` - - // ResolveProvider is the server provides support to resolve additional - // information for a completion item. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// HoverParams params of Hover request. -// -// @since 3.15.0. -type HoverParams struct { - TextDocumentPositionParams - WorkDoneProgressParams -} - -// Hover is the result of a hover request. -type Hover struct { - // Contents is the hover's content - Contents MarkupContent `json:"contents"` - - // Range an optional range is a range inside a text document - // that is used to visualize a hover, e.g. by changing the background color. - Range *Range `json:"range,omitempty"` -} - -// SignatureHelpParams params of SignatureHelp request. -// -// @since 3.15.0. -type SignatureHelpParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - - // context is the signature help context. - // - // This is only available if the client specifies to send this using the - // client capability `textDocument.signatureHelp.contextSupport === true`. - // - // @since 3.15.0. - Context *SignatureHelpContext `json:"context,omitempty"` -} - -// SignatureHelpTriggerKind is the how a signature help was triggered. -// -// @since 3.15.0. -type SignatureHelpTriggerKind float64 - -// list of SignatureHelpTriggerKind. -const ( - // SignatureHelpTriggerKindInvoked is the signature help was invoked manually by the user or by a command. - SignatureHelpTriggerKindInvoked SignatureHelpTriggerKind = 1 - - // SignatureHelpTriggerKindTriggerCharacter is the signature help was triggered by a trigger character. - SignatureHelpTriggerKindTriggerCharacter SignatureHelpTriggerKind = 2 - - // SignatureHelpTriggerKindContentChange is the signature help was triggered by the cursor moving or - // by the document content changing. - SignatureHelpTriggerKindContentChange SignatureHelpTriggerKind = 3 -) - -// String returns a string representation of the type. -func (s SignatureHelpTriggerKind) String() string { - switch s { - case SignatureHelpTriggerKindInvoked: - return "Invoked" - case SignatureHelpTriggerKindTriggerCharacter: - return "TriggerCharacter" - case SignatureHelpTriggerKindContentChange: - return "ContentChange" - default: - return strconv.FormatFloat(float64(s), 'f', -10, 64) - } -} - -// SignatureHelpContext is the additional information about the context in which a -// signature help request was triggered. -// -// @since 3.15.0. -type SignatureHelpContext struct { - // TriggerKind is the action that caused signature help to be triggered. - TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` - - // Character that caused signature help to be triggered. - // - // This is undefined when - // TriggerKind != SignatureHelpTriggerKindTriggerCharacter - TriggerCharacter string `json:"triggerCharacter,omitempty"` - - // IsRetrigger is the `true` if signature help was already showing when it was triggered. - // - // Retriggers occur when the signature help is already active and can be - // caused by actions such as typing a trigger character, a cursor move, - // or document content changes. - IsRetrigger bool `json:"isRetrigger"` - - // ActiveSignatureHelp is the currently active SignatureHelp. - // - // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field - // updated based on the user navigating through available signatures. - ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitempty"` -} - -// SignatureHelp signature help represents the signature of something -// callable. There can be multiple signature but only one -// active and only one active parameter. -type SignatureHelp struct { - // Signatures one or more signatures. - Signatures []SignatureInformation `json:"signatures"` - - // ActiveParameter is the active parameter of the active signature. If omitted or the value - // lies outside the range of `signatures[activeSignature].parameters` - // defaults to 0 if the active signature has parameters. If - // the active signature has no parameters it is ignored. - // In future version of the protocol this property might become - // mandatory to better express the active parameter if the - // active signature does have any. - ActiveParameter uint32 `json:"activeParameter,omitempty"` - - // ActiveSignature is the active signature. If omitted or the value lies outside the - // range of `signatures` the value defaults to zero or is ignored if - // `signatures.length === 0`. Whenever possible implementors should - // make an active decision about the active signature and shouldn't - // rely on a default value. - // In future version of the protocol this property might become - // mandatory to better express this. - ActiveSignature uint32 `json:"activeSignature,omitempty"` -} - -// SignatureInformation is the client supports the following `SignatureInformation` -// specific properties. -type SignatureInformation struct { - // Label is the label of this signature. Will be shown in - // the UI. - // - // @since 3.16.0. - Label string `json:"label"` - - // Documentation is the human-readable doc-comment of this signature. Will be shown - // in the UI but can be omitted. - // - // @since 3.16.0. - Documentation any `json:"documentation,omitempty"` // string | *MarkupContent - - // Parameters is the parameters of this signature. - // - // @since 3.16.0. - Parameters []ParameterInformation `json:"parameters,omitempty"` - - // ActiveParameterSupport is the client supports the `activeParameter` property on - // `SignatureInformation` literal. - // - // @since 3.16.0. - ActiveParameter uint32 `json:"activeParameter,omitempty"` -} - -// ParameterInformation represents a parameter of a callable-signature. A parameter can -// have a label and a doc-comment. -type ParameterInformation struct { - // Label is the label of this parameter information. - // - // Either a string or an inclusive start and exclusive end offsets within its containing - // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 - // string representation as "Position" and "Range" does. - // - // *Note*: a label of type string should be a substring of its containing signature label. - // Its intended use case is to highlight the parameter label part in the "SignatureInformation.label". - Label string `json:"label"` // string | [uint32, uint32] - - // Documentation is the human-readable doc-comment of this parameter. Will be shown - // in the UI but can be omitted. - Documentation any `json:"documentation,omitempty"` // string | MarkupContent -} - -// SignatureHelpRegistrationOptions SignatureHelp Registration options. -type SignatureHelpRegistrationOptions struct { - TextDocumentRegistrationOptions - - // TriggerCharacters is the characters that trigger signature help - // automatically. - TriggerCharacters []string `json:"triggerCharacters,omitempty"` -} - -// ReferenceParams params of References request. -// -// @since 3.15.0. -type ReferenceParams struct { - TextDocumentPositionParams - WorkDoneProgressParams - PartialResultParams - - // Context is the ReferenceParams context. - Context ReferenceContext `json:"context"` -} - -// ReferenceContext context of ReferenceParams. -type ReferenceContext struct { - // IncludeDeclaration include the declaration of the current symbol. - IncludeDeclaration bool `json:"includeDeclaration"` -} - -// DocumentHighlight a document highlight is a range inside a text document which deserves -// special attention. Usually a document highlight is visualized by changing -// the background color of its range. -type DocumentHighlight struct { - // Range is the range this highlight applies to. - Range Range `json:"range"` - - // Kind is the highlight kind, default is DocumentHighlightKind.Text. - Kind DocumentHighlightKind `json:"kind,omitempty"` -} - -// DocumentHighlightKind a document highlight kind. -type DocumentHighlightKind float64 - -const ( - // DocumentHighlightKindText a textual occurrence. - DocumentHighlightKindText DocumentHighlightKind = 1 - - // DocumentHighlightKindRead read-access of a symbol, like reading a variable. - DocumentHighlightKindRead DocumentHighlightKind = 2 - - // DocumentHighlightKindWrite write-access of a symbol, like writing to a variable. - DocumentHighlightKindWrite DocumentHighlightKind = 3 -) - -// String implements fmt.Stringer. -func (k DocumentHighlightKind) String() string { - switch k { - case DocumentHighlightKindText: - return "Text" - case DocumentHighlightKindRead: - return "Read" - case DocumentHighlightKindWrite: - return "Write" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// DocumentSymbolParams params of Document Symbols request. -type DocumentSymbolParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// SymbolKind specific capabilities for the `SymbolKind`. -// The symbol kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -// -// If this property is not present the client only supports -// the symbol kinds from `File` to `Array` as defined in -// the initial version of the protocol. -type SymbolKind float64 - -const ( - // SymbolKindFile symbol of file. - SymbolKindFile SymbolKind = 1 - // SymbolKindModule symbol of module. - SymbolKindModule SymbolKind = 2 - // SymbolKindNamespace symbol of namespace. - SymbolKindNamespace SymbolKind = 3 - // SymbolKindPackage symbol of package. - SymbolKindPackage SymbolKind = 4 - // SymbolKindClass symbol of class. - SymbolKindClass SymbolKind = 5 - // SymbolKindMethod symbol of method. - SymbolKindMethod SymbolKind = 6 - // SymbolKindProperty symbol of property. - SymbolKindProperty SymbolKind = 7 - // SymbolKindField symbol of field. - SymbolKindField SymbolKind = 8 - // SymbolKindConstructor symbol of constructor. - SymbolKindConstructor SymbolKind = 9 - // SymbolKindEnum symbol of enum. - SymbolKindEnum SymbolKind = 10 - // SymbolKindInterface symbol of interface. - SymbolKindInterface SymbolKind = 11 - // SymbolKindFunction symbol of function. - SymbolKindFunction SymbolKind = 12 - // SymbolKindVariable symbol of variable. - SymbolKindVariable SymbolKind = 13 - // SymbolKindConstant symbol of constant. - SymbolKindConstant SymbolKind = 14 - // SymbolKindString symbol of string. - SymbolKindString SymbolKind = 15 - // SymbolKindNumber symbol of number. - SymbolKindNumber SymbolKind = 16 - // SymbolKindBoolean symbol of boolean. - SymbolKindBoolean SymbolKind = 17 - // SymbolKindArray symbol of array. - SymbolKindArray SymbolKind = 18 - // SymbolKindObject symbol of object. - SymbolKindObject SymbolKind = 19 - // SymbolKindKey symbol of key. - SymbolKindKey SymbolKind = 20 - // SymbolKindNull symbol of null. - SymbolKindNull SymbolKind = 21 - // SymbolKindEnumMember symbol of enum member. - SymbolKindEnumMember SymbolKind = 22 - // SymbolKindStruct symbol of struct. - SymbolKindStruct SymbolKind = 23 - // SymbolKindEvent symbol of event. - SymbolKindEvent SymbolKind = 24 - // SymbolKindOperator symbol of operator. - SymbolKindOperator SymbolKind = 25 - // SymbolKindTypeParameter symbol of type parameter. - SymbolKindTypeParameter SymbolKind = 26 -) - -// String implements fmt.Stringer. -// -//nolint:cyclop -func (k SymbolKind) String() string { - switch k { - case SymbolKindFile: - return "File" - case SymbolKindModule: - return "Module" - case SymbolKindNamespace: - return "Namespace" - case SymbolKindPackage: - return "Package" - case SymbolKindClass: - return "Class" - case SymbolKindMethod: - return "Method" - case SymbolKindProperty: - return "Property" - case SymbolKindField: - return "Field" - case SymbolKindConstructor: - return "Constructor" - case SymbolKindEnum: - return "Enum" - case SymbolKindInterface: - return "Interface" - case SymbolKindFunction: - return "Function" - case SymbolKindVariable: - return "Variable" - case SymbolKindConstant: - return "Constant" - case SymbolKindString: - return "String" - case SymbolKindNumber: - return "Number" - case SymbolKindBoolean: - return "Boolean" - case SymbolKindArray: - return "Array" - case SymbolKindObject: - return "Object" - case SymbolKindKey: - return "Key" - case SymbolKindNull: - return "Null" - case SymbolKindEnumMember: - return "EnumMember" - case SymbolKindStruct: - return "Struct" - case SymbolKindEvent: - return "Event" - case SymbolKindOperator: - return "Operator" - case SymbolKindTypeParameter: - return "TypeParameter" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// SymbolTag symbol tags are extra annotations that tweak the rendering of a symbol. -// -// @since 3.16.0. -type SymbolTag float64 - -// list of SymbolTag. -const ( - // SymbolTagDeprecated render a symbol as obsolete, usually using a strike-out. - SymbolTagDeprecated SymbolTag = 1 -) - -// String returns a string representation of the SymbolTag. -func (k SymbolTag) String() string { - switch k { - case SymbolTagDeprecated: - return "Deprecated" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// DocumentSymbol represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be -// hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, -// e.g. the range of an identifier. -type DocumentSymbol struct { - // Name is the name of this symbol. Will be displayed in the user interface and therefore must not be - // an empty string or a string only consisting of white spaces. - Name string `json:"name"` - - // Detail is the more detail for this symbol, e.g the signature of a function. - Detail string `json:"detail,omitempty"` - - // Kind is the kind of this symbol. - Kind SymbolKind `json:"kind"` - - // Tags for this document symbol. - // - // @since 3.16.0. - Tags []SymbolTag `json:"tags,omitempty"` - - // Deprecated indicates if this symbol is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Range is the range enclosing this symbol not including leading/trailing whitespace but everything else - // like comments. This information is typically used to determine if the clients cursor is - // inside the symbol to reveal in the symbol in the UI. - Range Range `json:"range"` - - // SelectionRange is the range that should be selected and revealed when this symbol is being picked, e.g the name of a function. - // Must be contained by the `range`. - SelectionRange Range `json:"selectionRange"` - - // Children children of this symbol, e.g. properties of a class. - Children []DocumentSymbol `json:"children,omitempty"` -} - -// SymbolInformation represents information about programming constructs like variables, classes, -// interfaces etc. -type SymbolInformation struct { - // Name is the name of this symbol. - Name string `json:"name"` - - // Kind is the kind of this symbol. - Kind SymbolKind `json:"kind"` - - // Tags for this completion item. - // - // @since 3.16.0. - Tags []SymbolTag `json:"tags,omitempty"` - - // Deprecated indicates if this symbol is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - - // Location is the location of this symbol. The location's range is used by a tool - // to reveal the location in the editor. If the symbol is selected in the - // tool the range's start information is used to position the cursor. So - // the range usually spans more then the actual symbol's name and does - // normally include things like visibility modifiers. - // - // The range doesn't have to denote a node range in the sense of a abstract - // syntax tree. It can therefore not be used to re-construct a hierarchy of - // the symbols. - Location Location `json:"location"` - - // ContainerName is the name of the symbol containing this symbol. This information is for - // user interface purposes (e.g. to render a qualifier in the user interface - // if necessary). It can't be used to re-infer a hierarchy for the document - // symbols. - ContainerName string `json:"containerName,omitempty"` -} - -type SymbolInformationOrDocumentSymbol struct { - SymbolInformation *SymbolInformation - DocumentSymbol *DocumentSymbol -} - -func (s *SymbolInformationOrDocumentSymbol) MarshalJSON() ([]byte, error) { - if s.SymbolInformation != nil { - return json.Marshal(s.SymbolInformation) - } - return json.Marshal(s.DocumentSymbol) -} - -func (s *SymbolInformationOrDocumentSymbol) UnmarshalJSON(data []byte) error { - var si SymbolInformation - if err := json.Unmarshal(data, &si); err != nil { - return err - } - s.SymbolInformation = &si - - var ds DocumentSymbol - err := json.Unmarshal(data, &ds) - if err != nil { - return err - } - s.DocumentSymbol = &ds - - // Only SymbolInformation has a location URI. - if s.SymbolInformation.Location.URI == "" { - s.SymbolInformation = nil - } else { - s.DocumentSymbol = nil - } - - return nil -} - -// CodeActionParams params for the CodeActionRequest. -type CodeActionParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document in which the command was invoked. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Context carrying additional information. - Context CodeActionContext `json:"context"` - - // Range is the range for which the command was invoked. - Range Range `json:"range"` -} - -// CodeActionKind is the code action kind values the client supports. When this -// property exists the client also guarantees that it will -// handle values outside its set gracefully and falls back -// to a default value when unknown. -type CodeActionKind string - -// A set of predefined code action kinds. -const ( - // QuickFix base kind for quickfix actions: 'quickfix'. - QuickFix CodeActionKind = "quickfix" - - // Refactor base kind for refactoring actions: 'refactor'. - Refactor CodeActionKind = "refactor" - - // RefactorExtract base kind for refactoring extraction actions: 'refactor.extract' - // - // Example extract actions: - // - // - Extract method - // - Extract function - // - Extract variable - // - Extract interface from class - // - ... - RefactorExtract CodeActionKind = "refactor.extract" - - // RefactorInline base kind for refactoring inline actions: 'refactor.inline' - // - // Example inline actions: - // - // - Inline function - // - Inline variable - // - Inline constant - // - ... - RefactorInline CodeActionKind = "refactor.inline" - - // RefactorRewrite base kind for refactoring rewrite actions: 'refactor.rewrite' - // - // Example rewrite actions: - // - // - Convert JavaScript function to class - // - Add or remove parameter - // - Encapsulate field - // - Make method static - // - Move method to base class - // - ... - RefactorRewrite CodeActionKind = "refactor.rewrite" - - // Source base kind for source actions: `source` - // - // Source code actions apply to the entire file. - Source CodeActionKind = "source" - - // SourceOrganizeImports base kind for an organize imports source action: `source.organizeImports`. - SourceOrganizeImports CodeActionKind = "source.organizeImports" -) - -// CodeActionContext contains additional diagnostic information about the context in which -// a code action is run. -type CodeActionContext struct { - // Diagnostics is an array of diagnostics. - Diagnostics []Diagnostic `json:"diagnostics"` - - // Only requested kind of actions to return. - // - // Actions not of this kind are filtered out by the client before being shown. So servers - // can omit computing them. - Only []CodeActionKind `json:"only,omitempty"` -} - -// CodeAction capabilities specific to the `textDocument/codeAction`. -type CodeAction struct { - // Title is a short, human-readable, title for this code action. - Title string `json:"title"` - - // Kind is the kind of the code action. - // - // Used to filter code actions. - Kind CodeActionKind `json:"kind,omitempty"` - - // Diagnostics is the diagnostics that this code action resolves. - Diagnostics []Diagnostic `json:"diagnostics,omitempty"` - - // IsPreferred marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted - // by keybindings. - // - // A quick fix should be marked preferred if it properly addresses the underlying error. - // A refactoring should be marked preferred if it is the most reasonable choice of actions to take. - // - // @since 3.15.0. - IsPreferred bool `json:"isPreferred,omitempty"` - - // Disabled marks that the code action cannot currently be applied. - // - // Clients should follow the following guidelines regarding disabled code - // actions: - // - // - Disabled code actions are not shown in automatic lightbulbs code - // action menus. - // - // - Disabled actions are shown as faded out in the code action menu when - // the user request a more specific type of code action, such as - // refactorings. - // - // - If the user has a keybinding that auto applies a code action and only - // a disabled code actions are returned, the client should show the user - // an error message with `reason` in the editor. - // - // @since 3.16.0. - Disabled *CodeActionDisable `json:"disabled,omitempty"` - - // Edit is the workspace edit this code action performs. - Edit *WorkspaceEdit `json:"edit,omitempty"` - - // Command is a command this code action executes. If a code action - // provides an edit and a command, first the edit is - // executed and then the command. - Command *Command `json:"command,omitempty"` - - // Data is a data entry field that is preserved on a code action between - // a "textDocument/codeAction" and a "codeAction/resolve" request. - // - // @since 3.16.0. - Data any `json:"data,omitempty"` -} - -// CodeActionDisable Disable in CodeAction. -// -// @since 3.16.0. -type CodeActionDisable struct { - // Reason human readable description of why the code action is currently - // disabled. - // - // This is displayed in the code actions UI. - Reason string `json:"reason"` -} - -// CodeActionRegistrationOptions CodeAction Registrationi options. -type CodeActionRegistrationOptions struct { - TextDocumentRegistrationOptions - - CodeActionOptions -} - -// CodeLensParams params of Code Lens request. -type CodeLensParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to request code lens for. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// CodeLens is a code lens represents a command that should be shown along with -// source text, like the number of references, a way to run tests, etc. -// -// A code lens is _unresolved_ when no command is associated to it. For performance -// reasons the creation of a code lens and resolving should be done in two stages. -type CodeLens struct { - // Range is the range in which this code lens is valid. Should only span a single line. - Range Range `json:"range"` - - // Command is the command this code lens represents. - Command *Command `json:"command,omitempty"` - - // Data is a data entry field that is preserved on a code lens item between - // a code lens and a code lens resolve request. - Data any `json:"data,omitempty"` -} - -// CodeLensRegistrationOptions CodeLens Registration options. -type CodeLensRegistrationOptions struct { - TextDocumentRegistrationOptions - - // ResolveProvider code lens has a resolve provider as well. - ResolveProvider bool `json:"resolveProvider,omitempty"` -} - -// DocumentLinkParams params of Document Link request. -type DocumentLinkParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to provide document links for. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// DocumentLink is a document link is a range in a text document that links to an internal or external resource, like another -// text document or a web site. -type DocumentLink struct { - // Range is the range this link applies to. - Range Range `json:"range"` - - // Target is the uri this link points to. If missing a resolve request is sent later. - Target DocumentURI `json:"target,omitempty"` - - // Tooltip is the tooltip text when you hover over this link. - // - // If a tooltip is provided, is will be displayed in a string that includes instructions on how to - // trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS, - // user settings, and localization. - // - // @since 3.15.0. - Tooltip string `json:"tooltip,omitempty"` - - // Data is a data entry field that is preserved on a document link between a - // DocumentLinkRequest and a DocumentLinkResolveRequest. - Data any `json:"data,omitempty"` -} - -// DocumentColorParams params of Document Color request. -type DocumentColorParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// ColorInformation response of Document Color request. -type ColorInformation struct { - // Range is the range in the document where this color appears. - Range Range `json:"range"` - - // Color is the actual color value for this color range. - Color Color `json:"color"` -} - -// Color represents a color in RGBA space. -type Color struct { - // Alpha is the alpha component of this color in the range [0-1]. - Alpha float64 `json:"alpha"` - - // Blue is the blue component of this color in the range [0-1]. - Blue float64 `json:"blue"` - - // Green is the green component of this color in the range [0-1]. - Green float64 `json:"green"` - - // Red is the red component of this color in the range [0-1]. - Red float64 `json:"red"` -} - -// ColorPresentationParams params of Color Presentation request. -type ColorPresentationParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Color is the color information to request presentations for. - Color Color `json:"color"` - - // Range is the range where the color would be inserted. Serves as a context. - Range Range `json:"range"` -} - -// ColorPresentation response of Color Presentation request. -type ColorPresentation struct { - // Label is the label of this color presentation. It will be shown on the color - // picker header. By default this is also the text that is inserted when selecting - // this color presentation. - Label string `json:"label"` - - // TextEdit an edit which is applied to a document when selecting - // this presentation for the color. When `falsy` the label is used. - TextEdit *TextEdit `json:"textEdit,omitempty"` - - // AdditionalTextEdits an optional array of additional [text edits](#TextEdit) that are applied when - // selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves. - AdditionalTextEdits []TextEdit `json:"additionalTextEdits,omitempty"` -} - -// DocumentFormattingParams params of Document Formatting request. -type DocumentFormattingParams struct { - WorkDoneProgressParams - - // Options is the format options. - Options FormattingOptions `json:"options"` - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// FormattingOptions value-object describing what options formatting should use. -type FormattingOptions struct { - // InsertSpaces prefer spaces over tabs. - InsertSpaces bool `json:"insertSpaces"` - - // TabSize size of a tab in spaces. - TabSize uint32 `json:"tabSize"` - - // TrimTrailingWhitespace trim trailing whitespaces on a line. - // - // @since 3.15.0. - TrimTrailingWhitespace bool `json:"trimTrailingWhitespace,omitempty"` - - // InsertFinalNewlines insert a newline character at the end of the file if one does not exist. - // - // @since 3.15.0. - InsertFinalNewline bool `json:"insertFinalNewline,omitempty"` - - // TrimFinalNewlines trim all newlines after the final newline at the end of the file. - // - // @since 3.15.0. - TrimFinalNewlines bool `json:"trimFinalNewlines,omitempty"` - - // Key is the signature for further properties. - Key map[string]any `json:"key,omitempty"` // bool | int32 | string -} - -// DocumentRangeFormattingParams params of Document Range Formatting request. -type DocumentRangeFormattingParams struct { - WorkDoneProgressParams - - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Range is the range to format - Range Range `json:"range"` - - // Options is the format options. - Options FormattingOptions `json:"options"` -} - -// DocumentOnTypeFormattingParams params of Document on Type Formatting request. -type DocumentOnTypeFormattingParams struct { - // TextDocument is the document to format. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Position is the position at which this request was sent. - Position Position `json:"position"` - - // Ch is the character that has been typed. - Ch string `json:"ch"` - - // Options is the format options. - Options FormattingOptions `json:"options"` -} - -// DocumentOnTypeFormattingRegistrationOptions DocumentOnTypeFormatting Registration options. -type DocumentOnTypeFormattingRegistrationOptions struct { - TextDocumentRegistrationOptions - - // FirstTriggerCharacter a character on which formatting should be triggered, like `}`. - FirstTriggerCharacter string `json:"firstTriggerCharacter"` - - // MoreTriggerCharacter a More trigger characters. - MoreTriggerCharacter []string `json:"moreTriggerCharacter"` -} - -// RenameParams params of Rename request. -type RenameParams struct { - TextDocumentPositionParams - PartialResultParams - - // NewName is the new name of the symbol. If the given name is not valid the - // request must return a [ResponseError](#ResponseError) with an - // appropriate message set. - NewName string `json:"newName"` -} - -// RenameRegistrationOptions Rename Registration options. -type RenameRegistrationOptions struct { - TextDocumentRegistrationOptions - - // PrepareProvider is the renames should be checked and tested for validity before being executed. - PrepareProvider bool `json:"prepareProvider,omitempty"` -} - -// PrepareRenameParams params of PrepareRenameParams request. -// -// @since 3.15.0. -type PrepareRenameParams struct { - TextDocumentPositionParams -} - -// FoldingRangeParams params of Folding Range request. -type FoldingRangeParams struct { - TextDocumentPositionParams - PartialResultParams -} - -// FoldingRangeKind is the enum of known range kinds. -type FoldingRangeKind string - -const ( - // CommentFoldingRange is the folding range for a comment. - CommentFoldingRange FoldingRangeKind = "comment" - - // ImportsFoldingRange is the folding range for a imports or includes. - ImportsFoldingRange FoldingRangeKind = "imports" - - // RegionFoldingRange is the folding range for a region (e.g. `#region`). - RegionFoldingRange FoldingRangeKind = "region" -) - -// FoldingRange capabilities specific to `textDocument/foldingRange` requests. -// -// @since 3.10.0. -type FoldingRange struct { - // StartLine is the zero-based line number from where the folded range starts. - StartLine uint32 `json:"startLine"` - - // StartCharacter is the zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line. - StartCharacter uint32 `json:"startCharacter,omitempty"` - - // EndLine is the zero-based line number where the folded range ends. - EndLine uint32 `json:"endLine"` - - // EndCharacter is the zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line. - EndCharacter uint32 `json:"endCharacter,omitempty"` - - // Kind describes the kind of the folding range such as `comment' or 'region'. The kind - // is used to categorize folding ranges and used by commands like 'Fold all comments'. - // See FoldingRangeKind for an enumeration of standardized kinds. - Kind FoldingRangeKind `json:"kind,omitempty"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/progress.go b/vendor/github.com/a-h/templ/lsp/protocol/progress.go deleted file mode 100644 index d1a2e9f..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/progress.go +++ /dev/null @@ -1,119 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// WorkDoneProgressKind kind of WorkDoneProgress. -// -// @since 3.15.0. -type WorkDoneProgressKind string - -// list of WorkDoneProgressKind. -const ( - // WorkDoneProgressKindBegin kind of WorkDoneProgressBegin. - WorkDoneProgressKindBegin WorkDoneProgressKind = "begin" - - // WorkDoneProgressKindReport kind of WorkDoneProgressReport. - WorkDoneProgressKindReport WorkDoneProgressKind = "report" - - // WorkDoneProgressKindEnd kind of WorkDoneProgressEnd. - WorkDoneProgressKindEnd WorkDoneProgressKind = "end" -) - -// WorkDoneProgressBegin is the to start progress reporting a "$/progress" notification. -// -// @since 3.15.0. -type WorkDoneProgressBegin struct { - // Kind is the kind of WorkDoneProgressBegin. - // - // It must be WorkDoneProgressKindBegin. - Kind WorkDoneProgressKind `json:"kind"` - - // Title mandatory title of the progress operation. Used to briefly inform about - // the kind of operation being performed. - // - // Examples: "Indexing" or "Linking dependencies". - Title string `json:"title"` - - // Cancellable controls if a cancel button should show to allow the user to cancel the - // long running operation. Clients that don't support cancellation are allowed - // to ignore the setting. - Cancellable bool `json:"cancellable,omitempty"` - - // Message is optional, more detailed associated progress message. Contains - // complementary information to the `title`. - // - // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". - // If unset, the previous progress message (if any) is still valid. - Message string `json:"message,omitempty"` - - // Percentage is optional progress percentage to display (value 100 is considered 100%). - // If not provided infinite progress is assumed and clients are allowed - // to ignore the `percentage` value in subsequent in report notifications. - // - // The value should be steadily rising. Clients are free to ignore values - // that are not following this rule. - Percentage uint32 `json:"percentage,omitempty"` -} - -// WorkDoneProgressReport is the reporting progress is done. -// -// @since 3.15.0. -type WorkDoneProgressReport struct { - // Kind is the kind of WorkDoneProgressReport. - // - // It must be WorkDoneProgressKindReport. - Kind WorkDoneProgressKind `json:"kind"` - - // Cancellable controls enablement state of a cancel button. - // - // Clients that don't support cancellation or don't support controlling the button's - // enablement state are allowed to ignore the property. - Cancellable bool `json:"cancellable,omitempty"` - - // Message is optional, more detailed associated progress message. Contains - // complementary information to the `title`. - // - // Examples: "3/25 files", "project/src/module2", "node_modules/some_dep". - // If unset, the previous progress message (if any) is still valid. - Message string `json:"message,omitempty"` - - // Percentage is optional progress percentage to display (value 100 is considered 100%). - // If not provided infinite progress is assumed and clients are allowed - // to ignore the `percentage` value in subsequent in report notifications. - // - // The value should be steadily rising. Clients are free to ignore values - // that are not following this rule. - Percentage uint32 `json:"percentage,omitempty"` -} - -// WorkDoneProgressEnd is the signaling the end of a progress reporting is done. -// -// @since 3.15.0. -type WorkDoneProgressEnd struct { - // Kind is the kind of WorkDoneProgressEnd. - // - // It must be WorkDoneProgressKindEnd. - Kind WorkDoneProgressKind `json:"kind"` - - // Message is optional, a final message indicating to for example indicate the outcome - // of the operation. - Message string `json:"message,omitempty"` -} - -// WorkDoneProgressParams is a parameter property of report work done progress. -// -// @since 3.15.0. -type WorkDoneProgressParams struct { - // WorkDoneToken an optional token that a server can use to report work done progress. - WorkDoneToken *ProgressToken `json:"workDoneToken,omitempty"` -} - -// PartialResultParams is the parameter literal used to pass a partial result token. -// -// @since 3.15.0. -type PartialResultParams struct { - // PartialResultToken an optional token that a server can use to report partial results - // (for example, streaming) to the client. - PartialResultToken *ProgressToken `json:"partialResultToken,omitempty"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/protocol.go b/vendor/github.com/a-h/templ/lsp/protocol/protocol.go deleted file mode 100644 index e8f7ccb..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/protocol.go +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "context" - "log/slog" - - "github.com/a-h/templ/lsp/jsonrpc2" -) - -// NewServer returns the context in which client is embedded, jsonrpc2.Conn, and the Client. -func NewServer(ctx context.Context, server Server, stream jsonrpc2.Stream, logger *slog.Logger) (context.Context, jsonrpc2.Conn, Client) { - conn := jsonrpc2.NewConn(stream) - cliint := ClientDispatcher(conn, logger.With(slog.String("name", "client"))) - ctx = WithClient(ctx, cliint) - - conn.Go(ctx, - Handlers( - ServerHandler(logger, server, jsonrpc2.MethodNotFoundHandler), - ), - ) - - return ctx, conn, cliint -} - -// NewClient returns the context in which Client is embedded, jsonrpc2.Conn, and the Server. -func NewClient(ctx context.Context, client Client, stream jsonrpc2.Stream, logger *slog.Logger) (context.Context, jsonrpc2.Conn, Server) { - ctx = WithClient(ctx, client) - - conn := jsonrpc2.NewConn(stream) - conn.Go(ctx, - Handlers( - ClientHandler(logger, client, jsonrpc2.MethodNotFoundHandler), - ), - ) - server := ServerDispatcher(conn, logger.With(slog.String("name", "server"))) - - return ctx, conn, server -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/registration.go b/vendor/github.com/a-h/templ/lsp/protocol/registration.go deleted file mode 100644 index 1cb7ab7..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/registration.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// Registration general parameters to register for a capability. -type Registration struct { - // ID is the id used to register the request. The id can be used to deregister - // the request again. - ID string `json:"id"` - - // Method is the method / capability to register for. - Method string `json:"method"` - - // RegisterOptions options necessary for the registration. - RegisterOptions any `json:"registerOptions,omitempty"` -} - -// RegistrationParams params of Register Capability. -type RegistrationParams struct { - Registrations []Registration `json:"registrations"` -} - -// TextDocumentRegistrationOptions TextDocumentRegistration options. -type TextDocumentRegistrationOptions struct { - // DocumentSelector a document selector to identify the scope of the registration. If set to null - // the document selector provided on the client side will be used. - DocumentSelector DocumentSelector `json:"documentSelector"` -} - -// Unregistration general parameters to unregister a capability. -type Unregistration struct { - // ID is the id used to unregister the request or notification. Usually an id - // provided during the register request. - ID string `json:"id"` - - // Method is the method / capability to unregister for. - Method string `json:"method"` -} - -// UnregistrationParams params of Unregistration. -type UnregistrationParams struct { - Unregisterations []Unregistration `json:"unregisterations"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go b/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go deleted file mode 100644 index a45b758..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/selectionrange.go +++ /dev/null @@ -1,110 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// SelectionRangeProviderOptions selection range provider options interface. -type SelectionRangeProviderOptions any - -// SelectionRange represents a selection range represents a part of a selection hierarchy. -// -// A selection range may have a parent selection range that contains it. -// -// @since 3.15.0. -type SelectionRange struct { - // Range is the Range of this selection range. - Range Range `json:"range"` - - // Parent is the parent selection range containing this range. Therefore `parent.range` must contain this Range. - Parent *SelectionRange `json:"parent,omitempty"` -} - -// EnableSelectionRange is the whether the selection range. -type EnableSelectionRange bool - -// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v EnableSelectionRange) Value() any { - return bool(v) -} - -// NewEnableSelectionRange returns the new EnableSelectionRange underlying types SelectionRangeProviderOptions. -func NewEnableSelectionRange(enable bool) SelectionRangeProviderOptions { - v := EnableSelectionRange(enable) - - return &v -} - -// SelectionRangeOptions is the server capability of selection range. -type SelectionRangeOptions struct { - WorkDoneProgressOptions -} - -// compile time check whether the EnableSelectionRange implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*EnableSelectionRange)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v *SelectionRangeOptions) Value() any { - return v -} - -// NewSelectionRangeOptions returns the new SelectionRangeOptions underlying types SelectionRangeProviderOptions. -func NewSelectionRangeOptions(enableWorkDoneProgress bool) SelectionRangeProviderOptions { - v := SelectionRangeOptions{ - WorkDoneProgressOptions: WorkDoneProgressOptions{ - WorkDoneProgress: enableWorkDoneProgress, - }, - } - - return &v -} - -// SelectionRangeRegistrationOptions is the server capability of selection range registration. -type SelectionRangeRegistrationOptions struct { - SelectionRangeOptions - TextDocumentRegistrationOptions - StaticRegistrationOptions -} - -// compile time check whether the SelectionRangeRegistrationOptions implements a SelectionRangeProviderOptions interface. -var _ SelectionRangeProviderOptions = (*SelectionRangeRegistrationOptions)(nil) - -// Value implements SelectionRangeProviderOptions interface. -func (v *SelectionRangeRegistrationOptions) Value() any { - return v -} - -// NewSelectionRangeRegistrationOptions returns the new SelectionRangeRegistrationOptions underlying types SelectionRangeProviderOptions. -func NewSelectionRangeRegistrationOptions(enableWorkDoneProgress bool, selector DocumentSelector, id string) SelectionRangeProviderOptions { - v := SelectionRangeRegistrationOptions{ - SelectionRangeOptions: SelectionRangeOptions{ - WorkDoneProgressOptions: WorkDoneProgressOptions{ - WorkDoneProgress: enableWorkDoneProgress, - }, - }, - TextDocumentRegistrationOptions: TextDocumentRegistrationOptions{ - DocumentSelector: selector, - }, - StaticRegistrationOptions: StaticRegistrationOptions{ - ID: id, - }, - } - - return &v -} - -// SelectionRangeParams represents a parameter literal used in selection range requests. -// -// @since 3.15.0. -type SelectionRangeParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Positions is the positions inside the text document. - Positions []Position `json:"positions"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go b/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go deleted file mode 100644 index c2d1f3a..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/semantic_token.go +++ /dev/null @@ -1,179 +0,0 @@ -// SPDX-FileCopyrightText: 2021 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// SemanticTokenTypes represents a type of semantic token. -// -// @since 3.16.0. -type SemanticTokenTypes string - -// list of SemanticTokenTypes. -const ( - SemanticTokenNamespace SemanticTokenTypes = "namespace" - - // Represents a generic type. Acts as a fallback for types which - // can't be mapped to a specific type like class or enum. - SemanticTokenType SemanticTokenTypes = "type" - SemanticTokenClass SemanticTokenTypes = "class" - SemanticTokenEnum SemanticTokenTypes = "enum" - SemanticTokenInterface SemanticTokenTypes = "interface" - SemanticTokenStruct SemanticTokenTypes = "struct" - SemanticTokenTypeParameter SemanticTokenTypes = "typeParameter" - SemanticTokenParameter SemanticTokenTypes = "parameter" - SemanticTokenVariable SemanticTokenTypes = "variable" - SemanticTokenProperty SemanticTokenTypes = "property" - SemanticTokenEnumMember SemanticTokenTypes = "enumMember" - SemanticTokenEvent SemanticTokenTypes = "event" - SemanticTokenFunction SemanticTokenTypes = "function" - SemanticTokenMethod SemanticTokenTypes = "method" - SemanticTokenMacro SemanticTokenTypes = "macro" - SemanticTokenKeyword SemanticTokenTypes = "keyword" - SemanticTokenModifier SemanticTokenTypes = "modifier" - SemanticTokenComment SemanticTokenTypes = "comment" - SemanticTokenString SemanticTokenTypes = "string" - SemanticTokenNumber SemanticTokenTypes = "number" - SemanticTokenRegexp SemanticTokenTypes = "regexp" - SemanticTokenOperator SemanticTokenTypes = "operator" -) - -// SemanticTokenModifiers represents a modifiers of semantic token. -// -// @since 3.16.0. -type SemanticTokenModifiers string - -// list of SemanticTokenModifiers. -const ( - SemanticTokenModifierDeclaration SemanticTokenModifiers = "declaration" - SemanticTokenModifierDefinition SemanticTokenModifiers = "definition" - SemanticTokenModifierReadonly SemanticTokenModifiers = "readonly" - SemanticTokenModifierStatic SemanticTokenModifiers = "static" - SemanticTokenModifierDeprecated SemanticTokenModifiers = "deprecated" - SemanticTokenModifierAbstract SemanticTokenModifiers = "abstract" - SemanticTokenModifierAsync SemanticTokenModifiers = "async" - SemanticTokenModifierModification SemanticTokenModifiers = "modification" - SemanticTokenModifierDocumentation SemanticTokenModifiers = "documentation" - SemanticTokenModifierDefaultLibrary SemanticTokenModifiers = "defaultLibrary" -) - -// TokenFormat is an additional token format capability to allow future extensions of the format. -// -// @since 3.16.0. -type TokenFormat string - -// TokenFormatRelative described using relative positions. -const TokenFormatRelative TokenFormat = "relative" - -// SemanticTokensLegend is the on the capability level types and modifiers are defined using strings. -// -// However the real encoding happens using numbers. -// -// The server therefore needs to let the client know which numbers it is using for which types and modifiers. -// -// @since 3.16.0. -type SemanticTokensLegend struct { - // TokenTypes is the token types a server uses. - TokenTypes []SemanticTokenTypes `json:"tokenTypes"` - - // TokenModifiers is the token modifiers a server uses. - TokenModifiers []SemanticTokenModifiers `json:"tokenModifiers"` -} - -// SemanticTokensParams params for the SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokensParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// SemanticTokens is the result of SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokens struct { - // ResultID an optional result id. If provided and clients support delta updating - // the client will include the result id in the next semantic token request. - // - // A server can then instead of computing all semantic tokens again simply - // send a delta. - ResultID string `json:"resultId,omitempty"` - - // Data is the actual tokens. - Data []uint32 `json:"data"` -} - -// SemanticTokensPartialResult is the partial result of SemanticTokensFull request. -// -// @since 3.16.0. -type SemanticTokensPartialResult struct { - // Data is the actual tokens. - Data []uint32 `json:"data"` -} - -// SemanticTokensDeltaParams params for the SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDeltaParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // PreviousResultID is the result id of a previous response. - // - // The result Id can either point to a full response or a delta response depending on what was received last. - PreviousResultID string `json:"previousResultId"` -} - -// SemanticTokensDelta result of SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDelta struct { - // ResultID is the result id. - // - // This field is readonly. - ResultID string `json:"resultId,omitempty"` - - // Edits is the semantic token edits to transform a previous result into a new - // result. - Edits []SemanticTokensEdit `json:"edits"` -} - -// SemanticTokensDeltaPartialResult is the partial result of SemanticTokensFullDelta request. -// -// @since 3.16.0. -type SemanticTokensDeltaPartialResult struct { - Edits []SemanticTokensEdit `json:"edits"` -} - -// SemanticTokensEdit is the semantic token edit. -// -// @since 3.16.0. -type SemanticTokensEdit struct { - // Start is the start offset of the edit. - Start uint32 `json:"start"` - - // DeleteCount is the count of elements to remove. - DeleteCount uint32 `json:"deleteCount"` - - // Data is the elements to insert. - Data []uint32 `json:"data,omitempty"` -} - -// SemanticTokensRangeParams params for the SemanticTokensRange request. -// -// @since 3.16.0. -type SemanticTokensRangeParams struct { - WorkDoneProgressParams - PartialResultParams - - // TextDocument is the text document. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Range is the range the semantic tokens are requested for. - Range Range `json:"range"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/server.go b/vendor/github.com/a-h/templ/lsp/protocol/server.go deleted file mode 100644 index feba2bb..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/server.go +++ /dev/null @@ -1,1893 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "bytes" - "context" - "fmt" - "log/slog" - - "encoding/json" - - "github.com/a-h/templ/lsp/jsonrpc2" - "github.com/a-h/templ/lsp/xcontext" -) - -// ServerDispatcher returns a Server that dispatches LSP requests across the -// given jsonrpc2 connection. -func ServerDispatcher(conn jsonrpc2.Conn, logger *slog.Logger) Server { - return &server{ - Conn: conn, - logger: logger, - } -} - -// ServerHandler jsonrpc2.Handler of Language Server Prococol Server. -// -//nolint:unparam -func ServerHandler(log *slog.Logger, server Server, handler jsonrpc2.Handler) jsonrpc2.Handler { - h := func(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error { - if ctx.Err() != nil { - xctx := xcontext.Detach(ctx) - - return reply(xctx, nil, ErrRequestCancelled) - } - handled, err := serverDispatch(ctx, log, server, reply, req) - if handled || err != nil { - return err - } - - // TODO: This code is wrong, it ignores handler and assumes non standard - // request handles everything - // non standard request should just be a layered handler. - var params any - if err := json.Unmarshal(req.Params(), &params); err != nil { - return replyParseError(ctx, reply, err) - } - - resp, err := server.Request(ctx, req.Method(), params) - - return reply(ctx, resp, err) - } - - return h -} - -// serverDispatch implements jsonrpc2.Handler. -// -//nolint:gocognit,funlen,gocyclo,cyclop -func serverDispatch(ctx context.Context, logger *slog.Logger, server Server, reply jsonrpc2.Replier, req jsonrpc2.Request) (handled bool, err error) { - if ctx.Err() != nil { - return true, reply(ctx, nil, ErrRequestCancelled) - } - - dec := json.NewDecoder(bytes.NewReader(req.Params())) - - switch req.Method() { - case MethodInitialize: // request - defer logger.Debug(MethodInitialize, slog.Any("error", err)) - - var params InitializeParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Initialize(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodInitialized: // notification - defer logger.Debug(MethodInitialized, slog.Any("error", err)) - - var params InitializedParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.Initialized(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodShutdown: // request - defer logger.Debug(MethodShutdown, slog.Any("error", err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.Shutdown(ctx) - - return true, reply(ctx, nil, err) - - case MethodExit: // notification - defer logger.Debug(MethodExit, slog.Any("error", err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.Exit(ctx) - - return true, reply(ctx, nil, err) - - case MethodWorkDoneProgressCancel: // notification - defer logger.Debug(MethodWorkDoneProgressCancel, slog.Any("error", err)) - - var params WorkDoneProgressCancelParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.WorkDoneProgressCancel(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodLogTrace: // notification - defer logger.Debug(MethodLogTrace, slog.Any("error", err)) - - var params LogTraceParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.LogTrace(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodSetTrace: // notification - defer logger.Debug(MethodSetTrace, slog.Any("error", err)) - - var params SetTraceParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.SetTrace(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentCodeAction: // request - defer logger.Debug(MethodTextDocumentCodeAction, slog.Any("error", err)) - - var params CodeActionParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeAction(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentCodeLens: // request - defer logger.Debug(MethodTextDocumentCodeLens, slog.Any("error", err)) - - var params CodeLensParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeLens(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodCodeLensResolve: // request - defer logger.Debug(MethodCodeLensResolve, slog.Any("error", err)) - - var params CodeLens - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CodeLensResolve(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentColorPresentation: // request - defer logger.Debug(MethodTextDocumentColorPresentation, slog.Any("error", err)) - - var params ColorPresentationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ColorPresentation(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentCompletion: // request - defer logger.Debug(MethodTextDocumentCompletion, slog.Any("error", err)) - - var params CompletionParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Completion(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodCompletionItemResolve: // request - defer logger.Debug(MethodCompletionItemResolve, slog.Any("error", err)) - - var params CompletionItem - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.CompletionResolve(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDeclaration: // request - defer logger.Debug(MethodTextDocumentDeclaration, slog.Any("error", err)) - - var params DeclarationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Declaration(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDefinition: // request - defer logger.Debug(MethodTextDocumentDefinition, slog.Any("error", err)) - - var params DefinitionParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Definition(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDidChange: // notification - defer logger.Debug(MethodTextDocumentDidChange, slog.Any("error", err)) - - var params DidChangeTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChange(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeConfiguration: // notification - defer logger.Debug(MethodWorkspaceDidChangeConfiguration, slog.Any("error", err)) - - var params DidChangeConfigurationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeConfiguration(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeWatchedFiles: // notification - defer logger.Debug(MethodWorkspaceDidChangeWatchedFiles, slog.Any("error", err)) - - var params DidChangeWatchedFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeWatchedFiles(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWorkspaceDidChangeWorkspaceFolders: // notification - defer logger.Debug(MethodWorkspaceDidChangeWorkspaceFolders, slog.Any("error", err)) - - var params DidChangeWorkspaceFoldersParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidChangeWorkspaceFolders(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidClose: // notification - defer logger.Debug(MethodTextDocumentDidClose, slog.Any("error", err)) - - var params DidCloseTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidClose(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidOpen: // notification - defer logger.Debug(MethodTextDocumentDidOpen, slog.Any("error", err)) - - var params DidOpenTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidOpen(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDidSave: // notification - defer logger.Debug(MethodTextDocumentDidSave, slog.Any("error", err)) - - var params DidSaveTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidSave(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentDocumentColor: // request - defer logger.Debug(MethodTextDocumentDocumentColor, slog.Any("error", err)) - - var params DocumentColorParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentColor(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentHighlight: // request - defer logger.Debug(MethodTextDocumentDocumentHighlight, slog.Any("error", err)) - - var params DocumentHighlightParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentHighlight(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentLink: // request - defer logger.Debug(MethodTextDocumentDocumentLink, slog.Any("error", err)) - - var params DocumentLinkParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentLink(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodDocumentLinkResolve: // request - defer logger.Debug(MethodDocumentLinkResolve, slog.Any("error", err)) - - var params DocumentLink - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentLinkResolve(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentDocumentSymbol: // request - defer logger.Debug(MethodTextDocumentDocumentSymbol, slog.Any("error", err)) - - var params DocumentSymbolParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.DocumentSymbol(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceExecuteCommand: // request - defer logger.Debug(MethodWorkspaceExecuteCommand, slog.Any("error", err)) - - var params ExecuteCommandParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ExecuteCommand(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentFoldingRange: // request - defer logger.Debug(MethodTextDocumentFoldingRange, slog.Any("error", err)) - - var params FoldingRangeParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.FoldingRanges(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentFormatting: // request - defer logger.Debug(MethodTextDocumentFormatting, slog.Any("error", err)) - - var params DocumentFormattingParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Formatting(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentHover: // request - defer logger.Debug(MethodTextDocumentHover, slog.Any("error", err)) - - var params HoverParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Hover(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentImplementation: // request - defer logger.Debug(MethodTextDocumentImplementation, slog.Any("error", err)) - - var params ImplementationParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Implementation(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentOnTypeFormatting: // request - defer logger.Debug(MethodTextDocumentOnTypeFormatting, slog.Any("error", err)) - - var params DocumentOnTypeFormattingParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.OnTypeFormatting(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentPrepareRename: // request - defer logger.Debug(MethodTextDocumentPrepareRename, slog.Any("error", err)) - - var params PrepareRenameParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.PrepareRename(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentRangeFormatting: // request - defer logger.Debug(MethodTextDocumentRangeFormatting, slog.Any("error", err)) - - var params DocumentRangeFormattingParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.RangeFormatting(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentReferences: // request - defer logger.Debug(MethodTextDocumentReferences, slog.Any("error", err)) - - var params ReferenceParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.References(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentRename: // request - defer logger.Debug(MethodTextDocumentRename, slog.Any("error", err)) - - var params RenameParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Rename(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentSignatureHelp: // request - defer logger.Debug(MethodTextDocumentSignatureHelp, slog.Any("error", err)) - - var params SignatureHelpParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SignatureHelp(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodWorkspaceSymbol: // request - defer logger.Debug(MethodWorkspaceSymbol, slog.Any("error", err)) - - var params WorkspaceSymbolParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Symbols(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentTypeDefinition: // request - defer logger.Debug(MethodTextDocumentTypeDefinition, slog.Any("error", err)) - - var params TypeDefinitionParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.TypeDefinition(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodTextDocumentWillSave: // notification - defer logger.Debug(MethodTextDocumentWillSave, slog.Any("error", err)) - - var params WillSaveTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.WillSave(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentWillSaveWaitUntil: // request - defer logger.Debug(MethodTextDocumentWillSaveWaitUntil, slog.Any("error", err)) - - var params WillSaveTextDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillSaveWaitUntil(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodShowDocument: // request - defer logger.Debug(MethodShowDocument, slog.Any("error", err)) - - var params ShowDocumentParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.ShowDocument(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodWillCreateFiles: // request - defer logger.Debug(MethodWillCreateFiles, slog.Any("error", err)) - - var params CreateFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillCreateFiles(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodDidCreateFiles: // notification - defer logger.Debug(MethodDidCreateFiles, slog.Any("error", err)) - - var params CreateFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidCreateFiles(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWillRenameFiles: // request - defer logger.Debug(MethodWillRenameFiles, slog.Any("error", err)) - - var params RenameFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillRenameFiles(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodDidRenameFiles: // notification - defer logger.Debug(MethodDidRenameFiles, slog.Any("error", err)) - - var params RenameFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidRenameFiles(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodWillDeleteFiles: // request - defer logger.Debug(MethodWillDeleteFiles, slog.Any("error", err)) - - var params DeleteFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.WillDeleteFiles(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodDidDeleteFiles: // notification - defer logger.Debug(MethodDidDeleteFiles, slog.Any("error", err)) - - var params DeleteFilesParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - err := server.DidDeleteFiles(ctx, &params) - - return true, reply(ctx, nil, err) - - case MethodCodeLensRefresh: // request - defer logger.Debug(MethodCodeLensRefresh, slog.Any("error", err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.CodeLensRefresh(ctx) - - return true, reply(ctx, nil, err) - - case MethodTextDocumentPrepareCallHierarchy: // request - defer logger.Debug(MethodTextDocumentPrepareCallHierarchy, slog.Any("error", err)) - - var params CallHierarchyPrepareParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.PrepareCallHierarchy(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodCallHierarchyIncomingCalls: // request - defer logger.Debug(MethodCallHierarchyIncomingCalls, slog.Any("error", err)) - - var params CallHierarchyIncomingCallsParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.IncomingCalls(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodCallHierarchyOutgoingCalls: // request - defer logger.Debug(MethodCallHierarchyOutgoingCalls, slog.Any("error", err)) - - var params CallHierarchyOutgoingCallsParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.OutgoingCalls(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensFull: // request - defer logger.Debug(MethodSemanticTokensFull, slog.Any("error", err)) - - var params SemanticTokensParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensFull(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensFullDelta: // request - defer logger.Debug(MethodSemanticTokensFullDelta, slog.Any("error", err)) - - var params SemanticTokensDeltaParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensFullDelta(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensRange: // request - defer logger.Debug(MethodSemanticTokensRange, slog.Any("error", err)) - - var params SemanticTokensRangeParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.SemanticTokensRange(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodSemanticTokensRefresh: // request - defer logger.Debug(MethodSemanticTokensRefresh, slog.Any("error", err)) - - if len(req.Params()) > 0 { - return true, reply(ctx, nil, fmt.Errorf("expected no params: %w", jsonrpc2.ErrInvalidParams)) - } - - err := server.SemanticTokensRefresh(ctx) - - return true, reply(ctx, nil, err) - - case MethodLinkedEditingRange: // request - defer logger.Debug(MethodLinkedEditingRange, slog.Any("error", err)) - - var params LinkedEditingRangeParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.LinkedEditingRange(ctx, &params) - - return true, reply(ctx, resp, err) - - case MethodMoniker: // request - defer logger.Debug(MethodMoniker, slog.Any("error", err)) - - var params MonikerParams - if err := dec.Decode(&params); err != nil { - return true, replyParseError(ctx, reply, err) - } - - resp, err := server.Moniker(ctx, &params) - - return true, reply(ctx, resp, err) - - default: - return false, nil - } -} - -// Server represents a Language Server Protocol server. -type Server interface { - Initialize(ctx context.Context, params *InitializeParams) (result *InitializeResult, err error) - Initialized(ctx context.Context, params *InitializedParams) (err error) - Shutdown(ctx context.Context) (err error) - Exit(ctx context.Context) (err error) - WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) - LogTrace(ctx context.Context, params *LogTraceParams) (err error) - SetTrace(ctx context.Context, params *SetTraceParams) (err error) - CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) - CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) - CodeLensResolve(ctx context.Context, params *CodeLens) (result *CodeLens, err error) - ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) - Completion(ctx context.Context, params *CompletionParams) (result *CompletionList, err error) - CompletionResolve(ctx context.Context, params *CompletionItem) (result *CompletionItem, err error) - Declaration(ctx context.Context, params *DeclarationParams) (result []Location /* Declaration | DeclarationLink[] | null */, err error) - Definition(ctx context.Context, params *DefinitionParams) (result []Location /* Definition | DefinitionLink[] | null */, err error) - DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) - DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) - DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) - DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) - DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) - DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) - DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) - DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) - DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) - DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) - DocumentLinkResolve(ctx context.Context, params *DocumentLink) (result *DocumentLink, err error) - DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []SymbolInformationOrDocumentSymbol, err error) - ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result any, err error) - FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) - Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) - Hover(ctx context.Context, params *HoverParams) (result *Hover, err error) - Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) - OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) - PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) - RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) - References(ctx context.Context, params *ReferenceParams) (result []Location, err error) - Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) - SignatureHelp(ctx context.Context, params *SignatureHelpParams) (result *SignatureHelp, err error) - Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) - TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) - WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) - WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) - ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) - WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) - DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) - WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) - DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) - WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) - DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) - CodeLensRefresh(ctx context.Context) (err error) - PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) - IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) - OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) - SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) - SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result any /* SemanticTokens | SemanticTokensDelta */, err error) - SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) - SemanticTokensRefresh(ctx context.Context) (err error) - LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) - Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) - Request(ctx context.Context, method string, params any) (result any, err error) -} - -// list of server methods. -const ( - // MethodCancelRequest method name of "$/cancelRequest". - MethodCancelRequest = "$/cancelRequest" - - // MethodInitialize method name of "initialize". - MethodInitialize = "initialize" - - // MethodInitialized method name of "initialized". - MethodInitialized = "initialized" - - // MethodShutdown method name of "shutdown". - MethodShutdown = "shutdown" - - // MethodExit method name of "exit". - MethodExit = "exit" - - // MethodWorkDoneProgressCancel method name of "window/workDoneProgress/cancel". - MethodWorkDoneProgressCancel = "window/workDoneProgress/cancel" - - // MethodLogTrace method name of "$/logTrace". - MethodLogTrace = "$/logTrace" - - // MethodSetTrace method name of "$/setTrace". - MethodSetTrace = "$/setTrace" - - // MethodTextDocumentCodeAction method name of "textDocument/codeAction". - MethodTextDocumentCodeAction = "textDocument/codeAction" - - // MethodTextDocumentCodeLens method name of "textDocument/codeLens". - MethodTextDocumentCodeLens = "textDocument/codeLens" - - // MethodCodeLensResolve method name of "codeLens/resolve". - MethodCodeLensResolve = "codeLens/resolve" - - // MethodTextDocumentColorPresentation method name of "textDocument/colorPresentation". - MethodTextDocumentColorPresentation = "textDocument/colorPresentation" - - // MethodTextDocumentCompletion method name of "textDocument/completion". - MethodTextDocumentCompletion = "textDocument/completion" - - // MethodCompletionItemResolve method name of "completionItem/resolve". - MethodCompletionItemResolve = "completionItem/resolve" - - // MethodTextDocumentDeclaration method name of "textDocument/declaration". - MethodTextDocumentDeclaration = "textDocument/declaration" - - // MethodTextDocumentDefinition method name of "textDocument/definition". - MethodTextDocumentDefinition = "textDocument/definition" - - // MethodTextDocumentDidChange method name of "textDocument/didChange". - MethodTextDocumentDidChange = "textDocument/didChange" - - // MethodWorkspaceDidChangeConfiguration method name of "workspace/didChangeConfiguration". - MethodWorkspaceDidChangeConfiguration = "workspace/didChangeConfiguration" - - // MethodWorkspaceDidChangeWatchedFiles method name of "workspace/didChangeWatchedFiles". - MethodWorkspaceDidChangeWatchedFiles = "workspace/didChangeWatchedFiles" - - // MethodWorkspaceDidChangeWorkspaceFolders method name of "workspace/didChangeWorkspaceFolders". - MethodWorkspaceDidChangeWorkspaceFolders = "workspace/didChangeWorkspaceFolders" - - // MethodTextDocumentDidClose method name of "textDocument/didClose". - MethodTextDocumentDidClose = "textDocument/didClose" - - // MethodTextDocumentDidOpen method name of "textDocument/didOpen". - MethodTextDocumentDidOpen = "textDocument/didOpen" - - // MethodTextDocumentDidSave method name of "textDocument/didSave". - MethodTextDocumentDidSave = "textDocument/didSave" - - // MethodTextDocumentDocumentColor method name of"textDocument/documentColor". - MethodTextDocumentDocumentColor = "textDocument/documentColor" - - // MethodTextDocumentDocumentHighlight method name of "textDocument/documentHighlight". - MethodTextDocumentDocumentHighlight = "textDocument/documentHighlight" - - // MethodTextDocumentDocumentLink method name of "textDocument/documentLink". - MethodTextDocumentDocumentLink = "textDocument/documentLink" - - // MethodDocumentLinkResolve method name of "documentLink/resolve". - MethodDocumentLinkResolve = "documentLink/resolve" - - // MethodTextDocumentDocumentSymbol method name of "textDocument/documentSymbol". - MethodTextDocumentDocumentSymbol = "textDocument/documentSymbol" - - // MethodWorkspaceExecuteCommand method name of "workspace/executeCommand". - MethodWorkspaceExecuteCommand = "workspace/executeCommand" - - // MethodTextDocumentFoldingRange method name of "textDocument/foldingRange". - MethodTextDocumentFoldingRange = "textDocument/foldingRange" - - // MethodTextDocumentFormatting method name of "textDocument/formatting". - MethodTextDocumentFormatting = "textDocument/formatting" - - // MethodTextDocumentHover method name of "textDocument/hover". - MethodTextDocumentHover = "textDocument/hover" - - // MethodTextDocumentImplementation method name of "textDocument/implementation". - MethodTextDocumentImplementation = "textDocument/implementation" - - // MethodTextDocumentOnTypeFormatting method name of "textDocument/onTypeFormatting". - MethodTextDocumentOnTypeFormatting = "textDocument/onTypeFormatting" - - // MethodTextDocumentPrepareRename method name of "textDocument/prepareRename". - MethodTextDocumentPrepareRename = "textDocument/prepareRename" - - // MethodTextDocumentRangeFormatting method name of "textDocument/rangeFormatting". - MethodTextDocumentRangeFormatting = "textDocument/rangeFormatting" - - // MethodTextDocumentReferences method name of "textDocument/references". - MethodTextDocumentReferences = "textDocument/references" - - // MethodTextDocumentRename method name of "textDocument/rename". - MethodTextDocumentRename = "textDocument/rename" - - // MethodTextDocumentSignatureHelp method name of "textDocument/signatureHelp". - MethodTextDocumentSignatureHelp = "textDocument/signatureHelp" - - // MethodWorkspaceSymbol method name of "workspace/symbol". - MethodWorkspaceSymbol = "workspace/symbol" - - // MethodTextDocumentTypeDefinition method name of "textDocument/typeDefinition". - MethodTextDocumentTypeDefinition = "textDocument/typeDefinition" - - // MethodTextDocumentWillSave method name of "textDocument/willSave". - MethodTextDocumentWillSave = "textDocument/willSave" - - // MethodTextDocumentWillSaveWaitUntil method name of "textDocument/willSaveWaitUntil". - MethodTextDocumentWillSaveWaitUntil = "textDocument/willSaveWaitUntil" - - // MethodShowDocument method name of "window/showDocument". - MethodShowDocument = "window/showDocument" - - // MethodWillCreateFiles method name of "workspace/willCreateFiles". - MethodWillCreateFiles = "workspace/willCreateFiles" - - // MethodDidCreateFiles method name of "workspace/didCreateFiles". - MethodDidCreateFiles = "workspace/didCreateFiles" - - // MethodWillRenameFiles method name of "workspace/willRenameFiles". - MethodWillRenameFiles = "workspace/willRenameFiles" - - // MethodDidRenameFiles method name of "workspace/didRenameFiles". - MethodDidRenameFiles = "workspace/didRenameFiles" - - // MethodWillDeleteFiles method name of "workspace/willDeleteFiles". - MethodWillDeleteFiles = "workspace/willDeleteFiles" - - // MethodDidDeleteFiles method name of "workspace/didDeleteFiles". - MethodDidDeleteFiles = "workspace/didDeleteFiles" - - // MethodCodeLensRefresh method name of "workspace/codeLens/refresh". - MethodCodeLensRefresh = "workspace/codeLens/refresh" - - // MethodTextDocumentPrepareCallHierarchy method name of "textDocument/prepareCallHierarchy". - MethodTextDocumentPrepareCallHierarchy = "textDocument/prepareCallHierarchy" - - // MethodCallHierarchyIncomingCalls method name of "callHierarchy/incomingCalls". - MethodCallHierarchyIncomingCalls = "callHierarchy/incomingCalls" - - // MethodCallHierarchyOutgoingCalls method name of "callHierarchy/outgoingCalls". - MethodCallHierarchyOutgoingCalls = "callHierarchy/outgoingCalls" - - // MethodSemanticTokensFull method name of "textDocument/semanticTokens/full". - MethodSemanticTokensFull = "textDocument/semanticTokens/full" - - // MethodSemanticTokensFullDelta method name of "textDocument/semanticTokens/full/delta". - MethodSemanticTokensFullDelta = "textDocument/semanticTokens/full/delta" - - // MethodSemanticTokensRange method name of "textDocument/semanticTokens/range". - MethodSemanticTokensRange = "textDocument/semanticTokens/range" - - // MethodSemanticTokensRefresh method name of "workspace/semanticTokens/refresh". - MethodSemanticTokensRefresh = "workspace/semanticTokens/refresh" - - // MethodLinkedEditingRange method name of "textDocument/linkedEditingRange". - MethodLinkedEditingRange = "textDocument/linkedEditingRange" - - // MethodMoniker method name of "textDocument/moniker". - MethodMoniker = "textDocument/moniker" -) - -// server implements a Language Server Protocol server. -type server struct { - jsonrpc2.Conn - - logger *slog.Logger -} - -var _ Server = (*server)(nil) - -// Initialize sents the request as the first request from the client to the server. -// -// If the server receives a request or notification before the initialize request it should act as follows: -// -// - For a request the response should be an error with code: -32002. The message can be picked by the server. -// - Notifications should be dropped, except for the exit notification. This will allow the exit of a server without an initialize request. -// -// Until the server has responded to the initialize request with an InitializeResult, the client -// must not send any additional requests or notifications to the server. -// In addition the server is not allowed to send any requests or notifications to the client until -// it has responded with an InitializeResult, with the exception that during the initialize request -// the server is allowed to send the notifications window/showMessage, window/logMessage and telemetry/event -// as well as the window/showMessageRequest request to the client. -func (s *server) Initialize(ctx context.Context, params *InitializeParams) (_ *InitializeResult, err error) { - s.logger.Debug("call " + MethodInitialize) - defer s.logger.Debug("end "+MethodInitialize, slog.Any("error", err)) - - var result *InitializeResult - if err := Call(ctx, s.Conn, MethodInitialize, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Initialized sends the notification from the client to the server after the client received the result of the -// initialize request but before the client is sending any other request or notification to the server. -// -// The server can use the initialized notification for example to dynamically register capabilities. -// The initialized notification may only be sent once. -func (s *server) Initialized(ctx context.Context, params *InitializedParams) (err error) { - s.logger.Debug("notify " + MethodInitialized) - defer s.logger.Debug("end "+MethodInitialized, slog.Any("error", err)) - - return s.Notify(ctx, MethodInitialized, params) -} - -// Shutdown sents the request from the client to the server. -// -// It asks the server to shut down, but to not exit (otherwise the response might not be delivered correctly to the client). -// There is a separate exit notification that asks the server to exit. -// -// Clients must not sent any notifications other than `exit` or requests to a server to which they have sent a shutdown requests. -// If a server receives requests after a shutdown request those requests should be errored with `InvalidRequest`. -func (s *server) Shutdown(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodShutdown) - defer s.logger.Debug("end "+MethodShutdown, slog.Any("error", err)) - - return Call(ctx, s.Conn, MethodShutdown, nil, nil) -} - -// Exit a notification to ask the server to exit its process. -// -// The server should exit with success code 0 if the shutdown request has been received before; otherwise with error code 1. -func (s *server) Exit(ctx context.Context) (err error) { - s.logger.Debug("notify " + MethodExit) - defer s.logger.Debug("end "+MethodExit, slog.Any("error", err)) - - return s.Notify(ctx, MethodExit, nil) -} - -// LogTrace a notification to log the trace of the server’s execution. -// -// The amount and content of these notifications depends on the current trace configuration. -// -// If trace is "off", the server should not send any logTrace notification. If trace is "message", -// the server should not add the "verbose" field in the LogTraceParams. -// -// @since 3.16.0. -func (s *server) LogTrace(ctx context.Context, params *LogTraceParams) (err error) { - s.logger.Debug("notify " + MethodLogTrace) - defer s.logger.Debug("end "+MethodLogTrace, slog.Any("error", err)) - - return s.Notify(ctx, MethodLogTrace, params) -} - -// SetTrace a notification that should be used by the client to modify the trace setting of the server. -// -// @since 3.16.0. -func (s *server) SetTrace(ctx context.Context, params *SetTraceParams) (err error) { - s.logger.Debug("notify " + MethodSetTrace) - defer s.logger.Debug("end "+MethodSetTrace, slog.Any("error", err)) - - return s.Notify(ctx, MethodSetTrace, params) -} - -// WorkDoneProgressCancel is the sends notification from the client to the server to cancel a progress initiated on the -// server side using the "window/workDoneProgress/create". -func (s *server) WorkDoneProgressCancel(ctx context.Context, params *WorkDoneProgressCancelParams) (err error) { - s.logger.Debug("call " + MethodWorkDoneProgressCancel) - defer s.logger.Debug("end "+MethodWorkDoneProgressCancel, slog.Any("error", err)) - - return s.Notify(ctx, MethodWorkDoneProgressCancel, params) -} - -// CodeAction sends the request is from the client to the server to compute commands for a given text document and range. -// -// These commands are typically code fixes to either fix problems or to beautify/refactor code. The result of a `textDocument/codeAction` -// request is an array of `Command` literals which are typically presented in the user interface. -// -// To ensure that a server is useful in many clients the commands specified in a code actions should be handled by the -// server and not by the client (see `workspace/executeCommand` and `ServerCapabilities.executeCommandProvider`). -// If the client supports providing edits with a code action then the mode should be used. -func (s *server) CodeAction(ctx context.Context, params *CodeActionParams) (result []CodeAction, err error) { - s.logger.Debug("call " + MethodTextDocumentCodeAction) - defer s.logger.Debug("end "+MethodTextDocumentCodeAction, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentCodeAction, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CodeLens sends the request from the client to the server to compute code lenses for a given text document. -func (s *server) CodeLens(ctx context.Context, params *CodeLensParams) (result []CodeLens, err error) { - s.logger.Debug("call " + MethodTextDocumentCodeLens) - defer s.logger.Debug("end "+MethodTextDocumentCodeLens, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentCodeLens, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CodeLensResolve sends the request from the client to the server to resolve the command for a given code lens item. -func (s *server) CodeLensResolve(ctx context.Context, params *CodeLens) (_ *CodeLens, err error) { - s.logger.Debug("call " + MethodCodeLensResolve) - defer s.logger.Debug("end "+MethodCodeLensResolve, slog.Any("error", err)) - - var result *CodeLens - if err := Call(ctx, s.Conn, MethodCodeLensResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ColorPresentation sends the request from the client to the server to obtain a list of presentations for a color value at a given location. -// -// # Clients can use the result to -// -// - modify a color reference. -// - show in a color picker and let users pick one of the presentations. -func (s *server) ColorPresentation(ctx context.Context, params *ColorPresentationParams) (result []ColorPresentation, err error) { - s.logger.Debug("call " + MethodTextDocumentColorPresentation) - defer s.logger.Debug("end "+MethodTextDocumentColorPresentation, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentColorPresentation, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Completion sends the request from the client to the server to compute completion items at a given cursor position. -// -// Completion items are presented in the IntelliSense user interface. -// If computing full completion items is expensive, servers can additionally provide a handler for the completion item resolve request (‘completionItem/resolve’). -// -// This request is sent when a completion item is selected in the user interface. -// A typical use case is for example: the ‘textDocument/completion’ request doesn’t fill in the documentation property -// for returned completion items since it is expensive to compute. When the item is selected in the user interface then -// a ‘completionItem/resolve’ request is sent with the selected completion item as a parameter. -// -// The returned completion item should have the documentation property filled in. The request can delay the computation of -// the `detail` and `documentation` properties. However, properties that are needed for the initial sorting and filtering, -// like `sortText`, `filterText`, `insertText`, and `textEdit` must be provided in the `textDocument/completion` response and must not be changed during resolve. -func (s *server) Completion(ctx context.Context, params *CompletionParams) (_ *CompletionList, err error) { - s.logger.Debug("call " + MethodTextDocumentCompletion) - defer s.logger.Debug("end "+MethodTextDocumentCompletion, slog.Any("error", err)) - - var result *CompletionList - if err := Call(ctx, s.Conn, MethodTextDocumentCompletion, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// CompletionResolve sends the request from the client to the server to resolve additional information for a given completion item. -func (s *server) CompletionResolve(ctx context.Context, params *CompletionItem) (_ *CompletionItem, err error) { - s.logger.Debug("call " + MethodCompletionItemResolve) - defer s.logger.Debug("end "+MethodCompletionItemResolve, slog.Any("error", err)) - - var result *CompletionItem - if err := Call(ctx, s.Conn, MethodCompletionItemResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Declaration sends the request from the client to the server to resolve the declaration location of a symbol at a given text document position. -// -// The result type LocationLink[] got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.declaration.linkSupport`. -// -// @since 3.14.0. -func (s *server) Declaration(ctx context.Context, params *DeclarationParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentDeclaration) - defer s.logger.Debug("end "+MethodTextDocumentDeclaration, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDeclaration, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Definition sends the request from the client to the server to resolve the definition location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.definition.linkSupport`. -// -// @since 3.14.0. -func (s *server) Definition(ctx context.Context, params *DefinitionParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentDefinition) - defer s.logger.Debug("end "+MethodTextDocumentDefinition, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDefinition, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidChange sends the notification from the client to the server to signal changes to a text document. -// -// In 2.0 the shape of the params has changed to include proper version numbers and language ids. -func (s *server) DidChange(ctx context.Context, params *DidChangeTextDocumentParams) (err error) { - s.logger.Debug("notify " + MethodTextDocumentDidChange) - defer s.logger.Debug("end "+MethodTextDocumentDidChange, slog.Any("error", err)) - - return s.Notify(ctx, MethodTextDocumentDidChange, params) -} - -// DidChangeConfiguration sends the notification from the client to the server to signal the change of configuration settings. -func (s *server) DidChangeConfiguration(ctx context.Context, params *DidChangeConfigurationParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeConfiguration) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeConfiguration, slog.Any("error", err)) - - return s.Notify(ctx, MethodWorkspaceDidChangeConfiguration, params) -} - -// DidChangeWatchedFiles sends the notification from the client to the server when the client detects changes to files watched by the language client. -// -// It is recommended that servers register for these file events using the registration mechanism. -// In former implementations clients pushed file events without the server actively asking for it. -func (s *server) DidChangeWatchedFiles(ctx context.Context, params *DidChangeWatchedFilesParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeWatchedFiles) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeWatchedFiles, slog.Any("error", err)) - - return s.Notify(ctx, MethodWorkspaceDidChangeWatchedFiles, params) -} - -// DidChangeWorkspaceFolders sents the notification from the client to the server to inform the server about workspace folder configuration changes. -// -// The notification is sent by default if both ServerCapabilities/workspace/workspaceFolders and ClientCapabilities/workspace/workspaceFolders are true; -// or if the server has registered itself to receive this notification. -// To register for the workspace/didChangeWorkspaceFolders send a client/registerCapability request from the server to the client. -// -// The registration parameter must have a registrations item of the following form, where id is a unique id used to unregister the capability (the example uses a UUID). -func (s *server) DidChangeWorkspaceFolders(ctx context.Context, params *DidChangeWorkspaceFoldersParams) (err error) { - s.logger.Debug("call " + MethodWorkspaceDidChangeWorkspaceFolders) - defer s.logger.Debug("end "+MethodWorkspaceDidChangeWorkspaceFolders, slog.Any("error", err)) - - return s.Notify(ctx, MethodWorkspaceDidChangeWorkspaceFolders, params) -} - -// DidClose sends the notification from the client to the server when the document got closed in the client. -// -// The document’s truth now exists where the document’s Uri points to (e.g. if the document’s Uri is a file Uri the truth now exists on disk). -// As with the open notification the close notification is about managing the document’s content. -// Receiving a close notification doesn’t mean that the document was open in an editor before. -// -// A close notification requires a previous open notification to be sent. -// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. -func (s *server) DidClose(ctx context.Context, params *DidCloseTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidClose) - defer s.logger.Debug("end "+MethodTextDocumentDidClose, slog.Any("error", err)) - - return s.Notify(ctx, MethodTextDocumentDidClose, params) -} - -// DidOpen sends the open notification from the client to the server to signal newly opened text documents. -// -// The document’s truth is now managed by the client and the server must not try to read the document’s truth using the document’s Uri. -// Open in this sense means it is managed by the client. It doesn’t necessarily mean that its content is presented in an editor. -// -// An open notification must not be sent more than once without a corresponding close notification send before. -// This means open and close notification must be balanced and the max open count for a particular textDocument is one. -// Note that a server’s ability to fulfill requests is independent of whether a text document is open or closed. -func (s *server) DidOpen(ctx context.Context, params *DidOpenTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidOpen) - defer s.logger.Debug("end "+MethodTextDocumentDidOpen, slog.Any("error", err)) - - return s.Notify(ctx, MethodTextDocumentDidOpen, params) -} - -// DidSave sends the notification from the client to the server when the document was saved in the client. -func (s *server) DidSave(ctx context.Context, params *DidSaveTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentDidSave) - defer s.logger.Debug("end "+MethodTextDocumentDidSave, slog.Any("error", err)) - - return s.Notify(ctx, MethodTextDocumentDidSave, params) -} - -// DocumentColor sends the request from the client to the server to list all color references found in a given text document. -// -// Along with the range, a color value in RGB is returned. -// -// Clients can use the result to decorate color references in an editor. -// For example: -// -// - Color boxes showing the actual color next to the reference -// - Show a color picker when a color reference is edited. -func (s *server) DocumentColor(ctx context.Context, params *DocumentColorParams) (result []ColorInformation, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentColor) - defer s.logger.Debug("end "+MethodTextDocumentDocumentColor, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentColor, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentHighlight sends the request is from the client to the server to resolve a document highlights for a given text document position. -// -// For programming languages this usually highlights all references to the symbol scoped to this file. -// However we kept ‘textDocument/documentHighlight’ and ‘textDocument/references’ separate requests since the first one is allowed to be more fuzzy. -// -// Symbol matches usually have a `DocumentHighlightKind` of `Read` or `Write` whereas fuzzy or textual matches use `Text` as the kind. -func (s *server) DocumentHighlight(ctx context.Context, params *DocumentHighlightParams) (result []DocumentHighlight, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentHighlight) - defer s.logger.Debug("end "+MethodTextDocumentDocumentHighlight, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentHighlight, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentLink sends the request from the client to the server to request the location of links in a document. -func (s *server) DocumentLink(ctx context.Context, params *DocumentLinkParams) (result []DocumentLink, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentLink) - defer s.logger.Debug("end "+MethodTextDocumentDocumentLink, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentLink, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentLinkResolve sends the request from the client to the server to resolve the target of a given document link. -func (s *server) DocumentLinkResolve(ctx context.Context, params *DocumentLink) (_ *DocumentLink, err error) { - s.logger.Debug("call " + MethodDocumentLinkResolve) - defer s.logger.Debug("end "+MethodDocumentLinkResolve, slog.Any("error", err)) - - var result *DocumentLink - if err := Call(ctx, s.Conn, MethodDocumentLinkResolve, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DocumentSymbol sends the request from the client to the server to return a flat list of all symbols found in a given text document. -// -// Neither the symbol’s location range nor the symbol’s container name should be used to infer a hierarchy. -func (s *server) DocumentSymbol(ctx context.Context, params *DocumentSymbolParams) (result []SymbolInformationOrDocumentSymbol, err error) { - s.logger.Debug("call " + MethodTextDocumentDocumentSymbol) - defer s.logger.Debug("end "+MethodTextDocumentDocumentSymbol, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentDocumentSymbol, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ExecuteCommand sends the request from the client to the server to trigger command execution on the server. -// -// In most cases the server creates a `WorkspaceEdit` structure and applies the changes to the workspace using the -// request `workspace/applyEdit` which is sent from the server to the client. -func (s *server) ExecuteCommand(ctx context.Context, params *ExecuteCommandParams) (result any, err error) { - s.logger.Debug("call " + MethodWorkspaceExecuteCommand) - defer s.logger.Debug("end "+MethodWorkspaceExecuteCommand, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodWorkspaceExecuteCommand, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// FoldingRanges sends the request from the client to the server to return all folding ranges found in a given text document. -// -// @since version 3.10.0. -func (s *server) FoldingRanges(ctx context.Context, params *FoldingRangeParams) (result []FoldingRange, err error) { - s.logger.Debug("call " + MethodTextDocumentFoldingRange) - defer s.logger.Debug("end "+MethodTextDocumentFoldingRange, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentFoldingRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Formatting sends the request from the client to the server to format a whole document. -func (s *server) Formatting(ctx context.Context, params *DocumentFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentFormatting) - defer s.logger.Debug("end "+MethodTextDocumentFormatting, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Hover sends the request is from the client to the server to request hover information at a given text document position. -func (s *server) Hover(ctx context.Context, params *HoverParams) (_ *Hover, err error) { - s.logger.Debug("call " + MethodTextDocumentHover) - defer s.logger.Debug("end "+MethodTextDocumentHover, slog.Any("error", err)) - - var result *Hover - if err := Call(ctx, s.Conn, MethodTextDocumentHover, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Implementation sends the request from the client to the server to resolve the implementation location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.implementation.typeDefinition.linkSupport`. -func (s *server) Implementation(ctx context.Context, params *ImplementationParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentImplementation) - defer s.logger.Debug("end "+MethodTextDocumentImplementation, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentImplementation, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// OnTypeFormatting sends the request from the client to the server to format parts of the document during typing. -func (s *server) OnTypeFormatting(ctx context.Context, params *DocumentOnTypeFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentOnTypeFormatting) - defer s.logger.Debug("end "+MethodTextDocumentOnTypeFormatting, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentOnTypeFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// PrepareRename sends the request from the client to the server to setup and test the validity of a rename operation at a given location. -// -// @since version 3.12.0. -func (s *server) PrepareRename(ctx context.Context, params *PrepareRenameParams) (result *Range, err error) { - s.logger.Debug("call " + MethodTextDocumentPrepareRename) - defer s.logger.Debug("end "+MethodTextDocumentPrepareRename, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentPrepareRename, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// RangeFormatting sends the request from the client to the server to format a given range in a document. -func (s *server) RangeFormatting(ctx context.Context, params *DocumentRangeFormattingParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentRangeFormatting) - defer s.logger.Debug("end "+MethodTextDocumentRangeFormatting, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentRangeFormatting, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// References sends the request from the client to the server to resolve project-wide references for the symbol denoted by the given text document position. -func (s *server) References(ctx context.Context, params *ReferenceParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentReferences) - defer s.logger.Debug("end "+MethodTextDocumentReferences, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentReferences, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Rename sends the request from the client to the server to perform a workspace-wide rename of a symbol. -func (s *server) Rename(ctx context.Context, params *RenameParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentRename) - defer s.logger.Debug("end "+MethodTextDocumentRename, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentRename, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SignatureHelp sends the request from the client to the server to request signature information at a given cursor position. -func (s *server) SignatureHelp(ctx context.Context, params *SignatureHelpParams) (_ *SignatureHelp, err error) { - s.logger.Debug("call " + MethodTextDocumentSignatureHelp) - defer s.logger.Debug("end "+MethodTextDocumentSignatureHelp, slog.Any("error", err)) - - var result *SignatureHelp - if err := Call(ctx, s.Conn, MethodTextDocumentSignatureHelp, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Symbols sends the request from the client to the server to list project-wide symbols matching the query string. -func (s *server) Symbols(ctx context.Context, params *WorkspaceSymbolParams) (result []SymbolInformation, err error) { - s.logger.Debug("call " + MethodWorkspaceSymbol) - defer s.logger.Debug("end "+MethodWorkspaceSymbol, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodWorkspaceSymbol, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// TypeDefinition sends the request from the client to the server to resolve the type definition location of a symbol at a given text document position. -// -// The result type `[]LocationLink` got introduce with version 3.14.0 and depends in the corresponding client capability `clientCapabilities.textDocument.typeDefinition.linkSupport`. -// -// @since version 3.6.0. -func (s *server) TypeDefinition(ctx context.Context, params *TypeDefinitionParams) (result []Location, err error) { - s.logger.Debug("call " + MethodTextDocumentTypeDefinition) - defer s.logger.Debug("end "+MethodTextDocumentTypeDefinition, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentTypeDefinition, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WillSave sends the notification from the client to the server before the document is actually saved. -func (s *server) WillSave(ctx context.Context, params *WillSaveTextDocumentParams) (err error) { - s.logger.Debug("call " + MethodTextDocumentWillSave) - defer s.logger.Debug("end "+MethodTextDocumentWillSave, slog.Any("error", err)) - - return s.Notify(ctx, MethodTextDocumentWillSave, params) -} - -// WillSaveWaitUntil sends the request from the client to the server before the document is actually saved. -// -// The request can return an array of TextEdits which will be applied to the text document before it is saved. -// Please note that clients might drop results if computing the text edits took too long or if a server constantly fails on this request. -// This is done to keep the save fast and reliable. -func (s *server) WillSaveWaitUntil(ctx context.Context, params *WillSaveTextDocumentParams) (result []TextEdit, err error) { - s.logger.Debug("call " + MethodTextDocumentWillSaveWaitUntil) - defer s.logger.Debug("end "+MethodTextDocumentWillSaveWaitUntil, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentWillSaveWaitUntil, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// ShowDocument sends the request from a server to a client to ask the client to display a particular document in the user interface. -// -// @since 3.16.0. -func (s *server) ShowDocument(ctx context.Context, params *ShowDocumentParams) (result *ShowDocumentResult, err error) { - s.logger.Debug("call " + MethodShowDocument) - defer s.logger.Debug("end "+MethodShowDocument, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodShowDocument, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// WillCreateFiles sends the will create files request is sent from the client to the server before files are actually created as long as the creation is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are created. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep creates fast and reliable. -// -// @since 3.16.0. -func (s *server) WillCreateFiles(ctx context.Context, params *CreateFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillCreateFiles) - defer s.logger.Debug("end "+MethodWillCreateFiles, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodWillCreateFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidCreateFiles sends the did create files notification is sent from the client to the server when files were created from within the client. -// -// @since 3.16.0. -func (s *server) DidCreateFiles(ctx context.Context, params *CreateFilesParams) (err error) { - s.logger.Debug("call " + MethodDidCreateFiles) - defer s.logger.Debug("end "+MethodDidCreateFiles, slog.Any("error", err)) - - return s.Notify(ctx, MethodDidCreateFiles, params) -} - -// WillRenameFiles sends the will rename files request is sent from the client to the server before files are actually renamed as long as the rename is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are renamed. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep renames fast and reliable. -// -// @since 3.16.0. -func (s *server) WillRenameFiles(ctx context.Context, params *RenameFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillRenameFiles) - defer s.logger.Debug("end "+MethodWillRenameFiles, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodWillRenameFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidRenameFiles sends the did rename files notification is sent from the client to the server when files were renamed from within the client. -// -// @since 3.16.0. -func (s *server) DidRenameFiles(ctx context.Context, params *RenameFilesParams) (err error) { - s.logger.Debug("call " + MethodDidRenameFiles) - defer s.logger.Debug("end "+MethodDidRenameFiles, slog.Any("error", err)) - - return s.Notify(ctx, MethodDidRenameFiles, params) -} - -// WillDeleteFiles sends the will delete files request is sent from the client to the server before files are actually deleted as long as the deletion is triggered from within the client. -// -// The request can return a WorkspaceEdit which will be applied to workspace before the files are deleted. -// -// Please note that clients might drop results if computing the edit took too long or if a server constantly fails on this request. This is done to keep deletes fast and reliable. -// -// @since 3.16.0. -func (s *server) WillDeleteFiles(ctx context.Context, params *DeleteFilesParams) (result *WorkspaceEdit, err error) { - s.logger.Debug("call " + MethodWillDeleteFiles) - defer s.logger.Debug("end "+MethodWillDeleteFiles, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodWillDeleteFiles, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// DidDeleteFiles sends the did delete files notification is sent from the client to the server when files were deleted from within the client. -// -// @since 3.16.0. -func (s *server) DidDeleteFiles(ctx context.Context, params *DeleteFilesParams) (err error) { - s.logger.Debug("call " + MethodDidDeleteFiles) - defer s.logger.Debug("end "+MethodDidDeleteFiles, slog.Any("error", err)) - - return s.Notify(ctx, MethodDidDeleteFiles, params) -} - -// CodeLensRefresh sent from the server to the client. -// -// Servers can use it to ask clients to refresh the code lenses currently shown in editors. -// As a result the client should ask the server to recompute the code lenses for these editors. -// This is useful if a server detects a configuration change which requires a re-calculation of all code lenses. -// -// Note that the client still has the freedom to delay the re-calculation of the code lenses if for example an editor is currently not visible. -// -// @since 3.16.0. -func (s *server) CodeLensRefresh(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodCodeLensRefresh) - defer s.logger.Debug("end "+MethodCodeLensRefresh, slog.Any("error", err)) - - return Call(ctx, s.Conn, MethodCodeLensRefresh, nil, nil) -} - -// PrepareCallHierarchy sent from the client to the server to return a call hierarchy for the language element of given text document positions. -// -// The call hierarchy requests are executed in two steps: -// 1. first a call hierarchy item is resolved for the given text document position -// 2. for a call hierarchy item the incoming or outgoing call hierarchy items are resolved. -// -// @since 3.16.0. -func (s *server) PrepareCallHierarchy(ctx context.Context, params *CallHierarchyPrepareParams) (result []CallHierarchyItem, err error) { - s.logger.Debug("call " + MethodTextDocumentPrepareCallHierarchy) - defer s.logger.Debug("end "+MethodTextDocumentPrepareCallHierarchy, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodTextDocumentPrepareCallHierarchy, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// IncomingCalls is the request is sent from the client to the server to resolve incoming calls for a given call hierarchy item. -// -// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -func (s *server) IncomingCalls(ctx context.Context, params *CallHierarchyIncomingCallsParams) (result []CallHierarchyIncomingCall, err error) { - s.logger.Debug("call " + MethodCallHierarchyIncomingCalls) - defer s.logger.Debug("end "+MethodCallHierarchyIncomingCalls, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodCallHierarchyIncomingCalls, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// OutgoingCalls is the request is sent from the client to the server to resolve outgoing calls for a given call hierarchy item. -// -// The request doesn’t define its own client and server capabilities. It is only issued if a server registers for the "textDocument/prepareCallHierarchy" request. -// -// @since 3.16.0. -func (s *server) OutgoingCalls(ctx context.Context, params *CallHierarchyOutgoingCallsParams) (result []CallHierarchyOutgoingCall, err error) { - s.logger.Debug("call " + MethodCallHierarchyOutgoingCalls) - defer s.logger.Debug("end "+MethodCallHierarchyOutgoingCalls, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodCallHierarchyOutgoingCalls, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensFull is the request is sent from the client to the server to resolve semantic tokens for a given file. -// -// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. -// -// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. -// -// @since 3.16.0. -func (s *server) SemanticTokensFull(ctx context.Context, params *SemanticTokensParams) (result *SemanticTokens, err error) { - s.logger.Debug("call " + MethodSemanticTokensFull) - defer s.logger.Debug("end "+MethodSemanticTokensFull, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensFull, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensFullDelta is the request is sent from the client to the server to resolve semantic token delta for a given file. -// -// Semantic tokens are used to add additional color information to a file that depends on language specific symbol information. -// -// A semantic token request usually produces a large result. The protocol therefore supports encoding tokens with numbers. -// -// @since 3.16.0. -func (s *server) SemanticTokensFullDelta(ctx context.Context, params *SemanticTokensDeltaParams) (result any, err error) { - s.logger.Debug("call " + MethodSemanticTokensFullDelta) - defer s.logger.Debug("end "+MethodSemanticTokensFullDelta, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensFullDelta, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensRange is the request is sent from the client to the server to resolve semantic token delta for a given file. -// -// When a user opens a file it can be beneficial to only compute the semantic tokens for the visible range (faster rendering of the tokens in the user interface). -// If a server can compute these tokens faster than for the whole file it can provide a handler for the "textDocument/semanticTokens/range" request to handle this case special. -// -// Please note that if a client also announces that it will send the "textDocument/semanticTokens/range" server should implement this request as well to allow for flicker free scrolling and semantic coloring of a minimap. -// -// @since 3.16.0. -func (s *server) SemanticTokensRange(ctx context.Context, params *SemanticTokensRangeParams) (result *SemanticTokens, err error) { - s.logger.Debug("call " + MethodSemanticTokensRange) - defer s.logger.Debug("end "+MethodSemanticTokensRange, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodSemanticTokensRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// SemanticTokensRefresh is sent from the server to the client. Servers can use it to ask clients to refresh the editors for which this server provides semantic tokens. -// -// As a result the client should ask the server to recompute the semantic tokens for these editors. -// This is useful if a server detects a project wide configuration change which requires a re-calculation of all semantic tokens. -// -// Note that the client still has the freedom to delay the re-calculation of the semantic tokens if for example an editor is currently not visible. -// -// @since 3.16.0. -func (s *server) SemanticTokensRefresh(ctx context.Context) (err error) { - s.logger.Debug("call " + MethodSemanticTokensRefresh) - defer s.logger.Debug("end "+MethodSemanticTokensRefresh, slog.Any("error", err)) - - return Call(ctx, s.Conn, MethodSemanticTokensRefresh, nil, nil) -} - -// LinkedEditingRange is the linked editing request is sent from the client to the server to return for a given position in a document the range of the symbol at the position and all ranges that have the same content. -// -// Optionally a word pattern can be returned to describe valid contents. -// -// A rename to one of the ranges can be applied to all other ranges if the new content is valid. If no result-specific word pattern is provided, the word pattern from the client’s language configuration is used. -// -// @since 3.16.0. -func (s *server) LinkedEditingRange(ctx context.Context, params *LinkedEditingRangeParams) (result *LinkedEditingRanges, err error) { - s.logger.Debug("call " + MethodLinkedEditingRange) - defer s.logger.Debug("end "+MethodLinkedEditingRange, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodLinkedEditingRange, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Moniker is the request is sent from the client to the server to get the symbol monikers for a given text document position. -// -// An array of Moniker types is returned as response to indicate possible monikers at the given location. -// -// If no monikers can be calculated, an empty array or null should be returned. -// -// @since 3.16.0. -func (s *server) Moniker(ctx context.Context, params *MonikerParams) (result []Moniker, err error) { - s.logger.Debug("call " + MethodMoniker) - defer s.logger.Debug("end "+MethodMoniker, slog.Any("error", err)) - - if err := Call(ctx, s.Conn, MethodMoniker, params, &result); err != nil { - return nil, err - } - - return result, nil -} - -// Request sends a request from the client to the server that non-compliant with the Language Server Protocol specifications. -func (s *server) Request(ctx context.Context, method string, params any) (any, error) { - s.logger.Debug("call " + method) - defer s.logger.Debug("end " + method) - - var result any - if err := Call(ctx, s.Conn, method, params, &result); err != nil { - return nil, err - } - - return result, nil -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/text.go b/vendor/github.com/a-h/templ/lsp/protocol/text.go deleted file mode 100644 index a67d5c2..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/text.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" -) - -// DidOpenTextDocumentParams params of DidOpenTextDocument notification. -type DidOpenTextDocumentParams struct { - // TextDocument is the document that was opened. - TextDocument TextDocumentItem `json:"textDocument"` -} - -// DidChangeTextDocumentParams params of DidChangeTextDocument notification. -type DidChangeTextDocumentParams struct { - // TextDocument is the document that did change. The version number points - // to the version after all provided content changes have - // been applied. - TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` - - // ContentChanges is the actual content changes. The content changes describe single state changes - // to the document. So if there are two content changes c1 and c2 for a document - // in state S then c1 move the document to S' and c2 to S''. - ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"` // []TextDocumentContentChangeEvent | text -} - -// TextDocumentSaveReason represents reasons why a text document is saved. -type TextDocumentSaveReason float64 - -const ( - // TextDocumentSaveReasonManual is the manually triggered, e.g. by the user pressing save, by starting debugging, - // or by an API call. - TextDocumentSaveReasonManual TextDocumentSaveReason = 1 - - // TextDocumentSaveReasonAfterDelay is the automatic after a delay. - TextDocumentSaveReasonAfterDelay TextDocumentSaveReason = 2 - - // TextDocumentSaveReasonFocusOut when the editor lost focus. - TextDocumentSaveReasonFocusOut TextDocumentSaveReason = 3 -) - -// String implements fmt.Stringer. -func (t TextDocumentSaveReason) String() string { - switch t { - case TextDocumentSaveReasonManual: - return "Manual" - case TextDocumentSaveReasonAfterDelay: - return "AfterDelay" - case TextDocumentSaveReasonFocusOut: - return "FocusOut" - default: - return strconv.FormatFloat(float64(t), 'f', -10, 64) - } -} - -// TextDocumentChangeRegistrationOptions describe options to be used when registering for text document change events. -type TextDocumentChangeRegistrationOptions struct { - TextDocumentRegistrationOptions - - // SyncKind how documents are synced to the server. See TextDocumentSyncKind.Full - // and TextDocumentSyncKind.Incremental. - SyncKind TextDocumentSyncKind `json:"syncKind"` -} - -// WillSaveTextDocumentParams is the parameters send in a will save text document notification. -type WillSaveTextDocumentParams struct { - // TextDocument is the document that will be saved. - TextDocument TextDocumentIdentifier `json:"textDocument"` - - // Reason is the 'TextDocumentSaveReason'. - Reason TextDocumentSaveReason `json:"reason,omitempty"` -} - -// DidSaveTextDocumentParams params of DidSaveTextDocument notification. -type DidSaveTextDocumentParams struct { - // Text optional the content when saved. Depends on the includeText value - // when the save notification was requested. - Text string `json:"text,omitempty"` - - // TextDocument is the document that was saved. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} - -// TextDocumentContentChangeEvent an event describing a change to a text document. If range and rangeLength are omitted -// the new text is considered to be the full content of the document. -type TextDocumentContentChangeEvent struct { - // Range is the range of the document that changed. - Range *Range `json:"range,omitempty"` - - // RangeLength is the length of the range that got replaced. - RangeLength uint32 `json:"rangeLength,omitempty"` - - // Text is the new text of the document. - Text string `json:"text"` -} - -// TextDocumentSaveRegistrationOptions TextDocumentSave Registration options. -type TextDocumentSaveRegistrationOptions struct { - TextDocumentRegistrationOptions - - // IncludeText is the client is supposed to include the content on save. - IncludeText bool `json:"includeText,omitempty"` -} - -// DidCloseTextDocumentParams params of DidCloseTextDocument notification. -type DidCloseTextDocumentParams struct { - // TextDocument the document that was closed. - TextDocument TextDocumentIdentifier `json:"textDocument"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/util.go b/vendor/github.com/a-h/templ/lsp/protocol/util.go deleted file mode 100644 index 4dc29c4..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/util.go +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// NewVersion returns the int32 pointer converted i. -func NewVersion(i int32) *int32 { - return &i -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/version.go b/vendor/github.com/a-h/templ/lsp/protocol/version.go deleted file mode 100644 index 79a27f3..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/version.go +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-FileCopyrightText: 2018 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -// Version is the version of the language-server-protocol specification being implemented. -const Version = "3.15.3" diff --git a/vendor/github.com/a-h/templ/lsp/protocol/window.go b/vendor/github.com/a-h/templ/lsp/protocol/window.go deleted file mode 100644 index b6af6f4..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/window.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import "strconv" - -// ShowMessageParams params of ShowMessage notification. -type ShowMessageParams struct { - // Message is the actual message. - Message string `json:"message"` - - // Type is the message type. - Type MessageType `json:"type"` -} - -// MessageType type of ShowMessageParams type. -type MessageType float64 - -const ( - // MessageTypeError an error message. - MessageTypeError MessageType = 1 - // MessageTypeWarning a warning message. - MessageTypeWarning MessageType = 2 - // MessageTypeInfo an information message. - MessageTypeInfo MessageType = 3 - // MessageTypeLog a log message. - MessageTypeLog MessageType = 4 -) - -// String implements fmt.Stringer. -func (m MessageType) String() string { - switch m { - case MessageTypeError: - return "error" - case MessageTypeWarning: - return "warning" - case MessageTypeInfo: - return "info" - case MessageTypeLog: - return "log" - default: - return strconv.FormatFloat(float64(m), 'f', -10, 64) - } -} - -// Enabled reports whether the level is enabled. -func (m MessageType) Enabled(level MessageType) bool { - return level > 0 && m >= level -} - -// messageTypeMap map of MessageTypes. -var messageTypeMap = map[string]MessageType{ - "error": MessageTypeError, - "warning": MessageTypeWarning, - "info": MessageTypeInfo, - "log": MessageTypeLog, -} - -// ToMessageType converts level to the MessageType. -func ToMessageType(level string) MessageType { - mt, ok := messageTypeMap[level] - if !ok { - return MessageType(0) // unknown - } - - return mt -} - -// ShowMessageRequestParams params of ShowMessage request. -type ShowMessageRequestParams struct { - // Actions is the message action items to present. - Actions []MessageActionItem `json:"actions"` - - // Message is the actual message - Message string `json:"message"` - - // Type is the message type. See {@link MessageType} - Type MessageType `json:"type"` -} - -// MessageActionItem item of ShowMessageRequestParams action. -type MessageActionItem struct { - // Title a short title like 'Retry', 'Open Log' etc. - Title string `json:"title"` -} - -// LogMessageParams params of LogMessage notification. -type LogMessageParams struct { - // Message is the actual message - Message string `json:"message"` - - // Type is the message type. See {@link MessageType} - Type MessageType `json:"type"` -} - -// WorkDoneProgressCreateParams params of WorkDoneProgressCreate request. -// -// @since 3.15.0. -type WorkDoneProgressCreateParams struct { - // Token is the token to be used to report progress. - Token ProgressToken `json:"token"` -} - -// WorkDoneProgressCreateParams params of WorkDoneProgressCancel request. -// -// @since 3.15.0. -type WorkDoneProgressCancelParams struct { - // Token is the token to be used to report progress. - Token ProgressToken `json:"token"` -} diff --git a/vendor/github.com/a-h/templ/lsp/protocol/workspace.go b/vendor/github.com/a-h/templ/lsp/protocol/workspace.go deleted file mode 100644 index 4838918..0000000 --- a/vendor/github.com/a-h/templ/lsp/protocol/workspace.go +++ /dev/null @@ -1,213 +0,0 @@ -// SPDX-FileCopyrightText: 2019 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -package protocol - -import ( - "strconv" - - "github.com/a-h/templ/lsp/uri" -) - -// WorkspaceFolder response of Workspace folders request. -type WorkspaceFolder struct { - // URI is the associated URI for this workspace folder. - URI string `json:"uri"` - - // Name is the name of the workspace folder. Used to refer to this - // workspace folder in the user interface. - Name string `json:"name"` -} - -// DidChangeWorkspaceFoldersParams params of DidChangeWorkspaceFolders notification. -type DidChangeWorkspaceFoldersParams struct { - // Event is the actual workspace folder change event. - Event WorkspaceFoldersChangeEvent `json:"event"` -} - -// WorkspaceFoldersChangeEvent is the workspace folder change event. -type WorkspaceFoldersChangeEvent struct { - // Added is the array of added workspace folders - Added []WorkspaceFolder `json:"added"` - - // Removed is the array of the removed workspace folders - Removed []WorkspaceFolder `json:"removed"` -} - -// DidChangeConfigurationParams params of DidChangeConfiguration notification. -type DidChangeConfigurationParams struct { - // Settings is the actual changed settings - Settings any `json:"settings,omitempty"` -} - -// ConfigurationParams params of Configuration request. -type ConfigurationParams struct { - Items []ConfigurationItem `json:"items"` -} - -// ConfigurationItem a ConfigurationItem consists of the configuration section to ask for and an additional scope URI. -// The configuration section ask for is defined by the server and doesn’t necessarily need to correspond to the configuration store used be the client. -// So a server might ask for a configuration cpp.formatterOptions but the client stores the configuration in a XML store layout differently. -// It is up to the client to do the necessary conversion. If a scope URI is provided the client should return the setting scoped to the provided resource. -// If the client for example uses EditorConfig to manage its settings the configuration should be returned for the passed resource URI. If the client can’t provide a configuration setting for a given scope then null need to be present in the returned array. -type ConfigurationItem struct { - // ScopeURI is the scope to get the configuration section for. - ScopeURI uri.URI `json:"scopeUri,omitempty"` - - // Section is the configuration section asked for. - Section string `json:"section,omitempty"` -} - -// DidChangeWatchedFilesParams params of DidChangeWatchedFiles notification. -type DidChangeWatchedFilesParams struct { - // Changes is the actual file events. - Changes []*FileEvent `json:"changes,omitempty"` -} - -// FileEvent an event describing a file change. -type FileEvent struct { - // Type is the change type. - Type FileChangeType `json:"type"` - - // URI is the file's URI. - URI uri.URI `json:"uri"` -} - -// FileChangeType is the file event type. -type FileChangeType float64 - -const ( - // FileChangeTypeCreated is the file got created. - FileChangeTypeCreated FileChangeType = 1 - // FileChangeTypeChanged is the file got changed. - FileChangeTypeChanged FileChangeType = 2 - // FileChangeTypeDeleted is the file got deleted. - FileChangeTypeDeleted FileChangeType = 3 -) - -// String implements fmt.Stringer. -func (t FileChangeType) String() string { - switch t { - case FileChangeTypeCreated: - return "Created" - case FileChangeTypeChanged: - return "Changed" - case FileChangeTypeDeleted: - return "Deleted" - default: - return strconv.FormatFloat(float64(t), 'f', -10, 64) - } -} - -// DidChangeWatchedFilesRegistrationOptions describe options to be used when registering for file system change events. -type DidChangeWatchedFilesRegistrationOptions struct { - // Watchers is the watchers to register. - Watchers []FileSystemWatcher `json:"watchers"` -} - -// FileSystemWatcher watchers of DidChangeWatchedFiles Registration options. -type FileSystemWatcher struct { - // GlobPattern is the glob pattern to watch. - // - // Glob patterns can have the following syntax: - // - `*` to match one or more characters in a path segment - // - `?` to match on one character in a path segment - // - `**` to match any number of path segments, including none - // - `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files) - // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) - GlobPattern string `json:"globPattern"` - - // Kind is the kind of events of interest. If omitted it defaults - // to WatchKind.Create | WatchKind.Change | WatchKind.Delete - // which is 7. - Kind WatchKind `json:"kind,omitempty"` -} - -// WatchKind kind of FileSystemWatcher kind. -type WatchKind float64 - -const ( - // WatchKindCreate interested in create events. - WatchKindCreate WatchKind = 1 - - // WatchKindChange interested in change events. - WatchKindChange WatchKind = 2 - - // WatchKindDelete interested in delete events. - WatchKindDelete WatchKind = 4 -) - -// String implements fmt.Stringer. -func (k WatchKind) String() string { - switch k { - case WatchKindCreate: - return "Create" - case WatchKindChange: - return "Change" - case WatchKindDelete: - return "Delete" - default: - return strconv.FormatFloat(float64(k), 'f', -10, 64) - } -} - -// WorkspaceSymbolParams is the parameters of a Workspace Symbol request. -type WorkspaceSymbolParams struct { - WorkDoneProgressParams - PartialResultParams - - // Query a query string to filter symbols by. - // - // Clients may send an empty string here to request all symbols. - Query string `json:"query"` -} - -// ExecuteCommandParams params of Execute a command. -type ExecuteCommandParams struct { - WorkDoneProgressParams - - // Command is the identifier of the actual command handler. - Command string `json:"command"` - - // Arguments that the command should be invoked with. - Arguments []any `json:"arguments,omitempty"` -} - -// ExecuteCommandRegistrationOptions execute command registration options. -type ExecuteCommandRegistrationOptions struct { - // Commands is the commands to be executed on the server - Commands []string `json:"commands"` -} - -// ApplyWorkspaceEditParams params of Applies a WorkspaceEdit. -type ApplyWorkspaceEditParams struct { - // Label an optional label of the workspace edit. This label is - // presented in the user interface for example on an undo - // stack to undo the workspace edit. - Label string `json:"label,omitempty"` - - // Edit is the edits to apply. - Edit WorkspaceEdit `json:"edit"` -} - -// ApplyWorkspaceEditResponse response of Applies a WorkspaceEdit. -type ApplyWorkspaceEditResponse struct { - // Applied indicates whether the edit was applied or not. - Applied bool `json:"applied"` - - // FailureReason an optional textual description for why the edit was not applied. - // This may be used by the server for diagnostic logging or to provide - // a suitable error for a request that triggered the edit. - // - // @since 3.16.0. - FailureReason string `json:"failureReason,omitempty"` - - // FailedChange depending on the client's failure handling strategy "failedChange" - // might contain the index of the change that failed. This property is - // only available if the client signals a "failureHandlingStrategy" - // in its client capabilities. - // - // @since 3.16.0. - FailedChange uint32 `json:"failedChange,omitempty"` -} diff --git a/vendor/github.com/a-h/templ/lsp/uri/uri.go b/vendor/github.com/a-h/templ/lsp/uri/uri.go deleted file mode 100644 index 454dd6e..0000000 --- a/vendor/github.com/a-h/templ/lsp/uri/uri.go +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2019 The Go Language Server 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 uri - -import ( - "errors" - "fmt" - "net/url" - "path/filepath" - "runtime" - "strings" - "unicode" -) - -const ( - // FileScheme schema of filesystem path. - FileScheme = "file" - - // HTTPScheme schema of http. - HTTPScheme = "http" - - // HTTPSScheme schema of https. - HTTPSScheme = "https" -) - -const ( - hierPart = "://" -) - -// URI Uniform Resource Identifier (URI) https://tools.ietf.org/html/rfc3986. -// -// This class is a simple parser which creates the basic component parts -// (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation -// and encoding. -// -// foo://example.com:8042/over/there?name=ferret#nose -// \_/ \______________/\_________/ \_________/ \__/ -// | | | | | -// scheme authority path query fragment -// | _____________________|__ -// / \ / \ -// urn:example:animal:ferret:nose -type URI string - -// Filename returns the file path for the given URI. -// It is an error to call this on a URI that is not a valid filename. -func (u URI) Filename() string { - filename, err := filename(u) - if err != nil { - panic(err) - } - - return filepath.FromSlash(filename) -} - -func filename(uri URI) (string, error) { - u, err := url.ParseRequestURI(string(uri)) - if err != nil { - return "", fmt.Errorf("failed to parse request URI: %w", err) - } - - if u.Scheme != FileScheme { - return "", fmt.Errorf("only file URIs are supported, got %v", u.Scheme) - } - - if isWindowsDriveURI(u.Path) { - u.Path = u.Path[1:] - } - - return u.Path, nil -} - -// New parses and creates a new URI from s. -func New(s string) URI { - if u, err := url.PathUnescape(s); err == nil { - s = u - } - - if strings.HasPrefix(s, FileScheme+hierPart) { - return URI(s) - } - - return File(s) -} - -// File parses and creates a new filesystem URI from path. -func File(path string) URI { - const goRootPragma = "$GOROOT" - if len(path) >= len(goRootPragma) && strings.EqualFold(goRootPragma, path[:len(goRootPragma)]) { - path = runtime.GOROOT() + path[len(goRootPragma):] - } - - if !isWindowsDrivePath(path) { - if abs, err := filepath.Abs(path); err == nil { - path = abs - } - } - - if isWindowsDrivePath(path) { - path = "/" + path - } - - path = filepath.ToSlash(path) - u := url.URL{ - Scheme: FileScheme, - Path: path, - } - - return URI(u.String()) -} - -// Parse parses and creates a new URI from s. -func Parse(s string) (u URI, err error) { - us, err := url.Parse(s) - if err != nil { - return u, fmt.Errorf("url.Parse: %w", err) - } - - switch us.Scheme { - case FileScheme: - ut := url.URL{ - Scheme: FileScheme, - Path: us.Path, - RawPath: filepath.FromSlash(us.Path), - } - u = URI(ut.String()) - - case HTTPScheme, HTTPSScheme: - ut := url.URL{ - Scheme: us.Scheme, - Host: us.Host, - Path: us.Path, - RawQuery: us.Query().Encode(), - Fragment: us.Fragment, - } - u = URI(ut.String()) - - default: - return u, errors.New("unknown scheme") - } - - return -} - -// From returns the new URI from args. -func From(scheme, authority, path, query, fragment string) URI { - switch scheme { - case FileScheme: - u := url.URL{ - Scheme: FileScheme, - Path: path, - RawPath: filepath.FromSlash(path), - } - return URI(u.String()) - - case HTTPScheme, HTTPSScheme: - u := url.URL{ - Scheme: scheme, - Host: authority, - Path: path, - RawQuery: url.QueryEscape(query), - Fragment: fragment, - } - return URI(u.String()) - - default: - panic(fmt.Sprintf("unknown scheme: %s", scheme)) - } -} - -// isWindowsDrivePath returns true if the file path is of the form used by Windows. -// -// We check if the path begins with a drive letter, followed by a ":". -func isWindowsDrivePath(path string) bool { - if len(path) < 4 { - return false - } - return unicode.IsLetter(rune(path[0])) && path[1] == ':' -} - -// isWindowsDriveURI returns true if the file URI is of the format used by -// Windows URIs. The url.Parse package does not specially handle Windows paths -// (see https://golang.org/issue/6027). We check if the URI path has -// a drive prefix (e.g. "/C:"). If so, we trim the leading "/". -func isWindowsDriveURI(uri string) bool { - if len(uri) < 4 { - return false - } - return uri[0] == '/' && unicode.IsLetter(rune(uri[1])) && uri[2] == ':' -} diff --git a/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go b/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go deleted file mode 100644 index df35beb..0000000 --- a/vendor/github.com/a-h/templ/lsp/xcontext/xcontext.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2020 The Go Language Server Authors -// SPDX-License-Identifier: BSD-3-Clause - -// Package xcontext is a package to offer the extra functionality we need -// from contexts that is not available from the standard context package. -package xcontext - -import ( - "context" - "time" -) - -// Detach returns a context that keeps all the values of its parent context -// but detaches from the cancellation and error handling. -func Detach(ctx context.Context) context.Context { return detachedContext{ctx} } - -type detachedContext struct{ parent context.Context } - -func (v detachedContext) Deadline() (time.Time, bool) { return time.Time{}, false } -func (v detachedContext) Done() <-chan struct{} { return nil } -func (v detachedContext) Err() error { return nil } -func (v detachedContext) Value(key any) any { return v.parent.Value(key) } diff --git a/vendor/github.com/a-h/templ/once.go b/vendor/github.com/a-h/templ/once.go deleted file mode 100644 index 7860ab8..0000000 --- a/vendor/github.com/a-h/templ/once.go +++ /dev/null @@ -1,64 +0,0 @@ -package templ - -import ( - "context" - "io" - "sync/atomic" -) - -// onceHandleIndex is used to identify unique once handles in a program run. -var onceHandleIndex int64 - -type OnceOpt func(*OnceHandle) - -// WithOnceComponent sets the component to be rendered once per context. -// This can be used instead of setting the children of the `Once` method, -// for example, if creating a code component outside of a templ HTML template. -func WithComponent(c Component) OnceOpt { - return func(o *OnceHandle) { - o.c = c - } -} - -// NewOnceHandle creates a OnceHandle used to ensure that the children of its -// `Once` method are only rendered once per context. -func NewOnceHandle(opts ...OnceOpt) *OnceHandle { - oh := &OnceHandle{ - id: atomic.AddInt64(&onceHandleIndex, 1), - } - for _, opt := range opts { - opt(oh) - } - return oh -} - -// OnceHandle is used to ensure that the children of its `Once` method are are only -// rendered once per context. -type OnceHandle struct { - // id is used to identify which instance of the OnceHandle is being used. - // The OnceHandle can't be an empty struct, because: - // - // | Two distinct zero-size variables may - // | have the same address in memory - // - // https://go.dev/ref/spec#Size_and_alignment_guarantees - id int64 - // c is the component to be rendered once per context. - // if c is nil, the children of the `Once` method are rendered. - c Component -} - -// Once returns a component that renders its children once per context. -func (o *OnceHandle) Once() Component { - return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { - _, v := getContext(ctx) - if v.getHasBeenRendered(o) { - return nil - } - v.setHasBeenRendered(o) - if o.c != nil { - return o.c.Render(ctx, w) - } - return GetChildren(ctx).Render(ctx, w) - }) -} diff --git a/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go b/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go deleted file mode 100644 index 9000306..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/calltemplateparser.go +++ /dev/null @@ -1,37 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -var callTemplateExpression callTemplateExpressionParser - -var callTemplateExpressionStart = parse.Or(parse.String("{! "), parse.String("{!")) - -type callTemplateExpressionParser struct{} - -func (p callTemplateExpressionParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - start := pi.Position() - - // Check the prefix first. - if _, ok, err = callTemplateExpressionStart.Parse(pi); err != nil || !ok { - return - } - - // Once we have a prefix, we must have an expression that returns a template. - r := &CallTemplateExpression{} - if r.Expression, err = parseGo("call template expression", pi, goexpression.Expression); err != nil { - return - } - - // Eat the final brace. - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("call template expression: missing closing brace", pi.Position()) - return - } - - r.Range = NewRange(start, pi.Position()) - - return r, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/childrenparser.go b/vendor/github.com/a-h/templ/parser/v2/childrenparser.go deleted file mode 100644 index a829c4a..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/childrenparser.go +++ /dev/null @@ -1,21 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var childrenExpressionParser = parse.StringFrom( - openBraceWithOptionalPadding, - parse.OptionalWhitespace, - parse.String("children..."), - parse.OptionalWhitespace, - closeBraceWithOptionalPadding, -) - -var childrenExpression = parse.Func(func(in *parse.Input) (n Node, ok bool, err error) { - _, ok, err = childrenExpressionParser.Parse(in) - if err != nil || !ok { - return - } - return &ChildrenExpression{}, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go b/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go deleted file mode 100644 index e686a15..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/conditionalattributeparser.go +++ /dev/null @@ -1,101 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -var conditionalAttribute parse.Parser[*ConditionalAttribute] = conditionalAttributeParser{} - -type conditionalAttributeParser struct{} - -func (conditionalAttributeParser) Parse(pi *parse.Input) (r *ConditionalAttribute, ok bool, err error) { - start := pi.Index() - - // Strip leading whitespace and look for `if `. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return - } - if !peekPrefix(pi, "if ") { - pi.Seek(start) - return - } - - // Parse the Go if expression. - r = &ConditionalAttribute{} - if r.Expression, err = parseGo("if attribute", pi, goexpression.If); err != nil { - return - } - - // Eat " {\n". - if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("attribute if: unterminated (missing closing '{\n')", pi.PositionAt(start)) - return - } - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return - } - - // Read the 'Then' attributes. - // If there's no match, there's a problem reading the attributes. - if r.Then, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { - err = parse.Error("attribute if: expected attributes in block, but none were found", pi.Position()) - return - } - - if len(r.Then) == 0 { - err = parse.Error("attribute if: invalid content or no attributes were found in the if block", pi.Position()) - return - } - - // Read the optional 'Else' Nodes. - if r.Else, ok, err = attributeElseExpression.Parse(pi); err != nil { - return - } - if ok && len(r.Else) == 0 { - err = parse.Error("attribute if: invalid content or no attributes were found in the else block", pi.Position()) - return - } - - // Clear any optional whitespace. - _, _, _ = parse.OptionalWhitespace.Parse(pi) - - // Read the required closing brace. - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("attribute if: missing end (expected '}')", pi.Position()) - return - } - - return r, true, nil -} - -var attributeElseExpression parse.Parser[[]Attribute] = attributeElseExpressionParser{} - -type attributeElseExpressionParser struct{} - -func (attributeElseExpressionParser) Parse(in *parse.Input) (r []Attribute, ok bool, err error) { - start := in.Index() - - // Strip any initial whitespace. - _, _, _ = parse.OptionalWhitespace.Parse(in) - - // } else { - var endElseParser = parse.All( - parse.Rune('}'), - parse.OptionalWhitespace, - parse.String("else"), - parse.OptionalWhitespace, - parse.Rune('{')) - if _, ok, err = endElseParser.Parse(in); err != nil || !ok { - in.Seek(start) - return - } - - // Else contents - if r, ok, err = (attributesParser{}).Parse(in); err != nil || !ok { - err = parse.Error("attribute if: expected attributes in else block, but none were found", in.Position()) - return - } - - return r, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/cssparser.go b/vendor/github.com/a-h/templ/parser/v2/cssparser.go deleted file mode 100644 index 9b63d20..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/cssparser.go +++ /dev/null @@ -1,200 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -// CSS. - -// CSS Parser. -var cssParser = parse.Func(func(pi *parse.Input) (r *CSSTemplate, ok bool, err error) { - from := pi.Position() - - r = &CSSTemplate{ - Properties: []CSSProperty{}, - } - defer func() { - r.Range = NewRange(from, pi.Position()) - }() - - // Parse the name. - var exp cssExpression - if exp, ok, err = cssExpressionParser.Parse(pi); err != nil || !ok { - return - } - r.Name = exp.Name - r.Expression = exp.Expression - - for { - var cssProperty CSSProperty - - // Try for an expression CSS declaration. - // background-color: { constants.BackgroundColor }; - cssProperty, ok, err = expressionCSSPropertyParser.Parse(pi) - if err != nil { - return - } - if ok { - r.Properties = append(r.Properties, cssProperty) - continue - } - - // Try for a constant CSS declaration. - // color: #ffffff; - cssProperty, ok, err = constantCSSPropertyParser.Parse(pi) - if err != nil { - return - } - if ok { - r.Properties = append(r.Properties, cssProperty) - continue - } - - // Eat any whitespace. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - - // Try for } - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("css property expression: missing closing brace", pi.Position()) - return - } - - return r, true, nil - } -}) - -// css Func() { -type cssExpression struct { - Expression Expression - Name string -} - -var cssExpressionParser = parse.Func(func(pi *parse.Input) (r cssExpression, ok bool, err error) { - start := pi.Index() - - if !peekPrefix(pi, "css ") { - return r, false, nil - } - - // Once we have the prefix, everything to the brace is Go. - // e.g. - // css (x []string) Test() { - // becomes: - // func (x []string) Test() templ.CSSComponent { - if r.Name, r.Expression, err = parseCSSFuncDecl(pi); err != nil { - return r, false, err - } - - // Eat " {\n". - if _, ok, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !ok { - err = parse.Error("css expression: parameters missing open bracket", pi.PositionAt(start)) - return - } - - return r, true, nil -}) - -// CSS property name parser. -var cssPropertyNameFirst = "abcdefghijklmnopqrstuvwxyz-" -var cssPropertyNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-" -var cssPropertyNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { - start := in.Position() - var prefix, suffix string - if prefix, ok, err = parse.RuneIn(cssPropertyNameFirst).Parse(in); err != nil || !ok { - return - } - if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(cssPropertyNameSubsequent)).Parse(in); err != nil || !ok { - in.Seek(start.Index) - return - } - if len(suffix)+1 > 128 { - ok = false - err = parse.Error("css property names must be < 128 characters long", in.Position()) - return - } - return prefix + suffix, true, nil -}) - -// background-color: {%= constants.BackgroundColor %}; -var expressionCSSPropertyParser = parse.Func(func(pi *parse.Input) (r *ExpressionCSSProperty, ok bool, err error) { - start := pi.Index() - - // Optional whitespace. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - // Property name. - r = &ExpressionCSSProperty{} - if r.Name, ok, err = cssPropertyNameParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - // <space>:<space> - if _, ok, err = parse.All(parse.OptionalWhitespace, parse.Rune(':'), parse.OptionalWhitespace).Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // { string } - var se Node - if se, ok, err = stringExpression.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - r.Value = se.(*StringExpression) - - // ; - if _, ok, err = parse.String(";").Parse(pi); err != nil || !ok { - err = parse.Error("missing expected semicolon (;)", pi.Position()) - return - } - // \n - if _, ok, err = parse.NewLine.Parse(pi); err != nil || !ok { - err = parse.Error("missing expected linebreak", pi.Position()) - return - } - - return r, true, nil -}) - -// background-color: #ffffff; -var constantCSSPropertyParser = parse.Func(func(pi *parse.Input) (r *ConstantCSSProperty, ok bool, err error) { - start := pi.Index() - - // Optional whitespace. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - // Property name. - r = &ConstantCSSProperty{} - if r.Name, ok, err = cssPropertyNameParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - // <space>:<space> - if _, ok, err = parse.All(parse.OptionalWhitespace, parse.Rune(':'), parse.OptionalWhitespace).Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Everything until ';\n' - untilEnd := parse.All( - parse.OptionalWhitespace, - parse.Rune(';'), - parse.NewLine, - ) - if r.Value, ok, err = parse.StringUntil(untilEnd).Parse(pi); err != nil || !ok { - err = parse.Error("missing expected semicolon and linebreak (;\\n", pi.Position()) - return - } - - // Chomp the ;\n - if _, ok, err = untilEnd.Parse(pi); err != nil || !ok { - err = parse.Error("failed to chomp semicolon and linebreak (;\\n)", pi.Position()) - return - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/diagnostics.go b/vendor/github.com/a-h/templ/parser/v2/diagnostics.go deleted file mode 100644 index aef94a4..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/diagnostics.go +++ /dev/null @@ -1,64 +0,0 @@ -package parser - -import ( - "errors" -) - -type diagnoser func(Node) ([]Diagnostic, error) - -// Diagnostic for template file. -type Diagnostic struct { - Message string - Range Range -} - -func walkTemplate(t *TemplateFile, f func(Node) bool) { - for _, n := range t.Nodes { - hn, ok := n.(*HTMLTemplate) - if !ok { - continue - } - walkNodes(hn.Children, f) - } -} -func walkNodes(t []Node, f func(Node) bool) { - for _, n := range t { - if !f(n) { - continue - } - if h, ok := n.(CompositeNode); ok { - walkNodes(h.ChildNodes(), f) - } - } -} - -var diagnosers = []diagnoser{ - useOfLegacyCallSyntaxDiagnoser, -} - -func Diagnose(t *TemplateFile) ([]Diagnostic, error) { - var diags []Diagnostic - var errs error - walkTemplate(t, func(n Node) bool { - for _, d := range diagnosers { - diag, err := d(n) - if err != nil { - errs = errors.Join(errs, err) - return false - } - diags = append(diags, diag...) - } - return true - }) - return diags, errs -} - -func useOfLegacyCallSyntaxDiagnoser(n Node) ([]Diagnostic, error) { - if c, ok := n.(*CallTemplateExpression); ok { - return []Diagnostic{{ - Message: "`{! foo }` syntax is deprecated. Use `@foo` syntax instead. Run `templ fmt .` to fix all instances.", - Range: c.Expression.Range, - }}, nil - } - return nil, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go b/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go deleted file mode 100644 index 8e82b09..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/doctypeparser.go +++ /dev/null @@ -1,32 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var doctypeStartParser = parse.StringInsensitive("<!doctype ") - -var untilLtOrGt = parse.Or(lt, gt) -var stringUntilLtOrGt = parse.StringUntil(untilLtOrGt) - -var docType = parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { - start := pi.Position() - if _, ok, err = doctypeStartParser.Parse(pi); err != nil || !ok { - return - } - - // Once a doctype has started, take everything until the end. - r := &DocType{} - if r.Value, ok, err = stringUntilLtOrGt.Parse(pi); err != nil || !ok { - err = parse.Error("unclosed DOCTYPE", start) - return - } - - // Clear the final '>'. - if _, ok, err = gt.Parse(pi); err != nil || !ok { - err = parse.Error("unclosed DOCTYPE", start) - return - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/elementparser.go b/vendor/github.com/a-h/templ/parser/v2/elementparser.go deleted file mode 100644 index a7cb8db..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/elementparser.go +++ /dev/null @@ -1,560 +0,0 @@ -package parser - -import ( - "fmt" - "strings" - - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -// Element. - -// Element open tag. -type elementOpenTag struct { - Name string - Attributes []Attribute - IndentAttrs bool - NameRange Range - Void bool -} - -var elementOpenTagParser = parse.Func(func(pi *parse.Input) (e elementOpenTag, matched bool, err error) { - if next, _ := pi.Peek(2); len(next) < 2 || next[0] != '<' || next == "<!" || next == "</" { - // This is not a tag, or it's a comment, doctype, or closing tag. - return e, false, nil - } - - // < - if _, matched, err = lt.Parse(pi); err != nil || !matched { - return - } - - // Element name. - l := pi.Position().Line - if e.Name, matched, err = elementNameParser.Parse(pi); err != nil || !matched { - return e, true, err - } - e.NameRange = NewRange(pi.PositionAt(pi.Index()-len(e.Name)), pi.Position()) - - if e.Attributes, matched, err = (attributesParser{}).Parse(pi); err != nil || !matched { - return e, true, err - } - - // If any attribute is not on the same line as the element name, indent them. - if pi.Position().Line != l { - e.IndentAttrs = true - } - - // Optional whitespace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return e, true, err - } - - // /> - if _, matched, err = parse.String("/>").Parse(pi); err != nil { - return e, true, err - } - if matched { - e.Void = true - return e, true, nil - } - - // > - if _, matched, err = gt.Parse(pi); err != nil { - return e, true, err - } - - // If it's not a self-closing or complete open element, we have an error. - if !matched { - err = parse.Error(fmt.Sprintf("<%s>: malformed open element", e.Name), pi.Position()) - return - } - - return e, true, nil -}) - -// Attribute name. -var ( - attributeNameFirst = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:_@" - attributeNameSubsequent = attributeNameFirst + "-.0123456789*" - attributeNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { - start := in.Index() - var prefix, suffix string - if prefix, ok, err = parse.RuneIn(attributeNameFirst).Parse(in); err != nil || !ok { - return - } - if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(attributeNameSubsequent)).Parse(in); err != nil { - in.Seek(start) - return - } - if len(suffix)+1 > 128 { - ok = false - err = parse.Error("attribute names must be < 128 characters long", in.Position()) - return - } - return prefix + suffix, true, nil - }) -) - -type attributeValueParser struct { - EqualsAndQuote parse.Parser[string] - Suffix parse.Parser[string] - UseSingleQuote bool -} - -func (avp attributeValueParser) Parse(pi *parse.Input) (value string, ok bool, err error) { - start := pi.Index() - if _, ok, err = avp.EqualsAndQuote.Parse(pi); err != nil || !ok { - return - } - if value, ok, err = parse.StringUntil(avp.Suffix).Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - if _, ok, err = avp.Suffix.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - return value, true, nil -} - -// Constant attribute. -var ( - attributeValueParsers = []attributeValueParser{ - // Double quoted. - {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String(`="`)), Suffix: parse.String(`"`), UseSingleQuote: false}, - // Single quoted. - {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String(`='`)), Suffix: parse.String(`'`), UseSingleQuote: true}, - // Unquoted. - // A valid unquoted attribute value in HTML is any string of text that is not an empty string, - // and that doesn’t contain spaces, tabs, line feeds, form feeds, carriage returns, ", ', `, =, <, or >. - {EqualsAndQuote: parse.StringFrom(parse.OptionalWhitespace, parse.String("=")), Suffix: parse.Any(parse.RuneIn(" \t\n\r\"'`=<>/"), parse.EOF[string]()), UseSingleQuote: false}, - } - constantAttributeParser = parse.Func(func(pi *parse.Input) (attr *ConstantAttribute, ok bool, err error) { - start := pi.Index() - - // Optional whitespace leader. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - - attr = &ConstantAttribute{} - - // Attribute name. - if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - for _, p := range attributeValueParsers { - attr.Value, ok, err = p.Parse(pi) - if err != nil { - pos := pi.Position() - if pErr, isParseError := err.(parse.ParseError); isParseError { - pos = pErr.Pos - } - return attr, false, parse.Error(fmt.Sprintf("%s: %v", attr.Key, err), pos) - } - if ok { - attr.SingleQuote = p.UseSingleQuote - break - } - } - - if !ok { - pi.Seek(start) - return attr, false, nil - } - - // Only use single quotes if actually required, due to double quote in the value (prefer double quotes). - attr.SingleQuote = attr.SingleQuote && strings.Contains(attr.Value, "\"") - - return attr, true, nil - }) -) - -var expressionAttributeKeyParser = parse.Func(func(pi *parse.Input) (attr AttributeKey, ok bool, err error) { - start := pi.Index() - // Eat the first brace. - if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - var ek ExpressionAttributeKey - - // Expression. - if ek.Expression, err = parseGoSliceArgs(pi); err != nil { - return attr, false, err - } - - // Eat the Final brace. - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("attribute key: missing closing brace", pi.Position()) - pi.Seek(start) - return - } - return ek, true, nil -}) - -var constantAttributeKeyParser = parse.Func(func(pi *parse.Input) (k AttributeKey, ok bool, err error) { - start := pi.Index() - n, ok, err := attributeNameParser.Parse(pi) - if err != nil || !ok { - pi.Seek(start) - return - } - r := NewRange(pi.PositionAt(start), pi.Position()) - k = ConstantAttributeKey{Name: n, NameRange: r} - return k, true, nil -}) - -var attributeKeyParser = parse.Any(constantAttributeKeyParser, expressionAttributeKeyParser) - -// BoolConstantAttribute. -var boolConstantAttributeParser = parse.Func(func(pi *parse.Input) (attr *BoolConstantAttribute, ok bool, err error) { - start := pi.Index() - - // Optional whitespace leader. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - - attr = &BoolConstantAttribute{} - - // Attribute name. - if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // We have a name, but if we have an equals sign, it's not a constant boolean attribute. - next, ok := pi.Peek(1) - if !ok { - err = parse.Error("boolConstantAttributeParser: unexpected EOF after attribute name", pi.Position()) - return - } - if next == "=" || next == "?" { - // It's one of the other attribute types. - pi.Seek(start) - return attr, false, nil - } - if next != " " && next != "\t" && next != "\r" && next != "\n" && next != "/" && next != ">" { - err = parse.Error(fmt.Sprintf("boolConstantAttributeParser: expected attribute name to end with space, newline, '/>' or '>', but got %q", next), pi.Position()) - return attr, false, err - } - - return attr, true, nil -}) - -// BoolExpressionAttribute. -var boolExpressionStart = parse.Or(parse.String("?={ "), parse.String("?={")) - -var boolExpressionAttributeParser = parse.Func(func(pi *parse.Input) (r *BoolExpressionAttribute, ok bool, err error) { - start := pi.Index() - - // Optional whitespace leader. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - r = &BoolExpressionAttribute{} - - // Attribute name. - if r.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Check whether this is a boolean expression attribute. - if _, ok, err = boolExpressionStart.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Once we have a prefix, we must have an expression that returns a boolean. - if r.Expression, err = parseGo("boolean attribute", pi, goexpression.Expression); err != nil { - return r, false, err - } - - // Eat the Final brace. - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("boolean expression: missing closing brace", pi.Position()) - pi.Seek(start) - return - } - - return r, true, nil -}) - -var expressionAttributeStartParser = parse.StringFrom(parse.OptionalWhitespace, parse.String("="), parse.OptionalWhitespace, parse.String("{"), parse.OptionalWhitespace) - -var expressionAttributeParser = parse.Func(func(pi *parse.Input) (attr *ExpressionAttribute, ok bool, err error) { - start := pi.Index() - - // Optional whitespace leader. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - - attr = &ExpressionAttribute{} - - // Attribute name. - if attr.Key, ok, err = attributeKeyParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // ={ - if _, ok, err = expressionAttributeStartParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Expression. - if attr.Expression, err = parseGoSliceArgs(pi); err != nil { - return attr, false, err - } - - // Eat whitespace, plus the final brace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return attr, false, err - } - if _, ok, err = closeBrace.Parse(pi); err != nil || !ok { - err = parse.Error("string expression attribute: missing closing brace", pi.Position()) - return - } - - return attr, true, nil -}) - -var spreadAttributesParser = parse.Func(func(pi *parse.Input) (attr *SpreadAttributes, ok bool, err error) { - start := pi.Index() - - // Optional whitespace leader. - if _, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - - // Eat the first brace. - if _, ok, err = openBraceWithOptionalPadding.Parse(pi); err != nil || - !ok { - pi.Seek(start) - return - } - - // Expression. - attr = &SpreadAttributes{} - if attr.Expression, err = parseGo("spread attributes", pi, goexpression.Expression); err != nil { - return - } - - // Check if end of expression has "..." for spread. - if !strings.HasSuffix(attr.Expression.Value, "...") { - pi.Seek(start) - ok = false - return - } - - // Remove extra spread characters from expression. - attr.Expression.Value = strings.TrimSuffix(attr.Expression.Value, "...") - attr.Expression.Range.To.Col -= 3 - attr.Expression.Range.To.Index -= 3 - - // Eat the final brace. - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("attribute spread expression: missing closing brace", pi.Position()) - return - } - - return attr, true, nil -}) - -// Attributes. -type attributeParser struct{} - -func (attributeParser) Parse(in *parse.Input) (out Attribute, ok bool, err error) { - if out, ok, err = spreadAttributesParser.Parse(in); err != nil || ok { - return - } - if out, ok, err = boolExpressionAttributeParser.Parse(in); err != nil || ok { - return - } - if out, ok, err = expressionAttributeParser.Parse(in); err != nil || ok { - return - } - if out, ok, err = conditionalAttribute.Parse(in); err != nil || ok { - return - } - if out, ok, err = boolConstantAttributeParser.Parse(in); err != nil || ok { - return - } - if out, ok, err = constantAttributeParser.Parse(in); err != nil || ok { - return - } - return -} - -var attribute attributeParser - -type attributesParser struct{} - -func (attributesParser) Parse(in *parse.Input) (attributes []Attribute, ok bool, err error) { - for { - var attr Attribute - attr, ok, err = attribute.Parse(in) - if err != nil { - return - } - if !ok { - break - } - attributes = append(attributes, attr) - } - return attributes, true, nil -} - -// Element name. -var ( - elementNameFirst = "abcdefghijklmnopqrstuvwxyz" - elementNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:" - elementNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) { - start := in.Index() - var prefix, suffix string - if prefix, ok, err = parse.RuneIn(elementNameFirst).Parse(in); err != nil || !ok { - return - } - if suffix, ok, err = parse.StringUntil(parse.RuneNotIn(elementNameSubsequent)).Parse(in); err != nil || !ok { - in.Seek(start) - return - } - if len(suffix)+1 > 128 { - ok = false - err = parse.Error("element names must be < 128 characters long", in.Position()) - return - } - return prefix + suffix, true, nil - }) -) - -// Void element closer. -var voidElementCloser voidElementCloserParser - -type voidElementCloserParser struct{} - -var voidElementCloseTags = []string{"</area>", "</base>", "</br>", "</col>", "</command>", "</embed>", "</hr>", "</img>", "</input>", "</keygen>", "</link>", "</meta>", "</param>", "</source>", "</track>", "</wbr>"} - -func (voidElementCloserParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - var ve string - for _, ve = range voidElementCloseTags { - s, canPeekLen := pi.Peek(len(ve)) - if !canPeekLen { - continue - } - if !strings.EqualFold(s, ve) { - continue - } - // Found a match. - ok = true - break - } - if !ok { - return nil, false, nil - } - pi.Take(len(ve)) - return nil, true, nil -} - -// Element. -var element elementParser - -type elementParser struct{} - -func (elementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - start := pi.Position() - - if prefix, _ := pi.Peek(len("<script")); prefix == "<script" { - // This is a script element, which has special handling and should - // be parsed by a different parser to this one. - return nil, false, nil - } - - // Check the open tag. - var ot elementOpenTag - if ot, ok, err = elementOpenTagParser.Parse(pi); err != nil || !ok { - return - } - r := &Element{ - Name: ot.Name, - Attributes: ot.Attributes, - IndentAttrs: ot.IndentAttrs, - NameRange: ot.NameRange, - } - - // Once we've got an open tag, the rest must be present. - l := pi.Position().Line - - // If the element is self-closing, even if it's not really a void element (br, hr etc.), we can return early. - if ot.Void || r.IsVoidElement() { - // Escape early, no need to try to parse children for self-closing elements. - return addTrailingSpaceAndValidate(start, r, pi) - } - - // Parse children. - closer := StripType(parse.All(parse.String("</"), parse.String(ot.Name), parse.Rune('>'))) - tnp := newTemplateNodeParser(closer, fmt.Sprintf("<%s>: close tag", ot.Name)) - nodes, _, err := tnp.Parse(pi) - if err != nil { - notFoundErr, isNotFoundError := err.(UntilNotFoundError) - if isNotFoundError { - err = notFoundErr.ParseError - } - // If we got any nodes, take them, because the LSP might want to use them. - r.Children = nodes.Nodes - return r, true, err - } - r.Children = nodes.Nodes - // If the children are not all on the same line, indent them. - if l != pi.Position().Line { - r.IndentChildren = true - } - - // Close tag. - _, ok, err = closer.Parse(pi) - if err != nil { - return r, true, err - } - if !ok { - err = parse.Error(fmt.Sprintf("<%s>: expected end tag not present or invalid tag contents", r.Name), pi.Position()) - return r, true, err - } - - return addTrailingSpaceAndValidate(start, r, pi) -} - -func addTrailingSpaceAndValidate(start parse.Position, e *Element, pi *parse.Input) (n Node, ok bool, err error) { - // Elide any void close tags. - if _, _, err = voidElementCloser.Parse(pi); err != nil { - return e, false, err - } - // Add trailing space. - ws, _, err := parse.Whitespace.Parse(pi) - if err != nil { - return e, false, err - } - e.TrailingSpace, err = NewTrailingSpace(ws) - if err != nil { - return e, false, err - } - - // Validate. - var msgs []string - if msgs, ok = e.Validate(); !ok { - err = parse.Error(fmt.Sprintf("<%s>: %s", e.Name, strings.Join(msgs, ", ")), start) - return e, false, err - } - - e.Range = NewRange(start, pi.Position()) - return e, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/expressionparser.go b/vendor/github.com/a-h/templ/parser/v2/expressionparser.go deleted file mode 100644 index 87128ec..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/expressionparser.go +++ /dev/null @@ -1,246 +0,0 @@ -package parser - -import ( - "strings" - - "github.com/a-h/parse" -) - -// StripType takes the parser and throws away the return value. -func StripType[T any](p parse.Parser[T]) parse.Parser[any] { - return parse.Func(func(in *parse.Input) (out any, matched bool, err error) { - return p.Parse(in) - }) -} - -func ExpressionOf(p parse.Parser[string]) parse.Parser[Expression] { - return parse.Func(func(in *parse.Input) (out Expression, matched bool, err error) { - from := in.Position() - - var exp string - if exp, matched, err = p.Parse(in); err != nil || !matched { - return - } - - return NewExpression(exp, from, in.Position()), true, nil - }) -} - -var lt = parse.Rune('<') -var gt = parse.Rune('>') -var spaceOrTab = parse.Any(parse.Rune(' '), parse.Rune('\t')) -var spaceOrTabOrNewLine = parse.Any(spaceOrTab, parse.Rune('\n')) -var openBrace = parse.String("{") -var optionalSpaces = parse.StringFrom(parse.Optional( - parse.AtLeast(1, spaceOrTab))) -var optionalSpacesOrNewLine = parse.StringFrom(parse.Optional( - parse.AtLeast(1, spaceOrTabOrNewLine))) -var openBraceWithPadding = parse.StringFrom(optionalSpaces, - openBrace, - optionalSpaces) -var openBraceWithOptionalPadding = parse.Any(openBraceWithPadding, openBrace) - -var closeBrace = parse.String("}") -var closeBraceWithOptionalPadding = parse.StringFrom(optionalSpaces, closeBrace) - -var dblOpenBrace = parse.String("{{") -var dblOpenBraceWithOptionalPaddingOrNewLine = parse.StringFrom(dblOpenBrace, optionalSpacesOrNewLine) - -var dblCloseBrace = parse.String("}}") -var dblCloseBraceWithOptionalPadding = parse.StringFrom(optionalSpaces, dblCloseBrace) - -var openBracket = parse.String("(") -var closeBracket = parse.String(")") - -var stringUntilNewLine = parse.StringUntil(parse.NewLine) -var newLineOrEOF = parse.Or(parse.NewLine, parse.EOF[string]()) -var stringUntilNewLineOrEOF = parse.StringUntil(newLineOrEOF) - -var jsOrGoSingleLineComment = parse.StringFrom(parse.String("//"), parse.StringUntil(parse.Any(parse.NewLine, parse.EOF[string]()))) -var jsOrGoMultiLineComment = parse.StringFrom(parse.String("/*"), parse.StringUntil(parse.String("*/"))) - -var exp = expressionParser{ - startBraceCount: 1, -} - -type expressionParser struct { - startBraceCount int -} - -func (p expressionParser) Parse(pi *parse.Input) (s Expression, matched bool, err error) { - from := pi.Position() - - braceCount := p.startBraceCount - - sb := new(strings.Builder) -loop: - for { - var result string - - // Try to parse a single line comment. - if result, matched, err = jsOrGoSingleLineComment.Parse(pi); err != nil { - return - } - if matched { - sb.WriteString(result) - continue - } - - // Try to parse a multi-line comment. - if result, matched, err = jsOrGoMultiLineComment.Parse(pi); err != nil { - return - } - if matched { - sb.WriteString(result) - continue - } - - // Try to read a string literal. - if result, matched, err = string_lit.Parse(pi); err != nil { - return - } - if matched { - sb.WriteString(result) - continue - } - // Also try for a rune literal. - if result, matched, err = rune_lit.Parse(pi); err != nil { - return - } - if matched { - sb.WriteString(result) - continue - } - // Try opener. - if result, matched, err = openBrace.Parse(pi); err != nil { - return - } - if matched { - braceCount++ - sb.WriteString(result) - continue - } - // Try closer. - startOfCloseBrace := pi.Index() - if result, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil { - return - } - if matched { - braceCount-- - if braceCount < 0 { - err = parse.Error("expression: too many closing braces", pi.Position()) - return - } - if braceCount == 0 { - pi.Seek(startOfCloseBrace) - break loop - } - sb.WriteString(result) - continue - } - - // Read anything else. - var c string - c, matched = pi.Take(1) - if !matched { - break loop - } - if rune(c[0]) == 65533 { // Invalid Unicode. - break loop - } - sb.WriteString(c) - } - if braceCount != 0 { - err = parse.Error("expression: unexpected brace count", pi.Position()) - return - } - - return NewExpression(sb.String(), from, pi.Position()), true, nil -} - -// Letters and digits - -var octal_digit = parse.RuneIn("01234567") -var hex_digit = parse.RuneIn("0123456789ABCDEFabcdef") - -// https://go.dev/ref/spec#Rune_literals - -var rune_lit = parse.StringFrom( - parse.Rune('\''), - parse.StringFrom(parse.Until( - parse.Any(unicode_value_rune, byte_value), - parse.Rune('\''), - )), - parse.Rune('\''), -) -var unicode_value_rune = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("'")) - -// byte_value = octal_byte_value | hex_byte_value . -var byte_value = parse.Any(octal_byte_value, hex_byte_value) - -// octal_byte_value = `\` octal_digit octal_digit octal_digit . -var octal_byte_value = parse.StringFrom( - parse.String(`\`), - octal_digit, octal_digit, octal_digit, -) - -// hex_byte_value = `\` "x" hex_digit hex_digit . -var hex_byte_value = parse.StringFrom( - parse.String(`\x`), - hex_digit, hex_digit, -) - -// little_u_value = `\` "u" hex_digit hex_digit hex_digit hex_digit . -var little_u_value = parse.StringFrom( - parse.String(`\u`), - hex_digit, hex_digit, - hex_digit, hex_digit, -) - -// big_u_value = `\` "U" hex_digit hex_digit hex_digit hex_digit -var big_u_value = parse.StringFrom( - parse.String(`\U`), - hex_digit, hex_digit, hex_digit, hex_digit, - hex_digit, hex_digit, hex_digit, hex_digit, -) - -// escaped_char = `\` ( "a" | "b" | "f" | "n" | "r" | "t" | "v" | `\` | "'" | `"` ) . -var escaped_char = parse.StringFrom( - parse.Rune('\\'), - parse.Any( - parse.Rune('a'), - parse.Rune('b'), - parse.Rune('f'), - parse.Rune('n'), - parse.Rune('r'), - parse.Rune('t'), - parse.Rune('v'), - parse.Rune('\\'), - parse.Rune('\''), - parse.Rune('"'), - ), -) - -// https://go.dev/ref/spec#String_literals - -var string_lit = parse.Any(parse.String(`""`), parse.String(`''`), interpreted_string_lit, raw_string_lit) - -var interpreted_string_lit = parse.StringFrom( - parse.Rune('"'), - parse.StringFrom(parse.Until( - parse.Any(unicode_value_interpreted, byte_value), - parse.Rune('"'), - )), - parse.Rune('"'), -) -var unicode_value_interpreted = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("\n\"")) - -var raw_string_lit = parse.StringFrom( - parse.Rune('`'), - parse.StringFrom(parse.Until( - unicode_value_raw, - parse.Rune('`'), - )), - parse.Rune('`'), -) -var unicode_value_raw = parse.Any(little_u_value, big_u_value, escaped_char, parse.RuneNotIn("`")) diff --git a/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go deleted file mode 100644 index 6dd57e8..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/forexpressionparser.go +++ /dev/null @@ -1,57 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -var forExpression parse.Parser[Node] = forExpressionParser{} - -type forExpressionParser struct{} - -func (forExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { - r := &ForExpression{} - start := pi.Index() - - // Strip leading whitespace and look for `for `. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return r, false, err - } - if !peekPrefix(pi, "for ") { - pi.Seek(start) - return r, false, nil - } - - // Parse the Go for expression. - if r.Expression, err = parseGo("for", pi, goexpression.For); err != nil { - return r, true, err - } - - // Eat " {\n". - _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi) - if err != nil { - return r, true, err - } - if !matched { - err = parse.Error("for: "+unterminatedMissingCurly, pi.PositionAt(start)) - return r, true, err - } - - // Node contents. - tnp := newTemplateNodeParser(closeBraceWithOptionalPadding, "for expression closing brace") - var nodes Nodes - if nodes, matched, err = tnp.Parse(pi); err != nil || !matched { - // If we got any nodes, take them, because the LSP might want to use them. - r.Children = nodes.Nodes - return r, true, parse.Error("for: expected nodes, but none were found", pi.Position()) - } - r.Children = nodes.Nodes - - // Read the required closing brace. - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - return r, true, parse.Error("for: "+unterminatedMissingEnd, pi.Position()) - } - - r.Range = NewRange(pi.PositionAt(start), pi.Position()) - return r, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/fuzz.sh b/vendor/github.com/a-h/templ/parser/v2/fuzz.sh deleted file mode 100644 index c74517c..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/fuzz.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -echo Element -go test -fuzz=FuzzElement -fuzztime=120s -echo Script -go test -fuzz=FuzzScript -fuzztime=120s diff --git a/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go b/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go deleted file mode 100644 index 2d58205..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/gocodeparser.go +++ /dev/null @@ -1,60 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -// goCode is the parser used to parse Raw Go code within templates. -// -// goCodeInJavaScript is the same, but handles the case where Go expressions -// are embedded within JavaScript. -// -// The only difference is that goCode normalises whitespace after the -// closing brace pair, whereas goCodeInJavaScript retains all whitespace. -var goCode = getGoCodeParser(true) -var goCodeInJavaScript = getGoCodeParser(false) - -func getGoCodeParser(normalizeWhitespace bool) parse.Parser[Node] { - return parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { - // Check the prefix first. - if _, ok, err = dblOpenBraceWithOptionalPaddingOrNewLine.Parse(pi); err != nil || !ok { - return - } - - // Once we have a prefix, we must have an expression that returns a string, with optional err. - l := pi.Position().Line - r := &GoCode{} - if r.Expression, err = parseGo("go code", pi, goexpression.Expression); err != nil { - return r, false, err - } - - if l != pi.Position().Line { - r.Multiline = true - } - - // Clear any optional whitespace. - _, _, _ = parse.OptionalWhitespace.Parse(pi) - - // }} - if _, ok, err = dblCloseBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("go code: missing close braces", pi.Position()) - return - } - - // Parse trailing whitespace. - ws, _, err := parse.Whitespace.Parse(pi) - if err != nil { - return r, false, err - } - if normalizeWhitespace { - if r.TrailingSpace, err = NewTrailingSpace(ws); err != nil { - return r, false, err - } - } else { - r.TrailingSpace = TrailingSpace(ws) - } - - return r, true, nil - }) -} diff --git a/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go b/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go deleted file mode 100644 index e8b0ec9..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/gocommentparser.go +++ /dev/null @@ -1,66 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var ( - goSingleLineCommentStart = parse.String("//") - goSingleLineCommentEnd = parse.Any(parse.NewLine, parse.EOF[string]()) -) - -type goSingleLineCommentParser struct{} - -var goSingleLineComment = goSingleLineCommentParser{} - -func (p goSingleLineCommentParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - // Comment start. - start := pi.Position() - if _, ok, err = goSingleLineCommentStart.Parse(pi); err != nil || !ok { - return - } - // Once we've got the comment start sequence, parse anything until the end - // sequence as the comment contents. - c := &GoComment{} - if c.Contents, ok, err = parse.StringUntil(goSingleLineCommentEnd).Parse(pi); err != nil || !ok { - err = parse.Error("expected end comment literal '\n' not found", pi.Position()) - return - } - // Return the comment. - c.Multiline = false - c.Range = NewRange(start, pi.Position()) - return c, true, nil -} - -var ( - goMultiLineCommentStart = parse.String("/*") - goMultiLineCommentEnd = parse.String("*/") -) - -type goMultiLineCommentParser struct{} - -var goMultiLineComment = goMultiLineCommentParser{} - -func (p goMultiLineCommentParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - // Comment start. - start := pi.Position() - if _, ok, err = goMultiLineCommentStart.Parse(pi); err != nil || !ok { - return - } - - // Once we've got the comment start sequence, parse anything until the end - // sequence as the comment contents. - c := &GoComment{} - if c.Contents, ok, err = parse.StringUntil(goMultiLineCommentEnd).Parse(pi); err != nil || !ok { - err = parse.Error("expected end comment literal '*/' not found", start) - return - } - // Move past the end element. - _, _, _ = goMultiLineCommentEnd.Parse(pi) - // Return the comment. - c.Multiline = true - c.Range = NewRange(start, pi.Position()) - return c, true, nil -} - -var goComment = parse.Any(goSingleLineComment, goMultiLineComment) diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh b/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh deleted file mode 100644 index 08c800e..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/goexpression/fuzz.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -echo If -go test -fuzz=FuzzIf -fuzztime=120s -echo For -go test -fuzz=FuzzFor -fuzztime=120s -echo Switch -go test -fuzz=FuzzSwitch -fuzztime=120s -echo Case -go test -fuzz=FuzzCaseStandard -fuzztime=120s -echo Default -go test -fuzz=FuzzCaseDefault -fuzztime=120s -echo TemplExpression -go test -fuzz=FuzzTemplExpression -fuzztime=120s -echo Expression -go test -fuzz=FuzzExpression -fuzztime=120s -echo SliceArgs -go test -fuzz=FuzzSliceArgs -fuzztime=120s -echo Funcs -go test -fuzz=FuzzFuncs -fuzztime=120s diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go b/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go deleted file mode 100644 index 6788954..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/goexpression/parse.go +++ /dev/null @@ -1,343 +0,0 @@ -package goexpression - -import ( - "errors" - "fmt" - "go/ast" - "go/parser" - "go/scanner" - "go/token" - "regexp" - "strings" - "unicode" -) - -var ( - ErrContainerFuncNotFound = errors.New("parser error: templ container function not found") - ErrExpectedNodeNotFound = errors.New("parser error: expected node not found") -) - -var defaultRegexp = regexp.MustCompile(`^default\s*:`) - -func Case(content string) (start, end int, err error) { - if !strings.HasPrefix(content, "case ") && !defaultRegexp.MatchString(content) { - return 0, 0, ErrExpectedNodeNotFound - } - prefix := "switch {\n" - src := prefix + content - start, end, err = extract(src, func(body []ast.Stmt) (start, end int, err error) { - sw, ok := body[0].(*ast.SwitchStmt) - if !ok { - return 0, 0, ErrExpectedNodeNotFound - } - if sw.Body == nil || len(sw.Body.List) == 0 { - return 0, 0, ErrExpectedNodeNotFound - } - stmt, ok := sw.Body.List[0].(*ast.CaseClause) - if !ok { - return 0, 0, ErrExpectedNodeNotFound - } - start = int(stmt.Case) - 1 - end = int(stmt.Colon) - return start, end, nil - }) - if err != nil { - return 0, 0, err - } - // Since we added a `switch {` prefix, we need to remove it. - start -= len(prefix) - end -= len(prefix) - return start, end, nil -} - -func If(content string) (start, end int, err error) { - if !strings.HasPrefix(content, "if") { - return 0, 0, ErrExpectedNodeNotFound - } - return extract(content, func(body []ast.Stmt) (start, end int, err error) { - stmt, ok := body[0].(*ast.IfStmt) - if !ok { - return 0, 0, ErrExpectedNodeNotFound - } - start = int(stmt.If) + len("if") - end = latestEnd(start, stmt.Init, stmt.Cond) - return start, end, nil - }) -} - -func For(content string) (start, end int, err error) { - if !strings.HasPrefix(content, "for") { - return 0, 0, ErrExpectedNodeNotFound - } - return extract(content, func(body []ast.Stmt) (start, end int, err error) { - stmt := body[0] - switch stmt := stmt.(type) { - case *ast.ForStmt: - start = int(stmt.For) + len("for") - end = latestEnd(start, stmt.Init, stmt.Cond, stmt.Post) - return start, end, nil - case *ast.RangeStmt: - start = int(stmt.For) + len("for") - end = latestEnd(start, stmt.Key, stmt.Value, stmt.X) - return start, end, nil - } - return 0, 0, ErrExpectedNodeNotFound - }) -} - -func Switch(content string) (start, end int, err error) { - if !strings.HasPrefix(content, "switch") { - return 0, 0, ErrExpectedNodeNotFound - } - return extract(content, func(body []ast.Stmt) (start, end int, err error) { - stmt := body[0] - switch stmt := stmt.(type) { - case *ast.SwitchStmt: - start = int(stmt.Switch) + len("switch") - end = latestEnd(start, stmt.Init, stmt.Tag) - return start, end, nil - case *ast.TypeSwitchStmt: - start = int(stmt.Switch) + len("switch") - end = latestEnd(start, stmt.Init, stmt.Assign) - return start, end, nil - } - return 0, 0, ErrExpectedNodeNotFound - }) -} - -func TemplExpression(src string) (start, end int, err error) { - var s scanner.Scanner - fset := token.NewFileSet() - file := fset.AddFile("", fset.Base(), len(src)) - errorHandler := func(pos token.Position, msg string) { - err = fmt.Errorf("error parsing expression: %v", msg) - } - s.Init(file, []byte(src), errorHandler, scanner.ScanComments) - - // Read chains of identifiers, e.g.: - // components.Variable - // components[0].Variable - // components["name"].Function() - // functionCall(withLots(), func() { return true }) - ep := NewExpressionParser() - for { - pos, tok, lit := s.Scan() - stop, err := ep.Insert(pos, tok, lit) - if err != nil { - return 0, 0, err - } - if stop { - break - } - } - return 0, ep.End, nil -} - -func Expression(src string) (start, end int, err error) { - var s scanner.Scanner - fset := token.NewFileSet() - file := fset.AddFile("", fset.Base(), len(src)) - errorHandler := func(pos token.Position, msg string) { - err = fmt.Errorf("error parsing expression: %v", msg) - } - s.Init(file, []byte(src), errorHandler, scanner.ScanComments) - - // Read chains of identifiers and constants up until RBRACE, e.g.: - // true - // 123.45 == true - // components.Variable - // components[0].Variable - // components["name"].Function() - // functionCall(withLots(), func() { return true }) - // !true - parenDepth := 0 - bracketDepth := 0 - braceDepth := 0 -loop: - for { - pos, tok, lit := s.Scan() - if tok == token.EOF { - break loop - } - switch tok { - case token.LPAREN: // ( - parenDepth++ - case token.RPAREN: // ) - end = int(pos) - parenDepth-- - case token.LBRACK: // [ - bracketDepth++ - case token.RBRACK: // ] - end = int(pos) - bracketDepth-- - case token.LBRACE: // { - braceDepth++ - case token.RBRACE: // } - braceDepth-- - if braceDepth < 0 { - // We've hit the end of the expression. - break loop - } - end = int(pos) - case token.IDENT, token.INT, token.FLOAT, token.IMAG, token.CHAR, token.STRING: - end = int(pos) + len(lit) - 1 - case token.SEMICOLON: - continue - case token.COMMENT: - end = int(pos) + len(lit) - 1 - case token.ILLEGAL: - return 0, 0, fmt.Errorf("illegal token: %v", lit) - default: - end = int(pos) + len(tok.String()) - 1 - } - } - return start, end, nil -} - -func SliceArgs(content string) (expr string, err error) { - prefix := "package main\nvar templ_args = []any{" - src := prefix + content + "}" - - node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) - if node == nil { - return expr, parseErr - } - - var from, to int - inspectFirstNode(node, func(n ast.Node) bool { - decl, ok := n.(*ast.CompositeLit) - if !ok { - return true - } - from = int(decl.Lbrace) - to = int(decl.Rbrace) - 1 - for _, e := range decl.Elts { - to = int(e.End()) - 1 - } - if to > int(decl.Rbrace)-1 { - to = int(decl.Rbrace) - 1 - } - betweenEndAndBrace := src[to : decl.Rbrace-1] - var hasCodeBetweenEndAndBrace bool - for _, r := range betweenEndAndBrace { - if !unicode.IsSpace(r) { - hasCodeBetweenEndAndBrace = true - break - } - } - if hasCodeBetweenEndAndBrace { - to = int(decl.Rbrace) - 1 - } - return false - }) - - return src[from:to], err -} - -// Func returns the Go code up to the opening brace of the function body. -func Func(content string) (name, expr string, err error) { - prefix := "package main\n" - src := prefix + content - - node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) - if node == nil { - return name, expr, parseErr - } - - inspectFirstNode(node, func(n ast.Node) bool { - // Find the first function declaration. - fn, ok := n.(*ast.FuncDecl) - if !ok { - return true - } - start := int(fn.Pos()) + len("func") - end := fn.Type.Params.End() - 1 - if len(src) < int(end) { - err = errors.New("parser error: function identifier") - return false - } - expr = strings.Clone(src[start:end]) - name = fn.Name.Name - return false - }) - - return name, expr, err -} - -func latestEnd(start int, nodes ...ast.Node) (end int) { - end = start - for _, n := range nodes { - if n == nil { - continue - } - if int(n.End())-1 > end { - end = int(n.End()) - 1 - } - } - return end -} - -func inspectFirstNode(node ast.Node, f func(ast.Node) bool) { - var stop bool - ast.Inspect(node, func(n ast.Node) bool { - if stop { - return true - } - if f(n) { - return true - } - stop = true - return false - }) -} - -// Extract a Go expression from the content. -// The Go expression starts at "start" and ends at "end". -// The reader should skip until "length" to pass over the expression and into the next -// logical block. -type Extractor func(body []ast.Stmt) (start, end int, err error) - -func extract(content string, extractor Extractor) (start, end int, err error) { - prefix := "package main\nfunc templ_container() {\n" - src := prefix + content - - node, parseErr := parser.ParseFile(token.NewFileSet(), "", src, parser.AllErrors) - if node == nil { - return 0, 0, parseErr - } - - var found bool - inspectFirstNode(node, func(n ast.Node) bool { - // Find the "templ_container" function. - fn, ok := n.(*ast.FuncDecl) - if !ok { - return true - } - if fn.Name == nil || fn.Name.Name != "templ_container" { - err = ErrContainerFuncNotFound - return false - } - if fn.Body == nil || len(fn.Body.List) == 0 { - err = ErrExpectedNodeNotFound - return false - } - found = true - start, end, err = extractor(fn.Body.List) - return false - }) - if !found { - return 0, 0, ErrExpectedNodeNotFound - } - - start -= len(prefix) - end -= len(prefix) - - if end > len(content) { - end = len(content) - } - if start > end { - start = end - } - - return start, end, err -} diff --git a/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go b/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go deleted file mode 100644 index 82ad94a..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/goexpression/scanner.go +++ /dev/null @@ -1,180 +0,0 @@ -package goexpression - -import ( - "fmt" - "go/token" -) - -type Stack[T any] []T - -func (s *Stack[T]) Push(v T) { - *s = append(*s, v) -} - -func (s *Stack[T]) Pop() (v T) { - if len(*s) == 0 { - return v - } - v = (*s)[len(*s)-1] - *s = (*s)[:len(*s)-1] - return v -} - -func (s *Stack[T]) Peek() (v T) { - if len(*s) == 0 { - return v - } - return (*s)[len(*s)-1] -} - -var goTokenOpenToClose = map[token.Token]token.Token{ - token.LPAREN: token.RPAREN, - token.LBRACE: token.RBRACE, - token.LBRACK: token.RBRACK, -} - -var goTokenCloseToOpen = map[token.Token]token.Token{ - token.RPAREN: token.LPAREN, - token.RBRACE: token.LBRACE, - token.RBRACK: token.LBRACK, -} - -type ErrUnbalanced struct { - Token token.Token -} - -func (e ErrUnbalanced) Error() string { - return fmt.Sprintf("unbalanced '%s'", e.Token) -} - -func NewExpressionParser() *ExpressionParser { - return &ExpressionParser{ - Stack: make(Stack[token.Token], 0), - Previous: token.PERIOD, - Fns: make(Stack[int], 0), - } -} - -type ExpressionParser struct { - Stack Stack[token.Token] - End int - Previous token.Token - Fns Stack[int] // Stack of function depths. -} - -func (ep *ExpressionParser) setEnd(pos token.Pos, tok token.Token, lit string) { - ep.End = int(pos) + len(tokenString(tok, lit)) - 1 -} - -func (ep *ExpressionParser) hasSpaceBeforeCurrentToken(pos token.Pos) bool { - return (int(pos) - 1) > ep.End -} - -func (ep *ExpressionParser) isTopLevel() bool { - return len(ep.Fns) == 0 && len(ep.Stack) == 0 -} - -func (ep *ExpressionParser) Insert( - pos token.Pos, - tok token.Token, - lit string, -) (stop bool, err error) { - defer func() { - ep.Previous = tok - }() - - // If we've reach the end of the file, terminate reading. - if tok == token.EOF { - // If the EOF was reached, but we're not at the top level, we must have an unbalanced expression. - if !ep.isTopLevel() { - return true, ErrUnbalanced{ep.Stack.Pop()} - } - return true, nil - } - - // Handle function literals e.g. func() { fmt.Println("Hello") } - // By pushing the current depth onto the stack, we prevent stopping - // until we've closed the function. - if tok == token.FUNC { - ep.Fns.Push(len(ep.Stack)) - ep.setEnd(pos, tok, lit) - return false, nil - } - // If we're opening a pair, we don't stop until we've closed it. - if _, isOpener := goTokenOpenToClose[tok]; isOpener { - // If we're at an open brace, at the top level, where a space has been used, stop. - if tok == token.LBRACE && ep.isTopLevel() { - // Previous was paren, e.g. () { - if ep.Previous == token.RPAREN { - return true, nil - } - // Previous was ident that isn't a type. - // In `name {`, `name` is considered to be a variable. - // In `name{`, `name` is considered to be a type name. - if ep.Previous == token.IDENT && ep.hasSpaceBeforeCurrentToken(pos) { - return true, nil - } - } - ep.Stack.Push(tok) - ep.setEnd(pos, tok, lit) - return false, nil - } - if opener, isCloser := goTokenCloseToOpen[tok]; isCloser { - if len(ep.Stack) == 0 { - // We've got a close token, but there's nothing to close, so we must be done. - return true, nil - } - actual := ep.Stack.Pop() - if !isCloser { - return false, ErrUnbalanced{tok} - } - if actual != opener { - return false, ErrUnbalanced{tok} - } - if tok == token.RBRACE { - // If we're closing a function, pop the function depth. - if len(ep.Stack) == ep.Fns.Peek() { - ep.Fns.Pop() - } - } - ep.setEnd(pos, tok, lit) - return false, nil - } - // If we're in a function literal slice, or pair, we allow anything until we close it. - if len(ep.Fns) > 0 || len(ep.Stack) > 0 { - ep.setEnd(pos, tok, lit) - return false, nil - } - // We allow an ident to follow a period or a closer. - // e.g. "package.name", "typeName{field: value}.name()". - // or "call().name", "call().name()". - // But not "package .name" or "typeName{field: value} .name()". - if tok == token.IDENT && (ep.Previous == token.PERIOD || isCloser(ep.Previous)) { - if isCloser(ep.Previous) && ep.hasSpaceBeforeCurrentToken(pos) { - // This token starts later than the last ending, which means - // there's a space. - return true, nil - } - ep.setEnd(pos, tok, lit) - return false, nil - } - if tok == token.PERIOD && (ep.Previous == token.IDENT || isCloser(ep.Previous)) { - ep.setEnd(pos, tok, lit) - return false, nil - } - - // No match, so stop. - return true, nil -} - -func tokenString(tok token.Token, lit string) string { - if tok.IsKeyword() || tok.IsOperator() { - return tok.String() - } - return lit -} - -func isCloser(tok token.Token) bool { - _, ok := goTokenCloseToOpen[tok] - return ok -} diff --git a/vendor/github.com/a-h/templ/parser/v2/goparser.go b/vendor/github.com/a-h/templ/parser/v2/goparser.go deleted file mode 100644 index 2441299..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/goparser.go +++ /dev/null @@ -1,70 +0,0 @@ -package parser - -import ( - "fmt" - "strings" - - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -func parseGoFuncDecl(prefix string, pi *parse.Input) (name string, expression Expression, err error) { - prefix = prefix + " " - from := pi.Index() - src, _ := pi.Peek(-1) - src = strings.TrimPrefix(src, prefix) - name, expr, err := goexpression.Func("func " + src) - if err != nil { - return name, expression, parse.Error(fmt.Sprintf("invalid %s declaration: %v", prefix, err.Error()), pi.Position()) - } - pi.Take(len(prefix) + len(expr)) - to := pi.Position() - return name, NewExpression(expr, pi.PositionAt(from+len(prefix)), to), nil -} - -func parseTemplFuncDecl(pi *parse.Input) (name string, expression Expression, err error) { - return parseGoFuncDecl("templ", pi) -} - -func parseCSSFuncDecl(pi *parse.Input) (name string, expression Expression, err error) { - return parseGoFuncDecl("css", pi) -} - -func parseGoSliceArgs(pi *parse.Input) (r Expression, err error) { - from := pi.Position() - src, _ := pi.Peek(-1) - expr, err := goexpression.SliceArgs(src) - if err != nil { - return r, err - } - pi.Take(len(expr)) - to := pi.Position() - return NewExpression(expr, from, to), nil -} - -func peekPrefix(pi *parse.Input, prefixes ...string) bool { - for _, prefix := range prefixes { - pp, ok := pi.Peek(len(prefix)) - if !ok { - continue - } - if prefix == pp { - return true - } - } - return false -} - -type extractor func(content string) (start, end int, err error) - -func parseGo(name string, pi *parse.Input, e extractor) (r Expression, err error) { - from := pi.Index() - src, _ := pi.Peek(-1) - start, end, err := e(src) - if err != nil { - return r, parse.Error(fmt.Sprintf("%s: invalid go expression: %v", name, err.Error()), pi.Position()) - } - expr := src[start:end] - pi.Take(end) - return NewExpression(expr, pi.PositionAt(from+start), pi.PositionAt(from+end)), nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go b/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go deleted file mode 100644 index 6f80a79..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/htmlcommentparser.go +++ /dev/null @@ -1,40 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var htmlCommentStart = parse.String("<!--") -var htmlCommentEnd = parse.String("--") - -type htmlCommentParser struct { -} - -var htmlComment = htmlCommentParser{} - -func (p htmlCommentParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - // Comment start. - start := pi.Position() - if _, ok, err = htmlCommentStart.Parse(pi); err != nil || !ok { - return - } - - // Once we've got the comment start sequence, parse anything until the end - // sequence as the comment contents. - c := &HTMLComment{} - if c.Contents, ok, err = parse.StringUntil(htmlCommentEnd).Parse(pi); err != nil || !ok { - err = parse.Error("expected end comment literal '-->' not found", start) - return - } - // Cut the end element. - _, _, _ = htmlCommentEnd.Parse(pi) - - // Cut the gt. - if _, ok, err = gt.Parse(pi); err != nil || !ok { - err = parse.Error("comment contains invalid sequence '--'", pi.Position()) - return - } - - c.Range = NewRange(start, pi.Position()) - return c, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go deleted file mode 100644 index 7e51b78..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/ifexpressionparser.go +++ /dev/null @@ -1,144 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -var ifExpression ifExpressionParser - -var untilElseIfElseOrEnd = parse.Any(StripType(elseIfExpression), StripType(elseExpression), StripType(closeBraceWithOptionalPadding)) - -type ifExpressionParser struct{} - -// Parsers return: -// as much of a Node as they can -// matched=true if the start of a complete, incomplete or invalid node was found, e.g. "if " or "{ " -// err if an error occurred or a node was started and not completed - -func (ifExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { - start := pi.Index() - - if !peekPrefix(pi, "if ") { - return nil, false, nil - } - - // Parse the Go if expression using the Go parser. - r := &IfExpression{} - if r.Expression, err = parseGo("if", pi, goexpression.If); err != nil { - return r, true, err - } - - // Eat " {\n". - if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !matched { - err = parse.Error("if: "+unterminatedMissingCurly, pi.PositionAt(start)) - return r, true, err - } - - // Once we've had the start of an if block, we must conclude the block. - - // Read the 'Then' nodes. - // If there's no match, there's a problem in the template nodes. - np := newTemplateNodeParser(untilElseIfElseOrEnd, "else expression or closing brace") - var thenNodes Nodes - if thenNodes, matched, err = np.Parse(pi); err != nil || !matched { - // Populate the nodes anyway, so that the LSP can use them. - r.Then = thenNodes.Nodes - return r, true, parse.Error("if: expected nodes, but none were found", pi.Position()) - } - r.Then = thenNodes.Nodes - - // Read the optional 'ElseIf' Nodes. - if r.ElseIfs, _, err = parse.ZeroOrMore(elseIfExpression).Parse(pi); err != nil { - return r, true, err - } - - // Read the optional 'Else' Nodes. - var elseNodes Nodes - if elseNodes, _, err = elseExpression.Parse(pi); err != nil { - // Populate the nodes anyway, so that the LSP can use them. - r.Else = elseNodes.Nodes - return r, true, err - } - r.Else = elseNodes.Nodes - - // Read the required closing brace. - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - return r, true, parse.Error("if: expected closing brace", pi.Position()) - } - - r.Range = NewRange(pi.PositionAt(start), pi.Position()) - return r, true, nil -} - -var elseIfExpression parse.Parser[ElseIfExpression] = elseIfExpressionParser{} - -type elseIfExpressionParser struct{} - -func (elseIfExpressionParser) Parse(pi *parse.Input) (r ElseIfExpression, matched bool, err error) { - start := pi.Index() - - // Check the prefix first. - if _, matched, err = parse.All(parse.OptionalWhitespace, closeBrace, parse.OptionalWhitespace, parse.String("else if")).Parse(pi); err != nil || !matched { - pi.Seek(start) - return - } - - // Rewind to the start of the `if` statement. - pi.Seek(pi.Index() - 2) - // Parse the Go if expression. - if r.Expression, err = parseGo("else if", pi, goexpression.If); err != nil { - return r, false, err - } - - // Eat " {\n". - if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !matched { - err = parse.Error("else if: "+unterminatedMissingCurly, pi.PositionAt(start)) - return - } - - // Once we've had the start of an if block, we must conclude the block. - - // Read the 'Then' nodes. - // If there's no match, there's a problem in the template nodes. - np := newTemplateNodeParser(untilElseIfElseOrEnd, "else expression or closing brace") - var thenNodes Nodes - if thenNodes, matched, err = np.Parse(pi); err != nil || !matched { - err = parse.Error("if: expected nodes, but none were found", pi.Position()) - return - } - r.Then = thenNodes.Nodes - - r.Range = NewRange(pi.PositionAt(start), pi.Position()) - return r, true, nil -} - -var endElseParser = parse.All( - parse.Rune('}'), - parse.OptionalWhitespace, - parse.String("else"), - parse.OptionalWhitespace, - parse.Rune('{'), - parse.OptionalWhitespace) - -var elseExpression parse.Parser[Nodes] = elseExpressionParser{} - -type elseExpressionParser struct{} - -func (elseExpressionParser) Parse(in *parse.Input) (r Nodes, matched bool, err error) { - start := in.Index() - - // } else { - if _, matched, err = endElseParser.Parse(in); err != nil || !matched { - in.Seek(start) - return - } - - // Else contents - if r, matched, err = newTemplateNodeParser(closeBraceWithOptionalPadding, "else expression closing brace").Parse(in); err != nil || !matched { - in.Seek(start) - return - } - - return r, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/packageparser.go b/vendor/github.com/a-h/templ/parser/v2/packageparser.go deleted file mode 100644 index 98e38a6..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/packageparser.go +++ /dev/null @@ -1,32 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -// Package. -var pkg = parse.Func(func(pi *parse.Input) (pkg Package, ok bool, err error) { - start := pi.Position() - - // Package prefix. - if _, ok, err = parse.String("package ").Parse(pi); err != nil || !ok { - return - } - - // Once we have the prefix, it's an expression until the end of the line. - var exp string - if exp, ok, err = stringUntilNewLine.Parse(pi); err != nil || !ok { - err = parse.Error("package literal not terminated", pi.Position()) - return - } - if len(exp) == 0 { - ok = false - err = parse.Error("package literal not terminated", start) - return - } - - // Success! - pkg.Expression = NewExpression("package "+exp, start, pi.Position()) - - return pkg, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/parser.go b/vendor/github.com/a-h/templ/parser/v2/parser.go deleted file mode 100644 index f805542..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/parser.go +++ /dev/null @@ -1,55 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -// ) { -var expressionFuncEnd = parse.All(parse.Rune(')'), openBraceWithOptionalPadding) - -// Template - -var template = parse.Func(func(pi *parse.Input) (r *HTMLTemplate, matched bool, err error) { - start := pi.Position() - - // templ FuncName(p Person, other Other) { - var te templateExpression - if te, matched, err = templateExpressionParser.Parse(pi); err != nil || !matched { - return r, matched, err - } - r = &HTMLTemplate{ - Expression: te.Expression, - } - defer func() { - r.Range = NewRange(start, pi.Position()) - }() - - // Once we're in a template, we should expect some template whitespace, if/switch/for, - // or node string expressions etc. - var nodes Nodes - nodes, matched, err = newTemplateNodeParser(closeBraceWithOptionalPadding, "template closing brace").Parse(pi) - if err != nil { - // The LSP wants as many nodes as possible, so even though there was an error, - // we probably have some valid nodes that the LSP can use. - r.Children = nodes.Nodes - return r, true, err - } - if !matched { - return r, true, parse.Error("templ: expected nodes in templ body, but found none", pi.Position()) - } - r.Children = nodes.Nodes - - // Eat any whitespace. - _, _, err = parse.OptionalWhitespace.Parse(pi) - if err != nil { - return - } - - // Try for } - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - err = parse.Error("template: missing closing brace", pi.Position()) - return - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/raw.go b/vendor/github.com/a-h/templ/parser/v2/raw.go deleted file mode 100644 index c18c771..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/raw.go +++ /dev/null @@ -1,67 +0,0 @@ -package parser - -import ( - "fmt" - - "github.com/a-h/parse" -) - -var styleElement = rawElementParser{ - name: "style", -} - -type rawElementParser struct { - name string -} - -func (p rawElementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - start := pi.Index() - - // < - if _, ok, err = lt.Parse(pi); err != nil || !ok { - return - } - - // Element name. - e := &RawElement{} - if e.Name, ok, err = elementNameParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - if e.Name != p.name { - pi.Seek(start) - ok = false - return - } - - if e.Attributes, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Optional whitespace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - pi.Seek(start) - return - } - - // > - if _, ok, err = gt.Parse(pi); err != nil || !ok { - pi.Seek(start) - return - } - - // Once we've got an open tag, parse anything until the end tag as the tag contents. - // It's going to be rendered out raw. - end := parse.All(parse.String("</"), parse.String(p.name), parse.String(">")) - if e.Contents, ok, err = parse.StringUntil(end).Parse(pi); err != nil || !ok { - err = parse.Error(fmt.Sprintf("<%s>: expected end tag not present", e.Name), pi.Position()) - return - } - // Cut the end element. - _, _, _ = end.Parse(pi) - - e.Range = NewRange(pi.PositionAt(start), pi.Position()) - return e, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/scriptparser.go b/vendor/github.com/a-h/templ/parser/v2/scriptparser.go deleted file mode 100644 index 68284f8..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/scriptparser.go +++ /dev/null @@ -1,335 +0,0 @@ -package parser - -import ( - "strings" - - "github.com/a-h/parse" -) - -var scriptElement = scriptElementParser{} - -type jsQuote string - -const ( - jsQuoteNone jsQuote = "" - jsQuoteSingle jsQuote = `'` - jsQuoteDouble jsQuote = `"` - jsQuoteBacktick jsQuote = "`" -) - -type scriptElementParser struct{} - -func (p scriptElementParser) Parse(pi *parse.Input) (n Node, ok bool, err error) { - start := pi.Index() - - // < - if _, ok, err = lt.Parse(pi); err != nil || !ok { - return - } - - // Element name. - e := &ScriptElement{} - var name string - if name, ok, err = elementNameParser.Parse(pi); err != nil || !ok { - pi.Seek(start) - return n, false, err - } - - if name != "script" { - pi.Seek(start) - return n, false, nil - } - - if e.Attributes, ok, err = (attributesParser{}).Parse(pi); err != nil || !ok { - pi.Seek(start) - return n, false, err - } - - // Optional whitespace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - pi.Seek(start) - return n, false, err - } - - // > - if _, ok, err = gt.Parse(pi); err != nil || !ok { - pi.Seek(start) - return n, false, parse.Error("<script>: unclosed element - missing '>'", pi.Position()) - } - - // If there's a type attribute and it's not a JS attribute (e.g. text/javascript), we need to parse the contents as raw text. - if !hasJavaScriptType(e.Attributes) { - var contents string - if contents, ok, err = parse.StringUntil(jsEndTag).Parse(pi); err != nil || !ok { - return e, true, parse.Error("<script>: expected end tag not present", pi.Position()) - } - e.Contents = append(e.Contents, NewScriptContentsScriptCode(contents)) - - // Cut the end element. - _, _, _ = jsEndTag.Parse(pi) - - return e, true, nil - } - - // Parse the contents, we should get script text or Go expressions up until the closing tag. - var sb strings.Builder - var stringLiteralDelimiter jsQuote - -loop: - for { - // Read and decide whether we're we've hit a: - // - {{ - Start of a Go expression, read the contents with the `goCode` function. - // - </script> - End of the script, break out of the loop. - // - ' - Start of a single quoted string. - // - " - Start of a double quoted string. - // - ` - Start of a backtick quoted string. - // - // - Start of a single line comment - can read to the end of the line without parsing. - // - /* - Start of a multi-line comment - can read to the end of the comment without parsing. - // - \ - Start of an escape sequence, we can just take the value. - // - Anything else - Add it to the script. - - _, ok, err = jsEndTag.Parse(pi) - if err != nil { - return nil, false, err - } - if ok { - // We've reached the end of the script. - break loop - } - - _, ok, err = endTagStart.Parse(pi) - if err != nil { - return nil, false, err - } - if ok { - return nil, false, parse.Error("<script>: invalid end tag, expected </script> not found", pi.Position()) - } - - // Try for a Go code expression, i.e. {{ goCode }}. - code, ok, err := goCodeInJavaScript.Parse(pi) - if err != nil { - return nil, false, err - } - if ok { - e.Contents = append(e.Contents, NewScriptContentsGo(code.(*GoCode), stringLiteralDelimiter != jsQuoteNone)) - continue loop - } - - // Try for a comment. - comment, ok, err := jsComment.Parse(pi) - if err != nil { - return nil, false, err - } - if ok { - e.Contents = append(e.Contents, NewScriptContentsScriptCode(comment)) - continue loop - } - - // Read JavaScript characters. - charLoop: - for { - before := pi.Index() - - // If we're outside of a string literal, check for a regexp literal. - // Check for a regular expression literal. - if stringLiteralDelimiter == jsQuoteNone { - r, ok, err := regexpLiteral.Parse(pi) - if err != nil { - return nil, false, err - } - if ok { - sb.WriteString(r) - continue charLoop - } - } - - // Check for EOF. - if _, ok, _ = parse.EOF[string]().Parse(pi); ok { - return nil, false, parse.Error("script: unclosed <script> element", pi.Position()) - } - - // Check for a character. - c, ok, err := jsCharacter.Parse(pi) - if err != nil { - return nil, false, err - } - if !ok { - return nil, false, parse.Error("script: expected to parse a character, but didn't", pi.Position()) - } - if c == string(jsQuoteDouble) || c == string(jsQuoteSingle) || c == string(jsQuoteBacktick) { - // Start or exit a string literal. - if stringLiteralDelimiter == jsQuoteNone { - stringLiteralDelimiter = jsQuote(c) - } else if stringLiteralDelimiter == jsQuote(c) { - stringLiteralDelimiter = jsQuoteNone - } - } - - peeked, peekOK := pi.Peek(1) - isEOF := !peekOK - peeked = c + peeked - breakForGo := peeked == "{{" - breakForHTML := stringLiteralDelimiter == jsQuoteNone && peeked == "</" - breakForComment := stringLiteralDelimiter == jsQuoteNone && (peeked == "//" || peeked == "/*") - if isEOF || breakForGo || breakForHTML || breakForComment { - if sb.Len() > 0 { - e.Contents = append(e.Contents, NewScriptContentsScriptCode(sb.String())) - sb.Reset() - } - if isEOF { - break loop - } - pi.Seek(before) - continue loop - } - - sb.WriteString(c) - } - } - - e.Range = NewRange(pi.PositionAt(start), pi.Position()) - return e, true, nil -} - -var javaScriptTypeAttributeValues = []string{ - "", // If the type is not set, it is JavaScript. - "text/javascript", - "javascript", // Obsolete, but still used. - "module", -} - -func hasJavaScriptType(attrs []Attribute) bool { - for _, attr := range attrs { - ca, isCA := attr.(*ConstantAttribute) - if !isCA { - continue - } - caKey, isCAKey := ca.Key.(ConstantAttributeKey) - if !isCAKey { - continue - } - if !strings.EqualFold(caKey.Name, "type") { - continue - } - for _, v := range javaScriptTypeAttributeValues { - if strings.EqualFold(ca.Value, v) { - return true - } - } - // If there's a type attribute but the value doesn't match any - // known JavaScript type, it's not JavaScript. - return false - } - // If there's no type attribute, it's JavaScript. - return true -} - -var ( - jsEndTag = parse.String("</script>") - endTagStart = parse.String("</") -) - -var jsCharacter = parse.Any(jsEscapedCharacter, parse.AnyRune) - -// \uXXXX Unicode code point escape '\u0061' = 'a' -var ( - hexDigit = parse.Any(parse.ZeroToNine, parse.RuneIn("abcdef"), parse.RuneIn("ABCDEF")) - jsUnicodeEscape = parse.StringFrom(parse.String("\\u"), hexDigit, hexDigit, hexDigit, hexDigit) -) - -// \u{X...} ES6+ extended Unicode escape '\u{1F600}' = '😀' -var jsExtendedUnicodeEscape = parse.StringFrom(parse.String("\\u{"), hexDigit, parse.StringFrom(parse.AtLeast(1, parse.ZeroOrMore(hexDigit))), parse.String("}")) - -// \xXX Hex code (2-digit) '\x41' = 'A' -var jsHexEscape = parse.StringFrom(parse.String("\\x"), hexDigit, hexDigit) - -// \x Backslash escape '\\' = '\' -var jsBackslashEscape = parse.StringFrom(parse.String("\\"), parse.AnyRune) - -// All escapes. -var jsEscapedCharacter = parse.Any(jsBackslashEscape, jsUnicodeEscape, jsHexEscape, jsExtendedUnicodeEscape) - -var jsComment = parse.Any(jsSingleLineComment, jsMultiLineComment) - -var ( - jsStartSingleLineComment = parse.String("//") - jsEndOfSingleLineComment = parse.StringFrom(parse.Or(parse.NewLine, parse.EOF[string]())) - jsSingleLineComment = parse.StringFrom(jsStartSingleLineComment, parse.StringUntil(jsEndOfSingleLineComment), jsEndOfSingleLineComment) -) - -var ( - jsStartMultiLineComment = parse.String("/*") - jsEndOfMultiLineComment = parse.StringFrom(parse.Or(parse.String("*/"), parse.EOF[string]())) - jsMultiLineComment = parse.StringFrom(jsStartMultiLineComment, parse.StringUntil(jsEndOfMultiLineComment), jsEndOfMultiLineComment, parse.OptionalWhitespace) -) - -var regexpLiteral = parse.Func(func(in *parse.Input) (regexp string, ok bool, err error) { - startIndex := in.Index() - - // Take the initial '/'. - s, ok := in.Take(1) - if !ok || s != "/" { - in.Seek(startIndex) - return "", false, nil - } - // Peek the next char. If it's also a '/', then this is not a regex literal, but the start of a comment. - p, ok := in.Peek(1) - if !ok || p == "/" { - in.Seek(startIndex) - return "", false, nil - } - var literal strings.Builder - literal.WriteString(s) - - var inClass, escaped bool - - for { - s, ok := in.Take(1) - if !ok { - // Restore position if no closing '/'. - in.Seek(startIndex) - return "", false, nil - } - - literal.WriteString(s) - - if escaped { - escaped = false - continue - } - - switch s { - case "\n", "\r": - // Newline in a regex is not allowed, so we restore the position and return false. - in.Seek(startIndex) - return "", false, nil - case "\\": - escaped = true - case "[": - inClass = true - case "]": - inClass = false - case "/": - if !inClass { - // We've reached the end of the regex, but there may be flags after it. - // Read flags until we hit a non-flag character. - flags, ok, err := regexpFlags.Parse(in) - if err != nil { - return "", false, err - } - if ok { - literal.WriteString(flags) - } - output := literal.String() - if strings.Contains(output, "{{") && strings.Contains(output, "}}") { - // If the regex contains a Go expression, don't treat it as a regex literal. - in.Seek(startIndex) - return "", false, nil - } - return output, true, nil - } - } - } -}) - -var regexpFlags = parse.StringFrom(parse.Repeat(0, 5, parse.RuneIn("gimuy"))) diff --git a/vendor/github.com/a-h/templ/parser/v2/scripttemplateparser.go b/vendor/github.com/a-h/templ/parser/v2/scripttemplateparser.go deleted file mode 100644 index 957bc2d..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/scripttemplateparser.go +++ /dev/null @@ -1,91 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var scriptTemplateParser = parse.Func(func(pi *parse.Input) (r *ScriptTemplate, ok bool, err error) { - start := pi.Position() - - // Parse the name. - var se scriptExpression - if se, ok, err = scriptExpressionParser.Parse(pi); err != nil || !ok { - pi.Seek(start.Index) - return - } - r = &ScriptTemplate{ - Name: se.Name, - Parameters: se.Parameters, - } - defer func() { - r.Range = NewRange(start, pi.Position()) - }() - - // Read code expression. - var e Expression - if e, ok, err = exp.Parse(pi); err != nil || !ok { - pi.Seek(start.Index) - return - } - r.Value = e.Value - - // Try for } - if _, ok, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !ok { - err = parse.Error("script template: missing closing brace", pi.Position()) - return - } - - return r, true, nil -}) - -// script Func() { -type scriptExpression struct { - Name Expression - Parameters Expression -} - -var scriptExpressionNameParser = ExpressionOf(parse.StringFrom( - parse.Letter, - parse.StringFrom(parse.AtMost(1000, parse.Any(parse.Letter, parse.ZeroToNine))), -)) - -var scriptExpressionParser = parse.Func(func(pi *parse.Input) (r scriptExpression, ok bool, err error) { - // Check the prefix first. - if _, ok, err = parse.String("script ").Parse(pi); err != nil || !ok { - return - } - - // Once we have the prefix, we must have a name and parameters. - // Read the name of the function. - if r.Name, ok, err = scriptExpressionNameParser.Parse(pi); err != nil || !ok { - err = parse.Error("script expression: invalid name", pi.Position()) - return - } - - // Eat the open bracket. - if _, ok, err = openBracket.Parse(pi); err != nil || !ok { - err = parse.Error("script expression: parameters missing open bracket", pi.Position()) - return - } - - // Read the parameters. - // p Person, other Other, t thing.Thing) - if r.Parameters, ok, err = ExpressionOf(parse.StringUntil(closeBracket)).Parse(pi); err != nil || !ok { - err = parse.Error("script expression: parameters missing close bracket", pi.Position()) - return - } - - // Eat ") {". - if _, ok, err = expressionFuncEnd.Parse(pi); err != nil || !ok { - err = parse.Error("script expression: unterminated (missing ') {')", pi.Position()) - return - } - - // Expect a newline. - if _, ok, err = parse.NewLine.Parse(pi); err != nil || !ok { - err = parse.Error("script expression: missing terminating newline", pi.Position()) - return - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/sourcemap.go b/vendor/github.com/a-h/templ/parser/v2/sourcemap.go deleted file mode 100644 index ef259cc..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/sourcemap.go +++ /dev/null @@ -1,134 +0,0 @@ -package parser - -import ( - "strings" - "unicode/utf8" -) - -// NewSourceMap creates a new lookup to map templ source code to items in the -// parsed template. -func NewSourceMap() *SourceMap { - return &SourceMap{ - SourceLinesToTarget: make(map[uint32]map[uint32]Position), - TargetLinesToSource: make(map[uint32]map[uint32]Position), - SourceSymbolRangeToTarget: make(map[uint32]map[uint32]Range), - TargetSymbolRangeToSource: make(map[uint32]map[uint32]Range), - } -} - -type SourceMap struct { - Expressions []string - SourceLinesToTarget map[uint32]map[uint32]Position - TargetLinesToSource map[uint32]map[uint32]Position - SourceSymbolRangeToTarget map[uint32]map[uint32]Range - TargetSymbolRangeToSource map[uint32]map[uint32]Range -} - -func (sm *SourceMap) AddSymbolRange(src Range, tgt Range) { - sm.SourceSymbolRangeToTarget[src.From.Line] = make(map[uint32]Range) - sm.SourceSymbolRangeToTarget[src.From.Line][src.From.Col] = tgt - sm.TargetSymbolRangeToSource[tgt.From.Line] = make(map[uint32]Range) - sm.TargetSymbolRangeToSource[tgt.From.Line][tgt.From.Col] = src -} - -func (sm *SourceMap) SymbolTargetRangeFromSource(line, col uint32) (tgt Range, ok bool) { - lm, ok := sm.SourceSymbolRangeToTarget[line] - if !ok { - return - } - tgt, ok = lm[col] - return -} - -func (sm *SourceMap) SymbolSourceRangeFromTarget(line, col uint32) (src Range, ok bool) { - lm, ok := sm.TargetSymbolRangeToSource[line] - if !ok { - return - } - src, ok = lm[col] - return -} - -// Add an item to the lookup. -func (sm *SourceMap) Add(src Expression, tgt Range) (updatedFrom Position) { - sm.Expressions = append(sm.Expressions, src.Value) - srcIndex := src.Range.From.Index - tgtIndex := tgt.From.Index - - lines := strings.Split(src.Value, "\n") - for lineIndex, line := range lines { - srcLine := src.Range.From.Line + uint32(lineIndex) - tgtLine := tgt.From.Line + uint32(lineIndex) - - var srcCol, tgtCol uint32 - if lineIndex == 0 { - // First line can have an offset. - srcCol += src.Range.From.Col - tgtCol += tgt.From.Col - } - - // Process the cols. - for _, r := range line { - if _, ok := sm.SourceLinesToTarget[srcLine]; !ok { - sm.SourceLinesToTarget[srcLine] = make(map[uint32]Position) - } - sm.SourceLinesToTarget[srcLine][srcCol] = NewPosition(tgtIndex, tgtLine, tgtCol) - - if _, ok := sm.TargetLinesToSource[tgtLine]; !ok { - sm.TargetLinesToSource[tgtLine] = make(map[uint32]Position) - } - sm.TargetLinesToSource[tgtLine][tgtCol] = NewPosition(srcIndex, srcLine, srcCol) - - // Ignore invalid runes. - rlen := utf8.RuneLen(r) - if rlen < 0 { - rlen = 1 - } - srcCol += uint32(rlen) - tgtCol += uint32(rlen) - srcIndex += int64(rlen) - tgtIndex += int64(rlen) - } - - // LSPs include the newline char as a col. - if _, ok := sm.SourceLinesToTarget[srcLine]; !ok { - sm.SourceLinesToTarget[srcLine] = make(map[uint32]Position) - } - sm.SourceLinesToTarget[srcLine][srcCol] = NewPosition(tgtIndex, tgtLine, tgtCol) - - if _, ok := sm.TargetLinesToSource[tgtLine]; !ok { - sm.TargetLinesToSource[tgtLine] = make(map[uint32]Position) - } - sm.TargetLinesToSource[tgtLine][tgtCol] = NewPosition(srcIndex, srcLine, srcCol) - - srcIndex++ - tgtIndex++ - } - return src.Range.From -} - -// TargetPositionFromSource looks up the target position using the source position. -func (sm *SourceMap) TargetPositionFromSource(line, col uint32) (tgt Position, ok bool) { - lm, ok := sm.SourceLinesToTarget[line] - if !ok { - return - } - tgt, ok = lm[col] - return -} - -// SourcePositionFromTarget looks the source position using the target position. -// If a source exists on the line but not the col, the function will search backwards. -func (sm *SourceMap) SourcePositionFromTarget(line, col uint32) (src Position, ok bool) { - lm, ok := sm.TargetLinesToSource[line] - if !ok { - return - } - for { - src, ok = lm[col] - if ok || col == 0 { - return - } - col-- - } -} diff --git a/vendor/github.com/a-h/templ/parser/v2/stringexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/stringexpressionparser.go deleted file mode 100644 index 02f7256..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/stringexpressionparser.go +++ /dev/null @@ -1,40 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" -) - -var stringExpression = parse.Func(func(pi *parse.Input) (n Node, matched bool, err error) { - // Check the prefix first. - if _, matched, err = parse.Or(parse.String("{ "), parse.String("{")).Parse(pi); err != nil || !matched { - return - } - - // Once we have a prefix, we must have an expression that returns a string, with optional err. - r := &StringExpression{} - if r.Expression, err = parseGoSliceArgs(pi); err != nil { - // We return true because we should have completed the string expression, but didn't. - // That means we found a node, but the node is invalid (has an error). - return r, true, err - } - - // Clear any optional whitespace. - _, _, _ = parse.OptionalWhitespace.Parse(pi) - - // } - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - return r, true, parse.Error("string expression: missing close brace", pi.Position()) - } - - // Parse trailing whitespace. - ws, _, err := parse.Whitespace.Parse(pi) - if err != nil { - return r, true, err - } - r.TrailingSpace, err = NewTrailingSpace(ws) - if err != nil { - return r, true, err - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/structure.go b/vendor/github.com/a-h/templ/parser/v2/structure.go deleted file mode 100644 index 839ccbf..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/structure.go +++ /dev/null @@ -1,43 +0,0 @@ -package parser - -// TemplateFileNodes are the top level nodes of a templ file. -var ( - // css name() { ... } - _ TemplateFileNode = (*CSSTemplate)(nil) - // templ name() { ... } - _ TemplateFileNode = (*HTMLTemplate)(nil) - // script name() { ... } - _ TemplateFileNode = (*ScriptTemplate)(nil) - // Go code within a templ file. - _ TemplateFileNode = (*TemplateFileGoExpression)(nil) -) - -// Nodes are all the nodes you can find in a `templ` component. -var ( - _ Node = (*Text)(nil) - _ Node = (*Element)(nil) - _ Node = (*ScriptElement)(nil) - _ Node = (*RawElement)(nil) - _ Node = (*GoComment)(nil) - _ Node = (*HTMLComment)(nil) - _ Node = (*CallTemplateExpression)(nil) - _ Node = (*TemplElementExpression)(nil) - _ Node = (*ChildrenExpression)(nil) - _ Node = (*IfExpression)(nil) - _ Node = (*SwitchExpression)(nil) - _ Node = (*ForExpression)(nil) - _ Node = (*StringExpression)(nil) - _ Node = (*GoCode)(nil) - _ Node = (*Whitespace)(nil) - _ Node = (*DocType)(nil) -) - -// Element nodes can have the following attributes. -var ( - _ Attribute = (*BoolConstantAttribute)(nil) - _ Attribute = (*ConstantAttribute)(nil) - _ Attribute = (*BoolExpressionAttribute)(nil) - _ Attribute = (*ExpressionAttribute)(nil) - _ Attribute = (*SpreadAttributes)(nil) - _ Attribute = (*ConditionalAttribute)(nil) -) diff --git a/vendor/github.com/a-h/templ/parser/v2/switchexpressionparser.go b/vendor/github.com/a-h/templ/parser/v2/switchexpressionparser.go deleted file mode 100644 index b62d39e..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/switchexpressionparser.go +++ /dev/null @@ -1,114 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -var switchExpression parse.Parser[Node] = switchExpressionParser{} - -type switchExpressionParser struct{} - -func (switchExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { - start := pi.Index() - - // Check the prefix first. - if !peekPrefix(pi, "switch ") { - pi.Seek(start) - return n, false, nil - } - - // Parse the Go switch expression. - r := &SwitchExpression{} - if r.Expression, err = parseGo("switch", pi, goexpression.Switch); err != nil { - return r, true, err - } - - // Eat " {\n". - if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.NewLine).Parse(pi); err != nil || !matched { - err = parse.Error("switch: "+unterminatedMissingCurly, pi.PositionAt(start)) - return r, true, err - } - - // Once we've had the start of a switch block, we must conclude the block. - - // Read the optional 'case' nodes. - for { - var ce CaseExpression - ce, matched, err = caseExpressionParser.Parse(pi) - if err != nil { - // Capture the case for the LSP. - r.Cases = append(r.Cases, ce) - return r, true, err - } - if !matched { - break - } - r.Cases = append(r.Cases, ce) - } - - // Optional whitespace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return r, false, err - } - - // Read the required closing brace. - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - err = parse.Error("switch: "+unterminatedMissingEnd, pi.Position()) - return r, true, err - } - - r.Range = NewRange(pi.PositionAt(start), pi.Position()) - return r, true, nil -} - -var caseExpressionStartParser = parse.Func(func(pi *parse.Input) (r Expression, matched bool, err error) { - start := pi.Index() - - // Optional whitespace. - if _, _, err = parse.OptionalWhitespace.Parse(pi); err != nil { - return r, false, err - } - - // Strip leading whitespace and look for `case ` or `default`. - if !peekPrefix(pi, "case ", "default") { - pi.Seek(start) - return r, false, nil - } - // Parse the Go expression. - if r, err = parseGo("case", pi, goexpression.Case); err != nil { - return r, true, err - } - - // Eat terminating newline. - _, _, _ = parse.ZeroOrMore(parse.String(" ")).Parse(pi) - _, _, _ = parse.NewLine.Parse(pi) - - return r, true, nil -}) - -var untilNextCaseOrEnd = parse.Any(StripType(caseExpressionStartParser), StripType(closeBraceWithOptionalPadding)) - -var caseExpressionParser = parse.Func(func(pi *parse.Input) (r CaseExpression, matched bool, err error) { - if r.Expression, matched, err = caseExpressionStartParser.Parse(pi); err != nil || !matched { - return r, matched, err - } - - // Read until the next case statement, default, or end of the block. - pr := newTemplateNodeParser(untilNextCaseOrEnd, "closing brace or case expression") - var nodes Nodes - if nodes, matched, err = pr.Parse(pi); err != nil || !matched { - // Populate the nodes anyway, so that the LSP can use them. - r.Children = nodes.Nodes - err = parse.Error("case: expected nodes, but none were found", pi.Position()) - return r, true, err - } - r.Children = nodes.Nodes - - // Optional whitespace. - if _, matched, err = parse.OptionalWhitespace.Parse(pi); err != nil || !matched { - return r, true, err - } - - return r, true, nil -}) diff --git a/vendor/github.com/a-h/templ/parser/v2/templatefile.go b/vendor/github.com/a-h/templ/parser/v2/templatefile.go deleted file mode 100644 index 50da577..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/templatefile.go +++ /dev/null @@ -1,195 +0,0 @@ -package parser - -import ( - "errors" - "os" - "path/filepath" - "strings" - "unicode" - - "github.com/a-h/parse" -) - -func Parse(fileName string) (*TemplateFile, error) { - fc, err := os.ReadFile(fileName) - if err != nil { - return nil, err - } - return ParseString(string(fc)) -} - -func getDefaultPackageName(fileName string) (pkg string) { - parent := filepath.Base(filepath.Dir(fileName)) - if !isGoIdentifier(parent) { - return "main" - } - return parent -} - -func isGoIdentifier(s string) bool { - if len(s) == 0 { - return false - } - for i, r := range s { - if unicode.IsLetter(r) || r == '_' { - continue - } - if i > 0 && unicode.IsDigit(r) { - continue - } - return false - } - return true -} - -func ParseString(template string) (*TemplateFile, error) { - tf, matched, err := NewTemplateFileParser("main").Parse(parse.NewInput(template)) - if err != nil { - return tf, err - } - if !matched { - err = ErrTemplateNotFound - } - return tf, err -} - -// NewTemplateFileParser creates a new TemplateFileParser. -func NewTemplateFileParser(pkg string) TemplateFileParser { - return TemplateFileParser{ - DefaultPackage: pkg, - } -} - -var ErrLegacyFileFormat = errors.New("legacy file format - run templ migrate") -var ErrTemplateNotFound = errors.New("template not found") - -type TemplateFileParser struct { - DefaultPackage string -} - -var legacyPackageParser = parse.String("{% package") - -func (p TemplateFileParser) Parse(pi *parse.Input) (tf *TemplateFile, matched bool, err error) { - // If we're parsing a legacy file, complain that migration needs to happen. - _, matched, err = legacyPackageParser.Parse(pi) - if err != nil { - return - } - if matched { - return tf, false, ErrLegacyFileFormat - } - - // Read until the package. - tf = &TemplateFile{} - for { - // Package. - // package name - from := pi.Position() - tf.Package, matched, err = pkg.Parse(pi) - if err != nil { - return - } - if matched { - break - } - - var line string - line, matched, err = stringUntilNewLine.Parse(pi) - if err != nil { - return - } - if !matched { - break - } - var newLine string - newLine, _, _ = parse.NewLine.Parse(pi) - tf.Header = append(tf.Header, &TemplateFileGoExpression{Expression: NewExpression(line+newLine, from, pi.Position()), BeforePackage: true}) - } - - // Strip any whitespace between the template declaration and the first template. - _, _, _ = parse.OptionalWhitespace.Parse(pi) - -outer: - for { - // Optional templates, CSS, and script templates. - // templ Name(p Parameter) - var tn *HTMLTemplate - tn, matched, err = template.Parse(pi) - if err != nil { - tf.Nodes = append(tf.Nodes, tn) - return tf, false, err - } - if matched { - tf.Nodes = append(tf.Nodes, tn) - _, _, _ = parse.OptionalWhitespace.Parse(pi) - continue - } - - // css Name() - var cn *CSSTemplate - cn, matched, err = cssParser.Parse(pi) - if err != nil { - return tf, false, err - } - if matched { - tf.Nodes = append(tf.Nodes, cn) - _, _, _ = parse.OptionalWhitespace.Parse(pi) - continue - } - - // script Name() - var sn *ScriptTemplate - sn, matched, err = scriptTemplateParser.Parse(pi) - if err != nil { - return tf, false, err - } - if matched { - tf.Nodes = append(tf.Nodes, sn) - _, _, _ = parse.OptionalWhitespace.Parse(pi) - continue - } - - // Anything that isn't template content is Go code. - code := new(strings.Builder) - from := pi.Position() - inner: - for { - // Check to see if this line isn't Go code. - last := pi.Index() - var l string - if l, matched, err = stringUntilNewLineOrEOF.Parse(pi); err != nil { - return - } - hasTemplatePrefix := strings.HasPrefix(l, "templ ") || strings.HasPrefix(l, "css ") || strings.HasPrefix(l, "script ") - if hasTemplatePrefix && strings.Contains(l, "(") { - // Unread the line. - pi.Seek(last) - // Take the code so far. - if code.Len() > 0 { - expr := NewExpression(strings.TrimSpace(code.String()), from, pi.Position()) - tf.Nodes = append(tf.Nodes, &TemplateFileGoExpression{Expression: expr}) - } - // Carry on parsing. - break inner - } - code.WriteString(l) - - // Eat the newline or EOF that we read until. - var newLine string - if newLine, matched, err = parse.NewLine.Parse(pi); err != nil { - return - } - code.WriteString(newLine) - if _, isEOF, _ := parse.EOF[string]().Parse(pi); isEOF { - if code.Len() > 0 { - expr := NewExpression(strings.TrimSpace(code.String()), from, pi.Position()) - tf.Nodes = append(tf.Nodes, &TemplateFileGoExpression{Expression: expr}) - } - // Stop parsing. - break outer - } - } - } - - return tf, true, nil -} diff --git a/vendor/github.com/a-h/templ/parser/v2/templateparser.go b/vendor/github.com/a-h/templ/parser/v2/templateparser.go deleted file mode 100644 index 59149df..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/templateparser.go +++ /dev/null @@ -1,153 +0,0 @@ -package parser - -import ( - "fmt" - - "github.com/a-h/parse" -) - -// TemplateExpression. - -// TemplateExpression. -// templ Func(p Parameter) { -// templ (data Data) Func(p Parameter) { -// templ (data []string) Func(p Parameter) { -type templateExpression struct { - Expression Expression -} - -var templateExpressionParser = parse.Func(func(pi *parse.Input) (r templateExpression, matched bool, err error) { - start := pi.Index() - - if !peekPrefix(pi, "templ ") { - return r, false, nil - } - - // Once we have the prefix, everything to the brace is Go. - // e.g. - // templ (x []string) Test() { - // becomes: - // func (x []string) Test() templ.Component { - if _, r.Expression, err = parseTemplFuncDecl(pi); err != nil { - return r, true, err - } - - // Eat " {\n". - if _, matched, err = parse.All(openBraceWithOptionalPadding, parse.StringFrom(parse.Optional(parse.NewLine))).Parse(pi); err != nil || !matched { - return r, true, parse.Error("templ: malformed templ expression, expected `templ functionName() {`", pi.PositionAt(start)) - } - - return r, true, nil -}) - -const ( - unterminatedMissingCurly = `unterminated (missing closing '{\n') - to escape "for", "if", "switch" etc. with braces, e.g. '{ "for" }' - https://templ.guide/syntax-and-usage/statements#ifswitchfor-within-text` - unterminatedMissingEnd = `missing end (expected '}') - https://templ.guide/syntax-and-usage/statements#ifswitchfor-within-text` -) - -// Template node (element, call, if, switch, for, whitespace etc.) -func newTemplateNodeParser[TUntil any](until parse.Parser[TUntil], untilName string) templateNodeParser[TUntil] { - return templateNodeParser[TUntil]{ - until: until, - untilName: untilName, - } -} - -type templateNodeParser[TUntil any] struct { - until parse.Parser[TUntil] - untilName string -} - -var rawElements = parse.Any(styleElement, scriptElement) - -var templateNodeSkipParsers = []parse.Parser[Node]{ - voidElementCloser, // </br>, </img> etc. - should be ignored. -} - -var templateNodeParsers = []parse.Parser[Node]{ - docType, // <!DOCTYPE html> - htmlComment, // <!-- - goComment, // // or /* - rawElements, // <text>, <>, or <style> element (special behaviour - contents are not parsed). - element, // <a>, <br/> etc. - ifExpression, // if {} - forExpression, // for {} - switchExpression, // switch {} - callTemplateExpression, // {! TemplateName(a, b, c) } - templElementExpression, // @TemplateName(a, b, c) { <div>Children</div> } - childrenExpression, // { children... } - goCode, // {{ myval := x.myval }} - stringExpression, // { "abc" } - whitespaceExpression, // { " " } - textParser, // anything &amp; everything accepted... -} - -func (p templateNodeParser[T]) Parse(pi *parse.Input) (op Nodes, matched bool, err error) { -outer: - for { - // Check if we've reached the end. - if p.until != nil { - start := pi.Index() - _, didMatchUntilParser, err := p.until.Parse(pi) - if err != nil { - return op, false, err - } - if didMatchUntilParser { - pi.Seek(start) - return op, true, nil - } - } - - // Skip any nodes that we don't care about. - for _, p := range templateNodeSkipParsers { - _, didMatchSkipParser, err := p.Parse(pi) - if err != nil { - return op, false, err - } - if didMatchSkipParser { - continue outer - } - } - - // Attempt to parse a node. - // Loop through the parsers and try to parse a node. - var didMatchTemplateNode bool - for _, p := range templateNodeParsers { - var node Node - node, didMatchTemplateNode, err = p.Parse(pi) - if err != nil { - // Even if there's an error, we might have a node that the LSP can use, - // so return it. - if node != nil { - op.Nodes = append(op.Nodes, node) - } - return op, true, err - } - if didMatchTemplateNode { - op.Nodes = append(op.Nodes, node) - break - } - } - if didMatchTemplateNode { - continue - } - - if p.until == nil { - // In this case, we're just reading as many nodes as we can until we can't read any more. - // If we've reached here, we couldn't find a node. - // The element parser checks the final node returned to make sure it's the expected close tag. - break - } - - err = UntilNotFoundError{ - ParseError: parse.Error(fmt.Sprintf("%v not found", p.untilName), pi.Position()), - } - return op, true, err - } - - return op, true, nil -} - -type UntilNotFoundError struct { - parse.ParseError -} diff --git a/vendor/github.com/a-h/templ/parser/v2/templelementparser.go b/vendor/github.com/a-h/templ/parser/v2/templelementparser.go deleted file mode 100644 index e6c53a6..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/templelementparser.go +++ /dev/null @@ -1,59 +0,0 @@ -package parser - -import ( - "github.com/a-h/parse" - "github.com/a-h/templ/parser/v2/goexpression" -) - -type templElementExpressionParser struct{} - -func (p templElementExpressionParser) Parse(pi *parse.Input) (n Node, matched bool, err error) { - start := pi.Position() - - // Check the prefix first. - if _, matched, err = parse.Rune('@').Parse(pi); err != nil || !matched { - return nil, false, nil - } - - // Parse the Go expression. - r := &TemplElementExpression{} - if r.Expression, err = parseGo("templ element", pi, goexpression.TemplExpression); err != nil { - return r, true, err - } - - // Once we've got a start expression, check to see if there's an open brace for children. {\n. - var hasOpenBrace bool - _, hasOpenBrace, err = openBraceWithOptionalPadding.Parse(pi) - if err != nil { - return - } - if !hasOpenBrace { - r.Range = NewRange(start, pi.Position()) - return r, true, nil - } - - // Once we've had the start of an element's children, we must conclude the block. - - // Node contents. - np := newTemplateNodeParser(closeBraceWithOptionalPadding, "templ element closing brace") - var nodes Nodes - if nodes, matched, err = np.Parse(pi); err != nil || !matched { - // Populate the nodes anyway, so that the LSP can use them. - r.Children = nodes.Nodes - err = parse.Error("@"+r.Expression.Value+": expected nodes, but none were found", pi.Position()) - return r, true, err - } - r.Children = nodes.Nodes - - // Read the required closing brace. - if _, matched, err = closeBraceWithOptionalPadding.Parse(pi); err != nil || !matched { - err = parse.Error("@"+r.Expression.Value+": missing end (expected '}')", pi.Position()) - return r, true, err - } - - r.Range = NewRange(start, pi.Position()) - - return r, true, nil -} - -var templElementExpression templElementExpressionParser diff --git a/vendor/github.com/a-h/templ/parser/v2/textparser.go b/vendor/github.com/a-h/templ/parser/v2/textparser.go deleted file mode 100644 index 56d8756..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/textparser.go +++ /dev/null @@ -1,53 +0,0 @@ -package parser - -import ( - "unicode" - - "github.com/a-h/parse" -) - -var tagTemplOrNewLine = parse.Any(parse.Rune('<'), parse.Rune('{'), parse.Rune('}'), parse.String("\r\n"), parse.Rune('\n')) - -var textParser = parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { - from := pi.Position() - - // Read until a tag or templ expression opens. - t := &Text{} - if t.Value, ok, err = parse.StringUntil(tagTemplOrNewLine).Parse(pi); err != nil || !ok { - return - } - if isWhitespace(t.Value) { - return t, false, nil - } - if _, ok = pi.Peek(1); !ok { - err = parse.Error("textParser: unterminated text, expected tag open, templ expression open, or newline", from) - return - } - t.Range = NewRange(from, pi.Position()) - - // Elide any void element closing tags. - if _, _, err = voidElementCloser.Parse(pi); err != nil { - return - } - - // Parse trailing whitespace. - ws, _, err := parse.Whitespace.Parse(pi) - if err != nil { - return t, false, err - } - t.TrailingSpace, err = NewTrailingSpace(ws) - if err != nil { - return t, false, err - } - - return t, true, nil -}) - -func isWhitespace(s string) bool { - for _, r := range s { - if !unicode.IsSpace(r) { - return false - } - } - return true -} diff --git a/vendor/github.com/a-h/templ/parser/v2/types.go b/vendor/github.com/a-h/templ/parser/v2/types.go deleted file mode 100644 index 1ab02af..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/types.go +++ /dev/null @@ -1,1498 +0,0 @@ -package parser - -import ( - "bytes" - "errors" - "fmt" - "go/format" - "io" - "strings" - "unicode" - - "github.com/a-h/parse" -) - -// package parser -// -// import "strings" -// import strs "strings" -// -// css AddressLineStyle() { -// background-color: #ff0000; -// color: #ffffff; -// } -// -// templ RenderAddress(addr Address) { -// <div style={ AddressLineStyle() }>{ addr.Address1 }</div> -// <div>{ addr.Address2 }</div> -// <div>{ addr.Address3 }</div> -// <div>{ addr.Address4 }</div> -// } -// -// templ Render(p Person) { -// <div> -// <div>{ p.Name() }</div> -// <a href={ p.URL }>{ strings.ToUpper(p.Name()) }</a> -// <div> -// if p.Type == "test" { -// <span>{ "Test user" }</span> -// } else { -// <span>{ "Not test user" }</span> -// } -// for _, v := range p.Addresses { -// {! call RenderAddress(v) } -// } -// </div> -// </div> -// } - -// Source mapping to map from the source code of the template to the -// in-memory representation. -type Position struct { - Index int64 - Line uint32 - Col uint32 -} - -func (p *Position) String() string { - return fmt.Sprintf("line %d, col %d (index %d)", p.Line, p.Col, p.Index) -} - -// NewPosition initialises a position. -func NewPosition(index int64, line, col uint32) Position { - return Position{ - Index: index, - Line: line, - Col: col, - } -} - -// NewExpression creates a Go expression. -func NewExpression(value string, from, to parse.Position) Expression { - return Expression{ - Value: value, - Range: Range{ - From: Position{ - Index: int64(from.Index), - Line: uint32(from.Line), - Col: uint32(from.Col), - }, - To: Position{ - Index: int64(to.Index), - Line: uint32(to.Line), - Col: uint32(to.Col), - }, - }, - } -} - -// NewRange creates a Range expression. -func NewRange(from, to parse.Position) Range { - return Range{ - From: Position{ - Index: int64(from.Index), - Line: uint32(from.Line), - Col: uint32(from.Col), - }, - To: Position{ - Index: int64(to.Index), - Line: uint32(to.Line), - Col: uint32(to.Col), - }, - } -} - -// Range of text within a file. -type Range struct { - From Position - To Position -} - -// Expression containing Go code. -type Expression struct { - Value string - Range Range -} - -type TemplateFile struct { - // Header contains comments or whitespace at the top of the file. - Header []*TemplateFileGoExpression - // Package expression. - Package Package - // Filepath is where the file was loaded from. It is not always available. - Filepath string - // Nodes in the file. - Nodes []TemplateFileNode -} - -func (tf *TemplateFile) Write(w io.Writer) error { - for _, n := range tf.Header { - if err := n.Write(w, 0); err != nil { - return err - } - } - var indent int - if err := tf.Package.Write(w, indent); err != nil { - return err - } - if _, err := io.WriteString(w, "\n\n"); err != nil { - return err - } - for i, n := range tf.Nodes { - if err := n.Write(w, indent); err != nil { - return err - } - if _, err := io.WriteString(w, getNodeWhitespace(tf.Nodes, i)); err != nil { - return err - } - } - return nil -} - -func (tf *TemplateFile) Visit(v Visitor) error { - return v.VisitTemplateFile(tf) -} - -func getNodeWhitespace(nodes []TemplateFileNode, i int) string { - if i == len(nodes)-1 { - return "\n" - } - if _, nextIsTemplate := nodes[i+1].(*HTMLTemplate); nextIsTemplate { - if e, isGo := nodes[i].(*TemplateFileGoExpression); isGo && endsWithComment(e.Expression.Value) { - return "\n" - } - } - return "\n\n" -} - -func endsWithComment(s string) bool { - lineSlice := strings.Split(s, "\n") - return strings.HasPrefix(lineSlice[len(lineSlice)-1], "//") -} - -// TemplateFileNode can be a Template, CSS, Script or Go. -type TemplateFileNode interface { - IsTemplateFileNode() bool - Write(w io.Writer, indent int) error - Visit(v Visitor) error -} - -// TemplateFileGoExpression within a TemplateFile -type TemplateFileGoExpression struct { - Expression Expression - BeforePackage bool -} - -func (exp *TemplateFileGoExpression) IsTemplateFileNode() bool { return true } -func (exp *TemplateFileGoExpression) Write(w io.Writer, indent int) error { - in := exp.Expression.Value - - if exp.BeforePackage { - in += "\\\\formatstring\npackage p\n\\\\formatstring" - } - data, err := format.Source([]byte(in)) - if err != nil { - return writeIndent(w, indent, exp.Expression.Value) - } - if exp.BeforePackage { - data = bytes.TrimSuffix(data, []byte("\\\\formatstring\npackage p\n\\\\formatstring")) - } - _, err = w.Write(data) - return err -} - -func (exp *TemplateFileGoExpression) Visit(v Visitor) error { - return v.VisitTemplateFileGoExpression(exp) -} - -func writeIndent(w io.Writer, level int, s ...string) (err error) { - indent := strings.Repeat("\t", level) - if _, err = io.WriteString(w, indent); err != nil { - return err - } - for _, ss := range s { - _, err = io.WriteString(w, ss) - if err != nil { - return - } - } - return -} - -type Package struct { - Expression Expression -} - -func (p *Package) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, p.Expression.Value) -} - -func (p *Package) Visit(v Visitor) error { - return v.VisitPackage(p) -} - -// Whitespace. -type Whitespace struct { - Value string -} - -func (ws *Whitespace) IsNode() bool { return true } - -func (ws *Whitespace) Write(w io.Writer, indent int) error { - if ws.Value == "" || !strings.Contains(ws.Value, "\n") { - return nil - } - // https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace - // - All spaces and tabs immediately before and after a line break are ignored. - // - All tab characters are handled as space characters. - // - Line breaks are converted to spaces. - // Any space immediately following another space (even across two separate inline elements) is ignored. - // Sequences of spaces at the beginning and end of an element are removed. - - // Notes: Since we only have whitespace in this node, we can strip anything that isn't a line break. - // Since any space following another space is ignored, we can collapse to a single rule. - // So, the rule is... if there's a newline, it becomes a single space, or it's stripped. - // We have to remove the start and end space elsewhere. - _, err := io.WriteString(w, " ") - return err -} - -func (ws *Whitespace) Visit(v Visitor) error { - return v.VisitWhitespace(ws) -} - -// CSS definition. -// -// css Name() { -// color: #ffffff; -// background-color: { constants.BackgroundColor }; -// background-image: url('./somewhere.png'); -// } -type CSSTemplate struct { - Range Range - Name string - Expression Expression - Properties []CSSProperty -} - -func (css *CSSTemplate) IsTemplateFileNode() bool { return true } -func (css *CSSTemplate) Write(w io.Writer, indent int) error { - source := formatFunctionArguments(css.Expression.Value) - if err := writeIndent(w, indent, "css ", string(source), " {\n"); err != nil { - return err - } - for _, p := range css.Properties { - if err := p.Write(w, indent+1); err != nil { - return err - } - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (css *CSSTemplate) Visit(v Visitor) error { - return v.VisitCSSTemplate(css) -} - -// CSSProperty is a CSS property and value pair. -type CSSProperty interface { - IsCSSProperty() bool - Write(w io.Writer, indent int) error - Visit(v Visitor) error -} - -// color: #ffffff; -type ConstantCSSProperty struct { - Name string - Value string -} - -func (c *ConstantCSSProperty) IsCSSProperty() bool { return true } -func (c *ConstantCSSProperty) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, c.String(false)); err != nil { - return err - } - return nil -} - -func (c ConstantCSSProperty) String(minified bool) string { - sb := new(strings.Builder) - sb.WriteString(c.Name) - if minified { - sb.WriteString(":") - } else { - sb.WriteString(": ") - } - sb.WriteString(c.Value) - sb.WriteString(";") - if !minified { - sb.WriteString("\n") - } - return sb.String() -} - -func (c *ConstantCSSProperty) Visit(v Visitor) error { - return v.VisitConstantCSSProperty(c) -} - -// background-color: { constants.BackgroundColor }; -type ExpressionCSSProperty struct { - Name string - Value *StringExpression -} - -func (c *ExpressionCSSProperty) IsCSSProperty() bool { return true } -func (c *ExpressionCSSProperty) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, c.Name, ": "); err != nil { - return err - } - if err := c.Value.Write(w, 0); err != nil { - return err - } - if _, err := w.Write([]byte(";\n")); err != nil { - return err - } - return nil -} - -func (c *ExpressionCSSProperty) Visit(v Visitor) error { - return v.VisitExpressionCSSProperty(c) -} - -// <!DOCTYPE html> -type DocType struct { - Value string -} - -func (dt *DocType) IsNode() bool { return true } -func (dt *DocType) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, "<!DOCTYPE ", dt.Value, ">") -} - -func (dt *DocType) Visit(v Visitor) error { - return v.VisitDocType(dt) -} - -// HTMLTemplate definition. -// -// templ Name(p Parameter) { -// if ... { -// <Element></Element> -// } -// } -type HTMLTemplate struct { - Range Range - Expression Expression - Children []Node -} - -func (t *HTMLTemplate) IsTemplateFileNode() bool { return true } - -func (t *HTMLTemplate) Write(w io.Writer, indent int) error { - source := formatFunctionArguments(t.Expression.Value) - if err := writeIndent(w, indent, "templ ", string(source), " {\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, t.Children); err != nil { - return err - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (t *HTMLTemplate) Visit(v Visitor) error { - return v.VisitHTMLTemplate(t) -} - -// TrailingSpace defines the whitespace that may trail behind the close of an element, a -// text node, or string expression. -type TrailingSpace string - -const ( - SpaceNone TrailingSpace = "" - SpaceHorizontal TrailingSpace = " " - SpaceVertical TrailingSpace = "\n" -) - -var ErrNonSpaceCharacter = errors.New("non space character found") - -func NewTrailingSpace(s string) (ts TrailingSpace, err error) { - var hasHorizontalSpace bool - for _, r := range s { - if r == '\n' { - return SpaceVertical, nil - } - if unicode.IsSpace(r) { - hasHorizontalSpace = true - continue - } - return ts, ErrNonSpaceCharacter - } - if hasHorizontalSpace { - return SpaceHorizontal, nil - } - return SpaceNone, nil -} - -type Nodes struct { - Nodes []Node -} - -// A Node appears within a template, e.g. an StringExpression, Element, IfExpression etc. -type Node interface { - IsNode() bool - // Write out the string*. - Write(w io.Writer, indent int) error - Visit(v Visitor) error -} - -type CompositeNode interface { - Node - ChildNodes() []Node -} - -type WhitespaceTrailer interface { - Trailing() TrailingSpace -} - -var ( - _ WhitespaceTrailer = (*Element)(nil) - _ WhitespaceTrailer = (*Text)(nil) - _ WhitespaceTrailer = (*StringExpression)(nil) -) - -// Text node within the document. -type Text struct { - // Range of the text within the templ file. - Range Range - // Value is the raw HTML encoded value. - Value string - // TrailingSpace lists what happens after the text. - TrailingSpace TrailingSpace -} - -func (t Text) Trailing() TrailingSpace { - return t.TrailingSpace -} - -func (t *Text) IsNode() bool { return true } -func (t *Text) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, t.Value) -} - -func (t *Text) Visit(v Visitor) error { - return v.VisitText(t) -} - -// <a .../> or <div ...>...</div> -type Element struct { - Name string - Attributes []Attribute - IndentAttrs bool - Children []Node - IndentChildren bool - TrailingSpace TrailingSpace - NameRange Range - Range Range -} - -func (e Element) Trailing() TrailingSpace { - return e.TrailingSpace -} - -func (e *Element) Visit(v Visitor) error { - return v.VisitElement(e) -} - -var voidElements = map[string]struct{}{ - "area": {}, "base": {}, "br": {}, "col": {}, "command": {}, "embed": {}, "hr": {}, "img": {}, "input": {}, "keygen": {}, "link": {}, "meta": {}, "param": {}, "source": {}, "track": {}, "wbr": {}, -} - -// https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#void-element -func (e Element) IsVoidElement() bool { - _, ok := voidElements[e.Name] - return ok -} - -func (e Element) hasNonWhitespaceChildren() bool { - for _, c := range e.Children { - if _, isWhitespace := c.(*Whitespace); !isWhitespace { - return true - } - } - return false -} - -var blockElements = map[string]struct{}{ - "address": {}, "article": {}, "aside": {}, "body": {}, "blockquote": {}, "canvas": {}, "dd": {}, "div": {}, "dl": {}, "dt": {}, "fieldset": {}, "figcaption": {}, "figure": {}, "footer": {}, "form": {}, "h1": {}, "h2": {}, "h3": {}, "h4": {}, "h5": {}, "h6": {}, "head": {}, "header": {}, "hr": {}, "html": {}, "li": {}, "main": {}, "meta": {}, "nav": {}, "noscript": {}, "ol": {}, "p": {}, "pre": {}, "script": {}, "section": {}, "table": {}, "template": {}, "tfoot": {}, "turbo-stream": {}, "ul": {}, "video": {}, - // Not strictly block but for the purposes of layout, they are. - "title": {}, "style": {}, "link": {}, "td": {}, "th": {}, "tr": {}, "br": {}, -} - -func (e Element) IsBlockElement() bool { - _, ok := blockElements[e.Name] - return ok -} - -// Validate that no invalid expressions have been used. -func (e Element) Validate() (msgs []string, ok bool) { - // Validate that style tags don't contain expressions. - if strings.EqualFold(e.Name, "style") { - if containsNonTextNodes(e.Children) { - msgs = append(msgs, "invalid node contents: style elements must only contain text") - } - } - return msgs, len(msgs) == 0 -} - -func containsNonTextNodes(nodes []Node) bool { - for _, n := range nodes { - switch n.(type) { - case *Text: - continue - case *Whitespace: - continue - default: - return true - } - } - return false -} - -func (e Element) ChildNodes() []Node { - return e.Children -} -func (e *Element) IsNode() bool { return true } -func (e *Element) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "<", e.Name); err != nil { - return err - } - for i := range e.Attributes { - a := e.Attributes[i] - // Only the conditional attributes get indented. - var attrIndent int - if e.IndentAttrs { - if _, err := w.Write([]byte("\n")); err != nil { - return err - } - attrIndent = indent + 1 - } else { - if _, err := w.Write([]byte(" ")); err != nil { - return err - } - } - if err := a.Write(w, attrIndent); err != nil { - return err - } - } - var closeAngleBracketIndent int - if e.IndentAttrs { - if _, err := w.Write([]byte("\n")); err != nil { - return err - } - closeAngleBracketIndent = indent - } - if e.hasNonWhitespaceChildren() { - if e.IndentChildren { - if err := writeIndent(w, closeAngleBracketIndent, ">\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, e.Children); err != nil { - return err - } - if err := writeIndent(w, indent, "</", e.Name, ">"); err != nil { - return err - } - return nil - } - if err := writeIndent(w, closeAngleBracketIndent, ">"); err != nil { - return err - } - if err := writeNodesWithoutIndentation(w, e.Children); err != nil { - return err - } - if _, err := w.Write([]byte("</" + e.Name + ">")); err != nil { - return err - } - return nil - } - if e.IsVoidElement() { - if err := writeIndent(w, closeAngleBracketIndent, "/>"); err != nil { - return err - } - return nil - } - if err := writeIndent(w, closeAngleBracketIndent, "></", e.Name, ">"); err != nil { - return err - } - return nil -} - -func writeNodesWithoutIndentation(w io.Writer, nodes []Node) error { - return writeNodes(w, 0, nodes, false) -} - -func writeNodesIndented(w io.Writer, level int, nodes []Node) error { - return writeNodes(w, level, nodes, true) -} - -func writeNodes(w io.Writer, level int, nodes []Node, indent bool) error { - startLevel := level - for i, n := range nodes { - // Skip whitespace nodes. - if _, isWhitespace := n.(*Whitespace); isWhitespace { - continue - } - if err := n.Write(w, level); err != nil { - return err - } - - // Apply trailing whitespace if present. - trailing := SpaceVertical - if wst, isWhitespaceTrailer := n.(WhitespaceTrailer); isWhitespaceTrailer { - trailing = wst.Trailing() - } - // Put a newline after the last node in indentation mode. - if indent && ((nextNodeIsBlock(nodes, i) || i == len(nodes)-1) || shouldAlwaysBreakAfter(n)) { - trailing = SpaceVertical - } - switch trailing { - case SpaceNone: - level = 0 - case SpaceHorizontal: - level = 0 - case SpaceVertical: - level = startLevel - } - if _, err := w.Write([]byte(trailing)); err != nil { - return err - } - } - return nil -} - -func shouldAlwaysBreakAfter(node Node) bool { - if el, isElement := node.(*Element); isElement { - return strings.EqualFold(el.Name, "br") || strings.EqualFold(el.Name, "hr") - } - return false -} - -func nextNodeIsBlock(nodes []Node, i int) bool { - if len(nodes)-1 < i+1 { - return false - } - return isBlockNode(nodes[i+1]) -} - -func isBlockNode(node Node) bool { - switch n := node.(type) { - case *IfExpression: - return true - case *SwitchExpression: - return true - case *ForExpression: - return true - case *Element: - return n.IsBlockElement() || n.IndentChildren - } - return false -} - -func NewScriptContentsScriptCode(value string) ScriptContents { - return ScriptContents{ - Value: &value, - } -} - -func NewScriptContentsGo(code *GoCode, insideStringLiteral bool) ScriptContents { - return ScriptContents{ - GoCode: code, - InsideStringLiteral: insideStringLiteral, - } -} - -type ScriptContents struct { - // Value is the raw script contents. This is nil if the Type is Go. - Value *string - // GoCode is the Go expression. This is nil if the Type is JS. - GoCode *GoCode - // InsideStringLiteral denotes how the result of any Go expression should be escaped in the output. - // - Not quoted: JSON encoded. - // - InsideStringLiteral: JS escaped (newlines become \n, `"' becomes \`\"\' etc.), HTML escaped so that a string can't contain </script>. - InsideStringLiteral bool -} - -type ScriptElement struct { - Attributes []Attribute - Contents []ScriptContents - Range Range -} - -func (se *ScriptElement) IsNode() bool { return true } -func (se *ScriptElement) Write(w io.Writer, indent int) error { - // Start. - if err := writeIndent(w, indent, "<script"); err != nil { - return err - } - for i := range se.Attributes { - if _, err := w.Write([]byte(" ")); err != nil { - return err - } - a := se.Attributes[i] - // Don't indent the attributes, only the conditional attributes get indented. - if err := a.Write(w, 0); err != nil { - return err - } - } - if _, err := w.Write([]byte(">")); err != nil { - return err - } - // Contents. - for _, c := range se.Contents { - if c.Value != nil { - if err := writeStrings(w, *c.Value); err != nil { - return err - } - continue - } - // Write the expression. - if c.GoCode == nil { - return errors.New("script contents expression is nil") - } - if isWhitespace(c.GoCode.Expression.Value) { - c.GoCode.Expression.Value = "" - } - if err := writeStrings(w, `{{ `, c.GoCode.Expression.Value, ` }}`, string(c.GoCode.TrailingSpace)); err != nil { - return err - } - } - // Close. - if _, err := w.Write([]byte("</script>")); err != nil { - return err - } - return nil -} - -func (se *ScriptElement) Visit(v Visitor) error { - return v.VisitScriptElement(se) -} - -func writeStrings(w io.Writer, ss ...string) error { - for _, s := range ss { - if _, err := io.WriteString(w, s); err != nil { - return err - } - } - return nil -} - -type RawElement struct { - Name string - Attributes []Attribute - Contents string - Range Range -} - -func (e *RawElement) IsNode() bool { return true } -func (e *RawElement) Write(w io.Writer, indent int) error { - // Start. - if err := writeIndent(w, indent, "<", e.Name); err != nil { - return err - } - for _, a := range e.Attributes { - if _, err := w.Write([]byte(" ")); err != nil { - return err - } - // Don't indent the attributes, only the conditional attributes get indented. - if err := a.Write(w, 0); err != nil { - return err - } - } - if _, err := w.Write([]byte(">")); err != nil { - return err - } - // Contents. - if _, err := w.Write([]byte(e.Contents)); err != nil { - return err - } - // Close. - if _, err := w.Write([]byte("</" + e.Name + ">")); err != nil { - return err - } - return nil -} - -func (e *RawElement) Visit(v Visitor) error { - return v.VisitRawElement(e) -} - -type Attribute interface { - // Write out the string*. - Write(w io.Writer, indent int) error - Visit(v Visitor) error - Copy() Attribute -} - -type AttributeKey interface { - fmt.Stringer -} - -type ConstantAttributeKey struct { - Name string - NameRange Range -} - -func (c ConstantAttributeKey) String() string { - return c.Name -} - -type ExpressionAttributeKey struct { - Expression Expression -} - -func (e ExpressionAttributeKey) String() string { - return `{ ` + e.Expression.Value + ` }` -} - -// <hr noshade/> -type BoolConstantAttribute struct { - Key AttributeKey -} - -func (bca *BoolConstantAttribute) String() string { - return bca.Key.String() -} - -func (bca *BoolConstantAttribute) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, bca.String()) -} - -func (bca *BoolConstantAttribute) Visit(v Visitor) error { - return v.VisitBoolConstantAttribute(bca) -} - -func (bca *BoolConstantAttribute) Copy() Attribute { - return &BoolConstantAttribute{ - Key: bca.Key, - } -} - -// href="" -type ConstantAttribute struct { - Key AttributeKey - Value string - SingleQuote bool -} - -func (ca *ConstantAttribute) String() string { - quote := `"` - if ca.SingleQuote { - quote = `'` - } - return ca.Key.String() + `=` + quote + ca.Value + quote -} - -func (ca *ConstantAttribute) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, ca.String()) -} - -func (ca *ConstantAttribute) Visit(v Visitor) error { - return v.VisitConstantAttribute(ca) -} - -func (ca *ConstantAttribute) Copy() Attribute { - return &ConstantAttribute{ - Value: ca.Value, - SingleQuote: ca.SingleQuote, - Key: ca.Key, - } -} - -// noshade={ templ.Bool(...) } -type BoolExpressionAttribute struct { - Key AttributeKey - Expression Expression -} - -func (bea *BoolExpressionAttribute) String() string { - return bea.Key.String() + `?={ ` + bea.Expression.Value + ` }` -} - -func (bea *BoolExpressionAttribute) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, bea.String()) -} - -func (bea *BoolExpressionAttribute) Visit(v Visitor) error { - return v.VisitBoolExpressionAttribute(bea) -} - -func (bea *BoolExpressionAttribute) Copy() Attribute { - return &BoolExpressionAttribute{ - Expression: bea.Expression, - Key: bea.Key, - } -} - -// href={ ... } -type ExpressionAttribute struct { - Key AttributeKey - Expression Expression -} - -func (ea *ExpressionAttribute) String() string { - sb := new(strings.Builder) - _ = ea.Write(sb, 0) - return sb.String() -} - -func (ea *ExpressionAttribute) formatExpression() (exp []string) { - trimmed := strings.TrimSpace(ea.Expression.Value) - if !strings.Contains(trimmed, "\n") { - formatted, err := format.Source([]byte(trimmed)) - if err != nil { - return []string{trimmed} - } - return []string{string(formatted)} - } - - buf := bytes.NewBufferString("[]any{\n") - buf.WriteString(trimmed) - buf.WriteString("\n}") - - formatted, err := format.Source(buf.Bytes()) - if err != nil { - return []string{trimmed} - } - - // Trim prefix and suffix. - lines := strings.Split(string(formatted), "\n") - if len(lines) < 3 { - return []string{trimmed} - } - - // Return. - return lines[1 : len(lines)-1] -} - -func (ea *ExpressionAttribute) Write(w io.Writer, indent int) (err error) { - lines := ea.formatExpression() - if len(lines) == 1 { - return writeIndent(w, indent, ea.Key.String(), `={ `, lines[0], ` }`) - } - - if err = writeIndent(w, indent, ea.Key.String(), "={\n"); err != nil { - return err - } - for _, line := range lines { - if err = writeIndent(w, indent, line, "\n"); err != nil { - return err - } - } - return writeIndent(w, indent, "}") -} - -func (ea *ExpressionAttribute) Visit(v Visitor) error { - return v.VisitExpressionAttribute(ea) -} - -func (ea *ExpressionAttribute) Copy() Attribute { - return &ExpressionAttribute{ - Expression: ea.Expression, - Key: ea.Key, - } -} - -// <a { spread... } /> -type SpreadAttributes struct { - Expression Expression -} - -func (sa *SpreadAttributes) String() string { - return `{ ` + sa.Expression.Value + `... }` -} - -func (sa *SpreadAttributes) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, sa.String()) -} - -func (sa *SpreadAttributes) Visit(v Visitor) error { - return v.VisitSpreadAttributes(sa) -} - -func (sa *SpreadAttributes) Copy() Attribute { - return &SpreadAttributes{ - Expression: sa.Expression, - } -} - -// <a href="test" \ -// if active { -// class="isActive" -// } -type ConditionalAttribute struct { - Expression Expression - Then []Attribute - Else []Attribute -} - -func (ca *ConditionalAttribute) String() string { - sb := new(strings.Builder) - _ = ca.Write(sb, 0) - return sb.String() -} - -func (ca *ConditionalAttribute) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "if "); err != nil { - return err - } - if _, err := w.Write([]byte(ca.Expression.Value)); err != nil { - return err - } - if _, err := w.Write([]byte(" {\n")); err != nil { - return err - } - { - indent++ - for _, attr := range ca.Then { - if err := attr.Write(w, indent); err != nil { - return err - } - if _, err := w.Write([]byte("\n")); err != nil { - return err - } - } - indent-- - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - if len(ca.Else) == 0 { - return nil - } - // Write the else blocks. - if _, err := w.Write([]byte(" else {\n")); err != nil { - return err - } - { - indent++ - for _, attr := range ca.Else { - if err := attr.Write(w, indent); err != nil { - return err - } - if _, err := w.Write([]byte("\n")); err != nil { - return err - } - } - indent-- - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (ca *ConditionalAttribute) Visit(v Visitor) error { - return v.VisitConditionalAttribute(ca) -} - -func (ca *ConditionalAttribute) Copy() Attribute { - return &ConditionalAttribute{ - Expression: ca.Expression, - Then: CopyAttributes(ca.Then), - Else: CopyAttributes(ca.Else), - } -} - -func CopyAttributes(attrs []Attribute) (copies []Attribute) { - copies = make([]Attribute, len(attrs)) - for i, a := range attrs { - copies[i] = a.Copy() - } - return copies -} - -// GoComment. -type GoComment struct { - Contents string - Multiline bool - Range Range -} - -func (c *GoComment) IsNode() bool { return true } -func (c *GoComment) Write(w io.Writer, indent int) error { - if c.Multiline { - return writeIndent(w, indent, "/*", c.Contents, "*/") - } - return writeIndent(w, indent, "//", c.Contents) -} - -func (c *GoComment) Visit(v Visitor) error { - return v.VisitGoComment(c) -} - -// HTMLComment. -type HTMLComment struct { - Contents string - Range Range -} - -func (c *HTMLComment) IsNode() bool { return true } -func (c *HTMLComment) Write(w io.Writer, indent int) error { - return writeIndent(w, indent, "<!--", c.Contents, "-->") -} - -func (c *HTMLComment) Visit(v Visitor) error { - return v.VisitHTMLComment(c) -} - -// Nodes. - -// CallTemplateExpression can be used to create and render a template using data. -// {! Other(p.First, p.Last) } -// or it can be used to render a template parameter. -// {! v } -type CallTemplateExpression struct { - // Expression returns a template to execute. - Expression Expression - Range Range -} - -func (cte *CallTemplateExpression) IsNode() bool { return true } -func (cte *CallTemplateExpression) Write(w io.Writer, indent int) error { - // Rewrite to new call syntax - return writeIndent(w, indent, `@`, cte.Expression.Value) -} - -func (cte *CallTemplateExpression) Visit(v Visitor) error { - return v.VisitCallTemplateExpression(cte) -} - -// TemplElementExpression can be used to create and render a template using data. -// @Other(p.First, p.Last) -// or it can be used to render a template parameter. -// @v -type TemplElementExpression struct { - // Expression returns a template to execute. - Expression Expression - // Children returns the elements in a block element. - Children []Node - Range Range -} - -func (tee TemplElementExpression) ChildNodes() []Node { - return tee.Children -} -func (tee *TemplElementExpression) IsNode() bool { return true } -func (tee *TemplElementExpression) Write(w io.Writer, indent int) error { - source, err := format.Source([]byte(tee.Expression.Value)) - if err != nil { - source = []byte(tee.Expression.Value) - } - // Indent all lines and re-format, we can then use this to only re-indent lines that gofmt would modify. - reformattedSource, err := format.Source(bytes.ReplaceAll(source, []byte("\n"), []byte("\n\t"))) - if err != nil { - reformattedSource = source - } - sourceLines := bytes.Split(source, []byte("\n")) - reformattedSourceLines := bytes.Split(reformattedSource, []byte("\n")) - for i := range sourceLines { - if i == 0 { - if err := writeIndent(w, indent, "@"+string(sourceLines[i])); err != nil { - return err - } - continue - } - if _, err := io.WriteString(w, "\n"); err != nil { - return err - } - if string(sourceLines[i]) != string(reformattedSourceLines[i]) { - if _, err := w.Write(sourceLines[i]); err != nil { - return err - } - continue - } - if err := writeIndent(w, indent, string(sourceLines[i])); err != nil { - return err - } - } - if len(tee.Children) == 0 { - return nil - } - if _, err = io.WriteString(w, " {\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, tee.Children); err != nil { - return err - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (tee *TemplElementExpression) Visit(v Visitor) error { - return v.VisitTemplElementExpression(tee) -} - -// ChildrenExpression can be used to rended the children of a templ element. -// { children ... } -type ChildrenExpression struct{} - -func (*ChildrenExpression) IsNode() bool { return true } -func (*ChildrenExpression) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "{ children... }"); err != nil { - return err - } - return nil -} - -func (ce *ChildrenExpression) Visit(v Visitor) error { - return v.VisitChildrenExpression(ce) -} - -// if p.Type == "test" && p.thing { -// } -type IfExpression struct { - Expression Expression - Then []Node - ElseIfs []ElseIfExpression - Else []Node - Range Range -} - -type ElseIfExpression struct { - Expression Expression - Then []Node - Range Range -} - -func (n IfExpression) ChildNodes() []Node { - var nodes []Node - nodes = append(nodes, n.Then...) - nodes = append(nodes, n.Else...) - for _, elseIf := range n.ElseIfs { - nodes = append(nodes, elseIf.Then...) - } - return nodes -} -func (n *IfExpression) IsNode() bool { return true } -func (n *IfExpression) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "if ", n.Expression.Value, " {\n"); err != nil { - return err - } - indent++ - if err := writeNodesIndented(w, indent, n.Then); err != nil { - return err - } - indent-- - for _, elseIf := range n.ElseIfs { - if err := writeIndent(w, indent, "} else if ", elseIf.Expression.Value, " {\n"); err != nil { - return err - } - indent++ - if err := writeNodesIndented(w, indent, elseIf.Then); err != nil { - return err - } - indent-- - } - if len(n.Else) > 0 { - if err := writeIndent(w, indent, "} else {\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, n.Else); err != nil { - return err - } - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (n *IfExpression) Visit(v Visitor) error { - return v.VisitIfExpression(n) -} - -// switch p.Type { -// case "Something": -// } -type SwitchExpression struct { - Expression Expression - Cases []CaseExpression - Range Range -} - -func (se SwitchExpression) ChildNodes() []Node { - var nodes []Node - for _, c := range se.Cases { - nodes = append(nodes, c.Children...) - } - return nodes -} -func (se *SwitchExpression) IsNode() bool { return true } -func (se *SwitchExpression) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "switch ", se.Expression.Value, " {\n"); err != nil { - return err - } - indent++ - for _, c := range se.Cases { - if err := writeIndent(w, indent, c.Expression.Value, "\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, c.Children); err != nil { - return err - } - } - indent-- - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (se *SwitchExpression) Visit(v Visitor) error { - return v.VisitSwitchExpression(se) -} - -// case "Something": -type CaseExpression struct { - Expression Expression - Children []Node -} - -// for i, v := range p.Addresses { -// {! Address(v) } -// } -type ForExpression struct { - Expression Expression - Children []Node - Range Range -} - -func (fe ForExpression) ChildNodes() []Node { - return fe.Children -} -func (fe *ForExpression) IsNode() bool { return true } -func (fe *ForExpression) Write(w io.Writer, indent int) error { - if err := writeIndent(w, indent, "for ", fe.Expression.Value, " {\n"); err != nil { - return err - } - if err := writeNodesIndented(w, indent+1, fe.Children); err != nil { - return err - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (fe *ForExpression) Visit(v Visitor) error { - return v.VisitForExpression(fe) -} - -// GoCode is used within HTML elements, and allows arbitrary go code. -// {{ ... }} -type GoCode struct { - Expression Expression - // TrailingSpace lists what happens after the expression. - TrailingSpace TrailingSpace - Multiline bool -} - -func (gc *GoCode) Trailing() TrailingSpace { - return gc.TrailingSpace -} - -func (gc *GoCode) IsNode() bool { return true } -func (gc *GoCode) Write(w io.Writer, indent int) error { - if isWhitespace(gc.Expression.Value) { - gc.Expression.Value = "" - } - if !gc.Multiline { - source, err := format.Source([]byte(gc.Expression.Value)) - if err != nil { - source = []byte(gc.Expression.Value) - } - return writeIndent(w, indent, `{{ `, string(source), ` }}`) - } - source, err := format.Source([]byte(strings.Repeat("\t", indent+1) + gc.Expression.Value)) - if err != nil { - source = []byte(gc.Expression.Value) - } - if err := writeIndent(w, indent, "{{\n"+string(source)+"\n"); err != nil { - return err - } - return writeIndent(w, indent, "}}") -} - -func (gc *GoCode) Visit(v Visitor) error { - return v.VisitGoCode(gc) -} - -// StringExpression is used within HTML elements, and for style values. -// { ... } -type StringExpression struct { - Expression Expression - // TrailingSpace lists what happens after the expression. - TrailingSpace TrailingSpace -} - -func (se *StringExpression) Trailing() TrailingSpace { - return se.TrailingSpace -} - -func (se *StringExpression) IsNode() bool { return true } -func (se *StringExpression) IsStyleDeclarationValue() bool { return true } -func (se *StringExpression) Write(w io.Writer, indent int) error { - if isWhitespace(se.Expression.Value) { - se.Expression.Value = "" - } - return writeIndent(w, indent, `{ `, se.Expression.Value, ` }`) -} - -func (se *StringExpression) Visit(v Visitor) error { - return v.VisitStringExpression(se) -} - -// ScriptTemplate is a script block. -type ScriptTemplate struct { - Range Range - Name Expression - Parameters Expression - Value string -} - -func (s *ScriptTemplate) IsTemplateFileNode() bool { return true } -func (s *ScriptTemplate) Write(w io.Writer, indent int) error { - source := formatFunctionArguments(s.Name.Value + "(" + s.Parameters.Value + ")") - if err := writeIndent(w, indent, "script ", string(source), " {\n"); err != nil { - return err - } - if _, err := io.WriteString(w, s.Value); err != nil { - return err - } - if err := writeIndent(w, indent, "}"); err != nil { - return err - } - return nil -} - -func (s *ScriptTemplate) Visit(v Visitor) error { - return v.VisitScriptTemplate(s) -} - -// formatFunctionArguments formats the function arguments, if possible. -func formatFunctionArguments(expression string) string { - source := []byte(expression) - formatted, err := format.Source([]byte("func " + expression)) - if err == nil { - formatted = bytes.TrimPrefix(formatted, []byte("func ")) - source = formatted - } - return string(source) -} diff --git a/vendor/github.com/a-h/templ/parser/v2/visitor.go b/vendor/github.com/a-h/templ/parser/v2/visitor.go deleted file mode 100644 index 185a4fa..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/visitor.go +++ /dev/null @@ -1,35 +0,0 @@ -package parser - -// Visitor is an interface for visiting nodes in the parse tree. -type Visitor interface { - VisitTemplateFile(*TemplateFile) error - VisitTemplateFileGoExpression(*TemplateFileGoExpression) error - VisitPackage(*Package) error - VisitWhitespace(*Whitespace) error - VisitCSSTemplate(*CSSTemplate) error - VisitConstantCSSProperty(*ConstantCSSProperty) error - VisitExpressionCSSProperty(*ExpressionCSSProperty) error - VisitDocType(*DocType) error - VisitHTMLTemplate(*HTMLTemplate) error - VisitText(*Text) error - VisitElement(*Element) error - VisitScriptElement(*ScriptElement) error - VisitRawElement(*RawElement) error - VisitBoolConstantAttribute(*BoolConstantAttribute) error - VisitConstantAttribute(*ConstantAttribute) error - VisitBoolExpressionAttribute(*BoolExpressionAttribute) error - VisitExpressionAttribute(*ExpressionAttribute) error - VisitSpreadAttributes(*SpreadAttributes) error - VisitConditionalAttribute(*ConditionalAttribute) error - VisitGoComment(*GoComment) error - VisitHTMLComment(*HTMLComment) error - VisitCallTemplateExpression(*CallTemplateExpression) error - VisitTemplElementExpression(*TemplElementExpression) error - VisitChildrenExpression(*ChildrenExpression) error - VisitIfExpression(*IfExpression) error - VisitSwitchExpression(*SwitchExpression) error - VisitForExpression(*ForExpression) error - VisitGoCode(*GoCode) error - VisitStringExpression(*StringExpression) error - VisitScriptTemplate(*ScriptTemplate) error -} diff --git a/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go b/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go deleted file mode 100644 index e836c08..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/visitor/visitor.go +++ /dev/null @@ -1,349 +0,0 @@ -package visitor - -import "github.com/a-h/templ/parser/v2" - -// New returns a default Visitor. Each function in the Visitor struct can be -// overridden to provide custom behavior when visiting nodes in the parse tree. -func New() *Visitor { - v := &Visitor{} - - // Set default implementations for all visitor functions. - v.TemplateFile = func(n *parser.TemplateFile) error { - for _, header := range n.Header { - if err := v.VisitTemplateFileGoExpression(header); err != nil { - return err - } - } - if err := v.VisitPackage(&n.Package); err != nil { - return err - } - for _, node := range n.Nodes { - if err := node.Visit(v); err != nil { - return err - } - } - return nil - } - v.TemplateFileGoExpression = func(n *parser.TemplateFileGoExpression) error { - return nil - } - v.Package = func(n *parser.Package) error { - return nil - } - v.Whitespace = func(n *parser.Whitespace) error { - return nil - } - v.CSSTemplate = func(n *parser.CSSTemplate) error { - for _, prop := range n.Properties { - if err := prop.Visit(v); err != nil { - return err - } - } - return nil - } - v.ConstantCSSProperty = func(n *parser.ConstantCSSProperty) error { - return nil - } - v.ExpressionCSSProperty = func(n *parser.ExpressionCSSProperty) error { - if err := n.Value.Visit(v); err != nil { - return err - } - return nil - } - v.DocType = func(n *parser.DocType) error { - return nil - } - v.HTMLTemplate = func(n *parser.HTMLTemplate) error { - for _, child := range n.Children { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.Text = func(n *parser.Text) error { - return nil - } - v.Element = func(n *parser.Element) error { - for _, attr := range n.Attributes { - if err := attr.Visit(v); err != nil { - return err - } - } - for _, child := range n.Children { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.RawElement = func(n *parser.RawElement) error { - for _, attr := range n.Attributes { - if err := attr.Visit(v); err != nil { - return err - } - } - return nil - } - v.ScriptElement = func(n *parser.ScriptElement) error { - for _, attr := range n.Attributes { - if err := attr.Visit(v); err != nil { - return err - } - } - return nil - } - v.BoolConstantAttribute = func(n *parser.BoolConstantAttribute) error { - return nil - } - v.ConstantAttribute = func(n *parser.ConstantAttribute) error { - return nil - } - v.BoolExpressionAttribute = func(n *parser.BoolExpressionAttribute) error { - return nil - } - v.ExpressionAttribute = func(n *parser.ExpressionAttribute) error { - return nil - } - v.SpreadAttributes = func(n *parser.SpreadAttributes) error { - return nil - } - v.ConditionalAttribute = func(n *parser.ConditionalAttribute) error { - for _, child := range n.Then { - if err := child.Visit(v); err != nil { - return err - } - } - for _, child := range n.Else { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.GoComment = func(n *parser.GoComment) error { - return nil - } - v.HTMLComment = func(n *parser.HTMLComment) error { - return nil - } - v.CallTemplateExpression = func(n *parser.CallTemplateExpression) error { - return nil - } - v.TemplElementExpression = func(n *parser.TemplElementExpression) error { - for _, child := range n.Children { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.ChildrenExpression = func(n *parser.ChildrenExpression) error { - return nil - } - v.IfExpression = func(n *parser.IfExpression) error { - for _, child := range n.Then { - if err := child.Visit(v); err != nil { - return err - } - } - for _, child := range n.ElseIfs { - for _, child := range child.Then { - if err := child.Visit(v); err != nil { - return err - } - } - } - for _, child := range n.Else { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.SwitchExpression = func(n *parser.SwitchExpression) error { - for _, node := range n.Cases { - for _, child := range node.Children { - if err := child.Visit(v); err != nil { - return err - } - } - } - return nil - } - v.ForExpression = func(n *parser.ForExpression) error { - for _, child := range n.Children { - if err := child.Visit(v); err != nil { - return err - } - } - return nil - } - v.GoCode = func(n *parser.GoCode) error { - return nil - } - v.StringExpression = func(n *parser.StringExpression) error { - return nil - } - v.ScriptTemplate = func(n *parser.ScriptTemplate) error { - return nil - } - - return v -} - -// Visitor implements the parser.Visitor interface. Each function corresponds to a node type in the parse tree. -// Override these functions to provide custom behavior when visiting nodes. -type Visitor struct { - TemplateFile func(n *parser.TemplateFile) error - TemplateFileGoExpression func(n *parser.TemplateFileGoExpression) error - Package func(n *parser.Package) error - Whitespace func(n *parser.Whitespace) error - CSSTemplate func(n *parser.CSSTemplate) error - ConstantCSSProperty func(n *parser.ConstantCSSProperty) error - ExpressionCSSProperty func(n *parser.ExpressionCSSProperty) error - DocType func(n *parser.DocType) error - HTMLTemplate func(n *parser.HTMLTemplate) error - Text func(n *parser.Text) error - Element func(n *parser.Element) error - RawElement func(n *parser.RawElement) error - ScriptElement func(n *parser.ScriptElement) error - BoolConstantAttribute func(n *parser.BoolConstantAttribute) error - ConstantAttribute func(n *parser.ConstantAttribute) error - BoolExpressionAttribute func(n *parser.BoolExpressionAttribute) error - ExpressionAttribute func(n *parser.ExpressionAttribute) error - SpreadAttributes func(n *parser.SpreadAttributes) error - ConditionalAttribute func(n *parser.ConditionalAttribute) error - GoComment func(n *parser.GoComment) error - HTMLComment func(n *parser.HTMLComment) error - CallTemplateExpression func(n *parser.CallTemplateExpression) error - TemplElementExpression func(n *parser.TemplElementExpression) error - ChildrenExpression func(n *parser.ChildrenExpression) error - IfExpression func(n *parser.IfExpression) error - SwitchExpression func(n *parser.SwitchExpression) error - ForExpression func(n *parser.ForExpression) error - GoCode func(n *parser.GoCode) error - StringExpression func(n *parser.StringExpression) error - ScriptTemplate func(n *parser.ScriptTemplate) error -} - -var _ parser.Visitor = (*Visitor)(nil) - -func (v *Visitor) VisitTemplateFile(n *parser.TemplateFile) error { - return v.TemplateFile(n) -} - -func (v *Visitor) VisitTemplateFileGoExpression(n *parser.TemplateFileGoExpression) error { - return v.TemplateFileGoExpression(n) -} - -func (v *Visitor) VisitPackage(n *parser.Package) error { - return v.Package(n) -} - -func (v *Visitor) VisitWhitespace(n *parser.Whitespace) error { - return v.Whitespace(n) -} - -func (v *Visitor) VisitCSSTemplate(n *parser.CSSTemplate) error { - return v.CSSTemplate(n) -} -func (v *Visitor) VisitConstantCSSProperty(n *parser.ConstantCSSProperty) error { - return v.ConstantCSSProperty(n) -} - -func (v *Visitor) VisitExpressionCSSProperty(n *parser.ExpressionCSSProperty) error { - return v.ExpressionCSSProperty(n) -} - -func (v *Visitor) VisitDocType(n *parser.DocType) error { - return v.DocType(n) -} - -func (v *Visitor) VisitHTMLTemplate(n *parser.HTMLTemplate) error { - return v.HTMLTemplate(n) -} - -func (v *Visitor) VisitText(n *parser.Text) error { - return v.Text(n) -} - -func (v *Visitor) VisitElement(n *parser.Element) error { - return v.Element(n) -} - -func (v *Visitor) VisitRawElement(n *parser.RawElement) error { - return v.RawElement(n) -} - -func (v *Visitor) VisitScriptElement(n *parser.ScriptElement) error { - return v.ScriptElement(n) -} - -func (v *Visitor) VisitBoolConstantAttribute(n *parser.BoolConstantAttribute) error { - return v.BoolConstantAttribute(n) -} - -func (v *Visitor) VisitConstantAttribute(n *parser.ConstantAttribute) error { - return v.ConstantAttribute(n) -} - -func (v *Visitor) VisitBoolExpressionAttribute(n *parser.BoolExpressionAttribute) error { - return v.BoolExpressionAttribute(n) -} - -func (v *Visitor) VisitExpressionAttribute(n *parser.ExpressionAttribute) error { - return v.ExpressionAttribute(n) -} - -func (v *Visitor) VisitSpreadAttributes(n *parser.SpreadAttributes) error { - return v.SpreadAttributes(n) -} - -func (v *Visitor) VisitConditionalAttribute(n *parser.ConditionalAttribute) error { - return v.ConditionalAttribute(n) -} - -func (v *Visitor) VisitGoComment(n *parser.GoComment) error { - return v.GoComment(n) -} - -func (v *Visitor) VisitHTMLComment(n *parser.HTMLComment) error { - return v.HTMLComment(n) -} - -func (v *Visitor) VisitCallTemplateExpression(n *parser.CallTemplateExpression) error { - return v.CallTemplateExpression(n) -} - -func (v *Visitor) VisitTemplElementExpression(n *parser.TemplElementExpression) error { - return v.TemplElementExpression(n) -} - -func (v *Visitor) VisitChildrenExpression(n *parser.ChildrenExpression) error { - return v.ChildrenExpression(n) -} - -func (v *Visitor) VisitIfExpression(n *parser.IfExpression) error { - return v.IfExpression(n) -} - -func (v *Visitor) VisitSwitchExpression(n *parser.SwitchExpression) error { - return v.SwitchExpression(n) -} - -func (v *Visitor) VisitForExpression(n *parser.ForExpression) error { - return v.ForExpression(n) -} - -func (v *Visitor) VisitGoCode(n *parser.GoCode) error { - return v.GoCode(n) -} - -func (v *Visitor) VisitStringExpression(n *parser.StringExpression) error { - return v.StringExpression(n) -} - -func (v *Visitor) VisitScriptTemplate(n *parser.ScriptTemplate) error { - return v.ScriptTemplate(n) -} diff --git a/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go b/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go deleted file mode 100644 index 558e12a..0000000 --- a/vendor/github.com/a-h/templ/parser/v2/whitespaceparser.go +++ /dev/null @@ -1,12 +0,0 @@ -package parser - -import "github.com/a-h/parse" - -// Eat any whitespace. -var whitespaceExpression = parse.Func(func(pi *parse.Input) (n Node, ok bool, err error) { - r := &Whitespace{} - if r.Value, ok, err = parse.OptionalWhitespace.Parse(pi); err != nil || !ok { - return - } - return r, len(r.Value) > 0, nil -}) diff --git a/vendor/github.com/a-h/templ/runtime.go b/vendor/github.com/a-h/templ/runtime.go deleted file mode 100644 index c804b08..0000000 --- a/vendor/github.com/a-h/templ/runtime.go +++ /dev/null @@ -1,714 +0,0 @@ -package templ - -import ( - "bytes" - "context" - "crypto/sha256" - "encoding/hex" - "errors" - "fmt" - "html" - "html/template" - "io" - "net/http" - "reflect" - "sort" - "strings" - "sync" - - "github.com/a-h/templ/safehtml" -) - -// Types exposed by all components. - -// Component is the interface that all templates implement. -type Component interface { - // Render the template. - Render(ctx context.Context, w io.Writer) error -} - -// ComponentFunc converts a function that matches the Component interface's -// Render method into a Component. -type ComponentFunc func(ctx context.Context, w io.Writer) error - -// Render the template. -func (cf ComponentFunc) Render(ctx context.Context, w io.Writer) error { - return cf(ctx, w) -} - -// WithNonce sets a CSP nonce on the context and returns it. -func WithNonce(ctx context.Context, nonce string) context.Context { - ctx, v := getContext(ctx) - v.nonce = nonce - return ctx -} - -// GetNonce returns the CSP nonce value set with WithNonce, or an -// empty string if none has been set. -func GetNonce(ctx context.Context) (nonce string) { - if ctx == nil { - return "" - } - _, v := getContext(ctx) - return v.nonce -} - -func WithChildren(ctx context.Context, children Component) context.Context { - ctx, v := getContext(ctx) - v.children = &children - return ctx -} - -func ClearChildren(ctx context.Context) context.Context { - _, v := getContext(ctx) - v.children = nil - return ctx -} - -// NopComponent is a component that doesn't render anything. -var NopComponent = ComponentFunc(func(ctx context.Context, w io.Writer) error { return nil }) - -// GetChildren from the context. -func GetChildren(ctx context.Context) Component { - _, v := getContext(ctx) - if v.children == nil { - return NopComponent - } - return *v.children -} - -// EscapeString escapes HTML text within templates. -func EscapeString[T ~string](s T) string { - return html.EscapeString(string(s)) -} - -// Bool attribute value. -func Bool(value bool) bool { - return value -} - -// Classes for CSS. -// Supported types are string, ConstantCSSClass, ComponentCSSClass, map[string]bool. -func Classes(classes ...any) CSSClasses { - return CSSClasses(classes) -} - -// CSSClasses is a slice of CSS classes. -type CSSClasses []any - -// String returns the names of all CSS classes. -func (classes CSSClasses) String() string { - if len(classes) == 0 { - return "" - } - cp := newCSSProcessor() - for _, v := range classes { - cp.Add(v) - } - return cp.String() -} - -func newCSSProcessor() *cssProcessor { - return &cssProcessor{ - classNameToEnabled: make(map[string]bool), - } -} - -type cssProcessor struct { - classNameToEnabled map[string]bool - orderedNames []string -} - -func (cp *cssProcessor) Add(item any) { - switch c := item.(type) { - case []string: - for _, className := range c { - cp.AddClassName(className, true) - } - case string: - cp.AddClassName(c, true) - case ConstantCSSClass: - cp.AddClassName(c.ClassName(), true) - case ComponentCSSClass: - cp.AddClassName(c.ClassName(), true) - case map[string]bool: - // In Go, map keys are iterated in a randomized order. - // So the keys in the map must be sorted to produce consistent output. - keys := make([]string, len(c)) - var i int - for key := range c { - keys[i] = key - i++ - } - sort.Strings(keys) - for _, className := range keys { - cp.AddClassName(className, c[className]) - } - case []KeyValue[string, bool]: - for _, kv := range c { - cp.AddClassName(kv.Key, kv.Value) - } - case KeyValue[string, bool]: - cp.AddClassName(c.Key, c.Value) - case []KeyValue[CSSClass, bool]: - for _, kv := range c { - cp.AddClassName(kv.Key.ClassName(), kv.Value) - } - case KeyValue[CSSClass, bool]: - cp.AddClassName(c.Key.ClassName(), c.Value) - case CSSClasses: - for _, item := range c { - cp.Add(item) - } - case []CSSClass: - for _, item := range c { - cp.Add(item) - } - case func() CSSClass: - cp.AddClassName(c().ClassName(), true) - default: - cp.AddClassName(unknownTypeClassName, true) - } -} - -func (cp *cssProcessor) AddClassName(className string, enabled bool) { - cp.classNameToEnabled[className] = enabled - cp.orderedNames = append(cp.orderedNames, className) -} - -func (cp *cssProcessor) String() string { - // Order the outputs according to how they were input, and remove disabled names. - rendered := make(map[string]any, len(cp.classNameToEnabled)) - var names []string - for _, name := range cp.orderedNames { - if enabled := cp.classNameToEnabled[name]; !enabled { - continue - } - if _, hasBeenRendered := rendered[name]; hasBeenRendered { - continue - } - names = append(names, name) - rendered[name] = struct{}{} - } - - return strings.Join(names, " ") -} - -// KeyValue is a key and value pair. -type KeyValue[TKey comparable, TValue any] struct { - Key TKey `json:"name"` - Value TValue `json:"value"` -} - -// KV creates a new key/value pair from the input key and value. -func KV[TKey comparable, TValue any](key TKey, value TValue) KeyValue[TKey, TValue] { - return KeyValue[TKey, TValue]{ - Key: key, - Value: value, - } -} - -const unknownTypeClassName = "--templ-css-class-unknown-type" - -// Class returns a CSS class name. -// Deprecated: use a string instead. -func Class(name string) CSSClass { - return SafeClass(name) -} - -// SafeClass bypasses CSS class name validation. -// Deprecated: use a string instead. -func SafeClass(name string) CSSClass { - return ConstantCSSClass(name) -} - -// CSSClass provides a class name. -type CSSClass interface { - ClassName() string -} - -// ConstantCSSClass is a string constant of a CSS class name. -// Deprecated: use a string instead. -type ConstantCSSClass string - -// ClassName of the CSS class. -func (css ConstantCSSClass) ClassName() string { - return string(css) -} - -// ComponentCSSClass is a templ.CSS -type ComponentCSSClass struct { - // ID of the class, will be autogenerated. - ID string - // Definition of the CSS. - Class SafeCSS -} - -// ClassName of the CSS class. -func (css ComponentCSSClass) ClassName() string { - return css.ID -} - -// CSSID calculates an ID. -func CSSID(name string, css string) string { - sum := sha256.Sum256([]byte(css)) - hs := hex.EncodeToString(sum[:])[0:8] // NOTE: See issue #978. Minimum recommended hs length is 6. - // Benchmarking showed this was fastest, and with fewest allocations (1). - // Using strings.Builder (2 allocs). - // Using fmt.Sprintf (3 allocs). - return name + "_" + hs -} - -// NewCSSMiddleware creates HTTP middleware that renders a global stylesheet of ComponentCSSClass -// CSS if the request path matches, or updates the HTTP context to ensure that any handlers that -// use templ.Components skip rendering <style> elements for classes that are included in the global -// stylesheet. By default, the stylesheet path is /styles/templ.css -func NewCSSMiddleware(next http.Handler, classes ...CSSClass) CSSMiddleware { - return CSSMiddleware{ - Path: "/styles/templ.css", - CSSHandler: NewCSSHandler(classes...), - Next: next, - } -} - -// CSSMiddleware renders a global stylesheet. -type CSSMiddleware struct { - Path string - CSSHandler CSSHandler - Next http.Handler -} - -func (cssm CSSMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == cssm.Path { - cssm.CSSHandler.ServeHTTP(w, r) - return - } - // Add registered classes to the context. - ctx, v := getContext(r.Context()) - for _, c := range cssm.CSSHandler.Classes { - v.addClass(c.ID) - } - // Serve the request. Templ components will use the updated context - // to know to skip rendering <style> elements for any component CSS - // classes that have been included in the global stylesheet. - cssm.Next.ServeHTTP(w, r.WithContext(ctx)) -} - -// NewCSSHandler creates a handler that serves a stylesheet containing the CSS of the -// classes passed in. This is used by the CSSMiddleware to provide global stylesheets -// for templ components. -func NewCSSHandler(classes ...CSSClass) CSSHandler { - ccssc := make([]ComponentCSSClass, 0, len(classes)) - for _, c := range classes { - ccss, ok := c.(ComponentCSSClass) - if !ok { - continue - } - ccssc = append(ccssc, ccss) - } - return CSSHandler{ - Classes: ccssc, - } -} - -// CSSHandler is a HTTP handler that serves CSS. -type CSSHandler struct { - Logger func(err error) - Classes []ComponentCSSClass -} - -func (cssh CSSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/css") - for _, c := range cssh.Classes { - _, err := w.Write([]byte(c.Class)) - if err != nil && cssh.Logger != nil { - cssh.Logger(err) - } - } -} - -// RenderCSSItems renders the CSS to the writer, if the items haven't already been rendered. -func RenderCSSItems(ctx context.Context, w io.Writer, classes ...any) (err error) { - if len(classes) == 0 { - return nil - } - _, v := getContext(ctx) - sb := new(strings.Builder) - renderCSSItemsToBuilder(sb, v, classes...) - if sb.Len() == 0 { - return nil - } - if _, err = io.WriteString(w, `<style type="text/css"`); err != nil { - return err - } - if v.nonce != "" { - if err = writeStrings(w, ` nonce="`, EscapeString(v.nonce), `"`); err != nil { - return err - } - } - return writeStrings(w, `>`, sb.String(), `</style>`) -} - -func renderCSSItemsToBuilder(sb *strings.Builder, v *contextValue, classes ...any) { - for _, c := range classes { - switch ccc := c.(type) { - case ComponentCSSClass: - if !v.hasClassBeenRendered(ccc.ID) { - sb.WriteString(string(ccc.Class)) - v.addClass(ccc.ID) - } - case KeyValue[ComponentCSSClass, bool]: - if !ccc.Value { - continue - } - renderCSSItemsToBuilder(sb, v, ccc.Key) - case KeyValue[CSSClass, bool]: - if !ccc.Value { - continue - } - renderCSSItemsToBuilder(sb, v, ccc.Key) - case CSSClasses: - renderCSSItemsToBuilder(sb, v, ccc...) - case []CSSClass: - for _, item := range ccc { - renderCSSItemsToBuilder(sb, v, item) - } - case func() CSSClass: - renderCSSItemsToBuilder(sb, v, ccc()) - case []string: - // Skip. These are class names, not CSS classes. - case string: - // Skip. This is a class name, not a CSS class. - case ConstantCSSClass: - // Skip. This is a class name, not a CSS class. - case CSSClass: - // Skip. This is a class name, not a CSS class. - case map[string]bool: - // Skip. These are class names, not CSS classes. - case KeyValue[string, bool]: - // Skip. These are class names, not CSS classes. - case []KeyValue[string, bool]: - // Skip. These are class names, not CSS classes. - case KeyValue[ConstantCSSClass, bool]: - // Skip. These are class names, not CSS classes. - case []KeyValue[ConstantCSSClass, bool]: - // Skip. These are class names, not CSS classes. - } - } -} - -// SafeCSS is CSS that has been sanitized. -type SafeCSS string - -type SafeCSSProperty string - -var safeCSSPropertyType = reflect.TypeOf(SafeCSSProperty("")) - -// SanitizeCSS sanitizes CSS properties to ensure that they are safe. -func SanitizeCSS[T ~string](property string, value T) SafeCSS { - if reflect.TypeOf(value) == safeCSSPropertyType { - return SafeCSS(safehtml.SanitizeCSSProperty(property) + ":" + string(value) + ";") - } - p, v := safehtml.SanitizeCSS(property, string(value)) - return SafeCSS(p + ":" + v + ";") -} - -type Attributer interface { - Items() []KeyValue[string, any] -} - -// Attributes is an alias to map[string]any made for spread attributes. -type Attributes map[string]any - -var _ Attributer = Attributes{} - -// Returns the items of the attributes map in key sorted order. -func (a Attributes) Items() []KeyValue[string, any] { - var ( - items = make([]KeyValue[string, any], len(a)) - i int - ) - for k, v := range a { - items[i] = KeyValue[string, any]{Key: k, Value: v} - i++ - } - sort.Slice(items, func(i, j int) bool { - return items[i].Key < items[j].Key - }) - return items -} - -// OrderedAttributes stores attributes in order of insertion. -type OrderedAttributes []KeyValue[string, any] - -var _ Attributer = OrderedAttributes{} - -func (a OrderedAttributes) Items() []KeyValue[string, any] { - return a -} - -func writeStrings(w io.Writer, ss ...string) (err error) { - for _, s := range ss { - if _, err = io.WriteString(w, s); err != nil { - return err - } - } - return nil -} - -func RenderAttributes(ctx context.Context, w io.Writer, attributes Attributer) (err error) { - for _, item := range attributes.Items() { - key := item.Key - value := item.Value - switch value := value.(type) { - case string: - if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(value), `"`); err != nil { - return err - } - case *string: - if value == nil { - continue - } - if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(*value), `"`); err != nil { - return err - } - case bool: - if !value { - continue - } - if err = writeStrings(w, ` `, EscapeString(key)); err != nil { - return err - } - case *bool: - if value == nil || !*value { - continue - } - if err = writeStrings(w, ` `, EscapeString(key)); err != nil { - return err - } - case int, int8, int16, int32, int64, - uint, uint8, uint16, uint32, uint64, uintptr, - float32, float64, complex64, complex128: - if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(fmt.Sprint(value)), `"`); err != nil { - return err - } - case *int, *int8, *int16, *int32, *int64, - *uint, *uint8, *uint16, *uint32, *uint64, *uintptr, - *float32, *float64, *complex64, *complex128: - value = ptrValue(value) - if value == nil { - continue - } - if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(fmt.Sprint(value)), `"`); err != nil { - return err - } - case KeyValue[string, bool]: - if !value.Value { - continue - } - if err = writeStrings(w, ` `, EscapeString(key), `="`, EscapeString(value.Key), `"`); err != nil { - return err - } - case KeyValue[bool, bool]: - if !value.Value || !value.Key { - continue - } - if err = writeStrings(w, ` `, EscapeString(key)); err != nil { - return err - } - case func() bool: - if !value() { - continue - } - if err = writeStrings(w, ` `, EscapeString(key)); err != nil { - return err - } - } - } - return nil -} - -func ptrValue(v any) any { - if v == nil { - return nil - } - rv := reflect.ValueOf(v) - if rv.Kind() != reflect.Ptr { - return v - } - if rv.IsNil() { - return nil - } - return rv.Elem().Interface() -} - -// Context. - -type contextKeyType int - -const contextKey = contextKeyType(0) - -type contextValue struct { - ss map[string]struct{} - onceHandles map[*OnceHandle]struct{} - children *Component - nonce string -} - -func (v *contextValue) setHasBeenRendered(h *OnceHandle) { - if v.onceHandles == nil { - v.onceHandles = map[*OnceHandle]struct{}{} - } - v.onceHandles[h] = struct{}{} -} - -func (v *contextValue) getHasBeenRendered(h *OnceHandle) (ok bool) { - if v.onceHandles == nil { - v.onceHandles = map[*OnceHandle]struct{}{} - } - _, ok = v.onceHandles[h] - return -} - -func (v *contextValue) addScript(s string) { - if v.ss == nil { - v.ss = map[string]struct{}{} - } - v.ss["script_"+s] = struct{}{} -} - -func (v *contextValue) hasScriptBeenRendered(s string) (ok bool) { - if v.ss == nil { - v.ss = map[string]struct{}{} - } - _, ok = v.ss["script_"+s] - return -} - -func (v *contextValue) addClass(s string) { - if v.ss == nil { - v.ss = map[string]struct{}{} - } - v.ss["class_"+s] = struct{}{} -} - -func (v *contextValue) hasClassBeenRendered(s string) (ok bool) { - if v.ss == nil { - v.ss = map[string]struct{}{} - } - _, ok = v.ss["class_"+s] - return -} - -// InitializeContext initializes context used to store internal state used during rendering. -func InitializeContext(ctx context.Context) context.Context { - if _, ok := ctx.Value(contextKey).(*contextValue); ok { - return ctx - } - v := &contextValue{} - ctx = context.WithValue(ctx, contextKey, v) - return ctx -} - -func getContext(ctx context.Context) (context.Context, *contextValue) { - v, ok := ctx.Value(contextKey).(*contextValue) - if !ok { - ctx = InitializeContext(ctx) - v = ctx.Value(contextKey).(*contextValue) - } - return ctx, v -} - -var bufferPool = sync.Pool{ - New: func() any { - return new(bytes.Buffer) - }, -} - -func GetBuffer() *bytes.Buffer { - return bufferPool.Get().(*bytes.Buffer) -} - -func ReleaseBuffer(b *bytes.Buffer) { - b.Reset() - bufferPool.Put(b) -} - -type ints interface { - ~int | ~int8 | ~int16 | ~int32 | ~int64 -} - -type uints interface { - ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr -} - -type floats interface { - ~float32 | ~float64 -} - -type complexNumbers interface { - ~complex64 | ~complex128 -} - -type stringable interface { - ints | uints | floats | complexNumbers | ~string | ~bool -} - -// JoinStringErrs joins an optional list of errors. -func JoinStringErrs[T stringable](s T, errs ...error) (string, error) { - return fmt.Sprint(s), errors.Join(errs...) -} - -// Error returned during template rendering. -type Error struct { - Err error - // FileName of the template file. - FileName string - // Line index of the error. - Line int - // Col index of the error. - Col int -} - -func (e Error) Error() string { - if e.FileName == "" { - e.FileName = "templ" - } - return fmt.Sprintf("%s: error at line %d, col %d: %v", e.FileName, e.Line, e.Col, e.Err) -} - -func (e Error) Unwrap() error { - return e.Err -} - -// Raw renders the input HTML to the output without applying HTML escaping. -// -// Use of this component presents a security risk - the HTML should come from -// a trusted source, because it will be included as-is in the output. -func Raw[T ~string](html T, errs ...error) Component { - return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { - if err = errors.Join(errs...); err != nil { - return err - } - _, err = io.WriteString(w, string(html)) - return err - }) -} - -// FromGoHTML creates a templ Component from a Go html/template template. -func FromGoHTML(t *template.Template, data any) Component { - return ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { - return t.Execute(w, data) - }) -} - -// ToGoHTML renders the component to a Go html/template template.HTML string. -func ToGoHTML(ctx context.Context, c Component) (s template.HTML, err error) { - b := GetBuffer() - defer ReleaseBuffer(b) - if err = c.Render(ctx, b); err != nil { - return - } - s = template.HTML(b.String()) - return -} diff --git a/vendor/github.com/a-h/templ/runtime/buffer.go b/vendor/github.com/a-h/templ/runtime/buffer.go deleted file mode 100644 index 63e4acd..0000000 --- a/vendor/github.com/a-h/templ/runtime/buffer.go +++ /dev/null @@ -1,62 +0,0 @@ -package runtime - -import ( - "bufio" - "io" - "net/http" -) - -// DefaultBufferSize is the default size of buffers. It is set to 4KB by default, which is the -// same as the default buffer size of bufio.Writer. -var DefaultBufferSize = 4 * 1024 // 4KB - -// Buffer is a wrapper around bufio.Writer that enables flushing and closing of -// the underlying writer. -type Buffer struct { - Underlying io.Writer - b *bufio.Writer -} - -// Write the contents of p into the buffer. -func (b *Buffer) Write(p []byte) (n int, err error) { - return b.b.Write(p) -} - -// Flush writes any buffered data to the underlying io.Writer and -// calls the Flush method of the underlying http.Flusher if it implements it. -func (b *Buffer) Flush() error { - if err := b.b.Flush(); err != nil { - return err - } - if f, ok := b.Underlying.(http.Flusher); ok { - f.Flush() - } - return nil -} - -// Close closes the buffer and the underlying io.Writer if it implements io.Closer. -func (b *Buffer) Close() error { - if c, ok := b.Underlying.(io.Closer); ok { - return c.Close() - } - return nil -} - -// Reset sets the underlying io.Writer to w and resets the buffer. -func (b *Buffer) Reset(w io.Writer) { - if b.b == nil { - b.b = bufio.NewWriterSize(b, DefaultBufferSize) - } - b.Underlying = w - b.b.Reset(w) -} - -// Size returns the size of the underlying buffer in bytes. -func (b *Buffer) Size() int { - return b.b.Size() -} - -// WriteString writes the contents of s into the buffer. -func (b *Buffer) WriteString(s string) (n int, err error) { - return b.b.WriteString(s) -} diff --git a/vendor/github.com/a-h/templ/runtime/bufferpool.go b/vendor/github.com/a-h/templ/runtime/bufferpool.go deleted file mode 100644 index ca2a131..0000000 --- a/vendor/github.com/a-h/templ/runtime/bufferpool.go +++ /dev/null @@ -1,38 +0,0 @@ -package runtime - -import ( - "io" - "sync" -) - -var bufferPool = sync.Pool{ - New: func() any { - return new(Buffer) - }, -} - -// GetBuffer creates and returns a new buffer if the writer is not already a buffer, -// or returns the existing buffer if it is. -func GetBuffer(w io.Writer) (b *Buffer, existing bool) { - if w == nil { - return nil, false - } - b, ok := w.(*Buffer) - if ok { - return b, true - } - b = bufferPool.Get().(*Buffer) - b.Reset(w) - return b, false -} - -// ReleaseBuffer flushes the buffer and returns it to the pool. -func ReleaseBuffer(w io.Writer) (err error) { - b, ok := w.(*Buffer) - if !ok { - return nil - } - err = b.Flush() - bufferPool.Put(b) - return err -} diff --git a/vendor/github.com/a-h/templ/runtime/builder.go b/vendor/github.com/a-h/templ/runtime/builder.go deleted file mode 100644 index 0f4c9d4..0000000 --- a/vendor/github.com/a-h/templ/runtime/builder.go +++ /dev/null @@ -1,8 +0,0 @@ -package runtime - -import "strings" - -// GetBuilder returns a strings.Builder. -func GetBuilder() (sb strings.Builder) { - return sb -} diff --git a/vendor/github.com/a-h/templ/runtime/runtime.go b/vendor/github.com/a-h/templ/runtime/runtime.go deleted file mode 100644 index aaa4a2c..0000000 --- a/vendor/github.com/a-h/templ/runtime/runtime.go +++ /dev/null @@ -1,21 +0,0 @@ -package runtime - -import ( - "context" - "io" - - "github.com/a-h/templ" -) - -// GeneratedComponentInput is used to avoid generated code needing to import the `context` and `io` packages. -type GeneratedComponentInput struct { - Context context.Context - Writer io.Writer -} - -// GeneratedTemplate is used to avoid generated code needing to import the `context` and `io` packages. -func GeneratedTemplate(f func(GeneratedComponentInput) error) templ.Component { - return templ.ComponentFunc(func(ctx context.Context, w io.Writer) error { - return f(GeneratedComponentInput{ctx, w}) - }) -} diff --git a/vendor/github.com/a-h/templ/runtime/scriptelement.go b/vendor/github.com/a-h/templ/runtime/scriptelement.go deleted file mode 100644 index a742e93..0000000 --- a/vendor/github.com/a-h/templ/runtime/scriptelement.go +++ /dev/null @@ -1,107 +0,0 @@ -package runtime - -import ( - "encoding/json" - "errors" - "strings" - "unicode/utf8" -) - -func ScriptContentInsideStringLiteral[T any](v T, errs ...error) (string, error) { - return scriptContent(v, true, errs...) -} - -func ScriptContentOutsideStringLiteral[T any](v T, errs ...error) (string, error) { - return scriptContent(v, false, errs...) -} - -func scriptContent[T any](v T, insideStringLiteral bool, errs ...error) (string, error) { - if errors.Join(errs...) != nil { - return "", errors.Join(errs...) - } - if vs, ok := any(v).(string); ok && insideStringLiteral { - return replace(vs, jsStrReplacementTable), nil - } - jd, err := json.Marshal(v) - if err != nil { - return "", err - } - if insideStringLiteral { - return replace(string(jd), jsStrReplacementTable), nil - } - return string(jd), nil -} - -// See https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/html/template/js.go - -// replace replaces each rune r of s with replacementTable[r], provided that -// r < len(replacementTable). If replacementTable[r] is the empty string then -// no replacement is made. -// It also replaces runes U+2028 and U+2029 with the raw strings `\u2028` and -// `\u2029`. -func replace(s string, replacementTable []string) string { - var b strings.Builder - r, w, written := rune(0), 0, 0 - for i := 0; i < len(s); i += w { - // See comment in htmlEscaper. - r, w = utf8.DecodeRuneInString(s[i:]) - var repl string - switch { - case int(r) < len(lowUnicodeReplacementTable): - repl = lowUnicodeReplacementTable[r] - case int(r) < len(replacementTable) && replacementTable[r] != "": - repl = replacementTable[r] - case r == '\u2028': - repl = `\u2028` - case r == '\u2029': - repl = `\u2029` - default: - continue - } - if written == 0 { - b.Grow(len(s)) - } - b.WriteString(s[written:i]) - b.WriteString(repl) - written = i + w - } - if written == 0 { - return s - } - b.WriteString(s[written:]) - return b.String() -} - -var lowUnicodeReplacementTable = []string{ - 0: `\u0000`, 1: `\u0001`, 2: `\u0002`, 3: `\u0003`, 4: `\u0004`, 5: `\u0005`, 6: `\u0006`, - '\a': `\u0007`, - '\b': `\u0008`, - '\t': `\t`, - '\n': `\n`, - '\v': `\u000b`, // "\v" == "v" on IE 6. - '\f': `\f`, - '\r': `\r`, - 0xe: `\u000e`, 0xf: `\u000f`, 0x10: `\u0010`, 0x11: `\u0011`, 0x12: `\u0012`, 0x13: `\u0013`, - 0x14: `\u0014`, 0x15: `\u0015`, 0x16: `\u0016`, 0x17: `\u0017`, 0x18: `\u0018`, 0x19: `\u0019`, - 0x1a: `\u001a`, 0x1b: `\u001b`, 0x1c: `\u001c`, 0x1d: `\u001d`, 0x1e: `\u001e`, 0x1f: `\u001f`, -} - -var jsStrReplacementTable = []string{ - 0: `\u0000`, - '\t': `\t`, - '\n': `\n`, - '\v': `\u000b`, // "\v" == "v" on IE 6. - '\f': `\f`, - '\r': `\r`, - // Encode HTML specials as hex so the output can be embedded - // in HTML attributes without further encoding. - '"': `\u0022`, - '`': `\u0060`, - '&': `\u0026`, - '\'': `\u0027`, - '+': `\u002b`, - '/': `\/`, - '<': `\u003c`, - '>': `\u003e`, - '\\': `\\`, -} diff --git a/vendor/github.com/a-h/templ/runtime/styleattribute.go b/vendor/github.com/a-h/templ/runtime/styleattribute.go deleted file mode 100644 index c94f4e3..0000000 --- a/vendor/github.com/a-h/templ/runtime/styleattribute.go +++ /dev/null @@ -1,217 +0,0 @@ -package runtime - -import ( - "errors" - "fmt" - "html" - "maps" - "reflect" - "slices" - "strings" - - "github.com/a-h/templ" - "github.com/a-h/templ/safehtml" -) - -// SanitizeStyleAttributeValues renders a style attribute value. -// The supported types are: -// - string -// - templ.SafeCSS -// - map[string]string -// - map[string]templ.SafeCSSProperty -// - templ.KeyValue[string, string] - A map of key/values where the key is the CSS property name and the value is the CSS property value. -// - templ.KeyValue[string, templ.SafeCSSProperty] - A map of key/values where the key is the CSS property name and the value is the CSS property value. -// - templ.KeyValue[string, bool] - The bool determines whether the value should be included. -// - templ.KeyValue[templ.SafeCSS, bool] - The bool determines whether the value should be included. -// - func() (anyOfTheAboveTypes) -// - func() (anyOfTheAboveTypes, error) -// - []anyOfTheAboveTypes -// -// In the above, templ.SafeCSS and templ.SafeCSSProperty are types that are used to indicate that the value is safe to render as CSS without sanitization. -// All other types are sanitized before rendering. -// -// If an error is returned by any function, or a non-nil error is included in the input, the error is returned. -func SanitizeStyleAttributeValues(values ...any) (string, error) { - if err := getJoinedErrorsFromValues(values...); err != nil { - return "", err - } - sb := new(strings.Builder) - for _, v := range values { - if v == nil { - continue - } - if err := sanitizeStyleAttributeValue(sb, v); err != nil { - return "", err - } - } - return sb.String(), nil -} - -func sanitizeStyleAttributeValue(sb *strings.Builder, v any) error { - // Process concrete types. - switch v := v.(type) { - case string: - return processString(sb, v) - - case templ.SafeCSS: - return processSafeCSS(sb, v) - - case map[string]string: - return processStringMap(sb, v) - - case map[string]templ.SafeCSSProperty: - return processSafeCSSPropertyMap(sb, v) - - case templ.KeyValue[string, string]: - return processStringKV(sb, v) - - case templ.KeyValue[string, bool]: - if v.Value { - return processString(sb, v.Key) - } - return nil - - case templ.KeyValue[templ.SafeCSS, bool]: - if v.Value { - return processSafeCSS(sb, v.Key) - } - return nil - } - - // Fall back to reflection. - - // Handle functions first using reflection. - if handled, err := handleFuncWithReflection(sb, v); handled { - return err - } - - // Handle slices using reflection before concrete types. - if handled, err := handleSliceWithReflection(sb, v); handled { - return err - } - - _, err := sb.WriteString(TemplUnsupportedStyleAttributeValue) - return err -} - -func processSafeCSS(sb *strings.Builder, v templ.SafeCSS) error { - if v == "" { - return nil - } - sb.WriteString(html.EscapeString(string(v))) - if !strings.HasSuffix(string(v), ";") { - sb.WriteRune(';') - } - return nil -} - -func processString(sb *strings.Builder, v string) error { - if v == "" { - return nil - } - sanitized := strings.TrimSpace(safehtml.SanitizeStyleValue(v)) - sb.WriteString(html.EscapeString(sanitized)) - if !strings.HasSuffix(sanitized, ";") { - sb.WriteRune(';') - } - return nil -} - -var ErrInvalidStyleAttributeFunctionSignature = errors.New("invalid function signature, should be in the form func() (string, error)") - -// handleFuncWithReflection handles functions using reflection. -func handleFuncWithReflection(sb *strings.Builder, v any) (bool, error) { - rv := reflect.ValueOf(v) - if rv.Kind() != reflect.Func { - return false, nil - } - - t := rv.Type() - if t.NumIn() != 0 || (t.NumOut() != 1 && t.NumOut() != 2) { - return false, ErrInvalidStyleAttributeFunctionSignature - } - - // Check the types of the return values - if t.NumOut() == 2 { - // Ensure the second return value is of type `error` - secondReturnType := t.Out(1) - if !secondReturnType.Implements(reflect.TypeOf((*error)(nil)).Elem()) { - return false, fmt.Errorf("second return value must be of type error, got %v", secondReturnType) - } - } - - results := rv.Call(nil) - - if t.NumOut() == 2 { - // Check if the second return value is an error - if errVal := results[1].Interface(); errVal != nil { - if err, ok := errVal.(error); ok && err != nil { - return true, err - } - } - } - - return true, sanitizeStyleAttributeValue(sb, results[0].Interface()) -} - -// handleSliceWithReflection handles slices using reflection. -func handleSliceWithReflection(sb *strings.Builder, v any) (bool, error) { - rv := reflect.ValueOf(v) - if rv.Kind() != reflect.Slice { - return false, nil - } - for i := range rv.Len() { - elem := rv.Index(i).Interface() - if err := sanitizeStyleAttributeValue(sb, elem); err != nil { - return true, err - } - } - return true, nil -} - -// processStringMap processes a map[string]string. -func processStringMap(sb *strings.Builder, m map[string]string) error { - for _, name := range slices.Sorted(maps.Keys(m)) { - name, value := safehtml.SanitizeCSS(name, m[name]) - sb.WriteString(html.EscapeString(name)) - sb.WriteRune(':') - sb.WriteString(html.EscapeString(value)) - sb.WriteRune(';') - } - return nil -} - -// processSafeCSSPropertyMap processes a map[string]templ.SafeCSSProperty. -func processSafeCSSPropertyMap(sb *strings.Builder, m map[string]templ.SafeCSSProperty) error { - for _, name := range slices.Sorted(maps.Keys(m)) { - sb.WriteString(html.EscapeString(safehtml.SanitizeCSSProperty(name))) - sb.WriteRune(':') - sb.WriteString(html.EscapeString(string(m[name]))) - sb.WriteRune(';') - } - return nil -} - -// processStringKV processes a templ.KeyValue[string, string]. -func processStringKV(sb *strings.Builder, kv templ.KeyValue[string, string]) error { - name, value := safehtml.SanitizeCSS(kv.Key, kv.Value) - sb.WriteString(html.EscapeString(name)) - sb.WriteRune(':') - sb.WriteString(html.EscapeString(value)) - sb.WriteRune(';') - return nil -} - -// getJoinedErrorsFromValues collects and joins errors from the input values. -func getJoinedErrorsFromValues(values ...any) error { - var errs []error - for _, v := range values { - if err, ok := v.(error); ok { - errs = append(errs, err) - } - } - return errors.Join(errs...) -} - -// TemplUnsupportedStyleAttributeValue is the default value returned for unsupported types. -var TemplUnsupportedStyleAttributeValue = "zTemplUnsupportedStyleAttributeValue:Invalid;" diff --git a/vendor/github.com/a-h/templ/runtime/watchmode.go b/vendor/github.com/a-h/templ/runtime/watchmode.go deleted file mode 100644 index b083eb0..0000000 --- a/vendor/github.com/a-h/templ/runtime/watchmode.go +++ /dev/null @@ -1,148 +0,0 @@ -package runtime - -import ( - "crypto/sha256" - "encoding/hex" - "errors" - "fmt" - "io" - "os" - "path/filepath" - "runtime" - "strconv" - "strings" - "sync" - "time" -) - -var developmentMode = os.Getenv("TEMPL_DEV_MODE") == "true" - -func GetDevModeTextFileName(templFileName string) string { - if strings.HasSuffix(templFileName, "_templ.go") { - templFileName = strings.TrimSuffix(templFileName, "_templ.go") + ".templ" - } - absFileName, err := filepath.Abs(templFileName) - if err != nil { - absFileName = templFileName - } - absFileName, err = filepath.EvalSymlinks(absFileName) - if err != nil { - absFileName = templFileName - } - absFileName = normalizePath(absFileName) - - hashedFileName := sha256.Sum256([]byte(absFileName)) - outputFileName := fmt.Sprintf("templ_%s.txt", hex.EncodeToString(hashedFileName[:])) - - root := os.TempDir() - if os.Getenv("TEMPL_DEV_MODE_ROOT") != "" { - root = os.Getenv("TEMPL_DEV_MODE_ROOT") - } - - return filepath.Join(root, outputFileName) -} - -// normalizePath converts Windows paths to Unix style paths. -func normalizePath(p string) string { - p = strings.ReplaceAll(filepath.Clean(p), `\`, `/`) - parts := strings.SplitN(p, ":", 2) - if len(parts) == 2 && len(parts[0]) == 1 { - drive := strings.ToLower(parts[0]) - p = "/" + drive + parts[1] - } - return p -} - -// WriteString writes the string to the writer. If development mode is enabled -// s is replaced with the string at the index in the _templ.txt file. -func WriteString(w io.Writer, index int, s string) (err error) { - if developmentMode { - _, path, _, _ := runtime.Caller(1) - if !strings.HasSuffix(path, "_templ.go") { - return errors.New("templ: attempt to use WriteString from a non templ file") - } - path, err := filepath.EvalSymlinks(path) - if err != nil { - return fmt.Errorf("templ: failed to eval symlinks for %q: %w", path, err) - } - - txtFilePath := GetDevModeTextFileName(path) - literals, err := getWatchedStrings(txtFilePath) - if err != nil { - return fmt.Errorf("templ: failed to get watched strings for %q: %w", path, err) - } - if index > len(literals) { - return fmt.Errorf("templ: failed to find line %d in %s", index, txtFilePath) - } - - s, err = strconv.Unquote(`"` + literals[index-1] + `"`) - if err != nil { - return err - } - } - _, err = io.WriteString(w, s) - return err -} - -var ( - watchModeCache = map[string]watchState{} - watchStateMutex sync.Mutex -) - -type watchState struct { - modTime time.Time - strings []string -} - -func getWatchedStrings(txtFilePath string) ([]string, error) { - watchStateMutex.Lock() - defer watchStateMutex.Unlock() - - state, cached := watchModeCache[txtFilePath] - if !cached { - return cacheStrings(txtFilePath) - } - - if time.Since(state.modTime) < time.Millisecond*100 { - return state.strings, nil - } - - info, err := os.Stat(txtFilePath) - if err != nil { - return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) - } - - if !info.ModTime().After(state.modTime) { - return state.strings, nil - } - - return cacheStrings(txtFilePath) -} - -func cacheStrings(txtFilePath string) ([]string, error) { - txtFile, err := os.Open(txtFilePath) - if err != nil { - return nil, fmt.Errorf("templ: failed to open %s: %w", txtFilePath, err) - } - defer func() { - _ = txtFile.Close() - }() - - info, err := txtFile.Stat() - if err != nil { - return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) - } - - all, err := io.ReadAll(txtFile) - if err != nil { - return nil, fmt.Errorf("templ: failed to read %s: %w", txtFilePath, err) - } - - literals := strings.Split(string(all), "\n") - watchModeCache[txtFilePath] = watchState{ - modTime: info.ModTime(), - strings: literals, - } - - return literals, nil -} diff --git a/vendor/github.com/a-h/templ/safehtml/style.go b/vendor/github.com/a-h/templ/safehtml/style.go deleted file mode 100644 index 174c3c4..0000000 --- a/vendor/github.com/a-h/templ/safehtml/style.go +++ /dev/null @@ -1,199 +0,0 @@ -// Adapted from https://raw.githubusercontent.com/google/safehtml/3c4cd5b5d8c9a6c5882fba099979e9f50b65c876/style.go - -// Copyright (c) 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 or at -// https://developers.google.com/open-source/licenses/bsd - -package safehtml - -import ( - "bytes" - "fmt" - "net/url" - "regexp" - "strings" -) - -// SanitizeCSS attempts to sanitize CSS properties. -func SanitizeCSS(property, value string) (string, string) { - property = SanitizeCSSProperty(property) - if property == InnocuousPropertyName { - return InnocuousPropertyName, InnocuousPropertyValue - } - return property, SanitizeCSSValue(property, value) -} - -func SanitizeCSSValue(property, value string) string { - if sanitizer, ok := cssPropertyNameToValueSanitizer[property]; ok { - return sanitizer(value) - } - return sanitizeRegular(value) -} - -func SanitizeCSSProperty(property string) string { - if !identifierPattern.MatchString(property) { - return InnocuousPropertyName - } - return strings.ToLower(property) -} - -// identifierPattern matches a subset of valid <ident-token> values defined in -// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram. This pattern matches all generic family name -// keywords defined in https://drafts.csswg.org/css-fonts-3/#family-name-value. -var identifierPattern = regexp.MustCompile(`^[-a-zA-Z]+$`) - -var cssPropertyNameToValueSanitizer = map[string]func(string) string{ - "background-image": sanitizeBackgroundImage, - "font-family": sanitizeFontFamily, - "display": sanitizeEnum, - "background-color": sanitizeRegular, - "background-position": sanitizeRegular, - "background-repeat": sanitizeRegular, - "background-size": sanitizeRegular, - "color": sanitizeRegular, - "height": sanitizeRegular, - "width": sanitizeRegular, - "left": sanitizeRegular, - "right": sanitizeRegular, - "top": sanitizeRegular, - "bottom": sanitizeRegular, - "font-weight": sanitizeRegular, - "padding": sanitizeRegular, - "z-index": sanitizeRegular, -} - -var validURLPrefixes = []string{ - `url("`, - `url('`, - `url(`, -} - -var validURLSuffixes = []string{ - `")`, - `')`, - `)`, -} - -func sanitizeBackgroundImage(v string) string { - // Check for <> as per https://github.com/google/safehtml/blob/be23134998433fcf0135dda53593fc8f8bf4df7c/style.go#L87C2-L89C3 - if strings.ContainsAny(v, "<>") { - return InnocuousPropertyValue - } - for _, u := range strings.Split(v, ",") { - u = strings.TrimSpace(u) - var found bool - for i, prefix := range validURLPrefixes { - if strings.HasPrefix(u, prefix) && strings.HasSuffix(u, validURLSuffixes[i]) { - found = true - u = strings.TrimPrefix(u, validURLPrefixes[i]) - u = strings.TrimSuffix(u, validURLSuffixes[i]) - break - } - } - if !found || !urlIsSafe(u) { - return InnocuousPropertyValue - } - } - return v -} - -func urlIsSafe(s string) bool { - u, err := url.Parse(s) - if err != nil { - return false - } - if u.IsAbs() { - if strings.EqualFold(u.Scheme, "http") || strings.EqualFold(u.Scheme, "https") || strings.EqualFold(u.Scheme, "mailto") { - return true - } - return false - } - return true -} - -var genericFontFamilyName = regexp.MustCompile(`^[a-zA-Z][- a-zA-Z]+$`) - -func sanitizeFontFamily(s string) string { - for _, f := range strings.Split(s, ",") { - f = strings.TrimSpace(f) - if strings.HasPrefix(f, `"`) { - if !strings.HasSuffix(f, `"`) { - return InnocuousPropertyValue - } - continue - } - if !genericFontFamilyName.MatchString(f) { - return InnocuousPropertyValue - } - } - return s -} - -func sanitizeEnum(s string) string { - if !safeEnumPropertyValuePattern.MatchString(s) { - return InnocuousPropertyValue - } - return s -} - -func sanitizeRegular(s string) string { - if !safeRegularPropertyValuePattern.MatchString(s) { - return InnocuousPropertyValue - } - return s -} - -// InnocuousPropertyName is an innocuous property generated by a sanitizer when its input is unsafe. -const InnocuousPropertyName = "zTemplUnsafeCSSPropertyName" - -// InnocuousPropertyValue is an innocuous property generated by a sanitizer when its input is unsafe. -const InnocuousPropertyValue = "zTemplUnsafeCSSPropertyValue" - -// safeRegularPropertyValuePattern matches strings that are safe to use as property values. -// Specifically, it matches string where every '*' or '/' is followed by end-of-text or a safe rune -// (i.e. alphanumerics or runes in the set [+-.!#%_ \t]). This regex ensures that the following -// are disallowed: -// - "/*" and "*/", which are CSS comment markers. -// - "//", even though this is not a comment marker in the CSS specification. Disallowing -// this string minimizes the chance that browser peculiarities or parsing bugs will allow -// sanitization to be bypassed. -// - '(' and ')', which can be used to call functions. -// - ',', since it can be used to inject extra values into a property. -// - Runes which could be matched on CSS error recovery of a previously malformed token, such as '@' -// and ':'. See http://www.w3.org/TR/css3-syntax/#error-handling. -var safeRegularPropertyValuePattern = regexp.MustCompile(`^(?:[*/]?(?:[0-9a-zA-Z+-.!#%_ \t]|$))*$`) - -// safeEnumPropertyValuePattern matches strings that are safe to use as enumerated property values. -// Specifically, it matches strings that contain only alphabetic and '-' runes. -var safeEnumPropertyValuePattern = regexp.MustCompile(`^[a-zA-Z-]*$`) - -// SanitizeStyleValue escapes s so that it is safe to put between "" to form a CSS <string-token>. -// See syntax at https://www.w3.org/TR/css-syntax-3/#string-token-diagram. -// -// On top of the escape sequences required in <string-token>, this function also escapes -// control runes to minimize the risk of these runes triggering browser-specific bugs. -// Taken from cssEscapeString in safehtml package. -func SanitizeStyleValue(s string) string { - var b bytes.Buffer - b.Grow(len(s)) - for _, c := range s { - switch { - case c == '\u0000': - // Replace the NULL byte according to https://www.w3.org/TR/css-syntax-3/#input-preprocessing. - // We take this extra precaution in case the user agent fails to handle NULL properly. - b.WriteString("\uFFFD") - case c == '<', // Prevents breaking out of a style element with `</style>`. Escape this in case the Style user forgets to. - c == '"', c == '\\', // Must be CSS-escaped in <string-token>. U+000A line feed is handled in the next case. - c <= '\u001F', c == '\u007F', // C0 control codes - c >= '\u0080' && c <= '\u009F', // C1 control codes - c == '\u2028', c == '\u2029': // Unicode newline characters - // See CSS escape sequence syntax at https://www.w3.org/TR/css-syntax-3/#escape-diagram. - fmt.Fprintf(&b, "\\%06X", c) - default: - b.WriteRune(c) - } - } - return b.String() -} diff --git a/vendor/github.com/a-h/templ/scripttemplate.go b/vendor/github.com/a-h/templ/scripttemplate.go deleted file mode 100644 index 0aafa0b..0000000 --- a/vendor/github.com/a-h/templ/scripttemplate.go +++ /dev/null @@ -1,151 +0,0 @@ -package templ - -import ( - "context" - "encoding/json" - "fmt" - "html" - "io" - "regexp" - "strings" -) - -// ComponentScript is a templ Script template. -type ComponentScript struct { - // Name of the script, e.g. print. - Name string - // Function to render. - Function string - // Call of the function in JavaScript syntax, including parameters, and - // ensures parameters are HTML escaped; useful for injecting into HTML - // attributes like onclick, onhover, etc. - // - // Given: - // functionName("some string",12345) - // It would render: - // __templ_functionName_sha(&#34;some string&#34;,12345)) - // - // This is can be injected into HTML attributes: - // <button onClick="__templ_functionName_sha(&#34;some string&#34;,12345))">Click Me</button> - Call string - // Call of the function in JavaScript syntax, including parameters. It - // does not HTML escape parameters; useful for directly calling in script - // elements. - // - // Given: - // functionName("some string",12345) - // It would render: - // __templ_functionName_sha("some string",12345)) - // - // This is can be used to call the function inside a script tag: - // <script>__templ_functionName_sha("some string",12345))</script> - CallInline string -} - -var _ Component = ComponentScript{} - -func writeScriptHeader(ctx context.Context, w io.Writer) (err error) { - var nonceAttr string - if nonce := GetNonce(ctx); nonce != "" { - nonceAttr = " nonce=\"" + EscapeString(nonce) + "\"" - } - _, err = fmt.Fprintf(w, `<script%s>`, nonceAttr) - return err -} - -func (c ComponentScript) Render(ctx context.Context, w io.Writer) error { - err := RenderScriptItems(ctx, w, c) - if err != nil { - return err - } - if len(c.Call) > 0 { - if err = writeScriptHeader(ctx, w); err != nil { - return err - } - if _, err = io.WriteString(w, c.CallInline); err != nil { - return err - } - if _, err = io.WriteString(w, `</script>`); err != nil { - return err - } - } - return nil -} - -// RenderScriptItems renders a <script> element, if the script has not already been rendered. -func RenderScriptItems(ctx context.Context, w io.Writer, scripts ...ComponentScript) (err error) { - if len(scripts) == 0 { - return nil - } - _, v := getContext(ctx) - sb := new(strings.Builder) - for _, s := range scripts { - if !v.hasScriptBeenRendered(s.Name) { - sb.WriteString(s.Function) - v.addScript(s.Name) - } - } - if sb.Len() > 0 { - if err = writeScriptHeader(ctx, w); err != nil { - return err - } - if _, err = io.WriteString(w, sb.String()); err != nil { - return err - } - if _, err = io.WriteString(w, `</script>`); err != nil { - return err - } - } - return nil -} - -// JSExpression represents a JavaScript expression intended for use as an argument for script templates. -// The string value of JSExpression will be inserted directly as JavaScript code in function call arguments. -type JSExpression string - -// SafeScript encodes unknown parameters for safety for inside HTML attributes. -func SafeScript(functionName string, params ...any) string { - if !jsFunctionName.MatchString(functionName) { - functionName = "__templ_invalid_js_function_name" - } - sb := new(strings.Builder) - sb.WriteString(html.EscapeString(functionName)) - sb.WriteRune('(') - for i, p := range params { - sb.WriteString(EscapeString(jsonEncodeParam(p))) - if i < len(params)-1 { - sb.WriteRune(',') - } - } - sb.WriteRune(')') - return sb.String() -} - -// SafeScript encodes unknown parameters for safety for inline scripts. -func SafeScriptInline(functionName string, params ...any) string { - if !jsFunctionName.MatchString(functionName) { - functionName = "__templ_invalid_js_function_name" - } - sb := new(strings.Builder) - sb.WriteString(functionName) - sb.WriteRune('(') - for i, p := range params { - sb.WriteString(jsonEncodeParam(p)) - if i < len(params)-1 { - sb.WriteRune(',') - } - } - sb.WriteRune(')') - return sb.String() -} - -func jsonEncodeParam(param any) string { - if val, ok := param.(JSExpression); ok { - return string(val) - } - enc, _ := json.Marshal(param) - return string(enc) -} - -// isValidJSFunctionName returns true if the given string is a valid JavaScript function name, e.g. console.log, alert, etc. -var jsFunctionName = regexp.MustCompile(`^([$_a-zA-Z][$_a-zA-Z0-9]+\.?)+$`) diff --git a/vendor/github.com/a-h/templ/templ.png b/vendor/github.com/a-h/templ/templ.png deleted file mode 100644 index 1c4bc2fb737f486727fe89e61c1fde3698089965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15528 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 HLIVE}euqS~ diff --git a/vendor/github.com/a-h/templ/url.go b/vendor/github.com/a-h/templ/url.go deleted file mode 100644 index 860323d..0000000 --- a/vendor/github.com/a-h/templ/url.go +++ /dev/null @@ -1,31 +0,0 @@ -package templ - -import ( - "errors" - "strings" -) - -// FailedSanitizationURL is returned if a URL fails sanitization checks. -const FailedSanitizationURL = SafeURL("about:invalid#TemplFailedSanitizationURL") - -// URL sanitizes the input string s and returns a SafeURL. -func URL(s string) SafeURL { - if i := strings.IndexRune(s, ':'); i >= 0 && !strings.ContainsRune(s[:i], '/') { - protocol := s[:i] - if !strings.EqualFold(protocol, "http") && !strings.EqualFold(protocol, "https") && !strings.EqualFold(protocol, "mailto") && !strings.EqualFold(protocol, "tel") && !strings.EqualFold(protocol, "ftp") && !strings.EqualFold(protocol, "ftps") { - return FailedSanitizationURL - } - } - return SafeURL(s) -} - -// SafeURL is a URL that has been sanitized. -type SafeURL string - -// JoinURLErrs joins an optional list of errors and returns a sanitized SafeURL. -func JoinURLErrs[T ~string](s T, errs ...error) (SafeURL, error) { - if safeURL, ok := any(s).(SafeURL); ok { - return safeURL, errors.Join(errs...) - } - return URL(string(s)), errors.Join(errs...) -} diff --git a/vendor/github.com/a-h/templ/version.go b/vendor/github.com/a-h/templ/version.go deleted file mode 100644 index b7fbb6f..0000000 --- a/vendor/github.com/a-h/templ/version.go +++ /dev/null @@ -1,10 +0,0 @@ -package templ - -import _ "embed" - -//go:embed .version -var version string - -func Version() string { - return "v" + version -} diff --git a/vendor/github.com/a-h/templ/watchmode.go b/vendor/github.com/a-h/templ/watchmode.go deleted file mode 100644 index a94dab2..0000000 --- a/vendor/github.com/a-h/templ/watchmode.go +++ /dev/null @@ -1,105 +0,0 @@ -package templ - -import ( - "errors" - "fmt" - "io" - "os" - "runtime" - "strconv" - "strings" - "sync" - "time" -) - -// WriteWatchModeString is used when rendering templates in development mode. -// the generator would have written non-go code to the _templ.txt file, which -// is then read by this function and written to the output. -// -// Deprecated: since templ v0.3.x generated code uses WriteString. -func WriteWatchModeString(w io.Writer, lineNum int) error { - _, path, _, _ := runtime.Caller(1) - if !strings.HasSuffix(path, "_templ.go") { - return errors.New("templ: WriteWatchModeString can only be called from _templ.go") - } - txtFilePath := strings.Replace(path, "_templ.go", "_templ.txt", 1) - - literals, err := getWatchedStrings(txtFilePath) - if err != nil { - return fmt.Errorf("templ: failed to cache strings: %w", err) - } - - if lineNum > len(literals) { - return fmt.Errorf("templ: failed to find line %d in %s", lineNum, txtFilePath) - } - - s, err := strconv.Unquote(`"` + literals[lineNum-1] + `"`) - if err != nil { - return err - } - _, err = io.WriteString(w, s) - return err -} - -var ( - watchModeCache = map[string]watchState{} - watchStateMutex sync.Mutex -) - -type watchState struct { - modTime time.Time - strings []string -} - -func getWatchedStrings(txtFilePath string) ([]string, error) { - watchStateMutex.Lock() - defer watchStateMutex.Unlock() - - state, cached := watchModeCache[txtFilePath] - if !cached { - return cacheStrings(txtFilePath) - } - - if time.Since(state.modTime) < time.Millisecond*100 { - return state.strings, nil - } - - info, err := os.Stat(txtFilePath) - if err != nil { - return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) - } - - if !info.ModTime().After(state.modTime) { - return state.strings, nil - } - - return cacheStrings(txtFilePath) -} - -func cacheStrings(txtFilePath string) ([]string, error) { - txtFile, err := os.Open(txtFilePath) - if err != nil { - return nil, fmt.Errorf("templ: failed to open %s: %w", txtFilePath, err) - } - defer func() { - _ = txtFile.Close() - }() - - info, err := txtFile.Stat() - if err != nil { - return nil, fmt.Errorf("templ: failed to stat %s: %w", txtFilePath, err) - } - - all, err := io.ReadAll(txtFile) - if err != nil { - return nil, fmt.Errorf("templ: failed to read %s: %w", txtFilePath, err) - } - - literals := strings.Split(string(all), "\n") - watchModeCache[txtFilePath] = watchState{ - modTime: info.ModTime(), - strings: literals, - } - - return literals, nil -} diff --git a/vendor/github.com/andybalholm/brotli/LICENSE b/vendor/github.com/andybalholm/brotli/LICENSE deleted file mode 100644 index 33b7cdd..0000000 --- a/vendor/github.com/andybalholm/brotli/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - -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/andybalholm/brotli/README.md b/vendor/github.com/andybalholm/brotli/README.md deleted file mode 100644 index 0062521..0000000 --- a/vendor/github.com/andybalholm/brotli/README.md +++ /dev/null @@ -1,14 +0,0 @@ -This package is a brotli compressor and decompressor implemented in Go. -It was translated from the reference implementation (https://github.com/google/brotli) -with the `c2go` tool at https://github.com/andybalholm/c2go. - -I have been working on new compression algorithms (not translated from C) -in the matchfinder package. -You can use them with the NewWriterV2 function. -Currently they give better results than the old implementation -(at least for compressing my test file, Newton’s *Opticks*) -on levels 2 to 6. - -I am using it in production with https://github.com/andybalholm/redwood. - -API documentation is found at https://pkg.go.dev/github.com/andybalholm/brotli?tab=doc. diff --git a/vendor/github.com/andybalholm/brotli/backward_references.go b/vendor/github.com/andybalholm/brotli/backward_references.go deleted file mode 100644 index 008c054..0000000 --- a/vendor/github.com/andybalholm/brotli/backward_references.go +++ /dev/null @@ -1,185 +0,0 @@ -package brotli - -import ( - "sync" -) - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function to find backward reference copies. */ - -func computeDistanceCode(distance uint, max_distance uint, dist_cache []int) uint { - if distance <= max_distance { - var distance_plus_3 uint = distance + 3 - var offset0 uint = distance_plus_3 - uint(dist_cache[0]) - var offset1 uint = distance_plus_3 - uint(dist_cache[1]) - if distance == uint(dist_cache[0]) { - return 0 - } else if distance == uint(dist_cache[1]) { - return 1 - } else if offset0 < 7 { - return (0x9750468 >> (4 * offset0)) & 0xF - } else if offset1 < 7 { - return (0xFDB1ACE >> (4 * offset1)) & 0xF - } else if distance == uint(dist_cache[2]) { - return 2 - } else if distance == uint(dist_cache[3]) { - return 3 - } - } - - return distance + numDistanceShortCodes - 1 -} - -var hasherSearchResultPool sync.Pool - -func createBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var insert_length uint = *last_insert_len - var pos_end uint = position + num_bytes - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var random_heuristics_window_size uint = literalSpreeLengthForSparseSearch(params) - var apply_random_heuristics uint = position + random_heuristics_window_size - var gap uint = 0 - /* Set maximum distance, see section 9.1. of the spec. */ - - const kMinScore uint = scoreBase + 100 - - /* For speed up heuristics for random data. */ - - /* Minimum score to accept a backward reference. */ - hasher.PrepareDistanceCache(dist_cache) - sr2, _ := hasherSearchResultPool.Get().(*hasherSearchResult) - if sr2 == nil { - sr2 = &hasherSearchResult{} - } - sr, _ := hasherSearchResultPool.Get().(*hasherSearchResult) - if sr == nil { - sr = &hasherSearchResult{} - } - - for position+hasher.HashTypeLength() < pos_end { - var max_length uint = pos_end - position - var max_distance uint = brotli_min_size_t(position, max_backward_limit) - sr.len = 0 - sr.len_code_delta = 0 - sr.distance = 0 - sr.score = kMinScore - hasher.FindLongestMatch(&params.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position, max_length, max_distance, gap, params.dist.max_distance, sr) - if sr.score > kMinScore { - /* Found a match. Let's look for something even better ahead. */ - var delayed_backward_references_in_row int = 0 - max_length-- - for ; ; max_length-- { - var cost_diff_lazy uint = 175 - if params.quality < minQualityForExtensiveReferenceSearch { - sr2.len = brotli_min_size_t(sr.len-1, max_length) - } else { - sr2.len = 0 - } - sr2.len_code_delta = 0 - sr2.distance = 0 - sr2.score = kMinScore - max_distance = brotli_min_size_t(position+1, max_backward_limit) - hasher.FindLongestMatch(&params.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position+1, max_length, max_distance, gap, params.dist.max_distance, sr2) - if sr2.score >= sr.score+cost_diff_lazy { - /* Ok, let's just write one byte for now and start a match from the - next byte. */ - position++ - - insert_length++ - *sr = *sr2 - delayed_backward_references_in_row++ - if delayed_backward_references_in_row < 4 && position+hasher.HashTypeLength() < pos_end { - continue - } - } - - break - } - - apply_random_heuristics = position + 2*sr.len + random_heuristics_window_size - max_distance = brotli_min_size_t(position, max_backward_limit) - { - /* The first 16 codes are special short-codes, - and the minimum offset is 1. */ - var distance_code uint = computeDistanceCode(sr.distance, max_distance+gap, dist_cache) - if (sr.distance <= (max_distance + gap)) && distance_code > 0 { - dist_cache[3] = dist_cache[2] - dist_cache[2] = dist_cache[1] - dist_cache[1] = dist_cache[0] - dist_cache[0] = int(sr.distance) - hasher.PrepareDistanceCache(dist_cache) - } - - *commands = append(*commands, makeCommand(&params.dist, insert_length, sr.len, sr.len_code_delta, distance_code)) - } - - *num_literals += insert_length - insert_length = 0 - /* Put the hash keys into the table, if there are enough bytes left. - Depending on the hasher implementation, it can push all positions - in the given range or only a subset of them. - Avoid hash poisoning with RLE data. */ - { - var range_start uint = position + 2 - var range_end uint = brotli_min_size_t(position+sr.len, store_end) - if sr.distance < sr.len>>2 { - range_start = brotli_min_size_t(range_end, brotli_max_size_t(range_start, position+sr.len-(sr.distance<<2))) - } - - hasher.StoreRange(ringbuffer, ringbuffer_mask, range_start, range_end) - } - - position += sr.len - } else { - insert_length++ - position++ - - /* If we have not seen matches for a long time, we can skip some - match lookups. Unsuccessful match lookups are very very expensive - and this kind of a heuristic speeds up compression quite - a lot. */ - if position > apply_random_heuristics { - /* Going through uncompressible data, jump. */ - if position > apply_random_heuristics+4*random_heuristics_window_size { - var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 4) - /* It is quite a long time since we saw a copy, so we assume - that this data is not compressible, and store hashes less - often. Hashes of non compressible data are less likely to - turn out to be useful in the future, too, so we store less of - them to not to flood out the hash table of good compressible - data. */ - - var pos_jump uint = brotli_min_size_t(position+16, pos_end-kMargin) - for ; position < pos_jump; position += 4 { - hasher.Store(ringbuffer, ringbuffer_mask, position) - insert_length += 4 - } - } else { - var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 2) - var pos_jump uint = brotli_min_size_t(position+8, pos_end-kMargin) - for ; position < pos_jump; position += 2 { - hasher.Store(ringbuffer, ringbuffer_mask, position) - insert_length += 2 - } - } - } - } - } - - insert_length += pos_end - position - *last_insert_len = insert_length - - hasherSearchResultPool.Put(sr) - hasherSearchResultPool.Put(sr2) -} diff --git a/vendor/github.com/andybalholm/brotli/backward_references_hq.go b/vendor/github.com/andybalholm/brotli/backward_references_hq.go deleted file mode 100644 index 21629c1..0000000 --- a/vendor/github.com/andybalholm/brotli/backward_references_hq.go +++ /dev/null @@ -1,796 +0,0 @@ -package brotli - -import "math" - -type zopfliNode struct { - length uint32 - distance uint32 - dcode_insert_length uint32 - u struct { - cost float32 - next uint32 - shortcut uint32 - } -} - -const maxEffectiveDistanceAlphabetSize = 544 - -const kInfinity float32 = 1.7e38 /* ~= 2 ^ 127 */ - -var kDistanceCacheIndex = []uint32{0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1} - -var kDistanceCacheOffset = []int{0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3} - -func initZopfliNodes(array []zopfliNode, length uint) { - var stub zopfliNode - var i uint - stub.length = 1 - stub.distance = 0 - stub.dcode_insert_length = 0 - stub.u.cost = kInfinity - for i = 0; i < length; i++ { - array[i] = stub - } -} - -func zopfliNodeCopyLength(self *zopfliNode) uint32 { - return self.length & 0x1FFFFFF -} - -func zopfliNodeLengthCode(self *zopfliNode) uint32 { - var modifier uint32 = self.length >> 25 - return zopfliNodeCopyLength(self) + 9 - modifier -} - -func zopfliNodeCopyDistance(self *zopfliNode) uint32 { - return self.distance -} - -func zopfliNodeDistanceCode(self *zopfliNode) uint32 { - var short_code uint32 = self.dcode_insert_length >> 27 - if short_code == 0 { - return zopfliNodeCopyDistance(self) + numDistanceShortCodes - 1 - } else { - return short_code - 1 - } -} - -func zopfliNodeCommandLength(self *zopfliNode) uint32 { - return zopfliNodeCopyLength(self) + (self.dcode_insert_length & 0x7FFFFFF) -} - -/* Histogram based cost model for zopflification. */ -type zopfliCostModel struct { - cost_cmd_ [numCommandSymbols]float32 - cost_dist_ []float32 - distance_histogram_size uint32 - literal_costs_ []float32 - min_cost_cmd_ float32 - num_bytes_ uint -} - -func initZopfliCostModel(self *zopfliCostModel, dist *distanceParams, num_bytes uint) { - var distance_histogram_size uint32 = dist.alphabet_size - if distance_histogram_size > maxEffectiveDistanceAlphabetSize { - distance_histogram_size = maxEffectiveDistanceAlphabetSize - } - - self.num_bytes_ = num_bytes - self.literal_costs_ = make([]float32, (num_bytes + 2)) - self.cost_dist_ = make([]float32, (dist.alphabet_size)) - self.distance_histogram_size = distance_histogram_size -} - -func cleanupZopfliCostModel(self *zopfliCostModel) { - self.literal_costs_ = nil - self.cost_dist_ = nil -} - -func setCost(histogram []uint32, histogram_size uint, literal_histogram bool, cost []float32) { - var sum uint = 0 - var missing_symbol_sum uint - var log2sum float32 - var missing_symbol_cost float32 - var i uint - for i = 0; i < histogram_size; i++ { - sum += uint(histogram[i]) - } - - log2sum = float32(fastLog2(sum)) - missing_symbol_sum = sum - if !literal_histogram { - for i = 0; i < histogram_size; i++ { - if histogram[i] == 0 { - missing_symbol_sum++ - } - } - } - - missing_symbol_cost = float32(fastLog2(missing_symbol_sum)) + 2 - for i = 0; i < histogram_size; i++ { - if histogram[i] == 0 { - cost[i] = missing_symbol_cost - continue - } - - /* Shannon bits for this symbol. */ - cost[i] = log2sum - float32(fastLog2(uint(histogram[i]))) - - /* Cannot be coded with less than 1 bit */ - if cost[i] < 1 { - cost[i] = 1 - } - } -} - -func zopfliCostModelSetFromCommands(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint, commands []command, last_insert_len uint) { - var histogram_literal [numLiteralSymbols]uint32 - var histogram_cmd [numCommandSymbols]uint32 - var histogram_dist [maxEffectiveDistanceAlphabetSize]uint32 - var cost_literal [numLiteralSymbols]float32 - var pos uint = position - last_insert_len - var min_cost_cmd float32 = kInfinity - var cost_cmd []float32 = self.cost_cmd_[:] - var literal_costs []float32 - - histogram_literal = [numLiteralSymbols]uint32{} - histogram_cmd = [numCommandSymbols]uint32{} - histogram_dist = [maxEffectiveDistanceAlphabetSize]uint32{} - - for i := range commands { - var inslength uint = uint(commands[i].insert_len_) - var copylength uint = uint(commandCopyLen(&commands[i])) - var distcode uint = uint(commands[i].dist_prefix_) & 0x3FF - var cmdcode uint = uint(commands[i].cmd_prefix_) - var j uint - - histogram_cmd[cmdcode]++ - if cmdcode >= 128 { - histogram_dist[distcode]++ - } - - for j = 0; j < inslength; j++ { - histogram_literal[ringbuffer[(pos+j)&ringbuffer_mask]]++ - } - - pos += inslength + copylength - } - - setCost(histogram_literal[:], numLiteralSymbols, true, cost_literal[:]) - setCost(histogram_cmd[:], numCommandSymbols, false, cost_cmd) - setCost(histogram_dist[:], uint(self.distance_histogram_size), false, self.cost_dist_) - - for i := 0; i < numCommandSymbols; i++ { - min_cost_cmd = brotli_min_float(min_cost_cmd, cost_cmd[i]) - } - - self.min_cost_cmd_ = min_cost_cmd - { - literal_costs = self.literal_costs_ - var literal_carry float32 = 0.0 - num_bytes := int(self.num_bytes_) - literal_costs[0] = 0.0 - for i := 0; i < num_bytes; i++ { - literal_carry += cost_literal[ringbuffer[(position+uint(i))&ringbuffer_mask]] - literal_costs[i+1] = literal_costs[i] + literal_carry - literal_carry -= literal_costs[i+1] - literal_costs[i] - } - } -} - -func zopfliCostModelSetFromLiteralCosts(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint) { - var literal_costs []float32 = self.literal_costs_ - var literal_carry float32 = 0.0 - var cost_dist []float32 = self.cost_dist_ - var cost_cmd []float32 = self.cost_cmd_[:] - var num_bytes uint = self.num_bytes_ - var i uint - estimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, ringbuffer, literal_costs[1:]) - literal_costs[0] = 0.0 - for i = 0; i < num_bytes; i++ { - literal_carry += literal_costs[i+1] - literal_costs[i+1] = literal_costs[i] + literal_carry - literal_carry -= literal_costs[i+1] - literal_costs[i] - } - - for i = 0; i < numCommandSymbols; i++ { - cost_cmd[i] = float32(fastLog2(uint(11 + uint32(i)))) - } - - for i = 0; uint32(i) < self.distance_histogram_size; i++ { - cost_dist[i] = float32(fastLog2(uint(20 + uint32(i)))) - } - - self.min_cost_cmd_ = float32(fastLog2(11)) -} - -func zopfliCostModelGetCommandCost(self *zopfliCostModel, cmdcode uint16) float32 { - return self.cost_cmd_[cmdcode] -} - -func zopfliCostModelGetDistanceCost(self *zopfliCostModel, distcode uint) float32 { - return self.cost_dist_[distcode] -} - -func zopfliCostModelGetLiteralCosts(self *zopfliCostModel, from uint, to uint) float32 { - return self.literal_costs_[to] - self.literal_costs_[from] -} - -func zopfliCostModelGetMinCostCmd(self *zopfliCostModel) float32 { - return self.min_cost_cmd_ -} - -/* REQUIRES: len >= 2, start_pos <= pos */ -/* REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity */ -/* Maintains the "ZopfliNode array invariant". */ -func updateZopfliNode(nodes []zopfliNode, pos uint, start_pos uint, len uint, len_code uint, dist uint, short_code uint, cost float32) { - var next *zopfliNode = &nodes[pos+len] - next.length = uint32(len | (len+9-len_code)<<25) - next.distance = uint32(dist) - next.dcode_insert_length = uint32(short_code<<27 | (pos - start_pos)) - next.u.cost = cost -} - -type posData struct { - pos uint - distance_cache [4]int - costdiff float32 - cost float32 -} - -/* Maintains the smallest 8 cost difference together with their positions */ -type startPosQueue struct { - q_ [8]posData - idx_ uint -} - -func initStartPosQueue(self *startPosQueue) { - self.idx_ = 0 -} - -func startPosQueueSize(self *startPosQueue) uint { - return brotli_min_size_t(self.idx_, 8) -} - -func startPosQueuePush(self *startPosQueue, posdata *posData) { - var offset uint = ^(self.idx_) & 7 - self.idx_++ - var len uint = startPosQueueSize(self) - var i uint - var q []posData = self.q_[:] - q[offset] = *posdata - - /* Restore the sorted order. In the list of |len| items at most |len - 1| - adjacent element comparisons / swaps are required. */ - for i = 1; i < len; i++ { - if q[offset&7].costdiff > q[(offset+1)&7].costdiff { - var tmp posData = q[offset&7] - q[offset&7] = q[(offset+1)&7] - q[(offset+1)&7] = tmp - } - - offset++ - } -} - -func startPosQueueAt(self *startPosQueue, k uint) *posData { - return &self.q_[(k-self.idx_)&7] -} - -/* Returns the minimum possible copy length that can improve the cost of any */ -/* future position. */ -func computeMinimumCopyLength(start_cost float32, nodes []zopfliNode, num_bytes uint, pos uint) uint { - var min_cost float32 = start_cost - var len uint = 2 - var next_len_bucket uint = 4 - /* Compute the minimum possible cost of reaching any future position. */ - - var next_len_offset uint = 10 - for pos+len <= num_bytes && nodes[pos+len].u.cost <= min_cost { - /* We already reached (pos + len) with no more cost than the minimum - possible cost of reaching anything from this pos, so there is no point in - looking for lengths <= len. */ - len++ - - if len == next_len_offset { - /* We reached the next copy length code bucket, so we add one more - extra bit to the minimum cost. */ - min_cost += 1.0 - - next_len_offset += next_len_bucket - next_len_bucket *= 2 - } - } - - return uint(len) -} - -/* REQUIRES: nodes[pos].cost < kInfinity - REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ -func computeDistanceShortcut(block_start uint, pos uint, max_backward_limit uint, gap uint, nodes []zopfliNode) uint32 { - var clen uint = uint(zopfliNodeCopyLength(&nodes[pos])) - var ilen uint = uint(nodes[pos].dcode_insert_length & 0x7FFFFFF) - var dist uint = uint(zopfliNodeCopyDistance(&nodes[pos])) - - /* Since |block_start + pos| is the end position of the command, the copy part - starts from |block_start + pos - clen|. Distances that are greater than - this or greater than |max_backward_limit| + |gap| are static dictionary - references, and do not update the last distances. - Also distance code 0 (last distance) does not update the last distances. */ - if pos == 0 { - return 0 - } else if dist+clen <= block_start+pos+gap && dist <= max_backward_limit+gap && zopfliNodeDistanceCode(&nodes[pos]) > 0 { - return uint32(pos) - } else { - return nodes[pos-clen-ilen].u.shortcut - } -} - -/* Fills in dist_cache[0..3] with the last four distances (as defined by - Section 4. of the Spec) that would be used at (block_start + pos) if we - used the shortest path of commands from block_start, computed from - nodes[0..pos]. The last four distances at block_start are in - starting_dist_cache[0..3]. - REQUIRES: nodes[pos].cost < kInfinity - REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ -func computeDistanceCache(pos uint, starting_dist_cache []int, nodes []zopfliNode, dist_cache []int) { - var idx int = 0 - var p uint = uint(nodes[pos].u.shortcut) - for idx < 4 && p > 0 { - var ilen uint = uint(nodes[p].dcode_insert_length & 0x7FFFFFF) - var clen uint = uint(zopfliNodeCopyLength(&nodes[p])) - var dist uint = uint(zopfliNodeCopyDistance(&nodes[p])) - dist_cache[idx] = int(dist) - idx++ - - /* Because of prerequisite, p >= clen + ilen >= 2. */ - p = uint(nodes[p-clen-ilen].u.shortcut) - } - - for ; idx < 4; idx++ { - dist_cache[idx] = starting_dist_cache[0] - starting_dist_cache = starting_dist_cache[1:] - } -} - -/* Maintains "ZopfliNode array invariant" and pushes node to the queue, if it - is eligible. */ -func evaluateNode(block_start uint, pos uint, max_backward_limit uint, gap uint, starting_dist_cache []int, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) { - /* Save cost, because ComputeDistanceCache invalidates it. */ - var node_cost float32 = nodes[pos].u.cost - nodes[pos].u.shortcut = computeDistanceShortcut(block_start, pos, max_backward_limit, gap, nodes) - if node_cost <= zopfliCostModelGetLiteralCosts(model, 0, pos) { - var posdata posData - posdata.pos = pos - posdata.cost = node_cost - posdata.costdiff = node_cost - zopfliCostModelGetLiteralCosts(model, 0, pos) - computeDistanceCache(pos, starting_dist_cache, nodes, posdata.distance_cache[:]) - startPosQueuePush(queue, &posdata) - } -} - -/* Returns longest copy length. */ -func updateNodes(num_bytes uint, block_start uint, pos uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, max_backward_limit uint, starting_dist_cache []int, num_matches uint, matches []backwardMatch, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) uint { - var cur_ix uint = block_start + pos - var cur_ix_masked uint = cur_ix & ringbuffer_mask - var max_distance uint = brotli_min_size_t(cur_ix, max_backward_limit) - var max_len uint = num_bytes - pos - var max_zopfli_len uint = maxZopfliLen(params) - var max_iters uint = maxZopfliCandidates(params) - var min_len uint - var result uint = 0 - var k uint - var gap uint = 0 - - evaluateNode(block_start, pos, max_backward_limit, gap, starting_dist_cache, model, queue, nodes) - { - var posdata *posData = startPosQueueAt(queue, 0) - var min_cost float32 = (posdata.cost + zopfliCostModelGetMinCostCmd(model) + zopfliCostModelGetLiteralCosts(model, posdata.pos, pos)) - min_len = computeMinimumCopyLength(min_cost, nodes, num_bytes, pos) - } - - /* Go over the command starting positions in order of increasing cost - difference. */ - for k = 0; k < max_iters && k < startPosQueueSize(queue); k++ { - var posdata *posData = startPosQueueAt(queue, k) - var start uint = posdata.pos - var inscode uint16 = getInsertLengthCode(pos - start) - var start_costdiff float32 = posdata.costdiff - var base_cost float32 = start_costdiff + float32(getInsertExtra(inscode)) + zopfliCostModelGetLiteralCosts(model, 0, pos) - var best_len uint = min_len - 1 - var j uint = 0 - /* Look for last distance matches using the distance cache from this - starting position. */ - for ; j < numDistanceShortCodes && best_len < max_len; j++ { - var idx uint = uint(kDistanceCacheIndex[j]) - var backward uint = uint(posdata.distance_cache[idx] + kDistanceCacheOffset[j]) - var prev_ix uint = cur_ix - backward - var len uint = 0 - var continuation byte = ringbuffer[cur_ix_masked+best_len] - if cur_ix_masked+best_len > ringbuffer_mask { - break - } - - if backward > max_distance+gap { - /* Word dictionary -> ignore. */ - continue - } - - if backward <= max_distance { - /* Regular backward reference. */ - if prev_ix >= cur_ix { - continue - } - - prev_ix &= ringbuffer_mask - if prev_ix+best_len > ringbuffer_mask || continuation != ringbuffer[prev_ix+best_len] { - continue - } - - len = findMatchLengthWithLimit(ringbuffer[prev_ix:], ringbuffer[cur_ix_masked:], max_len) - } else { - continue - } - { - var dist_cost float32 = base_cost + zopfliCostModelGetDistanceCost(model, j) - var l uint - for l = best_len + 1; l <= len; l++ { - var copycode uint16 = getCopyLengthCode(l) - var cmdcode uint16 = combineLengthCodes(inscode, copycode, j == 0) - var tmp float32 - if cmdcode < 128 { - tmp = base_cost - } else { - tmp = dist_cost - } - var cost float32 = tmp + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) - if cost < nodes[pos+l].u.cost { - updateZopfliNode(nodes, pos, start, l, l, backward, j+1, cost) - result = brotli_max_size_t(result, l) - } - - best_len = l - } - } - } - - /* At higher iterations look only for new last distance matches, since - looking only for new command start positions with the same distances - does not help much. */ - if k >= 2 { - continue - } - { - /* Loop through all possible copy lengths at this position. */ - var len uint = min_len - for j = 0; j < num_matches; j++ { - var match backwardMatch = matches[j] - var dist uint = uint(match.distance) - var is_dictionary_match bool = (dist > max_distance+gap) - var dist_code uint = dist + numDistanceShortCodes - 1 - var dist_symbol uint16 - var distextra uint32 - var distnumextra uint32 - var dist_cost float32 - var max_match_len uint - /* We already tried all possible last distance matches, so we can use - normal distance code here. */ - prefixEncodeCopyDistance(dist_code, uint(params.dist.num_direct_distance_codes), uint(params.dist.distance_postfix_bits), &dist_symbol, &distextra) - - distnumextra = uint32(dist_symbol) >> 10 - dist_cost = base_cost + float32(distnumextra) + zopfliCostModelGetDistanceCost(model, uint(dist_symbol)&0x3FF) - - /* Try all copy lengths up until the maximum copy length corresponding - to this distance. If the distance refers to the static dictionary, or - the maximum length is long enough, try only one maximum length. */ - max_match_len = backwardMatchLength(&match) - - if len < max_match_len && (is_dictionary_match || max_match_len > max_zopfli_len) { - len = max_match_len - } - - for ; len <= max_match_len; len++ { - var len_code uint - if is_dictionary_match { - len_code = backwardMatchLengthCode(&match) - } else { - len_code = len - } - var copycode uint16 = getCopyLengthCode(len_code) - var cmdcode uint16 = combineLengthCodes(inscode, copycode, false) - var cost float32 = dist_cost + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) - if cost < nodes[pos+len].u.cost { - updateZopfliNode(nodes, pos, start, uint(len), len_code, dist, 0, cost) - if len > result { - result = len - } - } - } - } - } - } - - return result -} - -func computeShortestPathFromNodes(num_bytes uint, nodes []zopfliNode) uint { - var index uint = num_bytes - var num_commands uint = 0 - for nodes[index].dcode_insert_length&0x7FFFFFF == 0 && nodes[index].length == 1 { - index-- - } - nodes[index].u.next = math.MaxUint32 - for index != 0 { - var len uint = uint(zopfliNodeCommandLength(&nodes[index])) - index -= uint(len) - nodes[index].u.next = uint32(len) - num_commands++ - } - - return num_commands -} - -/* REQUIRES: nodes != NULL and len(nodes) >= num_bytes + 1 */ -func zopfliCreateCommands(num_bytes uint, block_start uint, nodes []zopfliNode, dist_cache []int, last_insert_len *uint, params *encoderParams, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var pos uint = 0 - var offset uint32 = nodes[0].u.next - var i uint - var gap uint = 0 - for i = 0; offset != math.MaxUint32; i++ { - var next *zopfliNode = &nodes[uint32(pos)+offset] - var copy_length uint = uint(zopfliNodeCopyLength(next)) - var insert_length uint = uint(next.dcode_insert_length & 0x7FFFFFF) - pos += insert_length - offset = next.u.next - if i == 0 { - insert_length += *last_insert_len - *last_insert_len = 0 - } - { - var distance uint = uint(zopfliNodeCopyDistance(next)) - var len_code uint = uint(zopfliNodeLengthCode(next)) - var max_distance uint = brotli_min_size_t(block_start+pos, max_backward_limit) - var is_dictionary bool = (distance > max_distance+gap) - var dist_code uint = uint(zopfliNodeDistanceCode(next)) - *commands = append(*commands, makeCommand(&params.dist, insert_length, copy_length, int(len_code)-int(copy_length), dist_code)) - - if !is_dictionary && dist_code > 0 { - dist_cache[3] = dist_cache[2] - dist_cache[2] = dist_cache[1] - dist_cache[1] = dist_cache[0] - dist_cache[0] = int(distance) - } - } - - *num_literals += insert_length - pos += copy_length - } - - *last_insert_len += num_bytes - pos -} - -func zopfliIterate(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, gap uint, dist_cache []int, model *zopfliCostModel, num_matches []uint32, matches []backwardMatch, nodes []zopfliNode) uint { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var max_zopfli_len uint = maxZopfliLen(params) - var queue startPosQueue - var cur_match_pos uint = 0 - var i uint - nodes[0].length = 0 - nodes[0].u.cost = 0 - initStartPosQueue(&queue) - for i = 0; i+3 < num_bytes; i++ { - var skip uint = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, uint(num_matches[i]), matches[cur_match_pos:], model, &queue, nodes) - if skip < longCopyQuickStep { - skip = 0 - } - cur_match_pos += uint(num_matches[i]) - if num_matches[i] == 1 && backwardMatchLength(&matches[cur_match_pos-1]) > max_zopfli_len { - skip = brotli_max_size_t(backwardMatchLength(&matches[cur_match_pos-1]), skip) - } - - if skip > 1 { - skip-- - for skip != 0 { - i++ - if i+3 >= num_bytes { - break - } - evaluateNode(position, i, max_backward_limit, gap, dist_cache, model, &queue, nodes) - cur_match_pos += uint(num_matches[i]) - skip-- - } - } - } - - return computeShortestPathFromNodes(num_bytes, nodes) -} - -/* Computes the shortest path of commands from position to at most - position + num_bytes. - - On return, path->size() is the number of commands found and path[i] is the - length of the i-th command (copy length plus insert length). - Note that the sum of the lengths of all commands can be less than num_bytes. - - On return, the nodes[0..num_bytes] array will have the following - "ZopfliNode array invariant": - For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then - (1) nodes[i].copy_length() >= 2 - (2) nodes[i].command_length() <= i and - (3) nodes[i - nodes[i].command_length()].cost < kInfinity - - REQUIRES: nodes != nil and len(nodes) >= num_bytes + 1 */ -func zopfliComputeShortestPath(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, dist_cache []int, hasher *h10, nodes []zopfliNode) uint { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var max_zopfli_len uint = maxZopfliLen(params) - var model zopfliCostModel - var queue startPosQueue - var matches [2 * (maxNumMatchesH10 + 64)]backwardMatch - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var i uint - var gap uint = 0 - var lz_matches_offset uint = 0 - nodes[0].length = 0 - nodes[0].u.cost = 0 - initZopfliCostModel(&model, &params.dist, num_bytes) - zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) - initStartPosQueue(&queue) - for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { - var pos uint = position + i - var max_distance uint = brotli_min_size_t(pos, max_backward_limit) - var skip uint - var num_matches uint - num_matches = findAllMatchesH10(hasher, &params.dictionary, ringbuffer, ringbuffer_mask, pos, num_bytes-i, max_distance, gap, params, matches[lz_matches_offset:]) - if num_matches > 0 && backwardMatchLength(&matches[num_matches-1]) > max_zopfli_len { - matches[0] = matches[num_matches-1] - num_matches = 1 - } - - skip = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, num_matches, matches[:], &model, &queue, nodes) - if skip < longCopyQuickStep { - skip = 0 - } - if num_matches == 1 && backwardMatchLength(&matches[0]) > max_zopfli_len { - skip = brotli_max_size_t(backwardMatchLength(&matches[0]), skip) - } - - if skip > 1 { - /* Add the tail of the copy to the hasher. */ - hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+skip, store_end)) - - skip-- - for skip != 0 { - i++ - if i+hasher.HashTypeLength()-1 >= num_bytes { - break - } - evaluateNode(position, i, max_backward_limit, gap, dist_cache, &model, &queue, nodes) - skip-- - } - } - } - - cleanupZopfliCostModel(&model) - return computeShortestPathFromNodes(num_bytes, nodes) -} - -func createZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher *h10, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var nodes []zopfliNode - nodes = make([]zopfliNode, (num_bytes + 1)) - initZopfliNodes(nodes, num_bytes+1) - zopfliComputeShortestPath(num_bytes, position, ringbuffer, ringbuffer_mask, params, dist_cache, hasher, nodes) - zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) - nodes = nil -} - -func createHqZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { - var max_backward_limit uint = maxBackwardLimit(params.lgwin) - var num_matches []uint32 = make([]uint32, num_bytes) - var matches_size uint = 4 * num_bytes - var store_end uint - if num_bytes >= hasher.StoreLookahead() { - store_end = position + num_bytes - hasher.StoreLookahead() + 1 - } else { - store_end = position - } - var cur_match_pos uint = 0 - var i uint - var orig_num_literals uint - var orig_last_insert_len uint - var orig_dist_cache [4]int - var orig_num_commands int - var model zopfliCostModel - var nodes []zopfliNode - var matches []backwardMatch = make([]backwardMatch, matches_size) - var gap uint = 0 - var shadow_matches uint = 0 - var new_array []backwardMatch - for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { - var pos uint = position + i - var max_distance uint = brotli_min_size_t(pos, max_backward_limit) - var max_length uint = num_bytes - i - var num_found_matches uint - var cur_match_end uint - var j uint - - /* Ensure that we have enough free slots. */ - if matches_size < cur_match_pos+maxNumMatchesH10+shadow_matches { - var new_size uint = matches_size - if new_size == 0 { - new_size = cur_match_pos + maxNumMatchesH10 + shadow_matches - } - - for new_size < cur_match_pos+maxNumMatchesH10+shadow_matches { - new_size *= 2 - } - - new_array = make([]backwardMatch, new_size) - if matches_size != 0 { - copy(new_array, matches[:matches_size]) - } - - matches = new_array - matches_size = new_size - } - - num_found_matches = findAllMatchesH10(hasher.(*h10), &params.dictionary, ringbuffer, ringbuffer_mask, pos, max_length, max_distance, gap, params, matches[cur_match_pos+shadow_matches:]) - cur_match_end = cur_match_pos + num_found_matches - for j = cur_match_pos; j+1 < cur_match_end; j++ { - assert(backwardMatchLength(&matches[j]) <= backwardMatchLength(&matches[j+1])) - } - - num_matches[i] = uint32(num_found_matches) - if num_found_matches > 0 { - var match_len uint = backwardMatchLength(&matches[cur_match_end-1]) - if match_len > maxZopfliLenQuality11 { - var skip uint = match_len - 1 - matches[cur_match_pos] = matches[cur_match_end-1] - cur_match_pos++ - num_matches[i] = 1 - - /* Add the tail of the copy to the hasher. */ - hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+match_len, store_end)) - var pos uint = i - for i := 0; i < int(skip); i++ { - num_matches[pos+1:][i] = 0 - } - i += skip - } else { - cur_match_pos = cur_match_end - } - } - } - - orig_num_literals = *num_literals - orig_last_insert_len = *last_insert_len - copy(orig_dist_cache[:], dist_cache[:4]) - orig_num_commands = len(*commands) - nodes = make([]zopfliNode, (num_bytes + 1)) - initZopfliCostModel(&model, &params.dist, num_bytes) - for i = 0; i < 2; i++ { - initZopfliNodes(nodes, num_bytes+1) - if i == 0 { - zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) - } else { - zopfliCostModelSetFromCommands(&model, position, ringbuffer, ringbuffer_mask, (*commands)[orig_num_commands:], orig_last_insert_len) - } - - *commands = (*commands)[:orig_num_commands] - *num_literals = orig_num_literals - *last_insert_len = orig_last_insert_len - copy(dist_cache, orig_dist_cache[:4]) - zopfliIterate(num_bytes, position, ringbuffer, ringbuffer_mask, params, gap, dist_cache, &model, num_matches, matches, nodes) - zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) - } - - cleanupZopfliCostModel(&model) - nodes = nil - matches = nil - num_matches = nil -} diff --git a/vendor/github.com/andybalholm/brotli/bit_cost.go b/vendor/github.com/andybalholm/brotli/bit_cost.go deleted file mode 100644 index 0005fc1..0000000 --- a/vendor/github.com/andybalholm/brotli/bit_cost.go +++ /dev/null @@ -1,436 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions to estimate the bit cost of Huffman trees. */ -func shannonEntropy(population []uint32, size uint, total *uint) float64 { - var sum uint = 0 - var retval float64 = 0 - var population_end []uint32 = population[size:] - var p uint - for -cap(population) < -cap(population_end) { - p = uint(population[0]) - population = population[1:] - sum += p - retval -= float64(p) * fastLog2(p) - } - - if sum != 0 { - retval += float64(sum) * fastLog2(sum) - } - *total = sum - return retval -} - -func bitsEntropy(population []uint32, size uint) float64 { - var sum uint - var retval float64 = shannonEntropy(population, size, &sum) - if retval < float64(sum) { - /* At least one bit per literal is needed. */ - retval = float64(sum) - } - - return retval -} - -const kOneSymbolHistogramCost float64 = 12 -const kTwoSymbolHistogramCost float64 = 20 -const kThreeSymbolHistogramCost float64 = 28 -const kFourSymbolHistogramCost float64 = 37 - -func populationCostLiteral(histogram *histogramLiteral) float64 { - var data_size uint = histogramDataSizeLiteral() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} - -func populationCostCommand(histogram *histogramCommand) float64 { - var data_size uint = histogramDataSizeCommand() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} - -func populationCostDistance(histogram *histogramDistance) float64 { - var data_size uint = histogramDataSizeDistance() - var count int = 0 - var s [5]uint - var bits float64 = 0.0 - var i uint - if histogram.total_count_ == 0 { - return kOneSymbolHistogramCost - } - - for i = 0; i < data_size; i++ { - if histogram.data_[i] > 0 { - s[count] = i - count++ - if count > 4 { - break - } - } - } - - if count == 1 { - return kOneSymbolHistogramCost - } - - if count == 2 { - return kTwoSymbolHistogramCost + float64(histogram.total_count_) - } - - if count == 3 { - var histo0 uint32 = histogram.data_[s[0]] - var histo1 uint32 = histogram.data_[s[1]] - var histo2 uint32 = histogram.data_[s[2]] - var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) - return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) - } - - if count == 4 { - var histo [4]uint32 - var h23 uint32 - var histomax uint32 - for i = 0; i < 4; i++ { - histo[i] = histogram.data_[s[i]] - } - - /* Sort */ - for i = 0; i < 4; i++ { - var j uint - for j = i + 1; j < 4; j++ { - if histo[j] > histo[i] { - var tmp uint32 = histo[j] - histo[j] = histo[i] - histo[i] = tmp - } - } - } - - h23 = histo[2] + histo[3] - histomax = brotli_max_uint32_t(h23, histo[0]) - return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) - } - { - var max_depth uint = 1 - var depth_histo = [codeLengthCodes]uint32{0} - /* In this loop we compute the entropy of the histogram and simultaneously - build a simplified histogram of the code length codes where we use the - zero repeat code 17, but we don't use the non-zero repeat code 16. */ - - var log2total float64 = fastLog2(histogram.total_count_) - for i = 0; i < data_size; { - if histogram.data_[i] > 0 { - var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) - /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - = log2(total_count) - log2(count(symbol)) */ - - var depth uint = uint(log2p + 0.5) - /* Approximate the bit depth by round(-log2(P(symbol))) */ - bits += float64(histogram.data_[i]) * log2p - - if depth > 15 { - depth = 15 - } - - if depth > max_depth { - max_depth = depth - } - - depth_histo[depth]++ - i++ - } else { - var reps uint32 = 1 - /* Compute the run length of zeros and add the appropriate number of 0 - and 17 code length codes to the code length code histogram. */ - - var k uint - for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { - reps++ - } - - i += uint(reps) - if i == data_size { - /* Don't add any cost for the last zero run, since these are encoded - only implicitly. */ - break - } - - if reps < 3 { - depth_histo[0] += reps - } else { - reps -= 2 - for reps > 0 { - depth_histo[repeatZeroCodeLength]++ - - /* Add the 3 extra bits for the 17 code length code. */ - bits += 3 - - reps >>= 3 - } - } - } - } - - /* Add the estimated encoding cost of the code length code histogram. */ - bits += float64(18 + 2*max_depth) - - /* Add the entropy of the code length code histogram. */ - bits += bitsEntropy(depth_histo[:], codeLengthCodes) - } - - return bits -} diff --git a/vendor/github.com/andybalholm/brotli/bit_reader.go b/vendor/github.com/andybalholm/brotli/bit_reader.go deleted file mode 100644 index fba8687..0000000 --- a/vendor/github.com/andybalholm/brotli/bit_reader.go +++ /dev/null @@ -1,266 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Bit reading helpers */ - -const shortFillBitWindowRead = (8 >> 1) - -var kBitMask = [33]uint32{ - 0x00000000, - 0x00000001, - 0x00000003, - 0x00000007, - 0x0000000F, - 0x0000001F, - 0x0000003F, - 0x0000007F, - 0x000000FF, - 0x000001FF, - 0x000003FF, - 0x000007FF, - 0x00000FFF, - 0x00001FFF, - 0x00003FFF, - 0x00007FFF, - 0x0000FFFF, - 0x0001FFFF, - 0x0003FFFF, - 0x0007FFFF, - 0x000FFFFF, - 0x001FFFFF, - 0x003FFFFF, - 0x007FFFFF, - 0x00FFFFFF, - 0x01FFFFFF, - 0x03FFFFFF, - 0x07FFFFFF, - 0x0FFFFFFF, - 0x1FFFFFFF, - 0x3FFFFFFF, - 0x7FFFFFFF, - 0xFFFFFFFF, -} - -func bitMask(n uint32) uint32 { - return kBitMask[n] -} - -type bitReader struct { - val_ uint64 - bit_pos_ uint32 - input []byte - input_len uint - byte_pos uint -} - -type bitReaderState struct { - val_ uint64 - bit_pos_ uint32 - input []byte - input_len uint - byte_pos uint -} - -/* Initializes the BrotliBitReader fields. */ - -/* Ensures that accumulator is not empty. - May consume up to sizeof(brotli_reg_t) - 1 bytes of input. - Returns false if data is required but there is no input available. - For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned - reading. */ -func bitReaderSaveState(from *bitReader, to *bitReaderState) { - to.val_ = from.val_ - to.bit_pos_ = from.bit_pos_ - to.input = from.input - to.input_len = from.input_len - to.byte_pos = from.byte_pos -} - -func bitReaderRestoreState(to *bitReader, from *bitReaderState) { - to.val_ = from.val_ - to.bit_pos_ = from.bit_pos_ - to.input = from.input - to.input_len = from.input_len - to.byte_pos = from.byte_pos -} - -func getAvailableBits(br *bitReader) uint32 { - return 64 - br.bit_pos_ -} - -/* Returns amount of unread bytes the bit reader still has buffered from the - BrotliInput, including whole bytes in br->val_. */ -func getRemainingBytes(br *bitReader) uint { - return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3)) -} - -/* Checks if there is at least |num| bytes left in the input ring-buffer - (excluding the bits remaining in br->val_). */ -func checkInputAmount(br *bitReader, num uint) bool { - return br.input_len-br.byte_pos >= num -} - -/* Guarantees that there are at least |n_bits| + 1 bits in accumulator. - Precondition: accumulator contains at least 1 bit. - |n_bits| should be in the range [1..24] for regular build. For portable - non-64-bit little-endian build only 16 bits are safe to request. */ -func fillBitWindow(br *bitReader, n_bits uint32) { - if br.bit_pos_ >= 32 { - br.val_ >>= 32 - br.bit_pos_ ^= 32 /* here same as -= 32 because of the if condition */ - br.val_ |= (uint64(binary.LittleEndian.Uint32(br.input[br.byte_pos:]))) << 32 - br.byte_pos += 4 - } -} - -/* Mostly like BrotliFillBitWindow, but guarantees only 16 bits and reads no - more than BROTLI_SHORT_FILL_BIT_WINDOW_READ bytes of input. */ -func fillBitWindow16(br *bitReader) { - fillBitWindow(br, 17) -} - -/* Tries to pull one byte of input to accumulator. - Returns false if there is no input available. */ -func pullByte(br *bitReader) bool { - if br.byte_pos == br.input_len { - return false - } - - br.val_ >>= 8 - br.val_ |= (uint64(br.input[br.byte_pos])) << 56 - br.bit_pos_ -= 8 - br.byte_pos++ - return true -} - -/* Returns currently available bits. - The number of valid bits could be calculated by BrotliGetAvailableBits. */ -func getBitsUnmasked(br *bitReader) uint64 { - return br.val_ >> br.bit_pos_ -} - -/* Like BrotliGetBits, but does not mask the result. - The result contains at least 16 valid bits. */ -func get16BitsUnmasked(br *bitReader) uint32 { - fillBitWindow(br, 16) - return uint32(getBitsUnmasked(br)) -} - -/* Returns the specified number of bits from |br| without advancing bit - position. */ -func getBits(br *bitReader, n_bits uint32) uint32 { - fillBitWindow(br, n_bits) - return uint32(getBitsUnmasked(br)) & bitMask(n_bits) -} - -/* Tries to peek the specified amount of bits. Returns false, if there - is not enough input. */ -func safeGetBits(br *bitReader, n_bits uint32, val *uint32) bool { - for getAvailableBits(br) < n_bits { - if !pullByte(br) { - return false - } - } - - *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) - return true -} - -/* Advances the bit pos by |n_bits|. */ -func dropBits(br *bitReader, n_bits uint32) { - br.bit_pos_ += n_bits -} - -func bitReaderUnload(br *bitReader) { - var unused_bytes uint32 = getAvailableBits(br) >> 3 - var unused_bits uint32 = unused_bytes << 3 - br.byte_pos -= uint(unused_bytes) - if unused_bits == 64 { - br.val_ = 0 - } else { - br.val_ <<= unused_bits - } - - br.bit_pos_ += unused_bits -} - -/* Reads the specified number of bits from |br| and advances the bit pos. - Precondition: accumulator MUST contain at least |n_bits|. */ -func takeBits(br *bitReader, n_bits uint32, val *uint32) { - *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) - dropBits(br, n_bits) -} - -/* Reads the specified number of bits from |br| and advances the bit pos. - Assumes that there is enough input to perform BrotliFillBitWindow. */ -func readBits(br *bitReader, n_bits uint32) uint32 { - var val uint32 - fillBitWindow(br, n_bits) - takeBits(br, n_bits, &val) - return val -} - -/* Tries to read the specified amount of bits. Returns false, if there - is not enough input. |n_bits| MUST be positive. */ -func safeReadBits(br *bitReader, n_bits uint32, val *uint32) bool { - for getAvailableBits(br) < n_bits { - if !pullByte(br) { - return false - } - } - - takeBits(br, n_bits, val) - return true -} - -/* Advances the bit reader position to the next byte boundary and verifies - that any skipped bits are set to zero. */ -func bitReaderJumpToByteBoundary(br *bitReader) bool { - var pad_bits_count uint32 = getAvailableBits(br) & 0x7 - var pad_bits uint32 = 0 - if pad_bits_count != 0 { - takeBits(br, pad_bits_count, &pad_bits) - } - - return pad_bits == 0 -} - -/* Copies remaining input bytes stored in the bit reader to the output. Value - |num| may not be larger than BrotliGetRemainingBytes. The bit reader must be - warmed up again after this. */ -func copyBytes(dest []byte, br *bitReader, num uint) { - for getAvailableBits(br) >= 8 && num > 0 { - dest[0] = byte(getBitsUnmasked(br)) - dropBits(br, 8) - dest = dest[1:] - num-- - } - - copy(dest, br.input[br.byte_pos:][:num]) - br.byte_pos += num -} - -func initBitReader(br *bitReader) { - br.val_ = 0 - br.bit_pos_ = 64 -} - -func warmupBitReader(br *bitReader) bool { - /* Fixing alignment after unaligned BrotliFillWindow would result accumulator - overflow. If unalignment is caused by BrotliSafeReadBits, then there is - enough space in accumulator to fix alignment. */ - if getAvailableBits(br) == 0 { - if !pullByte(br) { - return false - } - } - - return true -} diff --git a/vendor/github.com/andybalholm/brotli/bitwriter.go b/vendor/github.com/andybalholm/brotli/bitwriter.go deleted file mode 100644 index dfc6036..0000000 --- a/vendor/github.com/andybalholm/brotli/bitwriter.go +++ /dev/null @@ -1,56 +0,0 @@ -package brotli - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Write bits into a byte array. */ - -type bitWriter struct { - dst []byte - - // Data waiting to be written is the low nbits of bits. - bits uint64 - nbits uint -} - -func (w *bitWriter) writeBits(nb uint, b uint64) { - w.bits |= b << w.nbits - w.nbits += nb - if w.nbits >= 32 { - bits := w.bits - w.bits >>= 32 - w.nbits -= 32 - w.dst = append(w.dst, - byte(bits), - byte(bits>>8), - byte(bits>>16), - byte(bits>>24), - ) - } -} - -func (w *bitWriter) writeSingleBit(bit bool) { - if bit { - w.writeBits(1, 1) - } else { - w.writeBits(1, 0) - } -} - -func (w *bitWriter) jumpToByteBoundary() { - dst := w.dst - for w.nbits != 0 { - dst = append(dst, byte(w.bits)) - w.bits >>= 8 - if w.nbits > 8 { // Avoid underflow - w.nbits -= 8 - } else { - w.nbits = 0 - } - } - w.bits = 0 - w.dst = dst -} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter.go b/vendor/github.com/andybalholm/brotli/block_splitter.go deleted file mode 100644 index 978a131..0000000 --- a/vendor/github.com/andybalholm/brotli/block_splitter.go +++ /dev/null @@ -1,144 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Block split point selection utilities. */ - -type blockSplit struct { - num_types uint - num_blocks uint - types []byte - lengths []uint32 - types_alloc_size uint - lengths_alloc_size uint -} - -const ( - kMaxLiteralHistograms uint = 100 - kMaxCommandHistograms uint = 50 - kLiteralBlockSwitchCost float64 = 28.1 - kCommandBlockSwitchCost float64 = 13.5 - kDistanceBlockSwitchCost float64 = 14.6 - kLiteralStrideLength uint = 70 - kCommandStrideLength uint = 40 - kSymbolsPerLiteralHistogram uint = 544 - kSymbolsPerCommandHistogram uint = 530 - kSymbolsPerDistanceHistogram uint = 544 - kMinLengthForBlockSplitting uint = 128 - kIterMulForRefining uint = 2 - kMinItersForRefining uint = 100 -) - -func countLiterals(cmds []command) uint { - var total_length uint = 0 - /* Count how many we have. */ - - for i := range cmds { - total_length += uint(cmds[i].insert_len_) - } - - return total_length -} - -func copyLiteralsToByteArray(cmds []command, data []byte, offset uint, mask uint, literals []byte) { - var pos uint = 0 - var from_pos uint = offset & mask - for i := range cmds { - var insert_len uint = uint(cmds[i].insert_len_) - if from_pos+insert_len > mask { - var head_size uint = mask + 1 - from_pos - copy(literals[pos:], data[from_pos:][:head_size]) - from_pos = 0 - pos += head_size - insert_len -= head_size - } - - if insert_len > 0 { - copy(literals[pos:], data[from_pos:][:insert_len]) - pos += insert_len - } - - from_pos = uint((uint32(from_pos+insert_len) + commandCopyLen(&cmds[i])) & uint32(mask)) - } -} - -func myRand(seed *uint32) uint32 { - /* Initial seed should be 7. In this case, loop length is (1 << 29). */ - *seed *= 16807 - - return *seed -} - -func bitCost(count uint) float64 { - if count == 0 { - return -2.0 - } else { - return fastLog2(count) - } -} - -const histogramsPerBatch = 64 - -const clustersPerBatch = 16 - -func initBlockSplit(self *blockSplit) { - self.num_types = 0 - self.num_blocks = 0 - self.types = self.types[:0] - self.lengths = self.lengths[:0] - self.types_alloc_size = 0 - self.lengths_alloc_size = 0 -} - -func splitBlock(cmds []command, data []byte, pos uint, mask uint, params *encoderParams, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit) { - { - var literals_count uint = countLiterals(cmds) - var literals []byte = make([]byte, literals_count) - - /* Create a continuous array of literals. */ - copyLiteralsToByteArray(cmds, data, pos, mask, literals) - - /* Create the block split on the array of literals. - Literal histograms have alphabet size 256. */ - splitByteVectorLiteral(literals, literals_count, kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, kLiteralStrideLength, kLiteralBlockSwitchCost, params, literal_split) - - literals = nil - } - { - var insert_and_copy_codes []uint16 = make([]uint16, len(cmds)) - /* Compute prefix codes for commands. */ - - for i := range cmds { - insert_and_copy_codes[i] = cmds[i].cmd_prefix_ - } - - /* Create the block split on the array of command prefixes. */ - splitByteVectorCommand(insert_and_copy_codes, kSymbolsPerCommandHistogram, kMaxCommandHistograms, kCommandStrideLength, kCommandBlockSwitchCost, params, insert_and_copy_split) - - /* TODO: reuse for distances? */ - - insert_and_copy_codes = nil - } - { - var distance_prefixes []uint16 = make([]uint16, len(cmds)) - var j uint = 0 - /* Create a continuous array of distance prefixes. */ - - for i := range cmds { - var cmd *command = &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - distance_prefixes[j] = cmd.dist_prefix_ & 0x3FF - j++ - } - } - - /* Create the block split on the array of distance prefixes. */ - splitByteVectorDistance(distance_prefixes, j, kSymbolsPerDistanceHistogram, kMaxCommandHistograms, kCommandStrideLength, kDistanceBlockSwitchCost, params, dist_split) - - distance_prefixes = nil - } -} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_command.go b/vendor/github.com/andybalholm/brotli/block_splitter_command.go deleted file mode 100644 index 9dec13e..0000000 --- a/vendor/github.com/andybalholm/brotli/block_splitter_command.go +++ /dev/null @@ -1,434 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsCommand(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorCommand(&histograms[i], data[pos:], stride) - } -} - -func randomSampleCommand(seed *uint32, data []uint16, length uint, stride uint, sample *histogramCommand) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorCommand(sample, data[pos:], stride) -} - -func refineEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramCommand - histogramClearCommand(&sample) - randomSampleCommand(&seed, data, length, stride, &sample) - histogramAddHistogramCommand(&histograms[iter%num_histograms], &sample) - } -} - -/* Assigns a block id from the range [0, num_histograms) to each data element - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. */ -func findBlocksCommand(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramCommand, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeCommand() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsCommand_kInvalidId uint16 = 256 - -func remapBlockIdsCommand(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsCommand_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsCommand_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsCommand(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramCommand) { - var i uint - clearHistogramsCommand(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddCommand(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksCommand_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksCommand(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramCommand = make([]histogramCommand, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramCommand = make([]histogramCommand, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearCommand(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddCommand(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostCommand(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineCommand(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramCommand - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramCommand, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineCommand(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksCommand_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramCommand - var j uint - var best_out uint32 - var best_bits float64 - histogramClearCommand(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddCommand(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceCommand(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceCommand(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksCommand_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorCommand(data []uint16, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - length := uint(len(data)) - var data_size uint = histogramDataSizeCommand() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramCommand - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramCommand, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksCommand(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsCommand(block_ids, length, new_id, num_histograms) - buildBlockHistogramsCommand(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksCommand(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_distance.go b/vendor/github.com/andybalholm/brotli/block_splitter_distance.go deleted file mode 100644 index 953530d..0000000 --- a/vendor/github.com/andybalholm/brotli/block_splitter_distance.go +++ /dev/null @@ -1,433 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsDistance(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorDistance(&histograms[i], data[pos:], stride) - } -} - -func randomSampleDistance(seed *uint32, data []uint16, length uint, stride uint, sample *histogramDistance) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorDistance(sample, data[pos:], stride) -} - -func refineEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramDistance - histogramClearDistance(&sample) - randomSampleDistance(&seed, data, length, stride, &sample) - histogramAddHistogramDistance(&histograms[iter%num_histograms], &sample) - } -} - -/* Assigns a block id from the range [0, num_histograms) to each data element - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. */ -func findBlocksDistance(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramDistance, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeDistance() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsDistance_kInvalidId uint16 = 256 - -func remapBlockIdsDistance(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsDistance_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsDistance_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsDistance(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramDistance) { - var i uint - clearHistogramsDistance(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddDistance(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksDistance_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksDistance(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramDistance = make([]histogramDistance, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramDistance = make([]histogramDistance, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearDistance(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddDistance(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostDistance(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineDistance(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramDistance - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramDistance, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineDistance(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksDistance_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramDistance - var j uint - var best_out uint32 - var best_bits float64 - histogramClearDistance(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddDistance(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceDistance(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceDistance(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksDistance_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorDistance(data []uint16, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - var data_size uint = histogramDataSizeDistance() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramDistance - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramDistance, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksDistance(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsDistance(block_ids, length, new_id, num_histograms) - buildBlockHistogramsDistance(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksDistance(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/vendor/github.com/andybalholm/brotli/block_splitter_literal.go b/vendor/github.com/andybalholm/brotli/block_splitter_literal.go deleted file mode 100644 index 1c895cf..0000000 --- a/vendor/github.com/andybalholm/brotli/block_splitter_literal.go +++ /dev/null @@ -1,433 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func initialEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { - var seed uint32 = 7 - var block_length uint = length / num_histograms - var i uint - clearHistogramsLiteral(histograms, num_histograms) - for i = 0; i < num_histograms; i++ { - var pos uint = length * i / num_histograms - if i != 0 { - pos += uint(myRand(&seed) % uint32(block_length)) - } - - if pos+stride >= length { - pos = length - stride - 1 - } - - histogramAddVectorLiteral(&histograms[i], data[pos:], stride) - } -} - -func randomSampleLiteral(seed *uint32, data []byte, length uint, stride uint, sample *histogramLiteral) { - var pos uint = 0 - if stride >= length { - stride = length - } else { - pos = uint(myRand(seed) % uint32(length-stride+1)) - } - - histogramAddVectorLiteral(sample, data[pos:], stride) -} - -func refineEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { - var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining - var seed uint32 = 7 - var iter uint - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms - for iter = 0; iter < iters; iter++ { - var sample histogramLiteral - histogramClearLiteral(&sample) - randomSampleLiteral(&seed, data, length, stride, &sample) - histogramAddHistogramLiteral(&histograms[iter%num_histograms], &sample) - } -} - -/* Assigns a block id from the range [0, num_histograms) to each data element - in data[0..length) and fills in block_id[0..length) with the assigned values. - Returns the number of blocks, i.e. one plus the number of block switches. */ -func findBlocksLiteral(data []byte, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramLiteral, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { - var data_size uint = histogramDataSizeLiteral() - var bitmaplen uint = (num_histograms + 7) >> 3 - var num_blocks uint = 1 - var i uint - var j uint - assert(num_histograms <= 256) - if num_histograms <= 1 { - for i = 0; i < length; i++ { - block_id[i] = 0 - } - - return 1 - } - - for i := 0; i < int(data_size*num_histograms); i++ { - insert_cost[i] = 0 - } - for i = 0; i < num_histograms; i++ { - insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) - } - - for i = data_size; i != 0; { - i-- - for j = 0; j < num_histograms; j++ { - insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) - } - } - - for i := 0; i < int(num_histograms); i++ { - cost[i] = 0 - } - for i := 0; i < int(length*bitmaplen); i++ { - switch_signal[i] = 0 - } - - /* After each iteration of this loop, cost[k] will contain the difference - between the minimum cost of arriving at the current byte position using - entropy code k, and the minimum cost of arriving at the current byte - position. This difference is capped at the block switch cost, and if it - reaches block switch cost, it means that when we trace back from the last - position, we need to switch here. */ - for i = 0; i < length; i++ { - var byte_ix uint = i - var ix uint = byte_ix * bitmaplen - var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms - var min_cost float64 = 1e99 - var block_switch_cost float64 = block_switch_bitcost - var k uint - for k = 0; k < num_histograms; k++ { - /* We are coding the symbol in data[byte_ix] with entropy code k. */ - cost[k] += insert_cost[insert_cost_ix+k] - - if cost[k] < min_cost { - min_cost = cost[k] - block_id[byte_ix] = byte(k) - } - } - - /* More blocks for the beginning. */ - if byte_ix < 2000 { - block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 - } - - for k = 0; k < num_histograms; k++ { - cost[k] -= min_cost - if cost[k] >= block_switch_cost { - var mask byte = byte(1 << (k & 7)) - cost[k] = block_switch_cost - assert(k>>3 < bitmaplen) - switch_signal[ix+(k>>3)] |= mask - /* Trace back from the last position and switch at the marked places. */ - } - } - } - { - var byte_ix uint = length - 1 - var ix uint = byte_ix * bitmaplen - var cur_id byte = block_id[byte_ix] - for byte_ix > 0 { - var mask byte = byte(1 << (cur_id & 7)) - assert(uint(cur_id)>>3 < bitmaplen) - byte_ix-- - ix -= bitmaplen - if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { - if cur_id != block_id[byte_ix] { - cur_id = block_id[byte_ix] - num_blocks++ - } - } - - block_id[byte_ix] = cur_id - } - } - - return num_blocks -} - -var remapBlockIdsLiteral_kInvalidId uint16 = 256 - -func remapBlockIdsLiteral(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { - var next_id uint16 = 0 - var i uint - for i = 0; i < num_histograms; i++ { - new_id[i] = remapBlockIdsLiteral_kInvalidId - } - - for i = 0; i < length; i++ { - assert(uint(block_ids[i]) < num_histograms) - if new_id[block_ids[i]] == remapBlockIdsLiteral_kInvalidId { - new_id[block_ids[i]] = next_id - next_id++ - } - } - - for i = 0; i < length; i++ { - block_ids[i] = byte(new_id[block_ids[i]]) - assert(uint(block_ids[i]) < num_histograms) - } - - assert(uint(next_id) <= num_histograms) - return uint(next_id) -} - -func buildBlockHistogramsLiteral(data []byte, length uint, block_ids []byte, num_histograms uint, histograms []histogramLiteral) { - var i uint - clearHistogramsLiteral(histograms, num_histograms) - for i = 0; i < length; i++ { - histogramAddLiteral(&histograms[block_ids[i]], uint(data[i])) - } -} - -var clusterBlocksLiteral_kInvalidIndex uint32 = math.MaxUint32 - -func clusterBlocksLiteral(data []byte, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { - var histogram_symbols []uint32 = make([]uint32, num_blocks) - var block_lengths []uint32 = make([]uint32, num_blocks) - var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch - var all_histograms_size uint = 0 - var all_histograms_capacity uint = expected_num_clusters - var all_histograms []histogramLiteral = make([]histogramLiteral, all_histograms_capacity) - var cluster_size_size uint = 0 - var cluster_size_capacity uint = expected_num_clusters - var cluster_size []uint32 = make([]uint32, cluster_size_capacity) - var num_clusters uint = 0 - var histograms []histogramLiteral = make([]histogramLiteral, brotli_min_size_t(num_blocks, histogramsPerBatch)) - var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 - var pairs_capacity uint = max_num_pairs + 1 - var pairs []histogramPair = make([]histogramPair, pairs_capacity) - var pos uint = 0 - var clusters []uint32 - var num_final_clusters uint - var new_index []uint32 - var i uint - var sizes = [histogramsPerBatch]uint32{0} - var new_clusters = [histogramsPerBatch]uint32{0} - var symbols = [histogramsPerBatch]uint32{0} - var remap = [histogramsPerBatch]uint32{0} - - for i := 0; i < int(num_blocks); i++ { - block_lengths[i] = 0 - } - { - var block_idx uint = 0 - for i = 0; i < length; i++ { - assert(block_idx < num_blocks) - block_lengths[block_idx]++ - if i+1 == length || block_ids[i] != block_ids[i+1] { - block_idx++ - } - } - - assert(block_idx == num_blocks) - } - - for i = 0; i < num_blocks; i += histogramsPerBatch { - var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - var k uint - histogramClearLiteral(&histograms[j]) - for k = 0; uint32(k) < block_lengths[i+j]; k++ { - histogramAddLiteral(&histograms[j], uint(data[pos])) - pos++ - } - - histograms[j].bit_cost_ = populationCostLiteral(&histograms[j]) - new_clusters[j] = uint32(j) - symbols[j] = uint32(j) - sizes[j] = 1 - } - - num_new_clusters = histogramCombineLiteral(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) - if all_histograms_capacity < (all_histograms_size + num_new_clusters) { - var _new_size uint - if all_histograms_capacity == 0 { - _new_size = all_histograms_size + num_new_clusters - } else { - _new_size = all_histograms_capacity - } - var new_array []histogramLiteral - for _new_size < (all_histograms_size + num_new_clusters) { - _new_size *= 2 - } - new_array = make([]histogramLiteral, _new_size) - if all_histograms_capacity != 0 { - copy(new_array, all_histograms[:all_histograms_capacity]) - } - - all_histograms = new_array - all_histograms_capacity = _new_size - } - - brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) - for j = 0; j < num_new_clusters; j++ { - all_histograms[all_histograms_size] = histograms[new_clusters[j]] - all_histograms_size++ - cluster_size[cluster_size_size] = sizes[new_clusters[j]] - cluster_size_size++ - remap[new_clusters[j]] = uint32(j) - } - - for j = 0; j < num_to_combine; j++ { - histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] - } - - num_clusters += num_new_clusters - assert(num_clusters == cluster_size_size) - assert(num_clusters == all_histograms_size) - } - - histograms = nil - - max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < max_num_pairs+1 { - pairs = nil - pairs = make([]histogramPair, (max_num_pairs + 1)) - } - - clusters = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - clusters[i] = uint32(i) - } - - num_final_clusters = histogramCombineLiteral(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) - pairs = nil - cluster_size = nil - - new_index = make([]uint32, num_clusters) - for i = 0; i < num_clusters; i++ { - new_index[i] = clusterBlocksLiteral_kInvalidIndex - } - pos = 0 - { - var next_index uint32 = 0 - for i = 0; i < num_blocks; i++ { - var histo histogramLiteral - var j uint - var best_out uint32 - var best_bits float64 - histogramClearLiteral(&histo) - for j = 0; uint32(j) < block_lengths[i]; j++ { - histogramAddLiteral(&histo, uint(data[pos])) - pos++ - } - - if i == 0 { - best_out = histogram_symbols[0] - } else { - best_out = histogram_symbols[i-1] - } - best_bits = histogramBitCostDistanceLiteral(&histo, &all_histograms[best_out]) - for j = 0; j < num_final_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceLiteral(&histo, &all_histograms[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - histogram_symbols[i] = best_out - if new_index[best_out] == clusterBlocksLiteral_kInvalidIndex { - new_index[best_out] = next_index - next_index++ - } - } - } - - clusters = nil - all_histograms = nil - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) - { - var cur_length uint32 = 0 - var block_idx uint = 0 - var max_type byte = 0 - for i = 0; i < num_blocks; i++ { - cur_length += block_lengths[i] - if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { - var id byte = byte(new_index[histogram_symbols[i]]) - split.types[block_idx] = id - split.lengths[block_idx] = cur_length - max_type = brotli_max_uint8_t(max_type, id) - cur_length = 0 - block_idx++ - } - } - - split.num_blocks = block_idx - split.num_types = uint(max_type) + 1 - } - - new_index = nil - block_lengths = nil - histogram_symbols = nil -} - -func splitByteVectorLiteral(data []byte, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { - var data_size uint = histogramDataSizeLiteral() - var num_histograms uint = length/literals_per_histogram + 1 - var histograms []histogramLiteral - if num_histograms > max_histograms { - num_histograms = max_histograms - } - - if length == 0 { - split.num_types = 1 - return - } else if length < kMinLengthForBlockSplitting { - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) - split.num_types = 1 - split.types[split.num_blocks] = 0 - split.lengths[split.num_blocks] = uint32(length) - split.num_blocks++ - return - } - - histograms = make([]histogramLiteral, num_histograms) - - /* Find good entropy codes. */ - initialEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) - - refineEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) - { - var block_ids []byte = make([]byte, length) - var num_blocks uint = 0 - var bitmaplen uint = (num_histograms + 7) >> 3 - var insert_cost []float64 = make([]float64, (data_size * num_histograms)) - var cost []float64 = make([]float64, num_histograms) - var switch_signal []byte = make([]byte, (length * bitmaplen)) - var new_id []uint16 = make([]uint16, num_histograms) - var iters uint - if params.quality < hqZopflificationQuality { - iters = 3 - } else { - iters = 10 - } - /* Find a good path through literals with the good entropy codes. */ - - var i uint - for i = 0; i < iters; i++ { - num_blocks = findBlocksLiteral(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) - num_histograms = remapBlockIdsLiteral(block_ids, length, new_id, num_histograms) - buildBlockHistogramsLiteral(data, length, block_ids, num_histograms, histograms) - } - - insert_cost = nil - cost = nil - switch_signal = nil - new_id = nil - histograms = nil - clusterBlocksLiteral(data, length, num_blocks, block_ids, split) - block_ids = nil - } -} diff --git a/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go b/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go deleted file mode 100644 index ee65529..0000000 --- a/vendor/github.com/andybalholm/brotli/brotli_bit_stream.go +++ /dev/null @@ -1,1539 +0,0 @@ -package brotli - -import ( - "math" - "sync" -) - -const maxHuffmanTreeSize = (2*numCommandSymbols + 1) - -/* -The maximum size of Huffman dictionary for distances assuming that - - NPOSTFIX = 0 and NDIRECT = 0. -*/ -const maxSimpleDistanceAlphabetSize = 140 - -/* -Represents the range of values belonging to a prefix code: - - [offset, offset + 2^nbits) -*/ -type prefixCodeRange struct { - offset uint32 - nbits uint32 -} - -var kBlockLengthPrefixCode = [numBlockLenSymbols]prefixCodeRange{ - prefixCodeRange{1, 2}, - prefixCodeRange{5, 2}, - prefixCodeRange{9, 2}, - prefixCodeRange{13, 2}, - prefixCodeRange{17, 3}, - prefixCodeRange{25, 3}, - prefixCodeRange{33, 3}, - prefixCodeRange{41, 3}, - prefixCodeRange{49, 4}, - prefixCodeRange{65, 4}, - prefixCodeRange{81, 4}, - prefixCodeRange{97, 4}, - prefixCodeRange{113, 5}, - prefixCodeRange{145, 5}, - prefixCodeRange{177, 5}, - prefixCodeRange{209, 5}, - prefixCodeRange{241, 6}, - prefixCodeRange{305, 6}, - prefixCodeRange{369, 7}, - prefixCodeRange{497, 8}, - prefixCodeRange{753, 9}, - prefixCodeRange{1265, 10}, - prefixCodeRange{2289, 11}, - prefixCodeRange{4337, 12}, - prefixCodeRange{8433, 13}, - prefixCodeRange{16625, 24}, -} - -func blockLengthPrefixCode(len uint32) uint32 { - var code uint32 - if len >= 177 { - if len >= 753 { - code = 20 - } else { - code = 14 - } - } else if len >= 41 { - code = 7 - } else { - code = 0 - } - for code < (numBlockLenSymbols-1) && len >= kBlockLengthPrefixCode[code+1].offset { - code++ - } - return code -} - -func getBlockLengthPrefixCode(len uint32, code *uint, n_extra *uint32, extra *uint32) { - *code = uint(blockLengthPrefixCode(uint32(len))) - *n_extra = kBlockLengthPrefixCode[*code].nbits - *extra = len - kBlockLengthPrefixCode[*code].offset -} - -type blockTypeCodeCalculator struct { - last_type uint - second_last_type uint -} - -func initBlockTypeCodeCalculator(self *blockTypeCodeCalculator) { - self.last_type = 1 - self.second_last_type = 0 -} - -func nextBlockTypeCode(calculator *blockTypeCodeCalculator, type_ byte) uint { - var type_code uint - if uint(type_) == calculator.last_type+1 { - type_code = 1 - } else if uint(type_) == calculator.second_last_type { - type_code = 0 - } else { - type_code = uint(type_) + 2 - } - calculator.second_last_type = calculator.last_type - calculator.last_type = uint(type_) - return type_code -} - -/* -|nibblesbits| represents the 2 bits to encode MNIBBLES (0-3) - - REQUIRES: length > 0 - REQUIRES: length <= (1 << 24) -*/ -func encodeMlen(length uint, bits *uint64, numbits *uint, nibblesbits *uint64) { - var lg uint - if length == 1 { - lg = 1 - } else { - lg = uint(log2FloorNonZero(uint(uint32(length-1)))) + 1 - } - var tmp uint - if lg < 16 { - tmp = 16 - } else { - tmp = (lg + 3) - } - var mnibbles uint = tmp / 4 - assert(length > 0) - assert(length <= 1<<24) - assert(lg <= 24) - *nibblesbits = uint64(mnibbles) - 4 - *numbits = mnibbles * 4 - *bits = uint64(length) - 1 -} - -func storeCommandExtra(cmd *command, storage_ix *uint, storage []byte) { - var copylen_code uint32 = commandCopyLenCode(cmd) - var inscode uint16 = getInsertLengthCode(uint(cmd.insert_len_)) - var copycode uint16 = getCopyLengthCode(uint(copylen_code)) - var insnumextra uint32 = getInsertExtra(inscode) - var insextraval uint64 = uint64(cmd.insert_len_) - uint64(getInsertBase(inscode)) - var copyextraval uint64 = uint64(copylen_code) - uint64(getCopyBase(copycode)) - var bits uint64 = copyextraval<<insnumextra | insextraval - writeBits(uint(insnumextra+getCopyExtra(copycode)), bits, storage_ix, storage) -} - -/* -Data structure that stores almost everything that is needed to encode each - - block switch command. -*/ -type blockSplitCode struct { - type_code_calculator blockTypeCodeCalculator - type_depths [maxBlockTypeSymbols]byte - type_bits [maxBlockTypeSymbols]uint16 - length_depths [numBlockLenSymbols]byte - length_bits [numBlockLenSymbols]uint16 -} - -/* Stores a number between 0 and 255. */ -func storeVarLenUint8(n uint, storage_ix *uint, storage []byte) { - if n == 0 { - writeBits(1, 0, storage_ix, storage) - } else { - var nbits uint = uint(log2FloorNonZero(n)) - writeBits(1, 1, storage_ix, storage) - writeBits(3, uint64(nbits), storage_ix, storage) - writeBits(nbits, uint64(n)-(uint64(uint(1))<<nbits), storage_ix, storage) - } -} - -/* -Stores the compressed meta-block header. - - REQUIRES: length > 0 - REQUIRES: length <= (1 << 24) -*/ -func storeCompressedMetaBlockHeader(is_final_block bool, length uint, storage_ix *uint, storage []byte) { - var lenbits uint64 - var nlenbits uint - var nibblesbits uint64 - var is_final uint64 - if is_final_block { - is_final = 1 - } else { - is_final = 0 - } - - /* Write ISLAST bit. */ - writeBits(1, is_final, storage_ix, storage) - - /* Write ISEMPTY bit. */ - if is_final_block { - writeBits(1, 0, storage_ix, storage) - } - - encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) - writeBits(2, nibblesbits, storage_ix, storage) - writeBits(nlenbits, lenbits, storage_ix, storage) - - if !is_final_block { - /* Write ISUNCOMPRESSED bit. */ - writeBits(1, 0, storage_ix, storage) - } -} - -/* -Stores the uncompressed meta-block header. - - REQUIRES: length > 0 - REQUIRES: length <= (1 << 24) -*/ -func storeUncompressedMetaBlockHeader(length uint, storage_ix *uint, storage []byte) { - var lenbits uint64 - var nlenbits uint - var nibblesbits uint64 - - /* Write ISLAST bit. - Uncompressed block cannot be the last one, so set to 0. */ - writeBits(1, 0, storage_ix, storage) - - encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) - writeBits(2, nibblesbits, storage_ix, storage) - writeBits(nlenbits, lenbits, storage_ix, storage) - - /* Write ISUNCOMPRESSED bit. */ - writeBits(1, 1, storage_ix, storage) -} - -var storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} - -var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols = [6]byte{0, 7, 3, 2, 1, 15} -var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths = [6]byte{2, 4, 3, 2, 2, 4} - -func storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes int, code_length_bitdepth []byte, storage_ix *uint, storage []byte) { - var skip_some uint = 0 - var codes_to_store uint = codeLengthCodes - /* The bit lengths of the Huffman code over the code length alphabet - are compressed with the following static Huffman code: - Symbol Code - ------ ---- - 0 00 - 1 1110 - 2 110 - 3 01 - 4 10 - 5 1111 */ - - /* Throw away trailing zeros: */ - if num_codes > 1 { - for ; codes_to_store > 0; codes_to_store-- { - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[codes_to_store-1]] != 0 { - break - } - } - } - - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[0]] == 0 && code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[1]] == 0 { - skip_some = 2 /* skips two. */ - if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[2]] == 0 { - skip_some = 3 /* skips three. */ - } - } - - writeBits(2, uint64(skip_some), storage_ix, storage) - { - var i uint - for i = skip_some; i < codes_to_store; i++ { - var l uint = uint(code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[i]]) - writeBits(uint(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths[l]), uint64(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols[l]), storage_ix, storage) - } - } -} - -func storeHuffmanTreeToBitMask(huffman_tree_size uint, huffman_tree []byte, huffman_tree_extra_bits []byte, code_length_bitdepth []byte, code_length_bitdepth_symbols []uint16, storage_ix *uint, storage []byte) { - var i uint - for i = 0; i < huffman_tree_size; i++ { - var ix uint = uint(huffman_tree[i]) - writeBits(uint(code_length_bitdepth[ix]), uint64(code_length_bitdepth_symbols[ix]), storage_ix, storage) - - /* Extra bits */ - switch ix { - case repeatPreviousCodeLength: - writeBits(2, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) - - case repeatZeroCodeLength: - writeBits(3, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) - } - } -} - -func storeSimpleHuffmanTree(depths []byte, symbols []uint, num_symbols uint, max_bits uint, storage_ix *uint, storage []byte) { - /* value of 1 indicates a simple Huffman code */ - writeBits(2, 1, storage_ix, storage) - - writeBits(2, uint64(num_symbols)-1, storage_ix, storage) /* NSYM - 1 */ - { - /* Sort */ - var i uint - for i = 0; i < num_symbols; i++ { - var j uint - for j = i + 1; j < num_symbols; j++ { - if depths[symbols[j]] < depths[symbols[i]] { - var tmp uint = symbols[j] - symbols[j] = symbols[i] - symbols[i] = tmp - } - } - } - } - - if num_symbols == 2 { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - } else if num_symbols == 3 { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) - } else { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) - - /* tree-select */ - var tmp int - if depths[symbols[0]] == 1 { - tmp = 1 - } else { - tmp = 0 - } - writeBits(1, uint64(tmp), storage_ix, storage) - } -} - -/* -num = alphabet size - - depths = symbol depths -*/ -func storeHuffmanTree(depths []byte, num uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - var huffman_tree [numCommandSymbols]byte - var huffman_tree_extra_bits [numCommandSymbols]byte - var huffman_tree_size uint = 0 - var code_length_bitdepth = [codeLengthCodes]byte{0} - var code_length_bitdepth_symbols [codeLengthCodes]uint16 - var huffman_tree_histogram = [codeLengthCodes]uint32{0} - var i uint - var num_codes int = 0 - /* Write the Huffman tree into the brotli-representation. - The command alphabet is the largest, so this allocation will fit all - alphabets. */ - - var code uint = 0 - - assert(num <= numCommandSymbols) - - writeHuffmanTree(depths, num, &huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:]) - - /* Calculate the statistics of the Huffman tree in brotli-representation. */ - for i = 0; i < huffman_tree_size; i++ { - huffman_tree_histogram[huffman_tree[i]]++ - } - - for i = 0; i < codeLengthCodes; i++ { - if huffman_tree_histogram[i] != 0 { - if num_codes == 0 { - code = i - num_codes = 1 - } else if num_codes == 1 { - num_codes = 2 - break - } - } - } - - /* Calculate another Huffman tree to use for compressing both the - earlier Huffman tree with. */ - createHuffmanTree(huffman_tree_histogram[:], codeLengthCodes, 5, tree, code_length_bitdepth[:]) - - convertBitDepthsToSymbols(code_length_bitdepth[:], codeLengthCodes, code_length_bitdepth_symbols[:]) - - /* Now, we have all the data, let's start storing it */ - storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth[:], storage_ix, storage) - - if num_codes == 1 { - code_length_bitdepth[code] = 0 - } - - /* Store the real Huffman tree now. */ - storeHuffmanTreeToBitMask(huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:], code_length_bitdepth[:], code_length_bitdepth_symbols[:], storage_ix, storage) -} - -/* -Builds a Huffman tree from histogram[0:length] into depth[0:length] and - - bits[0:length] and stores the encoded tree to the bit stream. -*/ -func buildAndStoreHuffmanTree(histogram []uint32, histogram_length uint, alphabet_size uint, tree []huffmanTree, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { - var count uint = 0 - var s4 = [4]uint{0} - var i uint - var max_bits uint = 0 - for i = 0; i < histogram_length; i++ { - if histogram[i] != 0 { - if count < 4 { - s4[count] = i - } else if count > 4 { - break - } - - count++ - } - } - { - var max_bits_counter uint = alphabet_size - 1 - for max_bits_counter != 0 { - max_bits_counter >>= 1 - max_bits++ - } - } - - if count <= 1 { - writeBits(4, 1, storage_ix, storage) - writeBits(max_bits, uint64(s4[0]), storage_ix, storage) - depth[s4[0]] = 0 - bits[s4[0]] = 0 - return - } - - for i := 0; i < int(histogram_length); i++ { - depth[i] = 0 - } - createHuffmanTree(histogram, histogram_length, 15, tree, depth) - convertBitDepthsToSymbols(depth, histogram_length, bits) - - if count <= 4 { - storeSimpleHuffmanTree(depth, s4[:], count, max_bits, storage_ix, storage) - } else { - storeHuffmanTree(depth, histogram_length, tree, storage_ix, storage) - } -} - -func sortHuffmanTree1(v0 huffmanTree, v1 huffmanTree) bool { - return v0.total_count_ < v1.total_count_ -} - -var huffmanTreePool sync.Pool - -func buildAndStoreHuffmanTreeFast(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { - var count uint = 0 - var symbols = [4]uint{0} - var length uint = 0 - var total uint = histogram_total - for total != 0 { - if histogram[length] != 0 { - if count < 4 { - symbols[count] = length - } - - count++ - total -= uint(histogram[length]) - } - - length++ - } - - if count <= 1 { - writeBits(4, 1, storage_ix, storage) - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - depth[symbols[0]] = 0 - bits[symbols[0]] = 0 - return - } - - for i := 0; i < int(length); i++ { - depth[i] = 0 - } - { - var max_tree_size uint = 2*length + 1 - tree, _ := huffmanTreePool.Get().(*[]huffmanTree) - if tree == nil || cap(*tree) < int(max_tree_size) { - tmp := make([]huffmanTree, max_tree_size) - tree = &tmp - } else { - *tree = (*tree)[:max_tree_size] - } - var count_limit uint32 - for count_limit = 1; ; count_limit *= 2 { - var node int = 0 - var l uint - for l = length; l != 0; { - l-- - if histogram[l] != 0 { - if histogram[l] >= count_limit { - initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) - } else { - initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) - } - - node++ - } - } - { - var n int = node - /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ - var sentinel huffmanTree - var i int = 0 - var j int = n + 1 - var k int - - sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) - - /* The nodes are: - [0, n): the sorted leaf nodes that we start with. - [n]: we add a sentinel here. - [n + 1, 2n): new parent nodes are added here, starting from - (n+1). These are naturally in ascending order. - [2n]: we add a sentinel at the end as well. - There will be (2n+1) elements at the end. */ - initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) - - (*tree)[node] = sentinel - node++ - (*tree)[node] = sentinel - node++ - - for k = n - 1; k > 0; k-- { - var left int - var right int - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - left = i - i++ - } else { - left = j - j++ - } - - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - right = i - i++ - } else { - right = j - j++ - } - - /* The sentinel node becomes the parent node. */ - (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ - - (*tree)[node-1].index_left_ = int16(left) - (*tree)[node-1].index_right_or_value_ = int16(right) - - /* Add back the last sentinel node. */ - (*tree)[node] = sentinel - node++ - } - - if setDepth(2*n-1, *tree, depth, 14) { - /* We need to pack the Huffman tree in 14 bits. If this was not - successful, add fake entities to the lowest values and retry. */ - break - } - } - } - - huffmanTreePool.Put(tree) - } - - convertBitDepthsToSymbols(depth, length, bits) - if count <= 4 { - var i uint - - /* value of 1 indicates a simple Huffman code */ - writeBits(2, 1, storage_ix, storage) - - writeBits(2, uint64(count)-1, storage_ix, storage) /* NSYM - 1 */ - - /* Sort */ - for i = 0; i < count; i++ { - var j uint - for j = i + 1; j < count; j++ { - if depth[symbols[j]] < depth[symbols[i]] { - var tmp uint = symbols[j] - symbols[j] = symbols[i] - symbols[i] = tmp - } - } - } - - if count == 2 { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - } else if count == 3 { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) - } else { - writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) - writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) - - /* tree-select */ - var tmp int - if depth[symbols[0]] == 1 { - tmp = 1 - } else { - tmp = 0 - } - writeBits(1, uint64(tmp), storage_ix, storage) - } - } else { - var previous_value byte = 8 - var i uint - - /* Complex Huffman Tree */ - storeStaticCodeLengthCode(storage_ix, storage) - - /* Actual RLE coding. */ - for i = 0; i < length; { - var value byte = depth[i] - var reps uint = 1 - var k uint - for k = i + 1; k < length && depth[k] == value; k++ { - reps++ - } - - i += reps - if value == 0 { - writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps], storage_ix, storage) - } else { - if previous_value != value { - writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) - reps-- - } - - if reps < 3 { - for reps != 0 { - reps-- - writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) - } - } else { - reps -= 3 - writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps], storage_ix, storage) - } - - previous_value = value - } - } - } -} - -func buildAndStoreHuffmanTreeFastBW(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, bw *bitWriter) { - var count uint = 0 - var symbols = [4]uint{0} - var length uint = 0 - var total uint = histogram_total - for total != 0 { - if histogram[length] != 0 { - if count < 4 { - symbols[count] = length - } - - count++ - total -= uint(histogram[length]) - } - - length++ - } - - if count <= 1 { - bw.writeBits(4, 1) - bw.writeBits(max_bits, uint64(symbols[0])) - depth[symbols[0]] = 0 - bits[symbols[0]] = 0 - return - } - - for i := 0; i < int(length); i++ { - depth[i] = 0 - } - { - var max_tree_size uint = 2*length + 1 - tree, _ := huffmanTreePool.Get().(*[]huffmanTree) - if tree == nil || cap(*tree) < int(max_tree_size) { - tmp := make([]huffmanTree, max_tree_size) - tree = &tmp - } else { - *tree = (*tree)[:max_tree_size] - } - var count_limit uint32 - for count_limit = 1; ; count_limit *= 2 { - var node int = 0 - var l uint - for l = length; l != 0; { - l-- - if histogram[l] != 0 { - if histogram[l] >= count_limit { - initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) - } else { - initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) - } - - node++ - } - } - { - var n int = node - /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ - var sentinel huffmanTree - var i int = 0 - var j int = n + 1 - var k int - - sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) - - /* The nodes are: - [0, n): the sorted leaf nodes that we start with. - [n]: we add a sentinel here. - [n + 1, 2n): new parent nodes are added here, starting from - (n+1). These are naturally in ascending order. - [2n]: we add a sentinel at the end as well. - There will be (2n+1) elements at the end. */ - initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) - - (*tree)[node] = sentinel - node++ - (*tree)[node] = sentinel - node++ - - for k = n - 1; k > 0; k-- { - var left int - var right int - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - left = i - i++ - } else { - left = j - j++ - } - - if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { - right = i - i++ - } else { - right = j - j++ - } - - /* The sentinel node becomes the parent node. */ - (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ - - (*tree)[node-1].index_left_ = int16(left) - (*tree)[node-1].index_right_or_value_ = int16(right) - - /* Add back the last sentinel node. */ - (*tree)[node] = sentinel - node++ - } - - if setDepth(2*n-1, *tree, depth, 14) { - /* We need to pack the Huffman tree in 14 bits. If this was not - successful, add fake entities to the lowest values and retry. */ - break - } - } - } - - huffmanTreePool.Put(tree) - } - - convertBitDepthsToSymbols(depth, length, bits) - if count <= 4 { - var i uint - - /* value of 1 indicates a simple Huffman code */ - bw.writeBits(2, 1) - - bw.writeBits(2, uint64(count)-1) /* NSYM - 1 */ - - /* Sort */ - for i = 0; i < count; i++ { - var j uint - for j = i + 1; j < count; j++ { - if depth[symbols[j]] < depth[symbols[i]] { - var tmp uint = symbols[j] - symbols[j] = symbols[i] - symbols[i] = tmp - } - } - } - - if count == 2 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - } else if count == 3 { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - } else { - bw.writeBits(max_bits, uint64(symbols[0])) - bw.writeBits(max_bits, uint64(symbols[1])) - bw.writeBits(max_bits, uint64(symbols[2])) - bw.writeBits(max_bits, uint64(symbols[3])) - - /* tree-select */ - bw.writeSingleBit(depth[symbols[0]] == 1) - } - } else { - var previous_value byte = 8 - var i uint - - /* Complex Huffman Tree */ - storeStaticCodeLengthCodeBW(bw) - - /* Actual RLE coding. */ - for i = 0; i < length; { - var value byte = depth[i] - var reps uint = 1 - var k uint - for k = i + 1; k < length && depth[k] == value; k++ { - reps++ - } - - i += reps - if value == 0 { - bw.writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps]) - } else { - if previous_value != value { - bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) - reps-- - } - - if reps < 3 { - for reps != 0 { - reps-- - bw.writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value])) - } - } else { - reps -= 3 - bw.writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps]) - } - - previous_value = value - } - } - } -} - -func indexOf(v []byte, v_size uint, value byte) uint { - var i uint = 0 - for ; i < v_size; i++ { - if v[i] == value { - return i - } - } - - return i -} - -func moveToFront(v []byte, index uint) { - var value byte = v[index] - var i uint - for i = index; i != 0; i-- { - v[i] = v[i-1] - } - - v[0] = value -} - -func moveToFrontTransform(v_in []uint32, v_size uint, v_out []uint32) { - var i uint - var mtf [256]byte - var max_value uint32 - if v_size == 0 { - return - } - - max_value = v_in[0] - for i = 1; i < v_size; i++ { - if v_in[i] > max_value { - max_value = v_in[i] - } - } - - assert(max_value < 256) - for i = 0; uint32(i) <= max_value; i++ { - mtf[i] = byte(i) - } - { - var mtf_size uint = uint(max_value + 1) - for i = 0; i < v_size; i++ { - var index uint = indexOf(mtf[:], mtf_size, byte(v_in[i])) - assert(index < mtf_size) - v_out[i] = uint32(index) - moveToFront(mtf[:], index) - } - } -} - -/* -Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of - - the run length plus extra bits (lower 9 bits is the prefix code and the rest - are the extra bits). Non-zero values in v[] are shifted by - *max_length_prefix. Will not create prefix codes bigger than the initial - value of *max_run_length_prefix. The prefix code of run length L is simply - Log2Floor(L) and the number of extra bits is the same as the prefix code. -*/ -func runLengthCodeZeros(in_size uint, v []uint32, out_size *uint, max_run_length_prefix *uint32) { - var max_reps uint32 = 0 - var i uint - var max_prefix uint32 - for i = 0; i < in_size; { - var reps uint32 = 0 - for ; i < in_size && v[i] != 0; i++ { - } - for ; i < in_size && v[i] == 0; i++ { - reps++ - } - - max_reps = brotli_max_uint32_t(reps, max_reps) - } - - if max_reps > 0 { - max_prefix = log2FloorNonZero(uint(max_reps)) - } else { - max_prefix = 0 - } - max_prefix = brotli_min_uint32_t(max_prefix, *max_run_length_prefix) - *max_run_length_prefix = max_prefix - *out_size = 0 - for i = 0; i < in_size; { - assert(*out_size <= i) - if v[i] != 0 { - v[*out_size] = v[i] + *max_run_length_prefix - i++ - (*out_size)++ - } else { - var reps uint32 = 1 - var k uint - for k = i + 1; k < in_size && v[k] == 0; k++ { - reps++ - } - - i += uint(reps) - for reps != 0 { - if reps < 2<<max_prefix { - var run_length_prefix uint32 = log2FloorNonZero(uint(reps)) - var extra_bits uint32 = reps - (1 << run_length_prefix) - v[*out_size] = run_length_prefix + (extra_bits << 9) - (*out_size)++ - break - } else { - var extra_bits uint32 = (1 << max_prefix) - 1 - v[*out_size] = max_prefix + (extra_bits << 9) - reps -= (2 << max_prefix) - 1 - (*out_size)++ - } - } - } - } -} - -const symbolBits = 9 - -var encodeContextMap_kSymbolMask uint32 = (1 << symbolBits) - 1 - -func encodeContextMap(context_map []uint32, context_map_size uint, num_clusters uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - var i uint - var rle_symbols []uint32 - var max_run_length_prefix uint32 = 6 - var num_rle_symbols uint = 0 - var histogram [maxContextMapSymbols]uint32 - var depths [maxContextMapSymbols]byte - var bits [maxContextMapSymbols]uint16 - - storeVarLenUint8(num_clusters-1, storage_ix, storage) - - if num_clusters == 1 { - return - } - - rle_symbols = make([]uint32, context_map_size) - moveToFrontTransform(context_map, context_map_size, rle_symbols) - runLengthCodeZeros(context_map_size, rle_symbols, &num_rle_symbols, &max_run_length_prefix) - histogram = [maxContextMapSymbols]uint32{} - for i = 0; i < num_rle_symbols; i++ { - histogram[rle_symbols[i]&encodeContextMap_kSymbolMask]++ - } - { - var use_rle bool = (max_run_length_prefix > 0) - writeSingleBit(use_rle, storage_ix, storage) - if use_rle { - writeBits(4, uint64(max_run_length_prefix)-1, storage_ix, storage) - } - } - - buildAndStoreHuffmanTree(histogram[:], uint(uint32(num_clusters)+max_run_length_prefix), uint(uint32(num_clusters)+max_run_length_prefix), tree, depths[:], bits[:], storage_ix, storage) - for i = 0; i < num_rle_symbols; i++ { - var rle_symbol uint32 = rle_symbols[i] & encodeContextMap_kSymbolMask - var extra_bits_val uint32 = rle_symbols[i] >> symbolBits - writeBits(uint(depths[rle_symbol]), uint64(bits[rle_symbol]), storage_ix, storage) - if rle_symbol > 0 && rle_symbol <= max_run_length_prefix { - writeBits(uint(rle_symbol), uint64(extra_bits_val), storage_ix, storage) - } - } - - writeBits(1, 1, storage_ix, storage) /* use move-to-front */ - rle_symbols = nil -} - -/* Stores the block switch command with index block_ix to the bit stream. */ -func storeBlockSwitch(code *blockSplitCode, block_len uint32, block_type byte, is_first_block bool, storage_ix *uint, storage []byte) { - var typecode uint = nextBlockTypeCode(&code.type_code_calculator, block_type) - var lencode uint - var len_nextra uint32 - var len_extra uint32 - if !is_first_block { - writeBits(uint(code.type_depths[typecode]), uint64(code.type_bits[typecode]), storage_ix, storage) - } - - getBlockLengthPrefixCode(block_len, &lencode, &len_nextra, &len_extra) - - writeBits(uint(code.length_depths[lencode]), uint64(code.length_bits[lencode]), storage_ix, storage) - writeBits(uint(len_nextra), uint64(len_extra), storage_ix, storage) -} - -/* -Builds a BlockSplitCode data structure from the block split given by the - - vector of block types and block lengths and stores it to the bit stream. -*/ -func buildAndStoreBlockSplitCode(types []byte, lengths []uint32, num_blocks uint, num_types uint, tree []huffmanTree, code *blockSplitCode, storage_ix *uint, storage []byte) { - var type_histo [maxBlockTypeSymbols]uint32 - var length_histo [numBlockLenSymbols]uint32 - var i uint - var type_code_calculator blockTypeCodeCalculator - for i := 0; i < int(num_types+2); i++ { - type_histo[i] = 0 - } - length_histo = [numBlockLenSymbols]uint32{} - initBlockTypeCodeCalculator(&type_code_calculator) - for i = 0; i < num_blocks; i++ { - var type_code uint = nextBlockTypeCode(&type_code_calculator, types[i]) - if i != 0 { - type_histo[type_code]++ - } - length_histo[blockLengthPrefixCode(lengths[i])]++ - } - - storeVarLenUint8(num_types-1, storage_ix, storage) - if num_types > 1 { /* TODO: else? could StoreBlockSwitch occur? */ - buildAndStoreHuffmanTree(type_histo[0:], num_types+2, num_types+2, tree, code.type_depths[0:], code.type_bits[0:], storage_ix, storage) - buildAndStoreHuffmanTree(length_histo[0:], numBlockLenSymbols, numBlockLenSymbols, tree, code.length_depths[0:], code.length_bits[0:], storage_ix, storage) - storeBlockSwitch(code, lengths[0], types[0], true, storage_ix, storage) - } -} - -/* Stores a context map where the histogram type is always the block type. */ -func storeTrivialContextMap(num_types uint, context_bits uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - storeVarLenUint8(num_types-1, storage_ix, storage) - if num_types > 1 { - var repeat_code uint = context_bits - 1 - var repeat_bits uint = (1 << repeat_code) - 1 - var alphabet_size uint = num_types + repeat_code - var histogram [maxContextMapSymbols]uint32 - var depths [maxContextMapSymbols]byte - var bits [maxContextMapSymbols]uint16 - var i uint - for i := 0; i < int(alphabet_size); i++ { - histogram[i] = 0 - } - - /* Write RLEMAX. */ - writeBits(1, 1, storage_ix, storage) - - writeBits(4, uint64(repeat_code)-1, storage_ix, storage) - histogram[repeat_code] = uint32(num_types) - histogram[0] = 1 - for i = context_bits; i < alphabet_size; i++ { - histogram[i] = 1 - } - - buildAndStoreHuffmanTree(histogram[:], alphabet_size, alphabet_size, tree, depths[:], bits[:], storage_ix, storage) - for i = 0; i < num_types; i++ { - var tmp uint - if i == 0 { - tmp = 0 - } else { - tmp = i + context_bits - 1 - } - var code uint = tmp - writeBits(uint(depths[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(depths[repeat_code]), uint64(bits[repeat_code]), storage_ix, storage) - writeBits(repeat_code, uint64(repeat_bits), storage_ix, storage) - } - - /* Write IMTF (inverse-move-to-front) bit. */ - writeBits(1, 1, storage_ix, storage) - } -} - -/* Manages the encoding of one block category (literal, command or distance). */ -type blockEncoder struct { - histogram_length_ uint - num_block_types_ uint - block_types_ []byte - block_lengths_ []uint32 - num_blocks_ uint - block_split_code_ blockSplitCode - block_ix_ uint - block_len_ uint - entropy_ix_ uint - depths_ []byte - bits_ []uint16 -} - -var blockEncoderPool sync.Pool - -func getBlockEncoder(histogram_length uint, num_block_types uint, block_types []byte, block_lengths []uint32, num_blocks uint) *blockEncoder { - self, _ := blockEncoderPool.Get().(*blockEncoder) - - if self != nil { - self.block_ix_ = 0 - self.entropy_ix_ = 0 - self.depths_ = self.depths_[:0] - self.bits_ = self.bits_[:0] - } else { - self = &blockEncoder{} - } - - self.histogram_length_ = histogram_length - self.num_block_types_ = num_block_types - self.block_types_ = block_types - self.block_lengths_ = block_lengths - self.num_blocks_ = num_blocks - initBlockTypeCodeCalculator(&self.block_split_code_.type_code_calculator) - if num_blocks == 0 { - self.block_len_ = 0 - } else { - self.block_len_ = uint(block_lengths[0]) - } - - return self -} - -func cleanupBlockEncoder(self *blockEncoder) { - blockEncoderPool.Put(self) -} - -/* -Creates entropy codes of block lengths and block types and stores them - - to the bit stream. -*/ -func buildAndStoreBlockSwitchEntropyCodes(self *blockEncoder, tree []huffmanTree, storage_ix *uint, storage []byte) { - buildAndStoreBlockSplitCode(self.block_types_, self.block_lengths_, self.num_blocks_, self.num_block_types_, tree, &self.block_split_code_, storage_ix, storage) -} - -/* -Stores the next symbol with the entropy code of the current block type. - - Updates the block type and block length at block boundaries. -*/ -func storeSymbol(self *blockEncoder, symbol uint, storage_ix *uint, storage []byte) { - if self.block_len_ == 0 { - self.block_ix_++ - var block_ix uint = self.block_ix_ - var block_len uint32 = self.block_lengths_[block_ix] - var block_type byte = self.block_types_[block_ix] - self.block_len_ = uint(block_len) - self.entropy_ix_ = uint(block_type) * self.histogram_length_ - storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) - } - - self.block_len_-- - { - var ix uint = self.entropy_ix_ + symbol - writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) - } -} - -/* -Stores the next symbol with the entropy code of the current block type and - - context value. - Updates the block type and block length at block boundaries. -*/ -func storeSymbolWithContext(self *blockEncoder, symbol uint, context uint, context_map []uint32, storage_ix *uint, storage []byte, context_bits uint) { - if self.block_len_ == 0 { - self.block_ix_++ - var block_ix uint = self.block_ix_ - var block_len uint32 = self.block_lengths_[block_ix] - var block_type byte = self.block_types_[block_ix] - self.block_len_ = uint(block_len) - self.entropy_ix_ = uint(block_type) << context_bits - storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) - } - - self.block_len_-- - { - var histo_ix uint = uint(context_map[self.entropy_ix_+context]) - var ix uint = histo_ix*self.histogram_length_ + symbol - writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) - } -} - -func buildAndStoreEntropyCodesLiteral(self *blockEncoder, histograms []histogramLiteral, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) - } - } -} - -func buildAndStoreEntropyCodesCommand(self *blockEncoder, histograms []histogramCommand, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) - } - } -} - -func buildAndStoreEntropyCodesDistance(self *blockEncoder, histograms []histogramDistance, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { - var table_size uint = histograms_size * self.histogram_length_ - if cap(self.depths_) < int(table_size) { - self.depths_ = make([]byte, table_size) - } else { - self.depths_ = self.depths_[:table_size] - } - if cap(self.bits_) < int(table_size) { - self.bits_ = make([]uint16, table_size) - } else { - self.bits_ = self.bits_[:table_size] - } - { - var i uint - for i = 0; i < histograms_size; i++ { - var ix uint = i * self.histogram_length_ - buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) - } - } -} - -func jumpToByteBoundary(storage_ix *uint, storage []byte) { - *storage_ix = (*storage_ix + 7) &^ 7 - storage[*storage_ix>>3] = 0 -} - -func storeMetaBlock(input []byte, start_pos uint, length uint, mask uint, prev_byte byte, prev_byte2 byte, is_last bool, params *encoderParams, literal_context_mode int, commands []command, mb *metaBlockSplit, storage_ix *uint, storage []byte) { - var pos uint = start_pos - var i uint - var num_distance_symbols uint32 = params.dist.alphabet_size - var num_effective_distance_symbols uint32 = num_distance_symbols - var tree []huffmanTree - var literal_context_lut contextLUT = getContextLUT(literal_context_mode) - var dist *distanceParams = &params.dist - if params.large_window && num_effective_distance_symbols > numHistogramDistanceSymbols { - num_effective_distance_symbols = numHistogramDistanceSymbols - } - - storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) - - tree = make([]huffmanTree, maxHuffmanTreeSize) - literal_enc := getBlockEncoder(numLiteralSymbols, mb.literal_split.num_types, mb.literal_split.types, mb.literal_split.lengths, mb.literal_split.num_blocks) - command_enc := getBlockEncoder(numCommandSymbols, mb.command_split.num_types, mb.command_split.types, mb.command_split.lengths, mb.command_split.num_blocks) - distance_enc := getBlockEncoder(uint(num_effective_distance_symbols), mb.distance_split.num_types, mb.distance_split.types, mb.distance_split.lengths, mb.distance_split.num_blocks) - - buildAndStoreBlockSwitchEntropyCodes(literal_enc, tree, storage_ix, storage) - buildAndStoreBlockSwitchEntropyCodes(command_enc, tree, storage_ix, storage) - buildAndStoreBlockSwitchEntropyCodes(distance_enc, tree, storage_ix, storage) - - writeBits(2, uint64(dist.distance_postfix_bits), storage_ix, storage) - writeBits(4, uint64(dist.num_direct_distance_codes)>>dist.distance_postfix_bits, storage_ix, storage) - for i = 0; i < mb.literal_split.num_types; i++ { - writeBits(2, uint64(literal_context_mode), storage_ix, storage) - } - - if mb.literal_context_map_size == 0 { - storeTrivialContextMap(mb.literal_histograms_size, literalContextBits, tree, storage_ix, storage) - } else { - encodeContextMap(mb.literal_context_map, mb.literal_context_map_size, mb.literal_histograms_size, tree, storage_ix, storage) - } - - if mb.distance_context_map_size == 0 { - storeTrivialContextMap(mb.distance_histograms_size, distanceContextBits, tree, storage_ix, storage) - } else { - encodeContextMap(mb.distance_context_map, mb.distance_context_map_size, mb.distance_histograms_size, tree, storage_ix, storage) - } - - buildAndStoreEntropyCodesLiteral(literal_enc, mb.literal_histograms, mb.literal_histograms_size, numLiteralSymbols, tree, storage_ix, storage) - buildAndStoreEntropyCodesCommand(command_enc, mb.command_histograms, mb.command_histograms_size, numCommandSymbols, tree, storage_ix, storage) - buildAndStoreEntropyCodesDistance(distance_enc, mb.distance_histograms, mb.distance_histograms_size, uint(num_distance_symbols), tree, storage_ix, storage) - tree = nil - - for _, cmd := range commands { - var cmd_code uint = uint(cmd.cmd_prefix_) - storeSymbol(command_enc, cmd_code, storage_ix, storage) - storeCommandExtra(&cmd, storage_ix, storage) - if mb.literal_context_map_size == 0 { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - storeSymbol(literal_enc, uint(input[pos&mask]), storage_ix, storage) - pos++ - } - } else { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - var context uint = uint(getContext(prev_byte, prev_byte2, literal_context_lut)) - var literal byte = input[pos&mask] - storeSymbolWithContext(literal_enc, uint(literal), context, mb.literal_context_map, storage_ix, storage, literalContextBits) - prev_byte2 = prev_byte - prev_byte = literal - pos++ - } - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 { - prev_byte2 = input[(pos-2)&mask] - prev_byte = input[(pos-1)&mask] - if cmd.cmd_prefix_ >= 128 { - var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF - var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 - var distextra uint64 = uint64(cmd.dist_extra_) - if mb.distance_context_map_size == 0 { - storeSymbol(distance_enc, dist_code, storage_ix, storage) - } else { - var context uint = uint(commandDistanceContext(&cmd)) - storeSymbolWithContext(distance_enc, dist_code, context, mb.distance_context_map, storage_ix, storage, distanceContextBits) - } - - writeBits(uint(distnumextra), distextra, storage_ix, storage) - } - } - } - - cleanupBlockEncoder(distance_enc) - cleanupBlockEncoder(command_enc) - cleanupBlockEncoder(literal_enc) - if is_last { - jumpToByteBoundary(storage_ix, storage) - } -} - -func buildHistograms(input []byte, start_pos uint, mask uint, commands []command, lit_histo *histogramLiteral, cmd_histo *histogramCommand, dist_histo *histogramDistance) { - var pos uint = start_pos - for _, cmd := range commands { - var j uint - histogramAddCommand(cmd_histo, uint(cmd.cmd_prefix_)) - for j = uint(cmd.insert_len_); j != 0; j-- { - histogramAddLiteral(lit_histo, uint(input[pos&mask])) - pos++ - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { - histogramAddDistance(dist_histo, uint(cmd.dist_prefix_)&0x3FF) - } - } -} - -func storeDataWithHuffmanCodes(input []byte, start_pos uint, mask uint, commands []command, lit_depth []byte, lit_bits []uint16, cmd_depth []byte, cmd_bits []uint16, dist_depth []byte, dist_bits []uint16, storage_ix *uint, storage []byte) { - var pos uint = start_pos - for _, cmd := range commands { - var cmd_code uint = uint(cmd.cmd_prefix_) - var j uint - writeBits(uint(cmd_depth[cmd_code]), uint64(cmd_bits[cmd_code]), storage_ix, storage) - storeCommandExtra(&cmd, storage_ix, storage) - for j = uint(cmd.insert_len_); j != 0; j-- { - var literal byte = input[pos&mask] - writeBits(uint(lit_depth[literal]), uint64(lit_bits[literal]), storage_ix, storage) - pos++ - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { - var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF - var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 - var distextra uint32 = cmd.dist_extra_ - writeBits(uint(dist_depth[dist_code]), uint64(dist_bits[dist_code]), storage_ix, storage) - writeBits(uint(distnumextra), uint64(distextra), storage_ix, storage) - } - } -} - -func storeMetaBlockTrivial(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { - var lit_histo histogramLiteral - var cmd_histo histogramCommand - var dist_histo histogramDistance - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - var cmd_depth [numCommandSymbols]byte - var cmd_bits [numCommandSymbols]uint16 - var dist_depth [maxSimpleDistanceAlphabetSize]byte - var dist_bits [maxSimpleDistanceAlphabetSize]uint16 - var tree []huffmanTree - var num_distance_symbols uint32 = params.dist.alphabet_size - - storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) - - histogramClearLiteral(&lit_histo) - histogramClearCommand(&cmd_histo) - histogramClearDistance(&dist_histo) - - buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) - - writeBits(13, 0, storage_ix, storage) - - tree = make([]huffmanTree, maxHuffmanTreeSize) - buildAndStoreHuffmanTree(lit_histo.data_[:], numLiteralSymbols, numLiteralSymbols, tree, lit_depth[:], lit_bits[:], storage_ix, storage) - buildAndStoreHuffmanTree(cmd_histo.data_[:], numCommandSymbols, numCommandSymbols, tree, cmd_depth[:], cmd_bits[:], storage_ix, storage) - buildAndStoreHuffmanTree(dist_histo.data_[:], maxSimpleDistanceAlphabetSize, uint(num_distance_symbols), tree, dist_depth[:], dist_bits[:], storage_ix, storage) - tree = nil - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) - if is_last { - jumpToByteBoundary(storage_ix, storage) - } -} - -func storeMetaBlockFast(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { - var num_distance_symbols uint32 = params.dist.alphabet_size - var distance_alphabet_bits uint32 = log2FloorNonZero(uint(num_distance_symbols-1)) + 1 - - storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) - - writeBits(13, 0, storage_ix, storage) - - if len(commands) <= 128 { - var histogram = [numLiteralSymbols]uint32{0} - var pos uint = start_pos - var num_literals uint = 0 - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - for _, cmd := range commands { - var j uint - for j = uint(cmd.insert_len_); j != 0; j-- { - histogram[input[pos&mask]]++ - pos++ - } - - num_literals += uint(cmd.insert_len_) - pos += uint(commandCopyLen(&cmd)) - } - - buildAndStoreHuffmanTreeFast(histogram[:], num_literals, /* max_bits = */ - 8, lit_depth[:], lit_bits[:], storage_ix, storage) - - storeStaticCommandHuffmanTree(storage_ix, storage) - storeStaticDistanceHuffmanTree(storage_ix, storage) - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], kStaticCommandCodeDepth[:], kStaticCommandCodeBits[:], kStaticDistanceCodeDepth[:], kStaticDistanceCodeBits[:], storage_ix, storage) - } else { - var lit_histo histogramLiteral - var cmd_histo histogramCommand - var dist_histo histogramDistance - var lit_depth [numLiteralSymbols]byte - var lit_bits [numLiteralSymbols]uint16 - var cmd_depth [numCommandSymbols]byte - var cmd_bits [numCommandSymbols]uint16 - var dist_depth [maxSimpleDistanceAlphabetSize]byte - var dist_bits [maxSimpleDistanceAlphabetSize]uint16 - histogramClearLiteral(&lit_histo) - histogramClearCommand(&cmd_histo) - histogramClearDistance(&dist_histo) - buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) - buildAndStoreHuffmanTreeFast(lit_histo.data_[:], lit_histo.total_count_, /* max_bits = */ - 8, lit_depth[:], lit_bits[:], storage_ix, storage) - - buildAndStoreHuffmanTreeFast(cmd_histo.data_[:], cmd_histo.total_count_, /* max_bits = */ - 10, cmd_depth[:], cmd_bits[:], storage_ix, storage) - - buildAndStoreHuffmanTreeFast(dist_histo.data_[:], dist_histo.total_count_, /* max_bits = */ - uint(distance_alphabet_bits), dist_depth[:], dist_bits[:], storage_ix, storage) - - storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) - } - - if is_last { - jumpToByteBoundary(storage_ix, storage) - } -} - -/* -This is for storing uncompressed blocks (simple raw storage of - - bytes-as-bytes). -*/ -func storeUncompressedMetaBlock(is_final_block bool, input []byte, position uint, mask uint, len uint, storage_ix *uint, storage []byte) { - var masked_pos uint = position & mask - storeUncompressedMetaBlockHeader(uint(len), storage_ix, storage) - jumpToByteBoundary(storage_ix, storage) - - if masked_pos+len > mask+1 { - var len1 uint = mask + 1 - masked_pos - copy(storage[*storage_ix>>3:], input[masked_pos:][:len1]) - *storage_ix += len1 << 3 - len -= len1 - masked_pos = 0 - } - - copy(storage[*storage_ix>>3:], input[masked_pos:][:len]) - *storage_ix += uint(len << 3) - - /* We need to clear the next 4 bytes to continue to be - compatible with BrotliWriteBits. */ - writeBitsPrepareStorage(*storage_ix, storage) - - /* Since the uncompressed block itself may not be the final block, add an - empty one after this. */ - if is_final_block { - writeBits(1, 1, storage_ix, storage) /* islast */ - writeBits(1, 1, storage_ix, storage) /* isempty */ - jumpToByteBoundary(storage_ix, storage) - } -} diff --git a/vendor/github.com/andybalholm/brotli/cluster.go b/vendor/github.com/andybalholm/brotli/cluster.go deleted file mode 100644 index df8a328..0000000 --- a/vendor/github.com/andybalholm/brotli/cluster.go +++ /dev/null @@ -1,30 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions for clustering similar histograms together. */ - -type histogramPair struct { - idx1 uint32 - idx2 uint32 - cost_combo float64 - cost_diff float64 -} - -func histogramPairIsLess(p1 *histogramPair, p2 *histogramPair) bool { - if p1.cost_diff != p2.cost_diff { - return p1.cost_diff > p2.cost_diff - } - - return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1) -} - -/* Returns entropy reduction of the context map when we combine two clusters. */ -func clusterCostDiff(size_a uint, size_b uint) float64 { - var size_c uint = size_a + size_b - return float64(size_a)*fastLog2(size_a) + float64(size_b)*fastLog2(size_b) - float64(size_c)*fastLog2(size_c) -} diff --git a/vendor/github.com/andybalholm/brotli/cluster_command.go b/vendor/github.com/andybalholm/brotli/cluster_command.go deleted file mode 100644 index 45b569b..0000000 --- a/vendor/github.com/andybalholm/brotli/cluster_command.go +++ /dev/null @@ -1,164 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ -func compareAndPushToQueueCommand(out []histogramCommand, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramCommand = out[idx1] - var cost_combo float64 - histogramAddHistogramCommand(&combo, &out[idx2]) - cost_combo = populationCostCommand(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineCommand(out []histogramCommand, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueCommand(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramCommand(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueCommand(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceCommand(histogram *histogramCommand, candidate *histogramCommand) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramCommand = *histogram - histogramAddHistogramCommand(&tmp, candidate) - return populationCostCommand(&tmp) - candidate.bit_cost_ - } -} diff --git a/vendor/github.com/andybalholm/brotli/cluster_distance.go b/vendor/github.com/andybalholm/brotli/cluster_distance.go deleted file mode 100644 index 1aaa86e..0000000 --- a/vendor/github.com/andybalholm/brotli/cluster_distance.go +++ /dev/null @@ -1,326 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ -func compareAndPushToQueueDistance(out []histogramDistance, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramDistance = out[idx1] - var cost_combo float64 - histogramAddHistogramDistance(&combo, &out[idx2]) - cost_combo = populationCostDistance(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineDistance(out []histogramDistance, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueDistance(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramDistance(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueDistance(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceDistance(histogram *histogramDistance, candidate *histogramDistance) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramDistance = *histogram - histogramAddHistogramDistance(&tmp, candidate) - return populationCostDistance(&tmp) - candidate.bit_cost_ - } -} - -/* Find the best 'out' histogram for each of the 'in' histograms. - When called, clusters[0..num_clusters) contains the unique values from - symbols[0..in_size), but this property is not preserved in this function. - Note: we assume that out[]->bit_cost_ is already up-to-date. */ -func histogramRemapDistance(in []histogramDistance, in_size uint, clusters []uint32, num_clusters uint, out []histogramDistance, symbols []uint32) { - var i uint - for i = 0; i < in_size; i++ { - var best_out uint32 - if i == 0 { - best_out = symbols[0] - } else { - best_out = symbols[i-1] - } - var best_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[best_out]) - var j uint - for j = 0; j < num_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - symbols[i] = best_out - } - - /* Recompute each out based on raw and symbols. */ - for i = 0; i < num_clusters; i++ { - histogramClearDistance(&out[clusters[i]]) - } - - for i = 0; i < in_size; i++ { - histogramAddHistogramDistance(&out[symbols[i]], &in[i]) - } -} - -/* Reorders elements of the out[0..length) array and changes values in - symbols[0..length) array in the following way: - * when called, symbols[] contains indexes into out[], and has N unique - values (possibly N < length) - * on return, symbols'[i] = f(symbols[i]) and - out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, - where f is a bijection between the range of symbols[] and [0..N), and - the first occurrences of values in symbols'[i] come in consecutive - increasing order. - Returns N, the number of unique values in symbols[]. */ - -var histogramReindexDistance_kInvalidIndex uint32 = math.MaxUint32 - -func histogramReindexDistance(out []histogramDistance, symbols []uint32, length uint) uint { - var new_index []uint32 = make([]uint32, length) - var next_index uint32 - var tmp []histogramDistance - var i uint - for i = 0; i < length; i++ { - new_index[i] = histogramReindexDistance_kInvalidIndex - } - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == histogramReindexDistance_kInvalidIndex { - new_index[symbols[i]] = next_index - next_index++ - } - } - - /* TODO: by using idea of "cycle-sort" we can avoid allocation of - tmp and reduce the number of copying by the factor of 2. */ - tmp = make([]histogramDistance, next_index) - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == next_index { - tmp[next_index] = out[symbols[i]] - next_index++ - } - - symbols[i] = new_index[symbols[i]] - } - - new_index = nil - for i = 0; uint32(i) < next_index; i++ { - out[i] = tmp[i] - } - - tmp = nil - return uint(next_index) -} - -func clusterHistogramsDistance(in []histogramDistance, in_size uint, max_histograms uint, out []histogramDistance, out_size *uint, histogram_symbols []uint32) { - var cluster_size []uint32 = make([]uint32, in_size) - var clusters []uint32 = make([]uint32, in_size) - var num_clusters uint = 0 - var max_input_histograms uint = 64 - var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 - var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) - var i uint - - /* For the first pass of clustering, we allow all pairs. */ - for i = 0; i < in_size; i++ { - cluster_size[i] = 1 - } - - for i = 0; i < in_size; i++ { - out[i] = in[i] - out[i].bit_cost_ = populationCostDistance(&in[i]) - histogram_symbols[i] = uint32(i) - } - - for i = 0; i < in_size; i += max_input_histograms { - var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - clusters[num_clusters+j] = uint32(i + j) - } - - num_new_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) - num_clusters += num_new_clusters - } - { - /* For the second pass, we limit the total number of histogram pairs. - After this limit is reached, we only keep searching for the best pair. */ - var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < (max_num_pairs + 1) { - var _new_size uint - if pairs_capacity == 0 { - _new_size = max_num_pairs + 1 - } else { - _new_size = pairs_capacity - } - var new_array []histogramPair - for _new_size < (max_num_pairs + 1) { - _new_size *= 2 - } - new_array = make([]histogramPair, _new_size) - if pairs_capacity != 0 { - copy(new_array, pairs[:pairs_capacity]) - } - - pairs = new_array - pairs_capacity = _new_size - } - - /* Collapse similar histograms. */ - num_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) - } - - pairs = nil - cluster_size = nil - - /* Find the optimal map from original histograms to the final ones. */ - histogramRemapDistance(in, in_size, clusters, num_clusters, out, histogram_symbols) - - clusters = nil - - /* Convert the context map to a canonical form. */ - *out_size = histogramReindexDistance(out, histogram_symbols, in_size) -} diff --git a/vendor/github.com/andybalholm/brotli/cluster_literal.go b/vendor/github.com/andybalholm/brotli/cluster_literal.go deleted file mode 100644 index 6ba66f3..0000000 --- a/vendor/github.com/andybalholm/brotli/cluster_literal.go +++ /dev/null @@ -1,326 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if - it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ -func compareAndPushToQueueLiteral(out []histogramLiteral, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { - var is_good_pair bool = false - var p histogramPair - p.idx2 = 0 - p.idx1 = p.idx2 - p.cost_combo = 0 - p.cost_diff = p.cost_combo - if idx1 == idx2 { - return - } - - if idx2 < idx1 { - var t uint32 = idx2 - idx2 = idx1 - idx1 = t - } - - p.idx1 = idx1 - p.idx2 = idx2 - p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) - p.cost_diff -= out[idx1].bit_cost_ - p.cost_diff -= out[idx2].bit_cost_ - - if out[idx1].total_count_ == 0 { - p.cost_combo = out[idx2].bit_cost_ - is_good_pair = true - } else if out[idx2].total_count_ == 0 { - p.cost_combo = out[idx1].bit_cost_ - is_good_pair = true - } else { - var threshold float64 - if *num_pairs == 0 { - threshold = 1e99 - } else { - threshold = brotli_max_double(0.0, pairs[0].cost_diff) - } - var combo histogramLiteral = out[idx1] - var cost_combo float64 - histogramAddHistogramLiteral(&combo, &out[idx2]) - cost_combo = populationCostLiteral(&combo) - if cost_combo < threshold-p.cost_diff { - p.cost_combo = cost_combo - is_good_pair = true - } - } - - if is_good_pair { - p.cost_diff += p.cost_combo - if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { - /* Replace the top of the queue if needed. */ - if *num_pairs < max_num_pairs { - pairs[*num_pairs] = pairs[0] - (*num_pairs)++ - } - - pairs[0] = p - } else if *num_pairs < max_num_pairs { - pairs[*num_pairs] = p - (*num_pairs)++ - } - } -} - -func histogramCombineLiteral(out []histogramLiteral, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { - var cost_diff_threshold float64 = 0.0 - var min_cluster_size uint = 1 - var num_pairs uint = 0 - { - /* We maintain a vector of histogram pairs, with the property that the pair - with the maximum bit cost reduction is the first. */ - var idx1 uint - for idx1 = 0; idx1 < num_clusters; idx1++ { - var idx2 uint - for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { - compareAndPushToQueueLiteral(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) - } - } - } - - for num_clusters > min_cluster_size { - var best_idx1 uint32 - var best_idx2 uint32 - var i uint - if pairs[0].cost_diff >= cost_diff_threshold { - cost_diff_threshold = 1e99 - min_cluster_size = max_clusters - continue - } - - /* Take the best pair from the top of heap. */ - best_idx1 = pairs[0].idx1 - - best_idx2 = pairs[0].idx2 - histogramAddHistogramLiteral(&out[best_idx1], &out[best_idx2]) - out[best_idx1].bit_cost_ = pairs[0].cost_combo - cluster_size[best_idx1] += cluster_size[best_idx2] - for i = 0; i < symbols_size; i++ { - if symbols[i] == best_idx2 { - symbols[i] = best_idx1 - } - } - - for i = 0; i < num_clusters; i++ { - if clusters[i] == best_idx2 { - copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) - break - } - } - - num_clusters-- - { - /* Remove pairs intersecting the just combined best pair. */ - var copy_to_idx uint = 0 - for i = 0; i < num_pairs; i++ { - var p *histogramPair = &pairs[i] - if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { - /* Remove invalid pair from the queue. */ - continue - } - - if histogramPairIsLess(&pairs[0], p) { - /* Replace the top of the queue if needed. */ - var front histogramPair = pairs[0] - pairs[0] = *p - pairs[copy_to_idx] = front - } else { - pairs[copy_to_idx] = *p - } - - copy_to_idx++ - } - - num_pairs = copy_to_idx - } - - /* Push new pairs formed with the combined histogram to the heap. */ - for i = 0; i < num_clusters; i++ { - compareAndPushToQueueLiteral(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) - } - } - - return num_clusters -} - -/* What is the bit cost of moving histogram from cur_symbol to candidate. */ -func histogramBitCostDistanceLiteral(histogram *histogramLiteral, candidate *histogramLiteral) float64 { - if histogram.total_count_ == 0 { - return 0.0 - } else { - var tmp histogramLiteral = *histogram - histogramAddHistogramLiteral(&tmp, candidate) - return populationCostLiteral(&tmp) - candidate.bit_cost_ - } -} - -/* Find the best 'out' histogram for each of the 'in' histograms. - When called, clusters[0..num_clusters) contains the unique values from - symbols[0..in_size), but this property is not preserved in this function. - Note: we assume that out[]->bit_cost_ is already up-to-date. */ -func histogramRemapLiteral(in []histogramLiteral, in_size uint, clusters []uint32, num_clusters uint, out []histogramLiteral, symbols []uint32) { - var i uint - for i = 0; i < in_size; i++ { - var best_out uint32 - if i == 0 { - best_out = symbols[0] - } else { - best_out = symbols[i-1] - } - var best_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[best_out]) - var j uint - for j = 0; j < num_clusters; j++ { - var cur_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[clusters[j]]) - if cur_bits < best_bits { - best_bits = cur_bits - best_out = clusters[j] - } - } - - symbols[i] = best_out - } - - /* Recompute each out based on raw and symbols. */ - for i = 0; i < num_clusters; i++ { - histogramClearLiteral(&out[clusters[i]]) - } - - for i = 0; i < in_size; i++ { - histogramAddHistogramLiteral(&out[symbols[i]], &in[i]) - } -} - -/* Reorders elements of the out[0..length) array and changes values in - symbols[0..length) array in the following way: - * when called, symbols[] contains indexes into out[], and has N unique - values (possibly N < length) - * on return, symbols'[i] = f(symbols[i]) and - out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, - where f is a bijection between the range of symbols[] and [0..N), and - the first occurrences of values in symbols'[i] come in consecutive - increasing order. - Returns N, the number of unique values in symbols[]. */ - -var histogramReindexLiteral_kInvalidIndex uint32 = math.MaxUint32 - -func histogramReindexLiteral(out []histogramLiteral, symbols []uint32, length uint) uint { - var new_index []uint32 = make([]uint32, length) - var next_index uint32 - var tmp []histogramLiteral - var i uint - for i = 0; i < length; i++ { - new_index[i] = histogramReindexLiteral_kInvalidIndex - } - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == histogramReindexLiteral_kInvalidIndex { - new_index[symbols[i]] = next_index - next_index++ - } - } - - /* TODO: by using idea of "cycle-sort" we can avoid allocation of - tmp and reduce the number of copying by the factor of 2. */ - tmp = make([]histogramLiteral, next_index) - - next_index = 0 - for i = 0; i < length; i++ { - if new_index[symbols[i]] == next_index { - tmp[next_index] = out[symbols[i]] - next_index++ - } - - symbols[i] = new_index[symbols[i]] - } - - new_index = nil - for i = 0; uint32(i) < next_index; i++ { - out[i] = tmp[i] - } - - tmp = nil - return uint(next_index) -} - -func clusterHistogramsLiteral(in []histogramLiteral, in_size uint, max_histograms uint, out []histogramLiteral, out_size *uint, histogram_symbols []uint32) { - var cluster_size []uint32 = make([]uint32, in_size) - var clusters []uint32 = make([]uint32, in_size) - var num_clusters uint = 0 - var max_input_histograms uint = 64 - var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 - var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) - var i uint - - /* For the first pass of clustering, we allow all pairs. */ - for i = 0; i < in_size; i++ { - cluster_size[i] = 1 - } - - for i = 0; i < in_size; i++ { - out[i] = in[i] - out[i].bit_cost_ = populationCostLiteral(&in[i]) - histogram_symbols[i] = uint32(i) - } - - for i = 0; i < in_size; i += max_input_histograms { - var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) - var num_new_clusters uint - var j uint - for j = 0; j < num_to_combine; j++ { - clusters[num_clusters+j] = uint32(i + j) - } - - num_new_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) - num_clusters += num_new_clusters - } - { - /* For the second pass, we limit the total number of histogram pairs. - After this limit is reached, we only keep searching for the best pair. */ - var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) - if pairs_capacity < (max_num_pairs + 1) { - var _new_size uint - if pairs_capacity == 0 { - _new_size = max_num_pairs + 1 - } else { - _new_size = pairs_capacity - } - var new_array []histogramPair - for _new_size < (max_num_pairs + 1) { - _new_size *= 2 - } - new_array = make([]histogramPair, _new_size) - if pairs_capacity != 0 { - copy(new_array, pairs[:pairs_capacity]) - } - - pairs = new_array - pairs_capacity = _new_size - } - - /* Collapse similar histograms. */ - num_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) - } - - pairs = nil - cluster_size = nil - - /* Find the optimal map from original histograms to the final ones. */ - histogramRemapLiteral(in, in_size, clusters, num_clusters, out, histogram_symbols) - - clusters = nil - - /* Convert the context map to a canonical form. */ - *out_size = histogramReindexLiteral(out, histogram_symbols, in_size) -} diff --git a/vendor/github.com/andybalholm/brotli/command.go b/vendor/github.com/andybalholm/brotli/command.go deleted file mode 100644 index b1662a5..0000000 --- a/vendor/github.com/andybalholm/brotli/command.go +++ /dev/null @@ -1,254 +0,0 @@ -package brotli - -var kInsBase = []uint32{ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 8, - 10, - 14, - 18, - 26, - 34, - 50, - 66, - 98, - 130, - 194, - 322, - 578, - 1090, - 2114, - 6210, - 22594, -} - -var kInsExtra = []uint32{ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 12, - 14, - 24, -} - -var kCopyBase = []uint32{ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 12, - 14, - 18, - 22, - 30, - 38, - 54, - 70, - 102, - 134, - 198, - 326, - 582, - 1094, - 2118, -} - -var kCopyExtra = []uint32{ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 24, -} - -func getInsertLengthCode(insertlen uint) uint16 { - if insertlen < 6 { - return uint16(insertlen) - } else if insertlen < 130 { - var nbits uint32 = log2FloorNonZero(insertlen-2) - 1 - return uint16((nbits << 1) + uint32((insertlen-2)>>nbits) + 2) - } else if insertlen < 2114 { - return uint16(log2FloorNonZero(insertlen-66) + 10) - } else if insertlen < 6210 { - return 21 - } else if insertlen < 22594 { - return 22 - } else { - return 23 - } -} - -func getCopyLengthCode(copylen uint) uint16 { - if copylen < 10 { - return uint16(copylen - 2) - } else if copylen < 134 { - var nbits uint32 = log2FloorNonZero(copylen-6) - 1 - return uint16((nbits << 1) + uint32((copylen-6)>>nbits) + 4) - } else if copylen < 2118 { - return uint16(log2FloorNonZero(copylen-70) + 12) - } else { - return 23 - } -} - -func combineLengthCodes(inscode uint16, copycode uint16, use_last_distance bool) uint16 { - var bits64 uint16 = uint16(copycode&0x7 | (inscode&0x7)<<3) - if use_last_distance && inscode < 8 && copycode < 16 { - if copycode < 8 { - return bits64 - } else { - return bits64 | 64 - } - } else { - /* Specification: 5 Encoding of ... (last table) */ - /* offset = 2 * index, where index is in range [0..8] */ - var offset uint32 = 2 * ((uint32(copycode) >> 3) + 3*(uint32(inscode)>>3)) - - /* All values in specification are K * 64, - where K = [2, 3, 6, 4, 5, 8, 7, 9, 10], - i + 1 = [1, 2, 3, 4, 5, 6, 7, 8, 9], - K - i - 1 = [1, 1, 3, 0, 0, 2, 0, 1, 2] = D. - All values in D require only 2 bits to encode. - Magic constant is shifted 6 bits left, to avoid final multiplication. */ - offset = (offset << 5) + 0x40 + ((0x520D40 >> offset) & 0xC0) - - return uint16(offset | uint32(bits64)) - } -} - -func getLengthCode(insertlen uint, copylen uint, use_last_distance bool, code *uint16) { - var inscode uint16 = getInsertLengthCode(insertlen) - var copycode uint16 = getCopyLengthCode(copylen) - *code = combineLengthCodes(inscode, copycode, use_last_distance) -} - -func getInsertBase(inscode uint16) uint32 { - return kInsBase[inscode] -} - -func getInsertExtra(inscode uint16) uint32 { - return kInsExtra[inscode] -} - -func getCopyBase(copycode uint16) uint32 { - return kCopyBase[copycode] -} - -func getCopyExtra(copycode uint16) uint32 { - return kCopyExtra[copycode] -} - -type command struct { - insert_len_ uint32 - copy_len_ uint32 - dist_extra_ uint32 - cmd_prefix_ uint16 - dist_prefix_ uint16 -} - -/* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */ -func makeCommand(dist *distanceParams, insertlen uint, copylen uint, copylen_code_delta int, distance_code uint) (cmd command) { - /* Don't rely on signed int representation, use honest casts. */ - var delta uint32 = uint32(byte(int8(copylen_code_delta))) - cmd.insert_len_ = uint32(insertlen) - cmd.copy_len_ = uint32(uint32(copylen) | delta<<25) - - /* The distance prefix and extra bits are stored in this Command as if - npostfix and ndirect were 0, they are only recomputed later after the - clustering if needed. */ - prefixEncodeCopyDistance(distance_code, uint(dist.num_direct_distance_codes), uint(dist.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) - getLengthCode(insertlen, uint(int(copylen)+copylen_code_delta), (cmd.dist_prefix_&0x3FF == 0), &cmd.cmd_prefix_) - - return cmd -} - -func makeInsertCommand(insertlen uint) (cmd command) { - cmd.insert_len_ = uint32(insertlen) - cmd.copy_len_ = 4 << 25 - cmd.dist_extra_ = 0 - cmd.dist_prefix_ = numDistanceShortCodes - getLengthCode(insertlen, 4, false, &cmd.cmd_prefix_) - return cmd -} - -func commandRestoreDistanceCode(self *command, dist *distanceParams) uint32 { - if uint32(self.dist_prefix_&0x3FF) < numDistanceShortCodes+dist.num_direct_distance_codes { - return uint32(self.dist_prefix_) & 0x3FF - } else { - var dcode uint32 = uint32(self.dist_prefix_) & 0x3FF - var nbits uint32 = uint32(self.dist_prefix_) >> 10 - var extra uint32 = self.dist_extra_ - var postfix_mask uint32 = (1 << dist.distance_postfix_bits) - 1 - var hcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) >> dist.distance_postfix_bits - var lcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) & postfix_mask - var offset uint32 = ((2 + (hcode & 1)) << nbits) - 4 - return ((offset + extra) << dist.distance_postfix_bits) + lcode + dist.num_direct_distance_codes + numDistanceShortCodes - } -} - -func commandDistanceContext(self *command) uint32 { - var r uint32 = uint32(self.cmd_prefix_) >> 6 - var c uint32 = uint32(self.cmd_prefix_) & 7 - if (r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2) { - return c - } - - return 3 -} - -func commandCopyLen(self *command) uint32 { - return self.copy_len_ & 0x1FFFFFF -} - -func commandCopyLenCode(self *command) uint32 { - var modifier uint32 = self.copy_len_ >> 25 - var delta int32 = int32(int8(byte(modifier | (modifier&0x40)<<1))) - return uint32(int32(self.copy_len_&0x1FFFFFF) + delta) -} diff --git a/vendor/github.com/andybalholm/brotli/compress_fragment.go b/vendor/github.com/andybalholm/brotli/compress_fragment.go deleted file mode 100644 index c9bd057..0000000 --- a/vendor/github.com/andybalholm/brotli/compress_fragment.go +++ /dev/null @@ -1,834 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function for fast encoding of an input fragment, independently from the input - history. This function uses one-pass processing: when we find a backward - match, we immediately emit the corresponding command and literal codes to - the bit stream. - - Adapted from the CompressFragment() function in - https://github.com/google/snappy/blob/master/snappy.cc */ - -const maxDistance_compress_fragment = 262128 - -func hash5(p []byte, shift uint) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(p) << 24) * uint64(kHashMul32) - return uint32(h >> shift) -} - -func hashBytesAtOffset5(v uint64, offset int, shift uint) uint32 { - assert(offset >= 0) - assert(offset <= 3) - { - var h uint64 = ((v >> uint(8*offset)) << 24) * uint64(kHashMul32) - return uint32(h >> shift) - } -} - -func isMatch5(p1 []byte, p2 []byte) bool { - return binary.LittleEndian.Uint32(p1) == binary.LittleEndian.Uint32(p2) && - p1[4] == p2[4] -} - -/* Builds a literal prefix code into "depths" and "bits" based on the statistics - of the "input" string and stores it into the bit stream. - Note that the prefix code here is built from the pre-LZ77 input, therefore - we can only approximate the statistics of the actual literal stream. - Moreover, for long inputs we build a histogram from a sample of the input - and thus have to assign a non-zero depth for each literal. - Returns estimated compression ratio millibytes/char for encoding given input - with generated code. */ -func buildAndStoreLiteralPrefixCode(input []byte, input_size uint, depths []byte, bits []uint16, storage_ix *uint, storage []byte) uint { - var histogram = [256]uint32{0} - var histogram_total uint - var i uint - if input_size < 1<<15 { - for i = 0; i < input_size; i++ { - histogram[input[i]]++ - } - - histogram_total = input_size - for i = 0; i < 256; i++ { - /* We weigh the first 11 samples with weight 3 to account for the - balancing effect of the LZ77 phase on the histogram. */ - var adjust uint32 = 2 * brotli_min_uint32_t(histogram[i], 11) - histogram[i] += adjust - histogram_total += uint(adjust) - } - } else { - const kSampleRate uint = 29 - for i = 0; i < input_size; i += kSampleRate { - histogram[input[i]]++ - } - - histogram_total = (input_size + kSampleRate - 1) / kSampleRate - for i = 0; i < 256; i++ { - /* We add 1 to each population count to avoid 0 bit depths (since this is - only a sample and we don't know if the symbol appears or not), and we - weigh the first 11 samples with weight 3 to account for the balancing - effect of the LZ77 phase on the histogram (more frequent symbols are - more likely to be in backward references instead as literals). */ - var adjust uint32 = 1 + 2*brotli_min_uint32_t(histogram[i], 11) - histogram[i] += adjust - histogram_total += uint(adjust) - } - } - - buildAndStoreHuffmanTreeFast(histogram[:], histogram_total, /* max_bits = */ - 8, depths, bits, storage_ix, storage) - { - var literal_ratio uint = 0 - for i = 0; i < 256; i++ { - if histogram[i] != 0 { - literal_ratio += uint(histogram[i] * uint32(depths[i])) - } - } - - /* Estimated encoding ratio, millibytes per symbol. */ - return (literal_ratio * 125) / histogram_total - } -} - -/* Builds a command and distance prefix code (each 64 symbols) into "depth" and - "bits" based on "histogram" and stores it into the bit stream. */ -func buildAndStoreCommandPrefixCode1(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { - var tree [129]huffmanTree - var cmd_depth = [numCommandSymbols]byte{0} - /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ - - var cmd_bits [64]uint16 - - createHuffmanTree(histogram, 64, 15, tree[:], depth) - createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) - - /* We have to jump through a few hoops here in order to compute - the command bits because the symbols are in a different order than in - the full alphabet. This looks complicated, but having the symbols - in this order in the command bits saves a few branches in the Emit* - functions. */ - copy(cmd_depth[:], depth[:24]) - - copy(cmd_depth[24:][:], depth[40:][:8]) - copy(cmd_depth[32:][:], depth[24:][:8]) - copy(cmd_depth[40:][:], depth[48:][:8]) - copy(cmd_depth[48:][:], depth[32:][:8]) - copy(cmd_depth[56:][:], depth[56:][:8]) - convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) - copy(bits, cmd_bits[:24]) - copy(bits[24:], cmd_bits[32:][:8]) - copy(bits[32:], cmd_bits[48:][:8]) - copy(bits[40:], cmd_bits[24:][:8]) - copy(bits[48:], cmd_bits[40:][:8]) - copy(bits[56:], cmd_bits[56:][:8]) - convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) - { - /* Create the bit length array for the full command alphabet. */ - var i uint - for i := 0; i < int(64); i++ { - cmd_depth[i] = 0 - } /* only 64 first values were used */ - copy(cmd_depth[:], depth[:8]) - copy(cmd_depth[64:][:], depth[8:][:8]) - copy(cmd_depth[128:][:], depth[16:][:8]) - copy(cmd_depth[192:][:], depth[24:][:8]) - copy(cmd_depth[384:][:], depth[32:][:8]) - for i = 0; i < 8; i++ { - cmd_depth[128+8*i] = depth[40+i] - cmd_depth[256+8*i] = depth[48+i] - cmd_depth[448+8*i] = depth[56+i] - } - - storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) - } - - storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) -} - -/* REQUIRES: insertlen < 6210 */ -func emitInsertLen1(insertlen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { - if insertlen < 6 { - var code uint = insertlen + 40 - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - histo[code]++ - } else if insertlen < 130 { - var tail uint = insertlen - 2 - var nbits uint32 = log2FloorNonZero(tail) - 1 - var prefix uint = tail >> nbits - var inscode uint = uint((nbits << 1) + uint32(prefix) + 42) - writeBits(uint(depth[inscode]), uint64(bits[inscode]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<<nbits), storage_ix, storage) - histo[inscode]++ - } else if insertlen < 2114 { - var tail uint = insertlen - 66 - var nbits uint32 = log2FloorNonZero(tail) - var code uint = uint(nbits + 50) - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<<nbits), storage_ix, storage) - histo[code]++ - } else { - writeBits(uint(depth[61]), uint64(bits[61]), storage_ix, storage) - writeBits(12, uint64(insertlen)-2114, storage_ix, storage) - histo[61]++ - } -} - -func emitLongInsertLen(insertlen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { - if insertlen < 22594 { - writeBits(uint(depth[62]), uint64(bits[62]), storage_ix, storage) - writeBits(14, uint64(insertlen)-6210, storage_ix, storage) - histo[62]++ - } else { - writeBits(uint(depth[63]), uint64(bits[63]), storage_ix, storage) - writeBits(24, uint64(insertlen)-22594, storage_ix, storage) - histo[63]++ - } -} - -func emitCopyLen1(copylen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { - if copylen < 10 { - writeBits(uint(depth[copylen+14]), uint64(bits[copylen+14]), storage_ix, storage) - histo[copylen+14]++ - } else if copylen < 134 { - var tail uint = copylen - 6 - var nbits uint32 = log2FloorNonZero(tail) - 1 - var prefix uint = tail >> nbits - var code uint = uint((nbits << 1) + uint32(prefix) + 20) - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<<nbits), storage_ix, storage) - histo[code]++ - } else if copylen < 2118 { - var tail uint = copylen - 70 - var nbits uint32 = log2FloorNonZero(tail) - var code uint = uint(nbits + 28) - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<<nbits), storage_ix, storage) - histo[code]++ - } else { - writeBits(uint(depth[39]), uint64(bits[39]), storage_ix, storage) - writeBits(24, uint64(copylen)-2118, storage_ix, storage) - histo[39]++ - } -} - -func emitCopyLenLastDistance1(copylen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { - if copylen < 12 { - writeBits(uint(depth[copylen-4]), uint64(bits[copylen-4]), storage_ix, storage) - histo[copylen-4]++ - } else if copylen < 72 { - var tail uint = copylen - 8 - var nbits uint32 = log2FloorNonZero(tail) - 1 - var prefix uint = tail >> nbits - var code uint = uint((nbits << 1) + uint32(prefix) + 4) - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<<nbits), storage_ix, storage) - histo[code]++ - } else if copylen < 136 { - var tail uint = copylen - 8 - var code uint = (tail >> 5) + 30 - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(5, uint64(tail)&31, storage_ix, storage) - writeBits(uint(depth[64]), uint64(bits[64]), storage_ix, storage) - histo[code]++ - histo[64]++ - } else if copylen < 2120 { - var tail uint = copylen - 72 - var nbits uint32 = log2FloorNonZero(tail) - var code uint = uint(nbits + 28) - writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) - writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<<nbits), storage_ix, storage) - writeBits(uint(depth[64]), uint64(bits[64]), storage_ix, storage) - histo[code]++ - histo[64]++ - } else { - writeBits(uint(depth[39]), uint64(bits[39]), storage_ix, storage) - writeBits(24, uint64(copylen)-2120, storage_ix, storage) - writeBits(uint(depth[64]), uint64(bits[64]), storage_ix, storage) - histo[39]++ - histo[64]++ - } -} - -func emitDistance1(distance uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { - var d uint = distance + 3 - var nbits uint32 = log2FloorNonZero(d) - 1 - var prefix uint = (d >> nbits) & 1 - var offset uint = (2 + prefix) << nbits - var distcode uint = uint(2*(nbits-1) + uint32(prefix) + 80) - writeBits(uint(depth[distcode]), uint64(bits[distcode]), storage_ix, storage) - writeBits(uint(nbits), uint64(d)-uint64(offset), storage_ix, storage) - histo[distcode]++ -} - -func emitLiterals(input []byte, len uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { - var j uint - for j = 0; j < len; j++ { - var lit byte = input[j] - writeBits(uint(depth[lit]), uint64(bits[lit]), storage_ix, storage) - } -} - -/* REQUIRES: len <= 1 << 24. */ -func storeMetaBlockHeader1(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { - var nibbles uint = 6 - - /* ISLAST */ - writeBits(1, 0, storage_ix, storage) - - if len <= 1<<16 { - nibbles = 4 - } else if len <= 1<<20 { - nibbles = 5 - } - - writeBits(2, uint64(nibbles)-4, storage_ix, storage) - writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) - - /* ISUNCOMPRESSED */ - writeSingleBit(is_uncompressed, storage_ix, storage) -} - -func updateBits(n_bits uint, bits uint32, pos uint, array []byte) { - for n_bits > 0 { - var byte_pos uint = pos >> 3 - var n_unchanged_bits uint = pos & 7 - var n_changed_bits uint = brotli_min_size_t(n_bits, 8-n_unchanged_bits) - var total_bits uint = n_unchanged_bits + n_changed_bits - var mask uint32 = (^((1 << total_bits) - 1)) | ((1 << n_unchanged_bits) - 1) - var unchanged_bits uint32 = uint32(array[byte_pos]) & mask - var changed_bits uint32 = bits & ((1 << n_changed_bits) - 1) - array[byte_pos] = byte(changed_bits<<n_unchanged_bits | unchanged_bits) - n_bits -= n_changed_bits - bits >>= n_changed_bits - pos += n_changed_bits - } -} - -func rewindBitPosition1(new_storage_ix uint, storage_ix *uint, storage []byte) { - var bitpos uint = new_storage_ix & 7 - var mask uint = (1 << bitpos) - 1 - storage[new_storage_ix>>3] &= byte(mask) - *storage_ix = new_storage_ix -} - -var shouldMergeBlock_kSampleRate uint = 43 - -func shouldMergeBlock(data []byte, len uint, depths []byte) bool { - var histo = [256]uint{0} - var i uint - for i = 0; i < len; i += shouldMergeBlock_kSampleRate { - histo[data[i]]++ - } - { - var total uint = (len + shouldMergeBlock_kSampleRate - 1) / shouldMergeBlock_kSampleRate - var r float64 = (fastLog2(total)+0.5)*float64(total) + 200 - for i = 0; i < 256; i++ { - r -= float64(histo[i]) * (float64(depths[i]) + fastLog2(histo[i])) - } - - return r >= 0.0 - } -} - -func shouldUseUncompressedMode(metablock_start []byte, next_emit []byte, insertlen uint, literal_ratio uint) bool { - var compressed uint = uint(-cap(next_emit) + cap(metablock_start)) - if compressed*50 > insertlen { - return false - } else { - return literal_ratio > 980 - } -} - -func emitUncompressedMetaBlock1(begin []byte, end []byte, storage_ix_start uint, storage_ix *uint, storage []byte) { - var len uint = uint(-cap(end) + cap(begin)) - rewindBitPosition1(storage_ix_start, storage_ix, storage) - storeMetaBlockHeader1(uint(len), true, storage_ix, storage) - *storage_ix = (*storage_ix + 7) &^ 7 - copy(storage[*storage_ix>>3:], begin[:len]) - *storage_ix += uint(len << 3) - storage[*storage_ix>>3] = 0 -} - -var kCmdHistoSeed = [128]uint32{ - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, -} - -var compressFragmentFastImpl_kFirstBlockSize uint = 3 << 15 -var compressFragmentFastImpl_kMergeBlockSize uint = 1 << 16 - -func compressFragmentFastImpl(in []byte, input_size uint, is_last bool, table []int, table_bits uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { - var cmd_histo [128]uint32 - var ip_end int - var next_emit int = 0 - var base_ip int = 0 - var input int = 0 - const kInputMarginBytes uint = windowGap - const kMinMatchLen uint = 5 - var metablock_start int = input - var block_size uint = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) - var total_block_size uint = block_size - var mlen_storage_ix uint = *storage_ix + 3 - var lit_depth [256]byte - var lit_bits [256]uint16 - var literal_ratio uint - var ip int - var last_distance int - var shift uint = 64 - table_bits - - /* "next_emit" is a pointer to the first byte that is not covered by a - previous copy. Bytes between "next_emit" and the start of the next copy or - the end of the input will be emitted as literal bytes. */ - - /* Save the start of the first block for position and distance computations. - */ - - /* Save the bit position of the MLEN field of the meta-block header, so that - we can update it later if we decide to extend this meta-block. */ - storeMetaBlockHeader1(block_size, false, storage_ix, storage) - - /* No block splits, no contexts. */ - writeBits(13, 0, storage_ix, storage) - - literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) - { - /* Store the pre-compressed command and distance prefix codes. */ - var i uint - for i = 0; i+7 < *cmd_code_numbits; i += 8 { - writeBits(8, uint64(cmd_code[i>>3]), storage_ix, storage) - } - } - - writeBits(*cmd_code_numbits&7, uint64(cmd_code[*cmd_code_numbits>>3]), storage_ix, storage) - - /* Initialize the command and distance histograms. We will gather - statistics of command and distance codes during the processing - of this block and use it to update the command and distance - prefix codes for the next block. */ -emit_commands: - copy(cmd_histo[:], kCmdHistoSeed[:]) - - /* "ip" is the input pointer. */ - ip = input - - last_distance = -1 - ip_end = int(uint(input) + block_size) - - if block_size >= kInputMarginBytes { - var len_limit uint = brotli_min_size_t(block_size-kMinMatchLen, input_size-kInputMarginBytes) - var ip_limit int = int(uint(input) + len_limit) - /* For the last block, we need to keep a 16 bytes margin so that we can be - sure that all distances are at most window size - 16. - For all other blocks, we only need to keep a margin of 5 bytes so that - we don't go over the block size with a copy. */ - - var next_hash uint32 - ip++ - for next_hash = hash5(in[ip:], shift); ; { - var skip uint32 = 32 - var next_ip int = ip - /* Step 1: Scan forward in the input looking for a 5-byte-long match. - If we get close to exhausting the input then goto emit_remainder. - - Heuristic match skipping: If 32 bytes are scanned with no matches - found, start looking only at every other byte. If 32 more bytes are - scanned, look at every third byte, etc.. When a match is found, - immediately go back to looking at every byte. This is a small loss - (~5% performance, ~0.1% density) for compressible data due to more - bookkeeping, but for non-compressible data (such as JPEG) it's a huge - win since the compressor quickly "realizes" the data is incompressible - and doesn't bother looking for matches everywhere. - - The "skip" variable keeps track of how many bytes there are since the - last match; dividing it by 32 (i.e. right-shifting by five) gives the - number of bytes to move ahead for each iteration. */ - - var candidate int - assert(next_emit < ip) - - trawl: - for { - var hash uint32 = next_hash - var bytes_between_hash_lookups uint32 = skip >> 5 - skip++ - assert(hash == hash5(in[next_ip:], shift)) - ip = next_ip - next_ip = int(uint32(ip) + bytes_between_hash_lookups) - if next_ip > ip_limit { - goto emit_remainder - } - - next_hash = hash5(in[next_ip:], shift) - candidate = ip - last_distance - if isMatch5(in[ip:], in[candidate:]) { - if candidate < ip { - table[hash] = int(ip - base_ip) - break - } - } - - candidate = base_ip + table[hash] - assert(candidate >= base_ip) - assert(candidate < ip) - - table[hash] = int(ip - base_ip) - if isMatch5(in[ip:], in[candidate:]) { - break - } - } - - /* Check copy distance. If candidate is not feasible, continue search. - Checking is done outside of hot loop to reduce overhead. */ - if ip-candidate > maxDistance_compress_fragment { - goto trawl - } - - /* Step 2: Emit the found match together with the literal bytes from - "next_emit" to the bit stream, and then see if we can find a next match - immediately afterwards. Repeat until we find no match for the input - without emitting some literal bytes. */ - { - var base int = ip - /* > 0 */ - var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) - var distance int = int(base - candidate) - /* We have a 5-byte match at ip, and we need to emit bytes in - [next_emit, ip). */ - - var insert uint = uint(base - next_emit) - ip += int(matched) - if insert < 6210 { - emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { - emitUncompressedMetaBlock1(in[metablock_start:], in[base:], mlen_storage_ix-3, storage_ix, storage) - input_size -= uint(base - input) - input = base - next_emit = input - goto next_block - } else { - emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - } - - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) - if distance == last_distance { - writeBits(uint(cmd_depth[64]), uint64(cmd_bits[64]), storage_ix, storage) - cmd_histo[64]++ - } else { - emitDistance1(uint(distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - last_distance = distance - } - - emitCopyLenLastDistance1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some positions - within the last copy. */ - { - var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) - var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) - var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) - table[prev_hash] = int(ip - base_ip - 1) - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - for isMatch5(in[ip:], in[candidate:]) { - var base int = ip - /* We have a 5-byte match at ip, and no need to emit any literal bytes - prior to ip. */ - - var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) - if ip-candidate > maxDistance_compress_fragment { - break - } - ip += int(matched) - last_distance = int(base - candidate) /* > 0 */ - emitCopyLen1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - emitDistance1(uint(last_distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some positions - within the last copy. */ - { - var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) - var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) - var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) - table[prev_hash] = int(ip - base_ip - 1) - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - ip++ - next_hash = hash5(in[ip:], shift) - } - } - -emit_remainder: - assert(next_emit <= ip_end) - input += int(block_size) - input_size -= block_size - block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kMergeBlockSize) - - /* Decide if we want to continue this meta-block instead of emitting the - last insert-only command. */ - if input_size > 0 && total_block_size+block_size <= 1<<20 && shouldMergeBlock(in[input:], block_size, lit_depth[:]) { - assert(total_block_size > 1<<16) - - /* Update the size of the current meta-block and continue emitting commands. - We can do this because the current size and the new size both have 5 - nibbles. */ - total_block_size += block_size - - updateBits(20, uint32(total_block_size-1), mlen_storage_ix, storage) - goto emit_commands - } - - /* Emit the remaining bytes as literals. */ - if next_emit < ip_end { - var insert uint = uint(ip_end - next_emit) - if insert < 6210 { - emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) - } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { - emitUncompressedMetaBlock1(in[metablock_start:], in[ip_end:], mlen_storage_ix-3, storage_ix, storage) - } else { - emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) - emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) - } - } - - next_emit = ip_end - - /* If we have more data, write a new meta-block header and prefix codes and - then continue emitting commands. */ -next_block: - if input_size > 0 { - metablock_start = input - block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) - total_block_size = block_size - - /* Save the bit position of the MLEN field of the meta-block header, so that - we can update it later if we decide to extend this meta-block. */ - mlen_storage_ix = *storage_ix + 3 - - storeMetaBlockHeader1(block_size, false, storage_ix, storage) - - /* No block splits, no contexts. */ - writeBits(13, 0, storage_ix, storage) - - literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) - buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, storage_ix, storage) - goto emit_commands - } - - if !is_last { - /* If this is not the last block, update the command and distance prefix - codes for the next block and store the compressed forms. */ - cmd_code[0] = 0 - - *cmd_code_numbits = 0 - buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, cmd_code_numbits, cmd_code) - } -} - -/* Compresses "input" string to the "*storage" buffer as one or more complete - meta-blocks, and updates the "*storage_ix" bit position. - - If "is_last" is 1, emits an additional empty last meta-block. - - "cmd_depth" and "cmd_bits" contain the command and distance prefix codes - (see comment in encode.h) used for the encoding of this input fragment. - If "is_last" is 0, they are updated to reflect the statistics - of this input fragment, to be used for the encoding of the next fragment. - - "*cmd_code_numbits" is the number of bits of the compressed representation - of the command and distance prefix codes, and "cmd_code" is an array of - at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed - command and distance prefix codes. If "is_last" is 0, these are also - updated to represent the updated "cmd_depth" and "cmd_bits". - - REQUIRES: "input_size" is greater than zero, or "is_last" is 1. - REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). - REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. - REQUIRES: "table_size" is an odd (9, 11, 13, 15) power of two - OUTPUT: maximal copy distance <= |input_size| - OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) */ -func compressFragmentFast(input []byte, input_size uint, is_last bool, table []int, table_size uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { - var initial_storage_ix uint = *storage_ix - var table_bits uint = uint(log2FloorNonZero(table_size)) - - if input_size == 0 { - assert(is_last) - writeBits(1, 1, storage_ix, storage) /* islast */ - writeBits(1, 1, storage_ix, storage) /* isempty */ - *storage_ix = (*storage_ix + 7) &^ 7 - return - } - - compressFragmentFastImpl(input, input_size, is_last, table, table_bits, cmd_depth, cmd_bits, cmd_code_numbits, cmd_code, storage_ix, storage) - - /* If output is larger than single uncompressed block, rewrite it. */ - if *storage_ix-initial_storage_ix > 31+(input_size<<3) { - emitUncompressedMetaBlock1(input, input[input_size:], initial_storage_ix, storage_ix, storage) - } - - if is_last { - writeBits(1, 1, storage_ix, storage) /* islast */ - writeBits(1, 1, storage_ix, storage) /* isempty */ - *storage_ix = (*storage_ix + 7) &^ 7 - } -} diff --git a/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go b/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go deleted file mode 100644 index 79f9c7f..0000000 --- a/vendor/github.com/andybalholm/brotli/compress_fragment_two_pass.go +++ /dev/null @@ -1,773 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function for fast encoding of an input fragment, independently from the input - history. This function uses two-pass processing: in the first pass we save - the found backward matches and literal bytes into a buffer, and in the - second pass we emit them into the bit stream using prefix codes built based - on the actual command and literal byte histograms. */ - -const kCompressFragmentTwoPassBlockSize uint = 1 << 17 - -func hash1(p []byte, shift uint, length uint) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(p) << ((8 - length) * 8)) * uint64(kHashMul32) - return uint32(h >> shift) -} - -func hashBytesAtOffset(v uint64, offset uint, shift uint, length uint) uint32 { - assert(offset <= 8-length) - { - var h uint64 = ((v >> (8 * offset)) << ((8 - length) * 8)) * uint64(kHashMul32) - return uint32(h >> shift) - } -} - -func isMatch1(p1 []byte, p2 []byte, length uint) bool { - if binary.LittleEndian.Uint32(p1) != binary.LittleEndian.Uint32(p2) { - return false - } - if length == 4 { - return true - } - return p1[4] == p2[4] && p1[5] == p2[5] -} - -/* -Builds a command and distance prefix code (each 64 symbols) into "depth" and - - "bits" based on "histogram" and stores it into the bit stream. -*/ -func buildAndStoreCommandPrefixCode(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { - var tree [129]huffmanTree - var cmd_depth = [numCommandSymbols]byte{0} - /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ - - var cmd_bits [64]uint16 - createHuffmanTree(histogram, 64, 15, tree[:], depth) - createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) - - /* We have to jump through a few hoops here in order to compute - the command bits because the symbols are in a different order than in - the full alphabet. This looks complicated, but having the symbols - in this order in the command bits saves a few branches in the Emit* - functions. */ - copy(cmd_depth[:], depth[24:][:24]) - - copy(cmd_depth[24:][:], depth[:8]) - copy(cmd_depth[32:][:], depth[48:][:8]) - copy(cmd_depth[40:][:], depth[8:][:8]) - copy(cmd_depth[48:][:], depth[56:][:8]) - copy(cmd_depth[56:][:], depth[16:][:8]) - convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) - copy(bits, cmd_bits[24:][:8]) - copy(bits[8:], cmd_bits[40:][:8]) - copy(bits[16:], cmd_bits[56:][:8]) - copy(bits[24:], cmd_bits[:24]) - copy(bits[48:], cmd_bits[32:][:8]) - copy(bits[56:], cmd_bits[48:][:8]) - convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) - { - /* Create the bit length array for the full command alphabet. */ - var i uint - for i := 0; i < int(64); i++ { - cmd_depth[i] = 0 - } /* only 64 first values were used */ - copy(cmd_depth[:], depth[24:][:8]) - copy(cmd_depth[64:][:], depth[32:][:8]) - copy(cmd_depth[128:][:], depth[40:][:8]) - copy(cmd_depth[192:][:], depth[48:][:8]) - copy(cmd_depth[384:][:], depth[56:][:8]) - for i = 0; i < 8; i++ { - cmd_depth[128+8*i] = depth[i] - cmd_depth[256+8*i] = depth[8+i] - cmd_depth[448+8*i] = depth[16+i] - } - - storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) - } - - storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) -} - -func emitInsertLen(insertlen uint32, commands *[]uint32) { - if insertlen < 6 { - (*commands)[0] = insertlen - } else if insertlen < 130 { - var tail uint32 = insertlen - 2 - var nbits uint32 = log2FloorNonZero(uint(tail)) - 1 - var prefix uint32 = tail >> nbits - var inscode uint32 = (nbits << 1) + prefix + 2 - var extra uint32 = tail - (prefix << nbits) - (*commands)[0] = inscode | extra<<8 - } else if insertlen < 2114 { - var tail uint32 = insertlen - 66 - var nbits uint32 = log2FloorNonZero(uint(tail)) - var code uint32 = nbits + 10 - var extra uint32 = tail - (1 << nbits) - (*commands)[0] = code | extra<<8 - } else if insertlen < 6210 { - var extra uint32 = insertlen - 2114 - (*commands)[0] = 21 | extra<<8 - } else if insertlen < 22594 { - var extra uint32 = insertlen - 6210 - (*commands)[0] = 22 | extra<<8 - } else { - var extra uint32 = insertlen - 22594 - (*commands)[0] = 23 | extra<<8 - } - - *commands = (*commands)[1:] -} - -func emitCopyLen(copylen uint, commands *[]uint32) { - if copylen < 10 { - (*commands)[0] = uint32(copylen + 38) - } else if copylen < 134 { - var tail uint = copylen - 6 - var nbits uint = uint(log2FloorNonZero(tail) - 1) - var prefix uint = tail >> nbits - var code uint = (nbits << 1) + prefix + 44 - var extra uint = tail - (prefix << nbits) - (*commands)[0] = uint32(code | extra<<8) - } else if copylen < 2118 { - var tail uint = copylen - 70 - var nbits uint = uint(log2FloorNonZero(tail)) - var code uint = nbits + 52 - var extra uint = tail - (uint(1) << nbits) - (*commands)[0] = uint32(code | extra<<8) - } else { - var extra uint = copylen - 2118 - (*commands)[0] = uint32(63 | extra<<8) - } - - *commands = (*commands)[1:] -} - -func emitCopyLenLastDistance(copylen uint, commands *[]uint32) { - if copylen < 12 { - (*commands)[0] = uint32(copylen + 20) - *commands = (*commands)[1:] - } else if copylen < 72 { - var tail uint = copylen - 8 - var nbits uint = uint(log2FloorNonZero(tail) - 1) - var prefix uint = tail >> nbits - var code uint = (nbits << 1) + prefix + 28 - var extra uint = tail - (prefix << nbits) - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - } else if copylen < 136 { - var tail uint = copylen - 8 - var code uint = (tail >> 5) + 54 - var extra uint = tail & 31 - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else if copylen < 2120 { - var tail uint = copylen - 72 - var nbits uint = uint(log2FloorNonZero(tail)) - var code uint = nbits + 52 - var extra uint = tail - (uint(1) << nbits) - (*commands)[0] = uint32(code | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else { - var extra uint = copylen - 2120 - (*commands)[0] = uint32(63 | extra<<8) - *commands = (*commands)[1:] - (*commands)[0] = 64 - *commands = (*commands)[1:] - } -} - -func emitDistance(distance uint32, commands *[]uint32) { - var d uint32 = distance + 3 - var nbits uint32 = log2FloorNonZero(uint(d)) - 1 - var prefix uint32 = (d >> nbits) & 1 - var offset uint32 = (2 + prefix) << nbits - var distcode uint32 = 2*(nbits-1) + prefix + 80 - var extra uint32 = d - offset - (*commands)[0] = distcode | extra<<8 - *commands = (*commands)[1:] -} - -/* REQUIRES: len <= 1 << 24. */ -func storeMetaBlockHeader(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { - var nibbles uint = 6 - - /* ISLAST */ - writeBits(1, 0, storage_ix, storage) - - if len <= 1<<16 { - nibbles = 4 - } else if len <= 1<<20 { - nibbles = 5 - } - - writeBits(2, uint64(nibbles)-4, storage_ix, storage) - writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) - - /* ISUNCOMPRESSED */ - writeSingleBit(is_uncompressed, storage_ix, storage) -} - -func storeMetaBlockHeaderBW(len uint, is_uncompressed bool, bw *bitWriter) { - var nibbles uint = 6 - - /* ISLAST */ - bw.writeBits(1, 0) - - if len <= 1<<16 { - nibbles = 4 - } else if len <= 1<<20 { - nibbles = 5 - } - - bw.writeBits(2, uint64(nibbles)-4) - bw.writeBits(nibbles*4, uint64(len)-1) - - /* ISUNCOMPRESSED */ - bw.writeSingleBit(is_uncompressed) -} - -func createCommands(input []byte, block_size uint, input_size uint, base_ip_ptr []byte, table []int, table_bits uint, min_match uint, literals *[]byte, commands *[]uint32) { - var ip int = 0 - var shift uint = 64 - table_bits - var ip_end int = int(block_size) - var base_ip int = -cap(base_ip_ptr) + cap(input) - var next_emit int = 0 - var last_distance int = -1 - /* "ip" is the input pointer. */ - - const kInputMarginBytes uint = windowGap - - /* "next_emit" is a pointer to the first byte that is not covered by a - previous copy. Bytes between "next_emit" and the start of the next copy or - the end of the input will be emitted as literal bytes. */ - if block_size >= kInputMarginBytes { - var len_limit uint = brotli_min_size_t(block_size-min_match, input_size-kInputMarginBytes) - var ip_limit int = int(len_limit) - /* For the last block, we need to keep a 16 bytes margin so that we can be - sure that all distances are at most window size - 16. - For all other blocks, we only need to keep a margin of 5 bytes so that - we don't go over the block size with a copy. */ - - var next_hash uint32 - ip++ - for next_hash = hash1(input[ip:], shift, min_match); ; { - var skip uint32 = 32 - var next_ip int = ip - /* Step 1: Scan forward in the input looking for a 6-byte-long match. - If we get close to exhausting the input then goto emit_remainder. - - Heuristic match skipping: If 32 bytes are scanned with no matches - found, start looking only at every other byte. If 32 more bytes are - scanned, look at every third byte, etc.. When a match is found, - immediately go back to looking at every byte. This is a small loss - (~5% performance, ~0.1% density) for compressible data due to more - bookkeeping, but for non-compressible data (such as JPEG) it's a huge - win since the compressor quickly "realizes" the data is incompressible - and doesn't bother looking for matches everywhere. - - The "skip" variable keeps track of how many bytes there are since the - last match; dividing it by 32 (ie. right-shifting by five) gives the - number of bytes to move ahead for each iteration. */ - - var candidate int - - assert(next_emit < ip) - - trawl: - for { - var hash uint32 = next_hash - var bytes_between_hash_lookups uint32 = skip >> 5 - skip++ - ip = next_ip - assert(hash == hash1(input[ip:], shift, min_match)) - next_ip = int(uint32(ip) + bytes_between_hash_lookups) - if next_ip > ip_limit { - goto emit_remainder - } - - next_hash = hash1(input[next_ip:], shift, min_match) - candidate = ip - last_distance - if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - if candidate < ip { - table[hash] = int(ip - base_ip) - break - } - } - - candidate = base_ip + table[hash] - assert(candidate >= base_ip) - assert(candidate < ip) - - table[hash] = int(ip - base_ip) - if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - break - } - } - - /* Check copy distance. If candidate is not feasible, continue search. - Checking is done outside of hot loop to reduce overhead. */ - if ip-candidate > maxDistance_compress_fragment { - goto trawl - } - - /* Step 2: Emit the found match together with the literal bytes from - "next_emit", and then see if we can find a next match immediately - afterwards. Repeat until we find no match for the input - without emitting some literal bytes. */ - { - var base int = ip - /* > 0 */ - var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) - var distance int = int(base - candidate) - /* We have a 6-byte match at ip, and we need to emit bytes in - [next_emit, ip). */ - - var insert int = int(base - next_emit) - ip += int(matched) - emitInsertLen(uint32(insert), commands) - copy(*literals, input[next_emit:][:uint(insert)]) - *literals = (*literals)[insert:] - if distance == last_distance { - (*commands)[0] = 64 - *commands = (*commands)[1:] - } else { - emitDistance(uint32(distance), commands) - last_distance = distance - } - - emitCopyLenLastDistance(matched, commands) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - { - var input_bytes uint64 - var cur_hash uint32 - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some - positions within the last copy. */ - - var prev_hash uint32 - if min_match == 4 { - input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) - cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } else { - input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 5) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 4) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) - cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - for ip-candidate <= maxDistance_compress_fragment && isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { - var base int = ip - /* We have a 6-byte match at ip, and no need to emit any - literal bytes prior to ip. */ - - var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) - ip += int(matched) - last_distance = int(base - candidate) /* > 0 */ - emitCopyLen(matched, commands) - emitDistance(uint32(last_distance), commands) - - next_emit = ip - if ip >= ip_limit { - goto emit_remainder - } - { - var input_bytes uint64 - var cur_hash uint32 - /* We could immediately start working at ip now, but to improve - compression we first update "table" with the hashes of some - positions within the last copy. */ - - var prev_hash uint32 - if min_match == 4 { - input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) - cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } else { - input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 5) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 4) - prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - table[prev_hash] = int(ip - base_ip - 3) - input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) - cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) - prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) - table[prev_hash] = int(ip - base_ip - 2) - prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) - table[prev_hash] = int(ip - base_ip - 1) - } - - candidate = base_ip + table[cur_hash] - table[cur_hash] = int(ip - base_ip) - } - } - - ip++ - next_hash = hash1(input[ip:], shift, min_match) - } - } - -emit_remainder: - assert(next_emit <= ip_end) - - /* Emit the remaining bytes as literals. */ - if next_emit < ip_end { - var insert uint32 = uint32(ip_end - next_emit) - emitInsertLen(insert, commands) - copy(*literals, input[next_emit:][:insert]) - *literals = (*literals)[insert:] - } -} - -var storeCommands_kNumExtraBits = [128]uint32{ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 12, - 14, - 24, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 7, - 8, - 9, - 10, - 24, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 6, - 7, - 7, - 8, - 8, - 9, - 9, - 10, - 10, - 11, - 11, - 12, - 12, - 13, - 13, - 14, - 14, - 15, - 15, - 16, - 16, - 17, - 17, - 18, - 18, - 19, - 19, - 20, - 20, - 21, - 21, - 22, - 22, - 23, - 23, - 24, - 24, -} -var storeCommands_kInsertOffset = [24]uint32{ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 8, - 10, - 14, - 18, - 26, - 34, - 50, - 66, - 98, - 130, - 194, - 322, - 578, - 1090, - 2114, - 6210, - 22594, -} - -func storeCommands(literals []byte, num_literals uint, commands []uint32, num_commands uint, storage_ix *uint, storage []byte) { - var lit_depths [256]byte - var lit_bits [256]uint16 - var lit_histo = [256]uint32{0} - var cmd_depths = [128]byte{0} - var cmd_bits = [128]uint16{0} - var cmd_histo = [128]uint32{0} - var i uint - for i = 0; i < num_literals; i++ { - lit_histo[literals[i]]++ - } - - buildAndStoreHuffmanTreeFast(lit_histo[:], num_literals, /* max_bits = */ - 8, lit_depths[:], lit_bits[:], storage_ix, storage) - - for i = 0; i < num_commands; i++ { - var code uint32 = commands[i] & 0xFF - assert(code < 128) - cmd_histo[code]++ - } - - cmd_histo[1] += 1 - cmd_histo[2] += 1 - cmd_histo[64] += 1 - cmd_histo[84] += 1 - buildAndStoreCommandPrefixCode(cmd_histo[:], cmd_depths[:], cmd_bits[:], storage_ix, storage) - - for i = 0; i < num_commands; i++ { - var cmd uint32 = commands[i] - var code uint32 = cmd & 0xFF - var extra uint32 = cmd >> 8 - assert(code < 128) - writeBits(uint(cmd_depths[code]), uint64(cmd_bits[code]), storage_ix, storage) - writeBits(uint(storeCommands_kNumExtraBits[code]), uint64(extra), storage_ix, storage) - if code < 24 { - var insert uint32 = storeCommands_kInsertOffset[code] + extra - var j uint32 - for j = 0; j < insert; j++ { - var lit byte = literals[0] - writeBits(uint(lit_depths[lit]), uint64(lit_bits[lit]), storage_ix, storage) - literals = literals[1:] - } - } - } -} - -/* Acceptable loss for uncompressible speedup is 2% */ -const minRatio = 0.98 - -const sampleRate = 43 - -func shouldCompress(input []byte, input_size uint, num_literals uint) bool { - var corpus_size float64 = float64(input_size) - if float64(num_literals) < minRatio*corpus_size { - return true - } else { - var literal_histo = [256]uint32{0} - var max_total_bit_cost float64 = corpus_size * 8 * minRatio / sampleRate - var i uint - for i = 0; i < input_size; i += sampleRate { - literal_histo[input[i]]++ - } - - return bitsEntropy(literal_histo[:], 256) < max_total_bit_cost - } -} - -func rewindBitPosition(new_storage_ix uint, storage_ix *uint, storage []byte) { - var bitpos uint = new_storage_ix & 7 - var mask uint = (1 << bitpos) - 1 - storage[new_storage_ix>>3] &= byte(mask) - *storage_ix = new_storage_ix -} - -func emitUncompressedMetaBlock(input []byte, input_size uint, storage_ix *uint, storage []byte) { - storeMetaBlockHeader(input_size, true, storage_ix, storage) - *storage_ix = (*storage_ix + 7) &^ 7 - copy(storage[*storage_ix>>3:], input[:input_size]) - *storage_ix += input_size << 3 - storage[*storage_ix>>3] = 0 -} - -func compressFragmentTwoPassImpl(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_bits uint, min_match uint, storage_ix *uint, storage []byte) { - /* Save the start of the first block for position and distance computations. - */ - var base_ip []byte = input - - for input_size > 0 { - var block_size uint = brotli_min_size_t(input_size, kCompressFragmentTwoPassBlockSize) - var commands []uint32 = command_buf - var literals []byte = literal_buf - var num_literals uint - createCommands(input, block_size, input_size, base_ip, table, table_bits, min_match, &literals, &commands) - num_literals = uint(-cap(literals) + cap(literal_buf)) - if shouldCompress(input, block_size, num_literals) { - var num_commands uint = uint(-cap(commands) + cap(command_buf)) - storeMetaBlockHeader(block_size, false, storage_ix, storage) - - /* No block splits, no contexts. */ - writeBits(13, 0, storage_ix, storage) - - storeCommands(literal_buf, num_literals, command_buf, num_commands, storage_ix, storage) - } else { - /* Since we did not find many backward references and the entropy of - the data is close to 8 bits, we can simply emit an uncompressed block. - This makes compression speed of uncompressible data about 3x faster. */ - emitUncompressedMetaBlock(input, block_size, storage_ix, storage) - } - - input = input[block_size:] - input_size -= block_size - } -} - -/* -Compresses "input" string to the "*storage" buffer as one or more complete - - meta-blocks, and updates the "*storage_ix" bit position. - - If "is_last" is 1, emits an additional empty last meta-block. - - REQUIRES: "input_size" is greater than zero, or "is_last" is 1. - REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). - REQUIRES: "command_buf" and "literal_buf" point to at least - kCompressFragmentTwoPassBlockSize long arrays. - REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. - REQUIRES: "table_size" is a power of two - OUTPUT: maximal copy distance <= |input_size| - OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) -*/ -func compressFragmentTwoPass(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_size uint, storage_ix *uint, storage []byte) { - var initial_storage_ix uint = *storage_ix - var table_bits uint = uint(log2FloorNonZero(table_size)) - var min_match uint - if table_bits <= 15 { - min_match = 4 - } else { - min_match = 6 - } - compressFragmentTwoPassImpl(input, input_size, is_last, command_buf, literal_buf, table, table_bits, min_match, storage_ix, storage) - - /* If output is larger than single uncompressed block, rewrite it. */ - if *storage_ix-initial_storage_ix > 31+(input_size<<3) { - rewindBitPosition(initial_storage_ix, storage_ix, storage) - emitUncompressedMetaBlock(input, input_size, storage_ix, storage) - } - - if is_last { - writeBits(1, 1, storage_ix, storage) /* islast */ - writeBits(1, 1, storage_ix, storage) /* isempty */ - *storage_ix = (*storage_ix + 7) &^ 7 - } -} diff --git a/vendor/github.com/andybalholm/brotli/constants.go b/vendor/github.com/andybalholm/brotli/constants.go deleted file mode 100644 index a880dff..0000000 --- a/vendor/github.com/andybalholm/brotli/constants.go +++ /dev/null @@ -1,77 +0,0 @@ -package brotli - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Specification: 7.3. Encoding of the context map */ -const contextMapMaxRle = 16 - -/* Specification: 2. Compressed representation overview */ -const maxNumberOfBlockTypes = 256 - -/* Specification: 3.3. Alphabet sizes: insert-and-copy length */ -const numLiteralSymbols = 256 - -const numCommandSymbols = 704 - -const numBlockLenSymbols = 26 - -const maxContextMapSymbols = (maxNumberOfBlockTypes + contextMapMaxRle) - -const maxBlockTypeSymbols = (maxNumberOfBlockTypes + 2) - -/* Specification: 3.5. Complex prefix codes */ -const repeatPreviousCodeLength = 16 - -const repeatZeroCodeLength = 17 - -const codeLengthCodes = (repeatZeroCodeLength + 1) - -/* "code length of 8 is repeated" */ -const initialRepeatedCodeLength = 8 - -/* "Large Window Brotli" */ -const largeMaxDistanceBits = 62 - -const largeMinWbits = 10 - -const largeMaxWbits = 30 - -/* Specification: 4. Encoding of distances */ -const numDistanceShortCodes = 16 - -const maxNpostfix = 3 - -const maxNdirect = 120 - -const maxDistanceBits = 24 - -func distanceAlphabetSize(NPOSTFIX uint, NDIRECT uint, MAXNBITS uint) uint { - return numDistanceShortCodes + NDIRECT + uint(MAXNBITS<<(NPOSTFIX+1)) -} - -/* numDistanceSymbols == 1128 */ -const numDistanceSymbols = 1128 - -const maxDistance = 0x3FFFFFC - -const maxAllowedDistance = 0x7FFFFFFC - -/* 7.1. Context modes and context ID lookup for literals */ -/* "context IDs for literals are in the range of 0..63" */ -const literalContextBits = 6 - -/* 7.2. Context ID for distances */ -const distanceContextBits = 2 - -/* 9.1. Format of the Stream Header */ -/* Number of slack bytes for window size. Don't confuse - with BROTLI_NUM_DISTANCE_SHORT_CODES. */ -const windowGap = 16 - -func maxBackwardLimit(W uint) uint { - return (uint(1) << W) - windowGap -} diff --git a/vendor/github.com/andybalholm/brotli/context.go b/vendor/github.com/andybalholm/brotli/context.go deleted file mode 100644 index 884ff8a..0000000 --- a/vendor/github.com/andybalholm/brotli/context.go +++ /dev/null @@ -1,2176 +0,0 @@ -package brotli - -/* Lookup table to map the previous two bytes to a context id. - -There are four different context modeling modes defined here: - contextLSB6: context id is the least significant 6 bits of the last byte, - contextMSB6: context id is the most significant 6 bits of the last byte, - contextUTF8: second-order context model tuned for UTF8-encoded text, - contextSigned: second-order context model tuned for signed integers. - -If |p1| and |p2| are the previous two bytes, and |mode| is current context -mode, we calculate the context as: - - context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256]. - -For contextUTF8 mode, if the previous two bytes are ASCII characters -(i.e. < 128), this will be equivalent to - - context = 4 * context1(p1) + context2(p2), - -where context1 is based on the previous byte in the following way: - - 0 : non-ASCII control - 1 : \t, \n, \r - 2 : space - 3 : other punctuation - 4 : " ' - 5 : % - 6 : ( < [ { - 7 : ) > ] } - 8 : , ; : - 9 : . - 10 : = - 11 : number - 12 : upper-case vowel - 13 : upper-case consonant - 14 : lower-case vowel - 15 : lower-case consonant - -and context2 is based on the second last byte: - - 0 : control, space - 1 : punctuation - 2 : upper-case letter, number - 3 : lower-case letter - -If the last byte is ASCII, and the second last byte is not (in a valid UTF8 -stream it will be a continuation byte, value between 128 and 191), the -context is the same as if the second last byte was an ASCII control or space. - -If the last byte is a UTF8 lead byte (value >= 192), then the next byte will -be a continuation byte and the context id is 2 or 3 depending on the LSB of -the last byte and to a lesser extent on the second last byte if it is ASCII. - -If the last byte is a UTF8 continuation byte, the second last byte can be: - - continuation byte: the next byte is probably ASCII or lead byte (assuming - 4-byte UTF8 characters are rare) and the context id is 0 or 1. - - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 - - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 - -The possible value combinations of the previous two bytes, the range of -context ids and the type of the next byte is summarized in the table below: - -|--------\-----------------------------------------------------------------| -| \ Last byte | -| Second \---------------------------------------------------------------| -| last byte \ ASCII | cont. byte | lead byte | -| \ (0-127) | (128-191) | (192-) | -|=============|===================|=====================|==================| -| ASCII | next: ASCII/lead | not valid | next: cont. | -| (0-127) | context: 4 - 63 | | context: 2 - 3 | -|-------------|-------------------|---------------------|------------------| -| cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | -| (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | -|-------------|-------------------|---------------------|------------------| -| lead byte | not valid | next: ASCII/lead | not valid | -| (192-207) | | context: 0 - 1 | | -|-------------|-------------------|---------------------|------------------| -| lead byte | not valid | next: cont. | not valid | -| (208-) | | context: 2 - 3 | | -|-------------|-------------------|---------------------|------------------| -*/ - -const ( - contextLSB6 = 0 - contextMSB6 = 1 - contextUTF8 = 2 - contextSigned = 3 -) - -/* Common context lookup table for all context modes. */ -var kContextLookup = [2048]byte{ - /* CONTEXT_LSB6, last byte. */ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 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, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 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, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 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, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 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, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - - /* CONTEXT_LSB6, second last byte, */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* CONTEXT_MSB6, last byte. */ - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 6, - 6, - 6, - 6, - 7, - 7, - 7, - 7, - 8, - 8, - 8, - 8, - 9, - 9, - 9, - 9, - 10, - 10, - 10, - 10, - 11, - 11, - 11, - 11, - 12, - 12, - 12, - 12, - 13, - 13, - 13, - 13, - 14, - 14, - 14, - 14, - 15, - 15, - 15, - 15, - 16, - 16, - 16, - 16, - 17, - 17, - 17, - 17, - 18, - 18, - 18, - 18, - 19, - 19, - 19, - 19, - 20, - 20, - 20, - 20, - 21, - 21, - 21, - 21, - 22, - 22, - 22, - 22, - 23, - 23, - 23, - 23, - 24, - 24, - 24, - 24, - 25, - 25, - 25, - 25, - 26, - 26, - 26, - 26, - 27, - 27, - 27, - 27, - 28, - 28, - 28, - 28, - 29, - 29, - 29, - 29, - 30, - 30, - 30, - 30, - 31, - 31, - 31, - 31, - 32, - 32, - 32, - 32, - 33, - 33, - 33, - 33, - 34, - 34, - 34, - 34, - 35, - 35, - 35, - 35, - 36, - 36, - 36, - 36, - 37, - 37, - 37, - 37, - 38, - 38, - 38, - 38, - 39, - 39, - 39, - 39, - 40, - 40, - 40, - 40, - 41, - 41, - 41, - 41, - 42, - 42, - 42, - 42, - 43, - 43, - 43, - 43, - 44, - 44, - 44, - 44, - 45, - 45, - 45, - 45, - 46, - 46, - 46, - 46, - 47, - 47, - 47, - 47, - 48, - 48, - 48, - 48, - 49, - 49, - 49, - 49, - 50, - 50, - 50, - 50, - 51, - 51, - 51, - 51, - 52, - 52, - 52, - 52, - 53, - 53, - 53, - 53, - 54, - 54, - 54, - 54, - 55, - 55, - 55, - 55, - 56, - 56, - 56, - 56, - 57, - 57, - 57, - 57, - 58, - 58, - 58, - 58, - 59, - 59, - 59, - 59, - 60, - 60, - 60, - 60, - 61, - 61, - 61, - 61, - 62, - 62, - 62, - 62, - 63, - 63, - 63, - 63, - - /* CONTEXT_MSB6, second last byte, */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* CONTEXT_UTF8, last byte. */ - /* ASCII range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4, - 4, - 0, - 0, - 4, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8, - 12, - 16, - 12, - 12, - 20, - 12, - 16, - 24, - 28, - 12, - 12, - 32, - 12, - 36, - 12, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 44, - 32, - 32, - 24, - 40, - 28, - 12, - 12, - 48, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 48, - 52, - 52, - 52, - 52, - 52, - 24, - 12, - 28, - 12, - 12, - 12, - 56, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 56, - 60, - 60, - 60, - 60, - 60, - 24, - 12, - 28, - 12, - 0, - - /* UTF8 continuation byte range. */ - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - - /* UTF8 lead byte range. */ - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - 2, - 3, - - /* CONTEXT_UTF8 second last byte. */ - /* ASCII range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, - 1, - 1, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 1, - 1, - 1, - 1, - 0, - - /* UTF8 continuation byte range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - - /* UTF8 lead byte range. */ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - - /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */ - 0, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 16, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 32, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 40, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 48, - 56, - - /* CONTEXT_SIGNED, second last byte. */ - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 5, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 7, -} - -type contextLUT []byte - -func getContextLUT(mode int) contextLUT { - return kContextLookup[mode<<9:] -} - -func getContext(p1 byte, p2 byte, lut contextLUT) byte { - return lut[p1] | lut[256+int(p2)] -} diff --git a/vendor/github.com/andybalholm/brotli/decode.go b/vendor/github.com/andybalholm/brotli/decode.go deleted file mode 100644 index 9d9513b..0000000 --- a/vendor/github.com/andybalholm/brotli/decode.go +++ /dev/null @@ -1,2581 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -const ( - decoderResultError = 0 - decoderResultSuccess = 1 - decoderResultNeedsMoreInput = 2 - decoderResultNeedsMoreOutput = 3 -) - -/** - * Error code for detailed logging / production debugging. - * - * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE. - */ -const ( - decoderNoError = 0 - decoderSuccess = 1 - decoderNeedsMoreInput = 2 - decoderNeedsMoreOutput = 3 - decoderErrorFormatExuberantNibble = -1 - decoderErrorFormatReserved = -2 - decoderErrorFormatExuberantMetaNibble = -3 - decoderErrorFormatSimpleHuffmanAlphabet = -4 - decoderErrorFormatSimpleHuffmanSame = -5 - decoderErrorFormatClSpace = -6 - decoderErrorFormatHuffmanSpace = -7 - decoderErrorFormatContextMapRepeat = -8 - decoderErrorFormatBlockLength1 = -9 - decoderErrorFormatBlockLength2 = -10 - decoderErrorFormatTransform = -11 - decoderErrorFormatDictionary = -12 - decoderErrorFormatWindowBits = -13 - decoderErrorFormatPadding1 = -14 - decoderErrorFormatPadding2 = -15 - decoderErrorFormatDistance = -16 - decoderErrorDictionaryNotSet = -19 - decoderErrorInvalidArguments = -20 - decoderErrorAllocContextModes = -21 - decoderErrorAllocTreeGroups = -22 - decoderErrorAllocContextMap = -25 - decoderErrorAllocRingBuffer1 = -26 - decoderErrorAllocRingBuffer2 = -27 - decoderErrorAllocBlockTypeTrees = -30 - decoderErrorUnreachable = -31 -) - -const huffmanTableBits = 8 - -const huffmanTableMask = 0xFF - -/* We need the slack region for the following reasons: - - doing up to two 16-byte copies for fast backward copying - - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) */ -const kRingBufferWriteAheadSlack uint32 = 42 - -var kCodeLengthCodeOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} - -/* Static prefix code for the complex code length code lengths. */ -var kCodeLengthPrefixLength = [16]byte{2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, 2, 2, 4} - -var kCodeLengthPrefixValue = [16]byte{0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5} - -/* Saves error code and converts it to BrotliDecoderResult. */ -func saveErrorCode(s *Reader, e int) int { - s.error_code = int(e) - switch e { - case decoderSuccess: - return decoderResultSuccess - - case decoderNeedsMoreInput: - return decoderResultNeedsMoreInput - - case decoderNeedsMoreOutput: - return decoderResultNeedsMoreOutput - - default: - return decoderResultError - } -} - -/* Decodes WBITS by reading 1 - 7 bits, or 0x11 for "Large Window Brotli". - Precondition: bit-reader accumulator has at least 8 bits. */ -func decodeWindowBits(s *Reader, br *bitReader) int { - var n uint32 - var large_window bool = s.large_window - s.large_window = false - takeBits(br, 1, &n) - if n == 0 { - s.window_bits = 16 - return decoderSuccess - } - - takeBits(br, 3, &n) - if n != 0 { - s.window_bits = 17 + n - return decoderSuccess - } - - takeBits(br, 3, &n) - if n == 1 { - if large_window { - takeBits(br, 1, &n) - if n == 1 { - return decoderErrorFormatWindowBits - } - - s.large_window = true - return decoderSuccess - } else { - return decoderErrorFormatWindowBits - } - } - - if n != 0 { - s.window_bits = 8 + n - return decoderSuccess - } - - s.window_bits = 17 - return decoderSuccess -} - -/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */ -func decodeVarLenUint8(s *Reader, br *bitReader, value *uint32) int { - var bits uint32 - switch s.substate_decode_uint8 { - case stateDecodeUint8None: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits == 0 { - *value = 0 - return decoderSuccess - } - fallthrough - - /* Fall through. */ - case stateDecodeUint8Short: - if !safeReadBits(br, 3, &bits) { - s.substate_decode_uint8 = stateDecodeUint8Short - return decoderNeedsMoreInput - } - - if bits == 0 { - *value = 1 - s.substate_decode_uint8 = stateDecodeUint8None - return decoderSuccess - } - - /* Use output value as a temporary storage. It MUST be persisted. */ - *value = bits - fallthrough - - /* Fall through. */ - case stateDecodeUint8Long: - if !safeReadBits(br, *value, &bits) { - s.substate_decode_uint8 = stateDecodeUint8Long - return decoderNeedsMoreInput - } - - *value = (1 << *value) + bits - s.substate_decode_uint8 = stateDecodeUint8None - return decoderSuccess - - default: - return decoderErrorUnreachable - } -} - -/* Decodes a metablock length and flags by reading 2 - 31 bits. */ -func decodeMetaBlockLength(s *Reader, br *bitReader) int { - var bits uint32 - var i int - for { - switch s.substate_metablock_header { - case stateMetablockHeaderNone: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.is_last_metablock = 1 - } else { - s.is_last_metablock = 0 - } - s.meta_block_remaining_len = 0 - s.is_uncompressed = 0 - s.is_metadata = 0 - if s.is_last_metablock == 0 { - s.substate_metablock_header = stateMetablockHeaderNibbles - break - } - - s.substate_metablock_header = stateMetablockHeaderEmpty - fallthrough - - /* Fall through. */ - case stateMetablockHeaderEmpty: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - } - - s.substate_metablock_header = stateMetablockHeaderNibbles - fallthrough - - /* Fall through. */ - case stateMetablockHeaderNibbles: - if !safeReadBits(br, 2, &bits) { - return decoderNeedsMoreInput - } - - s.size_nibbles = uint(byte(bits + 4)) - s.loop_counter = 0 - if bits == 3 { - s.is_metadata = 1 - s.substate_metablock_header = stateMetablockHeaderReserved - break - } - - s.substate_metablock_header = stateMetablockHeaderSize - fallthrough - - /* Fall through. */ - case stateMetablockHeaderSize: - i = s.loop_counter - - for ; i < int(s.size_nibbles); i++ { - if !safeReadBits(br, 4, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 { - return decoderErrorFormatExuberantNibble - } - - s.meta_block_remaining_len |= int(bits << uint(i*4)) - } - - s.substate_metablock_header = stateMetablockHeaderUncompressed - fallthrough - - /* Fall through. */ - case stateMetablockHeaderUncompressed: - if s.is_last_metablock == 0 { - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - s.is_uncompressed = 1 - } else { - s.is_uncompressed = 0 - } - } - - s.meta_block_remaining_len++ - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - - case stateMetablockHeaderReserved: - if !safeReadBits(br, 1, &bits) { - return decoderNeedsMoreInput - } - - if bits != 0 { - return decoderErrorFormatReserved - } - - s.substate_metablock_header = stateMetablockHeaderBytes - fallthrough - - /* Fall through. */ - case stateMetablockHeaderBytes: - if !safeReadBits(br, 2, &bits) { - return decoderNeedsMoreInput - } - - if bits == 0 { - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - } - - s.size_nibbles = uint(byte(bits)) - s.substate_metablock_header = stateMetablockHeaderMetadata - fallthrough - - /* Fall through. */ - case stateMetablockHeaderMetadata: - i = s.loop_counter - - for ; i < int(s.size_nibbles); i++ { - if !safeReadBits(br, 8, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 { - return decoderErrorFormatExuberantMetaNibble - } - - s.meta_block_remaining_len |= int(bits << uint(i*8)) - } - - s.meta_block_remaining_len++ - s.substate_metablock_header = stateMetablockHeaderNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } - } -} - -/* Decodes the Huffman code. - This method doesn't read data from the bit reader, BUT drops the amount of - bits that correspond to the decoded symbol. - bits MUST contain at least 15 (BROTLI_HUFFMAN_MAX_CODE_LENGTH) valid bits. */ -func decodeSymbol(bits uint32, table []huffmanCode, br *bitReader) uint32 { - table = table[bits&huffmanTableMask:] - if table[0].bits > huffmanTableBits { - var nbits uint32 = uint32(table[0].bits) - huffmanTableBits - dropBits(br, huffmanTableBits) - table = table[uint32(table[0].value)+((bits>>huffmanTableBits)&bitMask(nbits)):] - } - - dropBits(br, uint32(table[0].bits)) - return uint32(table[0].value) -} - -/* Reads and decodes the next Huffman code from bit-stream. - This method peeks 16 bits of input and drops 0 - 15 of them. */ -func readSymbol(table []huffmanCode, br *bitReader) uint32 { - return decodeSymbol(get16BitsUnmasked(br), table, br) -} - -/* Same as DecodeSymbol, but it is known that there is less than 15 bits of - input are currently available. */ -func safeDecodeSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { - var val uint32 - var available_bits uint32 = getAvailableBits(br) - if available_bits == 0 { - if table[0].bits == 0 { - *result = uint32(table[0].value) - return true - } - - return false /* No valid bits at all. */ - } - - val = uint32(getBitsUnmasked(br)) - table = table[val&huffmanTableMask:] - if table[0].bits <= huffmanTableBits { - if uint32(table[0].bits) <= available_bits { - dropBits(br, uint32(table[0].bits)) - *result = uint32(table[0].value) - return true - } else { - return false /* Not enough bits for the first level. */ - } - } - - if available_bits <= huffmanTableBits { - return false /* Not enough bits to move to the second level. */ - } - - /* Speculatively drop HUFFMAN_TABLE_BITS. */ - val = (val & bitMask(uint32(table[0].bits))) >> huffmanTableBits - - available_bits -= huffmanTableBits - table = table[uint32(table[0].value)+val:] - if available_bits < uint32(table[0].bits) { - return false /* Not enough bits for the second level. */ - } - - dropBits(br, huffmanTableBits+uint32(table[0].bits)) - *result = uint32(table[0].value) - return true -} - -func safeReadSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { - var val uint32 - if safeGetBits(br, 15, &val) { - *result = decodeSymbol(val, table, br) - return true - } - - return safeDecodeSymbol(table, br, result) -} - -/* Makes a look-up in first level Huffman table. Peeks 8 bits. */ -func preloadSymbol(safe int, table []huffmanCode, br *bitReader, bits *uint32, value *uint32) { - if safe != 0 { - return - } - - table = table[getBits(br, huffmanTableBits):] - *bits = uint32(table[0].bits) - *value = uint32(table[0].value) -} - -/* Decodes the next Huffman code using data prepared by PreloadSymbol. - Reads 0 - 15 bits. Also peeks 8 following bits. */ -func readPreloadedSymbol(table []huffmanCode, br *bitReader, bits *uint32, value *uint32) uint32 { - var result uint32 = *value - var ext []huffmanCode - if *bits > huffmanTableBits { - var val uint32 = get16BitsUnmasked(br) - ext = table[val&huffmanTableMask:][*value:] - var mask uint32 = bitMask((*bits - huffmanTableBits)) - dropBits(br, huffmanTableBits) - ext = ext[(val>>huffmanTableBits)&mask:] - dropBits(br, uint32(ext[0].bits)) - result = uint32(ext[0].value) - } else { - dropBits(br, *bits) - } - - preloadSymbol(0, table, br, bits, value) - return result -} - -func log2Floor(x uint32) uint32 { - var result uint32 = 0 - for x != 0 { - x >>= 1 - result++ - } - - return result -} - -/* Reads (s->symbol + 1) symbols. - Totally 1..4 symbols are read, 1..11 bits each. - The list of symbols MUST NOT contain duplicates. */ -func readSimpleHuffmanSymbols(alphabet_size uint32, max_symbol uint32, s *Reader) int { - var br *bitReader = &s.br - var max_bits uint32 = log2Floor(alphabet_size - 1) - var i uint32 = s.sub_loop_counter - /* max_bits == 1..11; symbol == 0..3; 1..44 bits will be read. */ - - var num_symbols uint32 = s.symbol - for i <= num_symbols { - var v uint32 - if !safeReadBits(br, max_bits, &v) { - s.sub_loop_counter = i - s.substate_huffman = stateHuffmanSimpleRead - return decoderNeedsMoreInput - } - - if v >= max_symbol { - return decoderErrorFormatSimpleHuffmanAlphabet - } - - s.symbols_lists_array[i] = uint16(v) - i++ - } - - for i = 0; i < num_symbols; i++ { - var k uint32 = i + 1 - for ; k <= num_symbols; k++ { - if s.symbols_lists_array[i] == s.symbols_lists_array[k] { - return decoderErrorFormatSimpleHuffmanSame - } - } - } - - return decoderSuccess -} - -/* Process single decoded symbol code length: - A) reset the repeat variable - B) remember code length (if it is not 0) - C) extend corresponding index-chain - D) reduce the Huffman space - E) update the histogram */ -func processSingleCodeLength(code_len uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { - *repeat = 0 - if code_len != 0 { /* code_len == 1..15 */ - symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol)) - next_symbol[code_len] = int(*symbol) - *prev_code_len = code_len - *space -= 32768 >> code_len - code_length_histo[code_len]++ - } - - (*symbol)++ -} - -/* Process repeated symbol code length. - A) Check if it is the extension of previous repeat sequence; if the decoded - value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new - symbol-skip - B) Update repeat variable - C) Check if operation is feasible (fits alphabet) - D) For each symbol do the same operations as in ProcessSingleCodeLength - - PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or - code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH */ -func processRepeatedCodeLength(code_len uint32, repeat_delta uint32, alphabet_size uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, repeat_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { - var old_repeat uint32 /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ - var extra_bits uint32 = 3 - var new_len uint32 = 0 - if code_len == repeatPreviousCodeLength { - new_len = *prev_code_len - extra_bits = 2 - } - - if *repeat_code_len != new_len { - *repeat = 0 - *repeat_code_len = new_len - } - - old_repeat = *repeat - if *repeat > 0 { - *repeat -= 2 - *repeat <<= extra_bits - } - - *repeat += repeat_delta + 3 - repeat_delta = *repeat - old_repeat - if *symbol+repeat_delta > alphabet_size { - *symbol = alphabet_size - *space = 0xFFFFF - return - } - - if *repeat_code_len != 0 { - var last uint = uint(*symbol + repeat_delta) - var next int = next_symbol[*repeat_code_len] - for { - symbolListPut(symbol_lists, next, uint16(*symbol)) - next = int(*symbol) - (*symbol)++ - if (*symbol) == uint32(last) { - break - } - } - - next_symbol[*repeat_code_len] = next - *space -= repeat_delta << (15 - *repeat_code_len) - code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta) - } else { - *symbol += repeat_delta - } -} - -/* Reads and decodes symbol codelengths. */ -func readSymbolCodeLengths(alphabet_size uint32, s *Reader) int { - var br *bitReader = &s.br - var symbol uint32 = s.symbol - var repeat uint32 = s.repeat - var space uint32 = s.space - var prev_code_len uint32 = s.prev_code_len - var repeat_code_len uint32 = s.repeat_code_len - var symbol_lists symbolList = s.symbol_lists - var code_length_histo []uint16 = s.code_length_histo[:] - var next_symbol []int = s.next_symbol[:] - if !warmupBitReader(br) { - return decoderNeedsMoreInput - } - var p []huffmanCode - for symbol < alphabet_size && space > 0 { - p = s.table[:] - var code_len uint32 - if !checkInputAmount(br, shortFillBitWindowRead) { - s.symbol = symbol - s.repeat = repeat - s.prev_code_len = prev_code_len - s.repeat_code_len = repeat_code_len - s.space = space - return decoderNeedsMoreInput - } - - fillBitWindow16(br) - p = p[getBitsUnmasked(br)&uint64(bitMask(huffmanMaxCodeLengthCodeLength)):] - dropBits(br, uint32(p[0].bits)) /* Use 1..5 bits. */ - code_len = uint32(p[0].value) /* code_len == 0..17 */ - if code_len < repeatPreviousCodeLength { - processSingleCodeLength(code_len, &symbol, &repeat, &space, &prev_code_len, symbol_lists, code_length_histo, next_symbol) /* code_len == 16..17, extra_bits == 2..3 */ - } else { - var extra_bits uint32 - if code_len == repeatPreviousCodeLength { - extra_bits = 2 - } else { - extra_bits = 3 - } - var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits) - dropBits(br, extra_bits) - processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol) - } - } - - s.space = space - return decoderSuccess -} - -func safeReadSymbolCodeLengths(alphabet_size uint32, s *Reader) int { - var br *bitReader = &s.br - var get_byte bool = false - var p []huffmanCode - for s.symbol < alphabet_size && s.space > 0 { - p = s.table[:] - var code_len uint32 - var available_bits uint32 - var bits uint32 = 0 - if get_byte && !pullByte(br) { - return decoderNeedsMoreInput - } - get_byte = false - available_bits = getAvailableBits(br) - if available_bits != 0 { - bits = uint32(getBitsUnmasked(br)) - } - - p = p[bits&bitMask(huffmanMaxCodeLengthCodeLength):] - if uint32(p[0].bits) > available_bits { - get_byte = true - continue - } - - code_len = uint32(p[0].value) /* code_len == 0..17 */ - if code_len < repeatPreviousCodeLength { - dropBits(br, uint32(p[0].bits)) - processSingleCodeLength(code_len, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) /* code_len == 16..17, extra_bits == 2..3 */ - } else { - var extra_bits uint32 = code_len - 14 - var repeat_delta uint32 = (bits >> p[0].bits) & bitMask(extra_bits) - if available_bits < uint32(p[0].bits)+extra_bits { - get_byte = true - continue - } - - dropBits(br, uint32(p[0].bits)+extra_bits) - processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, &s.repeat_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) - } - } - - return decoderSuccess -} - -/* Reads and decodes 15..18 codes using static prefix code. - Each code is 2..4 bits long. In total 30..72 bits are used. */ -func readCodeLengthCodeLengths(s *Reader) int { - var br *bitReader = &s.br - var num_codes uint32 = s.repeat - var space uint32 = s.space - var i uint32 = s.sub_loop_counter - for ; i < codeLengthCodes; i++ { - var code_len_idx byte = kCodeLengthCodeOrder[i] - var ix uint32 - var v uint32 - if !safeGetBits(br, 4, &ix) { - var available_bits uint32 = getAvailableBits(br) - if available_bits != 0 { - ix = uint32(getBitsUnmasked(br) & 0xF) - } else { - ix = 0 - } - - if uint32(kCodeLengthPrefixLength[ix]) > available_bits { - s.sub_loop_counter = i - s.repeat = num_codes - s.space = space - s.substate_huffman = stateHuffmanComplex - return decoderNeedsMoreInput - } - } - - v = uint32(kCodeLengthPrefixValue[ix]) - dropBits(br, uint32(kCodeLengthPrefixLength[ix])) - s.code_length_code_lengths[code_len_idx] = byte(v) - if v != 0 { - space = space - (32 >> v) - num_codes++ - s.code_length_histo[v]++ - if space-1 >= 32 { - /* space is 0 or wrapped around. */ - break - } - } - } - - if num_codes != 1 && space != 0 { - return decoderErrorFormatClSpace - } - - return decoderSuccess -} - -/* Decodes the Huffman tables. - There are 2 scenarios: - A) Huffman code contains only few symbols (1..4). Those symbols are read - directly; their code lengths are defined by the number of symbols. - For this scenario 4 - 49 bits will be read. - - B) 2-phase decoding: - B.1) Small Huffman table is decoded; it is specified with code lengths - encoded with predefined entropy code. 32 - 74 bits are used. - B.2) Decoded table is used to decode code lengths of symbols in resulting - Huffman table. In worst case 3520 bits are read. */ -func readHuffmanCode(alphabet_size uint32, max_symbol uint32, table []huffmanCode, opt_table_size *uint32, s *Reader) int { - var br *bitReader = &s.br - - /* Unnecessary masking, but might be good for safety. */ - alphabet_size &= 0x7FF - - /* State machine. */ - for { - switch s.substate_huffman { - case stateHuffmanNone: - if !safeReadBits(br, 2, &s.sub_loop_counter) { - return decoderNeedsMoreInput - } - - /* The value is used as follows: - 1 for simple code; - 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */ - if s.sub_loop_counter != 1 { - s.space = 32 - s.repeat = 0 /* num_codes */ - var i int - for i = 0; i <= huffmanMaxCodeLengthCodeLength; i++ { - s.code_length_histo[i] = 0 - } - - for i = 0; i < codeLengthCodes; i++ { - s.code_length_code_lengths[i] = 0 - } - - s.substate_huffman = stateHuffmanComplex - continue - } - fallthrough - - /* Read symbols, codes & code lengths directly. */ - case stateHuffmanSimpleSize: - if !safeReadBits(br, 2, &s.symbol) { /* num_symbols */ - s.substate_huffman = stateHuffmanSimpleSize - return decoderNeedsMoreInput - } - - s.sub_loop_counter = 0 - fallthrough - - case stateHuffmanSimpleRead: - { - var result int = readSimpleHuffmanSymbols(alphabet_size, max_symbol, s) - if result != decoderSuccess { - return result - } - } - fallthrough - - case stateHuffmanSimpleBuild: - var table_size uint32 - if s.symbol == 3 { - var bits uint32 - if !safeReadBits(br, 1, &bits) { - s.substate_huffman = stateHuffmanSimpleBuild - return decoderNeedsMoreInput - } - - s.symbol += bits - } - - table_size = buildSimpleHuffmanTable(table, huffmanTableBits, s.symbols_lists_array[:], s.symbol) - if opt_table_size != nil { - *opt_table_size = table_size - } - - s.substate_huffman = stateHuffmanNone - return decoderSuccess - - /* Decode Huffman-coded code lengths. */ - case stateHuffmanComplex: - { - var i uint32 - var result int = readCodeLengthCodeLengths(s) - if result != decoderSuccess { - return result - } - - buildCodeLengthsHuffmanTable(s.table[:], s.code_length_code_lengths[:], s.code_length_histo[:]) - for i = 0; i < 16; i++ { - s.code_length_histo[i] = 0 - } - - for i = 0; i <= huffmanMaxCodeLength; i++ { - s.next_symbol[i] = int(i) - (huffmanMaxCodeLength + 1) - symbolListPut(s.symbol_lists, s.next_symbol[i], 0xFFFF) - } - - s.symbol = 0 - s.prev_code_len = initialRepeatedCodeLength - s.repeat = 0 - s.repeat_code_len = 0 - s.space = 32768 - s.substate_huffman = stateHuffmanLengthSymbols - } - fallthrough - - case stateHuffmanLengthSymbols: - var table_size uint32 - var result int = readSymbolCodeLengths(max_symbol, s) - if result == decoderNeedsMoreInput { - result = safeReadSymbolCodeLengths(max_symbol, s) - } - - if result != decoderSuccess { - return result - } - - if s.space != 0 { - return decoderErrorFormatHuffmanSpace - } - - table_size = buildHuffmanTable(table, huffmanTableBits, s.symbol_lists, s.code_length_histo[:]) - if opt_table_size != nil { - *opt_table_size = table_size - } - - s.substate_huffman = stateHuffmanNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } - } -} - -/* Decodes a block length by reading 3..39 bits. */ -func readBlockLength(table []huffmanCode, br *bitReader) uint32 { - var code uint32 - var nbits uint32 - code = readSymbol(table, br) - nbits = kBlockLengthPrefixCode[code].nbits /* nbits == 2..24 */ - return kBlockLengthPrefixCode[code].offset + readBits(br, nbits) -} - -/* WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then - reading can't be continued with ReadBlockLength. */ -func safeReadBlockLength(s *Reader, result *uint32, table []huffmanCode, br *bitReader) bool { - var index uint32 - if s.substate_read_block_length == stateReadBlockLengthNone { - if !safeReadSymbol(table, br, &index) { - return false - } - } else { - index = s.block_length_index - } - { - var bits uint32 /* nbits == 2..24 */ - var nbits uint32 = kBlockLengthPrefixCode[index].nbits - if !safeReadBits(br, nbits, &bits) { - s.block_length_index = index - s.substate_read_block_length = stateReadBlockLengthSuffix - return false - } - - *result = kBlockLengthPrefixCode[index].offset + bits - s.substate_read_block_length = stateReadBlockLengthNone - return true - } -} - -/* Transform: - 1) initialize list L with values 0, 1,... 255 - 2) For each input element X: - 2.1) let Y = L[X] - 2.2) remove X-th element from L - 2.3) prepend Y to L - 2.4) append Y to output - - In most cases max(Y) <= 7, so most of L remains intact. - To reduce the cost of initialization, we reuse L, remember the upper bound - of Y values, and reinitialize only first elements in L. - - Most of input values are 0 and 1. To reduce number of branches, we replace - inner for loop with do-while. */ -func inverseMoveToFrontTransform(v []byte, v_len uint32, state *Reader) { - var mtf [256]byte - var i int - for i = 1; i < 256; i++ { - mtf[i] = byte(i) - } - var mtf_1 byte - - /* Transform the input. */ - for i = 0; uint32(i) < v_len; i++ { - var index int = int(v[i]) - var value byte = mtf[index] - v[i] = value - mtf_1 = value - for index >= 1 { - index-- - mtf[index+1] = mtf[index] - } - - mtf[0] = mtf_1 - } -} - -/* Decodes a series of Huffman table using ReadHuffmanCode function. */ -func huffmanTreeGroupDecode(group *huffmanTreeGroup, s *Reader) int { - if s.substate_tree_group != stateTreeGroupLoop { - s.next = group.codes - s.htree_index = 0 - s.substate_tree_group = stateTreeGroupLoop - } - - for s.htree_index < int(group.num_htrees) { - var table_size uint32 - var result int = readHuffmanCode(uint32(group.alphabet_size), uint32(group.max_symbol), s.next, &table_size, s) - if result != decoderSuccess { - return result - } - group.htrees[s.htree_index] = s.next - s.next = s.next[table_size:] - s.htree_index++ - } - - s.substate_tree_group = stateTreeGroupNone - return decoderSuccess -} - -/* Decodes a context map. - Decoding is done in 4 phases: - 1) Read auxiliary information (6..16 bits) and allocate memory. - In case of trivial context map, decoding is finished at this phase. - 2) Decode Huffman table using ReadHuffmanCode function. - This table will be used for reading context map items. - 3) Read context map items; "0" values could be run-length encoded. - 4) Optionally, apply InverseMoveToFront transform to the resulting map. */ -func decodeContextMap(context_map_size uint32, num_htrees *uint32, context_map_arg *[]byte, s *Reader) int { - var br *bitReader = &s.br - var result int = decoderSuccess - - switch int(s.substate_context_map) { - case stateContextMapNone: - result = decodeVarLenUint8(s, br, num_htrees) - if result != decoderSuccess { - return result - } - - (*num_htrees)++ - s.context_index = 0 - *context_map_arg = make([]byte, uint(context_map_size)) - if *context_map_arg == nil { - return decoderErrorAllocContextMap - } - - if *num_htrees <= 1 { - for i := 0; i < int(context_map_size); i++ { - (*context_map_arg)[i] = 0 - } - return decoderSuccess - } - - s.substate_context_map = stateContextMapReadPrefix - fallthrough - /* Fall through. */ - case stateContextMapReadPrefix: - { - var bits uint32 - - /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe - to peek 4 bits ahead. */ - if !safeGetBits(br, 5, &bits) { - return decoderNeedsMoreInput - } - - if bits&1 != 0 { /* Use RLE for zeros. */ - s.max_run_length_prefix = (bits >> 1) + 1 - dropBits(br, 5) - } else { - s.max_run_length_prefix = 0 - dropBits(br, 1) - } - - s.substate_context_map = stateContextMapHuffman - } - fallthrough - - /* Fall through. */ - case stateContextMapHuffman: - { - var alphabet_size uint32 = *num_htrees + s.max_run_length_prefix - result = readHuffmanCode(alphabet_size, alphabet_size, s.context_map_table[:], nil, s) - if result != decoderSuccess { - return result - } - s.code = 0xFFFF - s.substate_context_map = stateContextMapDecode - } - fallthrough - - /* Fall through. */ - case stateContextMapDecode: - { - var context_index uint32 = s.context_index - var max_run_length_prefix uint32 = s.max_run_length_prefix - var context_map []byte = *context_map_arg - var code uint32 = s.code - var skip_preamble bool = (code != 0xFFFF) - for context_index < context_map_size || skip_preamble { - if !skip_preamble { - if !safeReadSymbol(s.context_map_table[:], br, &code) { - s.code = 0xFFFF - s.context_index = context_index - return decoderNeedsMoreInput - } - - if code == 0 { - context_map[context_index] = 0 - context_index++ - continue - } - - if code > max_run_length_prefix { - context_map[context_index] = byte(code - max_run_length_prefix) - context_index++ - continue - } - } else { - skip_preamble = false - } - - /* RLE sub-stage. */ - { - var reps uint32 - if !safeReadBits(br, code, &reps) { - s.code = code - s.context_index = context_index - return decoderNeedsMoreInput - } - - reps += 1 << code - if context_index+reps > context_map_size { - return decoderErrorFormatContextMapRepeat - } - - for { - context_map[context_index] = 0 - context_index++ - reps-- - if reps == 0 { - break - } - } - } - } - } - fallthrough - - case stateContextMapTransform: - var bits uint32 - if !safeReadBits(br, 1, &bits) { - s.substate_context_map = stateContextMapTransform - return decoderNeedsMoreInput - } - - if bits != 0 { - inverseMoveToFrontTransform(*context_map_arg, context_map_size, s) - } - - s.substate_context_map = stateContextMapNone - return decoderSuccess - - default: - return decoderErrorUnreachable - } -} - -/* Decodes a command or literal and updates block type ring-buffer. - Reads 3..54 bits. */ -func decodeBlockTypeAndLength(safe int, s *Reader, tree_type int) bool { - var max_block_type uint32 = s.num_block_types[tree_type] - type_tree := s.block_type_trees[tree_type*huffmanMaxSize258:] - len_tree := s.block_len_trees[tree_type*huffmanMaxSize26:] - var br *bitReader = &s.br - var ringbuffer []uint32 = s.block_type_rb[tree_type*2:] - var block_type uint32 - if max_block_type <= 1 { - return false - } - - /* Read 0..15 + 3..39 bits. */ - if safe == 0 { - block_type = readSymbol(type_tree, br) - s.block_length[tree_type] = readBlockLength(len_tree, br) - } else { - var memento bitReaderState - bitReaderSaveState(br, &memento) - if !safeReadSymbol(type_tree, br, &block_type) { - return false - } - if !safeReadBlockLength(s, &s.block_length[tree_type], len_tree, br) { - s.substate_read_block_length = stateReadBlockLengthNone - bitReaderRestoreState(br, &memento) - return false - } - } - - if block_type == 1 { - block_type = ringbuffer[1] + 1 - } else if block_type == 0 { - block_type = ringbuffer[0] - } else { - block_type -= 2 - } - - if block_type >= max_block_type { - block_type -= max_block_type - } - - ringbuffer[0] = ringbuffer[1] - ringbuffer[1] = block_type - return true -} - -func detectTrivialLiteralBlockTypes(s *Reader) { - var i uint - for i = 0; i < 8; i++ { - s.trivial_literal_contexts[i] = 0 - } - for i = 0; uint32(i) < s.num_block_types[0]; i++ { - var offset uint = i << literalContextBits - var error uint = 0 - var sample uint = uint(s.context_map[offset]) - var j uint - for j = 0; j < 1<<literalContextBits; { - var k int - for k = 0; k < 4; k++ { - error |= uint(s.context_map[offset+j]) ^ sample - j++ - } - } - - if error == 0 { - s.trivial_literal_contexts[i>>5] |= 1 << (i & 31) - } - } -} - -func prepareLiteralDecoding(s *Reader) { - var context_mode byte - var trivial uint - var block_type uint32 = s.block_type_rb[1] - var context_offset uint32 = block_type << literalContextBits - s.context_map_slice = s.context_map[context_offset:] - trivial = uint(s.trivial_literal_contexts[block_type>>5]) - s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1) - s.literal_htree = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[0]]) - context_mode = s.context_modes[block_type] & 3 - s.context_lookup = getContextLUT(int(context_mode)) -} - -/* Decodes the block type and updates the state for literal context. - Reads 3..54 bits. */ -func decodeLiteralBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 0) { - return false - } - - prepareLiteralDecoding(s) - return true -} - -func decodeLiteralBlockSwitch(s *Reader) { - decodeLiteralBlockSwitchInternal(0, s) -} - -func safeDecodeLiteralBlockSwitch(s *Reader) bool { - return decodeLiteralBlockSwitchInternal(1, s) -} - -/* Block switch for insert/copy length. - Reads 3..54 bits. */ -func decodeCommandBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 1) { - return false - } - - s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[s.block_type_rb[3]]) - return true -} - -func decodeCommandBlockSwitch(s *Reader) { - decodeCommandBlockSwitchInternal(0, s) -} - -func safeDecodeCommandBlockSwitch(s *Reader) bool { - return decodeCommandBlockSwitchInternal(1, s) -} - -/* Block switch for distance codes. - Reads 3..54 bits. */ -func decodeDistanceBlockSwitchInternal(safe int, s *Reader) bool { - if !decodeBlockTypeAndLength(safe, s, 2) { - return false - } - - s.dist_context_map_slice = s.dist_context_map[s.block_type_rb[5]<<distanceContextBits:] - s.dist_htree_index = s.dist_context_map_slice[s.distance_context] - return true -} - -func decodeDistanceBlockSwitch(s *Reader) { - decodeDistanceBlockSwitchInternal(0, s) -} - -func safeDecodeDistanceBlockSwitch(s *Reader) bool { - return decodeDistanceBlockSwitchInternal(1, s) -} - -func unwrittenBytes(s *Reader, wrap bool) uint { - var pos uint - if wrap && s.pos > s.ringbuffer_size { - pos = uint(s.ringbuffer_size) - } else { - pos = uint(s.pos) - } - var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos - return partial_pos_rb - s.partial_pos_out -} - -/* Dumps output. - Returns BROTLI_DECODER_NEEDS_MORE_OUTPUT only if there is more output to push - and either ring-buffer is as big as window size, or |force| is true. */ -func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out *uint, force bool) int { - start := s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):] - var to_write uint = unwrittenBytes(s, true) - var num_written uint = *available_out - if num_written > to_write { - num_written = to_write - } - - if s.meta_block_remaining_len < 0 { - return decoderErrorFormatBlockLength1 - } - - if next_out != nil && *next_out == nil { - *next_out = start - } else { - if next_out != nil { - copy(*next_out, start[:num_written]) - *next_out = (*next_out)[num_written:] - } - } - - *available_out -= num_written - s.partial_pos_out += num_written - if total_out != nil { - *total_out = s.partial_pos_out - } - - if num_written < to_write { - if s.ringbuffer_size == 1<<s.window_bits || force { - return decoderNeedsMoreOutput - } else { - return decoderSuccess - } - } - - /* Wrap ring buffer only if it has reached its maximal size. */ - if s.ringbuffer_size == 1<<s.window_bits && s.pos >= s.ringbuffer_size { - s.pos -= s.ringbuffer_size - s.rb_roundtrips++ - if uint(s.pos) != 0 { - s.should_wrap_ringbuffer = 1 - } else { - s.should_wrap_ringbuffer = 0 - } - } - - return decoderSuccess -} - -func wrapRingBuffer(s *Reader) { - if s.should_wrap_ringbuffer != 0 { - copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)]) - s.should_wrap_ringbuffer = 0 - } -} - -/* Allocates ring-buffer. - - s->ringbuffer_size MUST be updated by BrotliCalculateRingBufferSize before - this function is called. - - Last two bytes of ring-buffer are initialized to 0, so context calculation - could be done uniformly for the first two and all other positions. */ -func ensureRingBuffer(s *Reader) bool { - var old_ringbuffer []byte - if s.ringbuffer_size == s.new_ringbuffer_size { - return true - } - spaceNeeded := int(s.new_ringbuffer_size) + int(kRingBufferWriteAheadSlack) - if len(s.ringbuffer) < spaceNeeded { - old_ringbuffer = s.ringbuffer - s.ringbuffer = make([]byte, spaceNeeded) - } - - s.ringbuffer[s.new_ringbuffer_size-2] = 0 - s.ringbuffer[s.new_ringbuffer_size-1] = 0 - - if old_ringbuffer != nil { - copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)]) - } - - s.ringbuffer_size = s.new_ringbuffer_size - s.ringbuffer_mask = s.new_ringbuffer_size - 1 - s.ringbuffer_end = s.ringbuffer[s.ringbuffer_size:] - - return true -} - -func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_out *uint, s *Reader) int { - /* TODO: avoid allocation for single uncompressed block. */ - if !ensureRingBuffer(s) { - return decoderErrorAllocRingBuffer1 - } - - /* State machine */ - for { - switch s.substate_uncompressed { - case stateUncompressedNone: - { - var nbytes int = int(getRemainingBytes(&s.br)) - if nbytes > s.meta_block_remaining_len { - nbytes = s.meta_block_remaining_len - } - - if s.pos+nbytes > s.ringbuffer_size { - nbytes = s.ringbuffer_size - s.pos - } - - /* Copy remaining bytes from s->br.buf_ to ring-buffer. */ - copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes)) - - s.pos += nbytes - s.meta_block_remaining_len -= nbytes - if s.pos < 1<<s.window_bits { - if s.meta_block_remaining_len == 0 { - return decoderSuccess - } - - return decoderNeedsMoreInput - } - - s.substate_uncompressed = stateUncompressedWrite - } - fallthrough - - case stateUncompressedWrite: - { - result := writeRingBuffer(s, available_out, next_out, total_out, false) - if result != decoderSuccess { - return result - } - - if s.ringbuffer_size == 1<<s.window_bits { - s.max_distance = s.max_backward_distance - } - - s.substate_uncompressed = stateUncompressedNone - break - } - } - } -} - -/* Calculates the smallest feasible ring buffer. - - If we know the data size is small, do not allocate more ring buffer - size than needed to reduce memory usage. - - When this method is called, metablock size and flags MUST be decoded. */ -func calculateRingBufferSize(s *Reader) { - var window_size int = 1 << s.window_bits - var new_ringbuffer_size int = window_size - var min_size int - /* We need at least 2 bytes of ring buffer size to get the last two - bytes for context from there */ - if s.ringbuffer_size != 0 { - min_size = s.ringbuffer_size - } else { - min_size = 1024 - } - var output_size int - - /* If maximum is already reached, no further extension is retired. */ - if s.ringbuffer_size == window_size { - return - } - - /* Metadata blocks does not touch ring buffer. */ - if s.is_metadata != 0 { - return - } - - if s.ringbuffer == nil { - output_size = 0 - } else { - output_size = s.pos - } - - output_size += s.meta_block_remaining_len - if min_size < output_size { - min_size = output_size - } - - if !(s.canny_ringbuffer_allocation == 0) { - /* Reduce ring buffer size to save memory when server is unscrupulous. - In worst case memory usage might be 1.5x bigger for a short period of - ring buffer reallocation. */ - for new_ringbuffer_size>>1 >= min_size { - new_ringbuffer_size >>= 1 - } - } - - s.new_ringbuffer_size = new_ringbuffer_size -} - -/* Reads 1..256 2-bit context modes. */ -func readContextModes(s *Reader) int { - var br *bitReader = &s.br - var i int = s.loop_counter - - for i < int(s.num_block_types[0]) { - var bits uint32 - if !safeReadBits(br, 2, &bits) { - s.loop_counter = i - return decoderNeedsMoreInput - } - - s.context_modes[i] = byte(bits) - i++ - } - - return decoderSuccess -} - -func takeDistanceFromRingBuffer(s *Reader) { - if s.distance_code == 0 { - s.dist_rb_idx-- - s.distance_code = s.dist_rb[s.dist_rb_idx&3] - - /* Compensate double distance-ring-buffer roll for dictionary items. */ - s.distance_context = 1 - } else { - var distance_code int = s.distance_code << 1 - const kDistanceShortCodeIndexOffset uint32 = 0xAAAFFF1B - const kDistanceShortCodeValueOffset uint32 = 0xFA5FA500 - var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3 - /* kDistanceShortCodeIndexOffset has 2-bit values from LSB: - 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */ - - /* kDistanceShortCodeValueOffset has 2-bit values from LSB: - -0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */ - s.distance_code = s.dist_rb[v] - - v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3 - if distance_code&0x3 != 0 { - s.distance_code += v - } else { - s.distance_code -= v - if s.distance_code <= 0 { - /* A huge distance will cause a () soon. - This is a little faster than failing here. */ - s.distance_code = 0x7FFFFFFF - } - } - } -} - -func safeReadBitsMaybeZero(br *bitReader, n_bits uint32, val *uint32) bool { - if n_bits != 0 { - return safeReadBits(br, n_bits, val) - } else { - *val = 0 - return true - } -} - -/* Precondition: s->distance_code < 0. */ -func readDistanceInternal(safe int, s *Reader, br *bitReader) bool { - var distval int - var memento bitReaderState - var distance_tree []huffmanCode = []huffmanCode(s.distance_hgroup.htrees[s.dist_htree_index]) - if safe == 0 { - s.distance_code = int(readSymbol(distance_tree, br)) - } else { - var code uint32 - bitReaderSaveState(br, &memento) - if !safeReadSymbol(distance_tree, br, &code) { - return false - } - - s.distance_code = int(code) - } - - /* Convert the distance code to the actual distance by possibly - looking up past distances from the s->ringbuffer. */ - s.distance_context = 0 - - if s.distance_code&^0xF == 0 { - takeDistanceFromRingBuffer(s) - s.block_length[2]-- - return true - } - - distval = s.distance_code - int(s.num_direct_distance_codes) - if distval >= 0 { - var nbits uint32 - var postfix int - var offset int - if safe == 0 && (s.distance_postfix_bits == 0) { - nbits = (uint32(distval) >> 1) + 1 - offset = ((2 + (distval & 1)) << nbits) - 4 - s.distance_code = int(s.num_direct_distance_codes) + offset + int(readBits(br, nbits)) - } else { - /* This branch also works well when s->distance_postfix_bits == 0. */ - var bits uint32 - postfix = distval & s.distance_postfix_mask - distval >>= s.distance_postfix_bits - nbits = (uint32(distval) >> 1) + 1 - if safe != 0 { - if !safeReadBitsMaybeZero(br, nbits, &bits) { - s.distance_code = -1 /* Restore precondition. */ - bitReaderRestoreState(br, &memento) - return false - } - } else { - bits = readBits(br, nbits) - } - - offset = ((2 + (distval & 1)) << nbits) - 4 - s.distance_code = int(s.num_direct_distance_codes) + ((offset + int(bits)) << s.distance_postfix_bits) + postfix - } - } - - s.distance_code = s.distance_code - numDistanceShortCodes + 1 - s.block_length[2]-- - return true -} - -func readDistance(s *Reader, br *bitReader) { - readDistanceInternal(0, s, br) -} - -func safeReadDistance(s *Reader, br *bitReader) bool { - return readDistanceInternal(1, s, br) -} - -func readCommandInternal(safe int, s *Reader, br *bitReader, insert_length *int) bool { - var cmd_code uint32 - var insert_len_extra uint32 = 0 - var copy_length uint32 - var v cmdLutElement - var memento bitReaderState - if safe == 0 { - cmd_code = readSymbol(s.htree_command, br) - } else { - bitReaderSaveState(br, &memento) - if !safeReadSymbol(s.htree_command, br, &cmd_code) { - return false - } - } - - v = kCmdLut[cmd_code] - s.distance_code = int(v.distance_code) - s.distance_context = int(v.context) - s.dist_htree_index = s.dist_context_map_slice[s.distance_context] - *insert_length = int(v.insert_len_offset) - if safe == 0 { - if v.insert_len_extra_bits != 0 { - insert_len_extra = readBits(br, uint32(v.insert_len_extra_bits)) - } - - copy_length = readBits(br, uint32(v.copy_len_extra_bits)) - } else { - if !safeReadBitsMaybeZero(br, uint32(v.insert_len_extra_bits), &insert_len_extra) || !safeReadBitsMaybeZero(br, uint32(v.copy_len_extra_bits), &copy_length) { - bitReaderRestoreState(br, &memento) - return false - } - } - - s.copy_length = int(copy_length) + int(v.copy_len_offset) - s.block_length[1]-- - *insert_length += int(insert_len_extra) - return true -} - -func readCommand(s *Reader, br *bitReader, insert_length *int) { - readCommandInternal(0, s, br, insert_length) -} - -func safeReadCommand(s *Reader, br *bitReader, insert_length *int) bool { - return readCommandInternal(1, s, br, insert_length) -} - -func checkInputAmountMaybeSafe(safe int, br *bitReader, num uint) bool { - if safe != 0 { - return true - } - - return checkInputAmount(br, num) -} - -func processCommandsInternal(safe int, s *Reader) int { - var pos int = s.pos - var i int = s.loop_counter - var result int = decoderSuccess - var br *bitReader = &s.br - var hc []huffmanCode - - if !checkInputAmountMaybeSafe(safe, br, 28) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if safe == 0 { - warmupBitReader(br) - } - - /* Jump into state machine. */ - if s.state == stateCommandBegin { - goto CommandBegin - } else if s.state == stateCommandInner { - goto CommandInner - } else if s.state == stateCommandPostDecodeLiterals { - goto CommandPostDecodeLiterals - } else if s.state == stateCommandPostWrapCopy { - goto CommandPostWrapCopy - } else { - return decoderErrorUnreachable - } - -CommandBegin: - if safe != 0 { - s.state = stateCommandBegin - } - - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 156 bits + 7 bytes */ - s.state = stateCommandBegin - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[1] == 0 { - if safe != 0 { - if !safeDecodeCommandBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeCommandBlockSwitch(s) - } - - goto CommandBegin - } - - /* Read the insert/copy length in the command. */ - if safe != 0 { - if !safeReadCommand(s, br, &i) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - readCommand(s, br, &i) - } - - if i == 0 { - goto CommandPostDecodeLiterals - } - - s.meta_block_remaining_len -= i - -CommandInner: - if safe != 0 { - s.state = stateCommandInner - } - - /* Read the literals in the command. */ - if s.trivial_literal_context != 0 { - var bits uint32 - var value uint32 - preloadSymbol(safe, s.literal_htree, br, &bits, &value) - for { - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ - s.state = stateCommandInner - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[0] == 0 { - if safe != 0 { - if !safeDecodeLiteralBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeLiteralBlockSwitch(s) - } - - preloadSymbol(safe, s.literal_htree, br, &bits, &value) - if s.trivial_literal_context == 0 { - goto CommandInner - } - } - - if safe == 0 { - s.ringbuffer[pos] = byte(readPreloadedSymbol(s.literal_htree, br, &bits, &value)) - } else { - var literal uint32 - if !safeReadSymbol(s.literal_htree, br, &literal) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - s.ringbuffer[pos] = byte(literal) - } - - s.block_length[0]-- - pos++ - if pos == s.ringbuffer_size { - s.state = stateCommandInnerWrite - i-- - goto saveStateAndReturn - } - i-- - if i == 0 { - break - } - } - } else { - var p1 byte = s.ringbuffer[(pos-1)&s.ringbuffer_mask] - var p2 byte = s.ringbuffer[(pos-2)&s.ringbuffer_mask] - for { - var context byte - if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ - s.state = stateCommandInner - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - if s.block_length[0] == 0 { - if safe != 0 { - if !safeDecodeLiteralBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeLiteralBlockSwitch(s) - } - - if s.trivial_literal_context != 0 { - goto CommandInner - } - } - - context = getContext(p1, p2, s.context_lookup) - hc = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[context]]) - p2 = p1 - if safe == 0 { - p1 = byte(readSymbol(hc, br)) - } else { - var literal uint32 - if !safeReadSymbol(hc, br, &literal) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - - p1 = byte(literal) - } - - s.ringbuffer[pos] = p1 - s.block_length[0]-- - pos++ - if pos == s.ringbuffer_size { - s.state = stateCommandInnerWrite - i-- - goto saveStateAndReturn - } - i-- - if i == 0 { - break - } - } - } - - if s.meta_block_remaining_len <= 0 { - s.state = stateMetablockDone - goto saveStateAndReturn - } - -CommandPostDecodeLiterals: - if safe != 0 { - s.state = stateCommandPostDecodeLiterals - } - - if s.distance_code >= 0 { - /* Implicit distance case. */ - if s.distance_code != 0 { - s.distance_context = 0 - } else { - s.distance_context = 1 - } - - s.dist_rb_idx-- - s.distance_code = s.dist_rb[s.dist_rb_idx&3] - } else { - /* Read distance code in the command, unless it was implicitly zero. */ - if s.block_length[2] == 0 { - if safe != 0 { - if !safeDecodeDistanceBlockSwitch(s) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - decodeDistanceBlockSwitch(s) - } - } - - if safe != 0 { - if !safeReadDistance(s, br) { - result = decoderNeedsMoreInput - goto saveStateAndReturn - } - } else { - readDistance(s, br) - } - } - - if s.max_distance != s.max_backward_distance { - if pos < s.max_backward_distance { - s.max_distance = pos - } else { - s.max_distance = s.max_backward_distance - } - } - - i = s.copy_length - - /* Apply copy of LZ77 back-reference, or static dictionary reference if - the distance is larger than the max LZ77 distance */ - if s.distance_code > s.max_distance { - /* The maximum allowed distance is BROTLI_MAX_ALLOWED_DISTANCE = 0x7FFFFFFC. - With this choice, no signed overflow can occur after decoding - a special distance code (e.g., after adding 3 to the last distance). */ - if s.distance_code > maxAllowedDistance { - return decoderErrorFormatDistance - } - - if i >= minDictionaryWordLength && i <= maxDictionaryWordLength { - var address int = s.distance_code - s.max_distance - 1 - var words *dictionary = s.dictionary - var trans *transforms = s.transforms - var offset int = int(s.dictionary.offsets_by_length[i]) - var shift uint32 = uint32(s.dictionary.size_bits_by_length[i]) - var mask int = int(bitMask(shift)) - var word_idx int = address & mask - var transform_idx int = address >> shift - - /* Compensate double distance-ring-buffer roll. */ - s.dist_rb_idx += s.distance_context - - offset += word_idx * i - if words.data == nil { - return decoderErrorDictionaryNotSet - } - - if transform_idx < int(trans.num_transforms) { - word := words.data[offset:] - var len int = i - if transform_idx == int(trans.cutOffTransforms[0]) { - copy(s.ringbuffer[pos:], word[:uint(len)]) - } else { - len = transformDictionaryWord(s.ringbuffer[pos:], word, int(len), trans, transform_idx) - } - - pos += int(len) - s.meta_block_remaining_len -= int(len) - if pos >= s.ringbuffer_size { - s.state = stateCommandPostWrite1 - goto saveStateAndReturn - } - } else { - return decoderErrorFormatTransform - } - } else { - return decoderErrorFormatDictionary - } - } else { - var src_start int = (pos - s.distance_code) & s.ringbuffer_mask - copy_dst := s.ringbuffer[pos:] - copy_src := s.ringbuffer[src_start:] - var dst_end int = pos + i - var src_end int = src_start + i - - /* Update the recent distances cache. */ - s.dist_rb[s.dist_rb_idx&3] = s.distance_code - - s.dist_rb_idx++ - s.meta_block_remaining_len -= i - - /* There are 32+ bytes of slack in the ring-buffer allocation. - Also, we have 16 short codes, that make these 16 bytes irrelevant - in the ring-buffer. Let's copy over them as a first guess. */ - copy(copy_dst, copy_src[:16]) - - if src_end > pos && dst_end > src_start { - /* Regions intersect. */ - goto CommandPostWrapCopy - } - - if dst_end >= s.ringbuffer_size || src_end >= s.ringbuffer_size { - /* At least one region wraps. */ - goto CommandPostWrapCopy - } - - pos += i - if i > 16 { - if i > 32 { - copy(copy_dst[16:], copy_src[16:][:uint(i-16)]) - } else { - /* This branch covers about 45% cases. - Fixed size short copy allows more compiler optimizations. */ - copy(copy_dst[16:], copy_src[16:][:16]) - } - } - } - - if s.meta_block_remaining_len <= 0 { - /* Next metablock, if any. */ - s.state = stateMetablockDone - - goto saveStateAndReturn - } else { - goto CommandBegin - } -CommandPostWrapCopy: - { - var wrap_guard int = s.ringbuffer_size - pos - for { - i-- - if i < 0 { - break - } - s.ringbuffer[pos] = s.ringbuffer[(pos-s.distance_code)&s.ringbuffer_mask] - pos++ - wrap_guard-- - if wrap_guard == 0 { - s.state = stateCommandPostWrite2 - goto saveStateAndReturn - } - } - } - - if s.meta_block_remaining_len <= 0 { - /* Next metablock, if any. */ - s.state = stateMetablockDone - - goto saveStateAndReturn - } else { - goto CommandBegin - } - -saveStateAndReturn: - s.pos = pos - s.loop_counter = i - return result -} - -func processCommands(s *Reader) int { - return processCommandsInternal(0, s) -} - -func safeProcessCommands(s *Reader) int { - return processCommandsInternal(1, s) -} - -/* Returns the maximum number of distance symbols which can only represent - distances not exceeding BROTLI_MAX_ALLOWED_DISTANCE. */ - -var maxDistanceSymbol_bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} -var maxDistanceSymbol_diff = [maxNpostfix + 1]uint32{73, 126, 228, 424} - -func maxDistanceSymbol(ndirect uint32, npostfix uint32) uint32 { - var postfix uint32 = 1 << npostfix - if ndirect < maxDistanceSymbol_bound[npostfix] { - return ndirect + maxDistanceSymbol_diff[npostfix] + postfix - } else if ndirect > maxDistanceSymbol_bound[npostfix]+postfix { - return ndirect + maxDistanceSymbol_diff[npostfix] - } else { - return maxDistanceSymbol_bound[npostfix] + maxDistanceSymbol_diff[npostfix] + postfix - } -} - -/* Invariant: input stream is never overconsumed: - - invalid input implies that the whole stream is invalid -> any amount of - input could be read and discarded - - when result is "needs more input", then at least one more byte is REQUIRED - to complete decoding; all input data MUST be consumed by decoder, so - client could swap the input buffer - - when result is "needs more output" decoder MUST ensure that it doesn't - hold more than 7 bits in bit reader; this saves client from swapping input - buffer ahead of time - - when result is "success" decoder MUST return all unused data back to input - buffer; this is possible because the invariant is held on enter */ -func decoderDecompressStream(s *Reader, available_in *uint, next_in *[]byte, available_out *uint, next_out *[]byte) int { - var result int = decoderSuccess - var br *bitReader = &s.br - - /* Do not try to process further in a case of unrecoverable error. */ - if int(s.error_code) < 0 { - return decoderResultError - } - - if *available_out != 0 && (next_out == nil || *next_out == nil) { - return saveErrorCode(s, decoderErrorInvalidArguments) - } - - if *available_out == 0 { - next_out = nil - } - if s.buffer_length == 0 { /* Just connect bit reader to input stream. */ - br.input_len = *available_in - br.input = *next_in - br.byte_pos = 0 - } else { - /* At least one byte of input is required. More than one byte of input may - be required to complete the transaction -> reading more data must be - done in a loop -> do it in a main loop. */ - result = decoderNeedsMoreInput - - br.input = s.buffer.u8[:] - br.byte_pos = 0 - } - - /* State machine */ - for { - if result != decoderSuccess { - /* Error, needs more input/output. */ - if result == decoderNeedsMoreInput { - if s.ringbuffer != nil { /* Pro-actively push output. */ - var intermediate_result int = writeRingBuffer(s, available_out, next_out, nil, true) - - /* WriteRingBuffer checks s->meta_block_remaining_len validity. */ - if int(intermediate_result) < 0 { - result = intermediate_result - break - } - } - - if s.buffer_length != 0 { /* Used with internal buffer. */ - if br.byte_pos == br.input_len { - /* Successfully finished read transaction. - Accumulator contains less than 8 bits, because internal buffer - is expanded byte-by-byte until it is enough to complete read. */ - s.buffer_length = 0 - - /* Switch to input stream and restart. */ - result = decoderSuccess - - br.input_len = *available_in - br.input = *next_in - br.byte_pos = 0 - continue - } else if *available_in != 0 { - /* Not enough data in buffer, but can take one more byte from - input stream. */ - result = decoderSuccess - - s.buffer.u8[s.buffer_length] = (*next_in)[0] - s.buffer_length++ - br.input_len = uint(s.buffer_length) - *next_in = (*next_in)[1:] - (*available_in)-- - - /* Retry with more data in buffer. */ - continue - } - - /* Can't finish reading and no more input. */ - break - /* Input stream doesn't contain enough input. */ - } else { - /* Copy tail to internal buffer and return. */ - *next_in = br.input[br.byte_pos:] - - *available_in = br.input_len - br.byte_pos - for *available_in != 0 { - s.buffer.u8[s.buffer_length] = (*next_in)[0] - s.buffer_length++ - *next_in = (*next_in)[1:] - (*available_in)-- - } - - break - } - } - - /* Unreachable. */ - - /* Fail or needs more output. */ - if s.buffer_length != 0 { - /* Just consumed the buffered input and produced some output. Otherwise - it would result in "needs more input". Reset internal buffer. */ - s.buffer_length = 0 - } else { - /* Using input stream in last iteration. When decoder switches to input - stream it has less than 8 bits in accumulator, so it is safe to - return unused accumulator bits there. */ - bitReaderUnload(br) - - *available_in = br.input_len - br.byte_pos - *next_in = br.input[br.byte_pos:] - } - - break - } - - switch s.state { - /* Prepare to the first read. */ - case stateUninited: - if !warmupBitReader(br) { - result = decoderNeedsMoreInput - break - } - - /* Decode window size. */ - result = decodeWindowBits(s, br) /* Reads 1..8 bits. */ - if result != decoderSuccess { - break - } - - if s.large_window { - s.state = stateLargeWindowBits - break - } - - s.state = stateInitialize - - case stateLargeWindowBits: - if !safeReadBits(br, 6, &s.window_bits) { - result = decoderNeedsMoreInput - break - } - - if s.window_bits < largeMinWbits || s.window_bits > largeMaxWbits { - result = decoderErrorFormatWindowBits - break - } - - s.state = stateInitialize - fallthrough - - /* Maximum distance, see section 9.1. of the spec. */ - /* Fall through. */ - case stateInitialize: - s.max_backward_distance = (1 << s.window_bits) - windowGap - - /* Allocate memory for both block_type_trees and block_len_trees. */ - s.block_type_trees = make([]huffmanCode, (3 * (huffmanMaxSize258 + huffmanMaxSize26))) - - if s.block_type_trees == nil { - result = decoderErrorAllocBlockTypeTrees - break - } - - s.block_len_trees = s.block_type_trees[3*huffmanMaxSize258:] - - s.state = stateMetablockBegin - fallthrough - - /* Fall through. */ - case stateMetablockBegin: - decoderStateMetablockBegin(s) - - s.state = stateMetablockHeader - fallthrough - - /* Fall through. */ - case stateMetablockHeader: - result = decodeMetaBlockLength(s, br) - /* Reads 2 - 31 bits. */ - if result != decoderSuccess { - break - } - - if s.is_metadata != 0 || s.is_uncompressed != 0 { - if !bitReaderJumpToByteBoundary(br) { - result = decoderErrorFormatPadding1 - break - } - } - - if s.is_metadata != 0 { - s.state = stateMetadata - break - } - - if s.meta_block_remaining_len == 0 { - s.state = stateMetablockDone - break - } - - calculateRingBufferSize(s) - if s.is_uncompressed != 0 { - s.state = stateUncompressed - break - } - - s.loop_counter = 0 - s.state = stateHuffmanCode0 - - case stateUncompressed: - result = copyUncompressedBlockToOutput(available_out, next_out, nil, s) - if result == decoderSuccess { - s.state = stateMetablockDone - } - - case stateMetadata: - for ; s.meta_block_remaining_len > 0; s.meta_block_remaining_len-- { - var bits uint32 - - /* Read one byte and ignore it. */ - if !safeReadBits(br, 8, &bits) { - result = decoderNeedsMoreInput - break - } - } - - if result == decoderSuccess { - s.state = stateMetablockDone - } - - case stateHuffmanCode0: - if s.loop_counter >= 3 { - s.state = stateMetablockHeader2 - break - } - - /* Reads 1..11 bits. */ - result = decodeVarLenUint8(s, br, &s.num_block_types[s.loop_counter]) - - if result != decoderSuccess { - break - } - - s.num_block_types[s.loop_counter]++ - if s.num_block_types[s.loop_counter] < 2 { - s.loop_counter++ - break - } - - s.state = stateHuffmanCode1 - fallthrough - - case stateHuffmanCode1: - { - var alphabet_size uint32 = s.num_block_types[s.loop_counter] + 2 - var tree_offset int = s.loop_counter * huffmanMaxSize258 - result = readHuffmanCode(alphabet_size, alphabet_size, s.block_type_trees[tree_offset:], nil, s) - if result != decoderSuccess { - break - } - s.state = stateHuffmanCode2 - } - fallthrough - - case stateHuffmanCode2: - { - var alphabet_size uint32 = numBlockLenSymbols - var tree_offset int = s.loop_counter * huffmanMaxSize26 - result = readHuffmanCode(alphabet_size, alphabet_size, s.block_len_trees[tree_offset:], nil, s) - if result != decoderSuccess { - break - } - s.state = stateHuffmanCode3 - } - fallthrough - - case stateHuffmanCode3: - var tree_offset int = s.loop_counter * huffmanMaxSize26 - if !safeReadBlockLength(s, &s.block_length[s.loop_counter], s.block_len_trees[tree_offset:], br) { - result = decoderNeedsMoreInput - break - } - - s.loop_counter++ - s.state = stateHuffmanCode0 - - case stateMetablockHeader2: - { - var bits uint32 - if !safeReadBits(br, 6, &bits) { - result = decoderNeedsMoreInput - break - } - - s.distance_postfix_bits = bits & bitMask(2) - bits >>= 2 - s.num_direct_distance_codes = numDistanceShortCodes + (bits << s.distance_postfix_bits) - s.distance_postfix_mask = int(bitMask(s.distance_postfix_bits)) - s.context_modes = make([]byte, uint(s.num_block_types[0])) - if s.context_modes == nil { - result = decoderErrorAllocContextModes - break - } - - s.loop_counter = 0 - s.state = stateContextModes - } - fallthrough - - case stateContextModes: - result = readContextModes(s) - - if result != decoderSuccess { - break - } - - s.state = stateContextMap1 - fallthrough - - case stateContextMap1: - result = decodeContextMap(s.num_block_types[0]<<literalContextBits, &s.num_literal_htrees, &s.context_map, s) - - if result != decoderSuccess { - break - } - - detectTrivialLiteralBlockTypes(s) - s.state = stateContextMap2 - fallthrough - - case stateContextMap2: - { - var num_direct_codes uint32 = s.num_direct_distance_codes - numDistanceShortCodes - var num_distance_codes uint32 - var max_distance_symbol uint32 - if s.large_window { - num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), largeMaxDistanceBits)) - max_distance_symbol = maxDistanceSymbol(num_direct_codes, s.distance_postfix_bits) - } else { - num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), maxDistanceBits)) - max_distance_symbol = num_distance_codes - } - var allocation_success bool = true - result = decodeContextMap(s.num_block_types[2]<<distanceContextBits, &s.num_dist_htrees, &s.dist_context_map, s) - if result != decoderSuccess { - break - } - - if !decoderHuffmanTreeGroupInit(s, &s.literal_hgroup, numLiteralSymbols, numLiteralSymbols, s.num_literal_htrees) { - allocation_success = false - } - - if !decoderHuffmanTreeGroupInit(s, &s.insert_copy_hgroup, numCommandSymbols, numCommandSymbols, s.num_block_types[1]) { - allocation_success = false - } - - if !decoderHuffmanTreeGroupInit(s, &s.distance_hgroup, num_distance_codes, max_distance_symbol, s.num_dist_htrees) { - allocation_success = false - } - - if !allocation_success { - return saveErrorCode(s, decoderErrorAllocTreeGroups) - } - - s.loop_counter = 0 - s.state = stateTreeGroup - } - fallthrough - - case stateTreeGroup: - var hgroup *huffmanTreeGroup = nil - switch s.loop_counter { - case 0: - hgroup = &s.literal_hgroup - case 1: - hgroup = &s.insert_copy_hgroup - case 2: - hgroup = &s.distance_hgroup - default: - return saveErrorCode(s, decoderErrorUnreachable) - } - - result = huffmanTreeGroupDecode(hgroup, s) - if result != decoderSuccess { - break - } - s.loop_counter++ - if s.loop_counter >= 3 { - prepareLiteralDecoding(s) - s.dist_context_map_slice = s.dist_context_map - s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[0]) - if !ensureRingBuffer(s) { - result = decoderErrorAllocRingBuffer2 - break - } - - s.state = stateCommandBegin - } - - case stateCommandBegin, stateCommandInner, stateCommandPostDecodeLiterals, stateCommandPostWrapCopy: - result = processCommands(s) - - if result == decoderNeedsMoreInput { - result = safeProcessCommands(s) - } - - case stateCommandInnerWrite, stateCommandPostWrite1, stateCommandPostWrite2: - result = writeRingBuffer(s, available_out, next_out, nil, false) - - if result != decoderSuccess { - break - } - - wrapRingBuffer(s) - if s.ringbuffer_size == 1<<s.window_bits { - s.max_distance = s.max_backward_distance - } - - if s.state == stateCommandPostWrite1 { - if s.meta_block_remaining_len == 0 { - /* Next metablock, if any. */ - s.state = stateMetablockDone - } else { - s.state = stateCommandBegin - } - } else if s.state == stateCommandPostWrite2 { - s.state = stateCommandPostWrapCopy /* BROTLI_STATE_COMMAND_INNER_WRITE */ - } else { - if s.loop_counter == 0 { - if s.meta_block_remaining_len == 0 { - s.state = stateMetablockDone - } else { - s.state = stateCommandPostDecodeLiterals - } - - break - } - - s.state = stateCommandInner - } - - case stateMetablockDone: - if s.meta_block_remaining_len < 0 { - result = decoderErrorFormatBlockLength2 - break - } - - decoderStateCleanupAfterMetablock(s) - if s.is_last_metablock == 0 { - s.state = stateMetablockBegin - break - } - - if !bitReaderJumpToByteBoundary(br) { - result = decoderErrorFormatPadding2 - break - } - - if s.buffer_length == 0 { - bitReaderUnload(br) - *available_in = br.input_len - br.byte_pos - *next_in = br.input[br.byte_pos:] - } - - s.state = stateDone - fallthrough - - case stateDone: - if s.ringbuffer != nil { - result = writeRingBuffer(s, available_out, next_out, nil, true) - if result != decoderSuccess { - break - } - } - - return saveErrorCode(s, result) - } - } - - return saveErrorCode(s, result) -} - -func decoderHasMoreOutput(s *Reader) bool { - /* After unrecoverable error remaining output is considered nonsensical. */ - if int(s.error_code) < 0 { - return false - } - - return s.ringbuffer != nil && unwrittenBytes(s, false) != 0 -} - -func decoderGetErrorCode(s *Reader) int { - return int(s.error_code) -} - -func decoderErrorString(c int) string { - switch c { - case decoderNoError: - return "NO_ERROR" - case decoderSuccess: - return "SUCCESS" - case decoderNeedsMoreInput: - return "NEEDS_MORE_INPUT" - case decoderNeedsMoreOutput: - return "NEEDS_MORE_OUTPUT" - case decoderErrorFormatExuberantNibble: - return "EXUBERANT_NIBBLE" - case decoderErrorFormatReserved: - return "RESERVED" - case decoderErrorFormatExuberantMetaNibble: - return "EXUBERANT_META_NIBBLE" - case decoderErrorFormatSimpleHuffmanAlphabet: - return "SIMPLE_HUFFMAN_ALPHABET" - case decoderErrorFormatSimpleHuffmanSame: - return "SIMPLE_HUFFMAN_SAME" - case decoderErrorFormatClSpace: - return "CL_SPACE" - case decoderErrorFormatHuffmanSpace: - return "HUFFMAN_SPACE" - case decoderErrorFormatContextMapRepeat: - return "CONTEXT_MAP_REPEAT" - case decoderErrorFormatBlockLength1: - return "BLOCK_LENGTH_1" - case decoderErrorFormatBlockLength2: - return "BLOCK_LENGTH_2" - case decoderErrorFormatTransform: - return "TRANSFORM" - case decoderErrorFormatDictionary: - return "DICTIONARY" - case decoderErrorFormatWindowBits: - return "WINDOW_BITS" - case decoderErrorFormatPadding1: - return "PADDING_1" - case decoderErrorFormatPadding2: - return "PADDING_2" - case decoderErrorFormatDistance: - return "DISTANCE" - case decoderErrorDictionaryNotSet: - return "DICTIONARY_NOT_SET" - case decoderErrorInvalidArguments: - return "INVALID_ARGUMENTS" - case decoderErrorAllocContextModes: - return "CONTEXT_MODES" - case decoderErrorAllocTreeGroups: - return "TREE_GROUPS" - case decoderErrorAllocContextMap: - return "CONTEXT_MAP" - case decoderErrorAllocRingBuffer1: - return "RING_BUFFER_1" - case decoderErrorAllocRingBuffer2: - return "RING_BUFFER_2" - case decoderErrorAllocBlockTypeTrees: - return "BLOCK_TYPE_TREES" - case decoderErrorUnreachable: - return "UNREACHABLE" - default: - return "INVALID" - } -} diff --git a/vendor/github.com/andybalholm/brotli/dictionary.go b/vendor/github.com/andybalholm/brotli/dictionary.go deleted file mode 100644 index 79148c9..0000000 --- a/vendor/github.com/andybalholm/brotli/dictionary.go +++ /dev/null @@ -1,122890 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Collection of static dictionary words. */ -type dictionary struct { - size_bits_by_length [32]byte - offsets_by_length [32]uint32 - data_size uint - data []byte -} - -const minDictionaryWordLength = 4 - -const maxDictionaryWordLength = 24 - -var kBrotliDictionaryData = []byte{ - 116, - 105, - 109, - 101, - 100, - 111, - 119, - 110, - 108, - 105, - 102, - 101, - 108, - 101, - 102, - 116, - 98, - 97, - 99, - 107, - 99, - 111, - 100, - 101, - 100, - 97, - 116, - 97, - 115, - 104, - 111, - 119, - 111, - 110, - 108, - 121, - 115, - 105, - 116, - 101, - 99, - 105, - 116, - 121, - 111, - 112, - 101, - 110, - 106, - 117, - 115, - 116, - 108, - 105, - 107, - 101, - 102, - 114, - 101, - 101, - 119, - 111, - 114, - 107, - 116, - 101, - 120, - 116, - 121, - 101, - 97, - 114, - 111, - 118, - 101, - 114, - 98, - 111, - 100, - 121, - 108, - 111, - 118, - 101, - 102, - 111, - 114, - 109, - 98, - 111, - 111, - 107, - 112, - 108, - 97, - 121, - 108, - 105, - 118, - 101, - 108, - 105, - 110, - 101, - 104, - 101, - 108, - 112, - 104, - 111, - 109, - 101, - 115, - 105, - 100, - 101, - 109, - 111, - 114, - 101, - 119, - 111, - 114, - 100, - 108, - 111, - 110, - 103, - 116, - 104, - 101, - 109, - 118, - 105, - 101, - 119, - 102, - 105, - 110, - 100, - 112, - 97, - 103, - 101, - 100, - 97, - 121, - 115, - 102, - 117, - 108, - 108, - 104, - 101, - 97, - 100, - 116, - 101, - 114, - 109, - 101, - 97, - 99, - 104, - 97, - 114, - 101, - 97, - 102, - 114, - 111, - 109, - 116, - 114, - 117, - 101, - 109, - 97, - 114, - 107, - 97, - 98, - 108, - 101, - 117, - 112, - 111, - 110, - 104, - 105, - 103, - 104, - 100, - 97, - 116, - 101, - 108, - 97, - 110, - 100, - 110, - 101, - 119, - 115, - 101, - 118, - 101, - 110, - 110, - 101, - 120, - 116, - 99, - 97, - 115, - 101, - 98, - 111, - 116, - 104, - 112, - 111, - 115, - 116, - 117, - 115, - 101, - 100, - 109, - 97, - 100, - 101, - 104, - 97, - 110, - 100, - 104, - 101, - 114, - 101, - 119, - 104, - 97, - 116, - 110, - 97, - 109, - 101, - 76, - 105, - 110, - 107, - 98, - 108, - 111, - 103, - 115, - 105, - 122, - 101, - 98, - 97, - 115, - 101, - 104, - 101, - 108, - 100, - 109, - 97, - 107, - 101, - 109, - 97, - 105, - 110, - 117, - 115, - 101, - 114, - 39, - 41, - 32, - 43, - 104, - 111, - 108, - 100, - 101, - 110, - 100, - 115, - 119, - 105, - 116, - 104, - 78, - 101, - 119, - 115, - 114, - 101, - 97, - 100, - 119, - 101, - 114, - 101, - 115, - 105, - 103, - 110, - 116, - 97, - 107, - 101, - 104, - 97, - 118, - 101, - 103, - 97, - 109, - 101, - 115, - 101, - 101, - 110, - 99, - 97, - 108, - 108, - 112, - 97, - 116, - 104, - 119, - 101, - 108, - 108, - 112, - 108, - 117, - 115, - 109, - 101, - 110, - 117, - 102, - 105, - 108, - 109, - 112, - 97, - 114, - 116, - 106, - 111, - 105, - 110, - 116, - 104, - 105, - 115, - 108, - 105, - 115, - 116, - 103, - 111, - 111, - 100, - 110, - 101, - 101, - 100, - 119, - 97, - 121, - 115, - 119, - 101, - 115, - 116, - 106, - 111, - 98, - 115, - 109, - 105, - 110, - 100, - 97, - 108, - 115, - 111, - 108, - 111, - 103, - 111, - 114, - 105, - 99, - 104, - 117, - 115, - 101, - 115, - 108, - 97, - 115, - 116, - 116, - 101, - 97, - 109, - 97, - 114, - 109, - 121, - 102, - 111, - 111, - 100, - 107, - 105, - 110, - 103, - 119, - 105, - 108, - 108, - 101, - 97, - 115, - 116, - 119, - 97, - 114, - 100, - 98, - 101, - 115, - 116, - 102, - 105, - 114, - 101, - 80, - 97, - 103, - 101, - 107, - 110, - 111, - 119, - 97, - 119, - 97, - 121, - 46, - 112, - 110, - 103, - 109, - 111, - 118, - 101, - 116, - 104, - 97, - 110, - 108, - 111, - 97, - 100, - 103, - 105, - 118, - 101, - 115, - 101, - 108, - 102, - 110, - 111, - 116, - 101, - 109, - 117, - 99, - 104, - 102, - 101, - 101, - 100, - 109, - 97, - 110, - 121, - 114, - 111, - 99, - 107, - 105, - 99, - 111, - 110, - 111, - 110, - 99, - 101, - 108, - 111, - 111, - 107, - 104, - 105, - 100, - 101, - 100, - 105, - 101, - 100, - 72, - 111, - 109, - 101, - 114, - 117, - 108, - 101, - 104, - 111, - 115, - 116, - 97, - 106, - 97, - 120, - 105, - 110, - 102, - 111, - 99, - 108, - 117, - 98, - 108, - 97, - 119, - 115, - 108, - 101, - 115, - 115, - 104, - 97, - 108, - 102, - 115, - 111, - 109, - 101, - 115, - 117, - 99, - 104, - 122, - 111, - 110, - 101, - 49, - 48, - 48, - 37, - 111, - 110, - 101, - 115, - 99, - 97, - 114, - 101, - 84, - 105, - 109, - 101, - 114, - 97, - 99, - 101, - 98, - 108, - 117, - 101, - 102, - 111, - 117, - 114, - 119, - 101, - 101, - 107, - 102, - 97, - 99, - 101, - 104, - 111, - 112, - 101, - 103, - 97, - 118, - 101, - 104, - 97, - 114, - 100, - 108, - 111, - 115, - 116, - 119, - 104, - 101, - 110, - 112, - 97, - 114, - 107, - 107, - 101, - 112, - 116, - 112, - 97, - 115, - 115, - 115, - 104, - 105, - 112, - 114, - 111, - 111, - 109, - 72, - 84, - 77, - 76, - 112, - 108, - 97, - 110, - 84, - 121, - 112, - 101, - 100, - 111, - 110, - 101, - 115, - 97, - 118, - 101, - 107, - 101, - 101, - 112, - 102, - 108, - 97, - 103, - 108, - 105, - 110, - 107, - 115, - 111, - 108, - 100, - 102, - 105, - 118, - 101, - 116, - 111, - 111, - 107, - 114, - 97, - 116, - 101, - 116, - 111, - 119, - 110, - 106, - 117, - 109, - 112, - 116, - 104, - 117, - 115, - 100, - 97, - 114, - 107, - 99, - 97, - 114, - 100, - 102, - 105, - 108, - 101, - 102, - 101, - 97, - 114, - 115, - 116, - 97, - 121, - 107, - 105, - 108, - 108, - 116, - 104, - 97, - 116, - 102, - 97, - 108, - 108, - 97, - 117, - 116, - 111, - 101, - 118, - 101, - 114, - 46, - 99, - 111, - 109, - 116, - 97, - 108, - 107, - 115, - 104, - 111, - 112, - 118, - 111, - 116, - 101, - 100, - 101, - 101, - 112, - 109, - 111, - 100, - 101, - 114, - 101, - 115, - 116, - 116, - 117, - 114, - 110, - 98, - 111, - 114, - 110, - 98, - 97, - 110, - 100, - 102, - 101, - 108, - 108, - 114, - 111, - 115, - 101, - 117, - 114, - 108, - 40, - 115, - 107, - 105, - 110, - 114, - 111, - 108, - 101, - 99, - 111, - 109, - 101, - 97, - 99, - 116, - 115, - 97, - 103, - 101, - 115, - 109, - 101, - 101, - 116, - 103, - 111, - 108, - 100, - 46, - 106, - 112, - 103, - 105, - 116, - 101, - 109, - 118, - 97, - 114, - 121, - 102, - 101, - 108, - 116, - 116, - 104, - 101, - 110, - 115, - 101, - 110, - 100, - 100, - 114, - 111, - 112, - 86, - 105, - 101, - 119, - 99, - 111, - 112, - 121, - 49, - 46, - 48, - 34, - 60, - 47, - 97, - 62, - 115, - 116, - 111, - 112, - 101, - 108, - 115, - 101, - 108, - 105, - 101, - 115, - 116, - 111, - 117, - 114, - 112, - 97, - 99, - 107, - 46, - 103, - 105, - 102, - 112, - 97, - 115, - 116, - 99, - 115, - 115, - 63, - 103, - 114, - 97, - 121, - 109, - 101, - 97, - 110, - 38, - 103, - 116, - 59, - 114, - 105, - 100, - 101, - 115, - 104, - 111, - 116, - 108, - 97, - 116, - 101, - 115, - 97, - 105, - 100, - 114, - 111, - 97, - 100, - 118, - 97, - 114, - 32, - 102, - 101, - 101, - 108, - 106, - 111, - 104, - 110, - 114, - 105, - 99, - 107, - 112, - 111, - 114, - 116, - 102, - 97, - 115, - 116, - 39, - 85, - 65, - 45, - 100, - 101, - 97, - 100, - 60, - 47, - 98, - 62, - 112, - 111, - 111, - 114, - 98, - 105, - 108, - 108, - 116, - 121, - 112, - 101, - 85, - 46, - 83, - 46, - 119, - 111, - 111, - 100, - 109, - 117, - 115, - 116, - 50, - 112, - 120, - 59, - 73, - 110, - 102, - 111, - 114, - 97, - 110, - 107, - 119, - 105, - 100, - 101, - 119, - 97, - 110, - 116, - 119, - 97, - 108, - 108, - 108, - 101, - 97, - 100, - 91, - 48, - 93, - 59, - 112, - 97, - 117, - 108, - 119, - 97, - 118, - 101, - 115, - 117, - 114, - 101, - 36, - 40, - 39, - 35, - 119, - 97, - 105, - 116, - 109, - 97, - 115, - 115, - 97, - 114, - 109, - 115, - 103, - 111, - 101, - 115, - 103, - 97, - 105, - 110, - 108, - 97, - 110, - 103, - 112, - 97, - 105, - 100, - 33, - 45, - 45, - 32, - 108, - 111, - 99, - 107, - 117, - 110, - 105, - 116, - 114, - 111, - 111, - 116, - 119, - 97, - 108, - 107, - 102, - 105, - 114, - 109, - 119, - 105, - 102, - 101, - 120, - 109, - 108, - 34, - 115, - 111, - 110, - 103, - 116, - 101, - 115, - 116, - 50, - 48, - 112, - 120, - 107, - 105, - 110, - 100, - 114, - 111, - 119, - 115, - 116, - 111, - 111, - 108, - 102, - 111, - 110, - 116, - 109, - 97, - 105, - 108, - 115, - 97, - 102, - 101, - 115, - 116, - 97, - 114, - 109, - 97, - 112, - 115, - 99, - 111, - 114, - 101, - 114, - 97, - 105, - 110, - 102, - 108, - 111, - 119, - 98, - 97, - 98, - 121, - 115, - 112, - 97, - 110, - 115, - 97, - 121, - 115, - 52, - 112, - 120, - 59, - 54, - 112, - 120, - 59, - 97, - 114, - 116, - 115, - 102, - 111, - 111, - 116, - 114, - 101, - 97, - 108, - 119, - 105, - 107, - 105, - 104, - 101, - 97, - 116, - 115, - 116, - 101, - 112, - 116, - 114, - 105, - 112, - 111, - 114, - 103, - 47, - 108, - 97, - 107, - 101, - 119, - 101, - 97, - 107, - 116, - 111, - 108, - 100, - 70, - 111, - 114, - 109, - 99, - 97, - 115, - 116, - 102, - 97, - 110, - 115, - 98, - 97, - 110, - 107, - 118, - 101, - 114, - 121, - 114, - 117, - 110, - 115, - 106, - 117, - 108, - 121, - 116, - 97, - 115, - 107, - 49, - 112, - 120, - 59, - 103, - 111, - 97, - 108, - 103, - 114, - 101, - 119, - 115, - 108, - 111, - 119, - 101, - 100, - 103, - 101, - 105, - 100, - 61, - 34, - 115, - 101, - 116, - 115, - 53, - 112, - 120, - 59, - 46, - 106, - 115, - 63, - 52, - 48, - 112, - 120, - 105, - 102, - 32, - 40, - 115, - 111, - 111, - 110, - 115, - 101, - 97, - 116, - 110, - 111, - 110, - 101, - 116, - 117, - 98, - 101, - 122, - 101, - 114, - 111, - 115, - 101, - 110, - 116, - 114, - 101, - 101, - 100, - 102, - 97, - 99, - 116, - 105, - 110, - 116, - 111, - 103, - 105, - 102, - 116, - 104, - 97, - 114, - 109, - 49, - 56, - 112, - 120, - 99, - 97, - 109, - 101, - 104, - 105, - 108, - 108, - 98, - 111, - 108, - 100, - 122, - 111, - 111, - 109, - 118, - 111, - 105, - 100, - 101, - 97, - 115, - 121, - 114, - 105, - 110, - 103, - 102, - 105, - 108, - 108, - 112, - 101, - 97, - 107, - 105, - 110, - 105, - 116, - 99, - 111, - 115, - 116, - 51, - 112, - 120, - 59, - 106, - 97, - 99, - 107, - 116, - 97, - 103, - 115, - 98, - 105, - 116, - 115, - 114, - 111, - 108, - 108, - 101, - 100, - 105, - 116, - 107, - 110, - 101, - 119, - 110, - 101, - 97, - 114, - 60, - 33, - 45, - 45, - 103, - 114, - 111, - 119, - 74, - 83, - 79, - 78, - 100, - 117, - 116, - 121, - 78, - 97, - 109, - 101, - 115, - 97, - 108, - 101, - 121, - 111, - 117, - 32, - 108, - 111, - 116, - 115, - 112, - 97, - 105, - 110, - 106, - 97, - 122, - 122, - 99, - 111, - 108, - 100, - 101, - 121, - 101, - 115, - 102, - 105, - 115, - 104, - 119, - 119, - 119, - 46, - 114, - 105, - 115, - 107, - 116, - 97, - 98, - 115, - 112, - 114, - 101, - 118, - 49, - 48, - 112, - 120, - 114, - 105, - 115, - 101, - 50, - 53, - 112, - 120, - 66, - 108, - 117, - 101, - 100, - 105, - 110, - 103, - 51, - 48, - 48, - 44, - 98, - 97, - 108, - 108, - 102, - 111, - 114, - 100, - 101, - 97, - 114, - 110, - 119, - 105, - 108, - 100, - 98, - 111, - 120, - 46, - 102, - 97, - 105, - 114, - 108, - 97, - 99, - 107, - 118, - 101, - 114, - 115, - 112, - 97, - 105, - 114, - 106, - 117, - 110, - 101, - 116, - 101, - 99, - 104, - 105, - 102, - 40, - 33, - 112, - 105, - 99, - 107, - 101, - 118, - 105, - 108, - 36, - 40, - 34, - 35, - 119, - 97, - 114, - 109, - 108, - 111, - 114, - 100, - 100, - 111, - 101, - 115, - 112, - 117, - 108, - 108, - 44, - 48, - 48, - 48, - 105, - 100, - 101, - 97, - 100, - 114, - 97, - 119, - 104, - 117, - 103, - 101, - 115, - 112, - 111, - 116, - 102, - 117, - 110, - 100, - 98, - 117, - 114, - 110, - 104, - 114, - 101, - 102, - 99, - 101, - 108, - 108, - 107, - 101, - 121, - 115, - 116, - 105, - 99, - 107, - 104, - 111, - 117, - 114, - 108, - 111, - 115, - 115, - 102, - 117, - 101, - 108, - 49, - 50, - 112, - 120, - 115, - 117, - 105, - 116, - 100, - 101, - 97, - 108, - 82, - 83, - 83, - 34, - 97, - 103, - 101, - 100, - 103, - 114, - 101, - 121, - 71, - 69, - 84, - 34, - 101, - 97, - 115, - 101, - 97, - 105, - 109, - 115, - 103, - 105, - 114, - 108, - 97, - 105, - 100, - 115, - 56, - 112, - 120, - 59, - 110, - 97, - 118, - 121, - 103, - 114, - 105, - 100, - 116, - 105, - 112, - 115, - 35, - 57, - 57, - 57, - 119, - 97, - 114, - 115, - 108, - 97, - 100, - 121, - 99, - 97, - 114, - 115, - 41, - 59, - 32, - 125, - 112, - 104, - 112, - 63, - 104, - 101, - 108, - 108, - 116, - 97, - 108, - 108, - 119, - 104, - 111, - 109, - 122, - 104, - 58, - 229, - 42, - 47, - 13, - 10, - 32, - 49, - 48, - 48, - 104, - 97, - 108, - 108, - 46, - 10, - 10, - 65, - 55, - 112, - 120, - 59, - 112, - 117, - 115, - 104, - 99, - 104, - 97, - 116, - 48, - 112, - 120, - 59, - 99, - 114, - 101, - 119, - 42, - 47, - 60, - 47, - 104, - 97, - 115, - 104, - 55, - 53, - 112, - 120, - 102, - 108, - 97, - 116, - 114, - 97, - 114, - 101, - 32, - 38, - 38, - 32, - 116, - 101, - 108, - 108, - 99, - 97, - 109, - 112, - 111, - 110, - 116, - 111, - 108, - 97, - 105, - 100, - 109, - 105, - 115, - 115, - 115, - 107, - 105, - 112, - 116, - 101, - 110, - 116, - 102, - 105, - 110, - 101, - 109, - 97, - 108, - 101, - 103, - 101, - 116, - 115, - 112, - 108, - 111, - 116, - 52, - 48, - 48, - 44, - 13, - 10, - 13, - 10, - 99, - 111, - 111, - 108, - 102, - 101, - 101, - 116, - 46, - 112, - 104, - 112, - 60, - 98, - 114, - 62, - 101, - 114, - 105, - 99, - 109, - 111, - 115, - 116, - 103, - 117, - 105, - 100, - 98, - 101, - 108, - 108, - 100, - 101, - 115, - 99, - 104, - 97, - 105, - 114, - 109, - 97, - 116, - 104, - 97, - 116, - 111, - 109, - 47, - 105, - 109, - 103, - 38, - 35, - 56, - 50, - 108, - 117, - 99, - 107, - 99, - 101, - 110, - 116, - 48, - 48, - 48, - 59, - 116, - 105, - 110, - 121, - 103, - 111, - 110, - 101, - 104, - 116, - 109, - 108, - 115, - 101, - 108, - 108, - 100, - 114, - 117, - 103, - 70, - 82, - 69, - 69, - 110, - 111, - 100, - 101, - 110, - 105, - 99, - 107, - 63, - 105, - 100, - 61, - 108, - 111, - 115, - 101, - 110, - 117, - 108, - 108, - 118, - 97, - 115, - 116, - 119, - 105, - 110, - 100, - 82, - 83, - 83, - 32, - 119, - 101, - 97, - 114, - 114, - 101, - 108, - 121, - 98, - 101, - 101, - 110, - 115, - 97, - 109, - 101, - 100, - 117, - 107, - 101, - 110, - 97, - 115, - 97, - 99, - 97, - 112, - 101, - 119, - 105, - 115, - 104, - 103, - 117, - 108, - 102, - 84, - 50, - 51, - 58, - 104, - 105, - 116, - 115, - 115, - 108, - 111, - 116, - 103, - 97, - 116, - 101, - 107, - 105, - 99, - 107, - 98, - 108, - 117, - 114, - 116, - 104, - 101, - 121, - 49, - 53, - 112, - 120, - 39, - 39, - 41, - 59, - 41, - 59, - 34, - 62, - 109, - 115, - 105, - 101, - 119, - 105, - 110, - 115, - 98, - 105, - 114, - 100, - 115, - 111, - 114, - 116, - 98, - 101, - 116, - 97, - 115, - 101, - 101, - 107, - 84, - 49, - 56, - 58, - 111, - 114, - 100, - 115, - 116, - 114, - 101, - 101, - 109, - 97, - 108, - 108, - 54, - 48, - 112, - 120, - 102, - 97, - 114, - 109, - 226, - 128, - 153, - 115, - 98, - 111, - 121, - 115, - 91, - 48, - 93, - 46, - 39, - 41, - 59, - 34, - 80, - 79, - 83, - 84, - 98, - 101, - 97, - 114, - 107, - 105, - 100, - 115, - 41, - 59, - 125, - 125, - 109, - 97, - 114, - 121, - 116, - 101, - 110, - 100, - 40, - 85, - 75, - 41, - 113, - 117, - 97, - 100, - 122, - 104, - 58, - 230, - 45, - 115, - 105, - 122, - 45, - 45, - 45, - 45, - 112, - 114, - 111, - 112, - 39, - 41, - 59, - 13, - 108, - 105, - 102, - 116, - 84, - 49, - 57, - 58, - 118, - 105, - 99, - 101, - 97, - 110, - 100, - 121, - 100, - 101, - 98, - 116, - 62, - 82, - 83, - 83, - 112, - 111, - 111, - 108, - 110, - 101, - 99, - 107, - 98, - 108, - 111, - 119, - 84, - 49, - 54, - 58, - 100, - 111, - 111, - 114, - 101, - 118, - 97, - 108, - 84, - 49, - 55, - 58, - 108, - 101, - 116, - 115, - 102, - 97, - 105, - 108, - 111, - 114, - 97, - 108, - 112, - 111, - 108, - 108, - 110, - 111, - 118, - 97, - 99, - 111, - 108, - 115, - 103, - 101, - 110, - 101, - 32, - 226, - 128, - 148, - 115, - 111, - 102, - 116, - 114, - 111, - 109, - 101, - 116, - 105, - 108, - 108, - 114, - 111, - 115, - 115, - 60, - 104, - 51, - 62, - 112, - 111, - 117, - 114, - 102, - 97, - 100, - 101, - 112, - 105, - 110, - 107, - 60, - 116, - 114, - 62, - 109, - 105, - 110, - 105, - 41, - 124, - 33, - 40, - 109, - 105, - 110, - 101, - 122, - 104, - 58, - 232, - 98, - 97, - 114, - 115, - 104, - 101, - 97, - 114, - 48, - 48, - 41, - 59, - 109, - 105, - 108, - 107, - 32, - 45, - 45, - 62, - 105, - 114, - 111, - 110, - 102, - 114, - 101, - 100, - 100, - 105, - 115, - 107, - 119, - 101, - 110, - 116, - 115, - 111, - 105, - 108, - 112, - 117, - 116, - 115, - 47, - 106, - 115, - 47, - 104, - 111, - 108, - 121, - 84, - 50, - 50, - 58, - 73, - 83, - 66, - 78, - 84, - 50, - 48, - 58, - 97, - 100, - 97, - 109, - 115, - 101, - 101, - 115, - 60, - 104, - 50, - 62, - 106, - 115, - 111, - 110, - 39, - 44, - 32, - 39, - 99, - 111, - 110, - 116, - 84, - 50, - 49, - 58, - 32, - 82, - 83, - 83, - 108, - 111, - 111, - 112, - 97, - 115, - 105, - 97, - 109, - 111, - 111, - 110, - 60, - 47, - 112, - 62, - 115, - 111, - 117, - 108, - 76, - 73, - 78, - 69, - 102, - 111, - 114, - 116, - 99, - 97, - 114, - 116, - 84, - 49, - 52, - 58, - 60, - 104, - 49, - 62, - 56, - 48, - 112, - 120, - 33, - 45, - 45, - 60, - 57, - 112, - 120, - 59, - 84, - 48, - 52, - 58, - 109, - 105, - 107, - 101, - 58, - 52, - 54, - 90, - 110, - 105, - 99, - 101, - 105, - 110, - 99, - 104, - 89, - 111, - 114, - 107, - 114, - 105, - 99, - 101, - 122, - 104, - 58, - 228, - 39, - 41, - 41, - 59, - 112, - 117, - 114, - 101, - 109, - 97, - 103, - 101, - 112, - 97, - 114, - 97, - 116, - 111, - 110, - 101, - 98, - 111, - 110, - 100, - 58, - 51, - 55, - 90, - 95, - 111, - 102, - 95, - 39, - 93, - 41, - 59, - 48, - 48, - 48, - 44, - 122, - 104, - 58, - 231, - 116, - 97, - 110, - 107, - 121, - 97, - 114, - 100, - 98, - 111, - 119, - 108, - 98, - 117, - 115, - 104, - 58, - 53, - 54, - 90, - 74, - 97, - 118, - 97, - 51, - 48, - 112, - 120, - 10, - 124, - 125, - 10, - 37, - 67, - 51, - 37, - 58, - 51, - 52, - 90, - 106, - 101, - 102, - 102, - 69, - 88, - 80, - 73, - 99, - 97, - 115, - 104, - 118, - 105, - 115, - 97, - 103, - 111, - 108, - 102, - 115, - 110, - 111, - 119, - 122, - 104, - 58, - 233, - 113, - 117, - 101, - 114, - 46, - 99, - 115, - 115, - 115, - 105, - 99, - 107, - 109, - 101, - 97, - 116, - 109, - 105, - 110, - 46, - 98, - 105, - 110, - 100, - 100, - 101, - 108, - 108, - 104, - 105, - 114, - 101, - 112, - 105, - 99, - 115, - 114, - 101, - 110, - 116, - 58, - 51, - 54, - 90, - 72, - 84, - 84, - 80, - 45, - 50, - 48, - 49, - 102, - 111, - 116, - 111, - 119, - 111, - 108, - 102, - 69, - 78, - 68, - 32, - 120, - 98, - 111, - 120, - 58, - 53, - 52, - 90, - 66, - 79, - 68, - 89, - 100, - 105, - 99, - 107, - 59, - 10, - 125, - 10, - 101, - 120, - 105, - 116, - 58, - 51, - 53, - 90, - 118, - 97, - 114, - 115, - 98, - 101, - 97, - 116, - 39, - 125, - 41, - 59, - 100, - 105, - 101, - 116, - 57, - 57, - 57, - 59, - 97, - 110, - 110, - 101, - 125, - 125, - 60, - 47, - 91, - 105, - 93, - 46, - 76, - 97, - 110, - 103, - 107, - 109, - 194, - 178, - 119, - 105, - 114, - 101, - 116, - 111, - 121, - 115, - 97, - 100, - 100, - 115, - 115, - 101, - 97, - 108, - 97, - 108, - 101, - 120, - 59, - 10, - 9, - 125, - 101, - 99, - 104, - 111, - 110, - 105, - 110, - 101, - 46, - 111, - 114, - 103, - 48, - 48, - 53, - 41, - 116, - 111, - 110, - 121, - 106, - 101, - 119, - 115, - 115, - 97, - 110, - 100, - 108, - 101, - 103, - 115, - 114, - 111, - 111, - 102, - 48, - 48, - 48, - 41, - 32, - 50, - 48, - 48, - 119, - 105, - 110, - 101, - 103, - 101, - 97, - 114, - 100, - 111, - 103, - 115, - 98, - 111, - 111, - 116, - 103, - 97, - 114, - 121, - 99, - 117, - 116, - 115, - 116, - 121, - 108, - 101, - 116, - 101, - 109, - 112, - 116, - 105, - 111, - 110, - 46, - 120, - 109, - 108, - 99, - 111, - 99, - 107, - 103, - 97, - 110, - 103, - 36, - 40, - 39, - 46, - 53, - 48, - 112, - 120, - 80, - 104, - 46, - 68, - 109, - 105, - 115, - 99, - 97, - 108, - 97, - 110, - 108, - 111, - 97, - 110, - 100, - 101, - 115, - 107, - 109, - 105, - 108, - 101, - 114, - 121, - 97, - 110, - 117, - 110, - 105, - 120, - 100, - 105, - 115, - 99, - 41, - 59, - 125, - 10, - 100, - 117, - 115, - 116, - 99, - 108, - 105, - 112, - 41, - 46, - 10, - 10, - 55, - 48, - 112, - 120, - 45, - 50, - 48, - 48, - 68, - 86, - 68, - 115, - 55, - 93, - 62, - 60, - 116, - 97, - 112, - 101, - 100, - 101, - 109, - 111, - 105, - 43, - 43, - 41, - 119, - 97, - 103, - 101, - 101, - 117, - 114, - 111, - 112, - 104, - 105, - 108, - 111, - 112, - 116, - 115, - 104, - 111, - 108, - 101, - 70, - 65, - 81, - 115, - 97, - 115, - 105, - 110, - 45, - 50, - 54, - 84, - 108, - 97, - 98, - 115, - 112, - 101, - 116, - 115, - 85, - 82, - 76, - 32, - 98, - 117, - 108, - 107, - 99, - 111, - 111, - 107, - 59, - 125, - 13, - 10, - 72, - 69, - 65, - 68, - 91, - 48, - 93, - 41, - 97, - 98, - 98, - 114, - 106, - 117, - 97, - 110, - 40, - 49, - 57, - 56, - 108, - 101, - 115, - 104, - 116, - 119, - 105, - 110, - 60, - 47, - 105, - 62, - 115, - 111, - 110, - 121, - 103, - 117, - 121, - 115, - 102, - 117, - 99, - 107, - 112, - 105, - 112, - 101, - 124, - 45, - 10, - 33, - 48, - 48, - 50, - 41, - 110, - 100, - 111, - 119, - 91, - 49, - 93, - 59, - 91, - 93, - 59, - 10, - 76, - 111, - 103, - 32, - 115, - 97, - 108, - 116, - 13, - 10, - 9, - 9, - 98, - 97, - 110, - 103, - 116, - 114, - 105, - 109, - 98, - 97, - 116, - 104, - 41, - 123, - 13, - 10, - 48, - 48, - 112, - 120, - 10, - 125, - 41, - 59, - 107, - 111, - 58, - 236, - 102, - 101, - 101, - 115, - 97, - 100, - 62, - 13, - 115, - 58, - 47, - 47, - 32, - 91, - 93, - 59, - 116, - 111, - 108, - 108, - 112, - 108, - 117, - 103, - 40, - 41, - 123, - 10, - 123, - 13, - 10, - 32, - 46, - 106, - 115, - 39, - 50, - 48, - 48, - 112, - 100, - 117, - 97, - 108, - 98, - 111, - 97, - 116, - 46, - 74, - 80, - 71, - 41, - 59, - 10, - 125, - 113, - 117, - 111, - 116, - 41, - 59, - 10, - 10, - 39, - 41, - 59, - 10, - 13, - 10, - 125, - 13, - 50, - 48, - 49, - 52, - 50, - 48, - 49, - 53, - 50, - 48, - 49, - 54, - 50, - 48, - 49, - 55, - 50, - 48, - 49, - 56, - 50, - 48, - 49, - 57, - 50, - 48, - 50, - 48, - 50, - 48, - 50, - 49, - 50, - 48, - 50, - 50, - 50, - 48, - 50, - 51, - 50, - 48, - 50, - 52, - 50, - 48, - 50, - 53, - 50, - 48, - 50, - 54, - 50, - 48, - 50, - 55, - 50, - 48, - 50, - 56, - 50, - 48, - 50, - 57, - 50, - 48, - 51, - 48, - 50, - 48, - 51, - 49, - 50, - 48, - 51, - 50, - 50, - 48, - 51, - 51, - 50, - 48, - 51, - 52, - 50, - 48, - 51, - 53, - 50, - 48, - 51, - 54, - 50, - 48, - 51, - 55, - 50, - 48, - 49, - 51, - 50, - 48, - 49, - 50, - 50, - 48, - 49, - 49, - 50, - 48, - 49, - 48, - 50, - 48, - 48, - 57, - 50, - 48, - 48, - 56, - 50, - 48, - 48, - 55, - 50, - 48, - 48, - 54, - 50, - 48, - 48, - 53, - 50, - 48, - 48, - 52, - 50, - 48, - 48, - 51, - 50, - 48, - 48, - 50, - 50, - 48, - 48, - 49, - 50, - 48, - 48, - 48, - 49, - 57, - 57, - 57, - 49, - 57, - 57, - 56, - 49, - 57, - 57, - 55, - 49, - 57, - 57, - 54, - 49, - 57, - 57, - 53, - 49, - 57, - 57, - 52, - 49, - 57, - 57, - 51, - 49, - 57, - 57, - 50, - 49, - 57, - 57, - 49, - 49, - 57, - 57, - 48, - 49, - 57, - 56, - 57, - 49, - 57, - 56, - 56, - 49, - 57, - 56, - 55, - 49, - 57, - 56, - 54, - 49, - 57, - 56, - 53, - 49, - 57, - 56, - 52, - 49, - 57, - 56, - 51, - 49, - 57, - 56, - 50, - 49, - 57, - 56, - 49, - 49, - 57, - 56, - 48, - 49, - 57, - 55, - 57, - 49, - 57, - 55, - 56, - 49, - 57, - 55, - 55, - 49, - 57, - 55, - 54, - 49, - 57, - 55, - 53, - 49, - 57, - 55, - 52, - 49, - 57, - 55, - 51, - 49, - 57, - 55, - 50, - 49, - 57, - 55, - 49, - 49, - 57, - 55, - 48, - 49, - 57, - 54, - 57, - 49, - 57, - 54, - 56, - 49, - 57, - 54, - 55, - 49, - 57, - 54, - 54, - 49, - 57, - 54, - 53, - 49, - 57, - 54, - 52, - 49, - 57, - 54, - 51, - 49, - 57, - 54, - 50, - 49, - 57, - 54, - 49, - 49, - 57, - 54, - 48, - 49, - 57, - 53, - 57, - 49, - 57, - 53, - 56, - 49, - 57, - 53, - 55, - 49, - 57, - 53, - 54, - 49, - 57, - 53, - 53, - 49, - 57, - 53, - 52, - 49, - 57, - 53, - 51, - 49, - 57, - 53, - 50, - 49, - 57, - 53, - 49, - 49, - 57, - 53, - 48, - 49, - 48, - 48, - 48, - 49, - 48, - 50, - 52, - 49, - 51, - 57, - 52, - 48, - 48, - 48, - 48, - 57, - 57, - 57, - 57, - 99, - 111, - 109, - 111, - 109, - 195, - 161, - 115, - 101, - 115, - 116, - 101, - 101, - 115, - 116, - 97, - 112, - 101, - 114, - 111, - 116, - 111, - 100, - 111, - 104, - 97, - 99, - 101, - 99, - 97, - 100, - 97, - 97, - 195, - 177, - 111, - 98, - 105, - 101, - 110, - 100, - 195, - 173, - 97, - 97, - 115, - 195, - 173, - 118, - 105, - 100, - 97, - 99, - 97, - 115, - 111, - 111, - 116, - 114, - 111, - 102, - 111, - 114, - 111, - 115, - 111, - 108, - 111, - 111, - 116, - 114, - 97, - 99, - 117, - 97, - 108, - 100, - 105, - 106, - 111, - 115, - 105, - 100, - 111, - 103, - 114, - 97, - 110, - 116, - 105, - 112, - 111, - 116, - 101, - 109, - 97, - 100, - 101, - 98, - 101, - 97, - 108, - 103, - 111, - 113, - 117, - 195, - 169, - 101, - 115, - 116, - 111, - 110, - 97, - 100, - 97, - 116, - 114, - 101, - 115, - 112, - 111, - 99, - 111, - 99, - 97, - 115, - 97, - 98, - 97, - 106, - 111, - 116, - 111, - 100, - 97, - 115, - 105, - 110, - 111, - 97, - 103, - 117, - 97, - 112, - 117, - 101, - 115, - 117, - 110, - 111, - 115, - 97, - 110, - 116, - 101, - 100, - 105, - 99, - 101, - 108, - 117, - 105, - 115, - 101, - 108, - 108, - 97, - 109, - 97, - 121, - 111, - 122, - 111, - 110, - 97, - 97, - 109, - 111, - 114, - 112, - 105, - 115, - 111, - 111, - 98, - 114, - 97, - 99, - 108, - 105, - 99, - 101, - 108, - 108, - 111, - 100, - 105, - 111, - 115, - 104, - 111, - 114, - 97, - 99, - 97, - 115, - 105, - 208, - 183, - 208, - 176, - 208, - 189, - 208, - 176, - 208, - 190, - 208, - 188, - 209, - 128, - 208, - 176, - 209, - 128, - 209, - 131, - 209, - 130, - 208, - 176, - 208, - 189, - 208, - 181, - 208, - 191, - 208, - 190, - 208, - 190, - 209, - 130, - 208, - 184, - 208, - 183, - 208, - 189, - 208, - 190, - 208, - 180, - 208, - 190, - 209, - 130, - 208, - 190, - 208, - 182, - 208, - 181, - 208, - 190, - 208, - 189, - 208, - 184, - 209, - 133, - 208, - 157, - 208, - 176, - 208, - 181, - 208, - 181, - 208, - 177, - 209, - 139, - 208, - 188, - 209, - 139, - 208, - 146, - 209, - 139, - 209, - 129, - 208, - 190, - 208, - 178, - 209, - 139, - 208, - 178, - 208, - 190, - 208, - 157, - 208, - 190, - 208, - 190, - 208, - 177, - 208, - 159, - 208, - 190, - 208, - 187, - 208, - 184, - 208, - 189, - 208, - 184, - 208, - 160, - 208, - 164, - 208, - 157, - 208, - 181, - 208, - 156, - 209, - 139, - 209, - 130, - 209, - 139, - 208, - 158, - 208, - 189, - 208, - 184, - 208, - 188, - 208, - 180, - 208, - 176, - 208, - 151, - 208, - 176, - 208, - 148, - 208, - 176, - 208, - 157, - 209, - 131, - 208, - 158, - 208, - 177, - 209, - 130, - 208, - 181, - 208, - 152, - 208, - 183, - 208, - 181, - 208, - 185, - 208, - 189, - 209, - 131, - 208, - 188, - 208, - 188, - 208, - 162, - 209, - 139, - 209, - 131, - 208, - 182, - 217, - 129, - 217, - 138, - 216, - 163, - 217, - 134, - 217, - 133, - 216, - 167, - 217, - 133, - 216, - 185, - 217, - 131, - 217, - 132, - 216, - 163, - 217, - 136, - 216, - 177, - 216, - 175, - 217, - 138, - 216, - 167, - 217, - 129, - 217, - 137, - 217, - 135, - 217, - 136, - 217, - 132, - 217, - 133, - 217, - 132, - 217, - 131, - 216, - 167, - 217, - 136, - 217, - 132, - 217, - 135, - 216, - 168, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 165, - 217, - 134, - 217, - 135, - 217, - 138, - 216, - 163, - 217, - 138, - 217, - 130, - 216, - 175, - 217, - 135, - 217, - 132, - 216, - 171, - 217, - 133, - 216, - 168, - 217, - 135, - 217, - 132, - 217, - 136, - 217, - 132, - 217, - 138, - 216, - 168, - 217, - 132, - 216, - 167, - 217, - 138, - 216, - 168, - 217, - 131, - 216, - 180, - 217, - 138, - 216, - 167, - 217, - 133, - 216, - 163, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 168, - 217, - 138, - 217, - 132, - 217, - 134, - 216, - 173, - 216, - 168, - 217, - 135, - 217, - 133, - 217, - 133, - 216, - 180, - 217, - 136, - 216, - 180, - 102, - 105, - 114, - 115, - 116, - 118, - 105, - 100, - 101, - 111, - 108, - 105, - 103, - 104, - 116, - 119, - 111, - 114, - 108, - 100, - 109, - 101, - 100, - 105, - 97, - 119, - 104, - 105, - 116, - 101, - 99, - 108, - 111, - 115, - 101, - 98, - 108, - 97, - 99, - 107, - 114, - 105, - 103, - 104, - 116, - 115, - 109, - 97, - 108, - 108, - 98, - 111, - 111, - 107, - 115, - 112, - 108, - 97, - 99, - 101, - 109, - 117, - 115, - 105, - 99, - 102, - 105, - 101, - 108, - 100, - 111, - 114, - 100, - 101, - 114, - 112, - 111, - 105, - 110, - 116, - 118, - 97, - 108, - 117, - 101, - 108, - 101, - 118, - 101, - 108, - 116, - 97, - 98, - 108, - 101, - 98, - 111, - 97, - 114, - 100, - 104, - 111, - 117, - 115, - 101, - 103, - 114, - 111, - 117, - 112, - 119, - 111, - 114, - 107, - 115, - 121, - 101, - 97, - 114, - 115, - 115, - 116, - 97, - 116, - 101, - 116, - 111, - 100, - 97, - 121, - 119, - 97, - 116, - 101, - 114, - 115, - 116, - 97, - 114, - 116, - 115, - 116, - 121, - 108, - 101, - 100, - 101, - 97, - 116, - 104, - 112, - 111, - 119, - 101, - 114, - 112, - 104, - 111, - 110, - 101, - 110, - 105, - 103, - 104, - 116, - 101, - 114, - 114, - 111, - 114, - 105, - 110, - 112, - 117, - 116, - 97, - 98, - 111, - 117, - 116, - 116, - 101, - 114, - 109, - 115, - 116, - 105, - 116, - 108, - 101, - 116, - 111, - 111, - 108, - 115, - 101, - 118, - 101, - 110, - 116, - 108, - 111, - 99, - 97, - 108, - 116, - 105, - 109, - 101, - 115, - 108, - 97, - 114, - 103, - 101, - 119, - 111, - 114, - 100, - 115, - 103, - 97, - 109, - 101, - 115, - 115, - 104, - 111, - 114, - 116, - 115, - 112, - 97, - 99, - 101, - 102, - 111, - 99, - 117, - 115, - 99, - 108, - 101, - 97, - 114, - 109, - 111, - 100, - 101, - 108, - 98, - 108, - 111, - 99, - 107, - 103, - 117, - 105, - 100, - 101, - 114, - 97, - 100, - 105, - 111, - 115, - 104, - 97, - 114, - 101, - 119, - 111, - 109, - 101, - 110, - 97, - 103, - 97, - 105, - 110, - 109, - 111, - 110, - 101, - 121, - 105, - 109, - 97, - 103, - 101, - 110, - 97, - 109, - 101, - 115, - 121, - 111, - 117, - 110, - 103, - 108, - 105, - 110, - 101, - 115, - 108, - 97, - 116, - 101, - 114, - 99, - 111, - 108, - 111, - 114, - 103, - 114, - 101, - 101, - 110, - 102, - 114, - 111, - 110, - 116, - 38, - 97, - 109, - 112, - 59, - 119, - 97, - 116, - 99, - 104, - 102, - 111, - 114, - 99, - 101, - 112, - 114, - 105, - 99, - 101, - 114, - 117, - 108, - 101, - 115, - 98, - 101, - 103, - 105, - 110, - 97, - 102, - 116, - 101, - 114, - 118, - 105, - 115, - 105, - 116, - 105, - 115, - 115, - 117, - 101, - 97, - 114, - 101, - 97, - 115, - 98, - 101, - 108, - 111, - 119, - 105, - 110, - 100, - 101, - 120, - 116, - 111, - 116, - 97, - 108, - 104, - 111, - 117, - 114, - 115, - 108, - 97, - 98, - 101, - 108, - 112, - 114, - 105, - 110, - 116, - 112, - 114, - 101, - 115, - 115, - 98, - 117, - 105, - 108, - 116, - 108, - 105, - 110, - 107, - 115, - 115, - 112, - 101, - 101, - 100, - 115, - 116, - 117, - 100, - 121, - 116, - 114, - 97, - 100, - 101, - 102, - 111, - 117, - 110, - 100, - 115, - 101, - 110, - 115, - 101, - 117, - 110, - 100, - 101, - 114, - 115, - 104, - 111, - 119, - 110, - 102, - 111, - 114, - 109, - 115, - 114, - 97, - 110, - 103, - 101, - 97, - 100, - 100, - 101, - 100, - 115, - 116, - 105, - 108, - 108, - 109, - 111, - 118, - 101, - 100, - 116, - 97, - 107, - 101, - 110, - 97, - 98, - 111, - 118, - 101, - 102, - 108, - 97, - 115, - 104, - 102, - 105, - 120, - 101, - 100, - 111, - 102, - 116, - 101, - 110, - 111, - 116, - 104, - 101, - 114, - 118, - 105, - 101, - 119, - 115, - 99, - 104, - 101, - 99, - 107, - 108, - 101, - 103, - 97, - 108, - 114, - 105, - 118, - 101, - 114, - 105, - 116, - 101, - 109, - 115, - 113, - 117, - 105, - 99, - 107, - 115, - 104, - 97, - 112, - 101, - 104, - 117, - 109, - 97, - 110, - 101, - 120, - 105, - 115, - 116, - 103, - 111, - 105, - 110, - 103, - 109, - 111, - 118, - 105, - 101, - 116, - 104, - 105, - 114, - 100, - 98, - 97, - 115, - 105, - 99, - 112, - 101, - 97, - 99, - 101, - 115, - 116, - 97, - 103, - 101, - 119, - 105, - 100, - 116, - 104, - 108, - 111, - 103, - 105, - 110, - 105, - 100, - 101, - 97, - 115, - 119, - 114, - 111, - 116, - 101, - 112, - 97, - 103, - 101, - 115, - 117, - 115, - 101, - 114, - 115, - 100, - 114, - 105, - 118, - 101, - 115, - 116, - 111, - 114, - 101, - 98, - 114, - 101, - 97, - 107, - 115, - 111, - 117, - 116, - 104, - 118, - 111, - 105, - 99, - 101, - 115, - 105, - 116, - 101, - 115, - 109, - 111, - 110, - 116, - 104, - 119, - 104, - 101, - 114, - 101, - 98, - 117, - 105, - 108, - 100, - 119, - 104, - 105, - 99, - 104, - 101, - 97, - 114, - 116, - 104, - 102, - 111, - 114, - 117, - 109, - 116, - 104, - 114, - 101, - 101, - 115, - 112, - 111, - 114, - 116, - 112, - 97, - 114, - 116, - 121, - 67, - 108, - 105, - 99, - 107, - 108, - 111, - 119, - 101, - 114, - 108, - 105, - 118, - 101, - 115, - 99, - 108, - 97, - 115, - 115, - 108, - 97, - 121, - 101, - 114, - 101, - 110, - 116, - 114, - 121, - 115, - 116, - 111, - 114, - 121, - 117, - 115, - 97, - 103, - 101, - 115, - 111, - 117, - 110, - 100, - 99, - 111, - 117, - 114, - 116, - 121, - 111, - 117, - 114, - 32, - 98, - 105, - 114, - 116, - 104, - 112, - 111, - 112, - 117, - 112, - 116, - 121, - 112, - 101, - 115, - 97, - 112, - 112, - 108, - 121, - 73, - 109, - 97, - 103, - 101, - 98, - 101, - 105, - 110, - 103, - 117, - 112, - 112, - 101, - 114, - 110, - 111, - 116, - 101, - 115, - 101, - 118, - 101, - 114, - 121, - 115, - 104, - 111, - 119, - 115, - 109, - 101, - 97, - 110, - 115, - 101, - 120, - 116, - 114, - 97, - 109, - 97, - 116, - 99, - 104, - 116, - 114, - 97, - 99, - 107, - 107, - 110, - 111, - 119, - 110, - 101, - 97, - 114, - 108, - 121, - 98, - 101, - 103, - 97, - 110, - 115, - 117, - 112, - 101, - 114, - 112, - 97, - 112, - 101, - 114, - 110, - 111, - 114, - 116, - 104, - 108, - 101, - 97, - 114, - 110, - 103, - 105, - 118, - 101, - 110, - 110, - 97, - 109, - 101, - 100, - 101, - 110, - 100, - 101, - 100, - 84, - 101, - 114, - 109, - 115, - 112, - 97, - 114, - 116, - 115, - 71, - 114, - 111, - 117, - 112, - 98, - 114, - 97, - 110, - 100, - 117, - 115, - 105, - 110, - 103, - 119, - 111, - 109, - 97, - 110, - 102, - 97, - 108, - 115, - 101, - 114, - 101, - 97, - 100, - 121, - 97, - 117, - 100, - 105, - 111, - 116, - 97, - 107, - 101, - 115, - 119, - 104, - 105, - 108, - 101, - 46, - 99, - 111, - 109, - 47, - 108, - 105, - 118, - 101, - 100, - 99, - 97, - 115, - 101, - 115, - 100, - 97, - 105, - 108, - 121, - 99, - 104, - 105, - 108, - 100, - 103, - 114, - 101, - 97, - 116, - 106, - 117, - 100, - 103, - 101, - 116, - 104, - 111, - 115, - 101, - 117, - 110, - 105, - 116, - 115, - 110, - 101, - 118, - 101, - 114, - 98, - 114, - 111, - 97, - 100, - 99, - 111, - 97, - 115, - 116, - 99, - 111, - 118, - 101, - 114, - 97, - 112, - 112, - 108, - 101, - 102, - 105, - 108, - 101, - 115, - 99, - 121, - 99, - 108, - 101, - 115, - 99, - 101, - 110, - 101, - 112, - 108, - 97, - 110, - 115, - 99, - 108, - 105, - 99, - 107, - 119, - 114, - 105, - 116, - 101, - 113, - 117, - 101, - 101, - 110, - 112, - 105, - 101, - 99, - 101, - 101, - 109, - 97, - 105, - 108, - 102, - 114, - 97, - 109, - 101, - 111, - 108, - 100, - 101, - 114, - 112, - 104, - 111, - 116, - 111, - 108, - 105, - 109, - 105, - 116, - 99, - 97, - 99, - 104, - 101, - 99, - 105, - 118, - 105, - 108, - 115, - 99, - 97, - 108, - 101, - 101, - 110, - 116, - 101, - 114, - 116, - 104, - 101, - 109, - 101, - 116, - 104, - 101, - 114, - 101, - 116, - 111, - 117, - 99, - 104, - 98, - 111, - 117, - 110, - 100, - 114, - 111, - 121, - 97, - 108, - 97, - 115, - 107, - 101, - 100, - 119, - 104, - 111, - 108, - 101, - 115, - 105, - 110, - 99, - 101, - 115, - 116, - 111, - 99, - 107, - 32, - 110, - 97, - 109, - 101, - 102, - 97, - 105, - 116, - 104, - 104, - 101, - 97, - 114, - 116, - 101, - 109, - 112, - 116, - 121, - 111, - 102, - 102, - 101, - 114, - 115, - 99, - 111, - 112, - 101, - 111, - 119, - 110, - 101, - 100, - 109, - 105, - 103, - 104, - 116, - 97, - 108, - 98, - 117, - 109, - 116, - 104, - 105, - 110, - 107, - 98, - 108, - 111, - 111, - 100, - 97, - 114, - 114, - 97, - 121, - 109, - 97, - 106, - 111, - 114, - 116, - 114, - 117, - 115, - 116, - 99, - 97, - 110, - 111, - 110, - 117, - 110, - 105, - 111, - 110, - 99, - 111, - 117, - 110, - 116, - 118, - 97, - 108, - 105, - 100, - 115, - 116, - 111, - 110, - 101, - 83, - 116, - 121, - 108, - 101, - 76, - 111, - 103, - 105, - 110, - 104, - 97, - 112, - 112, - 121, - 111, - 99, - 99, - 117, - 114, - 108, - 101, - 102, - 116, - 58, - 102, - 114, - 101, - 115, - 104, - 113, - 117, - 105, - 116, - 101, - 102, - 105, - 108, - 109, - 115, - 103, - 114, - 97, - 100, - 101, - 110, - 101, - 101, - 100, - 115, - 117, - 114, - 98, - 97, - 110, - 102, - 105, - 103, - 104, - 116, - 98, - 97, - 115, - 105, - 115, - 104, - 111, - 118, - 101, - 114, - 97, - 117, - 116, - 111, - 59, - 114, - 111, - 117, - 116, - 101, - 46, - 104, - 116, - 109, - 108, - 109, - 105, - 120, - 101, - 100, - 102, - 105, - 110, - 97, - 108, - 89, - 111, - 117, - 114, - 32, - 115, - 108, - 105, - 100, - 101, - 116, - 111, - 112, - 105, - 99, - 98, - 114, - 111, - 119, - 110, - 97, - 108, - 111, - 110, - 101, - 100, - 114, - 97, - 119, - 110, - 115, - 112, - 108, - 105, - 116, - 114, - 101, - 97, - 99, - 104, - 82, - 105, - 103, - 104, - 116, - 100, - 97, - 116, - 101, - 115, - 109, - 97, - 114, - 99, - 104, - 113, - 117, - 111, - 116, - 101, - 103, - 111, - 111, - 100, - 115, - 76, - 105, - 110, - 107, - 115, - 100, - 111, - 117, - 98, - 116, - 97, - 115, - 121, - 110, - 99, - 116, - 104, - 117, - 109, - 98, - 97, - 108, - 108, - 111, - 119, - 99, - 104, - 105, - 101, - 102, - 121, - 111, - 117, - 116, - 104, - 110, - 111, - 118, - 101, - 108, - 49, - 48, - 112, - 120, - 59, - 115, - 101, - 114, - 118, - 101, - 117, - 110, - 116, - 105, - 108, - 104, - 97, - 110, - 100, - 115, - 67, - 104, - 101, - 99, - 107, - 83, - 112, - 97, - 99, - 101, - 113, - 117, - 101, - 114, - 121, - 106, - 97, - 109, - 101, - 115, - 101, - 113, - 117, - 97, - 108, - 116, - 119, - 105, - 99, - 101, - 48, - 44, - 48, - 48, - 48, - 83, - 116, - 97, - 114, - 116, - 112, - 97, - 110, - 101, - 108, - 115, - 111, - 110, - 103, - 115, - 114, - 111, - 117, - 110, - 100, - 101, - 105, - 103, - 104, - 116, - 115, - 104, - 105, - 102, - 116, - 119, - 111, - 114, - 116, - 104, - 112, - 111, - 115, - 116, - 115, - 108, - 101, - 97, - 100, - 115, - 119, - 101, - 101, - 107, - 115, - 97, - 118, - 111, - 105, - 100, - 116, - 104, - 101, - 115, - 101, - 109, - 105, - 108, - 101, - 115, - 112, - 108, - 97, - 110, - 101, - 115, - 109, - 97, - 114, - 116, - 97, - 108, - 112, - 104, - 97, - 112, - 108, - 97, - 110, - 116, - 109, - 97, - 114, - 107, - 115, - 114, - 97, - 116, - 101, - 115, - 112, - 108, - 97, - 121, - 115, - 99, - 108, - 97, - 105, - 109, - 115, - 97, - 108, - 101, - 115, - 116, - 101, - 120, - 116, - 115, - 115, - 116, - 97, - 114, - 115, - 119, - 114, - 111, - 110, - 103, - 60, - 47, - 104, - 51, - 62, - 116, - 104, - 105, - 110, - 103, - 46, - 111, - 114, - 103, - 47, - 109, - 117, - 108, - 116, - 105, - 104, - 101, - 97, - 114, - 100, - 80, - 111, - 119, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 116, - 111, - 107, - 101, - 110, - 115, - 111, - 108, - 105, - 100, - 40, - 116, - 104, - 105, - 115, - 98, - 114, - 105, - 110, - 103, - 115, - 104, - 105, - 112, - 115, - 115, - 116, - 97, - 102, - 102, - 116, - 114, - 105, - 101, - 100, - 99, - 97, - 108, - 108, - 115, - 102, - 117, - 108, - 108, - 121, - 102, - 97, - 99, - 116, - 115, - 97, - 103, - 101, - 110, - 116, - 84, - 104, - 105, - 115, - 32, - 47, - 47, - 45, - 45, - 62, - 97, - 100, - 109, - 105, - 110, - 101, - 103, - 121, - 112, - 116, - 69, - 118, - 101, - 110, - 116, - 49, - 53, - 112, - 120, - 59, - 69, - 109, - 97, - 105, - 108, - 116, - 114, - 117, - 101, - 34, - 99, - 114, - 111, - 115, - 115, - 115, - 112, - 101, - 110, - 116, - 98, - 108, - 111, - 103, - 115, - 98, - 111, - 120, - 34, - 62, - 110, - 111, - 116, - 101, - 100, - 108, - 101, - 97, - 118, - 101, - 99, - 104, - 105, - 110, - 97, - 115, - 105, - 122, - 101, - 115, - 103, - 117, - 101, - 115, - 116, - 60, - 47, - 104, - 52, - 62, - 114, - 111, - 98, - 111, - 116, - 104, - 101, - 97, - 118, - 121, - 116, - 114, - 117, - 101, - 44, - 115, - 101, - 118, - 101, - 110, - 103, - 114, - 97, - 110, - 100, - 99, - 114, - 105, - 109, - 101, - 115, - 105, - 103, - 110, - 115, - 97, - 119, - 97, - 114, - 101, - 100, - 97, - 110, - 99, - 101, - 112, - 104, - 97, - 115, - 101, - 62, - 60, - 33, - 45, - 45, - 101, - 110, - 95, - 85, - 83, - 38, - 35, - 51, - 57, - 59, - 50, - 48, - 48, - 112, - 120, - 95, - 110, - 97, - 109, - 101, - 108, - 97, - 116, - 105, - 110, - 101, - 110, - 106, - 111, - 121, - 97, - 106, - 97, - 120, - 46, - 97, - 116, - 105, - 111, - 110, - 115, - 109, - 105, - 116, - 104, - 85, - 46, - 83, - 46, - 32, - 104, - 111, - 108, - 100, - 115, - 112, - 101, - 116, - 101, - 114, - 105, - 110, - 100, - 105, - 97, - 110, - 97, - 118, - 34, - 62, - 99, - 104, - 97, - 105, - 110, - 115, - 99, - 111, - 114, - 101, - 99, - 111, - 109, - 101, - 115, - 100, - 111, - 105, - 110, - 103, - 112, - 114, - 105, - 111, - 114, - 83, - 104, - 97, - 114, - 101, - 49, - 57, - 57, - 48, - 115, - 114, - 111, - 109, - 97, - 110, - 108, - 105, - 115, - 116, - 115, - 106, - 97, - 112, - 97, - 110, - 102, - 97, - 108, - 108, - 115, - 116, - 114, - 105, - 97, - 108, - 111, - 119, - 110, - 101, - 114, - 97, - 103, - 114, - 101, - 101, - 60, - 47, - 104, - 50, - 62, - 97, - 98, - 117, - 115, - 101, - 97, - 108, - 101, - 114, - 116, - 111, - 112, - 101, - 114, - 97, - 34, - 45, - 47, - 47, - 87, - 99, - 97, - 114, - 100, - 115, - 104, - 105, - 108, - 108, - 115, - 116, - 101, - 97, - 109, - 115, - 80, - 104, - 111, - 116, - 111, - 116, - 114, - 117, - 116, - 104, - 99, - 108, - 101, - 97, - 110, - 46, - 112, - 104, - 112, - 63, - 115, - 97, - 105, - 110, - 116, - 109, - 101, - 116, - 97, - 108, - 108, - 111, - 117, - 105, - 115, - 109, - 101, - 97, - 110, - 116, - 112, - 114, - 111, - 111, - 102, - 98, - 114, - 105, - 101, - 102, - 114, - 111, - 119, - 34, - 62, - 103, - 101, - 110, - 114, - 101, - 116, - 114, - 117, - 99, - 107, - 108, - 111, - 111, - 107, - 115, - 86, - 97, - 108, - 117, - 101, - 70, - 114, - 97, - 109, - 101, - 46, - 110, - 101, - 116, - 47, - 45, - 45, - 62, - 10, - 60, - 116, - 114, - 121, - 32, - 123, - 10, - 118, - 97, - 114, - 32, - 109, - 97, - 107, - 101, - 115, - 99, - 111, - 115, - 116, - 115, - 112, - 108, - 97, - 105, - 110, - 97, - 100, - 117, - 108, - 116, - 113, - 117, - 101, - 115, - 116, - 116, - 114, - 97, - 105, - 110, - 108, - 97, - 98, - 111, - 114, - 104, - 101, - 108, - 112, - 115, - 99, - 97, - 117, - 115, - 101, - 109, - 97, - 103, - 105, - 99, - 109, - 111, - 116, - 111, - 114, - 116, - 104, - 101, - 105, - 114, - 50, - 53, - 48, - 112, - 120, - 108, - 101, - 97, - 115, - 116, - 115, - 116, - 101, - 112, - 115, - 67, - 111, - 117, - 110, - 116, - 99, - 111, - 117, - 108, - 100, - 103, - 108, - 97, - 115, - 115, - 115, - 105, - 100, - 101, - 115, - 102, - 117, - 110, - 100, - 115, - 104, - 111, - 116, - 101, - 108, - 97, - 119, - 97, - 114, - 100, - 109, - 111, - 117, - 116, - 104, - 109, - 111, - 118, - 101, - 115, - 112, - 97, - 114, - 105, - 115, - 103, - 105, - 118, - 101, - 115, - 100, - 117, - 116, - 99, - 104, - 116, - 101, - 120, - 97, - 115, - 102, - 114, - 117, - 105, - 116, - 110, - 117, - 108, - 108, - 44, - 124, - 124, - 91, - 93, - 59, - 116, - 111, - 112, - 34, - 62, - 10, - 60, - 33, - 45, - 45, - 80, - 79, - 83, - 84, - 34, - 111, - 99, - 101, - 97, - 110, - 60, - 98, - 114, - 47, - 62, - 102, - 108, - 111, - 111, - 114, - 115, - 112, - 101, - 97, - 107, - 100, - 101, - 112, - 116, - 104, - 32, - 115, - 105, - 122, - 101, - 98, - 97, - 110, - 107, - 115, - 99, - 97, - 116, - 99, - 104, - 99, - 104, - 97, - 114, - 116, - 50, - 48, - 112, - 120, - 59, - 97, - 108, - 105, - 103, - 110, - 100, - 101, - 97, - 108, - 115, - 119, - 111, - 117, - 108, - 100, - 53, - 48, - 112, - 120, - 59, - 117, - 114, - 108, - 61, - 34, - 112, - 97, - 114, - 107, - 115, - 109, - 111, - 117, - 115, - 101, - 77, - 111, - 115, - 116, - 32, - 46, - 46, - 46, - 60, - 47, - 97, - 109, - 111, - 110, - 103, - 98, - 114, - 97, - 105, - 110, - 98, - 111, - 100, - 121, - 32, - 110, - 111, - 110, - 101, - 59, - 98, - 97, - 115, - 101, - 100, - 99, - 97, - 114, - 114, - 121, - 100, - 114, - 97, - 102, - 116, - 114, - 101, - 102, - 101, - 114, - 112, - 97, - 103, - 101, - 95, - 104, - 111, - 109, - 101, - 46, - 109, - 101, - 116, - 101, - 114, - 100, - 101, - 108, - 97, - 121, - 100, - 114, - 101, - 97, - 109, - 112, - 114, - 111, - 118, - 101, - 106, - 111, - 105, - 110, - 116, - 60, - 47, - 116, - 114, - 62, - 100, - 114, - 117, - 103, - 115, - 60, - 33, - 45, - 45, - 32, - 97, - 112, - 114, - 105, - 108, - 105, - 100, - 101, - 97, - 108, - 97, - 108, - 108, - 101, - 110, - 101, - 120, - 97, - 99, - 116, - 102, - 111, - 114, - 116, - 104, - 99, - 111, - 100, - 101, - 115, - 108, - 111, - 103, - 105, - 99, - 86, - 105, - 101, - 119, - 32, - 115, - 101, - 101, - 109, - 115, - 98, - 108, - 97, - 110, - 107, - 112, - 111, - 114, - 116, - 115, - 32, - 40, - 50, - 48, - 48, - 115, - 97, - 118, - 101, - 100, - 95, - 108, - 105, - 110, - 107, - 103, - 111, - 97, - 108, - 115, - 103, - 114, - 97, - 110, - 116, - 103, - 114, - 101, - 101, - 107, - 104, - 111, - 109, - 101, - 115, - 114, - 105, - 110, - 103, - 115, - 114, - 97, - 116, - 101, - 100, - 51, - 48, - 112, - 120, - 59, - 119, - 104, - 111, - 115, - 101, - 112, - 97, - 114, - 115, - 101, - 40, - 41, - 59, - 34, - 32, - 66, - 108, - 111, - 99, - 107, - 108, - 105, - 110, - 117, - 120, - 106, - 111, - 110, - 101, - 115, - 112, - 105, - 120, - 101, - 108, - 39, - 41, - 59, - 34, - 62, - 41, - 59, - 105, - 102, - 40, - 45, - 108, - 101, - 102, - 116, - 100, - 97, - 118, - 105, - 100, - 104, - 111, - 114, - 115, - 101, - 70, - 111, - 99, - 117, - 115, - 114, - 97, - 105, - 115, - 101, - 98, - 111, - 120, - 101, - 115, - 84, - 114, - 97, - 99, - 107, - 101, - 109, - 101, - 110, - 116, - 60, - 47, - 101, - 109, - 62, - 98, - 97, - 114, - 34, - 62, - 46, - 115, - 114, - 99, - 61, - 116, - 111, - 119, - 101, - 114, - 97, - 108, - 116, - 61, - 34, - 99, - 97, - 98, - 108, - 101, - 104, - 101, - 110, - 114, - 121, - 50, - 52, - 112, - 120, - 59, - 115, - 101, - 116, - 117, - 112, - 105, - 116, - 97, - 108, - 121, - 115, - 104, - 97, - 114, - 112, - 109, - 105, - 110, - 111, - 114, - 116, - 97, - 115, - 116, - 101, - 119, - 97, - 110, - 116, - 115, - 116, - 104, - 105, - 115, - 46, - 114, - 101, - 115, - 101, - 116, - 119, - 104, - 101, - 101, - 108, - 103, - 105, - 114, - 108, - 115, - 47, - 99, - 115, - 115, - 47, - 49, - 48, - 48, - 37, - 59, - 99, - 108, - 117, - 98, - 115, - 115, - 116, - 117, - 102, - 102, - 98, - 105, - 98, - 108, - 101, - 118, - 111, - 116, - 101, - 115, - 32, - 49, - 48, - 48, - 48, - 107, - 111, - 114, - 101, - 97, - 125, - 41, - 59, - 13, - 10, - 98, - 97, - 110, - 100, - 115, - 113, - 117, - 101, - 117, - 101, - 61, - 32, - 123, - 125, - 59, - 56, - 48, - 112, - 120, - 59, - 99, - 107, - 105, - 110, - 103, - 123, - 13, - 10, - 9, - 9, - 97, - 104, - 101, - 97, - 100, - 99, - 108, - 111, - 99, - 107, - 105, - 114, - 105, - 115, - 104, - 108, - 105, - 107, - 101, - 32, - 114, - 97, - 116, - 105, - 111, - 115, - 116, - 97, - 116, - 115, - 70, - 111, - 114, - 109, - 34, - 121, - 97, - 104, - 111, - 111, - 41, - 91, - 48, - 93, - 59, - 65, - 98, - 111, - 117, - 116, - 102, - 105, - 110, - 100, - 115, - 60, - 47, - 104, - 49, - 62, - 100, - 101, - 98, - 117, - 103, - 116, - 97, - 115, - 107, - 115, - 85, - 82, - 76, - 32, - 61, - 99, - 101, - 108, - 108, - 115, - 125, - 41, - 40, - 41, - 59, - 49, - 50, - 112, - 120, - 59, - 112, - 114, - 105, - 109, - 101, - 116, - 101, - 108, - 108, - 115, - 116, - 117, - 114, - 110, - 115, - 48, - 120, - 54, - 48, - 48, - 46, - 106, - 112, - 103, - 34, - 115, - 112, - 97, - 105, - 110, - 98, - 101, - 97, - 99, - 104, - 116, - 97, - 120, - 101, - 115, - 109, - 105, - 99, - 114, - 111, - 97, - 110, - 103, - 101, - 108, - 45, - 45, - 62, - 60, - 47, - 103, - 105, - 102, - 116, - 115, - 115, - 116, - 101, - 118, - 101, - 45, - 108, - 105, - 110, - 107, - 98, - 111, - 100, - 121, - 46, - 125, - 41, - 59, - 10, - 9, - 109, - 111, - 117, - 110, - 116, - 32, - 40, - 49, - 57, - 57, - 70, - 65, - 81, - 60, - 47, - 114, - 111, - 103, - 101, - 114, - 102, - 114, - 97, - 110, - 107, - 67, - 108, - 97, - 115, - 115, - 50, - 56, - 112, - 120, - 59, - 102, - 101, - 101, - 100, - 115, - 60, - 104, - 49, - 62, - 60, - 115, - 99, - 111, - 116, - 116, - 116, - 101, - 115, - 116, - 115, - 50, - 50, - 112, - 120, - 59, - 100, - 114, - 105, - 110, - 107, - 41, - 32, - 124, - 124, - 32, - 108, - 101, - 119, - 105, - 115, - 115, - 104, - 97, - 108, - 108, - 35, - 48, - 51, - 57, - 59, - 32, - 102, - 111, - 114, - 32, - 108, - 111, - 118, - 101, - 100, - 119, - 97, - 115, - 116, - 101, - 48, - 48, - 112, - 120, - 59, - 106, - 97, - 58, - 227, - 130, - 115, - 105, - 109, - 111, - 110, - 60, - 102, - 111, - 110, - 116, - 114, - 101, - 112, - 108, - 121, - 109, - 101, - 101, - 116, - 115, - 117, - 110, - 116, - 101, - 114, - 99, - 104, - 101, - 97, - 112, - 116, - 105, - 103, - 104, - 116, - 66, - 114, - 97, - 110, - 100, - 41, - 32, - 33, - 61, - 32, - 100, - 114, - 101, - 115, - 115, - 99, - 108, - 105, - 112, - 115, - 114, - 111, - 111, - 109, - 115, - 111, - 110, - 107, - 101, - 121, - 109, - 111, - 98, - 105, - 108, - 109, - 97, - 105, - 110, - 46, - 78, - 97, - 109, - 101, - 32, - 112, - 108, - 97, - 116, - 101, - 102, - 117, - 110, - 110, - 121, - 116, - 114, - 101, - 101, - 115, - 99, - 111, - 109, - 47, - 34, - 49, - 46, - 106, - 112, - 103, - 119, - 109, - 111, - 100, - 101, - 112, - 97, - 114, - 97, - 109, - 83, - 84, - 65, - 82, - 84, - 108, - 101, - 102, - 116, - 32, - 105, - 100, - 100, - 101, - 110, - 44, - 32, - 50, - 48, - 49, - 41, - 59, - 10, - 125, - 10, - 102, - 111, - 114, - 109, - 46, - 118, - 105, - 114, - 117, - 115, - 99, - 104, - 97, - 105, - 114, - 116, - 114, - 97, - 110, - 115, - 119, - 111, - 114, - 115, - 116, - 80, - 97, - 103, - 101, - 115, - 105, - 116, - 105, - 111, - 110, - 112, - 97, - 116, - 99, - 104, - 60, - 33, - 45, - 45, - 10, - 111, - 45, - 99, - 97, - 99, - 102, - 105, - 114, - 109, - 115, - 116, - 111, - 117, - 114, - 115, - 44, - 48, - 48, - 48, - 32, - 97, - 115, - 105, - 97, - 110, - 105, - 43, - 43, - 41, - 123, - 97, - 100, - 111, - 98, - 101, - 39, - 41, - 91, - 48, - 93, - 105, - 100, - 61, - 49, - 48, - 98, - 111, - 116, - 104, - 59, - 109, - 101, - 110, - 117, - 32, - 46, - 50, - 46, - 109, - 105, - 46, - 112, - 110, - 103, - 34, - 107, - 101, - 118, - 105, - 110, - 99, - 111, - 97, - 99, - 104, - 67, - 104, - 105, - 108, - 100, - 98, - 114, - 117, - 99, - 101, - 50, - 46, - 106, - 112, - 103, - 85, - 82, - 76, - 41, - 43, - 46, - 106, - 112, - 103, - 124, - 115, - 117, - 105, - 116, - 101, - 115, - 108, - 105, - 99, - 101, - 104, - 97, - 114, - 114, - 121, - 49, - 50, - 48, - 34, - 32, - 115, - 119, - 101, - 101, - 116, - 116, - 114, - 62, - 13, - 10, - 110, - 97, - 109, - 101, - 61, - 100, - 105, - 101, - 103, - 111, - 112, - 97, - 103, - 101, - 32, - 115, - 119, - 105, - 115, - 115, - 45, - 45, - 62, - 10, - 10, - 35, - 102, - 102, - 102, - 59, - 34, - 62, - 76, - 111, - 103, - 46, - 99, - 111, - 109, - 34, - 116, - 114, - 101, - 97, - 116, - 115, - 104, - 101, - 101, - 116, - 41, - 32, - 38, - 38, - 32, - 49, - 52, - 112, - 120, - 59, - 115, - 108, - 101, - 101, - 112, - 110, - 116, - 101, - 110, - 116, - 102, - 105, - 108, - 101, - 100, - 106, - 97, - 58, - 227, - 131, - 105, - 100, - 61, - 34, - 99, - 78, - 97, - 109, - 101, - 34, - 119, - 111, - 114, - 115, - 101, - 115, - 104, - 111, - 116, - 115, - 45, - 98, - 111, - 120, - 45, - 100, - 101, - 108, - 116, - 97, - 10, - 38, - 108, - 116, - 59, - 98, - 101, - 97, - 114, - 115, - 58, - 52, - 56, - 90, - 60, - 100, - 97, - 116, - 97, - 45, - 114, - 117, - 114, - 97, - 108, - 60, - 47, - 97, - 62, - 32, - 115, - 112, - 101, - 110, - 100, - 98, - 97, - 107, - 101, - 114, - 115, - 104, - 111, - 112, - 115, - 61, - 32, - 34, - 34, - 59, - 112, - 104, - 112, - 34, - 62, - 99, - 116, - 105, - 111, - 110, - 49, - 51, - 112, - 120, - 59, - 98, - 114, - 105, - 97, - 110, - 104, - 101, - 108, - 108, - 111, - 115, - 105, - 122, - 101, - 61, - 111, - 61, - 37, - 50, - 70, - 32, - 106, - 111, - 105, - 110, - 109, - 97, - 121, - 98, - 101, - 60, - 105, - 109, - 103, - 32, - 105, - 109, - 103, - 34, - 62, - 44, - 32, - 102, - 106, - 115, - 105, - 109, - 103, - 34, - 32, - 34, - 41, - 91, - 48, - 93, - 77, - 84, - 111, - 112, - 66, - 84, - 121, - 112, - 101, - 34, - 110, - 101, - 119, - 108, - 121, - 68, - 97, - 110, - 115, - 107, - 99, - 122, - 101, - 99, - 104, - 116, - 114, - 97, - 105, - 108, - 107, - 110, - 111, - 119, - 115, - 60, - 47, - 104, - 53, - 62, - 102, - 97, - 113, - 34, - 62, - 122, - 104, - 45, - 99, - 110, - 49, - 48, - 41, - 59, - 10, - 45, - 49, - 34, - 41, - 59, - 116, - 121, - 112, - 101, - 61, - 98, - 108, - 117, - 101, - 115, - 116, - 114, - 117, - 108, - 121, - 100, - 97, - 118, - 105, - 115, - 46, - 106, - 115, - 39, - 59, - 62, - 13, - 10, - 60, - 33, - 115, - 116, - 101, - 101, - 108, - 32, - 121, - 111, - 117, - 32, - 104, - 50, - 62, - 13, - 10, - 102, - 111, - 114, - 109, - 32, - 106, - 101, - 115, - 117, - 115, - 49, - 48, - 48, - 37, - 32, - 109, - 101, - 110, - 117, - 46, - 13, - 10, - 9, - 13, - 10, - 119, - 97, - 108, - 101, - 115, - 114, - 105, - 115, - 107, - 115, - 117, - 109, - 101, - 110, - 116, - 100, - 100, - 105, - 110, - 103, - 98, - 45, - 108, - 105, - 107, - 116, - 101, - 97, - 99, - 104, - 103, - 105, - 102, - 34, - 32, - 118, - 101, - 103, - 97, - 115, - 100, - 97, - 110, - 115, - 107, - 101, - 101, - 115, - 116, - 105, - 115, - 104, - 113, - 105, - 112, - 115, - 117, - 111, - 109, - 105, - 115, - 111, - 98, - 114, - 101, - 100, - 101, - 115, - 100, - 101, - 101, - 110, - 116, - 114, - 101, - 116, - 111, - 100, - 111, - 115, - 112, - 117, - 101, - 100, - 101, - 97, - 195, - 177, - 111, - 115, - 101, - 115, - 116, - 195, - 161, - 116, - 105, - 101, - 110, - 101, - 104, - 97, - 115, - 116, - 97, - 111, - 116, - 114, - 111, - 115, - 112, - 97, - 114, - 116, - 101, - 100, - 111, - 110, - 100, - 101, - 110, - 117, - 101, - 118, - 111, - 104, - 97, - 99, - 101, - 114, - 102, - 111, - 114, - 109, - 97, - 109, - 105, - 115, - 109, - 111, - 109, - 101, - 106, - 111, - 114, - 109, - 117, - 110, - 100, - 111, - 97, - 113, - 117, - 195, - 173, - 100, - 195, - 173, - 97, - 115, - 115, - 195, - 179, - 108, - 111, - 97, - 121, - 117, - 100, - 97, - 102, - 101, - 99, - 104, - 97, - 116, - 111, - 100, - 97, - 115, - 116, - 97, - 110, - 116, - 111, - 109, - 101, - 110, - 111, - 115, - 100, - 97, - 116, - 111, - 115, - 111, - 116, - 114, - 97, - 115, - 115, - 105, - 116, - 105, - 111, - 109, - 117, - 99, - 104, - 111, - 97, - 104, - 111, - 114, - 97, - 108, - 117, - 103, - 97, - 114, - 109, - 97, - 121, - 111, - 114, - 101, - 115, - 116, - 111, - 115, - 104, - 111, - 114, - 97, - 115, - 116, - 101, - 110, - 101, - 114, - 97, - 110, - 116, - 101, - 115, - 102, - 111, - 116, - 111, - 115, - 101, - 115, - 116, - 97, - 115, - 112, - 97, - 195, - 173, - 115, - 110, - 117, - 101, - 118, - 97, - 115, - 97, - 108, - 117, - 100, - 102, - 111, - 114, - 111, - 115, - 109, - 101, - 100, - 105, - 111, - 113, - 117, - 105, - 101, - 110, - 109, - 101, - 115, - 101, - 115, - 112, - 111, - 100, - 101, - 114, - 99, - 104, - 105, - 108, - 101, - 115, - 101, - 114, - 195, - 161, - 118, - 101, - 99, - 101, - 115, - 100, - 101, - 99, - 105, - 114, - 106, - 111, - 115, - 195, - 169, - 101, - 115, - 116, - 97, - 114, - 118, - 101, - 110, - 116, - 97, - 103, - 114, - 117, - 112, - 111, - 104, - 101, - 99, - 104, - 111, - 101, - 108, - 108, - 111, - 115, - 116, - 101, - 110, - 103, - 111, - 97, - 109, - 105, - 103, - 111, - 99, - 111, - 115, - 97, - 115, - 110, - 105, - 118, - 101, - 108, - 103, - 101, - 110, - 116, - 101, - 109, - 105, - 115, - 109, - 97, - 97, - 105, - 114, - 101, - 115, - 106, - 117, - 108, - 105, - 111, - 116, - 101, - 109, - 97, - 115, - 104, - 97, - 99, - 105, - 97, - 102, - 97, - 118, - 111, - 114, - 106, - 117, - 110, - 105, - 111, - 108, - 105, - 98, - 114, - 101, - 112, - 117, - 110, - 116, - 111, - 98, - 117, - 101, - 110, - 111, - 97, - 117, - 116, - 111, - 114, - 97, - 98, - 114, - 105, - 108, - 98, - 117, - 101, - 110, - 97, - 116, - 101, - 120, - 116, - 111, - 109, - 97, - 114, - 122, - 111, - 115, - 97, - 98, - 101, - 114, - 108, - 105, - 115, - 116, - 97, - 108, - 117, - 101, - 103, - 111, - 99, - 195, - 179, - 109, - 111, - 101, - 110, - 101, - 114, - 111, - 106, - 117, - 101, - 103, - 111, - 112, - 101, - 114, - 195, - 186, - 104, - 97, - 98, - 101, - 114, - 101, - 115, - 116, - 111, - 121, - 110, - 117, - 110, - 99, - 97, - 109, - 117, - 106, - 101, - 114, - 118, - 97, - 108, - 111, - 114, - 102, - 117, - 101, - 114, - 97, - 108, - 105, - 98, - 114, - 111, - 103, - 117, - 115, - 116, - 97, - 105, - 103, - 117, - 97, - 108, - 118, - 111, - 116, - 111, - 115, - 99, - 97, - 115, - 111, - 115, - 103, - 117, - 195, - 173, - 97, - 112, - 117, - 101, - 100, - 111, - 115, - 111, - 109, - 111, - 115, - 97, - 118, - 105, - 115, - 111, - 117, - 115, - 116, - 101, - 100, - 100, - 101, - 98, - 101, - 110, - 110, - 111, - 99, - 104, - 101, - 98, - 117, - 115, - 99, - 97, - 102, - 97, - 108, - 116, - 97, - 101, - 117, - 114, - 111, - 115, - 115, - 101, - 114, - 105, - 101, - 100, - 105, - 99, - 104, - 111, - 99, - 117, - 114, - 115, - 111, - 99, - 108, - 97, - 118, - 101, - 99, - 97, - 115, - 97, - 115, - 108, - 101, - 195, - 179, - 110, - 112, - 108, - 97, - 122, - 111, - 108, - 97, - 114, - 103, - 111, - 111, - 98, - 114, - 97, - 115, - 118, - 105, - 115, - 116, - 97, - 97, - 112, - 111, - 121, - 111, - 106, - 117, - 110, - 116, - 111, - 116, - 114, - 97, - 116, - 97, - 118, - 105, - 115, - 116, - 111, - 99, - 114, - 101, - 97, - 114, - 99, - 97, - 109, - 112, - 111, - 104, - 101, - 109, - 111, - 115, - 99, - 105, - 110, - 99, - 111, - 99, - 97, - 114, - 103, - 111, - 112, - 105, - 115, - 111, - 115, - 111, - 114, - 100, - 101, - 110, - 104, - 97, - 99, - 101, - 110, - 195, - 161, - 114, - 101, - 97, - 100, - 105, - 115, - 99, - 111, - 112, - 101, - 100, - 114, - 111, - 99, - 101, - 114, - 99, - 97, - 112, - 117, - 101, - 100, - 97, - 112, - 97, - 112, - 101, - 108, - 109, - 101, - 110, - 111, - 114, - 195, - 186, - 116, - 105, - 108, - 99, - 108, - 97, - 114, - 111, - 106, - 111, - 114, - 103, - 101, - 99, - 97, - 108, - 108, - 101, - 112, - 111, - 110, - 101, - 114, - 116, - 97, - 114, - 100, - 101, - 110, - 97, - 100, - 105, - 101, - 109, - 97, - 114, - 99, - 97, - 115, - 105, - 103, - 117, - 101, - 101, - 108, - 108, - 97, - 115, - 115, - 105, - 103, - 108, - 111, - 99, - 111, - 99, - 104, - 101, - 109, - 111, - 116, - 111, - 115, - 109, - 97, - 100, - 114, - 101, - 99, - 108, - 97, - 115, - 101, - 114, - 101, - 115, - 116, - 111, - 110, - 105, - 195, - 177, - 111, - 113, - 117, - 101, - 100, - 97, - 112, - 97, - 115, - 97, - 114, - 98, - 97, - 110, - 99, - 111, - 104, - 105, - 106, - 111, - 115, - 118, - 105, - 97, - 106, - 101, - 112, - 97, - 98, - 108, - 111, - 195, - 169, - 115, - 116, - 101, - 118, - 105, - 101, - 110, - 101, - 114, - 101, - 105, - 110, - 111, - 100, - 101, - 106, - 97, - 114, - 102, - 111, - 110, - 100, - 111, - 99, - 97, - 110, - 97, - 108, - 110, - 111, - 114, - 116, - 101, - 108, - 101, - 116, - 114, - 97, - 99, - 97, - 117, - 115, - 97, - 116, - 111, - 109, - 97, - 114, - 109, - 97, - 110, - 111, - 115, - 108, - 117, - 110, - 101, - 115, - 97, - 117, - 116, - 111, - 115, - 118, - 105, - 108, - 108, - 97, - 118, - 101, - 110, - 100, - 111, - 112, - 101, - 115, - 97, - 114, - 116, - 105, - 112, - 111, - 115, - 116, - 101, - 110, - 103, - 97, - 109, - 97, - 114, - 99, - 111, - 108, - 108, - 101, - 118, - 97, - 112, - 97, - 100, - 114, - 101, - 117, - 110, - 105, - 100, - 111, - 118, - 97, - 109, - 111, - 115, - 122, - 111, - 110, - 97, - 115, - 97, - 109, - 98, - 111, - 115, - 98, - 97, - 110, - 100, - 97, - 109, - 97, - 114, - 105, - 97, - 97, - 98, - 117, - 115, - 111, - 109, - 117, - 99, - 104, - 97, - 115, - 117, - 98, - 105, - 114, - 114, - 105, - 111, - 106, - 97, - 118, - 105, - 118, - 105, - 114, - 103, - 114, - 97, - 100, - 111, - 99, - 104, - 105, - 99, - 97, - 97, - 108, - 108, - 195, - 173, - 106, - 111, - 118, - 101, - 110, - 100, - 105, - 99, - 104, - 97, - 101, - 115, - 116, - 97, - 110, - 116, - 97, - 108, - 101, - 115, - 115, - 97, - 108, - 105, - 114, - 115, - 117, - 101, - 108, - 111, - 112, - 101, - 115, - 111, - 115, - 102, - 105, - 110, - 101, - 115, - 108, - 108, - 97, - 109, - 97, - 98, - 117, - 115, - 99, - 111, - 195, - 169, - 115, - 116, - 97, - 108, - 108, - 101, - 103, - 97, - 110, - 101, - 103, - 114, - 111, - 112, - 108, - 97, - 122, - 97, - 104, - 117, - 109, - 111, - 114, - 112, - 97, - 103, - 97, - 114, - 106, - 117, - 110, - 116, - 97, - 100, - 111, - 98, - 108, - 101, - 105, - 115, - 108, - 97, - 115, - 98, - 111, - 108, - 115, - 97, - 98, - 97, - 195, - 177, - 111, - 104, - 97, - 98, - 108, - 97, - 108, - 117, - 99, - 104, - 97, - 195, - 129, - 114, - 101, - 97, - 100, - 105, - 99, - 101, - 110, - 106, - 117, - 103, - 97, - 114, - 110, - 111, - 116, - 97, - 115, - 118, - 97, - 108, - 108, - 101, - 97, - 108, - 108, - 195, - 161, - 99, - 97, - 114, - 103, - 97, - 100, - 111, - 108, - 111, - 114, - 97, - 98, - 97, - 106, - 111, - 101, - 115, - 116, - 195, - 169, - 103, - 117, - 115, - 116, - 111, - 109, - 101, - 110, - 116, - 101, - 109, - 97, - 114, - 105, - 111, - 102, - 105, - 114, - 109, - 97, - 99, - 111, - 115, - 116, - 111, - 102, - 105, - 99, - 104, - 97, - 112, - 108, - 97, - 116, - 97, - 104, - 111, - 103, - 97, - 114, - 97, - 114, - 116, - 101, - 115, - 108, - 101, - 121, - 101, - 115, - 97, - 113, - 117, - 101, - 108, - 109, - 117, - 115, - 101, - 111, - 98, - 97, - 115, - 101, - 115, - 112, - 111, - 99, - 111, - 115, - 109, - 105, - 116, - 97, - 100, - 99, - 105, - 101, - 108, - 111, - 99, - 104, - 105, - 99, - 111, - 109, - 105, - 101, - 100, - 111, - 103, - 97, - 110, - 97, - 114, - 115, - 97, - 110, - 116, - 111, - 101, - 116, - 97, - 112, - 97, - 100, - 101, - 98, - 101, - 115, - 112, - 108, - 97, - 121, - 97, - 114, - 101, - 100, - 101, - 115, - 115, - 105, - 101, - 116, - 101, - 99, - 111, - 114, - 116, - 101, - 99, - 111, - 114, - 101, - 97, - 100, - 117, - 100, - 97, - 115, - 100, - 101, - 115, - 101, - 111, - 118, - 105, - 101, - 106, - 111, - 100, - 101, - 115, - 101, - 97, - 97, - 103, - 117, - 97, - 115, - 38, - 113, - 117, - 111, - 116, - 59, - 100, - 111, - 109, - 97, - 105, - 110, - 99, - 111, - 109, - 109, - 111, - 110, - 115, - 116, - 97, - 116, - 117, - 115, - 101, - 118, - 101, - 110, - 116, - 115, - 109, - 97, - 115, - 116, - 101, - 114, - 115, - 121, - 115, - 116, - 101, - 109, - 97, - 99, - 116, - 105, - 111, - 110, - 98, - 97, - 110, - 110, - 101, - 114, - 114, - 101, - 109, - 111, - 118, - 101, - 115, - 99, - 114, - 111, - 108, - 108, - 117, - 112, - 100, - 97, - 116, - 101, - 103, - 108, - 111, - 98, - 97, - 108, - 109, - 101, - 100, - 105, - 117, - 109, - 102, - 105, - 108, - 116, - 101, - 114, - 110, - 117, - 109, - 98, - 101, - 114, - 99, - 104, - 97, - 110, - 103, - 101, - 114, - 101, - 115, - 117, - 108, - 116, - 112, - 117, - 98, - 108, - 105, - 99, - 115, - 99, - 114, - 101, - 101, - 110, - 99, - 104, - 111, - 111, - 115, - 101, - 110, - 111, - 114, - 109, - 97, - 108, - 116, - 114, - 97, - 118, - 101, - 108, - 105, - 115, - 115, - 117, - 101, - 115, - 115, - 111, - 117, - 114, - 99, - 101, - 116, - 97, - 114, - 103, - 101, - 116, - 115, - 112, - 114, - 105, - 110, - 103, - 109, - 111, - 100, - 117, - 108, - 101, - 109, - 111, - 98, - 105, - 108, - 101, - 115, - 119, - 105, - 116, - 99, - 104, - 112, - 104, - 111, - 116, - 111, - 115, - 98, - 111, - 114, - 100, - 101, - 114, - 114, - 101, - 103, - 105, - 111, - 110, - 105, - 116, - 115, - 101, - 108, - 102, - 115, - 111, - 99, - 105, - 97, - 108, - 97, - 99, - 116, - 105, - 118, - 101, - 99, - 111, - 108, - 117, - 109, - 110, - 114, - 101, - 99, - 111, - 114, - 100, - 102, - 111, - 108, - 108, - 111, - 119, - 116, - 105, - 116, - 108, - 101, - 62, - 101, - 105, - 116, - 104, - 101, - 114, - 108, - 101, - 110, - 103, - 116, - 104, - 102, - 97, - 109, - 105, - 108, - 121, - 102, - 114, - 105, - 101, - 110, - 100, - 108, - 97, - 121, - 111, - 117, - 116, - 97, - 117, - 116, - 104, - 111, - 114, - 99, - 114, - 101, - 97, - 116, - 101, - 114, - 101, - 118, - 105, - 101, - 119, - 115, - 117, - 109, - 109, - 101, - 114, - 115, - 101, - 114, - 118, - 101, - 114, - 112, - 108, - 97, - 121, - 101, - 100, - 112, - 108, - 97, - 121, - 101, - 114, - 101, - 120, - 112, - 97, - 110, - 100, - 112, - 111, - 108, - 105, - 99, - 121, - 102, - 111, - 114, - 109, - 97, - 116, - 100, - 111, - 117, - 98, - 108, - 101, - 112, - 111, - 105, - 110, - 116, - 115, - 115, - 101, - 114, - 105, - 101, - 115, - 112, - 101, - 114, - 115, - 111, - 110, - 108, - 105, - 118, - 105, - 110, - 103, - 100, - 101, - 115, - 105, - 103, - 110, - 109, - 111, - 110, - 116, - 104, - 115, - 102, - 111, - 114, - 99, - 101, - 115, - 117, - 110, - 105, - 113, - 117, - 101, - 119, - 101, - 105, - 103, - 104, - 116, - 112, - 101, - 111, - 112, - 108, - 101, - 101, - 110, - 101, - 114, - 103, - 121, - 110, - 97, - 116, - 117, - 114, - 101, - 115, - 101, - 97, - 114, - 99, - 104, - 102, - 105, - 103, - 117, - 114, - 101, - 104, - 97, - 118, - 105, - 110, - 103, - 99, - 117, - 115, - 116, - 111, - 109, - 111, - 102, - 102, - 115, - 101, - 116, - 108, - 101, - 116, - 116, - 101, - 114, - 119, - 105, - 110, - 100, - 111, - 119, - 115, - 117, - 98, - 109, - 105, - 116, - 114, - 101, - 110, - 100, - 101, - 114, - 103, - 114, - 111, - 117, - 112, - 115, - 117, - 112, - 108, - 111, - 97, - 100, - 104, - 101, - 97, - 108, - 116, - 104, - 109, - 101, - 116, - 104, - 111, - 100, - 118, - 105, - 100, - 101, - 111, - 115, - 115, - 99, - 104, - 111, - 111, - 108, - 102, - 117, - 116, - 117, - 114, - 101, - 115, - 104, - 97, - 100, - 111, - 119, - 100, - 101, - 98, - 97, - 116, - 101, - 118, - 97, - 108, - 117, - 101, - 115, - 79, - 98, - 106, - 101, - 99, - 116, - 111, - 116, - 104, - 101, - 114, - 115, - 114, - 105, - 103, - 104, - 116, - 115, - 108, - 101, - 97, - 103, - 117, - 101, - 99, - 104, - 114, - 111, - 109, - 101, - 115, - 105, - 109, - 112, - 108, - 101, - 110, - 111, - 116, - 105, - 99, - 101, - 115, - 104, - 97, - 114, - 101, - 100, - 101, - 110, - 100, - 105, - 110, - 103, - 115, - 101, - 97, - 115, - 111, - 110, - 114, - 101, - 112, - 111, - 114, - 116, - 111, - 110, - 108, - 105, - 110, - 101, - 115, - 113, - 117, - 97, - 114, - 101, - 98, - 117, - 116, - 116, - 111, - 110, - 105, - 109, - 97, - 103, - 101, - 115, - 101, - 110, - 97, - 98, - 108, - 101, - 109, - 111, - 118, - 105, - 110, - 103, - 108, - 97, - 116, - 101, - 115, - 116, - 119, - 105, - 110, - 116, - 101, - 114, - 70, - 114, - 97, - 110, - 99, - 101, - 112, - 101, - 114, - 105, - 111, - 100, - 115, - 116, - 114, - 111, - 110, - 103, - 114, - 101, - 112, - 101, - 97, - 116, - 76, - 111, - 110, - 100, - 111, - 110, - 100, - 101, - 116, - 97, - 105, - 108, - 102, - 111, - 114, - 109, - 101, - 100, - 100, - 101, - 109, - 97, - 110, - 100, - 115, - 101, - 99, - 117, - 114, - 101, - 112, - 97, - 115, - 115, - 101, - 100, - 116, - 111, - 103, - 103, - 108, - 101, - 112, - 108, - 97, - 99, - 101, - 115, - 100, - 101, - 118, - 105, - 99, - 101, - 115, - 116, - 97, - 116, - 105, - 99, - 99, - 105, - 116, - 105, - 101, - 115, - 115, - 116, - 114, - 101, - 97, - 109, - 121, - 101, - 108, - 108, - 111, - 119, - 97, - 116, - 116, - 97, - 99, - 107, - 115, - 116, - 114, - 101, - 101, - 116, - 102, - 108, - 105, - 103, - 104, - 116, - 104, - 105, - 100, - 100, - 101, - 110, - 105, - 110, - 102, - 111, - 34, - 62, - 111, - 112, - 101, - 110, - 101, - 100, - 117, - 115, - 101, - 102, - 117, - 108, - 118, - 97, - 108, - 108, - 101, - 121, - 99, - 97, - 117, - 115, - 101, - 115, - 108, - 101, - 97, - 100, - 101, - 114, - 115, - 101, - 99, - 114, - 101, - 116, - 115, - 101, - 99, - 111, - 110, - 100, - 100, - 97, - 109, - 97, - 103, - 101, - 115, - 112, - 111, - 114, - 116, - 115, - 101, - 120, - 99, - 101, - 112, - 116, - 114, - 97, - 116, - 105, - 110, - 103, - 115, - 105, - 103, - 110, - 101, - 100, - 116, - 104, - 105, - 110, - 103, - 115, - 101, - 102, - 102, - 101, - 99, - 116, - 102, - 105, - 101, - 108, - 100, - 115, - 115, - 116, - 97, - 116, - 101, - 115, - 111, - 102, - 102, - 105, - 99, - 101, - 118, - 105, - 115, - 117, - 97, - 108, - 101, - 100, - 105, - 116, - 111, - 114, - 118, - 111, - 108, - 117, - 109, - 101, - 82, - 101, - 112, - 111, - 114, - 116, - 109, - 117, - 115, - 101, - 117, - 109, - 109, - 111, - 118, - 105, - 101, - 115, - 112, - 97, - 114, - 101, - 110, - 116, - 97, - 99, - 99, - 101, - 115, - 115, - 109, - 111, - 115, - 116, - 108, - 121, - 109, - 111, - 116, - 104, - 101, - 114, - 34, - 32, - 105, - 100, - 61, - 34, - 109, - 97, - 114, - 107, - 101, - 116, - 103, - 114, - 111, - 117, - 110, - 100, - 99, - 104, - 97, - 110, - 99, - 101, - 115, - 117, - 114, - 118, - 101, - 121, - 98, - 101, - 102, - 111, - 114, - 101, - 115, - 121, - 109, - 98, - 111, - 108, - 109, - 111, - 109, - 101, - 110, - 116, - 115, - 112, - 101, - 101, - 99, - 104, - 109, - 111, - 116, - 105, - 111, - 110, - 105, - 110, - 115, - 105, - 100, - 101, - 109, - 97, - 116, - 116, - 101, - 114, - 67, - 101, - 110, - 116, - 101, - 114, - 111, - 98, - 106, - 101, - 99, - 116, - 101, - 120, - 105, - 115, - 116, - 115, - 109, - 105, - 100, - 100, - 108, - 101, - 69, - 117, - 114, - 111, - 112, - 101, - 103, - 114, - 111, - 119, - 116, - 104, - 108, - 101, - 103, - 97, - 99, - 121, - 109, - 97, - 110, - 110, - 101, - 114, - 101, - 110, - 111, - 117, - 103, - 104, - 99, - 97, - 114, - 101, - 101, - 114, - 97, - 110, - 115, - 119, - 101, - 114, - 111, - 114, - 105, - 103, - 105, - 110, - 112, - 111, - 114, - 116, - 97, - 108, - 99, - 108, - 105, - 101, - 110, - 116, - 115, - 101, - 108, - 101, - 99, - 116, - 114, - 97, - 110, - 100, - 111, - 109, - 99, - 108, - 111, - 115, - 101, - 100, - 116, - 111, - 112, - 105, - 99, - 115, - 99, - 111, - 109, - 105, - 110, - 103, - 102, - 97, - 116, - 104, - 101, - 114, - 111, - 112, - 116, - 105, - 111, - 110, - 115, - 105, - 109, - 112, - 108, - 121, - 114, - 97, - 105, - 115, - 101, - 100, - 101, - 115, - 99, - 97, - 112, - 101, - 99, - 104, - 111, - 115, - 101, - 110, - 99, - 104, - 117, - 114, - 99, - 104, - 100, - 101, - 102, - 105, - 110, - 101, - 114, - 101, - 97, - 115, - 111, - 110, - 99, - 111, - 114, - 110, - 101, - 114, - 111, - 117, - 116, - 112, - 117, - 116, - 109, - 101, - 109, - 111, - 114, - 121, - 105, - 102, - 114, - 97, - 109, - 101, - 112, - 111, - 108, - 105, - 99, - 101, - 109, - 111, - 100, - 101, - 108, - 115, - 78, - 117, - 109, - 98, - 101, - 114, - 100, - 117, - 114, - 105, - 110, - 103, - 111, - 102, - 102, - 101, - 114, - 115, - 115, - 116, - 121, - 108, - 101, - 115, - 107, - 105, - 108, - 108, - 101, - 100, - 108, - 105, - 115, - 116, - 101, - 100, - 99, - 97, - 108, - 108, - 101, - 100, - 115, - 105, - 108, - 118, - 101, - 114, - 109, - 97, - 114, - 103, - 105, - 110, - 100, - 101, - 108, - 101, - 116, - 101, - 98, - 101, - 116, - 116, - 101, - 114, - 98, - 114, - 111, - 119, - 115, - 101, - 108, - 105, - 109, - 105, - 116, - 115, - 71, - 108, - 111, - 98, - 97, - 108, - 115, - 105, - 110, - 103, - 108, - 101, - 119, - 105, - 100, - 103, - 101, - 116, - 99, - 101, - 110, - 116, - 101, - 114, - 98, - 117, - 100, - 103, - 101, - 116, - 110, - 111, - 119, - 114, - 97, - 112, - 99, - 114, - 101, - 100, - 105, - 116, - 99, - 108, - 97, - 105, - 109, - 115, - 101, - 110, - 103, - 105, - 110, - 101, - 115, - 97, - 102, - 101, - 116, - 121, - 99, - 104, - 111, - 105, - 99, - 101, - 115, - 112, - 105, - 114, - 105, - 116, - 45, - 115, - 116, - 121, - 108, - 101, - 115, - 112, - 114, - 101, - 97, - 100, - 109, - 97, - 107, - 105, - 110, - 103, - 110, - 101, - 101, - 100, - 101, - 100, - 114, - 117, - 115, - 115, - 105, - 97, - 112, - 108, - 101, - 97, - 115, - 101, - 101, - 120, - 116, - 101, - 110, - 116, - 83, - 99, - 114, - 105, - 112, - 116, - 98, - 114, - 111, - 107, - 101, - 110, - 97, - 108, - 108, - 111, - 119, - 115, - 99, - 104, - 97, - 114, - 103, - 101, - 100, - 105, - 118, - 105, - 100, - 101, - 102, - 97, - 99, - 116, - 111, - 114, - 109, - 101, - 109, - 98, - 101, - 114, - 45, - 98, - 97, - 115, - 101, - 100, - 116, - 104, - 101, - 111, - 114, - 121, - 99, - 111, - 110, - 102, - 105, - 103, - 97, - 114, - 111, - 117, - 110, - 100, - 119, - 111, - 114, - 107, - 101, - 100, - 104, - 101, - 108, - 112, - 101, - 100, - 67, - 104, - 117, - 114, - 99, - 104, - 105, - 109, - 112, - 97, - 99, - 116, - 115, - 104, - 111, - 117, - 108, - 100, - 97, - 108, - 119, - 97, - 121, - 115, - 108, - 111, - 103, - 111, - 34, - 32, - 98, - 111, - 116, - 116, - 111, - 109, - 108, - 105, - 115, - 116, - 34, - 62, - 41, - 123, - 118, - 97, - 114, - 32, - 112, - 114, - 101, - 102, - 105, - 120, - 111, - 114, - 97, - 110, - 103, - 101, - 72, - 101, - 97, - 100, - 101, - 114, - 46, - 112, - 117, - 115, - 104, - 40, - 99, - 111, - 117, - 112, - 108, - 101, - 103, - 97, - 114, - 100, - 101, - 110, - 98, - 114, - 105, - 100, - 103, - 101, - 108, - 97, - 117, - 110, - 99, - 104, - 82, - 101, - 118, - 105, - 101, - 119, - 116, - 97, - 107, - 105, - 110, - 103, - 118, - 105, - 115, - 105, - 111, - 110, - 108, - 105, - 116, - 116, - 108, - 101, - 100, - 97, - 116, - 105, - 110, - 103, - 66, - 117, - 116, - 116, - 111, - 110, - 98, - 101, - 97, - 117, - 116, - 121, - 116, - 104, - 101, - 109, - 101, - 115, - 102, - 111, - 114, - 103, - 111, - 116, - 83, - 101, - 97, - 114, - 99, - 104, - 97, - 110, - 99, - 104, - 111, - 114, - 97, - 108, - 109, - 111, - 115, - 116, - 108, - 111, - 97, - 100, - 101, - 100, - 67, - 104, - 97, - 110, - 103, - 101, - 114, - 101, - 116, - 117, - 114, - 110, - 115, - 116, - 114, - 105, - 110, - 103, - 114, - 101, - 108, - 111, - 97, - 100, - 77, - 111, - 98, - 105, - 108, - 101, - 105, - 110, - 99, - 111, - 109, - 101, - 115, - 117, - 112, - 112, - 108, - 121, - 83, - 111, - 117, - 114, - 99, - 101, - 111, - 114, - 100, - 101, - 114, - 115, - 118, - 105, - 101, - 119, - 101, - 100, - 38, - 110, - 98, - 115, - 112, - 59, - 99, - 111, - 117, - 114, - 115, - 101, - 65, - 98, - 111, - 117, - 116, - 32, - 105, - 115, - 108, - 97, - 110, - 100, - 60, - 104, - 116, - 109, - 108, - 32, - 99, - 111, - 111, - 107, - 105, - 101, - 110, - 97, - 109, - 101, - 61, - 34, - 97, - 109, - 97, - 122, - 111, - 110, - 109, - 111, - 100, - 101, - 114, - 110, - 97, - 100, - 118, - 105, - 99, - 101, - 105, - 110, - 60, - 47, - 97, - 62, - 58, - 32, - 84, - 104, - 101, - 32, - 100, - 105, - 97, - 108, - 111, - 103, - 104, - 111, - 117, - 115, - 101, - 115, - 66, - 69, - 71, - 73, - 78, - 32, - 77, - 101, - 120, - 105, - 99, - 111, - 115, - 116, - 97, - 114, - 116, - 115, - 99, - 101, - 110, - 116, - 114, - 101, - 104, - 101, - 105, - 103, - 104, - 116, - 97, - 100, - 100, - 105, - 110, - 103, - 73, - 115, - 108, - 97, - 110, - 100, - 97, - 115, - 115, - 101, - 116, - 115, - 69, - 109, - 112, - 105, - 114, - 101, - 83, - 99, - 104, - 111, - 111, - 108, - 101, - 102, - 102, - 111, - 114, - 116, - 100, - 105, - 114, - 101, - 99, - 116, - 110, - 101, - 97, - 114, - 108, - 121, - 109, - 97, - 110, - 117, - 97, - 108, - 83, - 101, - 108, - 101, - 99, - 116, - 46, - 10, - 10, - 79, - 110, - 101, - 106, - 111, - 105, - 110, - 101, - 100, - 109, - 101, - 110, - 117, - 34, - 62, - 80, - 104, - 105, - 108, - 105, - 112, - 97, - 119, - 97, - 114, - 100, - 115, - 104, - 97, - 110, - 100, - 108, - 101, - 105, - 109, - 112, - 111, - 114, - 116, - 79, - 102, - 102, - 105, - 99, - 101, - 114, - 101, - 103, - 97, - 114, - 100, - 115, - 107, - 105, - 108, - 108, - 115, - 110, - 97, - 116, - 105, - 111, - 110, - 83, - 112, - 111, - 114, - 116, - 115, - 100, - 101, - 103, - 114, - 101, - 101, - 119, - 101, - 101, - 107, - 108, - 121, - 32, - 40, - 101, - 46, - 103, - 46, - 98, - 101, - 104, - 105, - 110, - 100, - 100, - 111, - 99, - 116, - 111, - 114, - 108, - 111, - 103, - 103, - 101, - 100, - 117, - 110, - 105, - 116, - 101, - 100, - 60, - 47, - 98, - 62, - 60, - 47, - 98, - 101, - 103, - 105, - 110, - 115, - 112, - 108, - 97, - 110, - 116, - 115, - 97, - 115, - 115, - 105, - 115, - 116, - 97, - 114, - 116, - 105, - 115, - 116, - 105, - 115, - 115, - 117, - 101, - 100, - 51, - 48, - 48, - 112, - 120, - 124, - 99, - 97, - 110, - 97, - 100, - 97, - 97, - 103, - 101, - 110, - 99, - 121, - 115, - 99, - 104, - 101, - 109, - 101, - 114, - 101, - 109, - 97, - 105, - 110, - 66, - 114, - 97, - 122, - 105, - 108, - 115, - 97, - 109, - 112, - 108, - 101, - 108, - 111, - 103, - 111, - 34, - 62, - 98, - 101, - 121, - 111, - 110, - 100, - 45, - 115, - 99, - 97, - 108, - 101, - 97, - 99, - 99, - 101, - 112, - 116, - 115, - 101, - 114, - 118, - 101, - 100, - 109, - 97, - 114, - 105, - 110, - 101, - 70, - 111, - 111, - 116, - 101, - 114, - 99, - 97, - 109, - 101, - 114, - 97, - 60, - 47, - 104, - 49, - 62, - 10, - 95, - 102, - 111, - 114, - 109, - 34, - 108, - 101, - 97, - 118, - 101, - 115, - 115, - 116, - 114, - 101, - 115, - 115, - 34, - 32, - 47, - 62, - 13, - 10, - 46, - 103, - 105, - 102, - 34, - 32, - 111, - 110, - 108, - 111, - 97, - 100, - 108, - 111, - 97, - 100, - 101, - 114, - 79, - 120, - 102, - 111, - 114, - 100, - 115, - 105, - 115, - 116, - 101, - 114, - 115, - 117, - 114, - 118, - 105, - 118, - 108, - 105, - 115, - 116, - 101, - 110, - 102, - 101, - 109, - 97, - 108, - 101, - 68, - 101, - 115, - 105, - 103, - 110, - 115, - 105, - 122, - 101, - 61, - 34, - 97, - 112, - 112, - 101, - 97, - 108, - 116, - 101, - 120, - 116, - 34, - 62, - 108, - 101, - 118, - 101, - 108, - 115, - 116, - 104, - 97, - 110, - 107, - 115, - 104, - 105, - 103, - 104, - 101, - 114, - 102, - 111, - 114, - 99, - 101, - 100, - 97, - 110, - 105, - 109, - 97, - 108, - 97, - 110, - 121, - 111, - 110, - 101, - 65, - 102, - 114, - 105, - 99, - 97, - 97, - 103, - 114, - 101, - 101, - 100, - 114, - 101, - 99, - 101, - 110, - 116, - 80, - 101, - 111, - 112, - 108, - 101, - 60, - 98, - 114, - 32, - 47, - 62, - 119, - 111, - 110, - 100, - 101, - 114, - 112, - 114, - 105, - 99, - 101, - 115, - 116, - 117, - 114, - 110, - 101, - 100, - 124, - 124, - 32, - 123, - 125, - 59, - 109, - 97, - 105, - 110, - 34, - 62, - 105, - 110, - 108, - 105, - 110, - 101, - 115, - 117, - 110, - 100, - 97, - 121, - 119, - 114, - 97, - 112, - 34, - 62, - 102, - 97, - 105, - 108, - 101, - 100, - 99, - 101, - 110, - 115, - 117, - 115, - 109, - 105, - 110, - 117, - 116, - 101, - 98, - 101, - 97, - 99, - 111, - 110, - 113, - 117, - 111, - 116, - 101, - 115, - 49, - 53, - 48, - 112, - 120, - 124, - 101, - 115, - 116, - 97, - 116, - 101, - 114, - 101, - 109, - 111, - 116, - 101, - 101, - 109, - 97, - 105, - 108, - 34, - 108, - 105, - 110, - 107, - 101, - 100, - 114, - 105, - 103, - 104, - 116, - 59, - 115, - 105, - 103, - 110, - 97, - 108, - 102, - 111, - 114, - 109, - 97, - 108, - 49, - 46, - 104, - 116, - 109, - 108, - 115, - 105, - 103, - 110, - 117, - 112, - 112, - 114, - 105, - 110, - 99, - 101, - 102, - 108, - 111, - 97, - 116, - 58, - 46, - 112, - 110, - 103, - 34, - 32, - 102, - 111, - 114, - 117, - 109, - 46, - 65, - 99, - 99, - 101, - 115, - 115, - 112, - 97, - 112, - 101, - 114, - 115, - 115, - 111, - 117, - 110, - 100, - 115, - 101, - 120, - 116, - 101, - 110, - 100, - 72, - 101, - 105, - 103, - 104, - 116, - 115, - 108, - 105, - 100, - 101, - 114, - 85, - 84, - 70, - 45, - 56, - 34, - 38, - 97, - 109, - 112, - 59, - 32, - 66, - 101, - 102, - 111, - 114, - 101, - 46, - 32, - 87, - 105, - 116, - 104, - 115, - 116, - 117, - 100, - 105, - 111, - 111, - 119, - 110, - 101, - 114, - 115, - 109, - 97, - 110, - 97, - 103, - 101, - 112, - 114, - 111, - 102, - 105, - 116, - 106, - 81, - 117, - 101, - 114, - 121, - 97, - 110, - 110, - 117, - 97, - 108, - 112, - 97, - 114, - 97, - 109, - 115, - 98, - 111, - 117, - 103, - 104, - 116, - 102, - 97, - 109, - 111, - 117, - 115, - 103, - 111, - 111, - 103, - 108, - 101, - 108, - 111, - 110, - 103, - 101, - 114, - 105, - 43, - 43, - 41, - 32, - 123, - 105, - 115, - 114, - 97, - 101, - 108, - 115, - 97, - 121, - 105, - 110, - 103, - 100, - 101, - 99, - 105, - 100, - 101, - 104, - 111, - 109, - 101, - 34, - 62, - 104, - 101, - 97, - 100, - 101, - 114, - 101, - 110, - 115, - 117, - 114, - 101, - 98, - 114, - 97, - 110, - 99, - 104, - 112, - 105, - 101, - 99, - 101, - 115, - 98, - 108, - 111, - 99, - 107, - 59, - 115, - 116, - 97, - 116, - 101, - 100, - 116, - 111, - 112, - 34, - 62, - 60, - 114, - 97, - 99, - 105, - 110, - 103, - 114, - 101, - 115, - 105, - 122, - 101, - 45, - 45, - 38, - 103, - 116, - 59, - 112, - 97, - 99, - 105, - 116, - 121, - 115, - 101, - 120, - 117, - 97, - 108, - 98, - 117, - 114, - 101, - 97, - 117, - 46, - 106, - 112, - 103, - 34, - 32, - 49, - 48, - 44, - 48, - 48, - 48, - 111, - 98, - 116, - 97, - 105, - 110, - 116, - 105, - 116, - 108, - 101, - 115, - 97, - 109, - 111, - 117, - 110, - 116, - 44, - 32, - 73, - 110, - 99, - 46, - 99, - 111, - 109, - 101, - 100, - 121, - 109, - 101, - 110, - 117, - 34, - 32, - 108, - 121, - 114, - 105, - 99, - 115, - 116, - 111, - 100, - 97, - 121, - 46, - 105, - 110, - 100, - 101, - 101, - 100, - 99, - 111, - 117, - 110, - 116, - 121, - 95, - 108, - 111, - 103, - 111, - 46, - 70, - 97, - 109, - 105, - 108, - 121, - 108, - 111, - 111, - 107, - 101, - 100, - 77, - 97, - 114, - 107, - 101, - 116, - 108, - 115, - 101, - 32, - 105, - 102, - 80, - 108, - 97, - 121, - 101, - 114, - 116, - 117, - 114, - 107, - 101, - 121, - 41, - 59, - 118, - 97, - 114, - 32, - 102, - 111, - 114, - 101, - 115, - 116, - 103, - 105, - 118, - 105, - 110, - 103, - 101, - 114, - 114, - 111, - 114, - 115, - 68, - 111, - 109, - 97, - 105, - 110, - 125, - 101, - 108, - 115, - 101, - 123, - 105, - 110, - 115, - 101, - 114, - 116, - 66, - 108, - 111, - 103, - 60, - 47, - 102, - 111, - 111, - 116, - 101, - 114, - 108, - 111, - 103, - 105, - 110, - 46, - 102, - 97, - 115, - 116, - 101, - 114, - 97, - 103, - 101, - 110, - 116, - 115, - 60, - 98, - 111, - 100, - 121, - 32, - 49, - 48, - 112, - 120, - 32, - 48, - 112, - 114, - 97, - 103, - 109, - 97, - 102, - 114, - 105, - 100, - 97, - 121, - 106, - 117, - 110, - 105, - 111, - 114, - 100, - 111, - 108, - 108, - 97, - 114, - 112, - 108, - 97, - 99, - 101, - 100, - 99, - 111, - 118, - 101, - 114, - 115, - 112, - 108, - 117, - 103, - 105, - 110, - 53, - 44, - 48, - 48, - 48, - 32, - 112, - 97, - 103, - 101, - 34, - 62, - 98, - 111, - 115, - 116, - 111, - 110, - 46, - 116, - 101, - 115, - 116, - 40, - 97, - 118, - 97, - 116, - 97, - 114, - 116, - 101, - 115, - 116, - 101, - 100, - 95, - 99, - 111, - 117, - 110, - 116, - 102, - 111, - 114, - 117, - 109, - 115, - 115, - 99, - 104, - 101, - 109, - 97, - 105, - 110, - 100, - 101, - 120, - 44, - 102, - 105, - 108, - 108, - 101, - 100, - 115, - 104, - 97, - 114, - 101, - 115, - 114, - 101, - 97, - 100, - 101, - 114, - 97, - 108, - 101, - 114, - 116, - 40, - 97, - 112, - 112, - 101, - 97, - 114, - 83, - 117, - 98, - 109, - 105, - 116, - 108, - 105, - 110, - 101, - 34, - 62, - 98, - 111, - 100, - 121, - 34, - 62, - 10, - 42, - 32, - 84, - 104, - 101, - 84, - 104, - 111, - 117, - 103, - 104, - 115, - 101, - 101, - 105, - 110, - 103, - 106, - 101, - 114, - 115, - 101, - 121, - 78, - 101, - 119, - 115, - 60, - 47, - 118, - 101, - 114, - 105, - 102, - 121, - 101, - 120, - 112, - 101, - 114, - 116, - 105, - 110, - 106, - 117, - 114, - 121, - 119, - 105, - 100, - 116, - 104, - 61, - 67, - 111, - 111, - 107, - 105, - 101, - 83, - 84, - 65, - 82, - 84, - 32, - 97, - 99, - 114, - 111, - 115, - 115, - 95, - 105, - 109, - 97, - 103, - 101, - 116, - 104, - 114, - 101, - 97, - 100, - 110, - 97, - 116, - 105, - 118, - 101, - 112, - 111, - 99, - 107, - 101, - 116, - 98, - 111, - 120, - 34, - 62, - 10, - 83, - 121, - 115, - 116, - 101, - 109, - 32, - 68, - 97, - 118, - 105, - 100, - 99, - 97, - 110, - 99, - 101, - 114, - 116, - 97, - 98, - 108, - 101, - 115, - 112, - 114, - 111, - 118, - 101, - 100, - 65, - 112, - 114, - 105, - 108, - 32, - 114, - 101, - 97, - 108, - 108, - 121, - 100, - 114, - 105, - 118, - 101, - 114, - 105, - 116, - 101, - 109, - 34, - 62, - 109, - 111, - 114, - 101, - 34, - 62, - 98, - 111, - 97, - 114, - 100, - 115, - 99, - 111, - 108, - 111, - 114, - 115, - 99, - 97, - 109, - 112, - 117, - 115, - 102, - 105, - 114, - 115, - 116, - 32, - 124, - 124, - 32, - 91, - 93, - 59, - 109, - 101, - 100, - 105, - 97, - 46, - 103, - 117, - 105, - 116, - 97, - 114, - 102, - 105, - 110, - 105, - 115, - 104, - 119, - 105, - 100, - 116, - 104, - 58, - 115, - 104, - 111, - 119, - 101, - 100, - 79, - 116, - 104, - 101, - 114, - 32, - 46, - 112, - 104, - 112, - 34, - 32, - 97, - 115, - 115, - 117, - 109, - 101, - 108, - 97, - 121, - 101, - 114, - 115, - 119, - 105, - 108, - 115, - 111, - 110, - 115, - 116, - 111, - 114, - 101, - 115, - 114, - 101, - 108, - 105, - 101, - 102, - 115, - 119, - 101, - 100, - 101, - 110, - 67, - 117, - 115, - 116, - 111, - 109, - 101, - 97, - 115, - 105, - 108, - 121, - 32, - 121, - 111, - 117, - 114, - 32, - 83, - 116, - 114, - 105, - 110, - 103, - 10, - 10, - 87, - 104, - 105, - 108, - 116, - 97, - 121, - 108, - 111, - 114, - 99, - 108, - 101, - 97, - 114, - 58, - 114, - 101, - 115, - 111, - 114, - 116, - 102, - 114, - 101, - 110, - 99, - 104, - 116, - 104, - 111, - 117, - 103, - 104, - 34, - 41, - 32, - 43, - 32, - 34, - 60, - 98, - 111, - 100, - 121, - 62, - 98, - 117, - 121, - 105, - 110, - 103, - 98, - 114, - 97, - 110, - 100, - 115, - 77, - 101, - 109, - 98, - 101, - 114, - 110, - 97, - 109, - 101, - 34, - 62, - 111, - 112, - 112, - 105, - 110, - 103, - 115, - 101, - 99, - 116, - 111, - 114, - 53, - 112, - 120, - 59, - 34, - 62, - 118, - 115, - 112, - 97, - 99, - 101, - 112, - 111, - 115, - 116, - 101, - 114, - 109, - 97, - 106, - 111, - 114, - 32, - 99, - 111, - 102, - 102, - 101, - 101, - 109, - 97, - 114, - 116, - 105, - 110, - 109, - 97, - 116, - 117, - 114, - 101, - 104, - 97, - 112, - 112, - 101, - 110, - 60, - 47, - 110, - 97, - 118, - 62, - 107, - 97, - 110, - 115, - 97, - 115, - 108, - 105, - 110, - 107, - 34, - 62, - 73, - 109, - 97, - 103, - 101, - 115, - 61, - 102, - 97, - 108, - 115, - 101, - 119, - 104, - 105, - 108, - 101, - 32, - 104, - 115, - 112, - 97, - 99, - 101, - 48, - 38, - 97, - 109, - 112, - 59, - 32, - 10, - 10, - 73, - 110, - 32, - 32, - 112, - 111, - 119, - 101, - 114, - 80, - 111, - 108, - 115, - 107, - 105, - 45, - 99, - 111, - 108, - 111, - 114, - 106, - 111, - 114, - 100, - 97, - 110, - 66, - 111, - 116, - 116, - 111, - 109, - 83, - 116, - 97, - 114, - 116, - 32, - 45, - 99, - 111, - 117, - 110, - 116, - 50, - 46, - 104, - 116, - 109, - 108, - 110, - 101, - 119, - 115, - 34, - 62, - 48, - 49, - 46, - 106, - 112, - 103, - 79, - 110, - 108, - 105, - 110, - 101, - 45, - 114, - 105, - 103, - 104, - 116, - 109, - 105, - 108, - 108, - 101, - 114, - 115, - 101, - 110, - 105, - 111, - 114, - 73, - 83, - 66, - 78, - 32, - 48, - 48, - 44, - 48, - 48, - 48, - 32, - 103, - 117, - 105, - 100, - 101, - 115, - 118, - 97, - 108, - 117, - 101, - 41, - 101, - 99, - 116, - 105, - 111, - 110, - 114, - 101, - 112, - 97, - 105, - 114, - 46, - 120, - 109, - 108, - 34, - 32, - 32, - 114, - 105, - 103, - 104, - 116, - 115, - 46, - 104, - 116, - 109, - 108, - 45, - 98, - 108, - 111, - 99, - 107, - 114, - 101, - 103, - 69, - 120, - 112, - 58, - 104, - 111, - 118, - 101, - 114, - 119, - 105, - 116, - 104, - 105, - 110, - 118, - 105, - 114, - 103, - 105, - 110, - 112, - 104, - 111, - 110, - 101, - 115, - 60, - 47, - 116, - 114, - 62, - 13, - 117, - 115, - 105, - 110, - 103, - 32, - 10, - 9, - 118, - 97, - 114, - 32, - 62, - 39, - 41, - 59, - 10, - 9, - 60, - 47, - 116, - 100, - 62, - 10, - 60, - 47, - 116, - 114, - 62, - 10, - 98, - 97, - 104, - 97, - 115, - 97, - 98, - 114, - 97, - 115, - 105, - 108, - 103, - 97, - 108, - 101, - 103, - 111, - 109, - 97, - 103, - 121, - 97, - 114, - 112, - 111, - 108, - 115, - 107, - 105, - 115, - 114, - 112, - 115, - 107, - 105, - 216, - 177, - 216, - 175, - 217, - 136, - 228, - 184, - 173, - 230, - 150, - 135, - 231, - 174, - 128, - 228, - 189, - 147, - 231, - 185, - 129, - 233, - 171, - 148, - 228, - 191, - 161, - 230, - 129, - 175, - 228, - 184, - 173, - 229, - 155, - 189, - 230, - 136, - 145, - 228, - 187, - 172, - 228, - 184, - 128, - 228, - 184, - 170, - 229, - 133, - 172, - 229, - 143, - 184, - 231, - 174, - 161, - 231, - 144, - 134, - 232, - 174, - 186, - 229, - 157, - 155, - 229, - 143, - 175, - 228, - 187, - 165, - 230, - 156, - 141, - 229, - 138, - 161, - 230, - 151, - 182, - 233, - 151, - 180, - 228, - 184, - 170, - 228, - 186, - 186, - 228, - 186, - 167, - 229, - 147, - 129, - 232, - 135, - 170, - 229, - 183, - 177, - 228, - 188, - 129, - 228, - 184, - 154, - 230, - 159, - 165, - 231, - 156, - 139, - 229, - 183, - 165, - 228, - 189, - 156, - 232, - 129, - 148, - 231, - 179, - 187, - 230, - 178, - 161, - 230, - 156, - 137, - 231, - 189, - 145, - 231, - 171, - 153, - 230, - 137, - 128, - 230, - 156, - 137, - 232, - 175, - 132, - 232, - 174, - 186, - 228, - 184, - 173, - 229, - 191, - 131, - 230, - 150, - 135, - 231, - 171, - 160, - 231, - 148, - 168, - 230, - 136, - 183, - 233, - 166, - 150, - 233, - 161, - 181, - 228, - 189, - 156, - 232, - 128, - 133, - 230, - 138, - 128, - 230, - 156, - 175, - 233, - 151, - 174, - 233, - 162, - 152, - 231, - 155, - 184, - 229, - 133, - 179, - 228, - 184, - 139, - 232, - 189, - 189, - 230, - 144, - 156, - 231, - 180, - 162, - 228, - 189, - 191, - 231, - 148, - 168, - 232, - 189, - 175, - 228, - 187, - 182, - 229, - 156, - 168, - 231, - 186, - 191, - 228, - 184, - 187, - 233, - 162, - 152, - 232, - 181, - 132, - 230, - 150, - 153, - 232, - 167, - 134, - 233, - 162, - 145, - 229, - 155, - 158, - 229, - 164, - 141, - 230, - 179, - 168, - 229, - 134, - 140, - 231, - 189, - 145, - 231, - 187, - 156, - 230, - 148, - 182, - 232, - 151, - 143, - 229, - 134, - 133, - 229, - 174, - 185, - 230, - 142, - 168, - 232, - 141, - 144, - 229, - 184, - 130, - 229, - 156, - 186, - 230, - 182, - 136, - 230, - 129, - 175, - 231, - 169, - 186, - 233, - 151, - 180, - 229, - 143, - 145, - 229, - 184, - 131, - 228, - 187, - 128, - 228, - 185, - 136, - 229, - 165, - 189, - 229, - 143, - 139, - 231, - 148, - 159, - 230, - 180, - 187, - 229, - 155, - 190, - 231, - 137, - 135, - 229, - 143, - 145, - 229, - 177, - 149, - 229, - 166, - 130, - 230, - 158, - 156, - 230, - 137, - 139, - 230, - 156, - 186, - 230, - 150, - 176, - 233, - 151, - 187, - 230, - 156, - 128, - 230, - 150, - 176, - 230, - 150, - 185, - 229, - 188, - 143, - 229, - 140, - 151, - 228, - 186, - 172, - 230, - 143, - 144, - 228, - 190, - 155, - 229, - 133, - 179, - 228, - 186, - 142, - 230, - 155, - 180, - 229, - 164, - 154, - 232, - 191, - 153, - 228, - 184, - 170, - 231, - 179, - 187, - 231, - 187, - 159, - 231, - 159, - 165, - 233, - 129, - 147, - 230, - 184, - 184, - 230, - 136, - 143, - 229, - 185, - 191, - 229, - 145, - 138, - 229, - 133, - 182, - 228, - 187, - 150, - 229, - 143, - 145, - 232, - 161, - 168, - 229, - 174, - 137, - 229, - 133, - 168, - 231, - 172, - 172, - 228, - 184, - 128, - 228, - 188, - 154, - 229, - 145, - 152, - 232, - 191, - 155, - 232, - 161, - 140, - 231, - 130, - 185, - 229, - 135, - 187, - 231, - 137, - 136, - 230, - 157, - 131, - 231, - 148, - 181, - 229, - 173, - 144, - 228, - 184, - 150, - 231, - 149, - 140, - 232, - 174, - 190, - 232, - 174, - 161, - 229, - 133, - 141, - 232, - 180, - 185, - 230, - 149, - 153, - 232, - 130, - 178, - 229, - 138, - 160, - 229, - 133, - 165, - 230, - 180, - 187, - 229, - 138, - 168, - 228, - 187, - 150, - 228, - 187, - 172, - 229, - 149, - 134, - 229, - 147, - 129, - 229, - 141, - 154, - 229, - 174, - 162, - 231, - 142, - 176, - 229, - 156, - 168, - 228, - 184, - 138, - 230, - 181, - 183, - 229, - 166, - 130, - 228, - 189, - 149, - 229, - 183, - 178, - 231, - 187, - 143, - 231, - 149, - 153, - 232, - 168, - 128, - 232, - 175, - 166, - 231, - 187, - 134, - 231, - 164, - 190, - 229, - 140, - 186, - 231, - 153, - 187, - 229, - 189, - 149, - 230, - 156, - 172, - 231, - 171, - 153, - 233, - 156, - 128, - 232, - 166, - 129, - 228, - 187, - 183, - 230, - 160, - 188, - 230, - 148, - 175, - 230, - 140, - 129, - 229, - 155, - 189, - 233, - 153, - 133, - 233, - 147, - 190, - 230, - 142, - 165, - 229, - 155, - 189, - 229, - 174, - 182, - 229, - 187, - 186, - 232, - 174, - 190, - 230, - 156, - 139, - 229, - 143, - 139, - 233, - 152, - 133, - 232, - 175, - 187, - 230, - 179, - 149, - 229, - 190, - 139, - 228, - 189, - 141, - 231, - 189, - 174, - 231, - 187, - 143, - 230, - 181, - 142, - 233, - 128, - 137, - 230, - 139, - 169, - 232, - 191, - 153, - 230, - 160, - 183, - 229, - 189, - 147, - 229, - 137, - 141, - 229, - 136, - 134, - 231, - 177, - 187, - 230, - 142, - 146, - 232, - 161, - 140, - 229, - 155, - 160, - 228, - 184, - 186, - 228, - 186, - 164, - 230, - 152, - 147, - 230, - 156, - 128, - 229, - 144, - 142, - 233, - 159, - 179, - 228, - 185, - 144, - 228, - 184, - 141, - 232, - 131, - 189, - 233, - 128, - 154, - 232, - 191, - 135, - 232, - 161, - 140, - 228, - 184, - 154, - 231, - 167, - 145, - 230, - 138, - 128, - 229, - 143, - 175, - 232, - 131, - 189, - 232, - 174, - 190, - 229, - 164, - 135, - 229, - 144, - 136, - 228, - 189, - 156, - 229, - 164, - 167, - 229, - 174, - 182, - 231, - 164, - 190, - 228, - 188, - 154, - 231, - 160, - 148, - 231, - 169, - 182, - 228, - 184, - 147, - 228, - 184, - 154, - 229, - 133, - 168, - 233, - 131, - 168, - 233, - 161, - 185, - 231, - 155, - 174, - 232, - 191, - 153, - 233, - 135, - 140, - 232, - 191, - 152, - 230, - 152, - 175, - 229, - 188, - 128, - 229, - 167, - 139, - 230, - 131, - 133, - 229, - 134, - 181, - 231, - 148, - 181, - 232, - 132, - 145, - 230, - 150, - 135, - 228, - 187, - 182, - 229, - 147, - 129, - 231, - 137, - 140, - 229, - 184, - 174, - 229, - 138, - 169, - 230, - 150, - 135, - 229, - 140, - 150, - 232, - 181, - 132, - 230, - 186, - 144, - 229, - 164, - 167, - 229, - 173, - 166, - 229, - 173, - 166, - 228, - 185, - 160, - 229, - 156, - 176, - 229, - 157, - 128, - 230, - 181, - 143, - 232, - 167, - 136, - 230, - 138, - 149, - 232, - 181, - 132, - 229, - 183, - 165, - 231, - 168, - 139, - 232, - 166, - 129, - 230, - 177, - 130, - 230, - 128, - 142, - 228, - 185, - 136, - 230, - 151, - 182, - 229, - 128, - 153, - 229, - 138, - 159, - 232, - 131, - 189, - 228, - 184, - 187, - 232, - 166, - 129, - 231, - 155, - 174, - 229, - 137, - 141, - 232, - 181, - 132, - 232, - 174, - 175, - 229, - 159, - 142, - 229, - 184, - 130, - 230, - 150, - 185, - 230, - 179, - 149, - 231, - 148, - 181, - 229, - 189, - 177, - 230, - 139, - 155, - 232, - 129, - 152, - 229, - 163, - 176, - 230, - 152, - 142, - 228, - 187, - 187, - 228, - 189, - 149, - 229, - 129, - 165, - 229, - 186, - 183, - 230, - 149, - 176, - 230, - 141, - 174, - 231, - 190, - 142, - 229, - 155, - 189, - 230, - 177, - 189, - 232, - 189, - 166, - 228, - 187, - 139, - 231, - 187, - 141, - 228, - 189, - 134, - 230, - 152, - 175, - 228, - 186, - 164, - 230, - 181, - 129, - 231, - 148, - 159, - 228, - 186, - 167, - 230, - 137, - 128, - 228, - 187, - 165, - 231, - 148, - 181, - 232, - 175, - 157, - 230, - 152, - 190, - 231, - 164, - 186, - 228, - 184, - 128, - 228, - 186, - 155, - 229, - 141, - 149, - 228, - 189, - 141, - 228, - 186, - 186, - 229, - 145, - 152, - 229, - 136, - 134, - 230, - 158, - 144, - 229, - 156, - 176, - 229, - 155, - 190, - 230, - 151, - 133, - 230, - 184, - 184, - 229, - 183, - 165, - 229, - 133, - 183, - 229, - 173, - 166, - 231, - 148, - 159, - 231, - 179, - 187, - 229, - 136, - 151, - 231, - 189, - 145, - 229, - 143, - 139, - 229, - 184, - 150, - 229, - 173, - 144, - 229, - 175, - 134, - 231, - 160, - 129, - 233, - 162, - 145, - 233, - 129, - 147, - 230, - 142, - 167, - 229, - 136, - 182, - 229, - 156, - 176, - 229, - 140, - 186, - 229, - 159, - 186, - 230, - 156, - 172, - 229, - 133, - 168, - 229, - 155, - 189, - 231, - 189, - 145, - 228, - 184, - 138, - 233, - 135, - 141, - 232, - 166, - 129, - 231, - 172, - 172, - 228, - 186, - 140, - 229, - 150, - 156, - 230, - 172, - 162, - 232, - 191, - 155, - 229, - 133, - 165, - 229, - 143, - 139, - 230, - 131, - 133, - 232, - 191, - 153, - 228, - 186, - 155, - 232, - 128, - 131, - 232, - 175, - 149, - 229, - 143, - 145, - 231, - 142, - 176, - 229, - 159, - 185, - 232, - 174, - 173, - 228, - 187, - 165, - 228, - 184, - 138, - 230, - 148, - 191, - 229, - 186, - 156, - 230, - 136, - 144, - 228, - 184, - 186, - 231, - 142, - 175, - 229, - 162, - 131, - 233, - 166, - 153, - 230, - 184, - 175, - 229, - 144, - 140, - 230, - 151, - 182, - 229, - 168, - 177, - 228, - 185, - 144, - 229, - 143, - 145, - 233, - 128, - 129, - 228, - 184, - 128, - 229, - 174, - 154, - 229, - 188, - 128, - 229, - 143, - 145, - 228, - 189, - 156, - 229, - 147, - 129, - 230, - 160, - 135, - 229, - 135, - 134, - 230, - 172, - 162, - 232, - 191, - 142, - 232, - 167, - 163, - 229, - 134, - 179, - 229, - 156, - 176, - 230, - 150, - 185, - 228, - 184, - 128, - 228, - 184, - 139, - 228, - 187, - 165, - 229, - 143, - 138, - 232, - 180, - 163, - 228, - 187, - 187, - 230, - 136, - 150, - 232, - 128, - 133, - 229, - 174, - 162, - 230, - 136, - 183, - 228, - 187, - 163, - 232, - 161, - 168, - 231, - 167, - 175, - 229, - 136, - 134, - 229, - 165, - 179, - 228, - 186, - 186, - 230, - 149, - 176, - 231, - 160, - 129, - 233, - 148, - 128, - 229, - 148, - 174, - 229, - 135, - 186, - 231, - 142, - 176, - 231, - 166, - 187, - 231, - 186, - 191, - 229, - 186, - 148, - 231, - 148, - 168, - 229, - 136, - 151, - 232, - 161, - 168, - 228, - 184, - 141, - 229, - 144, - 140, - 231, - 188, - 150, - 232, - 190, - 145, - 231, - 187, - 159, - 232, - 174, - 161, - 230, - 159, - 165, - 232, - 175, - 162, - 228, - 184, - 141, - 232, - 166, - 129, - 230, - 156, - 137, - 229, - 133, - 179, - 230, - 156, - 186, - 230, - 158, - 132, - 229, - 190, - 136, - 229, - 164, - 154, - 230, - 146, - 173, - 230, - 148, - 190, - 231, - 187, - 132, - 231, - 187, - 135, - 230, - 148, - 191, - 231, - 173, - 150, - 231, - 155, - 180, - 230, - 142, - 165, - 232, - 131, - 189, - 229, - 138, - 155, - 230, - 157, - 165, - 230, - 186, - 144, - 230, - 153, - 130, - 233, - 150, - 147, - 231, - 156, - 139, - 229, - 136, - 176, - 231, - 131, - 173, - 233, - 151, - 168, - 229, - 133, - 179, - 233, - 148, - 174, - 228, - 184, - 147, - 229, - 140, - 186, - 233, - 157, - 158, - 229, - 184, - 184, - 232, - 139, - 177, - 232, - 175, - 173, - 231, - 153, - 190, - 229, - 186, - 166, - 229, - 184, - 140, - 230, - 156, - 155, - 231, - 190, - 142, - 229, - 165, - 179, - 230, - 175, - 148, - 232, - 190, - 131, - 231, - 159, - 165, - 232, - 175, - 134, - 232, - 167, - 132, - 229, - 174, - 154, - 229, - 187, - 186, - 232, - 174, - 174, - 233, - 131, - 168, - 233, - 151, - 168, - 230, - 132, - 143, - 232, - 167, - 129, - 231, - 178, - 190, - 229, - 189, - 169, - 230, - 151, - 165, - 230, - 156, - 172, - 230, - 143, - 144, - 233, - 171, - 152, - 229, - 143, - 145, - 232, - 168, - 128, - 230, - 150, - 185, - 233, - 157, - 162, - 229, - 159, - 186, - 233, - 135, - 145, - 229, - 164, - 132, - 231, - 144, - 134, - 230, - 157, - 131, - 233, - 153, - 144, - 229, - 189, - 177, - 231, - 137, - 135, - 233, - 147, - 182, - 232, - 161, - 140, - 232, - 191, - 152, - 230, - 156, - 137, - 229, - 136, - 134, - 228, - 186, - 171, - 231, - 137, - 169, - 229, - 147, - 129, - 231, - 187, - 143, - 232, - 144, - 165, - 230, - 183, - 187, - 229, - 138, - 160, - 228, - 184, - 147, - 229, - 174, - 182, - 232, - 191, - 153, - 231, - 167, - 141, - 232, - 175, - 157, - 233, - 162, - 152, - 232, - 181, - 183, - 230, - 157, - 165, - 228, - 184, - 154, - 229, - 138, - 161, - 229, - 133, - 172, - 229, - 145, - 138, - 232, - 174, - 176, - 229, - 189, - 149, - 231, - 174, - 128, - 228, - 187, - 139, - 232, - 180, - 168, - 233, - 135, - 143, - 231, - 148, - 183, - 228, - 186, - 186, - 229, - 189, - 177, - 229, - 147, - 141, - 229, - 188, - 149, - 231, - 148, - 168, - 230, - 138, - 165, - 229, - 145, - 138, - 233, - 131, - 168, - 229, - 136, - 134, - 229, - 191, - 171, - 233, - 128, - 159, - 229, - 146, - 168, - 232, - 175, - 162, - 230, - 151, - 182, - 229, - 176, - 154, - 230, - 179, - 168, - 230, - 132, - 143, - 231, - 148, - 179, - 232, - 175, - 183, - 229, - 173, - 166, - 230, - 160, - 161, - 229, - 186, - 148, - 232, - 175, - 165, - 229, - 142, - 134, - 229, - 143, - 178, - 229, - 143, - 170, - 230, - 152, - 175, - 232, - 191, - 148, - 229, - 155, - 158, - 232, - 180, - 173, - 228, - 185, - 176, - 229, - 144, - 141, - 231, - 167, - 176, - 228, - 184, - 186, - 228, - 186, - 134, - 230, - 136, - 144, - 229, - 138, - 159, - 232, - 175, - 180, - 230, - 152, - 142, - 228, - 190, - 155, - 229, - 186, - 148, - 229, - 173, - 169, - 229, - 173, - 144, - 228, - 184, - 147, - 233, - 162, - 152, - 231, - 168, - 139, - 229, - 186, - 143, - 228, - 184, - 128, - 232, - 136, - 172, - 230, - 156, - 131, - 229, - 147, - 161, - 229, - 143, - 170, - 230, - 156, - 137, - 229, - 133, - 182, - 229, - 174, - 131, - 228, - 191, - 157, - 230, - 138, - 164, - 232, - 128, - 140, - 228, - 184, - 148, - 228, - 187, - 138, - 229, - 164, - 169, - 231, - 170, - 151, - 229, - 143, - 163, - 229, - 138, - 168, - 230, - 128, - 129, - 231, - 138, - 182, - 230, - 128, - 129, - 231, - 137, - 185, - 229, - 136, - 171, - 232, - 174, - 164, - 228, - 184, - 186, - 229, - 191, - 133, - 233, - 161, - 187, - 230, - 155, - 180, - 230, - 150, - 176, - 229, - 176, - 143, - 232, - 175, - 180, - 230, - 136, - 145, - 229, - 128, - 145, - 228, - 189, - 156, - 228, - 184, - 186, - 229, - 170, - 146, - 228, - 189, - 147, - 229, - 140, - 133, - 230, - 139, - 172, - 233, - 130, - 163, - 228, - 185, - 136, - 228, - 184, - 128, - 230, - 160, - 183, - 229, - 155, - 189, - 229, - 134, - 133, - 230, - 152, - 175, - 229, - 144, - 166, - 230, - 160, - 185, - 230, - 141, - 174, - 231, - 148, - 181, - 232, - 167, - 134, - 229, - 173, - 166, - 233, - 153, - 162, - 229, - 133, - 183, - 230, - 156, - 137, - 232, - 191, - 135, - 231, - 168, - 139, - 231, - 148, - 177, - 228, - 186, - 142, - 228, - 186, - 186, - 230, - 137, - 141, - 229, - 135, - 186, - 230, - 157, - 165, - 228, - 184, - 141, - 232, - 191, - 135, - 230, - 173, - 163, - 229, - 156, - 168, - 230, - 152, - 142, - 230, - 152, - 159, - 230, - 149, - 133, - 228, - 186, - 139, - 229, - 133, - 179, - 231, - 179, - 187, - 230, - 160, - 135, - 233, - 162, - 152, - 229, - 149, - 134, - 229, - 138, - 161, - 232, - 190, - 147, - 229, - 133, - 165, - 228, - 184, - 128, - 231, - 155, - 180, - 229, - 159, - 186, - 231, - 161, - 128, - 230, - 149, - 153, - 229, - 173, - 166, - 228, - 186, - 134, - 232, - 167, - 163, - 229, - 187, - 186, - 231, - 173, - 145, - 231, - 187, - 147, - 230, - 158, - 156, - 229, - 133, - 168, - 231, - 144, - 131, - 233, - 128, - 154, - 231, - 159, - 165, - 232, - 174, - 161, - 229, - 136, - 146, - 229, - 175, - 185, - 228, - 186, - 142, - 232, - 137, - 186, - 230, - 156, - 175, - 231, - 155, - 184, - 229, - 134, - 140, - 229, - 143, - 145, - 231, - 148, - 159, - 231, - 156, - 159, - 231, - 154, - 132, - 229, - 187, - 186, - 231, - 171, - 139, - 231, - 173, - 137, - 231, - 186, - 167, - 231, - 177, - 187, - 229, - 158, - 139, - 231, - 187, - 143, - 233, - 170, - 140, - 229, - 174, - 158, - 231, - 142, - 176, - 229, - 136, - 182, - 228, - 189, - 156, - 230, - 157, - 165, - 232, - 135, - 170, - 230, - 160, - 135, - 231, - 173, - 190, - 228, - 187, - 165, - 228, - 184, - 139, - 229, - 142, - 159, - 229, - 136, - 155, - 230, - 151, - 160, - 230, - 179, - 149, - 229, - 133, - 182, - 228, - 184, - 173, - 229, - 128, - 139, - 228, - 186, - 186, - 228, - 184, - 128, - 229, - 136, - 135, - 230, - 140, - 135, - 229, - 141, - 151, - 229, - 133, - 179, - 233, - 151, - 173, - 233, - 155, - 134, - 229, - 155, - 162, - 231, - 172, - 172, - 228, - 184, - 137, - 229, - 133, - 179, - 230, - 179, - 168, - 229, - 155, - 160, - 230, - 173, - 164, - 231, - 133, - 167, - 231, - 137, - 135, - 230, - 183, - 177, - 229, - 156, - 179, - 229, - 149, - 134, - 228, - 184, - 154, - 229, - 185, - 191, - 229, - 183, - 158, - 230, - 151, - 165, - 230, - 156, - 159, - 233, - 171, - 152, - 231, - 186, - 167, - 230, - 156, - 128, - 232, - 191, - 145, - 231, - 187, - 188, - 229, - 144, - 136, - 232, - 161, - 168, - 231, - 164, - 186, - 228, - 184, - 147, - 232, - 190, - 145, - 232, - 161, - 140, - 228, - 184, - 186, - 228, - 186, - 164, - 233, - 128, - 154, - 232, - 175, - 132, - 228, - 187, - 183, - 232, - 167, - 137, - 229, - 190, - 151, - 231, - 178, - 190, - 229, - 141, - 142, - 229, - 174, - 182, - 229, - 186, - 173, - 229, - 174, - 140, - 230, - 136, - 144, - 230, - 132, - 159, - 232, - 167, - 137, - 229, - 174, - 137, - 232, - 163, - 133, - 229, - 190, - 151, - 229, - 136, - 176, - 233, - 130, - 174, - 228, - 187, - 182, - 229, - 136, - 182, - 229, - 186, - 166, - 233, - 163, - 159, - 229, - 147, - 129, - 232, - 153, - 189, - 231, - 132, - 182, - 232, - 189, - 172, - 232, - 189, - 189, - 230, - 138, - 165, - 228, - 187, - 183, - 232, - 174, - 176, - 232, - 128, - 133, - 230, - 150, - 185, - 230, - 161, - 136, - 232, - 161, - 140, - 230, - 148, - 191, - 228, - 186, - 186, - 230, - 176, - 145, - 231, - 148, - 168, - 229, - 147, - 129, - 228, - 184, - 156, - 232, - 165, - 191, - 230, - 143, - 144, - 229, - 135, - 186, - 233, - 133, - 146, - 229, - 186, - 151, - 231, - 132, - 182, - 229, - 144, - 142, - 228, - 187, - 152, - 230, - 172, - 190, - 231, - 131, - 173, - 231, - 130, - 185, - 228, - 187, - 165, - 229, - 137, - 141, - 229, - 174, - 140, - 229, - 133, - 168, - 229, - 143, - 145, - 229, - 184, - 150, - 232, - 174, - 190, - 231, - 189, - 174, - 233, - 162, - 134, - 229, - 175, - 188, - 229, - 183, - 165, - 228, - 184, - 154, - 229, - 140, - 187, - 233, - 153, - 162, - 231, - 156, - 139, - 231, - 156, - 139, - 231, - 187, - 143, - 229, - 133, - 184, - 229, - 142, - 159, - 229, - 155, - 160, - 229, - 185, - 179, - 229, - 143, - 176, - 229, - 144, - 132, - 231, - 167, - 141, - 229, - 162, - 158, - 229, - 138, - 160, - 230, - 157, - 144, - 230, - 150, - 153, - 230, - 150, - 176, - 229, - 162, - 158, - 228, - 185, - 139, - 229, - 144, - 142, - 232, - 129, - 140, - 228, - 184, - 154, - 230, - 149, - 136, - 230, - 158, - 156, - 228, - 187, - 138, - 229, - 185, - 180, - 232, - 174, - 186, - 230, - 150, - 135, - 230, - 136, - 145, - 229, - 155, - 189, - 229, - 145, - 138, - 232, - 175, - 137, - 231, - 137, - 136, - 228, - 184, - 187, - 228, - 191, - 174, - 230, - 148, - 185, - 229, - 143, - 130, - 228, - 184, - 142, - 230, - 137, - 147, - 229, - 141, - 176, - 229, - 191, - 171, - 228, - 185, - 144, - 230, - 156, - 186, - 230, - 162, - 176, - 232, - 167, - 130, - 231, - 130, - 185, - 229, - 173, - 152, - 229, - 156, - 168, - 231, - 178, - 190, - 231, - 165, - 158, - 232, - 142, - 183, - 229, - 190, - 151, - 229, - 136, - 169, - 231, - 148, - 168, - 231, - 187, - 167, - 231, - 187, - 173, - 228, - 189, - 160, - 228, - 187, - 172, - 232, - 191, - 153, - 228, - 185, - 136, - 230, - 168, - 161, - 229, - 188, - 143, - 232, - 175, - 173, - 232, - 168, - 128, - 232, - 131, - 189, - 229, - 164, - 159, - 233, - 155, - 133, - 232, - 153, - 142, - 230, - 147, - 141, - 228, - 189, - 156, - 233, - 163, - 142, - 230, - 160, - 188, - 228, - 184, - 128, - 232, - 181, - 183, - 231, - 167, - 145, - 229, - 173, - 166, - 228, - 189, - 147, - 232, - 130, - 178, - 231, - 159, - 173, - 228, - 191, - 161, - 230, - 157, - 161, - 228, - 187, - 182, - 230, - 178, - 187, - 231, - 150, - 151, - 232, - 191, - 144, - 229, - 138, - 168, - 228, - 186, - 167, - 228, - 184, - 154, - 228, - 188, - 154, - 232, - 174, - 174, - 229, - 175, - 188, - 232, - 136, - 170, - 229, - 133, - 136, - 231, - 148, - 159, - 232, - 129, - 148, - 231, - 155, - 159, - 229, - 143, - 175, - 230, - 152, - 175, - 229, - 149, - 143, - 233, - 161, - 140, - 231, - 187, - 147, - 230, - 158, - 132, - 228, - 189, - 156, - 231, - 148, - 168, - 232, - 176, - 131, - 230, - 159, - 165, - 232, - 179, - 135, - 230, - 150, - 153, - 232, - 135, - 170, - 229, - 138, - 168, - 232, - 180, - 159, - 232, - 180, - 163, - 229, - 134, - 156, - 228, - 184, - 154, - 232, - 174, - 191, - 233, - 151, - 174, - 229, - 174, - 158, - 230, - 150, - 189, - 230, - 142, - 165, - 229, - 143, - 151, - 232, - 174, - 168, - 232, - 174, - 186, - 233, - 130, - 163, - 228, - 184, - 170, - 229, - 143, - 141, - 233, - 166, - 136, - 229, - 138, - 160, - 229, - 188, - 186, - 229, - 165, - 179, - 230, - 128, - 167, - 232, - 140, - 131, - 229, - 155, - 180, - 230, - 156, - 141, - 229, - 139, - 153, - 228, - 188, - 145, - 233, - 151, - 178, - 228, - 187, - 138, - 230, - 151, - 165, - 229, - 174, - 162, - 230, - 156, - 141, - 232, - 167, - 128, - 231, - 156, - 139, - 229, - 143, - 130, - 229, - 138, - 160, - 231, - 154, - 132, - 232, - 175, - 157, - 228, - 184, - 128, - 231, - 130, - 185, - 228, - 191, - 157, - 232, - 175, - 129, - 229, - 155, - 190, - 228, - 185, - 166, - 230, - 156, - 137, - 230, - 149, - 136, - 230, - 181, - 139, - 232, - 175, - 149, - 231, - 167, - 187, - 229, - 138, - 168, - 230, - 137, - 141, - 232, - 131, - 189, - 229, - 134, - 179, - 229, - 174, - 154, - 232, - 130, - 161, - 231, - 165, - 168, - 228, - 184, - 141, - 230, - 150, - 173, - 233, - 156, - 128, - 230, - 177, - 130, - 228, - 184, - 141, - 229, - 190, - 151, - 229, - 138, - 158, - 230, - 179, - 149, - 228, - 185, - 139, - 233, - 151, - 180, - 233, - 135, - 135, - 231, - 148, - 168, - 232, - 144, - 165, - 233, - 148, - 128, - 230, - 138, - 149, - 232, - 175, - 137, - 231, - 155, - 174, - 230, - 160, - 135, - 231, - 136, - 177, - 230, - 131, - 133, - 230, - 145, - 132, - 229, - 189, - 177, - 230, - 156, - 137, - 228, - 186, - 155, - 232, - 164, - 135, - 232, - 163, - 189, - 230, - 150, - 135, - 229, - 173, - 166, - 230, - 156, - 186, - 228, - 188, - 154, - 230, - 149, - 176, - 229, - 173, - 151, - 232, - 163, - 133, - 228, - 191, - 174, - 232, - 180, - 173, - 231, - 137, - 169, - 229, - 134, - 156, - 230, - 157, - 145, - 229, - 133, - 168, - 233, - 157, - 162, - 231, - 178, - 190, - 229, - 147, - 129, - 229, - 133, - 182, - 229, - 174, - 158, - 228, - 186, - 139, - 230, - 131, - 133, - 230, - 176, - 180, - 229, - 185, - 179, - 230, - 143, - 144, - 231, - 164, - 186, - 228, - 184, - 138, - 229, - 184, - 130, - 232, - 176, - 162, - 232, - 176, - 162, - 230, - 153, - 174, - 233, - 128, - 154, - 230, - 149, - 153, - 229, - 184, - 136, - 228, - 184, - 138, - 228, - 188, - 160, - 231, - 177, - 187, - 229, - 136, - 171, - 230, - 173, - 140, - 230, - 155, - 178, - 230, - 139, - 165, - 230, - 156, - 137, - 229, - 136, - 155, - 230, - 150, - 176, - 233, - 133, - 141, - 228, - 187, - 182, - 229, - 143, - 170, - 232, - 166, - 129, - 230, - 151, - 182, - 228, - 187, - 163, - 232, - 179, - 135, - 232, - 168, - 138, - 232, - 190, - 190, - 229, - 136, - 176, - 228, - 186, - 186, - 231, - 148, - 159, - 232, - 174, - 162, - 233, - 152, - 133, - 232, - 128, - 129, - 229, - 184, - 136, - 229, - 177, - 149, - 231, - 164, - 186, - 229, - 191, - 131, - 231, - 144, - 134, - 232, - 180, - 180, - 229, - 173, - 144, - 231, - 182, - 178, - 231, - 171, - 153, - 228, - 184, - 187, - 233, - 161, - 140, - 232, - 135, - 170, - 231, - 132, - 182, - 231, - 186, - 167, - 229, - 136, - 171, - 231, - 174, - 128, - 229, - 141, - 149, - 230, - 148, - 185, - 233, - 157, - 169, - 233, - 130, - 163, - 228, - 186, - 155, - 230, - 157, - 165, - 232, - 175, - 180, - 230, - 137, - 147, - 229, - 188, - 128, - 228, - 187, - 163, - 231, - 160, - 129, - 229, - 136, - 160, - 233, - 153, - 164, - 232, - 175, - 129, - 229, - 136, - 184, - 232, - 138, - 130, - 231, - 155, - 174, - 233, - 135, - 141, - 231, - 130, - 185, - 230, - 172, - 161, - 230, - 149, - 184, - 229, - 164, - 154, - 229, - 176, - 145, - 232, - 167, - 132, - 229, - 136, - 146, - 232, - 181, - 132, - 233, - 135, - 145, - 230, - 137, - 190, - 229, - 136, - 176, - 228, - 187, - 165, - 229, - 144, - 142, - 229, - 164, - 167, - 229, - 133, - 168, - 228, - 184, - 187, - 233, - 161, - 181, - 230, - 156, - 128, - 228, - 189, - 179, - 229, - 155, - 158, - 231, - 173, - 148, - 229, - 164, - 169, - 228, - 184, - 139, - 228, - 191, - 157, - 233, - 154, - 156, - 231, - 142, - 176, - 228, - 187, - 163, - 230, - 163, - 128, - 230, - 159, - 165, - 230, - 138, - 149, - 231, - 165, - 168, - 229, - 176, - 143, - 230, - 151, - 182, - 230, - 178, - 146, - 230, - 156, - 137, - 230, - 173, - 163, - 229, - 184, - 184, - 231, - 148, - 154, - 232, - 135, - 179, - 228, - 187, - 163, - 231, - 144, - 134, - 231, - 155, - 174, - 229, - 189, - 149, - 229, - 133, - 172, - 229, - 188, - 128, - 229, - 164, - 141, - 229, - 136, - 182, - 233, - 135, - 145, - 232, - 158, - 141, - 229, - 185, - 184, - 231, - 166, - 143, - 231, - 137, - 136, - 230, - 156, - 172, - 229, - 189, - 162, - 230, - 136, - 144, - 229, - 135, - 134, - 229, - 164, - 135, - 232, - 161, - 140, - 230, - 131, - 133, - 229, - 155, - 158, - 229, - 136, - 176, - 230, - 128, - 157, - 230, - 131, - 179, - 230, - 128, - 142, - 230, - 160, - 183, - 229, - 141, - 143, - 232, - 174, - 174, - 232, - 174, - 164, - 232, - 175, - 129, - 230, - 156, - 128, - 229, - 165, - 189, - 228, - 186, - 167, - 231, - 148, - 159, - 230, - 140, - 137, - 231, - 133, - 167, - 230, - 156, - 141, - 232, - 163, - 133, - 229, - 185, - 191, - 228, - 184, - 156, - 229, - 138, - 168, - 230, - 188, - 171, - 233, - 135, - 135, - 232, - 180, - 173, - 230, - 150, - 176, - 230, - 137, - 139, - 231, - 187, - 132, - 229, - 155, - 190, - 233, - 157, - 162, - 230, - 157, - 191, - 229, - 143, - 130, - 232, - 128, - 131, - 230, - 148, - 191, - 230, - 178, - 187, - 229, - 174, - 185, - 230, - 152, - 147, - 229, - 164, - 169, - 229, - 156, - 176, - 229, - 138, - 170, - 229, - 138, - 155, - 228, - 186, - 186, - 228, - 187, - 172, - 229, - 141, - 135, - 231, - 186, - 167, - 233, - 128, - 159, - 229, - 186, - 166, - 228, - 186, - 186, - 231, - 137, - 169, - 232, - 176, - 131, - 230, - 149, - 180, - 230, - 181, - 129, - 232, - 161, - 140, - 233, - 128, - 160, - 230, - 136, - 144, - 230, - 150, - 135, - 229, - 173, - 151, - 233, - 159, - 169, - 229, - 155, - 189, - 232, - 180, - 184, - 230, - 152, - 147, - 229, - 188, - 128, - 229, - 177, - 149, - 231, - 155, - 184, - 233, - 151, - 156, - 232, - 161, - 168, - 231, - 142, - 176, - 229, - 189, - 177, - 232, - 167, - 134, - 229, - 166, - 130, - 230, - 173, - 164, - 231, - 190, - 142, - 229, - 174, - 185, - 229, - 164, - 167, - 229, - 176, - 143, - 230, - 138, - 165, - 233, - 129, - 147, - 230, - 157, - 161, - 230, - 172, - 190, - 229, - 191, - 131, - 230, - 131, - 133, - 232, - 174, - 184, - 229, - 164, - 154, - 230, - 179, - 149, - 232, - 167, - 132, - 229, - 174, - 182, - 229, - 177, - 133, - 228, - 185, - 166, - 229, - 186, - 151, - 232, - 191, - 158, - 230, - 142, - 165, - 231, - 171, - 139, - 229, - 141, - 179, - 228, - 184, - 190, - 230, - 138, - 165, - 230, - 138, - 128, - 229, - 183, - 167, - 229, - 165, - 165, - 232, - 191, - 144, - 231, - 153, - 187, - 229, - 133, - 165, - 228, - 187, - 165, - 230, - 157, - 165, - 231, - 144, - 134, - 232, - 174, - 186, - 228, - 186, - 139, - 228, - 187, - 182, - 232, - 135, - 170, - 231, - 148, - 177, - 228, - 184, - 173, - 229, - 141, - 142, - 229, - 138, - 158, - 229, - 133, - 172, - 229, - 166, - 136, - 229, - 166, - 136, - 231, - 156, - 159, - 230, - 173, - 163, - 228, - 184, - 141, - 233, - 148, - 153, - 229, - 133, - 168, - 230, - 150, - 135, - 229, - 144, - 136, - 229, - 144, - 140, - 228, - 187, - 183, - 229, - 128, - 188, - 229, - 136, - 171, - 228, - 186, - 186, - 231, - 155, - 145, - 231, - 157, - 163, - 229, - 133, - 183, - 228, - 189, - 147, - 228, - 184, - 150, - 231, - 186, - 170, - 229, - 155, - 162, - 233, - 152, - 159, - 229, - 136, - 155, - 228, - 184, - 154, - 230, - 137, - 191, - 230, - 139, - 133, - 229, - 162, - 158, - 233, - 149, - 191, - 230, - 156, - 137, - 228, - 186, - 186, - 228, - 191, - 157, - 230, - 140, - 129, - 229, - 149, - 134, - 229, - 174, - 182, - 231, - 187, - 180, - 228, - 191, - 174, - 229, - 143, - 176, - 230, - 185, - 190, - 229, - 183, - 166, - 229, - 143, - 179, - 232, - 130, - 161, - 228, - 187, - 189, - 231, - 173, - 148, - 230, - 161, - 136, - 229, - 174, - 158, - 233, - 153, - 133, - 231, - 148, - 181, - 228, - 191, - 161, - 231, - 187, - 143, - 231, - 144, - 134, - 231, - 148, - 159, - 229, - 145, - 189, - 229, - 174, - 163, - 228, - 188, - 160, - 228, - 187, - 187, - 229, - 138, - 161, - 230, - 173, - 163, - 229, - 188, - 143, - 231, - 137, - 185, - 232, - 137, - 178, - 228, - 184, - 139, - 230, - 157, - 165, - 229, - 141, - 143, - 228, - 188, - 154, - 229, - 143, - 170, - 232, - 131, - 189, - 229, - 189, - 147, - 231, - 132, - 182, - 233, - 135, - 141, - 230, - 150, - 176, - 229, - 133, - 167, - 229, - 174, - 185, - 230, - 140, - 135, - 229, - 175, - 188, - 232, - 191, - 144, - 232, - 161, - 140, - 230, - 151, - 165, - 229, - 191, - 151, - 232, - 179, - 163, - 229, - 174, - 182, - 232, - 182, - 133, - 232, - 191, - 135, - 229, - 156, - 159, - 229, - 156, - 176, - 230, - 181, - 153, - 230, - 177, - 159, - 230, - 148, - 175, - 228, - 187, - 152, - 230, - 142, - 168, - 229, - 135, - 186, - 231, - 171, - 153, - 233, - 149, - 191, - 230, - 157, - 173, - 229, - 183, - 158, - 230, - 137, - 167, - 232, - 161, - 140, - 229, - 136, - 182, - 233, - 128, - 160, - 228, - 185, - 139, - 228, - 184, - 128, - 230, - 142, - 168, - 229, - 185, - 191, - 231, - 142, - 176, - 229, - 156, - 186, - 230, - 143, - 143, - 232, - 191, - 176, - 229, - 143, - 152, - 229, - 140, - 150, - 228, - 188, - 160, - 231, - 187, - 159, - 230, - 173, - 140, - 230, - 137, - 139, - 228, - 191, - 157, - 233, - 153, - 169, - 232, - 175, - 190, - 231, - 168, - 139, - 229, - 140, - 187, - 231, - 150, - 151, - 231, - 187, - 143, - 232, - 191, - 135, - 232, - 191, - 135, - 229, - 142, - 187, - 228, - 185, - 139, - 229, - 137, - 141, - 230, - 148, - 182, - 229, - 133, - 165, - 229, - 185, - 180, - 229, - 186, - 166, - 230, - 157, - 130, - 229, - 191, - 151, - 231, - 190, - 142, - 228, - 184, - 189, - 230, - 156, - 128, - 233, - 171, - 152, - 231, - 153, - 187, - 233, - 153, - 134, - 230, - 156, - 170, - 230, - 157, - 165, - 229, - 138, - 160, - 229, - 183, - 165, - 229, - 133, - 141, - 232, - 180, - 163, - 230, - 149, - 153, - 231, - 168, - 139, - 231, - 137, - 136, - 229, - 157, - 151, - 232, - 186, - 171, - 228, - 189, - 147, - 233, - 135, - 141, - 229, - 186, - 134, - 229, - 135, - 186, - 229, - 148, - 174, - 230, - 136, - 144, - 230, - 156, - 172, - 229, - 189, - 162, - 229, - 188, - 143, - 229, - 156, - 159, - 232, - 177, - 134, - 229, - 135, - 186, - 229, - 131, - 185, - 228, - 184, - 156, - 230, - 150, - 185, - 233, - 130, - 174, - 231, - 174, - 177, - 229, - 141, - 151, - 228, - 186, - 172, - 230, - 177, - 130, - 232, - 129, - 140, - 229, - 143, - 150, - 229, - 190, - 151, - 232, - 129, - 140, - 228, - 189, - 141, - 231, - 155, - 184, - 228, - 191, - 161, - 233, - 161, - 181, - 233, - 157, - 162, - 229, - 136, - 134, - 233, - 146, - 159, - 231, - 189, - 145, - 233, - 161, - 181, - 231, - 161, - 174, - 229, - 174, - 154, - 229, - 155, - 190, - 228, - 190, - 139, - 231, - 189, - 145, - 229, - 157, - 128, - 231, - 167, - 175, - 230, - 158, - 129, - 233, - 148, - 153, - 232, - 175, - 175, - 231, - 155, - 174, - 231, - 154, - 132, - 229, - 174, - 157, - 232, - 180, - 157, - 230, - 156, - 186, - 229, - 133, - 179, - 233, - 163, - 142, - 233, - 153, - 169, - 230, - 142, - 136, - 230, - 157, - 131, - 231, - 151, - 133, - 230, - 175, - 146, - 229, - 174, - 160, - 231, - 137, - 169, - 233, - 153, - 164, - 228, - 186, - 134, - 232, - 169, - 149, - 232, - 171, - 150, - 231, - 150, - 190, - 231, - 151, - 133, - 229, - 143, - 138, - 230, - 151, - 182, - 230, - 177, - 130, - 232, - 180, - 173, - 231, - 171, - 153, - 231, - 130, - 185, - 229, - 132, - 191, - 231, - 171, - 165, - 230, - 175, - 143, - 229, - 164, - 169, - 228, - 184, - 173, - 229, - 164, - 174, - 232, - 174, - 164, - 232, - 175, - 134, - 230, - 175, - 143, - 228, - 184, - 170, - 229, - 164, - 169, - 230, - 180, - 165, - 229, - 173, - 151, - 228, - 189, - 147, - 229, - 143, - 176, - 231, - 129, - 163, - 231, - 187, - 180, - 230, - 138, - 164, - 230, - 156, - 172, - 233, - 161, - 181, - 228, - 184, - 170, - 230, - 128, - 167, - 229, - 174, - 152, - 230, - 150, - 185, - 229, - 184, - 184, - 232, - 167, - 129, - 231, - 155, - 184, - 230, - 156, - 186, - 230, - 136, - 152, - 231, - 149, - 165, - 229, - 186, - 148, - 229, - 189, - 147, - 229, - 190, - 139, - 229, - 184, - 136, - 230, - 150, - 185, - 228, - 190, - 191, - 230, - 160, - 161, - 229, - 155, - 173, - 232, - 130, - 161, - 229, - 184, - 130, - 230, - 136, - 191, - 229, - 177, - 139, - 230, - 160, - 143, - 231, - 155, - 174, - 229, - 145, - 152, - 229, - 183, - 165, - 229, - 175, - 188, - 232, - 135, - 180, - 231, - 170, - 129, - 231, - 132, - 182, - 233, - 129, - 147, - 229, - 133, - 183, - 230, - 156, - 172, - 231, - 189, - 145, - 231, - 187, - 147, - 229, - 144, - 136, - 230, - 161, - 163, - 230, - 161, - 136, - 229, - 138, - 179, - 229, - 138, - 168, - 229, - 143, - 166, - 229, - 164, - 150, - 231, - 190, - 142, - 229, - 133, - 131, - 229, - 188, - 149, - 232, - 181, - 183, - 230, - 148, - 185, - 229, - 143, - 152, - 231, - 172, - 172, - 229, - 155, - 155, - 228, - 188, - 154, - 232, - 174, - 161, - 232, - 170, - 170, - 230, - 152, - 142, - 233, - 154, - 144, - 231, - 167, - 129, - 229, - 174, - 157, - 229, - 174, - 157, - 232, - 167, - 132, - 232, - 140, - 131, - 230, - 182, - 136, - 232, - 180, - 185, - 229, - 133, - 177, - 229, - 144, - 140, - 229, - 191, - 152, - 232, - 174, - 176, - 228, - 189, - 147, - 231, - 179, - 187, - 229, - 184, - 166, - 230, - 157, - 165, - 229, - 144, - 141, - 229, - 173, - 151, - 231, - 153, - 188, - 232, - 161, - 168, - 229, - 188, - 128, - 230, - 148, - 190, - 229, - 138, - 160, - 231, - 155, - 159, - 229, - 143, - 151, - 229, - 136, - 176, - 228, - 186, - 140, - 230, - 137, - 139, - 229, - 164, - 167, - 233, - 135, - 143, - 230, - 136, - 144, - 228, - 186, - 186, - 230, - 149, - 176, - 233, - 135, - 143, - 229, - 133, - 177, - 228, - 186, - 171, - 229, - 140, - 186, - 229, - 159, - 159, - 229, - 165, - 179, - 229, - 173, - 169, - 229, - 142, - 159, - 229, - 136, - 153, - 230, - 137, - 128, - 229, - 156, - 168, - 231, - 187, - 147, - 230, - 157, - 159, - 233, - 128, - 154, - 228, - 191, - 161, - 232, - 182, - 133, - 231, - 186, - 167, - 233, - 133, - 141, - 231, - 189, - 174, - 229, - 189, - 147, - 230, - 151, - 182, - 228, - 188, - 152, - 231, - 167, - 128, - 230, - 128, - 167, - 230, - 132, - 159, - 230, - 136, - 191, - 228, - 186, - 167, - 233, - 129, - 138, - 230, - 136, - 178, - 229, - 135, - 186, - 229, - 143, - 163, - 230, - 143, - 144, - 228, - 186, - 164, - 229, - 176, - 177, - 228, - 184, - 154, - 228, - 191, - 157, - 229, - 129, - 165, - 231, - 168, - 139, - 229, - 186, - 166, - 229, - 143, - 130, - 230, - 149, - 176, - 228, - 186, - 139, - 228, - 184, - 154, - 230, - 149, - 180, - 228, - 184, - 170, - 229, - 177, - 177, - 228, - 184, - 156, - 230, - 131, - 133, - 230, - 132, - 159, - 231, - 137, - 185, - 230, - 174, - 138, - 229, - 136, - 134, - 233, - 161, - 158, - 230, - 144, - 156, - 229, - 176, - 139, - 229, - 177, - 158, - 228, - 186, - 142, - 233, - 151, - 168, - 230, - 136, - 183, - 232, - 180, - 162, - 229, - 138, - 161, - 229, - 163, - 176, - 233, - 159, - 179, - 229, - 143, - 138, - 229, - 133, - 182, - 232, - 180, - 162, - 231, - 187, - 143, - 229, - 157, - 154, - 230, - 140, - 129, - 229, - 185, - 178, - 233, - 131, - 168, - 230, - 136, - 144, - 231, - 171, - 139, - 229, - 136, - 169, - 231, - 155, - 138, - 232, - 128, - 131, - 232, - 153, - 145, - 230, - 136, - 144, - 233, - 131, - 189, - 229, - 140, - 133, - 232, - 163, - 133, - 231, - 148, - 168, - 230, - 136, - 182, - 230, - 175, - 148, - 232, - 181, - 155, - 230, - 150, - 135, - 230, - 152, - 142, - 230, - 139, - 155, - 229, - 149, - 134, - 229, - 174, - 140, - 230, - 149, - 180, - 231, - 156, - 159, - 230, - 152, - 175, - 231, - 156, - 188, - 231, - 157, - 155, - 228, - 188, - 153, - 228, - 188, - 180, - 229, - 168, - 129, - 230, - 156, - 155, - 233, - 162, - 134, - 229, - 159, - 159, - 229, - 141, - 171, - 231, - 148, - 159, - 228, - 188, - 152, - 230, - 131, - 160, - 232, - 171, - 150, - 229, - 163, - 135, - 229, - 133, - 172, - 229, - 133, - 177, - 232, - 137, - 175, - 229, - 165, - 189, - 229, - 133, - 133, - 229, - 136, - 134, - 231, - 172, - 166, - 229, - 144, - 136, - 233, - 153, - 132, - 228, - 187, - 182, - 231, - 137, - 185, - 231, - 130, - 185, - 228, - 184, - 141, - 229, - 143, - 175, - 232, - 139, - 177, - 230, - 150, - 135, - 232, - 181, - 132, - 228, - 186, - 167, - 230, - 160, - 185, - 230, - 156, - 172, - 230, - 152, - 142, - 230, - 152, - 190, - 229, - 175, - 134, - 231, - 162, - 188, - 229, - 133, - 172, - 228, - 188, - 151, - 230, - 176, - 145, - 230, - 151, - 143, - 230, - 155, - 180, - 229, - 138, - 160, - 228, - 186, - 171, - 229, - 143, - 151, - 229, - 144, - 140, - 229, - 173, - 166, - 229, - 144, - 175, - 229, - 138, - 168, - 233, - 128, - 130, - 229, - 144, - 136, - 229, - 142, - 159, - 230, - 157, - 165, - 233, - 151, - 174, - 231, - 173, - 148, - 230, - 156, - 172, - 230, - 150, - 135, - 231, - 190, - 142, - 233, - 163, - 159, - 231, - 187, - 191, - 232, - 137, - 178, - 231, - 168, - 179, - 229, - 174, - 154, - 231, - 187, - 136, - 228, - 186, - 142, - 231, - 148, - 159, - 231, - 137, - 169, - 228, - 190, - 155, - 230, - 177, - 130, - 230, - 144, - 156, - 231, - 139, - 144, - 229, - 138, - 155, - 233, - 135, - 143, - 228, - 184, - 165, - 233, - 135, - 141, - 230, - 176, - 184, - 232, - 191, - 156, - 229, - 134, - 153, - 231, - 156, - 159, - 230, - 156, - 137, - 233, - 153, - 144, - 231, - 171, - 158, - 228, - 186, - 137, - 229, - 175, - 185, - 232, - 177, - 161, - 232, - 180, - 185, - 231, - 148, - 168, - 228, - 184, - 141, - 229, - 165, - 189, - 231, - 187, - 157, - 229, - 175, - 185, - 229, - 141, - 129, - 229, - 136, - 134, - 228, - 191, - 131, - 232, - 191, - 155, - 231, - 130, - 185, - 232, - 175, - 132, - 229, - 189, - 177, - 233, - 159, - 179, - 228, - 188, - 152, - 229, - 138, - 191, - 228, - 184, - 141, - 229, - 176, - 145, - 230, - 172, - 163, - 232, - 181, - 143, - 229, - 185, - 182, - 228, - 184, - 148, - 230, - 156, - 137, - 231, - 130, - 185, - 230, - 150, - 185, - 229, - 144, - 145, - 229, - 133, - 168, - 230, - 150, - 176, - 228, - 191, - 161, - 231, - 148, - 168, - 232, - 174, - 190, - 230, - 150, - 189, - 229, - 189, - 162, - 232, - 177, - 161, - 232, - 181, - 132, - 230, - 160, - 188, - 231, - 170, - 129, - 231, - 160, - 180, - 233, - 154, - 143, - 231, - 157, - 128, - 233, - 135, - 141, - 229, - 164, - 167, - 228, - 186, - 142, - 230, - 152, - 175, - 230, - 175, - 149, - 228, - 184, - 154, - 230, - 153, - 186, - 232, - 131, - 189, - 229, - 140, - 150, - 229, - 183, - 165, - 229, - 174, - 140, - 231, - 190, - 142, - 229, - 149, - 134, - 229, - 159, - 142, - 231, - 187, - 159, - 228, - 184, - 128, - 229, - 135, - 186, - 231, - 137, - 136, - 230, - 137, - 147, - 233, - 128, - 160, - 231, - 148, - 162, - 229, - 147, - 129, - 230, - 166, - 130, - 229, - 134, - 181, - 231, - 148, - 168, - 228, - 186, - 142, - 228, - 191, - 157, - 231, - 149, - 153, - 229, - 155, - 160, - 231, - 180, - 160, - 228, - 184, - 173, - 229, - 156, - 139, - 229, - 173, - 152, - 229, - 130, - 168, - 232, - 180, - 180, - 229, - 155, - 190, - 230, - 156, - 128, - 230, - 132, - 155, - 233, - 149, - 191, - 230, - 156, - 159, - 229, - 143, - 163, - 228, - 187, - 183, - 231, - 144, - 134, - 232, - 180, - 162, - 229, - 159, - 186, - 229, - 156, - 176, - 229, - 174, - 137, - 230, - 142, - 146, - 230, - 173, - 166, - 230, - 177, - 137, - 233, - 135, - 140, - 233, - 157, - 162, - 229, - 136, - 155, - 229, - 187, - 186, - 229, - 164, - 169, - 231, - 169, - 186, - 233, - 166, - 150, - 229, - 133, - 136, - 229, - 174, - 140, - 229, - 150, - 132, - 233, - 169, - 177, - 229, - 138, - 168, - 228, - 184, - 139, - 233, - 157, - 162, - 228, - 184, - 141, - 229, - 134, - 141, - 232, - 175, - 154, - 228, - 191, - 161, - 230, - 132, - 143, - 228, - 185, - 137, - 233, - 152, - 179, - 229, - 133, - 137, - 232, - 139, - 177, - 229, - 155, - 189, - 230, - 188, - 130, - 228, - 186, - 174, - 229, - 134, - 155, - 228, - 186, - 139, - 231, - 142, - 169, - 229, - 174, - 182, - 231, - 190, - 164, - 228, - 188, - 151, - 229, - 134, - 156, - 230, - 176, - 145, - 229, - 141, - 179, - 229, - 143, - 175, - 229, - 144, - 141, - 231, - 168, - 177, - 229, - 174, - 182, - 229, - 133, - 183, - 229, - 138, - 168, - 231, - 148, - 187, - 230, - 131, - 179, - 229, - 136, - 176, - 230, - 179, - 168, - 230, - 152, - 142, - 229, - 176, - 143, - 229, - 173, - 166, - 230, - 128, - 167, - 232, - 131, - 189, - 232, - 128, - 131, - 231, - 160, - 148, - 231, - 161, - 172, - 228, - 187, - 182, - 232, - 167, - 130, - 231, - 156, - 139, - 230, - 184, - 133, - 230, - 165, - 154, - 230, - 144, - 158, - 231, - 172, - 145, - 233, - 166, - 150, - 233, - 160, - 129, - 233, - 187, - 132, - 233, - 135, - 145, - 233, - 128, - 130, - 231, - 148, - 168, - 230, - 177, - 159, - 232, - 139, - 143, - 231, - 156, - 159, - 229, - 174, - 158, - 228, - 184, - 187, - 231, - 174, - 161, - 233, - 152, - 182, - 230, - 174, - 181, - 232, - 168, - 187, - 229, - 134, - 138, - 231, - 191, - 187, - 232, - 175, - 145, - 230, - 157, - 131, - 229, - 136, - 169, - 229, - 129, - 154, - 229, - 165, - 189, - 228, - 188, - 188, - 228, - 185, - 142, - 233, - 128, - 154, - 232, - 174, - 175, - 230, - 150, - 189, - 229, - 183, - 165, - 231, - 139, - 128, - 230, - 133, - 139, - 228, - 185, - 159, - 232, - 174, - 184, - 231, - 142, - 175, - 228, - 191, - 157, - 229, - 159, - 185, - 229, - 133, - 187, - 230, - 166, - 130, - 229, - 191, - 181, - 229, - 164, - 167, - 229, - 158, - 139, - 230, - 156, - 186, - 231, - 165, - 168, - 231, - 144, - 134, - 232, - 167, - 163, - 229, - 140, - 191, - 229, - 144, - 141, - 99, - 117, - 97, - 110, - 100, - 111, - 101, - 110, - 118, - 105, - 97, - 114, - 109, - 97, - 100, - 114, - 105, - 100, - 98, - 117, - 115, - 99, - 97, - 114, - 105, - 110, - 105, - 99, - 105, - 111, - 116, - 105, - 101, - 109, - 112, - 111, - 112, - 111, - 114, - 113, - 117, - 101, - 99, - 117, - 101, - 110, - 116, - 97, - 101, - 115, - 116, - 97, - 100, - 111, - 112, - 117, - 101, - 100, - 101, - 110, - 106, - 117, - 101, - 103, - 111, - 115, - 99, - 111, - 110, - 116, - 114, - 97, - 101, - 115, - 116, - 195, - 161, - 110, - 110, - 111, - 109, - 98, - 114, - 101, - 116, - 105, - 101, - 110, - 101, - 110, - 112, - 101, - 114, - 102, - 105, - 108, - 109, - 97, - 110, - 101, - 114, - 97, - 97, - 109, - 105, - 103, - 111, - 115, - 99, - 105, - 117, - 100, - 97, - 100, - 99, - 101, - 110, - 116, - 114, - 111, - 97, - 117, - 110, - 113, - 117, - 101, - 112, - 117, - 101, - 100, - 101, - 115, - 100, - 101, - 110, - 116, - 114, - 111, - 112, - 114, - 105, - 109, - 101, - 114, - 112, - 114, - 101, - 99, - 105, - 111, - 115, - 101, - 103, - 195, - 186, - 110, - 98, - 117, - 101, - 110, - 111, - 115, - 118, - 111, - 108, - 118, - 101, - 114, - 112, - 117, - 110, - 116, - 111, - 115, - 115, - 101, - 109, - 97, - 110, - 97, - 104, - 97, - 98, - 195, - 173, - 97, - 97, - 103, - 111, - 115, - 116, - 111, - 110, - 117, - 101, - 118, - 111, - 115, - 117, - 110, - 105, - 100, - 111, - 115, - 99, - 97, - 114, - 108, - 111, - 115, - 101, - 113, - 117, - 105, - 112, - 111, - 110, - 105, - 195, - 177, - 111, - 115, - 109, - 117, - 99, - 104, - 111, - 115, - 97, - 108, - 103, - 117, - 110, - 97, - 99, - 111, - 114, - 114, - 101, - 111, - 105, - 109, - 97, - 103, - 101, - 110, - 112, - 97, - 114, - 116, - 105, - 114, - 97, - 114, - 114, - 105, - 98, - 97, - 109, - 97, - 114, - 195, - 173, - 97, - 104, - 111, - 109, - 98, - 114, - 101, - 101, - 109, - 112, - 108, - 101, - 111, - 118, - 101, - 114, - 100, - 97, - 100, - 99, - 97, - 109, - 98, - 105, - 111, - 109, - 117, - 99, - 104, - 97, - 115, - 102, - 117, - 101, - 114, - 111, - 110, - 112, - 97, - 115, - 97, - 100, - 111, - 108, - 195, - 173, - 110, - 101, - 97, - 112, - 97, - 114, - 101, - 99, - 101, - 110, - 117, - 101, - 118, - 97, - 115, - 99, - 117, - 114, - 115, - 111, - 115, - 101, - 115, - 116, - 97, - 98, - 97, - 113, - 117, - 105, - 101, - 114, - 111, - 108, - 105, - 98, - 114, - 111, - 115, - 99, - 117, - 97, - 110, - 116, - 111, - 97, - 99, - 99, - 101, - 115, - 111, - 109, - 105, - 103, - 117, - 101, - 108, - 118, - 97, - 114, - 105, - 111, - 115, - 99, - 117, - 97, - 116, - 114, - 111, - 116, - 105, - 101, - 110, - 101, - 115, - 103, - 114, - 117, - 112, - 111, - 115, - 115, - 101, - 114, - 195, - 161, - 110, - 101, - 117, - 114, - 111, - 112, - 97, - 109, - 101, - 100, - 105, - 111, - 115, - 102, - 114, - 101, - 110, - 116, - 101, - 97, - 99, - 101, - 114, - 99, - 97, - 100, - 101, - 109, - 195, - 161, - 115, - 111, - 102, - 101, - 114, - 116, - 97, - 99, - 111, - 99, - 104, - 101, - 115, - 109, - 111, - 100, - 101, - 108, - 111, - 105, - 116, - 97, - 108, - 105, - 97, - 108, - 101, - 116, - 114, - 97, - 115, - 97, - 108, - 103, - 195, - 186, - 110, - 99, - 111, - 109, - 112, - 114, - 97, - 99, - 117, - 97, - 108, - 101, - 115, - 101, - 120, - 105, - 115, - 116, - 101, - 99, - 117, - 101, - 114, - 112, - 111, - 115, - 105, - 101, - 110, - 100, - 111, - 112, - 114, - 101, - 110, - 115, - 97, - 108, - 108, - 101, - 103, - 97, - 114, - 118, - 105, - 97, - 106, - 101, - 115, - 100, - 105, - 110, - 101, - 114, - 111, - 109, - 117, - 114, - 99, - 105, - 97, - 112, - 111, - 100, - 114, - 195, - 161, - 112, - 117, - 101, - 115, - 116, - 111, - 100, - 105, - 97, - 114, - 105, - 111, - 112, - 117, - 101, - 98, - 108, - 111, - 113, - 117, - 105, - 101, - 114, - 101, - 109, - 97, - 110, - 117, - 101, - 108, - 112, - 114, - 111, - 112, - 105, - 111, - 99, - 114, - 105, - 115, - 105, - 115, - 99, - 105, - 101, - 114, - 116, - 111, - 115, - 101, - 103, - 117, - 114, - 111, - 109, - 117, - 101, - 114, - 116, - 101, - 102, - 117, - 101, - 110, - 116, - 101, - 99, - 101, - 114, - 114, - 97, - 114, - 103, - 114, - 97, - 110, - 100, - 101, - 101, - 102, - 101, - 99, - 116, - 111, - 112, - 97, - 114, - 116, - 101, - 115, - 109, - 101, - 100, - 105, - 100, - 97, - 112, - 114, - 111, - 112, - 105, - 97, - 111, - 102, - 114, - 101, - 99, - 101, - 116, - 105, - 101, - 114, - 114, - 97, - 101, - 45, - 109, - 97, - 105, - 108, - 118, - 97, - 114, - 105, - 97, - 115, - 102, - 111, - 114, - 109, - 97, - 115, - 102, - 117, - 116, - 117, - 114, - 111, - 111, - 98, - 106, - 101, - 116, - 111, - 115, - 101, - 103, - 117, - 105, - 114, - 114, - 105, - 101, - 115, - 103, - 111, - 110, - 111, - 114, - 109, - 97, - 115, - 109, - 105, - 115, - 109, - 111, - 115, - 195, - 186, - 110, - 105, - 99, - 111, - 99, - 97, - 109, - 105, - 110, - 111, - 115, - 105, - 116, - 105, - 111, - 115, - 114, - 97, - 122, - 195, - 179, - 110, - 100, - 101, - 98, - 105, - 100, - 111, - 112, - 114, - 117, - 101, - 98, - 97, - 116, - 111, - 108, - 101, - 100, - 111, - 116, - 101, - 110, - 195, - 173, - 97, - 106, - 101, - 115, - 195, - 186, - 115, - 101, - 115, - 112, - 101, - 114, - 111, - 99, - 111, - 99, - 105, - 110, - 97, - 111, - 114, - 105, - 103, - 101, - 110, - 116, - 105, - 101, - 110, - 100, - 97, - 99, - 105, - 101, - 110, - 116, - 111, - 99, - 195, - 161, - 100, - 105, - 122, - 104, - 97, - 98, - 108, - 97, - 114, - 115, - 101, - 114, - 195, - 173, - 97, - 108, - 97, - 116, - 105, - 110, - 97, - 102, - 117, - 101, - 114, - 122, - 97, - 101, - 115, - 116, - 105, - 108, - 111, - 103, - 117, - 101, - 114, - 114, - 97, - 101, - 110, - 116, - 114, - 97, - 114, - 195, - 169, - 120, - 105, - 116, - 111, - 108, - 195, - 179, - 112, - 101, - 122, - 97, - 103, - 101, - 110, - 100, - 97, - 118, - 195, - 173, - 100, - 101, - 111, - 101, - 118, - 105, - 116, - 97, - 114, - 112, - 97, - 103, - 105, - 110, - 97, - 109, - 101, - 116, - 114, - 111, - 115, - 106, - 97, - 118, - 105, - 101, - 114, - 112, - 97, - 100, - 114, - 101, - 115, - 102, - 195, - 161, - 99, - 105, - 108, - 99, - 97, - 98, - 101, - 122, - 97, - 195, - 161, - 114, - 101, - 97, - 115, - 115, - 97, - 108, - 105, - 100, - 97, - 101, - 110, - 118, - 195, - 173, - 111, - 106, - 97, - 112, - 195, - 179, - 110, - 97, - 98, - 117, - 115, - 111, - 115, - 98, - 105, - 101, - 110, - 101, - 115, - 116, - 101, - 120, - 116, - 111, - 115, - 108, - 108, - 101, - 118, - 97, - 114, - 112, - 117, - 101, - 100, - 97, - 110, - 102, - 117, - 101, - 114, - 116, - 101, - 99, - 111, - 109, - 195, - 186, - 110, - 99, - 108, - 97, - 115, - 101, - 115, - 104, - 117, - 109, - 97, - 110, - 111, - 116, - 101, - 110, - 105, - 100, - 111, - 98, - 105, - 108, - 98, - 97, - 111, - 117, - 110, - 105, - 100, - 97, - 100, - 101, - 115, - 116, - 195, - 161, - 115, - 101, - 100, - 105, - 116, - 97, - 114, - 99, - 114, - 101, - 97, - 100, - 111, - 208, - 180, - 208, - 187, - 209, - 143, - 209, - 135, - 209, - 130, - 208, - 190, - 208, - 186, - 208, - 176, - 208, - 186, - 208, - 184, - 208, - 187, - 208, - 184, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 181, - 208, - 179, - 208, - 190, - 208, - 191, - 209, - 128, - 208, - 184, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 181, - 209, - 137, - 208, - 181, - 209, - 131, - 208, - 182, - 208, - 181, - 208, - 154, - 208, - 176, - 208, - 186, - 208, - 177, - 208, - 181, - 208, - 183, - 208, - 177, - 209, - 139, - 208, - 187, - 208, - 190, - 208, - 189, - 208, - 184, - 208, - 146, - 209, - 129, - 208, - 181, - 208, - 191, - 208, - 190, - 208, - 180, - 208, - 173, - 209, - 130, - 208, - 190, - 209, - 130, - 208, - 190, - 208, - 188, - 209, - 135, - 208, - 181, - 208, - 188, - 208, - 189, - 208, - 181, - 209, - 130, - 208, - 187, - 208, - 181, - 209, - 130, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 190, - 208, - 189, - 208, - 176, - 208, - 179, - 208, - 180, - 208, - 181, - 208, - 188, - 208, - 189, - 208, - 181, - 208, - 148, - 208, - 187, - 209, - 143, - 208, - 159, - 209, - 128, - 208, - 184, - 208, - 189, - 208, - 176, - 209, - 129, - 208, - 189, - 208, - 184, - 209, - 133, - 209, - 130, - 208, - 181, - 208, - 188, - 208, - 186, - 209, - 130, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 180, - 208, - 178, - 208, - 190, - 209, - 130, - 209, - 130, - 208, - 176, - 208, - 188, - 208, - 161, - 208, - 168, - 208, - 144, - 208, - 188, - 208, - 176, - 209, - 143, - 208, - 167, - 209, - 130, - 208, - 190, - 208, - 178, - 208, - 176, - 209, - 129, - 208, - 178, - 208, - 176, - 208, - 188, - 208, - 181, - 208, - 188, - 209, - 131, - 208, - 162, - 208, - 176, - 208, - 186, - 208, - 180, - 208, - 178, - 208, - 176, - 208, - 189, - 208, - 176, - 208, - 188, - 209, - 141, - 209, - 130, - 208, - 184, - 209, - 141, - 209, - 130, - 209, - 131, - 208, - 146, - 208, - 176, - 208, - 188, - 209, - 130, - 208, - 181, - 209, - 133, - 208, - 191, - 209, - 128, - 208, - 190, - 209, - 130, - 209, - 131, - 209, - 130, - 208, - 189, - 208, - 176, - 208, - 180, - 208, - 180, - 208, - 189, - 209, - 143, - 208, - 146, - 208, - 190, - 209, - 130, - 209, - 130, - 209, - 128, - 208, - 184, - 208, - 189, - 208, - 181, - 208, - 185, - 208, - 146, - 208, - 176, - 209, - 129, - 208, - 189, - 208, - 184, - 208, - 188, - 209, - 129, - 208, - 176, - 208, - 188, - 209, - 130, - 208, - 190, - 209, - 130, - 209, - 128, - 209, - 131, - 208, - 177, - 208, - 158, - 208, - 189, - 208, - 184, - 208, - 188, - 208, - 184, - 209, - 128, - 208, - 189, - 208, - 181, - 208, - 181, - 208, - 158, - 208, - 158, - 208, - 158, - 208, - 187, - 208, - 184, - 209, - 134, - 209, - 141, - 209, - 130, - 208, - 176, - 208, - 158, - 208, - 189, - 208, - 176, - 208, - 189, - 208, - 181, - 208, - 188, - 208, - 180, - 208, - 190, - 208, - 188, - 208, - 188, - 208, - 190, - 208, - 185, - 208, - 180, - 208, - 178, - 208, - 181, - 208, - 190, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 131, - 208, - 180, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 185, - 224, - 165, - 136, - 224, - 164, - 149, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 165, - 139, - 224, - 164, - 148, - 224, - 164, - 176, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 143, - 224, - 164, - 149, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 173, - 224, - 165, - 128, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 165, - 139, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 175, - 224, - 164, - 185, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 149, - 224, - 164, - 165, - 224, - 164, - 190, - 106, - 97, - 103, - 114, - 97, - 110, - 224, - 164, - 134, - 224, - 164, - 156, - 224, - 164, - 156, - 224, - 165, - 139, - 224, - 164, - 133, - 224, - 164, - 172, - 224, - 164, - 166, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 164, - 136, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 151, - 224, - 164, - 143, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 164, - 135, - 224, - 164, - 168, - 224, - 164, - 181, - 224, - 164, - 185, - 224, - 164, - 175, - 224, - 165, - 135, - 224, - 164, - 165, - 224, - 165, - 135, - 224, - 164, - 165, - 224, - 165, - 128, - 224, - 164, - 152, - 224, - 164, - 176, - 224, - 164, - 156, - 224, - 164, - 172, - 224, - 164, - 166, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 164, - 136, - 224, - 164, - 156, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 164, - 136, - 224, - 164, - 168, - 224, - 164, - 143, - 224, - 164, - 185, - 224, - 164, - 176, - 224, - 164, - 137, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 174, - 224, - 164, - 181, - 224, - 165, - 139, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 172, - 224, - 164, - 174, - 224, - 164, - 136, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 147, - 224, - 164, - 176, - 224, - 164, - 134, - 224, - 164, - 174, - 224, - 164, - 172, - 224, - 164, - 184, - 224, - 164, - 173, - 224, - 164, - 176, - 224, - 164, - 172, - 224, - 164, - 168, - 224, - 164, - 154, - 224, - 164, - 178, - 224, - 164, - 174, - 224, - 164, - 168, - 224, - 164, - 134, - 224, - 164, - 151, - 224, - 164, - 184, - 224, - 165, - 128, - 224, - 164, - 178, - 224, - 165, - 128, - 216, - 185, - 217, - 132, - 217, - 137, - 216, - 165, - 217, - 132, - 217, - 137, - 217, - 135, - 216, - 176, - 216, - 167, - 216, - 162, - 216, - 174, - 216, - 177, - 216, - 185, - 216, - 175, - 216, - 175, - 216, - 167, - 217, - 132, - 217, - 137, - 217, - 135, - 216, - 176, - 217, - 135, - 216, - 181, - 217, - 136, - 216, - 177, - 216, - 186, - 217, - 138, - 216, - 177, - 217, - 131, - 216, - 167, - 217, - 134, - 217, - 136, - 217, - 132, - 216, - 167, - 216, - 168, - 217, - 138, - 217, - 134, - 216, - 185, - 216, - 177, - 216, - 182, - 216, - 176, - 217, - 132, - 217, - 131, - 217, - 135, - 217, - 134, - 216, - 167, - 217, - 138, - 217, - 136, - 217, - 133, - 217, - 130, - 216, - 167, - 217, - 132, - 216, - 185, - 217, - 132, - 217, - 138, - 216, - 167, - 217, - 134, - 216, - 167, - 217, - 132, - 217, - 131, - 217, - 134, - 216, - 173, - 216, - 170, - 217, - 137, - 217, - 130, - 216, - 168, - 217, - 132, - 217, - 136, - 216, - 173, - 216, - 169, - 216, - 167, - 216, - 174, - 216, - 177, - 217, - 129, - 217, - 130, - 216, - 183, - 216, - 185, - 216, - 168, - 216, - 175, - 216, - 177, - 217, - 131, - 217, - 134, - 216, - 165, - 216, - 176, - 216, - 167, - 217, - 131, - 217, - 133, - 216, - 167, - 216, - 167, - 216, - 173, - 216, - 175, - 216, - 165, - 217, - 132, - 216, - 167, - 217, - 129, - 217, - 138, - 217, - 135, - 216, - 168, - 216, - 185, - 216, - 182, - 217, - 131, - 217, - 138, - 217, - 129, - 216, - 168, - 216, - 173, - 216, - 171, - 217, - 136, - 217, - 133, - 217, - 134, - 217, - 136, - 217, - 135, - 217, - 136, - 216, - 163, - 217, - 134, - 216, - 167, - 216, - 172, - 216, - 175, - 216, - 167, - 217, - 132, - 217, - 135, - 216, - 167, - 216, - 179, - 217, - 132, - 217, - 133, - 216, - 185, - 217, - 134, - 216, - 175, - 217, - 132, - 217, - 138, - 216, - 179, - 216, - 185, - 216, - 168, - 216, - 177, - 216, - 181, - 217, - 132, - 217, - 137, - 217, - 133, - 217, - 134, - 216, - 176, - 216, - 168, - 217, - 135, - 216, - 167, - 216, - 163, - 217, - 134, - 217, - 135, - 217, - 133, - 216, - 171, - 217, - 132, - 217, - 131, - 217, - 134, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 173, - 217, - 138, - 216, - 171, - 217, - 133, - 216, - 181, - 216, - 177, - 216, - 180, - 216, - 177, - 216, - 173, - 216, - 173, - 217, - 136, - 217, - 132, - 217, - 136, - 217, - 129, - 217, - 138, - 216, - 167, - 216, - 176, - 216, - 167, - 217, - 132, - 217, - 131, - 217, - 132, - 217, - 133, - 216, - 177, - 216, - 169, - 216, - 167, - 217, - 134, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 129, - 216, - 163, - 216, - 168, - 217, - 136, - 216, - 174, - 216, - 167, - 216, - 181, - 216, - 163, - 217, - 134, - 216, - 170, - 216, - 167, - 217, - 134, - 217, - 135, - 216, - 167, - 217, - 132, - 217, - 138, - 216, - 185, - 216, - 182, - 217, - 136, - 217, - 136, - 217, - 130, - 216, - 175, - 216, - 167, - 216, - 168, - 217, - 134, - 216, - 174, - 217, - 138, - 216, - 177, - 216, - 168, - 217, - 134, - 216, - 170, - 217, - 132, - 217, - 131, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 161, - 217, - 136, - 217, - 135, - 217, - 138, - 216, - 167, - 216, - 168, - 217, - 136, - 217, - 130, - 216, - 181, - 216, - 181, - 217, - 136, - 217, - 133, - 216, - 167, - 216, - 177, - 217, - 130, - 217, - 133, - 216, - 163, - 216, - 173, - 216, - 175, - 217, - 134, - 216, - 173, - 217, - 134, - 216, - 185, - 216, - 175, - 217, - 133, - 216, - 177, - 216, - 163, - 217, - 138, - 216, - 167, - 216, - 173, - 216, - 169, - 217, - 131, - 216, - 170, - 216, - 168, - 216, - 175, - 217, - 136, - 217, - 134, - 217, - 138, - 216, - 172, - 216, - 168, - 217, - 133, - 217, - 134, - 217, - 135, - 216, - 170, - 216, - 173, - 216, - 170, - 216, - 172, - 217, - 135, - 216, - 169, - 216, - 179, - 217, - 134, - 216, - 169, - 217, - 138, - 216, - 170, - 217, - 133, - 217, - 131, - 216, - 177, - 216, - 169, - 216, - 186, - 216, - 178, - 216, - 169, - 217, - 134, - 217, - 129, - 216, - 179, - 216, - 168, - 217, - 138, - 216, - 170, - 217, - 132, - 217, - 132, - 217, - 135, - 217, - 132, - 217, - 134, - 216, - 167, - 216, - 170, - 217, - 132, - 217, - 131, - 217, - 130, - 217, - 132, - 216, - 168, - 217, - 132, - 217, - 133, - 216, - 167, - 216, - 185, - 217, - 134, - 217, - 135, - 216, - 163, - 217, - 136, - 217, - 132, - 216, - 180, - 217, - 138, - 216, - 161, - 217, - 134, - 217, - 136, - 216, - 177, - 216, - 163, - 217, - 133, - 216, - 167, - 217, - 129, - 217, - 138, - 217, - 131, - 216, - 168, - 217, - 131, - 217, - 132, - 216, - 176, - 216, - 167, - 216, - 170, - 216, - 177, - 216, - 170, - 216, - 168, - 216, - 168, - 216, - 163, - 217, - 134, - 217, - 135, - 217, - 133, - 216, - 179, - 216, - 167, - 217, - 134, - 217, - 131, - 216, - 168, - 217, - 138, - 216, - 185, - 217, - 129, - 217, - 130, - 216, - 175, - 216, - 173, - 216, - 179, - 217, - 134, - 217, - 132, - 217, - 135, - 217, - 133, - 216, - 180, - 216, - 185, - 216, - 177, - 216, - 163, - 217, - 135, - 217, - 132, - 216, - 180, - 217, - 135, - 216, - 177, - 217, - 130, - 216, - 183, - 216, - 177, - 216, - 183, - 217, - 132, - 216, - 168, - 112, - 114, - 111, - 102, - 105, - 108, - 101, - 115, - 101, - 114, - 118, - 105, - 99, - 101, - 100, - 101, - 102, - 97, - 117, - 108, - 116, - 104, - 105, - 109, - 115, - 101, - 108, - 102, - 100, - 101, - 116, - 97, - 105, - 108, - 115, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 115, - 116, - 97, - 114, - 116, - 101, - 100, - 109, - 101, - 115, - 115, - 97, - 103, - 101, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 97, - 115, - 104, - 105, - 111, - 110, - 60, - 116, - 105, - 116, - 108, - 101, - 62, - 99, - 111, - 117, - 110, - 116, - 114, - 121, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 99, - 114, - 101, - 97, - 116, - 101, - 100, - 115, - 116, - 111, - 114, - 105, - 101, - 115, - 114, - 101, - 115, - 117, - 108, - 116, - 115, - 114, - 117, - 110, - 110, - 105, - 110, - 103, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 119, - 114, - 105, - 116, - 105, - 110, - 103, - 111, - 98, - 106, - 101, - 99, - 116, - 115, - 118, - 105, - 115, - 105, - 98, - 108, - 101, - 119, - 101, - 108, - 99, - 111, - 109, - 101, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 117, - 110, - 107, - 110, - 111, - 119, - 110, - 110, - 101, - 116, - 119, - 111, - 114, - 107, - 99, - 111, - 109, - 112, - 97, - 110, - 121, - 100, - 121, - 110, - 97, - 109, - 105, - 99, - 98, - 114, - 111, - 119, - 115, - 101, - 114, - 112, - 114, - 105, - 118, - 97, - 99, - 121, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 83, - 101, - 114, - 118, - 105, - 99, - 101, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 114, - 101, - 113, - 117, - 101, - 115, - 116, - 114, - 101, - 115, - 101, - 114, - 118, - 101, - 119, - 101, - 98, - 115, - 105, - 116, - 101, - 104, - 105, - 115, - 116, - 111, - 114, - 121, - 102, - 114, - 105, - 101, - 110, - 100, - 115, - 111, - 112, - 116, - 105, - 111, - 110, - 115, - 119, - 111, - 114, - 107, - 105, - 110, - 103, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 109, - 105, - 108, - 108, - 105, - 111, - 110, - 99, - 104, - 97, - 110, - 110, - 101, - 108, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 118, - 105, - 115, - 105, - 116, - 101, - 100, - 119, - 101, - 97, - 116, - 104, - 101, - 114, - 99, - 111, - 114, - 114, - 101, - 99, - 116, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 101, - 100, - 105, - 114, - 101, - 99, - 116, - 102, - 111, - 114, - 119, - 97, - 114, - 100, - 121, - 111, - 117, - 32, - 99, - 97, - 110, - 114, - 101, - 109, - 111, - 118, - 101, - 100, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 97, - 114, - 99, - 104, - 105, - 118, - 101, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 114, - 101, - 97, - 100, - 105, - 110, - 103, - 108, - 105, - 98, - 114, - 97, - 114, - 121, - 108, - 105, - 109, - 105, - 116, - 101, - 100, - 109, - 97, - 110, - 97, - 103, - 101, - 114, - 102, - 117, - 114, - 116, - 104, - 101, - 114, - 115, - 117, - 109, - 109, - 97, - 114, - 121, - 109, - 97, - 99, - 104, - 105, - 110, - 101, - 109, - 105, - 110, - 117, - 116, - 101, - 115, - 112, - 114, - 105, - 118, - 97, - 116, - 101, - 99, - 111, - 110, - 116, - 101, - 120, - 116, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 115, - 111, - 99, - 105, - 101, - 116, - 121, - 110, - 117, - 109, - 98, - 101, - 114, - 115, - 119, - 114, - 105, - 116, - 116, - 101, - 110, - 101, - 110, - 97, - 98, - 108, - 101, - 100, - 116, - 114, - 105, - 103, - 103, - 101, - 114, - 115, - 111, - 117, - 114, - 99, - 101, - 115, - 108, - 111, - 97, - 100, - 105, - 110, - 103, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 112, - 97, - 114, - 116, - 110, - 101, - 114, - 102, - 105, - 110, - 97, - 108, - 108, - 121, - 112, - 101, - 114, - 102, - 101, - 99, - 116, - 109, - 101, - 97, - 110, - 105, - 110, - 103, - 115, - 121, - 115, - 116, - 101, - 109, - 115, - 107, - 101, - 101, - 112, - 105, - 110, - 103, - 99, - 117, - 108, - 116, - 117, - 114, - 101, - 38, - 113, - 117, - 111, - 116, - 59, - 44, - 106, - 111, - 117, - 114, - 110, - 97, - 108, - 112, - 114, - 111, - 106, - 101, - 99, - 116, - 115, - 117, - 114, - 102, - 97, - 99, - 101, - 115, - 38, - 113, - 117, - 111, - 116, - 59, - 101, - 120, - 112, - 105, - 114, - 101, - 115, - 114, - 101, - 118, - 105, - 101, - 119, - 115, - 98, - 97, - 108, - 97, - 110, - 99, - 101, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 67, - 111, - 110, - 116, - 101, - 110, - 116, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 80, - 108, - 101, - 97, - 115, - 101, - 32, - 111, - 112, - 105, - 110, - 105, - 111, - 110, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 97, - 118, - 101, - 114, - 97, - 103, - 101, - 112, - 114, - 105, - 109, - 97, - 114, - 121, - 118, - 105, - 108, - 108, - 97, - 103, - 101, - 83, - 112, - 97, - 110, - 105, - 115, - 104, - 103, - 97, - 108, - 108, - 101, - 114, - 121, - 100, - 101, - 99, - 108, - 105, - 110, - 101, - 109, - 101, - 101, - 116, - 105, - 110, - 103, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 113, - 117, - 97, - 108, - 105, - 116, - 121, - 109, - 101, - 97, - 115, - 117, - 114, - 101, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 115, - 112, - 101, - 99, - 105, - 101, - 115, - 115, - 101, - 115, - 115, - 105, - 111, - 110, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 119, - 114, - 105, - 116, - 101, - 114, - 115, - 99, - 111, - 117, - 110, - 116, - 101, - 114, - 105, - 110, - 105, - 116, - 105, - 97, - 108, - 114, - 101, - 112, - 111, - 114, - 116, - 115, - 102, - 105, - 103, - 117, - 114, - 101, - 115, - 109, - 101, - 109, - 98, - 101, - 114, - 115, - 104, - 111, - 108, - 100, - 105, - 110, - 103, - 100, - 105, - 115, - 112, - 117, - 116, - 101, - 101, - 97, - 114, - 108, - 105, - 101, - 114, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 100, - 105, - 103, - 105, - 116, - 97, - 108, - 112, - 105, - 99, - 116, - 117, - 114, - 101, - 65, - 110, - 111, - 116, - 104, - 101, - 114, - 109, - 97, - 114, - 114, - 105, - 101, - 100, - 116, - 114, - 97, - 102, - 102, - 105, - 99, - 108, - 101, - 97, - 100, - 105, - 110, - 103, - 99, - 104, - 97, - 110, - 103, - 101, - 100, - 99, - 101, - 110, - 116, - 114, - 97, - 108, - 118, - 105, - 99, - 116, - 111, - 114, - 121, - 105, - 109, - 97, - 103, - 101, - 115, - 47, - 114, - 101, - 97, - 115, - 111, - 110, - 115, - 115, - 116, - 117, - 100, - 105, - 101, - 115, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 108, - 105, - 115, - 116, - 105, - 110, - 103, - 109, - 117, - 115, - 116, - 32, - 98, - 101, - 115, - 99, - 104, - 111, - 111, - 108, - 115, - 86, - 101, - 114, - 115, - 105, - 111, - 110, - 117, - 115, - 117, - 97, - 108, - 108, - 121, - 101, - 112, - 105, - 115, - 111, - 100, - 101, - 112, - 108, - 97, - 121, - 105, - 110, - 103, - 103, - 114, - 111, - 119, - 105, - 110, - 103, - 111, - 98, - 118, - 105, - 111, - 117, - 115, - 111, - 118, - 101, - 114, - 108, - 97, - 121, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 99, - 116, - 105, - 111, - 110, - 115, - 60, - 47, - 117, - 108, - 62, - 13, - 10, - 119, - 114, - 97, - 112, - 112, - 101, - 114, - 97, - 108, - 114, - 101, - 97, - 100, - 121, - 99, - 101, - 114, - 116, - 97, - 105, - 110, - 114, - 101, - 97, - 108, - 105, - 116, - 121, - 115, - 116, - 111, - 114, - 97, - 103, - 101, - 97, - 110, - 111, - 116, - 104, - 101, - 114, - 100, - 101, - 115, - 107, - 116, - 111, - 112, - 111, - 102, - 102, - 101, - 114, - 101, - 100, - 112, - 97, - 116, - 116, - 101, - 114, - 110, - 117, - 110, - 117, - 115, - 117, - 97, - 108, - 68, - 105, - 103, - 105, - 116, - 97, - 108, - 99, - 97, - 112, - 105, - 116, - 97, - 108, - 87, - 101, - 98, - 115, - 105, - 116, - 101, - 102, - 97, - 105, - 108, - 117, - 114, - 101, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 114, - 101, - 100, - 117, - 99, - 101, - 100, - 65, - 110, - 100, - 114, - 111, - 105, - 100, - 100, - 101, - 99, - 97, - 100, - 101, - 115, - 114, - 101, - 103, - 117, - 108, - 97, - 114, - 32, - 38, - 97, - 109, - 112, - 59, - 32, - 97, - 110, - 105, - 109, - 97, - 108, - 115, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 65, - 117, - 116, - 111, - 109, - 97, - 116, - 103, - 101, - 116, - 116, - 105, - 110, - 103, - 109, - 101, - 116, - 104, - 111, - 100, - 115, - 110, - 111, - 116, - 104, - 105, - 110, - 103, - 80, - 111, - 112, - 117, - 108, - 97, - 114, - 99, - 97, - 112, - 116, - 105, - 111, - 110, - 108, - 101, - 116, - 116, - 101, - 114, - 115, - 99, - 97, - 112, - 116, - 117, - 114, - 101, - 115, - 99, - 105, - 101, - 110, - 99, - 101, - 108, - 105, - 99, - 101, - 110, - 115, - 101, - 99, - 104, - 97, - 110, - 103, - 101, - 115, - 69, - 110, - 103, - 108, - 97, - 110, - 100, - 61, - 49, - 38, - 97, - 109, - 112, - 59, - 72, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 61, - 32, - 110, - 101, - 119, - 32, - 67, - 101, - 110, - 116, - 114, - 97, - 108, - 117, - 112, - 100, - 97, - 116, - 101, - 100, - 83, - 112, - 101, - 99, - 105, - 97, - 108, - 78, - 101, - 116, - 119, - 111, - 114, - 107, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 99, - 111, - 109, - 109, - 101, - 110, - 116, - 119, - 97, - 114, - 110, - 105, - 110, - 103, - 67, - 111, - 108, - 108, - 101, - 103, - 101, - 116, - 111, - 111, - 108, - 98, - 97, - 114, - 114, - 101, - 109, - 97, - 105, - 110, - 115, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 68, - 101, - 117, - 116, - 115, - 99, - 104, - 102, - 105, - 110, - 97, - 110, - 99, - 101, - 119, - 111, - 114, - 107, - 101, - 114, - 115, - 113, - 117, - 105, - 99, - 107, - 108, - 121, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 101, - 120, - 97, - 99, - 116, - 108, - 121, - 115, - 101, - 116, - 116, - 105, - 110, - 103, - 100, - 105, - 115, - 101, - 97, - 115, - 101, - 83, - 111, - 99, - 105, - 101, - 116, - 121, - 119, - 101, - 97, - 112, - 111, - 110, - 115, - 101, - 120, - 104, - 105, - 98, - 105, - 116, - 38, - 108, - 116, - 59, - 33, - 45, - 45, - 67, - 111, - 110, - 116, - 114, - 111, - 108, - 99, - 108, - 97, - 115, - 115, - 101, - 115, - 99, - 111, - 118, - 101, - 114, - 101, - 100, - 111, - 117, - 116, - 108, - 105, - 110, - 101, - 97, - 116, - 116, - 97, - 99, - 107, - 115, - 100, - 101, - 118, - 105, - 99, - 101, - 115, - 40, - 119, - 105, - 110, - 100, - 111, - 119, - 112, - 117, - 114, - 112, - 111, - 115, - 101, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 77, - 111, - 98, - 105, - 108, - 101, - 32, - 107, - 105, - 108, - 108, - 105, - 110, - 103, - 115, - 104, - 111, - 119, - 105, - 110, - 103, - 73, - 116, - 97, - 108, - 105, - 97, - 110, - 100, - 114, - 111, - 112, - 112, - 101, - 100, - 104, - 101, - 97, - 118, - 105, - 108, - 121, - 101, - 102, - 102, - 101, - 99, - 116, - 115, - 45, - 49, - 39, - 93, - 41, - 59, - 10, - 99, - 111, - 110, - 102, - 105, - 114, - 109, - 67, - 117, - 114, - 114, - 101, - 110, - 116, - 97, - 100, - 118, - 97, - 110, - 99, - 101, - 115, - 104, - 97, - 114, - 105, - 110, - 103, - 111, - 112, - 101, - 110, - 105, - 110, - 103, - 100, - 114, - 97, - 119, - 105, - 110, - 103, - 98, - 105, - 108, - 108, - 105, - 111, - 110, - 111, - 114, - 100, - 101, - 114, - 101, - 100, - 71, - 101, - 114, - 109, - 97, - 110, - 121, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 119, - 104, - 101, - 116, - 104, - 101, - 114, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 83, - 99, - 105, - 101, - 110, - 99, - 101, - 99, - 97, - 116, - 97, - 108, - 111, - 103, - 65, - 114, - 116, - 105, - 99, - 108, - 101, - 98, - 117, - 116, - 116, - 111, - 110, - 115, - 108, - 97, - 114, - 103, - 101, - 115, - 116, - 117, - 110, - 105, - 102, - 111, - 114, - 109, - 106, - 111, - 117, - 114, - 110, - 101, - 121, - 115, - 105, - 100, - 101, - 98, - 97, - 114, - 67, - 104, - 105, - 99, - 97, - 103, - 111, - 104, - 111, - 108, - 105, - 100, - 97, - 121, - 71, - 101, - 110, - 101, - 114, - 97, - 108, - 112, - 97, - 115, - 115, - 97, - 103, - 101, - 44, - 38, - 113, - 117, - 111, - 116, - 59, - 97, - 110, - 105, - 109, - 97, - 116, - 101, - 102, - 101, - 101, - 108, - 105, - 110, - 103, - 97, - 114, - 114, - 105, - 118, - 101, - 100, - 112, - 97, - 115, - 115, - 105, - 110, - 103, - 110, - 97, - 116, - 117, - 114, - 97, - 108, - 114, - 111, - 117, - 103, - 104, - 108, - 121, - 46, - 10, - 10, - 84, - 104, - 101, - 32, - 98, - 117, - 116, - 32, - 110, - 111, - 116, - 100, - 101, - 110, - 115, - 105, - 116, - 121, - 66, - 114, - 105, - 116, - 97, - 105, - 110, - 67, - 104, - 105, - 110, - 101, - 115, - 101, - 108, - 97, - 99, - 107, - 32, - 111, - 102, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 73, - 114, - 101, - 108, - 97, - 110, - 100, - 34, - 32, - 100, - 97, - 116, - 97, - 45, - 102, - 97, - 99, - 116, - 111, - 114, - 115, - 114, - 101, - 99, - 101, - 105, - 118, - 101, - 116, - 104, - 97, - 116, - 32, - 105, - 115, - 76, - 105, - 98, - 114, - 97, - 114, - 121, - 104, - 117, - 115, - 98, - 97, - 110, - 100, - 105, - 110, - 32, - 102, - 97, - 99, - 116, - 97, - 102, - 102, - 97, - 105, - 114, - 115, - 67, - 104, - 97, - 114, - 108, - 101, - 115, - 114, - 97, - 100, - 105, - 99, - 97, - 108, - 98, - 114, - 111, - 117, - 103, - 104, - 116, - 102, - 105, - 110, - 100, - 105, - 110, - 103, - 108, - 97, - 110, - 100, - 105, - 110, - 103, - 58, - 108, - 97, - 110, - 103, - 61, - 34, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 108, - 101, - 97, - 100, - 101, - 114, - 115, - 112, - 108, - 97, - 110, - 110, - 101, - 100, - 112, - 114, - 101, - 109, - 105, - 117, - 109, - 112, - 97, - 99, - 107, - 97, - 103, - 101, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 69, - 100, - 105, - 116, - 105, - 111, - 110, - 93, - 38, - 113, - 117, - 111, - 116, - 59, - 77, - 101, - 115, - 115, - 97, - 103, - 101, - 110, - 101, - 101, - 100, - 32, - 116, - 111, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 99, - 111, - 109, - 112, - 108, - 101, - 120, - 108, - 111, - 111, - 107, - 105, - 110, - 103, - 115, - 116, - 97, - 116, - 105, - 111, - 110, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 115, - 109, - 97, - 108, - 108, - 101, - 114, - 45, - 109, - 111, - 98, - 105, - 108, - 101, - 114, - 101, - 99, - 111, - 114, - 100, - 115, - 119, - 97, - 110, - 116, - 32, - 116, - 111, - 107, - 105, - 110, - 100, - 32, - 111, - 102, - 70, - 105, - 114, - 101, - 102, - 111, - 120, - 121, - 111, - 117, - 32, - 97, - 114, - 101, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 115, - 116, - 117, - 100, - 105, - 101, - 100, - 109, - 97, - 120, - 105, - 109, - 117, - 109, - 104, - 101, - 97, - 100, - 105, - 110, - 103, - 114, - 97, - 112, - 105, - 100, - 108, - 121, - 99, - 108, - 105, - 109, - 97, - 116, - 101, - 107, - 105, - 110, - 103, - 100, - 111, - 109, - 101, - 109, - 101, - 114, - 103, - 101, - 100, - 97, - 109, - 111, - 117, - 110, - 116, - 115, - 102, - 111, - 117, - 110, - 100, - 101, - 100, - 112, - 105, - 111, - 110, - 101, - 101, - 114, - 102, - 111, - 114, - 109, - 117, - 108, - 97, - 100, - 121, - 110, - 97, - 115, - 116, - 121, - 104, - 111, - 119, - 32, - 116, - 111, - 32, - 83, - 117, - 112, - 112, - 111, - 114, - 116, - 114, - 101, - 118, - 101, - 110, - 117, - 101, - 101, - 99, - 111, - 110, - 111, - 109, - 121, - 82, - 101, - 115, - 117, - 108, - 116, - 115, - 98, - 114, - 111, - 116, - 104, - 101, - 114, - 115, - 111, - 108, - 100, - 105, - 101, - 114, - 108, - 97, - 114, - 103, - 101, - 108, - 121, - 99, - 97, - 108, - 108, - 105, - 110, - 103, - 46, - 38, - 113, - 117, - 111, - 116, - 59, - 65, - 99, - 99, - 111, - 117, - 110, - 116, - 69, - 100, - 119, - 97, - 114, - 100, - 32, - 115, - 101, - 103, - 109, - 101, - 110, - 116, - 82, - 111, - 98, - 101, - 114, - 116, - 32, - 101, - 102, - 102, - 111, - 114, - 116, - 115, - 80, - 97, - 99, - 105, - 102, - 105, - 99, - 108, - 101, - 97, - 114, - 110, - 101, - 100, - 117, - 112, - 32, - 119, - 105, - 116, - 104, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 119, - 101, - 32, - 104, - 97, - 118, - 101, - 65, - 110, - 103, - 101, - 108, - 101, - 115, - 110, - 97, - 116, - 105, - 111, - 110, - 115, - 95, - 115, - 101, - 97, - 114, - 99, - 104, - 97, - 112, - 112, - 108, - 105, - 101, - 100, - 97, - 99, - 113, - 117, - 105, - 114, - 101, - 109, - 97, - 115, - 115, - 105, - 118, - 101, - 103, - 114, - 97, - 110, - 116, - 101, - 100, - 58, - 32, - 102, - 97, - 108, - 115, - 101, - 116, - 114, - 101, - 97, - 116, - 101, - 100, - 98, - 105, - 103, - 103, - 101, - 115, - 116, - 98, - 101, - 110, - 101, - 102, - 105, - 116, - 100, - 114, - 105, - 118, - 105, - 110, - 103, - 83, - 116, - 117, - 100, - 105, - 101, - 115, - 109, - 105, - 110, - 105, - 109, - 117, - 109, - 112, - 101, - 114, - 104, - 97, - 112, - 115, - 109, - 111, - 114, - 110, - 105, - 110, - 103, - 115, - 101, - 108, - 108, - 105, - 110, - 103, - 105, - 115, - 32, - 117, - 115, - 101, - 100, - 114, - 101, - 118, - 101, - 114, - 115, - 101, - 118, - 97, - 114, - 105, - 97, - 110, - 116, - 32, - 114, - 111, - 108, - 101, - 61, - 34, - 109, - 105, - 115, - 115, - 105, - 110, - 103, - 97, - 99, - 104, - 105, - 101, - 118, - 101, - 112, - 114, - 111, - 109, - 111, - 116, - 101, - 115, - 116, - 117, - 100, - 101, - 110, - 116, - 115, - 111, - 109, - 101, - 111, - 110, - 101, - 101, - 120, - 116, - 114, - 101, - 109, - 101, - 114, - 101, - 115, - 116, - 111, - 114, - 101, - 98, - 111, - 116, - 116, - 111, - 109, - 58, - 101, - 118, - 111, - 108, - 118, - 101, - 100, - 97, - 108, - 108, - 32, - 116, - 104, - 101, - 115, - 105, - 116, - 101, - 109, - 97, - 112, - 101, - 110, - 103, - 108, - 105, - 115, - 104, - 119, - 97, - 121, - 32, - 116, - 111, - 32, - 32, - 65, - 117, - 103, - 117, - 115, - 116, - 115, - 121, - 109, - 98, - 111, - 108, - 115, - 67, - 111, - 109, - 112, - 97, - 110, - 121, - 109, - 97, - 116, - 116, - 101, - 114, - 115, - 109, - 117, - 115, - 105, - 99, - 97, - 108, - 97, - 103, - 97, - 105, - 110, - 115, - 116, - 115, - 101, - 114, - 118, - 105, - 110, - 103, - 125, - 41, - 40, - 41, - 59, - 13, - 10, - 112, - 97, - 121, - 109, - 101, - 110, - 116, - 116, - 114, - 111, - 117, - 98, - 108, - 101, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 99, - 111, - 109, - 112, - 97, - 114, - 101, - 112, - 97, - 114, - 101, - 110, - 116, - 115, - 112, - 108, - 97, - 121, - 101, - 114, - 115, - 114, - 101, - 103, - 105, - 111, - 110, - 115, - 109, - 111, - 110, - 105, - 116, - 111, - 114, - 32, - 39, - 39, - 84, - 104, - 101, - 32, - 119, - 105, - 110, - 110, - 105, - 110, - 103, - 101, - 120, - 112, - 108, - 111, - 114, - 101, - 97, - 100, - 97, - 112, - 116, - 101, - 100, - 71, - 97, - 108, - 108, - 101, - 114, - 121, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 101, - 110, - 104, - 97, - 110, - 99, - 101, - 99, - 97, - 114, - 101, - 101, - 114, - 115, - 41, - 46, - 32, - 84, - 104, - 101, - 32, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 83, - 101, - 97, - 114, - 99, - 104, - 32, - 97, - 110, - 99, - 105, - 101, - 110, - 116, - 101, - 120, - 105, - 115, - 116, - 101, - 100, - 102, - 111, - 111, - 116, - 101, - 114, - 32, - 104, - 97, - 110, - 100, - 108, - 101, - 114, - 112, - 114, - 105, - 110, - 116, - 101, - 100, - 99, - 111, - 110, - 115, - 111, - 108, - 101, - 69, - 97, - 115, - 116, - 101, - 114, - 110, - 101, - 120, - 112, - 111, - 114, - 116, - 115, - 119, - 105, - 110, - 100, - 111, - 119, - 115, - 67, - 104, - 97, - 110, - 110, - 101, - 108, - 105, - 108, - 108, - 101, - 103, - 97, - 108, - 110, - 101, - 117, - 116, - 114, - 97, - 108, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 95, - 104, - 101, - 97, - 100, - 101, - 114, - 115, - 105, - 103, - 110, - 105, - 110, - 103, - 46, - 104, - 116, - 109, - 108, - 34, - 62, - 115, - 101, - 116, - 116, - 108, - 101, - 100, - 119, - 101, - 115, - 116, - 101, - 114, - 110, - 99, - 97, - 117, - 115, - 105, - 110, - 103, - 45, - 119, - 101, - 98, - 107, - 105, - 116, - 99, - 108, - 97, - 105, - 109, - 101, - 100, - 74, - 117, - 115, - 116, - 105, - 99, - 101, - 99, - 104, - 97, - 112, - 116, - 101, - 114, - 118, - 105, - 99, - 116, - 105, - 109, - 115, - 84, - 104, - 111, - 109, - 97, - 115, - 32, - 109, - 111, - 122, - 105, - 108, - 108, - 97, - 112, - 114, - 111, - 109, - 105, - 115, - 101, - 112, - 97, - 114, - 116, - 105, - 101, - 115, - 101, - 100, - 105, - 116, - 105, - 111, - 110, - 111, - 117, - 116, - 115, - 105, - 100, - 101, - 58, - 102, - 97, - 108, - 115, - 101, - 44, - 104, - 117, - 110, - 100, - 114, - 101, - 100, - 79, - 108, - 121, - 109, - 112, - 105, - 99, - 95, - 98, - 117, - 116, - 116, - 111, - 110, - 97, - 117, - 116, - 104, - 111, - 114, - 115, - 114, - 101, - 97, - 99, - 104, - 101, - 100, - 99, - 104, - 114, - 111, - 110, - 105, - 99, - 100, - 101, - 109, - 97, - 110, - 100, - 115, - 115, - 101, - 99, - 111, - 110, - 100, - 115, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 97, - 100, - 111, - 112, - 116, - 101, - 100, - 112, - 114, - 101, - 112, - 97, - 114, - 101, - 110, - 101, - 105, - 116, - 104, - 101, - 114, - 103, - 114, - 101, - 97, - 116, - 108, - 121, - 103, - 114, - 101, - 97, - 116, - 101, - 114, - 111, - 118, - 101, - 114, - 97, - 108, - 108, - 105, - 109, - 112, - 114, - 111, - 118, - 101, - 99, - 111, - 109, - 109, - 97, - 110, - 100, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 115, - 101, - 97, - 114, - 99, - 104, - 46, - 119, - 111, - 114, - 115, - 104, - 105, - 112, - 102, - 117, - 110, - 100, - 105, - 110, - 103, - 116, - 104, - 111, - 117, - 103, - 104, - 116, - 104, - 105, - 103, - 104, - 101, - 115, - 116, - 105, - 110, - 115, - 116, - 101, - 97, - 100, - 117, - 116, - 105, - 108, - 105, - 116, - 121, - 113, - 117, - 97, - 114, - 116, - 101, - 114, - 67, - 117, - 108, - 116, - 117, - 114, - 101, - 116, - 101, - 115, - 116, - 105, - 110, - 103, - 99, - 108, - 101, - 97, - 114, - 108, - 121, - 101, - 120, - 112, - 111, - 115, - 101, - 100, - 66, - 114, - 111, - 119, - 115, - 101, - 114, - 108, - 105, - 98, - 101, - 114, - 97, - 108, - 125, - 32, - 99, - 97, - 116, - 99, - 104, - 80, - 114, - 111, - 106, - 101, - 99, - 116, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 104, - 105, - 100, - 101, - 40, - 41, - 59, - 70, - 108, - 111, - 114, - 105, - 100, - 97, - 97, - 110, - 115, - 119, - 101, - 114, - 115, - 97, - 108, - 108, - 111, - 119, - 101, - 100, - 69, - 109, - 112, - 101, - 114, - 111, - 114, - 100, - 101, - 102, - 101, - 110, - 115, - 101, - 115, - 101, - 114, - 105, - 111, - 117, - 115, - 102, - 114, - 101, - 101, - 100, - 111, - 109, - 83, - 101, - 118, - 101, - 114, - 97, - 108, - 45, - 98, - 117, - 116, - 116, - 111, - 110, - 70, - 117, - 114, - 116, - 104, - 101, - 114, - 111, - 117, - 116, - 32, - 111, - 102, - 32, - 33, - 61, - 32, - 110, - 117, - 108, - 108, - 116, - 114, - 97, - 105, - 110, - 101, - 100, - 68, - 101, - 110, - 109, - 97, - 114, - 107, - 118, - 111, - 105, - 100, - 40, - 48, - 41, - 47, - 97, - 108, - 108, - 46, - 106, - 115, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 82, - 101, - 113, - 117, - 101, - 115, - 116, - 83, - 116, - 101, - 112, - 104, - 101, - 110, - 10, - 10, - 87, - 104, - 101, - 110, - 32, - 111, - 98, - 115, - 101, - 114, - 118, - 101, - 60, - 47, - 104, - 50, - 62, - 13, - 10, - 77, - 111, - 100, - 101, - 114, - 110, - 32, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 98, - 111, - 114, - 100, - 101, - 114, - 115, - 46, - 10, - 10, - 70, - 111, - 114, - 32, - 10, - 10, - 77, - 97, - 110, - 121, - 32, - 97, - 114, - 116, - 105, - 115, - 116, - 115, - 112, - 111, - 119, - 101, - 114, - 101, - 100, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 102, - 105, - 99, - 116, - 105, - 111, - 110, - 116, - 121, - 112, - 101, - 32, - 111, - 102, - 109, - 101, - 100, - 105, - 99, - 97, - 108, - 116, - 105, - 99, - 107, - 101, - 116, - 115, - 111, - 112, - 112, - 111, - 115, - 101, - 100, - 67, - 111, - 117, - 110, - 99, - 105, - 108, - 119, - 105, - 116, - 110, - 101, - 115, - 115, - 106, - 117, - 115, - 116, - 105, - 99, - 101, - 71, - 101, - 111, - 114, - 103, - 101, - 32, - 66, - 101, - 108, - 103, - 105, - 117, - 109, - 46, - 46, - 46, - 60, - 47, - 97, - 62, - 116, - 119, - 105, - 116, - 116, - 101, - 114, - 110, - 111, - 116, - 97, - 98, - 108, - 121, - 119, - 97, - 105, - 116, - 105, - 110, - 103, - 119, - 97, - 114, - 102, - 97, - 114, - 101, - 32, - 79, - 116, - 104, - 101, - 114, - 32, - 114, - 97, - 110, - 107, - 105, - 110, - 103, - 112, - 104, - 114, - 97, - 115, - 101, - 115, - 109, - 101, - 110, - 116, - 105, - 111, - 110, - 115, - 117, - 114, - 118, - 105, - 118, - 101, - 115, - 99, - 104, - 111, - 108, - 97, - 114, - 60, - 47, - 112, - 62, - 13, - 10, - 32, - 67, - 111, - 117, - 110, - 116, - 114, - 121, - 105, - 103, - 110, - 111, - 114, - 101, - 100, - 108, - 111, - 115, - 115, - 32, - 111, - 102, - 106, - 117, - 115, - 116, - 32, - 97, - 115, - 71, - 101, - 111, - 114, - 103, - 105, - 97, - 115, - 116, - 114, - 97, - 110, - 103, - 101, - 60, - 104, - 101, - 97, - 100, - 62, - 60, - 115, - 116, - 111, - 112, - 112, - 101, - 100, - 49, - 39, - 93, - 41, - 59, - 13, - 10, - 105, - 115, - 108, - 97, - 110, - 100, - 115, - 110, - 111, - 116, - 97, - 98, - 108, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 58, - 108, - 105, - 115, - 116, - 32, - 111, - 102, - 99, - 97, - 114, - 114, - 105, - 101, - 100, - 49, - 48, - 48, - 44, - 48, - 48, - 48, - 60, - 47, - 104, - 51, - 62, - 10, - 32, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 98, - 101, - 99, - 111, - 109, - 101, - 115, - 115, - 101, - 108, - 101, - 99, - 116, - 32, - 119, - 101, - 100, - 100, - 105, - 110, - 103, - 48, - 48, - 46, - 104, - 116, - 109, - 108, - 109, - 111, - 110, - 97, - 114, - 99, - 104, - 111, - 102, - 102, - 32, - 116, - 104, - 101, - 116, - 101, - 97, - 99, - 104, - 101, - 114, - 104, - 105, - 103, - 104, - 108, - 121, - 32, - 98, - 105, - 111, - 108, - 111, - 103, - 121, - 108, - 105, - 102, - 101, - 32, - 111, - 102, - 111, - 114, - 32, - 101, - 118, - 101, - 110, - 114, - 105, - 115, - 101, - 32, - 111, - 102, - 38, - 114, - 97, - 113, - 117, - 111, - 59, - 112, - 108, - 117, - 115, - 111, - 110, - 101, - 104, - 117, - 110, - 116, - 105, - 110, - 103, - 40, - 116, - 104, - 111, - 117, - 103, - 104, - 68, - 111, - 117, - 103, - 108, - 97, - 115, - 106, - 111, - 105, - 110, - 105, - 110, - 103, - 99, - 105, - 114, - 99, - 108, - 101, - 115, - 70, - 111, - 114, - 32, - 116, - 104, - 101, - 65, - 110, - 99, - 105, - 101, - 110, - 116, - 86, - 105, - 101, - 116, - 110, - 97, - 109, - 118, - 101, - 104, - 105, - 99, - 108, - 101, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 99, - 114, - 121, - 115, - 116, - 97, - 108, - 118, - 97, - 108, - 117, - 101, - 32, - 61, - 87, - 105, - 110, - 100, - 111, - 119, - 115, - 101, - 110, - 106, - 111, - 121, - 101, - 100, - 97, - 32, - 115, - 109, - 97, - 108, - 108, - 97, - 115, - 115, - 117, - 109, - 101, - 100, - 60, - 97, - 32, - 105, - 100, - 61, - 34, - 102, - 111, - 114, - 101, - 105, - 103, - 110, - 32, - 65, - 108, - 108, - 32, - 114, - 105, - 104, - 111, - 119, - 32, - 116, - 104, - 101, - 68, - 105, - 115, - 112, - 108, - 97, - 121, - 114, - 101, - 116, - 105, - 114, - 101, - 100, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 104, - 105, - 100, - 100, - 101, - 110, - 59, - 98, - 97, - 116, - 116, - 108, - 101, - 115, - 115, - 101, - 101, - 107, - 105, - 110, - 103, - 99, - 97, - 98, - 105, - 110, - 101, - 116, - 119, - 97, - 115, - 32, - 110, - 111, - 116, - 108, - 111, - 111, - 107, - 32, - 97, - 116, - 99, - 111, - 110, - 100, - 117, - 99, - 116, - 103, - 101, - 116, - 32, - 116, - 104, - 101, - 74, - 97, - 110, - 117, - 97, - 114, - 121, - 104, - 97, - 112, - 112, - 101, - 110, - 115, - 116, - 117, - 114, - 110, - 105, - 110, - 103, - 97, - 58, - 104, - 111, - 118, - 101, - 114, - 79, - 110, - 108, - 105, - 110, - 101, - 32, - 70, - 114, - 101, - 110, - 99, - 104, - 32, - 108, - 97, - 99, - 107, - 105, - 110, - 103, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 101, - 120, - 116, - 114, - 97, - 99, - 116, - 101, - 110, - 101, - 109, - 105, - 101, - 115, - 101, - 118, - 101, - 110, - 32, - 105, - 102, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 100, - 101, - 99, - 105, - 100, - 101, - 100, - 97, - 114, - 101, - 32, - 110, - 111, - 116, - 47, - 115, - 101, - 97, - 114, - 99, - 104, - 98, - 101, - 108, - 105, - 101, - 102, - 115, - 45, - 105, - 109, - 97, - 103, - 101, - 58, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 115, - 116, - 97, - 116, - 105, - 99, - 46, - 108, - 111, - 103, - 105, - 110, - 34, - 62, - 99, - 111, - 110, - 118, - 101, - 114, - 116, - 118, - 105, - 111, - 108, - 101, - 110, - 116, - 101, - 110, - 116, - 101, - 114, - 101, - 100, - 102, - 105, - 114, - 115, - 116, - 34, - 62, - 99, - 105, - 114, - 99, - 117, - 105, - 116, - 70, - 105, - 110, - 108, - 97, - 110, - 100, - 99, - 104, - 101, - 109, - 105, - 115, - 116, - 115, - 104, - 101, - 32, - 119, - 97, - 115, - 49, - 48, - 112, - 120, - 59, - 34, - 62, - 97, - 115, - 32, - 115, - 117, - 99, - 104, - 100, - 105, - 118, - 105, - 100, - 101, - 100, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 119, - 105, - 108, - 108, - 32, - 98, - 101, - 108, - 105, - 110, - 101, - 32, - 111, - 102, - 97, - 32, - 103, - 114, - 101, - 97, - 116, - 109, - 121, - 115, - 116, - 101, - 114, - 121, - 47, - 105, - 110, - 100, - 101, - 120, - 46, - 102, - 97, - 108, - 108, - 105, - 110, - 103, - 100, - 117, - 101, - 32, - 116, - 111, - 32, - 114, - 97, - 105, - 108, - 119, - 97, - 121, - 99, - 111, - 108, - 108, - 101, - 103, - 101, - 109, - 111, - 110, - 115, - 116, - 101, - 114, - 100, - 101, - 115, - 99, - 101, - 110, - 116, - 105, - 116, - 32, - 119, - 105, - 116, - 104, - 110, - 117, - 99, - 108, - 101, - 97, - 114, - 74, - 101, - 119, - 105, - 115, - 104, - 32, - 112, - 114, - 111, - 116, - 101, - 115, - 116, - 66, - 114, - 105, - 116, - 105, - 115, - 104, - 102, - 108, - 111, - 119, - 101, - 114, - 115, - 112, - 114, - 101, - 100, - 105, - 99, - 116, - 114, - 101, - 102, - 111, - 114, - 109, - 115, - 98, - 117, - 116, - 116, - 111, - 110, - 32, - 119, - 104, - 111, - 32, - 119, - 97, - 115, - 108, - 101, - 99, - 116, - 117, - 114, - 101, - 105, - 110, - 115, - 116, - 97, - 110, - 116, - 115, - 117, - 105, - 99, - 105, - 100, - 101, - 103, - 101, - 110, - 101, - 114, - 105, - 99, - 112, - 101, - 114, - 105, - 111, - 100, - 115, - 109, - 97, - 114, - 107, - 101, - 116, - 115, - 83, - 111, - 99, - 105, - 97, - 108, - 32, - 102, - 105, - 115, - 104, - 105, - 110, - 103, - 99, - 111, - 109, - 98, - 105, - 110, - 101, - 103, - 114, - 97, - 112, - 104, - 105, - 99, - 119, - 105, - 110, - 110, - 101, - 114, - 115, - 60, - 98, - 114, - 32, - 47, - 62, - 60, - 98, - 121, - 32, - 116, - 104, - 101, - 32, - 78, - 97, - 116, - 117, - 114, - 97, - 108, - 80, - 114, - 105, - 118, - 97, - 99, - 121, - 99, - 111, - 111, - 107, - 105, - 101, - 115, - 111, - 117, - 116, - 99, - 111, - 109, - 101, - 114, - 101, - 115, - 111, - 108, - 118, - 101, - 83, - 119, - 101, - 100, - 105, - 115, - 104, - 98, - 114, - 105, - 101, - 102, - 108, - 121, - 80, - 101, - 114, - 115, - 105, - 97, - 110, - 115, - 111, - 32, - 109, - 117, - 99, - 104, - 67, - 101, - 110, - 116, - 117, - 114, - 121, - 100, - 101, - 112, - 105, - 99, - 116, - 115, - 99, - 111, - 108, - 117, - 109, - 110, - 115, - 104, - 111, - 117, - 115, - 105, - 110, - 103, - 115, - 99, - 114, - 105, - 112, - 116, - 115, - 110, - 101, - 120, - 116, - 32, - 116, - 111, - 98, - 101, - 97, - 114, - 105, - 110, - 103, - 109, - 97, - 112, - 112, - 105, - 110, - 103, - 114, - 101, - 118, - 105, - 115, - 101, - 100, - 106, - 81, - 117, - 101, - 114, - 121, - 40, - 45, - 119, - 105, - 100, - 116, - 104, - 58, - 116, - 105, - 116, - 108, - 101, - 34, - 62, - 116, - 111, - 111, - 108, - 116, - 105, - 112, - 83, - 101, - 99, - 116, - 105, - 111, - 110, - 100, - 101, - 115, - 105, - 103, - 110, - 115, - 84, - 117, - 114, - 107, - 105, - 115, - 104, - 121, - 111, - 117, - 110, - 103, - 101, - 114, - 46, - 109, - 97, - 116, - 99, - 104, - 40, - 125, - 41, - 40, - 41, - 59, - 10, - 10, - 98, - 117, - 114, - 110, - 105, - 110, - 103, - 111, - 112, - 101, - 114, - 97, - 116, - 101, - 100, - 101, - 103, - 114, - 101, - 101, - 115, - 115, - 111, - 117, - 114, - 99, - 101, - 61, - 82, - 105, - 99, - 104, - 97, - 114, - 100, - 99, - 108, - 111, - 115, - 101, - 108, - 121, - 112, - 108, - 97, - 115, - 116, - 105, - 99, - 101, - 110, - 116, - 114, - 105, - 101, - 115, - 60, - 47, - 116, - 114, - 62, - 13, - 10, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 117, - 108, - 32, - 105, - 100, - 61, - 34, - 112, - 111, - 115, - 115, - 101, - 115, - 115, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 112, - 104, - 121, - 115, - 105, - 99, - 115, - 102, - 97, - 105, - 108, - 105, - 110, - 103, - 101, - 120, - 101, - 99, - 117, - 116, - 101, - 99, - 111, - 110, - 116, - 101, - 115, - 116, - 108, - 105, - 110, - 107, - 32, - 116, - 111, - 68, - 101, - 102, - 97, - 117, - 108, - 116, - 60, - 98, - 114, - 32, - 47, - 62, - 10, - 58, - 32, - 116, - 114, - 117, - 101, - 44, - 99, - 104, - 97, - 114, - 116, - 101, - 114, - 116, - 111, - 117, - 114, - 105, - 115, - 109, - 99, - 108, - 97, - 115, - 115, - 105, - 99, - 112, - 114, - 111, - 99, - 101, - 101, - 100, - 101, - 120, - 112, - 108, - 97, - 105, - 110, - 60, - 47, - 104, - 49, - 62, - 13, - 10, - 111, - 110, - 108, - 105, - 110, - 101, - 46, - 63, - 120, - 109, - 108, - 32, - 118, - 101, - 104, - 101, - 108, - 112, - 105, - 110, - 103, - 100, - 105, - 97, - 109, - 111, - 110, - 100, - 117, - 115, - 101, - 32, - 116, - 104, - 101, - 97, - 105, - 114, - 108, - 105, - 110, - 101, - 101, - 110, - 100, - 32, - 45, - 45, - 62, - 41, - 46, - 97, - 116, - 116, - 114, - 40, - 114, - 101, - 97, - 100, - 101, - 114, - 115, - 104, - 111, - 115, - 116, - 105, - 110, - 103, - 35, - 102, - 102, - 102, - 102, - 102, - 102, - 114, - 101, - 97, - 108, - 105, - 122, - 101, - 86, - 105, - 110, - 99, - 101, - 110, - 116, - 115, - 105, - 103, - 110, - 97, - 108, - 115, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 80, - 114, - 111, - 100, - 117, - 99, - 116, - 100, - 101, - 115, - 112, - 105, - 116, - 101, - 100, - 105, - 118, - 101, - 114, - 115, - 101, - 116, - 101, - 108, - 108, - 105, - 110, - 103, - 80, - 117, - 98, - 108, - 105, - 99, - 32, - 104, - 101, - 108, - 100, - 32, - 105, - 110, - 74, - 111, - 115, - 101, - 112, - 104, - 32, - 116, - 104, - 101, - 97, - 116, - 114, - 101, - 97, - 102, - 102, - 101, - 99, - 116, - 115, - 60, - 115, - 116, - 121, - 108, - 101, - 62, - 97, - 32, - 108, - 97, - 114, - 103, - 101, - 100, - 111, - 101, - 115, - 110, - 39, - 116, - 108, - 97, - 116, - 101, - 114, - 44, - 32, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 99, - 114, - 101, - 97, - 116, - 111, - 114, - 72, - 117, - 110, - 103, - 97, - 114, - 121, - 65, - 105, - 114, - 112, - 111, - 114, - 116, - 115, - 101, - 101, - 32, - 116, - 104, - 101, - 115, - 111, - 32, - 116, - 104, - 97, - 116, - 77, - 105, - 99, - 104, - 97, - 101, - 108, - 83, - 121, - 115, - 116, - 101, - 109, - 115, - 80, - 114, - 111, - 103, - 114, - 97, - 109, - 115, - 44, - 32, - 97, - 110, - 100, - 32, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 101, - 38, - 113, - 117, - 111, - 116, - 59, - 116, - 114, - 97, - 100, - 105, - 110, - 103, - 108, - 101, - 102, - 116, - 34, - 62, - 10, - 112, - 101, - 114, - 115, - 111, - 110, - 115, - 71, - 111, - 108, - 100, - 101, - 110, - 32, - 65, - 102, - 102, - 97, - 105, - 114, - 115, - 103, - 114, - 97, - 109, - 109, - 97, - 114, - 102, - 111, - 114, - 109, - 105, - 110, - 103, - 100, - 101, - 115, - 116, - 114, - 111, - 121, - 105, - 100, - 101, - 97, - 32, - 111, - 102, - 99, - 97, - 115, - 101, - 32, - 111, - 102, - 111, - 108, - 100, - 101, - 115, - 116, - 32, - 116, - 104, - 105, - 115, - 32, - 105, - 115, - 46, - 115, - 114, - 99, - 32, - 61, - 32, - 99, - 97, - 114, - 116, - 111, - 111, - 110, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 67, - 111, - 109, - 109, - 111, - 110, - 115, - 77, - 117, - 115, - 108, - 105, - 109, - 115, - 87, - 104, - 97, - 116, - 32, - 105, - 115, - 105, - 110, - 32, - 109, - 97, - 110, - 121, - 109, - 97, - 114, - 107, - 105, - 110, - 103, - 114, - 101, - 118, - 101, - 97, - 108, - 115, - 73, - 110, - 100, - 101, - 101, - 100, - 44, - 101, - 113, - 117, - 97, - 108, - 108, - 121, - 47, - 115, - 104, - 111, - 119, - 95, - 97, - 111, - 117, - 116, - 100, - 111, - 111, - 114, - 101, - 115, - 99, - 97, - 112, - 101, - 40, - 65, - 117, - 115, - 116, - 114, - 105, - 97, - 103, - 101, - 110, - 101, - 116, - 105, - 99, - 115, - 121, - 115, - 116, - 101, - 109, - 44, - 73, - 110, - 32, - 116, - 104, - 101, - 32, - 115, - 105, - 116, - 116, - 105, - 110, - 103, - 72, - 101, - 32, - 97, - 108, - 115, - 111, - 73, - 115, - 108, - 97, - 110, - 100, - 115, - 65, - 99, - 97, - 100, - 101, - 109, - 121, - 10, - 9, - 9, - 60, - 33, - 45, - 45, - 68, - 97, - 110, - 105, - 101, - 108, - 32, - 98, - 105, - 110, - 100, - 105, - 110, - 103, - 98, - 108, - 111, - 99, - 107, - 34, - 62, - 105, - 109, - 112, - 111, - 115, - 101, - 100, - 117, - 116, - 105, - 108, - 105, - 122, - 101, - 65, - 98, - 114, - 97, - 104, - 97, - 109, - 40, - 101, - 120, - 99, - 101, - 112, - 116, - 123, - 119, - 105, - 100, - 116, - 104, - 58, - 112, - 117, - 116, - 116, - 105, - 110, - 103, - 41, - 46, - 104, - 116, - 109, - 108, - 40, - 124, - 124, - 32, - 91, - 93, - 59, - 10, - 68, - 65, - 84, - 65, - 91, - 32, - 42, - 107, - 105, - 116, - 99, - 104, - 101, - 110, - 109, - 111, - 117, - 110, - 116, - 101, - 100, - 97, - 99, - 116, - 117, - 97, - 108, - 32, - 100, - 105, - 97, - 108, - 101, - 99, - 116, - 109, - 97, - 105, - 110, - 108, - 121, - 32, - 95, - 98, - 108, - 97, - 110, - 107, - 39, - 105, - 110, - 115, - 116, - 97, - 108, - 108, - 101, - 120, - 112, - 101, - 114, - 116, - 115, - 105, - 102, - 40, - 116, - 121, - 112, - 101, - 73, - 116, - 32, - 97, - 108, - 115, - 111, - 38, - 99, - 111, - 112, - 121, - 59, - 32, - 34, - 62, - 84, - 101, - 114, - 109, - 115, - 98, - 111, - 114, - 110, - 32, - 105, - 110, - 79, - 112, - 116, - 105, - 111, - 110, - 115, - 101, - 97, - 115, - 116, - 101, - 114, - 110, - 116, - 97, - 108, - 107, - 105, - 110, - 103, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 103, - 97, - 105, - 110, - 101, - 100, - 32, - 111, - 110, - 103, - 111, - 105, - 110, - 103, - 106, - 117, - 115, - 116, - 105, - 102, - 121, - 99, - 114, - 105, - 116, - 105, - 99, - 115, - 102, - 97, - 99, - 116, - 111, - 114, - 121, - 105, - 116, - 115, - 32, - 111, - 119, - 110, - 97, - 115, - 115, - 97, - 117, - 108, - 116, - 105, - 110, - 118, - 105, - 116, - 101, - 100, - 108, - 97, - 115, - 116, - 105, - 110, - 103, - 104, - 105, - 115, - 32, - 111, - 119, - 110, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 99, - 111, - 110, - 99, - 101, - 114, - 116, - 100, - 105, - 97, - 103, - 114, - 97, - 109, - 100, - 111, - 108, - 108, - 97, - 114, - 115, - 99, - 108, - 117, - 115, - 116, - 101, - 114, - 112, - 104, - 112, - 63, - 105, - 100, - 61, - 97, - 108, - 99, - 111, - 104, - 111, - 108, - 41, - 59, - 125, - 41, - 40, - 41, - 59, - 117, - 115, - 105, - 110, - 103, - 32, - 97, - 62, - 60, - 115, - 112, - 97, - 110, - 62, - 118, - 101, - 115, - 115, - 101, - 108, - 115, - 114, - 101, - 118, - 105, - 118, - 97, - 108, - 65, - 100, - 100, - 114, - 101, - 115, - 115, - 97, - 109, - 97, - 116, - 101, - 117, - 114, - 97, - 110, - 100, - 114, - 111, - 105, - 100, - 97, - 108, - 108, - 101, - 103, - 101, - 100, - 105, - 108, - 108, - 110, - 101, - 115, - 115, - 119, - 97, - 108, - 107, - 105, - 110, - 103, - 99, - 101, - 110, - 116, - 101, - 114, - 115, - 113, - 117, - 97, - 108, - 105, - 102, - 121, - 109, - 97, - 116, - 99, - 104, - 101, - 115, - 117, - 110, - 105, - 102, - 105, - 101, - 100, - 101, - 120, - 116, - 105, - 110, - 99, - 116, - 68, - 101, - 102, - 101, - 110, - 115, - 101, - 100, - 105, - 101, - 100, - 32, - 105, - 110, - 10, - 9, - 60, - 33, - 45, - 45, - 32, - 99, - 117, - 115, - 116, - 111, - 109, - 115, - 108, - 105, - 110, - 107, - 105, - 110, - 103, - 76, - 105, - 116, - 116, - 108, - 101, - 32, - 66, - 111, - 111, - 107, - 32, - 111, - 102, - 101, - 118, - 101, - 110, - 105, - 110, - 103, - 109, - 105, - 110, - 46, - 106, - 115, - 63, - 97, - 114, - 101, - 32, - 116, - 104, - 101, - 107, - 111, - 110, - 116, - 97, - 107, - 116, - 116, - 111, - 100, - 97, - 121, - 39, - 115, - 46, - 104, - 116, - 109, - 108, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 119, - 101, - 97, - 114, - 105, - 110, - 103, - 65, - 108, - 108, - 32, - 82, - 105, - 103, - 59, - 10, - 125, - 41, - 40, - 41, - 59, - 114, - 97, - 105, - 115, - 105, - 110, - 103, - 32, - 65, - 108, - 115, - 111, - 44, - 32, - 99, - 114, - 117, - 99, - 105, - 97, - 108, - 97, - 98, - 111, - 117, - 116, - 34, - 62, - 100, - 101, - 99, - 108, - 97, - 114, - 101, - 45, - 45, - 62, - 10, - 60, - 115, - 99, - 102, - 105, - 114, - 101, - 102, - 111, - 120, - 97, - 115, - 32, - 109, - 117, - 99, - 104, - 97, - 112, - 112, - 108, - 105, - 101, - 115, - 105, - 110, - 100, - 101, - 120, - 44, - 32, - 115, - 44, - 32, - 98, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 32, - 61, - 32, - 10, - 13, - 10, - 60, - 33, - 45, - 45, - 116, - 111, - 119, - 97, - 114, - 100, - 115, - 82, - 101, - 99, - 111, - 114, - 100, - 115, - 80, - 114, - 105, - 118, - 97, - 116, - 101, - 70, - 111, - 114, - 101, - 105, - 103, - 110, - 80, - 114, - 101, - 109, - 105, - 101, - 114, - 99, - 104, - 111, - 105, - 99, - 101, - 115, - 86, - 105, - 114, - 116, - 117, - 97, - 108, - 114, - 101, - 116, - 117, - 114, - 110, - 115, - 67, - 111, - 109, - 109, - 101, - 110, - 116, - 80, - 111, - 119, - 101, - 114, - 101, - 100, - 105, - 110, - 108, - 105, - 110, - 101, - 59, - 112, - 111, - 118, - 101, - 114, - 116, - 121, - 99, - 104, - 97, - 109, - 98, - 101, - 114, - 76, - 105, - 118, - 105, - 110, - 103, - 32, - 118, - 111, - 108, - 117, - 109, - 101, - 115, - 65, - 110, - 116, - 104, - 111, - 110, - 121, - 108, - 111, - 103, - 105, - 110, - 34, - 32, - 82, - 101, - 108, - 97, - 116, - 101, - 100, - 69, - 99, - 111, - 110, - 111, - 109, - 121, - 114, - 101, - 97, - 99, - 104, - 101, - 115, - 99, - 117, - 116, - 116, - 105, - 110, - 103, - 103, - 114, - 97, - 118, - 105, - 116, - 121, - 108, - 105, - 102, - 101, - 32, - 105, - 110, - 67, - 104, - 97, - 112, - 116, - 101, - 114, - 45, - 115, - 104, - 97, - 100, - 111, - 119, - 78, - 111, - 116, - 97, - 98, - 108, - 101, - 60, - 47, - 116, - 100, - 62, - 13, - 10, - 32, - 114, - 101, - 116, - 117, - 114, - 110, - 115, - 116, - 97, - 100, - 105, - 117, - 109, - 119, - 105, - 100, - 103, - 101, - 116, - 115, - 118, - 97, - 114, - 121, - 105, - 110, - 103, - 116, - 114, - 97, - 118, - 101, - 108, - 115, - 104, - 101, - 108, - 100, - 32, - 98, - 121, - 119, - 104, - 111, - 32, - 97, - 114, - 101, - 119, - 111, - 114, - 107, - 32, - 105, - 110, - 102, - 97, - 99, - 117, - 108, - 116, - 121, - 97, - 110, - 103, - 117, - 108, - 97, - 114, - 119, - 104, - 111, - 32, - 104, - 97, - 100, - 97, - 105, - 114, - 112, - 111, - 114, - 116, - 116, - 111, - 119, - 110, - 32, - 111, - 102, - 10, - 10, - 83, - 111, - 109, - 101, - 32, - 39, - 99, - 108, - 105, - 99, - 107, - 39, - 99, - 104, - 97, - 114, - 103, - 101, - 115, - 107, - 101, - 121, - 119, - 111, - 114, - 100, - 105, - 116, - 32, - 119, - 105, - 108, - 108, - 99, - 105, - 116, - 121, - 32, - 111, - 102, - 40, - 116, - 104, - 105, - 115, - 41, - 59, - 65, - 110, - 100, - 114, - 101, - 119, - 32, - 117, - 110, - 105, - 113, - 117, - 101, - 32, - 99, - 104, - 101, - 99, - 107, - 101, - 100, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 51, - 48, - 48, - 112, - 120, - 59, - 32, - 114, - 101, - 116, - 117, - 114, - 110, - 59, - 114, - 115, - 105, - 111, - 110, - 61, - 34, - 112, - 108, - 117, - 103, - 105, - 110, - 115, - 119, - 105, - 116, - 104, - 105, - 110, - 32, - 104, - 101, - 114, - 115, - 101, - 108, - 102, - 83, - 116, - 97, - 116, - 105, - 111, - 110, - 70, - 101, - 100, - 101, - 114, - 97, - 108, - 118, - 101, - 110, - 116, - 117, - 114, - 101, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 115, - 101, - 110, - 116, - 32, - 116, - 111, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 97, - 99, - 116, - 114, - 101, - 115, - 115, - 99, - 111, - 109, - 101, - 32, - 116, - 111, - 102, - 105, - 110, - 103, - 101, - 114, - 115, - 68, - 117, - 107, - 101, - 32, - 111, - 102, - 112, - 101, - 111, - 112, - 108, - 101, - 44, - 101, - 120, - 112, - 108, - 111, - 105, - 116, - 119, - 104, - 97, - 116, - 32, - 105, - 115, - 104, - 97, - 114, - 109, - 111, - 110, - 121, - 97, - 32, - 109, - 97, - 106, - 111, - 114, - 34, - 58, - 34, - 104, - 116, - 116, - 112, - 105, - 110, - 32, - 104, - 105, - 115, - 32, - 109, - 101, - 110, - 117, - 34, - 62, - 10, - 109, - 111, - 110, - 116, - 104, - 108, - 121, - 111, - 102, - 102, - 105, - 99, - 101, - 114, - 99, - 111, - 117, - 110, - 99, - 105, - 108, - 103, - 97, - 105, - 110, - 105, - 110, - 103, - 101, - 118, - 101, - 110, - 32, - 105, - 110, - 83, - 117, - 109, - 109, - 97, - 114, - 121, - 100, - 97, - 116, - 101, - 32, - 111, - 102, - 108, - 111, - 121, - 97, - 108, - 116, - 121, - 102, - 105, - 116, - 110, - 101, - 115, - 115, - 97, - 110, - 100, - 32, - 119, - 97, - 115, - 101, - 109, - 112, - 101, - 114, - 111, - 114, - 115, - 117, - 112, - 114, - 101, - 109, - 101, - 83, - 101, - 99, - 111, - 110, - 100, - 32, - 104, - 101, - 97, - 114, - 105, - 110, - 103, - 82, - 117, - 115, - 115, - 105, - 97, - 110, - 108, - 111, - 110, - 103, - 101, - 115, - 116, - 65, - 108, - 98, - 101, - 114, - 116, - 97, - 108, - 97, - 116, - 101, - 114, - 97, - 108, - 115, - 101, - 116, - 32, - 111, - 102, - 32, - 115, - 109, - 97, - 108, - 108, - 34, - 62, - 46, - 97, - 112, - 112, - 101, - 110, - 100, - 100, - 111, - 32, - 119, - 105, - 116, - 104, - 102, - 101, - 100, - 101, - 114, - 97, - 108, - 98, - 97, - 110, - 107, - 32, - 111, - 102, - 98, - 101, - 110, - 101, - 97, - 116, - 104, - 68, - 101, - 115, - 112, - 105, - 116, - 101, - 67, - 97, - 112, - 105, - 116, - 97, - 108, - 103, - 114, - 111, - 117, - 110, - 100, - 115, - 41, - 44, - 32, - 97, - 110, - 100, - 32, - 112, - 101, - 114, - 99, - 101, - 110, - 116, - 105, - 116, - 32, - 102, - 114, - 111, - 109, - 99, - 108, - 111, - 115, - 105, - 110, - 103, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 73, - 110, - 115, - 116, - 101, - 97, - 100, - 102, - 105, - 102, - 116, - 101, - 101, - 110, - 97, - 115, - 32, - 119, - 101, - 108, - 108, - 46, - 121, - 97, - 104, - 111, - 111, - 46, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 102, - 105, - 103, - 104, - 116, - 101, - 114, - 111, - 98, - 115, - 99, - 117, - 114, - 101, - 114, - 101, - 102, - 108, - 101, - 99, - 116, - 111, - 114, - 103, - 97, - 110, - 105, - 99, - 61, - 32, - 77, - 97, - 116, - 104, - 46, - 101, - 100, - 105, - 116, - 105, - 110, - 103, - 111, - 110, - 108, - 105, - 110, - 101, - 32, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 97, - 32, - 119, - 104, - 111, - 108, - 101, - 111, - 110, - 101, - 114, - 114, - 111, - 114, - 121, - 101, - 97, - 114, - 32, - 111, - 102, - 101, - 110, - 100, - 32, - 111, - 102, - 32, - 98, - 97, - 114, - 114, - 105, - 101, - 114, - 119, - 104, - 101, - 110, - 32, - 105, - 116, - 104, - 101, - 97, - 100, - 101, - 114, - 32, - 104, - 111, - 109, - 101, - 32, - 111, - 102, - 114, - 101, - 115, - 117, - 109, - 101, - 100, - 114, - 101, - 110, - 97, - 109, - 101, - 100, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 104, - 101, - 97, - 116, - 105, - 110, - 103, - 114, - 101, - 116, - 97, - 105, - 110, - 115, - 99, - 108, - 111, - 117, - 100, - 102, - 114, - 119, - 97, - 121, - 32, - 111, - 102, - 32, - 77, - 97, - 114, - 99, - 104, - 32, - 49, - 107, - 110, - 111, - 119, - 105, - 110, - 103, - 105, - 110, - 32, - 112, - 97, - 114, - 116, - 66, - 101, - 116, - 119, - 101, - 101, - 110, - 108, - 101, - 115, - 115, - 111, - 110, - 115, - 99, - 108, - 111, - 115, - 101, - 115, - 116, - 118, - 105, - 114, - 116, - 117, - 97, - 108, - 108, - 105, - 110, - 107, - 115, - 34, - 62, - 99, - 114, - 111, - 115, - 115, - 101, - 100, - 69, - 78, - 68, - 32, - 45, - 45, - 62, - 102, - 97, - 109, - 111, - 117, - 115, - 32, - 97, - 119, - 97, - 114, - 100, - 101, - 100, - 76, - 105, - 99, - 101, - 110, - 115, - 101, - 72, - 101, - 97, - 108, - 116, - 104, - 32, - 102, - 97, - 105, - 114, - 108, - 121, - 32, - 119, - 101, - 97, - 108, - 116, - 104, - 121, - 109, - 105, - 110, - 105, - 109, - 97, - 108, - 65, - 102, - 114, - 105, - 99, - 97, - 110, - 99, - 111, - 109, - 112, - 101, - 116, - 101, - 108, - 97, - 98, - 101, - 108, - 34, - 62, - 115, - 105, - 110, - 103, - 105, - 110, - 103, - 102, - 97, - 114, - 109, - 101, - 114, - 115, - 66, - 114, - 97, - 115, - 105, - 108, - 41, - 100, - 105, - 115, - 99, - 117, - 115, - 115, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 71, - 114, - 101, - 103, - 111, - 114, - 121, - 102, - 111, - 110, - 116, - 32, - 99, - 111, - 112, - 117, - 114, - 115, - 117, - 101, - 100, - 97, - 112, - 112, - 101, - 97, - 114, - 115, - 109, - 97, - 107, - 101, - 32, - 117, - 112, - 114, - 111, - 117, - 110, - 100, - 101, - 100, - 98, - 111, - 116, - 104, - 32, - 111, - 102, - 98, - 108, - 111, - 99, - 107, - 101, - 100, - 115, - 97, - 119, - 32, - 116, - 104, - 101, - 111, - 102, - 102, - 105, - 99, - 101, - 115, - 99, - 111, - 108, - 111, - 117, - 114, - 115, - 105, - 102, - 40, - 100, - 111, - 99, - 117, - 119, - 104, - 101, - 110, - 32, - 104, - 101, - 101, - 110, - 102, - 111, - 114, - 99, - 101, - 112, - 117, - 115, - 104, - 40, - 102, - 117, - 65, - 117, - 103, - 117, - 115, - 116, - 32, - 85, - 84, - 70, - 45, - 56, - 34, - 62, - 70, - 97, - 110, - 116, - 97, - 115, - 121, - 105, - 110, - 32, - 109, - 111, - 115, - 116, - 105, - 110, - 106, - 117, - 114, - 101, - 100, - 85, - 115, - 117, - 97, - 108, - 108, - 121, - 102, - 97, - 114, - 109, - 105, - 110, - 103, - 99, - 108, - 111, - 115, - 117, - 114, - 101, - 111, - 98, - 106, - 101, - 99, - 116, - 32, - 100, - 101, - 102, - 101, - 110, - 99, - 101, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 77, - 101, - 100, - 105, - 99, - 97, - 108, - 60, - 98, - 111, - 100, - 121, - 62, - 10, - 101, - 118, - 105, - 100, - 101, - 110, - 116, - 98, - 101, - 32, - 117, - 115, - 101, - 100, - 107, - 101, - 121, - 67, - 111, - 100, - 101, - 115, - 105, - 120, - 116, - 101, - 101, - 110, - 73, - 115, - 108, - 97, - 109, - 105, - 99, - 35, - 48, - 48, - 48, - 48, - 48, - 48, - 101, - 110, - 116, - 105, - 114, - 101, - 32, - 119, - 105, - 100, - 101, - 108, - 121, - 32, - 97, - 99, - 116, - 105, - 118, - 101, - 32, - 40, - 116, - 121, - 112, - 101, - 111, - 102, - 111, - 110, - 101, - 32, - 99, - 97, - 110, - 99, - 111, - 108, - 111, - 114, - 32, - 61, - 115, - 112, - 101, - 97, - 107, - 101, - 114, - 101, - 120, - 116, - 101, - 110, - 100, - 115, - 80, - 104, - 121, - 115, - 105, - 99, - 115, - 116, - 101, - 114, - 114, - 97, - 105, - 110, - 60, - 116, - 98, - 111, - 100, - 121, - 62, - 102, - 117, - 110, - 101, - 114, - 97, - 108, - 118, - 105, - 101, - 119, - 105, - 110, - 103, - 109, - 105, - 100, - 100, - 108, - 101, - 32, - 99, - 114, - 105, - 99, - 107, - 101, - 116, - 112, - 114, - 111, - 112, - 104, - 101, - 116, - 115, - 104, - 105, - 102, - 116, - 101, - 100, - 100, - 111, - 99, - 116, - 111, - 114, - 115, - 82, - 117, - 115, - 115, - 101, - 108, - 108, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 99, - 111, - 109, - 112, - 97, - 99, - 116, - 97, - 108, - 103, - 101, - 98, - 114, - 97, - 115, - 111, - 99, - 105, - 97, - 108, - 45, - 98, - 117, - 108, - 107, - 32, - 111, - 102, - 109, - 97, - 110, - 32, - 97, - 110, - 100, - 60, - 47, - 116, - 100, - 62, - 10, - 32, - 104, - 101, - 32, - 108, - 101, - 102, - 116, - 41, - 46, - 118, - 97, - 108, - 40, - 41, - 102, - 97, - 108, - 115, - 101, - 41, - 59, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 98, - 97, - 110, - 107, - 105, - 110, - 103, - 104, - 111, - 109, - 101, - 32, - 116, - 111, - 110, - 97, - 109, - 105, - 110, - 103, - 32, - 65, - 114, - 105, - 122, - 111, - 110, - 97, - 99, - 114, - 101, - 100, - 105, - 116, - 115, - 41, - 59, - 10, - 125, - 41, - 59, - 10, - 102, - 111, - 117, - 110, - 100, - 101, - 114, - 105, - 110, - 32, - 116, - 117, - 114, - 110, - 67, - 111, - 108, - 108, - 105, - 110, - 115, - 98, - 101, - 102, - 111, - 114, - 101, - 32, - 66, - 117, - 116, - 32, - 116, - 104, - 101, - 99, - 104, - 97, - 114, - 103, - 101, - 100, - 84, - 105, - 116, - 108, - 101, - 34, - 62, - 67, - 97, - 112, - 116, - 97, - 105, - 110, - 115, - 112, - 101, - 108, - 108, - 101, - 100, - 103, - 111, - 100, - 100, - 101, - 115, - 115, - 84, - 97, - 103, - 32, - 45, - 45, - 62, - 65, - 100, - 100, - 105, - 110, - 103, - 58, - 98, - 117, - 116, - 32, - 119, - 97, - 115, - 82, - 101, - 99, - 101, - 110, - 116, - 32, - 112, - 97, - 116, - 105, - 101, - 110, - 116, - 98, - 97, - 99, - 107, - 32, - 105, - 110, - 61, - 102, - 97, - 108, - 115, - 101, - 38, - 76, - 105, - 110, - 99, - 111, - 108, - 110, - 119, - 101, - 32, - 107, - 110, - 111, - 119, - 67, - 111, - 117, - 110, - 116, - 101, - 114, - 74, - 117, - 100, - 97, - 105, - 115, - 109, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 97, - 108, - 116, - 101, - 114, - 101, - 100, - 39, - 93, - 41, - 59, - 10, - 32, - 32, - 104, - 97, - 115, - 32, - 116, - 104, - 101, - 117, - 110, - 99, - 108, - 101, - 97, - 114, - 69, - 118, - 101, - 110, - 116, - 39, - 44, - 98, - 111, - 116, - 104, - 32, - 105, - 110, - 110, - 111, - 116, - 32, - 97, - 108, - 108, - 10, - 10, - 60, - 33, - 45, - 45, - 32, - 112, - 108, - 97, - 99, - 105, - 110, - 103, - 104, - 97, - 114, - 100, - 32, - 116, - 111, - 32, - 99, - 101, - 110, - 116, - 101, - 114, - 115, - 111, - 114, - 116, - 32, - 111, - 102, - 99, - 108, - 105, - 101, - 110, - 116, - 115, - 115, - 116, - 114, - 101, - 101, - 116, - 115, - 66, - 101, - 114, - 110, - 97, - 114, - 100, - 97, - 115, - 115, - 101, - 114, - 116, - 115, - 116, - 101, - 110, - 100, - 32, - 116, - 111, - 102, - 97, - 110, - 116, - 97, - 115, - 121, - 100, - 111, - 119, - 110, - 32, - 105, - 110, - 104, - 97, - 114, - 98, - 111, - 117, - 114, - 70, - 114, - 101, - 101, - 100, - 111, - 109, - 106, - 101, - 119, - 101, - 108, - 114, - 121, - 47, - 97, - 98, - 111, - 117, - 116, - 46, - 46, - 115, - 101, - 97, - 114, - 99, - 104, - 108, - 101, - 103, - 101, - 110, - 100, - 115, - 105, - 115, - 32, - 109, - 97, - 100, - 101, - 109, - 111, - 100, - 101, - 114, - 110, - 32, - 111, - 110, - 108, - 121, - 32, - 111, - 110, - 111, - 110, - 108, - 121, - 32, - 116, - 111, - 105, - 109, - 97, - 103, - 101, - 34, - 32, - 108, - 105, - 110, - 101, - 97, - 114, - 32, - 112, - 97, - 105, - 110, - 116, - 101, - 114, - 97, - 110, - 100, - 32, - 110, - 111, - 116, - 114, - 97, - 114, - 101, - 108, - 121, - 32, - 97, - 99, - 114, - 111, - 110, - 121, - 109, - 100, - 101, - 108, - 105, - 118, - 101, - 114, - 115, - 104, - 111, - 114, - 116, - 101, - 114, - 48, - 48, - 38, - 97, - 109, - 112, - 59, - 97, - 115, - 32, - 109, - 97, - 110, - 121, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 47, - 42, - 32, - 60, - 33, - 91, - 67, - 116, - 105, - 116, - 108, - 101, - 32, - 61, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 108, - 111, - 119, - 101, - 115, - 116, - 32, - 112, - 105, - 99, - 107, - 101, - 100, - 32, - 101, - 115, - 99, - 97, - 112, - 101, - 100, - 117, - 115, - 101, - 115, - 32, - 111, - 102, - 112, - 101, - 111, - 112, - 108, - 101, - 115, - 32, - 80, - 117, - 98, - 108, - 105, - 99, - 77, - 97, - 116, - 116, - 104, - 101, - 119, - 116, - 97, - 99, - 116, - 105, - 99, - 115, - 100, - 97, - 109, - 97, - 103, - 101, - 100, - 119, - 97, - 121, - 32, - 102, - 111, - 114, - 108, - 97, - 119, - 115, - 32, - 111, - 102, - 101, - 97, - 115, - 121, - 32, - 116, - 111, - 32, - 119, - 105, - 110, - 100, - 111, - 119, - 115, - 116, - 114, - 111, - 110, - 103, - 32, - 32, - 115, - 105, - 109, - 112, - 108, - 101, - 125, - 99, - 97, - 116, - 99, - 104, - 40, - 115, - 101, - 118, - 101, - 110, - 116, - 104, - 105, - 110, - 102, - 111, - 98, - 111, - 120, - 119, - 101, - 110, - 116, - 32, - 116, - 111, - 112, - 97, - 105, - 110, - 116, - 101, - 100, - 99, - 105, - 116, - 105, - 122, - 101, - 110, - 73, - 32, - 100, - 111, - 110, - 39, - 116, - 114, - 101, - 116, - 114, - 101, - 97, - 116, - 46, - 32, - 83, - 111, - 109, - 101, - 32, - 119, - 119, - 46, - 34, - 41, - 59, - 10, - 98, - 111, - 109, - 98, - 105, - 110, - 103, - 109, - 97, - 105, - 108, - 116, - 111, - 58, - 109, - 97, - 100, - 101, - 32, - 105, - 110, - 46, - 32, - 77, - 97, - 110, - 121, - 32, - 99, - 97, - 114, - 114, - 105, - 101, - 115, - 124, - 124, - 123, - 125, - 59, - 119, - 105, - 119, - 111, - 114, - 107, - 32, - 111, - 102, - 115, - 121, - 110, - 111, - 110, - 121, - 109, - 100, - 101, - 102, - 101, - 97, - 116, - 115, - 102, - 97, - 118, - 111, - 114, - 101, - 100, - 111, - 112, - 116, - 105, - 99, - 97, - 108, - 112, - 97, - 103, - 101, - 84, - 114, - 97, - 117, - 110, - 108, - 101, - 115, - 115, - 32, - 115, - 101, - 110, - 100, - 105, - 110, - 103, - 108, - 101, - 102, - 116, - 34, - 62, - 60, - 99, - 111, - 109, - 83, - 99, - 111, - 114, - 65, - 108, - 108, - 32, - 116, - 104, - 101, - 106, - 81, - 117, - 101, - 114, - 121, - 46, - 116, - 111, - 117, - 114, - 105, - 115, - 116, - 67, - 108, - 97, - 115, - 115, - 105, - 99, - 102, - 97, - 108, - 115, - 101, - 34, - 32, - 87, - 105, - 108, - 104, - 101, - 108, - 109, - 115, - 117, - 98, - 117, - 114, - 98, - 115, - 103, - 101, - 110, - 117, - 105, - 110, - 101, - 98, - 105, - 115, - 104, - 111, - 112, - 115, - 46, - 115, - 112, - 108, - 105, - 116, - 40, - 103, - 108, - 111, - 98, - 97, - 108, - 32, - 102, - 111, - 108, - 108, - 111, - 119, - 115, - 98, - 111, - 100, - 121, - 32, - 111, - 102, - 110, - 111, - 109, - 105, - 110, - 97, - 108, - 67, - 111, - 110, - 116, - 97, - 99, - 116, - 115, - 101, - 99, - 117, - 108, - 97, - 114, - 108, - 101, - 102, - 116, - 32, - 116, - 111, - 99, - 104, - 105, - 101, - 102, - 108, - 121, - 45, - 104, - 105, - 100, - 100, - 101, - 110, - 45, - 98, - 97, - 110, - 110, - 101, - 114, - 60, - 47, - 108, - 105, - 62, - 10, - 10, - 46, - 32, - 87, - 104, - 101, - 110, - 32, - 105, - 110, - 32, - 98, - 111, - 116, - 104, - 100, - 105, - 115, - 109, - 105, - 115, - 115, - 69, - 120, - 112, - 108, - 111, - 114, - 101, - 97, - 108, - 119, - 97, - 121, - 115, - 32, - 118, - 105, - 97, - 32, - 116, - 104, - 101, - 115, - 112, - 97, - 195, - 177, - 111, - 108, - 119, - 101, - 108, - 102, - 97, - 114, - 101, - 114, - 117, - 108, - 105, - 110, - 103, - 32, - 97, - 114, - 114, - 97, - 110, - 103, - 101, - 99, - 97, - 112, - 116, - 97, - 105, - 110, - 104, - 105, - 115, - 32, - 115, - 111, - 110, - 114, - 117, - 108, - 101, - 32, - 111, - 102, - 104, - 101, - 32, - 116, - 111, - 111, - 107, - 105, - 116, - 115, - 101, - 108, - 102, - 44, - 61, - 48, - 38, - 97, - 109, - 112, - 59, - 40, - 99, - 97, - 108, - 108, - 101, - 100, - 115, - 97, - 109, - 112, - 108, - 101, - 115, - 116, - 111, - 32, - 109, - 97, - 107, - 101, - 99, - 111, - 109, - 47, - 112, - 97, - 103, - 77, - 97, - 114, - 116, - 105, - 110, - 32, - 75, - 101, - 110, - 110, - 101, - 100, - 121, - 97, - 99, - 99, - 101, - 112, - 116, - 115, - 102, - 117, - 108, - 108, - 32, - 111, - 102, - 104, - 97, - 110, - 100, - 108, - 101, - 100, - 66, - 101, - 115, - 105, - 100, - 101, - 115, - 47, - 47, - 45, - 45, - 62, - 60, - 47, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 116, - 97, - 114, - 103, - 101, - 116, - 115, - 101, - 115, - 115, - 101, - 110, - 99, - 101, - 104, - 105, - 109, - 32, - 116, - 111, - 32, - 105, - 116, - 115, - 32, - 98, - 121, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 46, - 109, - 105, - 110, - 101, - 114, - 97, - 108, - 116, - 111, - 32, - 116, - 97, - 107, - 101, - 119, - 97, - 121, - 115, - 32, - 116, - 111, - 115, - 46, - 111, - 114, - 103, - 47, - 108, - 97, - 100, - 118, - 105, - 115, - 101, - 100, - 112, - 101, - 110, - 97, - 108, - 116, - 121, - 115, - 105, - 109, - 112, - 108, - 101, - 58, - 105, - 102, - 32, - 116, - 104, - 101, - 121, - 76, - 101, - 116, - 116, - 101, - 114, - 115, - 97, - 32, - 115, - 104, - 111, - 114, - 116, - 72, - 101, - 114, - 98, - 101, - 114, - 116, - 115, - 116, - 114, - 105, - 107, - 101, - 115, - 32, - 103, - 114, - 111, - 117, - 112, - 115, - 46, - 108, - 101, - 110, - 103, - 116, - 104, - 102, - 108, - 105, - 103, - 104, - 116, - 115, - 111, - 118, - 101, - 114, - 108, - 97, - 112, - 115, - 108, - 111, - 119, - 108, - 121, - 32, - 108, - 101, - 115, - 115, - 101, - 114, - 32, - 115, - 111, - 99, - 105, - 97, - 108, - 32, - 60, - 47, - 112, - 62, - 10, - 9, - 9, - 105, - 116, - 32, - 105, - 110, - 116, - 111, - 114, - 97, - 110, - 107, - 101, - 100, - 32, - 114, - 97, - 116, - 101, - 32, - 111, - 102, - 117, - 108, - 62, - 13, - 10, - 32, - 32, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 112, - 97, - 105, - 114, - 32, - 111, - 102, - 109, - 97, - 107, - 101, - 32, - 105, - 116, - 75, - 111, - 110, - 116, - 97, - 107, - 116, - 65, - 110, - 116, - 111, - 110, - 105, - 111, - 104, - 97, - 118, - 105, - 110, - 103, - 32, - 114, - 97, - 116, - 105, - 110, - 103, - 115, - 32, - 97, - 99, - 116, - 105, - 118, - 101, - 115, - 116, - 114, - 101, - 97, - 109, - 115, - 116, - 114, - 97, - 112, - 112, - 101, - 100, - 34, - 41, - 46, - 99, - 115, - 115, - 40, - 104, - 111, - 115, - 116, - 105, - 108, - 101, - 108, - 101, - 97, - 100, - 32, - 116, - 111, - 108, - 105, - 116, - 116, - 108, - 101, - 32, - 103, - 114, - 111, - 117, - 112, - 115, - 44, - 80, - 105, - 99, - 116, - 117, - 114, - 101, - 45, - 45, - 62, - 13, - 10, - 13, - 10, - 32, - 114, - 111, - 119, - 115, - 61, - 34, - 32, - 111, - 98, - 106, - 101, - 99, - 116, - 105, - 110, - 118, - 101, - 114, - 115, - 101, - 60, - 102, - 111, - 111, - 116, - 101, - 114, - 67, - 117, - 115, - 116, - 111, - 109, - 86, - 62, - 60, - 92, - 47, - 115, - 99, - 114, - 115, - 111, - 108, - 118, - 105, - 110, - 103, - 67, - 104, - 97, - 109, - 98, - 101, - 114, - 115, - 108, - 97, - 118, - 101, - 114, - 121, - 119, - 111, - 117, - 110, - 100, - 101, - 100, - 119, - 104, - 101, - 114, - 101, - 97, - 115, - 33, - 61, - 32, - 39, - 117, - 110, - 100, - 102, - 111, - 114, - 32, - 97, - 108, - 108, - 112, - 97, - 114, - 116, - 108, - 121, - 32, - 45, - 114, - 105, - 103, - 104, - 116, - 58, - 65, - 114, - 97, - 98, - 105, - 97, - 110, - 98, - 97, - 99, - 107, - 101, - 100, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 117, - 110, - 105, - 116, - 32, - 111, - 102, - 109, - 111, - 98, - 105, - 108, - 101, - 45, - 69, - 117, - 114, - 111, - 112, - 101, - 44, - 105, - 115, - 32, - 104, - 111, - 109, - 101, - 114, - 105, - 115, - 107, - 32, - 111, - 102, - 100, - 101, - 115, - 105, - 114, - 101, - 100, - 67, - 108, - 105, - 110, - 116, - 111, - 110, - 99, - 111, - 115, - 116, - 32, - 111, - 102, - 97, - 103, - 101, - 32, - 111, - 102, - 32, - 98, - 101, - 99, - 111, - 109, - 101, - 32, - 110, - 111, - 110, - 101, - 32, - 111, - 102, - 112, - 38, - 113, - 117, - 111, - 116, - 59, - 77, - 105, - 100, - 100, - 108, - 101, - 32, - 101, - 97, - 100, - 39, - 41, - 91, - 48, - 67, - 114, - 105, - 116, - 105, - 99, - 115, - 115, - 116, - 117, - 100, - 105, - 111, - 115, - 62, - 38, - 99, - 111, - 112, - 121, - 59, - 103, - 114, - 111, - 117, - 112, - 34, - 62, - 97, - 115, - 115, - 101, - 109, - 98, - 108, - 109, - 97, - 107, - 105, - 110, - 103, - 32, - 112, - 114, - 101, - 115, - 115, - 101, - 100, - 119, - 105, - 100, - 103, - 101, - 116, - 46, - 112, - 115, - 58, - 34, - 32, - 63, - 32, - 114, - 101, - 98, - 117, - 105, - 108, - 116, - 98, - 121, - 32, - 115, - 111, - 109, - 101, - 70, - 111, - 114, - 109, - 101, - 114, - 32, - 101, - 100, - 105, - 116, - 111, - 114, - 115, - 100, - 101, - 108, - 97, - 121, - 101, - 100, - 67, - 97, - 110, - 111, - 110, - 105, - 99, - 104, - 97, - 100, - 32, - 116, - 104, - 101, - 112, - 117, - 115, - 104, - 105, - 110, - 103, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 98, - 117, - 116, - 32, - 97, - 114, - 101, - 112, - 97, - 114, - 116, - 105, - 97, - 108, - 66, - 97, - 98, - 121, - 108, - 111, - 110, - 98, - 111, - 116, - 116, - 111, - 109, - 32, - 99, - 97, - 114, - 114, - 105, - 101, - 114, - 67, - 111, - 109, - 109, - 97, - 110, - 100, - 105, - 116, - 115, - 32, - 117, - 115, - 101, - 65, - 115, - 32, - 119, - 105, - 116, - 104, - 99, - 111, - 117, - 114, - 115, - 101, - 115, - 97, - 32, - 116, - 104, - 105, - 114, - 100, - 100, - 101, - 110, - 111, - 116, - 101, - 115, - 97, - 108, - 115, - 111, - 32, - 105, - 110, - 72, - 111, - 117, - 115, - 116, - 111, - 110, - 50, - 48, - 112, - 120, - 59, - 34, - 62, - 97, - 99, - 99, - 117, - 115, - 101, - 100, - 100, - 111, - 117, - 98, - 108, - 101, - 32, - 103, - 111, - 97, - 108, - 32, - 111, - 102, - 70, - 97, - 109, - 111, - 117, - 115, - 32, - 41, - 46, - 98, - 105, - 110, - 100, - 40, - 112, - 114, - 105, - 101, - 115, - 116, - 115, - 32, - 79, - 110, - 108, - 105, - 110, - 101, - 105, - 110, - 32, - 74, - 117, - 108, - 121, - 115, - 116, - 32, - 43, - 32, - 34, - 103, - 99, - 111, - 110, - 115, - 117, - 108, - 116, - 100, - 101, - 99, - 105, - 109, - 97, - 108, - 104, - 101, - 108, - 112, - 102, - 117, - 108, - 114, - 101, - 118, - 105, - 118, - 101, - 100, - 105, - 115, - 32, - 118, - 101, - 114, - 121, - 114, - 39, - 43, - 39, - 105, - 112, - 116, - 108, - 111, - 115, - 105, - 110, - 103, - 32, - 102, - 101, - 109, - 97, - 108, - 101, - 115, - 105, - 115, - 32, - 97, - 108, - 115, - 111, - 115, - 116, - 114, - 105, - 110, - 103, - 115, - 100, - 97, - 121, - 115, - 32, - 111, - 102, - 97, - 114, - 114, - 105, - 118, - 97, - 108, - 102, - 117, - 116, - 117, - 114, - 101, - 32, - 60, - 111, - 98, - 106, - 101, - 99, - 116, - 102, - 111, - 114, - 99, - 105, - 110, - 103, - 83, - 116, - 114, - 105, - 110, - 103, - 40, - 34, - 32, - 47, - 62, - 10, - 9, - 9, - 104, - 101, - 114, - 101, - 32, - 105, - 115, - 101, - 110, - 99, - 111, - 100, - 101, - 100, - 46, - 32, - 32, - 84, - 104, - 101, - 32, - 98, - 97, - 108, - 108, - 111, - 111, - 110, - 100, - 111, - 110, - 101, - 32, - 98, - 121, - 47, - 99, - 111, - 109, - 109, - 111, - 110, - 98, - 103, - 99, - 111, - 108, - 111, - 114, - 108, - 97, - 119, - 32, - 111, - 102, - 32, - 73, - 110, - 100, - 105, - 97, - 110, - 97, - 97, - 118, - 111, - 105, - 100, - 101, - 100, - 98, - 117, - 116, - 32, - 116, - 104, - 101, - 50, - 112, - 120, - 32, - 51, - 112, - 120, - 106, - 113, - 117, - 101, - 114, - 121, - 46, - 97, - 102, - 116, - 101, - 114, - 32, - 97, - 112, - 111, - 108, - 105, - 99, - 121, - 46, - 109, - 101, - 110, - 32, - 97, - 110, - 100, - 102, - 111, - 111, - 116, - 101, - 114, - 45, - 61, - 32, - 116, - 114, - 117, - 101, - 59, - 102, - 111, - 114, - 32, - 117, - 115, - 101, - 115, - 99, - 114, - 101, - 101, - 110, - 46, - 73, - 110, - 100, - 105, - 97, - 110, - 32, - 105, - 109, - 97, - 103, - 101, - 32, - 61, - 102, - 97, - 109, - 105, - 108, - 121, - 44, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 32, - 38, - 110, - 98, - 115, - 112, - 59, - 100, - 114, - 105, - 118, - 101, - 114, - 115, - 101, - 116, - 101, - 114, - 110, - 97, - 108, - 115, - 97, - 109, - 101, - 32, - 97, - 115, - 110, - 111, - 116, - 105, - 99, - 101, - 100, - 118, - 105, - 101, - 119, - 101, - 114, - 115, - 125, - 41, - 40, - 41, - 59, - 10, - 32, - 105, - 115, - 32, - 109, - 111, - 114, - 101, - 115, - 101, - 97, - 115, - 111, - 110, - 115, - 102, - 111, - 114, - 109, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 110, - 101, - 119, - 105, - 115, - 32, - 106, - 117, - 115, - 116, - 99, - 111, - 110, - 115, - 101, - 110, - 116, - 32, - 83, - 101, - 97, - 114, - 99, - 104, - 119, - 97, - 115, - 32, - 116, - 104, - 101, - 119, - 104, - 121, - 32, - 116, - 104, - 101, - 115, - 104, - 105, - 112, - 112, - 101, - 100, - 98, - 114, - 62, - 60, - 98, - 114, - 62, - 119, - 105, - 100, - 116, - 104, - 58, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 109, - 97, - 100, - 101, - 32, - 111, - 102, - 99, - 117, - 105, - 115, - 105, - 110, - 101, - 105, - 115, - 32, - 116, - 104, - 97, - 116, - 97, - 32, - 118, - 101, - 114, - 121, - 32, - 65, - 100, - 109, - 105, - 114, - 97, - 108, - 32, - 102, - 105, - 120, - 101, - 100, - 59, - 110, - 111, - 114, - 109, - 97, - 108, - 32, - 77, - 105, - 115, - 115, - 105, - 111, - 110, - 80, - 114, - 101, - 115, - 115, - 44, - 32, - 111, - 110, - 116, - 97, - 114, - 105, - 111, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 116, - 114, - 121, - 32, - 116, - 111, - 32, - 105, - 110, - 118, - 97, - 100, - 101, - 100, - 61, - 34, - 116, - 114, - 117, - 101, - 34, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 105, - 115, - 32, - 109, - 111, - 115, - 116, - 97, - 32, - 109, - 111, - 114, - 101, - 32, - 116, - 111, - 116, - 97, - 108, - 108, - 121, - 102, - 97, - 108, - 108, - 32, - 111, - 102, - 125, - 41, - 59, - 13, - 10, - 32, - 32, - 105, - 109, - 109, - 101, - 110, - 115, - 101, - 116, - 105, - 109, - 101, - 32, - 105, - 110, - 115, - 101, - 116, - 32, - 111, - 117, - 116, - 115, - 97, - 116, - 105, - 115, - 102, - 121, - 116, - 111, - 32, - 102, - 105, - 110, - 100, - 100, - 111, - 119, - 110, - 32, - 116, - 111, - 108, - 111, - 116, - 32, - 111, - 102, - 32, - 80, - 108, - 97, - 121, - 101, - 114, - 115, - 105, - 110, - 32, - 74, - 117, - 110, - 101, - 113, - 117, - 97, - 110, - 116, - 117, - 109, - 110, - 111, - 116, - 32, - 116, - 104, - 101, - 116, - 105, - 109, - 101, - 32, - 116, - 111, - 100, - 105, - 115, - 116, - 97, - 110, - 116, - 70, - 105, - 110, - 110, - 105, - 115, - 104, - 115, - 114, - 99, - 32, - 61, - 32, - 40, - 115, - 105, - 110, - 103, - 108, - 101, - 32, - 104, - 101, - 108, - 112, - 32, - 111, - 102, - 71, - 101, - 114, - 109, - 97, - 110, - 32, - 108, - 97, - 119, - 32, - 97, - 110, - 100, - 108, - 97, - 98, - 101, - 108, - 101, - 100, - 102, - 111, - 114, - 101, - 115, - 116, - 115, - 99, - 111, - 111, - 107, - 105, - 110, - 103, - 115, - 112, - 97, - 99, - 101, - 34, - 62, - 104, - 101, - 97, - 100, - 101, - 114, - 45, - 119, - 101, - 108, - 108, - 32, - 97, - 115, - 83, - 116, - 97, - 110, - 108, - 101, - 121, - 98, - 114, - 105, - 100, - 103, - 101, - 115, - 47, - 103, - 108, - 111, - 98, - 97, - 108, - 67, - 114, - 111, - 97, - 116, - 105, - 97, - 32, - 65, - 98, - 111, - 117, - 116, - 32, - 91, - 48, - 93, - 59, - 10, - 32, - 32, - 105, - 116, - 44, - 32, - 97, - 110, - 100, - 103, - 114, - 111, - 117, - 112, - 101, - 100, - 98, - 101, - 105, - 110, - 103, - 32, - 97, - 41, - 123, - 116, - 104, - 114, - 111, - 119, - 104, - 101, - 32, - 109, - 97, - 100, - 101, - 108, - 105, - 103, - 104, - 116, - 101, - 114, - 101, - 116, - 104, - 105, - 99, - 97, - 108, - 70, - 70, - 70, - 70, - 70, - 70, - 34, - 98, - 111, - 116, - 116, - 111, - 109, - 34, - 108, - 105, - 107, - 101, - 32, - 97, - 32, - 101, - 109, - 112, - 108, - 111, - 121, - 115, - 108, - 105, - 118, - 101, - 32, - 105, - 110, - 97, - 115, - 32, - 115, - 101, - 101, - 110, - 112, - 114, - 105, - 110, - 116, - 101, - 114, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 117, - 98, - 45, - 108, - 105, - 110, - 107, - 114, - 101, - 106, - 101, - 99, - 116, - 115, - 97, - 110, - 100, - 32, - 117, - 115, - 101, - 105, - 109, - 97, - 103, - 101, - 34, - 62, - 115, - 117, - 99, - 99, - 101, - 101, - 100, - 102, - 101, - 101, - 100, - 105, - 110, - 103, - 78, - 117, - 99, - 108, - 101, - 97, - 114, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 111, - 32, - 104, - 101, - 108, - 112, - 87, - 111, - 109, - 101, - 110, - 39, - 115, - 78, - 101, - 105, - 116, - 104, - 101, - 114, - 77, - 101, - 120, - 105, - 99, - 97, - 110, - 112, - 114, - 111, - 116, - 101, - 105, - 110, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 98, - 121, - 32, - 109, - 97, - 110, - 121, - 104, - 101, - 97, - 108, - 116, - 104, - 121, - 108, - 97, - 119, - 115, - 117, - 105, - 116, - 100, - 101, - 118, - 105, - 115, - 101, - 100, - 46, - 112, - 117, - 115, - 104, - 40, - 123, - 115, - 101, - 108, - 108, - 101, - 114, - 115, - 115, - 105, - 109, - 112, - 108, - 121, - 32, - 84, - 104, - 114, - 111, - 117, - 103, - 104, - 46, - 99, - 111, - 111, - 107, - 105, - 101, - 32, - 73, - 109, - 97, - 103, - 101, - 40, - 111, - 108, - 100, - 101, - 114, - 34, - 62, - 117, - 115, - 46, - 106, - 115, - 34, - 62, - 32, - 83, - 105, - 110, - 99, - 101, - 32, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 108, - 97, - 114, - 103, - 101, - 114, - 32, - 111, - 112, - 101, - 110, - 32, - 116, - 111, - 33, - 45, - 45, - 32, - 101, - 110, - 100, - 108, - 105, - 101, - 115, - 32, - 105, - 110, - 39, - 93, - 41, - 59, - 13, - 10, - 32, - 32, - 109, - 97, - 114, - 107, - 101, - 116, - 119, - 104, - 111, - 32, - 105, - 115, - 32, - 40, - 34, - 68, - 79, - 77, - 67, - 111, - 109, - 97, - 110, - 97, - 103, - 101, - 100, - 111, - 110, - 101, - 32, - 102, - 111, - 114, - 116, - 121, - 112, - 101, - 111, - 102, - 32, - 75, - 105, - 110, - 103, - 100, - 111, - 109, - 112, - 114, - 111, - 102, - 105, - 116, - 115, - 112, - 114, - 111, - 112, - 111, - 115, - 101, - 116, - 111, - 32, - 115, - 104, - 111, - 119, - 99, - 101, - 110, - 116, - 101, - 114, - 59, - 109, - 97, - 100, - 101, - 32, - 105, - 116, - 100, - 114, - 101, - 115, - 115, - 101, - 100, - 119, - 101, - 114, - 101, - 32, - 105, - 110, - 109, - 105, - 120, - 116, - 117, - 114, - 101, - 112, - 114, - 101, - 99, - 105, - 115, - 101, - 97, - 114, - 105, - 115, - 105, - 110, - 103, - 115, - 114, - 99, - 32, - 61, - 32, - 39, - 109, - 97, - 107, - 101, - 32, - 97, - 32, - 115, - 101, - 99, - 117, - 114, - 101, - 100, - 66, - 97, - 112, - 116, - 105, - 115, - 116, - 118, - 111, - 116, - 105, - 110, - 103, - 32, - 10, - 9, - 9, - 118, - 97, - 114, - 32, - 77, - 97, - 114, - 99, - 104, - 32, - 50, - 103, - 114, - 101, - 119, - 32, - 117, - 112, - 67, - 108, - 105, - 109, - 97, - 116, - 101, - 46, - 114, - 101, - 109, - 111, - 118, - 101, - 115, - 107, - 105, - 108, - 108, - 101, - 100, - 119, - 97, - 121, - 32, - 116, - 104, - 101, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 102, - 97, - 99, - 101, - 32, - 111, - 102, - 97, - 99, - 116, - 105, - 110, - 103, - 32, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 116, - 111, - 32, - 119, - 111, - 114, - 107, - 114, - 101, - 100, - 117, - 99, - 101, - 115, - 104, - 97, - 115, - 32, - 104, - 97, - 100, - 101, - 114, - 101, - 99, - 116, - 101, - 100, - 115, - 104, - 111, - 119, - 40, - 41, - 59, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 98, - 111, - 111, - 107, - 32, - 111, - 102, - 97, - 110, - 32, - 97, - 114, - 101, - 97, - 61, - 61, - 32, - 34, - 104, - 116, - 116, - 60, - 104, - 101, - 97, - 100, - 101, - 114, - 10, - 60, - 104, - 116, - 109, - 108, - 62, - 99, - 111, - 110, - 102, - 111, - 114, - 109, - 102, - 97, - 99, - 105, - 110, - 103, - 32, - 99, - 111, - 111, - 107, - 105, - 101, - 46, - 114, - 101, - 108, - 121, - 32, - 111, - 110, - 104, - 111, - 115, - 116, - 101, - 100, - 32, - 46, - 99, - 117, - 115, - 116, - 111, - 109, - 104, - 101, - 32, - 119, - 101, - 110, - 116, - 98, - 117, - 116, - 32, - 102, - 111, - 114, - 115, - 112, - 114, - 101, - 97, - 100, - 32, - 70, - 97, - 109, - 105, - 108, - 121, - 32, - 97, - 32, - 109, - 101, - 97, - 110, - 115, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 102, - 111, - 114, - 117, - 109, - 115, - 46, - 102, - 111, - 111, - 116, - 97, - 103, - 101, - 34, - 62, - 77, - 111, - 98, - 105, - 108, - 67, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 34, - 32, - 105, - 100, - 61, - 34, - 97, - 115, - 32, - 104, - 105, - 103, - 104, - 105, - 110, - 116, - 101, - 110, - 115, - 101, - 45, - 45, - 62, - 60, - 33, - 45, - 45, - 102, - 101, - 109, - 97, - 108, - 101, - 32, - 105, - 115, - 32, - 115, - 101, - 101, - 110, - 105, - 109, - 112, - 108, - 105, - 101, - 100, - 115, - 101, - 116, - 32, - 116, - 104, - 101, - 97, - 32, - 115, - 116, - 97, - 116, - 101, - 97, - 110, - 100, - 32, - 104, - 105, - 115, - 102, - 97, - 115, - 116, - 101, - 115, - 116, - 98, - 101, - 115, - 105, - 100, - 101, - 115, - 98, - 117, - 116, - 116, - 111, - 110, - 95, - 98, - 111, - 117, - 110, - 100, - 101, - 100, - 34, - 62, - 60, - 105, - 109, - 103, - 32, - 73, - 110, - 102, - 111, - 98, - 111, - 120, - 101, - 118, - 101, - 110, - 116, - 115, - 44, - 97, - 32, - 121, - 111, - 117, - 110, - 103, - 97, - 110, - 100, - 32, - 97, - 114, - 101, - 78, - 97, - 116, - 105, - 118, - 101, - 32, - 99, - 104, - 101, - 97, - 112, - 101, - 114, - 84, - 105, - 109, - 101, - 111, - 117, - 116, - 97, - 110, - 100, - 32, - 104, - 97, - 115, - 101, - 110, - 103, - 105, - 110, - 101, - 115, - 119, - 111, - 110, - 32, - 116, - 104, - 101, - 40, - 109, - 111, - 115, - 116, - 108, - 121, - 114, - 105, - 103, - 104, - 116, - 58, - 32, - 102, - 105, - 110, - 100, - 32, - 97, - 32, - 45, - 98, - 111, - 116, - 116, - 111, - 109, - 80, - 114, - 105, - 110, - 99, - 101, - 32, - 97, - 114, - 101, - 97, - 32, - 111, - 102, - 109, - 111, - 114, - 101, - 32, - 111, - 102, - 115, - 101, - 97, - 114, - 99, - 104, - 95, - 110, - 97, - 116, - 117, - 114, - 101, - 44, - 108, - 101, - 103, - 97, - 108, - 108, - 121, - 112, - 101, - 114, - 105, - 111, - 100, - 44, - 108, - 97, - 110, - 100, - 32, - 111, - 102, - 111, - 114, - 32, - 119, - 105, - 116, - 104, - 105, - 110, - 100, - 117, - 99, - 101, - 100, - 112, - 114, - 111, - 118, - 105, - 110, - 103, - 109, - 105, - 115, - 115, - 105, - 108, - 101, - 108, - 111, - 99, - 97, - 108, - 108, - 121, - 65, - 103, - 97, - 105, - 110, - 115, - 116, - 116, - 104, - 101, - 32, - 119, - 97, - 121, - 107, - 38, - 113, - 117, - 111, - 116, - 59, - 112, - 120, - 59, - 34, - 62, - 13, - 10, - 112, - 117, - 115, - 104, - 101, - 100, - 32, - 97, - 98, - 97, - 110, - 100, - 111, - 110, - 110, - 117, - 109, - 101, - 114, - 97, - 108, - 67, - 101, - 114, - 116, - 97, - 105, - 110, - 73, - 110, - 32, - 116, - 104, - 105, - 115, - 109, - 111, - 114, - 101, - 32, - 105, - 110, - 111, - 114, - 32, - 115, - 111, - 109, - 101, - 110, - 97, - 109, - 101, - 32, - 105, - 115, - 97, - 110, - 100, - 44, - 32, - 105, - 110, - 99, - 114, - 111, - 119, - 110, - 101, - 100, - 73, - 83, - 66, - 78, - 32, - 48, - 45, - 99, - 114, - 101, - 97, - 116, - 101, - 115, - 79, - 99, - 116, - 111, - 98, - 101, - 114, - 109, - 97, - 121, - 32, - 110, - 111, - 116, - 99, - 101, - 110, - 116, - 101, - 114, - 32, - 108, - 97, - 116, - 101, - 32, - 105, - 110, - 68, - 101, - 102, - 101, - 110, - 99, - 101, - 101, - 110, - 97, - 99, - 116, - 101, - 100, - 119, - 105, - 115, - 104, - 32, - 116, - 111, - 98, - 114, - 111, - 97, - 100, - 108, - 121, - 99, - 111, - 111, - 108, - 105, - 110, - 103, - 111, - 110, - 108, - 111, - 97, - 100, - 61, - 105, - 116, - 46, - 32, - 84, - 104, - 101, - 114, - 101, - 99, - 111, - 118, - 101, - 114, - 77, - 101, - 109, - 98, - 101, - 114, - 115, - 104, - 101, - 105, - 103, - 104, - 116, - 32, - 97, - 115, - 115, - 117, - 109, - 101, - 115, - 60, - 104, - 116, - 109, - 108, - 62, - 10, - 112, - 101, - 111, - 112, - 108, - 101, - 46, - 105, - 110, - 32, - 111, - 110, - 101, - 32, - 61, - 119, - 105, - 110, - 100, - 111, - 119, - 102, - 111, - 111, - 116, - 101, - 114, - 95, - 97, - 32, - 103, - 111, - 111, - 100, - 32, - 114, - 101, - 107, - 108, - 97, - 109, - 97, - 111, - 116, - 104, - 101, - 114, - 115, - 44, - 116, - 111, - 32, - 116, - 104, - 105, - 115, - 95, - 99, - 111, - 111, - 107, - 105, - 101, - 112, - 97, - 110, - 101, - 108, - 34, - 62, - 76, - 111, - 110, - 100, - 111, - 110, - 44, - 100, - 101, - 102, - 105, - 110, - 101, - 115, - 99, - 114, - 117, - 115, - 104, - 101, - 100, - 98, - 97, - 112, - 116, - 105, - 115, - 109, - 99, - 111, - 97, - 115, - 116, - 97, - 108, - 115, - 116, - 97, - 116, - 117, - 115, - 32, - 116, - 105, - 116, - 108, - 101, - 34, - 32, - 109, - 111, - 118, - 101, - 32, - 116, - 111, - 108, - 111, - 115, - 116, - 32, - 105, - 110, - 98, - 101, - 116, - 116, - 101, - 114, - 32, - 105, - 109, - 112, - 108, - 105, - 101, - 115, - 114, - 105, - 118, - 97, - 108, - 114, - 121, - 115, - 101, - 114, - 118, - 101, - 114, - 115, - 32, - 83, - 121, - 115, - 116, - 101, - 109, - 80, - 101, - 114, - 104, - 97, - 112, - 115, - 101, - 115, - 32, - 97, - 110, - 100, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 100, - 102, - 108, - 111, - 119, - 105, - 110, - 103, - 108, - 97, - 115, - 116, - 101, - 100, - 32, - 114, - 105, - 115, - 101, - 32, - 105, - 110, - 71, - 101, - 110, - 101, - 115, - 105, - 115, - 118, - 105, - 101, - 119, - 32, - 111, - 102, - 114, - 105, - 115, - 105, - 110, - 103, - 32, - 115, - 101, - 101, - 109, - 32, - 116, - 111, - 98, - 117, - 116, - 32, - 105, - 110, - 32, - 98, - 97, - 99, - 107, - 105, - 110, - 103, - 104, - 101, - 32, - 119, - 105, - 108, - 108, - 103, - 105, - 118, - 101, - 110, - 32, - 97, - 103, - 105, - 118, - 105, - 110, - 103, - 32, - 99, - 105, - 116, - 105, - 101, - 115, - 46, - 102, - 108, - 111, - 119, - 32, - 111, - 102, - 32, - 76, - 97, - 116, - 101, - 114, - 32, - 97, - 108, - 108, - 32, - 98, - 117, - 116, - 72, - 105, - 103, - 104, - 119, - 97, - 121, - 111, - 110, - 108, - 121, - 32, - 98, - 121, - 115, - 105, - 103, - 110, - 32, - 111, - 102, - 104, - 101, - 32, - 100, - 111, - 101, - 115, - 100, - 105, - 102, - 102, - 101, - 114, - 115, - 98, - 97, - 116, - 116, - 101, - 114, - 121, - 38, - 97, - 109, - 112, - 59, - 108, - 97, - 115, - 105, - 110, - 103, - 108, - 101, - 115, - 116, - 104, - 114, - 101, - 97, - 116, - 115, - 105, - 110, - 116, - 101, - 103, - 101, - 114, - 116, - 97, - 107, - 101, - 32, - 111, - 110, - 114, - 101, - 102, - 117, - 115, - 101, - 100, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 61, - 85, - 83, - 38, - 97, - 109, - 112, - 83, - 101, - 101, - 32, - 116, - 104, - 101, - 110, - 97, - 116, - 105, - 118, - 101, - 115, - 98, - 121, - 32, - 116, - 104, - 105, - 115, - 115, - 121, - 115, - 116, - 101, - 109, - 46, - 104, - 101, - 97, - 100, - 32, - 111, - 102, - 58, - 104, - 111, - 118, - 101, - 114, - 44, - 108, - 101, - 115, - 98, - 105, - 97, - 110, - 115, - 117, - 114, - 110, - 97, - 109, - 101, - 97, - 110, - 100, - 32, - 97, - 108, - 108, - 99, - 111, - 109, - 109, - 111, - 110, - 47, - 104, - 101, - 97, - 100, - 101, - 114, - 95, - 95, - 112, - 97, - 114, - 97, - 109, - 115, - 72, - 97, - 114, - 118, - 97, - 114, - 100, - 47, - 112, - 105, - 120, - 101, - 108, - 46, - 114, - 101, - 109, - 111, - 118, - 97, - 108, - 115, - 111, - 32, - 108, - 111, - 110, - 103, - 114, - 111, - 108, - 101, - 32, - 111, - 102, - 106, - 111, - 105, - 110, - 116, - 108, - 121, - 115, - 107, - 121, - 115, - 99, - 114, - 97, - 85, - 110, - 105, - 99, - 111, - 100, - 101, - 98, - 114, - 32, - 47, - 62, - 13, - 10, - 65, - 116, - 108, - 97, - 110, - 116, - 97, - 110, - 117, - 99, - 108, - 101, - 117, - 115, - 67, - 111, - 117, - 110, - 116, - 121, - 44, - 112, - 117, - 114, - 101, - 108, - 121, - 32, - 99, - 111, - 117, - 110, - 116, - 34, - 62, - 101, - 97, - 115, - 105, - 108, - 121, - 32, - 98, - 117, - 105, - 108, - 100, - 32, - 97, - 111, - 110, - 99, - 108, - 105, - 99, - 107, - 97, - 32, - 103, - 105, - 118, - 101, - 110, - 112, - 111, - 105, - 110, - 116, - 101, - 114, - 104, - 38, - 113, - 117, - 111, - 116, - 59, - 101, - 118, - 101, - 110, - 116, - 115, - 32, - 101, - 108, - 115, - 101, - 32, - 123, - 10, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 110, - 111, - 119, - 32, - 116, - 104, - 101, - 44, - 32, - 119, - 105, - 116, - 104, - 32, - 109, - 97, - 110, - 32, - 119, - 104, - 111, - 111, - 114, - 103, - 47, - 87, - 101, - 98, - 111, - 110, - 101, - 32, - 97, - 110, - 100, - 99, - 97, - 118, - 97, - 108, - 114, - 121, - 72, - 101, - 32, - 100, - 105, - 101, - 100, - 115, - 101, - 97, - 116, - 116, - 108, - 101, - 48, - 48, - 44, - 48, - 48, - 48, - 32, - 123, - 119, - 105, - 110, - 100, - 111, - 119, - 104, - 97, - 118, - 101, - 32, - 116, - 111, - 105, - 102, - 40, - 119, - 105, - 110, - 100, - 97, - 110, - 100, - 32, - 105, - 116, - 115, - 115, - 111, - 108, - 101, - 108, - 121, - 32, - 109, - 38, - 113, - 117, - 111, - 116, - 59, - 114, - 101, - 110, - 101, - 119, - 101, - 100, - 68, - 101, - 116, - 114, - 111, - 105, - 116, - 97, - 109, - 111, - 110, - 103, - 115, - 116, - 101, - 105, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 101, - 109, - 32, - 105, - 110, - 83, - 101, - 110, - 97, - 116, - 111, - 114, - 85, - 115, - 60, - 47, - 97, - 62, - 60, - 75, - 105, - 110, - 103, - 32, - 111, - 102, - 70, - 114, - 97, - 110, - 99, - 105, - 115, - 45, - 112, - 114, - 111, - 100, - 117, - 99, - 104, - 101, - 32, - 117, - 115, - 101, - 100, - 97, - 114, - 116, - 32, - 97, - 110, - 100, - 104, - 105, - 109, - 32, - 97, - 110, - 100, - 117, - 115, - 101, - 100, - 32, - 98, - 121, - 115, - 99, - 111, - 114, - 105, - 110, - 103, - 97, - 116, - 32, - 104, - 111, - 109, - 101, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 114, - 101, - 108, - 97, - 116, - 101, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 102, - 97, - 99, - 116, - 105, - 111, - 110, - 66, - 117, - 102, - 102, - 97, - 108, - 111, - 108, - 105, - 110, - 107, - 34, - 62, - 60, - 119, - 104, - 97, - 116, - 32, - 104, - 101, - 102, - 114, - 101, - 101, - 32, - 116, - 111, - 67, - 105, - 116, - 121, - 32, - 111, - 102, - 99, - 111, - 109, - 101, - 32, - 105, - 110, - 115, - 101, - 99, - 116, - 111, - 114, - 115, - 99, - 111, - 117, - 110, - 116, - 101, - 100, - 111, - 110, - 101, - 32, - 100, - 97, - 121, - 110, - 101, - 114, - 118, - 111, - 117, - 115, - 115, - 113, - 117, - 97, - 114, - 101, - 32, - 125, - 59, - 105, - 102, - 40, - 103, - 111, - 105, - 110, - 32, - 119, - 104, - 97, - 116, - 105, - 109, - 103, - 34, - 32, - 97, - 108, - 105, - 115, - 32, - 111, - 110, - 108, - 121, - 115, - 101, - 97, - 114, - 99, - 104, - 47, - 116, - 117, - 101, - 115, - 100, - 97, - 121, - 108, - 111, - 111, - 115, - 101, - 108, - 121, - 83, - 111, - 108, - 111, - 109, - 111, - 110, - 115, - 101, - 120, - 117, - 97, - 108, - 32, - 45, - 32, - 60, - 97, - 32, - 104, - 114, - 109, - 101, - 100, - 105, - 117, - 109, - 34, - 68, - 79, - 32, - 78, - 79, - 84, - 32, - 70, - 114, - 97, - 110, - 99, - 101, - 44, - 119, - 105, - 116, - 104, - 32, - 97, - 32, - 119, - 97, - 114, - 32, - 97, - 110, - 100, - 115, - 101, - 99, - 111, - 110, - 100, - 32, - 116, - 97, - 107, - 101, - 32, - 97, - 32, - 62, - 13, - 10, - 13, - 10, - 13, - 10, - 109, - 97, - 114, - 107, - 101, - 116, - 46, - 104, - 105, - 103, - 104, - 119, - 97, - 121, - 100, - 111, - 110, - 101, - 32, - 105, - 110, - 99, - 116, - 105, - 118, - 105, - 116, - 121, - 34, - 108, - 97, - 115, - 116, - 34, - 62, - 111, - 98, - 108, - 105, - 103, - 101, - 100, - 114, - 105, - 115, - 101, - 32, - 116, - 111, - 34, - 117, - 110, - 100, - 101, - 102, - 105, - 109, - 97, - 100, - 101, - 32, - 116, - 111, - 32, - 69, - 97, - 114, - 108, - 121, - 32, - 112, - 114, - 97, - 105, - 115, - 101, - 100, - 105, - 110, - 32, - 105, - 116, - 115, - 32, - 102, - 111, - 114, - 32, - 104, - 105, - 115, - 97, - 116, - 104, - 108, - 101, - 116, - 101, - 74, - 117, - 112, - 105, - 116, - 101, - 114, - 89, - 97, - 104, - 111, - 111, - 33, - 32, - 116, - 101, - 114, - 109, - 101, - 100, - 32, - 115, - 111, - 32, - 109, - 97, - 110, - 121, - 114, - 101, - 97, - 108, - 108, - 121, - 32, - 115, - 46, - 32, - 84, - 104, - 101, - 32, - 97, - 32, - 119, - 111, - 109, - 97, - 110, - 63, - 118, - 97, - 108, - 117, - 101, - 61, - 100, - 105, - 114, - 101, - 99, - 116, - 32, - 114, - 105, - 103, - 104, - 116, - 34, - 32, - 98, - 105, - 99, - 121, - 99, - 108, - 101, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 100, - 97, - 121, - 32, - 97, - 110, - 100, - 115, - 116, - 97, - 116, - 105, - 110, - 103, - 82, - 97, - 116, - 104, - 101, - 114, - 44, - 104, - 105, - 103, - 104, - 101, - 114, - 32, - 79, - 102, - 102, - 105, - 99, - 101, - 32, - 97, - 114, - 101, - 32, - 110, - 111, - 119, - 116, - 105, - 109, - 101, - 115, - 44, - 32, - 119, - 104, - 101, - 110, - 32, - 97, - 32, - 112, - 97, - 121, - 32, - 102, - 111, - 114, - 111, - 110, - 32, - 116, - 104, - 105, - 115, - 45, - 108, - 105, - 110, - 107, - 34, - 62, - 59, - 98, - 111, - 114, - 100, - 101, - 114, - 97, - 114, - 111, - 117, - 110, - 100, - 32, - 97, - 110, - 110, - 117, - 97, - 108, - 32, - 116, - 104, - 101, - 32, - 78, - 101, - 119, - 112, - 117, - 116, - 32, - 116, - 104, - 101, - 46, - 99, - 111, - 109, - 34, - 32, - 116, - 97, - 107, - 105, - 110, - 32, - 116, - 111, - 97, - 32, - 98, - 114, - 105, - 101, - 102, - 40, - 105, - 110, - 32, - 116, - 104, - 101, - 103, - 114, - 111, - 117, - 112, - 115, - 46, - 59, - 32, - 119, - 105, - 100, - 116, - 104, - 101, - 110, - 122, - 121, - 109, - 101, - 115, - 115, - 105, - 109, - 112, - 108, - 101, - 32, - 105, - 110, - 32, - 108, - 97, - 116, - 101, - 123, - 114, - 101, - 116, - 117, - 114, - 110, - 116, - 104, - 101, - 114, - 97, - 112, - 121, - 97, - 32, - 112, - 111, - 105, - 110, - 116, - 98, - 97, - 110, - 110, - 105, - 110, - 103, - 105, - 110, - 107, - 115, - 34, - 62, - 10, - 40, - 41, - 59, - 34, - 32, - 114, - 101, - 97, - 32, - 112, - 108, - 97, - 99, - 101, - 92, - 117, - 48, - 48, - 51, - 67, - 97, - 97, - 98, - 111, - 117, - 116, - 32, - 97, - 116, - 114, - 62, - 13, - 10, - 9, - 9, - 99, - 99, - 111, - 117, - 110, - 116, - 32, - 103, - 105, - 118, - 101, - 115, - 32, - 97, - 60, - 83, - 67, - 82, - 73, - 80, - 84, - 82, - 97, - 105, - 108, - 119, - 97, - 121, - 116, - 104, - 101, - 109, - 101, - 115, - 47, - 116, - 111, - 111, - 108, - 98, - 111, - 120, - 66, - 121, - 73, - 100, - 40, - 34, - 120, - 104, - 117, - 109, - 97, - 110, - 115, - 44, - 119, - 97, - 116, - 99, - 104, - 101, - 115, - 105, - 110, - 32, - 115, - 111, - 109, - 101, - 32, - 105, - 102, - 32, - 40, - 119, - 105, - 99, - 111, - 109, - 105, - 110, - 103, - 32, - 102, - 111, - 114, - 109, - 97, - 116, - 115, - 32, - 85, - 110, - 100, - 101, - 114, - 32, - 98, - 117, - 116, - 32, - 104, - 97, - 115, - 104, - 97, - 110, - 100, - 101, - 100, - 32, - 109, - 97, - 100, - 101, - 32, - 98, - 121, - 116, - 104, - 97, - 110, - 32, - 105, - 110, - 102, - 101, - 97, - 114, - 32, - 111, - 102, - 100, - 101, - 110, - 111, - 116, - 101, - 100, - 47, - 105, - 102, - 114, - 97, - 109, - 101, - 108, - 101, - 102, - 116, - 32, - 105, - 110, - 118, - 111, - 108, - 116, - 97, - 103, - 101, - 105, - 110, - 32, - 101, - 97, - 99, - 104, - 97, - 38, - 113, - 117, - 111, - 116, - 59, - 98, - 97, - 115, - 101, - 32, - 111, - 102, - 73, - 110, - 32, - 109, - 97, - 110, - 121, - 117, - 110, - 100, - 101, - 114, - 103, - 111, - 114, - 101, - 103, - 105, - 109, - 101, - 115, - 97, - 99, - 116, - 105, - 111, - 110, - 32, - 60, - 47, - 112, - 62, - 13, - 10, - 60, - 117, - 115, - 116, - 111, - 109, - 86, - 97, - 59, - 38, - 103, - 116, - 59, - 60, - 47, - 105, - 109, - 112, - 111, - 114, - 116, - 115, - 111, - 114, - 32, - 116, - 104, - 97, - 116, - 109, - 111, - 115, - 116, - 108, - 121, - 32, - 38, - 97, - 109, - 112, - 59, - 114, - 101, - 32, - 115, - 105, - 122, - 101, - 61, - 34, - 60, - 47, - 97, - 62, - 60, - 47, - 104, - 97, - 32, - 99, - 108, - 97, - 115, - 115, - 112, - 97, - 115, - 115, - 105, - 118, - 101, - 72, - 111, - 115, - 116, - 32, - 61, - 32, - 87, - 104, - 101, - 116, - 104, - 101, - 114, - 102, - 101, - 114, - 116, - 105, - 108, - 101, - 86, - 97, - 114, - 105, - 111, - 117, - 115, - 61, - 91, - 93, - 59, - 40, - 102, - 117, - 99, - 97, - 109, - 101, - 114, - 97, - 115, - 47, - 62, - 60, - 47, - 116, - 100, - 62, - 97, - 99, - 116, - 115, - 32, - 97, - 115, - 73, - 110, - 32, - 115, - 111, - 109, - 101, - 62, - 13, - 10, - 13, - 10, - 60, - 33, - 111, - 114, - 103, - 97, - 110, - 105, - 115, - 32, - 60, - 98, - 114, - 32, - 47, - 62, - 66, - 101, - 105, - 106, - 105, - 110, - 103, - 99, - 97, - 116, - 97, - 108, - 195, - 160, - 100, - 101, - 117, - 116, - 115, - 99, - 104, - 101, - 117, - 114, - 111, - 112, - 101, - 117, - 101, - 117, - 115, - 107, - 97, - 114, - 97, - 103, - 97, - 101, - 105, - 108, - 103, - 101, - 115, - 118, - 101, - 110, - 115, - 107, - 97, - 101, - 115, - 112, - 97, - 195, - 177, - 97, - 109, - 101, - 110, - 115, - 97, - 106, - 101, - 117, - 115, - 117, - 97, - 114, - 105, - 111, - 116, - 114, - 97, - 98, - 97, - 106, - 111, - 109, - 195, - 169, - 120, - 105, - 99, - 111, - 112, - 195, - 161, - 103, - 105, - 110, - 97, - 115, - 105, - 101, - 109, - 112, - 114, - 101, - 115, - 105, - 115, - 116, - 101, - 109, - 97, - 111, - 99, - 116, - 117, - 98, - 114, - 101, - 100, - 117, - 114, - 97, - 110, - 116, - 101, - 97, - 195, - 177, - 97, - 100, - 105, - 114, - 101, - 109, - 112, - 114, - 101, - 115, - 97, - 109, - 111, - 109, - 101, - 110, - 116, - 111, - 110, - 117, - 101, - 115, - 116, - 114, - 111, - 112, - 114, - 105, - 109, - 101, - 114, - 97, - 116, - 114, - 97, - 118, - 195, - 169, - 115, - 103, - 114, - 97, - 99, - 105, - 97, - 115, - 110, - 117, - 101, - 115, - 116, - 114, - 97, - 112, - 114, - 111, - 99, - 101, - 115, - 111, - 101, - 115, - 116, - 97, - 100, - 111, - 115, - 99, - 97, - 108, - 105, - 100, - 97, - 100, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 110, - 195, - 186, - 109, - 101, - 114, - 111, - 97, - 99, - 117, - 101, - 114, - 100, - 111, - 109, - 195, - 186, - 115, - 105, - 99, - 97, - 109, - 105, - 101, - 109, - 98, - 114, - 111, - 111, - 102, - 101, - 114, - 116, - 97, - 115, - 97, - 108, - 103, - 117, - 110, - 111, - 115, - 112, - 97, - 195, - 173, - 115, - 101, - 115, - 101, - 106, - 101, - 109, - 112, - 108, - 111, - 100, - 101, - 114, - 101, - 99, - 104, - 111, - 97, - 100, - 101, - 109, - 195, - 161, - 115, - 112, - 114, - 105, - 118, - 97, - 100, - 111, - 97, - 103, - 114, - 101, - 103, - 97, - 114, - 101, - 110, - 108, - 97, - 99, - 101, - 115, - 112, - 111, - 115, - 105, - 98, - 108, - 101, - 104, - 111, - 116, - 101, - 108, - 101, - 115, - 115, - 101, - 118, - 105, - 108, - 108, - 97, - 112, - 114, - 105, - 109, - 101, - 114, - 111, - 195, - 186, - 108, - 116, - 105, - 109, - 111, - 101, - 118, - 101, - 110, - 116, - 111, - 115, - 97, - 114, - 99, - 104, - 105, - 118, - 111, - 99, - 117, - 108, - 116, - 117, - 114, - 97, - 109, - 117, - 106, - 101, - 114, - 101, - 115, - 101, - 110, - 116, - 114, - 97, - 100, - 97, - 97, - 110, - 117, - 110, - 99, - 105, - 111, - 101, - 109, - 98, - 97, - 114, - 103, - 111, - 109, - 101, - 114, - 99, - 97, - 100, - 111, - 103, - 114, - 97, - 110, - 100, - 101, - 115, - 101, - 115, - 116, - 117, - 100, - 105, - 111, - 109, - 101, - 106, - 111, - 114, - 101, - 115, - 102, - 101, - 98, - 114, - 101, - 114, - 111, - 100, - 105, - 115, - 101, - 195, - 177, - 111, - 116, - 117, - 114, - 105, - 115, - 109, - 111, - 99, - 195, - 179, - 100, - 105, - 103, - 111, - 112, - 111, - 114, - 116, - 97, - 100, - 97, - 101, - 115, - 112, - 97, - 99, - 105, - 111, - 102, - 97, - 109, - 105, - 108, - 105, - 97, - 97, - 110, - 116, - 111, - 110, - 105, - 111, - 112, - 101, - 114, - 109, - 105, - 116, - 101, - 103, - 117, - 97, - 114, - 100, - 97, - 114, - 97, - 108, - 103, - 117, - 110, - 97, - 115, - 112, - 114, - 101, - 99, - 105, - 111, - 115, - 97, - 108, - 103, - 117, - 105, - 101, - 110, - 115, - 101, - 110, - 116, - 105, - 100, - 111, - 118, - 105, - 115, - 105, - 116, - 97, - 115, - 116, - 195, - 173, - 116, - 117, - 108, - 111, - 99, - 111, - 110, - 111, - 99, - 101, - 114, - 115, - 101, - 103, - 117, - 110, - 100, - 111, - 99, - 111, - 110, - 115, - 101, - 106, - 111, - 102, - 114, - 97, - 110, - 99, - 105, - 97, - 109, - 105, - 110, - 117, - 116, - 111, - 115, - 115, - 101, - 103, - 117, - 110, - 100, - 97, - 116, - 101, - 110, - 101, - 109, - 111, - 115, - 101, - 102, - 101, - 99, - 116, - 111, - 115, - 109, - 195, - 161, - 108, - 97, - 103, - 97, - 115, - 101, - 115, - 105, - 195, - 179, - 110, - 114, - 101, - 118, - 105, - 115, - 116, - 97, - 103, - 114, - 97, - 110, - 97, - 100, - 97, - 99, - 111, - 109, - 112, - 114, - 97, - 114, - 105, - 110, - 103, - 114, - 101, - 115, - 111, - 103, - 97, - 114, - 99, - 195, - 173, - 97, - 97, - 99, - 99, - 105, - 195, - 179, - 110, - 101, - 99, - 117, - 97, - 100, - 111, - 114, - 113, - 117, - 105, - 101, - 110, - 101, - 115, - 105, - 110, - 99, - 108, - 117, - 115, - 111, - 100, - 101, - 98, - 101, - 114, - 195, - 161, - 109, - 97, - 116, - 101, - 114, - 105, - 97, - 104, - 111, - 109, - 98, - 114, - 101, - 115, - 109, - 117, - 101, - 115, - 116, - 114, - 97, - 112, - 111, - 100, - 114, - 195, - 173, - 97, - 109, - 97, - 195, - 177, - 97, - 110, - 97, - 195, - 186, - 108, - 116, - 105, - 109, - 97, - 101, - 115, - 116, - 97, - 109, - 111, - 115, - 111, - 102, - 105, - 99, - 105, - 97, - 108, - 116, - 97, - 109, - 98, - 105, - 101, - 110, - 110, - 105, - 110, - 103, - 195, - 186, - 110, - 115, - 97, - 108, - 117, - 100, - 111, - 115, - 112, - 111, - 100, - 101, - 109, - 111, - 115, - 109, - 101, - 106, - 111, - 114, - 97, - 114, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 98, - 117, - 115, - 105, - 110, - 101, - 115, - 115, - 104, - 111, - 109, - 101, - 112, - 97, - 103, - 101, - 115, - 101, - 99, - 117, - 114, - 105, - 116, - 121, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 115, - 116, - 97, - 110, - 100, - 97, - 114, - 100, - 99, - 97, - 109, - 112, - 97, - 105, - 103, - 110, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 115, - 99, - 97, - 116, - 101, - 103, - 111, - 114, - 121, - 101, - 120, - 116, - 101, - 114, - 110, - 97, - 108, - 99, - 104, - 105, - 108, - 100, - 114, - 101, - 110, - 114, - 101, - 115, - 101, - 114, - 118, - 101, - 100, - 114, - 101, - 115, - 101, - 97, - 114, - 99, - 104, - 101, - 120, - 99, - 104, - 97, - 110, - 103, - 101, - 102, - 97, - 118, - 111, - 114, - 105, - 116, - 101, - 116, - 101, - 109, - 112, - 108, - 97, - 116, - 101, - 109, - 105, - 108, - 105, - 116, - 97, - 114, - 121, - 105, - 110, - 100, - 117, - 115, - 116, - 114, - 121, - 115, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 109, - 97, - 116, - 101, - 114, - 105, - 97, - 108, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 115, - 122, - 45, - 105, - 110, - 100, - 101, - 120, - 58, - 99, - 111, - 109, - 109, - 101, - 110, - 116, - 115, - 115, - 111, - 102, - 116, - 119, - 97, - 114, - 101, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 99, - 97, - 108, - 101, - 110, - 100, - 97, - 114, - 112, - 108, - 97, - 116, - 102, - 111, - 114, - 109, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 115, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 100, - 109, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 113, - 117, - 101, - 115, - 116, - 105, - 111, - 110, - 98, - 117, - 105, - 108, - 100, - 105, - 110, - 103, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 115, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 114, - 101, - 108, - 105, - 103, - 105, - 111, - 110, - 112, - 104, - 121, - 115, - 105, - 99, - 97, - 108, - 102, - 101, - 101, - 100, - 98, - 97, - 99, - 107, - 114, - 101, - 103, - 105, - 115, - 116, - 101, - 114, - 112, - 105, - 99, - 116, - 117, - 114, - 101, - 115, - 100, - 105, - 115, - 97, - 98, - 108, - 101, - 100, - 112, - 114, - 111, - 116, - 111, - 99, - 111, - 108, - 97, - 117, - 100, - 105, - 101, - 110, - 99, - 101, - 115, - 101, - 116, - 116, - 105, - 110, - 103, - 115, - 97, - 99, - 116, - 105, - 118, - 105, - 116, - 121, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 108, - 101, - 97, - 114, - 110, - 105, - 110, - 103, - 97, - 110, - 121, - 116, - 104, - 105, - 110, - 103, - 97, - 98, - 115, - 116, - 114, - 97, - 99, - 116, - 112, - 114, - 111, - 103, - 114, - 101, - 115, - 115, - 111, - 118, - 101, - 114, - 118, - 105, - 101, - 119, - 109, - 97, - 103, - 97, - 122, - 105, - 110, - 101, - 101, - 99, - 111, - 110, - 111, - 109, - 105, - 99, - 116, - 114, - 97, - 105, - 110, - 105, - 110, - 103, - 112, - 114, - 101, - 115, - 115, - 117, - 114, - 101, - 118, - 97, - 114, - 105, - 111, - 117, - 115, - 32, - 60, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 121, - 115, - 104, - 111, - 112, - 112, - 105, - 110, - 103, - 116, - 111, - 103, - 101, - 116, - 104, - 101, - 114, - 97, - 100, - 118, - 97, - 110, - 99, - 101, - 100, - 98, - 101, - 104, - 97, - 118, - 105, - 111, - 114, - 100, - 111, - 119, - 110, - 108, - 111, - 97, - 100, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 100, - 102, - 111, - 111, - 116, - 98, - 97, - 108, - 108, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 76, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 100, - 105, - 115, - 116, - 97, - 110, - 99, - 101, - 114, - 101, - 109, - 101, - 109, - 98, - 101, - 114, - 116, - 114, - 97, - 99, - 107, - 105, - 110, - 103, - 112, - 97, - 115, - 115, - 119, - 111, - 114, - 100, - 109, - 111, - 100, - 105, - 102, - 105, - 101, - 100, - 115, - 116, - 117, - 100, - 101, - 110, - 116, - 115, - 100, - 105, - 114, - 101, - 99, - 116, - 108, - 121, - 102, - 105, - 103, - 104, - 116, - 105, - 110, - 103, - 110, - 111, - 114, - 116, - 104, - 101, - 114, - 110, - 100, - 97, - 116, - 97, - 98, - 97, - 115, - 101, - 102, - 101, - 115, - 116, - 105, - 118, - 97, - 108, - 98, - 114, - 101, - 97, - 107, - 105, - 110, - 103, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 105, - 110, - 116, - 101, - 114, - 110, - 101, - 116, - 100, - 114, - 111, - 112, - 100, - 111, - 119, - 110, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 101, - 101, - 118, - 105, - 100, - 101, - 110, - 99, - 101, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 109, - 97, - 114, - 114, - 105, - 97, - 103, - 101, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 101, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 115, - 110, - 101, - 103, - 97, - 116, - 105, - 118, - 101, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 115, - 97, - 110, - 97, - 108, - 121, - 115, - 105, - 115, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 100, - 98, - 97, - 110, - 110, - 101, - 114, - 34, - 62, - 112, - 117, - 114, - 99, - 104, - 97, - 115, - 101, - 112, - 111, - 108, - 105, - 99, - 105, - 101, - 115, - 114, - 101, - 103, - 105, - 111, - 110, - 97, - 108, - 99, - 114, - 101, - 97, - 116, - 105, - 118, - 101, - 97, - 114, - 103, - 117, - 109, - 101, - 110, - 116, - 98, - 111, - 111, - 107, - 109, - 97, - 114, - 107, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 114, - 99, - 104, - 101, - 109, - 105, - 99, - 97, - 108, - 100, - 105, - 118, - 105, - 115, - 105, - 111, - 110, - 99, - 97, - 108, - 108, - 98, - 97, - 99, - 107, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 112, - 114, - 111, - 106, - 101, - 99, - 116, - 115, - 99, - 111, - 110, - 102, - 108, - 105, - 99, - 116, - 104, - 97, - 114, - 100, - 119, - 97, - 114, - 101, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 100, - 101, - 108, - 105, - 118, - 101, - 114, - 121, - 109, - 111, - 117, - 110, - 116, - 97, - 105, - 110, - 111, - 98, - 116, - 97, - 105, - 110, - 101, - 100, - 61, - 32, - 102, - 97, - 108, - 115, - 101, - 59, - 102, - 111, - 114, - 40, - 118, - 97, - 114, - 32, - 97, - 99, - 99, - 101, - 112, - 116, - 101, - 100, - 99, - 97, - 112, - 97, - 99, - 105, - 116, - 121, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 105, - 100, - 101, - 110, - 116, - 105, - 116, - 121, - 97, - 105, - 114, - 99, - 114, - 97, - 102, - 116, - 101, - 109, - 112, - 108, - 111, - 121, - 101, - 100, - 112, - 114, - 111, - 112, - 111, - 115, - 101, - 100, - 100, - 111, - 109, - 101, - 115, - 116, - 105, - 99, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 115, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 100, - 104, - 111, - 115, - 112, - 105, - 116, - 97, - 108, - 118, - 101, - 114, - 116, - 105, - 99, - 97, - 108, - 99, - 111, - 108, - 108, - 97, - 112, - 115, - 101, - 97, - 112, - 112, - 114, - 111, - 97, - 99, - 104, - 112, - 97, - 114, - 116, - 110, - 101, - 114, - 115, - 108, - 111, - 103, - 111, - 34, - 62, - 60, - 97, - 100, - 97, - 117, - 103, - 104, - 116, - 101, - 114, - 97, - 117, - 116, - 104, - 111, - 114, - 34, - 32, - 99, - 117, - 108, - 116, - 117, - 114, - 97, - 108, - 102, - 97, - 109, - 105, - 108, - 105, - 101, - 115, - 47, - 105, - 109, - 97, - 103, - 101, - 115, - 47, - 97, - 115, - 115, - 101, - 109, - 98, - 108, - 121, - 112, - 111, - 119, - 101, - 114, - 102, - 117, - 108, - 116, - 101, - 97, - 99, - 104, - 105, - 110, - 103, - 102, - 105, - 110, - 105, - 115, - 104, - 101, - 100, - 100, - 105, - 115, - 116, - 114, - 105, - 99, - 116, - 99, - 114, - 105, - 116, - 105, - 99, - 97, - 108, - 99, - 103, - 105, - 45, - 98, - 105, - 110, - 47, - 112, - 117, - 114, - 112, - 111, - 115, - 101, - 115, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 115, - 101, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 98, - 101, - 99, - 111, - 109, - 105, - 110, - 103, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 115, - 97, - 99, - 97, - 100, - 101, - 109, - 105, - 99, - 101, - 120, - 101, - 114, - 99, - 105, - 115, - 101, - 97, - 99, - 116, - 117, - 97, - 108, - 108, - 121, - 109, - 101, - 100, - 105, - 99, - 105, - 110, - 101, - 99, - 111, - 110, - 115, - 116, - 97, - 110, - 116, - 97, - 99, - 99, - 105, - 100, - 101, - 110, - 116, - 77, - 97, - 103, - 97, - 122, - 105, - 110, - 101, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 115, - 116, - 97, - 114, - 116, - 105, - 110, - 103, - 98, - 111, - 116, - 116, - 111, - 109, - 34, - 62, - 111, - 98, - 115, - 101, - 114, - 118, - 101, - 100, - 58, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 101, - 120, - 116, - 101, - 110, - 100, - 101, - 100, - 112, - 114, - 101, - 118, - 105, - 111, - 117, - 115, - 83, - 111, - 102, - 116, - 119, - 97, - 114, - 101, - 99, - 117, - 115, - 116, - 111, - 109, - 101, - 114, - 100, - 101, - 99, - 105, - 115, - 105, - 111, - 110, - 115, - 116, - 114, - 101, - 110, - 103, - 116, - 104, - 100, - 101, - 116, - 97, - 105, - 108, - 101, - 100, - 115, - 108, - 105, - 103, - 104, - 116, - 108, - 121, - 112, - 108, - 97, - 110, - 110, - 105, - 110, - 103, - 116, - 101, - 120, - 116, - 97, - 114, - 101, - 97, - 99, - 117, - 114, - 114, - 101, - 110, - 99, - 121, - 101, - 118, - 101, - 114, - 121, - 111, - 110, - 101, - 115, - 116, - 114, - 97, - 105, - 103, - 104, - 116, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 112, - 111, - 115, - 105, - 116, - 105, - 118, - 101, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 104, - 101, - 114, - 105, - 116, - 97, - 103, - 101, - 115, - 104, - 105, - 112, - 112, - 105, - 110, - 103, - 97, - 98, - 115, - 111, - 108, - 117, - 116, - 101, - 114, - 101, - 99, - 101, - 105, - 118, - 101, - 100, - 114, - 101, - 108, - 101, - 118, - 97, - 110, - 116, - 98, - 117, - 116, - 116, - 111, - 110, - 34, - 32, - 118, - 105, - 111, - 108, - 101, - 110, - 99, - 101, - 97, - 110, - 121, - 119, - 104, - 101, - 114, - 101, - 98, - 101, - 110, - 101, - 102, - 105, - 116, - 115, - 108, - 97, - 117, - 110, - 99, - 104, - 101, - 100, - 114, - 101, - 99, - 101, - 110, - 116, - 108, - 121, - 97, - 108, - 108, - 105, - 97, - 110, - 99, - 101, - 102, - 111, - 108, - 108, - 111, - 119, - 101, - 100, - 109, - 117, - 108, - 116, - 105, - 112, - 108, - 101, - 98, - 117, - 108, - 108, - 101, - 116, - 105, - 110, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 100, - 111, - 99, - 99, - 117, - 114, - 114, - 101, - 100, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 108, - 36, - 40, - 116, - 104, - 105, - 115, - 41, - 46, - 114, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 62, - 60, - 116, - 114, - 62, - 60, - 116, - 100, - 99, - 111, - 110, - 103, - 114, - 101, - 115, - 115, - 114, - 101, - 99, - 111, - 114, - 100, - 101, - 100, - 117, - 108, - 116, - 105, - 109, - 97, - 116, - 101, - 115, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 60, - 117, - 108, - 32, - 105, - 100, - 61, - 34, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 72, - 111, - 109, - 101, - 60, - 47, - 97, - 62, - 119, - 101, - 98, - 115, - 105, - 116, - 101, - 115, - 110, - 101, - 116, - 119, - 111, - 114, - 107, - 115, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 101, - 110, - 116, - 105, - 114, - 101, - 108, - 121, - 109, - 101, - 109, - 111, - 114, - 105, - 97, - 108, - 109, - 101, - 115, - 115, - 97, - 103, - 101, - 115, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 97, - 99, - 116, - 105, - 118, - 101, - 34, - 62, - 115, - 111, - 109, - 101, - 119, - 104, - 97, - 116, - 118, - 105, - 99, - 116, - 111, - 114, - 105, - 97, - 87, - 101, - 115, - 116, - 101, - 114, - 110, - 32, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 76, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 110, - 116, - 114, - 97, - 99, - 116, - 118, - 105, - 115, - 105, - 116, - 111, - 114, - 115, - 68, - 111, - 119, - 110, - 108, - 111, - 97, - 100, - 119, - 105, - 116, - 104, - 111, - 117, - 116, - 32, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 10, - 109, - 101, - 97, - 115, - 117, - 114, - 101, - 115, - 119, - 105, - 100, - 116, - 104, - 32, - 61, - 32, - 118, - 97, - 114, - 105, - 97, - 98, - 108, - 101, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 100, - 118, - 105, - 114, - 103, - 105, - 110, - 105, - 97, - 110, - 111, - 114, - 109, - 97, - 108, - 108, - 121, - 104, - 97, - 112, - 112, - 101, - 110, - 101, - 100, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 115, - 115, - 116, - 97, - 110, - 100, - 105, - 110, - 103, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 82, - 101, - 103, - 105, - 115, - 116, - 101, - 114, - 112, - 114, - 101, - 112, - 97, - 114, - 101, - 100, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 115, - 97, - 99, - 99, - 117, - 114, - 97, - 116, - 101, - 98, - 105, - 114, - 116, - 104, - 100, - 97, - 121, - 115, - 116, - 114, - 97, - 116, - 101, - 103, - 121, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 103, - 114, - 97, - 112, - 104, - 105, - 99, - 115, - 99, - 114, - 105, - 109, - 105, - 110, - 97, - 108, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 121, - 99, - 111, - 110, - 115, - 117, - 109, - 101, - 114, - 80, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 115, - 112, - 101, - 97, - 107, - 105, - 110, - 103, - 118, - 97, - 108, - 105, - 100, - 97, - 116, - 101, - 97, - 99, - 104, - 105, - 101, - 118, - 101, - 100, - 46, - 106, - 112, - 103, - 34, - 32, - 47, - 62, - 109, - 97, - 99, - 104, - 105, - 110, - 101, - 115, - 60, - 47, - 104, - 50, - 62, - 10, - 32, - 32, - 107, - 101, - 121, - 119, - 111, - 114, - 100, - 115, - 102, - 114, - 105, - 101, - 110, - 100, - 108, - 121, - 98, - 114, - 111, - 116, - 104, - 101, - 114, - 115, - 99, - 111, - 109, - 98, - 105, - 110, - 101, - 100, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 99, - 111, - 109, - 112, - 111, - 115, - 101, - 100, - 101, - 120, - 112, - 101, - 99, - 116, - 101, - 100, - 97, - 100, - 101, - 113, - 117, - 97, - 116, - 101, - 112, - 97, - 107, - 105, - 115, - 116, - 97, - 110, - 102, - 111, - 108, - 108, - 111, - 119, - 34, - 32, - 118, - 97, - 108, - 117, - 97, - 98, - 108, - 101, - 60, - 47, - 108, - 97, - 98, - 101, - 108, - 62, - 114, - 101, - 108, - 97, - 116, - 105, - 118, - 101, - 98, - 114, - 105, - 110, - 103, - 105, - 110, - 103, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 101, - 103, - 111, - 118, - 101, - 114, - 110, - 111, - 114, - 112, - 108, - 117, - 103, - 105, - 110, - 115, - 47, - 76, - 105, - 115, - 116, - 32, - 111, - 102, - 32, - 72, - 101, - 97, - 100, - 101, - 114, - 34, - 62, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 32, - 40, - 38, - 113, - 117, - 111, - 116, - 59, - 103, - 114, - 97, - 100, - 117, - 97, - 116, - 101, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 99, - 111, - 109, - 109, - 101, - 114, - 99, - 101, - 109, - 97, - 108, - 97, - 121, - 115, - 105, - 97, - 100, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 109, - 97, - 105, - 110, - 116, - 97, - 105, - 110, - 59, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 115, - 99, - 104, - 101, - 100, - 117, - 108, - 101, - 99, - 104, - 97, - 110, - 103, - 105, - 110, - 103, - 98, - 97, - 99, - 107, - 32, - 116, - 111, - 32, - 99, - 97, - 116, - 104, - 111, - 108, - 105, - 99, - 112, - 97, - 116, - 116, - 101, - 114, - 110, - 115, - 99, - 111, - 108, - 111, - 114, - 58, - 32, - 35, - 103, - 114, - 101, - 97, - 116, - 101, - 115, - 116, - 115, - 117, - 112, - 112, - 108, - 105, - 101, - 115, - 114, - 101, - 108, - 105, - 97, - 98, - 108, - 101, - 60, - 47, - 117, - 108, - 62, - 10, - 9, - 9, - 60, - 115, - 101, - 108, - 101, - 99, - 116, - 32, - 99, - 105, - 116, - 105, - 122, - 101, - 110, - 115, - 99, - 108, - 111, - 116, - 104, - 105, - 110, - 103, - 119, - 97, - 116, - 99, - 104, - 105, - 110, - 103, - 60, - 108, - 105, - 32, - 105, - 100, - 61, - 34, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 99, - 99, - 97, - 114, - 114, - 121, - 105, - 110, - 103, - 115, - 101, - 110, - 116, - 101, - 110, - 99, - 101, - 60, - 99, - 101, - 110, - 116, - 101, - 114, - 62, - 99, - 111, - 110, - 116, - 114, - 97, - 115, - 116, - 116, - 104, - 105, - 110, - 107, - 105, - 110, - 103, - 99, - 97, - 116, - 99, - 104, - 40, - 101, - 41, - 115, - 111, - 117, - 116, - 104, - 101, - 114, - 110, - 77, - 105, - 99, - 104, - 97, - 101, - 108, - 32, - 109, - 101, - 114, - 99, - 104, - 97, - 110, - 116, - 99, - 97, - 114, - 111, - 117, - 115, - 101, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 105, - 110, - 116, - 101, - 114, - 105, - 111, - 114, - 46, - 115, - 112, - 108, - 105, - 116, - 40, - 34, - 108, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 79, - 99, - 116, - 111, - 98, - 101, - 114, - 32, - 41, - 123, - 114, - 101, - 116, - 117, - 114, - 110, - 105, - 109, - 112, - 114, - 111, - 118, - 101, - 100, - 45, - 45, - 38, - 103, - 116, - 59, - 10, - 10, - 99, - 111, - 118, - 101, - 114, - 97, - 103, - 101, - 99, - 104, - 97, - 105, - 114, - 109, - 97, - 110, - 46, - 112, - 110, - 103, - 34, - 32, - 47, - 62, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 115, - 82, - 105, - 99, - 104, - 97, - 114, - 100, - 32, - 119, - 104, - 97, - 116, - 101, - 118, - 101, - 114, - 112, - 114, - 111, - 98, - 97, - 98, - 108, - 121, - 114, - 101, - 99, - 111, - 118, - 101, - 114, - 121, - 98, - 97, - 115, - 101, - 98, - 97, - 108, - 108, - 106, - 117, - 100, - 103, - 109, - 101, - 110, - 116, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 46, - 46, - 99, - 115, - 115, - 34, - 32, - 47, - 62, - 32, - 119, - 101, - 98, - 115, - 105, - 116, - 101, - 114, - 101, - 112, - 111, - 114, - 116, - 101, - 100, - 100, - 101, - 102, - 97, - 117, - 108, - 116, - 34, - 47, - 62, - 60, - 47, - 97, - 62, - 13, - 10, - 101, - 108, - 101, - 99, - 116, - 114, - 105, - 99, - 115, - 99, - 111, - 116, - 108, - 97, - 110, - 100, - 99, - 114, - 101, - 97, - 116, - 105, - 111, - 110, - 113, - 117, - 97, - 110, - 116, - 105, - 116, - 121, - 46, - 32, - 73, - 83, - 66, - 78, - 32, - 48, - 100, - 105, - 100, - 32, - 110, - 111, - 116, - 32, - 105, - 110, - 115, - 116, - 97, - 110, - 99, - 101, - 45, - 115, - 101, - 97, - 114, - 99, - 104, - 45, - 34, - 32, - 108, - 97, - 110, - 103, - 61, - 34, - 115, - 112, - 101, - 97, - 107, - 101, - 114, - 115, - 67, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 115, - 97, - 114, - 99, - 104, - 105, - 118, - 101, - 115, - 109, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 114, - 101, - 97, - 99, - 116, - 105, - 111, - 110, - 100, - 105, - 115, - 99, - 111, - 117, - 110, - 116, - 73, - 116, - 97, - 108, - 105, - 97, - 110, - 111, - 99, - 114, - 105, - 116, - 101, - 114, - 105, - 97, - 115, - 116, - 114, - 111, - 110, - 103, - 108, - 121, - 58, - 32, - 39, - 104, - 116, - 116, - 112, - 58, - 39, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 99, - 111, - 118, - 101, - 114, - 105, - 110, - 103, - 111, - 102, - 102, - 101, - 114, - 105, - 110, - 103, - 97, - 112, - 112, - 101, - 97, - 114, - 101, - 100, - 66, - 114, - 105, - 116, - 105, - 115, - 104, - 32, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 121, - 70, - 97, - 99, - 101, - 98, - 111, - 111, - 107, - 110, - 117, - 109, - 101, - 114, - 111, - 117, - 115, - 118, - 101, - 104, - 105, - 99, - 108, - 101, - 115, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 115, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 104, - 97, - 110, - 100, - 108, - 105, - 110, - 103, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 87, - 105, - 108, - 108, - 105, - 97, - 109, - 32, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 114, - 95, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 97, - 99, - 99, - 117, - 114, - 97, - 99, - 121, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 97, - 110, - 100, - 101, - 114, - 115, - 111, - 110, - 102, - 108, - 101, - 120, - 105, - 98, - 108, - 101, - 67, - 97, - 116, - 101, - 103, - 111, - 114, - 121, - 108, - 97, - 119, - 114, - 101, - 110, - 99, - 101, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 108, - 97, - 121, - 111, - 117, - 116, - 61, - 34, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 100, - 32, - 109, - 97, - 120, - 105, - 109, - 117, - 109, - 104, - 101, - 97, - 100, - 101, - 114, - 34, - 62, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 83, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 104, - 97, - 109, - 105, - 108, - 116, - 111, - 110, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 32, - 99, - 97, - 110, - 97, - 100, - 105, - 97, - 110, - 99, - 104, - 97, - 110, - 110, - 101, - 108, - 115, - 47, - 116, - 104, - 101, - 109, - 101, - 115, - 47, - 47, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 111, - 112, - 116, - 105, - 111, - 110, - 97, - 108, - 112, - 111, - 114, - 116, - 117, - 103, - 97, - 108, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 34, - 105, - 110, - 116, - 101, - 114, - 118, - 97, - 108, - 119, - 105, - 114, - 101, - 108, - 101, - 115, - 115, - 101, - 110, - 116, - 105, - 116, - 108, - 101, - 100, - 97, - 103, - 101, - 110, - 99, - 105, - 101, - 115, - 83, - 101, - 97, - 114, - 99, - 104, - 34, - 32, - 109, - 101, - 97, - 115, - 117, - 114, - 101, - 100, - 116, - 104, - 111, - 117, - 115, - 97, - 110, - 100, - 115, - 112, - 101, - 110, - 100, - 105, - 110, - 103, - 38, - 104, - 101, - 108, - 108, - 105, - 112, - 59, - 110, - 101, - 119, - 32, - 68, - 97, - 116, - 101, - 34, - 32, - 115, - 105, - 122, - 101, - 61, - 34, - 112, - 97, - 103, - 101, - 78, - 97, - 109, - 101, - 109, - 105, - 100, - 100, - 108, - 101, - 34, - 32, - 34, - 32, - 47, - 62, - 60, - 47, - 97, - 62, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 62, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 111, - 118, - 101, - 114, - 102, - 108, - 111, - 119, - 111, - 112, - 105, - 110, - 105, - 111, - 110, - 115, - 105, - 108, - 108, - 105, - 110, - 111, - 105, - 115, - 108, - 105, - 110, - 107, - 115, - 34, - 62, - 10, - 9, - 60, - 116, - 105, - 116, - 108, - 101, - 62, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 115, - 115, - 97, - 116, - 117, - 114, - 100, - 97, - 121, - 116, - 101, - 114, - 109, - 105, - 110, - 97, - 108, - 105, - 116, - 101, - 109, - 112, - 114, - 111, - 112, - 101, - 110, - 103, - 105, - 110, - 101, - 101, - 114, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 114, - 112, - 114, - 111, - 112, - 111, - 115, - 97, - 108, - 61, - 34, - 102, - 97, - 108, - 115, - 101, - 34, - 69, - 115, - 112, - 97, - 195, - 177, - 111, - 108, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 115, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 101, - 114, - 38, - 113, - 117, - 111, - 116, - 59, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 121, - 109, - 112, - 116, - 111, - 109, - 115, - 111, - 114, - 105, - 101, - 110, - 116, - 101, - 100, - 114, - 101, - 115, - 111, - 117, - 114, - 99, - 101, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 60, - 112, - 108, - 101, - 97, - 115, - 117, - 114, - 101, - 115, - 116, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 105, - 115, - 116, - 111, - 114, - 121, - 46, - 108, - 101, - 97, - 118, - 105, - 110, - 103, - 32, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 115, - 99, - 101, - 110, - 116, - 101, - 114, - 34, - 62, - 46, - 10, - 10, - 83, - 111, - 109, - 101, - 32, - 100, - 105, - 114, - 101, - 99, - 116, - 101, - 100, - 115, - 117, - 105, - 116, - 97, - 98, - 108, - 101, - 98, - 117, - 108, - 103, - 97, - 114, - 105, - 97, - 46, - 115, - 104, - 111, - 119, - 40, - 41, - 59, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 71, - 101, - 110, - 101, - 114, - 97, - 108, - 32, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 115, - 69, - 120, - 97, - 109, - 112, - 108, - 101, - 115, - 119, - 105, - 108, - 108, - 105, - 97, - 109, - 115, - 79, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 34, - 62, - 60, - 115, - 112, - 97, - 110, - 62, - 115, - 101, - 97, - 114, - 99, - 104, - 34, - 62, - 111, - 112, - 101, - 114, - 97, - 116, - 111, - 114, - 114, - 101, - 113, - 117, - 101, - 115, - 116, - 115, - 97, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 97, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 68, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 114, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 46, - 32, - 10, - 10, - 84, - 104, - 101, - 32, - 121, - 111, - 117, - 114, - 115, - 101, - 108, - 102, - 67, - 111, - 110, - 116, - 97, - 99, - 116, - 32, - 109, - 105, - 99, - 104, - 105, - 103, - 97, - 110, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 99, - 111, - 108, - 117, - 109, - 98, - 105, - 97, - 112, - 114, - 105, - 111, - 114, - 105, - 116, - 121, - 112, - 114, - 105, - 110, - 116, - 105, - 110, - 103, - 100, - 114, - 105, - 110, - 107, - 105, - 110, - 103, - 102, - 97, - 99, - 105, - 108, - 105, - 116, - 121, - 114, - 101, - 116, - 117, - 114, - 110, - 101, - 100, - 67, - 111, - 110, - 116, - 101, - 110, - 116, - 32, - 111, - 102, - 102, - 105, - 99, - 101, - 114, - 115, - 82, - 117, - 115, - 115, - 105, - 97, - 110, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 101, - 45, - 56, - 56, - 53, - 57, - 45, - 49, - 34, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 101, - 102, - 97, - 109, - 105, - 108, - 105, - 97, - 114, - 32, - 113, - 117, - 97, - 108, - 105, - 116, - 121, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 48, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 118, - 105, - 101, - 119, - 112, - 111, - 114, - 116, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 115, - 45, - 116, - 105, - 116, - 108, - 101, - 34, - 62, - 112, - 111, - 114, - 116, - 97, - 98, - 108, - 101, - 46, - 108, - 101, - 110, - 103, - 116, - 104, - 32, - 101, - 108, - 105, - 103, - 105, - 98, - 108, - 101, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 115, - 97, - 116, - 108, - 97, - 110, - 116, - 105, - 99, - 111, - 110, - 108, - 111, - 97, - 100, - 61, - 34, - 100, - 101, - 102, - 97, - 117, - 108, - 116, - 46, - 115, - 117, - 112, - 112, - 108, - 105, - 101, - 100, - 112, - 97, - 121, - 109, - 101, - 110, - 116, - 115, - 103, - 108, - 111, - 115, - 115, - 97, - 114, - 121, - 10, - 10, - 65, - 102, - 116, - 101, - 114, - 32, - 103, - 117, - 105, - 100, - 97, - 110, - 99, - 101, - 60, - 47, - 116, - 100, - 62, - 60, - 116, - 100, - 101, - 110, - 99, - 111, - 100, - 105, - 110, - 103, - 109, - 105, - 100, - 100, - 108, - 101, - 34, - 62, - 99, - 97, - 109, - 101, - 32, - 116, - 111, - 32, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 115, - 115, - 99, - 111, - 116, - 116, - 105, - 115, - 104, - 106, - 111, - 110, - 97, - 116, - 104, - 97, - 110, - 109, - 97, - 106, - 111, - 114, - 105, - 116, - 121, - 119, - 105, - 100, - 103, - 101, - 116, - 115, - 46, - 99, - 108, - 105, - 110, - 105, - 99, - 97, - 108, - 116, - 104, - 97, - 105, - 108, - 97, - 110, - 100, - 116, - 101, - 97, - 99, - 104, - 101, - 114, - 115, - 60, - 104, - 101, - 97, - 100, - 62, - 10, - 9, - 97, - 102, - 102, - 101, - 99, - 116, - 101, - 100, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 115, - 112, - 111, - 105, - 110, - 116, - 101, - 114, - 59, - 116, - 111, - 83, - 116, - 114, - 105, - 110, - 103, - 60, - 47, - 115, - 109, - 97, - 108, - 108, - 62, - 111, - 107, - 108, - 97, - 104, - 111, - 109, - 97, - 119, - 105, - 108, - 108, - 32, - 98, - 101, - 32, - 105, - 110, - 118, - 101, - 115, - 116, - 111, - 114, - 48, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 104, - 111, - 108, - 105, - 100, - 97, - 121, - 115, - 82, - 101, - 115, - 111, - 117, - 114, - 99, - 101, - 108, - 105, - 99, - 101, - 110, - 115, - 101, - 100, - 32, - 40, - 119, - 104, - 105, - 99, - 104, - 32, - 46, - 32, - 65, - 102, - 116, - 101, - 114, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 118, - 105, - 115, - 105, - 116, - 105, - 110, - 103, - 101, - 120, - 112, - 108, - 111, - 114, - 101, - 114, - 112, - 114, - 105, - 109, - 97, - 114, - 121, - 32, - 115, - 101, - 97, - 114, - 99, - 104, - 34, - 32, - 97, - 110, - 100, - 114, - 111, - 105, - 100, - 34, - 113, - 117, - 105, - 99, - 107, - 108, - 121, - 32, - 109, - 101, - 101, - 116, - 105, - 110, - 103, - 115, - 101, - 115, - 116, - 105, - 109, - 97, - 116, - 101, - 59, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 59, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 97, - 112, - 112, - 114, - 111, - 118, - 97, - 108, - 44, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 99, - 104, - 101, - 99, - 107, - 101, - 100, - 46, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 109, - 97, - 103, - 110, - 101, - 116, - 105, - 99, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 104, - 102, - 111, - 114, - 101, - 99, - 97, - 115, - 116, - 46, - 32, - 87, - 104, - 105, - 108, - 101, - 32, - 116, - 104, - 117, - 114, - 115, - 100, - 97, - 121, - 100, - 118, - 101, - 114, - 116, - 105, - 115, - 101, - 38, - 101, - 97, - 99, - 117, - 116, - 101, - 59, - 104, - 97, - 115, - 67, - 108, - 97, - 115, - 115, - 101, - 118, - 97, - 108, - 117, - 97, - 116, - 101, - 111, - 114, - 100, - 101, - 114, - 105, - 110, - 103, - 101, - 120, - 105, - 115, - 116, - 105, - 110, - 103, - 112, - 97, - 116, - 105, - 101, - 110, - 116, - 115, - 32, - 79, - 110, - 108, - 105, - 110, - 101, - 32, - 99, - 111, - 108, - 111, - 114, - 97, - 100, - 111, - 79, - 112, - 116, - 105, - 111, - 110, - 115, - 34, - 99, - 97, - 109, - 112, - 98, - 101, - 108, - 108, - 60, - 33, - 45, - 45, - 32, - 101, - 110, - 100, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 60, - 98, - 114, - 32, - 47, - 62, - 13, - 10, - 95, - 112, - 111, - 112, - 117, - 112, - 115, - 124, - 115, - 99, - 105, - 101, - 110, - 99, - 101, - 115, - 44, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 113, - 117, - 97, - 108, - 105, - 116, - 121, - 32, - 87, - 105, - 110, - 100, - 111, - 119, - 115, - 32, - 97, - 115, - 115, - 105, - 103, - 110, - 101, - 100, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 32, - 60, - 98, - 32, - 99, - 108, - 97, - 115, - 115, - 108, - 101, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 32, - 67, - 111, - 109, - 112, - 97, - 110, - 121, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 115, - 60, - 105, - 102, - 114, - 97, - 109, - 101, - 32, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 115, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 115, - 109, - 97, - 114, - 115, - 104, - 97, - 108, - 108, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 32, - 112, - 114, - 111, - 112, - 101, - 114, - 108, - 121, - 41, - 46, - 10, - 10, - 84, - 104, - 101, - 32, - 116, - 97, - 120, - 111, - 110, - 111, - 109, - 121, - 109, - 117, - 99, - 104, - 32, - 111, - 102, - 32, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 10, - 34, - 32, - 100, - 97, - 116, - 97, - 45, - 115, - 114, - 116, - 117, - 103, - 117, - 195, - 170, - 115, - 115, - 99, - 114, - 111, - 108, - 108, - 84, - 111, - 32, - 112, - 114, - 111, - 106, - 101, - 99, - 116, - 60, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 97, - 116, - 116, - 111, - 114, - 110, - 101, - 121, - 101, - 109, - 112, - 104, - 97, - 115, - 105, - 115, - 115, - 112, - 111, - 110, - 115, - 111, - 114, - 115, - 102, - 97, - 110, - 99, - 121, - 98, - 111, - 120, - 119, - 111, - 114, - 108, - 100, - 39, - 115, - 32, - 119, - 105, - 108, - 100, - 108, - 105, - 102, - 101, - 99, - 104, - 101, - 99, - 107, - 101, - 100, - 61, - 115, - 101, - 115, - 115, - 105, - 111, - 110, - 115, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 112, - 120, - 59, - 102, - 111, - 110, - 116, - 45, - 32, - 80, - 114, - 111, - 106, - 101, - 99, - 116, - 106, - 111, - 117, - 114, - 110, - 97, - 108, - 115, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 100, - 118, - 97, - 99, - 97, - 116, - 105, - 111, - 110, - 116, - 104, - 111, - 109, - 112, - 115, - 111, - 110, - 108, - 105, - 103, - 104, - 116, - 105, - 110, - 103, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 48, - 99, - 104, - 101, - 99, - 107, - 105, - 110, - 103, - 60, - 47, - 116, - 98, - 111, - 100, - 121, - 62, - 60, - 98, - 117, - 116, - 116, - 111, - 110, - 32, - 67, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 99, - 108, - 101, - 97, - 114, - 102, - 105, - 120, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 10, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 32, - 60, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 102, - 105, - 110, - 100, - 105, - 110, - 103, - 115, - 114, - 111, - 108, - 101, - 32, - 105, - 110, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 32, - 32, - 79, - 99, - 116, - 111, - 98, - 101, - 114, - 119, - 101, - 98, - 115, - 105, - 116, - 101, - 32, - 101, - 120, - 112, - 111, - 115, - 117, - 114, - 101, - 117, - 115, - 101, - 100, - 32, - 116, - 111, - 32, - 32, - 99, - 104, - 97, - 110, - 103, - 101, - 115, - 111, - 112, - 101, - 114, - 97, - 116, - 101, - 100, - 99, - 108, - 105, - 99, - 107, - 105, - 110, - 103, - 101, - 110, - 116, - 101, - 114, - 105, - 110, - 103, - 99, - 111, - 109, - 109, - 97, - 110, - 100, - 115, - 105, - 110, - 102, - 111, - 114, - 109, - 101, - 100, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 115, - 32, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 99, - 114, - 101, - 97, - 116, - 105, - 110, - 103, - 111, - 110, - 83, - 117, - 98, - 109, - 105, - 116, - 109, - 97, - 114, - 121, - 108, - 97, - 110, - 100, - 99, - 111, - 108, - 108, - 101, - 103, - 101, - 115, - 97, - 110, - 97, - 108, - 121, - 116, - 105, - 99, - 108, - 105, - 115, - 116, - 105, - 110, - 103, - 115, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 46, - 108, - 111, - 103, - 103, - 101, - 100, - 73, - 110, - 97, - 100, - 118, - 105, - 115, - 111, - 114, - 121, - 115, - 105, - 98, - 108, - 105, - 110, - 103, - 115, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 115, - 38, - 113, - 117, - 111, - 116, - 59, - 41, - 115, - 46, - 32, - 84, - 104, - 105, - 115, - 32, - 112, - 97, - 99, - 107, - 97, - 103, - 101, - 115, - 99, - 104, - 101, - 99, - 107, - 98, - 111, - 120, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 115, - 112, - 114, - 101, - 103, - 110, - 97, - 110, - 116, - 116, - 111, - 109, - 111, - 114, - 114, - 111, - 119, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 105, - 99, - 111, - 110, - 46, - 112, - 110, - 103, - 106, - 97, - 112, - 97, - 110, - 101, - 115, - 101, - 99, - 111, - 100, - 101, - 98, - 97, - 115, - 101, - 98, - 117, - 116, - 116, - 111, - 110, - 34, - 62, - 103, - 97, - 109, - 98, - 108, - 105, - 110, - 103, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 32, - 44, - 32, - 119, - 104, - 105, - 108, - 101, - 32, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 32, - 109, - 105, - 115, - 115, - 111, - 117, - 114, - 105, - 115, - 112, - 111, - 114, - 116, - 105, - 110, - 103, - 116, - 111, - 112, - 58, - 49, - 112, - 120, - 32, - 46, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 115, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 50, - 108, - 97, - 122, - 121, - 108, - 111, - 97, - 100, - 110, - 111, - 118, - 101, - 109, - 98, - 101, - 114, - 117, - 115, - 101, - 100, - 32, - 105, - 110, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 99, - 114, - 105, - 112, - 116, - 34, - 62, - 10, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 60, - 116, - 114, - 62, - 60, - 116, - 100, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 50, - 47, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 99, - 111, - 117, - 110, - 116, - 114, - 121, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 32, - 102, - 111, - 111, - 116, - 101, - 114, - 34, - 32, - 38, - 108, - 116, - 59, - 33, - 45, - 45, - 32, - 116, - 105, - 116, - 108, - 101, - 34, - 62, - 60, - 47, - 106, - 113, - 117, - 101, - 114, - 121, - 46, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 10, - 40, - 231, - 174, - 128, - 228, - 189, - 147, - 41, - 40, - 231, - 185, - 129, - 233, - 171, - 148, - 41, - 104, - 114, - 118, - 97, - 116, - 115, - 107, - 105, - 105, - 116, - 97, - 108, - 105, - 97, - 110, - 111, - 114, - 111, - 109, - 195, - 162, - 110, - 196, - 131, - 116, - 195, - 188, - 114, - 107, - 195, - 167, - 101, - 216, - 167, - 216, - 177, - 216, - 175, - 217, - 136, - 116, - 97, - 109, - 98, - 105, - 195, - 169, - 110, - 110, - 111, - 116, - 105, - 99, - 105, - 97, - 115, - 109, - 101, - 110, - 115, - 97, - 106, - 101, - 115, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 115, - 100, - 101, - 114, - 101, - 99, - 104, - 111, - 115, - 110, - 97, - 99, - 105, - 111, - 110, - 97, - 108, - 115, - 101, - 114, - 118, - 105, - 99, - 105, - 111, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 111, - 117, - 115, - 117, - 97, - 114, - 105, - 111, - 115, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 97, - 103, - 111, - 98, - 105, - 101, - 114, - 110, - 111, - 101, - 109, - 112, - 114, - 101, - 115, - 97, - 115, - 97, - 110, - 117, - 110, - 99, - 105, - 111, - 115, - 118, - 97, - 108, - 101, - 110, - 99, - 105, - 97, - 99, - 111, - 108, - 111, - 109, - 98, - 105, - 97, - 100, - 101, - 115, - 112, - 117, - 195, - 169, - 115, - 100, - 101, - 112, - 111, - 114, - 116, - 101, - 115, - 112, - 114, - 111, - 121, - 101, - 99, - 116, - 111, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 111, - 112, - 195, - 186, - 98, - 108, - 105, - 99, - 111, - 110, - 111, - 115, - 111, - 116, - 114, - 111, - 115, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 97, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 109, - 105, - 108, - 108, - 111, - 110, - 101, - 115, - 109, - 101, - 100, - 105, - 97, - 110, - 116, - 101, - 112, - 114, - 101, - 103, - 117, - 110, - 116, - 97, - 97, - 110, - 116, - 101, - 114, - 105, - 111, - 114, - 114, - 101, - 99, - 117, - 114, - 115, - 111, - 115, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 97, - 115, - 97, - 110, - 116, - 105, - 97, - 103, - 111, - 110, - 117, - 101, - 115, - 116, - 114, - 111, - 115, - 111, - 112, - 105, - 110, - 105, - 195, - 179, - 110, - 105, - 109, - 112, - 114, - 105, - 109, - 105, - 114, - 109, - 105, - 101, - 110, - 116, - 114, - 97, - 115, - 97, - 109, - 195, - 169, - 114, - 105, - 99, - 97, - 118, - 101, - 110, - 100, - 101, - 100, - 111, - 114, - 115, - 111, - 99, - 105, - 101, - 100, - 97, - 100, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 111, - 114, - 101, - 97, - 108, - 105, - 122, - 97, - 114, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 111, - 112, - 97, - 108, - 97, - 98, - 114, - 97, - 115, - 105, - 110, - 116, - 101, - 114, - 195, - 169, - 115, - 101, - 110, - 116, - 111, - 110, - 99, - 101, - 115, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 109, - 105, - 101, - 109, - 98, - 114, - 111, - 115, - 114, - 101, - 97, - 108, - 105, - 100, - 97, - 100, - 99, - 195, - 179, - 114, - 100, - 111, - 98, - 97, - 122, - 97, - 114, - 97, - 103, - 111, - 122, - 97, - 112, - 195, - 161, - 103, - 105, - 110, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 108, - 101, - 115, - 98, - 108, - 111, - 113, - 117, - 101, - 97, - 114, - 103, - 101, - 115, - 116, - 105, - 195, - 179, - 110, - 97, - 108, - 113, - 117, - 105, - 108, - 101, - 114, - 115, - 105, - 115, - 116, - 101, - 109, - 97, - 115, - 99, - 105, - 101, - 110, - 99, - 105, - 97, - 115, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 111, - 118, - 101, - 114, - 115, - 105, - 195, - 179, - 110, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 97, - 101, - 115, - 116, - 117, - 100, - 105, - 111, - 115, - 112, - 195, - 186, - 98, - 108, - 105, - 99, - 97, - 111, - 98, - 106, - 101, - 116, - 105, - 118, - 111, - 97, - 108, - 105, - 99, - 97, - 110, - 116, - 101, - 98, - 117, - 115, - 99, - 97, - 100, - 111, - 114, - 99, - 97, - 110, - 116, - 105, - 100, - 97, - 100, - 101, - 110, - 116, - 114, - 97, - 100, - 97, - 115, - 97, - 99, - 99, - 105, - 111, - 110, - 101, - 115, - 97, - 114, - 99, - 104, - 105, - 118, - 111, - 115, - 115, - 117, - 112, - 101, - 114, - 105, - 111, - 114, - 109, - 97, - 121, - 111, - 114, - 195, - 173, - 97, - 97, - 108, - 101, - 109, - 97, - 110, - 105, - 97, - 102, - 117, - 110, - 99, - 105, - 195, - 179, - 110, - 195, - 186, - 108, - 116, - 105, - 109, - 111, - 115, - 104, - 97, - 99, - 105, - 101, - 110, - 100, - 111, - 97, - 113, - 117, - 101, - 108, - 108, - 111, - 115, - 101, - 100, - 105, - 99, - 105, - 195, - 179, - 110, - 102, - 101, - 114, - 110, - 97, - 110, - 100, - 111, - 97, - 109, - 98, - 105, - 101, - 110, - 116, - 101, - 102, - 97, - 99, - 101, - 98, - 111, - 111, - 107, - 110, - 117, - 101, - 115, - 116, - 114, - 97, - 115, - 99, - 108, - 105, - 101, - 110, - 116, - 101, - 115, - 112, - 114, - 111, - 99, - 101, - 115, - 111, - 115, - 98, - 97, - 115, - 116, - 97, - 110, - 116, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 114, - 101, - 112, - 111, - 114, - 116, - 97, - 114, - 99, - 111, - 110, - 103, - 114, - 101, - 115, - 111, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 114, - 99, - 111, - 109, - 101, - 114, - 99, - 105, - 111, - 99, - 111, - 110, - 116, - 114, - 97, - 116, - 111, - 106, - 195, - 179, - 118, - 101, - 110, - 101, - 115, - 100, - 105, - 115, - 116, - 114, - 105, - 116, - 111, - 116, - 195, - 169, - 99, - 110, - 105, - 99, - 97, - 99, - 111, - 110, - 106, - 117, - 110, - 116, - 111, - 101, - 110, - 101, - 114, - 103, - 195, - 173, - 97, - 116, - 114, - 97, - 98, - 97, - 106, - 97, - 114, - 97, - 115, - 116, - 117, - 114, - 105, - 97, - 115, - 114, - 101, - 99, - 105, - 101, - 110, - 116, - 101, - 117, - 116, - 105, - 108, - 105, - 122, - 97, - 114, - 98, - 111, - 108, - 101, - 116, - 195, - 173, - 110, - 115, - 97, - 108, - 118, - 97, - 100, - 111, - 114, - 99, - 111, - 114, - 114, - 101, - 99, - 116, - 97, - 116, - 114, - 97, - 98, - 97, - 106, - 111, - 115, - 112, - 114, - 105, - 109, - 101, - 114, - 111, - 115, - 110, - 101, - 103, - 111, - 99, - 105, - 111, - 115, - 108, - 105, - 98, - 101, - 114, - 116, - 97, - 100, - 100, - 101, - 116, - 97, - 108, - 108, - 101, - 115, - 112, - 97, - 110, - 116, - 97, - 108, - 108, - 97, - 112, - 114, - 195, - 179, - 120, - 105, - 109, - 111, - 97, - 108, - 109, - 101, - 114, - 195, - 173, - 97, - 97, - 110, - 105, - 109, - 97, - 108, - 101, - 115, - 113, - 117, - 105, - 195, - 169, - 110, - 101, - 115, - 99, - 111, - 114, - 97, - 122, - 195, - 179, - 110, - 115, - 101, - 99, - 99, - 105, - 195, - 179, - 110, - 98, - 117, - 115, - 99, - 97, - 110, - 100, - 111, - 111, - 112, - 99, - 105, - 111, - 110, - 101, - 115, - 101, - 120, - 116, - 101, - 114, - 105, - 111, - 114, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 111, - 116, - 111, - 100, - 97, - 118, - 195, - 173, - 97, - 103, - 97, - 108, - 101, - 114, - 195, - 173, - 97, - 101, - 115, - 99, - 114, - 105, - 98, - 105, - 114, - 109, - 101, - 100, - 105, - 99, - 105, - 110, - 97, - 108, - 105, - 99, - 101, - 110, - 99, - 105, - 97, - 99, - 111, - 110, - 115, - 117, - 108, - 116, - 97, - 97, - 115, - 112, - 101, - 99, - 116, - 111, - 115, - 99, - 114, - 195, - 173, - 116, - 105, - 99, - 97, - 100, - 195, - 179, - 108, - 97, - 114, - 101, - 115, - 106, - 117, - 115, - 116, - 105, - 99, - 105, - 97, - 100, - 101, - 98, - 101, - 114, - 195, - 161, - 110, - 112, - 101, - 114, - 195, - 173, - 111, - 100, - 111, - 110, - 101, - 99, - 101, - 115, - 105, - 116, - 97, - 109, - 97, - 110, - 116, - 101, - 110, - 101, - 114, - 112, - 101, - 113, - 117, - 101, - 195, - 177, - 111, - 114, - 101, - 99, - 105, - 98, - 105, - 100, - 97, - 116, - 114, - 105, - 98, - 117, - 110, - 97, - 108, - 116, - 101, - 110, - 101, - 114, - 105, - 102, - 101, - 99, - 97, - 110, - 99, - 105, - 195, - 179, - 110, - 99, - 97, - 110, - 97, - 114, - 105, - 97, - 115, - 100, - 101, - 115, - 99, - 97, - 114, - 103, - 97, - 100, - 105, - 118, - 101, - 114, - 115, - 111, - 115, - 109, - 97, - 108, - 108, - 111, - 114, - 99, - 97, - 114, - 101, - 113, - 117, - 105, - 101, - 114, - 101, - 116, - 195, - 169, - 99, - 110, - 105, - 99, - 111, - 100, - 101, - 98, - 101, - 114, - 195, - 173, - 97, - 118, - 105, - 118, - 105, - 101, - 110, - 100, - 97, - 102, - 105, - 110, - 97, - 110, - 122, - 97, - 115, - 97, - 100, - 101, - 108, - 97, - 110, - 116, - 101, - 102, - 117, - 110, - 99, - 105, - 111, - 110, - 97, - 99, - 111, - 110, - 115, - 101, - 106, - 111, - 115, - 100, - 105, - 102, - 195, - 173, - 99, - 105, - 108, - 99, - 105, - 117, - 100, - 97, - 100, - 101, - 115, - 97, - 110, - 116, - 105, - 103, - 117, - 97, - 115, - 97, - 118, - 97, - 110, - 122, - 97, - 100, - 97, - 116, - 195, - 169, - 114, - 109, - 105, - 110, - 111, - 117, - 110, - 105, - 100, - 97, - 100, - 101, - 115, - 115, - 195, - 161, - 110, - 99, - 104, - 101, - 122, - 99, - 97, - 109, - 112, - 97, - 195, - 177, - 97, - 115, - 111, - 102, - 116, - 111, - 110, - 105, - 99, - 114, - 101, - 118, - 105, - 115, - 116, - 97, - 115, - 99, - 111, - 110, - 116, - 105, - 101, - 110, - 101, - 115, - 101, - 99, - 116, - 111, - 114, - 101, - 115, - 109, - 111, - 109, - 101, - 110, - 116, - 111, - 115, - 102, - 97, - 99, - 117, - 108, - 116, - 97, - 100, - 99, - 114, - 195, - 169, - 100, - 105, - 116, - 111, - 100, - 105, - 118, - 101, - 114, - 115, - 97, - 115, - 115, - 117, - 112, - 117, - 101, - 115, - 116, - 111, - 102, - 97, - 99, - 116, - 111, - 114, - 101, - 115, - 115, - 101, - 103, - 117, - 110, - 100, - 111, - 115, - 112, - 101, - 113, - 117, - 101, - 195, - 177, - 97, - 208, - 179, - 208, - 190, - 208, - 180, - 208, - 176, - 208, - 181, - 209, - 129, - 208, - 187, - 208, - 184, - 208, - 181, - 209, - 129, - 209, - 130, - 209, - 140, - 208, - 177, - 209, - 139, - 208, - 187, - 208, - 190, - 208, - 177, - 209, - 139, - 209, - 130, - 209, - 140, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 188, - 208, - 149, - 209, - 129, - 208, - 187, - 208, - 184, - 209, - 130, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 188, - 208, - 181, - 208, - 189, - 209, - 143, - 208, - 178, - 209, - 129, - 208, - 181, - 209, - 133, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 185, - 208, - 180, - 208, - 176, - 208, - 182, - 208, - 181, - 208, - 177, - 209, - 139, - 208, - 187, - 208, - 184, - 208, - 179, - 208, - 190, - 208, - 180, - 209, - 131, - 208, - 180, - 208, - 181, - 208, - 189, - 209, - 140, - 209, - 141, - 209, - 130, - 208, - 190, - 209, - 130, - 208, - 177, - 209, - 139, - 208, - 187, - 208, - 176, - 209, - 129, - 208, - 181, - 208, - 177, - 209, - 143, - 208, - 190, - 208, - 180, - 208, - 184, - 208, - 189, - 209, - 129, - 208, - 181, - 208, - 177, - 208, - 181, - 208, - 189, - 208, - 176, - 208, - 180, - 208, - 190, - 209, - 129, - 208, - 176, - 208, - 185, - 209, - 130, - 209, - 132, - 208, - 190, - 209, - 130, - 208, - 190, - 208, - 189, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 184, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 185, - 208, - 184, - 208, - 179, - 209, - 128, - 209, - 139, - 209, - 130, - 208, - 190, - 208, - 182, - 208, - 181, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 188, - 209, - 129, - 208, - 178, - 208, - 190, - 209, - 142, - 208, - 187, - 208, - 184, - 209, - 136, - 209, - 140, - 209, - 141, - 209, - 130, - 208, - 184, - 209, - 133, - 208, - 191, - 208, - 190, - 208, - 186, - 208, - 176, - 208, - 180, - 208, - 189, - 208, - 181, - 208, - 185, - 208, - 180, - 208, - 190, - 208, - 188, - 208, - 176, - 208, - 188, - 208, - 184, - 209, - 128, - 208, - 176, - 208, - 187, - 208, - 184, - 208, - 177, - 208, - 190, - 209, - 130, - 208, - 181, - 208, - 188, - 209, - 131, - 209, - 133, - 208, - 190, - 209, - 130, - 209, - 143, - 208, - 180, - 208, - 178, - 209, - 131, - 209, - 133, - 209, - 129, - 208, - 181, - 209, - 130, - 208, - 184, - 208, - 187, - 209, - 142, - 208, - 180, - 208, - 184, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 190, - 208, - 188, - 208, - 184, - 209, - 128, - 208, - 181, - 209, - 130, - 208, - 181, - 208, - 177, - 209, - 143, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 181, - 208, - 178, - 208, - 184, - 208, - 180, - 208, - 181, - 209, - 135, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 141, - 209, - 130, - 208, - 184, - 208, - 188, - 209, - 129, - 209, - 135, - 208, - 181, - 209, - 130, - 209, - 130, - 208, - 181, - 208, - 188, - 209, - 139, - 209, - 134, - 208, - 181, - 208, - 189, - 209, - 139, - 209, - 129, - 209, - 130, - 208, - 176, - 208, - 187, - 208, - 178, - 208, - 181, - 208, - 180, - 209, - 140, - 209, - 130, - 208, - 181, - 208, - 188, - 208, - 181, - 208, - 178, - 208, - 190, - 208, - 180, - 209, - 139, - 209, - 130, - 208, - 181, - 208, - 177, - 208, - 181, - 208, - 178, - 209, - 139, - 209, - 136, - 208, - 181, - 208, - 189, - 208, - 176, - 208, - 188, - 208, - 184, - 209, - 130, - 208, - 184, - 208, - 191, - 208, - 176, - 209, - 130, - 208, - 190, - 208, - 188, - 209, - 131, - 208, - 191, - 209, - 128, - 208, - 176, - 208, - 178, - 208, - 187, - 208, - 184, - 209, - 134, - 208, - 176, - 208, - 190, - 208, - 180, - 208, - 189, - 208, - 176, - 208, - 179, - 208, - 190, - 208, - 180, - 209, - 139, - 208, - 183, - 208, - 189, - 208, - 176, - 209, - 142, - 208, - 188, - 208, - 190, - 208, - 179, - 209, - 131, - 208, - 180, - 209, - 128, - 209, - 131, - 208, - 179, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 185, - 208, - 184, - 208, - 180, - 208, - 181, - 209, - 130, - 208, - 186, - 208, - 184, - 208, - 189, - 208, - 190, - 208, - 190, - 208, - 180, - 208, - 189, - 208, - 190, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 176, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 181, - 209, - 129, - 209, - 128, - 208, - 190, - 208, - 186, - 208, - 184, - 209, - 142, - 208, - 189, - 209, - 143, - 208, - 178, - 208, - 181, - 209, - 129, - 209, - 140, - 208, - 149, - 209, - 129, - 209, - 130, - 209, - 140, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 176, - 208, - 189, - 208, - 176, - 209, - 136, - 208, - 184, - 216, - 167, - 217, - 132, - 217, - 132, - 217, - 135, - 216, - 167, - 217, - 132, - 216, - 170, - 217, - 138, - 216, - 172, - 217, - 133, - 217, - 138, - 216, - 185, - 216, - 174, - 216, - 167, - 216, - 181, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 176, - 217, - 138, - 216, - 185, - 217, - 132, - 217, - 138, - 217, - 135, - 216, - 172, - 216, - 175, - 217, - 138, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 162, - 217, - 134, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 175, - 216, - 170, - 216, - 173, - 217, - 131, - 217, - 133, - 216, - 181, - 217, - 129, - 216, - 173, - 216, - 169, - 217, - 131, - 216, - 167, - 217, - 134, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 132, - 217, - 138, - 217, - 138, - 217, - 131, - 217, - 136, - 217, - 134, - 216, - 180, - 216, - 168, - 217, - 131, - 216, - 169, - 217, - 129, - 217, - 138, - 217, - 135, - 216, - 167, - 216, - 168, - 217, - 134, - 216, - 167, - 216, - 170, - 216, - 173, - 217, - 136, - 216, - 167, - 216, - 161, - 216, - 163, - 217, - 131, - 216, - 171, - 216, - 177, - 216, - 174, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 173, - 216, - 168, - 216, - 175, - 217, - 132, - 217, - 138, - 217, - 132, - 216, - 175, - 216, - 177, - 217, - 136, - 216, - 179, - 216, - 167, - 216, - 182, - 216, - 186, - 216, - 183, - 216, - 170, - 217, - 131, - 217, - 136, - 217, - 134, - 217, - 135, - 217, - 134, - 216, - 167, - 217, - 131, - 216, - 179, - 216, - 167, - 216, - 173, - 216, - 169, - 217, - 134, - 216, - 167, - 216, - 175, - 217, - 138, - 216, - 167, - 217, - 132, - 216, - 183, - 216, - 168, - 216, - 185, - 217, - 132, - 217, - 138, - 217, - 131, - 216, - 180, - 217, - 131, - 216, - 177, - 216, - 167, - 217, - 138, - 217, - 133, - 217, - 131, - 217, - 134, - 217, - 133, - 217, - 134, - 217, - 135, - 216, - 167, - 216, - 180, - 216, - 177, - 217, - 131, - 216, - 169, - 216, - 177, - 216, - 166, - 217, - 138, - 216, - 179, - 217, - 134, - 216, - 180, - 217, - 138, - 216, - 183, - 217, - 133, - 216, - 167, - 216, - 176, - 216, - 167, - 216, - 167, - 217, - 132, - 217, - 129, - 217, - 134, - 216, - 180, - 216, - 168, - 216, - 167, - 216, - 168, - 216, - 170, - 216, - 185, - 216, - 168, - 216, - 177, - 216, - 177, - 216, - 173, - 217, - 133, - 216, - 169, - 217, - 131, - 216, - 167, - 217, - 129, - 216, - 169, - 217, - 138, - 217, - 130, - 217, - 136, - 217, - 132, - 217, - 133, - 216, - 177, - 217, - 131, - 216, - 178, - 217, - 131, - 217, - 132, - 217, - 133, - 216, - 169, - 216, - 163, - 216, - 173, - 217, - 133, - 216, - 175, - 217, - 130, - 217, - 132, - 216, - 168, - 217, - 138, - 217, - 138, - 216, - 185, - 217, - 134, - 217, - 138, - 216, - 181, - 217, - 136, - 216, - 177, - 216, - 169, - 216, - 183, - 216, - 177, - 217, - 138, - 217, - 130, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 172, - 217, - 136, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 174, - 216, - 177, - 217, - 137, - 217, - 133, - 216, - 185, - 217, - 134, - 216, - 167, - 216, - 167, - 216, - 168, - 216, - 173, - 216, - 171, - 216, - 185, - 216, - 177, - 217, - 136, - 216, - 182, - 216, - 168, - 216, - 180, - 217, - 131, - 217, - 132, - 217, - 133, - 216, - 179, - 216, - 172, - 217, - 132, - 216, - 168, - 217, - 134, - 216, - 167, - 217, - 134, - 216, - 174, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 131, - 216, - 170, - 216, - 167, - 216, - 168, - 217, - 131, - 217, - 132, - 217, - 138, - 216, - 169, - 216, - 168, - 216, - 175, - 217, - 136, - 217, - 134, - 216, - 163, - 217, - 138, - 216, - 182, - 216, - 167, - 217, - 138, - 217, - 136, - 216, - 172, - 216, - 175, - 217, - 129, - 216, - 177, - 217, - 138, - 217, - 130, - 217, - 131, - 216, - 170, - 216, - 168, - 216, - 170, - 216, - 163, - 217, - 129, - 216, - 182, - 217, - 132, - 217, - 133, - 216, - 183, - 216, - 168, - 216, - 174, - 216, - 167, - 217, - 131, - 216, - 171, - 216, - 177, - 216, - 168, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 167, - 217, - 129, - 216, - 182, - 217, - 132, - 216, - 167, - 216, - 173, - 217, - 132, - 217, - 137, - 217, - 134, - 217, - 129, - 216, - 179, - 217, - 135, - 216, - 163, - 217, - 138, - 216, - 167, - 217, - 133, - 216, - 177, - 216, - 175, - 217, - 136, - 216, - 175, - 216, - 163, - 217, - 134, - 217, - 135, - 216, - 167, - 216, - 175, - 217, - 138, - 217, - 134, - 216, - 167, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 134, - 217, - 133, - 216, - 185, - 216, - 177, - 216, - 182, - 216, - 170, - 216, - 185, - 217, - 132, - 217, - 133, - 216, - 175, - 216, - 167, - 216, - 174, - 217, - 132, - 217, - 133, - 217, - 133, - 217, - 131, - 217, - 134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 2, - 0, - 2, - 0, - 2, - 0, - 2, - 0, - 4, - 0, - 4, - 0, - 4, - 0, - 4, - 0, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 7, - 6, - 5, - 4, - 3, - 2, - 1, - 0, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 15, - 14, - 13, - 12, - 11, - 10, - 9, - 8, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 23, - 22, - 21, - 20, - 19, - 18, - 17, - 16, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 31, - 30, - 29, - 28, - 27, - 26, - 25, - 24, - 255, - 255, - 255, - 255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 255, - 255, - 255, - 255, - 1, - 0, - 0, - 0, - 2, - 0, - 0, - 0, - 2, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 3, - 0, - 0, - 0, - 255, - 255, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 255, - 255, - 0, - 1, - 0, - 0, - 0, - 8, - 0, - 8, - 0, - 8, - 0, - 8, - 0, - 0, - 0, - 1, - 0, - 2, - 0, - 3, - 0, - 4, - 0, - 5, - 0, - 6, - 0, - 7, - 114, - 101, - 115, - 111, - 117, - 114, - 99, - 101, - 115, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 113, - 117, - 101, - 115, - 116, - 105, - 111, - 110, - 115, - 101, - 113, - 117, - 105, - 112, - 109, - 101, - 110, - 116, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 116, - 121, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 104, - 105, - 103, - 104, - 108, - 105, - 103, - 104, - 116, - 68, - 84, - 68, - 47, - 120, - 104, - 116, - 109, - 108, - 109, - 97, - 114, - 107, - 101, - 116, - 105, - 110, - 103, - 107, - 110, - 111, - 119, - 108, - 101, - 100, - 103, - 101, - 115, - 111, - 109, - 101, - 116, - 104, - 105, - 110, - 103, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 100, - 105, - 114, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 117, - 98, - 115, - 99, - 114, - 105, - 98, - 101, - 97, - 100, - 118, - 101, - 114, - 116, - 105, - 115, - 101, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 60, - 47, - 115, - 101, - 108, - 101, - 99, - 116, - 62, - 65, - 117, - 115, - 116, - 114, - 97, - 108, - 105, - 97, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 105, - 116, - 117, - 97, - 116, - 105, - 111, - 110, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 112, - 114, - 105, - 109, - 97, - 114, - 105, - 108, - 121, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 99, - 104, - 97, - 108, - 108, - 101, - 110, - 103, - 101, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 97, - 110, - 111, - 110, - 121, - 109, - 111, - 117, - 115, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 115, - 99, - 111, - 109, - 112, - 97, - 110, - 105, - 101, - 115, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 97, - 103, - 114, - 101, - 101, - 109, - 101, - 110, - 116, - 34, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 112, - 111, - 116, - 101, - 110, - 116, - 105, - 97, - 108, - 101, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 97, - 114, - 103, - 117, - 109, - 101, - 110, - 116, - 115, - 115, - 101, - 99, - 111, - 110, - 100, - 97, - 114, - 121, - 99, - 111, - 112, - 121, - 114, - 105, - 103, - 104, - 116, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 115, - 101, - 120, - 99, - 108, - 117, - 115, - 105, - 118, - 101, - 99, - 111, - 110, - 100, - 105, - 116, - 105, - 111, - 110, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 13, - 10, - 115, - 116, - 97, - 116, - 101, - 109, - 101, - 110, - 116, - 97, - 116, - 116, - 101, - 110, - 116, - 105, - 111, - 110, - 66, - 105, - 111, - 103, - 114, - 97, - 112, - 104, - 121, - 125, - 32, - 101, - 108, - 115, - 101, - 32, - 123, - 10, - 115, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 115, - 119, - 104, - 101, - 110, - 32, - 116, - 104, - 101, - 32, - 65, - 110, - 97, - 108, - 121, - 116, - 105, - 99, - 115, - 116, - 101, - 109, - 112, - 108, - 97, - 116, - 101, - 115, - 100, - 97, - 110, - 103, - 101, - 114, - 111, - 117, - 115, - 115, - 97, - 116, - 101, - 108, - 108, - 105, - 116, - 101, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 115, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 114, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 112, - 114, - 111, - 116, - 111, - 116, - 121, - 112, - 101, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 38, - 114, - 97, - 113, - 117, - 111, - 59, - 60, - 47, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 108, - 121, - 116, - 114, - 97, - 110, - 115, - 102, - 111, - 114, - 109, - 98, - 101, - 97, - 117, - 116, - 105, - 102, - 117, - 108, - 116, - 114, - 97, - 110, - 115, - 112, - 111, - 114, - 116, - 111, - 114, - 103, - 97, - 110, - 105, - 122, - 101, - 100, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 112, - 114, - 111, - 109, - 105, - 110, - 101, - 110, - 116, - 117, - 110, - 116, - 105, - 108, - 32, - 116, - 104, - 101, - 116, - 104, - 117, - 109, - 98, - 110, - 97, - 105, - 108, - 78, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 46, - 102, - 111, - 99, - 117, - 115, - 40, - 41, - 59, - 111, - 118, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 109, - 105, - 103, - 114, - 97, - 116, - 105, - 111, - 110, - 97, - 110, - 110, - 111, - 117, - 110, - 99, - 101, - 100, - 102, - 111, - 111, - 116, - 101, - 114, - 34, - 62, - 10, - 101, - 120, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 108, - 101, - 115, - 115, - 32, - 116, - 104, - 97, - 110, - 101, - 120, - 112, - 101, - 110, - 115, - 105, - 118, - 101, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 102, - 114, - 97, - 109, - 101, - 119, - 111, - 114, - 107, - 116, - 101, - 114, - 114, - 105, - 116, - 111, - 114, - 121, - 110, - 100, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 108, - 121, - 99, - 108, - 97, - 115, - 115, - 78, - 97, - 109, - 101, - 99, - 114, - 105, - 116, - 105, - 99, - 105, - 115, - 109, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 101, - 108, - 115, - 101, - 119, - 104, - 101, - 114, - 101, - 65, - 108, - 101, - 120, - 97, - 110, - 100, - 101, - 114, - 97, - 112, - 112, - 111, - 105, - 110, - 116, - 101, - 100, - 109, - 97, - 116, - 101, - 114, - 105, - 97, - 108, - 115, - 98, - 114, - 111, - 97, - 100, - 99, - 97, - 115, - 116, - 109, - 101, - 110, - 116, - 105, - 111, - 110, - 101, - 100, - 97, - 102, - 102, - 105, - 108, - 105, - 97, - 116, - 101, - 60, - 47, - 111, - 112, - 116, - 105, - 111, - 110, - 62, - 116, - 114, - 101, - 97, - 116, - 109, - 101, - 110, - 116, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 47, - 100, - 101, - 102, - 97, - 117, - 108, - 116, - 46, - 80, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 111, - 110, - 99, - 108, - 105, - 99, - 107, - 61, - 34, - 98, - 105, - 111, - 103, - 114, - 97, - 112, - 104, - 121, - 111, - 116, - 104, - 101, - 114, - 119, - 105, - 115, - 101, - 112, - 101, - 114, - 109, - 97, - 110, - 101, - 110, - 116, - 70, - 114, - 97, - 110, - 195, - 167, - 97, - 105, - 115, - 72, - 111, - 108, - 108, - 121, - 119, - 111, - 111, - 100, - 101, - 120, - 112, - 97, - 110, - 115, - 105, - 111, - 110, - 115, - 116, - 97, - 110, - 100, - 97, - 114, - 100, - 115, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 10, - 114, - 101, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 68, - 101, - 99, - 101, - 109, - 98, - 101, - 114, - 32, - 112, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 67, - 97, - 109, - 98, - 114, - 105, - 100, - 103, - 101, - 111, - 112, - 112, - 111, - 110, - 101, - 110, - 116, - 115, - 66, - 117, - 115, - 105, - 110, - 101, - 115, - 115, - 32, - 99, - 111, - 110, - 102, - 117, - 115, - 105, - 111, - 110, - 62, - 10, - 60, - 116, - 105, - 116, - 108, - 101, - 62, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 100, - 101, - 120, - 112, - 108, - 97, - 105, - 110, - 101, - 100, - 100, - 111, - 101, - 115, - 32, - 110, - 111, - 116, - 32, - 119, - 111, - 114, - 108, - 100, - 119, - 105, - 100, - 101, - 105, - 110, - 116, - 101, - 114, - 102, - 97, - 99, - 101, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 115, - 110, - 101, - 119, - 115, - 112, - 97, - 112, - 101, - 114, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 10, - 109, - 111, - 117, - 110, - 116, - 97, - 105, - 110, - 115, - 108, - 105, - 107, - 101, - 32, - 116, - 104, - 101, - 32, - 101, - 115, - 115, - 101, - 110, - 116, - 105, - 97, - 108, - 102, - 105, - 110, - 97, - 110, - 99, - 105, - 97, - 108, - 115, - 101, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 47, - 97, - 98, - 97, - 110, - 100, - 111, - 110, - 101, - 100, - 69, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 112, - 97, - 114, - 115, - 101, - 73, - 110, - 116, - 40, - 115, - 116, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 117, - 110, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 10, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 78, - 111, - 116, - 101, - 32, - 116, - 104, - 97, - 116, - 101, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 101, - 100, - 116, - 119, - 111, - 32, - 121, - 101, - 97, - 114, - 115, - 83, - 105, - 110, - 99, - 101, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 114, - 101, - 102, - 111, - 114, - 101, - 119, - 114, - 97, - 112, - 112, - 101, - 114, - 34, - 62, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 101, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 101, - 100, - 66, - 97, - 116, - 116, - 108, - 101, - 32, - 111, - 102, - 112, - 101, - 114, - 99, - 101, - 105, - 118, - 101, - 100, - 116, - 114, - 121, - 105, - 110, - 103, - 32, - 116, - 111, - 110, - 101, - 99, - 101, - 115, - 115, - 97, - 114, - 121, - 112, - 111, - 114, - 116, - 114, - 97, - 121, - 101, - 100, - 101, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 69, - 108, - 105, - 122, - 97, - 98, - 101, - 116, - 104, - 60, - 47, - 105, - 102, - 114, - 97, - 109, - 101, - 62, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 121, - 105, - 110, - 115, - 117, - 114, - 97, - 110, - 99, - 101, - 115, - 46, - 108, - 101, - 110, - 103, - 116, - 104, - 59, - 108, - 101, - 103, - 101, - 110, - 100, - 97, - 114, - 121, - 71, - 101, - 111, - 103, - 114, - 97, - 112, - 104, - 121, - 99, - 97, - 110, - 100, - 105, - 100, - 97, - 116, - 101, - 99, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 101, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 115, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 46, - 105, - 110, - 104, - 101, - 114, - 105, - 116, - 101, - 100, - 60, - 47, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 67, - 111, - 109, - 109, - 117, - 110, - 105, - 116, - 121, - 114, - 101, - 108, - 105, - 103, - 105, - 111, - 117, - 115, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 67, - 111, - 109, - 109, - 105, - 116, - 116, - 101, - 101, - 98, - 117, - 105, - 108, - 100, - 105, - 110, - 103, - 115, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 110, - 111, - 32, - 108, - 111, - 110, - 103, - 101, - 114, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 99, - 97, - 110, - 110, - 111, - 116, - 32, - 98, - 101, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 99, - 121, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 108, - 121, - 105, - 110, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 118, - 101, - 59, - 114, - 101, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 112, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 105, - 110, - 105, - 116, - 105, - 97, - 108, - 108, - 121, - 116, - 101, - 99, - 104, - 110, - 105, - 113, - 117, - 101, - 116, - 104, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 105, - 116, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 101, - 120, - 105, - 115, - 116, - 101, - 110, - 99, - 101, - 117, - 110, - 100, - 101, - 114, - 108, - 105, - 110, - 101, - 116, - 104, - 105, - 115, - 32, - 116, - 105, - 109, - 101, - 116, - 101, - 108, - 101, - 112, - 104, - 111, - 110, - 101, - 105, - 116, - 101, - 109, - 115, - 99, - 111, - 112, - 101, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 101, - 115, - 97, - 100, - 118, - 97, - 110, - 116, - 97, - 103, - 101, - 41, - 59, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 70, - 111, - 114, - 32, - 111, - 116, - 104, - 101, - 114, - 112, - 114, - 111, - 118, - 105, - 100, - 105, - 110, - 103, - 100, - 101, - 109, - 111, - 99, - 114, - 97, - 99, - 121, - 98, - 111, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 118, - 101, - 115, - 117, - 102, - 102, - 101, - 114, - 105, - 110, - 103, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 101, - 100, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 115, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 97, - 108, - 115, - 97, - 105, - 100, - 32, - 116, - 104, - 97, - 116, - 105, - 116, - 32, - 109, - 97, - 121, - 32, - 98, - 101, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 60, - 47, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 115, - 99, - 104, - 101, - 100, - 117, - 108, - 101, - 100, - 100, - 111, - 119, - 110, - 108, - 111, - 97, - 100, - 115, - 60, - 47, - 108, - 97, - 98, - 101, - 108, - 62, - 10, - 115, - 117, - 115, - 112, - 101, - 99, - 116, - 101, - 100, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 32, - 48, - 115, - 112, - 105, - 114, - 105, - 116, - 117, - 97, - 108, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 10, - 109, - 105, - 99, - 114, - 111, - 115, - 111, - 102, - 116, - 103, - 114, - 97, - 100, - 117, - 97, - 108, - 108, - 121, - 100, - 105, - 115, - 99, - 117, - 115, - 115, - 101, - 100, - 104, - 101, - 32, - 98, - 101, - 99, - 97, - 109, - 101, - 101, - 120, - 101, - 99, - 117, - 116, - 105, - 118, - 101, - 106, - 113, - 117, - 101, - 114, - 121, - 46, - 106, - 115, - 104, - 111, - 117, - 115, - 101, - 104, - 111, - 108, - 100, - 99, - 111, - 110, - 102, - 105, - 114, - 109, - 101, - 100, - 112, - 117, - 114, - 99, - 104, - 97, - 115, - 101, - 100, - 108, - 105, - 116, - 101, - 114, - 97, - 108, - 108, - 121, - 100, - 101, - 115, - 116, - 114, - 111, - 121, - 101, - 100, - 117, - 112, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 118, - 97, - 114, - 105, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 109, - 97, - 105, - 110, - 105, - 110, - 103, - 105, - 116, - 32, - 105, - 115, - 32, - 110, - 111, - 116, - 99, - 101, - 110, - 116, - 117, - 114, - 105, - 101, - 115, - 74, - 97, - 112, - 97, - 110, - 101, - 115, - 101, - 32, - 97, - 109, - 111, - 110, - 103, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 100, - 97, - 108, - 103, - 111, - 114, - 105, - 116, - 104, - 109, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 115, - 114, - 101, - 98, - 101, - 108, - 108, - 105, - 111, - 110, - 117, - 110, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 101, - 110, - 99, - 111, - 117, - 114, - 97, - 103, - 101, - 114, - 101, - 115, - 105, - 122, - 97, - 98, - 108, - 101, - 105, - 110, - 118, - 111, - 108, - 118, - 105, - 110, - 103, - 115, - 101, - 110, - 115, - 105, - 116, - 105, - 118, - 101, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 97, - 108, - 112, - 114, - 111, - 118, - 105, - 115, - 105, - 111, - 110, - 40, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 102, - 101, - 97, - 116, - 117, - 114, - 105, - 110, - 103, - 99, - 111, - 110, - 100, - 117, - 99, - 116, - 101, - 100, - 41, - 44, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 100, - 45, - 104, - 101, - 97, - 100, - 101, - 114, - 34, - 62, - 70, - 101, - 98, - 114, - 117, - 97, - 114, - 121, - 32, - 110, - 117, - 109, - 101, - 114, - 111, - 117, - 115, - 32, - 111, - 118, - 101, - 114, - 102, - 108, - 111, - 119, - 58, - 99, - 111, - 109, - 112, - 111, - 110, - 101, - 110, - 116, - 102, - 114, - 97, - 103, - 109, - 101, - 110, - 116, - 115, - 101, - 120, - 99, - 101, - 108, - 108, - 101, - 110, - 116, - 99, - 111, - 108, - 115, - 112, - 97, - 110, - 61, - 34, - 116, - 101, - 99, - 104, - 110, - 105, - 99, - 97, - 108, - 110, - 101, - 97, - 114, - 32, - 116, - 104, - 101, - 32, - 65, - 100, - 118, - 97, - 110, - 99, - 101, - 100, - 32, - 115, - 111, - 117, - 114, - 99, - 101, - 32, - 111, - 102, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 101, - 100, - 72, - 111, - 110, - 103, - 32, - 75, - 111, - 110, - 103, - 32, - 70, - 97, - 99, - 101, - 98, - 111, - 111, - 107, - 109, - 117, - 108, - 116, - 105, - 112, - 108, - 101, - 32, - 109, - 101, - 99, - 104, - 97, - 110, - 105, - 115, - 109, - 101, - 108, - 101, - 118, - 97, - 116, - 105, - 111, - 110, - 111, - 102, - 102, - 101, - 110, - 115, - 105, - 118, - 101, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 10, - 9, - 115, - 112, - 111, - 110, - 115, - 111, - 114, - 101, - 100, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 111, - 114, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 116, - 104, - 111, - 115, - 101, - 32, - 119, - 104, - 111, - 109, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 115, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 101, - 115, - 100, - 105, - 102, - 102, - 105, - 99, - 117, - 108, - 116, - 115, - 117, - 98, - 109, - 105, - 116, - 116, - 101, - 100, - 114, - 101, - 99, - 111, - 109, - 109, - 101, - 110, - 100, - 99, - 111, - 110, - 118, - 105, - 110, - 99, - 101, - 100, - 112, - 114, - 111, - 109, - 111, - 116, - 105, - 110, - 103, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 46, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 40, - 99, - 108, - 97, - 115, - 115, - 105, - 99, - 97, - 108, - 99, - 111, - 97, - 108, - 105, - 116, - 105, - 111, - 110, - 104, - 105, - 115, - 32, - 102, - 105, - 114, - 115, - 116, - 100, - 101, - 99, - 105, - 115, - 105, - 111, - 110, - 115, - 97, - 115, - 115, - 105, - 115, - 116, - 97, - 110, - 116, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 101, - 100, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 45, - 119, - 114, - 97, - 112, - 112, - 101, - 114, - 34, - 101, - 110, - 111, - 117, - 103, - 104, - 32, - 116, - 111, - 97, - 108, - 111, - 110, - 103, - 32, - 116, - 104, - 101, - 100, - 101, - 108, - 105, - 118, - 101, - 114, - 101, - 100, - 45, - 45, - 62, - 13, - 10, - 60, - 33, - 45, - 45, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 32, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 101, - 100, - 78, - 111, - 118, - 101, - 109, - 98, - 101, - 114, - 32, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 60, - 102, - 117, - 114, - 110, - 105, - 116, - 117, - 114, - 101, - 73, - 110, - 116, - 101, - 114, - 110, - 101, - 116, - 32, - 32, - 111, - 110, - 98, - 108, - 117, - 114, - 61, - 34, - 115, - 117, - 115, - 112, - 101, - 110, - 100, - 101, - 100, - 114, - 101, - 99, - 105, - 112, - 105, - 101, - 110, - 116, - 98, - 97, - 115, - 101, - 100, - 32, - 111, - 110, - 32, - 77, - 111, - 114, - 101, - 111, - 118, - 101, - 114, - 44, - 97, - 98, - 111, - 108, - 105, - 115, - 104, - 101, - 100, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 101, - 100, - 119, - 101, - 114, - 101, - 32, - 109, - 97, - 100, - 101, - 101, - 109, - 111, - 116, - 105, - 111, - 110, - 97, - 108, - 101, - 109, - 101, - 114, - 103, - 101, - 110, - 99, - 121, - 110, - 97, - 114, - 114, - 97, - 116, - 105, - 118, - 101, - 97, - 100, - 118, - 111, - 99, - 97, - 116, - 101, - 115, - 112, - 120, - 59, - 98, - 111, - 114, - 100, - 101, - 114, - 99, - 111, - 109, - 109, - 105, - 116, - 116, - 101, - 100, - 100, - 105, - 114, - 61, - 34, - 108, - 116, - 114, - 34, - 101, - 109, - 112, - 108, - 111, - 121, - 101, - 101, - 115, - 114, - 101, - 115, - 101, - 97, - 114, - 99, - 104, - 46, - 32, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 111, - 114, - 99, - 117, - 115, - 116, - 111, - 109, - 101, - 114, - 115, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 101, - 100, - 83, - 101, - 112, - 116, - 101, - 109, - 98, - 101, - 114, - 97, - 100, - 100, - 67, - 108, - 97, - 115, - 115, - 40, - 70, - 97, - 99, - 101, - 98, - 111, - 111, - 107, - 32, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 101, - 100, - 97, - 110, - 100, - 32, - 108, - 97, - 116, - 101, - 114, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 110, - 103, - 101, - 108, - 97, - 98, - 111, - 114, - 97, - 116, - 101, - 83, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 73, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 99, - 101, - 114, - 116, - 97, - 105, - 110, - 108, - 121, - 105, - 110, - 115, - 116, - 97, - 108, - 108, - 101, - 100, - 102, - 111, - 108, - 108, - 111, - 119, - 101, - 114, - 115, - 74, - 101, - 114, - 117, - 115, - 97, - 108, - 101, - 109, - 116, - 104, - 101, - 121, - 32, - 104, - 97, - 118, - 101, - 99, - 111, - 109, - 112, - 117, - 116, - 105, - 110, - 103, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 101, - 100, - 112, - 114, - 111, - 118, - 105, - 110, - 99, - 101, - 115, - 103, - 117, - 97, - 114, - 97, - 110, - 116, - 101, - 101, - 97, - 114, - 98, - 105, - 116, - 114, - 97, - 114, - 121, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 122, - 101, - 119, - 97, - 110, - 116, - 101, - 100, - 32, - 116, - 111, - 112, - 120, - 59, - 119, - 105, - 100, - 116, - 104, - 58, - 116, - 104, - 101, - 111, - 114, - 121, - 32, - 111, - 102, - 98, - 101, - 104, - 97, - 118, - 105, - 111, - 117, - 114, - 87, - 104, - 105, - 108, - 101, - 32, - 116, - 104, - 101, - 101, - 115, - 116, - 105, - 109, - 97, - 116, - 101, - 100, - 98, - 101, - 103, - 97, - 110, - 32, - 116, - 111, - 32, - 105, - 116, - 32, - 98, - 101, - 99, - 97, - 109, - 101, - 109, - 97, - 103, - 110, - 105, - 116, - 117, - 100, - 101, - 109, - 117, - 115, - 116, - 32, - 104, - 97, - 118, - 101, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 68, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 121, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 115, - 101, - 99, - 114, - 101, - 116, - 97, - 114, - 121, - 110, - 97, - 116, - 117, - 114, - 97, - 108, - 108, - 121, - 111, - 99, - 99, - 117, - 114, - 114, - 105, - 110, - 103, - 118, - 97, - 114, - 105, - 97, - 98, - 108, - 101, - 115, - 103, - 105, - 118, - 101, - 110, - 32, - 116, - 104, - 101, - 112, - 108, - 97, - 116, - 102, - 111, - 114, - 109, - 46, - 60, - 47, - 108, - 97, - 98, - 101, - 108, - 62, - 60, - 102, - 97, - 105, - 108, - 101, - 100, - 32, - 116, - 111, - 99, - 111, - 109, - 112, - 111, - 117, - 110, - 100, - 115, - 107, - 105, - 110, - 100, - 115, - 32, - 111, - 102, - 32, - 115, - 111, - 99, - 105, - 101, - 116, - 105, - 101, - 115, - 97, - 108, - 111, - 110, - 103, - 115, - 105, - 100, - 101, - 32, - 45, - 45, - 38, - 103, - 116, - 59, - 10, - 10, - 115, - 111, - 117, - 116, - 104, - 119, - 101, - 115, - 116, - 116, - 104, - 101, - 32, - 114, - 105, - 103, - 104, - 116, - 114, - 97, - 100, - 105, - 97, - 116, - 105, - 111, - 110, - 109, - 97, - 121, - 32, - 104, - 97, - 118, - 101, - 32, - 117, - 110, - 101, - 115, - 99, - 97, - 112, - 101, - 40, - 115, - 112, - 111, - 107, - 101, - 110, - 32, - 105, - 110, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 101, - 111, - 110, - 108, - 121, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 109, - 101, - 32, - 102, - 114, - 111, - 109, - 100, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 121, - 98, - 117, - 114, - 105, - 101, - 100, - 32, - 105, - 110, - 97, - 32, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 116, - 104, - 101, - 121, - 32, - 119, - 101, - 114, - 101, - 60, - 47, - 102, - 111, - 110, - 116, - 62, - 60, - 47, - 78, - 111, - 114, - 119, - 101, - 103, - 105, - 97, - 110, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 101, - 100, - 112, - 114, - 111, - 100, - 117, - 99, - 105, - 110, - 103, - 112, - 97, - 115, - 115, - 101, - 110, - 103, - 101, - 114, - 40, - 110, - 101, - 119, - 32, - 68, - 97, - 116, - 101, - 116, - 101, - 109, - 112, - 111, - 114, - 97, - 114, - 121, - 102, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 108, - 65, - 102, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 101, - 113, - 117, - 97, - 116, - 105, - 111, - 110, - 115, - 100, - 111, - 119, - 110, - 108, - 111, - 97, - 100, - 46, - 114, - 101, - 103, - 117, - 108, - 97, - 114, - 108, - 121, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 114, - 97, - 98, - 111, - 118, - 101, - 32, - 116, - 104, - 101, - 108, - 105, - 110, - 107, - 101, - 100, - 32, - 116, - 111, - 112, - 104, - 101, - 110, - 111, - 109, - 101, - 110, - 97, - 112, - 101, - 114, - 105, - 111, - 100, - 32, - 111, - 102, - 116, - 111, - 111, - 108, - 116, - 105, - 112, - 34, - 62, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 99, - 101, - 97, - 117, - 116, - 111, - 109, - 97, - 116, - 105, - 99, - 97, - 115, - 112, - 101, - 99, - 116, - 32, - 111, - 102, - 65, - 109, - 111, - 110, - 103, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 101, - 100, - 101, - 115, - 116, - 105, - 109, - 97, - 116, - 101, - 115, - 65, - 105, - 114, - 32, - 70, - 111, - 114, - 99, - 101, - 115, - 121, - 115, - 116, - 101, - 109, - 32, - 111, - 102, - 111, - 98, - 106, - 101, - 99, - 116, - 105, - 118, - 101, - 105, - 109, - 109, - 101, - 100, - 105, - 97, - 116, - 101, - 109, - 97, - 107, - 105, - 110, - 103, - 32, - 105, - 116, - 112, - 97, - 105, - 110, - 116, - 105, - 110, - 103, - 115, - 99, - 111, - 110, - 113, - 117, - 101, - 114, - 101, - 100, - 97, - 114, - 101, - 32, - 115, - 116, - 105, - 108, - 108, - 112, - 114, - 111, - 99, - 101, - 100, - 117, - 114, - 101, - 103, - 114, - 111, - 119, - 116, - 104, - 32, - 111, - 102, - 104, - 101, - 97, - 100, - 101, - 100, - 32, - 98, - 121, - 69, - 117, - 114, - 111, - 112, - 101, - 97, - 110, - 32, - 100, - 105, - 118, - 105, - 115, - 105, - 111, - 110, - 115, - 109, - 111, - 108, - 101, - 99, - 117, - 108, - 101, - 115, - 102, - 114, - 97, - 110, - 99, - 104, - 105, - 115, - 101, - 105, - 110, - 116, - 101, - 110, - 116, - 105, - 111, - 110, - 97, - 116, - 116, - 114, - 97, - 99, - 116, - 101, - 100, - 99, - 104, - 105, - 108, - 100, - 104, - 111, - 111, - 100, - 97, - 108, - 115, - 111, - 32, - 117, - 115, - 101, - 100, - 100, - 101, - 100, - 105, - 99, - 97, - 116, - 101, - 100, - 115, - 105, - 110, - 103, - 97, - 112, - 111, - 114, - 101, - 100, - 101, - 103, - 114, - 101, - 101, - 32, - 111, - 102, - 102, - 97, - 116, - 104, - 101, - 114, - 32, - 111, - 102, - 99, - 111, - 110, - 102, - 108, - 105, - 99, - 116, - 115, - 60, - 47, - 97, - 62, - 60, - 47, - 112, - 62, - 10, - 99, - 97, - 109, - 101, - 32, - 102, - 114, - 111, - 109, - 119, - 101, - 114, - 101, - 32, - 117, - 115, - 101, - 100, - 110, - 111, - 116, - 101, - 32, - 116, - 104, - 97, - 116, - 114, - 101, - 99, - 101, - 105, - 118, - 105, - 110, - 103, - 69, - 120, - 101, - 99, - 117, - 116, - 105, - 118, - 101, - 101, - 118, - 101, - 110, - 32, - 109, - 111, - 114, - 101, - 97, - 99, - 99, - 101, - 115, - 115, - 32, - 116, - 111, - 99, - 111, - 109, - 109, - 97, - 110, - 100, - 101, - 114, - 80, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 109, - 117, - 115, - 105, - 99, - 105, - 97, - 110, - 115, - 100, - 101, - 108, - 105, - 99, - 105, - 111, - 117, - 115, - 112, - 114, - 105, - 115, - 111, - 110, - 101, - 114, - 115, - 97, - 100, - 118, - 101, - 110, - 116, - 32, - 111, - 102, - 85, - 84, - 70, - 45, - 56, - 34, - 32, - 47, - 62, - 60, - 33, - 91, - 67, - 68, - 65, - 84, - 65, - 91, - 34, - 62, - 67, - 111, - 110, - 116, - 97, - 99, - 116, - 83, - 111, - 117, - 116, - 104, - 101, - 114, - 110, - 32, - 98, - 103, - 99, - 111, - 108, - 111, - 114, - 61, - 34, - 115, - 101, - 114, - 105, - 101, - 115, - 32, - 111, - 102, - 46, - 32, - 73, - 116, - 32, - 119, - 97, - 115, - 32, - 105, - 110, - 32, - 69, - 117, - 114, - 111, - 112, - 101, - 112, - 101, - 114, - 109, - 105, - 116, - 116, - 101, - 100, - 118, - 97, - 108, - 105, - 100, - 97, - 116, - 101, - 46, - 97, - 112, - 112, - 101, - 97, - 114, - 105, - 110, - 103, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 115, - 115, - 101, - 114, - 105, - 111, - 117, - 115, - 108, - 121, - 45, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 105, - 110, - 105, - 116, - 105, - 97, - 116, - 101, - 100, - 101, - 120, - 116, - 101, - 110, - 100, - 105, - 110, - 103, - 108, - 111, - 110, - 103, - 45, - 116, - 101, - 114, - 109, - 105, - 110, - 102, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 117, - 99, - 104, - 32, - 116, - 104, - 97, - 116, - 103, - 101, - 116, - 67, - 111, - 111, - 107, - 105, - 101, - 109, - 97, - 114, - 107, - 101, - 100, - 32, - 98, - 121, - 60, - 47, - 98, - 117, - 116, - 116, - 111, - 110, - 62, - 105, - 109, - 112, - 108, - 101, - 109, - 101, - 110, - 116, - 98, - 117, - 116, - 32, - 105, - 116, - 32, - 105, - 115, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 101, - 115, - 100, - 111, - 119, - 110, - 32, - 116, - 104, - 101, - 32, - 114, - 101, - 113, - 117, - 105, - 114, - 105, - 110, - 103, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 45, - 45, - 62, - 10, - 60, - 33, - 45, - 45, - 32, - 105, - 110, - 116, - 101, - 114, - 118, - 105, - 101, - 119, - 87, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 112, - 105, - 101, - 115, - 32, - 111, - 102, - 99, - 111, - 110, - 115, - 101, - 110, - 115, - 117, - 115, - 119, - 97, - 115, - 32, - 98, - 117, - 105, - 108, - 116, - 86, - 101, - 110, - 101, - 122, - 117, - 101, - 108, - 97, - 40, - 102, - 111, - 114, - 109, - 101, - 114, - 108, - 121, - 116, - 104, - 101, - 32, - 115, - 116, - 97, - 116, - 101, - 112, - 101, - 114, - 115, - 111, - 110, - 110, - 101, - 108, - 115, - 116, - 114, - 97, - 116, - 101, - 103, - 105, - 99, - 102, - 97, - 118, - 111, - 117, - 114, - 32, - 111, - 102, - 105, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 87, - 105, - 107, - 105, - 112, - 101, - 100, - 105, - 97, - 99, - 111, - 110, - 116, - 105, - 110, - 101, - 110, - 116, - 118, - 105, - 114, - 116, - 117, - 97, - 108, - 108, - 121, - 119, - 104, - 105, - 99, - 104, - 32, - 119, - 97, - 115, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 108, - 101, - 67, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 32, - 105, - 100, - 101, - 110, - 116, - 105, - 99, - 97, - 108, - 115, - 104, - 111, - 119, - 32, - 116, - 104, - 97, - 116, - 112, - 114, - 105, - 109, - 105, - 116, - 105, - 118, - 101, - 97, - 119, - 97, - 121, - 32, - 102, - 114, - 111, - 109, - 109, - 111, - 108, - 101, - 99, - 117, - 108, - 97, - 114, - 112, - 114, - 101, - 99, - 105, - 115, - 101, - 108, - 121, - 100, - 105, - 115, - 115, - 111, - 108, - 118, - 101, - 100, - 85, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 61, - 34, - 62, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 73, - 116, - 32, - 105, - 115, - 32, - 116, - 104, - 101, - 32, - 84, - 104, - 105, - 115, - 32, - 105, - 115, - 32, - 119, - 105, - 108, - 108, - 32, - 104, - 97, - 118, - 101, - 111, - 114, - 103, - 97, - 110, - 105, - 115, - 109, - 115, - 115, - 111, - 109, - 101, - 32, - 116, - 105, - 109, - 101, - 70, - 114, - 105, - 101, - 100, - 114, - 105, - 99, - 104, - 119, - 97, - 115, - 32, - 102, - 105, - 114, - 115, - 116, - 116, - 104, - 101, - 32, - 111, - 110, - 108, - 121, - 32, - 102, - 97, - 99, - 116, - 32, - 116, - 104, - 97, - 116, - 102, - 111, - 114, - 109, - 32, - 105, - 100, - 61, - 34, - 112, - 114, - 101, - 99, - 101, - 100, - 105, - 110, - 103, - 84, - 101, - 99, - 104, - 110, - 105, - 99, - 97, - 108, - 112, - 104, - 121, - 115, - 105, - 99, - 105, - 115, - 116, - 111, - 99, - 99, - 117, - 114, - 115, - 32, - 105, - 110, - 110, - 97, - 118, - 105, - 103, - 97, - 116, - 111, - 114, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 34, - 62, - 115, - 112, - 97, - 110, - 32, - 105, - 100, - 61, - 34, - 115, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 111, - 98, - 101, - 108, - 111, - 119, - 32, - 116, - 104, - 101, - 115, - 117, - 114, - 118, - 105, - 118, - 105, - 110, - 103, - 125, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 104, - 105, - 115, - 32, - 100, - 101, - 97, - 116, - 104, - 97, - 115, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 99, - 97, - 117, - 115, - 101, - 100, - 32, - 98, - 121, - 112, - 97, - 114, - 116, - 105, - 97, - 108, - 108, - 121, - 101, - 120, - 105, - 115, - 116, - 105, - 110, - 103, - 32, - 117, - 115, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 119, - 97, - 115, - 32, - 103, - 105, - 118, - 101, - 110, - 97, - 32, - 108, - 105, - 115, - 116, - 32, - 111, - 102, - 108, - 101, - 118, - 101, - 108, - 115, - 32, - 111, - 102, - 110, - 111, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 79, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 32, - 100, - 105, - 115, - 109, - 105, - 115, - 115, - 101, - 100, - 115, - 99, - 105, - 101, - 110, - 116, - 105, - 115, - 116, - 114, - 101, - 115, - 101, - 109, - 98, - 108, - 101, - 115, - 100, - 117, - 112, - 108, - 105, - 99, - 97, - 116, - 101, - 101, - 120, - 112, - 108, - 111, - 115, - 105, - 118, - 101, - 114, - 101, - 99, - 111, - 118, - 101, - 114, - 101, - 100, - 97, - 108, - 108, - 32, - 111, - 116, - 104, - 101, - 114, - 103, - 97, - 108, - 108, - 101, - 114, - 105, - 101, - 115, - 123, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 111, - 102, - 114, - 101, - 103, - 105, - 111, - 110, - 32, - 111, - 102, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 101, - 115, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 101, - 105, - 109, - 103, - 32, - 97, - 108, - 116, - 61, - 34, - 105, - 110, - 32, - 109, - 111, - 100, - 101, - 114, - 110, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 109, - 101, - 116, - 104, - 111, - 100, - 32, - 111, - 102, - 114, - 101, - 112, - 111, - 114, - 116, - 105, - 110, - 103, - 116, - 105, - 109, - 101, - 115, - 116, - 97, - 109, - 112, - 110, - 101, - 101, - 100, - 101, - 100, - 32, - 116, - 111, - 116, - 104, - 101, - 32, - 71, - 114, - 101, - 97, - 116, - 114, - 101, - 103, - 97, - 114, - 100, - 105, - 110, - 103, - 115, - 101, - 101, - 109, - 101, - 100, - 32, - 116, - 111, - 118, - 105, - 101, - 119, - 101, - 100, - 32, - 97, - 115, - 105, - 109, - 112, - 97, - 99, - 116, - 32, - 111, - 110, - 105, - 100, - 101, - 97, - 32, - 116, - 104, - 97, - 116, - 116, - 104, - 101, - 32, - 87, - 111, - 114, - 108, - 100, - 104, - 101, - 105, - 103, - 104, - 116, - 32, - 111, - 102, - 101, - 120, - 112, - 97, - 110, - 100, - 105, - 110, - 103, - 84, - 104, - 101, - 115, - 101, - 32, - 97, - 114, - 101, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 34, - 62, - 99, - 97, - 114, - 101, - 102, - 117, - 108, - 108, - 121, - 109, - 97, - 105, - 110, - 116, - 97, - 105, - 110, - 115, - 99, - 104, - 97, - 114, - 103, - 101, - 32, - 111, - 102, - 67, - 108, - 97, - 115, - 115, - 105, - 99, - 97, - 108, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 101, - 100, - 112, - 114, - 101, - 100, - 105, - 99, - 116, - 101, - 100, - 111, - 119, - 110, - 101, - 114, - 115, - 104, - 105, - 112, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 13, - 10, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 99, - 101, - 108, - 101, - 97, - 118, - 101, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 62, - 97, - 114, - 101, - 32, - 111, - 102, - 116, - 101, - 110, - 32, - 32, - 125, - 41, - 40, - 41, - 59, - 13, - 10, - 112, - 114, - 111, - 98, - 97, - 98, - 108, - 121, - 32, - 80, - 114, - 111, - 102, - 101, - 115, - 115, - 111, - 114, - 45, - 98, - 117, - 116, - 116, - 111, - 110, - 34, - 32, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 101, - 100, - 115, - 97, - 121, - 115, - 32, - 116, - 104, - 97, - 116, - 104, - 97, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 105, - 110, - 72, - 117, - 110, - 103, - 97, - 114, - 105, - 97, - 110, - 115, - 116, - 97, - 116, - 117, - 115, - 32, - 111, - 102, - 115, - 101, - 114, - 118, - 101, - 115, - 32, - 97, - 115, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 97, - 108, - 101, - 120, - 101, - 99, - 117, - 116, - 105, - 111, - 110, - 97, - 103, - 103, - 114, - 101, - 103, - 97, - 116, - 101, - 102, - 111, - 114, - 32, - 119, - 104, - 105, - 99, - 104, - 105, - 110, - 102, - 101, - 99, - 116, - 105, - 111, - 110, - 97, - 103, - 114, - 101, - 101, - 100, - 32, - 116, - 111, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 34, - 62, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 111, - 110, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 101, - 108, - 101, - 99, - 116, - 111, - 114, - 97, - 108, - 115, - 121, - 109, - 98, - 111, - 108, - 32, - 111, - 102, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 116, - 111, - 97, - 114, - 99, - 104, - 105, - 116, - 101, - 99, - 116, - 67, - 104, - 114, - 105, - 115, - 116, - 105, - 97, - 110, - 112, - 114, - 101, - 118, - 105, - 111, - 117, - 115, - 32, - 108, - 105, - 118, - 105, - 110, - 103, - 32, - 105, - 110, - 101, - 97, - 115, - 105, - 101, - 114, - 32, - 116, - 111, - 112, - 114, - 111, - 102, - 101, - 115, - 115, - 111, - 114, - 10, - 38, - 108, - 116, - 59, - 33, - 45, - 45, - 32, - 101, - 102, - 102, - 101, - 99, - 116, - 32, - 111, - 102, - 97, - 110, - 97, - 108, - 121, - 116, - 105, - 99, - 115, - 119, - 97, - 115, - 32, - 116, - 97, - 107, - 101, - 110, - 119, - 104, - 101, - 114, - 101, - 32, - 116, - 104, - 101, - 116, - 111, - 111, - 107, - 32, - 111, - 118, - 101, - 114, - 98, - 101, - 108, - 105, - 101, - 102, - 32, - 105, - 110, - 65, - 102, - 114, - 105, - 107, - 97, - 97, - 110, - 115, - 97, - 115, - 32, - 102, - 97, - 114, - 32, - 97, - 115, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 101, - 100, - 119, - 111, - 114, - 107, - 32, - 119, - 105, - 116, - 104, - 97, - 32, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 60, - 102, - 105, - 101, - 108, - 100, - 115, - 101, - 116, - 67, - 104, - 114, - 105, - 115, - 116, - 109, - 97, - 115, - 82, - 101, - 116, - 114, - 105, - 101, - 118, - 101, - 100, - 10, - 10, - 73, - 110, - 32, - 116, - 104, - 101, - 32, - 98, - 97, - 99, - 107, - 32, - 105, - 110, - 116, - 111, - 110, - 111, - 114, - 116, - 104, - 101, - 97, - 115, - 116, - 109, - 97, - 103, - 97, - 122, - 105, - 110, - 101, - 115, - 62, - 60, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 99, - 111, - 109, - 109, - 105, - 116, - 116, - 101, - 101, - 103, - 111, - 118, - 101, - 114, - 110, - 105, - 110, - 103, - 103, - 114, - 111, - 117, - 112, - 115, - 32, - 111, - 102, - 115, - 116, - 111, - 114, - 101, - 100, - 32, - 105, - 110, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 97, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 105, - 116, - 115, - 32, - 102, - 105, - 114, - 115, - 116, - 116, - 104, - 101, - 105, - 114, - 32, - 111, - 119, - 110, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 101, - 100, - 97, - 110, - 32, - 111, - 98, - 106, - 101, - 99, - 116, - 67, - 97, - 114, - 105, - 98, - 98, - 101, - 97, - 110, - 97, - 108, - 108, - 111, - 119, - 32, - 116, - 104, - 101, - 100, - 105, - 115, - 116, - 114, - 105, - 99, - 116, - 115, - 119, - 105, - 115, - 99, - 111, - 110, - 115, - 105, - 110, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 59, - 32, - 119, - 105, - 100, - 116, - 104, - 58, - 32, - 105, - 110, - 104, - 97, - 98, - 105, - 116, - 101, - 100, - 83, - 111, - 99, - 105, - 97, - 108, - 105, - 115, - 116, - 74, - 97, - 110, - 117, - 97, - 114, - 121, - 32, - 49, - 60, - 47, - 102, - 111, - 111, - 116, - 101, - 114, - 62, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 108, - 121, - 99, - 104, - 111, - 105, - 99, - 101, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 32, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 99, - 32, - 98, - 117, - 115, - 105, - 110, - 101, - 115, - 115, - 32, - 84, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 46, - 108, - 101, - 110, - 103, - 116, - 104, - 59, - 32, - 100, - 101, - 115, - 105, - 114, - 101, - 32, - 116, - 111, - 100, - 101, - 97, - 108, - 32, - 119, - 105, - 116, - 104, - 115, - 105, - 110, - 99, - 101, - 32, - 116, - 104, - 101, - 117, - 115, - 101, - 114, - 65, - 103, - 101, - 110, - 116, - 99, - 111, - 110, - 99, - 101, - 105, - 118, - 101, - 100, - 105, - 110, - 100, - 101, - 120, - 46, - 112, - 104, - 112, - 97, - 115, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 101, - 110, - 103, - 97, - 103, - 101, - 32, - 105, - 110, - 114, - 101, - 99, - 101, - 110, - 116, - 108, - 121, - 44, - 102, - 101, - 119, - 32, - 121, - 101, - 97, - 114, - 115, - 119, - 101, - 114, - 101, - 32, - 97, - 108, - 115, - 111, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 101, - 100, - 105, - 116, - 101, - 100, - 32, - 98, - 121, - 97, - 114, - 101, - 32, - 107, - 110, - 111, - 119, - 110, - 99, - 105, - 116, - 105, - 101, - 115, - 32, - 105, - 110, - 97, - 99, - 99, - 101, - 115, - 115, - 107, - 101, - 121, - 99, - 111, - 110, - 100, - 101, - 109, - 110, - 101, - 100, - 97, - 108, - 115, - 111, - 32, - 104, - 97, - 118, - 101, - 115, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 44, - 102, - 97, - 109, - 105, - 108, - 121, - 32, - 111, - 102, - 83, - 99, - 104, - 111, - 111, - 108, - 32, - 111, - 102, - 99, - 111, - 110, - 118, - 101, - 114, - 116, - 101, - 100, - 110, - 97, - 116, - 117, - 114, - 101, - 32, - 111, - 102, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 109, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 115, - 60, - 47, - 111, - 98, - 106, - 101, - 99, - 116, - 62, - 116, - 104, - 101, - 114, - 101, - 32, - 105, - 115, - 32, - 97, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 115, - 97, - 100, - 118, - 111, - 99, - 97, - 116, - 101, - 100, - 84, - 104, - 101, - 121, - 32, - 119, - 101, - 114, - 101, - 97, - 110, - 121, - 32, - 111, - 116, - 104, - 101, - 114, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 61, - 101, - 110, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 109, - 117, - 99, - 104, - 32, - 109, - 111, - 114, - 101, - 114, - 101, - 102, - 108, - 101, - 99, - 116, - 101, - 100, - 119, - 97, - 115, - 32, - 110, - 97, - 109, - 101, - 100, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 32, - 97, - 32, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 119, - 104, - 101, - 110, - 32, - 116, - 104, - 101, - 121, - 101, - 110, - 103, - 105, - 110, - 101, - 101, - 114, - 115, - 99, - 111, - 117, - 108, - 100, - 32, - 110, - 111, - 116, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 115, - 119, - 101, - 100, - 110, - 101, - 115, - 100, - 97, - 121, - 116, - 104, - 101, - 32, - 116, - 104, - 105, - 114, - 100, - 32, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 115, - 74, - 97, - 110, - 117, - 97, - 114, - 121, - 32, - 50, - 119, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 121, - 97, - 32, - 99, - 101, - 114, - 116, - 97, - 105, - 110, - 114, - 101, - 97, - 99, - 116, - 105, - 111, - 110, - 115, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 111, - 114, - 97, - 102, - 116, - 101, - 114, - 32, - 104, - 105, - 115, - 116, - 104, - 101, - 32, - 108, - 97, - 115, - 116, - 32, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 100, - 34, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 97, - 62, - 60, - 47, - 116, - 100, - 62, - 100, - 101, - 112, - 101, - 110, - 100, - 32, - 111, - 110, - 115, - 101, - 97, - 114, - 99, - 104, - 34, - 62, - 10, - 112, - 105, - 101, - 99, - 101, - 115, - 32, - 111, - 102, - 99, - 111, - 109, - 112, - 101, - 116, - 105, - 110, - 103, - 82, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 116, - 101, - 110, - 110, - 101, - 115, - 115, - 101, - 101, - 119, - 104, - 105, - 99, - 104, - 32, - 104, - 97, - 115, - 32, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 61, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 32, - 60, - 60, - 47, - 104, - 101, - 97, - 100, - 101, - 114, - 62, - 103, - 105, - 118, - 101, - 115, - 32, - 116, - 104, - 101, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 97, - 110, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 34, - 62, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 48, - 118, - 105, - 101, - 119, - 32, - 116, - 104, - 97, - 116, - 116, - 111, - 103, - 101, - 116, - 104, - 101, - 114, - 44, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 32, - 119, - 97, - 115, - 32, - 102, - 111, - 117, - 110, - 100, - 115, - 117, - 98, - 115, - 101, - 116, - 32, - 111, - 102, - 97, - 116, - 116, - 97, - 99, - 107, - 32, - 111, - 110, - 99, - 104, - 105, - 108, - 100, - 114, - 101, - 110, - 44, - 112, - 111, - 105, - 110, - 116, - 115, - 32, - 111, - 102, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 32, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 97, - 108, - 108, - 101, - 103, - 101, - 100, - 108, - 121, - 67, - 108, - 101, - 118, - 101, - 108, - 97, - 110, - 100, - 119, - 97, - 115, - 32, - 108, - 97, - 116, - 101, - 114, - 97, - 110, - 100, - 32, - 97, - 102, - 116, - 101, - 114, - 97, - 114, - 101, - 32, - 103, - 105, - 118, - 101, - 110, - 119, - 97, - 115, - 32, - 115, - 116, - 105, - 108, - 108, - 115, - 99, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 100, - 101, - 115, - 105, - 103, - 110, - 32, - 111, - 102, - 109, - 97, - 107, - 101, - 115, - 32, - 116, - 104, - 101, - 109, - 117, - 99, - 104, - 32, - 108, - 101, - 115, - 115, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 115, - 46, - 10, - 10, - 65, - 102, - 116, - 101, - 114, - 32, - 44, - 32, - 98, - 117, - 116, - 32, - 116, - 104, - 101, - 77, - 117, - 115, - 101, - 117, - 109, - 32, - 111, - 102, - 108, - 111, - 117, - 105, - 115, - 105, - 97, - 110, - 97, - 40, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 109, - 105, - 110, - 110, - 101, - 115, - 111, - 116, - 97, - 112, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 115, - 97, - 32, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 68, - 111, - 109, - 105, - 110, - 105, - 99, - 97, - 110, - 118, - 111, - 108, - 117, - 109, - 101, - 32, - 111, - 102, - 114, - 101, - 116, - 117, - 114, - 110, - 105, - 110, - 103, - 100, - 101, - 102, - 101, - 110, - 115, - 105, - 118, - 101, - 48, - 48, - 112, - 120, - 124, - 114, - 105, - 103, - 104, - 109, - 97, - 100, - 101, - 32, - 102, - 114, - 111, - 109, - 109, - 111, - 117, - 115, - 101, - 111, - 118, - 101, - 114, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 115, - 116, - 97, - 116, - 101, - 115, - 32, - 111, - 102, - 40, - 119, - 104, - 105, - 99, - 104, - 32, - 105, - 115, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 115, - 70, - 114, - 97, - 110, - 99, - 105, - 115, - 99, - 111, - 98, - 117, - 105, - 108, - 100, - 105, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 111, - 117, - 116, - 32, - 97, - 119, - 105, - 116, - 104, - 32, - 115, - 111, - 109, - 101, - 119, - 104, - 111, - 32, - 119, - 111, - 117, - 108, - 100, - 97, - 32, - 102, - 111, - 114, - 109, - 32, - 111, - 102, - 97, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 98, - 101, - 102, - 111, - 114, - 101, - 32, - 105, - 116, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 32, - 32, - 83, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 97, - 110, - 100, - 32, - 111, - 102, - 116, - 101, - 110, - 109, - 101, - 97, - 115, - 117, - 114, - 105, - 110, - 103, - 97, - 110, - 100, - 32, - 105, - 116, - 32, - 105, - 115, - 112, - 97, - 112, - 101, - 114, - 98, - 97, - 99, - 107, - 118, - 97, - 108, - 117, - 101, - 115, - 32, - 111, - 102, - 13, - 10, - 60, - 116, - 105, - 116, - 108, - 101, - 62, - 61, - 32, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 101, - 114, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 112, - 108, - 97, - 121, - 101, - 100, - 32, - 98, - 121, - 97, - 110, - 100, - 32, - 101, - 97, - 114, - 108, - 121, - 60, - 47, - 99, - 101, - 110, - 116, - 101, - 114, - 62, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 105, - 115, - 116, - 104, - 101, - 32, - 116, - 104, - 114, - 101, - 101, - 112, - 111, - 119, - 101, - 114, - 32, - 97, - 110, - 100, - 111, - 102, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 105, - 110, - 110, - 101, - 114, - 72, - 84, - 77, - 76, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 121, - 58, - 105, - 110, - 108, - 105, - 110, - 101, - 59, - 67, - 104, - 117, - 114, - 99, - 104, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 101, - 118, - 101, - 110, - 116, - 118, - 101, - 114, - 121, - 32, - 104, - 105, - 103, - 104, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 32, - 45, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 47, - 99, - 103, - 105, - 45, - 98, - 105, - 110, - 47, - 116, - 111, - 32, - 99, - 114, - 101, - 97, - 116, - 101, - 97, - 102, - 114, - 105, - 107, - 97, - 97, - 110, - 115, - 101, - 115, - 112, - 101, - 114, - 97, - 110, - 116, - 111, - 102, - 114, - 97, - 110, - 195, - 167, - 97, - 105, - 115, - 108, - 97, - 116, - 118, - 105, - 101, - 197, - 161, - 117, - 108, - 105, - 101, - 116, - 117, - 118, - 105, - 197, - 179, - 196, - 140, - 101, - 197, - 161, - 116, - 105, - 110, - 97, - 196, - 141, - 101, - 197, - 161, - 116, - 105, - 110, - 97, - 224, - 185, - 132, - 224, - 184, - 151, - 224, - 184, - 162, - 230, - 151, - 165, - 230, - 156, - 172, - 232, - 170, - 158, - 231, - 174, - 128, - 228, - 189, - 147, - 229, - 173, - 151, - 231, - 185, - 129, - 233, - 171, - 148, - 229, - 173, - 151, - 237, - 149, - 156, - 234, - 181, - 173, - 236, - 150, - 180, - 228, - 184, - 186, - 228, - 187, - 128, - 228, - 185, - 136, - 232, - 174, - 161, - 231, - 174, - 151, - 230, - 156, - 186, - 231, - 172, - 148, - 232, - 174, - 176, - 230, - 156, - 172, - 232, - 168, - 142, - 232, - 171, - 150, - 229, - 141, - 128, - 230, - 156, - 141, - 229, - 138, - 161, - 229, - 153, - 168, - 228, - 186, - 146, - 232, - 129, - 148, - 231, - 189, - 145, - 230, - 136, - 191, - 229, - 156, - 176, - 228, - 186, - 167, - 228, - 191, - 177, - 228, - 185, - 144, - 233, - 131, - 168, - 229, - 135, - 186, - 231, - 137, - 136, - 231, - 164, - 190, - 230, - 142, - 146, - 232, - 161, - 140, - 230, - 166, - 156, - 233, - 131, - 168, - 232, - 144, - 189, - 230, - 160, - 188, - 232, - 191, - 155, - 228, - 184, - 128, - 230, - 173, - 165, - 230, - 148, - 175, - 228, - 187, - 152, - 229, - 174, - 157, - 233, - 170, - 140, - 232, - 175, - 129, - 231, - 160, - 129, - 229, - 167, - 148, - 229, - 145, - 152, - 228, - 188, - 154, - 230, - 149, - 176, - 230, - 141, - 174, - 229, - 186, - 147, - 230, - 182, - 136, - 232, - 180, - 185, - 232, - 128, - 133, - 229, - 138, - 158, - 229, - 133, - 172, - 229, - 174, - 164, - 232, - 174, - 168, - 232, - 174, - 186, - 229, - 140, - 186, - 230, - 183, - 177, - 229, - 156, - 179, - 229, - 184, - 130, - 230, - 146, - 173, - 230, - 148, - 190, - 229, - 153, - 168, - 229, - 140, - 151, - 228, - 186, - 172, - 229, - 184, - 130, - 229, - 164, - 167, - 229, - 173, - 166, - 231, - 148, - 159, - 232, - 182, - 138, - 230, - 157, - 165, - 232, - 182, - 138, - 231, - 174, - 161, - 231, - 144, - 134, - 229, - 145, - 152, - 228, - 191, - 161, - 230, - 129, - 175, - 231, - 189, - 145, - 115, - 101, - 114, - 118, - 105, - 99, - 105, - 111, - 115, - 97, - 114, - 116, - 195, - 173, - 99, - 117, - 108, - 111, - 97, - 114, - 103, - 101, - 110, - 116, - 105, - 110, - 97, - 98, - 97, - 114, - 99, - 101, - 108, - 111, - 110, - 97, - 99, - 117, - 97, - 108, - 113, - 117, - 105, - 101, - 114, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 100, - 111, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 111, - 115, - 112, - 111, - 108, - 195, - 173, - 116, - 105, - 99, - 97, - 114, - 101, - 115, - 112, - 117, - 101, - 115, - 116, - 97, - 119, - 105, - 107, - 105, - 112, - 101, - 100, - 105, - 97, - 115, - 105, - 103, - 117, - 105, - 101, - 110, - 116, - 101, - 98, - 195, - 186, - 115, - 113, - 117, - 101, - 100, - 97, - 99, - 111, - 109, - 117, - 110, - 105, - 100, - 97, - 100, - 115, - 101, - 103, - 117, - 114, - 105, - 100, - 97, - 100, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 97, - 108, - 112, - 114, - 101, - 103, - 117, - 110, - 116, - 97, - 115, - 99, - 111, - 110, - 116, - 101, - 110, - 105, - 100, - 111, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 101, - 114, - 118, - 101, - 110, - 101, - 122, - 117, - 101, - 108, - 97, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 97, - 115, - 100, - 105, - 99, - 105, - 101, - 109, - 98, - 114, - 101, - 114, - 101, - 108, - 97, - 99, - 105, - 195, - 179, - 110, - 110, - 111, - 118, - 105, - 101, - 109, - 98, - 114, - 101, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 101, - 115, - 112, - 114, - 111, - 121, - 101, - 99, - 116, - 111, - 115, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 97, - 115, - 105, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 111, - 97, - 99, - 116, - 105, - 118, - 105, - 100, - 97, - 100, - 101, - 110, - 99, - 117, - 101, - 110, - 116, - 114, - 97, - 101, - 99, - 111, - 110, - 111, - 109, - 195, - 173, - 97, - 105, - 109, - 195, - 161, - 103, - 101, - 110, - 101, - 115, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 97, - 114, - 100, - 101, - 115, - 99, - 97, - 114, - 103, - 97, - 114, - 110, - 101, - 99, - 101, - 115, - 97, - 114, - 105, - 111, - 97, - 116, - 101, - 110, - 99, - 105, - 195, - 179, - 110, - 116, - 101, - 108, - 195, - 169, - 102, - 111, - 110, - 111, - 99, - 111, - 109, - 105, - 115, - 105, - 195, - 179, - 110, - 99, - 97, - 110, - 99, - 105, - 111, - 110, - 101, - 115, - 99, - 97, - 112, - 97, - 99, - 105, - 100, - 97, - 100, - 101, - 110, - 99, - 111, - 110, - 116, - 114, - 97, - 114, - 97, - 110, - 195, - 161, - 108, - 105, - 115, - 105, - 115, - 102, - 97, - 118, - 111, - 114, - 105, - 116, - 111, - 115, - 116, - 195, - 169, - 114, - 109, - 105, - 110, - 111, - 115, - 112, - 114, - 111, - 118, - 105, - 110, - 99, - 105, - 97, - 101, - 116, - 105, - 113, - 117, - 101, - 116, - 97, - 115, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 111, - 115, - 102, - 117, - 110, - 99, - 105, - 111, - 110, - 101, - 115, - 114, - 101, - 115, - 117, - 108, - 116, - 97, - 100, - 111, - 99, - 97, - 114, - 195, - 161, - 99, - 116, - 101, - 114, - 112, - 114, - 111, - 112, - 105, - 101, - 100, - 97, - 100, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 105, - 111, - 110, - 101, - 99, - 101, - 115, - 105, - 100, - 97, - 100, - 109, - 117, - 110, - 105, - 99, - 105, - 112, - 97, - 108, - 99, - 114, - 101, - 97, - 99, - 105, - 195, - 179, - 110, - 100, - 101, - 115, - 99, - 97, - 114, - 103, - 97, - 115, - 112, - 114, - 101, - 115, - 101, - 110, - 99, - 105, - 97, - 99, - 111, - 109, - 101, - 114, - 99, - 105, - 97, - 108, - 111, - 112, - 105, - 110, - 105, - 111, - 110, - 101, - 115, - 101, - 106, - 101, - 114, - 99, - 105, - 99, - 105, - 111, - 101, - 100, - 105, - 116, - 111, - 114, - 105, - 97, - 108, - 115, - 97, - 108, - 97, - 109, - 97, - 110, - 99, - 97, - 103, - 111, - 110, - 122, - 195, - 161, - 108, - 101, - 122, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 111, - 112, - 101, - 108, - 195, - 173, - 99, - 117, - 108, - 97, - 114, - 101, - 99, - 105, - 101, - 110, - 116, - 101, - 115, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 101, - 115, - 116, - 97, - 114, - 114, - 97, - 103, - 111, - 110, - 97, - 112, - 114, - 195, - 161, - 99, - 116, - 105, - 99, - 97, - 110, - 111, - 118, - 101, - 100, - 97, - 100, - 101, - 115, - 112, - 114, - 111, - 112, - 117, - 101, - 115, - 116, - 97, - 112, - 97, - 99, - 105, - 101, - 110, - 116, - 101, - 115, - 116, - 195, - 169, - 99, - 110, - 105, - 99, - 97, - 115, - 111, - 98, - 106, - 101, - 116, - 105, - 118, - 111, - 115, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 111, - 115, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 143, - 224, - 164, - 185, - 224, - 165, - 136, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 165, - 224, - 164, - 143, - 224, - 164, - 181, - 224, - 164, - 130, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 165, - 139, - 224, - 164, - 136, - 224, - 164, - 149, - 224, - 165, - 129, - 224, - 164, - 155, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 149, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 173, - 224, - 165, - 128, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 143, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 174, - 224, - 165, - 136, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 164, - 100, - 105, - 112, - 108, - 111, - 100, - 111, - 99, - 115, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 164, - 175, - 224, - 164, - 176, - 224, - 165, - 130, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 170, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 171, - 224, - 164, - 191, - 224, - 164, - 176, - 224, - 164, - 148, - 224, - 164, - 184, - 224, - 164, - 164, - 224, - 164, - 164, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 164, - 178, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 134, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 136, - 224, - 164, - 150, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 164, - 175, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 181, - 224, - 165, - 135, - 224, - 164, - 172, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 168, - 224, - 164, - 172, - 224, - 165, - 128, - 224, - 164, - 154, - 224, - 164, - 174, - 224, - 165, - 140, - 224, - 164, - 164, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 156, - 224, - 165, - 137, - 224, - 164, - 172, - 224, - 164, - 174, - 224, - 164, - 166, - 224, - 164, - 166, - 224, - 164, - 164, - 224, - 164, - 165, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 182, - 224, - 164, - 185, - 224, - 164, - 176, - 224, - 164, - 133, - 224, - 164, - 178, - 224, - 164, - 151, - 224, - 164, - 149, - 224, - 164, - 173, - 224, - 165, - 128, - 224, - 164, - 168, - 224, - 164, - 151, - 224, - 164, - 176, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 143, - 224, - 164, - 137, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 151, - 224, - 164, - 175, - 224, - 165, - 128, - 224, - 164, - 185, - 224, - 165, - 130, - 224, - 164, - 129, - 224, - 164, - 134, - 224, - 164, - 151, - 224, - 165, - 135, - 224, - 164, - 159, - 224, - 165, - 128, - 224, - 164, - 174, - 224, - 164, - 150, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 133, - 224, - 164, - 173, - 224, - 165, - 128, - 224, - 164, - 151, - 224, - 164, - 175, - 224, - 165, - 135, - 224, - 164, - 164, - 224, - 165, - 129, - 224, - 164, - 174, - 224, - 164, - 181, - 224, - 165, - 139, - 224, - 164, - 159, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 133, - 224, - 164, - 151, - 224, - 164, - 176, - 224, - 164, - 144, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 164, - 178, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 138, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 164, - 154, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 144, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 176, - 224, - 164, - 156, - 224, - 164, - 191, - 224, - 164, - 184, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 172, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 164, - 172, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 165, - 130, - 224, - 164, - 130, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 150, - 224, - 164, - 156, - 224, - 165, - 128, - 224, - 164, - 164, - 224, - 164, - 172, - 224, - 164, - 159, - 224, - 164, - 168, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 134, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 165, - 129, - 224, - 164, - 178, - 224, - 164, - 178, - 224, - 165, - 137, - 224, - 164, - 151, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 151, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 164, - 156, - 224, - 164, - 151, - 224, - 164, - 185, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 178, - 224, - 164, - 151, - 224, - 165, - 135, - 224, - 164, - 170, - 224, - 165, - 135, - 224, - 164, - 156, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 165, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 160, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 129, - 224, - 164, - 166, - 224, - 165, - 130, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 164, - 185, - 224, - 164, - 164, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 134, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 149, - 224, - 165, - 140, - 224, - 164, - 168, - 224, - 164, - 182, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 175, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 150, - 224, - 165, - 129, - 224, - 164, - 166, - 224, - 164, - 178, - 224, - 164, - 151, - 224, - 165, - 128, - 99, - 97, - 116, - 101, - 103, - 111, - 114, - 105, - 101, - 115, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 101, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 13, - 10, - 67, - 111, - 112, - 121, - 114, - 105, - 103, - 104, - 116, - 32, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 99, - 111, - 110, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 101, - 118, - 101, - 114, - 121, - 116, - 104, - 105, - 110, - 103, - 60, - 112, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 101, - 99, - 104, - 110, - 111, - 108, - 111, - 103, - 121, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 60, - 97, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 97, - 110, - 97, - 103, - 101, - 109, - 101, - 110, - 116, - 38, - 99, - 111, - 112, - 121, - 59, - 32, - 50, - 48, - 49, - 106, - 97, - 118, - 97, - 83, - 99, - 114, - 105, - 112, - 116, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 115, - 98, - 114, - 101, - 97, - 100, - 99, - 114, - 117, - 109, - 98, - 116, - 104, - 101, - 109, - 115, - 101, - 108, - 118, - 101, - 115, - 104, - 111, - 114, - 105, - 122, - 111, - 110, - 116, - 97, - 108, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 67, - 97, - 108, - 105, - 102, - 111, - 114, - 110, - 105, - 97, - 97, - 99, - 116, - 105, - 118, - 105, - 116, - 105, - 101, - 115, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 101, - 100, - 78, - 97, - 118, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 116, - 114, - 97, - 110, - 115, - 105, - 116, - 105, - 111, - 110, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 105, - 111, - 110, - 110, - 97, - 118, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 97, - 112, - 112, - 101, - 97, - 114, - 97, - 110, - 99, - 101, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 60, - 109, - 99, - 104, - 101, - 99, - 107, - 98, - 111, - 120, - 34, - 32, - 116, - 101, - 99, - 104, - 110, - 105, - 113, - 117, - 101, - 115, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 105, - 111, - 110, - 97, - 112, - 112, - 97, - 114, - 101, - 110, - 116, - 108, - 121, - 97, - 115, - 32, - 119, - 101, - 108, - 108, - 32, - 97, - 115, - 117, - 110, - 116, - 39, - 44, - 32, - 39, - 85, - 65, - 45, - 114, - 101, - 115, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 116, - 101, - 108, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 101, - 100, - 87, - 97, - 115, - 104, - 105, - 110, - 103, - 116, - 111, - 110, - 110, - 97, - 118, - 105, - 103, - 97, - 116, - 111, - 114, - 46, - 32, - 61, - 32, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 105, - 109, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 38, - 108, - 116, - 59, - 98, - 114, - 38, - 103, - 116, - 59, - 108, - 105, - 116, - 101, - 114, - 97, - 116, - 117, - 114, - 101, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 98, - 103, - 99, - 111, - 108, - 111, - 114, - 61, - 34, - 35, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 110, - 101, - 119, - 115, - 108, - 101, - 116, - 116, - 101, - 114, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 105, - 101, - 115, - 100, - 101, - 102, - 105, - 110, - 105, - 116, - 105, - 111, - 110, - 108, - 101, - 97, - 100, - 101, - 114, - 115, - 104, - 105, - 112, - 84, - 101, - 99, - 104, - 110, - 111, - 108, - 111, - 103, - 121, - 80, - 97, - 114, - 108, - 105, - 97, - 109, - 101, - 110, - 116, - 99, - 111, - 109, - 112, - 97, - 114, - 105, - 115, - 111, - 110, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 46, - 105, - 110, - 100, - 101, - 120, - 79, - 102, - 40, - 34, - 99, - 111, - 110, - 99, - 108, - 117, - 115, - 105, - 111, - 110, - 100, - 105, - 115, - 99, - 117, - 115, - 115, - 105, - 111, - 110, - 99, - 111, - 109, - 112, - 111, - 110, - 101, - 110, - 116, - 115, - 98, - 105, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 82, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 95, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 111, - 111, - 100, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 112, - 101, - 114, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 101, - 97, - 99, - 104, - 32, - 111, - 116, - 104, - 101, - 114, - 97, - 116, - 109, - 111, - 115, - 112, - 104, - 101, - 114, - 101, - 32, - 111, - 110, - 102, - 111, - 99, - 117, - 115, - 61, - 34, - 60, - 102, - 111, - 114, - 109, - 32, - 105, - 100, - 61, - 34, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 105, - 110, - 103, - 116, - 104, - 105, - 115, - 46, - 118, - 97, - 108, - 117, - 101, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 67, - 111, - 110, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 117, - 98, - 115, - 101, - 113, - 117, - 101, - 110, - 116, - 119, - 101, - 108, - 108, - 45, - 107, - 110, - 111, - 119, - 110, - 118, - 97, - 114, - 105, - 97, - 116, - 105, - 111, - 110, - 115, - 114, - 101, - 112, - 117, - 116, - 97, - 116, - 105, - 111, - 110, - 112, - 104, - 101, - 110, - 111, - 109, - 101, - 110, - 111, - 110, - 100, - 105, - 115, - 99, - 105, - 112, - 108, - 105, - 110, - 101, - 108, - 111, - 103, - 111, - 46, - 112, - 110, - 103, - 34, - 32, - 40, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 44, - 98, - 111, - 117, - 110, - 100, - 97, - 114, - 105, - 101, - 115, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 115, - 101, - 116, - 116, - 108, - 101, - 109, - 101, - 110, - 116, - 66, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 111, - 117, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 110, - 116, - 101, - 114, - 112, - 114, - 105, - 115, - 101, - 40, - 34, - 104, - 116, - 116, - 112, - 115, - 58, - 34, - 32, - 117, - 110, - 101, - 115, - 99, - 97, - 112, - 101, - 40, - 34, - 112, - 97, - 115, - 115, - 119, - 111, - 114, - 100, - 34, - 32, - 100, - 101, - 109, - 111, - 99, - 114, - 97, - 116, - 105, - 99, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 119, - 114, - 97, - 112, - 112, - 101, - 114, - 34, - 62, - 10, - 109, - 101, - 109, - 98, - 101, - 114, - 115, - 104, - 105, - 112, - 108, - 105, - 110, - 103, - 117, - 105, - 115, - 116, - 105, - 99, - 112, - 120, - 59, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 121, - 97, - 115, - 115, - 105, - 115, - 116, - 97, - 110, - 99, - 101, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 102, - 97, - 99, - 105, - 108, - 105, - 116, - 105, - 101, - 115, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 122, - 101, - 100, - 112, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 105, - 102, - 32, - 40, - 116, - 121, - 112, - 101, - 111, - 102, - 109, - 97, - 105, - 110, - 116, - 97, - 105, - 110, - 101, - 100, - 118, - 111, - 99, - 97, - 98, - 117, - 108, - 97, - 114, - 121, - 104, - 121, - 112, - 111, - 116, - 104, - 101, - 115, - 105, - 115, - 46, - 115, - 117, - 98, - 109, - 105, - 116, - 40, - 41, - 59, - 38, - 97, - 109, - 112, - 59, - 110, - 98, - 115, - 112, - 59, - 97, - 110, - 110, - 111, - 116, - 97, - 116, - 105, - 111, - 110, - 98, - 101, - 104, - 105, - 110, - 100, - 32, - 116, - 104, - 101, - 70, - 111, - 117, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 114, - 34, - 97, - 115, - 115, - 117, - 109, - 112, - 116, - 105, - 111, - 110, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 99, - 111, - 114, - 114, - 117, - 112, - 116, - 105, - 111, - 110, - 115, - 99, - 105, - 101, - 110, - 116, - 105, - 115, - 116, - 115, - 101, - 120, - 112, - 108, - 105, - 99, - 105, - 116, - 108, - 121, - 105, - 110, - 115, - 116, - 101, - 97, - 100, - 32, - 111, - 102, - 100, - 105, - 109, - 101, - 110, - 115, - 105, - 111, - 110, - 115, - 32, - 111, - 110, - 67, - 108, - 105, - 99, - 107, - 61, - 34, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 100, - 101, - 112, - 97, - 114, - 116, - 109, - 101, - 110, - 116, - 111, - 99, - 99, - 117, - 112, - 97, - 116, - 105, - 111, - 110, - 115, - 111, - 111, - 110, - 32, - 97, - 102, - 116, - 101, - 114, - 105, - 110, - 118, - 101, - 115, - 116, - 109, - 101, - 110, - 116, - 112, - 114, - 111, - 110, - 111, - 117, - 110, - 99, - 101, - 100, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 105, - 101, - 100, - 101, - 120, - 112, - 101, - 114, - 105, - 109, - 101, - 110, - 116, - 77, - 97, - 110, - 97, - 103, - 101, - 109, - 101, - 110, - 116, - 103, - 101, - 111, - 103, - 114, - 97, - 112, - 104, - 105, - 99, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 46, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 40, - 47, - 100, - 101, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 99, - 111, - 110, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 112, - 117, - 110, - 105, - 115, - 104, - 109, - 101, - 110, - 116, - 101, - 108, - 105, - 109, - 105, - 110, - 97, - 116, - 101, - 100, - 114, - 101, - 115, - 105, - 115, - 116, - 97, - 110, - 99, - 101, - 97, - 100, - 97, - 112, - 116, - 97, - 116, - 105, - 111, - 110, - 111, - 112, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 119, - 101, - 108, - 108, - 32, - 107, - 110, - 111, - 119, - 110, - 115, - 117, - 112, - 112, - 108, - 101, - 109, - 101, - 110, - 116, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 100, - 104, - 49, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 48, - 112, - 120, - 59, - 109, - 97, - 114, - 103, - 105, - 110, - 109, - 101, - 99, - 104, - 97, - 110, - 105, - 99, - 97, - 108, - 115, - 116, - 97, - 116, - 105, - 115, - 116, - 105, - 99, - 115, - 99, - 101, - 108, - 101, - 98, - 114, - 97, - 116, - 101, - 100, - 71, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 10, - 10, - 68, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 114, - 115, - 97, - 114, - 116, - 105, - 102, - 105, - 99, - 105, - 97, - 108, - 101, - 113, - 117, - 105, - 118, - 97, - 108, - 101, - 110, - 116, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 116, - 101, - 100, - 67, - 111, - 109, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 97, - 116, - 116, - 97, - 99, - 104, - 109, - 101, - 110, - 116, - 60, - 115, - 112, - 97, - 110, - 32, - 105, - 100, - 61, - 34, - 116, - 104, - 101, - 114, - 101, - 32, - 119, - 101, - 114, - 101, - 78, - 101, - 100, - 101, - 114, - 108, - 97, - 110, - 100, - 115, - 98, - 101, - 121, - 111, - 110, - 100, - 32, - 116, - 104, - 101, - 114, - 101, - 103, - 105, - 115, - 116, - 101, - 114, - 101, - 100, - 106, - 111, - 117, - 114, - 110, - 97, - 108, - 105, - 115, - 116, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 97, - 108, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 108, - 97, - 110, - 103, - 61, - 34, - 101, - 110, - 34, - 32, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 13, - 10, - 97, - 98, - 115, - 111, - 108, - 117, - 116, - 101, - 59, - 32, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 105, - 110, - 103, - 101, - 120, - 116, - 114, - 101, - 109, - 101, - 108, - 121, - 32, - 109, - 97, - 105, - 110, - 115, - 116, - 114, - 101, - 97, - 109, - 60, - 47, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 105, - 116, - 121, - 101, - 109, - 112, - 108, - 111, - 121, - 109, - 101, - 110, - 116, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 13, - 10, - 32, - 99, - 111, - 108, - 115, - 112, - 97, - 110, - 61, - 34, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 10, - 32, - 32, - 99, - 111, - 110, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 97, - 98, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 32, - 60, - 47, - 112, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 105, - 110, - 116, - 101, - 103, - 114, - 97, - 116, - 101, - 100, - 34, - 32, - 108, - 97, - 110, - 103, - 61, - 34, - 101, - 110, - 80, - 111, - 114, - 116, - 117, - 103, - 117, - 101, - 115, - 101, - 115, - 117, - 98, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 105, - 110, - 100, - 105, - 118, - 105, - 100, - 117, - 97, - 108, - 105, - 109, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 109, - 117, - 108, - 116, - 105, - 109, - 101, - 100, - 105, - 97, - 97, - 108, - 109, - 111, - 115, - 116, - 32, - 97, - 108, - 108, - 112, - 120, - 32, - 115, - 111, - 108, - 105, - 100, - 32, - 35, - 97, - 112, - 97, - 114, - 116, - 32, - 102, - 114, - 111, - 109, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 32, - 116, - 111, - 105, - 110, - 32, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 99, - 114, - 105, - 116, - 105, - 99, - 105, - 122, - 101, - 100, - 101, - 120, - 99, - 101, - 112, - 116, - 32, - 102, - 111, - 114, - 103, - 117, - 105, - 100, - 101, - 108, - 105, - 110, - 101, - 115, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 108, - 121, - 114, - 101, - 109, - 97, - 114, - 107, - 97, - 98, - 108, - 101, - 116, - 104, - 101, - 32, - 115, - 101, - 99, - 111, - 110, - 100, - 104, - 50, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 97, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 40, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 112, - 97, - 114, - 97, - 109, - 101, - 116, - 101, - 114, - 115, - 112, - 114, - 111, - 104, - 105, - 98, - 105, - 116, - 101, - 100, - 61, - 32, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 100, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 112, - 101, - 114, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 114, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 102, - 111, - 117, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 112, - 120, - 59, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 117, - 108, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 101, - 114, - 115, - 109, - 105, - 108, - 108, - 101, - 110, - 110, - 105, - 117, - 109, - 104, - 105, - 115, - 32, - 102, - 97, - 116, - 104, - 101, - 114, - 116, - 104, - 101, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 110, - 111, - 45, - 114, - 101, - 112, - 101, - 97, - 116, - 59, - 99, - 111, - 109, - 109, - 101, - 114, - 99, - 105, - 97, - 108, - 105, - 110, - 100, - 117, - 115, - 116, - 114, - 105, - 97, - 108, - 101, - 110, - 99, - 111, - 117, - 114, - 97, - 103, - 101, - 100, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 111, - 102, - 32, - 117, - 110, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 101, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 99, - 121, - 82, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 99, - 111, - 111, - 114, - 100, - 105, - 110, - 97, - 116, - 101, - 100, - 105, - 115, - 99, - 108, - 97, - 105, - 109, - 101, - 114, - 101, - 120, - 112, - 101, - 100, - 105, - 116, - 105, - 111, - 110, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 105, - 110, - 103, - 99, - 97, - 108, - 99, - 117, - 108, - 97, - 116, - 101, - 100, - 115, - 105, - 109, - 112, - 108, - 105, - 102, - 105, - 101, - 100, - 108, - 101, - 103, - 105, - 116, - 105, - 109, - 97, - 116, - 101, - 115, - 117, - 98, - 115, - 116, - 114, - 105, - 110, - 103, - 40, - 48, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 108, - 121, - 105, - 108, - 108, - 117, - 115, - 116, - 114, - 97, - 116, - 101, - 102, - 105, - 118, - 101, - 32, - 121, - 101, - 97, - 114, - 115, - 105, - 110, - 115, - 116, - 114, - 117, - 109, - 101, - 110, - 116, - 80, - 117, - 98, - 108, - 105, - 115, - 104, - 105, - 110, - 103, - 49, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 112, - 115, - 121, - 99, - 104, - 111, - 108, - 111, - 103, - 121, - 99, - 111, - 110, - 102, - 105, - 100, - 101, - 110, - 99, - 101, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 97, - 98, - 115, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 102, - 111, - 99, - 117, - 115, - 101, - 100, - 32, - 111, - 110, - 106, - 111, - 105, - 110, - 101, - 100, - 32, - 116, - 104, - 101, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 115, - 112, - 114, - 101, - 118, - 105, - 111, - 117, - 115, - 108, - 121, - 62, - 60, - 47, - 105, - 102, - 114, - 97, - 109, - 101, - 62, - 111, - 110, - 99, - 101, - 32, - 97, - 103, - 97, - 105, - 110, - 98, - 117, - 116, - 32, - 114, - 97, - 116, - 104, - 101, - 114, - 105, - 109, - 109, - 105, - 103, - 114, - 97, - 110, - 116, - 115, - 111, - 102, - 32, - 99, - 111, - 117, - 114, - 115, - 101, - 44, - 97, - 32, - 103, - 114, - 111, - 117, - 112, - 32, - 111, - 102, - 76, - 105, - 116, - 101, - 114, - 97, - 116, - 117, - 114, - 101, - 85, - 110, - 108, - 105, - 107, - 101, - 32, - 116, - 104, - 101, - 60, - 47, - 97, - 62, - 38, - 110, - 98, - 115, - 112, - 59, - 10, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 32, - 116, - 104, - 101, - 67, - 111, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 97, - 117, - 116, - 111, - 109, - 111, - 98, - 105, - 108, - 101, - 80, - 114, - 111, - 116, - 101, - 115, - 116, - 97, - 110, - 116, - 97, - 103, - 103, - 114, - 101, - 115, - 115, - 105, - 118, - 101, - 97, - 102, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 83, - 105, - 109, - 105, - 108, - 97, - 114, - 108, - 121, - 44, - 34, - 32, - 47, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 13, - 10, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 118, - 105, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 116, - 104, - 101, - 32, - 117, - 115, - 101, - 32, - 111, - 102, - 118, - 111, - 108, - 117, - 110, - 116, - 101, - 101, - 114, - 115, - 97, - 116, - 116, - 114, - 97, - 99, - 116, - 105, - 111, - 110, - 117, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 116, - 104, - 114, - 101, - 97, - 116, - 101, - 110, - 101, - 100, - 42, - 60, - 33, - 91, - 67, - 68, - 65, - 84, - 65, - 91, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 99, - 101, - 105, - 110, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 116, - 104, - 101, - 32, - 108, - 97, - 116, - 116, - 101, - 114, - 60, - 47, - 102, - 111, - 114, - 109, - 62, - 10, - 60, - 47, - 46, - 105, - 110, - 100, - 101, - 120, - 79, - 102, - 40, - 39, - 105, - 32, - 61, - 32, - 48, - 59, - 32, - 105, - 32, - 60, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 100, - 101, - 118, - 111, - 116, - 101, - 100, - 32, - 116, - 111, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 115, - 101, - 97, - 114, - 99, - 104, - 32, - 102, - 111, - 114, - 117, - 108, - 116, - 105, - 109, - 97, - 116, - 101, - 108, - 121, - 116, - 111, - 117, - 114, - 110, - 97, - 109, - 101, - 110, - 116, - 97, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 115, - 115, - 111, - 45, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 125, - 10, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 101, - 118, - 97, - 108, - 117, - 97, - 116, - 105, - 111, - 110, - 101, - 109, - 112, - 104, - 97, - 115, - 105, - 122, - 101, - 100, - 97, - 99, - 99, - 101, - 115, - 115, - 105, - 98, - 108, - 101, - 60, - 47, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 62, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 105, - 111, - 110, - 97, - 108, - 111, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 77, - 101, - 97, - 110, - 119, - 104, - 105, - 108, - 101, - 44, - 105, - 110, - 100, - 117, - 115, - 116, - 114, - 105, - 101, - 115, - 60, - 47, - 97, - 62, - 60, - 98, - 114, - 32, - 47, - 62, - 104, - 97, - 115, - 32, - 98, - 101, - 99, - 111, - 109, - 101, - 97, - 115, - 112, - 101, - 99, - 116, - 115, - 32, - 111, - 102, - 84, - 101, - 108, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 98, - 97, - 115, - 107, - 101, - 116, - 98, - 97, - 108, - 108, - 98, - 111, - 116, - 104, - 32, - 115, - 105, - 100, - 101, - 115, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 105, - 110, - 103, - 97, - 110, - 32, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 60, - 105, - 109, - 103, - 32, - 97, - 108, - 116, - 61, - 34, - 97, - 100, - 118, - 101, - 110, - 116, - 117, - 114, - 101, - 115, - 104, - 105, - 115, - 32, - 109, - 111, - 116, - 104, - 101, - 114, - 109, - 97, - 110, - 99, - 104, - 101, - 115, - 116, - 101, - 114, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 108, - 101, - 115, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 99, - 111, - 109, - 109, - 101, - 110, - 116, - 97, - 114, - 121, - 101, - 102, - 102, - 101, - 99, - 116, - 115, - 32, - 111, - 102, - 100, - 101, - 99, - 105, - 100, - 101, - 100, - 32, - 116, - 111, - 34, - 62, - 60, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 114, - 115, - 74, - 111, - 117, - 114, - 110, - 97, - 108, - 32, - 111, - 102, - 100, - 105, - 102, - 102, - 105, - 99, - 117, - 108, - 116, - 121, - 102, - 97, - 99, - 105, - 108, - 105, - 116, - 97, - 116, - 101, - 97, - 99, - 99, - 101, - 112, - 116, - 97, - 98, - 108, - 101, - 115, - 116, - 121, - 108, - 101, - 46, - 99, - 115, - 115, - 34, - 9, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 105, - 110, - 110, - 111, - 118, - 97, - 116, - 105, - 111, - 110, - 62, - 67, - 111, - 112, - 121, - 114, - 105, - 103, - 104, - 116, - 115, - 105, - 116, - 117, - 97, - 116, - 105, - 111, - 110, - 115, - 119, - 111, - 117, - 108, - 100, - 32, - 104, - 97, - 118, - 101, - 98, - 117, - 115, - 105, - 110, - 101, - 115, - 115, - 101, - 115, - 68, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 115, - 116, - 97, - 116, - 101, - 109, - 101, - 110, - 116, - 115, - 111, - 102, - 116, - 101, - 110, - 32, - 117, - 115, - 101, - 100, - 112, - 101, - 114, - 115, - 105, - 115, - 116, - 101, - 110, - 116, - 105, - 110, - 32, - 74, - 97, - 110, - 117, - 97, - 114, - 121, - 99, - 111, - 109, - 112, - 114, - 105, - 115, - 105, - 110, - 103, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 10, - 9, - 100, - 105, - 112, - 108, - 111, - 109, - 97, - 116, - 105, - 99, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 105, - 110, - 103, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 105, - 110, - 103, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 115, - 109, - 97, - 121, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 32, - 111, - 102, - 32, - 111, - 110, - 99, - 108, - 105, - 99, - 107, - 61, - 34, - 73, - 116, - 32, - 105, - 115, - 32, - 97, - 108, - 115, - 111, - 102, - 105, - 110, - 97, - 110, - 99, - 105, - 97, - 108, - 32, - 109, - 97, - 107, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 76, - 117, - 120, - 101, - 109, - 98, - 111, - 117, - 114, - 103, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 114, - 101, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 101, - 110, - 103, - 97, - 103, - 101, - 100, - 32, - 105, - 110, - 34, - 115, - 99, - 114, - 105, - 112, - 116, - 34, - 41, - 59, - 98, - 117, - 116, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 101, - 108, - 101, - 99, - 116, - 114, - 111, - 110, - 105, - 99, - 111, - 110, - 115, - 117, - 98, - 109, - 105, - 116, - 61, - 34, - 10, - 60, - 33, - 45, - 45, - 32, - 69, - 110, - 100, - 32, - 101, - 108, - 101, - 99, - 116, - 114, - 105, - 99, - 97, - 108, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 108, - 121, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 105, - 111, - 110, - 116, - 111, - 112, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 117, - 110, - 108, - 105, - 107, - 101, - 32, - 116, - 104, - 101, - 65, - 117, - 115, - 116, - 114, - 97, - 108, - 105, - 97, - 110, - 79, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 108, - 121, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 10, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 115, - 101, - 100, - 105, - 110, - 105, - 116, - 105, - 97, - 108, - 105, - 122, - 101, - 108, - 105, - 109, - 105, - 116, - 101, - 100, - 32, - 116, - 111, - 65, - 108, - 101, - 120, - 97, - 110, - 100, - 114, - 105, - 97, - 114, - 101, - 116, - 105, - 114, - 101, - 109, - 101, - 110, - 116, - 65, - 100, - 118, - 101, - 110, - 116, - 117, - 114, - 101, - 115, - 102, - 111, - 117, - 114, - 32, - 121, - 101, - 97, - 114, - 115, - 10, - 10, - 38, - 108, - 116, - 59, - 33, - 45, - 45, - 32, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 105, - 110, - 103, - 100, - 101, - 99, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 104, - 51, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 111, - 114, - 105, - 103, - 105, - 110, - 115, - 32, - 111, - 102, - 111, - 98, - 108, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 103, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 99, - 108, - 97, - 115, - 115, - 105, - 102, - 105, - 101, - 100, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 97, - 100, - 118, - 97, - 110, - 116, - 97, - 103, - 101, - 115, - 98, - 101, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 97, - 110, - 115, - 60, - 98, - 97, - 115, - 101, - 32, - 104, - 114, - 101, - 102, - 114, - 101, - 112, - 101, - 97, - 116, - 101, - 100, - 108, - 121, - 119, - 105, - 108, - 108, - 105, - 110, - 103, - 32, - 116, - 111, - 99, - 111, - 109, - 112, - 97, - 114, - 97, - 98, - 108, - 101, - 100, - 101, - 115, - 105, - 103, - 110, - 97, - 116, - 101, - 100, - 110, - 111, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 97, - 108, - 105, - 110, - 115, - 105, - 100, - 101, - 32, - 116, - 104, - 101, - 114, - 101, - 118, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 101, - 110, - 100, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 32, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 122, - 101, - 100, - 114, - 101, - 102, - 117, - 115, - 101, - 100, - 32, - 116, - 111, - 116, - 97, - 107, - 101, - 32, - 112, - 108, - 97, - 99, - 101, - 97, - 117, - 116, - 111, - 110, - 111, - 109, - 111, - 117, - 115, - 99, - 111, - 109, - 112, - 114, - 111, - 109, - 105, - 115, - 101, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 32, - 114, - 101, - 115, - 116, - 97, - 117, - 114, - 97, - 110, - 116, - 116, - 119, - 111, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 70, - 101, - 98, - 114, - 117, - 97, - 114, - 121, - 32, - 50, - 113, - 117, - 97, - 108, - 105, - 116, - 121, - 32, - 111, - 102, - 115, - 119, - 102, - 111, - 98, - 106, - 101, - 99, - 116, - 46, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 110, - 101, - 97, - 114, - 108, - 121, - 32, - 97, - 108, - 108, - 119, - 114, - 105, - 116, - 116, - 101, - 110, - 32, - 98, - 121, - 105, - 110, - 116, - 101, - 114, - 118, - 105, - 101, - 119, - 115, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 119, - 105, - 116, - 104, - 100, - 114, - 97, - 119, - 97, - 108, - 102, - 108, - 111, - 97, - 116, - 58, - 108, - 101, - 102, - 116, - 105, - 115, - 32, - 117, - 115, - 117, - 97, - 108, - 108, - 121, - 99, - 97, - 110, - 100, - 105, - 100, - 97, - 116, - 101, - 115, - 110, - 101, - 119, - 115, - 112, - 97, - 112, - 101, - 114, - 115, - 109, - 121, - 115, - 116, - 101, - 114, - 105, - 111, - 117, - 115, - 68, - 101, - 112, - 97, - 114, - 116, - 109, - 101, - 110, - 116, - 98, - 101, - 115, - 116, - 32, - 107, - 110, - 111, - 119, - 110, - 112, - 97, - 114, - 108, - 105, - 97, - 109, - 101, - 110, - 116, - 115, - 117, - 112, - 112, - 114, - 101, - 115, - 115, - 101, - 100, - 99, - 111, - 110, - 118, - 101, - 110, - 105, - 101, - 110, - 116, - 114, - 101, - 109, - 101, - 109, - 98, - 101, - 114, - 101, - 100, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 115, - 121, - 115, - 116, - 101, - 109, - 97, - 116, - 105, - 99, - 104, - 97, - 115, - 32, - 108, - 101, - 100, - 32, - 116, - 111, - 112, - 114, - 111, - 112, - 97, - 103, - 97, - 110, - 100, - 97, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 108, - 101, - 100, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 115, - 99, - 101, - 114, - 101, - 109, - 111, - 110, - 105, - 97, - 108, - 112, - 114, - 111, - 99, - 108, - 97, - 105, - 109, - 101, - 100, - 80, - 114, - 111, - 116, - 101, - 99, - 116, - 105, - 111, - 110, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 83, - 99, - 105, - 101, - 110, - 116, - 105, - 102, - 105, - 99, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 110, - 111, - 45, - 116, - 114, - 97, - 100, - 101, - 109, - 97, - 114, - 107, - 115, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 32, - 119, - 105, - 100, - 101, - 115, - 112, - 114, - 101, - 97, - 100, - 76, - 105, - 98, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 116, - 111, - 111, - 107, - 32, - 112, - 108, - 97, - 99, - 101, - 100, - 97, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 115, - 32, - 108, - 111, - 110, - 103, - 32, - 97, - 115, - 105, - 109, - 112, - 114, - 105, - 115, - 111, - 110, - 101, - 100, - 65, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 109, - 76, - 97, - 98, - 111, - 114, - 97, - 116, - 111, - 114, - 121, - 78, - 111, - 118, - 101, - 109, - 98, - 101, - 114, - 32, - 50, - 101, - 120, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 115, - 73, - 110, - 100, - 117, - 115, - 116, - 114, - 105, - 97, - 108, - 118, - 97, - 114, - 105, - 101, - 116, - 121, - 32, - 111, - 102, - 102, - 108, - 111, - 97, - 116, - 58, - 32, - 108, - 101, - 102, - 68, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 97, - 115, - 115, - 101, - 115, - 115, - 109, - 101, - 110, - 116, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 32, - 100, - 101, - 97, - 108, - 115, - 32, - 119, - 105, - 116, - 104, - 83, - 116, - 97, - 116, - 105, - 115, - 116, - 105, - 99, - 115, - 111, - 99, - 99, - 117, - 114, - 114, - 101, - 110, - 99, - 101, - 47, - 117, - 108, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 99, - 108, - 101, - 97, - 114, - 102, - 105, - 120, - 34, - 62, - 116, - 104, - 101, - 32, - 112, - 117, - 98, - 108, - 105, - 99, - 109, - 97, - 110, - 121, - 32, - 121, - 101, - 97, - 114, - 115, - 119, - 104, - 105, - 99, - 104, - 32, - 119, - 101, - 114, - 101, - 111, - 118, - 101, - 114, - 32, - 116, - 105, - 109, - 101, - 44, - 115, - 121, - 110, - 111, - 110, - 121, - 109, - 111, - 117, - 115, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 62, - 10, - 112, - 114, - 101, - 115, - 117, - 109, - 97, - 98, - 108, - 121, - 104, - 105, - 115, - 32, - 102, - 97, - 109, - 105, - 108, - 121, - 117, - 115, - 101, - 114, - 65, - 103, - 101, - 110, - 116, - 46, - 117, - 110, - 101, - 120, - 112, - 101, - 99, - 116, - 101, - 100, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 32, - 99, - 104, - 97, - 108, - 108, - 101, - 110, - 103, - 101, - 100, - 97, - 32, - 109, - 105, - 110, - 111, - 114, - 105, - 116, - 121, - 117, - 110, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 34, - 98, - 101, - 108, - 111, - 110, - 103, - 115, - 32, - 116, - 111, - 116, - 97, - 107, - 101, - 110, - 32, - 102, - 114, - 111, - 109, - 105, - 110, - 32, - 79, - 99, - 116, - 111, - 98, - 101, - 114, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 32, - 115, - 97, - 105, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 114, - 101, - 108, - 105, - 103, - 105, - 111, - 117, - 115, - 32, - 70, - 101, - 100, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 114, - 111, - 119, - 115, - 112, - 97, - 110, - 61, - 34, - 111, - 110, - 108, - 121, - 32, - 97, - 32, - 102, - 101, - 119, - 109, - 101, - 97, - 110, - 116, - 32, - 116, - 104, - 97, - 116, - 108, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 45, - 45, - 62, - 13, - 10, - 60, - 100, - 105, - 118, - 32, - 60, - 102, - 105, - 101, - 108, - 100, - 115, - 101, - 116, - 62, - 65, - 114, - 99, - 104, - 98, - 105, - 115, - 104, - 111, - 112, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 110, - 111, - 98, - 101, - 105, - 110, - 103, - 32, - 117, - 115, - 101, - 100, - 97, - 112, - 112, - 114, - 111, - 97, - 99, - 104, - 101, - 115, - 112, - 114, - 105, - 118, - 105, - 108, - 101, - 103, - 101, - 115, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 114, - 101, - 115, - 117, - 108, - 116, - 115, - 32, - 105, - 110, - 109, - 97, - 121, - 32, - 98, - 101, - 32, - 116, - 104, - 101, - 69, - 97, - 115, - 116, - 101, - 114, - 32, - 101, - 103, - 103, - 109, - 101, - 99, - 104, - 97, - 110, - 105, - 115, - 109, - 115, - 114, - 101, - 97, - 115, - 111, - 110, - 97, - 98, - 108, - 101, - 80, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 67, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 34, - 62, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 47, - 105, - 110, - 100, - 101, - 120, - 46, - 112, - 104, - 112, - 97, - 114, - 114, - 105, - 118, - 97, - 108, - 32, - 111, - 102, - 45, - 106, - 115, - 115, - 100, - 107, - 39, - 41, - 41, - 59, - 109, - 97, - 110, - 97, - 103, - 101, - 100, - 32, - 116, - 111, - 105, - 110, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 99, - 97, - 115, - 117, - 97, - 108, - 116, - 105, - 101, - 115, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 105, - 111, - 110, - 67, - 104, - 114, - 105, - 115, - 116, - 105, - 97, - 110, - 115, - 83, - 101, - 112, - 116, - 101, - 109, - 98, - 101, - 114, - 32, - 97, - 114, - 105, - 116, - 104, - 109, - 101, - 116, - 105, - 99, - 112, - 114, - 111, - 99, - 101, - 100, - 117, - 114, - 101, - 115, - 109, - 105, - 103, - 104, - 116, - 32, - 104, - 97, - 118, - 101, - 80, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 105, - 116, - 32, - 97, - 112, - 112, - 101, - 97, - 114, - 115, - 80, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 121, - 102, - 114, - 105, - 101, - 110, - 100, - 115, - 104, - 105, - 112, - 108, - 101, - 97, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 103, - 105, - 118, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 116, - 111, - 119, - 97, - 114, - 100, - 32, - 116, - 104, - 101, - 103, - 117, - 97, - 114, - 97, - 110, - 116, - 101, - 101, - 100, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 101, - 100, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 48, - 48, - 48, - 118, - 105, - 100, - 101, - 111, - 32, - 103, - 97, - 109, - 101, - 99, - 111, - 109, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 114, - 101, - 102, - 108, - 101, - 99, - 116, - 105, - 110, - 103, - 99, - 104, - 97, - 110, - 103, - 101, - 32, - 116, - 104, - 101, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 101, - 100, - 115, - 97, - 110, - 115, - 45, - 115, - 101, - 114, - 105, - 102, - 111, - 110, - 107, - 101, - 121, - 112, - 114, - 101, - 115, - 115, - 59, - 32, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 72, - 101, - 32, - 119, - 97, - 115, - 32, - 116, - 104, - 101, - 117, - 110, - 100, - 101, - 114, - 108, - 121, - 105, - 110, - 103, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 108, - 121, - 32, - 44, - 32, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 115, - 114, - 99, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 105, - 118, - 101, - 115, - 105, - 110, - 99, - 101, - 32, - 116, - 104, - 101, - 32, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 32, - 110, - 101, - 116, - 119, - 111, - 114, - 107, - 105, - 110, - 103, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 105, - 110, - 103, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 108, - 111, - 119, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 115, - 104, - 111, - 119, - 115, - 32, - 116, - 104, - 97, - 116, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 10, - 9, - 9, - 99, - 111, - 109, - 112, - 108, - 97, - 105, - 110, - 116, - 115, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 111, - 117, - 115, - 113, - 117, - 97, - 110, - 116, - 105, - 116, - 105, - 101, - 115, - 97, - 115, - 116, - 114, - 111, - 110, - 111, - 109, - 101, - 114, - 104, - 101, - 32, - 100, - 105, - 100, - 32, - 110, - 111, - 116, - 100, - 117, - 101, - 32, - 116, - 111, - 32, - 105, - 116, - 115, - 97, - 112, - 112, - 108, - 105, - 101, - 100, - 32, - 116, - 111, - 97, - 110, - 32, - 97, - 118, - 101, - 114, - 97, - 103, - 101, - 101, - 102, - 102, - 111, - 114, - 116, - 115, - 32, - 116, - 111, - 116, - 104, - 101, - 32, - 102, - 117, - 116, - 117, - 114, - 101, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 32, - 116, - 111, - 84, - 104, - 101, - 114, - 101, - 102, - 111, - 114, - 101, - 44, - 99, - 97, - 112, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 110, - 119, - 97, - 115, - 32, - 102, - 111, - 114, - 109, - 101, - 100, - 69, - 108, - 101, - 99, - 116, - 114, - 111, - 110, - 105, - 99, - 107, - 105, - 108, - 111, - 109, - 101, - 116, - 101, - 114, - 115, - 99, - 104, - 97, - 108, - 108, - 101, - 110, - 103, - 101, - 115, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 105, - 110, - 103, - 116, - 104, - 101, - 32, - 102, - 111, - 114, - 109, - 101, - 114, - 105, - 110, - 100, - 105, - 103, - 101, - 110, - 111, - 117, - 115, - 100, - 105, - 114, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 115, - 117, - 98, - 115, - 105, - 100, - 105, - 97, - 114, - 121, - 99, - 111, - 110, - 115, - 112, - 105, - 114, - 97, - 99, - 121, - 100, - 101, - 116, - 97, - 105, - 108, - 115, - 32, - 111, - 102, - 97, - 110, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 97, - 102, - 102, - 111, - 114, - 100, - 97, - 98, - 108, - 101, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 99, - 101, - 115, - 114, - 101, - 97, - 115, - 111, - 110, - 32, - 102, - 111, - 114, - 99, - 111, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 105, - 116, - 101, - 109, - 116, - 121, - 112, - 101, - 61, - 34, - 97, - 98, - 115, - 111, - 108, - 117, - 116, - 101, - 108, - 121, - 115, - 117, - 112, - 112, - 111, - 115, - 101, - 100, - 108, - 121, - 114, - 101, - 109, - 97, - 105, - 110, - 101, - 100, - 32, - 97, - 97, - 116, - 116, - 114, - 97, - 99, - 116, - 105, - 118, - 101, - 116, - 114, - 97, - 118, - 101, - 108, - 108, - 105, - 110, - 103, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 108, - 121, - 102, - 111, - 99, - 117, - 115, - 101, - 115, - 32, - 111, - 110, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 97, - 114, - 121, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 98, - 108, - 101, - 102, - 111, - 117, - 110, - 100, - 32, - 116, - 104, - 97, - 116, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 109, - 97, - 110, - 117, - 115, - 99, - 114, - 105, - 112, - 116, - 115, - 116, - 97, - 110, - 100, - 115, - 32, - 102, - 111, - 114, - 32, - 110, - 111, - 45, - 114, - 101, - 112, - 101, - 97, - 116, - 40, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 67, - 111, - 109, - 109, - 101, - 114, - 99, - 105, - 97, - 108, - 105, - 110, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 117, - 110, - 100, - 101, - 114, - 116, - 97, - 107, - 101, - 110, - 113, - 117, - 97, - 114, - 116, - 101, - 114, - 32, - 111, - 102, - 97, - 110, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 108, - 121, - 105, - 110, - 100, - 101, - 120, - 46, - 112, - 104, - 112, - 63, - 60, - 47, - 98, - 117, - 116, - 116, - 111, - 110, - 62, - 10, - 112, - 101, - 114, - 99, - 101, - 110, - 116, - 97, - 103, - 101, - 98, - 101, - 115, - 116, - 45, - 107, - 110, - 111, - 119, - 110, - 99, - 114, - 101, - 97, - 116, - 105, - 110, - 103, - 32, - 97, - 34, - 32, - 100, - 105, - 114, - 61, - 34, - 108, - 116, - 114, - 76, - 105, - 101, - 117, - 116, - 101, - 110, - 97, - 110, - 116, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 116, - 104, - 101, - 121, - 32, - 119, - 111, - 117, - 108, - 100, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 111, - 102, - 109, - 97, - 100, - 101, - 32, - 117, - 112, - 32, - 111, - 102, - 110, - 111, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 99, - 108, - 101, - 97, - 114, - 32, - 116, - 104, - 97, - 116, - 97, - 114, - 103, - 117, - 101, - 32, - 116, - 104, - 97, - 116, - 116, - 111, - 32, - 97, - 110, - 111, - 116, - 104, - 101, - 114, - 99, - 104, - 105, - 108, - 100, - 114, - 101, - 110, - 39, - 115, - 112, - 117, - 114, - 112, - 111, - 115, - 101, - 32, - 111, - 102, - 102, - 111, - 114, - 109, - 117, - 108, - 97, - 116, - 101, - 100, - 98, - 97, - 115, - 101, - 100, - 32, - 117, - 112, - 111, - 110, - 116, - 104, - 101, - 32, - 114, - 101, - 103, - 105, - 111, - 110, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 32, - 111, - 102, - 112, - 97, - 115, - 115, - 101, - 110, - 103, - 101, - 114, - 115, - 112, - 111, - 115, - 115, - 101, - 115, - 115, - 105, - 111, - 110, - 46, - 10, - 10, - 73, - 110, - 32, - 116, - 104, - 101, - 32, - 66, - 101, - 102, - 111, - 114, - 101, - 32, - 116, - 104, - 101, - 97, - 102, - 116, - 101, - 114, - 119, - 97, - 114, - 100, - 115, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 108, - 121, - 32, - 97, - 99, - 114, - 111, - 115, - 115, - 32, - 116, - 104, - 101, - 115, - 99, - 105, - 101, - 110, - 116, - 105, - 102, - 105, - 99, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 116, - 121, - 46, - 99, - 97, - 112, - 105, - 116, - 97, - 108, - 105, - 115, - 109, - 105, - 110, - 32, - 71, - 101, - 114, - 109, - 97, - 110, - 121, - 114, - 105, - 103, - 104, - 116, - 45, - 119, - 105, - 110, - 103, - 116, - 104, - 101, - 32, - 115, - 121, - 115, - 116, - 101, - 109, - 83, - 111, - 99, - 105, - 101, - 116, - 121, - 32, - 111, - 102, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 105, - 97, - 110, - 100, - 105, - 114, - 101, - 99, - 116, - 105, - 111, - 110, - 58, - 119, - 101, - 110, - 116, - 32, - 111, - 110, - 32, - 116, - 111, - 114, - 101, - 109, - 111, - 118, - 97, - 108, - 32, - 111, - 102, - 32, - 78, - 101, - 119, - 32, - 89, - 111, - 114, - 107, - 32, - 97, - 112, - 97, - 114, - 116, - 109, - 101, - 110, - 116, - 115, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 117, - 110, - 108, - 101, - 115, - 115, - 32, - 116, - 104, - 101, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 99, - 97, - 108, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 32, - 97, - 100, - 101, - 102, - 105, - 110, - 105, - 116, - 105, - 118, - 101, - 105, - 110, - 103, - 114, - 101, - 100, - 105, - 101, - 110, - 116, - 97, - 116, - 116, - 101, - 110, - 100, - 97, - 110, - 99, - 101, - 67, - 101, - 110, - 116, - 101, - 114, - 32, - 102, - 111, - 114, - 112, - 114, - 111, - 109, - 105, - 110, - 101, - 110, - 99, - 101, - 114, - 101, - 97, - 100, - 121, - 83, - 116, - 97, - 116, - 101, - 115, - 116, - 114, - 97, - 116, - 101, - 103, - 105, - 101, - 115, - 98, - 117, - 116, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 97, - 115, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 99, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 99, - 108, - 97, - 105, - 109, - 32, - 116, - 104, - 97, - 116, - 108, - 97, - 98, - 111, - 114, - 97, - 116, - 111, - 114, - 121, - 99, - 111, - 109, - 112, - 97, - 116, - 105, - 98, - 108, - 101, - 102, - 97, - 105, - 108, - 117, - 114, - 101, - 32, - 111, - 102, - 44, - 32, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 32, - 98, - 101, - 103, - 97, - 110, - 32, - 119, - 105, - 116, - 104, - 117, - 115, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 116, - 111, - 32, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 32, - 111, - 102, - 102, - 114, - 111, - 109, - 32, - 119, - 104, - 105, - 99, - 104, - 47, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 103, - 101, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 111, - 102, - 100, - 101, - 108, - 105, - 98, - 101, - 114, - 97, - 116, - 101, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 32, - 104, - 111, - 108, - 100, - 115, - 32, - 116, - 104, - 97, - 116, - 105, - 110, - 103, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 118, - 97, - 108, - 105, - 103, - 110, - 61, - 116, - 111, - 112, - 116, - 104, - 101, - 32, - 71, - 101, - 114, - 109, - 97, - 110, - 111, - 117, - 116, - 115, - 105, - 100, - 101, - 32, - 111, - 102, - 110, - 101, - 103, - 111, - 116, - 105, - 97, - 116, - 101, - 100, - 104, - 105, - 115, - 32, - 99, - 97, - 114, - 101, - 101, - 114, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 105, - 111, - 110, - 105, - 100, - 61, - 34, - 115, - 101, - 97, - 114, - 99, - 104, - 119, - 97, - 115, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 116, - 104, - 101, - 32, - 102, - 111, - 117, - 114, - 116, - 104, - 114, - 101, - 99, - 114, - 101, - 97, - 116, - 105, - 111, - 110, - 111, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 119, - 104, - 105, - 108, - 101, - 32, - 116, - 104, - 101, - 32, - 101, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 44, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 105, - 110, - 103, - 97, - 99, - 99, - 117, - 114, - 97, - 116, - 101, - 108, - 121, - 119, - 101, - 114, - 101, - 32, - 98, - 117, - 105, - 108, - 116, - 119, - 97, - 115, - 32, - 107, - 105, - 108, - 108, - 101, - 100, - 97, - 103, - 114, - 101, - 101, - 109, - 101, - 110, - 116, - 115, - 109, - 117, - 99, - 104, - 32, - 109, - 111, - 114, - 101, - 32, - 68, - 117, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 119, - 105, - 100, - 116, - 104, - 58, - 32, - 49, - 48, - 48, - 115, - 111, - 109, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 75, - 105, - 110, - 103, - 100, - 111, - 109, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 101, - 110, - 116, - 105, - 114, - 101, - 102, - 97, - 109, - 111, - 117, - 115, - 32, - 102, - 111, - 114, - 116, - 111, - 32, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 111, - 98, - 106, - 101, - 99, - 116, - 105, - 118, - 101, - 115, - 116, - 104, - 101, - 32, - 70, - 114, - 101, - 110, - 99, - 104, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 97, - 110, - 100, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 100, - 34, - 62, - 105, - 115, - 32, - 115, - 97, - 105, - 100, - 32, - 116, - 111, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 97, - 108, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 100, - 117, - 109, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 116, - 101, - 110, - 97, - 32, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 45, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 32, - 79, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 32, - 119, - 111, - 114, - 108, - 100, - 119, - 105, - 100, - 101, - 46, - 97, - 114, - 105, - 97, - 45, - 108, - 97, - 98, - 101, - 108, - 116, - 104, - 101, - 32, - 112, - 108, - 97, - 110, - 101, - 116, - 97, - 110, - 100, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 100, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 108, - 111, - 111, - 107, - 105, - 110, - 103, - 32, - 97, - 116, - 98, - 101, - 110, - 101, - 102, - 105, - 99, - 105, - 97, - 108, - 97, - 114, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 109, - 111, - 110, - 105, - 116, - 111, - 114, - 105, - 110, - 103, - 114, - 101, - 112, - 111, - 114, - 116, - 101, - 100, - 108, - 121, - 116, - 104, - 101, - 32, - 109, - 111, - 100, - 101, - 114, - 110, - 119, - 111, - 114, - 107, - 105, - 110, - 103, - 32, - 111, - 110, - 97, - 108, - 108, - 111, - 119, - 101, - 100, - 32, - 116, - 111, - 119, - 104, - 101, - 114, - 101, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 110, - 111, - 118, - 97, - 116, - 105, - 118, - 101, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 115, - 111, - 117, - 110, - 100, - 116, - 114, - 97, - 99, - 107, - 115, - 101, - 97, - 114, - 99, - 104, - 70, - 111, - 114, - 109, - 116, - 101, - 110, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 105, - 110, - 112, - 117, - 116, - 32, - 105, - 100, - 61, - 34, - 111, - 112, - 101, - 110, - 105, - 110, - 103, - 32, - 111, - 102, - 114, - 101, - 115, - 116, - 114, - 105, - 99, - 116, - 101, - 100, - 97, - 100, - 111, - 112, - 116, - 101, - 100, - 32, - 98, - 121, - 97, - 100, - 100, - 114, - 101, - 115, - 115, - 105, - 110, - 103, - 116, - 104, - 101, - 111, - 108, - 111, - 103, - 105, - 97, - 110, - 109, - 101, - 116, - 104, - 111, - 100, - 115, - 32, - 111, - 102, - 118, - 97, - 114, - 105, - 97, - 110, - 116, - 32, - 111, - 102, - 67, - 104, - 114, - 105, - 115, - 116, - 105, - 97, - 110, - 32, - 118, - 101, - 114, - 121, - 32, - 108, - 97, - 114, - 103, - 101, - 97, - 117, - 116, - 111, - 109, - 111, - 116, - 105, - 118, - 101, - 98, - 121, - 32, - 102, - 97, - 114, - 32, - 116, - 104, - 101, - 114, - 97, - 110, - 103, - 101, - 32, - 102, - 114, - 111, - 109, - 112, - 117, - 114, - 115, - 117, - 105, - 116, - 32, - 111, - 102, - 102, - 111, - 108, - 108, - 111, - 119, - 32, - 116, - 104, - 101, - 98, - 114, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 111, - 105, - 110, - 32, - 69, - 110, - 103, - 108, - 97, - 110, - 100, - 97, - 103, - 114, - 101, - 101, - 32, - 116, - 104, - 97, - 116, - 97, - 99, - 99, - 117, - 115, - 101, - 100, - 32, - 111, - 102, - 99, - 111, - 109, - 101, - 115, - 32, - 102, - 114, - 111, - 109, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 105, - 110, - 103, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 104, - 105, - 115, - 32, - 111, - 114, - 32, - 104, - 101, - 114, - 116, - 114, - 101, - 109, - 101, - 110, - 100, - 111, - 117, - 115, - 102, - 114, - 101, - 101, - 100, - 111, - 109, - 32, - 111, - 102, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 105, - 110, - 103, - 48, - 32, - 49, - 101, - 109, - 32, - 49, - 101, - 109, - 59, - 66, - 97, - 115, - 107, - 101, - 116, - 98, - 97, - 108, - 108, - 47, - 115, - 116, - 121, - 108, - 101, - 46, - 99, - 115, - 115, - 97, - 110, - 32, - 101, - 97, - 114, - 108, - 105, - 101, - 114, - 101, - 118, - 101, - 110, - 32, - 97, - 102, - 116, - 101, - 114, - 47, - 34, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 46, - 99, - 111, - 109, - 47, - 105, - 110, - 100, - 101, - 120, - 116, - 97, - 107, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 112, - 105, - 116, - 116, - 115, - 98, - 117, - 114, - 103, - 104, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 62, - 13, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 40, - 102, - 116, - 117, - 114, - 110, - 101, - 100, - 32, - 111, - 117, - 116, - 104, - 97, - 118, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 13, - 10, - 32, - 111, - 99, - 99, - 97, - 115, - 105, - 111, - 110, - 97, - 108, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 105, - 116, - 115, - 116, - 97, - 114, - 116, - 101, - 100, - 32, - 116, - 111, - 112, - 104, - 121, - 115, - 105, - 99, - 97, - 108, - 108, - 121, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 32, - 32, - 99, - 114, - 101, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 67, - 117, - 114, - 114, - 101, - 110, - 116, - 108, - 121, - 44, - 32, - 98, - 103, - 99, - 111, - 108, - 111, - 114, - 61, - 34, - 116, - 97, - 98, - 105, - 110, - 100, - 101, - 120, - 61, - 34, - 100, - 105, - 115, - 97, - 115, - 116, - 114, - 111, - 117, - 115, - 65, - 110, - 97, - 108, - 121, - 116, - 105, - 99, - 115, - 32, - 97, - 108, - 115, - 111, - 32, - 104, - 97, - 115, - 32, - 97, - 62, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 60, - 47, - 115, - 116, - 121, - 108, - 101, - 62, - 10, - 60, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 102, - 111, - 114, - 115, - 105, - 110, - 103, - 101, - 114, - 32, - 97, - 110, - 100, - 46, - 115, - 114, - 99, - 32, - 61, - 32, - 34, - 47, - 47, - 118, - 105, - 111, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 116, - 104, - 105, - 115, - 32, - 112, - 111, - 105, - 110, - 116, - 99, - 111, - 110, - 115, - 116, - 97, - 110, - 116, - 108, - 121, - 105, - 115, - 32, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 114, - 101, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 115, - 100, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 110, - 101, - 100, - 101, - 114, - 108, - 97, - 110, - 100, - 115, - 112, - 111, - 114, - 116, - 117, - 103, - 117, - 195, - 170, - 115, - 215, - 162, - 215, - 145, - 215, - 168, - 215, - 153, - 215, - 170, - 217, - 129, - 216, - 167, - 216, - 177, - 216, - 179, - 219, - 140, - 100, - 101, - 115, - 97, - 114, - 114, - 111, - 108, - 108, - 111, - 99, - 111, - 109, - 101, - 110, - 116, - 97, - 114, - 105, - 111, - 101, - 100, - 117, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 115, - 101, - 112, - 116, - 105, - 101, - 109, - 98, - 114, - 101, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 97, - 100, - 111, - 100, - 105, - 114, - 101, - 99, - 99, - 105, - 195, - 179, - 110, - 117, - 98, - 105, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 112, - 117, - 98, - 108, - 105, - 99, - 105, - 100, - 97, - 100, - 114, - 101, - 115, - 112, - 117, - 101, - 115, - 116, - 97, - 115, - 114, - 101, - 115, - 117, - 108, - 116, - 97, - 100, - 111, - 115, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 101, - 114, - 101, - 115, - 101, - 114, - 118, - 97, - 100, - 111, - 115, - 97, - 114, - 116, - 195, - 173, - 99, - 117, - 108, - 111, - 115, - 100, - 105, - 102, - 101, - 114, - 101, - 110, - 116, - 101, - 115, - 115, - 105, - 103, - 117, - 105, - 101, - 110, - 116, - 101, - 115, - 114, - 101, - 112, - 195, - 186, - 98, - 108, - 105, - 99, - 97, - 115, - 105, - 116, - 117, - 97, - 99, - 105, - 195, - 179, - 110, - 109, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 105, - 111, - 112, - 114, - 105, - 118, - 97, - 99, - 105, - 100, - 97, - 100, - 100, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 105, - 111, - 102, - 111, - 114, - 109, - 97, - 99, - 105, - 195, - 179, - 110, - 112, - 111, - 98, - 108, - 97, - 99, - 105, - 195, - 179, - 110, - 112, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 101, - 99, - 111, - 110, - 116, - 101, - 110, - 105, - 100, - 111, - 115, - 97, - 99, - 99, - 101, - 115, - 111, - 114, - 105, - 111, - 115, - 116, - 101, - 99, - 104, - 110, - 111, - 114, - 97, - 116, - 105, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 101, - 115, - 99, - 97, - 116, - 101, - 103, - 111, - 114, - 195, - 173, - 97, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 101, - 115, - 100, - 105, - 115, - 112, - 111, - 110, - 105, - 98, - 108, - 101, - 97, - 99, - 116, - 117, - 97, - 108, - 105, - 100, - 97, - 100, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 105, - 97, - 118, - 97, - 108, - 108, - 97, - 100, - 111, - 108, - 105, - 100, - 98, - 105, - 98, - 108, - 105, - 111, - 116, - 101, - 99, - 97, - 114, - 101, - 108, - 97, - 99, - 105, - 111, - 110, - 101, - 115, - 99, - 97, - 108, - 101, - 110, - 100, - 97, - 114, - 105, - 111, - 112, - 111, - 108, - 195, - 173, - 116, - 105, - 99, - 97, - 115, - 97, - 110, - 116, - 101, - 114, - 105, - 111, - 114, - 101, - 115, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 111, - 115, - 110, - 97, - 116, - 117, - 114, - 97, - 108, - 101, - 122, - 97, - 109, - 97, - 116, - 101, - 114, - 105, - 97, - 108, - 101, - 115, - 100, - 105, - 102, - 101, - 114, - 101, - 110, - 99, - 105, - 97, - 101, - 99, - 111, - 110, - 195, - 179, - 109, - 105, - 99, - 97, - 116, - 114, - 97, - 110, - 115, - 112, - 111, - 114, - 116, - 101, - 114, - 111, - 100, - 114, - 195, - 173, - 103, - 117, - 101, - 122, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 114, - 101, - 110, - 99, - 117, - 101, - 110, - 116, - 114, - 97, - 110, - 100, - 105, - 115, - 99, - 117, - 115, - 105, - 195, - 179, - 110, - 101, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 97, - 102, - 117, - 110, - 100, - 97, - 99, - 105, - 195, - 179, - 110, - 102, - 114, - 101, - 99, - 117, - 101, - 110, - 116, - 101, - 115, - 112, - 101, - 114, - 109, - 97, - 110, - 101, - 110, - 116, - 101, - 116, - 111, - 116, - 97, - 108, - 109, - 101, - 110, - 116, - 101, - 208, - 188, - 208, - 190, - 208, - 182, - 208, - 189, - 208, - 190, - 208, - 177, - 209, - 131, - 208, - 180, - 208, - 181, - 209, - 130, - 208, - 188, - 208, - 190, - 208, - 182, - 208, - 181, - 209, - 130, - 208, - 178, - 209, - 128, - 208, - 181, - 208, - 188, - 209, - 143, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 182, - 208, - 181, - 209, - 135, - 209, - 130, - 208, - 190, - 208, - 177, - 209, - 139, - 208, - 177, - 208, - 190, - 208, - 187, - 208, - 181, - 208, - 181, - 208, - 190, - 209, - 135, - 208, - 181, - 208, - 189, - 209, - 140, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 186, - 208, - 190, - 208, - 179, - 208, - 180, - 208, - 176, - 208, - 191, - 208, - 190, - 209, - 129, - 208, - 187, - 208, - 181, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 129, - 208, - 176, - 208, - 185, - 209, - 130, - 208, - 181, - 209, - 135, - 208, - 181, - 209, - 128, - 208, - 181, - 208, - 183, - 208, - 188, - 208, - 190, - 208, - 179, - 209, - 131, - 209, - 130, - 209, - 129, - 208, - 176, - 208, - 185, - 209, - 130, - 208, - 176, - 208, - 182, - 208, - 184, - 208, - 183, - 208, - 189, - 208, - 184, - 208, - 188, - 208, - 181, - 208, - 182, - 208, - 180, - 209, - 131, - 208, - 177, - 209, - 131, - 208, - 180, - 209, - 131, - 209, - 130, - 208, - 159, - 208, - 190, - 208, - 184, - 209, - 129, - 208, - 186, - 208, - 183, - 208, - 180, - 208, - 181, - 209, - 129, - 209, - 140, - 208, - 178, - 208, - 184, - 208, - 180, - 208, - 181, - 208, - 190, - 209, - 129, - 208, - 178, - 209, - 143, - 208, - 183, - 208, - 184, - 208, - 189, - 209, - 131, - 208, - 182, - 208, - 189, - 208, - 190, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 181, - 208, - 185, - 208, - 187, - 209, - 142, - 208, - 180, - 208, - 181, - 208, - 185, - 208, - 191, - 208, - 190, - 209, - 128, - 208, - 189, - 208, - 190, - 208, - 188, - 208, - 189, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 180, - 208, - 181, - 209, - 130, - 208, - 181, - 208, - 185, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 184, - 209, - 133, - 208, - 191, - 209, - 128, - 208, - 176, - 208, - 178, - 208, - 176, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 190, - 208, - 185, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 190, - 208, - 184, - 208, - 188, - 208, - 181, - 208, - 181, - 209, - 130, - 208, - 182, - 208, - 184, - 208, - 183, - 208, - 189, - 209, - 140, - 208, - 190, - 208, - 180, - 208, - 189, - 208, - 190, - 208, - 185, - 208, - 187, - 209, - 131, - 209, - 135, - 209, - 136, - 208, - 181, - 208, - 191, - 208, - 181, - 209, - 128, - 208, - 181, - 208, - 180, - 209, - 135, - 208, - 176, - 209, - 129, - 209, - 130, - 208, - 184, - 209, - 135, - 208, - 176, - 209, - 129, - 209, - 130, - 209, - 140, - 209, - 128, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 208, - 189, - 208, - 190, - 208, - 178, - 209, - 139, - 209, - 133, - 208, - 191, - 209, - 128, - 208, - 176, - 208, - 178, - 208, - 190, - 209, - 129, - 208, - 190, - 208, - 177, - 208, - 190, - 208, - 185, - 208, - 191, - 208, - 190, - 209, - 130, - 208, - 190, - 208, - 188, - 208, - 188, - 208, - 181, - 208, - 189, - 208, - 181, - 208, - 181, - 209, - 135, - 208, - 184, - 209, - 129, - 208, - 187, - 208, - 181, - 208, - 189, - 208, - 190, - 208, - 178, - 209, - 139, - 208, - 181, - 209, - 131, - 209, - 129, - 208, - 187, - 209, - 131, - 208, - 179, - 208, - 190, - 208, - 186, - 208, - 190, - 208, - 187, - 208, - 190, - 208, - 189, - 208, - 176, - 208, - 183, - 208, - 176, - 208, - 180, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 190, - 208, - 181, - 209, - 130, - 208, - 190, - 208, - 179, - 208, - 180, - 208, - 176, - 208, - 191, - 208, - 190, - 209, - 135, - 209, - 130, - 208, - 184, - 208, - 159, - 208, - 190, - 209, - 129, - 208, - 187, - 208, - 181, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 184, - 208, - 181, - 208, - 189, - 208, - 190, - 208, - 178, - 209, - 139, - 208, - 185, - 209, - 129, - 209, - 130, - 208, - 190, - 208, - 184, - 209, - 130, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 184, - 209, - 133, - 209, - 129, - 209, - 128, - 208, - 176, - 208, - 183, - 209, - 131, - 208, - 161, - 208, - 176, - 208, - 189, - 208, - 186, - 209, - 130, - 209, - 132, - 208, - 190, - 209, - 128, - 209, - 131, - 208, - 188, - 208, - 154, - 208, - 190, - 208, - 179, - 208, - 180, - 208, - 176, - 208, - 186, - 208, - 189, - 208, - 184, - 208, - 179, - 208, - 184, - 209, - 129, - 208, - 187, - 208, - 190, - 208, - 178, - 208, - 176, - 208, - 189, - 208, - 176, - 209, - 136, - 208, - 181, - 208, - 185, - 208, - 189, - 208, - 176, - 208, - 185, - 209, - 130, - 208, - 184, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 184, - 208, - 188, - 209, - 129, - 208, - 178, - 209, - 143, - 208, - 183, - 209, - 140, - 208, - 187, - 209, - 142, - 208, - 177, - 208, - 190, - 208, - 185, - 209, - 135, - 208, - 176, - 209, - 129, - 209, - 130, - 208, - 190, - 209, - 129, - 209, - 128, - 208, - 181, - 208, - 180, - 208, - 184, - 208, - 154, - 209, - 128, - 208, - 190, - 208, - 188, - 208, - 181, - 208, - 164, - 208, - 190, - 209, - 128, - 209, - 131, - 208, - 188, - 209, - 128, - 209, - 139, - 208, - 189, - 208, - 186, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 176, - 208, - 187, - 208, - 184, - 208, - 191, - 208, - 190, - 208, - 184, - 209, - 129, - 208, - 186, - 209, - 130, - 209, - 139, - 209, - 129, - 209, - 143, - 209, - 135, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 143, - 209, - 134, - 209, - 134, - 208, - 181, - 208, - 189, - 209, - 130, - 209, - 128, - 209, - 130, - 209, - 128, - 209, - 131, - 208, - 180, - 208, - 176, - 209, - 129, - 208, - 176, - 208, - 188, - 209, - 139, - 209, - 133, - 209, - 128, - 209, - 139, - 208, - 189, - 208, - 186, - 208, - 176, - 208, - 157, - 208, - 190, - 208, - 178, - 209, - 139, - 208, - 185, - 209, - 135, - 208, - 176, - 209, - 129, - 208, - 190, - 208, - 178, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 176, - 209, - 132, - 208, - 184, - 208, - 187, - 209, - 140, - 208, - 188, - 208, - 188, - 208, - 176, - 209, - 128, - 209, - 130, - 208, - 176, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 176, - 208, - 189, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 181, - 209, - 130, - 208, - 181, - 208, - 186, - 209, - 129, - 209, - 130, - 208, - 189, - 208, - 176, - 209, - 136, - 208, - 184, - 209, - 133, - 208, - 188, - 208, - 184, - 208, - 189, - 209, - 131, - 209, - 130, - 208, - 184, - 208, - 188, - 208, - 181, - 208, - 189, - 208, - 184, - 208, - 184, - 208, - 188, - 208, - 181, - 209, - 142, - 209, - 130, - 208, - 189, - 208, - 190, - 208, - 188, - 208, - 181, - 209, - 128, - 208, - 179, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 180, - 209, - 129, - 208, - 176, - 208, - 188, - 208, - 190, - 208, - 188, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 188, - 209, - 131, - 208, - 186, - 208, - 190, - 208, - 189, - 209, - 134, - 208, - 181, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 181, - 208, - 188, - 208, - 186, - 208, - 176, - 208, - 186, - 208, - 190, - 208, - 185, - 208, - 144, - 209, - 128, - 209, - 133, - 208, - 184, - 208, - 178, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 175, - 217, - 137, - 216, - 165, - 216, - 177, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 217, - 133, - 217, - 131, - 216, - 170, - 216, - 168, - 217, - 135, - 216, - 167, - 216, - 168, - 216, - 177, - 216, - 167, - 217, - 133, - 216, - 172, - 216, - 167, - 217, - 132, - 217, - 138, - 217, - 136, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 181, - 217, - 136, - 216, - 177, - 216, - 172, - 216, - 175, - 217, - 138, - 216, - 175, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 182, - 217, - 136, - 216, - 165, - 216, - 182, - 216, - 167, - 217, - 129, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 130, - 216, - 179, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 216, - 168, - 216, - 170, - 216, - 173, - 217, - 133, - 217, - 138, - 217, - 132, - 217, - 133, - 217, - 132, - 217, - 129, - 216, - 167, - 216, - 170, - 217, - 133, - 217, - 132, - 216, - 170, - 217, - 130, - 217, - 137, - 216, - 170, - 216, - 185, - 216, - 175, - 217, - 138, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 180, - 216, - 185, - 216, - 177, - 216, - 163, - 216, - 174, - 216, - 168, - 216, - 167, - 216, - 177, - 216, - 170, - 216, - 183, - 217, - 136, - 217, - 138, - 216, - 177, - 216, - 185, - 217, - 132, - 217, - 138, - 217, - 131, - 217, - 133, - 216, - 165, - 216, - 177, - 217, - 129, - 216, - 167, - 217, - 130, - 216, - 183, - 217, - 132, - 216, - 168, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 132, - 216, - 186, - 216, - 169, - 216, - 170, - 216, - 177, - 216, - 170, - 217, - 138, - 216, - 168, - 216, - 167, - 217, - 132, - 217, - 134, - 216, - 167, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 180, - 217, - 138, - 216, - 174, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 175, - 217, - 138, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 177, - 216, - 168, - 216, - 167, - 217, - 132, - 217, - 130, - 216, - 181, - 216, - 181, - 216, - 167, - 217, - 129, - 217, - 132, - 216, - 167, - 217, - 133, - 216, - 185, - 217, - 132, - 217, - 138, - 217, - 135, - 216, - 167, - 216, - 170, - 216, - 173, - 216, - 175, - 217, - 138, - 216, - 171, - 216, - 167, - 217, - 132, - 217, - 132, - 217, - 135, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 185, - 217, - 133, - 217, - 132, - 217, - 133, - 217, - 131, - 216, - 170, - 216, - 168, - 216, - 169, - 217, - 138, - 217, - 133, - 217, - 131, - 217, - 134, - 217, - 131, - 216, - 167, - 217, - 132, - 216, - 183, - 217, - 129, - 217, - 132, - 217, - 129, - 217, - 138, - 216, - 175, - 217, - 138, - 217, - 136, - 216, - 165, - 216, - 175, - 216, - 167, - 216, - 177, - 216, - 169, - 216, - 170, - 216, - 167, - 216, - 177, - 217, - 138, - 216, - 174, - 216, - 167, - 217, - 132, - 216, - 181, - 216, - 173, - 216, - 169, - 216, - 170, - 216, - 179, - 216, - 172, - 217, - 138, - 217, - 132, - 216, - 167, - 217, - 132, - 217, - 136, - 217, - 130, - 216, - 170, - 216, - 185, - 217, - 134, - 216, - 175, - 217, - 133, - 216, - 167, - 217, - 133, - 216, - 175, - 217, - 138, - 217, - 134, - 216, - 169, - 216, - 170, - 216, - 181, - 217, - 133, - 217, - 138, - 217, - 133, - 216, - 163, - 216, - 177, - 216, - 180, - 217, - 138, - 217, - 129, - 216, - 167, - 217, - 132, - 216, - 176, - 217, - 138, - 217, - 134, - 216, - 185, - 216, - 177, - 216, - 168, - 217, - 138, - 216, - 169, - 216, - 168, - 217, - 136, - 216, - 167, - 216, - 168, - 216, - 169, - 216, - 163, - 217, - 132, - 216, - 185, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 179, - 217, - 129, - 216, - 177, - 217, - 133, - 216, - 180, - 216, - 167, - 217, - 131, - 217, - 132, - 216, - 170, - 216, - 185, - 216, - 167, - 217, - 132, - 217, - 137, - 216, - 167, - 217, - 132, - 216, - 163, - 217, - 136, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 179, - 217, - 134, - 216, - 169, - 216, - 172, - 216, - 167, - 217, - 133, - 216, - 185, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 181, - 216, - 173, - 217, - 129, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 138, - 217, - 134, - 217, - 131, - 217, - 132, - 217, - 133, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 174, - 216, - 167, - 216, - 181, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 132, - 217, - 129, - 216, - 163, - 216, - 185, - 216, - 182, - 216, - 167, - 216, - 161, - 217, - 131, - 216, - 170, - 216, - 167, - 216, - 168, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 174, - 217, - 138, - 216, - 177, - 216, - 177, - 216, - 179, - 216, - 167, - 216, - 166, - 217, - 132, - 216, - 167, - 217, - 132, - 217, - 130, - 217, - 132, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 175, - 216, - 168, - 217, - 133, - 217, - 130, - 216, - 167, - 216, - 183, - 216, - 185, - 217, - 133, - 216, - 177, - 216, - 167, - 216, - 179, - 217, - 132, - 217, - 133, - 217, - 134, - 216, - 183, - 217, - 130, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 131, - 216, - 170, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 172, - 217, - 132, - 216, - 167, - 216, - 180, - 216, - 170, - 216, - 177, - 217, - 131, - 216, - 167, - 217, - 132, - 217, - 130, - 216, - 175, - 217, - 133, - 217, - 138, - 216, - 185, - 216, - 183, - 217, - 138, - 217, - 131, - 115, - 66, - 121, - 84, - 97, - 103, - 78, - 97, - 109, - 101, - 40, - 46, - 106, - 112, - 103, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 49, - 112, - 120, - 32, - 115, - 111, - 108, - 105, - 100, - 32, - 35, - 46, - 103, - 105, - 102, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 116, - 114, - 97, - 110, - 115, - 112, - 97, - 114, - 101, - 110, - 116, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 34, - 32, - 111, - 110, - 99, - 108, - 105, - 99, - 107, - 61, - 34, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 97, - 100, - 118, - 101, - 114, - 116, - 105, - 115, - 105, - 110, - 103, - 46, - 112, - 110, - 103, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 101, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 97, - 110, - 99, - 101, - 97, - 112, - 112, - 114, - 111, - 112, - 114, - 105, - 97, - 116, - 101, - 38, - 97, - 109, - 112, - 59, - 109, - 100, - 97, - 115, - 104, - 59, - 105, - 109, - 109, - 101, - 100, - 105, - 97, - 116, - 101, - 108, - 121, - 60, - 47, - 115, - 116, - 114, - 111, - 110, - 103, - 62, - 60, - 47, - 114, - 97, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 116, - 101, - 109, - 112, - 101, - 114, - 97, - 116, - 117, - 114, - 101, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 99, - 111, - 109, - 112, - 101, - 116, - 105, - 116, - 105, - 111, - 110, - 112, - 108, - 97, - 99, - 101, - 104, - 111, - 108, - 100, - 101, - 114, - 118, - 105, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 58, - 99, - 111, - 112, - 121, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 48, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 101, - 118, - 101, - 110, - 32, - 116, - 104, - 111, - 117, - 103, - 104, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 109, - 101, - 110, - 116, - 100, - 101, - 115, - 116, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 67, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 60, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 65, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 105, - 110, - 100, - 105, - 118, - 105, - 100, - 117, - 97, - 108, - 115, - 112, - 101, - 114, - 115, - 112, - 101, - 99, - 116, - 105, - 118, - 101, - 115, - 101, - 116, - 84, - 105, - 109, - 101, - 111, - 117, - 116, - 40, - 117, - 114, - 108, - 40, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 109, - 97, - 116, - 104, - 101, - 109, - 97, - 116, - 105, - 99, - 115, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 116, - 111, - 112, - 58, - 101, - 118, - 101, - 110, - 116, - 117, - 97, - 108, - 108, - 121, - 32, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 41, - 32, - 110, - 111, - 45, - 114, - 101, - 112, - 101, - 97, - 116, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 46, - 74, - 80, - 71, - 124, - 116, - 104, - 117, - 109, - 98, - 124, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 101, - 47, - 104, - 101, - 97, - 100, - 62, - 60, - 98, - 111, - 100, - 121, - 102, - 108, - 111, - 97, - 116, - 58, - 108, - 101, - 102, - 116, - 59, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 104, - 117, - 110, - 100, - 114, - 101, - 100, - 115, - 32, - 111, - 102, - 10, - 10, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 99, - 111, - 109, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 99, - 108, - 101, - 97, - 114, - 58, - 98, - 111, - 116, - 104, - 59, - 99, - 111, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 119, - 105, - 116, - 104, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 108, - 97, - 98, - 101, - 108, - 32, - 102, - 111, - 114, - 61, - 34, - 98, - 111, - 114, - 100, - 101, - 114, - 45, - 116, - 111, - 112, - 58, - 78, - 101, - 119, - 32, - 90, - 101, - 97, - 108, - 97, - 110, - 100, - 114, - 101, - 99, - 111, - 109, - 109, - 101, - 110, - 100, - 101, - 100, - 112, - 104, - 111, - 116, - 111, - 103, - 114, - 97, - 112, - 104, - 121, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 105, - 110, - 103, - 38, - 108, - 116, - 59, - 115, - 117, - 112, - 38, - 103, - 116, - 59, - 99, - 111, - 110, - 116, - 114, - 111, - 118, - 101, - 114, - 115, - 121, - 78, - 101, - 116, - 104, - 101, - 114, - 108, - 97, - 110, - 100, - 115, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 118, - 101, - 109, - 97, - 120, - 108, - 101, - 110, - 103, - 116, - 104, - 61, - 34, - 115, - 119, - 105, - 116, - 122, - 101, - 114, - 108, - 97, - 110, - 100, - 68, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 101, - 115, - 115, - 101, - 110, - 116, - 105, - 97, - 108, - 108, - 121, - 10, - 10, - 65, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 60, - 47, - 116, - 101, - 120, - 116, - 97, - 114, - 101, - 97, - 62, - 116, - 104, - 117, - 110, - 100, - 101, - 114, - 98, - 105, - 114, - 100, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 100, - 38, - 97, - 109, - 112, - 59, - 110, - 100, - 97, - 115, - 104, - 59, - 115, - 112, - 101, - 99, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 116, - 105, - 101, - 115, - 108, - 101, - 103, - 105, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 101, - 108, - 101, - 99, - 116, - 114, - 111, - 110, - 105, - 99, - 115, - 10, - 9, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 105, - 108, - 108, - 117, - 115, - 116, - 114, - 97, - 116, - 101, - 100, - 101, - 110, - 103, - 105, - 110, - 101, - 101, - 114, - 105, - 110, - 103, - 116, - 101, - 114, - 114, - 105, - 116, - 111, - 114, - 105, - 101, - 115, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 105, - 101, - 115, - 100, - 105, - 115, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 100, - 54, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 115, - 97, - 110, - 115, - 45, - 115, - 101, - 114, - 105, - 102, - 59, - 99, - 97, - 112, - 97, - 98, - 108, - 101, - 32, - 111, - 102, - 32, - 100, - 105, - 115, - 97, - 112, - 112, - 101, - 97, - 114, - 101, - 100, - 105, - 110, - 116, - 101, - 114, - 97, - 99, - 116, - 105, - 118, - 101, - 108, - 111, - 111, - 107, - 105, - 110, - 103, - 32, - 102, - 111, - 114, - 105, - 116, - 32, - 119, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 65, - 102, - 103, - 104, - 97, - 110, - 105, - 115, - 116, - 97, - 110, - 119, - 97, - 115, - 32, - 99, - 114, - 101, - 97, - 116, - 101, - 100, - 77, - 97, - 116, - 104, - 46, - 102, - 108, - 111, - 111, - 114, - 40, - 115, - 117, - 114, - 114, - 111, - 117, - 110, - 100, - 105, - 110, - 103, - 99, - 97, - 110, - 32, - 97, - 108, - 115, - 111, - 32, - 98, - 101, - 111, - 98, - 115, - 101, - 114, - 118, - 97, - 116, - 105, - 111, - 110, - 109, - 97, - 105, - 110, - 116, - 101, - 110, - 97, - 110, - 99, - 101, - 101, - 110, - 99, - 111, - 117, - 110, - 116, - 101, - 114, - 101, - 100, - 60, - 104, - 50, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 111, - 114, - 101, - 32, - 114, - 101, - 99, - 101, - 110, - 116, - 105, - 116, - 32, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 105, - 110, - 118, - 97, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 41, - 46, - 103, - 101, - 116, - 84, - 105, - 109, - 101, - 40, - 41, - 102, - 117, - 110, - 100, - 97, - 109, - 101, - 110, - 116, - 97, - 108, - 68, - 101, - 115, - 112, - 105, - 116, - 101, - 32, - 116, - 104, - 101, - 34, - 62, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 105, - 110, - 115, - 112, - 105, - 114, - 97, - 116, - 105, - 111, - 110, - 101, - 120, - 97, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 112, - 114, - 101, - 112, - 97, - 114, - 97, - 116, - 105, - 111, - 110, - 101, - 120, - 112, - 108, - 97, - 110, - 97, - 116, - 105, - 111, - 110, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 105, - 100, - 61, - 34, - 60, - 47, - 97, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 105, - 110, - 115, - 116, - 114, - 117, - 109, - 101, - 110, - 116, - 115, - 98, - 101, - 102, - 111, - 114, - 101, - 32, - 116, - 104, - 101, - 32, - 32, - 61, - 32, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 68, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 114, - 101, - 108, - 97, - 116, - 105, - 118, - 101, - 108, - 121, - 32, - 46, - 115, - 117, - 98, - 115, - 116, - 114, - 105, - 110, - 103, - 40, - 101, - 97, - 99, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 120, - 112, - 101, - 114, - 105, - 109, - 101, - 110, - 116, - 115, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 116, - 105, - 97, - 108, - 105, - 110, - 116, - 101, - 103, - 114, - 97, - 116, - 105, - 111, - 110, - 109, - 97, - 110, - 121, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 100, - 117, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 109, - 98, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 100, - 111, - 32, - 110, - 111, - 116, - 32, - 104, - 97, - 118, - 101, - 77, - 105, - 100, - 100, - 108, - 101, - 32, - 69, - 97, - 115, - 116, - 60, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 99, - 111, - 112, - 121, - 114, - 105, - 103, - 104, - 116, - 34, - 32, - 112, - 101, - 114, - 104, - 97, - 112, - 115, - 32, - 116, - 104, - 101, - 105, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 105, - 111, - 110, - 105, - 110, - 32, - 68, - 101, - 99, - 101, - 109, - 98, - 101, - 114, - 97, - 114, - 114, - 97, - 110, - 103, - 101, - 109, - 101, - 110, - 116, - 109, - 111, - 115, - 116, - 32, - 102, - 97, - 109, - 111, - 117, - 115, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 105, - 116, - 121, - 99, - 114, - 101, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 108, - 105, - 109, - 105, - 116, - 97, - 116, - 105, - 111, - 110, - 115, - 101, - 120, - 99, - 108, - 117, - 115, - 105, - 118, - 101, - 108, - 121, - 115, - 111, - 118, - 101, - 114, - 101, - 105, - 103, - 110, - 116, - 121, - 45, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 62, - 10, - 60, - 116, - 100, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 117, - 110, - 100, - 101, - 114, - 103, - 114, - 111, - 117, - 110, - 100, - 112, - 97, - 114, - 97, - 108, - 108, - 101, - 108, - 32, - 116, - 111, - 100, - 111, - 99, - 116, - 114, - 105, - 110, - 101, - 32, - 111, - 102, - 111, - 99, - 99, - 117, - 112, - 105, - 101, - 100, - 32, - 98, - 121, - 116, - 101, - 114, - 109, - 105, - 110, - 111, - 108, - 111, - 103, - 121, - 82, - 101, - 110, - 97, - 105, - 115, - 115, - 97, - 110, - 99, - 101, - 97, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 102, - 111, - 114, - 101, - 120, - 112, - 108, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 116, - 105, - 111, - 110, - 112, - 114, - 101, - 100, - 101, - 99, - 101, - 115, - 115, - 111, - 114, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 60, - 104, - 49, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 109, - 97, - 121, - 32, - 97, - 108, - 115, - 111, - 32, - 98, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 105, - 122, - 101, - 100, - 60, - 47, - 102, - 105, - 101, - 108, - 100, - 115, - 101, - 116, - 62, - 112, - 114, - 111, - 103, - 114, - 101, - 115, - 115, - 105, - 118, - 101, - 109, - 105, - 108, - 108, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 115, - 116, - 97, - 116, - 101, - 115, - 32, - 116, - 104, - 97, - 116, - 101, - 110, - 102, - 111, - 114, - 99, - 101, - 109, - 101, - 110, - 116, - 97, - 114, - 111, - 117, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 111, - 110, - 101, - 32, - 97, - 110, - 111, - 116, - 104, - 101, - 114, - 46, - 112, - 97, - 114, - 101, - 110, - 116, - 78, - 111, - 100, - 101, - 97, - 103, - 114, - 105, - 99, - 117, - 108, - 116, - 117, - 114, - 101, - 65, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 118, - 101, - 114, - 101, - 115, - 101, - 97, - 114, - 99, - 104, - 101, - 114, - 115, - 116, - 111, - 119, - 97, - 114, - 100, - 115, - 32, - 116, - 104, - 101, - 77, - 111, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 109, - 97, - 110, - 121, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 40, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 60, - 116, - 100, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 59, - 119, - 105, - 100, - 116, - 104, - 58, - 49, - 48, - 48, - 37, - 105, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 60, - 104, - 51, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 32, - 111, - 110, - 99, - 104, - 97, - 110, - 103, - 101, - 61, - 34, - 41, - 46, - 97, - 100, - 100, - 67, - 108, - 97, - 115, - 115, - 40, - 105, - 110, - 116, - 101, - 114, - 97, - 99, - 116, - 105, - 111, - 110, - 79, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 100, - 97, - 117, - 103, - 104, - 116, - 101, - 114, - 32, - 111, - 102, - 97, - 99, - 99, - 101, - 115, - 115, - 111, - 114, - 105, - 101, - 115, - 98, - 114, - 97, - 110, - 99, - 104, - 101, - 115, - 32, - 111, - 102, - 13, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 116, - 104, - 101, - 32, - 108, - 97, - 114, - 103, - 101, - 115, - 116, - 100, - 101, - 99, - 108, - 97, - 114, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 103, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 73, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 97, - 114, - 121, - 105, - 110, - 32, - 111, - 114, - 100, - 101, - 114, - 32, - 116, - 111, - 34, - 62, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 97, - 99, - 114, - 111, - 115, - 115, - 32, - 116, - 104, - 101, - 32, - 111, - 114, - 105, - 101, - 110, - 116, - 97, - 116, - 105, - 111, - 110, - 41, - 59, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 105, - 109, - 112, - 108, - 101, - 109, - 101, - 110, - 116, - 101, - 100, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 115, - 101, - 101, - 110, - 116, - 104, - 101, - 114, - 101, - 32, - 119, - 97, - 115, - 32, - 97, - 100, - 101, - 109, - 111, - 110, - 115, - 116, - 114, - 97, - 116, - 101, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 34, - 62, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 116, - 104, - 101, - 32, - 66, - 114, - 105, - 116, - 105, - 115, - 104, - 119, - 97, - 115, - 32, - 119, - 114, - 105, - 116, - 116, - 101, - 110, - 33, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 59, - 112, - 120, - 59, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 102, - 111, - 108, - 108, - 111, - 119, - 101, - 100, - 32, - 98, - 121, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 116, - 111, - 32, - 99, - 111, - 109, - 112, - 108, - 105, - 99, - 97, - 116, - 101, - 100, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 105, - 109, - 109, - 105, - 103, - 114, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 115, - 111, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 60, - 104, - 52, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 100, - 105, - 115, - 116, - 105, - 110, - 99, - 116, - 105, - 111, - 110, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 98, - 121, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 115, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 110, - 32, - 78, - 111, - 118, - 101, - 109, - 98, - 101, - 114, - 119, - 104, - 101, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 101, - 60, - 47, - 112, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 97, - 99, - 113, - 117, - 105, - 115, - 105, - 116, - 105, - 111, - 110, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 116, - 104, - 101, - 32, - 112, - 101, - 114, - 115, - 101, - 99, - 117, - 116, - 105, - 111, - 110, - 100, - 101, - 115, - 105, - 103, - 110, - 97, - 116, - 105, - 111, - 110, - 123, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 97, - 112, - 112, - 101, - 97, - 114, - 101, - 100, - 32, - 105, - 110, - 105, - 110, - 118, - 101, - 115, - 116, - 105, - 103, - 97, - 116, - 101, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 101, - 100, - 109, - 111, - 115, - 116, - 32, - 108, - 105, - 107, - 101, - 108, - 121, - 119, - 105, - 100, - 101, - 108, - 121, - 32, - 117, - 115, - 101, - 100, - 100, - 105, - 115, - 99, - 117, - 115, - 115, - 105, - 111, - 110, - 115, - 112, - 114, - 101, - 115, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 32, - 40, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 118, - 101, - 108, - 121, - 73, - 116, - 32, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 105, - 116, - 32, - 100, - 111, - 101, - 115, - 32, - 110, - 111, - 116, - 99, - 111, - 110, - 116, - 114, - 97, - 114, - 121, - 32, - 116, - 111, - 105, - 110, - 104, - 97, - 98, - 105, - 116, - 97, - 110, - 116, - 115, - 105, - 109, - 112, - 114, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 115, - 99, - 104, - 111, - 108, - 97, - 114, - 115, - 104, - 105, - 112, - 99, - 111, - 110, - 115, - 117, - 109, - 112, - 116, - 105, - 111, - 110, - 105, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 102, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 111, - 110, - 101, - 32, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 112, - 120, - 59, - 32, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 116, - 104, - 101, - 32, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 97, - 32, - 115, - 101, - 114, - 105, - 101, - 115, - 32, - 111, - 102, - 97, - 114, - 101, - 32, - 117, - 115, - 117, - 97, - 108, - 108, - 121, - 114, - 111, - 108, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 112, - 114, - 101, - 118, - 105, - 111, - 117, - 115, - 108, - 121, - 32, - 100, - 101, - 114, - 105, - 118, - 97, - 116, - 105, - 118, - 101, - 115, - 101, - 118, - 105, - 100, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 101, - 115, - 99, - 111, - 108, - 111, - 114, - 115, - 99, - 104, - 101, - 109, - 101, - 115, - 116, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 99, - 101, - 114, - 116, - 105, - 102, - 105, - 99, - 97, - 116, - 101, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 32, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 61, - 34, - 104, - 105, - 103, - 104, - 32, - 115, - 99, - 104, - 111, - 111, - 108, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 101, - 32, - 116, - 111, - 99, - 111, - 109, - 102, - 111, - 114, - 116, - 97, - 98, - 108, - 101, - 97, - 100, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 116, - 104, - 114, - 101, - 101, - 32, - 121, - 101, - 97, - 114, - 115, - 116, - 104, - 101, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 121, - 105, - 110, - 32, - 70, - 101, - 98, - 114, - 117, - 97, - 114, - 121, - 115, - 111, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 119, - 104, - 111, - 32, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 100, - 32, - 98, - 121, - 60, - 112, - 97, - 114, - 97, - 109, - 32, - 110, - 97, - 109, - 101, - 97, - 102, - 102, - 101, - 99, - 116, - 101, - 100, - 32, - 98, - 121, - 105, - 110, - 32, - 116, - 101, - 114, - 109, - 115, - 32, - 111, - 102, - 97, - 112, - 112, - 111, - 105, - 110, - 116, - 109, - 101, - 110, - 116, - 73, - 83, - 79, - 45, - 56, - 56, - 53, - 57, - 45, - 49, - 34, - 119, - 97, - 115, - 32, - 98, - 111, - 114, - 110, - 32, - 105, - 110, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 99, - 97, - 108, - 32, - 114, - 101, - 103, - 97, - 114, - 100, - 101, - 100, - 32, - 97, - 115, - 109, - 101, - 97, - 115, - 117, - 114, - 101, - 109, - 101, - 110, - 116, - 105, - 115, - 32, - 98, - 97, - 115, - 101, - 100, - 32, - 111, - 110, - 32, - 97, - 110, - 100, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 58, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 116, - 99, - 101, - 108, - 101, - 98, - 114, - 97, - 116, - 105, - 111, - 110, - 116, - 114, - 97, - 110, - 115, - 109, - 105, - 116, - 116, - 101, - 100, - 47, - 106, - 115, - 47, - 106, - 113, - 117, - 101, - 114, - 121, - 46, - 105, - 115, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 116, - 104, - 101, - 111, - 114, - 101, - 116, - 105, - 99, - 97, - 108, - 32, - 116, - 97, - 98, - 105, - 110, - 100, - 101, - 120, - 61, - 34, - 105, - 116, - 32, - 99, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 60, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 104, - 97, - 118, - 105, - 110, - 103, - 32, - 98, - 101, - 101, - 110, - 13, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 60, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 84, - 104, - 101, - 32, - 99, - 111, - 109, - 112, - 105, - 108, - 97, - 116, - 105, - 111, - 110, - 104, - 101, - 32, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 32, - 98, - 121, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 101, - 114, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 101, - 100, - 105, - 110, - 116, - 101, - 110, - 100, - 101, - 100, - 32, - 116, - 111, - 97, - 109, - 111, - 110, - 103, - 32, - 111, - 116, - 104, - 101, - 114, - 99, - 111, - 109, - 112, - 97, - 114, - 101, - 100, - 32, - 116, - 111, - 116, - 111, - 32, - 115, - 97, - 121, - 32, - 116, - 104, - 97, - 116, - 69, - 110, - 103, - 105, - 110, - 101, - 101, - 114, - 105, - 110, - 103, - 97, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 98, - 101, - 108, - 105, - 101, - 102, - 32, - 116, - 104, - 97, - 116, - 112, - 104, - 111, - 116, - 111, - 103, - 114, - 97, - 112, - 104, - 115, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 121, - 105, - 110, - 103, - 72, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 32, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 32, - 111, - 102, - 110, - 101, - 99, - 101, - 115, - 115, - 97, - 114, - 105, - 108, - 121, - 112, - 114, - 111, - 98, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 116, - 101, - 99, - 104, - 110, - 105, - 99, - 97, - 108, - 108, - 121, - 108, - 101, - 97, - 118, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 115, - 112, - 101, - 99, - 116, - 97, - 99, - 117, - 108, - 97, - 114, - 102, - 114, - 97, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 101, - 108, - 101, - 99, - 116, - 114, - 105, - 99, - 105, - 116, - 121, - 104, - 101, - 97, - 100, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 115, - 116, - 97, - 117, - 114, - 97, - 110, - 116, - 115, - 112, - 97, - 114, - 116, - 110, - 101, - 114, - 115, - 104, - 105, - 112, - 101, - 109, - 112, - 104, - 97, - 115, - 105, - 115, - 32, - 111, - 110, - 109, - 111, - 115, - 116, - 32, - 114, - 101, - 99, - 101, - 110, - 116, - 115, - 104, - 97, - 114, - 101, - 32, - 119, - 105, - 116, - 104, - 32, - 115, - 97, - 121, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 102, - 105, - 108, - 108, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 32, - 116, - 111, - 105, - 116, - 32, - 105, - 115, - 32, - 111, - 102, - 116, - 101, - 110, - 34, - 62, - 60, - 47, - 105, - 102, - 114, - 97, - 109, - 101, - 62, - 97, - 115, - 32, - 102, - 111, - 108, - 108, - 111, - 119, - 115, - 58, - 109, - 101, - 114, - 103, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 109, - 101, - 114, - 99, - 105, - 97, - 108, - 32, - 112, - 111, - 105, - 110, - 116, - 101, - 100, - 32, - 111, - 117, - 116, - 111, - 112, - 112, - 111, - 114, - 116, - 117, - 110, - 105, - 116, - 121, - 118, - 105, - 101, - 119, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 109, - 101, - 110, - 116, - 100, - 105, - 118, - 105, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 105, - 110, - 103, - 104, - 101, - 32, - 114, - 101, - 99, - 101, - 105, - 118, - 101, - 100, - 115, - 101, - 116, - 73, - 110, - 116, - 101, - 114, - 118, - 97, - 108, - 34, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 105, - 110, - 32, - 78, - 101, - 119, - 32, - 89, - 111, - 114, - 107, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 99, - 111, - 109, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 10, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 105, - 110, - 99, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 101, - 59, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 97, - 116, - 116, - 97, - 99, - 104, - 69, - 118, - 101, - 110, - 116, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 116, - 104, - 101, - 32, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 99, - 97, - 114, - 114, - 105, - 101, - 100, - 32, - 111, - 117, - 116, - 83, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 99, - 105, - 101, - 110, - 99, - 101, - 32, - 97, - 110, - 100, - 116, - 104, - 101, - 32, - 116, - 105, - 109, - 101, - 32, - 111, - 102, - 67, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 34, - 62, - 109, - 97, - 105, - 110, - 116, - 97, - 105, - 110, - 105, - 110, - 103, - 67, - 104, - 114, - 105, - 115, - 116, - 111, - 112, - 104, - 101, - 114, - 77, - 117, - 99, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 119, - 114, - 105, - 116, - 105, - 110, - 103, - 115, - 32, - 111, - 102, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 50, - 115, - 105, - 122, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 109, - 105, - 120, - 116, - 117, - 114, - 101, - 32, - 111, - 102, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 32, - 116, - 104, - 101, - 69, - 120, - 97, - 109, - 112, - 108, - 101, - 115, - 32, - 111, - 102, - 101, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 99, - 111, - 109, - 112, - 101, - 116, - 105, - 116, - 105, - 118, - 101, - 32, - 111, - 110, - 115, - 117, - 98, - 109, - 105, - 116, - 61, - 34, - 100, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 32, - 111, - 102, - 100, - 105, - 115, - 116, - 105, - 110, - 99, - 116, - 105, - 118, - 101, - 47, - 68, - 84, - 68, - 32, - 88, - 72, - 84, - 77, - 76, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 110, - 103, - 32, - 116, - 111, - 116, - 101, - 110, - 100, - 101, - 110, - 99, - 121, - 32, - 116, - 111, - 112, - 114, - 111, - 118, - 105, - 110, - 99, - 101, - 32, - 111, - 102, - 119, - 104, - 105, - 99, - 104, - 32, - 119, - 111, - 117, - 108, - 100, - 100, - 101, - 115, - 112, - 105, - 116, - 101, - 32, - 116, - 104, - 101, - 115, - 99, - 105, - 101, - 110, - 116, - 105, - 102, - 105, - 99, - 32, - 108, - 101, - 103, - 105, - 115, - 108, - 97, - 116, - 117, - 114, - 101, - 46, - 105, - 110, - 110, - 101, - 114, - 72, - 84, - 77, - 76, - 32, - 97, - 108, - 108, - 101, - 103, - 97, - 116, - 105, - 111, - 110, - 115, - 65, - 103, - 114, - 105, - 99, - 117, - 108, - 116, - 117, - 114, - 101, - 119, - 97, - 115, - 32, - 117, - 115, - 101, - 100, - 32, - 105, - 110, - 97, - 112, - 112, - 114, - 111, - 97, - 99, - 104, - 32, - 116, - 111, - 105, - 110, - 116, - 101, - 108, - 108, - 105, - 103, - 101, - 110, - 116, - 121, - 101, - 97, - 114, - 115, - 32, - 108, - 97, - 116, - 101, - 114, - 44, - 115, - 97, - 110, - 115, - 45, - 115, - 101, - 114, - 105, - 102, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 105, - 110, - 103, - 80, - 101, - 114, - 102, - 111, - 114, - 109, - 97, - 110, - 99, - 101, - 97, - 112, - 112, - 101, - 97, - 114, - 97, - 110, - 99, - 101, - 115, - 44, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 105, - 115, - 32, - 102, - 111, - 117, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 115, - 97, - 98, - 98, - 114, - 101, - 118, - 105, - 97, - 116, - 101, - 100, - 104, - 105, - 103, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 115, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 100, - 105, - 118, - 105, - 100, - 117, - 97, - 108, - 32, - 99, - 111, - 109, - 112, - 111, - 115, - 101, - 100, - 32, - 111, - 102, - 115, - 117, - 112, - 112, - 111, - 115, - 101, - 100, - 32, - 116, - 111, - 99, - 108, - 97, - 105, - 109, - 115, - 32, - 116, - 104, - 97, - 116, - 97, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 49, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 32, - 111, - 102, - 72, - 105, - 115, - 116, - 111, - 114, - 105, - 99, - 97, - 108, - 32, - 104, - 105, - 115, - 32, - 98, - 114, - 111, - 116, - 104, - 101, - 114, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 116, - 105, - 109, - 101, - 97, - 110, - 110, - 105, - 118, - 101, - 114, - 115, - 97, - 114, - 121, - 103, - 111, - 118, - 101, - 114, - 110, - 101, - 100, - 32, - 98, - 121, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 32, - 116, - 111, - 32, - 117, - 108, - 116, - 105, - 109, - 97, - 116, - 101, - 108, - 121, - 32, - 105, - 110, - 110, - 111, - 118, - 97, - 116, - 105, - 111, - 110, - 115, - 105, - 116, - 32, - 105, - 115, - 32, - 115, - 116, - 105, - 108, - 108, - 99, - 97, - 110, - 32, - 111, - 110, - 108, - 121, - 32, - 98, - 101, - 100, - 101, - 102, - 105, - 110, - 105, - 116, - 105, - 111, - 110, - 115, - 116, - 111, - 71, - 77, - 84, - 83, - 116, - 114, - 105, - 110, - 103, - 65, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 105, - 109, - 103, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 69, - 118, - 101, - 110, - 116, - 117, - 97, - 108, - 108, - 121, - 44, - 119, - 97, - 115, - 32, - 99, - 104, - 97, - 110, - 103, - 101, - 100, - 111, - 99, - 99, - 117, - 114, - 114, - 101, - 100, - 32, - 105, - 110, - 110, - 101, - 105, - 103, - 104, - 98, - 111, - 114, - 105, - 110, - 103, - 100, - 105, - 115, - 116, - 105, - 110, - 103, - 117, - 105, - 115, - 104, - 119, - 104, - 101, - 110, - 32, - 104, - 101, - 32, - 119, - 97, - 115, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 105, - 110, - 103, - 116, - 101, - 114, - 114, - 101, - 115, - 116, - 114, - 105, - 97, - 108, - 77, - 97, - 110, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 114, - 103, - 117, - 101, - 115, - 32, - 116, - 104, - 97, - 116, - 97, - 110, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 99, - 111, - 110, - 113, - 117, - 101, - 115, - 116, - 32, - 111, - 102, - 119, - 105, - 100, - 101, - 115, - 112, - 114, - 101, - 97, - 100, - 32, - 119, - 101, - 114, - 101, - 32, - 107, - 105, - 108, - 108, - 101, - 100, - 115, - 99, - 114, - 101, - 101, - 110, - 32, - 97, - 110, - 100, - 32, - 73, - 110, - 32, - 111, - 114, - 100, - 101, - 114, - 32, - 116, - 111, - 101, - 120, - 112, - 101, - 99, - 116, - 101, - 100, - 32, - 116, - 111, - 100, - 101, - 115, - 99, - 101, - 110, - 100, - 97, - 110, - 116, - 115, - 97, - 114, - 101, - 32, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 108, - 101, - 103, - 105, - 115, - 108, - 97, - 116, - 105, - 118, - 101, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 32, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 109, - 111, - 115, - 116, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 121, - 101, - 97, - 114, - 115, - 32, - 97, - 102, - 116, - 101, - 114, - 116, - 104, - 101, - 114, - 101, - 32, - 105, - 115, - 32, - 110, - 111, - 116, - 104, - 101, - 32, - 104, - 105, - 103, - 104, - 101, - 115, - 116, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 32, - 116, - 104, - 101, - 121, - 32, - 100, - 111, - 32, - 110, - 111, - 116, - 97, - 114, - 103, - 117, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 115, - 104, - 111, - 119, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 112, - 114, - 101, - 100, - 111, - 109, - 105, - 110, - 97, - 110, - 116, - 116, - 104, - 101, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 98, - 121, - 32, - 116, - 104, - 101, - 32, - 116, - 105, - 109, - 101, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 105, - 110, - 103, - 115, - 104, - 111, - 114, - 116, - 45, - 108, - 105, - 118, - 101, - 100, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 97, - 62, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 117, - 115, - 101, - 100, - 118, - 101, - 114, - 121, - 32, - 108, - 105, - 116, - 116, - 108, - 101, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 104, - 97, - 100, - 32, - 97, - 108, - 114, - 101, - 97, - 100, - 121, - 105, - 110, - 116, - 101, - 114, - 112, - 114, - 101, - 116, - 101, - 100, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 101, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 115, - 32, - 111, - 102, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 44, - 60, - 47, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 101, - 110, - 116, - 101, - 114, - 101, - 100, - 32, - 116, - 104, - 101, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 51, - 73, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 108, - 97, - 114, - 103, - 101, - 45, - 115, - 99, - 97, - 108, - 101, - 46, - 32, - 65, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 117, - 115, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 100, - 101, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 112, - 111, - 115, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 115, - 116, - 97, - 114, - 116, - 105, - 110, - 103, - 32, - 105, - 110, - 116, - 119, - 111, - 32, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 115, - 115, - 117, - 98, - 111, - 114, - 100, - 105, - 110, - 97, - 116, - 101, - 108, - 97, - 114, - 103, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 104, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 97, - 110, - 100, - 60, - 47, - 111, - 112, - 116, - 105, - 111, - 110, - 62, - 13, - 10, - 67, - 111, - 110, - 116, - 105, - 110, - 101, - 110, - 116, - 97, - 108, - 101, - 108, - 105, - 109, - 105, - 110, - 97, - 116, - 105, - 110, - 103, - 119, - 105, - 108, - 108, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 101, - 32, - 111, - 102, - 105, - 110, - 32, - 102, - 114, - 111, - 110, - 116, - 32, - 111, - 102, - 115, - 105, - 116, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 110, - 115, - 117, - 114, - 101, - 32, - 116, - 104, - 97, - 116, - 116, - 111, - 32, - 99, - 114, - 101, - 97, - 116, - 101, - 32, - 97, - 109, - 105, - 115, - 115, - 105, - 115, - 115, - 105, - 112, - 112, - 105, - 112, - 111, - 116, - 101, - 110, - 116, - 105, - 97, - 108, - 108, - 121, - 111, - 117, - 116, - 115, - 116, - 97, - 110, - 100, - 105, - 110, - 103, - 98, - 101, - 116, - 116, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 119, - 104, - 97, - 116, - 32, - 105, - 115, - 32, - 110, - 111, - 119, - 115, - 105, - 116, - 117, - 97, - 116, - 101, - 100, - 32, - 105, - 110, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 84, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 105, - 111, - 110, - 115, - 84, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 116, - 104, - 101, - 32, - 102, - 111, - 114, - 109, - 32, - 111, - 102, - 97, - 116, - 109, - 111, - 115, - 112, - 104, - 101, - 114, - 105, - 99, - 105, - 100, - 101, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 101, - 110, - 116, - 101, - 114, - 112, - 114, - 105, - 115, - 101, - 115, - 99, - 97, - 108, - 99, - 117, - 108, - 97, - 116, - 105, - 110, - 103, - 101, - 97, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 109, - 110, - 97, - 110, - 116, - 115, - 32, - 111, - 102, - 112, - 108, - 117, - 103, - 105, - 110, - 115, - 112, - 97, - 103, - 101, - 47, - 105, - 110, - 100, - 101, - 120, - 46, - 112, - 104, - 112, - 63, - 114, - 101, - 109, - 97, - 105, - 110, - 101, - 100, - 32, - 105, - 110, - 116, - 114, - 97, - 110, - 115, - 102, - 111, - 114, - 109, - 101, - 100, - 72, - 101, - 32, - 119, - 97, - 115, - 32, - 97, - 108, - 115, - 111, - 119, - 97, - 115, - 32, - 97, - 108, - 114, - 101, - 97, - 100, - 121, - 115, - 116, - 97, - 116, - 105, - 115, - 116, - 105, - 99, - 97, - 108, - 105, - 110, - 32, - 102, - 97, - 118, - 111, - 114, - 32, - 111, - 102, - 77, - 105, - 110, - 105, - 115, - 116, - 114, - 121, - 32, - 111, - 102, - 109, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 102, - 111, - 114, - 109, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 105, - 115, - 32, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 100, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 84, - 104, - 105, - 115, - 32, - 105, - 115, - 32, - 116, - 104, - 101, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 105, - 122, - 101, - 100, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 100, - 32, - 105, - 110, - 97, - 114, - 101, - 32, - 117, - 115, - 101, - 100, - 32, - 116, - 111, - 97, - 110, - 100, - 32, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 109, - 97, - 100, - 101, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 115, - 101, - 101, - 109, - 115, - 32, - 116, - 111, - 32, - 98, - 101, - 108, - 105, - 107, - 101, - 108, - 121, - 32, - 116, - 104, - 97, - 116, - 80, - 97, - 108, - 101, - 115, - 116, - 105, - 110, - 105, - 97, - 110, - 110, - 97, - 109, - 101, - 100, - 32, - 97, - 102, - 116, - 101, - 114, - 105, - 116, - 32, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 109, - 111, - 115, - 116, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 116, - 111, - 32, - 114, - 101, - 102, - 101, - 114, - 32, - 116, - 111, - 98, - 117, - 116, - 32, - 116, - 104, - 105, - 115, - 32, - 105, - 115, - 99, - 111, - 110, - 115, - 101, - 99, - 117, - 116, - 105, - 118, - 101, - 116, - 101, - 109, - 112, - 111, - 114, - 97, - 114, - 105, - 108, - 121, - 73, - 110, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 44, - 99, - 111, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 115, - 116, - 97, - 107, - 101, - 115, - 32, - 112, - 108, - 97, - 99, - 101, - 115, - 117, - 98, - 100, - 105, - 118, - 105, - 115, - 105, - 111, - 110, - 116, - 101, - 114, - 114, - 105, - 116, - 111, - 114, - 105, - 97, - 108, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 112, - 101, - 114, - 109, - 97, - 110, - 101, - 110, - 116, - 108, - 121, - 119, - 97, - 115, - 32, - 108, - 97, - 114, - 103, - 101, - 108, - 121, - 111, - 117, - 116, - 98, - 114, - 101, - 97, - 107, - 32, - 111, - 102, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 112, - 97, - 115, - 116, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 97, - 32, - 120, - 109, - 108, - 110, - 115, - 58, - 111, - 103, - 61, - 34, - 62, - 60, - 97, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 101, - 120, - 116, - 67, - 111, - 110, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 32, - 109, - 97, - 121, - 32, - 98, - 101, - 32, - 117, - 115, - 101, - 100, - 109, - 97, - 110, - 117, - 102, - 97, - 99, - 116, - 117, - 114, - 101, - 97, - 102, - 116, - 101, - 114, - 32, - 98, - 101, - 105, - 110, - 103, - 99, - 108, - 101, - 97, - 114, - 102, - 105, - 120, - 34, - 62, - 10, - 113, - 117, - 101, - 115, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 119, - 97, - 115, - 32, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 116, - 111, - 32, - 98, - 101, - 99, - 111, - 109, - 101, - 32, - 97, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 115, - 111, - 109, - 101, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 105, - 110, - 115, - 112, - 105, - 114, - 101, - 100, - 32, - 98, - 121, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 117, - 108, - 32, - 97, - 32, - 116, - 105, - 109, - 101, - 32, - 119, - 104, - 101, - 110, - 109, - 111, - 114, - 101, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 97, - 109, - 111, - 110, - 103, - 115, - 116, - 32, - 116, - 104, - 101, - 97, - 110, - 32, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 119, - 105, - 100, - 116, - 104, - 58, - 49, - 48, - 48, - 37, - 59, - 116, - 101, - 99, - 104, - 110, - 111, - 108, - 111, - 103, - 121, - 44, - 119, - 97, - 115, - 32, - 97, - 100, - 111, - 112, - 116, - 101, - 100, - 116, - 111, - 32, - 107, - 101, - 101, - 112, - 32, - 116, - 104, - 101, - 115, - 101, - 116, - 116, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 108, - 105, - 118, - 101, - 32, - 98, - 105, - 114, - 116, - 104, - 115, - 105, - 110, - 100, - 101, - 120, - 46, - 104, - 116, - 109, - 108, - 34, - 67, - 111, - 110, - 110, - 101, - 99, - 116, - 105, - 99, - 117, - 116, - 97, - 115, - 115, - 105, - 103, - 110, - 101, - 100, - 32, - 116, - 111, - 38, - 97, - 109, - 112, - 59, - 116, - 105, - 109, - 101, - 115, - 59, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 32, - 102, - 111, - 114, - 97, - 108, - 105, - 103, - 110, - 61, - 114, - 105, - 103, - 104, - 116, - 116, - 104, - 101, - 32, - 99, - 111, - 109, - 112, - 97, - 110, - 121, - 97, - 108, - 119, - 97, - 121, - 115, - 32, - 98, - 101, - 101, - 110, - 114, - 101, - 116, - 117, - 114, - 110, - 101, - 100, - 32, - 116, - 111, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 109, - 101, - 110, - 116, - 66, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 116, - 104, - 101, - 116, - 104, - 105, - 115, - 32, - 112, - 101, - 114, - 105, - 111, - 100, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 113, - 34, - 32, - 99, - 111, - 110, - 102, - 105, - 110, - 101, - 100, - 32, - 116, - 111, - 97, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 32, - 111, - 102, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 34, - 32, - 47, - 62, - 105, - 115, - 32, - 97, - 99, - 116, - 117, - 97, - 108, - 108, - 121, - 69, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 13, - 10, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 67, - 111, - 110, - 118, - 101, - 114, - 115, - 101, - 108, - 121, - 44, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 48, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 105, - 115, - 32, - 112, - 114, - 111, - 98, - 97, - 98, - 108, - 121, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 99, - 111, - 109, - 101, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 116, - 104, - 101, - 32, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 99, - 105, - 116, - 105, - 122, - 101, - 110, - 115, - 32, - 111, - 102, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 105, - 97, - 110, - 115, - 114, - 101, - 97, - 99, - 104, - 101, - 100, - 32, - 116, - 104, - 101, - 97, - 115, - 32, - 101, - 97, - 114, - 108, - 121, - 32, - 97, - 115, - 58, - 110, - 111, - 110, - 101, - 59, - 32, - 111, - 118, - 101, - 114, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 99, - 101, - 108, - 108, - 118, - 97, - 108, - 105, - 100, - 105, - 116, - 121, - 32, - 111, - 102, - 100, - 105, - 114, - 101, - 99, - 116, - 108, - 121, - 32, - 116, - 111, - 111, - 110, - 109, - 111, - 117, - 115, - 101, - 100, - 111, - 119, - 110, - 119, - 104, - 101, - 114, - 101, - 32, - 105, - 116, - 32, - 105, - 115, - 119, - 104, - 101, - 110, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 109, - 101, - 109, - 98, - 101, - 114, - 115, - 32, - 111, - 102, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 97, - 99, - 99, - 111, - 109, - 109, - 111, - 100, - 97, - 116, - 101, - 97, - 108, - 111, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 32, - 73, - 110, - 32, - 116, - 104, - 101, - 32, - 108, - 97, - 116, - 101, - 116, - 104, - 101, - 32, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 100, - 101, - 108, - 105, - 99, - 105, - 111, - 117, - 115, - 34, - 62, - 116, - 104, - 105, - 115, - 32, - 105, - 115, - 32, - 110, - 111, - 116, - 116, - 104, - 101, - 32, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 105, - 102, - 32, - 116, - 104, - 101, - 121, - 32, - 97, - 114, - 101, - 97, - 110, - 100, - 32, - 102, - 105, - 110, - 97, - 108, - 108, - 121, - 97, - 32, - 109, - 97, - 116, - 116, - 101, - 114, - 32, - 111, - 102, - 13, - 10, - 9, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 13, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 102, - 97, - 115, - 116, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 109, - 97, - 106, - 111, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 97, - 102, - 116, - 101, - 114, - 32, - 119, - 104, - 105, - 99, - 104, - 99, - 111, - 109, - 112, - 97, - 114, - 97, - 116, - 105, - 118, - 101, - 116, - 111, - 32, - 109, - 97, - 105, - 110, - 116, - 97, - 105, - 110, - 105, - 109, - 112, - 114, - 111, - 118, - 101, - 32, - 116, - 104, - 101, - 97, - 119, - 97, - 114, - 100, - 101, - 100, - 32, - 116, - 104, - 101, - 101, - 114, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 102, - 114, - 97, - 109, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 114, - 101, - 115, - 116, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 97, - 110, - 97, - 108, - 121, - 115, - 105, - 115, - 32, - 111, - 102, - 116, - 104, - 101, - 105, - 114, - 32, - 102, - 105, - 114, - 115, - 116, - 68, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 116, - 105, - 110, - 101, - 110, - 116, - 97, - 108, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 32, - 119, - 111, - 114, - 107, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 98, - 101, - 103, - 105, - 110, - 115, - 32, - 119, - 105, - 116, - 104, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 58, - 99, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 101, - 110, - 116, - 119, - 97, - 115, - 32, - 102, - 111, - 117, - 110, - 100, - 101, - 100, - 101, - 113, - 117, - 105, - 108, - 105, - 98, - 114, - 105, - 117, - 109, - 97, - 115, - 115, - 117, - 109, - 101, - 32, - 116, - 104, - 97, - 116, - 105, - 115, - 32, - 103, - 105, - 118, - 101, - 110, - 32, - 98, - 121, - 110, - 101, - 101, - 100, - 115, - 32, - 116, - 111, - 32, - 98, - 101, - 99, - 111, - 111, - 114, - 100, - 105, - 110, - 97, - 116, - 101, - 115, - 116, - 104, - 101, - 32, - 118, - 97, - 114, - 105, - 111, - 117, - 115, - 97, - 114, - 101, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 111, - 110, - 108, - 121, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 105, - 115, - 32, - 97, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 116, - 104, - 101, - 111, - 114, - 105, - 101, - 115, - 32, - 111, - 102, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 105, - 101, - 115, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 101, - 100, - 103, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 116, - 114, - 101, - 110, - 103, - 116, - 104, - 32, - 111, - 102, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 32, - 105, - 110, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 45, - 100, - 97, - 121, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 97, - 108, - 108, - 121, - 116, - 111, - 32, - 102, - 111, - 114, - 109, - 32, - 116, - 104, - 101, - 98, - 117, - 116, - 32, - 105, - 110, - 115, - 116, - 101, - 97, - 100, - 99, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 97, - 116, - 116, - 97, - 99, - 104, - 101, - 100, - 32, - 116, - 111, - 105, - 115, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 108, - 121, - 114, - 101, - 97, - 115, - 111, - 110, - 115, - 32, - 102, - 111, - 114, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 116, - 104, - 101, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 109, - 97, - 100, - 101, - 119, - 97, - 115, - 32, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 119, - 104, - 105, - 99, - 104, - 32, - 109, - 101, - 97, - 110, - 115, - 98, - 117, - 116, - 32, - 100, - 105, - 100, - 32, - 110, - 111, - 116, - 111, - 110, - 77, - 111, - 117, - 115, - 101, - 79, - 118, - 101, - 114, - 97, - 115, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 111, - 112, - 101, - 114, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 99, - 111, - 109, - 105, - 110, - 103, - 32, - 102, - 114, - 111, - 109, - 116, - 104, - 101, - 32, - 112, - 114, - 105, - 109, - 97, - 114, - 121, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 102, - 111, - 114, - 32, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 114, - 101, - 100, - 97, - 32, - 112, - 101, - 114, - 105, - 111, - 100, - 32, - 111, - 102, - 97, - 114, - 101, - 32, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 105, - 116, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 104, - 97, - 118, - 101, - 109, - 117, - 99, - 104, - 32, - 108, - 97, - 114, - 103, - 101, - 114, - 10, - 9, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 97, - 100, - 111, - 112, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 121, - 32, - 111, - 102, - 100, - 105, - 114, - 101, - 99, - 116, - 101, - 100, - 32, - 98, - 121, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 119, - 97, - 115, - 32, - 98, - 114, - 111, - 117, - 103, - 104, - 116, - 99, - 104, - 105, - 108, - 100, - 114, - 101, - 110, - 32, - 111, - 102, - 80, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 105, - 110, - 103, - 108, - 111, - 110, - 103, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 109, - 97, - 110, - 117, - 115, - 99, - 114, - 105, - 112, - 116, - 115, - 119, - 97, - 114, - 32, - 97, - 103, - 97, - 105, - 110, - 115, - 116, - 98, - 121, - 32, - 109, - 101, - 97, - 110, - 115, - 32, - 111, - 102, - 97, - 110, - 100, - 32, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 32, - 116, - 111, - 32, - 112, - 114, - 111, - 112, - 114, - 105, - 101, - 116, - 97, - 114, - 121, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 116, - 105, - 110, - 103, - 112, - 114, - 101, - 115, - 116, - 105, - 103, - 105, - 111, - 117, - 115, - 103, - 114, - 97, - 109, - 109, - 97, - 116, - 105, - 99, - 97, - 108, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 101, - 46, - 116, - 111, - 32, - 109, - 97, - 107, - 101, - 32, - 116, - 104, - 101, - 73, - 116, - 32, - 119, - 97, - 115, - 32, - 97, - 108, - 115, - 111, - 105, - 115, - 32, - 102, - 111, - 117, - 110, - 100, - 32, - 105, - 110, - 99, - 111, - 109, - 112, - 101, - 116, - 105, - 116, - 111, - 114, - 115, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 85, - 46, - 83, - 46, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 32, - 116, - 104, - 101, - 98, - 114, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 104, - 101, - 99, - 97, - 108, - 99, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 102, - 97, - 108, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 105, - 110, - 32, - 104, - 111, - 110, - 111, - 114, - 32, - 111, - 102, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 100, - 32, - 105, - 110, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 105, - 97, - 108, - 97, - 110, - 100, - 32, - 115, - 111, - 109, - 101, - 32, - 111, - 102, - 107, - 105, - 110, - 103, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 97, - 99, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 49, - 115, - 116, - 32, - 69, - 97, - 114, - 108, - 32, - 111, - 102, - 99, - 117, - 108, - 116, - 117, - 114, - 101, - 32, - 97, - 110, - 100, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 97, - 108, - 108, - 121, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 10, - 32, - 32, - 116, - 104, - 101, - 121, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 98, - 97, - 99, - 107, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 115, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 104, - 105, - 115, - 101, - 120, - 112, - 111, - 115, - 117, - 114, - 101, - 32, - 116, - 111, - 97, - 114, - 101, - 32, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 102, - 111, - 114, - 109, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 100, - 100, - 70, - 97, - 118, - 111, - 114, - 105, - 116, - 101, - 99, - 105, - 116, - 105, - 122, - 101, - 110, - 115, - 104, - 105, - 112, - 112, - 97, - 114, - 116, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 119, - 105, - 116, - 104, - 105, - 110, - 32, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 101, - 116, - 111, - 32, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 38, - 97, - 109, - 112, - 59, - 109, - 105, - 110, - 117, - 115, - 59, - 97, - 112, - 112, - 114, - 111, - 118, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 32, - 97, - 108, - 108, - 111, - 119, - 101, - 100, - 32, - 116, - 104, - 101, - 97, - 110, - 100, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 105, - 110, - 103, - 112, - 108, - 97, - 121, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 115, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 48, - 34, - 32, - 105, - 110, - 32, - 104, - 105, - 115, - 32, - 98, - 111, - 111, - 107, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 32, - 97, - 102, - 111, - 108, - 108, - 111, - 119, - 115, - 32, - 116, - 104, - 101, - 99, - 114, - 101, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 99, - 101, - 32, - 105, - 110, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 116, - 100, - 62, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 105, - 115, - 116, - 116, - 104, - 101, - 32, - 105, - 100, - 101, - 97, - 32, - 111, - 102, - 97, - 32, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 119, - 101, - 114, - 101, - 32, - 102, - 111, - 114, - 99, - 101, - 100, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 98, - 116, - 110, - 100, - 97, - 121, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 102, - 101, - 97, - 116, - 117, - 114, - 101, - 100, - 32, - 105, - 110, - 115, - 104, - 111, - 119, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 32, - 105, - 110, - 105, - 110, - 32, - 112, - 108, - 97, - 99, - 101, - 32, - 111, - 102, - 116, - 117, - 114, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 104, - 101, - 97, - 100, - 32, - 111, - 102, - 76, - 111, - 114, - 100, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 104, - 97, - 115, - 32, - 105, - 116, - 115, - 32, - 111, - 119, - 110, - 69, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 112, - 112, - 114, - 111, - 118, - 97, - 108, - 32, - 111, - 102, - 115, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 97, - 99, - 104, - 32, - 111, - 116, - 104, - 101, - 114, - 44, - 98, - 101, - 104, - 97, - 118, - 105, - 111, - 114, - 32, - 111, - 102, - 97, - 110, - 100, - 32, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 97, - 110, - 100, - 32, - 97, - 110, - 111, - 116, - 104, - 101, - 114, - 97, - 112, - 112, - 101, - 97, - 114, - 101, - 100, - 32, - 111, - 110, - 114, - 101, - 99, - 111, - 114, - 100, - 101, - 100, - 32, - 105, - 110, - 98, - 108, - 97, - 99, - 107, - 38, - 113, - 117, - 111, - 116, - 59, - 109, - 97, - 121, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 39, - 115, - 99, - 97, - 110, - 32, - 108, - 101, - 97, - 100, - 32, - 116, - 111, - 114, - 101, - 102, - 101, - 114, - 115, - 32, - 116, - 111, - 32, - 97, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 32, - 119, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 114, - 101, - 115, - 117, - 108, - 116, - 101, - 100, - 32, - 105, - 110, - 32, - 119, - 104, - 105, - 108, - 101, - 32, - 116, - 104, - 101, - 32, - 87, - 97, - 115, - 104, - 105, - 110, - 103, - 116, - 111, - 110, - 44, - 116, - 104, - 101, - 32, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 99, - 105, - 116, - 121, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 9, - 9, - 114, - 101, - 102, - 108, - 101, - 99, - 116, - 32, - 116, - 104, - 101, - 116, - 111, - 32, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 109, - 111, - 114, - 101, - 114, - 97, - 100, - 105, - 111, - 97, - 99, - 116, - 105, - 118, - 101, - 114, - 101, - 106, - 101, - 99, - 116, - 101, - 100, - 32, - 98, - 121, - 119, - 105, - 116, - 104, - 111, - 117, - 116, - 32, - 97, - 110, - 121, - 104, - 105, - 115, - 32, - 102, - 97, - 116, - 104, - 101, - 114, - 44, - 119, - 104, - 105, - 99, - 104, - 32, - 99, - 111, - 117, - 108, - 100, - 99, - 111, - 112, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 111, - 32, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 101, - 97, - 32, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 115, - 32, - 111, - 102, - 99, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 115, - 119, - 111, - 114, - 107, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 101, - 114, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 111, - 102, - 32, - 104, - 105, - 115, - 32, - 108, - 105, - 102, - 101, - 97, - 99, - 99, - 111, - 109, - 112, - 97, - 110, - 105, - 101, - 100, - 99, - 108, - 105, - 101, - 110, - 116, - 87, - 105, - 100, - 116, - 104, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 32, - 116, - 104, - 101, - 76, - 101, - 103, - 105, - 115, - 108, - 97, - 116, - 105, - 118, - 101, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 108, - 121, - 116, - 111, - 103, - 101, - 116, - 104, - 101, - 114, - 32, - 105, - 110, - 104, - 97, - 115, - 32, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 102, - 111, - 114, - 32, - 97, - 110, - 111, - 116, - 104, - 101, - 114, - 116, - 101, - 120, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 102, - 111, - 117, - 110, - 100, - 101, - 100, - 32, - 116, - 104, - 101, - 101, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 105, - 115, - 32, - 117, - 115, - 101, - 100, - 32, - 102, - 111, - 114, - 99, - 104, - 97, - 110, - 103, - 101, - 100, - 32, - 116, - 104, - 101, - 117, - 115, - 117, - 97, - 108, - 108, - 121, - 32, - 116, - 104, - 101, - 112, - 108, - 97, - 99, - 101, - 32, - 119, - 104, - 101, - 114, - 101, - 119, - 104, - 101, - 114, - 101, - 97, - 115, - 32, - 116, - 104, - 101, - 62, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 34, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 116, - 104, - 101, - 109, - 115, - 101, - 108, - 118, - 101, - 115, - 44, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 104, - 101, - 116, - 104, - 97, - 116, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 114, - 111, - 108, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 115, - 32, - 97, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 114, - 101, - 109, - 111, - 118, - 101, - 67, - 104, - 105, - 108, - 100, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 32, - 98, - 121, - 119, - 101, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 83, - 111, - 109, - 101, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 44, - 115, - 105, - 100, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 110, - 101, - 119, - 115, - 108, - 101, - 116, - 116, - 101, - 114, - 115, - 117, - 115, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 100, - 111, - 119, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 97, - 99, - 99, - 101, - 112, - 116, - 101, - 100, - 32, - 98, - 121, - 108, - 105, - 118, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 115, - 32, - 116, - 111, - 111, - 117, - 116, - 115, - 105, - 100, - 101, - 32, - 116, - 104, - 101, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 99, - 105, - 101, - 115, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 105, - 110, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 101, - 114, - 115, - 97, - 116, - 32, - 108, - 101, - 97, - 115, - 116, - 32, - 105, - 110, - 97, - 112, - 112, - 114, - 111, - 120, - 105, - 109, - 97, - 116, - 101, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 105, - 116, - 119, - 97, - 115, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 97, - 110, - 100, - 32, - 118, - 97, - 114, - 105, - 111, - 117, - 115, - 71, - 111, - 118, - 101, - 114, - 110, - 111, - 114, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 116, - 117, - 114, - 110, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 116, - 104, - 101, - 32, - 101, - 99, - 111, - 110, - 111, - 109, - 121, - 105, - 115, - 32, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 109, - 111, - 115, - 116, - 32, - 119, - 105, - 100, - 101, - 108, - 121, - 119, - 111, - 117, - 108, - 100, - 32, - 108, - 97, - 116, - 101, - 114, - 97, - 110, - 100, - 32, - 112, - 101, - 114, - 104, - 97, - 112, - 115, - 114, - 105, - 115, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 111, - 99, - 99, - 117, - 114, - 115, - 32, - 119, - 104, - 101, - 110, - 117, - 110, - 100, - 101, - 114, - 32, - 119, - 104, - 105, - 99, - 104, - 99, - 111, - 110, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 46, - 116, - 104, - 101, - 32, - 119, - 101, - 115, - 116, - 101, - 114, - 110, - 116, - 104, - 101, - 111, - 114, - 121, - 32, - 116, - 104, - 97, - 116, - 105, - 115, - 32, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 116, - 104, - 101, - 32, - 99, - 105, - 116, - 121, - 32, - 111, - 102, - 105, - 110, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 104, - 101, - 115, - 101, - 101, - 110, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 99, - 101, - 110, - 116, - 114, - 97, - 108, - 98, - 117, - 105, - 108, - 100, - 105, - 110, - 103, - 32, - 111, - 102, - 109, - 97, - 110, - 121, - 32, - 111, - 102, - 32, - 104, - 105, - 115, - 97, - 114, - 101, - 97, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 116, - 104, - 101, - 32, - 111, - 110, - 108, - 121, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 109, - 97, - 110, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 87, - 101, - 115, - 116, - 101, - 114, - 110, - 84, - 104, - 101, - 114, - 101, - 32, - 105, - 115, - 32, - 110, - 111, - 101, - 120, - 116, - 101, - 110, - 100, - 101, - 100, - 32, - 116, - 111, - 83, - 116, - 97, - 116, - 105, - 115, - 116, - 105, - 99, - 97, - 108, - 99, - 111, - 108, - 115, - 112, - 97, - 110, - 61, - 50, - 32, - 124, - 115, - 104, - 111, - 114, - 116, - 32, - 115, - 116, - 111, - 114, - 121, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 32, - 116, - 111, - 116, - 111, - 112, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 99, - 114, - 105, - 116, - 105, - 99, - 97, - 108, - 32, - 111, - 102, - 114, - 101, - 112, - 111, - 114, - 116, - 101, - 100, - 32, - 116, - 111, - 97, - 32, - 67, - 104, - 114, - 105, - 115, - 116, - 105, - 97, - 110, - 100, - 101, - 99, - 105, - 115, - 105, - 111, - 110, - 32, - 116, - 111, - 105, - 115, - 32, - 101, - 113, - 117, - 97, - 108, - 32, - 116, - 111, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 115, - 32, - 111, - 102, - 84, - 104, - 105, - 115, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 109, - 101, - 114, - 99, - 104, - 97, - 110, - 100, - 105, - 115, - 101, - 102, - 111, - 114, - 32, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 110, - 111, - 32, - 101, - 118, - 105, - 100, - 101, - 110, - 99, - 101, - 101, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 32, - 105, - 110, - 38, - 113, - 117, - 111, - 116, - 59, - 46, - 32, - 84, - 104, - 101, - 99, - 111, - 109, - 47, - 105, - 109, - 97, - 103, - 101, - 115, - 47, - 119, - 104, - 105, - 99, - 104, - 32, - 109, - 97, - 107, - 101, - 115, - 116, - 104, - 101, - 32, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 114, - 101, - 109, - 97, - 105, - 110, - 115, - 32, - 116, - 104, - 101, - 108, - 105, - 116, - 101, - 114, - 97, - 116, - 117, - 114, - 101, - 44, - 105, - 115, - 32, - 97, - 32, - 109, - 101, - 109, - 98, - 101, - 114, - 116, - 104, - 101, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 116, - 104, - 101, - 32, - 97, - 110, - 99, - 105, - 101, - 110, - 116, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 115, - 32, - 105, - 110, - 116, - 105, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 100, - 101, - 102, - 101, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 98, - 111, - 100, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 32, - 102, - 101, - 119, - 32, - 121, - 101, - 97, - 114, - 115, - 109, - 117, - 99, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 107, - 32, - 111, - 102, - 67, - 97, - 108, - 105, - 102, - 111, - 114, - 110, - 105, - 97, - 44, - 115, - 101, - 114, - 118, - 101, - 100, - 32, - 97, - 115, - 32, - 97, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 46, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 115, - 32, - 111, - 102, - 109, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 32, - 105, - 110, - 9, - 9, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 105, - 116, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 32, - 111, - 102, - 97, - 115, - 32, - 116, - 104, - 101, - 121, - 32, - 97, - 114, - 101, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 32, - 105, - 110, - 105, - 115, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 101, - 120, - 112, - 108, - 97, - 105, - 110, - 32, - 116, - 104, - 101, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 32, - 116, - 104, - 101, - 108, - 101, - 97, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 9, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 119, - 97, - 115, - 32, - 103, - 114, - 97, - 110, - 116, - 101, - 100, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 104, - 97, - 118, - 101, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 97, - 108, - 108, - 121, - 119, - 97, - 115, - 32, - 115, - 101, - 101, - 110, - 32, - 97, - 115, - 97, - 110, - 100, - 32, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 116, - 104, - 101, - 32, - 114, - 111, - 108, - 101, - 32, - 111, - 102, - 112, - 114, - 111, - 112, - 111, - 115, - 101, - 100, - 32, - 98, - 121, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 98, - 101, - 115, - 116, - 101, - 97, - 99, - 104, - 32, - 111, - 116, - 104, - 101, - 114, - 46, - 67, - 111, - 110, - 115, - 116, - 97, - 110, - 116, - 105, - 110, - 101, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 102, - 114, - 111, - 109, - 100, - 105, - 97, - 108, - 101, - 99, - 116, - 115, - 32, - 111, - 102, - 116, - 111, - 32, - 114, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 119, - 97, - 115, - 32, - 114, - 101, - 110, - 97, - 109, - 101, - 100, - 97, - 32, - 115, - 111, - 117, - 114, - 99, - 101, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 105, - 110, - 105, - 116, - 105, - 97, - 108, - 108, - 97, - 117, - 110, - 99, - 104, - 101, - 100, - 32, - 105, - 110, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 32, - 116, - 104, - 101, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 119, - 101, - 115, - 116, - 119, - 104, - 101, - 114, - 101, - 32, - 116, - 104, - 101, - 114, - 101, - 97, - 110, - 100, - 32, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 32, - 116, - 119, - 111, - 105, - 115, - 32, - 97, - 108, - 115, - 111, - 32, - 116, - 104, - 101, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 97, - 110, - 100, - 99, - 111, - 110, - 100, - 105, - 116, - 105, - 111, - 110, - 115, - 44, - 116, - 104, - 97, - 116, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 101, - 110, - 116, - 105, - 116, - 108, - 101, - 100, - 32, - 116, - 111, - 116, - 104, - 101, - 109, - 115, - 101, - 108, - 118, - 101, - 115, - 46, - 113, - 117, - 97, - 110, - 116, - 105, - 116, - 121, - 32, - 111, - 102, - 114, - 97, - 110, - 115, - 112, - 97, - 114, - 101, - 110, - 99, - 121, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 32, - 97, - 115, - 116, - 111, - 32, - 106, - 111, - 105, - 110, - 32, - 116, - 104, - 101, - 99, - 111, - 117, - 110, - 116, - 114, - 121, - 32, - 97, - 110, - 100, - 116, - 104, - 105, - 115, - 32, - 105, - 115, - 32, - 116, - 104, - 101, - 84, - 104, - 105, - 115, - 32, - 108, - 101, - 100, - 32, - 116, - 111, - 97, - 32, - 115, - 116, - 97, - 116, - 101, - 109, - 101, - 110, - 116, - 99, - 111, - 110, - 116, - 114, - 97, - 115, - 116, - 32, - 116, - 111, - 108, - 97, - 115, - 116, - 73, - 110, - 100, - 101, - 120, - 79, - 102, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 32, - 104, - 105, - 115, - 105, - 115, - 32, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 116, - 104, - 101, - 32, - 116, - 101, - 114, - 109, - 32, - 105, - 115, - 105, - 115, - 32, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 100, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 32, - 116, - 104, - 101, - 110, - 103, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 84, - 104, - 101, - 32, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 116, - 104, - 101, - 32, - 115, - 105, - 116, - 101, - 32, - 111, - 102, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 116, - 105, - 97, - 108, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 101, - 44, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 87, - 101, - 115, - 116, - 116, - 104, - 101, - 121, - 32, - 115, - 104, - 111, - 117, - 108, - 100, - 115, - 108, - 111, - 118, - 101, - 110, - 196, - 141, - 105, - 110, - 97, - 99, - 111, - 109, - 101, - 110, - 116, - 97, - 114, - 105, - 111, - 115, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 100, - 97, - 100, - 99, - 111, - 110, - 100, - 105, - 99, - 105, - 111, - 110, - 101, - 115, - 97, - 99, - 116, - 105, - 118, - 105, - 100, - 97, - 100, - 101, - 115, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 105, - 97, - 116, - 101, - 99, - 110, - 111, - 108, - 111, - 103, - 195, - 173, - 97, - 112, - 114, - 111, - 100, - 117, - 99, - 99, - 105, - 195, - 179, - 110, - 112, - 117, - 110, - 116, - 117, - 97, - 99, - 105, - 195, - 179, - 110, - 97, - 112, - 108, - 105, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 99, - 111, - 110, - 116, - 114, - 97, - 115, - 101, - 195, - 177, - 97, - 99, - 97, - 116, - 101, - 103, - 111, - 114, - 195, - 173, - 97, - 115, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 97, - 114, - 115, - 101, - 112, - 114, - 111, - 102, - 101, - 115, - 105, - 111, - 110, - 97, - 108, - 116, - 114, - 97, - 116, - 97, - 109, - 105, - 101, - 110, - 116, - 111, - 114, - 101, - 103, - 195, - 173, - 115, - 116, - 114, - 97, - 116, - 101, - 115, - 101, - 99, - 114, - 101, - 116, - 97, - 114, - 195, - 173, - 97, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 97, - 108, - 101, - 115, - 112, - 114, - 111, - 116, - 101, - 99, - 99, - 105, - 195, - 179, - 110, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 101, - 115, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 99, - 105, - 97, - 112, - 111, - 115, - 105, - 98, - 105, - 108, - 105, - 100, - 97, - 100, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 97, - 110, - 116, - 101, - 99, - 114, - 101, - 99, - 105, - 109, - 105, - 101, - 110, - 116, - 111, - 110, - 101, - 99, - 101, - 115, - 105, - 100, - 97, - 100, - 101, - 115, - 115, - 117, - 115, - 99, - 114, - 105, - 98, - 105, - 114, - 115, - 101, - 97, - 115, - 111, - 99, - 105, - 97, - 99, - 105, - 195, - 179, - 110, - 100, - 105, - 115, - 112, - 111, - 110, - 105, - 98, - 108, - 101, - 115, - 101, - 118, - 97, - 108, - 117, - 97, - 99, - 105, - 195, - 179, - 110, - 101, - 115, - 116, - 117, - 100, - 105, - 97, - 110, - 116, - 101, - 115, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 97, - 98, - 108, - 101, - 114, - 101, - 115, - 111, - 108, - 117, - 99, - 105, - 195, - 179, - 110, - 103, - 117, - 97, - 100, - 97, - 108, - 97, - 106, - 97, - 114, - 97, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 97, - 100, - 111, - 115, - 111, - 112, - 111, - 114, - 116, - 117, - 110, - 105, - 100, - 97, - 100, - 99, - 111, - 109, - 101, - 114, - 99, - 105, - 97, - 108, - 101, - 115, - 102, - 111, - 116, - 111, - 103, - 114, - 97, - 102, - 195, - 173, - 97, - 97, - 117, - 116, - 111, - 114, - 105, - 100, - 97, - 100, - 101, - 115, - 105, - 110, - 103, - 101, - 110, - 105, - 101, - 114, - 195, - 173, - 97, - 116, - 101, - 108, - 101, - 118, - 105, - 115, - 105, - 195, - 179, - 110, - 99, - 111, - 109, - 112, - 101, - 116, - 101, - 110, - 99, - 105, - 97, - 111, - 112, - 101, - 114, - 97, - 99, - 105, - 111, - 110, - 101, - 115, - 101, - 115, - 116, - 97, - 98, - 108, - 101, - 99, - 105, - 100, - 111, - 115, - 105, - 109, - 112, - 108, - 101, - 109, - 101, - 110, - 116, - 101, - 97, - 99, - 116, - 117, - 97, - 108, - 109, - 101, - 110, - 116, - 101, - 110, - 97, - 118, - 101, - 103, - 97, - 99, - 105, - 195, - 179, - 110, - 99, - 111, - 110, - 102, - 111, - 114, - 109, - 105, - 100, - 97, - 100, - 108, - 105, - 110, - 101, - 45, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 102, - 111, - 110, - 116, - 45, - 102, - 97, - 109, - 105, - 108, - 121, - 58, - 34, - 32, - 58, - 32, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 108, - 105, - 110, - 107, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 99, - 97, - 108, - 108, - 121, - 47, - 47, - 60, - 33, - 91, - 67, - 68, - 65, - 84, - 65, - 91, - 10, - 79, - 114, - 103, - 97, - 110, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 100, - 105, - 115, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 48, - 112, - 120, - 59, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 105, - 112, - 100, - 101, - 118, - 105, - 99, - 101, - 45, - 119, - 105, - 100, - 116, - 104, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 108, - 97, - 98, - 101, - 108, - 32, - 102, - 111, - 114, - 61, - 34, - 114, - 101, - 103, - 105, - 115, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 60, - 47, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 47, - 105, - 110, - 100, - 101, - 120, - 46, - 104, - 116, - 109, - 108, - 34, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 111, - 112, - 101, - 110, - 40, - 32, - 33, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 59, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 47, - 105, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 99, - 101, - 47, - 47, - 119, - 119, - 119, - 46, - 103, - 111, - 111, - 103, - 108, - 101, - 111, - 114, - 103, - 97, - 110, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 97, - 117, - 116, - 111, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 109, - 101, - 110, - 116, - 115, - 99, - 111, - 110, - 115, - 101, - 114, - 118, - 97, - 116, - 105, - 118, - 101, - 60, - 102, - 111, - 114, - 109, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 105, - 110, - 116, - 101, - 108, - 108, - 101, - 99, - 116, - 117, - 97, - 108, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 108, - 101, - 102, - 116, - 58, - 49, - 56, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 97, - 110, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 105, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 105, - 111, - 110, - 115, - 97, - 98, - 98, - 114, - 101, - 118, - 105, - 97, - 116, - 105, - 111, - 110, - 60, - 105, - 109, - 103, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 111, - 114, - 103, - 97, - 110, - 105, - 115, - 97, - 116, - 105, - 111, - 110, - 99, - 105, - 118, - 105, - 108, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 49, - 57, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 97, - 114, - 99, - 104, - 105, - 116, - 101, - 99, - 116, - 117, - 114, - 101, - 105, - 110, - 99, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 101, - 100, - 50, - 48, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 45, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 34, - 62, - 109, - 111, - 115, - 116, - 32, - 110, - 111, - 116, - 97, - 98, - 108, - 121, - 47, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 110, - 111, - 116, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 39, - 117, - 110, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 39, - 41, - 70, - 117, - 114, - 116, - 104, - 101, - 114, - 109, - 111, - 114, - 101, - 44, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 32, - 116, - 104, - 97, - 116, - 105, - 110, - 110, - 101, - 114, - 72, - 84, - 77, - 76, - 32, - 61, - 32, - 112, - 114, - 105, - 111, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 100, - 114, - 97, - 109, - 97, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 114, - 101, - 102, - 101, - 114, - 114, - 105, - 110, - 103, - 32, - 116, - 111, - 110, - 101, - 103, - 111, - 116, - 105, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 101, - 97, - 100, - 113, - 117, - 97, - 114, - 116, - 101, - 114, - 115, - 83, - 111, - 117, - 116, - 104, - 32, - 65, - 102, - 114, - 105, - 99, - 97, - 117, - 110, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 117, - 108, - 80, - 101, - 110, - 110, - 115, - 121, - 108, - 118, - 97, - 110, - 105, - 97, - 65, - 115, - 32, - 97, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 44, - 60, - 104, - 116, - 109, - 108, - 32, - 108, - 97, - 110, - 103, - 61, - 34, - 38, - 108, - 116, - 59, - 47, - 115, - 117, - 112, - 38, - 103, - 116, - 59, - 100, - 101, - 97, - 108, - 105, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 112, - 104, - 105, - 108, - 97, - 100, - 101, - 108, - 112, - 104, - 105, - 97, - 104, - 105, - 115, - 116, - 111, - 114, - 105, - 99, - 97, - 108, - 108, - 121, - 41, - 59, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 45, - 116, - 111, - 112, - 58, - 101, - 120, - 112, - 101, - 114, - 105, - 109, - 101, - 110, - 116, - 97, - 108, - 103, - 101, - 116, - 65, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 105, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 115, - 116, - 101, - 99, - 104, - 110, - 111, - 108, - 111, - 103, - 105, - 101, - 115, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 61, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 115, - 117, - 98, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 108, - 46, - 100, - 116, - 100, - 34, - 62, - 13, - 10, - 60, - 104, - 116, - 103, - 101, - 111, - 103, - 114, - 97, - 112, - 104, - 105, - 99, - 97, - 108, - 67, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 105, - 111, - 110, - 39, - 44, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 101, - 100, - 32, - 98, - 121, - 97, - 103, - 114, - 105, - 99, - 117, - 108, - 116, - 117, - 114, - 97, - 108, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 32, - 49, - 97, - 32, - 118, - 97, - 114, - 105, - 101, - 116, - 121, - 32, - 111, - 102, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 69, - 110, - 99, - 121, - 99, - 108, - 111, - 112, - 101, - 100, - 105, - 97, - 105, - 102, - 114, - 97, - 109, - 101, - 32, - 115, - 114, - 99, - 61, - 34, - 100, - 101, - 109, - 111, - 110, - 115, - 116, - 114, - 97, - 116, - 101, - 100, - 97, - 99, - 99, - 111, - 109, - 112, - 108, - 105, - 115, - 104, - 101, - 100, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 105, - 101, - 115, - 68, - 101, - 109, - 111, - 103, - 114, - 97, - 112, - 104, - 105, - 99, - 115, - 41, - 59, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 100, - 101, - 100, - 105, - 99, - 97, - 116, - 101, - 100, - 32, - 116, - 111, - 107, - 110, - 111, - 119, - 108, - 101, - 100, - 103, - 101, - 32, - 111, - 102, - 115, - 97, - 116, - 105, - 115, - 102, - 97, - 99, - 116, - 105, - 111, - 110, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 108, - 121, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 40, - 85, - 83, - 41, - 97, - 112, - 112, - 101, - 110, - 100, - 67, - 104, - 105, - 108, - 100, - 40, - 116, - 114, - 97, - 110, - 115, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 115, - 46, - 32, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 105, - 110, - 116, - 101, - 108, - 108, - 105, - 103, - 101, - 110, - 99, - 101, - 34, - 32, - 116, - 97, - 98, - 105, - 110, - 100, - 101, - 120, - 61, - 34, - 102, - 108, - 111, - 97, - 116, - 58, - 114, - 105, - 103, - 104, - 116, - 59, - 67, - 111, - 109, - 109, - 111, - 110, - 119, - 101, - 97, - 108, - 116, - 104, - 114, - 97, - 110, - 103, - 105, - 110, - 103, - 32, - 102, - 114, - 111, - 109, - 105, - 110, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 116, - 104, - 101, - 97, - 116, - 32, - 108, - 101, - 97, - 115, - 116, - 32, - 111, - 110, - 101, - 114, - 101, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 101, - 110, - 99, - 121, - 99, - 108, - 111, - 112, - 101, - 100, - 105, - 97, - 59, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 49, - 106, - 117, - 114, - 105, - 115, - 100, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 116, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 105, - 109, - 101, - 34, - 62, - 60, - 97, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 73, - 110, - 32, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 44, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 43, - 99, - 111, - 110, - 118, - 101, - 114, - 115, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 110, - 116, - 97, - 99, - 116, - 32, - 119, - 105, - 116, - 104, - 105, - 115, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 108, - 121, - 114, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 105, - 110, - 103, - 38, - 108, - 116, - 59, - 109, - 97, - 116, - 104, - 38, - 103, - 116, - 59, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 116, - 105, - 111, - 110, - 111, - 99, - 99, - 97, - 115, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 60, - 105, - 109, - 103, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 110, - 97, - 118, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 34, - 62, - 99, - 111, - 109, - 112, - 101, - 110, - 115, - 97, - 116, - 105, - 111, - 110, - 99, - 104, - 97, - 109, - 112, - 105, - 111, - 110, - 115, - 104, - 105, - 112, - 109, - 101, - 100, - 105, - 97, - 61, - 34, - 97, - 108, - 108, - 34, - 32, - 118, - 105, - 111, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 32, - 116, - 111, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 116, - 114, - 117, - 101, - 59, - 83, - 116, - 114, - 105, - 99, - 116, - 47, - 47, - 69, - 78, - 34, - 32, - 116, - 114, - 97, - 110, - 115, - 97, - 99, - 116, - 105, - 111, - 110, - 115, - 105, - 110, - 116, - 101, - 114, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 118, - 101, - 114, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 73, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 100, - 105, - 102, - 102, - 105, - 99, - 117, - 108, - 116, - 105, - 101, - 115, - 67, - 104, - 97, - 109, - 112, - 105, - 111, - 110, - 115, - 104, - 105, - 112, - 99, - 97, - 112, - 97, - 98, - 105, - 108, - 105, - 116, - 105, - 101, - 115, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 125, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 67, - 104, - 114, - 105, - 115, - 116, - 105, - 97, - 110, - 105, - 116, - 121, - 102, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 80, - 114, - 111, - 102, - 101, - 115, - 115, - 105, - 111, - 110, - 97, - 108, - 114, - 101, - 115, - 116, - 114, - 105, - 99, - 116, - 105, - 111, - 110, - 115, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 32, - 116, - 104, - 97, - 116, - 119, - 97, - 115, - 32, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 100, - 40, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 114, - 101, - 109, - 111, - 118, - 101, - 67, - 108, - 97, - 115, - 115, - 40, - 117, - 110, - 101, - 109, - 112, - 108, - 111, - 121, - 109, - 101, - 110, - 116, - 116, - 104, - 101, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 32, - 111, - 102, - 47, - 105, - 110, - 100, - 101, - 120, - 46, - 104, - 116, - 109, - 108, - 32, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 32, - 105, - 110, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 34, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 98, - 101, - 108, - 111, - 110, - 103, - 105, - 110, - 103, - 32, - 116, - 111, - 99, - 108, - 97, - 105, - 109, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 99, - 111, - 110, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 115, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 71, - 117, - 105, - 100, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 111, - 118, - 101, - 114, - 119, - 104, - 101, - 108, - 109, - 105, - 110, - 103, - 97, - 103, - 97, - 105, - 110, - 115, - 116, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 99, - 101, - 110, - 116, - 114, - 97, - 116, - 101, - 100, - 44, - 10, - 46, - 110, - 111, - 110, - 116, - 111, - 117, - 99, - 104, - 32, - 111, - 98, - 115, - 101, - 114, - 118, - 97, - 116, - 105, - 111, - 110, - 115, - 60, - 47, - 97, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 102, - 32, - 40, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 98, - 111, - 114, - 100, - 101, - 114, - 58, - 32, - 49, - 112, - 120, - 32, - 123, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 49, - 116, - 114, - 101, - 97, - 116, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 48, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 109, - 111, - 100, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 73, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 99, - 101, - 100, - 105, - 118, - 105, - 100, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 103, - 114, - 101, - 97, - 116, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 97, - 99, - 104, - 105, - 101, - 118, - 101, - 109, - 101, - 110, - 116, - 115, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 105, - 110, - 103, - 74, - 97, - 118, - 97, - 83, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 110, - 101, - 118, - 101, - 114, - 116, - 104, - 101, - 108, - 101, - 115, - 115, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 99, - 101, - 66, - 114, - 111, - 97, - 100, - 99, - 97, - 115, - 116, - 105, - 110, - 103, - 62, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 116, - 100, - 62, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 114, - 34, - 62, - 10, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 97, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 115, - 114, - 99, - 61, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 110, - 97, - 118, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 34, - 32, - 104, - 97, - 108, - 102, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 116, - 105, - 97, - 108, - 32, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 100, - 105, - 118, - 62, - 97, - 100, - 118, - 97, - 110, - 116, - 97, - 103, - 101, - 32, - 111, - 102, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 121, - 32, - 111, - 102, - 102, - 117, - 110, - 100, - 97, - 109, - 101, - 110, - 116, - 97, - 108, - 32, - 109, - 101, - 116, - 114, - 111, - 112, - 111, - 108, - 105, - 116, - 97, - 110, - 116, - 104, - 101, - 32, - 111, - 112, - 112, - 111, - 115, - 105, - 116, - 101, - 34, - 32, - 120, - 109, - 108, - 58, - 108, - 97, - 110, - 103, - 61, - 34, - 100, - 101, - 108, - 105, - 98, - 101, - 114, - 97, - 116, - 101, - 108, - 121, - 97, - 108, - 105, - 103, - 110, - 61, - 99, - 101, - 110, - 116, - 101, - 114, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 112, - 114, - 101, - 115, - 101, - 114, - 118, - 97, - 116, - 105, - 111, - 110, - 105, - 109, - 112, - 114, - 111, - 118, - 101, - 109, - 101, - 110, - 116, - 115, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 105, - 110, - 74, - 101, - 115, - 117, - 115, - 32, - 67, - 104, - 114, - 105, - 115, - 116, - 80, - 117, - 98, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 100, - 105, - 115, - 97, - 103, - 114, - 101, - 101, - 109, - 101, - 110, - 116, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 114, - 44, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 105, - 116, - 105, - 101, - 115, - 98, - 111, - 100, - 121, - 62, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 105, - 115, - 32, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 108, - 121, - 97, - 108, - 112, - 104, - 97, - 98, - 101, - 116, - 105, - 99, - 97, - 108, - 105, - 115, - 32, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 116, - 121, - 112, - 101, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 47, - 109, - 97, - 110, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 102, - 108, - 111, - 119, - 58, - 104, - 105, - 100, - 100, - 101, - 110, - 59, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 32, - 105, - 110, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 32, - 116, - 104, - 101, - 101, - 120, - 105, - 115, - 116, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 97, - 108, - 108, - 32, - 111, - 118, - 101, - 114, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 73, - 110, - 116, - 101, - 114, - 110, - 101, - 116, - 9, - 60, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 110, - 115, - 116, - 97, - 108, - 108, - 97, - 116, - 105, - 111, - 110, - 110, - 101, - 105, - 103, - 104, - 98, - 111, - 114, - 104, - 111, - 111, - 100, - 97, - 114, - 109, - 101, - 100, - 32, - 102, - 111, - 114, - 99, - 101, - 115, - 114, - 101, - 100, - 117, - 99, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 115, - 32, - 116, - 111, - 78, - 111, - 110, - 101, - 116, - 104, - 101, - 108, - 101, - 115, - 115, - 44, - 116, - 101, - 109, - 112, - 101, - 114, - 97, - 116, - 117, - 114, - 101, - 115, - 10, - 9, - 9, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 99, - 108, - 111, - 115, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 115, - 32, - 111, - 102, - 32, - 105, - 115, - 32, - 97, - 98, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 40, - 115, - 101, - 101, - 32, - 98, - 101, - 108, - 111, - 119, - 41, - 46, - 34, - 32, - 105, - 100, - 61, - 34, - 115, - 101, - 97, - 114, - 99, - 104, - 112, - 114, - 111, - 102, - 101, - 115, - 115, - 105, - 111, - 110, - 97, - 108, - 105, - 115, - 32, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 116, - 104, - 101, - 32, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 9, - 9, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 10, - 9, - 9, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 97, - 99, - 99, - 101, - 108, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 32, - 72, - 97, - 108, - 108, - 32, - 111, - 102, - 32, - 70, - 97, - 109, - 101, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 115, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 105, - 110, - 116, - 101, - 114, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 39, - 116, - 101, - 120, - 116, - 47, - 114, - 101, - 99, - 101, - 110, - 116, - 32, - 121, - 101, - 97, - 114, - 115, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 118, - 101, - 114, - 121, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 123, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 115, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 101, - 100, - 32, - 116, - 111, - 101, - 120, - 112, - 108, - 111, - 105, - 116, - 97, - 116, - 105, - 111, - 110, - 101, - 109, - 101, - 114, - 103, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 99, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 105, - 111, - 110, - 65, - 32, - 72, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 116, - 32, - 109, - 97, - 110, - 117, - 102, - 97, - 99, - 116, - 117, - 114, - 101, - 100, - 101, - 120, - 112, - 101, - 99, - 116, - 97, - 116, - 105, - 111, - 110, - 115, - 62, - 60, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 102, - 111, - 117, - 110, - 100, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 116, - 104, - 101, - 32, - 104, - 97, - 115, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 101, - 110, - 110, - 101, - 105, - 103, - 104, - 98, - 111, - 117, - 114, - 105, - 110, - 103, - 119, - 105, - 116, - 104, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 32, - 97, - 100, - 100, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 9, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 110, - 115, - 116, - 114, - 117, - 109, - 101, - 110, - 116, - 97, - 108, - 83, - 111, - 118, - 105, - 101, - 116, - 32, - 85, - 110, - 105, - 111, - 110, - 97, - 99, - 107, - 110, - 111, - 119, - 108, - 101, - 100, - 103, - 101, - 100, - 119, - 104, - 105, - 99, - 104, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 110, - 97, - 109, - 101, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 97, - 116, - 116, - 101, - 110, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 115, - 32, - 116, - 111, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 115, - 73, - 110, - 32, - 102, - 97, - 99, - 116, - 44, - 32, - 116, - 104, - 101, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 97, - 105, - 109, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 115, - 117, - 105, - 116, - 97, - 98, - 108, - 101, - 32, - 102, - 111, - 114, - 109, - 117, - 99, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 108, - 111, - 110, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 112, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 105, - 97, - 108, - 99, - 97, - 110, - 99, - 101, - 108, - 66, - 117, - 98, - 98, - 108, - 101, - 32, - 73, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 109, - 111, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 105, - 115, - 32, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 100, - 114, - 101, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 109, - 111, - 114, - 101, - 32, - 111, - 114, - 32, - 108, - 101, - 115, - 115, - 105, - 110, - 32, - 83, - 101, - 112, - 116, - 101, - 109, - 98, - 101, - 114, - 73, - 110, - 116, - 101, - 108, - 108, - 105, - 103, - 101, - 110, - 99, - 101, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 112, - 120, - 59, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 32, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 109, - 97, - 110, - 117, - 102, - 97, - 99, - 116, - 117, - 114, - 101, - 114, - 104, - 117, - 109, - 97, - 110, - 32, - 114, - 105, - 103, - 104, - 116, - 115, - 108, - 105, - 110, - 107, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 112, - 114, - 111, - 112, - 111, - 114, - 116, - 105, - 111, - 110, - 97, - 108, - 111, - 117, - 116, - 115, - 105, - 100, - 101, - 32, - 116, - 104, - 101, - 32, - 97, - 115, - 116, - 114, - 111, - 110, - 111, - 109, - 105, - 99, - 97, - 108, - 104, - 117, - 109, - 97, - 110, - 32, - 98, - 101, - 105, - 110, - 103, - 115, - 110, - 97, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 97, - 114, - 101, - 32, - 102, - 111, - 117, - 110, - 100, - 32, - 105, - 110, - 97, - 114, - 101, - 32, - 98, - 97, - 115, - 101, - 100, - 32, - 111, - 110, - 115, - 109, - 97, - 108, - 108, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 97, - 32, - 112, - 101, - 114, - 115, - 111, - 110, - 32, - 119, - 104, - 111, - 101, - 120, - 112, - 97, - 110, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 97, - 114, - 103, - 117, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 110, - 111, - 119, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 73, - 110, - 32, - 116, - 104, - 101, - 32, - 101, - 97, - 114, - 108, - 121, - 105, - 110, - 116, - 101, - 114, - 109, - 101, - 100, - 105, - 97, - 116, - 101, - 100, - 101, - 114, - 105, - 118, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 83, - 99, - 97, - 110, - 100, - 105, - 110, - 97, - 118, - 105, - 97, - 110, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 97, - 110, - 32, - 101, - 115, - 116, - 105, - 109, - 97, - 116, - 101, - 100, - 116, - 104, - 101, - 32, - 78, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 112, - 97, - 103, - 114, - 101, - 115, - 117, - 108, - 116, - 105, - 110, - 103, - 32, - 105, - 110, - 99, - 111, - 109, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 101, - 100, - 97, - 110, - 97, - 108, - 111, - 103, - 111, - 117, - 115, - 32, - 116, - 111, - 97, - 114, - 101, - 32, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 100, - 47, - 117, - 108, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 119, - 97, - 115, - 32, - 98, - 97, - 115, - 101, - 100, - 32, - 111, - 110, - 97, - 110, - 100, - 32, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 97, - 38, - 110, - 98, - 115, - 112, - 59, - 38, - 110, - 98, - 115, - 112, - 59, - 116, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 34, - 32, - 119, - 97, - 115, - 32, - 99, - 97, - 112, - 116, - 117, - 114, - 101, - 100, - 110, - 111, - 32, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 32, - 116, - 111, - 32, - 62, - 13, - 10, - 60, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 60, - 119, - 101, - 114, - 101, - 32, - 99, - 114, - 101, - 97, - 116, - 101, - 100, - 109, - 111, - 114, - 101, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 117, - 115, - 101, - 100, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 105, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 32, - 116, - 104, - 101, - 32, - 73, - 109, - 112, - 101, - 114, - 105, - 97, - 108, - 99, - 111, - 109, - 112, - 111, - 110, - 101, - 110, - 116, - 32, - 111, - 102, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 110, - 111, - 114, - 116, - 104, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 32, - 116, - 104, - 101, - 32, - 67, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 115, - 105, - 100, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 119, - 111, - 117, - 108, - 100, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 102, - 111, - 114, - 32, - 105, - 110, - 115, - 116, - 97, - 110, - 99, - 101, - 105, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 109, - 111, - 114, - 101, - 32, - 99, - 111, - 109, - 112, - 108, - 101, - 120, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 32, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 32, - 105, - 116, - 115, - 32, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 105, - 110, - 116, - 111, - 32, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 116, - 104, - 105, - 115, - 32, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 97, - 110, - 32, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 118, - 101, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 121, - 32, - 97, - 114, - 101, - 32, - 110, - 111, - 116, - 114, - 101, - 106, - 101, - 99, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 99, - 114, - 105, - 116, - 105, - 99, - 105, - 115, - 109, - 32, - 111, - 102, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 119, - 104, - 105, - 99, - 104, - 112, - 114, - 111, - 98, - 97, - 98, - 108, - 121, - 32, - 116, - 104, - 101, - 116, - 104, - 105, - 115, - 32, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 73, - 116, - 32, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 97, - 110, - 32, - 97, - 103, - 114, - 101, - 101, - 109, - 101, - 110, - 116, - 97, - 99, - 99, - 105, - 100, - 101, - 110, - 116, - 97, - 108, - 108, - 121, - 100, - 105, - 102, - 102, - 101, - 114, - 115, - 32, - 102, - 114, - 111, - 109, - 65, - 114, - 99, - 104, - 105, - 116, - 101, - 99, - 116, - 117, - 114, - 101, - 98, - 101, - 116, - 116, - 101, - 114, - 32, - 107, - 110, - 111, - 119, - 110, - 97, - 114, - 114, - 97, - 110, - 103, - 101, - 109, - 101, - 110, - 116, - 115, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 32, - 111, - 110, - 97, - 116, - 116, - 101, - 110, - 100, - 101, - 100, - 32, - 116, - 104, - 101, - 105, - 100, - 101, - 110, - 116, - 105, - 99, - 97, - 108, - 32, - 116, - 111, - 115, - 111, - 117, - 116, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 112, - 97, - 115, - 115, - 32, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 120, - 109, - 108, - 34, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 98, - 111, - 108, - 100, - 59, - 99, - 114, - 101, - 97, - 116, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 110, - 111, - 110, - 101, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 116, - 104, - 101, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 105, - 104, - 116, - 116, - 112, - 115, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 87, - 111, - 114, - 108, - 100, - 32, - 87, - 97, - 114, - 32, - 73, - 73, - 116, - 101, - 115, - 116, - 105, - 109, - 111, - 110, - 105, - 97, - 108, - 115, - 102, - 111, - 117, - 110, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 97, - 110, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 32, - 116, - 104, - 101, - 32, - 119, - 97, - 115, - 32, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 115, - 32, - 111, - 102, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 97, - 98, - 108, - 121, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 32, - 98, - 121, - 116, - 104, - 101, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 67, - 111, - 110, - 115, - 101, - 114, - 118, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 101, - 100, - 32, - 111, - 102, - 114, - 101, - 102, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 98, - 97, - 99, - 107, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 99, - 115, - 115, - 34, - 32, - 109, - 101, - 100, - 105, - 97, - 61, - 34, - 80, - 101, - 111, - 112, - 108, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 32, - 111, - 110, - 112, - 114, - 111, - 118, - 101, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 105, - 111, - 110, - 115, - 34, - 119, - 97, - 115, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 118, - 97, - 114, - 105, - 101, - 116, - 105, - 101, - 115, - 32, - 111, - 102, - 108, - 105, - 107, - 101, - 108, - 121, - 32, - 116, - 111, - 32, - 98, - 101, - 99, - 111, - 109, - 112, - 114, - 105, - 115, - 101, - 100, - 32, - 111, - 102, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 116, - 104, - 101, - 32, - 104, - 97, - 110, - 100, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 111, - 117, - 112, - 108, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 32, - 97, - 110, - 100, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 58, - 110, - 111, - 110, - 101, - 59, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 97, - 110, - 99, - 101, - 115, - 98, - 101, - 102, - 111, - 114, - 101, - 32, - 98, - 101, - 105, - 110, - 103, - 108, - 97, - 116, - 101, - 114, - 32, - 98, - 101, - 99, - 97, - 109, - 101, - 99, - 97, - 108, - 99, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 111, - 102, - 116, - 101, - 110, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 115, - 32, - 111, - 102, - 109, - 101, - 97, - 110, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 62, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 101, - 118, - 105, - 100, - 101, - 110, - 99, - 101, - 32, - 102, - 111, - 114, - 101, - 120, - 112, - 108, - 97, - 110, - 97, - 116, - 105, - 111, - 110, - 115, - 101, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 115, - 34, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 119, - 104, - 105, - 99, - 104, - 32, - 97, - 108, - 108, - 111, - 119, - 115, - 73, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 32, - 98, - 121, - 97, - 32, - 119, - 105, - 100, - 101, - 32, - 114, - 97, - 110, - 103, - 101, - 111, - 110, - 32, - 98, - 101, - 104, - 97, - 108, - 102, - 32, - 111, - 102, - 118, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 116, - 111, - 112, - 34, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 108, - 101, - 32, - 111, - 102, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 116, - 105, - 109, - 101, - 44, - 60, - 47, - 110, - 111, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 115, - 97, - 105, - 100, - 32, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 119, - 104, - 105, - 108, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 115, - 104, - 121, - 112, - 111, - 116, - 104, - 101, - 116, - 105, - 99, - 97, - 108, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 101, - 114, - 115, - 112, - 111, - 119, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 101, - 100, - 32, - 105, - 110, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 101, - 100, - 32, - 98, - 121, - 105, - 110, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 116, - 111, - 119, - 101, - 114, - 101, - 32, - 119, - 114, - 105, - 116, - 116, - 101, - 110, - 115, - 112, - 97, - 110, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 105, - 110, - 112, - 117, - 116, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 116, - 104, - 101, - 32, - 113, - 117, - 101, - 115, - 116, - 105, - 111, - 110, - 105, - 110, - 116, - 101, - 110, - 100, - 101, - 100, - 32, - 102, - 111, - 114, - 114, - 101, - 106, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 109, - 112, - 108, - 105, - 101, - 115, - 32, - 116, - 104, - 97, - 116, - 105, - 110, - 118, - 101, - 110, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 115, - 116, - 97, - 110, - 100, - 97, - 114, - 100, - 119, - 97, - 115, - 32, - 112, - 114, - 111, - 98, - 97, - 98, - 108, - 121, - 108, - 105, - 110, - 107, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 112, - 114, - 111, - 102, - 101, - 115, - 115, - 111, - 114, - 32, - 111, - 102, - 105, - 110, - 116, - 101, - 114, - 97, - 99, - 116, - 105, - 111, - 110, - 115, - 99, - 104, - 97, - 110, - 103, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 73, - 110, - 100, - 105, - 97, - 110, - 32, - 79, - 99, - 101, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 108, - 97, - 115, - 116, - 119, - 111, - 114, - 107, - 105, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 121, - 101, - 97, - 114, - 115, - 32, - 98, - 101, - 102, - 111, - 114, - 101, - 84, - 104, - 105, - 115, - 32, - 119, - 97, - 115, - 32, - 116, - 104, - 101, - 114, - 101, - 99, - 114, - 101, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 101, - 110, - 116, - 101, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 109, - 101, - 97, - 115, - 117, - 114, - 101, - 109, - 101, - 110, - 116, - 115, - 97, - 110, - 32, - 101, - 120, - 116, - 114, - 101, - 109, - 101, - 108, - 121, - 118, - 97, - 108, - 117, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 116, - 97, - 114, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 10, - 97, - 110, - 32, - 101, - 102, - 102, - 111, - 114, - 116, - 32, - 116, - 111, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 101, - 32, - 116, - 104, - 101, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 115, - 111, - 117, - 116, - 104, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 62, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 108, - 121, - 116, - 104, - 101, - 32, - 69, - 117, - 114, - 111, - 112, - 101, - 97, - 110, - 99, - 111, - 110, - 118, - 101, - 114, - 116, - 101, - 100, - 32, - 116, - 111, - 99, - 108, - 101, - 97, - 114, - 84, - 105, - 109, - 101, - 111, - 117, - 116, - 100, - 105, - 100, - 32, - 110, - 111, - 116, - 32, - 104, - 97, - 118, - 101, - 99, - 111, - 110, - 115, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 32, - 110, - 101, - 120, - 116, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 101, - 99, - 111, - 110, - 111, - 109, - 105, - 99, - 32, - 97, - 110, - 100, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 97, - 114, - 101, - 32, - 112, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 97, - 110, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 103, - 105, - 118, - 101, - 110, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 115, - 116, - 97, - 116, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 101, - 120, - 112, - 101, - 110, - 100, - 105, - 116, - 117, - 114, - 101, - 115, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 97, - 62, - 10, - 116, - 104, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 104, - 97, - 116, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 98, - 97, - 115, - 105, - 115, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 61, - 105, - 109, - 97, - 103, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 116, - 117, - 114, - 110, - 105, - 110, - 103, - 32, - 116, - 111, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 44, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 97, - 115, - 115, - 97, - 115, - 115, - 105, - 110, - 97, - 116, - 101, - 100, - 115, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 110, - 111, - 114, - 116, - 104, - 119, - 101, - 115, - 116, - 101, - 114, - 110, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 34, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 32, - 32, - 99, - 111, - 110, - 115, - 117, - 108, - 116, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 116, - 121, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 105, - 116, - 32, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 110, - 116, - 115, - 32, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 108, - 101, - 102, - 116, - 116, - 104, - 101, - 32, - 103, - 114, - 101, - 97, - 116, - 101, - 115, - 116, - 115, - 101, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 115, - 117, - 112, - 101, - 114, - 110, - 97, - 116, - 117, - 114, - 97, - 108, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 32, - 111, - 110, - 105, - 115, - 32, - 109, - 101, - 110, - 116, - 105, - 111, - 110, - 101, - 100, - 97, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 119, - 97, - 115, - 32, - 105, - 110, - 118, - 101, - 110, - 116, - 101, - 100, - 97, - 99, - 99, - 111, - 109, - 112, - 97, - 110, - 121, - 105, - 110, - 103, - 104, - 105, - 115, - 32, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 32, - 97, - 116, - 115, - 116, - 117, - 100, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 101, - 120, - 101, - 99, - 117, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 72, - 117, - 109, - 97, - 110, - 32, - 82, - 105, - 103, - 104, - 116, - 115, - 116, - 101, - 114, - 109, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 115, - 114, - 101, - 115, - 101, - 97, - 114, - 99, - 104, - 32, - 97, - 110, - 100, - 115, - 117, - 99, - 99, - 101, - 101, - 100, - 101, - 100, - 32, - 98, - 121, - 100, - 101, - 102, - 101, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 97, - 110, - 100, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 98, - 117, - 116, - 32, - 116, - 104, - 101, - 121, - 32, - 97, - 114, - 101, - 99, - 111, - 109, - 109, - 97, - 110, - 100, - 101, - 114, - 32, - 111, - 102, - 115, - 116, - 97, - 116, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 121, - 101, - 97, - 114, - 115, - 32, - 111, - 102, - 32, - 97, - 103, - 101, - 116, - 104, - 101, - 32, - 115, - 116, - 117, - 100, - 121, - 32, - 111, - 102, - 60, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 112, - 108, - 97, - 99, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 119, - 104, - 101, - 114, - 101, - 32, - 104, - 101, - 32, - 119, - 97, - 115, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 102, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 32, - 110, - 111, - 119, - 104, - 105, - 99, - 104, - 32, - 98, - 101, - 99, - 97, - 109, - 101, - 104, - 101, - 32, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 109, - 105, - 115, - 115, - 105, - 111, - 110, - 101, - 114, - 102, - 111, - 110, - 116, - 45, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 116, - 101, - 114, - 114, - 105, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 101, - 120, - 116, - 101, - 110, - 115, - 105, - 111, - 110, - 115, - 34, - 62, - 82, - 111, - 109, - 97, - 110, - 32, - 69, - 109, - 112, - 105, - 114, - 101, - 101, - 113, - 117, - 97, - 108, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 73, - 110, - 32, - 99, - 111, - 110, - 116, - 114, - 97, - 115, - 116, - 44, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 97, - 110, - 100, - 105, - 115, - 32, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 108, - 121, - 97, - 110, - 100, - 32, - 104, - 105, - 115, - 32, - 119, - 105, - 102, - 101, - 40, - 97, - 108, - 115, - 111, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 62, - 60, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 32, - 101, - 118, - 111, - 108, - 118, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 115, - 101, - 101, - 109, - 32, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 119, - 104, - 105, - 99, - 104, - 32, - 105, - 115, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 114, - 101, - 32, - 119, - 97, - 115, - 32, - 110, - 111, - 97, - 110, - 32, - 101, - 120, - 99, - 101, - 108, - 108, - 101, - 110, - 116, - 97, - 108, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 101, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 100, - 32, - 98, - 121, - 73, - 110, - 32, - 112, - 114, - 97, - 99, - 116, - 105, - 99, - 101, - 44, - 98, - 114, - 111, - 97, - 100, - 99, - 97, - 115, - 116, - 105, - 110, - 103, - 99, - 104, - 97, - 114, - 103, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 114, - 101, - 102, - 108, - 101, - 99, - 116, - 101, - 100, - 32, - 105, - 110, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 101, - 100, - 32, - 116, - 111, - 109, - 105, - 108, - 105, - 116, - 97, - 114, - 121, - 32, - 97, - 110, - 100, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 112, - 111, - 105, - 110, - 116, - 101, - 99, - 111, - 110, - 111, - 109, - 105, - 99, - 97, - 108, - 108, - 121, - 115, - 101, - 116, - 84, - 97, - 114, - 103, - 101, - 116, - 105, - 110, - 103, - 97, - 114, - 101, - 32, - 97, - 99, - 116, - 117, - 97, - 108, - 108, - 121, - 118, - 105, - 99, - 116, - 111, - 114, - 121, - 32, - 111, - 118, - 101, - 114, - 40, - 41, - 59, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 111, - 117, - 115, - 108, - 121, - 114, - 101, - 113, - 117, - 105, - 114, - 101, - 100, - 32, - 102, - 111, - 114, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 97, - 110, - 32, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 110, - 111, - 114, - 116, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 44, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 119, - 97, - 115, - 32, - 102, - 114, - 111, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 111, - 114, - 32, - 111, - 116, - 104, - 101, - 114, - 119, - 105, - 115, - 101, - 115, - 111, - 109, - 101, - 32, - 102, - 111, - 114, - 109, - 32, - 111, - 102, - 104, - 97, - 100, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 101, - 110, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 46, - 112, - 101, - 114, - 109, - 105, - 116, - 116, - 101, - 100, - 32, - 116, - 111, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 115, - 32, - 116, - 104, - 101, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 44, - 101, - 110, - 116, - 101, - 114, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 116, - 104, - 101, - 32, - 112, - 114, - 101, - 118, - 105, - 111, - 117, - 115, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 101, - 110, - 116, - 108, - 121, - 97, - 114, - 101, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 116, - 104, - 101, - 32, - 102, - 105, - 101, - 108, - 100, - 32, - 111, - 102, - 116, - 104, - 105, - 115, - 32, - 116, - 121, - 112, - 101, - 32, - 111, - 102, - 103, - 105, - 118, - 101, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 116, - 105, - 116, - 108, - 101, - 32, - 111, - 102, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 115, - 32, - 116, - 104, - 101, - 105, - 110, - 115, - 116, - 97, - 110, - 99, - 101, - 115, - 32, - 111, - 102, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 110, - 111, - 114, - 116, - 104, - 100, - 117, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 105, - 114, - 97, - 114, - 101, - 32, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 99, - 111, - 114, - 112, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 119, - 97, - 115, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 101, - 109, - 111, - 114, - 101, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 115, - 117, - 99, - 99, - 101, - 101, - 100, - 101, - 100, - 32, - 105, - 110, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 102, - 114, - 111, - 109, - 105, - 110, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 100, - 111, - 109, - 105, - 110, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 100, - 101, - 115, - 105, - 103, - 110, - 101, - 100, - 32, - 102, - 111, - 114, - 111, - 119, - 110, - 101, - 114, - 115, - 104, - 105, - 112, - 32, - 111, - 102, - 97, - 110, - 100, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 121, - 115, - 116, - 97, - 110, - 100, - 97, - 114, - 100, - 105, - 122, - 101, - 100, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 101, - 84, - 101, - 120, - 116, - 119, - 97, - 115, - 32, - 105, - 110, - 116, - 101, - 110, - 100, - 101, - 100, - 114, - 101, - 99, - 101, - 105, - 118, - 101, - 100, - 32, - 116, - 104, - 101, - 97, - 115, - 115, - 117, - 109, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 97, - 114, - 101, - 97, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 112, - 114, - 105, - 109, - 97, - 114, - 105, - 108, - 121, - 32, - 105, - 110, - 116, - 104, - 101, - 32, - 98, - 97, - 115, - 105, - 115, - 32, - 111, - 102, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 115, - 101, - 110, - 115, - 101, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 115, - 32, - 102, - 111, - 114, - 100, - 101, - 115, - 116, - 114, - 111, - 121, - 101, - 100, - 32, - 98, - 121, - 97, - 116, - 32, - 108, - 101, - 97, - 115, - 116, - 32, - 116, - 119, - 111, - 119, - 97, - 115, - 32, - 100, - 101, - 99, - 108, - 97, - 114, - 101, - 100, - 99, - 111, - 117, - 108, - 100, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 83, - 101, - 99, - 114, - 101, - 116, - 97, - 114, - 121, - 32, - 111, - 102, - 97, - 112, - 112, - 101, - 97, - 114, - 32, - 116, - 111, - 32, - 98, - 101, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 116, - 111, - 112, - 58, - 49, - 47, - 94, - 92, - 115, - 43, - 124, - 92, - 115, - 43, - 36, - 47, - 103, - 101, - 41, - 123, - 116, - 104, - 114, - 111, - 119, - 32, - 101, - 125, - 59, - 116, - 104, - 101, - 32, - 115, - 116, - 97, - 114, - 116, - 32, - 111, - 102, - 116, - 119, - 111, - 32, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 32, - 97, - 110, - 100, - 119, - 104, - 111, - 32, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 100, - 101, - 97, - 116, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 114, - 101, - 97, - 108, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 115, - 9, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 112, - 114, - 111, - 118, - 105, - 100, - 101, - 100, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 99, - 111, - 109, - 112, - 101, - 116, - 105, - 116, - 105, - 111, - 110, - 115, - 101, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 40, - 85, - 75, - 41, - 101, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 40, - 85, - 83, - 41, - 208, - 156, - 208, - 190, - 208, - 189, - 208, - 179, - 208, - 190, - 208, - 187, - 208, - 161, - 209, - 128, - 208, - 191, - 209, - 129, - 208, - 186, - 208, - 184, - 209, - 129, - 209, - 128, - 208, - 191, - 209, - 129, - 208, - 186, - 208, - 184, - 209, - 129, - 209, - 128, - 208, - 191, - 209, - 129, - 208, - 186, - 208, - 190, - 217, - 132, - 216, - 185, - 216, - 177, - 216, - 168, - 217, - 138, - 216, - 169, - 230, - 173, - 163, - 233, - 171, - 148, - 228, - 184, - 173, - 230, - 150, - 135, - 231, - 174, - 128, - 228, - 189, - 147, - 228, - 184, - 173, - 230, - 150, - 135, - 231, - 185, - 129, - 228, - 189, - 147, - 228, - 184, - 173, - 230, - 150, - 135, - 230, - 156, - 137, - 233, - 153, - 144, - 229, - 133, - 172, - 229, - 143, - 184, - 228, - 186, - 186, - 230, - 176, - 145, - 230, - 148, - 191, - 229, - 186, - 156, - 233, - 152, - 191, - 233, - 135, - 140, - 229, - 183, - 180, - 229, - 183, - 180, - 231, - 164, - 190, - 228, - 188, - 154, - 228, - 184, - 187, - 228, - 185, - 137, - 230, - 147, - 141, - 228, - 189, - 156, - 231, - 179, - 187, - 231, - 187, - 159, - 230, - 148, - 191, - 231, - 173, - 150, - 230, - 179, - 149, - 232, - 167, - 132, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 99, - 105, - 195, - 179, - 110, - 104, - 101, - 114, - 114, - 97, - 109, - 105, - 101, - 110, - 116, - 97, - 115, - 101, - 108, - 101, - 99, - 116, - 114, - 195, - 179, - 110, - 105, - 99, - 111, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 99, - 105, - 195, - 179, - 110, - 99, - 108, - 97, - 115, - 105, - 102, - 105, - 99, - 97, - 100, - 111, - 115, - 99, - 111, - 110, - 111, - 99, - 105, - 109, - 105, - 101, - 110, - 116, - 111, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 114, - 101, - 108, - 97, - 99, - 105, - 111, - 110, - 97, - 100, - 97, - 115, - 105, - 110, - 102, - 111, - 114, - 109, - 195, - 161, - 116, - 105, - 99, - 97, - 114, - 101, - 108, - 97, - 99, - 105, - 111, - 110, - 97, - 100, - 111, - 115, - 100, - 101, - 112, - 97, - 114, - 116, - 97, - 109, - 101, - 110, - 116, - 111, - 116, - 114, - 97, - 98, - 97, - 106, - 97, - 100, - 111, - 114, - 101, - 115, - 100, - 105, - 114, - 101, - 99, - 116, - 97, - 109, - 101, - 110, - 116, - 101, - 97, - 121, - 117, - 110, - 116, - 97, - 109, - 105, - 101, - 110, - 116, - 111, - 109, - 101, - 114, - 99, - 97, - 100, - 111, - 76, - 105, - 98, - 114, - 101, - 99, - 111, - 110, - 116, - 195, - 161, - 99, - 116, - 101, - 110, - 111, - 115, - 104, - 97, - 98, - 105, - 116, - 97, - 99, - 105, - 111, - 110, - 101, - 115, - 99, - 117, - 109, - 112, - 108, - 105, - 109, - 105, - 101, - 110, - 116, - 111, - 114, - 101, - 115, - 116, - 97, - 117, - 114, - 97, - 110, - 116, - 101, - 115, - 100, - 105, - 115, - 112, - 111, - 115, - 105, - 99, - 105, - 195, - 179, - 110, - 99, - 111, - 110, - 115, - 101, - 99, - 117, - 101, - 110, - 99, - 105, - 97, - 101, - 108, - 101, - 99, - 116, - 114, - 195, - 179, - 110, - 105, - 99, - 97, - 97, - 112, - 108, - 105, - 99, - 97, - 99, - 105, - 111, - 110, - 101, - 115, - 100, - 101, - 115, - 99, - 111, - 110, - 101, - 99, - 116, - 97, - 100, - 111, - 105, - 110, - 115, - 116, - 97, - 108, - 97, - 99, - 105, - 195, - 179, - 110, - 114, - 101, - 97, - 108, - 105, - 122, - 97, - 99, - 105, - 195, - 179, - 110, - 117, - 116, - 105, - 108, - 105, - 122, - 97, - 99, - 105, - 195, - 179, - 110, - 101, - 110, - 99, - 105, - 99, - 108, - 111, - 112, - 101, - 100, - 105, - 97, - 101, - 110, - 102, - 101, - 114, - 109, - 101, - 100, - 97, - 100, - 101, - 115, - 105, - 110, - 115, - 116, - 114, - 117, - 109, - 101, - 110, - 116, - 111, - 115, - 101, - 120, - 112, - 101, - 114, - 105, - 101, - 110, - 99, - 105, - 97, - 115, - 105, - 110, - 115, - 116, - 105, - 116, - 117, - 99, - 105, - 195, - 179, - 110, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 101, - 115, - 115, - 117, - 98, - 99, - 97, - 116, - 101, - 103, - 111, - 114, - 105, - 97, - 209, - 130, - 208, - 190, - 208, - 187, - 209, - 140, - 208, - 186, - 208, - 190, - 208, - 160, - 208, - 190, - 209, - 129, - 209, - 129, - 208, - 184, - 208, - 184, - 209, - 128, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 209, - 139, - 208, - 177, - 208, - 190, - 208, - 187, - 209, - 140, - 209, - 136, - 208, - 181, - 208, - 191, - 209, - 128, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 190, - 208, - 188, - 208, - 190, - 208, - 182, - 208, - 181, - 209, - 130, - 208, - 181, - 208, - 180, - 209, - 128, - 209, - 131, - 208, - 179, - 208, - 184, - 209, - 133, - 209, - 129, - 208, - 187, - 209, - 131, - 209, - 135, - 208, - 176, - 208, - 181, - 209, - 129, - 208, - 181, - 208, - 185, - 209, - 135, - 208, - 176, - 209, - 129, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 179, - 208, - 180, - 208, - 176, - 208, - 160, - 208, - 190, - 209, - 129, - 209, - 129, - 208, - 184, - 209, - 143, - 208, - 156, - 208, - 190, - 209, - 129, - 208, - 186, - 208, - 178, - 208, - 181, - 208, - 180, - 209, - 128, - 209, - 131, - 208, - 179, - 208, - 184, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 180, - 208, - 176, - 208, - 178, - 208, - 190, - 208, - 191, - 209, - 128, - 208, - 190, - 209, - 129, - 208, - 180, - 208, - 176, - 208, - 189, - 208, - 189, - 209, - 139, - 209, - 133, - 208, - 180, - 208, - 190, - 208, - 187, - 208, - 182, - 208, - 189, - 209, - 139, - 208, - 184, - 208, - 188, - 208, - 181, - 208, - 189, - 208, - 189, - 208, - 190, - 208, - 156, - 208, - 190, - 209, - 129, - 208, - 186, - 208, - 178, - 209, - 139, - 209, - 128, - 209, - 131, - 208, - 177, - 208, - 187, - 208, - 181, - 208, - 185, - 208, - 156, - 208, - 190, - 209, - 129, - 208, - 186, - 208, - 178, - 208, - 176, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 176, - 208, - 189, - 209, - 139, - 208, - 189, - 208, - 184, - 209, - 135, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 128, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 208, - 181, - 208, - 180, - 208, - 190, - 208, - 187, - 208, - 182, - 208, - 181, - 208, - 189, - 209, - 131, - 209, - 129, - 208, - 187, - 209, - 131, - 208, - 179, - 208, - 184, - 209, - 130, - 208, - 181, - 208, - 191, - 208, - 181, - 209, - 128, - 209, - 140, - 208, - 158, - 208, - 180, - 208, - 189, - 208, - 176, - 208, - 186, - 208, - 190, - 208, - 191, - 208, - 190, - 209, - 130, - 208, - 190, - 208, - 188, - 209, - 131, - 209, - 128, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 209, - 131, - 208, - 176, - 208, - 191, - 209, - 128, - 208, - 181, - 208, - 187, - 209, - 143, - 208, - 178, - 208, - 190, - 208, - 190, - 208, - 177, - 209, - 137, - 208, - 181, - 208, - 190, - 208, - 180, - 208, - 189, - 208, - 190, - 208, - 179, - 208, - 190, - 209, - 129, - 208, - 178, - 208, - 190, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 184, - 208, - 180, - 209, - 128, - 209, - 131, - 208, - 179, - 208, - 190, - 208, - 185, - 209, - 132, - 208, - 190, - 209, - 128, - 209, - 131, - 208, - 188, - 208, - 181, - 209, - 133, - 208, - 190, - 209, - 128, - 208, - 190, - 209, - 136, - 208, - 190, - 208, - 191, - 209, - 128, - 208, - 190, - 209, - 130, - 208, - 184, - 208, - 178, - 209, - 129, - 209, - 129, - 209, - 139, - 208, - 187, - 208, - 186, - 208, - 176, - 208, - 186, - 208, - 176, - 208, - 182, - 208, - 180, - 209, - 139, - 208, - 185, - 208, - 178, - 208, - 187, - 208, - 176, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 179, - 209, - 128, - 209, - 131, - 208, - 191, - 208, - 191, - 209, - 139, - 208, - 178, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 181, - 209, - 128, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 208, - 176, - 209, - 129, - 208, - 186, - 208, - 176, - 208, - 183, - 208, - 176, - 208, - 187, - 208, - 191, - 208, - 181, - 209, - 128, - 208, - 178, - 209, - 139, - 208, - 185, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 180, - 208, - 181, - 208, - 189, - 209, - 140, - 208, - 179, - 208, - 184, - 208, - 191, - 208, - 181, - 209, - 128, - 208, - 184, - 208, - 190, - 208, - 180, - 208, - 177, - 208, - 184, - 208, - 183, - 208, - 189, - 208, - 181, - 209, - 129, - 208, - 190, - 209, - 129, - 208, - 189, - 208, - 190, - 208, - 178, - 208, - 181, - 208, - 188, - 208, - 190, - 208, - 188, - 208, - 181, - 208, - 189, - 209, - 130, - 208, - 186, - 209, - 131, - 208, - 191, - 208, - 184, - 209, - 130, - 209, - 140, - 208, - 180, - 208, - 190, - 208, - 187, - 208, - 182, - 208, - 189, - 208, - 176, - 209, - 128, - 208, - 176, - 208, - 188, - 208, - 186, - 208, - 176, - 209, - 133, - 208, - 189, - 208, - 176, - 209, - 135, - 208, - 176, - 208, - 187, - 208, - 190, - 208, - 160, - 208, - 176, - 208, - 177, - 208, - 190, - 209, - 130, - 208, - 176, - 208, - 162, - 208, - 190, - 208, - 187, - 209, - 140, - 208, - 186, - 208, - 190, - 209, - 129, - 208, - 190, - 208, - 178, - 209, - 129, - 208, - 181, - 208, - 188, - 208, - 178, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 185, - 208, - 189, - 208, - 176, - 209, - 135, - 208, - 176, - 208, - 187, - 208, - 176, - 209, - 129, - 208, - 191, - 208, - 184, - 209, - 129, - 208, - 190, - 208, - 186, - 209, - 129, - 208, - 187, - 209, - 131, - 208, - 182, - 208, - 177, - 209, - 139, - 209, - 129, - 208, - 184, - 209, - 129, - 209, - 130, - 208, - 181, - 208, - 188, - 208, - 191, - 208, - 181, - 209, - 135, - 208, - 176, - 209, - 130, - 208, - 184, - 208, - 189, - 208, - 190, - 208, - 178, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 191, - 208, - 190, - 208, - 188, - 208, - 190, - 209, - 137, - 208, - 184, - 209, - 129, - 208, - 176, - 208, - 185, - 209, - 130, - 208, - 190, - 208, - 178, - 208, - 191, - 208, - 190, - 209, - 135, - 208, - 181, - 208, - 188, - 209, - 131, - 208, - 191, - 208, - 190, - 208, - 188, - 208, - 190, - 209, - 137, - 209, - 140, - 208, - 180, - 208, - 190, - 208, - 187, - 208, - 182, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 129, - 209, - 139, - 208, - 187, - 208, - 186, - 208, - 184, - 208, - 177, - 209, - 139, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 190, - 208, - 180, - 208, - 176, - 208, - 189, - 208, - 189, - 209, - 139, - 208, - 181, - 208, - 188, - 208, - 189, - 208, - 190, - 208, - 179, - 208, - 184, - 208, - 181, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 181, - 208, - 186, - 209, - 130, - 208, - 161, - 208, - 181, - 208, - 185, - 209, - 135, - 208, - 176, - 209, - 129, - 208, - 188, - 208, - 190, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 184, - 209, - 130, - 208, - 176, - 208, - 186, - 208, - 190, - 208, - 179, - 208, - 190, - 208, - 190, - 208, - 189, - 208, - 187, - 208, - 176, - 208, - 185, - 208, - 189, - 208, - 179, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 180, - 208, - 181, - 208, - 178, - 208, - 181, - 209, - 128, - 209, - 129, - 208, - 184, - 209, - 143, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 176, - 208, - 189, - 208, - 181, - 209, - 132, - 208, - 184, - 208, - 187, - 209, - 140, - 208, - 188, - 209, - 139, - 209, - 131, - 209, - 128, - 208, - 190, - 208, - 178, - 208, - 189, - 209, - 143, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 189, - 209, - 139, - 209, - 133, - 208, - 184, - 209, - 129, - 208, - 186, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 189, - 208, - 181, - 208, - 180, - 208, - 181, - 208, - 187, - 209, - 142, - 209, - 143, - 208, - 189, - 208, - 178, - 208, - 176, - 209, - 128, - 209, - 143, - 208, - 188, - 208, - 181, - 208, - 189, - 209, - 140, - 209, - 136, - 208, - 181, - 208, - 188, - 208, - 189, - 208, - 190, - 208, - 179, - 208, - 184, - 209, - 133, - 208, - 180, - 208, - 176, - 208, - 189, - 208, - 189, - 208, - 190, - 208, - 185, - 208, - 183, - 208, - 189, - 208, - 176, - 209, - 135, - 208, - 184, - 209, - 130, - 208, - 189, - 208, - 181, - 208, - 187, - 209, - 140, - 208, - 183, - 209, - 143, - 209, - 132, - 208, - 190, - 209, - 128, - 209, - 131, - 208, - 188, - 208, - 176, - 208, - 162, - 208, - 181, - 208, - 191, - 208, - 181, - 209, - 128, - 209, - 140, - 208, - 188, - 208, - 181, - 209, - 129, - 209, - 143, - 209, - 134, - 208, - 176, - 208, - 183, - 208, - 176, - 209, - 137, - 208, - 184, - 209, - 130, - 209, - 139, - 208, - 155, - 209, - 131, - 209, - 135, - 209, - 136, - 208, - 184, - 208, - 181, - 224, - 164, - 168, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 130, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 133, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 133, - 224, - 164, - 168, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 135, - 224, - 164, - 161, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 184, - 224, - 165, - 128, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 185, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 191, - 224, - 164, - 130, - 224, - 164, - 185, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 164, - 133, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 172, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 164, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 135, - 224, - 164, - 159, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 164, - 159, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 175, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 129, - 224, - 164, - 184, - 224, - 164, - 172, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 183, - 224, - 164, - 190, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 165, - 130, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 152, - 224, - 164, - 130, - 224, - 164, - 159, - 224, - 165, - 135, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 133, - 224, - 164, - 167, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 133, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 174, - 224, - 165, - 129, - 224, - 164, - 157, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 163, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 165, - 128, - 224, - 164, - 175, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 159, - 224, - 164, - 178, - 224, - 164, - 182, - 224, - 164, - 172, - 224, - 165, - 141, - 224, - 164, - 166, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 164, - 168, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 165, - 136, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 165, - 128, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 170, - 224, - 165, - 130, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 165, - 128, - 224, - 164, - 137, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 165, - 128, - 224, - 164, - 172, - 224, - 165, - 136, - 224, - 164, - 160, - 224, - 164, - 149, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 149, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 183, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 181, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 149, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 164, - 164, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 165, - 128, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 165, - 130, - 224, - 164, - 166, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 156, - 224, - 164, - 184, - 224, - 165, - 130, - 224, - 164, - 154, - 224, - 165, - 128, - 224, - 164, - 170, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 164, - 184, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 156, - 224, - 165, - 136, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 184, - 224, - 164, - 156, - 224, - 164, - 168, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 152, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 178, - 224, - 164, - 156, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 165, - 128, - 224, - 164, - 154, - 224, - 165, - 135, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 164, - 170, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 151, - 224, - 165, - 130, - 224, - 164, - 151, - 224, - 164, - 178, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 176, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 168, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 165, - 129, - 224, - 164, - 172, - 224, - 164, - 185, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 135, - 224, - 164, - 184, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 185, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 172, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 165, - 135, - 224, - 164, - 152, - 224, - 164, - 159, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 182, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 164, - 182, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 172, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 165, - 128, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 136, - 224, - 164, - 159, - 224, - 164, - 182, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 166, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 170, - 224, - 164, - 159, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 150, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 164, - 149, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 137, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 178, - 224, - 164, - 178, - 224, - 164, - 151, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 150, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 133, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 156, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 185, - 224, - 164, - 178, - 224, - 165, - 128, - 224, - 164, - 168, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 174, - 224, - 164, - 172, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 172, - 224, - 165, - 136, - 224, - 164, - 130, - 224, - 164, - 149, - 224, - 164, - 149, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 130, - 224, - 164, - 149, - 224, - 164, - 185, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 171, - 224, - 165, - 128, - 224, - 164, - 156, - 224, - 164, - 172, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 164, - 181, - 224, - 164, - 185, - 224, - 165, - 128, - 224, - 164, - 130, - 224, - 164, - 176, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 164, - 188, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 165, - 128, - 224, - 164, - 134, - 224, - 164, - 176, - 224, - 165, - 139, - 224, - 164, - 170, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 181, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 172, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 172, - 224, - 164, - 170, - 224, - 165, - 130, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 172, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 165, - 140, - 224, - 164, - 166, - 224, - 164, - 190, - 224, - 164, - 182, - 224, - 165, - 135, - 224, - 164, - 175, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 133, - 224, - 164, - 149, - 224, - 164, - 184, - 224, - 164, - 176, - 224, - 164, - 172, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 143, - 224, - 164, - 181, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 178, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 149, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 183, - 224, - 164, - 175, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 130, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 165, - 130, - 224, - 164, - 185, - 224, - 164, - 165, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 190, - 216, - 170, - 216, - 179, - 216, - 170, - 216, - 183, - 217, - 138, - 216, - 185, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 169, - 216, - 168, - 217, - 136, - 216, - 167, - 216, - 179, - 216, - 183, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 181, - 217, - 129, - 216, - 173, - 216, - 169, - 217, - 133, - 217, - 136, - 216, - 167, - 216, - 182, - 217, - 138, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 174, - 216, - 167, - 216, - 181, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 178, - 217, - 138, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 217, - 133, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 131, - 216, - 167, - 216, - 170, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 175, - 217, - 136, - 216, - 175, - 216, - 168, - 216, - 177, - 217, - 134, - 216, - 167, - 217, - 133, - 216, - 172, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 136, - 217, - 132, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 136, - 217, - 130, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 177, - 216, - 168, - 217, - 138, - 216, - 167, - 217, - 132, - 216, - 179, - 216, - 177, - 217, - 138, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 172, - 217, - 136, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 176, - 217, - 135, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 173, - 217, - 138, - 216, - 167, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 173, - 217, - 130, - 217, - 136, - 217, - 130, - 216, - 167, - 217, - 132, - 217, - 131, - 216, - 177, - 217, - 138, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 177, - 216, - 167, - 217, - 130, - 217, - 133, - 216, - 173, - 217, - 129, - 217, - 136, - 216, - 184, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 171, - 216, - 167, - 217, - 134, - 217, - 138, - 217, - 133, - 216, - 180, - 216, - 167, - 217, - 135, - 216, - 175, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 177, - 216, - 163, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 130, - 216, - 177, - 216, - 162, - 217, - 134, - 216, - 167, - 217, - 132, - 216, - 180, - 216, - 168, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 173, - 217, - 136, - 216, - 167, - 216, - 177, - 216, - 167, - 217, - 132, - 216, - 172, - 216, - 175, - 217, - 138, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 179, - 216, - 177, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 185, - 217, - 132, - 217, - 136, - 217, - 133, - 217, - 133, - 216, - 172, - 217, - 133, - 217, - 136, - 216, - 185, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 173, - 217, - 133, - 217, - 134, - 216, - 167, - 217, - 132, - 217, - 134, - 217, - 130, - 216, - 167, - 216, - 183, - 217, - 129, - 217, - 132, - 216, - 179, - 216, - 183, - 217, - 138, - 217, - 134, - 216, - 167, - 217, - 132, - 217, - 131, - 217, - 136, - 217, - 138, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 134, - 217, - 138, - 216, - 167, - 216, - 168, - 216, - 177, - 217, - 131, - 216, - 167, - 216, - 170, - 217, - 135, - 216, - 167, - 217, - 132, - 216, - 177, - 217, - 138, - 216, - 167, - 216, - 182, - 216, - 170, - 216, - 173, - 217, - 138, - 216, - 167, - 216, - 170, - 217, - 138, - 216, - 168, - 216, - 170, - 217, - 136, - 217, - 130, - 217, - 138, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 163, - 217, - 136, - 217, - 132, - 217, - 137, - 216, - 167, - 217, - 132, - 216, - 168, - 216, - 177, - 217, - 138, - 216, - 175, - 216, - 167, - 217, - 132, - 217, - 131, - 217, - 132, - 216, - 167, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 167, - 216, - 168, - 216, - 183, - 216, - 167, - 217, - 132, - 216, - 180, - 216, - 174, - 216, - 181, - 217, - 138, - 216, - 179, - 217, - 138, - 216, - 167, - 216, - 177, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 171, - 216, - 167, - 217, - 132, - 216, - 171, - 216, - 167, - 217, - 132, - 216, - 181, - 217, - 132, - 216, - 167, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 173, - 216, - 175, - 217, - 138, - 216, - 171, - 216, - 167, - 217, - 132, - 216, - 178, - 217, - 136, - 216, - 167, - 216, - 177, - 216, - 167, - 217, - 132, - 216, - 174, - 217, - 132, - 217, - 138, - 216, - 172, - 216, - 167, - 217, - 132, - 216, - 172, - 217, - 133, - 217, - 138, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 217, - 133, - 217, - 135, - 216, - 167, - 217, - 132, - 216, - 172, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 179, - 216, - 167, - 216, - 185, - 216, - 169, - 217, - 133, - 216, - 180, - 216, - 167, - 217, - 135, - 216, - 175, - 217, - 135, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 166, - 217, - 138, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 175, - 216, - 174, - 217, - 136, - 217, - 132, - 216, - 167, - 217, - 132, - 217, - 129, - 217, - 134, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 131, - 216, - 170, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 136, - 216, - 177, - 217, - 138, - 216, - 167, - 217, - 132, - 216, - 175, - 216, - 177, - 217, - 136, - 216, - 179, - 216, - 167, - 216, - 179, - 216, - 170, - 216, - 186, - 216, - 177, - 217, - 130, - 216, - 170, - 216, - 181, - 216, - 167, - 217, - 133, - 217, - 138, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 168, - 217, - 134, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 184, - 217, - 138, - 217, - 133, - 101, - 110, - 116, - 101, - 114, - 116, - 97, - 105, - 110, - 109, - 101, - 110, - 116, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 105, - 110, - 103, - 32, - 61, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 46, - 106, - 112, - 103, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 99, - 111, - 110, - 102, - 105, - 103, - 117, - 114, - 97, - 116, - 105, - 111, - 110, - 46, - 112, - 110, - 103, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 60, - 98, - 111, - 100, - 121, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 77, - 97, - 116, - 104, - 46, - 114, - 97, - 110, - 100, - 111, - 109, - 40, - 41, - 99, - 111, - 110, - 116, - 101, - 109, - 112, - 111, - 114, - 97, - 114, - 121, - 32, - 85, - 110, - 105, - 116, - 101, - 100, - 32, - 83, - 116, - 97, - 116, - 101, - 115, - 99, - 105, - 114, - 99, - 117, - 109, - 115, - 116, - 97, - 110, - 99, - 101, - 115, - 46, - 97, - 112, - 112, - 101, - 110, - 100, - 67, - 104, - 105, - 108, - 100, - 40, - 111, - 114, - 103, - 97, - 110, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 115, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 34, - 62, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 100, - 105, - 115, - 116, - 105, - 110, - 103, - 117, - 105, - 115, - 104, - 101, - 100, - 116, - 104, - 111, - 117, - 115, - 97, - 110, - 100, - 115, - 32, - 111, - 102, - 32, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 99, - 108, - 101, - 97, - 114, - 34, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 105, - 110, - 118, - 101, - 115, - 116, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 46, - 105, - 99, - 111, - 34, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 114, - 105, - 103, - 104, - 116, - 58, - 98, - 97, - 115, - 101, - 100, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 77, - 97, - 115, - 115, - 97, - 99, - 104, - 117, - 115, - 101, - 116, - 116, - 115, - 116, - 97, - 98, - 108, - 101, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 108, - 115, - 111, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 112, - 114, - 111, - 110, - 117, - 110, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 35, - 102, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 45, - 108, - 101, - 102, - 116, - 58, - 70, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 32, - 109, - 105, - 115, - 99, - 101, - 108, - 108, - 97, - 110, - 101, - 111, - 117, - 115, - 38, - 108, - 116, - 59, - 47, - 109, - 97, - 116, - 104, - 38, - 103, - 116, - 59, - 112, - 115, - 121, - 99, - 104, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 105, - 110, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 101, - 97, - 114, - 99, - 104, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 102, - 111, - 114, - 109, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 97, - 115, - 32, - 111, - 112, - 112, - 111, - 115, - 101, - 100, - 32, - 116, - 111, - 83, - 117, - 112, - 114, - 101, - 109, - 101, - 32, - 67, - 111, - 117, - 114, - 116, - 111, - 99, - 99, - 97, - 115, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 32, - 65, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 44, - 78, - 111, - 114, - 116, - 104, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 112, - 120, - 59, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 111, - 112, - 112, - 111, - 114, - 116, - 117, - 110, - 105, - 116, - 105, - 101, - 115, - 69, - 110, - 116, - 101, - 114, - 116, - 97, - 105, - 110, - 109, - 101, - 110, - 116, - 46, - 116, - 111, - 76, - 111, - 119, - 101, - 114, - 67, - 97, - 115, - 101, - 40, - 109, - 97, - 110, - 117, - 102, - 97, - 99, - 116, - 117, - 114, - 105, - 110, - 103, - 112, - 114, - 111, - 102, - 101, - 115, - 115, - 105, - 111, - 110, - 97, - 108, - 32, - 99, - 111, - 109, - 98, - 105, - 110, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 70, - 111, - 114, - 32, - 105, - 110, - 115, - 116, - 97, - 110, - 99, - 101, - 44, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 105, - 110, - 103, - 32, - 111, - 102, - 34, - 32, - 109, - 97, - 120, - 108, - 101, - 110, - 103, - 116, - 104, - 61, - 34, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 102, - 97, - 108, - 115, - 101, - 59, - 99, - 111, - 110, - 115, - 99, - 105, - 111, - 117, - 115, - 110, - 101, - 115, - 115, - 77, - 101, - 100, - 105, - 116, - 101, - 114, - 114, - 97, - 110, - 101, - 97, - 110, - 101, - 120, - 116, - 114, - 97, - 111, - 114, - 100, - 105, - 110, - 97, - 114, - 121, - 97, - 115, - 115, - 97, - 115, - 115, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 115, - 117, - 98, - 115, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 32, - 98, - 117, - 116, - 116, - 111, - 110, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 104, - 101, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 32, - 99, - 111, - 109, - 112, - 114, - 101, - 104, - 101, - 110, - 115, - 105, - 118, - 101, - 114, - 101, - 102, - 101, - 114, - 115, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 60, - 47, - 117, - 108, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 105, - 99, - 97, - 108, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 104, - 114, - 101, - 102, - 119, - 97, - 115, - 32, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 83, - 97, - 110, - 32, - 70, - 114, - 97, - 110, - 99, - 105, - 115, - 99, - 111, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 109, - 97, - 105, - 110, - 115, - 111, - 112, - 104, - 105, - 115, - 116, - 105, - 99, - 97, - 116, - 101, - 100, - 109, - 97, - 116, - 104, - 101, - 109, - 97, - 116, - 105, - 99, - 97, - 108, - 32, - 47, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 60, - 98, - 111, - 100, - 121, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 115, - 32, - 116, - 104, - 97, - 116, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 97, - 116, - 105, - 111, - 110, - 99, - 111, - 110, - 99, - 101, - 110, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 105, - 112, - 115, - 109, - 97, - 121, - 32, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 40, - 102, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 84, - 104, - 105, - 115, - 32, - 97, - 114, - 116, - 105, - 99, - 108, - 101, - 32, - 105, - 110, - 32, - 115, - 111, - 109, - 101, - 32, - 99, - 97, - 115, - 101, - 115, - 112, - 97, - 114, - 116, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 100, - 101, - 102, - 105, - 110, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 71, - 114, - 101, - 97, - 116, - 32, - 66, - 114, - 105, - 116, - 97, - 105, - 110, - 32, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 61, - 101, - 113, - 117, - 105, - 118, - 97, - 108, - 101, - 110, - 116, - 32, - 116, - 111, - 112, - 108, - 97, - 99, - 101, - 104, - 111, - 108, - 100, - 101, - 114, - 61, - 34, - 59, - 32, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 32, - 106, - 117, - 115, - 116, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 115, - 117, - 102, - 102, - 101, - 114, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 101, - 100, - 32, - 116, - 111, - 32, - 108, - 101, - 97, - 100, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 32, - 123, - 97, - 114, - 101, - 32, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 10, - 9, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 32, - 115, - 114, - 99, - 61, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 101, - 100, - 32, - 105, - 110, - 99, - 111, - 110, - 118, - 101, - 110, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 34, - 32, - 47, - 62, - 60, - 47, - 97, - 114, - 101, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 108, - 121, - 104, - 97, - 115, - 32, - 97, - 108, - 115, - 111, - 32, - 98, - 101, - 101, - 110, - 109, - 111, - 115, - 116, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 32, - 99, - 111, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 105, - 110, - 103, - 99, - 114, - 101, - 100, - 105, - 116, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 111, - 114, - 100, - 101, - 114, - 58, - 60, - 47, - 97, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 46, - 103, - 105, - 102, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 60, - 105, - 102, - 114, - 97, - 109, - 101, - 32, - 115, - 114, - 99, - 61, - 34, - 116, - 97, - 98, - 108, - 101, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 110, - 108, - 105, - 110, - 101, - 45, - 98, - 108, - 111, - 99, - 107, - 59, - 97, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 111, - 103, - 101, - 116, - 104, - 101, - 114, - 32, - 119, - 105, - 116, - 104, - 97, - 112, - 112, - 114, - 111, - 120, - 105, - 109, - 97, - 116, - 101, - 108, - 121, - 112, - 97, - 114, - 108, - 105, - 97, - 109, - 101, - 110, - 116, - 97, - 114, - 121, - 109, - 111, - 114, - 101, - 32, - 97, - 110, - 100, - 32, - 109, - 111, - 114, - 101, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 110, - 111, - 110, - 101, - 59, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 112, - 114, - 101, - 100, - 111, - 109, - 105, - 110, - 97, - 110, - 116, - 108, - 121, - 38, - 110, - 98, - 115, - 112, - 59, - 124, - 38, - 110, - 98, - 115, - 112, - 59, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 32, - 99, - 101, - 108, - 108, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 111, - 114, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 99, - 111, - 110, - 116, - 114, - 111, - 118, - 101, - 114, - 115, - 105, - 97, - 108, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 121, - 61, - 34, - 111, - 103, - 58, - 47, - 120, - 45, - 115, - 104, - 111, - 99, - 107, - 119, - 97, - 118, - 101, - 45, - 100, - 101, - 109, - 111, - 110, - 115, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 117, - 114, - 114, - 111, - 117, - 110, - 100, - 101, - 100, - 32, - 98, - 121, - 78, - 101, - 118, - 101, - 114, - 116, - 104, - 101, - 108, - 101, - 115, - 115, - 44, - 119, - 97, - 115, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 97, - 98, - 108, - 101, - 32, - 65, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 108, - 108, - 97, - 98, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 111, - 117, - 108, - 100, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 112, - 114, - 111, - 112, - 111, - 114, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 60, - 115, - 112, - 97, - 110, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 32, - 115, - 104, - 111, - 114, - 116, - 108, - 121, - 32, - 97, - 102, - 116, - 101, - 114, - 102, - 111, - 114, - 32, - 105, - 110, - 115, - 116, - 97, - 110, - 99, - 101, - 44, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 100, - 32, - 97, - 115, - 32, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 98, - 111, - 100, - 121, - 32, - 115, - 116, - 97, - 114, - 116, - 105, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 105, - 110, - 103, - 108, - 121, - 32, - 116, - 104, - 101, - 32, - 102, - 97, - 99, - 116, - 32, - 116, - 104, - 97, - 116, - 100, - 105, - 115, - 99, - 117, - 115, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 109, - 105, - 100, - 100, - 108, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 110, - 32, - 105, - 110, - 100, - 105, - 118, - 105, - 100, - 117, - 97, - 108, - 100, - 105, - 102, - 102, - 105, - 99, - 117, - 108, - 116, - 32, - 116, - 111, - 32, - 112, - 111, - 105, - 110, - 116, - 32, - 111, - 102, - 32, - 118, - 105, - 101, - 119, - 104, - 111, - 109, - 111, - 115, - 101, - 120, - 117, - 97, - 108, - 105, - 116, - 121, - 97, - 99, - 99, - 101, - 112, - 116, - 97, - 110, - 99, - 101, - 32, - 111, - 102, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 109, - 97, - 110, - 117, - 102, - 97, - 99, - 116, - 117, - 114, - 101, - 114, - 115, - 111, - 114, - 105, - 103, - 105, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 109, - 111, - 110, - 108, - 121, - 32, - 117, - 115, - 101, - 100, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 99, - 101, - 32, - 111, - 102, - 100, - 101, - 110, - 111, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 115, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 32, - 35, - 108, - 101, - 110, - 103, - 116, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 32, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 116, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 62, - 114, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 108, - 101, - 115, - 32, - 111, - 102, - 105, - 115, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 119, - 97, - 115, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 73, - 110, - 100, - 111, - 45, - 69, - 117, - 114, - 111, - 112, - 101, - 97, - 110, - 118, - 117, - 108, - 110, - 101, - 114, - 97, - 98, - 108, - 101, - 32, - 116, - 111, - 112, - 114, - 111, - 112, - 111, - 110, - 101, - 110, - 116, - 115, - 32, - 111, - 102, - 97, - 114, - 101, - 32, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 99, - 108, - 111, - 115, - 101, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 78, - 101, - 119, - 32, - 89, - 111, - 114, - 107, - 32, - 67, - 105, - 116, - 121, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 115, - 101, - 97, - 114, - 99, - 104, - 97, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 100, - 32, - 116, - 111, - 99, - 111, - 117, - 114, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 109, - 97, - 116, - 104, - 101, - 109, - 97, - 116, - 105, - 99, - 105, - 97, - 110, - 98, - 121, - 32, - 116, - 104, - 101, - 32, - 101, - 110, - 100, - 32, - 111, - 102, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 101, - 110, - 100, - 32, - 111, - 102, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 116, - 101, - 99, - 104, - 110, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 46, - 114, - 101, - 109, - 111, - 118, - 101, - 67, - 108, - 97, - 115, - 115, - 40, - 98, - 114, - 97, - 110, - 99, - 104, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 118, - 105, - 100, - 101, - 110, - 99, - 101, - 32, - 116, - 104, - 97, - 116, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 13, - 10, - 73, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 32, - 111, - 102, - 32, - 105, - 110, - 116, - 111, - 32, - 97, - 32, - 115, - 105, - 110, - 103, - 108, - 101, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 46, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 114, - 101, - 102, - 111, - 114, - 101, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 105, - 101, - 115, - 32, - 111, - 102, - 105, - 115, - 32, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 32, - 105, - 110, - 115, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 119, - 104, - 105, - 99, - 104, - 84, - 104, - 101, - 114, - 101, - 32, - 105, - 115, - 32, - 97, - 108, - 115, - 111, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 100, - 32, - 116, - 111, - 32, - 97, - 112, - 112, - 101, - 97, - 114, - 97, - 110, - 99, - 101, - 32, - 111, - 102, - 32, - 38, - 97, - 109, - 112, - 59, - 110, - 100, - 97, - 115, - 104, - 59, - 32, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 115, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 97, - 117, - 116, - 104, - 111, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 108, - 121, - 101, - 113, - 117, - 105, - 112, - 112, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 100, - 111, - 101, - 115, - 32, - 110, - 111, - 116, - 32, - 104, - 97, - 118, - 101, - 60, - 47, - 97, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 99, - 111, - 110, - 102, - 117, - 115, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 60, - 108, - 105, - 110, - 107, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 97, - 103, - 101, - 32, - 111, - 102, - 97, - 112, - 112, - 101, - 97, - 114, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 84, - 104, - 101, - 115, - 101, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 114, - 101, - 103, - 97, - 114, - 100, - 108, - 101, - 115, - 115, - 32, - 111, - 102, - 99, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 32, - 117, - 115, - 101, - 100, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 38, - 113, - 117, - 111, - 116, - 59, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 116, - 105, - 109, - 101, - 115, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 32, - 116, - 104, - 101, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 116, - 104, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 111, - 32, - 98, - 101, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 112, - 111, - 115, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 105, - 101, - 115, - 112, - 101, - 114, - 99, - 101, - 110, - 116, - 97, - 103, - 101, - 32, - 111, - 102, - 97, - 99, - 99, - 101, - 115, - 115, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 97, - 110, - 32, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 32, - 116, - 111, - 112, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 106, - 113, - 117, - 101, - 114, - 121, - 47, - 106, - 113, - 117, - 101, - 114, - 121, - 116, - 119, - 111, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 98, - 101, - 108, - 111, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 109, - 101, - 110, - 116, - 114, - 101, - 112, - 108, - 97, - 99, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 34, - 32, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 32, - 116, - 104, - 101, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 32, - 102, - 111, - 114, - 65, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 119, - 105, - 100, - 101, - 32, - 114, - 97, - 110, - 103, - 101, - 32, - 111, - 102, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 111, - 114, - 101, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 108, - 121, - 111, - 114, - 103, - 97, - 110, - 105, - 115, - 97, - 116, - 105, - 111, - 110, - 115, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 97, - 108, - 105, - 116, - 121, - 119, - 97, - 115, - 32, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 100, - 32, - 38, - 97, - 109, - 112, - 59, - 109, - 100, - 97, - 115, - 104, - 59, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 105, - 111, - 110, - 116, - 104, - 101, - 32, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 97, - 110, - 32, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 112, - 112, - 101, - 97, - 114, - 115, - 32, - 116, - 111, - 32, - 98, - 101, - 102, - 97, - 99, - 116, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 97, - 110, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 32, - 111, - 102, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 116, - 108, - 121, - 111, - 110, - 109, - 111, - 117, - 115, - 101, - 111, - 118, - 101, - 114, - 61, - 34, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 116, - 104, - 101, - 121, - 32, - 97, - 115, - 121, - 110, - 99, - 32, - 61, - 32, - 116, - 114, - 117, - 101, - 59, - 112, - 114, - 111, - 98, - 108, - 101, - 109, - 115, - 32, - 119, - 105, - 116, - 104, - 115, - 101, - 101, - 109, - 115, - 32, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 116, - 104, - 101, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 32, - 111, - 102, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 102, - 97, - 109, - 105, - 108, - 105, - 97, - 114, - 32, - 119, - 105, - 116, - 104, - 112, - 111, - 115, - 115, - 101, - 115, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 40, - 41, - 32, - 123, - 116, - 111, - 111, - 107, - 32, - 112, - 108, - 97, - 99, - 101, - 32, - 105, - 110, - 97, - 110, - 100, - 32, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 116, - 105, - 97, - 108, - 108, - 121, - 60, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 105, - 115, - 32, - 111, - 102, - 116, - 101, - 110, - 32, - 117, - 115, - 101, - 100, - 105, - 110, - 32, - 97, - 110, - 32, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 103, - 114, - 101, - 97, - 116, - 32, - 100, - 101, - 97, - 108, - 32, - 111, - 102, - 69, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 97, - 108, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 117, - 108, - 108, - 121, - 32, - 118, - 105, - 114, - 116, - 117, - 97, - 108, - 108, - 121, - 32, - 97, - 108, - 108, - 50, - 48, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 44, - 112, - 114, - 111, - 102, - 101, - 115, - 115, - 105, - 111, - 110, - 97, - 108, - 115, - 110, - 101, - 99, - 101, - 115, - 115, - 97, - 114, - 121, - 32, - 116, - 111, - 32, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 100, - 32, - 98, - 121, - 99, - 111, - 109, - 112, - 97, - 116, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 105, - 116, - 32, - 105, - 115, - 68, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 32, - 111, - 102, - 109, - 111, - 100, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 84, - 104, - 101, - 32, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 109, - 97, - 121, - 32, - 114, - 101, - 102, - 101, - 114, - 32, - 116, - 111, - 58, - 67, - 111, - 110, - 115, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 44, - 73, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 115, - 111, - 109, - 101, - 116, - 104, - 97, - 116, - 32, - 119, - 111, - 117, - 108, - 100, - 32, - 98, - 101, - 119, - 111, - 114, - 108, - 100, - 39, - 115, - 32, - 102, - 105, - 114, - 115, - 116, - 99, - 108, - 97, - 115, - 115, - 105, - 102, - 105, - 101, - 100, - 32, - 97, - 115, - 98, - 111, - 116, - 116, - 111, - 109, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 40, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 108, - 121, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 108, - 101, - 102, - 116, - 34, - 32, - 109, - 111, - 115, - 116, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 108, - 121, - 98, - 97, - 115, - 105, - 115, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 102, - 111, - 117, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 99, - 111, - 110, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 115, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 99, - 101, - 110, - 116, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 111, - 32, - 114, - 101, - 100, - 117, - 99, - 101, - 32, - 116, - 104, - 101, - 106, - 117, - 114, - 105, - 115, - 100, - 105, - 99, - 116, - 105, - 111, - 110, - 115, - 97, - 112, - 112, - 114, - 111, - 120, - 105, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 110, - 109, - 111, - 117, - 115, - 101, - 111, - 117, - 116, - 61, - 34, - 78, - 101, - 119, - 32, - 84, - 101, - 115, - 116, - 97, - 109, - 101, - 110, - 116, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 85, - 110, - 105, - 116, - 101, - 100, - 102, - 105, - 108, - 109, - 32, - 100, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 45, - 115, - 116, - 114, - 105, - 99, - 116, - 46, - 100, - 116, - 100, - 34, - 62, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 32, - 117, - 115, - 101, - 100, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 105, - 115, - 99, - 104, - 97, - 110, - 103, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 111, - 116, - 104, - 101, - 114, - 98, - 117, - 116, - 32, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 117, - 110, - 112, - 114, - 101, - 99, - 101, - 100, - 101, - 110, - 116, - 101, - 100, - 105, - 115, - 32, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 32, - 116, - 111, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 32, - 105, - 110, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 32, - 98, - 111, - 108, - 100, - 59, - 105, - 115, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 112, - 117, - 116, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 101, - 32, - 116, - 104, - 97, - 116, - 114, - 101, - 115, - 116, - 114, - 105, - 99, - 116, - 101, - 100, - 32, - 116, - 111, - 9, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 97, - 114, - 101, - 32, - 116, - 121, - 112, - 105, - 99, - 97, - 108, - 108, - 121, - 99, - 111, - 110, - 102, - 108, - 105, - 99, - 116, - 32, - 119, - 105, - 116, - 104, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 101, - 32, - 65, - 110, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 32, - 111, - 102, - 99, - 111, - 109, - 112, - 97, - 114, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 113, - 117, - 97, - 110, - 116, - 105, - 116, - 105, - 101, - 115, - 32, - 111, - 102, - 114, - 97, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 32, - 97, - 99, - 111, - 110, - 115, - 116, - 101, - 108, - 108, - 97, - 116, - 105, - 111, - 110, - 110, - 101, - 99, - 101, - 115, - 115, - 97, - 114, - 121, - 32, - 102, - 111, - 114, - 114, - 101, - 112, - 111, - 114, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 32, - 97, - 110, - 100, - 38, - 110, - 98, - 115, - 112, - 59, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 32, - 116, - 111, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 32, - 121, - 101, - 97, - 114, - 71, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 103, - 101, - 110, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 104, - 97, - 118, - 101, - 32, - 110, - 111, - 116, - 32, - 98, - 101, - 101, - 110, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 121, - 101, - 97, - 114, - 115, - 99, - 111, - 109, - 109, - 105, - 116, - 109, - 101, - 110, - 116, - 32, - 116, - 111, - 9, - 9, - 60, - 117, - 108, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 118, - 105, - 115, - 117, - 97, - 108, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 49, - 57, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 44, - 112, - 114, - 97, - 99, - 116, - 105, - 116, - 105, - 111, - 110, - 101, - 114, - 115, - 116, - 104, - 97, - 116, - 32, - 104, - 101, - 32, - 119, - 111, - 117, - 108, - 100, - 97, - 110, - 100, - 32, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 101, - 100, - 111, - 99, - 99, - 117, - 112, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 115, - 32, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 32, - 97, - 115, - 99, - 101, - 110, - 116, - 114, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 97, - 109, - 111, - 117, - 110, - 116, - 32, - 111, - 102, - 62, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 101, - 113, - 117, - 105, - 118, - 97, - 108, - 101, - 110, - 116, - 32, - 111, - 102, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 105, - 97, - 116, - 101, - 98, - 114, - 111, - 117, - 103, - 104, - 116, - 32, - 97, - 98, - 111, - 117, - 116, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 108, - 101, - 102, - 116, - 58, - 32, - 97, - 117, - 116, - 111, - 109, - 97, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 116, - 104, - 111, - 117, - 103, - 104, - 116, - 32, - 111, - 102, - 32, - 97, - 115, - 83, - 111, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 101, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 110, - 112, - 117, - 116, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 105, - 115, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 100, - 117, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 97, - 110, - 100, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 100, - 32, - 98, - 121, - 114, - 101, - 112, - 117, - 116, - 97, - 116, - 105, - 111, - 110, - 32, - 97, - 115, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 97, - 99, - 99, - 111, - 109, - 109, - 111, - 100, - 97, - 116, - 105, - 111, - 110, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 108, - 97, - 114, - 103, - 101, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 73, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 101, - 32, - 102, - 111, - 114, - 116, - 104, - 101, - 32, - 115, - 111, - 45, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 97, - 103, - 97, - 105, - 110, - 115, - 116, - 32, - 116, - 104, - 101, - 32, - 73, - 110, - 32, - 116, - 104, - 105, - 115, - 32, - 99, - 97, - 115, - 101, - 44, - 119, - 97, - 115, - 32, - 97, - 112, - 112, - 111, - 105, - 110, - 116, - 101, - 100, - 99, - 108, - 97, - 105, - 109, - 101, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 105, - 115, - 68, - 101, - 112, - 97, - 114, - 116, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 114, - 101, - 109, - 97, - 105, - 110, - 105, - 110, - 103, - 101, - 102, - 102, - 101, - 99, - 116, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 108, - 121, - 32, - 100, - 101, - 97, - 108, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 10, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 97, - 108, - 109, - 111, - 115, - 116, - 32, - 97, - 108, - 119, - 97, - 121, - 115, - 97, - 114, - 101, - 32, - 99, - 117, - 114, - 114, - 101, - 110, - 116, - 108, - 121, - 101, - 120, - 112, - 114, - 101, - 115, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 121, - 32, - 111, - 102, - 102, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 99, - 105, - 118, - 105, - 108, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 115, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 105, - 115, - 108, - 97, - 110, - 100, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 73, - 110, - 100, - 101, - 120, - 99, - 97, - 110, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 32, - 105, - 110, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 34, - 32, - 47, - 62, - 116, - 104, - 101, - 32, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 32, - 47, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 77, - 97, - 110, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 101, - 99, - 97, - 117, - 115, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 85, - 110, - 105, - 116, - 101, - 100, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 116, - 114, - 97, - 99, - 101, - 100, - 105, - 115, - 32, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 32, - 116, - 111, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 105, - 115, - 32, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 108, - 105, - 118, - 105, - 110, - 103, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 111, - 114, - 101, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 70, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 82, - 101, - 118, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 97, - 114, - 121, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 32, - 105, - 110, - 105, - 115, - 32, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 100, - 116, - 104, - 101, - 32, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 32, - 105, - 110, - 115, - 117, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 32, - 116, - 111, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 34, - 62, - 115, - 104, - 111, - 114, - 116, - 32, - 115, - 116, - 111, - 114, - 105, - 101, - 115, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 97, - 115, - 32, - 116, - 111, - 32, - 119, - 104, - 101, - 116, - 104, - 101, - 114, - 107, - 110, - 111, - 119, - 110, - 32, - 102, - 111, - 114, - 32, - 105, - 116, - 115, - 119, - 97, - 115, - 32, - 105, - 110, - 105, - 116, - 105, - 97, - 108, - 108, - 121, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 98, - 108, - 111, - 99, - 107, - 105, - 115, - 32, - 97, - 110, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 116, - 104, - 101, - 32, - 112, - 114, - 105, - 110, - 99, - 105, - 112, - 97, - 108, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 115, - 32, - 111, - 102, - 32, - 97, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 122, - 101, - 100, - 32, - 97, - 115, - 47, - 98, - 111, - 100, - 121, - 62, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 97, - 32, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 116, - 105, - 97, - 108, - 114, - 101, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 101, - 100, - 104, - 101, - 97, - 100, - 32, - 111, - 102, - 32, - 115, - 116, - 97, - 116, - 101, - 114, - 101, - 115, - 105, - 115, - 116, - 97, - 110, - 99, - 101, - 32, - 116, - 111, - 117, - 110, - 100, - 101, - 114, - 103, - 114, - 97, - 100, - 117, - 97, - 116, - 101, - 84, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 32, - 116, - 119, - 111, - 103, - 114, - 97, - 118, - 105, - 116, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 114, - 101, - 32, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 100, - 105, - 110, - 116, - 101, - 110, - 116, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 115, - 101, - 114, - 118, - 101, - 100, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 104, - 101, - 97, - 100, - 101, - 114, - 111, - 112, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 102, - 117, - 110, - 100, - 97, - 109, - 101, - 110, - 116, - 97, - 108, - 108, - 121, - 100, - 111, - 109, - 105, - 110, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 97, - 108, - 108, - 105, - 97, - 110, - 99, - 101, - 32, - 119, - 105, - 116, - 104, - 119, - 97, - 115, - 32, - 102, - 111, - 114, - 99, - 101, - 100, - 32, - 116, - 111, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 105, - 118, - 101, - 108, - 121, - 44, - 97, - 110, - 100, - 32, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 105, - 110, - 32, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 111, - 102, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 50, - 48, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 46, - 97, - 110, - 100, - 32, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 108, - 111, - 97, - 100, - 67, - 104, - 97, - 114, - 116, - 98, - 101, - 97, - 116, - 116, - 111, - 32, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 109, - 101, - 109, - 98, - 101, - 114, - 32, - 115, - 116, - 97, - 116, - 101, - 115, - 101, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 97, - 108, - 102, - 105, - 114, - 115, - 116, - 32, - 104, - 97, - 108, - 102, - 32, - 111, - 102, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 32, - 97, - 110, - 100, - 97, - 114, - 99, - 104, - 105, - 116, - 101, - 99, - 116, - 117, - 114, - 97, - 108, - 98, - 101, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 105, - 122, - 101, - 100, - 99, - 108, - 101, - 97, - 114, - 73, - 110, - 116, - 101, - 114, - 118, - 97, - 108, - 97, - 117, - 116, - 104, - 111, - 114, - 105, - 116, - 97, - 116, - 105, - 118, - 101, - 70, - 101, - 100, - 101, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 119, - 97, - 115, - 32, - 115, - 117, - 99, - 99, - 101, - 101, - 100, - 101, - 100, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 97, - 32, - 99, - 111, - 110, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 116, - 104, - 101, - 32, - 80, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 97, - 108, - 115, - 111, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 100, - 102, - 114, - 101, - 101, - 32, - 115, - 111, - 102, - 116, - 119, - 97, - 114, - 101, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 32, - 116, - 104, - 101, - 119, - 97, - 115, - 32, - 100, - 101, - 115, - 116, - 114, - 111, - 121, - 101, - 100, - 97, - 119, - 97, - 121, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 121, - 102, - 111, - 108, - 108, - 111, - 119, - 101, - 100, - 32, - 98, - 121, - 32, - 97, - 109, - 111, - 114, - 101, - 32, - 112, - 111, - 119, - 101, - 114, - 102, - 117, - 108, - 114, - 101, - 115, - 117, - 108, - 116, - 101, - 100, - 32, - 105, - 110, - 32, - 97, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 111, - 102, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 109, - 97, - 110, - 121, - 116, - 104, - 101, - 32, - 112, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 115, - 111, - 109, - 101, - 105, - 115, - 32, - 116, - 104, - 111, - 117, - 103, - 104, - 116, - 32, - 116, - 111, - 117, - 110, - 116, - 105, - 108, - 32, - 116, - 104, - 101, - 32, - 101, - 110, - 100, - 119, - 97, - 115, - 32, - 97, - 110, - 110, - 111, - 117, - 110, - 99, - 101, - 100, - 97, - 114, - 101, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 97, - 108, - 115, - 111, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 115, - 62, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 116, - 104, - 101, - 32, - 99, - 101, - 110, - 116, - 101, - 114, - 32, - 111, - 102, - 32, - 68, - 79, - 32, - 78, - 79, - 84, - 32, - 65, - 76, - 84, - 69, - 82, - 117, - 115, - 101, - 100, - 32, - 116, - 111, - 32, - 114, - 101, - 102, - 101, - 114, - 116, - 104, - 101, - 109, - 101, - 115, - 47, - 63, - 115, - 111, - 114, - 116, - 61, - 116, - 104, - 97, - 116, - 32, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 116, - 104, - 101, - 32, - 98, - 97, - 115, - 105, - 115, - 32, - 102, - 111, - 114, - 104, - 97, - 115, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 115, - 117, - 109, - 109, - 101, - 114, - 99, - 111, - 109, - 112, - 97, - 114, - 97, - 116, - 105, - 118, - 101, - 108, - 121, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 101, - 100, - 32, - 116, - 104, - 101, - 115, - 117, - 99, - 104, - 32, - 97, - 115, - 32, - 116, - 104, - 111, - 115, - 101, - 116, - 104, - 101, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 105, - 110, - 103, - 105, - 115, - 32, - 105, - 109, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 118, - 97, - 114, - 105, - 111, - 117, - 115, - 32, - 111, - 116, - 104, - 101, - 114, - 83, - 111, - 117, - 116, - 104, - 32, - 65, - 102, - 114, - 105, - 99, - 97, - 110, - 104, - 97, - 118, - 101, - 32, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 110, - 101, - 115, - 115, - 105, - 110, - 32, - 119, - 104, - 105, - 99, - 104, - 32, - 99, - 97, - 115, - 101, - 59, - 32, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 32, - 97, - 110, - 100, - 59, - 32, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 114, - 101, - 103, - 97, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 101, - 100, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 97, - 108, - 115, - 111, - 32, - 107, - 110, - 111, - 119, - 110, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 98, - 97, - 104, - 97, - 115, - 97, - 32, - 77, - 101, - 108, - 97, - 121, - 117, - 110, - 111, - 114, - 115, - 107, - 32, - 98, - 111, - 107, - 109, - 195, - 165, - 108, - 110, - 111, - 114, - 115, - 107, - 32, - 110, - 121, - 110, - 111, - 114, - 115, - 107, - 115, - 108, - 111, - 118, - 101, - 110, - 197, - 161, - 196, - 141, - 105, - 110, - 97, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 99, - 105, - 111, - 110, - 97, - 108, - 99, - 97, - 108, - 105, - 102, - 105, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 99, - 111, - 109, - 117, - 110, - 105, - 99, - 97, - 99, - 105, - 195, - 179, - 110, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 99, - 105, - 195, - 179, - 110, - 34, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 100, - 105, - 115, - 97, - 109, - 98, - 105, - 103, - 117, - 97, - 116, - 105, - 111, - 110, - 68, - 111, - 109, - 97, - 105, - 110, - 78, - 97, - 109, - 101, - 39, - 44, - 32, - 39, - 97, - 100, - 109, - 105, - 110, - 105, - 115, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 105, - 109, - 117, - 108, - 116, - 97, - 110, - 101, - 111, - 117, - 115, - 108, - 121, - 116, - 114, - 97, - 110, - 115, - 112, - 111, - 114, - 116, - 97, - 116, - 105, - 111, - 110, - 73, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 98, - 111, - 116, - 116, - 111, - 109, - 58, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 10, - 60, - 47, - 62, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 105, - 109, - 112, - 108, - 101, - 109, - 101, - 110, - 116, - 97, - 116, - 105, - 111, - 110, - 105, - 110, - 102, - 114, - 97, - 115, - 116, - 114, - 117, - 99, - 116, - 117, - 114, - 101, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 116, - 105, - 111, - 110, - 98, - 111, - 114, - 100, - 101, - 114, - 45, - 98, - 111, - 116, - 116, - 111, - 109, - 58, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 98, - 111, - 100, - 121, - 62, - 61, - 104, - 116, - 116, - 112, - 37, - 51, - 65, - 37, - 50, - 70, - 37, - 50, - 70, - 60, - 102, - 111, - 114, - 109, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 112, - 111, - 115, - 116, - 34, - 32, - 47, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 46, - 105, - 99, - 111, - 34, - 32, - 125, - 41, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 46, - 115, - 101, - 116, - 65, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 40, - 65, - 100, - 109, - 105, - 110, - 105, - 115, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 61, - 32, - 110, - 101, - 119, - 32, - 65, - 114, - 114, - 97, - 121, - 40, - 41, - 59, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 13, - 10, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 98, - 108, - 111, - 99, - 107, - 59, - 85, - 110, - 102, - 111, - 114, - 116, - 117, - 110, - 97, - 116, - 101, - 108, - 121, - 44, - 34, - 62, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 47, - 100, - 105, - 118, - 62, - 47, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 46, - 105, - 99, - 111, - 34, - 62, - 61, - 39, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 39, - 32, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 44, - 32, - 102, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 97, - 110, - 32, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 118, - 101, - 97, - 115, - 32, - 97, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 32, - 111, - 102, - 112, - 116, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 116, - 121, - 112, - 101, - 61, - 34, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 10, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 32, - 123, - 114, - 101, - 99, - 111, - 109, - 109, - 101, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 102, - 111, - 114, - 109, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 47, - 116, - 114, - 97, - 110, - 115, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 46, - 115, - 116, - 121, - 108, - 101, - 46, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 32, - 65, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 97, - 108, - 111, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 98, - 111, - 100, - 121, - 46, - 97, - 112, - 112, - 114, - 111, - 120, - 105, - 109, - 97, - 116, - 101, - 108, - 121, - 32, - 67, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 112, - 111, - 115, - 116, - 34, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 109, - 101, - 97, - 110, - 105, - 110, - 103, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 45, - 45, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 80, - 114, - 105, - 109, - 101, - 32, - 77, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 105, - 115, - 116, - 105, - 99, - 60, - 47, - 97, - 62, - 32, - 60, - 97, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 116, - 104, - 101, - 32, - 104, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 32, - 111, - 110, - 109, - 111, - 117, - 115, - 101, - 111, - 118, - 101, - 114, - 61, - 34, - 116, - 104, - 101, - 32, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 115, - 58, - 47, - 47, - 119, - 97, - 115, - 32, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 108, - 121, - 119, - 97, - 115, - 32, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 99, - 108, - 97, - 115, - 115, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 116, - 105, - 118, - 101, - 97, - 114, - 101, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 10, - 10, - 100, - 101, - 112, - 101, - 110, - 100, - 115, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 111, - 102, - 32, - 105, - 110, - 32, - 99, - 111, - 110, - 116, - 114, - 97, - 115, - 116, - 32, - 116, - 111, - 32, - 112, - 108, - 97, - 99, - 101, - 104, - 111, - 108, - 100, - 101, - 114, - 61, - 34, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 99, - 97, - 115, - 101, - 32, - 111, - 102, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 99, - 111, - 110, - 115, - 116, - 105, - 116, - 117, - 116, - 105, - 111, - 110, - 97, - 108, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 111, - 114, - 100, - 101, - 114, - 45, - 58, - 32, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 32, - 123, - 66, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 45, - 115, - 116, - 114, - 105, - 99, - 116, - 46, - 100, - 116, - 100, - 34, - 62, - 10, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 97, - 99, - 99, - 111, - 109, - 112, - 97, - 110, - 105, - 101, - 100, - 32, - 98, - 121, - 97, - 99, - 99, - 111, - 117, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 114, - 99, - 61, - 34, - 47, - 110, - 97, - 116, - 117, - 114, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 116, - 104, - 101, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 32, - 105, - 110, - 32, - 105, - 110, - 32, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 115, - 41, - 59, - 32, - 106, - 115, - 46, - 105, - 100, - 32, - 61, - 32, - 105, - 100, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 48, - 48, - 37, - 34, - 114, - 101, - 103, - 97, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 82, - 111, - 109, - 97, - 110, - 32, - 67, - 97, - 116, - 104, - 111, - 108, - 105, - 99, - 97, - 110, - 32, - 105, - 110, - 100, - 101, - 112, - 101, - 110, - 100, - 101, - 110, - 116, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 46, - 103, - 105, - 102, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 116, - 104, - 101, - 32, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 100, - 105, - 115, - 99, - 114, - 105, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 114, - 99, - 104, - 97, - 101, - 111, - 108, - 111, - 103, - 105, - 99, - 97, - 108, - 112, - 114, - 105, - 109, - 101, - 32, - 109, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 99, - 111, - 109, - 98, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 99, - 114, - 101, - 97, - 116, - 101, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 40, - 119, - 46, - 97, - 116, - 116, - 97, - 99, - 104, - 69, - 118, - 101, - 110, - 116, - 40, - 60, - 47, - 97, - 62, - 60, - 47, - 116, - 100, - 62, - 60, - 47, - 116, - 114, - 62, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 115, - 58, - 47, - 47, - 97, - 73, - 110, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 44, - 32, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 108, - 101, - 102, - 116, - 34, - 32, - 67, - 122, - 101, - 99, - 104, - 32, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 85, - 110, - 105, - 116, - 101, - 100, - 32, - 75, - 105, - 110, - 103, - 100, - 111, - 109, - 99, - 111, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 101, - 110, - 99, - 101, - 99, - 111, - 110, - 99, - 108, - 117, - 100, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 46, - 104, - 116, - 109, - 108, - 34, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 40, - 41, - 32, - 123, - 99, - 111, - 109, - 101, - 115, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 101, - 109, - 101, - 110, - 116, - 40, - 39, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 60, - 47, - 97, - 62, - 10, - 60, - 47, - 108, - 105, - 62, - 10, - 60, - 108, - 105, - 118, - 101, - 114, - 121, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 40, - 97, - 108, - 115, - 111, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 9, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 62, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 97, - 115, - 32, - 118, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 116, - 111, - 112, - 34, - 62, - 102, - 111, - 117, - 110, - 100, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 116, - 116, - 101, - 109, - 112, - 116, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 99, - 97, - 114, - 98, - 111, - 110, - 32, - 100, - 105, - 111, - 120, - 105, - 100, - 101, - 10, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 101, - 97, - 114, - 99, - 104, - 45, - 47, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 111, - 112, - 112, - 111, - 114, - 116, - 117, - 110, - 105, - 116, - 121, - 32, - 116, - 111, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 13, - 10, - 60, - 98, - 111, - 100, - 121, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 119, - 105, - 100, - 116, - 104, - 58, - 84, - 105, - 225, - 186, - 191, - 110, - 103, - 32, - 86, - 105, - 225, - 187, - 135, - 116, - 99, - 104, - 97, - 110, - 103, - 101, - 115, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 45, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 48, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 119, - 97, - 115, - 32, - 100, - 105, - 115, - 99, - 111, - 118, - 101, - 114, - 101, - 100, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 41, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 10, - 68, - 101, - 112, - 97, - 114, - 116, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 101, - 99, - 99, - 108, - 101, - 115, - 105, - 97, - 115, - 116, - 105, - 99, - 97, - 108, - 116, - 104, - 101, - 114, - 101, - 32, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 114, - 101, - 115, - 117, - 108, - 116, - 105, - 110, - 103, - 32, - 102, - 114, - 111, - 109, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 104, - 97, - 115, - 32, - 110, - 101, - 118, - 101, - 114, - 32, - 98, - 101, - 101, - 110, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 32, - 116, - 105, - 109, - 101, - 105, - 110, - 32, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 101, - 32, - 116, - 111, - 97, - 117, - 116, - 111, - 109, - 97, - 116, - 105, - 99, - 97, - 108, - 108, - 121, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 10, - 60, - 100, - 105, - 118, - 32, - 105, - 119, - 97, - 115, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 112, - 101, - 114, - 99, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 34, - 32, - 47, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 100, - 101, - 115, - 99, - 101, - 110, - 100, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 115, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 99, - 99, - 101, - 112, - 116, - 45, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 116, - 111, - 32, - 98, - 101, - 32, - 99, - 111, - 110, - 102, - 117, - 115, - 101, - 100, - 109, - 101, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 45, - 114, - 105, - 103, - 104, - 116, - 58, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 110, - 116, - 101, - 114, - 112, - 114, - 101, - 116, - 97, - 116, - 105, - 111, - 110, - 32, - 104, - 114, - 101, - 102, - 61, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 104, - 101, - 116, - 104, - 101, - 114, - 32, - 111, - 114, - 32, - 110, - 111, - 116, - 84, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 32, - 97, - 108, - 115, - 111, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 32, - 109, - 97, - 110, - 121, - 97, - 32, - 115, - 109, - 97, - 108, - 108, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 111, - 116, - 104, - 101, - 114, - 32, - 112, - 97, - 114, - 116, - 115, - 32, - 111, - 102, - 105, - 109, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 32, - 116, - 111, - 32, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 98, - 117, - 116, - 116, - 111, - 110, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 46, - 32, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 101, - 97, - 110, - 100, - 32, - 101, - 118, - 101, - 110, - 116, - 117, - 97, - 108, - 108, - 121, - 65, - 116, - 32, - 116, - 104, - 101, - 32, - 101, - 110, - 100, - 32, - 111, - 102, - 32, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 105, - 116, - 115, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 115, - 32, - 116, - 104, - 101, - 60, - 102, - 111, - 114, - 109, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 112, - 111, - 115, - 116, - 34, - 105, - 116, - 32, - 105, - 115, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 109, - 111, - 114, - 101, - 32, - 108, - 105, - 107, - 101, - 108, - 121, - 32, - 116, - 111, - 97, - 110, - 32, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 101, - 32, - 105, - 110, - 104, - 97, - 118, - 101, - 32, - 97, - 108, - 115, - 111, - 32, - 98, - 101, - 101, - 110, - 99, - 111, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 115, - 32, - 116, - 111, - 97, - 110, - 110, - 111, - 117, - 110, - 99, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 114, - 105, - 103, - 104, - 116, - 34, - 62, - 109, - 97, - 110, - 121, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 102, - 111, - 114, - 32, - 109, - 97, - 110, - 121, - 32, - 121, - 101, - 97, - 114, - 115, - 101, - 97, - 114, - 108, - 105, - 101, - 115, - 116, - 32, - 107, - 110, - 111, - 119, - 110, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 105, - 116, - 32, - 119, - 97, - 115, - 112, - 116, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 32, - 118, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 116, - 111, - 112, - 34, - 32, - 105, - 110, - 104, - 97, - 98, - 105, - 116, - 97, - 110, - 116, - 115, - 32, - 111, - 102, - 102, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 121, - 101, - 97, - 114, - 13, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 105, - 108, - 108, - 105, - 111, - 110, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 99, - 111, - 110, - 116, - 114, - 111, - 118, - 101, - 114, - 115, - 105, - 97, - 108, - 32, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 97, - 114, - 103, - 117, - 101, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 32, - 97, - 110, - 100, - 97, - 32, - 114, - 101, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 32, - 116, - 111, - 116, - 114, - 97, - 110, - 115, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 100, - 101, - 115, - 99, - 114, - 105, - 98, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 99, - 111, - 108, - 111, - 114, - 58, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 114, - 101, - 98, - 101, - 115, - 116, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 102, - 111, - 114, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 109, - 117, - 108, - 116, - 105, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 109, - 111, - 114, - 101, - 32, - 116, - 104, - 97, - 110, - 32, - 111, - 110, - 101, - 32, - 114, - 101, - 99, - 111, - 103, - 110, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 67, - 111, - 117, - 110, - 99, - 105, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 101, - 100, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 32, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 69, - 110, - 116, - 101, - 114, - 116, - 97, - 105, - 110, - 109, - 101, - 110, - 116, - 32, - 97, - 119, - 97, - 121, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 59, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 114, - 105, - 103, - 104, - 116, - 58, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 116, - 105, - 109, - 101, - 32, - 111, - 102, - 105, - 110, - 118, - 101, - 115, - 116, - 105, - 103, - 97, - 116, - 105, - 111, - 110, - 115, - 99, - 111, - 110, - 110, - 101, - 99, - 116, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 97, - 110, - 100, - 32, - 109, - 97, - 110, - 121, - 32, - 111, - 116, - 104, - 101, - 114, - 97, - 108, - 116, - 104, - 111, - 117, - 103, - 104, - 32, - 105, - 116, - 32, - 105, - 115, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 119, - 105, - 116, - 104, - 32, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 100, - 101, - 115, - 99, - 101, - 110, - 100, - 97, - 110, - 116, - 115, - 32, - 111, - 102, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 32, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 114, - 105, - 103, - 104, - 116, - 34, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 98, - 111, - 100, - 121, - 32, - 97, - 115, - 112, - 101, - 99, - 116, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 104, - 97, - 115, - 32, - 115, - 105, - 110, - 99, - 101, - 32, - 98, - 101, - 101, - 110, - 69, - 117, - 114, - 111, - 112, - 101, - 97, - 110, - 32, - 85, - 110, - 105, - 111, - 110, - 114, - 101, - 109, - 105, - 110, - 105, - 115, - 99, - 101, - 110, - 116, - 32, - 111, - 102, - 109, - 111, - 114, - 101, - 32, - 100, - 105, - 102, - 102, - 105, - 99, - 117, - 108, - 116, - 86, - 105, - 99, - 101, - 32, - 80, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 99, - 111, - 109, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 112, - 97, - 115, - 115, - 101, - 100, - 32, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 109, - 111, - 114, - 101, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 49, - 49, - 112, - 120, - 101, - 120, - 112, - 108, - 97, - 110, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 32, - 111, - 102, - 119, - 114, - 105, - 116, - 116, - 101, - 110, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 9, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 115, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 114, - 101, - 115, - 101, - 109, - 98, - 108, - 97, - 110, - 99, - 101, - 32, - 116, - 111, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 103, - 114, - 111, - 117, - 110, - 100, - 115, - 119, - 104, - 105, - 99, - 104, - 32, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 115, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 109, - 101, - 97, - 110, - 115, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 111, - 117, - 116, - 115, - 105, - 100, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 40, - 77, - 97, - 116, - 104, - 46, - 114, - 97, - 110, - 100, - 111, - 109, - 40, - 41, - 109, - 111, - 115, - 116, - 32, - 112, - 114, - 111, - 109, - 105, - 110, - 101, - 110, - 116, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 67, - 111, - 110, - 115, - 116, - 97, - 110, - 116, - 105, - 110, - 111, - 112, - 108, - 101, - 119, - 101, - 114, - 101, - 32, - 112, - 117, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 101, - 97, - 112, - 112, - 101, - 97, - 114, - 115, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 49, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 34, - 32, - 109, - 111, - 115, - 116, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 119, - 104, - 105, - 99, - 104, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 115, - 119, - 104, - 105, - 99, - 104, - 32, - 104, - 97, - 100, - 32, - 98, - 101, - 101, - 110, - 100, - 101, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 10, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 112, - 111, - 115, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 111, - 102, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 32, - 117, - 115, - 101, - 100, - 97, - 112, - 112, - 101, - 97, - 114, - 32, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 116, - 101, - 110, - 100, - 101, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 99, - 108, - 101, - 97, - 114, - 58, - 98, - 13, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 119, - 97, - 115, - 32, - 102, - 111, - 117, - 110, - 100, - 101, - 100, - 32, - 105, - 110, - 105, - 110, - 116, - 101, - 114, - 118, - 105, - 101, - 119, - 32, - 119, - 105, - 116, - 104, - 95, - 105, - 100, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 99, - 97, - 112, - 105, - 116, - 97, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 13, - 10, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 114, - 101, - 108, - 101, - 97, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 112, - 111, - 105, - 110, - 116, - 32, - 111, - 117, - 116, - 32, - 116, - 104, - 97, - 116, - 120, - 77, - 76, - 72, - 116, - 116, - 112, - 82, - 101, - 113, - 117, - 101, - 115, - 116, - 97, - 110, - 100, - 32, - 115, - 117, - 98, - 115, - 101, - 113, - 117, - 101, - 110, - 116, - 115, - 101, - 99, - 111, - 110, - 100, - 32, - 108, - 97, - 114, - 103, - 101, - 115, - 116, - 118, - 101, - 114, - 121, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 115, - 112, - 101, - 99, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 115, - 117, - 114, - 102, - 97, - 99, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 112, - 112, - 108, - 105, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 102, - 111, - 114, - 101, - 105, - 103, - 110, - 32, - 112, - 111, - 108, - 105, - 99, - 121, - 95, - 115, - 101, - 116, - 68, - 111, - 109, - 97, - 105, - 110, - 78, - 97, - 109, - 101, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 32, - 105, - 110, - 105, - 115, - 32, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 100, - 32, - 116, - 111, - 73, - 110, - 32, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 109, - 101, - 97, - 110, - 105, - 110, - 103, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 110, - 97, - 109, - 101, - 100, - 32, - 97, - 102, - 116, - 101, - 114, - 116, - 111, - 32, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 100, - 68, - 101, - 99, - 108, - 97, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 109, - 111, - 114, - 101, - 32, - 101, - 102, - 102, - 105, - 99, - 105, - 101, - 110, - 116, - 67, - 108, - 97, - 115, - 115, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 111, - 116, - 104, - 101, - 114, - 32, - 102, - 111, - 114, - 109, - 115, - 32, - 111, - 102, - 104, - 101, - 32, - 114, - 101, - 116, - 117, - 114, - 110, - 101, - 100, - 32, - 116, - 111, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 112, - 101, - 114, - 102, - 111, - 114, - 109, - 97, - 110, - 99, - 101, - 32, - 111, - 102, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 32, - 123, - 13, - 105, - 102, - 32, - 97, - 110, - 100, - 32, - 111, - 110, - 108, - 121, - 32, - 105, - 102, - 114, - 101, - 103, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 108, - 101, - 97, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 32, - 119, - 105, - 116, - 104, - 85, - 110, - 105, - 116, - 101, - 100, - 32, - 78, - 97, - 116, - 105, - 111, - 110, - 115, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 111, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 32, - 116, - 104, - 101, - 121, - 112, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 65, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 10, - 60, - 47, - 104, - 101, - 97, - 100, - 62, - 10, - 60, - 98, - 111, - 100, - 121, - 108, - 111, - 99, - 97, - 116, - 101, - 100, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 40, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 99, - 101, - 110, - 116, - 114, - 97, - 116, - 105, - 111, - 110, - 115, - 116, - 104, - 101, - 32, - 105, - 110, - 100, - 105, - 118, - 105, - 100, - 117, - 97, - 108, - 97, - 109, - 111, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 116, - 104, - 97, - 110, - 32, - 97, - 110, - 121, - 32, - 111, - 116, - 104, - 101, - 114, - 47, - 62, - 10, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 32, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 102, - 97, - 108, - 115, - 101, - 59, - 116, - 104, - 101, - 32, - 112, - 117, - 114, - 112, - 111, - 115, - 101, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 116, - 111, - 59, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 102, - 102, - 102, - 125, - 10, - 46, - 10, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 104, - 101, - 32, - 115, - 117, - 98, - 106, - 101, - 99, - 116, - 32, - 111, - 102, - 100, - 101, - 102, - 105, - 110, - 105, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 62, - 13, - 10, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 99, - 108, - 97, - 105, - 109, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 104, - 97, - 118, - 101, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 99, - 101, - 108, - 101, - 98, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 70, - 111, - 108, - 108, - 111, - 119, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 116, - 111, - 32, - 100, - 105, - 115, - 116, - 105, - 110, - 103, - 117, - 105, - 115, - 104, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 98, - 116, - 97, - 107, - 101, - 115, - 32, - 112, - 108, - 97, - 99, - 101, - 32, - 105, - 110, - 117, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 110, - 97, - 109, - 101, - 110, - 111, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 62, - 60, - 33, - 91, - 101, - 110, - 100, - 105, - 102, - 93, - 45, - 45, - 62, - 10, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 105, - 110, - 115, - 116, - 101, - 97, - 100, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 101, - 100, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 32, - 111, - 102, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 32, - 105, - 110, - 101, - 115, - 116, - 105, - 109, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 32, - 116, - 104, - 101, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 119, - 97, - 115, - 32, - 101, - 118, - 101, - 110, - 116, - 117, - 97, - 108, - 108, - 121, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 111, - 117, - 116, - 32, - 104, - 105, - 115, - 116, - 104, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 111, - 109, - 101, - 116, - 104, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 115, - 105, - 103, - 110, - 105, - 102, - 105, - 99, - 97, - 110, - 116, - 108, - 121, - 32, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 13, - 10, - 101, - 110, - 118, - 105, - 114, - 111, - 110, - 109, - 101, - 110, - 116, - 97, - 108, - 32, - 116, - 111, - 32, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 32, - 116, - 104, - 101, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 32, - 117, - 115, - 101, - 100, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 32, - 102, - 111, - 114, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 101, - 115, - 115, - 101, - 110, - 116, - 105, - 97, - 108, - 108, - 121, - 119, - 101, - 114, - 101, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 105, - 115, - 32, - 116, - 104, - 101, - 32, - 108, - 97, - 114, - 103, - 101, - 115, - 116, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 32, - 109, - 97, - 100, - 101, - 34, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 105, - 110, - 116, - 101, - 114, - 112, - 114, - 101, - 116, - 101, - 100, - 32, - 97, - 115, - 115, - 101, - 99, - 111, - 110, - 100, - 32, - 104, - 97, - 108, - 102, - 32, - 111, - 102, - 99, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 61, - 34, - 110, - 111, - 34, - 32, - 105, - 115, - 32, - 99, - 111, - 109, - 112, - 111, - 115, - 101, - 100, - 32, - 111, - 102, - 73, - 73, - 44, - 32, - 72, - 111, - 108, - 121, - 32, - 82, - 111, - 109, - 97, - 110, - 105, - 115, - 32, - 101, - 120, - 112, - 101, - 99, - 116, - 101, - 100, - 32, - 116, - 111, - 104, - 97, - 118, - 101, - 32, - 116, - 104, - 101, - 105, - 114, - 32, - 111, - 119, - 110, - 100, - 101, - 102, - 105, - 110, - 101, - 100, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 32, - 104, - 97, - 118, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 97, - 114, - 101, - 32, - 111, - 102, - 116, - 101, - 110, - 32, - 117, - 115, - 101, - 100, - 116, - 111, - 32, - 101, - 110, - 115, - 117, - 114, - 101, - 32, - 116, - 104, - 97, - 116, - 97, - 103, - 114, - 101, - 101, - 109, - 101, - 110, - 116, - 32, - 119, - 105, - 116, - 104, - 99, - 111, - 110, - 116, - 97, - 105, - 110, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 97, - 114, - 101, - 32, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 110, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 32, - 105, - 115, - 32, - 116, - 104, - 101, - 114, - 101, - 115, - 117, - 108, - 116, - 105, - 110, - 103, - 32, - 105, - 110, - 32, - 97, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 47, - 117, - 108, - 62, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 102, - 111, - 111, - 116, - 101, - 114, - 97, - 110, - 100, - 32, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 116, - 121, - 112, - 101, - 61, - 34, - 98, - 117, - 116, - 116, - 111, - 110, - 34, - 32, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 119, - 104, - 105, - 99, - 104, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 100, - 62, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 32, - 116, - 104, - 101, - 99, - 97, - 114, - 114, - 105, - 101, - 100, - 32, - 111, - 117, - 116, - 32, - 98, - 121, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 105, - 116, - 32, - 105, - 115, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 105, - 110, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 99, - 97, - 112, - 105, - 116, - 97, - 108, - 32, - 111, - 102, - 119, - 97, - 115, - 32, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 108, - 121, - 119, - 104, - 105, - 99, - 104, - 32, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 116, - 104, - 101, - 32, - 72, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 118, - 101, - 32, - 116, - 111, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 102, - 114, - 111, - 109, - 116, - 111, - 32, - 115, - 117, - 112, - 112, - 111, - 114, - 116, - 32, - 116, - 104, - 101, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 112, - 114, - 111, - 99, - 101, - 115, - 115, - 32, - 32, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 104, - 101, - 32, - 102, - 111, - 117, - 110, - 100, - 97, - 116, - 105, - 111, - 110, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 104, - 105, - 115, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 116, - 104, - 101, - 32, - 117, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 111, - 112, - 112, - 111, - 115, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 116, - 101, - 120, - 116, - 32, - 111, - 102, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 112, - 116, - 101, - 120, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 113, - 34, - 9, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 116, - 104, - 101, - 32, - 115, - 99, - 105, - 101, - 110, - 116, - 105, - 102, - 105, - 99, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 100, - 32, - 98, - 121, - 109, - 97, - 116, - 104, - 101, - 109, - 97, - 116, - 105, - 99, - 105, - 97, - 110, - 115, - 101, - 108, - 101, - 99, - 116, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 116, - 104, - 97, - 116, - 32, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 104, - 101, - 97, - 100, - 101, - 114, - 105, - 110, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 44, - 99, - 111, - 110, - 118, - 101, - 114, - 116, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 41, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 112, - 104, - 105, - 108, - 111, - 115, - 111, - 112, - 104, - 105, - 99, - 97, - 108, - 32, - 115, - 114, - 112, - 115, - 107, - 111, - 104, - 114, - 118, - 97, - 116, - 115, - 107, - 105, - 116, - 105, - 225, - 186, - 191, - 110, - 103, - 32, - 86, - 105, - 225, - 187, - 135, - 116, - 208, - 160, - 209, - 131, - 209, - 129, - 209, - 129, - 208, - 186, - 208, - 184, - 208, - 185, - 209, - 128, - 209, - 131, - 209, - 129, - 209, - 129, - 208, - 186, - 208, - 184, - 208, - 185, - 105, - 110, - 118, - 101, - 115, - 116, - 105, - 103, - 97, - 99, - 105, - 195, - 179, - 110, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 99, - 105, - 195, - 179, - 110, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 209, - 139, - 208, - 181, - 208, - 190, - 208, - 177, - 208, - 187, - 208, - 176, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 209, - 139, - 208, - 185, - 209, - 135, - 208, - 181, - 208, - 187, - 208, - 190, - 208, - 178, - 208, - 181, - 208, - 186, - 209, - 129, - 208, - 184, - 209, - 129, - 209, - 130, - 208, - 181, - 208, - 188, - 209, - 139, - 208, - 157, - 208, - 190, - 208, - 178, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 209, - 139, - 209, - 133, - 208, - 190, - 208, - 177, - 208, - 187, - 208, - 176, - 209, - 129, - 209, - 130, - 209, - 140, - 208, - 178, - 209, - 128, - 208, - 181, - 208, - 188, - 208, - 181, - 208, - 189, - 208, - 184, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 176, - 209, - 143, - 209, - 129, - 208, - 181, - 208, - 179, - 208, - 190, - 208, - 180, - 208, - 189, - 209, - 143, - 209, - 129, - 208, - 186, - 208, - 176, - 209, - 135, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 189, - 208, - 190, - 208, - 178, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 163, - 208, - 186, - 209, - 128, - 208, - 176, - 208, - 184, - 208, - 189, - 209, - 139, - 208, - 178, - 208, - 190, - 208, - 191, - 209, - 128, - 208, - 190, - 209, - 129, - 209, - 139, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 185, - 209, - 129, - 208, - 180, - 208, - 181, - 208, - 187, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 191, - 208, - 190, - 208, - 188, - 208, - 190, - 209, - 137, - 209, - 140, - 209, - 142, - 209, - 129, - 209, - 128, - 208, - 181, - 208, - 180, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 190, - 208, - 177, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 190, - 208, - 188, - 209, - 129, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 189, - 209, - 139, - 209, - 131, - 209, - 135, - 208, - 176, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 181, - 209, - 130, - 208, - 181, - 209, - 135, - 208, - 181, - 208, - 189, - 208, - 184, - 208, - 181, - 208, - 147, - 208, - 187, - 208, - 176, - 208, - 178, - 208, - 189, - 208, - 176, - 209, - 143, - 208, - 184, - 209, - 129, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 184, - 208, - 184, - 209, - 129, - 208, - 184, - 209, - 129, - 209, - 130, - 208, - 181, - 208, - 188, - 208, - 176, - 209, - 128, - 208, - 181, - 209, - 136, - 208, - 181, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 161, - 208, - 186, - 208, - 176, - 209, - 135, - 208, - 176, - 209, - 130, - 209, - 140, - 208, - 191, - 208, - 190, - 209, - 141, - 209, - 130, - 208, - 190, - 208, - 188, - 209, - 131, - 209, - 129, - 208, - 187, - 208, - 181, - 208, - 180, - 209, - 131, - 208, - 181, - 209, - 130, - 209, - 129, - 208, - 186, - 208, - 176, - 208, - 183, - 208, - 176, - 209, - 130, - 209, - 140, - 209, - 130, - 208, - 190, - 208, - 178, - 208, - 176, - 209, - 128, - 208, - 190, - 208, - 178, - 208, - 186, - 208, - 190, - 208, - 189, - 208, - 181, - 209, - 135, - 208, - 189, - 208, - 190, - 209, - 128, - 208, - 181, - 209, - 136, - 208, - 181, - 208, - 189, - 208, - 184, - 208, - 181, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 181, - 208, - 190, - 209, - 128, - 208, - 179, - 208, - 176, - 208, - 189, - 208, - 190, - 208, - 178, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 188, - 208, - 160, - 208, - 181, - 208, - 186, - 208, - 187, - 208, - 176, - 208, - 188, - 208, - 176, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 175, - 217, - 137, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 175, - 217, - 138, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 136, - 216, - 182, - 217, - 136, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 168, - 216, - 177, - 216, - 167, - 217, - 133, - 216, - 172, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 136, - 216, - 167, - 217, - 130, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 179, - 216, - 167, - 216, - 166, - 217, - 132, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 185, - 216, - 182, - 216, - 167, - 216, - 161, - 216, - 167, - 217, - 132, - 216, - 177, - 217, - 138, - 216, - 167, - 216, - 182, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 181, - 217, - 133, - 217, - 138, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 185, - 216, - 182, - 216, - 167, - 216, - 161, - 216, - 167, - 217, - 132, - 217, - 134, - 216, - 170, - 216, - 167, - 216, - 166, - 216, - 172, - 216, - 167, - 217, - 132, - 216, - 163, - 217, - 132, - 216, - 185, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 179, - 216, - 172, - 217, - 138, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 163, - 217, - 130, - 216, - 179, - 216, - 167, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 182, - 216, - 186, - 216, - 183, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 129, - 217, - 138, - 216, - 175, - 217, - 138, - 217, - 136, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 177, - 216, - 173, - 217, - 138, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 172, - 216, - 175, - 217, - 138, - 216, - 175, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 185, - 217, - 132, - 217, - 138, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 174, - 216, - 168, - 216, - 167, - 216, - 177, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 129, - 217, - 132, - 216, - 167, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 163, - 217, - 129, - 217, - 132, - 216, - 167, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 167, - 216, - 177, - 217, - 138, - 216, - 174, - 216, - 167, - 217, - 132, - 216, - 170, - 217, - 130, - 217, - 134, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 216, - 168, - 216, - 167, - 217, - 132, - 216, - 174, - 217, - 136, - 216, - 167, - 216, - 183, - 216, - 177, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 172, - 216, - 170, - 217, - 133, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 175, - 217, - 138, - 217, - 131, - 217, - 136, - 216, - 177, - 216, - 167, - 217, - 132, - 216, - 179, - 217, - 138, - 216, - 167, - 216, - 173, - 216, - 169, - 216, - 185, - 216, - 168, - 216, - 175, - 216, - 167, - 217, - 132, - 217, - 132, - 217, - 135, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 177, - 216, - 168, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 177, - 217, - 136, - 216, - 167, - 216, - 168, - 216, - 183, - 216, - 167, - 217, - 132, - 216, - 163, - 216, - 175, - 216, - 168, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 174, - 216, - 168, - 216, - 167, - 216, - 177, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 170, - 216, - 173, - 216, - 175, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 186, - 216, - 167, - 217, - 134, - 217, - 138, - 99, - 117, - 114, - 115, - 111, - 114, - 58, - 112, - 111, - 105, - 110, - 116, - 101, - 114, - 59, - 60, - 47, - 116, - 105, - 116, - 108, - 101, - 62, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 34, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 109, - 101, - 109, - 98, - 101, - 114, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 118, - 101, - 114, - 116, - 105, - 99, - 97, - 108, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 47, - 97, - 62, - 32, - 124, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 60, - 33, - 100, - 111, - 99, - 116, - 121, - 112, - 101, - 32, - 104, - 116, - 109, - 108, - 62, - 109, - 101, - 100, - 105, - 97, - 61, - 34, - 115, - 99, - 114, - 101, - 101, - 110, - 34, - 32, - 60, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 46, - 105, - 99, - 111, - 34, - 32, - 47, - 62, - 10, - 9, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 105, - 115, - 116, - 105, - 99, - 115, - 34, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 103, - 101, - 116, - 34, - 32, - 47, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 10, - 115, - 104, - 111, - 114, - 116, - 99, - 117, - 116, - 32, - 105, - 99, - 111, - 110, - 34, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 119, - 114, - 105, - 116, - 101, - 40, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 45, - 98, - 111, - 116, - 116, - 111, - 109, - 58, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 97, - 116, - 105, - 118, - 101, - 115, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 99, - 101, - 110, - 116, - 101, - 114, - 34, - 32, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 32, - 115, - 99, - 105, - 101, - 110, - 99, - 101, - 32, - 102, - 105, - 99, - 116, - 105, - 111, - 110, - 10, - 32, - 32, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 32, - 118, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 116, - 111, - 112, - 34, - 62, - 60, - 119, - 97, - 115, - 32, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 41, - 59, - 13, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 102, - 97, - 108, - 115, - 101, - 59, - 34, - 62, - 41, - 46, - 115, - 116, - 121, - 108, - 101, - 46, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 98, - 101, - 99, - 97, - 117, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 99, - 111, - 111, - 107, - 105, - 101, - 60, - 102, - 111, - 114, - 109, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 47, - 125, - 98, - 111, - 100, - 121, - 123, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 48, - 59, - 69, - 110, - 99, - 121, - 99, - 108, - 111, - 112, - 101, - 100, - 105, - 97, - 32, - 111, - 102, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 46, - 99, - 114, - 101, - 97, - 116, - 101, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 40, - 110, - 97, - 109, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 10, - 97, - 100, - 109, - 105, - 110, - 105, - 115, - 116, - 114, - 97, - 116, - 105, - 118, - 101, - 32, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 104, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 34, - 62, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 112, - 111, - 114, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 97, - 115, - 32, - 112, - 97, - 114, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 111, - 116, - 104, - 101, - 114, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 34, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 73, - 110, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 119, - 111, - 114, - 100, - 115, - 44, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 32, - 98, - 108, - 111, - 99, - 107, - 59, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 47, - 62, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 97, - 115, - 32, - 119, - 101, - 108, - 108, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 32, - 114, - 101, - 99, - 101, - 110, - 116, - 32, - 121, - 101, - 97, - 114, - 115, - 13, - 10, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 9, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 105, - 110, - 115, - 112, - 105, - 114, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 101, - 110, - 100, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 109, - 112, - 97, - 116, - 105, - 98, - 108, - 101, - 32, - 119, - 105, - 116, - 104, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 32, - 73, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 116, - 104, - 101, - 114, - 101, - 32, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 71, - 101, - 114, - 109, - 97, - 110, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 67, - 111, - 109, - 109, - 117, - 110, - 105, - 115, - 116, - 32, - 80, - 97, - 114, - 116, - 121, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 101, - 110, - 116, - 32, - 119, - 105, - 116, - 104, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 116, - 104, - 101, - 32, - 109, - 97, - 106, - 111, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 34, - 32, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 99, - 101, - 110, - 116, - 101, - 114, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 109, - 97, - 110, - 121, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 79, - 114, - 116, - 104, - 111, - 100, - 111, - 120, - 32, - 67, - 104, - 117, - 114, - 99, - 104, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 47, - 62, - 10, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 119, - 97, - 115, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 117, - 110, - 116, - 105, - 108, - 32, - 104, - 105, - 115, - 32, - 100, - 101, - 97, - 116, - 104, - 125, - 41, - 40, - 41, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 111, - 116, - 104, - 101, - 114, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 115, - 99, - 111, - 109, - 112, - 97, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 112, - 111, - 114, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 78, - 101, - 116, - 104, - 101, - 114, - 108, - 97, - 110, - 100, - 115, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 32, - 99, - 111, - 109, - 109, - 111, - 110, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 117, - 114, - 108, - 40, - 97, - 114, - 103, - 117, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 115, - 99, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 61, - 34, - 110, - 111, - 34, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 78, - 111, - 114, - 116, - 104, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 32, - 116, - 104, - 101, - 32, - 110, - 97, - 109, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 116, - 101, - 114, - 112, - 114, - 101, - 116, - 97, - 116, - 105, - 111, - 110, - 115, - 116, - 104, - 101, - 32, - 116, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 102, - 114, - 101, - 113, - 117, - 101, - 110, - 116, - 108, - 121, - 32, - 117, - 115, - 101, - 100, - 97, - 32, - 99, - 111, - 108, - 108, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 118, - 101, - 114, - 121, - 32, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 32, - 116, - 111, - 115, - 117, - 114, - 114, - 111, - 117, - 110, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 105, - 115, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 99, - 101, - 110, - 116, - 101, - 114, - 34, - 62, - 119, - 111, - 117, - 108, - 100, - 32, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 105, - 109, - 97, - 103, - 101, - 95, - 99, - 97, - 112, - 116, - 105, - 111, - 110, - 32, - 61, - 97, - 116, - 116, - 97, - 99, - 104, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 102, - 111, - 114, - 109, - 32, - 111, - 102, - 32, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 105, - 115, - 32, - 100, - 101, - 114, - 105, - 118, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 110, - 97, - 109, - 101, - 100, - 32, - 97, - 102, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 73, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 114, - 101, - 115, - 116, - 114, - 105, - 99, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 110, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 119, - 105, - 100, - 116, - 104, - 58, - 32, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 117, - 115, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 99, - 114, - 101, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 109, - 111, - 115, - 116, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 32, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 97, - 110, - 100, - 114, - 101, - 115, - 117, - 108, - 116, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 99, - 111, - 108, - 108, - 97, - 112, - 115, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 84, - 104, - 105, - 115, - 32, - 109, - 101, - 97, - 110, - 115, - 32, - 116, - 104, - 97, - 116, - 101, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 119, - 97, - 115, - 32, - 114, - 101, - 112, - 108, - 97, - 99, - 101, - 100, - 32, - 98, - 121, - 97, - 110, - 97, - 108, - 121, - 115, - 105, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 115, - 112, - 105, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 102, - 111, - 114, - 114, - 101, - 103, - 97, - 114, - 100, - 101, - 100, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 109, - 111, - 115, - 116, - 32, - 115, - 117, - 99, - 99, - 101, - 115, - 115, - 102, - 117, - 108, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 97, - 32, - 99, - 111, - 109, - 112, - 114, - 101, - 104, - 101, - 110, - 115, - 105, - 118, - 101, - 72, - 105, - 115, - 116, - 111, - 114, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 119, - 101, - 114, - 101, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 114, - 101, - 116, - 117, - 114, - 110, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 97, - 114, - 101, - 32, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 85, - 110, - 115, - 111, - 117, - 114, - 99, - 101, - 100, - 32, - 105, - 109, - 97, - 103, - 101, - 62, - 10, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 111, - 110, - 115, - 105, - 115, - 116, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 116, - 111, - 112, - 80, - 114, - 111, - 112, - 97, - 103, - 97, - 116, - 105, - 111, - 110, - 105, - 110, - 116, - 101, - 114, - 101, - 115, - 116, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 111, - 102, - 97, - 112, - 112, - 101, - 97, - 114, - 115, - 32, - 116, - 111, - 32, - 104, - 97, - 118, - 101, - 101, - 108, - 101, - 99, - 116, - 114, - 111, - 109, - 97, - 103, - 110, - 101, - 116, - 105, - 99, - 101, - 110, - 97, - 98, - 108, - 101, - 83, - 101, - 114, - 118, - 105, - 99, - 101, - 115, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 73, - 116, - 32, - 105, - 115, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 118, - 97, - 114, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 118, - 101, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 97, - 115, - 32, - 97, - 32, - 114, - 101, - 115, - 117, - 108, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 70, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 32, - 105, - 110, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 112, - 111, - 115, - 116, - 34, - 32, - 119, - 97, - 115, - 32, - 102, - 111, - 108, - 108, - 111, - 119, - 101, - 100, - 32, - 98, - 121, - 38, - 97, - 109, - 112, - 59, - 109, - 100, - 97, - 115, - 104, - 59, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 117, - 108, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 97, - 102, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 100, - 101, - 97, - 116, - 104, - 119, - 105, - 116, - 104, - 32, - 114, - 101, - 115, - 112, - 101, - 99, - 116, - 32, - 116, - 111, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 105, - 115, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 108, - 121, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 105, - 110, - 108, - 105, - 110, - 101, - 59, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 105, - 115, - 32, - 100, - 105, - 118, - 105, - 100, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 228, - 184, - 173, - 230, - 150, - 135, - 32, - 40, - 231, - 174, - 128, - 228, - 189, - 147, - 41, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 97, - 98, - 105, - 108, - 105, - 100, - 97, - 100, - 97, - 100, - 109, - 105, - 110, - 105, - 115, - 116, - 114, - 97, - 99, - 105, - 195, - 179, - 110, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 99, - 105, - 111, - 110, - 97, - 108, - 101, - 115, - 99, - 111, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 105, - 101, - 110, - 116, - 101, - 224, - 164, - 137, - 224, - 164, - 170, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 164, - 170, - 224, - 165, - 130, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 181, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 165, - 129, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 181, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 164, - 184, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 170, - 224, - 165, - 129, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 184, - 224, - 164, - 150, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 191, - 224, - 164, - 143, - 224, - 164, - 173, - 224, - 165, - 135, - 224, - 164, - 156, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 182, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 151, - 224, - 164, - 176, - 224, - 164, - 163, - 224, - 164, - 172, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 165, - 129, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 172, - 224, - 165, - 141, - 224, - 164, - 178, - 224, - 165, - 137, - 224, - 164, - 151, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 174, - 224, - 164, - 185, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 165, - 131, - 224, - 164, - 183, - 224, - 165, - 141, - 224, - 164, - 160, - 224, - 164, - 172, - 224, - 164, - 162, - 224, - 164, - 188, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 159, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 168, - 224, - 164, - 150, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 171, - 224, - 164, - 166, - 224, - 165, - 140, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 174, - 224, - 164, - 164, - 224, - 164, - 166, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 164, - 190, - 224, - 164, - 185, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 170, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 129, - 224, - 164, - 154, - 224, - 164, - 172, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 170, - 224, - 164, - 191, - 224, - 164, - 155, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 182, - 224, - 165, - 135, - 224, - 164, - 183, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 137, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 164, - 176, - 224, - 164, - 174, - 224, - 165, - 129, - 224, - 164, - 130, - 224, - 164, - 172, - 224, - 164, - 136, - 224, - 164, - 166, - 224, - 165, - 139, - 224, - 164, - 168, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 137, - 224, - 164, - 170, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 163, - 224, - 164, - 170, - 224, - 164, - 162, - 224, - 164, - 188, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 171, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 165, - 141, - 224, - 164, - 174, - 224, - 164, - 174, - 224, - 165, - 129, - 224, - 164, - 150, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 133, - 224, - 164, - 154, - 224, - 165, - 141, - 224, - 164, - 155, - 224, - 164, - 190, - 224, - 164, - 155, - 224, - 165, - 130, - 224, - 164, - 159, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 165, - 128, - 224, - 164, - 164, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 143, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 151, - 224, - 164, - 152, - 224, - 164, - 163, - 224, - 165, - 141, - 224, - 164, - 159, - 224, - 165, - 135, - 224, - 164, - 166, - 224, - 165, - 130, - 224, - 164, - 184, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 185, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 165, - 135, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 184, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 167, - 224, - 165, - 128, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 182, - 224, - 165, - 141, - 224, - 164, - 181, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 165, - 136, - 224, - 164, - 159, - 224, - 165, - 141, - 224, - 164, - 184, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 182, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 133, - 224, - 164, - 166, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 164, - 224, - 164, - 172, - 224, - 164, - 191, - 224, - 164, - 156, - 224, - 164, - 178, - 224, - 165, - 128, - 224, - 164, - 170, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 165, - 130, - 224, - 164, - 183, - 224, - 164, - 185, - 224, - 164, - 191, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 165, - 128, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 129, - 224, - 164, - 170, - 224, - 164, - 175, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 165, - 139, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 164, - 174, - 224, - 165, - 129, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 165, - 131, - 224, - 164, - 170, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 165, - 139, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 159, - 224, - 164, - 152, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 178, - 224, - 165, - 130, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 154, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 184, - 224, - 165, - 130, - 224, - 164, - 154, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 165, - 130, - 224, - 164, - 178, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 150, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 185, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 149, - 224, - 165, - 130, - 224, - 164, - 178, - 224, - 164, - 174, - 224, - 165, - 136, - 224, - 164, - 130, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 164, - 224, - 165, - 136, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 156, - 224, - 164, - 191, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 135, - 114, - 115, - 115, - 43, - 120, - 109, - 108, - 34, - 32, - 116, - 105, - 116, - 108, - 101, - 61, - 34, - 45, - 116, - 121, - 112, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 116, - 105, - 116, - 108, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 115, - 97, - 109, - 101, - 32, - 116, - 105, - 109, - 101, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 34, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 112, - 111, - 115, - 116, - 34, - 32, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 118, - 101, - 114, - 116, - 105, - 99, - 97, - 108, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 116, - 47, - 106, - 113, - 117, - 101, - 114, - 121, - 46, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 62, - 46, - 99, - 108, - 105, - 99, - 107, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 45, - 125, - 41, - 40, - 41, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 41, - 59, - 32, - 114, - 101, - 116, - 117, - 114, - 110, - 32, - 102, - 97, - 108, - 115, - 101, - 59, - 116, - 101, - 120, - 116, - 45, - 100, - 101, - 99, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 58, - 32, - 115, - 99, - 114, - 111, - 108, - 108, - 105, - 110, - 103, - 61, - 34, - 110, - 111, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 45, - 99, - 111, - 108, - 108, - 97, - 112, - 115, - 101, - 58, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 66, - 97, - 104, - 97, - 115, - 97, - 32, - 73, - 110, - 100, - 111, - 110, - 101, - 115, - 105, - 97, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 60, - 116, - 101, - 120, - 116, - 32, - 120, - 109, - 108, - 58, - 115, - 112, - 97, - 99, - 101, - 61, - 46, - 103, - 105, - 102, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 10, - 111, - 118, - 101, - 114, - 102, - 108, - 111, - 119, - 58, - 104, - 105, - 100, - 100, - 101, - 110, - 59, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 97, - 100, - 100, - 69, - 118, - 101, - 110, - 116, - 76, - 105, - 115, - 116, - 101, - 110, - 101, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 105, - 98, - 108, - 101, - 32, - 102, - 111, - 114, - 32, - 115, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 47, - 102, - 97, - 118, - 105, - 99, - 111, - 110, - 46, - 105, - 99, - 111, - 34, - 32, - 47, - 62, - 111, - 112, - 101, - 114, - 97, - 116, - 105, - 110, - 103, - 32, - 115, - 121, - 115, - 116, - 101, - 109, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 119, - 105, - 100, - 116, - 104, - 58, - 49, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 62, - 83, - 116, - 97, - 116, - 101, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 108, - 101, - 102, - 116, - 59, - 10, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 119, - 114, - 105, - 116, - 101, - 40, - 44, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 97, - 114, - 111, - 117, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 41, - 59, - 13, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 59, - 111, - 118, - 101, - 114, - 102, - 108, - 111, - 119, - 58, - 104, - 105, - 100, - 100, - 101, - 110, - 109, - 111, - 114, - 101, - 32, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 97, - 110, - 32, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 32, - 109, - 101, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 102, - 111, - 117, - 110, - 100, - 32, - 105, - 110, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 9, - 9, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 32, - 110, - 111, - 110, - 101, - 59, - 34, - 62, - 34, - 32, - 47, - 62, - 10, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 10, - 32, - 32, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 32, - 123, - 116, - 104, - 101, - 32, - 49, - 53, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 46, - 112, - 114, - 101, - 118, - 101, - 110, - 116, - 68, - 101, - 102, - 97, - 117, - 108, - 116, - 40, - 108, - 97, - 114, - 103, - 101, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 66, - 121, - 122, - 97, - 110, - 116, - 105, - 110, - 101, - 32, - 69, - 109, - 112, - 105, - 114, - 101, - 46, - 106, - 112, - 103, - 124, - 116, - 104, - 117, - 109, - 98, - 124, - 108, - 101, - 102, - 116, - 124, - 118, - 97, - 115, - 116, - 32, - 109, - 97, - 106, - 111, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 109, - 97, - 106, - 111, - 114, - 105, - 116, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 32, - 97, - 108, - 105, - 103, - 110, - 61, - 34, - 99, - 101, - 110, - 116, - 101, - 114, - 34, - 62, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 80, - 114, - 101, - 115, - 115, - 100, - 111, - 109, - 105, - 110, - 97, - 116, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 83, - 101, - 99, - 111, - 110, - 100, - 32, - 87, - 111, - 114, - 108, - 100, - 32, - 87, - 97, - 114, - 100, - 105, - 115, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 116, - 104, - 101, - 32, - 114, - 101, - 115, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 105, - 122, - 101, - 100, - 32, - 98, - 121, - 32, - 114, - 101, - 108, - 61, - 34, - 110, - 111, - 102, - 111, - 108, - 108, - 111, - 119, - 34, - 62, - 100, - 101, - 114, - 105, - 118, - 101, - 115, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 114, - 97, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 97, - 110, - 32, - 116, - 104, - 101, - 32, - 97, - 32, - 99, - 111, - 109, - 98, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 119, - 105, - 100, - 116, - 104, - 58, - 49, - 48, - 48, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 45, - 115, - 112, - 101, - 97, - 107, - 105, - 110, - 103, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 32, - 115, - 99, - 105, - 101, - 110, - 99, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 116, - 104, - 101, - 32, - 101, - 120, - 105, - 115, - 116, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 68, - 101, - 109, - 111, - 99, - 114, - 97, - 116, - 105, - 99, - 32, - 80, - 97, - 114, - 116, - 121, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 70, - 111, - 114, - 32, - 116, - 104, - 105, - 115, - 32, - 114, - 101, - 97, - 115, - 111, - 110, - 44, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 9, - 115, - 66, - 121, - 84, - 97, - 103, - 78, - 97, - 109, - 101, - 40, - 115, - 41, - 91, - 48, - 93, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 105, - 99, - 111, - 110, - 34, - 32, - 39, - 32, - 97, - 108, - 116, - 61, - 39, - 39, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 39, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 47, - 112, - 97, - 103, - 101, - 62, - 10, - 32, - 32, - 60, - 112, - 97, - 103, - 101, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 111, - 110, - 116, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 98, - 97, - 104, - 97, - 115, - 97, - 32, - 73, - 110, - 100, - 111, - 110, - 101, - 115, - 105, - 97, - 101, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 40, - 115, - 105, - 109, - 112, - 108, - 101, - 41, - 206, - 149, - 206, - 187, - 206, - 187, - 206, - 183, - 206, - 189, - 206, - 185, - 206, - 186, - 206, - 172, - 209, - 133, - 209, - 128, - 208, - 178, - 208, - 176, - 209, - 130, - 209, - 129, - 208, - 186, - 208, - 184, - 208, - 186, - 208, - 190, - 208, - 188, - 208, - 191, - 208, - 176, - 208, - 189, - 208, - 184, - 208, - 184, - 209, - 143, - 208, - 178, - 208, - 187, - 209, - 143, - 208, - 181, - 209, - 130, - 209, - 129, - 209, - 143, - 208, - 148, - 208, - 190, - 208, - 177, - 208, - 176, - 208, - 178, - 208, - 184, - 209, - 130, - 209, - 140, - 209, - 135, - 208, - 181, - 208, - 187, - 208, - 190, - 208, - 178, - 208, - 181, - 208, - 186, - 208, - 176, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 178, - 208, - 184, - 209, - 130, - 208, - 184, - 209, - 143, - 208, - 152, - 208, - 189, - 209, - 130, - 208, - 181, - 209, - 128, - 208, - 189, - 208, - 181, - 209, - 130, - 208, - 158, - 209, - 130, - 208, - 178, - 208, - 181, - 209, - 130, - 208, - 184, - 209, - 130, - 209, - 140, - 208, - 189, - 208, - 176, - 208, - 191, - 209, - 128, - 208, - 184, - 208, - 188, - 208, - 181, - 209, - 128, - 208, - 184, - 208, - 189, - 209, - 130, - 208, - 181, - 209, - 128, - 208, - 189, - 208, - 181, - 209, - 130, - 208, - 186, - 208, - 190, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 190, - 208, - 179, - 208, - 190, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 176, - 208, - 189, - 208, - 184, - 209, - 134, - 209, - 139, - 208, - 186, - 208, - 176, - 209, - 135, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 181, - 209, - 131, - 209, - 129, - 208, - 187, - 208, - 190, - 208, - 178, - 208, - 184, - 209, - 143, - 209, - 133, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 177, - 208, - 187, - 208, - 181, - 208, - 188, - 209, - 139, - 208, - 191, - 208, - 190, - 208, - 187, - 209, - 131, - 209, - 135, - 208, - 184, - 209, - 130, - 209, - 140, - 209, - 143, - 208, - 178, - 208, - 187, - 209, - 143, - 209, - 142, - 209, - 130, - 209, - 129, - 209, - 143, - 208, - 189, - 208, - 176, - 208, - 184, - 208, - 177, - 208, - 190, - 208, - 187, - 208, - 181, - 208, - 181, - 208, - 186, - 208, - 190, - 208, - 188, - 208, - 191, - 208, - 176, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 178, - 208, - 189, - 208, - 184, - 208, - 188, - 208, - 176, - 208, - 189, - 208, - 184, - 208, - 181, - 209, - 129, - 209, - 128, - 208, - 181, - 208, - 180, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 176, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 136, - 216, - 167, - 216, - 182, - 217, - 138, - 216, - 185, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 166, - 217, - 138, - 216, - 179, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 134, - 216, - 170, - 217, - 130, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 167, - 216, - 170, - 217, - 131, - 216, - 167, - 217, - 132, - 216, - 179, - 217, - 138, - 216, - 167, - 216, - 177, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 131, - 216, - 170, - 217, - 136, - 216, - 168, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 179, - 216, - 185, - 217, - 136, - 216, - 175, - 217, - 138, - 216, - 169, - 216, - 167, - 216, - 173, - 216, - 181, - 216, - 167, - 216, - 166, - 217, - 138, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 185, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 181, - 217, - 136, - 216, - 170, - 217, - 138, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 134, - 216, - 170, - 216, - 177, - 217, - 134, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 170, - 216, - 181, - 216, - 167, - 217, - 133, - 217, - 138, - 217, - 133, - 216, - 167, - 217, - 132, - 216, - 165, - 216, - 179, - 217, - 132, - 216, - 167, - 217, - 133, - 217, - 138, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 177, - 216, - 166, - 217, - 138, - 216, - 167, - 216, - 170, - 114, - 111, - 98, - 111, - 116, - 115, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 102, - 111, - 111, - 116, - 101, - 114, - 34, - 62, - 116, - 104, - 101, - 32, - 85, - 110, - 105, - 116, - 101, - 100, - 32, - 83, - 116, - 97, - 116, - 101, - 115, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 46, - 106, - 112, - 103, - 124, - 114, - 105, - 103, - 104, - 116, - 124, - 116, - 104, - 117, - 109, - 98, - 124, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 112, - 114, - 111, - 116, - 111, - 99, - 111, - 108, - 102, - 114, - 97, - 109, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 115, - 34, - 32, - 47, - 62, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 102, - 111, - 110, - 116, - 45, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 98, - 111, - 108, - 100, - 59, - 38, - 113, - 117, - 111, - 116, - 59, - 32, - 97, - 110, - 100, - 32, - 38, - 113, - 117, - 111, - 116, - 59, - 100, - 101, - 112, - 101, - 110, - 100, - 105, - 110, - 103, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 48, - 59, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 58, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 110, - 111, - 102, - 111, - 108, - 108, - 111, - 119, - 34, - 32, - 80, - 114, - 101, - 115, - 105, - 100, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 116, - 119, - 101, - 110, - 116, - 105, - 101, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 62, - 10, - 32, - 32, - 60, - 47, - 112, - 97, - 103, - 101, - 73, - 110, - 116, - 101, - 114, - 110, - 101, - 116, - 32, - 69, - 120, - 112, - 108, - 111, - 114, - 101, - 114, - 97, - 46, - 97, - 115, - 121, - 110, - 99, - 32, - 61, - 32, - 116, - 114, - 117, - 101, - 59, - 13, - 10, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 97, - 98, - 111, - 117, - 116, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 104, - 101, - 97, - 100, - 101, - 114, - 34, - 62, - 34, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 115, - 58, - 47, - 47, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 34, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 34, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 60, - 100, - 101, - 114, - 105, - 118, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 32, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 97, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 10, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 10, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 65, - 114, - 105, - 97, - 108, - 44, - 32, - 72, - 101, - 108, - 118, - 101, - 116, - 105, - 99, - 97, - 44, - 60, - 47, - 97, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 32, - 112, - 97, - 114, - 116, - 105, - 101, - 115, - 116, - 100, - 62, - 60, - 47, - 116, - 114, - 62, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 60, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 105, - 110, - 116, - 101, - 114, - 112, - 114, - 101, - 116, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 119, - 114, - 105, - 116, - 101, - 40, - 39, - 60, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 34, - 117, - 116, - 102, - 45, - 56, - 34, - 62, - 10, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 114, - 101, - 118, - 101, - 97, - 108, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 116, - 101, - 108, - 101, - 118, - 105, - 115, - 105, - 111, - 110, - 32, - 115, - 101, - 114, - 105, - 101, - 115, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 110, - 111, - 102, - 111, - 108, - 108, - 111, - 119, - 34, - 62, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 62, - 99, - 108, - 97, - 105, - 109, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 104, - 116, - 116, - 112, - 37, - 51, - 65, - 37, - 50, - 70, - 37, - 50, - 70, - 119, - 119, - 119, - 46, - 109, - 97, - 110, - 105, - 102, - 101, - 115, - 116, - 97, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 80, - 114, - 105, - 109, - 101, - 32, - 77, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 32, - 111, - 102, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 108, - 101, - 97, - 114, - 102, - 105, - 120, - 34, - 62, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 13, - 10, - 116, - 104, - 114, - 101, - 101, - 45, - 100, - 105, - 109, - 101, - 110, - 115, - 105, - 111, - 110, - 97, - 108, - 67, - 104, - 117, - 114, - 99, - 104, - 32, - 111, - 102, - 32, - 69, - 110, - 103, - 108, - 97, - 110, - 100, - 111, - 102, - 32, - 78, - 111, - 114, - 116, - 104, - 32, - 67, - 97, - 114, - 111, - 108, - 105, - 110, - 97, - 115, - 113, - 117, - 97, - 114, - 101, - 32, - 107, - 105, - 108, - 111, - 109, - 101, - 116, - 114, - 101, - 115, - 46, - 97, - 100, - 100, - 69, - 118, - 101, - 110, - 116, - 76, - 105, - 115, - 116, - 101, - 110, - 101, - 114, - 100, - 105, - 115, - 116, - 105, - 110, - 99, - 116, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 99, - 111, - 109, - 109, - 111, - 110, - 108, - 121, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 80, - 104, - 111, - 110, - 101, - 116, - 105, - 99, - 32, - 65, - 108, - 112, - 104, - 97, - 98, - 101, - 116, - 100, - 101, - 99, - 108, - 97, - 114, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 108, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 66, - 101, - 110, - 106, - 97, - 109, - 105, - 110, - 32, - 70, - 114, - 97, - 110, - 107, - 108, - 105, - 110, - 114, - 111, - 108, - 101, - 45, - 112, - 108, - 97, - 121, - 105, - 110, - 103, - 32, - 103, - 97, - 109, - 101, - 116, - 104, - 101, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 111, - 102, - 105, - 110, - 32, - 87, - 101, - 115, - 116, - 101, - 114, - 110, - 32, - 69, - 117, - 114, - 111, - 112, - 101, - 112, - 101, - 114, - 115, - 111, - 110, - 97, - 108, - 32, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 80, - 114, - 111, - 106, - 101, - 99, - 116, - 32, - 71, - 117, - 116, - 101, - 110, - 98, - 101, - 114, - 103, - 114, - 101, - 103, - 97, - 114, - 100, - 108, - 101, - 115, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 32, - 112, - 114, - 111, - 112, - 111, - 115, - 101, - 100, - 116, - 111, - 103, - 101, - 116, - 104, - 101, - 114, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 105, - 110, - 32, - 115, - 111, - 109, - 101, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 111, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 115, - 47, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 105, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 110, - 97, - 116, - 117, - 114, - 97, - 108, - 32, - 114, - 101, - 115, - 111, - 117, - 114, - 99, - 101, - 115, - 99, - 108, - 97, - 115, - 115, - 105, - 102, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 99, - 97, - 110, - 32, - 98, - 101, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 113, - 117, - 97, - 110, - 116, - 117, - 109, - 32, - 109, - 101, - 99, - 104, - 97, - 110, - 105, - 99, - 115, - 78, - 101, - 118, - 101, - 114, - 116, - 104, - 101, - 108, - 101, - 115, - 115, - 44, - 32, - 116, - 104, - 101, - 109, - 105, - 108, - 108, - 105, - 111, - 110, - 32, - 121, - 101, - 97, - 114, - 115, - 32, - 97, - 103, - 111, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 13, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 13, - 206, - 149, - 206, - 187, - 206, - 187, - 206, - 183, - 206, - 189, - 206, - 185, - 206, - 186, - 206, - 172, - 10, - 116, - 97, - 107, - 101, - 32, - 97, - 100, - 118, - 97, - 110, - 116, - 97, - 103, - 101, - 32, - 111, - 102, - 97, - 110, - 100, - 44, - 32, - 97, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 97, - 116, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 77, - 105, - 99, - 114, - 111, - 115, - 111, - 102, - 116, - 32, - 87, - 105, - 110, - 100, - 111, - 119, - 115, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 117, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 116, - 114, - 111, - 108, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 104, - 101, - 97, - 100, - 101, - 114, - 115, - 104, - 111, - 114, - 116, - 108, - 121, - 32, - 97, - 102, - 116, - 101, - 114, - 32, - 116, - 104, - 101, - 110, - 111, - 116, - 97, - 98, - 108, - 101, - 32, - 101, - 120, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 116, - 101, - 110, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 111, - 117, - 115, - 97, - 110, - 100, - 115, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 97, - 114, - 111, - 117, - 110, - 100, - 32, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 46, - 114, - 101, - 97, - 99, - 104, - 105, - 110, - 103, - 32, - 109, - 105, - 108, - 105, - 116, - 97, - 114, - 121, - 105, - 115, - 111, - 108, - 97, - 116, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 111, - 112, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 79, - 108, - 100, - 32, - 84, - 101, - 115, - 116, - 97, - 109, - 101, - 110, - 116, - 65, - 102, - 114, - 105, - 99, - 97, - 110, - 32, - 65, - 109, - 101, - 114, - 105, - 99, - 97, - 110, - 115, - 105, - 110, - 115, - 101, - 114, - 116, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 32, - 116, - 104, - 101, - 115, - 101, - 112, - 97, - 114, - 97, - 116, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 109, - 101, - 116, - 114, - 111, - 112, - 111, - 108, - 105, - 116, - 97, - 110, - 32, - 97, - 114, - 101, - 97, - 109, - 97, - 107, - 101, - 115, - 32, - 105, - 116, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 97, - 99, - 107, - 110, - 111, - 119, - 108, - 101, - 100, - 103, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 97, - 114, - 103, - 117, - 97, - 98, - 108, - 121, - 32, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 62, - 10, - 116, - 104, - 101, - 32, - 73, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 65, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 47, - 62, - 10, - 99, - 111, - 105, - 110, - 99, - 105, - 100, - 101, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 116, - 119, - 111, - 45, - 116, - 104, - 105, - 114, - 100, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 68, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 105, - 115, - 32, - 116, - 105, - 109, - 101, - 44, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 101, - 32, - 112, - 101, - 114, - 105, - 111, - 100, - 97, - 110, - 110, - 111, - 117, - 110, - 99, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 104, - 101, - 116, - 104, - 101, - 32, - 105, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 97, - 110, - 100, - 32, - 109, - 111, - 114, - 101, - 32, - 114, - 101, - 99, - 101, - 110, - 116, - 108, - 121, - 98, - 101, - 108, - 105, - 101, - 118, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 115, - 99, - 105, - 111, - 117, - 115, - 110, - 101, - 115, - 115, - 32, - 97, - 110, - 100, - 102, - 111, - 114, - 109, - 101, - 114, - 108, - 121, - 32, - 107, - 110, - 111, - 119, - 110, - 32, - 97, - 115, - 115, - 117, - 114, - 114, - 111, - 117, - 110, - 100, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 102, - 105, - 114, - 115, - 116, - 32, - 97, - 112, - 112, - 101, - 97, - 114, - 101, - 100, - 32, - 105, - 110, - 111, - 99, - 99, - 97, - 115, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 32, - 117, - 115, - 101, - 100, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 97, - 98, - 115, - 111, - 108, - 117, - 116, - 101, - 59, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 32, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 114, - 101, - 108, - 97, - 116, - 105, - 118, - 101, - 59, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 99, - 101, - 110, - 116, - 101, - 114, - 59, - 106, - 97, - 120, - 47, - 108, - 105, - 98, - 115, - 47, - 106, - 113, - 117, - 101, - 114, - 121, - 47, - 49, - 46, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 99, - 111, - 108, - 111, - 114, - 58, - 35, - 116, - 121, - 112, - 101, - 61, - 34, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 47, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 60, - 109, - 101, - 116, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 80, - 114, - 105, - 118, - 97, - 99, - 121, - 32, - 80, - 111, - 108, - 105, - 99, - 121, - 60, - 47, - 97, - 62, - 101, - 40, - 34, - 37, - 51, - 67, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 114, - 99, - 61, - 39, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 62, - 79, - 110, - 32, - 116, - 104, - 101, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 104, - 97, - 110, - 100, - 44, - 46, - 106, - 112, - 103, - 124, - 116, - 104, - 117, - 109, - 98, - 124, - 114, - 105, - 103, - 104, - 116, - 124, - 50, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 102, - 108, - 111, - 97, - 116, - 58, - 110, - 105, - 110, - 101, - 116, - 101, - 101, - 110, - 116, - 104, - 32, - 99, - 101, - 110, - 116, - 117, - 114, - 121, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 13, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 13, - 10, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 115, - 59, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 99, - 101, - 110, - 116, - 101, - 114, - 102, - 111, - 110, - 116, - 45, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 32, - 98, - 111, - 108, - 100, - 59, - 32, - 65, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 34, - 32, - 102, - 114, - 97, - 109, - 101, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 108, - 105, - 110, - 107, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 104, - 116, - 109, - 108, - 52, - 47, - 108, - 111, - 111, - 115, - 101, - 46, - 100, - 116, - 100, - 34, - 62, - 10, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 116, - 104, - 105, - 115, - 32, - 112, - 101, - 114, - 105, - 111, - 100, - 60, - 47, - 116, - 100, - 62, - 60, - 47, - 116, - 114, - 62, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 99, - 108, - 111, - 115, - 101, - 108, - 121, - 32, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 32, - 116, - 111, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 32, - 116, - 105, - 109, - 101, - 59, - 102, - 111, - 110, - 116, - 45, - 119, - 101, - 105, - 103, - 104, - 116, - 58, - 98, - 111, - 108, - 100, - 59, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 60, - 115, - 112, - 97, - 110, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 102, - 111, - 110, - 116, - 45, - 111, - 110, - 114, - 101, - 97, - 100, - 121, - 115, - 116, - 97, - 116, - 101, - 99, - 104, - 97, - 110, - 103, - 101, - 9, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 108, - 101, - 97, - 114, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 32, - 70, - 111, - 114, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 44, - 32, - 116, - 104, - 101, - 32, - 97, - 32, - 119, - 105, - 100, - 101, - 32, - 118, - 97, - 114, - 105, - 101, - 116, - 121, - 32, - 111, - 102, - 32, - 60, - 33, - 68, - 79, - 67, - 84, - 89, - 80, - 69, - 32, - 104, - 116, - 109, - 108, - 62, - 13, - 10, - 60, - 38, - 110, - 98, - 115, - 112, - 59, - 38, - 110, - 98, - 115, - 112, - 59, - 38, - 110, - 98, - 115, - 112, - 59, - 34, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 102, - 108, - 111, - 97, - 116, - 58, - 108, - 101, - 102, - 116, - 59, - 99, - 111, - 110, - 99, - 101, - 114, - 110, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 61, - 104, - 116, - 116, - 112, - 37, - 51, - 65, - 37, - 50, - 70, - 37, - 50, - 70, - 119, - 119, - 119, - 46, - 105, - 110, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 114, - 32, - 99, - 117, - 108, - 116, - 117, - 114, - 101, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 47, - 62, - 105, - 116, - 32, - 105, - 115, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 108, - 101, - 32, - 116, - 111, - 32, - 72, - 97, - 114, - 118, - 97, - 114, - 100, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 116, - 104, - 101, - 32, - 109, - 97, - 105, - 110, - 32, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 79, - 120, - 102, - 111, - 114, - 100, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 107, - 101, - 121, - 119, - 111, - 114, - 100, - 115, - 34, - 32, - 99, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 116, - 104, - 101, - 32, - 85, - 110, - 105, - 116, - 101, - 100, - 32, - 75, - 105, - 110, - 103, - 100, - 111, - 109, - 102, - 101, - 100, - 101, - 114, - 97, - 108, - 32, - 103, - 111, - 118, - 101, - 114, - 110, - 109, - 101, - 110, - 116, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 32, - 100, - 101, - 112, - 101, - 110, - 100, - 105, - 110, - 103, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 32, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 104, - 101, - 97, - 100, - 101, - 114, - 46, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 100, - 101, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 108, - 105, - 103, - 104, - 116, - 108, - 121, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 105, - 110, - 32, - 97, - 99, - 99, - 111, - 114, - 100, - 97, - 110, - 99, - 101, - 32, - 119, - 105, - 116, - 104, - 116, - 101, - 108, - 101, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 101, - 115, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 115, - 104, - 111, - 114, - 116, - 108, - 121, - 32, - 116, - 104, - 101, - 114, - 101, - 97, - 102, - 116, - 101, - 114, - 101, - 115, - 112, - 101, - 99, - 105, - 97, - 108, - 108, - 121, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 69, - 117, - 114, - 111, - 112, - 101, - 97, - 110, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 115, - 116, - 97, - 116, - 105, - 99, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 34, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 97, - 32, - 108, - 97, - 114, - 103, - 101, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 84, - 101, - 108, - 101, - 99, - 111, - 109, - 109, - 117, - 110, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 110, - 111, - 102, - 111, - 108, - 108, - 111, - 119, - 34, - 32, - 116, - 72, - 111, - 108, - 121, - 32, - 82, - 111, - 109, - 97, - 110, - 32, - 69, - 109, - 112, - 101, - 114, - 111, - 114, - 97, - 108, - 109, - 111, - 115, - 116, - 32, - 101, - 120, - 99, - 108, - 117, - 115, - 105, - 118, - 101, - 108, - 121, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 97, - 108, - 116, - 61, - 34, - 83, - 101, - 99, - 114, - 101, - 116, - 97, - 114, - 121, - 32, - 111, - 102, - 32, - 83, - 116, - 97, - 116, - 101, - 99, - 117, - 108, - 109, - 105, - 110, - 97, - 116, - 105, - 110, - 103, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 67, - 73, - 65, - 32, - 87, - 111, - 114, - 108, - 100, - 32, - 70, - 97, - 99, - 116, - 98, - 111, - 111, - 107, - 116, - 104, - 101, - 32, - 109, - 111, - 115, - 116, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 97, - 110, - 110, - 105, - 118, - 101, - 114, - 115, - 97, - 114, - 121, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 60, - 108, - 105, - 62, - 60, - 101, - 109, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 116, - 104, - 101, - 32, - 65, - 116, - 108, - 97, - 110, - 116, - 105, - 99, - 32, - 79, - 99, - 101, - 97, - 110, - 115, - 116, - 114, - 105, - 99, - 116, - 108, - 121, - 32, - 115, - 112, - 101, - 97, - 107, - 105, - 110, - 103, - 44, - 115, - 104, - 111, - 114, - 116, - 108, - 121, - 32, - 98, - 101, - 102, - 111, - 114, - 101, - 32, - 116, - 104, - 101, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 116, - 121, - 112, - 101, - 115, - 32, - 111, - 102, - 116, - 104, - 101, - 32, - 79, - 116, - 116, - 111, - 109, - 97, - 110, - 32, - 69, - 109, - 112, - 105, - 114, - 101, - 62, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 65, - 110, - 32, - 73, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 99, - 111, - 110, - 115, - 101, - 113, - 117, - 101, - 110, - 99, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 100, - 101, - 112, - 97, - 114, - 116, - 117, - 114, - 101, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 67, - 111, - 110, - 102, - 101, - 100, - 101, - 114, - 97, - 116, - 101, - 32, - 83, - 116, - 97, - 116, - 101, - 115, - 105, - 110, - 100, - 105, - 103, - 101, - 110, - 111, - 117, - 115, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 115, - 80, - 114, - 111, - 99, - 101, - 101, - 100, - 105, - 110, - 103, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 111, - 114, - 105, - 101, - 115, - 32, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 105, - 110, - 118, - 111, - 108, - 118, - 101, - 109, - 101, - 110, - 116, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 100, - 105, - 118, - 105, - 100, - 101, - 100, - 32, - 105, - 110, - 116, - 111, - 32, - 116, - 104, - 114, - 101, - 101, - 97, - 100, - 106, - 97, - 99, - 101, - 110, - 116, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 105, - 115, - 32, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 105, - 98, - 108, - 101, - 32, - 102, - 111, - 114, - 100, - 105, - 115, - 115, - 111, - 108, - 117, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 111, - 108, - 108, - 97, - 98, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 119, - 105, - 116, - 104, - 119, - 105, - 100, - 101, - 108, - 121, - 32, - 114, - 101, - 103, - 97, - 114, - 100, - 101, - 100, - 32, - 97, - 115, - 104, - 105, - 115, - 32, - 99, - 111, - 110, - 116, - 101, - 109, - 112, - 111, - 114, - 97, - 114, - 105, - 101, - 115, - 102, - 111, - 117, - 110, - 100, - 105, - 110, - 103, - 32, - 109, - 101, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 68, - 111, - 109, - 105, - 110, - 105, - 99, - 97, - 110, - 32, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 108, - 121, - 32, - 97, - 99, - 99, - 101, - 112, - 116, - 101, - 100, - 116, - 104, - 101, - 32, - 112, - 111, - 115, - 115, - 105, - 98, - 105, - 108, - 105, - 116, - 121, - 32, - 111, - 102, - 97, - 114, - 101, - 32, - 97, - 108, - 115, - 111, - 32, - 97, - 118, - 97, - 105, - 108, - 97, - 98, - 108, - 101, - 117, - 110, - 100, - 101, - 114, - 32, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 114, - 101, - 115, - 116, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 32, - 112, - 117, - 98, - 108, - 105, - 99, - 105, - 115, - 32, - 97, - 108, - 109, - 111, - 115, - 116, - 32, - 101, - 110, - 116, - 105, - 114, - 101, - 108, - 121, - 112, - 97, - 115, - 115, - 101, - 115, - 32, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 32, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 101, - 100, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 32, - 97, - 110, - 100, - 32, - 118, - 105, - 100, - 101, - 111, - 71, - 101, - 114, - 109, - 97, - 110, - 105, - 99, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 115, - 32, - 97, - 99, - 99, - 111, - 114, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 115, - 104, - 111, - 114, - 116, - 108, - 121, - 32, - 97, - 102, - 116, - 101, - 114, - 119, - 97, - 114, - 100, - 115, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 115, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 114, - 101, - 99, - 101, - 110, - 116, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 66, - 111, - 97, - 114, - 100, - 32, - 111, - 102, - 32, - 68, - 105, - 114, - 101, - 99, - 116, - 111, - 114, - 115, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 115, - 101, - 97, - 114, - 99, - 104, - 124, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 73, - 110, - 32, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 44, - 32, - 116, - 104, - 101, - 77, - 117, - 108, - 116, - 105, - 112, - 108, - 101, - 32, - 102, - 111, - 111, - 116, - 110, - 111, - 116, - 101, - 115, - 111, - 114, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 115, - 117, - 98, - 115, - 116, - 97, - 110, - 99, - 101, - 116, - 104, - 111, - 117, - 115, - 97, - 110, - 100, - 115, - 32, - 111, - 102, - 32, - 121, - 101, - 97, - 114, - 115, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 13, - 10, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 105, - 110, - 100, - 101, - 120, - 46, - 112, - 104, - 112, - 119, - 97, - 115, - 32, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 101, - 100, - 32, - 105, - 110, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 101, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 97, - 32, - 115, - 116, - 114, - 111, - 110, - 103, - 32, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 116, - 111, - 112, - 58, - 114, - 101, - 112, - 114, - 101, - 115, - 101, - 110, - 116, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 103, - 114, - 97, - 100, - 117, - 97, - 116, - 101, - 100, - 32, - 102, - 114, - 111, - 109, - 32, - 116, - 104, - 101, - 84, - 114, - 97, - 100, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 108, - 121, - 44, - 32, - 116, - 104, - 101, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 40, - 34, - 115, - 99, - 114, - 105, - 112, - 116, - 34, - 41, - 59, - 72, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 115, - 105, - 110, - 99, - 101, - 32, - 116, - 104, - 101, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 108, - 101, - 102, - 116, - 59, - 32, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 108, - 101, - 102, - 116, - 58, - 112, - 114, - 111, - 116, - 101, - 99, - 116, - 105, - 111, - 110, - 32, - 97, - 103, - 97, - 105, - 110, - 115, - 116, - 48, - 59, - 32, - 118, - 101, - 114, - 116, - 105, - 99, - 97, - 108, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 85, - 110, - 102, - 111, - 114, - 116, - 117, - 110, - 97, - 116, - 101, - 108, - 121, - 44, - 32, - 116, - 104, - 101, - 116, - 121, - 112, - 101, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 47, - 120, - 45, - 105, - 99, - 111, - 110, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 108, - 101, - 97, - 114, - 102, - 105, - 120, - 34, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 102, - 111, - 111, - 116, - 101, - 114, - 9, - 9, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 9, - 9, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 116, - 104, - 101, - 32, - 109, - 111, - 116, - 105, - 111, - 110, - 32, - 112, - 105, - 99, - 116, - 117, - 114, - 101, - 208, - 145, - 209, - 138, - 208, - 187, - 208, - 179, - 208, - 176, - 209, - 128, - 209, - 129, - 208, - 186, - 208, - 184, - 208, - 177, - 209, - 138, - 208, - 187, - 208, - 179, - 208, - 176, - 209, - 128, - 209, - 129, - 208, - 186, - 208, - 184, - 208, - 164, - 208, - 181, - 208, - 180, - 208, - 181, - 209, - 128, - 208, - 176, - 209, - 134, - 208, - 184, - 208, - 184, - 208, - 189, - 208, - 181, - 209, - 129, - 208, - 186, - 208, - 190, - 208, - 187, - 209, - 140, - 208, - 186, - 208, - 190, - 209, - 129, - 208, - 190, - 208, - 190, - 208, - 177, - 209, - 137, - 208, - 181, - 208, - 189, - 208, - 184, - 208, - 181, - 209, - 129, - 208, - 190, - 208, - 190, - 208, - 177, - 209, - 137, - 208, - 181, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 179, - 209, - 128, - 208, - 176, - 208, - 188, - 208, - 188, - 209, - 139, - 208, - 158, - 209, - 130, - 208, - 191, - 209, - 128, - 208, - 176, - 208, - 178, - 208, - 184, - 209, - 130, - 209, - 140, - 208, - 177, - 208, - 181, - 209, - 129, - 208, - 191, - 208, - 187, - 208, - 176, - 209, - 130, - 208, - 189, - 208, - 190, - 208, - 188, - 208, - 176, - 209, - 130, - 208, - 181, - 209, - 128, - 208, - 184, - 208, - 176, - 208, - 187, - 209, - 139, - 208, - 191, - 208, - 190, - 208, - 183, - 208, - 178, - 208, - 190, - 208, - 187, - 209, - 143, - 208, - 181, - 209, - 130, - 208, - 191, - 208, - 190, - 209, - 129, - 208, - 187, - 208, - 181, - 208, - 180, - 208, - 189, - 208, - 184, - 208, - 181, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 187, - 208, - 184, - 209, - 135, - 208, - 189, - 209, - 139, - 209, - 133, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 180, - 209, - 131, - 208, - 186, - 209, - 134, - 208, - 184, - 208, - 184, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 179, - 209, - 128, - 208, - 176, - 208, - 188, - 208, - 188, - 208, - 176, - 208, - 191, - 208, - 190, - 208, - 187, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 130, - 209, - 140, - 209, - 142, - 208, - 189, - 208, - 176, - 209, - 133, - 208, - 190, - 208, - 180, - 208, - 184, - 209, - 130, - 209, - 129, - 209, - 143, - 208, - 184, - 208, - 183, - 208, - 177, - 209, - 128, - 208, - 176, - 208, - 189, - 208, - 189, - 208, - 190, - 208, - 181, - 208, - 189, - 208, - 176, - 209, - 129, - 208, - 181, - 208, - 187, - 208, - 181, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 184, - 208, - 183, - 208, - 188, - 208, - 181, - 208, - 189, - 208, - 181, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 186, - 208, - 176, - 209, - 130, - 208, - 181, - 208, - 179, - 208, - 190, - 209, - 128, - 208, - 184, - 208, - 184, - 208, - 144, - 208, - 187, - 208, - 181, - 208, - 186, - 209, - 129, - 208, - 176, - 208, - 189, - 208, - 180, - 209, - 128, - 224, - 164, - 166, - 224, - 165, - 141, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 165, - 136, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 133, - 224, - 164, - 178, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 166, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 175, - 224, - 164, - 133, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 185, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 165, - 141, - 224, - 164, - 166, - 224, - 165, - 128, - 224, - 164, - 135, - 224, - 164, - 130, - 224, - 164, - 161, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 191, - 224, - 164, - 178, - 224, - 165, - 141, - 224, - 164, - 178, - 224, - 165, - 128, - 224, - 164, - 133, - 224, - 164, - 167, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 181, - 224, - 165, - 128, - 224, - 164, - 161, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 154, - 224, - 164, - 191, - 224, - 164, - 159, - 224, - 165, - 141, - 224, - 164, - 160, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 154, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 156, - 224, - 164, - 130, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 182, - 224, - 164, - 168, - 224, - 164, - 166, - 224, - 165, - 129, - 224, - 164, - 168, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 151, - 224, - 164, - 133, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 145, - 224, - 164, - 168, - 224, - 164, - 178, - 224, - 164, - 190, - 224, - 164, - 135, - 224, - 164, - 168, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 159, - 224, - 165, - 128, - 224, - 164, - 182, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 178, - 224, - 165, - 139, - 224, - 164, - 149, - 224, - 164, - 184, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 171, - 224, - 164, - 188, - 224, - 165, - 141, - 224, - 164, - 178, - 224, - 165, - 136, - 224, - 164, - 182, - 224, - 164, - 182, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 178, - 224, - 165, - 135, - 224, - 164, - 175, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 166, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 191, - 224, - 164, - 137, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 170, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 165, - 141, - 224, - 164, - 185, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 154, - 224, - 164, - 191, - 224, - 164, - 159, - 224, - 165, - 141, - 224, - 164, - 160, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 156, - 224, - 165, - 139, - 224, - 164, - 161, - 224, - 164, - 188, - 224, - 165, - 135, - 224, - 164, - 130, - 224, - 164, - 133, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 166, - 224, - 164, - 182, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 163, - 224, - 165, - 128, - 224, - 164, - 182, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 183, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 185, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 164, - 191, - 224, - 164, - 163, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 172, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 161, - 224, - 164, - 172, - 224, - 164, - 154, - 224, - 165, - 141, - 224, - 164, - 154, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 137, - 224, - 164, - 170, - 224, - 164, - 178, - 224, - 164, - 172, - 224, - 165, - 141, - 224, - 164, - 167, - 224, - 164, - 174, - 224, - 164, - 130, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 149, - 224, - 164, - 137, - 224, - 164, - 174, - 224, - 165, - 141, - 224, - 164, - 174, - 224, - 165, - 128, - 224, - 164, - 166, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 167, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 174, - 224, - 164, - 184, - 224, - 164, - 185, - 224, - 164, - 190, - 224, - 164, - 175, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 182, - 224, - 164, - 172, - 224, - 165, - 141, - 224, - 164, - 166, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 174, - 224, - 165, - 128, - 224, - 164, - 161, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 134, - 224, - 164, - 136, - 224, - 164, - 170, - 224, - 165, - 128, - 224, - 164, - 143, - 224, - 164, - 178, - 224, - 164, - 174, - 224, - 165, - 139, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 135, - 224, - 164, - 178, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 150, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 134, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 168, - 224, - 164, - 133, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 172, - 224, - 164, - 130, - 224, - 164, - 167, - 224, - 164, - 172, - 224, - 164, - 190, - 224, - 164, - 156, - 224, - 164, - 188, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 164, - 181, - 224, - 165, - 128, - 224, - 164, - 168, - 224, - 164, - 164, - 224, - 164, - 174, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 174, - 224, - 165, - 129, - 224, - 164, - 150, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 182, - 224, - 165, - 141, - 224, - 164, - 168, - 224, - 164, - 170, - 224, - 164, - 176, - 224, - 164, - 191, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 165, - 129, - 224, - 164, - 149, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 184, - 224, - 164, - 174, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 168, - 224, - 164, - 134, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 156, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 184, - 224, - 165, - 139, - 224, - 164, - 174, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 176, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 180, - 216, - 167, - 216, - 177, - 217, - 131, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 133, - 217, - 134, - 216, - 170, - 216, - 175, - 217, - 138, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 131, - 217, - 133, - 216, - 168, - 217, - 138, - 217, - 136, - 216, - 170, - 216, - 177, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 180, - 216, - 167, - 217, - 135, - 216, - 175, - 216, - 167, - 216, - 170, - 216, - 185, - 216, - 175, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 178, - 217, - 136, - 216, - 167, - 216, - 177, - 216, - 185, - 216, - 175, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 177, - 216, - 175, - 217, - 136, - 216, - 175, - 216, - 167, - 217, - 132, - 216, - 165, - 216, - 179, - 217, - 132, - 216, - 167, - 217, - 133, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 217, - 129, - 217, - 136, - 216, - 170, - 217, - 136, - 216, - 180, - 217, - 136, - 216, - 168, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 179, - 216, - 167, - 216, - 168, - 217, - 130, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 185, - 217, - 132, - 217, - 136, - 217, - 133, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 179, - 217, - 132, - 216, - 179, - 217, - 132, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 172, - 216, - 177, - 216, - 167, - 217, - 129, - 217, - 138, - 217, - 131, - 216, - 179, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 179, - 217, - 132, - 216, - 167, - 217, - 133, - 217, - 138, - 216, - 169, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 170, - 216, - 181, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 170, - 107, - 101, - 121, - 119, - 111, - 114, - 100, - 115, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 119, - 51, - 46, - 111, - 114, - 103, - 47, - 49, - 57, - 57, - 57, - 47, - 120, - 104, - 116, - 109, - 108, - 34, - 62, - 60, - 97, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 32, - 116, - 101, - 120, - 116, - 47, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 62, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 61, - 34, - 97, - 117, - 116, - 111, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 61, - 34, - 111, - 102, - 102, - 34, - 32, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 32, - 99, - 101, - 110, - 116, - 101, - 114, - 59, - 116, - 111, - 32, - 108, - 97, - 115, - 116, - 32, - 118, - 101, - 114, - 115, - 105, - 111, - 110, - 32, - 98, - 121, - 32, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 99, - 111, - 108, - 111, - 114, - 58, - 32, - 35, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 105, - 100, - 61, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 35, - 34, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 34, - 62, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 47, - 47, - 69, - 78, - 34, - 32, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 119, - 101, - 110, - 99, - 111, - 100, - 101, - 85, - 82, - 73, - 67, - 111, - 109, - 112, - 111, - 110, - 101, - 110, - 116, - 40, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 58, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 119, - 114, - 105, - 116, - 101, - 40, - 39, - 60, - 115, - 99, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 32, - 97, - 98, - 115, - 111, - 108, - 117, - 116, - 101, - 59, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 109, - 97, - 114, - 103, - 105, - 110, - 45, - 116, - 111, - 112, - 58, - 46, - 109, - 105, - 110, - 46, - 106, - 115, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 119, - 51, - 46, - 111, - 114, - 103, - 47, - 49, - 57, - 57, - 57, - 47, - 120, - 104, - 116, - 109, - 108, - 34, - 32, - 10, - 13, - 10, - 60, - 47, - 98, - 111, - 100, - 121, - 62, - 13, - 10, - 60, - 47, - 104, - 116, - 109, - 108, - 62, - 100, - 105, - 115, - 116, - 105, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 47, - 34, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 62, - 60, - 108, - 105, - 110, - 107, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 101, - 110, - 99, - 111, - 100, - 105, - 110, - 103, - 61, - 34, - 117, - 116, - 102, - 45, - 56, - 34, - 63, - 62, - 10, - 119, - 46, - 97, - 100, - 100, - 69, - 118, - 101, - 110, - 116, - 76, - 105, - 115, - 116, - 101, - 110, - 101, - 114, - 63, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 105, - 99, - 111, - 110, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 58, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 47, - 62, - 10, - 109, - 101, - 116, - 97, - 32, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 121, - 61, - 34, - 111, - 103, - 58, - 116, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 45, - 97, - 108, - 105, - 103, - 110, - 58, - 116, - 104, - 101, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 117, - 116, - 102, - 45, - 56, - 105, - 115, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 98, - 101, - 116, - 97, - 98, - 108, - 101, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 48, - 48, - 37, - 34, - 32, - 73, - 110, - 32, - 97, - 100, - 100, - 105, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 99, - 111, - 110, - 116, - 114, - 105, - 98, - 117, - 116, - 101, - 100, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 99, - 101, - 115, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 73, - 116, - 32, - 105, - 115, - 32, - 105, - 109, - 112, - 111, - 114, - 116, - 97, - 110, - 116, - 32, - 116, - 111, - 32, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 102, - 111, - 110, - 116, - 45, - 115, - 105, - 122, - 101, - 58, - 49, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 105, - 100, - 61, - 103, - 98, - 76, - 105, - 98, - 114, - 97, - 114, - 121, - 32, - 111, - 102, - 32, - 67, - 111, - 110, - 103, - 114, - 101, - 115, - 115, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 105, - 109, - 69, - 110, - 103, - 108, - 105, - 115, - 104, - 32, - 116, - 114, - 97, - 110, - 115, - 108, - 97, - 116, - 105, - 111, - 110, - 65, - 99, - 97, - 100, - 101, - 109, - 121, - 32, - 111, - 102, - 32, - 83, - 99, - 105, - 101, - 110, - 99, - 101, - 115, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 99, - 111, - 110, - 115, - 116, - 114, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 66, - 121, - 73, - 100, - 40, - 105, - 100, - 41, - 105, - 110, - 32, - 99, - 111, - 110, - 106, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 32, - 119, - 105, - 116, - 104, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 40, - 39, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 41, - 59, - 32, - 60, - 109, - 101, - 116, - 97, - 32, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 121, - 61, - 34, - 111, - 103, - 58, - 208, - 145, - 209, - 138, - 208, - 187, - 208, - 179, - 208, - 176, - 209, - 128, - 209, - 129, - 208, - 186, - 208, - 184, - 10, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 62, - 80, - 114, - 105, - 118, - 97, - 99, - 121, - 32, - 80, - 111, - 108, - 105, - 99, - 121, - 60, - 47, - 97, - 62, - 97, - 100, - 109, - 105, - 110, - 105, - 115, - 116, - 101, - 114, - 101, - 100, - 32, - 98, - 121, - 32, - 116, - 104, - 101, - 101, - 110, - 97, - 98, - 108, - 101, - 83, - 105, - 110, - 103, - 108, - 101, - 82, - 101, - 113, - 117, - 101, - 115, - 116, - 115, - 116, - 121, - 108, - 101, - 61, - 38, - 113, - 117, - 111, - 116, - 59, - 109, - 97, - 114, - 103, - 105, - 110, - 58, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 62, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 105, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 38, - 113, - 117, - 111, - 116, - 59, - 102, - 108, - 111, - 97, - 116, - 58, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 97, - 115, - 32, - 116, - 104, - 101, - 32, - 116, - 111, - 116, - 97, - 108, - 32, - 112, - 111, - 112, - 117, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 110, - 32, - 87, - 97, - 115, - 104, - 105, - 110, - 103, - 116, - 111, - 110, - 44, - 32, - 68, - 46, - 67, - 46, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 97, - 109, - 111, - 110, - 103, - 32, - 111, - 116, - 104, - 101, - 114, - 32, - 116, - 104, - 105, - 110, - 103, - 115, - 44, - 111, - 114, - 103, - 97, - 110, - 105, - 122, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 101, - 100, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 105, - 110, - 116, - 114, - 111, - 100, - 117, - 99, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 105, - 100, - 101, - 110, - 116, - 105, - 102, - 105, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 102, - 105, - 99, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 99, - 104, - 97, - 114, - 97, - 99, - 116, - 101, - 114, - 32, - 79, - 120, - 102, - 111, - 114, - 100, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 32, - 109, - 105, - 115, - 117, - 110, - 100, - 101, - 114, - 115, - 116, - 97, - 110, - 100, - 105, - 110, - 103, - 32, - 111, - 102, - 84, - 104, - 101, - 114, - 101, - 32, - 97, - 114, - 101, - 44, - 32, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 47, - 67, - 111, - 108, - 117, - 109, - 98, - 105, - 97, - 32, - 85, - 110, - 105, - 118, - 101, - 114, - 115, - 105, - 116, - 121, - 101, - 120, - 112, - 97, - 110, - 100, - 101, - 100, - 32, - 116, - 111, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 117, - 115, - 117, - 97, - 108, - 108, - 121, - 32, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 105, - 110, - 100, - 105, - 99, - 97, - 116, - 105, - 110, - 103, - 32, - 116, - 104, - 97, - 116, - 32, - 116, - 104, - 101, - 104, - 97, - 118, - 101, - 32, - 115, - 117, - 103, - 103, - 101, - 115, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 97, - 102, - 102, - 105, - 108, - 105, - 97, - 116, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 99, - 111, - 114, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 110, - 117, - 109, - 98, - 101, - 114, - 32, - 111, - 102, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 62, - 60, - 47, - 116, - 100, - 62, - 60, - 47, - 116, - 114, - 62, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 32, - 111, - 102, - 32, - 73, - 114, - 101, - 108, - 97, - 110, - 100, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 117, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 105, - 110, - 102, - 108, - 117, - 101, - 110, - 99, - 101, - 99, - 111, - 110, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 79, - 102, - 102, - 105, - 99, - 105, - 97, - 108, - 32, - 119, - 101, - 98, - 115, - 105, - 116, - 101, - 32, - 111, - 102, - 104, - 101, - 97, - 100, - 113, - 117, - 97, - 114, - 116, - 101, - 114, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 99, - 101, - 110, - 116, - 101, - 114, - 101, - 100, - 32, - 97, - 114, - 111, - 117, - 110, - 100, - 32, - 116, - 104, - 101, - 105, - 109, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 104, - 97, - 118, - 101, - 32, - 98, - 101, - 101, - 110, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 70, - 101, - 100, - 101, - 114, - 97, - 108, - 32, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 32, - 111, - 102, - 98, - 101, - 99, - 97, - 109, - 101, - 32, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 105, - 110, - 103, - 108, - 121, - 99, - 111, - 110, - 116, - 105, - 110, - 117, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 78, - 111, - 116, - 101, - 44, - 32, - 104, - 111, - 119, - 101, - 118, - 101, - 114, - 44, - 32, - 116, - 104, - 97, - 116, - 115, - 105, - 109, - 105, - 108, - 97, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 97, - 116, - 32, - 111, - 102, - 32, - 99, - 97, - 112, - 97, - 98, - 105, - 108, - 105, - 116, - 105, - 101, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 97, - 99, - 99, - 111, - 114, - 100, - 97, - 110, - 99, - 101, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 110, - 116, - 115, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 102, - 117, - 114, - 116, - 104, - 101, - 114, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 117, - 110, - 100, - 101, - 114, - 32, - 116, - 104, - 101, - 32, - 100, - 105, - 114, - 101, - 99, - 116, - 105, - 111, - 110, - 105, - 115, - 32, - 111, - 102, - 116, - 101, - 110, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 104, - 105, - 115, - 32, - 121, - 111, - 117, - 110, - 103, - 101, - 114, - 32, - 98, - 114, - 111, - 116, - 104, - 101, - 114, - 60, - 47, - 116, - 100, - 62, - 60, - 47, - 116, - 114, - 62, - 60, - 47, - 116, - 97, - 98, - 108, - 101, - 62, - 60, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 88, - 45, - 85, - 65, - 45, - 112, - 104, - 121, - 115, - 105, - 99, - 97, - 108, - 32, - 112, - 114, - 111, - 112, - 101, - 114, - 116, - 105, - 101, - 115, - 111, - 102, - 32, - 66, - 114, - 105, - 116, - 105, - 115, - 104, - 32, - 67, - 111, - 108, - 117, - 109, - 98, - 105, - 97, - 104, - 97, - 115, - 32, - 98, - 101, - 101, - 110, - 32, - 99, - 114, - 105, - 116, - 105, - 99, - 105, - 122, - 101, - 100, - 40, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 101, - 120, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 113, - 117, - 101, - 115, - 116, - 105, - 111, - 110, - 115, - 32, - 97, - 98, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 112, - 97, - 115, - 115, - 105, - 110, - 103, - 32, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 32, - 116, - 104, - 101, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 32, - 116, - 104, - 111, - 117, - 115, - 97, - 110, - 100, - 115, - 32, - 111, - 102, - 32, - 112, - 101, - 111, - 112, - 108, - 101, - 114, - 101, - 100, - 105, - 114, - 101, - 99, - 116, - 115, - 32, - 104, - 101, - 114, - 101, - 46, - 32, - 70, - 111, - 114, - 104, - 97, - 118, - 101, - 32, - 99, - 104, - 105, - 108, - 100, - 114, - 101, - 110, - 32, - 117, - 110, - 100, - 101, - 114, - 37, - 51, - 69, - 37, - 51, - 67, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 37, - 51, - 69, - 34, - 41, - 41, - 59, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 115, - 105, - 116, - 101, - 95, - 110, - 97, - 109, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 116, - 101, - 120, - 116, - 45, - 100, - 101, - 99, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 58, - 110, - 111, - 110, - 101, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 32, - 110, - 111, - 110, - 101, - 60, - 109, - 101, - 116, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 88, - 45, - 110, - 101, - 119, - 32, - 68, - 97, - 116, - 101, - 40, - 41, - 46, - 103, - 101, - 116, - 84, - 105, - 109, - 101, - 40, - 41, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 47, - 120, - 45, - 105, - 99, - 111, - 110, - 34, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 119, - 105, - 110, - 100, - 111, - 119, - 46, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 104, - 114, - 101, - 102, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 58, - 45, - 45, - 62, - 13, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 39, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 104, - 111, - 114, - 116, - 99, - 117, - 116, - 32, - 105, - 99, - 111, - 110, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 60, - 47, - 100, - 105, - 118, - 62, - 13, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 116, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 47, - 97, - 62, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 32, - 97, - 108, - 108, - 111, - 119, - 84, - 114, - 97, - 110, - 115, - 112, - 97, - 114, - 101, - 110, - 99, - 121, - 61, - 34, - 88, - 45, - 85, - 65, - 45, - 67, - 111, - 109, - 112, - 97, - 116, - 105, - 98, - 108, - 101, - 34, - 32, - 99, - 111, - 110, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 104, - 105, - 112, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 47, - 117, - 108, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 101, - 100, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 105, - 110, - 103, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 60, - 47, - 97, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 102, - 111, - 114, - 109, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 60, - 100, - 105, - 118, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 113, - 34, - 60, - 116, - 97, - 98, - 108, - 101, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 48, - 48, - 37, - 34, - 32, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 112, - 111, - 115, - 105, - 116, - 105, - 111, - 110, - 58, - 34, - 32, - 98, - 111, - 114, - 100, - 101, - 114, - 61, - 34, - 48, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 114, - 101, - 108, - 61, - 34, - 115, - 104, - 111, - 114, - 116, - 99, - 117, - 116, - 32, - 105, - 99, - 111, - 110, - 34, - 32, - 104, - 54, - 62, - 60, - 117, - 108, - 62, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 32, - 32, - 60, - 109, - 101, - 116, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 99, - 115, - 115, - 34, - 32, - 109, - 101, - 100, - 105, - 97, - 61, - 34, - 115, - 99, - 114, - 101, - 101, - 110, - 34, - 32, - 114, - 101, - 115, - 112, - 111, - 110, - 115, - 105, - 98, - 108, - 101, - 32, - 102, - 111, - 114, - 32, - 116, - 104, - 101, - 32, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 97, - 112, - 112, - 108, - 105, - 99, - 97, - 116, - 105, - 111, - 110, - 47, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 117, - 116, - 102, - 45, - 56, - 34, - 32, - 97, - 108, - 108, - 111, - 119, - 116, - 114, - 97, - 110, - 115, - 112, - 97, - 114, - 101, - 110, - 99, - 121, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 13, - 10, - 60, - 109, - 101, - 116, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 62, - 60, - 47, - 115, - 112, - 97, - 110, - 62, - 60, - 115, - 112, - 97, - 110, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 62, - 59, - 10, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 111, - 109, - 101, - 116, - 105, - 109, - 101, - 115, - 32, - 99, - 97, - 108, - 108, - 101, - 100, - 32, - 116, - 104, - 101, - 100, - 111, - 101, - 115, - 32, - 110, - 111, - 116, - 32, - 110, - 101, - 99, - 101, - 115, - 115, - 97, - 114, - 105, - 108, - 121, - 70, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 32, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 97, - 116, - 32, - 116, - 104, - 101, - 32, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 111, - 102, - 32, - 60, - 33, - 68, - 79, - 67, - 84, - 89, - 80, - 69, - 32, - 104, - 116, - 109, - 108, - 62, - 60, - 104, - 116, - 109, - 108, - 112, - 97, - 114, - 116, - 105, - 99, - 117, - 108, - 97, - 114, - 108, - 121, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 58, - 118, - 111, - 105, - 100, - 40, - 48, - 41, - 59, - 34, - 101, - 102, - 102, - 101, - 99, - 116, - 105, - 118, - 101, - 110, - 101, - 115, - 115, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 97, - 117, - 116, - 111, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 61, - 34, - 111, - 102, - 102, - 34, - 32, - 103, - 101, - 110, - 101, - 114, - 97, - 108, - 108, - 121, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 62, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 34, - 62, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 13, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 116, - 104, - 114, - 111, - 117, - 103, - 104, - 111, - 117, - 116, - 32, - 116, - 104, - 101, - 32, - 119, - 111, - 114, - 108, - 100, - 99, - 111, - 109, - 109, - 111, - 110, - 32, - 109, - 105, - 115, - 99, - 111, - 110, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 97, - 115, - 115, - 111, - 99, - 105, - 97, - 116, - 105, - 111, - 110, - 32, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 100, - 117, - 114, - 105, - 110, - 103, - 32, - 104, - 105, - 115, - 32, - 108, - 105, - 102, - 101, - 116, - 105, - 109, - 101, - 44, - 99, - 111, - 114, - 114, - 101, - 115, - 112, - 111, - 110, - 100, - 105, - 110, - 103, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 116, - 121, - 112, - 101, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 47, - 120, - 45, - 105, - 99, - 111, - 110, - 34, - 32, - 97, - 110, - 32, - 105, - 110, - 99, - 114, - 101, - 97, - 115, - 105, - 110, - 103, - 32, - 110, - 117, - 109, - 98, - 101, - 114, - 100, - 105, - 112, - 108, - 111, - 109, - 97, - 116, - 105, - 99, - 32, - 114, - 101, - 108, - 97, - 116, - 105, - 111, - 110, - 115, - 97, - 114, - 101, - 32, - 111, - 102, - 116, - 101, - 110, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 109, - 101, - 116, - 97, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 34, - 117, - 116, - 102, - 45, - 56, - 34, - 32, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 101, - 120, - 97, - 109, - 112, - 108, - 101, - 115, - 32, - 105, - 110, - 99, - 108, - 117, - 100, - 101, - 32, - 116, - 104, - 101, - 34, - 62, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 105, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 105, - 111, - 110, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 116, - 104, - 101, - 32, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 38, - 97, - 109, - 112, - 59, - 110, - 98, - 115, - 112, - 59, - 38, - 97, - 109, - 112, - 59, - 110, - 98, - 115, - 112, - 59, - 116, - 111, - 32, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 101, - 32, - 119, - 104, - 101, - 116, - 104, - 101, - 114, - 113, - 117, - 105, - 116, - 101, - 32, - 100, - 105, - 102, - 102, - 101, - 114, - 101, - 110, - 116, - 32, - 102, - 114, - 111, - 109, - 109, - 97, - 114, - 107, - 101, - 100, - 32, - 116, - 104, - 101, - 32, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 100, - 105, - 115, - 116, - 97, - 110, - 99, - 101, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 116, - 114, - 105, - 98, - 117, - 116, - 105, - 111, - 110, - 115, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 99, - 111, - 110, - 102, - 108, - 105, - 99, - 116, - 32, - 98, - 101, - 116, - 119, - 101, - 101, - 110, - 32, - 116, - 104, - 101, - 119, - 105, - 100, - 101, - 108, - 121, - 32, - 99, - 111, - 110, - 115, - 105, - 100, - 101, - 114, - 101, - 100, - 32, - 116, - 111, - 119, - 97, - 115, - 32, - 111, - 110, - 101, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 102, - 105, - 114, - 115, - 116, - 119, - 105, - 116, - 104, - 32, - 118, - 97, - 114, - 121, - 105, - 110, - 103, - 32, - 100, - 101, - 103, - 114, - 101, - 101, - 115, - 104, - 97, - 118, - 101, - 32, - 115, - 112, - 101, - 99, - 117, - 108, - 97, - 116, - 101, - 100, - 32, - 116, - 104, - 97, - 116, - 40, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 112, - 97, - 114, - 116, - 105, - 99, - 105, - 112, - 97, - 116, - 105, - 110, - 103, - 32, - 105, - 110, - 32, - 116, - 104, - 101, - 111, - 114, - 105, - 103, - 105, - 110, - 97, - 108, - 108, - 121, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 101, - 100, - 101, - 116, - 97, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 34, - 117, - 116, - 102, - 45, - 56, - 34, - 62, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 47, - 62, - 10, - 105, - 110, - 116, - 101, - 114, - 99, - 104, - 97, - 110, - 103, - 101, - 97, - 98, - 108, - 121, - 32, - 119, - 105, - 116, - 104, - 109, - 111, - 114, - 101, - 32, - 99, - 108, - 111, - 115, - 101, - 108, - 121, - 32, - 114, - 101, - 108, - 97, - 116, - 101, - 100, - 115, - 111, - 99, - 105, - 97, - 108, - 32, - 97, - 110, - 100, - 32, - 112, - 111, - 108, - 105, - 116, - 105, - 99, - 97, - 108, - 116, - 104, - 97, - 116, - 32, - 119, - 111, - 117, - 108, - 100, - 32, - 111, - 116, - 104, - 101, - 114, - 119, - 105, - 115, - 101, - 112, - 101, - 114, - 112, - 101, - 110, - 100, - 105, - 99, - 117, - 108, - 97, - 114, - 32, - 116, - 111, - 32, - 116, - 104, - 101, - 115, - 116, - 121, - 108, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 116, - 121, - 112, - 101, - 61, - 34, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 102, - 97, - 109, - 105, - 108, - 105, - 101, - 115, - 32, - 114, - 101, - 115, - 105, - 100, - 105, - 110, - 103, - 32, - 105, - 110, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 105, - 110, - 103, - 32, - 99, - 111, - 117, - 110, - 116, - 114, - 105, - 101, - 115, - 99, - 111, - 109, - 112, - 117, - 116, - 101, - 114, - 32, - 112, - 114, - 111, - 103, - 114, - 97, - 109, - 109, - 105, - 110, - 103, - 101, - 99, - 111, - 110, - 111, - 109, - 105, - 99, - 32, - 100, - 101, - 118, - 101, - 108, - 111, - 112, - 109, - 101, - 110, - 116, - 100, - 101, - 116, - 101, - 114, - 109, - 105, - 110, - 97, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 102, - 111, - 114, - 32, - 109, - 111, - 114, - 101, - 32, - 105, - 110, - 102, - 111, - 114, - 109, - 97, - 116, - 105, - 111, - 110, - 111, - 110, - 32, - 115, - 101, - 118, - 101, - 114, - 97, - 108, - 32, - 111, - 99, - 99, - 97, - 115, - 105, - 111, - 110, - 115, - 112, - 111, - 114, - 116, - 117, - 103, - 117, - 195, - 170, - 115, - 32, - 40, - 69, - 117, - 114, - 111, - 112, - 101, - 117, - 41, - 208, - 163, - 208, - 186, - 209, - 128, - 208, - 176, - 209, - 151, - 208, - 189, - 209, - 129, - 209, - 140, - 208, - 186, - 208, - 176, - 209, - 131, - 208, - 186, - 209, - 128, - 208, - 176, - 209, - 151, - 208, - 189, - 209, - 129, - 209, - 140, - 208, - 186, - 208, - 176, - 208, - 160, - 208, - 190, - 209, - 129, - 209, - 129, - 208, - 184, - 208, - 185, - 209, - 129, - 208, - 186, - 208, - 190, - 208, - 185, - 208, - 188, - 208, - 176, - 209, - 130, - 208, - 181, - 209, - 128, - 208, - 184, - 208, - 176, - 208, - 187, - 208, - 190, - 208, - 178, - 208, - 184, - 208, - 189, - 209, - 132, - 208, - 190, - 209, - 128, - 208, - 188, - 208, - 176, - 209, - 134, - 208, - 184, - 208, - 184, - 209, - 131, - 208, - 191, - 209, - 128, - 208, - 176, - 208, - 178, - 208, - 187, - 208, - 181, - 208, - 189, - 208, - 184, - 209, - 143, - 208, - 189, - 208, - 181, - 208, - 190, - 208, - 177, - 209, - 133, - 208, - 190, - 208, - 180, - 208, - 184, - 208, - 188, - 208, - 190, - 208, - 184, - 208, - 189, - 209, - 132, - 208, - 190, - 209, - 128, - 208, - 188, - 208, - 176, - 209, - 134, - 208, - 184, - 209, - 143, - 208, - 152, - 208, - 189, - 209, - 132, - 208, - 190, - 209, - 128, - 208, - 188, - 208, - 176, - 209, - 134, - 208, - 184, - 209, - 143, - 208, - 160, - 208, - 181, - 209, - 129, - 208, - 191, - 209, - 131, - 208, - 177, - 208, - 187, - 208, - 184, - 208, - 186, - 208, - 184, - 208, - 186, - 208, - 190, - 208, - 187, - 208, - 184, - 209, - 135, - 208, - 181, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 190, - 208, - 184, - 208, - 189, - 209, - 132, - 208, - 190, - 209, - 128, - 208, - 188, - 208, - 176, - 209, - 134, - 208, - 184, - 209, - 142, - 209, - 130, - 208, - 181, - 209, - 128, - 209, - 128, - 208, - 184, - 209, - 130, - 208, - 190, - 209, - 128, - 208, - 184, - 208, - 184, - 208, - 180, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 176, - 209, - 130, - 208, - 190, - 209, - 135, - 208, - 189, - 208, - 190, - 216, - 167, - 217, - 132, - 217, - 133, - 216, - 170, - 217, - 136, - 216, - 167, - 216, - 172, - 216, - 175, - 217, - 136, - 217, - 134, - 216, - 167, - 217, - 132, - 216, - 167, - 216, - 180, - 216, - 170, - 216, - 177, - 216, - 167, - 217, - 131, - 216, - 167, - 216, - 170, - 216, - 167, - 217, - 132, - 216, - 167, - 217, - 130, - 216, - 170, - 216, - 177, - 216, - 167, - 216, - 173, - 216, - 167, - 216, - 170, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 85, - 84, - 70, - 45, - 56, - 34, - 32, - 115, - 101, - 116, - 84, - 105, - 109, - 101, - 111, - 117, - 116, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 105, - 110, - 108, - 105, - 110, - 101, - 45, - 98, - 108, - 111, - 99, - 107, - 59, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 115, - 117, - 98, - 109, - 105, - 116, - 34, - 32, - 116, - 121, - 112, - 101, - 32, - 61, - 32, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 60, - 105, - 109, - 103, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 34, - 32, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 119, - 51, - 46, - 111, - 114, - 103, - 47, - 115, - 104, - 111, - 114, - 116, - 99, - 117, - 116, - 32, - 105, - 99, - 111, - 110, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 34, - 32, - 97, - 117, - 116, - 111, - 99, - 111, - 109, - 112, - 108, - 101, - 116, - 101, - 61, - 34, - 111, - 102, - 102, - 34, - 32, - 60, - 47, - 97, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 10, - 60, - 108, - 105, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 34, - 99, - 115, - 115, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 60, - 102, - 111, - 114, - 109, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 101, - 34, - 32, - 13, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 32, - 111, - 110, - 99, - 108, - 105, - 99, - 107, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 58, - 40, - 110, - 101, - 119, - 32, - 68, - 97, - 116, - 101, - 41, - 46, - 103, - 101, - 116, - 84, - 105, - 109, - 101, - 40, - 41, - 125, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 34, - 32, - 80, - 101, - 111, - 112, - 108, - 101, - 39, - 115, - 32, - 82, - 101, - 112, - 117, - 98, - 108, - 105, - 99, - 32, - 111, - 102, - 32, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 116, - 101, - 120, - 116, - 45, - 100, - 101, - 99, - 111, - 114, - 97, - 116, - 105, - 111, - 110, - 58, - 117, - 110, - 100, - 101, - 114, - 116, - 104, - 101, - 32, - 98, - 101, - 103, - 105, - 110, - 110, - 105, - 110, - 103, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 60, - 47, - 100, - 105, - 118, - 62, - 10, - 101, - 115, - 116, - 97, - 98, - 108, - 105, - 115, - 104, - 109, - 101, - 110, - 116, - 32, - 111, - 102, - 32, - 116, - 104, - 101, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 35, - 118, - 105, - 101, - 119, - 112, - 111, - 114, - 116, - 123, - 109, - 105, - 110, - 45, - 104, - 101, - 105, - 103, - 104, - 116, - 58, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 115, - 114, - 99, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 111, - 112, - 116, - 105, - 111, - 110, - 62, - 60, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 111, - 102, - 116, - 101, - 110, - 32, - 114, - 101, - 102, - 101, - 114, - 114, - 101, - 100, - 32, - 116, - 111, - 32, - 97, - 115, - 32, - 47, - 111, - 112, - 116, - 105, - 111, - 110, - 62, - 10, - 60, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 118, - 97, - 108, - 117, - 60, - 33, - 68, - 79, - 67, - 84, - 89, - 80, - 69, - 32, - 104, - 116, - 109, - 108, - 62, - 10, - 60, - 33, - 45, - 45, - 91, - 73, - 110, - 116, - 101, - 114, - 110, - 97, - 116, - 105, - 111, - 110, - 97, - 108, - 32, - 65, - 105, - 114, - 112, - 111, - 114, - 116, - 62, - 10, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 60, - 47, - 97, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 224, - 184, - 160, - 224, - 184, - 178, - 224, - 184, - 169, - 224, - 184, - 178, - 224, - 185, - 132, - 224, - 184, - 151, - 224, - 184, - 162, - 225, - 131, - 165, - 225, - 131, - 144, - 225, - 131, - 160, - 225, - 131, - 151, - 225, - 131, - 163, - 225, - 131, - 154, - 225, - 131, - 152, - 230, - 173, - 163, - 233, - 171, - 148, - 228, - 184, - 173, - 230, - 150, - 135, - 32, - 40, - 231, - 185, - 129, - 233, - 171, - 148, - 41, - 224, - 164, - 168, - 224, - 164, - 191, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 166, - 224, - 165, - 135, - 224, - 164, - 182, - 224, - 164, - 161, - 224, - 164, - 190, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 164, - 178, - 224, - 165, - 139, - 224, - 164, - 161, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 183, - 224, - 165, - 135, - 224, - 164, - 164, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 156, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 172, - 224, - 164, - 130, - 224, - 164, - 167, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 165, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 164, - 190, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 181, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 184, - 224, - 164, - 130, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 149, - 224, - 164, - 176, - 224, - 164, - 163, - 224, - 164, - 184, - 224, - 164, - 190, - 224, - 164, - 174, - 224, - 164, - 151, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 128, - 224, - 164, - 154, - 224, - 164, - 191, - 224, - 164, - 159, - 224, - 165, - 141, - 224, - 164, - 160, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 156, - 224, - 165, - 141, - 224, - 164, - 158, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 133, - 224, - 164, - 174, - 224, - 165, - 135, - 224, - 164, - 176, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 173, - 224, - 164, - 191, - 224, - 164, - 168, - 224, - 165, - 141, - 224, - 164, - 168, - 224, - 164, - 151, - 224, - 164, - 190, - 224, - 164, - 161, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 190, - 224, - 164, - 129, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 175, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 149, - 224, - 164, - 191, - 224, - 164, - 184, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 183, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 185, - 224, - 165, - 129, - 224, - 164, - 129, - 224, - 164, - 154, - 224, - 164, - 164, - 224, - 165, - 128, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 172, - 224, - 164, - 130, - 224, - 164, - 167, - 224, - 164, - 168, - 224, - 164, - 159, - 224, - 164, - 191, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 170, - 224, - 164, - 163, - 224, - 165, - 128, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 165, - 135, - 224, - 164, - 159, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 130, - 224, - 164, - 173, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 176, - 224, - 164, - 171, - 224, - 164, - 188, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 164, - 168, - 224, - 164, - 191, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 174, - 224, - 164, - 190, - 224, - 164, - 163, - 224, - 164, - 178, - 224, - 164, - 191, - 224, - 164, - 174, - 224, - 164, - 191, - 224, - 164, - 159, - 224, - 165, - 135, - 224, - 164, - 161, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 108, - 111, - 99, - 97, - 116, - 105, - 111, - 110, - 46, - 112, - 114, - 111, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 66, - 121, - 84, - 97, - 103, - 78, - 97, - 109, - 101, - 40, - 60, - 33, - 68, - 79, - 67, - 84, - 89, - 80, - 69, - 32, - 104, - 116, - 109, - 108, - 62, - 10, - 60, - 104, - 116, - 109, - 108, - 32, - 60, - 109, - 101, - 116, - 97, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 34, - 117, - 116, - 102, - 45, - 56, - 34, - 62, - 58, - 117, - 114, - 108, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 46, - 99, - 115, - 115, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 115, - 116, - 121, - 108, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 62, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 119, - 51, - 46, - 111, - 114, - 103, - 47, - 49, - 57, - 57, - 57, - 47, - 120, - 104, - 116, - 109, - 108, - 34, - 32, - 120, - 109, - 108, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 103, - 101, - 116, - 34, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 32, - 61, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 116, - 121, - 112, - 101, - 61, - 34, - 105, - 109, - 97, - 103, - 101, - 47, - 120, - 45, - 105, - 99, - 111, - 110, - 34, - 32, - 47, - 62, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 100, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 115, - 112, - 46, - 99, - 115, - 115, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 60, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 34, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 34, - 34, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 110, - 111, - 110, - 101, - 59, - 34, - 62, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 101, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 97, - 112, - 112, - 108, - 105, - 45, - 47, - 47, - 87, - 51, - 67, - 47, - 47, - 68, - 84, - 68, - 32, - 88, - 72, - 84, - 77, - 76, - 32, - 49, - 46, - 48, - 32, - 101, - 108, - 108, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 112, - 97, - 100, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 118, - 97, - 108, - 117, - 101, - 61, - 34, - 47, - 97, - 62, - 38, - 110, - 98, - 115, - 112, - 59, - 60, - 115, - 112, - 97, - 110, - 32, - 114, - 111, - 108, - 101, - 61, - 34, - 115, - 10, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 74, - 97, - 118, - 97, - 83, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 66, - 103, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 32, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 109, - 101, - 100, - 105, - 97, - 61, - 34, - 116, - 121, - 112, - 101, - 61, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 119, - 105, - 116, - 104, - 32, - 116, - 104, - 101, - 32, - 101, - 120, - 99, - 101, - 112, - 116, - 105, - 111, - 110, - 32, - 111, - 102, - 32, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 32, - 104, - 101, - 105, - 103, - 104, - 116, - 61, - 34, - 49, - 34, - 32, - 119, - 105, - 100, - 116, - 104, - 61, - 34, - 49, - 34, - 32, - 61, - 39, - 43, - 101, - 110, - 99, - 111, - 100, - 101, - 85, - 82, - 73, - 67, - 111, - 109, - 112, - 111, - 110, - 101, - 110, - 116, - 40, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 97, - 108, - 116, - 101, - 114, - 110, - 97, - 116, - 101, - 34, - 32, - 10, - 98, - 111, - 100, - 121, - 44, - 32, - 116, - 114, - 44, - 32, - 105, - 110, - 112, - 117, - 116, - 44, - 32, - 116, - 101, - 120, - 116, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 114, - 111, - 98, - 111, - 116, - 115, - 34, - 32, - 99, - 111, - 110, - 109, - 101, - 116, - 104, - 111, - 100, - 61, - 34, - 112, - 111, - 115, - 116, - 34, - 32, - 97, - 99, - 116, - 105, - 111, - 110, - 61, - 34, - 62, - 10, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 99, - 115, - 115, - 34, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 34, - 62, - 97, - 114, - 105, - 97, - 45, - 104, - 105, - 100, - 100, - 101, - 110, - 61, - 34, - 116, - 114, - 117, - 101, - 34, - 62, - 194, - 183, - 60, - 114, - 105, - 112, - 116, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 108, - 61, - 48, - 59, - 125, - 41, - 40, - 41, - 59, - 10, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 111, - 110, - 40, - 41, - 123, - 98, - 97, - 99, - 107, - 103, - 114, - 111, - 117, - 110, - 100, - 45, - 105, - 109, - 97, - 103, - 101, - 58, - 32, - 117, - 114, - 108, - 40, - 47, - 97, - 62, - 60, - 47, - 108, - 105, - 62, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 9, - 9, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 97, - 116, - 111, - 114, - 34, - 32, - 97, - 114, - 105, - 97, - 45, - 104, - 105, - 100, - 100, - 101, - 110, - 61, - 34, - 116, - 114, - 117, - 62, - 32, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 108, - 97, - 110, - 103, - 117, - 97, - 103, - 101, - 61, - 34, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 34, - 32, - 47, - 111, - 112, - 116, - 105, - 111, - 110, - 62, - 10, - 60, - 111, - 112, - 116, - 105, - 111, - 110, - 32, - 118, - 97, - 108, - 117, - 101, - 47, - 100, - 105, - 118, - 62, - 60, - 47, - 100, - 105, - 118, - 62, - 60, - 100, - 105, - 118, - 32, - 99, - 108, - 97, - 115, - 115, - 61, - 114, - 97, - 116, - 111, - 114, - 34, - 32, - 97, - 114, - 105, - 97, - 45, - 104, - 105, - 100, - 100, - 101, - 110, - 61, - 34, - 116, - 114, - 101, - 61, - 40, - 110, - 101, - 119, - 32, - 68, - 97, - 116, - 101, - 41, - 46, - 103, - 101, - 116, - 84, - 105, - 109, - 101, - 40, - 41, - 112, - 111, - 114, - 116, - 117, - 103, - 117, - 195, - 170, - 115, - 32, - 40, - 100, - 111, - 32, - 66, - 114, - 97, - 115, - 105, - 108, - 41, - 208, - 190, - 209, - 128, - 208, - 179, - 208, - 176, - 208, - 189, - 208, - 184, - 208, - 183, - 208, - 176, - 209, - 134, - 208, - 184, - 208, - 184, - 208, - 178, - 208, - 190, - 208, - 183, - 208, - 188, - 208, - 190, - 208, - 182, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 130, - 209, - 140, - 208, - 190, - 208, - 177, - 209, - 128, - 208, - 176, - 208, - 183, - 208, - 190, - 208, - 178, - 208, - 176, - 208, - 189, - 208, - 184, - 209, - 143, - 209, - 128, - 208, - 181, - 208, - 179, - 208, - 184, - 209, - 129, - 209, - 130, - 209, - 128, - 208, - 176, - 209, - 134, - 208, - 184, - 208, - 184, - 208, - 178, - 208, - 190, - 208, - 183, - 208, - 188, - 208, - 190, - 208, - 182, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 184, - 208, - 190, - 208, - 177, - 209, - 143, - 208, - 183, - 208, - 176, - 209, - 130, - 208, - 181, - 208, - 187, - 209, - 140, - 208, - 189, - 208, - 176, - 60, - 33, - 68, - 79, - 67, - 84, - 89, - 80, - 69, - 32, - 104, - 116, - 109, - 108, - 32, - 80, - 85, - 66, - 76, - 73, - 67, - 32, - 34, - 110, - 116, - 45, - 84, - 121, - 112, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 60, - 109, - 101, - 116, - 97, - 32, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 67, - 111, - 110, - 116, - 101, - 114, - 97, - 110, - 115, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 47, - 47, - 69, - 78, - 34, - 32, - 34, - 104, - 116, - 116, - 112, - 58, - 60, - 104, - 116, - 109, - 108, - 32, - 120, - 109, - 108, - 110, - 115, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 45, - 47, - 47, - 87, - 51, - 67, - 47, - 47, - 68, - 84, - 68, - 32, - 88, - 72, - 84, - 77, - 76, - 32, - 49, - 46, - 48, - 32, - 84, - 68, - 84, - 68, - 47, - 120, - 104, - 116, - 109, - 108, - 49, - 45, - 116, - 114, - 97, - 110, - 115, - 105, - 116, - 105, - 111, - 110, - 97, - 108, - 47, - 47, - 119, - 119, - 119, - 46, - 119, - 51, - 46, - 111, - 114, - 103, - 47, - 84, - 82, - 47, - 120, - 104, - 116, - 109, - 108, - 49, - 47, - 112, - 101, - 32, - 61, - 32, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 59, - 60, - 109, - 101, - 116, - 97, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 100, - 101, - 115, - 99, - 114, - 105, - 112, - 116, - 105, - 111, - 110, - 112, - 97, - 114, - 101, - 110, - 116, - 78, - 111, - 100, - 101, - 46, - 105, - 110, - 115, - 101, - 114, - 116, - 66, - 101, - 102, - 111, - 114, - 101, - 60, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 110, - 97, - 106, - 115, - 34, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 40, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 41, - 46, - 114, - 101, - 97, - 100, - 121, - 40, - 102, - 117, - 110, - 99, - 116, - 105, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 105, - 109, - 97, - 103, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 85, - 65, - 45, - 67, - 111, - 109, - 112, - 97, - 116, - 105, - 98, - 108, - 101, - 34, - 32, - 99, - 111, - 110, - 116, - 101, - 110, - 116, - 61, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 117, - 116, - 102, - 45, - 56, - 34, - 32, - 47, - 62, - 10, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 104, - 111, - 114, - 116, - 99, - 117, - 116, - 32, - 105, - 99, - 111, - 110, - 60, - 108, - 105, - 110, - 107, - 32, - 114, - 101, - 108, - 61, - 34, - 115, - 116, - 121, - 108, - 101, - 115, - 104, - 101, - 101, - 116, - 34, - 32, - 60, - 47, - 115, - 99, - 114, - 105, - 112, - 116, - 62, - 10, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 61, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 99, - 114, - 101, - 97, - 116, - 101, - 69, - 108, - 101, - 109, - 101, - 110, - 60, - 97, - 32, - 116, - 97, - 114, - 103, - 101, - 116, - 61, - 34, - 95, - 98, - 108, - 97, - 110, - 107, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 32, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 66, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 97, - 46, - 116, - 121, - 112, - 101, - 32, - 61, - 32, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 110, - 97, - 109, - 101, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 117, - 116, - 102, - 45, - 56, - 34, - 32, - 47, - 62, - 100, - 116, - 100, - 34, - 62, - 10, - 60, - 104, - 116, - 109, - 108, - 32, - 120, - 109, - 108, - 110, - 115, - 61, - 34, - 104, - 116, - 116, - 112, - 45, - 47, - 47, - 87, - 51, - 67, - 47, - 47, - 68, - 84, - 68, - 32, - 72, - 84, - 77, - 76, - 32, - 52, - 46, - 48, - 49, - 32, - 84, - 101, - 110, - 116, - 115, - 66, - 121, - 84, - 97, - 103, - 78, - 97, - 109, - 101, - 40, - 39, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 41, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 104, - 105, - 100, - 100, - 101, - 110, - 34, - 32, - 110, - 97, - 109, - 60, - 115, - 99, - 114, - 105, - 112, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 34, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 110, - 111, - 110, - 101, - 59, - 34, - 62, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 66, - 121, - 73, - 100, - 40, - 61, - 100, - 111, - 99, - 117, - 109, - 101, - 110, - 116, - 46, - 99, - 114, - 101, - 97, - 116, - 101, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 40, - 39, - 32, - 116, - 121, - 112, - 101, - 61, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 105, - 110, - 112, - 117, - 116, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 34, - 32, - 110, - 97, - 109, - 101, - 61, - 34, - 100, - 46, - 103, - 101, - 116, - 69, - 108, - 101, - 109, - 101, - 110, - 116, - 115, - 66, - 121, - 84, - 97, - 103, - 78, - 97, - 109, - 101, - 40, - 115, - 110, - 105, - 99, - 97, - 108, - 34, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 67, - 47, - 47, - 68, - 84, - 68, - 32, - 72, - 84, - 77, - 76, - 32, - 52, - 46, - 48, - 49, - 32, - 84, - 114, - 97, - 110, - 115, - 105, - 116, - 60, - 115, - 116, - 121, - 108, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 62, - 10, - 10, - 60, - 115, - 116, - 121, - 108, - 101, - 32, - 116, - 121, - 112, - 101, - 61, - 34, - 116, - 101, - 120, - 116, - 47, - 99, - 115, - 115, - 34, - 62, - 105, - 111, - 110, - 97, - 108, - 46, - 100, - 116, - 100, - 34, - 62, - 10, - 60, - 104, - 116, - 109, - 108, - 32, - 120, - 109, - 108, - 110, - 115, - 61, - 104, - 116, - 116, - 112, - 45, - 101, - 113, - 117, - 105, - 118, - 61, - 34, - 67, - 111, - 110, - 116, - 101, - 110, - 116, - 45, - 84, - 121, - 112, - 101, - 100, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 32, - 99, - 101, - 108, - 108, - 115, - 112, - 97, - 99, - 105, - 110, - 103, - 61, - 34, - 48, - 34, - 104, - 116, - 109, - 108, - 59, - 32, - 99, - 104, - 97, - 114, - 115, - 101, - 116, - 61, - 117, - 116, - 102, - 45, - 56, - 34, - 32, - 47, - 62, - 10, - 32, - 115, - 116, - 121, - 108, - 101, - 61, - 34, - 100, - 105, - 115, - 112, - 108, - 97, - 121, - 58, - 110, - 111, - 110, - 101, - 59, - 34, - 62, - 60, - 60, - 108, - 105, - 62, - 60, - 97, - 32, - 104, - 114, - 101, - 102, - 61, - 34, - 104, - 116, - 116, - 112, - 58, - 47, - 47, - 119, - 119, - 119, - 46, - 32, - 116, - 121, - 112, - 101, - 61, - 39, - 116, - 101, - 120, - 116, - 47, - 106, - 97, - 118, - 97, - 115, - 99, - 114, - 105, - 112, - 116, - 39, - 62, - 208, - 180, - 208, - 181, - 209, - 143, - 209, - 130, - 208, - 181, - 208, - 187, - 209, - 140, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 184, - 209, - 129, - 208, - 190, - 208, - 190, - 209, - 130, - 208, - 178, - 208, - 181, - 209, - 130, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 184, - 208, - 184, - 208, - 191, - 209, - 128, - 208, - 190, - 208, - 184, - 208, - 183, - 208, - 178, - 208, - 190, - 208, - 180, - 209, - 129, - 209, - 130, - 208, - 178, - 208, - 176, - 208, - 177, - 208, - 181, - 208, - 183, - 208, - 190, - 208, - 191, - 208, - 176, - 209, - 129, - 208, - 189, - 208, - 190, - 209, - 129, - 209, - 130, - 208, - 184, - 224, - 164, - 170, - 224, - 165, - 129, - 224, - 164, - 184, - 224, - 165, - 141, - 224, - 164, - 164, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 165, - 135, - 224, - 164, - 184, - 224, - 164, - 137, - 224, - 164, - 168, - 224, - 165, - 141, - 224, - 164, - 185, - 224, - 165, - 139, - 224, - 164, - 130, - 224, - 164, - 168, - 224, - 165, - 135, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 167, - 224, - 164, - 190, - 224, - 164, - 168, - 224, - 164, - 184, - 224, - 164, - 173, - 224, - 164, - 190, - 224, - 164, - 171, - 224, - 164, - 191, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 184, - 224, - 164, - 191, - 224, - 164, - 130, - 224, - 164, - 151, - 224, - 164, - 184, - 224, - 165, - 129, - 224, - 164, - 176, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 183, - 224, - 164, - 191, - 224, - 164, - 164, - 224, - 164, - 149, - 224, - 165, - 137, - 224, - 164, - 170, - 224, - 165, - 128, - 224, - 164, - 176, - 224, - 164, - 190, - 224, - 164, - 135, - 224, - 164, - 159, - 224, - 164, - 181, - 224, - 164, - 191, - 224, - 164, - 156, - 224, - 165, - 141, - 224, - 164, - 158, - 224, - 164, - 190, - 224, - 164, - 170, - 224, - 164, - 168, - 224, - 164, - 149, - 224, - 164, - 190, - 224, - 164, - 176, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 181, - 224, - 164, - 190, - 224, - 164, - 136, - 224, - 164, - 184, - 224, - 164, - 149, - 224, - 165, - 141, - 224, - 164, - 176, - 224, - 164, - 191, - 224, - 164, - 175, - 224, - 164, - 164, - 224, - 164, - 190, -} - -var kBrotliDictionary = dictionary{ - /* size_bits_by_length */ - [32]byte{ - 0, - 0, - 0, - 0, - 10, - 10, - 11, - 11, - 10, - 10, - 10, - 10, - 10, - 9, - 9, - 8, - 7, - 7, - 8, - 7, - 7, - 6, - 6, - 5, - 5, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - }, - - /* offsets_by_length */ - [32]uint32{ - 0, - 0, - 0, - 0, - 0, - 4096, - 9216, - 21504, - 35840, - 44032, - 53248, - 63488, - 74752, - 87040, - 93696, - 100864, - 104704, - 106752, - 108928, - 113536, - 115968, - 118528, - 119872, - 121280, - 122016, - 122784, - 122784, - 122784, - 122784, - 122784, - 122784, - 122784, - }, - - /* data_size == sizeof(kBrotliDictionaryData) */ - 122784, - - /* data */ - kBrotliDictionaryData, -} - -func getDictionary() *dictionary { - return &kBrotliDictionary -} diff --git a/vendor/github.com/andybalholm/brotli/dictionary_hash.go b/vendor/github.com/andybalholm/brotli/dictionary_hash.go deleted file mode 100644 index a062030..0000000 --- a/vendor/github.com/andybalholm/brotli/dictionary_hash.go +++ /dev/null @@ -1,32779 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Hash table on the 4-byte prefixes of static dictionary words. */ -var kStaticDictionaryHash = [32768]uint16{ - 32072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40486, - 0, - 0, - 0, - 0, - 0, - 45798, - 0, - 0, - 0, - 0, - 0, - 0, - 1292, - 0, - 0, - 0, - 0, - 4964, - 278, - 23717, - 0, - 19972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2126, - 16102, - 0, - 0, - 0, - 14437, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26727, - 2253, - 0, - 0, - 17252, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3622, - 0, - 0, - 0, - 0, - 22984, - 0, - 0, - 0, - 0, - 0, - 0, - 16647, - 0, - 34247, - 0, - 0, - 0, - 0, - 0, - 48486, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2511, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19532, - 0, - 0, - 24004, - 0, - 0, - 0, - 9828, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30853, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20650, - 2404, - 0, - 20773, - 1677, - 9031, - 0, - 6404, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51879, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6761, - 7206, - 0, - 0, - 21992, - 22983, - 0, - 0, - 3529, - 0, - 1864, - 0, - 0, - 0, - 0, - 0, - 0, - 11046, - 0, - 0, - 9641, - 0, - 0, - 0, - 6507, - 0, - 0, - 36934, - 21576, - 62375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8294, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40807, - 0, - 0, - 0, - 39398, - 8136, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8875, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7941, - 0, - 0, - 25609, - 0, - 0, - 0, - 936, - 3716, - 3213, - 15687, - 0, - 0, - 0, - 0, - 0, - 52519, - 0, - 17381, - 0, - 0, - 0, - 0, - 1320, - 5797, - 0, - 21029, - 0, - 0, - 6472, - 807, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13545, - 0, - 0, - 0, - 3624, - 0, - 0, - 0, - 29674, - 30820, - 0, - 31237, - 0, - 6596, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22278, - 0, - 37446, - 0, - 0, - 0, - 0, - 7240, - 423, - 0, - 24612, - 21705, - 17636, - 0, - 0, - 0, - 0, - 0, - 0, - 1833, - 0, - 0, - 0, - 328, - 6021, - 0, - 0, - 0, - 19974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62119, - 4178, - 0, - 0, - 0, - 0, - 12100, - 8617, - 0, - 0, - 16900, - 0, - 36678, - 0, - 0, - 0, - 35366, - 0, - 51718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20998, - 0, - 62086, - 0, - 0, - 0, - 0, - 0, - 5542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14629, - 10952, - 25927, - 0, - 0, - 0, - 0, - 19849, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30952, - 3046, - 14314, - 12998, - 0, - 0, - 0, - 15268, - 0, - 40582, - 30216, - 62118, - 0, - 0, - 0, - 20132, - 0, - 0, - 0, - 0, - 0, - 12005, - 0, - 0, - 0, - 52358, - 0, - 0, - 0, - 0, - 24778, - 0, - 44, - 33095, - 0, - 0, - 0, - 0, - 0, - 26372, - 0, - 0, - 0, - 0, - 0, - 3781, - 0, - 0, - 17928, - 9479, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32297, - 28613, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47174, - 11723, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2536, - 55143, - 0, - 0, - 6410, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56294, - 11914, - 0, - 529, - 0, - 30184, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8261, - 0, - 0, - 28808, - 58854, - 22633, - 965, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64135, - 0, - 0, - 331, - 3684, - 0, - 1605, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16650, - 37, - 0, - 23622, - 3144, - 15429, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22443, - 69, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17832, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11113, - 0, - 0, - 0, - 0, - 18309, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26630, - 0, - 0, - 25512, - 25895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16901, - 0, - 0, - 0, - 27558, - 0, - 0, - 9418, - 0, - 0, - 0, - 3508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37990, - 9289, - 8517, - 0, - 0, - 0, - 0, - 1578, - 1604, - 23944, - 0, - 0, - 14916, - 12781, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12105, - 0, - 16617, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21348, - 11240, - 28870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5772, - 0, - 0, - 27812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8324, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16748, - 1157, - 0, - 0, - 18794, - 16324, - 25898, - 935, - 8333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18246, - 0, - 18086, - 0, - 46854, - 0, - 0, - 0, - 0, - 0, - 0, - 339, - 0, - 0, - 25188, - 12780, - 12166, - 6409, - 0, - 0, - 0, - 0, - 16516, - 0, - 27012, - 28395, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1420, - 0, - 0, - 0, - 9768, - 52967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25163, - 324, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64998, - 0, - 0, - 0, - 0, - 0, - 21893, - 0, - 0, - 0, - 0, - 0, - 47366, - 0, - 0, - 0, - 870, - 0, - 0, - 0, - 12646, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26020, - 16360, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1809, - 0, - 0, - 0, - 6601, - 15878, - 0, - 0, - 0, - 0, - 0, - 29092, - 0, - 28516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21988, - 0, - 0, - 0, - 42950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5133, - 1318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54982, - 24904, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51526, - 0, - 0, - 0, - 0, - 0, - 3685, - 0, - 0, - 0, - 0, - 10062, - 9412, - 0, - 0, - 0, - 31460, - 5708, - 6181, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27144, - 57478, - 0, - 0, - 0, - 0, - 0, - 0, - 7084, - 0, - 21993, - 53126, - 0, - 0, - 0, - 0, - 8397, - 0, - 0, - 5733, - 0, - 0, - 0, - 0, - 0, - 2116, - 0, - 24742, - 0, - 11271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1133, - 0, - 4873, - 0, - 0, - 38310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17932, - 0, - 0, - 18053, - 0, - 0, - 0, - 25510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17798, - 0, - 26214, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23016, - 17415, - 20392, - 164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3239, - 0, - 46119, - 0, - 0, - 0, - 28580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41478, - 0, - 0, - 31016, - 55334, - 10056, - 1924, - 0, - 0, - 0, - 0, - 0, - 36614, - 0, - 36711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13994, - 59303, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26501, - 0, - 5639, - 0, - 0, - 0, - 0, - 0, - 0, - 13897, - 1253, - 0, - 0, - 0, - 0, - 0, - 5095, - 0, - 0, - 0, - 28869, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8646, - 0, - 0, - 0, - 0, - 25641, - 17796, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13316, - 620, - 6309, - 11819, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 904, - 1095, - 0, - 24229, - 0, - 0, - 28744, - 49703, - 0, - 23077, - 0, - 0, - 0, - 0, - 32392, - 0, - 0, - 0, - 0, - 35271, - 0, - 28740, - 5866, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4361, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7917, - 8869, - 0, - 0, - 0, - 13924, - 0, - 0, - 0, - 0, - 0, - 41958, - 0, - 0, - 0, - 0, - 0, - 0, - 6766, - 13989, - 0, - 0, - 0, - 903, - 0, - 0, - 24010, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64390, - 0, - 22468, - 0, - 25861, - 0, - 0, - 0, - 0, - 23656, - 5317, - 0, - 0, - 0, - 0, - 0, - 0, - 23017, - 5445, - 16009, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48006, - 10473, - 0, - 0, - 14404, - 0, - 0, - 0, - 42183, - 0, - 0, - 0, - 51270, - 0, - 0, - 10602, - 24132, - 0, - 0, - 0, - 0, - 0, - 43782, - 0, - 0, - 17834, - 0, - 0, - 0, - 25576, - 27205, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29066, - 0, - 0, - 0, - 0, - 0, - 626, - 1988, - 14700, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 57670, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44710, - 0, - 0, - 0, - 0, - 3848, - 7623, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19272, - 6436, - 0, - 0, - 5256, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19685, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39783, - 0, - 0, - 0, - 0, - 30984, - 0, - 0, - 0, - 0, - 0, - 0, - 28230, - 0, - 0, - 0, - 29028, - 10538, - 3205, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5636, - 840, - 295, - 0, - 0, - 8488, - 8198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4074, - 19526, - 0, - 0, - 0, - 0, - 31144, - 64038, - 0, - 0, - 0, - 0, - 0, - 0, - 16716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17706, - 0, - 0, - 0, - 0, - 0, - 0, - 50630, - 0, - 50503, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25446, - 0, - 0, - 0, - 13831, - 0, - 0, - 0, - 0, - 0, - 0, - 2696, - 4039, - 0, - 0, - 0, - 0, - 25288, - 0, - 12076, - 2054, - 0, - 48934, - 0, - 0, - 0, - 0, - 16969, - 59431, - 17259, - 35335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31275, - 0, - 0, - 0, - 1097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 776, - 839, - 0, - 0, - 29386, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5864, - 12134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25349, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61447, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24678, - 0, - 0, - 0, - 63335, - 0, - 28836, - 8142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4494, - 0, - 0, - 0, - 0, - 0, - 14088, - 1188, - 0, - 16260, - 0, - 0, - 0, - 16421, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 276, - 0, - 0, - 17060, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24076, - 29445, - 0, - 33543, - 0, - 4901, - 0, - 0, - 12522, - 0, - 0, - 62471, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4046, - 0, - 0, - 0, - 0, - 20486, - 0, - 15460, - 2217, - 51719, - 0, - 0, - 0, - 0, - 0, - 23495, - 0, - 0, - 0, - 0, - 0, - 0, - 15370, - 0, - 15849, - 0, - 15113, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27972, - 7337, - 0, - 0, - 0, - 0, - 30342, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32299, - 23940, - 0, - 17766, - 0, - 0, - 0, - 0, - 0, - 0, - 6184, - 0, - 20904, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31492, - 0, - 0, - 0, - 5509, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2669, - 50182, - 0, - 0, - 12299, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5257, - 28167, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11750, - 3890, - 0, - 0, - 26500, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10981, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17961, - 1831, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29638, - 0, - 0, - 0, - 0, - 26473, - 0, - 6216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28683, - 39975, - 0, - 0, - 0, - 0, - 0, - 51654, - 0, - 0, - 0, - 27527, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30859, - 3268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28772, - 0, - 18212, - 0, - 0, - 0, - 0, - 25448, - 65446, - 0, - 0, - 0, - 0, - 0, - 0, - 3337, - 1670, - 0, - 0, - 0, - 0, - 0, - 19332, - 0, - 0, - 0, - 0, - 24936, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1043, - 0, - 0, - 0, - 0, - 15814, - 0, - 21670, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16263, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32454, - 0, - 30630, - 0, - 0, - 20170, - 9926, - 0, - 0, - 0, - 18247, - 0, - 0, - 14376, - 0, - 2056, - 17191, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22474, - 52806, - 1588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10825, - 0, - 0, - 0, - 0, - 40934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28677, - 0, - 0, - 5714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25865, - 22246, - 0, - 0, - 0, - 0, - 17256, - 35751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8236, - 0, - 32108, - 0, - 0, - 0, - 43, - 14342, - 0, - 16517, - 0, - 0, - 30732, - 0, - 4012, - 133, - 0, - 40583, - 971, - 23942, - 0, - 0, - 27275, - 0, - 0, - 0, - 204, - 0, - 0, - 27140, - 7564, - 44327, - 27592, - 57958, - 0, - 0, - 0, - 0, - 22344, - 25701, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19524, - 31755, - 0, - 0, - 28102, - 0, - 59111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12261, - 0, - 44934, - 0, - 0, - 0, - 0, - 31560, - 0, - 11114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18953, - 18311, - 0, - 45159, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22411, - 23943, - 0, - 0, - 0, - 0, - 0, - 0, - 11690, - 0, - 0, - 4069, - 0, - 0, - 2668, - 6342, - 0, - 0, - 0, - 0, - 0, - 0, - 27658, - 1766, - 0, - 0, - 0, - 0, - 23240, - 56070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34119, - 0, - 24453, - 0, - 0, - 0, - 0, - 21867, - 0, - 17610, - 9894, - 0, - 0, - 27976, - 38790, - 0, - 0, - 0, - 43654, - 0, - 31559, - 12202, - 23142, - 0, - 0, - 0, - 50343, - 0, - 0, - 0, - 0, - 0, - 32806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49895, - 0, - 0, - 0, - 0, - 15786, - 4263, - 0, - 0, - 0, - 0, - 4746, - 3814, - 0, - 0, - 0, - 0, - 0, - 0, - 17192, - 453, - 17323, - 0, - 20328, - 4036, - 0, - 0, - 0, - 15844, - 0, - 0, - 0, - 0, - 27561, - 31940, - 32296, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11499, - 11782, - 0, - 0, - 0, - 0, - 9738, - 50471, - 0, - 0, - 0, - 0, - 0, - 35430, - 0, - 0, - 0, - 0, - 0, - 29734, - 0, - 0, - 0, - 36551, - 0, - 0, - 0, - 0, - 9257, - 5606, - 0, - 13829, - 0, - 7015, - 0, - 0, - 0, - 0, - 0, - 25127, - 0, - 0, - 19051, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2572, - 0, - 0, - 0, - 0, - 0, - 0, - 29797, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42342, - 0, - 0, - 0, - 0, - 9293, - 0, - 17896, - 56038, - 4077, - 0, - 0, - 0, - 29899, - 37351, - 0, - 30823, - 0, - 8326, - 0, - 0, - 0, - 18342, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18569, - 54054, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37254, - 0, - 0, - 31433, - 61510, - 0, - 2022, - 0, - 0, - 0, - 0, - 0, - 25381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2149, - 25289, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12516, - 14185, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36486, - 0, - 0, - 0, - 0, - 10889, - 9607, - 0, - 28711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28490, - 0, - 0, - 0, - 0, - 26181, - 10283, - 1701, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14980, - 0, - 7783, - 0, - 27846, - 0, - 0, - 0, - 56486, - 3892, - 0, - 0, - 0, - 5770, - 16583, - 0, - 26309, - 13422, - 20292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28742, - 0, - 0, - 0, - 0, - 14536, - 1158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25801, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42438, - 0, - 3332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8327, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17353, - 1447, - 0, - 0, - 8427, - 48518, - 1359, - 0, - 0, - 0, - 0, - 0, - 14986, - 0, - 32168, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9230, - 2791, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16073, - 31623, - 4269, - 0, - 0, - 0, - 0, - 0, - 0, - 4519, - 0, - 0, - 27912, - 58950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8361, - 19812, - 0, - 0, - 0, - 0, - 6056, - 7877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21701, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9128, - 1125, - 0, - 16548, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17292, - 6854, - 21352, - 0, - 2380, - 0, - 0, - 4007, - 0, - 0, - 0, - 0, - 0, - 24357, - 4202, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10664, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42823, - 3022, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14373, - 0, - 20677, - 3304, - 2759, - 20522, - 64903, - 0, - 0, - 0, - 38, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27814, - 2802, - 8870, - 3758, - 1255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30027, - 9510, - 0, - 0, - 0, - 0, - 17864, - 14855, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23404, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45734, - 0, - 0, - 23467, - 32327, - 0, - 0, - 10826, - 52999, - 0, - 0, - 0, - 33222, - 31336, - 64326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32166, - 0, - 0, - 3891, - 0, - 0, - 0, - 7017, - 645, - 0, - 0, - 0, - 0, - 0, - 0, - 27915, - 46087, - 0, - 0, - 0, - 21863, - 0, - 34246, - 0, - 0, - 16715, - 0, - 0, - 0, - 0, - 14052, - 21416, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39846, - 0, - 0, - 0, - 0, - 0, - 38982, - 0, - 0, - 17512, - 7460, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15428, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11879, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19911, - 0, - 20007, - 0, - 0, - 0, - 10855, - 943, - 0, - 0, - 10821, - 0, - 0, - 0, - 0, - 4170, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9836, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 65415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9865, - 24646, - 0, - 0, - 0, - 0, - 0, - 40519, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22091, - 23655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31686, - 0, - 0, - 0, - 58599, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19620, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24421, - 0, - 28100, - 0, - 0, - 0, - 31268, - 0, - 3204, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14822, - 0, - 0, - 0, - 0, - 19947, - 10182, - 0, - 0, - 9480, - 14821, - 4398, - 0, - 0, - 14532, - 0, - 0, - 0, - 48871, - 1873, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 589, - 1541, - 0, - 0, - 0, - 0, - 0, - 23333, - 0, - 0, - 0, - 14149, - 0, - 0, - 0, - 0, - 1296, - 14374, - 0, - 27300, - 0, - 0, - 0, - 0, - 0, - 0, - 7276, - 0, - 0, - 0, - 0, - 0, - 0, - 47718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5164, - 1765, - 0, - 14405, - 0, - 37574, - 1994, - 0, - 6636, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27815, - 0, - 0, - 0, - 0, - 2568, - 6820, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11336, - 26247, - 0, - 0, - 23912, - 0, - 0, - 0, - 30536, - 0, - 0, - 34342, - 0, - 17799, - 0, - 0, - 0, - 22149, - 0, - 6118, - 0, - 25732, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26600, - 5190, - 0, - 0, - 1142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39527, - 0, - 0, - 0, - 0, - 0, - 39494, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3085, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4786, - 0, - 0, - 0, - 28873, - 6532, - 0, - 0, - 26664, - 0, - 9193, - 11719, - 0, - 0, - 0, - 0, - 0, - 0, - 31752, - 64646, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11397, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25094, - 0, - 0, - 18153, - 20167, - 0, - 0, - 0, - 17254, - 0, - 0, - 878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31592, - 0, - 0, - 8167, - 24362, - 6212, - 0, - 34758, - 0, - 0, - 0, - 0, - 0, - 0, - 32520, - 0, - 0, - 44679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17989, - 8681, - 29222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10251, - 4902, - 1452, - 15207, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22822, - 0, - 10469, - 0, - 0, - 0, - 0, - 0, - 0, - 19337, - 17670, - 107, - 11494, - 0, - 0, - 0, - 0, - 27305, - 2565, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64518, - 200, - 28389, - 0, - 0, - 0, - 0, - 31208, - 0, - 30762, - 0, - 0, - 0, - 0, - 0, - 29321, - 60518, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3209, - 3237, - 12490, - 22663, - 0, - 0, - 0, - 18789, - 31464, - 16391, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20646, - 0, - 0, - 0, - 27238, - 0, - 0, - 0, - 0, - 0, - 15940, - 4488, - 6951, - 0, - 0, - 0, - 46342, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28965, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20584, - 3367, - 0, - 25350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1814, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17125, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55943, - 0, - 0, - 0, - 0, - 0, - 24133, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2929, - 0, - 0, - 50086, - 0, - 2918, - 25356, - 30052, - 115, - 11846, - 0, - 0, - 0, - 0, - 3056, - 0, - 0, - 0, - 0, - 17639, - 239, - 19815, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21479, - 0, - 0, - 0, - 0, - 0, - 28420, - 11786, - 4772, - 0, - 0, - 3368, - 36295, - 0, - 31463, - 0, - 0, - 14665, - 996, - 0, - 20582, - 0, - 0, - 0, - 9988, - 0, - 23685, - 0, - 0, - 0, - 52551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1895, - 2186, - 0, - 0, - 0, - 0, - 0, - 27755, - 25447, - 0, - 0, - 0, - 0, - 31052, - 63270, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36742, - 0, - 24804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31048, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21290, - 2276, - 0, - 0, - 0, - 0, - 26475, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3176, - 19431, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62726, - 0, - 0, - 0, - 25380, - 0, - 0, - 27883, - 1316, - 0, - 0, - 7724, - 3015, - 0, - 0, - 0, - 0, - 6697, - 0, - 0, - 47910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3141, - 0, - 0, - 0, - 14820, - 0, - 0, - 0, - 0, - 9326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31493, - 0, - 0, - 0, - 0, - 0, - 6566, - 0, - 0, - 0, - 0, - 0, - 0, - 6569, - 1348, - 0, - 25638, - 0, - 0, - 0, - 0, - 0, - 20324, - 0, - 0, - 17067, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11876, - 0, - 41030, - 0, - 0, - 0, - 26405, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11431, - 28137, - 14950, - 0, - 10151, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29574, - 0, - 0, - 0, - 0, - 27176, - 57446, - 0, - 0, - 0, - 0, - 28650, - 57574, - 1387, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58247, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16805, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3526, - 0, - 15781, - 0, - 5572, - 13352, - 0, - 0, - 0, - 0, - 0, - 18665, - 23463, - 0, - 0, - 0, - 0, - 0, - 0, - 15405, - 6885, - 0, - 0, - 0, - 0, - 15272, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9512, - 4037, - 0, - 0, - 11563, - 49639, - 0, - 0, - 0, - 0, - 0, - 0, - 27880, - 57830, - 0, - 0, - 0, - 0, - 0, - 41831, - 0, - 21924, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25509, - 0, - 27462, - 0, - 18085, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13898, - 8068, - 26441, - 0, - 0, - 0, - 0, - 0, - 0, - 25316, - 0, - 0, - 0, - 0, - 16298, - 7397, - 5706, - 19239, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1392, - 50919, - 0, - 0, - 0, - 0, - 0, - 53863, - 0, - 0, - 0, - 0, - 1451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35847, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17801, - 15813, - 0, - 12740, - 0, - 0, - 0, - 32967, - 0, - 0, - 0, - 0, - 0, - 0, - 5389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31143, - 0, - 20548, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51686, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12109, - 19015, - 0, - 34983, - 0, - 21732, - 3600, - 0, - 0, - 0, - 0, - 47750, - 17288, - 43975, - 22857, - 47559, - 0, - 0, - 0, - 0, - 26408, - 48358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30470, - 0, - 0, - 23560, - 4581, - 0, - 22404, - 0, - 49286, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49831, - 0, - 0, - 0, - 27525, - 31691, - 7, - 0, - 0, - 25835, - 0, - 0, - 0, - 0, - 0, - 4201, - 16485, - 0, - 20676, - 0, - 0, - 0, - 0, - 3753, - 23303, - 16264, - 3878, - 0, - 0, - 0, - 0, - 0, - 0, - 11434, - 0, - 0, - 0, - 0, - 0, - 0, - 7589, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 57095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22820, - 11146, - 49158, - 0, - 23623, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13893, - 0, - 0, - 0, - 0, - 0, - 0, - 11722, - 60071, - 1258, - 0, - 0, - 0, - 0, - 0, - 0, - 18564, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27945, - 0, - 0, - 0, - 0, - 5479, - 0, - 20006, - 17608, - 3431, - 10988, - 30180, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24581, - 14, - 0, - 0, - 0, - 0, - 0, - 0, - 25572, - 0, - 0, - 0, - 28612, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33670, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8710, - 0, - 14116, - 0, - 0, - 116, - 292, - 0, - 0, - 0, - 37831, - 0, - 43078, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21832, - 0, - 0, - 32134, - 783, - 0, - 0, - 30982, - 0, - 0, - 0, - 68, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5932, - 0, - 0, - 0, - 18505, - 15175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3630, - 16965, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17797, - 0, - 0, - 0, - 0, - 0, - 0, - 520, - 42150, - 0, - 0, - 3122, - 0, - 0, - 0, - 22506, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28550, - 0, - 0, - 0, - 50278, - 0, - 0, - 13641, - 5958, - 0, - 35238, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29993, - 18724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20619, - 9319, - 0, - 0, - 0, - 0, - 23977, - 0, - 5193, - 0, - 0, - 12196, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20105, - 677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29419, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20266, - 0, - 0, - 0, - 0, - 10631, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26628, - 12744, - 0, - 20648, - 0, - 0, - 0, - 432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 646, - 0, - 25604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63782, - 0, - 0, - 0, - 0, - 24616, - 0, - 0, - 0, - 21291, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45638, - 0, - 0, - 0, - 0, - 1931, - 0, - 0, - 0, - 20521, - 59975, - 0, - 20614, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56231, - 0, - 0, - 0, - 0, - 0, - 29991, - 0, - 52871, - 0, - 20934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16871, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7237, - 0, - 0, - 0, - 0, - 0, - 47558, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43046, - 0, - 0, - 2930, - 0, - 12936, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31141, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37639, - 0, - 17572, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31240, - 0, - 0, - 0, - 0, - 0, - 688, - 0, - 0, - 0, - 0, - 0, - 1648, - 0, - 0, - 0, - 0, - 10055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 146, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6345, - 199, - 0, - 34982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56839, - 0, - 0, - 0, - 0, - 0, - 48902, - 0, - 13412, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2441, - 4420, - 0, - 0, - 0, - 0, - 20428, - 933, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54726, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17036, - 741, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27589, - 0, - 0, - 30282, - 18950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2248, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25993, - 0, - 0, - 0, - 2443, - 0, - 0, - 31622, - 0, - 14150, - 0, - 0, - 0, - 28679, - 0, - 0, - 0, - 0, - 0, - 0, - 15464, - 0, - 0, - 0, - 0, - 54694, - 0, - 0, - 0, - 0, - 0, - 0, - 3827, - 0, - 0, - 0, - 3756, - 0, - 9897, - 0, - 0, - 0, - 0, - 0, - 19082, - 31239, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27625, - 0, - 0, - 0, - 784, - 4647, - 32652, - 0, - 0, - 63494, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3404, - 58470, - 0, - 32325, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18634, - 2789, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8548, - 0, - 0, - 0, - 22501, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15881, - 0, - 0, - 0, - 0, - 35879, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7978, - 17956, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24324, - 0, - 0, - 4937, - 0, - 0, - 0, - 8168, - 0, - 13420, - 10340, - 0, - 0, - 0, - 0, - 0, - 11780, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16712, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17640, - 17991, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2953, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9100, - 16806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30667, - 0, - 0, - 19013, - 0, - 0, - 0, - 0, - 0, - 0, - 205, - 15334, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1969, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26248, - 52518, - 0, - 49798, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9668, - 0, - 0, - 0, - 0, - 0, - 4742, - 0, - 0, - 21641, - 0, - 0, - 0, - 0, - 0, - 0, - 53574, - 0, - 0, - 0, - 0, - 0, - 0, - 5707, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3018, - 12454, - 0, - 0, - 0, - 0, - 2920, - 262, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3593, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55879, - 0, - 0, - 0, - 0, - 0, - 775, - 0, - 43270, - 5066, - 48967, - 0, - 0, - 22986, - 4165, - 8971, - 44838, - 0, - 0, - 0, - 0, - 0, - 62279, - 272, - 0, - 0, - 0, - 0, - 51430, - 0, - 0, - 0, - 0, - 0, - 0, - 28234, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13349, - 0, - 0, - 0, - 51111, - 20265, - 13861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 585, - 7494, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21768, - 62407, - 0, - 0, - 0, - 0, - 7979, - 166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38918, - 0, - 56742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16296, - 5767, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29796, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23916, - 30183, - 0, - 58791, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20518, - 0, - 0, - 0, - 0, - 8969, - 0, - 0, - 0, - 183, - 0, - 0, - 0, - 0, - 0, - 2314, - 17445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23748, - 0, - 0, - 8139, - 4839, - 27914, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29478, - 0, - 0, - 16552, - 26663, - 0, - 53767, - 0, - 0, - 13960, - 8039, - 18696, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 782, - 16005, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6258, - 56806, - 16456, - 12455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23780, - 0, - 0, - 0, - 0, - 0, - 0, - 9355, - 0, - 0, - 0, - 7273, - 41063, - 24780, - 57766, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3820, - 2597, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29225, - 61126, - 0, - 0, - 0, - 58439, - 15691, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37190, - 22408, - 967, - 0, - 0, - 0, - 23078, - 26858, - 0, - 0, - 0, - 19753, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5416, - 13702, - 0, - 0, - 0, - 0, - 0, - 52742, - 20394, - 38567, - 0, - 0, - 0, - 51079, - 0, - 0, - 136, - 8516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 531, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8936, - 5031, - 12520, - 19334, - 0, - 0, - 22827, - 30247, - 28074, - 31140, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27497, - 18148, - 20104, - 59079, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24389, - 0, - 0, - 6125, - 0, - 0, - 0, - 0, - 9541, - 0, - 0, - 24553, - 29095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25444, - 0, - 0, - 9643, - 0, - 0, - 63047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39558, - 0, - 0, - 0, - 0, - 0, - 0, - 20620, - 11815, - 499, - 0, - 5128, - 2278, - 0, - 0, - 0, - 0, - 0, - 46310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23530, - 40166, - 2440, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26922, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26758, - 0, - 0, - 0, - 0, - 0, - 51911, - 0, - 0, - 23532, - 0, - 0, - 0, - 0, - 51238, - 25737, - 44486, - 12622, - 0, - 0, - 0, - 0, - 0, - 0, - 3078, - 0, - 9253, - 0, - 0, - 1128, - 22023, - 0, - 0, - 0, - 21350, - 0, - 16420, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 65094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22532, - 0, - 48774, - 0, - 34503, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9797, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13797, - 0, - 38279, - 0, - 0, - 1738, - 0, - 489, - 46343, - 0, - 45382, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29030, - 0, - 0, - 0, - 0, - 0, - 0, - 6220, - 56550, - 0, - 0, - 0, - 0, - 0, - 26885, - 0, - 28806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45958, - 0, - 0, - 0, - 0, - 20553, - 49927, - 0, - 0, - 0, - 0, - 0, - 0, - 3019, - 12358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26571, - 13319, - 0, - 0, - 653, - 23399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22316, - 0, - 0, - 21188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27878, - 21483, - 27653, - 0, - 29701, - 237, - 0, - 10632, - 0, - 0, - 0, - 0, - 33766, - 0, - 0, - 0, - 0, - 0, - 0, - 31563, - 0, - 0, - 0, - 0, - 0, - 1416, - 2439, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9611, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5611, - 16581, - 26601, - 35462, - 0, - 0, - 0, - 26756, - 0, - 59271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26984, - 57734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7882, - 0, - 0, - 0, - 19528, - 6469, - 0, - 0, - 1161, - 0, - 0, - 0, - 7688, - 20935, - 425, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12519, - 0, - 12902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2411, - 0, - 11725, - 26086, - 0, - 0, - 20201, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30471, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21541, - 1141, - 21190, - 0, - 9188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 184, - 1093, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4842, - 0, - 13672, - 0, - 0, - 12230, - 0, - 0, - 0, - 10532, - 0, - 0, - 8937, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28996, - 0, - 0, - 11720, - 26982, - 0, - 46182, - 0, - 43911, - 31754, - 0, - 1160, - 3940, - 0, - 20772, - 0, - 0, - 0, - 0, - 0, - 24549, - 0, - 32582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31845, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2310, - 11788, - 0, - 0, - 43047, - 0, - 0, - 0, - 18853, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63622, - 0, - 0, - 7048, - 17318, - 0, - 0, - 0, - 21957, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1039, - 6279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12197, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46470, - 0, - 0, - 24, - 19719, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21353, - 3846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11268, - 0, - 0, - 0, - 0, - 0, - 9382, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29926, - 0, - 33606, - 0, - 4708, - 2828, - 0, - 0, - 29543, - 0, - 0, - 0, - 0, - 0, - 29893, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3663, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10920, - 7111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9384, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37094, - 0, - 0, - 0, - 27110, - 0, - 0, - 0, - 0, - 0, - 0, - 21865, - 0, - 27753, - 30214, - 0, - 0, - 0, - 0, - 0, - 57895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12648, - 5446, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19784, - 17124, - 0, - 52007, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 758, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24900, - 0, - 0, - 0, - 0, - 0, - 1476, - 0, - 65031, - 0, - 0, - 1205, - 46663, - 0, - 30023, - 11625, - 1094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10058, - 0, - 0, - 0, - 0, - 0, - 0, - 28455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14788, - 0, - 0, - 0, - 0, - 16808, - 0, - 0, - 742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21636, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15944, - 23207, - 0, - 0, - 0, - 0, - 247, - 0, - 0, - 0, - 0, - 24743, - 0, - 0, - 0, - 5252, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29961, - 18660, - 21099, - 46791, - 0, - 7045, - 0, - 0, - 0, - 0, - 25707, - 0, - 0, - 17412, - 3828, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5803, - 5637, - 0, - 38151, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 60103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 853, - 0, - 0, - 0, - 0, - 0, - 0, - 30215, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8741, - 0, - 0, - 0, - 0, - 0, - 27366, - 0, - 0, - 0, - 0, - 171, - 4070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24073, - 7366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2184, - 5189, - 0, - 20932, - 1545, - 4996, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6313, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30826, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27463, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21640, - 63303, - 0, - 0, - 3275, - 31111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11556, - 0, - 14756, - 0, - 0, - 0, - 15108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23914, - 28966, - 0, - 0, - 0, - 4965, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10216, - 5223, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27142, - 0, - 0, - 1173, - 20198, - 0, - 0, - 0, - 0, - 0, - 56614, - 0, - 0, - 0, - 0, - 0, - 4612, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11822, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17769, - 7910, - 0, - 0, - 31880, - 0, - 0, - 6055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8970, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16840, - 23879, - 0, - 0, - 11051, - 0, - 0, - 0, - 32552, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20842, - 13701, - 0, - 0, - 0, - 37191, - 7373, - 10471, - 17482, - 25348, - 0, - 0, - 0, - 38502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21509, - 6058, - 0, - 0, - 0, - 0, - 0, - 0, - 3173, - 0, - 0, - 0, - 9543, - 0, - 0, - 0, - 0, - 0, - 0, - 17768, - 12708, - 0, - 0, - 0, - 0, - 0, - 37030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12748, - 48743, - 0, - 11718, - 0, - 0, - 25194, - 0, - 0, - 0, - 9033, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5028, - 0, - 30118, - 0, - 0, - 0, - 0, - 0, - 42759, - 0, - 0, - 3720, - 0, - 0, - 0, - 0, - 0, - 0, - 25190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5450, - 5125, - 0, - 58086, - 0, - 0, - 0, - 0, - 0, - 27716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22052, - 0, - 0, - 0, - 0, - 26249, - 0, - 15947, - 3460, - 0, - 0, - 0, - 35814, - 0, - 0, - 0, - 7813, - 19500, - 32167, - 0, - 18597, - 0, - 0, - 0, - 0, - 0, - 28644, - 0, - 0, - 0, - 60743, - 0, - 0, - 0, - 0, - 0, - 29636, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17220, - 15885, - 9414, - 9642, - 0, - 0, - 0, - 593, - 0, - 0, - 24228, - 0, - 0, - 0, - 0, - 0, - 40422, - 0, - 26244, - 0, - 23109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64902, - 0, - 0, - 0, - 0, - 3979, - 60007, - 0, - 0, - 0, - 28199, - 0, - 0, - 0, - 43142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29158, - 0, - 30532, - 0, - 0, - 0, - 0, - 13256, - 0, - 0, - 0, - 0, - 16549, - 0, - 0, - 0, - 0, - 0, - 26116, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22825, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1065, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18985, - 4805, - 0, - 0, - 0, - 0, - 0, - 17702, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3468, - 0, - 0, - 0, - 0, - 13447, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56871, - 0, - 0, - 1776, - 15780, - 0, - 0, - 2603, - 0, - 10280, - 31366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11592, - 3591, - 0, - 2372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20004, - 0, - 0, - 0, - 0, - 0, - 0, - 12072, - 518, - 0, - 0, - 1960, - 8999, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7178, - 32999, - 0, - 0, - 0, - 0, - 0, - 0, - 1641, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6764, - 9893, - 490, - 4005, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25258, - 5541, - 0, - 14053, - 306, - 20743, - 0, - 0, - 9422, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11977, - 260, - 0, - 35175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18405, - 0, - 0, - 0, - 16582, - 0, - 0, - 0, - 22470, - 0, - 0, - 0, - 0, - 0, - 0, - 2792, - 0, - 0, - 0, - 14026, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14858, - 3909, - 0, - 0, - 0, - 57671, - 0, - 0, - 0, - 0, - 0, - 0, - 15979, - 0, - 0, - 0, - 2794, - 15239, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26884, - 9070, - 0, - 0, - 0, - 0, - 51846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19499, - 37127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19205, - 10350, - 11910, - 0, - 0, - 0, - 0, - 15083, - 23108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 169, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15274, - 41735, - 0, - 56774, - 0, - 0, - 2825, - 0, - 14025, - 389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21482, - 31910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20456, - 710, - 0, - 0, - 25032, - 21797, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32427, - 21252, - 0, - 30150, - 0, - 43174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11403, - 0, - 0, - 1029, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6892, - 9252, - 0, - 63206, - 3496, - 14406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22568, - 0, - 0, - 21253, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39623, - 0, - 0, - 10189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30729, - 59910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3305, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7660, - 24871, - 0, - 838, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12013, - 13252, - 0, - 551, - 0, - 0, - 0, - 43207, - 0, - 30567, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28394, - 30724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22665, - 22725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29414, - 0, - 0, - 0, - 0, - 16074, - 8966, - 245, - 1445, - 0, - 0, - 0, - 0, - 24872, - 0, - 0, - 0, - 0, - 13124, - 0, - 35527, - 0, - 0, - 0, - 0, - 0, - 0, - 13259, - 10917, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25191, - 0, - 0, - 0, - 13956, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54631, - 19625, - 12070, - 3083, - 0, - 0, - 0, - 0, - 14436, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21766, - 0, - 15463, - 29322, - 0, - 0, - 0, - 0, - 0, - 0, - 29990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23653, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2643, - 0, - 0, - 21223, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34790, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16103, - 0, - 0, - 0, - 0, - 0, - 0, - 297, - 3620, - 3338, - 10372, - 0, - 14727, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29924, - 22473, - 13895, - 15529, - 32455, - 30378, - 13540, - 0, - 28807, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64582, - 18380, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1236, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32710, - 0, - 0, - 0, - 0, - 4590, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64935, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16744, - 0, - 0, - 0, - 0, - 0, - 0, - 20005, - 0, - 0, - 13608, - 1191, - 0, - 0, - 0, - 62183, - 0, - 0, - 0, - 0, - 0, - 24484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17643, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5380, - 0, - 0, - 32328, - 0, - 0, - 63814, - 0, - 0, - 0, - 2919, - 0, - 0, - 0, - 0, - 17034, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 60295, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7690, - 486, - 0, - 0, - 0, - 39270, - 0, - 49094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20967, - 17993, - 12647, - 0, - 0, - 0, - 16036, - 32616, - 0, - 0, - 0, - 0, - 16294, - 8555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35174, - 0, - 0, - 0, - 0, - 0, - 0, - 30346, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14797, - 3652, - 0, - 0, - 8268, - 12934, - 0, - 54950, - 0, - 0, - 0, - 0, - 2632, - 33959, - 0, - 23175, - 0, - 0, - 0, - 0, - 0, - 36262, - 0, - 0, - 0, - 0, - 0, - 0, - 32684, - 26918, - 0, - 32676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15625, - 11943, - 1206, - 0, - 0, - 0, - 0, - 18052, - 0, - 0, - 0, - 0, - 0, - 16422, - 0, - 0, - 0, - 26404, - 0, - 0, - 28777, - 0, - 0, - 24902, - 0, - 0, - 408, - 45351, - 0, - 35719, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3658, - 17446, - 0, - 165, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6151, - 0, - 0, - 24424, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24170, - 24293, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11847, - 0, - 39591, - 0, - 0, - 0, - 0, - 0, - 0, - 9549, - 2788, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1010, - 0, - 0, - 0, - 0, - 0, - 0, - 26055, - 31724, - 0, - 24233, - 1828, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17284, - 0, - 0, - 0, - 0, - 19464, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32452, - 0, - 0, - 0, - 28871, - 0, - 0, - 0, - 0, - 17704, - 53383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17892, - 1938, - 0, - 0, - 0, - 0, - 0, - 16362, - 0, - 0, - 21605, - 0, - 0, - 5003, - 0, - 0, - 0, - 0, - 0, - 0, - 22693, - 0, - 22342, - 0, - 0, - 0, - 55846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22853, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6600, - 263, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24836, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40711, - 0, - 0, - 0, - 0, - 0, - 33894, - 0, - 0, - 0, - 0, - 0, - 0, - 13000, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30308, - 0, - 0, - 0, - 0, - 0, - 0, - 5386, - 0, - 0, - 0, - 0, - 0, - 0, - 27844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17740, - 0, - 0, - 0, - 0, - 25093, - 29064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12680, - 11462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 84, - 7303, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27044, - 457, - 0, - 22924, - 58246, - 19016, - 0, - 2606, - 45703, - 0, - 5157, - 0, - 25028, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2065, - 0, - 0, - 0, - 0, - 0, - 31946, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33382, - 0, - 47878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25004, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26153, - 35654, - 0, - 58055, - 30668, - 0, - 0, - 0, - 0, - 25988, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4456, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7560, - 20583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42822, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1733, - 0, - 0, - 0, - 8196, - 0, - 0, - 11241, - 0, - 30572, - 60326, - 0, - 15013, - 0, - 0, - 0, - 40646, - 0, - 23812, - 0, - 10022, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12874, - 31015, - 0, - 0, - 0, - 0, - 0, - 0, - 1608, - 0, - 0, - 0, - 0, - 18308, - 0, - 0, - 0, - 0, - 27114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7944, - 1382, - 0, - 11813, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24517, - 0, - 11621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21702, - 0, - 0, - 13100, - 8262, - 2644, - 7973, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1033, - 12581, - 0, - 25221, - 0, - 0, - 0, - 40998, - 16301, - 62983, - 0, - 0, - 0, - 0, - 1263, - 9318, - 0, - 0, - 0, - 18854, - 0, - 0, - 1741, - 33895, - 0, - 0, - 0, - 0, - 0, - 0, - 26377, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32165, - 0, - 51143, - 0, - 0, - 0, - 0, - 0, - 29412, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1674, - 4230, - 0, - 0, - 0, - 0, - 0, - 10502, - 0, - 0, - 0, - 0, - 5545, - 0, - 0, - 0, - 0, - 0, - 2099, - 45158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14157, - 0, - 26955, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17096, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27050, - 6726, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28554, - 0, - 0, - 7142, - 0, - 0, - 0, - 0, - 16936, - 0, - 0, - 0, - 25833, - 0, - 4399, - 6980, - 0, - 46214, - 0, - 0, - 0, - 0, - 0, - 10630, - 21164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2446, - 48551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15400, - 12135, - 0, - 0, - 0, - 0, - 0, - 4774, - 586, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23751, - 9736, - 4548, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25577, - 29607, - 6250, - 1637, - 0, - 0, - 0, - 0, - 22024, - 0, - 0, - 0, - 0, - 22308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37414, - 24044, - 0, - 0, - 0, - 14474, - 29735, - 0, - 7077, - 0, - 45990, - 0, - 0, - 0, - 0, - 30568, - 40039, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6150, - 0, - 4228, - 0, - 0, - 0, - 0, - 0, - 27687, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24548, - 21513, - 1350, - 0, - 0, - 0, - 33607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11784, - 1414, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18244, - 940, - 0, - 0, - 0, - 0, - 0, - 0, - 7270, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48935, - 0, - 0, - 0, - 0, - 0, - 0, - 23660, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53350, - 0, - 0, - 0, - 0, - 0, - 0, - 4236, - 16358, - 0, - 4422, - 6665, - 32644, - 0, - 0, - 744, - 18084, - 0, - 11014, - 0, - 0, - 0, - 0, - 0, - 29508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7686, - 0, - 0, - 13289, - 5478, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12872, - 0, - 0, - 24134, - 1005, - 22916, - 0, - 31429, - 23400, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28424, - 0, - 0, - 0, - 25706, - 27109, - 0, - 0, - 26345, - 0, - 0, - 0, - 0, - 0, - 0, - 25126, - 0, - 0, - 88, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17032, - 0, - 0, - 21799, - 0, - 0, - 10060, - 0, - 12296, - 21892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20777, - 14311, - 0, - 58182, - 32232, - 0, - 10282, - 0, - 2121, - 11527, - 0, - 0, - 0, - 12325, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28804, - 2344, - 8133, - 0, - 0, - 0, - 0, - 21864, - 62695, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2771, - 0, - 0, - 23204, - 0, - 0, - 0, - 0, - 0, - 6278, - 0, - 0, - 0, - 0, - 0, - 26597, - 0, - 0, - 0, - 0, - 23144, - 0, - 0, - 0, - 0, - 0, - 31816, - 20070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24456, - 2118, - 0, - 0, - 0, - 0, - 6570, - 1156, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30406, - 0, - 0, - 0, - 28388, - 3572, - 0, - 0, - 26599, - 12426, - 5286, - 0, - 0, - 0, - 0, - 0, - 4967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24970, - 24167, - 0, - 0, - 0, - 0, - 28745, - 4678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1444, - 236, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19428, - 0, - 0, - 0, - 0, - 0, - 0, - 2092, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2827, - 0, - 0, - 0, - 0, - 0, - 19881, - 19204, - 0, - 11749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17958, - 0, - 17894, - 0, - 18726, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21510, - 5033, - 0, - 0, - 0, - 0, - 22855, - 0, - 0, - 0, - 0, - 0, - 14598, - 0, - 29605, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 617, - 0, - 0, - 0, - 0, - 47142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3627, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2225, - 14823, - 0, - 0, - 2637, - 6182, - 78, - 15078, - 0, - 0, - 0, - 0, - 20264, - 0, - 0, - 0, - 0, - 0, - 0, - 36743, - 4140, - 44551, - 17352, - 25703, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14024, - 0, - 0, - 0, - 0, - 0, - 0, - 28004, - 0, - 0, - 0, - 0, - 0, - 7588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2087, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18028, - 0, - 0, - 0, - 300, - 14212, - 0, - 0, - 1386, - 40327, - 0, - 0, - 0, - 0, - 0, - 0, - 31082, - 0, - 0, - 22374, - 0, - 0, - 0, - 0, - 0, - 35718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26532, - 7756, - 0, - 0, - 18982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6440, - 1159, - 7180, - 0, - 0, - 0, - 0, - 0, - 0, - 45766, - 0, - 57798, - 0, - 16740, - 0, - 0, - 6802, - 60454, - 0, - 0, - 0, - 26470, - 0, - 0, - 0, - 0, - 0, - 65382, - 4362, - 7750, - 0, - 0, - 0, - 0, - 0, - 0, - 9096, - 4743, - 334, - 0, - 0, - 0, - 0, - 0, - 0, - 39974, - 0, - 0, - 0, - 25828, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3027, - 0, - 0, - 0, - 15816, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48327, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16168, - 41799, - 0, - 0, - 24458, - 8581, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54503, - 0, - 0, - 0, - 0, - 5097, - 30852, - 18664, - 0, - 0, - 0, - 0, - 0, - 0, - 16484, - 0, - 0, - 27337, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4356, - 0, - 0, - 0, - 0, - 0, - 57030, - 0, - 0, - 1417, - 41191, - 0, - 0, - 0, - 0, - 0, - 23429, - 0, - 0, - 0, - 0, - 10024, - 21735, - 0, - 0, - 10126, - 0, - 0, - 0, - 0, - 19046, - 0, - 0, - 0, - 0, - 0, - 0, - 24105, - 4710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4394, - 0, - 0, - 0, - 0, - 13253, - 0, - 56391, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55974, - 0, - 0, - 0, - 52070, - 0, - 15620, - 0, - 0, - 0, - 0, - 0, - 2660, - 0, - 0, - 0, - 0, - 21644, - 0, - 0, - 52455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8902, - 0, - 0, - 0, - 0, - 0, - 0, - 3116, - 0, - 464, - 34726, - 0, - 0, - 0, - 0, - 0, - 0, - 25003, - 12423, - 0, - 27172, - 1896, - 7335, - 0, - 0, - 0, - 0, - 0, - 35686, - 0, - 0, - 0, - 0, - 3472, - 0, - 0, - 0, - 0, - 22406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45254, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21124, - 23594, - 33127, - 0, - 0, - 0, - 0, - 0, - 0, - 16684, - 22087, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55814, - 0, - 0, - 0, - 0, - 0, - 0, - 4109, - 23460, - 0, - 0, - 8874, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 147, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29960, - 63398, - 1302, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9799, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31333, - 0, - 0, - 0, - 0, - 0, - 19557, - 0, - 0, - 0, - 0, - 0, - 5701, - 0, - 0, - 0, - 63014, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21254, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12484, - 0, - 0, - 0, - 48326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15783, - 0, - 0, - 1202, - 0, - 0, - 0, - 0, - 23174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3086, - 49191, - 0, - 0, - 5387, - 15141, - 0, - 0, - 0, - 3365, - 0, - 0, - 0, - 0, - 20076, - 14021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 376, - 40198, - 0, - 0, - 0, - 52039, - 0, - 24932, - 0, - 0, - 0, - 0, - 808, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9860, - 0, - 0, - 0, - 0, - 0, - 23719, - 0, - 21476, - 0, - 0, - 0, - 0, - 20776, - 4807, - 0, - 0, - 3177, - 16678, - 0, - 0, - 110, - 10853, - 0, - 0, - 0, - 17382, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7500, - 4966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 52102, - 0, - 24516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26535, - 0, - 0, - 0, - 46247, - 0, - 0, - 0, - 15557, - 0, - 0, - 0, - 0, - 76, - 52327, - 0, - 0, - 0, - 0, - 17866, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46758, - 0, - 0, - 0, - 0, - 0, - 19173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2985, - 0, - 0, - 0, - 0, - 0, - 0, - 14310, - 0, - 0, - 2125, - 45831, - 0, - 0, - 0, - 0, - 0, - 0, - 9838, - 0, - 13227, - 19492, - 0, - 0, - 0, - 29764, - 0, - 0, - 0, - 0, - 686, - 30053, - 0, - 0, - 0, - 0, - 0, - 30789, - 139, - 20837, - 0, - 0, - 0, - 0, - 502, - 18533, - 0, - 0, - 0, - 0, - 0, - 19111, - 0, - 0, - 0, - 0, - 0, - 31396, - 0, - 0, - 0, - 17444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49862, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25610, - 550, - 0, - 0, - 561, - 0, - 29034, - 0, - 0, - 0, - 3528, - 0, - 0, - 0, - 1715, - 14661, - 18, - 63463, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14186, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29578, - 59014, - 0, - 39430, - 0, - 0, - 0, - 0, - 2250, - 16612, - 0, - 31780, - 0, - 0, - 0, - 0, - 0, - 0, - 462, - 16967, - 0, - 29029, - 0, - 0, - 0, - 0, - 0, - 23462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1768, - 0, - 6025, - 16998, - 1804, - 0, - 0, - 54182, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14124, - 0, - 6154, - 29702, - 0, - 0, - 0, - 0, - 0, - 7716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48807, - 0, - 8292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16389, - 5933, - 0, - 14857, - 51303, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35623, - 9097, - 23047, - 0, - 0, - 23112, - 0, - 0, - 0, - 0, - 0, - 438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 151, - 9254, - 1390, - 0, - 0, - 0, - 0, - 0, - 0, - 54215, - 0, - 0, - 0, - 0, - 6187, - 0, - 0, - 0, - 0, - 13095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9866, - 0, - 0, - 59622, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25286, - 0, - 0, - 23848, - 32069, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9255, - 2187, - 15270, - 437, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19493, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11748, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22212, - 1865, - 17543, - 0, - 0, - 0, - 0, - 0, - 0, - 21996, - 0, - 0, - 0, - 0, - 55975, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32138, - 21156, - 0, - 0, - 0, - 0, - 0, - 0, - 14249, - 0, - 0, - 0, - 2388, - 0, - 0, - 0, - 0, - 6823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26694, - 0, - 0, - 6059, - 53511, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49542, - 6159, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1036, - 24036, - 0, - 2501, - 0, - 0, - 0, - 0, - 0, - 0, - 17419, - 51271, - 3377, - 15142, - 0, - 0, - 0, - 0, - 0, - 0, - 5007, - 62374, - 0, - 56935, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24422, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28263, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15622, - 0, - 19749, - 0, - 0, - 1611, - 0, - 22219, - 48583, - 25129, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 721, - 0, - 0, - 0, - 0, - 32518, - 0, - 0, - 0, - 18469, - 0, - 0, - 0, - 0, - 0, - 0, - 5896, - 29927, - 3657, - 23046, - 0, - 0, - 3214, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 112, - 0, - 0, - 0, - 0, - 0, - 3048, - 455, - 0, - 31012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23270, - 0, - 32677, - 0, - 0, - 0, - 0, - 0, - 38086, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4900, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25541, - 0, - 18788, - 0, - 0, - 22248, - 1351, - 0, - 61734, - 4524, - 30629, - 0, - 14887, - 242, - 29063, - 0, - 0, - 14408, - 4741, - 0, - 0, - 0, - 37318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8106, - 0, - 32107, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1481, - 0, - 0, - 28132, - 0, - 25798, - 0, - 59783, - 0, - 0, - 0, - 0, - 0, - 59078, - 0, - 0, - 0, - 23366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30887, - 0, - 0, - 0, - 0, - 16200, - 0, - 0, - 0, - 335, - 0, - 0, - 0, - 714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30730, - 9478, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18790, - 0, - 0, - 0, - 0, - 663, - 0, - 0, - 0, - 1034, - 31431, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30120, - 0, - 0, - 0, - 0, - 13925, - 0, - 0, - 0, - 0, - 0, - 0, - 2280, - 13414, - 0, - 0, - 0, - 0, - 0, - 0, - 22028, - 23687, - 3017, - 11047, - 0, - 0, - 21738, - 18630, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30246, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17257, - 0, - 21896, - 63783, - 0, - 0, - 0, - 21094, - 0, - 18662, - 0, - 25700, - 0, - 22533, - 0, - 0, - 0, - 0, - 0, - 6341, - 5800, - 11111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15399, - 12970, - 6501, - 0, - 0, - 3179, - 26438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15750, - 0, - 13062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 142, - 0, - 0, - 0, - 0, - 21284, - 11177, - 4391, - 0, - 0, - 0, - 0, - 19595, - 40647, - 0, - 0, - 0, - 0, - 0, - 11877, - 0, - 0, - 0, - 26439, - 0, - 0, - 0, - 0, - 695, - 49126, - 27467, - 11972, - 0, - 0, - 0, - 0, - 0, - 0, - 9961, - 0, - 0, - 0, - 31722, - 62982, - 0, - 0, - 0, - 0, - 15817, - 52710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24614, - 0, - 0, - 0, - 0, - 0, - 20550, - 0, - 0, - 5034, - 3942, - 0, - 0, - 0, - 45927, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2548, - 0, - 0, - 0, - 0, - 0, - 0, - 45606, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3405, - 12582, - 15563, - 54087, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24202, - 5893, - 0, - 0, - 0, - 44230, - 0, - 0, - 0, - 5605, - 0, - 47782, - 0, - 32230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7014, - 0, - 0, - 0, - 0, - 16488, - 3175, - 0, - 27237, - 0, - 0, - 0, - 0, - 0, - 40902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32004, - 31434, - 0, - 24392, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29130, - 58214, - 0, - 0, - 0, - 0, - 0, - 0, - 29002, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37926, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1290, - 0, - 0, - 0, - 4713, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1803, - 966, - 0, - 17700, - 0, - 0, - 654, - 19109, - 0, - 51655, - 0, - 0, - 0, - 0, - 0, - 10470, - 1584, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2506, - 0, - 0, - 25159, - 4303, - 0, - 0, - 0, - 395, - 15879, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1352, - 6535, - 0, - 19652, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4722, - 7909, - 0, - 0, - 0, - 0, - 30152, - 0, - 0, - 64742, - 0, - 0, - 0, - 0, - 0, - 0, - 2153, - 9125, - 0, - 0, - 279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41894, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1328, - 17030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54151, - 0, - 0, - 0, - 0, - 1775, - 54535, - 0, - 0, - 0, - 0, - 31624, - 0, - 0, - 0, - 7150, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1840, - 35943, - 0, - 0, - 0, - 0, - 0, - 56455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64486, - 0, - 0, - 0, - 51174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17092, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12, - 16134, - 19883, - 39943, - 10281, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14125, - 2407, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26921, - 0, - 0, - 0, - 0, - 0, - 22188, - 0, - 20810, - 10053, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29220, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28170, - 0, - 15208, - 0, - 0, - 32517, - 5736, - 19271, - 3562, - 10534, - 0, - 0, - 0, - 59655, - 0, - 0, - 0, - 0, - 27084, - 60422, - 0, - 0, - 24969, - 0, - 0, - 0, - 2636, - 0, - 0, - 0, - 0, - 26277, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30596, - 3594, - 0, - 0, - 0, - 8362, - 14565, - 0, - 0, - 0, - 0, - 0, - 0, - 10793, - 12326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5906, - 59686, - 0, - 0, - 23081, - 517, - 0, - 15556, - 0, - 0, - 0, - 8486, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7497, - 0, - 0, - 26085, - 0, - 0, - 23784, - 63591, - 6568, - 6310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10054, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7018, - 14470, - 18858, - 0, - 5641, - 10660, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35526, - 1515, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27656, - 0, - 0, - 9606, - 0, - 39590, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53926, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 232, - 4327, - 12649, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20199, - 0, - 0, - 0, - 0, - 0, - 0, - 26730, - 0, - 0, - 0, - 19400, - 14695, - 0, - 31334, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19589, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5064, - 11908, - 0, - 27333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47751, - 0, - 0, - 0, - 26662, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6245, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23368, - 63911, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8520, - 24037, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26279, - 0, - 0, - 0, - 22886, - 0, - 0, - 0, - 27782, - 0, - 30694, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33703, - 0, - 0, - 0, - 30405, - 0, - 34598, - 0, - 51047, - 0, - 0, - 0, - 0, - 1908, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1511, - 21897, - 0, - 0, - 0, - 0, - 0, - 0, - 51398, - 0, - 24870, - 0, - 32647, - 0, - 0, - 0, - 35015, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11204, - 0, - 0, - 0, - 0, - 0, - 0, - 7758, - 57991, - 0, - 0, - 0, - 30949, - 0, - 0, - 22, - 15140, - 9162, - 0, - 0, - 0, - 0, - 0, - 0, - 25540, - 20136, - 7108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16427, - 10789, - 9805, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4680, - 0, - 0, - 52679, - 0, - 0, - 0, - 0, - 0, - 14884, - 0, - 0, - 0, - 16804, - 0, - 0, - 0, - 0, - 0, - 0, - 9578, - 5287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34054, - 0, - 0, - 0, - 0, - 0, - 19076, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7627, - 55719, - 0, - 39463, - 14446, - 58374, - 0, - 0, - 0, - 0, - 23465, - 15845, - 0, - 0, - 0, - 0, - 0, - 38534, - 0, - 0, - 0, - 17893, - 10922, - 0, - 7176, - 678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3113, - 46279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23334, - 0, - 0, - 18088, - 23268, - 0, - 62342, - 0, - 0, - 0, - 16613, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38182, - 0, - 0, - 0, - 0, - 0, - 0, - 25292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10344, - 71, - 6446, - 0, - 0, - 1893, - 0, - 0, - 1106, - 0, - 28680, - 30756, - 0, - 41126, - 0, - 0, - 1492, - 0, - 15341, - 0, - 0, - 0, - 0, - 17575, - 0, - 21220, - 0, - 0, - 0, - 0, - 0, - 25060, - 2088, - 21828, - 0, - 0, - 0, - 0, - 0, - 358, - 0, - 0, - 0, - 0, - 0, - 16708, - 0, - 0, - 0, - 1668, - 0, - 0, - 0, - 0, - 0, - 12260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4078, - 0, - 0, - 0, - 0, - 0, - 12713, - 6215, - 0, - 0, - 20329, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31204, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3732, - 0, - 1646, - 0, - 0, - 27460, - 0, - 34406, - 17128, - 14341, - 0, - 0, - 0, - 0, - 0, - 19527, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6120, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8551, - 21546, - 10212, - 3020, - 2951, - 0, - 17638, - 0, - 0, - 6985, - 44999, - 2218, - 8197, - 0, - 0, - 30472, - 63366, - 0, - 26660, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1265, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2610, - 0, - 0, - 0, - 11278, - 20295, - 0, - 0, - 0, - 0, - 0, - 19780, - 0, - 0, - 0, - 0, - 0, - 0, - 2353, - 10852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5421, - 24292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34407, - 0, - 0, - 0, - 0, - 0, - 0, - 15432, - 20774, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12360, - 10757, - 0, - 0, - 0, - 33126, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29573, - 0, - 2343, - 0, - 0, - 0, - 0, - 0, - 63079, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43015, - 0, - 16038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1480, - 25573, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24645, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5063, - 0, - 0, - 0, - 0, - 0, - 45830, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 823, - 0, - 0, - 64039, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15300, - 0, - 0, - 0, - 0, - 0, - 0, - 2924, - 46759, - 6760, - 19268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34182, - 0, - 0, - 3977, - 18149, - 0, - 0, - 0, - 32199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23524, - 25994, - 0, - 0, - 10343, - 0, - 0, - 0, - 9733, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4740, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16741, - 0, - 0, - 4626, - 23367, - 0, - 0, - 31400, - 0, - 0, - 3557, - 0, - 0, - 4234, - 0, - 0, - 0, - 0, - 0, - 0, - 28486, - 0, - 0, - 0, - 0, - 0, - 14213, - 0, - 57191, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 240, - 0, - 0, - 0, - 0, - 65318, - 29832, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29989, - 0, - 31846, - 0, - 0, - 8170, - 0, - 0, - 4421, - 27626, - 30884, - 0, - 0, - 20204, - 0, - 0, - 0, - 0, - 44614, - 534, - 20868, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28710, - 0, - 10277, - 0, - 0, - 0, - 0, - 0, - 29511, - 0, - 19813, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27020, - 0, - 0, - 0, - 0, - 0, - 0, - 53094, - 0, - 35207, - 0, - 0, - 0, - 37542, - 0, - 61766, - 8584, - 8037, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12488, - 22757, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23814, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19973, - 0, - 0, - 0, - 63943, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36006, - 0, - 0, - 0, - 19012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 80, - 1254, - 0, - 0, - 0, - 42630, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16262, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2124, - 25479, - 0, - 0, - 0, - 0, - 16873, - 0, - 0, - 0, - 0, - 3142, - 0, - 0, - 18443, - 0, - 0, - 0, - 0, - 0, - 3917, - 0, - 8841, - 1190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20645, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9284, - 0, - 0, - 24394, - 41351, - 0, - 0, - 0, - 42087, - 0, - 62566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6728, - 4199, - 0, - 0, - 0, - 0, - 25515, - 0, - 1231, - 0, - 374, - 15623, - 0, - 29956, - 0, - 14118, - 0, - 0, - 0, - 0, - 0, - 19047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20900, - 0, - 16743, - 0, - 0, - 0, - 28902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2578, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13838, - 0, - 0, - 10052, - 0, - 0, - 0, - 0, - 7432, - 43783, - 17097, - 0, - 0, - 0, - 0, - 0, - 873, - 0, - 0, - 0, - 398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8459, - 23559, - 0, - 53030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35750, - 0, - 4071, - 0, - 0, - 0, - 38662, - 0, - 41414, - 0, - 0, - 0, - 0, - 11656, - 0, - 0, - 0, - 0, - 0, - 4011, - 42695, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25353, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27177, - 22372, - 0, - 0, - 0, - 0, - 0, - 30980, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46278, - 3976, - 12711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20517, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4072, - 11078, - 0, - 0, - 16553, - 2405, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2670, - 0, - 0, - 0, - 0, - 0, - 0, - 32998, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47046, - 0, - 30533, - 0, - 0, - 11050, - 9734, - 13129, - 0, - 0, - 0, - 0, - 23494, - 0, - 0, - 0, - 0, - 0, - 58310, - 0, - 0, - 0, - 57543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 454, - 0, - 0, - 0, - 0, - 0, - 0, - 5163, - 59687, - 2220, - 0, - 0, - 0, - 0, - 0, - 0, - 29510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17316, - 0, - 20069, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5319, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22949, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19208, - 0, - 0, - 0, - 0, - 0, - 0, - 20933, - 0, - 0, - 6026, - 8742, - 0, - 0, - 0, - 17380, - 0, - 13127, - 2797, - 0, - 0, - 30116, - 0, - 0, - 5963, - 8004, - 0, - 57126, - 0, - 0, - 0, - 0, - 0, - 42854, - 14792, - 30759, - 0, - 24964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16933, - 0, - 0, - 0, - 0, - 0, - 0, - 15176, - 40839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 788, - 30341, - 0, - 0, - 0, - 0, - 21036, - 24102, - 0, - 0, - 0, - 0, - 30123, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22597, - 31531, - 26789, - 0, - 59559, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9352, - 29863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20516, - 0, - 0, - 0, - 39462, - 3665, - 0, - 28265, - 0, - 8778, - 64262, - 0, - 57414, - 9132, - 0, - 0, - 18276, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26344, - 30725, - 524, - 19751, - 0, - 13796, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18155, - 0, - 12841, - 0, - 74, - 24998, - 13579, - 1061, - 0, - 64199, - 0, - 0, - 8776, - 0, - 0, - 60231, - 0, - 25412, - 0, - 0, - 0, - 59143, - 0, - 0, - 0, - 0, - 0, - 0, - 14344, - 1510, - 0, - 0, - 0, - 38374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13353, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9446, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32613, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19844, - 0, - 0, - 0, - 0, - 14859, - 0, - 0, - 0, - 0, - 6662, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14154, - 0, - 29770, - 0, - 0, - 0, - 0, - 0, - 16520, - 2182, - 0, - 0, - 0, - 0, - 0, - 36102, - 3340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15720, - 0, - 0, - 0, - 0, - 0, - 0, - 22758, - 0, - 0, - 304, - 0, - 3243, - 14117, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5130, - 12679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21733, - 10441, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36103, - 0, - 0, - 0, - 0, - 0, - 23590, - 0, - 57479, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10824, - 18372, - 0, - 0, - 0, - 0, - 0, - 35078, - 15722, - 12967, - 0, - 0, - 0, - 0, - 0, - 34599, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53639, - 0, - 38630, - 0, - 0, - 0, - 0, - 0, - 0, - 31017, - 11333, - 0, - 0, - 0, - 0, - 19144, - 0, - 9513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56711, - 24042, - 0, - 1197, - 0, - 0, - 58502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8230, - 6121, - 18628, - 0, - 0, - 0, - 0, - 0, - 0, - 25290, - 0, - 0, - 0, - 0, - 0, - 1514, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14378, - 9798, - 32363, - 0, - 0, - 0, - 0, - 0, - 9577, - 0, - 0, - 0, - 0, - 0, - 0, - 26788, - 0, - 0, - 0, - 0, - 0, - 0, - 330, - 10533, - 0, - 0, - 0, - 0, - 0, - 42246, - 0, - 0, - 0, - 0, - 0, - 0, - 5074, - 21028, - 0, - 38119, - 0, - 0, - 0, - 0, - 0, - 0, - 248, - 0, - 31176, - 62054, - 0, - 53287, - 0, - 0, - 0, - 0, - 271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9224, - 2117, - 0, - 0, - 0, - 0, - 15818, - 5607, - 0, - 52582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18248, - 24005, - 23018, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 427, - 0, - 0, - 39910, - 0, - 0, - 7080, - 11399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22220, - 57894, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13156, - 0, - 1413, - 1007, - 0, - 0, - 0, - 0, - 21415, - 0, - 21543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41702, - 22538, - 9573, - 0, - 0, - 0, - 8806, - 0, - 0, - 6920, - 56359, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42215, - 0, - 0, - 13708, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16453, - 0, - 0, - 0, - 0, - 0, - 0, - 1582, - 1764, - 3282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11653, - 0, - 0, - 0, - 0, - 12139, - 0, - 29482, - 31076, - 1673, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40262, - 0, - 0, - 0, - 33862, - 0, - 0, - 0, - 0, - 0, - 20996, - 0, - 0, - 0, - 0, - 0, - 4615, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43943, - 333, - 19367, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26821, - 0, - 32389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4936, - 11687, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10885, - 0, - 0, - 0, - 0, - 0, - 25926, - 0, - 0, - 0, - 0, - 0, - 0, - 15851, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8360, - 0, - 17130, - 7942, - 0, - 11460, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18150, - 14248, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22310, - 0, - 0, - 0, - 42758, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29354, - 5574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11236, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9156, - 0, - 0, - 1801, - 14023, - 0, - 0, - 0, - 0, - 0, - 62406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23620, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31018, - 65510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26182, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27717, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31108, - 0, - 11366, - 0, - 0, - 0, - 3717, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8552, - 6054, - 3339, - 0, - 0, - 0, - 0, - 51622, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28358, - 0, - 2756, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1462, - 0, - 0, - 27622, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62502, - 14410, - 56743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36550, - 0, - 38054, - 0, - 0, - 0, - 21221, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27077, - 0, - 0, - 16906, - 0, - 12587, - 12101, - 0, - 0, - 0, - 0, - 0, - 0, - 10414, - 28775, - 21769, - 60167, - 0, - 56646, - 0, - 0, - 0, - 0, - 0, - 20740, - 0, - 0, - 0, - 0, - 0, - 0, - 5931, - 5351, - 0, - 65478, - 0, - 0, - 0, - 0, - 0, - 0, - 7977, - 52647, - 0, - 4868, - 0, - 0, - 0, - 55463, - 0, - 0, - 0, - 0, - 0, - 32197, - 0, - 0, - 0, - 0, - 0, - 13445, - 0, - 0, - 0, - 26631, - 0, - 0, - 0, - 0, - 0, - 11237, - 0, - 0, - 0, - 0, - 209, - 1285, - 0, - 0, - 1928, - 0, - 0, - 0, - 0, - 43334, - 23849, - 23172, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24712, - 62439, - 8811, - 3463, - 20457, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16008, - 56263, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 60358, - 22761, - 6565, - 0, - 0, - 30888, - 27686, - 0, - 0, - 0, - 17093, - 0, - 0, - 0, - 0, - 22121, - 0, - 0, - 0, - 7593, - 14182, - 0, - 28103, - 0, - 0, - 0, - 0, - 0, - 45126, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18500, - 0, - 0, - 0, - 0, - 28202, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26308, - 0, - 29541, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29572, - 0, - 0, - 0, - 21285, - 0, - 0, - 0, - 0, - 0, - 60839, - 0, - 0, - 0, - 0, - 0, - 30407, - 15949, - 2981, - 0, - 0, - 0, - 46439, - 0, - 0, - 0, - 0, - 0, - 23911, - 26505, - 25222, - 12811, - 5895, - 0, - 6343, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31815, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19688, - 10245, - 0, - 0, - 0, - 31301, - 26985, - 28964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27208, - 31172, - 0, - 0, - 0, - 0, - 216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16292, - 0, - 0, - 0, - 0, - 0, - 8743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6438, - 0, - 0, - 0, - 33319, - 0, - 0, - 0, - 33286, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22181, - 7499, - 24774, - 0, - 10756, - 0, - 44775, - 724, - 0, - 25768, - 25669, - 24873, - 5349, - 25257, - 0, - 0, - 54566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 327, - 439, - 357, - 0, - 0, - 6536, - 8452, - 0, - 0, - 1802, - 0, - 0, - 61350, - 0, - 15045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38343, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32491, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22885, - 0, - 0, - 32073, - 0, - 0, - 0, - 9546, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27748, - 0, - 0, - 23176, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24583, - 0, - 0, - 0, - 0, - 0, - 34118, - 0, - 0, - 0, - 0, - 2158, - 0, - 5586, - 30340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24452, - 0, - 0, - 0, - 0, - 2409, - 4390, - 0, - 24196, - 0, - 0, - 0, - 0, - 0, - 0, - 32264, - 26948, - 20587, - 0, - 0, - 0, - 2155, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4328, - 26276, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23564, - 0, - 12458, - 11367, - 0, - 0, - 25162, - 0, - 0, - 0, - 0, - 0, - 0, - 65414, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32966, - 0, - 0, - 0, - 34662, - 0, - 0, - 0, - 0, - 0, - 39238, - 0, - 0, - 0, - 0, - 11400, - 10214, - 266, - 12452, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15173, - 0, - 0, - 0, - 13668, - 0, - 13222, - 0, - 23364, - 0, - 0, - 0, - 0, - 0, - 11941, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25575, - 0, - 0, - 0, - 57383, - 0, - 0, - 0, - 10308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2865, - 9287, - 75, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21508, - 22380, - 59526, - 0, - 0, - 0, - 23589, - 0, - 0, - 0, - 51590, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4645, - 3980, - 28295, - 0, - 0, - 0, - 0, - 0, - 12388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21734, - 0, - 17607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41767, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18436, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21958, - 0, - 19430, - 0, - 0, - 1204, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3240, - 55239, - 0, - 0, - 0, - 0, - 0, - 30660, - 0, - 0, - 0, - 28901, - 0, - 0, - 0, - 0, - 4716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11754, - 0, - 0, - 0, - 0, - 22086, - 0, - 22564, - 8749, - 0, - 0, - 28391, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2886, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40358, - 0, - 0, - 15916, - 39526, - 0, - 13735, - 0, - 0, - 0, - 0, - 28938, - 0, - 407, - 4006, - 0, - 0, - 0, - 26916, - 0, - 0, - 0, - 0, - 0, - 27526, - 30280, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24586, - 0, - 24649, - 5126, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23019, - 0, - 22377, - 18599, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27593, - 9735, - 0, - 20196, - 0, - 0, - 0, - 0, - 28168, - 48423, - 0, - 0, - 0, - 0, - 0, - 31399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13892, - 0, - 0, - 0, - 0, - 0, - 17606, - 0, - 0, - 15242, - 29767, - 26378, - 17701, - 0, - 0, - 14472, - 0, - 4840, - 0, - 0, - 0, - 0, - 0, - 0, - 24708, - 0, - 9349, - 4330, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16137, - 0, - 0, - 34854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25063, - 0, - 0, - 0, - 0, - 0, - 0, - 6603, - 12583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7433, - 29188, - 0, - 0, - 0, - 0, - 0, - 31270, - 0, - 0, - 22920, - 3143, - 0, - 0, - 0, - 0, - 0, - 23461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 618, - 0, - 0, - 0, - 0, - 21381, - 0, - 11524, - 0, - 0, - 0, - 0, - 0, - 0, - 21004, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 312, - 23239, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2313, - 0, - 0, - 40614, - 0, - 0, - 14825, - 0, - 0, - 0, - 0, - 0, - 0, - 46535, - 0, - 41190, - 7853, - 0, - 31656, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3433, - 5255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33958, - 0, - 0, - 0, - 0, - 72, - 15493, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14724, - 0, - 0, - 0, - 0, - 0, - 29828, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18822, - 20008, - 0, - 0, - 0, - 0, - 2438, - 2952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3342, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24420, - 0, - 19908, - 0, - 0, - 0, - 8101, - 0, - 17479, - 0, - 0, - 3530, - 0, - 8202, - 29319, - 0, - 0, - 1132, - 6789, - 0, - 0, - 23881, - 0, - 0, - 0, - 4810, - 0, - 0, - 46918, - 0, - 0, - 0, - 41574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39334, - 0, - 0, - 0, - 26117, - 0, - 0, - 0, - 0, - 0, - 0, - 5100, - 0, - 0, - 0, - 0, - 0, - 23496, - 27813, - 4045, - 54918, - 0, - 0, - 0, - 0, - 0, - 0, - 6473, - 7428, - 0, - 0, - 0, - 0, - 6792, - 0, - 0, - 0, - 0, - 0, - 3560, - 32103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 54790, - 0, - 0, - 6926, - 0, - 0, - 0, - 0, - 16518, - 0, - 0, - 0, - 0, - 0, - 20806, - 0, - 0, - 0, - 0, - 1841, - 3174, - 0, - 0, - 0, - 0, - 9612, - 18374, - 0, - 0, - 0, - 0, - 32744, - 0, - 0, - 9671, - 0, - 59879, - 0, - 23300, - 8073, - 0, - 0, - 14758, - 0, - 0, - 0, - 10342, - 0, - 0, - 0, - 0, - 0, - 0, - 24808, - 14759, - 0, - 0, - 0, - 0, - 0, - 0, - 5515, - 0, - 0, - 14852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2354, - 23271, - 0, - 32740, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18472, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8972, - 21669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25574, - 0, - 0, - 0, - 0, - 5096, - 0, - 14283, - 55367, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12644, - 0, - 0, - 0, - 0, - 4651, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 661, - 0, - 0, - 13638, - 19466, - 0, - 0, - 0, - 0, - 0, - 31273, - 0, - 8010, - 0, - 0, - 0, - 0, - 0, - 3211, - 0, - 0, - 0, - 0, - 63430, - 0, - 0, - 0, - 0, - 0, - 15237, - 0, - 0, - 0, - 0, - 0, - 0, - 19018, - 2437, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14312, - 0, - 0, - 0, - 0, - 16836, - 0, - 0, - 471, - 35975, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6023, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11593, - 9639, - 0, - 0, - 0, - 55783, - 0, - 5700, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27908, - 0, - 26598, - 0, - 0, - 6667, - 6470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62534, - 0, - 0, - 0, - 0, - 16522, - 27911, - 0, - 0, - 10025, - 7172, - 0, - 0, - 779, - 0, - 360, - 17477, - 0, - 0, - 0, - 61991, - 7752, - 7717, - 1494, - 0, - 0, - 0, - 26569, - 40742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26406, - 10474, - 32196, - 0, - 0, - 0, - 0, - 0, - 50567, - 16521, - 11716, - 0, - 0, - 0, - 0, - 0, - 55558, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61926, - 0, - 26436, - 0, - 0, - 0, - 0, - 4459, - 10598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9223, - 0, - 29318, - 0, - 0, - 0, - 0, - 0, - 60423, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47078, - 0, - 50246, - 0, - 12612, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61799, - 0, - 55015, - 0, - 21060, - 7309, - 0, - 0, - 0, - 0, - 0, - 11976, - 0, - 0, - 0, - 0, - 23527, - 0, - 0, - 0, - 0, - 0, - 0, - 10347, - 15942, - 0, - 34023, - 0, - 0, - 0, - 0, - 4969, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28997, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36454, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3466, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19716, - 28872, - 0, - 0, - 0, - 0, - 0, - 22152, - 0, - 0, - 0, - 0, - 0, - 0, - 26342, - 0, - 0, - 0, - 9764, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21798, - 0, - 0, - 0, - 0, - 13, - 6853, - 32136, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 750, - 0, - 0, - 54502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46183, - 0, - 0, - 625, - 22854, - 0, - 0, - 0, - 0, - 2061, - 23588, - 0, - 0, - 11049, - 56262, - 0, - 0, - 18538, - 1509, - 0, - 0, - 17258, - 4453, - 0, - 0, - 0, - 0, - 12429, - 0, - 0, - 0, - 0, - 8102, - 0, - 0, - 0, - 0, - 0, - 0, - 8074, - 0, - 23852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16136, - 3428, - 0, - 27876, - 0, - 0, - 0, - 7332, - 0, - 0, - 0, - 0, - 0, - 28900, - 0, - 0, - 2284, - 0, - 0, - 17573, - 201, - 1508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31365, - 27688, - 22565, - 0, - 0, - 0, - 5159, - 0, - 0, - 0, - 0, - 4584, - 42599, - 0, - 0, - 0, - 44422, - 1068, - 23173, - 0, - 0, - 0, - 613, - 0, - 0, - 0, - 12645, - 0, - 0, - 0, - 0, - 0, - 27076, - 6732, - 0, - 0, - 0, - 3913, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22244, - 29992, - 15911, - 0, - 0, - 0, - 0, - 0, - 22982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50598, - 0, - 0, - 0, - 0, - 0, - 0, - 5161, - 1574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19108, - 0, - 0, - 0, - 35014, - 0, - 0, - 0, - 25956, - 29067, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47079, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1356, - 61927, - 0, - 0, - 0, - 64455, - 2122, - 64231, - 0, - 0, - 18763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 907, - 34471, - 0, - 0, - 0, - 39078, - 0, - 0, - 1995, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56518, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 822, - 0, - 15978, - 44423, - 0, - 0, - 3112, - 325, - 0, - 0, - 0, - 0, - 0, - 15397, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1193, - 4294, - 4968, - 15559, - 0, - 46150, - 0, - 0, - 0, - 0, - 0, - 18917, - 0, - 0, - 0, - 0, - 0, - 0, - 9928, - 37543, - 0, - 0, - 0, - 0, - 13097, - 36999, - 0, - 0, - 0, - 15430, - 0, - 0, - 8424, - 29639, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40487, - 0, - 13284, - 0, - 11141, - 0, - 0, - 0, - 32388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5298, - 57702, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13060, - 0, - 0, - 0, - 0, - 0, - 0, - 8233, - 42278, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36422, - 0, - 0, - 0, - 7972, - 0, - 0, - 0, - 18437, - 0, - 0, - 0, - 0, - 7406, - 0, - 0, - 0, - 9225, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13865, - 47591, - 18220, - 53703, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2796, - 0, - 0, - 0, - 0, - 0, - 24940, - 17223, - 0, - 0, - 0, - 13221, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15848, - 0, - 0, - 0, - 0, - 0, - 6122, - 1735, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16968, - 18151, - 0, - 0, - 0, - 0, - 0, - 47494, - 0, - 0, - 0, - 0, - 0, - 0, - 26089, - 19494, - 0, - 0, - 0, - 0, - 0, - 15494, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28809, - 0, - 0, - 0, - 0, - 42727, - 0, - 55174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20485, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15172, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35302, - 0, - 48135, - 20972, - 33094, - 0, - 0, - 0, - 0, - 0, - 9765, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39559, - 0, - 0, - 13736, - 6950, - 0, - 0, - 0, - 0, - 23658, - 8903, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22662, - 0, - 0, - 0, - 0, - 0, - 58886, - 7468, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64550, - 0, - 0, - 0, - 0, - 0, - 47622, - 0, - 0, - 0, - 50886, - 0, - 0, - 0, - 0, - 0, - 57606, - 912, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1449, - 0, - 1169, - 0, - 718, - 46151, - 12104, - 0, - 0, - 0, - 0, - 0, - 0, - 48230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1259, - 0, - 0, - 33734, - 23208, - 62567, - 0, - 65158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28684, - 59878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25769, - 0, - 0, - 0, - 0, - 65479, - 0, - 0, - 0, - 0, - 555, - 22789, - 0, - 19748, - 1769, - 10246, - 8680, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14250, - 0, - 5899, - 3303, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10795, - 0, - 0, - 0, - 16204, - 0, - 0, - 0, - 0, - 0, - 26986, - 2469, - 0, - 14660, - 0, - 0, - 0, - 0, - 0, - 45447, - 12234, - 3494, - 4555, - 10566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2801, - 0, - 0, - 0, - 15755, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39654, - 0, - 0, - 0, - 0, - 0, - 0, - 6763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33574, - 0, - 10279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63527, - 0, - 0, - 3912, - 0, - 0, - 7492, - 0, - 0, - 0, - 35142, - 0, - 0, - 0, - 0, - 0, - 0, - 17576, - 8103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16713, - 4198, - 0, - 0, - 4782, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16228, - 0, - 0, - 0, - 0, - 25961, - 20166, - 0, - 0, - 0, - 10980, - 0, - 0, - 0, - 0, - 0, - 14340, - 18922, - 14567, - 0, - 44199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18406, - 0, - 0, - 0, - 0, - 0, - 37606, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20902, - 0, - 0, - 0, - 56358, - 0, - 38342, - 0, - 0, - 0, - 0, - 9514, - 36071, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21700, - 0, - 0, - 5266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1134, - 0, - 1453, - 0, - 0, - 0, - 0, - 0, - 3882, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4004, - 0, - 0, - 0, - 51910, - 0, - 0, - 0, - 0, - 0, - 23076, - 4648, - 0, - 0, - 0, - 31051, - 25351, - 0, - 0, - 0, - 22884, - 0, - 0, - 0, - 0, - 0, - 63975, - 0, - 0, - 2376, - 16997, - 0, - 0, - 2096, - 0, - 0, - 0, - 3373, - 7046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30726, - 0, - 0, - 0, - 0, - 20, - 0, - 13707, - 614, - 0, - 0, - 12840, - 3079, - 0, - 0, - 0, - 0, - 0, - 51046, - 3729, - 0, - 32680, - 0, - 0, - 0, - 0, - 0, - 24008, - 62759, - 0, - 0, - 4745, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2414, - 0, - 0, - 44262, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24937, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19140, - 0, - 13575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39110, - 0, - 0, - 0, - 28036, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4261, - 0, - 0, - 0, - 0, - 5992, - 0, - 264, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13739, - 0, - 21928, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4232, - 15110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30022, - 0, - 0, - 27977, - 0, - 0, - 0, - 0, - 0, - 24776, - 0, - 0, - 0, - 0, - 0, - 2962, - 0, - 0, - 0, - 0, - 0, - 0, - 26564, - 22441, - 0, - 0, - 0, - 0, - 0, - 13640, - 11205, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19305, - 1894, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14119, - 5224, - 135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25796, - 0, - 0, - 0, - 0, - 0, - 0, - 7470, - 0, - 0, - 0, - 0, - 63815, - 0, - 55654, - 0, - 0, - 12584, - 0, - 1524, - 33223, - 0, - 0, - 0, - 9895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11624, - 0, - 0, - 0, - 5614, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21320, - 0, - 0, - 53607, - 0, - 51206, - 0, - 0, - 0, - 25863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8964, - 1740, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7975, - 0, - 0, - 3306, - 8134, - 0, - 8389, - 48, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25766, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 52166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21477, - 31112, - 31652, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28452, - 0, - 0, - 0, - 44231, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24805, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12428, - 6471, - 0, - 0, - 0, - 0, - 525, - 17926, - 0, - 0, - 0, - 26919, - 0, - 0, - 18120, - 0, - 0, - 0, - 30024, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29189, - 0, - 0, - 0, - 43559, - 0, - 0, - 0, - 0, - 0, - 0, - 19787, - 7557, - 0, - 59334, - 0, - 0, - 10184, - 6085, - 0, - 44039, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11175, - 0, - 0, - 0, - 0, - 30440, - 63110, - 0, - 0, - 0, - 0, - 0, - 0, - 11017, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27204, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29126, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 622, - 0, - 5226, - 2727, - 0, - 15588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4650, - 0, - 2675, - 0, - 0, - 32420, - 0, - 0, - 0, - 61511, - 0, - 0, - 5419, - 17829, - 2123, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38183, - 2640, - 0, - 11274, - 14533, - 1842, - 0, - 0, - 42663, - 12681, - 3430, - 0, - 11845, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6533, - 0, - 0, - 0, - 0, - 0, - 54598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12616, - 38535, - 0, - 0, - 0, - 0, - 0, - 32229, - 0, - 0, - 0, - 54279, - 0, - 48614, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31401, - 0, - 0, - 0, - 0, - 34310, - 0, - 0, - 0, - 22788, - 0, - 52134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23302, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40678, - 0, - 0, - 0, - 51463, - 535, - 0, - 0, - 0, - 0, - 15525, - 0, - 0, - 0, - 0, - 0, - 0, - 4904, - 869, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1678, - 0, - 692, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26216, - 0, - 0, - 0, - 0, - 0, - 29355, - 0, - 0, - 0, - 0, - 25095, - 0, - 0, - 0, - 0, - 4335, - 0, - 0, - 0, - 0, - 0, - 14538, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27273, - 55014, - 0, - 0, - 0, - 0, - 0, - 27271, - 0, - 0, - 0, - 0, - 0, - 30468, - 0, - 0, - 0, - 0, - 18186, - 0, - 0, - 0, - 0, - 0, - 14345, - 0, - 0, - 0, - 2152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58438, - 21034, - 0, - 23339, - 21318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21412, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12869, - 0, - 0, - 4875, - 0, - 0, - 0, - 0, - 29191, - 0, - 0, - 0, - 0, - 0, - 0, - 1640, - 10247, - 0, - 14244, - 0, - 0, - 0, - 0, - 9867, - 0, - 0, - 0, - 0, - 0, - 12363, - 0, - 0, - 7653, - 0, - 0, - 4168, - 2663, - 0, - 4580, - 0, - 11143, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30662, - 0, - 0, - 0, - 0, - 0, - 6724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13764, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 234, - 6821, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25639, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29958, - 0, - 3461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28324, - 18795, - 7013, - 12746, - 11655, - 0, - 37287, - 0, - 0, - 10953, - 7718, - 9705, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8137, - 17988, - 0, - 25156, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15784, - 6918, - 0, - 0, - 0, - 0, - 7019, - 10919, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4171, - 55495, - 4940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22440, - 19333, - 0, - 0, - 28136, - 0, - 6249, - 21317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53414, - 0, - 0, - 0, - 57318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39303, - 0, - 0, - 0, - 0, - 0, - 19940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2698, - 3911, - 0, - 0, - 0, - 26790, - 0, - 0, - 0, - 0, - 0, - 0, - 32424, - 0, - 0, - 18470, - 0, - 0, - 0, - 14726, - 29834, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1000, - 4197, - 0, - 0, - 0, - 19366, - 0, - 0, - 0, - 39878, - 0, - 0, - 0, - 0, - 2185, - 8901, - 5288, - 9829, - 25000, - 0, - 0, - 0, - 0, - 0, - 0, - 1062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35622, - 0, - 0, - 23048, - 62503, - 6506, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13609, - 10438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7723, - 42119, - 0, - 0, - 0, - 0, - 0, - 13317, - 0, - 0, - 0, - 41606, - 0, - 27111, - 0, - 0, - 21194, - 11461, - 0, - 0, - 0, - 0, - 26856, - 58342, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20940, - 48710, - 0, - 0, - 0, - 0, - 0, - 0, - 5227, - 0, - 0, - 0, - 0, - 0, - 10061, - 31300, - 0, - 0, - 0, - 19236, - 0, - 0, - 0, - 0, - 0, - 30277, - 13896, - 0, - 0, - 0, - 12876, - 13159, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 428, - 46951, - 13134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21668, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2249, - 0, - 0, - 0, - 0, - 44967, - 0, - 0, - 0, - 0, - 0, - 0, - 3465, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24868, - 0, - 0, - 0, - 0, - 0, - 23909, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16164, - 0, - 10437, - 0, - 0, - 5263, - 20102, - 20938, - 0, - 0, - 0, - 1192, - 1030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21385, - 4870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18596, - 0, - 0, - 0, - 0, - 1422, - 4038, - 2858, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48998, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6508, - 37350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17001, - 39431, - 0, - 0, - 0, - 0, - 0, - 30182, - 0, - 21445, - 7403, - 28164, - 0, - 51750, - 0, - 0, - 0, - 62631, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13477, - 0, - 0, - 456, - 26693, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14890, - 0, - 0, - 0, - 0, - 0, - 26697, - 22022, - 13225, - 27364, - 0, - 0, - 0, - 18884, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1448, - 5413, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6340, - 0, - 0, - 18091, - 18725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22118, - 0, - 0, - 0, - 18981, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29223, - 3724, - 0, - 0, - 0, - 0, - 43526, - 0, - 0, - 0, - 25668, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21545, - 9862, - 0, - 22692, - 32201, - 60646, - 0, - 7300, - 0, - 0, - 0, - 58887, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19460, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50342, - 0, - 65255, - 4360, - 17286, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28708, - 0, - 0, - 30025, - 60102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47014, - 0, - 31973, - 0, - 9572, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18501, - 0, - 0, - 0, - 0, - 0, - 14597, - 0, - 0, - 0, - 53735, - 5228, - 22183, - 0, - 0, - 0, - 0, - 0, - 0, - 1554, - 24164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10827, - 0, - 0, - 0, - 0, - 34918, - 0, - 0, - 0, - 0, - 22252, - 0, - 0, - 46855, - 0, - 0, - 0, - 0, - 0, - 31207, - 0, - 0, - 10733, - 0, - 0, - 63334, - 0, - 0, - 0, - 0, - 8616, - 50119, - 20169, - 12678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58087, - 20298, - 5, - 0, - 0, - 30920, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 296, - 13190, - 0, - 30663, - 0, - 0, - 18536, - 12228, - 0, - 6788, - 0, - 0, - 0, - 0, - 30890, - 21796, - 0, - 0, - 526, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20965, - 0, - 0, - 0, - 0, - 2161, - 0, - 0, - 0, - 0, - 0, - 0, - 24038, - 0, - 0, - 0, - 0, - 13544, - 7398, - 0, - 0, - 32522, - 9605, - 0, - 0, - 0, - 0, - 3208, - 7590, - 0, - 0, - 0, - 43846, - 0, - 0, - 0, - 38663, - 0, - 0, - 0, - 0, - 0, - 39014, - 4142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6373, - 0, - 0, - 13676, - 0, - 0, - 0, - 0, - 30374, - 21288, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22791, - 0, - 0, - 0, - 0, - 0, - 37958, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9452, - 9990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4841, - 0, - 0, - 0, - 0, - 18820, - 152, - 0, - 0, - 0, - 0, - 0, - 13260, - 3334, - 0, - 0, - 24234, - 8422, - 0, - 17957, - 0, - 0, - 0, - 10244, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7204, - 0, - 0, - 0, - 0, - 1201, - 26151, - 0, - 31173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64838, - 4203, - 7525, - 521, - 0, - 18888, - 37031, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7082, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4490, - 12487, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36615, - 0, - 0, - 0, - 14854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6539, - 13029, - 9704, - 38983, - 0, - 0, - 0, - 0, - 168, - 10405, - 0, - 0, - 0, - 0, - 394, - 25607, - 0, - 57063, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16141, - 19878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29446, - 0, - 12036, - 0, - 0, - 0, - 0, - 0, - 6982, - 18572, - 0, - 24584, - 14535, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16, - 0, - 21642, - 0, - 0, - 0, - 0, - 0, - 0, - 5254, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1622, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3853, - 9126, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7241, - 10982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 950, - 0, - 0, - 57990, - 0, - 0, - 277, - 0, - 0, - 0, - 694, - 36007, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42470, - 0, - 0, - 0, - 0, - 18409, - 51142, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28646, - 0, - 0, - 0, - 30693, - 0, - 0, - 0, - 0, - 0, - 56295, - 5544, - 0, - 0, - 0, - 0, - 8518, - 8366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45670, - 0, - 0, - 9608, - 33062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18694, - 0, - 0, - 0, - 0, - 1672, - 23493, - 0, - 0, - 6955, - 7655, - 0, - 36134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23432, - 647, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13382, - 0, - 0, - 0, - 19621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20228, - 0, - 0, - 2728, - 31495, - 0, - 0, - 0, - 0, - 29096, - 22213, - 235, - 35495, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5348, - 0, - 0, - 0, - 0, - 8968, - 1989, - 0, - 0, - 1066, - 0, - 0, - 11492, - 5965, - 31367, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18727, - 0, - 0, - 0, - 6757, - 0, - 0, - 10765, - 4646, - 0, - 36166, - 0, - 27943, - 0, - 0, - 26888, - 8420, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29316, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4975, - 0, - 0, - 0, - 14762, - 3111, - 0, - 0, - 0, - 0, - 0, - 43399, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18980, - 0, - 0, - 0, - 0, - 0, - 44550, - 0, - 0, - 0, - 0, - 4051, - 0, - 0, - 0, - 0, - 37734, - 0, - 0, - 0, - 0, - 0, - 5188, - 0, - 0, - 0, - 0, - 0, - 24486, - 0, - 5989, - 0, - 41159, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20326, - 0, - 0, - 747, - 6884, - 0, - 0, - 0, - 41798, - 0, - 0, - 3117, - 22919, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21032, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9574, - 0, - 0, - 0, - 0, - 0, - 0, - 4302, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21068, - 34630, - 0, - 0, - 0, - 0, - 0, - 64071, - 0, - 0, - 0, - 0, - 0, - 0, - 26667, - 7943, - 0, - 0, - 0, - 0, - 0, - 52934, - 0, - 0, - 17002, - 0, - 0, - 0, - 0, - 0, - 0, - 20294, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27301, - 18347, - 7974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16874, - 0, - 0, - 0, - 0, - 45414, - 0, - 0, - 0, - 0, - 0, - 0, - 648, - 1575, - 0, - 0, - 0, - 31749, - 0, - 0, - 0, - 23301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15912, - 50535, - 0, - 0, - 0, - 0, - 1993, - 8582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15850, - 6183, - 0, - 0, - 0, - 0, - 3402, - 0, - 0, - 27494, - 0, - 0, - 749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26025, - 29606, - 0, - 0, - 7144, - 19622, - 30504, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21316, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21444, - 0, - 0, - 1289, - 6919, - 0, - 0, - 0, - 0, - 0, - 0, - 8299, - 0, - 0, - 0, - 14090, - 35655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2377, - 15206, - 0, - 0, - 6028, - 4452, - 0, - 25508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50310, - 0, - 0, - 0, - 0, - 1269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51014, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9286, - 0, - 7429, - 0, - 0, - 28393, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16680, - 452, - 0, - 0, - 0, - 0, - 0, - 23718, - 0, - 0, - 0, - 31750, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3568, - 0, - 0, - 13604, - 0, - 0, - 0, - 0, - 0, - 25255, - 0, - 0, - 0, - 50982, - 0, - 56582, - 0, - 0, - 7467, - 0, - 0, - 0, - 0, - 30181, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30564, - 7208, - 7845, - 0, - 0, - 0, - 0, - 0, - 0, - 7726, - 0, - 0, - 0, - 0, - 62182, - 0, - 0, - 0, - 41094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22695, - 0, - 0, - 0, - 0, - 0, - 0, - 17736, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50054, - 0, - 0, - 0, - 14180, - 0, - 0, - 0, - 0, - 0, - 0, - 8974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23332, - 0, - 0, - 0, - 11140, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24262, - 27145, - 9540, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26537, - 45510, - 6062, - 3879, - 0, - 0, - 20233, - 25991, - 0, - 0, - 17803, - 0, - 0, - 0, - 0, - 0, - 13962, - 5508, - 16971, - 27013, - 7437, - 31494, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17189, - 0, - 0, - 0, - 0, - 0, - 27492, - 0, - 0, - 26953, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41319, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47430, - 19596, - 12549, - 0, - 0, - 0, - 8390, - 1006, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24100, - 17577, - 4, - 0, - 0, - 0, - 0, - 0, - 22277, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26692, - 0, - 0, - 0, - 0, - 0, - 24676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29477, - 0, - 0, - 0, - 21573, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9864, - 14214, - 0, - 0, - 0, - 0, - 0, - 0, - 25771, - 5766, - 0, - 0, - 8909, - 8679, - 0, - 0, - 6861, - 16166, - 0, - 38887, - 0, - 0, - 0, - 0, - 0, - 0, - 12392, - 8678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 52646, - 1354, - 2950, - 0, - 14692, - 0, - 0, - 10572, - 49830, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3626, - 582, - 0, - 0, - 0, - 55750, - 0, - 0, - 0, - 30885, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5830, - 0, - 0, - 2090, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31142, - 0, - 0, - 0, - 0, - 0, - 10503, - 0, - 0, - 18825, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 57158, - 0, - 0, - 30792, - 63526, - 0, - 0, - 0, - 9863, - 16267, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18824, - 0, - 0, - 0, - 0, - 0, - 0, - 19653, - 25388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25480, - 23015, - 0, - 0, - 10440, - 6725, - 0, - 0, - 0, - 22436, - 24265, - 15109, - 0, - 0, - 0, - 62311, - 8906, - 34534, - 0, - 0, - 0, - 0, - 0, - 0, - 15913, - 1319, - 0, - 0, - 20296, - 1477, - 30760, - 0, - 25928, - 16772, - 0, - 0, - 1069, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17029, - 0, - 31909, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41542, - 0, - 21478, - 0, - 0, - 0, - 9796, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22187, - 58343, - 0, - 0, - 0, - 24295, - 0, - 0, - 0, - 0, - 0, - 61831, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2833, - 5829, - 0, - 0, - 0, - 62855, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16676, - 0, - 0, - 0, - 0, - 0, - 0, - 13577, - 27431, - 0, - 0, - 0, - 0, - 21480, - 10501, - 0, - 16932, - 0, - 0, - 0, - 0, - 0, - 22918, - 0, - 48294, - 2574, - 2150, - 0, - 0, - 0, - 0, - 1897, - 4518, - 0, - 0, - 0, - 0, - 0, - 0, - 25064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47942, - 0, - 0, - 0, - 0, - 10990, - 13767, - 25705, - 37863, - 21672, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43430, - 1712, - 0, - 0, - 0, - 0, - 18886, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10535, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14734, - 0, - 0, - 55782, - 0, - 0, - 30824, - 10886, - 0, - 0, - 0, - 0, - 0, - 51302, - 0, - 0, - 8012, - 0, - 0, - 0, - 0, - 0, - 20680, - 6981, - 0, - 57415, - 11, - 0, - 0, - 18277, - 0, - 14564, - 0, - 0, - 0, - 32390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19113, - 5158, - 0, - 11172, - 0, - 16774, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10315, - 13830, - 0, - 0, - 0, - 0, - 0, - 0, - 10410, - 7141, - 0, - 0, - 0, - 0, - 0, - 18116, - 0, - 0, - 0, - 44615, - 15403, - 13958, - 0, - 1540, - 14632, - 19525, - 24201, - 19781, - 0, - 0, - 0, - 24165, - 0, - 38951, - 0, - 0, - 0, - 0, - 0, - 6308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17416, - 15749, - 3438, - 13255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32228, - 0, - 0, - 0, - 0, - 176, - 0, - 0, - 50566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21540, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5284, - 0, - 0, - 0, - 0, - 0, - 0, - 25897, - 28326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15945, - 0, - 0, - 0, - 9804, - 293, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13988, - 23082, - 4677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5670, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6405, - 0, - 30692, - 0, - 0, - 0, - 61702, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45926, - 0, - 15398, - 0, - 0, - 0, - 0, - 0, - 0, - 4554, - 2692, - 0, - 0, - 0, - 0, - 0, - 32485, - 0, - 0, - 0, - 10084, - 0, - 0, - 0, - 0, - 0, - 0, - 24297, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22790, - 0, - 0, - 0, - 55110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7112, - 0, - 31530, - 45255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40743, - 17226, - 22599, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3695, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56999, - 0, - 0, - 0, - 0, - 0, - 13799, - 3114, - 21287, - 1353, - 7591, - 0, - 0, - 0, - 8455, - 0, - 0, - 6824, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14569, - 0, - 0, - 0, - 29000, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19979, - 0, - 18376, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11332, - 0, - 0, - 0, - 49863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2191, - 7527, - 23148, - 58022, - 0, - 0, - 0, - 30631, - 0, - 26565, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 754, - 0, - 0, - 15877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17510, - 7657, - 2821, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41927, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2569, - 34439, - 0, - 0, - 3790, - 0, - 0, - 0, - 15339, - 8775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15908, - 0, - 0, - 21419, - 8359, - 0, - 0, - 0, - 0, - 424, - 0, - 0, - 0, - 0, - 0, - 0, - 25318, - 8008, - 20551, - 0, - 0, - 0, - 45735, - 30058, - 30372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26180, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31432, - 10567, - 0, - 0, - 0, - 0, - 17450, - 0, - 0, - 0, - 0, - 0, - 0, - 30310, - 0, - 38022, - 0, - 0, - 0, - 0, - 0, - 28932, - 0, - 0, - 0, - 0, - 0, - 43910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22180, - 12075, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22247, - 0, - 0, - 22826, - 12359, - 0, - 0, - 0, - 0, - 4105, - 50407, - 0, - 0, - 0, - 0, - 0, - 0, - 13581, - 28583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28936, - 0, - 0, - 0, - 0, - 0, - 17673, - 10310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 905, - 57862, - 1580, - 0, - 0, - 0, - 0, - 58630, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13479, - 0, - 0, - 14153, - 13286, - 0, - 0, - 9259, - 0, - 0, - 0, - 0, - 0, - 6606, - 3524, - 0, - 0, - 0, - 0, - 0, - 6567, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 631, - 49255, - 0, - 0, - 0, - 0, - 0, - 42886, - 0, - 38215, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17580, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10213, - 0, - 0, - 0, - 0, - 3604, - 37767, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62087, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28715, - 4229, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1226, - 26820, - 0, - 0, - 0, - 12133, - 6984, - 261, - 21130, - 32548, - 0, - 0, - 0, - 0, - 0, - 0, - 3565, - 12390, - 20713, - 28071, - 0, - 0, - 1706, - 25287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14670, - 0, - 0, - 0, - 0, - 0, - 0, - 30534, - 0, - 0, - 0, - 12615, - 0, - 43750, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28228, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1224, - 3975, - 10954, - 6375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23180, - 20100, - 0, - 0, - 0, - 0, - 25736, - 8519, - 0, - 0, - 0, - 0, - 0, - 6663, - 0, - 2534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23720, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19398, - 0, - 47814, - 26281, - 49702, - 0, - 0, - 4332, - 12965, - 0, - 0, - 5704, - 3206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15396, - 0, - 0, - 0, - 44102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25317, - 1064, - 39271, - 27433, - 0, - 14952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14308, - 0, - 0, - 0, - 0, - 0, - 0, - 2763, - 4100, - 0, - 0, - 0, - 0, - 0, - 0, - 18792, - 0, - 0, - 0, - 22154, - 32583, - 0, - 6244, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49478, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21894, - 0, - 0, - 11048, - 0, - 0, - 0, - 0, - 0, - 0, - 11685, - 0, - 53862, - 0, - 0, - 15114, - 0, - 13870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 919, - 0, - 0, - 0, - 31916, - 0, - 22570, - 101, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7333, - 0, - 0, - 0, - 0, - 3272, - 0, - 0, - 0, - 0, - 27718, - 32712, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1782, - 0, - 3688, - 0, - 0, - 0, - 0, - 29862, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22469, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55302, - 850, - 15492, - 0, - 0, - 0, - 5927, - 19786, - 13350, - 0, - 25702, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15335, - 8394, - 0, - 0, - 0, - 0, - 0, - 0, - 26566, - 0, - 0, - 0, - 0, - 843, - 2245, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6959, - 0, - 20488, - 1638, - 0, - 0, - 11533, - 50759, - 0, - 0, - 0, - 0, - 0, - 20871, - 0, - 0, - 0, - 0, - 0, - 24519, - 0, - 0, - 0, - 0, - 9544, - 23591, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20969, - 7109, - 29001, - 0, - 0, - 32422, - 31720, - 64294, - 0, - 0, - 0, - 0, - 16106, - 0, - 0, - 0, - 6930, - 4933, - 0, - 0, - 0, - 22917, - 0, - 27015, - 0, - 0, - 0, - 0, - 19880, - 8070, - 0, - 0, - 0, - 0, - 23945, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3310, - 0, - 87, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18439, - 0, - 0, - 0, - 20742, - 0, - 0, - 0, - 10597, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20236, - 0, - 0, - 0, - 16584, - 3429, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27241, - 0, - 0, - 0, - 0, - 16132, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 244, - 28261, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29509, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2921, - 31781, - 0, - 0, - 0, - 0, - 0, - 0, - 6408, - 4196, - 344, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11689, - 45863, - 0, - 0, - 0, - 0, - 906, - 3301, - 0, - 0, - 25544, - 32421, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1260, - 61607, - 0, - 27302, - 0, - 0, - 8682, - 16614, - 0, - 0, - 0, - 0, - 10830, - 0, - 0, - 9604, - 15049, - 13413, - 0, - 0, - 0, - 0, - 0, - 0, - 26761, - 0, - 0, - 0, - 0, - 0, - 0, - 61990, - 0, - 0, - 0, - 0, - 0, - 12580, - 0, - 0, - 11432, - 0, - 0, - 0, - 0, - 0, - 22507, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12389, - 0, - 0, - 0, - 0, - 0, - 0, - 2408, - 22661, - 14507, - 43239, - 0, - 9700, - 0, - 0, - 24714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34086, - 0, - 0, - 22955, - 7238, - 0, - 0, - 0, - 0, - 0, - 28485, - 13806, - 20038, - 0, - 0, - 0, - 0, - 22602, - 0, - 0, - 0, - 1645, - 22340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26502, - 0, - 0, - 554, - 0, - 0, - 0, - 0, - 61735, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2694, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 883, - 27879, - 15948, - 0, - 3242, - 57382, - 0, - 0, - 0, - 0, - 0, - 0, - 13930, - 0, - 0, - 0, - 0, - 0, - 30922, - 0, - 4137, - 52615, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31911, - 16072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26340, - 0, - 61671, - 0, - 0, - 0, - 0, - 3145, - 56199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 280, - 0, - 5131, - 33479, - 0, - 15751, - 0, - 0, - 0, - 0, - 0, - 0, - 4136, - 1446, - 0, - 0, - 0, - 0, - 0, - 0, - 11304, - 17863, - 0, - 0, - 0, - 0, - 0, - 25125, - 0, - 0, - 0, - 36646, - 6057, - 0, - 0, - 0, - 855, - 11301, - 0, - 0, - 0, - 0, - 0, - 64774, - 0, - 0, - 0, - 19397, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1040, - 27367, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64358, - 0, - 0, - 178, - 132, - 0, - 0, - 14763, - 24455, - 0, - 0, - 0, - 46374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46246, - 0, - 0, - 0, - 37382, - 0, - 0, - 0, - 7462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8166, - 0, - 0, - 6921, - 0, - 0, - 0, - 9163, - 0, - 0, - 0, - 119, - 0, - 0, - 0, - 23146, - 17156, - 0, - 0, - 0, - 0, - 0, - 9127, - 0, - 0, - 0, - 17927, - 0, - 0, - 0, - 0, - 0, - 22084, - 0, - 0, - 0, - 0, - 0, - 39879, - 0, - 0, - 2035, - 0, - 1067, - 0, - 0, - 0, - 0, - 0, - 16652, - 59591, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20171, - 0, - 0, - 0, - 0, - 17733, - 0, - 0, - 0, - 0, - 0, - 32037, - 0, - 0, - 0, - 0, - 0, - 14277, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42022, - 0, - 0, - 26793, - 20358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8907, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27780, - 0, - 0, - 0, - 0, - 32330, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39399, - 0, - 9732, - 0, - 16199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 854, - 0, - 2984, - 45063, - 25418, - 26980, - 22539, - 0, - 9133, - 3653, - 15528, - 28743, - 4649, - 0, - 616, - 65127, - 0, - 0, - 0, - 61863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55303, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23880, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31848, - 62854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49606, - 0, - 27974, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32580, - 0, - 0, - 0, - 26052, - 4043, - 0, - 0, - 40454, - 0, - 0, - 26056, - 30565, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29288, - 1797, - 0, - 0, - 3220, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20427, - 0, - 0, - 0, - 0, - 23621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24261, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35591, - 0, - 0, - 6862, - 0, - 0, - 0, - 4265, - 0, - 6285, - 5383, - 0, - 0, - 0, - 0, - 0, - 36870, - 0, - 39847, - 0, - 0, - 17224, - 5414, - 27882, - 58118, - 0, - 0, - 13224, - 4262, - 0, - 0, - 0, - 31302, - 0, - 0, - 1388, - 2982, - 11881, - 0, - 0, - 0, - 0, - 0, - 0, - 16837, - 809, - 0, - 24140, - 10724, - 0, - 0, - 0, - 0, - 5835, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1256, - 19237, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5796, - 11848, - 0, - 0, - 52870, - 11464, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5645, - 9158, - 0, - 25223, - 0, - 0, - 0, - 0, - 0, - 39142, - 24968, - 8135, - 32104, - 28678, - 0, - 0, - 0, - 46311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23820, - 0, - 0, - 0, - 0, - 0, - 4050, - 0, - 1323, - 25220, - 0, - 0, - 0, - 20133, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13444, - 1198, - 60806, - 0, - 0, - 0, - 0, - 17356, - 50247, - 30632, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11944, - 999, - 0, - 0, - 0, - 0, - 4010, - 10404, - 0, - 0, - 0, - 0, - 0, - 0, - 10346, - 0, - 0, - 49510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38919, - 0, - 0, - 0, - 0, - 0, - 0, - 6351, - 60966, - 20137, - 487, - 0, - 0, - 0, - 0, - 0, - 0, - 655, - 2406, - 17387, - 43303, - 0, - 0, - 0, - 17063, - 0, - 0, - 213, - 0, - 0, - 0, - 0, - 0, - 0, - 17221, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10820, - 0, - 0, - 0, - 0, - 369, - 6, - 0, - 0, - 9098, - 21093, - 0, - 31653, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27143, - 0, - 0, - 16234, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6020, - 31723, - 28293, - 0, - 0, - 0, - 0, - 1936, - 30695, - 0, - 0, - 0, - 0, - 0, - 52902, - 0, - 0, - 29512, - 10791, - 0, - 20420, - 0, - 0, - 16010, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5324, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24328, - 0, - 0, - 0, - 0, - 0, - 0, - 40870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24648, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7786, - 2852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44678, - 0, - 17925, - 0, - 0, - 105, - 53062, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18762, - 0, - 0, - 40679, - 0, - 0, - 0, - 16165, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62310, - 1322, - 14247, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1832, - 6052, - 0, - 0, - 11882, - 0, - 0, - 0, - 0, - 17668, - 0, - 28262, - 0, - 29542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28007, - 0, - 0, - 0, - 57223, - 1585, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21162, - 0, - 0, - 62247, - 0, - 0, - 0, - 0, - 0, - 25414, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36326, - 0, - 0, - 0, - 23845, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2693, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13125, - 0, - 31236, - 0, - 0, - 0, - 0, - 0, - 22502, - 0, - 0, - 0, - 0, - 0, - 0, - 5994, - 10309, - 0, - 0, - 0, - 7269, - 0, - 0, - 0, - 0, - 17929, - 0, - 1011, - 44647, - 0, - 0, - 0, - 0, - 0, - 14919, - 0, - 0, - 0, - 0, - 20586, - 5350, - 0, - 0, - 0, - 45702, - 0, - 13189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35782, - 17992, - 0, - 0, - 0, - 0, - 0, - 8203, - 0, - 0, - 0, - 0, - 0, - 0, - 56678, - 0, - 0, - 0, - 0, - 0, - 38087, - 4233, - 0, - 2127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10148, - 0, - 0, - 0, - 2021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9220, - 0, - 0, - 0, - 0, - 19465, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 39206, - 0, - 38055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46982, - 0, - 0, - 0, - 0, - 0, - 22054, - 3850, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55, - 0, - 10542, - 0, - 0, - 0, - 0, - 7239, - 0, - 0, - 0, - 0, - 0, - 59367, - 0, - 0, - 14761, - 0, - 0, - 0, - 0, - 43079, - 0, - 0, - 0, - 0, - 0, - 2726, - 0, - 0, - 9582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 37478, - 0, - 0, - 0, - 31364, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20393, - 8933, - 0, - 0, - 0, - 0, - 0, - 9380, - 0, - 0, - 0, - 0, - 16905, - 549, - 0, - 0, - 0, - 0, - 182, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1558, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19242, - 0, - 0, - 0, - 0, - 0, - 0, - 24933, - 0, - 6276, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42310, - 23595, - 24068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13191, - 6158, - 2567, - 0, - 0, - 268, - 47047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27940, - 0, - 0, - 0, - 0, - 0, - 26726, - 0, - 0, - 0, - 0, - 8200, - 1222, - 31562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2922, - 8231, - 8904, - 29157, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23976, - 4836, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31658, - 0, - 0, - 31685, - 0, - 0, - 2889, - 6213, - 0, - 0, - 0, - 0, - 0, - 13605, - 0, - 0, - 0, - 0, - 0, - 24772, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20684, - 26468, - 24075, - 0, - 0, - 0, - 21193, - 0, - 715, - 679, - 0, - 0, - 0, - 0, - 0, - 0, - 3050, - 7654, - 0, - 0, - 0, - 13798, - 0, - 0, - 0, - 0, - 15, - 27973, - 0, - 0, - 8491, - 2086, - 0, - 0, - 0, - 43206, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 60391, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25892, - 0, - 22276, - 0, - 34374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20165, - 0, - 0, - 25672, - 0, - 0, - 0, - 1811, - 24839, - 0, - 31044, - 0, - 0, - 25513, - 0, - 0, - 0, - 0, - 0, - 12810, - 0, - 0, - 62438, - 0, - 0, - 1325, - 0, - 364, - 3782, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8042, - 19687, - 0, - 0, - 0, - 33415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7205, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11844, - 0, - 0, - 0, - 0, - 3341, - 1543, - 6698, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29766, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41158, - 0, - 24294, - 0, - 3844, - 12329, - 0, - 0, - 0, - 13738, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26245, - 0, - 0, - 0, - 0, - 0, - 0, - 6378, - 0, - 343, - 4838, - 0, - 0, - 0, - 24358, - 11688, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1489, - 34759, - 0, - 0, - 0, - 0, - 363, - 51974, - 1878, - 11013, - 0, - 0, - 32265, - 59782, - 0, - 0, - 0, - 28421, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22756, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14089, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29257, - 61222, - 0, - 30661, - 0, - 28327, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27108, - 8843, - 0, - 9673, - 2084, - 0, - 0, - 0, - 16327, - 0, - 48455, - 0, - 0, - 0, - 0, - 0, - 0, - 4876, - 9316, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9035, - 18852, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4164, - 0, - 0, - 14827, - 1349, - 0, - 0, - 0, - 0, - 0, - 11909, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21765, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31272, - 63910, - 0, - 0, - 0, - 25924, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44487, - 0, - 0, - 0, - 20612, - 0, - 0, - 27754, - 31428, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17287, - 0, - 3943, - 0, - 0, - 0, - 63302, - 0, - 0, - 0, - 0, - 25256, - 19942, - 0, - 55142, - 0, - 39046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15367, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28422, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9576, - 63847, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25226, - 5734, - 0, - 0, - 0, - 0, - 0, - 0, - 13801, - 4997, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43942, - 1270, - 2566, - 6284, - 0, - 0, - 16230, - 0, - 0, - 0, - 20678, - 0, - 0, - 0, - 0, - 0, - 38855, - 0, - 0, - 0, - 0, - 29643, - 0, - 0, - 0, - 41, - 3655, - 0, - 0, - 0, - 0, - 0, - 14276, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15686, - 0, - 0, - 0, - 15718, - 0, - 50694, - 0, - 0, - 16232, - 8007, - 0, - 0, - 0, - 5060, - 329, - 11591, - 51, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13065, - 7302, - 27530, - 15366, - 0, - 24934, - 0, - 0, - 0, - 17828, - 0, - 0, - 4552, - 6311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47686, - 368, - 12103, - 10122, - 33830, - 0, - 0, - 599, - 18534, - 9579, - 49479, - 0, - 5668, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13157, - 0, - 0, - 0, - 0, - 23274, - 14055, - 0, - 0, - 0, - 0, - 0, - 48903, - 0, - 0, - 0, - 0, - 0, - 0, - 1871, - 0, - 15434, - 0, - 0, - 0, - 16174, - 62470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30501, - 0, - 0, - 0, - 0, - 25675, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9285, - 0, - 0, - 25323, - 1669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3588, - 0, - 0, - 0, - 0, - 0, - 32902, - 0, - 0, - 4426, - 0, - 0, - 0, - 0, - 57959, - 0, - 0, - 0, - 0, - 0, - 0, - 29898, - 58278, - 0, - 0, - 0, - 0, - 11880, - 1220, - 0, - 0, - 0, - 41479, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23141, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40167, - 9484, - 3493, - 0, - 0, - 0, - 0, - 0, - 21126, - 0, - 0, - 0, - 0, - 8649, - 18918, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34886, - 2601, - 0, - 0, - 0, - 0, - 12518, - 0, - 0, - 0, - 0, - 7976, - 10311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45190, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16842, - 20229, - 0, - 0, - 0, - 0, - 0, - 0, - 7528, - 4614, - 0, - 0, - 0, - 0, - 0, - 30086, - 0, - 0, - 0, - 1671, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9896, - 6277, - 0, - 0, - 0, - 0, - 0, - 61191, - 0, - 41287, - 0, - 21956, - 0, - 0, - 20010, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13195, - 0, - 0, - 0, - 0, - 1381, - 0, - 0, - 0, - 0, - 365, - 30951, - 24268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27944, - 359, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28487, - 0, - 0, - 77, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 56775, - 12586, - 8421, - 0, - 0, - 0, - 0, - 0, - 0, - 26185, - 14599, - 0, - 0, - 8040, - 5702, - 12585, - 3109, - 0, - 0, - 0, - 0, - 0, - 21574, - 5388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5106, - 52454, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1907, - 29895, - 0, - 6116, - 0, - 0, - 0, - 0, - 11081, - 5285, - 0, - 28069, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4104, - 0, - 0, - 0, - 0, - 0, - 0, - 41511, - 0, - 0, - 0, - 0, - 0, - 0, - 5262, - 0, - 0, - 0, - 503, - 4231, - 7720, - 34343, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7304, - 10374, - 1718, - 0, - 0, - 29127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23497, - 22567, - 6952, - 2340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20360, - 12453, - 0, - 45094, - 0, - 0, - 0, - 0, - 0, - 28582, - 0, - 0, - 0, - 0, - 680, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23084, - 0, - 0, - 0, - 30696, - 0, - 0, - 0, - 0, - 45862, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5580, - 6053, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 712, - 70, - 0, - 0, - 26091, - 11335, - 0, - 0, - 0, - 0, - 13612, - 0, - 13160, - 1926, - 435, - 51559, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47302, - 19083, - 0, - 0, - 12742, - 0, - 1607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6155, - 37095, - 0, - 0, - 0, - 0, - 0, - 18948, - 7146, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7848, - 2055, - 0, - 0, - 0, - 0, - 8910, - 0, - 19336, - 0, - 0, - 48070, - 8490, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9932, - 56423, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4133, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32011, - 0, - 0, - 30918, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20389, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18889, - 0, - 0, - 0, - 0, - 8965, - 0, - 0, - 0, - 44358, - 0, - 0, - 0, - 8997, - 0, - 34055, - 0, - 0, - 0, - 0, - 0, - 29350, - 0, - 0, - 501, - 17767, - 0, - 0, - 32457, - 60262, - 0, - 0, - 0, - 30886, - 0, - 0, - 3757, - 1063, - 0, - 0, - 0, - 25637, - 0, - 0, - 0, - 0, - 0, - 28068, - 0, - 26374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11684, - 0, - 0, - 0, - 0, - 0, - 0, - 24779, - 229, - 0, - 13766, - 0, - 0, - 7402, - 11525, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26313, - 23686, - 0, - 0, - 29736, - 47527, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27268, - 0, - 0, - 0, - 0, - 553, - 0, - 0, - 0, - 0, - 0, - 0, - 32038, - 0, - 0, - 0, - 0, - 1135, - 26596, - 0, - 0, - 12300, - 14631, - 0, - 0, - 0, - 43238, - 0, - 871, - 0, - 0, - 31496, - 0, - 8457, - 17669, - 0, - 12836, - 0, - 0, - 0, - 22726, - 0, - 38758, - 0, - 0, - 375, - 6564, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 170, - 18535, - 0, - 22948, - 0, - 0, - 32360, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25764, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15652, - 0, - 0, - 0, - 32774, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15145, - 0, - 0, - 0, - 21100, - 27654, - 0, - 0, - 0, - 0, - 0, - 0, - 4874, - 26215, - 0, - 1639, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4169, - 0, - 0, - 0, - 0, - 0, - 7336, - 0, - 0, - 0, - 0, - 21572, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24644, - 1675, - 2533, - 0, - 0, - 0, - 53318, - 0, - 13094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6246, - 0, - 22020, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28453, - 5576, - 5124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27910, - 0, - 29382, - 18216, - 8583, - 0, - 0, - 0, - 39174, - 0, - 43558, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11973, - 0, - 0, - 0, - 0, - 0, - 23397, - 0, - 0, - 0, - 0, - 6091, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6474, - 16197, - 14217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26728, - 0, - 567, - 48839, - 0, - 0, - 0, - 0, - 0, - 15271, - 0, - 0, - 31818, - 43974, - 2450, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11368, - 9191, - 0, - 44454, - 0, - 0, - 0, - 0, - 0, - 0, - 14568, - 12293, - 0, - 0, - 0, - 8453, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32040, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 902, - 0, - 0, - 0, - 27236, - 5612, - 11495, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9194, - 23684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27430, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26217, - 44870, - 0, - 0, - 0, - 0, - 0, - 0, - 5581, - 7173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 52775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20968, - 18340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4107, - 11239, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48806, - 0, - 0, - 0, - 32292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10884, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27562, - 0, - 5643, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3089, - 31525, - 0, - 19684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61415, - 0, - 0, - 0, - 0, - 0, - 36198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7908, - 0, - 0, - 0, - 0, - 872, - 743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1229, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32484, - 0, - 0, - 0, - 0, - 0, - 34822, - 0, - 0, - 0, - 0, - 0, - 50726, - 0, - 0, - 0, - 0, - 7274, - 0, - 0, - 0, - 15304, - 11526, - 0, - 0, - 0, - 3047, - 0, - 0, - 0, - 0, - 0, - 0, - 22376, - 0, - 0, - 0, - 846, - 0, - 0, - 0, - 0, - 35815, - 0, - 0, - 0, - 23652, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23721, - 2148, - 0, - 0, - 0, - 0, - 0, - 0, - 14856, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1358, - 0, - 3082, - 0, - 0, - 0, - 848, - 10949, - 0, - 0, - 0, - 0, - 0, - 0, - 6504, - 0, - 0, - 14372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8201, - 9958, - 0, - 0, - 0, - 0, - 0, - 0, - 24266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26469, - 0, - 0, - 0, - 0, - 18604, - 2053, - 0, - 33511, - 0, - 0, - 0, - 0, - 0, - 9222, - 0, - 0, - 0, - 0, - 0, - 44006, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12044, - 390, - 0, - 0, - 0, - 0, - 0, - 4935, - 0, - 48646, - 0, - 56102, - 3052, - 16070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8612, - 9320, - 38311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 500, - 0, - 0, - 0, - 0, - 42918, - 0, - 32550, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27434, - 57926, - 17064, - 0, - 0, - 46502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26760, - 6756, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 624, - 0, - 5000, - 0, - 0, - 0, - 0, - 32293, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26246, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23, - 7301, - 0, - 0, - 0, - 36199, - 0, - 40838, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27178, - 57350, - 0, - 0, - 12457, - 9317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16810, - 0, - 0, - 0, - 14510, - 0, - 0, - 0, - 0, - 21319, - 0, - 0, - 0, - 13508, - 17, - 11365, - 0, - 0, - 0, - 0, - 5291, - 0, - 8329, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27685, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 52006, - 0, - 0, - 0, - 7493, - 0, - 44263, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9800, - 0, - 0, - 0, - 25676, - 61478, - 0, - 0, - 0, - 0, - 0, - 0, - 5773, - 0, - 0, - 0, - 0, - 41991, - 26057, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22629, - 0, - 0, - 0, - 47783, - 362, - 1959, - 23468, - 0, - 0, - 0, - 10921, - 0, - 0, - 0, - 3150, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32456, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4559, - 3270, - 0, - 0, - 983, - 0, - 0, - 26343, - 0, - 33446, - 0, - 0, - 0, - 61767, - 0, - 48390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2790, - 0, - 39782, - 7849, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1544, - 2183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4040, - 2471, - 20009, - 30020, - 0, - 0, - 11242, - 0, - 0, - 0, - 5578, - 53382, - 0, - 22631, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12901, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 215, - 0, - 0, - 9030, - 0, - 0, - 0, - 0, - 0, - 0, - 265, - 1412, - 0, - 0, - 11626, - 3687, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17449, - 24359, - 0, - 0, - 26729, - 40134, - 0, - 0, - 0, - 0, - 29768, - 61958, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20908, - 0, - 0, - 0, - 0, - 0, - 11016, - 0, - 0, - 47462, - 21547, - 5926, - 0, - 0, - 14728, - 2983, - 24104, - 15301, - 0, - 0, - 0, - 0, - 0, - 32645, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3300, - 0, - 0, - 0, - 15972, - 0, - 0, - 0, - 0, - 0, - 0, - 6634, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3076, - 0, - 30983, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 106, - 0, - 0, - 0, - 0, - 12775, - 0, - 0, - 0, - 0, - 7177, - 18022, - 0, - 0, - 0, - 0, - 0, - 22534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 49894, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27560, - 0, - 0, - 0, - 0, - 30278, - 10668, - 23877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 44582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48454, - 0, - 0, - 0, - 0, - 6442, - 0, - 16330, - 22951, - 0, - 0, - 16904, - 0, - 0, - 0, - 0, - 644, - 0, - 0, - 0, - 40038, - 0, - 0, - 0, - 37222, - 0, - 0, - 0, - 9830, - 0, - 0, - 0, - 0, - 0, - 34919, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13733, - 0, - 0, - 0, - 28196, - 0, - 0, - 0, - 0, - 0, - 19876, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23558, - 0, - 11142, - 0, - 27781, - 0, - 0, - 0, - 0, - 13864, - 0, - 0, - 0, - 24682, - 47847, - 0, - 0, - 0, - 0, - 6890, - 0, - 0, - 0, - 0, - 0, - 3981, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1772, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3603, - 1991, - 0, - 27396, - 8652, - 0, - 18312, - 0, - 0, - 0, - 0, - 30054, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11270, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20708, - 0, - 0, - 0, - 0, - 338, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7050, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14862, - 0, - 0, - 3492, - 0, - 0, - 0, - 55878, - 0, - 0, - 0, - 16486, - 0, - 0, - 0, - 18119, - 0, - 0, - 0, - 0, - 0, - 0, - 2154, - 1284, - 0, - 0, - 23113, - 31751, - 0, - 0, - 29547, - 0, - 0, - 0, - 0, - 0, - 0, - 36647, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7913, - 0, - 0, - 0, - 0, - 20644, - 0, - 0, - 10508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43622, - 0, - 0, - 0, - 0, - 0, - 40966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 246, - 901, - 11529, - 5191, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24454, - 0, - 0, - 26665, - 27590, - 0, - 27397, - 0, - 0, - 0, - 0, - 0, - 0, - 23562, - 2949, - 0, - 0, - 30344, - 62214, - 0, - 47334, - 2026, - 18885, - 0, - 0, - 0, - 48678, - 0, - 0, - 0, - 22694, - 0, - 0, - 1972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15465, - 0, - 0, - 0, - 0, - 38822, - 0, - 0, - 0, - 0, - 945, - 32708, - 0, - 54791, - 0, - 14918, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23396, - 0, - 0, - 0, - 0, - 0, - 0, - 5486, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7722, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30856, - 64166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35206, - 0, - 0, - 0, - 30535, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62663, - 0, - 0, - 1096, - 17574, - 31820, - 0, - 0, - 14375, - 4402, - 27207, - 0, - 0, - 21448, - 4676, - 0, - 0, - 0, - 0, - 16585, - 5094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4845, - 0, - 0, - 32870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31466, - 0, - 0, - 0, - 0, - 31783, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4522, - 16039, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14469, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7464, - 4773, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18636, - 0, - 0, - 0, - 25640, - 0, - 0, - 0, - 0, - 0, - 0, - 2244, - 0, - 0, - 11818, - 0, - 1168, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6540, - 23079, - 13770, - 7719, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 58150, - 528, - 34502, - 32682, - 0, - 0, - 12997, - 0, - 0, - 0, - 0, - 0, - 2214, - 0, - 0, - 0, - 0, - 0, - 58567, - 0, - 0, - 0, - 26375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26437, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26121, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32005, - 22952, - 59047, - 0, - 13543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16328, - 0, - 0, - 33542, - 0, - 0, - 0, - 19782, - 0, - 0, - 0, - 16644, - 0, - 0, - 0, - 0, - 31688, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10276, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36327, - 0, - 0, - 29480, - 0, - 0, - 0, - 777, - 12709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27398, - 0, - 0, - 0, - 4455, - 9037, - 31397, - 0, - 9221, - 0, - 0, - 0, - 60487, - 20840, - 1796, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8364, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19752, - 44902, - 0, - 38566, - 0, - 0, - 18027, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10662, - 0, - 0, - 0, - 0, - 0, - 11812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19910, - 0, - 0, - 0, - 45030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19978, - 5127, - 0, - 11620, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19817, - 0, - 5579, - 9350, - 0, - 0, - 21002, - 19718, - 0, - 0, - 0, - 21926, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20711, - 0, - 0, - 0, - 20197, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 40550, - 0, - 0, - 0, - 57510, - 0, - 0, - 0, - 53895, - 0, - 0, - 15017, - 0, - 17000, - 39367, - 2347, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8588, - 0, - 0, - 0, - 0, - 0, - 3273, - 17862, - 3498, - 2085, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19048, - 0, - 0, - 0, - 0, - 0, - 11978, - 58631, - 0, - 0, - 0, - 0, - 0, - 0, - 523, - 0, - 12969, - 198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28197, - 0, - 47846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4549, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 687, - 14917, - 748, - 8229, - 0, - 0, - 0, - 0, - 0, - 0, - 2476, - 12935, - 0, - 0, - 0, - 0, - 0, - 0, - 22792, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27528, - 59142, - 0, - 0, - 20876, - 20134, - 0, - 0, - 0, - 0, - 440, - 12068, - 0, - 58951, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48038, - 0, - 0, - 0, - 60999, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15716, - 7498, - 5476, - 0, - 0, - 0, - 0, - 20202, - 37959, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29801, - 0, - 5451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50790, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24485, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13573, - 0, - 0, - 22856, - 0, - 0, - 0, - 0, - 21927, - 0, - 0, - 0, - 0, - 0, - 0, - 9130, - 0, - 0, - 0, - 0, - 0, - 0, - 13732, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2282, - 583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3726, - 26503, - 0, - 0, - 0, - 0, - 0, - 0, - 9258, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21604, - 0, - 0, - 0, - 45574, - 0, - 0, - 0, - 0, - 0, - 20710, - 0, - 0, - 0, - 42694, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1163, - 6694, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10948, - 0, - 0, - 0, - 29700, - 0, - 0, - 0, - 0, - 0, - 58823, - 3796, - 27399, - 20939, - 10180, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19, - 29287, - 28649, - 14534, - 0, - 0, - 16428, - 45607, - 0, - 0, - 0, - 0, - 0, - 0, - 25322, - 0, - 4908, - 0, - 0, - 0, - 0, - 0, - 0, - 25476, - 29097, - 14246, - 11053, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18502, - 0, - 0, - 0, - 44390, - 0, - 0, - 0, - 17765, - 0, - 0, - 0, - 0, - 0, - 0, - 24520, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17319, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28166, - 0, - 0, - 0, - 0, - 0, - 48198, - 0, - 0, - 31467, - 0, - 24585, - 0, - 0, - 0, - 0, - 18692, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23596, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7236, - 968, - 13637, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14791, - 0, - 0, - 0, - 12324, - 0, - 12741, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11108, - 0, - 0, - 0, - 0, - 4009, - 40295, - 20616, - 4357, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15015, - 0, - 0, - 0, - 0, - 0, - 43751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23974, - 0, - 0, - 0, - 0, - 17480, - 20647, - 0, - 0, - 0, - 0, - 0, - 0, - 8876, - 0, - 0, - 40806, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14502, - 17160, - 17764, - 0, - 0, - 31594, - 35431, - 0, - 0, - 2890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27524, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8228, - 0, - 56583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 34278, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2662, - 0, - 26724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22281, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3049, - 54983, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 837, - 0, - 17604, - 0, - 0, - 0, - 0, - 0, - 28838, - 0, - 0, - 0, - 0, - 0, - 0, - 26312, - 0, - 0, - 3910, - 0, - 0, - 0, - 25830, - 0, - 0, - 0, - 0, - 0, - 8391, - 0, - 19845, - 19240, - 1092, - 0, - 0, - 5449, - 0, - 0, - 0, - 0, - 17188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10629, - 0, - 0, - 6671, - 61094, - 5832, - 8358, - 0, - 0, - 0, - 55078, - 0, - 0, - 0, - 0, - 0, - 29860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 51494, - 0, - 28647, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25989, - 0, - 0, - 30153, - 61318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24903, - 0, - 0, - 0, - 4388, - 0, - 42054, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 50918, - 0, - 0, - 0, - 0, - 0, - 0, - 26251, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5929, - 2853, - 0, - 37126, - 7372, - 197, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2027, - 934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55686, - 0, - 0, - 5672, - 5447, - 0, - 62758, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2923, - 0, - 556, - 1415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8645, - 0, - 9477, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24235, - 228, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16970, - 18823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25158, - 0, - 0, - 0, - 0, - 0, - 18567, - 20072, - 2823, - 14313, - 1830, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27048, - 23526, - 0, - 0, - 0, - 0, - 0, - 997, - 492, - 0, - 14730, - 16677, - 396, - 13574, - 0, - 0, - 0, - 41671, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19045, - 0, - 0, - 0, - 421, - 17545, - 3110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47111, - 14475, - 56551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3697, - 0, - 0, - 0, - 0, - 0, - 0, - 49382, - 0, - 35559, - 0, - 0, - 0, - 0, - 40, - 0, - 11496, - 15621, - 0, - 8550, - 0, - 0, - 0, - 63462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36966, - 0, - 50406, - 0, - 46022, - 1001, - 0, - 0, - 12069, - 3249, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15241, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 64743, - 0, - 0, - 0, - 0, - 0, - 58759, - 0, - 0, - 0, - 0, - 1136, - 26981, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17732, - 0, - 0, - 0, - 17157, - 20011, - 6629, - 0, - 43879, - 0, - 0, - 0, - 13572, - 25128, - 10759, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 875, - 24007, - 0, - 0, - 0, - 0, - 7628, - 0, - 0, - 0, - 0, - 0, - 12268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19300, - 23210, - 356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15236, - 0, - 0, - 0, - 0, - 0, - 49670, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21764, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13931, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45799, - 0, - 0, - 436, - 3589, - 0, - 0, - 11402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 62822, - 0, - 0, - 0, - 39814, - 588, - 0, - 0, - 0, - 0, - 0, - 0, - 27750, - 0, - 0, - 0, - 0, - 0, - 0, - 1609, - 22660, - 2346, - 18951, - 0, - 16068, - 0, - 0, - 0, - 0, - 0, - 0, - 5162, - 11110, - 0, - 0, - 0, - 0, - 15048, - 1060, - 0, - 7879, - 18280, - 326, - 0, - 14886, - 19656, - 0, - 7594, - 0, - 0, - 0, - 0, - 0, - 781, - 581, - 0, - 16198, - 0, - 0, - 0, - 0, - 0, - 0, - 1078, - 9892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4489, - 0, - 0, - 0, - 0, - 33798, - 0, - 0, - 0, - 54534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 33158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42086, - 13834, - 2757, - 8456, - 16773, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3434, - 0, - 0, - 0, - 0, - 0, - 3946, - 29668, - 0, - 0, - 30634, - 36775, - 0, - 0, - 0, - 0, - 0, - 24901, - 0, - 16069, - 6280, - 0, - 0, - 0, - 0, - 41990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27365, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1450, - 44807, - 0, - 0, - 0, - 32100, - 0, - 0, - 0, - 0, - 0, - 35110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17448, - 19591, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1739, - 0, - 0, - 0, - 0, - 5511, - 0, - 0, - 0, - 32934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18180, - 0, - 0, - 0, - 23428, - 19754, - 0, - 0, - 31174, - 3021, - 31655, - 23464, - 0, - 0, - 0, - 0, - 0, - 0, - 57255, - 0, - 0, - 21292, - 64487, - 0, - 0, - 0, - 0, - 0, - 0, - 25802, - 9189, - 0, - 0, - 0, - 0, - 0, - 49254, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5837, - 50023, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15495, - 0, - 0, - 0, - 0, - 0, - 51942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28104, - 58662, - 0, - 50214, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2988, - 0, - 22888, - 31812, - 0, - 0, - 0, - 0, - 0, - 2020, - 0, - 18916, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23973, - 0, - 0, - 0, - 0, - 17516, - 11717, - 0, - 0, - 0, - 55911, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2855, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46822, - 0, - 24710, - 28586, - 0, - 0, - 0, - 1556, - 0, - 0, - 30117, - 0, - 0, - 22090, - 57127, - 3403, - 14087, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1041, - 0, - 10633, - 6916, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27269, - 0, - 0, - 13322, - 18055, - 0, - 29380, - 0, - 56454, - 0, - 0, - 120, - 0, - 0, - 8773, - 0, - 0, - 0, - 0, - 16040, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27242, - 23781, - 0, - 1572, - 0, - 28134, - 0, - 0, - 1512, - 0, - 0, - 0, - 0, - 0, - 0, - 27684, - 0, - 38470, - 0, - 0, - 0, - 0, - 0, - 0, - 1513, - 8709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46566, - 0, - 0, - 0, - 0, - 28521, - 61159, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13028, - 0, - 5863, - 0, - 0, - 15693, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1131, - 23398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26212, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18404, - 0, - 0, - 0, - 0, - 1457, - 26183, - 0, - 0, - 2475, - 7110, - 0, - 0, - 0, - 0, - 27180, - 60166, - 0, - 0, - 0, - 20262, - 0, - 41862, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2762, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26148, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28229, - 0, - 0, - 0, - 29254, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27690, - 0, - 0, - 13636, - 12776, - 1862, - 0, - 0, - 0, - 0, - 0, - 0, - 17225, - 3271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28039, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4457, - 18117, - 0, - 2023, - 402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 104, - 3654, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18440, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22150, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24074, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12004, - 0, - 32358, - 0, - 0, - 3081, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10792, - 1799, - 21322, - 0, - 7880, - 12613, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13993, - 0, - 0, - 0, - 16202, - 0, - 0, - 0, - 0, - 32102, - 0, - 37223, - 0, - 10500, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 32008, - 0, - 0, - 0, - 0, - 0, - 23816, - 3236, - 0, - 0, - 0, - 0, - 0, - 23237, - 0, - 0, - 5642, - 0, - 4684, - 294, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26852, - 0, - 0, - 0, - 0, - 0, - 0, - 7148, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7890, - 61798, - 939, - 0, - 0, - 56679, - 0, - 0, - 0, - 0, - 0, - 27078, - 202, - 5029, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28005, - 0, - 0, - 15273, - 24741, - 5676, - 20452, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 55910, - 0, - 0, - 0, - 0, - 5069, - 27942, - 0, - 21092, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12517, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21384, - 28260, - 0, - 2502, - 20108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 46726, - 0, - 30790, - 0, - 0, - 0, - 0, - 0, - 14725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1099, - 6372, - 0, - 0, - 0, - 12422, - 15182, - 0, - 8683, - 0, - 10665, - 19462, - 0, - 0, - 0, - 0, - 0, - 0, - 1590, - 0, - 31628, - 0, - 22632, - 19750, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24198, - 0, - 0, - 0, - 0, - 0, - 50662, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9131, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11015, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16490, - 54695, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12937, - 0, - 0, - 0, - 0, - 16004, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2181, - 6923, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15624, - 11302, - 0, - 0, - 5673, - 7559, - 0, - 0, - 14668, - 15684, - 0, - 0, - 0, - 0, - 0, - 0, - 24204, - 48134, - 0, - 24230, - 0, - 55527, - 0, - 0, - 3464, - 19141, - 0, - 0, - 0, - 0, -} diff --git a/vendor/github.com/andybalholm/brotli/encode.go b/vendor/github.com/andybalholm/brotli/encode.go deleted file mode 100644 index 8e25a4e..0000000 --- a/vendor/github.com/andybalholm/brotli/encode.go +++ /dev/null @@ -1,1220 +0,0 @@ -package brotli - -import ( - "io" - "math" -) - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/** Minimal value for ::BROTLI_PARAM_LGWIN parameter. */ -const minWindowBits = 10 - -/** - * Maximal value for ::BROTLI_PARAM_LGWIN parameter. - * - * @note equal to @c BROTLI_MAX_DISTANCE_BITS constant. - */ -const maxWindowBits = 24 - -/** - * Maximal value for ::BROTLI_PARAM_LGWIN parameter - * in "Large Window Brotli" (32-bit). - */ -const largeMaxWindowBits = 30 - -/** Minimal value for ::BROTLI_PARAM_LGBLOCK parameter. */ -const minInputBlockBits = 16 - -/** Maximal value for ::BROTLI_PARAM_LGBLOCK parameter. */ -const maxInputBlockBits = 24 - -/** Minimal value for ::BROTLI_PARAM_QUALITY parameter. */ -const minQuality = 0 - -/** Maximal value for ::BROTLI_PARAM_QUALITY parameter. */ -const maxQuality = 11 - -/** Options for ::BROTLI_PARAM_MODE parameter. */ -const ( - modeGeneric = 0 - modeText = 1 - modeFont = 2 -) - -/** Default value for ::BROTLI_PARAM_QUALITY parameter. */ -const defaultQuality = 11 - -/** Default value for ::BROTLI_PARAM_LGWIN parameter. */ -const defaultWindow = 22 - -/** Default value for ::BROTLI_PARAM_MODE parameter. */ -const defaultMode = modeGeneric - -/** Operations that can be performed by streaming encoder. */ -const ( - operationProcess = 0 - operationFlush = 1 - operationFinish = 2 - operationEmitMetadata = 3 -) - -const ( - streamProcessing = 0 - streamFlushRequested = 1 - streamFinished = 2 - streamMetadataHead = 3 - streamMetadataBody = 4 -) - -type Writer struct { - dst io.Writer - options WriterOptions - err error - - params encoderParams - hasher_ hasherHandle - input_pos_ uint64 - ringbuffer_ ringBuffer - commands []command - num_literals_ uint - last_insert_len_ uint - last_flush_pos_ uint64 - last_processed_pos_ uint64 - dist_cache_ [numDistanceShortCodes]int - saved_dist_cache_ [4]int - last_bytes_ uint16 - last_bytes_bits_ byte - prev_byte_ byte - prev_byte2_ byte - storage []byte - small_table_ [1 << 10]int - large_table_ []int - large_table_size_ uint - cmd_depths_ [128]byte - cmd_bits_ [128]uint16 - cmd_code_ [512]byte - cmd_code_numbits_ uint - command_buf_ []uint32 - literal_buf_ []byte - tiny_buf_ struct { - u64 [2]uint64 - u8 [16]byte - } - remaining_metadata_bytes_ uint32 - stream_state_ int - is_last_block_emitted_ bool - is_initialized_ bool -} - -func inputBlockSize(s *Writer) uint { - return uint(1) << uint(s.params.lgblock) -} - -func unprocessedInputSize(s *Writer) uint64 { - return s.input_pos_ - s.last_processed_pos_ -} - -func remainingInputBlockSize(s *Writer) uint { - var delta uint64 = unprocessedInputSize(s) - var block_size uint = inputBlockSize(s) - if delta >= uint64(block_size) { - return 0 - } - return block_size - uint(delta) -} - -/* Wraps 64-bit input position to 32-bit ring-buffer position preserving - "not-a-first-lap" feature. */ -func wrapPosition(position uint64) uint32 { - var result uint32 = uint32(position) - var gb uint64 = position >> 30 - if gb > 2 { - /* Wrap every 2GiB; The first 3GB are continuous. */ - result = result&((1<<30)-1) | (uint32((gb-1)&1)+1)<<30 - } - - return result -} - -func (s *Writer) getStorage(size int) []byte { - if len(s.storage) < size { - s.storage = make([]byte, size) - } - - return s.storage -} - -func hashTableSize(max_table_size uint, input_size uint) uint { - var htsize uint = 256 - for htsize < max_table_size && htsize < input_size { - htsize <<= 1 - } - - return htsize -} - -func getHashTable(s *Writer, quality int, input_size uint, table_size *uint) []int { - var max_table_size uint = maxHashTableSize(quality) - var htsize uint = hashTableSize(max_table_size, input_size) - /* Use smaller hash table when input.size() is smaller, since we - fill the table, incurring O(hash table size) overhead for - compression, and if the input is short, we won't need that - many hash table entries anyway. */ - - var table []int - assert(max_table_size >= 256) - if quality == fastOnePassCompressionQuality { - /* Only odd shifts are supported by fast-one-pass. */ - if htsize&0xAAAAA == 0 { - htsize <<= 1 - } - } - - if htsize <= uint(len(s.small_table_)) { - table = s.small_table_[:] - } else { - if htsize > s.large_table_size_ { - s.large_table_size_ = htsize - s.large_table_ = nil - s.large_table_ = make([]int, htsize) - } - - table = s.large_table_ - } - - *table_size = htsize - for i := 0; i < int(htsize); i++ { - table[i] = 0 - } - return table -} - -func encodeWindowBits(lgwin int, large_window bool, last_bytes *uint16, last_bytes_bits *byte) { - if large_window { - *last_bytes = uint16((lgwin&0x3F)<<8 | 0x11) - *last_bytes_bits = 14 - } else { - if lgwin == 16 { - *last_bytes = 0 - *last_bytes_bits = 1 - } else if lgwin == 17 { - *last_bytes = 1 - *last_bytes_bits = 7 - } else if lgwin > 17 { - *last_bytes = uint16((lgwin-17)<<1 | 0x01) - *last_bytes_bits = 4 - } else { - *last_bytes = uint16((lgwin-8)<<4 | 0x01) - *last_bytes_bits = 7 - } - } -} - -/* Decide about the context map based on the ability of the prediction - ability of the previous byte UTF8-prefix on the next byte. The - prediction ability is calculated as Shannon entropy. Here we need - Shannon entropy instead of 'BitsEntropy' since the prefix will be - encoded with the remaining 6 bits of the following byte, and - BitsEntropy will assume that symbol to be stored alone using Huffman - coding. */ - -var kStaticContextMapContinuation = [64]uint32{ - 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -} -var kStaticContextMapSimpleUTF8 = [64]uint32{ - 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -} - -func chooseContextMap(quality int, bigram_histo []uint32, num_literal_contexts *uint, literal_context_map *[]uint32) { - var monogram_histo = [3]uint32{0} - var two_prefix_histo = [6]uint32{0} - var total uint - var i uint - var dummy uint - var entropy [4]float64 - for i = 0; i < 9; i++ { - monogram_histo[i%3] += bigram_histo[i] - two_prefix_histo[i%6] += bigram_histo[i] - } - - entropy[1] = shannonEntropy(monogram_histo[:], 3, &dummy) - entropy[2] = (shannonEntropy(two_prefix_histo[:], 3, &dummy) + shannonEntropy(two_prefix_histo[3:], 3, &dummy)) - entropy[3] = 0 - for i = 0; i < 3; i++ { - entropy[3] += shannonEntropy(bigram_histo[3*i:], 3, &dummy) - } - - total = uint(monogram_histo[0] + monogram_histo[1] + monogram_histo[2]) - assert(total != 0) - entropy[0] = 1.0 / float64(total) - entropy[1] *= entropy[0] - entropy[2] *= entropy[0] - entropy[3] *= entropy[0] - - if quality < minQualityForHqContextModeling { - /* 3 context models is a bit slower, don't use it at lower qualities. */ - entropy[3] = entropy[1] * 10 - } - - /* If expected savings by symbol are less than 0.2 bits, skip the - context modeling -- in exchange for faster decoding speed. */ - if entropy[1]-entropy[2] < 0.2 && entropy[1]-entropy[3] < 0.2 { - *num_literal_contexts = 1 - } else if entropy[2]-entropy[3] < 0.02 { - *num_literal_contexts = 2 - *literal_context_map = kStaticContextMapSimpleUTF8[:] - } else { - *num_literal_contexts = 3 - *literal_context_map = kStaticContextMapContinuation[:] - } -} - -/* Decide if we want to use a more complex static context map containing 13 - context values, based on the entropy reduction of histograms over the - first 5 bits of literals. */ - -var kStaticContextMapComplexUTF8 = [64]uint32{ - 11, 11, 12, 12, /* 0 special */ - 0, 0, 0, 0, /* 4 lf */ - 1, 1, 9, 9, /* 8 space */ - 2, 2, 2, 2, /* !, first after space/lf and after something else. */ - 1, 1, 1, 1, /* " */ - 8, 3, 3, 3, /* % */ - 1, 1, 1, 1, /* ({[ */ - 2, 2, 2, 2, /* }]) */ - 8, 4, 4, 4, /* :; */ - 8, 7, 4, 4, /* . */ - 8, 0, 0, 0, /* > */ - 3, 3, 3, 3, /* [0..9] */ - 5, 5, 10, 5, /* [A-Z] */ - 5, 5, 10, 5, - 6, 6, 6, 6, /* [a-z] */ - 6, 6, 6, 6, -} - -func shouldUseComplexStaticContextMap(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) bool { - /* Try the more complex static context map only for long data. */ - if size_hint < 1<<20 { - return false - } else { - var end_pos uint = start_pos + length - var combined_histo = [32]uint32{0} - var context_histo = [13][32]uint32{[32]uint32{0}} - var total uint32 = 0 - var entropy [3]float64 - var dummy uint - var i uint - var utf8_lut contextLUT = getContextLUT(contextUTF8) - /* To make entropy calculations faster and to fit on the stack, we collect - histograms over the 5 most significant bits of literals. One histogram - without context and 13 additional histograms for each context value. */ - for ; start_pos+64 <= end_pos; start_pos += 4096 { - var stride_end_pos uint = start_pos + 64 - var prev2 byte = input[start_pos&mask] - var prev1 byte = input[(start_pos+1)&mask] - var pos uint - - /* To make the analysis of the data faster we only examine 64 byte long - strides at every 4kB intervals. */ - for pos = start_pos + 2; pos < stride_end_pos; pos++ { - var literal byte = input[pos&mask] - var context byte = byte(kStaticContextMapComplexUTF8[getContext(prev1, prev2, utf8_lut)]) - total++ - combined_histo[literal>>3]++ - context_histo[context][literal>>3]++ - prev2 = prev1 - prev1 = literal - } - } - - entropy[1] = shannonEntropy(combined_histo[:], 32, &dummy) - entropy[2] = 0 - for i = 0; i < 13; i++ { - entropy[2] += shannonEntropy(context_histo[i][0:], 32, &dummy) - } - - entropy[0] = 1.0 / float64(total) - entropy[1] *= entropy[0] - entropy[2] *= entropy[0] - - /* The triggering heuristics below were tuned by compressing the individual - files of the silesia corpus. If we skip this kind of context modeling - for not very well compressible input (i.e. entropy using context modeling - is 60% of maximal entropy) or if expected savings by symbol are less - than 0.2 bits, then in every case when it triggers, the final compression - ratio is improved. Note however that this heuristics might be too strict - for some cases and could be tuned further. */ - if entropy[2] > 3.0 || entropy[1]-entropy[2] < 0.2 { - return false - } else { - *num_literal_contexts = 13 - *literal_context_map = kStaticContextMapComplexUTF8[:] - return true - } - } -} - -func decideOverLiteralContextModeling(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) { - if quality < minQualityForContextModeling || length < 64 { - return - } else if shouldUseComplexStaticContextMap(input, start_pos, length, mask, quality, size_hint, num_literal_contexts, literal_context_map) { - } else /* Context map was already set, nothing else to do. */ - { - var end_pos uint = start_pos + length - /* Gather bi-gram data of the UTF8 byte prefixes. To make the analysis of - UTF8 data faster we only examine 64 byte long strides at every 4kB - intervals. */ - - var bigram_prefix_histo = [9]uint32{0} - for ; start_pos+64 <= end_pos; start_pos += 4096 { - var lut = [4]int{0, 0, 1, 2} - var stride_end_pos uint = start_pos + 64 - var prev int = lut[input[start_pos&mask]>>6] * 3 - var pos uint - for pos = start_pos + 1; pos < stride_end_pos; pos++ { - var literal byte = input[pos&mask] - bigram_prefix_histo[prev+lut[literal>>6]]++ - prev = lut[literal>>6] * 3 - } - } - - chooseContextMap(quality, bigram_prefix_histo[0:], num_literal_contexts, literal_context_map) - } -} - -func shouldCompress_encode(data []byte, mask uint, last_flush_pos uint64, bytes uint, num_literals uint, num_commands uint) bool { - /* TODO: find more precise minimal block overhead. */ - if bytes <= 2 { - return false - } - if num_commands < (bytes>>8)+2 { - if float64(num_literals) > 0.99*float64(bytes) { - var literal_histo = [256]uint32{0} - const kSampleRate uint32 = 13 - const kMinEntropy float64 = 7.92 - var bit_cost_threshold float64 = float64(bytes) * kMinEntropy / float64(kSampleRate) - var t uint = uint((uint32(bytes) + kSampleRate - 1) / kSampleRate) - var pos uint32 = uint32(last_flush_pos) - var i uint - for i = 0; i < t; i++ { - literal_histo[data[pos&uint32(mask)]]++ - pos += kSampleRate - } - - if bitsEntropy(literal_histo[:], 256) > bit_cost_threshold { - return false - } - } - } - - return true -} - -/* Chooses the literal context mode for a metablock */ -func chooseContextMode(params *encoderParams, data []byte, pos uint, mask uint, length uint) int { - /* We only do the computation for the option of something else than - CONTEXT_UTF8 for the highest qualities */ - if params.quality >= minQualityForHqBlockSplitting && !isMostlyUTF8(data, pos, mask, length, kMinUTF8Ratio) { - return contextSigned - } - - return contextUTF8 -} - -func writeMetaBlockInternal(data []byte, mask uint, last_flush_pos uint64, bytes uint, is_last bool, literal_context_mode int, params *encoderParams, prev_byte byte, prev_byte2 byte, num_literals uint, commands []command, saved_dist_cache []int, dist_cache []int, storage_ix *uint, storage []byte) { - var wrapped_last_flush_pos uint32 = wrapPosition(last_flush_pos) - var last_bytes uint16 - var last_bytes_bits byte - var literal_context_lut contextLUT = getContextLUT(literal_context_mode) - var block_params encoderParams = *params - - if bytes == 0 { - /* Write the ISLAST and ISEMPTY bits. */ - writeBits(2, 3, storage_ix, storage) - - *storage_ix = (*storage_ix + 7) &^ 7 - return - } - - if !shouldCompress_encode(data, mask, last_flush_pos, bytes, num_literals, uint(len(commands))) { - /* Restore the distance cache, as its last update by - CreateBackwardReferences is now unused. */ - copy(dist_cache, saved_dist_cache[:4]) - - storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) - return - } - - assert(*storage_ix <= 14) - last_bytes = uint16(storage[1])<<8 | uint16(storage[0]) - last_bytes_bits = byte(*storage_ix) - if params.quality <= maxQualityForStaticEntropyCodes { - storeMetaBlockFast(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) - } else if params.quality < minQualityForBlockSplit { - storeMetaBlockTrivial(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) - } else { - mb := getMetaBlockSplit() - if params.quality < minQualityForHqBlockSplitting { - var num_literal_contexts uint = 1 - var literal_context_map []uint32 = nil - if !params.disable_literal_context_modeling { - decideOverLiteralContextModeling(data, uint(wrapped_last_flush_pos), bytes, mask, params.quality, params.size_hint, &num_literal_contexts, &literal_context_map) - } - - buildMetaBlockGreedy(data, uint(wrapped_last_flush_pos), mask, prev_byte, prev_byte2, literal_context_lut, num_literal_contexts, literal_context_map, commands, mb) - } else { - buildMetaBlock(data, uint(wrapped_last_flush_pos), mask, &block_params, prev_byte, prev_byte2, commands, literal_context_mode, mb) - } - - if params.quality >= minQualityForOptimizeHistograms { - /* The number of distance symbols effectively used for distance - histograms. It might be less than distance alphabet size - for "Large Window Brotli" (32-bit). */ - var num_effective_dist_codes uint32 = block_params.dist.alphabet_size - if num_effective_dist_codes > numHistogramDistanceSymbols { - num_effective_dist_codes = numHistogramDistanceSymbols - } - - optimizeHistograms(num_effective_dist_codes, mb) - } - - storeMetaBlock(data, uint(wrapped_last_flush_pos), bytes, mask, prev_byte, prev_byte2, is_last, &block_params, literal_context_mode, commands, mb, storage_ix, storage) - freeMetaBlockSplit(mb) - } - - if bytes+4 < *storage_ix>>3 { - /* Restore the distance cache and last byte. */ - copy(dist_cache, saved_dist_cache[:4]) - - storage[0] = byte(last_bytes) - storage[1] = byte(last_bytes >> 8) - *storage_ix = uint(last_bytes_bits) - storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) - } -} - -func chooseDistanceParams(params *encoderParams) { - var distance_postfix_bits uint32 = 0 - var num_direct_distance_codes uint32 = 0 - - if params.quality >= minQualityForNonzeroDistanceParams { - var ndirect_msb uint32 - if params.mode == modeFont { - distance_postfix_bits = 1 - num_direct_distance_codes = 12 - } else { - distance_postfix_bits = params.dist.distance_postfix_bits - num_direct_distance_codes = params.dist.num_direct_distance_codes - } - - ndirect_msb = (num_direct_distance_codes >> distance_postfix_bits) & 0x0F - if distance_postfix_bits > maxNpostfix || num_direct_distance_codes > maxNdirect || ndirect_msb<<distance_postfix_bits != num_direct_distance_codes { - distance_postfix_bits = 0 - num_direct_distance_codes = 0 - } - } - - initDistanceParams(params, distance_postfix_bits, num_direct_distance_codes) -} - -func ensureInitialized(s *Writer) bool { - if s.is_initialized_ { - return true - } - - s.last_bytes_bits_ = 0 - s.last_bytes_ = 0 - s.remaining_metadata_bytes_ = math.MaxUint32 - - sanitizeParams(&s.params) - s.params.lgblock = computeLgBlock(&s.params) - chooseDistanceParams(&s.params) - - ringBufferSetup(&s.params, &s.ringbuffer_) - - /* Initialize last byte with stream header. */ - { - var lgwin int = int(s.params.lgwin) - if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { - lgwin = brotli_max_int(lgwin, 18) - } - - encodeWindowBits(lgwin, s.params.large_window, &s.last_bytes_, &s.last_bytes_bits_) - } - - if s.params.quality == fastOnePassCompressionQuality { - s.cmd_depths_ = [128]byte{ - 0, 4, 4, 5, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, - 0, 0, 0, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, - 7, 7, 10, 10, 10, 10, 10, 10, 0, 4, 4, 5, 5, 5, 6, 6, - 7, 8, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, - 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 10, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - } - s.cmd_bits_ = [128]uint16{ - 0, 0, 8, 9, 3, 35, 7, 71, - 39, 103, 23, 47, 175, 111, 239, 31, - 0, 0, 0, 4, 12, 2, 10, 6, - 13, 29, 11, 43, 27, 59, 87, 55, - 15, 79, 319, 831, 191, 703, 447, 959, - 0, 14, 1, 25, 5, 21, 19, 51, - 119, 159, 95, 223, 479, 991, 63, 575, - 127, 639, 383, 895, 255, 767, 511, 1023, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 59, 7, 39, 23, 55, 30, 1, 17, 9, 25, 5, 0, 8, 4, 12, - 2, 10, 6, 21, 13, 29, 3, 19, 11, 15, 47, 31, 95, 63, 127, 255, - 767, 2815, 1791, 3839, 511, 2559, 1535, 3583, 1023, 3071, 2047, 4095, - } - s.cmd_code_ = [512]byte{ - 0xff, 0x77, 0xd5, 0xbf, 0xe7, 0xde, 0xea, 0x9e, 0x51, 0x5d, 0xde, 0xc6, - 0x70, 0x57, 0xbc, 0x58, 0x58, 0x58, 0xd8, 0xd8, 0x58, 0xd5, 0xcb, 0x8c, - 0xea, 0xe0, 0xc3, 0x87, 0x1f, 0x83, 0xc1, 0x60, 0x1c, 0x67, 0xb2, 0xaa, - 0x06, 0x83, 0xc1, 0x60, 0x30, 0x18, 0xcc, 0xa1, 0xce, 0x88, 0x54, 0x94, - 0x46, 0xe1, 0xb0, 0xd0, 0x4e, 0xb2, 0xf7, 0x04, 0x00, - } - s.cmd_code_numbits_ = 448 - } - - s.is_initialized_ = true - return true -} - -func encoderInitParams(params *encoderParams) { - params.mode = defaultMode - params.large_window = false - params.quality = defaultQuality - params.lgwin = defaultWindow - params.lgblock = 0 - params.size_hint = 0 - params.disable_literal_context_modeling = false - initEncoderDictionary(&params.dictionary) - params.dist.distance_postfix_bits = 0 - params.dist.num_direct_distance_codes = 0 - params.dist.alphabet_size = uint32(distanceAlphabetSize(0, 0, maxDistanceBits)) - params.dist.max_distance = maxDistance -} - -func encoderInitState(s *Writer) { - encoderInitParams(&s.params) - s.input_pos_ = 0 - s.commands = s.commands[:0] - s.num_literals_ = 0 - s.last_insert_len_ = 0 - s.last_flush_pos_ = 0 - s.last_processed_pos_ = 0 - s.prev_byte_ = 0 - s.prev_byte2_ = 0 - if s.hasher_ != nil { - s.hasher_.Common().is_prepared_ = false - } - s.cmd_code_numbits_ = 0 - s.stream_state_ = streamProcessing - s.is_last_block_emitted_ = false - s.is_initialized_ = false - - ringBufferInit(&s.ringbuffer_) - - /* Initialize distance cache. */ - s.dist_cache_[0] = 4 - - s.dist_cache_[1] = 11 - s.dist_cache_[2] = 15 - s.dist_cache_[3] = 16 - - /* Save the state of the distance cache in case we need to restore it for - emitting an uncompressed block. */ - copy(s.saved_dist_cache_[:], s.dist_cache_[:]) -} - -/* - Copies the given input data to the internal ring buffer of the compressor. - No processing of the data occurs at this time and this function can be - called multiple times before calling WriteBrotliData() to process the - accumulated input. At most input_block_size() bytes of input data can be - copied to the ring buffer, otherwise the next WriteBrotliData() will fail. -*/ -func copyInputToRingBuffer(s *Writer, input_size uint, input_buffer []byte) { - var ringbuffer_ *ringBuffer = &s.ringbuffer_ - ringBufferWrite(input_buffer, input_size, ringbuffer_) - s.input_pos_ += uint64(input_size) - - /* TL;DR: If needed, initialize 7 more bytes in the ring buffer to make the - hashing not depend on uninitialized data. This makes compression - deterministic and it prevents uninitialized memory warnings in Valgrind. - Even without erasing, the output would be valid (but nondeterministic). - - Background information: The compressor stores short (at most 8 bytes) - substrings of the input already read in a hash table, and detects - repetitions by looking up such substrings in the hash table. If it - can find a substring, it checks whether the substring is really there - in the ring buffer (or it's just a hash collision). Should the hash - table become corrupt, this check makes sure that the output is - still valid, albeit the compression ratio would be bad. - - The compressor populates the hash table from the ring buffer as it's - reading new bytes from the input. However, at the last few indexes of - the ring buffer, there are not enough bytes to build full-length - substrings from. Since the hash table always contains full-length - substrings, we erase with dummy zeros here to make sure that those - substrings will contain zeros at the end instead of uninitialized - data. - - Please note that erasing is not necessary (because the - memory region is already initialized since he ring buffer - has a `tail' that holds a copy of the beginning,) so we - skip erasing if we have already gone around at least once in - the ring buffer. - - Only clear during the first round of ring-buffer writes. On - subsequent rounds data in the ring-buffer would be affected. */ - if ringbuffer_.pos_ <= ringbuffer_.mask_ { - /* This is the first time when the ring buffer is being written. - We clear 7 bytes just after the bytes that have been copied from - the input buffer. - - The ring-buffer has a "tail" that holds a copy of the beginning, - but only once the ring buffer has been fully written once, i.e., - pos <= mask. For the first time, we need to write values - in this tail (where index may be larger than mask), so that - we have exactly defined behavior and don't read uninitialized - memory. Due to performance reasons, hashing reads data using a - LOAD64, which can go 7 bytes beyond the bytes written in the - ring-buffer. */ - for i := 0; i < int(7); i++ { - ringbuffer_.buffer_[ringbuffer_.pos_:][i] = 0 - } - } -} - -/* Marks all input as processed. - Returns true if position wrapping occurs. */ -func updateLastProcessedPos(s *Writer) bool { - var wrapped_last_processed_pos uint32 = wrapPosition(s.last_processed_pos_) - var wrapped_input_pos uint32 = wrapPosition(s.input_pos_) - s.last_processed_pos_ = s.input_pos_ - return wrapped_input_pos < wrapped_last_processed_pos -} - -func extendLastCommand(s *Writer, bytes *uint32, wrapped_last_processed_pos *uint32) { - var last_command *command = &s.commands[len(s.commands)-1] - var data []byte = s.ringbuffer_.buffer_ - var mask uint32 = s.ringbuffer_.mask_ - var max_backward_distance uint64 = ((uint64(1)) << s.params.lgwin) - windowGap - var last_copy_len uint64 = uint64(last_command.copy_len_) & 0x1FFFFFF - var last_processed_pos uint64 = s.last_processed_pos_ - last_copy_len - var max_distance uint64 - if last_processed_pos < max_backward_distance { - max_distance = last_processed_pos - } else { - max_distance = max_backward_distance - } - var cmd_dist uint64 = uint64(s.dist_cache_[0]) - var distance_code uint32 = commandRestoreDistanceCode(last_command, &s.params.dist) - if distance_code < numDistanceShortCodes || uint64(distance_code-(numDistanceShortCodes-1)) == cmd_dist { - if cmd_dist <= max_distance { - for *bytes != 0 && data[*wrapped_last_processed_pos&mask] == data[(uint64(*wrapped_last_processed_pos)-cmd_dist)&uint64(mask)] { - last_command.copy_len_++ - (*bytes)-- - (*wrapped_last_processed_pos)++ - } - } - - /* The copy length is at most the metablock size, and thus expressible. */ - getLengthCode(uint(last_command.insert_len_), uint(int(last_command.copy_len_&0x1FFFFFF)+int(last_command.copy_len_>>25)), (last_command.dist_prefix_&0x3FF == 0), &last_command.cmd_prefix_) - } -} - -/* - Processes the accumulated input data and writes - the new output meta-block to s.dest, if one has been - created (otherwise the processed input data is buffered internally). - If |is_last| or |force_flush| is true, an output meta-block is - always created. However, until |is_last| is true encoder may retain up - to 7 bits of the last byte of output. To force encoder to dump the remaining - bits use WriteMetadata() to append an empty meta-data block. - Returns false if the size of the input data is larger than - input_block_size(). -*/ -func encodeData(s *Writer, is_last bool, force_flush bool) bool { - var delta uint64 = unprocessedInputSize(s) - var bytes uint32 = uint32(delta) - var wrapped_last_processed_pos uint32 = wrapPosition(s.last_processed_pos_) - var data []byte - var mask uint32 - var literal_context_mode int - - data = s.ringbuffer_.buffer_ - mask = s.ringbuffer_.mask_ - - /* Adding more blocks after "last" block is forbidden. */ - if s.is_last_block_emitted_ { - return false - } - if is_last { - s.is_last_block_emitted_ = true - } - - if delta > uint64(inputBlockSize(s)) { - return false - } - - if s.params.quality == fastTwoPassCompressionQuality { - if s.command_buf_ == nil || cap(s.command_buf_) < int(kCompressFragmentTwoPassBlockSize) { - s.command_buf_ = make([]uint32, kCompressFragmentTwoPassBlockSize) - s.literal_buf_ = make([]byte, kCompressFragmentTwoPassBlockSize) - } else { - s.command_buf_ = s.command_buf_[:kCompressFragmentTwoPassBlockSize] - s.literal_buf_ = s.literal_buf_[:kCompressFragmentTwoPassBlockSize] - } - } - - if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { - var storage []byte - var storage_ix uint = uint(s.last_bytes_bits_) - var table_size uint - var table []int - - if delta == 0 && !is_last { - /* We have no new input data and we don't have to finish the stream, so - nothing to do. */ - return true - } - - storage = s.getStorage(int(2*bytes + 503)) - storage[0] = byte(s.last_bytes_) - storage[1] = byte(s.last_bytes_ >> 8) - table = getHashTable(s, s.params.quality, uint(bytes), &table_size) - if s.params.quality == fastOnePassCompressionQuality { - compressFragmentFast(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) - } else { - compressFragmentTwoPass(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, s.command_buf_, s.literal_buf_, table, table_size, &storage_ix, storage) - } - - s.last_bytes_ = uint16(storage[storage_ix>>3]) - s.last_bytes_bits_ = byte(storage_ix & 7) - updateLastProcessedPos(s) - s.writeOutput(storage[:storage_ix>>3]) - return true - } - { - /* Theoretical max number of commands is 1 per 2 bytes. */ - newsize := len(s.commands) + int(bytes)/2 + 1 - if newsize > cap(s.commands) { - /* Reserve a bit more memory to allow merging with a next block - without reallocation: that would impact speed. */ - newsize += int(bytes/4) + 16 - - new_commands := make([]command, len(s.commands), newsize) - if s.commands != nil { - copy(new_commands, s.commands) - } - - s.commands = new_commands - } - } - - initOrStitchToPreviousBlock(&s.hasher_, data, uint(mask), &s.params, uint(wrapped_last_processed_pos), uint(bytes), is_last) - - literal_context_mode = chooseContextMode(&s.params, data, uint(wrapPosition(s.last_flush_pos_)), uint(mask), uint(s.input_pos_-s.last_flush_pos_)) - - if len(s.commands) != 0 && s.last_insert_len_ == 0 { - extendLastCommand(s, &bytes, &wrapped_last_processed_pos) - } - - if s.params.quality == zopflificationQuality { - assert(s.params.hasher.type_ == 10) - createZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_.(*h10), s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } else if s.params.quality == hqZopflificationQuality { - assert(s.params.hasher.type_ == 10) - createHqZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } else { - createBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) - } - { - var max_length uint = maxMetablockSize(&s.params) - var max_literals uint = max_length / 8 - max_commands := int(max_length / 8) - var processed_bytes uint = uint(s.input_pos_ - s.last_flush_pos_) - var next_input_fits_metablock bool = (processed_bytes+inputBlockSize(s) <= max_length) - var should_flush bool = (s.params.quality < minQualityForBlockSplit && s.num_literals_+uint(len(s.commands)) >= maxNumDelayedSymbols) - /* If maximal possible additional block doesn't fit metablock, flush now. */ - /* TODO: Postpone decision until next block arrives? */ - - /* If block splitting is not used, then flush as soon as there is some - amount of commands / literals produced. */ - if !is_last && !force_flush && !should_flush && next_input_fits_metablock && s.num_literals_ < max_literals && len(s.commands) < max_commands { - /* Merge with next input block. Everything will happen later. */ - if updateLastProcessedPos(s) { - hasherReset(s.hasher_) - } - - return true - } - } - - /* Create the last insert-only command. */ - if s.last_insert_len_ > 0 { - s.commands = append(s.commands, makeInsertCommand(s.last_insert_len_)) - s.num_literals_ += s.last_insert_len_ - s.last_insert_len_ = 0 - } - - if !is_last && s.input_pos_ == s.last_flush_pos_ { - /* We have no new input data and we don't have to finish the stream, so - nothing to do. */ - return true - } - - assert(s.input_pos_ >= s.last_flush_pos_) - assert(s.input_pos_ > s.last_flush_pos_ || is_last) - assert(s.input_pos_-s.last_flush_pos_ <= 1<<24) - { - var metablock_size uint32 = uint32(s.input_pos_ - s.last_flush_pos_) - var storage []byte = s.getStorage(int(2*metablock_size + 503)) - var storage_ix uint = uint(s.last_bytes_bits_) - storage[0] = byte(s.last_bytes_) - storage[1] = byte(s.last_bytes_ >> 8) - writeMetaBlockInternal(data, uint(mask), s.last_flush_pos_, uint(metablock_size), is_last, literal_context_mode, &s.params, s.prev_byte_, s.prev_byte2_, s.num_literals_, s.commands, s.saved_dist_cache_[:], s.dist_cache_[:], &storage_ix, storage) - s.last_bytes_ = uint16(storage[storage_ix>>3]) - s.last_bytes_bits_ = byte(storage_ix & 7) - s.last_flush_pos_ = s.input_pos_ - if updateLastProcessedPos(s) { - hasherReset(s.hasher_) - } - - if s.last_flush_pos_ > 0 { - s.prev_byte_ = data[(uint32(s.last_flush_pos_)-1)&mask] - } - - if s.last_flush_pos_ > 1 { - s.prev_byte2_ = data[uint32(s.last_flush_pos_-2)&mask] - } - - s.commands = s.commands[:0] - s.num_literals_ = 0 - - /* Save the state of the distance cache in case we need to restore it for - emitting an uncompressed block. */ - copy(s.saved_dist_cache_[:], s.dist_cache_[:]) - - s.writeOutput(storage[:storage_ix>>3]) - return true - } -} - -/* Dumps remaining output bits and metadata header to |header|. - Returns number of produced bytes. - REQUIRED: |header| should be 8-byte aligned and at least 16 bytes long. - REQUIRED: |block_size| <= (1 << 24). */ -func writeMetadataHeader(s *Writer, block_size uint, header []byte) uint { - storage_ix := uint(s.last_bytes_bits_) - header[0] = byte(s.last_bytes_) - header[1] = byte(s.last_bytes_ >> 8) - s.last_bytes_ = 0 - s.last_bytes_bits_ = 0 - - writeBits(1, 0, &storage_ix, header) - writeBits(2, 3, &storage_ix, header) - writeBits(1, 0, &storage_ix, header) - if block_size == 0 { - writeBits(2, 0, &storage_ix, header) - } else { - var nbits uint32 - if block_size == 1 { - nbits = 0 - } else { - nbits = log2FloorNonZero(uint(uint32(block_size)-1)) + 1 - } - var nbytes uint32 = (nbits + 7) / 8 - writeBits(2, uint64(nbytes), &storage_ix, header) - writeBits(uint(8*nbytes), uint64(block_size)-1, &storage_ix, header) - } - - return (storage_ix + 7) >> 3 -} - -func injectBytePaddingBlock(s *Writer) { - var seal uint32 = uint32(s.last_bytes_) - var seal_bits uint = uint(s.last_bytes_bits_) - s.last_bytes_ = 0 - s.last_bytes_bits_ = 0 - - /* is_last = 0, data_nibbles = 11, reserved = 0, meta_nibbles = 00 */ - seal |= 0x6 << seal_bits - - seal_bits += 6 - - destination := s.tiny_buf_.u8[:] - - destination[0] = byte(seal) - if seal_bits > 8 { - destination[1] = byte(seal >> 8) - } - if seal_bits > 16 { - destination[2] = byte(seal >> 16) - } - s.writeOutput(destination[:(seal_bits+7)>>3]) -} - -func checkFlushComplete(s *Writer) { - if s.stream_state_ == streamFlushRequested && s.err == nil { - s.stream_state_ = streamProcessing - } -} - -func encoderCompressStreamFast(s *Writer, op int, available_in *uint, next_in *[]byte) bool { - var block_size_limit uint = uint(1) << s.params.lgwin - var buf_size uint = brotli_min_size_t(kCompressFragmentTwoPassBlockSize, brotli_min_size_t(*available_in, block_size_limit)) - var command_buf []uint32 = nil - var literal_buf []byte = nil - if s.params.quality != fastOnePassCompressionQuality && s.params.quality != fastTwoPassCompressionQuality { - return false - } - - if s.params.quality == fastTwoPassCompressionQuality { - if s.command_buf_ == nil || cap(s.command_buf_) < int(buf_size) { - s.command_buf_ = make([]uint32, buf_size) - s.literal_buf_ = make([]byte, buf_size) - } else { - s.command_buf_ = s.command_buf_[:buf_size] - s.literal_buf_ = s.literal_buf_[:buf_size] - } - - command_buf = s.command_buf_ - literal_buf = s.literal_buf_ - } - - for { - if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { - injectBytePaddingBlock(s) - continue - } - - /* Compress block only when stream is not - finished, there is no pending flush request, and there is either - additional input or pending operation. */ - if s.stream_state_ == streamProcessing && (*available_in != 0 || op != int(operationProcess)) { - var block_size uint = brotli_min_size_t(block_size_limit, *available_in) - var is_last bool = (*available_in == block_size) && (op == int(operationFinish)) - var force_flush bool = (*available_in == block_size) && (op == int(operationFlush)) - var max_out_size uint = 2*block_size + 503 - var storage []byte = nil - var storage_ix uint = uint(s.last_bytes_bits_) - var table_size uint - var table []int - - if force_flush && block_size == 0 { - s.stream_state_ = streamFlushRequested - continue - } - - storage = s.getStorage(int(max_out_size)) - - storage[0] = byte(s.last_bytes_) - storage[1] = byte(s.last_bytes_ >> 8) - table = getHashTable(s, s.params.quality, block_size, &table_size) - - if s.params.quality == fastOnePassCompressionQuality { - compressFragmentFast(*next_in, block_size, is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) - } else { - compressFragmentTwoPass(*next_in, block_size, is_last, command_buf, literal_buf, table, table_size, &storage_ix, storage) - } - - *next_in = (*next_in)[block_size:] - *available_in -= block_size - var out_bytes uint = storage_ix >> 3 - s.writeOutput(storage[:out_bytes]) - - s.last_bytes_ = uint16(storage[storage_ix>>3]) - s.last_bytes_bits_ = byte(storage_ix & 7) - - if force_flush { - s.stream_state_ = streamFlushRequested - } - if is_last { - s.stream_state_ = streamFinished - } - continue - } - - break - } - - checkFlushComplete(s) - return true -} - -func processMetadata(s *Writer, available_in *uint, next_in *[]byte) bool { - if *available_in > 1<<24 { - return false - } - - /* Switch to metadata block workflow, if required. */ - if s.stream_state_ == streamProcessing { - s.remaining_metadata_bytes_ = uint32(*available_in) - s.stream_state_ = streamMetadataHead - } - - if s.stream_state_ != streamMetadataHead && s.stream_state_ != streamMetadataBody { - return false - } - - for { - if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { - injectBytePaddingBlock(s) - continue - } - - if s.input_pos_ != s.last_flush_pos_ { - var result bool = encodeData(s, false, true) - if !result { - return false - } - continue - } - - if s.stream_state_ == streamMetadataHead { - n := writeMetadataHeader(s, uint(s.remaining_metadata_bytes_), s.tiny_buf_.u8[:]) - s.writeOutput(s.tiny_buf_.u8[:n]) - s.stream_state_ = streamMetadataBody - continue - } else { - /* Exit workflow only when there is no more input and no more output. - Otherwise client may continue producing empty metadata blocks. */ - if s.remaining_metadata_bytes_ == 0 { - s.remaining_metadata_bytes_ = math.MaxUint32 - s.stream_state_ = streamProcessing - break - } - - /* This guarantees progress in "TakeOutput" workflow. */ - var c uint32 = brotli_min_uint32_t(s.remaining_metadata_bytes_, 16) - copy(s.tiny_buf_.u8[:], (*next_in)[:c]) - *next_in = (*next_in)[c:] - *available_in -= uint(c) - s.remaining_metadata_bytes_ -= c - s.writeOutput(s.tiny_buf_.u8[:c]) - - continue - } - } - - return true -} - -func updateSizeHint(s *Writer, available_in uint) { - if s.params.size_hint == 0 { - var delta uint64 = unprocessedInputSize(s) - var tail uint64 = uint64(available_in) - var limit uint32 = 1 << 30 - var total uint32 - if (delta >= uint64(limit)) || (tail >= uint64(limit)) || ((delta + tail) >= uint64(limit)) { - total = limit - } else { - total = uint32(delta + tail) - } - - s.params.size_hint = uint(total) - } -} - -func encoderCompressStream(s *Writer, op int, available_in *uint, next_in *[]byte) bool { - if !ensureInitialized(s) { - return false - } - - /* Unfinished metadata block; check requirements. */ - if s.remaining_metadata_bytes_ != math.MaxUint32 { - if uint32(*available_in) != s.remaining_metadata_bytes_ { - return false - } - if op != int(operationEmitMetadata) { - return false - } - } - - if op == int(operationEmitMetadata) { - updateSizeHint(s, 0) /* First data metablock might be emitted here. */ - return processMetadata(s, available_in, next_in) - } - - if s.stream_state_ == streamMetadataHead || s.stream_state_ == streamMetadataBody { - return false - } - - if s.stream_state_ != streamProcessing && *available_in != 0 { - return false - } - - if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { - return encoderCompressStreamFast(s, op, available_in, next_in) - } - - for { - var remaining_block_size uint = remainingInputBlockSize(s) - - if remaining_block_size != 0 && *available_in != 0 { - var copy_input_size uint = brotli_min_size_t(remaining_block_size, *available_in) - copyInputToRingBuffer(s, copy_input_size, *next_in) - *next_in = (*next_in)[copy_input_size:] - *available_in -= copy_input_size - continue - } - - if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { - injectBytePaddingBlock(s) - continue - } - - /* Compress data only when stream is not - finished and there is no pending flush request. */ - if s.stream_state_ == streamProcessing { - if remaining_block_size == 0 || op != int(operationProcess) { - var is_last bool = ((*available_in == 0) && op == int(operationFinish)) - var force_flush bool = ((*available_in == 0) && op == int(operationFlush)) - var result bool - updateSizeHint(s, *available_in) - result = encodeData(s, is_last, force_flush) - if !result { - return false - } - if force_flush { - s.stream_state_ = streamFlushRequested - } - if is_last { - s.stream_state_ = streamFinished - } - continue - } - } - - break - } - - checkFlushComplete(s) - return true -} - -func (w *Writer) writeOutput(data []byte) { - if w.err != nil { - return - } - - _, w.err = w.dst.Write(data) - if w.err == nil { - checkFlushComplete(w) - } -} diff --git a/vendor/github.com/andybalholm/brotli/encoder.go b/vendor/github.com/andybalholm/brotli/encoder.go deleted file mode 100644 index 650d1e4..0000000 --- a/vendor/github.com/andybalholm/brotli/encoder.go +++ /dev/null @@ -1,168 +0,0 @@ -package brotli - -import "github.com/andybalholm/brotli/matchfinder" - -// An Encoder implements the matchfinder.Encoder interface, writing in Brotli format. -type Encoder struct { - wroteHeader bool - bw bitWriter - distCache []distanceCode -} - -func (e *Encoder) Reset() { - e.wroteHeader = false - e.bw = bitWriter{} -} - -func (e *Encoder) Encode(dst []byte, src []byte, matches []matchfinder.Match, lastBlock bool) []byte { - e.bw.dst = dst - if !e.wroteHeader { - e.bw.writeBits(4, 15) - e.wroteHeader = true - } - - var literalHisto [256]uint32 - var commandHisto [704]uint32 - var distanceHisto [64]uint32 - literalCount := 0 - commandCount := 0 - distanceCount := 0 - - if len(e.distCache) < len(matches) { - e.distCache = make([]distanceCode, len(matches)) - } - - // first pass: build the histograms - pos := 0 - - // d is the ring buffer of the last 4 distances. - d := [4]int{-10, -10, -10, -10} - for i, m := range matches { - if m.Unmatched > 0 { - for _, c := range src[pos : pos+m.Unmatched] { - literalHisto[c]++ - } - literalCount += m.Unmatched - } - - insertCode := getInsertLengthCode(uint(m.Unmatched)) - copyCode := getCopyLengthCode(uint(m.Length)) - if m.Length == 0 { - // If the stream ends with unmatched bytes, we need a dummy copy length. - copyCode = 2 - } - command := combineLengthCodes(insertCode, copyCode, false) - commandHisto[command]++ - commandCount++ - - if command >= 128 && m.Length != 0 { - var distCode distanceCode - switch m.Distance { - case d[3]: - distCode.code = 0 - case d[2]: - distCode.code = 1 - case d[1]: - distCode.code = 2 - case d[0]: - distCode.code = 3 - case d[3] - 1: - distCode.code = 4 - case d[3] + 1: - distCode.code = 5 - case d[3] - 2: - distCode.code = 6 - case d[3] + 2: - distCode.code = 7 - case d[3] - 3: - distCode.code = 8 - case d[3] + 3: - distCode.code = 9 - - // In my testing, codes 10–15 actually reduced the compression ratio. - - default: - distCode = getDistanceCode(m.Distance) - } - e.distCache[i] = distCode - distanceHisto[distCode.code]++ - distanceCount++ - if distCode.code != 0 { - d[0], d[1], d[2], d[3] = d[1], d[2], d[3], m.Distance - } - } - - pos += m.Unmatched + m.Length - } - - storeMetaBlockHeaderBW(uint(len(src)), false, &e.bw) - e.bw.writeBits(13, 0) - - var literalDepths [256]byte - var literalBits [256]uint16 - buildAndStoreHuffmanTreeFastBW(literalHisto[:], uint(literalCount), 8, literalDepths[:], literalBits[:], &e.bw) - - var commandDepths [704]byte - var commandBits [704]uint16 - buildAndStoreHuffmanTreeFastBW(commandHisto[:], uint(commandCount), 10, commandDepths[:], commandBits[:], &e.bw) - - var distanceDepths [64]byte - var distanceBits [64]uint16 - buildAndStoreHuffmanTreeFastBW(distanceHisto[:], uint(distanceCount), 6, distanceDepths[:], distanceBits[:], &e.bw) - - pos = 0 - for i, m := range matches { - insertCode := getInsertLengthCode(uint(m.Unmatched)) - copyCode := getCopyLengthCode(uint(m.Length)) - if m.Length == 0 { - // If the stream ends with unmatched bytes, we need a dummy copy length. - copyCode = 2 - } - command := combineLengthCodes(insertCode, copyCode, false) - e.bw.writeBits(uint(commandDepths[command]), uint64(commandBits[command])) - if kInsExtra[insertCode] > 0 { - e.bw.writeBits(uint(kInsExtra[insertCode]), uint64(m.Unmatched)-uint64(kInsBase[insertCode])) - } - if kCopyExtra[copyCode] > 0 { - e.bw.writeBits(uint(kCopyExtra[copyCode]), uint64(m.Length)-uint64(kCopyBase[copyCode])) - } - - if m.Unmatched > 0 { - for _, c := range src[pos : pos+m.Unmatched] { - e.bw.writeBits(uint(literalDepths[c]), uint64(literalBits[c])) - } - } - - if command >= 128 && m.Length != 0 { - distCode := e.distCache[i] - e.bw.writeBits(uint(distanceDepths[distCode.code]), uint64(distanceBits[distCode.code])) - if distCode.nExtra > 0 { - e.bw.writeBits(distCode.nExtra, distCode.extraBits) - } - } - - pos += m.Unmatched + m.Length - } - - if lastBlock { - e.bw.writeBits(2, 3) // islast + isempty - e.bw.jumpToByteBoundary() - } - return e.bw.dst -} - -type distanceCode struct { - code int - nExtra uint - extraBits uint64 -} - -func getDistanceCode(distance int) distanceCode { - d := distance + 3 - nbits := log2FloorNonZero(uint(d)) - 1 - prefix := (d >> nbits) & 1 - offset := (2 + prefix) << nbits - distcode := int(2*(nbits-1)) + prefix + 16 - extra := d - offset - return distanceCode{distcode, uint(nbits), uint64(extra)} -} diff --git a/vendor/github.com/andybalholm/brotli/encoder_dict.go b/vendor/github.com/andybalholm/brotli/encoder_dict.go deleted file mode 100644 index 55c051c..0000000 --- a/vendor/github.com/andybalholm/brotli/encoder_dict.go +++ /dev/null @@ -1,22 +0,0 @@ -package brotli - -/* Dictionary data (words and transforms) for 1 possible context */ -type encoderDictionary struct { - words *dictionary - cutoffTransformsCount uint32 - cutoffTransforms uint64 - hash_table []uint16 - buckets []uint16 - dict_words []dictWord -} - -func initEncoderDictionary(dict *encoderDictionary) { - dict.words = getDictionary() - - dict.hash_table = kStaticDictionaryHash[:] - dict.buckets = kStaticDictionaryBuckets[:] - dict.dict_words = kStaticDictionaryWords[:] - - dict.cutoffTransformsCount = kCutoffTransformsCount - dict.cutoffTransforms = kCutoffTransforms -} diff --git a/vendor/github.com/andybalholm/brotli/entropy_encode.go b/vendor/github.com/andybalholm/brotli/entropy_encode.go deleted file mode 100644 index 3f469a3..0000000 --- a/vendor/github.com/andybalholm/brotli/entropy_encode.go +++ /dev/null @@ -1,592 +0,0 @@ -package brotli - -import "math" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Entropy encoding (Huffman) utilities. */ - -/* A node of a Huffman tree. */ -type huffmanTree struct { - total_count_ uint32 - index_left_ int16 - index_right_or_value_ int16 -} - -func initHuffmanTree(self *huffmanTree, count uint32, left int16, right int16) { - self.total_count_ = count - self.index_left_ = left - self.index_right_or_value_ = right -} - -/* Input size optimized Shell sort. */ -type huffmanTreeComparator func(huffmanTree, huffmanTree) bool - -var sortHuffmanTreeItems_gaps = []uint{132, 57, 23, 10, 4, 1} - -func sortHuffmanTreeItems(items []huffmanTree, n uint, comparator huffmanTreeComparator) { - if n < 13 { - /* Insertion sort. */ - var i uint - for i = 1; i < n; i++ { - var tmp huffmanTree = items[i] - var k uint = i - var j uint = i - 1 - for comparator(tmp, items[j]) { - items[k] = items[j] - k = j - if j == 0 { - break - } - j-- - } - - items[k] = tmp - } - - return - } else { - var g int - if n < 57 { - g = 2 - } else { - g = 0 - } - for ; g < 6; g++ { - var gap uint = sortHuffmanTreeItems_gaps[g] - var i uint - for i = gap; i < n; i++ { - var j uint = i - var tmp huffmanTree = items[i] - for ; j >= gap && comparator(tmp, items[j-gap]); j -= gap { - items[j] = items[j-gap] - } - - items[j] = tmp - } - } - } -} - -/* Returns 1 if assignment of depths succeeded, otherwise 0. */ -func setDepth(p0 int, pool []huffmanTree, depth []byte, max_depth int) bool { - var stack [16]int - var level int = 0 - var p int = p0 - assert(max_depth <= 15) - stack[0] = -1 - for { - if pool[p].index_left_ >= 0 { - level++ - if level > max_depth { - return false - } - stack[level] = int(pool[p].index_right_or_value_) - p = int(pool[p].index_left_) - continue - } else { - depth[pool[p].index_right_or_value_] = byte(level) - } - - for level >= 0 && stack[level] == -1 { - level-- - } - if level < 0 { - return true - } - p = stack[level] - stack[level] = -1 - } -} - -/* Sort the root nodes, least popular first. */ -func sortHuffmanTree(v0 huffmanTree, v1 huffmanTree) bool { - if v0.total_count_ != v1.total_count_ { - return v0.total_count_ < v1.total_count_ - } - - return v0.index_right_or_value_ > v1.index_right_or_value_ -} - -/* This function will create a Huffman tree. - - The catch here is that the tree cannot be arbitrarily deep. - Brotli specifies a maximum depth of 15 bits for "code trees" - and 7 bits for "code length code trees." - - count_limit is the value that is to be faked as the minimum value - and this minimum value is raised until the tree matches the - maximum length requirement. - - This algorithm is not of excellent performance for very long data blocks, - especially when population counts are longer than 2**tree_limit, but - we are not planning to use this with extremely long blocks. - - See http://en.wikipedia.org/wiki/Huffman_coding */ -func createHuffmanTree(data []uint32, length uint, tree_limit int, tree []huffmanTree, depth []byte) { - var count_limit uint32 - var sentinel huffmanTree - initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) - - /* For block sizes below 64 kB, we never need to do a second iteration - of this loop. Probably all of our block sizes will be smaller than - that, so this loop is mostly of academic interest. If we actually - would need this, we would be better off with the Katajainen algorithm. */ - for count_limit = 1; ; count_limit *= 2 { - var n uint = 0 - var i uint - var j uint - var k uint - for i = length; i != 0; { - i-- - if data[i] != 0 { - var count uint32 = brotli_max_uint32_t(data[i], count_limit) - initHuffmanTree(&tree[n], count, -1, int16(i)) - n++ - } - } - - if n == 1 { - depth[tree[0].index_right_or_value_] = 1 /* Only one element. */ - break - } - - sortHuffmanTreeItems(tree, n, huffmanTreeComparator(sortHuffmanTree)) - - /* The nodes are: - [0, n): the sorted leaf nodes that we start with. - [n]: we add a sentinel here. - [n + 1, 2n): new parent nodes are added here, starting from - (n+1). These are naturally in ascending order. - [2n]: we add a sentinel at the end as well. - There will be (2n+1) elements at the end. */ - tree[n] = sentinel - - tree[n+1] = sentinel - - i = 0 /* Points to the next leaf node. */ - j = n + 1 /* Points to the next non-leaf node. */ - for k = n - 1; k != 0; k-- { - var left uint - var right uint - if tree[i].total_count_ <= tree[j].total_count_ { - left = i - i++ - } else { - left = j - j++ - } - - if tree[i].total_count_ <= tree[j].total_count_ { - right = i - i++ - } else { - right = j - j++ - } - { - /* The sentinel node becomes the parent node. */ - var j_end uint = 2*n - k - tree[j_end].total_count_ = tree[left].total_count_ + tree[right].total_count_ - tree[j_end].index_left_ = int16(left) - tree[j_end].index_right_or_value_ = int16(right) - - /* Add back the last sentinel node. */ - tree[j_end+1] = sentinel - } - } - - if setDepth(int(2*n-1), tree[0:], depth, tree_limit) { - /* We need to pack the Huffman tree in tree_limit bits. If this was not - successful, add fake entities to the lowest values and retry. */ - break - } - } -} - -func reverse(v []byte, start uint, end uint) { - end-- - for start < end { - var tmp byte = v[start] - v[start] = v[end] - v[end] = tmp - start++ - end-- - } -} - -func writeHuffmanTreeRepetitions(previous_value byte, value byte, repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - assert(repetitions > 0) - if previous_value != value { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions == 7 { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions < 3 { - var i uint - for i = 0; i < repetitions; i++ { - tree[*tree_size] = value - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - } - } else { - var start uint = *tree_size - repetitions -= 3 - for { - tree[*tree_size] = repeatPreviousCodeLength - extra_bits_data[*tree_size] = byte(repetitions & 0x3) - (*tree_size)++ - repetitions >>= 2 - if repetitions == 0 { - break - } - - repetitions-- - } - - reverse(tree, start, *tree_size) - reverse(extra_bits_data, start, *tree_size) - } -} - -func writeHuffmanTreeRepetitionsZeros(repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - if repetitions == 11 { - tree[*tree_size] = 0 - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - repetitions-- - } - - if repetitions < 3 { - var i uint - for i = 0; i < repetitions; i++ { - tree[*tree_size] = 0 - extra_bits_data[*tree_size] = 0 - (*tree_size)++ - } - } else { - var start uint = *tree_size - repetitions -= 3 - for { - tree[*tree_size] = repeatZeroCodeLength - extra_bits_data[*tree_size] = byte(repetitions & 0x7) - (*tree_size)++ - repetitions >>= 3 - if repetitions == 0 { - break - } - - repetitions-- - } - - reverse(tree, start, *tree_size) - reverse(extra_bits_data, start, *tree_size) - } -} - -/* Change the population counts in a way that the consequent - Huffman tree compression, especially its RLE-part will be more - likely to compress this data more efficiently. - - length contains the size of the histogram. - counts contains the population counts. - good_for_rle is a buffer of at least length size */ -func optimizeHuffmanCountsForRLE(length uint, counts []uint32, good_for_rle []byte) { - var nonzero_count uint = 0 - var stride uint - var limit uint - var sum uint - var streak_limit uint = 1240 - var i uint - /* Let's make the Huffman code more compatible with RLE encoding. */ - for i = 0; i < length; i++ { - if counts[i] != 0 { - nonzero_count++ - } - } - - if nonzero_count < 16 { - return - } - - for length != 0 && counts[length-1] == 0 { - length-- - } - - if length == 0 { - return /* All zeros. */ - } - - /* Now counts[0..length - 1] does not have trailing zeros. */ - { - var nonzeros uint = 0 - var smallest_nonzero uint32 = 1 << 30 - for i = 0; i < length; i++ { - if counts[i] != 0 { - nonzeros++ - if smallest_nonzero > counts[i] { - smallest_nonzero = counts[i] - } - } - } - - if nonzeros < 5 { - /* Small histogram will model it well. */ - return - } - - if smallest_nonzero < 4 { - var zeros uint = length - nonzeros - if zeros < 6 { - for i = 1; i < length-1; i++ { - if counts[i-1] != 0 && counts[i] == 0 && counts[i+1] != 0 { - counts[i] = 1 - } - } - } - } - - if nonzeros < 28 { - return - } - } - - /* 2) Let's mark all population counts that already can be encoded - with an RLE code. */ - for i := 0; i < int(length); i++ { - good_for_rle[i] = 0 - } - { - var symbol uint32 = counts[0] - /* Let's not spoil any of the existing good RLE codes. - Mark any seq of 0's that is longer as 5 as a good_for_rle. - Mark any seq of non-0's that is longer as 7 as a good_for_rle. */ - - var step uint = 0 - for i = 0; i <= length; i++ { - if i == length || counts[i] != symbol { - if (symbol == 0 && step >= 5) || (symbol != 0 && step >= 7) { - var k uint - for k = 0; k < step; k++ { - good_for_rle[i-k-1] = 1 - } - } - - step = 1 - if i != length { - symbol = counts[i] - } - } else { - step++ - } - } - } - - /* 3) Let's replace those population counts that lead to more RLE codes. - Math here is in 24.8 fixed point representation. */ - stride = 0 - - limit = uint(256*(counts[0]+counts[1]+counts[2])/3 + 420) - sum = 0 - for i = 0; i <= length; i++ { - if i == length || good_for_rle[i] != 0 || (i != 0 && good_for_rle[i-1] != 0) || (256*counts[i]-uint32(limit)+uint32(streak_limit)) >= uint32(2*streak_limit) { - if stride >= 4 || (stride >= 3 && sum == 0) { - var k uint - var count uint = (sum + stride/2) / stride - /* The stride must end, collapse what we have, if we have enough (4). */ - if count == 0 { - count = 1 - } - - if sum == 0 { - /* Don't make an all zeros stride to be upgraded to ones. */ - count = 0 - } - - for k = 0; k < stride; k++ { - /* We don't want to change value at counts[i], - that is already belonging to the next stride. Thus - 1. */ - counts[i-k-1] = uint32(count) - } - } - - stride = 0 - sum = 0 - if i < length-2 { - /* All interesting strides have a count of at least 4, */ - /* at least when non-zeros. */ - limit = uint(256*(counts[i]+counts[i+1]+counts[i+2])/3 + 420) - } else if i < length { - limit = uint(256 * counts[i]) - } else { - limit = 0 - } - } - - stride++ - if i != length { - sum += uint(counts[i]) - if stride >= 4 { - limit = (256*sum + stride/2) / stride - } - - if stride == 4 { - limit += 120 - } - } - } -} - -func decideOverRLEUse(depth []byte, length uint, use_rle_for_non_zero *bool, use_rle_for_zero *bool) { - var total_reps_zero uint = 0 - var total_reps_non_zero uint = 0 - var count_reps_zero uint = 1 - var count_reps_non_zero uint = 1 - var i uint - for i = 0; i < length; { - var value byte = depth[i] - var reps uint = 1 - var k uint - for k = i + 1; k < length && depth[k] == value; k++ { - reps++ - } - - if reps >= 3 && value == 0 { - total_reps_zero += reps - count_reps_zero++ - } - - if reps >= 4 && value != 0 { - total_reps_non_zero += reps - count_reps_non_zero++ - } - - i += reps - } - - *use_rle_for_non_zero = total_reps_non_zero > count_reps_non_zero*2 - *use_rle_for_zero = total_reps_zero > count_reps_zero*2 -} - -/* Write a Huffman tree from bit depths into the bit-stream representation - of a Huffman tree. The generated Huffman tree is to be compressed once - more using a Huffman tree */ -func writeHuffmanTree(depth []byte, length uint, tree_size *uint, tree []byte, extra_bits_data []byte) { - var previous_value byte = initialRepeatedCodeLength - var i uint - var use_rle_for_non_zero bool = false - var use_rle_for_zero bool = false - var new_length uint = length - /* Throw away trailing zeros. */ - for i = 0; i < length; i++ { - if depth[length-i-1] == 0 { - new_length-- - } else { - break - } - } - - /* First gather statistics on if it is a good idea to do RLE. */ - if length > 50 { - /* Find RLE coding for longer codes. - Shorter codes seem not to benefit from RLE. */ - decideOverRLEUse(depth, new_length, &use_rle_for_non_zero, &use_rle_for_zero) - } - - /* Actual RLE coding. */ - for i = 0; i < new_length; { - var value byte = depth[i] - var reps uint = 1 - if (value != 0 && use_rle_for_non_zero) || (value == 0 && use_rle_for_zero) { - var k uint - for k = i + 1; k < new_length && depth[k] == value; k++ { - reps++ - } - } - - if value == 0 { - writeHuffmanTreeRepetitionsZeros(reps, tree_size, tree, extra_bits_data) - } else { - writeHuffmanTreeRepetitions(previous_value, value, reps, tree_size, tree, extra_bits_data) - previous_value = value - } - - i += reps - } -} - -var reverseBits_kLut = [16]uint{ - 0x00, - 0x08, - 0x04, - 0x0C, - 0x02, - 0x0A, - 0x06, - 0x0E, - 0x01, - 0x09, - 0x05, - 0x0D, - 0x03, - 0x0B, - 0x07, - 0x0F, -} - -func reverseBits(num_bits uint, bits uint16) uint16 { - var retval uint = reverseBits_kLut[bits&0x0F] - var i uint - for i = 4; i < num_bits; i += 4 { - retval <<= 4 - bits = uint16(bits >> 4) - retval |= reverseBits_kLut[bits&0x0F] - } - - retval >>= ((0 - num_bits) & 0x03) - return uint16(retval) -} - -/* 0..15 are values for bits */ -const maxHuffmanBits = 16 - -/* Get the actual bit values for a tree of bit depths. */ -func convertBitDepthsToSymbols(depth []byte, len uint, bits []uint16) { - var bl_count = [maxHuffmanBits]uint16{0} - var next_code [maxHuffmanBits]uint16 - var i uint - /* In Brotli, all bit depths are [1..15] - 0 bit depth means that the symbol does not exist. */ - - var code int = 0 - for i = 0; i < len; i++ { - bl_count[depth[i]]++ - } - - bl_count[0] = 0 - next_code[0] = 0 - for i = 1; i < maxHuffmanBits; i++ { - code = (code + int(bl_count[i-1])) << 1 - next_code[i] = uint16(code) - } - - for i = 0; i < len; i++ { - if depth[i] != 0 { - bits[i] = reverseBits(uint(depth[i]), next_code[depth[i]]) - next_code[depth[i]]++ - } - } -} diff --git a/vendor/github.com/andybalholm/brotli/entropy_encode_static.go b/vendor/github.com/andybalholm/brotli/entropy_encode_static.go deleted file mode 100644 index 294aff4..0000000 --- a/vendor/github.com/andybalholm/brotli/entropy_encode_static.go +++ /dev/null @@ -1,4399 +0,0 @@ -package brotli - -var kCodeLengthDepth = [18]byte{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 0, 4, 4} - -var kStaticCommandCodeDepth = [numCommandSymbols]byte{ - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 9, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, - 11, -} - -var kStaticDistanceCodeDepth = [64]byte{ - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, - 6, -} - -var kCodeLengthBits = [18]uint32{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 15, 31, 0, 11, 7} - -func storeStaticCodeLengthCode(storage_ix *uint, storage []byte) { - writeBits(40, 0x0000FF55555554, storage_ix, storage) -} - -func storeStaticCodeLengthCodeBW(bw *bitWriter) { - bw.writeBits(32, 0x55555554) - bw.writeBits(8, 0xFF) -} - -var kZeroRepsBits = [numCommandSymbols]uint64{ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000007, - 0x00000017, - 0x00000027, - 0x00000037, - 0x00000047, - 0x00000057, - 0x00000067, - 0x00000077, - 0x00000770, - 0x00000b87, - 0x00001387, - 0x00001b87, - 0x00002387, - 0x00002b87, - 0x00003387, - 0x00003b87, - 0x00000397, - 0x00000b97, - 0x00001397, - 0x00001b97, - 0x00002397, - 0x00002b97, - 0x00003397, - 0x00003b97, - 0x000003a7, - 0x00000ba7, - 0x000013a7, - 0x00001ba7, - 0x000023a7, - 0x00002ba7, - 0x000033a7, - 0x00003ba7, - 0x000003b7, - 0x00000bb7, - 0x000013b7, - 0x00001bb7, - 0x000023b7, - 0x00002bb7, - 0x000033b7, - 0x00003bb7, - 0x000003c7, - 0x00000bc7, - 0x000013c7, - 0x00001bc7, - 0x000023c7, - 0x00002bc7, - 0x000033c7, - 0x00003bc7, - 0x000003d7, - 0x00000bd7, - 0x000013d7, - 0x00001bd7, - 0x000023d7, - 0x00002bd7, - 0x000033d7, - 0x00003bd7, - 0x000003e7, - 0x00000be7, - 0x000013e7, - 0x00001be7, - 0x000023e7, - 0x00002be7, - 0x000033e7, - 0x00003be7, - 0x000003f7, - 0x00000bf7, - 0x000013f7, - 0x00001bf7, - 0x000023f7, - 0x00002bf7, - 0x000033f7, - 0x00003bf7, - 0x0001c387, - 0x0005c387, - 0x0009c387, - 0x000dc387, - 0x0011c387, - 0x0015c387, - 0x0019c387, - 0x001dc387, - 0x0001cb87, - 0x0005cb87, - 0x0009cb87, - 0x000dcb87, - 0x0011cb87, - 0x0015cb87, - 0x0019cb87, - 0x001dcb87, - 0x0001d387, - 0x0005d387, - 0x0009d387, - 0x000dd387, - 0x0011d387, - 0x0015d387, - 0x0019d387, - 0x001dd387, - 0x0001db87, - 0x0005db87, - 0x0009db87, - 0x000ddb87, - 0x0011db87, - 0x0015db87, - 0x0019db87, - 0x001ddb87, - 0x0001e387, - 0x0005e387, - 0x0009e387, - 0x000de387, - 0x0011e387, - 0x0015e387, - 0x0019e387, - 0x001de387, - 0x0001eb87, - 0x0005eb87, - 0x0009eb87, - 0x000deb87, - 0x0011eb87, - 0x0015eb87, - 0x0019eb87, - 0x001deb87, - 0x0001f387, - 0x0005f387, - 0x0009f387, - 0x000df387, - 0x0011f387, - 0x0015f387, - 0x0019f387, - 0x001df387, - 0x0001fb87, - 0x0005fb87, - 0x0009fb87, - 0x000dfb87, - 0x0011fb87, - 0x0015fb87, - 0x0019fb87, - 0x001dfb87, - 0x0001c397, - 0x0005c397, - 0x0009c397, - 0x000dc397, - 0x0011c397, - 0x0015c397, - 0x0019c397, - 0x001dc397, - 0x0001cb97, - 0x0005cb97, - 0x0009cb97, - 0x000dcb97, - 0x0011cb97, - 0x0015cb97, - 0x0019cb97, - 0x001dcb97, - 0x0001d397, - 0x0005d397, - 0x0009d397, - 0x000dd397, - 0x0011d397, - 0x0015d397, - 0x0019d397, - 0x001dd397, - 0x0001db97, - 0x0005db97, - 0x0009db97, - 0x000ddb97, - 0x0011db97, - 0x0015db97, - 0x0019db97, - 0x001ddb97, - 0x0001e397, - 0x0005e397, - 0x0009e397, - 0x000de397, - 0x0011e397, - 0x0015e397, - 0x0019e397, - 0x001de397, - 0x0001eb97, - 0x0005eb97, - 0x0009eb97, - 0x000deb97, - 0x0011eb97, - 0x0015eb97, - 0x0019eb97, - 0x001deb97, - 0x0001f397, - 0x0005f397, - 0x0009f397, - 0x000df397, - 0x0011f397, - 0x0015f397, - 0x0019f397, - 0x001df397, - 0x0001fb97, - 0x0005fb97, - 0x0009fb97, - 0x000dfb97, - 0x0011fb97, - 0x0015fb97, - 0x0019fb97, - 0x001dfb97, - 0x0001c3a7, - 0x0005c3a7, - 0x0009c3a7, - 0x000dc3a7, - 0x0011c3a7, - 0x0015c3a7, - 0x0019c3a7, - 0x001dc3a7, - 0x0001cba7, - 0x0005cba7, - 0x0009cba7, - 0x000dcba7, - 0x0011cba7, - 0x0015cba7, - 0x0019cba7, - 0x001dcba7, - 0x0001d3a7, - 0x0005d3a7, - 0x0009d3a7, - 0x000dd3a7, - 0x0011d3a7, - 0x0015d3a7, - 0x0019d3a7, - 0x001dd3a7, - 0x0001dba7, - 0x0005dba7, - 0x0009dba7, - 0x000ddba7, - 0x0011dba7, - 0x0015dba7, - 0x0019dba7, - 0x001ddba7, - 0x0001e3a7, - 0x0005e3a7, - 0x0009e3a7, - 0x000de3a7, - 0x0011e3a7, - 0x0015e3a7, - 0x0019e3a7, - 0x001de3a7, - 0x0001eba7, - 0x0005eba7, - 0x0009eba7, - 0x000deba7, - 0x0011eba7, - 0x0015eba7, - 0x0019eba7, - 0x001deba7, - 0x0001f3a7, - 0x0005f3a7, - 0x0009f3a7, - 0x000df3a7, - 0x0011f3a7, - 0x0015f3a7, - 0x0019f3a7, - 0x001df3a7, - 0x0001fba7, - 0x0005fba7, - 0x0009fba7, - 0x000dfba7, - 0x0011fba7, - 0x0015fba7, - 0x0019fba7, - 0x001dfba7, - 0x0001c3b7, - 0x0005c3b7, - 0x0009c3b7, - 0x000dc3b7, - 0x0011c3b7, - 0x0015c3b7, - 0x0019c3b7, - 0x001dc3b7, - 0x0001cbb7, - 0x0005cbb7, - 0x0009cbb7, - 0x000dcbb7, - 0x0011cbb7, - 0x0015cbb7, - 0x0019cbb7, - 0x001dcbb7, - 0x0001d3b7, - 0x0005d3b7, - 0x0009d3b7, - 0x000dd3b7, - 0x0011d3b7, - 0x0015d3b7, - 0x0019d3b7, - 0x001dd3b7, - 0x0001dbb7, - 0x0005dbb7, - 0x0009dbb7, - 0x000ddbb7, - 0x0011dbb7, - 0x0015dbb7, - 0x0019dbb7, - 0x001ddbb7, - 0x0001e3b7, - 0x0005e3b7, - 0x0009e3b7, - 0x000de3b7, - 0x0011e3b7, - 0x0015e3b7, - 0x0019e3b7, - 0x001de3b7, - 0x0001ebb7, - 0x0005ebb7, - 0x0009ebb7, - 0x000debb7, - 0x0011ebb7, - 0x0015ebb7, - 0x0019ebb7, - 0x001debb7, - 0x0001f3b7, - 0x0005f3b7, - 0x0009f3b7, - 0x000df3b7, - 0x0011f3b7, - 0x0015f3b7, - 0x0019f3b7, - 0x001df3b7, - 0x0001fbb7, - 0x0005fbb7, - 0x0009fbb7, - 0x000dfbb7, - 0x0011fbb7, - 0x0015fbb7, - 0x0019fbb7, - 0x001dfbb7, - 0x0001c3c7, - 0x0005c3c7, - 0x0009c3c7, - 0x000dc3c7, - 0x0011c3c7, - 0x0015c3c7, - 0x0019c3c7, - 0x001dc3c7, - 0x0001cbc7, - 0x0005cbc7, - 0x0009cbc7, - 0x000dcbc7, - 0x0011cbc7, - 0x0015cbc7, - 0x0019cbc7, - 0x001dcbc7, - 0x0001d3c7, - 0x0005d3c7, - 0x0009d3c7, - 0x000dd3c7, - 0x0011d3c7, - 0x0015d3c7, - 0x0019d3c7, - 0x001dd3c7, - 0x0001dbc7, - 0x0005dbc7, - 0x0009dbc7, - 0x000ddbc7, - 0x0011dbc7, - 0x0015dbc7, - 0x0019dbc7, - 0x001ddbc7, - 0x0001e3c7, - 0x0005e3c7, - 0x0009e3c7, - 0x000de3c7, - 0x0011e3c7, - 0x0015e3c7, - 0x0019e3c7, - 0x001de3c7, - 0x0001ebc7, - 0x0005ebc7, - 0x0009ebc7, - 0x000debc7, - 0x0011ebc7, - 0x0015ebc7, - 0x0019ebc7, - 0x001debc7, - 0x0001f3c7, - 0x0005f3c7, - 0x0009f3c7, - 0x000df3c7, - 0x0011f3c7, - 0x0015f3c7, - 0x0019f3c7, - 0x001df3c7, - 0x0001fbc7, - 0x0005fbc7, - 0x0009fbc7, - 0x000dfbc7, - 0x0011fbc7, - 0x0015fbc7, - 0x0019fbc7, - 0x001dfbc7, - 0x0001c3d7, - 0x0005c3d7, - 0x0009c3d7, - 0x000dc3d7, - 0x0011c3d7, - 0x0015c3d7, - 0x0019c3d7, - 0x001dc3d7, - 0x0001cbd7, - 0x0005cbd7, - 0x0009cbd7, - 0x000dcbd7, - 0x0011cbd7, - 0x0015cbd7, - 0x0019cbd7, - 0x001dcbd7, - 0x0001d3d7, - 0x0005d3d7, - 0x0009d3d7, - 0x000dd3d7, - 0x0011d3d7, - 0x0015d3d7, - 0x0019d3d7, - 0x001dd3d7, - 0x0001dbd7, - 0x0005dbd7, - 0x0009dbd7, - 0x000ddbd7, - 0x0011dbd7, - 0x0015dbd7, - 0x0019dbd7, - 0x001ddbd7, - 0x0001e3d7, - 0x0005e3d7, - 0x0009e3d7, - 0x000de3d7, - 0x0011e3d7, - 0x0015e3d7, - 0x0019e3d7, - 0x001de3d7, - 0x0001ebd7, - 0x0005ebd7, - 0x0009ebd7, - 0x000debd7, - 0x0011ebd7, - 0x0015ebd7, - 0x0019ebd7, - 0x001debd7, - 0x0001f3d7, - 0x0005f3d7, - 0x0009f3d7, - 0x000df3d7, - 0x0011f3d7, - 0x0015f3d7, - 0x0019f3d7, - 0x001df3d7, - 0x0001fbd7, - 0x0005fbd7, - 0x0009fbd7, - 0x000dfbd7, - 0x0011fbd7, - 0x0015fbd7, - 0x0019fbd7, - 0x001dfbd7, - 0x0001c3e7, - 0x0005c3e7, - 0x0009c3e7, - 0x000dc3e7, - 0x0011c3e7, - 0x0015c3e7, - 0x0019c3e7, - 0x001dc3e7, - 0x0001cbe7, - 0x0005cbe7, - 0x0009cbe7, - 0x000dcbe7, - 0x0011cbe7, - 0x0015cbe7, - 0x0019cbe7, - 0x001dcbe7, - 0x0001d3e7, - 0x0005d3e7, - 0x0009d3e7, - 0x000dd3e7, - 0x0011d3e7, - 0x0015d3e7, - 0x0019d3e7, - 0x001dd3e7, - 0x0001dbe7, - 0x0005dbe7, - 0x0009dbe7, - 0x000ddbe7, - 0x0011dbe7, - 0x0015dbe7, - 0x0019dbe7, - 0x001ddbe7, - 0x0001e3e7, - 0x0005e3e7, - 0x0009e3e7, - 0x000de3e7, - 0x0011e3e7, - 0x0015e3e7, - 0x0019e3e7, - 0x001de3e7, - 0x0001ebe7, - 0x0005ebe7, - 0x0009ebe7, - 0x000debe7, - 0x0011ebe7, - 0x0015ebe7, - 0x0019ebe7, - 0x001debe7, - 0x0001f3e7, - 0x0005f3e7, - 0x0009f3e7, - 0x000df3e7, - 0x0011f3e7, - 0x0015f3e7, - 0x0019f3e7, - 0x001df3e7, - 0x0001fbe7, - 0x0005fbe7, - 0x0009fbe7, - 0x000dfbe7, - 0x0011fbe7, - 0x0015fbe7, - 0x0019fbe7, - 0x001dfbe7, - 0x0001c3f7, - 0x0005c3f7, - 0x0009c3f7, - 0x000dc3f7, - 0x0011c3f7, - 0x0015c3f7, - 0x0019c3f7, - 0x001dc3f7, - 0x0001cbf7, - 0x0005cbf7, - 0x0009cbf7, - 0x000dcbf7, - 0x0011cbf7, - 0x0015cbf7, - 0x0019cbf7, - 0x001dcbf7, - 0x0001d3f7, - 0x0005d3f7, - 0x0009d3f7, - 0x000dd3f7, - 0x0011d3f7, - 0x0015d3f7, - 0x0019d3f7, - 0x001dd3f7, - 0x0001dbf7, - 0x0005dbf7, - 0x0009dbf7, - 0x000ddbf7, - 0x0011dbf7, - 0x0015dbf7, - 0x0019dbf7, - 0x001ddbf7, - 0x0001e3f7, - 0x0005e3f7, - 0x0009e3f7, - 0x000de3f7, - 0x0011e3f7, - 0x0015e3f7, - 0x0019e3f7, - 0x001de3f7, - 0x0001ebf7, - 0x0005ebf7, - 0x0009ebf7, - 0x000debf7, - 0x0011ebf7, - 0x0015ebf7, - 0x0019ebf7, - 0x001debf7, - 0x0001f3f7, - 0x0005f3f7, - 0x0009f3f7, - 0x000df3f7, - 0x0011f3f7, - 0x0015f3f7, - 0x0019f3f7, - 0x001df3f7, - 0x0001fbf7, - 0x0005fbf7, - 0x0009fbf7, - 0x000dfbf7, - 0x0011fbf7, - 0x0015fbf7, - 0x0019fbf7, - 0x001dfbf7, - 0x00e1c387, - 0x02e1c387, - 0x04e1c387, - 0x06e1c387, - 0x08e1c387, - 0x0ae1c387, - 0x0ce1c387, - 0x0ee1c387, - 0x00e5c387, - 0x02e5c387, - 0x04e5c387, - 0x06e5c387, - 0x08e5c387, - 0x0ae5c387, - 0x0ce5c387, - 0x0ee5c387, - 0x00e9c387, - 0x02e9c387, - 0x04e9c387, - 0x06e9c387, - 0x08e9c387, - 0x0ae9c387, - 0x0ce9c387, - 0x0ee9c387, - 0x00edc387, - 0x02edc387, - 0x04edc387, - 0x06edc387, - 0x08edc387, - 0x0aedc387, - 0x0cedc387, - 0x0eedc387, - 0x00f1c387, - 0x02f1c387, - 0x04f1c387, - 0x06f1c387, - 0x08f1c387, - 0x0af1c387, - 0x0cf1c387, - 0x0ef1c387, - 0x00f5c387, - 0x02f5c387, - 0x04f5c387, - 0x06f5c387, - 0x08f5c387, - 0x0af5c387, - 0x0cf5c387, - 0x0ef5c387, - 0x00f9c387, - 0x02f9c387, - 0x04f9c387, - 0x06f9c387, - 0x08f9c387, - 0x0af9c387, - 0x0cf9c387, - 0x0ef9c387, - 0x00fdc387, - 0x02fdc387, - 0x04fdc387, - 0x06fdc387, - 0x08fdc387, - 0x0afdc387, - 0x0cfdc387, - 0x0efdc387, - 0x00e1cb87, - 0x02e1cb87, - 0x04e1cb87, - 0x06e1cb87, - 0x08e1cb87, - 0x0ae1cb87, - 0x0ce1cb87, - 0x0ee1cb87, - 0x00e5cb87, - 0x02e5cb87, - 0x04e5cb87, - 0x06e5cb87, - 0x08e5cb87, - 0x0ae5cb87, - 0x0ce5cb87, - 0x0ee5cb87, - 0x00e9cb87, - 0x02e9cb87, - 0x04e9cb87, - 0x06e9cb87, - 0x08e9cb87, - 0x0ae9cb87, - 0x0ce9cb87, - 0x0ee9cb87, - 0x00edcb87, - 0x02edcb87, - 0x04edcb87, - 0x06edcb87, - 0x08edcb87, - 0x0aedcb87, - 0x0cedcb87, - 0x0eedcb87, - 0x00f1cb87, - 0x02f1cb87, - 0x04f1cb87, - 0x06f1cb87, - 0x08f1cb87, - 0x0af1cb87, - 0x0cf1cb87, - 0x0ef1cb87, - 0x00f5cb87, - 0x02f5cb87, - 0x04f5cb87, - 0x06f5cb87, - 0x08f5cb87, - 0x0af5cb87, - 0x0cf5cb87, - 0x0ef5cb87, - 0x00f9cb87, - 0x02f9cb87, - 0x04f9cb87, - 0x06f9cb87, - 0x08f9cb87, -} - -var kZeroRepsDepth = [numCommandSymbols]uint32{ - 0, - 4, - 8, - 7, - 7, - 7, - 7, - 7, - 7, - 7, - 7, - 11, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 14, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 21, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, - 28, -} - -var kNonZeroRepsBits = [numCommandSymbols]uint64{ - 0x0000000b, - 0x0000001b, - 0x0000002b, - 0x0000003b, - 0x000002cb, - 0x000006cb, - 0x00000acb, - 0x00000ecb, - 0x000002db, - 0x000006db, - 0x00000adb, - 0x00000edb, - 0x000002eb, - 0x000006eb, - 0x00000aeb, - 0x00000eeb, - 0x000002fb, - 0x000006fb, - 0x00000afb, - 0x00000efb, - 0x0000b2cb, - 0x0001b2cb, - 0x0002b2cb, - 0x0003b2cb, - 0x0000b6cb, - 0x0001b6cb, - 0x0002b6cb, - 0x0003b6cb, - 0x0000bacb, - 0x0001bacb, - 0x0002bacb, - 0x0003bacb, - 0x0000becb, - 0x0001becb, - 0x0002becb, - 0x0003becb, - 0x0000b2db, - 0x0001b2db, - 0x0002b2db, - 0x0003b2db, - 0x0000b6db, - 0x0001b6db, - 0x0002b6db, - 0x0003b6db, - 0x0000badb, - 0x0001badb, - 0x0002badb, - 0x0003badb, - 0x0000bedb, - 0x0001bedb, - 0x0002bedb, - 0x0003bedb, - 0x0000b2eb, - 0x0001b2eb, - 0x0002b2eb, - 0x0003b2eb, - 0x0000b6eb, - 0x0001b6eb, - 0x0002b6eb, - 0x0003b6eb, - 0x0000baeb, - 0x0001baeb, - 0x0002baeb, - 0x0003baeb, - 0x0000beeb, - 0x0001beeb, - 0x0002beeb, - 0x0003beeb, - 0x0000b2fb, - 0x0001b2fb, - 0x0002b2fb, - 0x0003b2fb, - 0x0000b6fb, - 0x0001b6fb, - 0x0002b6fb, - 0x0003b6fb, - 0x0000bafb, - 0x0001bafb, - 0x0002bafb, - 0x0003bafb, - 0x0000befb, - 0x0001befb, - 0x0002befb, - 0x0003befb, - 0x002cb2cb, - 0x006cb2cb, - 0x00acb2cb, - 0x00ecb2cb, - 0x002db2cb, - 0x006db2cb, - 0x00adb2cb, - 0x00edb2cb, - 0x002eb2cb, - 0x006eb2cb, - 0x00aeb2cb, - 0x00eeb2cb, - 0x002fb2cb, - 0x006fb2cb, - 0x00afb2cb, - 0x00efb2cb, - 0x002cb6cb, - 0x006cb6cb, - 0x00acb6cb, - 0x00ecb6cb, - 0x002db6cb, - 0x006db6cb, - 0x00adb6cb, - 0x00edb6cb, - 0x002eb6cb, - 0x006eb6cb, - 0x00aeb6cb, - 0x00eeb6cb, - 0x002fb6cb, - 0x006fb6cb, - 0x00afb6cb, - 0x00efb6cb, - 0x002cbacb, - 0x006cbacb, - 0x00acbacb, - 0x00ecbacb, - 0x002dbacb, - 0x006dbacb, - 0x00adbacb, - 0x00edbacb, - 0x002ebacb, - 0x006ebacb, - 0x00aebacb, - 0x00eebacb, - 0x002fbacb, - 0x006fbacb, - 0x00afbacb, - 0x00efbacb, - 0x002cbecb, - 0x006cbecb, - 0x00acbecb, - 0x00ecbecb, - 0x002dbecb, - 0x006dbecb, - 0x00adbecb, - 0x00edbecb, - 0x002ebecb, - 0x006ebecb, - 0x00aebecb, - 0x00eebecb, - 0x002fbecb, - 0x006fbecb, - 0x00afbecb, - 0x00efbecb, - 0x002cb2db, - 0x006cb2db, - 0x00acb2db, - 0x00ecb2db, - 0x002db2db, - 0x006db2db, - 0x00adb2db, - 0x00edb2db, - 0x002eb2db, - 0x006eb2db, - 0x00aeb2db, - 0x00eeb2db, - 0x002fb2db, - 0x006fb2db, - 0x00afb2db, - 0x00efb2db, - 0x002cb6db, - 0x006cb6db, - 0x00acb6db, - 0x00ecb6db, - 0x002db6db, - 0x006db6db, - 0x00adb6db, - 0x00edb6db, - 0x002eb6db, - 0x006eb6db, - 0x00aeb6db, - 0x00eeb6db, - 0x002fb6db, - 0x006fb6db, - 0x00afb6db, - 0x00efb6db, - 0x002cbadb, - 0x006cbadb, - 0x00acbadb, - 0x00ecbadb, - 0x002dbadb, - 0x006dbadb, - 0x00adbadb, - 0x00edbadb, - 0x002ebadb, - 0x006ebadb, - 0x00aebadb, - 0x00eebadb, - 0x002fbadb, - 0x006fbadb, - 0x00afbadb, - 0x00efbadb, - 0x002cbedb, - 0x006cbedb, - 0x00acbedb, - 0x00ecbedb, - 0x002dbedb, - 0x006dbedb, - 0x00adbedb, - 0x00edbedb, - 0x002ebedb, - 0x006ebedb, - 0x00aebedb, - 0x00eebedb, - 0x002fbedb, - 0x006fbedb, - 0x00afbedb, - 0x00efbedb, - 0x002cb2eb, - 0x006cb2eb, - 0x00acb2eb, - 0x00ecb2eb, - 0x002db2eb, - 0x006db2eb, - 0x00adb2eb, - 0x00edb2eb, - 0x002eb2eb, - 0x006eb2eb, - 0x00aeb2eb, - 0x00eeb2eb, - 0x002fb2eb, - 0x006fb2eb, - 0x00afb2eb, - 0x00efb2eb, - 0x002cb6eb, - 0x006cb6eb, - 0x00acb6eb, - 0x00ecb6eb, - 0x002db6eb, - 0x006db6eb, - 0x00adb6eb, - 0x00edb6eb, - 0x002eb6eb, - 0x006eb6eb, - 0x00aeb6eb, - 0x00eeb6eb, - 0x002fb6eb, - 0x006fb6eb, - 0x00afb6eb, - 0x00efb6eb, - 0x002cbaeb, - 0x006cbaeb, - 0x00acbaeb, - 0x00ecbaeb, - 0x002dbaeb, - 0x006dbaeb, - 0x00adbaeb, - 0x00edbaeb, - 0x002ebaeb, - 0x006ebaeb, - 0x00aebaeb, - 0x00eebaeb, - 0x002fbaeb, - 0x006fbaeb, - 0x00afbaeb, - 0x00efbaeb, - 0x002cbeeb, - 0x006cbeeb, - 0x00acbeeb, - 0x00ecbeeb, - 0x002dbeeb, - 0x006dbeeb, - 0x00adbeeb, - 0x00edbeeb, - 0x002ebeeb, - 0x006ebeeb, - 0x00aebeeb, - 0x00eebeeb, - 0x002fbeeb, - 0x006fbeeb, - 0x00afbeeb, - 0x00efbeeb, - 0x002cb2fb, - 0x006cb2fb, - 0x00acb2fb, - 0x00ecb2fb, - 0x002db2fb, - 0x006db2fb, - 0x00adb2fb, - 0x00edb2fb, - 0x002eb2fb, - 0x006eb2fb, - 0x00aeb2fb, - 0x00eeb2fb, - 0x002fb2fb, - 0x006fb2fb, - 0x00afb2fb, - 0x00efb2fb, - 0x002cb6fb, - 0x006cb6fb, - 0x00acb6fb, - 0x00ecb6fb, - 0x002db6fb, - 0x006db6fb, - 0x00adb6fb, - 0x00edb6fb, - 0x002eb6fb, - 0x006eb6fb, - 0x00aeb6fb, - 0x00eeb6fb, - 0x002fb6fb, - 0x006fb6fb, - 0x00afb6fb, - 0x00efb6fb, - 0x002cbafb, - 0x006cbafb, - 0x00acbafb, - 0x00ecbafb, - 0x002dbafb, - 0x006dbafb, - 0x00adbafb, - 0x00edbafb, - 0x002ebafb, - 0x006ebafb, - 0x00aebafb, - 0x00eebafb, - 0x002fbafb, - 0x006fbafb, - 0x00afbafb, - 0x00efbafb, - 0x002cbefb, - 0x006cbefb, - 0x00acbefb, - 0x00ecbefb, - 0x002dbefb, - 0x006dbefb, - 0x00adbefb, - 0x00edbefb, - 0x002ebefb, - 0x006ebefb, - 0x00aebefb, - 0x00eebefb, - 0x002fbefb, - 0x006fbefb, - 0x00afbefb, - 0x00efbefb, - 0x0b2cb2cb, - 0x1b2cb2cb, - 0x2b2cb2cb, - 0x3b2cb2cb, - 0x0b6cb2cb, - 0x1b6cb2cb, - 0x2b6cb2cb, - 0x3b6cb2cb, - 0x0bacb2cb, - 0x1bacb2cb, - 0x2bacb2cb, - 0x3bacb2cb, - 0x0becb2cb, - 0x1becb2cb, - 0x2becb2cb, - 0x3becb2cb, - 0x0b2db2cb, - 0x1b2db2cb, - 0x2b2db2cb, - 0x3b2db2cb, - 0x0b6db2cb, - 0x1b6db2cb, - 0x2b6db2cb, - 0x3b6db2cb, - 0x0badb2cb, - 0x1badb2cb, - 0x2badb2cb, - 0x3badb2cb, - 0x0bedb2cb, - 0x1bedb2cb, - 0x2bedb2cb, - 0x3bedb2cb, - 0x0b2eb2cb, - 0x1b2eb2cb, - 0x2b2eb2cb, - 0x3b2eb2cb, - 0x0b6eb2cb, - 0x1b6eb2cb, - 0x2b6eb2cb, - 0x3b6eb2cb, - 0x0baeb2cb, - 0x1baeb2cb, - 0x2baeb2cb, - 0x3baeb2cb, - 0x0beeb2cb, - 0x1beeb2cb, - 0x2beeb2cb, - 0x3beeb2cb, - 0x0b2fb2cb, - 0x1b2fb2cb, - 0x2b2fb2cb, - 0x3b2fb2cb, - 0x0b6fb2cb, - 0x1b6fb2cb, - 0x2b6fb2cb, - 0x3b6fb2cb, - 0x0bafb2cb, - 0x1bafb2cb, - 0x2bafb2cb, - 0x3bafb2cb, - 0x0befb2cb, - 0x1befb2cb, - 0x2befb2cb, - 0x3befb2cb, - 0x0b2cb6cb, - 0x1b2cb6cb, - 0x2b2cb6cb, - 0x3b2cb6cb, - 0x0b6cb6cb, - 0x1b6cb6cb, - 0x2b6cb6cb, - 0x3b6cb6cb, - 0x0bacb6cb, - 0x1bacb6cb, - 0x2bacb6cb, - 0x3bacb6cb, - 0x0becb6cb, - 0x1becb6cb, - 0x2becb6cb, - 0x3becb6cb, - 0x0b2db6cb, - 0x1b2db6cb, - 0x2b2db6cb, - 0x3b2db6cb, - 0x0b6db6cb, - 0x1b6db6cb, - 0x2b6db6cb, - 0x3b6db6cb, - 0x0badb6cb, - 0x1badb6cb, - 0x2badb6cb, - 0x3badb6cb, - 0x0bedb6cb, - 0x1bedb6cb, - 0x2bedb6cb, - 0x3bedb6cb, - 0x0b2eb6cb, - 0x1b2eb6cb, - 0x2b2eb6cb, - 0x3b2eb6cb, - 0x0b6eb6cb, - 0x1b6eb6cb, - 0x2b6eb6cb, - 0x3b6eb6cb, - 0x0baeb6cb, - 0x1baeb6cb, - 0x2baeb6cb, - 0x3baeb6cb, - 0x0beeb6cb, - 0x1beeb6cb, - 0x2beeb6cb, - 0x3beeb6cb, - 0x0b2fb6cb, - 0x1b2fb6cb, - 0x2b2fb6cb, - 0x3b2fb6cb, - 0x0b6fb6cb, - 0x1b6fb6cb, - 0x2b6fb6cb, - 0x3b6fb6cb, - 0x0bafb6cb, - 0x1bafb6cb, - 0x2bafb6cb, - 0x3bafb6cb, - 0x0befb6cb, - 0x1befb6cb, - 0x2befb6cb, - 0x3befb6cb, - 0x0b2cbacb, - 0x1b2cbacb, - 0x2b2cbacb, - 0x3b2cbacb, - 0x0b6cbacb, - 0x1b6cbacb, - 0x2b6cbacb, - 0x3b6cbacb, - 0x0bacbacb, - 0x1bacbacb, - 0x2bacbacb, - 0x3bacbacb, - 0x0becbacb, - 0x1becbacb, - 0x2becbacb, - 0x3becbacb, - 0x0b2dbacb, - 0x1b2dbacb, - 0x2b2dbacb, - 0x3b2dbacb, - 0x0b6dbacb, - 0x1b6dbacb, - 0x2b6dbacb, - 0x3b6dbacb, - 0x0badbacb, - 0x1badbacb, - 0x2badbacb, - 0x3badbacb, - 0x0bedbacb, - 0x1bedbacb, - 0x2bedbacb, - 0x3bedbacb, - 0x0b2ebacb, - 0x1b2ebacb, - 0x2b2ebacb, - 0x3b2ebacb, - 0x0b6ebacb, - 0x1b6ebacb, - 0x2b6ebacb, - 0x3b6ebacb, - 0x0baebacb, - 0x1baebacb, - 0x2baebacb, - 0x3baebacb, - 0x0beebacb, - 0x1beebacb, - 0x2beebacb, - 0x3beebacb, - 0x0b2fbacb, - 0x1b2fbacb, - 0x2b2fbacb, - 0x3b2fbacb, - 0x0b6fbacb, - 0x1b6fbacb, - 0x2b6fbacb, - 0x3b6fbacb, - 0x0bafbacb, - 0x1bafbacb, - 0x2bafbacb, - 0x3bafbacb, - 0x0befbacb, - 0x1befbacb, - 0x2befbacb, - 0x3befbacb, - 0x0b2cbecb, - 0x1b2cbecb, - 0x2b2cbecb, - 0x3b2cbecb, - 0x0b6cbecb, - 0x1b6cbecb, - 0x2b6cbecb, - 0x3b6cbecb, - 0x0bacbecb, - 0x1bacbecb, - 0x2bacbecb, - 0x3bacbecb, - 0x0becbecb, - 0x1becbecb, - 0x2becbecb, - 0x3becbecb, - 0x0b2dbecb, - 0x1b2dbecb, - 0x2b2dbecb, - 0x3b2dbecb, - 0x0b6dbecb, - 0x1b6dbecb, - 0x2b6dbecb, - 0x3b6dbecb, - 0x0badbecb, - 0x1badbecb, - 0x2badbecb, - 0x3badbecb, - 0x0bedbecb, - 0x1bedbecb, - 0x2bedbecb, - 0x3bedbecb, - 0x0b2ebecb, - 0x1b2ebecb, - 0x2b2ebecb, - 0x3b2ebecb, - 0x0b6ebecb, - 0x1b6ebecb, - 0x2b6ebecb, - 0x3b6ebecb, - 0x0baebecb, - 0x1baebecb, - 0x2baebecb, - 0x3baebecb, - 0x0beebecb, - 0x1beebecb, - 0x2beebecb, - 0x3beebecb, - 0x0b2fbecb, - 0x1b2fbecb, - 0x2b2fbecb, - 0x3b2fbecb, - 0x0b6fbecb, - 0x1b6fbecb, - 0x2b6fbecb, - 0x3b6fbecb, - 0x0bafbecb, - 0x1bafbecb, - 0x2bafbecb, - 0x3bafbecb, - 0x0befbecb, - 0x1befbecb, - 0x2befbecb, - 0x3befbecb, - 0x0b2cb2db, - 0x1b2cb2db, - 0x2b2cb2db, - 0x3b2cb2db, - 0x0b6cb2db, - 0x1b6cb2db, - 0x2b6cb2db, - 0x3b6cb2db, - 0x0bacb2db, - 0x1bacb2db, - 0x2bacb2db, - 0x3bacb2db, - 0x0becb2db, - 0x1becb2db, - 0x2becb2db, - 0x3becb2db, - 0x0b2db2db, - 0x1b2db2db, - 0x2b2db2db, - 0x3b2db2db, - 0x0b6db2db, - 0x1b6db2db, - 0x2b6db2db, - 0x3b6db2db, - 0x0badb2db, - 0x1badb2db, - 0x2badb2db, - 0x3badb2db, - 0x0bedb2db, - 0x1bedb2db, - 0x2bedb2db, - 0x3bedb2db, - 0x0b2eb2db, - 0x1b2eb2db, - 0x2b2eb2db, - 0x3b2eb2db, - 0x0b6eb2db, - 0x1b6eb2db, - 0x2b6eb2db, - 0x3b6eb2db, - 0x0baeb2db, - 0x1baeb2db, - 0x2baeb2db, - 0x3baeb2db, - 0x0beeb2db, - 0x1beeb2db, - 0x2beeb2db, - 0x3beeb2db, - 0x0b2fb2db, - 0x1b2fb2db, - 0x2b2fb2db, - 0x3b2fb2db, - 0x0b6fb2db, - 0x1b6fb2db, - 0x2b6fb2db, - 0x3b6fb2db, - 0x0bafb2db, - 0x1bafb2db, - 0x2bafb2db, - 0x3bafb2db, - 0x0befb2db, - 0x1befb2db, - 0x2befb2db, - 0x3befb2db, - 0x0b2cb6db, - 0x1b2cb6db, - 0x2b2cb6db, - 0x3b2cb6db, - 0x0b6cb6db, - 0x1b6cb6db, - 0x2b6cb6db, - 0x3b6cb6db, - 0x0bacb6db, - 0x1bacb6db, - 0x2bacb6db, - 0x3bacb6db, - 0x0becb6db, - 0x1becb6db, - 0x2becb6db, - 0x3becb6db, - 0x0b2db6db, - 0x1b2db6db, - 0x2b2db6db, - 0x3b2db6db, - 0x0b6db6db, - 0x1b6db6db, - 0x2b6db6db, - 0x3b6db6db, - 0x0badb6db, - 0x1badb6db, - 0x2badb6db, - 0x3badb6db, - 0x0bedb6db, - 0x1bedb6db, - 0x2bedb6db, - 0x3bedb6db, - 0x0b2eb6db, - 0x1b2eb6db, - 0x2b2eb6db, - 0x3b2eb6db, - 0x0b6eb6db, - 0x1b6eb6db, - 0x2b6eb6db, - 0x3b6eb6db, - 0x0baeb6db, - 0x1baeb6db, - 0x2baeb6db, - 0x3baeb6db, -} - -var kNonZeroRepsDepth = [numCommandSymbols]uint32{ - 6, - 6, - 6, - 6, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 12, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 18, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 24, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, - 30, -} - -var kStaticCommandCodeBits = [numCommandSymbols]uint16{ - 0, - 256, - 128, - 384, - 64, - 320, - 192, - 448, - 32, - 288, - 160, - 416, - 96, - 352, - 224, - 480, - 16, - 272, - 144, - 400, - 80, - 336, - 208, - 464, - 48, - 304, - 176, - 432, - 112, - 368, - 240, - 496, - 8, - 264, - 136, - 392, - 72, - 328, - 200, - 456, - 40, - 296, - 168, - 424, - 104, - 360, - 232, - 488, - 24, - 280, - 152, - 408, - 88, - 344, - 216, - 472, - 56, - 312, - 184, - 440, - 120, - 376, - 248, - 504, - 4, - 260, - 132, - 388, - 68, - 324, - 196, - 452, - 36, - 292, - 164, - 420, - 100, - 356, - 228, - 484, - 20, - 276, - 148, - 404, - 84, - 340, - 212, - 468, - 52, - 308, - 180, - 436, - 116, - 372, - 244, - 500, - 12, - 268, - 140, - 396, - 76, - 332, - 204, - 460, - 44, - 300, - 172, - 428, - 108, - 364, - 236, - 492, - 28, - 284, - 156, - 412, - 92, - 348, - 220, - 476, - 60, - 316, - 188, - 444, - 124, - 380, - 252, - 508, - 2, - 258, - 130, - 386, - 66, - 322, - 194, - 450, - 34, - 290, - 162, - 418, - 98, - 354, - 226, - 482, - 18, - 274, - 146, - 402, - 82, - 338, - 210, - 466, - 50, - 306, - 178, - 434, - 114, - 370, - 242, - 498, - 10, - 266, - 138, - 394, - 74, - 330, - 202, - 458, - 42, - 298, - 170, - 426, - 106, - 362, - 234, - 490, - 26, - 282, - 154, - 410, - 90, - 346, - 218, - 474, - 58, - 314, - 186, - 442, - 122, - 378, - 250, - 506, - 6, - 262, - 134, - 390, - 70, - 326, - 198, - 454, - 38, - 294, - 166, - 422, - 102, - 358, - 230, - 486, - 22, - 278, - 150, - 406, - 86, - 342, - 214, - 470, - 54, - 310, - 182, - 438, - 118, - 374, - 246, - 502, - 14, - 270, - 142, - 398, - 78, - 334, - 206, - 462, - 46, - 302, - 174, - 430, - 110, - 366, - 238, - 494, - 30, - 286, - 158, - 414, - 94, - 350, - 222, - 478, - 62, - 318, - 190, - 446, - 126, - 382, - 254, - 510, - 1, - 257, - 129, - 385, - 65, - 321, - 193, - 449, - 33, - 289, - 161, - 417, - 97, - 353, - 225, - 481, - 17, - 273, - 145, - 401, - 81, - 337, - 209, - 465, - 49, - 305, - 177, - 433, - 113, - 369, - 241, - 497, - 9, - 265, - 137, - 393, - 73, - 329, - 201, - 457, - 41, - 297, - 169, - 425, - 105, - 361, - 233, - 489, - 25, - 281, - 153, - 409, - 89, - 345, - 217, - 473, - 57, - 313, - 185, - 441, - 121, - 377, - 249, - 505, - 5, - 261, - 133, - 389, - 69, - 325, - 197, - 453, - 37, - 293, - 165, - 421, - 101, - 357, - 229, - 485, - 21, - 277, - 149, - 405, - 85, - 341, - 213, - 469, - 53, - 309, - 181, - 437, - 117, - 373, - 245, - 501, - 13, - 269, - 141, - 397, - 77, - 333, - 205, - 461, - 45, - 301, - 173, - 429, - 109, - 365, - 237, - 493, - 29, - 285, - 157, - 413, - 93, - 349, - 221, - 477, - 61, - 317, - 189, - 445, - 125, - 381, - 253, - 509, - 3, - 259, - 131, - 387, - 67, - 323, - 195, - 451, - 35, - 291, - 163, - 419, - 99, - 355, - 227, - 483, - 19, - 275, - 147, - 403, - 83, - 339, - 211, - 467, - 51, - 307, - 179, - 435, - 115, - 371, - 243, - 499, - 11, - 267, - 139, - 395, - 75, - 331, - 203, - 459, - 43, - 299, - 171, - 427, - 107, - 363, - 235, - 491, - 27, - 283, - 155, - 411, - 91, - 347, - 219, - 475, - 59, - 315, - 187, - 443, - 123, - 379, - 251, - 507, - 7, - 1031, - 519, - 1543, - 263, - 1287, - 775, - 1799, - 135, - 1159, - 647, - 1671, - 391, - 1415, - 903, - 1927, - 71, - 1095, - 583, - 1607, - 327, - 1351, - 839, - 1863, - 199, - 1223, - 711, - 1735, - 455, - 1479, - 967, - 1991, - 39, - 1063, - 551, - 1575, - 295, - 1319, - 807, - 1831, - 167, - 1191, - 679, - 1703, - 423, - 1447, - 935, - 1959, - 103, - 1127, - 615, - 1639, - 359, - 1383, - 871, - 1895, - 231, - 1255, - 743, - 1767, - 487, - 1511, - 999, - 2023, - 23, - 1047, - 535, - 1559, - 279, - 1303, - 791, - 1815, - 151, - 1175, - 663, - 1687, - 407, - 1431, - 919, - 1943, - 87, - 1111, - 599, - 1623, - 343, - 1367, - 855, - 1879, - 215, - 1239, - 727, - 1751, - 471, - 1495, - 983, - 2007, - 55, - 1079, - 567, - 1591, - 311, - 1335, - 823, - 1847, - 183, - 1207, - 695, - 1719, - 439, - 1463, - 951, - 1975, - 119, - 1143, - 631, - 1655, - 375, - 1399, - 887, - 1911, - 247, - 1271, - 759, - 1783, - 503, - 1527, - 1015, - 2039, - 15, - 1039, - 527, - 1551, - 271, - 1295, - 783, - 1807, - 143, - 1167, - 655, - 1679, - 399, - 1423, - 911, - 1935, - 79, - 1103, - 591, - 1615, - 335, - 1359, - 847, - 1871, - 207, - 1231, - 719, - 1743, - 463, - 1487, - 975, - 1999, - 47, - 1071, - 559, - 1583, - 303, - 1327, - 815, - 1839, - 175, - 1199, - 687, - 1711, - 431, - 1455, - 943, - 1967, - 111, - 1135, - 623, - 1647, - 367, - 1391, - 879, - 1903, - 239, - 1263, - 751, - 1775, - 495, - 1519, - 1007, - 2031, - 31, - 1055, - 543, - 1567, - 287, - 1311, - 799, - 1823, - 159, - 1183, - 671, - 1695, - 415, - 1439, - 927, - 1951, - 95, - 1119, - 607, - 1631, - 351, - 1375, - 863, - 1887, - 223, - 1247, - 735, - 1759, - 479, - 1503, - 991, - 2015, - 63, - 1087, - 575, - 1599, - 319, - 1343, - 831, - 1855, - 191, - 1215, - 703, - 1727, - 447, - 1471, - 959, - 1983, - 127, - 1151, - 639, - 1663, - 383, - 1407, - 895, - 1919, - 255, - 1279, - 767, - 1791, - 511, - 1535, - 1023, - 2047, -} - -func storeStaticCommandHuffmanTree(storage_ix *uint, storage []byte) { - writeBits(56, 0x92624416307003, storage_ix, storage) - writeBits(3, 0x00000000, storage_ix, storage) -} - -var kStaticDistanceCodeBits = [64]uint16{ - 0, - 32, - 16, - 48, - 8, - 40, - 24, - 56, - 4, - 36, - 20, - 52, - 12, - 44, - 28, - 60, - 2, - 34, - 18, - 50, - 10, - 42, - 26, - 58, - 6, - 38, - 22, - 54, - 14, - 46, - 30, - 62, - 1, - 33, - 17, - 49, - 9, - 41, - 25, - 57, - 5, - 37, - 21, - 53, - 13, - 45, - 29, - 61, - 3, - 35, - 19, - 51, - 11, - 43, - 27, - 59, - 7, - 39, - 23, - 55, - 15, - 47, - 31, - 63, -} - -func storeStaticDistanceHuffmanTree(storage_ix *uint, storage []byte) { - writeBits(28, 0x0369DC03, storage_ix, storage) -} diff --git a/vendor/github.com/andybalholm/brotli/fast_log.go b/vendor/github.com/andybalholm/brotli/fast_log.go deleted file mode 100644 index 9d6607f..0000000 --- a/vendor/github.com/andybalholm/brotli/fast_log.go +++ /dev/null @@ -1,290 +0,0 @@ -package brotli - -import ( - "math" - "math/bits" -) - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for fast computation of logarithms. */ - -func log2FloorNonZero(n uint) uint32 { - return uint32(bits.Len(n)) - 1 -} - -/* A lookup table for small values of log2(int) to be used in entropy - computation. - - ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */ -var kLog2Table = []float32{ - 0.0000000000000000, - 0.0000000000000000, - 1.0000000000000000, - 1.5849625007211563, - 2.0000000000000000, - 2.3219280948873622, - 2.5849625007211561, - 2.8073549220576042, - 3.0000000000000000, - 3.1699250014423126, - 3.3219280948873626, - 3.4594316186372978, - 3.5849625007211565, - 3.7004397181410922, - 3.8073549220576037, - 3.9068905956085187, - 4.0000000000000000, - 4.0874628412503400, - 4.1699250014423122, - 4.2479275134435852, - 4.3219280948873626, - 4.3923174227787607, - 4.4594316186372973, - 4.5235619560570131, - 4.5849625007211570, - 4.6438561897747244, - 4.7004397181410926, - 4.7548875021634691, - 4.8073549220576037, - 4.8579809951275728, - 4.9068905956085187, - 4.9541963103868758, - 5.0000000000000000, - 5.0443941193584534, - 5.0874628412503400, - 5.1292830169449664, - 5.1699250014423122, - 5.2094533656289501, - 5.2479275134435852, - 5.2854022188622487, - 5.3219280948873626, - 5.3575520046180838, - 5.3923174227787607, - 5.4262647547020979, - 5.4594316186372973, - 5.4918530963296748, - 5.5235619560570131, - 5.5545888516776376, - 5.5849625007211570, - 5.6147098441152083, - 5.6438561897747244, - 5.6724253419714961, - 5.7004397181410926, - 5.7279204545631996, - 5.7548875021634691, - 5.7813597135246599, - 5.8073549220576046, - 5.8328900141647422, - 5.8579809951275719, - 5.8826430493618416, - 5.9068905956085187, - 5.9307373375628867, - 5.9541963103868758, - 5.9772799234999168, - 6.0000000000000000, - 6.0223678130284544, - 6.0443941193584534, - 6.0660891904577721, - 6.0874628412503400, - 6.1085244567781700, - 6.1292830169449672, - 6.1497471195046822, - 6.1699250014423122, - 6.1898245588800176, - 6.2094533656289510, - 6.2288186904958804, - 6.2479275134435861, - 6.2667865406949019, - 6.2854022188622487, - 6.3037807481771031, - 6.3219280948873617, - 6.3398500028846252, - 6.3575520046180847, - 6.3750394313469254, - 6.3923174227787598, - 6.4093909361377026, - 6.4262647547020979, - 6.4429434958487288, - 6.4594316186372982, - 6.4757334309663976, - 6.4918530963296748, - 6.5077946401986964, - 6.5235619560570131, - 6.5391588111080319, - 6.5545888516776376, - 6.5698556083309478, - 6.5849625007211561, - 6.5999128421871278, - 6.6147098441152092, - 6.6293566200796095, - 6.6438561897747253, - 6.6582114827517955, - 6.6724253419714952, - 6.6865005271832185, - 6.7004397181410917, - 6.7142455176661224, - 6.7279204545631988, - 6.7414669864011465, - 6.7548875021634691, - 6.7681843247769260, - 6.7813597135246599, - 6.7944158663501062, - 6.8073549220576037, - 6.8201789624151887, - 6.8328900141647422, - 6.8454900509443757, - 6.8579809951275719, - 6.8703647195834048, - 6.8826430493618416, - 6.8948177633079437, - 6.9068905956085187, - 6.9188632372745955, - 6.9307373375628867, - 6.9425145053392399, - 6.9541963103868758, - 6.9657842846620879, - 6.9772799234999168, - 6.9886846867721664, - 7.0000000000000000, - 7.0112272554232540, - 7.0223678130284544, - 7.0334230015374501, - 7.0443941193584534, - 7.0552824355011898, - 7.0660891904577721, - 7.0768155970508317, - 7.0874628412503400, - 7.0980320829605272, - 7.1085244567781700, - 7.1189410727235076, - 7.1292830169449664, - 7.1395513523987937, - 7.1497471195046822, - 7.1598713367783891, - 7.1699250014423130, - 7.1799090900149345, - 7.1898245588800176, - 7.1996723448363644, - 7.2094533656289492, - 7.2191685204621621, - 7.2288186904958804, - 7.2384047393250794, - 7.2479275134435861, - 7.2573878426926521, - 7.2667865406949019, - 7.2761244052742384, - 7.2854022188622487, - 7.2946207488916270, - 7.3037807481771031, - 7.3128829552843557, - 7.3219280948873617, - 7.3309168781146177, - 7.3398500028846243, - 7.3487281542310781, - 7.3575520046180847, - 7.3663222142458151, - 7.3750394313469254, - 7.3837042924740528, - 7.3923174227787607, - 7.4008794362821844, - 7.4093909361377026, - 7.4178525148858991, - 7.4262647547020979, - 7.4346282276367255, - 7.4429434958487288, - 7.4512111118323299, - 7.4594316186372973, - 7.4676055500829976, - 7.4757334309663976, - 7.4838157772642564, - 7.4918530963296748, - 7.4998458870832057, - 7.5077946401986964, - 7.5156998382840436, - 7.5235619560570131, - 7.5313814605163119, - 7.5391588111080319, - 7.5468944598876373, - 7.5545888516776376, - 7.5622424242210728, - 7.5698556083309478, - 7.5774288280357487, - 7.5849625007211561, - 7.5924570372680806, - 7.5999128421871278, - 7.6073303137496113, - 7.6147098441152075, - 7.6220518194563764, - 7.6293566200796095, - 7.6366246205436488, - 7.6438561897747244, - 7.6510516911789290, - 7.6582114827517955, - 7.6653359171851765, - 7.6724253419714952, - 7.6794800995054464, - 7.6865005271832185, - 7.6934869574993252, - 7.7004397181410926, - 7.7073591320808825, - 7.7142455176661224, - 7.7210991887071856, - 7.7279204545631996, - 7.7347096202258392, - 7.7414669864011465, - 7.7481928495894596, - 7.7548875021634691, - 7.7615512324444795, - 7.7681843247769260, - 7.7747870596011737, - 7.7813597135246608, - 7.7879025593914317, - 7.7944158663501062, - 7.8008998999203047, - 7.8073549220576037, - 7.8137811912170374, - 7.8201789624151887, - 7.8265484872909159, - 7.8328900141647422, - 7.8392037880969445, - 7.8454900509443757, - 7.8517490414160571, - 7.8579809951275719, - 7.8641861446542798, - 7.8703647195834048, - 7.8765169465650002, - 7.8826430493618425, - 7.8887432488982601, - 7.8948177633079446, - 7.9008668079807496, - 7.9068905956085187, - 7.9128893362299619, - 7.9188632372745955, - 7.9248125036057813, - 7.9307373375628867, - 7.9366379390025719, - 7.9425145053392399, - 7.9483672315846778, - 7.9541963103868758, - 7.9600019320680806, - 7.9657842846620870, - 7.9715435539507720, - 7.9772799234999168, - 7.9829935746943104, - 7.9886846867721664, - 7.9943534368588578, -} - -/* Faster logarithm for small integers, with the property of log2(0) == 0. */ -func fastLog2(v uint) float64 { - if v < uint(len(kLog2Table)) { - return float64(kLog2Table[v]) - } - - return math.Log2(float64(v)) -} diff --git a/vendor/github.com/andybalholm/brotli/find_match_length.go b/vendor/github.com/andybalholm/brotli/find_match_length.go deleted file mode 100644 index 09d2ae6..0000000 --- a/vendor/github.com/andybalholm/brotli/find_match_length.go +++ /dev/null @@ -1,45 +0,0 @@ -package brotli - -import ( - "encoding/binary" - "math/bits" - "runtime" -) - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Function to find maximal matching prefixes of strings. */ -func findMatchLengthWithLimit(s1 []byte, s2 []byte, limit uint) uint { - var matched uint = 0 - _, _ = s1[limit-1], s2[limit-1] // bounds check - switch runtime.GOARCH { - case "amd64": - // Compare 8 bytes at at time. - for matched+8 <= limit { - w1 := binary.LittleEndian.Uint64(s1[matched:]) - w2 := binary.LittleEndian.Uint64(s2[matched:]) - if w1 != w2 { - return matched + uint(bits.TrailingZeros64(w1^w2)>>3) - } - matched += 8 - } - case "386": - // Compare 4 bytes at at time. - for matched+4 <= limit { - w1 := binary.LittleEndian.Uint32(s1[matched:]) - w2 := binary.LittleEndian.Uint32(s2[matched:]) - if w1 != w2 { - return matched + uint(bits.TrailingZeros32(w1^w2)>>3) - } - matched += 4 - } - } - for matched < limit && s1[matched] == s2[matched] { - matched++ - } - return matched -} diff --git a/vendor/github.com/andybalholm/brotli/h10.go b/vendor/github.com/andybalholm/brotli/h10.go deleted file mode 100644 index 5662fbb..0000000 --- a/vendor/github.com/andybalholm/brotli/h10.go +++ /dev/null @@ -1,287 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (*h10) HashTypeLength() uint { - return 4 -} - -func (*h10) StoreLookahead() uint { - return 128 -} - -func hashBytesH10(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> (32 - 17) -} - -/* A (forgetful) hash table where each hash bucket contains a binary tree of - sequences whose first 4 bytes share the same hash code. - Each sequence is 128 long and is identified by its starting - position in the input data. The binary tree is sorted by the lexicographic - order of the sequences, and it is also a max-heap with respect to the - starting positions. */ -type h10 struct { - hasherCommon - window_mask_ uint - buckets_ [1 << 17]uint32 - invalid_pos_ uint32 - forest []uint32 -} - -func (h *h10) Initialize(params *encoderParams) { - h.window_mask_ = (1 << params.lgwin) - 1 - h.invalid_pos_ = uint32(0 - h.window_mask_) - var num_nodes uint = uint(1) << params.lgwin - h.forest = make([]uint32, 2*num_nodes) -} - -func (h *h10) Prepare(one_shot bool, input_size uint, data []byte) { - var invalid_pos uint32 = h.invalid_pos_ - var i uint32 - for i = 0; i < 1<<17; i++ { - h.buckets_[i] = invalid_pos - } -} - -func leftChildIndexH10(self *h10, pos uint) uint { - return 2 * (pos & self.window_mask_) -} - -func rightChildIndexH10(self *h10, pos uint) uint { - return 2*(pos&self.window_mask_) + 1 -} - -/* Stores the hash of the next 4 bytes and in a single tree-traversal, the - hash bucket's binary tree is searched for matches and is re-rooted at the - current position. - - If less than 128 data is available, the hash bucket of the - current position is searched for matches, but the state of the hash table - is not changed, since we can not know the final sorting order of the - current (incomplete) sequence. - - This function must be called with increasing cur_ix positions. */ -func storeAndFindMatchesH10(self *h10, data []byte, cur_ix uint, ring_buffer_mask uint, max_length uint, max_backward uint, best_len *uint, matches []backwardMatch) []backwardMatch { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var max_comp_len uint = brotli_min_size_t(max_length, 128) - var should_reroot_tree bool = (max_length >= 128) - var key uint32 = hashBytesH10(data[cur_ix_masked:]) - var forest []uint32 = self.forest - var prev_ix uint = uint(self.buckets_[key]) - var node_left uint = leftChildIndexH10(self, cur_ix) - var node_right uint = rightChildIndexH10(self, cur_ix) - var best_len_left uint = 0 - var best_len_right uint = 0 - var depth_remaining uint - /* The forest index of the rightmost node of the left subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The forest index of the leftmost node of the right subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The match length of the rightmost node of the left subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - - /* The match length of the leftmost node of the right subtree of the new - root, updated as we traverse and re-root the tree of the hash bucket. */ - if should_reroot_tree { - self.buckets_[key] = uint32(cur_ix) - } - - for depth_remaining = 64; ; depth_remaining-- { - var backward uint = cur_ix - prev_ix - var prev_ix_masked uint = prev_ix & ring_buffer_mask - if backward == 0 || backward > max_backward || depth_remaining == 0 { - if should_reroot_tree { - forest[node_left] = self.invalid_pos_ - forest[node_right] = self.invalid_pos_ - } - - break - } - { - var cur_len uint = brotli_min_size_t(best_len_left, best_len_right) - var len uint - assert(cur_len <= 128) - len = cur_len + findMatchLengthWithLimit(data[cur_ix_masked+cur_len:], data[prev_ix_masked+cur_len:], max_length-cur_len) - if matches != nil && len > *best_len { - *best_len = uint(len) - initBackwardMatch(&matches[0], backward, uint(len)) - matches = matches[1:] - } - - if len >= max_comp_len { - if should_reroot_tree { - forest[node_left] = forest[leftChildIndexH10(self, prev_ix)] - forest[node_right] = forest[rightChildIndexH10(self, prev_ix)] - } - - break - } - - if data[cur_ix_masked+len] > data[prev_ix_masked+len] { - best_len_left = uint(len) - if should_reroot_tree { - forest[node_left] = uint32(prev_ix) - } - - node_left = rightChildIndexH10(self, prev_ix) - prev_ix = uint(forest[node_left]) - } else { - best_len_right = uint(len) - if should_reroot_tree { - forest[node_right] = uint32(prev_ix) - } - - node_right = leftChildIndexH10(self, prev_ix) - prev_ix = uint(forest[node_right]) - } - } - } - - return matches -} - -/* Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the - length of max_length and stores the position cur_ix in the hash table. - - Sets *num_matches to the number of matches found, and stores the found - matches in matches[0] to matches[*num_matches - 1]. The matches will be - sorted by strictly increasing length and (non-strictly) increasing - distance. */ -func findAllMatchesH10(handle *h10, dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, cur_ix uint, max_length uint, max_backward uint, gap uint, params *encoderParams, matches []backwardMatch) uint { - var orig_matches []backwardMatch = matches - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var best_len uint = 1 - var short_match_max_backward uint - if params.quality != hqZopflificationQuality { - short_match_max_backward = 16 - } else { - short_match_max_backward = 64 - } - var stop uint = cur_ix - short_match_max_backward - var dict_matches [maxStaticDictionaryMatchLen + 1]uint32 - var i uint - if cur_ix < short_match_max_backward { - stop = 0 - } - for i = cur_ix - 1; i > stop && best_len <= 2; i-- { - var prev_ix uint = i - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if data[cur_ix_masked] != data[prev_ix] || data[cur_ix_masked+1] != data[prev_ix+1] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len > best_len { - best_len = uint(len) - initBackwardMatch(&matches[0], backward, uint(len)) - matches = matches[1:] - } - } - } - - if best_len < max_length { - matches = storeAndFindMatchesH10(handle, data, cur_ix, ring_buffer_mask, max_length, max_backward, &best_len, matches) - } - - for i = 0; i <= maxStaticDictionaryMatchLen; i++ { - dict_matches[i] = kInvalidMatch - } - { - var minlen uint = brotli_max_size_t(4, best_len+1) - if findAllStaticDictionaryMatches(dictionary, data[cur_ix_masked:], minlen, max_length, dict_matches[0:]) { - var maxlen uint = brotli_min_size_t(maxStaticDictionaryMatchLen, max_length) - var l uint - for l = minlen; l <= maxlen; l++ { - var dict_id uint32 = dict_matches[l] - if dict_id < kInvalidMatch { - var distance uint = max_backward + gap + uint(dict_id>>5) + 1 - if distance <= params.dist.max_distance { - initDictionaryBackwardMatch(&matches[0], distance, l, uint(dict_id&31)) - matches = matches[1:] - } - } - } - } - } - - return uint(-cap(matches) + cap(orig_matches)) -} - -/* Stores the hash of the next 4 bytes and re-roots the binary tree at the - current sequence, without returning any matches. - REQUIRES: ix + 128 <= end-of-current-block */ -func (h *h10) Store(data []byte, mask uint, ix uint) { - var max_backward uint = h.window_mask_ - windowGap + 1 - /* Maximum distance is window size - 16, see section 9.1. of the spec. */ - storeAndFindMatchesH10(h, data, ix, mask, 128, max_backward, nil, nil) -} - -func (h *h10) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint = ix_start - var j uint = ix_start - if ix_start+63 <= ix_end { - i = ix_end - 63 - } - - if ix_start+512 <= i { - for ; j < i; j += 8 { - h.Store(data, mask, j) - } - } - - for ; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *h10) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 128 { - var i_start uint = position - 128 + 1 - var i_end uint = brotli_min_size_t(position, i_start+num_bytes) - /* Store the last `128 - 1` positions in the hasher. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - - var i uint - for i = i_start; i < i_end; i++ { - /* Maximum distance is window size - 16, see section 9.1. of the spec. - Furthermore, we have to make sure that we don't look further back - from the start of the next block than the window size, otherwise we - could access already overwritten areas of the ring-buffer. */ - var max_backward uint = h.window_mask_ - brotli_max_size_t(windowGap-1, position-i) - - /* We know that i + 128 <= position + num_bytes, i.e. the - end of the current block and that we have at least - 128 tail in the ring-buffer. */ - storeAndFindMatchesH10(h, ringbuffer, i, ringbuffer_mask, 128, max_backward, nil, nil) - } - } -} - -/* MAX_NUM_MATCHES == 64 + MAX_TREE_SEARCH_DEPTH */ -const maxNumMatchesH10 = 128 - -func (*h10) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - panic("unimplemented") -} - -func (*h10) PrepareDistanceCache(distance_cache []int) { - panic("unimplemented") -} diff --git a/vendor/github.com/andybalholm/brotli/h5.go b/vendor/github.com/andybalholm/brotli/h5.go deleted file mode 100644 index f391b73..0000000 --- a/vendor/github.com/andybalholm/brotli/h5.go +++ /dev/null @@ -1,214 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* A (forgetful) hash table to the data seen by the compressor, to - help create backward references to previous data. - - This is a hash map of fixed size (bucket_size_) to a ring buffer of - fixed size (block_size_). The ring buffer contains the last block_size_ - index positions of the given hash key in the compressed data. */ -func (*h5) HashTypeLength() uint { - return 4 -} - -func (*h5) StoreLookahead() uint { - return 4 -} - -/* HashBytes is the function that chooses the bucket to place the address in. */ -func hashBytesH5(data []byte, shift int) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(h >> uint(shift)) -} - -type h5 struct { - hasherCommon - bucket_size_ uint - block_size_ uint - hash_shift_ int - block_mask_ uint32 - num []uint16 - buckets []uint32 -} - -func (h *h5) Initialize(params *encoderParams) { - h.hash_shift_ = 32 - h.params.bucket_bits - h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) - h.block_size_ = uint(1) << uint(h.params.block_bits) - h.block_mask_ = uint32(h.block_size_ - 1) - h.num = make([]uint16, h.bucket_size_) - h.buckets = make([]uint32, h.block_size_*h.bucket_size_) -} - -func (h *h5) Prepare(one_shot bool, input_size uint, data []byte) { - var num []uint16 = h.num - var partial_prepare_threshold uint = h.bucket_size_ >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = hashBytesH5(data[i:], h.hash_shift_) - num[key] = 0 - } - } else { - for i := 0; i < int(h.bucket_size_); i++ { - num[i] = 0 - } - } -} - -/* Look at 4 bytes at &data[ix & mask]. - Compute a hash from these, and store the value of ix at that position. */ -func (h *h5) Store(data []byte, mask uint, ix uint) { - var num []uint16 = h.num - var key uint32 = hashBytesH5(data[ix&mask:], h.hash_shift_) - var minor_ix uint = uint(num[key]) & uint(h.block_mask_) - var offset uint = minor_ix + uint(key<<uint(h.params.block_bits)) - h.buckets[offset] = uint32(ix) - num[key]++ -} - -func (h *h5) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *h5) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (h *h5) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) -} - -/* Find a longest backward match of &data[cur_ix] up to the length of - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCacheH5 must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCacheH5 once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. */ -func (h *h5) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var num []uint16 = h.num - var buckets []uint32 = h.buckets - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var i uint - var bucket []uint32 - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = uint(cur_ix - backward) - if prev_ix >= cur_ix { - continue - } - - if backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 3 || (len == 2 && i < 2) { - /* Comparing for >= 2 does not change the semantics, but just saves for - a few unnecessary binary logarithms in backward reference score, - since we are not interested in such short matches. */ - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(i) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var key uint32 = hashBytesH5(data[cur_ix_masked:], h.hash_shift_) - bucket = buckets[key<<uint(h.params.block_bits):] - var down uint - if uint(num[key]) > h.block_size_ { - down = uint(num[key]) - h.block_size_ - } else { - down = 0 - } - for i = uint(num[key]); i > down; { - var prev_ix uint - i-- - prev_ix = uint(bucket[uint32(i)&h.block_mask_]) - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) - num[key]++ - } - - if min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/vendor/github.com/andybalholm/brotli/h6.go b/vendor/github.com/andybalholm/brotli/h6.go deleted file mode 100644 index 80bb224..0000000 --- a/vendor/github.com/andybalholm/brotli/h6.go +++ /dev/null @@ -1,216 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* A (forgetful) hash table to the data seen by the compressor, to - help create backward references to previous data. - - This is a hash map of fixed size (bucket_size_) to a ring buffer of - fixed size (block_size_). The ring buffer contains the last block_size_ - index positions of the given hash key in the compressed data. */ -func (*h6) HashTypeLength() uint { - return 8 -} - -func (*h6) StoreLookahead() uint { - return 8 -} - -/* HashBytes is the function that chooses the bucket to place the address in. */ -func hashBytesH6(data []byte, mask uint64, shift int) uint32 { - var h uint64 = (binary.LittleEndian.Uint64(data) & mask) * kHashMul64Long - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(h >> uint(shift)) -} - -type h6 struct { - hasherCommon - bucket_size_ uint - block_size_ uint - hash_shift_ int - hash_mask_ uint64 - block_mask_ uint32 - num []uint16 - buckets []uint32 -} - -func (h *h6) Initialize(params *encoderParams) { - h.hash_shift_ = 64 - h.params.bucket_bits - h.hash_mask_ = (^(uint64(0))) >> uint(64-8*h.params.hash_len) - h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) - h.block_size_ = uint(1) << uint(h.params.block_bits) - h.block_mask_ = uint32(h.block_size_ - 1) - h.num = make([]uint16, h.bucket_size_) - h.buckets = make([]uint32, h.block_size_*h.bucket_size_) -} - -func (h *h6) Prepare(one_shot bool, input_size uint, data []byte) { - var num []uint16 = h.num - var partial_prepare_threshold uint = h.bucket_size_ >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = hashBytesH6(data[i:], h.hash_mask_, h.hash_shift_) - num[key] = 0 - } - } else { - for i := 0; i < int(h.bucket_size_); i++ { - num[i] = 0 - } - } -} - -/* Look at 4 bytes at &data[ix & mask]. - Compute a hash from these, and store the value of ix at that position. */ -func (h *h6) Store(data []byte, mask uint, ix uint) { - var num []uint16 = h.num - var key uint32 = hashBytesH6(data[ix&mask:], h.hash_mask_, h.hash_shift_) - var minor_ix uint = uint(num[key]) & uint(h.block_mask_) - var offset uint = minor_ix + uint(key<<uint(h.params.block_bits)) - h.buckets[offset] = uint32(ix) - num[key]++ -} - -func (h *h6) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *h6) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (h *h6) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) -} - -/* Find a longest backward match of &data[cur_ix] up to the length of - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCacheH6 must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCacheH6 once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. */ -func (h *h6) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var num []uint16 = h.num - var buckets []uint32 = h.buckets - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var i uint - var bucket []uint32 - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = uint(cur_ix - backward) - if prev_ix >= cur_ix { - continue - } - - if backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 3 || (len == 2 && i < 2) { - /* Comparing for >= 2 does not change the semantics, but just saves for - a few unnecessary binary logarithms in backward reference score, - since we are not interested in such short matches. */ - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(i) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var key uint32 = hashBytesH6(data[cur_ix_masked:], h.hash_mask_, h.hash_shift_) - bucket = buckets[key<<uint(h.params.block_bits):] - var down uint - if uint(num[key]) > h.block_size_ { - down = uint(num[key]) - h.block_size_ - } else { - down = 0 - } - for i = uint(num[key]); i > down; { - var prev_ix uint - i-- - prev_ix = uint(bucket[uint32(i)&h.block_mask_]) - var backward uint = cur_ix - prev_ix - if backward > max_backward { - break - } - - prev_ix &= ring_buffer_mask - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) - num[key]++ - } - - if min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/vendor/github.com/andybalholm/brotli/hash.go b/vendor/github.com/andybalholm/brotli/hash.go deleted file mode 100644 index 00f812e..0000000 --- a/vendor/github.com/andybalholm/brotli/hash.go +++ /dev/null @@ -1,342 +0,0 @@ -package brotli - -import ( - "encoding/binary" - "fmt" -) - -type hasherCommon struct { - params hasherParams - is_prepared_ bool - dict_num_lookups uint - dict_num_matches uint -} - -func (h *hasherCommon) Common() *hasherCommon { - return h -} - -type hasherHandle interface { - Common() *hasherCommon - Initialize(params *encoderParams) - Prepare(one_shot bool, input_size uint, data []byte) - StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) - HashTypeLength() uint - StoreLookahead() uint - PrepareDistanceCache(distance_cache []int) - FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) - StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) - Store(data []byte, mask uint, ix uint) -} - -const kCutoffTransformsCount uint32 = 10 - -/* 0, 12, 27, 23, 42, 63, 56, 48, 59, 64 */ -/* 0+0, 4+8, 8+19, 12+11, 16+26, 20+43, 24+32, 28+20, 32+27, 36+28 */ -const kCutoffTransforms uint64 = 0x071B520ADA2D3200 - -type hasherSearchResult struct { - len uint - distance uint - score uint - len_code_delta int -} - -/* kHashMul32 multiplier has these properties: - * The multiplier must be odd. Otherwise we may lose the highest bit. - * No long streaks of ones or zeros. - * There is no effort to ensure that it is a prime, the oddity is enough - for this use. - * The number has been tuned heuristically against compression benchmarks. */ -const kHashMul32 uint32 = 0x1E35A7BD - -const kHashMul64 uint64 = 0x1E35A7BD1E35A7BD - -const kHashMul64Long uint64 = 0x1FE35A7BD3579BD3 - -func hash14(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> (32 - 14) -} - -func prepareDistanceCache(distance_cache []int, num_distances int) { - if num_distances > 4 { - var last_distance int = distance_cache[0] - distance_cache[4] = last_distance - 1 - distance_cache[5] = last_distance + 1 - distance_cache[6] = last_distance - 2 - distance_cache[7] = last_distance + 2 - distance_cache[8] = last_distance - 3 - distance_cache[9] = last_distance + 3 - if num_distances > 10 { - var next_last_distance int = distance_cache[1] - distance_cache[10] = next_last_distance - 1 - distance_cache[11] = next_last_distance + 1 - distance_cache[12] = next_last_distance - 2 - distance_cache[13] = next_last_distance + 2 - distance_cache[14] = next_last_distance - 3 - distance_cache[15] = next_last_distance + 3 - } - } -} - -const literalByteScore = 135 - -const distanceBitPenalty = 30 - -/* Score must be positive after applying maximal penalty. */ -const scoreBase = (distanceBitPenalty * 8 * 8) - -/* Usually, we always choose the longest backward reference. This function - allows for the exception of that rule. - - If we choose a backward reference that is further away, it will - usually be coded with more bits. We approximate this by assuming - log2(distance). If the distance can be expressed in terms of the - last four distances, we use some heuristic constants to estimate - the bits cost. For the first up to four literals we use the bit - cost of the literals from the literal cost model, after that we - use the average bit cost of the cost model. - - This function is used to sometimes discard a longer backward reference - when it is not much longer and the bit cost for encoding it is more - than the saved literals. - - backward_reference_offset MUST be positive. */ -func backwardReferenceScore(copy_length uint, backward_reference_offset uint) uint { - return scoreBase + literalByteScore*uint(copy_length) - distanceBitPenalty*uint(log2FloorNonZero(backward_reference_offset)) -} - -func backwardReferenceScoreUsingLastDistance(copy_length uint) uint { - return literalByteScore*uint(copy_length) + scoreBase + 15 -} - -func backwardReferencePenaltyUsingLastDistance(distance_short_code uint) uint { - return uint(39) + ((0x1CA10 >> (distance_short_code & 0xE)) & 0xE) -} - -func testStaticDictionaryItem(dictionary *encoderDictionary, item uint, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult) bool { - var len uint - var word_idx uint - var offset uint - var matchlen uint - var backward uint - var score uint - len = item & 0x1F - word_idx = item >> 5 - offset = uint(dictionary.words.offsets_by_length[len]) + len*word_idx - if len > max_length { - return false - } - - matchlen = findMatchLengthWithLimit(data, dictionary.words.data[offset:], uint(len)) - if matchlen+uint(dictionary.cutoffTransformsCount) <= len || matchlen == 0 { - return false - } - { - var cut uint = len - matchlen - var transform_id uint = (cut << 2) + uint((dictionary.cutoffTransforms>>(cut*6))&0x3F) - backward = max_backward + 1 + word_idx + (transform_id << dictionary.words.size_bits_by_length[len]) - } - - if backward > max_distance { - return false - } - - score = backwardReferenceScore(matchlen, backward) - if score < out.score { - return false - } - - out.len = matchlen - out.len_code_delta = int(len) - int(matchlen) - out.distance = backward - out.score = score - return true -} - -func searchInStaticDictionary(dictionary *encoderDictionary, handle hasherHandle, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult, shallow bool) { - var key uint - var i uint - var self *hasherCommon = handle.Common() - if self.dict_num_matches < self.dict_num_lookups>>7 { - return - } - - key = uint(hash14(data) << 1) - for i = 0; ; (func() { i++; key++ })() { - var tmp uint - if shallow { - tmp = 1 - } else { - tmp = 2 - } - if i >= tmp { - break - } - var item uint = uint(dictionary.hash_table[key]) - self.dict_num_lookups++ - if item != 0 { - var item_matches bool = testStaticDictionaryItem(dictionary, item, data, max_length, max_backward, max_distance, out) - if item_matches { - self.dict_num_matches++ - } - } - } -} - -type backwardMatch struct { - distance uint32 - length_and_code uint32 -} - -func initBackwardMatch(self *backwardMatch, dist uint, len uint) { - self.distance = uint32(dist) - self.length_and_code = uint32(len << 5) -} - -func initDictionaryBackwardMatch(self *backwardMatch, dist uint, len uint, len_code uint) { - self.distance = uint32(dist) - var tmp uint - if len == len_code { - tmp = 0 - } else { - tmp = len_code - } - self.length_and_code = uint32(len<<5 | tmp) -} - -func backwardMatchLength(self *backwardMatch) uint { - return uint(self.length_and_code >> 5) -} - -func backwardMatchLengthCode(self *backwardMatch) uint { - var code uint = uint(self.length_and_code) & 31 - if code != 0 { - return code - } else { - return backwardMatchLength(self) - } -} - -func hasherReset(handle hasherHandle) { - if handle == nil { - return - } - handle.Common().is_prepared_ = false -} - -func newHasher(typ int) hasherHandle { - switch typ { - case 2: - return &hashLongestMatchQuickly{ - bucketBits: 16, - bucketSweep: 1, - hashLen: 5, - useDictionary: true, - } - case 3: - return &hashLongestMatchQuickly{ - bucketBits: 16, - bucketSweep: 2, - hashLen: 5, - useDictionary: false, - } - case 4: - return &hashLongestMatchQuickly{ - bucketBits: 17, - bucketSweep: 4, - hashLen: 5, - useDictionary: true, - } - case 5: - return new(h5) - case 6: - return new(h6) - case 10: - return new(h10) - case 35: - return &hashComposite{ - ha: newHasher(3), - hb: &hashRolling{jump: 4}, - } - case 40: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 1, - bankBits: 16, - numLastDistancesToCheck: 4, - } - case 41: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 1, - bankBits: 16, - numLastDistancesToCheck: 10, - } - case 42: - return &hashForgetfulChain{ - bucketBits: 15, - numBanks: 512, - bankBits: 9, - numLastDistancesToCheck: 16, - } - case 54: - return &hashLongestMatchQuickly{ - bucketBits: 20, - bucketSweep: 4, - hashLen: 7, - useDictionary: false, - } - case 55: - return &hashComposite{ - ha: newHasher(54), - hb: &hashRolling{jump: 4}, - } - case 65: - return &hashComposite{ - ha: newHasher(6), - hb: &hashRolling{jump: 1}, - } - } - - panic(fmt.Sprintf("unknown hasher type: %d", typ)) -} - -func hasherSetup(handle *hasherHandle, params *encoderParams, data []byte, position uint, input_size uint, is_last bool) { - var self hasherHandle = nil - var common *hasherCommon = nil - var one_shot bool = (position == 0 && is_last) - if *handle == nil { - chooseHasher(params, &params.hasher) - self = newHasher(params.hasher.type_) - - *handle = self - common = self.Common() - common.params = params.hasher - self.Initialize(params) - } - - self = *handle - common = self.Common() - if !common.is_prepared_ { - self.Prepare(one_shot, input_size, data) - - if position == 0 { - common.dict_num_lookups = 0 - common.dict_num_matches = 0 - } - - common.is_prepared_ = true - } -} - -func initOrStitchToPreviousBlock(handle *hasherHandle, data []byte, mask uint, params *encoderParams, position uint, input_size uint, is_last bool) { - var self hasherHandle - hasherSetup(handle, params, data, position, input_size, is_last) - self = *handle - self.StitchToPreviousBlock(input_size, position, data, mask) -} diff --git a/vendor/github.com/andybalholm/brotli/hash_composite.go b/vendor/github.com/andybalholm/brotli/hash_composite.go deleted file mode 100644 index a65fe2e..0000000 --- a/vendor/github.com/andybalholm/brotli/hash_composite.go +++ /dev/null @@ -1,93 +0,0 @@ -package brotli - -/* Copyright 2018 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (h *hashComposite) HashTypeLength() uint { - var a uint = h.ha.HashTypeLength() - var b uint = h.hb.HashTypeLength() - if a > b { - return a - } else { - return b - } -} - -func (h *hashComposite) StoreLookahead() uint { - var a uint = h.ha.StoreLookahead() - var b uint = h.hb.StoreLookahead() - if a > b { - return a - } else { - return b - } -} - -/* Composite hasher: This hasher allows to combine two other hashers, HASHER_A - and HASHER_B. */ -type hashComposite struct { - hasherCommon - ha hasherHandle - hb hasherHandle - params *encoderParams -} - -func (h *hashComposite) Initialize(params *encoderParams) { - h.params = params -} - -/* TODO: Initialize of the hashers is defered to Prepare (and params - remembered here) because we don't get the one_shot and input_size params - here that are needed to know the memory size of them. Instead provide - those params to all hashers InitializehashComposite */ -func (h *hashComposite) Prepare(one_shot bool, input_size uint, data []byte) { - if h.ha == nil { - var common_a *hasherCommon - var common_b *hasherCommon - - common_a = h.ha.Common() - common_a.params = h.params.hasher - common_a.is_prepared_ = false - common_a.dict_num_lookups = 0 - common_a.dict_num_matches = 0 - h.ha.Initialize(h.params) - - common_b = h.hb.Common() - common_b.params = h.params.hasher - common_b.is_prepared_ = false - common_b.dict_num_lookups = 0 - common_b.dict_num_matches = 0 - h.hb.Initialize(h.params) - } - - h.ha.Prepare(one_shot, input_size, data) - h.hb.Prepare(one_shot, input_size, data) -} - -func (h *hashComposite) Store(data []byte, mask uint, ix uint) { - h.ha.Store(data, mask, ix) - h.hb.Store(data, mask, ix) -} - -func (h *hashComposite) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - h.ha.StoreRange(data, mask, ix_start, ix_end) - h.hb.StoreRange(data, mask, ix_start, ix_end) -} - -func (h *hashComposite) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - h.ha.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) - h.hb.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) -} - -func (h *hashComposite) PrepareDistanceCache(distance_cache []int) { - h.ha.PrepareDistanceCache(distance_cache) - h.hb.PrepareDistanceCache(distance_cache) -} - -func (h *hashComposite) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - h.ha.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) - h.hb.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) -} diff --git a/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go b/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go deleted file mode 100644 index 306e46d..0000000 --- a/vendor/github.com/andybalholm/brotli/hash_forgetful_chain.go +++ /dev/null @@ -1,252 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func (*hashForgetfulChain) HashTypeLength() uint { - return 4 -} - -func (*hashForgetfulChain) StoreLookahead() uint { - return 4 -} - -/* HashBytes is the function that chooses the bucket to place the address in.*/ -func (h *hashForgetfulChain) HashBytes(data []byte) uint { - var hash uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint(hash >> (32 - h.bucketBits)) -} - -type slot struct { - delta uint16 - next uint16 -} - -/* A (forgetful) hash table to the data seen by the compressor, to - help create backward references to previous data. - - Hashes are stored in chains which are bucketed to groups. Group of chains - share a storage "bank". When more than "bank size" chain nodes are added, - oldest nodes are replaced; this way several chains may share a tail. */ -type hashForgetfulChain struct { - hasherCommon - - bucketBits uint - numBanks uint - bankBits uint - numLastDistancesToCheck int - - addr []uint32 - head []uint16 - tiny_hash [65536]byte - banks [][]slot - free_slot_idx []uint16 - max_hops uint -} - -func (h *hashForgetfulChain) Initialize(params *encoderParams) { - var q uint - if params.quality > 6 { - q = 7 - } else { - q = 8 - } - h.max_hops = q << uint(params.quality-4) - - bankSize := 1 << h.bankBits - bucketSize := 1 << h.bucketBits - - h.addr = make([]uint32, bucketSize) - h.head = make([]uint16, bucketSize) - h.banks = make([][]slot, h.numBanks) - for i := range h.banks { - h.banks[i] = make([]slot, bankSize) - } - h.free_slot_idx = make([]uint16, h.numBanks) -} - -func (h *hashForgetfulChain) Prepare(one_shot bool, input_size uint, data []byte) { - var partial_prepare_threshold uint = (1 << h.bucketBits) >> 6 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var bucket uint = h.HashBytes(data[i:]) - - /* See InitEmpty comment. */ - h.addr[bucket] = 0xCCCCCCCC - - h.head[bucket] = 0xCCCC - } - } else { - /* Fill |addr| array with 0xCCCCCCCC value. Because of wrapping, position - processed by hasher never reaches 3GB + 64M; this makes all new chains - to be terminated after the first node. */ - for i := range h.addr { - h.addr[i] = 0xCCCCCCCC - } - - for i := range h.head { - h.head[i] = 0 - } - } - - h.tiny_hash = [65536]byte{} - for i := range h.free_slot_idx { - h.free_slot_idx[i] = 0 - } -} - -/* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and prepend - node to corresponding chain; also update tiny_hash for current position. */ -func (h *hashForgetfulChain) Store(data []byte, mask uint, ix uint) { - var key uint = h.HashBytes(data[ix&mask:]) - var bank uint = key & (h.numBanks - 1) - idx := uint(h.free_slot_idx[bank]) & ((1 << h.bankBits) - 1) - h.free_slot_idx[bank]++ - var delta uint = ix - uint(h.addr[key]) - h.tiny_hash[uint16(ix)] = byte(key) - if delta > 0xFFFF { - delta = 0xFFFF - } - h.banks[bank][idx].delta = uint16(delta) - h.banks[bank][idx].next = h.head[key] - h.addr[key] = uint32(ix) - h.head[key] = uint16(idx) -} - -func (h *hashForgetfulChain) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *hashForgetfulChain) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ring_buffer_mask, position-3) - h.Store(ringbuffer, ring_buffer_mask, position-2) - h.Store(ringbuffer, ring_buffer_mask, position-1) - } -} - -func (h *hashForgetfulChain) PrepareDistanceCache(distance_cache []int) { - prepareDistanceCache(distance_cache, h.numLastDistancesToCheck) -} - -/* Find a longest backward match of &data[cur_ix] up to the length of - max_length and stores the position cur_ix in the hash table. - - REQUIRES: PrepareDistanceCachehashForgetfulChain must be invoked for current distance cache - values; if this method is invoked repeatedly with the same distance - cache values, it is enough to invoke PrepareDistanceCachehashForgetfulChain once. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. */ -func (h *hashForgetfulChain) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = out.len - var key uint = h.HashBytes(data[cur_ix_masked:]) - var tiny_hash byte = byte(key) - /* Don't accept a short copy from far away. */ - out.len = 0 - - out.len_code_delta = 0 - - /* Try last distance first. */ - for i := 0; i < h.numLastDistancesToCheck; i++ { - var backward uint = uint(distance_cache[i]) - var prev_ix uint = (cur_ix - backward) - - /* For distance code 0 we want to consider 2-byte matches. */ - if i > 0 && h.tiny_hash[uint16(prev_ix)] != tiny_hash { - continue - } - if prev_ix >= cur_ix || backward > max_backward { - continue - } - - prev_ix &= ring_buffer_mask - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 2 { - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - if i != 0 { - score -= backwardReferencePenaltyUsingLastDistance(uint(i)) - } - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - } - { - var bank uint = key & (h.numBanks - 1) - var backward uint = 0 - var hops uint = h.max_hops - var delta uint = cur_ix - uint(h.addr[key]) - var slot uint = uint(h.head[key]) - for { - tmp6 := hops - hops-- - if tmp6 == 0 { - break - } - var prev_ix uint - var last uint = slot - backward += delta - if backward > max_backward { - break - } - prev_ix = (cur_ix - backward) & ring_buffer_mask - slot = uint(h.banks[bank][last].next) - delta = uint(h.banks[bank][last].delta) - if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { - continue - } - { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - /* Comparing for >= 3 does not change the semantics, but just saves - for a few unnecessary binary logarithms in backward reference - score, since we are not interested in such short matches. */ - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = best_score - } - } - } - } - - h.Store(data, ring_buffer_mask, cur_ix) - } - - if out.score == min_score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) - } -} diff --git a/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go b/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go deleted file mode 100644 index 9375dc1..0000000 --- a/vendor/github.com/andybalholm/brotli/hash_longest_match_quickly.go +++ /dev/null @@ -1,214 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* For BUCKET_SWEEP == 1, enabling the dictionary lookup makes compression - a little faster (0.5% - 1%) and it compresses 0.15% better on small text - and HTML inputs. */ - -func (*hashLongestMatchQuickly) HashTypeLength() uint { - return 8 -} - -func (*hashLongestMatchQuickly) StoreLookahead() uint { - return 8 -} - -/* HashBytes is the function that chooses the bucket to place - the address in. The HashLongestMatch and hashLongestMatchQuickly - classes have separate, different implementations of hashing. */ -func (h *hashLongestMatchQuickly) HashBytes(data []byte) uint32 { - var hash uint64 = ((binary.LittleEndian.Uint64(data) << (64 - 8*h.hashLen)) * kHashMul64) - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return uint32(hash >> (64 - h.bucketBits)) -} - -/* A (forgetful) hash table to the data seen by the compressor, to - help create backward references to previous data. - - This is a hash map of fixed size (1 << 16). Starting from the - given index, 1 buckets are used to store values of a key. */ -type hashLongestMatchQuickly struct { - hasherCommon - - bucketBits uint - bucketSweep int - hashLen uint - useDictionary bool - - buckets []uint32 -} - -func (h *hashLongestMatchQuickly) Initialize(params *encoderParams) { - h.buckets = make([]uint32, 1<<h.bucketBits+h.bucketSweep) -} - -func (h *hashLongestMatchQuickly) Prepare(one_shot bool, input_size uint, data []byte) { - var partial_prepare_threshold uint = (4 << h.bucketBits) >> 7 - /* Partial preparation is 100 times slower (per socket). */ - if one_shot && input_size <= partial_prepare_threshold { - var i uint - for i = 0; i < input_size; i++ { - var key uint32 = h.HashBytes(data[i:]) - for j := 0; j < h.bucketSweep; j++ { - h.buckets[key+uint32(j)] = 0 - } - } - } else { - /* It is not strictly necessary to fill this buffer here, but - not filling will make the results of the compression stochastic - (but correct). This is because random data would cause the - system to find accidentally good backward references here and there. */ - for i := range h.buckets { - h.buckets[i] = 0 - } - } -} - -/* Look at 5 bytes at &data[ix & mask]. - Compute a hash from these, and store the value somewhere within - [ix .. ix+3]. */ -func (h *hashLongestMatchQuickly) Store(data []byte, mask uint, ix uint) { - var key uint32 = h.HashBytes(data[ix&mask:]) - var off uint32 = uint32(ix>>3) % uint32(h.bucketSweep) - /* Wiggle the value with the bucket sweep range. */ - h.buckets[key+off] = uint32(ix) -} - -func (h *hashLongestMatchQuickly) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { - var i uint - for i = ix_start; i < ix_end; i++ { - h.Store(data, mask, i) - } -} - -func (h *hashLongestMatchQuickly) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { - if num_bytes >= h.HashTypeLength()-1 && position >= 3 { - /* Prepare the hashes for three last bytes of the last write. - These could not be calculated before, since they require knowledge - of both the previous and the current block. */ - h.Store(ringbuffer, ringbuffer_mask, position-3) - h.Store(ringbuffer, ringbuffer_mask, position-2) - h.Store(ringbuffer, ringbuffer_mask, position-1) - } -} - -func (*hashLongestMatchQuickly) PrepareDistanceCache(distance_cache []int) { -} - -/* Find a longest backward match of &data[cur_ix & ring_buffer_mask] - up to the length of max_length and stores the position cur_ix in the - hash table. - - Does not look for matches longer than max_length. - Does not look for matches further away than max_backward. - Writes the best match into |out|. - |out|->score is updated only if a better match is found. */ -func (h *hashLongestMatchQuickly) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var best_len_in uint = out.len - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var key uint32 = h.HashBytes(data[cur_ix_masked:]) - var compare_char int = int(data[cur_ix_masked+best_len_in]) - var min_score uint = out.score - var best_score uint = out.score - var best_len uint = best_len_in - var cached_backward uint = uint(distance_cache[0]) - var prev_ix uint = cur_ix - cached_backward - var bucket []uint32 - out.len_code_delta = 0 - if prev_ix < cur_ix { - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char == int(data[prev_ix+best_len]) { - var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = uint(len) - out.distance = cached_backward - out.score = best_score - compare_char = int(data[cur_ix_masked+best_len]) - if h.bucketSweep == 1 { - h.buckets[key] = uint32(cur_ix) - return - } - } - } - } - } - - if h.bucketSweep == 1 { - var backward uint - var len uint - - /* Only one to look for, don't bother to prepare for a loop. */ - prev_ix = uint(h.buckets[key]) - - h.buckets[key] = uint32(cur_ix) - backward = cur_ix - prev_ix - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char != int(data[prev_ix+best_len_in]) { - return - } - - if backward == 0 || backward > max_backward { - return - } - - len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - out.len = uint(len) - out.distance = backward - out.score = score - return - } - } - } else { - bucket = h.buckets[key:] - var i int - prev_ix = uint(bucket[0]) - bucket = bucket[1:] - for i = 0; i < h.bucketSweep; (func() { i++; tmp3 := bucket; bucket = bucket[1:]; prev_ix = uint(tmp3[0]) })() { - var backward uint = cur_ix - prev_ix - var len uint - prev_ix &= uint(uint32(ring_buffer_mask)) - if compare_char != int(data[prev_ix+best_len]) { - continue - } - - if backward == 0 || backward > max_backward { - continue - } - - len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) - if len >= 4 { - var score uint = backwardReferenceScore(uint(len), backward) - if best_score < score { - best_score = score - best_len = uint(len) - out.len = best_len - out.distance = backward - out.score = score - compare_char = int(data[cur_ix_masked+best_len]) - } - } - } - } - - if h.useDictionary && min_score == out.score { - searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, true) - } - - h.buckets[key+uint32((cur_ix>>3)%uint(h.bucketSweep))] = uint32(cur_ix) -} diff --git a/vendor/github.com/andybalholm/brotli/hash_rolling.go b/vendor/github.com/andybalholm/brotli/hash_rolling.go deleted file mode 100644 index 6630fc0..0000000 --- a/vendor/github.com/andybalholm/brotli/hash_rolling.go +++ /dev/null @@ -1,168 +0,0 @@ -package brotli - -/* Copyright 2018 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* NOTE: this hasher does not search in the dictionary. It is used as - backup-hasher, the main hasher already searches in it. */ - -const kRollingHashMul32 uint32 = 69069 - -const kInvalidPosHashRolling uint32 = 0xffffffff - -/* This hasher uses a longer forward length, but returning a higher value here - will hurt compression by the main hasher when combined with a composite - hasher. The hasher tests for forward itself instead. */ -func (*hashRolling) HashTypeLength() uint { - return 4 -} - -func (*hashRolling) StoreLookahead() uint { - return 4 -} - -/* Computes a code from a single byte. A lookup table of 256 values could be - used, but simply adding 1 works about as good. */ -func (*hashRolling) HashByte(b byte) uint32 { - return uint32(b) + 1 -} - -func (h *hashRolling) HashRollingFunctionInitial(state uint32, add byte, factor uint32) uint32 { - return uint32(factor*state + h.HashByte(add)) -} - -func (h *hashRolling) HashRollingFunction(state uint32, add byte, rem byte, factor uint32, factor_remove uint32) uint32 { - return uint32(factor*state + h.HashByte(add) - factor_remove*h.HashByte(rem)) -} - -/* Rolling hash for long distance long string matches. Stores one position - per bucket, bucket key is computed over a long region. */ -type hashRolling struct { - hasherCommon - - jump int - - state uint32 - table []uint32 - next_ix uint - factor uint32 - factor_remove uint32 -} - -func (h *hashRolling) Initialize(params *encoderParams) { - h.state = 0 - h.next_ix = 0 - - h.factor = kRollingHashMul32 - - /* Compute the factor of the oldest byte to remove: factor**steps modulo - 0xffffffff (the multiplications rely on 32-bit overflow) */ - h.factor_remove = 1 - - for i := 0; i < 32; i += h.jump { - h.factor_remove *= h.factor - } - - h.table = make([]uint32, 16777216) - for i := 0; i < 16777216; i++ { - h.table[i] = kInvalidPosHashRolling - } -} - -func (h *hashRolling) Prepare(one_shot bool, input_size uint, data []byte) { - /* Too small size, cannot use this hasher. */ - if input_size < 32 { - return - } - h.state = 0 - for i := 0; i < 32; i += h.jump { - h.state = h.HashRollingFunctionInitial(h.state, data[i], h.factor) - } -} - -func (*hashRolling) Store(data []byte, mask uint, ix uint) { -} - -func (*hashRolling) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { -} - -func (h *hashRolling) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { - var position_masked uint - /* In this case we must re-initialize the hasher from scratch from the - current position. */ - - var available uint = num_bytes - if position&uint(h.jump-1) != 0 { - var diff uint = uint(h.jump) - (position & uint(h.jump-1)) - if diff > available { - available = 0 - } else { - available = available - diff - } - position += diff - } - - position_masked = position & ring_buffer_mask - - /* wrapping around ringbuffer not handled. */ - if available > ring_buffer_mask-position_masked { - available = ring_buffer_mask - position_masked - } - - h.Prepare(false, available, ringbuffer[position&ring_buffer_mask:]) - h.next_ix = position -} - -func (*hashRolling) PrepareDistanceCache(distance_cache []int) { -} - -func (h *hashRolling) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { - var cur_ix_masked uint = cur_ix & ring_buffer_mask - var pos uint = h.next_ix - - if cur_ix&uint(h.jump-1) != 0 { - return - } - - /* Not enough lookahead */ - if max_length < 32 { - return - } - - for pos = h.next_ix; pos <= cur_ix; pos += uint(h.jump) { - var code uint32 = h.state & ((16777216 * 64) - 1) - var rem byte = data[pos&ring_buffer_mask] - var add byte = data[(pos+32)&ring_buffer_mask] - var found_ix uint = uint(kInvalidPosHashRolling) - - h.state = h.HashRollingFunction(h.state, add, rem, h.factor, h.factor_remove) - - if code < 16777216 { - found_ix = uint(h.table[code]) - h.table[code] = uint32(pos) - if pos == cur_ix && uint32(found_ix) != kInvalidPosHashRolling { - /* The cast to 32-bit makes backward distances up to 4GB work even - if cur_ix is above 4GB, despite using 32-bit values in the table. */ - var backward uint = uint(uint32(cur_ix - found_ix)) - if backward <= max_backward { - var found_ix_masked uint = found_ix & ring_buffer_mask - var len uint = findMatchLengthWithLimit(data[found_ix_masked:], data[cur_ix_masked:], max_length) - if len >= 4 && len > out.len { - var score uint = backwardReferenceScore(uint(len), backward) - if score > out.score { - out.len = uint(len) - out.distance = backward - out.score = score - out.len_code_delta = 0 - } - } - } - } - } - } - - h.next_ix = cur_ix + uint(h.jump) -} diff --git a/vendor/github.com/andybalholm/brotli/histogram.go b/vendor/github.com/andybalholm/brotli/histogram.go deleted file mode 100644 index 0346622..0000000 --- a/vendor/github.com/andybalholm/brotli/histogram.go +++ /dev/null @@ -1,226 +0,0 @@ -package brotli - -import "math" - -/* The distance symbols effectively used by "Large Window Brotli" (32-bit). */ -const numHistogramDistanceSymbols = 544 - -type histogramLiteral struct { - data_ [numLiteralSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearLiteral(self *histogramLiteral) { - self.data_ = [numLiteralSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsLiteral(array []histogramLiteral, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearLiteral(&array[i:][0]) - } -} - -func histogramAddLiteral(self *histogramLiteral, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorLiteral(self *histogramLiteral, p []byte, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramLiteral(self *histogramLiteral, v *histogramLiteral) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numLiteralSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeLiteral() uint { - return numLiteralSymbols -} - -type histogramCommand struct { - data_ [numCommandSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearCommand(self *histogramCommand) { - self.data_ = [numCommandSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsCommand(array []histogramCommand, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearCommand(&array[i:][0]) - } -} - -func histogramAddCommand(self *histogramCommand, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorCommand(self *histogramCommand, p []uint16, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramCommand(self *histogramCommand, v *histogramCommand) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numCommandSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeCommand() uint { - return numCommandSymbols -} - -type histogramDistance struct { - data_ [numDistanceSymbols]uint32 - total_count_ uint - bit_cost_ float64 -} - -func histogramClearDistance(self *histogramDistance) { - self.data_ = [numDistanceSymbols]uint32{} - self.total_count_ = 0 - self.bit_cost_ = math.MaxFloat64 -} - -func clearHistogramsDistance(array []histogramDistance, length uint) { - var i uint - for i = 0; i < length; i++ { - histogramClearDistance(&array[i:][0]) - } -} - -func histogramAddDistance(self *histogramDistance, val uint) { - self.data_[val]++ - self.total_count_++ -} - -func histogramAddVectorDistance(self *histogramDistance, p []uint16, n uint) { - self.total_count_ += n - n += 1 - for { - n-- - if n == 0 { - break - } - self.data_[p[0]]++ - p = p[1:] - } -} - -func histogramAddHistogramDistance(self *histogramDistance, v *histogramDistance) { - var i uint - self.total_count_ += v.total_count_ - for i = 0; i < numDistanceSymbols; i++ { - self.data_[i] += v.data_[i] - } -} - -func histogramDataSizeDistance() uint { - return numDistanceSymbols -} - -type blockSplitIterator struct { - split_ *blockSplit - idx_ uint - type_ uint - length_ uint -} - -func initBlockSplitIterator(self *blockSplitIterator, split *blockSplit) { - self.split_ = split - self.idx_ = 0 - self.type_ = 0 - if len(split.lengths) > 0 { - self.length_ = uint(split.lengths[0]) - } else { - self.length_ = 0 - } -} - -func blockSplitIteratorNext(self *blockSplitIterator) { - if self.length_ == 0 { - self.idx_++ - self.type_ = uint(self.split_.types[self.idx_]) - self.length_ = uint(self.split_.lengths[self.idx_]) - } - - self.length_-- -} - -func buildHistogramsWithContext(cmds []command, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit, ringbuffer []byte, start_pos uint, mask uint, prev_byte byte, prev_byte2 byte, context_modes []int, literal_histograms []histogramLiteral, insert_and_copy_histograms []histogramCommand, copy_dist_histograms []histogramDistance) { - var pos uint = start_pos - var literal_it blockSplitIterator - var insert_and_copy_it blockSplitIterator - var dist_it blockSplitIterator - - initBlockSplitIterator(&literal_it, literal_split) - initBlockSplitIterator(&insert_and_copy_it, insert_and_copy_split) - initBlockSplitIterator(&dist_it, dist_split) - for i := range cmds { - var cmd *command = &cmds[i] - var j uint - blockSplitIteratorNext(&insert_and_copy_it) - histogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_], uint(cmd.cmd_prefix_)) - - /* TODO: unwrap iterator blocks. */ - for j = uint(cmd.insert_len_); j != 0; j-- { - var context uint - blockSplitIteratorNext(&literal_it) - context = literal_it.type_ - if context_modes != nil { - var lut contextLUT = getContextLUT(context_modes[context]) - context = (context << literalContextBits) + uint(getContext(prev_byte, prev_byte2, lut)) - } - - histogramAddLiteral(&literal_histograms[context], uint(ringbuffer[pos&mask])) - prev_byte2 = prev_byte - prev_byte = ringbuffer[pos&mask] - pos++ - } - - pos += uint(commandCopyLen(cmd)) - if commandCopyLen(cmd) != 0 { - prev_byte2 = ringbuffer[(pos-2)&mask] - prev_byte = ringbuffer[(pos-1)&mask] - if cmd.cmd_prefix_ >= 128 { - var context uint - blockSplitIteratorNext(&dist_it) - context = uint(uint32(dist_it.type_<<distanceContextBits) + commandDistanceContext(cmd)) - histogramAddDistance(&copy_dist_histograms[context], uint(cmd.dist_prefix_)&0x3FF) - } - } - } -} diff --git a/vendor/github.com/andybalholm/brotli/http.go b/vendor/github.com/andybalholm/brotli/http.go deleted file mode 100644 index 3d3a8a0..0000000 --- a/vendor/github.com/andybalholm/brotli/http.go +++ /dev/null @@ -1,184 +0,0 @@ -package brotli - -import ( - "compress/gzip" - "io" - "net/http" - "strings" -) - -// HTTPCompressor chooses a compression method (brotli, gzip, or none) based on -// the Accept-Encoding header, sets the Content-Encoding header, and returns a -// WriteCloser that implements that compression. The Close method must be called -// before the current HTTP handler returns. -func HTTPCompressor(w http.ResponseWriter, r *http.Request) io.WriteCloser { - if w.Header().Get("Vary") == "" { - w.Header().Set("Vary", "Accept-Encoding") - } - - encoding := negotiateContentEncoding(r, []string{"br", "gzip"}) - switch encoding { - case "br": - w.Header().Set("Content-Encoding", "br") - return NewWriterV2(w, DefaultCompression) - case "gzip": - w.Header().Set("Content-Encoding", "gzip") - return gzip.NewWriter(w) - } - return nopCloser{w} -} - -// negotiateContentEncoding returns the best offered content encoding for the -// request's Accept-Encoding header. If two offers match with equal weight and -// then the offer earlier in the list is preferred. If no offers are -// acceptable, then "" is returned. -func negotiateContentEncoding(r *http.Request, offers []string) string { - bestOffer := "identity" - bestQ := -1.0 - specs := parseAccept(r.Header, "Accept-Encoding") - for _, offer := range offers { - for _, spec := range specs { - if spec.Q > bestQ && - (spec.Value == "*" || spec.Value == offer) { - bestQ = spec.Q - bestOffer = offer - } - } - } - if bestQ == 0 { - bestOffer = "" - } - return bestOffer -} - -// acceptSpec describes an Accept* header. -type acceptSpec struct { - Value string - Q float64 -} - -// parseAccept parses Accept* headers. -func parseAccept(header http.Header, key string) (specs []acceptSpec) { -loop: - for _, s := range header[key] { - for { - var spec acceptSpec - spec.Value, s = expectTokenSlash(s) - if spec.Value == "" { - continue loop - } - spec.Q = 1.0 - s = skipSpace(s) - if strings.HasPrefix(s, ";") { - s = skipSpace(s[1:]) - if !strings.HasPrefix(s, "q=") { - continue loop - } - spec.Q, s = expectQuality(s[2:]) - if spec.Q < 0.0 { - continue loop - } - } - specs = append(specs, spec) - s = skipSpace(s) - if !strings.HasPrefix(s, ",") { - continue loop - } - s = skipSpace(s[1:]) - } - } - return -} - -func skipSpace(s string) (rest string) { - i := 0 - for ; i < len(s); i++ { - if octetTypes[s[i]]&isSpace == 0 { - break - } - } - return s[i:] -} - -func expectTokenSlash(s string) (token, rest string) { - i := 0 - for ; i < len(s); i++ { - b := s[i] - if (octetTypes[b]&isToken == 0) && b != '/' { - break - } - } - return s[:i], s[i:] -} - -func expectQuality(s string) (q float64, rest string) { - switch { - case len(s) == 0: - return -1, "" - case s[0] == '0': - q = 0 - case s[0] == '1': - q = 1 - default: - return -1, "" - } - s = s[1:] - if !strings.HasPrefix(s, ".") { - return q, s - } - s = s[1:] - i := 0 - n := 0 - d := 1 - for ; i < len(s); i++ { - b := s[i] - if b < '0' || b > '9' { - break - } - n = n*10 + int(b) - '0' - d *= 10 - } - return q + float64(n)/float64(d), s[i:] -} - -// Octet types from RFC 2616. -var octetTypes [256]octetType - -type octetType byte - -const ( - isToken octetType = 1 << iota - isSpace -) - -func init() { - // OCTET = <any 8-bit sequence of data> - // CHAR = <any US-ASCII character (octets 0 - 127)> - // CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)> - // CR = <US-ASCII CR, carriage return (13)> - // LF = <US-ASCII LF, linefeed (10)> - // SP = <US-ASCII SP, space (32)> - // HT = <US-ASCII HT, horizontal-tab (9)> - // <"> = <US-ASCII double-quote mark (34)> - // CRLF = CR LF - // LWS = [CRLF] 1*( SP | HT ) - // TEXT = <any OCTET except CTLs, but including LWS> - // separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> - // | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT - // token = 1*<any CHAR except CTLs or separators> - // qdtext = <any TEXT except <">> - - for c := 0; c < 256; c++ { - var t octetType - isCtl := c <= 31 || c == 127 - isChar := 0 <= c && c <= 127 - isSeparator := strings.ContainsRune(" \t\"(),/:;<=>?@[]\\{}", rune(c)) - if strings.ContainsRune(" \t\r\n", rune(c)) { - t |= isSpace - } - if isChar && !isCtl && !isSeparator { - t |= isToken - } - octetTypes[c] = t - } -} diff --git a/vendor/github.com/andybalholm/brotli/huffman.go b/vendor/github.com/andybalholm/brotli/huffman.go deleted file mode 100644 index 182f3d2..0000000 --- a/vendor/github.com/andybalholm/brotli/huffman.go +++ /dev/null @@ -1,653 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for building Huffman decoding tables. */ - -const huffmanMaxCodeLength = 15 - -/* Maximum possible Huffman table size for an alphabet size of (index * 32), - max code length 15 and root table bits 8. */ -var kMaxHuffmanTableSize = []uint16{ - 256, - 402, - 436, - 468, - 500, - 534, - 566, - 598, - 630, - 662, - 694, - 726, - 758, - 790, - 822, - 854, - 886, - 920, - 952, - 984, - 1016, - 1048, - 1080, - 1112, - 1144, - 1176, - 1208, - 1240, - 1272, - 1304, - 1336, - 1368, - 1400, - 1432, - 1464, - 1496, - 1528, -} - -/* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */ -const huffmanMaxSize26 = 396 - -/* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */ -const huffmanMaxSize258 = 632 - -/* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */ -const huffmanMaxSize272 = 646 - -const huffmanMaxCodeLengthCodeLength = 5 - -/* Do not create this struct directly - use the ConstructHuffmanCode - * constructor below! */ -type huffmanCode struct { - bits byte - value uint16 -} - -func constructHuffmanCode(bits byte, value uint16) huffmanCode { - var h huffmanCode - h.bits = bits - h.value = value - return h -} - -/* Builds Huffman lookup table assuming code lengths are in symbol order. */ - -/* Builds Huffman lookup table assuming code lengths are in symbol order. - Returns size of resulting table. */ - -/* Builds a simple Huffman table. The |num_symbols| parameter is to be - interpreted as follows: 0 means 1 symbol, 1 means 2 symbols, - 2 means 3 symbols, 3 means 4 symbols with lengths [2, 2, 2, 2], - 4 means 4 symbols with lengths [1, 2, 3, 3]. */ - -/* Contains a collection of Huffman trees with the same alphabet size. */ -/* max_symbol is needed due to simple codes since log2(alphabet_size) could be - greater than log2(max_symbol). */ -type huffmanTreeGroup struct { - htrees [][]huffmanCode - codes []huffmanCode - alphabet_size uint16 - max_symbol uint16 - num_htrees uint16 -} - -const reverseBitsMax = 8 - -const reverseBitsBase = 0 - -var kReverseBits = [1 << reverseBitsMax]byte{ - 0x00, - 0x80, - 0x40, - 0xC0, - 0x20, - 0xA0, - 0x60, - 0xE0, - 0x10, - 0x90, - 0x50, - 0xD0, - 0x30, - 0xB0, - 0x70, - 0xF0, - 0x08, - 0x88, - 0x48, - 0xC8, - 0x28, - 0xA8, - 0x68, - 0xE8, - 0x18, - 0x98, - 0x58, - 0xD8, - 0x38, - 0xB8, - 0x78, - 0xF8, - 0x04, - 0x84, - 0x44, - 0xC4, - 0x24, - 0xA4, - 0x64, - 0xE4, - 0x14, - 0x94, - 0x54, - 0xD4, - 0x34, - 0xB4, - 0x74, - 0xF4, - 0x0C, - 0x8C, - 0x4C, - 0xCC, - 0x2C, - 0xAC, - 0x6C, - 0xEC, - 0x1C, - 0x9C, - 0x5C, - 0xDC, - 0x3C, - 0xBC, - 0x7C, - 0xFC, - 0x02, - 0x82, - 0x42, - 0xC2, - 0x22, - 0xA2, - 0x62, - 0xE2, - 0x12, - 0x92, - 0x52, - 0xD2, - 0x32, - 0xB2, - 0x72, - 0xF2, - 0x0A, - 0x8A, - 0x4A, - 0xCA, - 0x2A, - 0xAA, - 0x6A, - 0xEA, - 0x1A, - 0x9A, - 0x5A, - 0xDA, - 0x3A, - 0xBA, - 0x7A, - 0xFA, - 0x06, - 0x86, - 0x46, - 0xC6, - 0x26, - 0xA6, - 0x66, - 0xE6, - 0x16, - 0x96, - 0x56, - 0xD6, - 0x36, - 0xB6, - 0x76, - 0xF6, - 0x0E, - 0x8E, - 0x4E, - 0xCE, - 0x2E, - 0xAE, - 0x6E, - 0xEE, - 0x1E, - 0x9E, - 0x5E, - 0xDE, - 0x3E, - 0xBE, - 0x7E, - 0xFE, - 0x01, - 0x81, - 0x41, - 0xC1, - 0x21, - 0xA1, - 0x61, - 0xE1, - 0x11, - 0x91, - 0x51, - 0xD1, - 0x31, - 0xB1, - 0x71, - 0xF1, - 0x09, - 0x89, - 0x49, - 0xC9, - 0x29, - 0xA9, - 0x69, - 0xE9, - 0x19, - 0x99, - 0x59, - 0xD9, - 0x39, - 0xB9, - 0x79, - 0xF9, - 0x05, - 0x85, - 0x45, - 0xC5, - 0x25, - 0xA5, - 0x65, - 0xE5, - 0x15, - 0x95, - 0x55, - 0xD5, - 0x35, - 0xB5, - 0x75, - 0xF5, - 0x0D, - 0x8D, - 0x4D, - 0xCD, - 0x2D, - 0xAD, - 0x6D, - 0xED, - 0x1D, - 0x9D, - 0x5D, - 0xDD, - 0x3D, - 0xBD, - 0x7D, - 0xFD, - 0x03, - 0x83, - 0x43, - 0xC3, - 0x23, - 0xA3, - 0x63, - 0xE3, - 0x13, - 0x93, - 0x53, - 0xD3, - 0x33, - 0xB3, - 0x73, - 0xF3, - 0x0B, - 0x8B, - 0x4B, - 0xCB, - 0x2B, - 0xAB, - 0x6B, - 0xEB, - 0x1B, - 0x9B, - 0x5B, - 0xDB, - 0x3B, - 0xBB, - 0x7B, - 0xFB, - 0x07, - 0x87, - 0x47, - 0xC7, - 0x27, - 0xA7, - 0x67, - 0xE7, - 0x17, - 0x97, - 0x57, - 0xD7, - 0x37, - 0xB7, - 0x77, - 0xF7, - 0x0F, - 0x8F, - 0x4F, - 0xCF, - 0x2F, - 0xAF, - 0x6F, - 0xEF, - 0x1F, - 0x9F, - 0x5F, - 0xDF, - 0x3F, - 0xBF, - 0x7F, - 0xFF, -} - -const reverseBitsLowest = (uint64(1) << (reverseBitsMax - 1 + reverseBitsBase)) - -/* Returns reverse(num >> BROTLI_REVERSE_BITS_BASE, BROTLI_REVERSE_BITS_MAX), - where reverse(value, len) is the bit-wise reversal of the len least - significant bits of value. */ -func reverseBits8(num uint64) uint64 { - return uint64(kReverseBits[num]) -} - -/* Stores code in table[0], table[step], table[2*step], ..., table[end] */ -/* Assumes that end is an integer multiple of step */ -func replicateValue(table []huffmanCode, step int, end int, code huffmanCode) { - for { - end -= step - table[end] = code - if end <= 0 { - break - } - } -} - -/* Returns the table width of the next 2nd level table. |count| is the histogram - of bit lengths for the remaining symbols, |len| is the code length of the - next processed symbol. */ -func nextTableBitSize(count []uint16, len int, root_bits int) int { - var left int = 1 << uint(len-root_bits) - for len < huffmanMaxCodeLength { - left -= int(count[len]) - if left <= 0 { - break - } - len++ - left <<= 1 - } - - return len - root_bits -} - -func buildCodeLengthsHuffmanTable(table []huffmanCode, code_lengths []byte, count []uint16) { - var code huffmanCode /* current table entry */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* step size to replicate values in current table */ /* size of current table */ /* symbols sorted by code length */ - var symbol int - var key uint64 - var key_step uint64 - var step int - var table_size int - var sorted [codeLengthCodes]int - var offset [huffmanMaxCodeLengthCodeLength + 1]int - var bits int - var bits_count int - /* offsets in sorted table for each length */ - assert(huffmanMaxCodeLengthCodeLength <= reverseBitsMax) - - /* Generate offsets into sorted symbol table by code length. */ - symbol = -1 - - bits = 1 - var i int - for i = 0; i < huffmanMaxCodeLengthCodeLength; i++ { - symbol += int(count[bits]) - offset[bits] = symbol - bits++ - } - - /* Symbols with code length 0 are placed after all other symbols. */ - offset[0] = codeLengthCodes - 1 - - /* Sort symbols by length, by symbol order within each length. */ - symbol = codeLengthCodes - - for { - var i int - for i = 0; i < 6; i++ { - symbol-- - sorted[offset[code_lengths[symbol]]] = symbol - offset[code_lengths[symbol]]-- - } - if symbol == 0 { - break - } - } - - table_size = 1 << huffmanMaxCodeLengthCodeLength - - /* Special case: all symbols but one have 0 code length. */ - if offset[0] == 0 { - code = constructHuffmanCode(0, uint16(sorted[0])) - for key = 0; key < uint64(table_size); key++ { - table[key] = code - } - - return - } - - /* Fill in table. */ - key = 0 - - key_step = reverseBitsLowest - symbol = 0 - bits = 1 - step = 2 - for { - for bits_count = int(count[bits]); bits_count != 0; bits_count-- { - code = constructHuffmanCode(byte(bits), uint16(sorted[symbol])) - symbol++ - replicateValue(table[reverseBits8(key):], step, table_size, code) - key += key_step - } - - step <<= 1 - key_step >>= 1 - bits++ - if bits > huffmanMaxCodeLengthCodeLength { - break - } - } -} - -func buildHuffmanTable(root_table []huffmanCode, root_bits int, symbol_lists symbolList, count []uint16) uint32 { - var code huffmanCode /* current table entry */ /* next available space in table */ /* current code length */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* 2nd level table prefix code */ /* 2nd level table prefix code addend */ /* step size to replicate values in current table */ /* key length of current table */ /* size of current table */ /* sum of root table size and 2nd level table sizes */ - var table []huffmanCode - var len int - var symbol int - var key uint64 - var key_step uint64 - var sub_key uint64 - var sub_key_step uint64 - var step int - var table_bits int - var table_size int - var total_size int - var max_length int = -1 - var bits int - var bits_count int - - assert(root_bits <= reverseBitsMax) - assert(huffmanMaxCodeLength-root_bits <= reverseBitsMax) - - for symbolListGet(symbol_lists, max_length) == 0xFFFF { - max_length-- - } - max_length += huffmanMaxCodeLength + 1 - - table = root_table - table_bits = root_bits - table_size = 1 << uint(table_bits) - total_size = table_size - - /* Fill in the root table. Reduce the table size to if possible, - and create the repetitions by memcpy. */ - if table_bits > max_length { - table_bits = max_length - table_size = 1 << uint(table_bits) - } - - key = 0 - key_step = reverseBitsLowest - bits = 1 - step = 2 - for { - symbol = bits - (huffmanMaxCodeLength + 1) - for bits_count = int(count[bits]); bits_count != 0; bits_count-- { - symbol = int(symbolListGet(symbol_lists, symbol)) - code = constructHuffmanCode(byte(bits), uint16(symbol)) - replicateValue(table[reverseBits8(key):], step, table_size, code) - key += key_step - } - - step <<= 1 - key_step >>= 1 - bits++ - if bits > table_bits { - break - } - } - - /* If root_bits != table_bits then replicate to fill the remaining slots. */ - for total_size != table_size { - copy(table[table_size:], table[:uint(table_size)]) - table_size <<= 1 - } - - /* Fill in 2nd level tables and add pointers to root table. */ - key_step = reverseBitsLowest >> uint(root_bits-1) - - sub_key = reverseBitsLowest << 1 - sub_key_step = reverseBitsLowest - len = root_bits + 1 - step = 2 - for ; len <= max_length; len++ { - symbol = len - (huffmanMaxCodeLength + 1) - for ; count[len] != 0; count[len]-- { - if sub_key == reverseBitsLowest<<1 { - table = table[table_size:] - table_bits = nextTableBitSize(count, int(len), root_bits) - table_size = 1 << uint(table_bits) - total_size += table_size - sub_key = reverseBits8(key) - key += key_step - root_table[sub_key] = constructHuffmanCode(byte(table_bits+root_bits), uint16(uint64(uint(-cap(table)+cap(root_table)))-sub_key)) - sub_key = 0 - } - - symbol = int(symbolListGet(symbol_lists, symbol)) - code = constructHuffmanCode(byte(len-root_bits), uint16(symbol)) - replicateValue(table[reverseBits8(sub_key):], step, table_size, code) - sub_key += sub_key_step - } - - step <<= 1 - sub_key_step >>= 1 - } - - return uint32(total_size) -} - -func buildSimpleHuffmanTable(table []huffmanCode, root_bits int, val []uint16, num_symbols uint32) uint32 { - var table_size uint32 = 1 - var goal_size uint32 = 1 << uint(root_bits) - switch num_symbols { - case 0: - table[0] = constructHuffmanCode(0, val[0]) - - case 1: - if val[1] > val[0] { - table[0] = constructHuffmanCode(1, val[0]) - table[1] = constructHuffmanCode(1, val[1]) - } else { - table[0] = constructHuffmanCode(1, val[1]) - table[1] = constructHuffmanCode(1, val[0]) - } - - table_size = 2 - - case 2: - table[0] = constructHuffmanCode(1, val[0]) - table[2] = constructHuffmanCode(1, val[0]) - if val[2] > val[1] { - table[1] = constructHuffmanCode(2, val[1]) - table[3] = constructHuffmanCode(2, val[2]) - } else { - table[1] = constructHuffmanCode(2, val[2]) - table[3] = constructHuffmanCode(2, val[1]) - } - - table_size = 4 - - case 3: - var i int - var k int - for i = 0; i < 3; i++ { - for k = i + 1; k < 4; k++ { - if val[k] < val[i] { - var t uint16 = val[k] - val[k] = val[i] - val[i] = t - } - } - } - - table[0] = constructHuffmanCode(2, val[0]) - table[2] = constructHuffmanCode(2, val[1]) - table[1] = constructHuffmanCode(2, val[2]) - table[3] = constructHuffmanCode(2, val[3]) - table_size = 4 - - case 4: - if val[3] < val[2] { - var t uint16 = val[3] - val[3] = val[2] - val[2] = t - } - - table[0] = constructHuffmanCode(1, val[0]) - table[1] = constructHuffmanCode(2, val[1]) - table[2] = constructHuffmanCode(1, val[0]) - table[3] = constructHuffmanCode(3, val[2]) - table[4] = constructHuffmanCode(1, val[0]) - table[5] = constructHuffmanCode(2, val[1]) - table[6] = constructHuffmanCode(1, val[0]) - table[7] = constructHuffmanCode(3, val[3]) - table_size = 8 - } - - for table_size != goal_size { - copy(table[table_size:], table[:uint(table_size)]) - table_size <<= 1 - } - - return goal_size -} diff --git a/vendor/github.com/andybalholm/brotli/literal_cost.go b/vendor/github.com/andybalholm/brotli/literal_cost.go deleted file mode 100644 index 5a9ace9..0000000 --- a/vendor/github.com/andybalholm/brotli/literal_cost.go +++ /dev/null @@ -1,182 +0,0 @@ -package brotli - -func utf8Position(last uint, c uint, clamp uint) uint { - if c < 128 { - return 0 /* Next one is the 'Byte 1' again. */ - } else if c >= 192 { /* Next one is the 'Byte 2' of utf-8 encoding. */ - return brotli_min_size_t(1, clamp) - } else { - /* Let's decide over the last byte if this ends the sequence. */ - if last < 0xE0 { - return 0 /* Completed two or three byte coding. */ /* Next one is the 'Byte 3' of utf-8 encoding. */ - } else { - return brotli_min_size_t(2, clamp) - } - } -} - -func decideMultiByteStatsLevel(pos uint, len uint, mask uint, data []byte) uint { - var counts = [3]uint{0} /* should be 2, but 1 compresses better. */ - var max_utf8 uint = 1 - var last_c uint = 0 - var i uint - for i = 0; i < len; i++ { - var c uint = uint(data[(pos+i)&mask]) - counts[utf8Position(last_c, c, 2)]++ - last_c = c - } - - if counts[2] < 500 { - max_utf8 = 1 - } - - if counts[1]+counts[2] < 25 { - max_utf8 = 0 - } - - return max_utf8 -} - -func estimateBitCostsForLiteralsUTF8(pos uint, len uint, mask uint, data []byte, cost []float32) { - var max_utf8 uint = decideMultiByteStatsLevel(pos, uint(len), mask, data) - /* Bootstrap histograms. */ - var histogram = [3][256]uint{[256]uint{0}} - var window_half uint = 495 - var in_window uint = brotli_min_size_t(window_half, uint(len)) - var in_window_utf8 = [3]uint{0} - /* max_utf8 is 0 (normal ASCII single byte modeling), - 1 (for 2-byte UTF-8 modeling), or 2 (for 3-byte UTF-8 modeling). */ - - var i uint - { - var last_c uint = 0 - var utf8_pos uint = 0 - for i = 0; i < in_window; i++ { - var c uint = uint(data[(pos+i)&mask]) - histogram[utf8_pos][c]++ - in_window_utf8[utf8_pos]++ - utf8_pos = utf8Position(last_c, c, max_utf8) - last_c = c - } - } - - /* Compute bit costs with sliding window. */ - for i = 0; i < len; i++ { - if i >= window_half { - var c uint - var last_c uint - if i < window_half+1 { - c = 0 - } else { - c = uint(data[(pos+i-window_half-1)&mask]) - } - if i < window_half+2 { - last_c = 0 - } else { - last_c = uint(data[(pos+i-window_half-2)&mask]) - } - /* Remove a byte in the past. */ - - var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) - histogram[utf8_pos2][data[(pos+i-window_half)&mask]]-- - in_window_utf8[utf8_pos2]-- - } - - if i+window_half < len { - var c uint = uint(data[(pos+i+window_half-1)&mask]) - var last_c uint = uint(data[(pos+i+window_half-2)&mask]) - /* Add a byte in the future. */ - - var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) - histogram[utf8_pos2][data[(pos+i+window_half)&mask]]++ - in_window_utf8[utf8_pos2]++ - } - { - var c uint - var last_c uint - if i < 1 { - c = 0 - } else { - c = uint(data[(pos+i-1)&mask]) - } - if i < 2 { - last_c = 0 - } else { - last_c = uint(data[(pos+i-2)&mask]) - } - var utf8_pos uint = utf8Position(last_c, c, max_utf8) - var masked_pos uint = (pos + i) & mask - var histo uint = histogram[utf8_pos][data[masked_pos]] - var lit_cost float64 - if histo == 0 { - histo = 1 - } - - lit_cost = fastLog2(in_window_utf8[utf8_pos]) - fastLog2(histo) - lit_cost += 0.02905 - if lit_cost < 1.0 { - lit_cost *= 0.5 - lit_cost += 0.5 - } - - /* Make the first bytes more expensive -- seems to help, not sure why. - Perhaps because the entropy source is changing its properties - rapidly in the beginning of the file, perhaps because the beginning - of the data is a statistical "anomaly". */ - if i < 2000 { - lit_cost += 0.7 - (float64(2000-i) / 2000.0 * 0.35) - } - - cost[i] = float32(lit_cost) - } - } -} - -func estimateBitCostsForLiterals(pos uint, len uint, mask uint, data []byte, cost []float32) { - if isMostlyUTF8(data, pos, mask, uint(len), kMinUTF8Ratio) { - estimateBitCostsForLiteralsUTF8(pos, uint(len), mask, data, cost) - return - } else { - var histogram = [256]uint{0} - var window_half uint = 2000 - var in_window uint = brotli_min_size_t(window_half, uint(len)) - var i uint - /* Bootstrap histogram. */ - for i = 0; i < in_window; i++ { - histogram[data[(pos+i)&mask]]++ - } - - /* Compute bit costs with sliding window. */ - for i = 0; i < len; i++ { - var histo uint - if i >= window_half { - /* Remove a byte in the past. */ - histogram[data[(pos+i-window_half)&mask]]-- - - in_window-- - } - - if i+window_half < len { - /* Add a byte in the future. */ - histogram[data[(pos+i+window_half)&mask]]++ - - in_window++ - } - - histo = histogram[data[(pos+i)&mask]] - if histo == 0 { - histo = 1 - } - { - var lit_cost float64 = fastLog2(in_window) - fastLog2(histo) - lit_cost += 0.029 - if lit_cost < 1.0 { - lit_cost *= 0.5 - lit_cost += 0.5 - } - - cost[i] = float32(lit_cost) - } - } - } -} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go b/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go deleted file mode 100644 index 37ed8e1..0000000 --- a/vendor/github.com/andybalholm/brotli/matchfinder/emitter.go +++ /dev/null @@ -1,45 +0,0 @@ -package matchfinder - -// An absoluteMatch is like a Match, but it stores indexes into the byte -// stream instead of lengths. -type absoluteMatch struct { - // Start is the index of the first byte. - Start int - - // End is the index of the byte after the last byte - // (so that End - Start = Length). - End int - - // Match is the index of the previous data that matches - // (Start - Match = Distance). - Match int -} - -// A matchEmitter manages the output of matches for a MatchFinder. -type matchEmitter struct { - // Dst is the destination slice that Matches are added to. - Dst []Match - - // NextEmit is the index of the next byte to emit. - NextEmit int -} - -func (e *matchEmitter) emit(m absoluteMatch) { - e.Dst = append(e.Dst, Match{ - Unmatched: m.Start - e.NextEmit, - Length: m.End - m.Start, - Distance: m.Start - m.Match, - }) - e.NextEmit = m.End -} - -// trim shortens m if it extends past maxEnd. Then if the length is at least -// minLength, the match is emitted. -func (e *matchEmitter) trim(m absoluteMatch, maxEnd int, minLength int) { - if m.End > maxEnd { - m.End = maxEnd - } - if m.End-m.Start >= minLength { - e.emit(m) - } -} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/m0.go b/vendor/github.com/andybalholm/brotli/matchfinder/m0.go deleted file mode 100644 index 773b7c4..0000000 --- a/vendor/github.com/andybalholm/brotli/matchfinder/m0.go +++ /dev/null @@ -1,169 +0,0 @@ -package matchfinder - -import ( - "encoding/binary" -) - -// M0 is an implementation of the MatchFinder interface based -// on the algorithm used by snappy, but modified to be more like the algorithm -// used by compression level 0 of the brotli reference implementation. -// -// It has a maximum block size of 65536 bytes. -type M0 struct { - // Lazy turns on "lazy matching," for higher compression but less speed. - Lazy bool - - MaxDistance int - MaxLength int -} - -func (M0) Reset() {} - -const ( - m0HashLen = 5 - - m0TableBits = 14 - m0TableSize = 1 << m0TableBits - m0Shift = 32 - m0TableBits - // m0TableMask is redundant, but helps the compiler eliminate bounds - // checks. - m0TableMask = m0TableSize - 1 -) - -func (m M0) hash(data uint64) uint64 { - hash := (data << (64 - 8*m0HashLen)) * hashMul64 - return hash >> (64 - m0TableBits) -} - -// FindMatches looks for matches in src, appends them to dst, and returns dst. -// src must not be longer than 65536 bytes. -func (m M0) FindMatches(dst []Match, src []byte) []Match { - const inputMargin = 16 - 1 - const minNonLiteralBlockSize = 1 + 1 + inputMargin - - if len(src) < minNonLiteralBlockSize { - dst = append(dst, Match{ - Unmatched: len(src), - }) - return dst - } - if len(src) > 65536 { - panic("block too long") - } - - var table [m0TableSize]uint16 - - // sLimit is when to stop looking for offset/length copies. The inputMargin - // lets us use a fast path for emitLiteral in the main loop, while we are - // looking for copies. - sLimit := len(src) - inputMargin - - // nextEmit is where in src the next emitLiteral should start from. - nextEmit := 0 - - // The encoded form must start with a literal, as there are no previous - // bytes to copy, so we start looking for hash matches at s == 1. - s := 1 - nextHash := m.hash(binary.LittleEndian.Uint64(src[s:])) - - for { - // Copied from the C++ snappy implementation: - // - // Heuristic match skipping: If 32 bytes are scanned with no matches - // found, start looking only at every other byte. If 32 more bytes are - // scanned (or skipped), look at every third byte, etc.. When a match - // is found, immediately go back to looking at every byte. This is a - // small loss (~5% performance, ~0.1% density) for compressible data - // due to more bookkeeping, but for non-compressible data (such as - // JPEG) it's a huge win since the compressor quickly "realizes" the - // data is incompressible and doesn't bother looking for matches - // everywhere. - // - // The "skip" variable keeps track of how many bytes there are since - // the last match; dividing it by 32 (ie. right-shifting by five) gives - // the number of bytes to move ahead for each iteration. - skip := 32 - - nextS := s - candidate := 0 - for { - s = nextS - bytesBetweenHashLookups := skip >> 5 - nextS = s + bytesBetweenHashLookups - skip += bytesBetweenHashLookups - if nextS > sLimit { - goto emitRemainder - } - candidate = int(table[nextHash&m0TableMask]) - table[nextHash&m0TableMask] = uint16(s) - nextHash = m.hash(binary.LittleEndian.Uint64(src[nextS:])) - if m.MaxDistance != 0 && s-candidate > m.MaxDistance { - continue - } - if binary.LittleEndian.Uint32(src[s:]) == binary.LittleEndian.Uint32(src[candidate:]) { - break - } - } - - // Invariant: we have a 4-byte match at s. - base := s - s = extendMatch(src, candidate+4, s+4) - - origBase := base - if m.Lazy && base+1 < sLimit { - newBase := base + 1 - h := m.hash(binary.LittleEndian.Uint64(src[newBase:])) - newCandidate := int(table[h&m0TableMask]) - table[h&m0TableMask] = uint16(newBase) - okDistance := true - if m.MaxDistance != 0 && newBase-newCandidate > m.MaxDistance { - okDistance = false - } - if okDistance && binary.LittleEndian.Uint32(src[newBase:]) == binary.LittleEndian.Uint32(src[newCandidate:]) { - newS := extendMatch(src, newCandidate+4, newBase+4) - if newS-newBase > s-base+1 { - s = newS - base = newBase - candidate = newCandidate - } - } - } - - if m.MaxLength != 0 && s-base > m.MaxLength { - s = base + m.MaxLength - } - dst = append(dst, Match{ - Unmatched: base - nextEmit, - Length: s - base, - Distance: base - candidate, - }) - nextEmit = s - if s >= sLimit { - goto emitRemainder - } - - if m.Lazy { - // If lazy matching is enabled, we update the hash table for - // every byte in the match. - for i := origBase + 2; i < s-1; i++ { - x := binary.LittleEndian.Uint64(src[i:]) - table[m.hash(x)&m0TableMask] = uint16(i) - } - } - - // We could immediately start working at s now, but to improve - // compression we first update the hash table at s-1 and at s. - x := binary.LittleEndian.Uint64(src[s-1:]) - prevHash := m.hash(x >> 0) - table[prevHash&m0TableMask] = uint16(s - 1) - nextHash = m.hash(x >> 8) - } - -emitRemainder: - if nextEmit < len(src) { - dst = append(dst, Match{ - Unmatched: len(src) - nextEmit, - }) - } - return dst -} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/m4.go b/vendor/github.com/andybalholm/brotli/matchfinder/m4.go deleted file mode 100644 index 5b2acba..0000000 --- a/vendor/github.com/andybalholm/brotli/matchfinder/m4.go +++ /dev/null @@ -1,297 +0,0 @@ -package matchfinder - -import ( - "encoding/binary" - "math/bits" - "runtime" -) - -// M4 is an implementation of the MatchFinder -// interface that uses a hash table to find matches, -// optional match chains, -// and the advanced parsing technique from -// https://fastcompression.blogspot.com/2011/12/advanced-parsing-strategies.html. -type M4 struct { - // MaxDistance is the maximum distance (in bytes) to look back for - // a match. The default is 65535. - MaxDistance int - - // MinLength is the length of the shortest match to return. - // The default is 4. - MinLength int - - // HashLen is the number of bytes to use to calculate the hashes. - // The maximum is 8 and the default is 6. - HashLen int - - // TableBits is the number of bits in the hash table indexes. - // The default is 17 (128K entries). - TableBits int - - // ChainLength is how many entries to search on the "match chain" of older - // locations with the same hash as the current location. - ChainLength int - - // DistanceBitCost is used when comparing two matches to see - // which is better. The comparison is primarily based on the length - // of the matches, but it can also take the distance into account, - // in terms of the number of bits needed to represent the distance. - // One byte of length is given a score of 256, so 32 (256/8) would - // be a reasonable first guess for the value of one bit. - // (The default is 0, which bases the comparison solely on length.) - DistanceBitCost int - - table []uint32 - chain []uint16 - - history []byte -} - -func (q *M4) Reset() { - for i := range q.table { - q.table[i] = 0 - } - q.history = q.history[:0] - q.chain = q.chain[:0] -} - -func (q *M4) score(m absoluteMatch) int { - return (m.End-m.Start)*256 + bits.LeadingZeros32(uint32(m.Start-m.Match))*q.DistanceBitCost -} - -func (q *M4) FindMatches(dst []Match, src []byte) []Match { - if q.MaxDistance == 0 { - q.MaxDistance = 65535 - } - if q.MinLength == 0 { - q.MinLength = 4 - } - if q.HashLen == 0 { - q.HashLen = 6 - } - if q.TableBits == 0 { - q.TableBits = 17 - } - if len(q.table) < 1<<q.TableBits { - q.table = make([]uint32, 1<<q.TableBits) - } - - e := matchEmitter{Dst: dst} - - if len(q.history) > q.MaxDistance*2 { - // Trim down the history buffer. - delta := len(q.history) - q.MaxDistance - copy(q.history, q.history[delta:]) - q.history = q.history[:q.MaxDistance] - if q.ChainLength > 0 { - q.chain = q.chain[:q.MaxDistance] - } - - for i, v := range q.table { - newV := int(v) - delta - if newV < 0 { - newV = 0 - } - q.table[i] = uint32(newV) - } - } - - // Append src to the history buffer. - e.NextEmit = len(q.history) - q.history = append(q.history, src...) - if q.ChainLength > 0 { - q.chain = append(q.chain, make([]uint16, len(src))...) - } - src = q.history - - // matches stores the matches that have been found but not emitted, - // in reverse order. (matches[0] is the most recent one.) - var matches [3]absoluteMatch - for i := e.NextEmit; i < len(src)-7; i++ { - if matches[0] != (absoluteMatch{}) && i >= matches[0].End { - // We have found some matches, and we're far enough along that we probably - // won't find overlapping matches, so we might as well emit them. - if matches[1] != (absoluteMatch{}) { - e.trim(matches[1], matches[0].Start, q.MinLength) - } - e.emit(matches[0]) - matches = [3]absoluteMatch{} - } - - // Calculate and store the hash. - h := ((binary.LittleEndian.Uint64(src[i:]) & (1<<(8*q.HashLen) - 1)) * hashMul64) >> (64 - q.TableBits) - candidate := int(q.table[h]) - q.table[h] = uint32(i) - if q.ChainLength > 0 && candidate != 0 { - delta := i - candidate - if delta < 1<<16 { - q.chain[i] = uint16(delta) - } - } - - if i < matches[0].End && i != matches[0].End+2-q.HashLen { - continue - } - if candidate == 0 || i-candidate > q.MaxDistance { - continue - } - - // Look for a match. - var currentMatch absoluteMatch - - if i-candidate != matches[0].Start-matches[0].Match { - if binary.LittleEndian.Uint32(src[candidate:]) == binary.LittleEndian.Uint32(src[i:]) { - m := extendMatch2(src, i, candidate, e.NextEmit) - if m.End-m.Start > q.MinLength { - currentMatch = m - } - } - } - - for j := 0; j < q.ChainLength; j++ { - delta := q.chain[candidate] - if delta == 0 { - break - } - candidate -= int(delta) - if candidate <= 0 || i-candidate > q.MaxDistance { - break - } - if i-candidate != matches[0].Start-matches[0].Match { - if binary.LittleEndian.Uint32(src[candidate:]) == binary.LittleEndian.Uint32(src[i:]) { - m := extendMatch2(src, i, candidate, e.NextEmit) - if m.End-m.Start > q.MinLength && q.score(m) > q.score(currentMatch) { - currentMatch = m - } - } - } - } - - if currentMatch.End-currentMatch.Start < q.MinLength { - continue - } - - overlapPenalty := 0 - if matches[0] != (absoluteMatch{}) { - overlapPenalty = 275 - if currentMatch.Start <= matches[1].End { - // This match would completely replace the previous match, - // so there is no penalty for overlap. - overlapPenalty = 0 - } - } - - if q.score(currentMatch) <= q.score(matches[0])+overlapPenalty { - continue - } - - matches = [3]absoluteMatch{ - currentMatch, - matches[0], - matches[1], - } - - if matches[2] == (absoluteMatch{}) { - continue - } - - // We have three matches, so it's time to emit one and/or eliminate one. - switch { - case matches[0].Start < matches[2].End: - // The first and third matches overlap; discard the one in between. - matches = [3]absoluteMatch{ - matches[0], - matches[2], - absoluteMatch{}, - } - - case matches[0].Start < matches[2].End+q.MinLength: - // The first and third matches don't overlap, but there's no room for - // another match between them. Emit the first match and discard the second. - e.emit(matches[2]) - matches = [3]absoluteMatch{ - matches[0], - absoluteMatch{}, - absoluteMatch{}, - } - - default: - // Emit the first match, shortening it if necessary to avoid overlap with the second. - e.trim(matches[2], matches[1].Start, q.MinLength) - matches[2] = absoluteMatch{} - } - } - - // We've found all the matches now; emit the remaining ones. - if matches[1] != (absoluteMatch{}) { - e.trim(matches[1], matches[0].Start, q.MinLength) - } - if matches[0] != (absoluteMatch{}) { - e.emit(matches[0]) - } - - dst = e.Dst - if e.NextEmit < len(src) { - dst = append(dst, Match{ - Unmatched: len(src) - e.NextEmit, - }) - } - - return dst -} - -const hashMul64 = 0x1E35A7BD1E35A7BD - -// extendMatch returns the largest k such that k <= len(src) and that -// src[i:i+k-j] and src[j:k] have the same contents. -// -// It assumes that: -// -// 0 <= i && i < j && j <= len(src) -func extendMatch(src []byte, i, j int) int { - switch runtime.GOARCH { - case "amd64": - // As long as we are 8 or more bytes before the end of src, we can load and - // compare 8 bytes at a time. If those 8 bytes are equal, repeat. - for j+8 < len(src) { - iBytes := binary.LittleEndian.Uint64(src[i:]) - jBytes := binary.LittleEndian.Uint64(src[j:]) - if iBytes != jBytes { - // If those 8 bytes were not equal, XOR the two 8 byte values, and return - // the index of the first byte that differs. The BSF instruction finds the - // least significant 1 bit, the amd64 architecture is little-endian, and - // the shift by 3 converts a bit index to a byte index. - return j + bits.TrailingZeros64(iBytes^jBytes)>>3 - } - i, j = i+8, j+8 - } - case "386": - // On a 32-bit CPU, we do it 4 bytes at a time. - for j+4 < len(src) { - iBytes := binary.LittleEndian.Uint32(src[i:]) - jBytes := binary.LittleEndian.Uint32(src[j:]) - if iBytes != jBytes { - return j + bits.TrailingZeros32(iBytes^jBytes)>>3 - } - i, j = i+4, j+4 - } - } - for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 { - } - return j -} - -// Given a 4-byte match at src[start] and src[candidate], extendMatch2 extends it -// upward as far as possible, and downward no farther than to min. -func extendMatch2(src []byte, start, candidate, min int) absoluteMatch { - end := extendMatch(src, candidate+4, start+4) - for start > min && candidate > 0 && src[start-1] == src[candidate-1] { - start-- - candidate-- - } - return absoluteMatch{ - Start: start, - End: end, - Match: candidate, - } -} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go b/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go deleted file mode 100644 index f6bcfdb..0000000 --- a/vendor/github.com/andybalholm/brotli/matchfinder/matchfinder.go +++ /dev/null @@ -1,103 +0,0 @@ -// The matchfinder package defines reusable components for data compression. -// -// Many compression libraries have two main parts: -// - Something that looks for repeated sequences of bytes -// - An encoder for the compressed data format (often an entropy coder) -// -// Although these are logically two separate steps, the implementations are -// usually closely tied together. You can't use flate's matcher with snappy's -// encoder, for example. This package defines interfaces and an intermediate -// representation to allow mixing and matching compression components. -package matchfinder - -import "io" - -// A Match is the basic unit of LZ77 compression. -type Match struct { - Unmatched int // the number of unmatched bytes since the previous match - Length int // the number of bytes in the matched string; it may be 0 at the end of the input - Distance int // how far back in the stream to copy from -} - -// A MatchFinder performs the LZ77 stage of compression, looking for matches. -type MatchFinder interface { - // FindMatches looks for matches in src, appends them to dst, and returns dst. - FindMatches(dst []Match, src []byte) []Match - - // Reset clears any internal state, preparing the MatchFinder to be used with - // a new stream. - Reset() -} - -// An Encoder encodes the data in its final format. -type Encoder interface { - // Encode appends the encoded format of src to dst, using the match - // information from matches. - Encode(dst []byte, src []byte, matches []Match, lastBlock bool) []byte - - // Reset clears any internal state, preparing the Encoder to be used with - // a new stream. - Reset() -} - -// A Writer uses MatchFinder and Encoder to write compressed data to Dest. -type Writer struct { - Dest io.Writer - MatchFinder MatchFinder - Encoder Encoder - - // BlockSize is the number of bytes to compress at a time. If it is zero, - // each Write operation will be treated as one block. - BlockSize int - - err error - inBuf []byte - outBuf []byte - matches []Match -} - -func (w *Writer) Write(p []byte) (n int, err error) { - if w.err != nil { - return 0, w.err - } - - if w.BlockSize == 0 { - return w.writeBlock(p, false) - } - - w.inBuf = append(w.inBuf, p...) - var pos int - for pos = 0; pos+w.BlockSize <= len(w.inBuf) && w.err == nil; pos += w.BlockSize { - w.writeBlock(w.inBuf[pos:pos+w.BlockSize], false) - } - if pos > 0 { - n := copy(w.inBuf, w.inBuf[pos:]) - w.inBuf = w.inBuf[:n] - } - - return len(p), w.err -} - -func (w *Writer) writeBlock(p []byte, lastBlock bool) (n int, err error) { - w.outBuf = w.outBuf[:0] - w.matches = w.MatchFinder.FindMatches(w.matches[:0], p) - w.outBuf = w.Encoder.Encode(w.outBuf, p, w.matches, lastBlock) - _, w.err = w.Dest.Write(w.outBuf) - return len(p), w.err -} - -func (w *Writer) Close() error { - w.writeBlock(w.inBuf, true) - w.inBuf = w.inBuf[:0] - return w.err -} - -func (w *Writer) Reset(newDest io.Writer) { - w.MatchFinder.Reset() - w.Encoder.Reset() - w.err = nil - w.inBuf = w.inBuf[:0] - w.outBuf = w.outBuf[:0] - w.matches = w.matches[:0] - w.Dest = newDest -} diff --git a/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go b/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go deleted file mode 100644 index 75ecc59..0000000 --- a/vendor/github.com/andybalholm/brotli/matchfinder/textencoder.go +++ /dev/null @@ -1,53 +0,0 @@ -package matchfinder - -import "fmt" - -// A TextEncoder is an Encoder that produces a human-readable representation of -// the LZ77 compression. Matches are replaced with <Length,Distance> symbols. -type TextEncoder struct{} - -func (t TextEncoder) Reset() {} - -func (t TextEncoder) Encode(dst []byte, src []byte, matches []Match, lastBlock bool) []byte { - pos := 0 - for _, m := range matches { - if m.Unmatched > 0 { - dst = append(dst, src[pos:pos+m.Unmatched]...) - pos += m.Unmatched - } - if m.Length > 0 { - dst = append(dst, []byte(fmt.Sprintf("<%d,%d>", m.Length, m.Distance))...) - pos += m.Length - } - } - if pos < len(src) { - dst = append(dst, src[pos:]...) - } - return dst -} - -// A NoMatchFinder implements MatchFinder, but doesn't find any matches. -// It can be used to implement the equivalent of the standard library flate package's -// HuffmanOnly setting. -type NoMatchFinder struct{} - -func (n NoMatchFinder) Reset() {} - -func (n NoMatchFinder) FindMatches(dst []Match, src []byte) []Match { - return append(dst, Match{ - Unmatched: len(src), - }) -} - -// AutoReset wraps a MatchFinder that can return references to data in previous -// blocks, and calls Reset before each block. It is useful for (e.g.) using a -// snappy Encoder with a MatchFinder designed for flate. (Snappy doesn't -// support references between blocks.) -type AutoReset struct { - MatchFinder -} - -func (a AutoReset) FindMatches(dst []Match, src []byte) []Match { - a.Reset() - return a.MatchFinder.FindMatches(dst, src) -} diff --git a/vendor/github.com/andybalholm/brotli/memory.go b/vendor/github.com/andybalholm/brotli/memory.go deleted file mode 100644 index a07c705..0000000 --- a/vendor/github.com/andybalholm/brotli/memory.go +++ /dev/null @@ -1,66 +0,0 @@ -package brotli - -/* Copyright 2016 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* -Dynamically grows array capacity to at least the requested size -T: data type -A: array -C: capacity -R: requested size -*/ -func brotli_ensure_capacity_uint8_t(a *[]byte, c *uint, r uint) { - if *c < r { - var new_size uint = *c - if new_size == 0 { - new_size = r - } - - for new_size < r { - new_size *= 2 - } - - if cap(*a) < int(new_size) { - var new_array []byte = make([]byte, new_size) - if *c != 0 { - copy(new_array, (*a)[:*c]) - } - - *a = new_array - } else { - *a = (*a)[:new_size] - } - - *c = new_size - } -} - -func brotli_ensure_capacity_uint32_t(a *[]uint32, c *uint, r uint) { - var new_array []uint32 - if *c < r { - var new_size uint = *c - if new_size == 0 { - new_size = r - } - - for new_size < r { - new_size *= 2 - } - - if cap(*a) < int(new_size) { - new_array = make([]uint32, new_size) - if *c != 0 { - copy(new_array, (*a)[:*c]) - } - - *a = new_array - } else { - *a = (*a)[:new_size] - } - *c = new_size - } -} diff --git a/vendor/github.com/andybalholm/brotli/metablock.go b/vendor/github.com/andybalholm/brotli/metablock.go deleted file mode 100644 index 3014df8..0000000 --- a/vendor/github.com/andybalholm/brotli/metablock.go +++ /dev/null @@ -1,574 +0,0 @@ -package brotli - -import ( - "sync" -) - -/* Copyright 2014 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Algorithms for distributing the literals and commands of a metablock between - block types and contexts. */ - -type metaBlockSplit struct { - literal_split blockSplit - command_split blockSplit - distance_split blockSplit - literal_context_map []uint32 - literal_context_map_size uint - distance_context_map []uint32 - distance_context_map_size uint - literal_histograms []histogramLiteral - literal_histograms_size uint - command_histograms []histogramCommand - command_histograms_size uint - distance_histograms []histogramDistance - distance_histograms_size uint -} - -var metaBlockPool sync.Pool - -func getMetaBlockSplit() *metaBlockSplit { - mb, _ := metaBlockPool.Get().(*metaBlockSplit) - - if mb == nil { - mb = &metaBlockSplit{} - } else { - initBlockSplit(&mb.literal_split) - initBlockSplit(&mb.command_split) - initBlockSplit(&mb.distance_split) - mb.literal_context_map = mb.literal_context_map[:0] - mb.literal_context_map_size = 0 - mb.distance_context_map = mb.distance_context_map[:0] - mb.distance_context_map_size = 0 - mb.literal_histograms = mb.literal_histograms[:0] - mb.command_histograms = mb.command_histograms[:0] - mb.distance_histograms = mb.distance_histograms[:0] - } - return mb -} - -func freeMetaBlockSplit(mb *metaBlockSplit) { - metaBlockPool.Put(mb) -} - -func initDistanceParams(params *encoderParams, npostfix uint32, ndirect uint32) { - var dist_params *distanceParams = &params.dist - var alphabet_size uint32 - var max_distance uint32 - - dist_params.distance_postfix_bits = npostfix - dist_params.num_direct_distance_codes = ndirect - - alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), maxDistanceBits)) - max_distance = ndirect + (1 << (maxDistanceBits + npostfix + 2)) - (1 << (npostfix + 2)) - - if params.large_window { - var bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} - var postfix uint32 = 1 << npostfix - alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), largeMaxDistanceBits)) - - /* The maximum distance is set so that no distance symbol used can encode - a distance larger than BROTLI_MAX_ALLOWED_DISTANCE with all - its extra bits set. */ - if ndirect < bound[npostfix] { - max_distance = maxAllowedDistance - (bound[npostfix] - ndirect) - } else if ndirect >= bound[npostfix]+postfix { - max_distance = (3 << 29) - 4 + (ndirect - bound[npostfix]) - } else { - max_distance = maxAllowedDistance - } - } - - dist_params.alphabet_size = alphabet_size - dist_params.max_distance = uint(max_distance) -} - -func recomputeDistancePrefixes(cmds []command, orig_params *distanceParams, new_params *distanceParams) { - if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { - return - } - - for i := range cmds { - var cmd *command = &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - prefixEncodeCopyDistance(uint(commandRestoreDistanceCode(cmd, orig_params)), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) - } - } -} - -func computeDistanceCost(cmds []command, orig_params *distanceParams, new_params *distanceParams, cost *float64) bool { - var equal_params bool = false - var dist_prefix uint16 - var dist_extra uint32 - var extra_bits float64 = 0.0 - var histo histogramDistance - histogramClearDistance(&histo) - - if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { - equal_params = true - } - - for i := range cmds { - cmd := &cmds[i] - if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { - if equal_params { - dist_prefix = cmd.dist_prefix_ - } else { - var distance uint32 = commandRestoreDistanceCode(cmd, orig_params) - if distance > uint32(new_params.max_distance) { - return false - } - - prefixEncodeCopyDistance(uint(distance), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &dist_prefix, &dist_extra) - } - - histogramAddDistance(&histo, uint(dist_prefix)&0x3FF) - extra_bits += float64(dist_prefix >> 10) - } - } - - *cost = populationCostDistance(&histo) + extra_bits - return true -} - -var buildMetaBlock_kMaxNumberOfHistograms uint = 256 - -func buildMetaBlock(ringbuffer []byte, pos uint, mask uint, params *encoderParams, prev_byte byte, prev_byte2 byte, cmds []command, literal_context_mode int, mb *metaBlockSplit) { - var distance_histograms []histogramDistance - var literal_histograms []histogramLiteral - var literal_context_modes []int = nil - var literal_histograms_size uint - var distance_histograms_size uint - var i uint - var literal_context_multiplier uint = 1 - var npostfix uint32 - var ndirect_msb uint32 = 0 - var check_orig bool = true - var best_dist_cost float64 = 1e99 - var orig_params encoderParams = *params - /* Histogram ids need to fit in one byte. */ - - var new_params encoderParams = *params - - for npostfix = 0; npostfix <= maxNpostfix; npostfix++ { - for ; ndirect_msb < 16; ndirect_msb++ { - var ndirect uint32 = ndirect_msb << npostfix - var skip bool - var dist_cost float64 - initDistanceParams(&new_params, npostfix, ndirect) - if npostfix == orig_params.dist.distance_postfix_bits && ndirect == orig_params.dist.num_direct_distance_codes { - check_orig = false - } - - skip = !computeDistanceCost(cmds, &orig_params.dist, &new_params.dist, &dist_cost) - if skip || (dist_cost > best_dist_cost) { - break - } - - best_dist_cost = dist_cost - params.dist = new_params.dist - } - - if ndirect_msb > 0 { - ndirect_msb-- - } - ndirect_msb /= 2 - } - - if check_orig { - var dist_cost float64 - computeDistanceCost(cmds, &orig_params.dist, &orig_params.dist, &dist_cost) - if dist_cost < best_dist_cost { - /* NB: currently unused; uncomment when more param tuning is added. */ - /* best_dist_cost = dist_cost; */ - params.dist = orig_params.dist - } - } - - recomputeDistancePrefixes(cmds, &orig_params.dist, &params.dist) - - splitBlock(cmds, ringbuffer, pos, mask, params, &mb.literal_split, &mb.command_split, &mb.distance_split) - - if !params.disable_literal_context_modeling { - literal_context_multiplier = 1 << literalContextBits - literal_context_modes = make([]int, (mb.literal_split.num_types)) - for i = 0; i < mb.literal_split.num_types; i++ { - literal_context_modes[i] = literal_context_mode - } - } - - literal_histograms_size = mb.literal_split.num_types * literal_context_multiplier - literal_histograms = make([]histogramLiteral, literal_histograms_size) - clearHistogramsLiteral(literal_histograms, literal_histograms_size) - - distance_histograms_size = mb.distance_split.num_types << distanceContextBits - distance_histograms = make([]histogramDistance, distance_histograms_size) - clearHistogramsDistance(distance_histograms, distance_histograms_size) - - mb.command_histograms_size = mb.command_split.num_types - if cap(mb.command_histograms) < int(mb.command_histograms_size) { - mb.command_histograms = make([]histogramCommand, (mb.command_histograms_size)) - } else { - mb.command_histograms = mb.command_histograms[:mb.command_histograms_size] - } - clearHistogramsCommand(mb.command_histograms, mb.command_histograms_size) - - buildHistogramsWithContext(cmds, &mb.literal_split, &mb.command_split, &mb.distance_split, ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_modes, literal_histograms, mb.command_histograms, distance_histograms) - literal_context_modes = nil - - mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits - if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { - mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) - } else { - mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] - } - - mb.literal_histograms_size = mb.literal_context_map_size - if cap(mb.literal_histograms) < int(mb.literal_histograms_size) { - mb.literal_histograms = make([]histogramLiteral, (mb.literal_histograms_size)) - } else { - mb.literal_histograms = mb.literal_histograms[:mb.literal_histograms_size] - } - - clusterHistogramsLiteral(literal_histograms, literal_histograms_size, buildMetaBlock_kMaxNumberOfHistograms, mb.literal_histograms, &mb.literal_histograms_size, mb.literal_context_map) - literal_histograms = nil - - if params.disable_literal_context_modeling { - /* Distribute assignment to all contexts. */ - for i = mb.literal_split.num_types; i != 0; { - var j uint = 0 - i-- - for ; j < 1<<literalContextBits; j++ { - mb.literal_context_map[(i<<literalContextBits)+j] = mb.literal_context_map[i] - } - } - } - - mb.distance_context_map_size = mb.distance_split.num_types << distanceContextBits - if cap(mb.distance_context_map) < int(mb.distance_context_map_size) { - mb.distance_context_map = make([]uint32, (mb.distance_context_map_size)) - } else { - mb.distance_context_map = mb.distance_context_map[:mb.distance_context_map_size] - } - - mb.distance_histograms_size = mb.distance_context_map_size - if cap(mb.distance_histograms) < int(mb.distance_histograms_size) { - mb.distance_histograms = make([]histogramDistance, (mb.distance_histograms_size)) - } else { - mb.distance_histograms = mb.distance_histograms[:mb.distance_histograms_size] - } - - clusterHistogramsDistance(distance_histograms, mb.distance_context_map_size, buildMetaBlock_kMaxNumberOfHistograms, mb.distance_histograms, &mb.distance_histograms_size, mb.distance_context_map) - distance_histograms = nil -} - -const maxStaticContexts = 13 - -/* Greedy block splitter for one block category (literal, command or distance). - Gathers histograms for all context buckets. */ -type contextBlockSplitter struct { - alphabet_size_ uint - num_contexts_ uint - max_block_types_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramLiteral - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2 * maxStaticContexts]float64 - merge_last_count_ uint -} - -func initContextBlockSplitter(self *contextBlockSplitter, alphabet_size uint, num_contexts uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramLiteral, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint - assert(num_contexts <= maxStaticContexts) - - self.alphabet_size_ = alphabet_size - self.num_contexts_ = num_contexts - self.max_block_types_ = maxNumberOfBlockTypes / num_contexts - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - max_num_types = brotli_min_size_t(max_num_blocks, self.max_block_types_+1) - - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - split.num_blocks = max_num_blocks - *histograms_size = max_num_types * num_contexts - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramLiteral, (*histograms_size)) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - clearHistogramsLiteral(self.histograms_[0:], num_contexts) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* Does either of three things: - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. */ -func contextBlockSplitterFinishBlock(self *contextBlockSplitter, is_final bool) { - var split *blockSplit = self.split_ - var num_contexts uint = self.num_contexts_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramLiteral = self.histograms_ - - if self.block_size_ < self.min_block_size_ { - self.block_size_ = self.min_block_size_ - } - - if self.num_blocks_ == 0 { - var i uint - - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - - for i = 0; i < num_contexts; i++ { - last_entropy[i] = bitsEntropy(histograms[i].data_[:], self.alphabet_size_) - last_entropy[num_contexts+i] = last_entropy[i] - } - - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_ += num_contexts - if self.curr_histogram_ix_ < *self.histograms_size_ { - clearHistogramsLiteral(self.histograms_[self.curr_histogram_ix_:], self.num_contexts_) - } - - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy [maxStaticContexts]float64 - var combined_histo []histogramLiteral = make([]histogramLiteral, (2 * num_contexts)) - var combined_entropy [2 * maxStaticContexts]float64 - var diff = [2]float64{0.0} - /* Try merging the set of histograms for the current block type with the - respective set of histograms for the last and second last block types. - Decide over the split based on the total reduction of entropy across - all contexts. */ - - var i uint - for i = 0; i < num_contexts; i++ { - var curr_histo_ix uint = self.curr_histogram_ix_ + i - var j uint - entropy[i] = bitsEntropy(histograms[curr_histo_ix].data_[:], self.alphabet_size_) - for j = 0; j < 2; j++ { - var jx uint = j*num_contexts + i - var last_histogram_ix uint = self.last_histogram_ix_[j] + i - combined_histo[jx] = histograms[curr_histo_ix] - histogramAddHistogramLiteral(&combined_histo[jx], &histograms[last_histogram_ix]) - combined_entropy[jx] = bitsEntropy(combined_histo[jx].data_[0:], self.alphabet_size_) - diff[j] += combined_entropy[jx] - entropy[i] - last_entropy[jx] - } - } - - if split.num_types < self.max_block_types_ && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = split.num_types * num_contexts - for i = 0; i < num_contexts; i++ { - last_entropy[num_contexts+i] = last_entropy[i] - last_entropy[i] = entropy[i] - } - - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_ += num_contexts - if self.curr_histogram_ix_ < *self.histograms_size_ { - clearHistogramsLiteral(self.histograms_[self.curr_histogram_ix_:], self.num_contexts_) - } - - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - for i = 0; i < num_contexts; i++ { - histograms[self.last_histogram_ix_[0]+i] = combined_histo[num_contexts+i] - last_entropy[num_contexts+i] = last_entropy[i] - last_entropy[i] = combined_entropy[num_contexts+i] - histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) - } - - self.num_blocks_++ - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - for i = 0; i < num_contexts; i++ { - histograms[self.last_histogram_ix_[0]+i] = combined_histo[i] - last_entropy[i] = combined_entropy[i] - if split.num_types == 1 { - last_entropy[num_contexts+i] = last_entropy[i] - } - - histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) - } - - self.block_size_ = 0 - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - - combined_histo = nil - } - - if is_final { - *self.histograms_size_ = split.num_types * num_contexts - split.num_blocks = self.num_blocks_ - } -} - -/* Adds the next symbol to the current block type and context. When the - current block reaches the target size, decides on merging the block. */ -func contextBlockSplitterAddSymbol(self *contextBlockSplitter, symbol uint, context uint) { - histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_+context], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - contextBlockSplitterFinishBlock(self, false) /* is_final = */ - } -} - -func mapStaticContexts(num_contexts uint, static_context_map []uint32, mb *metaBlockSplit) { - var i uint - mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits - if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { - mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) - } else { - mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] - } - - for i = 0; i < mb.literal_split.num_types; i++ { - var offset uint32 = uint32(i * num_contexts) - var j uint - for j = 0; j < 1<<literalContextBits; j++ { - mb.literal_context_map[(i<<literalContextBits)+j] = offset + static_context_map[j] - } - } -} - -func buildMetaBlockGreedyInternal(ringbuffer []byte, pos uint, mask uint, prev_byte byte, prev_byte2 byte, literal_context_lut contextLUT, num_contexts uint, static_context_map []uint32, commands []command, mb *metaBlockSplit) { - var lit_blocks struct { - plain blockSplitterLiteral - ctx contextBlockSplitter - } - var cmd_blocks blockSplitterCommand - var dist_blocks blockSplitterDistance - var num_literals uint = 0 - for i := range commands { - num_literals += uint(commands[i].insert_len_) - } - - if num_contexts == 1 { - initBlockSplitterLiteral(&lit_blocks.plain, 256, 512, 400.0, num_literals, &mb.literal_split, &mb.literal_histograms, &mb.literal_histograms_size) - } else { - initContextBlockSplitter(&lit_blocks.ctx, 256, num_contexts, 512, 400.0, num_literals, &mb.literal_split, &mb.literal_histograms, &mb.literal_histograms_size) - } - - initBlockSplitterCommand(&cmd_blocks, numCommandSymbols, 1024, 500.0, uint(len(commands)), &mb.command_split, &mb.command_histograms, &mb.command_histograms_size) - initBlockSplitterDistance(&dist_blocks, 64, 512, 100.0, uint(len(commands)), &mb.distance_split, &mb.distance_histograms, &mb.distance_histograms_size) - - for _, cmd := range commands { - var j uint - blockSplitterAddSymbolCommand(&cmd_blocks, uint(cmd.cmd_prefix_)) - for j = uint(cmd.insert_len_); j != 0; j-- { - var literal byte = ringbuffer[pos&mask] - if num_contexts == 1 { - blockSplitterAddSymbolLiteral(&lit_blocks.plain, uint(literal)) - } else { - var context uint = uint(getContext(prev_byte, prev_byte2, literal_context_lut)) - contextBlockSplitterAddSymbol(&lit_blocks.ctx, uint(literal), uint(static_context_map[context])) - } - - prev_byte2 = prev_byte - prev_byte = literal - pos++ - } - - pos += uint(commandCopyLen(&cmd)) - if commandCopyLen(&cmd) != 0 { - prev_byte2 = ringbuffer[(pos-2)&mask] - prev_byte = ringbuffer[(pos-1)&mask] - if cmd.cmd_prefix_ >= 128 { - blockSplitterAddSymbolDistance(&dist_blocks, uint(cmd.dist_prefix_)&0x3FF) - } - } - } - - if num_contexts == 1 { - blockSplitterFinishBlockLiteral(&lit_blocks.plain, true) /* is_final = */ - } else { - contextBlockSplitterFinishBlock(&lit_blocks.ctx, true) /* is_final = */ - } - - blockSplitterFinishBlockCommand(&cmd_blocks, true) /* is_final = */ - blockSplitterFinishBlockDistance(&dist_blocks, true) /* is_final = */ - - if num_contexts > 1 { - mapStaticContexts(num_contexts, static_context_map, mb) - } -} - -func buildMetaBlockGreedy(ringbuffer []byte, pos uint, mask uint, prev_byte byte, prev_byte2 byte, literal_context_lut contextLUT, num_contexts uint, static_context_map []uint32, commands []command, mb *metaBlockSplit) { - if num_contexts == 1 { - buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, 1, nil, commands, mb) - } else { - buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, num_contexts, static_context_map, commands, mb) - } -} - -func optimizeHistograms(num_distance_codes uint32, mb *metaBlockSplit) { - var good_for_rle [numCommandSymbols]byte - var i uint - for i = 0; i < mb.literal_histograms_size; i++ { - optimizeHuffmanCountsForRLE(256, mb.literal_histograms[i].data_[:], good_for_rle[:]) - } - - for i = 0; i < mb.command_histograms_size; i++ { - optimizeHuffmanCountsForRLE(numCommandSymbols, mb.command_histograms[i].data_[:], good_for_rle[:]) - } - - for i = 0; i < mb.distance_histograms_size; i++ { - optimizeHuffmanCountsForRLE(uint(num_distance_codes), mb.distance_histograms[i].data_[:], good_for_rle[:]) - } -} diff --git a/vendor/github.com/andybalholm/brotli/metablock_command.go b/vendor/github.com/andybalholm/brotli/metablock_command.go deleted file mode 100644 index 14c7b77..0000000 --- a/vendor/github.com/andybalholm/brotli/metablock_command.go +++ /dev/null @@ -1,165 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterCommand struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramCommand - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterCommand(self *blockSplitterCommand, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramCommand, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramCommand, (*histograms_size)) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearCommand(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* Does either of three things: - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. */ -func blockSplitterFinishBlockCommand(self *blockSplitterCommand, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramCommand = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramCommand - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramCommand(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearCommand(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* Adds the next symbol to the current histogram. When the current histogram - reaches the target size, decides on merging the block. */ -func blockSplitterAddSymbolCommand(self *blockSplitterCommand, symbol uint) { - histogramAddCommand(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockCommand(self, false) /* is_final = */ - } -} diff --git a/vendor/github.com/andybalholm/brotli/metablock_distance.go b/vendor/github.com/andybalholm/brotli/metablock_distance.go deleted file mode 100644 index 5110a81..0000000 --- a/vendor/github.com/andybalholm/brotli/metablock_distance.go +++ /dev/null @@ -1,165 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterDistance struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramDistance - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterDistance(self *blockSplitterDistance, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramDistance, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramDistance, *histograms_size) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearDistance(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* Does either of three things: - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. */ -func blockSplitterFinishBlockDistance(self *blockSplitterDistance, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramDistance = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramDistance - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramDistance(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearDistance(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* Adds the next symbol to the current histogram. When the current histogram - reaches the target size, decides on merging the block. */ -func blockSplitterAddSymbolDistance(self *blockSplitterDistance, symbol uint) { - histogramAddDistance(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockDistance(self, false) /* is_final = */ - } -} diff --git a/vendor/github.com/andybalholm/brotli/metablock_literal.go b/vendor/github.com/andybalholm/brotli/metablock_literal.go deleted file mode 100644 index 307f8da..0000000 --- a/vendor/github.com/andybalholm/brotli/metablock_literal.go +++ /dev/null @@ -1,165 +0,0 @@ -package brotli - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Greedy block splitter for one block category (literal, command or distance). - */ -type blockSplitterLiteral struct { - alphabet_size_ uint - min_block_size_ uint - split_threshold_ float64 - num_blocks_ uint - split_ *blockSplit - histograms_ []histogramLiteral - histograms_size_ *uint - target_block_size_ uint - block_size_ uint - curr_histogram_ix_ uint - last_histogram_ix_ [2]uint - last_entropy_ [2]float64 - merge_last_count_ uint -} - -func initBlockSplitterLiteral(self *blockSplitterLiteral, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramLiteral, histograms_size *uint) { - var max_num_blocks uint = num_symbols/min_block_size + 1 - var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) - /* We have to allocate one more histogram than the maximum number of block - types for the current histogram when the meta-block is too big. */ - self.alphabet_size_ = alphabet_size - - self.min_block_size_ = min_block_size - self.split_threshold_ = split_threshold - self.num_blocks_ = 0 - self.split_ = split - self.histograms_size_ = histograms_size - self.target_block_size_ = min_block_size - self.block_size_ = 0 - self.curr_histogram_ix_ = 0 - self.merge_last_count_ = 0 - brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) - brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) - self.split_.num_blocks = max_num_blocks - *histograms_size = max_num_types - if histograms == nil || cap(*histograms) < int(*histograms_size) { - *histograms = make([]histogramLiteral, *histograms_size) - } else { - *histograms = (*histograms)[:*histograms_size] - } - self.histograms_ = *histograms - - /* Clear only current histogram. */ - histogramClearLiteral(&self.histograms_[0]) - - self.last_histogram_ix_[1] = 0 - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] -} - -/* Does either of three things: - (1) emits the current block with a new block type; - (2) emits the current block with the type of the second last block; - (3) merges the current block with the last block. */ -func blockSplitterFinishBlockLiteral(self *blockSplitterLiteral, is_final bool) { - var split *blockSplit = self.split_ - var last_entropy []float64 = self.last_entropy_[:] - var histograms []histogramLiteral = self.histograms_ - self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) - if self.num_blocks_ == 0 { - /* Create first block. */ - split.lengths[0] = uint32(self.block_size_) - - split.types[0] = 0 - last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) - last_entropy[1] = last_entropy[0] - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - } else if self.block_size_ > 0 { - var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) - var combined_histo [2]histogramLiteral - var combined_entropy [2]float64 - var diff [2]float64 - var j uint - for j = 0; j < 2; j++ { - var last_histogram_ix uint = self.last_histogram_ix_[j] - combined_histo[j] = histograms[self.curr_histogram_ix_] - histogramAddHistogramLiteral(&combined_histo[j], &histograms[last_histogram_ix]) - combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) - diff[j] = combined_entropy[j] - entropy - last_entropy[j] - } - - if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { - /* Create new block. */ - split.lengths[self.num_blocks_] = uint32(self.block_size_) - - split.types[self.num_blocks_] = byte(split.num_types) - self.last_histogram_ix_[1] = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = uint(byte(split.num_types)) - last_entropy[1] = last_entropy[0] - last_entropy[0] = entropy - self.num_blocks_++ - split.num_types++ - self.curr_histogram_ix_++ - if self.curr_histogram_ix_ < *self.histograms_size_ { - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - } - self.block_size_ = 0 - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else if diff[1] < diff[0]-20.0 { - split.lengths[self.num_blocks_] = uint32(self.block_size_) - split.types[self.num_blocks_] = split.types[self.num_blocks_-2] - /* Combine this block with second last block. */ - - var tmp uint = self.last_histogram_ix_[0] - self.last_histogram_ix_[0] = self.last_histogram_ix_[1] - self.last_histogram_ix_[1] = tmp - histograms[self.last_histogram_ix_[0]] = combined_histo[1] - last_entropy[1] = last_entropy[0] - last_entropy[0] = combined_entropy[1] - self.num_blocks_++ - self.block_size_ = 0 - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_ = 0 - self.target_block_size_ = self.min_block_size_ - } else { - /* Combine this block with last block. */ - split.lengths[self.num_blocks_-1] += uint32(self.block_size_) - - histograms[self.last_histogram_ix_[0]] = combined_histo[0] - last_entropy[0] = combined_entropy[0] - if split.num_types == 1 { - last_entropy[1] = last_entropy[0] - } - - self.block_size_ = 0 - histogramClearLiteral(&histograms[self.curr_histogram_ix_]) - self.merge_last_count_++ - if self.merge_last_count_ > 1 { - self.target_block_size_ += self.min_block_size_ - } - } - } - - if is_final { - *self.histograms_size_ = split.num_types - split.num_blocks = self.num_blocks_ - } -} - -/* Adds the next symbol to the current histogram. When the current histogram - reaches the target size, decides on merging the block. */ -func blockSplitterAddSymbolLiteral(self *blockSplitterLiteral, symbol uint) { - histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_], symbol) - self.block_size_++ - if self.block_size_ == self.target_block_size_ { - blockSplitterFinishBlockLiteral(self, false) /* is_final = */ - } -} diff --git a/vendor/github.com/andybalholm/brotli/params.go b/vendor/github.com/andybalholm/brotli/params.go deleted file mode 100644 index 0a4c687..0000000 --- a/vendor/github.com/andybalholm/brotli/params.go +++ /dev/null @@ -1,37 +0,0 @@ -package brotli - -/* Copyright 2017 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Parameters for the Brotli encoder with chosen quality levels. */ -type hasherParams struct { - type_ int - bucket_bits int - block_bits int - hash_len int - num_last_distances_to_check int -} - -type distanceParams struct { - distance_postfix_bits uint32 - num_direct_distance_codes uint32 - alphabet_size uint32 - max_distance uint -} - -/* Encoding parameters */ -type encoderParams struct { - mode int - quality int - lgwin uint - lgblock int - size_hint uint - disable_literal_context_modeling bool - large_window bool - hasher hasherParams - dist distanceParams - dictionary encoderDictionary -} diff --git a/vendor/github.com/andybalholm/brotli/platform.go b/vendor/github.com/andybalholm/brotli/platform.go deleted file mode 100644 index 4ebfb15..0000000 --- a/vendor/github.com/andybalholm/brotli/platform.go +++ /dev/null @@ -1,103 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -func brotli_min_double(a float64, b float64) float64 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_double(a float64, b float64) float64 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_float(a float32, b float32) float32 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_float(a float32, b float32) float32 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_int(a int, b int) int { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_int(a int, b int) int { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_size_t(a uint, b uint) uint { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_size_t(a uint, b uint) uint { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_uint32_t(a uint32, b uint32) uint32 { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_uint32_t(a uint32, b uint32) uint32 { - if a > b { - return a - } else { - return b - } -} - -func brotli_min_uint8_t(a byte, b byte) byte { - if a < b { - return a - } else { - return b - } -} - -func brotli_max_uint8_t(a byte, b byte) byte { - if a > b { - return a - } else { - return b - } -} diff --git a/vendor/github.com/andybalholm/brotli/prefix.go b/vendor/github.com/andybalholm/brotli/prefix.go deleted file mode 100644 index 484df0d..0000000 --- a/vendor/github.com/andybalholm/brotli/prefix.go +++ /dev/null @@ -1,30 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Functions for encoding of integers into prefix codes the amount of extra - bits, and the actual values of the extra bits. */ - -/* Here distance_code is an intermediate code, i.e. one of the special codes or - the actual distance increased by BROTLI_NUM_DISTANCE_SHORT_CODES - 1. */ -func prefixEncodeCopyDistance(distance_code uint, num_direct_codes uint, postfix_bits uint, code *uint16, extra_bits *uint32) { - if distance_code < numDistanceShortCodes+num_direct_codes { - *code = uint16(distance_code) - *extra_bits = 0 - return - } else { - var dist uint = (uint(1) << (postfix_bits + 2)) + (distance_code - numDistanceShortCodes - num_direct_codes) - var bucket uint = uint(log2FloorNonZero(dist) - 1) - var postfix_mask uint = (1 << postfix_bits) - 1 - var postfix uint = dist & postfix_mask - var prefix uint = (dist >> bucket) & 1 - var offset uint = (2 + prefix) << bucket - var nbits uint = bucket - postfix_bits - *code = uint16(nbits<<10 | (numDistanceShortCodes + num_direct_codes + ((2*(nbits-1) + prefix) << postfix_bits) + postfix)) - *extra_bits = uint32((dist - offset) >> postfix_bits) - } -} diff --git a/vendor/github.com/andybalholm/brotli/prefix_dec.go b/vendor/github.com/andybalholm/brotli/prefix_dec.go deleted file mode 100644 index 183f0d5..0000000 --- a/vendor/github.com/andybalholm/brotli/prefix_dec.go +++ /dev/null @@ -1,723 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -type cmdLutElement struct { - insert_len_extra_bits byte - copy_len_extra_bits byte - distance_code int8 - context byte - insert_len_offset uint16 - copy_len_offset uint16 -} - -var kCmdLut = [numCommandSymbols]cmdLutElement{ - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0000, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0000, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0000, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0001, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0001, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0001, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0002, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0002, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0002, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0003, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0003, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0003, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0004, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0004, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0004, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0009}, - cmdLutElement{0x00, 0x00, 0, 0x00, 0x0005, 0x0002}, - cmdLutElement{0x00, 0x00, 0, 0x01, 0x0005, 0x0003}, - cmdLutElement{0x00, 0x00, 0, 0x02, 0x0005, 0x0004}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0005}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0006}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0007}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0008}, - cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0009}, - cmdLutElement{0x01, 0x00, 0, 0x00, 0x0006, 0x0002}, - cmdLutElement{0x01, 0x00, 0, 0x01, 0x0006, 0x0003}, - cmdLutElement{0x01, 0x00, 0, 0x02, 0x0006, 0x0004}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0005}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0006}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0007}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0008}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0009}, - cmdLutElement{0x01, 0x00, 0, 0x00, 0x0008, 0x0002}, - cmdLutElement{0x01, 0x00, 0, 0x01, 0x0008, 0x0003}, - cmdLutElement{0x01, 0x00, 0, 0x02, 0x0008, 0x0004}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0005}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0006}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0007}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0008}, - cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0009}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0036}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000a}, - cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000c}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x000e}, - cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x0012}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x0016}, - cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x001e}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0026}, - cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0036}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000a}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000c}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x000e}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x0012}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x0016}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x001e}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0026}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0036}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000a}, - cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000c}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x000e}, - cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x0012}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x0016}, - cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x001e}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0026}, - cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0036}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0000, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0000, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0000, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0001, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0001, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0001, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0002, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0002, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0002, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0003, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0003, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0003, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0004, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0004, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0004, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0009}, - cmdLutElement{0x00, 0x00, -1, 0x00, 0x0005, 0x0002}, - cmdLutElement{0x00, 0x00, -1, 0x01, 0x0005, 0x0003}, - cmdLutElement{0x00, 0x00, -1, 0x02, 0x0005, 0x0004}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0005}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0006}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0007}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0008}, - cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0009}, - cmdLutElement{0x01, 0x00, -1, 0x00, 0x0006, 0x0002}, - cmdLutElement{0x01, 0x00, -1, 0x01, 0x0006, 0x0003}, - cmdLutElement{0x01, 0x00, -1, 0x02, 0x0006, 0x0004}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0005}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0006}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0007}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0008}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0009}, - cmdLutElement{0x01, 0x00, -1, 0x00, 0x0008, 0x0002}, - cmdLutElement{0x01, 0x00, -1, 0x01, 0x0008, 0x0003}, - cmdLutElement{0x01, 0x00, -1, 0x02, 0x0008, 0x0004}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0005}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0006}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0007}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0008}, - cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0009}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0036}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000a}, - cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000c}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x000e}, - cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x0012}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x0016}, - cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x001e}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0026}, - cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0036}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000a}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000c}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x000e}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x0012}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x0016}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x001e}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0026}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0036}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000a}, - cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000c}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x000e}, - cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x0012}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x0016}, - cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x001e}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0026}, - cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0036}, - cmdLutElement{0x02, 0x00, -1, 0x00, 0x000a, 0x0002}, - cmdLutElement{0x02, 0x00, -1, 0x01, 0x000a, 0x0003}, - cmdLutElement{0x02, 0x00, -1, 0x02, 0x000a, 0x0004}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0005}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0006}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0007}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0008}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0009}, - cmdLutElement{0x02, 0x00, -1, 0x00, 0x000e, 0x0002}, - cmdLutElement{0x02, 0x00, -1, 0x01, 0x000e, 0x0003}, - cmdLutElement{0x02, 0x00, -1, 0x02, 0x000e, 0x0004}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0005}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0006}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0007}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0008}, - cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0009}, - cmdLutElement{0x03, 0x00, -1, 0x00, 0x0012, 0x0002}, - cmdLutElement{0x03, 0x00, -1, 0x01, 0x0012, 0x0003}, - cmdLutElement{0x03, 0x00, -1, 0x02, 0x0012, 0x0004}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0005}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0006}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0007}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0008}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0009}, - cmdLutElement{0x03, 0x00, -1, 0x00, 0x001a, 0x0002}, - cmdLutElement{0x03, 0x00, -1, 0x01, 0x001a, 0x0003}, - cmdLutElement{0x03, 0x00, -1, 0x02, 0x001a, 0x0004}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0005}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0006}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0007}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0008}, - cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0009}, - cmdLutElement{0x04, 0x00, -1, 0x00, 0x0022, 0x0002}, - cmdLutElement{0x04, 0x00, -1, 0x01, 0x0022, 0x0003}, - cmdLutElement{0x04, 0x00, -1, 0x02, 0x0022, 0x0004}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0005}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0006}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0007}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0008}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0009}, - cmdLutElement{0x04, 0x00, -1, 0x00, 0x0032, 0x0002}, - cmdLutElement{0x04, 0x00, -1, 0x01, 0x0032, 0x0003}, - cmdLutElement{0x04, 0x00, -1, 0x02, 0x0032, 0x0004}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0005}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0006}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0007}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0008}, - cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0009}, - cmdLutElement{0x05, 0x00, -1, 0x00, 0x0042, 0x0002}, - cmdLutElement{0x05, 0x00, -1, 0x01, 0x0042, 0x0003}, - cmdLutElement{0x05, 0x00, -1, 0x02, 0x0042, 0x0004}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0005}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0006}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0007}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0008}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0009}, - cmdLutElement{0x05, 0x00, -1, 0x00, 0x0062, 0x0002}, - cmdLutElement{0x05, 0x00, -1, 0x01, 0x0062, 0x0003}, - cmdLutElement{0x05, 0x00, -1, 0x02, 0x0062, 0x0004}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0005}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0006}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0007}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0008}, - cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0009}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000a}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000c}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x000e}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x0012}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x0016}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x001e}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0026}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0036}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000a}, - cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000c}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x000e}, - cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x0012}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x0016}, - cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x001e}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0026}, - cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0036}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000a}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000c}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x000e}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x0012}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x0016}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x001e}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0026}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0036}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000a}, - cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000c}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x000e}, - cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x0012}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x0016}, - cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x001e}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0026}, - cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0036}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000a}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000c}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x000e}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x0012}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x0016}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x001e}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0026}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0036}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000a}, - cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000c}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x000e}, - cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x0012}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x0016}, - cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x001e}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0026}, - cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0036}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000a}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000c}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x000e}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x0012}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x0016}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x001e}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0026}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0036}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000a}, - cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000c}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x000e}, - cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x0012}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x0016}, - cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x001e}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0026}, - cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0036}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0000, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0000, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0000, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0000, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0000, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0000, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0001, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0001, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0001, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0001, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0001, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0001, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0002, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0002, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0002, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0002, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0002, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0002, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0003, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0003, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0003, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0003, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0003, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0003, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0004, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0004, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0004, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0004, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0004, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0004, 0x0846}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0046}, - cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0066}, - cmdLutElement{0x00, 0x06, -1, 0x03, 0x0005, 0x0086}, - cmdLutElement{0x00, 0x07, -1, 0x03, 0x0005, 0x00c6}, - cmdLutElement{0x00, 0x08, -1, 0x03, 0x0005, 0x0146}, - cmdLutElement{0x00, 0x09, -1, 0x03, 0x0005, 0x0246}, - cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0005, 0x0446}, - cmdLutElement{0x00, 0x18, -1, 0x03, 0x0005, 0x0846}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0046}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0066}, - cmdLutElement{0x01, 0x06, -1, 0x03, 0x0006, 0x0086}, - cmdLutElement{0x01, 0x07, -1, 0x03, 0x0006, 0x00c6}, - cmdLutElement{0x01, 0x08, -1, 0x03, 0x0006, 0x0146}, - cmdLutElement{0x01, 0x09, -1, 0x03, 0x0006, 0x0246}, - cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0006, 0x0446}, - cmdLutElement{0x01, 0x18, -1, 0x03, 0x0006, 0x0846}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0046}, - cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0066}, - cmdLutElement{0x01, 0x06, -1, 0x03, 0x0008, 0x0086}, - cmdLutElement{0x01, 0x07, -1, 0x03, 0x0008, 0x00c6}, - cmdLutElement{0x01, 0x08, -1, 0x03, 0x0008, 0x0146}, - cmdLutElement{0x01, 0x09, -1, 0x03, 0x0008, 0x0246}, - cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0008, 0x0446}, - cmdLutElement{0x01, 0x18, -1, 0x03, 0x0008, 0x0846}, - cmdLutElement{0x06, 0x00, -1, 0x00, 0x0082, 0x0002}, - cmdLutElement{0x06, 0x00, -1, 0x01, 0x0082, 0x0003}, - cmdLutElement{0x06, 0x00, -1, 0x02, 0x0082, 0x0004}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0005}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0006}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0007}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0008}, - cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0009}, - cmdLutElement{0x07, 0x00, -1, 0x00, 0x00c2, 0x0002}, - cmdLutElement{0x07, 0x00, -1, 0x01, 0x00c2, 0x0003}, - cmdLutElement{0x07, 0x00, -1, 0x02, 0x00c2, 0x0004}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0005}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0006}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0007}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0008}, - cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0009}, - cmdLutElement{0x08, 0x00, -1, 0x00, 0x0142, 0x0002}, - cmdLutElement{0x08, 0x00, -1, 0x01, 0x0142, 0x0003}, - cmdLutElement{0x08, 0x00, -1, 0x02, 0x0142, 0x0004}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0005}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0006}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0007}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0008}, - cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0009}, - cmdLutElement{0x09, 0x00, -1, 0x00, 0x0242, 0x0002}, - cmdLutElement{0x09, 0x00, -1, 0x01, 0x0242, 0x0003}, - cmdLutElement{0x09, 0x00, -1, 0x02, 0x0242, 0x0004}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0005}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0006}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0007}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0008}, - cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0009}, - cmdLutElement{0x0a, 0x00, -1, 0x00, 0x0442, 0x0002}, - cmdLutElement{0x0a, 0x00, -1, 0x01, 0x0442, 0x0003}, - cmdLutElement{0x0a, 0x00, -1, 0x02, 0x0442, 0x0004}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0005}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0006}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0007}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0008}, - cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0009}, - cmdLutElement{0x0c, 0x00, -1, 0x00, 0x0842, 0x0002}, - cmdLutElement{0x0c, 0x00, -1, 0x01, 0x0842, 0x0003}, - cmdLutElement{0x0c, 0x00, -1, 0x02, 0x0842, 0x0004}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0005}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0006}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0007}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0008}, - cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0009}, - cmdLutElement{0x0e, 0x00, -1, 0x00, 0x1842, 0x0002}, - cmdLutElement{0x0e, 0x00, -1, 0x01, 0x1842, 0x0003}, - cmdLutElement{0x0e, 0x00, -1, 0x02, 0x1842, 0x0004}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0005}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0006}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0007}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0008}, - cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0009}, - cmdLutElement{0x18, 0x00, -1, 0x00, 0x5842, 0x0002}, - cmdLutElement{0x18, 0x00, -1, 0x01, 0x5842, 0x0003}, - cmdLutElement{0x18, 0x00, -1, 0x02, 0x5842, 0x0004}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0005}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0006}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0007}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0008}, - cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0009}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0046}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0066}, - cmdLutElement{0x02, 0x06, -1, 0x03, 0x000a, 0x0086}, - cmdLutElement{0x02, 0x07, -1, 0x03, 0x000a, 0x00c6}, - cmdLutElement{0x02, 0x08, -1, 0x03, 0x000a, 0x0146}, - cmdLutElement{0x02, 0x09, -1, 0x03, 0x000a, 0x0246}, - cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000a, 0x0446}, - cmdLutElement{0x02, 0x18, -1, 0x03, 0x000a, 0x0846}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0046}, - cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0066}, - cmdLutElement{0x02, 0x06, -1, 0x03, 0x000e, 0x0086}, - cmdLutElement{0x02, 0x07, -1, 0x03, 0x000e, 0x00c6}, - cmdLutElement{0x02, 0x08, -1, 0x03, 0x000e, 0x0146}, - cmdLutElement{0x02, 0x09, -1, 0x03, 0x000e, 0x0246}, - cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000e, 0x0446}, - cmdLutElement{0x02, 0x18, -1, 0x03, 0x000e, 0x0846}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0046}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0066}, - cmdLutElement{0x03, 0x06, -1, 0x03, 0x0012, 0x0086}, - cmdLutElement{0x03, 0x07, -1, 0x03, 0x0012, 0x00c6}, - cmdLutElement{0x03, 0x08, -1, 0x03, 0x0012, 0x0146}, - cmdLutElement{0x03, 0x09, -1, 0x03, 0x0012, 0x0246}, - cmdLutElement{0x03, 0x0a, -1, 0x03, 0x0012, 0x0446}, - cmdLutElement{0x03, 0x18, -1, 0x03, 0x0012, 0x0846}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0046}, - cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0066}, - cmdLutElement{0x03, 0x06, -1, 0x03, 0x001a, 0x0086}, - cmdLutElement{0x03, 0x07, -1, 0x03, 0x001a, 0x00c6}, - cmdLutElement{0x03, 0x08, -1, 0x03, 0x001a, 0x0146}, - cmdLutElement{0x03, 0x09, -1, 0x03, 0x001a, 0x0246}, - cmdLutElement{0x03, 0x0a, -1, 0x03, 0x001a, 0x0446}, - cmdLutElement{0x03, 0x18, -1, 0x03, 0x001a, 0x0846}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0046}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0066}, - cmdLutElement{0x04, 0x06, -1, 0x03, 0x0022, 0x0086}, - cmdLutElement{0x04, 0x07, -1, 0x03, 0x0022, 0x00c6}, - cmdLutElement{0x04, 0x08, -1, 0x03, 0x0022, 0x0146}, - cmdLutElement{0x04, 0x09, -1, 0x03, 0x0022, 0x0246}, - cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0022, 0x0446}, - cmdLutElement{0x04, 0x18, -1, 0x03, 0x0022, 0x0846}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0046}, - cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0066}, - cmdLutElement{0x04, 0x06, -1, 0x03, 0x0032, 0x0086}, - cmdLutElement{0x04, 0x07, -1, 0x03, 0x0032, 0x00c6}, - cmdLutElement{0x04, 0x08, -1, 0x03, 0x0032, 0x0146}, - cmdLutElement{0x04, 0x09, -1, 0x03, 0x0032, 0x0246}, - cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0032, 0x0446}, - cmdLutElement{0x04, 0x18, -1, 0x03, 0x0032, 0x0846}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0046}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0066}, - cmdLutElement{0x05, 0x06, -1, 0x03, 0x0042, 0x0086}, - cmdLutElement{0x05, 0x07, -1, 0x03, 0x0042, 0x00c6}, - cmdLutElement{0x05, 0x08, -1, 0x03, 0x0042, 0x0146}, - cmdLutElement{0x05, 0x09, -1, 0x03, 0x0042, 0x0246}, - cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0042, 0x0446}, - cmdLutElement{0x05, 0x18, -1, 0x03, 0x0042, 0x0846}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0046}, - cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0066}, - cmdLutElement{0x05, 0x06, -1, 0x03, 0x0062, 0x0086}, - cmdLutElement{0x05, 0x07, -1, 0x03, 0x0062, 0x00c6}, - cmdLutElement{0x05, 0x08, -1, 0x03, 0x0062, 0x0146}, - cmdLutElement{0x05, 0x09, -1, 0x03, 0x0062, 0x0246}, - cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0062, 0x0446}, - cmdLutElement{0x05, 0x18, -1, 0x03, 0x0062, 0x0846}, - cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000a}, - cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000c}, - cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x000e}, - cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x0012}, - cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x0016}, - cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x001e}, - cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0026}, - cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0036}, - cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000a}, - cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000c}, - cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x000e}, - cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x0012}, - cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x0016}, - cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x001e}, - cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0026}, - cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0036}, - cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000a}, - cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000c}, - cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x000e}, - cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x0012}, - cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x0016}, - cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x001e}, - cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0026}, - cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0036}, - cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000a}, - cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000c}, - cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x000e}, - cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x0012}, - cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x0016}, - cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x001e}, - cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0026}, - cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0036}, - cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000a}, - cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000c}, - cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x000e}, - cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x0012}, - cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x0016}, - cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x001e}, - cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0026}, - cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0036}, - cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000a}, - cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000c}, - cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x000e}, - cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x0012}, - cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x0016}, - cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x001e}, - cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0026}, - cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0036}, - cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000a}, - cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000c}, - cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x000e}, - cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x0012}, - cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x0016}, - cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x001e}, - cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0026}, - cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0036}, - cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000a}, - cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000c}, - cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x000e}, - cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x0012}, - cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x0016}, - cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x001e}, - cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0026}, - cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0036}, - cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0046}, - cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0066}, - cmdLutElement{0x06, 0x06, -1, 0x03, 0x0082, 0x0086}, - cmdLutElement{0x06, 0x07, -1, 0x03, 0x0082, 0x00c6}, - cmdLutElement{0x06, 0x08, -1, 0x03, 0x0082, 0x0146}, - cmdLutElement{0x06, 0x09, -1, 0x03, 0x0082, 0x0246}, - cmdLutElement{0x06, 0x0a, -1, 0x03, 0x0082, 0x0446}, - cmdLutElement{0x06, 0x18, -1, 0x03, 0x0082, 0x0846}, - cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0046}, - cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0066}, - cmdLutElement{0x07, 0x06, -1, 0x03, 0x00c2, 0x0086}, - cmdLutElement{0x07, 0x07, -1, 0x03, 0x00c2, 0x00c6}, - cmdLutElement{0x07, 0x08, -1, 0x03, 0x00c2, 0x0146}, - cmdLutElement{0x07, 0x09, -1, 0x03, 0x00c2, 0x0246}, - cmdLutElement{0x07, 0x0a, -1, 0x03, 0x00c2, 0x0446}, - cmdLutElement{0x07, 0x18, -1, 0x03, 0x00c2, 0x0846}, - cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0046}, - cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0066}, - cmdLutElement{0x08, 0x06, -1, 0x03, 0x0142, 0x0086}, - cmdLutElement{0x08, 0x07, -1, 0x03, 0x0142, 0x00c6}, - cmdLutElement{0x08, 0x08, -1, 0x03, 0x0142, 0x0146}, - cmdLutElement{0x08, 0x09, -1, 0x03, 0x0142, 0x0246}, - cmdLutElement{0x08, 0x0a, -1, 0x03, 0x0142, 0x0446}, - cmdLutElement{0x08, 0x18, -1, 0x03, 0x0142, 0x0846}, - cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0046}, - cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0066}, - cmdLutElement{0x09, 0x06, -1, 0x03, 0x0242, 0x0086}, - cmdLutElement{0x09, 0x07, -1, 0x03, 0x0242, 0x00c6}, - cmdLutElement{0x09, 0x08, -1, 0x03, 0x0242, 0x0146}, - cmdLutElement{0x09, 0x09, -1, 0x03, 0x0242, 0x0246}, - cmdLutElement{0x09, 0x0a, -1, 0x03, 0x0242, 0x0446}, - cmdLutElement{0x09, 0x18, -1, 0x03, 0x0242, 0x0846}, - cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0046}, - cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0066}, - cmdLutElement{0x0a, 0x06, -1, 0x03, 0x0442, 0x0086}, - cmdLutElement{0x0a, 0x07, -1, 0x03, 0x0442, 0x00c6}, - cmdLutElement{0x0a, 0x08, -1, 0x03, 0x0442, 0x0146}, - cmdLutElement{0x0a, 0x09, -1, 0x03, 0x0442, 0x0246}, - cmdLutElement{0x0a, 0x0a, -1, 0x03, 0x0442, 0x0446}, - cmdLutElement{0x0a, 0x18, -1, 0x03, 0x0442, 0x0846}, - cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0046}, - cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0066}, - cmdLutElement{0x0c, 0x06, -1, 0x03, 0x0842, 0x0086}, - cmdLutElement{0x0c, 0x07, -1, 0x03, 0x0842, 0x00c6}, - cmdLutElement{0x0c, 0x08, -1, 0x03, 0x0842, 0x0146}, - cmdLutElement{0x0c, 0x09, -1, 0x03, 0x0842, 0x0246}, - cmdLutElement{0x0c, 0x0a, -1, 0x03, 0x0842, 0x0446}, - cmdLutElement{0x0c, 0x18, -1, 0x03, 0x0842, 0x0846}, - cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0046}, - cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0066}, - cmdLutElement{0x0e, 0x06, -1, 0x03, 0x1842, 0x0086}, - cmdLutElement{0x0e, 0x07, -1, 0x03, 0x1842, 0x00c6}, - cmdLutElement{0x0e, 0x08, -1, 0x03, 0x1842, 0x0146}, - cmdLutElement{0x0e, 0x09, -1, 0x03, 0x1842, 0x0246}, - cmdLutElement{0x0e, 0x0a, -1, 0x03, 0x1842, 0x0446}, - cmdLutElement{0x0e, 0x18, -1, 0x03, 0x1842, 0x0846}, - cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0046}, - cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0066}, - cmdLutElement{0x18, 0x06, -1, 0x03, 0x5842, 0x0086}, - cmdLutElement{0x18, 0x07, -1, 0x03, 0x5842, 0x00c6}, - cmdLutElement{0x18, 0x08, -1, 0x03, 0x5842, 0x0146}, - cmdLutElement{0x18, 0x09, -1, 0x03, 0x5842, 0x0246}, - cmdLutElement{0x18, 0x0a, -1, 0x03, 0x5842, 0x0446}, - cmdLutElement{0x18, 0x18, -1, 0x03, 0x5842, 0x0846}, -} diff --git a/vendor/github.com/andybalholm/brotli/quality.go b/vendor/github.com/andybalholm/brotli/quality.go deleted file mode 100644 index 49709a3..0000000 --- a/vendor/github.com/andybalholm/brotli/quality.go +++ /dev/null @@ -1,196 +0,0 @@ -package brotli - -const fastOnePassCompressionQuality = 0 - -const fastTwoPassCompressionQuality = 1 - -const zopflificationQuality = 10 - -const hqZopflificationQuality = 11 - -const maxQualityForStaticEntropyCodes = 2 - -const minQualityForBlockSplit = 4 - -const minQualityForNonzeroDistanceParams = 4 - -const minQualityForOptimizeHistograms = 4 - -const minQualityForExtensiveReferenceSearch = 5 - -const minQualityForContextModeling = 5 - -const minQualityForHqContextModeling = 7 - -const minQualityForHqBlockSplitting = 10 - -/* For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting, - so we buffer at most this much literals and commands. */ -const maxNumDelayedSymbols = 0x2FFF - -/* Returns hash-table size for quality levels 0 and 1. */ -func maxHashTableSize(quality int) uint { - if quality == fastOnePassCompressionQuality { - return 1 << 15 - } else { - return 1 << 17 - } -} - -/* The maximum length for which the zopflification uses distinct distances. */ -const maxZopfliLenQuality10 = 150 - -const maxZopfliLenQuality11 = 325 - -/* Do not thoroughly search when a long copy is found. */ -const longCopyQuickStep = 16384 - -func maxZopfliLen(params *encoderParams) uint { - if params.quality <= 10 { - return maxZopfliLenQuality10 - } else { - return maxZopfliLenQuality11 - } -} - -/* Number of best candidates to evaluate to expand Zopfli chain. */ -func maxZopfliCandidates(params *encoderParams) uint { - if params.quality <= 10 { - return 1 - } else { - return 5 - } -} - -func sanitizeParams(params *encoderParams) { - params.quality = brotli_min_int(maxQuality, brotli_max_int(minQuality, params.quality)) - if params.quality <= maxQualityForStaticEntropyCodes { - params.large_window = false - } - - if params.lgwin < minWindowBits { - params.lgwin = minWindowBits - } else { - var max_lgwin int - if params.large_window { - max_lgwin = largeMaxWindowBits - } else { - max_lgwin = maxWindowBits - } - if params.lgwin > uint(max_lgwin) { - params.lgwin = uint(max_lgwin) - } - } -} - -/* Returns optimized lg_block value. */ -func computeLgBlock(params *encoderParams) int { - var lgblock int = params.lgblock - if params.quality == fastOnePassCompressionQuality || params.quality == fastTwoPassCompressionQuality { - lgblock = int(params.lgwin) - } else if params.quality < minQualityForBlockSplit { - lgblock = 14 - } else if lgblock == 0 { - lgblock = 16 - if params.quality >= 9 && params.lgwin > uint(lgblock) { - lgblock = brotli_min_int(18, int(params.lgwin)) - } - } else { - lgblock = brotli_min_int(maxInputBlockBits, brotli_max_int(minInputBlockBits, lgblock)) - } - - return lgblock -} - -/* Returns log2 of the size of main ring buffer area. - Allocate at least lgwin + 1 bits for the ring buffer so that the newly - added block fits there completely and we still get lgwin bits and at least - read_block_size_bits + 1 bits because the copy tail length needs to be - smaller than ring-buffer size. */ -func computeRbBits(params *encoderParams) int { - return 1 + brotli_max_int(int(params.lgwin), params.lgblock) -} - -func maxMetablockSize(params *encoderParams) uint { - var bits int = brotli_min_int(computeRbBits(params), maxInputBlockBits) - return uint(1) << uint(bits) -} - -/* When searching for backward references and have not seen matches for a long - time, we can skip some match lookups. Unsuccessful match lookups are very - expensive and this kind of a heuristic speeds up compression quite a lot. - At first 8 byte strides are taken and every second byte is put to hasher. - After 4x more literals stride by 16 bytes, every put 4-th byte to hasher. - Applied only to qualities 2 to 9. */ -func literalSpreeLengthForSparseSearch(params *encoderParams) uint { - if params.quality < 9 { - return 64 - } else { - return 512 - } -} - -func chooseHasher(params *encoderParams, hparams *hasherParams) { - if params.quality > 9 { - hparams.type_ = 10 - } else if params.quality == 4 && params.size_hint >= 1<<20 { - hparams.type_ = 54 - } else if params.quality < 5 { - hparams.type_ = params.quality - } else if params.lgwin <= 16 { - if params.quality < 7 { - hparams.type_ = 40 - } else if params.quality < 9 { - hparams.type_ = 41 - } else { - hparams.type_ = 42 - } - } else if params.size_hint >= 1<<20 && params.lgwin >= 19 { - hparams.type_ = 6 - hparams.block_bits = params.quality - 1 - hparams.bucket_bits = 15 - hparams.hash_len = 5 - if params.quality < 7 { - hparams.num_last_distances_to_check = 4 - } else if params.quality < 9 { - hparams.num_last_distances_to_check = 10 - } else { - hparams.num_last_distances_to_check = 16 - } - } else { - hparams.type_ = 5 - hparams.block_bits = params.quality - 1 - if params.quality < 7 { - hparams.bucket_bits = 14 - } else { - hparams.bucket_bits = 15 - } - if params.quality < 7 { - hparams.num_last_distances_to_check = 4 - } else if params.quality < 9 { - hparams.num_last_distances_to_check = 10 - } else { - hparams.num_last_distances_to_check = 16 - } - } - - if params.lgwin > 24 { - /* Different hashers for large window brotli: not for qualities <= 2, - these are too fast for large window. Not for qualities >= 10: their - hasher already works well with large window. So the changes are: - H3 --> H35: for quality 3. - H54 --> H55: for quality 4 with size hint > 1MB - H6 --> H65: for qualities 5, 6, 7, 8, 9. */ - if hparams.type_ == 3 { - hparams.type_ = 35 - } - - if hparams.type_ == 54 { - hparams.type_ = 55 - } - - if hparams.type_ == 6 { - hparams.type_ = 65 - } - } -} diff --git a/vendor/github.com/andybalholm/brotli/reader.go b/vendor/github.com/andybalholm/brotli/reader.go deleted file mode 100644 index 9419c79..0000000 --- a/vendor/github.com/andybalholm/brotli/reader.go +++ /dev/null @@ -1,108 +0,0 @@ -package brotli - -import ( - "errors" - "io" -) - -type decodeError int - -func (err decodeError) Error() string { - return "brotli: " + string(decoderErrorString(int(err))) -} - -var errExcessiveInput = errors.New("brotli: excessive input") -var errInvalidState = errors.New("brotli: invalid state") - -// readBufSize is a "good" buffer size that avoids excessive round-trips -// between C and Go but doesn't waste too much memory on buffering. -// It is arbitrarily chosen to be equal to the constant used in io.Copy. -const readBufSize = 32 * 1024 - -// NewReader creates a new Reader reading the given reader. -func NewReader(src io.Reader) *Reader { - r := new(Reader) - r.Reset(src) - return r -} - -// Reset discards the Reader's state and makes it equivalent to the result of -// its original state from NewReader, but reading from src instead. -// This permits reusing a Reader rather than allocating a new one. -// Error is always nil -func (r *Reader) Reset(src io.Reader) error { - if r.error_code < 0 { - // There was an unrecoverable error, leaving the Reader's state - // undefined. Clear out everything but the buffer. - *r = Reader{buf: r.buf} - } - - decoderStateInit(r) - r.src = src - if r.buf == nil { - r.buf = make([]byte, readBufSize) - } - return nil -} - -func (r *Reader) Read(p []byte) (n int, err error) { - if !decoderHasMoreOutput(r) && len(r.in) == 0 { - m, readErr := r.src.Read(r.buf) - if m == 0 { - // If readErr is `nil`, we just proxy underlying stream behavior. - return 0, readErr - } - r.in = r.buf[:m] - } - - if len(p) == 0 { - return 0, nil - } - - for { - var written uint - in_len := uint(len(r.in)) - out_len := uint(len(p)) - in_remaining := in_len - out_remaining := out_len - result := decoderDecompressStream(r, &in_remaining, &r.in, &out_remaining, &p) - written = out_len - out_remaining - n = int(written) - - switch result { - case decoderResultSuccess: - if len(r.in) > 0 { - return n, errExcessiveInput - } - return n, nil - case decoderResultError: - return n, decodeError(decoderGetErrorCode(r)) - case decoderResultNeedsMoreOutput: - if n == 0 { - return 0, io.ErrShortBuffer - } - return n, nil - case decoderNeedsMoreInput: - } - - if len(r.in) != 0 { - return 0, errInvalidState - } - - // Calling r.src.Read may block. Don't block if we have data to return. - if n > 0 { - return n, nil - } - - // Top off the buffer. - encN, err := r.src.Read(r.buf) - if encN == 0 { - // Not enough data to complete decoding. - if err == io.EOF { - return 0, io.ErrUnexpectedEOF - } - return 0, err - } - r.in = r.buf[:encN] - } -} diff --git a/vendor/github.com/andybalholm/brotli/ringbuffer.go b/vendor/github.com/andybalholm/brotli/ringbuffer.go deleted file mode 100644 index 1c8f86f..0000000 --- a/vendor/github.com/andybalholm/brotli/ringbuffer.go +++ /dev/null @@ -1,134 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* A ringBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of - data in a circular manner: writing a byte writes it to: - `position() % (1 << window_bits)'. - For convenience, the ringBuffer array contains another copy of the - first `1 << tail_bits' bytes: - buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), - and another copy of the last two bytes: - buffer_[-1] == buffer_[(1 << window_bits) - 1] and - buffer_[-2] == buffer_[(1 << window_bits) - 2]. */ -type ringBuffer struct { - size_ uint32 - mask_ uint32 - tail_size_ uint32 - total_size_ uint32 - cur_size_ uint32 - pos_ uint32 - data_ []byte - buffer_ []byte -} - -func ringBufferInit(rb *ringBuffer) { - rb.pos_ = 0 -} - -func ringBufferSetup(params *encoderParams, rb *ringBuffer) { - var window_bits int = computeRbBits(params) - var tail_bits int = params.lgblock - *(*uint32)(&rb.size_) = 1 << uint(window_bits) - *(*uint32)(&rb.mask_) = (1 << uint(window_bits)) - 1 - *(*uint32)(&rb.tail_size_) = 1 << uint(tail_bits) - *(*uint32)(&rb.total_size_) = rb.size_ + rb.tail_size_ -} - -const kSlackForEightByteHashingEverywhere uint = 7 - -/* Allocates or re-allocates data_ to the given length + plus some slack - region before and after. Fills the slack regions with zeros. */ -func ringBufferInitBuffer(buflen uint32, rb *ringBuffer) { - var new_data []byte - var i uint - size := 2 + int(buflen) + int(kSlackForEightByteHashingEverywhere) - if cap(rb.data_) < size { - new_data = make([]byte, size) - } else { - new_data = rb.data_[:size] - } - if rb.data_ != nil { - copy(new_data, rb.data_[:2+rb.cur_size_+uint32(kSlackForEightByteHashingEverywhere)]) - } - - rb.data_ = new_data - rb.cur_size_ = buflen - rb.buffer_ = rb.data_[2:] - rb.data_[1] = 0 - rb.data_[0] = rb.data_[1] - for i = 0; i < kSlackForEightByteHashingEverywhere; i++ { - rb.buffer_[rb.cur_size_+uint32(i)] = 0 - } -} - -func ringBufferWriteTail(bytes []byte, n uint, rb *ringBuffer) { - var masked_pos uint = uint(rb.pos_ & rb.mask_) - if uint32(masked_pos) < rb.tail_size_ { - /* Just fill the tail buffer with the beginning data. */ - var p uint = uint(rb.size_ + uint32(masked_pos)) - copy(rb.buffer_[p:], bytes[:brotli_min_size_t(n, uint(rb.tail_size_-uint32(masked_pos)))]) - } -} - -/* Push bytes into the ring buffer. */ -func ringBufferWrite(bytes []byte, n uint, rb *ringBuffer) { - if rb.pos_ == 0 && uint32(n) < rb.tail_size_ { - /* Special case for the first write: to process the first block, we don't - need to allocate the whole ring-buffer and we don't need the tail - either. However, we do this memory usage optimization only if the - first write is less than the tail size, which is also the input block - size, otherwise it is likely that other blocks will follow and we - will need to reallocate to the full size anyway. */ - rb.pos_ = uint32(n) - - ringBufferInitBuffer(rb.pos_, rb) - copy(rb.buffer_, bytes[:n]) - return - } - - if rb.cur_size_ < rb.total_size_ { - /* Lazily allocate the full buffer. */ - ringBufferInitBuffer(rb.total_size_, rb) - - /* Initialize the last two bytes to zero, so that we don't have to worry - later when we copy the last two bytes to the first two positions. */ - rb.buffer_[rb.size_-2] = 0 - - rb.buffer_[rb.size_-1] = 0 - } - { - var masked_pos uint = uint(rb.pos_ & rb.mask_) - - /* The length of the writes is limited so that we do not need to worry - about a write */ - ringBufferWriteTail(bytes, n, rb) - - if uint32(masked_pos+n) <= rb.size_ { - /* A single write fits. */ - copy(rb.buffer_[masked_pos:], bytes[:n]) - } else { - /* Split into two writes. - Copy into the end of the buffer, including the tail buffer. */ - copy(rb.buffer_[masked_pos:], bytes[:brotli_min_size_t(n, uint(rb.total_size_-uint32(masked_pos)))]) - - /* Copy into the beginning of the buffer */ - copy(rb.buffer_, bytes[rb.size_-uint32(masked_pos):][:uint32(n)-(rb.size_-uint32(masked_pos))]) - } - } - { - var not_first_lap bool = rb.pos_&(1<<31) != 0 - var rb_pos_mask uint32 = (1 << 31) - 1 - rb.data_[0] = rb.buffer_[rb.size_-2] - rb.data_[1] = rb.buffer_[rb.size_-1] - rb.pos_ = (rb.pos_ & rb_pos_mask) + uint32(uint32(n)&rb_pos_mask) - if not_first_lap { - /* Wrap, but preserve not-a-first-lap feature. */ - rb.pos_ |= 1 << 31 - } - } -} diff --git a/vendor/github.com/andybalholm/brotli/state.go b/vendor/github.com/andybalholm/brotli/state.go deleted file mode 100644 index 38d753e..0000000 --- a/vendor/github.com/andybalholm/brotli/state.go +++ /dev/null @@ -1,294 +0,0 @@ -package brotli - -import "io" - -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Brotli state for partial streaming decoding. */ -const ( - stateUninited = iota - stateLargeWindowBits - stateInitialize - stateMetablockBegin - stateMetablockHeader - stateMetablockHeader2 - stateContextModes - stateCommandBegin - stateCommandInner - stateCommandPostDecodeLiterals - stateCommandPostWrapCopy - stateUncompressed - stateMetadata - stateCommandInnerWrite - stateMetablockDone - stateCommandPostWrite1 - stateCommandPostWrite2 - stateHuffmanCode0 - stateHuffmanCode1 - stateHuffmanCode2 - stateHuffmanCode3 - stateContextMap1 - stateContextMap2 - stateTreeGroup - stateDone -) - -const ( - stateMetablockHeaderNone = iota - stateMetablockHeaderEmpty - stateMetablockHeaderNibbles - stateMetablockHeaderSize - stateMetablockHeaderUncompressed - stateMetablockHeaderReserved - stateMetablockHeaderBytes - stateMetablockHeaderMetadata -) - -const ( - stateUncompressedNone = iota - stateUncompressedWrite -) - -const ( - stateTreeGroupNone = iota - stateTreeGroupLoop -) - -const ( - stateContextMapNone = iota - stateContextMapReadPrefix - stateContextMapHuffman - stateContextMapDecode - stateContextMapTransform -) - -const ( - stateHuffmanNone = iota - stateHuffmanSimpleSize - stateHuffmanSimpleRead - stateHuffmanSimpleBuild - stateHuffmanComplex - stateHuffmanLengthSymbols -) - -const ( - stateDecodeUint8None = iota - stateDecodeUint8Short - stateDecodeUint8Long -) - -const ( - stateReadBlockLengthNone = iota - stateReadBlockLengthSuffix -) - -type Reader struct { - src io.Reader - buf []byte // scratch space for reading from src - in []byte // current chunk to decode; usually aliases buf - - state int - loop_counter int - br bitReader - buffer struct { - u64 uint64 - u8 [8]byte - } - buffer_length uint32 - pos int - max_backward_distance int - max_distance int - ringbuffer_size int - ringbuffer_mask int - dist_rb_idx int - dist_rb [4]int - error_code int - sub_loop_counter uint32 - ringbuffer []byte - ringbuffer_end []byte - htree_command []huffmanCode - context_lookup []byte - context_map_slice []byte - dist_context_map_slice []byte - literal_hgroup huffmanTreeGroup - insert_copy_hgroup huffmanTreeGroup - distance_hgroup huffmanTreeGroup - block_type_trees []huffmanCode - block_len_trees []huffmanCode - trivial_literal_context int - distance_context int - meta_block_remaining_len int - block_length_index uint32 - block_length [3]uint32 - num_block_types [3]uint32 - block_type_rb [6]uint32 - distance_postfix_bits uint32 - num_direct_distance_codes uint32 - distance_postfix_mask int - num_dist_htrees uint32 - dist_context_map []byte - literal_htree []huffmanCode - dist_htree_index byte - repeat_code_len uint32 - prev_code_len uint32 - copy_length int - distance_code int - rb_roundtrips uint - partial_pos_out uint - symbol uint32 - repeat uint32 - space uint32 - table [32]huffmanCode - symbol_lists symbolList - symbols_lists_array [huffmanMaxCodeLength + 1 + numCommandSymbols]uint16 - next_symbol [32]int - code_length_code_lengths [codeLengthCodes]byte - code_length_histo [16]uint16 - htree_index int - next []huffmanCode - context_index uint32 - max_run_length_prefix uint32 - code uint32 - context_map_table [huffmanMaxSize272]huffmanCode - substate_metablock_header int - substate_tree_group int - substate_context_map int - substate_uncompressed int - substate_huffman int - substate_decode_uint8 int - substate_read_block_length int - is_last_metablock uint - is_uncompressed uint - is_metadata uint - should_wrap_ringbuffer uint - canny_ringbuffer_allocation uint - large_window bool - size_nibbles uint - window_bits uint32 - new_ringbuffer_size int - num_literal_htrees uint32 - context_map []byte - context_modes []byte - dictionary *dictionary - transforms *transforms - trivial_literal_contexts [8]uint32 -} - -func decoderStateInit(s *Reader) bool { - s.error_code = 0 /* BROTLI_DECODER_NO_ERROR */ - - initBitReader(&s.br) - s.state = stateUninited - s.large_window = false - s.substate_metablock_header = stateMetablockHeaderNone - s.substate_tree_group = stateTreeGroupNone - s.substate_context_map = stateContextMapNone - s.substate_uncompressed = stateUncompressedNone - s.substate_huffman = stateHuffmanNone - s.substate_decode_uint8 = stateDecodeUint8None - s.substate_read_block_length = stateReadBlockLengthNone - - s.buffer_length = 0 - s.loop_counter = 0 - s.pos = 0 - s.rb_roundtrips = 0 - s.partial_pos_out = 0 - - s.block_type_trees = nil - s.block_len_trees = nil - s.ringbuffer_size = 0 - s.new_ringbuffer_size = 0 - s.ringbuffer_mask = 0 - - s.context_map = nil - s.context_modes = nil - s.dist_context_map = nil - s.context_map_slice = nil - s.dist_context_map_slice = nil - - s.sub_loop_counter = 0 - - s.literal_hgroup.codes = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.codes = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.codes = nil - s.distance_hgroup.htrees = nil - - s.is_last_metablock = 0 - s.is_uncompressed = 0 - s.is_metadata = 0 - s.should_wrap_ringbuffer = 0 - s.canny_ringbuffer_allocation = 1 - - s.window_bits = 0 - s.max_distance = 0 - s.dist_rb[0] = 16 - s.dist_rb[1] = 15 - s.dist_rb[2] = 11 - s.dist_rb[3] = 4 - s.dist_rb_idx = 0 - s.block_type_trees = nil - s.block_len_trees = nil - - s.symbol_lists.storage = s.symbols_lists_array[:] - s.symbol_lists.offset = huffmanMaxCodeLength + 1 - - s.dictionary = getDictionary() - s.transforms = getTransforms() - - return true -} - -func decoderStateMetablockBegin(s *Reader) { - s.meta_block_remaining_len = 0 - s.block_length[0] = 1 << 24 - s.block_length[1] = 1 << 24 - s.block_length[2] = 1 << 24 - s.num_block_types[0] = 1 - s.num_block_types[1] = 1 - s.num_block_types[2] = 1 - s.block_type_rb[0] = 1 - s.block_type_rb[1] = 0 - s.block_type_rb[2] = 1 - s.block_type_rb[3] = 0 - s.block_type_rb[4] = 1 - s.block_type_rb[5] = 0 - s.context_map = nil - s.context_modes = nil - s.dist_context_map = nil - s.context_map_slice = nil - s.literal_htree = nil - s.dist_context_map_slice = nil - s.dist_htree_index = 0 - s.context_lookup = nil - s.literal_hgroup.codes = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.codes = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.codes = nil - s.distance_hgroup.htrees = nil -} - -func decoderStateCleanupAfterMetablock(s *Reader) { - s.context_modes = nil - s.context_map = nil - s.dist_context_map = nil - s.literal_hgroup.htrees = nil - s.insert_copy_hgroup.htrees = nil - s.distance_hgroup.htrees = nil -} - -func decoderHuffmanTreeGroupInit(s *Reader, group *huffmanTreeGroup, alphabet_size uint32, max_symbol uint32, ntrees uint32) bool { - var max_table_size uint = uint(kMaxHuffmanTableSize[(alphabet_size+31)>>5]) - group.alphabet_size = uint16(alphabet_size) - group.max_symbol = uint16(max_symbol) - group.num_htrees = uint16(ntrees) - group.htrees = make([][]huffmanCode, ntrees) - group.codes = make([]huffmanCode, (uint(ntrees) * max_table_size)) - return !(group.codes == nil) -} diff --git a/vendor/github.com/andybalholm/brotli/static_dict.go b/vendor/github.com/andybalholm/brotli/static_dict.go deleted file mode 100644 index bc05566..0000000 --- a/vendor/github.com/andybalholm/brotli/static_dict.go +++ /dev/null @@ -1,662 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Class to model the static dictionary. */ - -const maxStaticDictionaryMatchLen = 37 - -const kInvalidMatch uint32 = 0xFFFFFFF - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ -func hash(data []byte) uint32 { - var h uint32 = binary.LittleEndian.Uint32(data) * kDictHashMul32 - - /* The higher bits contain more mixture from the multiplication, - so we take our results from there. */ - return h >> uint(32-kDictNumBits) -} - -func addMatch(distance uint, len uint, len_code uint, matches []uint32) { - var match uint32 = uint32((distance << 5) + len_code) - matches[len] = brotli_min_uint32_t(matches[len], match) -} - -func dictMatchLength(dict *dictionary, data []byte, id uint, len uint, maxlen uint) uint { - var offset uint = uint(dict.offsets_by_length[len]) + len*id - return findMatchLengthWithLimit(dict.data[offset:], data, brotli_min_size_t(uint(len), maxlen)) -} - -func isMatch(d *dictionary, w dictWord, data []byte, max_length uint) bool { - if uint(w.len) > max_length { - return false - } else { - var offset uint = uint(d.offsets_by_length[w.len]) + uint(w.len)*uint(w.idx) - var dict []byte = d.data[offset:] - if w.transform == 0 { - /* Match against base dictionary word. */ - return findMatchLengthWithLimit(dict, data, uint(w.len)) == uint(w.len) - } else if w.transform == 10 { - /* Match against uppercase first transform. - Note that there are only ASCII uppercase words in the lookup table. */ - return dict[0] >= 'a' && dict[0] <= 'z' && (dict[0]^32) == data[0] && findMatchLengthWithLimit(dict[1:], data[1:], uint(w.len)-1) == uint(w.len-1) - } else { - /* Match against uppercase all transform. - Note that there are only ASCII uppercase words in the lookup table. */ - var i uint - for i = 0; i < uint(w.len); i++ { - if dict[i] >= 'a' && dict[i] <= 'z' { - if (dict[i] ^ 32) != data[i] { - return false - } - } else { - if dict[i] != data[i] { - return false - } - } - } - - return true - } - } -} - -func findAllStaticDictionaryMatches(dict *encoderDictionary, data []byte, min_length uint, max_length uint, matches []uint32) bool { - var has_found_match bool = false - { - var offset uint = uint(dict.buckets[hash(data)]) - var end bool = offset == 0 - for !end { - w := dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 { - var matchlen uint = dictMatchLength(dict.words, data, id, l, max_length) - var s []byte - var minlen uint - var maxlen uint - var len uint - - /* Transform "" + BROTLI_TRANSFORM_IDENTITY + "" */ - if matchlen == l { - addMatch(id, l, l, matches) - has_found_match = true - } - - /* Transforms "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "" and - "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "ing " */ - if matchlen >= l-1 { - addMatch(id+12*n, l-1, l, matches) - if l+2 < max_length && data[l-1] == 'i' && data[l] == 'n' && data[l+1] == 'g' && data[l+2] == ' ' { - addMatch(id+49*n, l+3, l, matches) - } - - has_found_match = true - } - - /* Transform "" + BROTLI_TRANSFORM_OMIT_LAST_# + "" (# = 2 .. 9) */ - minlen = min_length - - if l > 9 { - minlen = brotli_max_size_t(minlen, l-9) - } - maxlen = brotli_min_size_t(matchlen, l-2) - for len = minlen; len <= maxlen; len++ { - var cut uint = l - len - var transform_id uint = (cut << 2) + uint((dict.cutoffTransforms>>(cut*6))&0x3F) - addMatch(id+transform_id*n, uint(len), l, matches) - has_found_match = true - } - - if matchlen < l || l+6 >= max_length { - continue - } - - s = data[l:] - - /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + <suffix> */ - if s[0] == ' ' { - addMatch(id+n, l+1, l, matches) - if s[1] == 'a' { - if s[2] == ' ' { - addMatch(id+28*n, l+3, l, matches) - } else if s[2] == 's' { - if s[3] == ' ' { - addMatch(id+46*n, l+4, l, matches) - } - } else if s[2] == 't' { - if s[3] == ' ' { - addMatch(id+60*n, l+4, l, matches) - } - } else if s[2] == 'n' { - if s[3] == 'd' && s[4] == ' ' { - addMatch(id+10*n, l+5, l, matches) - } - } - } else if s[1] == 'b' { - if s[2] == 'y' && s[3] == ' ' { - addMatch(id+38*n, l+4, l, matches) - } - } else if s[1] == 'i' { - if s[2] == 'n' { - if s[3] == ' ' { - addMatch(id+16*n, l+4, l, matches) - } - } else if s[2] == 's' { - if s[3] == ' ' { - addMatch(id+47*n, l+4, l, matches) - } - } - } else if s[1] == 'f' { - if s[2] == 'o' { - if s[3] == 'r' && s[4] == ' ' { - addMatch(id+25*n, l+5, l, matches) - } - } else if s[2] == 'r' { - if s[3] == 'o' && s[4] == 'm' && s[5] == ' ' { - addMatch(id+37*n, l+6, l, matches) - } - } - } else if s[1] == 'o' { - if s[2] == 'f' { - if s[3] == ' ' { - addMatch(id+8*n, l+4, l, matches) - } - } else if s[2] == 'n' { - if s[3] == ' ' { - addMatch(id+45*n, l+4, l, matches) - } - } - } else if s[1] == 'n' { - if s[2] == 'o' && s[3] == 't' && s[4] == ' ' { - addMatch(id+80*n, l+5, l, matches) - } - } else if s[1] == 't' { - if s[2] == 'h' { - if s[3] == 'e' { - if s[4] == ' ' { - addMatch(id+5*n, l+5, l, matches) - } - } else if s[3] == 'a' { - if s[4] == 't' && s[5] == ' ' { - addMatch(id+29*n, l+6, l, matches) - } - } - } else if s[2] == 'o' { - if s[3] == ' ' { - addMatch(id+17*n, l+4, l, matches) - } - } - } else if s[1] == 'w' { - if s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ' { - addMatch(id+35*n, l+6, l, matches) - } - } - } else if s[0] == '"' { - addMatch(id+19*n, l+1, l, matches) - if s[1] == '>' { - addMatch(id+21*n, l+2, l, matches) - } - } else if s[0] == '.' { - addMatch(id+20*n, l+1, l, matches) - if s[1] == ' ' { - addMatch(id+31*n, l+2, l, matches) - if s[2] == 'T' && s[3] == 'h' { - if s[4] == 'e' { - if s[5] == ' ' { - addMatch(id+43*n, l+6, l, matches) - } - } else if s[4] == 'i' { - if s[5] == 's' && s[6] == ' ' { - addMatch(id+75*n, l+7, l, matches) - } - } - } - } - } else if s[0] == ',' { - addMatch(id+76*n, l+1, l, matches) - if s[1] == ' ' { - addMatch(id+14*n, l+2, l, matches) - } - } else if s[0] == '\n' { - addMatch(id+22*n, l+1, l, matches) - if s[1] == '\t' { - addMatch(id+50*n, l+2, l, matches) - } - } else if s[0] == ']' { - addMatch(id+24*n, l+1, l, matches) - } else if s[0] == '\'' { - addMatch(id+36*n, l+1, l, matches) - } else if s[0] == ':' { - addMatch(id+51*n, l+1, l, matches) - } else if s[0] == '(' { - addMatch(id+57*n, l+1, l, matches) - } else if s[0] == '=' { - if s[1] == '"' { - addMatch(id+70*n, l+2, l, matches) - } else if s[1] == '\'' { - addMatch(id+86*n, l+2, l, matches) - } - } else if s[0] == 'a' { - if s[1] == 'l' && s[2] == ' ' { - addMatch(id+84*n, l+3, l, matches) - } - } else if s[0] == 'e' { - if s[1] == 'd' { - if s[2] == ' ' { - addMatch(id+53*n, l+3, l, matches) - } - } else if s[1] == 'r' { - if s[2] == ' ' { - addMatch(id+82*n, l+3, l, matches) - } - } else if s[1] == 's' { - if s[2] == 't' && s[3] == ' ' { - addMatch(id+95*n, l+4, l, matches) - } - } - } else if s[0] == 'f' { - if s[1] == 'u' && s[2] == 'l' && s[3] == ' ' { - addMatch(id+90*n, l+4, l, matches) - } - } else if s[0] == 'i' { - if s[1] == 'v' { - if s[2] == 'e' && s[3] == ' ' { - addMatch(id+92*n, l+4, l, matches) - } - } else if s[1] == 'z' { - if s[2] == 'e' && s[3] == ' ' { - addMatch(id+100*n, l+4, l, matches) - } - } - } else if s[0] == 'l' { - if s[1] == 'e' { - if s[2] == 's' && s[3] == 's' && s[4] == ' ' { - addMatch(id+93*n, l+5, l, matches) - } - } else if s[1] == 'y' { - if s[2] == ' ' { - addMatch(id+61*n, l+3, l, matches) - } - } - } else if s[0] == 'o' { - if s[1] == 'u' && s[2] == 's' && s[3] == ' ' { - addMatch(id+106*n, l+4, l, matches) - } - } - } else { - var is_all_caps bool = (w.transform != transformUppercaseFirst) - /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and - is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) - transform. */ - - var s []byte - if !isMatch(dict.words, w, data, max_length) { - continue - } - - /* Transform "" + kUppercase{First,All} + "" */ - var tmp int - if is_all_caps { - tmp = 44 - } else { - tmp = 9 - } - addMatch(id+uint(tmp)*n, l, l, matches) - - has_found_match = true - if l+1 >= max_length { - continue - } - - /* Transforms "" + kUppercase{First,All} + <suffix> */ - s = data[l:] - - if s[0] == ' ' { - var tmp int - if is_all_caps { - tmp = 68 - } else { - tmp = 4 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '"' { - var tmp int - if is_all_caps { - tmp = 87 - } else { - tmp = 66 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == '>' { - var tmp int - if is_all_caps { - tmp = 97 - } else { - tmp = 69 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == '.' { - var tmp int - if is_all_caps { - tmp = 101 - } else { - tmp = 79 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 114 - } else { - tmp = 88 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == ',' { - var tmp int - if is_all_caps { - tmp = 112 - } else { - tmp = 99 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 107 - } else { - tmp = 58 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } else if s[0] == '\'' { - var tmp int - if is_all_caps { - tmp = 94 - } else { - tmp = 74 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '(' { - var tmp int - if is_all_caps { - tmp = 113 - } else { - tmp = 78 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - } else if s[0] == '=' { - if s[1] == '"' { - var tmp int - if is_all_caps { - tmp = 105 - } else { - tmp = 104 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[1] == '\'' { - var tmp int - if is_all_caps { - tmp = 116 - } else { - tmp = 108 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } - } - } - } - } - - /* Transforms with prefixes " " and "." */ - if max_length >= 5 && (data[0] == ' ' || data[0] == '.') { - var is_space bool = (data[0] == ' ') - var offset uint = uint(dict.buckets[hash(data[1:])]) - var end bool = offset == 0 - for !end { - w := dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 { - var s []byte - if !isMatch(dict.words, w, data[1:], max_length-1) { - continue - } - - /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + "" and - "." + BROTLI_TRANSFORM_IDENTITY + "" */ - var tmp int - if is_space { - tmp = 6 - } else { - tmp = 32 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - - has_found_match = true - if l+2 >= max_length { - continue - } - - /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + <suffix> and - "." + BROTLI_TRANSFORM_IDENTITY + <suffix> - */ - s = data[l+1:] - - if s[0] == ' ' { - var tmp int - if is_space { - tmp = 2 - } else { - tmp = 77 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[0] == '(' { - var tmp int - if is_space { - tmp = 89 - } else { - tmp = 67 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if is_space { - if s[0] == ',' { - addMatch(id+103*n, l+2, l, matches) - if s[1] == ' ' { - addMatch(id+33*n, l+3, l, matches) - } - } else if s[0] == '.' { - addMatch(id+71*n, l+2, l, matches) - if s[1] == ' ' { - addMatch(id+52*n, l+3, l, matches) - } - } else if s[0] == '=' { - if s[1] == '"' { - addMatch(id+81*n, l+3, l, matches) - } else if s[1] == '\'' { - addMatch(id+98*n, l+3, l, matches) - } - } - } - } else if is_space { - var is_all_caps bool = (w.transform != transformUppercaseFirst) - /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and - is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) - transform. */ - - var s []byte - if !isMatch(dict.words, w, data[1:], max_length-1) { - continue - } - - /* Transforms " " + kUppercase{First,All} + "" */ - var tmp int - if is_all_caps { - tmp = 85 - } else { - tmp = 30 - } - addMatch(id+uint(tmp)*n, l+1, l, matches) - - has_found_match = true - if l+2 >= max_length { - continue - } - - /* Transforms " " + kUppercase{First,All} + <suffix> */ - s = data[l+1:] - - if s[0] == ' ' { - var tmp int - if is_all_caps { - tmp = 83 - } else { - tmp = 15 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - } else if s[0] == ',' { - if !is_all_caps { - addMatch(id+109*n, l+2, l, matches) - } - - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 111 - } else { - tmp = 65 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } else if s[0] == '.' { - var tmp int - if is_all_caps { - tmp = 115 - } else { - tmp = 96 - } - addMatch(id+uint(tmp)*n, l+2, l, matches) - if s[1] == ' ' { - var tmp int - if is_all_caps { - tmp = 117 - } else { - tmp = 91 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } else if s[0] == '=' { - if s[1] == '"' { - var tmp int - if is_all_caps { - tmp = 110 - } else { - tmp = 118 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } else if s[1] == '\'' { - var tmp int - if is_all_caps { - tmp = 119 - } else { - tmp = 120 - } - addMatch(id+uint(tmp)*n, l+3, l, matches) - } - } - } - } - } - - if max_length >= 6 { - /* Transforms with prefixes "e ", "s ", ", " and "\xC2\xA0" */ - if (data[1] == ' ' && (data[0] == 'e' || data[0] == 's' || data[0] == ',')) || (data[0] == 0xC2 && data[1] == 0xA0) { - var offset uint = uint(dict.buckets[hash(data[2:])]) - var end bool = offset == 0 - for !end { - w := dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 && isMatch(dict.words, w, data[2:], max_length-2) { - if data[0] == 0xC2 { - addMatch(id+102*n, l+2, l, matches) - has_found_match = true - } else if l+2 < max_length && data[l+2] == ' ' { - var t uint = 13 - if data[0] == 'e' { - t = 18 - } else if data[0] == 's' { - t = 7 - } - addMatch(id+t*n, l+3, l, matches) - has_found_match = true - } - } - } - } - } - - if max_length >= 9 { - /* Transforms with prefixes " the " and ".com/" */ - if (data[0] == ' ' && data[1] == 't' && data[2] == 'h' && data[3] == 'e' && data[4] == ' ') || (data[0] == '.' && data[1] == 'c' && data[2] == 'o' && data[3] == 'm' && data[4] == '/') { - var offset uint = uint(dict.buckets[hash(data[5:])]) - var end bool = offset == 0 - for !end { - w := dict.dict_words[offset] - offset++ - var l uint = uint(w.len) & 0x1F - var n uint = uint(1) << dict.words.size_bits_by_length[l] - var id uint = uint(w.idx) - end = !(w.len&0x80 == 0) - w.len = byte(l) - if w.transform == 0 && isMatch(dict.words, w, data[5:], max_length-5) { - var tmp int - if data[0] == ' ' { - tmp = 41 - } else { - tmp = 72 - } - addMatch(id+uint(tmp)*n, l+5, l, matches) - has_found_match = true - if l+5 < max_length { - var s []byte = data[l+5:] - if data[0] == ' ' { - if l+8 < max_length && s[0] == ' ' && s[1] == 'o' && s[2] == 'f' && s[3] == ' ' { - addMatch(id+62*n, l+9, l, matches) - if l+12 < max_length && s[4] == 't' && s[5] == 'h' && s[6] == 'e' && s[7] == ' ' { - addMatch(id+73*n, l+13, l, matches) - } - } - } - } - } - } - } - } - - return has_found_match -} diff --git a/vendor/github.com/andybalholm/brotli/static_dict_lut.go b/vendor/github.com/andybalholm/brotli/static_dict_lut.go deleted file mode 100644 index b33963e..0000000 --- a/vendor/github.com/andybalholm/brotli/static_dict_lut.go +++ /dev/null @@ -1,75094 +0,0 @@ -package brotli - -/* Copyright 2017 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Lookup table for static dictionary and transforms. */ - -type dictWord struct { - len byte - transform byte - idx uint16 -} - -const kDictNumBits int = 15 - -const kDictHashMul32 uint32 = 0x1E35A7BD - -var kStaticDictionaryBuckets = [32768]uint16{ - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3, - 6, - 0, - 0, - 0, - 0, - 0, - 20, - 0, - 0, - 0, - 21, - 0, - 22, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23, - 0, - 0, - 25, - 0, - 29, - 0, - 53, - 0, - 0, - 0, - 0, - 0, - 0, - 55, - 0, - 0, - 0, - 0, - 0, - 0, - 61, - 76, - 0, - 0, - 0, - 94, - 0, - 0, - 0, - 0, - 0, - 0, - 96, - 0, - 97, - 0, - 98, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 99, - 101, - 106, - 108, - 0, - 0, - 0, - 0, - 0, - 110, - 0, - 111, - 112, - 0, - 113, - 118, - 124, - 0, - 0, - 0, - 0, - 0, - 125, - 128, - 0, - 0, - 0, - 0, - 129, - 0, - 0, - 131, - 0, - 0, - 0, - 0, - 0, - 0, - 132, - 0, - 0, - 135, - 0, - 0, - 0, - 137, - 0, - 0, - 0, - 0, - 0, - 138, - 139, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 142, - 143, - 144, - 0, - 0, - 0, - 0, - 0, - 145, - 0, - 0, - 0, - 146, - 149, - 151, - 152, - 0, - 0, - 153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 154, - 0, - 0, - 0, - 0, - 0, - 0, - 155, - 0, - 0, - 0, - 0, - 160, - 182, - 0, - 0, - 0, - 0, - 0, - 0, - 183, - 0, - 0, - 0, - 188, - 189, - 0, - 0, - 192, - 0, - 0, - 0, - 0, - 0, - 0, - 194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 197, - 202, - 209, - 0, - 0, - 210, - 0, - 224, - 0, - 0, - 0, - 225, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 231, - 0, - 0, - 0, - 232, - 0, - 240, - 0, - 0, - 242, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 244, - 0, - 0, - 0, - 246, - 0, - 0, - 249, - 251, - 253, - 0, - 0, - 0, - 0, - 0, - 258, - 0, - 0, - 261, - 263, - 0, - 0, - 0, - 267, - 0, - 0, - 268, - 0, - 269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 271, - 0, - 0, - 0, - 0, - 0, - 0, - 272, - 0, - 273, - 0, - 277, - 0, - 278, - 286, - 0, - 0, - 0, - 0, - 287, - 0, - 289, - 290, - 291, - 0, - 0, - 0, - 295, - 0, - 0, - 296, - 297, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 298, - 0, - 0, - 0, - 299, - 0, - 0, - 305, - 0, - 324, - 0, - 0, - 0, - 0, - 0, - 327, - 0, - 328, - 329, - 0, - 0, - 0, - 0, - 336, - 0, - 0, - 340, - 0, - 341, - 342, - 343, - 0, - 0, - 346, - 0, - 348, - 0, - 0, - 0, - 0, - 0, - 0, - 349, - 351, - 0, - 0, - 355, - 0, - 363, - 0, - 364, - 0, - 368, - 369, - 0, - 370, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 373, - 0, - 375, - 0, - 0, - 0, - 0, - 376, - 377, - 0, - 0, - 394, - 395, - 396, - 0, - 0, - 398, - 0, - 0, - 0, - 0, - 400, - 0, - 0, - 408, - 0, - 0, - 0, - 0, - 420, - 0, - 0, - 0, - 0, - 0, - 0, - 421, - 0, - 0, - 422, - 423, - 0, - 0, - 429, - 435, - 436, - 442, - 0, - 0, - 443, - 0, - 444, - 445, - 453, - 456, - 0, - 457, - 0, - 0, - 0, - 0, - 0, - 458, - 0, - 0, - 0, - 459, - 0, - 0, - 0, - 460, - 0, - 462, - 463, - 465, - 0, - 0, - 0, - 0, - 0, - 0, - 466, - 469, - 0, - 0, - 0, - 0, - 0, - 0, - 470, - 0, - 0, - 0, - 474, - 0, - 476, - 0, - 0, - 0, - 0, - 483, - 0, - 485, - 0, - 0, - 0, - 486, - 0, - 0, - 488, - 491, - 492, - 0, - 0, - 497, - 499, - 500, - 0, - 501, - 0, - 0, - 0, - 505, - 0, - 0, - 506, - 0, - 0, - 0, - 507, - 0, - 0, - 0, - 509, - 0, - 0, - 0, - 0, - 511, - 512, - 519, - 0, - 0, - 0, - 0, - 0, - 0, - 529, - 530, - 0, - 0, - 0, - 534, - 0, - 0, - 0, - 0, - 543, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 553, - 0, - 0, - 0, - 0, - 557, - 560, - 0, - 0, - 0, - 0, - 0, - 0, - 561, - 0, - 564, - 0, - 0, - 0, - 0, - 0, - 0, - 565, - 566, - 0, - 575, - 0, - 619, - 0, - 620, - 0, - 0, - 623, - 624, - 0, - 0, - 0, - 625, - 0, - 0, - 626, - 627, - 0, - 0, - 628, - 0, - 0, - 0, - 0, - 630, - 0, - 631, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 641, - 0, - 0, - 0, - 0, - 643, - 656, - 668, - 0, - 0, - 0, - 673, - 0, - 0, - 0, - 674, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 682, - 0, - 687, - 0, - 690, - 0, - 693, - 699, - 700, - 0, - 0, - 0, - 0, - 0, - 0, - 704, - 705, - 0, - 0, - 0, - 0, - 707, - 710, - 0, - 711, - 0, - 0, - 0, - 0, - 726, - 0, - 0, - 729, - 0, - 0, - 0, - 730, - 731, - 0, - 0, - 0, - 0, - 0, - 752, - 0, - 0, - 0, - 762, - 0, - 763, - 0, - 0, - 767, - 0, - 0, - 0, - 770, - 774, - 0, - 0, - 775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 776, - 0, - 0, - 0, - 777, - 783, - 0, - 0, - 0, - 785, - 788, - 0, - 0, - 0, - 0, - 790, - 0, - 0, - 0, - 793, - 0, - 0, - 0, - 0, - 794, - 0, - 0, - 804, - 819, - 821, - 0, - 827, - 0, - 0, - 0, - 834, - 0, - 0, - 835, - 0, - 0, - 0, - 841, - 0, - 844, - 0, - 850, - 851, - 859, - 0, - 860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 874, - 0, - 876, - 0, - 877, - 890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 893, - 894, - 898, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 899, - 0, - 0, - 0, - 900, - 904, - 906, - 0, - 0, - 0, - 907, - 0, - 908, - 909, - 0, - 910, - 0, - 0, - 0, - 0, - 911, - 0, - 0, - 0, - 0, - 0, - 916, - 0, - 0, - 0, - 922, - 925, - 0, - 930, - 0, - 934, - 0, - 0, - 0, - 0, - 0, - 943, - 0, - 0, - 944, - 0, - 953, - 954, - 0, - 0, - 0, - 0, - 0, - 0, - 955, - 0, - 962, - 963, - 0, - 0, - 976, - 0, - 0, - 977, - 978, - 979, - 980, - 0, - 981, - 0, - 0, - 0, - 0, - 984, - 0, - 0, - 985, - 0, - 0, - 987, - 989, - 991, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 992, - 0, - 0, - 0, - 993, - 0, - 0, - 0, - 0, - 0, - 0, - 996, - 0, - 0, - 0, - 1000, - 0, - 0, - 0, - 0, - 0, - 1002, - 0, - 0, - 0, - 0, - 1005, - 1007, - 0, - 0, - 0, - 1009, - 0, - 0, - 0, - 1010, - 0, - 0, - 0, - 0, - 0, - 0, - 1011, - 0, - 1012, - 0, - 0, - 0, - 0, - 1014, - 1016, - 0, - 0, - 0, - 1020, - 0, - 1021, - 0, - 0, - 0, - 0, - 1022, - 0, - 0, - 0, - 1024, - 0, - 0, - 0, - 0, - 0, - 0, - 1025, - 0, - 0, - 1026, - 1027, - 0, - 0, - 0, - 0, - 0, - 1031, - 0, - 1033, - 0, - 0, - 0, - 0, - 1034, - 0, - 0, - 0, - 1037, - 1040, - 0, - 0, - 0, - 1042, - 1043, - 0, - 0, - 1053, - 0, - 1054, - 0, - 0, - 1057, - 0, - 0, - 0, - 1058, - 0, - 0, - 1060, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1061, - 0, - 0, - 1062, - 0, - 0, - 0, - 0, - 1063, - 0, - 0, - 0, - 0, - 1064, - 0, - 0, - 0, - 0, - 0, - 1065, - 0, - 0, - 0, - 0, - 1066, - 1067, - 0, - 0, - 0, - 1069, - 1070, - 1072, - 0, - 0, - 0, - 0, - 0, - 0, - 1073, - 0, - 1075, - 0, - 0, - 0, - 0, - 0, - 0, - 1080, - 1084, - 0, - 0, - 0, - 0, - 1088, - 0, - 0, - 0, - 0, - 0, - 0, - 1094, - 0, - 1095, - 0, - 1107, - 0, - 0, - 0, - 1112, - 1114, - 0, - 1119, - 0, - 1122, - 0, - 0, - 1126, - 0, - 1129, - 0, - 1130, - 0, - 0, - 0, - 0, - 0, - 1132, - 0, - 0, - 0, - 0, - 0, - 0, - 1144, - 0, - 0, - 1145, - 1146, - 0, - 1148, - 1149, - 0, - 0, - 1150, - 1151, - 0, - 0, - 0, - 0, - 1152, - 0, - 1153, - 0, - 0, - 0, - 0, - 0, - 1154, - 0, - 1163, - 0, - 0, - 0, - 1164, - 0, - 0, - 0, - 0, - 0, - 1165, - 0, - 1167, - 0, - 1170, - 0, - 0, - 0, - 0, - 0, - 1171, - 1172, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1173, - 1175, - 1177, - 0, - 1186, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1195, - 0, - 0, - 1221, - 0, - 0, - 1224, - 0, - 0, - 1227, - 0, - 0, - 0, - 0, - 0, - 1228, - 1229, - 0, - 0, - 1230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1231, - 0, - 0, - 0, - 1233, - 0, - 0, - 1243, - 1244, - 1246, - 1248, - 0, - 0, - 0, - 0, - 1254, - 1255, - 1258, - 1259, - 0, - 0, - 0, - 1260, - 0, - 0, - 1261, - 0, - 0, - 0, - 1262, - 1264, - 0, - 0, - 1265, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1266, - 0, - 1267, - 0, - 0, - 0, - 0, - 1273, - 1274, - 1276, - 1289, - 0, - 0, - 1291, - 1292, - 1293, - 0, - 0, - 1294, - 1295, - 1296, - 0, - 0, - 0, - 0, - 1302, - 0, - 1304, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1311, - 1312, - 0, - 1314, - 0, - 1316, - 1320, - 1321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1322, - 1323, - 1324, - 0, - 1335, - 0, - 1336, - 0, - 0, - 0, - 0, - 1341, - 1342, - 0, - 1346, - 0, - 1357, - 0, - 0, - 0, - 1358, - 1360, - 0, - 0, - 0, - 0, - 0, - 0, - 1361, - 0, - 0, - 0, - 1362, - 1365, - 0, - 1366, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1379, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1386, - 0, - 1388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1395, - 0, - 0, - 0, - 0, - 1403, - 0, - 1405, - 0, - 0, - 1407, - 0, - 0, - 0, - 0, - 0, - 1408, - 1409, - 0, - 1410, - 0, - 0, - 0, - 1412, - 1413, - 1416, - 0, - 0, - 1429, - 1451, - 0, - 0, - 1454, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1455, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1456, - 0, - 0, - 0, - 0, - 1459, - 1460, - 1461, - 1475, - 0, - 0, - 0, - 0, - 0, - 0, - 1477, - 0, - 1480, - 0, - 1481, - 0, - 0, - 1486, - 0, - 0, - 1495, - 0, - 0, - 0, - 1496, - 0, - 0, - 1498, - 1499, - 1501, - 1520, - 1521, - 0, - 0, - 0, - 1526, - 0, - 0, - 0, - 0, - 1528, - 1529, - 0, - 1533, - 1536, - 0, - 0, - 0, - 1537, - 1538, - 1549, - 0, - 1550, - 1558, - 1559, - 1572, - 0, - 1573, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1575, - 0, - 0, - 0, - 0, - 0, - 1579, - 0, - 1599, - 0, - 1603, - 0, - 1604, - 0, - 1605, - 0, - 0, - 0, - 0, - 0, - 1608, - 1610, - 0, - 0, - 0, - 0, - 1611, - 0, - 1615, - 0, - 1616, - 1618, - 0, - 1619, - 0, - 0, - 1622, - 0, - 0, - 0, - 0, - 1634, - 0, - 0, - 0, - 1635, - 0, - 0, - 0, - 1641, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1643, - 0, - 0, - 0, - 1650, - 0, - 0, - 1652, - 0, - 0, - 0, - 0, - 0, - 1653, - 0, - 0, - 0, - 1654, - 0, - 0, - 0, - 0, - 1655, - 0, - 1662, - 0, - 0, - 1663, - 1664, - 0, - 0, - 1668, - 0, - 0, - 1669, - 1670, - 0, - 1672, - 1673, - 0, - 0, - 0, - 0, - 0, - 1674, - 0, - 0, - 0, - 1675, - 1676, - 1680, - 0, - 1682, - 0, - 0, - 1687, - 0, - 0, - 0, - 0, - 0, - 1704, - 0, - 0, - 1705, - 0, - 0, - 1721, - 0, - 0, - 0, - 0, - 1734, - 1735, - 0, - 0, - 0, - 0, - 1737, - 0, - 0, - 0, - 0, - 1739, - 0, - 0, - 1740, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1741, - 1743, - 0, - 0, - 0, - 0, - 1745, - 0, - 0, - 0, - 1749, - 0, - 0, - 0, - 1751, - 0, - 0, - 0, - 0, - 0, - 0, - 1760, - 0, - 0, - 0, - 0, - 1765, - 0, - 0, - 0, - 0, - 0, - 1784, - 0, - 1785, - 1787, - 0, - 0, - 0, - 0, - 1788, - 1789, - 0, - 0, - 0, - 0, - 1790, - 1791, - 1793, - 0, - 1798, - 1799, - 0, - 0, - 0, - 0, - 1801, - 0, - 1803, - 1805, - 0, - 0, - 0, - 1806, - 1811, - 0, - 1812, - 1814, - 0, - 1821, - 0, - 0, - 0, - 0, - 0, - 1822, - 1833, - 0, - 0, - 0, - 0, - 0, - 0, - 1848, - 0, - 0, - 0, - 0, - 0, - 0, - 1857, - 0, - 0, - 0, - 1859, - 0, - 0, - 0, - 0, - 1861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1866, - 0, - 1921, - 1925, - 0, - 0, - 0, - 1929, - 1930, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1931, - 0, - 0, - 0, - 0, - 1932, - 0, - 0, - 0, - 1934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1946, - 0, - 0, - 1948, - 0, - 0, - 0, - 0, - 1950, - 0, - 1957, - 0, - 1958, - 0, - 0, - 0, - 0, - 0, - 1965, - 1967, - 0, - 0, - 0, - 0, - 1968, - 0, - 1969, - 0, - 1971, - 1972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1973, - 0, - 0, - 0, - 0, - 1975, - 0, - 0, - 0, - 0, - 1976, - 1979, - 0, - 1982, - 0, - 0, - 0, - 0, - 1984, - 1988, - 0, - 0, - 0, - 0, - 1990, - 2004, - 2008, - 0, - 0, - 0, - 2012, - 2013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2015, - 0, - 2016, - 2017, - 0, - 0, - 0, - 0, - 2021, - 0, - 0, - 2025, - 0, - 0, - 0, - 0, - 0, - 2029, - 2036, - 2040, - 0, - 2042, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2043, - 0, - 0, - 0, - 0, - 0, - 2045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2046, - 2047, - 0, - 2048, - 2049, - 0, - 2059, - 0, - 0, - 2063, - 0, - 2064, - 2065, - 0, - 0, - 2066, - 0, - 0, - 0, - 0, - 0, - 0, - 2069, - 0, - 0, - 0, - 0, - 2070, - 0, - 2071, - 0, - 2072, - 0, - 0, - 0, - 0, - 2080, - 2082, - 2083, - 0, - 0, - 0, - 0, - 0, - 2085, - 0, - 2086, - 2088, - 2089, - 2105, - 0, - 0, - 0, - 0, - 2107, - 0, - 0, - 2116, - 2117, - 0, - 2120, - 0, - 0, - 2122, - 0, - 0, - 0, - 0, - 0, - 2123, - 0, - 0, - 2125, - 2127, - 2128, - 0, - 0, - 0, - 2130, - 0, - 0, - 0, - 2137, - 2139, - 2140, - 2141, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2144, - 2145, - 0, - 0, - 2146, - 2149, - 0, - 0, - 0, - 0, - 2150, - 0, - 0, - 2151, - 2158, - 0, - 2159, - 0, - 2160, - 0, - 0, - 0, - 0, - 0, - 0, - 2161, - 2162, - 0, - 0, - 2194, - 2202, - 0, - 0, - 0, - 0, - 0, - 0, - 2205, - 2217, - 0, - 2220, - 0, - 2221, - 0, - 2222, - 2224, - 0, - 0, - 0, - 0, - 2237, - 0, - 0, - 0, - 0, - 0, - 2238, - 0, - 2239, - 2241, - 0, - 0, - 2242, - 0, - 0, - 0, - 0, - 0, - 2243, - 0, - 0, - 0, - 0, - 0, - 0, - 2252, - 0, - 0, - 2253, - 0, - 0, - 0, - 2257, - 2258, - 0, - 0, - 0, - 2260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2262, - 0, - 2264, - 0, - 0, - 0, - 0, - 0, - 2269, - 2270, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2271, - 0, - 2273, - 0, - 0, - 0, - 0, - 2277, - 0, - 0, - 0, - 0, - 2278, - 0, - 0, - 0, - 0, - 2279, - 0, - 2280, - 0, - 2283, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2289, - 2290, - 0, - 0, - 0, - 0, - 2291, - 0, - 2292, - 0, - 0, - 0, - 2293, - 2295, - 2296, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2298, - 0, - 0, - 0, - 0, - 0, - 2303, - 0, - 2305, - 0, - 0, - 2306, - 0, - 2307, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2313, - 2314, - 2315, - 2316, - 0, - 0, - 2318, - 0, - 2319, - 0, - 2322, - 0, - 0, - 2323, - 0, - 2324, - 0, - 2326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2335, - 0, - 2336, - 2338, - 2339, - 0, - 2340, - 0, - 0, - 0, - 2355, - 0, - 2375, - 0, - 2382, - 2386, - 0, - 2387, - 0, - 0, - 2394, - 0, - 0, - 0, - 0, - 2395, - 0, - 2397, - 0, - 0, - 0, - 0, - 0, - 2398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2399, - 2402, - 2404, - 2408, - 2411, - 0, - 0, - 0, - 2413, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2415, - 0, - 0, - 2416, - 2417, - 2419, - 0, - 2420, - 0, - 0, - 0, - 0, - 0, - 2425, - 0, - 0, - 0, - 2426, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2427, - 2428, - 0, - 2429, - 0, - 0, - 2430, - 2434, - 0, - 2436, - 0, - 0, - 0, - 0, - 0, - 0, - 2441, - 2442, - 0, - 2445, - 0, - 0, - 2446, - 2457, - 0, - 2459, - 0, - 0, - 2462, - 0, - 2464, - 0, - 2477, - 0, - 2478, - 2486, - 0, - 0, - 0, - 2491, - 0, - 0, - 2493, - 0, - 0, - 2494, - 0, - 2495, - 0, - 2513, - 2523, - 0, - 0, - 0, - 0, - 2524, - 0, - 0, - 0, - 0, - 0, - 0, - 2528, - 2529, - 2530, - 0, - 0, - 2531, - 0, - 2533, - 0, - 0, - 2534, - 2535, - 0, - 2536, - 2537, - 0, - 2538, - 0, - 2539, - 2540, - 0, - 0, - 0, - 2545, - 2546, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2548, - 0, - 0, - 2549, - 0, - 2550, - 2555, - 0, - 0, - 0, - 0, - 0, - 2557, - 0, - 2560, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2561, - 0, - 2576, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2577, - 2578, - 0, - 0, - 0, - 2579, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2580, - 0, - 0, - 0, - 0, - 2581, - 0, - 0, - 0, - 0, - 2583, - 0, - 2584, - 0, - 2588, - 2590, - 0, - 0, - 0, - 2591, - 0, - 0, - 0, - 0, - 2593, - 2594, - 0, - 2595, - 0, - 2601, - 2602, - 0, - 0, - 2603, - 0, - 2605, - 0, - 0, - 0, - 2606, - 2607, - 2611, - 0, - 2615, - 0, - 0, - 0, - 2617, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2619, - 0, - 0, - 2620, - 0, - 0, - 0, - 2621, - 0, - 2623, - 0, - 2625, - 0, - 0, - 2628, - 2629, - 0, - 0, - 2635, - 2636, - 2637, - 0, - 0, - 2639, - 0, - 0, - 0, - 2642, - 0, - 0, - 0, - 0, - 2643, - 0, - 2644, - 0, - 2649, - 0, - 0, - 0, - 0, - 0, - 0, - 2655, - 2656, - 0, - 0, - 2657, - 0, - 0, - 0, - 0, - 0, - 2658, - 0, - 0, - 0, - 0, - 0, - 2659, - 0, - 0, - 0, - 0, - 2664, - 2685, - 0, - 2687, - 0, - 2688, - 0, - 0, - 2689, - 0, - 0, - 2694, - 0, - 2695, - 0, - 0, - 2698, - 0, - 2701, - 2706, - 0, - 0, - 0, - 2707, - 0, - 2709, - 2710, - 2711, - 0, - 0, - 0, - 2720, - 2730, - 2735, - 0, - 0, - 0, - 0, - 2738, - 2740, - 0, - 0, - 0, - 0, - 2747, - 0, - 0, - 0, - 0, - 0, - 0, - 2748, - 0, - 0, - 2749, - 0, - 0, - 0, - 0, - 0, - 2750, - 0, - 0, - 2752, - 2754, - 0, - 0, - 0, - 0, - 0, - 2758, - 0, - 0, - 0, - 0, - 2762, - 0, - 0, - 0, - 0, - 2763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2764, - 2767, - 0, - 0, - 0, - 0, - 2768, - 0, - 0, - 2770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2772, - 0, - 0, - 0, - 0, - 0, - 2773, - 2776, - 0, - 0, - 2783, - 0, - 0, - 2784, - 0, - 2789, - 0, - 2790, - 0, - 0, - 0, - 2792, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2793, - 2795, - 0, - 0, - 0, - 0, - 0, - 0, - 2796, - 0, - 0, - 0, - 0, - 0, - 0, - 2797, - 2799, - 0, - 0, - 0, - 0, - 2803, - 0, - 0, - 0, - 0, - 2806, - 0, - 2807, - 2808, - 2817, - 2819, - 0, - 0, - 0, - 0, - 0, - 2821, - 0, - 0, - 0, - 0, - 2822, - 2823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2824, - 0, - 0, - 2828, - 0, - 2834, - 0, - 0, - 0, - 0, - 0, - 0, - 2836, - 0, - 2838, - 0, - 0, - 2839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2841, - 0, - 0, - 0, - 2842, - 0, - 0, - 0, - 0, - 0, - 2843, - 2844, - 0, - 0, - 0, - 0, - 2846, - 0, - 0, - 2847, - 0, - 2849, - 0, - 2853, - 0, - 0, - 0, - 0, - 0, - 2857, - 0, - 0, - 0, - 0, - 2858, - 0, - 2859, - 0, - 0, - 2860, - 0, - 2862, - 2868, - 0, - 0, - 0, - 0, - 2875, - 0, - 2876, - 0, - 0, - 2877, - 2878, - 2884, - 2889, - 2890, - 0, - 0, - 2891, - 0, - 0, - 2892, - 0, - 0, - 0, - 2906, - 2912, - 0, - 2913, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2916, - 0, - 2934, - 0, - 0, - 0, - 0, - 0, - 2935, - 0, - 0, - 0, - 0, - 2939, - 0, - 2940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2941, - 0, - 0, - 0, - 2946, - 0, - 2949, - 0, - 0, - 2950, - 2954, - 2955, - 0, - 0, - 0, - 2959, - 2961, - 0, - 0, - 2962, - 0, - 2963, - 0, - 0, - 0, - 0, - 0, - 0, - 2964, - 2965, - 2966, - 2967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2969, - 0, - 0, - 0, - 0, - 0, - 2970, - 2975, - 0, - 2982, - 2983, - 2984, - 0, - 0, - 0, - 0, - 0, - 2989, - 0, - 0, - 2990, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2991, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2998, - 0, - 3000, - 3001, - 0, - 0, - 3002, - 0, - 0, - 0, - 3003, - 0, - 0, - 3012, - 0, - 0, - 3022, - 0, - 0, - 3024, - 0, - 0, - 3025, - 3027, - 0, - 0, - 0, - 3030, - 0, - 0, - 0, - 0, - 3034, - 3035, - 0, - 0, - 3036, - 0, - 3039, - 0, - 3049, - 0, - 0, - 3050, - 0, - 0, - 0, - 0, - 0, - 0, - 3051, - 0, - 3053, - 0, - 0, - 0, - 0, - 3057, - 0, - 3058, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3063, - 0, - 0, - 3073, - 3074, - 3078, - 3079, - 0, - 3080, - 3086, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3087, - 0, - 3092, - 0, - 3095, - 0, - 3099, - 0, - 0, - 0, - 3100, - 0, - 3101, - 3102, - 0, - 3122, - 0, - 0, - 0, - 3124, - 0, - 3125, - 0, - 0, - 0, - 0, - 0, - 0, - 3132, - 3134, - 0, - 0, - 3136, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3147, - 0, - 0, - 3149, - 0, - 0, - 0, - 0, - 0, - 3150, - 3151, - 3152, - 0, - 0, - 0, - 0, - 3158, - 0, - 0, - 3160, - 0, - 0, - 3161, - 0, - 0, - 3162, - 0, - 3163, - 3166, - 3168, - 0, - 0, - 3169, - 3170, - 0, - 0, - 3171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3182, - 0, - 3184, - 0, - 0, - 3188, - 0, - 0, - 3194, - 0, - 0, - 0, - 0, - 0, - 0, - 3204, - 0, - 0, - 0, - 0, - 3209, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3216, - 3217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3219, - 0, - 0, - 3220, - 3222, - 0, - 3223, - 0, - 0, - 0, - 0, - 3224, - 0, - 3225, - 3226, - 0, - 3228, - 3233, - 0, - 3239, - 3241, - 3242, - 0, - 0, - 3251, - 3252, - 3253, - 3255, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3260, - 0, - 0, - 3261, - 0, - 0, - 0, - 3267, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3271, - 0, - 0, - 0, - 3278, - 0, - 3282, - 0, - 0, - 0, - 3284, - 0, - 0, - 0, - 3285, - 3286, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3287, - 3292, - 0, - 0, - 0, - 0, - 3294, - 3296, - 0, - 0, - 3299, - 3300, - 3301, - 0, - 3302, - 0, - 0, - 0, - 0, - 0, - 3304, - 3306, - 0, - 0, - 0, - 0, - 0, - 0, - 3308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3312, - 3314, - 3315, - 0, - 3318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3319, - 0, - 0, - 0, - 0, - 0, - 3321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3322, - 0, - 0, - 3324, - 3325, - 0, - 0, - 3326, - 0, - 0, - 3328, - 3329, - 3331, - 0, - 0, - 3335, - 0, - 0, - 3337, - 0, - 3338, - 0, - 0, - 0, - 0, - 3343, - 3347, - 0, - 0, - 0, - 3348, - 0, - 0, - 3351, - 0, - 0, - 0, - 0, - 0, - 0, - 3354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3355, - 0, - 0, - 3365, - 3366, - 3367, - 0, - 0, - 0, - 0, - 0, - 0, - 3368, - 3369, - 0, - 3370, - 0, - 0, - 3373, - 0, - 0, - 3376, - 0, - 0, - 3377, - 0, - 3379, - 3387, - 0, - 0, - 0, - 0, - 0, - 3390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3402, - 0, - 3403, - 3436, - 3437, - 3439, - 0, - 0, - 3441, - 0, - 0, - 0, - 3442, - 0, - 0, - 3449, - 0, - 0, - 0, - 3450, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3451, - 0, - 0, - 3452, - 0, - 3453, - 3456, - 0, - 3457, - 0, - 0, - 3458, - 0, - 3459, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3460, - 0, - 0, - 3469, - 3470, - 0, - 0, - 3475, - 0, - 0, - 0, - 3480, - 3487, - 3489, - 0, - 3490, - 0, - 0, - 3491, - 3499, - 0, - 3500, - 0, - 0, - 3501, - 0, - 0, - 0, - 3502, - 0, - 3514, - 0, - 0, - 0, - 3516, - 3517, - 0, - 0, - 0, - 3518, - 0, - 0, - 0, - 0, - 3520, - 3521, - 3522, - 0, - 0, - 3526, - 3530, - 0, - 0, - 0, - 0, - 3531, - 0, - 0, - 0, - 0, - 3536, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3539, - 3541, - 0, - 0, - 3542, - 3544, - 0, - 3547, - 3548, - 0, - 0, - 3550, - 0, - 3553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3554, - 0, - 3555, - 0, - 3558, - 0, - 3559, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3563, - 0, - 3581, - 0, - 0, - 0, - 3599, - 0, - 0, - 0, - 3600, - 0, - 3601, - 0, - 3602, - 3603, - 0, - 0, - 3606, - 3608, - 0, - 3610, - 3611, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3612, - 3616, - 3619, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3624, - 3628, - 0, - 3629, - 3634, - 3635, - 0, - 0, - 0, - 0, - 0, - 0, - 3636, - 0, - 3637, - 0, - 0, - 3638, - 3651, - 0, - 0, - 0, - 0, - 0, - 0, - 3652, - 3653, - 0, - 0, - 0, - 0, - 3656, - 3657, - 0, - 0, - 0, - 0, - 0, - 3658, - 0, - 0, - 0, - 0, - 3659, - 0, - 3661, - 3663, - 3664, - 0, - 3665, - 0, - 3692, - 0, - 0, - 0, - 3694, - 3696, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3698, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3700, - 0, - 0, - 3701, - 0, - 0, - 0, - 3708, - 3709, - 0, - 0, - 0, - 3711, - 3712, - 0, - 0, - 0, - 0, - 0, - 3723, - 0, - 3724, - 3725, - 0, - 0, - 3726, - 0, - 0, - 0, - 0, - 0, - 0, - 3728, - 3729, - 0, - 3734, - 3735, - 3737, - 0, - 0, - 0, - 3743, - 0, - 3745, - 0, - 0, - 3746, - 0, - 0, - 3747, - 3748, - 0, - 3757, - 0, - 3759, - 3766, - 3767, - 0, - 3768, - 0, - 0, - 0, - 0, - 3769, - 0, - 0, - 3771, - 0, - 3774, - 0, - 0, - 0, - 0, - 0, - 0, - 3775, - 0, - 0, - 0, - 0, - 0, - 0, - 3776, - 0, - 3777, - 3786, - 0, - 3788, - 3789, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3791, - 0, - 3811, - 0, - 0, - 0, - 0, - 0, - 3814, - 3815, - 3816, - 3820, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3821, - 0, - 0, - 3825, - 0, - 0, - 0, - 0, - 3835, - 0, - 0, - 3848, - 3849, - 0, - 0, - 0, - 0, - 3850, - 3851, - 3853, - 0, - 0, - 0, - 0, - 3859, - 0, - 3860, - 3862, - 0, - 0, - 0, - 0, - 0, - 3863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3873, - 0, - 3874, - 0, - 3875, - 3886, - 0, - 3887, - 0, - 0, - 0, - 0, - 3892, - 3913, - 0, - 3914, - 0, - 0, - 0, - 3925, - 3931, - 0, - 0, - 0, - 0, - 3934, - 3941, - 3942, - 0, - 0, - 0, - 0, - 3943, - 0, - 0, - 0, - 3944, - 0, - 0, - 0, - 0, - 0, - 3945, - 0, - 3947, - 0, - 0, - 0, - 3956, - 3957, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3958, - 0, - 3959, - 3965, - 0, - 0, - 0, - 0, - 3966, - 0, - 0, - 0, - 3967, - 0, - 0, - 0, - 3968, - 3974, - 0, - 0, - 0, - 0, - 0, - 3975, - 3977, - 3978, - 0, - 0, - 0, - 0, - 3980, - 0, - 3985, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 3986, - 4011, - 0, - 0, - 4017, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4018, - 0, - 0, - 0, - 0, - 4019, - 0, - 4023, - 0, - 0, - 0, - 4027, - 4028, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4031, - 4034, - 0, - 0, - 4035, - 4037, - 4039, - 4040, - 0, - 0, - 0, - 0, - 0, - 4059, - 0, - 4060, - 4061, - 0, - 4062, - 4063, - 4066, - 0, - 0, - 4072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4088, - 0, - 0, - 0, - 0, - 0, - 4091, - 0, - 0, - 0, - 0, - 4094, - 4095, - 0, - 0, - 4096, - 0, - 0, - 0, - 0, - 0, - 4098, - 4099, - 0, - 0, - 0, - 4101, - 0, - 4104, - 0, - 0, - 0, - 4105, - 4108, - 0, - 4113, - 0, - 0, - 4115, - 4116, - 0, - 4126, - 0, - 0, - 4127, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4128, - 4132, - 4133, - 0, - 4134, - 0, - 0, - 0, - 4137, - 0, - 0, - 4141, - 0, - 0, - 0, - 0, - 4144, - 4146, - 4147, - 0, - 0, - 0, - 0, - 4148, - 0, - 0, - 4311, - 0, - 0, - 0, - 4314, - 4329, - 0, - 4331, - 4332, - 0, - 4333, - 0, - 4334, - 0, - 0, - 0, - 4335, - 0, - 4336, - 0, - 0, - 0, - 4337, - 0, - 0, - 0, - 4342, - 4345, - 4346, - 4350, - 0, - 4351, - 4352, - 0, - 4354, - 4355, - 0, - 0, - 4364, - 0, - 0, - 0, - 0, - 4369, - 0, - 0, - 0, - 4373, - 0, - 4374, - 0, - 0, - 0, - 0, - 4377, - 0, - 0, - 0, - 0, - 4378, - 0, - 0, - 0, - 4380, - 0, - 0, - 0, - 4381, - 4382, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4384, - 0, - 0, - 0, - 0, - 4385, - 0, - 0, - 0, - 4386, - 0, - 0, - 0, - 4391, - 4398, - 0, - 0, - 0, - 0, - 4407, - 4409, - 0, - 0, - 0, - 0, - 4410, - 0, - 0, - 4411, - 0, - 4414, - 4415, - 4418, - 0, - 4427, - 4428, - 4430, - 0, - 4431, - 0, - 4448, - 0, - 0, - 0, - 0, - 0, - 4449, - 0, - 0, - 0, - 4451, - 4452, - 0, - 4453, - 4454, - 0, - 4456, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4459, - 0, - 4463, - 0, - 0, - 0, - 0, - 0, - 4466, - 0, - 4467, - 0, - 4469, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4470, - 4471, - 0, - 4473, - 0, - 0, - 4475, - 0, - 0, - 0, - 0, - 4477, - 4478, - 0, - 0, - 0, - 4479, - 4481, - 0, - 4482, - 0, - 4484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4486, - 0, - 0, - 4488, - 0, - 0, - 4497, - 0, - 4508, - 0, - 0, - 4510, - 4511, - 0, - 4520, - 4523, - 0, - 4524, - 0, - 4525, - 0, - 4527, - 0, - 0, - 4528, - 0, - 0, - 0, - 0, - 4530, - 0, - 4531, - 0, - 0, - 4532, - 0, - 0, - 0, - 4533, - 0, - 0, - 0, - 0, - 0, - 4535, - 0, - 0, - 0, - 4536, - 0, - 0, - 0, - 0, - 0, - 4541, - 4543, - 4544, - 4545, - 4547, - 0, - 4548, - 0, - 0, - 0, - 0, - 4550, - 4551, - 0, - 4553, - 0, - 0, - 0, - 0, - 4562, - 0, - 0, - 4571, - 0, - 0, - 0, - 4574, - 0, - 0, - 0, - 4575, - 0, - 4576, - 0, - 4577, - 0, - 0, - 0, - 4581, - 0, - 0, - 0, - 0, - 0, - 4582, - 0, - 0, - 4586, - 0, - 0, - 0, - 4588, - 0, - 0, - 4597, - 0, - 4598, - 0, - 0, - 0, - 0, - 4616, - 4617, - 0, - 4618, - 0, - 0, - 0, - 0, - 4619, - 0, - 4620, - 0, - 0, - 4621, - 0, - 4624, - 0, - 0, - 0, - 0, - 0, - 4625, - 0, - 0, - 0, - 0, - 4657, - 0, - 4659, - 0, - 4667, - 0, - 0, - 0, - 4668, - 4670, - 0, - 4672, - 0, - 0, - 0, - 0, - 0, - 4673, - 4676, - 0, - 0, - 0, - 0, - 4687, - 0, - 0, - 0, - 0, - 4697, - 0, - 0, - 0, - 0, - 4699, - 0, - 4701, - 0, - 0, - 0, - 0, - 4702, - 0, - 0, - 4706, - 0, - 0, - 4713, - 0, - 0, - 0, - 4714, - 4715, - 4716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4717, - 0, - 0, - 4720, - 0, - 4721, - 4729, - 4735, - 0, - 0, - 0, - 4737, - 0, - 0, - 0, - 4739, - 0, - 0, - 0, - 4740, - 0, - 0, - 0, - 4741, - 0, - 0, - 0, - 0, - 0, - 4742, - 0, - 4745, - 4746, - 4747, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4748, - 0, - 0, - 0, - 4749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4751, - 4786, - 0, - 4787, - 0, - 4788, - 4796, - 0, - 0, - 4797, - 4798, - 0, - 4799, - 4806, - 4807, - 0, - 0, - 0, - 0, - 4809, - 4810, - 0, - 0, - 0, - 0, - 0, - 0, - 4811, - 0, - 0, - 0, - 0, - 0, - 4812, - 0, - 4813, - 0, - 0, - 4815, - 0, - 4821, - 4822, - 0, - 0, - 0, - 0, - 4823, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4824, - 0, - 0, - 0, - 0, - 4826, - 0, - 0, - 0, - 4828, - 0, - 4829, - 0, - 0, - 0, - 4843, - 0, - 0, - 4847, - 0, - 4853, - 4855, - 4858, - 0, - 0, - 0, - 0, - 0, - 4859, - 0, - 4864, - 0, - 0, - 4879, - 0, - 0, - 0, - 0, - 4880, - 0, - 0, - 0, - 0, - 4881, - 0, - 4882, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4883, - 0, - 0, - 0, - 0, - 4884, - 0, - 0, - 0, - 0, - 0, - 4886, - 4887, - 4888, - 4894, - 4896, - 0, - 4902, - 0, - 0, - 4905, - 0, - 0, - 4915, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4916, - 4917, - 4919, - 4921, - 0, - 0, - 0, - 0, - 0, - 4926, - 0, - 0, - 0, - 0, - 4927, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4929, - 0, - 4930, - 4931, - 0, - 4938, - 0, - 4952, - 0, - 4953, - 4957, - 4960, - 4964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5019, - 5020, - 5022, - 0, - 0, - 0, - 0, - 0, - 5023, - 0, - 0, - 0, - 5024, - 0, - 0, - 0, - 5025, - 0, - 0, - 0, - 0, - 5028, - 0, - 0, - 0, - 0, - 5029, - 5030, - 5031, - 0, - 5033, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5034, - 5035, - 0, - 5036, - 0, - 0, - 5037, - 0, - 0, - 0, - 0, - 5038, - 0, - 0, - 5039, - 0, - 0, - 0, - 5041, - 5042, - 0, - 0, - 0, - 0, - 5044, - 5049, - 5054, - 0, - 5055, - 0, - 5057, - 0, - 0, - 0, - 5060, - 0, - 0, - 0, - 0, - 0, - 5063, - 0, - 5064, - 5065, - 0, - 5067, - 0, - 0, - 0, - 5068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5076, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5077, - 0, - 0, - 5078, - 5080, - 0, - 0, - 5083, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5085, - 0, - 0, - 0, - 0, - 0, - 0, - 5098, - 5099, - 5101, - 5105, - 5107, - 0, - 5108, - 0, - 5109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5110, - 0, - 0, - 0, - 0, - 0, - 5117, - 5118, - 0, - 5121, - 0, - 5122, - 0, - 0, - 5130, - 0, - 0, - 0, - 5137, - 0, - 0, - 0, - 5148, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5151, - 5154, - 0, - 0, - 0, - 5155, - 0, - 0, - 5156, - 5159, - 5161, - 0, - 0, - 0, - 0, - 5162, - 0, - 0, - 0, - 0, - 5163, - 5164, - 0, - 5166, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5167, - 0, - 0, - 0, - 5172, - 0, - 0, - 0, - 0, - 0, - 0, - 5178, - 5179, - 0, - 0, - 5190, - 0, - 0, - 5191, - 5192, - 5194, - 0, - 0, - 5198, - 5201, - 0, - 0, - 0, - 0, - 0, - 5203, - 0, - 5206, - 5209, - 0, - 0, - 0, - 0, - 0, - 0, - 5213, - 0, - 5214, - 5216, - 0, - 0, - 0, - 0, - 0, - 5217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5218, - 5219, - 0, - 5231, - 0, - 0, - 5244, - 5249, - 0, - 5254, - 0, - 5255, - 0, - 0, - 5257, - 0, - 0, - 0, - 0, - 0, - 5258, - 0, - 5260, - 5270, - 0, - 5277, - 0, - 0, - 0, - 0, - 0, - 0, - 5280, - 5281, - 5282, - 5283, - 0, - 0, - 0, - 0, - 0, - 5284, - 0, - 5285, - 0, - 0, - 0, - 0, - 0, - 5287, - 5288, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5289, - 5291, - 0, - 0, - 5294, - 0, - 0, - 5295, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5304, - 0, - 0, - 5306, - 5307, - 5308, - 0, - 5309, - 0, - 0, - 5310, - 0, - 0, - 0, - 0, - 5311, - 5312, - 0, - 5313, - 0, - 0, - 0, - 0, - 0, - 5316, - 0, - 0, - 0, - 5317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5325, - 0, - 0, - 0, - 0, - 0, - 0, - 5326, - 0, - 5327, - 5329, - 0, - 5332, - 0, - 0, - 0, - 0, - 5338, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5340, - 0, - 0, - 5341, - 0, - 0, - 0, - 5342, - 0, - 5343, - 5344, - 0, - 0, - 5345, - 0, - 0, - 0, - 0, - 0, - 0, - 5347, - 5348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5349, - 0, - 5350, - 0, - 5354, - 0, - 0, - 0, - 0, - 5358, - 0, - 0, - 5359, - 0, - 0, - 5361, - 0, - 0, - 5365, - 0, - 5367, - 0, - 5373, - 0, - 0, - 0, - 5379, - 0, - 0, - 0, - 5380, - 0, - 0, - 0, - 5382, - 0, - 5384, - 0, - 0, - 0, - 0, - 0, - 0, - 5385, - 0, - 0, - 0, - 0, - 5387, - 0, - 0, - 0, - 0, - 0, - 0, - 5388, - 5390, - 5393, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5396, - 0, - 0, - 0, - 0, - 5397, - 5402, - 0, - 0, - 0, - 0, - 0, - 5403, - 0, - 0, - 0, - 5404, - 5405, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5406, - 0, - 0, - 0, - 0, - 5410, - 0, - 0, - 5411, - 0, - 5415, - 0, - 0, - 0, - 0, - 5416, - 5434, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5438, - 0, - 5440, - 0, - 0, - 0, - 0, - 0, - 0, - 5441, - 5442, - 0, - 0, - 0, - 5443, - 5444, - 5447, - 0, - 0, - 5448, - 5449, - 5451, - 0, - 0, - 0, - 5456, - 5457, - 0, - 0, - 0, - 5459, - 0, - 0, - 0, - 5461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5464, - 0, - 5466, - 0, - 0, - 5467, - 0, - 5470, - 0, - 0, - 5473, - 0, - 0, - 5474, - 0, - 0, - 5476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5477, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5484, - 0, - 0, - 5485, - 5486, - 0, - 0, - 0, - 0, - 0, - 5488, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5489, - 0, - 0, - 0, - 0, - 0, - 5507, - 0, - 0, - 0, - 5510, - 0, - 5511, - 0, - 0, - 5512, - 0, - 0, - 0, - 5513, - 0, - 5515, - 0, - 0, - 5516, - 5517, - 0, - 5518, - 0, - 0, - 5522, - 0, - 0, - 0, - 0, - 0, - 5534, - 5535, - 0, - 0, - 5536, - 0, - 5538, - 0, - 0, - 5543, - 0, - 5544, - 0, - 0, - 5545, - 0, - 5547, - 0, - 5557, - 0, - 0, - 5558, - 0, - 5560, - 5567, - 0, - 0, - 0, - 0, - 5568, - 0, - 0, - 0, - 5571, - 5573, - 0, - 5574, - 0, - 5575, - 0, - 0, - 0, - 0, - 5577, - 0, - 0, - 5598, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5600, - 5609, - 0, - 0, - 0, - 0, - 5610, - 0, - 0, - 5612, - 0, - 5624, - 0, - 5625, - 0, - 0, - 0, - 5629, - 0, - 5641, - 0, - 5642, - 5643, - 0, - 0, - 0, - 0, - 0, - 0, - 5651, - 0, - 0, - 0, - 5652, - 5653, - 0, - 5661, - 5662, - 5678, - 0, - 5679, - 0, - 0, - 0, - 0, - 5685, - 5686, - 0, - 0, - 0, - 0, - 0, - 5690, - 5692, - 0, - 5703, - 0, - 0, - 0, - 0, - 0, - 5706, - 0, - 0, - 0, - 0, - 5707, - 0, - 0, - 0, - 0, - 0, - 0, - 5708, - 0, - 0, - 5709, - 0, - 5710, - 0, - 0, - 0, - 5712, - 0, - 5733, - 0, - 5734, - 5735, - 0, - 0, - 5744, - 5751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5752, - 0, - 5754, - 0, - 0, - 0, - 0, - 0, - 0, - 5757, - 5758, - 0, - 5760, - 5761, - 0, - 0, - 0, - 0, - 5763, - 5764, - 5765, - 0, - 5766, - 0, - 5767, - 5768, - 0, - 5770, - 0, - 0, - 0, - 0, - 5776, - 5780, - 0, - 0, - 0, - 0, - 5782, - 0, - 0, - 0, - 0, - 5784, - 0, - 0, - 5788, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5797, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5799, - 0, - 0, - 5801, - 0, - 0, - 0, - 5811, - 0, - 0, - 0, - 0, - 0, - 0, - 5816, - 0, - 0, - 5827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5830, - 5831, - 0, - 0, - 5832, - 0, - 0, - 5833, - 0, - 5835, - 5844, - 5845, - 0, - 5846, - 0, - 0, - 0, - 0, - 0, - 5850, - 0, - 0, - 0, - 0, - 0, - 5852, - 0, - 5855, - 5857, - 0, - 0, - 5859, - 0, - 5861, - 0, - 0, - 5863, - 0, - 5865, - 0, - 0, - 0, - 5873, - 5875, - 0, - 0, - 0, - 5877, - 0, - 5879, - 0, - 0, - 0, - 5888, - 0, - 0, - 5889, - 5891, - 0, - 5894, - 0, - 0, - 0, - 0, - 0, - 0, - 5895, - 0, - 5897, - 0, - 0, - 0, - 0, - 0, - 0, - 5907, - 0, - 5911, - 0, - 0, - 5912, - 0, - 5913, - 5922, - 5924, - 0, - 5927, - 5928, - 0, - 0, - 0, - 0, - 5929, - 5930, - 0, - 5933, - 0, - 0, - 0, - 0, - 5949, - 0, - 0, - 5951, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5953, - 0, - 0, - 5954, - 0, - 5959, - 5960, - 5961, - 0, - 5964, - 0, - 0, - 0, - 5976, - 5978, - 5987, - 5990, - 0, - 0, - 0, - 0, - 0, - 5991, - 0, - 5992, - 0, - 0, - 0, - 5994, - 5995, - 0, - 0, - 5996, - 0, - 0, - 6001, - 6003, - 0, - 0, - 0, - 0, - 6007, - 0, - 0, - 0, - 0, - 0, - 6008, - 0, - 0, - 6009, - 0, - 6010, - 0, - 0, - 0, - 6011, - 6015, - 0, - 6017, - 0, - 6019, - 0, - 6023, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6025, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6026, - 0, - 6030, - 0, - 0, - 6032, - 0, - 0, - 0, - 6033, - 6038, - 6040, - 0, - 0, - 0, - 6041, - 6045, - 0, - 0, - 6046, - 0, - 0, - 6053, - 0, - 0, - 6054, - 0, - 6055, - 0, - 0, - 0, - 0, - 0, - 0, - 6057, - 0, - 6063, - 0, - 0, - 0, - 6064, - 0, - 6066, - 6071, - 6072, - 0, - 0, - 0, - 0, - 0, - 0, - 6075, - 6076, - 0, - 0, - 6077, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6078, - 6079, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6080, - 0, - 6083, - 0, - 0, - 0, - 0, - 0, - 6084, - 0, - 0, - 6088, - 0, - 6089, - 0, - 0, - 6093, - 6105, - 0, - 0, - 6107, - 0, - 6110, - 0, - 0, - 0, - 6111, - 6125, - 6126, - 0, - 0, - 0, - 6129, - 0, - 0, - 0, - 0, - 6130, - 0, - 0, - 0, - 6131, - 6134, - 0, - 0, - 0, - 0, - 0, - 0, - 6142, - 0, - 0, - 0, - 0, - 0, - 6144, - 0, - 0, - 6146, - 6151, - 6153, - 0, - 6156, - 0, - 6163, - 0, - 6180, - 6181, - 0, - 0, - 0, - 0, - 0, - 6182, - 0, - 0, - 0, - 0, - 6184, - 6195, - 0, - 0, - 6206, - 0, - 6208, - 0, - 0, - 6212, - 6213, - 6214, - 0, - 6215, - 0, - 0, - 0, - 6228, - 0, - 0, - 0, - 6234, - 0, - 0, - 0, - 0, - 0, - 0, - 6235, - 6240, - 0, - 6242, - 6243, - 6244, - 0, - 6250, - 6255, - 0, - 0, - 0, - 0, - 0, - 6257, - 0, - 0, - 0, - 6258, - 6278, - 0, - 6284, - 0, - 0, - 0, - 6285, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6286, - 0, - 0, - 0, - 6320, - 0, - 0, - 6322, - 6332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6334, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6335, - 0, - 0, - 6337, - 0, - 6338, - 0, - 6339, - 6340, - 0, - 0, - 6356, - 6357, - 6369, - 0, - 0, - 0, - 6370, - 6371, - 6372, - 0, - 6373, - 0, - 0, - 0, - 0, - 0, - 6376, - 0, - 0, - 0, - 0, - 0, - 6382, - 6383, - 6384, - 0, - 0, - 0, - 0, - 6386, - 0, - 6389, - 6397, - 6400, - 6411, - 0, - 6414, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6415, - 6416, - 0, - 0, - 0, - 0, - 0, - 0, - 6417, - 0, - 0, - 0, - 0, - 6418, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6420, - 0, - 6421, - 6423, - 6425, - 0, - 6429, - 6430, - 0, - 6433, - 6438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6439, - 6440, - 0, - 0, - 6441, - 0, - 0, - 6444, - 0, - 0, - 0, - 0, - 6446, - 0, - 0, - 0, - 0, - 6447, - 6448, - 0, - 0, - 6450, - 0, - 0, - 0, - 6454, - 0, - 0, - 6455, - 0, - 6461, - 0, - 0, - 0, - 0, - 0, - 0, - 6462, - 0, - 0, - 6463, - 0, - 6464, - 0, - 6465, - 6467, - 0, - 0, - 0, - 6468, - 0, - 6479, - 6480, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6481, - 0, - 0, - 6485, - 6487, - 0, - 0, - 0, - 0, - 0, - 0, - 6493, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6494, - 6495, - 6496, - 0, - 0, - 0, - 0, - 0, - 6498, - 0, - 0, - 0, - 6507, - 6508, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6511, - 6512, - 0, - 0, - 0, - 0, - 6513, - 0, - 0, - 0, - 6514, - 0, - 0, - 0, - 0, - 0, - 6516, - 0, - 0, - 6517, - 6518, - 0, - 0, - 0, - 6519, - 6520, - 6521, - 0, - 6523, - 0, - 0, - 0, - 0, - 6524, - 6528, - 0, - 6530, - 0, - 0, - 6532, - 0, - 6578, - 0, - 0, - 0, - 6583, - 0, - 6584, - 0, - 0, - 0, - 6587, - 0, - 0, - 0, - 6590, - 0, - 6591, - 0, - 0, - 0, - 0, - 0, - 6592, - 0, - 0, - 0, - 0, - 6593, - 6594, - 0, - 0, - 0, - 0, - 0, - 6599, - 6600, - 0, - 0, - 6601, - 6602, - 6604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6608, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6610, - 6611, - 0, - 6615, - 0, - 6616, - 6618, - 6620, - 0, - 6637, - 0, - 0, - 0, - 0, - 6639, - 0, - 0, - 0, - 0, - 6641, - 0, - 6642, - 0, - 0, - 0, - 6647, - 0, - 6660, - 6663, - 0, - 6664, - 0, - 6666, - 6669, - 0, - 6675, - 6676, - 6677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6678, - 0, - 0, - 0, - 6679, - 0, - 6680, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6693, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6704, - 6705, - 6706, - 0, - 0, - 6711, - 6713, - 0, - 0, - 0, - 0, - 0, - 6716, - 0, - 0, - 0, - 6717, - 0, - 6719, - 6724, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6725, - 6726, - 0, - 0, - 0, - 0, - 0, - 6728, - 6729, - 6735, - 0, - 6737, - 6742, - 0, - 0, - 6743, - 6750, - 0, - 6751, - 0, - 0, - 6752, - 6753, - 0, - 0, - 0, - 0, - 0, - 0, - 6754, - 0, - 0, - 0, - 0, - 0, - 6756, - 0, - 0, - 0, - 0, - 0, - 0, - 6763, - 0, - 0, - 6764, - 6765, - 0, - 0, - 0, - 6770, - 0, - 0, - 0, - 6776, - 6780, - 0, - 6781, - 0, - 0, - 0, - 6783, - 0, - 6784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6785, - 0, - 0, - 0, - 6792, - 0, - 0, - 0, - 6793, - 0, - 0, - 6802, - 0, - 0, - 0, - 0, - 0, - 6803, - 0, - 0, - 0, - 6804, - 0, - 0, - 0, - 6812, - 0, - 0, - 6823, - 0, - 6824, - 6839, - 0, - 0, - 0, - 0, - 6852, - 0, - 0, - 6854, - 0, - 6856, - 6857, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6867, - 0, - 6868, - 6870, - 6872, - 0, - 0, - 0, - 6873, - 6874, - 0, - 0, - 0, - 0, - 0, - 6875, - 0, - 0, - 6877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6878, - 0, - 0, - 0, - 6879, - 0, - 6880, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6887, - 0, - 6888, - 6891, - 6893, - 0, - 6895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6899, - 0, - 0, - 0, - 0, - 6901, - 0, - 0, - 0, - 0, - 6910, - 0, - 6911, - 0, - 0, - 6912, - 0, - 0, - 6913, - 6914, - 0, - 0, - 0, - 6915, - 0, - 0, - 0, - 6916, - 6919, - 0, - 0, - 0, - 0, - 0, - 0, - 6924, - 0, - 6925, - 0, - 0, - 0, - 6926, - 6927, - 6928, - 0, - 6929, - 0, - 6930, - 0, - 0, - 6931, - 6935, - 0, - 6936, - 0, - 0, - 0, - 0, - 6939, - 6940, - 6941, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6942, - 6948, - 6949, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6952, - 6954, - 6963, - 6965, - 6966, - 0, - 0, - 6967, - 6968, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6969, - 0, - 0, - 6970, - 6979, - 0, - 0, - 6980, - 0, - 0, - 6983, - 0, - 0, - 0, - 0, - 0, - 6984, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6988, - 6990, - 6992, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6995, - 0, - 0, - 0, - 7012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7019, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7021, - 0, - 0, - 7022, - 7023, - 7028, - 0, - 7030, - 7033, - 0, - 0, - 0, - 0, - 0, - 0, - 7038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7039, - 0, - 0, - 0, - 0, - 0, - 7046, - 0, - 7047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7048, - 7052, - 0, - 0, - 0, - 0, - 0, - 7054, - 0, - 7060, - 0, - 0, - 0, - 0, - 7061, - 0, - 7065, - 0, - 0, - 0, - 0, - 7067, - 7069, - 0, - 7070, - 7071, - 7072, - 0, - 0, - 7078, - 0, - 7080, - 7081, - 0, - 7083, - 0, - 0, - 0, - 7084, - 7087, - 7088, - 0, - 0, - 7090, - 0, - 7093, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7107, - 0, - 0, - 7108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7110, - 0, - 7114, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7115, - 0, - 7116, - 0, - 0, - 0, - 0, - 0, - 7117, - 0, - 0, - 7118, - 0, - 0, - 7124, - 0, - 7125, - 0, - 0, - 7126, - 0, - 0, - 0, - 0, - 7128, - 0, - 0, - 0, - 0, - 0, - 7129, - 0, - 7130, - 0, - 7132, - 7133, - 0, - 0, - 7134, - 0, - 0, - 7139, - 0, - 7148, - 7150, - 0, - 0, - 0, - 0, - 7152, - 0, - 0, - 0, - 7153, - 7156, - 7157, - 0, - 0, - 0, - 0, - 0, - 7158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7163, - 7165, - 7169, - 0, - 7171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7172, - 0, - 7173, - 7181, - 0, - 0, - 0, - 0, - 0, - 7182, - 7185, - 0, - 0, - 0, - 0, - 7187, - 0, - 7201, - 7204, - 0, - 0, - 0, - 0, - 0, - 7206, - 7207, - 0, - 0, - 0, - 0, - 7211, - 7216, - 0, - 7218, - 0, - 0, - 0, - 0, - 7226, - 7228, - 7230, - 7232, - 7233, - 7235, - 7237, - 0, - 0, - 0, - 0, - 7238, - 7241, - 0, - 7242, - 0, - 0, - 7247, - 0, - 0, - 0, - 7266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7289, - 0, - 0, - 7290, - 7291, - 0, - 0, - 7292, - 0, - 7297, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7300, - 0, - 7301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7302, - 0, - 0, - 0, - 0, - 7305, - 0, - 0, - 0, - 0, - 7307, - 0, - 7308, - 0, - 7310, - 0, - 7335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7337, - 0, - 7343, - 7347, - 0, - 0, - 0, - 0, - 0, - 7348, - 0, - 7349, - 7350, - 7352, - 7354, - 0, - 0, - 0, - 0, - 7357, - 0, - 7358, - 7366, - 0, - 7367, - 7368, - 0, - 0, - 7373, - 0, - 0, - 0, - 7374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7376, - 0, - 0, - 0, - 7377, - 0, - 0, - 0, - 0, - 0, - 7378, - 0, - 7379, - 7380, - 0, - 0, - 0, - 0, - 0, - 7383, - 0, - 0, - 7386, - 0, - 0, - 0, - 0, - 7398, - 0, - 0, - 0, - 7399, - 7400, - 0, - 7401, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7402, - 0, - 0, - 0, - 0, - 0, - 7405, - 0, - 0, - 0, - 0, - 0, - 7406, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7421, - 7427, - 7429, - 0, - 0, - 0, - 7435, - 0, - 0, - 7436, - 0, - 0, - 0, - 7437, - 0, - 0, - 0, - 0, - 0, - 0, - 7438, - 7443, - 0, - 7446, - 0, - 7448, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7456, - 0, - 0, - 0, - 0, - 0, - 7457, - 0, - 0, - 7461, - 0, - 0, - 0, - 0, - 0, - 7462, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7463, - 7466, - 7472, - 0, - 7476, - 0, - 0, - 7490, - 0, - 7491, - 0, - 0, - 7493, - 0, - 0, - 0, - 7498, - 7499, - 0, - 0, - 7508, - 0, - 0, - 0, - 0, - 0, - 7512, - 0, - 0, - 0, - 7513, - 7514, - 7516, - 0, - 0, - 0, - 0, - 7518, - 0, - 0, - 7519, - 7521, - 7522, - 0, - 0, - 0, - 7526, - 0, - 0, - 7529, - 0, - 0, - 7531, - 0, - 7536, - 0, - 7538, - 0, - 7539, - 0, - 0, - 7541, - 7542, - 7546, - 0, - 0, - 0, - 0, - 0, - 7547, - 0, - 7548, - 0, - 0, - 0, - 0, - 0, - 7550, - 0, - 0, - 7552, - 7553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7554, - 7563, - 0, - 7573, - 0, - 0, - 0, - 0, - 0, - 0, - 7574, - 7576, - 0, - 7578, - 7581, - 7583, - 0, - 0, - 0, - 7584, - 0, - 7587, - 0, - 0, - 0, - 0, - 0, - 7589, - 0, - 0, - 0, - 7594, - 0, - 0, - 7595, - 0, - 0, - 7600, - 7602, - 7610, - 0, - 0, - 0, - 0, - 0, - 7612, - 0, - 7613, - 7614, - 0, - 0, - 7615, - 0, - 0, - 7616, - 0, - 7620, - 0, - 7621, - 7622, - 0, - 7623, - 0, - 0, - 0, - 0, - 7626, - 0, - 0, - 0, - 0, - 7627, - 7629, - 7631, - 0, - 0, - 7633, - 0, - 0, - 0, - 0, - 0, - 7639, - 0, - 7640, - 7642, - 0, - 0, - 7643, - 0, - 0, - 0, - 0, - 7644, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7645, - 0, - 0, - 0, - 0, - 0, - 7661, - 7662, - 7663, - 7665, - 0, - 7666, - 0, - 7667, - 0, - 7684, - 7688, - 7690, - 0, - 7691, - 0, - 0, - 0, - 0, - 0, - 0, - 7692, - 0, - 0, - 7700, - 0, - 7707, - 0, - 7708, - 0, - 7709, - 0, - 7721, - 0, - 0, - 0, - 7722, - 0, - 7724, - 0, - 0, - 0, - 0, - 0, - 0, - 7729, - 7731, - 0, - 7732, - 0, - 7733, - 7735, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7739, - 0, - 0, - 7741, - 7745, - 0, - 7748, - 0, - 0, - 0, - 7751, - 0, - 0, - 0, - 7752, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7753, - 0, - 0, - 7756, - 0, - 7757, - 0, - 7759, - 0, - 7760, - 0, - 0, - 0, - 0, - 7761, - 7768, - 0, - 0, - 7769, - 0, - 0, - 7770, - 0, - 0, - 7771, - 0, - 0, - 7772, - 0, - 0, - 7773, - 0, - 0, - 0, - 0, - 0, - 7778, - 7783, - 0, - 0, - 0, - 0, - 0, - 7784, - 7785, - 0, - 7790, - 0, - 0, - 0, - 0, - 7792, - 0, - 7798, - 0, - 0, - 0, - 0, - 0, - 7799, - 0, - 7810, - 0, - 0, - 7813, - 0, - 7814, - 0, - 7816, - 0, - 7818, - 7824, - 7825, - 7826, - 0, - 7828, - 7830, - 0, - 0, - 0, - 7840, - 0, - 7842, - 0, - 7843, - 0, - 0, - 0, - 0, - 7844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7846, - 0, - 0, - 0, - 0, - 0, - 7856, - 7857, - 7858, - 7862, - 0, - 7865, - 0, - 0, - 7866, - 0, - 0, - 7913, - 0, - 0, - 0, - 0, - 7914, - 0, - 0, - 7915, - 7917, - 7918, - 7919, - 0, - 7920, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7921, - 7922, - 0, - 7924, - 0, - 0, - 7925, - 0, - 0, - 7927, - 0, - 7930, - 7935, - 0, - 0, - 7937, - 0, - 0, - 0, - 0, - 0, - 0, - 7939, - 0, - 7940, - 0, - 0, - 0, - 0, - 0, - 7941, - 0, - 0, - 0, - 0, - 7945, - 0, - 0, - 0, - 0, - 7949, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7950, - 0, - 7953, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7968, - 0, - 0, - 0, - 0, - 7969, - 7972, - 7992, - 0, - 7993, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7994, - 0, - 0, - 0, - 0, - 8007, - 8008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8010, - 0, - 0, - 0, - 8012, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8018, - 0, - 8028, - 8029, - 0, - 0, - 8030, - 0, - 0, - 8032, - 8033, - 0, - 0, - 8034, - 8036, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8037, - 0, - 0, - 0, - 8043, - 8052, - 8059, - 8060, - 0, - 0, - 8061, - 0, - 0, - 0, - 8062, - 0, - 8063, - 0, - 8064, - 0, - 8066, - 8068, - 0, - 0, - 0, - 8080, - 8081, - 0, - 8089, - 0, - 0, - 0, - 0, - 0, - 8092, - 0, - 0, - 0, - 0, - 0, - 0, - 8093, - 8110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8111, - 0, - 0, - 0, - 0, - 0, - 8112, - 8115, - 0, - 8117, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8120, - 8121, - 8122, - 8128, - 8129, - 8130, - 8131, - 0, - 0, - 8139, - 0, - 0, - 8144, - 0, - 0, - 0, - 0, - 8145, - 8146, - 8153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8154, - 0, - 8157, - 8160, - 8162, - 0, - 8164, - 8165, - 0, - 0, - 0, - 0, - 8166, - 8167, - 0, - 0, - 8179, - 0, - 0, - 0, - 8185, - 0, - 0, - 0, - 8186, - 0, - 0, - 8187, - 0, - 0, - 0, - 8188, - 0, - 0, - 0, - 0, - 0, - 8204, - 0, - 0, - 0, - 0, - 8210, - 0, - 0, - 0, - 0, - 0, - 8213, - 0, - 8214, - 0, - 0, - 8215, - 0, - 0, - 0, - 0, - 0, - 0, - 8218, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8219, - 0, - 8221, - 0, - 0, - 8222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8225, - 0, - 0, - 0, - 8233, - 0, - 0, - 8242, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8247, - 0, - 8248, - 8252, - 0, - 8256, - 8257, - 0, - 0, - 8261, - 0, - 8264, - 8265, - 0, - 0, - 0, - 0, - 8267, - 0, - 0, - 0, - 8269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8270, - 0, - 0, - 0, - 8278, - 0, - 8279, - 8283, - 0, - 0, - 8285, - 8286, - 8289, - 8292, - 0, - 0, - 0, - 0, - 8293, - 8295, - 8299, - 8300, - 8301, - 0, - 0, - 0, - 0, - 0, - 0, - 8304, - 8307, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8321, - 0, - 0, - 0, - 8322, - 8323, - 8325, - 8326, - 8327, - 0, - 0, - 8332, - 8338, - 0, - 0, - 8340, - 0, - 0, - 0, - 0, - 0, - 8350, - 0, - 0, - 8351, - 0, - 8354, - 8355, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8360, - 8372, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8377, - 0, - 0, - 0, - 0, - 8380, - 0, - 0, - 0, - 8383, - 0, - 8384, - 0, - 0, - 0, - 0, - 8386, - 8392, - 0, - 0, - 8394, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8396, - 8397, - 0, - 8398, - 0, - 8399, - 0, - 0, - 0, - 0, - 0, - 8400, - 0, - 8401, - 8410, - 8411, - 0, - 8412, - 8413, - 8422, - 0, - 0, - 0, - 0, - 8423, - 0, - 0, - 0, - 0, - 8424, - 0, - 0, - 8425, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8441, - 8442, - 0, - 0, - 0, - 0, - 0, - 0, - 8443, - 0, - 0, - 8444, - 0, - 8447, - 0, - 0, - 0, - 0, - 8451, - 0, - 8458, - 0, - 8462, - 0, - 0, - 8468, - 0, - 8469, - 0, - 0, - 0, - 8470, - 0, - 8473, - 8479, - 8480, - 0, - 0, - 0, - 0, - 8481, - 8483, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8484, - 0, - 0, - 8490, - 0, - 0, - 0, - 0, - 0, - 0, - 8491, - 8493, - 8494, - 0, - 8528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8530, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8534, - 8538, - 8540, - 0, - 0, - 8541, - 0, - 0, - 8545, - 0, - 8557, - 0, - 0, - 8569, - 8570, - 0, - 0, - 8571, - 8574, - 8575, - 8579, - 0, - 8583, - 0, - 0, - 0, - 0, - 8591, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8606, - 0, - 8607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8608, - 0, - 0, - 8609, - 0, - 0, - 0, - 8610, - 0, - 0, - 0, - 8611, - 0, - 0, - 8613, - 8617, - 8621, - 0, - 0, - 8622, - 0, - 8623, - 0, - 8624, - 8625, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8637, - 8638, - 8639, - 8650, - 0, - 0, - 0, - 0, - 8652, - 8654, - 8655, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8656, - 0, - 0, - 0, - 0, - 0, - 8657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8658, - 0, - 0, - 8659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8660, - 0, - 0, - 0, - 0, - 0, - 0, - 8661, - 8663, - 8664, - 0, - 0, - 0, - 0, - 8665, - 0, - 8669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8671, - 8674, - 0, - 8684, - 0, - 8686, - 0, - 0, - 0, - 8689, - 0, - 0, - 0, - 8690, - 0, - 8706, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8710, - 0, - 8711, - 8713, - 8714, - 8724, - 8727, - 8728, - 8733, - 8736, - 0, - 8737, - 8739, - 0, - 0, - 0, - 0, - 8742, - 8743, - 8745, - 8754, - 0, - 0, - 0, - 0, - 8756, - 0, - 0, - 0, - 0, - 0, - 0, - 8757, - 8760, - 0, - 0, - 0, - 0, - 0, - 8762, - 8763, - 8764, - 0, - 8766, - 8769, - 8770, - 8773, - 0, - 8774, - 0, - 8779, - 0, - 0, - 0, - 0, - 8780, - 0, - 0, - 8781, - 0, - 0, - 8783, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8785, - 0, - 0, - 0, - 0, - 8786, - 0, - 0, - 0, - 0, - 8788, - 8790, - 0, - 0, - 0, - 8803, - 0, - 8813, - 8814, - 0, - 0, - 0, - 0, - 0, - 8815, - 8816, - 0, - 0, - 0, - 0, - 8818, - 0, - 0, - 0, - 0, - 8822, - 8828, - 8829, - 0, - 8831, - 0, - 0, - 0, - 0, - 8833, - 0, - 0, - 0, - 8834, - 0, - 0, - 0, - 8835, - 0, - 8836, - 0, - 0, - 0, - 8837, - 0, - 0, - 0, - 0, - 0, - 0, - 8838, - 8839, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8840, - 0, - 0, - 0, - 8841, - 0, - 8842, - 0, - 0, - 0, - 8846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8847, - 0, - 8848, - 0, - 0, - 8864, - 0, - 0, - 8866, - 0, - 0, - 8870, - 8872, - 0, - 0, - 8873, - 8874, - 0, - 0, - 0, - 0, - 0, - 0, - 8875, - 0, - 8876, - 0, - 0, - 0, - 0, - 8896, - 8900, - 0, - 0, - 0, - 0, - 8901, - 0, - 0, - 0, - 0, - 0, - 8904, - 0, - 8907, - 0, - 0, - 0, - 0, - 8911, - 8912, - 8913, - 0, - 0, - 0, - 8914, - 0, - 8915, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8916, - 0, - 0, - 0, - 8929, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8930, - 0, - 8932, - 0, - 8943, - 0, - 0, - 0, - 8945, - 8947, - 0, - 0, - 0, - 0, - 8949, - 0, - 8950, - 0, - 8954, - 8957, - 0, - 0, - 8970, - 0, - 0, - 0, - 0, - 8971, - 0, - 8996, - 0, - 0, - 0, - 0, - 8997, - 9000, - 0, - 0, - 0, - 0, - 9001, - 9002, - 0, - 9004, - 9009, - 9024, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9027, - 9082, - 0, - 0, - 9083, - 9089, - 0, - 0, - 0, - 0, - 0, - 0, - 9090, - 0, - 0, - 0, - 9092, - 0, - 0, - 9093, - 0, - 9095, - 0, - 0, - 9096, - 9097, - 9101, - 9102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9112, - 0, - 0, - 0, - 0, - 0, - 0, - 9114, - 0, - 0, - 9120, - 0, - 9121, - 9122, - 0, - 0, - 0, - 9123, - 9124, - 0, - 0, - 9125, - 0, - 0, - 9126, - 0, - 9127, - 0, - 0, - 9129, - 9131, - 0, - 0, - 0, - 9132, - 0, - 0, - 9136, - 0, - 9144, - 0, - 0, - 9148, - 0, - 0, - 0, - 0, - 0, - 0, - 9149, - 0, - 9152, - 9163, - 0, - 0, - 9165, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9166, - 0, - 9169, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9170, - 0, - 0, - 0, - 0, - 9172, - 0, - 9174, - 9175, - 9176, - 0, - 9177, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9186, - 0, - 9187, - 0, - 0, - 0, - 9188, - 9189, - 0, - 0, - 9190, - 0, - 0, - 0, - 0, - 9191, - 0, - 0, - 0, - 9193, - 0, - 0, - 0, - 0, - 9197, - 9198, - 0, - 0, - 0, - 9208, - 9211, - 0, - 0, - 0, - 0, - 9216, - 9217, - 0, - 9220, - 0, - 0, - 0, - 0, - 9221, - 9222, - 9223, - 0, - 9224, - 9225, - 0, - 0, - 9227, - 0, - 9228, - 9229, - 0, - 0, - 9230, - 0, - 9232, - 0, - 9233, - 0, - 0, - 0, - 0, - 0, - 9234, - 9235, - 0, - 0, - 9237, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9238, - 9240, - 0, - 0, - 9241, - 0, - 0, - 0, - 0, - 9244, - 0, - 0, - 0, - 0, - 9247, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9248, - 0, - 0, - 0, - 9249, - 0, - 0, - 0, - 0, - 0, - 9250, - 0, - 0, - 0, - 0, - 9251, - 0, - 0, - 9252, - 9255, - 0, - 0, - 0, - 9256, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9257, - 0, - 0, - 9258, - 0, - 0, - 0, - 0, - 0, - 0, - 9259, - 0, - 0, - 0, - 0, - 0, - 9262, - 9263, - 0, - 0, - 9265, - 9266, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9268, - 9271, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9273, - 0, - 0, - 0, - 9276, - 9277, - 9279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9280, - 0, - 0, - 9293, - 0, - 0, - 0, - 0, - 0, - 9297, - 9301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9308, - 9309, - 9313, - 9321, - 9322, - 0, - 9326, - 9327, - 0, - 0, - 9477, - 0, - 9479, - 0, - 0, - 0, - 0, - 9482, - 0, - 0, - 0, - 9483, - 0, - 9484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9485, - 0, - 0, - 9486, - 0, - 0, - 0, - 9489, - 0, - 0, - 0, - 0, - 9490, - 9491, - 0, - 0, - 0, - 0, - 9493, - 0, - 9495, - 9496, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9500, - 0, - 9502, - 0, - 0, - 0, - 0, - 0, - 9504, - 9507, - 0, - 9509, - 0, - 9511, - 0, - 0, - 9513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9515, - 0, - 0, - 0, - 0, - 0, - 0, - 9516, - 9517, - 0, - 0, - 0, - 0, - 9532, - 0, - 0, - 9533, - 0, - 0, - 9538, - 0, - 9539, - 9540, - 0, - 0, - 0, - 0, - 9541, - 0, - 0, - 0, - 9542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9544, - 9545, - 0, - 9546, - 0, - 0, - 0, - 0, - 0, - 0, - 9547, - 9548, - 0, - 0, - 0, - 9550, - 0, - 9557, - 0, - 9558, - 0, - 9561, - 0, - 9563, - 9570, - 0, - 9572, - 9574, - 9575, - 0, - 0, - 0, - 9577, - 9592, - 0, - 0, - 9596, - 0, - 0, - 0, - 9598, - 0, - 9600, - 0, - 9601, - 0, - 0, - 0, - 0, - 0, - 0, - 9608, - 0, - 9638, - 9639, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9641, - 0, - 0, - 9643, - 9644, - 9645, - 9646, - 0, - 0, - 0, - 9648, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9650, - 9654, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9655, - 0, - 0, - 0, - 0, - 0, - 9656, - 0, - 9657, - 0, - 0, - 0, - 0, - 9658, - 0, - 0, - 9659, - 0, - 0, - 9664, - 0, - 0, - 9665, - 0, - 9667, - 9669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9671, - 0, - 9673, - 9681, - 0, - 0, - 0, - 0, - 9682, - 9683, - 9684, - 0, - 0, - 0, - 0, - 9686, - 9698, - 0, - 0, - 9700, - 9701, - 9702, - 0, - 9703, - 9717, - 0, - 0, - 0, - 0, - 9718, - 0, - 9726, - 0, - 0, - 0, - 0, - 9727, - 0, - 0, - 0, - 9728, - 0, - 9742, - 0, - 9744, - 0, - 0, - 0, - 9750, - 0, - 9754, - 9755, - 0, - 0, - 0, - 0, - 0, - 9756, - 0, - 9757, - 9768, - 0, - 9769, - 0, - 0, - 0, - 9770, - 9771, - 0, - 9773, - 0, - 9774, - 0, - 9775, - 0, - 0, - 0, - 9776, - 9777, - 9784, - 0, - 0, - 0, - 9786, - 0, - 9789, - 0, - 0, - 0, - 0, - 9793, - 9794, - 0, - 0, - 0, - 9808, - 0, - 0, - 0, - 0, - 0, - 9811, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9812, - 0, - 9820, - 0, - 9823, - 0, - 9828, - 0, - 0, - 0, - 0, - 9830, - 0, - 0, - 9833, - 9836, - 0, - 0, - 0, - 9840, - 0, - 0, - 0, - 9841, - 0, - 0, - 9842, - 0, - 9845, - 0, - 0, - 0, - 9847, - 9848, - 0, - 0, - 9855, - 0, - 0, - 0, - 0, - 0, - 0, - 9856, - 9863, - 9865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9866, - 9867, - 9868, - 9873, - 9875, - 0, - 0, - 0, - 0, - 0, - 0, - 9880, - 0, - 9886, - 0, - 0, - 0, - 9887, - 0, - 0, - 9891, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9906, - 9907, - 9908, - 0, - 0, - 0, - 9909, - 0, - 0, - 0, - 0, - 0, - 0, - 9910, - 0, - 0, - 0, - 0, - 9913, - 0, - 0, - 0, - 0, - 9914, - 0, - 0, - 0, - 0, - 0, - 9922, - 0, - 0, - 0, - 0, - 9923, - 9925, - 0, - 0, - 0, - 0, - 0, - 0, - 9930, - 0, - 0, - 0, - 9931, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9932, - 0, - 9939, - 0, - 0, - 9940, - 9962, - 9966, - 0, - 9969, - 9970, - 0, - 0, - 9974, - 0, - 9979, - 9981, - 9982, - 0, - 0, - 0, - 9985, - 0, - 0, - 0, - 0, - 0, - 0, - 9987, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9988, - 9993, - 0, - 0, - 9994, - 0, - 0, - 0, - 9997, - 0, - 10004, - 0, - 0, - 0, - 0, - 0, - 10007, - 10019, - 10020, - 10022, - 0, - 0, - 0, - 10031, - 0, - 0, - 0, - 0, - 0, - 10032, - 0, - 0, - 10034, - 0, - 10036, - 0, - 0, - 0, - 0, - 10038, - 0, - 10039, - 10040, - 10041, - 10042, - 0, - 0, - 0, - 0, - 0, - 10043, - 0, - 0, - 0, - 0, - 0, - 10045, - 10054, - 0, - 0, - 0, - 0, - 10055, - 0, - 0, - 10057, - 10058, - 0, - 0, - 0, - 0, - 0, - 0, - 10059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10060, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10063, - 0, - 10066, - 0, - 0, - 0, - 10070, - 0, - 10072, - 0, - 0, - 10076, - 10077, - 0, - 0, - 10084, - 0, - 10087, - 10090, - 10091, - 0, - 0, - 0, - 10094, - 10097, - 0, - 0, - 0, - 0, - 0, - 0, - 10098, - 0, - 0, - 0, - 0, - 0, - 0, - 10103, - 0, - 10104, - 0, - 10108, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10120, - 0, - 0, - 0, - 10122, - 0, - 0, - 10125, - 0, - 0, - 0, - 0, - 10127, - 10128, - 0, - 0, - 10134, - 0, - 10135, - 10136, - 0, - 10137, - 0, - 0, - 10147, - 0, - 10149, - 10150, - 0, - 0, - 10156, - 0, - 10158, - 10159, - 10160, - 10168, - 0, - 0, - 10171, - 0, - 10173, - 0, - 0, - 0, - 10176, - 0, - 0, - 0, - 0, - 10177, - 0, - 0, - 0, - 0, - 10178, - 0, - 0, - 0, - 0, - 10194, - 0, - 10202, - 0, - 0, - 10203, - 10204, - 0, - 10205, - 10206, - 0, - 10207, - 0, - 0, - 0, - 0, - 10209, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10213, - 0, - 0, - 0, - 0, - 0, - 0, - 10217, - 0, - 10229, - 0, - 10230, - 10231, - 0, - 0, - 10232, - 0, - 0, - 10237, - 10238, - 10244, - 0, - 0, - 0, - 0, - 0, - 10250, - 0, - 10252, - 0, - 0, - 0, - 0, - 0, - 0, - 10255, - 0, - 0, - 10257, - 0, - 0, - 0, - 0, - 0, - 0, - 10258, - 0, - 10259, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10260, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10284, - 10288, - 10289, - 0, - 0, - 0, - 10290, - 0, - 10296, - 0, - 0, - 0, - 0, - 0, - 10297, - 0, - 0, - 0, - 0, - 0, - 0, - 10298, - 0, - 0, - 0, - 0, - 10299, - 10303, - 0, - 0, - 0, - 0, - 0, - 10306, - 0, - 0, - 0, - 10307, - 0, - 10308, - 0, - 0, - 0, - 0, - 10311, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10315, - 10317, - 0, - 0, - 0, - 10318, - 10319, - 0, - 10321, - 0, - 10326, - 0, - 10328, - 0, - 0, - 0, - 0, - 10329, - 0, - 0, - 10331, - 0, - 10332, - 0, - 0, - 0, - 0, - 0, - 0, - 10334, - 0, - 0, - 10335, - 10338, - 0, - 0, - 0, - 0, - 0, - 10339, - 10349, - 0, - 0, - 0, - 0, - 0, - 0, - 10351, - 0, - 10353, - 0, - 0, - 0, - 0, - 0, - 0, - 10362, - 0, - 10368, - 0, - 10369, - 0, - 0, - 0, - 10372, - 10373, - 0, - 0, - 0, - 0, - 0, - 10374, - 0, - 0, - 0, - 10375, - 0, - 10376, - 0, - 0, - 10386, - 10388, - 10390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10391, - 0, - 0, - 10392, - 10394, - 0, - 0, - 10396, - 0, - 10397, - 0, - 10403, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10404, - 0, - 10405, - 10410, - 0, - 0, - 10411, - 0, - 10412, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10421, - 10422, - 10423, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10425, - 0, - 0, - 10427, - 0, - 0, - 10430, - 0, - 0, - 0, - 0, - 0, - 10432, - 0, - 10433, - 10434, - 0, - 0, - 0, - 0, - 10436, - 10437, - 0, - 10438, - 0, - 10439, - 0, - 10444, - 10446, - 0, - 0, - 0, - 0, - 0, - 10448, - 0, - 0, - 0, - 0, - 0, - 10449, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10451, - 0, - 10453, - 0, - 0, - 0, - 10454, - 10457, - 0, - 0, - 10459, - 0, - 10469, - 0, - 0, - 0, - 0, - 0, - 10472, - 10481, - 0, - 0, - 0, - 0, - 0, - 10482, - 10483, - 0, - 10492, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10499, - 0, - 0, - 0, - 10502, - 0, - 0, - 10510, - 0, - 10521, - 10524, - 0, - 0, - 10525, - 10526, - 10528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10530, - 0, - 0, - 0, - 0, - 10533, - 0, - 10534, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10535, - 10536, - 0, - 0, - 10544, - 0, - 10553, - 10556, - 0, - 10557, - 10559, - 0, - 0, - 0, - 0, - 0, - 10562, - 10563, - 10564, - 0, - 10565, - 0, - 0, - 0, - 10566, - 0, - 10567, - 0, - 0, - 0, - 0, - 10575, - 0, - 0, - 10576, - 0, - 10578, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10585, - 10586, - 10587, - 10589, - 0, - 10590, - 0, - 0, - 10594, - 0, - 0, - 0, - 0, - 0, - 10598, - 0, - 0, - 10601, - 0, - 0, - 0, - 10602, - 0, - 10603, - 0, - 10604, - 0, - 10605, - 0, - 0, - 10607, - 0, - 10626, - 0, - 10627, - 0, - 0, - 0, - 0, - 0, - 10629, - 10630, - 10631, - 0, - 0, - 0, - 10646, - 0, - 0, - 0, - 10647, - 0, - 10650, - 0, - 10651, - 0, - 0, - 0, - 10652, - 10653, - 10655, - 0, - 10658, - 0, - 0, - 10659, - 0, - 10667, - 0, - 0, - 0, - 0, - 10669, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10670, - 0, - 0, - 0, - 10671, - 0, - 0, - 0, - 0, - 10672, - 10673, - 0, - 10674, - 0, - 0, - 0, - 10676, - 0, - 0, - 0, - 0, - 0, - 0, - 10678, - 0, - 10682, - 0, - 0, - 10692, - 0, - 10697, - 0, - 0, - 0, - 0, - 10698, - 0, - 0, - 0, - 10700, - 0, - 0, - 0, - 0, - 0, - 10703, - 0, - 10704, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10705, - 0, - 10715, - 10718, - 10720, - 0, - 0, - 10722, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10723, - 0, - 0, - 0, - 0, - 10726, - 0, - 0, - 0, - 0, - 0, - 10727, - 10730, - 10743, - 0, - 0, - 0, - 0, - 0, - 0, - 10744, - 0, - 0, - 10745, - 0, - 0, - 0, - 0, - 0, - 0, - 10748, - 0, - 0, - 0, - 0, - 10750, - 0, - 0, - 10752, - 10753, - 0, - 0, - 0, - 10756, - 0, - 0, - 0, - 0, - 0, - 0, - 10758, - 0, - 0, - 0, - 10759, - 0, - 10769, - 0, - 0, - 10772, - 0, - 0, - 0, - 0, - 0, - 0, - 10773, - 0, - 0, - 0, - 10777, - 0, - 0, - 10779, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10780, - 10784, - 0, - 0, - 0, - 10789, - 0, - 0, - 0, - 10791, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10795, - 0, - 0, - 10796, - 0, - 10808, - 0, - 10809, - 0, - 0, - 0, - 10810, - 0, - 0, - 0, - 10812, - 0, - 0, - 10814, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10815, - 0, - 0, - 0, - 0, - 10816, - 10817, - 0, - 0, - 0, - 0, - 10819, - 0, - 10820, - 0, - 0, - 0, - 0, - 10821, - 10822, - 10823, - 0, - 10826, - 10849, - 0, - 0, - 0, - 0, - 10850, - 0, - 0, - 10852, - 0, - 10853, - 0, - 0, - 10856, - 0, - 0, - 10857, - 10858, - 10859, - 10860, - 0, - 0, - 0, - 0, - 0, - 0, - 10863, - 0, - 10866, - 10867, - 10872, - 10890, - 0, - 0, - 10891, - 10892, - 0, - 0, - 0, - 0, - 0, - 10893, - 0, - 0, - 0, - 10896, - 10899, - 0, - 0, - 10900, - 10902, - 0, - 0, - 0, - 0, - 0, - 10903, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10905, - 0, - 10906, - 0, - 0, - 0, - 0, - 10908, - 10911, - 0, - 10912, - 0, - 0, - 10916, - 0, - 0, - 0, - 0, - 0, - 10917, - 0, - 10918, - 0, - 0, - 0, - 10923, - 0, - 0, - 0, - 0, - 0, - 10924, - 0, - 0, - 10928, - 10929, - 0, - 0, - 10930, - 0, - 0, - 0, - 10932, - 0, - 0, - 0, - 0, - 10939, - 0, - 0, - 10945, - 0, - 0, - 0, - 10947, - 0, - 0, - 10948, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10958, - 0, - 10960, - 10962, - 0, - 0, - 10964, - 0, - 0, - 0, - 10966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10967, - 0, - 0, - 0, - 10968, - 0, - 0, - 0, - 10973, - 0, - 0, - 0, - 0, - 0, - 10975, - 0, - 0, - 0, - 10976, - 10978, - 0, - 0, - 10982, - 10984, - 10987, - 0, - 0, - 10988, - 0, - 10989, - 0, - 0, - 10991, - 0, - 0, - 0, - 0, - 10992, - 0, - 0, - 0, - 10993, - 0, - 10995, - 0, - 0, - 0, - 10996, - 10997, - 0, - 0, - 0, - 10998, - 0, - 10999, - 0, - 11001, - 0, - 0, - 0, - 0, - 0, - 0, - 11010, - 11012, - 0, - 11013, - 11016, - 11017, - 0, - 0, - 11019, - 11020, - 11021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11022, - 0, - 0, - 11023, - 11029, - 0, - 0, - 0, - 0, - 11031, - 0, - 0, - 0, - 11034, - 0, - 0, - 0, - 0, - 11055, - 0, - 0, - 0, - 0, - 0, - 11056, - 11060, - 0, - 0, - 0, - 0, - 0, - 0, - 11061, - 0, - 0, - 11064, - 11065, - 0, - 11066, - 0, - 11069, - 0, - 11085, - 0, - 0, - 0, - 0, - 0, - 11086, - 0, - 0, - 0, - 11088, - 0, - 0, - 0, - 11094, - 0, - 0, - 0, - 11095, - 11096, - 0, - 0, - 0, - 0, - 0, - 0, - 11097, - 11098, - 0, - 0, - 0, - 0, - 0, - 0, - 11099, - 0, - 0, - 11102, - 11108, - 0, - 0, - 0, - 11109, - 0, - 11114, - 11119, - 0, - 11131, - 0, - 0, - 0, - 11142, - 0, - 0, - 11143, - 0, - 11146, - 0, - 11147, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11148, - 0, - 11149, - 11152, - 11153, - 11154, - 0, - 11156, - 0, - 11157, - 0, - 0, - 0, - 11158, - 0, - 0, - 11159, - 11160, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11163, - 0, - 0, - 11164, - 11166, - 0, - 0, - 0, - 11172, - 11174, - 0, - 0, - 0, - 11176, - 0, - 0, - 0, - 0, - 0, - 11182, - 11183, - 0, - 0, - 0, - 11184, - 11187, - 0, - 0, - 11188, - 11189, - 0, - 0, - 0, - 0, - 0, - 0, - 11194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11200, - 11202, - 0, - 0, - 0, - 0, - 0, - 0, - 11203, - 0, - 11204, - 0, - 0, - 0, - 0, - 0, - 11205, - 0, - 0, - 0, - 11206, - 0, - 11207, - 0, - 0, - 11209, - 0, - 11211, - 0, - 11214, - 0, - 0, - 11231, - 0, - 0, - 0, - 11293, - 11295, - 0, - 0, - 11296, - 11297, - 11302, - 0, - 0, - 0, - 11307, - 0, - 0, - 0, - 0, - 11309, - 11310, - 0, - 11311, - 0, - 0, - 0, - 11313, - 0, - 11314, - 0, - 0, - 0, - 0, - 11334, - 0, - 11338, - 0, - 0, - 0, - 11339, - 0, - 0, - 0, - 0, - 0, - 11340, - 0, - 11341, - 11342, - 0, - 11344, - 0, - 11345, - 0, - 0, - 0, - 11348, - 11349, - 0, - 0, - 11350, - 0, - 0, - 0, - 11355, - 0, - 0, - 0, - 0, - 0, - 0, - 11356, - 0, - 11357, - 11370, - 0, - 0, - 11371, - 0, - 11374, - 11376, - 0, - 0, - 0, - 11377, - 0, - 0, - 11378, - 11383, - 0, - 11386, - 11399, - 0, - 11400, - 11406, - 0, - 0, - 0, - 11408, - 0, - 0, - 11409, - 11412, - 0, - 0, - 0, - 0, - 11417, - 0, - 0, - 0, - 11418, - 0, - 11421, - 0, - 11426, - 11429, - 0, - 0, - 0, - 0, - 0, - 11430, - 0, - 11437, - 0, - 11438, - 0, - 0, - 0, - 0, - 0, - 11440, - 11453, - 0, - 0, - 0, - 0, - 0, - 0, - 11454, - 0, - 0, - 0, - 0, - 11455, - 0, - 0, - 11456, - 11460, - 11461, - 11463, - 0, - 11469, - 0, - 11473, - 0, - 0, - 0, - 0, - 11474, - 0, - 0, - 0, - 11475, - 0, - 11476, - 11477, - 11480, - 0, - 0, - 0, - 0, - 11481, - 0, - 0, - 11484, - 0, - 0, - 11487, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11497, - 0, - 0, - 11502, - 0, - 11509, - 0, - 0, - 11510, - 11511, - 11513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11515, - 0, - 0, - 0, - 0, - 11516, - 0, - 11520, - 11521, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11529, - 11530, - 11531, - 11534, - 0, - 0, - 11543, - 0, - 0, - 0, - 0, - 0, - 11547, - 0, - 11548, - 0, - 0, - 0, - 0, - 0, - 11552, - 11556, - 0, - 11557, - 0, - 0, - 11559, - 0, - 11560, - 0, - 0, - 0, - 0, - 0, - 0, - 11561, - 0, - 0, - 11563, - 11564, - 0, - 11565, - 0, - 0, - 0, - 0, - 11567, - 0, - 0, - 0, - 11569, - 0, - 11574, - 0, - 11575, - 0, - 0, - 0, - 11577, - 0, - 11578, - 0, - 0, - 0, - 11580, - 11581, - 0, - 0, - 0, - 11582, - 11584, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11587, - 0, - 11588, - 11591, - 0, - 11595, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11596, - 0, - 11597, - 0, - 0, - 0, - 0, - 11598, - 11601, - 0, - 0, - 0, - 11602, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11603, - 11604, - 0, - 11606, - 0, - 0, - 11608, - 0, - 0, - 0, - 0, - 11610, - 0, - 0, - 11611, - 0, - 0, - 0, - 0, - 11613, - 0, - 11622, - 0, - 0, - 0, - 11623, - 0, - 0, - 0, - 0, - 11625, - 0, - 0, - 11626, - 11627, - 11628, - 11630, - 0, - 0, - 0, - 0, - 0, - 0, - 11639, - 0, - 0, - 11646, - 0, - 11648, - 11649, - 0, - 11650, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11651, - 0, - 0, - 11652, - 11653, - 11656, - 0, - 0, - 11677, - 11679, - 0, - 0, - 0, - 0, - 11680, - 0, - 0, - 11681, - 0, - 11685, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11688, - 0, - 0, - 0, - 11716, - 0, - 11719, - 0, - 0, - 0, - 0, - 0, - 11721, - 0, - 0, - 11724, - 11743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11745, - 11748, - 11750, - 0, - 0, - 0, - 0, - 0, - 11751, - 0, - 0, - 0, - 11752, - 11754, - 0, - 11755, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11759, - 0, - 0, - 0, - 0, - 0, - 0, - 11760, - 0, - 0, - 0, - 11761, - 0, - 0, - 0, - 0, - 0, - 0, - 11766, - 11767, - 0, - 11772, - 11773, - 0, - 11774, - 0, - 0, - 11775, - 0, - 11777, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11778, - 11780, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11783, - 0, - 11784, - 0, - 0, - 0, - 11785, - 0, - 0, - 0, - 11786, - 0, - 0, - 0, - 0, - 11788, - 0, - 0, - 11789, - 11791, - 11792, - 0, - 0, - 0, - 0, - 11795, - 11834, - 11835, - 11836, - 0, - 0, - 11837, - 0, - 0, - 0, - 11838, - 0, - 0, - 11846, - 11851, - 0, - 11852, - 0, - 11869, - 0, - 0, - 0, - 11871, - 0, - 0, - 0, - 11872, - 11874, - 0, - 0, - 0, - 0, - 0, - 0, - 11875, - 0, - 11876, - 11877, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11883, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11884, - 0, - 11885, - 0, - 11886, - 0, - 0, - 11887, - 0, - 11894, - 11895, - 11897, - 11909, - 11910, - 0, - 11912, - 11918, - 0, - 0, - 11920, - 0, - 11922, - 11924, - 11927, - 11928, - 0, - 0, - 0, - 0, - 11929, - 0, - 11934, - 0, - 0, - 0, - 0, - 0, - 11941, - 11943, - 11944, - 0, - 11945, - 0, - 0, - 0, - 0, - 11948, - 11949, - 0, - 0, - 0, - 0, - 11953, - 0, - 11954, - 0, - 11955, - 0, - 11956, - 0, - 0, - 0, - 0, - 0, - 11957, - 0, - 0, - 11959, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11961, - 0, - 0, - 0, - 0, - 0, - 11978, - 0, - 0, - 0, - 11979, - 11980, - 11986, - 11987, - 0, - 11992, - 0, - 0, - 0, - 0, - 0, - 11993, - 0, - 0, - 0, - 11994, - 0, - 11999, - 12004, - 12005, - 12006, - 0, - 0, - 0, - 0, - 0, - 12011, - 0, - 0, - 12012, - 12014, - 0, - 0, - 12015, - 0, - 0, - 12019, - 12028, - 0, - 0, - 12029, - 0, - 0, - 12032, - 12033, - 0, - 0, - 0, - 0, - 12034, - 0, - 12041, - 12043, - 0, - 0, - 12044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12054, - 12055, - 0, - 12056, - 0, - 0, - 0, - 12060, - 12064, - 0, - 0, - 0, - 0, - 0, - 12065, - 12067, - 12068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12074, - 0, - 0, - 0, - 12075, - 12076, - 0, - 0, - 0, - 12079, - 0, - 12081, - 12086, - 12087, - 0, - 0, - 12088, - 0, - 0, - 0, - 0, - 12089, - 0, - 12092, - 0, - 0, - 0, - 0, - 12097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12102, - 12103, - 12104, - 12111, - 0, - 0, - 12114, - 12116, - 0, - 0, - 0, - 12118, - 0, - 0, - 0, - 12119, - 12120, - 12128, - 0, - 0, - 0, - 0, - 12130, - 0, - 0, - 0, - 0, - 0, - 0, - 12131, - 0, - 0, - 0, - 12132, - 12134, - 0, - 0, - 0, - 0, - 12137, - 0, - 12139, - 0, - 12141, - 0, - 0, - 12142, - 0, - 0, - 0, - 12144, - 0, - 0, - 0, - 0, - 0, - 12145, - 0, - 12148, - 0, - 12153, - 0, - 0, - 0, - 0, - 12154, - 12171, - 12173, - 0, - 0, - 0, - 12175, - 0, - 0, - 0, - 0, - 12178, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12184, - 0, - 0, - 0, - 12186, - 0, - 0, - 0, - 0, - 0, - 12187, - 12188, - 0, - 0, - 12189, - 0, - 12196, - 0, - 12197, - 0, - 0, - 12198, - 0, - 12201, - 0, - 0, - 0, - 0, - 12203, - 0, - 12209, - 0, - 0, - 0, - 0, - 12210, - 12211, - 12212, - 12213, - 0, - 12217, - 12218, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12223, - 0, - 0, - 12229, - 0, - 0, - 0, - 0, - 12233, - 0, - 0, - 0, - 0, - 12234, - 0, - 0, - 12236, - 12242, - 0, - 0, - 0, - 12243, - 0, - 0, - 0, - 12244, - 12253, - 0, - 12254, - 12256, - 0, - 12257, - 0, - 0, - 12275, - 0, - 0, - 0, - 0, - 0, - 12277, - 0, - 0, - 0, - 0, - 0, - 12278, - 0, - 12289, - 0, - 0, - 12290, - 0, - 12292, - 12293, - 0, - 0, - 12294, - 0, - 12295, - 0, - 0, - 12296, - 0, - 12297, - 0, - 12298, - 0, - 0, - 0, - 0, - 12301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12309, - 0, - 12338, - 12340, - 0, - 0, - 0, - 0, - 12341, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12342, - 12343, - 0, - 12344, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12345, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12346, - 0, - 0, - 0, - 0, - 12348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12351, - 0, - 12355, - 12356, - 12357, - 0, - 0, - 12367, - 12370, - 12371, - 0, - 0, - 0, - 0, - 0, - 12372, - 12376, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12379, - 0, - 12382, - 0, - 12383, - 0, - 0, - 12384, - 0, - 0, - 0, - 0, - 12393, - 0, - 0, - 12394, - 0, - 0, - 0, - 0, - 12398, - 12403, - 0, - 0, - 12404, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12410, - 0, - 0, - 0, - 12411, - 0, - 0, - 0, - 12412, - 0, - 0, - 0, - 0, - 12420, - 0, - 12421, - 0, - 0, - 0, - 0, - 0, - 12423, - 0, - 12425, - 12429, - 0, - 0, - 0, - 12431, - 12432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12434, - 0, - 0, - 0, - 0, - 0, - 12435, - 12436, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12437, - 0, - 0, - 0, - 0, - 0, - 12438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12445, - 0, - 0, - 0, - 12450, - 12451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12452, - 12475, - 0, - 0, - 12493, - 12494, - 0, - 0, - 0, - 12495, - 0, - 0, - 0, - 0, - 12496, - 12502, - 12509, - 0, - 0, - 0, - 0, - 12510, - 0, - 12512, - 12513, - 0, - 0, - 0, - 0, - 12514, - 0, - 0, - 0, - 12515, - 0, - 12520, - 0, - 0, - 0, - 12524, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12527, - 0, - 0, - 0, - 12528, - 0, - 0, - 0, - 12529, - 0, - 0, - 0, - 0, - 0, - 12530, - 0, - 12535, - 0, - 0, - 12536, - 0, - 12538, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12540, - 0, - 12548, - 0, - 0, - 0, - 0, - 0, - 12550, - 0, - 0, - 0, - 12551, - 12552, - 0, - 0, - 0, - 12554, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12555, - 0, - 0, - 12562, - 0, - 12565, - 0, - 12566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12569, - 0, - 0, - 0, - 12571, - 12574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12577, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12578, - 12579, - 12603, - 0, - 12608, - 0, - 0, - 12611, - 0, - 12612, - 0, - 12615, - 0, - 12625, - 0, - 0, - 0, - 0, - 12627, - 12646, - 0, - 12648, - 0, - 0, - 12657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12670, - 0, - 0, - 12671, - 0, - 12673, - 12677, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12679, - 0, - 12681, - 0, - 12682, - 12693, - 0, - 12694, - 0, - 12697, - 0, - 12701, - 0, - 0, - 0, - 12703, - 12704, - 0, - 0, - 0, - 0, - 12707, - 12737, - 0, - 0, - 12739, - 0, - 0, - 12740, - 0, - 0, - 12742, - 12743, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12745, - 0, - 12746, - 12747, - 0, - 12748, - 0, - 0, - 12759, - 12767, - 0, - 0, - 0, - 0, - 12773, - 0, - 12774, - 12778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12779, - 0, - 0, - 0, - 0, - 0, - 12780, - 12793, - 0, - 12824, - 0, - 12825, - 0, - 12836, - 0, - 0, - 0, - 0, - 12839, - 0, - 12842, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12843, - 12845, - 0, - 12846, - 0, - 0, - 0, - 0, - 12847, - 0, - 0, - 12850, - 12852, - 12853, - 0, - 0, - 0, - 12854, - 0, - 0, - 0, - 12855, - 0, - 12856, - 0, - 12858, - 0, - 0, - 12859, - 0, - 12862, - 0, - 12863, - 0, - 0, - 12866, - 0, - 12869, - 12872, - 12873, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12875, - 0, - 12877, - 0, - 0, - 12878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12884, - 12885, - 12888, - 0, - 12889, - 0, - 0, - 0, - 0, - 12893, - 0, - 0, - 0, - 12895, - 12896, - 12898, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12902, - 0, - 12909, - 12910, - 0, - 12926, - 0, - 12928, - 0, - 0, - 0, - 12929, - 0, - 12930, - 0, - 0, - 0, - 0, - 12931, - 0, - 12932, - 12933, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12934, - 0, - 12942, - 0, - 0, - 0, - 0, - 12944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12946, - 0, - 0, - 12948, - 0, - 0, - 12949, - 0, - 0, - 0, - 0, - 12950, - 0, - 0, - 0, - 0, - 12951, - 0, - 12952, - 0, - 12953, - 0, - 0, - 0, - 12954, - 12958, - 12959, - 0, - 0, - 0, - 0, - 0, - 12960, - 12964, - 0, - 0, - 0, - 0, - 0, - 12966, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12970, - 0, - 12971, - 0, - 0, - 0, - 0, - 0, - 0, - 12972, - 0, - 0, - 12982, - 0, - 0, - 0, - 12984, - 12985, - 0, - 12986, - 12996, - 12997, - 13001, - 13002, - 0, - 0, - 0, - 0, - 13004, - 0, - 0, - 13005, - 0, - 0, - 13007, - 13009, - 0, - 13017, - 0, - 0, - 0, - 13020, - 0, - 13021, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13022, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13024, - 13027, - 0, - 0, - 0, - 0, - 0, - 13028, - 0, - 0, - 13029, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13032, - 0, - 13037, - 0, - 0, - 0, - 0, - 0, - 0, - 13040, - 0, - 0, - 13041, - 0, - 0, - 0, - 13043, - 13044, - 13046, - 0, - 0, - 0, - 0, - 13047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13049, - 13054, - 0, - 13056, - 0, - 0, - 13060, - 13061, - 0, - 0, - 0, - 0, - 0, - 13067, - 0, - 0, - 13068, - 0, - 13071, - 0, - 0, - 0, - 0, - 0, - 13077, - 13078, - 0, - 0, - 0, - 0, - 0, - 13079, - 13080, - 13081, - 0, - 13082, - 0, - 0, - 0, - 13085, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13086, - 0, - 13087, - 13088, - 0, - 0, - 0, - 0, - 0, - 13094, - 0, - 13099, - 0, - 13100, - 0, - 0, - 0, - 13101, - 0, - 13125, - 13126, - 13128, - 13129, - 0, - 0, - 13130, - 0, - 13131, - 0, - 0, - 0, - 0, - 0, - 0, - 13134, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13150, - 0, - 13168, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13169, - 0, - 0, - 13170, - 0, - 0, - 0, - 0, - 13174, - 0, - 0, - 0, - 13176, - 0, - 0, - 0, - 0, - 0, - 13177, - 0, - 13178, - 13183, - 13187, - 0, - 0, - 0, - 13189, - 0, - 0, - 13190, - 0, - 0, - 13191, - 0, - 0, - 13206, - 0, - 0, - 0, - 13207, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13212, - 0, - 0, - 13219, - 13232, - 0, - 0, - 0, - 13241, - 0, - 13249, - 13253, - 0, - 0, - 0, - 0, - 0, - 13255, - 13259, - 0, - 13260, - 13261, - 0, - 13262, - 0, - 13272, - 0, - 0, - 0, - 0, - 13276, - 0, - 0, - 0, - 0, - 13277, - 13299, - 0, - 0, - 13301, - 13302, - 0, - 0, - 13303, - 0, - 0, - 13305, - 0, - 13310, - 0, - 0, - 0, - 13311, - 0, - 0, - 0, - 0, - 13325, - 0, - 13328, - 0, - 0, - 0, - 13329, - 0, - 0, - 0, - 0, - 0, - 0, - 13330, - 0, - 0, - 13331, - 0, - 13335, - 0, - 0, - 13342, - 0, - 0, - 0, - 0, - 0, - 13343, - 0, - 13354, - 0, - 13362, - 0, - 13366, - 13367, - 13369, - 0, - 0, - 13371, - 13372, - 0, - 13373, - 13374, - 0, - 13376, - 0, - 13380, - 13381, - 13386, - 0, - 13387, - 13388, - 0, - 13389, - 13391, - 13395, - 0, - 0, - 0, - 0, - 0, - 13401, - 13409, - 0, - 13410, - 0, - 0, - 0, - 0, - 13420, - 0, - 0, - 0, - 0, - 0, - 13422, - 0, - 0, - 0, - 0, - 13423, - 0, - 0, - 0, - 0, - 13425, - 0, - 0, - 0, - 0, - 0, - 13427, - 0, - 0, - 0, - 13428, - 0, - 0, - 13430, - 13438, - 0, - 13439, - 0, - 13445, - 0, - 13448, - 13449, - 0, - 0, - 0, - 0, - 0, - 0, - 13451, - 0, - 13457, - 0, - 0, - 0, - 0, - 13458, - 13459, - 0, - 13460, - 0, - 0, - 0, - 0, - 13464, - 13465, - 13466, - 13470, - 0, - 13471, - 13472, - 13474, - 13475, - 0, - 13476, - 0, - 0, - 13478, - 13479, - 0, - 13481, - 0, - 0, - 0, - 0, - 13487, - 0, - 13490, - 0, - 13493, - 0, - 0, - 13494, - 0, - 0, - 13495, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13496, - 13497, - 0, - 13500, - 0, - 0, - 13516, - 13522, - 0, - 0, - 13525, - 13528, - 0, - 0, - 0, - 13530, - 13535, - 0, - 13537, - 13539, - 0, - 13540, - 0, - 13543, - 0, - 13544, - 0, - 0, - 0, - 0, - 0, - 0, - 13545, - 0, - 0, - 0, - 0, - 0, - 0, - 13547, - 0, - 0, - 0, - 13549, - 13555, - 0, - 0, - 0, - 13556, - 13557, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13558, - 0, - 13563, - 0, - 0, - 0, - 0, - 13564, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13566, - 0, - 0, - 0, - 0, - 0, - 0, - 13569, - 0, - 0, - 13571, - 0, - 0, - 0, - 0, - 13573, - 0, - 0, - 0, - 0, - 0, - 0, - 13578, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13581, - 0, - 13586, - 0, - 13595, - 0, - 13600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13601, - 13603, - 0, - 13604, - 13605, - 13606, - 13607, - 0, - 0, - 13617, - 13618, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13623, - 0, - 13625, - 13627, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13629, - 0, - 0, - 0, - 13634, - 0, - 0, - 0, - 13638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13654, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13656, - 0, - 13659, - 0, - 0, - 13660, - 0, - 0, - 13662, - 0, - 0, - 0, - 13663, - 0, - 13664, - 0, - 0, - 0, - 0, - 0, - 13668, - 0, - 13669, - 13671, - 0, - 0, - 13672, - 0, - 0, - 0, - 0, - 0, - 0, - 13675, - 13685, - 0, - 13686, - 0, - 0, - 0, - 13687, - 0, - 0, - 0, - 13692, - 13694, - 13697, - 0, - 0, - 0, - 13702, - 0, - 0, - 0, - 0, - 0, - 13705, - 0, - 0, - 0, - 0, - 13707, - 0, - 0, - 0, - 13714, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13715, - 0, - 13716, - 13717, - 0, - 0, - 13719, - 13724, - 13730, - 13731, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13732, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13734, - 0, - 13736, - 0, - 0, - 13737, - 13738, - 13747, - 0, - 13751, - 0, - 0, - 13752, - 0, - 0, - 0, - 13753, - 0, - 13757, - 0, - 0, - 13762, - 13763, - 0, - 13764, - 13765, - 0, - 13766, - 0, - 0, - 13767, - 0, - 0, - 0, - 13768, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13769, - 0, - 0, - 13772, - 0, - 13775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13776, - 13778, - 13787, - 0, - 0, - 0, - 13797, - 0, - 13798, - 0, - 13801, - 0, - 13804, - 13806, - 0, - 0, - 0, - 0, - 13816, - 13817, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13834, - 0, - 13836, - 0, - 0, - 13838, - 0, - 0, - 13839, - 0, - 13840, - 0, - 0, - 0, - 0, - 13842, - 0, - 0, - 0, - 0, - 0, - 0, - 13843, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13845, - 0, - 0, - 0, - 0, - 0, - 13858, - 0, - 0, - 13860, - 0, - 0, - 13861, - 0, - 0, - 13862, - 13863, - 0, - 13868, - 0, - 13869, - 13870, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13872, - 0, - 0, - 0, - 0, - 13873, - 13878, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13886, - 0, - 13888, - 13889, - 13890, - 0, - 0, - 13891, - 13894, - 0, - 13897, - 13899, - 13900, - 13904, - 0, - 0, - 13906, - 0, - 0, - 0, - 13909, - 0, - 0, - 0, - 13910, - 0, - 0, - 0, - 13911, - 0, - 0, - 0, - 0, - 0, - 13912, - 13917, - 0, - 0, - 0, - 0, - 13918, - 0, - 13919, - 0, - 0, - 13920, - 0, - 0, - 0, - 13921, - 0, - 0, - 13922, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13924, - 0, - 13927, - 0, - 0, - 0, - 0, - 0, - 13932, - 0, - 13933, - 0, - 13934, - 0, - 0, - 13935, - 0, - 13944, - 0, - 0, - 0, - 13954, - 0, - 0, - 13955, - 0, - 0, - 0, - 0, - 13956, - 0, - 13957, - 0, - 13967, - 13969, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 13970, - 13990, - 0, - 13991, - 13994, - 0, - 13995, - 0, - 0, - 0, - 0, - 13996, - 0, - 0, - 13999, - 0, - 0, - 0, - 14018, - 0, - 14019, - 0, - 14021, - 0, - 0, - 0, - 0, - 0, - 0, - 14041, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14043, - 0, - 0, - 0, - 0, - 14046, - 0, - 0, - 0, - 14048, - 14049, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14051, - 0, - 0, - 14052, - 14056, - 0, - 14063, - 0, - 14064, - 14066, - 0, - 0, - 14067, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14068, - 0, - 0, - 0, - 14072, - 0, - 14074, - 14075, - 0, - 14076, - 14079, - 14085, - 14086, - 14087, - 14093, - 0, - 0, - 0, - 0, - 14095, - 0, - 0, - 0, - 0, - 0, - 0, - 14096, - 14097, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14098, - 0, - 14102, - 0, - 0, - 0, - 0, - 0, - 14103, - 0, - 0, - 0, - 14104, - 0, - 0, - 14105, - 0, - 0, - 0, - 14107, - 14108, - 0, - 0, - 14109, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14117, - 0, - 0, - 0, - 0, - 14118, - 0, - 0, - 0, - 0, - 14119, - 0, - 0, - 14120, - 0, - 0, - 14121, - 0, - 14122, - 14127, - 0, - 14128, - 14136, - 0, - 0, - 14138, - 0, - 14140, - 0, - 0, - 0, - 14141, - 14142, - 0, - 0, - 0, - 0, - 14146, - 0, - 0, - 14149, - 0, - 14151, - 0, - 0, - 0, - 14152, - 0, - 0, - 14153, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14154, - 0, - 14156, - 14157, - 0, - 0, - 14159, - 0, - 14161, - 0, - 0, - 0, - 0, - 14162, - 0, - 0, - 0, - 0, - 0, - 0, - 14163, - 0, - 0, - 14173, - 0, - 0, - 0, - 0, - 0, - 0, - 14174, - 0, - 0, - 14176, - 0, - 0, - 14178, - 0, - 0, - 14179, - 14181, - 0, - 0, - 14182, - 14185, - 14187, - 0, - 14190, - 0, - 0, - 14197, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14198, - 0, - 0, - 0, - 0, - 0, - 0, - 14199, - 14200, - 0, - 0, - 0, - 14204, - 0, - 0, - 14208, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14231, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14234, - 0, - 0, - 14235, - 0, - 0, - 0, - 14240, - 14241, - 0, - 0, - 0, - 14246, - 0, - 0, - 0, - 14247, - 0, - 14250, - 0, - 0, - 14251, - 0, - 0, - 14254, - 0, - 0, - 14256, - 0, - 0, - 0, - 14260, - 0, - 14261, - 0, - 0, - 0, - 0, - 14262, - 14267, - 14269, - 0, - 0, - 14277, - 0, - 0, - 14278, - 0, - 14279, - 14282, - 0, - 0, - 0, - 14283, - 0, - 0, - 0, - 14284, - 14285, - 0, - 0, - 0, - 0, - 14286, - 0, - 0, - 0, - 14288, - 0, - 0, - 0, - 14289, - 0, - 14290, - 0, - 14293, - 14301, - 14302, - 14304, - 14305, - 0, - 14307, - 0, - 14308, - 14309, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14311, - 14312, - 0, - 0, - 14317, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14318, - 0, - 0, - 0, - 0, - 14320, - 0, - 0, - 0, - 0, - 14321, - 14322, - 0, - 0, - 0, - 0, - 0, - 14326, - 14329, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14330, - 14331, - 0, - 0, - 0, - 0, - 14332, - 0, - 0, - 0, - 14333, - 0, - 0, - 14337, - 14340, - 0, - 14341, - 0, - 0, - 14342, - 0, - 14345, - 14346, - 0, - 0, - 14347, - 0, - 14362, - 0, - 0, - 0, - 0, - 0, - 14364, - 14365, - 14371, - 0, - 14373, - 0, - 0, - 14374, - 0, - 14379, - 0, - 14400, - 0, - 0, - 0, - 0, - 0, - 14401, - 0, - 0, - 14405, - 0, - 14406, - 0, - 14408, - 14409, - 0, - 0, - 0, - 14417, - 0, - 0, - 14424, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14430, - 0, - 0, - 0, - 14431, - 0, - 0, - 14435, - 0, - 14440, - 0, - 0, - 0, - 0, - 0, - 0, - 14442, - 0, - 0, - 14443, - 0, - 0, - 0, - 0, - 0, - 14446, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14454, - 0, - 14457, - 0, - 14460, - 0, - 0, - 14466, - 0, - 0, - 0, - 0, - 0, - 14467, - 0, - 0, - 0, - 0, - 0, - 0, - 14469, - 0, - 14477, - 0, - 0, - 0, - 0, - 0, - 0, - 14478, - 14482, - 0, - 0, - 0, - 14483, - 0, - 0, - 0, - 14485, - 14486, - 0, - 0, - 0, - 14487, - 14488, - 14489, - 14492, - 14493, - 14494, - 14495, - 14496, - 14497, - 0, - 14499, - 0, - 14501, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14502, - 0, - 14507, - 14512, - 14513, - 14514, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14515, - 14526, - 14530, - 0, - 14537, - 0, - 14544, - 0, - 14547, - 0, - 0, - 14548, - 14550, - 14551, - 0, - 0, - 14552, - 0, - 0, - 0, - 14553, - 0, - 14554, - 0, - 0, - 0, - 0, - 14556, - 14564, - 0, - 0, - 14565, - 14566, - 0, - 0, - 0, - 0, - 0, - 0, - 14568, - 0, - 0, - 14569, - 0, - 0, - 0, - 14571, - 14576, - 0, - 0, - 14577, - 14578, - 14579, - 0, - 0, - 14580, - 0, - 0, - 0, - 0, - 14582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14583, - 0, - 0, - 0, - 0, - 0, - 14587, - 0, - 14588, - 0, - 0, - 14600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14601, - 0, - 0, - 14604, - 14605, - 14611, - 0, - 14613, - 0, - 0, - 0, - 0, - 14615, - 0, - 0, - 0, - 0, - 0, - 0, - 14627, - 0, - 14628, - 0, - 0, - 0, - 0, - 14631, - 0, - 14633, - 14634, - 0, - 0, - 0, - 0, - 14635, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14636, - 0, - 0, - 14639, - 14642, - 0, - 0, - 0, - 0, - 14644, - 0, - 0, - 0, - 0, - 14645, - 14646, - 0, - 14653, - 0, - 0, - 14654, - 0, - 14658, - 0, - 14661, - 0, - 0, - 0, - 14665, - 0, - 0, - 0, - 14668, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14669, - 0, - 0, - 14670, - 0, - 0, - 0, - 14680, - 0, - 0, - 14681, - 0, - 0, - 0, - 0, - 0, - 14682, - 14683, - 0, - 0, - 0, - 0, - 14686, - 0, - 0, - 0, - 0, - 14687, - 14697, - 0, - 0, - 0, - 0, - 14699, - 14705, - 14711, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14712, - 0, - 0, - 0, - 14713, - 0, - 0, - 0, - 0, - 14719, - 0, - 14720, - 14721, - 14726, - 0, - 0, - 0, - 14728, - 14729, - 0, - 0, - 0, - 0, - 14731, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14733, - 14736, - 14737, - 0, - 0, - 14740, - 14742, - 0, - 0, - 0, - 14744, - 14753, - 0, - 0, - 0, - 0, - 14755, - 14758, - 14760, - 0, - 0, - 0, - 0, - 0, - 14761, - 14762, - 14765, - 14771, - 0, - 14772, - 0, - 14773, - 14774, - 0, - 0, - 14775, - 0, - 0, - 14776, - 0, - 0, - 0, - 0, - 14777, - 0, - 14779, - 0, - 0, - 14782, - 0, - 0, - 14785, - 14786, - 14788, - 0, - 0, - 0, - 0, - 0, - 14795, - 0, - 0, - 0, - 0, - 0, - 0, - 14798, - 0, - 14803, - 14804, - 14806, - 0, - 0, - 0, - 14809, - 0, - 0, - 0, - 0, - 0, - 0, - 14810, - 0, - 0, - 0, - 0, - 14811, - 0, - 14812, - 0, - 0, - 0, - 0, - 0, - 14815, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14816, - 0, - 14818, - 0, - 0, - 0, - 0, - 0, - 0, - 14819, - 0, - 14820, - 0, - 14823, - 0, - 0, - 0, - 14824, - 0, - 0, - 14826, - 14827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14830, - 0, - 0, - 0, - 0, - 0, - 14833, - 0, - 14845, - 0, - 0, - 0, - 0, - 0, - 14846, - 0, - 0, - 14847, - 14871, - 0, - 14873, - 0, - 14876, - 0, - 14877, - 14878, - 14880, - 0, - 0, - 0, - 0, - 0, - 14881, - 0, - 14882, - 14894, - 0, - 0, - 0, - 0, - 14895, - 0, - 14907, - 0, - 14908, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14911, - 0, - 0, - 0, - 0, - 14920, - 0, - 0, - 14931, - 0, - 14932, - 14934, - 14935, - 0, - 0, - 14936, - 0, - 14945, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14947, - 0, - 0, - 14948, - 14949, - 14951, - 0, - 0, - 14952, - 0, - 0, - 0, - 14964, - 14973, - 0, - 0, - 14990, - 0, - 0, - 0, - 0, - 14995, - 0, - 0, - 14998, - 15001, - 0, - 0, - 15002, - 15020, - 0, - 0, - 0, - 0, - 0, - 0, - 15021, - 0, - 15022, - 0, - 0, - 0, - 0, - 15023, - 0, - 0, - 15025, - 15029, - 15033, - 0, - 0, - 0, - 15034, - 0, - 0, - 0, - 15035, - 0, - 0, - 0, - 0, - 0, - 15043, - 15044, - 0, - 0, - 0, - 15045, - 15046, - 15048, - 15050, - 0, - 15065, - 0, - 0, - 0, - 0, - 15066, - 0, - 0, - 15075, - 15082, - 15084, - 0, - 0, - 15085, - 15086, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15088, - 0, - 0, - 0, - 15089, - 0, - 0, - 0, - 0, - 15094, - 0, - 15096, - 0, - 15097, - 0, - 15100, - 0, - 0, - 15102, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15105, - 0, - 0, - 15106, - 0, - 15109, - 15113, - 0, - 0, - 0, - 15115, - 0, - 15118, - 0, - 0, - 0, - 0, - 0, - 0, - 15119, - 0, - 0, - 15120, - 0, - 0, - 0, - 0, - 0, - 15123, - 15129, - 0, - 0, - 0, - 15130, - 0, - 15131, - 0, - 0, - 15134, - 0, - 15135, - 0, - 0, - 0, - 15137, - 15138, - 0, - 0, - 0, - 0, - 0, - 0, - 15139, - 0, - 0, - 0, - 0, - 0, - 15140, - 0, - 0, - 15154, - 15162, - 0, - 15169, - 15170, - 0, - 15175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15177, - 0, - 15178, - 15179, - 0, - 0, - 0, - 0, - 0, - 15183, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15185, - 15187, - 0, - 15194, - 15195, - 15196, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15204, - 0, - 0, - 0, - 0, - 15206, - 0, - 0, - 0, - 0, - 0, - 15207, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15213, - 0, - 15214, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15232, - 0, - 0, - 0, - 0, - 15234, - 0, - 15238, - 15240, - 0, - 15248, - 0, - 0, - 0, - 0, - 15250, - 15251, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15252, - 0, - 0, - 0, - 15255, - 15262, - 15266, - 0, - 0, - 0, - 15267, - 0, - 0, - 0, - 15277, - 15279, - 0, - 0, - 0, - 15280, - 15281, - 15282, - 0, - 0, - 0, - 0, - 0, - 15285, - 0, - 0, - 0, - 0, - 15289, - 0, - 0, - 15291, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15296, - 15297, - 0, - 0, - 15304, - 0, - 0, - 0, - 0, - 15306, - 0, - 0, - 0, - 0, - 0, - 0, - 15307, - 15308, - 0, - 15309, - 0, - 0, - 15311, - 0, - 0, - 15312, - 15313, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15314, - 15317, - 0, - 0, - 0, - 15318, - 15319, - 0, - 0, - 0, - 0, - 15320, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15321, - 0, - 0, - 0, - 0, - 0, - 15324, - 0, - 15325, - 15326, - 0, - 15330, - 0, - 0, - 0, - 0, - 15334, - 0, - 15335, - 0, - 15341, - 0, - 0, - 15342, - 0, - 0, - 15343, - 15344, - 0, - 0, - 0, - 0, - 15345, - 0, - 0, - 0, - 0, - 15347, - 0, - 0, - 15348, - 15349, - 15350, - 0, - 15356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15357, - 0, - 15358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15359, - 15360, - 15364, - 0, - 15380, - 0, - 0, - 0, - 0, - 0, - 15392, - 0, - 0, - 15393, - 0, - 15395, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15396, - 0, - 0, - 15397, - 15398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15399, - 0, - 15400, - 0, - 0, - 0, - 15402, - 0, - 15405, - 15410, - 0, - 0, - 0, - 0, - 15411, - 0, - 0, - 0, - 15412, - 0, - 15416, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15428, - 0, - 15435, - 0, - 0, - 15438, - 0, - 0, - 0, - 0, - 15439, - 0, - 0, - 0, - 15440, - 0, - 0, - 0, - 15441, - 15449, - 15451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15452, - 0, - 0, - 15455, - 0, - 0, - 0, - 15456, - 0, - 0, - 15458, - 0, - 15460, - 15461, - 0, - 0, - 0, - 0, - 0, - 15462, - 15464, - 0, - 15465, - 0, - 0, - 15466, - 0, - 0, - 15467, - 0, - 0, - 0, - 0, - 0, - 15468, - 0, - 0, - 0, - 0, - 15481, - 0, - 0, - 15484, - 0, - 15485, - 15486, - 0, - 0, - 0, - 15487, - 0, - 0, - 0, - 0, - 0, - 15488, - 0, - 15492, - 15498, - 0, - 0, - 0, - 15499, - 0, - 0, - 0, - 15500, - 0, - 15501, - 0, - 0, - 15512, - 0, - 15522, - 0, - 0, - 0, - 15524, - 0, - 15525, - 15526, - 0, - 0, - 15527, - 0, - 0, - 15545, - 15546, - 0, - 15548, - 15552, - 0, - 15553, - 0, - 0, - 0, - 15554, - 0, - 15555, - 0, - 15557, - 15565, - 15573, - 15577, - 15578, - 0, - 15582, - 0, - 15583, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15586, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15588, - 0, - 0, - 0, - 0, - 0, - 15589, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15593, - 15594, - 0, - 0, - 0, - 0, - 15595, - 0, - 0, - 0, - 0, - 0, - 0, - 15596, - 0, - 0, - 0, - 15597, - 0, - 0, - 0, - 0, - 15600, - 0, - 0, - 15601, - 0, - 0, - 0, - 0, - 15602, - 15603, - 0, - 0, - 0, - 0, - 0, - 0, - 15604, - 0, - 15609, - 0, - 0, - 15612, - 0, - 0, - 15613, - 0, - 0, - 15615, - 15617, - 15618, - 0, - 0, - 15620, - 0, - 15636, - 15637, - 0, - 0, - 15649, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15650, - 0, - 0, - 15651, - 0, - 0, - 0, - 15656, - 0, - 15658, - 0, - 0, - 0, - 15664, - 0, - 0, - 15665, - 0, - 0, - 15668, - 0, - 0, - 0, - 0, - 0, - 15669, - 0, - 0, - 15674, - 0, - 0, - 15675, - 0, - 0, - 0, - 0, - 15676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15677, - 0, - 0, - 0, - 0, - 15678, - 0, - 0, - 0, - 0, - 0, - 15679, - 0, - 0, - 15681, - 0, - 15686, - 0, - 0, - 0, - 0, - 15687, - 0, - 15688, - 0, - 0, - 15690, - 0, - 0, - 0, - 15697, - 0, - 15699, - 15700, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15701, - 0, - 15702, - 15703, - 0, - 15704, - 0, - 15705, - 0, - 15707, - 0, - 15709, - 0, - 15712, - 15716, - 0, - 15717, - 0, - 15718, - 15720, - 0, - 0, - 0, - 0, - 0, - 15724, - 0, - 0, - 0, - 15725, - 0, - 15726, - 0, - 0, - 0, - 15740, - 0, - 15745, - 15746, - 0, - 0, - 15747, - 0, - 15748, - 0, - 0, - 0, - 0, - 0, - 15749, - 0, - 0, - 0, - 15752, - 0, - 15753, - 0, - 0, - 0, - 0, - 0, - 0, - 15759, - 0, - 0, - 0, - 15765, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15767, - 0, - 0, - 0, - 15771, - 0, - 0, - 15784, - 0, - 0, - 0, - 0, - 15785, - 15790, - 15791, - 0, - 0, - 15792, - 0, - 0, - 0, - 15807, - 0, - 15811, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15818, - 0, - 0, - 0, - 15819, - 0, - 0, - 0, - 0, - 15821, - 0, - 0, - 0, - 0, - 0, - 15822, - 15824, - 0, - 0, - 15827, - 0, - 0, - 15829, - 15831, - 0, - 15832, - 0, - 0, - 15833, - 0, - 15835, - 15838, - 15839, - 15843, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15844, - 0, - 0, - 0, - 0, - 15845, - 15851, - 15856, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15858, - 15860, - 0, - 15861, - 0, - 0, - 0, - 15864, - 0, - 0, - 0, - 0, - 15865, - 0, - 0, - 0, - 0, - 0, - 0, - 15866, - 0, - 15872, - 0, - 0, - 15876, - 0, - 0, - 0, - 0, - 15877, - 15878, - 15883, - 15885, - 0, - 0, - 15888, - 0, - 0, - 0, - 0, - 0, - 15889, - 15890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15893, - 0, - 0, - 15894, - 0, - 0, - 0, - 15895, - 0, - 15896, - 15897, - 0, - 15898, - 15901, - 15902, - 0, - 15911, - 15915, - 0, - 15916, - 0, - 15924, - 15935, - 0, - 15937, - 0, - 0, - 0, - 0, - 0, - 15950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15958, - 0, - 0, - 0, - 15961, - 0, - 0, - 15966, - 0, - 15967, - 0, - 0, - 15977, - 0, - 0, - 15978, - 0, - 0, - 15981, - 15982, - 15983, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 15986, - 0, - 0, - 0, - 15990, - 0, - 15991, - 15995, - 15998, - 0, - 15999, - 0, - 16000, - 0, - 0, - 0, - 0, - 16008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16009, - 16011, - 0, - 16013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16014, - 0, - 0, - 16015, - 16023, - 16024, - 16025, - 0, - 0, - 16026, - 0, - 16030, - 0, - 16032, - 0, - 16033, - 0, - 0, - 0, - 0, - 0, - 0, - 16035, - 16036, - 16037, - 0, - 0, - 0, - 0, - 0, - 16039, - 0, - 0, - 0, - 0, - 16041, - 0, - 0, - 0, - 0, - 0, - 16043, - 16044, - 0, - 0, - 16047, - 0, - 0, - 0, - 16048, - 0, - 0, - 16049, - 16050, - 16052, - 0, - 0, - 0, - 0, - 0, - 16055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16056, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16058, - 16060, - 16061, - 0, - 0, - 16063, - 0, - 0, - 16064, - 0, - 0, - 0, - 16067, - 16068, - 0, - 0, - 16069, - 16078, - 0, - 0, - 0, - 16079, - 0, - 0, - 0, - 16080, - 0, - 16081, - 0, - 0, - 0, - 16088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16089, - 16093, - 0, - 16097, - 0, - 16103, - 0, - 16104, - 16105, - 0, - 0, - 16256, - 0, - 0, - 16259, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16260, - 16261, - 0, - 0, - 16262, - 0, - 0, - 16263, - 0, - 16268, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16269, - 0, - 0, - 16270, - 16273, - 0, - 16274, - 0, - 0, - 0, - 0, - 16275, - 16276, - 16277, - 16280, - 0, - 0, - 0, - 16281, - 16284, - 0, - 0, - 0, - 16286, - 0, - 16289, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16290, - 0, - 0, - 0, - 0, - 16291, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16292, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16293, - 16295, - 16297, - 0, - 16302, - 0, - 16304, - 0, - 16305, - 0, - 16306, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16307, - 16308, - 16312, - 0, - 0, - 0, - 0, - 0, - 0, - 16313, - 16315, - 0, - 16318, - 0, - 0, - 0, - 16321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16326, - 16333, - 16336, - 0, - 0, - 0, - 0, - 16337, - 16340, - 0, - 0, - 0, - 0, - 0, - 16345, - 0, - 0, - 16346, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16347, - 0, - 0, - 16348, - 0, - 0, - 0, - 0, - 16349, - 0, - 0, - 0, - 16350, - 0, - 16357, - 0, - 0, - 0, - 0, - 16359, - 16360, - 0, - 0, - 0, - 0, - 16362, - 16363, - 16364, - 16365, - 0, - 0, - 16366, - 0, - 0, - 0, - 0, - 16367, - 16368, - 0, - 16369, - 16374, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16376, - 0, - 0, - 0, - 0, - 16378, - 16379, - 0, - 16380, - 0, - 0, - 0, - 16381, - 16383, - 0, - 0, - 0, - 0, - 0, - 16390, - 0, - 0, - 0, - 16399, - 0, - 16402, - 16404, - 16406, - 16407, - 0, - 0, - 0, - 16409, - 16411, - 0, - 0, - 0, - 0, - 16412, - 0, - 16413, - 16415, - 16423, - 0, - 0, - 0, - 0, - 0, - 16424, - 0, - 0, - 0, - 16428, - 16434, - 16435, - 16449, - 0, - 16450, - 16451, - 0, - 0, - 0, - 16453, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16454, - 0, - 0, - 16456, - 16458, - 0, - 0, - 16459, - 0, - 0, - 16460, - 0, - 0, - 0, - 0, - 16462, - 0, - 16463, - 0, - 0, - 16466, - 0, - 0, - 0, - 0, - 0, - 16479, - 0, - 0, - 16480, - 0, - 16481, - 16484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16485, - 0, - 0, - 0, - 0, - 0, - 0, - 16489, - 0, - 0, - 0, - 0, - 0, - 16491, - 0, - 0, - 16498, - 0, - 0, - 16503, - 0, - 16505, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16506, - 0, - 0, - 0, - 16508, - 16509, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16511, - 16513, - 0, - 0, - 0, - 16516, - 0, - 16517, - 0, - 16519, - 0, - 16529, - 0, - 0, - 16531, - 0, - 0, - 0, - 0, - 0, - 0, - 16534, - 0, - 0, - 16541, - 16542, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16543, - 16547, - 16548, - 0, - 0, - 0, - 16551, - 0, - 16552, - 0, - 0, - 0, - 16553, - 0, - 0, - 16558, - 0, - 0, - 16562, - 16565, - 0, - 0, - 0, - 16570, - 0, - 0, - 0, - 16573, - 16585, - 0, - 0, - 0, - 16586, - 16587, - 16595, - 0, - 16596, - 0, - 16598, - 0, - 0, - 0, - 16600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16601, - 0, - 0, - 0, - 0, - 16603, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16604, - 16612, - 0, - 0, - 0, - 0, - 16613, - 0, - 16618, - 0, - 0, - 0, - 16640, - 0, - 0, - 16641, - 0, - 0, - 0, - 0, - 0, - 0, - 16645, - 0, - 0, - 0, - 0, - 16646, - 0, - 0, - 0, - 0, - 0, - 0, - 16651, - 0, - 0, - 0, - 0, - 16653, - 16654, - 0, - 0, - 0, - 16655, - 0, - 0, - 16656, - 16667, - 0, - 0, - 0, - 0, - 16671, - 0, - 16672, - 0, - 0, - 0, - 16673, - 0, - 0, - 0, - 0, - 0, - 16676, - 0, - 16686, - 0, - 0, - 0, - 0, - 16689, - 0, - 16690, - 0, - 16692, - 0, - 16693, - 0, - 16694, - 0, - 16696, - 0, - 0, - 0, - 16705, - 0, - 0, - 0, - 0, - 0, - 0, - 16707, - 0, - 0, - 0, - 16709, - 0, - 0, - 0, - 0, - 16711, - 0, - 16712, - 16713, - 0, - 0, - 0, - 16715, - 0, - 0, - 0, - 0, - 16716, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16718, - 16724, - 0, - 0, - 16726, - 16727, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16728, - 0, - 16729, - 0, - 0, - 16730, - 0, - 0, - 0, - 0, - 0, - 16731, - 0, - 0, - 0, - 16732, - 0, - 0, - 0, - 0, - 16734, - 16738, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16743, - 0, - 0, - 16745, - 0, - 0, - 0, - 0, - 0, - 16749, - 0, - 16752, - 0, - 0, - 0, - 0, - 16756, - 0, - 0, - 16758, - 0, - 16759, - 0, - 0, - 0, - 0, - 0, - 16760, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16762, - 0, - 16769, - 0, - 16770, - 0, - 16772, - 0, - 0, - 0, - 16777, - 16780, - 0, - 0, - 0, - 0, - 0, - 0, - 16781, - 0, - 0, - 16782, - 0, - 16784, - 0, - 0, - 16785, - 16787, - 16792, - 0, - 0, - 16794, - 0, - 0, - 0, - 16798, - 0, - 0, - 16809, - 0, - 0, - 16814, - 16816, - 16817, - 0, - 16819, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16820, - 0, - 0, - 16836, - 16839, - 0, - 0, - 16841, - 16851, - 16857, - 0, - 0, - 16858, - 16859, - 0, - 0, - 16860, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16862, - 0, - 16863, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16864, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16876, - 0, - 16881, - 16882, - 0, - 16885, - 16886, - 0, - 16887, - 0, - 0, - 0, - 16889, - 16891, - 0, - 0, - 0, - 0, - 0, - 16894, - 16895, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16897, - 0, - 16898, - 0, - 0, - 0, - 0, - 0, - 16913, - 0, - 0, - 16924, - 16925, - 16926, - 0, - 0, - 16927, - 0, - 0, - 0, - 16937, - 16938, - 0, - 0, - 0, - 16940, - 16941, - 0, - 0, - 0, - 16942, - 16945, - 0, - 16946, - 16949, - 16950, - 0, - 0, - 0, - 16952, - 16955, - 0, - 0, - 0, - 16965, - 0, - 16969, - 0, - 0, - 16975, - 0, - 0, - 16976, - 0, - 0, - 0, - 0, - 16978, - 0, - 0, - 16981, - 0, - 16983, - 16989, - 0, - 0, - 0, - 0, - 16990, - 0, - 0, - 16991, - 0, - 0, - 0, - 16993, - 0, - 16994, - 16996, - 17000, - 0, - 0, - 0, - 0, - 0, - 17002, - 17004, - 0, - 17006, - 0, - 0, - 17007, - 0, - 0, - 0, - 0, - 17008, - 17013, - 17014, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17021, - 0, - 17031, - 0, - 0, - 0, - 0, - 0, - 17033, - 17036, - 0, - 17038, - 0, - 0, - 17039, - 0, - 17045, - 0, - 0, - 17046, - 17047, - 0, - 0, - 0, - 0, - 17048, - 0, - 17049, - 17050, - 0, - 17051, - 17053, - 0, - 17054, - 0, - 17055, - 0, - 0, - 0, - 0, - 0, - 17063, - 0, - 0, - 17064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17065, - 0, - 0, - 17068, - 0, - 0, - 0, - 0, - 0, - 17072, - 0, - 0, - 0, - 0, - 0, - 0, - 17073, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17074, - 0, - 17080, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17081, - 17083, - 17084, - 0, - 0, - 0, - 17085, - 0, - 0, - 0, - 0, - 17092, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17093, - 0, - 17095, - 17102, - 0, - 0, - 0, - 0, - 0, - 0, - 17103, - 0, - 0, - 17105, - 0, - 17107, - 0, - 0, - 0, - 0, - 17114, - 0, - 0, - 0, - 0, - 0, - 17115, - 17125, - 17127, - 0, - 0, - 17128, - 0, - 0, - 0, - 17129, - 17130, - 0, - 17131, - 0, - 0, - 0, - 0, - 0, - 17132, - 17135, - 17145, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17146, - 0, - 17147, - 0, - 17148, - 0, - 0, - 0, - 0, - 0, - 0, - 17149, - 17150, - 0, - 17151, - 17153, - 0, - 17155, - 0, - 0, - 0, - 0, - 17163, - 17171, - 0, - 17174, - 0, - 0, - 0, - 0, - 17179, - 0, - 0, - 17182, - 17185, - 0, - 0, - 0, - 0, - 0, - 17186, - 0, - 0, - 17188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17189, - 17191, - 0, - 17194, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17195, - 17196, - 17203, - 17204, - 0, - 0, - 17205, - 17217, - 0, - 0, - 0, - 0, - 0, - 17218, - 0, - 0, - 0, - 0, - 17219, - 0, - 17220, - 0, - 17221, - 0, - 0, - 17230, - 0, - 0, - 0, - 0, - 0, - 17236, - 0, - 17238, - 17239, - 0, - 0, - 0, - 17241, - 17244, - 0, - 0, - 17245, - 0, - 17248, - 0, - 0, - 17251, - 0, - 17252, - 0, - 0, - 17264, - 0, - 17266, - 0, - 0, - 0, - 17268, - 0, - 0, - 0, - 0, - 17271, - 17272, - 0, - 17273, - 0, - 17295, - 0, - 17302, - 0, - 17305, - 0, - 0, - 0, - 17306, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17309, - 0, - 17310, - 17313, - 0, - 0, - 0, - 0, - 17314, - 17315, - 0, - 17317, - 0, - 0, - 0, - 0, - 17318, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17320, - 0, - 0, - 0, - 0, - 0, - 0, - 17334, - 0, - 17344, - 17348, - 0, - 0, - 0, - 17350, - 17351, - 0, - 0, - 17353, - 0, - 0, - 17354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17355, - 0, - 0, - 0, - 0, - 0, - 0, - 17356, - 17357, - 0, - 0, - 17359, - 0, - 0, - 0, - 17371, - 0, - 17372, - 0, - 0, - 0, - 17393, - 0, - 0, - 0, - 0, - 17394, - 0, - 0, - 0, - 0, - 0, - 17395, - 0, - 0, - 17399, - 0, - 0, - 0, - 17401, - 17417, - 0, - 17418, - 0, - 17419, - 0, - 0, - 0, - 0, - 0, - 17422, - 17423, - 0, - 0, - 0, - 0, - 0, - 17424, - 0, - 0, - 0, - 0, - 0, - 17428, - 17429, - 17433, - 0, - 0, - 0, - 17437, - 0, - 0, - 17441, - 0, - 0, - 17442, - 0, - 0, - 17453, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17454, - 17456, - 17462, - 0, - 0, - 17466, - 0, - 0, - 17468, - 0, - 0, - 17469, - 0, - 0, - 0, - 0, - 17470, - 0, - 17475, - 0, - 0, - 0, - 0, - 0, - 17479, - 0, - 0, - 0, - 17483, - 17484, - 0, - 17485, - 0, - 17486, - 0, - 17491, - 17492, - 0, - 0, - 17493, - 0, - 17494, - 17495, - 0, - 0, - 0, - 17496, - 0, - 0, - 0, - 17497, - 0, - 0, - 0, - 17502, - 0, - 0, - 0, - 0, - 0, - 17503, - 0, - 17505, - 0, - 17507, - 0, - 0, - 0, - 17512, - 17513, - 17514, - 0, - 0, - 17515, - 0, - 0, - 0, - 17519, - 0, - 0, - 0, - 17522, - 0, - 0, - 17523, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17527, - 0, - 0, - 0, - 17528, - 0, - 0, - 0, - 17534, - 0, - 0, - 0, - 0, - 17536, - 0, - 0, - 0, - 17539, - 0, - 17540, - 17543, - 17549, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17556, - 0, - 0, - 17558, - 0, - 17559, - 0, - 0, - 17560, - 0, - 0, - 0, - 17563, - 0, - 0, - 0, - 0, - 0, - 0, - 17564, - 0, - 0, - 17565, - 17566, - 0, - 17567, - 0, - 0, - 0, - 0, - 0, - 0, - 17569, - 17570, - 0, - 17575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17581, - 0, - 0, - 0, - 17582, - 17583, - 0, - 17586, - 0, - 0, - 17587, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17588, - 0, - 0, - 0, - 0, - 17596, - 17597, - 0, - 0, - 17598, - 17600, - 0, - 0, - 0, - 0, - 0, - 0, - 17601, - 0, - 0, - 0, - 17604, - 0, - 0, - 17605, - 0, - 0, - 17607, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17612, - 0, - 0, - 17618, - 0, - 17621, - 17622, - 0, - 0, - 0, - 0, - 17623, - 0, - 0, - 17624, - 0, - 0, - 17630, - 0, - 0, - 17631, - 17633, - 17634, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17635, - 0, - 0, - 17636, - 0, - 0, - 17637, - 0, - 17638, - 0, - 17640, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17641, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17643, - 0, - 0, - 0, - 0, - 17645, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17646, - 17662, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17663, - 17664, - 0, - 17665, - 17666, - 0, - 0, - 0, - 17669, - 17671, - 17673, - 0, - 17679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17684, - 0, - 0, - 0, - 17686, - 0, - 17714, - 0, - 0, - 17720, - 17722, - 17726, - 0, - 0, - 17728, - 0, - 0, - 17729, - 0, - 0, - 0, - 17732, - 0, - 17733, - 0, - 17734, - 0, - 0, - 0, - 17735, - 0, - 0, - 0, - 0, - 17737, - 0, - 0, - 0, - 0, - 17739, - 0, - 0, - 0, - 17741, - 17742, - 0, - 0, - 0, - 0, - 17743, - 17744, - 17745, - 0, - 0, - 0, - 17749, - 0, - 17750, - 17751, - 17752, - 17754, - 17761, - 17762, - 0, - 17763, - 0, - 17766, - 0, - 17772, - 0, - 0, - 0, - 0, - 0, - 17775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17776, - 0, - 0, - 17777, - 0, - 0, - 17778, - 17779, - 0, - 17782, - 17783, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17784, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17821, - 0, - 0, - 0, - 17822, - 0, - 0, - 0, - 17823, - 17825, - 0, - 0, - 0, - 0, - 0, - 17826, - 17831, - 17832, - 17833, - 0, - 0, - 17845, - 0, - 0, - 0, - 17846, - 0, - 0, - 0, - 17848, - 17850, - 17854, - 0, - 17855, - 0, - 0, - 17859, - 0, - 0, - 0, - 0, - 0, - 0, - 17860, - 17861, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17870, - 17871, - 0, - 0, - 0, - 0, - 0, - 0, - 17872, - 0, - 0, - 0, - 17879, - 0, - 0, - 0, - 17881, - 17883, - 0, - 17884, - 0, - 17885, - 0, - 0, - 17886, - 0, - 0, - 17887, - 17891, - 17953, - 0, - 0, - 0, - 0, - 17954, - 0, - 0, - 17955, - 0, - 17968, - 0, - 0, - 17972, - 0, - 0, - 0, - 0, - 0, - 17974, - 0, - 0, - 0, - 0, - 17976, - 17978, - 0, - 0, - 17983, - 0, - 0, - 0, - 0, - 18003, - 0, - 0, - 0, - 0, - 0, - 18007, - 0, - 0, - 0, - 0, - 0, - 18009, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18010, - 0, - 0, - 0, - 0, - 0, - 0, - 18012, - 0, - 0, - 18014, - 0, - 0, - 0, - 18015, - 0, - 0, - 0, - 18016, - 0, - 18017, - 0, - 0, - 0, - 18030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18031, - 0, - 0, - 18036, - 18037, - 18038, - 0, - 0, - 18049, - 18056, - 0, - 18057, - 18058, - 0, - 18059, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18062, - 0, - 0, - 0, - 0, - 18064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18067, - 0, - 0, - 0, - 18068, - 0, - 0, - 18075, - 0, - 0, - 18078, - 18093, - 18094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18097, - 0, - 0, - 0, - 0, - 0, - 18098, - 18100, - 0, - 0, - 0, - 18108, - 0, - 18111, - 0, - 0, - 18112, - 0, - 18113, - 0, - 0, - 18115, - 18116, - 0, - 18118, - 0, - 0, - 0, - 0, - 18121, - 0, - 0, - 0, - 0, - 18123, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18124, - 0, - 0, - 0, - 0, - 18125, - 18126, - 0, - 18127, - 0, - 0, - 18128, - 18135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18150, - 0, - 0, - 0, - 0, - 0, - 18151, - 18152, - 0, - 0, - 18156, - 18164, - 0, - 18166, - 18171, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18172, - 18183, - 0, - 18184, - 0, - 0, - 0, - 0, - 18185, - 0, - 18187, - 0, - 0, - 0, - 0, - 0, - 18188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18189, - 0, - 0, - 18190, - 0, - 0, - 18191, - 18192, - 0, - 0, - 18194, - 18195, - 18196, - 0, - 0, - 0, - 18197, - 0, - 18203, - 0, - 18204, - 0, - 0, - 0, - 0, - 18205, - 0, - 0, - 0, - 18207, - 18208, - 0, - 0, - 18214, - 0, - 0, - 0, - 18215, - 18216, - 0, - 0, - 0, - 18220, - 0, - 0, - 18222, - 0, - 0, - 0, - 0, - 0, - 18223, - 0, - 18225, - 18231, - 0, - 18234, - 0, - 18235, - 0, - 0, - 0, - 0, - 18240, - 0, - 0, - 18241, - 18242, - 0, - 0, - 0, - 0, - 0, - 18243, - 18251, - 0, - 18253, - 0, - 18254, - 0, - 0, - 0, - 18266, - 0, - 0, - 0, - 0, - 0, - 0, - 18269, - 18270, - 18271, - 18273, - 18281, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18282, - 0, - 18283, - 0, - 18284, - 0, - 0, - 0, - 0, - 0, - 0, - 18285, - 0, - 18287, - 18289, - 0, - 0, - 18290, - 0, - 0, - 0, - 0, - 18308, - 0, - 0, - 0, - 18310, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18311, - 0, - 18312, - 18313, - 0, - 18315, - 0, - 0, - 18316, - 18320, - 0, - 18331, - 0, - 18332, - 0, - 18336, - 0, - 0, - 0, - 0, - 18337, - 0, - 18340, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18341, - 0, - 18344, - 18345, - 0, - 18346, - 0, - 0, - 0, - 0, - 0, - 18348, - 0, - 18351, - 0, - 0, - 18356, - 0, - 0, - 0, - 0, - 0, - 0, - 18357, - 0, - 0, - 0, - 0, - 0, - 18367, - 0, - 0, - 0, - 18368, - 0, - 18369, - 0, - 18370, - 18371, - 0, - 0, - 0, - 18437, - 18444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18445, - 18450, - 0, - 0, - 0, - 0, - 18451, - 0, - 18452, - 0, - 0, - 0, - 18453, - 0, - 0, - 0, - 0, - 0, - 18455, - 0, - 0, - 0, - 18456, - 0, - 18457, - 0, - 18460, - 0, - 0, - 18461, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18466, - 0, - 0, - 18467, - 0, - 0, - 0, - 0, - 18473, - 0, - 0, - 0, - 18476, - 0, - 18477, - 0, - 0, - 0, - 18478, - 18479, - 18480, - 0, - 0, - 0, - 18485, - 0, - 0, - 0, - 18486, - 0, - 0, - 0, - 0, - 0, - 0, - 18488, - 18490, - 0, - 0, - 0, - 0, - 0, - 0, - 18491, - 0, - 0, - 0, - 0, - 0, - 18495, - 0, - 0, - 18496, - 0, - 0, - 0, - 0, - 0, - 0, - 18505, - 0, - 18521, - 0, - 18522, - 18523, - 0, - 0, - 0, - 18525, - 18526, - 0, - 0, - 0, - 0, - 0, - 18527, - 0, - 0, - 0, - 0, - 18532, - 18533, - 0, - 18534, - 0, - 0, - 0, - 0, - 0, - 0, - 18535, - 18537, - 0, - 18538, - 0, - 0, - 0, - 0, - 0, - 0, - 18540, - 18541, - 18542, - 18543, - 0, - 18546, - 0, - 0, - 0, - 0, - 18553, - 18556, - 0, - 0, - 18558, - 0, - 0, - 18569, - 18571, - 0, - 0, - 0, - 18572, - 0, - 18574, - 0, - 0, - 0, - 0, - 18586, - 0, - 0, - 0, - 0, - 0, - 18588, - 0, - 0, - 18589, - 0, - 0, - 0, - 0, - 0, - 0, - 18590, - 0, - 18592, - 0, - 0, - 0, - 0, - 18594, - 0, - 0, - 0, - 18596, - 0, - 0, - 18597, - 18598, - 0, - 0, - 18601, - 0, - 0, - 0, - 0, - 18602, - 0, - 0, - 0, - 18603, - 18604, - 0, - 18605, - 0, - 0, - 0, - 0, - 18608, - 0, - 0, - 18611, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18612, - 0, - 18616, - 0, - 0, - 18617, - 18619, - 0, - 0, - 0, - 18628, - 0, - 0, - 0, - 18629, - 0, - 0, - 18630, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18631, - 0, - 18632, - 0, - 0, - 18635, - 18637, - 0, - 0, - 0, - 0, - 0, - 0, - 18641, - 18643, - 18648, - 0, - 18652, - 0, - 0, - 18653, - 0, - 18655, - 18656, - 0, - 0, - 0, - 18657, - 0, - 0, - 18666, - 18674, - 0, - 0, - 0, - 0, - 18677, - 18684, - 18685, - 0, - 0, - 18686, - 0, - 0, - 18690, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18695, - 18696, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18697, - 0, - 0, - 18700, - 0, - 0, - 0, - 0, - 0, - 0, - 18702, - 0, - 18708, - 0, - 0, - 18709, - 0, - 18710, - 0, - 0, - 18711, - 0, - 18714, - 0, - 0, - 18718, - 0, - 0, - 0, - 0, - 0, - 0, - 18719, - 0, - 0, - 18722, - 0, - 18726, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18731, - 0, - 0, - 0, - 0, - 0, - 18739, - 18741, - 0, - 0, - 18742, - 0, - 18743, - 18744, - 18746, - 18748, - 0, - 18752, - 18753, - 0, - 0, - 18754, - 18763, - 0, - 18765, - 0, - 0, - 0, - 18766, - 0, - 0, - 0, - 18769, - 0, - 0, - 0, - 0, - 0, - 18773, - 18778, - 18779, - 18781, - 0, - 0, - 18784, - 18787, - 0, - 18788, - 0, - 18793, - 0, - 0, - 0, - 0, - 0, - 0, - 18795, - 0, - 0, - 18800, - 0, - 0, - 0, - 0, - 0, - 18801, - 18804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18806, - 0, - 0, - 0, - 18811, - 18815, - 18816, - 0, - 0, - 0, - 0, - 18825, - 0, - 0, - 18827, - 18829, - 0, - 0, - 18830, - 0, - 0, - 0, - 0, - 18831, - 0, - 0, - 18832, - 0, - 0, - 0, - 0, - 18833, - 0, - 18840, - 0, - 18841, - 0, - 18842, - 0, - 0, - 0, - 0, - 18843, - 0, - 18844, - 0, - 0, - 0, - 0, - 0, - 0, - 18845, - 18846, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18848, - 0, - 0, - 0, - 18853, - 18860, - 0, - 0, - 18862, - 18866, - 0, - 0, - 18867, - 18869, - 0, - 0, - 18874, - 18881, - 18891, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18895, - 0, - 18896, - 0, - 0, - 0, - 18900, - 0, - 0, - 0, - 18901, - 0, - 18902, - 18915, - 18916, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18919, - 0, - 0, - 0, - 0, - 0, - 18920, - 0, - 0, - 0, - 18921, - 18929, - 0, - 0, - 0, - 0, - 18930, - 0, - 0, - 0, - 0, - 0, - 0, - 18932, - 0, - 0, - 0, - 0, - 18934, - 18942, - 0, - 0, - 0, - 18951, - 18957, - 0, - 0, - 0, - 0, - 18958, - 0, - 0, - 0, - 0, - 18959, - 18960, - 0, - 0, - 18961, - 0, - 0, - 18962, - 0, - 0, - 0, - 0, - 18963, - 18964, - 0, - 0, - 0, - 18965, - 0, - 18967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18968, - 0, - 18969, - 0, - 18970, - 18973, - 18976, - 0, - 0, - 0, - 0, - 0, - 0, - 18977, - 0, - 0, - 0, - 18981, - 0, - 0, - 0, - 18990, - 0, - 18998, - 0, - 0, - 0, - 0, - 0, - 18999, - 19003, - 0, - 0, - 19005, - 0, - 0, - 0, - 19006, - 0, - 0, - 0, - 0, - 0, - 0, - 19008, - 19011, - 0, - 0, - 19018, - 0, - 0, - 19019, - 0, - 19024, - 0, - 19031, - 19032, - 0, - 19039, - 0, - 19041, - 19050, - 0, - 0, - 0, - 19051, - 19055, - 19056, - 0, - 19059, - 19063, - 19064, - 0, - 0, - 19088, - 0, - 0, - 0, - 19093, - 19094, - 0, - 0, - 0, - 0, - 19095, - 0, - 19096, - 0, - 0, - 0, - 19097, - 0, - 0, - 19098, - 0, - 19099, - 19100, - 0, - 0, - 19103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19111, - 0, - 0, - 0, - 0, - 0, - 0, - 19112, - 0, - 0, - 0, - 19116, - 19117, - 0, - 19121, - 19122, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19123, - 19124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19125, - 19126, - 0, - 19128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19129, - 19130, - 19131, - 19132, - 0, - 0, - 19146, - 0, - 0, - 19147, - 19156, - 19158, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19182, - 19185, - 0, - 0, - 19187, - 0, - 0, - 0, - 19193, - 0, - 0, - 0, - 0, - 0, - 19194, - 0, - 19197, - 0, - 0, - 0, - 0, - 19198, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19202, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19203, - 0, - 19205, - 19210, - 0, - 0, - 0, - 19213, - 0, - 19218, - 0, - 0, - 0, - 19223, - 19229, - 0, - 0, - 19230, - 0, - 0, - 19231, - 19232, - 19233, - 19239, - 0, - 0, - 0, - 0, - 0, - 19240, - 0, - 19248, - 19249, - 0, - 0, - 0, - 0, - 19254, - 0, - 19256, - 19258, - 19259, - 0, - 0, - 19261, - 0, - 19266, - 0, - 0, - 0, - 19272, - 0, - 19278, - 19281, - 19282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19283, - 0, - 0, - 19284, - 0, - 0, - 19285, - 19287, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19288, - 19291, - 0, - 19292, - 0, - 0, - 0, - 0, - 19297, - 0, - 19298, - 0, - 0, - 0, - 0, - 19302, - 19303, - 0, - 0, - 0, - 0, - 19304, - 19305, - 0, - 0, - 0, - 0, - 19314, - 0, - 0, - 19315, - 0, - 0, - 19321, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19322, - 0, - 19333, - 0, - 19334, - 19335, - 0, - 19336, - 19337, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19346, - 0, - 0, - 19353, - 0, - 19354, - 19362, - 0, - 19366, - 19367, - 0, - 0, - 19369, - 0, - 19375, - 0, - 19377, - 19380, - 19388, - 0, - 0, - 0, - 0, - 0, - 19389, - 19390, - 0, - 0, - 0, - 0, - 19392, - 0, - 0, - 0, - 0, - 0, - 19402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19412, - 0, - 0, - 19413, - 19422, - 0, - 19424, - 0, - 0, - 0, - 19425, - 0, - 0, - 0, - 19428, - 0, - 0, - 0, - 0, - 19431, - 0, - 0, - 0, - 0, - 0, - 19432, - 0, - 0, - 0, - 0, - 0, - 19448, - 19459, - 0, - 0, - 19461, - 0, - 19462, - 19463, - 0, - 19467, - 19474, - 19482, - 0, - 0, - 0, - 0, - 19494, - 0, - 0, - 0, - 0, - 19501, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19502, - 19504, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19505, - 0, - 0, - 0, - 0, - 19506, - 19507, - 0, - 0, - 0, - 19508, - 0, - 0, - 19511, - 0, - 0, - 19514, - 0, - 19515, - 0, - 19516, - 0, - 19518, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19530, - 0, - 19537, - 19538, - 0, - 19543, - 19546, - 0, - 19547, - 19551, - 0, - 0, - 0, - 0, - 0, - 0, - 19552, - 19553, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19555, - 0, - 0, - 19556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19560, - 19561, - 0, - 0, - 19562, - 0, - 0, - 0, - 0, - 0, - 0, - 19565, - 19567, - 0, - 19568, - 0, - 0, - 0, - 19569, - 19570, - 0, - 19578, - 0, - 0, - 0, - 0, - 19580, - 0, - 0, - 0, - 0, - 19581, - 19584, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19585, - 19586, - 0, - 0, - 0, - 19587, - 19588, - 0, - 19589, - 0, - 0, - 0, - 0, - 0, - 0, - 19592, - 19593, - 19599, - 0, - 19600, - 0, - 0, - 19604, - 0, - 0, - 19605, - 0, - 19606, - 19608, - 19610, - 0, - 19613, - 19614, - 0, - 0, - 0, - 0, - 0, - 0, - 19616, - 19617, - 0, - 0, - 19618, - 0, - 0, - 19619, - 0, - 0, - 0, - 19620, - 19621, - 19631, - 0, - 0, - 19632, - 19634, - 19636, - 0, - 19643, - 0, - 0, - 19644, - 19658, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19659, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19675, - 19677, - 0, - 0, - 0, - 0, - 19679, - 0, - 19683, - 0, - 19684, - 0, - 0, - 0, - 0, - 0, - 0, - 19687, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19688, - 19689, - 19692, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19695, - 19697, - 0, - 0, - 0, - 0, - 0, - 19698, - 19699, - 0, - 0, - 19700, - 0, - 19702, - 0, - 0, - 19703, - 0, - 0, - 0, - 0, - 0, - 0, - 19704, - 19708, - 0, - 19710, - 0, - 19713, - 0, - 0, - 0, - 19715, - 0, - 0, - 0, - 0, - 19718, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19720, - 0, - 19722, - 0, - 0, - 19725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19730, - 0, - 0, - 0, - 0, - 0, - 19731, - 0, - 19734, - 19735, - 19739, - 0, - 0, - 19740, - 0, - 19741, - 0, - 0, - 0, - 19746, - 0, - 0, - 19747, - 0, - 19771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19772, - 19775, - 0, - 0, - 0, - 0, - 0, - 0, - 19778, - 0, - 0, - 0, - 0, - 0, - 19779, - 0, - 0, - 19780, - 19790, - 0, - 19791, - 0, - 0, - 19792, - 0, - 0, - 0, - 19793, - 0, - 0, - 19796, - 19797, - 0, - 0, - 0, - 19799, - 0, - 0, - 0, - 19801, - 0, - 0, - 0, - 0, - 19803, - 0, - 19804, - 0, - 19805, - 0, - 0, - 19807, - 0, - 0, - 0, - 19808, - 0, - 0, - 0, - 0, - 0, - 0, - 19809, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19816, - 0, - 19821, - 0, - 19822, - 19830, - 19831, - 0, - 0, - 0, - 19833, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19838, - 0, - 0, - 0, - 0, - 19839, - 0, - 0, - 19843, - 0, - 0, - 0, - 0, - 19845, - 0, - 0, - 0, - 0, - 19847, - 0, - 0, - 19848, - 0, - 19849, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19851, - 0, - 0, - 0, - 19854, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19864, - 0, - 19865, - 0, - 19866, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19868, - 0, - 0, - 19870, - 0, - 0, - 19871, - 0, - 0, - 19872, - 19873, - 19875, - 0, - 19880, - 19882, - 19884, - 0, - 0, - 19885, - 19886, - 19888, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19890, - 19892, - 19893, - 0, - 0, - 19894, - 0, - 0, - 0, - 19895, - 0, - 19896, - 19902, - 0, - 0, - 19903, - 0, - 0, - 19905, - 0, - 0, - 0, - 19906, - 0, - 19908, - 0, - 19909, - 19911, - 0, - 0, - 0, - 19913, - 19920, - 0, - 19938, - 19939, - 19940, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19942, - 0, - 19943, - 0, - 19945, - 0, - 0, - 0, - 19951, - 19952, - 19954, - 19960, - 0, - 19965, - 0, - 19971, - 0, - 0, - 0, - 0, - 0, - 19975, - 0, - 19976, - 0, - 19990, - 0, - 0, - 19991, - 0, - 19993, - 0, - 19995, - 0, - 0, - 0, - 19998, - 19999, - 20001, - 0, - 20003, - 20005, - 0, - 20011, - 20012, - 0, - 0, - 0, - 0, - 0, - 0, - 20014, - 0, - 20020, - 0, - 0, - 0, - 0, - 20021, - 0, - 0, - 0, - 0, - 0, - 20023, - 20024, - 0, - 0, - 0, - 0, - 0, - 20025, - 0, - 0, - 20027, - 0, - 0, - 20029, - 0, - 0, - 20032, - 0, - 0, - 0, - 0, - 20044, - 20045, - 0, - 20048, - 20049, - 0, - 0, - 20050, - 0, - 20052, - 0, - 0, - 20054, - 20057, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20059, - 0, - 0, - 20061, - 0, - 20062, - 0, - 20064, - 0, - 0, - 20066, - 0, - 0, - 20067, - 0, - 0, - 0, - 0, - 20069, - 0, - 0, - 0, - 0, - 0, - 0, - 20070, - 20071, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20072, - 0, - 0, - 20073, - 20074, - 0, - 0, - 0, - 0, - 0, - 20075, - 0, - 20078, - 0, - 0, - 0, - 0, - 20080, - 0, - 20081, - 0, - 0, - 0, - 0, - 0, - 0, - 20095, - 0, - 20098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20107, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20112, - 0, - 0, - 0, - 20113, - 20114, - 0, - 0, - 0, - 20115, - 20123, - 20124, - 0, - 0, - 0, - 20131, - 20133, - 20134, - 0, - 0, - 0, - 0, - 20136, - 0, - 0, - 20137, - 20138, - 20150, - 0, - 20152, - 0, - 0, - 0, - 20153, - 0, - 0, - 20154, - 0, - 0, - 0, - 20158, - 0, - 20163, - 0, - 0, - 20164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20166, - 0, - 20168, - 0, - 20170, - 0, - 20175, - 0, - 0, - 20178, - 0, - 0, - 0, - 0, - 20223, - 0, - 0, - 0, - 0, - 20224, - 0, - 20226, - 0, - 0, - 20230, - 0, - 20231, - 0, - 0, - 0, - 0, - 20232, - 0, - 0, - 20233, - 20234, - 0, - 20244, - 0, - 20247, - 0, - 0, - 0, - 0, - 0, - 0, - 20249, - 0, - 0, - 0, - 20250, - 0, - 0, - 0, - 0, - 20251, - 0, - 20253, - 0, - 20254, - 0, - 0, - 0, - 0, - 20256, - 0, - 0, - 20264, - 0, - 0, - 0, - 0, - 20266, - 0, - 0, - 0, - 20278, - 0, - 0, - 20279, - 20282, - 0, - 0, - 0, - 0, - 0, - 20283, - 0, - 20284, - 0, - 20285, - 0, - 20287, - 20290, - 0, - 0, - 0, - 0, - 20292, - 0, - 0, - 0, - 0, - 20293, - 20297, - 0, - 0, - 0, - 0, - 0, - 0, - 20299, - 0, - 20300, - 20303, - 0, - 0, - 0, - 0, - 0, - 0, - 20307, - 0, - 0, - 20308, - 0, - 20309, - 0, - 20310, - 0, - 0, - 0, - 0, - 0, - 0, - 20312, - 0, - 0, - 0, - 20314, - 0, - 0, - 0, - 0, - 20315, - 20316, - 0, - 20322, - 0, - 0, - 0, - 0, - 0, - 0, - 20339, - 0, - 0, - 0, - 20342, - 0, - 0, - 0, - 0, - 20352, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20362, - 0, - 0, - 20365, - 0, - 20375, - 20377, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20378, - 20379, - 0, - 20380, - 0, - 0, - 20381, - 0, - 20382, - 0, - 20383, - 0, - 20388, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20390, - 20392, - 20393, - 0, - 0, - 20395, - 0, - 0, - 0, - 0, - 0, - 20396, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20398, - 20415, - 0, - 0, - 0, - 20417, - 0, - 0, - 20420, - 0, - 0, - 20426, - 20428, - 0, - 20431, - 0, - 0, - 20432, - 0, - 20433, - 20434, - 20435, - 0, - 0, - 0, - 0, - 20440, - 0, - 0, - 0, - 0, - 0, - 20442, - 0, - 20443, - 0, - 20446, - 0, - 0, - 0, - 0, - 20448, - 0, - 20451, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20452, - 20453, - 0, - 0, - 20454, - 0, - 0, - 0, - 0, - 0, - 0, - 20457, - 0, - 20458, - 0, - 0, - 0, - 20465, - 0, - 0, - 0, - 0, - 0, - 20469, - 0, - 0, - 0, - 20473, - 0, - 20476, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20477, - 0, - 0, - 20485, - 0, - 0, - 20486, - 0, - 0, - 20487, - 0, - 20496, - 0, - 20497, - 0, - 0, - 20498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20499, - 20500, - 0, - 20501, - 0, - 0, - 0, - 0, - 0, - 20520, - 20527, - 0, - 20529, - 0, - 0, - 0, - 0, - 20539, - 0, - 0, - 20540, - 0, - 0, - 0, - 20543, - 0, - 0, - 0, - 20546, - 0, - 0, - 0, - 0, - 0, - 20548, - 0, - 0, - 20563, - 0, - 0, - 20564, - 0, - 20566, - 0, - 0, - 0, - 0, - 0, - 20589, - 0, - 0, - 0, - 0, - 20590, - 0, - 0, - 20593, - 20594, - 0, - 0, - 0, - 0, - 20595, - 0, - 20597, - 20598, - 0, - 0, - 0, - 20618, - 20620, - 0, - 0, - 0, - 0, - 20621, - 0, - 0, - 0, - 0, - 20627, - 0, - 0, - 0, - 0, - 0, - 20628, - 0, - 0, - 0, - 20629, - 0, - 20630, - 0, - 0, - 20639, - 0, - 0, - 0, - 0, - 0, - 20707, - 0, - 0, - 20709, - 0, - 0, - 0, - 20713, - 20714, - 0, - 0, - 0, - 0, - 0, - 20724, - 20725, - 0, - 0, - 0, - 0, - 20726, - 20728, - 20729, - 0, - 20733, - 0, - 20734, - 0, - 20735, - 20736, - 0, - 20737, - 0, - 0, - 20744, - 0, - 20745, - 0, - 20748, - 0, - 0, - 20749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20750, - 0, - 0, - 0, - 0, - 20754, - 0, - 0, - 0, - 20761, - 0, - 0, - 20763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20766, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20767, - 0, - 0, - 0, - 0, - 20768, - 0, - 20769, - 20777, - 0, - 0, - 0, - 0, - 0, - 0, - 20785, - 0, - 0, - 0, - 20786, - 20795, - 20801, - 0, - 20802, - 0, - 20807, - 0, - 0, - 20808, - 0, - 0, - 20810, - 0, - 0, - 20811, - 0, - 20812, - 0, - 0, - 0, - 0, - 0, - 20813, - 0, - 0, - 20818, - 20820, - 20821, - 0, - 0, - 0, - 20822, - 0, - 20823, - 0, - 0, - 0, - 20826, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20829, - 20830, - 20831, - 0, - 20832, - 20836, - 0, - 0, - 20839, - 0, - 0, - 20840, - 20842, - 0, - 20843, - 0, - 20844, - 0, - 20854, - 0, - 0, - 0, - 20855, - 0, - 0, - 0, - 0, - 20856, - 0, - 0, - 0, - 20869, - 0, - 0, - 20871, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20873, - 0, - 0, - 0, - 0, - 0, - 20876, - 0, - 0, - 0, - 0, - 0, - 20880, - 0, - 0, - 20882, - 0, - 0, - 0, - 0, - 20883, - 20884, - 0, - 0, - 20890, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20891, - 0, - 0, - 0, - 0, - 0, - 20905, - 0, - 20906, - 20910, - 0, - 0, - 20912, - 20915, - 0, - 0, - 0, - 0, - 0, - 20916, - 0, - 20917, - 0, - 20919, - 20920, - 20922, - 0, - 20927, - 0, - 20928, - 20929, - 20930, - 0, - 0, - 20935, - 0, - 0, - 20939, - 0, - 0, - 20941, - 0, - 0, - 0, - 20943, - 0, - 0, - 0, - 20946, - 20947, - 0, - 0, - 0, - 0, - 0, - 20950, - 0, - 20954, - 0, - 0, - 20955, - 20964, - 0, - 0, - 20967, - 0, - 0, - 0, - 0, - 0, - 20973, - 20975, - 0, - 0, - 0, - 20984, - 0, - 20987, - 20988, - 0, - 0, - 0, - 0, - 0, - 20989, - 0, - 0, - 0, - 20995, - 0, - 20998, - 0, - 20999, - 0, - 0, - 0, - 0, - 21000, - 21001, - 0, - 0, - 0, - 0, - 21008, - 0, - 21010, - 0, - 21016, - 0, - 0, - 0, - 21017, - 21018, - 0, - 0, - 0, - 0, - 0, - 21021, - 21026, - 21027, - 21028, - 0, - 0, - 21029, - 0, - 0, - 0, - 0, - 0, - 21030, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21031, - 21032, - 0, - 0, - 0, - 0, - 0, - 21037, - 0, - 0, - 21038, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21039, - 0, - 21041, - 0, - 21046, - 21047, - 0, - 0, - 0, - 21049, - 21053, - 0, - 0, - 21057, - 21064, - 21065, - 0, - 0, - 21066, - 21067, - 0, - 0, - 0, - 21069, - 0, - 0, - 0, - 21071, - 21072, - 0, - 0, - 21073, - 0, - 21074, - 0, - 0, - 21078, - 0, - 0, - 0, - 0, - 21079, - 0, - 0, - 21080, - 21081, - 0, - 0, - 21086, - 21087, - 0, - 21089, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21091, - 0, - 21093, - 0, - 21094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21095, - 0, - 0, - 0, - 0, - 0, - 21096, - 0, - 21098, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21099, - 0, - 0, - 21100, - 21101, - 21102, - 0, - 0, - 0, - 0, - 0, - 21103, - 0, - 21104, - 0, - 0, - 0, - 0, - 0, - 21105, - 21108, - 21109, - 0, - 0, - 21112, - 21113, - 0, - 0, - 0, - 0, - 0, - 0, - 21115, - 21122, - 21123, - 0, - 0, - 0, - 0, - 0, - 21125, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21129, - 21131, - 0, - 0, - 21134, - 0, - 0, - 0, - 21137, - 21142, - 0, - 21143, - 0, - 0, - 21144, - 0, - 21145, - 21146, - 0, - 21152, - 21154, - 21155, - 21156, - 0, - 0, - 0, - 21160, - 0, - 0, - 0, - 0, - 0, - 0, - 21161, - 0, - 21164, - 0, - 21166, - 0, - 0, - 0, - 0, - 21170, - 0, - 0, - 0, - 0, - 21171, - 0, - 0, - 21172, - 0, - 21174, - 0, - 21175, - 0, - 0, - 0, - 0, - 0, - 21176, - 21179, - 21188, - 0, - 0, - 0, - 21189, - 0, - 0, - 21190, - 0, - 0, - 0, - 21192, - 0, - 0, - 21193, - 0, - 0, - 0, - 21198, - 0, - 21212, - 0, - 0, - 21213, - 0, - 0, - 0, - 0, - 0, - 0, - 21215, - 21216, - 0, - 0, - 21223, - 21225, - 0, - 21226, - 0, - 0, - 0, - 0, - 21227, - 21228, - 0, - 0, - 21229, - 0, - 0, - 0, - 0, - 21230, - 21236, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21237, - 0, - 0, - 21238, - 21239, - 0, - 0, - 0, - 0, - 21256, - 0, - 0, - 0, - 0, - 0, - 21257, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21259, - 0, - 0, - 0, - 21263, - 0, - 21272, - 0, - 21274, - 0, - 21282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21283, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21294, - 0, - 0, - 21297, - 0, - 0, - 0, - 0, - 21298, - 0, - 0, - 0, - 21299, - 0, - 21300, - 21302, - 0, - 21316, - 0, - 21318, - 21322, - 21323, - 0, - 21324, - 0, - 21326, - 0, - 0, - 0, - 21327, - 21328, - 0, - 0, - 0, - 21352, - 0, - 0, - 21354, - 21361, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21362, - 0, - 0, - 0, - 21363, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21366, - 0, - 0, - 21367, - 21372, - 21374, - 0, - 0, - 0, - 21375, - 21377, - 0, - 21378, - 0, - 0, - 0, - 21380, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21381, - 0, - 0, - 0, - 0, - 0, - 0, - 21382, - 0, - 21383, - 0, - 0, - 21384, - 0, - 0, - 21385, - 0, - 0, - 0, - 0, - 21389, - 21390, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21397, - 21398, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21399, - 0, - 21400, - 0, - 0, - 0, - 0, - 21402, - 0, - 0, - 0, - 21403, - 21404, - 0, - 21405, - 21406, - 0, - 0, - 0, - 21407, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21408, - 0, - 0, - 0, - 0, - 21409, - 0, - 21421, - 0, - 21422, - 0, - 0, - 0, - 21425, - 21428, - 0, - 0, - 0, - 0, - 21429, - 0, - 0, - 0, - 0, - 0, - 21433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21434, - 0, - 21443, - 0, - 21444, - 21449, - 0, - 21452, - 0, - 21453, - 21454, - 0, - 0, - 0, - 21457, - 0, - 0, - 21458, - 0, - 0, - 0, - 21460, - 21461, - 0, - 0, - 21464, - 0, - 0, - 0, - 21473, - 21478, - 0, - 0, - 21479, - 0, - 0, - 21481, - 21483, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21484, - 0, - 0, - 21485, - 21486, - 0, - 0, - 21488, - 0, - 0, - 0, - 0, - 0, - 0, - 21523, - 0, - 0, - 21525, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21526, - 0, - 0, - 0, - 0, - 0, - 0, - 21529, - 21530, - 0, - 0, - 21531, - 0, - 0, - 21533, - 0, - 0, - 21539, - 21564, - 0, - 21567, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21575, - 0, - 0, - 0, - 0, - 21577, - 0, - 0, - 0, - 0, - 0, - 21591, - 0, - 0, - 21604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21605, - 0, - 21606, - 0, - 0, - 21617, - 21618, - 21619, - 21620, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21623, - 0, - 0, - 0, - 0, - 21631, - 0, - 21635, - 0, - 0, - 0, - 0, - 21639, - 21646, - 21653, - 21662, - 0, - 0, - 21663, - 21664, - 0, - 21666, - 0, - 0, - 21667, - 0, - 21670, - 21672, - 21673, - 0, - 21674, - 21683, - 0, - 0, - 0, - 0, - 0, - 21684, - 0, - 21694, - 0, - 0, - 0, - 0, - 21695, - 21700, - 0, - 21703, - 0, - 21704, - 0, - 0, - 21709, - 0, - 0, - 0, - 21710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21711, - 0, - 0, - 0, - 21712, - 0, - 21717, - 0, - 21730, - 0, - 0, - 0, - 21731, - 21733, - 0, - 0, - 0, - 0, - 21737, - 21741, - 21742, - 0, - 21747, - 0, - 0, - 0, - 21749, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21750, - 0, - 0, - 0, - 0, - 0, - 21752, - 0, - 0, - 0, - 0, - 21753, - 0, - 0, - 0, - 0, - 0, - 0, - 21755, - 21756, - 0, - 21757, - 0, - 0, - 0, - 0, - 0, - 0, - 21760, - 0, - 0, - 21763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21764, - 0, - 0, - 21766, - 0, - 0, - 21767, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21773, - 0, - 21774, - 0, - 0, - 21775, - 0, - 0, - 0, - 0, - 21776, - 0, - 0, - 21777, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21780, - 21787, - 21788, - 21791, - 0, - 0, - 0, - 21797, - 0, - 0, - 0, - 0, - 0, - 21805, - 0, - 0, - 0, - 0, - 21806, - 0, - 21807, - 21809, - 0, - 21810, - 21811, - 0, - 21817, - 21819, - 21820, - 0, - 21823, - 0, - 21824, - 0, - 0, - 21825, - 0, - 0, - 21826, - 21832, - 0, - 0, - 0, - 0, - 0, - 21833, - 21848, - 21849, - 0, - 0, - 21867, - 21870, - 21871, - 21873, - 0, - 0, - 0, - 21874, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21875, - 0, - 21878, - 0, - 0, - 0, - 21879, - 0, - 21881, - 21886, - 0, - 0, - 0, - 0, - 21887, - 0, - 0, - 21888, - 21894, - 21895, - 21897, - 0, - 21901, - 0, - 21904, - 0, - 0, - 21906, - 0, - 0, - 0, - 21909, - 21910, - 21911, - 0, - 0, - 21912, - 0, - 0, - 21913, - 21914, - 21915, - 0, - 21919, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21921, - 0, - 0, - 21922, - 21933, - 21939, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21944, - 0, - 0, - 0, - 0, - 0, - 21945, - 0, - 21947, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21949, - 0, - 0, - 0, - 21950, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21951, - 0, - 21952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21954, - 21957, - 0, - 0, - 0, - 0, - 21958, - 0, - 21959, - 0, - 0, - 0, - 0, - 0, - 0, - 21962, - 21963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 21964, - 21965, - 0, - 0, - 21969, - 21970, - 0, - 0, - 0, - 21974, - 0, - 0, - 21980, - 21981, - 0, - 21982, - 0, - 0, - 0, - 0, - 0, - 21985, - 0, - 21988, - 0, - 21992, - 0, - 21999, - 0, - 0, - 0, - 0, - 0, - 0, - 22001, - 0, - 22002, - 0, - 0, - 0, - 0, - 0, - 0, - 22003, - 0, - 0, - 0, - 0, - 0, - 22004, - 0, - 0, - 0, - 22008, - 0, - 22009, - 22015, - 0, - 0, - 22016, - 0, - 0, - 0, - 22017, - 22019, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22020, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22021, - 22037, - 0, - 22039, - 0, - 0, - 0, - 22040, - 0, - 0, - 0, - 22048, - 22049, - 0, - 0, - 22053, - 22055, - 22056, - 22059, - 0, - 0, - 22060, - 22061, - 0, - 0, - 22064, - 0, - 0, - 0, - 0, - 22066, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22073, - 0, - 0, - 0, - 22074, - 22075, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22076, - 0, - 0, - 0, - 0, - 22077, - 22084, - 22099, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22104, - 0, - 0, - 22107, - 0, - 22108, - 0, - 22109, - 0, - 22110, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22111, - 22119, - 0, - 22120, - 22122, - 0, - 0, - 0, - 0, - 22125, - 0, - 0, - 0, - 22128, - 22129, - 0, - 0, - 0, - 0, - 0, - 0, - 22141, - 0, - 0, - 0, - 22142, - 0, - 0, - 22144, - 22146, - 0, - 22148, - 22149, - 22151, - 22154, - 0, - 0, - 0, - 22162, - 0, - 0, - 0, - 0, - 22164, - 22177, - 0, - 0, - 0, - 0, - 22179, - 0, - 22182, - 22183, - 0, - 0, - 22184, - 22188, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22190, - 0, - 22194, - 22201, - 0, - 0, - 22208, - 0, - 22209, - 0, - 22212, - 0, - 0, - 22215, - 0, - 22223, - 22231, - 0, - 0, - 22232, - 0, - 22234, - 0, - 0, - 22235, - 22236, - 0, - 22237, - 0, - 22240, - 0, - 0, - 0, - 0, - 0, - 22241, - 0, - 0, - 0, - 22242, - 22246, - 22247, - 0, - 0, - 0, - 22259, - 22268, - 0, - 22269, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22270, - 0, - 0, - 0, - 0, - 22271, - 0, - 22272, - 0, - 22277, - 0, - 0, - 0, - 0, - 0, - 22278, - 22280, - 22283, - 22286, - 0, - 0, - 22287, - 22289, - 0, - 0, - 22290, - 0, - 22293, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22295, - 0, - 22301, - 22302, - 0, - 0, - 0, - 22305, - 0, - 22308, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22315, - 0, - 0, - 0, - 22317, - 0, - 22334, - 0, - 0, - 0, - 22335, - 0, - 0, - 0, - 0, - 0, - 22336, - 0, - 22338, - 22344, - 0, - 22347, - 22349, - 0, - 22350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22357, - 0, - 0, - 0, - 0, - 0, - 22358, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22359, - 22360, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22361, - 22366, - 0, - 0, - 22369, - 0, - 22370, - 22373, - 0, - 0, - 0, - 0, - 0, - 22375, - 0, - 22377, - 0, - 0, - 0, - 0, - 0, - 22378, - 0, - 0, - 0, - 0, - 22381, - 0, - 0, - 0, - 0, - 22382, - 0, - 22383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22391, - 0, - 0, - 22392, - 22395, - 22396, - 22402, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22405, - 0, - 0, - 22406, - 0, - 0, - 22408, - 0, - 0, - 22409, - 22410, - 0, - 0, - 0, - 0, - 0, - 0, - 22424, - 0, - 0, - 0, - 0, - 22426, - 0, - 0, - 0, - 22427, - 0, - 22428, - 0, - 22432, - 0, - 22435, - 22442, - 22443, - 0, - 0, - 0, - 0, - 22444, - 0, - 0, - 0, - 0, - 0, - 22446, - 0, - 22454, - 0, - 22455, - 0, - 0, - 0, - 22465, - 0, - 22470, - 0, - 22471, - 0, - 0, - 0, - 0, - 22472, - 22473, - 0, - 22487, - 0, - 0, - 0, - 22488, - 0, - 0, - 0, - 0, - 22489, - 0, - 0, - 22499, - 0, - 0, - 0, - 0, - 0, - 0, - 22514, - 0, - 0, - 22515, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22516, - 0, - 0, - 0, - 22517, - 22520, - 0, - 0, - 0, - 22534, - 0, - 0, - 22535, - 0, - 0, - 22536, - 0, - 22540, - 22553, - 0, - 22555, - 0, - 0, - 0, - 0, - 22561, - 0, - 0, - 22562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22566, - 0, - 0, - 0, - 0, - 22567, - 22568, - 0, - 0, - 22575, - 0, - 22579, - 0, - 22582, - 22583, - 22585, - 0, - 0, - 0, - 0, - 0, - 22586, - 0, - 0, - 22587, - 0, - 0, - 22590, - 0, - 0, - 0, - 0, - 0, - 22591, - 0, - 22592, - 0, - 0, - 0, - 0, - 0, - 22593, - 0, - 22602, - 0, - 0, - 22604, - 0, - 0, - 22609, - 0, - 0, - 22618, - 0, - 0, - 0, - 0, - 0, - 0, - 22619, - 0, - 22624, - 22625, - 0, - 0, - 22638, - 0, - 0, - 0, - 0, - 0, - 22639, - 0, - 0, - 22640, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22644, - 0, - 22645, - 22647, - 0, - 0, - 0, - 0, - 22652, - 22653, - 0, - 0, - 0, - 22654, - 0, - 22655, - 0, - 0, - 0, - 22656, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22673, - 22675, - 22676, - 0, - 0, - 22678, - 22679, - 0, - 22691, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22693, - 0, - 0, - 22696, - 0, - 22699, - 22707, - 22708, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22718, - 0, - 22719, - 0, - 0, - 0, - 0, - 22723, - 0, - 0, - 0, - 22724, - 22725, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22726, - 22728, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22729, - 0, - 0, - 22731, - 0, - 0, - 0, - 0, - 22732, - 22735, - 22736, - 0, - 0, - 0, - 0, - 22739, - 0, - 22749, - 0, - 0, - 22751, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22758, - 0, - 0, - 0, - 0, - 0, - 22760, - 0, - 0, - 0, - 0, - 0, - 22764, - 22765, - 22766, - 0, - 22768, - 0, - 0, - 0, - 0, - 0, - 22769, - 22770, - 0, - 0, - 0, - 0, - 0, - 0, - 22771, - 0, - 0, - 22772, - 22775, - 0, - 22776, - 22777, - 22780, - 0, - 0, - 22782, - 22784, - 0, - 22787, - 0, - 22789, - 22796, - 0, - 0, - 0, - 0, - 0, - 22798, - 0, - 0, - 0, - 0, - 0, - 0, - 22802, - 0, - 22803, - 22804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22805, - 0, - 0, - 22810, - 22811, - 22814, - 22816, - 0, - 22825, - 22826, - 0, - 22831, - 22833, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22834, - 0, - 22836, - 22838, - 0, - 22839, - 0, - 0, - 0, - 0, - 0, - 22840, - 0, - 22847, - 0, - 0, - 0, - 0, - 0, - 22856, - 22857, - 0, - 22858, - 22859, - 0, - 0, - 22862, - 0, - 0, - 22864, - 0, - 0, - 0, - 0, - 22865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22866, - 0, - 22867, - 22868, - 0, - 0, - 0, - 0, - 22869, - 0, - 22871, - 0, - 22872, - 0, - 22873, - 22881, - 22882, - 22884, - 22885, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22886, - 22887, - 0, - 22894, - 0, - 22895, - 0, - 0, - 0, - 22900, - 0, - 22901, - 0, - 0, - 0, - 0, - 22904, - 0, - 0, - 0, - 0, - 22905, - 22907, - 0, - 0, - 0, - 22915, - 22917, - 0, - 0, - 22918, - 0, - 0, - 0, - 22920, - 0, - 0, - 0, - 22929, - 22930, - 0, - 0, - 0, - 22941, - 22942, - 0, - 0, - 0, - 22943, - 0, - 0, - 0, - 22944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22946, - 0, - 22947, - 0, - 0, - 22954, - 0, - 22956, - 0, - 0, - 22962, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22963, - 0, - 0, - 22964, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22965, - 0, - 22968, - 0, - 0, - 0, - 22969, - 0, - 0, - 0, - 0, - 0, - 22970, - 0, - 22971, - 0, - 0, - 0, - 0, - 0, - 22978, - 0, - 0, - 22979, - 0, - 22987, - 0, - 0, - 22989, - 0, - 0, - 0, - 0, - 0, - 0, - 22990, - 0, - 23005, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23006, - 23007, - 23008, - 0, - 0, - 23023, - 23024, - 23029, - 0, - 0, - 0, - 0, - 23030, - 0, - 0, - 0, - 0, - 0, - 23032, - 0, - 0, - 0, - 0, - 0, - 23035, - 0, - 0, - 0, - 0, - 23038, - 0, - 0, - 0, - 23048, - 0, - 23049, - 23052, - 23053, - 23060, - 23061, - 0, - 23063, - 0, - 0, - 0, - 0, - 23067, - 23068, - 0, - 0, - 0, - 23069, - 23073, - 0, - 0, - 0, - 23127, - 0, - 23128, - 0, - 0, - 0, - 0, - 0, - 23129, - 0, - 23138, - 23141, - 0, - 23149, - 0, - 0, - 23150, - 0, - 0, - 0, - 23152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23154, - 0, - 0, - 0, - 0, - 23157, - 23159, - 23160, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23180, - 0, - 0, - 0, - 0, - 23181, - 0, - 0, - 23188, - 0, - 23189, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23195, - 0, - 0, - 23196, - 23199, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23202, - 0, - 23204, - 0, - 23207, - 0, - 23209, - 23210, - 0, - 0, - 0, - 0, - 0, - 0, - 23227, - 23229, - 0, - 0, - 23230, - 23234, - 23238, - 0, - 0, - 0, - 23245, - 23246, - 23248, - 0, - 0, - 0, - 0, - 23249, - 23254, - 0, - 0, - 0, - 23265, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23268, - 0, - 23276, - 0, - 0, - 0, - 0, - 23277, - 0, - 23297, - 0, - 23298, - 0, - 0, - 0, - 0, - 23299, - 0, - 23302, - 0, - 0, - 23303, - 23312, - 0, - 0, - 23314, - 0, - 23320, - 0, - 0, - 0, - 0, - 23324, - 0, - 23325, - 0, - 23328, - 0, - 23334, - 0, - 0, - 0, - 23337, - 0, - 0, - 0, - 0, - 23343, - 23344, - 23346, - 0, - 23348, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23353, - 0, - 0, - 0, - 0, - 23355, - 0, - 23356, - 23358, - 0, - 0, - 0, - 23359, - 23360, - 0, - 23361, - 0, - 23367, - 0, - 23369, - 0, - 0, - 23373, - 0, - 23378, - 23379, - 0, - 23382, - 23383, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23387, - 0, - 0, - 0, - 0, - 0, - 0, - 23388, - 23390, - 0, - 0, - 23393, - 23398, - 0, - 0, - 0, - 23399, - 0, - 0, - 0, - 23400, - 0, - 0, - 0, - 0, - 23401, - 0, - 0, - 0, - 23415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23416, - 0, - 23422, - 0, - 23443, - 23444, - 0, - 0, - 0, - 0, - 23448, - 0, - 23454, - 0, - 0, - 0, - 0, - 0, - 0, - 23456, - 0, - 0, - 23458, - 23464, - 0, - 0, - 0, - 0, - 0, - 0, - 23465, - 0, - 0, - 0, - 23470, - 23471, - 0, - 0, - 23472, - 0, - 0, - 0, - 23473, - 23496, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23497, - 0, - 23499, - 0, - 0, - 23502, - 0, - 0, - 23503, - 0, - 0, - 23513, - 0, - 0, - 23515, - 0, - 0, - 0, - 23517, - 0, - 0, - 0, - 0, - 23518, - 23519, - 23521, - 23524, - 0, - 23525, - 23528, - 23539, - 0, - 0, - 0, - 0, - 0, - 23541, - 0, - 0, - 23544, - 0, - 0, - 23556, - 0, - 0, - 23557, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23559, - 0, - 23560, - 0, - 0, - 23561, - 0, - 0, - 23566, - 0, - 0, - 0, - 0, - 0, - 23568, - 23569, - 23570, - 0, - 0, - 0, - 0, - 23571, - 0, - 23574, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23575, - 0, - 23579, - 0, - 0, - 23581, - 0, - 0, - 0, - 0, - 0, - 0, - 23587, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23596, - 23598, - 0, - 0, - 0, - 0, - 23602, - 23606, - 0, - 0, - 23607, - 0, - 23608, - 0, - 0, - 0, - 23614, - 23616, - 0, - 0, - 0, - 0, - 0, - 23618, - 0, - 0, - 23619, - 0, - 0, - 0, - 0, - 23621, - 23626, - 0, - 23627, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23629, - 0, - 23630, - 0, - 0, - 0, - 0, - 23634, - 0, - 23636, - 0, - 0, - 0, - 0, - 0, - 0, - 23638, - 0, - 0, - 0, - 0, - 23640, - 23667, - 0, - 23669, - 0, - 0, - 0, - 23681, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23682, - 0, - 23683, - 0, - 0, - 0, - 0, - 0, - 23684, - 0, - 0, - 0, - 23685, - 23689, - 0, - 23693, - 23694, - 23700, - 0, - 23702, - 0, - 23709, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23712, - 0, - 0, - 0, - 0, - 0, - 23714, - 0, - 0, - 23715, - 0, - 0, - 0, - 0, - 23718, - 0, - 0, - 23720, - 0, - 0, - 0, - 0, - 23722, - 0, - 0, - 0, - 23726, - 23729, - 0, - 23741, - 23746, - 0, - 23748, - 0, - 0, - 0, - 0, - 23749, - 0, - 0, - 0, - 0, - 0, - 23750, - 0, - 0, - 0, - 0, - 23751, - 0, - 23753, - 0, - 0, - 0, - 0, - 23757, - 23765, - 0, - 0, - 0, - 23770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23771, - 0, - 23772, - 23781, - 0, - 0, - 23796, - 0, - 0, - 0, - 0, - 23798, - 0, - 23799, - 0, - 0, - 0, - 23802, - 0, - 0, - 23806, - 0, - 23807, - 0, - 0, - 23808, - 0, - 23809, - 0, - 23819, - 0, - 0, - 0, - 23821, - 0, - 23827, - 0, - 0, - 0, - 23829, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23830, - 0, - 0, - 0, - 0, - 0, - 0, - 23832, - 23833, - 23834, - 23835, - 0, - 0, - 0, - 0, - 23837, - 23838, - 0, - 0, - 0, - 0, - 0, - 23846, - 0, - 0, - 0, - 0, - 0, - 0, - 23847, - 0, - 0, - 0, - 0, - 0, - 23879, - 23881, - 0, - 0, - 23882, - 23883, - 23895, - 0, - 23899, - 0, - 0, - 0, - 0, - 23901, - 0, - 0, - 0, - 0, - 0, - 0, - 23902, - 0, - 0, - 0, - 0, - 0, - 23903, - 23905, - 0, - 23906, - 0, - 23907, - 23918, - 23919, - 23920, - 0, - 23922, - 0, - 23924, - 0, - 23927, - 0, - 23934, - 0, - 23937, - 23941, - 0, - 23942, - 23946, - 0, - 0, - 0, - 0, - 0, - 23955, - 23956, - 23958, - 0, - 0, - 0, - 0, - 0, - 0, - 23959, - 0, - 23962, - 23965, - 0, - 23966, - 0, - 0, - 0, - 0, - 23967, - 23968, - 0, - 0, - 23973, - 0, - 0, - 23974, - 0, - 0, - 0, - 0, - 23975, - 0, - 23976, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23977, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23980, - 0, - 0, - 23984, - 0, - 23985, - 0, - 0, - 23987, - 0, - 0, - 23988, - 23990, - 23991, - 0, - 0, - 0, - 0, - 0, - 0, - 23992, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23994, - 0, - 0, - 0, - 23998, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23999, - 0, - 0, - 24003, - 0, - 24004, - 0, - 24006, - 0, - 0, - 0, - 24007, - 0, - 0, - 24008, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24009, - 0, - 0, - 24010, - 0, - 0, - 24011, - 0, - 0, - 24013, - 24014, - 0, - 0, - 24015, - 24016, - 24027, - 0, - 24028, - 24029, - 0, - 24030, - 0, - 0, - 0, - 0, - 0, - 24033, - 24034, - 0, - 24035, - 0, - 0, - 24036, - 0, - 0, - 24044, - 0, - 24048, - 24049, - 24063, - 24067, - 0, - 24068, - 24070, - 0, - 0, - 24071, - 24078, - 24087, - 0, - 24090, - 0, - 0, - 0, - 24095, - 0, - 24098, - 24101, - 24104, - 24106, - 0, - 24107, - 0, - 0, - 0, - 24108, - 0, - 0, - 0, - 0, - 24110, - 24111, - 0, - 24113, - 0, - 0, - 24115, - 24120, - 0, - 0, - 0, - 0, - 0, - 0, - 24124, - 0, - 24125, - 0, - 24126, - 0, - 24127, - 0, - 0, - 0, - 0, - 0, - 24135, - 0, - 0, - 24136, - 0, - 24137, - 24142, - 0, - 0, - 0, - 24146, - 0, - 0, - 24147, - 24149, - 24154, - 0, - 24163, - 0, - 0, - 0, - 24165, - 24166, - 24167, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24169, - 24170, - 24175, - 0, - 0, - 0, - 24178, - 0, - 0, - 24179, - 0, - 0, - 24181, - 0, - 24184, - 24197, - 0, - 24201, - 24204, - 0, - 0, - 0, - 0, - 0, - 0, - 24206, - 24212, - 24220, - 0, - 0, - 0, - 24224, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24226, - 0, - 24234, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24235, - 0, - 24236, - 0, - 0, - 0, - 0, - 0, - 24239, - 24240, - 24241, - 0, - 0, - 24248, - 0, - 0, - 24249, - 0, - 24251, - 0, - 0, - 0, - 0, - 0, - 0, - 24253, - 0, - 24268, - 0, - 0, - 0, - 24269, - 0, - 24271, - 24272, - 0, - 0, - 0, - 0, - 24273, - 0, - 0, - 24274, - 0, - 0, - 24279, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24280, - 0, - 24293, - 24294, - 0, - 0, - 0, - 0, - 0, - 0, - 24296, - 0, - 0, - 24323, - 0, - 0, - 0, - 24329, - 24330, - 24331, - 24339, - 0, - 24351, - 0, - 0, - 24369, - 24370, - 0, - 0, - 0, - 24371, - 0, - 0, - 0, - 0, - 24372, - 24373, - 24374, - 0, - 0, - 0, - 0, - 0, - 24378, - 0, - 0, - 0, - 0, - 24379, - 0, - 24381, - 0, - 24383, - 24389, - 0, - 24390, - 0, - 0, - 24394, - 24395, - 24400, - 0, - 0, - 0, - 24401, - 24402, - 0, - 24406, - 0, - 0, - 0, - 24411, - 0, - 0, - 0, - 24415, - 0, - 24416, - 0, - 0, - 0, - 0, - 0, - 24417, - 0, - 24419, - 0, - 24422, - 0, - 24423, - 24428, - 0, - 24435, - 0, - 0, - 0, - 24439, - 0, - 0, - 0, - 24440, - 24442, - 24446, - 0, - 0, - 0, - 24447, - 24448, - 24449, - 24452, - 0, - 0, - 0, - 0, - 24453, - 24457, - 0, - 0, - 24458, - 24459, - 24460, - 0, - 24465, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24471, - 0, - 24473, - 24474, - 24475, - 24476, - 0, - 24478, - 0, - 0, - 0, - 0, - 24480, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24481, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24482, - 24485, - 0, - 0, - 0, - 0, - 24486, - 0, - 0, - 0, - 24488, - 0, - 0, - 0, - 24494, - 0, - 0, - 0, - 0, - 24497, - 0, - 0, - 24498, - 0, - 0, - 0, - 24499, - 24506, - 0, - 0, - 0, - 24507, - 0, - 0, - 24511, - 0, - 0, - 24513, - 24514, - 0, - 0, - 0, - 0, - 0, - 24517, - 0, - 24518, - 0, - 24520, - 0, - 24521, - 24524, - 24525, - 0, - 0, - 0, - 0, - 0, - 24527, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24528, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24537, - 24539, - 0, - 24540, - 0, - 0, - 0, - 24548, - 0, - 0, - 0, - 0, - 0, - 24549, - 24550, - 0, - 0, - 0, - 24553, - 24554, - 0, - 24555, - 0, - 24556, - 0, - 24558, - 0, - 0, - 0, - 0, - 0, - 24560, - 0, - 0, - 0, - 24561, - 0, - 0, - 0, - 0, - 0, - 24562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24567, - 0, - 0, - 0, - 0, - 0, - 24569, - 0, - 0, - 0, - 24574, - 0, - 24575, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24577, - 24581, - 0, - 24584, - 0, - 0, - 0, - 0, - 0, - 24585, - 0, - 0, - 0, - 0, - 0, - 24586, - 0, - 0, - 24587, - 0, - 24588, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24590, - 24591, - 0, - 0, - 0, - 0, - 24592, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24594, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24596, - 24597, - 0, - 0, - 0, - 0, - 24602, - 24603, - 0, - 0, - 0, - 0, - 24604, - 0, - 0, - 24605, - 0, - 24610, - 0, - 0, - 24611, - 0, - 0, - 0, - 0, - 24612, - 24615, - 24616, - 24624, - 0, - 0, - 0, - 24627, - 0, - 24638, - 24639, - 0, - 0, - 0, - 0, - 24640, - 0, - 0, - 0, - 24655, - 24656, - 24657, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24662, - 0, - 24663, - 24664, - 0, - 0, - 0, - 0, - 0, - 24665, - 0, - 0, - 0, - 0, - 24667, - 0, - 0, - 0, - 0, - 0, - 0, - 24668, - 24669, - 0, - 24670, - 24674, - 0, - 0, - 0, - 24675, - 0, - 24678, - 0, - 0, - 24679, - 0, - 0, - 0, - 24681, - 0, - 24683, - 0, - 0, - 0, - 0, - 24684, - 0, - 24685, - 0, - 0, - 24686, - 0, - 0, - 24688, - 24689, - 0, - 0, - 0, - 0, - 24690, - 24691, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24697, - 0, - 24698, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24709, - 0, - 0, - 0, - 0, - 0, - 24710, - 0, - 24712, - 0, - 0, - 0, - 0, - 0, - 0, - 24713, - 24714, - 0, - 24715, - 0, - 24716, - 24718, - 0, - 24719, - 0, - 0, - 0, - 0, - 24720, - 0, - 0, - 24725, - 0, - 0, - 24738, - 0, - 24749, - 24750, - 0, - 0, - 0, - 24752, - 0, - 0, - 0, - 24753, - 0, - 0, - 0, - 24758, - 0, - 0, - 0, - 0, - 0, - 24762, - 0, - 24763, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24764, - 0, - 0, - 0, - 0, - 0, - 24765, - 24767, - 24768, - 0, - 24772, - 0, - 0, - 0, - 0, - 24773, - 0, - 0, - 0, - 0, - 24777, - 0, - 0, - 0, - 0, - 0, - 24785, - 0, - 24786, - 24788, - 0, - 0, - 0, - 24789, - 0, - 0, - 0, - 0, - 24794, - 24798, - 0, - 24799, - 24800, - 0, - 0, - 0, - 24803, - 0, - 24804, - 24806, - 0, - 24807, - 0, - 0, - 0, - 24810, - 0, - 0, - 0, - 0, - 0, - 0, - 24827, - 24828, - 0, - 24835, - 0, - 0, - 0, - 0, - 0, - 0, - 24836, - 0, - 0, - 0, - 0, - 0, - 24839, - 0, - 24843, - 24844, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24847, - 0, - 0, - 24848, - 0, - 0, - 0, - 0, - 0, - 0, - 24849, - 0, - 24850, - 24851, - 0, - 0, - 0, - 24852, - 0, - 24853, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24854, - 0, - 24855, - 0, - 0, - 24868, - 0, - 0, - 0, - 24883, - 0, - 0, - 0, - 24884, - 0, - 24895, - 24897, - 0, - 0, - 0, - 0, - 0, - 24899, - 0, - 0, - 0, - 0, - 0, - 24900, - 0, - 24913, - 0, - 0, - 0, - 0, - 0, - 0, - 24914, - 0, - 0, - 24917, - 24930, - 24931, - 0, - 0, - 0, - 24932, - 0, - 0, - 24939, - 0, - 0, - 24942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 24945, - 24950, - 0, - 24951, - 0, - 0, - 24953, - 0, - 0, - 0, - 24954, - 0, - 24959, - 0, - 0, - 0, - 24961, - 0, - 0, - 24962, - 0, - 24964, - 24968, - 24970, - 24972, - 0, - 0, - 0, - 0, - 0, - 24976, - 0, - 0, - 0, - 24977, - 0, - 24982, - 0, - 0, - 24983, - 0, - 0, - 24984, - 0, - 0, - 0, - 24993, - 0, - 0, - 0, - 24994, - 0, - 0, - 25001, - 0, - 0, - 0, - 25003, - 0, - 0, - 25018, - 0, - 0, - 25023, - 0, - 0, - 0, - 25034, - 0, - 0, - 25035, - 25036, - 0, - 25037, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25039, - 0, - 0, - 0, - 0, - 0, - 25040, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25042, - 0, - 0, - 25043, - 25045, - 0, - 0, - 0, - 0, - 0, - 0, - 25049, - 0, - 0, - 25051, - 0, - 25052, - 25053, - 0, - 0, - 25054, - 0, - 0, - 0, - 25055, - 0, - 0, - 0, - 0, - 25057, - 25059, - 0, - 0, - 25060, - 25064, - 0, - 25065, - 25069, - 25070, - 0, - 0, - 0, - 0, - 25072, - 0, - 25073, - 0, - 25090, - 0, - 0, - 25092, - 25093, - 25101, - 0, - 0, - 0, - 0, - 0, - 0, - 25105, - 25108, - 0, - 0, - 25113, - 0, - 0, - 25115, - 25116, - 0, - 0, - 0, - 0, - 0, - 0, - 25117, - 0, - 0, - 0, - 25120, - 25121, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25125, - 0, - 0, - 0, - 25126, - 0, - 25130, - 25134, - 0, - 25139, - 0, - 25143, - 0, - 0, - 0, - 25151, - 0, - 25161, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25163, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25174, - 0, - 25175, - 0, - 25207, - 0, - 0, - 0, - 25209, - 0, - 0, - 0, - 0, - 25213, - 0, - 25219, - 0, - 25223, - 0, - 25225, - 0, - 0, - 0, - 25227, - 0, - 0, - 0, - 25228, - 0, - 0, - 0, - 25229, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25231, - 25233, - 0, - 0, - 0, - 0, - 25237, - 25239, - 0, - 0, - 0, - 25243, - 0, - 0, - 0, - 25252, - 0, - 25257, - 25258, - 0, - 0, - 0, - 0, - 25260, - 25265, - 0, - 25268, - 0, - 0, - 25273, - 25324, - 0, - 25325, - 0, - 25326, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25327, - 0, - 0, - 0, - 0, - 0, - 25328, - 0, - 0, - 0, - 0, - 0, - 0, - 25332, - 0, - 0, - 0, - 25333, - 0, - 0, - 0, - 25336, - 25337, - 25338, - 0, - 0, - 25343, - 0, - 25350, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25352, - 0, - 25354, - 0, - 25375, - 0, - 25379, - 0, - 0, - 0, - 0, - 25384, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25386, - 0, - 25388, - 0, - 25390, - 0, - 0, - 25399, - 0, - 0, - 25401, - 0, - 0, - 0, - 25402, - 0, - 0, - 0, - 25407, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25413, - 25415, - 0, - 0, - 25417, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25419, - 0, - 0, - 0, - 25421, - 0, - 0, - 0, - 25424, - 0, - 0, - 0, - 0, - 25433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25435, - 0, - 0, - 0, - 0, - 0, - 0, - 25436, - 0, - 0, - 0, - 25437, - 0, - 0, - 25440, - 0, - 0, - 0, - 0, - 0, - 0, - 25442, - 0, - 0, - 25443, - 0, - 25446, - 0, - 0, - 25449, - 0, - 0, - 0, - 25450, - 0, - 0, - 0, - 0, - 25452, - 0, - 25453, - 25454, - 25455, - 0, - 0, - 0, - 25456, - 0, - 25457, - 0, - 0, - 0, - 25459, - 0, - 25461, - 0, - 25468, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25469, - 0, - 0, - 0, - 0, - 0, - 25471, - 0, - 0, - 0, - 0, - 0, - 25474, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25475, - 0, - 0, - 0, - 0, - 25477, - 0, - 0, - 0, - 0, - 25483, - 0, - 0, - 0, - 0, - 0, - 25484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25485, - 0, - 25497, - 0, - 0, - 25498, - 0, - 25504, - 0, - 25510, - 0, - 25512, - 0, - 0, - 25513, - 25514, - 0, - 0, - 0, - 0, - 0, - 0, - 25517, - 25518, - 25519, - 0, - 25520, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25521, - 0, - 25522, - 25527, - 25534, - 0, - 25536, - 0, - 25537, - 0, - 0, - 25548, - 25550, - 0, - 0, - 25551, - 0, - 25552, - 0, - 0, - 0, - 0, - 0, - 25554, - 0, - 25555, - 0, - 25556, - 25557, - 25568, - 0, - 0, - 0, - 25570, - 25571, - 0, - 0, - 0, - 0, - 0, - 0, - 25574, - 0, - 0, - 0, - 0, - 25579, - 0, - 0, - 0, - 25581, - 0, - 0, - 0, - 25582, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25588, - 0, - 0, - 0, - 0, - 25589, - 0, - 0, - 0, - 0, - 25590, - 0, - 25591, - 25592, - 25593, - 0, - 25594, - 0, - 0, - 0, - 25596, - 0, - 25597, - 25615, - 0, - 0, - 0, - 0, - 0, - 25618, - 0, - 0, - 0, - 0, - 25619, - 25623, - 0, - 0, - 25629, - 0, - 0, - 25631, - 0, - 0, - 0, - 25635, - 25636, - 0, - 0, - 25649, - 0, - 0, - 0, - 0, - 25654, - 0, - 0, - 0, - 25661, - 25663, - 0, - 0, - 25671, - 0, - 0, - 25678, - 25698, - 0, - 25699, - 25702, - 25703, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25704, - 0, - 0, - 0, - 0, - 0, - 25706, - 0, - 0, - 25710, - 0, - 25711, - 0, - 25712, - 0, - 25715, - 25716, - 25717, - 0, - 0, - 25718, - 25728, - 25732, - 0, - 0, - 0, - 25734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25737, - 0, - 0, - 25739, - 0, - 0, - 0, - 25740, - 0, - 25741, - 25745, - 0, - 25746, - 0, - 25748, - 25772, - 25778, - 0, - 0, - 0, - 0, - 0, - 25780, - 0, - 0, - 0, - 0, - 25781, - 0, - 25782, - 25784, - 25785, - 0, - 0, - 0, - 25789, - 0, - 0, - 0, - 0, - 0, - 0, - 25797, - 25801, - 0, - 0, - 0, - 25808, - 25809, - 0, - 0, - 25811, - 25814, - 25815, - 0, - 0, - 25817, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25820, - 0, - 0, - 0, - 0, - 25832, - 25833, - 0, - 0, - 0, - 25846, - 0, - 0, - 0, - 25847, - 25848, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25849, - 25850, - 0, - 0, - 25851, - 0, - 0, - 25852, - 0, - 25862, - 0, - 0, - 0, - 25863, - 25865, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25867, - 25868, - 0, - 25869, - 25874, - 0, - 25875, - 0, - 25876, - 25877, - 0, - 0, - 0, - 0, - 25878, - 25902, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25903, - 25904, - 25905, - 0, - 0, - 0, - 25908, - 25909, - 0, - 0, - 0, - 0, - 25910, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25912, - 0, - 25913, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25914, - 0, - 0, - 25916, - 0, - 0, - 0, - 0, - 0, - 25917, - 25927, - 0, - 0, - 0, - 0, - 25928, - 0, - 0, - 25930, - 0, - 0, - 0, - 25933, - 0, - 0, - 25938, - 25942, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25945, - 0, - 25950, - 0, - 25956, - 0, - 0, - 25961, - 25962, - 0, - 0, - 25963, - 0, - 25964, - 25965, - 25966, - 0, - 0, - 0, - 0, - 0, - 25967, - 0, - 0, - 0, - 0, - 25968, - 0, - 0, - 0, - 25969, - 25971, - 0, - 0, - 0, - 0, - 0, - 25973, - 25975, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25978, - 0, - 25981, - 0, - 0, - 0, - 25982, - 0, - 0, - 0, - 25984, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 25993, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26002, - 0, - 0, - 0, - 26005, - 0, - 0, - 0, - 26006, - 26007, - 0, - 0, - 26014, - 26015, - 26016, - 0, - 0, - 0, - 0, - 0, - 0, - 26017, - 26018, - 26020, - 0, - 26022, - 26023, - 0, - 0, - 0, - 26024, - 26028, - 0, - 26029, - 26033, - 26034, - 26044, - 0, - 0, - 0, - 0, - 0, - 26046, - 0, - 0, - 26047, - 0, - 0, - 26049, - 0, - 26050, - 0, - 26051, - 0, - 0, - 0, - 0, - 0, - 26053, - 0, - 0, - 0, - 0, - 26054, - 26059, - 0, - 0, - 0, - 0, - 0, - 0, - 26060, - 0, - 26066, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26067, - 0, - 26069, - 0, - 0, - 26071, - 0, - 0, - 0, - 26073, - 0, - 26074, - 26077, - 0, - 0, - 0, - 0, - 26078, - 0, - 0, - 0, - 26079, - 0, - 26090, - 0, - 0, - 26094, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26095, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26096, - 26101, - 0, - 26107, - 26122, - 0, - 26124, - 0, - 0, - 26125, - 0, - 0, - 0, - 0, - 0, - 0, - 26136, - 26141, - 26155, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26164, - 26166, - 0, - 0, - 0, - 26167, - 0, - 26170, - 26171, - 0, - 0, - 26172, - 0, - 0, - 26174, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26175, - 0, - 0, - 0, - 26176, - 26177, - 0, - 26321, - 26322, - 0, - 26323, - 0, - 0, - 26324, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26325, - 0, - 26331, - 0, - 0, - 0, - 0, - 0, - 0, - 26335, - 0, - 0, - 0, - 26350, - 0, - 0, - 0, - 26379, - 0, - 0, - 26382, - 26383, - 26385, - 0, - 0, - 26392, - 26406, - 0, - 0, - 0, - 0, - 26411, - 0, - 0, - 0, - 0, - 0, - 26412, - 0, - 0, - 26420, - 0, - 0, - 26423, - 0, - 26424, - 26426, - 26432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26435, - 0, - 26436, - 0, - 0, - 0, - 0, - 0, - 26441, - 0, - 26444, - 0, - 0, - 0, - 26446, - 0, - 0, - 0, - 0, - 26447, - 0, - 0, - 0, - 0, - 26449, - 0, - 26450, - 26452, - 0, - 26453, - 26454, - 0, - 0, - 0, - 26455, - 0, - 0, - 0, - 26456, - 0, - 0, - 26458, - 0, - 0, - 26460, - 0, - 26463, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26464, - 26470, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26473, - 0, - 0, - 26474, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26475, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26477, - 0, - 26485, - 0, - 0, - 26486, - 0, - 26487, - 0, - 0, - 26488, - 26493, - 26494, - 0, - 0, - 26495, - 0, - 26497, - 26504, - 26506, - 0, - 0, - 0, - 0, - 0, - 26507, - 0, - 0, - 0, - 0, - 0, - 26509, - 0, - 0, - 26510, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26512, - 0, - 26513, - 26515, - 0, - 0, - 0, - 26518, - 0, - 0, - 0, - 26519, - 0, - 26524, - 26526, - 0, - 0, - 0, - 26527, - 0, - 26532, - 0, - 26533, - 26537, - 26558, - 0, - 0, - 0, - 26559, - 0, - 0, - 0, - 26571, - 0, - 0, - 26573, - 0, - 26588, - 0, - 26593, - 0, - 0, - 0, - 0, - 0, - 0, - 26603, - 0, - 26604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26606, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26607, - 26609, - 26611, - 26614, - 0, - 0, - 0, - 26616, - 26620, - 0, - 26621, - 0, - 0, - 0, - 0, - 0, - 26627, - 0, - 26629, - 0, - 0, - 26630, - 0, - 0, - 26632, - 26643, - 0, - 0, - 0, - 26644, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26646, - 26647, - 0, - 0, - 0, - 26650, - 0, - 0, - 26656, - 0, - 0, - 0, - 0, - 26663, - 26670, - 26671, - 0, - 0, - 0, - 26685, - 26686, - 26687, - 0, - 26689, - 0, - 0, - 0, - 0, - 26744, - 0, - 26745, - 0, - 26747, - 26748, - 0, - 26749, - 26750, - 26751, - 0, - 0, - 0, - 0, - 26752, - 26755, - 0, - 0, - 0, - 26756, - 26769, - 0, - 0, - 0, - 26774, - 0, - 0, - 0, - 0, - 0, - 26775, - 0, - 26777, - 26778, - 0, - 26786, - 0, - 0, - 0, - 26787, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26788, - 0, - 0, - 26789, - 0, - 0, - 0, - 0, - 0, - 26791, - 0, - 26792, - 26793, - 0, - 0, - 0, - 26794, - 0, - 26797, - 26798, - 0, - 0, - 0, - 26800, - 0, - 0, - 26803, - 0, - 26804, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26805, - 0, - 0, - 26808, - 0, - 0, - 26809, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26812, - 0, - 26825, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26826, - 0, - 0, - 26827, - 26829, - 26834, - 0, - 0, - 0, - 0, - 26835, - 0, - 0, - 26849, - 0, - 26851, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26852, - 0, - 26853, - 26857, - 0, - 26858, - 0, - 26859, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26876, - 0, - 26878, - 26882, - 26883, - 0, - 0, - 0, - 0, - 26890, - 26894, - 0, - 0, - 0, - 0, - 26895, - 26896, - 0, - 0, - 0, - 0, - 0, - 26900, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26911, - 26913, - 26914, - 26915, - 26916, - 26919, - 0, - 0, - 0, - 26921, - 26922, - 0, - 0, - 26925, - 0, - 0, - 0, - 26928, - 0, - 0, - 26929, - 26930, - 0, - 0, - 0, - 26931, - 0, - 26932, - 0, - 0, - 0, - 0, - 0, - 26933, - 0, - 0, - 0, - 0, - 0, - 0, - 26937, - 0, - 0, - 26943, - 0, - 0, - 26944, - 0, - 0, - 0, - 26946, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26956, - 0, - 26958, - 0, - 0, - 26963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 26965, - 0, - 26969, - 26970, - 26972, - 0, - 0, - 0, - 0, - 0, - 26973, - 0, - 26974, - 0, - 26978, - 0, - 26980, - 0, - 0, - 0, - 0, - 0, - 0, - 26982, - 0, - 26986, - 26987, - 0, - 26990, - 0, - 0, - 0, - 0, - 27003, - 27006, - 0, - 0, - 27007, - 27010, - 27012, - 27013, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27014, - 27015, - 27018, - 0, - 27019, - 0, - 0, - 0, - 0, - 0, - 27025, - 0, - 0, - 0, - 27026, - 0, - 0, - 0, - 0, - 27029, - 27030, - 27031, - 27034, - 0, - 0, - 27036, - 27037, - 0, - 0, - 0, - 27038, - 27042, - 0, - 0, - 0, - 27044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27045, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27046, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27047, - 27049, - 0, - 27050, - 0, - 0, - 0, - 27051, - 27052, - 0, - 27055, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27056, - 27058, - 27059, - 0, - 27061, - 0, - 27064, - 0, - 0, - 0, - 0, - 0, - 27069, - 0, - 0, - 27070, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27072, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27076, - 0, - 0, - 0, - 0, - 0, - 27078, - 0, - 27079, - 0, - 0, - 0, - 27081, - 0, - 0, - 0, - 0, - 0, - 0, - 27082, - 0, - 27083, - 27086, - 0, - 0, - 0, - 0, - 27087, - 0, - 0, - 0, - 0, - 0, - 27088, - 27090, - 0, - 27094, - 0, - 0, - 27095, - 0, - 27099, - 27102, - 0, - 0, - 0, - 27103, - 0, - 0, - 0, - 0, - 27105, - 0, - 0, - 0, - 27106, - 0, - 0, - 0, - 0, - 0, - 0, - 27107, - 0, - 0, - 0, - 0, - 27108, - 27117, - 0, - 0, - 0, - 0, - 27118, - 0, - 0, - 27124, - 0, - 27126, - 0, - 0, - 27130, - 27131, - 0, - 0, - 0, - 0, - 0, - 0, - 27147, - 0, - 0, - 0, - 0, - 27148, - 27149, - 0, - 0, - 0, - 0, - 27150, - 27151, - 0, - 27152, - 0, - 27159, - 0, - 0, - 0, - 27164, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27175, - 0, - 27189, - 0, - 0, - 27191, - 0, - 27193, - 0, - 27195, - 0, - 27198, - 0, - 0, - 0, - 0, - 0, - 27200, - 0, - 0, - 0, - 0, - 27202, - 0, - 0, - 0, - 0, - 27203, - 0, - 0, - 27204, - 0, - 0, - 27206, - 0, - 27207, - 0, - 0, - 0, - 0, - 27209, - 0, - 0, - 0, - 27213, - 0, - 0, - 27216, - 27219, - 27220, - 27222, - 27223, - 0, - 27224, - 0, - 27225, - 27226, - 0, - 0, - 27233, - 0, - 0, - 0, - 0, - 27235, - 0, - 27237, - 0, - 27238, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27239, - 0, - 27242, - 27243, - 0, - 27250, - 0, - 0, - 0, - 27251, - 0, - 27253, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27254, - 27255, - 27258, - 0, - 0, - 0, - 27259, - 0, - 0, - 0, - 0, - 0, - 0, - 27267, - 0, - 27276, - 27278, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27296, - 27297, - 27301, - 0, - 0, - 0, - 0, - 0, - 0, - 27302, - 0, - 0, - 0, - 0, - 0, - 0, - 27312, - 27313, - 0, - 0, - 0, - 0, - 0, - 27318, - 0, - 27320, - 0, - 27329, - 0, - 27330, - 27331, - 0, - 27332, - 0, - 0, - 0, - 0, - 27340, - 0, - 0, - 0, - 27348, - 0, - 0, - 0, - 0, - 0, - 0, - 27350, - 0, - 27351, - 0, - 0, - 0, - 0, - 27355, - 0, - 0, - 27358, - 27359, - 27361, - 0, - 0, - 0, - 27365, - 0, - 27367, - 0, - 27376, - 27378, - 0, - 0, - 27379, - 0, - 0, - 0, - 0, - 0, - 0, - 27396, - 0, - 27397, - 27404, - 0, - 0, - 0, - 0, - 0, - 27408, - 0, - 0, - 0, - 0, - 27453, - 0, - 0, - 0, - 27456, - 0, - 0, - 0, - 27458, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27459, - 0, - 0, - 0, - 27460, - 0, - 0, - 27461, - 0, - 27465, - 27467, - 0, - 0, - 27469, - 0, - 27470, - 0, - 27471, - 0, - 27477, - 27482, - 0, - 0, - 0, - 0, - 0, - 0, - 27484, - 0, - 0, - 0, - 0, - 0, - 0, - 27485, - 0, - 0, - 0, - 0, - 0, - 27493, - 0, - 27494, - 27502, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27511, - 27532, - 0, - 0, - 0, - 27533, - 27545, - 0, - 0, - 0, - 27546, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27547, - 0, - 0, - 27549, - 27550, - 0, - 27551, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27555, - 0, - 0, - 27571, - 0, - 27573, - 27574, - 27575, - 27577, - 0, - 27578, - 0, - 0, - 27579, - 27585, - 0, - 0, - 0, - 0, - 0, - 27586, - 0, - 0, - 27588, - 27589, - 0, - 0, - 0, - 0, - 27596, - 0, - 0, - 27600, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27608, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27610, - 0, - 0, - 0, - 27618, - 0, - 0, - 27620, - 0, - 0, - 0, - 27631, - 0, - 0, - 27632, - 27634, - 0, - 27636, - 27638, - 0, - 0, - 0, - 27643, - 0, - 27644, - 27649, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27651, - 27660, - 0, - 27661, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27662, - 0, - 0, - 27664, - 0, - 27665, - 0, - 0, - 0, - 27669, - 0, - 27671, - 0, - 0, - 0, - 27673, - 27674, - 0, - 0, - 0, - 27682, - 0, - 0, - 0, - 27711, - 0, - 27712, - 27713, - 27719, - 27720, - 0, - 0, - 27728, - 0, - 27729, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27731, - 0, - 0, - 27732, - 0, - 27733, - 0, - 27738, - 0, - 0, - 0, - 27742, - 0, - 0, - 0, - 27743, - 27744, - 0, - 0, - 0, - 0, - 0, - 0, - 27745, - 27746, - 0, - 0, - 0, - 27747, - 27748, - 27751, - 27752, - 0, - 0, - 0, - 27768, - 27770, - 0, - 0, - 0, - 27774, - 27775, - 0, - 27776, - 27777, - 0, - 0, - 27781, - 0, - 27784, - 0, - 27786, - 0, - 0, - 27791, - 0, - 27792, - 27793, - 27804, - 0, - 27812, - 27813, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27814, - 0, - 27825, - 0, - 27827, - 0, - 0, - 0, - 0, - 27828, - 27861, - 27862, - 0, - 0, - 0, - 27864, - 0, - 0, - 0, - 27865, - 27884, - 0, - 27889, - 0, - 0, - 0, - 0, - 0, - 27890, - 0, - 27891, - 0, - 0, - 0, - 27892, - 0, - 0, - 0, - 0, - 0, - 27897, - 27898, - 0, - 0, - 27899, - 0, - 0, - 0, - 27901, - 27905, - 0, - 0, - 27920, - 0, - 0, - 27921, - 0, - 27922, - 0, - 0, - 0, - 27931, - 27934, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27941, - 0, - 27942, - 0, - 27945, - 0, - 27947, - 27954, - 0, - 0, - 0, - 0, - 27960, - 27963, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27964, - 27965, - 0, - 0, - 0, - 27967, - 0, - 27969, - 27975, - 0, - 27976, - 27977, - 0, - 27981, - 0, - 27983, - 28051, - 28052, - 0, - 0, - 0, - 0, - 0, - 28056, - 0, - 0, - 0, - 0, - 0, - 0, - 28058, - 28059, - 0, - 0, - 28061, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28063, - 0, - 0, - 0, - 0, - 0, - 0, - 28066, - 0, - 0, - 0, - 0, - 0, - 0, - 28069, - 28070, - 28072, - 0, - 28073, - 0, - 0, - 28074, - 0, - 0, - 0, - 0, - 28075, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28078, - 0, - 0, - 0, - 0, - 28085, - 0, - 0, - 0, - 0, - 28086, - 0, - 0, - 0, - 0, - 0, - 0, - 28088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28090, - 0, - 28097, - 28114, - 28115, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28116, - 0, - 0, - 0, - 0, - 0, - 28118, - 0, - 28129, - 0, - 28131, - 0, - 0, - 28135, - 0, - 0, - 0, - 28140, - 28141, - 0, - 0, - 0, - 28146, - 0, - 0, - 0, - 0, - 28152, - 0, - 0, - 0, - 0, - 28155, - 28157, - 28161, - 0, - 0, - 0, - 0, - 28166, - 0, - 28167, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28172, - 0, - 0, - 0, - 0, - 0, - 0, - 28173, - 0, - 0, - 28175, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28178, - 28188, - 0, - 28190, - 0, - 0, - 0, - 0, - 0, - 28191, - 0, - 28193, - 28206, - 0, - 0, - 28207, - 28209, - 0, - 28211, - 0, - 28213, - 0, - 0, - 0, - 28215, - 28216, - 28217, - 0, - 28222, - 0, - 28223, - 28225, - 0, - 0, - 0, - 28226, - 0, - 28227, - 28229, - 28232, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28235, - 0, - 28241, - 0, - 0, - 28242, - 0, - 0, - 0, - 0, - 28243, - 0, - 0, - 0, - 28245, - 0, - 0, - 0, - 28248, - 28250, - 0, - 28251, - 28252, - 0, - 0, - 0, - 0, - 0, - 0, - 28253, - 0, - 0, - 28254, - 28255, - 0, - 0, - 28256, - 0, - 0, - 28258, - 0, - 0, - 0, - 0, - 0, - 28259, - 0, - 0, - 28260, - 0, - 0, - 28261, - 0, - 0, - 0, - 0, - 28262, - 28263, - 0, - 0, - 28264, - 0, - 0, - 0, - 28266, - 0, - 28268, - 28269, - 0, - 28270, - 28272, - 28274, - 0, - 28277, - 28278, - 0, - 0, - 0, - 28279, - 0, - 28280, - 28281, - 28283, - 0, - 28292, - 0, - 28294, - 0, - 28297, - 0, - 0, - 0, - 0, - 28299, - 0, - 0, - 0, - 0, - 0, - 28300, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28302, - 28303, - 0, - 0, - 0, - 0, - 28304, - 0, - 0, - 28305, - 0, - 28312, - 0, - 28313, - 28314, - 0, - 0, - 0, - 0, - 0, - 0, - 28315, - 0, - 0, - 0, - 28320, - 28321, - 0, - 0, - 28328, - 0, - 0, - 0, - 28329, - 28338, - 0, - 28339, - 0, - 0, - 28344, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28347, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28348, - 0, - 0, - 0, - 0, - 0, - 28411, - 0, - 28412, - 28413, - 0, - 28416, - 0, - 0, - 0, - 28420, - 0, - 0, - 0, - 0, - 0, - 28421, - 0, - 0, - 0, - 0, - 28423, - 0, - 0, - 0, - 28424, - 0, - 0, - 28428, - 0, - 0, - 0, - 0, - 0, - 28429, - 0, - 0, - 0, - 28431, - 28434, - 0, - 28458, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28464, - 0, - 0, - 0, - 0, - 28465, - 0, - 28467, - 0, - 0, - 0, - 0, - 0, - 0, - 28471, - 0, - 0, - 0, - 0, - 28474, - 0, - 28480, - 0, - 28481, - 0, - 0, - 28485, - 0, - 0, - 0, - 0, - 28486, - 28488, - 0, - 0, - 28489, - 0, - 0, - 0, - 0, - 28492, - 0, - 0, - 0, - 28495, - 0, - 28497, - 0, - 28499, - 0, - 0, - 0, - 0, - 28500, - 0, - 0, - 28502, - 28503, - 0, - 0, - 0, - 28508, - 0, - 0, - 0, - 28510, - 0, - 0, - 28512, - 28513, - 28514, - 28521, - 0, - 28526, - 0, - 28527, - 28528, - 0, - 0, - 0, - 0, - 28529, - 0, - 0, - 28532, - 0, - 0, - 28537, - 28538, - 0, - 0, - 0, - 28539, - 0, - 28548, - 0, - 28553, - 28554, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28560, - 28563, - 0, - 0, - 28564, - 0, - 0, - 0, - 0, - 28565, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28566, - 28568, - 0, - 0, - 0, - 0, - 0, - 0, - 28569, - 0, - 0, - 0, - 28570, - 0, - 28572, - 28573, - 0, - 0, - 0, - 0, - 28575, - 0, - 0, - 0, - 0, - 28576, - 28581, - 28588, - 0, - 0, - 28589, - 0, - 0, - 0, - 28590, - 28595, - 0, - 28598, - 0, - 0, - 28601, - 0, - 0, - 28605, - 0, - 0, - 0, - 0, - 28614, - 28615, - 28619, - 0, - 0, - 0, - 0, - 0, - 0, - 28620, - 0, - 28626, - 0, - 0, - 28628, - 0, - 28631, - 0, - 28632, - 0, - 0, - 0, - 0, - 0, - 0, - 28635, - 0, - 0, - 0, - 28637, - 28638, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28639, - 0, - 28643, - 0, - 0, - 28652, - 0, - 0, - 0, - 28662, - 0, - 28670, - 28671, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28672, - 28673, - 28675, - 28676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28691, - 0, - 0, - 0, - 28695, - 0, - 0, - 0, - 28696, - 0, - 28697, - 28698, - 0, - 28705, - 0, - 28707, - 28708, - 28710, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28711, - 28728, - 0, - 0, - 0, - 28736, - 0, - 0, - 0, - 28737, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28738, - 0, - 28739, - 0, - 28741, - 0, - 0, - 28742, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28745, - 0, - 0, - 0, - 0, - 0, - 0, - 28749, - 28750, - 28752, - 28754, - 28756, - 0, - 28757, - 0, - 0, - 0, - 0, - 28759, - 28760, - 0, - 0, - 0, - 0, - 0, - 0, - 28762, - 0, - 0, - 0, - 28764, - 0, - 0, - 0, - 0, - 0, - 0, - 28766, - 0, - 28767, - 28768, - 0, - 0, - 0, - 0, - 28769, - 28770, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28772, - 0, - 28773, - 0, - 28782, - 0, - 0, - 0, - 0, - 0, - 0, - 28784, - 0, - 28785, - 0, - 28786, - 0, - 0, - 0, - 28787, - 0, - 0, - 0, - 28797, - 0, - 0, - 0, - 0, - 0, - 0, - 28799, - 0, - 0, - 28801, - 0, - 0, - 0, - 0, - 28802, - 0, - 28805, - 0, - 0, - 28806, - 0, - 0, - 28807, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28808, - 0, - 0, - 0, - 0, - 0, - 28810, - 28812, - 0, - 0, - 28816, - 28819, - 0, - 0, - 28821, - 0, - 28826, - 0, - 0, - 0, - 28842, - 28852, - 0, - 0, - 28853, - 0, - 28854, - 28855, - 0, - 0, - 0, - 28857, - 0, - 0, - 0, - 28858, - 0, - 28867, - 28868, - 28869, - 0, - 0, - 0, - 28874, - 28880, - 28882, - 28890, - 28892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28895, - 0, - 0, - 0, - 28898, - 28899, - 0, - 0, - 0, - 28900, - 0, - 0, - 28904, - 0, - 28906, - 0, - 0, - 0, - 0, - 28907, - 0, - 0, - 0, - 0, - 0, - 0, - 28908, - 0, - 0, - 0, - 28910, - 0, - 28914, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28915, - 28916, - 28919, - 0, - 0, - 28920, - 0, - 28921, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28924, - 0, - 0, - 0, - 0, - 28926, - 28929, - 0, - 0, - 0, - 28930, - 0, - 28936, - 0, - 28939, - 0, - 0, - 0, - 0, - 28942, - 0, - 0, - 0, - 0, - 0, - 0, - 28956, - 0, - 0, - 0, - 28966, - 0, - 0, - 0, - 0, - 28967, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28968, - 0, - 28971, - 0, - 28975, - 28976, - 0, - 28982, - 28983, - 0, - 0, - 28984, - 28989, - 28996, - 28997, - 28998, - 0, - 0, - 0, - 0, - 0, - 0, - 28999, - 0, - 0, - 0, - 0, - 0, - 29000, - 0, - 29001, - 0, - 0, - 0, - 29009, - 0, - 0, - 29011, - 0, - 0, - 29021, - 0, - 0, - 0, - 0, - 29024, - 0, - 29025, - 0, - 0, - 0, - 0, - 0, - 29026, - 0, - 0, - 0, - 29036, - 0, - 0, - 0, - 29037, - 0, - 0, - 0, - 0, - 29038, - 0, - 29045, - 0, - 29047, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29051, - 0, - 0, - 0, - 29054, - 29056, - 29062, - 0, - 29070, - 29082, - 0, - 0, - 0, - 29083, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29084, - 0, - 0, - 0, - 0, - 29085, - 29088, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29090, - 29097, - 0, - 0, - 0, - 29103, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29105, - 0, - 0, - 0, - 0, - 0, - 29107, - 0, - 29109, - 0, - 0, - 0, - 29115, - 0, - 0, - 29120, - 0, - 0, - 29138, - 29140, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29152, - 0, - 29160, - 29174, - 0, - 29176, - 0, - 0, - 29180, - 0, - 29181, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29228, - 0, - 0, - 29229, - 0, - 0, - 29230, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29234, - 0, - 0, - 0, - 29241, - 0, - 29245, - 0, - 29248, - 0, - 29250, - 29256, - 29280, - 0, - 29282, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29285, - 0, - 0, - 29286, - 29291, - 29292, - 0, - 0, - 0, - 0, - 29294, - 0, - 29295, - 0, - 0, - 0, - 0, - 0, - 29296, - 29297, - 29298, - 29300, - 0, - 29302, - 0, - 0, - 29304, - 29307, - 0, - 29312, - 0, - 0, - 0, - 29322, - 0, - 0, - 29323, - 0, - 0, - 29324, - 29326, - 29328, - 0, - 29335, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29338, - 29339, - 0, - 0, - 0, - 0, - 0, - 29341, - 29343, - 0, - 0, - 0, - 0, - 29344, - 0, - 0, - 0, - 0, - 0, - 29345, - 0, - 0, - 0, - 0, - 29346, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29347, - 29348, - 29349, - 0, - 0, - 29354, - 0, - 0, - 29355, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29357, - 0, - 0, - 0, - 0, - 29364, - 0, - 29365, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29366, - 0, - 0, - 29368, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29378, - 0, - 29381, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29386, - 0, - 0, - 0, - 0, - 0, - 0, - 29389, - 0, - 0, - 0, - 29390, - 0, - 0, - 29391, - 29397, - 0, - 29398, - 29412, - 29414, - 29418, - 29419, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29420, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29423, - 0, - 0, - 0, - 29435, - 0, - 0, - 0, - 29437, - 0, - 0, - 29439, - 0, - 29441, - 0, - 0, - 0, - 0, - 29443, - 0, - 29446, - 29450, - 29452, - 0, - 0, - 0, - 0, - 0, - 29456, - 0, - 0, - 0, - 0, - 0, - 29461, - 0, - 0, - 0, - 29464, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29468, - 0, - 29473, - 0, - 0, - 0, - 29486, - 0, - 0, - 0, - 29490, - 0, - 0, - 0, - 29491, - 29492, - 0, - 0, - 29497, - 0, - 0, - 0, - 29498, - 0, - 29499, - 0, - 29502, - 29505, - 0, - 29509, - 0, - 0, - 0, - 29510, - 0, - 0, - 0, - 29512, - 0, - 0, - 0, - 29516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29518, - 0, - 29519, - 0, - 0, - 0, - 0, - 0, - 29520, - 29521, - 29529, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29530, - 0, - 0, - 29531, - 29538, - 0, - 29540, - 0, - 0, - 0, - 29542, - 0, - 29543, - 29544, - 29547, - 0, - 0, - 29548, - 0, - 0, - 0, - 29549, - 0, - 0, - 0, - 29550, - 0, - 0, - 29552, - 0, - 0, - 0, - 0, - 29558, - 29561, - 0, - 29562, - 29564, - 0, - 0, - 29565, - 0, - 0, - 29566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29578, - 29584, - 29586, - 29591, - 0, - 0, - 0, - 0, - 29593, - 29594, - 0, - 0, - 29597, - 0, - 0, - 29613, - 0, - 29614, - 0, - 29615, - 0, - 0, - 0, - 0, - 29616, - 29617, - 0, - 0, - 29625, - 0, - 0, - 0, - 29632, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29633, - 0, - 0, - 0, - 0, - 0, - 29634, - 29635, - 29637, - 0, - 29638, - 0, - 29641, - 29643, - 0, - 0, - 0, - 0, - 0, - 0, - 29644, - 0, - 29645, - 0, - 29649, - 0, - 0, - 0, - 29650, - 0, - 29653, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29656, - 29659, - 0, - 0, - 29660, - 0, - 0, - 0, - 29661, - 0, - 0, - 0, - 0, - 0, - 29664, - 0, - 0, - 0, - 29671, - 29673, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29675, - 0, - 29677, - 29679, - 0, - 0, - 29684, - 0, - 0, - 0, - 0, - 0, - 29685, - 0, - 0, - 0, - 29687, - 0, - 0, - 0, - 29688, - 0, - 29689, - 29690, - 29700, - 0, - 29701, - 0, - 0, - 0, - 29702, - 0, - 29706, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29720, - 0, - 29721, - 0, - 29727, - 0, - 29733, - 29734, - 0, - 29750, - 29761, - 0, - 29763, - 0, - 0, - 0, - 0, - 0, - 29764, - 0, - 0, - 29765, - 0, - 0, - 0, - 29771, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29772, - 0, - 0, - 0, - 29773, - 29774, - 29775, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29822, - 0, - 0, - 0, - 29824, - 0, - 29825, - 0, - 0, - 0, - 0, - 0, - 29827, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29829, - 0, - 29832, - 29834, - 0, - 0, - 29835, - 0, - 0, - 29837, - 29838, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29843, - 0, - 0, - 0, - 0, - 29844, - 29845, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29849, - 0, - 0, - 29869, - 29872, - 29890, - 29905, - 0, - 0, - 0, - 0, - 0, - 29907, - 29921, - 0, - 29922, - 0, - 0, - 29923, - 29926, - 29944, - 29946, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29947, - 29948, - 0, - 0, - 0, - 29951, - 0, - 0, - 0, - 0, - 0, - 29953, - 0, - 0, - 29956, - 0, - 29957, - 0, - 0, - 29962, - 0, - 0, - 0, - 0, - 29971, - 0, - 0, - 0, - 29972, - 0, - 0, - 0, - 0, - 0, - 29978, - 0, - 29979, - 29992, - 30007, - 30008, - 30010, - 0, - 0, - 0, - 30013, - 0, - 0, - 0, - 0, - 30014, - 30016, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30017, - 0, - 0, - 0, - 0, - 0, - 30023, - 30031, - 0, - 0, - 30033, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30034, - 0, - 30038, - 0, - 30039, - 0, - 30040, - 0, - 0, - 0, - 0, - 0, - 0, - 30067, - 30068, - 0, - 0, - 0, - 30069, - 0, - 30072, - 0, - 0, - 0, - 30073, - 0, - 0, - 0, - 0, - 30075, - 0, - 0, - 0, - 0, - 0, - 0, - 30079, - 0, - 0, - 30080, - 0, - 0, - 0, - 0, - 0, - 30082, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30084, - 30090, - 0, - 0, - 30091, - 0, - 0, - 0, - 0, - 30098, - 30118, - 0, - 30119, - 0, - 30121, - 30130, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30131, - 30132, - 30133, - 0, - 0, - 0, - 0, - 0, - 0, - 30135, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30136, - 0, - 0, - 30137, - 30138, - 0, - 0, - 0, - 30139, - 30146, - 0, - 0, - 0, - 0, - 0, - 30147, - 0, - 0, - 30148, - 30151, - 0, - 0, - 0, - 30168, - 0, - 30172, - 30173, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30180, - 30181, - 0, - 30192, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30194, - 30196, - 0, - 0, - 30199, - 0, - 0, - 30202, - 0, - 0, - 0, - 0, - 30203, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30213, - 0, - 0, - 0, - 30216, - 0, - 0, - 30217, - 0, - 0, - 0, - 30218, - 0, - 0, - 0, - 0, - 30219, - 0, - 30220, - 0, - 30222, - 30227, - 0, - 0, - 0, - 0, - 0, - 30231, - 0, - 0, - 30233, - 30235, - 0, - 0, - 0, - 0, - 30238, - 0, - 30240, - 30243, - 30245, - 0, - 30250, - 30252, - 0, - 0, - 0, - 30269, - 0, - 0, - 30271, - 30272, - 0, - 0, - 0, - 30278, - 30280, - 0, - 0, - 30282, - 0, - 30284, - 0, - 30294, - 0, - 0, - 0, - 0, - 30295, - 30296, - 0, - 0, - 0, - 0, - 0, - 30298, - 30299, - 30302, - 30304, - 30306, - 0, - 0, - 0, - 0, - 0, - 0, - 30316, - 30317, - 0, - 0, - 0, - 30318, - 0, - 0, - 0, - 30319, - 0, - 30320, - 30322, - 30326, - 0, - 0, - 0, - 0, - 0, - 30327, - 0, - 30332, - 30348, - 30349, - 0, - 0, - 30356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30357, - 0, - 30358, - 0, - 30359, - 30360, - 0, - 0, - 30365, - 30366, - 30378, - 0, - 0, - 0, - 0, - 30379, - 0, - 0, - 30381, - 0, - 30385, - 0, - 30388, - 30397, - 0, - 0, - 0, - 30401, - 0, - 0, - 0, - 0, - 30403, - 0, - 0, - 0, - 0, - 0, - 30404, - 0, - 0, - 30405, - 0, - 30406, - 30408, - 0, - 30409, - 0, - 30410, - 0, - 0, - 0, - 30417, - 0, - 0, - 30418, - 30419, - 0, - 30420, - 0, - 30424, - 0, - 0, - 0, - 30427, - 30430, - 30432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30436, - 0, - 30437, - 30438, - 0, - 30441, - 30442, - 0, - 0, - 0, - 30445, - 0, - 0, - 0, - 0, - 30452, - 30456, - 30457, - 0, - 0, - 0, - 30458, - 0, - 30464, - 0, - 0, - 0, - 0, - 0, - 0, - 30467, - 0, - 30469, - 0, - 0, - 0, - 0, - 0, - 30477, - 0, - 0, - 30484, - 0, - 0, - 0, - 0, - 0, - 30485, - 0, - 0, - 0, - 0, - 0, - 30486, - 30487, - 30497, - 30498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30505, - 0, - 30508, - 0, - 0, - 0, - 30509, - 30510, - 0, - 30514, - 30516, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30523, - 0, - 30524, - 0, - 30525, - 0, - 0, - 0, - 0, - 30537, - 0, - 0, - 30538, - 0, - 0, - 0, - 0, - 0, - 30553, - 0, - 0, - 30555, - 30556, - 30558, - 30559, - 30560, - 0, - 0, - 30561, - 0, - 30562, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30563, - 30570, - 30571, - 0, - 30586, - 30587, - 0, - 0, - 30590, - 0, - 0, - 30594, - 0, - 0, - 0, - 0, - 30611, - 30612, - 30623, - 30634, - 0, - 0, - 30636, - 30640, - 30655, - 30656, - 0, - 30657, - 0, - 0, - 30658, - 30669, - 0, - 30670, - 0, - 30676, - 30678, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30679, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30695, - 0, - 0, - 30698, - 0, - 0, - 0, - 0, - 30700, - 0, - 0, - 0, - 0, - 30701, - 0, - 30702, - 30703, - 0, - 0, - 0, - 0, - 30707, - 0, - 0, - 0, - 30709, - 0, - 0, - 30710, - 30719, - 30729, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30731, - 0, - 0, - 30733, - 0, - 0, - 0, - 30734, - 0, - 0, - 0, - 0, - 0, - 30736, - 30737, - 0, - 0, - 0, - 30740, - 0, - 0, - 0, - 30743, - 0, - 30746, - 0, - 30747, - 30748, - 0, - 0, - 30751, - 30752, - 30753, - 0, - 0, - 0, - 30754, - 0, - 0, - 30760, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30763, - 0, - 30764, - 0, - 0, - 30766, - 0, - 30769, - 30770, - 30771, - 30774, - 30777, - 0, - 0, - 30779, - 30780, - 30781, - 0, - 0, - 0, - 0, - 30790, - 0, - 0, - 0, - 30792, - 0, - 0, - 0, - 0, - 30810, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30812, - 30819, - 0, - 0, - 30823, - 30824, - 0, - 30825, - 0, - 30827, - 0, - 0, - 0, - 0, - 0, - 0, - 30828, - 0, - 0, - 30830, - 0, - 0, - 0, - 30834, - 0, - 30835, - 0, - 30837, - 30838, - 0, - 30845, - 0, - 0, - 0, - 0, - 0, - 30846, - 30847, - 0, - 0, - 30849, - 0, - 30851, - 0, - 0, - 0, - 0, - 0, - 30852, - 30858, - 0, - 0, - 30859, - 0, - 30865, - 0, - 0, - 30866, - 0, - 0, - 30868, - 0, - 0, - 30869, - 0, - 0, - 0, - 30881, - 30883, - 0, - 0, - 0, - 0, - 0, - 30889, - 0, - 30891, - 0, - 0, - 0, - 0, - 30894, - 0, - 30895, - 0, - 30897, - 0, - 30898, - 0, - 0, - 0, - 30904, - 30906, - 0, - 30909, - 0, - 0, - 0, - 0, - 0, - 0, - 30910, - 0, - 0, - 0, - 30915, - 30933, - 30942, - 0, - 0, - 0, - 0, - 30943, - 0, - 0, - 30945, - 0, - 0, - 0, - 0, - 0, - 0, - 30946, - 0, - 0, - 30947, - 0, - 0, - 30955, - 30956, - 0, - 0, - 30960, - 0, - 0, - 30961, - 30962, - 30966, - 0, - 0, - 30969, - 30974, - 0, - 0, - 0, - 30976, - 0, - 0, - 30977, - 0, - 30978, - 30982, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30994, - 30995, - 30998, - 0, - 31000, - 0, - 0, - 31001, - 0, - 0, - 31003, - 31005, - 0, - 0, - 31006, - 31011, - 0, - 0, - 31014, - 0, - 31016, - 0, - 0, - 0, - 0, - 31018, - 0, - 0, - 31020, - 31023, - 31024, - 31025, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31027, - 31028, - 31029, - 0, - 0, - 0, - 0, - 0, - 0, - 31032, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31036, - 31037, - 31038, - 0, - 0, - 0, - 31041, - 31043, - 31045, - 0, - 31047, - 0, - 0, - 0, - 31048, - 0, - 31049, - 0, - 0, - 0, - 31053, - 31054, - 31055, - 0, - 0, - 31063, - 0, - 0, - 0, - 0, - 0, - 31066, - 0, - 31068, - 31071, - 0, - 0, - 0, - 31072, - 31073, - 0, - 0, - 0, - 0, - 31075, - 0, - 0, - 31076, - 0, - 0, - 0, - 31077, - 31079, - 0, - 31080, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31087, - 0, - 31142, - 0, - 31144, - 0, - 0, - 31145, - 31146, - 31147, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31149, - 0, - 31151, - 31152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31162, - 31171, - 31174, - 31175, - 0, - 0, - 0, - 31176, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31179, - 0, - 0, - 0, - 31186, - 0, - 0, - 0, - 31192, - 31195, - 0, - 0, - 31196, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31198, - 0, - 0, - 0, - 0, - 0, - 31199, - 0, - 0, - 0, - 31205, - 0, - 0, - 0, - 0, - 31211, - 31215, - 0, - 0, - 0, - 0, - 31231, - 0, - 31232, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31233, - 31236, - 31253, - 0, - 31254, - 0, - 0, - 0, - 0, - 0, - 0, - 31255, - 0, - 0, - 31257, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31258, - 31259, - 0, - 0, - 31260, - 0, - 31261, - 0, - 0, - 0, - 0, - 0, - 31262, - 31263, - 0, - 0, - 31264, - 0, - 31266, - 0, - 31267, - 0, - 0, - 0, - 0, - 0, - 31281, - 0, - 31282, - 0, - 31284, - 0, - 0, - 31285, - 31287, - 31288, - 0, - 0, - 31290, - 0, - 0, - 0, - 31292, - 31295, - 0, - 31299, - 0, - 31300, - 0, - 0, - 0, - 0, - 0, - 31302, - 0, - 0, - 0, - 0, - 31303, - 0, - 0, - 0, - 0, - 0, - 0, - 31304, - 0, - 0, - 0, - 0, - 0, - 31305, - 31308, - 31309, - 31315, - 0, - 31317, - 0, - 0, - 0, - 0, - 0, - 31323, - 0, - 31324, - 0, - 0, - 0, - 0, - 0, - 31325, - 31327, - 0, - 0, - 31331, - 0, - 0, - 0, - 0, - 0, - 31333, - 0, - 0, - 0, - 0, - 0, - 31336, - 0, - 0, - 31337, - 0, - 0, - 0, - 0, - 0, - 0, - 31338, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31339, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31342, - 0, - 0, - 0, - 0, - 31345, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31347, - 0, - 0, - 0, - 0, - 0, - 0, - 31348, - 0, - 0, - 31350, - 31351, - 0, - 31352, - 0, - 0, - 31354, - 0, - 0, - 0, - 0, - 31355, - 0, - 0, - 31356, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31363, - 0, - 31372, - 0, - 0, - 31373, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31376, - 0, - 31388, - 0, - 31389, - 0, - 31392, - 0, - 31401, - 0, - 31405, - 31407, - 31408, - 0, - 31409, - 0, - 0, - 0, - 0, - 0, - 0, - 31413, - 31415, - 0, - 0, - 0, - 31416, - 31418, - 0, - 0, - 0, - 0, - 0, - 0, - 31422, - 31423, - 0, - 0, - 31424, - 0, - 31425, - 31432, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31433, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31434, - 0, - 0, - 0, - 0, - 0, - 0, - 31435, - 0, - 0, - 0, - 0, - 31438, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31442, - 0, - 31444, - 0, - 31448, - 0, - 0, - 31451, - 0, - 0, - 0, - 0, - 31452, - 0, - 31461, - 31465, - 0, - 0, - 31466, - 0, - 0, - 31467, - 0, - 0, - 31468, - 0, - 0, - 0, - 31469, - 31473, - 0, - 31476, - 0, - 0, - 0, - 0, - 31489, - 31490, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31492, - 31493, - 31494, - 0, - 0, - 0, - 0, - 31501, - 31504, - 31505, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31509, - 0, - 0, - 0, - 0, - 31510, - 0, - 0, - 31511, - 0, - 0, - 31513, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31514, - 0, - 31522, - 31536, - 31539, - 31540, - 0, - 31541, - 0, - 0, - 0, - 0, - 0, - 0, - 31546, - 31553, - 31559, - 0, - 0, - 0, - 31560, - 31561, - 31562, - 0, - 0, - 31564, - 31567, - 0, - 31569, - 0, - 0, - 0, - 31570, - 0, - 0, - 0, - 0, - 31571, - 0, - 0, - 0, - 0, - 0, - 0, - 31572, - 31574, - 31580, - 31581, - 0, - 0, - 31582, - 31584, - 31585, - 31586, - 31595, - 0, - 31596, - 0, - 0, - 0, - 0, - 31597, - 0, - 31599, - 0, - 31600, - 31601, - 0, - 0, - 31603, - 31604, - 0, - 0, - 31608, - 31610, - 0, - 0, - 0, - 31611, - 0, - 31615, - 0, - 0, - 0, - 0, - 31616, - 0, - 0, - 0, - 0, - 0, - 0, - 31617, - 0, - 0, - 0, - 0, - 0, - 31618, - 0, - 0, - 0, - 0, - 0, - 0, - 31621, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31622, - 31625, - 0, - 0, - 0, - 0, - 31627, - 0, - 31641, - 0, - 0, - 31642, - 0, - 0, - 31643, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31644, - 0, - 31646, - 0, - 0, - 0, - 0, - 31648, - 0, - 0, - 0, - 31652, - 0, - 0, - 0, - 31657, - 0, - 0, - 31676, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 31689, - 31691, - 31692, - 0, - 31694, - 0, - 0, - 0, - 31696, - 0, - 31702, - 0, - 31703, - 0, -} - -var kStaticDictionaryWords = [31705]dictWord{ - dictWord{0, 0, 0}, - dictWord{8, 0, 1002}, - dictWord{136, 0, 1015}, - dictWord{4, 0, 683}, - dictWord{4, 10, 325}, - dictWord{138, 10, 125}, - dictWord{7, 11, 572}, - dictWord{ - 9, - 11, - 592, - }, - dictWord{11, 11, 680}, - dictWord{11, 11, 842}, - dictWord{11, 11, 924}, - dictWord{12, 11, 356}, - dictWord{12, 11, 550}, - dictWord{13, 11, 317}, - dictWord{13, 11, 370}, - dictWord{13, 11, 469}, - dictWord{13, 11, 471}, - dictWord{14, 11, 397}, - dictWord{18, 11, 69}, - dictWord{146, 11, 145}, - dictWord{ - 134, - 0, - 1265, - }, - dictWord{136, 11, 534}, - dictWord{134, 0, 1431}, - dictWord{11, 0, 138}, - dictWord{140, 0, 40}, - dictWord{4, 0, 155}, - dictWord{7, 0, 1689}, - dictWord{ - 4, - 10, - 718, - }, - dictWord{135, 10, 1216}, - dictWord{4, 0, 245}, - dictWord{5, 0, 151}, - dictWord{5, 0, 741}, - dictWord{6, 0, 1147}, - dictWord{7, 0, 498}, - dictWord{7, 0, 870}, - dictWord{7, 0, 1542}, - dictWord{12, 0, 213}, - dictWord{14, 0, 36}, - dictWord{14, 0, 391}, - dictWord{17, 0, 111}, - dictWord{18, 0, 6}, - dictWord{18, 0, 46}, - dictWord{ - 18, - 0, - 151, - }, - dictWord{19, 0, 36}, - dictWord{20, 0, 32}, - dictWord{20, 0, 56}, - dictWord{20, 0, 69}, - dictWord{20, 0, 102}, - dictWord{21, 0, 4}, - dictWord{22, 0, 8}, - dictWord{ - 22, - 0, - 10, - }, - dictWord{22, 0, 14}, - dictWord{150, 0, 31}, - dictWord{4, 0, 624}, - dictWord{135, 0, 1752}, - dictWord{5, 10, 124}, - dictWord{5, 10, 144}, - dictWord{6, 10, 548}, - dictWord{7, 10, 15}, - dictWord{7, 10, 153}, - dictWord{137, 10, 629}, - dictWord{6, 0, 503}, - dictWord{9, 0, 586}, - dictWord{13, 0, 468}, - dictWord{14, 0, 66}, - dictWord{ - 16, - 0, - 58, - }, - dictWord{7, 10, 1531}, - dictWord{8, 10, 416}, - dictWord{9, 10, 275}, - dictWord{10, 10, 100}, - dictWord{11, 10, 658}, - dictWord{11, 10, 979}, - dictWord{ - 12, - 10, - 86, - }, - dictWord{14, 10, 207}, - dictWord{15, 10, 20}, - dictWord{143, 10, 25}, - dictWord{5, 0, 603}, - dictWord{7, 0, 1212}, - dictWord{9, 0, 565}, - dictWord{ - 14, - 0, - 301, - }, - dictWord{5, 10, 915}, - dictWord{6, 10, 1783}, - dictWord{7, 10, 211}, - dictWord{7, 10, 1353}, - dictWord{9, 10, 83}, - dictWord{10, 10, 376}, - dictWord{ - 10, - 10, - 431, - }, - dictWord{11, 10, 543}, - dictWord{12, 10, 664}, - dictWord{13, 10, 280}, - dictWord{13, 10, 428}, - dictWord{14, 10, 128}, - dictWord{17, 10, 52}, - dictWord{ - 145, - 10, - 81, - }, - dictWord{4, 0, 492}, - dictWord{133, 0, 451}, - dictWord{135, 0, 835}, - dictWord{141, 0, 70}, - dictWord{132, 0, 539}, - dictWord{7, 11, 748}, - dictWord{ - 139, - 11, - 700, - }, - dictWord{7, 11, 1517}, - dictWord{11, 11, 597}, - dictWord{14, 11, 76}, - dictWord{14, 11, 335}, - dictWord{148, 11, 33}, - dictWord{6, 0, 113}, - dictWord{135, 0, 436}, - dictWord{4, 10, 338}, - dictWord{133, 10, 400}, - dictWord{136, 0, 718}, - dictWord{133, 11, 127}, - dictWord{133, 11, 418}, - dictWord{ - 6, - 0, - 1505, - }, - dictWord{7, 0, 520}, - dictWord{6, 11, 198}, - dictWord{11, 10, 892}, - dictWord{140, 11, 83}, - dictWord{4, 10, 221}, - dictWord{5, 10, 659}, - dictWord{ - 5, - 10, - 989, - }, - dictWord{7, 10, 697}, - dictWord{7, 10, 1211}, - dictWord{138, 10, 284}, - dictWord{135, 0, 1070}, - dictWord{5, 11, 276}, - dictWord{6, 11, 55}, - dictWord{ - 135, - 11, - 1369, - }, - dictWord{134, 0, 1515}, - dictWord{6, 11, 1752}, - dictWord{136, 11, 726}, - dictWord{138, 10, 507}, - dictWord{15, 0, 78}, - dictWord{4, 10, 188}, - dictWord{135, 10, 805}, - dictWord{5, 10, 884}, - dictWord{139, 10, 991}, - dictWord{133, 11, 764}, - dictWord{134, 10, 1653}, - dictWord{6, 11, 309}, - dictWord{ - 7, - 11, - 331, - }, - dictWord{138, 11, 550}, - dictWord{135, 11, 1861}, - dictWord{132, 11, 348}, - dictWord{135, 11, 986}, - dictWord{135, 11, 1573}, - dictWord{ - 12, - 0, - 610, - }, - dictWord{13, 0, 431}, - dictWord{144, 0, 59}, - dictWord{9, 11, 799}, - dictWord{140, 10, 166}, - dictWord{134, 0, 1530}, - dictWord{132, 0, 750}, - dictWord{132, 0, 307}, - dictWord{133, 0, 964}, - dictWord{6, 11, 194}, - dictWord{7, 11, 133}, - dictWord{10, 11, 493}, - dictWord{10, 11, 570}, - dictWord{139, 11, 664}, - dictWord{5, 11, 24}, - dictWord{5, 11, 569}, - dictWord{6, 11, 3}, - dictWord{6, 11, 119}, - dictWord{6, 11, 143}, - dictWord{6, 11, 440}, - dictWord{7, 11, 295}, - dictWord{ - 7, - 11, - 599, - }, - dictWord{7, 11, 1686}, - dictWord{7, 11, 1854}, - dictWord{8, 11, 424}, - dictWord{9, 11, 43}, - dictWord{9, 11, 584}, - dictWord{9, 11, 760}, - dictWord{ - 10, - 11, - 148, - }, - dictWord{10, 11, 328}, - dictWord{11, 11, 159}, - dictWord{11, 11, 253}, - dictWord{11, 11, 506}, - dictWord{12, 11, 487}, - dictWord{12, 11, 531}, - dictWord{144, 11, 33}, - dictWord{136, 10, 760}, - dictWord{5, 11, 14}, - dictWord{5, 11, 892}, - dictWord{6, 11, 283}, - dictWord{7, 11, 234}, - dictWord{136, 11, 537}, - dictWord{135, 11, 1251}, - dictWord{4, 11, 126}, - dictWord{8, 11, 635}, - dictWord{147, 11, 34}, - dictWord{4, 11, 316}, - dictWord{135, 11, 1561}, - dictWord{ - 6, - 0, - 999, - }, - dictWord{6, 0, 1310}, - dictWord{137, 11, 861}, - dictWord{4, 11, 64}, - dictWord{5, 11, 352}, - dictWord{5, 11, 720}, - dictWord{6, 11, 368}, - dictWord{ - 139, - 11, - 359, - }, - dictWord{4, 0, 75}, - dictWord{5, 0, 180}, - dictWord{6, 0, 500}, - dictWord{7, 0, 58}, - dictWord{7, 0, 710}, - dictWord{10, 0, 645}, - dictWord{136, 10, 770}, - dictWord{133, 0, 649}, - dictWord{6, 0, 276}, - dictWord{7, 0, 282}, - dictWord{7, 0, 879}, - dictWord{7, 0, 924}, - dictWord{8, 0, 459}, - dictWord{9, 0, 599}, - dictWord{9, 0, 754}, - dictWord{11, 0, 574}, - dictWord{12, 0, 128}, - dictWord{12, 0, 494}, - dictWord{13, 0, 52}, - dictWord{13, 0, 301}, - dictWord{15, 0, 30}, - dictWord{143, 0, 132}, - dictWord{132, 0, 200}, - dictWord{4, 10, 89}, - dictWord{5, 10, 489}, - dictWord{6, 10, 315}, - dictWord{7, 10, 553}, - dictWord{7, 10, 1745}, - dictWord{138, 10, 243}, - dictWord{135, 11, 1050}, - dictWord{7, 0, 1621}, - dictWord{6, 10, 1658}, - dictWord{9, 10, 3}, - dictWord{10, 10, 154}, - dictWord{11, 10, 641}, - dictWord{13, 10, 85}, - dictWord{13, 10, 201}, - dictWord{141, 10, 346}, - dictWord{6, 11, 175}, - dictWord{137, 11, 289}, - dictWord{5, 11, 432}, - dictWord{133, 11, 913}, - dictWord{ - 6, - 0, - 225, - }, - dictWord{137, 0, 211}, - dictWord{7, 0, 718}, - dictWord{8, 0, 687}, - dictWord{139, 0, 374}, - dictWord{4, 10, 166}, - dictWord{133, 10, 505}, - dictWord{ - 9, - 0, - 110, - }, - dictWord{134, 10, 1670}, - dictWord{8, 0, 58}, - dictWord{9, 0, 724}, - dictWord{11, 0, 809}, - dictWord{13, 0, 113}, - dictWord{145, 0, 72}, - dictWord{6, 0, 345}, - dictWord{7, 0, 1247}, - dictWord{144, 11, 82}, - dictWord{5, 11, 931}, - dictWord{134, 11, 1698}, - dictWord{8, 0, 767}, - dictWord{8, 0, 803}, - dictWord{9, 0, 301}, - dictWord{137, 0, 903}, - dictWord{139, 0, 203}, - dictWord{134, 0, 1154}, - dictWord{7, 0, 1949}, - dictWord{136, 0, 674}, - dictWord{134, 0, 259}, - dictWord{ - 135, - 0, - 1275, - }, - dictWord{5, 11, 774}, - dictWord{6, 11, 1637}, - dictWord{6, 11, 1686}, - dictWord{134, 11, 1751}, - dictWord{134, 0, 1231}, - dictWord{7, 10, 445}, - dictWord{8, 10, 307}, - dictWord{8, 10, 704}, - dictWord{10, 10, 41}, - dictWord{10, 10, 439}, - dictWord{11, 10, 237}, - dictWord{11, 10, 622}, - dictWord{140, 10, 201}, - dictWord{136, 0, 254}, - dictWord{6, 11, 260}, - dictWord{135, 11, 1484}, - dictWord{139, 0, 277}, - dictWord{135, 10, 1977}, - dictWord{4, 10, 189}, - dictWord{ - 5, - 10, - 713, - }, - dictWord{6, 11, 573}, - dictWord{136, 10, 57}, - dictWord{138, 10, 371}, - dictWord{132, 10, 552}, - dictWord{134, 11, 344}, - dictWord{133, 0, 248}, - dictWord{9, 0, 800}, - dictWord{10, 0, 693}, - dictWord{11, 0, 482}, - dictWord{11, 0, 734}, - dictWord{11, 0, 789}, - dictWord{134, 11, 240}, - dictWord{4, 0, 116}, - dictWord{ - 5, - 0, - 95, - }, - dictWord{5, 0, 445}, - dictWord{7, 0, 1688}, - dictWord{8, 0, 29}, - dictWord{9, 0, 272}, - dictWord{11, 0, 509}, - dictWord{11, 0, 915}, - dictWord{4, 11, 292}, - dictWord{4, 11, 736}, - dictWord{5, 11, 871}, - dictWord{6, 11, 171}, - dictWord{6, 11, 1689}, - dictWord{7, 11, 1324}, - dictWord{7, 11, 1944}, - dictWord{9, 11, 415}, - dictWord{9, 11, 580}, - dictWord{14, 11, 230}, - dictWord{146, 11, 68}, - dictWord{7, 0, 490}, - dictWord{13, 0, 100}, - dictWord{143, 0, 75}, - dictWord{135, 0, 1641}, - dictWord{133, 0, 543}, - dictWord{7, 11, 209}, - dictWord{8, 11, 661}, - dictWord{10, 11, 42}, - dictWord{11, 11, 58}, - dictWord{12, 11, 58}, - dictWord{12, 11, 118}, - dictWord{141, 11, 32}, - dictWord{5, 0, 181}, - dictWord{8, 0, 41}, - dictWord{6, 11, 63}, - dictWord{135, 11, 920}, - dictWord{133, 0, 657}, - dictWord{133, 11, 793}, - dictWord{138, 0, 709}, - dictWord{7, 0, 25}, - dictWord{8, 0, 202}, - dictWord{138, 0, 536}, - dictWord{5, 11, 665}, - dictWord{135, 10, 1788}, - dictWord{145, 10, 49}, - dictWord{9, 0, 423}, - dictWord{140, 0, 89}, - dictWord{5, 11, 67}, - dictWord{6, 11, 62}, - dictWord{6, 11, 374}, - dictWord{135, 11, 1391}, - dictWord{8, 0, 113}, - dictWord{ - 9, - 0, - 877, - }, - dictWord{10, 0, 554}, - dictWord{11, 0, 83}, - dictWord{12, 0, 136}, - dictWord{19, 0, 109}, - dictWord{9, 11, 790}, - dictWord{140, 11, 47}, - dictWord{ - 138, - 10, - 661, - }, - dictWord{4, 0, 963}, - dictWord{10, 0, 927}, - dictWord{14, 0, 442}, - dictWord{135, 10, 1945}, - dictWord{133, 0, 976}, - dictWord{132, 0, 206}, - dictWord{ - 4, - 11, - 391, - }, - dictWord{135, 11, 1169}, - dictWord{134, 0, 2002}, - dictWord{6, 0, 696}, - dictWord{134, 0, 1008}, - dictWord{134, 0, 1170}, - dictWord{132, 11, 271}, - dictWord{7, 0, 13}, - dictWord{8, 0, 226}, - dictWord{10, 0, 537}, - dictWord{11, 0, 570}, - dictWord{11, 0, 605}, - dictWord{11, 0, 799}, - dictWord{11, 0, 804}, - dictWord{ - 12, - 0, - 85, - }, - dictWord{12, 0, 516}, - dictWord{12, 0, 623}, - dictWord{13, 0, 112}, - dictWord{13, 0, 361}, - dictWord{14, 0, 77}, - dictWord{14, 0, 78}, - dictWord{17, 0, 28}, - dictWord{19, 0, 110}, - dictWord{140, 11, 314}, - dictWord{132, 0, 769}, - dictWord{134, 0, 1544}, - dictWord{4, 0, 551}, - dictWord{137, 0, 678}, - dictWord{5, 10, 84}, - dictWord{134, 10, 163}, - dictWord{9, 0, 57}, - dictWord{9, 0, 459}, - dictWord{10, 0, 425}, - dictWord{11, 0, 119}, - dictWord{12, 0, 184}, - dictWord{12, 0, 371}, - dictWord{ - 13, - 0, - 358, - }, - dictWord{145, 0, 51}, - dictWord{5, 0, 188}, - dictWord{5, 0, 814}, - dictWord{8, 0, 10}, - dictWord{9, 0, 421}, - dictWord{9, 0, 729}, - dictWord{10, 0, 609}, - dictWord{11, 0, 689}, - dictWord{4, 11, 253}, - dictWord{5, 10, 410}, - dictWord{5, 11, 544}, - dictWord{7, 11, 300}, - dictWord{137, 11, 340}, - dictWord{134, 0, 624}, - dictWord{138, 11, 321}, - dictWord{135, 0, 1941}, - dictWord{18, 0, 130}, - dictWord{5, 10, 322}, - dictWord{8, 10, 186}, - dictWord{9, 10, 262}, - dictWord{10, 10, 187}, - dictWord{142, 10, 208}, - dictWord{5, 11, 53}, - dictWord{5, 11, 541}, - dictWord{6, 11, 94}, - dictWord{6, 11, 499}, - dictWord{7, 11, 230}, - dictWord{139, 11, 321}, - dictWord{133, 10, 227}, - dictWord{4, 0, 378}, - dictWord{4, 11, 920}, - dictWord{5, 11, 25}, - dictWord{5, 11, 790}, - dictWord{6, 11, 457}, - dictWord{135, 11, 853}, - dictWord{137, 0, 269}, - dictWord{132, 0, 528}, - dictWord{134, 0, 1146}, - dictWord{7, 10, 1395}, - dictWord{8, 10, 486}, - dictWord{9, 10, 236}, - dictWord{9, 10, 878}, - dictWord{10, 10, 218}, - dictWord{11, 10, 95}, - dictWord{19, 10, 17}, - dictWord{147, 10, 31}, - dictWord{7, 10, 2043}, - dictWord{8, 10, 672}, - dictWord{ - 141, - 10, - 448, - }, - dictWord{134, 0, 1105}, - dictWord{134, 0, 1616}, - dictWord{134, 11, 1765}, - dictWord{140, 11, 163}, - dictWord{5, 10, 412}, - dictWord{133, 11, 822}, - dictWord{132, 11, 634}, - dictWord{6, 0, 656}, - dictWord{134, 11, 1730}, - dictWord{134, 0, 1940}, - dictWord{5, 0, 104}, - dictWord{6, 0, 173}, - dictWord{ - 135, - 0, - 1631, - }, - dictWord{136, 10, 562}, - dictWord{6, 11, 36}, - dictWord{7, 11, 658}, - dictWord{8, 11, 454}, - dictWord{147, 11, 86}, - dictWord{5, 0, 457}, - dictWord{ - 134, - 10, - 1771, - }, - dictWord{7, 0, 810}, - dictWord{8, 0, 138}, - dictWord{8, 0, 342}, - dictWord{9, 0, 84}, - dictWord{10, 0, 193}, - dictWord{11, 0, 883}, - dictWord{140, 0, 359}, - dictWord{9, 0, 620}, - dictWord{135, 10, 1190}, - dictWord{137, 10, 132}, - dictWord{7, 11, 975}, - dictWord{137, 11, 789}, - dictWord{6, 0, 95}, - dictWord{6, 0, 1934}, - dictWord{136, 0, 967}, - dictWord{141, 11, 335}, - dictWord{6, 0, 406}, - dictWord{10, 0, 409}, - dictWord{10, 0, 447}, - dictWord{11, 0, 44}, - dictWord{140, 0, 100}, - dictWord{4, 10, 317}, - dictWord{135, 10, 1279}, - dictWord{132, 0, 477}, - dictWord{134, 0, 1268}, - dictWord{6, 0, 1941}, - dictWord{8, 0, 944}, - dictWord{5, 10, 63}, - dictWord{133, 10, 509}, - dictWord{132, 0, 629}, - dictWord{132, 11, 104}, - dictWord{4, 0, 246}, - dictWord{133, 0, 375}, - dictWord{6, 0, 1636}, - dictWord{ - 132, - 10, - 288, - }, - dictWord{135, 11, 1614}, - dictWord{9, 0, 49}, - dictWord{10, 0, 774}, - dictWord{8, 10, 89}, - dictWord{8, 10, 620}, - dictWord{11, 10, 628}, - dictWord{ - 12, - 10, - 322, - }, - dictWord{143, 10, 124}, - dictWord{4, 0, 282}, - dictWord{7, 0, 1034}, - dictWord{11, 0, 398}, - dictWord{11, 0, 634}, - dictWord{12, 0, 1}, - dictWord{12, 0, 79}, - dictWord{12, 0, 544}, - dictWord{14, 0, 237}, - dictWord{17, 0, 10}, - dictWord{146, 0, 20}, - dictWord{132, 0, 824}, - dictWord{7, 11, 45}, - dictWord{9, 11, 542}, - dictWord{ - 9, - 11, - 566, - }, - dictWord{138, 11, 728}, - dictWord{5, 0, 118}, - dictWord{5, 0, 499}, - dictWord{6, 0, 476}, - dictWord{6, 0, 665}, - dictWord{6, 0, 1176}, - dictWord{ - 6, - 0, - 1196, - }, - dictWord{7, 0, 600}, - dictWord{7, 0, 888}, - dictWord{135, 0, 1096}, - dictWord{7, 0, 296}, - dictWord{7, 0, 596}, - dictWord{8, 0, 560}, - dictWord{8, 0, 586}, - dictWord{9, 0, 612}, - dictWord{11, 0, 304}, - dictWord{12, 0, 46}, - dictWord{13, 0, 89}, - dictWord{14, 0, 112}, - dictWord{145, 0, 122}, - dictWord{5, 0, 894}, - dictWord{ - 6, - 0, - 1772, - }, - dictWord{9, 0, 1009}, - dictWord{138, 10, 120}, - dictWord{5, 11, 533}, - dictWord{7, 11, 755}, - dictWord{138, 11, 780}, - dictWord{151, 10, 1}, - dictWord{ - 6, - 0, - 1474, - }, - dictWord{7, 11, 87}, - dictWord{142, 11, 288}, - dictWord{139, 0, 366}, - dictWord{137, 10, 461}, - dictWord{7, 11, 988}, - dictWord{7, 11, 1939}, - dictWord{ - 9, - 11, - 64, - }, - dictWord{9, 11, 502}, - dictWord{12, 11, 7}, - dictWord{12, 11, 34}, - dictWord{13, 11, 12}, - dictWord{13, 11, 234}, - dictWord{147, 11, 77}, - dictWord{ - 7, - 0, - 1599, - }, - dictWord{7, 0, 1723}, - dictWord{8, 0, 79}, - dictWord{8, 0, 106}, - dictWord{8, 0, 190}, - dictWord{8, 0, 302}, - dictWord{8, 0, 383}, - dictWord{8, 0, 713}, - dictWord{ - 9, - 0, - 119, - }, - dictWord{9, 0, 233}, - dictWord{9, 0, 419}, - dictWord{9, 0, 471}, - dictWord{10, 0, 181}, - dictWord{10, 0, 406}, - dictWord{11, 0, 57}, - dictWord{11, 0, 85}, - dictWord{11, 0, 120}, - dictWord{11, 0, 177}, - dictWord{11, 0, 296}, - dictWord{11, 0, 382}, - dictWord{11, 0, 454}, - dictWord{11, 0, 758}, - dictWord{11, 0, 999}, - dictWord{ - 12, - 0, - 27, - }, - dictWord{12, 0, 98}, - dictWord{12, 0, 131}, - dictWord{12, 0, 245}, - dictWord{12, 0, 312}, - dictWord{12, 0, 446}, - dictWord{12, 0, 454}, - dictWord{13, 0, 25}, - dictWord{13, 0, 98}, - dictWord{13, 0, 426}, - dictWord{13, 0, 508}, - dictWord{14, 0, 70}, - dictWord{14, 0, 163}, - dictWord{14, 0, 272}, - dictWord{14, 0, 277}, - dictWord{ - 14, - 0, - 370, - }, - dictWord{15, 0, 95}, - dictWord{15, 0, 138}, - dictWord{15, 0, 167}, - dictWord{17, 0, 38}, - dictWord{148, 0, 96}, - dictWord{135, 10, 1346}, - dictWord{ - 10, - 0, - 200, - }, - dictWord{19, 0, 2}, - dictWord{151, 0, 22}, - dictWord{135, 11, 141}, - dictWord{134, 10, 85}, - dictWord{134, 0, 1759}, - dictWord{138, 0, 372}, - dictWord{ - 145, - 0, - 16, - }, - dictWord{8, 0, 943}, - dictWord{132, 11, 619}, - dictWord{139, 11, 88}, - dictWord{5, 11, 246}, - dictWord{8, 11, 189}, - dictWord{9, 11, 355}, - dictWord{ - 9, - 11, - 512, - }, - dictWord{10, 11, 124}, - dictWord{10, 11, 453}, - dictWord{11, 11, 143}, - dictWord{11, 11, 416}, - dictWord{11, 11, 859}, - dictWord{141, 11, 341}, - dictWord{ - 5, - 0, - 258, - }, - dictWord{134, 0, 719}, - dictWord{6, 0, 1798}, - dictWord{6, 0, 1839}, - dictWord{8, 0, 900}, - dictWord{10, 0, 874}, - dictWord{10, 0, 886}, - dictWord{ - 12, - 0, - 698, - }, - dictWord{12, 0, 732}, - dictWord{12, 0, 770}, - dictWord{16, 0, 106}, - dictWord{18, 0, 163}, - dictWord{18, 0, 170}, - dictWord{18, 0, 171}, - dictWord{152, 0, 20}, - dictWord{9, 0, 707}, - dictWord{11, 0, 326}, - dictWord{11, 0, 339}, - dictWord{12, 0, 423}, - dictWord{12, 0, 502}, - dictWord{20, 0, 62}, - dictWord{9, 11, 707}, - dictWord{ - 11, - 11, - 326, - }, - dictWord{11, 11, 339}, - dictWord{12, 11, 423}, - dictWord{12, 11, 502}, - dictWord{148, 11, 62}, - dictWord{5, 0, 30}, - dictWord{7, 0, 495}, - dictWord{ - 8, - 0, - 134, - }, - dictWord{9, 0, 788}, - dictWord{140, 0, 438}, - dictWord{133, 11, 678}, - dictWord{5, 10, 279}, - dictWord{6, 10, 235}, - dictWord{7, 10, 468}, - dictWord{ - 8, - 10, - 446, - }, - dictWord{9, 10, 637}, - dictWord{10, 10, 717}, - dictWord{11, 10, 738}, - dictWord{140, 10, 514}, - dictWord{5, 11, 35}, - dictWord{6, 11, 287}, - dictWord{ - 7, - 11, - 862, - }, - dictWord{7, 11, 1886}, - dictWord{138, 11, 179}, - dictWord{7, 0, 1948}, - dictWord{7, 0, 2004}, - dictWord{132, 11, 517}, - dictWord{5, 10, 17}, - dictWord{ - 6, - 10, - 371, - }, - dictWord{137, 10, 528}, - dictWord{4, 0, 115}, - dictWord{5, 0, 669}, - dictWord{6, 0, 407}, - dictWord{8, 0, 311}, - dictWord{11, 0, 10}, - dictWord{141, 0, 5}, - dictWord{137, 0, 381}, - dictWord{5, 0, 50}, - dictWord{6, 0, 439}, - dictWord{7, 0, 780}, - dictWord{135, 0, 1040}, - dictWord{136, 11, 667}, - dictWord{11, 11, 403}, - dictWord{146, 11, 83}, - dictWord{5, 0, 1}, - dictWord{6, 0, 81}, - dictWord{138, 0, 520}, - dictWord{134, 0, 738}, - dictWord{5, 0, 482}, - dictWord{8, 0, 98}, - dictWord{9, 0, 172}, - dictWord{10, 0, 360}, - dictWord{10, 0, 700}, - dictWord{10, 0, 822}, - dictWord{11, 0, 302}, - dictWord{11, 0, 778}, - dictWord{12, 0, 50}, - dictWord{12, 0, 127}, - dictWord{ - 12, - 0, - 396, - }, - dictWord{13, 0, 62}, - dictWord{13, 0, 328}, - dictWord{14, 0, 122}, - dictWord{147, 0, 72}, - dictWord{9, 11, 157}, - dictWord{10, 11, 131}, - dictWord{ - 140, - 11, - 72, - }, - dictWord{135, 11, 714}, - dictWord{135, 11, 539}, - dictWord{5, 0, 2}, - dictWord{6, 0, 512}, - dictWord{7, 0, 797}, - dictWord{7, 0, 1494}, - dictWord{8, 0, 253}, - dictWord{8, 0, 589}, - dictWord{9, 0, 77}, - dictWord{10, 0, 1}, - dictWord{10, 0, 129}, - dictWord{10, 0, 225}, - dictWord{11, 0, 118}, - dictWord{11, 0, 226}, - dictWord{ - 11, - 0, - 251, - }, - dictWord{11, 0, 430}, - dictWord{11, 0, 701}, - dictWord{11, 0, 974}, - dictWord{11, 0, 982}, - dictWord{12, 0, 64}, - dictWord{12, 0, 260}, - dictWord{12, 0, 488}, - dictWord{140, 0, 690}, - dictWord{5, 11, 394}, - dictWord{7, 11, 367}, - dictWord{7, 11, 487}, - dictWord{7, 11, 857}, - dictWord{7, 11, 1713}, - dictWord{8, 11, 246}, - dictWord{9, 11, 537}, - dictWord{10, 11, 165}, - dictWord{12, 11, 219}, - dictWord{140, 11, 561}, - dictWord{136, 0, 557}, - dictWord{5, 10, 779}, - dictWord{5, 10, 807}, - dictWord{6, 10, 1655}, - dictWord{134, 10, 1676}, - dictWord{4, 10, 196}, - dictWord{5, 10, 558}, - dictWord{133, 10, 949}, - dictWord{11, 11, 827}, - dictWord{ - 12, - 11, - 56, - }, - dictWord{14, 11, 34}, - dictWord{143, 11, 148}, - dictWord{137, 0, 347}, - dictWord{133, 0, 572}, - dictWord{134, 0, 832}, - dictWord{4, 0, 12}, - dictWord{ - 7, - 0, - 504, - }, - dictWord{7, 0, 522}, - dictWord{7, 0, 809}, - dictWord{8, 0, 797}, - dictWord{141, 0, 88}, - dictWord{4, 10, 752}, - dictWord{133, 11, 449}, - dictWord{7, 11, 86}, - dictWord{8, 11, 103}, - dictWord{145, 11, 69}, - dictWord{7, 11, 2028}, - dictWord{138, 11, 641}, - dictWord{5, 0, 528}, - dictWord{6, 11, 1}, - dictWord{142, 11, 2}, - dictWord{134, 0, 861}, - dictWord{10, 0, 294}, - dictWord{4, 10, 227}, - dictWord{5, 10, 159}, - dictWord{5, 10, 409}, - dictWord{7, 10, 80}, - dictWord{10, 10, 479}, - dictWord{ - 12, - 10, - 418, - }, - dictWord{14, 10, 50}, - dictWord{14, 10, 249}, - dictWord{142, 10, 295}, - dictWord{7, 10, 1470}, - dictWord{8, 10, 66}, - dictWord{8, 10, 137}, - dictWord{ - 8, - 10, - 761, - }, - dictWord{9, 10, 638}, - dictWord{11, 10, 80}, - dictWord{11, 10, 212}, - dictWord{11, 10, 368}, - dictWord{11, 10, 418}, - dictWord{12, 10, 8}, - dictWord{ - 13, - 10, - 15, - }, - dictWord{16, 10, 61}, - dictWord{17, 10, 59}, - dictWord{19, 10, 28}, - dictWord{148, 10, 84}, - dictWord{20, 0, 109}, - dictWord{135, 11, 1148}, - dictWord{ - 6, - 11, - 277, - }, - dictWord{7, 11, 1274}, - dictWord{7, 11, 1386}, - dictWord{7, 11, 1392}, - dictWord{12, 11, 129}, - dictWord{146, 11, 87}, - dictWord{6, 11, 187}, - dictWord{7, 11, 39}, - dictWord{7, 11, 1203}, - dictWord{8, 11, 380}, - dictWord{8, 11, 542}, - dictWord{14, 11, 117}, - dictWord{149, 11, 28}, - dictWord{134, 0, 1187}, - dictWord{5, 0, 266}, - dictWord{9, 0, 290}, - dictWord{9, 0, 364}, - dictWord{10, 0, 293}, - dictWord{11, 0, 606}, - dictWord{142, 0, 45}, - dictWord{6, 11, 297}, - dictWord{ - 7, - 11, - 793, - }, - dictWord{139, 11, 938}, - dictWord{4, 0, 50}, - dictWord{6, 0, 594}, - dictWord{9, 0, 121}, - dictWord{10, 0, 49}, - dictWord{10, 0, 412}, - dictWord{139, 0, 834}, - dictWord{136, 0, 748}, - dictWord{7, 11, 464}, - dictWord{8, 11, 438}, - dictWord{11, 11, 105}, - dictWord{11, 11, 363}, - dictWord{12, 11, 231}, - dictWord{ - 14, - 11, - 386, - }, - dictWord{15, 11, 102}, - dictWord{148, 11, 75}, - dictWord{132, 0, 466}, - dictWord{13, 0, 399}, - dictWord{14, 0, 337}, - dictWord{6, 10, 38}, - dictWord{ - 7, - 10, - 1220, - }, - dictWord{8, 10, 185}, - dictWord{8, 10, 256}, - dictWord{9, 10, 22}, - dictWord{9, 10, 331}, - dictWord{10, 10, 738}, - dictWord{11, 10, 205}, - dictWord{ - 11, - 10, - 540, - }, - dictWord{11, 10, 746}, - dictWord{13, 10, 465}, - dictWord{142, 10, 194}, - dictWord{9, 0, 378}, - dictWord{141, 0, 162}, - dictWord{137, 0, 519}, - dictWord{ - 4, - 10, - 159, - }, - dictWord{6, 10, 115}, - dictWord{7, 10, 252}, - dictWord{7, 10, 257}, - dictWord{7, 10, 1928}, - dictWord{8, 10, 69}, - dictWord{9, 10, 384}, - dictWord{ - 10, - 10, - 91, - }, - dictWord{10, 10, 615}, - dictWord{12, 10, 375}, - dictWord{14, 10, 235}, - dictWord{18, 10, 117}, - dictWord{147, 10, 123}, - dictWord{5, 11, 604}, - dictWord{ - 5, - 10, - 911, - }, - dictWord{136, 10, 278}, - dictWord{132, 0, 667}, - dictWord{8, 0, 351}, - dictWord{9, 0, 322}, - dictWord{4, 10, 151}, - dictWord{135, 10, 1567}, - dictWord{134, 0, 902}, - dictWord{133, 10, 990}, - dictWord{12, 0, 180}, - dictWord{5, 10, 194}, - dictWord{7, 10, 1662}, - dictWord{137, 10, 90}, - dictWord{4, 0, 869}, - dictWord{134, 0, 1996}, - dictWord{134, 0, 813}, - dictWord{133, 10, 425}, - dictWord{137, 11, 761}, - dictWord{132, 0, 260}, - dictWord{133, 10, 971}, - dictWord{ - 5, - 11, - 20, - }, - dictWord{6, 11, 298}, - dictWord{7, 11, 659}, - dictWord{7, 11, 1366}, - dictWord{137, 11, 219}, - dictWord{4, 0, 39}, - dictWord{5, 0, 36}, - dictWord{ - 7, - 0, - 1843, - }, - dictWord{8, 0, 407}, - dictWord{11, 0, 144}, - dictWord{140, 0, 523}, - dictWord{4, 0, 510}, - dictWord{10, 0, 587}, - dictWord{139, 10, 752}, - dictWord{7, 0, 29}, - dictWord{7, 0, 66}, - dictWord{7, 0, 1980}, - dictWord{10, 0, 487}, - dictWord{138, 0, 809}, - dictWord{13, 0, 260}, - dictWord{14, 0, 82}, - dictWord{18, 0, 63}, - dictWord{ - 137, - 10, - 662, - }, - dictWord{5, 10, 72}, - dictWord{6, 10, 264}, - dictWord{7, 10, 21}, - dictWord{7, 10, 46}, - dictWord{7, 10, 2013}, - dictWord{8, 10, 215}, - dictWord{ - 8, - 10, - 513, - }, - dictWord{10, 10, 266}, - dictWord{139, 10, 22}, - dictWord{134, 0, 570}, - dictWord{6, 0, 565}, - dictWord{7, 0, 1667}, - dictWord{4, 11, 439}, - dictWord{ - 10, - 10, - 95, - }, - dictWord{11, 10, 603}, - dictWord{12, 11, 242}, - dictWord{13, 10, 443}, - dictWord{14, 10, 160}, - dictWord{143, 10, 4}, - dictWord{134, 0, 1464}, - dictWord{ - 134, - 10, - 431, - }, - dictWord{9, 0, 372}, - dictWord{15, 0, 2}, - dictWord{19, 0, 10}, - dictWord{19, 0, 18}, - dictWord{5, 10, 874}, - dictWord{6, 10, 1677}, - dictWord{143, 10, 0}, - dictWord{132, 0, 787}, - dictWord{6, 0, 380}, - dictWord{12, 0, 399}, - dictWord{21, 0, 19}, - dictWord{7, 10, 939}, - dictWord{7, 10, 1172}, - dictWord{7, 10, 1671}, - dictWord{9, 10, 540}, - dictWord{10, 10, 696}, - dictWord{11, 10, 265}, - dictWord{11, 10, 732}, - dictWord{11, 10, 928}, - dictWord{11, 10, 937}, - dictWord{ - 141, - 10, - 438, - }, - dictWord{137, 0, 200}, - dictWord{132, 11, 233}, - dictWord{132, 0, 516}, - dictWord{134, 11, 577}, - dictWord{132, 0, 844}, - dictWord{11, 0, 887}, - dictWord{14, 0, 365}, - dictWord{142, 0, 375}, - dictWord{132, 11, 482}, - dictWord{8, 0, 821}, - dictWord{140, 0, 44}, - dictWord{7, 0, 1655}, - dictWord{136, 0, 305}, - dictWord{5, 10, 682}, - dictWord{135, 10, 1887}, - dictWord{135, 11, 346}, - dictWord{132, 10, 696}, - dictWord{4, 0, 10}, - dictWord{7, 0, 917}, - dictWord{139, 0, 786}, - dictWord{5, 11, 795}, - dictWord{6, 11, 1741}, - dictWord{8, 11, 417}, - dictWord{137, 11, 782}, - dictWord{4, 0, 1016}, - dictWord{134, 0, 2031}, - dictWord{5, 0, 684}, - dictWord{4, 10, 726}, - dictWord{133, 10, 630}, - dictWord{6, 0, 1021}, - dictWord{134, 0, 1480}, - dictWord{8, 10, 802}, - dictWord{136, 10, 838}, - dictWord{ - 134, - 0, - 27, - }, - dictWord{134, 0, 395}, - dictWord{135, 11, 622}, - dictWord{7, 11, 625}, - dictWord{135, 11, 1750}, - dictWord{4, 11, 203}, - dictWord{135, 11, 1936}, - dictWord{6, 10, 118}, - dictWord{7, 10, 215}, - dictWord{7, 10, 1521}, - dictWord{140, 10, 11}, - dictWord{132, 0, 813}, - dictWord{136, 0, 511}, - dictWord{7, 10, 615}, - dictWord{138, 10, 251}, - dictWord{135, 10, 1044}, - dictWord{145, 0, 56}, - dictWord{133, 10, 225}, - dictWord{6, 0, 342}, - dictWord{6, 0, 496}, - dictWord{8, 0, 275}, - dictWord{137, 0, 206}, - dictWord{4, 0, 909}, - dictWord{133, 0, 940}, - dictWord{132, 0, 891}, - dictWord{7, 11, 311}, - dictWord{9, 11, 308}, - dictWord{ - 140, - 11, - 255, - }, - dictWord{4, 10, 370}, - dictWord{5, 10, 756}, - dictWord{135, 10, 1326}, - dictWord{4, 0, 687}, - dictWord{134, 0, 1596}, - dictWord{134, 0, 1342}, - dictWord{ - 6, - 10, - 1662, - }, - dictWord{7, 10, 48}, - dictWord{8, 10, 771}, - dictWord{10, 10, 116}, - dictWord{13, 10, 104}, - dictWord{14, 10, 105}, - dictWord{14, 10, 184}, - dictWord{15, 10, 168}, - dictWord{19, 10, 92}, - dictWord{148, 10, 68}, - dictWord{138, 10, 209}, - dictWord{4, 11, 400}, - dictWord{5, 11, 267}, - dictWord{135, 11, 232}, - dictWord{151, 11, 12}, - dictWord{6, 0, 41}, - dictWord{141, 0, 160}, - dictWord{141, 11, 314}, - dictWord{134, 0, 1718}, - dictWord{136, 0, 778}, - dictWord{ - 142, - 11, - 261, - }, - dictWord{134, 0, 1610}, - dictWord{133, 0, 115}, - dictWord{132, 0, 294}, - dictWord{14, 0, 314}, - dictWord{132, 10, 120}, - dictWord{132, 0, 983}, - dictWord{5, 0, 193}, - dictWord{140, 0, 178}, - dictWord{138, 10, 429}, - dictWord{5, 10, 820}, - dictWord{135, 10, 931}, - dictWord{6, 0, 994}, - dictWord{6, 0, 1051}, - dictWord{6, 0, 1439}, - dictWord{7, 0, 174}, - dictWord{133, 11, 732}, - dictWord{4, 11, 100}, - dictWord{7, 11, 679}, - dictWord{8, 11, 313}, - dictWord{138, 10, 199}, - dictWord{6, 10, 151}, - dictWord{6, 10, 1675}, - dictWord{7, 10, 383}, - dictWord{151, 10, 10}, - dictWord{6, 0, 1796}, - dictWord{8, 0, 848}, - dictWord{8, 0, 867}, - dictWord{ - 8, - 0, - 907, - }, - dictWord{10, 0, 855}, - dictWord{140, 0, 703}, - dictWord{140, 0, 221}, - dictWord{4, 0, 122}, - dictWord{5, 0, 796}, - dictWord{5, 0, 952}, - dictWord{6, 0, 1660}, - dictWord{6, 0, 1671}, - dictWord{8, 0, 567}, - dictWord{9, 0, 687}, - dictWord{9, 0, 742}, - dictWord{10, 0, 686}, - dictWord{11, 0, 682}, - dictWord{11, 0, 909}, - dictWord{ - 140, - 0, - 281, - }, - dictWord{5, 11, 362}, - dictWord{5, 11, 443}, - dictWord{6, 11, 318}, - dictWord{7, 11, 1019}, - dictWord{139, 11, 623}, - dictWord{5, 11, 463}, - dictWord{136, 11, 296}, - dictWord{11, 0, 583}, - dictWord{13, 0, 262}, - dictWord{6, 10, 1624}, - dictWord{12, 10, 422}, - dictWord{142, 10, 360}, - dictWord{5, 0, 179}, - dictWord{7, 0, 1095}, - dictWord{135, 0, 1213}, - dictWord{4, 10, 43}, - dictWord{4, 11, 454}, - dictWord{5, 10, 344}, - dictWord{133, 10, 357}, - dictWord{4, 0, 66}, - dictWord{7, 0, 722}, - dictWord{135, 0, 904}, - dictWord{134, 0, 773}, - dictWord{7, 0, 352}, - dictWord{133, 10, 888}, - dictWord{5, 11, 48}, - dictWord{5, 11, 404}, - dictWord{ - 6, - 11, - 557, - }, - dictWord{7, 11, 458}, - dictWord{8, 11, 597}, - dictWord{10, 11, 455}, - dictWord{10, 11, 606}, - dictWord{11, 11, 49}, - dictWord{11, 11, 548}, - dictWord{ - 12, - 11, - 476, - }, - dictWord{13, 11, 18}, - dictWord{141, 11, 450}, - dictWord{134, 11, 418}, - dictWord{132, 10, 711}, - dictWord{5, 11, 442}, - dictWord{ - 135, - 11, - 1984, - }, - dictWord{141, 0, 35}, - dictWord{137, 0, 152}, - dictWord{134, 0, 1197}, - dictWord{135, 11, 1093}, - dictWord{137, 11, 203}, - dictWord{137, 10, 440}, - dictWord{10, 0, 592}, - dictWord{10, 0, 753}, - dictWord{12, 0, 317}, - dictWord{12, 0, 355}, - dictWord{12, 0, 465}, - dictWord{12, 0, 469}, - dictWord{12, 0, 560}, - dictWord{12, 0, 578}, - dictWord{141, 0, 243}, - dictWord{133, 0, 564}, - dictWord{134, 0, 797}, - dictWord{5, 10, 958}, - dictWord{133, 10, 987}, - dictWord{5, 11, 55}, - dictWord{7, 11, 376}, - dictWord{140, 11, 161}, - dictWord{133, 11, 450}, - dictWord{134, 0, 556}, - dictWord{134, 0, 819}, - dictWord{11, 10, 276}, - dictWord{ - 142, - 10, - 293, - }, - dictWord{7, 0, 544}, - dictWord{138, 0, 61}, - dictWord{8, 0, 719}, - dictWord{4, 10, 65}, - dictWord{5, 10, 479}, - dictWord{5, 10, 1004}, - dictWord{7, 10, 1913}, - dictWord{8, 10, 317}, - dictWord{9, 10, 302}, - dictWord{10, 10, 612}, - dictWord{141, 10, 22}, - dictWord{4, 0, 5}, - dictWord{5, 0, 498}, - dictWord{8, 0, 637}, - dictWord{ - 9, - 0, - 521, - }, - dictWord{4, 11, 213}, - dictWord{4, 10, 261}, - dictWord{7, 11, 223}, - dictWord{7, 10, 510}, - dictWord{136, 11, 80}, - dictWord{5, 0, 927}, - dictWord{7, 0, 101}, - dictWord{4, 10, 291}, - dictWord{7, 11, 381}, - dictWord{7, 11, 806}, - dictWord{7, 11, 820}, - dictWord{8, 11, 354}, - dictWord{8, 11, 437}, - dictWord{8, 11, 787}, - dictWord{9, 10, 515}, - dictWord{9, 11, 657}, - dictWord{10, 11, 58}, - dictWord{10, 11, 339}, - dictWord{10, 11, 749}, - dictWord{11, 11, 914}, - dictWord{12, 10, 152}, - dictWord{12, 11, 162}, - dictWord{12, 10, 443}, - dictWord{13, 11, 75}, - dictWord{13, 10, 392}, - dictWord{14, 11, 106}, - dictWord{14, 11, 198}, - dictWord{ - 14, - 11, - 320, - }, - dictWord{14, 10, 357}, - dictWord{14, 11, 413}, - dictWord{146, 11, 43}, - dictWord{6, 0, 1153}, - dictWord{7, 0, 1441}, - dictWord{136, 11, 747}, - dictWord{ - 4, - 0, - 893, - }, - dictWord{5, 0, 780}, - dictWord{133, 0, 893}, - dictWord{138, 11, 654}, - dictWord{133, 11, 692}, - dictWord{133, 0, 238}, - dictWord{134, 11, 191}, - dictWord{4, 10, 130}, - dictWord{135, 10, 843}, - dictWord{6, 0, 1296}, - dictWord{5, 10, 42}, - dictWord{5, 10, 879}, - dictWord{7, 10, 245}, - dictWord{7, 10, 324}, - dictWord{ - 7, - 10, - 1532, - }, - dictWord{11, 10, 463}, - dictWord{11, 10, 472}, - dictWord{13, 10, 363}, - dictWord{144, 10, 52}, - dictWord{134, 0, 1729}, - dictWord{6, 0, 1999}, - dictWord{136, 0, 969}, - dictWord{4, 10, 134}, - dictWord{133, 10, 372}, - dictWord{4, 0, 60}, - dictWord{7, 0, 941}, - dictWord{7, 0, 1800}, - dictWord{8, 0, 314}, - dictWord{ - 9, - 0, - 700, - }, - dictWord{139, 0, 487}, - dictWord{134, 0, 1144}, - dictWord{6, 11, 162}, - dictWord{7, 11, 1960}, - dictWord{136, 11, 831}, - dictWord{132, 11, 706}, - dictWord{135, 0, 1147}, - dictWord{138, 11, 426}, - dictWord{138, 11, 89}, - dictWord{7, 0, 1853}, - dictWord{138, 0, 437}, - dictWord{136, 0, 419}, - dictWord{ - 135, - 10, - 1634, - }, - dictWord{133, 0, 828}, - dictWord{5, 0, 806}, - dictWord{7, 0, 176}, - dictWord{7, 0, 178}, - dictWord{7, 0, 1240}, - dictWord{7, 0, 1976}, - dictWord{ - 132, - 10, - 644, - }, - dictWord{135, 11, 1877}, - dictWord{5, 11, 420}, - dictWord{135, 11, 1449}, - dictWord{4, 0, 51}, - dictWord{5, 0, 39}, - dictWord{6, 0, 4}, - dictWord{7, 0, 591}, - dictWord{7, 0, 849}, - dictWord{7, 0, 951}, - dictWord{7, 0, 1613}, - dictWord{7, 0, 1760}, - dictWord{7, 0, 1988}, - dictWord{9, 0, 434}, - dictWord{10, 0, 754}, - dictWord{ - 11, - 0, - 25, - }, - dictWord{139, 0, 37}, - dictWord{10, 11, 57}, - dictWord{138, 11, 277}, - dictWord{135, 10, 540}, - dictWord{132, 11, 204}, - dictWord{135, 0, 159}, - dictWord{139, 11, 231}, - dictWord{133, 0, 902}, - dictWord{7, 0, 928}, - dictWord{7, 11, 366}, - dictWord{9, 11, 287}, - dictWord{12, 11, 199}, - dictWord{12, 11, 556}, - dictWord{140, 11, 577}, - dictWord{6, 10, 623}, - dictWord{136, 10, 789}, - dictWord{4, 10, 908}, - dictWord{5, 10, 359}, - dictWord{5, 10, 508}, - dictWord{6, 10, 1723}, - dictWord{7, 10, 343}, - dictWord{7, 10, 1996}, - dictWord{135, 10, 2026}, - dictWord{134, 0, 270}, - dictWord{4, 10, 341}, - dictWord{135, 10, 480}, - dictWord{ - 5, - 11, - 356, - }, - dictWord{135, 11, 224}, - dictWord{11, 11, 588}, - dictWord{11, 11, 864}, - dictWord{11, 11, 968}, - dictWord{143, 11, 160}, - dictWord{132, 0, 556}, - dictWord{137, 0, 801}, - dictWord{132, 0, 416}, - dictWord{142, 0, 372}, - dictWord{5, 0, 152}, - dictWord{5, 0, 197}, - dictWord{7, 0, 340}, - dictWord{7, 0, 867}, - dictWord{ - 10, - 0, - 548, - }, - dictWord{10, 0, 581}, - dictWord{11, 0, 6}, - dictWord{12, 0, 3}, - dictWord{12, 0, 19}, - dictWord{14, 0, 110}, - dictWord{142, 0, 289}, - dictWord{139, 0, 369}, - dictWord{7, 11, 630}, - dictWord{9, 11, 567}, - dictWord{11, 11, 150}, - dictWord{11, 11, 444}, - dictWord{141, 11, 119}, - dictWord{134, 11, 539}, - dictWord{ - 7, - 10, - 1995, - }, - dictWord{8, 10, 299}, - dictWord{11, 10, 890}, - dictWord{140, 10, 674}, - dictWord{7, 0, 34}, - dictWord{7, 0, 190}, - dictWord{8, 0, 28}, - dictWord{8, 0, 141}, - dictWord{8, 0, 444}, - dictWord{8, 0, 811}, - dictWord{9, 0, 468}, - dictWord{11, 0, 334}, - dictWord{12, 0, 24}, - dictWord{12, 0, 386}, - dictWord{140, 0, 576}, - dictWord{ - 133, - 0, - 757, - }, - dictWord{7, 0, 1553}, - dictWord{136, 0, 898}, - dictWord{133, 0, 721}, - dictWord{136, 0, 1012}, - dictWord{4, 0, 789}, - dictWord{5, 0, 647}, - dictWord{ - 135, - 0, - 1102, - }, - dictWord{132, 0, 898}, - dictWord{10, 0, 183}, - dictWord{4, 10, 238}, - dictWord{5, 10, 503}, - dictWord{6, 10, 179}, - dictWord{7, 10, 2003}, - dictWord{ - 8, - 10, - 381, - }, - dictWord{8, 10, 473}, - dictWord{9, 10, 149}, - dictWord{10, 10, 788}, - dictWord{15, 10, 45}, - dictWord{15, 10, 86}, - dictWord{20, 10, 110}, - dictWord{ - 150, - 10, - 57, - }, - dictWord{9, 0, 136}, - dictWord{19, 0, 107}, - dictWord{4, 10, 121}, - dictWord{5, 10, 156}, - dictWord{5, 10, 349}, - dictWord{10, 10, 605}, - dictWord{ - 142, - 10, - 342, - }, - dictWord{4, 11, 235}, - dictWord{135, 11, 255}, - dictWord{4, 11, 194}, - dictWord{5, 11, 584}, - dictWord{6, 11, 384}, - dictWord{7, 11, 583}, - dictWord{ - 10, - 11, - 761, - }, - dictWord{11, 11, 760}, - dictWord{139, 11, 851}, - dictWord{6, 10, 80}, - dictWord{6, 10, 1694}, - dictWord{7, 10, 173}, - dictWord{7, 10, 1974}, - dictWord{ - 9, - 10, - 547, - }, - dictWord{10, 10, 730}, - dictWord{14, 10, 18}, - dictWord{150, 10, 39}, - dictWord{4, 10, 923}, - dictWord{134, 10, 1711}, - dictWord{5, 0, 277}, - dictWord{141, 0, 247}, - dictWord{132, 0, 435}, - dictWord{133, 11, 562}, - dictWord{134, 0, 1311}, - dictWord{5, 11, 191}, - dictWord{137, 11, 271}, - dictWord{ - 132, - 10, - 595, - }, - dictWord{7, 11, 1537}, - dictWord{14, 11, 96}, - dictWord{143, 11, 73}, - dictWord{5, 0, 437}, - dictWord{7, 0, 502}, - dictWord{7, 0, 519}, - dictWord{7, 0, 1122}, - dictWord{7, 0, 1751}, - dictWord{14, 0, 211}, - dictWord{6, 10, 459}, - dictWord{7, 10, 1753}, - dictWord{7, 10, 1805}, - dictWord{8, 10, 658}, - dictWord{9, 10, 1}, - dictWord{11, 10, 959}, - dictWord{141, 10, 446}, - dictWord{6, 0, 814}, - dictWord{4, 11, 470}, - dictWord{5, 11, 473}, - dictWord{6, 11, 153}, - dictWord{7, 11, 1503}, - dictWord{7, 11, 1923}, - dictWord{10, 11, 701}, - dictWord{11, 11, 132}, - dictWord{11, 11, 168}, - dictWord{11, 11, 227}, - dictWord{11, 11, 320}, - dictWord{ - 11, - 11, - 436, - }, - dictWord{11, 11, 525}, - dictWord{11, 11, 855}, - dictWord{12, 11, 41}, - dictWord{12, 11, 286}, - dictWord{13, 11, 103}, - dictWord{13, 11, 284}, - dictWord{ - 14, - 11, - 255, - }, - dictWord{14, 11, 262}, - dictWord{15, 11, 117}, - dictWord{143, 11, 127}, - dictWord{5, 0, 265}, - dictWord{6, 0, 212}, - dictWord{135, 0, 28}, - dictWord{ - 138, - 0, - 750, - }, - dictWord{133, 11, 327}, - dictWord{6, 11, 552}, - dictWord{7, 11, 1754}, - dictWord{137, 11, 604}, - dictWord{134, 0, 2012}, - dictWord{132, 0, 702}, - dictWord{5, 11, 80}, - dictWord{6, 11, 405}, - dictWord{7, 11, 403}, - dictWord{7, 11, 1502}, - dictWord{7, 11, 1626}, - dictWord{8, 11, 456}, - dictWord{9, 11, 487}, - dictWord{9, 11, 853}, - dictWord{9, 11, 889}, - dictWord{10, 11, 309}, - dictWord{11, 11, 721}, - dictWord{11, 11, 994}, - dictWord{12, 11, 430}, - dictWord{ - 141, - 11, - 165, - }, - dictWord{5, 0, 808}, - dictWord{135, 0, 2045}, - dictWord{5, 0, 166}, - dictWord{8, 0, 739}, - dictWord{140, 0, 511}, - dictWord{134, 10, 490}, - dictWord{ - 4, - 11, - 453, - }, - dictWord{5, 11, 887}, - dictWord{6, 11, 535}, - dictWord{8, 11, 6}, - dictWord{136, 11, 543}, - dictWord{4, 0, 119}, - dictWord{5, 0, 170}, - dictWord{5, 0, 447}, - dictWord{7, 0, 1708}, - dictWord{7, 0, 1889}, - dictWord{9, 0, 357}, - dictWord{9, 0, 719}, - dictWord{12, 0, 486}, - dictWord{140, 0, 596}, - dictWord{137, 0, 500}, - dictWord{ - 7, - 10, - 250, - }, - dictWord{136, 10, 507}, - dictWord{132, 10, 158}, - dictWord{6, 0, 809}, - dictWord{134, 0, 1500}, - dictWord{9, 0, 327}, - dictWord{11, 0, 350}, - dictWord{11, 0, 831}, - dictWord{13, 0, 352}, - dictWord{4, 10, 140}, - dictWord{7, 10, 362}, - dictWord{8, 10, 209}, - dictWord{9, 10, 10}, - dictWord{9, 10, 503}, - dictWord{ - 9, - 10, - 614, - }, - dictWord{10, 10, 689}, - dictWord{11, 10, 327}, - dictWord{11, 10, 725}, - dictWord{12, 10, 252}, - dictWord{12, 10, 583}, - dictWord{13, 10, 192}, - dictWord{14, 10, 269}, - dictWord{14, 10, 356}, - dictWord{148, 10, 50}, - dictWord{135, 11, 741}, - dictWord{4, 0, 450}, - dictWord{7, 0, 1158}, - dictWord{19, 10, 1}, - dictWord{19, 10, 26}, - dictWord{150, 10, 9}, - dictWord{6, 0, 597}, - dictWord{135, 0, 1318}, - dictWord{134, 0, 1602}, - dictWord{6, 10, 228}, - dictWord{7, 10, 1341}, - dictWord{9, 10, 408}, - dictWord{138, 10, 343}, - dictWord{7, 0, 1375}, - dictWord{7, 0, 1466}, - dictWord{138, 0, 331}, - dictWord{132, 0, 754}, - dictWord{ - 132, - 10, - 557, - }, - dictWord{5, 11, 101}, - dictWord{6, 11, 88}, - dictWord{6, 11, 543}, - dictWord{7, 11, 1677}, - dictWord{9, 11, 100}, - dictWord{10, 11, 677}, - dictWord{ - 14, - 11, - 169, - }, - dictWord{14, 11, 302}, - dictWord{14, 11, 313}, - dictWord{15, 11, 48}, - dictWord{143, 11, 84}, - dictWord{134, 0, 1368}, - dictWord{4, 11, 310}, - dictWord{ - 9, - 11, - 795, - }, - dictWord{10, 11, 733}, - dictWord{11, 11, 451}, - dictWord{12, 11, 249}, - dictWord{14, 11, 115}, - dictWord{14, 11, 286}, - dictWord{143, 11, 100}, - dictWord{132, 10, 548}, - dictWord{10, 0, 557}, - dictWord{7, 10, 197}, - dictWord{8, 10, 142}, - dictWord{8, 10, 325}, - dictWord{9, 10, 150}, - dictWord{9, 10, 596}, - dictWord{10, 10, 353}, - dictWord{11, 10, 74}, - dictWord{11, 10, 315}, - dictWord{12, 10, 662}, - dictWord{12, 10, 681}, - dictWord{14, 10, 423}, - dictWord{ - 143, - 10, - 141, - }, - dictWord{133, 11, 587}, - dictWord{5, 0, 850}, - dictWord{136, 0, 799}, - dictWord{10, 0, 908}, - dictWord{12, 0, 701}, - dictWord{12, 0, 757}, - dictWord{ - 142, - 0, - 466, - }, - dictWord{4, 0, 62}, - dictWord{5, 0, 275}, - dictWord{18, 0, 19}, - dictWord{6, 10, 399}, - dictWord{6, 10, 579}, - dictWord{7, 10, 692}, - dictWord{7, 10, 846}, - dictWord{ - 7, - 10, - 1015, - }, - dictWord{7, 10, 1799}, - dictWord{8, 10, 403}, - dictWord{9, 10, 394}, - dictWord{10, 10, 133}, - dictWord{12, 10, 4}, - dictWord{12, 10, 297}, - dictWord{12, 10, 452}, - dictWord{16, 10, 81}, - dictWord{18, 10, 25}, - dictWord{21, 10, 14}, - dictWord{22, 10, 12}, - dictWord{151, 10, 18}, - dictWord{12, 0, 459}, - dictWord{ - 7, - 10, - 1546, - }, - dictWord{11, 10, 299}, - dictWord{142, 10, 407}, - dictWord{132, 10, 177}, - dictWord{132, 11, 498}, - dictWord{7, 11, 217}, - dictWord{ - 8, - 11, - 140, - }, - dictWord{138, 11, 610}, - dictWord{5, 10, 411}, - dictWord{135, 10, 653}, - dictWord{134, 0, 1802}, - dictWord{7, 10, 439}, - dictWord{10, 10, 727}, - dictWord{11, 10, 260}, - dictWord{139, 10, 684}, - dictWord{133, 11, 905}, - dictWord{11, 11, 580}, - dictWord{142, 11, 201}, - dictWord{134, 0, 1397}, - dictWord{ - 5, - 10, - 208, - }, - dictWord{7, 10, 753}, - dictWord{135, 10, 1528}, - dictWord{7, 0, 238}, - dictWord{7, 0, 2033}, - dictWord{8, 0, 120}, - dictWord{8, 0, 188}, - dictWord{8, 0, 659}, - dictWord{9, 0, 598}, - dictWord{10, 0, 466}, - dictWord{12, 0, 342}, - dictWord{12, 0, 588}, - dictWord{13, 0, 503}, - dictWord{14, 0, 246}, - dictWord{143, 0, 92}, - dictWord{135, 11, 1041}, - dictWord{4, 11, 456}, - dictWord{7, 11, 105}, - dictWord{7, 11, 358}, - dictWord{7, 11, 1637}, - dictWord{8, 11, 643}, - dictWord{139, 11, 483}, - dictWord{6, 0, 1318}, - dictWord{134, 0, 1324}, - dictWord{4, 0, 201}, - dictWord{7, 0, 1744}, - dictWord{8, 0, 602}, - dictWord{11, 0, 247}, - dictWord{11, 0, 826}, - dictWord{17, 0, 65}, - dictWord{133, 10, 242}, - dictWord{8, 0, 164}, - dictWord{146, 0, 62}, - dictWord{133, 10, 953}, - dictWord{139, 10, 802}, - dictWord{133, 0, 615}, - dictWord{7, 11, 1566}, - dictWord{8, 11, 269}, - dictWord{9, 11, 212}, - dictWord{9, 11, 718}, - dictWord{14, 11, 15}, - dictWord{14, 11, 132}, - dictWord{142, 11, 227}, - dictWord{133, 10, 290}, - dictWord{132, 10, 380}, - dictWord{5, 10, 52}, - dictWord{7, 10, 277}, - dictWord{9, 10, 368}, - dictWord{139, 10, 791}, - dictWord{ - 135, - 0, - 1243, - }, - dictWord{133, 11, 539}, - dictWord{11, 11, 919}, - dictWord{141, 11, 409}, - dictWord{136, 0, 968}, - dictWord{133, 11, 470}, - dictWord{134, 0, 882}, - dictWord{132, 0, 907}, - dictWord{5, 0, 100}, - dictWord{10, 0, 329}, - dictWord{12, 0, 416}, - dictWord{149, 0, 29}, - dictWord{10, 10, 138}, - dictWord{139, 10, 476}, - dictWord{5, 10, 725}, - dictWord{5, 10, 727}, - dictWord{6, 11, 91}, - dictWord{7, 11, 435}, - dictWord{135, 10, 1811}, - dictWord{4, 11, 16}, - dictWord{5, 11, 316}, - dictWord{5, 11, 842}, - dictWord{6, 11, 370}, - dictWord{6, 11, 1778}, - dictWord{8, 11, 166}, - dictWord{11, 11, 812}, - dictWord{12, 11, 206}, - dictWord{12, 11, 351}, - dictWord{14, 11, 418}, - dictWord{16, 11, 15}, - dictWord{16, 11, 34}, - dictWord{18, 11, 3}, - dictWord{19, 11, 3}, - dictWord{19, 11, 7}, - dictWord{20, 11, 4}, - dictWord{ - 149, - 11, - 21, - }, - dictWord{132, 0, 176}, - dictWord{5, 0, 636}, - dictWord{5, 0, 998}, - dictWord{7, 0, 9}, - dictWord{7, 0, 1508}, - dictWord{8, 0, 26}, - dictWord{9, 0, 317}, - dictWord{ - 9, - 0, - 358, - }, - dictWord{10, 0, 210}, - dictWord{10, 0, 292}, - dictWord{10, 0, 533}, - dictWord{11, 0, 555}, - dictWord{12, 0, 526}, - dictWord{12, 0, 607}, - dictWord{ - 13, - 0, - 263, - }, - dictWord{13, 0, 459}, - dictWord{142, 0, 271}, - dictWord{6, 0, 256}, - dictWord{8, 0, 265}, - dictWord{4, 10, 38}, - dictWord{7, 10, 307}, - dictWord{7, 10, 999}, - dictWord{7, 10, 1481}, - dictWord{7, 10, 1732}, - dictWord{7, 10, 1738}, - dictWord{9, 10, 414}, - dictWord{11, 10, 316}, - dictWord{12, 10, 52}, - dictWord{13, 10, 420}, - dictWord{147, 10, 100}, - dictWord{135, 10, 1296}, - dictWord{4, 11, 611}, - dictWord{133, 11, 606}, - dictWord{4, 0, 643}, - dictWord{142, 11, 21}, - dictWord{ - 133, - 11, - 715, - }, - dictWord{133, 10, 723}, - dictWord{6, 0, 610}, - dictWord{135, 11, 597}, - dictWord{10, 0, 127}, - dictWord{141, 0, 27}, - dictWord{6, 0, 1995}, - dictWord{ - 6, - 0, - 2001, - }, - dictWord{8, 0, 119}, - dictWord{136, 0, 973}, - dictWord{4, 11, 149}, - dictWord{138, 11, 368}, - dictWord{12, 0, 522}, - dictWord{4, 11, 154}, - dictWord{ - 5, - 10, - 109, - }, - dictWord{6, 10, 1784}, - dictWord{7, 11, 1134}, - dictWord{7, 10, 1895}, - dictWord{8, 11, 105}, - dictWord{12, 10, 296}, - dictWord{140, 10, 302}, - dictWord{4, 11, 31}, - dictWord{6, 11, 429}, - dictWord{7, 11, 962}, - dictWord{9, 11, 458}, - dictWord{139, 11, 691}, - dictWord{10, 0, 553}, - dictWord{11, 0, 876}, - dictWord{13, 0, 193}, - dictWord{13, 0, 423}, - dictWord{14, 0, 166}, - dictWord{19, 0, 84}, - dictWord{4, 11, 312}, - dictWord{5, 10, 216}, - dictWord{7, 10, 1879}, - dictWord{ - 9, - 10, - 141, - }, - dictWord{9, 10, 270}, - dictWord{9, 10, 679}, - dictWord{10, 10, 159}, - dictWord{11, 10, 197}, - dictWord{12, 10, 538}, - dictWord{12, 10, 559}, - dictWord{14, 10, 144}, - dictWord{14, 10, 167}, - dictWord{143, 10, 67}, - dictWord{134, 0, 1582}, - dictWord{7, 0, 1578}, - dictWord{135, 11, 1578}, - dictWord{ - 137, - 10, - 81, - }, - dictWord{132, 11, 236}, - dictWord{134, 10, 391}, - dictWord{134, 0, 795}, - dictWord{7, 10, 322}, - dictWord{136, 10, 249}, - dictWord{5, 11, 836}, - dictWord{ - 5, - 11, - 857, - }, - dictWord{6, 11, 1680}, - dictWord{7, 11, 59}, - dictWord{147, 11, 53}, - dictWord{135, 0, 432}, - dictWord{10, 11, 68}, - dictWord{139, 11, 494}, - dictWord{4, 11, 81}, - dictWord{139, 11, 867}, - dictWord{7, 0, 126}, - dictWord{136, 0, 84}, - dictWord{142, 11, 280}, - dictWord{5, 11, 282}, - dictWord{8, 11, 650}, - dictWord{ - 9, - 11, - 295, - }, - dictWord{9, 11, 907}, - dictWord{138, 11, 443}, - dictWord{136, 0, 790}, - dictWord{5, 10, 632}, - dictWord{138, 10, 526}, - dictWord{6, 0, 64}, - dictWord{12, 0, 377}, - dictWord{13, 0, 309}, - dictWord{14, 0, 141}, - dictWord{14, 0, 429}, - dictWord{14, 11, 141}, - dictWord{142, 11, 429}, - dictWord{134, 0, 1529}, - dictWord{6, 0, 321}, - dictWord{7, 0, 1857}, - dictWord{9, 0, 530}, - dictWord{19, 0, 99}, - dictWord{7, 10, 948}, - dictWord{7, 10, 1042}, - dictWord{8, 10, 235}, - dictWord{ - 8, - 10, - 461, - }, - dictWord{9, 10, 453}, - dictWord{10, 10, 354}, - dictWord{145, 10, 77}, - dictWord{7, 0, 1104}, - dictWord{11, 0, 269}, - dictWord{11, 0, 539}, - dictWord{ - 11, - 0, - 627, - }, - dictWord{11, 0, 706}, - dictWord{11, 0, 975}, - dictWord{12, 0, 248}, - dictWord{12, 0, 434}, - dictWord{12, 0, 600}, - dictWord{12, 0, 622}, - dictWord{ - 13, - 0, - 297, - }, - dictWord{13, 0, 485}, - dictWord{14, 0, 69}, - dictWord{14, 0, 409}, - dictWord{143, 0, 108}, - dictWord{4, 10, 362}, - dictWord{7, 10, 52}, - dictWord{7, 10, 303}, - dictWord{10, 11, 70}, - dictWord{12, 11, 26}, - dictWord{14, 11, 17}, - dictWord{14, 11, 178}, - dictWord{15, 11, 34}, - dictWord{149, 11, 12}, - dictWord{11, 0, 977}, - dictWord{141, 0, 507}, - dictWord{9, 0, 34}, - dictWord{139, 0, 484}, - dictWord{5, 10, 196}, - dictWord{6, 10, 486}, - dictWord{7, 10, 212}, - dictWord{8, 10, 309}, - dictWord{136, 10, 346}, - dictWord{6, 0, 1700}, - dictWord{7, 0, 26}, - dictWord{7, 0, 293}, - dictWord{7, 0, 382}, - dictWord{7, 0, 1026}, - dictWord{7, 0, 1087}, - dictWord{ - 7, - 0, - 2027, - }, - dictWord{8, 0, 24}, - dictWord{8, 0, 114}, - dictWord{8, 0, 252}, - dictWord{8, 0, 727}, - dictWord{8, 0, 729}, - dictWord{9, 0, 30}, - dictWord{9, 0, 199}, - dictWord{ - 9, - 0, - 231, - }, - dictWord{9, 0, 251}, - dictWord{9, 0, 334}, - dictWord{9, 0, 361}, - dictWord{9, 0, 712}, - dictWord{10, 0, 55}, - dictWord{10, 0, 60}, - dictWord{10, 0, 232}, - dictWord{ - 10, - 0, - 332, - }, - dictWord{10, 0, 384}, - dictWord{10, 0, 396}, - dictWord{10, 0, 504}, - dictWord{10, 0, 542}, - dictWord{10, 0, 652}, - dictWord{11, 0, 20}, - dictWord{11, 0, 48}, - dictWord{11, 0, 207}, - dictWord{11, 0, 291}, - dictWord{11, 0, 298}, - dictWord{11, 0, 342}, - dictWord{11, 0, 365}, - dictWord{11, 0, 394}, - dictWord{11, 0, 620}, - dictWord{11, 0, 705}, - dictWord{11, 0, 1017}, - dictWord{12, 0, 123}, - dictWord{12, 0, 340}, - dictWord{12, 0, 406}, - dictWord{12, 0, 643}, - dictWord{13, 0, 61}, - dictWord{ - 13, - 0, - 269, - }, - dictWord{13, 0, 311}, - dictWord{13, 0, 319}, - dictWord{13, 0, 486}, - dictWord{14, 0, 234}, - dictWord{15, 0, 62}, - dictWord{15, 0, 85}, - dictWord{16, 0, 71}, - dictWord{18, 0, 119}, - dictWord{20, 0, 105}, - dictWord{135, 10, 1912}, - dictWord{4, 11, 71}, - dictWord{5, 11, 376}, - dictWord{7, 11, 119}, - dictWord{138, 11, 665}, - dictWord{10, 0, 918}, - dictWord{10, 0, 926}, - dictWord{4, 10, 686}, - dictWord{136, 11, 55}, - dictWord{138, 10, 625}, - dictWord{136, 10, 706}, - dictWord{ - 132, - 11, - 479, - }, - dictWord{4, 10, 30}, - dictWord{133, 10, 43}, - dictWord{6, 0, 379}, - dictWord{7, 0, 270}, - dictWord{8, 0, 176}, - dictWord{8, 0, 183}, - dictWord{9, 0, 432}, - dictWord{ - 9, - 0, - 661, - }, - dictWord{12, 0, 247}, - dictWord{12, 0, 617}, - dictWord{18, 0, 125}, - dictWord{7, 11, 607}, - dictWord{8, 11, 99}, - dictWord{152, 11, 4}, - dictWord{ - 5, - 0, - 792, - }, - dictWord{133, 0, 900}, - dictWord{4, 11, 612}, - dictWord{133, 11, 561}, - dictWord{4, 11, 41}, - dictWord{4, 10, 220}, - dictWord{5, 11, 74}, - dictWord{ - 7, - 10, - 1535, - }, - dictWord{7, 11, 1627}, - dictWord{11, 11, 871}, - dictWord{140, 11, 619}, - dictWord{135, 0, 1920}, - dictWord{7, 11, 94}, - dictWord{11, 11, 329}, - dictWord{11, 11, 965}, - dictWord{12, 11, 241}, - dictWord{14, 11, 354}, - dictWord{15, 11, 22}, - dictWord{148, 11, 63}, - dictWord{9, 11, 209}, - dictWord{137, 11, 300}, - dictWord{134, 0, 771}, - dictWord{135, 0, 1979}, - dictWord{4, 0, 901}, - dictWord{133, 0, 776}, - dictWord{142, 0, 254}, - dictWord{133, 11, 98}, - dictWord{ - 9, - 11, - 16, - }, - dictWord{141, 11, 386}, - dictWord{133, 11, 984}, - dictWord{4, 11, 182}, - dictWord{6, 11, 205}, - dictWord{135, 11, 220}, - dictWord{7, 10, 1725}, - dictWord{ - 7, - 10, - 1774, - }, - dictWord{138, 10, 393}, - dictWord{5, 10, 263}, - dictWord{134, 10, 414}, - dictWord{4, 11, 42}, - dictWord{9, 11, 205}, - dictWord{9, 11, 786}, - dictWord{138, 11, 659}, - dictWord{14, 0, 140}, - dictWord{148, 0, 41}, - dictWord{8, 0, 440}, - dictWord{10, 0, 359}, - dictWord{6, 10, 178}, - dictWord{6, 11, 289}, - dictWord{ - 6, - 10, - 1750, - }, - dictWord{7, 11, 1670}, - dictWord{9, 10, 690}, - dictWord{10, 10, 155}, - dictWord{10, 10, 373}, - dictWord{11, 10, 698}, - dictWord{12, 11, 57}, - dictWord{13, 10, 155}, - dictWord{20, 10, 93}, - dictWord{151, 11, 4}, - dictWord{4, 0, 37}, - dictWord{5, 0, 334}, - dictWord{7, 0, 1253}, - dictWord{151, 11, 25}, - dictWord{ - 4, - 0, - 508, - }, - dictWord{4, 11, 635}, - dictWord{5, 10, 97}, - dictWord{137, 10, 393}, - dictWord{139, 11, 533}, - dictWord{4, 0, 640}, - dictWord{133, 0, 513}, - dictWord{ - 134, - 10, - 1639, - }, - dictWord{132, 11, 371}, - dictWord{4, 11, 272}, - dictWord{7, 11, 836}, - dictWord{7, 11, 1651}, - dictWord{145, 11, 89}, - dictWord{5, 11, 825}, - dictWord{6, 11, 444}, - dictWord{6, 11, 1640}, - dictWord{136, 11, 308}, - dictWord{4, 10, 191}, - dictWord{7, 10, 934}, - dictWord{8, 10, 647}, - dictWord{145, 10, 97}, - dictWord{12, 0, 246}, - dictWord{15, 0, 162}, - dictWord{19, 0, 64}, - dictWord{20, 0, 8}, - dictWord{20, 0, 95}, - dictWord{22, 0, 24}, - dictWord{152, 0, 17}, - dictWord{4, 0, 533}, - dictWord{5, 10, 165}, - dictWord{9, 10, 346}, - dictWord{138, 10, 655}, - dictWord{5, 11, 737}, - dictWord{139, 10, 885}, - dictWord{133, 10, 877}, - dictWord{ - 8, - 10, - 128, - }, - dictWord{139, 10, 179}, - dictWord{137, 11, 307}, - dictWord{140, 0, 752}, - dictWord{133, 0, 920}, - dictWord{135, 0, 1048}, - dictWord{5, 0, 153}, - dictWord{ - 6, - 0, - 580, - }, - dictWord{6, 10, 1663}, - dictWord{7, 10, 132}, - dictWord{7, 10, 1154}, - dictWord{7, 10, 1415}, - dictWord{7, 10, 1507}, - dictWord{12, 10, 493}, - dictWord{15, 10, 105}, - dictWord{151, 10, 15}, - dictWord{5, 10, 459}, - dictWord{7, 10, 1073}, - dictWord{8, 10, 241}, - dictWord{136, 10, 334}, - dictWord{138, 0, 391}, - dictWord{135, 0, 1952}, - dictWord{133, 11, 525}, - dictWord{8, 11, 641}, - dictWord{11, 11, 388}, - dictWord{140, 11, 580}, - dictWord{142, 0, 126}, - dictWord{ - 134, - 0, - 640, - }, - dictWord{132, 0, 483}, - dictWord{7, 0, 1616}, - dictWord{9, 0, 69}, - dictWord{6, 10, 324}, - dictWord{6, 10, 520}, - dictWord{7, 10, 338}, - dictWord{ - 7, - 10, - 1729, - }, - dictWord{8, 10, 228}, - dictWord{139, 10, 750}, - dictWord{5, 11, 493}, - dictWord{134, 11, 528}, - dictWord{135, 0, 734}, - dictWord{4, 11, 174}, - dictWord{135, 11, 911}, - dictWord{138, 0, 480}, - dictWord{9, 0, 495}, - dictWord{146, 0, 104}, - dictWord{135, 10, 705}, - dictWord{9, 0, 472}, - dictWord{4, 10, 73}, - dictWord{6, 10, 612}, - dictWord{7, 10, 927}, - dictWord{7, 10, 1330}, - dictWord{7, 10, 1822}, - dictWord{8, 10, 217}, - dictWord{9, 10, 765}, - dictWord{9, 10, 766}, - dictWord{10, 10, 408}, - dictWord{11, 10, 51}, - dictWord{11, 10, 793}, - dictWord{12, 10, 266}, - dictWord{15, 10, 158}, - dictWord{20, 10, 89}, - dictWord{150, 10, 32}, - dictWord{7, 11, 548}, - dictWord{137, 11, 58}, - dictWord{4, 11, 32}, - dictWord{5, 11, 215}, - dictWord{6, 11, 269}, - dictWord{7, 11, 1782}, - dictWord{7, 11, 1892}, - dictWord{10, 11, 16}, - dictWord{11, 11, 822}, - dictWord{11, 11, 954}, - dictWord{141, 11, 481}, - dictWord{132, 0, 874}, - dictWord{9, 0, 229}, - dictWord{5, 10, 389}, - dictWord{136, 10, 636}, - dictWord{7, 11, 1749}, - dictWord{136, 11, 477}, - dictWord{134, 0, 948}, - dictWord{5, 11, 308}, - dictWord{135, 11, 1088}, - dictWord{ - 4, - 0, - 748, - }, - dictWord{139, 0, 1009}, - dictWord{136, 10, 21}, - dictWord{6, 0, 555}, - dictWord{135, 0, 485}, - dictWord{5, 11, 126}, - dictWord{8, 11, 297}, - dictWord{ - 9, - 11, - 366, - }, - dictWord{9, 11, 445}, - dictWord{12, 11, 53}, - dictWord{12, 11, 374}, - dictWord{141, 11, 492}, - dictWord{7, 11, 1551}, - dictWord{139, 11, 361}, - dictWord{136, 0, 193}, - dictWord{136, 0, 472}, - dictWord{8, 0, 653}, - dictWord{13, 0, 93}, - dictWord{147, 0, 14}, - dictWord{132, 0, 984}, - dictWord{132, 11, 175}, - dictWord{5, 0, 172}, - dictWord{6, 0, 1971}, - dictWord{132, 11, 685}, - dictWord{149, 11, 8}, - dictWord{133, 11, 797}, - dictWord{13, 0, 83}, - dictWord{5, 10, 189}, - dictWord{ - 7, - 10, - 442, - }, - dictWord{7, 10, 443}, - dictWord{8, 10, 281}, - dictWord{12, 10, 174}, - dictWord{141, 10, 261}, - dictWord{134, 0, 1568}, - dictWord{133, 11, 565}, - dictWord{139, 0, 384}, - dictWord{133, 0, 260}, - dictWord{7, 0, 758}, - dictWord{7, 0, 880}, - dictWord{7, 0, 1359}, - dictWord{9, 0, 164}, - dictWord{9, 0, 167}, - dictWord{ - 10, - 0, - 156, - }, - dictWord{10, 0, 588}, - dictWord{12, 0, 101}, - dictWord{14, 0, 48}, - dictWord{15, 0, 70}, - dictWord{6, 10, 2}, - dictWord{7, 10, 1262}, - dictWord{ - 7, - 10, - 1737, - }, - dictWord{8, 10, 22}, - dictWord{8, 10, 270}, - dictWord{8, 10, 612}, - dictWord{9, 10, 312}, - dictWord{9, 10, 436}, - dictWord{10, 10, 311}, - dictWord{ - 10, - 10, - 623, - }, - dictWord{11, 10, 72}, - dictWord{11, 10, 330}, - dictWord{11, 10, 455}, - dictWord{12, 10, 321}, - dictWord{12, 10, 504}, - dictWord{12, 10, 530}, - dictWord{ - 12, - 10, - 543, - }, - dictWord{13, 10, 17}, - dictWord{13, 10, 156}, - dictWord{13, 10, 334}, - dictWord{17, 10, 60}, - dictWord{148, 10, 64}, - dictWord{4, 11, 252}, - dictWord{ - 7, - 11, - 1068, - }, - dictWord{10, 11, 434}, - dictWord{11, 11, 228}, - dictWord{11, 11, 426}, - dictWord{13, 11, 231}, - dictWord{18, 11, 106}, - dictWord{148, 11, 87}, - dictWord{7, 10, 354}, - dictWord{10, 10, 410}, - dictWord{139, 10, 815}, - dictWord{6, 0, 367}, - dictWord{7, 10, 670}, - dictWord{7, 10, 1327}, - dictWord{8, 10, 411}, - dictWord{8, 10, 435}, - dictWord{9, 10, 653}, - dictWord{9, 10, 740}, - dictWord{10, 10, 385}, - dictWord{11, 10, 222}, - dictWord{11, 10, 324}, - dictWord{11, 10, 829}, - dictWord{140, 10, 611}, - dictWord{7, 0, 1174}, - dictWord{6, 10, 166}, - dictWord{135, 10, 374}, - dictWord{146, 0, 121}, - dictWord{132, 0, 828}, - dictWord{ - 5, - 11, - 231, - }, - dictWord{138, 11, 509}, - dictWord{7, 11, 601}, - dictWord{9, 11, 277}, - dictWord{9, 11, 674}, - dictWord{10, 11, 178}, - dictWord{10, 11, 257}, - dictWord{ - 10, - 11, - 418, - }, - dictWord{11, 11, 531}, - dictWord{11, 11, 544}, - dictWord{11, 11, 585}, - dictWord{12, 11, 113}, - dictWord{12, 11, 475}, - dictWord{13, 11, 99}, - dictWord{142, 11, 428}, - dictWord{134, 0, 1541}, - dictWord{135, 11, 1779}, - dictWord{5, 0, 343}, - dictWord{134, 10, 398}, - dictWord{135, 10, 50}, - dictWord{ - 135, - 11, - 1683, - }, - dictWord{4, 0, 440}, - dictWord{7, 0, 57}, - dictWord{8, 0, 167}, - dictWord{8, 0, 375}, - dictWord{9, 0, 82}, - dictWord{9, 0, 561}, - dictWord{9, 0, 744}, - dictWord{ - 10, - 0, - 620, - }, - dictWord{137, 11, 744}, - dictWord{134, 0, 926}, - dictWord{6, 10, 517}, - dictWord{7, 10, 1159}, - dictWord{10, 10, 621}, - dictWord{139, 10, 192}, - dictWord{137, 0, 827}, - dictWord{8, 0, 194}, - dictWord{136, 0, 756}, - dictWord{10, 10, 223}, - dictWord{139, 10, 645}, - dictWord{7, 10, 64}, - dictWord{ - 136, - 10, - 245, - }, - dictWord{4, 11, 399}, - dictWord{5, 11, 119}, - dictWord{5, 11, 494}, - dictWord{7, 11, 751}, - dictWord{137, 11, 556}, - dictWord{132, 0, 808}, - dictWord{ - 135, - 0, - 22, - }, - dictWord{7, 10, 1763}, - dictWord{140, 10, 310}, - dictWord{5, 0, 639}, - dictWord{7, 0, 1249}, - dictWord{11, 0, 896}, - dictWord{134, 11, 584}, - dictWord{ - 134, - 0, - 1614, - }, - dictWord{135, 0, 860}, - dictWord{135, 11, 1121}, - dictWord{5, 10, 129}, - dictWord{6, 10, 61}, - dictWord{135, 10, 947}, - dictWord{4, 0, 102}, - dictWord{ - 7, - 0, - 815, - }, - dictWord{7, 0, 1699}, - dictWord{139, 0, 964}, - dictWord{13, 10, 505}, - dictWord{141, 10, 506}, - dictWord{139, 10, 1000}, - dictWord{ - 132, - 11, - 679, - }, - dictWord{132, 0, 899}, - dictWord{132, 0, 569}, - dictWord{5, 11, 694}, - dictWord{137, 11, 714}, - dictWord{136, 0, 795}, - dictWord{6, 0, 2045}, - dictWord{ - 139, - 11, - 7, - }, - dictWord{6, 0, 52}, - dictWord{9, 0, 104}, - dictWord{9, 0, 559}, - dictWord{12, 0, 308}, - dictWord{147, 0, 87}, - dictWord{4, 0, 301}, - dictWord{132, 0, 604}, - dictWord{133, 10, 637}, - dictWord{136, 0, 779}, - dictWord{5, 11, 143}, - dictWord{5, 11, 769}, - dictWord{6, 11, 1760}, - dictWord{7, 11, 682}, - dictWord{7, 11, 1992}, - dictWord{136, 11, 736}, - dictWord{137, 10, 590}, - dictWord{147, 0, 32}, - dictWord{137, 11, 527}, - dictWord{5, 10, 280}, - dictWord{135, 10, 1226}, - dictWord{134, 0, 494}, - dictWord{6, 0, 677}, - dictWord{6, 0, 682}, - dictWord{134, 0, 1044}, - dictWord{133, 10, 281}, - dictWord{135, 10, 1064}, - dictWord{7, 0, 508}, - dictWord{133, 11, 860}, - dictWord{6, 11, 422}, - dictWord{7, 11, 0}, - dictWord{7, 11, 1544}, - dictWord{9, 11, 577}, - dictWord{11, 11, 990}, - dictWord{12, 11, 141}, - dictWord{12, 11, 453}, - dictWord{13, 11, 47}, - dictWord{141, 11, 266}, - dictWord{134, 0, 1014}, - dictWord{5, 11, 515}, - dictWord{137, 11, 131}, - dictWord{ - 134, - 0, - 957, - }, - dictWord{132, 11, 646}, - dictWord{6, 0, 310}, - dictWord{7, 0, 1849}, - dictWord{8, 0, 72}, - dictWord{8, 0, 272}, - dictWord{8, 0, 431}, - dictWord{9, 0, 12}, - dictWord{ - 9, - 0, - 376, - }, - dictWord{10, 0, 563}, - dictWord{10, 0, 630}, - dictWord{10, 0, 796}, - dictWord{10, 0, 810}, - dictWord{11, 0, 367}, - dictWord{11, 0, 599}, - dictWord{ - 11, - 0, - 686, - }, - dictWord{140, 0, 672}, - dictWord{7, 0, 570}, - dictWord{4, 11, 396}, - dictWord{7, 10, 120}, - dictWord{7, 11, 728}, - dictWord{8, 10, 489}, - dictWord{9, 11, 117}, - dictWord{9, 10, 319}, - dictWord{10, 10, 820}, - dictWord{11, 10, 1004}, - dictWord{12, 10, 379}, - dictWord{12, 10, 679}, - dictWord{13, 10, 117}, - dictWord{ - 13, - 11, - 202, - }, - dictWord{13, 10, 412}, - dictWord{14, 10, 25}, - dictWord{15, 10, 52}, - dictWord{15, 10, 161}, - dictWord{16, 10, 47}, - dictWord{20, 11, 51}, - dictWord{ - 149, - 10, - 2, - }, - dictWord{6, 11, 121}, - dictWord{6, 11, 124}, - dictWord{6, 11, 357}, - dictWord{7, 11, 1138}, - dictWord{7, 11, 1295}, - dictWord{8, 11, 162}, - dictWord{ - 139, - 11, - 655, - }, - dictWord{8, 0, 449}, - dictWord{4, 10, 937}, - dictWord{5, 10, 801}, - dictWord{136, 11, 449}, - dictWord{139, 11, 958}, - dictWord{6, 0, 181}, - dictWord{ - 7, - 0, - 537, - }, - dictWord{8, 0, 64}, - dictWord{9, 0, 127}, - dictWord{10, 0, 496}, - dictWord{12, 0, 510}, - dictWord{141, 0, 384}, - dictWord{138, 11, 253}, - dictWord{4, 0, 244}, - dictWord{135, 0, 233}, - dictWord{133, 11, 237}, - dictWord{132, 10, 365}, - dictWord{6, 0, 1650}, - dictWord{10, 0, 702}, - dictWord{139, 0, 245}, - dictWord{ - 5, - 10, - 7, - }, - dictWord{139, 10, 774}, - dictWord{13, 0, 463}, - dictWord{20, 0, 49}, - dictWord{13, 11, 463}, - dictWord{148, 11, 49}, - dictWord{4, 10, 734}, - dictWord{ - 5, - 10, - 662, - }, - dictWord{134, 10, 430}, - dictWord{4, 10, 746}, - dictWord{135, 10, 1090}, - dictWord{5, 10, 360}, - dictWord{136, 10, 237}, - dictWord{137, 0, 338}, - dictWord{143, 11, 10}, - dictWord{7, 11, 571}, - dictWord{138, 11, 366}, - dictWord{134, 0, 1279}, - dictWord{9, 11, 513}, - dictWord{10, 11, 22}, - dictWord{10, 11, 39}, - dictWord{12, 11, 122}, - dictWord{140, 11, 187}, - dictWord{133, 0, 896}, - dictWord{146, 0, 178}, - dictWord{134, 0, 695}, - dictWord{137, 0, 808}, - dictWord{ - 134, - 11, - 587, - }, - dictWord{7, 11, 107}, - dictWord{7, 11, 838}, - dictWord{8, 11, 550}, - dictWord{138, 11, 401}, - dictWord{7, 0, 1117}, - dictWord{136, 0, 539}, - dictWord{ - 4, - 10, - 277, - }, - dictWord{5, 10, 608}, - dictWord{6, 10, 493}, - dictWord{7, 10, 457}, - dictWord{140, 10, 384}, - dictWord{133, 11, 768}, - dictWord{12, 0, 257}, - dictWord{ - 7, - 10, - 27, - }, - dictWord{135, 10, 316}, - dictWord{140, 0, 1003}, - dictWord{4, 0, 207}, - dictWord{5, 0, 586}, - dictWord{5, 0, 676}, - dictWord{6, 0, 448}, - dictWord{ - 8, - 0, - 244, - }, - dictWord{11, 0, 1}, - dictWord{13, 0, 3}, - dictWord{16, 0, 54}, - dictWord{17, 0, 4}, - dictWord{18, 0, 13}, - dictWord{133, 10, 552}, - dictWord{4, 10, 401}, - dictWord{ - 137, - 10, - 264, - }, - dictWord{5, 0, 516}, - dictWord{7, 0, 1883}, - dictWord{135, 11, 1883}, - dictWord{12, 0, 960}, - dictWord{132, 11, 894}, - dictWord{5, 0, 4}, - dictWord{ - 5, - 0, - 810, - }, - dictWord{6, 0, 13}, - dictWord{6, 0, 538}, - dictWord{6, 0, 1690}, - dictWord{6, 0, 1726}, - dictWord{7, 0, 499}, - dictWord{7, 0, 1819}, - dictWord{8, 0, 148}, - dictWord{ - 8, - 0, - 696, - }, - dictWord{8, 0, 791}, - dictWord{12, 0, 125}, - dictWord{143, 0, 9}, - dictWord{135, 0, 1268}, - dictWord{11, 0, 30}, - dictWord{14, 0, 315}, - dictWord{ - 9, - 10, - 543, - }, - dictWord{10, 10, 524}, - dictWord{12, 10, 524}, - dictWord{16, 10, 18}, - dictWord{20, 10, 26}, - dictWord{148, 10, 65}, - dictWord{6, 0, 748}, - dictWord{ - 4, - 10, - 205, - }, - dictWord{5, 10, 623}, - dictWord{7, 10, 104}, - dictWord{136, 10, 519}, - dictWord{11, 0, 542}, - dictWord{139, 0, 852}, - dictWord{140, 0, 6}, - dictWord{ - 132, - 0, - 848, - }, - dictWord{7, 0, 1385}, - dictWord{11, 0, 582}, - dictWord{11, 0, 650}, - dictWord{11, 0, 901}, - dictWord{11, 0, 949}, - dictWord{12, 0, 232}, - dictWord{12, 0, 236}, - dictWord{13, 0, 413}, - dictWord{13, 0, 501}, - dictWord{18, 0, 116}, - dictWord{7, 10, 579}, - dictWord{9, 10, 41}, - dictWord{9, 10, 244}, - dictWord{9, 10, 669}, - dictWord{10, 10, 5}, - dictWord{11, 10, 861}, - dictWord{11, 10, 951}, - dictWord{139, 10, 980}, - dictWord{4, 0, 945}, - dictWord{6, 0, 1811}, - dictWord{6, 0, 1845}, - dictWord{ - 6, - 0, - 1853, - }, - dictWord{6, 0, 1858}, - dictWord{8, 0, 862}, - dictWord{12, 0, 782}, - dictWord{12, 0, 788}, - dictWord{18, 0, 160}, - dictWord{148, 0, 117}, - dictWord{ - 132, - 10, - 717, - }, - dictWord{4, 0, 925}, - dictWord{5, 0, 803}, - dictWord{8, 0, 698}, - dictWord{138, 0, 828}, - dictWord{134, 0, 1416}, - dictWord{132, 0, 610}, - dictWord{ - 139, - 0, - 992, - }, - dictWord{6, 0, 878}, - dictWord{134, 0, 1477}, - dictWord{135, 0, 1847}, - dictWord{138, 11, 531}, - dictWord{137, 11, 539}, - dictWord{134, 11, 272}, - dictWord{133, 0, 383}, - dictWord{134, 0, 1404}, - dictWord{132, 10, 489}, - dictWord{4, 11, 9}, - dictWord{5, 11, 128}, - dictWord{7, 11, 368}, - dictWord{ - 11, - 11, - 480, - }, - dictWord{148, 11, 3}, - dictWord{136, 0, 986}, - dictWord{9, 0, 660}, - dictWord{138, 0, 347}, - dictWord{135, 10, 892}, - dictWord{136, 11, 682}, - dictWord{ - 7, - 0, - 572, - }, - dictWord{9, 0, 592}, - dictWord{11, 0, 680}, - dictWord{12, 0, 356}, - dictWord{140, 0, 550}, - dictWord{7, 0, 1411}, - dictWord{138, 11, 527}, - dictWord{ - 4, - 11, - 2, - }, - dictWord{7, 11, 545}, - dictWord{135, 11, 894}, - dictWord{137, 10, 473}, - dictWord{11, 0, 64}, - dictWord{7, 11, 481}, - dictWord{7, 10, 819}, - dictWord{9, 10, 26}, - dictWord{9, 10, 392}, - dictWord{9, 11, 792}, - dictWord{10, 10, 152}, - dictWord{10, 10, 226}, - dictWord{12, 10, 276}, - dictWord{12, 10, 426}, - dictWord{ - 12, - 10, - 589, - }, - dictWord{13, 10, 460}, - dictWord{15, 10, 97}, - dictWord{19, 10, 48}, - dictWord{148, 10, 104}, - dictWord{135, 10, 51}, - dictWord{136, 11, 445}, - dictWord{136, 11, 646}, - dictWord{135, 0, 606}, - dictWord{132, 10, 674}, - dictWord{6, 0, 1829}, - dictWord{134, 0, 1830}, - dictWord{132, 10, 770}, - dictWord{ - 5, - 10, - 79, - }, - dictWord{7, 10, 1027}, - dictWord{7, 10, 1477}, - dictWord{139, 10, 52}, - dictWord{5, 11, 530}, - dictWord{142, 11, 113}, - dictWord{134, 10, 1666}, - dictWord{ - 7, - 0, - 748, - }, - dictWord{139, 0, 700}, - dictWord{134, 10, 195}, - dictWord{133, 10, 789}, - dictWord{9, 0, 87}, - dictWord{10, 0, 365}, - dictWord{4, 10, 251}, - dictWord{ - 4, - 10, - 688, - }, - dictWord{7, 10, 513}, - dictWord{135, 10, 1284}, - dictWord{136, 11, 111}, - dictWord{133, 0, 127}, - dictWord{6, 0, 198}, - dictWord{140, 0, 83}, - dictWord{133, 11, 556}, - dictWord{133, 10, 889}, - dictWord{4, 10, 160}, - dictWord{5, 10, 330}, - dictWord{7, 10, 1434}, - dictWord{136, 10, 174}, - dictWord{5, 0, 276}, - dictWord{6, 0, 55}, - dictWord{7, 0, 1369}, - dictWord{138, 0, 864}, - dictWord{8, 11, 16}, - dictWord{140, 11, 568}, - dictWord{6, 0, 1752}, - dictWord{136, 0, 726}, - dictWord{135, 0, 1066}, - dictWord{133, 0, 764}, - dictWord{6, 11, 186}, - dictWord{137, 11, 426}, - dictWord{11, 0, 683}, - dictWord{139, 11, 683}, - dictWord{ - 6, - 0, - 309, - }, - dictWord{7, 0, 331}, - dictWord{138, 0, 550}, - dictWord{133, 10, 374}, - dictWord{6, 0, 1212}, - dictWord{6, 0, 1852}, - dictWord{7, 0, 1062}, - dictWord{ - 8, - 0, - 874, - }, - dictWord{8, 0, 882}, - dictWord{138, 0, 936}, - dictWord{132, 11, 585}, - dictWord{134, 0, 1364}, - dictWord{7, 0, 986}, - dictWord{133, 10, 731}, - dictWord{ - 6, - 0, - 723, - }, - dictWord{6, 0, 1408}, - dictWord{138, 0, 381}, - dictWord{135, 0, 1573}, - dictWord{134, 0, 1025}, - dictWord{4, 10, 626}, - dictWord{5, 10, 642}, - dictWord{ - 6, - 10, - 425, - }, - dictWord{10, 10, 202}, - dictWord{139, 10, 141}, - dictWord{4, 11, 93}, - dictWord{5, 11, 252}, - dictWord{6, 11, 229}, - dictWord{7, 11, 291}, - dictWord{ - 9, - 11, - 550, - }, - dictWord{139, 11, 644}, - dictWord{137, 11, 749}, - dictWord{137, 11, 162}, - dictWord{132, 11, 381}, - dictWord{135, 0, 1559}, - dictWord{ - 6, - 0, - 194, - }, - dictWord{7, 0, 133}, - dictWord{10, 0, 493}, - dictWord{10, 0, 570}, - dictWord{139, 0, 664}, - dictWord{5, 0, 24}, - dictWord{5, 0, 569}, - dictWord{6, 0, 3}, - dictWord{ - 6, - 0, - 119, - }, - dictWord{6, 0, 143}, - dictWord{6, 0, 440}, - dictWord{7, 0, 295}, - dictWord{7, 0, 599}, - dictWord{7, 0, 1686}, - dictWord{7, 0, 1854}, - dictWord{8, 0, 424}, - dictWord{ - 9, - 0, - 43, - }, - dictWord{9, 0, 584}, - dictWord{9, 0, 760}, - dictWord{10, 0, 148}, - dictWord{10, 0, 328}, - dictWord{11, 0, 159}, - dictWord{11, 0, 253}, - dictWord{11, 0, 506}, - dictWord{12, 0, 487}, - dictWord{140, 0, 531}, - dictWord{6, 0, 661}, - dictWord{134, 0, 1517}, - dictWord{136, 10, 835}, - dictWord{151, 10, 17}, - dictWord{5, 0, 14}, - dictWord{5, 0, 892}, - dictWord{6, 0, 283}, - dictWord{7, 0, 234}, - dictWord{136, 0, 537}, - dictWord{139, 0, 541}, - dictWord{4, 0, 126}, - dictWord{8, 0, 635}, - dictWord{ - 147, - 0, - 34, - }, - dictWord{4, 0, 316}, - dictWord{4, 0, 495}, - dictWord{135, 0, 1561}, - dictWord{4, 11, 187}, - dictWord{5, 11, 184}, - dictWord{5, 11, 690}, - dictWord{ - 7, - 11, - 1869, - }, - dictWord{138, 11, 756}, - dictWord{139, 11, 783}, - dictWord{4, 0, 998}, - dictWord{137, 0, 861}, - dictWord{136, 0, 1009}, - dictWord{139, 11, 292}, - dictWord{5, 11, 21}, - dictWord{6, 11, 77}, - dictWord{6, 11, 157}, - dictWord{7, 11, 974}, - dictWord{7, 11, 1301}, - dictWord{7, 11, 1339}, - dictWord{7, 11, 1490}, - dictWord{ - 7, - 11, - 1873, - }, - dictWord{137, 11, 628}, - dictWord{7, 11, 1283}, - dictWord{9, 11, 227}, - dictWord{9, 11, 499}, - dictWord{10, 11, 341}, - dictWord{11, 11, 325}, - dictWord{11, 11, 408}, - dictWord{14, 11, 180}, - dictWord{15, 11, 144}, - dictWord{18, 11, 47}, - dictWord{147, 11, 49}, - dictWord{4, 0, 64}, - dictWord{5, 0, 352}, - dictWord{5, 0, 720}, - dictWord{6, 0, 368}, - dictWord{139, 0, 359}, - dictWord{5, 10, 384}, - dictWord{8, 10, 455}, - dictWord{140, 10, 48}, - dictWord{5, 10, 264}, - dictWord{ - 134, - 10, - 184, - }, - dictWord{7, 0, 1577}, - dictWord{10, 0, 304}, - dictWord{10, 0, 549}, - dictWord{12, 0, 365}, - dictWord{13, 0, 220}, - dictWord{13, 0, 240}, - dictWord{ - 142, - 0, - 33, - }, - dictWord{134, 0, 1107}, - dictWord{134, 0, 929}, - dictWord{135, 0, 1142}, - dictWord{6, 0, 175}, - dictWord{137, 0, 289}, - dictWord{5, 0, 432}, - dictWord{ - 133, - 0, - 913, - }, - dictWord{6, 0, 279}, - dictWord{7, 0, 219}, - dictWord{5, 10, 633}, - dictWord{135, 10, 1323}, - dictWord{7, 0, 785}, - dictWord{7, 10, 359}, - dictWord{ - 8, - 10, - 243, - }, - dictWord{140, 10, 175}, - dictWord{139, 0, 595}, - dictWord{132, 10, 105}, - dictWord{8, 11, 398}, - dictWord{9, 11, 681}, - dictWord{139, 11, 632}, - dictWord{140, 0, 80}, - dictWord{5, 0, 931}, - dictWord{134, 0, 1698}, - dictWord{142, 11, 241}, - dictWord{134, 11, 20}, - dictWord{134, 0, 1323}, - dictWord{11, 0, 526}, - dictWord{11, 0, 939}, - dictWord{141, 0, 290}, - dictWord{5, 0, 774}, - dictWord{6, 0, 780}, - dictWord{6, 0, 1637}, - dictWord{6, 0, 1686}, - dictWord{6, 0, 1751}, - dictWord{ - 8, - 0, - 559, - }, - dictWord{141, 0, 109}, - dictWord{141, 0, 127}, - dictWord{7, 0, 1167}, - dictWord{11, 0, 934}, - dictWord{13, 0, 391}, - dictWord{17, 0, 76}, - dictWord{ - 135, - 11, - 709, - }, - dictWord{135, 0, 963}, - dictWord{6, 0, 260}, - dictWord{135, 0, 1484}, - dictWord{134, 0, 573}, - dictWord{4, 10, 758}, - dictWord{139, 11, 941}, - dictWord{135, 10, 1649}, - dictWord{145, 11, 36}, - dictWord{4, 0, 292}, - dictWord{137, 0, 580}, - dictWord{4, 0, 736}, - dictWord{5, 0, 871}, - dictWord{6, 0, 1689}, - dictWord{135, 0, 1944}, - dictWord{7, 11, 945}, - dictWord{11, 11, 713}, - dictWord{139, 11, 744}, - dictWord{134, 0, 1164}, - dictWord{135, 11, 937}, - dictWord{ - 6, - 0, - 1922, - }, - dictWord{9, 0, 982}, - dictWord{15, 0, 173}, - dictWord{15, 0, 178}, - dictWord{15, 0, 200}, - dictWord{18, 0, 189}, - dictWord{18, 0, 207}, - dictWord{21, 0, 47}, - dictWord{135, 11, 1652}, - dictWord{7, 0, 1695}, - dictWord{139, 10, 128}, - dictWord{6, 0, 63}, - dictWord{135, 0, 920}, - dictWord{133, 0, 793}, - dictWord{ - 143, - 11, - 134, - }, - dictWord{133, 10, 918}, - dictWord{5, 0, 67}, - dictWord{6, 0, 62}, - dictWord{6, 0, 374}, - dictWord{135, 0, 1391}, - dictWord{9, 0, 790}, - dictWord{12, 0, 47}, - dictWord{4, 11, 579}, - dictWord{5, 11, 226}, - dictWord{5, 11, 323}, - dictWord{135, 11, 960}, - dictWord{10, 11, 784}, - dictWord{141, 11, 191}, - dictWord{4, 0, 391}, - dictWord{135, 0, 1169}, - dictWord{137, 0, 443}, - dictWord{13, 11, 232}, - dictWord{146, 11, 35}, - dictWord{132, 10, 340}, - dictWord{132, 0, 271}, - dictWord{ - 137, - 11, - 313, - }, - dictWord{5, 11, 973}, - dictWord{137, 11, 659}, - dictWord{134, 0, 1140}, - dictWord{6, 11, 135}, - dictWord{135, 11, 1176}, - dictWord{4, 0, 253}, - dictWord{5, 0, 544}, - dictWord{7, 0, 300}, - dictWord{137, 0, 340}, - dictWord{7, 0, 897}, - dictWord{5, 10, 985}, - dictWord{7, 10, 509}, - dictWord{145, 10, 96}, - dictWord{ - 138, - 11, - 735, - }, - dictWord{135, 10, 1919}, - dictWord{138, 0, 890}, - dictWord{5, 0, 818}, - dictWord{134, 0, 1122}, - dictWord{5, 0, 53}, - dictWord{5, 0, 541}, - dictWord{ - 6, - 0, - 94, - }, - dictWord{6, 0, 499}, - dictWord{7, 0, 230}, - dictWord{139, 0, 321}, - dictWord{4, 0, 920}, - dictWord{5, 0, 25}, - dictWord{5, 0, 790}, - dictWord{6, 0, 457}, - dictWord{ - 7, - 0, - 853, - }, - dictWord{8, 0, 788}, - dictWord{142, 11, 31}, - dictWord{132, 10, 247}, - dictWord{135, 11, 314}, - dictWord{132, 0, 468}, - dictWord{7, 0, 243}, - dictWord{ - 6, - 10, - 337, - }, - dictWord{7, 10, 494}, - dictWord{8, 10, 27}, - dictWord{8, 10, 599}, - dictWord{138, 10, 153}, - dictWord{4, 10, 184}, - dictWord{5, 10, 390}, - dictWord{ - 7, - 10, - 618, - }, - dictWord{7, 10, 1456}, - dictWord{139, 10, 710}, - dictWord{134, 0, 870}, - dictWord{134, 0, 1238}, - dictWord{134, 0, 1765}, - dictWord{10, 0, 853}, - dictWord{10, 0, 943}, - dictWord{14, 0, 437}, - dictWord{14, 0, 439}, - dictWord{14, 0, 443}, - dictWord{14, 0, 446}, - dictWord{14, 0, 452}, - dictWord{14, 0, 469}, - dictWord{ - 14, - 0, - 471, - }, - dictWord{14, 0, 473}, - dictWord{16, 0, 93}, - dictWord{16, 0, 102}, - dictWord{16, 0, 110}, - dictWord{148, 0, 121}, - dictWord{4, 0, 605}, - dictWord{ - 7, - 0, - 518, - }, - dictWord{7, 0, 1282}, - dictWord{7, 0, 1918}, - dictWord{10, 0, 180}, - dictWord{139, 0, 218}, - dictWord{133, 0, 822}, - dictWord{4, 0, 634}, - dictWord{ - 11, - 0, - 916, - }, - dictWord{142, 0, 419}, - dictWord{6, 11, 281}, - dictWord{7, 11, 6}, - dictWord{8, 11, 282}, - dictWord{8, 11, 480}, - dictWord{8, 11, 499}, - dictWord{9, 11, 198}, - dictWord{10, 11, 143}, - dictWord{10, 11, 169}, - dictWord{10, 11, 211}, - dictWord{10, 11, 417}, - dictWord{10, 11, 574}, - dictWord{11, 11, 147}, - dictWord{ - 11, - 11, - 395, - }, - dictWord{12, 11, 75}, - dictWord{12, 11, 407}, - dictWord{12, 11, 608}, - dictWord{13, 11, 500}, - dictWord{142, 11, 251}, - dictWord{134, 0, 898}, - dictWord{ - 6, - 0, - 36, - }, - dictWord{7, 0, 658}, - dictWord{8, 0, 454}, - dictWord{150, 11, 48}, - dictWord{133, 11, 674}, - dictWord{135, 11, 1776}, - dictWord{4, 11, 419}, - dictWord{ - 10, - 10, - 227, - }, - dictWord{11, 10, 497}, - dictWord{11, 10, 709}, - dictWord{140, 10, 415}, - dictWord{6, 10, 360}, - dictWord{7, 10, 1664}, - dictWord{136, 10, 478}, - dictWord{137, 0, 806}, - dictWord{12, 11, 508}, - dictWord{14, 11, 102}, - dictWord{14, 11, 226}, - dictWord{144, 11, 57}, - dictWord{135, 11, 1123}, - dictWord{ - 4, - 11, - 138, - }, - dictWord{7, 11, 1012}, - dictWord{7, 11, 1280}, - dictWord{137, 11, 76}, - dictWord{5, 11, 29}, - dictWord{140, 11, 638}, - dictWord{136, 10, 699}, - dictWord{134, 0, 1326}, - dictWord{132, 0, 104}, - dictWord{135, 11, 735}, - dictWord{132, 10, 739}, - dictWord{134, 0, 1331}, - dictWord{7, 0, 260}, - dictWord{ - 135, - 11, - 260, - }, - dictWord{135, 11, 1063}, - dictWord{7, 0, 45}, - dictWord{9, 0, 542}, - dictWord{9, 0, 566}, - dictWord{10, 0, 728}, - dictWord{137, 10, 869}, - dictWord{ - 4, - 10, - 67, - }, - dictWord{5, 10, 422}, - dictWord{7, 10, 1037}, - dictWord{7, 10, 1289}, - dictWord{7, 10, 1555}, - dictWord{9, 10, 741}, - dictWord{145, 10, 108}, - dictWord{ - 139, - 0, - 263, - }, - dictWord{134, 0, 1516}, - dictWord{14, 0, 146}, - dictWord{15, 0, 42}, - dictWord{16, 0, 23}, - dictWord{17, 0, 86}, - dictWord{146, 0, 17}, - dictWord{ - 138, - 0, - 468, - }, - dictWord{136, 0, 1005}, - dictWord{4, 11, 17}, - dictWord{5, 11, 23}, - dictWord{7, 11, 995}, - dictWord{11, 11, 383}, - dictWord{11, 11, 437}, - dictWord{ - 12, - 11, - 460, - }, - dictWord{140, 11, 532}, - dictWord{7, 0, 87}, - dictWord{142, 0, 288}, - dictWord{138, 10, 96}, - dictWord{135, 11, 626}, - dictWord{144, 10, 26}, - dictWord{ - 7, - 0, - 988, - }, - dictWord{7, 0, 1939}, - dictWord{9, 0, 64}, - dictWord{9, 0, 502}, - dictWord{12, 0, 22}, - dictWord{12, 0, 34}, - dictWord{13, 0, 12}, - dictWord{13, 0, 234}, - dictWord{147, 0, 77}, - dictWord{13, 0, 133}, - dictWord{8, 10, 203}, - dictWord{11, 10, 823}, - dictWord{11, 10, 846}, - dictWord{12, 10, 482}, - dictWord{13, 10, 277}, - dictWord{13, 10, 302}, - dictWord{13, 10, 464}, - dictWord{14, 10, 205}, - dictWord{142, 10, 221}, - dictWord{4, 10, 449}, - dictWord{133, 10, 718}, - dictWord{ - 135, - 0, - 141, - }, - dictWord{6, 0, 1842}, - dictWord{136, 0, 872}, - dictWord{8, 11, 70}, - dictWord{12, 11, 171}, - dictWord{141, 11, 272}, - dictWord{4, 10, 355}, - dictWord{ - 6, - 10, - 311, - }, - dictWord{9, 10, 256}, - dictWord{138, 10, 404}, - dictWord{132, 0, 619}, - dictWord{137, 0, 261}, - dictWord{10, 11, 233}, - dictWord{10, 10, 758}, - dictWord{139, 11, 76}, - dictWord{5, 0, 246}, - dictWord{8, 0, 189}, - dictWord{9, 0, 355}, - dictWord{9, 0, 512}, - dictWord{10, 0, 124}, - dictWord{10, 0, 453}, - dictWord{ - 11, - 0, - 143, - }, - dictWord{11, 0, 416}, - dictWord{11, 0, 859}, - dictWord{141, 0, 341}, - dictWord{134, 11, 442}, - dictWord{133, 10, 827}, - dictWord{5, 10, 64}, - dictWord{ - 140, - 10, - 581, - }, - dictWord{4, 10, 442}, - dictWord{7, 10, 1047}, - dictWord{7, 10, 1352}, - dictWord{135, 10, 1643}, - dictWord{134, 11, 1709}, - dictWord{5, 0, 678}, - dictWord{6, 0, 305}, - dictWord{7, 0, 775}, - dictWord{7, 0, 1065}, - dictWord{133, 10, 977}, - dictWord{11, 11, 69}, - dictWord{12, 11, 105}, - dictWord{12, 11, 117}, - dictWord{13, 11, 213}, - dictWord{14, 11, 13}, - dictWord{14, 11, 62}, - dictWord{14, 11, 177}, - dictWord{14, 11, 421}, - dictWord{15, 11, 19}, - dictWord{146, 11, 141}, - dictWord{137, 11, 309}, - dictWord{5, 0, 35}, - dictWord{7, 0, 862}, - dictWord{7, 0, 1886}, - dictWord{138, 0, 179}, - dictWord{136, 0, 285}, - dictWord{132, 0, 517}, - dictWord{7, 11, 976}, - dictWord{9, 11, 146}, - dictWord{10, 11, 206}, - dictWord{10, 11, 596}, - dictWord{13, 11, 218}, - dictWord{142, 11, 153}, - dictWord{ - 132, - 10, - 254, - }, - dictWord{6, 0, 214}, - dictWord{12, 0, 540}, - dictWord{4, 10, 275}, - dictWord{7, 10, 1219}, - dictWord{140, 10, 376}, - dictWord{8, 0, 667}, - dictWord{ - 11, - 0, - 403, - }, - dictWord{146, 0, 83}, - dictWord{12, 0, 74}, - dictWord{10, 11, 648}, - dictWord{11, 11, 671}, - dictWord{143, 11, 46}, - dictWord{135, 0, 125}, - dictWord{ - 134, - 10, - 1753, - }, - dictWord{133, 0, 761}, - dictWord{6, 0, 912}, - dictWord{4, 11, 518}, - dictWord{6, 10, 369}, - dictWord{6, 10, 502}, - dictWord{7, 10, 1036}, - dictWord{ - 7, - 11, - 1136, - }, - dictWord{8, 10, 348}, - dictWord{9, 10, 452}, - dictWord{10, 10, 26}, - dictWord{11, 10, 224}, - dictWord{11, 10, 387}, - dictWord{11, 10, 772}, - dictWord{12, 10, 95}, - dictWord{12, 10, 629}, - dictWord{13, 10, 195}, - dictWord{13, 10, 207}, - dictWord{13, 10, 241}, - dictWord{14, 10, 260}, - dictWord{14, 10, 270}, - dictWord{143, 10, 140}, - dictWord{10, 0, 131}, - dictWord{140, 0, 72}, - dictWord{132, 10, 269}, - dictWord{5, 10, 480}, - dictWord{7, 10, 532}, - dictWord{ - 7, - 10, - 1197, - }, - dictWord{7, 10, 1358}, - dictWord{8, 10, 291}, - dictWord{11, 10, 349}, - dictWord{142, 10, 396}, - dictWord{8, 11, 689}, - dictWord{137, 11, 863}, - dictWord{ - 8, - 0, - 333, - }, - dictWord{138, 0, 182}, - dictWord{4, 11, 18}, - dictWord{7, 11, 145}, - dictWord{7, 11, 444}, - dictWord{7, 11, 1278}, - dictWord{8, 11, 49}, - dictWord{ - 8, - 11, - 400, - }, - dictWord{9, 11, 71}, - dictWord{9, 11, 250}, - dictWord{10, 11, 459}, - dictWord{12, 11, 160}, - dictWord{144, 11, 24}, - dictWord{14, 11, 35}, - dictWord{ - 142, - 11, - 191, - }, - dictWord{135, 11, 1864}, - dictWord{135, 0, 1338}, - dictWord{148, 10, 15}, - dictWord{14, 0, 94}, - dictWord{15, 0, 65}, - dictWord{16, 0, 4}, - dictWord{ - 16, - 0, - 77, - }, - dictWord{16, 0, 80}, - dictWord{145, 0, 5}, - dictWord{12, 11, 82}, - dictWord{143, 11, 36}, - dictWord{133, 11, 1010}, - dictWord{133, 0, 449}, - dictWord{ - 133, - 0, - 646, - }, - dictWord{7, 0, 86}, - dictWord{8, 0, 103}, - dictWord{135, 10, 657}, - dictWord{7, 0, 2028}, - dictWord{138, 0, 641}, - dictWord{136, 10, 533}, - dictWord{ - 134, - 0, - 1, - }, - dictWord{139, 11, 970}, - dictWord{5, 11, 87}, - dictWord{7, 11, 313}, - dictWord{7, 11, 1103}, - dictWord{10, 11, 112}, - dictWord{10, 11, 582}, - dictWord{ - 11, - 11, - 389, - }, - dictWord{11, 11, 813}, - dictWord{12, 11, 385}, - dictWord{13, 11, 286}, - dictWord{14, 11, 124}, - dictWord{146, 11, 108}, - dictWord{6, 0, 869}, - dictWord{ - 132, - 11, - 267, - }, - dictWord{6, 0, 277}, - dictWord{7, 0, 1274}, - dictWord{7, 0, 1386}, - dictWord{146, 0, 87}, - dictWord{6, 0, 187}, - dictWord{7, 0, 39}, - dictWord{7, 0, 1203}, - dictWord{8, 0, 380}, - dictWord{14, 0, 117}, - dictWord{149, 0, 28}, - dictWord{4, 10, 211}, - dictWord{4, 10, 332}, - dictWord{5, 10, 335}, - dictWord{6, 10, 238}, - dictWord{ - 7, - 10, - 269, - }, - dictWord{7, 10, 811}, - dictWord{7, 10, 1797}, - dictWord{8, 10, 836}, - dictWord{9, 10, 507}, - dictWord{141, 10, 242}, - dictWord{4, 0, 785}, - dictWord{ - 5, - 0, - 368, - }, - dictWord{6, 0, 297}, - dictWord{7, 0, 793}, - dictWord{139, 0, 938}, - dictWord{7, 0, 464}, - dictWord{8, 0, 558}, - dictWord{11, 0, 105}, - dictWord{12, 0, 231}, - dictWord{14, 0, 386}, - dictWord{15, 0, 102}, - dictWord{148, 0, 75}, - dictWord{133, 10, 1009}, - dictWord{8, 0, 877}, - dictWord{140, 0, 731}, - dictWord{ - 139, - 11, - 289, - }, - dictWord{10, 11, 249}, - dictWord{139, 11, 209}, - dictWord{132, 11, 561}, - dictWord{134, 0, 1608}, - dictWord{132, 11, 760}, - dictWord{134, 0, 1429}, - dictWord{9, 11, 154}, - dictWord{140, 11, 485}, - dictWord{5, 10, 228}, - dictWord{6, 10, 203}, - dictWord{7, 10, 156}, - dictWord{8, 10, 347}, - dictWord{ - 137, - 10, - 265, - }, - dictWord{7, 0, 1010}, - dictWord{11, 0, 733}, - dictWord{11, 0, 759}, - dictWord{13, 0, 34}, - dictWord{14, 0, 427}, - dictWord{146, 0, 45}, - dictWord{7, 10, 1131}, - dictWord{135, 10, 1468}, - dictWord{136, 11, 255}, - dictWord{7, 0, 1656}, - dictWord{9, 0, 369}, - dictWord{10, 0, 338}, - dictWord{10, 0, 490}, - dictWord{ - 11, - 0, - 154, - }, - dictWord{11, 0, 545}, - dictWord{11, 0, 775}, - dictWord{13, 0, 77}, - dictWord{141, 0, 274}, - dictWord{133, 11, 621}, - dictWord{134, 0, 1038}, - dictWord{ - 4, - 11, - 368, - }, - dictWord{135, 11, 641}, - dictWord{6, 0, 2010}, - dictWord{8, 0, 979}, - dictWord{8, 0, 985}, - dictWord{10, 0, 951}, - dictWord{138, 0, 1011}, - dictWord{ - 134, - 0, - 1005, - }, - dictWord{19, 0, 121}, - dictWord{5, 10, 291}, - dictWord{5, 10, 318}, - dictWord{7, 10, 765}, - dictWord{9, 10, 389}, - dictWord{140, 10, 548}, - dictWord{ - 5, - 0, - 20, - }, - dictWord{6, 0, 298}, - dictWord{7, 0, 659}, - dictWord{137, 0, 219}, - dictWord{7, 0, 1440}, - dictWord{11, 0, 854}, - dictWord{11, 0, 872}, - dictWord{11, 0, 921}, - dictWord{12, 0, 551}, - dictWord{13, 0, 472}, - dictWord{142, 0, 367}, - dictWord{5, 0, 490}, - dictWord{6, 0, 615}, - dictWord{6, 0, 620}, - dictWord{135, 0, 683}, - dictWord{ - 6, - 0, - 1070, - }, - dictWord{134, 0, 1597}, - dictWord{139, 0, 522}, - dictWord{132, 0, 439}, - dictWord{136, 0, 669}, - dictWord{6, 0, 766}, - dictWord{6, 0, 1143}, - dictWord{ - 6, - 0, - 1245, - }, - dictWord{10, 10, 525}, - dictWord{139, 10, 82}, - dictWord{9, 11, 92}, - dictWord{147, 11, 91}, - dictWord{6, 0, 668}, - dictWord{134, 0, 1218}, - dictWord{ - 6, - 11, - 525, - }, - dictWord{9, 11, 876}, - dictWord{140, 11, 284}, - dictWord{132, 0, 233}, - dictWord{136, 0, 547}, - dictWord{132, 10, 422}, - dictWord{5, 10, 355}, - dictWord{145, 10, 0}, - dictWord{6, 11, 300}, - dictWord{135, 11, 1515}, - dictWord{4, 0, 482}, - dictWord{137, 10, 905}, - dictWord{4, 0, 886}, - dictWord{7, 0, 346}, - dictWord{133, 11, 594}, - dictWord{133, 10, 865}, - dictWord{5, 10, 914}, - dictWord{134, 10, 1625}, - dictWord{135, 0, 334}, - dictWord{5, 0, 795}, - dictWord{ - 6, - 0, - 1741, - }, - dictWord{133, 10, 234}, - dictWord{135, 10, 1383}, - dictWord{6, 11, 1641}, - dictWord{136, 11, 820}, - dictWord{135, 0, 371}, - dictWord{7, 11, 1313}, - dictWord{138, 11, 660}, - dictWord{135, 10, 1312}, - dictWord{135, 0, 622}, - dictWord{7, 0, 625}, - dictWord{135, 0, 1750}, - dictWord{135, 0, 339}, - dictWord{ - 4, - 0, - 203, - }, - dictWord{135, 0, 1936}, - dictWord{15, 0, 29}, - dictWord{16, 0, 38}, - dictWord{15, 11, 29}, - dictWord{144, 11, 38}, - dictWord{5, 0, 338}, - dictWord{ - 135, - 0, - 1256, - }, - dictWord{135, 10, 1493}, - dictWord{10, 0, 130}, - dictWord{6, 10, 421}, - dictWord{7, 10, 61}, - dictWord{7, 10, 1540}, - dictWord{138, 10, 501}, - dictWord{ - 6, - 11, - 389, - }, - dictWord{7, 11, 149}, - dictWord{9, 11, 142}, - dictWord{138, 11, 94}, - dictWord{137, 10, 341}, - dictWord{11, 0, 678}, - dictWord{12, 0, 307}, - dictWord{142, 10, 98}, - dictWord{6, 11, 8}, - dictWord{7, 11, 1881}, - dictWord{136, 11, 91}, - dictWord{135, 0, 2044}, - dictWord{6, 0, 770}, - dictWord{6, 0, 802}, - dictWord{ - 6, - 0, - 812, - }, - dictWord{7, 0, 311}, - dictWord{9, 0, 308}, - dictWord{12, 0, 255}, - dictWord{6, 10, 102}, - dictWord{7, 10, 72}, - dictWord{15, 10, 142}, - dictWord{ - 147, - 10, - 67, - }, - dictWord{151, 10, 30}, - dictWord{135, 10, 823}, - dictWord{135, 0, 1266}, - dictWord{135, 11, 1746}, - dictWord{135, 10, 1870}, - dictWord{4, 0, 400}, - dictWord{5, 0, 267}, - dictWord{135, 0, 232}, - dictWord{7, 11, 24}, - dictWord{11, 11, 542}, - dictWord{139, 11, 852}, - dictWord{135, 11, 1739}, - dictWord{4, 11, 503}, - dictWord{135, 11, 1661}, - dictWord{5, 11, 130}, - dictWord{7, 11, 1314}, - dictWord{9, 11, 610}, - dictWord{10, 11, 718}, - dictWord{11, 11, 601}, - dictWord{ - 11, - 11, - 819, - }, - dictWord{11, 11, 946}, - dictWord{140, 11, 536}, - dictWord{10, 11, 149}, - dictWord{11, 11, 280}, - dictWord{142, 11, 336}, - dictWord{7, 0, 739}, - dictWord{11, 0, 690}, - dictWord{7, 11, 1946}, - dictWord{8, 10, 48}, - dictWord{8, 10, 88}, - dictWord{8, 10, 582}, - dictWord{8, 10, 681}, - dictWord{9, 10, 373}, - dictWord{ - 9, - 10, - 864, - }, - dictWord{11, 10, 157}, - dictWord{11, 10, 843}, - dictWord{148, 10, 27}, - dictWord{134, 0, 990}, - dictWord{4, 10, 88}, - dictWord{5, 10, 137}, - dictWord{ - 5, - 10, - 174, - }, - dictWord{5, 10, 777}, - dictWord{6, 10, 1664}, - dictWord{6, 10, 1725}, - dictWord{7, 10, 77}, - dictWord{7, 10, 426}, - dictWord{7, 10, 1317}, - dictWord{ - 7, - 10, - 1355, - }, - dictWord{8, 10, 126}, - dictWord{8, 10, 563}, - dictWord{9, 10, 523}, - dictWord{9, 10, 750}, - dictWord{10, 10, 310}, - dictWord{10, 10, 836}, - dictWord{ - 11, - 10, - 42, - }, - dictWord{11, 10, 318}, - dictWord{11, 10, 731}, - dictWord{12, 10, 68}, - dictWord{12, 10, 92}, - dictWord{12, 10, 507}, - dictWord{12, 10, 692}, - dictWord{ - 13, - 10, - 81, - }, - dictWord{13, 10, 238}, - dictWord{13, 10, 374}, - dictWord{14, 10, 436}, - dictWord{18, 10, 138}, - dictWord{19, 10, 78}, - dictWord{19, 10, 111}, - dictWord{20, 10, 55}, - dictWord{20, 10, 77}, - dictWord{148, 10, 92}, - dictWord{141, 10, 418}, - dictWord{7, 0, 1831}, - dictWord{132, 10, 938}, - dictWord{6, 0, 776}, - dictWord{134, 0, 915}, - dictWord{138, 10, 351}, - dictWord{5, 11, 348}, - dictWord{6, 11, 522}, - dictWord{6, 10, 1668}, - dictWord{7, 10, 1499}, - dictWord{8, 10, 117}, - dictWord{9, 10, 314}, - dictWord{138, 10, 174}, - dictWord{135, 10, 707}, - dictWord{132, 0, 613}, - dictWord{133, 10, 403}, - dictWord{132, 11, 392}, - dictWord{ - 5, - 11, - 433, - }, - dictWord{9, 11, 633}, - dictWord{139, 11, 629}, - dictWord{133, 0, 763}, - dictWord{132, 0, 878}, - dictWord{132, 0, 977}, - dictWord{132, 0, 100}, - dictWord{6, 0, 463}, - dictWord{4, 10, 44}, - dictWord{5, 10, 311}, - dictWord{7, 10, 639}, - dictWord{7, 10, 762}, - dictWord{7, 10, 1827}, - dictWord{9, 10, 8}, - dictWord{ - 9, - 10, - 462, - }, - dictWord{148, 10, 83}, - dictWord{134, 11, 234}, - dictWord{4, 10, 346}, - dictWord{7, 10, 115}, - dictWord{9, 10, 180}, - dictWord{9, 10, 456}, - dictWord{ - 138, - 10, - 363, - }, - dictWord{5, 0, 362}, - dictWord{5, 0, 443}, - dictWord{6, 0, 318}, - dictWord{7, 0, 1019}, - dictWord{139, 0, 623}, - dictWord{5, 0, 463}, - dictWord{8, 0, 296}, - dictWord{7, 11, 140}, - dictWord{7, 11, 1950}, - dictWord{8, 11, 680}, - dictWord{11, 11, 817}, - dictWord{147, 11, 88}, - dictWord{7, 11, 1222}, - dictWord{ - 138, - 11, - 386, - }, - dictWord{142, 0, 137}, - dictWord{132, 0, 454}, - dictWord{7, 0, 1914}, - dictWord{6, 11, 5}, - dictWord{7, 10, 1051}, - dictWord{9, 10, 545}, - dictWord{ - 11, - 11, - 249, - }, - dictWord{12, 11, 313}, - dictWord{16, 11, 66}, - dictWord{145, 11, 26}, - dictWord{135, 0, 1527}, - dictWord{145, 0, 58}, - dictWord{148, 11, 59}, - dictWord{ - 5, - 0, - 48, - }, - dictWord{5, 0, 404}, - dictWord{6, 0, 557}, - dictWord{7, 0, 458}, - dictWord{8, 0, 597}, - dictWord{10, 0, 455}, - dictWord{10, 0, 606}, - dictWord{11, 0, 49}, - dictWord{ - 11, - 0, - 548, - }, - dictWord{12, 0, 476}, - dictWord{13, 0, 18}, - dictWord{141, 0, 450}, - dictWord{5, 11, 963}, - dictWord{134, 11, 1773}, - dictWord{133, 0, 729}, - dictWord{138, 11, 586}, - dictWord{5, 0, 442}, - dictWord{135, 0, 1984}, - dictWord{134, 0, 449}, - dictWord{144, 0, 40}, - dictWord{4, 0, 853}, - dictWord{7, 11, 180}, - dictWord{8, 11, 509}, - dictWord{136, 11, 792}, - dictWord{6, 10, 185}, - dictWord{7, 10, 1899}, - dictWord{9, 10, 875}, - dictWord{139, 10, 673}, - dictWord{ - 134, - 11, - 524, - }, - dictWord{12, 0, 227}, - dictWord{4, 10, 327}, - dictWord{5, 10, 478}, - dictWord{7, 10, 1332}, - dictWord{136, 10, 753}, - dictWord{6, 0, 1491}, - dictWord{ - 5, - 10, - 1020, - }, - dictWord{133, 10, 1022}, - dictWord{4, 10, 103}, - dictWord{133, 10, 401}, - dictWord{132, 11, 931}, - dictWord{4, 10, 499}, - dictWord{135, 10, 1421}, - dictWord{5, 0, 55}, - dictWord{7, 0, 376}, - dictWord{140, 0, 161}, - dictWord{133, 0, 450}, - dictWord{6, 0, 1174}, - dictWord{134, 0, 1562}, - dictWord{10, 0, 62}, - dictWord{13, 0, 400}, - dictWord{135, 11, 1837}, - dictWord{140, 0, 207}, - dictWord{135, 0, 869}, - dictWord{4, 11, 773}, - dictWord{5, 11, 618}, - dictWord{ - 137, - 11, - 756, - }, - dictWord{132, 10, 96}, - dictWord{4, 0, 213}, - dictWord{7, 0, 223}, - dictWord{8, 0, 80}, - dictWord{135, 10, 968}, - dictWord{4, 11, 90}, - dictWord{5, 11, 337}, - dictWord{5, 11, 545}, - dictWord{7, 11, 754}, - dictWord{9, 11, 186}, - dictWord{10, 11, 72}, - dictWord{10, 11, 782}, - dictWord{11, 11, 513}, - dictWord{11, 11, 577}, - dictWord{11, 11, 610}, - dictWord{11, 11, 889}, - dictWord{11, 11, 961}, - dictWord{12, 11, 354}, - dictWord{12, 11, 362}, - dictWord{12, 11, 461}, - dictWord{ - 12, - 11, - 595, - }, - dictWord{13, 11, 79}, - dictWord{143, 11, 121}, - dictWord{7, 0, 381}, - dictWord{7, 0, 806}, - dictWord{7, 0, 820}, - dictWord{8, 0, 354}, - dictWord{8, 0, 437}, - dictWord{8, 0, 787}, - dictWord{9, 0, 657}, - dictWord{10, 0, 58}, - dictWord{10, 0, 339}, - dictWord{10, 0, 749}, - dictWord{11, 0, 914}, - dictWord{12, 0, 162}, - dictWord{ - 13, - 0, - 75, - }, - dictWord{14, 0, 106}, - dictWord{14, 0, 198}, - dictWord{14, 0, 320}, - dictWord{14, 0, 413}, - dictWord{146, 0, 43}, - dictWord{136, 0, 747}, - dictWord{ - 136, - 0, - 954, - }, - dictWord{134, 0, 1073}, - dictWord{135, 0, 556}, - dictWord{7, 11, 151}, - dictWord{9, 11, 329}, - dictWord{139, 11, 254}, - dictWord{5, 0, 692}, - dictWord{ - 134, - 0, - 1395, - }, - dictWord{6, 10, 563}, - dictWord{137, 10, 224}, - dictWord{134, 0, 191}, - dictWord{132, 0, 804}, - dictWord{9, 11, 187}, - dictWord{10, 11, 36}, - dictWord{17, 11, 44}, - dictWord{146, 11, 64}, - dictWord{7, 11, 165}, - dictWord{7, 11, 919}, - dictWord{136, 11, 517}, - dictWord{4, 11, 506}, - dictWord{5, 11, 295}, - dictWord{7, 11, 1680}, - dictWord{15, 11, 14}, - dictWord{144, 11, 5}, - dictWord{4, 0, 706}, - dictWord{6, 0, 162}, - dictWord{7, 0, 1960}, - dictWord{136, 0, 831}, - dictWord{ - 135, - 11, - 1376, - }, - dictWord{7, 11, 987}, - dictWord{9, 11, 688}, - dictWord{10, 11, 522}, - dictWord{11, 11, 788}, - dictWord{140, 11, 566}, - dictWord{150, 0, 35}, - dictWord{138, 0, 426}, - dictWord{135, 0, 1235}, - dictWord{135, 11, 1741}, - dictWord{7, 11, 389}, - dictWord{7, 11, 700}, - dictWord{7, 11, 940}, - dictWord{ - 8, - 11, - 514, - }, - dictWord{9, 11, 116}, - dictWord{9, 11, 535}, - dictWord{10, 11, 118}, - dictWord{11, 11, 107}, - dictWord{11, 11, 148}, - dictWord{11, 11, 922}, - dictWord{ - 12, - 11, - 254, - }, - dictWord{12, 11, 421}, - dictWord{142, 11, 238}, - dictWord{134, 0, 1234}, - dictWord{132, 11, 743}, - dictWord{4, 10, 910}, - dictWord{5, 10, 832}, - dictWord{135, 11, 1335}, - dictWord{141, 0, 96}, - dictWord{135, 11, 185}, - dictWord{146, 0, 149}, - dictWord{4, 0, 204}, - dictWord{137, 0, 902}, - dictWord{ - 4, - 11, - 784, - }, - dictWord{133, 11, 745}, - dictWord{136, 0, 833}, - dictWord{136, 0, 949}, - dictWord{7, 0, 366}, - dictWord{9, 0, 287}, - dictWord{12, 0, 199}, - dictWord{ - 12, - 0, - 556, - }, - dictWord{12, 0, 577}, - dictWord{5, 11, 81}, - dictWord{7, 11, 146}, - dictWord{7, 11, 1342}, - dictWord{7, 11, 1446}, - dictWord{8, 11, 53}, - dictWord{8, 11, 561}, - dictWord{8, 11, 694}, - dictWord{8, 11, 754}, - dictWord{9, 11, 97}, - dictWord{9, 11, 115}, - dictWord{9, 11, 894}, - dictWord{10, 11, 462}, - dictWord{10, 11, 813}, - dictWord{11, 11, 230}, - dictWord{11, 11, 657}, - dictWord{11, 11, 699}, - dictWord{11, 11, 748}, - dictWord{12, 11, 119}, - dictWord{12, 11, 200}, - dictWord{ - 12, - 11, - 283, - }, - dictWord{14, 11, 273}, - dictWord{145, 11, 15}, - dictWord{5, 11, 408}, - dictWord{137, 11, 747}, - dictWord{9, 11, 498}, - dictWord{140, 11, 181}, - dictWord{ - 6, - 0, - 2020, - }, - dictWord{136, 0, 992}, - dictWord{5, 0, 356}, - dictWord{135, 0, 224}, - dictWord{134, 0, 784}, - dictWord{7, 0, 630}, - dictWord{9, 0, 567}, - dictWord{ - 11, - 0, - 150, - }, - dictWord{11, 0, 444}, - dictWord{13, 0, 119}, - dictWord{8, 10, 528}, - dictWord{137, 10, 348}, - dictWord{134, 0, 539}, - dictWord{4, 10, 20}, - dictWord{ - 133, - 10, - 616, - }, - dictWord{142, 0, 27}, - dictWord{7, 11, 30}, - dictWord{8, 11, 86}, - dictWord{8, 11, 315}, - dictWord{8, 11, 700}, - dictWord{9, 11, 576}, - dictWord{9, 11, 858}, - dictWord{11, 11, 310}, - dictWord{11, 11, 888}, - dictWord{11, 11, 904}, - dictWord{12, 11, 361}, - dictWord{141, 11, 248}, - dictWord{138, 11, 839}, - dictWord{ - 134, - 0, - 755, - }, - dictWord{134, 0, 1063}, - dictWord{7, 10, 1091}, - dictWord{135, 10, 1765}, - dictWord{134, 11, 428}, - dictWord{7, 11, 524}, - dictWord{8, 11, 169}, - dictWord{8, 11, 234}, - dictWord{9, 11, 480}, - dictWord{138, 11, 646}, - dictWord{139, 0, 814}, - dictWord{7, 11, 1462}, - dictWord{139, 11, 659}, - dictWord{ - 4, - 10, - 26, - }, - dictWord{5, 10, 429}, - dictWord{6, 10, 245}, - dictWord{7, 10, 704}, - dictWord{7, 10, 1379}, - dictWord{135, 10, 1474}, - dictWord{7, 11, 1205}, - dictWord{ - 138, - 11, - 637, - }, - dictWord{139, 11, 803}, - dictWord{132, 10, 621}, - dictWord{136, 0, 987}, - dictWord{4, 11, 266}, - dictWord{8, 11, 4}, - dictWord{9, 11, 39}, - dictWord{ - 10, - 11, - 166, - }, - dictWord{11, 11, 918}, - dictWord{12, 11, 635}, - dictWord{20, 11, 10}, - dictWord{22, 11, 27}, - dictWord{150, 11, 43}, - dictWord{4, 0, 235}, - dictWord{ - 135, - 0, - 255, - }, - dictWord{4, 0, 194}, - dictWord{5, 0, 584}, - dictWord{6, 0, 384}, - dictWord{7, 0, 583}, - dictWord{10, 0, 761}, - dictWord{11, 0, 760}, - dictWord{139, 0, 851}, - dictWord{133, 10, 542}, - dictWord{134, 0, 1086}, - dictWord{133, 10, 868}, - dictWord{8, 0, 1016}, - dictWord{136, 0, 1018}, - dictWord{7, 0, 1396}, - dictWord{ - 7, - 11, - 1396, - }, - dictWord{136, 10, 433}, - dictWord{135, 10, 1495}, - dictWord{138, 10, 215}, - dictWord{141, 10, 124}, - dictWord{7, 11, 157}, - dictWord{ - 8, - 11, - 279, - }, - dictWord{9, 11, 759}, - dictWord{16, 11, 31}, - dictWord{16, 11, 39}, - dictWord{16, 11, 75}, - dictWord{18, 11, 24}, - dictWord{20, 11, 42}, - dictWord{152, 11, 1}, - dictWord{5, 0, 562}, - dictWord{134, 11, 604}, - dictWord{134, 0, 913}, - dictWord{5, 0, 191}, - dictWord{137, 0, 271}, - dictWord{4, 0, 470}, - dictWord{6, 0, 153}, - dictWord{7, 0, 1503}, - dictWord{7, 0, 1923}, - dictWord{10, 0, 701}, - dictWord{11, 0, 132}, - dictWord{11, 0, 227}, - dictWord{11, 0, 320}, - dictWord{11, 0, 436}, - dictWord{ - 11, - 0, - 525, - }, - dictWord{11, 0, 855}, - dictWord{11, 0, 873}, - dictWord{12, 0, 41}, - dictWord{12, 0, 286}, - dictWord{13, 0, 103}, - dictWord{13, 0, 284}, - dictWord{ - 14, - 0, - 255, - }, - dictWord{14, 0, 262}, - dictWord{15, 0, 117}, - dictWord{143, 0, 127}, - dictWord{7, 0, 475}, - dictWord{12, 0, 45}, - dictWord{147, 10, 112}, - dictWord{ - 132, - 11, - 567, - }, - dictWord{137, 11, 859}, - dictWord{6, 0, 713}, - dictWord{6, 0, 969}, - dictWord{6, 0, 1290}, - dictWord{134, 0, 1551}, - dictWord{133, 0, 327}, - dictWord{ - 6, - 0, - 552, - }, - dictWord{6, 0, 1292}, - dictWord{7, 0, 1754}, - dictWord{137, 0, 604}, - dictWord{4, 0, 223}, - dictWord{6, 0, 359}, - dictWord{11, 0, 3}, - dictWord{13, 0, 108}, - dictWord{14, 0, 89}, - dictWord{16, 0, 22}, - dictWord{5, 11, 762}, - dictWord{7, 11, 1880}, - dictWord{9, 11, 680}, - dictWord{139, 11, 798}, - dictWord{5, 0, 80}, - dictWord{ - 6, - 0, - 405, - }, - dictWord{7, 0, 403}, - dictWord{7, 0, 1502}, - dictWord{8, 0, 456}, - dictWord{9, 0, 487}, - dictWord{9, 0, 853}, - dictWord{9, 0, 889}, - dictWord{10, 0, 309}, - dictWord{ - 11, - 0, - 721, - }, - dictWord{11, 0, 994}, - dictWord{12, 0, 430}, - dictWord{141, 0, 165}, - dictWord{133, 11, 298}, - dictWord{132, 10, 647}, - dictWord{134, 0, 2016}, - dictWord{18, 10, 10}, - dictWord{146, 11, 10}, - dictWord{4, 0, 453}, - dictWord{5, 0, 887}, - dictWord{6, 0, 535}, - dictWord{8, 0, 6}, - dictWord{8, 0, 543}, - dictWord{ - 136, - 0, - 826, - }, - dictWord{136, 0, 975}, - dictWord{10, 0, 961}, - dictWord{138, 0, 962}, - dictWord{138, 10, 220}, - dictWord{6, 0, 1891}, - dictWord{6, 0, 1893}, - dictWord{ - 9, - 0, - 916, - }, - dictWord{9, 0, 965}, - dictWord{9, 0, 972}, - dictWord{12, 0, 801}, - dictWord{12, 0, 859}, - dictWord{12, 0, 883}, - dictWord{15, 0, 226}, - dictWord{149, 0, 51}, - dictWord{132, 10, 109}, - dictWord{135, 11, 267}, - dictWord{7, 11, 92}, - dictWord{7, 11, 182}, - dictWord{8, 11, 453}, - dictWord{9, 11, 204}, - dictWord{11, 11, 950}, - dictWord{12, 11, 94}, - dictWord{12, 11, 644}, - dictWord{16, 11, 20}, - dictWord{16, 11, 70}, - dictWord{16, 11, 90}, - dictWord{147, 11, 55}, - dictWord{ - 134, - 10, - 1746, - }, - dictWord{6, 11, 71}, - dictWord{7, 11, 845}, - dictWord{7, 11, 1308}, - dictWord{8, 11, 160}, - dictWord{137, 11, 318}, - dictWord{5, 0, 101}, - dictWord{6, 0, 88}, - dictWord{7, 0, 263}, - dictWord{7, 0, 628}, - dictWord{7, 0, 1677}, - dictWord{8, 0, 349}, - dictWord{9, 0, 100}, - dictWord{10, 0, 677}, - dictWord{14, 0, 169}, - dictWord{ - 14, - 0, - 302, - }, - dictWord{14, 0, 313}, - dictWord{15, 0, 48}, - dictWord{15, 0, 84}, - dictWord{7, 11, 237}, - dictWord{8, 11, 664}, - dictWord{9, 11, 42}, - dictWord{9, 11, 266}, - dictWord{9, 11, 380}, - dictWord{9, 11, 645}, - dictWord{10, 11, 177}, - dictWord{138, 11, 276}, - dictWord{138, 11, 69}, - dictWord{4, 0, 310}, - dictWord{7, 0, 708}, - dictWord{7, 0, 996}, - dictWord{9, 0, 795}, - dictWord{10, 0, 390}, - dictWord{10, 0, 733}, - dictWord{11, 0, 451}, - dictWord{12, 0, 249}, - dictWord{14, 0, 115}, - dictWord{ - 14, - 0, - 286, - }, - dictWord{143, 0, 100}, - dictWord{5, 0, 587}, - dictWord{4, 10, 40}, - dictWord{10, 10, 67}, - dictWord{11, 10, 117}, - dictWord{11, 10, 768}, - dictWord{ - 139, - 10, - 935, - }, - dictWord{6, 0, 1942}, - dictWord{7, 0, 512}, - dictWord{136, 0, 983}, - dictWord{7, 10, 992}, - dictWord{8, 10, 301}, - dictWord{9, 10, 722}, - dictWord{12, 10, 63}, - dictWord{13, 10, 29}, - dictWord{14, 10, 161}, - dictWord{143, 10, 18}, - dictWord{136, 11, 76}, - dictWord{139, 10, 923}, - dictWord{134, 0, 645}, - dictWord{ - 134, - 0, - 851, - }, - dictWord{4, 0, 498}, - dictWord{132, 11, 293}, - dictWord{7, 0, 217}, - dictWord{8, 0, 140}, - dictWord{10, 0, 610}, - dictWord{14, 11, 352}, - dictWord{ - 17, - 11, - 53, - }, - dictWord{18, 11, 146}, - dictWord{18, 11, 152}, - dictWord{19, 11, 11}, - dictWord{150, 11, 54}, - dictWord{134, 0, 1448}, - dictWord{138, 11, 841}, - dictWord{133, 0, 905}, - dictWord{4, 11, 605}, - dictWord{7, 11, 518}, - dictWord{7, 11, 1282}, - dictWord{7, 11, 1918}, - dictWord{10, 11, 180}, - dictWord{139, 11, 218}, - dictWord{139, 11, 917}, - dictWord{135, 10, 825}, - dictWord{140, 10, 328}, - dictWord{4, 0, 456}, - dictWord{7, 0, 105}, - dictWord{7, 0, 358}, - dictWord{7, 0, 1637}, - dictWord{8, 0, 643}, - dictWord{139, 0, 483}, - dictWord{134, 0, 792}, - dictWord{6, 11, 96}, - dictWord{135, 11, 1426}, - dictWord{137, 11, 691}, - dictWord{ - 4, - 11, - 651, - }, - dictWord{133, 11, 289}, - dictWord{7, 11, 688}, - dictWord{8, 11, 35}, - dictWord{9, 11, 511}, - dictWord{10, 11, 767}, - dictWord{147, 11, 118}, - dictWord{ - 150, - 0, - 56, - }, - dictWord{5, 0, 243}, - dictWord{5, 0, 535}, - dictWord{6, 10, 204}, - dictWord{10, 10, 320}, - dictWord{10, 10, 583}, - dictWord{13, 10, 502}, - dictWord{ - 14, - 10, - 72, - }, - dictWord{14, 10, 274}, - dictWord{14, 10, 312}, - dictWord{14, 10, 344}, - dictWord{15, 10, 159}, - dictWord{16, 10, 62}, - dictWord{16, 10, 69}, - dictWord{ - 17, - 10, - 30, - }, - dictWord{18, 10, 42}, - dictWord{18, 10, 53}, - dictWord{18, 10, 84}, - dictWord{18, 10, 140}, - dictWord{19, 10, 68}, - dictWord{19, 10, 85}, - dictWord{20, 10, 5}, - dictWord{20, 10, 45}, - dictWord{20, 10, 101}, - dictWord{22, 10, 7}, - dictWord{150, 10, 20}, - dictWord{4, 10, 558}, - dictWord{6, 10, 390}, - dictWord{7, 10, 162}, - dictWord{7, 10, 689}, - dictWord{9, 10, 360}, - dictWord{138, 10, 653}, - dictWord{146, 11, 23}, - dictWord{135, 0, 1748}, - dictWord{5, 10, 856}, - dictWord{ - 6, - 10, - 1672, - }, - dictWord{6, 10, 1757}, - dictWord{134, 10, 1781}, - dictWord{5, 0, 539}, - dictWord{5, 0, 754}, - dictWord{6, 0, 876}, - dictWord{132, 11, 704}, - dictWord{ - 135, - 11, - 1078, - }, - dictWord{5, 10, 92}, - dictWord{10, 10, 736}, - dictWord{140, 10, 102}, - dictWord{17, 0, 91}, - dictWord{5, 10, 590}, - dictWord{137, 10, 213}, - dictWord{134, 0, 1565}, - dictWord{6, 0, 91}, - dictWord{135, 0, 435}, - dictWord{4, 0, 939}, - dictWord{140, 0, 792}, - dictWord{134, 0, 1399}, - dictWord{4, 0, 16}, - dictWord{ - 5, - 0, - 316, - }, - dictWord{5, 0, 842}, - dictWord{6, 0, 370}, - dictWord{6, 0, 1778}, - dictWord{8, 0, 166}, - dictWord{11, 0, 812}, - dictWord{12, 0, 206}, - dictWord{12, 0, 351}, - dictWord{14, 0, 418}, - dictWord{16, 0, 15}, - dictWord{16, 0, 34}, - dictWord{18, 0, 3}, - dictWord{19, 0, 3}, - dictWord{19, 0, 7}, - dictWord{20, 0, 4}, - dictWord{21, 0, 21}, - dictWord{ - 4, - 11, - 720, - }, - dictWord{133, 11, 306}, - dictWord{144, 0, 95}, - dictWord{133, 11, 431}, - dictWord{132, 11, 234}, - dictWord{135, 0, 551}, - dictWord{4, 0, 999}, - dictWord{6, 0, 1966}, - dictWord{134, 0, 2042}, - dictWord{7, 0, 619}, - dictWord{10, 0, 547}, - dictWord{11, 0, 122}, - dictWord{12, 0, 601}, - dictWord{15, 0, 7}, - dictWord{148, 0, 20}, - dictWord{5, 11, 464}, - dictWord{6, 11, 236}, - dictWord{7, 11, 276}, - dictWord{7, 11, 696}, - dictWord{7, 11, 914}, - dictWord{7, 11, 1108}, - dictWord{ - 7, - 11, - 1448, - }, - dictWord{9, 11, 15}, - dictWord{9, 11, 564}, - dictWord{10, 11, 14}, - dictWord{12, 11, 565}, - dictWord{13, 11, 449}, - dictWord{14, 11, 53}, - dictWord{ - 15, - 11, - 13, - }, - dictWord{16, 11, 64}, - dictWord{145, 11, 41}, - dictWord{6, 0, 884}, - dictWord{6, 0, 1019}, - dictWord{134, 0, 1150}, - dictWord{6, 11, 1767}, - dictWord{ - 12, - 11, - 194, - }, - dictWord{145, 11, 107}, - dictWord{136, 10, 503}, - dictWord{133, 11, 840}, - dictWord{7, 0, 671}, - dictWord{134, 10, 466}, - dictWord{132, 0, 888}, - dictWord{4, 0, 149}, - dictWord{138, 0, 368}, - dictWord{4, 0, 154}, - dictWord{7, 0, 1134}, - dictWord{136, 0, 105}, - dictWord{135, 0, 983}, - dictWord{9, 11, 642}, - dictWord{11, 11, 236}, - dictWord{142, 11, 193}, - dictWord{4, 0, 31}, - dictWord{6, 0, 429}, - dictWord{7, 0, 962}, - dictWord{9, 0, 458}, - dictWord{139, 0, 691}, - dictWord{ - 6, - 0, - 643, - }, - dictWord{134, 0, 1102}, - dictWord{132, 0, 312}, - dictWord{4, 11, 68}, - dictWord{5, 11, 634}, - dictWord{6, 11, 386}, - dictWord{7, 11, 794}, - dictWord{ - 8, - 11, - 273, - }, - dictWord{9, 11, 563}, - dictWord{10, 11, 105}, - dictWord{10, 11, 171}, - dictWord{11, 11, 94}, - dictWord{139, 11, 354}, - dictWord{133, 0, 740}, - dictWord{ - 135, - 0, - 1642, - }, - dictWord{4, 11, 95}, - dictWord{7, 11, 416}, - dictWord{8, 11, 211}, - dictWord{139, 11, 830}, - dictWord{132, 0, 236}, - dictWord{138, 10, 241}, - dictWord{7, 11, 731}, - dictWord{13, 11, 20}, - dictWord{143, 11, 11}, - dictWord{5, 0, 836}, - dictWord{5, 0, 857}, - dictWord{6, 0, 1680}, - dictWord{135, 0, 59}, - dictWord{ - 10, - 0, - 68, - }, - dictWord{11, 0, 494}, - dictWord{152, 11, 6}, - dictWord{4, 0, 81}, - dictWord{139, 0, 867}, - dictWord{135, 0, 795}, - dictWord{133, 11, 689}, - dictWord{ - 4, - 0, - 1001, - }, - dictWord{5, 0, 282}, - dictWord{6, 0, 1932}, - dictWord{6, 0, 1977}, - dictWord{6, 0, 1987}, - dictWord{6, 0, 1992}, - dictWord{8, 0, 650}, - dictWord{8, 0, 919}, - dictWord{8, 0, 920}, - dictWord{8, 0, 923}, - dictWord{8, 0, 926}, - dictWord{8, 0, 927}, - dictWord{8, 0, 931}, - dictWord{8, 0, 939}, - dictWord{8, 0, 947}, - dictWord{8, 0, 956}, - dictWord{8, 0, 997}, - dictWord{9, 0, 907}, - dictWord{10, 0, 950}, - dictWord{10, 0, 953}, - dictWord{10, 0, 954}, - dictWord{10, 0, 956}, - dictWord{10, 0, 958}, - dictWord{ - 10, - 0, - 959, - }, - dictWord{10, 0, 964}, - dictWord{10, 0, 970}, - dictWord{10, 0, 972}, - dictWord{10, 0, 973}, - dictWord{10, 0, 975}, - dictWord{10, 0, 976}, - dictWord{ - 10, - 0, - 980, - }, - dictWord{10, 0, 981}, - dictWord{10, 0, 984}, - dictWord{10, 0, 988}, - dictWord{10, 0, 990}, - dictWord{10, 0, 995}, - dictWord{10, 0, 999}, - dictWord{ - 10, - 0, - 1002, - }, - dictWord{10, 0, 1003}, - dictWord{10, 0, 1005}, - dictWord{10, 0, 1006}, - dictWord{10, 0, 1008}, - dictWord{10, 0, 1009}, - dictWord{10, 0, 1012}, - dictWord{10, 0, 1014}, - dictWord{10, 0, 1015}, - dictWord{10, 0, 1019}, - dictWord{10, 0, 1020}, - dictWord{10, 0, 1022}, - dictWord{12, 0, 959}, - dictWord{12, 0, 961}, - dictWord{12, 0, 962}, - dictWord{12, 0, 963}, - dictWord{12, 0, 964}, - dictWord{12, 0, 965}, - dictWord{12, 0, 967}, - dictWord{12, 0, 968}, - dictWord{12, 0, 969}, - dictWord{12, 0, 970}, - dictWord{12, 0, 971}, - dictWord{12, 0, 972}, - dictWord{12, 0, 973}, - dictWord{12, 0, 974}, - dictWord{12, 0, 975}, - dictWord{12, 0, 976}, - dictWord{ - 12, - 0, - 977, - }, - dictWord{12, 0, 979}, - dictWord{12, 0, 981}, - dictWord{12, 0, 982}, - dictWord{12, 0, 983}, - dictWord{12, 0, 984}, - dictWord{12, 0, 985}, - dictWord{ - 12, - 0, - 986, - }, - dictWord{12, 0, 987}, - dictWord{12, 0, 989}, - dictWord{12, 0, 990}, - dictWord{12, 0, 992}, - dictWord{12, 0, 993}, - dictWord{12, 0, 995}, - dictWord{12, 0, 998}, - dictWord{12, 0, 999}, - dictWord{12, 0, 1000}, - dictWord{12, 0, 1001}, - dictWord{12, 0, 1002}, - dictWord{12, 0, 1004}, - dictWord{12, 0, 1005}, - dictWord{ - 12, - 0, - 1006, - }, - dictWord{12, 0, 1007}, - dictWord{12, 0, 1008}, - dictWord{12, 0, 1009}, - dictWord{12, 0, 1010}, - dictWord{12, 0, 1011}, - dictWord{12, 0, 1012}, - dictWord{12, 0, 1014}, - dictWord{12, 0, 1015}, - dictWord{12, 0, 1016}, - dictWord{12, 0, 1017}, - dictWord{12, 0, 1018}, - dictWord{12, 0, 1019}, - dictWord{ - 12, - 0, - 1022, - }, - dictWord{12, 0, 1023}, - dictWord{14, 0, 475}, - dictWord{14, 0, 477}, - dictWord{14, 0, 478}, - dictWord{14, 0, 479}, - dictWord{14, 0, 480}, - dictWord{ - 14, - 0, - 482, - }, - dictWord{14, 0, 483}, - dictWord{14, 0, 484}, - dictWord{14, 0, 485}, - dictWord{14, 0, 486}, - dictWord{14, 0, 487}, - dictWord{14, 0, 488}, - dictWord{14, 0, 489}, - dictWord{14, 0, 490}, - dictWord{14, 0, 491}, - dictWord{14, 0, 492}, - dictWord{14, 0, 493}, - dictWord{14, 0, 494}, - dictWord{14, 0, 495}, - dictWord{14, 0, 496}, - dictWord{14, 0, 497}, - dictWord{14, 0, 498}, - dictWord{14, 0, 499}, - dictWord{14, 0, 500}, - dictWord{14, 0, 501}, - dictWord{14, 0, 502}, - dictWord{14, 0, 503}, - dictWord{ - 14, - 0, - 504, - }, - dictWord{14, 0, 506}, - dictWord{14, 0, 507}, - dictWord{14, 0, 508}, - dictWord{14, 0, 509}, - dictWord{14, 0, 510}, - dictWord{14, 0, 511}, - dictWord{ - 16, - 0, - 113, - }, - dictWord{16, 0, 114}, - dictWord{16, 0, 115}, - dictWord{16, 0, 117}, - dictWord{16, 0, 118}, - dictWord{16, 0, 119}, - dictWord{16, 0, 121}, - dictWord{16, 0, 122}, - dictWord{16, 0, 123}, - dictWord{16, 0, 124}, - dictWord{16, 0, 125}, - dictWord{16, 0, 126}, - dictWord{16, 0, 127}, - dictWord{18, 0, 242}, - dictWord{18, 0, 243}, - dictWord{18, 0, 244}, - dictWord{18, 0, 245}, - dictWord{18, 0, 248}, - dictWord{18, 0, 249}, - dictWord{18, 0, 250}, - dictWord{18, 0, 251}, - dictWord{18, 0, 252}, - dictWord{ - 18, - 0, - 253, - }, - dictWord{18, 0, 254}, - dictWord{18, 0, 255}, - dictWord{20, 0, 125}, - dictWord{20, 0, 126}, - dictWord{148, 0, 127}, - dictWord{7, 11, 1717}, - dictWord{ - 7, - 11, - 1769, - }, - dictWord{138, 11, 546}, - dictWord{7, 11, 1127}, - dictWord{7, 11, 1572}, - dictWord{10, 11, 297}, - dictWord{10, 11, 422}, - dictWord{11, 11, 764}, - dictWord{11, 11, 810}, - dictWord{12, 11, 264}, - dictWord{13, 11, 102}, - dictWord{13, 11, 300}, - dictWord{13, 11, 484}, - dictWord{14, 11, 147}, - dictWord{ - 14, - 11, - 229, - }, - dictWord{17, 11, 71}, - dictWord{18, 11, 118}, - dictWord{147, 11, 120}, - dictWord{6, 0, 1148}, - dictWord{134, 0, 1586}, - dictWord{132, 0, 775}, - dictWord{135, 10, 954}, - dictWord{133, 11, 864}, - dictWord{133, 11, 928}, - dictWord{138, 11, 189}, - dictWord{135, 10, 1958}, - dictWord{6, 10, 549}, - dictWord{ - 8, - 10, - 34, - }, - dictWord{8, 10, 283}, - dictWord{9, 10, 165}, - dictWord{138, 10, 475}, - dictWord{5, 10, 652}, - dictWord{5, 10, 701}, - dictWord{135, 10, 449}, - dictWord{135, 11, 695}, - dictWord{4, 10, 655}, - dictWord{7, 10, 850}, - dictWord{17, 10, 75}, - dictWord{146, 10, 137}, - dictWord{140, 11, 682}, - dictWord{ - 133, - 11, - 523, - }, - dictWord{8, 0, 970}, - dictWord{136, 10, 670}, - dictWord{136, 11, 555}, - dictWord{7, 11, 76}, - dictWord{8, 11, 44}, - dictWord{9, 11, 884}, - dictWord{ - 10, - 11, - 580, - }, - dictWord{11, 11, 399}, - dictWord{11, 11, 894}, - dictWord{15, 11, 122}, - dictWord{18, 11, 144}, - dictWord{147, 11, 61}, - dictWord{6, 10, 159}, - dictWord{ - 6, - 10, - 364, - }, - dictWord{7, 10, 516}, - dictWord{7, 10, 1439}, - dictWord{137, 10, 518}, - dictWord{4, 0, 71}, - dictWord{5, 0, 376}, - dictWord{7, 0, 119}, - dictWord{ - 138, - 0, - 665, - }, - dictWord{141, 10, 151}, - dictWord{11, 0, 827}, - dictWord{14, 0, 34}, - dictWord{143, 0, 148}, - dictWord{133, 11, 518}, - dictWord{4, 0, 479}, - dictWord{ - 135, - 11, - 1787, - }, - dictWord{135, 11, 1852}, - dictWord{135, 10, 993}, - dictWord{7, 0, 607}, - dictWord{136, 0, 99}, - dictWord{134, 0, 1960}, - dictWord{132, 0, 793}, - dictWord{4, 0, 41}, - dictWord{5, 0, 74}, - dictWord{7, 0, 1627}, - dictWord{11, 0, 871}, - dictWord{140, 0, 619}, - dictWord{7, 0, 94}, - dictWord{11, 0, 329}, - dictWord{ - 11, - 0, - 965, - }, - dictWord{12, 0, 241}, - dictWord{14, 0, 354}, - dictWord{15, 0, 22}, - dictWord{148, 0, 63}, - dictWord{7, 10, 501}, - dictWord{9, 10, 111}, - dictWord{10, 10, 141}, - dictWord{11, 10, 332}, - dictWord{13, 10, 43}, - dictWord{13, 10, 429}, - dictWord{14, 10, 130}, - dictWord{14, 10, 415}, - dictWord{145, 10, 102}, - dictWord{ - 9, - 0, - 209, - }, - dictWord{137, 0, 300}, - dictWord{134, 0, 1497}, - dictWord{138, 11, 255}, - dictWord{4, 11, 934}, - dictWord{5, 11, 138}, - dictWord{136, 11, 610}, - dictWord{133, 0, 98}, - dictWord{6, 0, 1316}, - dictWord{10, 11, 804}, - dictWord{138, 11, 832}, - dictWord{8, 11, 96}, - dictWord{9, 11, 36}, - dictWord{10, 11, 607}, - dictWord{11, 11, 423}, - dictWord{11, 11, 442}, - dictWord{12, 11, 309}, - dictWord{14, 11, 199}, - dictWord{15, 11, 90}, - dictWord{145, 11, 110}, - dictWord{ - 132, - 0, - 463, - }, - dictWord{5, 10, 149}, - dictWord{136, 10, 233}, - dictWord{133, 10, 935}, - dictWord{4, 11, 652}, - dictWord{8, 11, 320}, - dictWord{9, 11, 13}, - dictWord{ - 9, - 11, - 398, - }, - dictWord{9, 11, 727}, - dictWord{10, 11, 75}, - dictWord{10, 11, 184}, - dictWord{10, 11, 230}, - dictWord{10, 11, 564}, - dictWord{10, 11, 569}, - dictWord{ - 11, - 11, - 973, - }, - dictWord{12, 11, 70}, - dictWord{12, 11, 189}, - dictWord{13, 11, 57}, - dictWord{13, 11, 257}, - dictWord{22, 11, 6}, - dictWord{150, 11, 16}, - dictWord{ - 142, - 0, - 291, - }, - dictWord{12, 10, 582}, - dictWord{146, 10, 131}, - dictWord{136, 10, 801}, - dictWord{133, 0, 984}, - dictWord{145, 11, 116}, - dictWord{4, 11, 692}, - dictWord{133, 11, 321}, - dictWord{4, 0, 182}, - dictWord{6, 0, 205}, - dictWord{135, 0, 220}, - dictWord{4, 0, 42}, - dictWord{9, 0, 205}, - dictWord{9, 0, 786}, - dictWord{ - 138, - 0, - 659, - }, - dictWord{6, 0, 801}, - dictWord{11, 11, 130}, - dictWord{140, 11, 609}, - dictWord{132, 0, 635}, - dictWord{5, 11, 345}, - dictWord{135, 11, 1016}, - dictWord{139, 0, 533}, - dictWord{132, 0, 371}, - dictWord{4, 0, 272}, - dictWord{135, 0, 836}, - dictWord{6, 0, 1282}, - dictWord{135, 11, 1100}, - dictWord{5, 0, 825}, - dictWord{134, 0, 1640}, - dictWord{135, 11, 1325}, - dictWord{133, 11, 673}, - dictWord{4, 11, 287}, - dictWord{133, 11, 1018}, - dictWord{135, 0, 357}, - dictWord{ - 6, - 0, - 467, - }, - dictWord{137, 0, 879}, - dictWord{7, 0, 317}, - dictWord{135, 0, 569}, - dictWord{6, 0, 924}, - dictWord{134, 0, 1588}, - dictWord{5, 11, 34}, - dictWord{ - 5, - 10, - 406, - }, - dictWord{10, 11, 724}, - dictWord{12, 11, 444}, - dictWord{13, 11, 354}, - dictWord{18, 11, 32}, - dictWord{23, 11, 24}, - dictWord{23, 11, 31}, - dictWord{ - 152, - 11, - 5, - }, - dictWord{6, 0, 1795}, - dictWord{6, 0, 1835}, - dictWord{6, 0, 1836}, - dictWord{6, 0, 1856}, - dictWord{8, 0, 844}, - dictWord{8, 0, 849}, - dictWord{8, 0, 854}, - dictWord{8, 0, 870}, - dictWord{8, 0, 887}, - dictWord{10, 0, 852}, - dictWord{138, 0, 942}, - dictWord{6, 10, 69}, - dictWord{135, 10, 117}, - dictWord{137, 0, 307}, - dictWord{ - 4, - 0, - 944, - }, - dictWord{6, 0, 1799}, - dictWord{6, 0, 1825}, - dictWord{10, 0, 848}, - dictWord{10, 0, 875}, - dictWord{10, 0, 895}, - dictWord{10, 0, 899}, - dictWord{ - 10, - 0, - 902, - }, - dictWord{140, 0, 773}, - dictWord{11, 0, 43}, - dictWord{13, 0, 72}, - dictWord{141, 0, 142}, - dictWord{135, 10, 1830}, - dictWord{134, 11, 382}, - dictWord{ - 4, - 10, - 432, - }, - dictWord{135, 10, 824}, - dictWord{132, 11, 329}, - dictWord{7, 0, 1820}, - dictWord{139, 11, 124}, - dictWord{133, 10, 826}, - dictWord{ - 133, - 0, - 525, - }, - dictWord{132, 11, 906}, - dictWord{7, 11, 1940}, - dictWord{136, 11, 366}, - dictWord{138, 11, 10}, - dictWord{4, 11, 123}, - dictWord{4, 11, 649}, - dictWord{ - 5, - 11, - 605, - }, - dictWord{7, 11, 1509}, - dictWord{136, 11, 36}, - dictWord{6, 0, 110}, - dictWord{135, 0, 1681}, - dictWord{133, 0, 493}, - dictWord{133, 11, 767}, - dictWord{4, 0, 174}, - dictWord{135, 0, 911}, - dictWord{138, 11, 786}, - dictWord{8, 0, 417}, - dictWord{137, 0, 782}, - dictWord{133, 10, 1000}, - dictWord{7, 0, 733}, - dictWord{137, 0, 583}, - dictWord{4, 10, 297}, - dictWord{6, 10, 529}, - dictWord{7, 10, 152}, - dictWord{7, 10, 713}, - dictWord{7, 10, 1845}, - dictWord{8, 10, 710}, - dictWord{8, 10, 717}, - dictWord{12, 10, 639}, - dictWord{140, 10, 685}, - dictWord{4, 0, 32}, - dictWord{5, 0, 215}, - dictWord{6, 0, 269}, - dictWord{7, 0, 1782}, - dictWord{ - 7, - 0, - 1892, - }, - dictWord{10, 0, 16}, - dictWord{11, 0, 822}, - dictWord{11, 0, 954}, - dictWord{141, 0, 481}, - dictWord{4, 11, 273}, - dictWord{5, 11, 658}, - dictWord{ - 133, - 11, - 995, - }, - dictWord{136, 0, 477}, - dictWord{134, 11, 72}, - dictWord{135, 11, 1345}, - dictWord{5, 0, 308}, - dictWord{7, 0, 1088}, - dictWord{4, 10, 520}, - dictWord{ - 135, - 10, - 575, - }, - dictWord{133, 11, 589}, - dictWord{5, 0, 126}, - dictWord{8, 0, 297}, - dictWord{9, 0, 366}, - dictWord{140, 0, 374}, - dictWord{7, 0, 1551}, - dictWord{ - 139, - 0, - 361, - }, - dictWord{5, 11, 117}, - dictWord{6, 11, 514}, - dictWord{6, 11, 541}, - dictWord{7, 11, 1164}, - dictWord{7, 11, 1436}, - dictWord{8, 11, 220}, - dictWord{ - 8, - 11, - 648, - }, - dictWord{10, 11, 688}, - dictWord{139, 11, 560}, - dictWord{133, 11, 686}, - dictWord{4, 0, 946}, - dictWord{6, 0, 1807}, - dictWord{8, 0, 871}, - dictWord{ - 10, - 0, - 854, - }, - dictWord{10, 0, 870}, - dictWord{10, 0, 888}, - dictWord{10, 0, 897}, - dictWord{10, 0, 920}, - dictWord{12, 0, 722}, - dictWord{12, 0, 761}, - dictWord{ - 12, - 0, - 763, - }, - dictWord{12, 0, 764}, - dictWord{14, 0, 454}, - dictWord{14, 0, 465}, - dictWord{16, 0, 107}, - dictWord{18, 0, 167}, - dictWord{18, 0, 168}, - dictWord{ - 146, - 0, - 172, - }, - dictWord{132, 0, 175}, - dictWord{135, 0, 1307}, - dictWord{132, 0, 685}, - dictWord{135, 11, 1834}, - dictWord{133, 0, 797}, - dictWord{6, 0, 745}, - dictWord{ - 6, - 0, - 858, - }, - dictWord{134, 0, 963}, - dictWord{133, 0, 565}, - dictWord{5, 10, 397}, - dictWord{6, 10, 154}, - dictWord{7, 11, 196}, - dictWord{7, 10, 676}, - dictWord{ - 8, - 10, - 443, - }, - dictWord{8, 10, 609}, - dictWord{9, 10, 24}, - dictWord{9, 10, 325}, - dictWord{10, 10, 35}, - dictWord{10, 11, 765}, - dictWord{11, 11, 347}, - dictWord{ - 11, - 10, - 535, - }, - dictWord{11, 11, 552}, - dictWord{11, 11, 576}, - dictWord{11, 10, 672}, - dictWord{11, 11, 790}, - dictWord{11, 10, 1018}, - dictWord{12, 11, 263}, - dictWord{12, 10, 637}, - dictWord{13, 11, 246}, - dictWord{13, 11, 270}, - dictWord{13, 11, 395}, - dictWord{14, 11, 74}, - dictWord{14, 11, 176}, - dictWord{ - 14, - 11, - 190, - }, - dictWord{14, 11, 398}, - dictWord{14, 11, 412}, - dictWord{15, 11, 32}, - dictWord{15, 11, 63}, - dictWord{16, 10, 30}, - dictWord{16, 11, 88}, - dictWord{ - 147, - 11, - 105, - }, - dictWord{13, 11, 84}, - dictWord{141, 11, 122}, - dictWord{4, 0, 252}, - dictWord{7, 0, 1068}, - dictWord{10, 0, 434}, - dictWord{11, 0, 228}, - dictWord{ - 11, - 0, - 426, - }, - dictWord{13, 0, 231}, - dictWord{18, 0, 106}, - dictWord{148, 0, 87}, - dictWord{137, 0, 826}, - dictWord{4, 11, 589}, - dictWord{139, 11, 282}, - dictWord{ - 5, - 11, - 381, - }, - dictWord{135, 11, 1792}, - dictWord{132, 0, 791}, - dictWord{5, 0, 231}, - dictWord{10, 0, 509}, - dictWord{133, 10, 981}, - dictWord{7, 0, 601}, - dictWord{ - 9, - 0, - 277, - }, - dictWord{9, 0, 674}, - dictWord{10, 0, 178}, - dictWord{10, 0, 418}, - dictWord{10, 0, 571}, - dictWord{11, 0, 531}, - dictWord{12, 0, 113}, - dictWord{12, 0, 475}, - dictWord{13, 0, 99}, - dictWord{142, 0, 428}, - dictWord{4, 10, 56}, - dictWord{7, 11, 616}, - dictWord{7, 10, 1791}, - dictWord{8, 10, 607}, - dictWord{8, 10, 651}, - dictWord{10, 11, 413}, - dictWord{11, 10, 465}, - dictWord{11, 10, 835}, - dictWord{12, 10, 337}, - dictWord{141, 10, 480}, - dictWord{7, 0, 1591}, - dictWord{144, 0, 43}, - dictWord{9, 10, 158}, - dictWord{138, 10, 411}, - dictWord{135, 0, 1683}, - dictWord{8, 0, 289}, - dictWord{11, 0, 45}, - dictWord{12, 0, 278}, - dictWord{140, 0, 537}, - dictWord{6, 11, 120}, - dictWord{7, 11, 1188}, - dictWord{7, 11, 1710}, - dictWord{8, 11, 286}, - dictWord{9, 11, 667}, - dictWord{11, 11, 592}, - dictWord{ - 139, - 11, - 730, - }, - dictWord{136, 10, 617}, - dictWord{135, 0, 1120}, - dictWord{135, 11, 1146}, - dictWord{139, 10, 563}, - dictWord{4, 11, 352}, - dictWord{4, 10, 369}, - dictWord{135, 11, 687}, - dictWord{143, 11, 38}, - dictWord{4, 0, 399}, - dictWord{5, 0, 119}, - dictWord{5, 0, 494}, - dictWord{7, 0, 751}, - dictWord{9, 0, 556}, - dictWord{ - 14, - 11, - 179, - }, - dictWord{15, 11, 151}, - dictWord{150, 11, 11}, - dictWord{4, 11, 192}, - dictWord{5, 11, 49}, - dictWord{6, 11, 200}, - dictWord{6, 11, 293}, - dictWord{ - 6, - 11, - 1696, - }, - dictWord{135, 11, 488}, - dictWord{4, 0, 398}, - dictWord{133, 0, 660}, - dictWord{7, 0, 1030}, - dictWord{134, 10, 622}, - dictWord{135, 11, 595}, - dictWord{141, 0, 168}, - dictWord{132, 11, 147}, - dictWord{7, 0, 973}, - dictWord{10, 10, 624}, - dictWord{142, 10, 279}, - dictWord{132, 10, 363}, - dictWord{ - 132, - 0, - 642, - }, - dictWord{133, 11, 934}, - dictWord{134, 0, 1615}, - dictWord{7, 11, 505}, - dictWord{135, 11, 523}, - dictWord{7, 0, 594}, - dictWord{7, 0, 851}, - dictWord{ - 7, - 0, - 1858, - }, - dictWord{9, 0, 411}, - dictWord{9, 0, 574}, - dictWord{9, 0, 666}, - dictWord{9, 0, 737}, - dictWord{10, 0, 346}, - dictWord{10, 0, 712}, - dictWord{11, 0, 246}, - dictWord{11, 0, 432}, - dictWord{11, 0, 517}, - dictWord{11, 0, 647}, - dictWord{11, 0, 679}, - dictWord{11, 0, 727}, - dictWord{12, 0, 304}, - dictWord{12, 0, 305}, - dictWord{ - 12, - 0, - 323, - }, - dictWord{12, 0, 483}, - dictWord{12, 0, 572}, - dictWord{12, 0, 593}, - dictWord{12, 0, 602}, - dictWord{13, 0, 95}, - dictWord{13, 0, 101}, - dictWord{ - 13, - 0, - 171, - }, - dictWord{13, 0, 315}, - dictWord{13, 0, 378}, - dictWord{13, 0, 425}, - dictWord{13, 0, 475}, - dictWord{14, 0, 63}, - dictWord{14, 0, 380}, - dictWord{14, 0, 384}, - dictWord{15, 0, 133}, - dictWord{18, 0, 112}, - dictWord{148, 0, 72}, - dictWord{135, 0, 1093}, - dictWord{132, 0, 679}, - dictWord{8, 0, 913}, - dictWord{10, 0, 903}, - dictWord{10, 0, 915}, - dictWord{12, 0, 648}, - dictWord{12, 0, 649}, - dictWord{14, 0, 455}, - dictWord{16, 0, 112}, - dictWord{138, 11, 438}, - dictWord{137, 0, 203}, - dictWord{134, 10, 292}, - dictWord{134, 0, 1492}, - dictWord{7, 0, 1374}, - dictWord{8, 0, 540}, - dictWord{5, 10, 177}, - dictWord{6, 10, 616}, - dictWord{7, 10, 827}, - dictWord{9, 10, 525}, - dictWord{138, 10, 656}, - dictWord{135, 0, 1486}, - dictWord{9, 0, 714}, - dictWord{138, 10, 31}, - dictWord{136, 0, 825}, - dictWord{ - 134, - 0, - 1511, - }, - dictWord{132, 11, 637}, - dictWord{134, 0, 952}, - dictWord{4, 10, 161}, - dictWord{133, 10, 631}, - dictWord{5, 0, 143}, - dictWord{5, 0, 769}, - dictWord{ - 6, - 0, - 1760, - }, - dictWord{7, 0, 682}, - dictWord{7, 0, 1992}, - dictWord{136, 0, 736}, - dictWord{132, 0, 700}, - dictWord{134, 0, 1540}, - dictWord{132, 11, 777}, - dictWord{ - 9, - 11, - 867, - }, - dictWord{138, 11, 837}, - dictWord{7, 0, 1557}, - dictWord{135, 10, 1684}, - dictWord{133, 0, 860}, - dictWord{6, 0, 422}, - dictWord{7, 0, 0}, - dictWord{ - 7, - 0, - 1544, - }, - dictWord{9, 0, 605}, - dictWord{11, 0, 990}, - dictWord{12, 0, 235}, - dictWord{12, 0, 453}, - dictWord{13, 0, 47}, - dictWord{13, 0, 266}, - dictWord{9, 10, 469}, - dictWord{9, 10, 709}, - dictWord{12, 10, 512}, - dictWord{14, 10, 65}, - dictWord{145, 10, 12}, - dictWord{11, 0, 807}, - dictWord{10, 10, 229}, - dictWord{11, 10, 73}, - dictWord{139, 10, 376}, - dictWord{6, 11, 170}, - dictWord{7, 11, 1080}, - dictWord{8, 11, 395}, - dictWord{8, 11, 487}, - dictWord{11, 11, 125}, - dictWord{ - 141, - 11, - 147, - }, - dictWord{5, 0, 515}, - dictWord{137, 0, 131}, - dictWord{7, 0, 1605}, - dictWord{11, 0, 962}, - dictWord{146, 0, 139}, - dictWord{132, 0, 646}, - dictWord{ - 4, - 0, - 396, - }, - dictWord{7, 0, 728}, - dictWord{9, 0, 117}, - dictWord{13, 0, 202}, - dictWord{148, 0, 51}, - dictWord{6, 0, 121}, - dictWord{6, 0, 124}, - dictWord{6, 0, 357}, - dictWord{ - 7, - 0, - 1138, - }, - dictWord{7, 0, 1295}, - dictWord{8, 0, 162}, - dictWord{8, 0, 508}, - dictWord{11, 0, 655}, - dictWord{4, 11, 535}, - dictWord{6, 10, 558}, - dictWord{ - 7, - 10, - 651, - }, - dictWord{8, 11, 618}, - dictWord{9, 10, 0}, - dictWord{10, 10, 34}, - dictWord{139, 10, 1008}, - dictWord{135, 11, 1245}, - dictWord{138, 0, 357}, - dictWord{ - 150, - 11, - 23, - }, - dictWord{133, 0, 237}, - dictWord{135, 0, 1784}, - dictWord{7, 10, 1832}, - dictWord{138, 10, 374}, - dictWord{132, 0, 713}, - dictWord{132, 11, 46}, - dictWord{6, 0, 1536}, - dictWord{10, 0, 348}, - dictWord{5, 11, 811}, - dictWord{6, 11, 1679}, - dictWord{6, 11, 1714}, - dictWord{135, 11, 2032}, - dictWord{ - 11, - 11, - 182, - }, - dictWord{142, 11, 195}, - dictWord{6, 0, 523}, - dictWord{7, 0, 738}, - dictWord{7, 10, 771}, - dictWord{7, 10, 1731}, - dictWord{9, 10, 405}, - dictWord{ - 138, - 10, - 421, - }, - dictWord{7, 11, 1458}, - dictWord{9, 11, 407}, - dictWord{139, 11, 15}, - dictWord{6, 11, 34}, - dictWord{7, 11, 69}, - dictWord{7, 11, 640}, - dictWord{ - 7, - 11, - 1089, - }, - dictWord{8, 11, 708}, - dictWord{8, 11, 721}, - dictWord{9, 11, 363}, - dictWord{9, 11, 643}, - dictWord{10, 11, 628}, - dictWord{148, 11, 98}, - dictWord{ - 133, - 0, - 434, - }, - dictWord{135, 0, 1877}, - dictWord{7, 0, 571}, - dictWord{138, 0, 366}, - dictWord{5, 10, 881}, - dictWord{133, 10, 885}, - dictWord{9, 0, 513}, - dictWord{ - 10, - 0, - 25, - }, - dictWord{10, 0, 39}, - dictWord{12, 0, 122}, - dictWord{140, 0, 187}, - dictWord{132, 0, 580}, - dictWord{5, 10, 142}, - dictWord{134, 10, 546}, - dictWord{ - 132, - 11, - 462, - }, - dictWord{137, 0, 873}, - dictWord{5, 10, 466}, - dictWord{11, 10, 571}, - dictWord{12, 10, 198}, - dictWord{13, 10, 283}, - dictWord{14, 10, 186}, - dictWord{15, 10, 21}, - dictWord{143, 10, 103}, - dictWord{7, 0, 171}, - dictWord{4, 10, 185}, - dictWord{5, 10, 257}, - dictWord{5, 10, 839}, - dictWord{5, 10, 936}, - dictWord{ - 9, - 10, - 399, - }, - dictWord{10, 10, 258}, - dictWord{10, 10, 395}, - dictWord{10, 10, 734}, - dictWord{11, 10, 1014}, - dictWord{12, 10, 23}, - dictWord{13, 10, 350}, - dictWord{14, 10, 150}, - dictWord{147, 10, 6}, - dictWord{134, 0, 625}, - dictWord{7, 0, 107}, - dictWord{7, 0, 838}, - dictWord{8, 0, 550}, - dictWord{138, 0, 401}, - dictWord{ - 5, - 11, - 73, - }, - dictWord{6, 11, 23}, - dictWord{134, 11, 338}, - dictWord{4, 0, 943}, - dictWord{6, 0, 1850}, - dictWord{12, 0, 713}, - dictWord{142, 0, 434}, - dictWord{ - 11, - 0, - 588, - }, - dictWord{11, 0, 864}, - dictWord{11, 0, 936}, - dictWord{11, 0, 968}, - dictWord{12, 0, 73}, - dictWord{12, 0, 343}, - dictWord{12, 0, 394}, - dictWord{13, 0, 275}, - dictWord{14, 0, 257}, - dictWord{15, 0, 160}, - dictWord{7, 10, 404}, - dictWord{7, 10, 1377}, - dictWord{7, 10, 1430}, - dictWord{7, 10, 2017}, - dictWord{8, 10, 149}, - dictWord{8, 10, 239}, - dictWord{8, 10, 512}, - dictWord{8, 10, 793}, - dictWord{8, 10, 818}, - dictWord{9, 10, 474}, - dictWord{9, 10, 595}, - dictWord{10, 10, 122}, - dictWord{10, 10, 565}, - dictWord{10, 10, 649}, - dictWord{10, 10, 783}, - dictWord{11, 10, 239}, - dictWord{11, 10, 295}, - dictWord{11, 10, 447}, - dictWord{ - 11, - 10, - 528, - }, - dictWord{11, 10, 639}, - dictWord{11, 10, 800}, - dictWord{12, 10, 25}, - dictWord{12, 10, 157}, - dictWord{12, 10, 316}, - dictWord{12, 10, 390}, - dictWord{ - 12, - 10, - 391, - }, - dictWord{12, 10, 395}, - dictWord{12, 10, 478}, - dictWord{12, 10, 503}, - dictWord{12, 10, 592}, - dictWord{12, 10, 680}, - dictWord{13, 10, 50}, - dictWord{13, 10, 53}, - dictWord{13, 10, 132}, - dictWord{13, 10, 198}, - dictWord{13, 10, 322}, - dictWord{13, 10, 415}, - dictWord{13, 10, 511}, - dictWord{14, 10, 71}, - dictWord{14, 10, 395}, - dictWord{15, 10, 71}, - dictWord{15, 10, 136}, - dictWord{17, 10, 123}, - dictWord{18, 10, 93}, - dictWord{147, 10, 58}, - dictWord{ - 133, - 0, - 768, - }, - dictWord{11, 0, 103}, - dictWord{142, 0, 0}, - dictWord{136, 10, 712}, - dictWord{132, 0, 799}, - dictWord{132, 0, 894}, - dictWord{7, 11, 725}, - dictWord{ - 8, - 11, - 498, - }, - dictWord{139, 11, 268}, - dictWord{135, 11, 1798}, - dictWord{135, 11, 773}, - dictWord{141, 11, 360}, - dictWord{4, 10, 377}, - dictWord{152, 10, 13}, - dictWord{135, 0, 1673}, - dictWord{132, 11, 583}, - dictWord{134, 0, 1052}, - dictWord{133, 11, 220}, - dictWord{140, 11, 69}, - dictWord{132, 11, 544}, - dictWord{ - 4, - 10, - 180, - }, - dictWord{135, 10, 1906}, - dictWord{134, 0, 272}, - dictWord{4, 0, 441}, - dictWord{134, 0, 1421}, - dictWord{4, 0, 9}, - dictWord{5, 0, 128}, - dictWord{ - 7, - 0, - 368, - }, - dictWord{11, 0, 480}, - dictWord{148, 0, 3}, - dictWord{5, 11, 176}, - dictWord{6, 11, 437}, - dictWord{6, 11, 564}, - dictWord{11, 11, 181}, - dictWord{ - 141, - 11, - 183, - }, - dictWord{132, 10, 491}, - dictWord{7, 0, 1182}, - dictWord{141, 11, 67}, - dictWord{6, 0, 1346}, - dictWord{4, 10, 171}, - dictWord{138, 10, 234}, - dictWord{ - 4, - 10, - 586, - }, - dictWord{7, 10, 1186}, - dictWord{138, 10, 631}, - dictWord{136, 0, 682}, - dictWord{134, 0, 1004}, - dictWord{15, 0, 24}, - dictWord{143, 11, 24}, - dictWord{134, 0, 968}, - dictWord{4, 0, 2}, - dictWord{6, 0, 742}, - dictWord{6, 0, 793}, - dictWord{7, 0, 545}, - dictWord{7, 0, 894}, - dictWord{9, 10, 931}, - dictWord{ - 10, - 10, - 334, - }, - dictWord{148, 10, 71}, - dictWord{136, 11, 600}, - dictWord{133, 10, 765}, - dictWord{9, 0, 769}, - dictWord{140, 0, 185}, - dictWord{4, 11, 790}, - dictWord{ - 5, - 11, - 273, - }, - dictWord{134, 11, 394}, - dictWord{7, 0, 474}, - dictWord{137, 0, 578}, - dictWord{4, 11, 135}, - dictWord{6, 11, 127}, - dictWord{7, 11, 1185}, - dictWord{ - 7, - 11, - 1511, - }, - dictWord{8, 11, 613}, - dictWord{11, 11, 5}, - dictWord{12, 11, 133}, - dictWord{12, 11, 495}, - dictWord{12, 11, 586}, - dictWord{14, 11, 385}, - dictWord{15, 11, 118}, - dictWord{17, 11, 20}, - dictWord{146, 11, 98}, - dictWord{133, 10, 424}, - dictWord{5, 0, 530}, - dictWord{142, 0, 113}, - dictWord{6, 11, 230}, - dictWord{7, 11, 961}, - dictWord{7, 11, 1085}, - dictWord{136, 11, 462}, - dictWord{7, 11, 1954}, - dictWord{137, 11, 636}, - dictWord{136, 10, 714}, - dictWord{ - 149, - 11, - 6, - }, - dictWord{135, 10, 685}, - dictWord{9, 10, 420}, - dictWord{10, 10, 269}, - dictWord{10, 10, 285}, - dictWord{10, 10, 576}, - dictWord{11, 10, 397}, - dictWord{13, 10, 175}, - dictWord{145, 10, 90}, - dictWord{132, 10, 429}, - dictWord{5, 0, 556}, - dictWord{5, 11, 162}, - dictWord{136, 11, 68}, - dictWord{132, 11, 654}, - dictWord{4, 11, 156}, - dictWord{7, 11, 998}, - dictWord{7, 11, 1045}, - dictWord{7, 11, 1860}, - dictWord{9, 11, 48}, - dictWord{9, 11, 692}, - dictWord{11, 11, 419}, - dictWord{139, 11, 602}, - dictWord{6, 0, 1317}, - dictWord{8, 0, 16}, - dictWord{9, 0, 825}, - dictWord{12, 0, 568}, - dictWord{7, 11, 1276}, - dictWord{8, 11, 474}, - dictWord{137, 11, 652}, - dictWord{18, 0, 97}, - dictWord{7, 10, 18}, - dictWord{7, 10, 699}, - dictWord{7, 10, 1966}, - dictWord{8, 10, 752}, - dictWord{9, 10, 273}, - dictWord{ - 9, - 10, - 412, - }, - dictWord{9, 10, 703}, - dictWord{10, 10, 71}, - dictWord{10, 10, 427}, - dictWord{138, 10, 508}, - dictWord{10, 0, 703}, - dictWord{7, 11, 1454}, - dictWord{138, 11, 703}, - dictWord{4, 10, 53}, - dictWord{5, 10, 186}, - dictWord{135, 10, 752}, - dictWord{134, 0, 892}, - dictWord{134, 0, 1571}, - dictWord{8, 10, 575}, - dictWord{10, 10, 289}, - dictWord{139, 10, 319}, - dictWord{6, 0, 186}, - dictWord{137, 0, 426}, - dictWord{134, 0, 1101}, - dictWord{132, 10, 675}, - dictWord{ - 132, - 0, - 585, - }, - dictWord{6, 0, 1870}, - dictWord{137, 0, 937}, - dictWord{152, 11, 10}, - dictWord{9, 11, 197}, - dictWord{10, 11, 300}, - dictWord{12, 11, 473}, - dictWord{ - 13, - 11, - 90, - }, - dictWord{141, 11, 405}, - dictWord{4, 0, 93}, - dictWord{5, 0, 252}, - dictWord{6, 0, 229}, - dictWord{7, 0, 291}, - dictWord{9, 0, 550}, - dictWord{139, 0, 644}, - dictWord{137, 0, 749}, - dictWord{9, 0, 162}, - dictWord{6, 10, 209}, - dictWord{8, 10, 468}, - dictWord{9, 10, 210}, - dictWord{11, 10, 36}, - dictWord{12, 10, 28}, - dictWord{12, 10, 630}, - dictWord{13, 10, 21}, - dictWord{13, 10, 349}, - dictWord{14, 10, 7}, - dictWord{145, 10, 13}, - dictWord{132, 0, 381}, - dictWord{132, 11, 606}, - dictWord{4, 10, 342}, - dictWord{135, 10, 1179}, - dictWord{7, 11, 1587}, - dictWord{7, 11, 1707}, - dictWord{10, 11, 528}, - dictWord{139, 11, 504}, - dictWord{ - 12, - 11, - 39, - }, - dictWord{13, 11, 265}, - dictWord{141, 11, 439}, - dictWord{4, 10, 928}, - dictWord{133, 10, 910}, - dictWord{7, 10, 1838}, - dictWord{7, 11, 1978}, - dictWord{136, 11, 676}, - dictWord{6, 0, 762}, - dictWord{6, 0, 796}, - dictWord{134, 0, 956}, - dictWord{4, 10, 318}, - dictWord{4, 10, 496}, - dictWord{7, 10, 856}, - dictWord{139, 10, 654}, - dictWord{137, 11, 242}, - dictWord{4, 11, 361}, - dictWord{133, 11, 315}, - dictWord{132, 11, 461}, - dictWord{132, 11, 472}, - dictWord{ - 132, - 0, - 857, - }, - dictWord{5, 0, 21}, - dictWord{6, 0, 77}, - dictWord{6, 0, 157}, - dictWord{7, 0, 974}, - dictWord{7, 0, 1301}, - dictWord{7, 0, 1339}, - dictWord{7, 0, 1490}, - dictWord{ - 7, - 0, - 1873, - }, - dictWord{9, 0, 628}, - dictWord{7, 10, 915}, - dictWord{8, 10, 247}, - dictWord{147, 10, 0}, - dictWord{4, 10, 202}, - dictWord{5, 10, 382}, - dictWord{ - 6, - 10, - 454, - }, - dictWord{7, 10, 936}, - dictWord{7, 10, 1803}, - dictWord{8, 10, 758}, - dictWord{9, 10, 375}, - dictWord{9, 10, 895}, - dictWord{10, 10, 743}, - dictWord{ - 10, - 10, - 792, - }, - dictWord{11, 10, 978}, - dictWord{11, 10, 1012}, - dictWord{142, 10, 109}, - dictWord{7, 11, 617}, - dictWord{10, 11, 498}, - dictWord{11, 11, 501}, - dictWord{12, 11, 16}, - dictWord{140, 11, 150}, - dictWord{7, 10, 1150}, - dictWord{7, 10, 1425}, - dictWord{7, 10, 1453}, - dictWord{10, 11, 747}, - dictWord{ - 140, - 10, - 513, - }, - dictWord{133, 11, 155}, - dictWord{11, 0, 919}, - dictWord{141, 0, 409}, - dictWord{138, 10, 791}, - dictWord{10, 0, 633}, - dictWord{139, 11, 729}, - dictWord{ - 7, - 11, - 163, - }, - dictWord{8, 11, 319}, - dictWord{9, 11, 402}, - dictWord{10, 11, 24}, - dictWord{10, 11, 681}, - dictWord{11, 11, 200}, - dictWord{11, 11, 567}, - dictWord{12, 11, 253}, - dictWord{12, 11, 410}, - dictWord{142, 11, 219}, - dictWord{5, 11, 475}, - dictWord{7, 11, 1780}, - dictWord{9, 11, 230}, - dictWord{11, 11, 297}, - dictWord{11, 11, 558}, - dictWord{14, 11, 322}, - dictWord{147, 11, 76}, - dictWord{7, 0, 332}, - dictWord{6, 10, 445}, - dictWord{137, 10, 909}, - dictWord{ - 135, - 11, - 1956, - }, - dictWord{136, 11, 274}, - dictWord{134, 10, 578}, - dictWord{135, 0, 1489}, - dictWord{135, 11, 1848}, - dictWord{5, 11, 944}, - dictWord{ - 134, - 11, - 1769, - }, - dictWord{132, 11, 144}, - dictWord{136, 10, 766}, - dictWord{4, 0, 832}, - dictWord{135, 10, 541}, - dictWord{8, 0, 398}, - dictWord{9, 0, 681}, - dictWord{ - 139, - 0, - 632, - }, - dictWord{136, 0, 645}, - dictWord{9, 0, 791}, - dictWord{10, 0, 93}, - dictWord{16, 0, 13}, - dictWord{17, 0, 23}, - dictWord{18, 0, 135}, - dictWord{19, 0, 12}, - dictWord{20, 0, 1}, - dictWord{20, 0, 12}, - dictWord{148, 0, 14}, - dictWord{6, 11, 247}, - dictWord{137, 11, 555}, - dictWord{134, 0, 20}, - dictWord{132, 0, 800}, - dictWord{135, 0, 1841}, - dictWord{139, 10, 983}, - dictWord{137, 10, 768}, - dictWord{132, 10, 584}, - dictWord{141, 11, 51}, - dictWord{6, 0, 1993}, - dictWord{ - 4, - 11, - 620, - }, - dictWord{138, 11, 280}, - dictWord{136, 0, 769}, - dictWord{11, 0, 290}, - dictWord{11, 0, 665}, - dictWord{7, 11, 1810}, - dictWord{11, 11, 866}, - dictWord{ - 12, - 11, - 103, - }, - dictWord{13, 11, 495}, - dictWord{17, 11, 67}, - dictWord{147, 11, 74}, - dictWord{134, 0, 1426}, - dictWord{139, 0, 60}, - dictWord{4, 10, 326}, - dictWord{135, 10, 1770}, - dictWord{7, 0, 1874}, - dictWord{9, 0, 641}, - dictWord{132, 10, 226}, - dictWord{6, 0, 644}, - dictWord{5, 10, 426}, - dictWord{8, 10, 30}, - dictWord{ - 9, - 10, - 2, - }, - dictWord{11, 10, 549}, - dictWord{147, 10, 122}, - dictWord{5, 11, 428}, - dictWord{138, 11, 442}, - dictWord{135, 11, 1871}, - dictWord{ - 135, - 0, - 1757, - }, - dictWord{147, 10, 117}, - dictWord{135, 0, 937}, - dictWord{135, 0, 1652}, - dictWord{6, 0, 654}, - dictWord{134, 0, 1476}, - dictWord{133, 11, 99}, - dictWord{135, 0, 527}, - dictWord{132, 10, 345}, - dictWord{4, 10, 385}, - dictWord{4, 11, 397}, - dictWord{7, 10, 265}, - dictWord{135, 10, 587}, - dictWord{4, 0, 579}, - dictWord{5, 0, 226}, - dictWord{5, 0, 323}, - dictWord{135, 0, 960}, - dictWord{134, 0, 1486}, - dictWord{8, 11, 502}, - dictWord{144, 11, 9}, - dictWord{4, 10, 347}, - dictWord{ - 5, - 10, - 423, - }, - dictWord{5, 10, 996}, - dictWord{135, 10, 1329}, - dictWord{7, 11, 727}, - dictWord{146, 11, 73}, - dictWord{4, 11, 485}, - dictWord{7, 11, 353}, - dictWord{7, 10, 1259}, - dictWord{7, 11, 1523}, - dictWord{9, 10, 125}, - dictWord{139, 10, 65}, - dictWord{6, 0, 325}, - dictWord{5, 10, 136}, - dictWord{6, 11, 366}, - dictWord{ - 7, - 11, - 1384, - }, - dictWord{7, 11, 1601}, - dictWord{136, 10, 644}, - dictWord{138, 11, 160}, - dictWord{6, 0, 1345}, - dictWord{137, 11, 282}, - dictWord{18, 0, 91}, - dictWord{147, 0, 70}, - dictWord{136, 0, 404}, - dictWord{4, 11, 157}, - dictWord{133, 11, 471}, - dictWord{133, 0, 973}, - dictWord{6, 0, 135}, - dictWord{ - 135, - 0, - 1176, - }, - dictWord{8, 11, 116}, - dictWord{11, 11, 551}, - dictWord{142, 11, 159}, - dictWord{4, 0, 549}, - dictWord{4, 10, 433}, - dictWord{133, 10, 719}, - dictWord{ - 136, - 0, - 976, - }, - dictWord{5, 11, 160}, - dictWord{7, 11, 363}, - dictWord{7, 11, 589}, - dictWord{10, 11, 170}, - dictWord{141, 11, 55}, - dictWord{144, 0, 21}, - dictWord{ - 144, - 0, - 51, - }, - dictWord{135, 0, 314}, - dictWord{135, 10, 1363}, - dictWord{4, 11, 108}, - dictWord{7, 11, 405}, - dictWord{10, 11, 491}, - dictWord{139, 11, 498}, - dictWord{146, 0, 4}, - dictWord{4, 10, 555}, - dictWord{8, 10, 536}, - dictWord{10, 10, 288}, - dictWord{139, 10, 1005}, - dictWord{135, 11, 1005}, - dictWord{6, 0, 281}, - dictWord{7, 0, 6}, - dictWord{8, 0, 282}, - dictWord{8, 0, 480}, - dictWord{8, 0, 499}, - dictWord{9, 0, 198}, - dictWord{10, 0, 143}, - dictWord{10, 0, 169}, - dictWord{ - 10, - 0, - 211, - }, - dictWord{10, 0, 417}, - dictWord{10, 0, 574}, - dictWord{11, 0, 147}, - dictWord{11, 0, 395}, - dictWord{12, 0, 75}, - dictWord{12, 0, 407}, - dictWord{12, 0, 608}, - dictWord{13, 0, 500}, - dictWord{142, 0, 251}, - dictWord{6, 0, 1093}, - dictWord{6, 0, 1405}, - dictWord{9, 10, 370}, - dictWord{138, 10, 90}, - dictWord{4, 11, 926}, - dictWord{133, 11, 983}, - dictWord{135, 0, 1776}, - dictWord{134, 0, 1528}, - dictWord{132, 0, 419}, - dictWord{132, 11, 538}, - dictWord{6, 11, 294}, - dictWord{ - 7, - 11, - 1267, - }, - dictWord{136, 11, 624}, - dictWord{135, 11, 1772}, - dictWord{138, 11, 301}, - dictWord{4, 10, 257}, - dictWord{135, 10, 2031}, - dictWord{4, 0, 138}, - dictWord{7, 0, 1012}, - dictWord{7, 0, 1280}, - dictWord{9, 0, 76}, - dictWord{135, 10, 1768}, - dictWord{132, 11, 757}, - dictWord{5, 0, 29}, - dictWord{140, 0, 638}, - dictWord{7, 11, 655}, - dictWord{135, 11, 1844}, - dictWord{7, 0, 1418}, - dictWord{6, 11, 257}, - dictWord{135, 11, 1522}, - dictWord{8, 11, 469}, - dictWord{ - 138, - 11, - 47, - }, - dictWord{142, 11, 278}, - dictWord{6, 10, 83}, - dictWord{6, 10, 1733}, - dictWord{135, 10, 1389}, - dictWord{11, 11, 204}, - dictWord{11, 11, 243}, - dictWord{140, 11, 293}, - dictWord{135, 11, 1875}, - dictWord{6, 0, 1710}, - dictWord{135, 0, 2038}, - dictWord{137, 11, 299}, - dictWord{4, 0, 17}, - dictWord{5, 0, 23}, - dictWord{7, 0, 995}, - dictWord{11, 0, 383}, - dictWord{11, 0, 437}, - dictWord{12, 0, 460}, - dictWord{140, 0, 532}, - dictWord{133, 0, 862}, - dictWord{137, 10, 696}, - dictWord{6, 0, 592}, - dictWord{138, 0, 946}, - dictWord{138, 11, 599}, - dictWord{7, 10, 1718}, - dictWord{9, 10, 95}, - dictWord{9, 10, 274}, - dictWord{10, 10, 279}, - dictWord{10, 10, 317}, - dictWord{10, 10, 420}, - dictWord{11, 10, 303}, - dictWord{11, 10, 808}, - dictWord{12, 10, 134}, - dictWord{12, 10, 367}, - dictWord{ - 13, - 10, - 149, - }, - dictWord{13, 10, 347}, - dictWord{14, 10, 349}, - dictWord{14, 10, 406}, - dictWord{18, 10, 22}, - dictWord{18, 10, 89}, - dictWord{18, 10, 122}, - dictWord{ - 147, - 10, - 47, - }, - dictWord{8, 0, 70}, - dictWord{12, 0, 171}, - dictWord{141, 0, 272}, - dictWord{133, 10, 26}, - dictWord{132, 10, 550}, - dictWord{137, 0, 812}, - dictWord{ - 10, - 0, - 233, - }, - dictWord{139, 0, 76}, - dictWord{134, 0, 988}, - dictWord{134, 0, 442}, - dictWord{136, 10, 822}, - dictWord{7, 0, 896}, - dictWord{4, 10, 902}, - dictWord{ - 5, - 10, - 809, - }, - dictWord{134, 10, 122}, - dictWord{5, 11, 150}, - dictWord{7, 11, 106}, - dictWord{8, 11, 603}, - dictWord{9, 11, 593}, - dictWord{9, 11, 634}, - dictWord{ - 10, - 11, - 44, - }, - dictWord{10, 11, 173}, - dictWord{11, 11, 462}, - dictWord{11, 11, 515}, - dictWord{13, 11, 216}, - dictWord{13, 11, 288}, - dictWord{142, 11, 400}, - dictWord{136, 0, 483}, - dictWord{135, 10, 262}, - dictWord{6, 0, 1709}, - dictWord{133, 10, 620}, - dictWord{4, 10, 34}, - dictWord{5, 10, 574}, - dictWord{7, 10, 279}, - dictWord{7, 10, 1624}, - dictWord{136, 10, 601}, - dictWord{137, 10, 170}, - dictWord{147, 0, 119}, - dictWord{12, 11, 108}, - dictWord{141, 11, 291}, - dictWord{ - 11, - 0, - 69, - }, - dictWord{12, 0, 105}, - dictWord{12, 0, 117}, - dictWord{13, 0, 213}, - dictWord{14, 0, 13}, - dictWord{14, 0, 62}, - dictWord{14, 0, 177}, - dictWord{14, 0, 421}, - dictWord{15, 0, 19}, - dictWord{146, 0, 141}, - dictWord{137, 0, 309}, - dictWord{11, 11, 278}, - dictWord{142, 11, 73}, - dictWord{7, 0, 608}, - dictWord{7, 0, 976}, - dictWord{9, 0, 146}, - dictWord{10, 0, 206}, - dictWord{10, 0, 596}, - dictWord{13, 0, 218}, - dictWord{142, 0, 153}, - dictWord{133, 10, 332}, - dictWord{6, 10, 261}, - dictWord{ - 8, - 10, - 182, - }, - dictWord{139, 10, 943}, - dictWord{4, 11, 493}, - dictWord{144, 11, 55}, - dictWord{134, 10, 1721}, - dictWord{132, 0, 768}, - dictWord{4, 10, 933}, - dictWord{133, 10, 880}, - dictWord{7, 11, 555}, - dictWord{7, 11, 1316}, - dictWord{7, 11, 1412}, - dictWord{7, 11, 1839}, - dictWord{9, 11, 192}, - dictWord{ - 9, - 11, - 589, - }, - dictWord{11, 11, 241}, - dictWord{11, 11, 676}, - dictWord{11, 11, 811}, - dictWord{11, 11, 891}, - dictWord{12, 11, 140}, - dictWord{12, 11, 346}, - dictWord{ - 12, - 11, - 479, - }, - dictWord{13, 11, 30}, - dictWord{13, 11, 49}, - dictWord{13, 11, 381}, - dictWord{14, 11, 188}, - dictWord{15, 11, 150}, - dictWord{16, 11, 76}, - dictWord{18, 11, 30}, - dictWord{148, 11, 52}, - dictWord{4, 0, 518}, - dictWord{135, 0, 1136}, - dictWord{6, 11, 568}, - dictWord{7, 11, 112}, - dictWord{7, 11, 1804}, - dictWord{8, 11, 362}, - dictWord{8, 11, 410}, - dictWord{8, 11, 830}, - dictWord{9, 11, 514}, - dictWord{11, 11, 649}, - dictWord{142, 11, 157}, - dictWord{135, 11, 673}, - dictWord{8, 0, 689}, - dictWord{137, 0, 863}, - dictWord{4, 0, 18}, - dictWord{7, 0, 145}, - dictWord{7, 0, 444}, - dictWord{7, 0, 1278}, - dictWord{8, 0, 49}, - dictWord{8, 0, 400}, - dictWord{9, 0, 71}, - dictWord{9, 0, 250}, - dictWord{10, 0, 459}, - dictWord{12, 0, 160}, - dictWord{16, 0, 24}, - dictWord{132, 11, 625}, - dictWord{140, 0, 1020}, - dictWord{4, 0, 997}, - dictWord{6, 0, 1946}, - dictWord{6, 0, 1984}, - dictWord{134, 0, 1998}, - dictWord{6, 11, 16}, - dictWord{6, 11, 158}, - dictWord{7, 11, 43}, - dictWord{ - 7, - 11, - 129, - }, - dictWord{7, 11, 181}, - dictWord{8, 11, 276}, - dictWord{8, 11, 377}, - dictWord{10, 11, 523}, - dictWord{11, 11, 816}, - dictWord{12, 11, 455}, - dictWord{ - 13, - 11, - 303, - }, - dictWord{142, 11, 135}, - dictWord{133, 10, 812}, - dictWord{134, 0, 658}, - dictWord{4, 11, 1}, - dictWord{7, 11, 1143}, - dictWord{7, 11, 1463}, - dictWord{8, 11, 61}, - dictWord{9, 11, 207}, - dictWord{9, 11, 390}, - dictWord{9, 11, 467}, - dictWord{139, 11, 836}, - dictWord{150, 11, 26}, - dictWord{140, 0, 106}, - dictWord{6, 0, 1827}, - dictWord{10, 0, 931}, - dictWord{18, 0, 166}, - dictWord{20, 0, 114}, - dictWord{4, 10, 137}, - dictWord{7, 10, 1178}, - dictWord{7, 11, 1319}, - dictWord{135, 10, 1520}, - dictWord{133, 0, 1010}, - dictWord{4, 11, 723}, - dictWord{5, 11, 895}, - dictWord{7, 11, 1031}, - dictWord{8, 11, 199}, - dictWord{8, 11, 340}, - dictWord{9, 11, 153}, - dictWord{9, 11, 215}, - dictWord{10, 11, 21}, - dictWord{10, 11, 59}, - dictWord{10, 11, 80}, - dictWord{10, 11, 224}, - dictWord{11, 11, 229}, - dictWord{11, 11, 652}, - dictWord{12, 11, 192}, - dictWord{13, 11, 146}, - dictWord{142, 11, 91}, - dictWord{132, 11, 295}, - dictWord{6, 11, 619}, - dictWord{ - 7, - 11, - 898, - }, - dictWord{7, 11, 1092}, - dictWord{8, 11, 485}, - dictWord{18, 11, 28}, - dictWord{147, 11, 116}, - dictWord{137, 11, 51}, - dictWord{6, 10, 1661}, - dictWord{ - 7, - 10, - 1975, - }, - dictWord{7, 10, 2009}, - dictWord{135, 10, 2011}, - dictWord{5, 11, 309}, - dictWord{140, 11, 211}, - dictWord{5, 0, 87}, - dictWord{7, 0, 313}, - dictWord{ - 7, - 0, - 1103, - }, - dictWord{10, 0, 208}, - dictWord{10, 0, 582}, - dictWord{11, 0, 389}, - dictWord{11, 0, 813}, - dictWord{12, 0, 385}, - dictWord{13, 0, 286}, - dictWord{ - 14, - 0, - 124, - }, - dictWord{146, 0, 108}, - dictWord{5, 11, 125}, - dictWord{8, 11, 77}, - dictWord{138, 11, 15}, - dictWord{132, 0, 267}, - dictWord{133, 0, 703}, - dictWord{ - 137, - 11, - 155, - }, - dictWord{133, 11, 439}, - dictWord{11, 11, 164}, - dictWord{140, 11, 76}, - dictWord{9, 0, 496}, - dictWord{5, 10, 89}, - dictWord{7, 10, 1915}, - dictWord{ - 9, - 10, - 185, - }, - dictWord{9, 10, 235}, - dictWord{10, 10, 64}, - dictWord{10, 10, 270}, - dictWord{10, 10, 403}, - dictWord{10, 10, 469}, - dictWord{10, 10, 529}, - dictWord{10, 10, 590}, - dictWord{11, 10, 140}, - dictWord{11, 10, 860}, - dictWord{13, 10, 1}, - dictWord{13, 10, 422}, - dictWord{14, 10, 341}, - dictWord{14, 10, 364}, - dictWord{17, 10, 93}, - dictWord{18, 10, 113}, - dictWord{19, 10, 97}, - dictWord{147, 10, 113}, - dictWord{133, 10, 695}, - dictWord{135, 0, 1121}, - dictWord{ - 5, - 10, - 6, - }, - dictWord{6, 10, 183}, - dictWord{7, 10, 680}, - dictWord{7, 10, 978}, - dictWord{7, 10, 1013}, - dictWord{7, 10, 1055}, - dictWord{12, 10, 230}, - dictWord{ - 13, - 10, - 172, - }, - dictWord{146, 10, 29}, - dictWord{4, 11, 8}, - dictWord{7, 11, 1152}, - dictWord{7, 11, 1153}, - dictWord{7, 11, 1715}, - dictWord{9, 11, 374}, - dictWord{ - 10, - 11, - 478, - }, - dictWord{139, 11, 648}, - dictWord{135, 11, 1099}, - dictWord{6, 10, 29}, - dictWord{139, 10, 63}, - dictWord{4, 0, 561}, - dictWord{10, 0, 249}, - dictWord{ - 139, - 0, - 209, - }, - dictWord{132, 0, 760}, - dictWord{7, 11, 799}, - dictWord{138, 11, 511}, - dictWord{136, 11, 87}, - dictWord{9, 0, 154}, - dictWord{140, 0, 485}, - dictWord{136, 0, 255}, - dictWord{132, 0, 323}, - dictWord{140, 0, 419}, - dictWord{132, 10, 311}, - dictWord{134, 10, 1740}, - dictWord{4, 0, 368}, - dictWord{ - 135, - 0, - 641, - }, - dictWord{7, 10, 170}, - dictWord{8, 10, 90}, - dictWord{8, 10, 177}, - dictWord{8, 10, 415}, - dictWord{11, 10, 714}, - dictWord{142, 10, 281}, - dictWord{ - 4, - 11, - 69, - }, - dictWord{5, 11, 122}, - dictWord{9, 11, 656}, - dictWord{138, 11, 464}, - dictWord{5, 11, 849}, - dictWord{134, 11, 1633}, - dictWord{8, 0, 522}, - dictWord{ - 142, - 0, - 328, - }, - dictWord{11, 10, 91}, - dictWord{13, 10, 129}, - dictWord{15, 10, 101}, - dictWord{145, 10, 125}, - dictWord{7, 0, 562}, - dictWord{8, 0, 551}, - dictWord{ - 4, - 10, - 494, - }, - dictWord{6, 10, 74}, - dictWord{7, 10, 44}, - dictWord{11, 11, 499}, - dictWord{12, 10, 17}, - dictWord{15, 10, 5}, - dictWord{148, 10, 11}, - dictWord{4, 10, 276}, - dictWord{133, 10, 296}, - dictWord{9, 0, 92}, - dictWord{147, 0, 91}, - dictWord{4, 10, 7}, - dictWord{5, 10, 90}, - dictWord{5, 10, 158}, - dictWord{6, 10, 542}, - dictWord{ - 7, - 10, - 221, - }, - dictWord{7, 10, 1574}, - dictWord{9, 10, 490}, - dictWord{10, 10, 540}, - dictWord{11, 10, 443}, - dictWord{139, 10, 757}, - dictWord{6, 0, 525}, - dictWord{ - 6, - 0, - 1976, - }, - dictWord{8, 0, 806}, - dictWord{9, 0, 876}, - dictWord{140, 0, 284}, - dictWord{5, 11, 859}, - dictWord{7, 10, 588}, - dictWord{7, 11, 1160}, - dictWord{ - 8, - 11, - 107, - }, - dictWord{9, 10, 175}, - dictWord{9, 11, 291}, - dictWord{9, 11, 439}, - dictWord{10, 10, 530}, - dictWord{10, 11, 663}, - dictWord{11, 11, 609}, - dictWord{ - 140, - 11, - 197, - }, - dictWord{7, 11, 168}, - dictWord{13, 11, 196}, - dictWord{141, 11, 237}, - dictWord{139, 0, 958}, - dictWord{133, 0, 594}, - dictWord{135, 10, 580}, - dictWord{7, 10, 88}, - dictWord{136, 10, 627}, - dictWord{6, 0, 479}, - dictWord{6, 0, 562}, - dictWord{7, 0, 1060}, - dictWord{13, 0, 6}, - dictWord{5, 10, 872}, - dictWord{ - 6, - 10, - 57, - }, - dictWord{7, 10, 471}, - dictWord{9, 10, 447}, - dictWord{137, 10, 454}, - dictWord{136, 11, 413}, - dictWord{145, 11, 19}, - dictWord{4, 11, 117}, - dictWord{ - 6, - 11, - 372, - }, - dictWord{7, 11, 1905}, - dictWord{142, 11, 323}, - dictWord{4, 11, 722}, - dictWord{139, 11, 471}, - dictWord{17, 0, 61}, - dictWord{5, 10, 31}, - dictWord{134, 10, 614}, - dictWord{8, 10, 330}, - dictWord{140, 10, 477}, - dictWord{7, 10, 1200}, - dictWord{138, 10, 460}, - dictWord{6, 10, 424}, - dictWord{ - 135, - 10, - 1866, - }, - dictWord{6, 0, 1641}, - dictWord{136, 0, 820}, - dictWord{6, 0, 1556}, - dictWord{134, 0, 1618}, - dictWord{9, 11, 5}, - dictWord{12, 11, 216}, - dictWord{ - 12, - 11, - 294, - }, - dictWord{12, 11, 298}, - dictWord{12, 11, 400}, - dictWord{12, 11, 518}, - dictWord{13, 11, 229}, - dictWord{143, 11, 139}, - dictWord{15, 11, 155}, - dictWord{144, 11, 79}, - dictWord{4, 0, 302}, - dictWord{135, 0, 1766}, - dictWord{5, 10, 13}, - dictWord{134, 10, 142}, - dictWord{6, 0, 148}, - dictWord{7, 0, 1313}, - dictWord{ - 7, - 10, - 116, - }, - dictWord{8, 10, 322}, - dictWord{8, 10, 755}, - dictWord{9, 10, 548}, - dictWord{10, 10, 714}, - dictWord{11, 10, 884}, - dictWord{141, 10, 324}, - dictWord{137, 0, 676}, - dictWord{9, 11, 88}, - dictWord{139, 11, 270}, - dictWord{5, 11, 12}, - dictWord{7, 11, 375}, - dictWord{137, 11, 438}, - dictWord{134, 0, 1674}, - dictWord{7, 10, 1472}, - dictWord{135, 10, 1554}, - dictWord{11, 0, 178}, - dictWord{7, 10, 1071}, - dictWord{7, 10, 1541}, - dictWord{7, 10, 1767}, - dictWord{ - 7, - 10, - 1806, - }, - dictWord{11, 10, 162}, - dictWord{11, 10, 242}, - dictWord{12, 10, 605}, - dictWord{15, 10, 26}, - dictWord{144, 10, 44}, - dictWord{6, 0, 389}, - dictWord{ - 7, - 0, - 149, - }, - dictWord{9, 0, 142}, - dictWord{138, 0, 94}, - dictWord{140, 11, 71}, - dictWord{145, 10, 115}, - dictWord{6, 0, 8}, - dictWord{7, 0, 1881}, - dictWord{8, 0, 91}, - dictWord{11, 11, 966}, - dictWord{12, 11, 287}, - dictWord{13, 11, 342}, - dictWord{13, 11, 402}, - dictWord{15, 11, 110}, - dictWord{143, 11, 163}, - dictWord{ - 4, - 11, - 258, - }, - dictWord{136, 11, 639}, - dictWord{6, 11, 22}, - dictWord{7, 11, 903}, - dictWord{138, 11, 577}, - dictWord{133, 11, 681}, - dictWord{135, 10, 1111}, - dictWord{135, 11, 1286}, - dictWord{9, 0, 112}, - dictWord{8, 10, 1}, - dictWord{138, 10, 326}, - dictWord{5, 10, 488}, - dictWord{6, 10, 527}, - dictWord{7, 10, 489}, - dictWord{ - 7, - 10, - 1636, - }, - dictWord{8, 10, 121}, - dictWord{8, 10, 144}, - dictWord{8, 10, 359}, - dictWord{9, 10, 193}, - dictWord{9, 10, 241}, - dictWord{9, 10, 336}, - dictWord{ - 9, - 10, - 882, - }, - dictWord{11, 10, 266}, - dictWord{11, 10, 372}, - dictWord{11, 10, 944}, - dictWord{12, 10, 401}, - dictWord{140, 10, 641}, - dictWord{4, 11, 664}, - dictWord{133, 11, 804}, - dictWord{6, 0, 747}, - dictWord{134, 0, 1015}, - dictWord{135, 0, 1746}, - dictWord{9, 10, 31}, - dictWord{10, 10, 244}, - dictWord{ - 10, - 10, - 699, - }, - dictWord{12, 10, 149}, - dictWord{141, 10, 497}, - dictWord{133, 10, 377}, - dictWord{135, 0, 24}, - dictWord{6, 0, 1352}, - dictWord{5, 11, 32}, - dictWord{ - 145, - 10, - 101, - }, - dictWord{7, 0, 1530}, - dictWord{10, 0, 158}, - dictWord{13, 0, 13}, - dictWord{13, 0, 137}, - dictWord{13, 0, 258}, - dictWord{14, 0, 111}, - dictWord{ - 14, - 0, - 225, - }, - dictWord{14, 0, 253}, - dictWord{14, 0, 304}, - dictWord{14, 0, 339}, - dictWord{14, 0, 417}, - dictWord{146, 0, 33}, - dictWord{4, 0, 503}, - dictWord{ - 135, - 0, - 1661, - }, - dictWord{5, 0, 130}, - dictWord{6, 0, 845}, - dictWord{7, 0, 1314}, - dictWord{9, 0, 610}, - dictWord{10, 0, 718}, - dictWord{11, 0, 601}, - dictWord{11, 0, 819}, - dictWord{11, 0, 946}, - dictWord{140, 0, 536}, - dictWord{10, 0, 149}, - dictWord{11, 0, 280}, - dictWord{142, 0, 336}, - dictWord{134, 0, 1401}, - dictWord{ - 135, - 0, - 1946, - }, - dictWord{8, 0, 663}, - dictWord{144, 0, 8}, - dictWord{134, 0, 1607}, - dictWord{135, 10, 2023}, - dictWord{4, 11, 289}, - dictWord{7, 11, 629}, - dictWord{ - 7, - 11, - 1698, - }, - dictWord{7, 11, 1711}, - dictWord{140, 11, 215}, - dictWord{6, 11, 450}, - dictWord{136, 11, 109}, - dictWord{10, 0, 882}, - dictWord{10, 0, 883}, - dictWord{10, 0, 914}, - dictWord{138, 0, 928}, - dictWord{133, 10, 843}, - dictWord{136, 11, 705}, - dictWord{132, 10, 554}, - dictWord{133, 10, 536}, - dictWord{ - 5, - 0, - 417, - }, - dictWord{9, 10, 79}, - dictWord{11, 10, 625}, - dictWord{145, 10, 7}, - dictWord{7, 11, 1238}, - dictWord{142, 11, 37}, - dictWord{4, 0, 392}, - dictWord{ - 135, - 0, - 1597, - }, - dictWord{5, 0, 433}, - dictWord{9, 0, 633}, - dictWord{11, 0, 629}, - dictWord{132, 10, 424}, - dictWord{7, 10, 336}, - dictWord{136, 10, 785}, - dictWord{ - 134, - 11, - 355, - }, - dictWord{6, 0, 234}, - dictWord{7, 0, 769}, - dictWord{9, 0, 18}, - dictWord{138, 0, 358}, - dictWord{4, 10, 896}, - dictWord{134, 10, 1777}, - dictWord{ - 138, - 11, - 323, - }, - dictWord{7, 0, 140}, - dictWord{7, 0, 1950}, - dictWord{8, 0, 680}, - dictWord{11, 0, 817}, - dictWord{147, 0, 88}, - dictWord{7, 0, 1222}, - dictWord{ - 138, - 0, - 386, - }, - dictWord{139, 11, 908}, - dictWord{11, 0, 249}, - dictWord{12, 0, 313}, - dictWord{16, 0, 66}, - dictWord{145, 0, 26}, - dictWord{134, 0, 5}, - dictWord{7, 10, 750}, - dictWord{9, 10, 223}, - dictWord{11, 10, 27}, - dictWord{11, 10, 466}, - dictWord{12, 10, 624}, - dictWord{14, 10, 265}, - dictWord{146, 10, 61}, - dictWord{ - 134, - 11, - 26, - }, - dictWord{134, 0, 1216}, - dictWord{5, 0, 963}, - dictWord{134, 0, 1773}, - dictWord{4, 11, 414}, - dictWord{5, 11, 467}, - dictWord{9, 11, 654}, - dictWord{ - 10, - 11, - 451, - }, - dictWord{12, 11, 59}, - dictWord{141, 11, 375}, - dictWord{135, 11, 17}, - dictWord{4, 10, 603}, - dictWord{133, 10, 661}, - dictWord{4, 10, 11}, - dictWord{ - 6, - 10, - 128, - }, - dictWord{7, 10, 231}, - dictWord{7, 10, 1533}, - dictWord{138, 10, 725}, - dictWord{135, 11, 955}, - dictWord{7, 0, 180}, - dictWord{8, 0, 509}, - dictWord{ - 136, - 0, - 792, - }, - dictWord{132, 10, 476}, - dictWord{132, 0, 1002}, - dictWord{133, 11, 538}, - dictWord{135, 10, 1807}, - dictWord{132, 0, 931}, - dictWord{7, 0, 943}, - dictWord{11, 0, 614}, - dictWord{140, 0, 747}, - dictWord{135, 0, 1837}, - dictWord{9, 10, 20}, - dictWord{10, 10, 324}, - dictWord{10, 10, 807}, - dictWord{ - 139, - 10, - 488, - }, - dictWord{134, 0, 641}, - dictWord{6, 11, 280}, - dictWord{10, 11, 502}, - dictWord{11, 11, 344}, - dictWord{140, 11, 38}, - dictWord{5, 11, 45}, - dictWord{ - 7, - 11, - 1161, - }, - dictWord{11, 11, 448}, - dictWord{11, 11, 880}, - dictWord{13, 11, 139}, - dictWord{13, 11, 407}, - dictWord{15, 11, 16}, - dictWord{17, 11, 95}, - dictWord{ - 18, - 11, - 66, - }, - dictWord{18, 11, 88}, - dictWord{18, 11, 123}, - dictWord{149, 11, 7}, - dictWord{9, 0, 280}, - dictWord{138, 0, 134}, - dictWord{22, 0, 22}, - dictWord{23, 0, 5}, - dictWord{151, 0, 29}, - dictWord{136, 11, 777}, - dictWord{4, 0, 90}, - dictWord{5, 0, 545}, - dictWord{7, 0, 754}, - dictWord{9, 0, 186}, - dictWord{10, 0, 72}, - dictWord{ - 10, - 0, - 782, - }, - dictWord{11, 0, 577}, - dictWord{11, 0, 610}, - dictWord{11, 0, 960}, - dictWord{12, 0, 354}, - dictWord{12, 0, 362}, - dictWord{12, 0, 595}, - dictWord{ - 4, - 11, - 410, - }, - dictWord{135, 11, 521}, - dictWord{135, 11, 1778}, - dictWord{5, 10, 112}, - dictWord{6, 10, 103}, - dictWord{134, 10, 150}, - dictWord{138, 10, 356}, - dictWord{132, 0, 742}, - dictWord{7, 0, 151}, - dictWord{9, 0, 329}, - dictWord{139, 0, 254}, - dictWord{8, 0, 853}, - dictWord{8, 0, 881}, - dictWord{8, 0, 911}, - dictWord{ - 8, - 0, - 912, - }, - dictWord{10, 0, 872}, - dictWord{12, 0, 741}, - dictWord{12, 0, 742}, - dictWord{152, 0, 18}, - dictWord{4, 11, 573}, - dictWord{136, 11, 655}, - dictWord{ - 6, - 0, - 921, - }, - dictWord{134, 0, 934}, - dictWord{9, 0, 187}, - dictWord{10, 0, 36}, - dictWord{11, 0, 1016}, - dictWord{17, 0, 44}, - dictWord{146, 0, 64}, - dictWord{7, 0, 833}, - dictWord{136, 0, 517}, - dictWord{4, 0, 506}, - dictWord{5, 0, 295}, - dictWord{135, 0, 1680}, - dictWord{4, 10, 708}, - dictWord{8, 10, 15}, - dictWord{9, 10, 50}, - dictWord{ - 9, - 10, - 386, - }, - dictWord{11, 10, 18}, - dictWord{11, 10, 529}, - dictWord{140, 10, 228}, - dictWord{7, 0, 251}, - dictWord{7, 0, 1701}, - dictWord{8, 0, 436}, - dictWord{ - 4, - 10, - 563, - }, - dictWord{7, 10, 592}, - dictWord{7, 10, 637}, - dictWord{7, 10, 770}, - dictWord{8, 10, 463}, - dictWord{9, 10, 60}, - dictWord{9, 10, 335}, - dictWord{9, 10, 904}, - dictWord{10, 10, 73}, - dictWord{11, 10, 434}, - dictWord{12, 10, 585}, - dictWord{13, 10, 331}, - dictWord{18, 10, 110}, - dictWord{148, 10, 60}, - dictWord{ - 132, - 10, - 502, - }, - dictWord{136, 0, 584}, - dictWord{6, 10, 347}, - dictWord{138, 10, 161}, - dictWord{7, 0, 987}, - dictWord{9, 0, 688}, - dictWord{10, 0, 522}, - dictWord{ - 11, - 0, - 788, - }, - dictWord{12, 0, 137}, - dictWord{12, 0, 566}, - dictWord{14, 0, 9}, - dictWord{14, 0, 24}, - dictWord{14, 0, 64}, - dictWord{7, 11, 899}, - dictWord{142, 11, 325}, - dictWord{4, 0, 214}, - dictWord{5, 0, 500}, - dictWord{5, 10, 102}, - dictWord{6, 10, 284}, - dictWord{7, 10, 1079}, - dictWord{7, 10, 1423}, - dictWord{7, 10, 1702}, - dictWord{ - 8, - 10, - 470, - }, - dictWord{9, 10, 554}, - dictWord{9, 10, 723}, - dictWord{139, 10, 333}, - dictWord{7, 10, 246}, - dictWord{135, 10, 840}, - dictWord{6, 10, 10}, - dictWord{ - 8, - 10, - 571, - }, - dictWord{9, 10, 739}, - dictWord{143, 10, 91}, - dictWord{133, 10, 626}, - dictWord{146, 0, 195}, - dictWord{134, 0, 1775}, - dictWord{7, 0, 389}, - dictWord{7, 0, 700}, - dictWord{7, 0, 940}, - dictWord{8, 0, 514}, - dictWord{9, 0, 116}, - dictWord{9, 0, 535}, - dictWord{10, 0, 118}, - dictWord{11, 0, 107}, - dictWord{ - 11, - 0, - 148, - }, - dictWord{11, 0, 922}, - dictWord{12, 0, 254}, - dictWord{12, 0, 421}, - dictWord{142, 0, 238}, - dictWord{5, 10, 18}, - dictWord{6, 10, 526}, - dictWord{13, 10, 24}, - dictWord{13, 10, 110}, - dictWord{19, 10, 5}, - dictWord{147, 10, 44}, - dictWord{132, 0, 743}, - dictWord{11, 0, 292}, - dictWord{4, 10, 309}, - dictWord{5, 10, 462}, - dictWord{7, 10, 970}, - dictWord{135, 10, 1097}, - dictWord{22, 10, 30}, - dictWord{150, 10, 33}, - dictWord{139, 11, 338}, - dictWord{135, 11, 1598}, - dictWord{ - 7, - 0, - 1283, - }, - dictWord{9, 0, 227}, - dictWord{11, 0, 325}, - dictWord{11, 0, 408}, - dictWord{14, 0, 180}, - dictWord{146, 0, 47}, - dictWord{4, 0, 953}, - dictWord{6, 0, 1805}, - dictWord{6, 0, 1814}, - dictWord{6, 0, 1862}, - dictWord{140, 0, 774}, - dictWord{6, 11, 611}, - dictWord{135, 11, 1733}, - dictWord{135, 11, 1464}, - dictWord{ - 5, - 0, - 81, - }, - dictWord{7, 0, 146}, - dictWord{7, 0, 1342}, - dictWord{8, 0, 53}, - dictWord{8, 0, 561}, - dictWord{8, 0, 694}, - dictWord{8, 0, 754}, - dictWord{9, 0, 115}, - dictWord{ - 9, - 0, - 179, - }, - dictWord{9, 0, 894}, - dictWord{10, 0, 462}, - dictWord{10, 0, 813}, - dictWord{11, 0, 230}, - dictWord{11, 0, 657}, - dictWord{11, 0, 699}, - dictWord{11, 0, 748}, - dictWord{12, 0, 119}, - dictWord{12, 0, 200}, - dictWord{12, 0, 283}, - dictWord{142, 0, 273}, - dictWord{5, 0, 408}, - dictWord{6, 0, 789}, - dictWord{6, 0, 877}, - dictWord{ - 6, - 0, - 1253, - }, - dictWord{6, 0, 1413}, - dictWord{137, 0, 747}, - dictWord{134, 10, 1704}, - dictWord{135, 11, 663}, - dictWord{6, 0, 1910}, - dictWord{6, 0, 1915}, - dictWord{6, 0, 1923}, - dictWord{9, 0, 913}, - dictWord{9, 0, 928}, - dictWord{9, 0, 950}, - dictWord{9, 0, 954}, - dictWord{9, 0, 978}, - dictWord{9, 0, 993}, - dictWord{12, 0, 812}, - dictWord{12, 0, 819}, - dictWord{12, 0, 831}, - dictWord{12, 0, 833}, - dictWord{12, 0, 838}, - dictWord{12, 0, 909}, - dictWord{12, 0, 928}, - dictWord{12, 0, 931}, - dictWord{12, 0, 950}, - dictWord{15, 0, 186}, - dictWord{15, 0, 187}, - dictWord{15, 0, 195}, - dictWord{15, 0, 196}, - dictWord{15, 0, 209}, - dictWord{15, 0, 215}, - dictWord{ - 15, - 0, - 236, - }, - dictWord{15, 0, 241}, - dictWord{15, 0, 249}, - dictWord{15, 0, 253}, - dictWord{18, 0, 180}, - dictWord{18, 0, 221}, - dictWord{18, 0, 224}, - dictWord{ - 18, - 0, - 227, - }, - dictWord{18, 0, 229}, - dictWord{149, 0, 60}, - dictWord{7, 0, 1826}, - dictWord{135, 0, 1938}, - dictWord{11, 0, 490}, - dictWord{18, 0, 143}, - dictWord{ - 5, - 10, - 86, - }, - dictWord{7, 10, 743}, - dictWord{9, 10, 85}, - dictWord{10, 10, 281}, - dictWord{10, 10, 432}, - dictWord{12, 10, 251}, - dictWord{13, 10, 118}, - dictWord{ - 142, - 10, - 378, - }, - dictWord{5, 10, 524}, - dictWord{133, 10, 744}, - dictWord{141, 11, 442}, - dictWord{10, 10, 107}, - dictWord{140, 10, 436}, - dictWord{135, 11, 503}, - dictWord{134, 0, 1162}, - dictWord{132, 10, 927}, - dictWord{7, 0, 30}, - dictWord{8, 0, 86}, - dictWord{8, 0, 315}, - dictWord{8, 0, 700}, - dictWord{9, 0, 576}, - dictWord{ - 9, - 0, - 858, - }, - dictWord{10, 0, 414}, - dictWord{11, 0, 310}, - dictWord{11, 0, 888}, - dictWord{11, 0, 904}, - dictWord{12, 0, 361}, - dictWord{13, 0, 248}, - dictWord{13, 0, 371}, - dictWord{14, 0, 142}, - dictWord{12, 10, 670}, - dictWord{146, 10, 94}, - dictWord{134, 0, 721}, - dictWord{4, 11, 113}, - dictWord{5, 11, 163}, - dictWord{5, 11, 735}, - dictWord{7, 11, 1009}, - dictWord{7, 10, 1149}, - dictWord{9, 11, 9}, - dictWord{9, 10, 156}, - dictWord{9, 11, 771}, - dictWord{12, 11, 90}, - dictWord{13, 11, 138}, - dictWord{13, 11, 410}, - dictWord{143, 11, 128}, - dictWord{138, 0, 839}, - dictWord{133, 10, 778}, - dictWord{137, 0, 617}, - dictWord{133, 10, 502}, - dictWord{ - 8, - 10, - 196, - }, - dictWord{10, 10, 283}, - dictWord{139, 10, 406}, - dictWord{6, 0, 428}, - dictWord{7, 0, 524}, - dictWord{8, 0, 169}, - dictWord{8, 0, 234}, - dictWord{9, 0, 480}, - dictWord{138, 0, 646}, - dictWord{133, 10, 855}, - dictWord{134, 0, 1648}, - dictWord{7, 0, 1205}, - dictWord{138, 0, 637}, - dictWord{7, 0, 1596}, - dictWord{ - 4, - 11, - 935, - }, - dictWord{133, 11, 823}, - dictWord{5, 11, 269}, - dictWord{7, 11, 434}, - dictWord{7, 11, 891}, - dictWord{8, 11, 339}, - dictWord{9, 11, 702}, - dictWord{ - 11, - 11, - 594, - }, - dictWord{11, 11, 718}, - dictWord{145, 11, 100}, - dictWord{7, 11, 878}, - dictWord{9, 11, 485}, - dictWord{141, 11, 264}, - dictWord{4, 0, 266}, - dictWord{ - 8, - 0, - 4, - }, - dictWord{9, 0, 39}, - dictWord{10, 0, 166}, - dictWord{11, 0, 918}, - dictWord{12, 0, 635}, - dictWord{20, 0, 10}, - dictWord{22, 0, 27}, - dictWord{22, 0, 43}, - dictWord{ - 22, - 0, - 52, - }, - dictWord{134, 11, 1713}, - dictWord{7, 10, 1400}, - dictWord{9, 10, 446}, - dictWord{138, 10, 45}, - dictWord{135, 11, 900}, - dictWord{132, 0, 862}, - dictWord{134, 0, 1554}, - dictWord{135, 11, 1033}, - dictWord{19, 0, 16}, - dictWord{147, 11, 16}, - dictWord{135, 11, 1208}, - dictWord{7, 0, 157}, - dictWord{ - 136, - 0, - 279, - }, - dictWord{6, 0, 604}, - dictWord{136, 0, 391}, - dictWord{13, 10, 455}, - dictWord{15, 10, 99}, - dictWord{15, 10, 129}, - dictWord{144, 10, 68}, - dictWord{ - 135, - 10, - 172, - }, - dictWord{7, 0, 945}, - dictWord{11, 0, 713}, - dictWord{139, 0, 744}, - dictWord{4, 0, 973}, - dictWord{10, 0, 877}, - dictWord{10, 0, 937}, - dictWord{ - 10, - 0, - 938, - }, - dictWord{140, 0, 711}, - dictWord{139, 0, 1022}, - dictWord{132, 10, 568}, - dictWord{142, 11, 143}, - dictWord{4, 0, 567}, - dictWord{9, 0, 859}, - dictWord{ - 132, - 10, - 732, - }, - dictWord{7, 0, 1846}, - dictWord{136, 0, 628}, - dictWord{136, 10, 733}, - dictWord{133, 0, 762}, - dictWord{4, 10, 428}, - dictWord{135, 10, 1789}, - dictWord{10, 0, 784}, - dictWord{13, 0, 191}, - dictWord{7, 10, 2015}, - dictWord{140, 10, 665}, - dictWord{133, 0, 298}, - dictWord{7, 0, 633}, - dictWord{7, 0, 905}, - dictWord{7, 0, 909}, - dictWord{7, 0, 1538}, - dictWord{9, 0, 767}, - dictWord{140, 0, 636}, - dictWord{138, 10, 806}, - dictWord{132, 0, 795}, - dictWord{139, 0, 301}, - dictWord{135, 0, 1970}, - dictWord{5, 11, 625}, - dictWord{135, 11, 1617}, - dictWord{135, 11, 275}, - dictWord{7, 11, 37}, - dictWord{8, 11, 425}, - dictWord{ - 8, - 11, - 693, - }, - dictWord{9, 11, 720}, - dictWord{10, 11, 380}, - dictWord{10, 11, 638}, - dictWord{11, 11, 273}, - dictWord{11, 11, 307}, - dictWord{11, 11, 473}, - dictWord{ - 12, - 11, - 61, - }, - dictWord{143, 11, 43}, - dictWord{135, 11, 198}, - dictWord{134, 0, 1236}, - dictWord{7, 0, 369}, - dictWord{12, 0, 644}, - dictWord{12, 0, 645}, - dictWord{144, 0, 90}, - dictWord{19, 0, 15}, - dictWord{149, 0, 27}, - dictWord{6, 0, 71}, - dictWord{7, 0, 845}, - dictWord{8, 0, 160}, - dictWord{9, 0, 318}, - dictWord{6, 10, 1623}, - dictWord{134, 10, 1681}, - dictWord{134, 0, 1447}, - dictWord{134, 0, 1255}, - dictWord{138, 0, 735}, - dictWord{8, 0, 76}, - dictWord{132, 11, 168}, - dictWord{ - 6, - 10, - 1748, - }, - dictWord{8, 10, 715}, - dictWord{9, 10, 802}, - dictWord{10, 10, 46}, - dictWord{10, 10, 819}, - dictWord{13, 10, 308}, - dictWord{14, 10, 351}, - dictWord{14, 10, 363}, - dictWord{146, 10, 67}, - dictWord{135, 11, 91}, - dictWord{6, 0, 474}, - dictWord{4, 10, 63}, - dictWord{133, 10, 347}, - dictWord{133, 10, 749}, - dictWord{138, 0, 841}, - dictWord{133, 10, 366}, - dictWord{6, 0, 836}, - dictWord{132, 11, 225}, - dictWord{135, 0, 1622}, - dictWord{135, 10, 89}, - dictWord{ - 140, - 0, - 735, - }, - dictWord{134, 0, 1601}, - dictWord{138, 11, 145}, - dictWord{6, 0, 1390}, - dictWord{137, 0, 804}, - dictWord{142, 0, 394}, - dictWord{6, 11, 15}, - dictWord{ - 7, - 11, - 70, - }, - dictWord{10, 11, 240}, - dictWord{147, 11, 93}, - dictWord{6, 0, 96}, - dictWord{135, 0, 1426}, - dictWord{4, 0, 651}, - dictWord{133, 0, 289}, - dictWord{ - 7, - 11, - 956, - }, - dictWord{7, 10, 977}, - dictWord{7, 11, 1157}, - dictWord{7, 11, 1506}, - dictWord{7, 11, 1606}, - dictWord{7, 11, 1615}, - dictWord{7, 11, 1619}, - dictWord{ - 7, - 11, - 1736, - }, - dictWord{7, 11, 1775}, - dictWord{8, 11, 590}, - dictWord{9, 11, 324}, - dictWord{9, 11, 736}, - dictWord{9, 11, 774}, - dictWord{9, 11, 776}, - dictWord{ - 9, - 11, - 784, - }, - dictWord{10, 11, 567}, - dictWord{10, 11, 708}, - dictWord{11, 11, 518}, - dictWord{11, 11, 613}, - dictWord{11, 11, 695}, - dictWord{11, 11, 716}, - dictWord{11, 11, 739}, - dictWord{11, 11, 770}, - dictWord{11, 11, 771}, - dictWord{11, 11, 848}, - dictWord{11, 11, 857}, - dictWord{11, 11, 931}, - dictWord{ - 11, - 11, - 947, - }, - dictWord{12, 11, 326}, - dictWord{12, 11, 387}, - dictWord{12, 11, 484}, - dictWord{12, 11, 528}, - dictWord{12, 11, 552}, - dictWord{12, 11, 613}, - dictWord{ - 13, - 11, - 189, - }, - dictWord{13, 11, 256}, - dictWord{13, 11, 340}, - dictWord{13, 11, 432}, - dictWord{13, 11, 436}, - dictWord{13, 11, 440}, - dictWord{13, 11, 454}, - dictWord{14, 11, 174}, - dictWord{14, 11, 220}, - dictWord{14, 11, 284}, - dictWord{14, 11, 390}, - dictWord{145, 11, 121}, - dictWord{7, 0, 688}, - dictWord{8, 0, 35}, - dictWord{9, 0, 511}, - dictWord{10, 0, 767}, - dictWord{147, 0, 118}, - dictWord{134, 0, 667}, - dictWord{4, 0, 513}, - dictWord{5, 10, 824}, - dictWord{133, 10, 941}, - dictWord{7, 10, 440}, - dictWord{8, 10, 230}, - dictWord{139, 10, 106}, - dictWord{134, 0, 2034}, - dictWord{135, 11, 1399}, - dictWord{143, 11, 66}, - dictWord{ - 135, - 11, - 1529, - }, - dictWord{4, 11, 145}, - dictWord{6, 11, 176}, - dictWord{7, 11, 395}, - dictWord{9, 11, 562}, - dictWord{144, 11, 28}, - dictWord{132, 11, 501}, - dictWord{132, 0, 704}, - dictWord{134, 0, 1524}, - dictWord{7, 0, 1078}, - dictWord{134, 11, 464}, - dictWord{6, 11, 509}, - dictWord{10, 11, 82}, - dictWord{20, 11, 91}, - dictWord{151, 11, 13}, - dictWord{4, 0, 720}, - dictWord{133, 0, 306}, - dictWord{133, 0, 431}, - dictWord{7, 0, 1196}, - dictWord{4, 10, 914}, - dictWord{5, 10, 800}, - dictWord{133, 10, 852}, - dictWord{135, 11, 1189}, - dictWord{10, 0, 54}, - dictWord{141, 10, 115}, - dictWord{7, 10, 564}, - dictWord{142, 10, 168}, - dictWord{ - 5, - 0, - 464, - }, - dictWord{6, 0, 236}, - dictWord{7, 0, 696}, - dictWord{7, 0, 914}, - dictWord{7, 0, 1108}, - dictWord{7, 0, 1448}, - dictWord{9, 0, 15}, - dictWord{9, 0, 564}, - dictWord{ - 10, - 0, - 14, - }, - dictWord{12, 0, 565}, - dictWord{13, 0, 449}, - dictWord{14, 0, 53}, - dictWord{15, 0, 13}, - dictWord{16, 0, 64}, - dictWord{17, 0, 41}, - dictWord{4, 10, 918}, - dictWord{133, 10, 876}, - dictWord{6, 0, 1418}, - dictWord{134, 10, 1764}, - dictWord{4, 10, 92}, - dictWord{133, 10, 274}, - dictWord{134, 0, 907}, - dictWord{ - 4, - 11, - 114, - }, - dictWord{8, 10, 501}, - dictWord{9, 11, 492}, - dictWord{13, 11, 462}, - dictWord{142, 11, 215}, - dictWord{4, 11, 77}, - dictWord{5, 11, 361}, - dictWord{ - 6, - 11, - 139, - }, - dictWord{6, 11, 401}, - dictWord{6, 11, 404}, - dictWord{7, 11, 413}, - dictWord{7, 11, 715}, - dictWord{7, 11, 1716}, - dictWord{11, 11, 279}, - dictWord{ - 12, - 11, - 179, - }, - dictWord{12, 11, 258}, - dictWord{13, 11, 244}, - dictWord{142, 11, 358}, - dictWord{6, 0, 1767}, - dictWord{12, 0, 194}, - dictWord{145, 0, 107}, - dictWord{ - 134, - 11, - 1717, - }, - dictWord{5, 10, 743}, - dictWord{142, 11, 329}, - dictWord{4, 10, 49}, - dictWord{7, 10, 280}, - dictWord{135, 10, 1633}, - dictWord{5, 0, 840}, - dictWord{7, 11, 1061}, - dictWord{8, 11, 82}, - dictWord{11, 11, 250}, - dictWord{12, 11, 420}, - dictWord{141, 11, 184}, - dictWord{135, 11, 724}, - dictWord{ - 134, - 0, - 900, - }, - dictWord{136, 10, 47}, - dictWord{134, 0, 1436}, - dictWord{144, 11, 0}, - dictWord{6, 0, 675}, - dictWord{7, 0, 1008}, - dictWord{7, 0, 1560}, - dictWord{ - 9, - 0, - 642, - }, - dictWord{11, 0, 236}, - dictWord{14, 0, 193}, - dictWord{5, 10, 272}, - dictWord{5, 10, 908}, - dictWord{5, 10, 942}, - dictWord{8, 10, 197}, - dictWord{9, 10, 47}, - dictWord{11, 10, 538}, - dictWord{139, 10, 742}, - dictWord{4, 0, 68}, - dictWord{5, 0, 628}, - dictWord{5, 0, 634}, - dictWord{6, 0, 386}, - dictWord{7, 0, 794}, - dictWord{ - 8, - 0, - 273, - }, - dictWord{9, 0, 563}, - dictWord{10, 0, 105}, - dictWord{10, 0, 171}, - dictWord{11, 0, 94}, - dictWord{139, 0, 354}, - dictWord{135, 10, 1911}, - dictWord{ - 137, - 10, - 891, - }, - dictWord{4, 0, 95}, - dictWord{6, 0, 1297}, - dictWord{6, 0, 1604}, - dictWord{7, 0, 416}, - dictWord{139, 0, 830}, - dictWord{6, 11, 513}, - dictWord{ - 135, - 11, - 1052, - }, - dictWord{7, 0, 731}, - dictWord{13, 0, 20}, - dictWord{143, 0, 11}, - dictWord{137, 11, 899}, - dictWord{10, 0, 850}, - dictWord{140, 0, 697}, - dictWord{ - 4, - 0, - 662, - }, - dictWord{7, 11, 1417}, - dictWord{12, 11, 382}, - dictWord{17, 11, 48}, - dictWord{152, 11, 12}, - dictWord{133, 0, 736}, - dictWord{132, 0, 861}, - dictWord{ - 4, - 10, - 407, - }, - dictWord{132, 10, 560}, - dictWord{141, 10, 490}, - dictWord{6, 11, 545}, - dictWord{7, 11, 565}, - dictWord{7, 11, 1669}, - dictWord{10, 11, 114}, - dictWord{11, 11, 642}, - dictWord{140, 11, 618}, - dictWord{6, 0, 871}, - dictWord{134, 0, 1000}, - dictWord{5, 0, 864}, - dictWord{10, 0, 648}, - dictWord{11, 0, 671}, - dictWord{15, 0, 46}, - dictWord{133, 11, 5}, - dictWord{133, 0, 928}, - dictWord{11, 0, 90}, - dictWord{13, 0, 7}, - dictWord{4, 10, 475}, - dictWord{11, 10, 35}, - dictWord{ - 13, - 10, - 71, - }, - dictWord{13, 10, 177}, - dictWord{142, 10, 422}, - dictWord{136, 0, 332}, - dictWord{135, 11, 192}, - dictWord{134, 0, 1055}, - dictWord{136, 11, 763}, - dictWord{11, 0, 986}, - dictWord{140, 0, 682}, - dictWord{7, 0, 76}, - dictWord{8, 0, 44}, - dictWord{9, 0, 884}, - dictWord{10, 0, 580}, - dictWord{11, 0, 399}, - dictWord{ - 11, - 0, - 894, - }, - dictWord{143, 0, 122}, - dictWord{135, 11, 1237}, - dictWord{135, 10, 636}, - dictWord{11, 0, 300}, - dictWord{6, 10, 222}, - dictWord{7, 10, 1620}, - dictWord{ - 8, - 10, - 409, - }, - dictWord{137, 10, 693}, - dictWord{4, 11, 87}, - dictWord{5, 11, 250}, - dictWord{10, 11, 601}, - dictWord{13, 11, 298}, - dictWord{13, 11, 353}, - dictWord{141, 11, 376}, - dictWord{5, 0, 518}, - dictWord{10, 0, 340}, - dictWord{11, 0, 175}, - dictWord{149, 0, 16}, - dictWord{140, 0, 771}, - dictWord{6, 0, 1108}, - dictWord{137, 0, 831}, - dictWord{132, 0, 836}, - dictWord{135, 0, 1852}, - dictWord{4, 0, 957}, - dictWord{6, 0, 1804}, - dictWord{8, 0, 842}, - dictWord{8, 0, 843}, - dictWord{ - 8, - 0, - 851, - }, - dictWord{8, 0, 855}, - dictWord{140, 0, 767}, - dictWord{135, 11, 814}, - dictWord{4, 11, 57}, - dictWord{7, 11, 1195}, - dictWord{7, 11, 1438}, - dictWord{ - 7, - 11, - 1548, - }, - dictWord{7, 11, 1835}, - dictWord{7, 11, 1904}, - dictWord{9, 11, 757}, - dictWord{10, 11, 604}, - dictWord{139, 11, 519}, - dictWord{133, 10, 882}, - dictWord{138, 0, 246}, - dictWord{4, 0, 934}, - dictWord{5, 0, 202}, - dictWord{8, 0, 610}, - dictWord{7, 11, 1897}, - dictWord{12, 11, 290}, - dictWord{13, 11, 80}, - dictWord{13, 11, 437}, - dictWord{145, 11, 74}, - dictWord{8, 0, 96}, - dictWord{9, 0, 36}, - dictWord{10, 0, 607}, - dictWord{10, 0, 804}, - dictWord{10, 0, 832}, - dictWord{ - 11, - 0, - 423, - }, - dictWord{11, 0, 442}, - dictWord{12, 0, 309}, - dictWord{14, 0, 199}, - dictWord{15, 0, 90}, - dictWord{145, 0, 110}, - dictWord{132, 10, 426}, - dictWord{ - 7, - 0, - 654, - }, - dictWord{8, 0, 240}, - dictWord{6, 10, 58}, - dictWord{7, 10, 745}, - dictWord{7, 10, 1969}, - dictWord{8, 10, 675}, - dictWord{9, 10, 479}, - dictWord{9, 10, 731}, - dictWord{10, 10, 330}, - dictWord{10, 10, 593}, - dictWord{10, 10, 817}, - dictWord{11, 10, 32}, - dictWord{11, 10, 133}, - dictWord{11, 10, 221}, - dictWord{ - 145, - 10, - 68, - }, - dictWord{9, 0, 13}, - dictWord{9, 0, 398}, - dictWord{9, 0, 727}, - dictWord{10, 0, 75}, - dictWord{10, 0, 184}, - dictWord{10, 0, 230}, - dictWord{10, 0, 564}, - dictWord{ - 10, - 0, - 569, - }, - dictWord{11, 0, 973}, - dictWord{12, 0, 70}, - dictWord{12, 0, 189}, - dictWord{13, 0, 57}, - dictWord{141, 0, 257}, - dictWord{4, 11, 209}, - dictWord{ - 135, - 11, - 902, - }, - dictWord{7, 0, 391}, - dictWord{137, 10, 538}, - dictWord{134, 0, 403}, - dictWord{6, 11, 303}, - dictWord{7, 11, 335}, - dictWord{7, 11, 1437}, - dictWord{ - 7, - 11, - 1668, - }, - dictWord{8, 11, 553}, - dictWord{8, 11, 652}, - dictWord{8, 11, 656}, - dictWord{9, 11, 558}, - dictWord{11, 11, 743}, - dictWord{149, 11, 18}, - dictWord{ - 132, - 11, - 559, - }, - dictWord{11, 0, 75}, - dictWord{142, 0, 267}, - dictWord{6, 0, 815}, - dictWord{141, 11, 2}, - dictWord{141, 0, 366}, - dictWord{137, 0, 631}, - dictWord{ - 133, - 11, - 1017, - }, - dictWord{5, 0, 345}, - dictWord{135, 0, 1016}, - dictWord{133, 11, 709}, - dictWord{134, 11, 1745}, - dictWord{133, 10, 566}, - dictWord{7, 0, 952}, - dictWord{6, 10, 48}, - dictWord{9, 10, 139}, - dictWord{10, 10, 399}, - dictWord{11, 10, 469}, - dictWord{12, 10, 634}, - dictWord{141, 10, 223}, - dictWord{ - 133, - 0, - 673, - }, - dictWord{9, 0, 850}, - dictWord{7, 11, 8}, - dictWord{136, 11, 206}, - dictWord{6, 0, 662}, - dictWord{149, 0, 35}, - dictWord{4, 0, 287}, - dictWord{133, 0, 1018}, - dictWord{6, 10, 114}, - dictWord{7, 10, 1224}, - dictWord{7, 10, 1556}, - dictWord{136, 10, 3}, - dictWord{8, 10, 576}, - dictWord{137, 10, 267}, - dictWord{4, 0, 884}, - dictWord{5, 0, 34}, - dictWord{10, 0, 724}, - dictWord{12, 0, 444}, - dictWord{13, 0, 354}, - dictWord{18, 0, 32}, - dictWord{23, 0, 24}, - dictWord{23, 0, 31}, - dictWord{ - 152, - 0, - 5, - }, - dictWord{133, 10, 933}, - dictWord{132, 11, 776}, - dictWord{138, 0, 151}, - dictWord{136, 0, 427}, - dictWord{134, 0, 382}, - dictWord{132, 0, 329}, - dictWord{ - 9, - 0, - 846, - }, - dictWord{10, 0, 827}, - dictWord{138, 11, 33}, - dictWord{9, 0, 279}, - dictWord{10, 0, 407}, - dictWord{14, 0, 84}, - dictWord{22, 0, 18}, - dictWord{ - 135, - 11, - 1297, - }, - dictWord{136, 11, 406}, - dictWord{132, 0, 906}, - dictWord{136, 0, 366}, - dictWord{134, 0, 843}, - dictWord{134, 0, 1443}, - dictWord{135, 0, 1372}, - dictWord{138, 0, 992}, - dictWord{4, 0, 123}, - dictWord{5, 0, 605}, - dictWord{7, 0, 1509}, - dictWord{136, 0, 36}, - dictWord{132, 0, 649}, - dictWord{8, 11, 175}, - dictWord{10, 11, 168}, - dictWord{138, 11, 573}, - dictWord{133, 0, 767}, - dictWord{134, 0, 1018}, - dictWord{135, 11, 1305}, - dictWord{12, 10, 30}, - dictWord{ - 13, - 10, - 148, - }, - dictWord{14, 10, 87}, - dictWord{14, 10, 182}, - dictWord{16, 10, 42}, - dictWord{148, 10, 70}, - dictWord{134, 11, 607}, - dictWord{4, 0, 273}, - dictWord{ - 5, - 0, - 658, - }, - dictWord{133, 0, 995}, - dictWord{6, 0, 72}, - dictWord{139, 11, 174}, - dictWord{10, 0, 483}, - dictWord{12, 0, 368}, - dictWord{7, 10, 56}, - dictWord{ - 7, - 10, - 1989, - }, - dictWord{8, 10, 337}, - dictWord{8, 10, 738}, - dictWord{9, 10, 600}, - dictWord{13, 10, 447}, - dictWord{142, 10, 92}, - dictWord{5, 11, 784}, - dictWord{ - 138, - 10, - 666, - }, - dictWord{135, 0, 1345}, - dictWord{139, 11, 882}, - dictWord{134, 0, 1293}, - dictWord{133, 0, 589}, - dictWord{134, 0, 1988}, - dictWord{5, 0, 117}, - dictWord{6, 0, 514}, - dictWord{6, 0, 541}, - dictWord{7, 0, 1164}, - dictWord{7, 0, 1436}, - dictWord{8, 0, 220}, - dictWord{8, 0, 648}, - dictWord{10, 0, 688}, - dictWord{ - 139, - 0, - 560, - }, - dictWord{136, 0, 379}, - dictWord{5, 0, 686}, - dictWord{7, 10, 866}, - dictWord{135, 10, 1163}, - dictWord{132, 10, 328}, - dictWord{9, 11, 14}, - dictWord{ - 9, - 11, - 441, - }, - dictWord{10, 11, 306}, - dictWord{139, 11, 9}, - dictWord{4, 10, 101}, - dictWord{135, 10, 1171}, - dictWord{5, 10, 833}, - dictWord{136, 10, 744}, - dictWord{5, 11, 161}, - dictWord{7, 11, 839}, - dictWord{135, 11, 887}, - dictWord{7, 0, 196}, - dictWord{10, 0, 765}, - dictWord{11, 0, 347}, - dictWord{11, 0, 552}, - dictWord{11, 0, 790}, - dictWord{12, 0, 263}, - dictWord{13, 0, 246}, - dictWord{13, 0, 270}, - dictWord{13, 0, 395}, - dictWord{14, 0, 176}, - dictWord{14, 0, 190}, - dictWord{ - 14, - 0, - 398, - }, - dictWord{14, 0, 412}, - dictWord{15, 0, 32}, - dictWord{15, 0, 63}, - dictWord{16, 0, 88}, - dictWord{147, 0, 105}, - dictWord{6, 10, 9}, - dictWord{6, 10, 397}, - dictWord{7, 10, 53}, - dictWord{7, 10, 1742}, - dictWord{10, 10, 632}, - dictWord{11, 10, 828}, - dictWord{140, 10, 146}, - dictWord{5, 0, 381}, - dictWord{135, 0, 1792}, - dictWord{134, 0, 1452}, - dictWord{135, 11, 429}, - dictWord{8, 0, 367}, - dictWord{10, 0, 760}, - dictWord{14, 0, 79}, - dictWord{20, 0, 17}, - dictWord{152, 0, 0}, - dictWord{7, 0, 616}, - dictWord{138, 0, 413}, - dictWord{11, 10, 417}, - dictWord{12, 10, 223}, - dictWord{140, 10, 265}, - dictWord{7, 11, 1611}, - dictWord{13, 11, 14}, - dictWord{15, 11, 44}, - dictWord{19, 11, 13}, - dictWord{148, 11, 76}, - dictWord{135, 0, 1229}, - dictWord{6, 0, 120}, - dictWord{7, 0, 1188}, - dictWord{7, 0, 1710}, - dictWord{8, 0, 286}, - dictWord{9, 0, 667}, - dictWord{11, 0, 592}, - dictWord{139, 0, 730}, - dictWord{135, 11, 1814}, - dictWord{135, 0, 1146}, - dictWord{4, 10, 186}, - dictWord{5, 10, 157}, - dictWord{8, 10, 168}, - dictWord{138, 10, 6}, - dictWord{4, 0, 352}, - dictWord{135, 0, 687}, - dictWord{4, 0, 192}, - dictWord{5, 0, 49}, - dictWord{ - 6, - 0, - 200, - }, - dictWord{6, 0, 293}, - dictWord{6, 0, 1696}, - dictWord{135, 0, 1151}, - dictWord{133, 10, 875}, - dictWord{5, 10, 773}, - dictWord{5, 10, 991}, - dictWord{ - 6, - 10, - 1635, - }, - dictWord{134, 10, 1788}, - dictWord{7, 10, 111}, - dictWord{136, 10, 581}, - dictWord{6, 0, 935}, - dictWord{134, 0, 1151}, - dictWord{134, 0, 1050}, - dictWord{132, 0, 650}, - dictWord{132, 0, 147}, - dictWord{11, 0, 194}, - dictWord{12, 0, 62}, - dictWord{12, 0, 88}, - dictWord{11, 11, 194}, - dictWord{12, 11, 62}, - dictWord{140, 11, 88}, - dictWord{6, 0, 339}, - dictWord{135, 0, 923}, - dictWord{134, 10, 1747}, - dictWord{7, 11, 643}, - dictWord{136, 11, 236}, - dictWord{ - 133, - 0, - 934, - }, - dictWord{7, 10, 1364}, - dictWord{7, 10, 1907}, - dictWord{141, 10, 158}, - dictWord{132, 10, 659}, - dictWord{4, 10, 404}, - dictWord{135, 10, 675}, - dictWord{7, 11, 581}, - dictWord{9, 11, 644}, - dictWord{137, 11, 699}, - dictWord{13, 0, 211}, - dictWord{14, 0, 133}, - dictWord{14, 0, 204}, - dictWord{15, 0, 64}, - dictWord{ - 15, - 0, - 69, - }, - dictWord{15, 0, 114}, - dictWord{16, 0, 10}, - dictWord{19, 0, 23}, - dictWord{19, 0, 35}, - dictWord{19, 0, 39}, - dictWord{19, 0, 51}, - dictWord{19, 0, 71}, - dictWord{19, 0, 75}, - dictWord{152, 0, 15}, - dictWord{133, 10, 391}, - dictWord{5, 11, 54}, - dictWord{135, 11, 1513}, - dictWord{7, 0, 222}, - dictWord{8, 0, 341}, - dictWord{ - 5, - 10, - 540, - }, - dictWord{134, 10, 1697}, - dictWord{134, 10, 78}, - dictWord{132, 11, 744}, - dictWord{136, 0, 293}, - dictWord{137, 11, 701}, - dictWord{ - 7, - 11, - 930, - }, - dictWord{10, 11, 402}, - dictWord{10, 11, 476}, - dictWord{13, 11, 452}, - dictWord{18, 11, 55}, - dictWord{147, 11, 104}, - dictWord{132, 0, 637}, - dictWord{133, 10, 460}, - dictWord{8, 11, 50}, - dictWord{137, 11, 624}, - dictWord{132, 11, 572}, - dictWord{134, 0, 1159}, - dictWord{4, 10, 199}, - dictWord{ - 139, - 10, - 34, - }, - dictWord{134, 0, 847}, - dictWord{134, 10, 388}, - dictWord{6, 11, 43}, - dictWord{7, 11, 38}, - dictWord{8, 11, 248}, - dictWord{9, 11, 504}, - dictWord{ - 138, - 11, - 513, - }, - dictWord{9, 0, 683}, - dictWord{4, 10, 511}, - dictWord{6, 10, 608}, - dictWord{9, 10, 333}, - dictWord{10, 10, 602}, - dictWord{11, 10, 441}, - dictWord{ - 11, - 10, - 723, - }, - dictWord{11, 10, 976}, - dictWord{140, 10, 357}, - dictWord{9, 0, 867}, - dictWord{138, 0, 837}, - dictWord{6, 0, 944}, - dictWord{135, 11, 326}, - dictWord{ - 135, - 0, - 1809, - }, - dictWord{5, 10, 938}, - dictWord{7, 11, 783}, - dictWord{136, 10, 707}, - dictWord{133, 11, 766}, - dictWord{133, 11, 363}, - dictWord{6, 0, 170}, - dictWord{7, 0, 1080}, - dictWord{8, 0, 395}, - dictWord{8, 0, 487}, - dictWord{141, 0, 147}, - dictWord{6, 11, 258}, - dictWord{140, 11, 409}, - dictWord{4, 0, 535}, - dictWord{ - 8, - 0, - 618, - }, - dictWord{5, 11, 249}, - dictWord{148, 11, 82}, - dictWord{6, 0, 1379}, - dictWord{149, 11, 15}, - dictWord{135, 0, 1625}, - dictWord{150, 0, 23}, - dictWord{ - 5, - 11, - 393, - }, - dictWord{6, 11, 378}, - dictWord{7, 11, 1981}, - dictWord{9, 11, 32}, - dictWord{9, 11, 591}, - dictWord{10, 11, 685}, - dictWord{10, 11, 741}, - dictWord{ - 142, - 11, - 382, - }, - dictWord{133, 11, 788}, - dictWord{7, 11, 1968}, - dictWord{10, 11, 19}, - dictWord{139, 11, 911}, - dictWord{7, 11, 1401}, - dictWord{ - 135, - 11, - 1476, - }, - dictWord{4, 11, 61}, - dictWord{5, 11, 58}, - dictWord{5, 11, 171}, - dictWord{5, 11, 635}, - dictWord{5, 11, 683}, - dictWord{5, 11, 700}, - dictWord{6, 11, 291}, - dictWord{6, 11, 566}, - dictWord{7, 11, 1650}, - dictWord{11, 11, 523}, - dictWord{12, 11, 273}, - dictWord{12, 11, 303}, - dictWord{15, 11, 39}, - dictWord{ - 143, - 11, - 111, - }, - dictWord{6, 10, 469}, - dictWord{7, 10, 1709}, - dictWord{138, 10, 515}, - dictWord{4, 0, 778}, - dictWord{134, 11, 589}, - dictWord{132, 0, 46}, - dictWord{ - 5, - 0, - 811, - }, - dictWord{6, 0, 1679}, - dictWord{6, 0, 1714}, - dictWord{135, 0, 2032}, - dictWord{7, 0, 1458}, - dictWord{9, 0, 407}, - dictWord{11, 0, 15}, - dictWord{12, 0, 651}, - dictWord{149, 0, 37}, - dictWord{7, 0, 938}, - dictWord{132, 10, 500}, - dictWord{6, 0, 34}, - dictWord{7, 0, 69}, - dictWord{7, 0, 1089}, - dictWord{7, 0, 1281}, - dictWord{ - 8, - 0, - 708, - }, - dictWord{8, 0, 721}, - dictWord{9, 0, 363}, - dictWord{148, 0, 98}, - dictWord{10, 11, 231}, - dictWord{147, 11, 124}, - dictWord{7, 11, 726}, - dictWord{ - 152, - 11, - 9, - }, - dictWord{5, 10, 68}, - dictWord{134, 10, 383}, - dictWord{136, 11, 583}, - dictWord{4, 11, 917}, - dictWord{133, 11, 1005}, - dictWord{11, 10, 216}, - dictWord{139, 10, 340}, - dictWord{135, 11, 1675}, - dictWord{8, 0, 441}, - dictWord{10, 0, 314}, - dictWord{143, 0, 3}, - dictWord{132, 11, 919}, - dictWord{4, 10, 337}, - dictWord{6, 10, 353}, - dictWord{7, 10, 1934}, - dictWord{8, 10, 488}, - dictWord{137, 10, 429}, - dictWord{7, 0, 889}, - dictWord{7, 10, 1795}, - dictWord{8, 10, 259}, - dictWord{9, 10, 135}, - dictWord{9, 10, 177}, - dictWord{9, 10, 860}, - dictWord{10, 10, 825}, - dictWord{11, 10, 115}, - dictWord{11, 10, 370}, - dictWord{11, 10, 405}, - dictWord{11, 10, 604}, - dictWord{12, 10, 10}, - dictWord{12, 10, 667}, - dictWord{12, 10, 669}, - dictWord{13, 10, 76}, - dictWord{14, 10, 310}, - dictWord{ - 15, - 10, - 76, - }, - dictWord{15, 10, 147}, - dictWord{148, 10, 23}, - dictWord{4, 10, 15}, - dictWord{4, 11, 255}, - dictWord{5, 10, 22}, - dictWord{5, 11, 302}, - dictWord{6, 11, 132}, - dictWord{6, 10, 244}, - dictWord{7, 10, 40}, - dictWord{7, 11, 128}, - dictWord{7, 10, 200}, - dictWord{7, 11, 283}, - dictWord{7, 10, 906}, - dictWord{7, 10, 1199}, - dictWord{ - 7, - 11, - 1299, - }, - dictWord{9, 10, 616}, - dictWord{10, 11, 52}, - dictWord{10, 11, 514}, - dictWord{10, 10, 716}, - dictWord{11, 10, 635}, - dictWord{11, 10, 801}, - dictWord{11, 11, 925}, - dictWord{12, 10, 458}, - dictWord{13, 11, 92}, - dictWord{142, 11, 309}, - dictWord{132, 0, 462}, - dictWord{137, 11, 173}, - dictWord{ - 135, - 10, - 1735, - }, - dictWord{8, 0, 525}, - dictWord{5, 10, 598}, - dictWord{7, 10, 791}, - dictWord{8, 10, 108}, - dictWord{137, 10, 123}, - dictWord{5, 0, 73}, - dictWord{6, 0, 23}, - dictWord{134, 0, 338}, - dictWord{132, 0, 676}, - dictWord{132, 10, 683}, - dictWord{7, 0, 725}, - dictWord{8, 0, 498}, - dictWord{139, 0, 268}, - dictWord{12, 0, 21}, - dictWord{151, 0, 7}, - dictWord{135, 0, 773}, - dictWord{4, 10, 155}, - dictWord{135, 10, 1689}, - dictWord{4, 0, 164}, - dictWord{5, 0, 730}, - dictWord{5, 10, 151}, - dictWord{ - 5, - 10, - 741, - }, - dictWord{6, 11, 210}, - dictWord{7, 10, 498}, - dictWord{7, 10, 870}, - dictWord{7, 10, 1542}, - dictWord{12, 10, 213}, - dictWord{14, 10, 36}, - dictWord{ - 14, - 10, - 391, - }, - dictWord{17, 10, 111}, - dictWord{18, 10, 6}, - dictWord{18, 10, 46}, - dictWord{18, 10, 151}, - dictWord{19, 10, 36}, - dictWord{20, 10, 32}, - dictWord{ - 20, - 10, - 56, - }, - dictWord{20, 10, 69}, - dictWord{20, 10, 102}, - dictWord{21, 10, 4}, - dictWord{22, 10, 8}, - dictWord{22, 10, 10}, - dictWord{22, 10, 14}, - dictWord{ - 150, - 10, - 31, - }, - dictWord{4, 10, 624}, - dictWord{135, 10, 1752}, - dictWord{4, 0, 583}, - dictWord{9, 0, 936}, - dictWord{15, 0, 214}, - dictWord{18, 0, 199}, - dictWord{24, 0, 26}, - dictWord{134, 11, 588}, - dictWord{7, 0, 1462}, - dictWord{11, 0, 659}, - dictWord{4, 11, 284}, - dictWord{134, 11, 223}, - dictWord{133, 0, 220}, - dictWord{ - 139, - 0, - 803, - }, - dictWord{132, 0, 544}, - dictWord{4, 10, 492}, - dictWord{133, 10, 451}, - dictWord{16, 0, 98}, - dictWord{148, 0, 119}, - dictWord{4, 11, 218}, - dictWord{ - 7, - 11, - 526, - }, - dictWord{143, 11, 137}, - dictWord{135, 10, 835}, - dictWord{4, 11, 270}, - dictWord{5, 11, 192}, - dictWord{6, 11, 332}, - dictWord{7, 11, 1322}, - dictWord{ - 13, - 11, - 9, - }, - dictWord{13, 10, 70}, - dictWord{14, 11, 104}, - dictWord{142, 11, 311}, - dictWord{132, 10, 539}, - dictWord{140, 11, 661}, - dictWord{5, 0, 176}, - dictWord{ - 6, - 0, - 437, - }, - dictWord{6, 0, 564}, - dictWord{11, 0, 181}, - dictWord{141, 0, 183}, - dictWord{135, 0, 1192}, - dictWord{6, 10, 113}, - dictWord{135, 10, 436}, - dictWord{136, 10, 718}, - dictWord{135, 10, 520}, - dictWord{135, 0, 1878}, - dictWord{140, 11, 196}, - dictWord{7, 11, 379}, - dictWord{8, 11, 481}, - dictWord{ - 137, - 11, - 377, - }, - dictWord{5, 11, 1003}, - dictWord{6, 11, 149}, - dictWord{137, 11, 746}, - dictWord{8, 11, 262}, - dictWord{9, 11, 627}, - dictWord{10, 11, 18}, - dictWord{ - 11, - 11, - 214, - }, - dictWord{11, 11, 404}, - dictWord{11, 11, 457}, - dictWord{11, 11, 780}, - dictWord{11, 11, 849}, - dictWord{11, 11, 913}, - dictWord{13, 11, 330}, - dictWord{13, 11, 401}, - dictWord{142, 11, 200}, - dictWord{149, 0, 26}, - dictWord{136, 11, 304}, - dictWord{132, 11, 142}, - dictWord{135, 0, 944}, - dictWord{ - 4, - 0, - 790, - }, - dictWord{5, 0, 273}, - dictWord{134, 0, 394}, - dictWord{134, 0, 855}, - dictWord{4, 0, 135}, - dictWord{6, 0, 127}, - dictWord{7, 0, 1185}, - dictWord{7, 0, 1511}, - dictWord{8, 0, 613}, - dictWord{11, 0, 5}, - dictWord{12, 0, 336}, - dictWord{12, 0, 495}, - dictWord{12, 0, 586}, - dictWord{12, 0, 660}, - dictWord{12, 0, 668}, - dictWord{ - 14, - 0, - 385, - }, - dictWord{15, 0, 118}, - dictWord{17, 0, 20}, - dictWord{146, 0, 98}, - dictWord{6, 0, 230}, - dictWord{9, 0, 752}, - dictWord{18, 0, 109}, - dictWord{12, 10, 610}, - dictWord{13, 10, 431}, - dictWord{144, 10, 59}, - dictWord{7, 0, 1954}, - dictWord{135, 11, 925}, - dictWord{4, 11, 471}, - dictWord{5, 11, 51}, - dictWord{6, 11, 602}, - dictWord{8, 11, 484}, - dictWord{10, 11, 195}, - dictWord{140, 11, 159}, - dictWord{132, 10, 307}, - dictWord{136, 11, 688}, - dictWord{132, 11, 697}, - dictWord{ - 7, - 11, - 812, - }, - dictWord{7, 11, 1261}, - dictWord{7, 11, 1360}, - dictWord{9, 11, 632}, - dictWord{140, 11, 352}, - dictWord{5, 0, 162}, - dictWord{8, 0, 68}, - dictWord{ - 133, - 10, - 964, - }, - dictWord{4, 0, 654}, - dictWord{136, 11, 212}, - dictWord{4, 0, 156}, - dictWord{7, 0, 998}, - dictWord{7, 0, 1045}, - dictWord{7, 0, 1860}, - dictWord{9, 0, 48}, - dictWord{9, 0, 692}, - dictWord{11, 0, 419}, - dictWord{139, 0, 602}, - dictWord{133, 11, 221}, - dictWord{4, 11, 373}, - dictWord{5, 11, 283}, - dictWord{6, 11, 480}, - dictWord{135, 11, 609}, - dictWord{142, 11, 216}, - dictWord{132, 0, 240}, - dictWord{6, 11, 192}, - dictWord{9, 11, 793}, - dictWord{145, 11, 55}, - dictWord{ - 4, - 10, - 75, - }, - dictWord{5, 10, 180}, - dictWord{6, 10, 500}, - dictWord{7, 10, 58}, - dictWord{7, 10, 710}, - dictWord{138, 10, 645}, - dictWord{4, 11, 132}, - dictWord{5, 11, 69}, - dictWord{5, 10, 649}, - dictWord{135, 11, 1242}, - dictWord{6, 10, 276}, - dictWord{7, 10, 282}, - dictWord{7, 10, 879}, - dictWord{7, 10, 924}, - dictWord{8, 10, 459}, - dictWord{9, 10, 599}, - dictWord{9, 10, 754}, - dictWord{11, 10, 574}, - dictWord{12, 10, 128}, - dictWord{12, 10, 494}, - dictWord{13, 10, 52}, - dictWord{13, 10, 301}, - dictWord{15, 10, 30}, - dictWord{143, 10, 132}, - dictWord{132, 10, 200}, - dictWord{4, 11, 111}, - dictWord{135, 11, 302}, - dictWord{9, 0, 197}, - dictWord{ - 10, - 0, - 300, - }, - dictWord{12, 0, 473}, - dictWord{13, 0, 90}, - dictWord{141, 0, 405}, - dictWord{132, 11, 767}, - dictWord{6, 11, 42}, - dictWord{7, 11, 1416}, - dictWord{ - 7, - 11, - 1590, - }, - dictWord{7, 11, 2005}, - dictWord{8, 11, 131}, - dictWord{8, 11, 466}, - dictWord{9, 11, 672}, - dictWord{13, 11, 252}, - dictWord{148, 11, 103}, - dictWord{ - 8, - 0, - 958, - }, - dictWord{8, 0, 999}, - dictWord{10, 0, 963}, - dictWord{138, 0, 1001}, - dictWord{135, 10, 1621}, - dictWord{135, 0, 858}, - dictWord{4, 0, 606}, - dictWord{ - 137, - 11, - 444, - }, - dictWord{6, 11, 44}, - dictWord{136, 11, 368}, - dictWord{139, 11, 172}, - dictWord{4, 11, 570}, - dictWord{133, 11, 120}, - dictWord{139, 11, 624}, - dictWord{7, 0, 1978}, - dictWord{8, 0, 676}, - dictWord{6, 10, 225}, - dictWord{137, 10, 211}, - dictWord{7, 0, 972}, - dictWord{11, 0, 102}, - dictWord{136, 10, 687}, - dictWord{6, 11, 227}, - dictWord{135, 11, 1589}, - dictWord{8, 10, 58}, - dictWord{9, 10, 724}, - dictWord{11, 10, 809}, - dictWord{13, 10, 113}, - dictWord{ - 145, - 10, - 72, - }, - dictWord{4, 0, 361}, - dictWord{133, 0, 315}, - dictWord{132, 0, 461}, - dictWord{6, 10, 345}, - dictWord{135, 10, 1247}, - dictWord{132, 0, 472}, - dictWord{ - 8, - 10, - 767, - }, - dictWord{8, 10, 803}, - dictWord{9, 10, 301}, - dictWord{137, 10, 903}, - dictWord{135, 11, 1333}, - dictWord{135, 11, 477}, - dictWord{7, 10, 1949}, - dictWord{136, 10, 674}, - dictWord{6, 0, 905}, - dictWord{138, 0, 747}, - dictWord{133, 0, 155}, - dictWord{134, 10, 259}, - dictWord{7, 0, 163}, - dictWord{8, 0, 319}, - dictWord{9, 0, 402}, - dictWord{10, 0, 24}, - dictWord{10, 0, 681}, - dictWord{11, 0, 200}, - dictWord{12, 0, 253}, - dictWord{12, 0, 410}, - dictWord{142, 0, 219}, - dictWord{ - 5, - 0, - 475, - }, - dictWord{7, 0, 1780}, - dictWord{9, 0, 230}, - dictWord{11, 0, 297}, - dictWord{11, 0, 558}, - dictWord{14, 0, 322}, - dictWord{19, 0, 76}, - dictWord{6, 11, 1667}, - dictWord{7, 11, 2036}, - dictWord{138, 11, 600}, - dictWord{136, 10, 254}, - dictWord{6, 0, 848}, - dictWord{135, 0, 1956}, - dictWord{6, 11, 511}, - dictWord{ - 140, - 11, - 132, - }, - dictWord{5, 11, 568}, - dictWord{6, 11, 138}, - dictWord{135, 11, 1293}, - dictWord{6, 0, 631}, - dictWord{137, 0, 838}, - dictWord{149, 0, 36}, - dictWord{ - 4, - 11, - 565, - }, - dictWord{8, 11, 23}, - dictWord{136, 11, 827}, - dictWord{5, 0, 944}, - dictWord{134, 0, 1769}, - dictWord{4, 0, 144}, - dictWord{6, 0, 842}, - dictWord{ - 6, - 0, - 1400, - }, - dictWord{4, 11, 922}, - dictWord{133, 11, 1023}, - dictWord{133, 10, 248}, - dictWord{9, 10, 800}, - dictWord{10, 10, 693}, - dictWord{11, 10, 482}, - dictWord{11, 10, 734}, - dictWord{139, 10, 789}, - dictWord{7, 11, 1002}, - dictWord{139, 11, 145}, - dictWord{4, 10, 116}, - dictWord{5, 10, 95}, - dictWord{5, 10, 445}, - dictWord{7, 10, 1688}, - dictWord{8, 10, 29}, - dictWord{9, 10, 272}, - dictWord{11, 10, 509}, - dictWord{139, 10, 915}, - dictWord{14, 0, 369}, - dictWord{146, 0, 72}, - dictWord{135, 10, 1641}, - dictWord{132, 11, 740}, - dictWord{133, 10, 543}, - dictWord{140, 11, 116}, - dictWord{6, 0, 247}, - dictWord{9, 0, 555}, - dictWord{ - 5, - 10, - 181, - }, - dictWord{136, 10, 41}, - dictWord{133, 10, 657}, - dictWord{136, 0, 996}, - dictWord{138, 10, 709}, - dictWord{7, 0, 189}, - dictWord{8, 10, 202}, - dictWord{ - 138, - 10, - 536, - }, - dictWord{136, 11, 402}, - dictWord{4, 11, 716}, - dictWord{141, 11, 31}, - dictWord{10, 0, 280}, - dictWord{138, 0, 797}, - dictWord{9, 10, 423}, - dictWord{140, 10, 89}, - dictWord{8, 10, 113}, - dictWord{9, 10, 877}, - dictWord{10, 10, 554}, - dictWord{11, 10, 83}, - dictWord{12, 10, 136}, - dictWord{147, 10, 109}, - dictWord{133, 10, 976}, - dictWord{7, 0, 746}, - dictWord{132, 10, 206}, - dictWord{136, 0, 526}, - dictWord{139, 0, 345}, - dictWord{136, 0, 1017}, - dictWord{ - 8, - 11, - 152, - }, - dictWord{9, 11, 53}, - dictWord{9, 11, 268}, - dictWord{9, 11, 901}, - dictWord{10, 11, 518}, - dictWord{10, 11, 829}, - dictWord{11, 11, 188}, - dictWord{ - 13, - 11, - 74, - }, - dictWord{14, 11, 46}, - dictWord{15, 11, 17}, - dictWord{15, 11, 33}, - dictWord{17, 11, 40}, - dictWord{18, 11, 36}, - dictWord{19, 11, 20}, - dictWord{22, 11, 1}, - dictWord{152, 11, 2}, - dictWord{133, 11, 736}, - dictWord{136, 11, 532}, - dictWord{5, 0, 428}, - dictWord{138, 0, 651}, - dictWord{135, 11, 681}, - dictWord{ - 135, - 0, - 1162, - }, - dictWord{7, 0, 327}, - dictWord{13, 0, 230}, - dictWord{17, 0, 113}, - dictWord{8, 10, 226}, - dictWord{10, 10, 537}, - dictWord{11, 10, 570}, - dictWord{ - 11, - 10, - 605, - }, - dictWord{11, 10, 799}, - dictWord{11, 10, 804}, - dictWord{12, 10, 85}, - dictWord{12, 10, 516}, - dictWord{12, 10, 623}, - dictWord{12, 11, 677}, - dictWord{ - 13, - 10, - 361, - }, - dictWord{14, 10, 77}, - dictWord{14, 10, 78}, - dictWord{147, 10, 110}, - dictWord{4, 0, 792}, - dictWord{7, 0, 1717}, - dictWord{10, 0, 546}, - dictWord{ - 132, - 10, - 769, - }, - dictWord{4, 11, 684}, - dictWord{136, 11, 384}, - dictWord{132, 10, 551}, - dictWord{134, 0, 1203}, - dictWord{9, 10, 57}, - dictWord{9, 10, 459}, - dictWord{10, 10, 425}, - dictWord{11, 10, 119}, - dictWord{12, 10, 184}, - dictWord{12, 10, 371}, - dictWord{13, 10, 358}, - dictWord{145, 10, 51}, - dictWord{5, 0, 672}, - dictWord{5, 10, 814}, - dictWord{8, 10, 10}, - dictWord{9, 10, 421}, - dictWord{9, 10, 729}, - dictWord{10, 10, 609}, - dictWord{139, 10, 689}, - dictWord{138, 0, 189}, - dictWord{134, 10, 624}, - dictWord{7, 11, 110}, - dictWord{7, 11, 188}, - dictWord{8, 11, 290}, - dictWord{8, 11, 591}, - dictWord{9, 11, 382}, - dictWord{9, 11, 649}, - dictWord{11, 11, 71}, - dictWord{11, 11, 155}, - dictWord{11, 11, 313}, - dictWord{12, 11, 5}, - dictWord{13, 11, 325}, - dictWord{142, 11, 287}, - dictWord{133, 0, 99}, - dictWord{6, 0, 1053}, - dictWord{135, 0, 298}, - dictWord{7, 11, 360}, - dictWord{7, 11, 425}, - dictWord{9, 11, 66}, - dictWord{9, 11, 278}, - dictWord{138, 11, 644}, - dictWord{4, 0, 397}, - dictWord{136, 0, 555}, - dictWord{137, 10, 269}, - dictWord{132, 10, 528}, - dictWord{4, 11, 900}, - dictWord{133, 11, 861}, - dictWord{ - 6, - 0, - 1157, - }, - dictWord{5, 11, 254}, - dictWord{7, 11, 985}, - dictWord{136, 11, 73}, - dictWord{7, 11, 1959}, - dictWord{136, 11, 683}, - dictWord{12, 0, 398}, - dictWord{ - 20, - 0, - 39, - }, - dictWord{21, 0, 11}, - dictWord{150, 0, 41}, - dictWord{4, 0, 485}, - dictWord{7, 0, 353}, - dictWord{135, 0, 1523}, - dictWord{6, 0, 366}, - dictWord{7, 0, 1384}, - dictWord{135, 0, 1601}, - dictWord{138, 0, 787}, - dictWord{137, 0, 282}, - dictWord{5, 10, 104}, - dictWord{6, 10, 173}, - dictWord{135, 10, 1631}, - dictWord{ - 139, - 11, - 146, - }, - dictWord{4, 0, 157}, - dictWord{133, 0, 471}, - dictWord{134, 0, 941}, - dictWord{132, 11, 725}, - dictWord{7, 0, 1336}, - dictWord{8, 10, 138}, - dictWord{ - 8, - 10, - 342, - }, - dictWord{9, 10, 84}, - dictWord{10, 10, 193}, - dictWord{11, 10, 883}, - dictWord{140, 10, 359}, - dictWord{134, 11, 196}, - dictWord{136, 0, 116}, - dictWord{133, 11, 831}, - dictWord{134, 0, 787}, - dictWord{134, 10, 95}, - dictWord{6, 10, 406}, - dictWord{10, 10, 409}, - dictWord{10, 10, 447}, - dictWord{ - 11, - 10, - 44, - }, - dictWord{140, 10, 100}, - dictWord{5, 0, 160}, - dictWord{7, 0, 363}, - dictWord{7, 0, 589}, - dictWord{10, 0, 170}, - dictWord{141, 0, 55}, - dictWord{134, 0, 1815}, - dictWord{132, 0, 866}, - dictWord{6, 0, 889}, - dictWord{6, 0, 1067}, - dictWord{6, 0, 1183}, - dictWord{4, 11, 321}, - dictWord{134, 11, 569}, - dictWord{5, 11, 848}, - dictWord{134, 11, 66}, - dictWord{4, 11, 36}, - dictWord{6, 10, 1636}, - dictWord{7, 11, 1387}, - dictWord{10, 11, 205}, - dictWord{11, 11, 755}, - dictWord{ - 141, - 11, - 271, - }, - dictWord{132, 0, 689}, - dictWord{9, 0, 820}, - dictWord{4, 10, 282}, - dictWord{7, 10, 1034}, - dictWord{11, 10, 398}, - dictWord{11, 10, 634}, - dictWord{ - 12, - 10, - 1, - }, - dictWord{12, 10, 79}, - dictWord{12, 10, 544}, - dictWord{14, 10, 237}, - dictWord{17, 10, 10}, - dictWord{146, 10, 20}, - dictWord{4, 0, 108}, - dictWord{7, 0, 804}, - dictWord{139, 0, 498}, - dictWord{132, 11, 887}, - dictWord{6, 0, 1119}, - dictWord{135, 11, 620}, - dictWord{6, 11, 165}, - dictWord{138, 11, 388}, - dictWord{ - 5, - 0, - 244, - }, - dictWord{5, 10, 499}, - dictWord{6, 10, 476}, - dictWord{7, 10, 600}, - dictWord{7, 10, 888}, - dictWord{135, 10, 1096}, - dictWord{140, 0, 609}, - dictWord{ - 135, - 0, - 1005, - }, - dictWord{4, 0, 412}, - dictWord{133, 0, 581}, - dictWord{4, 11, 719}, - dictWord{135, 11, 155}, - dictWord{7, 10, 296}, - dictWord{7, 10, 596}, - dictWord{ - 8, - 10, - 560, - }, - dictWord{8, 10, 586}, - dictWord{9, 10, 612}, - dictWord{11, 10, 304}, - dictWord{12, 10, 46}, - dictWord{13, 10, 89}, - dictWord{14, 10, 112}, - dictWord{ - 145, - 10, - 122, - }, - dictWord{4, 0, 895}, - dictWord{133, 0, 772}, - dictWord{142, 11, 307}, - dictWord{135, 0, 1898}, - dictWord{4, 0, 926}, - dictWord{133, 0, 983}, - dictWord{4, 11, 353}, - dictWord{6, 11, 146}, - dictWord{6, 11, 1789}, - dictWord{7, 11, 288}, - dictWord{7, 11, 990}, - dictWord{7, 11, 1348}, - dictWord{9, 11, 665}, - dictWord{ - 9, - 11, - 898, - }, - dictWord{11, 11, 893}, - dictWord{142, 11, 212}, - dictWord{132, 0, 538}, - dictWord{133, 11, 532}, - dictWord{6, 0, 294}, - dictWord{7, 0, 1267}, - dictWord{8, 0, 624}, - dictWord{141, 0, 496}, - dictWord{7, 0, 1325}, - dictWord{4, 11, 45}, - dictWord{135, 11, 1257}, - dictWord{138, 0, 301}, - dictWord{9, 0, 298}, - dictWord{12, 0, 291}, - dictWord{13, 0, 276}, - dictWord{14, 0, 6}, - dictWord{17, 0, 18}, - dictWord{21, 0, 32}, - dictWord{7, 10, 1599}, - dictWord{7, 10, 1723}, - dictWord{ - 8, - 10, - 79, - }, - dictWord{8, 10, 106}, - dictWord{8, 10, 190}, - dictWord{8, 10, 302}, - dictWord{8, 10, 383}, - dictWord{8, 10, 713}, - dictWord{9, 10, 119}, - dictWord{9, 10, 233}, - dictWord{9, 10, 419}, - dictWord{9, 10, 471}, - dictWord{10, 10, 181}, - dictWord{10, 10, 406}, - dictWord{11, 10, 57}, - dictWord{11, 10, 85}, - dictWord{11, 10, 120}, - dictWord{11, 10, 177}, - dictWord{11, 10, 296}, - dictWord{11, 10, 382}, - dictWord{11, 10, 454}, - dictWord{11, 10, 758}, - dictWord{11, 10, 999}, - dictWord{ - 12, - 10, - 27, - }, - dictWord{12, 10, 131}, - dictWord{12, 10, 245}, - dictWord{12, 10, 312}, - dictWord{12, 10, 446}, - dictWord{12, 10, 454}, - dictWord{13, 10, 98}, - dictWord{ - 13, - 10, - 426, - }, - dictWord{13, 10, 508}, - dictWord{14, 10, 163}, - dictWord{14, 10, 272}, - dictWord{14, 10, 277}, - dictWord{14, 10, 370}, - dictWord{15, 10, 95}, - dictWord{15, 10, 138}, - dictWord{15, 10, 167}, - dictWord{17, 10, 38}, - dictWord{148, 10, 96}, - dictWord{132, 0, 757}, - dictWord{134, 0, 1263}, - dictWord{4, 0, 820}, - dictWord{134, 10, 1759}, - dictWord{133, 0, 722}, - dictWord{136, 11, 816}, - dictWord{138, 10, 372}, - dictWord{145, 10, 16}, - dictWord{134, 0, 1039}, - dictWord{ - 4, - 0, - 991, - }, - dictWord{134, 0, 2028}, - dictWord{133, 10, 258}, - dictWord{7, 0, 1875}, - dictWord{139, 0, 124}, - dictWord{6, 11, 559}, - dictWord{6, 11, 1691}, - dictWord{135, 11, 586}, - dictWord{5, 0, 324}, - dictWord{7, 0, 881}, - dictWord{8, 10, 134}, - dictWord{9, 10, 788}, - dictWord{140, 10, 438}, - dictWord{7, 11, 1823}, - dictWord{139, 11, 693}, - dictWord{6, 0, 1348}, - dictWord{134, 0, 1545}, - dictWord{134, 0, 911}, - dictWord{132, 0, 954}, - dictWord{8, 0, 329}, - dictWord{8, 0, 414}, - dictWord{7, 10, 1948}, - dictWord{135, 10, 2004}, - dictWord{5, 0, 517}, - dictWord{6, 10, 439}, - dictWord{7, 10, 780}, - dictWord{135, 10, 1040}, - dictWord{ - 132, - 0, - 816, - }, - dictWord{5, 10, 1}, - dictWord{6, 10, 81}, - dictWord{138, 10, 520}, - dictWord{9, 0, 713}, - dictWord{10, 0, 222}, - dictWord{5, 10, 482}, - dictWord{8, 10, 98}, - dictWord{10, 10, 700}, - dictWord{10, 10, 822}, - dictWord{11, 10, 302}, - dictWord{11, 10, 778}, - dictWord{12, 10, 50}, - dictWord{12, 10, 127}, - dictWord{12, 10, 396}, - dictWord{13, 10, 62}, - dictWord{13, 10, 328}, - dictWord{14, 10, 122}, - dictWord{147, 10, 72}, - dictWord{137, 0, 33}, - dictWord{5, 10, 2}, - dictWord{7, 10, 1494}, - dictWord{136, 10, 589}, - dictWord{6, 10, 512}, - dictWord{7, 10, 797}, - dictWord{8, 10, 253}, - dictWord{9, 10, 77}, - dictWord{10, 10, 1}, - dictWord{10, 11, 108}, - dictWord{10, 10, 129}, - dictWord{10, 10, 225}, - dictWord{11, 11, 116}, - dictWord{11, 10, 118}, - dictWord{11, 10, 226}, - dictWord{11, 10, 251}, - dictWord{ - 11, - 10, - 430, - }, - dictWord{11, 10, 701}, - dictWord{11, 10, 974}, - dictWord{11, 10, 982}, - dictWord{12, 10, 64}, - dictWord{12, 10, 260}, - dictWord{12, 10, 488}, - dictWord{ - 140, - 10, - 690, - }, - dictWord{134, 11, 456}, - dictWord{133, 11, 925}, - dictWord{5, 0, 150}, - dictWord{7, 0, 106}, - dictWord{7, 0, 774}, - dictWord{8, 0, 603}, - dictWord{ - 9, - 0, - 593, - }, - dictWord{9, 0, 634}, - dictWord{10, 0, 44}, - dictWord{10, 0, 173}, - dictWord{11, 0, 462}, - dictWord{11, 0, 515}, - dictWord{13, 0, 216}, - dictWord{13, 0, 288}, - dictWord{142, 0, 400}, - dictWord{137, 10, 347}, - dictWord{5, 0, 748}, - dictWord{134, 0, 553}, - dictWord{12, 0, 108}, - dictWord{141, 0, 291}, - dictWord{7, 0, 420}, - dictWord{4, 10, 12}, - dictWord{7, 10, 522}, - dictWord{7, 10, 809}, - dictWord{8, 10, 797}, - dictWord{141, 10, 88}, - dictWord{6, 11, 193}, - dictWord{7, 11, 240}, - dictWord{ - 7, - 11, - 1682, - }, - dictWord{10, 11, 51}, - dictWord{10, 11, 640}, - dictWord{11, 11, 410}, - dictWord{13, 11, 82}, - dictWord{14, 11, 247}, - dictWord{14, 11, 331}, - dictWord{142, 11, 377}, - dictWord{133, 10, 528}, - dictWord{135, 0, 1777}, - dictWord{4, 0, 493}, - dictWord{144, 0, 55}, - dictWord{136, 11, 633}, - dictWord{ - 139, - 0, - 81, - }, - dictWord{6, 0, 980}, - dictWord{136, 0, 321}, - dictWord{148, 10, 109}, - dictWord{5, 10, 266}, - dictWord{9, 10, 290}, - dictWord{9, 10, 364}, - dictWord{ - 10, - 10, - 293, - }, - dictWord{11, 10, 606}, - dictWord{142, 10, 45}, - dictWord{6, 0, 568}, - dictWord{7, 0, 112}, - dictWord{7, 0, 1804}, - dictWord{8, 0, 362}, - dictWord{8, 0, 410}, - dictWord{8, 0, 830}, - dictWord{9, 0, 514}, - dictWord{11, 0, 649}, - dictWord{142, 0, 157}, - dictWord{4, 0, 74}, - dictWord{6, 0, 510}, - dictWord{6, 10, 594}, - dictWord{ - 9, - 10, - 121, - }, - dictWord{10, 10, 49}, - dictWord{10, 10, 412}, - dictWord{139, 10, 834}, - dictWord{134, 0, 838}, - dictWord{136, 10, 748}, - dictWord{132, 10, 466}, - dictWord{132, 0, 625}, - dictWord{135, 11, 1443}, - dictWord{4, 11, 237}, - dictWord{135, 11, 514}, - dictWord{9, 10, 378}, - dictWord{141, 10, 162}, - dictWord{6, 0, 16}, - dictWord{6, 0, 158}, - dictWord{7, 0, 43}, - dictWord{7, 0, 129}, - dictWord{7, 0, 181}, - dictWord{8, 0, 276}, - dictWord{8, 0, 377}, - dictWord{10, 0, 523}, - dictWord{ - 11, - 0, - 816, - }, - dictWord{12, 0, 455}, - dictWord{13, 0, 303}, - dictWord{142, 0, 135}, - dictWord{135, 0, 281}, - dictWord{4, 0, 1}, - dictWord{7, 0, 1143}, - dictWord{7, 0, 1463}, - dictWord{8, 0, 61}, - dictWord{9, 0, 207}, - dictWord{9, 0, 390}, - dictWord{9, 0, 467}, - dictWord{139, 0, 836}, - dictWord{6, 11, 392}, - dictWord{7, 11, 65}, - dictWord{ - 135, - 11, - 2019, - }, - dictWord{132, 10, 667}, - dictWord{4, 0, 723}, - dictWord{5, 0, 895}, - dictWord{7, 0, 1031}, - dictWord{8, 0, 199}, - dictWord{8, 0, 340}, - dictWord{9, 0, 153}, - dictWord{9, 0, 215}, - dictWord{10, 0, 21}, - dictWord{10, 0, 59}, - dictWord{10, 0, 80}, - dictWord{10, 0, 224}, - dictWord{10, 0, 838}, - dictWord{11, 0, 229}, - dictWord{ - 11, - 0, - 652, - }, - dictWord{12, 0, 192}, - dictWord{13, 0, 146}, - dictWord{142, 0, 91}, - dictWord{132, 0, 295}, - dictWord{137, 0, 51}, - dictWord{9, 11, 222}, - dictWord{ - 10, - 11, - 43, - }, - dictWord{139, 11, 900}, - dictWord{5, 0, 309}, - dictWord{140, 0, 211}, - dictWord{5, 0, 125}, - dictWord{8, 0, 77}, - dictWord{138, 0, 15}, - dictWord{136, 11, 604}, - dictWord{138, 0, 789}, - dictWord{5, 0, 173}, - dictWord{4, 10, 39}, - dictWord{7, 10, 1843}, - dictWord{8, 10, 407}, - dictWord{11, 10, 144}, - dictWord{140, 10, 523}, - dictWord{138, 11, 265}, - dictWord{133, 0, 439}, - dictWord{132, 10, 510}, - dictWord{7, 0, 648}, - dictWord{7, 0, 874}, - dictWord{11, 0, 164}, - dictWord{12, 0, 76}, - dictWord{18, 0, 9}, - dictWord{7, 10, 1980}, - dictWord{10, 10, 487}, - dictWord{138, 10, 809}, - dictWord{12, 0, 111}, - dictWord{14, 0, 294}, - dictWord{19, 0, 45}, - dictWord{13, 10, 260}, - dictWord{146, 10, 63}, - dictWord{133, 11, 549}, - dictWord{134, 10, 570}, - dictWord{4, 0, 8}, - dictWord{7, 0, 1152}, - dictWord{7, 0, 1153}, - dictWord{7, 0, 1715}, - dictWord{9, 0, 374}, - dictWord{10, 0, 478}, - dictWord{139, 0, 648}, - dictWord{135, 0, 1099}, - dictWord{5, 0, 575}, - dictWord{6, 0, 354}, - dictWord{ - 135, - 0, - 701, - }, - dictWord{7, 11, 36}, - dictWord{8, 11, 201}, - dictWord{136, 11, 605}, - dictWord{4, 10, 787}, - dictWord{136, 11, 156}, - dictWord{6, 0, 518}, - dictWord{ - 149, - 11, - 13, - }, - dictWord{140, 11, 224}, - dictWord{134, 0, 702}, - dictWord{132, 10, 516}, - dictWord{5, 11, 724}, - dictWord{10, 11, 305}, - dictWord{11, 11, 151}, - dictWord{12, 11, 33}, - dictWord{12, 11, 121}, - dictWord{12, 11, 381}, - dictWord{17, 11, 3}, - dictWord{17, 11, 27}, - dictWord{17, 11, 78}, - dictWord{18, 11, 18}, - dictWord{19, 11, 54}, - dictWord{149, 11, 5}, - dictWord{8, 0, 87}, - dictWord{4, 11, 523}, - dictWord{5, 11, 638}, - dictWord{11, 10, 887}, - dictWord{14, 10, 365}, - dictWord{ - 142, - 10, - 375, - }, - dictWord{138, 0, 438}, - dictWord{136, 10, 821}, - dictWord{135, 11, 1908}, - dictWord{6, 11, 242}, - dictWord{7, 11, 227}, - dictWord{7, 11, 1581}, - dictWord{8, 11, 104}, - dictWord{9, 11, 113}, - dictWord{9, 11, 220}, - dictWord{9, 11, 427}, - dictWord{10, 11, 74}, - dictWord{10, 11, 239}, - dictWord{11, 11, 579}, - dictWord{11, 11, 1023}, - dictWord{13, 11, 4}, - dictWord{13, 11, 204}, - dictWord{13, 11, 316}, - dictWord{18, 11, 95}, - dictWord{148, 11, 86}, - dictWord{4, 0, 69}, - dictWord{5, 0, 122}, - dictWord{5, 0, 849}, - dictWord{6, 0, 1633}, - dictWord{9, 0, 656}, - dictWord{138, 0, 464}, - dictWord{7, 0, 1802}, - dictWord{4, 10, 10}, - dictWord{ - 139, - 10, - 786, - }, - dictWord{135, 11, 861}, - dictWord{139, 0, 499}, - dictWord{7, 0, 476}, - dictWord{7, 0, 1592}, - dictWord{138, 0, 87}, - dictWord{133, 10, 684}, - dictWord{ - 4, - 0, - 840, - }, - dictWord{134, 10, 27}, - dictWord{142, 0, 283}, - dictWord{6, 0, 1620}, - dictWord{7, 11, 1328}, - dictWord{136, 11, 494}, - dictWord{5, 0, 859}, - dictWord{ - 7, - 0, - 1160, - }, - dictWord{8, 0, 107}, - dictWord{9, 0, 291}, - dictWord{9, 0, 439}, - dictWord{10, 0, 663}, - dictWord{11, 0, 609}, - dictWord{140, 0, 197}, - dictWord{ - 7, - 11, - 1306, - }, - dictWord{8, 11, 505}, - dictWord{9, 11, 482}, - dictWord{10, 11, 126}, - dictWord{11, 11, 225}, - dictWord{12, 11, 347}, - dictWord{12, 11, 449}, - dictWord{ - 13, - 11, - 19, - }, - dictWord{142, 11, 218}, - dictWord{5, 11, 268}, - dictWord{10, 11, 764}, - dictWord{12, 11, 120}, - dictWord{13, 11, 39}, - dictWord{145, 11, 127}, - dictWord{145, 10, 56}, - dictWord{7, 11, 1672}, - dictWord{10, 11, 472}, - dictWord{11, 11, 189}, - dictWord{143, 11, 51}, - dictWord{6, 10, 342}, - dictWord{6, 10, 496}, - dictWord{8, 10, 275}, - dictWord{137, 10, 206}, - dictWord{133, 0, 600}, - dictWord{4, 0, 117}, - dictWord{6, 0, 372}, - dictWord{7, 0, 1905}, - dictWord{142, 0, 323}, - dictWord{4, 10, 909}, - dictWord{5, 10, 940}, - dictWord{135, 11, 1471}, - dictWord{132, 10, 891}, - dictWord{4, 0, 722}, - dictWord{139, 0, 471}, - dictWord{4, 11, 384}, - dictWord{135, 11, 1022}, - dictWord{132, 10, 687}, - dictWord{9, 0, 5}, - dictWord{12, 0, 216}, - dictWord{12, 0, 294}, - dictWord{12, 0, 298}, - dictWord{12, 0, 400}, - dictWord{12, 0, 518}, - dictWord{13, 0, 229}, - dictWord{143, 0, 139}, - dictWord{135, 11, 1703}, - dictWord{7, 11, 1602}, - dictWord{10, 11, 698}, - dictWord{ - 12, - 11, - 212, - }, - dictWord{141, 11, 307}, - dictWord{6, 10, 41}, - dictWord{141, 10, 160}, - dictWord{135, 11, 1077}, - dictWord{9, 11, 159}, - dictWord{11, 11, 28}, - dictWord{140, 11, 603}, - dictWord{4, 0, 514}, - dictWord{7, 0, 1304}, - dictWord{138, 0, 477}, - dictWord{134, 0, 1774}, - dictWord{9, 0, 88}, - dictWord{139, 0, 270}, - dictWord{5, 0, 12}, - dictWord{7, 0, 375}, - dictWord{9, 0, 438}, - dictWord{134, 10, 1718}, - dictWord{132, 11, 515}, - dictWord{136, 10, 778}, - dictWord{8, 11, 632}, - dictWord{8, 11, 697}, - dictWord{137, 11, 854}, - dictWord{6, 0, 362}, - dictWord{6, 0, 997}, - dictWord{146, 0, 51}, - dictWord{7, 0, 816}, - dictWord{7, 0, 1241}, - dictWord{ - 9, - 0, - 283, - }, - dictWord{9, 0, 520}, - dictWord{10, 0, 213}, - dictWord{10, 0, 307}, - dictWord{10, 0, 463}, - dictWord{10, 0, 671}, - dictWord{10, 0, 746}, - dictWord{11, 0, 401}, - dictWord{11, 0, 794}, - dictWord{12, 0, 517}, - dictWord{18, 0, 107}, - dictWord{147, 0, 115}, - dictWord{133, 10, 115}, - dictWord{150, 11, 28}, - dictWord{4, 11, 136}, - dictWord{133, 11, 551}, - dictWord{142, 10, 314}, - dictWord{132, 0, 258}, - dictWord{6, 0, 22}, - dictWord{7, 0, 903}, - dictWord{7, 0, 1963}, - dictWord{8, 0, 639}, - dictWord{138, 0, 577}, - dictWord{5, 0, 681}, - dictWord{8, 0, 782}, - dictWord{13, 0, 130}, - dictWord{17, 0, 84}, - dictWord{5, 10, 193}, - dictWord{140, 10, 178}, - dictWord{ - 9, - 11, - 17, - }, - dictWord{138, 11, 291}, - dictWord{7, 11, 1287}, - dictWord{9, 11, 44}, - dictWord{10, 11, 552}, - dictWord{10, 11, 642}, - dictWord{11, 11, 839}, - dictWord{12, 11, 274}, - dictWord{12, 11, 275}, - dictWord{12, 11, 372}, - dictWord{13, 11, 91}, - dictWord{142, 11, 125}, - dictWord{135, 10, 174}, - dictWord{4, 0, 664}, - dictWord{5, 0, 804}, - dictWord{139, 0, 1013}, - dictWord{134, 0, 942}, - dictWord{6, 0, 1349}, - dictWord{6, 0, 1353}, - dictWord{6, 0, 1450}, - dictWord{7, 11, 1518}, - dictWord{139, 11, 694}, - dictWord{11, 0, 356}, - dictWord{4, 10, 122}, - dictWord{5, 10, 796}, - dictWord{5, 10, 952}, - dictWord{6, 10, 1660}, - dictWord{ - 6, - 10, - 1671, - }, - dictWord{8, 10, 567}, - dictWord{9, 10, 687}, - dictWord{9, 10, 742}, - dictWord{10, 10, 686}, - dictWord{11, 10, 682}, - dictWord{140, 10, 281}, - dictWord{ - 5, - 0, - 32, - }, - dictWord{6, 11, 147}, - dictWord{7, 11, 886}, - dictWord{9, 11, 753}, - dictWord{138, 11, 268}, - dictWord{5, 10, 179}, - dictWord{7, 10, 1095}, - dictWord{ - 135, - 10, - 1213, - }, - dictWord{4, 10, 66}, - dictWord{7, 10, 722}, - dictWord{135, 10, 904}, - dictWord{135, 10, 352}, - dictWord{9, 11, 245}, - dictWord{138, 11, 137}, - dictWord{4, 0, 289}, - dictWord{7, 0, 629}, - dictWord{7, 0, 1698}, - dictWord{7, 0, 1711}, - dictWord{12, 0, 215}, - dictWord{133, 11, 414}, - dictWord{6, 0, 1975}, - dictWord{135, 11, 1762}, - dictWord{6, 0, 450}, - dictWord{136, 0, 109}, - dictWord{141, 10, 35}, - dictWord{134, 11, 599}, - dictWord{136, 0, 705}, - dictWord{ - 133, - 0, - 664, - }, - dictWord{134, 11, 1749}, - dictWord{11, 11, 402}, - dictWord{12, 11, 109}, - dictWord{12, 11, 431}, - dictWord{13, 11, 179}, - dictWord{13, 11, 206}, - dictWord{14, 11, 175}, - dictWord{14, 11, 217}, - dictWord{16, 11, 3}, - dictWord{148, 11, 53}, - dictWord{135, 0, 1238}, - dictWord{134, 11, 1627}, - dictWord{ - 132, - 11, - 488, - }, - dictWord{13, 0, 318}, - dictWord{10, 10, 592}, - dictWord{10, 10, 753}, - dictWord{12, 10, 317}, - dictWord{12, 10, 355}, - dictWord{12, 10, 465}, - dictWord{ - 12, - 10, - 469, - }, - dictWord{12, 10, 560}, - dictWord{140, 10, 578}, - dictWord{133, 10, 564}, - dictWord{132, 11, 83}, - dictWord{140, 11, 676}, - dictWord{6, 0, 1872}, - dictWord{6, 0, 1906}, - dictWord{6, 0, 1907}, - dictWord{9, 0, 934}, - dictWord{9, 0, 956}, - dictWord{9, 0, 960}, - dictWord{9, 0, 996}, - dictWord{12, 0, 794}, - dictWord{ - 12, - 0, - 876, - }, - dictWord{12, 0, 880}, - dictWord{12, 0, 918}, - dictWord{15, 0, 230}, - dictWord{18, 0, 234}, - dictWord{18, 0, 238}, - dictWord{21, 0, 38}, - dictWord{149, 0, 62}, - dictWord{134, 10, 556}, - dictWord{134, 11, 278}, - dictWord{137, 0, 103}, - dictWord{7, 10, 544}, - dictWord{8, 10, 719}, - dictWord{138, 10, 61}, - dictWord{ - 4, - 10, - 5, - }, - dictWord{5, 10, 498}, - dictWord{8, 10, 637}, - dictWord{137, 10, 521}, - dictWord{7, 0, 777}, - dictWord{12, 0, 229}, - dictWord{12, 0, 239}, - dictWord{15, 0, 12}, - dictWord{12, 11, 229}, - dictWord{12, 11, 239}, - dictWord{143, 11, 12}, - dictWord{6, 0, 26}, - dictWord{7, 11, 388}, - dictWord{7, 11, 644}, - dictWord{139, 11, 781}, - dictWord{7, 11, 229}, - dictWord{8, 11, 59}, - dictWord{9, 11, 190}, - dictWord{9, 11, 257}, - dictWord{10, 11, 378}, - dictWord{140, 11, 191}, - dictWord{133, 10, 927}, - dictWord{135, 10, 1441}, - dictWord{4, 10, 893}, - dictWord{5, 10, 780}, - dictWord{133, 10, 893}, - dictWord{4, 0, 414}, - dictWord{5, 0, 467}, - dictWord{9, 0, 654}, - dictWord{10, 0, 451}, - dictWord{12, 0, 59}, - dictWord{141, 0, 375}, - dictWord{142, 0, 173}, - dictWord{135, 0, 17}, - dictWord{7, 0, 1350}, - dictWord{133, 10, 238}, - dictWord{135, 0, 955}, - dictWord{4, 0, 960}, - dictWord{10, 0, 887}, - dictWord{12, 0, 753}, - dictWord{18, 0, 161}, - dictWord{18, 0, 162}, - dictWord{152, 0, 19}, - dictWord{136, 11, 344}, - dictWord{6, 10, 1729}, - dictWord{137, 11, 288}, - dictWord{132, 11, 660}, - dictWord{4, 0, 217}, - dictWord{5, 0, 710}, - dictWord{7, 0, 760}, - dictWord{7, 0, 1926}, - dictWord{9, 0, 428}, - dictWord{9, 0, 708}, - dictWord{10, 0, 254}, - dictWord{10, 0, 296}, - dictWord{10, 0, 720}, - dictWord{11, 0, 109}, - dictWord{ - 11, - 0, - 255, - }, - dictWord{12, 0, 165}, - dictWord{12, 0, 315}, - dictWord{13, 0, 107}, - dictWord{13, 0, 203}, - dictWord{14, 0, 54}, - dictWord{14, 0, 99}, - dictWord{14, 0, 114}, - dictWord{14, 0, 388}, - dictWord{16, 0, 85}, - dictWord{17, 0, 9}, - dictWord{17, 0, 33}, - dictWord{20, 0, 25}, - dictWord{20, 0, 28}, - dictWord{20, 0, 29}, - dictWord{21, 0, 9}, - dictWord{21, 0, 10}, - dictWord{21, 0, 34}, - dictWord{22, 0, 17}, - dictWord{4, 10, 60}, - dictWord{7, 10, 1800}, - dictWord{8, 10, 314}, - dictWord{9, 10, 700}, - dictWord{ - 139, - 10, - 487, - }, - dictWord{7, 11, 1035}, - dictWord{138, 11, 737}, - dictWord{7, 11, 690}, - dictWord{9, 11, 217}, - dictWord{9, 11, 587}, - dictWord{140, 11, 521}, - dictWord{6, 0, 919}, - dictWord{7, 11, 706}, - dictWord{7, 11, 1058}, - dictWord{138, 11, 538}, - dictWord{7, 10, 1853}, - dictWord{138, 10, 437}, - dictWord{ - 136, - 10, - 419, - }, - dictWord{6, 0, 280}, - dictWord{10, 0, 502}, - dictWord{11, 0, 344}, - dictWord{140, 0, 38}, - dictWord{5, 0, 45}, - dictWord{7, 0, 1161}, - dictWord{11, 0, 448}, - dictWord{11, 0, 880}, - dictWord{13, 0, 139}, - dictWord{13, 0, 407}, - dictWord{15, 0, 16}, - dictWord{17, 0, 95}, - dictWord{18, 0, 66}, - dictWord{18, 0, 88}, - dictWord{ - 18, - 0, - 123, - }, - dictWord{149, 0, 7}, - dictWord{11, 11, 92}, - dictWord{11, 11, 196}, - dictWord{11, 11, 409}, - dictWord{11, 11, 450}, - dictWord{11, 11, 666}, - dictWord{ - 11, - 11, - 777, - }, - dictWord{12, 11, 262}, - dictWord{13, 11, 385}, - dictWord{13, 11, 393}, - dictWord{15, 11, 115}, - dictWord{16, 11, 45}, - dictWord{145, 11, 82}, - dictWord{136, 0, 777}, - dictWord{134, 11, 1744}, - dictWord{4, 0, 410}, - dictWord{7, 0, 521}, - dictWord{133, 10, 828}, - dictWord{134, 0, 673}, - dictWord{7, 0, 1110}, - dictWord{7, 0, 1778}, - dictWord{7, 10, 176}, - dictWord{135, 10, 178}, - dictWord{5, 10, 806}, - dictWord{7, 11, 268}, - dictWord{7, 10, 1976}, - dictWord{ - 136, - 11, - 569, - }, - dictWord{4, 11, 733}, - dictWord{9, 11, 194}, - dictWord{10, 11, 92}, - dictWord{11, 11, 198}, - dictWord{12, 11, 84}, - dictWord{12, 11, 87}, - dictWord{ - 13, - 11, - 128, - }, - dictWord{144, 11, 74}, - dictWord{5, 0, 341}, - dictWord{7, 0, 1129}, - dictWord{11, 0, 414}, - dictWord{4, 10, 51}, - dictWord{6, 10, 4}, - dictWord{7, 10, 591}, - dictWord{7, 10, 849}, - dictWord{7, 10, 951}, - dictWord{7, 10, 1613}, - dictWord{7, 10, 1760}, - dictWord{7, 10, 1988}, - dictWord{9, 10, 434}, - dictWord{10, 10, 754}, - dictWord{11, 10, 25}, - dictWord{139, 10, 37}, - dictWord{133, 10, 902}, - dictWord{135, 10, 928}, - dictWord{135, 0, 787}, - dictWord{132, 0, 436}, - dictWord{ - 134, - 10, - 270, - }, - dictWord{7, 0, 1587}, - dictWord{135, 0, 1707}, - dictWord{6, 0, 377}, - dictWord{7, 0, 1025}, - dictWord{9, 0, 613}, - dictWord{145, 0, 104}, - dictWord{ - 7, - 11, - 982, - }, - dictWord{7, 11, 1361}, - dictWord{10, 11, 32}, - dictWord{143, 11, 56}, - dictWord{139, 0, 96}, - dictWord{132, 0, 451}, - dictWord{132, 10, 416}, - dictWord{ - 142, - 10, - 372, - }, - dictWord{5, 10, 152}, - dictWord{5, 10, 197}, - dictWord{7, 11, 306}, - dictWord{7, 10, 340}, - dictWord{7, 10, 867}, - dictWord{10, 10, 548}, - dictWord{ - 10, - 10, - 581, - }, - dictWord{11, 10, 6}, - dictWord{12, 10, 3}, - dictWord{12, 10, 19}, - dictWord{14, 10, 110}, - dictWord{142, 10, 289}, - dictWord{134, 0, 680}, - dictWord{ - 134, - 11, - 609, - }, - dictWord{7, 0, 483}, - dictWord{7, 10, 190}, - dictWord{8, 10, 28}, - dictWord{8, 10, 141}, - dictWord{8, 10, 444}, - dictWord{8, 10, 811}, - dictWord{ - 9, - 10, - 468, - }, - dictWord{11, 10, 334}, - dictWord{12, 10, 24}, - dictWord{12, 10, 386}, - dictWord{140, 10, 576}, - dictWord{10, 0, 916}, - dictWord{133, 10, 757}, - dictWord{ - 5, - 10, - 721, - }, - dictWord{135, 10, 1553}, - dictWord{133, 11, 178}, - dictWord{134, 0, 937}, - dictWord{132, 10, 898}, - dictWord{133, 0, 739}, - dictWord{ - 147, - 0, - 82, - }, - dictWord{135, 0, 663}, - dictWord{146, 0, 128}, - dictWord{5, 10, 277}, - dictWord{141, 10, 247}, - dictWord{134, 0, 1087}, - dictWord{132, 10, 435}, - dictWord{ - 6, - 11, - 381, - }, - dictWord{7, 11, 645}, - dictWord{7, 11, 694}, - dictWord{136, 11, 546}, - dictWord{7, 0, 503}, - dictWord{135, 0, 1885}, - dictWord{6, 0, 1965}, - dictWord{ - 8, - 0, - 925, - }, - dictWord{138, 0, 955}, - dictWord{4, 0, 113}, - dictWord{5, 0, 163}, - dictWord{5, 0, 735}, - dictWord{7, 0, 1009}, - dictWord{9, 0, 9}, - dictWord{9, 0, 771}, - dictWord{12, 0, 90}, - dictWord{13, 0, 138}, - dictWord{13, 0, 410}, - dictWord{143, 0, 128}, - dictWord{4, 0, 324}, - dictWord{138, 0, 104}, - dictWord{7, 0, 460}, - dictWord{ - 5, - 10, - 265, - }, - dictWord{134, 10, 212}, - dictWord{133, 11, 105}, - dictWord{7, 11, 261}, - dictWord{7, 11, 1107}, - dictWord{7, 11, 1115}, - dictWord{7, 11, 1354}, - dictWord{7, 11, 1588}, - dictWord{7, 11, 1705}, - dictWord{7, 11, 1902}, - dictWord{9, 11, 465}, - dictWord{10, 11, 248}, - dictWord{10, 11, 349}, - dictWord{10, 11, 647}, - dictWord{11, 11, 527}, - dictWord{11, 11, 660}, - dictWord{11, 11, 669}, - dictWord{12, 11, 529}, - dictWord{141, 11, 305}, - dictWord{5, 11, 438}, - dictWord{ - 9, - 11, - 694, - }, - dictWord{12, 11, 627}, - dictWord{141, 11, 210}, - dictWord{152, 11, 11}, - dictWord{4, 0, 935}, - dictWord{133, 0, 823}, - dictWord{132, 10, 702}, - dictWord{ - 5, - 0, - 269, - }, - dictWord{7, 0, 434}, - dictWord{7, 0, 891}, - dictWord{8, 0, 339}, - dictWord{9, 0, 702}, - dictWord{11, 0, 594}, - dictWord{11, 0, 718}, - dictWord{17, 0, 100}, - dictWord{5, 10, 808}, - dictWord{135, 10, 2045}, - dictWord{7, 0, 1014}, - dictWord{9, 0, 485}, - dictWord{141, 0, 264}, - dictWord{134, 0, 1713}, - dictWord{7, 0, 1810}, - dictWord{11, 0, 866}, - dictWord{12, 0, 103}, - dictWord{13, 0, 495}, - dictWord{140, 11, 233}, - dictWord{4, 0, 423}, - dictWord{10, 0, 949}, - dictWord{138, 0, 1013}, - dictWord{135, 0, 900}, - dictWord{8, 11, 25}, - dictWord{138, 11, 826}, - dictWord{5, 10, 166}, - dictWord{8, 10, 739}, - dictWord{140, 10, 511}, - dictWord{ - 134, - 0, - 2018, - }, - dictWord{7, 11, 1270}, - dictWord{139, 11, 612}, - dictWord{4, 10, 119}, - dictWord{5, 10, 170}, - dictWord{5, 10, 447}, - dictWord{7, 10, 1708}, - dictWord{ - 7, - 10, - 1889, - }, - dictWord{9, 10, 357}, - dictWord{9, 10, 719}, - dictWord{12, 10, 486}, - dictWord{140, 10, 596}, - dictWord{12, 0, 574}, - dictWord{140, 11, 574}, - dictWord{132, 11, 308}, - dictWord{6, 0, 964}, - dictWord{6, 0, 1206}, - dictWord{134, 0, 1302}, - dictWord{4, 10, 450}, - dictWord{135, 10, 1158}, - dictWord{ - 135, - 11, - 150, - }, - dictWord{136, 11, 649}, - dictWord{14, 0, 213}, - dictWord{148, 0, 38}, - dictWord{9, 11, 45}, - dictWord{9, 11, 311}, - dictWord{141, 11, 42}, - dictWord{ - 134, - 11, - 521, - }, - dictWord{7, 10, 1375}, - dictWord{7, 10, 1466}, - dictWord{138, 10, 331}, - dictWord{132, 10, 754}, - dictWord{5, 11, 339}, - dictWord{7, 11, 1442}, - dictWord{14, 11, 3}, - dictWord{15, 11, 41}, - dictWord{147, 11, 66}, - dictWord{136, 11, 378}, - dictWord{134, 0, 1022}, - dictWord{5, 10, 850}, - dictWord{136, 10, 799}, - dictWord{142, 0, 143}, - dictWord{135, 0, 2029}, - dictWord{134, 11, 1628}, - dictWord{8, 0, 523}, - dictWord{150, 0, 34}, - dictWord{5, 0, 625}, - dictWord{ - 135, - 0, - 1617, - }, - dictWord{7, 0, 275}, - dictWord{7, 10, 238}, - dictWord{7, 10, 2033}, - dictWord{8, 10, 120}, - dictWord{8, 10, 188}, - dictWord{8, 10, 659}, - dictWord{ - 9, - 10, - 598, - }, - dictWord{10, 10, 466}, - dictWord{12, 10, 342}, - dictWord{12, 10, 588}, - dictWord{13, 10, 503}, - dictWord{14, 10, 246}, - dictWord{143, 10, 92}, - dictWord{ - 7, - 0, - 37, - }, - dictWord{8, 0, 425}, - dictWord{8, 0, 693}, - dictWord{9, 0, 720}, - dictWord{10, 0, 380}, - dictWord{10, 0, 638}, - dictWord{11, 0, 273}, - dictWord{11, 0, 473}, - dictWord{12, 0, 61}, - dictWord{143, 0, 43}, - dictWord{135, 11, 829}, - dictWord{135, 0, 1943}, - dictWord{132, 0, 765}, - dictWord{5, 11, 486}, - dictWord{ - 135, - 11, - 1349, - }, - dictWord{7, 11, 1635}, - dictWord{8, 11, 17}, - dictWord{10, 11, 217}, - dictWord{138, 11, 295}, - dictWord{4, 10, 201}, - dictWord{7, 10, 1744}, - dictWord{ - 8, - 10, - 602, - }, - dictWord{11, 10, 247}, - dictWord{11, 10, 826}, - dictWord{145, 10, 65}, - dictWord{138, 11, 558}, - dictWord{11, 0, 551}, - dictWord{142, 0, 159}, - dictWord{8, 10, 164}, - dictWord{146, 10, 62}, - dictWord{139, 11, 176}, - dictWord{132, 0, 168}, - dictWord{136, 0, 1010}, - dictWord{134, 0, 1994}, - dictWord{ - 135, - 0, - 91, - }, - dictWord{138, 0, 532}, - dictWord{135, 10, 1243}, - dictWord{135, 0, 1884}, - dictWord{132, 10, 907}, - dictWord{5, 10, 100}, - dictWord{10, 10, 329}, - dictWord{12, 10, 416}, - dictWord{149, 10, 29}, - dictWord{134, 11, 447}, - dictWord{132, 10, 176}, - dictWord{5, 10, 636}, - dictWord{5, 10, 998}, - dictWord{7, 10, 9}, - dictWord{7, 10, 1508}, - dictWord{8, 10, 26}, - dictWord{9, 10, 317}, - dictWord{9, 10, 358}, - dictWord{10, 10, 210}, - dictWord{10, 10, 292}, - dictWord{10, 10, 533}, - dictWord{11, 10, 555}, - dictWord{12, 10, 526}, - dictWord{12, 10, 607}, - dictWord{13, 10, 263}, - dictWord{13, 10, 459}, - dictWord{142, 10, 271}, - dictWord{ - 4, - 11, - 609, - }, - dictWord{135, 11, 756}, - dictWord{6, 0, 15}, - dictWord{7, 0, 70}, - dictWord{10, 0, 240}, - dictWord{147, 0, 93}, - dictWord{4, 11, 930}, - dictWord{133, 11, 947}, - dictWord{134, 0, 1227}, - dictWord{134, 0, 1534}, - dictWord{133, 11, 939}, - dictWord{133, 11, 962}, - dictWord{5, 11, 651}, - dictWord{8, 11, 170}, - dictWord{ - 9, - 11, - 61, - }, - dictWord{9, 11, 63}, - dictWord{10, 11, 23}, - dictWord{10, 11, 37}, - dictWord{10, 11, 834}, - dictWord{11, 11, 4}, - dictWord{11, 11, 187}, - dictWord{ - 11, - 11, - 281, - }, - dictWord{11, 11, 503}, - dictWord{11, 11, 677}, - dictWord{12, 11, 96}, - dictWord{12, 11, 130}, - dictWord{12, 11, 244}, - dictWord{14, 11, 5}, - dictWord{ - 14, - 11, - 40, - }, - dictWord{14, 11, 162}, - dictWord{14, 11, 202}, - dictWord{146, 11, 133}, - dictWord{4, 11, 406}, - dictWord{5, 11, 579}, - dictWord{12, 11, 492}, - dictWord{ - 150, - 11, - 15, - }, - dictWord{139, 0, 392}, - dictWord{6, 10, 610}, - dictWord{10, 10, 127}, - dictWord{141, 10, 27}, - dictWord{7, 0, 655}, - dictWord{7, 0, 1844}, - dictWord{ - 136, - 10, - 119, - }, - dictWord{4, 0, 145}, - dictWord{6, 0, 176}, - dictWord{7, 0, 395}, - dictWord{137, 0, 562}, - dictWord{132, 0, 501}, - dictWord{140, 11, 145}, - dictWord{ - 136, - 0, - 1019, - }, - dictWord{134, 0, 509}, - dictWord{139, 0, 267}, - dictWord{6, 11, 17}, - dictWord{7, 11, 16}, - dictWord{7, 11, 1001}, - dictWord{7, 11, 1982}, - dictWord{ - 9, - 11, - 886, - }, - dictWord{10, 11, 489}, - dictWord{10, 11, 800}, - dictWord{11, 11, 782}, - dictWord{12, 11, 320}, - dictWord{13, 11, 467}, - dictWord{14, 11, 145}, - dictWord{14, 11, 387}, - dictWord{143, 11, 119}, - dictWord{145, 11, 17}, - dictWord{6, 0, 1099}, - dictWord{133, 11, 458}, - dictWord{7, 11, 1983}, - dictWord{8, 11, 0}, - dictWord{8, 11, 171}, - dictWord{9, 11, 120}, - dictWord{9, 11, 732}, - dictWord{10, 11, 473}, - dictWord{11, 11, 656}, - dictWord{11, 11, 998}, - dictWord{18, 11, 0}, - dictWord{18, 11, 2}, - dictWord{147, 11, 21}, - dictWord{12, 11, 427}, - dictWord{146, 11, 38}, - dictWord{10, 0, 948}, - dictWord{138, 0, 968}, - dictWord{7, 10, 126}, - dictWord{136, 10, 84}, - dictWord{136, 10, 790}, - dictWord{4, 0, 114}, - dictWord{9, 0, 492}, - dictWord{13, 0, 462}, - dictWord{142, 0, 215}, - dictWord{6, 10, 64}, - dictWord{12, 10, 377}, - dictWord{141, 10, 309}, - dictWord{4, 0, 77}, - dictWord{5, 0, 361}, - dictWord{6, 0, 139}, - dictWord{6, 0, 401}, - dictWord{6, 0, 404}, - dictWord{ - 7, - 0, - 413, - }, - dictWord{7, 0, 715}, - dictWord{7, 0, 1716}, - dictWord{11, 0, 279}, - dictWord{12, 0, 179}, - dictWord{12, 0, 258}, - dictWord{13, 0, 244}, - dictWord{142, 0, 358}, - dictWord{134, 0, 1717}, - dictWord{7, 0, 772}, - dictWord{7, 0, 1061}, - dictWord{7, 0, 1647}, - dictWord{8, 0, 82}, - dictWord{11, 0, 250}, - dictWord{11, 0, 607}, - dictWord{12, 0, 311}, - dictWord{12, 0, 420}, - dictWord{13, 0, 184}, - dictWord{13, 0, 367}, - dictWord{7, 10, 1104}, - dictWord{11, 10, 269}, - dictWord{11, 10, 539}, - dictWord{11, 10, 627}, - dictWord{11, 10, 706}, - dictWord{11, 10, 975}, - dictWord{12, 10, 248}, - dictWord{12, 10, 434}, - dictWord{12, 10, 600}, - dictWord{ - 12, - 10, - 622, - }, - dictWord{13, 10, 297}, - dictWord{13, 10, 485}, - dictWord{14, 10, 69}, - dictWord{14, 10, 409}, - dictWord{143, 10, 108}, - dictWord{135, 0, 724}, - dictWord{ - 4, - 11, - 512, - }, - dictWord{4, 11, 519}, - dictWord{133, 11, 342}, - dictWord{134, 0, 1133}, - dictWord{145, 11, 29}, - dictWord{11, 10, 977}, - dictWord{141, 10, 507}, - dictWord{6, 0, 841}, - dictWord{6, 0, 1042}, - dictWord{6, 0, 1194}, - dictWord{10, 0, 993}, - dictWord{140, 0, 1021}, - dictWord{6, 11, 31}, - dictWord{7, 11, 491}, - dictWord{7, 11, 530}, - dictWord{8, 11, 592}, - dictWord{9, 10, 34}, - dictWord{11, 11, 53}, - dictWord{11, 10, 484}, - dictWord{11, 11, 779}, - dictWord{12, 11, 167}, - dictWord{12, 11, 411}, - dictWord{14, 11, 14}, - dictWord{14, 11, 136}, - dictWord{15, 11, 72}, - dictWord{16, 11, 17}, - dictWord{144, 11, 72}, - dictWord{4, 0, 1021}, - dictWord{6, 0, 2037}, - dictWord{133, 11, 907}, - dictWord{7, 0, 373}, - dictWord{8, 0, 335}, - dictWord{8, 0, 596}, - dictWord{9, 0, 488}, - dictWord{6, 10, 1700}, - dictWord{ - 7, - 10, - 293, - }, - dictWord{7, 10, 382}, - dictWord{7, 10, 1026}, - dictWord{7, 10, 1087}, - dictWord{7, 10, 2027}, - dictWord{8, 10, 252}, - dictWord{8, 10, 727}, - dictWord{ - 8, - 10, - 729, - }, - dictWord{9, 10, 30}, - dictWord{9, 10, 199}, - dictWord{9, 10, 231}, - dictWord{9, 10, 251}, - dictWord{9, 10, 334}, - dictWord{9, 10, 361}, - dictWord{9, 10, 712}, - dictWord{10, 10, 55}, - dictWord{10, 10, 60}, - dictWord{10, 10, 232}, - dictWord{10, 10, 332}, - dictWord{10, 10, 384}, - dictWord{10, 10, 396}, - dictWord{ - 10, - 10, - 504, - }, - dictWord{10, 10, 542}, - dictWord{10, 10, 652}, - dictWord{11, 10, 20}, - dictWord{11, 10, 48}, - dictWord{11, 10, 207}, - dictWord{11, 10, 291}, - dictWord{ - 11, - 10, - 298, - }, - dictWord{11, 10, 342}, - dictWord{11, 10, 365}, - dictWord{11, 10, 394}, - dictWord{11, 10, 620}, - dictWord{11, 10, 705}, - dictWord{11, 10, 1017}, - dictWord{12, 10, 123}, - dictWord{12, 10, 340}, - dictWord{12, 10, 406}, - dictWord{12, 10, 643}, - dictWord{13, 10, 61}, - dictWord{13, 10, 269}, - dictWord{ - 13, - 10, - 311, - }, - dictWord{13, 10, 319}, - dictWord{13, 10, 486}, - dictWord{14, 10, 234}, - dictWord{15, 10, 62}, - dictWord{15, 10, 85}, - dictWord{16, 10, 71}, - dictWord{ - 18, - 10, - 119, - }, - dictWord{148, 10, 105}, - dictWord{150, 0, 37}, - dictWord{4, 11, 208}, - dictWord{5, 11, 106}, - dictWord{6, 11, 531}, - dictWord{8, 11, 408}, - dictWord{ - 9, - 11, - 188, - }, - dictWord{138, 11, 572}, - dictWord{132, 0, 564}, - dictWord{6, 0, 513}, - dictWord{135, 0, 1052}, - dictWord{132, 0, 825}, - dictWord{9, 0, 899}, - dictWord{ - 140, - 11, - 441, - }, - dictWord{134, 0, 778}, - dictWord{133, 11, 379}, - dictWord{7, 0, 1417}, - dictWord{12, 0, 382}, - dictWord{17, 0, 48}, - dictWord{152, 0, 12}, - dictWord{ - 132, - 11, - 241, - }, - dictWord{7, 0, 1116}, - dictWord{6, 10, 379}, - dictWord{7, 10, 270}, - dictWord{8, 10, 176}, - dictWord{8, 10, 183}, - dictWord{9, 10, 432}, - dictWord{ - 9, - 10, - 661, - }, - dictWord{12, 10, 247}, - dictWord{12, 10, 617}, - dictWord{146, 10, 125}, - dictWord{5, 10, 792}, - dictWord{133, 10, 900}, - dictWord{6, 0, 545}, - dictWord{ - 7, - 0, - 565, - }, - dictWord{7, 0, 1669}, - dictWord{10, 0, 114}, - dictWord{11, 0, 642}, - dictWord{140, 0, 618}, - dictWord{133, 0, 5}, - dictWord{138, 11, 7}, - dictWord{ - 132, - 11, - 259, - }, - dictWord{135, 0, 192}, - dictWord{134, 0, 701}, - dictWord{136, 0, 763}, - dictWord{135, 10, 1979}, - dictWord{4, 10, 901}, - dictWord{133, 10, 776}, - dictWord{10, 0, 755}, - dictWord{147, 0, 29}, - dictWord{133, 0, 759}, - dictWord{4, 11, 173}, - dictWord{5, 11, 312}, - dictWord{5, 11, 512}, - dictWord{135, 11, 1285}, - dictWord{7, 11, 1603}, - dictWord{7, 11, 1691}, - dictWord{9, 11, 464}, - dictWord{11, 11, 195}, - dictWord{12, 11, 279}, - dictWord{12, 11, 448}, - dictWord{ - 14, - 11, - 11, - }, - dictWord{147, 11, 102}, - dictWord{7, 0, 370}, - dictWord{7, 0, 1007}, - dictWord{7, 0, 1177}, - dictWord{135, 0, 1565}, - dictWord{135, 0, 1237}, - dictWord{ - 4, - 0, - 87, - }, - dictWord{5, 0, 250}, - dictWord{141, 0, 298}, - dictWord{4, 11, 452}, - dictWord{5, 11, 583}, - dictWord{5, 11, 817}, - dictWord{6, 11, 433}, - dictWord{7, 11, 593}, - dictWord{7, 11, 720}, - dictWord{7, 11, 1378}, - dictWord{8, 11, 161}, - dictWord{9, 11, 284}, - dictWord{10, 11, 313}, - dictWord{139, 11, 886}, - dictWord{4, 11, 547}, - dictWord{135, 11, 1409}, - dictWord{136, 11, 722}, - dictWord{4, 10, 37}, - dictWord{5, 10, 334}, - dictWord{135, 10, 1253}, - dictWord{132, 10, 508}, - dictWord{ - 12, - 0, - 107, - }, - dictWord{146, 0, 31}, - dictWord{8, 11, 420}, - dictWord{139, 11, 193}, - dictWord{135, 0, 814}, - dictWord{135, 11, 409}, - dictWord{140, 0, 991}, - dictWord{4, 0, 57}, - dictWord{7, 0, 1195}, - dictWord{7, 0, 1438}, - dictWord{7, 0, 1548}, - dictWord{7, 0, 1835}, - dictWord{7, 0, 1904}, - dictWord{9, 0, 757}, - dictWord{ - 10, - 0, - 604, - }, - dictWord{139, 0, 519}, - dictWord{132, 0, 540}, - dictWord{138, 11, 308}, - dictWord{132, 10, 533}, - dictWord{136, 0, 608}, - dictWord{144, 11, 65}, - dictWord{4, 0, 1014}, - dictWord{134, 0, 2029}, - dictWord{4, 0, 209}, - dictWord{7, 0, 902}, - dictWord{5, 11, 1002}, - dictWord{136, 11, 745}, - dictWord{134, 0, 2030}, - dictWord{6, 0, 303}, - dictWord{7, 0, 335}, - dictWord{7, 0, 1437}, - dictWord{7, 0, 1668}, - dictWord{8, 0, 553}, - dictWord{8, 0, 652}, - dictWord{8, 0, 656}, - dictWord{ - 9, - 0, - 558, - }, - dictWord{11, 0, 743}, - dictWord{149, 0, 18}, - dictWord{5, 11, 575}, - dictWord{6, 11, 354}, - dictWord{135, 11, 701}, - dictWord{4, 11, 239}, - dictWord{ - 6, - 11, - 477, - }, - dictWord{7, 11, 1607}, - dictWord{11, 11, 68}, - dictWord{139, 11, 617}, - dictWord{132, 0, 559}, - dictWord{8, 0, 527}, - dictWord{18, 0, 60}, - dictWord{ - 147, - 0, - 24, - }, - dictWord{133, 10, 920}, - dictWord{138, 0, 511}, - dictWord{133, 0, 1017}, - dictWord{133, 0, 675}, - dictWord{138, 10, 391}, - dictWord{11, 0, 156}, - dictWord{135, 10, 1952}, - dictWord{138, 11, 369}, - dictWord{132, 11, 367}, - dictWord{133, 0, 709}, - dictWord{6, 0, 698}, - dictWord{134, 0, 887}, - dictWord{ - 142, - 10, - 126, - }, - dictWord{134, 0, 1745}, - dictWord{132, 10, 483}, - dictWord{13, 11, 299}, - dictWord{142, 11, 75}, - dictWord{133, 0, 714}, - dictWord{7, 0, 8}, - dictWord{ - 136, - 0, - 206, - }, - dictWord{138, 10, 480}, - dictWord{4, 11, 694}, - dictWord{9, 10, 495}, - dictWord{146, 10, 104}, - dictWord{7, 11, 1248}, - dictWord{11, 11, 621}, - dictWord{139, 11, 702}, - dictWord{140, 11, 687}, - dictWord{132, 0, 776}, - dictWord{139, 10, 1009}, - dictWord{135, 0, 1272}, - dictWord{134, 0, 1059}, - dictWord{ - 8, - 10, - 653, - }, - dictWord{13, 10, 93}, - dictWord{147, 10, 14}, - dictWord{135, 11, 213}, - dictWord{136, 0, 406}, - dictWord{133, 10, 172}, - dictWord{132, 0, 947}, - dictWord{8, 0, 175}, - dictWord{10, 0, 168}, - dictWord{138, 0, 573}, - dictWord{132, 0, 870}, - dictWord{6, 0, 1567}, - dictWord{151, 11, 28}, - dictWord{ - 134, - 11, - 472, - }, - dictWord{5, 10, 260}, - dictWord{136, 11, 132}, - dictWord{4, 11, 751}, - dictWord{11, 11, 390}, - dictWord{140, 11, 32}, - dictWord{4, 11, 409}, - dictWord{ - 133, - 11, - 78, - }, - dictWord{12, 0, 554}, - dictWord{6, 11, 473}, - dictWord{145, 11, 105}, - dictWord{133, 0, 784}, - dictWord{8, 0, 908}, - dictWord{136, 11, 306}, - dictWord{139, 0, 882}, - dictWord{6, 0, 358}, - dictWord{7, 0, 1393}, - dictWord{8, 0, 396}, - dictWord{10, 0, 263}, - dictWord{14, 0, 154}, - dictWord{16, 0, 48}, - dictWord{ - 17, - 0, - 8, - }, - dictWord{7, 11, 1759}, - dictWord{8, 11, 396}, - dictWord{10, 11, 263}, - dictWord{14, 11, 154}, - dictWord{16, 11, 48}, - dictWord{145, 11, 8}, - dictWord{ - 13, - 11, - 163, - }, - dictWord{13, 11, 180}, - dictWord{18, 11, 78}, - dictWord{148, 11, 35}, - dictWord{14, 0, 32}, - dictWord{18, 0, 85}, - dictWord{20, 0, 2}, - dictWord{152, 0, 16}, - dictWord{7, 0, 228}, - dictWord{10, 0, 770}, - dictWord{8, 10, 167}, - dictWord{8, 10, 375}, - dictWord{9, 10, 82}, - dictWord{9, 10, 561}, - dictWord{138, 10, 620}, - dictWord{132, 0, 845}, - dictWord{9, 0, 14}, - dictWord{9, 0, 441}, - dictWord{10, 0, 306}, - dictWord{139, 0, 9}, - dictWord{11, 0, 966}, - dictWord{12, 0, 287}, - dictWord{ - 13, - 0, - 342, - }, - dictWord{13, 0, 402}, - dictWord{15, 0, 110}, - dictWord{15, 0, 163}, - dictWord{8, 10, 194}, - dictWord{136, 10, 756}, - dictWord{134, 0, 1578}, - dictWord{ - 4, - 0, - 967, - }, - dictWord{6, 0, 1820}, - dictWord{6, 0, 1847}, - dictWord{140, 0, 716}, - dictWord{136, 0, 594}, - dictWord{7, 0, 1428}, - dictWord{7, 0, 1640}, - dictWord{ - 7, - 0, - 1867, - }, - dictWord{9, 0, 169}, - dictWord{9, 0, 182}, - dictWord{9, 0, 367}, - dictWord{9, 0, 478}, - dictWord{9, 0, 506}, - dictWord{9, 0, 551}, - dictWord{9, 0, 557}, - dictWord{ - 9, - 0, - 648, - }, - dictWord{9, 0, 697}, - dictWord{9, 0, 705}, - dictWord{9, 0, 725}, - dictWord{9, 0, 787}, - dictWord{9, 0, 794}, - dictWord{10, 0, 198}, - dictWord{10, 0, 214}, - dictWord{10, 0, 267}, - dictWord{10, 0, 275}, - dictWord{10, 0, 456}, - dictWord{10, 0, 551}, - dictWord{10, 0, 561}, - dictWord{10, 0, 613}, - dictWord{10, 0, 627}, - dictWord{ - 10, - 0, - 668, - }, - dictWord{10, 0, 675}, - dictWord{10, 0, 691}, - dictWord{10, 0, 695}, - dictWord{10, 0, 707}, - dictWord{10, 0, 715}, - dictWord{11, 0, 183}, - dictWord{ - 11, - 0, - 201, - }, - dictWord{11, 0, 244}, - dictWord{11, 0, 262}, - dictWord{11, 0, 352}, - dictWord{11, 0, 439}, - dictWord{11, 0, 493}, - dictWord{11, 0, 572}, - dictWord{11, 0, 591}, - dictWord{11, 0, 608}, - dictWord{11, 0, 611}, - dictWord{11, 0, 646}, - dictWord{11, 0, 674}, - dictWord{11, 0, 711}, - dictWord{11, 0, 751}, - dictWord{11, 0, 761}, - dictWord{11, 0, 776}, - dictWord{11, 0, 785}, - dictWord{11, 0, 850}, - dictWord{11, 0, 853}, - dictWord{11, 0, 862}, - dictWord{11, 0, 865}, - dictWord{11, 0, 868}, - dictWord{ - 11, - 0, - 875, - }, - dictWord{11, 0, 898}, - dictWord{11, 0, 902}, - dictWord{11, 0, 903}, - dictWord{11, 0, 910}, - dictWord{11, 0, 932}, - dictWord{11, 0, 942}, - dictWord{ - 11, - 0, - 957, - }, - dictWord{11, 0, 967}, - dictWord{11, 0, 972}, - dictWord{12, 0, 148}, - dictWord{12, 0, 195}, - dictWord{12, 0, 220}, - dictWord{12, 0, 237}, - dictWord{12, 0, 318}, - dictWord{12, 0, 339}, - dictWord{12, 0, 393}, - dictWord{12, 0, 445}, - dictWord{12, 0, 450}, - dictWord{12, 0, 474}, - dictWord{12, 0, 505}, - dictWord{12, 0, 509}, - dictWord{12, 0, 533}, - dictWord{12, 0, 591}, - dictWord{12, 0, 594}, - dictWord{12, 0, 597}, - dictWord{12, 0, 621}, - dictWord{12, 0, 633}, - dictWord{12, 0, 642}, - dictWord{ - 13, - 0, - 59, - }, - dictWord{13, 0, 60}, - dictWord{13, 0, 145}, - dictWord{13, 0, 239}, - dictWord{13, 0, 250}, - dictWord{13, 0, 329}, - dictWord{13, 0, 344}, - dictWord{13, 0, 365}, - dictWord{13, 0, 372}, - dictWord{13, 0, 387}, - dictWord{13, 0, 403}, - dictWord{13, 0, 414}, - dictWord{13, 0, 456}, - dictWord{13, 0, 470}, - dictWord{13, 0, 478}, - dictWord{13, 0, 483}, - dictWord{13, 0, 489}, - dictWord{14, 0, 55}, - dictWord{14, 0, 57}, - dictWord{14, 0, 81}, - dictWord{14, 0, 90}, - dictWord{14, 0, 148}, - dictWord{ - 14, - 0, - 239, - }, - dictWord{14, 0, 266}, - dictWord{14, 0, 321}, - dictWord{14, 0, 326}, - dictWord{14, 0, 327}, - dictWord{14, 0, 330}, - dictWord{14, 0, 347}, - dictWord{14, 0, 355}, - dictWord{14, 0, 401}, - dictWord{14, 0, 404}, - dictWord{14, 0, 411}, - dictWord{14, 0, 414}, - dictWord{14, 0, 416}, - dictWord{14, 0, 420}, - dictWord{15, 0, 61}, - dictWord{15, 0, 74}, - dictWord{15, 0, 87}, - dictWord{15, 0, 88}, - dictWord{15, 0, 94}, - dictWord{15, 0, 96}, - dictWord{15, 0, 116}, - dictWord{15, 0, 149}, - dictWord{15, 0, 154}, - dictWord{16, 0, 50}, - dictWord{16, 0, 63}, - dictWord{16, 0, 73}, - dictWord{17, 0, 2}, - dictWord{17, 0, 66}, - dictWord{17, 0, 92}, - dictWord{17, 0, 103}, - dictWord{ - 17, - 0, - 112, - }, - dictWord{17, 0, 120}, - dictWord{18, 0, 50}, - dictWord{18, 0, 54}, - dictWord{18, 0, 82}, - dictWord{18, 0, 86}, - dictWord{18, 0, 90}, - dictWord{18, 0, 111}, - dictWord{ - 18, - 0, - 115, - }, - dictWord{18, 0, 156}, - dictWord{19, 0, 40}, - dictWord{19, 0, 79}, - dictWord{20, 0, 78}, - dictWord{21, 0, 22}, - dictWord{135, 11, 883}, - dictWord{5, 0, 161}, - dictWord{135, 0, 839}, - dictWord{4, 0, 782}, - dictWord{13, 11, 293}, - dictWord{142, 11, 56}, - dictWord{133, 11, 617}, - dictWord{139, 11, 50}, - dictWord{ - 135, - 10, - 22, - }, - dictWord{145, 0, 64}, - dictWord{5, 10, 639}, - dictWord{7, 10, 1249}, - dictWord{139, 10, 896}, - dictWord{138, 0, 998}, - dictWord{135, 11, 2042}, - dictWord{ - 4, - 11, - 546, - }, - dictWord{142, 11, 233}, - dictWord{6, 0, 1043}, - dictWord{134, 0, 1574}, - dictWord{134, 0, 1496}, - dictWord{4, 10, 102}, - dictWord{7, 10, 815}, - dictWord{7, 10, 1699}, - dictWord{139, 10, 964}, - dictWord{12, 0, 781}, - dictWord{142, 0, 461}, - dictWord{4, 11, 313}, - dictWord{133, 11, 577}, - dictWord{ - 6, - 0, - 639, - }, - dictWord{6, 0, 1114}, - dictWord{137, 0, 817}, - dictWord{8, 11, 184}, - dictWord{141, 11, 433}, - dictWord{7, 0, 1814}, - dictWord{135, 11, 935}, - dictWord{ - 10, - 0, - 997, - }, - dictWord{140, 0, 958}, - dictWord{4, 0, 812}, - dictWord{137, 11, 625}, - dictWord{132, 10, 899}, - dictWord{136, 10, 795}, - dictWord{5, 11, 886}, - dictWord{6, 11, 46}, - dictWord{6, 11, 1790}, - dictWord{7, 11, 14}, - dictWord{7, 11, 732}, - dictWord{7, 11, 1654}, - dictWord{8, 11, 95}, - dictWord{8, 11, 327}, - dictWord{ - 8, - 11, - 616, - }, - dictWord{10, 11, 598}, - dictWord{10, 11, 769}, - dictWord{11, 11, 134}, - dictWord{11, 11, 747}, - dictWord{12, 11, 378}, - dictWord{142, 11, 97}, - dictWord{136, 0, 139}, - dictWord{6, 10, 52}, - dictWord{9, 10, 104}, - dictWord{9, 10, 559}, - dictWord{12, 10, 308}, - dictWord{147, 10, 87}, - dictWord{133, 11, 1021}, - dictWord{132, 10, 604}, - dictWord{132, 10, 301}, - dictWord{136, 10, 779}, - dictWord{7, 0, 643}, - dictWord{136, 0, 236}, - dictWord{132, 11, 153}, - dictWord{ - 134, - 0, - 1172, - }, - dictWord{147, 10, 32}, - dictWord{133, 11, 798}, - dictWord{6, 0, 1338}, - dictWord{132, 11, 587}, - dictWord{6, 11, 598}, - dictWord{7, 11, 42}, - dictWord{ - 8, - 11, - 695, - }, - dictWord{10, 11, 212}, - dictWord{11, 11, 158}, - dictWord{14, 11, 196}, - dictWord{145, 11, 85}, - dictWord{135, 10, 508}, - dictWord{5, 11, 957}, - dictWord{5, 11, 1008}, - dictWord{135, 11, 249}, - dictWord{4, 11, 129}, - dictWord{135, 11, 465}, - dictWord{5, 0, 54}, - dictWord{7, 11, 470}, - dictWord{7, 11, 1057}, - dictWord{7, 11, 1201}, - dictWord{9, 11, 755}, - dictWord{11, 11, 906}, - dictWord{140, 11, 527}, - dictWord{7, 11, 908}, - dictWord{146, 11, 7}, - dictWord{ - 5, - 11, - 148, - }, - dictWord{136, 11, 450}, - dictWord{144, 11, 1}, - dictWord{4, 0, 256}, - dictWord{135, 0, 1488}, - dictWord{9, 0, 351}, - dictWord{6, 10, 310}, - dictWord{ - 7, - 10, - 1849, - }, - dictWord{8, 10, 72}, - dictWord{8, 10, 272}, - dictWord{8, 10, 431}, - dictWord{9, 10, 12}, - dictWord{10, 10, 563}, - dictWord{10, 10, 630}, - dictWord{ - 10, - 10, - 796, - }, - dictWord{10, 10, 810}, - dictWord{11, 10, 367}, - dictWord{11, 10, 599}, - dictWord{11, 10, 686}, - dictWord{140, 10, 672}, - dictWord{6, 0, 1885}, - dictWord{ - 6, - 0, - 1898, - }, - dictWord{6, 0, 1899}, - dictWord{140, 0, 955}, - dictWord{4, 0, 714}, - dictWord{133, 0, 469}, - dictWord{6, 0, 1270}, - dictWord{134, 0, 1456}, - dictWord{132, 0, 744}, - dictWord{6, 0, 313}, - dictWord{7, 10, 537}, - dictWord{8, 10, 64}, - dictWord{9, 10, 127}, - dictWord{10, 10, 496}, - dictWord{12, 10, 510}, - dictWord{141, 10, 384}, - dictWord{4, 11, 217}, - dictWord{4, 10, 244}, - dictWord{5, 11, 710}, - dictWord{7, 10, 233}, - dictWord{7, 11, 1926}, - dictWord{9, 11, 428}, - dictWord{9, 11, 708}, - dictWord{10, 11, 254}, - dictWord{10, 11, 296}, - dictWord{10, 11, 720}, - dictWord{11, 11, 109}, - dictWord{11, 11, 255}, - dictWord{12, 11, 165}, - dictWord{12, 11, 315}, - dictWord{13, 11, 107}, - dictWord{13, 11, 203}, - dictWord{14, 11, 54}, - dictWord{14, 11, 99}, - dictWord{14, 11, 114}, - dictWord{ - 14, - 11, - 388, - }, - dictWord{16, 11, 85}, - dictWord{17, 11, 9}, - dictWord{17, 11, 33}, - dictWord{20, 11, 25}, - dictWord{20, 11, 28}, - dictWord{20, 11, 29}, - dictWord{21, 11, 9}, - dictWord{21, 11, 10}, - dictWord{21, 11, 34}, - dictWord{150, 11, 17}, - dictWord{138, 0, 402}, - dictWord{7, 0, 969}, - dictWord{146, 0, 55}, - dictWord{8, 0, 50}, - dictWord{ - 137, - 0, - 624, - }, - dictWord{134, 0, 1355}, - dictWord{132, 0, 572}, - dictWord{134, 10, 1650}, - dictWord{10, 10, 702}, - dictWord{139, 10, 245}, - dictWord{ - 10, - 0, - 847, - }, - dictWord{142, 0, 445}, - dictWord{6, 0, 43}, - dictWord{7, 0, 38}, - dictWord{8, 0, 248}, - dictWord{138, 0, 513}, - dictWord{133, 0, 369}, - dictWord{137, 10, 338}, - dictWord{133, 0, 766}, - dictWord{133, 0, 363}, - dictWord{133, 10, 896}, - dictWord{8, 11, 392}, - dictWord{11, 11, 54}, - dictWord{13, 11, 173}, - dictWord{ - 13, - 11, - 294, - }, - dictWord{148, 11, 7}, - dictWord{134, 0, 678}, - dictWord{7, 11, 1230}, - dictWord{136, 11, 531}, - dictWord{6, 0, 258}, - dictWord{140, 0, 409}, - dictWord{ - 5, - 0, - 249, - }, - dictWord{148, 0, 82}, - dictWord{7, 10, 1117}, - dictWord{136, 10, 539}, - dictWord{5, 0, 393}, - dictWord{6, 0, 378}, - dictWord{7, 0, 1981}, - dictWord{9, 0, 32}, - dictWord{9, 0, 591}, - dictWord{10, 0, 685}, - dictWord{10, 0, 741}, - dictWord{142, 0, 382}, - dictWord{133, 0, 788}, - dictWord{134, 0, 1281}, - dictWord{ - 134, - 0, - 1295, - }, - dictWord{7, 0, 1968}, - dictWord{141, 0, 509}, - dictWord{4, 0, 61}, - dictWord{5, 0, 58}, - dictWord{5, 0, 171}, - dictWord{5, 0, 683}, - dictWord{6, 0, 291}, - dictWord{ - 6, - 0, - 566, - }, - dictWord{7, 0, 1650}, - dictWord{11, 0, 523}, - dictWord{12, 0, 273}, - dictWord{12, 0, 303}, - dictWord{15, 0, 39}, - dictWord{143, 0, 111}, - dictWord{ - 6, - 0, - 706, - }, - dictWord{134, 0, 1283}, - dictWord{134, 0, 589}, - dictWord{135, 11, 1433}, - dictWord{133, 11, 435}, - dictWord{7, 0, 1059}, - dictWord{13, 0, 54}, - dictWord{ - 5, - 10, - 4, - }, - dictWord{5, 10, 810}, - dictWord{6, 10, 13}, - dictWord{6, 10, 538}, - dictWord{6, 10, 1690}, - dictWord{6, 10, 1726}, - dictWord{7, 10, 1819}, - dictWord{ - 8, - 10, - 148, - }, - dictWord{8, 10, 696}, - dictWord{8, 10, 791}, - dictWord{12, 10, 125}, - dictWord{143, 10, 9}, - dictWord{135, 10, 1268}, - dictWord{5, 11, 85}, - dictWord{ - 6, - 11, - 419, - }, - dictWord{7, 11, 134}, - dictWord{7, 11, 305}, - dictWord{7, 11, 361}, - dictWord{7, 11, 1337}, - dictWord{8, 11, 71}, - dictWord{140, 11, 519}, - dictWord{ - 137, - 0, - 824, - }, - dictWord{140, 11, 688}, - dictWord{5, 11, 691}, - dictWord{7, 11, 345}, - dictWord{7, 10, 1385}, - dictWord{9, 11, 94}, - dictWord{11, 10, 582}, - dictWord{ - 11, - 10, - 650, - }, - dictWord{11, 10, 901}, - dictWord{11, 10, 949}, - dictWord{12, 11, 169}, - dictWord{12, 10, 232}, - dictWord{12, 10, 236}, - dictWord{13, 10, 413}, - dictWord{13, 10, 501}, - dictWord{146, 10, 116}, - dictWord{4, 0, 917}, - dictWord{133, 0, 1005}, - dictWord{7, 0, 1598}, - dictWord{5, 11, 183}, - dictWord{6, 11, 582}, - dictWord{9, 11, 344}, - dictWord{10, 11, 679}, - dictWord{140, 11, 435}, - dictWord{4, 10, 925}, - dictWord{5, 10, 803}, - dictWord{8, 10, 698}, - dictWord{ - 138, - 10, - 828, - }, - dictWord{132, 0, 919}, - dictWord{135, 11, 511}, - dictWord{139, 10, 992}, - dictWord{4, 0, 255}, - dictWord{5, 0, 302}, - dictWord{6, 0, 132}, - dictWord{ - 7, - 0, - 128, - }, - dictWord{7, 0, 283}, - dictWord{7, 0, 1299}, - dictWord{10, 0, 52}, - dictWord{10, 0, 514}, - dictWord{11, 0, 925}, - dictWord{13, 0, 92}, - dictWord{142, 0, 309}, - dictWord{134, 0, 1369}, - dictWord{135, 10, 1847}, - dictWord{134, 0, 328}, - dictWord{7, 11, 1993}, - dictWord{136, 11, 684}, - dictWord{133, 10, 383}, - dictWord{137, 0, 173}, - dictWord{134, 11, 583}, - dictWord{134, 0, 1411}, - dictWord{19, 0, 65}, - dictWord{5, 11, 704}, - dictWord{8, 11, 357}, - dictWord{10, 11, 745}, - dictWord{14, 11, 426}, - dictWord{17, 11, 94}, - dictWord{147, 11, 57}, - dictWord{9, 10, 660}, - dictWord{138, 10, 347}, - dictWord{4, 11, 179}, - dictWord{5, 11, 198}, - dictWord{133, 11, 697}, - dictWord{7, 11, 347}, - dictWord{7, 11, 971}, - dictWord{8, 11, 181}, - dictWord{138, 11, 711}, - dictWord{141, 0, 442}, - dictWord{ - 11, - 0, - 842, - }, - dictWord{11, 0, 924}, - dictWord{13, 0, 317}, - dictWord{13, 0, 370}, - dictWord{13, 0, 469}, - dictWord{13, 0, 471}, - dictWord{14, 0, 397}, - dictWord{18, 0, 69}, - dictWord{18, 0, 145}, - dictWord{7, 10, 572}, - dictWord{9, 10, 592}, - dictWord{11, 10, 680}, - dictWord{12, 10, 356}, - dictWord{140, 10, 550}, - dictWord{14, 11, 19}, - dictWord{14, 11, 28}, - dictWord{144, 11, 29}, - dictWord{136, 0, 534}, - dictWord{4, 11, 243}, - dictWord{5, 11, 203}, - dictWord{7, 11, 19}, - dictWord{7, 11, 71}, - dictWord{7, 11, 113}, - dictWord{10, 11, 405}, - dictWord{11, 11, 357}, - dictWord{142, 11, 240}, - dictWord{6, 0, 210}, - dictWord{10, 0, 845}, - dictWord{138, 0, 862}, - dictWord{7, 11, 1351}, - dictWord{9, 11, 581}, - dictWord{10, 11, 639}, - dictWord{11, 11, 453}, - dictWord{140, 11, 584}, - dictWord{7, 11, 1450}, - dictWord{ - 139, - 11, - 99, - }, - dictWord{10, 0, 892}, - dictWord{12, 0, 719}, - dictWord{144, 0, 105}, - dictWord{4, 0, 284}, - dictWord{6, 0, 223}, - dictWord{134, 11, 492}, - dictWord{5, 11, 134}, - dictWord{6, 11, 408}, - dictWord{6, 11, 495}, - dictWord{135, 11, 1593}, - dictWord{136, 0, 529}, - dictWord{137, 0, 807}, - dictWord{4, 0, 218}, - dictWord{7, 0, 526}, - dictWord{143, 0, 137}, - dictWord{6, 0, 1444}, - dictWord{142, 11, 4}, - dictWord{132, 11, 665}, - dictWord{4, 0, 270}, - dictWord{5, 0, 192}, - dictWord{6, 0, 332}, - dictWord{7, 0, 1322}, - dictWord{4, 11, 248}, - dictWord{7, 11, 137}, - dictWord{137, 11, 349}, - dictWord{140, 0, 661}, - dictWord{7, 0, 1517}, - dictWord{11, 0, 597}, - dictWord{14, 0, 76}, - dictWord{14, 0, 335}, - dictWord{20, 0, 33}, - dictWord{7, 10, 748}, - dictWord{139, 10, 700}, - dictWord{5, 11, 371}, - dictWord{135, 11, 563}, - dictWord{146, 11, 57}, - dictWord{133, 10, 127}, - dictWord{133, 0, 418}, - dictWord{4, 11, 374}, - dictWord{7, 11, 547}, - dictWord{7, 11, 1700}, - dictWord{7, 11, 1833}, - dictWord{139, 11, 858}, - dictWord{6, 10, 198}, - dictWord{140, 10, 83}, - dictWord{7, 11, 1812}, - dictWord{13, 11, 259}, - dictWord{13, 11, 356}, - dictWord{ - 14, - 11, - 242, - }, - dictWord{147, 11, 114}, - dictWord{7, 0, 379}, - dictWord{8, 0, 481}, - dictWord{9, 0, 377}, - dictWord{5, 10, 276}, - dictWord{6, 10, 55}, - dictWord{ - 135, - 10, - 1369, - }, - dictWord{138, 11, 286}, - dictWord{5, 0, 1003}, - dictWord{6, 0, 149}, - dictWord{6, 10, 1752}, - dictWord{136, 10, 726}, - dictWord{8, 0, 262}, - dictWord{ - 9, - 0, - 627, - }, - dictWord{10, 0, 18}, - dictWord{11, 0, 214}, - dictWord{11, 0, 404}, - dictWord{11, 0, 457}, - dictWord{11, 0, 780}, - dictWord{11, 0, 913}, - dictWord{13, 0, 401}, - dictWord{14, 0, 200}, - dictWord{6, 11, 1647}, - dictWord{7, 11, 1552}, - dictWord{7, 11, 2010}, - dictWord{9, 11, 494}, - dictWord{137, 11, 509}, - dictWord{ - 135, - 0, - 742, - }, - dictWord{136, 0, 304}, - dictWord{132, 0, 142}, - dictWord{133, 10, 764}, - dictWord{6, 10, 309}, - dictWord{7, 10, 331}, - dictWord{138, 10, 550}, - dictWord{135, 10, 1062}, - dictWord{6, 11, 123}, - dictWord{7, 11, 214}, - dictWord{7, 10, 986}, - dictWord{9, 11, 728}, - dictWord{10, 11, 157}, - dictWord{11, 11, 346}, - dictWord{11, 11, 662}, - dictWord{143, 11, 106}, - dictWord{135, 10, 1573}, - dictWord{7, 0, 925}, - dictWord{137, 0, 799}, - dictWord{4, 0, 471}, - dictWord{5, 0, 51}, - dictWord{6, 0, 602}, - dictWord{8, 0, 484}, - dictWord{138, 0, 195}, - dictWord{136, 0, 688}, - dictWord{132, 0, 697}, - dictWord{6, 0, 1169}, - dictWord{6, 0, 1241}, - dictWord{6, 10, 194}, - dictWord{7, 10, 133}, - dictWord{10, 10, 493}, - dictWord{10, 10, 570}, - dictWord{139, 10, 664}, - dictWord{140, 0, 751}, - dictWord{7, 0, 929}, - dictWord{10, 0, 452}, - dictWord{11, 0, 878}, - dictWord{16, 0, 33}, - dictWord{5, 10, 24}, - dictWord{5, 10, 569}, - dictWord{6, 10, 3}, - dictWord{6, 10, 119}, - dictWord{ - 6, - 10, - 143, - }, - dictWord{6, 10, 440}, - dictWord{7, 10, 599}, - dictWord{7, 10, 1686}, - dictWord{7, 10, 1854}, - dictWord{8, 10, 424}, - dictWord{9, 10, 43}, - dictWord{ - 9, - 10, - 584, - }, - dictWord{9, 10, 760}, - dictWord{10, 10, 328}, - dictWord{11, 10, 159}, - dictWord{11, 10, 253}, - dictWord{12, 10, 487}, - dictWord{140, 10, 531}, - dictWord{ - 4, - 11, - 707, - }, - dictWord{13, 11, 106}, - dictWord{18, 11, 49}, - dictWord{147, 11, 41}, - dictWord{5, 0, 221}, - dictWord{5, 11, 588}, - dictWord{134, 11, 393}, - dictWord{134, 0, 1437}, - dictWord{6, 11, 211}, - dictWord{7, 11, 1690}, - dictWord{11, 11, 486}, - dictWord{140, 11, 369}, - dictWord{5, 10, 14}, - dictWord{5, 10, 892}, - dictWord{6, 10, 283}, - dictWord{7, 10, 234}, - dictWord{136, 10, 537}, - dictWord{4, 0, 988}, - dictWord{136, 0, 955}, - dictWord{135, 0, 1251}, - dictWord{4, 10, 126}, - dictWord{8, 10, 635}, - dictWord{147, 10, 34}, - dictWord{4, 10, 316}, - dictWord{135, 10, 1561}, - dictWord{137, 10, 861}, - dictWord{4, 10, 64}, - dictWord{ - 5, - 10, - 352, - }, - dictWord{5, 10, 720}, - dictWord{6, 10, 368}, - dictWord{139, 10, 359}, - dictWord{134, 0, 192}, - dictWord{4, 0, 132}, - dictWord{5, 0, 69}, - dictWord{ - 135, - 0, - 1242, - }, - dictWord{7, 10, 1577}, - dictWord{10, 10, 304}, - dictWord{10, 10, 549}, - dictWord{12, 10, 365}, - dictWord{13, 10, 220}, - dictWord{13, 10, 240}, - dictWord{142, 10, 33}, - dictWord{4, 0, 111}, - dictWord{7, 0, 865}, - dictWord{134, 11, 219}, - dictWord{5, 11, 582}, - dictWord{6, 11, 1646}, - dictWord{7, 11, 99}, - dictWord{ - 7, - 11, - 1962, - }, - dictWord{7, 11, 1986}, - dictWord{8, 11, 515}, - dictWord{8, 11, 773}, - dictWord{9, 11, 23}, - dictWord{9, 11, 491}, - dictWord{12, 11, 620}, - dictWord{ - 14, - 11, - 52, - }, - dictWord{145, 11, 50}, - dictWord{132, 0, 767}, - dictWord{7, 11, 568}, - dictWord{148, 11, 21}, - dictWord{6, 0, 42}, - dictWord{7, 0, 1416}, - dictWord{ - 7, - 0, - 2005, - }, - dictWord{8, 0, 131}, - dictWord{8, 0, 466}, - dictWord{9, 0, 672}, - dictWord{13, 0, 252}, - dictWord{20, 0, 103}, - dictWord{133, 11, 851}, - dictWord{ - 135, - 0, - 1050, - }, - dictWord{6, 10, 175}, - dictWord{137, 10, 289}, - dictWord{5, 10, 432}, - dictWord{133, 10, 913}, - dictWord{6, 0, 44}, - dictWord{136, 0, 368}, - dictWord{ - 135, - 11, - 784, - }, - dictWord{132, 0, 570}, - dictWord{133, 0, 120}, - dictWord{139, 10, 595}, - dictWord{140, 0, 29}, - dictWord{6, 0, 227}, - dictWord{135, 0, 1589}, - dictWord{4, 11, 98}, - dictWord{7, 11, 1365}, - dictWord{9, 11, 422}, - dictWord{9, 11, 670}, - dictWord{10, 11, 775}, - dictWord{11, 11, 210}, - dictWord{13, 11, 26}, - dictWord{13, 11, 457}, - dictWord{141, 11, 476}, - dictWord{140, 10, 80}, - dictWord{5, 10, 931}, - dictWord{134, 10, 1698}, - dictWord{133, 0, 522}, - dictWord{ - 134, - 0, - 1120, - }, - dictWord{135, 0, 1529}, - dictWord{12, 0, 739}, - dictWord{14, 0, 448}, - dictWord{142, 0, 467}, - dictWord{11, 10, 526}, - dictWord{11, 10, 939}, - dictWord{141, 10, 290}, - dictWord{5, 10, 774}, - dictWord{6, 10, 1637}, - dictWord{6, 10, 1686}, - dictWord{134, 10, 1751}, - dictWord{6, 0, 1667}, - dictWord{ - 135, - 0, - 2036, - }, - dictWord{7, 10, 1167}, - dictWord{11, 10, 934}, - dictWord{13, 10, 391}, - dictWord{145, 10, 76}, - dictWord{137, 11, 147}, - dictWord{6, 10, 260}, - dictWord{ - 7, - 10, - 1484, - }, - dictWord{11, 11, 821}, - dictWord{12, 11, 110}, - dictWord{12, 11, 153}, - dictWord{18, 11, 41}, - dictWord{150, 11, 19}, - dictWord{6, 0, 511}, - dictWord{12, 0, 132}, - dictWord{134, 10, 573}, - dictWord{5, 0, 568}, - dictWord{6, 0, 138}, - dictWord{135, 0, 1293}, - dictWord{132, 0, 1020}, - dictWord{8, 0, 258}, - dictWord{9, 0, 208}, - dictWord{137, 0, 359}, - dictWord{4, 0, 565}, - dictWord{8, 0, 23}, - dictWord{136, 0, 827}, - dictWord{134, 0, 344}, - dictWord{4, 0, 922}, - dictWord{ - 5, - 0, - 1023, - }, - dictWord{13, 11, 477}, - dictWord{14, 11, 120}, - dictWord{148, 11, 61}, - dictWord{134, 0, 240}, - dictWord{5, 11, 209}, - dictWord{6, 11, 30}, - dictWord{ - 11, - 11, - 56, - }, - dictWord{139, 11, 305}, - dictWord{6, 0, 171}, - dictWord{7, 0, 1002}, - dictWord{7, 0, 1324}, - dictWord{9, 0, 415}, - dictWord{14, 0, 230}, - dictWord{ - 18, - 0, - 68, - }, - dictWord{4, 10, 292}, - dictWord{4, 10, 736}, - dictWord{5, 10, 871}, - dictWord{6, 10, 1689}, - dictWord{7, 10, 1944}, - dictWord{137, 10, 580}, - dictWord{ - 9, - 11, - 635, - }, - dictWord{139, 11, 559}, - dictWord{4, 11, 150}, - dictWord{5, 11, 303}, - dictWord{134, 11, 327}, - dictWord{6, 10, 63}, - dictWord{135, 10, 920}, - dictWord{ - 133, - 10, - 793, - }, - dictWord{8, 11, 192}, - dictWord{10, 11, 78}, - dictWord{10, 11, 555}, - dictWord{11, 11, 308}, - dictWord{13, 11, 359}, - dictWord{147, 11, 95}, - dictWord{135, 11, 786}, - dictWord{135, 11, 1712}, - dictWord{136, 0, 402}, - dictWord{6, 0, 754}, - dictWord{6, 11, 1638}, - dictWord{7, 11, 79}, - dictWord{7, 11, 496}, - dictWord{9, 11, 138}, - dictWord{10, 11, 336}, - dictWord{11, 11, 12}, - dictWord{12, 11, 412}, - dictWord{12, 11, 440}, - dictWord{142, 11, 305}, - dictWord{4, 0, 716}, - dictWord{141, 0, 31}, - dictWord{133, 0, 982}, - dictWord{8, 0, 691}, - dictWord{8, 0, 731}, - dictWord{5, 10, 67}, - dictWord{6, 10, 62}, - dictWord{6, 10, 374}, - dictWord{ - 135, - 10, - 1391, - }, - dictWord{9, 10, 790}, - dictWord{140, 10, 47}, - dictWord{139, 11, 556}, - dictWord{151, 11, 1}, - dictWord{7, 11, 204}, - dictWord{7, 11, 415}, - dictWord{8, 11, 42}, - dictWord{10, 11, 85}, - dictWord{11, 11, 33}, - dictWord{11, 11, 564}, - dictWord{12, 11, 571}, - dictWord{149, 11, 1}, - dictWord{8, 0, 888}, - dictWord{ - 7, - 11, - 610, - }, - dictWord{135, 11, 1501}, - dictWord{4, 10, 391}, - dictWord{135, 10, 1169}, - dictWord{5, 0, 847}, - dictWord{9, 0, 840}, - dictWord{138, 0, 803}, - dictWord{137, 0, 823}, - dictWord{134, 0, 785}, - dictWord{8, 0, 152}, - dictWord{9, 0, 53}, - dictWord{9, 0, 268}, - dictWord{9, 0, 901}, - dictWord{10, 0, 518}, - dictWord{ - 10, - 0, - 829, - }, - dictWord{11, 0, 188}, - dictWord{13, 0, 74}, - dictWord{14, 0, 46}, - dictWord{15, 0, 17}, - dictWord{15, 0, 33}, - dictWord{17, 0, 40}, - dictWord{18, 0, 36}, - dictWord{ - 19, - 0, - 20, - }, - dictWord{22, 0, 1}, - dictWord{152, 0, 2}, - dictWord{4, 11, 3}, - dictWord{5, 11, 247}, - dictWord{5, 11, 644}, - dictWord{7, 11, 744}, - dictWord{7, 11, 1207}, - dictWord{7, 11, 1225}, - dictWord{7, 11, 1909}, - dictWord{146, 11, 147}, - dictWord{136, 0, 532}, - dictWord{135, 0, 681}, - dictWord{132, 10, 271}, - dictWord{ - 140, - 0, - 314, - }, - dictWord{140, 0, 677}, - dictWord{4, 0, 684}, - dictWord{136, 0, 384}, - dictWord{5, 11, 285}, - dictWord{9, 11, 67}, - dictWord{13, 11, 473}, - dictWord{ - 143, - 11, - 82, - }, - dictWord{4, 10, 253}, - dictWord{5, 10, 544}, - dictWord{7, 10, 300}, - dictWord{137, 10, 340}, - dictWord{7, 0, 110}, - dictWord{7, 0, 447}, - dictWord{8, 0, 290}, - dictWord{8, 0, 591}, - dictWord{9, 0, 382}, - dictWord{9, 0, 649}, - dictWord{11, 0, 71}, - dictWord{11, 0, 155}, - dictWord{11, 0, 313}, - dictWord{12, 0, 5}, - dictWord{13, 0, 325}, - dictWord{142, 0, 287}, - dictWord{134, 0, 1818}, - dictWord{136, 0, 1007}, - dictWord{138, 0, 321}, - dictWord{7, 0, 360}, - dictWord{7, 0, 425}, - dictWord{9, 0, 66}, - dictWord{9, 0, 278}, - dictWord{138, 0, 644}, - dictWord{133, 10, 818}, - dictWord{5, 0, 385}, - dictWord{5, 10, 541}, - dictWord{6, 10, 94}, - dictWord{6, 10, 499}, - dictWord{ - 7, - 10, - 230, - }, - dictWord{139, 10, 321}, - dictWord{4, 10, 920}, - dictWord{5, 10, 25}, - dictWord{5, 10, 790}, - dictWord{6, 10, 457}, - dictWord{7, 10, 853}, - dictWord{ - 136, - 10, - 788, - }, - dictWord{4, 0, 900}, - dictWord{133, 0, 861}, - dictWord{5, 0, 254}, - dictWord{7, 0, 985}, - dictWord{136, 0, 73}, - dictWord{7, 0, 1959}, - dictWord{ - 136, - 0, - 683, - }, - dictWord{134, 10, 1765}, - dictWord{133, 10, 822}, - dictWord{132, 10, 634}, - dictWord{4, 11, 29}, - dictWord{6, 11, 532}, - dictWord{7, 11, 1628}, - dictWord{ - 7, - 11, - 1648, - }, - dictWord{9, 11, 303}, - dictWord{9, 11, 350}, - dictWord{10, 11, 433}, - dictWord{11, 11, 97}, - dictWord{11, 11, 557}, - dictWord{11, 11, 745}, - dictWord{12, 11, 289}, - dictWord{12, 11, 335}, - dictWord{12, 11, 348}, - dictWord{12, 11, 606}, - dictWord{13, 11, 116}, - dictWord{13, 11, 233}, - dictWord{ - 13, - 11, - 466, - }, - dictWord{14, 11, 181}, - dictWord{14, 11, 209}, - dictWord{14, 11, 232}, - dictWord{14, 11, 236}, - dictWord{14, 11, 300}, - dictWord{16, 11, 41}, - dictWord{ - 148, - 11, - 97, - }, - dictWord{19, 0, 86}, - dictWord{6, 10, 36}, - dictWord{7, 10, 658}, - dictWord{136, 10, 454}, - dictWord{135, 11, 1692}, - dictWord{132, 0, 725}, - dictWord{ - 5, - 11, - 501, - }, - dictWord{7, 11, 1704}, - dictWord{9, 11, 553}, - dictWord{11, 11, 520}, - dictWord{12, 11, 557}, - dictWord{141, 11, 249}, - dictWord{134, 0, 196}, - dictWord{133, 0, 831}, - dictWord{136, 0, 723}, - dictWord{7, 0, 1897}, - dictWord{13, 0, 80}, - dictWord{13, 0, 437}, - dictWord{145, 0, 74}, - dictWord{4, 0, 992}, - dictWord{ - 6, - 0, - 627, - }, - dictWord{136, 0, 994}, - dictWord{135, 11, 1294}, - dictWord{132, 10, 104}, - dictWord{5, 0, 848}, - dictWord{6, 0, 66}, - dictWord{136, 0, 764}, - dictWord{ - 4, - 0, - 36, - }, - dictWord{7, 0, 1387}, - dictWord{10, 0, 205}, - dictWord{139, 0, 755}, - dictWord{6, 0, 1046}, - dictWord{134, 0, 1485}, - dictWord{134, 0, 950}, - dictWord{132, 0, 887}, - dictWord{14, 0, 450}, - dictWord{148, 0, 111}, - dictWord{7, 0, 620}, - dictWord{7, 0, 831}, - dictWord{9, 10, 542}, - dictWord{9, 10, 566}, - dictWord{ - 138, - 10, - 728, - }, - dictWord{6, 0, 165}, - dictWord{138, 0, 388}, - dictWord{139, 10, 263}, - dictWord{4, 0, 719}, - dictWord{135, 0, 155}, - dictWord{138, 10, 468}, - dictWord{6, 11, 453}, - dictWord{144, 11, 36}, - dictWord{134, 11, 129}, - dictWord{5, 0, 533}, - dictWord{7, 0, 755}, - dictWord{138, 0, 780}, - dictWord{134, 0, 1465}, - dictWord{4, 0, 353}, - dictWord{6, 0, 146}, - dictWord{6, 0, 1789}, - dictWord{7, 0, 427}, - dictWord{7, 0, 990}, - dictWord{7, 0, 1348}, - dictWord{9, 0, 665}, - dictWord{9, 0, 898}, - dictWord{11, 0, 893}, - dictWord{142, 0, 212}, - dictWord{7, 10, 87}, - dictWord{142, 10, 288}, - dictWord{4, 0, 45}, - dictWord{135, 0, 1257}, - dictWord{12, 0, 7}, - dictWord{7, 10, 988}, - dictWord{7, 10, 1939}, - dictWord{9, 10, 64}, - dictWord{9, 10, 502}, - dictWord{12, 10, 34}, - dictWord{13, 10, 12}, - dictWord{13, 10, 234}, - dictWord{147, 10, 77}, - dictWord{4, 0, 607}, - dictWord{5, 11, 60}, - dictWord{6, 11, 504}, - dictWord{7, 11, 614}, - dictWord{7, 11, 1155}, - dictWord{140, 11, 0}, - dictWord{ - 135, - 10, - 141, - }, - dictWord{8, 11, 198}, - dictWord{11, 11, 29}, - dictWord{140, 11, 534}, - dictWord{140, 0, 65}, - dictWord{136, 0, 816}, - dictWord{132, 10, 619}, - dictWord{139, 0, 88}, - dictWord{5, 10, 246}, - dictWord{8, 10, 189}, - dictWord{9, 10, 355}, - dictWord{9, 10, 512}, - dictWord{10, 10, 124}, - dictWord{10, 10, 453}, - dictWord{11, 10, 143}, - dictWord{11, 10, 416}, - dictWord{11, 10, 859}, - dictWord{141, 10, 341}, - dictWord{4, 11, 379}, - dictWord{135, 11, 1397}, - dictWord{ - 4, - 0, - 600, - }, - dictWord{137, 0, 621}, - dictWord{133, 0, 367}, - dictWord{134, 0, 561}, - dictWord{6, 0, 559}, - dictWord{134, 0, 1691}, - dictWord{6, 0, 585}, - dictWord{ - 134, - 11, - 585, - }, - dictWord{135, 11, 1228}, - dictWord{4, 11, 118}, - dictWord{5, 10, 678}, - dictWord{6, 11, 274}, - dictWord{6, 11, 361}, - dictWord{7, 11, 75}, - dictWord{ - 141, - 11, - 441, - }, - dictWord{135, 11, 1818}, - dictWord{137, 11, 841}, - dictWord{5, 0, 573}, - dictWord{6, 0, 287}, - dictWord{7, 10, 862}, - dictWord{7, 10, 1886}, - dictWord{138, 10, 179}, - dictWord{132, 10, 517}, - dictWord{140, 11, 693}, - dictWord{5, 11, 314}, - dictWord{6, 11, 221}, - dictWord{7, 11, 419}, - dictWord{ - 10, - 11, - 650, - }, - dictWord{11, 11, 396}, - dictWord{12, 11, 156}, - dictWord{13, 11, 369}, - dictWord{14, 11, 333}, - dictWord{145, 11, 47}, - dictWord{140, 10, 540}, - dictWord{136, 10, 667}, - dictWord{11, 10, 403}, - dictWord{146, 10, 83}, - dictWord{6, 0, 672}, - dictWord{133, 10, 761}, - dictWord{9, 0, 157}, - dictWord{10, 10, 131}, - dictWord{140, 10, 72}, - dictWord{7, 0, 714}, - dictWord{134, 11, 460}, - dictWord{134, 0, 456}, - dictWord{133, 0, 925}, - dictWord{5, 11, 682}, - dictWord{ - 135, - 11, - 1887, - }, - dictWord{136, 11, 510}, - dictWord{136, 11, 475}, - dictWord{133, 11, 1016}, - dictWord{9, 0, 19}, - dictWord{7, 11, 602}, - dictWord{8, 11, 179}, - dictWord{ - 10, - 11, - 781, - }, - dictWord{140, 11, 126}, - dictWord{6, 11, 329}, - dictWord{138, 11, 111}, - dictWord{6, 0, 822}, - dictWord{134, 0, 1473}, - dictWord{144, 11, 86}, - dictWord{11, 0, 113}, - dictWord{139, 11, 113}, - dictWord{5, 11, 821}, - dictWord{134, 11, 1687}, - dictWord{133, 10, 449}, - dictWord{7, 0, 463}, - dictWord{ - 17, - 0, - 69, - }, - dictWord{136, 10, 103}, - dictWord{7, 10, 2028}, - dictWord{138, 10, 641}, - dictWord{6, 0, 193}, - dictWord{7, 0, 240}, - dictWord{7, 0, 1682}, - dictWord{ - 10, - 0, - 51, - }, - dictWord{10, 0, 640}, - dictWord{11, 0, 410}, - dictWord{13, 0, 82}, - dictWord{14, 0, 247}, - dictWord{14, 0, 331}, - dictWord{142, 0, 377}, - dictWord{6, 0, 471}, - dictWord{11, 0, 411}, - dictWord{142, 0, 2}, - dictWord{5, 11, 71}, - dictWord{7, 11, 1407}, - dictWord{9, 11, 388}, - dictWord{9, 11, 704}, - dictWord{10, 11, 261}, - dictWord{ - 10, - 11, - 619, - }, - dictWord{11, 11, 547}, - dictWord{11, 11, 619}, - dictWord{143, 11, 157}, - dictWord{136, 0, 633}, - dictWord{135, 0, 1148}, - dictWord{6, 0, 554}, - dictWord{7, 0, 1392}, - dictWord{12, 0, 129}, - dictWord{7, 10, 1274}, - dictWord{7, 10, 1386}, - dictWord{7, 11, 2008}, - dictWord{9, 11, 337}, - dictWord{10, 11, 517}, - dictWord{146, 10, 87}, - dictWord{7, 0, 803}, - dictWord{8, 0, 542}, - dictWord{6, 10, 187}, - dictWord{7, 10, 1203}, - dictWord{8, 10, 380}, - dictWord{14, 10, 117}, - dictWord{149, 10, 28}, - dictWord{6, 10, 297}, - dictWord{7, 10, 793}, - dictWord{139, 10, 938}, - dictWord{8, 0, 438}, - dictWord{11, 0, 363}, - dictWord{7, 10, 464}, - dictWord{11, 10, 105}, - dictWord{12, 10, 231}, - dictWord{14, 10, 386}, - dictWord{15, 10, 102}, - dictWord{148, 10, 75}, - dictWord{5, 11, 16}, - dictWord{6, 11, 86}, - dictWord{6, 11, 603}, - dictWord{7, 11, 292}, - dictWord{7, 11, 561}, - dictWord{8, 11, 257}, - dictWord{8, 11, 382}, - dictWord{9, 11, 721}, - dictWord{9, 11, 778}, - dictWord{ - 11, - 11, - 581, - }, - dictWord{140, 11, 466}, - dictWord{6, 0, 717}, - dictWord{4, 11, 486}, - dictWord{133, 11, 491}, - dictWord{132, 0, 875}, - dictWord{132, 11, 72}, - dictWord{6, 11, 265}, - dictWord{135, 11, 847}, - dictWord{4, 0, 237}, - dictWord{135, 0, 514}, - dictWord{6, 0, 392}, - dictWord{7, 0, 65}, - dictWord{135, 0, 2019}, - dictWord{140, 11, 261}, - dictWord{135, 11, 922}, - dictWord{137, 11, 404}, - dictWord{12, 0, 563}, - dictWord{14, 0, 101}, - dictWord{18, 0, 129}, - dictWord{ - 7, - 10, - 1010, - }, - dictWord{11, 10, 733}, - dictWord{11, 10, 759}, - dictWord{13, 10, 34}, - dictWord{146, 10, 45}, - dictWord{7, 10, 1656}, - dictWord{9, 10, 369}, - dictWord{ - 10, - 10, - 338, - }, - dictWord{10, 10, 490}, - dictWord{11, 10, 154}, - dictWord{11, 10, 545}, - dictWord{11, 10, 775}, - dictWord{13, 10, 77}, - dictWord{141, 10, 274}, - dictWord{4, 0, 444}, - dictWord{10, 0, 146}, - dictWord{140, 0, 9}, - dictWord{139, 11, 163}, - dictWord{7, 0, 1260}, - dictWord{135, 0, 1790}, - dictWord{9, 0, 222}, - dictWord{10, 0, 43}, - dictWord{139, 0, 900}, - dictWord{137, 11, 234}, - dictWord{138, 0, 971}, - dictWord{137, 0, 761}, - dictWord{134, 0, 699}, - dictWord{ - 136, - 11, - 434, - }, - dictWord{6, 0, 1116}, - dictWord{7, 0, 1366}, - dictWord{5, 10, 20}, - dictWord{6, 11, 197}, - dictWord{6, 10, 298}, - dictWord{7, 10, 659}, - dictWord{8, 11, 205}, - dictWord{137, 10, 219}, - dictWord{132, 11, 490}, - dictWord{11, 11, 820}, - dictWord{150, 11, 51}, - dictWord{7, 10, 1440}, - dictWord{11, 10, 854}, - dictWord{ - 11, - 10, - 872, - }, - dictWord{11, 10, 921}, - dictWord{12, 10, 551}, - dictWord{13, 10, 472}, - dictWord{142, 10, 367}, - dictWord{140, 11, 13}, - dictWord{132, 0, 829}, - dictWord{12, 0, 242}, - dictWord{132, 10, 439}, - dictWord{136, 10, 669}, - dictWord{6, 0, 593}, - dictWord{6, 11, 452}, - dictWord{7, 11, 312}, - dictWord{ - 138, - 11, - 219, - }, - dictWord{4, 11, 333}, - dictWord{9, 11, 176}, - dictWord{12, 11, 353}, - dictWord{141, 11, 187}, - dictWord{7, 0, 36}, - dictWord{8, 0, 201}, - dictWord{ - 136, - 0, - 605, - }, - dictWord{140, 0, 224}, - dictWord{132, 10, 233}, - dictWord{134, 0, 1430}, - dictWord{134, 0, 1806}, - dictWord{4, 0, 523}, - dictWord{133, 0, 638}, - dictWord{ - 6, - 0, - 1889, - }, - dictWord{9, 0, 958}, - dictWord{9, 0, 971}, - dictWord{9, 0, 976}, - dictWord{12, 0, 796}, - dictWord{12, 0, 799}, - dictWord{12, 0, 808}, - dictWord{ - 12, - 0, - 835, - }, - dictWord{12, 0, 836}, - dictWord{12, 0, 914}, - dictWord{12, 0, 946}, - dictWord{15, 0, 216}, - dictWord{15, 0, 232}, - dictWord{18, 0, 183}, - dictWord{18, 0, 187}, - dictWord{18, 0, 194}, - dictWord{18, 0, 212}, - dictWord{18, 0, 232}, - dictWord{149, 0, 49}, - dictWord{132, 10, 482}, - dictWord{6, 0, 827}, - dictWord{134, 0, 1434}, - dictWord{135, 10, 346}, - dictWord{134, 0, 2043}, - dictWord{6, 0, 242}, - dictWord{7, 0, 227}, - dictWord{7, 0, 1581}, - dictWord{8, 0, 104}, - dictWord{9, 0, 113}, - dictWord{9, 0, 220}, - dictWord{9, 0, 427}, - dictWord{10, 0, 136}, - dictWord{10, 0, 239}, - dictWord{11, 0, 579}, - dictWord{11, 0, 1023}, - dictWord{13, 0, 4}, - dictWord{ - 13, - 0, - 204, - }, - dictWord{13, 0, 316}, - dictWord{148, 0, 86}, - dictWord{134, 11, 1685}, - dictWord{7, 0, 148}, - dictWord{8, 0, 284}, - dictWord{141, 0, 63}, - dictWord{ - 142, - 0, - 10, - }, - dictWord{135, 11, 584}, - dictWord{134, 0, 1249}, - dictWord{7, 0, 861}, - dictWord{135, 10, 334}, - dictWord{5, 10, 795}, - dictWord{6, 10, 1741}, - dictWord{ - 137, - 11, - 70, - }, - dictWord{132, 0, 807}, - dictWord{7, 11, 135}, - dictWord{8, 11, 7}, - dictWord{8, 11, 62}, - dictWord{9, 11, 243}, - dictWord{10, 11, 658}, - dictWord{ - 10, - 11, - 697, - }, - dictWord{11, 11, 456}, - dictWord{139, 11, 756}, - dictWord{9, 11, 395}, - dictWord{138, 11, 79}, - dictWord{137, 11, 108}, - dictWord{147, 0, 94}, - dictWord{136, 0, 494}, - dictWord{135, 11, 631}, - dictWord{135, 10, 622}, - dictWord{7, 0, 1510}, - dictWord{135, 10, 1750}, - dictWord{4, 10, 203}, - dictWord{ - 135, - 10, - 1936, - }, - dictWord{7, 11, 406}, - dictWord{7, 11, 459}, - dictWord{8, 11, 606}, - dictWord{139, 11, 726}, - dictWord{7, 0, 1306}, - dictWord{8, 0, 505}, - dictWord{ - 9, - 0, - 482, - }, - dictWord{10, 0, 126}, - dictWord{11, 0, 225}, - dictWord{12, 0, 347}, - dictWord{12, 0, 449}, - dictWord{13, 0, 19}, - dictWord{14, 0, 218}, - dictWord{142, 0, 435}, - dictWord{5, 0, 268}, - dictWord{10, 0, 764}, - dictWord{12, 0, 120}, - dictWord{13, 0, 39}, - dictWord{145, 0, 127}, - dictWord{142, 11, 68}, - dictWord{11, 10, 678}, - dictWord{140, 10, 307}, - dictWord{12, 11, 268}, - dictWord{12, 11, 640}, - dictWord{142, 11, 119}, - dictWord{135, 10, 2044}, - dictWord{133, 11, 612}, - dictWord{ - 4, - 11, - 372, - }, - dictWord{7, 11, 482}, - dictWord{8, 11, 158}, - dictWord{9, 11, 602}, - dictWord{9, 11, 615}, - dictWord{10, 11, 245}, - dictWord{10, 11, 678}, - dictWord{ - 10, - 11, - 744, - }, - dictWord{11, 11, 248}, - dictWord{139, 11, 806}, - dictWord{7, 10, 311}, - dictWord{9, 10, 308}, - dictWord{140, 10, 255}, - dictWord{4, 0, 384}, - dictWord{135, 0, 1022}, - dictWord{5, 11, 854}, - dictWord{135, 11, 1991}, - dictWord{135, 10, 1266}, - dictWord{4, 10, 400}, - dictWord{5, 10, 267}, - dictWord{ - 135, - 10, - 232, - }, - dictWord{135, 0, 1703}, - dictWord{9, 0, 159}, - dictWord{11, 0, 661}, - dictWord{140, 0, 603}, - dictWord{4, 0, 964}, - dictWord{14, 0, 438}, - dictWord{ - 14, - 0, - 444, - }, - dictWord{14, 0, 456}, - dictWord{22, 0, 60}, - dictWord{22, 0, 63}, - dictWord{9, 11, 106}, - dictWord{9, 11, 163}, - dictWord{9, 11, 296}, - dictWord{10, 11, 167}, - dictWord{10, 11, 172}, - dictWord{10, 11, 777}, - dictWord{139, 11, 16}, - dictWord{136, 0, 583}, - dictWord{132, 0, 515}, - dictWord{8, 0, 632}, - dictWord{8, 0, 697}, - dictWord{137, 0, 854}, - dictWord{5, 11, 195}, - dictWord{135, 11, 1685}, - dictWord{6, 0, 1123}, - dictWord{134, 0, 1365}, - dictWord{134, 11, 328}, - dictWord{ - 7, - 11, - 1997, - }, - dictWord{8, 11, 730}, - dictWord{139, 11, 1006}, - dictWord{4, 0, 136}, - dictWord{133, 0, 551}, - dictWord{134, 0, 1782}, - dictWord{7, 0, 1287}, - dictWord{ - 9, - 0, - 44, - }, - dictWord{10, 0, 552}, - dictWord{10, 0, 642}, - dictWord{11, 0, 839}, - dictWord{12, 0, 274}, - dictWord{12, 0, 275}, - dictWord{12, 0, 372}, - dictWord{ - 13, - 0, - 91, - }, - dictWord{142, 0, 125}, - dictWord{5, 11, 751}, - dictWord{11, 11, 797}, - dictWord{140, 11, 203}, - dictWord{133, 0, 732}, - dictWord{7, 0, 679}, - dictWord{ - 8, - 0, - 313, - }, - dictWord{4, 10, 100}, - dictWord{135, 11, 821}, - dictWord{10, 0, 361}, - dictWord{142, 0, 316}, - dictWord{134, 0, 595}, - dictWord{6, 0, 147}, - dictWord{ - 7, - 0, - 886, - }, - dictWord{9, 0, 753}, - dictWord{138, 0, 268}, - dictWord{5, 10, 362}, - dictWord{5, 10, 443}, - dictWord{6, 10, 318}, - dictWord{7, 10, 1019}, - dictWord{ - 139, - 10, - 623, - }, - dictWord{5, 10, 463}, - dictWord{136, 10, 296}, - dictWord{4, 10, 454}, - dictWord{5, 11, 950}, - dictWord{5, 11, 994}, - dictWord{134, 11, 351}, - dictWord{ - 138, - 0, - 137, - }, - dictWord{5, 10, 48}, - dictWord{5, 10, 404}, - dictWord{6, 10, 557}, - dictWord{7, 10, 458}, - dictWord{8, 10, 597}, - dictWord{10, 10, 455}, - dictWord{ - 10, - 10, - 606, - }, - dictWord{11, 10, 49}, - dictWord{11, 10, 548}, - dictWord{12, 10, 476}, - dictWord{13, 10, 18}, - dictWord{141, 10, 450}, - dictWord{133, 0, 414}, - dictWord{ - 135, - 0, - 1762, - }, - dictWord{5, 11, 421}, - dictWord{135, 11, 47}, - dictWord{5, 10, 442}, - dictWord{135, 10, 1984}, - dictWord{134, 0, 599}, - dictWord{134, 0, 1749}, - dictWord{134, 0, 1627}, - dictWord{4, 0, 488}, - dictWord{132, 11, 350}, - dictWord{137, 11, 751}, - dictWord{132, 0, 83}, - dictWord{140, 0, 676}, - dictWord{ - 133, - 11, - 967, - }, - dictWord{7, 0, 1639}, - dictWord{5, 10, 55}, - dictWord{140, 10, 161}, - dictWord{4, 11, 473}, - dictWord{7, 11, 623}, - dictWord{8, 11, 808}, - dictWord{ - 9, - 11, - 871, - }, - dictWord{9, 11, 893}, - dictWord{11, 11, 38}, - dictWord{11, 11, 431}, - dictWord{12, 11, 112}, - dictWord{12, 11, 217}, - dictWord{12, 11, 243}, - dictWord{ - 12, - 11, - 562, - }, - dictWord{12, 11, 683}, - dictWord{13, 11, 141}, - dictWord{13, 11, 197}, - dictWord{13, 11, 227}, - dictWord{13, 11, 406}, - dictWord{13, 11, 487}, - dictWord{14, 11, 156}, - dictWord{14, 11, 203}, - dictWord{14, 11, 224}, - dictWord{14, 11, 256}, - dictWord{18, 11, 58}, - dictWord{150, 11, 0}, - dictWord{ - 133, - 10, - 450, - }, - dictWord{7, 11, 736}, - dictWord{139, 11, 264}, - dictWord{134, 0, 278}, - dictWord{4, 11, 222}, - dictWord{7, 11, 286}, - dictWord{136, 11, 629}, - dictWord{ - 135, - 10, - 869, - }, - dictWord{140, 0, 97}, - dictWord{144, 0, 14}, - dictWord{134, 0, 1085}, - dictWord{4, 10, 213}, - dictWord{7, 10, 223}, - dictWord{136, 10, 80}, - dictWord{ - 7, - 0, - 388, - }, - dictWord{7, 0, 644}, - dictWord{139, 0, 781}, - dictWord{132, 0, 849}, - dictWord{7, 0, 229}, - dictWord{8, 0, 59}, - dictWord{9, 0, 190}, - dictWord{10, 0, 378}, - dictWord{140, 0, 191}, - dictWord{7, 10, 381}, - dictWord{7, 10, 806}, - dictWord{7, 10, 820}, - dictWord{8, 10, 354}, - dictWord{8, 10, 437}, - dictWord{8, 10, 787}, - dictWord{9, 10, 657}, - dictWord{10, 10, 58}, - dictWord{10, 10, 339}, - dictWord{10, 10, 749}, - dictWord{11, 10, 914}, - dictWord{12, 10, 162}, - dictWord{13, 10, 75}, - dictWord{14, 10, 106}, - dictWord{14, 10, 198}, - dictWord{14, 10, 320}, - dictWord{14, 10, 413}, - dictWord{146, 10, 43}, - dictWord{141, 11, 306}, - dictWord{ - 136, - 10, - 747, - }, - dictWord{134, 0, 1115}, - dictWord{16, 0, 94}, - dictWord{16, 0, 108}, - dictWord{136, 11, 146}, - dictWord{6, 0, 700}, - dictWord{6, 0, 817}, - dictWord{ - 134, - 0, - 1002, - }, - dictWord{133, 10, 692}, - dictWord{4, 11, 465}, - dictWord{135, 11, 1663}, - dictWord{134, 10, 191}, - dictWord{6, 0, 1414}, - dictWord{ - 135, - 11, - 913, - }, - dictWord{132, 0, 660}, - dictWord{7, 0, 1035}, - dictWord{138, 0, 737}, - dictWord{6, 10, 162}, - dictWord{7, 10, 1960}, - dictWord{136, 10, 831}, - dictWord{ - 132, - 10, - 706, - }, - dictWord{7, 0, 690}, - dictWord{9, 0, 217}, - dictWord{9, 0, 587}, - dictWord{140, 0, 521}, - dictWord{138, 10, 426}, - dictWord{135, 10, 1235}, - dictWord{ - 6, - 11, - 82, - }, - dictWord{7, 11, 138}, - dictWord{7, 11, 517}, - dictWord{9, 11, 673}, - dictWord{139, 11, 238}, - dictWord{138, 0, 272}, - dictWord{5, 11, 495}, - dictWord{ - 7, - 11, - 834, - }, - dictWord{9, 11, 733}, - dictWord{139, 11, 378}, - dictWord{134, 0, 1744}, - dictWord{132, 0, 1011}, - dictWord{7, 11, 828}, - dictWord{142, 11, 116}, - dictWord{4, 0, 733}, - dictWord{9, 0, 194}, - dictWord{10, 0, 92}, - dictWord{11, 0, 198}, - dictWord{12, 0, 84}, - dictWord{13, 0, 128}, - dictWord{133, 11, 559}, - dictWord{ - 10, - 0, - 57, - }, - dictWord{10, 0, 277}, - dictWord{6, 11, 21}, - dictWord{6, 11, 1737}, - dictWord{7, 11, 1444}, - dictWord{136, 11, 224}, - dictWord{4, 10, 204}, - dictWord{ - 137, - 10, - 902, - }, - dictWord{136, 10, 833}, - dictWord{11, 0, 348}, - dictWord{12, 0, 99}, - dictWord{18, 0, 1}, - dictWord{18, 0, 11}, - dictWord{19, 0, 4}, - dictWord{7, 10, 366}, - dictWord{9, 10, 287}, - dictWord{12, 10, 199}, - dictWord{12, 10, 556}, - dictWord{140, 10, 577}, - dictWord{6, 0, 1981}, - dictWord{136, 0, 936}, - dictWord{ - 21, - 0, - 33, - }, - dictWord{150, 0, 40}, - dictWord{5, 11, 519}, - dictWord{138, 11, 204}, - dictWord{5, 10, 356}, - dictWord{135, 10, 224}, - dictWord{134, 0, 775}, - dictWord{ - 135, - 0, - 306, - }, - dictWord{7, 10, 630}, - dictWord{9, 10, 567}, - dictWord{11, 10, 150}, - dictWord{11, 10, 444}, - dictWord{141, 10, 119}, - dictWord{5, 0, 979}, - dictWord{ - 134, - 10, - 539, - }, - dictWord{133, 0, 611}, - dictWord{4, 11, 402}, - dictWord{135, 11, 1679}, - dictWord{5, 0, 178}, - dictWord{7, 11, 2}, - dictWord{8, 11, 323}, - dictWord{ - 136, - 11, - 479, - }, - dictWord{5, 11, 59}, - dictWord{135, 11, 672}, - dictWord{4, 0, 1010}, - dictWord{6, 0, 1969}, - dictWord{138, 11, 237}, - dictWord{133, 11, 412}, - dictWord{146, 11, 34}, - dictWord{7, 11, 1740}, - dictWord{146, 11, 48}, - dictWord{134, 0, 664}, - dictWord{139, 10, 814}, - dictWord{4, 11, 85}, - dictWord{ - 135, - 11, - 549, - }, - dictWord{133, 11, 94}, - dictWord{133, 11, 457}, - dictWord{132, 0, 390}, - dictWord{134, 0, 1510}, - dictWord{4, 10, 235}, - dictWord{135, 10, 255}, - dictWord{4, 10, 194}, - dictWord{5, 10, 584}, - dictWord{6, 11, 11}, - dictWord{6, 10, 384}, - dictWord{7, 11, 187}, - dictWord{7, 10, 583}, - dictWord{10, 10, 761}, - dictWord{ - 11, - 10, - 760, - }, - dictWord{139, 10, 851}, - dictWord{4, 11, 522}, - dictWord{139, 11, 802}, - dictWord{135, 0, 493}, - dictWord{10, 11, 776}, - dictWord{13, 11, 345}, - dictWord{142, 11, 425}, - dictWord{146, 0, 37}, - dictWord{4, 11, 52}, - dictWord{135, 11, 661}, - dictWord{134, 0, 724}, - dictWord{134, 0, 829}, - dictWord{ - 133, - 11, - 520, - }, - dictWord{133, 10, 562}, - dictWord{4, 11, 281}, - dictWord{5, 11, 38}, - dictWord{7, 11, 194}, - dictWord{7, 11, 668}, - dictWord{7, 11, 1893}, - dictWord{ - 137, - 11, - 397, - }, - dictWord{5, 10, 191}, - dictWord{137, 10, 271}, - dictWord{7, 0, 1537}, - dictWord{14, 0, 96}, - dictWord{143, 0, 73}, - dictWord{5, 0, 473}, - dictWord{ - 11, - 0, - 168, - }, - dictWord{4, 10, 470}, - dictWord{6, 10, 153}, - dictWord{7, 10, 1503}, - dictWord{7, 10, 1923}, - dictWord{10, 10, 701}, - dictWord{11, 10, 132}, - dictWord{ - 11, - 10, - 227, - }, - dictWord{11, 10, 320}, - dictWord{11, 10, 436}, - dictWord{11, 10, 525}, - dictWord{11, 10, 855}, - dictWord{12, 10, 41}, - dictWord{12, 10, 286}, - dictWord{13, 10, 103}, - dictWord{13, 10, 284}, - dictWord{14, 10, 255}, - dictWord{14, 10, 262}, - dictWord{15, 10, 117}, - dictWord{143, 10, 127}, - dictWord{ - 133, - 0, - 105, - }, - dictWord{5, 0, 438}, - dictWord{9, 0, 694}, - dictWord{12, 0, 627}, - dictWord{141, 0, 210}, - dictWord{133, 10, 327}, - dictWord{6, 10, 552}, - dictWord{ - 7, - 10, - 1754, - }, - dictWord{137, 10, 604}, - dictWord{134, 0, 1256}, - dictWord{152, 0, 11}, - dictWord{5, 11, 448}, - dictWord{11, 11, 98}, - dictWord{139, 11, 524}, - dictWord{ - 7, - 0, - 1626, - }, - dictWord{5, 10, 80}, - dictWord{6, 10, 405}, - dictWord{7, 10, 403}, - dictWord{7, 10, 1502}, - dictWord{8, 10, 456}, - dictWord{9, 10, 487}, - dictWord{ - 9, - 10, - 853, - }, - dictWord{9, 10, 889}, - dictWord{10, 10, 309}, - dictWord{11, 10, 721}, - dictWord{11, 10, 994}, - dictWord{12, 10, 430}, - dictWord{13, 10, 165}, - dictWord{ - 14, - 11, - 16, - }, - dictWord{146, 11, 44}, - dictWord{132, 0, 779}, - dictWord{8, 0, 25}, - dictWord{138, 0, 826}, - dictWord{4, 10, 453}, - dictWord{5, 10, 887}, - dictWord{ - 6, - 10, - 535, - }, - dictWord{8, 10, 6}, - dictWord{8, 10, 543}, - dictWord{136, 10, 826}, - dictWord{137, 11, 461}, - dictWord{140, 11, 632}, - dictWord{132, 0, 308}, - dictWord{135, 0, 741}, - dictWord{132, 0, 671}, - dictWord{7, 0, 150}, - dictWord{8, 0, 649}, - dictWord{136, 0, 1020}, - dictWord{9, 0, 99}, - dictWord{6, 11, 336}, - dictWord{ - 8, - 11, - 552, - }, - dictWord{9, 11, 285}, - dictWord{10, 11, 99}, - dictWord{139, 11, 568}, - dictWord{134, 0, 521}, - dictWord{5, 0, 339}, - dictWord{14, 0, 3}, - dictWord{ - 15, - 0, - 41, - }, - dictWord{15, 0, 166}, - dictWord{147, 0, 66}, - dictWord{6, 11, 423}, - dictWord{7, 11, 665}, - dictWord{7, 11, 1210}, - dictWord{9, 11, 218}, - dictWord{ - 141, - 11, - 222, - }, - dictWord{6, 0, 543}, - dictWord{5, 10, 101}, - dictWord{5, 11, 256}, - dictWord{6, 10, 88}, - dictWord{7, 10, 1677}, - dictWord{9, 10, 100}, - dictWord{10, 10, 677}, - dictWord{14, 10, 169}, - dictWord{14, 10, 302}, - dictWord{14, 10, 313}, - dictWord{15, 10, 48}, - dictWord{143, 10, 84}, - dictWord{4, 10, 310}, - dictWord{ - 7, - 10, - 708, - }, - dictWord{7, 10, 996}, - dictWord{9, 10, 795}, - dictWord{10, 10, 390}, - dictWord{10, 10, 733}, - dictWord{11, 10, 451}, - dictWord{12, 10, 249}, - dictWord{ - 14, - 10, - 115, - }, - dictWord{14, 10, 286}, - dictWord{143, 10, 100}, - dictWord{133, 10, 587}, - dictWord{13, 11, 417}, - dictWord{14, 11, 129}, - dictWord{143, 11, 15}, - dictWord{134, 0, 1358}, - dictWord{136, 11, 554}, - dictWord{132, 10, 498}, - dictWord{7, 10, 217}, - dictWord{8, 10, 140}, - dictWord{138, 10, 610}, - dictWord{ - 135, - 11, - 989, - }, - dictWord{135, 11, 634}, - dictWord{6, 0, 155}, - dictWord{140, 0, 234}, - dictWord{135, 11, 462}, - dictWord{132, 11, 618}, - dictWord{ - 134, - 0, - 1628, - }, - dictWord{132, 0, 766}, - dictWord{4, 11, 339}, - dictWord{5, 10, 905}, - dictWord{135, 11, 259}, - dictWord{135, 0, 829}, - dictWord{4, 11, 759}, - dictWord{ - 141, - 11, - 169, - }, - dictWord{7, 0, 1445}, - dictWord{4, 10, 456}, - dictWord{7, 10, 358}, - dictWord{7, 10, 1637}, - dictWord{8, 10, 643}, - dictWord{139, 10, 483}, - dictWord{ - 5, - 0, - 486, - }, - dictWord{135, 0, 1349}, - dictWord{5, 11, 688}, - dictWord{135, 11, 712}, - dictWord{7, 0, 1635}, - dictWord{8, 0, 17}, - dictWord{10, 0, 217}, - dictWord{ - 10, - 0, - 295, - }, - dictWord{12, 0, 2}, - dictWord{140, 11, 2}, - dictWord{138, 0, 558}, - dictWord{150, 10, 56}, - dictWord{4, 11, 278}, - dictWord{5, 11, 465}, - dictWord{ - 135, - 11, - 1367, - }, - dictWord{136, 11, 482}, - dictWord{133, 10, 535}, - dictWord{6, 0, 1362}, - dictWord{6, 0, 1461}, - dictWord{10, 11, 274}, - dictWord{10, 11, 625}, - dictWord{139, 11, 530}, - dictWord{5, 0, 599}, - dictWord{5, 11, 336}, - dictWord{6, 11, 341}, - dictWord{6, 11, 478}, - dictWord{6, 11, 1763}, - dictWord{136, 11, 386}, - dictWord{7, 10, 1748}, - dictWord{137, 11, 151}, - dictWord{134, 0, 1376}, - dictWord{133, 10, 539}, - dictWord{135, 11, 73}, - dictWord{135, 11, 1971}, - dictWord{139, 11, 283}, - dictWord{9, 0, 93}, - dictWord{139, 0, 474}, - dictWord{6, 10, 91}, - dictWord{135, 10, 435}, - dictWord{6, 0, 447}, - dictWord{5, 11, 396}, - dictWord{134, 11, 501}, - dictWord{4, 10, 16}, - dictWord{5, 10, 316}, - dictWord{5, 10, 842}, - dictWord{6, 10, 370}, - dictWord{6, 10, 1778}, - dictWord{8, 10, 166}, - dictWord{11, 10, 812}, - dictWord{12, 10, 206}, - dictWord{12, 10, 351}, - dictWord{14, 10, 418}, - dictWord{16, 10, 15}, - dictWord{16, 10, 34}, - dictWord{18, 10, 3}, - dictWord{19, 10, 3}, - dictWord{19, 10, 7}, - dictWord{20, 10, 4}, - dictWord{149, 10, 21}, - dictWord{7, 0, 577}, - dictWord{7, 0, 1432}, - dictWord{9, 0, 475}, - dictWord{9, 0, 505}, - dictWord{9, 0, 526}, - dictWord{9, 0, 609}, - dictWord{9, 0, 689}, - dictWord{9, 0, 726}, - dictWord{9, 0, 735}, - dictWord{9, 0, 738}, - dictWord{10, 0, 556}, - dictWord{ - 10, - 0, - 674, - }, - dictWord{10, 0, 684}, - dictWord{11, 0, 89}, - dictWord{11, 0, 202}, - dictWord{11, 0, 272}, - dictWord{11, 0, 380}, - dictWord{11, 0, 415}, - dictWord{11, 0, 505}, - dictWord{11, 0, 537}, - dictWord{11, 0, 550}, - dictWord{11, 0, 562}, - dictWord{11, 0, 640}, - dictWord{11, 0, 667}, - dictWord{11, 0, 688}, - dictWord{11, 0, 847}, - dictWord{11, 0, 927}, - dictWord{11, 0, 930}, - dictWord{11, 0, 940}, - dictWord{12, 0, 144}, - dictWord{12, 0, 325}, - dictWord{12, 0, 329}, - dictWord{12, 0, 389}, - dictWord{ - 12, - 0, - 403, - }, - dictWord{12, 0, 451}, - dictWord{12, 0, 515}, - dictWord{12, 0, 604}, - dictWord{12, 0, 616}, - dictWord{12, 0, 626}, - dictWord{13, 0, 66}, - dictWord{ - 13, - 0, - 131, - }, - dictWord{13, 0, 167}, - dictWord{13, 0, 236}, - dictWord{13, 0, 368}, - dictWord{13, 0, 411}, - dictWord{13, 0, 434}, - dictWord{13, 0, 453}, - dictWord{13, 0, 461}, - dictWord{13, 0, 474}, - dictWord{14, 0, 59}, - dictWord{14, 0, 60}, - dictWord{14, 0, 139}, - dictWord{14, 0, 152}, - dictWord{14, 0, 276}, - dictWord{14, 0, 353}, - dictWord{ - 14, - 0, - 402, - }, - dictWord{15, 0, 28}, - dictWord{15, 0, 81}, - dictWord{15, 0, 123}, - dictWord{15, 0, 152}, - dictWord{18, 0, 136}, - dictWord{148, 0, 88}, - dictWord{ - 4, - 11, - 929, - }, - dictWord{133, 11, 799}, - dictWord{136, 11, 46}, - dictWord{142, 0, 307}, - dictWord{4, 0, 609}, - dictWord{7, 0, 756}, - dictWord{9, 0, 544}, - dictWord{ - 11, - 0, - 413, - }, - dictWord{144, 0, 25}, - dictWord{10, 0, 687}, - dictWord{7, 10, 619}, - dictWord{10, 10, 547}, - dictWord{11, 10, 122}, - dictWord{140, 10, 601}, - dictWord{ - 4, - 0, - 930, - }, - dictWord{133, 0, 947}, - dictWord{133, 0, 939}, - dictWord{142, 0, 21}, - dictWord{4, 11, 892}, - dictWord{133, 11, 770}, - dictWord{133, 0, 962}, - dictWord{ - 5, - 0, - 651, - }, - dictWord{8, 0, 170}, - dictWord{9, 0, 61}, - dictWord{9, 0, 63}, - dictWord{10, 0, 23}, - dictWord{10, 0, 37}, - dictWord{10, 0, 834}, - dictWord{11, 0, 4}, - dictWord{ - 11, - 0, - 187, - }, - dictWord{11, 0, 281}, - dictWord{11, 0, 503}, - dictWord{11, 0, 677}, - dictWord{12, 0, 96}, - dictWord{12, 0, 130}, - dictWord{12, 0, 244}, - dictWord{14, 0, 5}, - dictWord{14, 0, 40}, - dictWord{14, 0, 162}, - dictWord{14, 0, 202}, - dictWord{146, 0, 133}, - dictWord{4, 0, 406}, - dictWord{5, 0, 579}, - dictWord{12, 0, 492}, - dictWord{ - 150, - 0, - 15, - }, - dictWord{135, 11, 158}, - dictWord{135, 0, 597}, - dictWord{132, 0, 981}, - dictWord{132, 10, 888}, - dictWord{4, 10, 149}, - dictWord{138, 10, 368}, - dictWord{132, 0, 545}, - dictWord{4, 10, 154}, - dictWord{7, 10, 1134}, - dictWord{136, 10, 105}, - dictWord{135, 11, 2001}, - dictWord{134, 0, 1558}, - dictWord{ - 4, - 10, - 31, - }, - dictWord{6, 10, 429}, - dictWord{7, 10, 962}, - dictWord{9, 10, 458}, - dictWord{139, 10, 691}, - dictWord{132, 10, 312}, - dictWord{135, 10, 1642}, - dictWord{ - 6, - 0, - 17, - }, - dictWord{6, 0, 1304}, - dictWord{7, 0, 16}, - dictWord{7, 0, 1001}, - dictWord{9, 0, 886}, - dictWord{10, 0, 489}, - dictWord{10, 0, 800}, - dictWord{11, 0, 782}, - dictWord{12, 0, 320}, - dictWord{13, 0, 467}, - dictWord{14, 0, 145}, - dictWord{14, 0, 387}, - dictWord{143, 0, 119}, - dictWord{135, 0, 1982}, - dictWord{17, 0, 17}, - dictWord{7, 11, 1461}, - dictWord{140, 11, 91}, - dictWord{4, 10, 236}, - dictWord{132, 11, 602}, - dictWord{138, 0, 907}, - dictWord{136, 0, 110}, - dictWord{7, 0, 272}, - dictWord{19, 0, 53}, - dictWord{5, 10, 836}, - dictWord{5, 10, 857}, - dictWord{134, 10, 1680}, - dictWord{5, 0, 458}, - dictWord{7, 11, 1218}, - dictWord{136, 11, 303}, - dictWord{7, 0, 1983}, - dictWord{8, 0, 0}, - dictWord{8, 0, 171}, - dictWord{9, 0, 120}, - dictWord{9, 0, 732}, - dictWord{10, 0, 473}, - dictWord{11, 0, 656}, - dictWord{ - 11, - 0, - 998, - }, - dictWord{18, 0, 0}, - dictWord{18, 0, 2}, - dictWord{19, 0, 21}, - dictWord{10, 10, 68}, - dictWord{139, 10, 494}, - dictWord{137, 11, 662}, - dictWord{4, 11, 13}, - dictWord{5, 11, 567}, - dictWord{7, 11, 1498}, - dictWord{9, 11, 124}, - dictWord{11, 11, 521}, - dictWord{140, 11, 405}, - dictWord{4, 10, 81}, - dictWord{139, 10, 867}, - dictWord{135, 11, 1006}, - dictWord{7, 11, 800}, - dictWord{7, 11, 1783}, - dictWord{138, 11, 12}, - dictWord{9, 0, 295}, - dictWord{10, 0, 443}, - dictWord{ - 5, - 10, - 282, - }, - dictWord{8, 10, 650}, - dictWord{137, 10, 907}, - dictWord{132, 11, 735}, - dictWord{4, 11, 170}, - dictWord{4, 10, 775}, - dictWord{135, 11, 323}, - dictWord{ - 6, - 0, - 1844, - }, - dictWord{10, 0, 924}, - dictWord{11, 11, 844}, - dictWord{12, 11, 104}, - dictWord{140, 11, 625}, - dictWord{5, 11, 304}, - dictWord{7, 11, 1403}, - dictWord{140, 11, 498}, - dictWord{134, 0, 1232}, - dictWord{4, 0, 519}, - dictWord{10, 0, 70}, - dictWord{12, 0, 26}, - dictWord{14, 0, 17}, - dictWord{14, 0, 178}, - dictWord{ - 15, - 0, - 34, - }, - dictWord{149, 0, 12}, - dictWord{132, 0, 993}, - dictWord{4, 11, 148}, - dictWord{133, 11, 742}, - dictWord{6, 0, 31}, - dictWord{7, 0, 491}, - dictWord{7, 0, 530}, - dictWord{8, 0, 592}, - dictWord{11, 0, 53}, - dictWord{11, 0, 779}, - dictWord{12, 0, 167}, - dictWord{12, 0, 411}, - dictWord{14, 0, 14}, - dictWord{14, 0, 136}, - dictWord{ - 15, - 0, - 72, - }, - dictWord{16, 0, 17}, - dictWord{144, 0, 72}, - dictWord{133, 0, 907}, - dictWord{134, 0, 733}, - dictWord{133, 11, 111}, - dictWord{4, 10, 71}, - dictWord{ - 5, - 10, - 376, - }, - dictWord{7, 10, 119}, - dictWord{138, 10, 665}, - dictWord{136, 0, 55}, - dictWord{8, 0, 430}, - dictWord{136, 11, 430}, - dictWord{4, 0, 208}, - dictWord{ - 5, - 0, - 106, - }, - dictWord{6, 0, 531}, - dictWord{8, 0, 408}, - dictWord{9, 0, 188}, - dictWord{138, 0, 572}, - dictWord{12, 0, 56}, - dictWord{11, 10, 827}, - dictWord{14, 10, 34}, - dictWord{143, 10, 148}, - dictWord{134, 0, 1693}, - dictWord{133, 11, 444}, - dictWord{132, 10, 479}, - dictWord{140, 0, 441}, - dictWord{9, 0, 449}, - dictWord{ - 10, - 0, - 192, - }, - dictWord{138, 0, 740}, - dictWord{134, 0, 928}, - dictWord{4, 0, 241}, - dictWord{7, 10, 607}, - dictWord{136, 10, 99}, - dictWord{8, 11, 123}, - dictWord{ - 15, - 11, - 6, - }, - dictWord{144, 11, 7}, - dictWord{6, 11, 285}, - dictWord{8, 11, 654}, - dictWord{11, 11, 749}, - dictWord{12, 11, 190}, - dictWord{12, 11, 327}, - dictWord{ - 13, - 11, - 120, - }, - dictWord{13, 11, 121}, - dictWord{13, 11, 327}, - dictWord{15, 11, 47}, - dictWord{146, 11, 40}, - dictWord{4, 10, 41}, - dictWord{5, 10, 74}, - dictWord{ - 7, - 10, - 1627, - }, - dictWord{11, 10, 871}, - dictWord{140, 10, 619}, - dictWord{7, 0, 1525}, - dictWord{11, 10, 329}, - dictWord{11, 10, 965}, - dictWord{12, 10, 241}, - dictWord{14, 10, 354}, - dictWord{15, 10, 22}, - dictWord{148, 10, 63}, - dictWord{132, 0, 259}, - dictWord{135, 11, 183}, - dictWord{9, 10, 209}, - dictWord{ - 137, - 10, - 300, - }, - dictWord{5, 11, 937}, - dictWord{135, 11, 100}, - dictWord{133, 10, 98}, - dictWord{4, 0, 173}, - dictWord{5, 0, 312}, - dictWord{5, 0, 512}, - dictWord{ - 135, - 0, - 1285, - }, - dictWord{141, 0, 185}, - dictWord{7, 0, 1603}, - dictWord{7, 0, 1691}, - dictWord{9, 0, 464}, - dictWord{11, 0, 195}, - dictWord{12, 0, 279}, - dictWord{ - 12, - 0, - 448, - }, - dictWord{14, 0, 11}, - dictWord{147, 0, 102}, - dictWord{135, 0, 1113}, - dictWord{133, 10, 984}, - dictWord{4, 0, 452}, - dictWord{5, 0, 583}, - dictWord{ - 135, - 0, - 720, - }, - dictWord{4, 0, 547}, - dictWord{5, 0, 817}, - dictWord{6, 0, 433}, - dictWord{7, 0, 593}, - dictWord{7, 0, 1378}, - dictWord{8, 0, 161}, - dictWord{9, 0, 284}, - dictWord{ - 10, - 0, - 313, - }, - dictWord{139, 0, 886}, - dictWord{8, 0, 722}, - dictWord{4, 10, 182}, - dictWord{6, 10, 205}, - dictWord{135, 10, 220}, - dictWord{150, 0, 13}, - dictWord{ - 4, - 10, - 42, - }, - dictWord{9, 10, 205}, - dictWord{9, 10, 786}, - dictWord{138, 10, 659}, - dictWord{6, 0, 289}, - dictWord{7, 0, 1670}, - dictWord{12, 0, 57}, - dictWord{151, 0, 4}, - dictWord{132, 10, 635}, - dictWord{14, 0, 43}, - dictWord{146, 0, 21}, - dictWord{139, 10, 533}, - dictWord{135, 0, 1694}, - dictWord{8, 0, 420}, - dictWord{ - 139, - 0, - 193, - }, - dictWord{135, 0, 409}, - dictWord{132, 10, 371}, - dictWord{4, 10, 272}, - dictWord{135, 10, 836}, - dictWord{5, 10, 825}, - dictWord{134, 10, 1640}, - dictWord{5, 11, 251}, - dictWord{5, 11, 956}, - dictWord{8, 11, 268}, - dictWord{9, 11, 214}, - dictWord{146, 11, 142}, - dictWord{138, 0, 308}, - dictWord{6, 0, 1863}, - dictWord{141, 11, 37}, - dictWord{137, 10, 879}, - dictWord{7, 10, 317}, - dictWord{135, 10, 569}, - dictWord{132, 11, 294}, - dictWord{134, 0, 790}, - dictWord{ - 5, - 0, - 1002, - }, - dictWord{136, 0, 745}, - dictWord{5, 11, 346}, - dictWord{5, 11, 711}, - dictWord{136, 11, 390}, - dictWord{135, 0, 289}, - dictWord{5, 0, 504}, - dictWord{ - 11, - 0, - 68, - }, - dictWord{137, 10, 307}, - dictWord{4, 0, 239}, - dictWord{6, 0, 477}, - dictWord{7, 0, 1607}, - dictWord{139, 0, 617}, - dictWord{149, 0, 13}, - dictWord{ - 133, - 0, - 609, - }, - dictWord{133, 11, 624}, - dictWord{5, 11, 783}, - dictWord{7, 11, 1998}, - dictWord{135, 11, 2047}, - dictWord{133, 10, 525}, - dictWord{132, 0, 367}, - dictWord{132, 11, 594}, - dictWord{6, 0, 528}, - dictWord{133, 10, 493}, - dictWord{4, 10, 174}, - dictWord{135, 10, 911}, - dictWord{8, 10, 417}, - dictWord{ - 137, - 10, - 782, - }, - dictWord{132, 0, 694}, - dictWord{7, 0, 548}, - dictWord{137, 0, 58}, - dictWord{4, 10, 32}, - dictWord{5, 10, 215}, - dictWord{6, 10, 269}, - dictWord{7, 10, 1782}, - dictWord{7, 10, 1892}, - dictWord{10, 10, 16}, - dictWord{11, 10, 822}, - dictWord{11, 10, 954}, - dictWord{141, 10, 481}, - dictWord{140, 0, 687}, - dictWord{ - 7, - 0, - 1749, - }, - dictWord{136, 10, 477}, - dictWord{132, 11, 569}, - dictWord{133, 10, 308}, - dictWord{135, 10, 1088}, - dictWord{4, 0, 661}, - dictWord{138, 0, 1004}, - dictWord{5, 11, 37}, - dictWord{6, 11, 39}, - dictWord{6, 11, 451}, - dictWord{7, 11, 218}, - dictWord{7, 11, 667}, - dictWord{7, 11, 1166}, - dictWord{7, 11, 1687}, - dictWord{8, 11, 662}, - dictWord{144, 11, 2}, - dictWord{9, 0, 445}, - dictWord{12, 0, 53}, - dictWord{13, 0, 492}, - dictWord{5, 10, 126}, - dictWord{8, 10, 297}, - dictWord{ - 9, - 10, - 366, - }, - dictWord{140, 10, 374}, - dictWord{7, 10, 1551}, - dictWord{139, 10, 361}, - dictWord{148, 0, 74}, - dictWord{134, 11, 508}, - dictWord{135, 0, 213}, - dictWord{132, 10, 175}, - dictWord{132, 10, 685}, - dictWord{6, 0, 760}, - dictWord{6, 0, 834}, - dictWord{134, 0, 1248}, - dictWord{7, 11, 453}, - dictWord{7, 11, 635}, - dictWord{7, 11, 796}, - dictWord{8, 11, 331}, - dictWord{9, 11, 328}, - dictWord{9, 11, 330}, - dictWord{9, 11, 865}, - dictWord{10, 11, 119}, - dictWord{10, 11, 235}, - dictWord{11, 11, 111}, - dictWord{11, 11, 129}, - dictWord{11, 11, 240}, - dictWord{12, 11, 31}, - dictWord{12, 11, 66}, - dictWord{12, 11, 222}, - dictWord{12, 11, 269}, - dictWord{12, 11, 599}, - dictWord{12, 11, 689}, - dictWord{13, 11, 186}, - dictWord{13, 11, 364}, - dictWord{142, 11, 345}, - dictWord{7, 0, 1672}, - dictWord{ - 139, - 0, - 189, - }, - dictWord{133, 10, 797}, - dictWord{133, 10, 565}, - dictWord{6, 0, 1548}, - dictWord{6, 11, 98}, - dictWord{7, 11, 585}, - dictWord{135, 11, 702}, - dictWord{ - 9, - 0, - 968, - }, - dictWord{15, 0, 192}, - dictWord{149, 0, 56}, - dictWord{4, 10, 252}, - dictWord{6, 11, 37}, - dictWord{7, 11, 299}, - dictWord{7, 10, 1068}, - dictWord{ - 7, - 11, - 1666, - }, - dictWord{8, 11, 195}, - dictWord{8, 11, 316}, - dictWord{9, 11, 178}, - dictWord{9, 11, 276}, - dictWord{9, 11, 339}, - dictWord{9, 11, 536}, - dictWord{ - 10, - 11, - 102, - }, - dictWord{10, 11, 362}, - dictWord{10, 10, 434}, - dictWord{10, 11, 785}, - dictWord{11, 11, 55}, - dictWord{11, 11, 149}, - dictWord{11, 10, 228}, - dictWord{ - 11, - 10, - 426, - }, - dictWord{11, 11, 773}, - dictWord{13, 10, 231}, - dictWord{13, 11, 416}, - dictWord{13, 11, 419}, - dictWord{14, 11, 38}, - dictWord{14, 11, 41}, - dictWord{14, 11, 210}, - dictWord{18, 10, 106}, - dictWord{148, 10, 87}, - dictWord{4, 0, 751}, - dictWord{11, 0, 390}, - dictWord{140, 0, 32}, - dictWord{4, 0, 409}, - dictWord{133, 0, 78}, - dictWord{11, 11, 458}, - dictWord{12, 11, 15}, - dictWord{140, 11, 432}, - dictWord{7, 0, 1602}, - dictWord{10, 0, 257}, - dictWord{10, 0, 698}, - dictWord{11, 0, 544}, - dictWord{11, 0, 585}, - dictWord{12, 0, 212}, - dictWord{13, 0, 307}, - dictWord{5, 10, 231}, - dictWord{7, 10, 601}, - dictWord{9, 10, 277}, - dictWord{ - 9, - 10, - 674, - }, - dictWord{10, 10, 178}, - dictWord{10, 10, 418}, - dictWord{10, 10, 509}, - dictWord{11, 10, 531}, - dictWord{12, 10, 113}, - dictWord{12, 10, 475}, - dictWord{13, 10, 99}, - dictWord{142, 10, 428}, - dictWord{6, 0, 473}, - dictWord{145, 0, 105}, - dictWord{6, 0, 1949}, - dictWord{15, 0, 156}, - dictWord{133, 11, 645}, - dictWord{7, 10, 1591}, - dictWord{144, 10, 43}, - dictWord{135, 0, 1779}, - dictWord{135, 10, 1683}, - dictWord{4, 11, 290}, - dictWord{135, 11, 1356}, - dictWord{134, 0, 763}, - dictWord{6, 11, 70}, - dictWord{7, 11, 1292}, - dictWord{10, 11, 762}, - dictWord{139, 11, 288}, - dictWord{142, 0, 29}, - dictWord{140, 11, 428}, - dictWord{7, 0, 883}, - dictWord{7, 11, 131}, - dictWord{7, 11, 422}, - dictWord{8, 11, 210}, - dictWord{140, 11, 573}, - dictWord{134, 0, 488}, - dictWord{4, 10, 399}, - dictWord{5, 10, 119}, - dictWord{5, 10, 494}, - dictWord{7, 10, 751}, - dictWord{137, 10, 556}, - dictWord{133, 0, 617}, - dictWord{132, 11, 936}, - dictWord{ - 139, - 0, - 50, - }, - dictWord{7, 0, 1518}, - dictWord{139, 0, 694}, - dictWord{137, 0, 785}, - dictWord{4, 0, 546}, - dictWord{135, 0, 2042}, - dictWord{7, 11, 716}, - dictWord{ - 13, - 11, - 97, - }, - dictWord{141, 11, 251}, - dictWord{132, 11, 653}, - dictWord{145, 0, 22}, - dictWord{134, 0, 1016}, - dictWord{4, 0, 313}, - dictWord{133, 0, 577}, - dictWord{ - 136, - 11, - 657, - }, - dictWord{8, 0, 184}, - dictWord{141, 0, 433}, - dictWord{135, 0, 935}, - dictWord{6, 0, 720}, - dictWord{9, 0, 114}, - dictWord{146, 11, 80}, - dictWord{ - 12, - 0, - 186, - }, - dictWord{12, 0, 292}, - dictWord{14, 0, 100}, - dictWord{18, 0, 70}, - dictWord{7, 10, 594}, - dictWord{7, 10, 851}, - dictWord{7, 10, 1858}, - dictWord{ - 9, - 10, - 411, - }, - dictWord{9, 10, 574}, - dictWord{9, 10, 666}, - dictWord{9, 10, 737}, - dictWord{10, 10, 346}, - dictWord{10, 10, 712}, - dictWord{11, 10, 246}, - dictWord{ - 11, - 10, - 432, - }, - dictWord{11, 10, 517}, - dictWord{11, 10, 647}, - dictWord{11, 10, 679}, - dictWord{11, 10, 727}, - dictWord{12, 10, 304}, - dictWord{12, 10, 305}, - dictWord{12, 10, 323}, - dictWord{12, 10, 483}, - dictWord{12, 10, 572}, - dictWord{12, 10, 593}, - dictWord{12, 10, 602}, - dictWord{13, 10, 95}, - dictWord{13, 10, 101}, - dictWord{13, 10, 171}, - dictWord{13, 10, 315}, - dictWord{13, 10, 378}, - dictWord{13, 10, 425}, - dictWord{13, 10, 475}, - dictWord{14, 10, 63}, - dictWord{ - 14, - 10, - 380, - }, - dictWord{14, 10, 384}, - dictWord{15, 10, 133}, - dictWord{18, 10, 112}, - dictWord{148, 10, 72}, - dictWord{135, 10, 1093}, - dictWord{135, 11, 1836}, - dictWord{132, 10, 679}, - dictWord{137, 10, 203}, - dictWord{11, 0, 402}, - dictWord{12, 0, 109}, - dictWord{12, 0, 431}, - dictWord{13, 0, 179}, - dictWord{13, 0, 206}, - dictWord{14, 0, 217}, - dictWord{16, 0, 3}, - dictWord{148, 0, 53}, - dictWord{7, 11, 1368}, - dictWord{8, 11, 232}, - dictWord{8, 11, 361}, - dictWord{10, 11, 682}, - dictWord{138, 11, 742}, - dictWord{137, 10, 714}, - dictWord{5, 0, 886}, - dictWord{6, 0, 46}, - dictWord{6, 0, 1790}, - dictWord{7, 0, 14}, - dictWord{7, 0, 732}, - dictWord{ - 7, - 0, - 1654, - }, - dictWord{8, 0, 95}, - dictWord{8, 0, 327}, - dictWord{8, 0, 616}, - dictWord{9, 0, 892}, - dictWord{10, 0, 598}, - dictWord{10, 0, 769}, - dictWord{11, 0, 134}, - dictWord{11, 0, 747}, - dictWord{12, 0, 378}, - dictWord{14, 0, 97}, - dictWord{137, 11, 534}, - dictWord{4, 0, 969}, - dictWord{136, 10, 825}, - dictWord{137, 11, 27}, - dictWord{6, 0, 727}, - dictWord{142, 11, 12}, - dictWord{133, 0, 1021}, - dictWord{134, 0, 1190}, - dictWord{134, 11, 1657}, - dictWord{5, 10, 143}, - dictWord{ - 5, - 10, - 769, - }, - dictWord{6, 10, 1760}, - dictWord{7, 10, 682}, - dictWord{7, 10, 1992}, - dictWord{136, 10, 736}, - dictWord{132, 0, 153}, - dictWord{135, 11, 127}, - dictWord{133, 0, 798}, - dictWord{132, 0, 587}, - dictWord{6, 0, 598}, - dictWord{7, 0, 42}, - dictWord{8, 0, 695}, - dictWord{10, 0, 212}, - dictWord{11, 0, 158}, - dictWord{ - 14, - 0, - 196, - }, - dictWord{145, 0, 85}, - dictWord{133, 10, 860}, - dictWord{6, 0, 1929}, - dictWord{134, 0, 1933}, - dictWord{5, 0, 957}, - dictWord{5, 0, 1008}, - dictWord{ - 9, - 0, - 577, - }, - dictWord{12, 0, 141}, - dictWord{6, 10, 422}, - dictWord{7, 10, 0}, - dictWord{7, 10, 1544}, - dictWord{8, 11, 364}, - dictWord{11, 10, 990}, - dictWord{ - 12, - 10, - 453, - }, - dictWord{13, 10, 47}, - dictWord{141, 10, 266}, - dictWord{134, 0, 1319}, - dictWord{4, 0, 129}, - dictWord{135, 0, 465}, - dictWord{7, 0, 470}, - dictWord{ - 7, - 0, - 1057, - }, - dictWord{7, 0, 1201}, - dictWord{9, 0, 755}, - dictWord{11, 0, 906}, - dictWord{140, 0, 527}, - dictWord{7, 0, 908}, - dictWord{146, 0, 7}, - dictWord{5, 0, 148}, - dictWord{136, 0, 450}, - dictWord{5, 10, 515}, - dictWord{137, 10, 131}, - dictWord{7, 10, 1605}, - dictWord{11, 10, 962}, - dictWord{146, 10, 139}, - dictWord{ - 132, - 10, - 646, - }, - dictWord{134, 0, 1166}, - dictWord{4, 10, 396}, - dictWord{7, 10, 728}, - dictWord{9, 10, 117}, - dictWord{13, 10, 202}, - dictWord{148, 10, 51}, - dictWord{ - 6, - 10, - 121, - }, - dictWord{6, 10, 124}, - dictWord{6, 10, 357}, - dictWord{7, 10, 1138}, - dictWord{7, 10, 1295}, - dictWord{8, 10, 162}, - dictWord{139, 10, 655}, - dictWord{14, 0, 374}, - dictWord{142, 11, 374}, - dictWord{138, 0, 253}, - dictWord{139, 0, 1003}, - dictWord{5, 11, 909}, - dictWord{9, 11, 849}, - dictWord{ - 138, - 11, - 805, - }, - dictWord{133, 10, 237}, - dictWord{7, 11, 525}, - dictWord{7, 11, 1579}, - dictWord{8, 11, 497}, - dictWord{136, 11, 573}, - dictWord{137, 0, 46}, - dictWord{ - 132, - 0, - 879, - }, - dictWord{134, 0, 806}, - dictWord{135, 0, 1868}, - dictWord{6, 0, 1837}, - dictWord{134, 0, 1846}, - dictWord{6, 0, 730}, - dictWord{134, 0, 881}, - dictWord{7, 0, 965}, - dictWord{7, 0, 1460}, - dictWord{7, 0, 1604}, - dictWord{7, 11, 193}, - dictWord{7, 11, 397}, - dictWord{7, 11, 1105}, - dictWord{8, 11, 124}, - dictWord{ - 8, - 11, - 619, - }, - dictWord{9, 11, 305}, - dictWord{10, 11, 264}, - dictWord{11, 11, 40}, - dictWord{12, 11, 349}, - dictWord{13, 11, 134}, - dictWord{13, 11, 295}, - dictWord{14, 11, 155}, - dictWord{15, 11, 120}, - dictWord{146, 11, 105}, - dictWord{136, 0, 506}, - dictWord{143, 0, 10}, - dictWord{4, 11, 262}, - dictWord{7, 11, 342}, - dictWord{7, 10, 571}, - dictWord{7, 10, 1877}, - dictWord{10, 10, 366}, - dictWord{141, 11, 23}, - dictWord{133, 11, 641}, - dictWord{10, 0, 22}, - dictWord{9, 10, 513}, - dictWord{10, 10, 39}, - dictWord{12, 10, 122}, - dictWord{140, 10, 187}, - dictWord{135, 11, 1431}, - dictWord{150, 11, 49}, - dictWord{4, 11, 99}, - dictWord{ - 6, - 11, - 250, - }, - dictWord{6, 11, 346}, - dictWord{8, 11, 127}, - dictWord{138, 11, 81}, - dictWord{6, 0, 2014}, - dictWord{8, 0, 928}, - dictWord{10, 0, 960}, - dictWord{10, 0, 979}, - dictWord{140, 0, 996}, - dictWord{134, 0, 296}, - dictWord{132, 11, 915}, - dictWord{5, 11, 75}, - dictWord{9, 11, 517}, - dictWord{10, 11, 470}, - dictWord{ - 12, - 11, - 155, - }, - dictWord{141, 11, 224}, - dictWord{137, 10, 873}, - dictWord{4, 0, 854}, - dictWord{140, 11, 18}, - dictWord{134, 0, 587}, - dictWord{7, 10, 107}, - dictWord{ - 7, - 10, - 838, - }, - dictWord{8, 10, 550}, - dictWord{138, 10, 401}, - dictWord{11, 0, 636}, - dictWord{15, 0, 145}, - dictWord{17, 0, 34}, - dictWord{19, 0, 50}, - dictWord{ - 23, - 0, - 20, - }, - dictWord{11, 10, 588}, - dictWord{11, 10, 864}, - dictWord{11, 10, 968}, - dictWord{143, 10, 160}, - dictWord{135, 11, 216}, - dictWord{7, 0, 982}, - dictWord{ - 10, - 0, - 32, - }, - dictWord{143, 0, 56}, - dictWord{133, 10, 768}, - dictWord{133, 11, 954}, - dictWord{6, 11, 304}, - dictWord{7, 11, 1114}, - dictWord{8, 11, 418}, - dictWord{ - 10, - 11, - 345, - }, - dictWord{11, 11, 341}, - dictWord{11, 11, 675}, - dictWord{141, 11, 40}, - dictWord{9, 11, 410}, - dictWord{139, 11, 425}, - dictWord{136, 0, 941}, - dictWord{5, 0, 435}, - dictWord{132, 10, 894}, - dictWord{5, 0, 85}, - dictWord{6, 0, 419}, - dictWord{7, 0, 134}, - dictWord{7, 0, 305}, - dictWord{7, 0, 361}, - dictWord{ - 7, - 0, - 1337, - }, - dictWord{8, 0, 71}, - dictWord{140, 0, 519}, - dictWord{140, 0, 688}, - dictWord{135, 0, 740}, - dictWord{5, 0, 691}, - dictWord{7, 0, 345}, - dictWord{9, 0, 94}, - dictWord{140, 0, 169}, - dictWord{5, 0, 183}, - dictWord{6, 0, 582}, - dictWord{10, 0, 679}, - dictWord{140, 0, 435}, - dictWord{134, 11, 14}, - dictWord{6, 0, 945}, - dictWord{135, 0, 511}, - dictWord{134, 11, 1708}, - dictWord{5, 11, 113}, - dictWord{6, 11, 243}, - dictWord{7, 11, 1865}, - dictWord{11, 11, 161}, - dictWord{16, 11, 37}, - dictWord{145, 11, 99}, - dictWord{132, 11, 274}, - dictWord{137, 0, 539}, - dictWord{7, 0, 1993}, - dictWord{8, 0, 684}, - dictWord{134, 10, 272}, - dictWord{ - 6, - 0, - 659, - }, - dictWord{134, 0, 982}, - dictWord{4, 10, 9}, - dictWord{5, 10, 128}, - dictWord{7, 10, 368}, - dictWord{11, 10, 480}, - dictWord{148, 10, 3}, - dictWord{ - 134, - 0, - 583, - }, - dictWord{132, 0, 803}, - dictWord{133, 0, 704}, - dictWord{4, 0, 179}, - dictWord{5, 0, 198}, - dictWord{133, 0, 697}, - dictWord{7, 0, 347}, - dictWord{7, 0, 971}, - dictWord{8, 0, 181}, - dictWord{10, 0, 711}, - dictWord{135, 11, 166}, - dictWord{136, 10, 682}, - dictWord{4, 10, 2}, - dictWord{7, 10, 545}, - dictWord{7, 10, 894}, - dictWord{136, 11, 521}, - dictWord{135, 0, 481}, - dictWord{132, 0, 243}, - dictWord{5, 0, 203}, - dictWord{7, 0, 19}, - dictWord{7, 0, 71}, - dictWord{7, 0, 113}, - dictWord{ - 10, - 0, - 405, - }, - dictWord{11, 0, 357}, - dictWord{142, 0, 240}, - dictWord{5, 11, 725}, - dictWord{5, 11, 727}, - dictWord{135, 11, 1811}, - dictWord{6, 0, 826}, - dictWord{ - 137, - 11, - 304, - }, - dictWord{7, 0, 1450}, - dictWord{139, 0, 99}, - dictWord{133, 11, 654}, - dictWord{134, 0, 492}, - dictWord{5, 0, 134}, - dictWord{6, 0, 408}, - dictWord{ - 6, - 0, - 495, - }, - dictWord{7, 0, 1593}, - dictWord{6, 11, 273}, - dictWord{10, 11, 188}, - dictWord{13, 11, 377}, - dictWord{146, 11, 77}, - dictWord{9, 10, 769}, - dictWord{ - 140, - 10, - 185, - }, - dictWord{135, 11, 410}, - dictWord{142, 0, 4}, - dictWord{4, 0, 665}, - dictWord{134, 11, 1785}, - dictWord{4, 0, 248}, - dictWord{7, 0, 137}, - dictWord{ - 137, - 0, - 349, - }, - dictWord{5, 10, 530}, - dictWord{142, 10, 113}, - dictWord{7, 0, 1270}, - dictWord{139, 0, 612}, - dictWord{132, 11, 780}, - dictWord{5, 0, 371}, - dictWord{135, 0, 563}, - dictWord{135, 0, 826}, - dictWord{6, 0, 1535}, - dictWord{23, 0, 21}, - dictWord{151, 0, 23}, - dictWord{4, 0, 374}, - dictWord{7, 0, 547}, - dictWord{ - 7, - 0, - 1700, - }, - dictWord{7, 0, 1833}, - dictWord{139, 0, 858}, - dictWord{133, 10, 556}, - dictWord{7, 11, 612}, - dictWord{8, 11, 545}, - dictWord{8, 11, 568}, - dictWord{ - 8, - 11, - 642, - }, - dictWord{9, 11, 717}, - dictWord{10, 11, 541}, - dictWord{10, 11, 763}, - dictWord{11, 11, 449}, - dictWord{12, 11, 489}, - dictWord{13, 11, 153}, - dictWord{ - 13, - 11, - 296, - }, - dictWord{14, 11, 138}, - dictWord{14, 11, 392}, - dictWord{15, 11, 50}, - dictWord{16, 11, 6}, - dictWord{16, 11, 12}, - dictWord{148, 11, 9}, - dictWord{ - 9, - 0, - 311, - }, - dictWord{141, 0, 42}, - dictWord{8, 10, 16}, - dictWord{140, 10, 568}, - dictWord{6, 0, 1968}, - dictWord{6, 0, 2027}, - dictWord{138, 0, 991}, - dictWord{ - 6, - 0, - 1647, - }, - dictWord{7, 0, 1552}, - dictWord{7, 0, 2010}, - dictWord{9, 0, 494}, - dictWord{137, 0, 509}, - dictWord{133, 11, 948}, - dictWord{6, 10, 186}, - dictWord{ - 137, - 10, - 426, - }, - dictWord{134, 0, 769}, - dictWord{134, 0, 642}, - dictWord{132, 10, 585}, - dictWord{6, 0, 123}, - dictWord{7, 0, 214}, - dictWord{9, 0, 728}, - dictWord{ - 10, - 0, - 157, - }, - dictWord{11, 0, 346}, - dictWord{11, 0, 662}, - dictWord{143, 0, 106}, - dictWord{142, 11, 381}, - dictWord{135, 0, 1435}, - dictWord{4, 11, 532}, - dictWord{ - 5, - 11, - 706, - }, - dictWord{135, 11, 662}, - dictWord{5, 11, 837}, - dictWord{134, 11, 1651}, - dictWord{4, 10, 93}, - dictWord{5, 10, 252}, - dictWord{6, 10, 229}, - dictWord{ - 7, - 10, - 291, - }, - dictWord{9, 10, 550}, - dictWord{139, 10, 644}, - dictWord{148, 0, 79}, - dictWord{137, 10, 749}, - dictWord{134, 0, 1425}, - dictWord{ - 137, - 10, - 162, - }, - dictWord{4, 11, 362}, - dictWord{7, 11, 52}, - dictWord{7, 11, 303}, - dictWord{140, 11, 166}, - dictWord{132, 10, 381}, - dictWord{4, 11, 330}, - dictWord{ - 7, - 11, - 933, - }, - dictWord{7, 11, 2012}, - dictWord{136, 11, 292}, - dictWord{135, 11, 767}, - dictWord{4, 0, 707}, - dictWord{5, 0, 588}, - dictWord{6, 0, 393}, - dictWord{ - 13, - 0, - 106, - }, - dictWord{18, 0, 49}, - dictWord{147, 0, 41}, - dictWord{6, 0, 211}, - dictWord{7, 0, 1690}, - dictWord{11, 0, 486}, - dictWord{140, 0, 369}, - dictWord{ - 137, - 11, - 883, - }, - dictWord{4, 11, 703}, - dictWord{135, 11, 207}, - dictWord{4, 0, 187}, - dictWord{5, 0, 184}, - dictWord{5, 0, 690}, - dictWord{7, 0, 1869}, - dictWord{10, 0, 756}, - dictWord{139, 0, 783}, - dictWord{132, 11, 571}, - dictWord{134, 0, 1382}, - dictWord{5, 0, 175}, - dictWord{6, 10, 77}, - dictWord{6, 10, 157}, - dictWord{7, 10, 974}, - dictWord{7, 10, 1301}, - dictWord{7, 10, 1339}, - dictWord{7, 10, 1490}, - dictWord{7, 10, 1873}, - dictWord{137, 10, 628}, - dictWord{134, 0, 1493}, - dictWord{ - 5, - 11, - 873, - }, - dictWord{133, 11, 960}, - dictWord{134, 0, 1007}, - dictWord{12, 11, 93}, - dictWord{12, 11, 501}, - dictWord{13, 11, 362}, - dictWord{14, 11, 151}, - dictWord{15, 11, 40}, - dictWord{15, 11, 59}, - dictWord{16, 11, 46}, - dictWord{17, 11, 25}, - dictWord{18, 11, 14}, - dictWord{18, 11, 134}, - dictWord{19, 11, 25}, - dictWord{ - 19, - 11, - 69, - }, - dictWord{20, 11, 16}, - dictWord{20, 11, 19}, - dictWord{20, 11, 66}, - dictWord{21, 11, 23}, - dictWord{21, 11, 25}, - dictWord{150, 11, 42}, - dictWord{ - 11, - 10, - 919, - }, - dictWord{141, 10, 409}, - dictWord{134, 0, 219}, - dictWord{5, 0, 582}, - dictWord{6, 0, 1646}, - dictWord{7, 0, 99}, - dictWord{7, 0, 1962}, - dictWord{ - 7, - 0, - 1986, - }, - dictWord{8, 0, 515}, - dictWord{8, 0, 773}, - dictWord{9, 0, 23}, - dictWord{9, 0, 491}, - dictWord{12, 0, 620}, - dictWord{142, 0, 93}, - dictWord{133, 0, 851}, - dictWord{5, 11, 33}, - dictWord{134, 11, 470}, - dictWord{135, 11, 1291}, - dictWord{134, 0, 1278}, - dictWord{135, 11, 1882}, - dictWord{135, 10, 1489}, - dictWord{132, 0, 1000}, - dictWord{138, 0, 982}, - dictWord{8, 0, 762}, - dictWord{8, 0, 812}, - dictWord{137, 0, 910}, - dictWord{6, 11, 47}, - dictWord{7, 11, 90}, - dictWord{ - 7, - 11, - 664, - }, - dictWord{7, 11, 830}, - dictWord{7, 11, 1380}, - dictWord{7, 11, 2025}, - dictWord{8, 11, 448}, - dictWord{136, 11, 828}, - dictWord{4, 0, 98}, - dictWord{ - 4, - 0, - 940, - }, - dictWord{6, 0, 1819}, - dictWord{6, 0, 1834}, - dictWord{6, 0, 1841}, - dictWord{7, 0, 1365}, - dictWord{8, 0, 859}, - dictWord{8, 0, 897}, - dictWord{8, 0, 918}, - dictWord{9, 0, 422}, - dictWord{9, 0, 670}, - dictWord{10, 0, 775}, - dictWord{10, 0, 894}, - dictWord{10, 0, 909}, - dictWord{10, 0, 910}, - dictWord{10, 0, 935}, - dictWord{ - 11, - 0, - 210, - }, - dictWord{12, 0, 750}, - dictWord{12, 0, 755}, - dictWord{13, 0, 26}, - dictWord{13, 0, 457}, - dictWord{13, 0, 476}, - dictWord{16, 0, 100}, - dictWord{16, 0, 109}, - dictWord{18, 0, 173}, - dictWord{18, 0, 175}, - dictWord{8, 10, 398}, - dictWord{9, 10, 681}, - dictWord{139, 10, 632}, - dictWord{9, 11, 417}, - dictWord{ - 137, - 11, - 493, - }, - dictWord{136, 10, 645}, - dictWord{138, 0, 906}, - dictWord{134, 0, 1730}, - dictWord{134, 10, 20}, - dictWord{133, 11, 1019}, - dictWord{134, 0, 1185}, - dictWord{10, 0, 40}, - dictWord{136, 10, 769}, - dictWord{9, 0, 147}, - dictWord{134, 11, 208}, - dictWord{140, 0, 650}, - dictWord{5, 0, 209}, - dictWord{6, 0, 30}, - dictWord{11, 0, 56}, - dictWord{139, 0, 305}, - dictWord{132, 0, 553}, - dictWord{138, 11, 344}, - dictWord{6, 11, 68}, - dictWord{7, 11, 398}, - dictWord{7, 11, 448}, - dictWord{ - 7, - 11, - 1629, - }, - dictWord{7, 11, 1813}, - dictWord{8, 11, 387}, - dictWord{8, 11, 442}, - dictWord{9, 11, 710}, - dictWord{10, 11, 282}, - dictWord{138, 11, 722}, - dictWord{5, 0, 597}, - dictWord{14, 0, 20}, - dictWord{142, 11, 20}, - dictWord{135, 0, 1614}, - dictWord{135, 10, 1757}, - dictWord{4, 0, 150}, - dictWord{5, 0, 303}, - dictWord{6, 0, 327}, - dictWord{135, 10, 937}, - dictWord{16, 0, 49}, - dictWord{7, 10, 1652}, - dictWord{144, 11, 49}, - dictWord{8, 0, 192}, - dictWord{10, 0, 78}, - dictWord{ - 141, - 0, - 359, - }, - dictWord{135, 0, 786}, - dictWord{143, 0, 134}, - dictWord{6, 0, 1638}, - dictWord{7, 0, 79}, - dictWord{7, 0, 496}, - dictWord{9, 0, 138}, - dictWord{ - 10, - 0, - 336, - }, - dictWord{11, 0, 12}, - dictWord{12, 0, 412}, - dictWord{12, 0, 440}, - dictWord{142, 0, 305}, - dictWord{136, 11, 491}, - dictWord{4, 10, 579}, - dictWord{ - 5, - 10, - 226, - }, - dictWord{5, 10, 323}, - dictWord{135, 10, 960}, - dictWord{7, 0, 204}, - dictWord{7, 0, 415}, - dictWord{8, 0, 42}, - dictWord{10, 0, 85}, - dictWord{139, 0, 564}, - dictWord{132, 0, 614}, - dictWord{4, 11, 403}, - dictWord{5, 11, 441}, - dictWord{7, 11, 450}, - dictWord{11, 11, 101}, - dictWord{12, 11, 193}, - dictWord{141, 11, 430}, - dictWord{135, 11, 1927}, - dictWord{135, 11, 1330}, - dictWord{4, 0, 3}, - dictWord{5, 0, 247}, - dictWord{5, 0, 644}, - dictWord{7, 0, 744}, - dictWord{7, 0, 1207}, - dictWord{7, 0, 1225}, - dictWord{7, 0, 1909}, - dictWord{146, 0, 147}, - dictWord{136, 0, 942}, - dictWord{4, 0, 1019}, - dictWord{134, 0, 2023}, - dictWord{5, 11, 679}, - dictWord{133, 10, 973}, - dictWord{5, 0, 285}, - dictWord{9, 0, 67}, - dictWord{13, 0, 473}, - dictWord{143, 0, 82}, - dictWord{7, 11, 328}, - dictWord{137, 11, 326}, - dictWord{151, 0, 8}, - dictWord{6, 10, 135}, - dictWord{135, 10, 1176}, - dictWord{135, 11, 1128}, - dictWord{134, 0, 1309}, - dictWord{135, 11, 1796}, - dictWord{ - 135, - 10, - 314, - }, - dictWord{4, 11, 574}, - dictWord{7, 11, 350}, - dictWord{7, 11, 1024}, - dictWord{8, 11, 338}, - dictWord{9, 11, 677}, - dictWord{10, 11, 808}, - dictWord{ - 139, - 11, - 508, - }, - dictWord{7, 11, 818}, - dictWord{17, 11, 14}, - dictWord{17, 11, 45}, - dictWord{18, 11, 75}, - dictWord{148, 11, 18}, - dictWord{146, 10, 4}, - dictWord{ - 135, - 11, - 1081, - }, - dictWord{4, 0, 29}, - dictWord{6, 0, 532}, - dictWord{7, 0, 1628}, - dictWord{7, 0, 1648}, - dictWord{9, 0, 350}, - dictWord{10, 0, 433}, - dictWord{11, 0, 97}, - dictWord{11, 0, 557}, - dictWord{11, 0, 745}, - dictWord{12, 0, 289}, - dictWord{12, 0, 335}, - dictWord{12, 0, 348}, - dictWord{12, 0, 606}, - dictWord{13, 0, 116}, - dictWord{13, 0, 233}, - dictWord{13, 0, 466}, - dictWord{14, 0, 181}, - dictWord{14, 0, 209}, - dictWord{14, 0, 232}, - dictWord{14, 0, 236}, - dictWord{14, 0, 300}, - dictWord{ - 16, - 0, - 41, - }, - dictWord{148, 0, 97}, - dictWord{7, 0, 318}, - dictWord{6, 10, 281}, - dictWord{8, 10, 282}, - dictWord{8, 10, 480}, - dictWord{8, 10, 499}, - dictWord{9, 10, 198}, - dictWord{10, 10, 143}, - dictWord{10, 10, 169}, - dictWord{10, 10, 211}, - dictWord{10, 10, 417}, - dictWord{10, 10, 574}, - dictWord{11, 10, 147}, - dictWord{ - 11, - 10, - 395, - }, - dictWord{12, 10, 75}, - dictWord{12, 10, 407}, - dictWord{12, 10, 608}, - dictWord{13, 10, 500}, - dictWord{142, 10, 251}, - dictWord{135, 11, 1676}, - dictWord{135, 11, 2037}, - dictWord{135, 0, 1692}, - dictWord{5, 0, 501}, - dictWord{7, 0, 1704}, - dictWord{9, 0, 553}, - dictWord{11, 0, 520}, - dictWord{12, 0, 557}, - dictWord{141, 0, 249}, - dictWord{6, 0, 1527}, - dictWord{14, 0, 324}, - dictWord{15, 0, 55}, - dictWord{15, 0, 80}, - dictWord{14, 11, 324}, - dictWord{15, 11, 55}, - dictWord{143, 11, 80}, - dictWord{135, 10, 1776}, - dictWord{8, 0, 988}, - dictWord{137, 11, 297}, - dictWord{132, 10, 419}, - dictWord{142, 0, 223}, - dictWord{ - 139, - 11, - 234, - }, - dictWord{7, 0, 1123}, - dictWord{12, 0, 508}, - dictWord{14, 0, 102}, - dictWord{14, 0, 226}, - dictWord{144, 0, 57}, - dictWord{4, 10, 138}, - dictWord{ - 7, - 10, - 1012, - }, - dictWord{7, 10, 1280}, - dictWord{137, 10, 76}, - dictWord{7, 0, 1764}, - dictWord{5, 10, 29}, - dictWord{140, 10, 638}, - dictWord{134, 0, 2015}, - dictWord{134, 0, 1599}, - dictWord{138, 11, 56}, - dictWord{6, 11, 306}, - dictWord{7, 11, 1140}, - dictWord{7, 11, 1340}, - dictWord{8, 11, 133}, - dictWord{ - 138, - 11, - 449, - }, - dictWord{139, 11, 1011}, - dictWord{6, 10, 1710}, - dictWord{135, 10, 2038}, - dictWord{7, 11, 1763}, - dictWord{140, 11, 310}, - dictWord{6, 0, 129}, - dictWord{4, 10, 17}, - dictWord{5, 10, 23}, - dictWord{7, 10, 995}, - dictWord{11, 10, 383}, - dictWord{11, 10, 437}, - dictWord{12, 10, 460}, - dictWord{140, 10, 532}, - dictWord{5, 11, 329}, - dictWord{136, 11, 260}, - dictWord{133, 10, 862}, - dictWord{132, 0, 534}, - dictWord{6, 0, 811}, - dictWord{135, 0, 626}, - dictWord{ - 132, - 11, - 657, - }, - dictWord{4, 0, 25}, - dictWord{5, 0, 60}, - dictWord{6, 0, 504}, - dictWord{7, 0, 614}, - dictWord{7, 0, 1155}, - dictWord{12, 0, 0}, - dictWord{152, 11, 7}, - dictWord{ - 7, - 0, - 1248, - }, - dictWord{11, 0, 621}, - dictWord{139, 0, 702}, - dictWord{137, 0, 321}, - dictWord{8, 10, 70}, - dictWord{12, 10, 171}, - dictWord{141, 10, 272}, - dictWord{ - 10, - 10, - 233, - }, - dictWord{139, 10, 76}, - dictWord{4, 0, 379}, - dictWord{7, 0, 1397}, - dictWord{134, 10, 442}, - dictWord{5, 11, 66}, - dictWord{7, 11, 1896}, - dictWord{ - 136, - 11, - 288, - }, - dictWord{134, 11, 1643}, - dictWord{134, 10, 1709}, - dictWord{4, 11, 21}, - dictWord{5, 11, 91}, - dictWord{5, 11, 570}, - dictWord{5, 11, 648}, - dictWord{5, 11, 750}, - dictWord{5, 11, 781}, - dictWord{6, 11, 54}, - dictWord{6, 11, 112}, - dictWord{6, 11, 402}, - dictWord{6, 11, 1732}, - dictWord{7, 11, 315}, - dictWord{ - 7, - 11, - 749, - }, - dictWord{7, 11, 1347}, - dictWord{7, 11, 1900}, - dictWord{9, 11, 78}, - dictWord{9, 11, 508}, - dictWord{10, 11, 611}, - dictWord{11, 11, 510}, - dictWord{ - 11, - 11, - 728, - }, - dictWord{13, 11, 36}, - dictWord{14, 11, 39}, - dictWord{16, 11, 83}, - dictWord{17, 11, 124}, - dictWord{148, 11, 30}, - dictWord{4, 0, 118}, - dictWord{ - 6, - 0, - 274, - }, - dictWord{6, 0, 361}, - dictWord{7, 0, 75}, - dictWord{141, 0, 441}, - dictWord{10, 11, 322}, - dictWord{10, 11, 719}, - dictWord{139, 11, 407}, - dictWord{ - 147, - 10, - 119, - }, - dictWord{12, 11, 549}, - dictWord{14, 11, 67}, - dictWord{147, 11, 60}, - dictWord{11, 10, 69}, - dictWord{12, 10, 105}, - dictWord{12, 10, 117}, - dictWord{13, 10, 213}, - dictWord{14, 10, 13}, - dictWord{14, 10, 62}, - dictWord{14, 10, 177}, - dictWord{14, 10, 421}, - dictWord{15, 10, 19}, - dictWord{146, 10, 141}, - dictWord{9, 0, 841}, - dictWord{137, 10, 309}, - dictWord{7, 10, 608}, - dictWord{7, 10, 976}, - dictWord{8, 11, 125}, - dictWord{8, 11, 369}, - dictWord{8, 11, 524}, - dictWord{9, 10, 146}, - dictWord{10, 10, 206}, - dictWord{10, 11, 486}, - dictWord{10, 10, 596}, - dictWord{11, 11, 13}, - dictWord{11, 11, 381}, - dictWord{11, 11, 736}, - dictWord{11, 11, 766}, - dictWord{11, 11, 845}, - dictWord{13, 11, 114}, - dictWord{13, 10, 218}, - dictWord{13, 11, 292}, - dictWord{14, 11, 47}, - dictWord{ - 142, - 10, - 153, - }, - dictWord{12, 0, 693}, - dictWord{135, 11, 759}, - dictWord{5, 0, 314}, - dictWord{6, 0, 221}, - dictWord{7, 0, 419}, - dictWord{10, 0, 650}, - dictWord{11, 0, 396}, - dictWord{12, 0, 156}, - dictWord{13, 0, 369}, - dictWord{14, 0, 333}, - dictWord{145, 0, 47}, - dictWord{6, 11, 1684}, - dictWord{6, 11, 1731}, - dictWord{7, 11, 356}, - dictWord{7, 11, 1932}, - dictWord{8, 11, 54}, - dictWord{8, 11, 221}, - dictWord{9, 11, 225}, - dictWord{9, 11, 356}, - dictWord{10, 11, 77}, - dictWord{10, 11, 446}, - dictWord{10, 11, 731}, - dictWord{12, 11, 404}, - dictWord{141, 11, 491}, - dictWord{132, 11, 375}, - dictWord{4, 10, 518}, - dictWord{135, 10, 1136}, - dictWord{ - 4, - 0, - 913, - }, - dictWord{4, 11, 411}, - dictWord{11, 11, 643}, - dictWord{140, 11, 115}, - dictWord{4, 11, 80}, - dictWord{133, 11, 44}, - dictWord{8, 10, 689}, - dictWord{ - 137, - 10, - 863, - }, - dictWord{138, 0, 880}, - dictWord{4, 10, 18}, - dictWord{7, 10, 145}, - dictWord{7, 10, 444}, - dictWord{7, 10, 1278}, - dictWord{8, 10, 49}, - dictWord{ - 8, - 10, - 400, - }, - dictWord{9, 10, 71}, - dictWord{9, 10, 250}, - dictWord{10, 10, 459}, - dictWord{12, 10, 160}, - dictWord{144, 10, 24}, - dictWord{136, 0, 475}, - dictWord{ - 5, - 0, - 1016, - }, - dictWord{5, 11, 299}, - dictWord{135, 11, 1083}, - dictWord{7, 0, 602}, - dictWord{8, 0, 179}, - dictWord{10, 0, 781}, - dictWord{140, 0, 126}, - dictWord{ - 6, - 0, - 329, - }, - dictWord{138, 0, 111}, - dictWord{135, 0, 1864}, - dictWord{4, 11, 219}, - dictWord{7, 11, 1761}, - dictWord{137, 11, 86}, - dictWord{6, 0, 1888}, - dictWord{ - 6, - 0, - 1892, - }, - dictWord{6, 0, 1901}, - dictWord{6, 0, 1904}, - dictWord{9, 0, 953}, - dictWord{9, 0, 985}, - dictWord{9, 0, 991}, - dictWord{9, 0, 1001}, - dictWord{12, 0, 818}, - dictWord{12, 0, 846}, - dictWord{12, 0, 847}, - dictWord{12, 0, 861}, - dictWord{12, 0, 862}, - dictWord{12, 0, 873}, - dictWord{12, 0, 875}, - dictWord{12, 0, 877}, - dictWord{12, 0, 879}, - dictWord{12, 0, 881}, - dictWord{12, 0, 884}, - dictWord{12, 0, 903}, - dictWord{12, 0, 915}, - dictWord{12, 0, 926}, - dictWord{12, 0, 939}, - dictWord{ - 15, - 0, - 182, - }, - dictWord{15, 0, 219}, - dictWord{15, 0, 255}, - dictWord{18, 0, 191}, - dictWord{18, 0, 209}, - dictWord{18, 0, 211}, - dictWord{149, 0, 41}, - dictWord{ - 5, - 11, - 328, - }, - dictWord{135, 11, 918}, - dictWord{137, 0, 780}, - dictWord{12, 0, 82}, - dictWord{143, 0, 36}, - dictWord{133, 10, 1010}, - dictWord{5, 0, 821}, - dictWord{ - 134, - 0, - 1687, - }, - dictWord{133, 11, 514}, - dictWord{132, 0, 956}, - dictWord{134, 0, 1180}, - dictWord{10, 0, 112}, - dictWord{5, 10, 87}, - dictWord{7, 10, 313}, - dictWord{ - 7, - 10, - 1103, - }, - dictWord{10, 10, 582}, - dictWord{11, 10, 389}, - dictWord{11, 10, 813}, - dictWord{12, 10, 385}, - dictWord{13, 10, 286}, - dictWord{14, 10, 124}, - dictWord{146, 10, 108}, - dictWord{5, 0, 71}, - dictWord{7, 0, 1407}, - dictWord{9, 0, 704}, - dictWord{10, 0, 261}, - dictWord{10, 0, 619}, - dictWord{11, 0, 547}, - dictWord{11, 0, 619}, - dictWord{143, 0, 157}, - dictWord{4, 0, 531}, - dictWord{5, 0, 455}, - dictWord{5, 11, 301}, - dictWord{6, 11, 571}, - dictWord{14, 11, 49}, - dictWord{ - 146, - 11, - 102, - }, - dictWord{132, 10, 267}, - dictWord{6, 0, 385}, - dictWord{7, 0, 2008}, - dictWord{9, 0, 337}, - dictWord{138, 0, 517}, - dictWord{133, 11, 726}, - dictWord{133, 11, 364}, - dictWord{4, 11, 76}, - dictWord{7, 11, 1550}, - dictWord{9, 11, 306}, - dictWord{9, 11, 430}, - dictWord{9, 11, 663}, - dictWord{10, 11, 683}, - dictWord{11, 11, 427}, - dictWord{11, 11, 753}, - dictWord{12, 11, 334}, - dictWord{12, 11, 442}, - dictWord{14, 11, 258}, - dictWord{14, 11, 366}, - dictWord{ - 143, - 11, - 131, - }, - dictWord{6, 0, 1865}, - dictWord{6, 0, 1879}, - dictWord{6, 0, 1881}, - dictWord{6, 0, 1894}, - dictWord{6, 0, 1908}, - dictWord{9, 0, 915}, - dictWord{9, 0, 926}, - dictWord{9, 0, 940}, - dictWord{9, 0, 943}, - dictWord{9, 0, 966}, - dictWord{9, 0, 980}, - dictWord{9, 0, 989}, - dictWord{9, 0, 1005}, - dictWord{9, 0, 1010}, - dictWord{ - 12, - 0, - 813, - }, - dictWord{12, 0, 817}, - dictWord{12, 0, 840}, - dictWord{12, 0, 843}, - dictWord{12, 0, 855}, - dictWord{12, 0, 864}, - dictWord{12, 0, 871}, - dictWord{12, 0, 872}, - dictWord{12, 0, 899}, - dictWord{12, 0, 905}, - dictWord{12, 0, 924}, - dictWord{15, 0, 171}, - dictWord{15, 0, 181}, - dictWord{15, 0, 224}, - dictWord{15, 0, 235}, - dictWord{15, 0, 251}, - dictWord{146, 0, 184}, - dictWord{137, 11, 52}, - dictWord{5, 0, 16}, - dictWord{6, 0, 86}, - dictWord{6, 0, 603}, - dictWord{7, 0, 292}, - dictWord{7, 0, 561}, - dictWord{8, 0, 257}, - dictWord{8, 0, 382}, - dictWord{9, 0, 721}, - dictWord{9, 0, 778}, - dictWord{11, 0, 581}, - dictWord{140, 0, 466}, - dictWord{4, 0, 486}, - dictWord{ - 5, - 0, - 491, - }, - dictWord{135, 10, 1121}, - dictWord{4, 0, 72}, - dictWord{6, 0, 265}, - dictWord{135, 0, 1300}, - dictWord{135, 11, 1183}, - dictWord{10, 10, 249}, - dictWord{139, 10, 209}, - dictWord{132, 10, 561}, - dictWord{137, 11, 519}, - dictWord{4, 11, 656}, - dictWord{4, 10, 760}, - dictWord{135, 11, 779}, - dictWord{ - 9, - 10, - 154, - }, - dictWord{140, 10, 485}, - dictWord{135, 11, 1793}, - dictWord{135, 11, 144}, - dictWord{136, 10, 255}, - dictWord{133, 0, 621}, - dictWord{4, 10, 368}, - dictWord{135, 10, 641}, - dictWord{135, 11, 1373}, - dictWord{7, 11, 554}, - dictWord{7, 11, 605}, - dictWord{141, 11, 10}, - dictWord{137, 0, 234}, - dictWord{ - 5, - 0, - 815, - }, - dictWord{6, 0, 1688}, - dictWord{134, 0, 1755}, - dictWord{5, 11, 838}, - dictWord{5, 11, 841}, - dictWord{134, 11, 1649}, - dictWord{7, 0, 1987}, - dictWord{ - 7, - 0, - 2040, - }, - dictWord{136, 0, 743}, - dictWord{133, 11, 1012}, - dictWord{6, 0, 197}, - dictWord{136, 0, 205}, - dictWord{6, 0, 314}, - dictWord{134, 11, 314}, - dictWord{144, 11, 53}, - dictWord{6, 11, 251}, - dictWord{7, 11, 365}, - dictWord{7, 11, 1357}, - dictWord{7, 11, 1497}, - dictWord{8, 11, 154}, - dictWord{141, 11, 281}, - dictWord{133, 11, 340}, - dictWord{6, 0, 452}, - dictWord{7, 0, 312}, - dictWord{138, 0, 219}, - dictWord{138, 0, 589}, - dictWord{4, 0, 333}, - dictWord{9, 0, 176}, - dictWord{12, 0, 353}, - dictWord{141, 0, 187}, - dictWord{9, 10, 92}, - dictWord{147, 10, 91}, - dictWord{134, 0, 1110}, - dictWord{11, 0, 47}, - dictWord{139, 11, 495}, - dictWord{6, 10, 525}, - dictWord{8, 10, 806}, - dictWord{9, 10, 876}, - dictWord{140, 10, 284}, - dictWord{8, 11, 261}, - dictWord{9, 11, 144}, - dictWord{9, 11, 466}, - dictWord{10, 11, 370}, - dictWord{12, 11, 470}, - dictWord{13, 11, 144}, - dictWord{142, 11, 348}, - dictWord{137, 11, 897}, - dictWord{8, 0, 863}, - dictWord{8, 0, 864}, - dictWord{8, 0, 868}, - dictWord{8, 0, 884}, - dictWord{10, 0, 866}, - dictWord{10, 0, 868}, - dictWord{10, 0, 873}, - dictWord{10, 0, 911}, - dictWord{10, 0, 912}, - dictWord{ - 10, - 0, - 944, - }, - dictWord{12, 0, 727}, - dictWord{6, 11, 248}, - dictWord{9, 11, 546}, - dictWord{10, 11, 535}, - dictWord{11, 11, 681}, - dictWord{141, 11, 135}, - dictWord{ - 6, - 0, - 300, - }, - dictWord{135, 0, 1515}, - dictWord{134, 0, 1237}, - dictWord{139, 10, 958}, - dictWord{133, 10, 594}, - dictWord{140, 11, 250}, - dictWord{ - 134, - 0, - 1685, - }, - dictWord{134, 11, 567}, - dictWord{7, 0, 135}, - dictWord{8, 0, 7}, - dictWord{8, 0, 62}, - dictWord{9, 0, 243}, - dictWord{10, 0, 658}, - dictWord{10, 0, 697}, - dictWord{11, 0, 456}, - dictWord{139, 0, 756}, - dictWord{9, 0, 395}, - dictWord{138, 0, 79}, - dictWord{6, 10, 1641}, - dictWord{136, 10, 820}, - dictWord{4, 10, 302}, - dictWord{135, 10, 1766}, - dictWord{134, 11, 174}, - dictWord{135, 10, 1313}, - dictWord{135, 0, 631}, - dictWord{134, 10, 1674}, - dictWord{134, 11, 395}, - dictWord{138, 0, 835}, - dictWord{7, 0, 406}, - dictWord{7, 0, 459}, - dictWord{8, 0, 606}, - dictWord{139, 0, 726}, - dictWord{134, 11, 617}, - dictWord{134, 0, 979}, - dictWord{ - 6, - 10, - 389, - }, - dictWord{7, 10, 149}, - dictWord{9, 10, 142}, - dictWord{138, 10, 94}, - dictWord{5, 11, 878}, - dictWord{133, 11, 972}, - dictWord{6, 10, 8}, - dictWord{ - 7, - 10, - 1881, - }, - dictWord{8, 10, 91}, - dictWord{136, 11, 511}, - dictWord{133, 0, 612}, - dictWord{132, 11, 351}, - dictWord{4, 0, 372}, - dictWord{7, 0, 482}, - dictWord{ - 8, - 0, - 158, - }, - dictWord{9, 0, 602}, - dictWord{9, 0, 615}, - dictWord{10, 0, 245}, - dictWord{10, 0, 678}, - dictWord{10, 0, 744}, - dictWord{11, 0, 248}, - dictWord{ - 139, - 0, - 806, - }, - dictWord{5, 0, 854}, - dictWord{135, 0, 1991}, - dictWord{132, 11, 286}, - dictWord{135, 11, 344}, - dictWord{7, 11, 438}, - dictWord{7, 11, 627}, - dictWord{ - 7, - 11, - 1516, - }, - dictWord{8, 11, 40}, - dictWord{9, 11, 56}, - dictWord{9, 11, 294}, - dictWord{10, 11, 30}, - dictWord{10, 11, 259}, - dictWord{11, 11, 969}, - dictWord{ - 146, - 11, - 148, - }, - dictWord{135, 0, 1492}, - dictWord{5, 11, 259}, - dictWord{7, 11, 414}, - dictWord{7, 11, 854}, - dictWord{142, 11, 107}, - dictWord{135, 10, 1746}, - dictWord{6, 0, 833}, - dictWord{134, 0, 998}, - dictWord{135, 10, 24}, - dictWord{6, 0, 750}, - dictWord{135, 0, 1739}, - dictWord{4, 10, 503}, - dictWord{ - 135, - 10, - 1661, - }, - dictWord{5, 10, 130}, - dictWord{7, 10, 1314}, - dictWord{9, 10, 610}, - dictWord{10, 10, 718}, - dictWord{11, 10, 601}, - dictWord{11, 10, 819}, - dictWord{ - 11, - 10, - 946, - }, - dictWord{140, 10, 536}, - dictWord{10, 10, 149}, - dictWord{11, 10, 280}, - dictWord{142, 10, 336}, - dictWord{132, 11, 738}, - dictWord{ - 135, - 10, - 1946, - }, - dictWord{5, 0, 195}, - dictWord{135, 0, 1685}, - dictWord{7, 0, 1997}, - dictWord{8, 0, 730}, - dictWord{139, 0, 1006}, - dictWord{151, 11, 17}, - dictWord{ - 133, - 11, - 866, - }, - dictWord{14, 0, 463}, - dictWord{14, 0, 470}, - dictWord{150, 0, 61}, - dictWord{5, 0, 751}, - dictWord{8, 0, 266}, - dictWord{11, 0, 578}, - dictWord{ - 4, - 10, - 392, - }, - dictWord{135, 10, 1597}, - dictWord{5, 10, 433}, - dictWord{9, 10, 633}, - dictWord{139, 10, 629}, - dictWord{135, 0, 821}, - dictWord{6, 0, 715}, - dictWord{ - 134, - 0, - 1325, - }, - dictWord{133, 11, 116}, - dictWord{6, 0, 868}, - dictWord{132, 11, 457}, - dictWord{134, 0, 959}, - dictWord{6, 10, 234}, - dictWord{138, 11, 199}, - dictWord{7, 0, 1053}, - dictWord{7, 10, 1950}, - dictWord{8, 10, 680}, - dictWord{11, 10, 817}, - dictWord{147, 10, 88}, - dictWord{7, 10, 1222}, - dictWord{ - 138, - 10, - 386, - }, - dictWord{5, 0, 950}, - dictWord{5, 0, 994}, - dictWord{6, 0, 351}, - dictWord{134, 0, 1124}, - dictWord{134, 0, 1081}, - dictWord{7, 0, 1595}, - dictWord{6, 10, 5}, - dictWord{11, 10, 249}, - dictWord{12, 10, 313}, - dictWord{16, 10, 66}, - dictWord{145, 10, 26}, - dictWord{148, 0, 59}, - dictWord{5, 11, 527}, - dictWord{6, 11, 189}, - dictWord{135, 11, 859}, - dictWord{5, 10, 963}, - dictWord{6, 10, 1773}, - dictWord{11, 11, 104}, - dictWord{11, 11, 554}, - dictWord{15, 11, 60}, - dictWord{ - 143, - 11, - 125, - }, - dictWord{135, 0, 47}, - dictWord{137, 0, 684}, - dictWord{134, 11, 116}, - dictWord{134, 0, 1606}, - dictWord{134, 0, 777}, - dictWord{7, 0, 1020}, - dictWord{ - 8, - 10, - 509, - }, - dictWord{136, 10, 792}, - dictWord{135, 0, 1094}, - dictWord{132, 0, 350}, - dictWord{133, 11, 487}, - dictWord{4, 11, 86}, - dictWord{5, 11, 667}, - dictWord{5, 11, 753}, - dictWord{6, 11, 316}, - dictWord{6, 11, 455}, - dictWord{135, 11, 946}, - dictWord{7, 0, 1812}, - dictWord{13, 0, 259}, - dictWord{13, 0, 356}, - dictWord{14, 0, 242}, - dictWord{147, 0, 114}, - dictWord{132, 10, 931}, - dictWord{133, 0, 967}, - dictWord{4, 0, 473}, - dictWord{7, 0, 623}, - dictWord{8, 0, 808}, - dictWord{ - 9, - 0, - 871, - }, - dictWord{9, 0, 893}, - dictWord{11, 0, 38}, - dictWord{11, 0, 431}, - dictWord{12, 0, 112}, - dictWord{12, 0, 217}, - dictWord{12, 0, 243}, - dictWord{12, 0, 562}, - dictWord{12, 0, 663}, - dictWord{12, 0, 683}, - dictWord{13, 0, 141}, - dictWord{13, 0, 197}, - dictWord{13, 0, 227}, - dictWord{13, 0, 406}, - dictWord{13, 0, 487}, - dictWord{14, 0, 156}, - dictWord{14, 0, 203}, - dictWord{14, 0, 224}, - dictWord{14, 0, 256}, - dictWord{18, 0, 58}, - dictWord{150, 0, 0}, - dictWord{138, 0, 286}, - dictWord{ - 7, - 10, - 943, - }, - dictWord{139, 10, 614}, - dictWord{135, 10, 1837}, - dictWord{150, 11, 45}, - dictWord{132, 0, 798}, - dictWord{4, 0, 222}, - dictWord{7, 0, 286}, - dictWord{136, 0, 629}, - dictWord{4, 11, 79}, - dictWord{7, 11, 1773}, - dictWord{10, 11, 450}, - dictWord{11, 11, 589}, - dictWord{13, 11, 332}, - dictWord{13, 11, 493}, - dictWord{14, 11, 183}, - dictWord{14, 11, 334}, - dictWord{14, 11, 362}, - dictWord{14, 11, 368}, - dictWord{14, 11, 376}, - dictWord{14, 11, 379}, - dictWord{ - 19, - 11, - 90, - }, - dictWord{19, 11, 103}, - dictWord{19, 11, 127}, - dictWord{148, 11, 90}, - dictWord{5, 0, 337}, - dictWord{11, 0, 513}, - dictWord{11, 0, 889}, - dictWord{ - 11, - 0, - 961, - }, - dictWord{12, 0, 461}, - dictWord{13, 0, 79}, - dictWord{15, 0, 121}, - dictWord{4, 10, 90}, - dictWord{5, 10, 545}, - dictWord{7, 10, 754}, - dictWord{9, 10, 186}, - dictWord{10, 10, 72}, - dictWord{10, 10, 782}, - dictWord{11, 10, 577}, - dictWord{11, 10, 610}, - dictWord{12, 10, 354}, - dictWord{12, 10, 362}, - dictWord{ - 140, - 10, - 595, - }, - dictWord{141, 0, 306}, - dictWord{136, 0, 146}, - dictWord{7, 0, 1646}, - dictWord{9, 10, 329}, - dictWord{11, 10, 254}, - dictWord{141, 11, 124}, - dictWord{ - 4, - 0, - 465, - }, - dictWord{135, 0, 1663}, - dictWord{132, 0, 525}, - dictWord{133, 11, 663}, - dictWord{10, 0, 299}, - dictWord{18, 0, 74}, - dictWord{9, 10, 187}, - dictWord{ - 11, - 10, - 1016, - }, - dictWord{145, 10, 44}, - dictWord{7, 0, 165}, - dictWord{7, 0, 919}, - dictWord{4, 10, 506}, - dictWord{136, 10, 517}, - dictWord{5, 10, 295}, - dictWord{ - 135, - 10, - 1680, - }, - dictWord{133, 11, 846}, - dictWord{134, 0, 1064}, - dictWord{5, 11, 378}, - dictWord{7, 11, 1402}, - dictWord{7, 11, 1414}, - dictWord{8, 11, 465}, - dictWord{9, 11, 286}, - dictWord{10, 11, 185}, - dictWord{10, 11, 562}, - dictWord{10, 11, 635}, - dictWord{11, 11, 31}, - dictWord{11, 11, 393}, - dictWord{ - 12, - 11, - 456, - }, - dictWord{13, 11, 312}, - dictWord{18, 11, 65}, - dictWord{18, 11, 96}, - dictWord{147, 11, 89}, - dictWord{132, 0, 596}, - dictWord{7, 10, 987}, - dictWord{ - 9, - 10, - 688, - }, - dictWord{10, 10, 522}, - dictWord{11, 10, 788}, - dictWord{140, 10, 566}, - dictWord{6, 0, 82}, - dictWord{7, 0, 138}, - dictWord{7, 0, 517}, - dictWord{7, 0, 1741}, - dictWord{11, 0, 238}, - dictWord{4, 11, 648}, - dictWord{134, 10, 1775}, - dictWord{7, 0, 1233}, - dictWord{7, 10, 700}, - dictWord{7, 10, 940}, - dictWord{8, 10, 514}, - dictWord{9, 10, 116}, - dictWord{9, 10, 535}, - dictWord{10, 10, 118}, - dictWord{11, 10, 107}, - dictWord{11, 10, 148}, - dictWord{11, 10, 922}, - dictWord{ - 12, - 10, - 254, - }, - dictWord{12, 10, 421}, - dictWord{142, 10, 238}, - dictWord{4, 0, 962}, - dictWord{6, 0, 1824}, - dictWord{8, 0, 894}, - dictWord{12, 0, 708}, - dictWord{ - 12, - 0, - 725, - }, - dictWord{14, 0, 451}, - dictWord{20, 0, 94}, - dictWord{22, 0, 59}, - dictWord{150, 0, 62}, - dictWord{5, 11, 945}, - dictWord{6, 11, 1656}, - dictWord{6, 11, 1787}, - dictWord{7, 11, 167}, - dictWord{8, 11, 824}, - dictWord{9, 11, 391}, - dictWord{10, 11, 375}, - dictWord{139, 11, 185}, - dictWord{5, 0, 495}, - dictWord{7, 0, 834}, - dictWord{9, 0, 733}, - dictWord{139, 0, 378}, - dictWord{4, 10, 743}, - dictWord{135, 11, 1273}, - dictWord{6, 0, 1204}, - dictWord{7, 11, 1645}, - dictWord{8, 11, 352}, - dictWord{137, 11, 249}, - dictWord{139, 10, 292}, - dictWord{133, 0, 559}, - dictWord{132, 11, 152}, - dictWord{9, 0, 499}, - dictWord{10, 0, 341}, - dictWord{ - 15, - 0, - 144, - }, - dictWord{19, 0, 49}, - dictWord{7, 10, 1283}, - dictWord{9, 10, 227}, - dictWord{11, 10, 325}, - dictWord{11, 10, 408}, - dictWord{14, 10, 180}, - dictWord{ - 146, - 10, - 47, - }, - dictWord{6, 0, 21}, - dictWord{6, 0, 1737}, - dictWord{7, 0, 1444}, - dictWord{136, 0, 224}, - dictWord{133, 11, 1006}, - dictWord{7, 0, 1446}, - dictWord{ - 9, - 0, - 97, - }, - dictWord{17, 0, 15}, - dictWord{5, 10, 81}, - dictWord{7, 10, 146}, - dictWord{7, 10, 1342}, - dictWord{8, 10, 53}, - dictWord{8, 10, 561}, - dictWord{8, 10, 694}, - dictWord{8, 10, 754}, - dictWord{9, 10, 115}, - dictWord{9, 10, 894}, - dictWord{10, 10, 462}, - dictWord{10, 10, 813}, - dictWord{11, 10, 230}, - dictWord{11, 10, 657}, - dictWord{11, 10, 699}, - dictWord{11, 10, 748}, - dictWord{12, 10, 119}, - dictWord{12, 10, 200}, - dictWord{12, 10, 283}, - dictWord{142, 10, 273}, - dictWord{ - 5, - 10, - 408, - }, - dictWord{137, 10, 747}, - dictWord{135, 11, 431}, - dictWord{135, 11, 832}, - dictWord{6, 0, 729}, - dictWord{134, 0, 953}, - dictWord{4, 0, 727}, - dictWord{ - 8, - 0, - 565, - }, - dictWord{5, 11, 351}, - dictWord{7, 11, 264}, - dictWord{136, 11, 565}, - dictWord{134, 0, 1948}, - dictWord{5, 0, 519}, - dictWord{5, 11, 40}, - dictWord{ - 7, - 11, - 598, - }, - dictWord{7, 11, 1638}, - dictWord{8, 11, 78}, - dictWord{9, 11, 166}, - dictWord{9, 11, 640}, - dictWord{9, 11, 685}, - dictWord{9, 11, 773}, - dictWord{ - 11, - 11, - 215, - }, - dictWord{13, 11, 65}, - dictWord{14, 11, 172}, - dictWord{14, 11, 317}, - dictWord{145, 11, 6}, - dictWord{8, 11, 60}, - dictWord{9, 11, 343}, - dictWord{ - 139, - 11, - 769, - }, - dictWord{137, 11, 455}, - dictWord{134, 0, 1193}, - dictWord{140, 0, 790}, - dictWord{7, 11, 1951}, - dictWord{8, 11, 765}, - dictWord{8, 11, 772}, - dictWord{140, 11, 671}, - dictWord{7, 11, 108}, - dictWord{8, 11, 219}, - dictWord{8, 11, 388}, - dictWord{9, 11, 639}, - dictWord{9, 11, 775}, - dictWord{11, 11, 275}, - dictWord{140, 11, 464}, - dictWord{132, 11, 468}, - dictWord{7, 10, 30}, - dictWord{8, 10, 86}, - dictWord{8, 10, 315}, - dictWord{8, 10, 700}, - dictWord{9, 10, 576}, - dictWord{ - 9, - 10, - 858, - }, - dictWord{11, 10, 310}, - dictWord{11, 10, 888}, - dictWord{11, 10, 904}, - dictWord{12, 10, 361}, - dictWord{141, 10, 248}, - dictWord{5, 11, 15}, - dictWord{6, 11, 56}, - dictWord{7, 11, 1758}, - dictWord{8, 11, 500}, - dictWord{9, 11, 730}, - dictWord{11, 11, 331}, - dictWord{13, 11, 150}, - dictWord{142, 11, 282}, - dictWord{4, 0, 402}, - dictWord{7, 0, 2}, - dictWord{8, 0, 323}, - dictWord{136, 0, 479}, - dictWord{138, 10, 839}, - dictWord{11, 0, 580}, - dictWord{142, 0, 201}, - dictWord{ - 5, - 0, - 59, - }, - dictWord{135, 0, 672}, - dictWord{137, 10, 617}, - dictWord{146, 0, 34}, - dictWord{134, 11, 1886}, - dictWord{4, 0, 961}, - dictWord{136, 0, 896}, - dictWord{ - 6, - 0, - 1285, - }, - dictWord{5, 11, 205}, - dictWord{6, 11, 438}, - dictWord{137, 11, 711}, - dictWord{134, 10, 428}, - dictWord{7, 10, 524}, - dictWord{8, 10, 169}, - dictWord{8, 10, 234}, - dictWord{9, 10, 480}, - dictWord{138, 10, 646}, - dictWord{148, 0, 46}, - dictWord{141, 0, 479}, - dictWord{133, 11, 534}, - dictWord{6, 0, 2019}, - dictWord{134, 10, 1648}, - dictWord{4, 0, 85}, - dictWord{7, 0, 549}, - dictWord{7, 10, 1205}, - dictWord{138, 10, 637}, - dictWord{4, 0, 663}, - dictWord{5, 0, 94}, - dictWord{ - 7, - 11, - 235, - }, - dictWord{7, 11, 1475}, - dictWord{15, 11, 68}, - dictWord{146, 11, 120}, - dictWord{6, 11, 443}, - dictWord{9, 11, 237}, - dictWord{9, 11, 571}, - dictWord{ - 9, - 11, - 695, - }, - dictWord{10, 11, 139}, - dictWord{11, 11, 715}, - dictWord{12, 11, 417}, - dictWord{141, 11, 421}, - dictWord{132, 0, 783}, - dictWord{4, 0, 682}, - dictWord{8, 0, 65}, - dictWord{9, 10, 39}, - dictWord{10, 10, 166}, - dictWord{11, 10, 918}, - dictWord{12, 10, 635}, - dictWord{20, 10, 10}, - dictWord{22, 10, 27}, - dictWord{ - 22, - 10, - 43, - }, - dictWord{150, 10, 52}, - dictWord{6, 0, 11}, - dictWord{135, 0, 187}, - dictWord{132, 0, 522}, - dictWord{4, 0, 52}, - dictWord{135, 0, 661}, - dictWord{ - 4, - 0, - 383, - }, - dictWord{133, 0, 520}, - dictWord{135, 11, 546}, - dictWord{11, 0, 343}, - dictWord{142, 0, 127}, - dictWord{4, 11, 578}, - dictWord{7, 10, 157}, - dictWord{ - 7, - 11, - 624, - }, - dictWord{7, 11, 916}, - dictWord{8, 10, 279}, - dictWord{10, 11, 256}, - dictWord{11, 11, 87}, - dictWord{139, 11, 703}, - dictWord{134, 10, 604}, - dictWord{ - 4, - 0, - 281, - }, - dictWord{5, 0, 38}, - dictWord{7, 0, 194}, - dictWord{7, 0, 668}, - dictWord{7, 0, 1893}, - dictWord{137, 0, 397}, - dictWord{7, 10, 945}, - dictWord{11, 10, 713}, - dictWord{139, 10, 744}, - dictWord{139, 10, 1022}, - dictWord{9, 0, 635}, - dictWord{139, 0, 559}, - dictWord{5, 11, 923}, - dictWord{7, 11, 490}, - dictWord{ - 12, - 11, - 553, - }, - dictWord{13, 11, 100}, - dictWord{14, 11, 118}, - dictWord{143, 11, 75}, - dictWord{132, 0, 975}, - dictWord{132, 10, 567}, - dictWord{137, 10, 859}, - dictWord{7, 10, 1846}, - dictWord{7, 11, 1846}, - dictWord{8, 10, 628}, - dictWord{136, 11, 628}, - dictWord{148, 0, 116}, - dictWord{138, 11, 750}, - dictWord{14, 0, 51}, - dictWord{14, 11, 51}, - dictWord{15, 11, 7}, - dictWord{148, 11, 20}, - dictWord{132, 0, 858}, - dictWord{134, 0, 1075}, - dictWord{4, 11, 924}, - dictWord{ - 133, - 10, - 762, - }, - dictWord{136, 0, 535}, - dictWord{133, 0, 448}, - dictWord{10, 10, 784}, - dictWord{141, 10, 191}, - dictWord{133, 10, 298}, - dictWord{7, 0, 610}, - dictWord{135, 0, 1501}, - dictWord{7, 10, 633}, - dictWord{7, 10, 905}, - dictWord{7, 10, 909}, - dictWord{7, 10, 1538}, - dictWord{9, 10, 767}, - dictWord{140, 10, 636}, - dictWord{4, 11, 265}, - dictWord{7, 11, 807}, - dictWord{135, 11, 950}, - dictWord{5, 11, 93}, - dictWord{12, 11, 267}, - dictWord{144, 11, 26}, - dictWord{136, 0, 191}, - dictWord{139, 10, 301}, - dictWord{135, 10, 1970}, - dictWord{135, 0, 267}, - dictWord{4, 0, 319}, - dictWord{5, 0, 699}, - dictWord{138, 0, 673}, - dictWord{ - 6, - 0, - 336, - }, - dictWord{7, 0, 92}, - dictWord{7, 0, 182}, - dictWord{8, 0, 453}, - dictWord{8, 0, 552}, - dictWord{9, 0, 204}, - dictWord{9, 0, 285}, - dictWord{10, 0, 99}, - dictWord{ - 11, - 0, - 568, - }, - dictWord{11, 0, 950}, - dictWord{12, 0, 94}, - dictWord{16, 0, 20}, - dictWord{16, 0, 70}, - dictWord{19, 0, 55}, - dictWord{12, 10, 644}, - dictWord{144, 10, 90}, - dictWord{6, 0, 551}, - dictWord{7, 0, 1308}, - dictWord{7, 10, 845}, - dictWord{7, 11, 994}, - dictWord{8, 10, 160}, - dictWord{137, 10, 318}, - dictWord{19, 11, 1}, - dictWord{ - 19, - 11, - 26, - }, - dictWord{150, 11, 9}, - dictWord{7, 0, 1406}, - dictWord{9, 0, 218}, - dictWord{141, 0, 222}, - dictWord{5, 0, 256}, - dictWord{138, 0, 69}, - dictWord{ - 5, - 11, - 233, - }, - dictWord{5, 11, 320}, - dictWord{6, 11, 140}, - dictWord{7, 11, 330}, - dictWord{136, 11, 295}, - dictWord{6, 0, 1980}, - dictWord{136, 0, 952}, - dictWord{ - 4, - 0, - 833, - }, - dictWord{137, 11, 678}, - dictWord{133, 11, 978}, - dictWord{4, 11, 905}, - dictWord{6, 11, 1701}, - dictWord{137, 11, 843}, - dictWord{138, 10, 735}, - dictWord{136, 10, 76}, - dictWord{17, 0, 39}, - dictWord{148, 0, 36}, - dictWord{18, 0, 81}, - dictWord{146, 11, 81}, - dictWord{14, 0, 352}, - dictWord{17, 0, 53}, - dictWord{ - 18, - 0, - 146, - }, - dictWord{18, 0, 152}, - dictWord{19, 0, 11}, - dictWord{150, 0, 54}, - dictWord{135, 0, 634}, - dictWord{138, 10, 841}, - dictWord{132, 0, 618}, - dictWord{ - 4, - 0, - 339, - }, - dictWord{7, 0, 259}, - dictWord{17, 0, 73}, - dictWord{4, 11, 275}, - dictWord{140, 11, 376}, - dictWord{132, 11, 509}, - dictWord{7, 11, 273}, - dictWord{ - 139, - 11, - 377, - }, - dictWord{4, 0, 759}, - dictWord{13, 0, 169}, - dictWord{137, 10, 804}, - dictWord{6, 10, 96}, - dictWord{135, 10, 1426}, - dictWord{4, 10, 651}, - dictWord{133, 10, 289}, - dictWord{7, 0, 1075}, - dictWord{8, 10, 35}, - dictWord{9, 10, 511}, - dictWord{10, 10, 767}, - dictWord{147, 10, 118}, - dictWord{6, 0, 649}, - dictWord{6, 0, 670}, - dictWord{136, 0, 482}, - dictWord{5, 0, 336}, - dictWord{6, 0, 341}, - dictWord{6, 0, 478}, - dictWord{6, 0, 1763}, - dictWord{136, 0, 386}, - dictWord{ - 5, - 11, - 802, - }, - dictWord{7, 11, 2021}, - dictWord{8, 11, 805}, - dictWord{14, 11, 94}, - dictWord{15, 11, 65}, - dictWord{16, 11, 4}, - dictWord{16, 11, 77}, - dictWord{16, 11, 80}, - dictWord{145, 11, 5}, - dictWord{6, 0, 1035}, - dictWord{5, 11, 167}, - dictWord{5, 11, 899}, - dictWord{6, 11, 410}, - dictWord{137, 11, 777}, - dictWord{ - 134, - 11, - 1705, - }, - dictWord{5, 0, 924}, - dictWord{133, 0, 969}, - dictWord{132, 10, 704}, - dictWord{135, 0, 73}, - dictWord{135, 11, 10}, - dictWord{135, 10, 1078}, - dictWord{ - 5, - 11, - 11, - }, - dictWord{6, 11, 117}, - dictWord{6, 11, 485}, - dictWord{7, 11, 1133}, - dictWord{9, 11, 582}, - dictWord{9, 11, 594}, - dictWord{11, 11, 21}, - dictWord{ - 11, - 11, - 818, - }, - dictWord{12, 11, 535}, - dictWord{141, 11, 86}, - dictWord{135, 0, 1971}, - dictWord{4, 11, 264}, - dictWord{7, 11, 1067}, - dictWord{8, 11, 204}, - dictWord{8, 11, 385}, - dictWord{139, 11, 953}, - dictWord{6, 0, 1458}, - dictWord{135, 0, 1344}, - dictWord{5, 0, 396}, - dictWord{134, 0, 501}, - dictWord{4, 10, 720}, - dictWord{133, 10, 306}, - dictWord{4, 0, 929}, - dictWord{5, 0, 799}, - dictWord{8, 0, 46}, - dictWord{8, 0, 740}, - dictWord{133, 10, 431}, - dictWord{7, 11, 646}, - dictWord{ - 7, - 11, - 1730, - }, - dictWord{11, 11, 446}, - dictWord{141, 11, 178}, - dictWord{7, 0, 276}, - dictWord{5, 10, 464}, - dictWord{6, 10, 236}, - dictWord{7, 10, 696}, - dictWord{ - 7, - 10, - 914, - }, - dictWord{7, 10, 1108}, - dictWord{7, 10, 1448}, - dictWord{9, 10, 15}, - dictWord{9, 10, 564}, - dictWord{10, 10, 14}, - dictWord{12, 10, 565}, - dictWord{ - 13, - 10, - 449, - }, - dictWord{14, 10, 53}, - dictWord{15, 10, 13}, - dictWord{16, 10, 64}, - dictWord{145, 10, 41}, - dictWord{4, 0, 892}, - dictWord{133, 0, 770}, - dictWord{ - 6, - 10, - 1767, - }, - dictWord{12, 10, 194}, - dictWord{145, 10, 107}, - dictWord{135, 0, 158}, - dictWord{5, 10, 840}, - dictWord{138, 11, 608}, - dictWord{134, 0, 1432}, - dictWord{138, 11, 250}, - dictWord{8, 11, 794}, - dictWord{9, 11, 400}, - dictWord{10, 11, 298}, - dictWord{142, 11, 228}, - dictWord{151, 0, 25}, - dictWord{ - 7, - 11, - 1131, - }, - dictWord{135, 11, 1468}, - dictWord{135, 0, 2001}, - dictWord{9, 10, 642}, - dictWord{11, 10, 236}, - dictWord{142, 10, 193}, - dictWord{4, 10, 68}, - dictWord{5, 10, 634}, - dictWord{6, 10, 386}, - dictWord{7, 10, 794}, - dictWord{8, 10, 273}, - dictWord{9, 10, 563}, - dictWord{10, 10, 105}, - dictWord{10, 10, 171}, - dictWord{11, 10, 94}, - dictWord{139, 10, 354}, - dictWord{136, 11, 724}, - dictWord{132, 0, 478}, - dictWord{11, 11, 512}, - dictWord{13, 11, 205}, - dictWord{ - 19, - 11, - 30, - }, - dictWord{22, 11, 36}, - dictWord{151, 11, 19}, - dictWord{7, 0, 1461}, - dictWord{140, 0, 91}, - dictWord{6, 11, 190}, - dictWord{7, 11, 768}, - dictWord{ - 135, - 11, - 1170, - }, - dictWord{4, 0, 602}, - dictWord{8, 0, 211}, - dictWord{4, 10, 95}, - dictWord{7, 10, 416}, - dictWord{139, 10, 830}, - dictWord{7, 10, 731}, - dictWord{13, 10, 20}, - dictWord{143, 10, 11}, - dictWord{6, 0, 1068}, - dictWord{135, 0, 1872}, - dictWord{4, 0, 13}, - dictWord{5, 0, 567}, - dictWord{7, 0, 1498}, - dictWord{9, 0, 124}, - dictWord{11, 0, 521}, - dictWord{12, 0, 405}, - dictWord{135, 11, 1023}, - dictWord{135, 0, 1006}, - dictWord{132, 0, 735}, - dictWord{138, 0, 812}, - dictWord{4, 0, 170}, - dictWord{135, 0, 323}, - dictWord{6, 11, 137}, - dictWord{9, 11, 75}, - dictWord{9, 11, 253}, - dictWord{10, 11, 194}, - dictWord{138, 11, 444}, - dictWord{5, 0, 304}, - dictWord{7, 0, 1403}, - dictWord{5, 10, 864}, - dictWord{10, 10, 648}, - dictWord{11, 10, 671}, - dictWord{143, 10, 46}, - dictWord{135, 11, 1180}, - dictWord{ - 133, - 10, - 928, - }, - dictWord{4, 0, 148}, - dictWord{133, 0, 742}, - dictWord{11, 10, 986}, - dictWord{140, 10, 682}, - dictWord{133, 0, 523}, - dictWord{135, 11, 1743}, - dictWord{7, 0, 730}, - dictWord{18, 0, 144}, - dictWord{19, 0, 61}, - dictWord{8, 10, 44}, - dictWord{9, 10, 884}, - dictWord{10, 10, 580}, - dictWord{11, 10, 399}, - dictWord{ - 11, - 10, - 894, - }, - dictWord{143, 10, 122}, - dictWord{5, 11, 760}, - dictWord{7, 11, 542}, - dictWord{8, 11, 135}, - dictWord{136, 11, 496}, - dictWord{136, 0, 981}, - dictWord{133, 0, 111}, - dictWord{10, 0, 132}, - dictWord{11, 0, 191}, - dictWord{11, 0, 358}, - dictWord{139, 0, 460}, - dictWord{7, 11, 319}, - dictWord{7, 11, 355}, - dictWord{ - 7, - 11, - 763, - }, - dictWord{10, 11, 389}, - dictWord{145, 11, 43}, - dictWord{134, 0, 890}, - dictWord{134, 0, 1420}, - dictWord{136, 11, 557}, - dictWord{ - 133, - 10, - 518, - }, - dictWord{133, 0, 444}, - dictWord{135, 0, 1787}, - dictWord{135, 10, 1852}, - dictWord{8, 0, 123}, - dictWord{15, 0, 6}, - dictWord{144, 0, 7}, - dictWord{ - 6, - 0, - 2041, - }, - dictWord{10, 11, 38}, - dictWord{139, 11, 784}, - dictWord{136, 0, 932}, - dictWord{5, 0, 937}, - dictWord{135, 0, 100}, - dictWord{6, 0, 995}, - dictWord{ - 4, - 11, - 58, - }, - dictWord{5, 11, 286}, - dictWord{6, 11, 319}, - dictWord{7, 11, 402}, - dictWord{7, 11, 1254}, - dictWord{7, 11, 1903}, - dictWord{8, 11, 356}, - dictWord{ - 140, - 11, - 408, - }, - dictWord{4, 11, 389}, - dictWord{9, 11, 181}, - dictWord{9, 11, 255}, - dictWord{10, 11, 8}, - dictWord{10, 11, 29}, - dictWord{10, 11, 816}, - dictWord{ - 11, - 11, - 311, - }, - dictWord{11, 11, 561}, - dictWord{12, 11, 67}, - dictWord{141, 11, 181}, - dictWord{138, 0, 255}, - dictWord{5, 0, 138}, - dictWord{4, 10, 934}, - dictWord{ - 136, - 10, - 610, - }, - dictWord{4, 0, 965}, - dictWord{10, 0, 863}, - dictWord{138, 0, 898}, - dictWord{10, 10, 804}, - dictWord{138, 10, 832}, - dictWord{12, 0, 631}, - dictWord{ - 8, - 10, - 96, - }, - dictWord{9, 10, 36}, - dictWord{10, 10, 607}, - dictWord{11, 10, 423}, - dictWord{11, 10, 442}, - dictWord{12, 10, 309}, - dictWord{14, 10, 199}, - dictWord{ - 15, - 10, - 90, - }, - dictWord{145, 10, 110}, - dictWord{134, 0, 1394}, - dictWord{4, 0, 652}, - dictWord{8, 0, 320}, - dictWord{22, 0, 6}, - dictWord{22, 0, 16}, - dictWord{ - 9, - 10, - 13, - }, - dictWord{9, 10, 398}, - dictWord{9, 10, 727}, - dictWord{10, 10, 75}, - dictWord{10, 10, 184}, - dictWord{10, 10, 230}, - dictWord{10, 10, 564}, - dictWord{ - 10, - 10, - 569, - }, - dictWord{11, 10, 973}, - dictWord{12, 10, 70}, - dictWord{12, 10, 189}, - dictWord{13, 10, 57}, - dictWord{141, 10, 257}, - dictWord{6, 0, 897}, - dictWord{ - 134, - 0, - 1333, - }, - dictWord{4, 0, 692}, - dictWord{133, 0, 321}, - dictWord{133, 11, 373}, - dictWord{135, 0, 922}, - dictWord{5, 0, 619}, - dictWord{133, 0, 698}, - dictWord{ - 137, - 10, - 631, - }, - dictWord{5, 10, 345}, - dictWord{135, 10, 1016}, - dictWord{9, 0, 957}, - dictWord{9, 0, 1018}, - dictWord{12, 0, 828}, - dictWord{12, 0, 844}, - dictWord{ - 12, - 0, - 897, - }, - dictWord{12, 0, 901}, - dictWord{12, 0, 943}, - dictWord{15, 0, 180}, - dictWord{18, 0, 197}, - dictWord{18, 0, 200}, - dictWord{18, 0, 213}, - dictWord{ - 18, - 0, - 214, - }, - dictWord{146, 0, 226}, - dictWord{5, 0, 917}, - dictWord{134, 0, 1659}, - dictWord{135, 0, 1100}, - dictWord{134, 0, 1173}, - dictWord{134, 0, 1930}, - dictWord{5, 0, 251}, - dictWord{5, 0, 956}, - dictWord{8, 0, 268}, - dictWord{9, 0, 214}, - dictWord{146, 0, 142}, - dictWord{133, 10, 673}, - dictWord{137, 10, 850}, - dictWord{ - 4, - 10, - 287, - }, - dictWord{133, 10, 1018}, - dictWord{132, 11, 672}, - dictWord{5, 0, 346}, - dictWord{5, 0, 711}, - dictWord{8, 0, 390}, - dictWord{11, 11, 752}, - dictWord{139, 11, 885}, - dictWord{5, 10, 34}, - dictWord{10, 10, 724}, - dictWord{12, 10, 444}, - dictWord{13, 10, 354}, - dictWord{18, 10, 32}, - dictWord{23, 10, 24}, - dictWord{23, 10, 31}, - dictWord{152, 10, 5}, - dictWord{4, 11, 710}, - dictWord{134, 11, 606}, - dictWord{134, 0, 744}, - dictWord{134, 10, 382}, - dictWord{ - 133, - 11, - 145, - }, - dictWord{4, 10, 329}, - dictWord{7, 11, 884}, - dictWord{140, 11, 124}, - dictWord{4, 11, 467}, - dictWord{5, 11, 405}, - dictWord{134, 11, 544}, - dictWord{ - 9, - 10, - 846, - }, - dictWord{138, 10, 827}, - dictWord{133, 0, 624}, - dictWord{9, 11, 372}, - dictWord{15, 11, 2}, - dictWord{19, 11, 10}, - dictWord{147, 11, 18}, - dictWord{ - 4, - 11, - 387, - }, - dictWord{135, 11, 1288}, - dictWord{5, 0, 783}, - dictWord{7, 0, 1998}, - dictWord{135, 0, 2047}, - dictWord{132, 10, 906}, - dictWord{136, 10, 366}, - dictWord{135, 11, 550}, - dictWord{4, 10, 123}, - dictWord{4, 10, 649}, - dictWord{5, 10, 605}, - dictWord{7, 10, 1509}, - dictWord{136, 10, 36}, - dictWord{ - 134, - 0, - 1125, - }, - dictWord{132, 0, 594}, - dictWord{133, 10, 767}, - dictWord{135, 11, 1227}, - dictWord{136, 11, 467}, - dictWord{4, 11, 576}, - dictWord{ - 135, - 11, - 1263, - }, - dictWord{4, 0, 268}, - dictWord{7, 0, 1534}, - dictWord{135, 11, 1534}, - dictWord{4, 10, 273}, - dictWord{5, 10, 658}, - dictWord{5, 11, 919}, - dictWord{ - 5, - 10, - 995, - }, - dictWord{134, 11, 1673}, - dictWord{133, 0, 563}, - dictWord{134, 10, 72}, - dictWord{135, 10, 1345}, - dictWord{4, 11, 82}, - dictWord{5, 11, 333}, - dictWord{ - 5, - 11, - 904, - }, - dictWord{6, 11, 207}, - dictWord{7, 11, 325}, - dictWord{7, 11, 1726}, - dictWord{8, 11, 101}, - dictWord{10, 11, 778}, - dictWord{139, 11, 220}, - dictWord{5, 0, 37}, - dictWord{6, 0, 39}, - dictWord{6, 0, 451}, - dictWord{7, 0, 218}, - dictWord{7, 0, 667}, - dictWord{7, 0, 1166}, - dictWord{7, 0, 1687}, - dictWord{8, 0, 662}, - dictWord{16, 0, 2}, - dictWord{133, 10, 589}, - dictWord{134, 0, 1332}, - dictWord{133, 11, 903}, - dictWord{134, 0, 508}, - dictWord{5, 10, 117}, - dictWord{6, 10, 514}, - dictWord{6, 10, 541}, - dictWord{7, 10, 1164}, - dictWord{7, 10, 1436}, - dictWord{8, 10, 220}, - dictWord{8, 10, 648}, - dictWord{10, 10, 688}, - dictWord{11, 10, 560}, - dictWord{140, 11, 147}, - dictWord{6, 11, 555}, - dictWord{135, 11, 485}, - dictWord{133, 10, 686}, - dictWord{7, 0, 453}, - dictWord{7, 0, 635}, - dictWord{7, 0, 796}, - dictWord{8, 0, 331}, - dictWord{9, 0, 330}, - dictWord{9, 0, 865}, - dictWord{10, 0, 119}, - dictWord{10, 0, 235}, - dictWord{11, 0, 111}, - dictWord{11, 0, 129}, - dictWord{ - 11, - 0, - 240, - }, - dictWord{12, 0, 31}, - dictWord{12, 0, 66}, - dictWord{12, 0, 222}, - dictWord{12, 0, 269}, - dictWord{12, 0, 599}, - dictWord{12, 0, 684}, - dictWord{12, 0, 689}, - dictWord{12, 0, 691}, - dictWord{142, 0, 345}, - dictWord{135, 0, 1834}, - dictWord{4, 11, 705}, - dictWord{7, 11, 615}, - dictWord{138, 11, 251}, - dictWord{ - 136, - 11, - 345, - }, - dictWord{137, 0, 527}, - dictWord{6, 0, 98}, - dictWord{7, 0, 702}, - dictWord{135, 0, 991}, - dictWord{11, 0, 576}, - dictWord{14, 0, 74}, - dictWord{7, 10, 196}, - dictWord{10, 10, 765}, - dictWord{11, 10, 347}, - dictWord{11, 10, 552}, - dictWord{11, 10, 790}, - dictWord{12, 10, 263}, - dictWord{13, 10, 246}, - dictWord{ - 13, - 10, - 270, - }, - dictWord{13, 10, 395}, - dictWord{14, 10, 176}, - dictWord{14, 10, 190}, - dictWord{14, 10, 398}, - dictWord{14, 10, 412}, - dictWord{15, 10, 32}, - dictWord{ - 15, - 10, - 63, - }, - dictWord{16, 10, 88}, - dictWord{147, 10, 105}, - dictWord{134, 11, 90}, - dictWord{13, 0, 84}, - dictWord{141, 0, 122}, - dictWord{6, 0, 37}, - dictWord{ - 7, - 0, - 299, - }, - dictWord{7, 0, 1666}, - dictWord{8, 0, 195}, - dictWord{8, 0, 316}, - dictWord{9, 0, 178}, - dictWord{9, 0, 276}, - dictWord{9, 0, 339}, - dictWord{9, 0, 536}, - dictWord{ - 10, - 0, - 102, - }, - dictWord{10, 0, 362}, - dictWord{10, 0, 785}, - dictWord{11, 0, 55}, - dictWord{11, 0, 149}, - dictWord{11, 0, 773}, - dictWord{13, 0, 416}, - dictWord{ - 13, - 0, - 419, - }, - dictWord{14, 0, 38}, - dictWord{14, 0, 41}, - dictWord{142, 0, 210}, - dictWord{5, 10, 381}, - dictWord{135, 10, 1792}, - dictWord{7, 11, 813}, - dictWord{ - 12, - 11, - 497, - }, - dictWord{141, 11, 56}, - dictWord{7, 10, 616}, - dictWord{138, 10, 413}, - dictWord{133, 0, 645}, - dictWord{6, 11, 125}, - dictWord{135, 11, 1277}, - dictWord{132, 0, 290}, - dictWord{6, 0, 70}, - dictWord{7, 0, 1292}, - dictWord{10, 0, 762}, - dictWord{139, 0, 288}, - dictWord{6, 10, 120}, - dictWord{7, 10, 1188}, - dictWord{ - 7, - 10, - 1710, - }, - dictWord{8, 10, 286}, - dictWord{9, 10, 667}, - dictWord{11, 10, 592}, - dictWord{139, 10, 730}, - dictWord{135, 11, 1784}, - dictWord{7, 0, 1315}, - dictWord{135, 11, 1315}, - dictWord{134, 0, 1955}, - dictWord{135, 10, 1146}, - dictWord{7, 0, 131}, - dictWord{7, 0, 422}, - dictWord{8, 0, 210}, - dictWord{ - 140, - 0, - 573, - }, - dictWord{4, 10, 352}, - dictWord{135, 10, 687}, - dictWord{139, 0, 797}, - dictWord{143, 0, 38}, - dictWord{14, 0, 179}, - dictWord{15, 0, 151}, - dictWord{ - 150, - 0, - 11, - }, - dictWord{7, 0, 488}, - dictWord{4, 10, 192}, - dictWord{5, 10, 49}, - dictWord{6, 10, 200}, - dictWord{6, 10, 293}, - dictWord{134, 10, 1696}, - dictWord{ - 132, - 0, - 936, - }, - dictWord{135, 11, 703}, - dictWord{6, 11, 160}, - dictWord{7, 11, 1106}, - dictWord{9, 11, 770}, - dictWord{10, 11, 618}, - dictWord{11, 11, 112}, - dictWord{ - 140, - 11, - 413, - }, - dictWord{5, 0, 453}, - dictWord{134, 0, 441}, - dictWord{135, 0, 595}, - dictWord{132, 10, 650}, - dictWord{132, 10, 147}, - dictWord{6, 0, 991}, - dictWord{6, 0, 1182}, - dictWord{12, 11, 271}, - dictWord{145, 11, 109}, - dictWord{133, 10, 934}, - dictWord{140, 11, 221}, - dictWord{132, 0, 653}, - dictWord{ - 7, - 0, - 505, - }, - dictWord{135, 0, 523}, - dictWord{134, 0, 903}, - dictWord{135, 11, 479}, - dictWord{7, 11, 304}, - dictWord{9, 11, 646}, - dictWord{9, 11, 862}, - dictWord{ - 10, - 11, - 262, - }, - dictWord{11, 11, 696}, - dictWord{12, 11, 208}, - dictWord{15, 11, 79}, - dictWord{147, 11, 108}, - dictWord{146, 0, 80}, - dictWord{135, 11, 981}, - dictWord{142, 0, 432}, - dictWord{132, 0, 314}, - dictWord{137, 11, 152}, - dictWord{7, 0, 1368}, - dictWord{8, 0, 232}, - dictWord{8, 0, 361}, - dictWord{10, 0, 682}, - dictWord{138, 0, 742}, - dictWord{135, 11, 1586}, - dictWord{9, 0, 534}, - dictWord{4, 11, 434}, - dictWord{11, 11, 663}, - dictWord{12, 11, 210}, - dictWord{13, 11, 166}, - dictWord{13, 11, 310}, - dictWord{14, 11, 373}, - dictWord{147, 11, 43}, - dictWord{7, 11, 1091}, - dictWord{135, 11, 1765}, - dictWord{6, 11, 550}, - dictWord{ - 135, - 11, - 652, - }, - dictWord{137, 0, 27}, - dictWord{142, 0, 12}, - dictWord{4, 10, 637}, - dictWord{5, 11, 553}, - dictWord{7, 11, 766}, - dictWord{138, 11, 824}, - dictWord{ - 7, - 11, - 737, - }, - dictWord{8, 11, 298}, - dictWord{136, 11, 452}, - dictWord{7, 0, 736}, - dictWord{139, 0, 264}, - dictWord{134, 0, 1657}, - dictWord{133, 11, 292}, - dictWord{138, 11, 135}, - dictWord{6, 0, 844}, - dictWord{134, 0, 1117}, - dictWord{135, 0, 127}, - dictWord{9, 10, 867}, - dictWord{138, 10, 837}, - dictWord{ - 6, - 0, - 1184, - }, - dictWord{134, 0, 1208}, - dictWord{134, 0, 1294}, - dictWord{136, 0, 364}, - dictWord{6, 0, 1415}, - dictWord{7, 0, 1334}, - dictWord{11, 0, 125}, - dictWord{ - 6, - 10, - 170, - }, - dictWord{7, 11, 393}, - dictWord{8, 10, 395}, - dictWord{8, 10, 487}, - dictWord{10, 11, 603}, - dictWord{11, 11, 206}, - dictWord{141, 10, 147}, - dictWord{137, 11, 748}, - dictWord{4, 11, 912}, - dictWord{137, 11, 232}, - dictWord{4, 10, 535}, - dictWord{136, 10, 618}, - dictWord{137, 0, 792}, - dictWord{ - 7, - 11, - 1973, - }, - dictWord{136, 11, 716}, - dictWord{135, 11, 98}, - dictWord{5, 0, 909}, - dictWord{9, 0, 849}, - dictWord{138, 0, 805}, - dictWord{4, 0, 630}, - dictWord{ - 132, - 0, - 699, - }, - dictWord{5, 11, 733}, - dictWord{14, 11, 103}, - dictWord{150, 10, 23}, - dictWord{12, 11, 158}, - dictWord{18, 11, 8}, - dictWord{19, 11, 62}, - dictWord{ - 20, - 11, - 6, - }, - dictWord{22, 11, 4}, - dictWord{23, 11, 2}, - dictWord{151, 11, 9}, - dictWord{132, 0, 968}, - dictWord{132, 10, 778}, - dictWord{132, 10, 46}, - dictWord{5, 10, 811}, - dictWord{6, 10, 1679}, - dictWord{6, 10, 1714}, - dictWord{135, 10, 2032}, - dictWord{6, 0, 1446}, - dictWord{7, 10, 1458}, - dictWord{9, 10, 407}, - dictWord{ - 139, - 10, - 15, - }, - dictWord{7, 0, 206}, - dictWord{7, 0, 397}, - dictWord{7, 0, 621}, - dictWord{7, 0, 640}, - dictWord{8, 0, 124}, - dictWord{8, 0, 619}, - dictWord{9, 0, 305}, - dictWord{ - 9, - 0, - 643, - }, - dictWord{10, 0, 264}, - dictWord{10, 0, 628}, - dictWord{11, 0, 40}, - dictWord{12, 0, 349}, - dictWord{13, 0, 134}, - dictWord{13, 0, 295}, - dictWord{ - 14, - 0, - 155, - }, - dictWord{15, 0, 120}, - dictWord{18, 0, 105}, - dictWord{6, 10, 34}, - dictWord{7, 10, 1089}, - dictWord{8, 10, 708}, - dictWord{8, 10, 721}, - dictWord{9, 10, 363}, - dictWord{148, 10, 98}, - dictWord{4, 0, 262}, - dictWord{5, 0, 641}, - dictWord{135, 0, 342}, - dictWord{137, 11, 72}, - dictWord{4, 0, 99}, - dictWord{6, 0, 250}, - dictWord{ - 6, - 0, - 346, - }, - dictWord{8, 0, 127}, - dictWord{138, 0, 81}, - dictWord{132, 0, 915}, - dictWord{5, 0, 75}, - dictWord{9, 0, 517}, - dictWord{10, 0, 470}, - dictWord{12, 0, 155}, - dictWord{141, 0, 224}, - dictWord{132, 10, 462}, - dictWord{11, 11, 600}, - dictWord{11, 11, 670}, - dictWord{141, 11, 245}, - dictWord{142, 0, 83}, - dictWord{ - 5, - 10, - 73, - }, - dictWord{6, 10, 23}, - dictWord{134, 10, 338}, - dictWord{6, 0, 1031}, - dictWord{139, 11, 923}, - dictWord{7, 11, 164}, - dictWord{7, 11, 1571}, - dictWord{ - 9, - 11, - 107, - }, - dictWord{140, 11, 225}, - dictWord{134, 0, 1470}, - dictWord{133, 0, 954}, - dictWord{6, 0, 304}, - dictWord{8, 0, 418}, - dictWord{10, 0, 345}, - dictWord{ - 11, - 0, - 341, - }, - dictWord{139, 0, 675}, - dictWord{9, 0, 410}, - dictWord{139, 0, 425}, - dictWord{4, 11, 27}, - dictWord{5, 11, 484}, - dictWord{5, 11, 510}, - dictWord{6, 11, 434}, - dictWord{7, 11, 1000}, - dictWord{7, 11, 1098}, - dictWord{8, 11, 2}, - dictWord{136, 11, 200}, - dictWord{134, 0, 734}, - dictWord{140, 11, 257}, - dictWord{ - 7, - 10, - 725, - }, - dictWord{8, 10, 498}, - dictWord{139, 10, 268}, - dictWord{134, 0, 1822}, - dictWord{135, 0, 1798}, - dictWord{135, 10, 773}, - dictWord{132, 11, 460}, - dictWord{4, 11, 932}, - dictWord{133, 11, 891}, - dictWord{134, 0, 14}, - dictWord{132, 10, 583}, - dictWord{7, 10, 1462}, - dictWord{8, 11, 625}, - dictWord{ - 139, - 10, - 659, - }, - dictWord{5, 0, 113}, - dictWord{6, 0, 243}, - dictWord{6, 0, 1708}, - dictWord{7, 0, 1865}, - dictWord{11, 0, 161}, - dictWord{16, 0, 37}, - dictWord{17, 0, 99}, - dictWord{133, 10, 220}, - dictWord{134, 11, 76}, - dictWord{5, 11, 461}, - dictWord{135, 11, 1925}, - dictWord{140, 0, 69}, - dictWord{8, 11, 92}, - dictWord{ - 137, - 11, - 221, - }, - dictWord{139, 10, 803}, - dictWord{132, 10, 544}, - dictWord{4, 0, 274}, - dictWord{134, 0, 922}, - dictWord{132, 0, 541}, - dictWord{5, 0, 627}, - dictWord{ - 6, - 10, - 437, - }, - dictWord{6, 10, 564}, - dictWord{11, 10, 181}, - dictWord{141, 10, 183}, - dictWord{135, 10, 1192}, - dictWord{7, 0, 166}, - dictWord{132, 11, 763}, - dictWord{133, 11, 253}, - dictWord{134, 0, 849}, - dictWord{9, 11, 73}, - dictWord{10, 11, 110}, - dictWord{14, 11, 185}, - dictWord{145, 11, 119}, - dictWord{5, 11, 212}, - dictWord{12, 11, 35}, - dictWord{141, 11, 382}, - dictWord{133, 0, 717}, - dictWord{137, 0, 304}, - dictWord{136, 0, 600}, - dictWord{133, 0, 654}, - dictWord{ - 6, - 0, - 273, - }, - dictWord{10, 0, 188}, - dictWord{13, 0, 377}, - dictWord{146, 0, 77}, - dictWord{4, 10, 790}, - dictWord{5, 10, 273}, - dictWord{134, 10, 394}, - dictWord{ - 132, - 0, - 543, - }, - dictWord{135, 0, 410}, - dictWord{11, 0, 98}, - dictWord{11, 0, 524}, - dictWord{141, 0, 87}, - dictWord{132, 0, 941}, - dictWord{135, 11, 1175}, - dictWord{ - 4, - 0, - 250, - }, - dictWord{7, 0, 1612}, - dictWord{11, 0, 186}, - dictWord{12, 0, 133}, - dictWord{6, 10, 127}, - dictWord{7, 10, 1511}, - dictWord{8, 10, 613}, - dictWord{ - 12, - 10, - 495, - }, - dictWord{12, 10, 586}, - dictWord{12, 10, 660}, - dictWord{12, 10, 668}, - dictWord{14, 10, 385}, - dictWord{15, 10, 118}, - dictWord{17, 10, 20}, - dictWord{ - 146, - 10, - 98, - }, - dictWord{6, 0, 1785}, - dictWord{133, 11, 816}, - dictWord{134, 0, 1339}, - dictWord{7, 0, 961}, - dictWord{7, 0, 1085}, - dictWord{7, 0, 1727}, - dictWord{ - 8, - 0, - 462, - }, - dictWord{6, 10, 230}, - dictWord{135, 11, 1727}, - dictWord{9, 0, 636}, - dictWord{135, 10, 1954}, - dictWord{132, 0, 780}, - dictWord{5, 11, 869}, - dictWord{5, 11, 968}, - dictWord{6, 11, 1626}, - dictWord{8, 11, 734}, - dictWord{136, 11, 784}, - dictWord{4, 11, 542}, - dictWord{6, 11, 1716}, - dictWord{6, 11, 1727}, - dictWord{7, 11, 1082}, - dictWord{7, 11, 1545}, - dictWord{8, 11, 56}, - dictWord{8, 11, 118}, - dictWord{8, 11, 412}, - dictWord{8, 11, 564}, - dictWord{9, 11, 888}, - dictWord{9, 11, 908}, - dictWord{10, 11, 50}, - dictWord{10, 11, 423}, - dictWord{11, 11, 685}, - dictWord{11, 11, 697}, - dictWord{11, 11, 933}, - dictWord{12, 11, 299}, - dictWord{13, 11, 126}, - dictWord{13, 11, 136}, - dictWord{13, 11, 170}, - dictWord{141, 11, 190}, - dictWord{134, 11, 226}, - dictWord{4, 11, 232}, - dictWord{ - 9, - 11, - 202, - }, - dictWord{10, 11, 474}, - dictWord{140, 11, 433}, - dictWord{137, 11, 500}, - dictWord{5, 0, 529}, - dictWord{136, 10, 68}, - dictWord{132, 10, 654}, - dictWord{ - 4, - 10, - 156, - }, - dictWord{7, 10, 998}, - dictWord{7, 10, 1045}, - dictWord{7, 10, 1860}, - dictWord{9, 10, 48}, - dictWord{9, 10, 692}, - dictWord{11, 10, 419}, - dictWord{139, 10, 602}, - dictWord{7, 0, 1276}, - dictWord{8, 0, 474}, - dictWord{9, 0, 652}, - dictWord{6, 11, 108}, - dictWord{7, 11, 1003}, - dictWord{7, 11, 1181}, - dictWord{136, 11, 343}, - dictWord{7, 11, 1264}, - dictWord{7, 11, 1678}, - dictWord{11, 11, 945}, - dictWord{12, 11, 341}, - dictWord{12, 11, 471}, - dictWord{ - 140, - 11, - 569, - }, - dictWord{134, 11, 1712}, - dictWord{5, 0, 948}, - dictWord{12, 0, 468}, - dictWord{19, 0, 96}, - dictWord{148, 0, 24}, - dictWord{4, 11, 133}, - dictWord{ - 7, - 11, - 711, - }, - dictWord{7, 11, 1298}, - dictWord{7, 11, 1585}, - dictWord{135, 11, 1929}, - dictWord{6, 0, 753}, - dictWord{140, 0, 657}, - dictWord{139, 0, 941}, - dictWord{ - 6, - 11, - 99, - }, - dictWord{7, 11, 1808}, - dictWord{145, 11, 57}, - dictWord{6, 11, 574}, - dictWord{7, 11, 428}, - dictWord{7, 11, 1250}, - dictWord{10, 11, 669}, - dictWord{ - 11, - 11, - 485, - }, - dictWord{11, 11, 840}, - dictWord{12, 11, 300}, - dictWord{142, 11, 250}, - dictWord{4, 0, 532}, - dictWord{5, 0, 706}, - dictWord{135, 0, 662}, - dictWord{ - 5, - 0, - 837, - }, - dictWord{6, 0, 1651}, - dictWord{139, 0, 985}, - dictWord{7, 0, 1861}, - dictWord{9, 10, 197}, - dictWord{10, 10, 300}, - dictWord{12, 10, 473}, - dictWord{ - 13, - 10, - 90, - }, - dictWord{141, 10, 405}, - dictWord{137, 11, 252}, - dictWord{6, 11, 323}, - dictWord{135, 11, 1564}, - dictWord{4, 0, 330}, - dictWord{4, 0, 863}, - dictWord{7, 0, 933}, - dictWord{7, 0, 2012}, - dictWord{8, 0, 292}, - dictWord{7, 11, 461}, - dictWord{8, 11, 775}, - dictWord{138, 11, 435}, - dictWord{132, 10, 606}, - dictWord{ - 4, - 11, - 655, - }, - dictWord{7, 11, 850}, - dictWord{17, 11, 75}, - dictWord{146, 11, 137}, - dictWord{135, 0, 767}, - dictWord{7, 10, 1978}, - dictWord{136, 10, 676}, - dictWord{132, 0, 641}, - dictWord{135, 11, 1559}, - dictWord{134, 0, 1233}, - dictWord{137, 0, 242}, - dictWord{17, 0, 114}, - dictWord{4, 10, 361}, - dictWord{ - 133, - 10, - 315, - }, - dictWord{137, 0, 883}, - dictWord{132, 10, 461}, - dictWord{138, 0, 274}, - dictWord{134, 0, 2008}, - dictWord{134, 0, 1794}, - dictWord{4, 0, 703}, - dictWord{135, 0, 207}, - dictWord{12, 0, 285}, - dictWord{132, 10, 472}, - dictWord{132, 0, 571}, - dictWord{5, 0, 873}, - dictWord{5, 0, 960}, - dictWord{8, 0, 823}, - dictWord{9, 0, 881}, - dictWord{136, 11, 577}, - dictWord{7, 0, 617}, - dictWord{10, 0, 498}, - dictWord{11, 0, 501}, - dictWord{12, 0, 16}, - dictWord{140, 0, 150}, - dictWord{ - 138, - 10, - 747, - }, - dictWord{132, 0, 431}, - dictWord{133, 10, 155}, - dictWord{11, 0, 283}, - dictWord{11, 0, 567}, - dictWord{7, 10, 163}, - dictWord{8, 10, 319}, - dictWord{ - 9, - 10, - 402, - }, - dictWord{10, 10, 24}, - dictWord{10, 10, 681}, - dictWord{11, 10, 200}, - dictWord{12, 10, 253}, - dictWord{12, 10, 410}, - dictWord{142, 10, 219}, - dictWord{4, 11, 413}, - dictWord{5, 11, 677}, - dictWord{8, 11, 432}, - dictWord{140, 11, 280}, - dictWord{9, 0, 401}, - dictWord{5, 10, 475}, - dictWord{7, 10, 1780}, - dictWord{11, 10, 297}, - dictWord{11, 10, 558}, - dictWord{14, 10, 322}, - dictWord{147, 10, 76}, - dictWord{6, 0, 781}, - dictWord{9, 0, 134}, - dictWord{10, 0, 2}, - dictWord{ - 10, - 0, - 27, - }, - dictWord{10, 0, 333}, - dictWord{11, 0, 722}, - dictWord{143, 0, 1}, - dictWord{5, 0, 33}, - dictWord{6, 0, 470}, - dictWord{139, 0, 424}, - dictWord{ - 135, - 0, - 2006, - }, - dictWord{12, 0, 783}, - dictWord{135, 10, 1956}, - dictWord{136, 0, 274}, - dictWord{135, 0, 1882}, - dictWord{132, 0, 794}, - dictWord{135, 0, 1848}, - dictWord{5, 10, 944}, - dictWord{134, 10, 1769}, - dictWord{6, 0, 47}, - dictWord{7, 0, 90}, - dictWord{7, 0, 664}, - dictWord{7, 0, 830}, - dictWord{7, 0, 1380}, - dictWord{ - 7, - 0, - 2025, - }, - dictWord{8, 0, 448}, - dictWord{136, 0, 828}, - dictWord{132, 10, 144}, - dictWord{134, 0, 1199}, - dictWord{4, 11, 395}, - dictWord{139, 11, 762}, - dictWord{135, 11, 1504}, - dictWord{9, 0, 417}, - dictWord{137, 0, 493}, - dictWord{9, 11, 174}, - dictWord{10, 11, 164}, - dictWord{11, 11, 440}, - dictWord{11, 11, 841}, - dictWord{143, 11, 98}, - dictWord{134, 11, 426}, - dictWord{139, 11, 1002}, - dictWord{134, 0, 295}, - dictWord{134, 0, 816}, - dictWord{6, 10, 247}, - dictWord{ - 137, - 10, - 555, - }, - dictWord{133, 0, 1019}, - dictWord{4, 0, 620}, - dictWord{5, 11, 476}, - dictWord{10, 10, 280}, - dictWord{138, 10, 797}, - dictWord{139, 0, 464}, - dictWord{5, 11, 76}, - dictWord{6, 11, 458}, - dictWord{6, 11, 497}, - dictWord{7, 11, 764}, - dictWord{7, 11, 868}, - dictWord{9, 11, 658}, - dictWord{10, 11, 594}, - dictWord{ - 11, - 11, - 173, - }, - dictWord{11, 11, 566}, - dictWord{12, 11, 20}, - dictWord{12, 11, 338}, - dictWord{141, 11, 200}, - dictWord{134, 0, 208}, - dictWord{4, 11, 526}, - dictWord{7, 11, 1029}, - dictWord{135, 11, 1054}, - dictWord{132, 11, 636}, - dictWord{6, 11, 233}, - dictWord{7, 11, 660}, - dictWord{7, 11, 1124}, - dictWord{ - 17, - 11, - 31, - }, - dictWord{19, 11, 22}, - dictWord{151, 11, 14}, - dictWord{10, 0, 442}, - dictWord{133, 10, 428}, - dictWord{10, 0, 930}, - dictWord{140, 0, 778}, - dictWord{ - 6, - 0, - 68, - }, - dictWord{7, 0, 448}, - dictWord{7, 0, 1629}, - dictWord{7, 0, 1769}, - dictWord{7, 0, 1813}, - dictWord{8, 0, 442}, - dictWord{8, 0, 516}, - dictWord{9, 0, 710}, - dictWord{ - 10, - 0, - 282, - }, - dictWord{10, 0, 722}, - dictWord{7, 10, 1717}, - dictWord{138, 10, 546}, - dictWord{134, 0, 1128}, - dictWord{11, 0, 844}, - dictWord{12, 0, 104}, - dictWord{140, 0, 625}, - dictWord{4, 11, 432}, - dictWord{135, 11, 824}, - dictWord{138, 10, 189}, - dictWord{133, 0, 787}, - dictWord{133, 10, 99}, - dictWord{ - 4, - 11, - 279, - }, - dictWord{7, 11, 301}, - dictWord{137, 11, 362}, - dictWord{8, 0, 491}, - dictWord{4, 10, 397}, - dictWord{136, 10, 555}, - dictWord{4, 11, 178}, - dictWord{ - 133, - 11, - 399, - }, - dictWord{134, 0, 711}, - dictWord{144, 0, 9}, - dictWord{4, 0, 403}, - dictWord{5, 0, 441}, - dictWord{7, 0, 450}, - dictWord{10, 0, 840}, - dictWord{11, 0, 101}, - dictWord{12, 0, 193}, - dictWord{141, 0, 430}, - dictWord{135, 11, 1246}, - dictWord{12, 10, 398}, - dictWord{20, 10, 39}, - dictWord{21, 10, 11}, - dictWord{ - 150, - 10, - 41, - }, - dictWord{4, 10, 485}, - dictWord{7, 10, 353}, - dictWord{135, 10, 1523}, - dictWord{6, 10, 366}, - dictWord{7, 10, 1384}, - dictWord{7, 10, 1601}, - dictWord{ - 135, - 11, - 1912, - }, - dictWord{7, 0, 396}, - dictWord{10, 0, 160}, - dictWord{135, 11, 396}, - dictWord{137, 10, 282}, - dictWord{134, 11, 1692}, - dictWord{4, 10, 157}, - dictWord{5, 10, 471}, - dictWord{6, 11, 202}, - dictWord{10, 11, 448}, - dictWord{11, 11, 208}, - dictWord{12, 11, 360}, - dictWord{17, 11, 117}, - dictWord{ - 17, - 11, - 118, - }, - dictWord{18, 11, 27}, - dictWord{148, 11, 67}, - dictWord{133, 0, 679}, - dictWord{137, 0, 326}, - dictWord{136, 10, 116}, - dictWord{7, 11, 872}, - dictWord{ - 10, - 11, - 516, - }, - dictWord{139, 11, 167}, - dictWord{132, 11, 224}, - dictWord{5, 11, 546}, - dictWord{7, 11, 35}, - dictWord{8, 11, 11}, - dictWord{8, 11, 12}, - dictWord{ - 9, - 11, - 315, - }, - dictWord{9, 11, 533}, - dictWord{10, 11, 802}, - dictWord{11, 11, 166}, - dictWord{12, 11, 525}, - dictWord{142, 11, 243}, - dictWord{7, 0, 1128}, - dictWord{135, 11, 1920}, - dictWord{5, 11, 241}, - dictWord{8, 11, 242}, - dictWord{9, 11, 451}, - dictWord{10, 11, 667}, - dictWord{11, 11, 598}, - dictWord{ - 140, - 11, - 429, - }, - dictWord{6, 0, 737}, - dictWord{5, 10, 160}, - dictWord{7, 10, 363}, - dictWord{7, 10, 589}, - dictWord{10, 10, 170}, - dictWord{141, 10, 55}, - dictWord{ - 135, - 0, - 1796, - }, - dictWord{142, 11, 254}, - dictWord{4, 0, 574}, - dictWord{7, 0, 350}, - dictWord{7, 0, 1024}, - dictWord{8, 0, 338}, - dictWord{9, 0, 677}, - dictWord{138, 0, 808}, - dictWord{134, 0, 1096}, - dictWord{137, 11, 516}, - dictWord{7, 0, 405}, - dictWord{10, 0, 491}, - dictWord{4, 10, 108}, - dictWord{4, 11, 366}, - dictWord{ - 139, - 10, - 498, - }, - dictWord{11, 11, 337}, - dictWord{142, 11, 303}, - dictWord{134, 11, 1736}, - dictWord{7, 0, 1081}, - dictWord{140, 11, 364}, - dictWord{7, 10, 1005}, - dictWord{140, 10, 609}, - dictWord{7, 0, 1676}, - dictWord{4, 10, 895}, - dictWord{133, 10, 772}, - dictWord{135, 0, 2037}, - dictWord{6, 0, 1207}, - dictWord{ - 11, - 11, - 916, - }, - dictWord{142, 11, 419}, - dictWord{14, 11, 140}, - dictWord{148, 11, 41}, - dictWord{6, 11, 331}, - dictWord{136, 11, 623}, - dictWord{9, 0, 944}, - dictWord{ - 9, - 0, - 969, - }, - dictWord{9, 0, 1022}, - dictWord{12, 0, 913}, - dictWord{12, 0, 936}, - dictWord{15, 0, 177}, - dictWord{15, 0, 193}, - dictWord{4, 10, 926}, - dictWord{ - 133, - 10, - 983, - }, - dictWord{5, 0, 354}, - dictWord{135, 11, 506}, - dictWord{8, 0, 598}, - dictWord{9, 0, 664}, - dictWord{138, 0, 441}, - dictWord{4, 11, 640}, - dictWord{ - 133, - 11, - 513, - }, - dictWord{137, 0, 297}, - dictWord{132, 10, 538}, - dictWord{6, 10, 294}, - dictWord{7, 10, 1267}, - dictWord{136, 10, 624}, - dictWord{7, 0, 1772}, - dictWord{ - 7, - 11, - 1888, - }, - dictWord{8, 11, 289}, - dictWord{11, 11, 45}, - dictWord{12, 11, 278}, - dictWord{140, 11, 537}, - dictWord{135, 10, 1325}, - dictWord{138, 0, 751}, - dictWord{141, 0, 37}, - dictWord{134, 0, 1828}, - dictWord{132, 10, 757}, - dictWord{132, 11, 394}, - dictWord{6, 0, 257}, - dictWord{135, 0, 1522}, - dictWord{ - 4, - 0, - 582, - }, - dictWord{9, 0, 191}, - dictWord{135, 11, 1931}, - dictWord{7, 11, 574}, - dictWord{7, 11, 1719}, - dictWord{137, 11, 145}, - dictWord{132, 11, 658}, - dictWord{10, 0, 790}, - dictWord{132, 11, 369}, - dictWord{9, 11, 781}, - dictWord{10, 11, 144}, - dictWord{11, 11, 385}, - dictWord{13, 11, 161}, - dictWord{13, 11, 228}, - dictWord{13, 11, 268}, - dictWord{148, 11, 107}, - dictWord{8, 0, 469}, - dictWord{10, 0, 47}, - dictWord{136, 11, 374}, - dictWord{6, 0, 306}, - dictWord{7, 0, 1140}, - dictWord{7, 0, 1340}, - dictWord{8, 0, 133}, - dictWord{138, 0, 449}, - dictWord{139, 0, 1011}, - dictWord{7, 10, 1875}, - dictWord{139, 10, 124}, - dictWord{ - 4, - 11, - 344, - }, - dictWord{6, 11, 498}, - dictWord{139, 11, 323}, - dictWord{137, 0, 299}, - dictWord{132, 0, 837}, - dictWord{133, 11, 906}, - dictWord{5, 0, 329}, - dictWord{ - 8, - 0, - 260, - }, - dictWord{138, 0, 10}, - dictWord{134, 0, 1320}, - dictWord{4, 0, 657}, - dictWord{146, 0, 158}, - dictWord{135, 0, 1191}, - dictWord{152, 0, 7}, - dictWord{ - 6, - 0, - 1939, - }, - dictWord{8, 0, 974}, - dictWord{138, 0, 996}, - dictWord{135, 0, 1665}, - dictWord{11, 11, 126}, - dictWord{139, 11, 287}, - dictWord{143, 0, 8}, - dictWord{ - 14, - 11, - 149, - }, - dictWord{14, 11, 399}, - dictWord{143, 11, 57}, - dictWord{5, 0, 66}, - dictWord{7, 0, 1896}, - dictWord{136, 0, 288}, - dictWord{7, 0, 175}, - dictWord{ - 10, - 0, - 494, - }, - dictWord{5, 10, 150}, - dictWord{8, 10, 603}, - dictWord{9, 10, 593}, - dictWord{9, 10, 634}, - dictWord{10, 10, 173}, - dictWord{11, 10, 462}, - dictWord{ - 11, - 10, - 515, - }, - dictWord{13, 10, 216}, - dictWord{13, 10, 288}, - dictWord{142, 10, 400}, - dictWord{134, 0, 1643}, - dictWord{136, 11, 21}, - dictWord{4, 0, 21}, - dictWord{ - 5, - 0, - 91, - }, - dictWord{5, 0, 648}, - dictWord{5, 0, 750}, - dictWord{5, 0, 781}, - dictWord{6, 0, 54}, - dictWord{6, 0, 112}, - dictWord{6, 0, 402}, - dictWord{6, 0, 1732}, - dictWord{ - 7, - 0, - 315, - }, - dictWord{7, 0, 749}, - dictWord{7, 0, 1427}, - dictWord{7, 0, 1900}, - dictWord{9, 0, 78}, - dictWord{9, 0, 508}, - dictWord{10, 0, 611}, - dictWord{10, 0, 811}, - dictWord{11, 0, 510}, - dictWord{11, 0, 728}, - dictWord{13, 0, 36}, - dictWord{14, 0, 39}, - dictWord{16, 0, 83}, - dictWord{17, 0, 124}, - dictWord{148, 0, 30}, - dictWord{ - 4, - 0, - 668, - }, - dictWord{136, 0, 570}, - dictWord{10, 0, 322}, - dictWord{10, 0, 719}, - dictWord{139, 0, 407}, - dictWord{135, 11, 1381}, - dictWord{136, 11, 193}, - dictWord{12, 10, 108}, - dictWord{141, 10, 291}, - dictWord{132, 11, 616}, - dictWord{136, 11, 692}, - dictWord{8, 0, 125}, - dictWord{8, 0, 369}, - dictWord{8, 0, 524}, - dictWord{10, 0, 486}, - dictWord{11, 0, 13}, - dictWord{11, 0, 381}, - dictWord{11, 0, 736}, - dictWord{11, 0, 766}, - dictWord{11, 0, 845}, - dictWord{13, 0, 114}, - dictWord{ - 13, - 0, - 292, - }, - dictWord{142, 0, 47}, - dictWord{134, 0, 1247}, - dictWord{6, 0, 1684}, - dictWord{6, 0, 1731}, - dictWord{7, 0, 356}, - dictWord{8, 0, 54}, - dictWord{8, 0, 221}, - dictWord{9, 0, 225}, - dictWord{9, 0, 356}, - dictWord{10, 0, 77}, - dictWord{10, 0, 446}, - dictWord{10, 0, 731}, - dictWord{12, 0, 404}, - dictWord{141, 0, 491}, - dictWord{135, 10, 1777}, - dictWord{4, 11, 305}, - dictWord{4, 10, 493}, - dictWord{144, 10, 55}, - dictWord{4, 0, 951}, - dictWord{6, 0, 1809}, - dictWord{6, 0, 1849}, - dictWord{8, 0, 846}, - dictWord{8, 0, 866}, - dictWord{8, 0, 899}, - dictWord{10, 0, 896}, - dictWord{12, 0, 694}, - dictWord{142, 0, 468}, - dictWord{5, 11, 214}, - dictWord{ - 7, - 11, - 603, - }, - dictWord{8, 11, 611}, - dictWord{9, 11, 686}, - dictWord{10, 11, 88}, - dictWord{11, 11, 459}, - dictWord{11, 11, 496}, - dictWord{12, 11, 463}, - dictWord{ - 12, - 11, - 590, - }, - dictWord{13, 11, 0}, - dictWord{142, 11, 214}, - dictWord{132, 0, 411}, - dictWord{4, 0, 80}, - dictWord{133, 0, 44}, - dictWord{140, 11, 74}, - dictWord{ - 143, - 0, - 31, - }, - dictWord{7, 0, 669}, - dictWord{6, 10, 568}, - dictWord{7, 10, 1804}, - dictWord{8, 10, 362}, - dictWord{8, 10, 410}, - dictWord{8, 10, 830}, - dictWord{9, 10, 514}, - dictWord{11, 10, 649}, - dictWord{142, 10, 157}, - dictWord{7, 0, 673}, - dictWord{134, 11, 1703}, - dictWord{132, 10, 625}, - dictWord{134, 0, 1303}, - dictWord{ - 5, - 0, - 299, - }, - dictWord{135, 0, 1083}, - dictWord{138, 0, 704}, - dictWord{6, 0, 275}, - dictWord{7, 0, 408}, - dictWord{6, 10, 158}, - dictWord{7, 10, 129}, - dictWord{ - 7, - 10, - 181, - }, - dictWord{8, 10, 276}, - dictWord{8, 10, 377}, - dictWord{10, 10, 523}, - dictWord{11, 10, 816}, - dictWord{12, 10, 455}, - dictWord{13, 10, 303}, - dictWord{ - 142, - 10, - 135, - }, - dictWord{4, 0, 219}, - dictWord{7, 0, 367}, - dictWord{7, 0, 1713}, - dictWord{7, 0, 1761}, - dictWord{9, 0, 86}, - dictWord{9, 0, 537}, - dictWord{10, 0, 165}, - dictWord{12, 0, 219}, - dictWord{140, 0, 561}, - dictWord{8, 0, 216}, - dictWord{4, 10, 1}, - dictWord{4, 11, 737}, - dictWord{6, 11, 317}, - dictWord{7, 10, 1143}, - dictWord{ - 7, - 10, - 1463, - }, - dictWord{9, 10, 207}, - dictWord{9, 10, 390}, - dictWord{9, 10, 467}, - dictWord{10, 11, 98}, - dictWord{11, 11, 294}, - dictWord{11, 10, 836}, - dictWord{ - 12, - 11, - 60, - }, - dictWord{12, 11, 437}, - dictWord{13, 11, 64}, - dictWord{13, 11, 380}, - dictWord{142, 11, 430}, - dictWord{6, 11, 1758}, - dictWord{8, 11, 520}, - dictWord{9, 11, 345}, - dictWord{9, 11, 403}, - dictWord{142, 11, 350}, - dictWord{5, 11, 47}, - dictWord{10, 11, 242}, - dictWord{138, 11, 579}, - dictWord{5, 11, 139}, - dictWord{7, 11, 1168}, - dictWord{138, 11, 539}, - dictWord{135, 0, 1319}, - dictWord{4, 10, 295}, - dictWord{4, 10, 723}, - dictWord{5, 10, 895}, - dictWord{ - 7, - 10, - 1031, - }, - dictWord{8, 10, 199}, - dictWord{8, 10, 340}, - dictWord{9, 10, 153}, - dictWord{9, 10, 215}, - dictWord{10, 10, 21}, - dictWord{10, 10, 59}, - dictWord{ - 10, - 10, - 80, - }, - dictWord{10, 10, 224}, - dictWord{10, 10, 838}, - dictWord{11, 10, 229}, - dictWord{11, 10, 652}, - dictWord{12, 10, 192}, - dictWord{13, 10, 146}, - dictWord{ - 142, - 10, - 91, - }, - dictWord{140, 0, 428}, - dictWord{137, 10, 51}, - dictWord{133, 0, 514}, - dictWord{5, 10, 309}, - dictWord{140, 10, 211}, - dictWord{6, 0, 1010}, - dictWord{5, 10, 125}, - dictWord{8, 10, 77}, - dictWord{138, 10, 15}, - dictWord{4, 0, 55}, - dictWord{5, 0, 301}, - dictWord{6, 0, 571}, - dictWord{142, 0, 49}, - dictWord{ - 146, - 0, - 102, - }, - dictWord{136, 11, 370}, - dictWord{4, 11, 107}, - dictWord{7, 11, 613}, - dictWord{8, 11, 358}, - dictWord{8, 11, 439}, - dictWord{8, 11, 504}, - dictWord{ - 9, - 11, - 501, - }, - dictWord{10, 11, 383}, - dictWord{139, 11, 477}, - dictWord{132, 11, 229}, - dictWord{133, 0, 364}, - dictWord{133, 10, 439}, - dictWord{4, 11, 903}, - dictWord{135, 11, 1816}, - dictWord{11, 0, 379}, - dictWord{140, 10, 76}, - dictWord{4, 0, 76}, - dictWord{4, 0, 971}, - dictWord{7, 0, 1550}, - dictWord{9, 0, 306}, - dictWord{ - 9, - 0, - 430, - }, - dictWord{9, 0, 663}, - dictWord{10, 0, 683}, - dictWord{10, 0, 921}, - dictWord{11, 0, 427}, - dictWord{11, 0, 753}, - dictWord{12, 0, 334}, - dictWord{12, 0, 442}, - dictWord{14, 0, 258}, - dictWord{14, 0, 366}, - dictWord{143, 0, 131}, - dictWord{137, 0, 52}, - dictWord{4, 11, 47}, - dictWord{6, 11, 373}, - dictWord{7, 11, 452}, - dictWord{7, 11, 543}, - dictWord{7, 11, 1714}, - dictWord{7, 11, 1856}, - dictWord{9, 11, 6}, - dictWord{11, 11, 257}, - dictWord{139, 11, 391}, - dictWord{4, 10, 8}, - dictWord{ - 7, - 10, - 1152, - }, - dictWord{7, 10, 1153}, - dictWord{7, 10, 1715}, - dictWord{9, 10, 374}, - dictWord{10, 10, 478}, - dictWord{139, 10, 648}, - dictWord{4, 11, 785}, - dictWord{133, 11, 368}, - dictWord{135, 10, 1099}, - dictWord{135, 11, 860}, - dictWord{5, 11, 980}, - dictWord{134, 11, 1754}, - dictWord{134, 0, 1258}, - dictWord{ - 6, - 0, - 1058, - }, - dictWord{6, 0, 1359}, - dictWord{7, 11, 536}, - dictWord{7, 11, 1331}, - dictWord{136, 11, 143}, - dictWord{4, 0, 656}, - dictWord{135, 0, 779}, - dictWord{136, 10, 87}, - dictWord{5, 11, 19}, - dictWord{6, 11, 533}, - dictWord{146, 11, 126}, - dictWord{7, 0, 144}, - dictWord{138, 10, 438}, - dictWord{5, 11, 395}, - dictWord{5, 11, 951}, - dictWord{134, 11, 1776}, - dictWord{135, 0, 1373}, - dictWord{7, 0, 554}, - dictWord{7, 0, 605}, - dictWord{141, 0, 10}, - dictWord{4, 10, 69}, - dictWord{ - 5, - 10, - 122, - }, - dictWord{9, 10, 656}, - dictWord{138, 10, 464}, - dictWord{5, 10, 849}, - dictWord{134, 10, 1633}, - dictWord{5, 0, 838}, - dictWord{5, 0, 841}, - dictWord{134, 0, 1649}, - dictWord{133, 0, 1012}, - dictWord{139, 10, 499}, - dictWord{7, 10, 476}, - dictWord{7, 10, 1592}, - dictWord{138, 10, 87}, - dictWord{ - 6, - 0, - 251, - }, - dictWord{7, 0, 365}, - dictWord{7, 0, 1357}, - dictWord{7, 0, 1497}, - dictWord{8, 0, 154}, - dictWord{141, 0, 281}, - dictWord{132, 11, 441}, - dictWord{ - 132, - 11, - 695, - }, - dictWord{7, 11, 497}, - dictWord{9, 11, 387}, - dictWord{147, 11, 81}, - dictWord{133, 0, 340}, - dictWord{14, 10, 283}, - dictWord{142, 11, 283}, - dictWord{ - 134, - 0, - 810, - }, - dictWord{135, 11, 1894}, - dictWord{139, 0, 495}, - dictWord{5, 11, 284}, - dictWord{6, 11, 49}, - dictWord{6, 11, 350}, - dictWord{7, 11, 1}, - dictWord{ - 7, - 11, - 377, - }, - dictWord{7, 11, 1693}, - dictWord{8, 11, 18}, - dictWord{8, 11, 678}, - dictWord{9, 11, 161}, - dictWord{9, 11, 585}, - dictWord{9, 11, 671}, - dictWord{ - 9, - 11, - 839, - }, - dictWord{11, 11, 912}, - dictWord{141, 11, 427}, - dictWord{5, 10, 859}, - dictWord{7, 10, 1160}, - dictWord{8, 10, 107}, - dictWord{9, 10, 291}, - dictWord{ - 9, - 10, - 439, - }, - dictWord{10, 10, 663}, - dictWord{11, 10, 609}, - dictWord{140, 10, 197}, - dictWord{8, 0, 261}, - dictWord{9, 0, 144}, - dictWord{9, 0, 466}, - dictWord{ - 10, - 0, - 370, - }, - dictWord{12, 0, 470}, - dictWord{13, 0, 144}, - dictWord{142, 0, 348}, - dictWord{137, 0, 897}, - dictWord{6, 0, 248}, - dictWord{9, 0, 546}, - dictWord{10, 0, 535}, - dictWord{11, 0, 681}, - dictWord{141, 0, 135}, - dictWord{4, 0, 358}, - dictWord{135, 0, 1496}, - dictWord{134, 0, 567}, - dictWord{136, 0, 445}, - dictWord{ - 4, - 10, - 117, - }, - dictWord{6, 10, 372}, - dictWord{7, 10, 1905}, - dictWord{142, 10, 323}, - dictWord{4, 10, 722}, - dictWord{139, 10, 471}, - dictWord{6, 0, 697}, - dictWord{ - 134, - 0, - 996, - }, - dictWord{7, 11, 2007}, - dictWord{9, 11, 101}, - dictWord{9, 11, 450}, - dictWord{10, 11, 66}, - dictWord{10, 11, 842}, - dictWord{11, 11, 536}, - dictWord{ - 140, - 11, - 587, - }, - dictWord{132, 0, 577}, - dictWord{134, 0, 1336}, - dictWord{9, 10, 5}, - dictWord{12, 10, 216}, - dictWord{12, 10, 294}, - dictWord{12, 10, 298}, - dictWord{12, 10, 400}, - dictWord{12, 10, 518}, - dictWord{13, 10, 229}, - dictWord{143, 10, 139}, - dictWord{6, 0, 174}, - dictWord{138, 0, 917}, - dictWord{ - 134, - 10, - 1774, - }, - dictWord{5, 10, 12}, - dictWord{7, 10, 375}, - dictWord{9, 10, 88}, - dictWord{9, 10, 438}, - dictWord{11, 11, 62}, - dictWord{139, 10, 270}, - dictWord{ - 134, - 11, - 1766, - }, - dictWord{6, 11, 0}, - dictWord{7, 11, 84}, - dictWord{7, 10, 816}, - dictWord{7, 10, 1241}, - dictWord{9, 10, 283}, - dictWord{9, 10, 520}, - dictWord{10, 10, 213}, - dictWord{10, 10, 307}, - dictWord{10, 10, 463}, - dictWord{10, 10, 671}, - dictWord{10, 10, 746}, - dictWord{11, 10, 401}, - dictWord{11, 10, 794}, - dictWord{ - 11, - 11, - 895, - }, - dictWord{12, 10, 517}, - dictWord{17, 11, 11}, - dictWord{18, 10, 107}, - dictWord{147, 10, 115}, - dictWord{5, 0, 878}, - dictWord{133, 0, 972}, - dictWord{ - 6, - 11, - 1665, - }, - dictWord{7, 11, 256}, - dictWord{7, 11, 1388}, - dictWord{138, 11, 499}, - dictWord{4, 10, 258}, - dictWord{136, 10, 639}, - dictWord{4, 11, 22}, - dictWord{5, 11, 10}, - dictWord{6, 10, 22}, - dictWord{7, 11, 848}, - dictWord{7, 10, 903}, - dictWord{7, 10, 1963}, - dictWord{8, 11, 97}, - dictWord{138, 10, 577}, - dictWord{ - 5, - 10, - 681, - }, - dictWord{136, 10, 782}, - dictWord{133, 11, 481}, - dictWord{132, 0, 351}, - dictWord{4, 10, 664}, - dictWord{5, 10, 804}, - dictWord{139, 10, 1013}, - dictWord{6, 11, 134}, - dictWord{7, 11, 437}, - dictWord{7, 11, 959}, - dictWord{9, 11, 37}, - dictWord{14, 11, 285}, - dictWord{14, 11, 371}, - dictWord{144, 11, 60}, - dictWord{7, 11, 486}, - dictWord{8, 11, 155}, - dictWord{11, 11, 93}, - dictWord{140, 11, 164}, - dictWord{132, 0, 286}, - dictWord{7, 0, 438}, - dictWord{7, 0, 627}, - dictWord{7, 0, 1516}, - dictWord{8, 0, 40}, - dictWord{9, 0, 56}, - dictWord{9, 0, 294}, - dictWord{10, 0, 30}, - dictWord{11, 0, 969}, - dictWord{11, 0, 995}, - dictWord{146, 0, 148}, - dictWord{5, 11, 591}, - dictWord{135, 11, 337}, - dictWord{134, 0, 1950}, - dictWord{133, 10, 32}, - dictWord{138, 11, 500}, - dictWord{5, 11, 380}, - dictWord{ - 5, - 11, - 650, - }, - dictWord{136, 11, 310}, - dictWord{4, 11, 364}, - dictWord{7, 11, 1156}, - dictWord{7, 11, 1187}, - dictWord{137, 11, 409}, - dictWord{4, 0, 738}, - dictWord{134, 11, 482}, - dictWord{4, 11, 781}, - dictWord{6, 11, 487}, - dictWord{7, 11, 926}, - dictWord{8, 11, 263}, - dictWord{139, 11, 500}, - dictWord{135, 11, 418}, - dictWord{6, 0, 2047}, - dictWord{10, 0, 969}, - dictWord{4, 10, 289}, - dictWord{7, 10, 629}, - dictWord{7, 10, 1698}, - dictWord{7, 10, 1711}, - dictWord{ - 140, - 10, - 215, - }, - dictWord{6, 10, 450}, - dictWord{136, 10, 109}, - dictWord{134, 0, 818}, - dictWord{136, 10, 705}, - dictWord{133, 0, 866}, - dictWord{4, 11, 94}, - dictWord{ - 135, - 11, - 1265, - }, - dictWord{132, 11, 417}, - dictWord{134, 0, 1467}, - dictWord{135, 10, 1238}, - dictWord{4, 0, 972}, - dictWord{6, 0, 1851}, - dictWord{ - 134, - 0, - 1857, - }, - dictWord{134, 0, 355}, - dictWord{133, 0, 116}, - dictWord{132, 0, 457}, - dictWord{135, 11, 1411}, - dictWord{4, 11, 408}, - dictWord{4, 11, 741}, - dictWord{135, 11, 500}, - dictWord{134, 10, 26}, - dictWord{142, 11, 137}, - dictWord{5, 0, 527}, - dictWord{6, 0, 189}, - dictWord{7, 0, 859}, - dictWord{136, 0, 267}, - dictWord{11, 0, 104}, - dictWord{11, 0, 554}, - dictWord{15, 0, 60}, - dictWord{143, 0, 125}, - dictWord{134, 0, 1613}, - dictWord{4, 10, 414}, - dictWord{5, 10, 467}, - dictWord{ - 9, - 10, - 654, - }, - dictWord{10, 10, 451}, - dictWord{12, 10, 59}, - dictWord{141, 10, 375}, - dictWord{135, 10, 17}, - dictWord{134, 0, 116}, - dictWord{135, 11, 541}, - dictWord{135, 10, 955}, - dictWord{6, 11, 73}, - dictWord{135, 11, 177}, - dictWord{133, 11, 576}, - dictWord{134, 0, 886}, - dictWord{133, 0, 487}, - dictWord{ - 4, - 0, - 86, - }, - dictWord{5, 0, 667}, - dictWord{5, 0, 753}, - dictWord{6, 0, 316}, - dictWord{6, 0, 455}, - dictWord{135, 0, 946}, - dictWord{142, 11, 231}, - dictWord{150, 0, 45}, - dictWord{134, 0, 863}, - dictWord{134, 0, 1953}, - dictWord{6, 10, 280}, - dictWord{10, 10, 502}, - dictWord{11, 10, 344}, - dictWord{140, 10, 38}, - dictWord{4, 0, 79}, - dictWord{7, 0, 1773}, - dictWord{10, 0, 450}, - dictWord{11, 0, 589}, - dictWord{13, 0, 332}, - dictWord{13, 0, 493}, - dictWord{14, 0, 183}, - dictWord{14, 0, 334}, - dictWord{14, 0, 362}, - dictWord{14, 0, 368}, - dictWord{14, 0, 376}, - dictWord{14, 0, 379}, - dictWord{19, 0, 90}, - dictWord{19, 0, 103}, - dictWord{19, 0, 127}, - dictWord{ - 148, - 0, - 90, - }, - dictWord{5, 10, 45}, - dictWord{7, 10, 1161}, - dictWord{11, 10, 448}, - dictWord{11, 10, 880}, - dictWord{13, 10, 139}, - dictWord{13, 10, 407}, - dictWord{ - 15, - 10, - 16, - }, - dictWord{17, 10, 95}, - dictWord{18, 10, 66}, - dictWord{18, 10, 88}, - dictWord{18, 10, 123}, - dictWord{149, 10, 7}, - dictWord{136, 10, 777}, - dictWord{ - 4, - 10, - 410, - }, - dictWord{135, 10, 521}, - dictWord{135, 10, 1778}, - dictWord{135, 11, 538}, - dictWord{142, 0, 381}, - dictWord{133, 11, 413}, - dictWord{ - 134, - 0, - 1142, - }, - dictWord{6, 0, 1189}, - dictWord{136, 11, 495}, - dictWord{5, 0, 663}, - dictWord{6, 0, 1962}, - dictWord{134, 0, 2003}, - dictWord{7, 11, 54}, - dictWord{ - 8, - 11, - 312, - }, - dictWord{10, 11, 191}, - dictWord{10, 11, 614}, - dictWord{140, 11, 567}, - dictWord{132, 10, 436}, - dictWord{133, 0, 846}, - dictWord{10, 0, 528}, - dictWord{11, 0, 504}, - dictWord{7, 10, 1587}, - dictWord{135, 10, 1707}, - dictWord{5, 0, 378}, - dictWord{8, 0, 465}, - dictWord{9, 0, 286}, - dictWord{10, 0, 185}, - dictWord{ - 10, - 0, - 562, - }, - dictWord{10, 0, 635}, - dictWord{11, 0, 31}, - dictWord{11, 0, 393}, - dictWord{13, 0, 312}, - dictWord{18, 0, 65}, - dictWord{18, 0, 96}, - dictWord{147, 0, 89}, - dictWord{7, 0, 899}, - dictWord{14, 0, 325}, - dictWord{6, 11, 468}, - dictWord{7, 11, 567}, - dictWord{7, 11, 1478}, - dictWord{8, 11, 530}, - dictWord{142, 11, 290}, - dictWord{7, 0, 1880}, - dictWord{9, 0, 680}, - dictWord{139, 0, 798}, - dictWord{134, 0, 1770}, - dictWord{132, 0, 648}, - dictWord{150, 11, 35}, - dictWord{5, 0, 945}, - dictWord{6, 0, 1656}, - dictWord{6, 0, 1787}, - dictWord{7, 0, 167}, - dictWord{8, 0, 824}, - dictWord{9, 0, 391}, - dictWord{10, 0, 375}, - dictWord{139, 0, 185}, - dictWord{ - 6, - 11, - 484, - }, - dictWord{135, 11, 822}, - dictWord{134, 0, 2046}, - dictWord{7, 0, 1645}, - dictWord{8, 0, 352}, - dictWord{137, 0, 249}, - dictWord{132, 0, 152}, - dictWord{6, 0, 611}, - dictWord{135, 0, 1733}, - dictWord{6, 11, 1724}, - dictWord{135, 11, 2022}, - dictWord{133, 0, 1006}, - dictWord{141, 11, 96}, - dictWord{ - 5, - 0, - 420, - }, - dictWord{135, 0, 1449}, - dictWord{146, 11, 149}, - dictWord{135, 0, 832}, - dictWord{135, 10, 663}, - dictWord{133, 0, 351}, - dictWord{5, 0, 40}, - dictWord{ - 7, - 0, - 598, - }, - dictWord{7, 0, 1638}, - dictWord{8, 0, 78}, - dictWord{9, 0, 166}, - dictWord{9, 0, 640}, - dictWord{9, 0, 685}, - dictWord{9, 0, 773}, - dictWord{11, 0, 215}, - dictWord{13, 0, 65}, - dictWord{14, 0, 172}, - dictWord{14, 0, 317}, - dictWord{145, 0, 6}, - dictWord{8, 0, 60}, - dictWord{9, 0, 343}, - dictWord{139, 0, 769}, - dictWord{ - 134, - 0, - 1354, - }, - dictWord{132, 0, 724}, - dictWord{137, 0, 745}, - dictWord{132, 11, 474}, - dictWord{7, 0, 1951}, - dictWord{8, 0, 765}, - dictWord{8, 0, 772}, - dictWord{ - 140, - 0, - 671, - }, - dictWord{7, 0, 108}, - dictWord{8, 0, 219}, - dictWord{8, 0, 388}, - dictWord{9, 0, 775}, - dictWord{11, 0, 275}, - dictWord{140, 0, 464}, - dictWord{137, 0, 639}, - dictWord{135, 10, 503}, - dictWord{133, 11, 366}, - dictWord{5, 0, 15}, - dictWord{6, 0, 56}, - dictWord{7, 0, 1758}, - dictWord{8, 0, 500}, - dictWord{9, 0, 730}, - dictWord{ - 11, - 0, - 331, - }, - dictWord{13, 0, 150}, - dictWord{14, 0, 282}, - dictWord{5, 11, 305}, - dictWord{9, 11, 560}, - dictWord{141, 11, 208}, - dictWord{4, 10, 113}, - dictWord{ - 5, - 10, - 163, - }, - dictWord{5, 10, 735}, - dictWord{7, 10, 1009}, - dictWord{9, 10, 9}, - dictWord{9, 10, 771}, - dictWord{12, 10, 90}, - dictWord{13, 10, 138}, - dictWord{ - 13, - 10, - 410, - }, - dictWord{143, 10, 128}, - dictWord{4, 10, 324}, - dictWord{138, 10, 104}, - dictWord{135, 11, 466}, - dictWord{142, 11, 27}, - dictWord{134, 0, 1886}, - dictWord{5, 0, 205}, - dictWord{6, 0, 438}, - dictWord{9, 0, 711}, - dictWord{4, 11, 480}, - dictWord{6, 11, 167}, - dictWord{6, 11, 302}, - dictWord{6, 11, 1642}, - dictWord{ - 7, - 11, - 130, - }, - dictWord{7, 11, 656}, - dictWord{7, 11, 837}, - dictWord{7, 11, 1547}, - dictWord{7, 11, 1657}, - dictWord{8, 11, 429}, - dictWord{9, 11, 228}, - dictWord{ - 10, - 11, - 643, - }, - dictWord{13, 11, 289}, - dictWord{13, 11, 343}, - dictWord{147, 11, 101}, - dictWord{134, 0, 865}, - dictWord{6, 0, 2025}, - dictWord{136, 0, 965}, - dictWord{ - 7, - 11, - 278, - }, - dictWord{10, 11, 739}, - dictWord{11, 11, 708}, - dictWord{141, 11, 348}, - dictWord{133, 0, 534}, - dictWord{135, 11, 1922}, - dictWord{ - 137, - 0, - 691, - }, - dictWord{4, 10, 935}, - dictWord{133, 10, 823}, - dictWord{6, 0, 443}, - dictWord{9, 0, 237}, - dictWord{9, 0, 571}, - dictWord{9, 0, 695}, - dictWord{10, 0, 139}, - dictWord{11, 0, 715}, - dictWord{12, 0, 417}, - dictWord{141, 0, 421}, - dictWord{5, 10, 269}, - dictWord{7, 10, 434}, - dictWord{7, 10, 891}, - dictWord{8, 10, 339}, - dictWord{ - 9, - 10, - 702, - }, - dictWord{11, 10, 594}, - dictWord{11, 10, 718}, - dictWord{145, 10, 100}, - dictWord{6, 0, 1555}, - dictWord{7, 0, 878}, - dictWord{9, 10, 485}, - dictWord{141, 10, 264}, - dictWord{134, 10, 1713}, - dictWord{7, 10, 1810}, - dictWord{11, 10, 866}, - dictWord{12, 10, 103}, - dictWord{141, 10, 495}, - dictWord{ - 135, - 10, - 900, - }, - dictWord{6, 0, 1410}, - dictWord{9, 11, 316}, - dictWord{139, 11, 256}, - dictWord{4, 0, 995}, - dictWord{135, 0, 1033}, - dictWord{132, 0, 578}, - dictWord{10, 0, 881}, - dictWord{12, 0, 740}, - dictWord{12, 0, 743}, - dictWord{140, 0, 759}, - dictWord{132, 0, 822}, - dictWord{133, 0, 923}, - dictWord{142, 10, 143}, - dictWord{135, 11, 1696}, - dictWord{6, 11, 363}, - dictWord{7, 11, 1955}, - dictWord{136, 11, 725}, - dictWord{132, 0, 924}, - dictWord{133, 0, 665}, - dictWord{ - 135, - 10, - 2029, - }, - dictWord{135, 0, 1901}, - dictWord{4, 0, 265}, - dictWord{6, 0, 1092}, - dictWord{6, 0, 1417}, - dictWord{7, 0, 807}, - dictWord{135, 0, 950}, - dictWord{ - 5, - 0, - 93, - }, - dictWord{12, 0, 267}, - dictWord{141, 0, 498}, - dictWord{135, 0, 1451}, - dictWord{5, 11, 813}, - dictWord{135, 11, 2046}, - dictWord{5, 10, 625}, - dictWord{135, 10, 1617}, - dictWord{135, 0, 747}, - dictWord{6, 0, 788}, - dictWord{137, 0, 828}, - dictWord{7, 0, 184}, - dictWord{11, 0, 307}, - dictWord{11, 0, 400}, - dictWord{15, 0, 130}, - dictWord{5, 11, 712}, - dictWord{7, 11, 1855}, - dictWord{8, 10, 425}, - dictWord{8, 10, 693}, - dictWord{9, 10, 720}, - dictWord{10, 10, 380}, - dictWord{10, 10, 638}, - dictWord{11, 11, 17}, - dictWord{11, 10, 473}, - dictWord{12, 10, 61}, - dictWord{13, 11, 321}, - dictWord{144, 11, 67}, - dictWord{135, 0, 198}, - dictWord{6, 11, 320}, - dictWord{7, 11, 781}, - dictWord{7, 11, 1921}, - dictWord{9, 11, 55}, - dictWord{10, 11, 186}, - dictWord{10, 11, 273}, - dictWord{10, 11, 664}, - dictWord{10, 11, 801}, - dictWord{11, 11, 996}, - dictWord{11, 11, 997}, - dictWord{13, 11, 157}, - dictWord{142, 11, 170}, - dictWord{136, 11, 271}, - dictWord{ - 135, - 0, - 994, - }, - dictWord{7, 11, 103}, - dictWord{7, 11, 863}, - dictWord{11, 11, 184}, - dictWord{14, 11, 299}, - dictWord{145, 11, 62}, - dictWord{11, 10, 551}, - dictWord{142, 10, 159}, - dictWord{5, 0, 233}, - dictWord{5, 0, 320}, - dictWord{6, 0, 140}, - dictWord{8, 0, 295}, - dictWord{8, 0, 615}, - dictWord{136, 11, 615}, - dictWord{ - 133, - 0, - 978, - }, - dictWord{4, 0, 905}, - dictWord{6, 0, 1701}, - dictWord{137, 0, 843}, - dictWord{132, 10, 168}, - dictWord{4, 0, 974}, - dictWord{8, 0, 850}, - dictWord{ - 12, - 0, - 709, - }, - dictWord{12, 0, 768}, - dictWord{140, 0, 786}, - dictWord{135, 10, 91}, - dictWord{152, 0, 6}, - dictWord{138, 10, 532}, - dictWord{135, 10, 1884}, - dictWord{132, 0, 509}, - dictWord{6, 0, 1307}, - dictWord{135, 0, 273}, - dictWord{5, 11, 77}, - dictWord{7, 11, 1455}, - dictWord{10, 11, 843}, - dictWord{19, 11, 73}, - dictWord{150, 11, 5}, - dictWord{132, 11, 458}, - dictWord{135, 11, 1420}, - dictWord{6, 11, 109}, - dictWord{138, 11, 382}, - dictWord{6, 0, 201}, - dictWord{6, 11, 330}, - dictWord{7, 10, 70}, - dictWord{7, 11, 1084}, - dictWord{10, 10, 240}, - dictWord{11, 11, 142}, - dictWord{147, 10, 93}, - dictWord{7, 0, 1041}, - dictWord{ - 140, - 11, - 328, - }, - dictWord{133, 11, 354}, - dictWord{134, 0, 1040}, - dictWord{133, 0, 693}, - dictWord{134, 0, 774}, - dictWord{139, 0, 234}, - dictWord{132, 0, 336}, - dictWord{7, 0, 1399}, - dictWord{139, 10, 392}, - dictWord{20, 0, 22}, - dictWord{148, 11, 22}, - dictWord{5, 0, 802}, - dictWord{7, 0, 2021}, - dictWord{136, 0, 805}, - dictWord{ - 5, - 0, - 167, - }, - dictWord{5, 0, 899}, - dictWord{6, 0, 410}, - dictWord{137, 0, 777}, - dictWord{137, 0, 789}, - dictWord{134, 0, 1705}, - dictWord{7, 10, 655}, - dictWord{ - 135, - 10, - 1844, - }, - dictWord{4, 10, 145}, - dictWord{6, 10, 176}, - dictWord{7, 10, 395}, - dictWord{137, 10, 562}, - dictWord{132, 10, 501}, - dictWord{135, 0, 10}, - dictWord{5, 0, 11}, - dictWord{6, 0, 117}, - dictWord{6, 0, 485}, - dictWord{7, 0, 1133}, - dictWord{9, 0, 582}, - dictWord{9, 0, 594}, - dictWord{10, 0, 82}, - dictWord{11, 0, 21}, - dictWord{11, 0, 818}, - dictWord{12, 0, 535}, - dictWord{13, 0, 86}, - dictWord{20, 0, 91}, - dictWord{23, 0, 13}, - dictWord{134, 10, 509}, - dictWord{4, 0, 264}, - dictWord{ - 7, - 0, - 1067, - }, - dictWord{8, 0, 204}, - dictWord{8, 0, 385}, - dictWord{139, 0, 953}, - dictWord{139, 11, 737}, - dictWord{138, 0, 56}, - dictWord{134, 0, 1917}, - dictWord{ - 133, - 0, - 470, - }, - dictWord{10, 11, 657}, - dictWord{14, 11, 297}, - dictWord{142, 11, 361}, - dictWord{135, 11, 412}, - dictWord{7, 0, 1198}, - dictWord{7, 11, 1198}, - dictWord{8, 11, 556}, - dictWord{14, 11, 123}, - dictWord{14, 11, 192}, - dictWord{143, 11, 27}, - dictWord{7, 11, 1985}, - dictWord{14, 11, 146}, - dictWord{15, 11, 42}, - dictWord{16, 11, 23}, - dictWord{17, 11, 86}, - dictWord{146, 11, 17}, - dictWord{11, 0, 1015}, - dictWord{136, 11, 122}, - dictWord{4, 10, 114}, - dictWord{ - 9, - 10, - 492, - }, - dictWord{13, 10, 462}, - dictWord{142, 10, 215}, - dictWord{4, 10, 77}, - dictWord{5, 10, 361}, - dictWord{6, 10, 139}, - dictWord{6, 10, 401}, - dictWord{ - 6, - 10, - 404, - }, - dictWord{7, 10, 413}, - dictWord{7, 10, 715}, - dictWord{7, 10, 1716}, - dictWord{11, 10, 279}, - dictWord{12, 10, 179}, - dictWord{12, 10, 258}, - dictWord{ - 13, - 10, - 244, - }, - dictWord{142, 10, 358}, - dictWord{134, 10, 1717}, - dictWord{7, 10, 1061}, - dictWord{8, 10, 82}, - dictWord{11, 10, 250}, - dictWord{12, 10, 420}, - dictWord{141, 10, 184}, - dictWord{133, 0, 715}, - dictWord{135, 10, 724}, - dictWord{9, 0, 919}, - dictWord{9, 0, 922}, - dictWord{9, 0, 927}, - dictWord{9, 0, 933}, - dictWord{9, 0, 962}, - dictWord{9, 0, 1000}, - dictWord{9, 0, 1002}, - dictWord{9, 0, 1021}, - dictWord{12, 0, 890}, - dictWord{12, 0, 907}, - dictWord{12, 0, 930}, - dictWord{ - 15, - 0, - 207, - }, - dictWord{15, 0, 228}, - dictWord{15, 0, 238}, - dictWord{149, 0, 61}, - dictWord{8, 0, 794}, - dictWord{9, 0, 400}, - dictWord{10, 0, 298}, - dictWord{142, 0, 228}, - dictWord{5, 11, 430}, - dictWord{5, 11, 932}, - dictWord{6, 11, 131}, - dictWord{7, 11, 417}, - dictWord{9, 11, 522}, - dictWord{11, 11, 314}, - dictWord{141, 11, 390}, - dictWord{132, 0, 867}, - dictWord{8, 0, 724}, - dictWord{132, 11, 507}, - dictWord{137, 11, 261}, - dictWord{4, 11, 343}, - dictWord{133, 11, 511}, - dictWord{ - 6, - 0, - 190, - }, - dictWord{7, 0, 768}, - dictWord{135, 0, 1170}, - dictWord{6, 10, 513}, - dictWord{135, 10, 1052}, - dictWord{7, 11, 455}, - dictWord{138, 11, 591}, - dictWord{134, 0, 1066}, - dictWord{137, 10, 899}, - dictWord{14, 0, 67}, - dictWord{147, 0, 60}, - dictWord{4, 0, 948}, - dictWord{18, 0, 174}, - dictWord{146, 0, 176}, - dictWord{135, 0, 1023}, - dictWord{7, 10, 1417}, - dictWord{12, 10, 382}, - dictWord{17, 10, 48}, - dictWord{152, 10, 12}, - dictWord{134, 11, 575}, - dictWord{ - 132, - 0, - 764, - }, - dictWord{6, 10, 545}, - dictWord{7, 10, 565}, - dictWord{7, 10, 1669}, - dictWord{10, 10, 114}, - dictWord{11, 10, 642}, - dictWord{140, 10, 618}, - dictWord{ - 6, - 0, - 137, - }, - dictWord{9, 0, 75}, - dictWord{9, 0, 253}, - dictWord{10, 0, 194}, - dictWord{138, 0, 444}, - dictWord{4, 0, 756}, - dictWord{133, 10, 5}, - dictWord{8, 0, 1008}, - dictWord{135, 10, 192}, - dictWord{132, 0, 842}, - dictWord{11, 0, 643}, - dictWord{12, 0, 115}, - dictWord{136, 10, 763}, - dictWord{139, 0, 67}, - dictWord{ - 133, - 10, - 759, - }, - dictWord{4, 0, 821}, - dictWord{5, 0, 760}, - dictWord{7, 0, 542}, - dictWord{8, 0, 135}, - dictWord{8, 0, 496}, - dictWord{135, 11, 580}, - dictWord{7, 10, 370}, - dictWord{7, 10, 1007}, - dictWord{7, 10, 1177}, - dictWord{135, 10, 1565}, - dictWord{135, 10, 1237}, - dictWord{140, 0, 736}, - dictWord{7, 0, 319}, - dictWord{ - 7, - 0, - 355, - }, - dictWord{7, 0, 763}, - dictWord{10, 0, 389}, - dictWord{145, 0, 43}, - dictWord{8, 11, 333}, - dictWord{138, 11, 182}, - dictWord{4, 10, 87}, - dictWord{5, 10, 250}, - dictWord{141, 10, 298}, - dictWord{138, 0, 786}, - dictWord{134, 0, 2044}, - dictWord{8, 11, 330}, - dictWord{140, 11, 477}, - dictWord{135, 11, 1338}, - dictWord{132, 11, 125}, - dictWord{134, 0, 1030}, - dictWord{134, 0, 1083}, - dictWord{132, 11, 721}, - dictWord{135, 10, 814}, - dictWord{7, 11, 776}, - dictWord{ - 8, - 11, - 145, - }, - dictWord{147, 11, 56}, - dictWord{134, 0, 1226}, - dictWord{4, 10, 57}, - dictWord{7, 10, 1195}, - dictWord{7, 10, 1438}, - dictWord{7, 10, 1548}, - dictWord{ - 7, - 10, - 1835, - }, - dictWord{7, 10, 1904}, - dictWord{9, 10, 757}, - dictWord{10, 10, 604}, - dictWord{139, 10, 519}, - dictWord{7, 11, 792}, - dictWord{8, 11, 147}, - dictWord{10, 11, 821}, - dictWord{139, 11, 1021}, - dictWord{137, 11, 797}, - dictWord{4, 0, 58}, - dictWord{5, 0, 286}, - dictWord{6, 0, 319}, - dictWord{7, 0, 402}, - dictWord{ - 7, - 0, - 1254, - }, - dictWord{7, 0, 1903}, - dictWord{8, 0, 356}, - dictWord{140, 0, 408}, - dictWord{4, 0, 389}, - dictWord{4, 0, 815}, - dictWord{9, 0, 181}, - dictWord{9, 0, 255}, - dictWord{10, 0, 8}, - dictWord{10, 0, 29}, - dictWord{10, 0, 816}, - dictWord{11, 0, 311}, - dictWord{11, 0, 561}, - dictWord{12, 0, 67}, - dictWord{141, 0, 181}, - dictWord{ - 7, - 11, - 1472, - }, - dictWord{135, 11, 1554}, - dictWord{7, 11, 1071}, - dictWord{7, 11, 1541}, - dictWord{7, 11, 1767}, - dictWord{7, 11, 1806}, - dictWord{7, 11, 1999}, - dictWord{9, 11, 248}, - dictWord{10, 11, 400}, - dictWord{11, 11, 162}, - dictWord{11, 11, 178}, - dictWord{11, 11, 242}, - dictWord{12, 11, 605}, - dictWord{ - 15, - 11, - 26, - }, - dictWord{144, 11, 44}, - dictWord{5, 11, 168}, - dictWord{5, 11, 930}, - dictWord{8, 11, 74}, - dictWord{9, 11, 623}, - dictWord{12, 11, 500}, - dictWord{ - 12, - 11, - 579, - }, - dictWord{13, 11, 41}, - dictWord{143, 11, 93}, - dictWord{6, 11, 220}, - dictWord{7, 11, 1101}, - dictWord{141, 11, 105}, - dictWord{5, 0, 474}, - dictWord{ - 7, - 0, - 507, - }, - dictWord{4, 10, 209}, - dictWord{7, 11, 507}, - dictWord{135, 10, 902}, - dictWord{132, 0, 427}, - dictWord{6, 0, 413}, - dictWord{7, 10, 335}, - dictWord{ - 7, - 10, - 1437, - }, - dictWord{7, 10, 1668}, - dictWord{8, 10, 553}, - dictWord{8, 10, 652}, - dictWord{8, 10, 656}, - dictWord{9, 10, 558}, - dictWord{11, 10, 743}, - dictWord{ - 149, - 10, - 18, - }, - dictWord{132, 0, 730}, - dictWord{6, 11, 19}, - dictWord{7, 11, 1413}, - dictWord{139, 11, 428}, - dictWord{133, 0, 373}, - dictWord{132, 10, 559}, - dictWord{7, 11, 96}, - dictWord{8, 11, 401}, - dictWord{137, 11, 896}, - dictWord{7, 0, 799}, - dictWord{7, 0, 1972}, - dictWord{5, 10, 1017}, - dictWord{138, 10, 511}, - dictWord{135, 0, 1793}, - dictWord{7, 11, 1961}, - dictWord{7, 11, 1965}, - dictWord{8, 11, 702}, - dictWord{136, 11, 750}, - dictWord{8, 11, 150}, - dictWord{8, 11, 737}, - dictWord{140, 11, 366}, - dictWord{132, 0, 322}, - dictWord{133, 10, 709}, - dictWord{8, 11, 800}, - dictWord{9, 11, 148}, - dictWord{9, 11, 872}, - dictWord{ - 9, - 11, - 890, - }, - dictWord{11, 11, 309}, - dictWord{11, 11, 1001}, - dictWord{13, 11, 267}, - dictWord{141, 11, 323}, - dictWord{134, 10, 1745}, - dictWord{7, 0, 290}, - dictWord{136, 10, 206}, - dictWord{7, 0, 1651}, - dictWord{145, 0, 89}, - dictWord{139, 0, 2}, - dictWord{132, 0, 672}, - dictWord{6, 0, 1860}, - dictWord{8, 0, 905}, - dictWord{ - 10, - 0, - 844, - }, - dictWord{10, 0, 846}, - dictWord{10, 0, 858}, - dictWord{12, 0, 699}, - dictWord{12, 0, 746}, - dictWord{140, 0, 772}, - dictWord{135, 11, 424}, - dictWord{133, 11, 547}, - dictWord{133, 0, 737}, - dictWord{5, 11, 490}, - dictWord{6, 11, 615}, - dictWord{6, 11, 620}, - dictWord{135, 11, 683}, - dictWord{6, 0, 746}, - dictWord{134, 0, 1612}, - dictWord{132, 10, 776}, - dictWord{9, 11, 385}, - dictWord{149, 11, 17}, - dictWord{133, 0, 145}, - dictWord{135, 10, 1272}, - dictWord{ - 7, - 0, - 884, - }, - dictWord{140, 0, 124}, - dictWord{4, 0, 387}, - dictWord{135, 0, 1288}, - dictWord{5, 11, 133}, - dictWord{136, 10, 406}, - dictWord{136, 11, 187}, - dictWord{ - 6, - 0, - 679, - }, - dictWord{8, 11, 8}, - dictWord{138, 11, 0}, - dictWord{135, 0, 550}, - dictWord{135, 11, 798}, - dictWord{136, 11, 685}, - dictWord{7, 11, 1086}, - dictWord{145, 11, 46}, - dictWord{8, 10, 175}, - dictWord{10, 10, 168}, - dictWord{138, 10, 573}, - dictWord{135, 0, 1305}, - dictWord{4, 0, 576}, - dictWord{ - 135, - 0, - 1263, - }, - dictWord{6, 0, 686}, - dictWord{134, 0, 1563}, - dictWord{134, 0, 607}, - dictWord{5, 0, 919}, - dictWord{134, 0, 1673}, - dictWord{148, 0, 37}, - dictWord{ - 8, - 11, - 774, - }, - dictWord{10, 11, 670}, - dictWord{140, 11, 51}, - dictWord{133, 10, 784}, - dictWord{139, 10, 882}, - dictWord{4, 0, 82}, - dictWord{5, 0, 333}, - dictWord{ - 5, - 0, - 904, - }, - dictWord{6, 0, 207}, - dictWord{7, 0, 325}, - dictWord{7, 0, 1726}, - dictWord{8, 0, 101}, - dictWord{10, 0, 778}, - dictWord{139, 0, 220}, - dictWord{135, 11, 371}, - dictWord{132, 0, 958}, - dictWord{133, 0, 903}, - dictWord{4, 11, 127}, - dictWord{5, 11, 350}, - dictWord{6, 11, 356}, - dictWord{8, 11, 426}, - dictWord{9, 11, 572}, - dictWord{10, 11, 247}, - dictWord{139, 11, 312}, - dictWord{140, 0, 147}, - dictWord{6, 11, 59}, - dictWord{7, 11, 885}, - dictWord{9, 11, 603}, - dictWord{ - 141, - 11, - 397, - }, - dictWord{10, 0, 367}, - dictWord{9, 10, 14}, - dictWord{9, 10, 441}, - dictWord{139, 10, 9}, - dictWord{11, 10, 966}, - dictWord{12, 10, 287}, - dictWord{ - 13, - 10, - 342, - }, - dictWord{13, 10, 402}, - dictWord{15, 10, 110}, - dictWord{143, 10, 163}, - dictWord{134, 0, 690}, - dictWord{132, 0, 705}, - dictWord{9, 0, 651}, - dictWord{ - 11, - 0, - 971, - }, - dictWord{13, 0, 273}, - dictWord{7, 10, 1428}, - dictWord{7, 10, 1640}, - dictWord{7, 10, 1867}, - dictWord{9, 10, 169}, - dictWord{9, 10, 182}, - dictWord{ - 9, - 10, - 367, - }, - dictWord{9, 10, 478}, - dictWord{9, 10, 506}, - dictWord{9, 10, 551}, - dictWord{9, 10, 557}, - dictWord{9, 10, 648}, - dictWord{9, 10, 697}, - dictWord{ - 9, - 10, - 705, - }, - dictWord{9, 10, 725}, - dictWord{9, 10, 787}, - dictWord{9, 10, 794}, - dictWord{10, 10, 198}, - dictWord{10, 10, 214}, - dictWord{10, 10, 267}, - dictWord{ - 10, - 10, - 275, - }, - dictWord{10, 10, 456}, - dictWord{10, 10, 551}, - dictWord{10, 10, 561}, - dictWord{10, 10, 613}, - dictWord{10, 10, 627}, - dictWord{10, 10, 668}, - dictWord{10, 10, 675}, - dictWord{10, 10, 691}, - dictWord{10, 10, 695}, - dictWord{10, 10, 707}, - dictWord{10, 10, 715}, - dictWord{11, 10, 183}, - dictWord{ - 11, - 10, - 201, - }, - dictWord{11, 10, 262}, - dictWord{11, 10, 352}, - dictWord{11, 10, 439}, - dictWord{11, 10, 493}, - dictWord{11, 10, 572}, - dictWord{11, 10, 591}, - dictWord{ - 11, - 10, - 608, - }, - dictWord{11, 10, 611}, - dictWord{11, 10, 646}, - dictWord{11, 10, 674}, - dictWord{11, 10, 711}, - dictWord{11, 10, 751}, - dictWord{11, 10, 761}, - dictWord{11, 10, 776}, - dictWord{11, 10, 785}, - dictWord{11, 10, 850}, - dictWord{11, 10, 853}, - dictWord{11, 10, 862}, - dictWord{11, 10, 865}, - dictWord{ - 11, - 10, - 868, - }, - dictWord{11, 10, 875}, - dictWord{11, 10, 898}, - dictWord{11, 10, 902}, - dictWord{11, 10, 903}, - dictWord{11, 10, 910}, - dictWord{11, 10, 932}, - dictWord{ - 11, - 10, - 942, - }, - dictWord{11, 10, 957}, - dictWord{11, 10, 967}, - dictWord{11, 10, 972}, - dictWord{12, 10, 148}, - dictWord{12, 10, 195}, - dictWord{12, 10, 220}, - dictWord{12, 10, 237}, - dictWord{12, 10, 318}, - dictWord{12, 10, 339}, - dictWord{12, 10, 393}, - dictWord{12, 10, 445}, - dictWord{12, 10, 450}, - dictWord{ - 12, - 10, - 474, - }, - dictWord{12, 10, 505}, - dictWord{12, 10, 509}, - dictWord{12, 10, 533}, - dictWord{12, 10, 591}, - dictWord{12, 10, 594}, - dictWord{12, 10, 597}, - dictWord{ - 12, - 10, - 621, - }, - dictWord{12, 10, 633}, - dictWord{12, 10, 642}, - dictWord{13, 10, 59}, - dictWord{13, 10, 60}, - dictWord{13, 10, 145}, - dictWord{13, 10, 239}, - dictWord{13, 10, 250}, - dictWord{13, 10, 329}, - dictWord{13, 10, 344}, - dictWord{13, 10, 365}, - dictWord{13, 10, 372}, - dictWord{13, 10, 387}, - dictWord{ - 13, - 10, - 403, - }, - dictWord{13, 10, 414}, - dictWord{13, 10, 456}, - dictWord{13, 10, 470}, - dictWord{13, 10, 478}, - dictWord{13, 10, 483}, - dictWord{13, 10, 489}, - dictWord{ - 14, - 10, - 55, - }, - dictWord{14, 10, 57}, - dictWord{14, 10, 81}, - dictWord{14, 10, 90}, - dictWord{14, 10, 148}, - dictWord{14, 10, 239}, - dictWord{14, 10, 266}, - dictWord{ - 14, - 10, - 321, - }, - dictWord{14, 10, 326}, - dictWord{14, 10, 327}, - dictWord{14, 10, 330}, - dictWord{14, 10, 347}, - dictWord{14, 10, 355}, - dictWord{14, 10, 401}, - dictWord{14, 10, 404}, - dictWord{14, 10, 411}, - dictWord{14, 10, 414}, - dictWord{14, 10, 416}, - dictWord{14, 10, 420}, - dictWord{15, 10, 61}, - dictWord{ - 15, - 10, - 74, - }, - dictWord{15, 10, 87}, - dictWord{15, 10, 88}, - dictWord{15, 10, 94}, - dictWord{15, 10, 96}, - dictWord{15, 10, 116}, - dictWord{15, 10, 149}, - dictWord{ - 15, - 10, - 154, - }, - dictWord{16, 10, 50}, - dictWord{16, 10, 63}, - dictWord{16, 10, 73}, - dictWord{17, 10, 2}, - dictWord{17, 10, 66}, - dictWord{17, 10, 92}, - dictWord{17, 10, 103}, - dictWord{17, 10, 112}, - dictWord{17, 10, 120}, - dictWord{18, 10, 50}, - dictWord{18, 10, 54}, - dictWord{18, 10, 82}, - dictWord{18, 10, 86}, - dictWord{18, 10, 90}, - dictWord{18, 10, 111}, - dictWord{18, 10, 115}, - dictWord{18, 10, 156}, - dictWord{19, 10, 40}, - dictWord{19, 10, 79}, - dictWord{20, 10, 78}, - dictWord{149, 10, 22}, - dictWord{7, 0, 887}, - dictWord{5, 10, 161}, - dictWord{135, 10, 839}, - dictWord{142, 11, 98}, - dictWord{134, 0, 90}, - dictWord{138, 11, 356}, - dictWord{ - 135, - 11, - 441, - }, - dictWord{6, 11, 111}, - dictWord{7, 11, 4}, - dictWord{8, 11, 163}, - dictWord{8, 11, 776}, - dictWord{138, 11, 566}, - dictWord{134, 0, 908}, - dictWord{ - 134, - 0, - 1261, - }, - dictWord{7, 0, 813}, - dictWord{12, 0, 497}, - dictWord{141, 0, 56}, - dictWord{134, 0, 1235}, - dictWord{135, 0, 429}, - dictWord{135, 11, 1994}, - dictWord{138, 0, 904}, - dictWord{6, 0, 125}, - dictWord{7, 0, 1277}, - dictWord{137, 0, 772}, - dictWord{151, 0, 12}, - dictWord{4, 0, 841}, - dictWord{5, 0, 386}, - dictWord{ - 133, - 11, - 386, - }, - dictWord{5, 11, 297}, - dictWord{135, 11, 1038}, - dictWord{6, 0, 860}, - dictWord{6, 0, 1069}, - dictWord{135, 11, 309}, - dictWord{136, 0, 946}, - dictWord{135, 10, 1814}, - dictWord{141, 11, 418}, - dictWord{136, 11, 363}, - dictWord{10, 0, 768}, - dictWord{139, 0, 787}, - dictWord{22, 11, 30}, - dictWord{ - 150, - 11, - 33, - }, - dictWord{6, 0, 160}, - dictWord{7, 0, 1106}, - dictWord{9, 0, 770}, - dictWord{11, 0, 112}, - dictWord{140, 0, 413}, - dictWord{11, 11, 216}, - dictWord{ - 139, - 11, - 340, - }, - dictWord{136, 10, 139}, - dictWord{135, 11, 1390}, - dictWord{135, 11, 808}, - dictWord{132, 11, 280}, - dictWord{12, 0, 271}, - dictWord{17, 0, 109}, - dictWord{7, 10, 643}, - dictWord{136, 10, 236}, - dictWord{140, 11, 54}, - dictWord{4, 11, 421}, - dictWord{133, 11, 548}, - dictWord{11, 0, 719}, - dictWord{12, 0, 36}, - dictWord{141, 0, 337}, - dictWord{7, 0, 581}, - dictWord{9, 0, 644}, - dictWord{137, 0, 699}, - dictWord{11, 11, 511}, - dictWord{13, 11, 394}, - dictWord{14, 11, 298}, - dictWord{14, 11, 318}, - dictWord{146, 11, 103}, - dictWord{7, 0, 304}, - dictWord{9, 0, 646}, - dictWord{9, 0, 862}, - dictWord{11, 0, 696}, - dictWord{12, 0, 208}, - dictWord{15, 0, 79}, - dictWord{147, 0, 108}, - dictWord{4, 0, 631}, - dictWord{7, 0, 1126}, - dictWord{135, 0, 1536}, - dictWord{135, 11, 1527}, - dictWord{8, 0, 880}, - dictWord{10, 0, 869}, - dictWord{138, 0, 913}, - dictWord{7, 0, 1513}, - dictWord{5, 10, 54}, - dictWord{6, 11, 254}, - dictWord{9, 11, 109}, - dictWord{138, 11, 103}, - dictWord{135, 0, 981}, - dictWord{133, 11, 729}, - dictWord{132, 10, 744}, - dictWord{132, 0, 434}, - dictWord{134, 0, 550}, - dictWord{7, 0, 930}, - dictWord{10, 0, 476}, - dictWord{13, 0, 452}, - dictWord{19, 0, 104}, - dictWord{6, 11, 1630}, - dictWord{10, 10, 402}, - dictWord{146, 10, 55}, - dictWord{5, 0, 553}, - dictWord{138, 0, 824}, - dictWord{136, 0, 452}, - dictWord{8, 0, 151}, - dictWord{137, 10, 624}, - dictWord{132, 10, 572}, - dictWord{132, 0, 772}, - dictWord{133, 11, 671}, - dictWord{ - 133, - 0, - 292, - }, - dictWord{138, 0, 135}, - dictWord{132, 11, 889}, - dictWord{140, 11, 207}, - dictWord{9, 0, 504}, - dictWord{6, 10, 43}, - dictWord{7, 10, 38}, - dictWord{ - 8, - 10, - 248, - }, - dictWord{138, 10, 513}, - dictWord{6, 0, 1089}, - dictWord{135, 11, 1910}, - dictWord{4, 11, 627}, - dictWord{133, 11, 775}, - dictWord{135, 0, 783}, - dictWord{133, 10, 766}, - dictWord{133, 10, 363}, - dictWord{7, 0, 387}, - dictWord{135, 11, 387}, - dictWord{7, 0, 393}, - dictWord{10, 0, 603}, - dictWord{11, 0, 206}, - dictWord{7, 11, 202}, - dictWord{11, 11, 362}, - dictWord{11, 11, 948}, - dictWord{140, 11, 388}, - dictWord{6, 11, 507}, - dictWord{7, 11, 451}, - dictWord{8, 11, 389}, - dictWord{12, 11, 490}, - dictWord{13, 11, 16}, - dictWord{13, 11, 215}, - dictWord{13, 11, 351}, - dictWord{18, 11, 132}, - dictWord{147, 11, 125}, - dictWord{ - 4, - 0, - 912, - }, - dictWord{9, 0, 232}, - dictWord{135, 11, 841}, - dictWord{6, 10, 258}, - dictWord{140, 10, 409}, - dictWord{5, 10, 249}, - dictWord{148, 10, 82}, - dictWord{ - 136, - 11, - 566, - }, - dictWord{6, 0, 977}, - dictWord{135, 11, 1214}, - dictWord{7, 0, 1973}, - dictWord{136, 0, 716}, - dictWord{135, 0, 98}, - dictWord{133, 0, 733}, - dictWord{ - 5, - 11, - 912, - }, - dictWord{134, 11, 1695}, - dictWord{5, 10, 393}, - dictWord{6, 10, 378}, - dictWord{7, 10, 1981}, - dictWord{9, 10, 32}, - dictWord{9, 10, 591}, - dictWord{10, 10, 685}, - dictWord{10, 10, 741}, - dictWord{142, 10, 382}, - dictWord{133, 10, 788}, - dictWord{10, 0, 19}, - dictWord{11, 0, 911}, - dictWord{7, 10, 1968}, - dictWord{141, 10, 509}, - dictWord{5, 0, 668}, - dictWord{5, 11, 236}, - dictWord{6, 11, 572}, - dictWord{8, 11, 492}, - dictWord{11, 11, 618}, - dictWord{144, 11, 56}, - dictWord{135, 11, 1789}, - dictWord{4, 0, 360}, - dictWord{5, 0, 635}, - dictWord{5, 0, 700}, - dictWord{5, 10, 58}, - dictWord{5, 10, 171}, - dictWord{5, 10, 683}, - dictWord{ - 6, - 10, - 291, - }, - dictWord{6, 10, 566}, - dictWord{7, 10, 1650}, - dictWord{11, 10, 523}, - dictWord{12, 10, 273}, - dictWord{12, 10, 303}, - dictWord{15, 10, 39}, - dictWord{143, 10, 111}, - dictWord{133, 0, 901}, - dictWord{134, 10, 589}, - dictWord{5, 11, 190}, - dictWord{136, 11, 318}, - dictWord{140, 0, 656}, - dictWord{ - 7, - 0, - 726, - }, - dictWord{152, 0, 9}, - dictWord{4, 10, 917}, - dictWord{133, 10, 1005}, - dictWord{135, 10, 1598}, - dictWord{134, 11, 491}, - dictWord{4, 10, 919}, - dictWord{133, 11, 434}, - dictWord{137, 0, 72}, - dictWord{6, 0, 1269}, - dictWord{6, 0, 1566}, - dictWord{134, 0, 1621}, - dictWord{9, 0, 463}, - dictWord{10, 0, 595}, - dictWord{4, 10, 255}, - dictWord{5, 10, 302}, - dictWord{6, 10, 132}, - dictWord{7, 10, 128}, - dictWord{7, 10, 283}, - dictWord{7, 10, 1299}, - dictWord{10, 10, 52}, - dictWord{ - 10, - 10, - 514, - }, - dictWord{11, 10, 925}, - dictWord{13, 10, 92}, - dictWord{142, 10, 309}, - dictWord{135, 0, 1454}, - dictWord{134, 0, 1287}, - dictWord{11, 0, 600}, - dictWord{13, 0, 245}, - dictWord{137, 10, 173}, - dictWord{136, 0, 989}, - dictWord{7, 0, 164}, - dictWord{7, 0, 1571}, - dictWord{9, 0, 107}, - dictWord{140, 0, 225}, - dictWord{6, 0, 1061}, - dictWord{141, 10, 442}, - dictWord{4, 0, 27}, - dictWord{5, 0, 484}, - dictWord{5, 0, 510}, - dictWord{6, 0, 434}, - dictWord{7, 0, 1000}, - dictWord{ - 7, - 0, - 1098, - }, - dictWord{136, 0, 2}, - dictWord{7, 11, 85}, - dictWord{7, 11, 247}, - dictWord{8, 11, 585}, - dictWord{10, 11, 163}, - dictWord{138, 11, 316}, - dictWord{ - 11, - 11, - 103, - }, - dictWord{142, 11, 0}, - dictWord{134, 0, 1127}, - dictWord{4, 0, 460}, - dictWord{134, 0, 852}, - dictWord{134, 10, 210}, - dictWord{4, 0, 932}, - dictWord{ - 133, - 0, - 891, - }, - dictWord{6, 0, 588}, - dictWord{147, 11, 83}, - dictWord{8, 0, 625}, - dictWord{4, 10, 284}, - dictWord{134, 10, 223}, - dictWord{134, 0, 76}, - dictWord{8, 0, 92}, - dictWord{137, 0, 221}, - dictWord{4, 11, 124}, - dictWord{10, 11, 457}, - dictWord{11, 11, 121}, - dictWord{11, 11, 169}, - dictWord{11, 11, 422}, - dictWord{ - 11, - 11, - 870, - }, - dictWord{12, 11, 214}, - dictWord{13, 11, 389}, - dictWord{14, 11, 187}, - dictWord{143, 11, 77}, - dictWord{9, 11, 618}, - dictWord{138, 11, 482}, - dictWord{ - 4, - 10, - 218, - }, - dictWord{7, 10, 526}, - dictWord{143, 10, 137}, - dictWord{13, 0, 9}, - dictWord{14, 0, 104}, - dictWord{14, 0, 311}, - dictWord{4, 10, 270}, - dictWord{ - 5, - 10, - 192, - }, - dictWord{6, 10, 332}, - dictWord{135, 10, 1322}, - dictWord{140, 10, 661}, - dictWord{135, 11, 1193}, - dictWord{6, 11, 107}, - dictWord{7, 11, 638}, - dictWord{7, 11, 1632}, - dictWord{137, 11, 396}, - dictWord{132, 0, 763}, - dictWord{4, 0, 622}, - dictWord{5, 11, 370}, - dictWord{134, 11, 1756}, - dictWord{ - 133, - 0, - 253, - }, - dictWord{135, 0, 546}, - dictWord{9, 0, 73}, - dictWord{10, 0, 110}, - dictWord{14, 0, 185}, - dictWord{17, 0, 119}, - dictWord{133, 11, 204}, - dictWord{7, 0, 624}, - dictWord{7, 0, 916}, - dictWord{10, 0, 256}, - dictWord{139, 0, 87}, - dictWord{7, 10, 379}, - dictWord{8, 10, 481}, - dictWord{137, 10, 377}, - dictWord{5, 0, 212}, - dictWord{12, 0, 35}, - dictWord{13, 0, 382}, - dictWord{5, 11, 970}, - dictWord{134, 11, 1706}, - dictWord{9, 0, 746}, - dictWord{5, 10, 1003}, - dictWord{134, 10, 149}, - dictWord{10, 0, 150}, - dictWord{11, 0, 849}, - dictWord{13, 0, 330}, - dictWord{8, 10, 262}, - dictWord{9, 10, 627}, - dictWord{11, 10, 214}, - dictWord{11, 10, 404}, - dictWord{11, 10, 457}, - dictWord{11, 10, 780}, - dictWord{11, 10, 913}, - dictWord{13, 10, 401}, - dictWord{142, 10, 200}, - dictWord{134, 0, 1466}, - dictWord{ - 135, - 11, - 3, - }, - dictWord{6, 0, 1299}, - dictWord{4, 11, 35}, - dictWord{5, 11, 121}, - dictWord{5, 11, 483}, - dictWord{5, 11, 685}, - dictWord{6, 11, 489}, - dictWord{7, 11, 1204}, - dictWord{136, 11, 394}, - dictWord{135, 10, 742}, - dictWord{4, 10, 142}, - dictWord{136, 10, 304}, - dictWord{4, 11, 921}, - dictWord{133, 11, 1007}, - dictWord{ - 134, - 0, - 1518, - }, - dictWord{6, 0, 1229}, - dictWord{135, 0, 1175}, - dictWord{133, 0, 816}, - dictWord{12, 0, 159}, - dictWord{4, 10, 471}, - dictWord{4, 11, 712}, - dictWord{ - 5, - 10, - 51, - }, - dictWord{6, 10, 602}, - dictWord{7, 10, 925}, - dictWord{8, 10, 484}, - dictWord{138, 10, 195}, - dictWord{134, 11, 1629}, - dictWord{5, 0, 869}, - dictWord{ - 5, - 0, - 968, - }, - dictWord{6, 0, 1626}, - dictWord{8, 0, 734}, - dictWord{136, 0, 784}, - dictWord{4, 0, 542}, - dictWord{6, 0, 1716}, - dictWord{6, 0, 1727}, - dictWord{ - 7, - 0, - 1082, - }, - dictWord{7, 0, 1545}, - dictWord{8, 0, 56}, - dictWord{8, 0, 118}, - dictWord{8, 0, 412}, - dictWord{8, 0, 564}, - dictWord{9, 0, 888}, - dictWord{9, 0, 908}, - dictWord{ - 10, - 0, - 50, - }, - dictWord{10, 0, 423}, - dictWord{11, 0, 685}, - dictWord{11, 0, 697}, - dictWord{11, 0, 933}, - dictWord{12, 0, 299}, - dictWord{13, 0, 126}, - dictWord{ - 13, - 0, - 136, - }, - dictWord{13, 0, 170}, - dictWord{13, 0, 190}, - dictWord{136, 10, 688}, - dictWord{132, 10, 697}, - dictWord{4, 0, 232}, - dictWord{9, 0, 202}, - dictWord{ - 10, - 0, - 474, - }, - dictWord{140, 0, 433}, - dictWord{136, 0, 212}, - dictWord{6, 0, 108}, - dictWord{7, 0, 1003}, - dictWord{7, 0, 1181}, - dictWord{8, 0, 111}, - dictWord{ - 136, - 0, - 343, - }, - dictWord{5, 10, 221}, - dictWord{135, 11, 1255}, - dictWord{133, 11, 485}, - dictWord{134, 0, 1712}, - dictWord{142, 0, 216}, - dictWord{5, 0, 643}, - dictWord{ - 6, - 0, - 516, - }, - dictWord{4, 11, 285}, - dictWord{5, 11, 317}, - dictWord{6, 11, 301}, - dictWord{7, 11, 7}, - dictWord{8, 11, 153}, - dictWord{10, 11, 766}, - dictWord{ - 11, - 11, - 468, - }, - dictWord{12, 11, 467}, - dictWord{141, 11, 143}, - dictWord{4, 0, 133}, - dictWord{7, 0, 711}, - dictWord{7, 0, 1298}, - dictWord{135, 0, 1585}, - dictWord{ - 134, - 0, - 650, - }, - dictWord{135, 11, 512}, - dictWord{6, 0, 99}, - dictWord{7, 0, 1808}, - dictWord{145, 0, 57}, - dictWord{6, 0, 246}, - dictWord{6, 0, 574}, - dictWord{7, 0, 428}, - dictWord{9, 0, 793}, - dictWord{10, 0, 669}, - dictWord{11, 0, 485}, - dictWord{11, 0, 840}, - dictWord{12, 0, 300}, - dictWord{14, 0, 250}, - dictWord{145, 0, 55}, - dictWord{ - 4, - 10, - 132, - }, - dictWord{5, 10, 69}, - dictWord{135, 10, 1242}, - dictWord{136, 0, 1023}, - dictWord{7, 0, 302}, - dictWord{132, 10, 111}, - dictWord{135, 0, 1871}, - dictWord{132, 0, 728}, - dictWord{9, 0, 252}, - dictWord{132, 10, 767}, - dictWord{6, 0, 461}, - dictWord{7, 0, 1590}, - dictWord{7, 10, 1416}, - dictWord{7, 10, 2005}, - dictWord{8, 10, 131}, - dictWord{8, 10, 466}, - dictWord{9, 10, 672}, - dictWord{13, 10, 252}, - dictWord{148, 10, 103}, - dictWord{6, 0, 323}, - dictWord{135, 0, 1564}, - dictWord{7, 0, 461}, - dictWord{136, 0, 775}, - dictWord{6, 10, 44}, - dictWord{136, 10, 368}, - dictWord{139, 0, 172}, - dictWord{132, 0, 464}, - dictWord{4, 10, 570}, - dictWord{133, 10, 120}, - dictWord{137, 11, 269}, - dictWord{6, 10, 227}, - dictWord{135, 10, 1589}, - dictWord{6, 11, 1719}, - dictWord{6, 11, 1735}, - dictWord{ - 7, - 11, - 2016, - }, - dictWord{7, 11, 2020}, - dictWord{8, 11, 837}, - dictWord{137, 11, 852}, - dictWord{7, 0, 727}, - dictWord{146, 0, 73}, - dictWord{132, 0, 1023}, - dictWord{135, 11, 852}, - dictWord{135, 10, 1529}, - dictWord{136, 0, 577}, - dictWord{138, 11, 568}, - dictWord{134, 0, 1037}, - dictWord{8, 11, 67}, - dictWord{ - 138, - 11, - 419, - }, - dictWord{4, 0, 413}, - dictWord{5, 0, 677}, - dictWord{8, 0, 432}, - dictWord{140, 0, 280}, - dictWord{10, 0, 600}, - dictWord{6, 10, 1667}, - dictWord{ - 7, - 11, - 967, - }, - dictWord{7, 10, 2036}, - dictWord{141, 11, 11}, - dictWord{6, 10, 511}, - dictWord{140, 10, 132}, - dictWord{6, 0, 799}, - dictWord{5, 10, 568}, - dictWord{ - 6, - 10, - 138, - }, - dictWord{135, 10, 1293}, - dictWord{8, 0, 159}, - dictWord{4, 10, 565}, - dictWord{136, 10, 827}, - dictWord{7, 0, 646}, - dictWord{7, 0, 1730}, - dictWord{ - 11, - 0, - 446, - }, - dictWord{141, 0, 178}, - dictWord{4, 10, 922}, - dictWord{133, 10, 1023}, - dictWord{135, 11, 11}, - dictWord{132, 0, 395}, - dictWord{11, 0, 145}, - dictWord{135, 10, 1002}, - dictWord{9, 0, 174}, - dictWord{10, 0, 164}, - dictWord{11, 0, 440}, - dictWord{11, 0, 514}, - dictWord{11, 0, 841}, - dictWord{15, 0, 98}, - dictWord{149, 0, 20}, - dictWord{134, 0, 426}, - dictWord{10, 0, 608}, - dictWord{139, 0, 1002}, - dictWord{7, 11, 320}, - dictWord{8, 11, 51}, - dictWord{12, 11, 481}, - dictWord{12, 11, 570}, - dictWord{148, 11, 106}, - dictWord{9, 0, 977}, - dictWord{9, 0, 983}, - dictWord{132, 11, 445}, - dictWord{138, 0, 250}, - dictWord{139, 0, 100}, - dictWord{6, 0, 1982}, - dictWord{136, 10, 402}, - dictWord{133, 11, 239}, - dictWord{4, 10, 716}, - dictWord{141, 10, 31}, - dictWord{5, 0, 476}, - dictWord{7, 11, 83}, - dictWord{7, 11, 1990}, - dictWord{8, 11, 130}, - dictWord{139, 11, 720}, - dictWord{8, 10, 691}, - dictWord{136, 10, 731}, - dictWord{5, 11, 123}, - dictWord{ - 6, - 11, - 530, - }, - dictWord{7, 11, 348}, - dictWord{135, 11, 1419}, - dictWord{5, 0, 76}, - dictWord{6, 0, 458}, - dictWord{6, 0, 497}, - dictWord{7, 0, 868}, - dictWord{9, 0, 658}, - dictWord{10, 0, 594}, - dictWord{11, 0, 173}, - dictWord{11, 0, 566}, - dictWord{12, 0, 20}, - dictWord{12, 0, 338}, - dictWord{141, 0, 200}, - dictWord{9, 11, 139}, - dictWord{ - 10, - 11, - 399, - }, - dictWord{11, 11, 469}, - dictWord{12, 11, 634}, - dictWord{141, 11, 223}, - dictWord{9, 10, 840}, - dictWord{138, 10, 803}, - dictWord{133, 10, 847}, - dictWord{11, 11, 223}, - dictWord{140, 11, 168}, - dictWord{132, 11, 210}, - dictWord{8, 0, 447}, - dictWord{9, 10, 53}, - dictWord{9, 10, 268}, - dictWord{9, 10, 901}, - dictWord{10, 10, 518}, - dictWord{10, 10, 829}, - dictWord{11, 10, 188}, - dictWord{13, 10, 74}, - dictWord{14, 10, 46}, - dictWord{15, 10, 17}, - dictWord{15, 10, 33}, - dictWord{17, 10, 40}, - dictWord{18, 10, 36}, - dictWord{19, 10, 20}, - dictWord{22, 10, 1}, - dictWord{152, 10, 2}, - dictWord{4, 0, 526}, - dictWord{7, 0, 1029}, - dictWord{135, 0, 1054}, - dictWord{19, 11, 59}, - dictWord{150, 11, 2}, - dictWord{4, 0, 636}, - dictWord{6, 0, 1875}, - dictWord{6, 0, 1920}, - dictWord{9, 0, 999}, - dictWord{ - 12, - 0, - 807, - }, - dictWord{12, 0, 825}, - dictWord{15, 0, 179}, - dictWord{15, 0, 190}, - dictWord{18, 0, 182}, - dictWord{136, 10, 532}, - dictWord{6, 0, 1699}, - dictWord{ - 7, - 0, - 660, - }, - dictWord{7, 0, 1124}, - dictWord{17, 0, 31}, - dictWord{19, 0, 22}, - dictWord{151, 0, 14}, - dictWord{135, 10, 681}, - dictWord{132, 11, 430}, - dictWord{ - 140, - 10, - 677, - }, - dictWord{4, 10, 684}, - dictWord{136, 10, 384}, - dictWord{132, 11, 756}, - dictWord{133, 11, 213}, - dictWord{7, 0, 188}, - dictWord{7, 10, 110}, - dictWord{ - 8, - 10, - 290, - }, - dictWord{8, 10, 591}, - dictWord{9, 10, 382}, - dictWord{9, 10, 649}, - dictWord{11, 10, 71}, - dictWord{11, 10, 155}, - dictWord{11, 10, 313}, - dictWord{ - 12, - 10, - 5, - }, - dictWord{13, 10, 325}, - dictWord{142, 10, 287}, - dictWord{7, 10, 360}, - dictWord{7, 10, 425}, - dictWord{9, 10, 66}, - dictWord{9, 10, 278}, - dictWord{ - 138, - 10, - 644, - }, - dictWord{142, 11, 164}, - dictWord{4, 0, 279}, - dictWord{7, 0, 301}, - dictWord{137, 0, 362}, - dictWord{134, 11, 586}, - dictWord{135, 0, 1743}, - dictWord{4, 0, 178}, - dictWord{133, 0, 399}, - dictWord{4, 10, 900}, - dictWord{133, 10, 861}, - dictWord{5, 10, 254}, - dictWord{7, 10, 985}, - dictWord{136, 10, 73}, - dictWord{133, 11, 108}, - dictWord{7, 10, 1959}, - dictWord{136, 10, 683}, - dictWord{133, 11, 219}, - dictWord{4, 11, 193}, - dictWord{5, 11, 916}, - dictWord{ - 7, - 11, - 364, - }, - dictWord{10, 11, 398}, - dictWord{10, 11, 726}, - dictWord{11, 11, 317}, - dictWord{11, 11, 626}, - dictWord{12, 11, 142}, - dictWord{12, 11, 288}, - dictWord{ - 12, - 11, - 678, - }, - dictWord{13, 11, 313}, - dictWord{15, 11, 113}, - dictWord{18, 11, 114}, - dictWord{21, 11, 30}, - dictWord{150, 11, 53}, - dictWord{6, 11, 241}, - dictWord{7, 11, 907}, - dictWord{8, 11, 832}, - dictWord{9, 11, 342}, - dictWord{10, 11, 729}, - dictWord{11, 11, 284}, - dictWord{11, 11, 445}, - dictWord{11, 11, 651}, - dictWord{11, 11, 863}, - dictWord{13, 11, 398}, - dictWord{146, 11, 99}, - dictWord{132, 0, 872}, - dictWord{134, 0, 831}, - dictWord{134, 0, 1692}, - dictWord{ - 6, - 0, - 202, - }, - dictWord{6, 0, 1006}, - dictWord{9, 0, 832}, - dictWord{10, 0, 636}, - dictWord{11, 0, 208}, - dictWord{12, 0, 360}, - dictWord{17, 0, 118}, - dictWord{18, 0, 27}, - dictWord{20, 0, 67}, - dictWord{137, 11, 734}, - dictWord{132, 10, 725}, - dictWord{7, 11, 993}, - dictWord{138, 11, 666}, - dictWord{134, 0, 1954}, - dictWord{ - 134, - 10, - 196, - }, - dictWord{7, 0, 872}, - dictWord{10, 0, 516}, - dictWord{139, 0, 167}, - dictWord{133, 10, 831}, - dictWord{4, 11, 562}, - dictWord{9, 11, 254}, - dictWord{ - 139, - 11, - 879, - }, - dictWord{137, 0, 313}, - dictWord{4, 0, 224}, - dictWord{132, 11, 786}, - dictWord{11, 0, 24}, - dictWord{12, 0, 170}, - dictWord{136, 10, 723}, - dictWord{ - 5, - 0, - 546, - }, - dictWord{7, 0, 35}, - dictWord{8, 0, 11}, - dictWord{8, 0, 12}, - dictWord{9, 0, 315}, - dictWord{9, 0, 533}, - dictWord{10, 0, 802}, - dictWord{11, 0, 166}, - dictWord{ - 12, - 0, - 525, - }, - dictWord{142, 0, 243}, - dictWord{7, 0, 1937}, - dictWord{13, 10, 80}, - dictWord{13, 10, 437}, - dictWord{145, 10, 74}, - dictWord{5, 0, 241}, - dictWord{ - 8, - 0, - 242, - }, - dictWord{9, 0, 451}, - dictWord{10, 0, 667}, - dictWord{11, 0, 598}, - dictWord{140, 0, 429}, - dictWord{150, 0, 46}, - dictWord{6, 0, 1273}, - dictWord{ - 137, - 0, - 830, - }, - dictWord{5, 10, 848}, - dictWord{6, 10, 66}, - dictWord{136, 10, 764}, - dictWord{6, 0, 825}, - dictWord{134, 0, 993}, - dictWord{4, 0, 1006}, - dictWord{ - 10, - 0, - 327, - }, - dictWord{13, 0, 271}, - dictWord{4, 10, 36}, - dictWord{7, 10, 1387}, - dictWord{139, 10, 755}, - dictWord{134, 0, 1023}, - dictWord{135, 0, 1580}, - dictWord{ - 4, - 0, - 366, - }, - dictWord{137, 0, 516}, - dictWord{132, 10, 887}, - dictWord{6, 0, 1736}, - dictWord{135, 0, 1891}, - dictWord{6, 11, 216}, - dictWord{7, 11, 901}, - dictWord{ - 7, - 11, - 1343, - }, - dictWord{136, 11, 493}, - dictWord{6, 10, 165}, - dictWord{138, 10, 388}, - dictWord{7, 11, 341}, - dictWord{139, 11, 219}, - dictWord{4, 10, 719}, - dictWord{135, 10, 155}, - dictWord{134, 0, 1935}, - dictWord{132, 0, 826}, - dictWord{6, 0, 331}, - dictWord{6, 0, 1605}, - dictWord{8, 0, 623}, - dictWord{11, 0, 139}, - dictWord{139, 0, 171}, - dictWord{135, 11, 1734}, - dictWord{10, 11, 115}, - dictWord{11, 11, 420}, - dictWord{12, 11, 154}, - dictWord{13, 11, 404}, - dictWord{ - 14, - 11, - 346, - }, - dictWord{15, 11, 54}, - dictWord{143, 11, 112}, - dictWord{7, 0, 288}, - dictWord{4, 10, 353}, - dictWord{6, 10, 146}, - dictWord{6, 10, 1789}, - dictWord{ - 7, - 10, - 990, - }, - dictWord{7, 10, 1348}, - dictWord{9, 10, 665}, - dictWord{9, 10, 898}, - dictWord{11, 10, 893}, - dictWord{142, 10, 212}, - dictWord{6, 0, 916}, - dictWord{134, 0, 1592}, - dictWord{7, 0, 1888}, - dictWord{4, 10, 45}, - dictWord{135, 10, 1257}, - dictWord{5, 11, 1011}, - dictWord{136, 11, 701}, - dictWord{ - 139, - 11, - 596, - }, - dictWord{4, 11, 54}, - dictWord{5, 11, 666}, - dictWord{7, 11, 1039}, - dictWord{7, 11, 1130}, - dictWord{9, 11, 195}, - dictWord{138, 11, 302}, - dictWord{ - 134, - 0, - 1471, - }, - dictWord{134, 0, 1570}, - dictWord{132, 0, 394}, - dictWord{140, 10, 65}, - dictWord{136, 10, 816}, - dictWord{135, 0, 1931}, - dictWord{7, 0, 574}, - dictWord{135, 0, 1719}, - dictWord{134, 11, 467}, - dictWord{132, 0, 658}, - dictWord{9, 0, 781}, - dictWord{10, 0, 144}, - dictWord{11, 0, 385}, - dictWord{13, 0, 161}, - dictWord{13, 0, 228}, - dictWord{13, 0, 268}, - dictWord{20, 0, 107}, - dictWord{134, 11, 1669}, - dictWord{136, 0, 374}, - dictWord{135, 0, 735}, - dictWord{4, 0, 344}, - dictWord{6, 0, 498}, - dictWord{139, 0, 323}, - dictWord{7, 0, 586}, - dictWord{7, 0, 1063}, - dictWord{6, 10, 559}, - dictWord{134, 10, 1691}, - dictWord{137, 0, 155}, - dictWord{133, 0, 906}, - dictWord{7, 11, 122}, - dictWord{9, 11, 259}, - dictWord{10, 11, 84}, - dictWord{11, 11, 470}, - dictWord{12, 11, 541}, - dictWord{ - 141, - 11, - 379, - }, - dictWord{134, 0, 1139}, - dictWord{10, 0, 108}, - dictWord{139, 0, 116}, - dictWord{134, 10, 456}, - dictWord{133, 10, 925}, - dictWord{5, 11, 82}, - dictWord{ - 5, - 11, - 131, - }, - dictWord{7, 11, 1755}, - dictWord{8, 11, 31}, - dictWord{9, 11, 168}, - dictWord{9, 11, 764}, - dictWord{139, 11, 869}, - dictWord{134, 11, 605}, - dictWord{ - 5, - 11, - 278, - }, - dictWord{137, 11, 68}, - dictWord{4, 11, 163}, - dictWord{5, 11, 201}, - dictWord{5, 11, 307}, - dictWord{5, 11, 310}, - dictWord{6, 11, 335}, - dictWord{ - 7, - 11, - 284, - }, - dictWord{136, 11, 165}, - dictWord{135, 11, 1660}, - dictWord{6, 11, 33}, - dictWord{135, 11, 1244}, - dictWord{4, 0, 616}, - dictWord{136, 11, 483}, - dictWord{8, 0, 857}, - dictWord{8, 0, 902}, - dictWord{8, 0, 910}, - dictWord{10, 0, 879}, - dictWord{12, 0, 726}, - dictWord{4, 11, 199}, - dictWord{139, 11, 34}, - dictWord{136, 0, 692}, - dictWord{6, 10, 193}, - dictWord{7, 10, 240}, - dictWord{7, 10, 1682}, - dictWord{10, 10, 51}, - dictWord{10, 10, 640}, - dictWord{11, 10, 410}, - dictWord{13, 10, 82}, - dictWord{14, 10, 247}, - dictWord{14, 10, 331}, - dictWord{142, 10, 377}, - dictWord{6, 0, 823}, - dictWord{134, 0, 983}, - dictWord{ - 139, - 10, - 411, - }, - dictWord{132, 0, 305}, - dictWord{136, 10, 633}, - dictWord{138, 11, 203}, - dictWord{134, 0, 681}, - dictWord{6, 11, 326}, - dictWord{7, 11, 677}, - dictWord{137, 11, 425}, - dictWord{5, 0, 214}, - dictWord{7, 0, 603}, - dictWord{8, 0, 611}, - dictWord{9, 0, 686}, - dictWord{10, 0, 88}, - dictWord{11, 0, 459}, - dictWord{ - 11, - 0, - 496, - }, - dictWord{12, 0, 463}, - dictWord{12, 0, 590}, - dictWord{141, 0, 0}, - dictWord{136, 0, 1004}, - dictWord{142, 0, 23}, - dictWord{134, 0, 1703}, - dictWord{ - 147, - 11, - 8, - }, - dictWord{145, 11, 56}, - dictWord{135, 0, 1443}, - dictWord{4, 10, 237}, - dictWord{135, 10, 514}, - dictWord{6, 0, 714}, - dictWord{145, 0, 19}, - dictWord{ - 5, - 11, - 358, - }, - dictWord{7, 11, 473}, - dictWord{7, 11, 1184}, - dictWord{10, 11, 662}, - dictWord{13, 11, 212}, - dictWord{13, 11, 304}, - dictWord{13, 11, 333}, - dictWord{145, 11, 98}, - dictWord{4, 0, 737}, - dictWord{10, 0, 98}, - dictWord{11, 0, 294}, - dictWord{12, 0, 60}, - dictWord{12, 0, 437}, - dictWord{13, 0, 64}, - dictWord{ - 13, - 0, - 380, - }, - dictWord{142, 0, 430}, - dictWord{6, 10, 392}, - dictWord{7, 10, 65}, - dictWord{135, 10, 2019}, - dictWord{6, 0, 1758}, - dictWord{8, 0, 520}, - dictWord{ - 9, - 0, - 345, - }, - dictWord{9, 0, 403}, - dictWord{142, 0, 350}, - dictWord{5, 0, 47}, - dictWord{10, 0, 242}, - dictWord{138, 0, 579}, - dictWord{5, 0, 139}, - dictWord{7, 0, 1168}, - dictWord{138, 0, 539}, - dictWord{134, 0, 1459}, - dictWord{13, 0, 388}, - dictWord{141, 11, 388}, - dictWord{134, 0, 253}, - dictWord{7, 10, 1260}, - dictWord{ - 135, - 10, - 1790, - }, - dictWord{10, 0, 252}, - dictWord{9, 10, 222}, - dictWord{139, 10, 900}, - dictWord{140, 0, 745}, - dictWord{133, 11, 946}, - dictWord{4, 0, 107}, - dictWord{ - 7, - 0, - 613, - }, - dictWord{8, 0, 439}, - dictWord{8, 0, 504}, - dictWord{9, 0, 501}, - dictWord{10, 0, 383}, - dictWord{139, 0, 477}, - dictWord{135, 11, 1485}, - dictWord{ - 132, - 0, - 871, - }, - dictWord{7, 11, 411}, - dictWord{7, 11, 590}, - dictWord{8, 11, 631}, - dictWord{9, 11, 323}, - dictWord{10, 11, 355}, - dictWord{11, 11, 491}, - dictWord{ - 12, - 11, - 143, - }, - dictWord{12, 11, 402}, - dictWord{13, 11, 73}, - dictWord{14, 11, 408}, - dictWord{15, 11, 107}, - dictWord{146, 11, 71}, - dictWord{132, 0, 229}, - dictWord{132, 0, 903}, - dictWord{140, 0, 71}, - dictWord{133, 0, 549}, - dictWord{4, 0, 47}, - dictWord{6, 0, 373}, - dictWord{7, 0, 452}, - dictWord{7, 0, 543}, - dictWord{ - 7, - 0, - 1828, - }, - dictWord{7, 0, 1856}, - dictWord{9, 0, 6}, - dictWord{11, 0, 257}, - dictWord{139, 0, 391}, - dictWord{7, 11, 1467}, - dictWord{8, 11, 328}, - dictWord{ - 10, - 11, - 544, - }, - dictWord{11, 11, 955}, - dictWord{13, 11, 320}, - dictWord{145, 11, 83}, - dictWord{5, 0, 980}, - dictWord{134, 0, 1754}, - dictWord{136, 0, 865}, - dictWord{ - 5, - 0, - 705, - }, - dictWord{137, 0, 606}, - dictWord{7, 0, 161}, - dictWord{8, 10, 201}, - dictWord{136, 10, 605}, - dictWord{143, 11, 35}, - dictWord{5, 11, 835}, - dictWord{ - 6, - 11, - 483, - }, - dictWord{140, 10, 224}, - dictWord{7, 0, 536}, - dictWord{7, 0, 1331}, - dictWord{136, 0, 143}, - dictWord{134, 0, 1388}, - dictWord{5, 0, 724}, - dictWord{ - 10, - 0, - 305, - }, - dictWord{11, 0, 151}, - dictWord{12, 0, 33}, - dictWord{12, 0, 121}, - dictWord{12, 0, 381}, - dictWord{17, 0, 3}, - dictWord{17, 0, 27}, - dictWord{17, 0, 78}, - dictWord{18, 0, 18}, - dictWord{19, 0, 54}, - dictWord{149, 0, 5}, - dictWord{4, 10, 523}, - dictWord{133, 10, 638}, - dictWord{5, 0, 19}, - dictWord{134, 0, 533}, - dictWord{ - 5, - 0, - 395, - }, - dictWord{5, 0, 951}, - dictWord{134, 0, 1776}, - dictWord{135, 0, 1908}, - dictWord{132, 0, 846}, - dictWord{10, 0, 74}, - dictWord{11, 0, 663}, - dictWord{ - 12, - 0, - 210, - }, - dictWord{13, 0, 166}, - dictWord{13, 0, 310}, - dictWord{14, 0, 373}, - dictWord{18, 0, 95}, - dictWord{19, 0, 43}, - dictWord{6, 10, 242}, - dictWord{7, 10, 227}, - dictWord{7, 10, 1581}, - dictWord{8, 10, 104}, - dictWord{9, 10, 113}, - dictWord{9, 10, 220}, - dictWord{9, 10, 427}, - dictWord{10, 10, 239}, - dictWord{11, 10, 579}, - dictWord{11, 10, 1023}, - dictWord{13, 10, 4}, - dictWord{13, 10, 204}, - dictWord{13, 10, 316}, - dictWord{148, 10, 86}, - dictWord{9, 11, 716}, - dictWord{11, 11, 108}, - dictWord{13, 11, 123}, - dictWord{14, 11, 252}, - dictWord{19, 11, 38}, - dictWord{21, 11, 3}, - dictWord{151, 11, 11}, - dictWord{8, 0, 372}, - dictWord{9, 0, 122}, - dictWord{138, 0, 175}, - dictWord{132, 11, 677}, - dictWord{7, 11, 1374}, - dictWord{136, 11, 540}, - dictWord{135, 10, 861}, - dictWord{132, 0, 695}, - dictWord{ - 7, - 0, - 497, - }, - dictWord{9, 0, 387}, - dictWord{147, 0, 81}, - dictWord{136, 0, 937}, - dictWord{134, 0, 718}, - dictWord{7, 0, 1328}, - dictWord{136, 10, 494}, - dictWord{ - 132, - 11, - 331, - }, - dictWord{6, 0, 1581}, - dictWord{133, 11, 747}, - dictWord{5, 0, 284}, - dictWord{6, 0, 49}, - dictWord{6, 0, 350}, - dictWord{7, 0, 1}, - dictWord{7, 0, 377}, - dictWord{7, 0, 1693}, - dictWord{8, 0, 18}, - dictWord{8, 0, 678}, - dictWord{9, 0, 161}, - dictWord{9, 0, 585}, - dictWord{9, 0, 671}, - dictWord{9, 0, 839}, - dictWord{11, 0, 912}, - dictWord{141, 0, 427}, - dictWord{7, 10, 1306}, - dictWord{8, 10, 505}, - dictWord{9, 10, 482}, - dictWord{10, 10, 126}, - dictWord{11, 10, 225}, - dictWord{12, 10, 347}, - dictWord{12, 10, 449}, - dictWord{13, 10, 19}, - dictWord{14, 10, 218}, - dictWord{142, 10, 435}, - dictWord{10, 10, 764}, - dictWord{12, 10, 120}, - dictWord{ - 13, - 10, - 39, - }, - dictWord{145, 10, 127}, - dictWord{4, 0, 597}, - dictWord{133, 10, 268}, - dictWord{134, 0, 1094}, - dictWord{4, 0, 1008}, - dictWord{134, 0, 1973}, - dictWord{132, 0, 811}, - dictWord{139, 0, 908}, - dictWord{135, 0, 1471}, - dictWord{133, 11, 326}, - dictWord{4, 10, 384}, - dictWord{135, 10, 1022}, - dictWord{ - 7, - 0, - 1935, - }, - dictWord{8, 0, 324}, - dictWord{12, 0, 42}, - dictWord{4, 11, 691}, - dictWord{7, 11, 1935}, - dictWord{8, 11, 324}, - dictWord{9, 11, 35}, - dictWord{10, 11, 680}, - dictWord{11, 11, 364}, - dictWord{12, 11, 42}, - dictWord{13, 11, 357}, - dictWord{146, 11, 16}, - dictWord{135, 0, 2014}, - dictWord{7, 0, 2007}, - dictWord{ - 9, - 0, - 101, - }, - dictWord{9, 0, 450}, - dictWord{10, 0, 66}, - dictWord{10, 0, 842}, - dictWord{11, 0, 536}, - dictWord{12, 0, 587}, - dictWord{6, 11, 32}, - dictWord{7, 11, 385}, - dictWord{7, 11, 757}, - dictWord{7, 11, 1916}, - dictWord{8, 11, 37}, - dictWord{8, 11, 94}, - dictWord{8, 11, 711}, - dictWord{9, 11, 541}, - dictWord{10, 11, 162}, - dictWord{ - 10, - 11, - 795, - }, - dictWord{11, 11, 989}, - dictWord{11, 11, 1010}, - dictWord{12, 11, 14}, - dictWord{142, 11, 308}, - dictWord{139, 0, 586}, - dictWord{ - 135, - 10, - 1703, - }, - dictWord{7, 0, 1077}, - dictWord{11, 0, 28}, - dictWord{9, 10, 159}, - dictWord{140, 10, 603}, - dictWord{6, 0, 1221}, - dictWord{136, 10, 583}, - dictWord{ - 6, - 11, - 152, - }, - dictWord{6, 11, 349}, - dictWord{6, 11, 1682}, - dictWord{7, 11, 1252}, - dictWord{8, 11, 112}, - dictWord{9, 11, 435}, - dictWord{9, 11, 668}, - dictWord{ - 10, - 11, - 290, - }, - dictWord{10, 11, 319}, - dictWord{10, 11, 815}, - dictWord{11, 11, 180}, - dictWord{11, 11, 837}, - dictWord{12, 11, 240}, - dictWord{13, 11, 152}, - dictWord{13, 11, 219}, - dictWord{142, 11, 158}, - dictWord{139, 0, 62}, - dictWord{132, 10, 515}, - dictWord{8, 10, 632}, - dictWord{8, 10, 697}, - dictWord{ - 137, - 10, - 854, - }, - dictWord{134, 0, 1766}, - dictWord{132, 11, 581}, - dictWord{6, 11, 126}, - dictWord{7, 11, 573}, - dictWord{8, 11, 397}, - dictWord{142, 11, 44}, - dictWord{ - 150, - 0, - 28, - }, - dictWord{11, 0, 670}, - dictWord{22, 0, 25}, - dictWord{4, 10, 136}, - dictWord{133, 10, 551}, - dictWord{6, 0, 1665}, - dictWord{7, 0, 256}, - dictWord{ - 7, - 0, - 1388, - }, - dictWord{138, 0, 499}, - dictWord{4, 0, 22}, - dictWord{5, 0, 10}, - dictWord{7, 0, 1576}, - dictWord{136, 0, 97}, - dictWord{134, 10, 1782}, - dictWord{5, 0, 481}, - dictWord{7, 10, 1287}, - dictWord{9, 10, 44}, - dictWord{10, 10, 552}, - dictWord{10, 10, 642}, - dictWord{11, 10, 839}, - dictWord{12, 10, 274}, - dictWord{ - 12, - 10, - 275, - }, - dictWord{12, 10, 372}, - dictWord{13, 10, 91}, - dictWord{142, 10, 125}, - dictWord{133, 11, 926}, - dictWord{7, 11, 1232}, - dictWord{137, 11, 531}, - dictWord{6, 0, 134}, - dictWord{7, 0, 437}, - dictWord{7, 0, 1824}, - dictWord{9, 0, 37}, - dictWord{14, 0, 285}, - dictWord{142, 0, 371}, - dictWord{7, 0, 486}, - dictWord{8, 0, 155}, - dictWord{11, 0, 93}, - dictWord{140, 0, 164}, - dictWord{6, 0, 1391}, - dictWord{134, 0, 1442}, - dictWord{133, 11, 670}, - dictWord{133, 0, 591}, - dictWord{ - 6, - 10, - 147, - }, - dictWord{7, 10, 886}, - dictWord{7, 11, 1957}, - dictWord{9, 10, 753}, - dictWord{138, 10, 268}, - dictWord{5, 0, 380}, - dictWord{5, 0, 650}, - dictWord{ - 7, - 0, - 1173, - }, - dictWord{136, 0, 310}, - dictWord{4, 0, 364}, - dictWord{7, 0, 1156}, - dictWord{7, 0, 1187}, - dictWord{137, 0, 409}, - dictWord{135, 11, 1621}, - dictWord{ - 134, - 0, - 482, - }, - dictWord{133, 11, 506}, - dictWord{4, 0, 781}, - dictWord{6, 0, 487}, - dictWord{7, 0, 926}, - dictWord{8, 0, 263}, - dictWord{139, 0, 500}, - dictWord{ - 138, - 10, - 137, - }, - dictWord{135, 11, 242}, - dictWord{139, 11, 96}, - dictWord{133, 10, 414}, - dictWord{135, 10, 1762}, - dictWord{134, 0, 804}, - dictWord{5, 11, 834}, - dictWord{7, 11, 1202}, - dictWord{8, 11, 14}, - dictWord{9, 11, 481}, - dictWord{137, 11, 880}, - dictWord{134, 10, 599}, - dictWord{4, 0, 94}, - dictWord{135, 0, 1265}, - dictWord{4, 0, 415}, - dictWord{132, 0, 417}, - dictWord{5, 0, 348}, - dictWord{6, 0, 522}, - dictWord{6, 10, 1749}, - dictWord{7, 11, 1526}, - dictWord{138, 11, 465}, - dictWord{134, 10, 1627}, - dictWord{132, 0, 1012}, - dictWord{132, 10, 488}, - dictWord{4, 11, 357}, - dictWord{6, 11, 172}, - dictWord{7, 11, 143}, - dictWord{ - 137, - 11, - 413, - }, - dictWord{4, 10, 83}, - dictWord{4, 11, 590}, - dictWord{146, 11, 76}, - dictWord{140, 10, 676}, - dictWord{7, 11, 287}, - dictWord{8, 11, 355}, - dictWord{ - 9, - 11, - 293, - }, - dictWord{137, 11, 743}, - dictWord{134, 10, 278}, - dictWord{6, 0, 1803}, - dictWord{18, 0, 165}, - dictWord{24, 0, 21}, - dictWord{5, 11, 169}, - dictWord{ - 7, - 11, - 333, - }, - dictWord{136, 11, 45}, - dictWord{12, 10, 97}, - dictWord{140, 11, 97}, - dictWord{4, 0, 408}, - dictWord{4, 0, 741}, - dictWord{135, 0, 500}, - dictWord{ - 132, - 11, - 198, - }, - dictWord{7, 10, 388}, - dictWord{7, 10, 644}, - dictWord{139, 10, 781}, - dictWord{4, 11, 24}, - dictWord{5, 11, 140}, - dictWord{5, 11, 185}, - dictWord{ - 7, - 11, - 1500, - }, - dictWord{11, 11, 565}, - dictWord{139, 11, 838}, - dictWord{6, 0, 1321}, - dictWord{9, 0, 257}, - dictWord{7, 10, 229}, - dictWord{8, 10, 59}, - dictWord{ - 9, - 10, - 190, - }, - dictWord{10, 10, 378}, - dictWord{140, 10, 191}, - dictWord{4, 11, 334}, - dictWord{133, 11, 593}, - dictWord{135, 11, 1885}, - dictWord{134, 0, 1138}, - dictWord{4, 0, 249}, - dictWord{6, 0, 73}, - dictWord{135, 0, 177}, - dictWord{133, 0, 576}, - dictWord{142, 0, 231}, - dictWord{137, 0, 288}, - dictWord{132, 10, 660}, - dictWord{7, 10, 1035}, - dictWord{138, 10, 737}, - dictWord{135, 0, 1487}, - dictWord{6, 0, 989}, - dictWord{9, 0, 433}, - dictWord{7, 10, 690}, - dictWord{9, 10, 587}, - dictWord{140, 10, 521}, - dictWord{7, 0, 1264}, - dictWord{7, 0, 1678}, - dictWord{11, 0, 945}, - dictWord{12, 0, 341}, - dictWord{12, 0, 471}, - dictWord{140, 0, 569}, - dictWord{132, 11, 709}, - dictWord{133, 11, 897}, - dictWord{5, 11, 224}, - dictWord{13, 11, 174}, - dictWord{146, 11, 52}, - dictWord{135, 11, 1840}, - dictWord{ - 134, - 10, - 1744, - }, - dictWord{12, 0, 87}, - dictWord{16, 0, 74}, - dictWord{4, 10, 733}, - dictWord{9, 10, 194}, - dictWord{10, 10, 92}, - dictWord{11, 10, 198}, - dictWord{ - 12, - 10, - 84, - }, - dictWord{141, 10, 128}, - dictWord{140, 0, 779}, - dictWord{135, 0, 538}, - dictWord{4, 11, 608}, - dictWord{133, 11, 497}, - dictWord{133, 0, 413}, - dictWord{7, 11, 1375}, - dictWord{7, 11, 1466}, - dictWord{138, 11, 331}, - dictWord{136, 0, 495}, - dictWord{6, 11, 540}, - dictWord{136, 11, 136}, - dictWord{7, 0, 54}, - dictWord{8, 0, 312}, - dictWord{10, 0, 191}, - dictWord{10, 0, 614}, - dictWord{140, 0, 567}, - dictWord{6, 0, 468}, - dictWord{7, 0, 567}, - dictWord{7, 0, 1478}, - dictWord{ - 8, - 0, - 530, - }, - dictWord{14, 0, 290}, - dictWord{133, 11, 999}, - dictWord{4, 11, 299}, - dictWord{7, 10, 306}, - dictWord{135, 11, 1004}, - dictWord{142, 11, 296}, - dictWord{134, 0, 1484}, - dictWord{133, 10, 979}, - dictWord{6, 0, 609}, - dictWord{9, 0, 815}, - dictWord{12, 11, 137}, - dictWord{14, 11, 9}, - dictWord{14, 11, 24}, - dictWord{142, 11, 64}, - dictWord{133, 11, 456}, - dictWord{6, 0, 484}, - dictWord{135, 0, 822}, - dictWord{133, 10, 178}, - dictWord{136, 11, 180}, - dictWord{ - 132, - 11, - 755, - }, - dictWord{137, 0, 900}, - dictWord{135, 0, 1335}, - dictWord{6, 0, 1724}, - dictWord{135, 0, 2022}, - dictWord{135, 11, 1139}, - dictWord{5, 0, 640}, - dictWord{132, 10, 390}, - dictWord{6, 0, 1831}, - dictWord{138, 11, 633}, - dictWord{135, 11, 566}, - dictWord{4, 11, 890}, - dictWord{5, 11, 805}, - dictWord{5, 11, 819}, - dictWord{5, 11, 961}, - dictWord{6, 11, 396}, - dictWord{6, 11, 1631}, - dictWord{6, 11, 1678}, - dictWord{7, 11, 1967}, - dictWord{7, 11, 2041}, - dictWord{ - 9, - 11, - 630, - }, - dictWord{11, 11, 8}, - dictWord{11, 11, 1019}, - dictWord{12, 11, 176}, - dictWord{13, 11, 225}, - dictWord{14, 11, 292}, - dictWord{149, 11, 24}, - dictWord{ - 132, - 0, - 474, - }, - dictWord{134, 0, 1103}, - dictWord{135, 0, 1504}, - dictWord{134, 0, 1576}, - dictWord{6, 0, 961}, - dictWord{6, 0, 1034}, - dictWord{140, 0, 655}, - dictWord{11, 11, 514}, - dictWord{149, 11, 20}, - dictWord{5, 0, 305}, - dictWord{135, 11, 1815}, - dictWord{7, 11, 1505}, - dictWord{10, 11, 190}, - dictWord{ - 10, - 11, - 634, - }, - dictWord{11, 11, 792}, - dictWord{12, 11, 358}, - dictWord{140, 11, 447}, - dictWord{5, 11, 0}, - dictWord{6, 11, 536}, - dictWord{7, 11, 604}, - dictWord{ - 13, - 11, - 445, - }, - dictWord{145, 11, 126}, - dictWord{7, 0, 1236}, - dictWord{133, 10, 105}, - dictWord{4, 0, 480}, - dictWord{6, 0, 217}, - dictWord{6, 0, 302}, - dictWord{ - 6, - 0, - 1642, - }, - dictWord{7, 0, 130}, - dictWord{7, 0, 837}, - dictWord{7, 0, 1321}, - dictWord{7, 0, 1547}, - dictWord{7, 0, 1657}, - dictWord{8, 0, 429}, - dictWord{9, 0, 228}, - dictWord{13, 0, 289}, - dictWord{13, 0, 343}, - dictWord{19, 0, 101}, - dictWord{6, 11, 232}, - dictWord{6, 11, 412}, - dictWord{7, 11, 1074}, - dictWord{8, 11, 9}, - dictWord{ - 8, - 11, - 157, - }, - dictWord{8, 11, 786}, - dictWord{9, 11, 196}, - dictWord{9, 11, 352}, - dictWord{9, 11, 457}, - dictWord{10, 11, 337}, - dictWord{11, 11, 232}, - dictWord{ - 11, - 11, - 877, - }, - dictWord{12, 11, 480}, - dictWord{140, 11, 546}, - dictWord{5, 10, 438}, - dictWord{7, 11, 958}, - dictWord{9, 10, 694}, - dictWord{12, 10, 627}, - dictWord{ - 13, - 11, - 38, - }, - dictWord{141, 10, 210}, - dictWord{4, 11, 382}, - dictWord{136, 11, 579}, - dictWord{7, 0, 278}, - dictWord{10, 0, 739}, - dictWord{11, 0, 708}, - dictWord{ - 141, - 0, - 348, - }, - dictWord{4, 11, 212}, - dictWord{135, 11, 1206}, - dictWord{135, 11, 1898}, - dictWord{6, 0, 708}, - dictWord{6, 0, 1344}, - dictWord{152, 10, 11}, - dictWord{137, 11, 768}, - dictWord{134, 0, 1840}, - dictWord{140, 0, 233}, - dictWord{8, 10, 25}, - dictWord{138, 10, 826}, - dictWord{6, 0, 2017}, - dictWord{ - 133, - 11, - 655, - }, - dictWord{6, 0, 1488}, - dictWord{139, 11, 290}, - dictWord{132, 10, 308}, - dictWord{134, 0, 1590}, - dictWord{134, 0, 1800}, - dictWord{134, 0, 1259}, - dictWord{16, 0, 28}, - dictWord{6, 11, 231}, - dictWord{7, 11, 95}, - dictWord{136, 11, 423}, - dictWord{133, 11, 300}, - dictWord{135, 10, 150}, - dictWord{ - 136, - 10, - 649, - }, - dictWord{7, 11, 1874}, - dictWord{137, 11, 641}, - dictWord{6, 11, 237}, - dictWord{7, 11, 611}, - dictWord{8, 11, 100}, - dictWord{9, 11, 416}, - dictWord{ - 11, - 11, - 335, - }, - dictWord{12, 11, 173}, - dictWord{146, 11, 101}, - dictWord{137, 0, 45}, - dictWord{134, 10, 521}, - dictWord{17, 0, 36}, - dictWord{14, 11, 26}, - dictWord{ - 146, - 11, - 150, - }, - dictWord{7, 0, 1442}, - dictWord{14, 0, 22}, - dictWord{5, 10, 339}, - dictWord{15, 10, 41}, - dictWord{15, 10, 166}, - dictWord{147, 10, 66}, - dictWord{ - 8, - 0, - 378, - }, - dictWord{6, 11, 581}, - dictWord{135, 11, 1119}, - dictWord{134, 0, 1507}, - dictWord{147, 11, 117}, - dictWord{139, 0, 39}, - dictWord{134, 0, 1054}, - dictWord{6, 0, 363}, - dictWord{7, 0, 1955}, - dictWord{136, 0, 725}, - dictWord{134, 0, 2036}, - dictWord{133, 11, 199}, - dictWord{6, 0, 1871}, - dictWord{9, 0, 935}, - dictWord{9, 0, 961}, - dictWord{9, 0, 1004}, - dictWord{9, 0, 1016}, - dictWord{12, 0, 805}, - dictWord{12, 0, 852}, - dictWord{12, 0, 853}, - dictWord{12, 0, 869}, - dictWord{ - 12, - 0, - 882, - }, - dictWord{12, 0, 896}, - dictWord{12, 0, 906}, - dictWord{12, 0, 917}, - dictWord{12, 0, 940}, - dictWord{15, 0, 170}, - dictWord{15, 0, 176}, - dictWord{ - 15, - 0, - 188, - }, - dictWord{15, 0, 201}, - dictWord{15, 0, 205}, - dictWord{15, 0, 212}, - dictWord{15, 0, 234}, - dictWord{15, 0, 244}, - dictWord{18, 0, 181}, - dictWord{18, 0, 193}, - dictWord{18, 0, 196}, - dictWord{18, 0, 201}, - dictWord{18, 0, 202}, - dictWord{18, 0, 210}, - dictWord{18, 0, 217}, - dictWord{18, 0, 235}, - dictWord{18, 0, 236}, - dictWord{18, 0, 237}, - dictWord{21, 0, 54}, - dictWord{21, 0, 55}, - dictWord{21, 0, 58}, - dictWord{21, 0, 59}, - dictWord{152, 0, 22}, - dictWord{134, 10, 1628}, - dictWord{ - 137, - 0, - 805, - }, - dictWord{5, 0, 813}, - dictWord{135, 0, 2046}, - dictWord{142, 11, 42}, - dictWord{5, 0, 712}, - dictWord{6, 0, 1240}, - dictWord{11, 0, 17}, - dictWord{ - 13, - 0, - 321, - }, - dictWord{144, 0, 67}, - dictWord{132, 0, 617}, - dictWord{135, 10, 829}, - dictWord{6, 0, 320}, - dictWord{7, 0, 781}, - dictWord{7, 0, 1921}, - dictWord{9, 0, 55}, - dictWord{10, 0, 186}, - dictWord{10, 0, 273}, - dictWord{10, 0, 664}, - dictWord{10, 0, 801}, - dictWord{11, 0, 996}, - dictWord{11, 0, 997}, - dictWord{13, 0, 157}, - dictWord{142, 0, 170}, - dictWord{136, 0, 271}, - dictWord{5, 10, 486}, - dictWord{135, 10, 1349}, - dictWord{18, 11, 91}, - dictWord{147, 11, 70}, - dictWord{10, 0, 445}, - dictWord{7, 10, 1635}, - dictWord{8, 10, 17}, - dictWord{138, 10, 295}, - dictWord{136, 11, 404}, - dictWord{7, 0, 103}, - dictWord{7, 0, 863}, - dictWord{11, 0, 184}, - dictWord{145, 0, 62}, - dictWord{138, 10, 558}, - dictWord{137, 0, 659}, - dictWord{6, 11, 312}, - dictWord{6, 11, 1715}, - dictWord{10, 11, 584}, - dictWord{ - 11, - 11, - 546, - }, - dictWord{11, 11, 692}, - dictWord{12, 11, 259}, - dictWord{12, 11, 295}, - dictWord{13, 11, 46}, - dictWord{141, 11, 154}, - dictWord{134, 0, 676}, - dictWord{132, 11, 588}, - dictWord{4, 11, 231}, - dictWord{5, 11, 61}, - dictWord{6, 11, 104}, - dictWord{7, 11, 729}, - dictWord{7, 11, 964}, - dictWord{7, 11, 1658}, - dictWord{140, 11, 414}, - dictWord{6, 11, 263}, - dictWord{138, 11, 757}, - dictWord{11, 0, 337}, - dictWord{142, 0, 303}, - dictWord{135, 11, 1363}, - dictWord{ - 132, - 11, - 320, - }, - dictWord{140, 0, 506}, - dictWord{134, 10, 447}, - dictWord{5, 0, 77}, - dictWord{7, 0, 1455}, - dictWord{10, 0, 843}, - dictWord{147, 0, 73}, - dictWord{ - 7, - 10, - 577, - }, - dictWord{7, 10, 1432}, - dictWord{9, 10, 475}, - dictWord{9, 10, 505}, - dictWord{9, 10, 526}, - dictWord{9, 10, 609}, - dictWord{9, 10, 689}, - dictWord{ - 9, - 10, - 726, - }, - dictWord{9, 10, 735}, - dictWord{9, 10, 738}, - dictWord{10, 10, 556}, - dictWord{10, 10, 674}, - dictWord{10, 10, 684}, - dictWord{11, 10, 89}, - dictWord{ - 11, - 10, - 202, - }, - dictWord{11, 10, 272}, - dictWord{11, 10, 380}, - dictWord{11, 10, 415}, - dictWord{11, 10, 505}, - dictWord{11, 10, 537}, - dictWord{11, 10, 550}, - dictWord{11, 10, 562}, - dictWord{11, 10, 640}, - dictWord{11, 10, 667}, - dictWord{11, 10, 688}, - dictWord{11, 10, 847}, - dictWord{11, 10, 927}, - dictWord{ - 11, - 10, - 930, - }, - dictWord{11, 10, 940}, - dictWord{12, 10, 144}, - dictWord{12, 10, 325}, - dictWord{12, 10, 329}, - dictWord{12, 10, 389}, - dictWord{12, 10, 403}, - dictWord{ - 12, - 10, - 451, - }, - dictWord{12, 10, 515}, - dictWord{12, 10, 604}, - dictWord{12, 10, 616}, - dictWord{12, 10, 626}, - dictWord{13, 10, 66}, - dictWord{13, 10, 131}, - dictWord{13, 10, 167}, - dictWord{13, 10, 236}, - dictWord{13, 10, 368}, - dictWord{13, 10, 411}, - dictWord{13, 10, 434}, - dictWord{13, 10, 453}, - dictWord{ - 13, - 10, - 461, - }, - dictWord{13, 10, 474}, - dictWord{14, 10, 59}, - dictWord{14, 10, 60}, - dictWord{14, 10, 139}, - dictWord{14, 10, 152}, - dictWord{14, 10, 276}, - dictWord{ - 14, - 10, - 353, - }, - dictWord{14, 10, 402}, - dictWord{15, 10, 28}, - dictWord{15, 10, 81}, - dictWord{15, 10, 123}, - dictWord{15, 10, 152}, - dictWord{18, 10, 136}, - dictWord{148, 10, 88}, - dictWord{132, 0, 458}, - dictWord{135, 0, 1420}, - dictWord{6, 0, 109}, - dictWord{10, 0, 382}, - dictWord{4, 11, 405}, - dictWord{4, 10, 609}, - dictWord{7, 10, 756}, - dictWord{7, 11, 817}, - dictWord{9, 10, 544}, - dictWord{11, 10, 413}, - dictWord{14, 11, 58}, - dictWord{14, 10, 307}, - dictWord{16, 10, 25}, - dictWord{17, 11, 37}, - dictWord{146, 11, 124}, - dictWord{6, 0, 330}, - dictWord{7, 0, 1084}, - dictWord{11, 0, 142}, - dictWord{133, 11, 974}, - dictWord{4, 10, 930}, - dictWord{133, 10, 947}, - dictWord{5, 10, 939}, - dictWord{142, 11, 394}, - dictWord{16, 0, 91}, - dictWord{145, 0, 87}, - dictWord{5, 11, 235}, - dictWord{5, 10, 962}, - dictWord{7, 11, 1239}, - dictWord{11, 11, 131}, - dictWord{140, 11, 370}, - dictWord{11, 0, 492}, - dictWord{5, 10, 651}, - dictWord{8, 10, 170}, - dictWord{9, 10, 61}, - dictWord{9, 10, 63}, - dictWord{10, 10, 23}, - dictWord{10, 10, 37}, - dictWord{10, 10, 834}, - dictWord{11, 10, 4}, - dictWord{11, 10, 281}, - dictWord{11, 10, 503}, - dictWord{ - 11, - 10, - 677, - }, - dictWord{12, 10, 96}, - dictWord{12, 10, 130}, - dictWord{12, 10, 244}, - dictWord{14, 10, 5}, - dictWord{14, 10, 40}, - dictWord{14, 10, 162}, - dictWord{ - 14, - 10, - 202, - }, - dictWord{146, 10, 133}, - dictWord{4, 10, 406}, - dictWord{5, 10, 579}, - dictWord{12, 10, 492}, - dictWord{150, 10, 15}, - dictWord{9, 11, 137}, - dictWord{138, 11, 221}, - dictWord{134, 0, 1239}, - dictWord{11, 0, 211}, - dictWord{140, 0, 145}, - dictWord{7, 11, 390}, - dictWord{138, 11, 140}, - dictWord{ - 135, - 11, - 1418, - }, - dictWord{135, 11, 1144}, - dictWord{134, 0, 1049}, - dictWord{7, 0, 321}, - dictWord{6, 10, 17}, - dictWord{7, 10, 1001}, - dictWord{7, 10, 1982}, - dictWord{ - 9, - 10, - 886, - }, - dictWord{10, 10, 489}, - dictWord{10, 10, 800}, - dictWord{11, 10, 782}, - dictWord{12, 10, 320}, - dictWord{13, 10, 467}, - dictWord{14, 10, 145}, - dictWord{14, 10, 387}, - dictWord{143, 10, 119}, - dictWord{145, 10, 17}, - dictWord{5, 11, 407}, - dictWord{11, 11, 489}, - dictWord{19, 11, 37}, - dictWord{20, 11, 73}, - dictWord{150, 11, 38}, - dictWord{133, 10, 458}, - dictWord{135, 0, 1985}, - dictWord{7, 10, 1983}, - dictWord{8, 10, 0}, - dictWord{8, 10, 171}, - dictWord{ - 9, - 10, - 120, - }, - dictWord{9, 10, 732}, - dictWord{10, 10, 473}, - dictWord{11, 10, 656}, - dictWord{11, 10, 998}, - dictWord{18, 10, 0}, - dictWord{18, 10, 2}, - dictWord{ - 147, - 10, - 21, - }, - dictWord{5, 11, 325}, - dictWord{7, 11, 1483}, - dictWord{8, 11, 5}, - dictWord{8, 11, 227}, - dictWord{9, 11, 105}, - dictWord{10, 11, 585}, - dictWord{ - 140, - 11, - 614, - }, - dictWord{136, 0, 122}, - dictWord{132, 0, 234}, - dictWord{135, 11, 1196}, - dictWord{6, 0, 976}, - dictWord{6, 0, 1098}, - dictWord{134, 0, 1441}, - dictWord{ - 7, - 0, - 253, - }, - dictWord{136, 0, 549}, - dictWord{6, 11, 621}, - dictWord{13, 11, 504}, - dictWord{144, 11, 19}, - dictWord{132, 10, 519}, - dictWord{5, 0, 430}, - dictWord{ - 5, - 0, - 932, - }, - dictWord{6, 0, 131}, - dictWord{7, 0, 417}, - dictWord{9, 0, 522}, - dictWord{11, 0, 314}, - dictWord{141, 0, 390}, - dictWord{14, 0, 149}, - dictWord{14, 0, 399}, - dictWord{143, 0, 57}, - dictWord{5, 10, 907}, - dictWord{6, 10, 31}, - dictWord{6, 11, 218}, - dictWord{7, 10, 491}, - dictWord{7, 10, 530}, - dictWord{8, 10, 592}, - dictWord{11, 10, 53}, - dictWord{11, 10, 779}, - dictWord{12, 10, 167}, - dictWord{12, 10, 411}, - dictWord{14, 10, 14}, - dictWord{14, 10, 136}, - dictWord{15, 10, 72}, - dictWord{16, 10, 17}, - dictWord{144, 10, 72}, - dictWord{140, 11, 330}, - dictWord{7, 11, 454}, - dictWord{7, 11, 782}, - dictWord{136, 11, 768}, - dictWord{ - 132, - 0, - 507, - }, - dictWord{10, 11, 676}, - dictWord{140, 11, 462}, - dictWord{6, 0, 630}, - dictWord{9, 0, 811}, - dictWord{4, 10, 208}, - dictWord{5, 10, 106}, - dictWord{ - 6, - 10, - 531, - }, - dictWord{8, 10, 408}, - dictWord{9, 10, 188}, - dictWord{138, 10, 572}, - dictWord{4, 0, 343}, - dictWord{5, 0, 511}, - dictWord{134, 10, 1693}, - dictWord{ - 134, - 11, - 164, - }, - dictWord{132, 0, 448}, - dictWord{7, 0, 455}, - dictWord{138, 0, 591}, - dictWord{135, 0, 1381}, - dictWord{12, 10, 441}, - dictWord{150, 11, 50}, - dictWord{9, 10, 449}, - dictWord{10, 10, 192}, - dictWord{138, 10, 740}, - dictWord{6, 0, 575}, - dictWord{132, 10, 241}, - dictWord{134, 0, 1175}, - dictWord{ - 134, - 0, - 653, - }, - dictWord{134, 0, 1761}, - dictWord{134, 0, 1198}, - dictWord{132, 10, 259}, - dictWord{6, 11, 343}, - dictWord{7, 11, 195}, - dictWord{9, 11, 226}, - dictWord{ - 10, - 11, - 197, - }, - dictWord{10, 11, 575}, - dictWord{11, 11, 502}, - dictWord{139, 11, 899}, - dictWord{7, 0, 1127}, - dictWord{7, 0, 1572}, - dictWord{10, 0, 297}, - dictWord{10, 0, 422}, - dictWord{11, 0, 764}, - dictWord{11, 0, 810}, - dictWord{12, 0, 264}, - dictWord{13, 0, 102}, - dictWord{13, 0, 300}, - dictWord{13, 0, 484}, - dictWord{ - 14, - 0, - 147, - }, - dictWord{14, 0, 229}, - dictWord{17, 0, 71}, - dictWord{18, 0, 118}, - dictWord{147, 0, 120}, - dictWord{135, 11, 666}, - dictWord{132, 0, 678}, - dictWord{ - 4, - 10, - 173, - }, - dictWord{5, 10, 312}, - dictWord{5, 10, 512}, - dictWord{135, 10, 1285}, - dictWord{7, 10, 1603}, - dictWord{7, 10, 1691}, - dictWord{9, 10, 464}, - dictWord{11, 10, 195}, - dictWord{12, 10, 279}, - dictWord{12, 10, 448}, - dictWord{14, 10, 11}, - dictWord{147, 10, 102}, - dictWord{16, 0, 99}, - dictWord{146, 0, 164}, - dictWord{7, 11, 1125}, - dictWord{9, 11, 143}, - dictWord{11, 11, 61}, - dictWord{14, 11, 405}, - dictWord{150, 11, 21}, - dictWord{137, 11, 260}, - dictWord{ - 4, - 10, - 452, - }, - dictWord{5, 10, 583}, - dictWord{5, 10, 817}, - dictWord{6, 10, 433}, - dictWord{7, 10, 593}, - dictWord{7, 10, 720}, - dictWord{7, 10, 1378}, - dictWord{ - 8, - 10, - 161, - }, - dictWord{9, 10, 284}, - dictWord{10, 10, 313}, - dictWord{139, 10, 886}, - dictWord{132, 10, 547}, - dictWord{136, 10, 722}, - dictWord{14, 0, 35}, - dictWord{142, 0, 191}, - dictWord{141, 0, 45}, - dictWord{138, 0, 121}, - dictWord{132, 0, 125}, - dictWord{134, 0, 1622}, - dictWord{133, 11, 959}, - dictWord{ - 8, - 10, - 420, - }, - dictWord{139, 10, 193}, - dictWord{132, 0, 721}, - dictWord{135, 10, 409}, - dictWord{136, 0, 145}, - dictWord{7, 0, 792}, - dictWord{8, 0, 147}, - dictWord{ - 10, - 0, - 821, - }, - dictWord{11, 0, 970}, - dictWord{11, 0, 1021}, - dictWord{136, 11, 173}, - dictWord{134, 11, 266}, - dictWord{132, 0, 715}, - dictWord{7, 0, 1999}, - dictWord{138, 10, 308}, - dictWord{133, 0, 531}, - dictWord{5, 0, 168}, - dictWord{5, 0, 930}, - dictWord{8, 0, 74}, - dictWord{9, 0, 623}, - dictWord{12, 0, 500}, - dictWord{ - 140, - 0, - 579, - }, - dictWord{144, 0, 65}, - dictWord{138, 11, 246}, - dictWord{6, 0, 220}, - dictWord{7, 0, 1101}, - dictWord{13, 0, 105}, - dictWord{142, 11, 314}, - dictWord{ - 5, - 10, - 1002, - }, - dictWord{136, 10, 745}, - dictWord{134, 0, 960}, - dictWord{20, 0, 0}, - dictWord{148, 11, 0}, - dictWord{4, 0, 1005}, - dictWord{4, 10, 239}, - dictWord{ - 6, - 10, - 477, - }, - dictWord{7, 10, 1607}, - dictWord{11, 10, 68}, - dictWord{139, 10, 617}, - dictWord{6, 0, 19}, - dictWord{7, 0, 1413}, - dictWord{139, 0, 428}, - dictWord{ - 149, - 10, - 13, - }, - dictWord{7, 0, 96}, - dictWord{8, 0, 401}, - dictWord{8, 0, 703}, - dictWord{9, 0, 896}, - dictWord{136, 11, 300}, - dictWord{134, 0, 1595}, - dictWord{145, 0, 116}, - dictWord{136, 0, 1021}, - dictWord{7, 0, 1961}, - dictWord{7, 0, 1965}, - dictWord{7, 0, 2030}, - dictWord{8, 0, 150}, - dictWord{8, 0, 702}, - dictWord{8, 0, 737}, - dictWord{ - 8, - 0, - 750, - }, - dictWord{140, 0, 366}, - dictWord{11, 11, 75}, - dictWord{142, 11, 267}, - dictWord{132, 10, 367}, - dictWord{8, 0, 800}, - dictWord{9, 0, 148}, - dictWord{ - 9, - 0, - 872, - }, - dictWord{9, 0, 890}, - dictWord{11, 0, 309}, - dictWord{11, 0, 1001}, - dictWord{13, 0, 267}, - dictWord{13, 0, 323}, - dictWord{5, 11, 427}, - dictWord{ - 5, - 11, - 734, - }, - dictWord{7, 11, 478}, - dictWord{136, 11, 52}, - dictWord{7, 11, 239}, - dictWord{11, 11, 217}, - dictWord{142, 11, 165}, - dictWord{132, 11, 323}, - dictWord{140, 11, 419}, - dictWord{13, 0, 299}, - dictWord{142, 0, 75}, - dictWord{6, 11, 87}, - dictWord{6, 11, 1734}, - dictWord{7, 11, 20}, - dictWord{7, 11, 1056}, - dictWord{ - 8, - 11, - 732, - }, - dictWord{9, 11, 406}, - dictWord{9, 11, 911}, - dictWord{138, 11, 694}, - dictWord{134, 0, 1383}, - dictWord{132, 10, 694}, - dictWord{ - 133, - 11, - 613, - }, - dictWord{137, 0, 779}, - dictWord{4, 0, 598}, - dictWord{140, 10, 687}, - dictWord{6, 0, 970}, - dictWord{135, 0, 424}, - dictWord{133, 0, 547}, - dictWord{ - 7, - 11, - 32, - }, - dictWord{7, 11, 984}, - dictWord{8, 11, 85}, - dictWord{8, 11, 709}, - dictWord{9, 11, 579}, - dictWord{9, 11, 847}, - dictWord{9, 11, 856}, - dictWord{10, 11, 799}, - dictWord{11, 11, 258}, - dictWord{11, 11, 1007}, - dictWord{12, 11, 331}, - dictWord{12, 11, 615}, - dictWord{13, 11, 188}, - dictWord{13, 11, 435}, - dictWord{ - 14, - 11, - 8, - }, - dictWord{15, 11, 165}, - dictWord{16, 11, 27}, - dictWord{148, 11, 40}, - dictWord{6, 0, 1222}, - dictWord{134, 0, 1385}, - dictWord{132, 0, 876}, - dictWord{ - 138, - 11, - 151, - }, - dictWord{135, 10, 213}, - dictWord{4, 11, 167}, - dictWord{135, 11, 82}, - dictWord{133, 0, 133}, - dictWord{6, 11, 24}, - dictWord{7, 11, 74}, - dictWord{ - 7, - 11, - 678, - }, - dictWord{137, 11, 258}, - dictWord{5, 11, 62}, - dictWord{6, 11, 534}, - dictWord{7, 11, 684}, - dictWord{7, 11, 1043}, - dictWord{7, 11, 1072}, - dictWord{ - 8, - 11, - 280, - }, - dictWord{8, 11, 541}, - dictWord{8, 11, 686}, - dictWord{10, 11, 519}, - dictWord{11, 11, 252}, - dictWord{140, 11, 282}, - dictWord{136, 0, 187}, - dictWord{8, 0, 8}, - dictWord{10, 0, 0}, - dictWord{10, 0, 818}, - dictWord{139, 0, 988}, - dictWord{132, 11, 359}, - dictWord{11, 0, 429}, - dictWord{15, 0, 51}, - dictWord{ - 135, - 10, - 1672, - }, - dictWord{136, 0, 685}, - dictWord{5, 11, 211}, - dictWord{7, 11, 88}, - dictWord{136, 11, 627}, - dictWord{134, 0, 472}, - dictWord{136, 0, 132}, - dictWord{ - 6, - 11, - 145, - }, - dictWord{141, 11, 336}, - dictWord{4, 10, 751}, - dictWord{11, 10, 390}, - dictWord{140, 10, 32}, - dictWord{6, 0, 938}, - dictWord{6, 0, 1060}, - dictWord{ - 4, - 11, - 263, - }, - dictWord{4, 10, 409}, - dictWord{133, 10, 78}, - dictWord{137, 0, 874}, - dictWord{8, 0, 774}, - dictWord{10, 0, 670}, - dictWord{12, 0, 51}, - dictWord{ - 4, - 11, - 916, - }, - dictWord{6, 10, 473}, - dictWord{7, 10, 1602}, - dictWord{10, 10, 698}, - dictWord{12, 10, 212}, - dictWord{13, 10, 307}, - dictWord{145, 10, 105}, - dictWord{146, 0, 92}, - dictWord{143, 10, 156}, - dictWord{132, 0, 830}, - dictWord{137, 0, 701}, - dictWord{4, 11, 599}, - dictWord{6, 11, 1634}, - dictWord{7, 11, 5}, - dictWord{7, 11, 55}, - dictWord{7, 11, 67}, - dictWord{7, 11, 97}, - dictWord{7, 11, 691}, - dictWord{7, 11, 979}, - dictWord{7, 11, 1697}, - dictWord{8, 11, 207}, - dictWord{ - 8, - 11, - 214, - }, - dictWord{8, 11, 231}, - dictWord{8, 11, 294}, - dictWord{8, 11, 336}, - dictWord{8, 11, 428}, - dictWord{8, 11, 451}, - dictWord{8, 11, 460}, - dictWord{8, 11, 471}, - dictWord{8, 11, 622}, - dictWord{8, 11, 626}, - dictWord{8, 11, 679}, - dictWord{8, 11, 759}, - dictWord{8, 11, 829}, - dictWord{9, 11, 11}, - dictWord{9, 11, 246}, - dictWord{ - 9, - 11, - 484, - }, - dictWord{9, 11, 573}, - dictWord{9, 11, 706}, - dictWord{9, 11, 762}, - dictWord{9, 11, 798}, - dictWord{9, 11, 855}, - dictWord{9, 11, 870}, - dictWord{ - 9, - 11, - 912, - }, - dictWord{10, 11, 303}, - dictWord{10, 11, 335}, - dictWord{10, 11, 424}, - dictWord{10, 11, 461}, - dictWord{10, 11, 543}, - dictWord{10, 11, 759}, - dictWord{10, 11, 814}, - dictWord{11, 11, 59}, - dictWord{11, 11, 199}, - dictWord{11, 11, 235}, - dictWord{11, 11, 475}, - dictWord{11, 11, 590}, - dictWord{11, 11, 929}, - dictWord{11, 11, 963}, - dictWord{12, 11, 114}, - dictWord{12, 11, 182}, - dictWord{12, 11, 226}, - dictWord{12, 11, 332}, - dictWord{12, 11, 439}, - dictWord{ - 12, - 11, - 575, - }, - dictWord{12, 11, 598}, - dictWord{13, 11, 8}, - dictWord{13, 11, 125}, - dictWord{13, 11, 194}, - dictWord{13, 11, 287}, - dictWord{14, 11, 197}, - dictWord{ - 14, - 11, - 383, - }, - dictWord{15, 11, 53}, - dictWord{17, 11, 63}, - dictWord{19, 11, 46}, - dictWord{19, 11, 98}, - dictWord{19, 11, 106}, - dictWord{148, 11, 85}, - dictWord{ - 4, - 0, - 127, - }, - dictWord{5, 0, 350}, - dictWord{6, 0, 356}, - dictWord{8, 0, 426}, - dictWord{9, 0, 572}, - dictWord{10, 0, 247}, - dictWord{139, 0, 312}, - dictWord{134, 0, 1215}, - dictWord{6, 0, 59}, - dictWord{9, 0, 603}, - dictWord{13, 0, 397}, - dictWord{7, 11, 1853}, - dictWord{138, 11, 437}, - dictWord{134, 0, 1762}, - dictWord{ - 147, - 11, - 126, - }, - dictWord{135, 10, 883}, - dictWord{13, 0, 293}, - dictWord{142, 0, 56}, - dictWord{133, 10, 617}, - dictWord{139, 10, 50}, - dictWord{5, 11, 187}, - dictWord{ - 7, - 10, - 1518, - }, - dictWord{139, 10, 694}, - dictWord{135, 0, 441}, - dictWord{6, 0, 111}, - dictWord{7, 0, 4}, - dictWord{8, 0, 163}, - dictWord{8, 0, 776}, - dictWord{ - 138, - 0, - 566, - }, - dictWord{132, 0, 806}, - dictWord{4, 11, 215}, - dictWord{9, 11, 38}, - dictWord{10, 11, 3}, - dictWord{11, 11, 23}, - dictWord{11, 11, 127}, - dictWord{ - 139, - 11, - 796, - }, - dictWord{14, 0, 233}, - dictWord{4, 10, 546}, - dictWord{135, 10, 2042}, - dictWord{135, 0, 1994}, - dictWord{134, 0, 1739}, - dictWord{135, 11, 1530}, - dictWord{136, 0, 393}, - dictWord{5, 0, 297}, - dictWord{7, 0, 1038}, - dictWord{14, 0, 359}, - dictWord{19, 0, 52}, - dictWord{148, 0, 47}, - dictWord{135, 0, 309}, - dictWord{ - 4, - 10, - 313, - }, - dictWord{133, 10, 577}, - dictWord{8, 10, 184}, - dictWord{141, 10, 433}, - dictWord{135, 10, 935}, - dictWord{12, 10, 186}, - dictWord{ - 12, - 10, - 292, - }, - dictWord{14, 10, 100}, - dictWord{146, 10, 70}, - dictWord{136, 0, 363}, - dictWord{14, 0, 175}, - dictWord{11, 10, 402}, - dictWord{12, 10, 109}, - dictWord{ - 12, - 10, - 431, - }, - dictWord{13, 10, 179}, - dictWord{13, 10, 206}, - dictWord{14, 10, 217}, - dictWord{16, 10, 3}, - dictWord{148, 10, 53}, - dictWord{5, 10, 886}, - dictWord{ - 6, - 10, - 46, - }, - dictWord{6, 10, 1790}, - dictWord{7, 10, 14}, - dictWord{7, 10, 732}, - dictWord{7, 10, 1654}, - dictWord{8, 10, 95}, - dictWord{8, 10, 327}, - dictWord{ - 8, - 10, - 616, - }, - dictWord{9, 10, 892}, - dictWord{10, 10, 598}, - dictWord{10, 10, 769}, - dictWord{11, 10, 134}, - dictWord{11, 10, 747}, - dictWord{12, 10, 378}, - dictWord{ - 142, - 10, - 97, - }, - dictWord{136, 0, 666}, - dictWord{135, 0, 1675}, - dictWord{6, 0, 655}, - dictWord{134, 0, 1600}, - dictWord{135, 0, 808}, - dictWord{133, 10, 1021}, - dictWord{4, 11, 28}, - dictWord{5, 11, 440}, - dictWord{7, 11, 248}, - dictWord{11, 11, 833}, - dictWord{140, 11, 344}, - dictWord{134, 11, 1654}, - dictWord{ - 132, - 0, - 280, - }, - dictWord{140, 0, 54}, - dictWord{4, 0, 421}, - dictWord{133, 0, 548}, - dictWord{132, 10, 153}, - dictWord{6, 11, 339}, - dictWord{135, 11, 923}, - dictWord{ - 133, - 11, - 853, - }, - dictWord{133, 10, 798}, - dictWord{132, 10, 587}, - dictWord{6, 11, 249}, - dictWord{7, 11, 1234}, - dictWord{139, 11, 573}, - dictWord{6, 10, 598}, - dictWord{7, 10, 42}, - dictWord{8, 10, 695}, - dictWord{10, 10, 212}, - dictWord{11, 10, 158}, - dictWord{14, 10, 196}, - dictWord{145, 10, 85}, - dictWord{7, 0, 249}, - dictWord{5, 10, 957}, - dictWord{133, 10, 1008}, - dictWord{4, 10, 129}, - dictWord{135, 10, 465}, - dictWord{6, 0, 254}, - dictWord{7, 0, 842}, - dictWord{7, 0, 1659}, - dictWord{9, 0, 109}, - dictWord{10, 0, 103}, - dictWord{7, 10, 908}, - dictWord{7, 10, 1201}, - dictWord{9, 10, 755}, - dictWord{11, 10, 906}, - dictWord{12, 10, 527}, - dictWord{146, 10, 7}, - dictWord{5, 0, 262}, - dictWord{136, 10, 450}, - dictWord{144, 0, 1}, - dictWord{10, 11, 201}, - dictWord{142, 11, 319}, - dictWord{7, 11, 49}, - dictWord{ - 7, - 11, - 392, - }, - dictWord{8, 11, 20}, - dictWord{8, 11, 172}, - dictWord{8, 11, 690}, - dictWord{9, 11, 383}, - dictWord{9, 11, 845}, - dictWord{10, 11, 48}, - dictWord{ - 11, - 11, - 293, - }, - dictWord{11, 11, 832}, - dictWord{11, 11, 920}, - dictWord{141, 11, 221}, - dictWord{5, 11, 858}, - dictWord{133, 11, 992}, - dictWord{134, 0, 805}, - dictWord{139, 10, 1003}, - dictWord{6, 0, 1630}, - dictWord{134, 11, 307}, - dictWord{7, 11, 1512}, - dictWord{135, 11, 1794}, - dictWord{6, 11, 268}, - dictWord{ - 137, - 11, - 62, - }, - dictWord{135, 10, 1868}, - dictWord{133, 0, 671}, - dictWord{4, 0, 989}, - dictWord{8, 0, 972}, - dictWord{136, 0, 998}, - dictWord{132, 11, 423}, - dictWord{132, 0, 889}, - dictWord{135, 0, 1382}, - dictWord{135, 0, 1910}, - dictWord{7, 10, 965}, - dictWord{7, 10, 1460}, - dictWord{135, 10, 1604}, - dictWord{ - 4, - 0, - 627, - }, - dictWord{5, 0, 775}, - dictWord{138, 11, 106}, - dictWord{134, 11, 348}, - dictWord{7, 0, 202}, - dictWord{11, 0, 362}, - dictWord{11, 0, 948}, - dictWord{ - 140, - 0, - 388, - }, - dictWord{138, 11, 771}, - dictWord{6, 11, 613}, - dictWord{136, 11, 223}, - dictWord{6, 0, 560}, - dictWord{7, 0, 451}, - dictWord{8, 0, 389}, - dictWord{ - 12, - 0, - 490, - }, - dictWord{13, 0, 16}, - dictWord{13, 0, 215}, - dictWord{13, 0, 351}, - dictWord{18, 0, 132}, - dictWord{147, 0, 125}, - dictWord{135, 0, 841}, - dictWord{ - 136, - 0, - 566, - }, - dictWord{136, 0, 938}, - dictWord{132, 11, 670}, - dictWord{5, 0, 912}, - dictWord{6, 0, 1695}, - dictWord{140, 11, 55}, - dictWord{9, 11, 40}, - dictWord{ - 139, - 11, - 136, - }, - dictWord{7, 0, 1361}, - dictWord{7, 10, 982}, - dictWord{10, 10, 32}, - dictWord{143, 10, 56}, - dictWord{11, 11, 259}, - dictWord{140, 11, 270}, - dictWord{ - 5, - 0, - 236, - }, - dictWord{6, 0, 572}, - dictWord{8, 0, 492}, - dictWord{11, 0, 618}, - dictWord{144, 0, 56}, - dictWord{8, 11, 572}, - dictWord{9, 11, 310}, - dictWord{9, 11, 682}, - dictWord{137, 11, 698}, - dictWord{134, 0, 1854}, - dictWord{5, 0, 190}, - dictWord{136, 0, 318}, - dictWord{133, 10, 435}, - dictWord{135, 0, 1376}, - dictWord{ - 4, - 11, - 296, - }, - dictWord{6, 11, 352}, - dictWord{7, 11, 401}, - dictWord{7, 11, 1410}, - dictWord{7, 11, 1594}, - dictWord{7, 11, 1674}, - dictWord{8, 11, 63}, - dictWord{ - 8, - 11, - 660, - }, - dictWord{137, 11, 74}, - dictWord{7, 0, 349}, - dictWord{5, 10, 85}, - dictWord{6, 10, 419}, - dictWord{7, 10, 305}, - dictWord{7, 10, 361}, - dictWord{7, 10, 1337}, - dictWord{8, 10, 71}, - dictWord{140, 10, 519}, - dictWord{4, 11, 139}, - dictWord{4, 11, 388}, - dictWord{140, 11, 188}, - dictWord{6, 0, 1972}, - dictWord{6, 0, 2013}, - dictWord{8, 0, 951}, - dictWord{10, 0, 947}, - dictWord{10, 0, 974}, - dictWord{10, 0, 1018}, - dictWord{142, 0, 476}, - dictWord{140, 10, 688}, - dictWord{ - 135, - 10, - 740, - }, - dictWord{5, 10, 691}, - dictWord{7, 10, 345}, - dictWord{9, 10, 94}, - dictWord{140, 10, 169}, - dictWord{9, 0, 344}, - dictWord{5, 10, 183}, - dictWord{6, 10, 582}, - dictWord{10, 10, 679}, - dictWord{140, 10, 435}, - dictWord{135, 10, 511}, - dictWord{132, 0, 850}, - dictWord{8, 11, 441}, - dictWord{10, 11, 314}, - dictWord{ - 143, - 11, - 3, - }, - dictWord{7, 10, 1993}, - dictWord{136, 10, 684}, - dictWord{4, 11, 747}, - dictWord{6, 11, 290}, - dictWord{6, 10, 583}, - dictWord{7, 11, 649}, - dictWord{ - 7, - 11, - 1479, - }, - dictWord{135, 11, 1583}, - dictWord{133, 11, 232}, - dictWord{133, 10, 704}, - dictWord{134, 0, 910}, - dictWord{4, 10, 179}, - dictWord{5, 10, 198}, - dictWord{133, 10, 697}, - dictWord{7, 10, 347}, - dictWord{7, 10, 971}, - dictWord{8, 10, 181}, - dictWord{138, 10, 711}, - dictWord{136, 11, 525}, - dictWord{ - 14, - 0, - 19, - }, - dictWord{14, 0, 28}, - dictWord{144, 0, 29}, - dictWord{7, 0, 85}, - dictWord{7, 0, 247}, - dictWord{8, 0, 585}, - dictWord{138, 0, 163}, - dictWord{4, 0, 487}, - dictWord{ - 7, - 11, - 472, - }, - dictWord{7, 11, 1801}, - dictWord{10, 11, 748}, - dictWord{141, 11, 458}, - dictWord{4, 10, 243}, - dictWord{5, 10, 203}, - dictWord{7, 10, 19}, - dictWord{ - 7, - 10, - 71, - }, - dictWord{7, 10, 113}, - dictWord{10, 10, 405}, - dictWord{11, 10, 357}, - dictWord{142, 10, 240}, - dictWord{7, 10, 1450}, - dictWord{139, 10, 99}, - dictWord{132, 11, 425}, - dictWord{138, 0, 145}, - dictWord{147, 0, 83}, - dictWord{6, 10, 492}, - dictWord{137, 11, 247}, - dictWord{4, 0, 1013}, - dictWord{ - 134, - 0, - 2033, - }, - dictWord{5, 10, 134}, - dictWord{6, 10, 408}, - dictWord{6, 10, 495}, - dictWord{135, 10, 1593}, - dictWord{135, 0, 1922}, - dictWord{134, 11, 1768}, - dictWord{4, 0, 124}, - dictWord{10, 0, 457}, - dictWord{11, 0, 121}, - dictWord{11, 0, 169}, - dictWord{11, 0, 870}, - dictWord{11, 0, 874}, - dictWord{12, 0, 214}, - dictWord{ - 14, - 0, - 187, - }, - dictWord{143, 0, 77}, - dictWord{5, 0, 557}, - dictWord{135, 0, 1457}, - dictWord{139, 0, 66}, - dictWord{5, 11, 943}, - dictWord{6, 11, 1779}, - dictWord{ - 142, - 10, - 4, - }, - dictWord{4, 10, 248}, - dictWord{4, 10, 665}, - dictWord{7, 10, 137}, - dictWord{137, 10, 349}, - dictWord{7, 0, 1193}, - dictWord{5, 11, 245}, - dictWord{ - 6, - 11, - 576, - }, - dictWord{7, 11, 582}, - dictWord{136, 11, 225}, - dictWord{144, 0, 82}, - dictWord{7, 10, 1270}, - dictWord{139, 10, 612}, - dictWord{5, 0, 454}, - dictWord{ - 10, - 0, - 352, - }, - dictWord{138, 11, 352}, - dictWord{18, 0, 57}, - dictWord{5, 10, 371}, - dictWord{135, 10, 563}, - dictWord{135, 0, 1333}, - dictWord{6, 0, 107}, - dictWord{ - 7, - 0, - 638, - }, - dictWord{7, 0, 1632}, - dictWord{9, 0, 396}, - dictWord{134, 11, 610}, - dictWord{5, 0, 370}, - dictWord{134, 0, 1756}, - dictWord{4, 10, 374}, - dictWord{ - 7, - 10, - 547, - }, - dictWord{7, 10, 1700}, - dictWord{7, 10, 1833}, - dictWord{139, 10, 858}, - dictWord{133, 0, 204}, - dictWord{6, 0, 1305}, - dictWord{9, 10, 311}, - dictWord{ - 141, - 10, - 42, - }, - dictWord{5, 0, 970}, - dictWord{134, 0, 1706}, - dictWord{6, 10, 1647}, - dictWord{7, 10, 1552}, - dictWord{7, 10, 2010}, - dictWord{9, 10, 494}, - dictWord{137, 10, 509}, - dictWord{13, 11, 455}, - dictWord{15, 11, 99}, - dictWord{15, 11, 129}, - dictWord{144, 11, 68}, - dictWord{135, 0, 3}, - dictWord{4, 0, 35}, - dictWord{ - 5, - 0, - 121, - }, - dictWord{5, 0, 483}, - dictWord{5, 0, 685}, - dictWord{6, 0, 489}, - dictWord{6, 0, 782}, - dictWord{6, 0, 1032}, - dictWord{7, 0, 1204}, - dictWord{136, 0, 394}, - dictWord{4, 0, 921}, - dictWord{133, 0, 1007}, - dictWord{8, 11, 360}, - dictWord{138, 11, 63}, - dictWord{135, 0, 1696}, - dictWord{134, 0, 1519}, - dictWord{ - 132, - 11, - 443, - }, - dictWord{135, 11, 944}, - dictWord{6, 10, 123}, - dictWord{7, 10, 214}, - dictWord{9, 10, 728}, - dictWord{10, 10, 157}, - dictWord{11, 10, 346}, - dictWord{11, 10, 662}, - dictWord{143, 10, 106}, - dictWord{137, 0, 981}, - dictWord{135, 10, 1435}, - dictWord{134, 0, 1072}, - dictWord{132, 0, 712}, - dictWord{ - 134, - 0, - 1629, - }, - dictWord{134, 0, 728}, - dictWord{4, 11, 298}, - dictWord{137, 11, 483}, - dictWord{6, 0, 1177}, - dictWord{6, 0, 1271}, - dictWord{5, 11, 164}, - dictWord{ - 7, - 11, - 121, - }, - dictWord{142, 11, 189}, - dictWord{7, 0, 1608}, - dictWord{4, 10, 707}, - dictWord{5, 10, 588}, - dictWord{6, 10, 393}, - dictWord{13, 10, 106}, - dictWord{ - 18, - 10, - 49, - }, - dictWord{147, 10, 41}, - dictWord{23, 0, 16}, - dictWord{151, 11, 16}, - dictWord{6, 10, 211}, - dictWord{7, 10, 1690}, - dictWord{11, 10, 486}, - dictWord{140, 10, 369}, - dictWord{133, 0, 485}, - dictWord{19, 11, 15}, - dictWord{149, 11, 27}, - dictWord{4, 11, 172}, - dictWord{9, 11, 611}, - dictWord{10, 11, 436}, - dictWord{12, 11, 673}, - dictWord{141, 11, 255}, - dictWord{5, 11, 844}, - dictWord{10, 11, 484}, - dictWord{11, 11, 754}, - dictWord{12, 11, 457}, - dictWord{ - 14, - 11, - 171, - }, - dictWord{14, 11, 389}, - dictWord{146, 11, 153}, - dictWord{4, 0, 285}, - dictWord{5, 0, 27}, - dictWord{5, 0, 317}, - dictWord{6, 0, 301}, - dictWord{7, 0, 7}, - dictWord{ - 8, - 0, - 153, - }, - dictWord{10, 0, 766}, - dictWord{11, 0, 468}, - dictWord{12, 0, 467}, - dictWord{141, 0, 143}, - dictWord{134, 0, 1462}, - dictWord{9, 11, 263}, - dictWord{ - 10, - 11, - 147, - }, - dictWord{138, 11, 492}, - dictWord{133, 11, 537}, - dictWord{6, 0, 1945}, - dictWord{6, 0, 1986}, - dictWord{6, 0, 1991}, - dictWord{134, 0, 2038}, - dictWord{134, 10, 219}, - dictWord{137, 11, 842}, - dictWord{14, 0, 52}, - dictWord{17, 0, 50}, - dictWord{5, 10, 582}, - dictWord{6, 10, 1646}, - dictWord{7, 10, 99}, - dictWord{7, 10, 1962}, - dictWord{7, 10, 1986}, - dictWord{8, 10, 515}, - dictWord{8, 10, 773}, - dictWord{9, 10, 23}, - dictWord{9, 10, 491}, - dictWord{12, 10, 620}, - dictWord{142, 10, 93}, - dictWord{138, 11, 97}, - dictWord{20, 0, 21}, - dictWord{20, 0, 44}, - dictWord{133, 10, 851}, - dictWord{136, 0, 819}, - dictWord{139, 0, 917}, - dictWord{5, 11, 230}, - dictWord{5, 11, 392}, - dictWord{6, 11, 420}, - dictWord{8, 10, 762}, - dictWord{8, 10, 812}, - dictWord{9, 11, 568}, - dictWord{9, 10, 910}, - dictWord{140, 11, 612}, - dictWord{135, 0, 784}, - dictWord{15, 0, 135}, - dictWord{143, 11, 135}, - dictWord{10, 0, 454}, - dictWord{140, 0, 324}, - dictWord{4, 11, 0}, - dictWord{5, 11, 41}, - dictWord{7, 11, 1459}, - dictWord{7, 11, 1469}, - dictWord{7, 11, 1618}, - dictWord{7, 11, 1859}, - dictWord{9, 11, 549}, - dictWord{139, 11, 905}, - dictWord{4, 10, 98}, - dictWord{7, 10, 1365}, - dictWord{9, 10, 422}, - dictWord{9, 10, 670}, - dictWord{10, 10, 775}, - dictWord{11, 10, 210}, - dictWord{13, 10, 26}, - dictWord{13, 10, 457}, - dictWord{141, 10, 476}, - dictWord{6, 0, 1719}, - dictWord{6, 0, 1735}, - dictWord{7, 0, 2016}, - dictWord{7, 0, 2020}, - dictWord{8, 0, 837}, - dictWord{137, 0, 852}, - dictWord{133, 11, 696}, - dictWord{135, 0, 852}, - dictWord{132, 0, 952}, - dictWord{134, 10, 1730}, - dictWord{132, 11, 771}, - dictWord{ - 138, - 0, - 568, - }, - dictWord{137, 0, 448}, - dictWord{139, 0, 146}, - dictWord{8, 0, 67}, - dictWord{138, 0, 419}, - dictWord{133, 11, 921}, - dictWord{137, 10, 147}, - dictWord{134, 0, 1826}, - dictWord{10, 0, 657}, - dictWord{14, 0, 297}, - dictWord{142, 0, 361}, - dictWord{6, 0, 666}, - dictWord{6, 0, 767}, - dictWord{134, 0, 1542}, - dictWord{139, 0, 729}, - dictWord{6, 11, 180}, - dictWord{7, 11, 1137}, - dictWord{8, 11, 751}, - dictWord{139, 11, 805}, - dictWord{4, 11, 183}, - dictWord{7, 11, 271}, - dictWord{11, 11, 824}, - dictWord{11, 11, 952}, - dictWord{13, 11, 278}, - dictWord{13, 11, 339}, - dictWord{13, 11, 482}, - dictWord{14, 11, 424}, - dictWord{ - 148, - 11, - 99, - }, - dictWord{4, 0, 669}, - dictWord{5, 11, 477}, - dictWord{5, 11, 596}, - dictWord{6, 11, 505}, - dictWord{7, 11, 1221}, - dictWord{11, 11, 907}, - dictWord{ - 12, - 11, - 209, - }, - dictWord{141, 11, 214}, - dictWord{135, 11, 1215}, - dictWord{5, 0, 402}, - dictWord{6, 10, 30}, - dictWord{11, 10, 56}, - dictWord{139, 10, 305}, - dictWord{ - 7, - 11, - 564, - }, - dictWord{142, 11, 168}, - dictWord{139, 0, 152}, - dictWord{7, 0, 912}, - dictWord{135, 10, 1614}, - dictWord{4, 10, 150}, - dictWord{5, 10, 303}, - dictWord{134, 10, 327}, - dictWord{7, 0, 320}, - dictWord{8, 0, 51}, - dictWord{9, 0, 868}, - dictWord{10, 0, 833}, - dictWord{12, 0, 481}, - dictWord{12, 0, 570}, - dictWord{ - 148, - 0, - 106, - }, - dictWord{132, 0, 445}, - dictWord{7, 11, 274}, - dictWord{11, 11, 263}, - dictWord{11, 11, 479}, - dictWord{11, 11, 507}, - dictWord{140, 11, 277}, - dictWord{10, 0, 555}, - dictWord{11, 0, 308}, - dictWord{19, 0, 95}, - dictWord{6, 11, 1645}, - dictWord{8, 10, 192}, - dictWord{10, 10, 78}, - dictWord{141, 10, 359}, - dictWord{135, 10, 786}, - dictWord{6, 11, 92}, - dictWord{6, 11, 188}, - dictWord{7, 11, 1269}, - dictWord{7, 11, 1524}, - dictWord{7, 11, 1876}, - dictWord{10, 11, 228}, - dictWord{139, 11, 1020}, - dictWord{4, 11, 459}, - dictWord{133, 11, 966}, - dictWord{11, 0, 386}, - dictWord{6, 10, 1638}, - dictWord{7, 10, 79}, - dictWord{ - 7, - 10, - 496, - }, - dictWord{9, 10, 138}, - dictWord{10, 10, 336}, - dictWord{12, 10, 412}, - dictWord{12, 10, 440}, - dictWord{142, 10, 305}, - dictWord{133, 0, 239}, - dictWord{ - 7, - 0, - 83, - }, - dictWord{7, 0, 1990}, - dictWord{8, 0, 130}, - dictWord{139, 0, 720}, - dictWord{138, 11, 709}, - dictWord{4, 0, 143}, - dictWord{5, 0, 550}, - dictWord{ - 133, - 0, - 752, - }, - dictWord{5, 0, 123}, - dictWord{6, 0, 530}, - dictWord{7, 0, 348}, - dictWord{135, 0, 1419}, - dictWord{135, 0, 2024}, - dictWord{6, 11, 18}, - dictWord{7, 11, 179}, - dictWord{7, 11, 721}, - dictWord{7, 11, 932}, - dictWord{8, 11, 548}, - dictWord{8, 11, 757}, - dictWord{9, 11, 54}, - dictWord{9, 11, 65}, - dictWord{9, 11, 532}, - dictWord{ - 9, - 11, - 844, - }, - dictWord{10, 11, 113}, - dictWord{10, 11, 117}, - dictWord{10, 11, 236}, - dictWord{10, 11, 315}, - dictWord{10, 11, 430}, - dictWord{10, 11, 798}, - dictWord{11, 11, 153}, - dictWord{11, 11, 351}, - dictWord{11, 11, 375}, - dictWord{12, 11, 78}, - dictWord{12, 11, 151}, - dictWord{12, 11, 392}, - dictWord{ - 14, - 11, - 248, - }, - dictWord{143, 11, 23}, - dictWord{7, 10, 204}, - dictWord{7, 10, 415}, - dictWord{8, 10, 42}, - dictWord{10, 10, 85}, - dictWord{139, 10, 564}, - dictWord{ - 134, - 0, - 958, - }, - dictWord{133, 11, 965}, - dictWord{132, 0, 210}, - dictWord{135, 11, 1429}, - dictWord{138, 11, 480}, - dictWord{134, 11, 182}, - dictWord{ - 139, - 11, - 345, - }, - dictWord{10, 11, 65}, - dictWord{10, 11, 488}, - dictWord{138, 11, 497}, - dictWord{4, 10, 3}, - dictWord{5, 10, 247}, - dictWord{5, 10, 644}, - dictWord{ - 7, - 10, - 744, - }, - dictWord{7, 10, 1207}, - dictWord{7, 10, 1225}, - dictWord{7, 10, 1909}, - dictWord{146, 10, 147}, - dictWord{132, 0, 430}, - dictWord{5, 10, 285}, - dictWord{ - 9, - 10, - 67, - }, - dictWord{13, 10, 473}, - dictWord{143, 10, 82}, - dictWord{144, 11, 16}, - dictWord{7, 11, 1162}, - dictWord{9, 11, 588}, - dictWord{10, 11, 260}, - dictWord{151, 10, 8}, - dictWord{133, 0, 213}, - dictWord{138, 0, 7}, - dictWord{135, 0, 801}, - dictWord{134, 11, 1786}, - dictWord{135, 11, 308}, - dictWord{6, 0, 936}, - dictWord{134, 0, 1289}, - dictWord{133, 0, 108}, - dictWord{132, 0, 885}, - dictWord{133, 0, 219}, - dictWord{139, 0, 587}, - dictWord{4, 0, 193}, - dictWord{5, 0, 916}, - dictWord{6, 0, 1041}, - dictWord{7, 0, 364}, - dictWord{10, 0, 398}, - dictWord{10, 0, 726}, - dictWord{11, 0, 317}, - dictWord{11, 0, 626}, - dictWord{12, 0, 142}, - dictWord{12, 0, 288}, - dictWord{12, 0, 678}, - dictWord{13, 0, 313}, - dictWord{15, 0, 113}, - dictWord{146, 0, 114}, - dictWord{135, 0, 1165}, - dictWord{6, 0, 241}, - dictWord{ - 9, - 0, - 342, - }, - dictWord{10, 0, 729}, - dictWord{11, 0, 284}, - dictWord{11, 0, 445}, - dictWord{11, 0, 651}, - dictWord{11, 0, 863}, - dictWord{13, 0, 398}, - dictWord{ - 146, - 0, - 99, - }, - dictWord{7, 0, 907}, - dictWord{136, 0, 832}, - dictWord{9, 0, 303}, - dictWord{4, 10, 29}, - dictWord{6, 10, 532}, - dictWord{7, 10, 1628}, - dictWord{7, 10, 1648}, - dictWord{9, 10, 350}, - dictWord{10, 10, 433}, - dictWord{11, 10, 97}, - dictWord{11, 10, 557}, - dictWord{11, 10, 745}, - dictWord{12, 10, 289}, - dictWord{ - 12, - 10, - 335, - }, - dictWord{12, 10, 348}, - dictWord{12, 10, 606}, - dictWord{13, 10, 116}, - dictWord{13, 10, 233}, - dictWord{13, 10, 466}, - dictWord{14, 10, 181}, - dictWord{ - 14, - 10, - 209, - }, - dictWord{14, 10, 232}, - dictWord{14, 10, 236}, - dictWord{14, 10, 300}, - dictWord{16, 10, 41}, - dictWord{148, 10, 97}, - dictWord{7, 11, 423}, - dictWord{7, 10, 1692}, - dictWord{136, 11, 588}, - dictWord{6, 0, 931}, - dictWord{134, 0, 1454}, - dictWord{5, 10, 501}, - dictWord{7, 10, 1704}, - dictWord{9, 10, 553}, - dictWord{11, 10, 520}, - dictWord{12, 10, 557}, - dictWord{141, 10, 249}, - dictWord{136, 11, 287}, - dictWord{4, 0, 562}, - dictWord{9, 0, 254}, - dictWord{ - 139, - 0, - 879, - }, - dictWord{132, 0, 786}, - dictWord{14, 11, 32}, - dictWord{18, 11, 85}, - dictWord{20, 11, 2}, - dictWord{152, 11, 16}, - dictWord{135, 0, 1294}, - dictWord{ - 7, - 11, - 723, - }, - dictWord{135, 11, 1135}, - dictWord{6, 0, 216}, - dictWord{7, 0, 901}, - dictWord{7, 0, 1343}, - dictWord{8, 0, 493}, - dictWord{134, 11, 403}, - dictWord{ - 7, - 11, - 719, - }, - dictWord{8, 11, 809}, - dictWord{136, 11, 834}, - dictWord{5, 11, 210}, - dictWord{6, 11, 213}, - dictWord{7, 11, 60}, - dictWord{10, 11, 364}, - dictWord{ - 139, - 11, - 135, - }, - dictWord{7, 0, 341}, - dictWord{11, 0, 219}, - dictWord{5, 11, 607}, - dictWord{8, 11, 326}, - dictWord{136, 11, 490}, - dictWord{4, 11, 701}, - dictWord{ - 5, - 11, - 472, - }, - dictWord{5, 11, 639}, - dictWord{7, 11, 1249}, - dictWord{9, 11, 758}, - dictWord{139, 11, 896}, - dictWord{135, 11, 380}, - dictWord{135, 11, 1947}, - dictWord{139, 0, 130}, - dictWord{135, 0, 1734}, - dictWord{10, 0, 115}, - dictWord{11, 0, 420}, - dictWord{12, 0, 154}, - dictWord{13, 0, 404}, - dictWord{14, 0, 346}, - dictWord{143, 0, 54}, - dictWord{134, 10, 129}, - dictWord{4, 11, 386}, - dictWord{7, 11, 41}, - dictWord{8, 11, 405}, - dictWord{9, 11, 497}, - dictWord{11, 11, 110}, - dictWord{11, 11, 360}, - dictWord{15, 11, 37}, - dictWord{144, 11, 84}, - dictWord{141, 11, 282}, - dictWord{5, 11, 46}, - dictWord{7, 11, 1452}, - dictWord{7, 11, 1480}, - dictWord{8, 11, 634}, - dictWord{140, 11, 472}, - dictWord{4, 11, 524}, - dictWord{136, 11, 810}, - dictWord{10, 11, 238}, - dictWord{141, 11, 33}, - dictWord{ - 133, - 0, - 604, - }, - dictWord{5, 0, 1011}, - dictWord{136, 0, 701}, - dictWord{8, 0, 856}, - dictWord{8, 0, 858}, - dictWord{8, 0, 879}, - dictWord{12, 0, 702}, - dictWord{142, 0, 447}, - dictWord{4, 0, 54}, - dictWord{5, 0, 666}, - dictWord{7, 0, 1039}, - dictWord{7, 0, 1130}, - dictWord{9, 0, 195}, - dictWord{138, 0, 302}, - dictWord{4, 10, 25}, - dictWord{ - 5, - 10, - 60, - }, - dictWord{6, 10, 504}, - dictWord{7, 10, 614}, - dictWord{7, 10, 1155}, - dictWord{140, 10, 0}, - dictWord{7, 10, 1248}, - dictWord{11, 10, 621}, - dictWord{ - 139, - 10, - 702, - }, - dictWord{133, 11, 997}, - dictWord{137, 10, 321}, - dictWord{134, 0, 1669}, - dictWord{134, 0, 1791}, - dictWord{4, 10, 379}, - dictWord{ - 135, - 10, - 1397, - }, - dictWord{138, 11, 372}, - dictWord{5, 11, 782}, - dictWord{5, 11, 829}, - dictWord{134, 11, 1738}, - dictWord{135, 0, 1228}, - dictWord{4, 10, 118}, - dictWord{6, 10, 274}, - dictWord{6, 10, 361}, - dictWord{7, 10, 75}, - dictWord{141, 10, 441}, - dictWord{132, 0, 623}, - dictWord{9, 11, 279}, - dictWord{10, 11, 407}, - dictWord{14, 11, 84}, - dictWord{150, 11, 18}, - dictWord{137, 10, 841}, - dictWord{135, 0, 798}, - dictWord{140, 10, 693}, - dictWord{5, 10, 314}, - dictWord{6, 10, 221}, - dictWord{7, 10, 419}, - dictWord{10, 10, 650}, - dictWord{11, 10, 396}, - dictWord{12, 10, 156}, - dictWord{13, 10, 369}, - dictWord{14, 10, 333}, - dictWord{ - 145, - 10, - 47, - }, - dictWord{135, 11, 1372}, - dictWord{7, 0, 122}, - dictWord{9, 0, 259}, - dictWord{10, 0, 84}, - dictWord{11, 0, 470}, - dictWord{12, 0, 541}, - dictWord{ - 141, - 0, - 379, - }, - dictWord{134, 0, 837}, - dictWord{8, 0, 1013}, - dictWord{4, 11, 78}, - dictWord{5, 11, 96}, - dictWord{5, 11, 182}, - dictWord{7, 11, 1724}, - dictWord{ - 7, - 11, - 1825, - }, - dictWord{10, 11, 394}, - dictWord{10, 11, 471}, - dictWord{11, 11, 532}, - dictWord{14, 11, 340}, - dictWord{145, 11, 88}, - dictWord{134, 0, 577}, - dictWord{135, 11, 1964}, - dictWord{132, 10, 913}, - dictWord{134, 0, 460}, - dictWord{8, 0, 891}, - dictWord{10, 0, 901}, - dictWord{10, 0, 919}, - dictWord{10, 0, 932}, - dictWord{12, 0, 715}, - dictWord{12, 0, 728}, - dictWord{12, 0, 777}, - dictWord{14, 0, 457}, - dictWord{144, 0, 103}, - dictWord{5, 0, 82}, - dictWord{5, 0, 131}, - dictWord{ - 7, - 0, - 1755, - }, - dictWord{8, 0, 31}, - dictWord{9, 0, 168}, - dictWord{9, 0, 764}, - dictWord{139, 0, 869}, - dictWord{136, 10, 475}, - dictWord{6, 0, 605}, - dictWord{ - 5, - 10, - 1016, - }, - dictWord{9, 11, 601}, - dictWord{9, 11, 619}, - dictWord{10, 11, 505}, - dictWord{10, 11, 732}, - dictWord{11, 11, 355}, - dictWord{140, 11, 139}, - dictWord{ - 7, - 10, - 602, - }, - dictWord{8, 10, 179}, - dictWord{10, 10, 781}, - dictWord{140, 10, 126}, - dictWord{134, 0, 1246}, - dictWord{6, 10, 329}, - dictWord{138, 10, 111}, - dictWord{6, 11, 215}, - dictWord{7, 11, 1028}, - dictWord{7, 11, 1473}, - dictWord{7, 11, 1721}, - dictWord{9, 11, 424}, - dictWord{138, 11, 779}, - dictWord{5, 0, 278}, - dictWord{137, 0, 68}, - dictWord{6, 0, 932}, - dictWord{6, 0, 1084}, - dictWord{144, 0, 86}, - dictWord{4, 0, 163}, - dictWord{5, 0, 201}, - dictWord{5, 0, 307}, - dictWord{ - 5, - 0, - 310, - }, - dictWord{6, 0, 335}, - dictWord{7, 0, 284}, - dictWord{7, 0, 1660}, - dictWord{136, 0, 165}, - dictWord{136, 0, 781}, - dictWord{134, 0, 707}, - dictWord{6, 0, 33}, - dictWord{135, 0, 1244}, - dictWord{5, 10, 821}, - dictWord{6, 11, 67}, - dictWord{6, 10, 1687}, - dictWord{7, 11, 258}, - dictWord{7, 11, 1630}, - dictWord{9, 11, 354}, - dictWord{9, 11, 675}, - dictWord{10, 11, 830}, - dictWord{14, 11, 80}, - dictWord{145, 11, 80}, - dictWord{6, 11, 141}, - dictWord{7, 11, 225}, - dictWord{9, 11, 59}, - dictWord{9, 11, 607}, - dictWord{10, 11, 312}, - dictWord{11, 11, 687}, - dictWord{12, 11, 555}, - dictWord{13, 11, 373}, - dictWord{13, 11, 494}, - dictWord{148, 11, 58}, - dictWord{134, 0, 1113}, - dictWord{9, 0, 388}, - dictWord{5, 10, 71}, - dictWord{7, 10, 1407}, - dictWord{9, 10, 704}, - dictWord{10, 10, 261}, - dictWord{10, 10, 619}, - dictWord{11, 10, 547}, - dictWord{11, 10, 619}, - dictWord{143, 10, 157}, - dictWord{7, 0, 1953}, - dictWord{136, 0, 720}, - dictWord{138, 0, 203}, - dictWord{ - 7, - 10, - 2008, - }, - dictWord{9, 10, 337}, - dictWord{138, 10, 517}, - dictWord{6, 0, 326}, - dictWord{7, 0, 677}, - dictWord{137, 0, 425}, - dictWord{139, 11, 81}, - dictWord{ - 7, - 0, - 1316, - }, - dictWord{7, 0, 1412}, - dictWord{7, 0, 1839}, - dictWord{9, 0, 589}, - dictWord{11, 0, 241}, - dictWord{11, 0, 676}, - dictWord{11, 0, 811}, - dictWord{11, 0, 891}, - dictWord{12, 0, 140}, - dictWord{12, 0, 346}, - dictWord{12, 0, 479}, - dictWord{13, 0, 140}, - dictWord{13, 0, 381}, - dictWord{14, 0, 188}, - dictWord{18, 0, 30}, - dictWord{148, 0, 108}, - dictWord{5, 0, 416}, - dictWord{6, 10, 86}, - dictWord{6, 10, 603}, - dictWord{7, 10, 292}, - dictWord{7, 10, 561}, - dictWord{8, 10, 257}, - dictWord{ - 8, - 10, - 382, - }, - dictWord{9, 10, 721}, - dictWord{9, 10, 778}, - dictWord{11, 10, 581}, - dictWord{140, 10, 466}, - dictWord{4, 10, 486}, - dictWord{133, 10, 491}, - dictWord{134, 0, 1300}, - dictWord{132, 10, 72}, - dictWord{7, 0, 847}, - dictWord{6, 10, 265}, - dictWord{7, 11, 430}, - dictWord{139, 11, 46}, - dictWord{5, 11, 602}, - dictWord{6, 11, 106}, - dictWord{7, 11, 1786}, - dictWord{7, 11, 1821}, - dictWord{7, 11, 2018}, - dictWord{9, 11, 418}, - dictWord{137, 11, 763}, - dictWord{5, 0, 358}, - dictWord{7, 0, 535}, - dictWord{7, 0, 1184}, - dictWord{10, 0, 662}, - dictWord{13, 0, 212}, - dictWord{13, 0, 304}, - dictWord{13, 0, 333}, - dictWord{145, 0, 98}, - dictWord{ - 5, - 11, - 65, - }, - dictWord{6, 11, 416}, - dictWord{7, 11, 1720}, - dictWord{7, 11, 1924}, - dictWord{8, 11, 677}, - dictWord{10, 11, 109}, - dictWord{11, 11, 14}, - dictWord{ - 11, - 11, - 70, - }, - dictWord{11, 11, 569}, - dictWord{11, 11, 735}, - dictWord{15, 11, 153}, - dictWord{148, 11, 80}, - dictWord{6, 0, 1823}, - dictWord{8, 0, 839}, - dictWord{ - 8, - 0, - 852, - }, - dictWord{8, 0, 903}, - dictWord{10, 0, 940}, - dictWord{12, 0, 707}, - dictWord{140, 0, 775}, - dictWord{135, 11, 1229}, - dictWord{6, 0, 1522}, - dictWord{ - 140, - 0, - 654, - }, - dictWord{136, 11, 595}, - dictWord{139, 0, 163}, - dictWord{141, 0, 314}, - dictWord{132, 0, 978}, - dictWord{4, 0, 601}, - dictWord{6, 0, 2035}, - dictWord{137, 10, 234}, - dictWord{5, 10, 815}, - dictWord{6, 10, 1688}, - dictWord{134, 10, 1755}, - dictWord{133, 0, 946}, - dictWord{136, 0, 434}, - dictWord{ - 6, - 10, - 197, - }, - dictWord{136, 10, 205}, - dictWord{7, 0, 411}, - dictWord{7, 0, 590}, - dictWord{8, 0, 631}, - dictWord{9, 0, 323}, - dictWord{10, 0, 355}, - dictWord{11, 0, 491}, - dictWord{12, 0, 143}, - dictWord{12, 0, 402}, - dictWord{13, 0, 73}, - dictWord{14, 0, 408}, - dictWord{15, 0, 107}, - dictWord{146, 0, 71}, - dictWord{7, 0, 1467}, - dictWord{ - 8, - 0, - 328, - }, - dictWord{10, 0, 544}, - dictWord{11, 0, 955}, - dictWord{12, 0, 13}, - dictWord{13, 0, 320}, - dictWord{145, 0, 83}, - dictWord{142, 0, 410}, - dictWord{ - 11, - 0, - 511, - }, - dictWord{13, 0, 394}, - dictWord{14, 0, 298}, - dictWord{14, 0, 318}, - dictWord{146, 0, 103}, - dictWord{6, 10, 452}, - dictWord{7, 10, 312}, - dictWord{ - 138, - 10, - 219, - }, - dictWord{138, 10, 589}, - dictWord{4, 10, 333}, - dictWord{9, 10, 176}, - dictWord{12, 10, 353}, - dictWord{141, 10, 187}, - dictWord{135, 11, 329}, - dictWord{132, 11, 469}, - dictWord{5, 0, 835}, - dictWord{134, 0, 483}, - dictWord{134, 11, 1743}, - dictWord{5, 11, 929}, - dictWord{6, 11, 340}, - dictWord{8, 11, 376}, - dictWord{136, 11, 807}, - dictWord{134, 10, 1685}, - dictWord{132, 0, 677}, - dictWord{5, 11, 218}, - dictWord{7, 11, 1610}, - dictWord{138, 11, 83}, - dictWord{ - 5, - 11, - 571, - }, - dictWord{135, 11, 1842}, - dictWord{132, 11, 455}, - dictWord{137, 0, 70}, - dictWord{135, 0, 1405}, - dictWord{7, 10, 135}, - dictWord{8, 10, 7}, - dictWord{ - 8, - 10, - 62, - }, - dictWord{9, 10, 243}, - dictWord{10, 10, 658}, - dictWord{10, 10, 697}, - dictWord{11, 10, 456}, - dictWord{139, 10, 756}, - dictWord{9, 10, 395}, - dictWord{138, 10, 79}, - dictWord{137, 0, 108}, - dictWord{6, 11, 161}, - dictWord{7, 11, 372}, - dictWord{137, 11, 597}, - dictWord{132, 11, 349}, - dictWord{ - 132, - 0, - 777, - }, - dictWord{132, 0, 331}, - dictWord{135, 10, 631}, - dictWord{133, 0, 747}, - dictWord{6, 11, 432}, - dictWord{6, 11, 608}, - dictWord{139, 11, 322}, - dictWord{138, 10, 835}, - dictWord{5, 11, 468}, - dictWord{7, 11, 1809}, - dictWord{10, 11, 325}, - dictWord{11, 11, 856}, - dictWord{12, 11, 345}, - dictWord{ - 143, - 11, - 104, - }, - dictWord{133, 11, 223}, - dictWord{7, 10, 406}, - dictWord{7, 10, 459}, - dictWord{8, 10, 606}, - dictWord{139, 10, 726}, - dictWord{132, 11, 566}, - dictWord{142, 0, 68}, - dictWord{4, 11, 59}, - dictWord{135, 11, 1394}, - dictWord{6, 11, 436}, - dictWord{139, 11, 481}, - dictWord{4, 11, 48}, - dictWord{5, 11, 271}, - dictWord{135, 11, 953}, - dictWord{139, 11, 170}, - dictWord{5, 11, 610}, - dictWord{136, 11, 457}, - dictWord{133, 11, 755}, - dictWord{135, 11, 1217}, - dictWord{ - 133, - 10, - 612, - }, - dictWord{132, 11, 197}, - dictWord{132, 0, 505}, - dictWord{4, 10, 372}, - dictWord{7, 10, 482}, - dictWord{8, 10, 158}, - dictWord{9, 10, 602}, - dictWord{ - 9, - 10, - 615, - }, - dictWord{10, 10, 245}, - dictWord{10, 10, 678}, - dictWord{10, 10, 744}, - dictWord{11, 10, 248}, - dictWord{139, 10, 806}, - dictWord{133, 0, 326}, - dictWord{5, 10, 854}, - dictWord{135, 10, 1991}, - dictWord{4, 0, 691}, - dictWord{146, 0, 16}, - dictWord{6, 0, 628}, - dictWord{9, 0, 35}, - dictWord{10, 0, 680}, - dictWord{10, 0, 793}, - dictWord{11, 0, 364}, - dictWord{13, 0, 357}, - dictWord{143, 0, 164}, - dictWord{138, 0, 654}, - dictWord{6, 0, 32}, - dictWord{7, 0, 385}, - dictWord{ - 7, - 0, - 757, - }, - dictWord{7, 0, 1916}, - dictWord{8, 0, 37}, - dictWord{8, 0, 94}, - dictWord{8, 0, 711}, - dictWord{9, 0, 541}, - dictWord{10, 0, 162}, - dictWord{10, 0, 795}, - dictWord{ - 11, - 0, - 989, - }, - dictWord{11, 0, 1010}, - dictWord{12, 0, 14}, - dictWord{142, 0, 308}, - dictWord{133, 11, 217}, - dictWord{6, 0, 152}, - dictWord{6, 0, 349}, - dictWord{ - 6, - 0, - 1682, - }, - dictWord{7, 0, 1252}, - dictWord{8, 0, 112}, - dictWord{9, 0, 435}, - dictWord{9, 0, 668}, - dictWord{10, 0, 290}, - dictWord{10, 0, 319}, - dictWord{10, 0, 815}, - dictWord{11, 0, 180}, - dictWord{11, 0, 837}, - dictWord{12, 0, 240}, - dictWord{13, 0, 152}, - dictWord{13, 0, 219}, - dictWord{142, 0, 158}, - dictWord{4, 0, 581}, - dictWord{134, 0, 726}, - dictWord{5, 10, 195}, - dictWord{135, 10, 1685}, - dictWord{6, 0, 126}, - dictWord{7, 0, 573}, - dictWord{8, 0, 397}, - dictWord{142, 0, 44}, - dictWord{138, 0, 89}, - dictWord{7, 10, 1997}, - dictWord{8, 10, 730}, - dictWord{139, 10, 1006}, - dictWord{134, 0, 1531}, - dictWord{134, 0, 1167}, - dictWord{ - 5, - 0, - 926, - }, - dictWord{12, 0, 203}, - dictWord{133, 10, 751}, - dictWord{4, 11, 165}, - dictWord{7, 11, 1398}, - dictWord{135, 11, 1829}, - dictWord{7, 0, 1232}, - dictWord{137, 0, 531}, - dictWord{135, 10, 821}, - dictWord{134, 0, 943}, - dictWord{133, 0, 670}, - dictWord{4, 0, 880}, - dictWord{139, 0, 231}, - dictWord{ - 134, - 0, - 1617, - }, - dictWord{135, 0, 1957}, - dictWord{5, 11, 9}, - dictWord{7, 11, 297}, - dictWord{7, 11, 966}, - dictWord{140, 11, 306}, - dictWord{6, 0, 975}, - dictWord{ - 134, - 0, - 985, - }, - dictWord{5, 10, 950}, - dictWord{5, 10, 994}, - dictWord{134, 10, 351}, - dictWord{12, 11, 21}, - dictWord{151, 11, 7}, - dictWord{5, 11, 146}, - dictWord{ - 6, - 11, - 411, - }, - dictWord{138, 11, 721}, - dictWord{7, 0, 242}, - dictWord{135, 0, 1942}, - dictWord{6, 11, 177}, - dictWord{135, 11, 467}, - dictWord{5, 0, 421}, - dictWord{ - 7, - 10, - 47, - }, - dictWord{137, 10, 684}, - dictWord{5, 0, 834}, - dictWord{7, 0, 1202}, - dictWord{8, 0, 14}, - dictWord{9, 0, 481}, - dictWord{137, 0, 880}, - dictWord{138, 0, 465}, - dictWord{6, 0, 688}, - dictWord{9, 0, 834}, - dictWord{132, 10, 350}, - dictWord{132, 0, 855}, - dictWord{4, 0, 357}, - dictWord{6, 0, 172}, - dictWord{7, 0, 143}, - dictWord{137, 0, 413}, - dictWord{133, 11, 200}, - dictWord{132, 0, 590}, - dictWord{7, 10, 1812}, - dictWord{13, 10, 259}, - dictWord{13, 10, 356}, - dictWord{ - 14, - 10, - 242, - }, - dictWord{147, 10, 114}, - dictWord{133, 10, 967}, - dictWord{11, 0, 114}, - dictWord{4, 10, 473}, - dictWord{7, 10, 623}, - dictWord{8, 10, 808}, - dictWord{ - 9, - 10, - 871, - }, - dictWord{9, 10, 893}, - dictWord{11, 10, 431}, - dictWord{12, 10, 112}, - dictWord{12, 10, 217}, - dictWord{12, 10, 243}, - dictWord{12, 10, 562}, - dictWord{ - 12, - 10, - 663, - }, - dictWord{12, 10, 683}, - dictWord{13, 10, 141}, - dictWord{13, 10, 197}, - dictWord{13, 10, 227}, - dictWord{13, 10, 406}, - dictWord{13, 10, 487}, - dictWord{14, 10, 156}, - dictWord{14, 10, 203}, - dictWord{14, 10, 224}, - dictWord{14, 10, 256}, - dictWord{18, 10, 58}, - dictWord{150, 10, 0}, - dictWord{ - 138, - 10, - 286, - }, - dictWord{4, 10, 222}, - dictWord{7, 10, 286}, - dictWord{136, 10, 629}, - dictWord{5, 0, 169}, - dictWord{7, 0, 333}, - dictWord{136, 0, 45}, - dictWord{ - 134, - 11, - 481, - }, - dictWord{132, 0, 198}, - dictWord{4, 0, 24}, - dictWord{5, 0, 140}, - dictWord{5, 0, 185}, - dictWord{7, 0, 1500}, - dictWord{11, 0, 565}, - dictWord{11, 0, 838}, - dictWord{4, 11, 84}, - dictWord{7, 11, 1482}, - dictWord{10, 11, 76}, - dictWord{138, 11, 142}, - dictWord{133, 0, 585}, - dictWord{141, 10, 306}, - dictWord{ - 133, - 11, - 1015, - }, - dictWord{4, 11, 315}, - dictWord{5, 11, 507}, - dictWord{135, 11, 1370}, - dictWord{136, 10, 146}, - dictWord{6, 0, 691}, - dictWord{134, 0, 1503}, - dictWord{ - 4, - 0, - 334, - }, - dictWord{133, 0, 593}, - dictWord{4, 10, 465}, - dictWord{135, 10, 1663}, - dictWord{142, 11, 173}, - dictWord{135, 0, 913}, - dictWord{12, 0, 116}, - dictWord{134, 11, 1722}, - dictWord{134, 0, 1360}, - dictWord{132, 0, 802}, - dictWord{8, 11, 222}, - dictWord{8, 11, 476}, - dictWord{9, 11, 238}, - dictWord{ - 11, - 11, - 516, - }, - dictWord{11, 11, 575}, - dictWord{15, 11, 109}, - dictWord{146, 11, 100}, - dictWord{6, 0, 308}, - dictWord{9, 0, 673}, - dictWord{7, 10, 138}, - dictWord{ - 7, - 10, - 517, - }, - dictWord{139, 10, 238}, - dictWord{132, 0, 709}, - dictWord{6, 0, 1876}, - dictWord{6, 0, 1895}, - dictWord{9, 0, 994}, - dictWord{9, 0, 1006}, - dictWord{ - 12, - 0, - 829, - }, - dictWord{12, 0, 888}, - dictWord{12, 0, 891}, - dictWord{146, 0, 185}, - dictWord{148, 10, 94}, - dictWord{4, 0, 228}, - dictWord{133, 0, 897}, - dictWord{ - 7, - 0, - 1840, - }, - dictWord{5, 10, 495}, - dictWord{7, 10, 834}, - dictWord{9, 10, 733}, - dictWord{139, 10, 378}, - dictWord{133, 10, 559}, - dictWord{6, 10, 21}, - dictWord{ - 6, - 10, - 1737, - }, - dictWord{7, 10, 1444}, - dictWord{136, 10, 224}, - dictWord{4, 0, 608}, - dictWord{133, 0, 497}, - dictWord{6, 11, 40}, - dictWord{135, 11, 1781}, - dictWord{134, 0, 1573}, - dictWord{135, 0, 2039}, - dictWord{6, 0, 540}, - dictWord{136, 0, 136}, - dictWord{4, 0, 897}, - dictWord{5, 0, 786}, - dictWord{133, 10, 519}, - dictWord{6, 0, 1878}, - dictWord{6, 0, 1884}, - dictWord{9, 0, 938}, - dictWord{9, 0, 948}, - dictWord{9, 0, 955}, - dictWord{9, 0, 973}, - dictWord{9, 0, 1012}, - dictWord{ - 12, - 0, - 895, - }, - dictWord{12, 0, 927}, - dictWord{143, 0, 254}, - dictWord{134, 0, 1469}, - dictWord{133, 0, 999}, - dictWord{4, 0, 299}, - dictWord{135, 0, 1004}, - dictWord{ - 4, - 0, - 745, - }, - dictWord{133, 0, 578}, - dictWord{136, 11, 574}, - dictWord{133, 0, 456}, - dictWord{134, 0, 1457}, - dictWord{7, 0, 1679}, - dictWord{132, 10, 402}, - dictWord{7, 0, 693}, - dictWord{8, 0, 180}, - dictWord{12, 0, 163}, - dictWord{8, 10, 323}, - dictWord{136, 10, 479}, - dictWord{11, 10, 580}, - dictWord{142, 10, 201}, - dictWord{5, 10, 59}, - dictWord{135, 10, 672}, - dictWord{132, 11, 354}, - dictWord{146, 10, 34}, - dictWord{4, 0, 755}, - dictWord{135, 11, 1558}, - dictWord{ - 7, - 0, - 1740, - }, - dictWord{146, 0, 48}, - dictWord{4, 10, 85}, - dictWord{135, 10, 549}, - dictWord{139, 0, 338}, - dictWord{133, 10, 94}, - dictWord{134, 0, 1091}, - dictWord{135, 11, 469}, - dictWord{12, 0, 695}, - dictWord{12, 0, 704}, - dictWord{20, 0, 113}, - dictWord{5, 11, 830}, - dictWord{14, 11, 338}, - dictWord{148, 11, 81}, - dictWord{135, 0, 1464}, - dictWord{6, 10, 11}, - dictWord{135, 10, 187}, - dictWord{135, 0, 975}, - dictWord{13, 0, 335}, - dictWord{132, 10, 522}, - dictWord{ - 134, - 0, - 1979, - }, - dictWord{5, 11, 496}, - dictWord{135, 11, 203}, - dictWord{4, 10, 52}, - dictWord{135, 10, 661}, - dictWord{7, 0, 1566}, - dictWord{8, 0, 269}, - dictWord{ - 9, - 0, - 212, - }, - dictWord{9, 0, 718}, - dictWord{14, 0, 15}, - dictWord{14, 0, 132}, - dictWord{142, 0, 227}, - dictWord{4, 0, 890}, - dictWord{5, 0, 805}, - dictWord{5, 0, 819}, - dictWord{ - 5, - 0, - 961, - }, - dictWord{6, 0, 396}, - dictWord{6, 0, 1631}, - dictWord{6, 0, 1678}, - dictWord{7, 0, 1967}, - dictWord{7, 0, 2041}, - dictWord{9, 0, 630}, - dictWord{11, 0, 8}, - dictWord{11, 0, 1019}, - dictWord{12, 0, 176}, - dictWord{13, 0, 225}, - dictWord{14, 0, 292}, - dictWord{21, 0, 24}, - dictWord{4, 10, 383}, - dictWord{133, 10, 520}, - dictWord{134, 11, 547}, - dictWord{135, 11, 1748}, - dictWord{5, 11, 88}, - dictWord{137, 11, 239}, - dictWord{146, 11, 128}, - dictWord{7, 11, 650}, - dictWord{ - 135, - 11, - 1310, - }, - dictWord{4, 10, 281}, - dictWord{5, 10, 38}, - dictWord{7, 10, 194}, - dictWord{7, 10, 668}, - dictWord{7, 10, 1893}, - dictWord{137, 10, 397}, - dictWord{135, 0, 1815}, - dictWord{9, 10, 635}, - dictWord{139, 10, 559}, - dictWord{7, 0, 1505}, - dictWord{10, 0, 190}, - dictWord{10, 0, 634}, - dictWord{11, 0, 792}, - dictWord{12, 0, 358}, - dictWord{140, 0, 447}, - dictWord{5, 0, 0}, - dictWord{6, 0, 536}, - dictWord{7, 0, 604}, - dictWord{13, 0, 445}, - dictWord{145, 0, 126}, - dictWord{ - 7, - 11, - 1076, - }, - dictWord{9, 11, 80}, - dictWord{11, 11, 78}, - dictWord{11, 11, 421}, - dictWord{11, 11, 534}, - dictWord{140, 11, 545}, - dictWord{8, 0, 966}, - dictWord{ - 10, - 0, - 1023, - }, - dictWord{14, 11, 369}, - dictWord{146, 11, 72}, - dictWord{135, 11, 1641}, - dictWord{6, 0, 232}, - dictWord{6, 0, 412}, - dictWord{7, 0, 1074}, - dictWord{ - 8, - 0, - 9, - }, - dictWord{8, 0, 157}, - dictWord{8, 0, 786}, - dictWord{9, 0, 196}, - dictWord{9, 0, 352}, - dictWord{9, 0, 457}, - dictWord{10, 0, 337}, - dictWord{11, 0, 232}, - dictWord{ - 11, - 0, - 877, - }, - dictWord{12, 0, 480}, - dictWord{140, 0, 546}, - dictWord{135, 0, 958}, - dictWord{4, 0, 382}, - dictWord{136, 0, 579}, - dictWord{4, 0, 212}, - dictWord{ - 135, - 0, - 1206, - }, - dictWord{4, 11, 497}, - dictWord{5, 11, 657}, - dictWord{135, 11, 1584}, - dictWord{132, 0, 681}, - dictWord{8, 0, 971}, - dictWord{138, 0, 965}, - dictWord{ - 5, - 10, - 448, - }, - dictWord{136, 10, 535}, - dictWord{14, 0, 16}, - dictWord{146, 0, 44}, - dictWord{11, 0, 584}, - dictWord{11, 0, 616}, - dictWord{14, 0, 275}, - dictWord{ - 11, - 11, - 584, - }, - dictWord{11, 11, 616}, - dictWord{142, 11, 275}, - dictWord{136, 11, 13}, - dictWord{7, 10, 610}, - dictWord{135, 10, 1501}, - dictWord{7, 11, 642}, - dictWord{8, 11, 250}, - dictWord{11, 11, 123}, - dictWord{11, 11, 137}, - dictWord{13, 11, 48}, - dictWord{142, 11, 95}, - dictWord{133, 0, 655}, - dictWord{17, 0, 67}, - dictWord{147, 0, 74}, - dictWord{134, 0, 751}, - dictWord{134, 0, 1967}, - dictWord{6, 0, 231}, - dictWord{136, 0, 423}, - dictWord{5, 0, 300}, - dictWord{138, 0, 1016}, - dictWord{4, 10, 319}, - dictWord{5, 10, 699}, - dictWord{138, 10, 673}, - dictWord{6, 0, 237}, - dictWord{7, 0, 611}, - dictWord{8, 0, 100}, - dictWord{9, 0, 416}, - dictWord{ - 11, - 0, - 335, - }, - dictWord{12, 0, 173}, - dictWord{18, 0, 101}, - dictWord{6, 10, 336}, - dictWord{8, 10, 552}, - dictWord{9, 10, 285}, - dictWord{10, 10, 99}, - dictWord{ - 139, - 10, - 568, - }, - dictWord{134, 0, 1370}, - dictWord{7, 10, 1406}, - dictWord{9, 10, 218}, - dictWord{141, 10, 222}, - dictWord{133, 10, 256}, - dictWord{ - 135, - 0, - 1208, - }, - dictWord{14, 11, 213}, - dictWord{148, 11, 38}, - dictWord{6, 0, 1219}, - dictWord{135, 11, 1642}, - dictWord{13, 0, 417}, - dictWord{14, 0, 129}, - dictWord{143, 0, 15}, - dictWord{10, 11, 545}, - dictWord{140, 11, 301}, - dictWord{17, 10, 39}, - dictWord{148, 10, 36}, - dictWord{133, 0, 199}, - dictWord{4, 11, 904}, - dictWord{133, 11, 794}, - dictWord{12, 0, 427}, - dictWord{146, 0, 38}, - dictWord{134, 0, 949}, - dictWord{8, 0, 665}, - dictWord{135, 10, 634}, - dictWord{ - 132, - 10, - 618, - }, - dictWord{135, 10, 259}, - dictWord{132, 10, 339}, - dictWord{133, 11, 761}, - dictWord{141, 10, 169}, - dictWord{132, 10, 759}, - dictWord{5, 0, 688}, - dictWord{7, 0, 539}, - dictWord{135, 0, 712}, - dictWord{7, 11, 386}, - dictWord{138, 11, 713}, - dictWord{134, 0, 1186}, - dictWord{6, 11, 7}, - dictWord{6, 11, 35}, - dictWord{ - 7, - 11, - 147, - }, - dictWord{7, 11, 1069}, - dictWord{7, 11, 1568}, - dictWord{7, 11, 1575}, - dictWord{7, 11, 1917}, - dictWord{8, 11, 43}, - dictWord{8, 11, 208}, - dictWord{ - 9, - 11, - 128, - }, - dictWord{9, 11, 866}, - dictWord{10, 11, 20}, - dictWord{11, 11, 981}, - dictWord{147, 11, 33}, - dictWord{7, 11, 893}, - dictWord{8, 10, 482}, - dictWord{141, 11, 424}, - dictWord{6, 0, 312}, - dictWord{6, 0, 1715}, - dictWord{10, 0, 584}, - dictWord{11, 0, 546}, - dictWord{11, 0, 692}, - dictWord{12, 0, 259}, - dictWord{ - 12, - 0, - 295, - }, - dictWord{13, 0, 46}, - dictWord{141, 0, 154}, - dictWord{5, 10, 336}, - dictWord{6, 10, 341}, - dictWord{6, 10, 478}, - dictWord{6, 10, 1763}, - dictWord{ - 136, - 10, - 386, - }, - dictWord{137, 0, 151}, - dictWord{132, 0, 588}, - dictWord{152, 0, 4}, - dictWord{6, 11, 322}, - dictWord{9, 11, 552}, - dictWord{11, 11, 274}, - dictWord{ - 13, - 11, - 209, - }, - dictWord{13, 11, 499}, - dictWord{14, 11, 85}, - dictWord{15, 11, 126}, - dictWord{145, 11, 70}, - dictWord{135, 10, 73}, - dictWord{4, 0, 231}, - dictWord{ - 5, - 0, - 61, - }, - dictWord{6, 0, 104}, - dictWord{7, 0, 729}, - dictWord{7, 0, 964}, - dictWord{7, 0, 1658}, - dictWord{140, 0, 414}, - dictWord{6, 0, 263}, - dictWord{138, 0, 757}, - dictWord{135, 10, 1971}, - dictWord{4, 0, 612}, - dictWord{133, 0, 561}, - dictWord{132, 0, 320}, - dictWord{135, 10, 1344}, - dictWord{8, 11, 83}, - dictWord{ - 8, - 11, - 817, - }, - dictWord{9, 11, 28}, - dictWord{9, 11, 29}, - dictWord{9, 11, 885}, - dictWord{10, 11, 387}, - dictWord{11, 11, 633}, - dictWord{11, 11, 740}, - dictWord{ - 13, - 11, - 235, - }, - dictWord{13, 11, 254}, - dictWord{15, 11, 143}, - dictWord{143, 11, 146}, - dictWord{5, 10, 396}, - dictWord{134, 10, 501}, - dictWord{140, 11, 49}, - dictWord{132, 0, 225}, - dictWord{4, 10, 929}, - dictWord{5, 10, 799}, - dictWord{8, 10, 46}, - dictWord{136, 10, 740}, - dictWord{4, 0, 405}, - dictWord{7, 0, 817}, - dictWord{ - 14, - 0, - 58, - }, - dictWord{17, 0, 37}, - dictWord{146, 0, 124}, - dictWord{133, 0, 974}, - dictWord{4, 11, 412}, - dictWord{133, 11, 581}, - dictWord{4, 10, 892}, - dictWord{ - 133, - 10, - 770, - }, - dictWord{4, 0, 996}, - dictWord{134, 0, 2026}, - dictWord{4, 0, 527}, - dictWord{5, 0, 235}, - dictWord{7, 0, 1239}, - dictWord{11, 0, 131}, - dictWord{ - 140, - 0, - 370, - }, - dictWord{9, 0, 16}, - dictWord{13, 0, 386}, - dictWord{135, 11, 421}, - dictWord{7, 0, 956}, - dictWord{7, 0, 1157}, - dictWord{7, 0, 1506}, - dictWord{7, 0, 1606}, - dictWord{7, 0, 1615}, - dictWord{7, 0, 1619}, - dictWord{7, 0, 1736}, - dictWord{7, 0, 1775}, - dictWord{8, 0, 590}, - dictWord{9, 0, 324}, - dictWord{9, 0, 736}, - dictWord{ - 9, - 0, - 774, - }, - dictWord{9, 0, 776}, - dictWord{9, 0, 784}, - dictWord{10, 0, 567}, - dictWord{10, 0, 708}, - dictWord{11, 0, 518}, - dictWord{11, 0, 613}, - dictWord{11, 0, 695}, - dictWord{11, 0, 716}, - dictWord{11, 0, 739}, - dictWord{11, 0, 770}, - dictWord{11, 0, 771}, - dictWord{11, 0, 848}, - dictWord{11, 0, 857}, - dictWord{11, 0, 931}, - dictWord{ - 11, - 0, - 947, - }, - dictWord{12, 0, 326}, - dictWord{12, 0, 387}, - dictWord{12, 0, 484}, - dictWord{12, 0, 528}, - dictWord{12, 0, 552}, - dictWord{12, 0, 613}, - dictWord{ - 13, - 0, - 189, - }, - dictWord{13, 0, 256}, - dictWord{13, 0, 340}, - dictWord{13, 0, 432}, - dictWord{13, 0, 436}, - dictWord{13, 0, 440}, - dictWord{13, 0, 454}, - dictWord{14, 0, 174}, - dictWord{14, 0, 220}, - dictWord{14, 0, 284}, - dictWord{14, 0, 390}, - dictWord{145, 0, 121}, - dictWord{135, 10, 158}, - dictWord{9, 0, 137}, - dictWord{138, 0, 221}, - dictWord{4, 11, 110}, - dictWord{10, 11, 415}, - dictWord{10, 11, 597}, - dictWord{142, 11, 206}, - dictWord{141, 11, 496}, - dictWord{135, 11, 205}, - dictWord{ - 151, - 10, - 25, - }, - dictWord{135, 11, 778}, - dictWord{7, 11, 1656}, - dictWord{7, 10, 2001}, - dictWord{9, 11, 369}, - dictWord{10, 11, 338}, - dictWord{10, 11, 490}, - dictWord{11, 11, 154}, - dictWord{11, 11, 545}, - dictWord{11, 11, 775}, - dictWord{13, 11, 77}, - dictWord{141, 11, 274}, - dictWord{4, 11, 444}, - dictWord{ - 10, - 11, - 146, - }, - dictWord{140, 11, 9}, - dictWord{7, 0, 390}, - dictWord{138, 0, 140}, - dictWord{135, 0, 1144}, - dictWord{134, 0, 464}, - dictWord{7, 10, 1461}, - dictWord{ - 140, - 10, - 91, - }, - dictWord{132, 10, 602}, - dictWord{4, 11, 283}, - dictWord{135, 11, 1194}, - dictWord{5, 0, 407}, - dictWord{11, 0, 204}, - dictWord{11, 0, 243}, - dictWord{ - 11, - 0, - 489, - }, - dictWord{12, 0, 293}, - dictWord{19, 0, 37}, - dictWord{20, 0, 73}, - dictWord{150, 0, 38}, - dictWord{7, 0, 1218}, - dictWord{136, 0, 303}, - dictWord{ - 5, - 0, - 325, - }, - dictWord{8, 0, 5}, - dictWord{8, 0, 227}, - dictWord{9, 0, 105}, - dictWord{10, 0, 585}, - dictWord{12, 0, 614}, - dictWord{4, 10, 13}, - dictWord{5, 10, 567}, - dictWord{ - 7, - 10, - 1498, - }, - dictWord{9, 10, 124}, - dictWord{11, 10, 521}, - dictWord{140, 10, 405}, - dictWord{135, 10, 1006}, - dictWord{7, 0, 800}, - dictWord{10, 0, 12}, - dictWord{134, 11, 1720}, - dictWord{135, 0, 1783}, - dictWord{132, 10, 735}, - dictWord{138, 10, 812}, - dictWord{4, 10, 170}, - dictWord{135, 10, 323}, - dictWord{ - 6, - 0, - 621, - }, - dictWord{13, 0, 504}, - dictWord{144, 0, 89}, - dictWord{5, 10, 304}, - dictWord{135, 10, 1403}, - dictWord{137, 11, 216}, - dictWord{6, 0, 920}, - dictWord{ - 6, - 0, - 1104, - }, - dictWord{9, 11, 183}, - dictWord{139, 11, 286}, - dictWord{4, 0, 376}, - dictWord{133, 10, 742}, - dictWord{134, 0, 218}, - dictWord{8, 0, 641}, - dictWord{ - 11, - 0, - 388, - }, - dictWord{140, 0, 580}, - dictWord{7, 0, 454}, - dictWord{7, 0, 782}, - dictWord{8, 0, 768}, - dictWord{140, 0, 686}, - dictWord{137, 11, 33}, - dictWord{ - 133, - 10, - 111, - }, - dictWord{144, 0, 0}, - dictWord{10, 0, 676}, - dictWord{140, 0, 462}, - dictWord{6, 0, 164}, - dictWord{136, 11, 735}, - dictWord{133, 10, 444}, - dictWord{ - 150, - 0, - 50, - }, - dictWord{7, 11, 1862}, - dictWord{12, 11, 491}, - dictWord{12, 11, 520}, - dictWord{13, 11, 383}, - dictWord{14, 11, 244}, - dictWord{146, 11, 12}, - dictWord{ - 5, - 11, - 132, - }, - dictWord{9, 11, 486}, - dictWord{9, 11, 715}, - dictWord{10, 11, 458}, - dictWord{11, 11, 373}, - dictWord{11, 11, 668}, - dictWord{11, 11, 795}, - dictWord{11, 11, 897}, - dictWord{12, 11, 272}, - dictWord{12, 11, 424}, - dictWord{12, 11, 539}, - dictWord{12, 11, 558}, - dictWord{14, 11, 245}, - dictWord{ - 14, - 11, - 263, - }, - dictWord{14, 11, 264}, - dictWord{14, 11, 393}, - dictWord{142, 11, 403}, - dictWord{8, 10, 123}, - dictWord{15, 10, 6}, - dictWord{144, 10, 7}, - dictWord{ - 6, - 0, - 285, - }, - dictWord{8, 0, 654}, - dictWord{11, 0, 749}, - dictWord{12, 0, 190}, - dictWord{12, 0, 327}, - dictWord{13, 0, 120}, - dictWord{13, 0, 121}, - dictWord{13, 0, 327}, - dictWord{15, 0, 47}, - dictWord{146, 0, 40}, - dictWord{5, 11, 8}, - dictWord{6, 11, 89}, - dictWord{6, 11, 400}, - dictWord{7, 11, 1569}, - dictWord{7, 11, 1623}, - dictWord{ - 7, - 11, - 1850, - }, - dictWord{8, 11, 218}, - dictWord{8, 11, 422}, - dictWord{9, 11, 570}, - dictWord{138, 11, 626}, - dictWord{6, 11, 387}, - dictWord{7, 11, 882}, - dictWord{141, 11, 111}, - dictWord{6, 0, 343}, - dictWord{7, 0, 195}, - dictWord{9, 0, 226}, - dictWord{10, 0, 197}, - dictWord{10, 0, 575}, - dictWord{11, 0, 502}, - dictWord{ - 11, - 0, - 899, - }, - dictWord{6, 11, 224}, - dictWord{7, 11, 877}, - dictWord{137, 11, 647}, - dictWord{5, 10, 937}, - dictWord{135, 10, 100}, - dictWord{135, 11, 790}, - dictWord{150, 0, 29}, - dictWord{147, 0, 8}, - dictWord{134, 0, 1812}, - dictWord{149, 0, 8}, - dictWord{135, 11, 394}, - dictWord{7, 0, 1125}, - dictWord{9, 0, 143}, - dictWord{ - 11, - 0, - 61, - }, - dictWord{14, 0, 405}, - dictWord{150, 0, 21}, - dictWord{10, 11, 755}, - dictWord{147, 11, 29}, - dictWord{9, 11, 378}, - dictWord{141, 11, 162}, - dictWord{135, 10, 922}, - dictWord{5, 10, 619}, - dictWord{133, 10, 698}, - dictWord{134, 0, 1327}, - dictWord{6, 0, 1598}, - dictWord{137, 0, 575}, - dictWord{ - 9, - 11, - 569, - }, - dictWord{12, 11, 12}, - dictWord{12, 11, 81}, - dictWord{12, 11, 319}, - dictWord{13, 11, 69}, - dictWord{14, 11, 259}, - dictWord{16, 11, 87}, - dictWord{ - 17, - 11, - 1, - }, - dictWord{17, 11, 21}, - dictWord{17, 11, 24}, - dictWord{18, 11, 15}, - dictWord{18, 11, 56}, - dictWord{18, 11, 59}, - dictWord{18, 11, 127}, - dictWord{18, 11, 154}, - dictWord{19, 11, 19}, - dictWord{148, 11, 31}, - dictWord{6, 0, 895}, - dictWord{135, 11, 1231}, - dictWord{5, 0, 959}, - dictWord{7, 11, 124}, - dictWord{136, 11, 38}, - dictWord{5, 11, 261}, - dictWord{7, 11, 78}, - dictWord{7, 11, 199}, - dictWord{8, 11, 815}, - dictWord{9, 11, 126}, - dictWord{138, 11, 342}, - dictWord{5, 10, 917}, - dictWord{134, 10, 1659}, - dictWord{7, 0, 1759}, - dictWord{5, 11, 595}, - dictWord{135, 11, 1863}, - dictWord{136, 0, 173}, - dictWord{134, 0, 266}, - dictWord{ - 142, - 0, - 261, - }, - dictWord{132, 11, 628}, - dictWord{5, 10, 251}, - dictWord{5, 10, 956}, - dictWord{8, 10, 268}, - dictWord{9, 10, 214}, - dictWord{146, 10, 142}, - dictWord{ - 7, - 11, - 266, - }, - dictWord{136, 11, 804}, - dictWord{135, 11, 208}, - dictWord{6, 11, 79}, - dictWord{7, 11, 1021}, - dictWord{135, 11, 1519}, - dictWord{11, 11, 704}, - dictWord{141, 11, 396}, - dictWord{5, 10, 346}, - dictWord{5, 10, 711}, - dictWord{136, 10, 390}, - dictWord{136, 11, 741}, - dictWord{134, 11, 376}, - dictWord{ - 134, - 0, - 1427, - }, - dictWord{6, 0, 1033}, - dictWord{6, 0, 1217}, - dictWord{136, 0, 300}, - dictWord{133, 10, 624}, - dictWord{6, 11, 100}, - dictWord{7, 11, 244}, - dictWord{ - 7, - 11, - 632, - }, - dictWord{7, 11, 1609}, - dictWord{8, 11, 178}, - dictWord{8, 11, 638}, - dictWord{141, 11, 58}, - dictWord{6, 0, 584}, - dictWord{5, 10, 783}, - dictWord{ - 7, - 10, - 1998, - }, - dictWord{135, 10, 2047}, - dictWord{5, 0, 427}, - dictWord{5, 0, 734}, - dictWord{7, 0, 478}, - dictWord{136, 0, 52}, - dictWord{7, 0, 239}, - dictWord{ - 11, - 0, - 217, - }, - dictWord{142, 0, 165}, - dictWord{134, 0, 1129}, - dictWord{6, 0, 168}, - dictWord{6, 0, 1734}, - dictWord{7, 0, 20}, - dictWord{7, 0, 1056}, - dictWord{8, 0, 732}, - dictWord{9, 0, 406}, - dictWord{9, 0, 911}, - dictWord{138, 0, 694}, - dictWord{132, 10, 594}, - dictWord{133, 11, 791}, - dictWord{7, 11, 686}, - dictWord{8, 11, 33}, - dictWord{8, 11, 238}, - dictWord{10, 11, 616}, - dictWord{11, 11, 467}, - dictWord{11, 11, 881}, - dictWord{13, 11, 217}, - dictWord{13, 11, 253}, - dictWord{ - 142, - 11, - 268, - }, - dictWord{137, 11, 476}, - dictWord{134, 0, 418}, - dictWord{133, 0, 613}, - dictWord{132, 0, 632}, - dictWord{132, 11, 447}, - dictWord{7, 0, 32}, - dictWord{ - 7, - 0, - 984, - }, - dictWord{8, 0, 85}, - dictWord{8, 0, 709}, - dictWord{9, 0, 579}, - dictWord{9, 0, 847}, - dictWord{9, 0, 856}, - dictWord{10, 0, 799}, - dictWord{11, 0, 258}, - dictWord{ - 11, - 0, - 1007, - }, - dictWord{12, 0, 331}, - dictWord{12, 0, 615}, - dictWord{13, 0, 188}, - dictWord{13, 0, 435}, - dictWord{14, 0, 8}, - dictWord{15, 0, 165}, - dictWord{ - 16, - 0, - 27, - }, - dictWord{20, 0, 40}, - dictWord{144, 11, 35}, - dictWord{4, 11, 128}, - dictWord{5, 11, 415}, - dictWord{6, 11, 462}, - dictWord{7, 11, 294}, - dictWord{7, 11, 578}, - dictWord{10, 11, 710}, - dictWord{139, 11, 86}, - dictWord{5, 0, 694}, - dictWord{136, 0, 909}, - dictWord{7, 0, 1109}, - dictWord{11, 0, 7}, - dictWord{5, 10, 37}, - dictWord{ - 6, - 10, - 39, - }, - dictWord{6, 10, 451}, - dictWord{7, 10, 218}, - dictWord{7, 10, 1166}, - dictWord{7, 10, 1687}, - dictWord{8, 10, 662}, - dictWord{144, 10, 2}, - dictWord{ - 136, - 11, - 587, - }, - dictWord{6, 11, 427}, - dictWord{7, 11, 1018}, - dictWord{138, 11, 692}, - dictWord{4, 11, 195}, - dictWord{6, 10, 508}, - dictWord{135, 11, 802}, - dictWord{4, 0, 167}, - dictWord{135, 0, 82}, - dictWord{5, 0, 62}, - dictWord{6, 0, 24}, - dictWord{6, 0, 534}, - dictWord{7, 0, 74}, - dictWord{7, 0, 678}, - dictWord{7, 0, 684}, - dictWord{ - 7, - 0, - 1043, - }, - dictWord{7, 0, 1072}, - dictWord{8, 0, 280}, - dictWord{8, 0, 541}, - dictWord{8, 0, 686}, - dictWord{9, 0, 258}, - dictWord{10, 0, 519}, - dictWord{11, 0, 252}, - dictWord{140, 0, 282}, - dictWord{138, 0, 33}, - dictWord{4, 0, 359}, - dictWord{133, 11, 738}, - dictWord{7, 0, 980}, - dictWord{9, 0, 328}, - dictWord{13, 0, 186}, - dictWord{13, 0, 364}, - dictWord{7, 10, 635}, - dictWord{7, 10, 796}, - dictWord{8, 10, 331}, - dictWord{9, 10, 330}, - dictWord{9, 10, 865}, - dictWord{10, 10, 119}, - dictWord{ - 10, - 10, - 235, - }, - dictWord{11, 10, 111}, - dictWord{11, 10, 129}, - dictWord{11, 10, 240}, - dictWord{12, 10, 31}, - dictWord{12, 10, 66}, - dictWord{12, 10, 222}, - dictWord{12, 10, 269}, - dictWord{12, 10, 599}, - dictWord{12, 10, 684}, - dictWord{12, 10, 689}, - dictWord{12, 10, 691}, - dictWord{142, 10, 345}, - dictWord{ - 137, - 10, - 527, - }, - dictWord{6, 0, 596}, - dictWord{7, 0, 585}, - dictWord{135, 10, 702}, - dictWord{134, 11, 1683}, - dictWord{133, 0, 211}, - dictWord{6, 0, 145}, - dictWord{ - 141, - 0, - 336, - }, - dictWord{134, 0, 1130}, - dictWord{7, 0, 873}, - dictWord{6, 10, 37}, - dictWord{7, 10, 1666}, - dictWord{8, 10, 195}, - dictWord{8, 10, 316}, - dictWord{ - 9, - 10, - 178, - }, - dictWord{9, 10, 276}, - dictWord{9, 10, 339}, - dictWord{9, 10, 536}, - dictWord{10, 10, 102}, - dictWord{10, 10, 362}, - dictWord{10, 10, 785}, - dictWord{ - 11, - 10, - 55, - }, - dictWord{11, 10, 149}, - dictWord{11, 10, 773}, - dictWord{13, 10, 416}, - dictWord{13, 10, 419}, - dictWord{14, 10, 38}, - dictWord{14, 10, 41}, - dictWord{ - 142, - 10, - 210, - }, - dictWord{8, 0, 840}, - dictWord{136, 0, 841}, - dictWord{132, 0, 263}, - dictWord{5, 11, 3}, - dictWord{8, 11, 578}, - dictWord{9, 11, 118}, - dictWord{ - 10, - 11, - 705, - }, - dictWord{12, 11, 383}, - dictWord{141, 11, 279}, - dictWord{132, 0, 916}, - dictWord{133, 11, 229}, - dictWord{133, 10, 645}, - dictWord{15, 0, 155}, - dictWord{16, 0, 79}, - dictWord{8, 11, 102}, - dictWord{10, 11, 578}, - dictWord{10, 11, 672}, - dictWord{12, 11, 496}, - dictWord{13, 11, 408}, - dictWord{14, 11, 121}, - dictWord{145, 11, 106}, - dictWord{4, 0, 599}, - dictWord{5, 0, 592}, - dictWord{6, 0, 1634}, - dictWord{7, 0, 5}, - dictWord{7, 0, 55}, - dictWord{7, 0, 67}, - dictWord{7, 0, 97}, - dictWord{7, 0, 691}, - dictWord{7, 0, 979}, - dictWord{7, 0, 1600}, - dictWord{7, 0, 1697}, - dictWord{8, 0, 207}, - dictWord{8, 0, 214}, - dictWord{8, 0, 231}, - dictWord{8, 0, 294}, - dictWord{8, 0, 336}, - dictWord{8, 0, 428}, - dictWord{8, 0, 471}, - dictWord{8, 0, 622}, - dictWord{8, 0, 626}, - dictWord{8, 0, 679}, - dictWord{8, 0, 759}, - dictWord{8, 0, 829}, - dictWord{9, 0, 11}, - dictWord{9, 0, 246}, - dictWord{9, 0, 484}, - dictWord{9, 0, 573}, - dictWord{9, 0, 706}, - dictWord{9, 0, 762}, - dictWord{9, 0, 798}, - dictWord{9, 0, 855}, - dictWord{9, 0, 870}, - dictWord{9, 0, 912}, - dictWord{10, 0, 303}, - dictWord{10, 0, 335}, - dictWord{10, 0, 424}, - dictWord{10, 0, 461}, - dictWord{10, 0, 543}, - dictWord{ - 10, - 0, - 759, - }, - dictWord{10, 0, 814}, - dictWord{11, 0, 59}, - dictWord{11, 0, 199}, - dictWord{11, 0, 235}, - dictWord{11, 0, 590}, - dictWord{11, 0, 631}, - dictWord{11, 0, 929}, - dictWord{11, 0, 963}, - dictWord{11, 0, 987}, - dictWord{12, 0, 114}, - dictWord{12, 0, 182}, - dictWord{12, 0, 226}, - dictWord{12, 0, 332}, - dictWord{12, 0, 439}, - dictWord{12, 0, 575}, - dictWord{12, 0, 598}, - dictWord{12, 0, 675}, - dictWord{13, 0, 8}, - dictWord{13, 0, 125}, - dictWord{13, 0, 194}, - dictWord{13, 0, 287}, - dictWord{ - 14, - 0, - 197, - }, - dictWord{14, 0, 383}, - dictWord{15, 0, 53}, - dictWord{17, 0, 63}, - dictWord{19, 0, 46}, - dictWord{19, 0, 98}, - dictWord{19, 0, 106}, - dictWord{148, 0, 85}, - dictWord{ - 7, - 0, - 1356, - }, - dictWord{132, 10, 290}, - dictWord{6, 10, 70}, - dictWord{7, 10, 1292}, - dictWord{10, 10, 762}, - dictWord{139, 10, 288}, - dictWord{150, 11, 55}, - dictWord{4, 0, 593}, - dictWord{8, 11, 115}, - dictWord{8, 11, 350}, - dictWord{9, 11, 489}, - dictWord{10, 11, 128}, - dictWord{11, 11, 306}, - dictWord{12, 11, 373}, - dictWord{14, 11, 30}, - dictWord{17, 11, 79}, - dictWord{147, 11, 80}, - dictWord{135, 11, 1235}, - dictWord{134, 0, 1392}, - dictWord{4, 11, 230}, - dictWord{ - 133, - 11, - 702, - }, - dictWord{147, 0, 126}, - dictWord{7, 10, 131}, - dictWord{7, 10, 422}, - dictWord{8, 10, 210}, - dictWord{140, 10, 573}, - dictWord{134, 0, 1179}, - dictWord{ - 139, - 11, - 435, - }, - dictWord{139, 10, 797}, - dictWord{134, 11, 1728}, - dictWord{4, 0, 162}, - dictWord{18, 11, 26}, - dictWord{19, 11, 42}, - dictWord{20, 11, 43}, - dictWord{21, 11, 0}, - dictWord{23, 11, 27}, - dictWord{152, 11, 14}, - dictWord{132, 10, 936}, - dictWord{6, 0, 765}, - dictWord{5, 10, 453}, - dictWord{134, 10, 441}, - dictWord{133, 0, 187}, - dictWord{135, 0, 1286}, - dictWord{6, 0, 635}, - dictWord{6, 0, 904}, - dictWord{6, 0, 1210}, - dictWord{134, 0, 1489}, - dictWord{4, 0, 215}, - dictWord{ - 8, - 0, - 890, - }, - dictWord{9, 0, 38}, - dictWord{10, 0, 923}, - dictWord{11, 0, 23}, - dictWord{11, 0, 127}, - dictWord{139, 0, 796}, - dictWord{6, 0, 1165}, - dictWord{ - 134, - 0, - 1306, - }, - dictWord{7, 0, 716}, - dictWord{13, 0, 97}, - dictWord{141, 0, 251}, - dictWord{132, 10, 653}, - dictWord{136, 0, 657}, - dictWord{146, 10, 80}, - dictWord{ - 5, - 11, - 622, - }, - dictWord{7, 11, 1032}, - dictWord{11, 11, 26}, - dictWord{11, 11, 213}, - dictWord{11, 11, 707}, - dictWord{12, 11, 380}, - dictWord{13, 11, 226}, - dictWord{141, 11, 355}, - dictWord{6, 0, 299}, - dictWord{5, 11, 70}, - dictWord{6, 11, 334}, - dictWord{9, 11, 171}, - dictWord{11, 11, 637}, - dictWord{12, 11, 202}, - dictWord{14, 11, 222}, - dictWord{145, 11, 42}, - dictWord{142, 0, 134}, - dictWord{4, 11, 23}, - dictWord{5, 11, 313}, - dictWord{5, 11, 1014}, - dictWord{6, 11, 50}, - dictWord{ - 6, - 11, - 51, - }, - dictWord{7, 11, 142}, - dictWord{7, 11, 384}, - dictWord{9, 11, 783}, - dictWord{139, 11, 741}, - dictWord{4, 11, 141}, - dictWord{7, 11, 559}, - dictWord{ - 8, - 11, - 640, - }, - dictWord{9, 11, 460}, - dictWord{12, 11, 183}, - dictWord{141, 11, 488}, - dictWord{136, 11, 614}, - dictWord{7, 10, 1368}, - dictWord{8, 10, 232}, - dictWord{8, 10, 361}, - dictWord{10, 10, 682}, - dictWord{138, 10, 742}, - dictWord{137, 10, 534}, - dictWord{6, 0, 1082}, - dictWord{140, 0, 658}, - dictWord{ - 137, - 10, - 27, - }, - dictWord{135, 0, 2002}, - dictWord{142, 10, 12}, - dictWord{4, 0, 28}, - dictWord{5, 0, 440}, - dictWord{7, 0, 248}, - dictWord{11, 0, 833}, - dictWord{140, 0, 344}, - dictWord{7, 10, 736}, - dictWord{139, 10, 264}, - dictWord{134, 10, 1657}, - dictWord{134, 0, 1654}, - dictWord{138, 0, 531}, - dictWord{5, 11, 222}, - dictWord{ - 9, - 11, - 140, - }, - dictWord{138, 11, 534}, - dictWord{6, 0, 634}, - dictWord{6, 0, 798}, - dictWord{134, 0, 840}, - dictWord{138, 11, 503}, - dictWord{135, 10, 127}, - dictWord{133, 0, 853}, - dictWord{5, 11, 154}, - dictWord{7, 11, 1491}, - dictWord{10, 11, 379}, - dictWord{138, 11, 485}, - dictWord{6, 0, 249}, - dictWord{7, 0, 1234}, - dictWord{139, 0, 573}, - dictWord{133, 11, 716}, - dictWord{7, 11, 1570}, - dictWord{140, 11, 542}, - dictWord{136, 10, 364}, - dictWord{138, 0, 527}, - dictWord{ - 4, - 11, - 91, - }, - dictWord{5, 11, 388}, - dictWord{5, 11, 845}, - dictWord{6, 11, 206}, - dictWord{6, 11, 252}, - dictWord{6, 11, 365}, - dictWord{7, 11, 136}, - dictWord{7, 11, 531}, - dictWord{8, 11, 264}, - dictWord{136, 11, 621}, - dictWord{134, 0, 1419}, - dictWord{135, 11, 1441}, - dictWord{7, 0, 49}, - dictWord{7, 0, 392}, - dictWord{8, 0, 20}, - dictWord{8, 0, 172}, - dictWord{8, 0, 690}, - dictWord{9, 0, 383}, - dictWord{9, 0, 845}, - dictWord{10, 0, 48}, - dictWord{11, 0, 293}, - dictWord{11, 0, 832}, - dictWord{ - 11, - 0, - 920, - }, - dictWord{11, 0, 984}, - dictWord{141, 0, 221}, - dictWord{5, 0, 858}, - dictWord{133, 0, 992}, - dictWord{5, 0, 728}, - dictWord{137, 10, 792}, - dictWord{ - 5, - 10, - 909, - }, - dictWord{9, 10, 849}, - dictWord{138, 10, 805}, - dictWord{7, 0, 525}, - dictWord{7, 0, 1579}, - dictWord{8, 0, 497}, - dictWord{136, 0, 573}, - dictWord{6, 0, 268}, - dictWord{137, 0, 62}, - dictWord{135, 11, 576}, - dictWord{134, 0, 1201}, - dictWord{5, 11, 771}, - dictWord{5, 11, 863}, - dictWord{5, 11, 898}, - dictWord{ - 6, - 11, - 1632, - }, - dictWord{6, 11, 1644}, - dictWord{134, 11, 1780}, - dictWord{133, 11, 331}, - dictWord{7, 0, 193}, - dictWord{7, 0, 1105}, - dictWord{10, 0, 495}, - dictWord{ - 7, - 10, - 397, - }, - dictWord{8, 10, 124}, - dictWord{8, 10, 619}, - dictWord{9, 10, 305}, - dictWord{11, 10, 40}, - dictWord{12, 10, 349}, - dictWord{13, 10, 134}, - dictWord{ - 13, - 10, - 295, - }, - dictWord{14, 10, 155}, - dictWord{15, 10, 120}, - dictWord{146, 10, 105}, - dictWord{138, 0, 106}, - dictWord{6, 0, 859}, - dictWord{5, 11, 107}, - dictWord{ - 7, - 11, - 201, - }, - dictWord{136, 11, 518}, - dictWord{6, 11, 446}, - dictWord{135, 11, 1817}, - dictWord{13, 0, 23}, - dictWord{4, 10, 262}, - dictWord{135, 10, 342}, - dictWord{133, 10, 641}, - dictWord{137, 11, 851}, - dictWord{6, 0, 925}, - dictWord{137, 0, 813}, - dictWord{132, 11, 504}, - dictWord{6, 0, 613}, - dictWord{ - 136, - 0, - 223, - }, - dictWord{4, 10, 99}, - dictWord{6, 10, 250}, - dictWord{6, 10, 346}, - dictWord{8, 10, 127}, - dictWord{138, 10, 81}, - dictWord{136, 0, 953}, - dictWord{ - 132, - 10, - 915, - }, - dictWord{139, 11, 892}, - dictWord{5, 10, 75}, - dictWord{9, 10, 517}, - dictWord{10, 10, 470}, - dictWord{12, 10, 155}, - dictWord{141, 10, 224}, - dictWord{ - 4, - 0, - 666, - }, - dictWord{7, 0, 1017}, - dictWord{7, 11, 996}, - dictWord{138, 11, 390}, - dictWord{5, 11, 883}, - dictWord{133, 11, 975}, - dictWord{14, 10, 83}, - dictWord{ - 142, - 11, - 83, - }, - dictWord{4, 0, 670}, - dictWord{5, 11, 922}, - dictWord{134, 11, 1707}, - dictWord{135, 0, 216}, - dictWord{9, 0, 40}, - dictWord{11, 0, 136}, - dictWord{ - 135, - 11, - 787, - }, - dictWord{5, 10, 954}, - dictWord{5, 11, 993}, - dictWord{7, 11, 515}, - dictWord{137, 11, 91}, - dictWord{139, 0, 259}, - dictWord{7, 0, 1114}, - dictWord{ - 9, - 0, - 310, - }, - dictWord{9, 0, 682}, - dictWord{10, 0, 440}, - dictWord{13, 0, 40}, - dictWord{6, 10, 304}, - dictWord{8, 10, 418}, - dictWord{11, 10, 341}, - dictWord{ - 139, - 10, - 675, - }, - dictWord{14, 0, 296}, - dictWord{9, 10, 410}, - dictWord{139, 10, 425}, - dictWord{10, 11, 377}, - dictWord{12, 11, 363}, - dictWord{13, 11, 68}, - dictWord{ - 13, - 11, - 94, - }, - dictWord{14, 11, 108}, - dictWord{142, 11, 306}, - dictWord{7, 0, 1401}, - dictWord{135, 0, 1476}, - dictWord{4, 0, 296}, - dictWord{6, 0, 475}, - dictWord{ - 7, - 0, - 401, - }, - dictWord{7, 0, 1410}, - dictWord{7, 0, 1594}, - dictWord{7, 0, 1674}, - dictWord{8, 0, 63}, - dictWord{8, 0, 660}, - dictWord{137, 0, 74}, - dictWord{4, 0, 139}, - dictWord{4, 0, 388}, - dictWord{140, 0, 188}, - dictWord{132, 0, 797}, - dictWord{132, 11, 766}, - dictWord{5, 11, 103}, - dictWord{7, 11, 921}, - dictWord{8, 11, 580}, - dictWord{8, 11, 593}, - dictWord{8, 11, 630}, - dictWord{138, 11, 28}, - dictWord{4, 11, 911}, - dictWord{5, 11, 867}, - dictWord{133, 11, 1013}, - dictWord{134, 10, 14}, - dictWord{134, 0, 1572}, - dictWord{134, 10, 1708}, - dictWord{21, 0, 39}, - dictWord{5, 10, 113}, - dictWord{6, 10, 243}, - dictWord{7, 10, 1865}, - dictWord{ - 11, - 10, - 161, - }, - dictWord{16, 10, 37}, - dictWord{145, 10, 99}, - dictWord{7, 11, 1563}, - dictWord{141, 11, 182}, - dictWord{5, 11, 135}, - dictWord{6, 11, 519}, - dictWord{ - 7, - 11, - 1722, - }, - dictWord{10, 11, 271}, - dictWord{11, 11, 261}, - dictWord{145, 11, 54}, - dictWord{132, 10, 274}, - dictWord{134, 0, 1594}, - dictWord{4, 11, 300}, - dictWord{5, 11, 436}, - dictWord{135, 11, 484}, - dictWord{4, 0, 747}, - dictWord{6, 0, 290}, - dictWord{7, 0, 649}, - dictWord{7, 0, 1479}, - dictWord{135, 0, 1583}, - dictWord{133, 11, 535}, - dictWord{147, 11, 82}, - dictWord{133, 0, 232}, - dictWord{137, 0, 887}, - dictWord{135, 10, 166}, - dictWord{136, 0, 521}, - dictWord{4, 0, 14}, - dictWord{7, 0, 472}, - dictWord{7, 0, 1801}, - dictWord{10, 0, 748}, - dictWord{141, 0, 458}, - dictWord{134, 0, 741}, - dictWord{134, 0, 992}, - dictWord{16, 0, 111}, - dictWord{137, 10, 304}, - dictWord{4, 0, 425}, - dictWord{5, 11, 387}, - dictWord{7, 11, 557}, - dictWord{12, 11, 547}, - dictWord{142, 11, 86}, - dictWord{ - 135, - 11, - 1747, - }, - dictWord{5, 10, 654}, - dictWord{135, 11, 1489}, - dictWord{7, 0, 789}, - dictWord{4, 11, 6}, - dictWord{5, 11, 708}, - dictWord{136, 11, 75}, - dictWord{ - 6, - 10, - 273, - }, - dictWord{10, 10, 188}, - dictWord{13, 10, 377}, - dictWord{146, 10, 77}, - dictWord{6, 0, 1593}, - dictWord{4, 11, 303}, - dictWord{7, 11, 619}, - dictWord{ - 10, - 11, - 547, - }, - dictWord{10, 11, 687}, - dictWord{11, 11, 122}, - dictWord{140, 11, 601}, - dictWord{134, 0, 1768}, - dictWord{135, 10, 410}, - dictWord{138, 11, 772}, - dictWord{11, 0, 233}, - dictWord{139, 10, 524}, - dictWord{5, 0, 943}, - dictWord{134, 0, 1779}, - dictWord{134, 10, 1785}, - dictWord{136, 11, 529}, - dictWord{ - 132, - 0, - 955, - }, - dictWord{5, 0, 245}, - dictWord{6, 0, 576}, - dictWord{7, 0, 582}, - dictWord{136, 0, 225}, - dictWord{132, 10, 780}, - dictWord{142, 0, 241}, - dictWord{ - 134, - 0, - 1943, - }, - dictWord{4, 11, 106}, - dictWord{7, 11, 310}, - dictWord{7, 11, 1785}, - dictWord{10, 11, 690}, - dictWord{139, 11, 717}, - dictWord{134, 0, 1284}, - dictWord{5, 11, 890}, - dictWord{133, 11, 988}, - dictWord{6, 11, 626}, - dictWord{142, 11, 431}, - dictWord{10, 11, 706}, - dictWord{145, 11, 32}, - dictWord{ - 137, - 11, - 332, - }, - dictWord{132, 11, 698}, - dictWord{135, 0, 709}, - dictWord{5, 10, 948}, - dictWord{138, 11, 17}, - dictWord{136, 0, 554}, - dictWord{134, 0, 1564}, - dictWord{139, 10, 941}, - dictWord{132, 0, 443}, - dictWord{134, 0, 909}, - dictWord{134, 11, 84}, - dictWord{142, 0, 280}, - dictWord{4, 10, 532}, - dictWord{5, 10, 706}, - dictWord{135, 10, 662}, - dictWord{132, 0, 729}, - dictWord{5, 10, 837}, - dictWord{6, 10, 1651}, - dictWord{139, 10, 985}, - dictWord{135, 10, 1861}, - dictWord{ - 4, - 0, - 348, - }, - dictWord{152, 11, 3}, - dictWord{5, 11, 986}, - dictWord{6, 11, 130}, - dictWord{7, 11, 1582}, - dictWord{8, 11, 458}, - dictWord{10, 11, 101}, - dictWord{ - 10, - 11, - 318, - }, - dictWord{138, 11, 823}, - dictWord{134, 0, 758}, - dictWord{4, 0, 298}, - dictWord{137, 0, 848}, - dictWord{4, 10, 330}, - dictWord{7, 10, 933}, - dictWord{ - 7, - 10, - 2012, - }, - dictWord{136, 10, 292}, - dictWord{7, 11, 1644}, - dictWord{137, 11, 129}, - dictWord{6, 0, 1422}, - dictWord{9, 0, 829}, - dictWord{135, 10, 767}, - dictWord{5, 0, 164}, - dictWord{7, 0, 121}, - dictWord{142, 0, 189}, - dictWord{7, 0, 812}, - dictWord{7, 0, 1261}, - dictWord{7, 0, 1360}, - dictWord{9, 0, 632}, - dictWord{ - 140, - 0, - 352, - }, - dictWord{135, 11, 1788}, - dictWord{139, 0, 556}, - dictWord{135, 11, 997}, - dictWord{145, 10, 114}, - dictWord{4, 0, 172}, - dictWord{9, 0, 611}, - dictWord{10, 0, 436}, - dictWord{12, 0, 673}, - dictWord{13, 0, 255}, - dictWord{137, 10, 883}, - dictWord{11, 0, 530}, - dictWord{138, 10, 274}, - dictWord{133, 0, 844}, - dictWord{134, 0, 984}, - dictWord{13, 0, 232}, - dictWord{18, 0, 35}, - dictWord{4, 10, 703}, - dictWord{135, 10, 207}, - dictWord{132, 10, 571}, - dictWord{9, 0, 263}, - dictWord{10, 0, 147}, - dictWord{138, 0, 492}, - dictWord{7, 11, 1756}, - dictWord{137, 11, 98}, - dictWord{5, 10, 873}, - dictWord{5, 10, 960}, - dictWord{8, 10, 823}, - dictWord{137, 10, 881}, - dictWord{133, 0, 537}, - dictWord{132, 0, 859}, - dictWord{7, 11, 1046}, - dictWord{139, 11, 160}, - dictWord{137, 0, 842}, - dictWord{ - 139, - 10, - 283, - }, - dictWord{5, 10, 33}, - dictWord{6, 10, 470}, - dictWord{139, 10, 424}, - dictWord{6, 11, 45}, - dictWord{7, 11, 433}, - dictWord{8, 11, 129}, - dictWord{ - 9, - 11, - 21, - }, - dictWord{10, 11, 392}, - dictWord{11, 11, 79}, - dictWord{12, 11, 499}, - dictWord{13, 11, 199}, - dictWord{141, 11, 451}, - dictWord{135, 0, 1291}, - dictWord{135, 10, 1882}, - dictWord{7, 11, 558}, - dictWord{136, 11, 353}, - dictWord{134, 0, 1482}, - dictWord{5, 0, 230}, - dictWord{5, 0, 392}, - dictWord{6, 0, 420}, - dictWord{9, 0, 568}, - dictWord{140, 0, 612}, - dictWord{6, 0, 262}, - dictWord{7, 10, 90}, - dictWord{7, 10, 664}, - dictWord{7, 10, 830}, - dictWord{7, 10, 1380}, - dictWord{ - 7, - 10, - 2025, - }, - dictWord{8, 11, 81}, - dictWord{8, 10, 448}, - dictWord{8, 10, 828}, - dictWord{9, 11, 189}, - dictWord{9, 11, 201}, - dictWord{11, 11, 478}, - dictWord{ - 11, - 11, - 712, - }, - dictWord{141, 11, 338}, - dictWord{142, 0, 31}, - dictWord{5, 11, 353}, - dictWord{151, 11, 26}, - dictWord{132, 0, 753}, - dictWord{4, 0, 0}, - dictWord{ - 5, - 0, - 41, - }, - dictWord{7, 0, 1459}, - dictWord{7, 0, 1469}, - dictWord{7, 0, 1859}, - dictWord{9, 0, 549}, - dictWord{139, 0, 905}, - dictWord{9, 10, 417}, - dictWord{ - 137, - 10, - 493, - }, - dictWord{135, 11, 1113}, - dictWord{133, 0, 696}, - dictWord{141, 11, 448}, - dictWord{134, 10, 295}, - dictWord{132, 0, 834}, - dictWord{4, 0, 771}, - dictWord{5, 10, 1019}, - dictWord{6, 11, 25}, - dictWord{7, 11, 855}, - dictWord{7, 11, 1258}, - dictWord{144, 11, 32}, - dictWord{134, 0, 1076}, - dictWord{133, 0, 921}, - dictWord{133, 0, 674}, - dictWord{4, 11, 4}, - dictWord{7, 11, 1118}, - dictWord{7, 11, 1320}, - dictWord{7, 11, 1706}, - dictWord{8, 11, 277}, - dictWord{9, 11, 622}, - dictWord{10, 11, 9}, - dictWord{11, 11, 724}, - dictWord{12, 11, 350}, - dictWord{12, 11, 397}, - dictWord{13, 11, 28}, - dictWord{13, 11, 159}, - dictWord{15, 11, 89}, - dictWord{18, 11, 5}, - dictWord{19, 11, 9}, - dictWord{20, 11, 34}, - dictWord{150, 11, 47}, - dictWord{134, 10, 208}, - dictWord{6, 0, 444}, - dictWord{136, 0, 308}, - dictWord{ - 6, - 0, - 180, - }, - dictWord{7, 0, 1137}, - dictWord{8, 0, 751}, - dictWord{139, 0, 805}, - dictWord{4, 0, 183}, - dictWord{7, 0, 271}, - dictWord{11, 0, 824}, - dictWord{ - 11, - 0, - 952, - }, - dictWord{13, 0, 278}, - dictWord{13, 0, 339}, - dictWord{13, 0, 482}, - dictWord{14, 0, 424}, - dictWord{148, 0, 99}, - dictWord{7, 11, 317}, - dictWord{ - 135, - 11, - 569, - }, - dictWord{4, 0, 19}, - dictWord{5, 0, 477}, - dictWord{5, 0, 596}, - dictWord{6, 0, 505}, - dictWord{7, 0, 1221}, - dictWord{11, 0, 907}, - dictWord{12, 0, 209}, - dictWord{141, 0, 214}, - dictWord{135, 0, 1215}, - dictWord{6, 0, 271}, - dictWord{7, 0, 398}, - dictWord{8, 0, 387}, - dictWord{10, 0, 344}, - dictWord{7, 10, 448}, - dictWord{ - 7, - 10, - 1629, - }, - dictWord{7, 10, 1813}, - dictWord{8, 10, 442}, - dictWord{9, 10, 710}, - dictWord{10, 10, 282}, - dictWord{138, 10, 722}, - dictWord{11, 10, 844}, - dictWord{12, 10, 104}, - dictWord{140, 10, 625}, - dictWord{134, 11, 255}, - dictWord{133, 10, 787}, - dictWord{134, 0, 1645}, - dictWord{11, 11, 956}, - dictWord{ - 151, - 11, - 3, - }, - dictWord{6, 0, 92}, - dictWord{6, 0, 188}, - dictWord{7, 0, 209}, - dictWord{7, 0, 1269}, - dictWord{7, 0, 1524}, - dictWord{7, 0, 1876}, - dictWord{8, 0, 661}, - dictWord{10, 0, 42}, - dictWord{10, 0, 228}, - dictWord{11, 0, 58}, - dictWord{11, 0, 1020}, - dictWord{12, 0, 58}, - dictWord{12, 0, 118}, - dictWord{141, 0, 32}, - dictWord{ - 4, - 0, - 459, - }, - dictWord{133, 0, 966}, - dictWord{4, 11, 536}, - dictWord{7, 11, 1141}, - dictWord{10, 11, 723}, - dictWord{139, 11, 371}, - dictWord{140, 0, 330}, - dictWord{134, 0, 1557}, - dictWord{7, 11, 285}, - dictWord{135, 11, 876}, - dictWord{136, 10, 491}, - dictWord{135, 11, 560}, - dictWord{6, 0, 18}, - dictWord{7, 0, 179}, - dictWord{7, 0, 932}, - dictWord{8, 0, 548}, - dictWord{8, 0, 757}, - dictWord{9, 0, 54}, - dictWord{9, 0, 65}, - dictWord{9, 0, 532}, - dictWord{9, 0, 844}, - dictWord{10, 0, 113}, - dictWord{10, 0, 117}, - dictWord{10, 0, 315}, - dictWord{10, 0, 560}, - dictWord{10, 0, 622}, - dictWord{10, 0, 798}, - dictWord{11, 0, 153}, - dictWord{11, 0, 351}, - dictWord{ - 11, - 0, - 375, - }, - dictWord{12, 0, 78}, - dictWord{12, 0, 151}, - dictWord{12, 0, 392}, - dictWord{12, 0, 666}, - dictWord{14, 0, 248}, - dictWord{143, 0, 23}, - dictWord{ - 6, - 0, - 1742, - }, - dictWord{132, 11, 690}, - dictWord{4, 10, 403}, - dictWord{5, 10, 441}, - dictWord{7, 10, 450}, - dictWord{10, 10, 840}, - dictWord{11, 10, 101}, - dictWord{ - 12, - 10, - 193, - }, - dictWord{141, 10, 430}, - dictWord{133, 0, 965}, - dictWord{134, 0, 182}, - dictWord{10, 0, 65}, - dictWord{10, 0, 488}, - dictWord{138, 0, 497}, - dictWord{135, 11, 1346}, - dictWord{6, 0, 973}, - dictWord{6, 0, 1158}, - dictWord{10, 11, 200}, - dictWord{19, 11, 2}, - dictWord{151, 11, 22}, - dictWord{4, 11, 190}, - dictWord{133, 11, 554}, - dictWord{133, 10, 679}, - dictWord{7, 0, 328}, - dictWord{137, 10, 326}, - dictWord{133, 11, 1001}, - dictWord{9, 0, 588}, - dictWord{ - 138, - 0, - 260, - }, - dictWord{133, 11, 446}, - dictWord{135, 10, 1128}, - dictWord{135, 10, 1796}, - dictWord{147, 11, 119}, - dictWord{134, 0, 1786}, - dictWord{ - 6, - 0, - 1328, - }, - dictWord{6, 0, 1985}, - dictWord{8, 0, 962}, - dictWord{138, 0, 1017}, - dictWord{135, 0, 308}, - dictWord{11, 0, 508}, - dictWord{4, 10, 574}, - dictWord{ - 7, - 10, - 350, - }, - dictWord{7, 10, 1024}, - dictWord{8, 10, 338}, - dictWord{9, 10, 677}, - dictWord{138, 10, 808}, - dictWord{138, 11, 752}, - dictWord{135, 10, 1081}, - dictWord{137, 11, 96}, - dictWord{7, 10, 1676}, - dictWord{135, 10, 2037}, - dictWord{136, 0, 588}, - dictWord{132, 11, 304}, - dictWord{133, 0, 614}, - dictWord{ - 140, - 0, - 793, - }, - dictWord{136, 0, 287}, - dictWord{137, 10, 297}, - dictWord{141, 10, 37}, - dictWord{6, 11, 53}, - dictWord{6, 11, 199}, - dictWord{7, 11, 1408}, - dictWord{ - 8, - 11, - 32, - }, - dictWord{8, 11, 93}, - dictWord{9, 11, 437}, - dictWord{10, 11, 397}, - dictWord{10, 11, 629}, - dictWord{11, 11, 593}, - dictWord{11, 11, 763}, - dictWord{ - 13, - 11, - 326, - }, - dictWord{145, 11, 35}, - dictWord{134, 11, 105}, - dictWord{9, 11, 320}, - dictWord{10, 11, 506}, - dictWord{138, 11, 794}, - dictWord{5, 11, 114}, - dictWord{5, 11, 255}, - dictWord{141, 11, 285}, - dictWord{140, 0, 290}, - dictWord{7, 11, 2035}, - dictWord{8, 11, 19}, - dictWord{9, 11, 89}, - dictWord{138, 11, 831}, - dictWord{134, 0, 1136}, - dictWord{7, 0, 719}, - dictWord{8, 0, 796}, - dictWord{8, 0, 809}, - dictWord{8, 0, 834}, - dictWord{6, 10, 306}, - dictWord{7, 10, 1140}, - dictWord{ - 7, - 10, - 1340, - }, - dictWord{8, 10, 133}, - dictWord{138, 10, 449}, - dictWord{139, 10, 1011}, - dictWord{5, 0, 210}, - dictWord{6, 0, 213}, - dictWord{7, 0, 60}, - dictWord{ - 10, - 0, - 364, - }, - dictWord{139, 0, 135}, - dictWord{5, 0, 607}, - dictWord{8, 0, 326}, - dictWord{136, 0, 490}, - dictWord{138, 11, 176}, - dictWord{132, 0, 701}, - dictWord{ - 5, - 0, - 472, - }, - dictWord{7, 0, 380}, - dictWord{137, 0, 758}, - dictWord{135, 0, 1947}, - dictWord{6, 0, 1079}, - dictWord{138, 0, 278}, - dictWord{138, 11, 391}, - dictWord{ - 5, - 10, - 329, - }, - dictWord{8, 10, 260}, - dictWord{139, 11, 156}, - dictWord{4, 0, 386}, - dictWord{7, 0, 41}, - dictWord{8, 0, 405}, - dictWord{8, 0, 728}, - dictWord{9, 0, 497}, - dictWord{11, 0, 110}, - dictWord{11, 0, 360}, - dictWord{15, 0, 37}, - dictWord{144, 0, 84}, - dictWord{5, 0, 46}, - dictWord{7, 0, 1452}, - dictWord{7, 0, 1480}, - dictWord{ - 8, - 0, - 634, - }, - dictWord{140, 0, 472}, - dictWord{136, 0, 961}, - dictWord{4, 0, 524}, - dictWord{136, 0, 810}, - dictWord{10, 0, 238}, - dictWord{141, 0, 33}, - dictWord{ - 132, - 10, - 657, - }, - dictWord{152, 10, 7}, - dictWord{133, 0, 532}, - dictWord{5, 0, 997}, - dictWord{135, 10, 1665}, - dictWord{7, 11, 594}, - dictWord{7, 11, 851}, - dictWord{ - 7, - 11, - 1858, - }, - dictWord{9, 11, 411}, - dictWord{9, 11, 574}, - dictWord{9, 11, 666}, - dictWord{9, 11, 737}, - dictWord{10, 11, 346}, - dictWord{10, 11, 712}, - dictWord{ - 11, - 11, - 246, - }, - dictWord{11, 11, 432}, - dictWord{11, 11, 517}, - dictWord{11, 11, 647}, - dictWord{11, 11, 679}, - dictWord{11, 11, 727}, - dictWord{12, 11, 304}, - dictWord{12, 11, 305}, - dictWord{12, 11, 323}, - dictWord{12, 11, 483}, - dictWord{12, 11, 572}, - dictWord{12, 11, 593}, - dictWord{12, 11, 602}, - dictWord{ - 13, - 11, - 95, - }, - dictWord{13, 11, 101}, - dictWord{13, 11, 171}, - dictWord{13, 11, 315}, - dictWord{13, 11, 378}, - dictWord{13, 11, 425}, - dictWord{13, 11, 475}, - dictWord{ - 14, - 11, - 63, - }, - dictWord{14, 11, 380}, - dictWord{14, 11, 384}, - dictWord{15, 11, 133}, - dictWord{18, 11, 112}, - dictWord{148, 11, 72}, - dictWord{5, 11, 955}, - dictWord{136, 11, 814}, - dictWord{134, 0, 1301}, - dictWord{5, 10, 66}, - dictWord{7, 10, 1896}, - dictWord{136, 10, 288}, - dictWord{133, 11, 56}, - dictWord{ - 134, - 10, - 1643, - }, - dictWord{6, 0, 1298}, - dictWord{148, 11, 100}, - dictWord{5, 0, 782}, - dictWord{5, 0, 829}, - dictWord{6, 0, 671}, - dictWord{6, 0, 1156}, - dictWord{6, 0, 1738}, - dictWord{137, 11, 621}, - dictWord{4, 0, 306}, - dictWord{5, 0, 570}, - dictWord{7, 0, 1347}, - dictWord{5, 10, 91}, - dictWord{5, 10, 648}, - dictWord{5, 10, 750}, - dictWord{ - 5, - 10, - 781, - }, - dictWord{6, 10, 54}, - dictWord{6, 10, 112}, - dictWord{6, 10, 402}, - dictWord{6, 10, 1732}, - dictWord{7, 10, 315}, - dictWord{7, 10, 749}, - dictWord{ - 7, - 10, - 1900, - }, - dictWord{9, 10, 78}, - dictWord{9, 10, 508}, - dictWord{10, 10, 611}, - dictWord{10, 10, 811}, - dictWord{11, 10, 510}, - dictWord{11, 10, 728}, - dictWord{ - 13, - 10, - 36, - }, - dictWord{14, 10, 39}, - dictWord{16, 10, 83}, - dictWord{17, 10, 124}, - dictWord{148, 10, 30}, - dictWord{8, 10, 570}, - dictWord{9, 11, 477}, - dictWord{ - 141, - 11, - 78, - }, - dictWord{4, 11, 639}, - dictWord{10, 11, 4}, - dictWord{10, 10, 322}, - dictWord{10, 10, 719}, - dictWord{11, 10, 407}, - dictWord{11, 11, 638}, - dictWord{ - 12, - 11, - 177, - }, - dictWord{148, 11, 57}, - dictWord{7, 0, 1823}, - dictWord{139, 0, 693}, - dictWord{7, 0, 759}, - dictWord{5, 11, 758}, - dictWord{8, 10, 125}, - dictWord{ - 8, - 10, - 369, - }, - dictWord{8, 10, 524}, - dictWord{10, 10, 486}, - dictWord{11, 10, 13}, - dictWord{11, 10, 381}, - dictWord{11, 10, 736}, - dictWord{11, 10, 766}, - dictWord{ - 11, - 10, - 845, - }, - dictWord{13, 10, 114}, - dictWord{13, 10, 292}, - dictWord{142, 10, 47}, - dictWord{7, 0, 1932}, - dictWord{6, 10, 1684}, - dictWord{6, 10, 1731}, - dictWord{7, 10, 356}, - dictWord{8, 10, 54}, - dictWord{8, 10, 221}, - dictWord{9, 10, 225}, - dictWord{9, 10, 356}, - dictWord{10, 10, 77}, - dictWord{10, 10, 446}, - dictWord{ - 10, - 10, - 731, - }, - dictWord{12, 10, 404}, - dictWord{141, 10, 491}, - dictWord{135, 11, 552}, - dictWord{135, 11, 1112}, - dictWord{4, 0, 78}, - dictWord{5, 0, 96}, - dictWord{ - 5, - 0, - 182, - }, - dictWord{6, 0, 1257}, - dictWord{7, 0, 1724}, - dictWord{7, 0, 1825}, - dictWord{10, 0, 394}, - dictWord{10, 0, 471}, - dictWord{11, 0, 532}, - dictWord{ - 14, - 0, - 340, - }, - dictWord{145, 0, 88}, - dictWord{139, 11, 328}, - dictWord{135, 0, 1964}, - dictWord{132, 10, 411}, - dictWord{4, 10, 80}, - dictWord{5, 10, 44}, - dictWord{ - 137, - 11, - 133, - }, - dictWord{5, 11, 110}, - dictWord{6, 11, 169}, - dictWord{6, 11, 1702}, - dictWord{7, 11, 400}, - dictWord{8, 11, 538}, - dictWord{9, 11, 184}, - dictWord{ - 9, - 11, - 524, - }, - dictWord{140, 11, 218}, - dictWord{4, 0, 521}, - dictWord{5, 10, 299}, - dictWord{7, 10, 1083}, - dictWord{140, 11, 554}, - dictWord{6, 11, 133}, - dictWord{ - 9, - 11, - 353, - }, - dictWord{12, 11, 628}, - dictWord{146, 11, 79}, - dictWord{6, 0, 215}, - dictWord{7, 0, 584}, - dictWord{7, 0, 1028}, - dictWord{7, 0, 1473}, - dictWord{ - 7, - 0, - 1721, - }, - dictWord{9, 0, 424}, - dictWord{138, 0, 779}, - dictWord{7, 0, 857}, - dictWord{7, 0, 1209}, - dictWord{7, 10, 1713}, - dictWord{9, 10, 537}, - dictWord{ - 10, - 10, - 165, - }, - dictWord{12, 10, 219}, - dictWord{140, 10, 561}, - dictWord{4, 10, 219}, - dictWord{6, 11, 93}, - dictWord{7, 11, 1422}, - dictWord{7, 10, 1761}, - dictWord{ - 7, - 11, - 1851, - }, - dictWord{8, 11, 673}, - dictWord{9, 10, 86}, - dictWord{9, 11, 529}, - dictWord{140, 11, 43}, - dictWord{137, 11, 371}, - dictWord{136, 0, 671}, - dictWord{ - 5, - 0, - 328, - }, - dictWord{135, 0, 918}, - dictWord{132, 0, 529}, - dictWord{9, 11, 25}, - dictWord{10, 11, 467}, - dictWord{138, 11, 559}, - dictWord{4, 11, 335}, - dictWord{ - 135, - 11, - 942, - }, - dictWord{134, 0, 716}, - dictWord{134, 0, 1509}, - dictWord{6, 0, 67}, - dictWord{7, 0, 258}, - dictWord{7, 0, 1630}, - dictWord{9, 0, 354}, - dictWord{ - 9, - 0, - 675, - }, - dictWord{10, 0, 830}, - dictWord{14, 0, 80}, - dictWord{17, 0, 80}, - dictWord{140, 10, 428}, - dictWord{134, 0, 1112}, - dictWord{6, 0, 141}, - dictWord{7, 0, 225}, - dictWord{9, 0, 59}, - dictWord{9, 0, 607}, - dictWord{10, 0, 312}, - dictWord{11, 0, 687}, - dictWord{12, 0, 555}, - dictWord{13, 0, 373}, - dictWord{13, 0, 494}, - dictWord{ - 148, - 0, - 58, - }, - dictWord{133, 10, 514}, - dictWord{8, 11, 39}, - dictWord{10, 11, 773}, - dictWord{11, 11, 84}, - dictWord{12, 11, 205}, - dictWord{142, 11, 1}, - dictWord{ - 8, - 0, - 783, - }, - dictWord{5, 11, 601}, - dictWord{133, 11, 870}, - dictWord{136, 11, 594}, - dictWord{4, 10, 55}, - dictWord{5, 10, 301}, - dictWord{6, 10, 571}, - dictWord{ - 14, - 10, - 49, - }, - dictWord{146, 10, 102}, - dictWord{132, 11, 181}, - dictWord{134, 11, 1652}, - dictWord{133, 10, 364}, - dictWord{4, 11, 97}, - dictWord{5, 11, 147}, - dictWord{6, 11, 286}, - dictWord{7, 11, 1362}, - dictWord{141, 11, 176}, - dictWord{4, 10, 76}, - dictWord{7, 10, 1550}, - dictWord{9, 10, 306}, - dictWord{9, 10, 430}, - dictWord{9, 10, 663}, - dictWord{10, 10, 683}, - dictWord{11, 10, 427}, - dictWord{11, 10, 753}, - dictWord{12, 10, 334}, - dictWord{12, 10, 442}, - dictWord{ - 14, - 10, - 258, - }, - dictWord{14, 10, 366}, - dictWord{143, 10, 131}, - dictWord{137, 10, 52}, - dictWord{6, 0, 955}, - dictWord{134, 0, 1498}, - dictWord{6, 11, 375}, - dictWord{ - 7, - 11, - 169, - }, - dictWord{7, 11, 254}, - dictWord{136, 11, 780}, - dictWord{7, 0, 430}, - dictWord{11, 0, 46}, - dictWord{14, 0, 343}, - dictWord{142, 11, 343}, - dictWord{ - 135, - 0, - 1183, - }, - dictWord{5, 0, 602}, - dictWord{7, 0, 2018}, - dictWord{9, 0, 418}, - dictWord{9, 0, 803}, - dictWord{135, 11, 1447}, - dictWord{8, 0, 677}, - dictWord{ - 135, - 11, - 1044, - }, - dictWord{139, 11, 285}, - dictWord{4, 10, 656}, - dictWord{135, 10, 779}, - dictWord{135, 10, 144}, - dictWord{5, 11, 629}, - dictWord{ - 135, - 11, - 1549, - }, - dictWord{135, 10, 1373}, - dictWord{138, 11, 209}, - dictWord{7, 10, 554}, - dictWord{7, 10, 605}, - dictWord{141, 10, 10}, - dictWord{5, 10, 838}, - dictWord{ - 5, - 10, - 841, - }, - dictWord{134, 10, 1649}, - dictWord{133, 10, 1012}, - dictWord{6, 0, 1357}, - dictWord{134, 0, 1380}, - dictWord{144, 0, 53}, - dictWord{6, 0, 590}, - dictWord{7, 10, 365}, - dictWord{7, 10, 1357}, - dictWord{7, 10, 1497}, - dictWord{8, 10, 154}, - dictWord{141, 10, 281}, - dictWord{133, 10, 340}, - dictWord{ - 132, - 11, - 420, - }, - dictWord{135, 0, 329}, - dictWord{147, 11, 32}, - dictWord{4, 0, 469}, - dictWord{10, 11, 429}, - dictWord{139, 10, 495}, - dictWord{8, 10, 261}, - dictWord{ - 9, - 10, - 144, - }, - dictWord{9, 10, 466}, - dictWord{10, 10, 370}, - dictWord{12, 10, 470}, - dictWord{13, 10, 144}, - dictWord{142, 10, 348}, - dictWord{142, 0, 460}, - dictWord{4, 11, 325}, - dictWord{9, 10, 897}, - dictWord{138, 11, 125}, - dictWord{6, 0, 1743}, - dictWord{6, 10, 248}, - dictWord{9, 10, 546}, - dictWord{10, 10, 535}, - dictWord{11, 10, 681}, - dictWord{141, 10, 135}, - dictWord{4, 0, 990}, - dictWord{5, 0, 929}, - dictWord{6, 0, 340}, - dictWord{8, 0, 376}, - dictWord{8, 0, 807}, - dictWord{ - 8, - 0, - 963, - }, - dictWord{8, 0, 980}, - dictWord{138, 0, 1007}, - dictWord{134, 0, 1603}, - dictWord{140, 0, 250}, - dictWord{4, 11, 714}, - dictWord{133, 11, 469}, - dictWord{134, 10, 567}, - dictWord{136, 10, 445}, - dictWord{5, 0, 218}, - dictWord{7, 0, 1610}, - dictWord{8, 0, 646}, - dictWord{10, 0, 83}, - dictWord{11, 11, 138}, - dictWord{140, 11, 40}, - dictWord{7, 0, 1512}, - dictWord{135, 0, 1794}, - dictWord{135, 11, 1216}, - dictWord{11, 0, 0}, - dictWord{16, 0, 78}, - dictWord{132, 11, 718}, - dictWord{133, 0, 571}, - dictWord{132, 0, 455}, - dictWord{134, 0, 1012}, - dictWord{5, 11, 124}, - dictWord{5, 11, 144}, - dictWord{6, 11, 548}, - dictWord{7, 11, 15}, - dictWord{7, 11, 153}, - dictWord{137, 11, 629}, - dictWord{142, 11, 10}, - dictWord{6, 11, 75}, - dictWord{7, 11, 1531}, - dictWord{8, 11, 416}, - dictWord{9, 11, 240}, - dictWord{9, 11, 275}, - dictWord{10, 11, 100}, - dictWord{11, 11, 658}, - dictWord{11, 11, 979}, - dictWord{12, 11, 86}, - dictWord{13, 11, 468}, - dictWord{14, 11, 66}, - dictWord{14, 11, 207}, - dictWord{15, 11, 20}, - dictWord{15, 11, 25}, - dictWord{144, 11, 58}, - dictWord{132, 10, 577}, - dictWord{5, 11, 141}, - dictWord{ - 5, - 11, - 915, - }, - dictWord{6, 11, 1783}, - dictWord{7, 11, 211}, - dictWord{7, 11, 698}, - dictWord{7, 11, 1353}, - dictWord{9, 11, 83}, - dictWord{9, 11, 281}, - dictWord{ - 10, - 11, - 376, - }, - dictWord{10, 11, 431}, - dictWord{11, 11, 543}, - dictWord{12, 11, 664}, - dictWord{13, 11, 280}, - dictWord{13, 11, 428}, - dictWord{14, 11, 61}, - dictWord{ - 14, - 11, - 128, - }, - dictWord{17, 11, 52}, - dictWord{145, 11, 81}, - dictWord{6, 0, 161}, - dictWord{7, 0, 372}, - dictWord{137, 0, 597}, - dictWord{132, 0, 349}, - dictWord{ - 10, - 11, - 702, - }, - dictWord{139, 11, 245}, - dictWord{134, 0, 524}, - dictWord{134, 10, 174}, - dictWord{6, 0, 432}, - dictWord{9, 0, 751}, - dictWord{139, 0, 322}, - dictWord{147, 11, 94}, - dictWord{4, 11, 338}, - dictWord{133, 11, 400}, - dictWord{5, 0, 468}, - dictWord{10, 0, 325}, - dictWord{11, 0, 856}, - dictWord{12, 0, 345}, - dictWord{143, 0, 104}, - dictWord{133, 0, 223}, - dictWord{132, 0, 566}, - dictWord{4, 11, 221}, - dictWord{5, 11, 659}, - dictWord{5, 11, 989}, - dictWord{7, 11, 697}, - dictWord{7, 11, 1211}, - dictWord{138, 11, 284}, - dictWord{135, 11, 1070}, - dictWord{4, 0, 59}, - dictWord{135, 0, 1394}, - dictWord{6, 0, 436}, - dictWord{11, 0, 481}, - dictWord{5, 10, 878}, - dictWord{133, 10, 972}, - dictWord{4, 0, 48}, - dictWord{5, 0, 271}, - dictWord{135, 0, 953}, - dictWord{5, 0, 610}, - dictWord{136, 0, 457}, - dictWord{ - 4, - 0, - 773, - }, - dictWord{5, 0, 618}, - dictWord{137, 0, 756}, - dictWord{133, 0, 755}, - dictWord{135, 0, 1217}, - dictWord{138, 11, 507}, - dictWord{132, 10, 351}, - dictWord{132, 0, 197}, - dictWord{143, 11, 78}, - dictWord{4, 11, 188}, - dictWord{7, 11, 805}, - dictWord{11, 11, 276}, - dictWord{142, 11, 293}, - dictWord{ - 5, - 11, - 884, - }, - dictWord{139, 11, 991}, - dictWord{132, 10, 286}, - dictWord{10, 0, 259}, - dictWord{10, 0, 428}, - dictWord{7, 10, 438}, - dictWord{7, 10, 627}, - dictWord{ - 7, - 10, - 1516, - }, - dictWord{8, 10, 40}, - dictWord{9, 10, 56}, - dictWord{9, 10, 294}, - dictWord{11, 10, 969}, - dictWord{11, 10, 995}, - dictWord{146, 10, 148}, - dictWord{ - 4, - 0, - 356, - }, - dictWord{5, 0, 217}, - dictWord{5, 0, 492}, - dictWord{5, 0, 656}, - dictWord{8, 0, 544}, - dictWord{136, 11, 544}, - dictWord{5, 0, 259}, - dictWord{6, 0, 1230}, - dictWord{7, 0, 414}, - dictWord{7, 0, 854}, - dictWord{142, 0, 107}, - dictWord{132, 0, 1007}, - dictWord{15, 0, 14}, - dictWord{144, 0, 5}, - dictWord{6, 0, 1580}, - dictWord{ - 132, - 10, - 738, - }, - dictWord{132, 11, 596}, - dictWord{132, 0, 673}, - dictWord{133, 10, 866}, - dictWord{6, 0, 1843}, - dictWord{135, 11, 1847}, - dictWord{4, 0, 165}, - dictWord{7, 0, 1398}, - dictWord{135, 0, 1829}, - dictWord{135, 11, 1634}, - dictWord{147, 11, 65}, - dictWord{6, 0, 885}, - dictWord{6, 0, 1009}, - dictWord{ - 137, - 0, - 809, - }, - dictWord{133, 10, 116}, - dictWord{132, 10, 457}, - dictWord{136, 11, 770}, - dictWord{9, 0, 498}, - dictWord{12, 0, 181}, - dictWord{10, 11, 361}, - dictWord{142, 11, 316}, - dictWord{134, 11, 595}, - dictWord{5, 0, 9}, - dictWord{7, 0, 297}, - dictWord{7, 0, 966}, - dictWord{140, 0, 306}, - dictWord{4, 11, 89}, - dictWord{ - 5, - 11, - 489, - }, - dictWord{6, 11, 315}, - dictWord{7, 11, 553}, - dictWord{7, 11, 1745}, - dictWord{138, 11, 243}, - dictWord{134, 0, 1487}, - dictWord{132, 0, 437}, - dictWord{ - 5, - 0, - 146, - }, - dictWord{6, 0, 411}, - dictWord{138, 0, 721}, - dictWord{5, 10, 527}, - dictWord{6, 10, 189}, - dictWord{135, 10, 859}, - dictWord{11, 10, 104}, - dictWord{ - 11, - 10, - 554, - }, - dictWord{15, 10, 60}, - dictWord{143, 10, 125}, - dictWord{6, 11, 1658}, - dictWord{9, 11, 3}, - dictWord{10, 11, 154}, - dictWord{11, 11, 641}, - dictWord{13, 11, 85}, - dictWord{13, 11, 201}, - dictWord{141, 11, 346}, - dictWord{6, 0, 177}, - dictWord{135, 0, 467}, - dictWord{134, 0, 1377}, - dictWord{ - 134, - 10, - 116, - }, - dictWord{136, 11, 645}, - dictWord{4, 11, 166}, - dictWord{5, 11, 505}, - dictWord{6, 11, 1670}, - dictWord{137, 11, 110}, - dictWord{133, 10, 487}, - dictWord{ - 4, - 10, - 86, - }, - dictWord{5, 10, 667}, - dictWord{5, 10, 753}, - dictWord{6, 10, 316}, - dictWord{6, 10, 455}, - dictWord{135, 10, 946}, - dictWord{133, 0, 200}, - dictWord{132, 0, 959}, - dictWord{6, 0, 1928}, - dictWord{134, 0, 1957}, - dictWord{139, 11, 203}, - dictWord{150, 10, 45}, - dictWord{4, 10, 79}, - dictWord{7, 10, 1773}, - dictWord{10, 10, 450}, - dictWord{11, 10, 589}, - dictWord{13, 10, 332}, - dictWord{13, 10, 493}, - dictWord{14, 10, 183}, - dictWord{14, 10, 334}, - dictWord{ - 14, - 10, - 362, - }, - dictWord{14, 10, 368}, - dictWord{14, 10, 376}, - dictWord{14, 10, 379}, - dictWord{19, 10, 90}, - dictWord{19, 10, 103}, - dictWord{19, 10, 127}, - dictWord{148, 10, 90}, - dictWord{6, 0, 1435}, - dictWord{135, 11, 1275}, - dictWord{134, 0, 481}, - dictWord{7, 11, 445}, - dictWord{8, 11, 307}, - dictWord{8, 11, 704}, - dictWord{10, 11, 41}, - dictWord{10, 11, 439}, - dictWord{11, 11, 237}, - dictWord{11, 11, 622}, - dictWord{140, 11, 201}, - dictWord{135, 11, 869}, - dictWord{ - 4, - 0, - 84, - }, - dictWord{7, 0, 1482}, - dictWord{10, 0, 76}, - dictWord{138, 0, 142}, - dictWord{11, 11, 277}, - dictWord{144, 11, 14}, - dictWord{135, 11, 1977}, - dictWord{ - 4, - 11, - 189, - }, - dictWord{5, 11, 713}, - dictWord{136, 11, 57}, - dictWord{133, 0, 1015}, - dictWord{138, 11, 371}, - dictWord{4, 0, 315}, - dictWord{5, 0, 507}, - dictWord{ - 135, - 0, - 1370, - }, - dictWord{4, 11, 552}, - dictWord{142, 10, 381}, - dictWord{9, 0, 759}, - dictWord{16, 0, 31}, - dictWord{16, 0, 39}, - dictWord{16, 0, 75}, - dictWord{18, 0, 24}, - dictWord{20, 0, 42}, - dictWord{152, 0, 1}, - dictWord{134, 0, 712}, - dictWord{134, 0, 1722}, - dictWord{133, 10, 663}, - dictWord{133, 10, 846}, - dictWord{ - 8, - 0, - 222, - }, - dictWord{8, 0, 476}, - dictWord{9, 0, 238}, - dictWord{11, 0, 516}, - dictWord{11, 0, 575}, - dictWord{15, 0, 109}, - dictWord{146, 0, 100}, - dictWord{7, 0, 1402}, - dictWord{7, 0, 1414}, - dictWord{12, 0, 456}, - dictWord{5, 10, 378}, - dictWord{8, 10, 465}, - dictWord{9, 10, 286}, - dictWord{10, 10, 185}, - dictWord{10, 10, 562}, - dictWord{10, 10, 635}, - dictWord{11, 10, 31}, - dictWord{11, 10, 393}, - dictWord{13, 10, 312}, - dictWord{18, 10, 65}, - dictWord{18, 10, 96}, - dictWord{147, 10, 89}, - dictWord{4, 0, 986}, - dictWord{6, 0, 1958}, - dictWord{6, 0, 2032}, - dictWord{8, 0, 934}, - dictWord{138, 0, 985}, - dictWord{7, 10, 1880}, - dictWord{9, 10, 680}, - dictWord{139, 10, 798}, - dictWord{134, 10, 1770}, - dictWord{145, 11, 49}, - dictWord{132, 11, 614}, - dictWord{132, 10, 648}, - dictWord{5, 10, 945}, - dictWord{ - 6, - 10, - 1656, - }, - dictWord{6, 10, 1787}, - dictWord{7, 10, 167}, - dictWord{8, 10, 824}, - dictWord{9, 10, 391}, - dictWord{10, 10, 375}, - dictWord{139, 10, 185}, - dictWord{138, 11, 661}, - dictWord{7, 0, 1273}, - dictWord{135, 11, 1945}, - dictWord{7, 0, 706}, - dictWord{7, 0, 1058}, - dictWord{138, 0, 538}, - dictWord{7, 10, 1645}, - dictWord{8, 10, 352}, - dictWord{137, 10, 249}, - dictWord{132, 10, 152}, - dictWord{11, 0, 92}, - dictWord{11, 0, 196}, - dictWord{11, 0, 409}, - dictWord{11, 0, 450}, - dictWord{11, 0, 666}, - dictWord{11, 0, 777}, - dictWord{12, 0, 262}, - dictWord{13, 0, 385}, - dictWord{13, 0, 393}, - dictWord{15, 0, 115}, - dictWord{16, 0, 45}, - dictWord{145, 0, 82}, - dictWord{133, 10, 1006}, - dictWord{6, 0, 40}, - dictWord{135, 0, 1781}, - dictWord{9, 11, 614}, - dictWord{139, 11, 327}, - dictWord{5, 10, 420}, - dictWord{135, 10, 1449}, - dictWord{135, 0, 431}, - dictWord{10, 0, 97}, - dictWord{135, 10, 832}, - dictWord{6, 0, 423}, - dictWord{7, 0, 665}, - dictWord{ - 135, - 0, - 1210, - }, - dictWord{7, 0, 237}, - dictWord{8, 0, 664}, - dictWord{9, 0, 42}, - dictWord{9, 0, 266}, - dictWord{9, 0, 380}, - dictWord{9, 0, 645}, - dictWord{10, 0, 177}, - dictWord{ - 138, - 0, - 276, - }, - dictWord{7, 0, 264}, - dictWord{133, 10, 351}, - dictWord{8, 0, 213}, - dictWord{5, 10, 40}, - dictWord{7, 10, 598}, - dictWord{7, 10, 1638}, - dictWord{ - 9, - 10, - 166, - }, - dictWord{9, 10, 640}, - dictWord{9, 10, 685}, - dictWord{9, 10, 773}, - dictWord{11, 10, 215}, - dictWord{13, 10, 65}, - dictWord{14, 10, 172}, - dictWord{ - 14, - 10, - 317, - }, - dictWord{145, 10, 6}, - dictWord{5, 11, 84}, - dictWord{134, 11, 163}, - dictWord{8, 10, 60}, - dictWord{9, 10, 343}, - dictWord{139, 10, 769}, - dictWord{ - 137, - 0, - 455, - }, - dictWord{133, 11, 410}, - dictWord{8, 0, 906}, - dictWord{12, 0, 700}, - dictWord{12, 0, 706}, - dictWord{140, 0, 729}, - dictWord{21, 11, 33}, - dictWord{ - 150, - 11, - 40, - }, - dictWord{7, 10, 1951}, - dictWord{8, 10, 765}, - dictWord{8, 10, 772}, - dictWord{140, 10, 671}, - dictWord{7, 10, 108}, - dictWord{8, 10, 219}, - dictWord{ - 8, - 10, - 388, - }, - dictWord{9, 10, 639}, - dictWord{9, 10, 775}, - dictWord{11, 10, 275}, - dictWord{140, 10, 464}, - dictWord{5, 11, 322}, - dictWord{7, 11, 1941}, - dictWord{ - 8, - 11, - 186, - }, - dictWord{9, 11, 262}, - dictWord{10, 11, 187}, - dictWord{14, 11, 208}, - dictWord{146, 11, 130}, - dictWord{139, 0, 624}, - dictWord{8, 0, 574}, - dictWord{ - 5, - 11, - 227, - }, - dictWord{140, 11, 29}, - dictWord{7, 11, 1546}, - dictWord{11, 11, 299}, - dictWord{142, 11, 407}, - dictWord{5, 10, 15}, - dictWord{6, 10, 56}, - dictWord{ - 7, - 10, - 1758, - }, - dictWord{8, 10, 500}, - dictWord{9, 10, 730}, - dictWord{11, 10, 331}, - dictWord{13, 10, 150}, - dictWord{142, 10, 282}, - dictWord{7, 11, 1395}, - dictWord{8, 11, 486}, - dictWord{9, 11, 236}, - dictWord{9, 11, 878}, - dictWord{10, 11, 218}, - dictWord{11, 11, 95}, - dictWord{19, 11, 17}, - dictWord{147, 11, 31}, - dictWord{135, 11, 2043}, - dictWord{4, 0, 354}, - dictWord{146, 11, 4}, - dictWord{140, 11, 80}, - dictWord{135, 0, 1558}, - dictWord{134, 10, 1886}, - dictWord{ - 5, - 10, - 205, - }, - dictWord{6, 10, 438}, - dictWord{137, 10, 711}, - dictWord{133, 11, 522}, - dictWord{133, 10, 534}, - dictWord{7, 0, 235}, - dictWord{7, 0, 1475}, - dictWord{ - 15, - 0, - 68, - }, - dictWord{146, 0, 120}, - dictWord{137, 10, 691}, - dictWord{4, 0, 942}, - dictWord{6, 0, 1813}, - dictWord{8, 0, 917}, - dictWord{10, 0, 884}, - dictWord{ - 12, - 0, - 696, - }, - dictWord{12, 0, 717}, - dictWord{12, 0, 723}, - dictWord{12, 0, 738}, - dictWord{12, 0, 749}, - dictWord{12, 0, 780}, - dictWord{16, 0, 97}, - dictWord{146, 0, 169}, - dictWord{6, 10, 443}, - dictWord{8, 11, 562}, - dictWord{9, 10, 237}, - dictWord{9, 10, 571}, - dictWord{9, 10, 695}, - dictWord{10, 10, 139}, - dictWord{11, 10, 715}, - dictWord{12, 10, 417}, - dictWord{141, 10, 421}, - dictWord{135, 0, 957}, - dictWord{133, 0, 830}, - dictWord{134, 11, 1771}, - dictWord{146, 0, 23}, - dictWord{ - 5, - 0, - 496, - }, - dictWord{6, 0, 694}, - dictWord{7, 0, 203}, - dictWord{7, 11, 1190}, - dictWord{137, 11, 620}, - dictWord{137, 11, 132}, - dictWord{6, 0, 547}, - dictWord{ - 134, - 0, - 1549, - }, - dictWord{8, 11, 258}, - dictWord{9, 11, 208}, - dictWord{137, 11, 359}, - dictWord{4, 0, 864}, - dictWord{5, 0, 88}, - dictWord{137, 0, 239}, - dictWord{ - 135, - 11, - 493, - }, - dictWord{4, 11, 317}, - dictWord{135, 11, 1279}, - dictWord{132, 11, 477}, - dictWord{4, 10, 578}, - dictWord{5, 11, 63}, - dictWord{133, 11, 509}, - dictWord{ - 7, - 0, - 650, - }, - dictWord{135, 0, 1310}, - dictWord{7, 0, 1076}, - dictWord{9, 0, 80}, - dictWord{11, 0, 78}, - dictWord{11, 0, 421}, - dictWord{11, 0, 534}, - dictWord{ - 140, - 0, - 545, - }, - dictWord{132, 11, 288}, - dictWord{12, 0, 553}, - dictWord{14, 0, 118}, - dictWord{133, 10, 923}, - dictWord{7, 0, 274}, - dictWord{11, 0, 479}, - dictWord{ - 139, - 0, - 507, - }, - dictWord{8, 11, 89}, - dictWord{8, 11, 620}, - dictWord{9, 11, 49}, - dictWord{10, 11, 774}, - dictWord{11, 11, 628}, - dictWord{12, 11, 322}, - dictWord{ - 143, - 11, - 124, - }, - dictWord{4, 0, 497}, - dictWord{135, 0, 1584}, - dictWord{7, 0, 261}, - dictWord{7, 0, 1115}, - dictWord{7, 0, 1354}, - dictWord{7, 0, 1404}, - dictWord{ - 7, - 0, - 1588, - }, - dictWord{7, 0, 1705}, - dictWord{7, 0, 1902}, - dictWord{9, 0, 465}, - dictWord{10, 0, 248}, - dictWord{10, 0, 349}, - dictWord{10, 0, 647}, - dictWord{11, 0, 527}, - dictWord{11, 0, 660}, - dictWord{11, 0, 669}, - dictWord{12, 0, 529}, - dictWord{13, 0, 305}, - dictWord{132, 10, 924}, - dictWord{133, 10, 665}, - dictWord{ - 136, - 0, - 13, - }, - dictWord{6, 0, 791}, - dictWord{138, 11, 120}, - dictWord{7, 0, 642}, - dictWord{8, 0, 250}, - dictWord{11, 0, 123}, - dictWord{11, 0, 137}, - dictWord{13, 0, 48}, - dictWord{142, 0, 95}, - dictWord{4, 10, 265}, - dictWord{7, 10, 807}, - dictWord{135, 10, 950}, - dictWord{5, 10, 93}, - dictWord{140, 10, 267}, - dictWord{135, 0, 1429}, - dictWord{4, 0, 949}, - dictWord{10, 0, 885}, - dictWord{10, 0, 891}, - dictWord{10, 0, 900}, - dictWord{10, 0, 939}, - dictWord{12, 0, 760}, - dictWord{142, 0, 449}, - dictWord{139, 11, 366}, - dictWord{132, 0, 818}, - dictWord{134, 11, 85}, - dictWord{135, 10, 994}, - dictWord{7, 0, 330}, - dictWord{5, 10, 233}, - dictWord{5, 10, 320}, - dictWord{6, 10, 140}, - dictWord{136, 10, 295}, - dictWord{4, 0, 1004}, - dictWord{8, 0, 982}, - dictWord{136, 0, 993}, - dictWord{133, 10, 978}, - dictWord{4, 10, 905}, - dictWord{6, 10, 1701}, - dictWord{137, 10, 843}, - dictWord{10, 0, 545}, - dictWord{140, 0, 301}, - dictWord{6, 0, 947}, - dictWord{134, 0, 1062}, - dictWord{ - 134, - 0, - 1188, - }, - dictWord{4, 0, 904}, - dictWord{5, 0, 794}, - dictWord{152, 10, 6}, - dictWord{134, 0, 1372}, - dictWord{135, 11, 608}, - dictWord{5, 11, 279}, - dictWord{ - 6, - 11, - 235, - }, - dictWord{7, 11, 468}, - dictWord{8, 11, 446}, - dictWord{9, 11, 637}, - dictWord{10, 11, 717}, - dictWord{11, 11, 738}, - dictWord{140, 11, 514}, - dictWord{ - 132, - 10, - 509, - }, - dictWord{5, 11, 17}, - dictWord{6, 11, 371}, - dictWord{137, 11, 528}, - dictWord{132, 0, 693}, - dictWord{4, 11, 115}, - dictWord{5, 11, 669}, - dictWord{ - 6, - 11, - 407, - }, - dictWord{8, 11, 311}, - dictWord{11, 11, 10}, - dictWord{141, 11, 5}, - dictWord{11, 0, 377}, - dictWord{7, 10, 273}, - dictWord{137, 11, 381}, - dictWord{ - 135, - 0, - 695, - }, - dictWord{7, 0, 386}, - dictWord{138, 0, 713}, - dictWord{135, 10, 1041}, - dictWord{134, 0, 1291}, - dictWord{6, 0, 7}, - dictWord{6, 0, 35}, - dictWord{ - 7, - 0, - 147, - }, - dictWord{7, 0, 1069}, - dictWord{7, 0, 1568}, - dictWord{7, 0, 1575}, - dictWord{7, 0, 1917}, - dictWord{8, 0, 43}, - dictWord{8, 0, 208}, - dictWord{9, 0, 128}, - dictWord{ - 9, - 0, - 866, - }, - dictWord{10, 0, 20}, - dictWord{11, 0, 981}, - dictWord{147, 0, 33}, - dictWord{7, 0, 893}, - dictWord{141, 0, 424}, - dictWord{139, 10, 234}, - dictWord{ - 150, - 11, - 56, - }, - dictWord{5, 11, 779}, - dictWord{5, 11, 807}, - dictWord{6, 11, 1655}, - dictWord{134, 11, 1676}, - dictWord{5, 10, 802}, - dictWord{7, 10, 2021}, - dictWord{136, 10, 805}, - dictWord{4, 11, 196}, - dictWord{5, 10, 167}, - dictWord{5, 11, 558}, - dictWord{5, 10, 899}, - dictWord{5, 11, 949}, - dictWord{6, 10, 410}, - dictWord{137, 10, 777}, - dictWord{137, 10, 789}, - dictWord{134, 10, 1705}, - dictWord{8, 0, 904}, - dictWord{140, 0, 787}, - dictWord{6, 0, 322}, - dictWord{9, 0, 552}, - dictWord{11, 0, 274}, - dictWord{13, 0, 209}, - dictWord{13, 0, 499}, - dictWord{14, 0, 85}, - dictWord{15, 0, 126}, - dictWord{145, 0, 70}, - dictWord{135, 10, 10}, - dictWord{ - 5, - 10, - 11, - }, - dictWord{6, 10, 117}, - dictWord{6, 10, 485}, - dictWord{7, 10, 1133}, - dictWord{9, 10, 582}, - dictWord{9, 10, 594}, - dictWord{11, 10, 21}, - dictWord{ - 11, - 10, - 818, - }, - dictWord{12, 10, 535}, - dictWord{141, 10, 86}, - dictWord{4, 10, 264}, - dictWord{7, 10, 1067}, - dictWord{8, 10, 204}, - dictWord{8, 10, 385}, - dictWord{139, 10, 953}, - dictWord{132, 11, 752}, - dictWord{138, 10, 56}, - dictWord{133, 10, 470}, - dictWord{6, 0, 1808}, - dictWord{8, 0, 83}, - dictWord{8, 0, 742}, - dictWord{8, 0, 817}, - dictWord{9, 0, 28}, - dictWord{9, 0, 29}, - dictWord{9, 0, 885}, - dictWord{10, 0, 387}, - dictWord{11, 0, 633}, - dictWord{11, 0, 740}, - dictWord{13, 0, 235}, - dictWord{13, 0, 254}, - dictWord{15, 0, 143}, - dictWord{143, 0, 146}, - dictWord{140, 0, 49}, - dictWord{134, 0, 1832}, - dictWord{4, 11, 227}, - dictWord{5, 11, 159}, - dictWord{5, 11, 409}, - dictWord{7, 11, 80}, - dictWord{10, 11, 294}, - dictWord{10, 11, 479}, - dictWord{12, 11, 418}, - dictWord{14, 11, 50}, - dictWord{14, 11, 249}, - dictWord{142, 11, 295}, - dictWord{7, 11, 1470}, - dictWord{8, 11, 66}, - dictWord{8, 11, 137}, - dictWord{8, 11, 761}, - dictWord{9, 11, 638}, - dictWord{11, 11, 80}, - dictWord{11, 11, 212}, - dictWord{11, 11, 368}, - dictWord{11, 11, 418}, - dictWord{12, 11, 8}, - dictWord{13, 11, 15}, - dictWord{16, 11, 61}, - dictWord{17, 11, 59}, - dictWord{19, 11, 28}, - dictWord{148, 11, 84}, - dictWord{139, 10, 1015}, - dictWord{138, 11, 468}, - dictWord{135, 0, 421}, - dictWord{6, 0, 415}, - dictWord{ - 7, - 0, - 1049, - }, - dictWord{137, 0, 442}, - dictWord{6, 11, 38}, - dictWord{7, 11, 1220}, - dictWord{8, 11, 185}, - dictWord{8, 11, 256}, - dictWord{9, 11, 22}, - dictWord{ - 9, - 11, - 331, - }, - dictWord{10, 11, 738}, - dictWord{11, 11, 205}, - dictWord{11, 11, 540}, - dictWord{11, 11, 746}, - dictWord{13, 11, 399}, - dictWord{13, 11, 465}, - dictWord{ - 14, - 11, - 88, - }, - dictWord{142, 11, 194}, - dictWord{139, 0, 289}, - dictWord{133, 10, 715}, - dictWord{4, 0, 110}, - dictWord{10, 0, 415}, - dictWord{10, 0, 597}, - dictWord{142, 0, 206}, - dictWord{4, 11, 159}, - dictWord{6, 11, 115}, - dictWord{7, 11, 252}, - dictWord{7, 11, 257}, - dictWord{7, 11, 1928}, - dictWord{8, 11, 69}, - dictWord{ - 9, - 11, - 384, - }, - dictWord{10, 11, 91}, - dictWord{10, 11, 615}, - dictWord{12, 11, 375}, - dictWord{14, 11, 235}, - dictWord{18, 11, 117}, - dictWord{147, 11, 123}, - dictWord{5, 11, 911}, - dictWord{136, 11, 278}, - dictWord{7, 0, 205}, - dictWord{7, 0, 2000}, - dictWord{8, 10, 794}, - dictWord{9, 10, 400}, - dictWord{10, 10, 298}, - dictWord{142, 10, 228}, - dictWord{135, 11, 1774}, - dictWord{4, 11, 151}, - dictWord{7, 11, 1567}, - dictWord{8, 11, 351}, - dictWord{137, 11, 322}, - dictWord{ - 136, - 10, - 724, - }, - dictWord{133, 11, 990}, - dictWord{7, 0, 1539}, - dictWord{11, 0, 512}, - dictWord{13, 0, 205}, - dictWord{19, 0, 30}, - dictWord{22, 0, 36}, - dictWord{23, 0, 19}, - dictWord{135, 11, 1539}, - dictWord{5, 11, 194}, - dictWord{7, 11, 1662}, - dictWord{9, 11, 90}, - dictWord{140, 11, 180}, - dictWord{6, 10, 190}, - dictWord{ - 7, - 10, - 768, - }, - dictWord{135, 10, 1170}, - dictWord{134, 0, 1340}, - dictWord{4, 0, 283}, - dictWord{135, 0, 1194}, - dictWord{133, 11, 425}, - dictWord{133, 11, 971}, - dictWord{12, 0, 549}, - dictWord{14, 10, 67}, - dictWord{147, 10, 60}, - dictWord{135, 10, 1023}, - dictWord{134, 0, 1720}, - dictWord{138, 11, 587}, - dictWord{ - 5, - 11, - 72, - }, - dictWord{6, 11, 264}, - dictWord{7, 11, 21}, - dictWord{7, 11, 46}, - dictWord{7, 11, 2013}, - dictWord{8, 11, 215}, - dictWord{8, 11, 513}, - dictWord{10, 11, 266}, - dictWord{139, 11, 22}, - dictWord{5, 0, 319}, - dictWord{135, 0, 534}, - dictWord{6, 10, 137}, - dictWord{9, 10, 75}, - dictWord{9, 10, 253}, - dictWord{10, 10, 194}, - dictWord{138, 10, 444}, - dictWord{7, 0, 1180}, - dictWord{20, 0, 112}, - dictWord{6, 11, 239}, - dictWord{7, 11, 118}, - dictWord{10, 11, 95}, - dictWord{11, 11, 603}, - dictWord{13, 11, 443}, - dictWord{14, 11, 160}, - dictWord{143, 11, 4}, - dictWord{134, 11, 431}, - dictWord{5, 11, 874}, - dictWord{6, 11, 1677}, - dictWord{ - 11, - 10, - 643, - }, - dictWord{12, 10, 115}, - dictWord{143, 11, 0}, - dictWord{134, 0, 967}, - dictWord{6, 11, 65}, - dictWord{7, 11, 939}, - dictWord{7, 11, 1172}, - dictWord{ - 7, - 11, - 1671, - }, - dictWord{9, 11, 540}, - dictWord{10, 11, 696}, - dictWord{11, 11, 265}, - dictWord{11, 11, 732}, - dictWord{11, 11, 928}, - dictWord{11, 11, 937}, - dictWord{ - 12, - 11, - 399, - }, - dictWord{13, 11, 438}, - dictWord{149, 11, 19}, - dictWord{137, 11, 200}, - dictWord{135, 0, 1940}, - dictWord{5, 10, 760}, - dictWord{7, 10, 542}, - dictWord{8, 10, 135}, - dictWord{136, 10, 496}, - dictWord{140, 11, 44}, - dictWord{7, 11, 1655}, - dictWord{136, 11, 305}, - dictWord{7, 10, 319}, - dictWord{ - 7, - 10, - 355, - }, - dictWord{7, 10, 763}, - dictWord{10, 10, 389}, - dictWord{145, 10, 43}, - dictWord{136, 0, 735}, - dictWord{138, 10, 786}, - dictWord{137, 11, 19}, - dictWord{132, 11, 696}, - dictWord{5, 0, 132}, - dictWord{9, 0, 486}, - dictWord{9, 0, 715}, - dictWord{10, 0, 458}, - dictWord{11, 0, 373}, - dictWord{11, 0, 668}, - dictWord{ - 11, - 0, - 795, - }, - dictWord{11, 0, 897}, - dictWord{12, 0, 272}, - dictWord{12, 0, 424}, - dictWord{12, 0, 539}, - dictWord{12, 0, 558}, - dictWord{14, 0, 245}, - dictWord{ - 14, - 0, - 263, - }, - dictWord{14, 0, 264}, - dictWord{14, 0, 393}, - dictWord{142, 0, 403}, - dictWord{10, 0, 38}, - dictWord{139, 0, 784}, - dictWord{132, 0, 838}, - dictWord{ - 4, - 11, - 302, - }, - dictWord{135, 11, 1766}, - dictWord{133, 0, 379}, - dictWord{5, 0, 8}, - dictWord{6, 0, 89}, - dictWord{6, 0, 400}, - dictWord{7, 0, 1569}, - dictWord{7, 0, 1623}, - dictWord{7, 0, 1850}, - dictWord{8, 0, 218}, - dictWord{8, 0, 422}, - dictWord{9, 0, 570}, - dictWord{10, 0, 626}, - dictWord{4, 11, 726}, - dictWord{133, 11, 630}, - dictWord{ - 4, - 0, - 1017, - }, - dictWord{138, 0, 660}, - dictWord{6, 0, 387}, - dictWord{7, 0, 882}, - dictWord{141, 0, 111}, - dictWord{6, 0, 224}, - dictWord{7, 0, 877}, - dictWord{ - 137, - 0, - 647, - }, - dictWord{4, 10, 58}, - dictWord{5, 10, 286}, - dictWord{6, 10, 319}, - dictWord{7, 10, 402}, - dictWord{7, 10, 1254}, - dictWord{7, 10, 1903}, - dictWord{ - 8, - 10, - 356, - }, - dictWord{140, 10, 408}, - dictWord{135, 0, 790}, - dictWord{9, 0, 510}, - dictWord{10, 0, 53}, - dictWord{4, 10, 389}, - dictWord{9, 10, 181}, - dictWord{ - 10, - 10, - 29, - }, - dictWord{10, 10, 816}, - dictWord{11, 10, 311}, - dictWord{11, 10, 561}, - dictWord{12, 10, 67}, - dictWord{141, 10, 181}, - dictWord{142, 0, 458}, - dictWord{ - 6, - 11, - 118, - }, - dictWord{7, 11, 215}, - dictWord{7, 11, 1521}, - dictWord{140, 11, 11}, - dictWord{134, 0, 954}, - dictWord{135, 0, 394}, - dictWord{134, 0, 1367}, - dictWord{5, 11, 225}, - dictWord{133, 10, 373}, - dictWord{132, 0, 882}, - dictWord{7, 0, 1409}, - dictWord{135, 10, 1972}, - dictWord{135, 10, 1793}, - dictWord{ - 4, - 11, - 370, - }, - dictWord{5, 11, 756}, - dictWord{135, 11, 1326}, - dictWord{150, 11, 13}, - dictWord{7, 11, 354}, - dictWord{10, 11, 410}, - dictWord{139, 11, 815}, - dictWord{6, 11, 1662}, - dictWord{7, 11, 48}, - dictWord{8, 11, 771}, - dictWord{10, 11, 116}, - dictWord{13, 11, 104}, - dictWord{14, 11, 105}, - dictWord{14, 11, 184}, - dictWord{15, 11, 168}, - dictWord{19, 11, 92}, - dictWord{148, 11, 68}, - dictWord{7, 0, 124}, - dictWord{136, 0, 38}, - dictWord{5, 0, 261}, - dictWord{7, 0, 78}, - dictWord{ - 7, - 0, - 199, - }, - dictWord{8, 0, 815}, - dictWord{9, 0, 126}, - dictWord{10, 0, 342}, - dictWord{140, 0, 647}, - dictWord{4, 0, 628}, - dictWord{140, 0, 724}, - dictWord{7, 0, 266}, - dictWord{8, 0, 804}, - dictWord{7, 10, 1651}, - dictWord{145, 10, 89}, - dictWord{135, 0, 208}, - dictWord{134, 0, 1178}, - dictWord{6, 0, 79}, - dictWord{135, 0, 1519}, - dictWord{132, 10, 672}, - dictWord{133, 10, 737}, - dictWord{136, 0, 741}, - dictWord{132, 11, 120}, - dictWord{4, 0, 710}, - dictWord{6, 0, 376}, - dictWord{ - 134, - 0, - 606, - }, - dictWord{134, 0, 1347}, - dictWord{134, 0, 1494}, - dictWord{6, 0, 850}, - dictWord{6, 0, 1553}, - dictWord{137, 0, 821}, - dictWord{5, 10, 145}, - dictWord{ - 134, - 11, - 593, - }, - dictWord{7, 0, 1311}, - dictWord{140, 0, 135}, - dictWord{4, 0, 467}, - dictWord{5, 0, 405}, - dictWord{134, 0, 544}, - dictWord{5, 11, 820}, - dictWord{ - 135, - 11, - 931, - }, - dictWord{6, 0, 100}, - dictWord{7, 0, 244}, - dictWord{7, 0, 632}, - dictWord{7, 0, 1609}, - dictWord{8, 0, 178}, - dictWord{8, 0, 638}, - dictWord{141, 0, 58}, - dictWord{4, 10, 387}, - dictWord{135, 10, 1288}, - dictWord{6, 11, 151}, - dictWord{6, 11, 1675}, - dictWord{7, 11, 383}, - dictWord{151, 11, 10}, - dictWord{ - 132, - 0, - 481, - }, - dictWord{135, 10, 550}, - dictWord{134, 0, 1378}, - dictWord{6, 11, 1624}, - dictWord{11, 11, 11}, - dictWord{12, 11, 422}, - dictWord{13, 11, 262}, - dictWord{142, 11, 360}, - dictWord{133, 0, 791}, - dictWord{4, 11, 43}, - dictWord{5, 11, 344}, - dictWord{133, 11, 357}, - dictWord{7, 0, 1227}, - dictWord{140, 0, 978}, - dictWord{7, 0, 686}, - dictWord{8, 0, 33}, - dictWord{8, 0, 238}, - dictWord{10, 0, 616}, - dictWord{11, 0, 467}, - dictWord{11, 0, 881}, - dictWord{13, 0, 217}, - dictWord{ - 13, - 0, - 253, - }, - dictWord{142, 0, 268}, - dictWord{137, 0, 857}, - dictWord{8, 0, 467}, - dictWord{8, 0, 1006}, - dictWord{7, 11, 148}, - dictWord{8, 11, 284}, - dictWord{ - 141, - 11, - 63, - }, - dictWord{4, 10, 576}, - dictWord{135, 10, 1263}, - dictWord{133, 11, 888}, - dictWord{5, 10, 919}, - dictWord{134, 10, 1673}, - dictWord{20, 10, 37}, - dictWord{148, 11, 37}, - dictWord{132, 0, 447}, - dictWord{132, 11, 711}, - dictWord{4, 0, 128}, - dictWord{5, 0, 415}, - dictWord{6, 0, 462}, - dictWord{7, 0, 294}, - dictWord{ - 7, - 0, - 578, - }, - dictWord{10, 0, 710}, - dictWord{139, 0, 86}, - dictWord{4, 10, 82}, - dictWord{5, 10, 333}, - dictWord{5, 10, 904}, - dictWord{6, 10, 207}, - dictWord{7, 10, 325}, - dictWord{7, 10, 1726}, - dictWord{8, 10, 101}, - dictWord{10, 10, 778}, - dictWord{139, 10, 220}, - dictWord{136, 0, 587}, - dictWord{137, 11, 440}, - dictWord{ - 133, - 10, - 903, - }, - dictWord{6, 0, 427}, - dictWord{7, 0, 1018}, - dictWord{138, 0, 692}, - dictWord{4, 0, 195}, - dictWord{135, 0, 802}, - dictWord{140, 10, 147}, - dictWord{ - 134, - 0, - 1546, - }, - dictWord{134, 0, 684}, - dictWord{132, 10, 705}, - dictWord{136, 0, 345}, - dictWord{11, 11, 678}, - dictWord{140, 11, 307}, - dictWord{ - 133, - 0, - 365, - }, - dictWord{134, 0, 1683}, - dictWord{4, 11, 65}, - dictWord{5, 11, 479}, - dictWord{5, 11, 1004}, - dictWord{7, 11, 1913}, - dictWord{8, 11, 317}, - dictWord{ - 9, - 11, - 302, - }, - dictWord{10, 11, 612}, - dictWord{141, 11, 22}, - dictWord{138, 0, 472}, - dictWord{4, 11, 261}, - dictWord{135, 11, 510}, - dictWord{134, 10, 90}, - dictWord{142, 0, 433}, - dictWord{151, 0, 28}, - dictWord{4, 11, 291}, - dictWord{7, 11, 101}, - dictWord{9, 11, 515}, - dictWord{12, 11, 152}, - dictWord{12, 11, 443}, - dictWord{13, 11, 392}, - dictWord{142, 11, 357}, - dictWord{140, 0, 997}, - dictWord{5, 0, 3}, - dictWord{8, 0, 578}, - dictWord{9, 0, 118}, - dictWord{10, 0, 705}, - dictWord{ - 141, - 0, - 279, - }, - dictWord{135, 11, 1266}, - dictWord{7, 10, 813}, - dictWord{12, 10, 497}, - dictWord{141, 10, 56}, - dictWord{133, 0, 229}, - dictWord{6, 10, 125}, - dictWord{135, 10, 1277}, - dictWord{8, 0, 102}, - dictWord{10, 0, 578}, - dictWord{10, 0, 672}, - dictWord{12, 0, 496}, - dictWord{13, 0, 408}, - dictWord{14, 0, 121}, - dictWord{17, 0, 106}, - dictWord{151, 10, 12}, - dictWord{6, 0, 866}, - dictWord{134, 0, 1080}, - dictWord{136, 0, 1022}, - dictWord{4, 11, 130}, - dictWord{135, 11, 843}, - dictWord{5, 11, 42}, - dictWord{5, 11, 879}, - dictWord{7, 11, 245}, - dictWord{7, 11, 324}, - dictWord{7, 11, 1532}, - dictWord{11, 11, 463}, - dictWord{11, 11, 472}, - dictWord{13, 11, 363}, - dictWord{144, 11, 52}, - dictWord{150, 0, 55}, - dictWord{8, 0, 115}, - dictWord{8, 0, 350}, - dictWord{9, 0, 489}, - dictWord{10, 0, 128}, - dictWord{ - 11, - 0, - 306, - }, - dictWord{12, 0, 373}, - dictWord{14, 0, 30}, - dictWord{17, 0, 79}, - dictWord{19, 0, 80}, - dictWord{4, 11, 134}, - dictWord{133, 11, 372}, - dictWord{ - 134, - 0, - 657, - }, - dictWord{134, 0, 933}, - dictWord{135, 11, 1147}, - dictWord{4, 0, 230}, - dictWord{133, 0, 702}, - dictWord{134, 0, 1728}, - dictWord{4, 0, 484}, - dictWord{ - 18, - 0, - 26, - }, - dictWord{19, 0, 42}, - dictWord{20, 0, 43}, - dictWord{21, 0, 0}, - dictWord{23, 0, 27}, - dictWord{152, 0, 14}, - dictWord{7, 0, 185}, - dictWord{135, 0, 703}, - dictWord{ - 6, - 0, - 417, - }, - dictWord{10, 0, 618}, - dictWord{7, 10, 1106}, - dictWord{9, 10, 770}, - dictWord{11, 10, 112}, - dictWord{140, 10, 413}, - dictWord{134, 0, 803}, - dictWord{132, 11, 644}, - dictWord{134, 0, 1262}, - dictWord{7, 11, 540}, - dictWord{12, 10, 271}, - dictWord{145, 10, 109}, - dictWord{135, 11, 123}, - dictWord{ - 132, - 0, - 633, - }, - dictWord{134, 11, 623}, - dictWord{4, 11, 908}, - dictWord{5, 11, 359}, - dictWord{5, 11, 508}, - dictWord{6, 11, 1723}, - dictWord{7, 11, 343}, - dictWord{ - 7, - 11, - 1996, - }, - dictWord{135, 11, 2026}, - dictWord{135, 0, 479}, - dictWord{10, 0, 262}, - dictWord{7, 10, 304}, - dictWord{9, 10, 646}, - dictWord{9, 10, 862}, - dictWord{ - 11, - 10, - 696, - }, - dictWord{12, 10, 208}, - dictWord{15, 10, 79}, - dictWord{147, 10, 108}, - dictWord{4, 11, 341}, - dictWord{135, 11, 480}, - dictWord{134, 0, 830}, - dictWord{5, 0, 70}, - dictWord{5, 0, 622}, - dictWord{6, 0, 334}, - dictWord{7, 0, 1032}, - dictWord{9, 0, 171}, - dictWord{11, 0, 26}, - dictWord{11, 0, 213}, - dictWord{ - 11, - 0, - 637, - }, - dictWord{11, 0, 707}, - dictWord{12, 0, 202}, - dictWord{12, 0, 380}, - dictWord{13, 0, 226}, - dictWord{13, 0, 355}, - dictWord{14, 0, 222}, - dictWord{145, 0, 42}, - dictWord{135, 10, 981}, - dictWord{143, 0, 217}, - dictWord{137, 11, 114}, - dictWord{4, 0, 23}, - dictWord{4, 0, 141}, - dictWord{5, 0, 313}, - dictWord{5, 0, 1014}, - dictWord{6, 0, 50}, - dictWord{6, 0, 51}, - dictWord{7, 0, 142}, - dictWord{7, 0, 384}, - dictWord{7, 0, 559}, - dictWord{8, 0, 640}, - dictWord{9, 0, 460}, - dictWord{9, 0, 783}, - dictWord{11, 0, 741}, - dictWord{12, 0, 183}, - dictWord{141, 0, 488}, - dictWord{141, 0, 360}, - dictWord{7, 0, 1586}, - dictWord{7, 11, 1995}, - dictWord{8, 11, 299}, - dictWord{11, 11, 890}, - dictWord{140, 11, 674}, - dictWord{132, 10, 434}, - dictWord{7, 0, 652}, - dictWord{134, 10, 550}, - dictWord{7, 0, 766}, - dictWord{5, 10, 553}, - dictWord{138, 10, 824}, - dictWord{7, 0, 737}, - dictWord{8, 0, 298}, - dictWord{136, 10, 452}, - dictWord{4, 11, 238}, - dictWord{5, 11, 503}, - dictWord{6, 11, 179}, - dictWord{7, 11, 2003}, - dictWord{8, 11, 381}, - dictWord{8, 11, 473}, - dictWord{9, 11, 149}, - dictWord{10, 11, 183}, - dictWord{15, 11, 45}, - dictWord{143, 11, 86}, - dictWord{133, 10, 292}, - dictWord{5, 0, 222}, - dictWord{9, 0, 655}, - dictWord{138, 0, 534}, - dictWord{138, 10, 135}, - dictWord{4, 11, 121}, - dictWord{5, 11, 156}, - dictWord{5, 11, 349}, - dictWord{9, 11, 136}, - dictWord{10, 11, 605}, - dictWord{14, 11, 342}, - dictWord{147, 11, 107}, - dictWord{137, 0, 906}, - dictWord{6, 0, 1013}, - dictWord{134, 0, 1250}, - dictWord{6, 0, 1956}, - dictWord{6, 0, 2009}, - dictWord{8, 0, 991}, - dictWord{144, 0, 120}, - dictWord{135, 11, 1192}, - dictWord{ - 138, - 0, - 503, - }, - dictWord{5, 0, 154}, - dictWord{7, 0, 1491}, - dictWord{10, 0, 379}, - dictWord{138, 0, 485}, - dictWord{6, 0, 1867}, - dictWord{6, 0, 1914}, - dictWord{6, 0, 1925}, - dictWord{9, 0, 917}, - dictWord{9, 0, 925}, - dictWord{9, 0, 932}, - dictWord{9, 0, 951}, - dictWord{9, 0, 1007}, - dictWord{9, 0, 1013}, - dictWord{12, 0, 806}, - dictWord{ - 12, - 0, - 810, - }, - dictWord{12, 0, 814}, - dictWord{12, 0, 816}, - dictWord{12, 0, 824}, - dictWord{12, 0, 832}, - dictWord{12, 0, 837}, - dictWord{12, 0, 863}, - dictWord{ - 12, - 0, - 868, - }, - dictWord{12, 0, 870}, - dictWord{12, 0, 889}, - dictWord{12, 0, 892}, - dictWord{12, 0, 900}, - dictWord{12, 0, 902}, - dictWord{12, 0, 908}, - dictWord{12, 0, 933}, - dictWord{12, 0, 942}, - dictWord{12, 0, 949}, - dictWord{12, 0, 954}, - dictWord{15, 0, 175}, - dictWord{15, 0, 203}, - dictWord{15, 0, 213}, - dictWord{15, 0, 218}, - dictWord{15, 0, 225}, - dictWord{15, 0, 231}, - dictWord{15, 0, 239}, - dictWord{15, 0, 248}, - dictWord{15, 0, 252}, - dictWord{18, 0, 190}, - dictWord{18, 0, 204}, - dictWord{ - 18, - 0, - 215, - }, - dictWord{18, 0, 216}, - dictWord{18, 0, 222}, - dictWord{18, 0, 225}, - dictWord{18, 0, 230}, - dictWord{18, 0, 239}, - dictWord{18, 0, 241}, - dictWord{ - 21, - 0, - 42, - }, - dictWord{21, 0, 43}, - dictWord{21, 0, 44}, - dictWord{21, 0, 45}, - dictWord{21, 0, 46}, - dictWord{21, 0, 53}, - dictWord{24, 0, 27}, - dictWord{152, 0, 31}, - dictWord{ - 133, - 0, - 716, - }, - dictWord{135, 0, 844}, - dictWord{4, 0, 91}, - dictWord{5, 0, 388}, - dictWord{5, 0, 845}, - dictWord{6, 0, 206}, - dictWord{6, 0, 252}, - dictWord{6, 0, 365}, - dictWord{ - 7, - 0, - 136, - }, - dictWord{7, 0, 531}, - dictWord{136, 0, 621}, - dictWord{7, 10, 393}, - dictWord{10, 10, 603}, - dictWord{139, 10, 206}, - dictWord{6, 11, 80}, - dictWord{ - 6, - 11, - 1694, - }, - dictWord{7, 11, 173}, - dictWord{7, 11, 1974}, - dictWord{9, 11, 547}, - dictWord{10, 11, 730}, - dictWord{14, 11, 18}, - dictWord{150, 11, 39}, - dictWord{137, 0, 748}, - dictWord{4, 11, 923}, - dictWord{134, 11, 1711}, - dictWord{4, 10, 912}, - dictWord{137, 10, 232}, - dictWord{7, 10, 98}, - dictWord{7, 10, 1973}, - dictWord{136, 10, 716}, - dictWord{14, 0, 103}, - dictWord{133, 10, 733}, - dictWord{132, 11, 595}, - dictWord{12, 0, 158}, - dictWord{18, 0, 8}, - dictWord{19, 0, 62}, - dictWord{20, 0, 6}, - dictWord{22, 0, 4}, - dictWord{23, 0, 2}, - dictWord{23, 0, 9}, - dictWord{5, 11, 240}, - dictWord{6, 11, 459}, - dictWord{7, 11, 12}, - dictWord{7, 11, 114}, - dictWord{7, 11, 502}, - dictWord{7, 11, 1751}, - dictWord{7, 11, 1753}, - dictWord{7, 11, 1805}, - dictWord{8, 11, 658}, - dictWord{9, 11, 1}, - dictWord{11, 11, 959}, - dictWord{13, 11, 446}, - dictWord{142, 11, 211}, - dictWord{135, 0, 576}, - dictWord{5, 0, 771}, - dictWord{5, 0, 863}, - dictWord{5, 0, 898}, - dictWord{6, 0, 648}, - dictWord{ - 6, - 0, - 1632, - }, - dictWord{6, 0, 1644}, - dictWord{134, 0, 1780}, - dictWord{133, 0, 331}, - dictWord{7, 11, 633}, - dictWord{7, 11, 905}, - dictWord{7, 11, 909}, - dictWord{ - 7, - 11, - 1538, - }, - dictWord{9, 11, 767}, - dictWord{140, 11, 636}, - dictWord{140, 0, 632}, - dictWord{5, 0, 107}, - dictWord{7, 0, 201}, - dictWord{136, 0, 518}, - dictWord{ - 6, - 0, - 446, - }, - dictWord{7, 0, 1817}, - dictWord{134, 11, 490}, - dictWord{9, 0, 851}, - dictWord{141, 0, 510}, - dictWord{7, 11, 250}, - dictWord{8, 11, 506}, - dictWord{ - 136, - 11, - 507, - }, - dictWord{4, 0, 504}, - dictWord{137, 10, 72}, - dictWord{132, 11, 158}, - dictWord{4, 11, 140}, - dictWord{7, 11, 362}, - dictWord{8, 11, 209}, - dictWord{ - 9, - 11, - 10, - }, - dictWord{9, 11, 160}, - dictWord{9, 11, 503}, - dictWord{10, 11, 689}, - dictWord{11, 11, 350}, - dictWord{11, 11, 553}, - dictWord{11, 11, 725}, - dictWord{ - 12, - 11, - 252, - }, - dictWord{12, 11, 583}, - dictWord{13, 11, 192}, - dictWord{13, 11, 352}, - dictWord{14, 11, 269}, - dictWord{14, 11, 356}, - dictWord{148, 11, 50}, - dictWord{6, 11, 597}, - dictWord{135, 11, 1318}, - dictWord{135, 10, 1454}, - dictWord{5, 0, 883}, - dictWord{5, 0, 975}, - dictWord{8, 0, 392}, - dictWord{148, 0, 7}, - dictWord{6, 11, 228}, - dictWord{7, 11, 1341}, - dictWord{9, 11, 408}, - dictWord{138, 11, 343}, - dictWord{11, 11, 348}, - dictWord{11, 10, 600}, - dictWord{12, 11, 99}, - dictWord{13, 10, 245}, - dictWord{18, 11, 1}, - dictWord{18, 11, 11}, - dictWord{147, 11, 4}, - dictWord{134, 11, 296}, - dictWord{5, 0, 922}, - dictWord{134, 0, 1707}, - dictWord{132, 11, 557}, - dictWord{4, 11, 548}, - dictWord{7, 10, 164}, - dictWord{7, 10, 1571}, - dictWord{9, 10, 107}, - dictWord{140, 10, 225}, - dictWord{ - 7, - 11, - 197, - }, - dictWord{8, 11, 142}, - dictWord{8, 11, 325}, - dictWord{9, 11, 150}, - dictWord{9, 11, 596}, - dictWord{10, 11, 350}, - dictWord{10, 11, 353}, - dictWord{ - 11, - 11, - 74, - }, - dictWord{11, 11, 315}, - dictWord{14, 11, 423}, - dictWord{143, 11, 141}, - dictWord{5, 0, 993}, - dictWord{7, 0, 515}, - dictWord{137, 0, 91}, - dictWord{4, 0, 131}, - dictWord{8, 0, 200}, - dictWord{5, 10, 484}, - dictWord{5, 10, 510}, - dictWord{6, 10, 434}, - dictWord{7, 10, 1000}, - dictWord{7, 10, 1098}, - dictWord{136, 10, 2}, - dictWord{152, 0, 10}, - dictWord{4, 11, 62}, - dictWord{5, 11, 83}, - dictWord{6, 11, 399}, - dictWord{6, 11, 579}, - dictWord{7, 11, 692}, - dictWord{7, 11, 846}, - dictWord{ - 7, - 11, - 1015, - }, - dictWord{7, 11, 1799}, - dictWord{8, 11, 403}, - dictWord{9, 11, 394}, - dictWord{10, 11, 133}, - dictWord{12, 11, 4}, - dictWord{12, 11, 297}, - dictWord{ - 12, - 11, - 452, - }, - dictWord{16, 11, 81}, - dictWord{18, 11, 19}, - dictWord{18, 11, 25}, - dictWord{21, 11, 14}, - dictWord{22, 11, 12}, - dictWord{151, 11, 18}, - dictWord{ - 140, - 11, - 459, - }, - dictWord{132, 11, 177}, - dictWord{7, 0, 1433}, - dictWord{9, 0, 365}, - dictWord{137, 11, 365}, - dictWord{132, 10, 460}, - dictWord{5, 0, 103}, - dictWord{ - 6, - 0, - 2004, - }, - dictWord{7, 0, 921}, - dictWord{8, 0, 580}, - dictWord{8, 0, 593}, - dictWord{8, 0, 630}, - dictWord{10, 0, 28}, - dictWord{5, 11, 411}, - dictWord{ - 135, - 11, - 653, - }, - dictWord{4, 10, 932}, - dictWord{133, 10, 891}, - dictWord{4, 0, 911}, - dictWord{5, 0, 867}, - dictWord{5, 0, 1013}, - dictWord{7, 0, 2034}, - dictWord{8, 0, 798}, - dictWord{136, 0, 813}, - dictWord{7, 11, 439}, - dictWord{10, 11, 727}, - dictWord{11, 11, 260}, - dictWord{139, 11, 684}, - dictWord{136, 10, 625}, - dictWord{ - 5, - 11, - 208, - }, - dictWord{7, 11, 753}, - dictWord{135, 11, 1528}, - dictWord{5, 0, 461}, - dictWord{7, 0, 1925}, - dictWord{12, 0, 39}, - dictWord{13, 0, 265}, - dictWord{ - 13, - 0, - 439, - }, - dictWord{134, 10, 76}, - dictWord{6, 0, 853}, - dictWord{8, 10, 92}, - dictWord{137, 10, 221}, - dictWord{5, 0, 135}, - dictWord{6, 0, 519}, - dictWord{7, 0, 1722}, - dictWord{10, 0, 271}, - dictWord{11, 0, 261}, - dictWord{145, 0, 54}, - dictWord{139, 11, 814}, - dictWord{14, 0, 338}, - dictWord{148, 0, 81}, - dictWord{4, 0, 300}, - dictWord{133, 0, 436}, - dictWord{5, 0, 419}, - dictWord{5, 0, 687}, - dictWord{7, 0, 864}, - dictWord{9, 0, 470}, - dictWord{135, 11, 864}, - dictWord{9, 0, 836}, - dictWord{ - 133, - 11, - 242, - }, - dictWord{134, 0, 1937}, - dictWord{4, 10, 763}, - dictWord{133, 11, 953}, - dictWord{132, 10, 622}, - dictWord{132, 0, 393}, - dictWord{ - 133, - 10, - 253, - }, - dictWord{8, 0, 357}, - dictWord{10, 0, 745}, - dictWord{14, 0, 426}, - dictWord{17, 0, 94}, - dictWord{19, 0, 57}, - dictWord{135, 10, 546}, - dictWord{5, 11, 615}, - dictWord{146, 11, 37}, - dictWord{9, 10, 73}, - dictWord{10, 10, 110}, - dictWord{14, 10, 185}, - dictWord{145, 10, 119}, - dictWord{11, 0, 703}, - dictWord{7, 10, 624}, - dictWord{7, 10, 916}, - dictWord{10, 10, 256}, - dictWord{139, 10, 87}, - dictWord{133, 11, 290}, - dictWord{5, 10, 212}, - dictWord{12, 10, 35}, - dictWord{ - 141, - 10, - 382, - }, - dictWord{132, 11, 380}, - dictWord{5, 11, 52}, - dictWord{7, 11, 277}, - dictWord{9, 11, 368}, - dictWord{139, 11, 791}, - dictWord{133, 0, 387}, - dictWord{ - 10, - 11, - 138, - }, - dictWord{139, 11, 476}, - dictWord{4, 0, 6}, - dictWord{5, 0, 708}, - dictWord{136, 0, 75}, - dictWord{7, 0, 1351}, - dictWord{9, 0, 581}, - dictWord{10, 0, 639}, - dictWord{11, 0, 453}, - dictWord{140, 0, 584}, - dictWord{132, 0, 303}, - dictWord{138, 0, 772}, - dictWord{135, 10, 1175}, - dictWord{4, 0, 749}, - dictWord{ - 5, - 10, - 816, - }, - dictWord{6, 11, 256}, - dictWord{7, 11, 307}, - dictWord{7, 11, 999}, - dictWord{7, 11, 1481}, - dictWord{7, 11, 1732}, - dictWord{7, 11, 1738}, - dictWord{ - 8, - 11, - 265, - }, - dictWord{9, 11, 414}, - dictWord{11, 11, 316}, - dictWord{12, 11, 52}, - dictWord{13, 11, 420}, - dictWord{147, 11, 100}, - dictWord{135, 11, 1296}, - dictWord{ - 6, - 0, - 1065, - }, - dictWord{5, 10, 869}, - dictWord{5, 10, 968}, - dictWord{6, 10, 1626}, - dictWord{8, 10, 734}, - dictWord{136, 10, 784}, - dictWord{4, 10, 542}, - dictWord{ - 6, - 10, - 1716, - }, - dictWord{6, 10, 1727}, - dictWord{7, 10, 1082}, - dictWord{7, 10, 1545}, - dictWord{8, 10, 56}, - dictWord{8, 10, 118}, - dictWord{8, 10, 412}, - dictWord{ - 8, - 10, - 564, - }, - dictWord{9, 10, 888}, - dictWord{9, 10, 908}, - dictWord{10, 10, 50}, - dictWord{10, 10, 423}, - dictWord{11, 10, 685}, - dictWord{11, 10, 697}, - dictWord{11, 10, 933}, - dictWord{12, 10, 299}, - dictWord{13, 10, 126}, - dictWord{13, 10, 136}, - dictWord{13, 10, 170}, - dictWord{141, 10, 190}, - dictWord{ - 134, - 0, - 226, - }, - dictWord{4, 0, 106}, - dictWord{7, 0, 310}, - dictWord{11, 0, 717}, - dictWord{133, 11, 723}, - dictWord{5, 0, 890}, - dictWord{5, 0, 988}, - dictWord{4, 10, 232}, - dictWord{9, 10, 202}, - dictWord{10, 10, 474}, - dictWord{140, 10, 433}, - dictWord{6, 0, 626}, - dictWord{142, 0, 431}, - dictWord{10, 0, 706}, - dictWord{150, 0, 44}, - dictWord{13, 0, 51}, - dictWord{6, 10, 108}, - dictWord{7, 10, 1003}, - dictWord{7, 10, 1181}, - dictWord{8, 10, 111}, - dictWord{136, 10, 343}, - dictWord{132, 0, 698}, - dictWord{5, 11, 109}, - dictWord{6, 11, 1784}, - dictWord{7, 11, 1895}, - dictWord{12, 11, 296}, - dictWord{140, 11, 302}, - dictWord{134, 0, 828}, - dictWord{ - 134, - 10, - 1712, - }, - dictWord{138, 0, 17}, - dictWord{7, 0, 1929}, - dictWord{4, 10, 133}, - dictWord{5, 11, 216}, - dictWord{7, 10, 711}, - dictWord{7, 10, 1298}, - dictWord{ - 7, - 10, - 1585, - }, - dictWord{7, 11, 1879}, - dictWord{9, 11, 141}, - dictWord{9, 11, 270}, - dictWord{9, 11, 679}, - dictWord{10, 11, 159}, - dictWord{10, 11, 553}, - dictWord{ - 11, - 11, - 197, - }, - dictWord{11, 11, 438}, - dictWord{12, 11, 538}, - dictWord{12, 11, 559}, - dictWord{13, 11, 193}, - dictWord{13, 11, 423}, - dictWord{14, 11, 144}, - dictWord{14, 11, 166}, - dictWord{14, 11, 167}, - dictWord{15, 11, 67}, - dictWord{147, 11, 84}, - dictWord{141, 11, 127}, - dictWord{7, 11, 1872}, - dictWord{ - 137, - 11, - 81, - }, - dictWord{6, 10, 99}, - dictWord{7, 10, 1808}, - dictWord{145, 10, 57}, - dictWord{134, 11, 391}, - dictWord{5, 0, 689}, - dictWord{6, 0, 84}, - dictWord{7, 0, 1250}, - dictWord{6, 10, 574}, - dictWord{7, 10, 428}, - dictWord{10, 10, 669}, - dictWord{11, 10, 485}, - dictWord{11, 10, 840}, - dictWord{12, 10, 300}, - dictWord{ - 142, - 10, - 250, - }, - dictWord{7, 11, 322}, - dictWord{136, 11, 249}, - dictWord{7, 11, 432}, - dictWord{135, 11, 1649}, - dictWord{135, 10, 1871}, - dictWord{137, 10, 252}, - dictWord{6, 11, 155}, - dictWord{140, 11, 234}, - dictWord{7, 0, 871}, - dictWord{19, 0, 27}, - dictWord{147, 11, 27}, - dictWord{140, 0, 498}, - dictWord{5, 0, 986}, - dictWord{6, 0, 130}, - dictWord{138, 0, 823}, - dictWord{6, 0, 1793}, - dictWord{7, 0, 1582}, - dictWord{8, 0, 458}, - dictWord{10, 0, 101}, - dictWord{10, 0, 318}, - dictWord{ - 10, - 0, - 945, - }, - dictWord{12, 0, 734}, - dictWord{16, 0, 104}, - dictWord{18, 0, 177}, - dictWord{6, 10, 323}, - dictWord{135, 10, 1564}, - dictWord{5, 11, 632}, - dictWord{ - 138, - 11, - 526, - }, - dictWord{10, 0, 435}, - dictWord{7, 10, 461}, - dictWord{136, 10, 775}, - dictWord{6, 11, 144}, - dictWord{7, 11, 948}, - dictWord{7, 11, 1042}, - dictWord{ - 7, - 11, - 1857, - }, - dictWord{8, 11, 235}, - dictWord{8, 11, 461}, - dictWord{9, 11, 453}, - dictWord{9, 11, 530}, - dictWord{10, 11, 354}, - dictWord{17, 11, 77}, - dictWord{ - 19, - 11, - 99, - }, - dictWord{148, 11, 79}, - dictWord{138, 0, 966}, - dictWord{7, 0, 1644}, - dictWord{137, 0, 129}, - dictWord{135, 0, 997}, - dictWord{136, 0, 502}, - dictWord{ - 5, - 11, - 196, - }, - dictWord{6, 11, 486}, - dictWord{7, 11, 212}, - dictWord{8, 11, 309}, - dictWord{136, 11, 346}, - dictWord{7, 10, 727}, - dictWord{146, 10, 73}, - dictWord{132, 0, 823}, - dictWord{132, 11, 686}, - dictWord{135, 0, 1927}, - dictWord{4, 0, 762}, - dictWord{7, 0, 1756}, - dictWord{137, 0, 98}, - dictWord{136, 10, 577}, - dictWord{24, 0, 8}, - dictWord{4, 11, 30}, - dictWord{5, 11, 43}, - dictWord{152, 11, 8}, - dictWord{7, 0, 1046}, - dictWord{139, 0, 160}, - dictWord{7, 0, 492}, - dictWord{ - 4, - 10, - 413, - }, - dictWord{5, 10, 677}, - dictWord{7, 11, 492}, - dictWord{8, 10, 432}, - dictWord{140, 10, 280}, - dictWord{6, 0, 45}, - dictWord{7, 0, 433}, - dictWord{8, 0, 129}, - dictWord{9, 0, 21}, - dictWord{10, 0, 392}, - dictWord{11, 0, 79}, - dictWord{12, 0, 499}, - dictWord{13, 0, 199}, - dictWord{141, 0, 451}, - dictWord{7, 0, 558}, - dictWord{ - 136, - 0, - 353, - }, - dictWord{4, 11, 220}, - dictWord{7, 11, 1535}, - dictWord{9, 11, 93}, - dictWord{139, 11, 474}, - dictWord{7, 10, 646}, - dictWord{7, 10, 1730}, - dictWord{ - 11, - 10, - 446, - }, - dictWord{141, 10, 178}, - dictWord{133, 0, 785}, - dictWord{134, 0, 1145}, - dictWord{8, 0, 81}, - dictWord{9, 0, 189}, - dictWord{9, 0, 201}, - dictWord{ - 11, - 0, - 478, - }, - dictWord{11, 0, 712}, - dictWord{141, 0, 338}, - dictWord{5, 0, 353}, - dictWord{151, 0, 26}, - dictWord{11, 0, 762}, - dictWord{132, 10, 395}, - dictWord{ - 134, - 0, - 2024, - }, - dictWord{4, 0, 611}, - dictWord{133, 0, 606}, - dictWord{9, 10, 174}, - dictWord{10, 10, 164}, - dictWord{11, 10, 440}, - dictWord{11, 10, 841}, - dictWord{ - 143, - 10, - 98, - }, - dictWord{134, 10, 426}, - dictWord{10, 10, 608}, - dictWord{139, 10, 1002}, - dictWord{138, 10, 250}, - dictWord{6, 0, 25}, - dictWord{7, 0, 855}, - dictWord{7, 0, 1258}, - dictWord{144, 0, 32}, - dictWord{7, 11, 1725}, - dictWord{138, 11, 393}, - dictWord{5, 11, 263}, - dictWord{134, 11, 414}, - dictWord{6, 0, 2011}, - dictWord{133, 10, 476}, - dictWord{4, 0, 4}, - dictWord{7, 0, 1118}, - dictWord{7, 0, 1320}, - dictWord{7, 0, 1706}, - dictWord{8, 0, 277}, - dictWord{9, 0, 622}, - dictWord{ - 10, - 0, - 9, - }, - dictWord{11, 0, 724}, - dictWord{12, 0, 350}, - dictWord{12, 0, 397}, - dictWord{13, 0, 28}, - dictWord{13, 0, 159}, - dictWord{15, 0, 89}, - dictWord{18, 0, 5}, - dictWord{ - 19, - 0, - 9, - }, - dictWord{20, 0, 34}, - dictWord{22, 0, 47}, - dictWord{6, 11, 178}, - dictWord{6, 11, 1750}, - dictWord{8, 11, 251}, - dictWord{9, 11, 690}, - dictWord{ - 10, - 11, - 155, - }, - dictWord{10, 11, 196}, - dictWord{10, 11, 373}, - dictWord{11, 11, 698}, - dictWord{13, 11, 155}, - dictWord{148, 11, 93}, - dictWord{5, 11, 97}, - dictWord{ - 137, - 11, - 393, - }, - dictWord{7, 0, 764}, - dictWord{11, 0, 461}, - dictWord{12, 0, 172}, - dictWord{5, 10, 76}, - dictWord{6, 10, 458}, - dictWord{6, 10, 497}, - dictWord{ - 7, - 10, - 868, - }, - dictWord{9, 10, 658}, - dictWord{10, 10, 594}, - dictWord{11, 10, 566}, - dictWord{12, 10, 338}, - dictWord{141, 10, 200}, - dictWord{134, 0, 1449}, - dictWord{138, 11, 40}, - dictWord{134, 11, 1639}, - dictWord{134, 0, 1445}, - dictWord{6, 0, 1168}, - dictWord{4, 10, 526}, - dictWord{7, 10, 1029}, - dictWord{ - 135, - 10, - 1054, - }, - dictWord{4, 11, 191}, - dictWord{7, 11, 934}, - dictWord{8, 11, 647}, - dictWord{145, 11, 97}, - dictWord{132, 10, 636}, - dictWord{6, 0, 233}, - dictWord{ - 7, - 10, - 660, - }, - dictWord{7, 10, 1124}, - dictWord{17, 10, 31}, - dictWord{19, 10, 22}, - dictWord{151, 10, 14}, - dictWord{6, 10, 1699}, - dictWord{136, 11, 110}, - dictWord{ - 12, - 11, - 246, - }, - dictWord{15, 11, 162}, - dictWord{19, 11, 64}, - dictWord{20, 11, 8}, - dictWord{20, 11, 95}, - dictWord{22, 11, 24}, - dictWord{152, 11, 17}, - dictWord{ - 5, - 11, - 165, - }, - dictWord{9, 11, 346}, - dictWord{138, 11, 655}, - dictWord{5, 11, 319}, - dictWord{135, 11, 534}, - dictWord{134, 0, 255}, - dictWord{9, 0, 216}, - dictWord{ - 8, - 11, - 128, - }, - dictWord{139, 11, 179}, - dictWord{9, 0, 183}, - dictWord{139, 0, 286}, - dictWord{11, 0, 956}, - dictWord{151, 0, 3}, - dictWord{4, 0, 536}, - dictWord{ - 7, - 0, - 1141, - }, - dictWord{10, 0, 723}, - dictWord{139, 0, 371}, - dictWord{4, 10, 279}, - dictWord{7, 10, 301}, - dictWord{137, 10, 362}, - dictWord{7, 0, 285}, - dictWord{ - 5, - 11, - 57, - }, - dictWord{6, 11, 101}, - dictWord{6, 11, 1663}, - dictWord{7, 11, 132}, - dictWord{7, 11, 1048}, - dictWord{7, 11, 1154}, - dictWord{7, 11, 1415}, - dictWord{ - 7, - 11, - 1507, - }, - dictWord{12, 11, 493}, - dictWord{15, 11, 105}, - dictWord{151, 11, 15}, - dictWord{5, 11, 459}, - dictWord{7, 11, 1073}, - dictWord{7, 10, 1743}, - dictWord{ - 8, - 11, - 241, - }, - dictWord{136, 11, 334}, - dictWord{4, 10, 178}, - dictWord{133, 10, 399}, - dictWord{135, 0, 560}, - dictWord{132, 0, 690}, - dictWord{135, 0, 1246}, - dictWord{18, 0, 157}, - dictWord{147, 0, 63}, - dictWord{10, 0, 599}, - dictWord{11, 0, 33}, - dictWord{12, 0, 571}, - dictWord{149, 0, 1}, - dictWord{6, 11, 324}, - dictWord{ - 6, - 11, - 520, - }, - dictWord{7, 11, 338}, - dictWord{7, 11, 1616}, - dictWord{7, 11, 1729}, - dictWord{8, 11, 228}, - dictWord{9, 11, 69}, - dictWord{139, 11, 750}, - dictWord{ - 7, - 0, - 1862, - }, - dictWord{12, 0, 491}, - dictWord{12, 0, 520}, - dictWord{13, 0, 383}, - dictWord{142, 0, 244}, - dictWord{135, 11, 734}, - dictWord{134, 10, 1692}, - dictWord{10, 0, 448}, - dictWord{11, 0, 630}, - dictWord{17, 0, 117}, - dictWord{6, 10, 202}, - dictWord{7, 11, 705}, - dictWord{12, 10, 360}, - dictWord{17, 10, 118}, - dictWord{18, 10, 27}, - dictWord{148, 10, 67}, - dictWord{4, 11, 73}, - dictWord{6, 11, 612}, - dictWord{7, 11, 927}, - dictWord{7, 11, 1822}, - dictWord{8, 11, 217}, - dictWord{ - 9, - 11, - 472, - }, - dictWord{9, 11, 765}, - dictWord{9, 11, 766}, - dictWord{10, 11, 408}, - dictWord{11, 11, 51}, - dictWord{11, 11, 793}, - dictWord{12, 11, 266}, - dictWord{ - 15, - 11, - 158, - }, - dictWord{20, 11, 89}, - dictWord{150, 11, 32}, - dictWord{4, 0, 190}, - dictWord{133, 0, 554}, - dictWord{133, 0, 1001}, - dictWord{5, 11, 389}, - dictWord{ - 8, - 11, - 636, - }, - dictWord{137, 11, 229}, - dictWord{5, 0, 446}, - dictWord{7, 10, 872}, - dictWord{10, 10, 516}, - dictWord{139, 10, 167}, - dictWord{137, 10, 313}, - dictWord{132, 10, 224}, - dictWord{134, 0, 1313}, - dictWord{5, 10, 546}, - dictWord{7, 10, 35}, - dictWord{8, 10, 11}, - dictWord{8, 10, 12}, - dictWord{9, 10, 315}, - dictWord{9, 10, 533}, - dictWord{10, 10, 802}, - dictWord{11, 10, 166}, - dictWord{12, 10, 525}, - dictWord{142, 10, 243}, - dictWord{6, 0, 636}, - dictWord{137, 0, 837}, - dictWord{5, 10, 241}, - dictWord{8, 10, 242}, - dictWord{9, 10, 451}, - dictWord{10, 10, 667}, - dictWord{11, 10, 598}, - dictWord{140, 10, 429}, - dictWord{22, 10, 46}, - dictWord{150, 11, 46}, - dictWord{136, 11, 472}, - dictWord{11, 0, 278}, - dictWord{142, 0, 73}, - dictWord{141, 11, 185}, - dictWord{132, 0, 868}, - dictWord{ - 134, - 0, - 972, - }, - dictWord{4, 10, 366}, - dictWord{137, 10, 516}, - dictWord{138, 0, 1010}, - dictWord{5, 11, 189}, - dictWord{6, 10, 1736}, - dictWord{7, 11, 442}, - dictWord{ - 7, - 11, - 443, - }, - dictWord{8, 11, 281}, - dictWord{12, 11, 174}, - dictWord{13, 11, 83}, - dictWord{141, 11, 261}, - dictWord{139, 11, 384}, - dictWord{6, 11, 2}, - dictWord{ - 7, - 11, - 191, - }, - dictWord{7, 11, 446}, - dictWord{7, 11, 758}, - dictWord{7, 11, 1262}, - dictWord{7, 11, 1737}, - dictWord{8, 11, 22}, - dictWord{8, 11, 270}, - dictWord{ - 8, - 11, - 612, - }, - dictWord{9, 11, 4}, - dictWord{9, 11, 167}, - dictWord{9, 11, 312}, - dictWord{9, 11, 436}, - dictWord{10, 11, 156}, - dictWord{10, 11, 216}, - dictWord{ - 10, - 11, - 311, - }, - dictWord{10, 11, 623}, - dictWord{11, 11, 72}, - dictWord{11, 11, 330}, - dictWord{11, 11, 455}, - dictWord{12, 11, 101}, - dictWord{12, 11, 321}, - dictWord{ - 12, - 11, - 504, - }, - dictWord{12, 11, 530}, - dictWord{12, 11, 543}, - dictWord{13, 11, 17}, - dictWord{13, 11, 156}, - dictWord{13, 11, 334}, - dictWord{14, 11, 48}, - dictWord{15, 11, 70}, - dictWord{17, 11, 60}, - dictWord{148, 11, 64}, - dictWord{6, 10, 331}, - dictWord{136, 10, 623}, - dictWord{135, 0, 1231}, - dictWord{132, 0, 304}, - dictWord{6, 11, 60}, - dictWord{7, 11, 670}, - dictWord{7, 11, 1327}, - dictWord{8, 11, 411}, - dictWord{8, 11, 435}, - dictWord{9, 11, 653}, - dictWord{9, 11, 740}, - dictWord{10, 11, 385}, - dictWord{11, 11, 222}, - dictWord{11, 11, 324}, - dictWord{11, 11, 829}, - dictWord{140, 11, 611}, - dictWord{7, 0, 506}, - dictWord{6, 11, 166}, - dictWord{7, 11, 374}, - dictWord{135, 11, 1174}, - dictWord{14, 11, 43}, - dictWord{146, 11, 21}, - dictWord{135, 11, 1694}, - dictWord{135, 10, 1888}, - dictWord{ - 5, - 11, - 206, - }, - dictWord{134, 11, 398}, - dictWord{135, 11, 50}, - dictWord{150, 0, 26}, - dictWord{6, 0, 53}, - dictWord{6, 0, 199}, - dictWord{7, 0, 1408}, - dictWord{ - 8, - 0, - 32, - }, - dictWord{8, 0, 93}, - dictWord{10, 0, 397}, - dictWord{10, 0, 629}, - dictWord{11, 0, 593}, - dictWord{11, 0, 763}, - dictWord{13, 0, 326}, - dictWord{145, 0, 35}, - dictWord{134, 0, 105}, - dictWord{132, 10, 394}, - dictWord{4, 0, 843}, - dictWord{138, 0, 794}, - dictWord{11, 0, 704}, - dictWord{141, 0, 396}, - dictWord{5, 0, 114}, - dictWord{5, 0, 255}, - dictWord{141, 0, 285}, - dictWord{6, 0, 619}, - dictWord{7, 0, 898}, - dictWord{7, 0, 1092}, - dictWord{8, 0, 485}, - dictWord{18, 0, 28}, - dictWord{ - 19, - 0, - 116, - }, - dictWord{135, 10, 1931}, - dictWord{9, 0, 145}, - dictWord{7, 10, 574}, - dictWord{135, 10, 1719}, - dictWord{7, 0, 2035}, - dictWord{8, 0, 19}, - dictWord{ - 9, - 0, - 89, - }, - dictWord{138, 0, 831}, - dictWord{132, 10, 658}, - dictWord{6, 11, 517}, - dictWord{7, 11, 1159}, - dictWord{10, 11, 621}, - dictWord{139, 11, 192}, - dictWord{ - 7, - 0, - 1933, - }, - dictWord{7, 11, 1933}, - dictWord{9, 10, 781}, - dictWord{10, 10, 144}, - dictWord{11, 10, 385}, - dictWord{13, 10, 161}, - dictWord{13, 10, 228}, - dictWord{13, 10, 268}, - dictWord{148, 10, 107}, - dictWord{136, 10, 374}, - dictWord{10, 11, 223}, - dictWord{139, 11, 645}, - dictWord{135, 0, 1728}, - dictWord{ - 7, - 11, - 64, - }, - dictWord{7, 11, 289}, - dictWord{136, 11, 245}, - dictWord{4, 10, 344}, - dictWord{6, 10, 498}, - dictWord{139, 10, 323}, - dictWord{136, 0, 746}, - dictWord{ - 135, - 10, - 1063, - }, - dictWord{137, 10, 155}, - dictWord{4, 0, 987}, - dictWord{6, 0, 1964}, - dictWord{6, 0, 1974}, - dictWord{6, 0, 1990}, - dictWord{136, 0, 995}, - dictWord{133, 11, 609}, - dictWord{133, 10, 906}, - dictWord{134, 0, 1550}, - dictWord{134, 0, 874}, - dictWord{5, 11, 129}, - dictWord{6, 11, 61}, - dictWord{ - 135, - 11, - 947, - }, - dictWord{4, 0, 1018}, - dictWord{6, 0, 1938}, - dictWord{6, 0, 2021}, - dictWord{134, 0, 2039}, - dictWord{132, 0, 814}, - dictWord{11, 0, 126}, - dictWord{ - 139, - 0, - 287, - }, - dictWord{134, 0, 1264}, - dictWord{5, 0, 955}, - dictWord{136, 0, 814}, - dictWord{141, 11, 506}, - dictWord{132, 11, 314}, - dictWord{6, 0, 981}, - dictWord{139, 11, 1000}, - dictWord{5, 0, 56}, - dictWord{8, 0, 892}, - dictWord{8, 0, 915}, - dictWord{140, 0, 776}, - dictWord{148, 0, 100}, - dictWord{10, 0, 4}, - dictWord{ - 10, - 0, - 13, - }, - dictWord{11, 0, 638}, - dictWord{148, 0, 57}, - dictWord{148, 11, 74}, - dictWord{5, 0, 738}, - dictWord{132, 10, 616}, - dictWord{133, 11, 637}, - dictWord{ - 136, - 10, - 692, - }, - dictWord{133, 0, 758}, - dictWord{132, 10, 305}, - dictWord{137, 11, 590}, - dictWord{5, 11, 280}, - dictWord{135, 11, 1226}, - dictWord{ - 134, - 11, - 494, - }, - dictWord{135, 0, 1112}, - dictWord{133, 11, 281}, - dictWord{13, 0, 44}, - dictWord{14, 0, 214}, - dictWord{5, 10, 214}, - dictWord{7, 10, 603}, - dictWord{ - 8, - 10, - 611, - }, - dictWord{9, 10, 686}, - dictWord{10, 10, 88}, - dictWord{11, 10, 459}, - dictWord{11, 10, 496}, - dictWord{12, 10, 463}, - dictWord{140, 10, 590}, - dictWord{ - 139, - 0, - 328, - }, - dictWord{135, 11, 1064}, - dictWord{137, 0, 133}, - dictWord{7, 0, 168}, - dictWord{13, 0, 196}, - dictWord{141, 0, 237}, - dictWord{134, 10, 1703}, - dictWord{134, 0, 1152}, - dictWord{135, 0, 1245}, - dictWord{5, 0, 110}, - dictWord{6, 0, 169}, - dictWord{6, 0, 1702}, - dictWord{7, 0, 400}, - dictWord{8, 0, 538}, - dictWord{ - 9, - 0, - 184, - }, - dictWord{9, 0, 524}, - dictWord{140, 0, 218}, - dictWord{6, 0, 1816}, - dictWord{10, 0, 871}, - dictWord{12, 0, 769}, - dictWord{140, 0, 785}, - dictWord{ - 132, - 11, - 630, - }, - dictWord{7, 11, 33}, - dictWord{7, 11, 120}, - dictWord{8, 11, 489}, - dictWord{9, 11, 319}, - dictWord{10, 11, 820}, - dictWord{11, 11, 1004}, - dictWord{ - 12, - 11, - 379, - }, - dictWord{13, 11, 117}, - dictWord{13, 11, 412}, - dictWord{14, 11, 25}, - dictWord{15, 11, 52}, - dictWord{15, 11, 161}, - dictWord{16, 11, 47}, - dictWord{149, 11, 2}, - dictWord{6, 0, 133}, - dictWord{8, 0, 413}, - dictWord{9, 0, 353}, - dictWord{139, 0, 993}, - dictWord{145, 10, 19}, - dictWord{4, 11, 937}, - dictWord{ - 133, - 11, - 801, - }, - dictWord{134, 0, 978}, - dictWord{6, 0, 93}, - dictWord{6, 0, 1508}, - dictWord{7, 0, 1422}, - dictWord{7, 0, 1851}, - dictWord{8, 0, 673}, - dictWord{9, 0, 529}, - dictWord{140, 0, 43}, - dictWord{6, 0, 317}, - dictWord{10, 0, 512}, - dictWord{4, 10, 737}, - dictWord{11, 10, 294}, - dictWord{12, 10, 60}, - dictWord{12, 10, 437}, - dictWord{13, 10, 64}, - dictWord{13, 10, 380}, - dictWord{142, 10, 430}, - dictWord{9, 0, 371}, - dictWord{7, 11, 1591}, - dictWord{144, 11, 43}, - dictWord{6, 10, 1758}, - dictWord{8, 10, 520}, - dictWord{9, 10, 345}, - dictWord{9, 10, 403}, - dictWord{142, 10, 350}, - dictWord{5, 0, 526}, - dictWord{10, 10, 242}, - dictWord{ - 138, - 10, - 579, - }, - dictWord{9, 0, 25}, - dictWord{10, 0, 467}, - dictWord{138, 0, 559}, - dictWord{5, 10, 139}, - dictWord{7, 10, 1168}, - dictWord{138, 10, 539}, - dictWord{ - 4, - 0, - 335, - }, - dictWord{135, 0, 942}, - dictWord{140, 0, 754}, - dictWord{132, 11, 365}, - dictWord{11, 0, 182}, - dictWord{142, 0, 195}, - dictWord{142, 11, 29}, - dictWord{ - 5, - 11, - 7, - }, - dictWord{139, 11, 774}, - dictWord{4, 11, 746}, - dictWord{135, 11, 1090}, - dictWord{8, 0, 39}, - dictWord{10, 0, 773}, - dictWord{11, 0, 84}, - dictWord{ - 12, - 0, - 205, - }, - dictWord{142, 0, 1}, - dictWord{5, 0, 601}, - dictWord{5, 0, 870}, - dictWord{5, 11, 360}, - dictWord{136, 11, 237}, - dictWord{132, 0, 181}, - dictWord{ - 136, - 0, - 370, - }, - dictWord{134, 0, 1652}, - dictWord{8, 0, 358}, - dictWord{4, 10, 107}, - dictWord{7, 10, 613}, - dictWord{8, 10, 439}, - dictWord{8, 10, 504}, - dictWord{ - 9, - 10, - 501, - }, - dictWord{10, 10, 383}, - dictWord{139, 10, 477}, - dictWord{132, 10, 229}, - dictWord{137, 11, 785}, - dictWord{4, 0, 97}, - dictWord{5, 0, 147}, - dictWord{ - 6, - 0, - 286, - }, - dictWord{7, 0, 1362}, - dictWord{141, 0, 176}, - dictWord{6, 0, 537}, - dictWord{7, 0, 788}, - dictWord{7, 0, 1816}, - dictWord{132, 10, 903}, - dictWord{ - 140, - 10, - 71, - }, - dictWord{6, 0, 743}, - dictWord{134, 0, 1223}, - dictWord{6, 0, 375}, - dictWord{7, 0, 169}, - dictWord{7, 0, 254}, - dictWord{8, 0, 780}, - dictWord{135, 11, 1493}, - dictWord{7, 0, 1714}, - dictWord{4, 10, 47}, - dictWord{6, 10, 373}, - dictWord{7, 10, 452}, - dictWord{7, 10, 543}, - dictWord{7, 10, 1856}, - dictWord{9, 10, 6}, - dictWord{ - 11, - 10, - 257, - }, - dictWord{139, 10, 391}, - dictWord{6, 0, 896}, - dictWord{136, 0, 1003}, - dictWord{135, 0, 1447}, - dictWord{137, 11, 341}, - dictWord{5, 10, 980}, - dictWord{134, 10, 1754}, - dictWord{145, 11, 22}, - dictWord{4, 11, 277}, - dictWord{5, 11, 608}, - dictWord{6, 11, 493}, - dictWord{7, 11, 457}, - dictWord{ - 140, - 11, - 384, - }, - dictWord{7, 10, 536}, - dictWord{7, 10, 1331}, - dictWord{136, 10, 143}, - dictWord{140, 0, 744}, - dictWord{7, 11, 27}, - dictWord{135, 11, 316}, - dictWord{ - 18, - 0, - 126, - }, - dictWord{5, 10, 19}, - dictWord{134, 10, 533}, - dictWord{4, 0, 788}, - dictWord{11, 0, 41}, - dictWord{5, 11, 552}, - dictWord{5, 11, 586}, - dictWord{ - 5, - 11, - 676, - }, - dictWord{6, 11, 448}, - dictWord{8, 11, 244}, - dictWord{11, 11, 1}, - dictWord{11, 11, 41}, - dictWord{13, 11, 3}, - dictWord{16, 11, 54}, - dictWord{17, 11, 4}, - dictWord{146, 11, 13}, - dictWord{4, 0, 985}, - dictWord{6, 0, 1801}, - dictWord{4, 11, 401}, - dictWord{137, 11, 264}, - dictWord{5, 10, 395}, - dictWord{5, 10, 951}, - dictWord{134, 10, 1776}, - dictWord{5, 0, 629}, - dictWord{135, 0, 1549}, - dictWord{11, 10, 663}, - dictWord{12, 10, 210}, - dictWord{13, 10, 166}, - dictWord{ - 13, - 10, - 310, - }, - dictWord{14, 10, 373}, - dictWord{147, 10, 43}, - dictWord{9, 11, 543}, - dictWord{10, 11, 524}, - dictWord{11, 11, 30}, - dictWord{12, 11, 524}, - dictWord{ - 14, - 11, - 315, - }, - dictWord{16, 11, 18}, - dictWord{20, 11, 26}, - dictWord{148, 11, 65}, - dictWord{4, 11, 205}, - dictWord{5, 11, 623}, - dictWord{7, 11, 104}, - dictWord{ - 136, - 11, - 519, - }, - dictWord{5, 0, 293}, - dictWord{134, 0, 601}, - dictWord{7, 11, 579}, - dictWord{9, 11, 41}, - dictWord{9, 11, 244}, - dictWord{9, 11, 669}, - dictWord{ - 10, - 11, - 5, - }, - dictWord{11, 11, 861}, - dictWord{11, 11, 951}, - dictWord{139, 11, 980}, - dictWord{132, 11, 717}, - dictWord{132, 10, 695}, - dictWord{7, 10, 497}, - dictWord{ - 9, - 10, - 387, - }, - dictWord{147, 10, 81}, - dictWord{132, 0, 420}, - dictWord{142, 0, 37}, - dictWord{6, 0, 1134}, - dictWord{6, 0, 1900}, - dictWord{12, 0, 830}, - dictWord{ - 12, - 0, - 878, - }, - dictWord{12, 0, 894}, - dictWord{15, 0, 221}, - dictWord{143, 0, 245}, - dictWord{132, 11, 489}, - dictWord{7, 0, 1570}, - dictWord{140, 0, 542}, - dictWord{ - 8, - 0, - 933, - }, - dictWord{136, 0, 957}, - dictWord{6, 0, 1371}, - dictWord{7, 0, 31}, - dictWord{8, 0, 373}, - dictWord{5, 10, 284}, - dictWord{6, 10, 49}, - dictWord{6, 10, 350}, - dictWord{7, 10, 377}, - dictWord{7, 10, 1693}, - dictWord{8, 10, 678}, - dictWord{9, 10, 161}, - dictWord{9, 10, 585}, - dictWord{9, 10, 671}, - dictWord{9, 10, 839}, - dictWord{11, 10, 912}, - dictWord{141, 10, 427}, - dictWord{135, 11, 892}, - dictWord{4, 0, 325}, - dictWord{138, 0, 125}, - dictWord{139, 11, 47}, - dictWord{ - 132, - 10, - 597, - }, - dictWord{138, 0, 323}, - dictWord{6, 0, 1547}, - dictWord{7, 11, 1605}, - dictWord{9, 11, 473}, - dictWord{11, 11, 962}, - dictWord{146, 11, 139}, - dictWord{ - 139, - 10, - 908, - }, - dictWord{7, 11, 819}, - dictWord{9, 11, 26}, - dictWord{9, 11, 392}, - dictWord{10, 11, 152}, - dictWord{10, 11, 226}, - dictWord{11, 11, 19}, - dictWord{ - 12, - 11, - 276, - }, - dictWord{12, 11, 426}, - dictWord{12, 11, 589}, - dictWord{13, 11, 460}, - dictWord{15, 11, 97}, - dictWord{19, 11, 48}, - dictWord{148, 11, 104}, - dictWord{135, 11, 51}, - dictWord{4, 0, 718}, - dictWord{135, 0, 1216}, - dictWord{6, 0, 1896}, - dictWord{6, 0, 1905}, - dictWord{6, 0, 1912}, - dictWord{9, 0, 947}, - dictWord{ - 9, - 0, - 974, - }, - dictWord{12, 0, 809}, - dictWord{12, 0, 850}, - dictWord{12, 0, 858}, - dictWord{12, 0, 874}, - dictWord{12, 0, 887}, - dictWord{12, 0, 904}, - dictWord{ - 12, - 0, - 929, - }, - dictWord{12, 0, 948}, - dictWord{12, 0, 952}, - dictWord{15, 0, 198}, - dictWord{15, 0, 206}, - dictWord{15, 0, 220}, - dictWord{15, 0, 227}, - dictWord{15, 0, 247}, - dictWord{18, 0, 188}, - dictWord{21, 0, 48}, - dictWord{21, 0, 50}, - dictWord{24, 0, 25}, - dictWord{24, 0, 29}, - dictWord{7, 11, 761}, - dictWord{7, 11, 1051}, - dictWord{ - 137, - 11, - 545, - }, - dictWord{5, 0, 124}, - dictWord{5, 0, 144}, - dictWord{6, 0, 548}, - dictWord{7, 0, 15}, - dictWord{7, 0, 153}, - dictWord{137, 0, 629}, - dictWord{ - 135, - 11, - 606, - }, - dictWord{135, 10, 2014}, - dictWord{7, 10, 2007}, - dictWord{9, 11, 46}, - dictWord{9, 10, 101}, - dictWord{9, 10, 450}, - dictWord{10, 10, 66}, - dictWord{ - 10, - 10, - 842, - }, - dictWord{11, 10, 536}, - dictWord{140, 10, 587}, - dictWord{6, 0, 75}, - dictWord{7, 0, 1531}, - dictWord{8, 0, 416}, - dictWord{9, 0, 240}, - dictWord{9, 0, 275}, - dictWord{10, 0, 100}, - dictWord{11, 0, 658}, - dictWord{11, 0, 979}, - dictWord{12, 0, 86}, - dictWord{14, 0, 207}, - dictWord{15, 0, 20}, - dictWord{143, 0, 25}, - dictWord{ - 5, - 0, - 141, - }, - dictWord{5, 0, 915}, - dictWord{6, 0, 1783}, - dictWord{7, 0, 211}, - dictWord{7, 0, 698}, - dictWord{7, 0, 1353}, - dictWord{9, 0, 83}, - dictWord{9, 0, 281}, - dictWord{ - 10, - 0, - 376, - }, - dictWord{10, 0, 431}, - dictWord{11, 0, 543}, - dictWord{12, 0, 664}, - dictWord{13, 0, 280}, - dictWord{13, 0, 428}, - dictWord{14, 0, 61}, - dictWord{ - 14, - 0, - 128, - }, - dictWord{17, 0, 52}, - dictWord{145, 0, 81}, - dictWord{132, 11, 674}, - dictWord{135, 0, 533}, - dictWord{149, 0, 6}, - dictWord{132, 11, 770}, - dictWord{ - 133, - 0, - 538, - }, - dictWord{5, 11, 79}, - dictWord{7, 11, 1027}, - dictWord{7, 11, 1477}, - dictWord{139, 11, 52}, - dictWord{139, 10, 62}, - dictWord{4, 0, 338}, - dictWord{ - 133, - 0, - 400, - }, - dictWord{5, 11, 789}, - dictWord{134, 11, 195}, - dictWord{4, 11, 251}, - dictWord{4, 11, 688}, - dictWord{7, 11, 513}, - dictWord{7, 11, 1284}, - dictWord{ - 9, - 11, - 87, - }, - dictWord{138, 11, 365}, - dictWord{134, 10, 1766}, - dictWord{6, 0, 0}, - dictWord{7, 0, 84}, - dictWord{11, 0, 895}, - dictWord{145, 0, 11}, - dictWord{ - 139, - 0, - 892, - }, - dictWord{4, 0, 221}, - dictWord{5, 0, 659}, - dictWord{7, 0, 697}, - dictWord{7, 0, 1211}, - dictWord{138, 0, 284}, - dictWord{133, 0, 989}, - dictWord{ - 133, - 11, - 889, - }, - dictWord{4, 11, 160}, - dictWord{5, 11, 330}, - dictWord{7, 11, 1434}, - dictWord{136, 11, 174}, - dictWord{6, 10, 1665}, - dictWord{7, 10, 256}, - dictWord{ - 7, - 10, - 1388, - }, - dictWord{10, 10, 499}, - dictWord{139, 10, 670}, - dictWord{7, 0, 848}, - dictWord{4, 10, 22}, - dictWord{5, 10, 10}, - dictWord{136, 10, 97}, - dictWord{ - 138, - 0, - 507, - }, - dictWord{133, 10, 481}, - dictWord{4, 0, 188}, - dictWord{135, 0, 805}, - dictWord{5, 0, 884}, - dictWord{6, 0, 732}, - dictWord{139, 0, 991}, - dictWord{ - 135, - 11, - 968, - }, - dictWord{11, 11, 636}, - dictWord{15, 11, 145}, - dictWord{17, 11, 34}, - dictWord{19, 11, 50}, - dictWord{151, 11, 20}, - dictWord{7, 0, 959}, - dictWord{ - 16, - 0, - 60, - }, - dictWord{6, 10, 134}, - dictWord{7, 10, 437}, - dictWord{9, 10, 37}, - dictWord{14, 10, 285}, - dictWord{142, 10, 371}, - dictWord{7, 10, 486}, - dictWord{ - 8, - 10, - 155, - }, - dictWord{11, 10, 93}, - dictWord{140, 10, 164}, - dictWord{134, 0, 1653}, - dictWord{7, 0, 337}, - dictWord{133, 10, 591}, - dictWord{6, 0, 1989}, - dictWord{ - 8, - 0, - 922, - }, - dictWord{8, 0, 978}, - dictWord{133, 11, 374}, - dictWord{132, 0, 638}, - dictWord{138, 0, 500}, - dictWord{133, 11, 731}, - dictWord{5, 10, 380}, - dictWord{ - 5, - 10, - 650, - }, - dictWord{136, 10, 310}, - dictWord{138, 11, 381}, - dictWord{4, 10, 364}, - dictWord{7, 10, 1156}, - dictWord{7, 10, 1187}, - dictWord{137, 10, 409}, - dictWord{137, 11, 224}, - dictWord{140, 0, 166}, - dictWord{134, 10, 482}, - dictWord{4, 11, 626}, - dictWord{5, 11, 642}, - dictWord{6, 11, 425}, - dictWord{ - 10, - 11, - 202, - }, - dictWord{139, 11, 141}, - dictWord{4, 10, 781}, - dictWord{6, 10, 487}, - dictWord{7, 10, 926}, - dictWord{8, 10, 263}, - dictWord{139, 10, 500}, - dictWord{ - 135, - 0, - 418, - }, - dictWord{4, 10, 94}, - dictWord{135, 10, 1265}, - dictWord{136, 0, 760}, - dictWord{132, 10, 417}, - dictWord{136, 11, 835}, - dictWord{5, 10, 348}, - dictWord{134, 10, 522}, - dictWord{6, 0, 1277}, - dictWord{134, 0, 1538}, - dictWord{139, 11, 541}, - dictWord{135, 11, 1597}, - dictWord{5, 11, 384}, - dictWord{ - 8, - 11, - 455, - }, - dictWord{140, 11, 48}, - dictWord{136, 0, 770}, - dictWord{5, 11, 264}, - dictWord{134, 11, 184}, - dictWord{4, 0, 89}, - dictWord{5, 0, 489}, - dictWord{ - 6, - 0, - 315, - }, - dictWord{7, 0, 553}, - dictWord{7, 0, 1745}, - dictWord{138, 0, 243}, - dictWord{4, 10, 408}, - dictWord{4, 10, 741}, - dictWord{135, 10, 500}, - dictWord{ - 134, - 0, - 1396, - }, - dictWord{133, 0, 560}, - dictWord{6, 0, 1658}, - dictWord{9, 0, 3}, - dictWord{10, 0, 154}, - dictWord{11, 0, 641}, - dictWord{13, 0, 85}, - dictWord{13, 0, 201}, - dictWord{141, 0, 346}, - dictWord{135, 11, 1595}, - dictWord{5, 11, 633}, - dictWord{6, 11, 28}, - dictWord{7, 11, 219}, - dictWord{135, 11, 1323}, - dictWord{ - 9, - 11, - 769, - }, - dictWord{140, 11, 185}, - dictWord{135, 11, 785}, - dictWord{7, 11, 359}, - dictWord{8, 11, 243}, - dictWord{140, 11, 175}, - dictWord{138, 0, 586}, - dictWord{ - 7, - 0, - 1271, - }, - dictWord{134, 10, 73}, - dictWord{132, 11, 105}, - dictWord{4, 0, 166}, - dictWord{5, 0, 505}, - dictWord{134, 0, 1670}, - dictWord{133, 10, 576}, - dictWord{4, 11, 324}, - dictWord{138, 11, 104}, - dictWord{142, 10, 231}, - dictWord{6, 0, 637}, - dictWord{7, 10, 1264}, - dictWord{7, 10, 1678}, - dictWord{ - 11, - 10, - 945, - }, - dictWord{12, 10, 341}, - dictWord{12, 10, 471}, - dictWord{12, 10, 569}, - dictWord{23, 11, 21}, - dictWord{151, 11, 23}, - dictWord{8, 11, 559}, - dictWord{ - 141, - 11, - 109, - }, - dictWord{134, 0, 1947}, - dictWord{7, 0, 445}, - dictWord{8, 0, 307}, - dictWord{8, 0, 704}, - dictWord{10, 0, 41}, - dictWord{10, 0, 439}, - dictWord{ - 11, - 0, - 237, - }, - dictWord{11, 0, 622}, - dictWord{140, 0, 201}, - dictWord{135, 11, 963}, - dictWord{135, 0, 1977}, - dictWord{4, 0, 189}, - dictWord{5, 0, 713}, - dictWord{ - 136, - 0, - 57, - }, - dictWord{138, 0, 371}, - dictWord{135, 10, 538}, - dictWord{132, 0, 552}, - dictWord{6, 0, 883}, - dictWord{133, 10, 413}, - dictWord{6, 0, 923}, - dictWord{ - 132, - 11, - 758, - }, - dictWord{138, 11, 215}, - dictWord{136, 10, 495}, - dictWord{7, 10, 54}, - dictWord{8, 10, 312}, - dictWord{10, 10, 191}, - dictWord{10, 10, 614}, - dictWord{140, 10, 567}, - dictWord{7, 11, 351}, - dictWord{139, 11, 128}, - dictWord{7, 0, 875}, - dictWord{6, 10, 468}, - dictWord{7, 10, 1478}, - dictWord{8, 10, 530}, - dictWord{142, 10, 290}, - dictWord{135, 0, 1788}, - dictWord{17, 0, 49}, - dictWord{133, 11, 918}, - dictWord{12, 11, 398}, - dictWord{20, 11, 39}, - dictWord{ - 21, - 11, - 11, - }, - dictWord{150, 11, 41}, - dictWord{10, 0, 661}, - dictWord{6, 10, 484}, - dictWord{135, 10, 822}, - dictWord{135, 0, 1945}, - dictWord{134, 0, 794}, - dictWord{ - 137, - 10, - 900, - }, - dictWord{135, 10, 1335}, - dictWord{6, 10, 1724}, - dictWord{135, 10, 2022}, - dictWord{132, 11, 340}, - dictWord{134, 0, 1135}, - dictWord{ - 4, - 0, - 784, - }, - dictWord{133, 0, 745}, - dictWord{5, 0, 84}, - dictWord{134, 0, 163}, - dictWord{133, 0, 410}, - dictWord{4, 0, 976}, - dictWord{5, 11, 985}, - dictWord{7, 11, 509}, - dictWord{7, 11, 529}, - dictWord{145, 11, 96}, - dictWord{132, 10, 474}, - dictWord{134, 0, 703}, - dictWord{135, 11, 1919}, - dictWord{5, 0, 322}, - dictWord{ - 8, - 0, - 186, - }, - dictWord{9, 0, 262}, - dictWord{10, 0, 187}, - dictWord{142, 0, 208}, - dictWord{135, 10, 1504}, - dictWord{133, 0, 227}, - dictWord{9, 0, 560}, - dictWord{ - 13, - 0, - 208, - }, - dictWord{133, 10, 305}, - dictWord{132, 11, 247}, - dictWord{7, 0, 1395}, - dictWord{8, 0, 486}, - dictWord{9, 0, 236}, - dictWord{9, 0, 878}, - dictWord{ - 10, - 0, - 218, - }, - dictWord{11, 0, 95}, - dictWord{19, 0, 17}, - dictWord{147, 0, 31}, - dictWord{7, 0, 2043}, - dictWord{8, 0, 672}, - dictWord{141, 0, 448}, - dictWord{4, 11, 184}, - dictWord{5, 11, 390}, - dictWord{6, 11, 337}, - dictWord{7, 11, 23}, - dictWord{7, 11, 494}, - dictWord{7, 11, 618}, - dictWord{7, 11, 1456}, - dictWord{8, 11, 27}, - dictWord{ - 8, - 11, - 599, - }, - dictWord{10, 11, 153}, - dictWord{139, 11, 710}, - dictWord{135, 0, 466}, - dictWord{135, 10, 1236}, - dictWord{6, 0, 167}, - dictWord{7, 0, 186}, - dictWord{7, 0, 656}, - dictWord{10, 0, 643}, - dictWord{4, 10, 480}, - dictWord{6, 10, 302}, - dictWord{6, 10, 1642}, - dictWord{7, 10, 837}, - dictWord{7, 10, 1547}, - dictWord{ - 7, - 10, - 1657, - }, - dictWord{8, 10, 429}, - dictWord{9, 10, 228}, - dictWord{13, 10, 289}, - dictWord{13, 10, 343}, - dictWord{147, 10, 101}, - dictWord{134, 0, 1428}, - dictWord{134, 0, 1440}, - dictWord{5, 0, 412}, - dictWord{7, 10, 278}, - dictWord{10, 10, 739}, - dictWord{11, 10, 708}, - dictWord{141, 10, 348}, - dictWord{ - 134, - 0, - 1118, - }, - dictWord{136, 0, 562}, - dictWord{148, 11, 46}, - dictWord{9, 0, 316}, - dictWord{139, 0, 256}, - dictWord{134, 0, 1771}, - dictWord{135, 0, 1190}, - dictWord{137, 0, 132}, - dictWord{10, 11, 227}, - dictWord{11, 11, 497}, - dictWord{11, 11, 709}, - dictWord{140, 11, 415}, - dictWord{143, 0, 66}, - dictWord{6, 11, 360}, - dictWord{7, 11, 1664}, - dictWord{136, 11, 478}, - dictWord{144, 10, 28}, - dictWord{4, 0, 317}, - dictWord{135, 0, 1279}, - dictWord{5, 0, 63}, - dictWord{ - 133, - 0, - 509, - }, - dictWord{136, 11, 699}, - dictWord{145, 10, 36}, - dictWord{134, 0, 1475}, - dictWord{11, 11, 343}, - dictWord{142, 11, 127}, - dictWord{132, 11, 739}, - dictWord{132, 0, 288}, - dictWord{135, 11, 1757}, - dictWord{8, 0, 89}, - dictWord{8, 0, 620}, - dictWord{9, 0, 608}, - dictWord{11, 0, 628}, - dictWord{12, 0, 322}, - dictWord{143, 0, 124}, - dictWord{134, 0, 1225}, - dictWord{7, 0, 1189}, - dictWord{4, 11, 67}, - dictWord{5, 11, 422}, - dictWord{6, 10, 363}, - dictWord{7, 11, 1037}, - dictWord{7, 11, 1289}, - dictWord{7, 11, 1555}, - dictWord{7, 10, 1955}, - dictWord{8, 10, 725}, - dictWord{9, 11, 741}, - dictWord{145, 11, 108}, - dictWord{ - 134, - 0, - 1468, - }, - dictWord{6, 0, 689}, - dictWord{134, 0, 1451}, - dictWord{138, 0, 120}, - dictWord{151, 0, 1}, - dictWord{137, 10, 805}, - dictWord{142, 0, 329}, - dictWord{ - 5, - 10, - 813, - }, - dictWord{135, 10, 2046}, - dictWord{135, 0, 226}, - dictWord{138, 11, 96}, - dictWord{7, 0, 1855}, - dictWord{5, 10, 712}, - dictWord{11, 10, 17}, - dictWord{13, 10, 321}, - dictWord{144, 10, 67}, - dictWord{9, 0, 461}, - dictWord{6, 10, 320}, - dictWord{7, 10, 781}, - dictWord{7, 10, 1921}, - dictWord{9, 10, 55}, - dictWord{ - 10, - 10, - 186, - }, - dictWord{10, 10, 273}, - dictWord{10, 10, 664}, - dictWord{10, 10, 801}, - dictWord{11, 10, 996}, - dictWord{11, 10, 997}, - dictWord{13, 10, 157}, - dictWord{142, 10, 170}, - dictWord{8, 11, 203}, - dictWord{8, 10, 271}, - dictWord{11, 11, 823}, - dictWord{11, 11, 846}, - dictWord{12, 11, 482}, - dictWord{ - 13, - 11, - 133, - }, - dictWord{13, 11, 277}, - dictWord{13, 11, 302}, - dictWord{13, 11, 464}, - dictWord{14, 11, 205}, - dictWord{142, 11, 221}, - dictWord{135, 0, 1346}, - dictWord{4, 11, 449}, - dictWord{133, 11, 718}, - dictWord{134, 0, 85}, - dictWord{14, 0, 299}, - dictWord{7, 10, 103}, - dictWord{7, 10, 863}, - dictWord{11, 10, 184}, - dictWord{145, 10, 62}, - dictWord{4, 11, 355}, - dictWord{6, 11, 311}, - dictWord{9, 11, 256}, - dictWord{138, 11, 404}, - dictWord{137, 10, 659}, - dictWord{ - 138, - 11, - 758, - }, - dictWord{133, 11, 827}, - dictWord{5, 11, 64}, - dictWord{140, 11, 581}, - dictWord{134, 0, 1171}, - dictWord{4, 11, 442}, - dictWord{7, 11, 1047}, - dictWord{ - 7, - 11, - 1352, - }, - dictWord{135, 11, 1643}, - dictWord{132, 0, 980}, - dictWord{5, 11, 977}, - dictWord{6, 11, 288}, - dictWord{7, 11, 528}, - dictWord{135, 11, 1065}, - dictWord{5, 0, 279}, - dictWord{6, 0, 235}, - dictWord{7, 0, 468}, - dictWord{8, 0, 446}, - dictWord{9, 0, 637}, - dictWord{10, 0, 717}, - dictWord{11, 0, 738}, - dictWord{ - 140, - 0, - 514, - }, - dictWord{132, 0, 293}, - dictWord{11, 10, 337}, - dictWord{142, 10, 303}, - dictWord{136, 11, 285}, - dictWord{5, 0, 17}, - dictWord{6, 0, 371}, - dictWord{ - 9, - 0, - 528, - }, - dictWord{12, 0, 364}, - dictWord{132, 11, 254}, - dictWord{5, 10, 77}, - dictWord{7, 10, 1455}, - dictWord{10, 10, 843}, - dictWord{147, 10, 73}, - dictWord{ - 150, - 0, - 5, - }, - dictWord{132, 10, 458}, - dictWord{6, 11, 12}, - dictWord{7, 11, 1219}, - dictWord{145, 11, 73}, - dictWord{135, 10, 1420}, - dictWord{6, 10, 109}, - dictWord{138, 10, 382}, - dictWord{135, 11, 125}, - dictWord{6, 10, 330}, - dictWord{7, 10, 1084}, - dictWord{139, 10, 142}, - dictWord{6, 11, 369}, - dictWord{ - 6, - 11, - 502, - }, - dictWord{7, 11, 1036}, - dictWord{8, 11, 348}, - dictWord{9, 11, 452}, - dictWord{10, 11, 26}, - dictWord{11, 11, 224}, - dictWord{11, 11, 387}, - dictWord{ - 11, - 11, - 772, - }, - dictWord{12, 11, 95}, - dictWord{12, 11, 629}, - dictWord{13, 11, 195}, - dictWord{13, 11, 207}, - dictWord{13, 11, 241}, - dictWord{14, 11, 260}, - dictWord{ - 14, - 11, - 270, - }, - dictWord{143, 11, 140}, - dictWord{132, 11, 269}, - dictWord{5, 11, 480}, - dictWord{7, 11, 532}, - dictWord{7, 11, 1197}, - dictWord{7, 11, 1358}, - dictWord{8, 11, 291}, - dictWord{11, 11, 349}, - dictWord{142, 11, 396}, - dictWord{150, 0, 48}, - dictWord{10, 0, 601}, - dictWord{13, 0, 353}, - dictWord{141, 0, 376}, - dictWord{5, 0, 779}, - dictWord{5, 0, 807}, - dictWord{6, 0, 1655}, - dictWord{134, 0, 1676}, - dictWord{142, 11, 223}, - dictWord{4, 0, 196}, - dictWord{5, 0, 558}, - dictWord{133, 0, 949}, - dictWord{148, 11, 15}, - dictWord{135, 11, 1764}, - dictWord{134, 0, 1322}, - dictWord{132, 0, 752}, - dictWord{139, 0, 737}, - dictWord{ - 135, - 11, - 657, - }, - dictWord{136, 11, 533}, - dictWord{135, 0, 412}, - dictWord{4, 0, 227}, - dictWord{5, 0, 159}, - dictWord{5, 0, 409}, - dictWord{7, 0, 80}, - dictWord{8, 0, 556}, - dictWord{10, 0, 479}, - dictWord{12, 0, 418}, - dictWord{14, 0, 50}, - dictWord{14, 0, 123}, - dictWord{14, 0, 192}, - dictWord{14, 0, 249}, - dictWord{14, 0, 295}, - dictWord{143, 0, 27}, - dictWord{7, 0, 1470}, - dictWord{8, 0, 66}, - dictWord{8, 0, 137}, - dictWord{8, 0, 761}, - dictWord{9, 0, 638}, - dictWord{11, 0, 80}, - dictWord{11, 0, 212}, - dictWord{11, 0, 368}, - dictWord{11, 0, 418}, - dictWord{12, 0, 8}, - dictWord{13, 0, 15}, - dictWord{16, 0, 61}, - dictWord{17, 0, 59}, - dictWord{19, 0, 28}, - dictWord{ - 148, - 0, - 84, - }, - dictWord{135, 10, 1985}, - dictWord{4, 11, 211}, - dictWord{4, 11, 332}, - dictWord{5, 11, 335}, - dictWord{6, 11, 238}, - dictWord{7, 11, 269}, - dictWord{ - 7, - 11, - 811, - }, - dictWord{7, 11, 1797}, - dictWord{8, 10, 122}, - dictWord{8, 11, 836}, - dictWord{9, 11, 507}, - dictWord{141, 11, 242}, - dictWord{6, 0, 683}, - dictWord{ - 134, - 0, - 1252, - }, - dictWord{4, 0, 873}, - dictWord{132, 10, 234}, - dictWord{134, 0, 835}, - dictWord{6, 0, 38}, - dictWord{7, 0, 1220}, - dictWord{8, 0, 185}, - dictWord{8, 0, 256}, - dictWord{9, 0, 22}, - dictWord{9, 0, 331}, - dictWord{10, 0, 738}, - dictWord{11, 0, 205}, - dictWord{11, 0, 540}, - dictWord{11, 0, 746}, - dictWord{13, 0, 465}, - dictWord{ - 14, - 0, - 88, - }, - dictWord{142, 0, 194}, - dictWord{138, 0, 986}, - dictWord{5, 11, 1009}, - dictWord{12, 11, 582}, - dictWord{146, 11, 131}, - dictWord{4, 0, 159}, - dictWord{ - 6, - 0, - 115, - }, - dictWord{7, 0, 252}, - dictWord{7, 0, 257}, - dictWord{7, 0, 1928}, - dictWord{8, 0, 69}, - dictWord{9, 0, 384}, - dictWord{10, 0, 91}, - dictWord{10, 0, 615}, - dictWord{ - 12, - 0, - 375, - }, - dictWord{14, 0, 235}, - dictWord{18, 0, 117}, - dictWord{147, 0, 123}, - dictWord{133, 0, 911}, - dictWord{136, 0, 278}, - dictWord{5, 10, 430}, - dictWord{ - 5, - 10, - 932, - }, - dictWord{6, 10, 131}, - dictWord{7, 10, 417}, - dictWord{9, 10, 522}, - dictWord{11, 10, 314}, - dictWord{141, 10, 390}, - dictWord{14, 10, 149}, - dictWord{14, 10, 399}, - dictWord{143, 10, 57}, - dictWord{4, 0, 151}, - dictWord{7, 0, 1567}, - dictWord{136, 0, 749}, - dictWord{5, 11, 228}, - dictWord{6, 11, 203}, - dictWord{ - 7, - 11, - 156, - }, - dictWord{8, 11, 347}, - dictWord{137, 11, 265}, - dictWord{132, 10, 507}, - dictWord{10, 0, 989}, - dictWord{140, 0, 956}, - dictWord{133, 0, 990}, - dictWord{5, 0, 194}, - dictWord{6, 0, 927}, - dictWord{7, 0, 1662}, - dictWord{9, 0, 90}, - dictWord{140, 0, 564}, - dictWord{4, 10, 343}, - dictWord{133, 10, 511}, - dictWord{133, 0, 425}, - dictWord{7, 10, 455}, - dictWord{138, 10, 591}, - dictWord{4, 0, 774}, - dictWord{7, 11, 476}, - dictWord{7, 11, 1592}, - dictWord{138, 11, 87}, - dictWord{5, 0, 971}, - dictWord{135, 10, 1381}, - dictWord{5, 11, 318}, - dictWord{147, 11, 121}, - dictWord{5, 11, 291}, - dictWord{7, 11, 765}, - dictWord{9, 11, 389}, - dictWord{140, 11, 548}, - dictWord{134, 10, 575}, - dictWord{4, 0, 827}, - dictWord{12, 0, 646}, - dictWord{12, 0, 705}, - dictWord{12, 0, 712}, - dictWord{140, 0, 714}, - dictWord{139, 0, 752}, - dictWord{137, 0, 662}, - dictWord{5, 0, 72}, - dictWord{6, 0, 264}, - dictWord{7, 0, 21}, - dictWord{7, 0, 46}, - dictWord{7, 0, 2013}, - dictWord{ - 8, - 0, - 215, - }, - dictWord{8, 0, 513}, - dictWord{10, 0, 266}, - dictWord{139, 0, 22}, - dictWord{139, 11, 522}, - dictWord{6, 0, 239}, - dictWord{7, 0, 118}, - dictWord{10, 0, 95}, - dictWord{11, 0, 603}, - dictWord{13, 0, 443}, - dictWord{14, 0, 160}, - dictWord{143, 0, 4}, - dictWord{6, 0, 431}, - dictWord{134, 0, 669}, - dictWord{7, 10, 1127}, - dictWord{ - 7, - 10, - 1572, - }, - dictWord{10, 10, 297}, - dictWord{10, 10, 422}, - dictWord{11, 10, 764}, - dictWord{11, 10, 810}, - dictWord{12, 10, 264}, - dictWord{13, 10, 102}, - dictWord{13, 10, 300}, - dictWord{13, 10, 484}, - dictWord{14, 10, 147}, - dictWord{14, 10, 229}, - dictWord{17, 10, 71}, - dictWord{18, 10, 118}, - dictWord{ - 147, - 10, - 120, - }, - dictWord{5, 0, 874}, - dictWord{6, 0, 1677}, - dictWord{15, 0, 0}, - dictWord{10, 11, 525}, - dictWord{139, 11, 82}, - dictWord{6, 0, 65}, - dictWord{7, 0, 939}, - dictWord{ - 7, - 0, - 1172, - }, - dictWord{7, 0, 1671}, - dictWord{9, 0, 540}, - dictWord{10, 0, 696}, - dictWord{11, 0, 265}, - dictWord{11, 0, 732}, - dictWord{11, 0, 928}, - dictWord{ - 11, - 0, - 937, - }, - dictWord{141, 0, 438}, - dictWord{134, 0, 1350}, - dictWord{136, 11, 547}, - dictWord{132, 11, 422}, - dictWord{5, 11, 355}, - dictWord{145, 11, 0}, - dictWord{137, 11, 905}, - dictWord{5, 0, 682}, - dictWord{135, 0, 1887}, - dictWord{132, 0, 809}, - dictWord{4, 0, 696}, - dictWord{133, 11, 865}, - dictWord{6, 0, 1074}, - dictWord{6, 0, 1472}, - dictWord{14, 10, 35}, - dictWord{142, 10, 191}, - dictWord{5, 11, 914}, - dictWord{134, 11, 1625}, - dictWord{133, 11, 234}, - dictWord{ - 135, - 11, - 1383, - }, - dictWord{137, 11, 780}, - dictWord{132, 10, 125}, - dictWord{4, 0, 726}, - dictWord{133, 0, 630}, - dictWord{8, 0, 802}, - dictWord{136, 0, 838}, - dictWord{132, 10, 721}, - dictWord{6, 0, 1337}, - dictWord{7, 0, 776}, - dictWord{19, 0, 56}, - dictWord{136, 10, 145}, - dictWord{132, 0, 970}, - dictWord{7, 10, 792}, - dictWord{8, 10, 147}, - dictWord{10, 10, 821}, - dictWord{139, 10, 1021}, - dictWord{139, 10, 970}, - dictWord{8, 0, 940}, - dictWord{137, 0, 797}, - dictWord{ - 135, - 11, - 1312, - }, - dictWord{9, 0, 248}, - dictWord{10, 0, 400}, - dictWord{7, 11, 816}, - dictWord{7, 11, 1241}, - dictWord{7, 10, 1999}, - dictWord{9, 11, 283}, - dictWord{ - 9, - 11, - 520, - }, - dictWord{10, 11, 213}, - dictWord{10, 11, 307}, - dictWord{10, 11, 463}, - dictWord{10, 11, 671}, - dictWord{10, 11, 746}, - dictWord{11, 11, 401}, - dictWord{ - 11, - 11, - 794, - }, - dictWord{12, 11, 517}, - dictWord{18, 11, 107}, - dictWord{147, 11, 115}, - dictWord{6, 0, 1951}, - dictWord{134, 0, 2040}, - dictWord{ - 135, - 11, - 339, - }, - dictWord{13, 0, 41}, - dictWord{15, 0, 93}, - dictWord{5, 10, 168}, - dictWord{5, 10, 930}, - dictWord{8, 10, 74}, - dictWord{9, 10, 623}, - dictWord{12, 10, 500}, - dictWord{140, 10, 579}, - dictWord{6, 0, 118}, - dictWord{7, 0, 215}, - dictWord{7, 0, 1521}, - dictWord{140, 0, 11}, - dictWord{6, 10, 220}, - dictWord{7, 10, 1101}, - dictWord{141, 10, 105}, - dictWord{6, 11, 421}, - dictWord{7, 11, 61}, - dictWord{7, 11, 1540}, - dictWord{10, 11, 11}, - dictWord{138, 11, 501}, - dictWord{7, 0, 615}, - dictWord{138, 0, 251}, - dictWord{140, 11, 631}, - dictWord{135, 0, 1044}, - dictWord{6, 10, 19}, - dictWord{7, 10, 1413}, - dictWord{139, 10, 428}, - dictWord{ - 133, - 0, - 225, - }, - dictWord{7, 10, 96}, - dictWord{8, 10, 401}, - dictWord{8, 10, 703}, - dictWord{137, 10, 896}, - dictWord{145, 10, 116}, - dictWord{6, 11, 102}, - dictWord{ - 7, - 11, - 72, - }, - dictWord{15, 11, 142}, - dictWord{147, 11, 67}, - dictWord{7, 10, 1961}, - dictWord{7, 10, 1965}, - dictWord{8, 10, 702}, - dictWord{136, 10, 750}, - dictWord{ - 7, - 10, - 2030, - }, - dictWord{8, 10, 150}, - dictWord{8, 10, 737}, - dictWord{12, 10, 366}, - dictWord{151, 11, 30}, - dictWord{4, 0, 370}, - dictWord{5, 0, 756}, - dictWord{ - 7, - 0, - 1326, - }, - dictWord{135, 11, 823}, - dictWord{8, 10, 800}, - dictWord{9, 10, 148}, - dictWord{9, 10, 872}, - dictWord{9, 10, 890}, - dictWord{11, 10, 309}, - dictWord{ - 11, - 10, - 1001, - }, - dictWord{13, 10, 267}, - dictWord{141, 10, 323}, - dictWord{6, 0, 1662}, - dictWord{7, 0, 48}, - dictWord{8, 0, 771}, - dictWord{10, 0, 116}, - dictWord{ - 13, - 0, - 104, - }, - dictWord{14, 0, 105}, - dictWord{14, 0, 184}, - dictWord{15, 0, 168}, - dictWord{19, 0, 92}, - dictWord{148, 0, 68}, - dictWord{10, 0, 209}, - dictWord{ - 135, - 11, - 1870, - }, - dictWord{7, 11, 68}, - dictWord{8, 11, 48}, - dictWord{8, 11, 88}, - dictWord{8, 11, 582}, - dictWord{8, 11, 681}, - dictWord{9, 11, 373}, - dictWord{9, 11, 864}, - dictWord{11, 11, 157}, - dictWord{11, 11, 336}, - dictWord{11, 11, 843}, - dictWord{148, 11, 27}, - dictWord{134, 0, 930}, - dictWord{4, 11, 88}, - dictWord{5, 11, 137}, - dictWord{5, 11, 174}, - dictWord{5, 11, 777}, - dictWord{6, 11, 1664}, - dictWord{6, 11, 1725}, - dictWord{7, 11, 77}, - dictWord{7, 11, 426}, - dictWord{7, 11, 1317}, - dictWord{7, 11, 1355}, - dictWord{8, 11, 126}, - dictWord{8, 11, 563}, - dictWord{9, 11, 523}, - dictWord{9, 11, 750}, - dictWord{10, 11, 310}, - dictWord{10, 11, 836}, - dictWord{11, 11, 42}, - dictWord{11, 11, 318}, - dictWord{11, 11, 731}, - dictWord{12, 11, 68}, - dictWord{12, 11, 92}, - dictWord{12, 11, 507}, - dictWord{12, 11, 692}, - dictWord{13, 11, 81}, - dictWord{13, 11, 238}, - dictWord{13, 11, 374}, - dictWord{18, 11, 138}, - dictWord{19, 11, 78}, - dictWord{19, 11, 111}, - dictWord{20, 11, 55}, - dictWord{20, 11, 77}, - dictWord{148, 11, 92}, - dictWord{4, 11, 938}, - dictWord{135, 11, 1831}, - dictWord{5, 10, 547}, - dictWord{7, 10, 424}, - dictWord{ - 8, - 11, - 617, - }, - dictWord{138, 11, 351}, - dictWord{6, 0, 1286}, - dictWord{6, 11, 1668}, - dictWord{7, 11, 1499}, - dictWord{8, 11, 117}, - dictWord{9, 11, 314}, - dictWord{ - 138, - 11, - 174, - }, - dictWord{6, 0, 759}, - dictWord{6, 0, 894}, - dictWord{7, 11, 707}, - dictWord{139, 11, 563}, - dictWord{4, 0, 120}, - dictWord{135, 0, 1894}, - dictWord{ - 9, - 0, - 385, - }, - dictWord{149, 0, 17}, - dictWord{138, 0, 429}, - dictWord{133, 11, 403}, - dictWord{5, 0, 820}, - dictWord{135, 0, 931}, - dictWord{10, 0, 199}, - dictWord{ - 133, - 10, - 133, - }, - dictWord{6, 0, 151}, - dictWord{6, 0, 1675}, - dictWord{7, 0, 383}, - dictWord{151, 0, 10}, - dictWord{6, 0, 761}, - dictWord{136, 10, 187}, - dictWord{ - 8, - 0, - 365, - }, - dictWord{10, 10, 0}, - dictWord{10, 10, 818}, - dictWord{139, 10, 988}, - dictWord{4, 11, 44}, - dictWord{5, 11, 311}, - dictWord{6, 11, 156}, - dictWord{ - 7, - 11, - 639, - }, - dictWord{7, 11, 762}, - dictWord{7, 11, 1827}, - dictWord{9, 11, 8}, - dictWord{9, 11, 462}, - dictWord{148, 11, 83}, - dictWord{4, 11, 346}, - dictWord{7, 11, 115}, - dictWord{9, 11, 180}, - dictWord{9, 11, 456}, - dictWord{138, 11, 363}, - dictWord{136, 10, 685}, - dictWord{7, 0, 1086}, - dictWord{145, 0, 46}, - dictWord{ - 6, - 0, - 1624, - }, - dictWord{11, 0, 11}, - dictWord{12, 0, 422}, - dictWord{13, 0, 444}, - dictWord{142, 0, 360}, - dictWord{6, 0, 1020}, - dictWord{6, 0, 1260}, - dictWord{ - 134, - 0, - 1589, - }, - dictWord{4, 0, 43}, - dictWord{5, 0, 344}, - dictWord{5, 0, 357}, - dictWord{14, 0, 472}, - dictWord{150, 0, 58}, - dictWord{6, 0, 1864}, - dictWord{6, 0, 1866}, - dictWord{6, 0, 1868}, - dictWord{6, 0, 1869}, - dictWord{6, 0, 1874}, - dictWord{6, 0, 1877}, - dictWord{6, 0, 1903}, - dictWord{6, 0, 1911}, - dictWord{9, 0, 920}, - dictWord{ - 9, - 0, - 921, - }, - dictWord{9, 0, 924}, - dictWord{9, 0, 946}, - dictWord{9, 0, 959}, - dictWord{9, 0, 963}, - dictWord{9, 0, 970}, - dictWord{9, 0, 997}, - dictWord{9, 0, 1008}, - dictWord{ - 9, - 0, - 1017, - }, - dictWord{12, 0, 795}, - dictWord{12, 0, 797}, - dictWord{12, 0, 798}, - dictWord{12, 0, 800}, - dictWord{12, 0, 803}, - dictWord{12, 0, 811}, - dictWord{ - 12, - 0, - 820, - }, - dictWord{12, 0, 821}, - dictWord{12, 0, 839}, - dictWord{12, 0, 841}, - dictWord{12, 0, 848}, - dictWord{12, 0, 911}, - dictWord{12, 0, 921}, - dictWord{12, 0, 922}, - dictWord{12, 0, 925}, - dictWord{12, 0, 937}, - dictWord{12, 0, 944}, - dictWord{12, 0, 945}, - dictWord{12, 0, 953}, - dictWord{15, 0, 184}, - dictWord{15, 0, 191}, - dictWord{15, 0, 199}, - dictWord{15, 0, 237}, - dictWord{15, 0, 240}, - dictWord{15, 0, 243}, - dictWord{15, 0, 246}, - dictWord{18, 0, 203}, - dictWord{21, 0, 40}, - dictWord{ - 21, - 0, - 52, - }, - dictWord{21, 0, 57}, - dictWord{24, 0, 23}, - dictWord{24, 0, 28}, - dictWord{152, 0, 30}, - dictWord{134, 0, 725}, - dictWord{145, 11, 58}, - dictWord{133, 0, 888}, - dictWord{137, 10, 874}, - dictWord{4, 0, 711}, - dictWord{8, 10, 774}, - dictWord{10, 10, 670}, - dictWord{140, 10, 51}, - dictWord{144, 11, 40}, - dictWord{ - 6, - 11, - 185, - }, - dictWord{7, 11, 1899}, - dictWord{139, 11, 673}, - dictWord{137, 10, 701}, - dictWord{137, 0, 440}, - dictWord{4, 11, 327}, - dictWord{5, 11, 478}, - dictWord{ - 7, - 11, - 1332, - }, - dictWord{8, 11, 753}, - dictWord{140, 11, 227}, - dictWord{4, 10, 127}, - dictWord{5, 10, 350}, - dictWord{6, 10, 356}, - dictWord{8, 10, 426}, - dictWord{ - 9, - 10, - 572, - }, - dictWord{10, 10, 247}, - dictWord{139, 10, 312}, - dictWord{5, 11, 1020}, - dictWord{133, 11, 1022}, - dictWord{4, 11, 103}, - dictWord{ - 133, - 11, - 401, - }, - dictWord{6, 0, 1913}, - dictWord{6, 0, 1926}, - dictWord{6, 0, 1959}, - dictWord{9, 0, 914}, - dictWord{9, 0, 939}, - dictWord{9, 0, 952}, - dictWord{9, 0, 979}, - dictWord{ - 9, - 0, - 990, - }, - dictWord{9, 0, 998}, - dictWord{9, 0, 1003}, - dictWord{9, 0, 1023}, - dictWord{12, 0, 827}, - dictWord{12, 0, 834}, - dictWord{12, 0, 845}, - dictWord{ - 12, - 0, - 912, - }, - dictWord{12, 0, 935}, - dictWord{12, 0, 951}, - dictWord{15, 0, 172}, - dictWord{15, 0, 174}, - dictWord{18, 0, 198}, - dictWord{149, 0, 63}, - dictWord{5, 0, 958}, - dictWord{5, 0, 987}, - dictWord{4, 11, 499}, - dictWord{135, 11, 1421}, - dictWord{7, 0, 885}, - dictWord{6, 10, 59}, - dictWord{6, 10, 1762}, - dictWord{9, 10, 603}, - dictWord{141, 10, 397}, - dictWord{10, 11, 62}, - dictWord{141, 11, 164}, - dictWord{4, 0, 847}, - dictWord{135, 0, 326}, - dictWord{11, 0, 276}, - dictWord{142, 0, 293}, - dictWord{4, 0, 65}, - dictWord{5, 0, 479}, - dictWord{5, 0, 1004}, - dictWord{7, 0, 1913}, - dictWord{8, 0, 317}, - dictWord{9, 0, 302}, - dictWord{10, 0, 612}, - dictWord{ - 13, - 0, - 22, - }, - dictWord{132, 11, 96}, - dictWord{4, 0, 261}, - dictWord{135, 0, 510}, - dictWord{135, 0, 1514}, - dictWord{6, 10, 111}, - dictWord{7, 10, 4}, - dictWord{8, 10, 163}, - dictWord{8, 10, 776}, - dictWord{138, 10, 566}, - dictWord{4, 0, 291}, - dictWord{9, 0, 515}, - dictWord{12, 0, 152}, - dictWord{12, 0, 443}, - dictWord{13, 0, 392}, - dictWord{142, 0, 357}, - dictWord{7, 11, 399}, - dictWord{135, 11, 1492}, - dictWord{4, 0, 589}, - dictWord{139, 0, 282}, - dictWord{6, 11, 563}, - dictWord{ - 135, - 10, - 1994, - }, - dictWord{5, 10, 297}, - dictWord{135, 10, 1038}, - dictWord{4, 0, 130}, - dictWord{7, 0, 843}, - dictWord{135, 0, 1562}, - dictWord{5, 0, 42}, - dictWord{ - 5, - 0, - 879, - }, - dictWord{7, 0, 245}, - dictWord{7, 0, 324}, - dictWord{7, 0, 1532}, - dictWord{11, 0, 463}, - dictWord{11, 0, 472}, - dictWord{13, 0, 363}, - dictWord{144, 0, 52}, - dictWord{4, 0, 134}, - dictWord{133, 0, 372}, - dictWord{133, 0, 680}, - dictWord{136, 10, 363}, - dictWord{6, 0, 1997}, - dictWord{8, 0, 935}, - dictWord{136, 0, 977}, - dictWord{4, 0, 810}, - dictWord{135, 0, 1634}, - dictWord{135, 10, 1675}, - dictWord{7, 0, 1390}, - dictWord{4, 11, 910}, - dictWord{133, 11, 832}, - dictWord{ - 7, - 10, - 808, - }, - dictWord{8, 11, 266}, - dictWord{139, 11, 578}, - dictWord{132, 0, 644}, - dictWord{4, 0, 982}, - dictWord{138, 0, 867}, - dictWord{132, 10, 280}, - dictWord{ - 135, - 0, - 540, - }, - dictWord{140, 10, 54}, - dictWord{135, 0, 123}, - dictWord{134, 0, 1978}, - dictWord{4, 10, 421}, - dictWord{133, 10, 548}, - dictWord{6, 0, 623}, - dictWord{136, 0, 789}, - dictWord{4, 0, 908}, - dictWord{5, 0, 359}, - dictWord{5, 0, 508}, - dictWord{6, 0, 1723}, - dictWord{7, 0, 343}, - dictWord{7, 0, 1996}, - dictWord{ - 135, - 0, - 2026, - }, - dictWord{134, 0, 1220}, - dictWord{4, 0, 341}, - dictWord{135, 0, 480}, - dictWord{6, 10, 254}, - dictWord{9, 10, 109}, - dictWord{138, 10, 103}, - dictWord{ - 134, - 0, - 888, - }, - dictWord{8, 11, 528}, - dictWord{137, 11, 348}, - dictWord{7, 0, 1995}, - dictWord{8, 0, 299}, - dictWord{11, 0, 890}, - dictWord{12, 0, 674}, - dictWord{ - 4, - 11, - 20, - }, - dictWord{133, 11, 616}, - dictWord{135, 11, 1094}, - dictWord{134, 10, 1630}, - dictWord{4, 0, 238}, - dictWord{5, 0, 503}, - dictWord{6, 0, 179}, - dictWord{ - 7, - 0, - 2003, - }, - dictWord{8, 0, 381}, - dictWord{8, 0, 473}, - dictWord{9, 0, 149}, - dictWord{10, 0, 788}, - dictWord{15, 0, 45}, - dictWord{15, 0, 86}, - dictWord{20, 0, 110}, - dictWord{150, 0, 57}, - dictWord{133, 10, 671}, - dictWord{4, 11, 26}, - dictWord{5, 11, 429}, - dictWord{6, 11, 245}, - dictWord{7, 11, 704}, - dictWord{7, 11, 1379}, - dictWord{135, 11, 1474}, - dictWord{4, 0, 121}, - dictWord{5, 0, 156}, - dictWord{5, 0, 349}, - dictWord{9, 0, 431}, - dictWord{10, 0, 605}, - dictWord{142, 0, 342}, - dictWord{ - 7, - 11, - 943, - }, - dictWord{139, 11, 614}, - dictWord{132, 10, 889}, - dictWord{132, 11, 621}, - dictWord{7, 10, 1382}, - dictWord{7, 11, 1382}, - dictWord{ - 135, - 10, - 1910, - }, - dictWord{132, 10, 627}, - dictWord{133, 10, 775}, - dictWord{133, 11, 542}, - dictWord{133, 11, 868}, - dictWord{136, 11, 433}, - dictWord{6, 0, 1373}, - dictWord{7, 0, 1011}, - dictWord{11, 10, 362}, - dictWord{11, 10, 948}, - dictWord{140, 10, 388}, - dictWord{6, 0, 80}, - dictWord{7, 0, 173}, - dictWord{9, 0, 547}, - dictWord{10, 0, 730}, - dictWord{14, 0, 18}, - dictWord{22, 0, 39}, - dictWord{135, 11, 1495}, - dictWord{6, 0, 1694}, - dictWord{135, 0, 1974}, - dictWord{140, 0, 196}, - dictWord{4, 0, 923}, - dictWord{6, 0, 507}, - dictWord{6, 0, 1711}, - dictWord{7, 10, 451}, - dictWord{8, 10, 389}, - dictWord{12, 10, 490}, - dictWord{13, 10, 16}, - dictWord{ - 13, - 10, - 215, - }, - dictWord{13, 10, 351}, - dictWord{18, 10, 132}, - dictWord{147, 10, 125}, - dictWord{6, 0, 646}, - dictWord{134, 0, 1047}, - dictWord{135, 10, 841}, - dictWord{136, 10, 566}, - dictWord{6, 0, 1611}, - dictWord{135, 0, 1214}, - dictWord{139, 0, 926}, - dictWord{132, 11, 525}, - dictWord{132, 0, 595}, - dictWord{ - 5, - 0, - 240, - }, - dictWord{6, 0, 459}, - dictWord{7, 0, 12}, - dictWord{7, 0, 114}, - dictWord{7, 0, 949}, - dictWord{7, 0, 1753}, - dictWord{7, 0, 1805}, - dictWord{8, 0, 658}, - dictWord{ - 9, - 0, - 1, - }, - dictWord{11, 0, 959}, - dictWord{141, 0, 446}, - dictWord{5, 10, 912}, - dictWord{134, 10, 1695}, - dictWord{132, 0, 446}, - dictWord{7, 11, 62}, - dictWord{ - 12, - 11, - 45, - }, - dictWord{147, 11, 112}, - dictWord{5, 10, 236}, - dictWord{6, 10, 572}, - dictWord{8, 10, 492}, - dictWord{11, 10, 618}, - dictWord{144, 10, 56}, - dictWord{ - 5, - 10, - 190, - }, - dictWord{136, 10, 318}, - dictWord{135, 10, 1376}, - dictWord{4, 11, 223}, - dictWord{6, 11, 359}, - dictWord{11, 11, 3}, - dictWord{13, 11, 108}, - dictWord{ - 14, - 11, - 89, - }, - dictWord{144, 11, 22}, - dictWord{132, 11, 647}, - dictWord{134, 0, 490}, - dictWord{134, 0, 491}, - dictWord{134, 0, 1584}, - dictWord{ - 135, - 11, - 685, - }, - dictWord{138, 11, 220}, - dictWord{7, 0, 250}, - dictWord{136, 0, 507}, - dictWord{132, 0, 158}, - dictWord{4, 0, 140}, - dictWord{7, 0, 362}, - dictWord{8, 0, 209}, - dictWord{9, 0, 10}, - dictWord{9, 0, 160}, - dictWord{9, 0, 503}, - dictWord{9, 0, 614}, - dictWord{10, 0, 689}, - dictWord{11, 0, 327}, - dictWord{11, 0, 553}, - dictWord{ - 11, - 0, - 725, - }, - dictWord{11, 0, 767}, - dictWord{12, 0, 252}, - dictWord{12, 0, 583}, - dictWord{13, 0, 192}, - dictWord{14, 0, 269}, - dictWord{14, 0, 356}, - dictWord{148, 0, 50}, - dictWord{19, 0, 1}, - dictWord{19, 0, 26}, - dictWord{150, 0, 9}, - dictWord{132, 11, 109}, - dictWord{6, 0, 228}, - dictWord{7, 0, 1341}, - dictWord{9, 0, 408}, - dictWord{ - 138, - 0, - 343, - }, - dictWord{4, 0, 373}, - dictWord{5, 0, 283}, - dictWord{6, 0, 480}, - dictWord{7, 0, 609}, - dictWord{10, 0, 860}, - dictWord{138, 0, 878}, - dictWord{6, 0, 779}, - dictWord{134, 0, 1209}, - dictWord{4, 0, 557}, - dictWord{7, 11, 263}, - dictWord{7, 11, 628}, - dictWord{136, 11, 349}, - dictWord{132, 0, 548}, - dictWord{7, 0, 197}, - dictWord{8, 0, 142}, - dictWord{8, 0, 325}, - dictWord{9, 0, 150}, - dictWord{9, 0, 596}, - dictWord{10, 0, 350}, - dictWord{10, 0, 353}, - dictWord{11, 0, 74}, - dictWord{ - 11, - 0, - 315, - }, - dictWord{12, 0, 662}, - dictWord{12, 0, 681}, - dictWord{14, 0, 423}, - dictWord{143, 0, 141}, - dictWord{4, 11, 40}, - dictWord{10, 11, 67}, - dictWord{ - 11, - 11, - 117, - }, - dictWord{11, 11, 768}, - dictWord{139, 11, 935}, - dictWord{7, 11, 992}, - dictWord{8, 11, 301}, - dictWord{9, 11, 722}, - dictWord{12, 11, 63}, - dictWord{ - 13, - 11, - 29, - }, - dictWord{14, 11, 161}, - dictWord{143, 11, 18}, - dictWord{6, 0, 1490}, - dictWord{138, 11, 532}, - dictWord{5, 0, 580}, - dictWord{7, 0, 378}, - dictWord{ - 7, - 0, - 674, - }, - dictWord{7, 0, 1424}, - dictWord{15, 0, 83}, - dictWord{16, 0, 11}, - dictWord{15, 11, 83}, - dictWord{144, 11, 11}, - dictWord{6, 0, 1057}, - dictWord{6, 0, 1335}, - dictWord{10, 0, 316}, - dictWord{7, 10, 85}, - dictWord{7, 10, 247}, - dictWord{8, 10, 585}, - dictWord{138, 10, 163}, - dictWord{4, 0, 169}, - dictWord{5, 0, 83}, - dictWord{ - 6, - 0, - 399, - }, - dictWord{6, 0, 579}, - dictWord{6, 0, 1513}, - dictWord{7, 0, 692}, - dictWord{7, 0, 846}, - dictWord{7, 0, 1015}, - dictWord{7, 0, 1799}, - dictWord{8, 0, 403}, - dictWord{9, 0, 394}, - dictWord{10, 0, 133}, - dictWord{12, 0, 4}, - dictWord{12, 0, 297}, - dictWord{12, 0, 452}, - dictWord{16, 0, 81}, - dictWord{18, 0, 25}, - dictWord{21, 0, 14}, - dictWord{22, 0, 12}, - dictWord{151, 0, 18}, - dictWord{134, 0, 1106}, - dictWord{7, 0, 1546}, - dictWord{11, 0, 299}, - dictWord{142, 0, 407}, - dictWord{134, 0, 1192}, - dictWord{132, 0, 177}, - dictWord{5, 0, 411}, - dictWord{135, 0, 653}, - dictWord{7, 0, 439}, - dictWord{10, 0, 727}, - dictWord{11, 0, 260}, - dictWord{139, 0, 684}, - dictWord{138, 10, 145}, - dictWord{147, 10, 83}, - dictWord{5, 0, 208}, - dictWord{7, 0, 753}, - dictWord{135, 0, 1528}, - dictWord{137, 11, 617}, - dictWord{ - 135, - 10, - 1922, - }, - dictWord{135, 11, 825}, - dictWord{11, 0, 422}, - dictWord{13, 0, 389}, - dictWord{4, 10, 124}, - dictWord{10, 10, 457}, - dictWord{11, 10, 121}, - dictWord{ - 11, - 10, - 169, - }, - dictWord{11, 10, 870}, - dictWord{12, 10, 214}, - dictWord{14, 10, 187}, - dictWord{143, 10, 77}, - dictWord{11, 0, 615}, - dictWord{15, 0, 58}, - dictWord{ - 11, - 11, - 615, - }, - dictWord{143, 11, 58}, - dictWord{9, 0, 618}, - dictWord{138, 0, 482}, - dictWord{6, 0, 1952}, - dictWord{6, 0, 1970}, - dictWord{142, 0, 505}, - dictWord{ - 7, - 10, - 1193, - }, - dictWord{135, 11, 1838}, - dictWord{133, 0, 242}, - dictWord{135, 10, 1333}, - dictWord{6, 10, 107}, - dictWord{7, 10, 638}, - dictWord{ - 7, - 10, - 1632, - }, - dictWord{137, 10, 396}, - dictWord{133, 0, 953}, - dictWord{5, 10, 370}, - dictWord{134, 10, 1756}, - dictWord{5, 11, 28}, - dictWord{6, 11, 204}, - dictWord{ - 10, - 11, - 320, - }, - dictWord{10, 11, 583}, - dictWord{13, 11, 502}, - dictWord{14, 11, 72}, - dictWord{14, 11, 274}, - dictWord{14, 11, 312}, - dictWord{14, 11, 344}, - dictWord{15, 11, 159}, - dictWord{16, 11, 62}, - dictWord{16, 11, 69}, - dictWord{17, 11, 30}, - dictWord{18, 11, 42}, - dictWord{18, 11, 53}, - dictWord{18, 11, 84}, - dictWord{18, 11, 140}, - dictWord{19, 11, 68}, - dictWord{19, 11, 85}, - dictWord{20, 11, 5}, - dictWord{20, 11, 45}, - dictWord{20, 11, 101}, - dictWord{22, 11, 7}, - dictWord{ - 150, - 11, - 20, - }, - dictWord{4, 11, 558}, - dictWord{6, 11, 390}, - dictWord{7, 11, 162}, - dictWord{7, 11, 689}, - dictWord{9, 11, 360}, - dictWord{138, 11, 653}, - dictWord{ - 11, - 0, - 802, - }, - dictWord{141, 0, 67}, - dictWord{133, 10, 204}, - dictWord{133, 0, 290}, - dictWord{5, 10, 970}, - dictWord{134, 10, 1706}, - dictWord{132, 0, 380}, - dictWord{5, 0, 52}, - dictWord{7, 0, 277}, - dictWord{9, 0, 368}, - dictWord{139, 0, 791}, - dictWord{5, 11, 856}, - dictWord{6, 11, 1672}, - dictWord{6, 11, 1757}, - dictWord{ - 6, - 11, - 1781, - }, - dictWord{7, 11, 1150}, - dictWord{7, 11, 1425}, - dictWord{7, 11, 1453}, - dictWord{140, 11, 513}, - dictWord{5, 11, 92}, - dictWord{7, 10, 3}, - dictWord{ - 10, - 11, - 736, - }, - dictWord{140, 11, 102}, - dictWord{4, 0, 112}, - dictWord{5, 0, 653}, - dictWord{5, 10, 483}, - dictWord{5, 10, 685}, - dictWord{6, 10, 489}, - dictWord{ - 7, - 10, - 1204, - }, - dictWord{136, 10, 394}, - dictWord{132, 10, 921}, - dictWord{6, 0, 1028}, - dictWord{133, 10, 1007}, - dictWord{5, 11, 590}, - dictWord{9, 11, 213}, - dictWord{145, 11, 91}, - dictWord{135, 10, 1696}, - dictWord{10, 0, 138}, - dictWord{139, 0, 476}, - dictWord{5, 0, 725}, - dictWord{5, 0, 727}, - dictWord{135, 0, 1811}, - dictWord{4, 0, 979}, - dictWord{6, 0, 1821}, - dictWord{6, 0, 1838}, - dictWord{8, 0, 876}, - dictWord{8, 0, 883}, - dictWord{8, 0, 889}, - dictWord{8, 0, 893}, - dictWord{ - 8, - 0, - 895, - }, - dictWord{10, 0, 934}, - dictWord{12, 0, 720}, - dictWord{14, 0, 459}, - dictWord{148, 0, 123}, - dictWord{135, 11, 551}, - dictWord{4, 0, 38}, - dictWord{6, 0, 435}, - dictWord{7, 0, 307}, - dictWord{7, 0, 999}, - dictWord{7, 0, 1481}, - dictWord{7, 0, 1732}, - dictWord{7, 0, 1738}, - dictWord{8, 0, 371}, - dictWord{9, 0, 414}, - dictWord{ - 11, - 0, - 316, - }, - dictWord{12, 0, 52}, - dictWord{13, 0, 420}, - dictWord{147, 0, 100}, - dictWord{135, 0, 1296}, - dictWord{132, 10, 712}, - dictWord{134, 10, 1629}, - dictWord{133, 0, 723}, - dictWord{134, 0, 651}, - dictWord{136, 11, 191}, - dictWord{9, 11, 791}, - dictWord{10, 11, 93}, - dictWord{11, 11, 301}, - dictWord{16, 11, 13}, - dictWord{17, 11, 23}, - dictWord{18, 11, 135}, - dictWord{19, 11, 12}, - dictWord{20, 11, 1}, - dictWord{20, 11, 12}, - dictWord{148, 11, 14}, - dictWord{136, 11, 503}, - dictWord{6, 11, 466}, - dictWord{135, 11, 671}, - dictWord{6, 0, 1200}, - dictWord{134, 0, 1330}, - dictWord{135, 0, 1255}, - dictWord{134, 0, 986}, - dictWord{ - 5, - 0, - 109, - }, - dictWord{6, 0, 1784}, - dictWord{7, 0, 1895}, - dictWord{12, 0, 296}, - dictWord{140, 0, 302}, - dictWord{135, 11, 983}, - dictWord{133, 10, 485}, - dictWord{ - 134, - 0, - 660, - }, - dictWord{134, 0, 800}, - dictWord{5, 0, 216}, - dictWord{5, 0, 294}, - dictWord{6, 0, 591}, - dictWord{7, 0, 1879}, - dictWord{9, 0, 141}, - dictWord{9, 0, 270}, - dictWord{9, 0, 679}, - dictWord{10, 0, 159}, - dictWord{11, 0, 197}, - dictWord{11, 0, 438}, - dictWord{12, 0, 538}, - dictWord{12, 0, 559}, - dictWord{14, 0, 144}, - dictWord{ - 14, - 0, - 167, - }, - dictWord{15, 0, 67}, - dictWord{4, 10, 285}, - dictWord{5, 10, 317}, - dictWord{6, 10, 301}, - dictWord{7, 10, 7}, - dictWord{8, 10, 153}, - dictWord{ - 10, - 10, - 766, - }, - dictWord{11, 10, 468}, - dictWord{12, 10, 467}, - dictWord{141, 10, 143}, - dictWord{136, 0, 945}, - dictWord{134, 0, 1090}, - dictWord{137, 0, 81}, - dictWord{12, 11, 468}, - dictWord{19, 11, 96}, - dictWord{148, 11, 24}, - dictWord{134, 0, 391}, - dictWord{138, 11, 241}, - dictWord{7, 0, 322}, - dictWord{136, 0, 249}, - dictWord{134, 0, 1412}, - dictWord{135, 11, 795}, - dictWord{5, 0, 632}, - dictWord{138, 0, 526}, - dictWord{136, 10, 819}, - dictWord{6, 0, 144}, - dictWord{7, 0, 948}, - dictWord{7, 0, 1042}, - dictWord{8, 0, 235}, - dictWord{8, 0, 461}, - dictWord{9, 0, 453}, - dictWord{9, 0, 796}, - dictWord{10, 0, 354}, - dictWord{17, 0, 77}, - dictWord{ - 135, - 11, - 954, - }, - dictWord{139, 10, 917}, - dictWord{6, 0, 940}, - dictWord{134, 0, 1228}, - dictWord{4, 0, 362}, - dictWord{7, 0, 52}, - dictWord{135, 0, 303}, - dictWord{ - 6, - 11, - 549, - }, - dictWord{8, 11, 34}, - dictWord{8, 11, 283}, - dictWord{9, 11, 165}, - dictWord{138, 11, 475}, - dictWord{7, 11, 370}, - dictWord{7, 11, 1007}, - dictWord{ - 7, - 11, - 1177, - }, - dictWord{135, 11, 1565}, - dictWord{5, 11, 652}, - dictWord{5, 11, 701}, - dictWord{135, 11, 449}, - dictWord{5, 0, 196}, - dictWord{6, 0, 486}, - dictWord{ - 7, - 0, - 212, - }, - dictWord{8, 0, 309}, - dictWord{136, 0, 346}, - dictWord{6, 10, 1719}, - dictWord{6, 10, 1735}, - dictWord{7, 10, 2016}, - dictWord{7, 10, 2020}, - dictWord{ - 8, - 10, - 837, - }, - dictWord{137, 10, 852}, - dictWord{6, 11, 159}, - dictWord{6, 11, 364}, - dictWord{7, 11, 516}, - dictWord{7, 11, 1439}, - dictWord{137, 11, 518}, - dictWord{135, 0, 1912}, - dictWord{135, 0, 1290}, - dictWord{132, 0, 686}, - dictWord{141, 11, 151}, - dictWord{138, 0, 625}, - dictWord{136, 0, 706}, - dictWord{ - 138, - 10, - 568, - }, - dictWord{139, 0, 412}, - dictWord{4, 0, 30}, - dictWord{133, 0, 43}, - dictWord{8, 10, 67}, - dictWord{138, 10, 419}, - dictWord{7, 0, 967}, - dictWord{ - 141, - 0, - 11, - }, - dictWord{12, 0, 758}, - dictWord{14, 0, 441}, - dictWord{142, 0, 462}, - dictWord{10, 10, 657}, - dictWord{14, 10, 297}, - dictWord{142, 10, 361}, - dictWord{ - 139, - 10, - 729, - }, - dictWord{4, 0, 220}, - dictWord{135, 0, 1535}, - dictWord{7, 11, 501}, - dictWord{9, 11, 111}, - dictWord{10, 11, 141}, - dictWord{11, 11, 332}, - dictWord{ - 13, - 11, - 43, - }, - dictWord{13, 11, 429}, - dictWord{14, 11, 130}, - dictWord{14, 11, 415}, - dictWord{145, 11, 102}, - dictWord{4, 0, 950}, - dictWord{6, 0, 1859}, - dictWord{ - 7, - 0, - 11, - }, - dictWord{8, 0, 873}, - dictWord{12, 0, 710}, - dictWord{12, 0, 718}, - dictWord{12, 0, 748}, - dictWord{12, 0, 765}, - dictWord{148, 0, 124}, - dictWord{ - 5, - 11, - 149, - }, - dictWord{5, 11, 935}, - dictWord{136, 11, 233}, - dictWord{142, 11, 291}, - dictWord{134, 0, 1579}, - dictWord{7, 0, 890}, - dictWord{8, 10, 51}, - dictWord{ - 9, - 10, - 868, - }, - dictWord{10, 10, 833}, - dictWord{12, 10, 481}, - dictWord{12, 10, 570}, - dictWord{148, 10, 106}, - dictWord{141, 0, 2}, - dictWord{132, 10, 445}, - dictWord{136, 11, 801}, - dictWord{135, 0, 1774}, - dictWord{7, 0, 1725}, - dictWord{138, 0, 393}, - dictWord{5, 0, 263}, - dictWord{134, 0, 414}, - dictWord{ - 132, - 11, - 322, - }, - dictWord{133, 10, 239}, - dictWord{7, 0, 456}, - dictWord{7, 10, 1990}, - dictWord{8, 10, 130}, - dictWord{139, 10, 720}, - dictWord{137, 0, 818}, - dictWord{ - 5, - 10, - 123, - }, - dictWord{6, 10, 530}, - dictWord{7, 10, 348}, - dictWord{135, 10, 1419}, - dictWord{135, 10, 2024}, - dictWord{6, 0, 178}, - dictWord{6, 0, 1750}, - dictWord{8, 0, 251}, - dictWord{9, 0, 690}, - dictWord{10, 0, 155}, - dictWord{10, 0, 196}, - dictWord{10, 0, 373}, - dictWord{11, 0, 698}, - dictWord{13, 0, 155}, - dictWord{ - 148, - 0, - 93, - }, - dictWord{5, 0, 97}, - dictWord{137, 0, 393}, - dictWord{134, 0, 674}, - dictWord{11, 0, 223}, - dictWord{140, 0, 168}, - dictWord{132, 10, 210}, - dictWord{ - 139, - 11, - 464, - }, - dictWord{6, 0, 1639}, - dictWord{146, 0, 159}, - dictWord{139, 11, 2}, - dictWord{7, 0, 934}, - dictWord{8, 0, 647}, - dictWord{17, 0, 97}, - dictWord{19, 0, 59}, - dictWord{150, 0, 2}, - dictWord{132, 0, 191}, - dictWord{5, 0, 165}, - dictWord{9, 0, 346}, - dictWord{10, 0, 655}, - dictWord{11, 0, 885}, - dictWord{4, 10, 430}, - dictWord{135, 11, 357}, - dictWord{133, 0, 877}, - dictWord{5, 10, 213}, - dictWord{133, 11, 406}, - dictWord{8, 0, 128}, - dictWord{139, 0, 179}, - dictWord{6, 11, 69}, - dictWord{135, 11, 117}, - dictWord{135, 0, 1297}, - dictWord{11, 11, 43}, - dictWord{13, 11, 72}, - dictWord{141, 11, 142}, - dictWord{135, 11, 1830}, - dictWord{ - 142, - 0, - 164, - }, - dictWord{5, 0, 57}, - dictWord{6, 0, 101}, - dictWord{6, 0, 586}, - dictWord{6, 0, 1663}, - dictWord{7, 0, 132}, - dictWord{7, 0, 1154}, - dictWord{7, 0, 1415}, - dictWord{7, 0, 1507}, - dictWord{12, 0, 493}, - dictWord{15, 0, 105}, - dictWord{151, 0, 15}, - dictWord{5, 0, 459}, - dictWord{7, 0, 1073}, - dictWord{8, 0, 241}, - dictWord{ - 136, - 0, - 334, - }, - dictWord{133, 11, 826}, - dictWord{133, 10, 108}, - dictWord{5, 10, 219}, - dictWord{10, 11, 132}, - dictWord{11, 11, 191}, - dictWord{11, 11, 358}, - dictWord{139, 11, 460}, - dictWord{6, 0, 324}, - dictWord{6, 0, 520}, - dictWord{7, 0, 338}, - dictWord{7, 0, 1729}, - dictWord{8, 0, 228}, - dictWord{139, 0, 750}, - dictWord{ - 21, - 0, - 30, - }, - dictWord{22, 0, 53}, - dictWord{4, 10, 193}, - dictWord{5, 10, 916}, - dictWord{7, 10, 364}, - dictWord{10, 10, 398}, - dictWord{10, 10, 726}, - dictWord{ - 11, - 10, - 317, - }, - dictWord{11, 10, 626}, - dictWord{12, 10, 142}, - dictWord{12, 10, 288}, - dictWord{12, 10, 678}, - dictWord{13, 10, 313}, - dictWord{15, 10, 113}, - dictWord{146, 10, 114}, - dictWord{6, 11, 110}, - dictWord{135, 11, 1681}, - dictWord{135, 0, 910}, - dictWord{6, 10, 241}, - dictWord{7, 10, 907}, - dictWord{8, 10, 832}, - dictWord{9, 10, 342}, - dictWord{10, 10, 729}, - dictWord{11, 10, 284}, - dictWord{11, 10, 445}, - dictWord{11, 10, 651}, - dictWord{11, 10, 863}, - dictWord{ - 13, - 10, - 398, - }, - dictWord{146, 10, 99}, - dictWord{7, 0, 705}, - dictWord{9, 0, 734}, - dictWord{5, 11, 1000}, - dictWord{7, 11, 733}, - dictWord{137, 11, 583}, - dictWord{4, 0, 73}, - dictWord{6, 0, 612}, - dictWord{7, 0, 927}, - dictWord{7, 0, 1822}, - dictWord{8, 0, 217}, - dictWord{9, 0, 765}, - dictWord{9, 0, 766}, - dictWord{10, 0, 408}, - dictWord{ - 11, - 0, - 51, - }, - dictWord{11, 0, 793}, - dictWord{12, 0, 266}, - dictWord{15, 0, 158}, - dictWord{20, 0, 89}, - dictWord{150, 0, 32}, - dictWord{7, 0, 1330}, - dictWord{4, 11, 297}, - dictWord{6, 11, 529}, - dictWord{7, 11, 152}, - dictWord{7, 11, 713}, - dictWord{7, 11, 1845}, - dictWord{8, 11, 710}, - dictWord{8, 11, 717}, - dictWord{140, 11, 639}, - dictWord{5, 0, 389}, - dictWord{136, 0, 636}, - dictWord{134, 0, 1409}, - dictWord{4, 10, 562}, - dictWord{9, 10, 254}, - dictWord{139, 10, 879}, - dictWord{134, 0, 893}, - dictWord{132, 10, 786}, - dictWord{4, 11, 520}, - dictWord{135, 11, 575}, - dictWord{136, 0, 21}, - dictWord{140, 0, 721}, - dictWord{136, 0, 959}, - dictWord{ - 7, - 11, - 1428, - }, - dictWord{7, 11, 1640}, - dictWord{9, 11, 169}, - dictWord{9, 11, 182}, - dictWord{9, 11, 367}, - dictWord{9, 11, 478}, - dictWord{9, 11, 506}, - dictWord{ - 9, - 11, - 551, - }, - dictWord{9, 11, 648}, - dictWord{9, 11, 651}, - dictWord{9, 11, 697}, - dictWord{9, 11, 705}, - dictWord{9, 11, 725}, - dictWord{9, 11, 787}, - dictWord{9, 11, 794}, - dictWord{10, 11, 198}, - dictWord{10, 11, 214}, - dictWord{10, 11, 267}, - dictWord{10, 11, 275}, - dictWord{10, 11, 456}, - dictWord{10, 11, 551}, - dictWord{ - 10, - 11, - 561, - }, - dictWord{10, 11, 613}, - dictWord{10, 11, 627}, - dictWord{10, 11, 668}, - dictWord{10, 11, 675}, - dictWord{10, 11, 691}, - dictWord{10, 11, 695}, - dictWord{10, 11, 707}, - dictWord{10, 11, 715}, - dictWord{11, 11, 183}, - dictWord{11, 11, 201}, - dictWord{11, 11, 244}, - dictWord{11, 11, 262}, - dictWord{ - 11, - 11, - 352, - }, - dictWord{11, 11, 439}, - dictWord{11, 11, 493}, - dictWord{11, 11, 572}, - dictWord{11, 11, 591}, - dictWord{11, 11, 608}, - dictWord{11, 11, 611}, - dictWord{ - 11, - 11, - 646, - }, - dictWord{11, 11, 674}, - dictWord{11, 11, 711}, - dictWord{11, 11, 751}, - dictWord{11, 11, 761}, - dictWord{11, 11, 776}, - dictWord{11, 11, 785}, - dictWord{11, 11, 850}, - dictWord{11, 11, 853}, - dictWord{11, 11, 862}, - dictWord{11, 11, 865}, - dictWord{11, 11, 868}, - dictWord{11, 11, 898}, - dictWord{ - 11, - 11, - 902, - }, - dictWord{11, 11, 903}, - dictWord{11, 11, 910}, - dictWord{11, 11, 932}, - dictWord{11, 11, 942}, - dictWord{11, 11, 957}, - dictWord{11, 11, 967}, - dictWord{ - 11, - 11, - 972, - }, - dictWord{12, 11, 148}, - dictWord{12, 11, 195}, - dictWord{12, 11, 220}, - dictWord{12, 11, 237}, - dictWord{12, 11, 318}, - dictWord{12, 11, 339}, - dictWord{12, 11, 393}, - dictWord{12, 11, 445}, - dictWord{12, 11, 450}, - dictWord{12, 11, 474}, - dictWord{12, 11, 509}, - dictWord{12, 11, 533}, - dictWord{ - 12, - 11, - 591, - }, - dictWord{12, 11, 594}, - dictWord{12, 11, 597}, - dictWord{12, 11, 621}, - dictWord{12, 11, 633}, - dictWord{12, 11, 642}, - dictWord{13, 11, 59}, - dictWord{ - 13, - 11, - 60, - }, - dictWord{13, 11, 145}, - dictWord{13, 11, 239}, - dictWord{13, 11, 250}, - dictWord{13, 11, 273}, - dictWord{13, 11, 329}, - dictWord{13, 11, 344}, - dictWord{13, 11, 365}, - dictWord{13, 11, 372}, - dictWord{13, 11, 387}, - dictWord{13, 11, 403}, - dictWord{13, 11, 414}, - dictWord{13, 11, 456}, - dictWord{ - 13, - 11, - 478, - }, - dictWord{13, 11, 483}, - dictWord{13, 11, 489}, - dictWord{14, 11, 55}, - dictWord{14, 11, 57}, - dictWord{14, 11, 81}, - dictWord{14, 11, 90}, - dictWord{ - 14, - 11, - 148, - }, - dictWord{14, 11, 239}, - dictWord{14, 11, 266}, - dictWord{14, 11, 321}, - dictWord{14, 11, 326}, - dictWord{14, 11, 327}, - dictWord{14, 11, 330}, - dictWord{ - 14, - 11, - 347, - }, - dictWord{14, 11, 355}, - dictWord{14, 11, 401}, - dictWord{14, 11, 411}, - dictWord{14, 11, 414}, - dictWord{14, 11, 416}, - dictWord{14, 11, 420}, - dictWord{15, 11, 61}, - dictWord{15, 11, 74}, - dictWord{15, 11, 87}, - dictWord{15, 11, 88}, - dictWord{15, 11, 94}, - dictWord{15, 11, 96}, - dictWord{15, 11, 116}, - dictWord{15, 11, 149}, - dictWord{15, 11, 154}, - dictWord{16, 11, 50}, - dictWord{16, 11, 63}, - dictWord{16, 11, 73}, - dictWord{17, 11, 2}, - dictWord{17, 11, 66}, - dictWord{ - 17, - 11, - 92, - }, - dictWord{17, 11, 103}, - dictWord{17, 11, 112}, - dictWord{18, 11, 50}, - dictWord{18, 11, 54}, - dictWord{18, 11, 82}, - dictWord{18, 11, 86}, - dictWord{ - 18, - 11, - 90, - }, - dictWord{18, 11, 111}, - dictWord{18, 11, 115}, - dictWord{18, 11, 156}, - dictWord{19, 11, 40}, - dictWord{19, 11, 79}, - dictWord{20, 11, 78}, - dictWord{ - 149, - 11, - 22, - }, - dictWord{137, 11, 170}, - dictWord{134, 0, 1433}, - dictWord{135, 11, 1307}, - dictWord{139, 11, 411}, - dictWord{5, 0, 189}, - dictWord{7, 0, 442}, - dictWord{7, 0, 443}, - dictWord{8, 0, 281}, - dictWord{12, 0, 174}, - dictWord{141, 0, 261}, - dictWord{6, 10, 216}, - dictWord{7, 10, 901}, - dictWord{7, 10, 1343}, - dictWord{136, 10, 493}, - dictWord{5, 11, 397}, - dictWord{6, 11, 154}, - dictWord{7, 10, 341}, - dictWord{7, 11, 676}, - dictWord{8, 11, 443}, - dictWord{8, 11, 609}, - dictWord{ - 9, - 11, - 24, - }, - dictWord{9, 11, 325}, - dictWord{10, 11, 35}, - dictWord{11, 10, 219}, - dictWord{11, 11, 535}, - dictWord{11, 11, 672}, - dictWord{11, 11, 1018}, - dictWord{12, 11, 637}, - dictWord{144, 11, 30}, - dictWord{6, 0, 2}, - dictWord{7, 0, 191}, - dictWord{7, 0, 446}, - dictWord{7, 0, 1262}, - dictWord{7, 0, 1737}, - dictWord{8, 0, 22}, - dictWord{8, 0, 270}, - dictWord{8, 0, 612}, - dictWord{9, 0, 4}, - dictWord{9, 0, 312}, - dictWord{9, 0, 436}, - dictWord{9, 0, 626}, - dictWord{10, 0, 216}, - dictWord{10, 0, 311}, - dictWord{10, 0, 521}, - dictWord{10, 0, 623}, - dictWord{11, 0, 72}, - dictWord{11, 0, 330}, - dictWord{11, 0, 455}, - dictWord{12, 0, 321}, - dictWord{12, 0, 504}, - dictWord{12, 0, 530}, - dictWord{12, 0, 543}, - dictWord{13, 0, 17}, - dictWord{13, 0, 156}, - dictWord{13, 0, 334}, - dictWord{14, 0, 131}, - dictWord{17, 0, 60}, - dictWord{ - 148, - 0, - 64, - }, - dictWord{7, 0, 354}, - dictWord{10, 0, 410}, - dictWord{139, 0, 815}, - dictWord{139, 10, 130}, - dictWord{7, 10, 1734}, - dictWord{137, 11, 631}, - dictWord{ - 12, - 0, - 425, - }, - dictWord{15, 0, 112}, - dictWord{10, 10, 115}, - dictWord{11, 10, 420}, - dictWord{13, 10, 404}, - dictWord{14, 10, 346}, - dictWord{143, 10, 54}, - dictWord{ - 6, - 0, - 60, - }, - dictWord{6, 0, 166}, - dictWord{7, 0, 374}, - dictWord{7, 0, 670}, - dictWord{7, 0, 1327}, - dictWord{8, 0, 411}, - dictWord{8, 0, 435}, - dictWord{9, 0, 653}, - dictWord{ - 9, - 0, - 740, - }, - dictWord{10, 0, 385}, - dictWord{11, 0, 222}, - dictWord{11, 0, 324}, - dictWord{11, 0, 829}, - dictWord{140, 0, 611}, - dictWord{7, 0, 1611}, - dictWord{ - 13, - 0, - 14, - }, - dictWord{15, 0, 44}, - dictWord{19, 0, 13}, - dictWord{148, 0, 76}, - dictWord{133, 11, 981}, - dictWord{4, 11, 56}, - dictWord{7, 11, 1791}, - dictWord{8, 11, 607}, - dictWord{8, 11, 651}, - dictWord{11, 11, 465}, - dictWord{11, 11, 835}, - dictWord{12, 11, 337}, - dictWord{141, 11, 480}, - dictWord{6, 0, 1478}, - dictWord{ - 5, - 10, - 1011, - }, - dictWord{136, 10, 701}, - dictWord{139, 0, 596}, - dictWord{5, 0, 206}, - dictWord{134, 0, 398}, - dictWord{4, 10, 54}, - dictWord{5, 10, 666}, - dictWord{ - 7, - 10, - 1039, - }, - dictWord{7, 10, 1130}, - dictWord{9, 10, 195}, - dictWord{138, 10, 302}, - dictWord{7, 0, 50}, - dictWord{9, 11, 158}, - dictWord{138, 11, 411}, - dictWord{ - 135, - 11, - 1120, - }, - dictWord{6, 0, 517}, - dictWord{7, 0, 1159}, - dictWord{10, 0, 621}, - dictWord{11, 0, 192}, - dictWord{134, 10, 1669}, - dictWord{4, 0, 592}, - dictWord{ - 6, - 0, - 600, - }, - dictWord{135, 0, 1653}, - dictWord{10, 0, 223}, - dictWord{139, 0, 645}, - dictWord{136, 11, 139}, - dictWord{7, 0, 64}, - dictWord{136, 0, 245}, - dictWord{ - 142, - 0, - 278, - }, - dictWord{6, 11, 622}, - dictWord{135, 11, 1030}, - dictWord{136, 0, 604}, - dictWord{134, 0, 1502}, - dictWord{138, 0, 265}, - dictWord{ - 141, - 11, - 168, - }, - dictWord{7, 0, 1763}, - dictWord{140, 0, 310}, - dictWord{7, 10, 798}, - dictWord{139, 11, 719}, - dictWord{7, 11, 160}, - dictWord{10, 11, 624}, - dictWord{ - 142, - 11, - 279, - }, - dictWord{132, 11, 363}, - dictWord{7, 10, 122}, - dictWord{9, 10, 259}, - dictWord{10, 10, 84}, - dictWord{11, 10, 470}, - dictWord{12, 10, 541}, - dictWord{141, 10, 379}, - dictWord{5, 0, 129}, - dictWord{6, 0, 61}, - dictWord{135, 0, 947}, - dictWord{134, 0, 1356}, - dictWord{135, 11, 1191}, - dictWord{13, 0, 505}, - dictWord{141, 0, 506}, - dictWord{11, 0, 1000}, - dictWord{5, 10, 82}, - dictWord{5, 10, 131}, - dictWord{7, 10, 1755}, - dictWord{8, 10, 31}, - dictWord{9, 10, 168}, - dictWord{9, 10, 764}, - dictWord{139, 10, 869}, - dictWord{134, 0, 966}, - dictWord{134, 10, 605}, - dictWord{134, 11, 292}, - dictWord{5, 11, 177}, - dictWord{ - 6, - 11, - 616, - }, - dictWord{7, 11, 827}, - dictWord{9, 11, 525}, - dictWord{138, 11, 656}, - dictWord{135, 11, 1486}, - dictWord{138, 11, 31}, - dictWord{5, 10, 278}, - dictWord{137, 10, 68}, - dictWord{4, 10, 163}, - dictWord{5, 10, 201}, - dictWord{5, 10, 307}, - dictWord{5, 10, 310}, - dictWord{6, 10, 335}, - dictWord{7, 10, 284}, - dictWord{136, 10, 165}, - dictWord{6, 0, 839}, - dictWord{135, 10, 1660}, - dictWord{136, 10, 781}, - dictWord{6, 10, 33}, - dictWord{135, 10, 1244}, - dictWord{ - 133, - 0, - 637, - }, - dictWord{4, 11, 161}, - dictWord{133, 11, 631}, - dictWord{137, 0, 590}, - dictWord{7, 10, 1953}, - dictWord{136, 10, 720}, - dictWord{5, 0, 280}, - dictWord{ - 7, - 0, - 1226, - }, - dictWord{138, 10, 203}, - dictWord{134, 0, 1386}, - dictWord{5, 0, 281}, - dictWord{6, 0, 1026}, - dictWord{6, 10, 326}, - dictWord{7, 10, 677}, - dictWord{ - 137, - 10, - 425, - }, - dictWord{7, 11, 1557}, - dictWord{135, 11, 1684}, - dictWord{135, 0, 1064}, - dictWord{9, 11, 469}, - dictWord{9, 11, 709}, - dictWord{12, 11, 512}, - dictWord{14, 11, 65}, - dictWord{145, 11, 12}, - dictWord{134, 0, 917}, - dictWord{10, 11, 229}, - dictWord{11, 11, 73}, - dictWord{11, 11, 376}, - dictWord{ - 139, - 11, - 433, - }, - dictWord{7, 0, 555}, - dictWord{9, 0, 192}, - dictWord{13, 0, 30}, - dictWord{13, 0, 49}, - dictWord{15, 0, 150}, - dictWord{16, 0, 76}, - dictWord{20, 0, 52}, - dictWord{ - 7, - 10, - 1316, - }, - dictWord{7, 10, 1412}, - dictWord{7, 10, 1839}, - dictWord{9, 10, 589}, - dictWord{11, 10, 241}, - dictWord{11, 10, 676}, - dictWord{11, 10, 811}, - dictWord{11, 10, 891}, - dictWord{12, 10, 140}, - dictWord{12, 10, 346}, - dictWord{12, 10, 479}, - dictWord{13, 10, 381}, - dictWord{14, 10, 188}, - dictWord{ - 146, - 10, - 30, - }, - dictWord{149, 0, 15}, - dictWord{6, 0, 1882}, - dictWord{6, 0, 1883}, - dictWord{6, 0, 1897}, - dictWord{9, 0, 945}, - dictWord{9, 0, 1014}, - dictWord{9, 0, 1020}, - dictWord{12, 0, 823}, - dictWord{12, 0, 842}, - dictWord{12, 0, 866}, - dictWord{12, 0, 934}, - dictWord{15, 0, 242}, - dictWord{146, 0, 208}, - dictWord{6, 0, 965}, - dictWord{134, 0, 1499}, - dictWord{7, 0, 33}, - dictWord{7, 0, 120}, - dictWord{8, 0, 489}, - dictWord{9, 0, 319}, - dictWord{10, 0, 820}, - dictWord{11, 0, 1004}, - dictWord{ - 12, - 0, - 379, - }, - dictWord{12, 0, 679}, - dictWord{13, 0, 117}, - dictWord{13, 0, 412}, - dictWord{14, 0, 25}, - dictWord{15, 0, 52}, - dictWord{15, 0, 161}, - dictWord{16, 0, 47}, - dictWord{149, 0, 2}, - dictWord{6, 11, 558}, - dictWord{7, 11, 651}, - dictWord{8, 11, 421}, - dictWord{9, 11, 0}, - dictWord{138, 11, 34}, - dictWord{4, 0, 937}, - dictWord{ - 5, - 0, - 801, - }, - dictWord{7, 0, 473}, - dictWord{5, 10, 358}, - dictWord{7, 10, 1184}, - dictWord{10, 10, 662}, - dictWord{13, 10, 212}, - dictWord{13, 10, 304}, - dictWord{ - 13, - 10, - 333, - }, - dictWord{145, 10, 98}, - dictWord{132, 0, 877}, - dictWord{6, 0, 693}, - dictWord{134, 0, 824}, - dictWord{132, 0, 365}, - dictWord{7, 11, 1832}, - dictWord{ - 138, - 11, - 374, - }, - dictWord{5, 0, 7}, - dictWord{139, 0, 774}, - dictWord{4, 0, 734}, - dictWord{5, 0, 662}, - dictWord{134, 0, 430}, - dictWord{4, 0, 746}, - dictWord{ - 135, - 0, - 1090, - }, - dictWord{5, 0, 360}, - dictWord{8, 0, 237}, - dictWord{10, 0, 231}, - dictWord{147, 0, 124}, - dictWord{138, 11, 348}, - dictWord{6, 11, 6}, - dictWord{7, 11, 81}, - dictWord{7, 11, 771}, - dictWord{7, 11, 1731}, - dictWord{9, 11, 405}, - dictWord{138, 11, 421}, - dictWord{6, 0, 740}, - dictWord{137, 0, 822}, - dictWord{ - 133, - 10, - 946, - }, - dictWord{7, 0, 1485}, - dictWord{136, 0, 929}, - dictWord{7, 10, 411}, - dictWord{8, 10, 631}, - dictWord{9, 10, 323}, - dictWord{10, 10, 355}, - dictWord{ - 11, - 10, - 491, - }, - dictWord{12, 10, 143}, - dictWord{12, 10, 402}, - dictWord{13, 10, 73}, - dictWord{14, 10, 408}, - dictWord{15, 10, 107}, - dictWord{146, 10, 71}, - dictWord{ - 135, - 10, - 590, - }, - dictWord{5, 11, 881}, - dictWord{133, 11, 885}, - dictWord{150, 11, 25}, - dictWord{4, 0, 852}, - dictWord{5, 11, 142}, - dictWord{134, 11, 546}, - dictWord{7, 10, 1467}, - dictWord{8, 10, 328}, - dictWord{10, 10, 544}, - dictWord{11, 10, 955}, - dictWord{13, 10, 320}, - dictWord{145, 10, 83}, - dictWord{9, 0, 17}, - dictWord{10, 0, 291}, - dictWord{11, 10, 511}, - dictWord{13, 10, 394}, - dictWord{14, 10, 298}, - dictWord{14, 10, 318}, - dictWord{146, 10, 103}, - dictWord{5, 11, 466}, - dictWord{11, 11, 571}, - dictWord{12, 11, 198}, - dictWord{13, 11, 283}, - dictWord{14, 11, 186}, - dictWord{15, 11, 21}, - dictWord{143, 11, 103}, - dictWord{ - 134, - 0, - 1001, - }, - dictWord{4, 11, 185}, - dictWord{5, 11, 257}, - dictWord{5, 11, 839}, - dictWord{5, 11, 936}, - dictWord{7, 11, 171}, - dictWord{9, 11, 399}, - dictWord{ - 10, - 11, - 258, - }, - dictWord{10, 11, 395}, - dictWord{10, 11, 734}, - dictWord{11, 11, 1014}, - dictWord{12, 11, 23}, - dictWord{13, 11, 350}, - dictWord{14, 11, 150}, - dictWord{147, 11, 6}, - dictWord{143, 0, 35}, - dictWord{132, 0, 831}, - dictWord{5, 10, 835}, - dictWord{134, 10, 483}, - dictWord{4, 0, 277}, - dictWord{5, 0, 608}, - dictWord{ - 6, - 0, - 493, - }, - dictWord{7, 0, 457}, - dictWord{12, 0, 384}, - dictWord{7, 11, 404}, - dictWord{7, 11, 1377}, - dictWord{7, 11, 1430}, - dictWord{7, 11, 2017}, - dictWord{ - 8, - 11, - 149, - }, - dictWord{8, 11, 239}, - dictWord{8, 11, 512}, - dictWord{8, 11, 793}, - dictWord{8, 11, 818}, - dictWord{9, 11, 474}, - dictWord{9, 11, 595}, - dictWord{ - 10, - 11, - 122, - }, - dictWord{10, 11, 565}, - dictWord{10, 11, 649}, - dictWord{10, 11, 783}, - dictWord{11, 11, 239}, - dictWord{11, 11, 295}, - dictWord{11, 11, 447}, - dictWord{ - 11, - 11, - 528, - }, - dictWord{11, 11, 639}, - dictWord{11, 11, 800}, - dictWord{11, 11, 936}, - dictWord{12, 11, 25}, - dictWord{12, 11, 73}, - dictWord{12, 11, 77}, - dictWord{12, 11, 157}, - dictWord{12, 11, 316}, - dictWord{12, 11, 390}, - dictWord{12, 11, 391}, - dictWord{12, 11, 394}, - dictWord{12, 11, 395}, - dictWord{ - 12, - 11, - 478, - }, - dictWord{12, 11, 503}, - dictWord{12, 11, 592}, - dictWord{12, 11, 680}, - dictWord{13, 11, 50}, - dictWord{13, 11, 53}, - dictWord{13, 11, 132}, - dictWord{ - 13, - 11, - 198, - }, - dictWord{13, 11, 275}, - dictWord{13, 11, 322}, - dictWord{13, 11, 415}, - dictWord{14, 11, 71}, - dictWord{14, 11, 257}, - dictWord{14, 11, 395}, - dictWord{15, 11, 71}, - dictWord{15, 11, 136}, - dictWord{17, 11, 123}, - dictWord{18, 11, 93}, - dictWord{147, 11, 58}, - dictWord{134, 0, 1351}, - dictWord{7, 0, 27}, - dictWord{135, 0, 316}, - dictWord{136, 11, 712}, - dictWord{136, 0, 984}, - dictWord{133, 0, 552}, - dictWord{137, 0, 264}, - dictWord{132, 0, 401}, - dictWord{6, 0, 710}, - dictWord{6, 0, 1111}, - dictWord{134, 0, 1343}, - dictWord{134, 0, 1211}, - dictWord{9, 0, 543}, - dictWord{10, 0, 524}, - dictWord{11, 0, 108}, - dictWord{11, 0, 653}, - dictWord{12, 0, 524}, - dictWord{13, 0, 123}, - dictWord{14, 0, 252}, - dictWord{16, 0, 18}, - dictWord{19, 0, 38}, - dictWord{20, 0, 26}, - dictWord{20, 0, 65}, - dictWord{ - 21, - 0, - 3, - }, - dictWord{151, 0, 11}, - dictWord{4, 0, 205}, - dictWord{5, 0, 623}, - dictWord{7, 0, 104}, - dictWord{8, 0, 519}, - dictWord{137, 0, 716}, - dictWord{132, 10, 677}, - dictWord{4, 11, 377}, - dictWord{152, 11, 13}, - dictWord{135, 11, 1673}, - dictWord{7, 0, 579}, - dictWord{9, 0, 41}, - dictWord{9, 0, 244}, - dictWord{9, 0, 669}, - dictWord{ - 10, - 0, - 5, - }, - dictWord{11, 0, 861}, - dictWord{11, 0, 951}, - dictWord{139, 0, 980}, - dictWord{132, 0, 717}, - dictWord{136, 0, 1011}, - dictWord{132, 0, 805}, - dictWord{ - 4, - 11, - 180, - }, - dictWord{135, 11, 1906}, - dictWord{132, 10, 777}, - dictWord{132, 10, 331}, - dictWord{132, 0, 489}, - dictWord{6, 0, 1024}, - dictWord{4, 11, 491}, - dictWord{133, 10, 747}, - dictWord{135, 11, 1182}, - dictWord{4, 11, 171}, - dictWord{138, 11, 234}, - dictWord{4, 11, 586}, - dictWord{7, 11, 1186}, - dictWord{ - 138, - 11, - 631, - }, - dictWord{135, 0, 892}, - dictWord{135, 11, 336}, - dictWord{9, 11, 931}, - dictWord{10, 11, 334}, - dictWord{148, 11, 71}, - dictWord{137, 0, 473}, - dictWord{6, 0, 864}, - dictWord{12, 0, 659}, - dictWord{139, 11, 926}, - dictWord{7, 0, 819}, - dictWord{9, 0, 26}, - dictWord{9, 0, 392}, - dictWord{10, 0, 152}, - dictWord{ - 10, - 0, - 226, - }, - dictWord{11, 0, 19}, - dictWord{12, 0, 276}, - dictWord{12, 0, 426}, - dictWord{12, 0, 589}, - dictWord{13, 0, 460}, - dictWord{15, 0, 97}, - dictWord{19, 0, 48}, - dictWord{148, 0, 104}, - dictWord{135, 0, 51}, - dictWord{133, 10, 326}, - dictWord{4, 10, 691}, - dictWord{146, 10, 16}, - dictWord{9, 0, 130}, - dictWord{11, 0, 765}, - dictWord{10, 10, 680}, - dictWord{10, 10, 793}, - dictWord{141, 10, 357}, - dictWord{133, 11, 765}, - dictWord{8, 0, 229}, - dictWord{6, 10, 32}, - dictWord{7, 10, 385}, - dictWord{7, 10, 757}, - dictWord{7, 10, 1916}, - dictWord{8, 10, 94}, - dictWord{8, 10, 711}, - dictWord{9, 10, 541}, - dictWord{10, 10, 162}, - dictWord{10, 10, 795}, - dictWord{11, 10, 989}, - dictWord{11, 10, 1010}, - dictWord{12, 10, 14}, - dictWord{142, 10, 308}, - dictWord{7, 11, 474}, - dictWord{137, 11, 578}, - dictWord{ - 132, - 0, - 674, - }, - dictWord{132, 0, 770}, - dictWord{5, 0, 79}, - dictWord{7, 0, 1027}, - dictWord{7, 0, 1477}, - dictWord{139, 0, 52}, - dictWord{133, 11, 424}, - dictWord{ - 134, - 0, - 1666, - }, - dictWord{6, 0, 409}, - dictWord{6, 10, 349}, - dictWord{6, 10, 1682}, - dictWord{7, 10, 1252}, - dictWord{8, 10, 112}, - dictWord{8, 11, 714}, - dictWord{ - 9, - 10, - 435, - }, - dictWord{9, 10, 668}, - dictWord{10, 10, 290}, - dictWord{10, 10, 319}, - dictWord{10, 10, 815}, - dictWord{11, 10, 180}, - dictWord{11, 10, 837}, - dictWord{ - 12, - 10, - 240, - }, - dictWord{13, 10, 152}, - dictWord{13, 10, 219}, - dictWord{142, 10, 158}, - dictWord{5, 0, 789}, - dictWord{134, 0, 195}, - dictWord{4, 0, 251}, - dictWord{ - 4, - 0, - 688, - }, - dictWord{7, 0, 513}, - dictWord{135, 0, 1284}, - dictWord{132, 10, 581}, - dictWord{9, 11, 420}, - dictWord{10, 11, 269}, - dictWord{10, 11, 285}, - dictWord{10, 11, 576}, - dictWord{11, 11, 397}, - dictWord{13, 11, 175}, - dictWord{145, 11, 90}, - dictWord{6, 10, 126}, - dictWord{7, 10, 573}, - dictWord{8, 10, 397}, - dictWord{142, 10, 44}, - dictWord{132, 11, 429}, - dictWord{133, 0, 889}, - dictWord{4, 0, 160}, - dictWord{5, 0, 330}, - dictWord{7, 0, 1434}, - dictWord{136, 0, 174}, - dictWord{7, 11, 18}, - dictWord{7, 11, 699}, - dictWord{7, 11, 1966}, - dictWord{8, 11, 752}, - dictWord{9, 11, 273}, - dictWord{9, 11, 412}, - dictWord{9, 11, 703}, - dictWord{ - 10, - 11, - 71, - }, - dictWord{10, 11, 427}, - dictWord{10, 11, 508}, - dictWord{146, 11, 97}, - dictWord{6, 0, 872}, - dictWord{134, 0, 899}, - dictWord{133, 10, 926}, - dictWord{134, 0, 1126}, - dictWord{134, 0, 918}, - dictWord{4, 11, 53}, - dictWord{5, 11, 186}, - dictWord{135, 11, 752}, - dictWord{7, 0, 268}, - dictWord{136, 0, 569}, - dictWord{134, 0, 1224}, - dictWord{6, 0, 1361}, - dictWord{7, 10, 1232}, - dictWord{137, 10, 531}, - dictWord{8, 11, 575}, - dictWord{10, 11, 289}, - dictWord{ - 139, - 11, - 319, - }, - dictWord{133, 10, 670}, - dictWord{132, 11, 675}, - dictWord{133, 0, 374}, - dictWord{135, 10, 1957}, - dictWord{133, 0, 731}, - dictWord{11, 0, 190}, - dictWord{15, 0, 49}, - dictWord{11, 11, 190}, - dictWord{143, 11, 49}, - dictWord{4, 0, 626}, - dictWord{5, 0, 506}, - dictWord{5, 0, 642}, - dictWord{6, 0, 425}, - dictWord{ - 10, - 0, - 202, - }, - dictWord{139, 0, 141}, - dictWord{137, 0, 444}, - dictWord{7, 10, 242}, - dictWord{135, 10, 1942}, - dictWord{6, 11, 209}, - dictWord{8, 11, 468}, - dictWord{ - 9, - 11, - 210, - }, - dictWord{11, 11, 36}, - dictWord{12, 11, 28}, - dictWord{12, 11, 630}, - dictWord{13, 11, 21}, - dictWord{13, 11, 349}, - dictWord{14, 11, 7}, - dictWord{ - 145, - 11, - 13, - }, - dictWord{4, 11, 342}, - dictWord{135, 11, 1179}, - dictWord{5, 10, 834}, - dictWord{7, 10, 1202}, - dictWord{8, 10, 14}, - dictWord{9, 10, 481}, - dictWord{ - 137, - 10, - 880, - }, - dictWord{4, 11, 928}, - dictWord{133, 11, 910}, - dictWord{4, 11, 318}, - dictWord{4, 11, 496}, - dictWord{7, 11, 856}, - dictWord{139, 11, 654}, - dictWord{136, 0, 835}, - dictWord{7, 0, 1526}, - dictWord{138, 10, 465}, - dictWord{151, 0, 17}, - dictWord{135, 0, 477}, - dictWord{4, 10, 357}, - dictWord{6, 10, 172}, - dictWord{7, 10, 143}, - dictWord{137, 10, 413}, - dictWord{6, 0, 1374}, - dictWord{138, 0, 994}, - dictWord{18, 0, 76}, - dictWord{132, 10, 590}, - dictWord{7, 0, 287}, - dictWord{8, 0, 355}, - dictWord{9, 0, 293}, - dictWord{137, 0, 743}, - dictWord{134, 0, 1389}, - dictWord{7, 11, 915}, - dictWord{8, 11, 247}, - dictWord{147, 11, 0}, - dictWord{ - 4, - 11, - 202, - }, - dictWord{5, 11, 382}, - dictWord{6, 11, 454}, - dictWord{7, 11, 936}, - dictWord{7, 11, 1803}, - dictWord{8, 11, 758}, - dictWord{9, 11, 375}, - dictWord{ - 9, - 11, - 895, - }, - dictWord{10, 11, 743}, - dictWord{10, 11, 792}, - dictWord{11, 11, 978}, - dictWord{11, 11, 1012}, - dictWord{142, 11, 109}, - dictWord{5, 0, 384}, - dictWord{8, 0, 455}, - dictWord{140, 0, 48}, - dictWord{132, 11, 390}, - dictWord{5, 10, 169}, - dictWord{7, 10, 333}, - dictWord{136, 10, 45}, - dictWord{5, 0, 264}, - dictWord{134, 0, 184}, - dictWord{138, 11, 791}, - dictWord{133, 11, 717}, - dictWord{132, 10, 198}, - dictWord{6, 11, 445}, - dictWord{7, 11, 332}, - dictWord{ - 137, - 11, - 909, - }, - dictWord{136, 0, 1001}, - dictWord{4, 10, 24}, - dictWord{5, 10, 140}, - dictWord{5, 10, 185}, - dictWord{7, 10, 1500}, - dictWord{11, 10, 565}, - dictWord{ - 139, - 10, - 838, - }, - dictWord{134, 11, 578}, - dictWord{5, 0, 633}, - dictWord{6, 0, 28}, - dictWord{135, 0, 1323}, - dictWord{132, 0, 851}, - dictWord{136, 11, 267}, - dictWord{ - 7, - 0, - 359, - }, - dictWord{8, 0, 243}, - dictWord{140, 0, 175}, - dictWord{4, 10, 334}, - dictWord{133, 10, 593}, - dictWord{141, 11, 87}, - dictWord{136, 11, 766}, - dictWord{10, 0, 287}, - dictWord{12, 0, 138}, - dictWord{10, 11, 287}, - dictWord{140, 11, 138}, - dictWord{4, 0, 105}, - dictWord{132, 0, 740}, - dictWord{140, 10, 116}, - dictWord{134, 0, 857}, - dictWord{135, 11, 1841}, - dictWord{6, 0, 1402}, - dictWord{137, 0, 819}, - dictWord{132, 11, 584}, - dictWord{132, 10, 709}, - dictWord{ - 133, - 10, - 897, - }, - dictWord{5, 0, 224}, - dictWord{13, 0, 174}, - dictWord{146, 0, 52}, - dictWord{135, 10, 1840}, - dictWord{4, 10, 608}, - dictWord{133, 10, 497}, - dictWord{139, 11, 60}, - dictWord{4, 0, 758}, - dictWord{135, 0, 1649}, - dictWord{4, 11, 226}, - dictWord{4, 11, 326}, - dictWord{135, 11, 1770}, - dictWord{5, 11, 426}, - dictWord{8, 11, 30}, - dictWord{9, 11, 2}, - dictWord{11, 11, 549}, - dictWord{147, 11, 122}, - dictWord{135, 10, 2039}, - dictWord{6, 10, 540}, - dictWord{ - 136, - 10, - 136, - }, - dictWord{4, 0, 573}, - dictWord{8, 0, 655}, - dictWord{4, 10, 897}, - dictWord{133, 10, 786}, - dictWord{7, 0, 351}, - dictWord{139, 0, 128}, - dictWord{ - 133, - 10, - 999, - }, - dictWord{4, 10, 299}, - dictWord{135, 10, 1004}, - dictWord{133, 0, 918}, - dictWord{132, 11, 345}, - dictWord{4, 11, 385}, - dictWord{7, 11, 265}, - dictWord{135, 11, 587}, - dictWord{133, 10, 456}, - dictWord{136, 10, 180}, - dictWord{6, 0, 687}, - dictWord{134, 0, 1537}, - dictWord{4, 11, 347}, - dictWord{ - 5, - 11, - 423, - }, - dictWord{5, 11, 996}, - dictWord{135, 11, 1329}, - dictWord{132, 10, 755}, - dictWord{7, 11, 1259}, - dictWord{9, 11, 125}, - dictWord{11, 11, 65}, - dictWord{140, 11, 285}, - dictWord{5, 11, 136}, - dictWord{6, 11, 136}, - dictWord{136, 11, 644}, - dictWord{134, 0, 1525}, - dictWord{4, 0, 1009}, - dictWord{ - 135, - 0, - 1139, - }, - dictWord{139, 10, 338}, - dictWord{132, 0, 340}, - dictWord{135, 10, 1464}, - dictWord{8, 0, 847}, - dictWord{10, 0, 861}, - dictWord{10, 0, 876}, - dictWord{ - 10, - 0, - 889, - }, - dictWord{10, 0, 922}, - dictWord{10, 0, 929}, - dictWord{10, 0, 933}, - dictWord{12, 0, 784}, - dictWord{140, 0, 791}, - dictWord{139, 0, 176}, - dictWord{ - 9, - 11, - 134, - }, - dictWord{10, 11, 2}, - dictWord{10, 11, 27}, - dictWord{10, 11, 333}, - dictWord{11, 11, 722}, - dictWord{143, 11, 1}, - dictWord{4, 11, 433}, - dictWord{ - 133, - 11, - 719, - }, - dictWord{5, 0, 985}, - dictWord{7, 0, 509}, - dictWord{7, 0, 529}, - dictWord{145, 0, 96}, - dictWord{132, 0, 615}, - dictWord{4, 10, 890}, - dictWord{ - 5, - 10, - 805, - }, - dictWord{5, 10, 819}, - dictWord{5, 10, 961}, - dictWord{6, 10, 396}, - dictWord{6, 10, 1631}, - dictWord{6, 10, 1678}, - dictWord{7, 10, 1967}, - dictWord{ - 7, - 10, - 2041, - }, - dictWord{9, 10, 630}, - dictWord{11, 10, 8}, - dictWord{11, 10, 1019}, - dictWord{12, 10, 176}, - dictWord{13, 10, 225}, - dictWord{14, 10, 292}, - dictWord{ - 149, - 10, - 24, - }, - dictWord{135, 0, 1919}, - dictWord{134, 0, 1131}, - dictWord{144, 11, 21}, - dictWord{144, 11, 51}, - dictWord{135, 10, 1815}, - dictWord{4, 0, 247}, - dictWord{7, 10, 1505}, - dictWord{10, 10, 190}, - dictWord{10, 10, 634}, - dictWord{11, 10, 792}, - dictWord{12, 10, 358}, - dictWord{140, 10, 447}, - dictWord{ - 5, - 10, - 0, - }, - dictWord{6, 10, 536}, - dictWord{7, 10, 604}, - dictWord{13, 10, 445}, - dictWord{145, 10, 126}, - dictWord{4, 0, 184}, - dictWord{5, 0, 390}, - dictWord{6, 0, 337}, - dictWord{7, 0, 23}, - dictWord{7, 0, 494}, - dictWord{7, 0, 618}, - dictWord{7, 0, 1456}, - dictWord{8, 0, 27}, - dictWord{8, 0, 599}, - dictWord{10, 0, 153}, - dictWord{ - 139, - 0, - 710, - }, - dictWord{6, 10, 232}, - dictWord{6, 10, 412}, - dictWord{7, 10, 1074}, - dictWord{8, 10, 9}, - dictWord{8, 10, 157}, - dictWord{8, 10, 786}, - dictWord{9, 10, 196}, - dictWord{9, 10, 352}, - dictWord{9, 10, 457}, - dictWord{10, 10, 337}, - dictWord{11, 10, 232}, - dictWord{11, 10, 877}, - dictWord{12, 10, 480}, - dictWord{ - 140, - 10, - 546, - }, - dictWord{13, 0, 38}, - dictWord{135, 10, 958}, - dictWord{4, 10, 382}, - dictWord{136, 10, 579}, - dictWord{4, 10, 212}, - dictWord{135, 10, 1206}, - dictWord{ - 4, - 11, - 555, - }, - dictWord{8, 11, 536}, - dictWord{138, 11, 288}, - dictWord{11, 11, 139}, - dictWord{139, 11, 171}, - dictWord{9, 11, 370}, - dictWord{138, 11, 90}, - dictWord{132, 0, 1015}, - dictWord{134, 0, 1088}, - dictWord{5, 10, 655}, - dictWord{135, 11, 977}, - dictWord{134, 0, 1585}, - dictWord{17, 10, 67}, - dictWord{ - 147, - 10, - 74, - }, - dictWord{10, 0, 227}, - dictWord{11, 0, 497}, - dictWord{11, 0, 709}, - dictWord{140, 0, 415}, - dictWord{6, 0, 360}, - dictWord{7, 0, 1664}, - dictWord{ - 136, - 0, - 478, - }, - dictWord{7, 0, 95}, - dictWord{6, 10, 231}, - dictWord{136, 10, 423}, - dictWord{140, 11, 65}, - dictWord{4, 11, 257}, - dictWord{135, 11, 2031}, - dictWord{ - 135, - 11, - 1768, - }, - dictWord{133, 10, 300}, - dictWord{139, 11, 211}, - dictWord{136, 0, 699}, - dictWord{6, 10, 237}, - dictWord{7, 10, 611}, - dictWord{8, 10, 100}, - dictWord{9, 10, 416}, - dictWord{11, 10, 335}, - dictWord{12, 10, 173}, - dictWord{146, 10, 101}, - dictWord{14, 0, 26}, - dictWord{146, 0, 150}, - dictWord{6, 0, 581}, - dictWord{135, 0, 1119}, - dictWord{135, 10, 1208}, - dictWord{132, 0, 739}, - dictWord{6, 11, 83}, - dictWord{6, 11, 1733}, - dictWord{135, 11, 1389}, - dictWord{ - 137, - 0, - 869, - }, - dictWord{4, 0, 67}, - dictWord{5, 0, 422}, - dictWord{7, 0, 1037}, - dictWord{7, 0, 1289}, - dictWord{7, 0, 1555}, - dictWord{9, 0, 741}, - dictWord{145, 0, 108}, - dictWord{133, 10, 199}, - dictWord{12, 10, 427}, - dictWord{146, 10, 38}, - dictWord{136, 0, 464}, - dictWord{142, 0, 42}, - dictWord{10, 0, 96}, - dictWord{8, 11, 501}, - dictWord{137, 11, 696}, - dictWord{134, 11, 592}, - dictWord{4, 0, 512}, - dictWord{4, 0, 966}, - dictWord{5, 0, 342}, - dictWord{6, 0, 1855}, - dictWord{8, 0, 869}, - dictWord{8, 0, 875}, - dictWord{8, 0, 901}, - dictWord{144, 0, 26}, - dictWord{8, 0, 203}, - dictWord{11, 0, 823}, - dictWord{11, 0, 846}, - dictWord{12, 0, 482}, - dictWord{ - 13, - 0, - 277, - }, - dictWord{13, 0, 302}, - dictWord{13, 0, 464}, - dictWord{14, 0, 205}, - dictWord{142, 0, 221}, - dictWord{4, 0, 449}, - dictWord{133, 0, 718}, - dictWord{ - 7, - 11, - 1718, - }, - dictWord{9, 11, 95}, - dictWord{9, 11, 274}, - dictWord{10, 11, 279}, - dictWord{10, 11, 317}, - dictWord{10, 11, 420}, - dictWord{11, 11, 303}, - dictWord{ - 11, - 11, - 808, - }, - dictWord{12, 11, 134}, - dictWord{12, 11, 367}, - dictWord{13, 11, 149}, - dictWord{13, 11, 347}, - dictWord{14, 11, 349}, - dictWord{14, 11, 406}, - dictWord{18, 11, 22}, - dictWord{18, 11, 89}, - dictWord{18, 11, 122}, - dictWord{147, 11, 47}, - dictWord{133, 11, 26}, - dictWord{4, 0, 355}, - dictWord{6, 0, 311}, - dictWord{ - 9, - 0, - 256, - }, - dictWord{138, 0, 404}, - dictWord{132, 11, 550}, - dictWord{10, 0, 758}, - dictWord{6, 10, 312}, - dictWord{6, 10, 1715}, - dictWord{10, 10, 584}, - dictWord{11, 10, 546}, - dictWord{11, 10, 692}, - dictWord{12, 10, 259}, - dictWord{12, 10, 295}, - dictWord{13, 10, 46}, - dictWord{141, 10, 154}, - dictWord{ - 136, - 11, - 822, - }, - dictWord{5, 0, 827}, - dictWord{4, 11, 902}, - dictWord{5, 11, 809}, - dictWord{6, 11, 122}, - dictWord{135, 11, 896}, - dictWord{5, 0, 64}, - dictWord{140, 0, 581}, - dictWord{4, 0, 442}, - dictWord{6, 0, 739}, - dictWord{7, 0, 1047}, - dictWord{7, 0, 1352}, - dictWord{7, 0, 1643}, - dictWord{7, 11, 1911}, - dictWord{9, 11, 449}, - dictWord{10, 11, 192}, - dictWord{138, 11, 740}, - dictWord{135, 11, 262}, - dictWord{132, 10, 588}, - dictWord{133, 11, 620}, - dictWord{5, 0, 977}, - dictWord{ - 6, - 0, - 288, - }, - dictWord{7, 0, 528}, - dictWord{4, 11, 34}, - dictWord{5, 11, 574}, - dictWord{7, 11, 279}, - dictWord{7, 11, 1624}, - dictWord{136, 11, 601}, - dictWord{ - 6, - 0, - 1375, - }, - dictWord{4, 10, 231}, - dictWord{5, 10, 61}, - dictWord{6, 10, 104}, - dictWord{7, 10, 729}, - dictWord{7, 10, 964}, - dictWord{7, 10, 1658}, - dictWord{ - 140, - 10, - 414, - }, - dictWord{6, 10, 263}, - dictWord{138, 10, 757}, - dictWord{132, 10, 320}, - dictWord{4, 0, 254}, - dictWord{7, 0, 1309}, - dictWord{5, 11, 332}, - dictWord{ - 135, - 11, - 1309, - }, - dictWord{6, 11, 261}, - dictWord{8, 11, 182}, - dictWord{139, 11, 943}, - dictWord{132, 10, 225}, - dictWord{6, 0, 12}, - dictWord{135, 0, 1219}, - dictWord{4, 0, 275}, - dictWord{12, 0, 376}, - dictWord{6, 11, 1721}, - dictWord{141, 11, 490}, - dictWord{4, 11, 933}, - dictWord{133, 11, 880}, - dictWord{6, 0, 951}, - dictWord{6, 0, 1109}, - dictWord{6, 0, 1181}, - dictWord{7, 0, 154}, - dictWord{4, 10, 405}, - dictWord{7, 10, 817}, - dictWord{14, 10, 58}, - dictWord{17, 10, 37}, - dictWord{ - 146, - 10, - 124, - }, - dictWord{6, 0, 1520}, - dictWord{133, 10, 974}, - dictWord{134, 0, 1753}, - dictWord{6, 0, 369}, - dictWord{6, 0, 502}, - dictWord{7, 0, 1036}, - dictWord{ - 8, - 0, - 348, - }, - dictWord{9, 0, 452}, - dictWord{10, 0, 26}, - dictWord{11, 0, 224}, - dictWord{11, 0, 387}, - dictWord{11, 0, 772}, - dictWord{12, 0, 95}, - dictWord{12, 0, 629}, - dictWord{13, 0, 195}, - dictWord{13, 0, 207}, - dictWord{13, 0, 241}, - dictWord{14, 0, 260}, - dictWord{14, 0, 270}, - dictWord{143, 0, 140}, - dictWord{132, 0, 269}, - dictWord{5, 0, 480}, - dictWord{7, 0, 532}, - dictWord{7, 0, 1197}, - dictWord{7, 0, 1358}, - dictWord{8, 0, 291}, - dictWord{11, 0, 349}, - dictWord{142, 0, 396}, - dictWord{ - 5, - 10, - 235, - }, - dictWord{7, 10, 1239}, - dictWord{11, 10, 131}, - dictWord{140, 10, 370}, - dictWord{7, 10, 956}, - dictWord{7, 10, 1157}, - dictWord{7, 10, 1506}, - dictWord{ - 7, - 10, - 1606, - }, - dictWord{7, 10, 1615}, - dictWord{7, 10, 1619}, - dictWord{7, 10, 1736}, - dictWord{7, 10, 1775}, - dictWord{8, 10, 590}, - dictWord{9, 10, 324}, - dictWord{9, 10, 736}, - dictWord{9, 10, 774}, - dictWord{9, 10, 776}, - dictWord{9, 10, 784}, - dictWord{10, 10, 567}, - dictWord{10, 10, 708}, - dictWord{11, 10, 518}, - dictWord{11, 10, 613}, - dictWord{11, 10, 695}, - dictWord{11, 10, 716}, - dictWord{11, 10, 739}, - dictWord{11, 10, 770}, - dictWord{11, 10, 771}, - dictWord{ - 11, - 10, - 848, - }, - dictWord{11, 10, 857}, - dictWord{11, 10, 931}, - dictWord{11, 10, 947}, - dictWord{12, 10, 326}, - dictWord{12, 10, 387}, - dictWord{12, 10, 484}, - dictWord{ - 12, - 10, - 528, - }, - dictWord{12, 10, 552}, - dictWord{12, 10, 613}, - dictWord{13, 10, 189}, - dictWord{13, 10, 256}, - dictWord{13, 10, 340}, - dictWord{13, 10, 432}, - dictWord{13, 10, 436}, - dictWord{13, 10, 440}, - dictWord{13, 10, 454}, - dictWord{14, 10, 174}, - dictWord{14, 10, 220}, - dictWord{14, 10, 284}, - dictWord{ - 14, - 10, - 390, - }, - dictWord{145, 10, 121}, - dictWord{8, 11, 598}, - dictWord{9, 11, 664}, - dictWord{138, 11, 441}, - dictWord{9, 10, 137}, - dictWord{138, 10, 221}, - dictWord{133, 11, 812}, - dictWord{148, 0, 15}, - dictWord{134, 0, 1341}, - dictWord{6, 0, 1017}, - dictWord{4, 11, 137}, - dictWord{7, 11, 1178}, - dictWord{ - 135, - 11, - 1520, - }, - dictWord{7, 10, 390}, - dictWord{138, 10, 140}, - dictWord{7, 11, 1260}, - dictWord{135, 11, 1790}, - dictWord{137, 11, 191}, - dictWord{ - 135, - 10, - 1144, - }, - dictWord{6, 0, 1810}, - dictWord{7, 0, 657}, - dictWord{8, 0, 886}, - dictWord{10, 0, 857}, - dictWord{14, 0, 440}, - dictWord{144, 0, 96}, - dictWord{8, 0, 533}, - dictWord{6, 11, 1661}, - dictWord{7, 11, 1975}, - dictWord{7, 11, 2009}, - dictWord{135, 11, 2011}, - dictWord{6, 0, 1453}, - dictWord{134, 10, 464}, - dictWord{ - 132, - 11, - 715, - }, - dictWord{5, 10, 407}, - dictWord{11, 10, 204}, - dictWord{11, 10, 243}, - dictWord{11, 10, 489}, - dictWord{12, 10, 293}, - dictWord{19, 10, 37}, - dictWord{20, 10, 73}, - dictWord{150, 10, 38}, - dictWord{133, 11, 703}, - dictWord{4, 0, 211}, - dictWord{7, 0, 1483}, - dictWord{5, 10, 325}, - dictWord{8, 10, 5}, - dictWord{ - 8, - 10, - 227, - }, - dictWord{9, 10, 105}, - dictWord{10, 10, 585}, - dictWord{140, 10, 614}, - dictWord{4, 0, 332}, - dictWord{5, 0, 335}, - dictWord{6, 0, 238}, - dictWord{ - 7, - 0, - 269, - }, - dictWord{7, 0, 811}, - dictWord{7, 0, 1797}, - dictWord{8, 0, 836}, - dictWord{9, 0, 507}, - dictWord{141, 0, 242}, - dictWord{5, 11, 89}, - dictWord{7, 11, 1915}, - dictWord{9, 11, 185}, - dictWord{9, 11, 235}, - dictWord{9, 11, 496}, - dictWord{10, 11, 64}, - dictWord{10, 11, 270}, - dictWord{10, 11, 403}, - dictWord{10, 11, 469}, - dictWord{10, 11, 529}, - dictWord{10, 11, 590}, - dictWord{11, 11, 140}, - dictWord{11, 11, 860}, - dictWord{13, 11, 1}, - dictWord{13, 11, 422}, - dictWord{14, 11, 341}, - dictWord{14, 11, 364}, - dictWord{17, 11, 93}, - dictWord{18, 11, 113}, - dictWord{19, 11, 97}, - dictWord{147, 11, 113}, - dictWord{133, 11, 695}, - dictWord{ - 16, - 0, - 19, - }, - dictWord{5, 11, 6}, - dictWord{6, 11, 183}, - dictWord{6, 10, 621}, - dictWord{7, 11, 680}, - dictWord{7, 11, 978}, - dictWord{7, 11, 1013}, - dictWord{7, 11, 1055}, - dictWord{12, 11, 230}, - dictWord{13, 11, 172}, - dictWord{13, 10, 504}, - dictWord{146, 11, 29}, - dictWord{136, 0, 156}, - dictWord{133, 0, 1009}, - dictWord{ - 6, - 11, - 29, - }, - dictWord{139, 11, 63}, - dictWord{134, 0, 820}, - dictWord{134, 10, 218}, - dictWord{7, 10, 454}, - dictWord{7, 10, 782}, - dictWord{8, 10, 768}, - dictWord{ - 140, - 10, - 686, - }, - dictWord{5, 0, 228}, - dictWord{6, 0, 203}, - dictWord{7, 0, 156}, - dictWord{8, 0, 347}, - dictWord{9, 0, 265}, - dictWord{18, 0, 39}, - dictWord{20, 0, 54}, - dictWord{21, 0, 31}, - dictWord{22, 0, 3}, - dictWord{23, 0, 0}, - dictWord{15, 11, 8}, - dictWord{18, 11, 39}, - dictWord{20, 11, 54}, - dictWord{21, 11, 31}, - dictWord{22, 11, 3}, - dictWord{151, 11, 0}, - dictWord{7, 0, 1131}, - dictWord{135, 0, 1468}, - dictWord{144, 10, 0}, - dictWord{134, 0, 1276}, - dictWord{10, 10, 676}, - dictWord{ - 140, - 10, - 462, - }, - dictWord{132, 11, 311}, - dictWord{134, 11, 1740}, - dictWord{7, 11, 170}, - dictWord{8, 11, 90}, - dictWord{8, 11, 177}, - dictWord{8, 11, 415}, - dictWord{ - 11, - 11, - 714, - }, - dictWord{142, 11, 281}, - dictWord{134, 10, 164}, - dictWord{6, 0, 1792}, - dictWord{138, 0, 849}, - dictWord{150, 10, 50}, - dictWord{5, 0, 291}, - dictWord{5, 0, 318}, - dictWord{7, 0, 765}, - dictWord{9, 0, 389}, - dictWord{12, 0, 548}, - dictWord{8, 11, 522}, - dictWord{142, 11, 328}, - dictWord{11, 11, 91}, - dictWord{ - 13, - 11, - 129, - }, - dictWord{15, 11, 101}, - dictWord{145, 11, 125}, - dictWord{4, 11, 494}, - dictWord{6, 11, 74}, - dictWord{7, 11, 44}, - dictWord{7, 11, 407}, - dictWord{ - 8, - 11, - 551, - }, - dictWord{12, 11, 17}, - dictWord{15, 11, 5}, - dictWord{148, 11, 11}, - dictWord{4, 11, 276}, - dictWord{133, 11, 296}, - dictWord{6, 10, 343}, - dictWord{ - 7, - 10, - 195, - }, - dictWord{7, 11, 1777}, - dictWord{9, 10, 226}, - dictWord{10, 10, 197}, - dictWord{10, 10, 575}, - dictWord{11, 10, 502}, - dictWord{139, 10, 899}, - dictWord{ - 10, - 0, - 525, - }, - dictWord{139, 0, 82}, - dictWord{14, 0, 453}, - dictWord{4, 11, 7}, - dictWord{5, 11, 90}, - dictWord{5, 11, 158}, - dictWord{6, 11, 542}, - dictWord{7, 11, 221}, - dictWord{7, 11, 1574}, - dictWord{9, 11, 490}, - dictWord{10, 11, 540}, - dictWord{11, 11, 443}, - dictWord{139, 11, 757}, - dictWord{135, 0, 666}, - dictWord{ - 22, - 10, - 29, - }, - dictWord{150, 11, 29}, - dictWord{4, 0, 422}, - dictWord{147, 10, 8}, - dictWord{5, 0, 355}, - dictWord{145, 0, 0}, - dictWord{6, 0, 1873}, - dictWord{9, 0, 918}, - dictWord{7, 11, 588}, - dictWord{9, 11, 175}, - dictWord{138, 11, 530}, - dictWord{143, 11, 31}, - dictWord{11, 0, 165}, - dictWord{7, 10, 1125}, - dictWord{9, 10, 143}, - dictWord{14, 10, 405}, - dictWord{150, 10, 21}, - dictWord{9, 0, 260}, - dictWord{137, 0, 905}, - dictWord{5, 11, 872}, - dictWord{6, 11, 57}, - dictWord{6, 11, 479}, - dictWord{ - 6, - 11, - 562, - }, - dictWord{7, 11, 471}, - dictWord{7, 11, 1060}, - dictWord{9, 11, 447}, - dictWord{9, 11, 454}, - dictWord{141, 11, 6}, - dictWord{138, 11, 704}, - dictWord{133, 0, 865}, - dictWord{5, 0, 914}, - dictWord{134, 0, 1625}, - dictWord{133, 0, 234}, - dictWord{7, 0, 1383}, - dictWord{5, 11, 31}, - dictWord{6, 11, 614}, - dictWord{145, 11, 61}, - dictWord{7, 11, 1200}, - dictWord{138, 11, 460}, - dictWord{6, 11, 424}, - dictWord{135, 11, 1866}, - dictWord{136, 0, 306}, - dictWord{ - 5, - 10, - 959, - }, - dictWord{12, 11, 30}, - dictWord{13, 11, 148}, - dictWord{14, 11, 87}, - dictWord{14, 11, 182}, - dictWord{16, 11, 42}, - dictWord{18, 11, 92}, - dictWord{ - 148, - 11, - 70, - }, - dictWord{6, 0, 1919}, - dictWord{6, 0, 1921}, - dictWord{9, 0, 923}, - dictWord{9, 0, 930}, - dictWord{9, 0, 941}, - dictWord{9, 0, 949}, - dictWord{9, 0, 987}, - dictWord{ - 9, - 0, - 988, - }, - dictWord{9, 0, 992}, - dictWord{12, 0, 802}, - dictWord{12, 0, 815}, - dictWord{12, 0, 856}, - dictWord{12, 0, 885}, - dictWord{12, 0, 893}, - dictWord{ - 12, - 0, - 898, - }, - dictWord{12, 0, 919}, - dictWord{12, 0, 920}, - dictWord{12, 0, 941}, - dictWord{12, 0, 947}, - dictWord{15, 0, 183}, - dictWord{15, 0, 185}, - dictWord{15, 0, 189}, - dictWord{15, 0, 197}, - dictWord{15, 0, 202}, - dictWord{15, 0, 233}, - dictWord{18, 0, 218}, - dictWord{18, 0, 219}, - dictWord{18, 0, 233}, - dictWord{143, 11, 156}, - dictWord{135, 10, 1759}, - dictWord{136, 10, 173}, - dictWord{13, 0, 163}, - dictWord{13, 0, 180}, - dictWord{18, 0, 78}, - dictWord{20, 0, 35}, - dictWord{5, 11, 13}, - dictWord{134, 11, 142}, - dictWord{134, 10, 266}, - dictWord{6, 11, 97}, - dictWord{7, 11, 116}, - dictWord{8, 11, 322}, - dictWord{8, 11, 755}, - dictWord{9, 11, 548}, - dictWord{10, 11, 714}, - dictWord{11, 11, 884}, - dictWord{141, 11, 324}, - dictWord{135, 0, 1312}, - dictWord{9, 0, 814}, - dictWord{137, 11, 676}, - dictWord{ - 133, - 0, - 707, - }, - dictWord{135, 0, 1493}, - dictWord{6, 0, 421}, - dictWord{7, 0, 61}, - dictWord{7, 0, 1540}, - dictWord{10, 0, 11}, - dictWord{138, 0, 501}, - dictWord{12, 0, 733}, - dictWord{12, 0, 766}, - dictWord{7, 11, 866}, - dictWord{135, 11, 1163}, - dictWord{137, 0, 341}, - dictWord{142, 0, 98}, - dictWord{145, 11, 115}, - dictWord{ - 135, - 11, - 1111, - }, - dictWord{136, 10, 300}, - dictWord{136, 0, 1014}, - dictWord{8, 11, 1}, - dictWord{9, 11, 112}, - dictWord{138, 11, 326}, - dictWord{132, 11, 730}, - dictWord{5, 11, 488}, - dictWord{6, 11, 527}, - dictWord{7, 11, 489}, - dictWord{7, 11, 1636}, - dictWord{8, 11, 121}, - dictWord{8, 11, 144}, - dictWord{8, 11, 359}, - dictWord{ - 9, - 11, - 193, - }, - dictWord{9, 11, 241}, - dictWord{9, 11, 336}, - dictWord{9, 11, 882}, - dictWord{11, 11, 266}, - dictWord{11, 11, 372}, - dictWord{11, 11, 944}, - dictWord{ - 12, - 11, - 401, - }, - dictWord{140, 11, 641}, - dictWord{6, 0, 971}, - dictWord{134, 0, 1121}, - dictWord{6, 0, 102}, - dictWord{7, 0, 72}, - dictWord{15, 0, 142}, - dictWord{ - 147, - 0, - 67, - }, - dictWord{151, 0, 30}, - dictWord{135, 0, 823}, - dictWord{134, 0, 1045}, - dictWord{5, 10, 427}, - dictWord{5, 10, 734}, - dictWord{7, 10, 478}, - dictWord{ - 136, - 10, - 52, - }, - dictWord{7, 0, 1930}, - dictWord{11, 10, 217}, - dictWord{142, 10, 165}, - dictWord{6, 0, 1512}, - dictWord{135, 0, 1870}, - dictWord{9, 11, 31}, - dictWord{ - 10, - 11, - 244, - }, - dictWord{10, 11, 699}, - dictWord{12, 11, 149}, - dictWord{141, 11, 497}, - dictWord{133, 11, 377}, - dictWord{145, 11, 101}, - dictWord{ - 10, - 11, - 158, - }, - dictWord{13, 11, 13}, - dictWord{13, 11, 137}, - dictWord{13, 11, 258}, - dictWord{14, 11, 111}, - dictWord{14, 11, 225}, - dictWord{14, 11, 253}, - dictWord{ - 14, - 11, - 304, - }, - dictWord{14, 11, 339}, - dictWord{14, 11, 417}, - dictWord{146, 11, 33}, - dictWord{6, 0, 87}, - dictWord{6, 10, 1734}, - dictWord{7, 10, 20}, - dictWord{ - 7, - 10, - 1056, - }, - dictWord{8, 10, 732}, - dictWord{9, 10, 406}, - dictWord{9, 10, 911}, - dictWord{138, 10, 694}, - dictWord{134, 0, 1243}, - dictWord{137, 0, 245}, - dictWord{ - 7, - 0, - 68, - }, - dictWord{8, 0, 48}, - dictWord{8, 0, 88}, - dictWord{8, 0, 582}, - dictWord{8, 0, 681}, - dictWord{9, 0, 373}, - dictWord{9, 0, 864}, - dictWord{11, 0, 157}, - dictWord{ - 11, - 0, - 336, - }, - dictWord{11, 0, 843}, - dictWord{148, 0, 27}, - dictWord{8, 11, 663}, - dictWord{144, 11, 8}, - dictWord{133, 10, 613}, - dictWord{4, 0, 88}, - dictWord{ - 5, - 0, - 137, - }, - dictWord{5, 0, 174}, - dictWord{5, 0, 777}, - dictWord{6, 0, 1664}, - dictWord{6, 0, 1725}, - dictWord{7, 0, 77}, - dictWord{7, 0, 426}, - dictWord{7, 0, 1317}, - dictWord{ - 7, - 0, - 1355, - }, - dictWord{8, 0, 126}, - dictWord{8, 0, 563}, - dictWord{9, 0, 523}, - dictWord{9, 0, 750}, - dictWord{10, 0, 310}, - dictWord{10, 0, 836}, - dictWord{11, 0, 42}, - dictWord{11, 0, 318}, - dictWord{11, 0, 731}, - dictWord{12, 0, 68}, - dictWord{12, 0, 92}, - dictWord{12, 0, 507}, - dictWord{12, 0, 692}, - dictWord{13, 0, 81}, - dictWord{ - 13, - 0, - 238, - }, - dictWord{13, 0, 374}, - dictWord{14, 0, 436}, - dictWord{18, 0, 138}, - dictWord{19, 0, 78}, - dictWord{19, 0, 111}, - dictWord{20, 0, 55}, - dictWord{20, 0, 77}, - dictWord{148, 0, 92}, - dictWord{141, 0, 418}, - dictWord{4, 0, 938}, - dictWord{137, 0, 625}, - dictWord{138, 0, 351}, - dictWord{5, 11, 843}, - dictWord{7, 10, 32}, - dictWord{ - 7, - 10, - 984, - }, - dictWord{8, 10, 85}, - dictWord{8, 10, 709}, - dictWord{9, 10, 579}, - dictWord{9, 10, 847}, - dictWord{9, 10, 856}, - dictWord{10, 10, 799}, - dictWord{ - 11, - 10, - 258, - }, - dictWord{11, 10, 1007}, - dictWord{12, 10, 331}, - dictWord{12, 10, 615}, - dictWord{13, 10, 188}, - dictWord{13, 10, 435}, - dictWord{14, 10, 8}, - dictWord{ - 15, - 10, - 165, - }, - dictWord{16, 10, 27}, - dictWord{148, 10, 40}, - dictWord{6, 0, 1668}, - dictWord{7, 0, 1499}, - dictWord{8, 0, 117}, - dictWord{9, 0, 314}, - dictWord{ - 138, - 0, - 174, - }, - dictWord{135, 0, 707}, - dictWord{132, 11, 554}, - dictWord{133, 11, 536}, - dictWord{5, 0, 403}, - dictWord{5, 11, 207}, - dictWord{9, 11, 79}, - dictWord{ - 11, - 11, - 625, - }, - dictWord{145, 11, 7}, - dictWord{132, 11, 424}, - dictWord{136, 11, 785}, - dictWord{4, 10, 167}, - dictWord{135, 10, 82}, - dictWord{9, 0, 7}, - dictWord{ - 23, - 0, - 6, - }, - dictWord{9, 11, 7}, - dictWord{151, 11, 6}, - dictWord{6, 0, 282}, - dictWord{5, 10, 62}, - dictWord{6, 10, 534}, - dictWord{7, 10, 74}, - dictWord{7, 10, 678}, - dictWord{ - 7, - 10, - 684, - }, - dictWord{7, 10, 1043}, - dictWord{7, 10, 1072}, - dictWord{8, 10, 280}, - dictWord{8, 10, 541}, - dictWord{8, 10, 686}, - dictWord{9, 10, 258}, - dictWord{ - 10, - 10, - 519, - }, - dictWord{11, 10, 252}, - dictWord{140, 10, 282}, - dictWord{138, 10, 33}, - dictWord{132, 10, 359}, - dictWord{4, 0, 44}, - dictWord{5, 0, 311}, - dictWord{ - 6, - 0, - 156, - }, - dictWord{7, 0, 639}, - dictWord{7, 0, 762}, - dictWord{7, 0, 1827}, - dictWord{9, 0, 8}, - dictWord{9, 0, 462}, - dictWord{148, 0, 83}, - dictWord{7, 11, 769}, - dictWord{ - 9, - 11, - 18, - }, - dictWord{138, 11, 358}, - dictWord{4, 0, 346}, - dictWord{7, 0, 115}, - dictWord{9, 0, 180}, - dictWord{9, 0, 456}, - dictWord{10, 0, 363}, - dictWord{ - 4, - 11, - 896, - }, - dictWord{134, 11, 1777}, - dictWord{133, 10, 211}, - dictWord{7, 0, 761}, - dictWord{7, 0, 1051}, - dictWord{137, 0, 545}, - dictWord{6, 10, 145}, - dictWord{ - 141, - 10, - 336, - }, - dictWord{7, 11, 750}, - dictWord{9, 11, 223}, - dictWord{11, 11, 27}, - dictWord{11, 11, 466}, - dictWord{12, 11, 624}, - dictWord{14, 11, 265}, - dictWord{146, 11, 61}, - dictWord{6, 0, 752}, - dictWord{6, 0, 768}, - dictWord{6, 0, 1195}, - dictWord{6, 0, 1254}, - dictWord{6, 0, 1619}, - dictWord{137, 0, 835}, - dictWord{ - 6, - 0, - 1936, - }, - dictWord{8, 0, 930}, - dictWord{136, 0, 960}, - dictWord{132, 10, 263}, - dictWord{132, 11, 249}, - dictWord{12, 0, 653}, - dictWord{132, 10, 916}, - dictWord{4, 11, 603}, - dictWord{133, 11, 661}, - dictWord{8, 0, 344}, - dictWord{4, 11, 11}, - dictWord{6, 11, 128}, - dictWord{7, 11, 231}, - dictWord{7, 11, 1533}, - dictWord{138, 11, 725}, - dictWord{134, 0, 1483}, - dictWord{134, 0, 875}, - dictWord{6, 0, 185}, - dictWord{7, 0, 1899}, - dictWord{9, 0, 875}, - dictWord{139, 0, 673}, - dictWord{15, 10, 155}, - dictWord{144, 10, 79}, - dictWord{7, 0, 93}, - dictWord{7, 0, 210}, - dictWord{7, 0, 1223}, - dictWord{8, 0, 451}, - dictWord{8, 0, 460}, - dictWord{ - 11, - 0, - 353, - }, - dictWord{11, 0, 475}, - dictWord{4, 10, 599}, - dictWord{6, 10, 1634}, - dictWord{7, 10, 67}, - dictWord{7, 10, 691}, - dictWord{7, 10, 979}, - dictWord{ - 7, - 10, - 1697, - }, - dictWord{8, 10, 207}, - dictWord{8, 10, 214}, - dictWord{8, 10, 231}, - dictWord{8, 10, 294}, - dictWord{8, 10, 336}, - dictWord{8, 10, 428}, - dictWord{ - 8, - 10, - 471, - }, - dictWord{8, 10, 622}, - dictWord{8, 10, 626}, - dictWord{8, 10, 679}, - dictWord{8, 10, 759}, - dictWord{8, 10, 829}, - dictWord{9, 10, 11}, - dictWord{9, 10, 246}, - dictWord{9, 10, 484}, - dictWord{9, 10, 573}, - dictWord{9, 10, 706}, - dictWord{9, 10, 762}, - dictWord{9, 10, 798}, - dictWord{9, 10, 855}, - dictWord{9, 10, 870}, - dictWord{ - 9, - 10, - 912, - }, - dictWord{10, 10, 303}, - dictWord{10, 10, 335}, - dictWord{10, 10, 424}, - dictWord{10, 10, 461}, - dictWord{10, 10, 543}, - dictWord{10, 10, 759}, - dictWord{10, 10, 814}, - dictWord{11, 10, 59}, - dictWord{11, 10, 235}, - dictWord{11, 10, 590}, - dictWord{11, 10, 929}, - dictWord{11, 10, 963}, - dictWord{ - 11, - 10, - 987, - }, - dictWord{12, 10, 114}, - dictWord{12, 10, 182}, - dictWord{12, 10, 226}, - dictWord{12, 10, 332}, - dictWord{12, 10, 439}, - dictWord{12, 10, 575}, - dictWord{ - 12, - 10, - 598, - }, - dictWord{12, 10, 675}, - dictWord{13, 10, 8}, - dictWord{13, 10, 125}, - dictWord{13, 10, 194}, - dictWord{13, 10, 287}, - dictWord{14, 10, 197}, - dictWord{14, 10, 383}, - dictWord{15, 10, 53}, - dictWord{17, 10, 63}, - dictWord{19, 10, 46}, - dictWord{19, 10, 98}, - dictWord{19, 10, 106}, - dictWord{148, 10, 85}, - dictWord{132, 11, 476}, - dictWord{4, 0, 327}, - dictWord{5, 0, 478}, - dictWord{7, 0, 1332}, - dictWord{136, 0, 753}, - dictWord{5, 0, 1020}, - dictWord{133, 0, 1022}, - dictWord{135, 11, 1807}, - dictWord{4, 0, 103}, - dictWord{133, 0, 401}, - dictWord{4, 0, 499}, - dictWord{135, 0, 1421}, - dictWord{10, 0, 207}, - dictWord{13, 0, 164}, - dictWord{147, 10, 126}, - dictWord{9, 11, 20}, - dictWord{10, 11, 324}, - dictWord{139, 11, 488}, - dictWord{132, 0, 96}, - dictWord{9, 11, 280}, - dictWord{ - 138, - 11, - 134, - }, - dictWord{135, 0, 968}, - dictWord{133, 10, 187}, - dictWord{135, 10, 1286}, - dictWord{5, 11, 112}, - dictWord{6, 11, 103}, - dictWord{134, 11, 150}, - dictWord{8, 0, 914}, - dictWord{10, 0, 3}, - dictWord{4, 10, 215}, - dictWord{9, 10, 38}, - dictWord{11, 10, 23}, - dictWord{11, 10, 127}, - dictWord{139, 10, 796}, - dictWord{ - 135, - 0, - 399, - }, - dictWord{6, 0, 563}, - dictWord{137, 0, 224}, - dictWord{6, 0, 704}, - dictWord{134, 0, 1214}, - dictWord{4, 11, 708}, - dictWord{8, 11, 15}, - dictWord{ - 9, - 11, - 50, - }, - dictWord{9, 11, 386}, - dictWord{11, 11, 18}, - dictWord{11, 11, 529}, - dictWord{140, 11, 228}, - dictWord{4, 11, 563}, - dictWord{7, 11, 109}, - dictWord{ - 7, - 11, - 592, - }, - dictWord{7, 11, 637}, - dictWord{7, 11, 770}, - dictWord{7, 11, 1701}, - dictWord{8, 11, 436}, - dictWord{8, 11, 463}, - dictWord{9, 11, 60}, - dictWord{9, 11, 335}, - dictWord{9, 11, 904}, - dictWord{10, 11, 73}, - dictWord{11, 11, 434}, - dictWord{12, 11, 585}, - dictWord{13, 11, 331}, - dictWord{18, 11, 110}, - dictWord{ - 148, - 11, - 60, - }, - dictWord{134, 0, 1559}, - dictWord{132, 11, 502}, - dictWord{6, 11, 347}, - dictWord{138, 11, 161}, - dictWord{4, 11, 33}, - dictWord{5, 11, 102}, - dictWord{ - 5, - 11, - 500, - }, - dictWord{6, 11, 284}, - dictWord{7, 11, 1079}, - dictWord{7, 11, 1423}, - dictWord{7, 11, 1702}, - dictWord{8, 11, 470}, - dictWord{9, 11, 554}, - dictWord{ - 9, - 11, - 723, - }, - dictWord{139, 11, 333}, - dictWord{7, 11, 246}, - dictWord{135, 11, 840}, - dictWord{6, 11, 10}, - dictWord{8, 11, 571}, - dictWord{9, 11, 739}, - dictWord{ - 143, - 11, - 91, - }, - dictWord{8, 0, 861}, - dictWord{10, 0, 905}, - dictWord{12, 0, 730}, - dictWord{12, 0, 789}, - dictWord{133, 11, 626}, - dictWord{134, 0, 946}, - dictWord{ - 5, - 0, - 746, - }, - dictWord{12, 0, 333}, - dictWord{14, 0, 332}, - dictWord{12, 11, 333}, - dictWord{142, 11, 332}, - dictWord{5, 11, 18}, - dictWord{6, 11, 526}, - dictWord{ - 13, - 11, - 24, - }, - dictWord{13, 11, 110}, - dictWord{19, 11, 5}, - dictWord{147, 11, 44}, - dictWord{4, 0, 910}, - dictWord{5, 0, 832}, - dictWord{135, 10, 2002}, - dictWord{ - 10, - 11, - 768, - }, - dictWord{139, 11, 787}, - dictWord{4, 11, 309}, - dictWord{5, 11, 462}, - dictWord{7, 11, 970}, - dictWord{135, 11, 1097}, - dictWord{4, 10, 28}, - dictWord{ - 5, - 10, - 440, - }, - dictWord{7, 10, 248}, - dictWord{11, 10, 833}, - dictWord{140, 10, 344}, - dictWord{134, 10, 1654}, - dictWord{6, 0, 632}, - dictWord{6, 0, 652}, - dictWord{ - 6, - 0, - 1272, - }, - dictWord{6, 0, 1384}, - dictWord{134, 0, 1560}, - dictWord{134, 11, 1704}, - dictWord{6, 0, 1393}, - dictWord{133, 10, 853}, - dictWord{6, 10, 249}, - dictWord{7, 10, 1234}, - dictWord{139, 10, 573}, - dictWord{5, 11, 86}, - dictWord{7, 11, 743}, - dictWord{9, 11, 85}, - dictWord{10, 11, 281}, - dictWord{10, 11, 432}, - dictWord{11, 11, 490}, - dictWord{12, 11, 251}, - dictWord{13, 11, 118}, - dictWord{14, 11, 378}, - dictWord{146, 11, 143}, - dictWord{5, 11, 524}, - dictWord{ - 133, - 11, - 744, - }, - dictWord{134, 0, 1514}, - dictWord{10, 0, 201}, - dictWord{142, 0, 319}, - dictWord{7, 0, 717}, - dictWord{10, 0, 510}, - dictWord{7, 10, 392}, - dictWord{ - 8, - 10, - 20, - }, - dictWord{8, 10, 172}, - dictWord{8, 10, 690}, - dictWord{9, 10, 383}, - dictWord{9, 10, 845}, - dictWord{11, 10, 293}, - dictWord{11, 10, 832}, - dictWord{ - 11, - 10, - 920, - }, - dictWord{11, 10, 984}, - dictWord{141, 10, 221}, - dictWord{134, 0, 1381}, - dictWord{5, 10, 858}, - dictWord{133, 10, 992}, - dictWord{8, 0, 528}, - dictWord{137, 0, 348}, - dictWord{10, 11, 107}, - dictWord{140, 11, 436}, - dictWord{4, 0, 20}, - dictWord{133, 0, 616}, - dictWord{134, 0, 1251}, - dictWord{ - 132, - 11, - 927, - }, - dictWord{10, 11, 123}, - dictWord{12, 11, 670}, - dictWord{13, 11, 371}, - dictWord{14, 11, 142}, - dictWord{146, 11, 94}, - dictWord{134, 0, 1163}, - dictWord{ - 7, - 11, - 1149, - }, - dictWord{137, 11, 156}, - dictWord{134, 0, 307}, - dictWord{133, 11, 778}, - dictWord{7, 0, 1091}, - dictWord{135, 0, 1765}, - dictWord{ - 5, - 11, - 502, - }, - dictWord{6, 10, 268}, - dictWord{137, 10, 62}, - dictWord{8, 11, 196}, - dictWord{10, 11, 283}, - dictWord{139, 11, 406}, - dictWord{4, 0, 26}, - dictWord{ - 5, - 0, - 429, - }, - dictWord{6, 0, 245}, - dictWord{7, 0, 704}, - dictWord{7, 0, 1379}, - dictWord{135, 0, 1474}, - dictWord{133, 11, 855}, - dictWord{132, 0, 881}, - dictWord{ - 4, - 0, - 621, - }, - dictWord{135, 11, 1596}, - dictWord{7, 11, 1400}, - dictWord{9, 11, 446}, - dictWord{138, 11, 45}, - dictWord{6, 0, 736}, - dictWord{138, 10, 106}, - dictWord{133, 0, 542}, - dictWord{134, 0, 348}, - dictWord{133, 0, 868}, - dictWord{136, 0, 433}, - dictWord{135, 0, 1495}, - dictWord{138, 0, 771}, - dictWord{ - 6, - 10, - 613, - }, - dictWord{136, 10, 223}, - dictWord{138, 0, 215}, - dictWord{141, 0, 124}, - dictWord{136, 11, 391}, - dictWord{135, 11, 172}, - dictWord{132, 10, 670}, - dictWord{140, 0, 55}, - dictWord{9, 10, 40}, - dictWord{139, 10, 136}, - dictWord{7, 0, 62}, - dictWord{147, 0, 112}, - dictWord{132, 0, 856}, - dictWord{132, 11, 568}, - dictWord{12, 0, 270}, - dictWord{139, 10, 259}, - dictWord{8, 0, 572}, - dictWord{137, 0, 698}, - dictWord{4, 11, 732}, - dictWord{9, 10, 310}, - dictWord{137, 10, 682}, - dictWord{142, 10, 296}, - dictWord{134, 0, 939}, - dictWord{136, 11, 733}, - dictWord{135, 11, 1435}, - dictWord{7, 10, 1401}, - dictWord{135, 10, 1476}, - dictWord{6, 0, 352}, - dictWord{4, 10, 296}, - dictWord{7, 10, 401}, - dictWord{7, 10, 1410}, - dictWord{7, 10, 1594}, - dictWord{7, 10, 1674}, - dictWord{8, 10, 63}, - dictWord{ - 8, - 10, - 660, - }, - dictWord{137, 10, 74}, - dictWord{4, 11, 428}, - dictWord{133, 11, 668}, - dictWord{4, 10, 139}, - dictWord{4, 10, 388}, - dictWord{140, 10, 188}, - dictWord{7, 11, 2015}, - dictWord{140, 11, 665}, - dictWord{132, 0, 647}, - dictWord{146, 0, 10}, - dictWord{138, 0, 220}, - dictWord{142, 0, 464}, - dictWord{ - 132, - 0, - 109, - }, - dictWord{134, 0, 1746}, - dictWord{6, 0, 515}, - dictWord{4, 10, 747}, - dictWord{6, 11, 1623}, - dictWord{6, 11, 1681}, - dictWord{7, 10, 649}, - dictWord{ - 7, - 10, - 1479, - }, - dictWord{135, 10, 1583}, - dictWord{133, 10, 232}, - dictWord{135, 0, 566}, - dictWord{137, 10, 887}, - dictWord{4, 0, 40}, - dictWord{10, 0, 67}, - dictWord{ - 11, - 0, - 117, - }, - dictWord{11, 0, 768}, - dictWord{139, 0, 935}, - dictWord{132, 0, 801}, - dictWord{7, 0, 992}, - dictWord{8, 0, 301}, - dictWord{9, 0, 722}, - dictWord{ - 12, - 0, - 63, - }, - dictWord{13, 0, 29}, - dictWord{14, 0, 161}, - dictWord{143, 0, 18}, - dictWord{139, 0, 923}, - dictWord{6, 11, 1748}, - dictWord{8, 11, 715}, - dictWord{9, 11, 802}, - dictWord{10, 11, 46}, - dictWord{10, 11, 819}, - dictWord{13, 11, 308}, - dictWord{14, 11, 351}, - dictWord{14, 11, 363}, - dictWord{146, 11, 67}, - dictWord{ - 137, - 11, - 745, - }, - dictWord{7, 0, 1145}, - dictWord{4, 10, 14}, - dictWord{7, 10, 1801}, - dictWord{10, 10, 748}, - dictWord{141, 10, 458}, - dictWord{4, 11, 63}, - dictWord{ - 5, - 11, - 347, - }, - dictWord{134, 11, 474}, - dictWord{135, 0, 568}, - dictWord{4, 10, 425}, - dictWord{7, 11, 577}, - dictWord{7, 11, 1432}, - dictWord{9, 11, 475}, - dictWord{ - 9, - 11, - 505, - }, - dictWord{9, 11, 526}, - dictWord{9, 11, 609}, - dictWord{9, 11, 689}, - dictWord{9, 11, 726}, - dictWord{9, 11, 735}, - dictWord{9, 11, 738}, - dictWord{ - 10, - 11, - 556, - }, - dictWord{10, 11, 674}, - dictWord{10, 11, 684}, - dictWord{11, 11, 89}, - dictWord{11, 11, 202}, - dictWord{11, 11, 272}, - dictWord{11, 11, 380}, - dictWord{ - 11, - 11, - 415, - }, - dictWord{11, 11, 505}, - dictWord{11, 11, 537}, - dictWord{11, 11, 550}, - dictWord{11, 11, 562}, - dictWord{11, 11, 640}, - dictWord{11, 11, 667}, - dictWord{11, 11, 688}, - dictWord{11, 11, 847}, - dictWord{11, 11, 927}, - dictWord{11, 11, 930}, - dictWord{11, 11, 940}, - dictWord{12, 11, 144}, - dictWord{ - 12, - 11, - 325, - }, - dictWord{12, 11, 329}, - dictWord{12, 11, 389}, - dictWord{12, 11, 403}, - dictWord{12, 11, 451}, - dictWord{12, 11, 515}, - dictWord{12, 11, 604}, - dictWord{ - 12, - 11, - 616, - }, - dictWord{12, 11, 626}, - dictWord{13, 11, 66}, - dictWord{13, 11, 131}, - dictWord{13, 11, 167}, - dictWord{13, 11, 236}, - dictWord{13, 11, 368}, - dictWord{13, 11, 411}, - dictWord{13, 11, 434}, - dictWord{13, 11, 453}, - dictWord{13, 11, 461}, - dictWord{13, 11, 474}, - dictWord{14, 11, 59}, - dictWord{14, 11, 60}, - dictWord{14, 11, 139}, - dictWord{14, 11, 152}, - dictWord{14, 11, 276}, - dictWord{14, 11, 353}, - dictWord{14, 11, 402}, - dictWord{15, 11, 28}, - dictWord{ - 15, - 11, - 81, - }, - dictWord{15, 11, 123}, - dictWord{15, 11, 152}, - dictWord{18, 11, 136}, - dictWord{148, 11, 88}, - dictWord{137, 0, 247}, - dictWord{135, 11, 1622}, - dictWord{ - 9, - 11, - 544, - }, - dictWord{11, 11, 413}, - dictWord{144, 11, 25}, - dictWord{4, 0, 645}, - dictWord{7, 0, 825}, - dictWord{6, 10, 1768}, - dictWord{135, 11, 89}, - dictWord{140, 0, 328}, - dictWord{5, 10, 943}, - dictWord{134, 10, 1779}, - dictWord{134, 0, 1363}, - dictWord{5, 10, 245}, - dictWord{6, 10, 576}, - dictWord{7, 10, 582}, - dictWord{136, 10, 225}, - dictWord{134, 0, 1280}, - dictWord{5, 11, 824}, - dictWord{133, 11, 941}, - dictWord{7, 11, 440}, - dictWord{8, 11, 230}, - dictWord{ - 139, - 11, - 106, - }, - dictWord{5, 0, 28}, - dictWord{6, 0, 204}, - dictWord{10, 0, 320}, - dictWord{10, 0, 583}, - dictWord{13, 0, 502}, - dictWord{14, 0, 72}, - dictWord{14, 0, 274}, - dictWord{14, 0, 312}, - dictWord{14, 0, 344}, - dictWord{15, 0, 159}, - dictWord{16, 0, 62}, - dictWord{16, 0, 69}, - dictWord{17, 0, 30}, - dictWord{18, 0, 42}, - dictWord{ - 18, - 0, - 53, - }, - dictWord{18, 0, 84}, - dictWord{18, 0, 140}, - dictWord{19, 0, 68}, - dictWord{19, 0, 85}, - dictWord{20, 0, 5}, - dictWord{20, 0, 45}, - dictWord{20, 0, 101}, - dictWord{ - 22, - 0, - 7, - }, - dictWord{150, 0, 20}, - dictWord{4, 0, 558}, - dictWord{6, 0, 390}, - dictWord{7, 0, 162}, - dictWord{7, 0, 689}, - dictWord{9, 0, 360}, - dictWord{138, 0, 653}, - dictWord{134, 0, 764}, - dictWord{6, 0, 862}, - dictWord{137, 0, 833}, - dictWord{5, 0, 856}, - dictWord{6, 0, 1672}, - dictWord{6, 0, 1757}, - dictWord{134, 0, 1781}, - dictWord{ - 5, - 0, - 92, - }, - dictWord{10, 0, 736}, - dictWord{140, 0, 102}, - dictWord{6, 0, 1927}, - dictWord{6, 0, 1944}, - dictWord{8, 0, 924}, - dictWord{8, 0, 948}, - dictWord{ - 10, - 0, - 967, - }, - dictWord{138, 0, 978}, - dictWord{134, 0, 1479}, - dictWord{5, 0, 590}, - dictWord{8, 0, 360}, - dictWord{9, 0, 213}, - dictWord{138, 0, 63}, - dictWord{ - 134, - 0, - 1521, - }, - dictWord{6, 0, 709}, - dictWord{134, 0, 891}, - dictWord{132, 10, 443}, - dictWord{13, 0, 477}, - dictWord{14, 0, 120}, - dictWord{148, 0, 61}, - dictWord{ - 4, - 11, - 914, - }, - dictWord{5, 11, 800}, - dictWord{133, 11, 852}, - dictWord{10, 11, 54}, - dictWord{141, 11, 115}, - dictWord{4, 11, 918}, - dictWord{133, 11, 876}, - dictWord{139, 11, 152}, - dictWord{4, 11, 92}, - dictWord{133, 11, 274}, - dictWord{135, 11, 1901}, - dictWord{9, 11, 800}, - dictWord{10, 11, 693}, - dictWord{ - 11, - 11, - 482, - }, - dictWord{11, 11, 734}, - dictWord{139, 11, 789}, - dictWord{9, 0, 483}, - dictWord{132, 10, 298}, - dictWord{6, 0, 1213}, - dictWord{141, 11, 498}, - dictWord{135, 11, 1451}, - dictWord{133, 11, 743}, - dictWord{4, 0, 1022}, - dictWord{10, 0, 1000}, - dictWord{12, 0, 957}, - dictWord{12, 0, 980}, - dictWord{ - 12, - 0, - 1013, - }, - dictWord{14, 0, 481}, - dictWord{144, 0, 116}, - dictWord{8, 0, 503}, - dictWord{17, 0, 29}, - dictWord{4, 11, 49}, - dictWord{7, 11, 280}, - dictWord{ - 135, - 11, - 1633, - }, - dictWord{135, 0, 1712}, - dictWord{134, 0, 466}, - dictWord{136, 11, 47}, - dictWord{5, 10, 164}, - dictWord{7, 10, 121}, - dictWord{142, 10, 189}, - dictWord{ - 7, - 10, - 812, - }, - dictWord{7, 10, 1261}, - dictWord{7, 10, 1360}, - dictWord{9, 10, 632}, - dictWord{140, 10, 352}, - dictWord{139, 10, 556}, - dictWord{132, 0, 731}, - dictWord{5, 11, 272}, - dictWord{5, 11, 908}, - dictWord{5, 11, 942}, - dictWord{7, 11, 1008}, - dictWord{7, 11, 1560}, - dictWord{8, 11, 197}, - dictWord{9, 11, 47}, - dictWord{11, 11, 538}, - dictWord{139, 11, 742}, - dictWord{4, 10, 172}, - dictWord{9, 10, 611}, - dictWord{10, 10, 436}, - dictWord{12, 10, 673}, - dictWord{ - 141, - 10, - 255, - }, - dictWord{133, 10, 844}, - dictWord{10, 0, 484}, - dictWord{11, 0, 754}, - dictWord{12, 0, 457}, - dictWord{14, 0, 171}, - dictWord{14, 0, 389}, - dictWord{ - 146, - 0, - 153, - }, - dictWord{9, 10, 263}, - dictWord{10, 10, 147}, - dictWord{138, 10, 492}, - dictWord{137, 11, 891}, - dictWord{138, 0, 241}, - dictWord{133, 10, 537}, - dictWord{6, 0, 2005}, - dictWord{136, 0, 964}, - dictWord{137, 10, 842}, - dictWord{151, 11, 8}, - dictWord{4, 11, 407}, - dictWord{132, 11, 560}, - dictWord{ - 135, - 11, - 1884, - }, - dictWord{6, 0, 1100}, - dictWord{134, 0, 1242}, - dictWord{135, 0, 954}, - dictWord{5, 10, 230}, - dictWord{5, 10, 392}, - dictWord{6, 10, 420}, - dictWord{ - 9, - 10, - 568, - }, - dictWord{140, 10, 612}, - dictWord{4, 11, 475}, - dictWord{11, 11, 35}, - dictWord{11, 11, 90}, - dictWord{13, 11, 7}, - dictWord{13, 11, 71}, - dictWord{ - 13, - 11, - 177, - }, - dictWord{142, 11, 422}, - dictWord{136, 11, 332}, - dictWord{135, 0, 1958}, - dictWord{6, 0, 549}, - dictWord{8, 0, 34}, - dictWord{8, 0, 283}, - dictWord{ - 9, - 0, - 165, - }, - dictWord{138, 0, 475}, - dictWord{10, 0, 952}, - dictWord{12, 0, 966}, - dictWord{140, 0, 994}, - dictWord{5, 0, 652}, - dictWord{5, 0, 701}, - dictWord{ - 135, - 0, - 449, - }, - dictWord{4, 0, 655}, - dictWord{7, 0, 850}, - dictWord{17, 0, 75}, - dictWord{146, 0, 137}, - dictWord{4, 0, 146}, - dictWord{7, 0, 1618}, - dictWord{8, 0, 670}, - dictWord{ - 5, - 10, - 41, - }, - dictWord{7, 10, 1459}, - dictWord{7, 10, 1469}, - dictWord{7, 10, 1859}, - dictWord{9, 10, 549}, - dictWord{139, 10, 905}, - dictWord{133, 10, 696}, - dictWord{6, 0, 159}, - dictWord{6, 0, 364}, - dictWord{7, 0, 516}, - dictWord{137, 0, 518}, - dictWord{135, 0, 1439}, - dictWord{6, 11, 222}, - dictWord{7, 11, 636}, - dictWord{ - 7, - 11, - 1620, - }, - dictWord{8, 11, 409}, - dictWord{9, 11, 693}, - dictWord{139, 11, 77}, - dictWord{13, 0, 151}, - dictWord{141, 11, 45}, - dictWord{6, 0, 1027}, - dictWord{ - 4, - 11, - 336, - }, - dictWord{132, 10, 771}, - dictWord{139, 11, 392}, - dictWord{10, 11, 121}, - dictWord{11, 11, 175}, - dictWord{149, 11, 16}, - dictWord{8, 0, 950}, - dictWord{138, 0, 983}, - dictWord{133, 10, 921}, - dictWord{135, 0, 993}, - dictWord{6, 10, 180}, - dictWord{7, 10, 1137}, - dictWord{8, 10, 751}, - dictWord{ - 139, - 10, - 805, - }, - dictWord{7, 0, 501}, - dictWord{9, 0, 111}, - dictWord{10, 0, 141}, - dictWord{11, 0, 332}, - dictWord{13, 0, 43}, - dictWord{13, 0, 429}, - dictWord{14, 0, 130}, - dictWord{14, 0, 415}, - dictWord{145, 0, 102}, - dictWord{4, 10, 183}, - dictWord{5, 11, 882}, - dictWord{7, 10, 271}, - dictWord{11, 10, 824}, - dictWord{11, 10, 952}, - dictWord{13, 10, 278}, - dictWord{13, 10, 339}, - dictWord{13, 10, 482}, - dictWord{14, 10, 424}, - dictWord{148, 10, 99}, - dictWord{4, 10, 19}, - dictWord{5, 10, 477}, - dictWord{5, 10, 596}, - dictWord{6, 10, 505}, - dictWord{7, 10, 1221}, - dictWord{11, 10, 907}, - dictWord{12, 10, 209}, - dictWord{141, 10, 214}, - dictWord{ - 135, - 10, - 1215, - }, - dictWord{133, 0, 452}, - dictWord{132, 11, 426}, - dictWord{5, 0, 149}, - dictWord{136, 0, 233}, - dictWord{133, 0, 935}, - dictWord{6, 11, 58}, - dictWord{ - 7, - 11, - 654, - }, - dictWord{7, 11, 745}, - dictWord{7, 11, 1969}, - dictWord{8, 11, 240}, - dictWord{8, 11, 675}, - dictWord{9, 11, 479}, - dictWord{9, 11, 731}, - dictWord{ - 10, - 11, - 330, - }, - dictWord{10, 11, 593}, - dictWord{10, 11, 817}, - dictWord{11, 11, 32}, - dictWord{11, 11, 133}, - dictWord{11, 11, 221}, - dictWord{145, 11, 68}, - dictWord{ - 12, - 0, - 582, - }, - dictWord{18, 0, 131}, - dictWord{7, 11, 102}, - dictWord{137, 11, 538}, - dictWord{136, 0, 801}, - dictWord{134, 10, 1645}, - dictWord{132, 0, 70}, - dictWord{6, 10, 92}, - dictWord{6, 10, 188}, - dictWord{7, 10, 1269}, - dictWord{7, 10, 1524}, - dictWord{7, 10, 1876}, - dictWord{10, 10, 228}, - dictWord{139, 10, 1020}, - dictWord{4, 10, 459}, - dictWord{133, 10, 966}, - dictWord{138, 0, 369}, - dictWord{16, 0, 36}, - dictWord{140, 10, 330}, - dictWord{141, 11, 366}, - dictWord{ - 7, - 0, - 721, - }, - dictWord{10, 0, 236}, - dictWord{12, 0, 204}, - dictWord{6, 10, 18}, - dictWord{7, 10, 932}, - dictWord{8, 10, 757}, - dictWord{9, 10, 54}, - dictWord{9, 10, 65}, - dictWord{9, 10, 844}, - dictWord{10, 10, 113}, - dictWord{10, 10, 315}, - dictWord{10, 10, 798}, - dictWord{11, 10, 153}, - dictWord{12, 10, 151}, - dictWord{12, 10, 392}, - dictWord{12, 10, 666}, - dictWord{142, 10, 248}, - dictWord{7, 0, 241}, - dictWord{10, 0, 430}, - dictWord{8, 10, 548}, - dictWord{9, 10, 532}, - dictWord{10, 10, 117}, - dictWord{11, 10, 351}, - dictWord{11, 10, 375}, - dictWord{143, 10, 23}, - dictWord{134, 10, 1742}, - dictWord{133, 10, 965}, - dictWord{133, 11, 566}, - dictWord{ - 6, - 11, - 48, - }, - dictWord{135, 11, 63}, - dictWord{134, 10, 182}, - dictWord{10, 10, 65}, - dictWord{10, 10, 488}, - dictWord{138, 10, 497}, - dictWord{6, 11, 114}, - dictWord{7, 11, 1224}, - dictWord{7, 11, 1556}, - dictWord{136, 11, 3}, - dictWord{134, 0, 1817}, - dictWord{8, 11, 576}, - dictWord{137, 11, 267}, - dictWord{ - 6, - 0, - 1078, - }, - dictWord{144, 0, 16}, - dictWord{9, 10, 588}, - dictWord{138, 10, 260}, - dictWord{138, 0, 1021}, - dictWord{5, 0, 406}, - dictWord{134, 0, 2022}, - dictWord{133, 11, 933}, - dictWord{6, 0, 69}, - dictWord{135, 0, 117}, - dictWord{7, 0, 1830}, - dictWord{136, 11, 427}, - dictWord{4, 0, 432}, - dictWord{135, 0, 824}, - dictWord{134, 10, 1786}, - dictWord{133, 0, 826}, - dictWord{139, 11, 67}, - dictWord{133, 11, 759}, - dictWord{135, 10, 308}, - dictWord{137, 0, 816}, - dictWord{ - 133, - 0, - 1000, - }, - dictWord{4, 0, 297}, - dictWord{6, 0, 529}, - dictWord{7, 0, 152}, - dictWord{7, 0, 713}, - dictWord{7, 0, 1845}, - dictWord{8, 0, 710}, - dictWord{8, 0, 717}, - dictWord{12, 0, 639}, - dictWord{140, 0, 685}, - dictWord{7, 0, 423}, - dictWord{136, 10, 588}, - dictWord{136, 10, 287}, - dictWord{136, 0, 510}, - dictWord{ - 134, - 0, - 1048, - }, - dictWord{6, 0, 618}, - dictWord{7, 11, 56}, - dictWord{7, 11, 1989}, - dictWord{8, 11, 337}, - dictWord{8, 11, 738}, - dictWord{9, 11, 600}, - dictWord{ - 10, - 11, - 483, - }, - dictWord{12, 11, 37}, - dictWord{13, 11, 447}, - dictWord{142, 11, 92}, - dictWord{4, 0, 520}, - dictWord{135, 0, 575}, - dictWord{8, 0, 990}, - dictWord{ - 138, - 0, - 977, - }, - dictWord{135, 11, 774}, - dictWord{9, 11, 347}, - dictWord{11, 11, 24}, - dictWord{140, 11, 170}, - dictWord{136, 11, 379}, - dictWord{140, 10, 290}, - dictWord{132, 11, 328}, - dictWord{4, 0, 321}, - dictWord{134, 0, 569}, - dictWord{4, 11, 101}, - dictWord{135, 11, 1171}, - dictWord{7, 0, 723}, - dictWord{7, 0, 1135}, - dictWord{5, 11, 833}, - dictWord{136, 11, 744}, - dictWord{7, 10, 719}, - dictWord{8, 10, 809}, - dictWord{136, 10, 834}, - dictWord{8, 0, 921}, - dictWord{136, 10, 796}, - dictWord{5, 10, 210}, - dictWord{6, 10, 213}, - dictWord{7, 10, 60}, - dictWord{10, 10, 364}, - dictWord{139, 10, 135}, - dictWord{5, 0, 397}, - dictWord{6, 0, 154}, - dictWord{7, 0, 676}, - dictWord{8, 0, 443}, - dictWord{8, 0, 609}, - dictWord{9, 0, 24}, - dictWord{9, 0, 325}, - dictWord{10, 0, 35}, - dictWord{11, 0, 535}, - dictWord{11, 0, 672}, - dictWord{11, 0, 1018}, - dictWord{12, 0, 637}, - dictWord{16, 0, 30}, - dictWord{5, 10, 607}, - dictWord{8, 10, 326}, - dictWord{136, 10, 490}, - dictWord{4, 10, 701}, - dictWord{5, 10, 472}, - dictWord{6, 11, 9}, - dictWord{6, 11, 397}, - dictWord{7, 11, 53}, - dictWord{7, 11, 1742}, - dictWord{9, 10, 758}, - dictWord{10, 11, 632}, - dictWord{ - 11, - 11, - 828, - }, - dictWord{140, 11, 146}, - dictWord{135, 10, 380}, - dictWord{135, 10, 1947}, - dictWord{148, 11, 109}, - dictWord{10, 10, 278}, - dictWord{ - 138, - 11, - 278, - }, - dictWord{134, 0, 856}, - dictWord{7, 0, 139}, - dictWord{4, 10, 386}, - dictWord{8, 10, 405}, - dictWord{8, 10, 728}, - dictWord{9, 10, 497}, - dictWord{ - 11, - 10, - 110, - }, - dictWord{11, 10, 360}, - dictWord{15, 10, 37}, - dictWord{144, 10, 84}, - dictWord{141, 0, 282}, - dictWord{133, 0, 981}, - dictWord{5, 0, 288}, - dictWord{ - 7, - 10, - 1452, - }, - dictWord{7, 10, 1480}, - dictWord{8, 10, 634}, - dictWord{140, 10, 472}, - dictWord{7, 0, 1890}, - dictWord{8, 11, 367}, - dictWord{10, 11, 760}, - dictWord{ - 14, - 11, - 79, - }, - dictWord{20, 11, 17}, - dictWord{152, 11, 0}, - dictWord{4, 10, 524}, - dictWord{136, 10, 810}, - dictWord{4, 0, 56}, - dictWord{7, 0, 1791}, - dictWord{ - 8, - 0, - 607, - }, - dictWord{8, 0, 651}, - dictWord{11, 0, 465}, - dictWord{11, 0, 835}, - dictWord{12, 0, 337}, - dictWord{141, 0, 480}, - dictWord{10, 10, 238}, - dictWord{ - 141, - 10, - 33, - }, - dictWord{11, 11, 417}, - dictWord{12, 11, 223}, - dictWord{140, 11, 265}, - dictWord{9, 0, 158}, - dictWord{10, 0, 411}, - dictWord{140, 0, 261}, - dictWord{ - 133, - 10, - 532, - }, - dictWord{133, 10, 997}, - dictWord{12, 11, 186}, - dictWord{12, 11, 292}, - dictWord{14, 11, 100}, - dictWord{146, 11, 70}, - dictWord{6, 0, 1403}, - dictWord{136, 0, 617}, - dictWord{134, 0, 1205}, - dictWord{139, 0, 563}, - dictWord{4, 0, 242}, - dictWord{134, 0, 333}, - dictWord{4, 11, 186}, - dictWord{5, 11, 157}, - dictWord{8, 11, 168}, - dictWord{138, 11, 6}, - dictWord{132, 0, 369}, - dictWord{133, 11, 875}, - dictWord{5, 10, 782}, - dictWord{5, 10, 829}, - dictWord{ - 134, - 10, - 1738, - }, - dictWord{134, 0, 622}, - dictWord{135, 11, 1272}, - dictWord{6, 0, 1407}, - dictWord{7, 11, 111}, - dictWord{136, 11, 581}, - dictWord{7, 10, 1823}, - dictWord{139, 10, 693}, - dictWord{7, 0, 160}, - dictWord{10, 0, 624}, - dictWord{142, 0, 279}, - dictWord{132, 0, 363}, - dictWord{10, 11, 589}, - dictWord{12, 11, 111}, - dictWord{13, 11, 260}, - dictWord{14, 11, 82}, - dictWord{18, 11, 63}, - dictWord{147, 11, 45}, - dictWord{7, 11, 1364}, - dictWord{7, 11, 1907}, - dictWord{ - 141, - 11, - 158, - }, - dictWord{4, 11, 404}, - dictWord{4, 11, 659}, - dictWord{135, 11, 675}, - dictWord{13, 11, 211}, - dictWord{14, 11, 133}, - dictWord{14, 11, 204}, - dictWord{ - 15, - 11, - 64, - }, - dictWord{15, 11, 69}, - dictWord{15, 11, 114}, - dictWord{16, 11, 10}, - dictWord{19, 11, 23}, - dictWord{19, 11, 35}, - dictWord{19, 11, 39}, - dictWord{ - 19, - 11, - 51, - }, - dictWord{19, 11, 71}, - dictWord{19, 11, 75}, - dictWord{152, 11, 15}, - dictWord{4, 10, 78}, - dictWord{5, 10, 96}, - dictWord{5, 10, 182}, - dictWord{7, 10, 1724}, - dictWord{7, 10, 1825}, - dictWord{10, 10, 394}, - dictWord{10, 10, 471}, - dictWord{11, 10, 532}, - dictWord{14, 10, 340}, - dictWord{145, 10, 88}, - dictWord{ - 135, - 10, - 1964, - }, - dictWord{133, 11, 391}, - dictWord{11, 11, 887}, - dictWord{14, 11, 365}, - dictWord{142, 11, 375}, - dictWord{5, 11, 540}, - dictWord{6, 11, 1697}, - dictWord{7, 11, 222}, - dictWord{136, 11, 341}, - dictWord{134, 11, 78}, - dictWord{9, 0, 601}, - dictWord{9, 0, 619}, - dictWord{10, 0, 505}, - dictWord{10, 0, 732}, - dictWord{11, 0, 355}, - dictWord{140, 0, 139}, - dictWord{134, 0, 292}, - dictWord{139, 0, 174}, - dictWord{5, 0, 177}, - dictWord{6, 0, 616}, - dictWord{7, 0, 827}, - dictWord{ - 9, - 0, - 525, - }, - dictWord{138, 0, 656}, - dictWord{10, 0, 31}, - dictWord{6, 10, 215}, - dictWord{7, 10, 1028}, - dictWord{7, 10, 1473}, - dictWord{7, 10, 1721}, - dictWord{ - 9, - 10, - 424, - }, - dictWord{138, 10, 779}, - dictWord{135, 10, 584}, - dictWord{136, 11, 293}, - dictWord{134, 0, 685}, - dictWord{135, 11, 1868}, - dictWord{ - 133, - 11, - 460, - }, - dictWord{7, 0, 647}, - dictWord{6, 10, 67}, - dictWord{7, 10, 1630}, - dictWord{9, 10, 354}, - dictWord{9, 10, 675}, - dictWord{10, 10, 830}, - dictWord{ - 14, - 10, - 80, - }, - dictWord{145, 10, 80}, - dictWord{4, 0, 161}, - dictWord{133, 0, 631}, - dictWord{6, 10, 141}, - dictWord{7, 10, 225}, - dictWord{9, 10, 59}, - dictWord{9, 10, 607}, - dictWord{10, 10, 312}, - dictWord{11, 10, 687}, - dictWord{12, 10, 555}, - dictWord{13, 10, 373}, - dictWord{13, 10, 494}, - dictWord{148, 10, 58}, - dictWord{ - 7, - 11, - 965, - }, - dictWord{7, 11, 1460}, - dictWord{135, 11, 1604}, - dictWord{136, 10, 783}, - dictWord{134, 11, 388}, - dictWord{6, 0, 722}, - dictWord{6, 0, 1267}, - dictWord{ - 4, - 11, - 511, - }, - dictWord{9, 11, 333}, - dictWord{9, 11, 379}, - dictWord{10, 11, 602}, - dictWord{11, 11, 441}, - dictWord{11, 11, 723}, - dictWord{11, 11, 976}, - dictWord{140, 11, 357}, - dictWord{134, 0, 1797}, - dictWord{135, 0, 1684}, - dictWord{9, 0, 469}, - dictWord{9, 0, 709}, - dictWord{12, 0, 512}, - dictWord{14, 0, 65}, - dictWord{17, 0, 12}, - dictWord{5, 11, 938}, - dictWord{136, 11, 707}, - dictWord{7, 0, 1230}, - dictWord{136, 0, 531}, - dictWord{10, 0, 229}, - dictWord{11, 0, 73}, - dictWord{ - 11, - 0, - 376, - }, - dictWord{139, 0, 433}, - dictWord{12, 0, 268}, - dictWord{12, 0, 640}, - dictWord{142, 0, 119}, - dictWord{7, 10, 430}, - dictWord{139, 10, 46}, - dictWord{ - 6, - 0, - 558, - }, - dictWord{7, 0, 651}, - dictWord{8, 0, 421}, - dictWord{9, 0, 0}, - dictWord{10, 0, 34}, - dictWord{139, 0, 1008}, - dictWord{6, 0, 106}, - dictWord{7, 0, 1786}, - dictWord{7, 0, 1821}, - dictWord{9, 0, 102}, - dictWord{9, 0, 763}, - dictWord{5, 10, 602}, - dictWord{7, 10, 2018}, - dictWord{137, 10, 418}, - dictWord{5, 0, 65}, - dictWord{ - 6, - 0, - 416, - }, - dictWord{7, 0, 1720}, - dictWord{7, 0, 1924}, - dictWord{10, 0, 109}, - dictWord{11, 0, 14}, - dictWord{11, 0, 70}, - dictWord{11, 0, 569}, - dictWord{11, 0, 735}, - dictWord{15, 0, 153}, - dictWord{20, 0, 80}, - dictWord{136, 10, 677}, - dictWord{135, 11, 1625}, - dictWord{137, 11, 772}, - dictWord{136, 0, 595}, - dictWord{ - 6, - 11, - 469, - }, - dictWord{7, 11, 1709}, - dictWord{138, 11, 515}, - dictWord{7, 0, 1832}, - dictWord{138, 0, 374}, - dictWord{9, 0, 106}, - dictWord{9, 0, 163}, - dictWord{ - 9, - 0, - 296, - }, - dictWord{10, 0, 167}, - dictWord{10, 0, 172}, - dictWord{10, 0, 777}, - dictWord{139, 0, 16}, - dictWord{6, 0, 6}, - dictWord{7, 0, 81}, - dictWord{7, 0, 771}, - dictWord{ - 7, - 0, - 1731, - }, - dictWord{9, 0, 405}, - dictWord{138, 0, 421}, - dictWord{4, 11, 500}, - dictWord{135, 11, 938}, - dictWord{5, 11, 68}, - dictWord{134, 11, 383}, - dictWord{ - 5, - 0, - 881, - }, - dictWord{133, 0, 885}, - dictWord{6, 0, 854}, - dictWord{6, 0, 1132}, - dictWord{6, 0, 1495}, - dictWord{6, 0, 1526}, - dictWord{6, 0, 1533}, - dictWord{ - 134, - 0, - 1577, - }, - dictWord{4, 11, 337}, - dictWord{6, 11, 353}, - dictWord{7, 11, 1934}, - dictWord{8, 11, 488}, - dictWord{137, 11, 429}, - dictWord{7, 11, 236}, - dictWord{ - 7, - 11, - 1795, - }, - dictWord{8, 11, 259}, - dictWord{9, 11, 135}, - dictWord{9, 11, 177}, - dictWord{10, 11, 825}, - dictWord{11, 11, 115}, - dictWord{11, 11, 370}, - dictWord{ - 11, - 11, - 405, - }, - dictWord{11, 11, 604}, - dictWord{12, 11, 10}, - dictWord{12, 11, 667}, - dictWord{12, 11, 669}, - dictWord{13, 11, 76}, - dictWord{14, 11, 310}, - dictWord{15, 11, 76}, - dictWord{15, 11, 147}, - dictWord{148, 11, 23}, - dictWord{5, 0, 142}, - dictWord{134, 0, 546}, - dictWord{4, 11, 15}, - dictWord{5, 11, 22}, - dictWord{ - 6, - 11, - 244, - }, - dictWord{7, 11, 40}, - dictWord{7, 11, 200}, - dictWord{7, 11, 906}, - dictWord{7, 11, 1199}, - dictWord{9, 11, 616}, - dictWord{10, 11, 716}, - dictWord{ - 11, - 11, - 635, - }, - dictWord{11, 11, 801}, - dictWord{140, 11, 458}, - dictWord{5, 0, 466}, - dictWord{11, 0, 571}, - dictWord{12, 0, 198}, - dictWord{13, 0, 283}, - dictWord{ - 14, - 0, - 186, - }, - dictWord{15, 0, 21}, - dictWord{15, 0, 103}, - dictWord{135, 10, 329}, - dictWord{4, 0, 185}, - dictWord{5, 0, 257}, - dictWord{5, 0, 839}, - dictWord{5, 0, 936}, - dictWord{9, 0, 399}, - dictWord{10, 0, 258}, - dictWord{10, 0, 395}, - dictWord{10, 0, 734}, - dictWord{11, 0, 1014}, - dictWord{12, 0, 23}, - dictWord{13, 0, 350}, - dictWord{ - 14, - 0, - 150, - }, - dictWord{19, 0, 6}, - dictWord{135, 11, 1735}, - dictWord{12, 11, 36}, - dictWord{141, 11, 337}, - dictWord{5, 11, 598}, - dictWord{7, 11, 791}, - dictWord{ - 8, - 11, - 108, - }, - dictWord{137, 11, 123}, - dictWord{132, 10, 469}, - dictWord{7, 0, 404}, - dictWord{7, 0, 1377}, - dictWord{7, 0, 1430}, - dictWord{7, 0, 2017}, - dictWord{ - 8, - 0, - 149, - }, - dictWord{8, 0, 239}, - dictWord{8, 0, 512}, - dictWord{8, 0, 793}, - dictWord{8, 0, 818}, - dictWord{9, 0, 474}, - dictWord{9, 0, 595}, - dictWord{10, 0, 122}, - dictWord{10, 0, 565}, - dictWord{10, 0, 649}, - dictWord{10, 0, 783}, - dictWord{11, 0, 239}, - dictWord{11, 0, 295}, - dictWord{11, 0, 447}, - dictWord{11, 0, 528}, - dictWord{ - 11, - 0, - 639, - }, - dictWord{11, 0, 800}, - dictWord{12, 0, 25}, - dictWord{12, 0, 77}, - dictWord{12, 0, 157}, - dictWord{12, 0, 256}, - dictWord{12, 0, 316}, - dictWord{12, 0, 390}, - dictWord{12, 0, 391}, - dictWord{12, 0, 395}, - dictWord{12, 0, 478}, - dictWord{12, 0, 503}, - dictWord{12, 0, 592}, - dictWord{12, 0, 680}, - dictWord{13, 0, 50}, - dictWord{13, 0, 53}, - dictWord{13, 0, 132}, - dictWord{13, 0, 198}, - dictWord{13, 0, 322}, - dictWord{13, 0, 415}, - dictWord{13, 0, 511}, - dictWord{14, 0, 71}, - dictWord{ - 14, - 0, - 395, - }, - dictWord{15, 0, 71}, - dictWord{15, 0, 136}, - dictWord{17, 0, 123}, - dictWord{18, 0, 93}, - dictWord{147, 0, 58}, - dictWord{136, 0, 712}, - dictWord{ - 134, - 10, - 1743, - }, - dictWord{5, 10, 929}, - dictWord{6, 10, 340}, - dictWord{8, 10, 376}, - dictWord{136, 10, 807}, - dictWord{6, 0, 1848}, - dictWord{8, 0, 860}, - dictWord{ - 10, - 0, - 856, - }, - dictWord{10, 0, 859}, - dictWord{10, 0, 925}, - dictWord{10, 0, 941}, - dictWord{140, 0, 762}, - dictWord{6, 0, 629}, - dictWord{6, 0, 906}, - dictWord{9, 0, 810}, - dictWord{140, 0, 652}, - dictWord{5, 10, 218}, - dictWord{7, 10, 1610}, - dictWord{138, 10, 83}, - dictWord{7, 10, 1512}, - dictWord{135, 10, 1794}, - dictWord{ - 4, - 0, - 377, - }, - dictWord{24, 0, 13}, - dictWord{4, 11, 155}, - dictWord{7, 11, 1689}, - dictWord{11, 10, 0}, - dictWord{144, 10, 78}, - dictWord{4, 11, 164}, - dictWord{5, 11, 151}, - dictWord{5, 11, 730}, - dictWord{5, 11, 741}, - dictWord{7, 11, 498}, - dictWord{7, 11, 870}, - dictWord{7, 11, 1542}, - dictWord{12, 11, 213}, - dictWord{14, 11, 36}, - dictWord{14, 11, 391}, - dictWord{17, 11, 111}, - dictWord{18, 11, 6}, - dictWord{18, 11, 46}, - dictWord{18, 11, 151}, - dictWord{19, 11, 36}, - dictWord{20, 11, 32}, - dictWord{20, 11, 56}, - dictWord{20, 11, 69}, - dictWord{20, 11, 102}, - dictWord{21, 11, 4}, - dictWord{22, 11, 8}, - dictWord{22, 11, 10}, - dictWord{22, 11, 14}, - dictWord{ - 150, - 11, - 31, - }, - dictWord{7, 0, 1842}, - dictWord{133, 10, 571}, - dictWord{4, 10, 455}, - dictWord{4, 11, 624}, - dictWord{135, 11, 1752}, - dictWord{134, 0, 1501}, - dictWord{4, 11, 492}, - dictWord{5, 11, 451}, - dictWord{6, 10, 161}, - dictWord{7, 10, 372}, - dictWord{137, 10, 597}, - dictWord{132, 10, 349}, - dictWord{4, 0, 180}, - dictWord{135, 0, 1906}, - dictWord{135, 11, 835}, - dictWord{141, 11, 70}, - dictWord{132, 0, 491}, - dictWord{137, 10, 751}, - dictWord{6, 10, 432}, - dictWord{ - 139, - 10, - 322, - }, - dictWord{4, 0, 171}, - dictWord{138, 0, 234}, - dictWord{6, 11, 113}, - dictWord{135, 11, 436}, - dictWord{4, 0, 586}, - dictWord{7, 0, 1186}, - dictWord{ - 138, - 0, - 631, - }, - dictWord{5, 10, 468}, - dictWord{10, 10, 325}, - dictWord{11, 10, 856}, - dictWord{12, 10, 345}, - dictWord{143, 10, 104}, - dictWord{5, 10, 223}, - dictWord{10, 11, 592}, - dictWord{10, 11, 753}, - dictWord{12, 11, 317}, - dictWord{12, 11, 355}, - dictWord{12, 11, 465}, - dictWord{12, 11, 469}, - dictWord{ - 12, - 11, - 560, - }, - dictWord{12, 11, 578}, - dictWord{141, 11, 243}, - dictWord{132, 10, 566}, - dictWord{135, 11, 520}, - dictWord{4, 10, 59}, - dictWord{135, 10, 1394}, - dictWord{6, 10, 436}, - dictWord{139, 10, 481}, - dictWord{9, 0, 931}, - dictWord{10, 0, 334}, - dictWord{20, 0, 71}, - dictWord{4, 10, 48}, - dictWord{5, 10, 271}, - dictWord{ - 7, - 10, - 953, - }, - dictWord{135, 11, 1878}, - dictWord{11, 0, 170}, - dictWord{5, 10, 610}, - dictWord{136, 10, 457}, - dictWord{133, 10, 755}, - dictWord{6, 0, 1587}, - dictWord{135, 10, 1217}, - dictWord{4, 10, 197}, - dictWord{149, 11, 26}, - dictWord{133, 11, 585}, - dictWord{137, 11, 521}, - dictWord{133, 0, 765}, - dictWord{ - 133, - 10, - 217, - }, - dictWord{139, 11, 586}, - dictWord{133, 0, 424}, - dictWord{9, 11, 752}, - dictWord{12, 11, 610}, - dictWord{13, 11, 431}, - dictWord{16, 11, 59}, - dictWord{146, 11, 109}, - dictWord{136, 0, 714}, - dictWord{7, 0, 685}, - dictWord{132, 11, 307}, - dictWord{9, 0, 420}, - dictWord{10, 0, 269}, - dictWord{10, 0, 285}, - dictWord{10, 0, 576}, - dictWord{11, 0, 397}, - dictWord{13, 0, 175}, - dictWord{145, 0, 90}, - dictWord{132, 0, 429}, - dictWord{133, 11, 964}, - dictWord{9, 11, 463}, - dictWord{138, 11, 595}, - dictWord{7, 0, 18}, - dictWord{7, 0, 699}, - dictWord{7, 0, 1966}, - dictWord{8, 0, 752}, - dictWord{9, 0, 273}, - dictWord{9, 0, 412}, - dictWord{ - 9, - 0, - 703, - }, - dictWord{10, 0, 71}, - dictWord{10, 0, 427}, - dictWord{138, 0, 508}, - dictWord{4, 10, 165}, - dictWord{7, 10, 1398}, - dictWord{135, 10, 1829}, - dictWord{ - 4, - 0, - 53, - }, - dictWord{5, 0, 186}, - dictWord{7, 0, 752}, - dictWord{7, 0, 828}, - dictWord{142, 0, 116}, - dictWord{8, 0, 575}, - dictWord{10, 0, 289}, - dictWord{139, 0, 319}, - dictWord{132, 0, 675}, - dictWord{134, 0, 1424}, - dictWord{4, 11, 75}, - dictWord{5, 11, 180}, - dictWord{6, 11, 500}, - dictWord{7, 11, 58}, - dictWord{7, 11, 710}, - dictWord{138, 11, 645}, - dictWord{133, 11, 649}, - dictWord{6, 11, 276}, - dictWord{7, 11, 282}, - dictWord{7, 11, 879}, - dictWord{7, 11, 924}, - dictWord{8, 11, 459}, - dictWord{9, 11, 599}, - dictWord{9, 11, 754}, - dictWord{11, 11, 574}, - dictWord{12, 11, 128}, - dictWord{12, 11, 494}, - dictWord{13, 11, 52}, - dictWord{13, 11, 301}, - dictWord{15, 11, 30}, - dictWord{143, 11, 132}, - dictWord{6, 0, 647}, - dictWord{134, 0, 1095}, - dictWord{5, 10, 9}, - dictWord{7, 10, 297}, - dictWord{7, 10, 966}, - dictWord{140, 10, 306}, - dictWord{132, 11, 200}, - dictWord{134, 0, 1334}, - dictWord{5, 10, 146}, - dictWord{6, 10, 411}, - dictWord{138, 10, 721}, - dictWord{ - 6, - 0, - 209, - }, - dictWord{6, 0, 1141}, - dictWord{6, 0, 1288}, - dictWord{8, 0, 468}, - dictWord{9, 0, 210}, - dictWord{11, 0, 36}, - dictWord{12, 0, 28}, - dictWord{12, 0, 630}, - dictWord{13, 0, 21}, - dictWord{13, 0, 349}, - dictWord{14, 0, 7}, - dictWord{145, 0, 13}, - dictWord{6, 10, 177}, - dictWord{135, 10, 467}, - dictWord{4, 0, 342}, - dictWord{ - 135, - 0, - 1179, - }, - dictWord{10, 11, 454}, - dictWord{140, 11, 324}, - dictWord{4, 0, 928}, - dictWord{133, 0, 910}, - dictWord{7, 0, 1838}, - dictWord{6, 11, 225}, - dictWord{ - 137, - 11, - 211, - }, - dictWord{16, 0, 101}, - dictWord{20, 0, 115}, - dictWord{20, 0, 118}, - dictWord{148, 0, 122}, - dictWord{4, 0, 496}, - dictWord{135, 0, 856}, - dictWord{ - 4, - 0, - 318, - }, - dictWord{11, 0, 654}, - dictWord{7, 11, 718}, - dictWord{139, 11, 102}, - dictWord{8, 11, 58}, - dictWord{9, 11, 724}, - dictWord{11, 11, 809}, - dictWord{ - 13, - 11, - 113, - }, - dictWord{145, 11, 72}, - dictWord{5, 10, 200}, - dictWord{6, 11, 345}, - dictWord{135, 11, 1247}, - dictWord{8, 11, 767}, - dictWord{8, 11, 803}, - dictWord{ - 9, - 11, - 301, - }, - dictWord{137, 11, 903}, - dictWord{7, 0, 915}, - dictWord{8, 0, 247}, - dictWord{19, 0, 0}, - dictWord{7, 11, 1949}, - dictWord{136, 11, 674}, - dictWord{ - 4, - 0, - 202, - }, - dictWord{5, 0, 382}, - dictWord{6, 0, 454}, - dictWord{7, 0, 936}, - dictWord{7, 0, 1803}, - dictWord{8, 0, 758}, - dictWord{9, 0, 375}, - dictWord{9, 0, 895}, - dictWord{ - 10, - 0, - 743, - }, - dictWord{10, 0, 792}, - dictWord{11, 0, 978}, - dictWord{11, 0, 1012}, - dictWord{142, 0, 109}, - dictWord{7, 0, 1150}, - dictWord{7, 0, 1425}, - dictWord{ - 7, - 0, - 1453, - }, - dictWord{140, 0, 513}, - dictWord{134, 11, 259}, - dictWord{138, 0, 791}, - dictWord{11, 0, 821}, - dictWord{12, 0, 110}, - dictWord{12, 0, 153}, - dictWord{ - 18, - 0, - 41, - }, - dictWord{150, 0, 19}, - dictWord{134, 10, 481}, - dictWord{132, 0, 796}, - dictWord{6, 0, 445}, - dictWord{9, 0, 909}, - dictWord{136, 11, 254}, - dictWord{ - 10, - 0, - 776, - }, - dictWord{13, 0, 345}, - dictWord{142, 0, 425}, - dictWord{4, 10, 84}, - dictWord{7, 10, 1482}, - dictWord{10, 10, 76}, - dictWord{138, 10, 142}, - dictWord{ - 135, - 11, - 742, - }, - dictWord{6, 0, 578}, - dictWord{133, 10, 1015}, - dictWord{6, 0, 1387}, - dictWord{4, 10, 315}, - dictWord{5, 10, 507}, - dictWord{135, 10, 1370}, - dictWord{4, 0, 438}, - dictWord{133, 0, 555}, - dictWord{136, 0, 766}, - dictWord{133, 11, 248}, - dictWord{134, 10, 1722}, - dictWord{4, 11, 116}, - dictWord{5, 11, 95}, - dictWord{5, 11, 445}, - dictWord{7, 11, 1688}, - dictWord{8, 11, 29}, - dictWord{9, 11, 272}, - dictWord{11, 11, 509}, - dictWord{139, 11, 915}, - dictWord{135, 0, 541}, - dictWord{133, 11, 543}, - dictWord{8, 10, 222}, - dictWord{8, 10, 476}, - dictWord{9, 10, 238}, - dictWord{11, 10, 516}, - dictWord{11, 10, 575}, - dictWord{ - 15, - 10, - 109, - }, - dictWord{146, 10, 100}, - dictWord{6, 0, 880}, - dictWord{134, 0, 1191}, - dictWord{5, 11, 181}, - dictWord{136, 11, 41}, - dictWord{134, 0, 1506}, - dictWord{132, 11, 681}, - dictWord{7, 11, 25}, - dictWord{8, 11, 202}, - dictWord{138, 11, 536}, - dictWord{139, 0, 983}, - dictWord{137, 0, 768}, - dictWord{132, 0, 584}, - dictWord{9, 11, 423}, - dictWord{140, 11, 89}, - dictWord{8, 11, 113}, - dictWord{9, 11, 877}, - dictWord{10, 11, 554}, - dictWord{11, 11, 83}, - dictWord{12, 11, 136}, - dictWord{147, 11, 109}, - dictWord{7, 10, 706}, - dictWord{7, 10, 1058}, - dictWord{138, 10, 538}, - dictWord{133, 11, 976}, - dictWord{4, 11, 206}, - dictWord{ - 135, - 11, - 746, - }, - dictWord{136, 11, 526}, - dictWord{140, 0, 737}, - dictWord{11, 10, 92}, - dictWord{11, 10, 196}, - dictWord{11, 10, 409}, - dictWord{11, 10, 450}, - dictWord{11, 10, 666}, - dictWord{11, 10, 777}, - dictWord{12, 10, 262}, - dictWord{13, 10, 385}, - dictWord{13, 10, 393}, - dictWord{15, 10, 115}, - dictWord{ - 16, - 10, - 45, - }, - dictWord{145, 10, 82}, - dictWord{4, 0, 226}, - dictWord{4, 0, 326}, - dictWord{7, 0, 1770}, - dictWord{4, 11, 319}, - dictWord{5, 11, 699}, - dictWord{138, 11, 673}, - dictWord{6, 10, 40}, - dictWord{135, 10, 1781}, - dictWord{5, 0, 426}, - dictWord{8, 0, 30}, - dictWord{9, 0, 2}, - dictWord{11, 0, 549}, - dictWord{147, 0, 122}, - dictWord{ - 6, - 0, - 1161, - }, - dictWord{134, 0, 1329}, - dictWord{138, 10, 97}, - dictWord{6, 10, 423}, - dictWord{7, 10, 665}, - dictWord{135, 10, 1210}, - dictWord{7, 11, 13}, - dictWord{ - 8, - 11, - 226, - }, - dictWord{10, 11, 537}, - dictWord{11, 11, 570}, - dictWord{11, 11, 605}, - dictWord{11, 11, 799}, - dictWord{11, 11, 804}, - dictWord{12, 11, 85}, - dictWord{12, 11, 516}, - dictWord{12, 11, 623}, - dictWord{13, 11, 112}, - dictWord{13, 11, 361}, - dictWord{14, 11, 77}, - dictWord{14, 11, 78}, - dictWord{17, 11, 28}, - dictWord{147, 11, 110}, - dictWord{132, 11, 769}, - dictWord{132, 11, 551}, - dictWord{132, 11, 728}, - dictWord{147, 0, 117}, - dictWord{9, 11, 57}, - dictWord{ - 9, - 11, - 459, - }, - dictWord{10, 11, 425}, - dictWord{11, 11, 119}, - dictWord{12, 11, 184}, - dictWord{12, 11, 371}, - dictWord{13, 11, 358}, - dictWord{145, 11, 51}, - dictWord{ - 5, - 11, - 188, - }, - dictWord{5, 11, 814}, - dictWord{8, 11, 10}, - dictWord{9, 11, 421}, - dictWord{9, 11, 729}, - dictWord{10, 11, 609}, - dictWord{139, 11, 689}, - dictWord{134, 11, 624}, - dictWord{135, 11, 298}, - dictWord{135, 0, 462}, - dictWord{4, 0, 345}, - dictWord{139, 10, 624}, - dictWord{136, 10, 574}, - dictWord{ - 4, - 0, - 385, - }, - dictWord{7, 0, 265}, - dictWord{135, 0, 587}, - dictWord{6, 0, 808}, - dictWord{132, 11, 528}, - dictWord{133, 0, 398}, - dictWord{132, 10, 354}, - dictWord{ - 4, - 0, - 347, - }, - dictWord{5, 0, 423}, - dictWord{5, 0, 996}, - dictWord{135, 0, 1329}, - dictWord{135, 10, 1558}, - dictWord{7, 0, 1259}, - dictWord{9, 0, 125}, - dictWord{ - 139, - 0, - 65, - }, - dictWord{5, 0, 136}, - dictWord{6, 0, 136}, - dictWord{136, 0, 644}, - dictWord{5, 11, 104}, - dictWord{6, 11, 173}, - dictWord{135, 11, 1631}, - dictWord{ - 135, - 0, - 469, - }, - dictWord{133, 10, 830}, - dictWord{4, 0, 278}, - dictWord{5, 0, 465}, - dictWord{135, 0, 1367}, - dictWord{7, 11, 810}, - dictWord{8, 11, 138}, - dictWord{ - 8, - 11, - 342, - }, - dictWord{9, 11, 84}, - dictWord{10, 11, 193}, - dictWord{11, 11, 883}, - dictWord{140, 11, 359}, - dictWord{5, 10, 496}, - dictWord{135, 10, 203}, - dictWord{ - 4, - 0, - 433, - }, - dictWord{133, 0, 719}, - dictWord{6, 11, 95}, - dictWord{134, 10, 547}, - dictWord{5, 10, 88}, - dictWord{137, 10, 239}, - dictWord{6, 11, 406}, - dictWord{ - 10, - 11, - 409, - }, - dictWord{10, 11, 447}, - dictWord{11, 11, 44}, - dictWord{140, 11, 100}, - dictWord{134, 0, 1423}, - dictWord{7, 10, 650}, - dictWord{135, 10, 1310}, - dictWord{134, 0, 749}, - dictWord{135, 11, 1243}, - dictWord{135, 0, 1363}, - dictWord{6, 0, 381}, - dictWord{7, 0, 645}, - dictWord{7, 0, 694}, - dictWord{8, 0, 546}, - dictWord{7, 10, 1076}, - dictWord{9, 10, 80}, - dictWord{11, 10, 78}, - dictWord{11, 10, 421}, - dictWord{11, 10, 534}, - dictWord{140, 10, 545}, - dictWord{ - 134, - 11, - 1636, - }, - dictWord{135, 11, 1344}, - dictWord{12, 0, 277}, - dictWord{7, 10, 274}, - dictWord{11, 10, 479}, - dictWord{139, 10, 507}, - dictWord{6, 0, 705}, - dictWord{ - 6, - 0, - 783, - }, - dictWord{6, 0, 1275}, - dictWord{6, 0, 1481}, - dictWord{4, 11, 282}, - dictWord{7, 11, 1034}, - dictWord{11, 11, 398}, - dictWord{11, 11, 634}, - dictWord{ - 12, - 11, - 1, - }, - dictWord{12, 11, 79}, - dictWord{12, 11, 544}, - dictWord{14, 11, 237}, - dictWord{17, 11, 10}, - dictWord{146, 11, 20}, - dictWord{134, 0, 453}, - dictWord{ - 4, - 0, - 555, - }, - dictWord{8, 0, 536}, - dictWord{10, 0, 288}, - dictWord{11, 0, 1005}, - dictWord{4, 10, 497}, - dictWord{135, 10, 1584}, - dictWord{5, 11, 118}, - dictWord{ - 5, - 11, - 499, - }, - dictWord{6, 11, 476}, - dictWord{7, 11, 600}, - dictWord{7, 11, 888}, - dictWord{135, 11, 1096}, - dictWord{138, 0, 987}, - dictWord{7, 0, 1107}, - dictWord{ - 7, - 10, - 261, - }, - dictWord{7, 10, 1115}, - dictWord{7, 10, 1354}, - dictWord{7, 10, 1588}, - dictWord{7, 10, 1705}, - dictWord{7, 10, 1902}, - dictWord{9, 10, 465}, - dictWord{10, 10, 248}, - dictWord{10, 10, 349}, - dictWord{10, 10, 647}, - dictWord{11, 10, 527}, - dictWord{11, 10, 660}, - dictWord{11, 10, 669}, - dictWord{ - 12, - 10, - 529, - }, - dictWord{141, 10, 305}, - dictWord{7, 11, 296}, - dictWord{7, 11, 596}, - dictWord{8, 11, 560}, - dictWord{8, 11, 586}, - dictWord{9, 11, 612}, - dictWord{ - 11, - 11, - 100, - }, - dictWord{11, 11, 304}, - dictWord{12, 11, 46}, - dictWord{13, 11, 89}, - dictWord{14, 11, 112}, - dictWord{145, 11, 122}, - dictWord{9, 0, 370}, - dictWord{ - 138, - 0, - 90, - }, - dictWord{136, 10, 13}, - dictWord{132, 0, 860}, - dictWord{7, 10, 642}, - dictWord{8, 10, 250}, - dictWord{11, 10, 123}, - dictWord{11, 10, 137}, - dictWord{ - 13, - 10, - 48, - }, - dictWord{142, 10, 95}, - dictWord{135, 10, 1429}, - dictWord{137, 11, 321}, - dictWord{132, 0, 257}, - dictWord{135, 0, 2031}, - dictWord{7, 0, 1768}, - dictWord{7, 11, 1599}, - dictWord{7, 11, 1723}, - dictWord{8, 11, 79}, - dictWord{8, 11, 106}, - dictWord{8, 11, 190}, - dictWord{8, 11, 302}, - dictWord{8, 11, 383}, - dictWord{9, 11, 119}, - dictWord{9, 11, 233}, - dictWord{9, 11, 298}, - dictWord{9, 11, 419}, - dictWord{9, 11, 471}, - dictWord{10, 11, 181}, - dictWord{10, 11, 406}, - dictWord{11, 11, 57}, - dictWord{11, 11, 85}, - dictWord{11, 11, 120}, - dictWord{11, 11, 177}, - dictWord{11, 11, 296}, - dictWord{11, 11, 382}, - dictWord{11, 11, 454}, - dictWord{11, 11, 758}, - dictWord{11, 11, 999}, - dictWord{12, 11, 27}, - dictWord{12, 11, 98}, - dictWord{12, 11, 131}, - dictWord{12, 11, 245}, - dictWord{ - 12, - 11, - 312, - }, - dictWord{12, 11, 446}, - dictWord{12, 11, 454}, - dictWord{13, 11, 25}, - dictWord{13, 11, 98}, - dictWord{13, 11, 426}, - dictWord{13, 11, 508}, - dictWord{ - 14, - 11, - 6, - }, - dictWord{14, 11, 163}, - dictWord{14, 11, 272}, - dictWord{14, 11, 277}, - dictWord{14, 11, 370}, - dictWord{15, 11, 95}, - dictWord{15, 11, 138}, - dictWord{ - 15, - 11, - 167, - }, - dictWord{17, 11, 18}, - dictWord{17, 11, 38}, - dictWord{20, 11, 96}, - dictWord{149, 11, 32}, - dictWord{5, 11, 722}, - dictWord{134, 11, 1759}, - dictWord{145, 11, 16}, - dictWord{6, 0, 1071}, - dictWord{134, 0, 1561}, - dictWord{10, 10, 545}, - dictWord{140, 10, 301}, - dictWord{6, 0, 83}, - dictWord{6, 0, 1733}, - dictWord{135, 0, 1389}, - dictWord{4, 0, 835}, - dictWord{135, 0, 1818}, - dictWord{133, 11, 258}, - dictWord{4, 10, 904}, - dictWord{133, 10, 794}, - dictWord{ - 134, - 0, - 2006, - }, - dictWord{5, 11, 30}, - dictWord{7, 11, 495}, - dictWord{8, 11, 134}, - dictWord{9, 11, 788}, - dictWord{140, 11, 438}, - dictWord{135, 11, 2004}, - dictWord{ - 137, - 0, - 696, - }, - dictWord{5, 11, 50}, - dictWord{6, 11, 439}, - dictWord{7, 11, 780}, - dictWord{135, 11, 1040}, - dictWord{7, 11, 772}, - dictWord{7, 11, 1104}, - dictWord{ - 7, - 11, - 1647, - }, - dictWord{11, 11, 269}, - dictWord{11, 11, 539}, - dictWord{11, 11, 607}, - dictWord{11, 11, 627}, - dictWord{11, 11, 706}, - dictWord{11, 11, 975}, - dictWord{12, 11, 248}, - dictWord{12, 11, 311}, - dictWord{12, 11, 434}, - dictWord{12, 11, 600}, - dictWord{12, 11, 622}, - dictWord{13, 11, 297}, - dictWord{ - 13, - 11, - 367, - }, - dictWord{13, 11, 485}, - dictWord{14, 11, 69}, - dictWord{14, 11, 409}, - dictWord{143, 11, 108}, - dictWord{5, 11, 1}, - dictWord{6, 11, 81}, - dictWord{ - 138, - 11, - 520, - }, - dictWord{7, 0, 1718}, - dictWord{9, 0, 95}, - dictWord{9, 0, 274}, - dictWord{10, 0, 279}, - dictWord{10, 0, 317}, - dictWord{10, 0, 420}, - dictWord{11, 0, 303}, - dictWord{11, 0, 808}, - dictWord{12, 0, 134}, - dictWord{12, 0, 367}, - dictWord{13, 0, 149}, - dictWord{13, 0, 347}, - dictWord{14, 0, 349}, - dictWord{14, 0, 406}, - dictWord{ - 18, - 0, - 22, - }, - dictWord{18, 0, 89}, - dictWord{18, 0, 122}, - dictWord{147, 0, 47}, - dictWord{5, 11, 482}, - dictWord{8, 11, 98}, - dictWord{9, 11, 172}, - dictWord{10, 11, 222}, - dictWord{10, 11, 700}, - dictWord{10, 11, 822}, - dictWord{11, 11, 302}, - dictWord{11, 11, 778}, - dictWord{12, 11, 50}, - dictWord{12, 11, 127}, - dictWord{ - 12, - 11, - 396, - }, - dictWord{13, 11, 62}, - dictWord{13, 11, 328}, - dictWord{14, 11, 122}, - dictWord{147, 11, 72}, - dictWord{7, 10, 386}, - dictWord{138, 10, 713}, - dictWord{ - 6, - 10, - 7, - }, - dictWord{6, 10, 35}, - dictWord{7, 10, 147}, - dictWord{7, 10, 1069}, - dictWord{7, 10, 1568}, - dictWord{7, 10, 1575}, - dictWord{7, 10, 1917}, - dictWord{ - 8, - 10, - 43, - }, - dictWord{8, 10, 208}, - dictWord{9, 10, 128}, - dictWord{9, 10, 866}, - dictWord{10, 10, 20}, - dictWord{11, 10, 981}, - dictWord{147, 10, 33}, - dictWord{ - 133, - 0, - 26, - }, - dictWord{132, 0, 550}, - dictWord{5, 11, 2}, - dictWord{7, 11, 1494}, - dictWord{136, 11, 589}, - dictWord{6, 11, 512}, - dictWord{7, 11, 797}, - dictWord{ - 8, - 11, - 253, - }, - dictWord{9, 11, 77}, - dictWord{10, 11, 1}, - dictWord{10, 11, 129}, - dictWord{10, 11, 225}, - dictWord{11, 11, 118}, - dictWord{11, 11, 226}, - dictWord{ - 11, - 11, - 251, - }, - dictWord{11, 11, 430}, - dictWord{11, 11, 701}, - dictWord{11, 11, 974}, - dictWord{11, 11, 982}, - dictWord{12, 11, 64}, - dictWord{12, 11, 260}, - dictWord{ - 12, - 11, - 488, - }, - dictWord{140, 11, 690}, - dictWord{7, 10, 893}, - dictWord{141, 10, 424}, - dictWord{134, 0, 901}, - dictWord{136, 0, 822}, - dictWord{4, 0, 902}, - dictWord{5, 0, 809}, - dictWord{134, 0, 122}, - dictWord{6, 0, 807}, - dictWord{134, 0, 1366}, - dictWord{7, 0, 262}, - dictWord{5, 11, 748}, - dictWord{134, 11, 553}, - dictWord{133, 0, 620}, - dictWord{4, 0, 34}, - dictWord{5, 0, 574}, - dictWord{7, 0, 279}, - dictWord{7, 0, 1624}, - dictWord{136, 0, 601}, - dictWord{9, 0, 170}, - dictWord{ - 6, - 10, - 322, - }, - dictWord{9, 10, 552}, - dictWord{11, 10, 274}, - dictWord{13, 10, 209}, - dictWord{13, 10, 499}, - dictWord{14, 10, 85}, - dictWord{15, 10, 126}, - dictWord{ - 145, - 10, - 70, - }, - dictWord{132, 0, 537}, - dictWord{4, 11, 12}, - dictWord{7, 11, 420}, - dictWord{7, 11, 522}, - dictWord{7, 11, 809}, - dictWord{8, 11, 797}, - dictWord{ - 141, - 11, - 88, - }, - dictWord{133, 0, 332}, - dictWord{8, 10, 83}, - dictWord{8, 10, 742}, - dictWord{8, 10, 817}, - dictWord{9, 10, 28}, - dictWord{9, 10, 29}, - dictWord{9, 10, 885}, - dictWord{10, 10, 387}, - dictWord{11, 10, 633}, - dictWord{11, 10, 740}, - dictWord{13, 10, 235}, - dictWord{13, 10, 254}, - dictWord{15, 10, 143}, - dictWord{ - 143, - 10, - 146, - }, - dictWord{6, 0, 1909}, - dictWord{9, 0, 964}, - dictWord{12, 0, 822}, - dictWord{12, 0, 854}, - dictWord{12, 0, 865}, - dictWord{12, 0, 910}, - dictWord{12, 0, 938}, - dictWord{15, 0, 169}, - dictWord{15, 0, 208}, - dictWord{15, 0, 211}, - dictWord{18, 0, 205}, - dictWord{18, 0, 206}, - dictWord{18, 0, 220}, - dictWord{18, 0, 223}, - dictWord{152, 0, 24}, - dictWord{140, 10, 49}, - dictWord{5, 11, 528}, - dictWord{135, 11, 1580}, - dictWord{6, 0, 261}, - dictWord{8, 0, 182}, - dictWord{139, 0, 943}, - dictWord{134, 0, 1721}, - dictWord{4, 0, 933}, - dictWord{133, 0, 880}, - dictWord{136, 11, 321}, - dictWord{5, 11, 266}, - dictWord{9, 11, 290}, - dictWord{9, 11, 364}, - dictWord{10, 11, 293}, - dictWord{11, 11, 606}, - dictWord{142, 11, 45}, - dictWord{6, 0, 1609}, - dictWord{4, 11, 50}, - dictWord{6, 11, 510}, - dictWord{6, 11, 594}, - dictWord{9, 11, 121}, - dictWord{10, 11, 49}, - dictWord{10, 11, 412}, - dictWord{139, 11, 834}, - dictWord{7, 0, 895}, - dictWord{136, 11, 748}, - dictWord{132, 11, 466}, - dictWord{4, 10, 110}, - dictWord{10, 10, 415}, - dictWord{10, 10, 597}, - dictWord{142, 10, 206}, - dictWord{133, 0, 812}, - dictWord{135, 11, 281}, - dictWord{ - 6, - 0, - 1890, - }, - dictWord{6, 0, 1902}, - dictWord{6, 0, 1916}, - dictWord{9, 0, 929}, - dictWord{9, 0, 942}, - dictWord{9, 0, 975}, - dictWord{9, 0, 984}, - dictWord{9, 0, 986}, - dictWord{ - 9, - 0, - 1011, - }, - dictWord{9, 0, 1019}, - dictWord{12, 0, 804}, - dictWord{12, 0, 851}, - dictWord{12, 0, 867}, - dictWord{12, 0, 916}, - dictWord{12, 0, 923}, - dictWord{ - 15, - 0, - 194, - }, - dictWord{15, 0, 204}, - dictWord{15, 0, 210}, - dictWord{15, 0, 222}, - dictWord{15, 0, 223}, - dictWord{15, 0, 229}, - dictWord{15, 0, 250}, - dictWord{ - 18, - 0, - 179, - }, - dictWord{18, 0, 186}, - dictWord{18, 0, 192}, - dictWord{7, 10, 205}, - dictWord{135, 10, 2000}, - dictWord{132, 11, 667}, - dictWord{135, 0, 778}, - dictWord{ - 4, - 0, - 137, - }, - dictWord{7, 0, 1178}, - dictWord{135, 0, 1520}, - dictWord{134, 0, 1314}, - dictWord{4, 11, 242}, - dictWord{134, 11, 333}, - dictWord{6, 0, 1661}, - dictWord{7, 0, 1975}, - dictWord{7, 0, 2009}, - dictWord{135, 0, 2011}, - dictWord{134, 0, 1591}, - dictWord{4, 10, 283}, - dictWord{135, 10, 1194}, - dictWord{ - 11, - 0, - 820, - }, - dictWord{150, 0, 51}, - dictWord{4, 11, 39}, - dictWord{5, 11, 36}, - dictWord{7, 11, 1843}, - dictWord{8, 11, 407}, - dictWord{11, 11, 144}, - dictWord{ - 140, - 11, - 523, - }, - dictWord{134, 10, 1720}, - dictWord{4, 11, 510}, - dictWord{7, 11, 29}, - dictWord{7, 11, 66}, - dictWord{7, 11, 1980}, - dictWord{10, 11, 487}, - dictWord{ - 10, - 11, - 809, - }, - dictWord{146, 11, 9}, - dictWord{5, 0, 89}, - dictWord{7, 0, 1915}, - dictWord{9, 0, 185}, - dictWord{9, 0, 235}, - dictWord{10, 0, 64}, - dictWord{10, 0, 270}, - dictWord{10, 0, 403}, - dictWord{10, 0, 469}, - dictWord{10, 0, 529}, - dictWord{10, 0, 590}, - dictWord{11, 0, 140}, - dictWord{11, 0, 860}, - dictWord{13, 0, 1}, - dictWord{ - 13, - 0, - 422, - }, - dictWord{14, 0, 341}, - dictWord{14, 0, 364}, - dictWord{17, 0, 93}, - dictWord{18, 0, 113}, - dictWord{19, 0, 97}, - dictWord{147, 0, 113}, - dictWord{133, 0, 695}, - dictWord{6, 0, 987}, - dictWord{134, 0, 1160}, - dictWord{5, 0, 6}, - dictWord{6, 0, 183}, - dictWord{7, 0, 680}, - dictWord{7, 0, 978}, - dictWord{7, 0, 1013}, - dictWord{ - 7, - 0, - 1055, - }, - dictWord{12, 0, 230}, - dictWord{13, 0, 172}, - dictWord{146, 0, 29}, - dictWord{134, 11, 570}, - dictWord{132, 11, 787}, - dictWord{134, 11, 518}, - dictWord{ - 6, - 0, - 29, - }, - dictWord{139, 0, 63}, - dictWord{132, 11, 516}, - dictWord{136, 11, 821}, - dictWord{132, 0, 311}, - dictWord{134, 0, 1740}, - dictWord{7, 0, 170}, - dictWord{8, 0, 90}, - dictWord{8, 0, 177}, - dictWord{8, 0, 415}, - dictWord{11, 0, 714}, - dictWord{14, 0, 281}, - dictWord{136, 10, 735}, - dictWord{134, 0, 1961}, - dictWord{ - 135, - 11, - 1405, - }, - dictWord{4, 11, 10}, - dictWord{7, 11, 917}, - dictWord{139, 11, 786}, - dictWord{5, 10, 132}, - dictWord{9, 10, 486}, - dictWord{9, 10, 715}, - dictWord{ - 10, - 10, - 458, - }, - dictWord{11, 10, 373}, - dictWord{11, 10, 668}, - dictWord{11, 10, 795}, - dictWord{11, 10, 897}, - dictWord{12, 10, 272}, - dictWord{12, 10, 424}, - dictWord{12, 10, 539}, - dictWord{12, 10, 558}, - dictWord{14, 10, 245}, - dictWord{14, 10, 263}, - dictWord{14, 10, 264}, - dictWord{14, 10, 393}, - dictWord{ - 142, - 10, - 403, - }, - dictWord{11, 0, 91}, - dictWord{13, 0, 129}, - dictWord{15, 0, 101}, - dictWord{145, 0, 125}, - dictWord{135, 0, 1132}, - dictWord{4, 0, 494}, - dictWord{6, 0, 74}, - dictWord{7, 0, 44}, - dictWord{7, 0, 407}, - dictWord{12, 0, 17}, - dictWord{15, 0, 5}, - dictWord{148, 0, 11}, - dictWord{133, 10, 379}, - dictWord{5, 0, 270}, - dictWord{ - 5, - 11, - 684, - }, - dictWord{6, 10, 89}, - dictWord{6, 10, 400}, - dictWord{7, 10, 1569}, - dictWord{7, 10, 1623}, - dictWord{7, 10, 1850}, - dictWord{8, 10, 218}, - dictWord{ - 8, - 10, - 422, - }, - dictWord{9, 10, 570}, - dictWord{138, 10, 626}, - dictWord{4, 0, 276}, - dictWord{133, 0, 296}, - dictWord{6, 0, 1523}, - dictWord{134, 11, 27}, - dictWord{ - 6, - 10, - 387, - }, - dictWord{7, 10, 882}, - dictWord{141, 10, 111}, - dictWord{6, 10, 224}, - dictWord{7, 10, 877}, - dictWord{137, 10, 647}, - dictWord{135, 10, 790}, - dictWord{ - 4, - 0, - 7, - }, - dictWord{5, 0, 90}, - dictWord{5, 0, 158}, - dictWord{6, 0, 542}, - dictWord{7, 0, 221}, - dictWord{7, 0, 1574}, - dictWord{9, 0, 490}, - dictWord{10, 0, 540}, - dictWord{ - 11, - 0, - 443, - }, - dictWord{139, 0, 757}, - dictWord{7, 0, 588}, - dictWord{9, 0, 175}, - dictWord{138, 0, 530}, - dictWord{135, 10, 394}, - dictWord{142, 11, 23}, - dictWord{ - 134, - 0, - 786, - }, - dictWord{135, 0, 580}, - dictWord{7, 0, 88}, - dictWord{136, 0, 627}, - dictWord{5, 0, 872}, - dictWord{6, 0, 57}, - dictWord{7, 0, 471}, - dictWord{9, 0, 447}, - dictWord{137, 0, 454}, - dictWord{6, 11, 342}, - dictWord{6, 11, 496}, - dictWord{8, 11, 275}, - dictWord{137, 11, 206}, - dictWord{4, 11, 909}, - dictWord{133, 11, 940}, - dictWord{6, 0, 735}, - dictWord{132, 11, 891}, - dictWord{8, 0, 845}, - dictWord{8, 0, 916}, - dictWord{135, 10, 1409}, - dictWord{5, 0, 31}, - dictWord{134, 0, 614}, - dictWord{11, 0, 458}, - dictWord{12, 0, 15}, - dictWord{140, 0, 432}, - dictWord{8, 0, 330}, - dictWord{140, 0, 477}, - dictWord{4, 0, 530}, - dictWord{5, 0, 521}, - dictWord{ - 7, - 0, - 1200, - }, - dictWord{10, 0, 460}, - dictWord{132, 11, 687}, - dictWord{6, 0, 424}, - dictWord{135, 0, 1866}, - dictWord{9, 0, 569}, - dictWord{12, 0, 12}, - dictWord{ - 12, - 0, - 81, - }, - dictWord{12, 0, 319}, - dictWord{13, 0, 69}, - dictWord{14, 0, 259}, - dictWord{16, 0, 87}, - dictWord{17, 0, 1}, - dictWord{17, 0, 21}, - dictWord{17, 0, 24}, - dictWord{ - 18, - 0, - 15, - }, - dictWord{18, 0, 56}, - dictWord{18, 0, 59}, - dictWord{18, 0, 127}, - dictWord{18, 0, 154}, - dictWord{19, 0, 19}, - dictWord{148, 0, 31}, - dictWord{7, 0, 1302}, - dictWord{136, 10, 38}, - dictWord{134, 11, 253}, - dictWord{5, 10, 261}, - dictWord{7, 10, 78}, - dictWord{7, 10, 199}, - dictWord{8, 10, 815}, - dictWord{9, 10, 126}, - dictWord{138, 10, 342}, - dictWord{5, 0, 595}, - dictWord{135, 0, 1863}, - dictWord{6, 11, 41}, - dictWord{141, 11, 160}, - dictWord{5, 0, 13}, - dictWord{134, 0, 142}, - dictWord{6, 0, 97}, - dictWord{7, 0, 116}, - dictWord{8, 0, 322}, - dictWord{8, 0, 755}, - dictWord{9, 0, 548}, - dictWord{10, 0, 714}, - dictWord{11, 0, 884}, - dictWord{13, 0, 324}, - dictWord{7, 11, 1304}, - dictWord{138, 11, 477}, - dictWord{132, 10, 628}, - dictWord{134, 11, 1718}, - dictWord{7, 10, 266}, - dictWord{136, 10, 804}, - dictWord{135, 10, 208}, - dictWord{7, 0, 1021}, - dictWord{6, 10, 79}, - dictWord{135, 10, 1519}, - dictWord{7, 0, 1472}, - dictWord{135, 0, 1554}, - dictWord{6, 11, 362}, - dictWord{146, 11, 51}, - dictWord{7, 0, 1071}, - dictWord{7, 0, 1541}, - dictWord{7, 0, 1767}, - dictWord{7, 0, 1806}, - dictWord{11, 0, 162}, - dictWord{11, 0, 242}, - dictWord{11, 0, 452}, - dictWord{12, 0, 605}, - dictWord{15, 0, 26}, - dictWord{144, 0, 44}, - dictWord{136, 10, 741}, - dictWord{133, 11, 115}, - dictWord{145, 0, 115}, - dictWord{134, 10, 376}, - dictWord{6, 0, 1406}, - dictWord{134, 0, 1543}, - dictWord{5, 11, 193}, - dictWord{12, 11, 178}, - dictWord{13, 11, 130}, - dictWord{ - 145, - 11, - 84, - }, - dictWord{135, 0, 1111}, - dictWord{8, 0, 1}, - dictWord{9, 0, 650}, - dictWord{10, 0, 326}, - dictWord{5, 11, 705}, - dictWord{137, 11, 606}, - dictWord{5, 0, 488}, - dictWord{6, 0, 527}, - dictWord{7, 0, 489}, - dictWord{7, 0, 1636}, - dictWord{8, 0, 121}, - dictWord{8, 0, 144}, - dictWord{8, 0, 359}, - dictWord{9, 0, 193}, - dictWord{9, 0, 241}, - dictWord{9, 0, 336}, - dictWord{9, 0, 882}, - dictWord{11, 0, 266}, - dictWord{11, 0, 372}, - dictWord{11, 0, 944}, - dictWord{12, 0, 401}, - dictWord{140, 0, 641}, - dictWord{135, 11, 174}, - dictWord{6, 0, 267}, - dictWord{7, 10, 244}, - dictWord{7, 10, 632}, - dictWord{7, 10, 1609}, - dictWord{8, 10, 178}, - dictWord{8, 10, 638}, - dictWord{141, 10, 58}, - dictWord{134, 0, 1983}, - dictWord{134, 0, 1155}, - dictWord{134, 0, 1575}, - dictWord{134, 0, 1438}, - dictWord{9, 0, 31}, - dictWord{ - 10, - 0, - 244, - }, - dictWord{10, 0, 699}, - dictWord{12, 0, 149}, - dictWord{141, 0, 497}, - dictWord{133, 0, 377}, - dictWord{4, 11, 122}, - dictWord{5, 11, 796}, - dictWord{ - 5, - 11, - 952, - }, - dictWord{6, 11, 1660}, - dictWord{6, 11, 1671}, - dictWord{8, 11, 567}, - dictWord{9, 11, 687}, - dictWord{9, 11, 742}, - dictWord{10, 11, 686}, - dictWord{ - 11, - 11, - 356, - }, - dictWord{11, 11, 682}, - dictWord{140, 11, 281}, - dictWord{145, 0, 101}, - dictWord{11, 11, 0}, - dictWord{144, 11, 78}, - dictWord{5, 11, 179}, - dictWord{ - 5, - 10, - 791, - }, - dictWord{7, 11, 1095}, - dictWord{135, 11, 1213}, - dictWord{8, 11, 372}, - dictWord{9, 11, 122}, - dictWord{138, 11, 175}, - dictWord{7, 10, 686}, - dictWord{8, 10, 33}, - dictWord{8, 10, 238}, - dictWord{10, 10, 616}, - dictWord{11, 10, 467}, - dictWord{11, 10, 881}, - dictWord{13, 10, 217}, - dictWord{13, 10, 253}, - dictWord{142, 10, 268}, - dictWord{9, 0, 476}, - dictWord{4, 11, 66}, - dictWord{7, 11, 722}, - dictWord{135, 11, 904}, - dictWord{7, 11, 352}, - dictWord{137, 11, 684}, - dictWord{135, 0, 2023}, - dictWord{135, 0, 1836}, - dictWord{132, 10, 447}, - dictWord{5, 0, 843}, - dictWord{144, 0, 35}, - dictWord{137, 11, 779}, - dictWord{ - 141, - 11, - 35, - }, - dictWord{4, 10, 128}, - dictWord{5, 10, 415}, - dictWord{6, 10, 462}, - dictWord{7, 10, 294}, - dictWord{7, 10, 578}, - dictWord{10, 10, 710}, - dictWord{ - 139, - 10, - 86, - }, - dictWord{132, 0, 554}, - dictWord{133, 0, 536}, - dictWord{136, 10, 587}, - dictWord{5, 0, 207}, - dictWord{9, 0, 79}, - dictWord{11, 0, 625}, - dictWord{ - 145, - 0, - 7, - }, - dictWord{7, 0, 1371}, - dictWord{6, 10, 427}, - dictWord{138, 10, 692}, - dictWord{4, 0, 424}, - dictWord{4, 10, 195}, - dictWord{135, 10, 802}, - dictWord{ - 8, - 0, - 785, - }, - dictWord{133, 11, 564}, - dictWord{135, 0, 336}, - dictWord{4, 0, 896}, - dictWord{6, 0, 1777}, - dictWord{134, 11, 556}, - dictWord{137, 11, 103}, - dictWord{134, 10, 1683}, - dictWord{7, 11, 544}, - dictWord{8, 11, 719}, - dictWord{138, 11, 61}, - dictWord{138, 10, 472}, - dictWord{4, 11, 5}, - dictWord{5, 11, 498}, - dictWord{136, 11, 637}, - dictWord{7, 0, 750}, - dictWord{9, 0, 223}, - dictWord{11, 0, 27}, - dictWord{11, 0, 466}, - dictWord{12, 0, 624}, - dictWord{14, 0, 265}, - dictWord{ - 146, - 0, - 61, - }, - dictWord{12, 0, 238}, - dictWord{18, 0, 155}, - dictWord{12, 11, 238}, - dictWord{146, 11, 155}, - dictWord{151, 10, 28}, - dictWord{133, 11, 927}, - dictWord{12, 0, 383}, - dictWord{5, 10, 3}, - dictWord{8, 10, 578}, - dictWord{9, 10, 118}, - dictWord{10, 10, 705}, - dictWord{141, 10, 279}, - dictWord{4, 11, 893}, - dictWord{ - 5, - 11, - 780, - }, - dictWord{133, 11, 893}, - dictWord{4, 0, 603}, - dictWord{133, 0, 661}, - dictWord{4, 0, 11}, - dictWord{6, 0, 128}, - dictWord{7, 0, 231}, - dictWord{ - 7, - 0, - 1533, - }, - dictWord{10, 0, 725}, - dictWord{5, 10, 229}, - dictWord{5, 11, 238}, - dictWord{135, 11, 1350}, - dictWord{8, 10, 102}, - dictWord{10, 10, 578}, - dictWord{ - 10, - 10, - 672, - }, - dictWord{12, 10, 496}, - dictWord{13, 10, 408}, - dictWord{14, 10, 121}, - dictWord{145, 10, 106}, - dictWord{132, 0, 476}, - dictWord{134, 0, 1552}, - dictWord{134, 11, 1729}, - dictWord{8, 10, 115}, - dictWord{8, 10, 350}, - dictWord{9, 10, 489}, - dictWord{10, 10, 128}, - dictWord{11, 10, 306}, - dictWord{ - 12, - 10, - 373, - }, - dictWord{14, 10, 30}, - dictWord{17, 10, 79}, - dictWord{19, 10, 80}, - dictWord{150, 10, 55}, - dictWord{135, 0, 1807}, - dictWord{4, 0, 680}, - dictWord{ - 4, - 11, - 60, - }, - dictWord{7, 11, 760}, - dictWord{7, 11, 1800}, - dictWord{8, 11, 314}, - dictWord{9, 11, 700}, - dictWord{139, 11, 487}, - dictWord{4, 10, 230}, - dictWord{ - 5, - 10, - 702, - }, - dictWord{148, 11, 94}, - dictWord{132, 11, 228}, - dictWord{139, 0, 435}, - dictWord{9, 0, 20}, - dictWord{10, 0, 324}, - dictWord{10, 0, 807}, - dictWord{ - 139, - 0, - 488, - }, - dictWord{6, 10, 1728}, - dictWord{136, 11, 419}, - dictWord{4, 10, 484}, - dictWord{18, 10, 26}, - dictWord{19, 10, 42}, - dictWord{20, 10, 43}, - dictWord{ - 21, - 10, - 0, - }, - dictWord{23, 10, 27}, - dictWord{152, 10, 14}, - dictWord{135, 0, 1431}, - dictWord{133, 11, 828}, - dictWord{5, 0, 112}, - dictWord{6, 0, 103}, - dictWord{ - 6, - 0, - 150, - }, - dictWord{7, 0, 1303}, - dictWord{9, 0, 292}, - dictWord{10, 0, 481}, - dictWord{20, 0, 13}, - dictWord{7, 11, 176}, - dictWord{7, 11, 178}, - dictWord{7, 11, 1110}, - dictWord{10, 11, 481}, - dictWord{148, 11, 13}, - dictWord{138, 0, 356}, - dictWord{4, 11, 51}, - dictWord{5, 11, 39}, - dictWord{6, 11, 4}, - dictWord{7, 11, 591}, - dictWord{ - 7, - 11, - 849, - }, - dictWord{7, 11, 951}, - dictWord{7, 11, 1129}, - dictWord{7, 11, 1613}, - dictWord{7, 11, 1760}, - dictWord{7, 11, 1988}, - dictWord{9, 11, 434}, - dictWord{10, 11, 754}, - dictWord{11, 11, 25}, - dictWord{11, 11, 37}, - dictWord{139, 11, 414}, - dictWord{6, 0, 1963}, - dictWord{134, 0, 2000}, - dictWord{ - 132, - 10, - 633, - }, - dictWord{6, 0, 1244}, - dictWord{133, 11, 902}, - dictWord{135, 11, 928}, - dictWord{140, 0, 18}, - dictWord{138, 0, 204}, - dictWord{135, 11, 1173}, - dictWord{134, 0, 867}, - dictWord{4, 0, 708}, - dictWord{8, 0, 15}, - dictWord{9, 0, 50}, - dictWord{9, 0, 386}, - dictWord{11, 0, 18}, - dictWord{11, 0, 529}, - dictWord{140, 0, 228}, - dictWord{134, 11, 270}, - dictWord{4, 0, 563}, - dictWord{7, 0, 109}, - dictWord{7, 0, 592}, - dictWord{7, 0, 637}, - dictWord{7, 0, 770}, - dictWord{8, 0, 463}, - dictWord{ - 9, - 0, - 60, - }, - dictWord{9, 0, 335}, - dictWord{9, 0, 904}, - dictWord{10, 0, 73}, - dictWord{11, 0, 434}, - dictWord{12, 0, 585}, - dictWord{13, 0, 331}, - dictWord{18, 0, 110}, - dictWord{148, 0, 60}, - dictWord{132, 0, 502}, - dictWord{14, 11, 359}, - dictWord{19, 11, 52}, - dictWord{148, 11, 47}, - dictWord{6, 11, 377}, - dictWord{7, 11, 1025}, - dictWord{9, 11, 613}, - dictWord{145, 11, 104}, - dictWord{6, 0, 347}, - dictWord{10, 0, 161}, - dictWord{5, 10, 70}, - dictWord{5, 10, 622}, - dictWord{6, 10, 334}, - dictWord{ - 7, - 10, - 1032, - }, - dictWord{9, 10, 171}, - dictWord{11, 10, 26}, - dictWord{11, 10, 213}, - dictWord{11, 10, 637}, - dictWord{11, 10, 707}, - dictWord{12, 10, 202}, - dictWord{12, 10, 380}, - dictWord{13, 10, 226}, - dictWord{13, 10, 355}, - dictWord{14, 10, 222}, - dictWord{145, 10, 42}, - dictWord{132, 11, 416}, - dictWord{4, 0, 33}, - dictWord{5, 0, 102}, - dictWord{6, 0, 284}, - dictWord{7, 0, 1079}, - dictWord{7, 0, 1423}, - dictWord{7, 0, 1702}, - dictWord{8, 0, 470}, - dictWord{9, 0, 554}, - dictWord{ - 9, - 0, - 723, - }, - dictWord{11, 0, 333}, - dictWord{142, 11, 372}, - dictWord{5, 11, 152}, - dictWord{5, 11, 197}, - dictWord{7, 11, 340}, - dictWord{7, 11, 867}, - dictWord{ - 10, - 11, - 548, - }, - dictWord{10, 11, 581}, - dictWord{11, 11, 6}, - dictWord{12, 11, 3}, - dictWord{12, 11, 19}, - dictWord{14, 11, 110}, - dictWord{142, 11, 289}, - dictWord{ - 7, - 0, - 246, - }, - dictWord{135, 0, 840}, - dictWord{6, 0, 10}, - dictWord{8, 0, 571}, - dictWord{9, 0, 739}, - dictWord{143, 0, 91}, - dictWord{6, 0, 465}, - dictWord{7, 0, 1465}, - dictWord{ - 4, - 10, - 23, - }, - dictWord{4, 10, 141}, - dictWord{5, 10, 313}, - dictWord{5, 10, 1014}, - dictWord{6, 10, 50}, - dictWord{7, 10, 142}, - dictWord{7, 10, 559}, - dictWord{ - 8, - 10, - 640, - }, - dictWord{9, 10, 460}, - dictWord{9, 10, 783}, - dictWord{11, 10, 741}, - dictWord{12, 10, 183}, - dictWord{141, 10, 488}, - dictWord{133, 0, 626}, - dictWord{ - 136, - 0, - 614, - }, - dictWord{138, 0, 237}, - dictWord{7, 11, 34}, - dictWord{7, 11, 190}, - dictWord{8, 11, 28}, - dictWord{8, 11, 141}, - dictWord{8, 11, 444}, - dictWord{ - 8, - 11, - 811, - }, - dictWord{9, 11, 468}, - dictWord{11, 11, 334}, - dictWord{12, 11, 24}, - dictWord{12, 11, 386}, - dictWord{140, 11, 576}, - dictWord{133, 11, 757}, - dictWord{ - 5, - 0, - 18, - }, - dictWord{6, 0, 526}, - dictWord{13, 0, 24}, - dictWord{13, 0, 110}, - dictWord{19, 0, 5}, - dictWord{147, 0, 44}, - dictWord{6, 0, 506}, - dictWord{134, 11, 506}, - dictWord{135, 11, 1553}, - dictWord{4, 0, 309}, - dictWord{5, 0, 462}, - dictWord{7, 0, 970}, - dictWord{7, 0, 1097}, - dictWord{22, 0, 30}, - dictWord{22, 0, 33}, - dictWord{ - 7, - 11, - 1385, - }, - dictWord{11, 11, 582}, - dictWord{11, 11, 650}, - dictWord{11, 11, 901}, - dictWord{11, 11, 949}, - dictWord{12, 11, 232}, - dictWord{12, 11, 236}, - dictWord{13, 11, 413}, - dictWord{13, 11, 501}, - dictWord{146, 11, 116}, - dictWord{9, 0, 140}, - dictWord{5, 10, 222}, - dictWord{138, 10, 534}, - dictWord{6, 0, 1056}, - dictWord{137, 10, 906}, - dictWord{134, 0, 1704}, - dictWord{138, 10, 503}, - dictWord{134, 0, 1036}, - dictWord{5, 10, 154}, - dictWord{7, 10, 1491}, - dictWord{ - 10, - 10, - 379, - }, - dictWord{138, 10, 485}, - dictWord{4, 11, 383}, - dictWord{133, 10, 716}, - dictWord{134, 0, 1315}, - dictWord{5, 0, 86}, - dictWord{7, 0, 743}, - dictWord{ - 9, - 0, - 85, - }, - dictWord{10, 0, 281}, - dictWord{10, 0, 432}, - dictWord{11, 0, 825}, - dictWord{12, 0, 251}, - dictWord{13, 0, 118}, - dictWord{142, 0, 378}, - dictWord{ - 8, - 0, - 264, - }, - dictWord{4, 10, 91}, - dictWord{5, 10, 388}, - dictWord{5, 10, 845}, - dictWord{6, 10, 206}, - dictWord{6, 10, 252}, - dictWord{6, 10, 365}, - dictWord{7, 10, 136}, - dictWord{7, 10, 531}, - dictWord{136, 10, 621}, - dictWord{5, 0, 524}, - dictWord{133, 0, 744}, - dictWord{5, 11, 277}, - dictWord{141, 11, 247}, - dictWord{ - 132, - 11, - 435, - }, - dictWord{10, 0, 107}, - dictWord{140, 0, 436}, - dictWord{132, 0, 927}, - dictWord{10, 0, 123}, - dictWord{12, 0, 670}, - dictWord{146, 0, 94}, - dictWord{ - 7, - 0, - 1149, - }, - dictWord{9, 0, 156}, - dictWord{138, 0, 957}, - dictWord{5, 11, 265}, - dictWord{6, 11, 212}, - dictWord{135, 11, 28}, - dictWord{133, 0, 778}, - dictWord{ - 133, - 0, - 502, - }, - dictWord{8, 0, 196}, - dictWord{10, 0, 283}, - dictWord{139, 0, 406}, - dictWord{135, 10, 576}, - dictWord{136, 11, 535}, - dictWord{134, 0, 1312}, - dictWord{ - 5, - 10, - 771, - }, - dictWord{5, 10, 863}, - dictWord{5, 10, 898}, - dictWord{6, 10, 1632}, - dictWord{6, 10, 1644}, - dictWord{134, 10, 1780}, - dictWord{5, 0, 855}, - dictWord{5, 10, 331}, - dictWord{135, 11, 1487}, - dictWord{132, 11, 702}, - dictWord{5, 11, 808}, - dictWord{135, 11, 2045}, - dictWord{7, 0, 1400}, - dictWord{ - 9, - 0, - 446, - }, - dictWord{138, 0, 45}, - dictWord{140, 10, 632}, - dictWord{132, 0, 1003}, - dictWord{5, 11, 166}, - dictWord{8, 11, 739}, - dictWord{140, 11, 511}, - dictWord{ - 5, - 10, - 107, - }, - dictWord{7, 10, 201}, - dictWord{136, 10, 518}, - dictWord{6, 10, 446}, - dictWord{135, 10, 1817}, - dictWord{134, 0, 1532}, - dictWord{ - 134, - 0, - 1097, - }, - dictWord{4, 11, 119}, - dictWord{5, 11, 170}, - dictWord{5, 11, 447}, - dictWord{7, 11, 1708}, - dictWord{7, 11, 1889}, - dictWord{9, 11, 357}, - dictWord{ - 9, - 11, - 719, - }, - dictWord{12, 11, 486}, - dictWord{140, 11, 596}, - dictWord{9, 10, 851}, - dictWord{141, 10, 510}, - dictWord{7, 0, 612}, - dictWord{8, 0, 545}, - dictWord{ - 8, - 0, - 568, - }, - dictWord{8, 0, 642}, - dictWord{9, 0, 717}, - dictWord{10, 0, 541}, - dictWord{10, 0, 763}, - dictWord{11, 0, 449}, - dictWord{12, 0, 489}, - dictWord{13, 0, 153}, - dictWord{13, 0, 296}, - dictWord{14, 0, 138}, - dictWord{14, 0, 392}, - dictWord{15, 0, 50}, - dictWord{16, 0, 6}, - dictWord{16, 0, 12}, - dictWord{20, 0, 9}, - dictWord{ - 132, - 10, - 504, - }, - dictWord{4, 11, 450}, - dictWord{135, 11, 1158}, - dictWord{11, 0, 54}, - dictWord{13, 0, 173}, - dictWord{13, 0, 294}, - dictWord{5, 10, 883}, - dictWord{ - 5, - 10, - 975, - }, - dictWord{8, 10, 392}, - dictWord{148, 10, 7}, - dictWord{13, 0, 455}, - dictWord{15, 0, 99}, - dictWord{15, 0, 129}, - dictWord{144, 0, 68}, - dictWord{135, 0, 172}, - dictWord{132, 11, 754}, - dictWord{5, 10, 922}, - dictWord{134, 10, 1707}, - dictWord{134, 0, 1029}, - dictWord{17, 11, 39}, - dictWord{148, 11, 36}, - dictWord{ - 4, - 0, - 568, - }, - dictWord{5, 10, 993}, - dictWord{7, 10, 515}, - dictWord{137, 10, 91}, - dictWord{132, 0, 732}, - dictWord{10, 0, 617}, - dictWord{138, 11, 617}, - dictWord{ - 134, - 0, - 974, - }, - dictWord{7, 0, 989}, - dictWord{10, 0, 377}, - dictWord{12, 0, 363}, - dictWord{13, 0, 68}, - dictWord{13, 0, 94}, - dictWord{14, 0, 108}, - dictWord{ - 142, - 0, - 306, - }, - dictWord{136, 0, 733}, - dictWord{132, 0, 428}, - dictWord{7, 0, 1789}, - dictWord{135, 11, 1062}, - dictWord{7, 0, 2015}, - dictWord{140, 0, 665}, - dictWord{135, 10, 1433}, - dictWord{5, 0, 287}, - dictWord{7, 10, 921}, - dictWord{8, 10, 580}, - dictWord{8, 10, 593}, - dictWord{8, 10, 630}, - dictWord{138, 10, 28}, - dictWord{138, 0, 806}, - dictWord{4, 10, 911}, - dictWord{5, 10, 867}, - dictWord{5, 10, 1013}, - dictWord{7, 10, 2034}, - dictWord{8, 10, 798}, - dictWord{136, 10, 813}, - dictWord{134, 0, 1539}, - dictWord{8, 11, 523}, - dictWord{150, 11, 34}, - dictWord{135, 11, 740}, - dictWord{7, 11, 238}, - dictWord{7, 11, 2033}, - dictWord{ - 8, - 11, - 120, - }, - dictWord{8, 11, 188}, - dictWord{8, 11, 659}, - dictWord{9, 11, 598}, - dictWord{10, 11, 466}, - dictWord{12, 11, 342}, - dictWord{12, 11, 588}, - dictWord{ - 13, - 11, - 503, - }, - dictWord{14, 11, 246}, - dictWord{143, 11, 92}, - dictWord{7, 0, 1563}, - dictWord{141, 0, 182}, - dictWord{5, 10, 135}, - dictWord{6, 10, 519}, - dictWord{ - 7, - 10, - 1722, - }, - dictWord{10, 10, 271}, - dictWord{11, 10, 261}, - dictWord{145, 10, 54}, - dictWord{14, 10, 338}, - dictWord{148, 10, 81}, - dictWord{7, 0, 484}, - dictWord{ - 4, - 10, - 300, - }, - dictWord{133, 10, 436}, - dictWord{145, 11, 114}, - dictWord{6, 0, 1623}, - dictWord{134, 0, 1681}, - dictWord{133, 11, 640}, - dictWord{4, 11, 201}, - dictWord{7, 11, 1744}, - dictWord{8, 11, 602}, - dictWord{11, 11, 247}, - dictWord{11, 11, 826}, - dictWord{145, 11, 65}, - dictWord{8, 11, 164}, - dictWord{ - 146, - 11, - 62, - }, - dictWord{6, 0, 1833}, - dictWord{6, 0, 1861}, - dictWord{136, 0, 878}, - dictWord{134, 0, 1569}, - dictWord{8, 10, 357}, - dictWord{10, 10, 745}, - dictWord{ - 14, - 10, - 426, - }, - dictWord{17, 10, 94}, - dictWord{147, 10, 57}, - dictWord{12, 0, 93}, - dictWord{12, 0, 501}, - dictWord{13, 0, 362}, - dictWord{14, 0, 151}, - dictWord{15, 0, 40}, - dictWord{15, 0, 59}, - dictWord{16, 0, 46}, - dictWord{17, 0, 25}, - dictWord{18, 0, 14}, - dictWord{18, 0, 134}, - dictWord{19, 0, 25}, - dictWord{19, 0, 69}, - dictWord{ - 20, - 0, - 16, - }, - dictWord{20, 0, 19}, - dictWord{20, 0, 66}, - dictWord{21, 0, 23}, - dictWord{21, 0, 25}, - dictWord{150, 0, 42}, - dictWord{6, 0, 1748}, - dictWord{8, 0, 715}, - dictWord{ - 9, - 0, - 802, - }, - dictWord{10, 0, 46}, - dictWord{10, 0, 819}, - dictWord{13, 0, 308}, - dictWord{14, 0, 351}, - dictWord{14, 0, 363}, - dictWord{146, 0, 67}, - dictWord{ - 132, - 0, - 994, - }, - dictWord{4, 0, 63}, - dictWord{133, 0, 347}, - dictWord{132, 0, 591}, - dictWord{133, 0, 749}, - dictWord{7, 11, 1577}, - dictWord{10, 11, 304}, - dictWord{ - 10, - 11, - 549, - }, - dictWord{11, 11, 424}, - dictWord{12, 11, 365}, - dictWord{13, 11, 220}, - dictWord{13, 11, 240}, - dictWord{142, 11, 33}, - dictWord{133, 0, 366}, - dictWord{ - 7, - 0, - 557, - }, - dictWord{12, 0, 547}, - dictWord{14, 0, 86}, - dictWord{133, 10, 387}, - dictWord{135, 0, 1747}, - dictWord{132, 11, 907}, - dictWord{5, 11, 100}, - dictWord{10, 11, 329}, - dictWord{12, 11, 416}, - dictWord{149, 11, 29}, - dictWord{4, 10, 6}, - dictWord{5, 10, 708}, - dictWord{136, 10, 75}, - dictWord{7, 10, 1351}, - dictWord{9, 10, 581}, - dictWord{10, 10, 639}, - dictWord{11, 10, 453}, - dictWord{140, 10, 584}, - dictWord{7, 0, 89}, - dictWord{132, 10, 303}, - dictWord{138, 10, 772}, - dictWord{132, 11, 176}, - dictWord{5, 11, 636}, - dictWord{5, 11, 998}, - dictWord{8, 11, 26}, - dictWord{137, 11, 358}, - dictWord{7, 11, 9}, - dictWord{7, 11, 1508}, - dictWord{9, 11, 317}, - dictWord{10, 11, 210}, - dictWord{10, 11, 292}, - dictWord{10, 11, 533}, - dictWord{11, 11, 555}, - dictWord{12, 11, 526}, - dictWord{ - 12, - 11, - 607, - }, - dictWord{13, 11, 263}, - dictWord{13, 11, 459}, - dictWord{142, 11, 271}, - dictWord{134, 0, 1463}, - dictWord{6, 0, 772}, - dictWord{6, 0, 1137}, - dictWord{ - 139, - 11, - 595, - }, - dictWord{7, 0, 977}, - dictWord{139, 11, 66}, - dictWord{138, 0, 893}, - dictWord{20, 0, 48}, - dictWord{148, 11, 48}, - dictWord{5, 0, 824}, - dictWord{ - 133, - 0, - 941, - }, - dictWord{134, 11, 295}, - dictWord{7, 0, 1543}, - dictWord{7, 0, 1785}, - dictWord{10, 0, 690}, - dictWord{4, 10, 106}, - dictWord{139, 10, 717}, - dictWord{ - 7, - 0, - 440, - }, - dictWord{8, 0, 230}, - dictWord{139, 0, 106}, - dictWord{5, 10, 890}, - dictWord{133, 10, 988}, - dictWord{6, 10, 626}, - dictWord{142, 10, 431}, - dictWord{ - 10, - 11, - 127, - }, - dictWord{141, 11, 27}, - dictWord{17, 0, 32}, - dictWord{10, 10, 706}, - dictWord{150, 10, 44}, - dictWord{132, 0, 216}, - dictWord{137, 0, 332}, - dictWord{4, 10, 698}, - dictWord{136, 11, 119}, - dictWord{139, 11, 267}, - dictWord{138, 10, 17}, - dictWord{11, 11, 526}, - dictWord{11, 11, 939}, - dictWord{ - 141, - 11, - 290, - }, - dictWord{7, 11, 1167}, - dictWord{11, 11, 934}, - dictWord{13, 11, 391}, - dictWord{145, 11, 76}, - dictWord{139, 11, 39}, - dictWord{134, 10, 84}, - dictWord{ - 4, - 0, - 914, - }, - dictWord{5, 0, 800}, - dictWord{133, 0, 852}, - dictWord{10, 0, 416}, - dictWord{141, 0, 115}, - dictWord{7, 0, 564}, - dictWord{142, 0, 168}, - dictWord{ - 4, - 0, - 918, - }, - dictWord{133, 0, 876}, - dictWord{134, 0, 1764}, - dictWord{152, 0, 3}, - dictWord{4, 0, 92}, - dictWord{5, 0, 274}, - dictWord{7, 11, 126}, - dictWord{136, 11, 84}, - dictWord{140, 10, 498}, - dictWord{136, 11, 790}, - dictWord{8, 0, 501}, - dictWord{5, 10, 986}, - dictWord{6, 10, 130}, - dictWord{7, 10, 1582}, - dictWord{ - 8, - 10, - 458, - }, - dictWord{10, 10, 101}, - dictWord{10, 10, 318}, - dictWord{138, 10, 823}, - dictWord{6, 11, 64}, - dictWord{12, 11, 377}, - dictWord{141, 11, 309}, - dictWord{ - 5, - 0, - 743, - }, - dictWord{138, 0, 851}, - dictWord{4, 0, 49}, - dictWord{7, 0, 280}, - dictWord{135, 0, 1633}, - dictWord{134, 0, 879}, - dictWord{136, 0, 47}, - dictWord{ - 7, - 10, - 1644, - }, - dictWord{137, 10, 129}, - dictWord{132, 0, 865}, - dictWord{134, 0, 1202}, - dictWord{9, 11, 34}, - dictWord{139, 11, 484}, - dictWord{135, 10, 997}, - dictWord{5, 0, 272}, - dictWord{5, 0, 908}, - dictWord{5, 0, 942}, - dictWord{8, 0, 197}, - dictWord{9, 0, 47}, - dictWord{11, 0, 538}, - dictWord{139, 0, 742}, - dictWord{ - 6, - 11, - 1700, - }, - dictWord{7, 11, 26}, - dictWord{7, 11, 293}, - dictWord{7, 11, 382}, - dictWord{7, 11, 1026}, - dictWord{7, 11, 1087}, - dictWord{7, 11, 2027}, - dictWord{ - 8, - 11, - 24, - }, - dictWord{8, 11, 114}, - dictWord{8, 11, 252}, - dictWord{8, 11, 727}, - dictWord{8, 11, 729}, - dictWord{9, 11, 30}, - dictWord{9, 11, 199}, - dictWord{9, 11, 231}, - dictWord{9, 11, 251}, - dictWord{9, 11, 334}, - dictWord{9, 11, 361}, - dictWord{9, 11, 488}, - dictWord{9, 11, 712}, - dictWord{10, 11, 55}, - dictWord{10, 11, 60}, - dictWord{ - 10, - 11, - 232, - }, - dictWord{10, 11, 332}, - dictWord{10, 11, 384}, - dictWord{10, 11, 396}, - dictWord{10, 11, 504}, - dictWord{10, 11, 542}, - dictWord{10, 11, 652}, - dictWord{11, 11, 20}, - dictWord{11, 11, 48}, - dictWord{11, 11, 207}, - dictWord{11, 11, 291}, - dictWord{11, 11, 298}, - dictWord{11, 11, 342}, - dictWord{ - 11, - 11, - 365, - }, - dictWord{11, 11, 394}, - dictWord{11, 11, 620}, - dictWord{11, 11, 705}, - dictWord{11, 11, 1017}, - dictWord{12, 11, 123}, - dictWord{12, 11, 340}, - dictWord{12, 11, 406}, - dictWord{12, 11, 643}, - dictWord{13, 11, 61}, - dictWord{13, 11, 269}, - dictWord{13, 11, 311}, - dictWord{13, 11, 319}, - dictWord{13, 11, 486}, - dictWord{14, 11, 234}, - dictWord{15, 11, 62}, - dictWord{15, 11, 85}, - dictWord{16, 11, 71}, - dictWord{18, 11, 119}, - dictWord{148, 11, 105}, - dictWord{ - 6, - 0, - 1455, - }, - dictWord{150, 11, 37}, - dictWord{135, 10, 1927}, - dictWord{135, 0, 1911}, - dictWord{137, 0, 891}, - dictWord{7, 10, 1756}, - dictWord{137, 10, 98}, - dictWord{7, 10, 1046}, - dictWord{139, 10, 160}, - dictWord{132, 0, 761}, - dictWord{6, 11, 379}, - dictWord{7, 11, 270}, - dictWord{7, 11, 1116}, - dictWord{ - 8, - 11, - 176, - }, - dictWord{8, 11, 183}, - dictWord{9, 11, 432}, - dictWord{9, 11, 661}, - dictWord{12, 11, 247}, - dictWord{12, 11, 617}, - dictWord{146, 11, 125}, - dictWord{ - 6, - 10, - 45, - }, - dictWord{7, 10, 433}, - dictWord{8, 10, 129}, - dictWord{9, 10, 21}, - dictWord{10, 10, 392}, - dictWord{11, 10, 79}, - dictWord{12, 10, 499}, - dictWord{ - 13, - 10, - 199, - }, - dictWord{141, 10, 451}, - dictWord{4, 0, 407}, - dictWord{5, 11, 792}, - dictWord{133, 11, 900}, - dictWord{132, 0, 560}, - dictWord{135, 0, 183}, - dictWord{ - 13, - 0, - 490, - }, - dictWord{7, 10, 558}, - dictWord{136, 10, 353}, - dictWord{4, 0, 475}, - dictWord{6, 0, 731}, - dictWord{11, 0, 35}, - dictWord{13, 0, 71}, - dictWord{13, 0, 177}, - dictWord{14, 0, 422}, - dictWord{133, 10, 785}, - dictWord{8, 10, 81}, - dictWord{9, 10, 189}, - dictWord{9, 10, 201}, - dictWord{11, 10, 478}, - dictWord{11, 10, 712}, - dictWord{141, 10, 338}, - dictWord{4, 0, 418}, - dictWord{4, 0, 819}, - dictWord{133, 10, 353}, - dictWord{151, 10, 26}, - dictWord{4, 11, 901}, - dictWord{ - 133, - 11, - 776, - }, - dictWord{132, 0, 575}, - dictWord{7, 0, 818}, - dictWord{16, 0, 92}, - dictWord{17, 0, 14}, - dictWord{17, 0, 45}, - dictWord{18, 0, 75}, - dictWord{148, 0, 18}, - dictWord{ - 6, - 0, - 222, - }, - dictWord{7, 0, 636}, - dictWord{7, 0, 1620}, - dictWord{8, 0, 409}, - dictWord{9, 0, 693}, - dictWord{139, 0, 77}, - dictWord{6, 10, 25}, - dictWord{7, 10, 855}, - dictWord{7, 10, 1258}, - dictWord{144, 10, 32}, - dictWord{6, 0, 1880}, - dictWord{6, 0, 1887}, - dictWord{6, 0, 1918}, - dictWord{6, 0, 1924}, - dictWord{9, 0, 967}, - dictWord{9, 0, 995}, - dictWord{9, 0, 1015}, - dictWord{12, 0, 826}, - dictWord{12, 0, 849}, - dictWord{12, 0, 857}, - dictWord{12, 0, 860}, - dictWord{12, 0, 886}, - dictWord{ - 12, - 0, - 932, - }, - dictWord{18, 0, 228}, - dictWord{18, 0, 231}, - dictWord{146, 0, 240}, - dictWord{134, 0, 633}, - dictWord{134, 0, 1308}, - dictWord{4, 11, 37}, - dictWord{ - 5, - 11, - 334, - }, - dictWord{135, 11, 1253}, - dictWord{10, 0, 86}, - dictWord{4, 10, 4}, - dictWord{7, 10, 1118}, - dictWord{7, 10, 1320}, - dictWord{7, 10, 1706}, - dictWord{ - 8, - 10, - 277, - }, - dictWord{9, 10, 622}, - dictWord{11, 10, 724}, - dictWord{12, 10, 350}, - dictWord{12, 10, 397}, - dictWord{13, 10, 28}, - dictWord{13, 10, 159}, - dictWord{ - 15, - 10, - 89, - }, - dictWord{18, 10, 5}, - dictWord{19, 10, 9}, - dictWord{20, 10, 34}, - dictWord{150, 10, 47}, - dictWord{132, 11, 508}, - dictWord{137, 11, 448}, - dictWord{ - 12, - 11, - 107, - }, - dictWord{146, 11, 31}, - dictWord{132, 0, 817}, - dictWord{134, 0, 663}, - dictWord{133, 0, 882}, - dictWord{134, 0, 914}, - dictWord{132, 11, 540}, - dictWord{132, 11, 533}, - dictWord{136, 11, 608}, - dictWord{8, 0, 885}, - dictWord{138, 0, 865}, - dictWord{132, 0, 426}, - dictWord{6, 0, 58}, - dictWord{7, 0, 745}, - dictWord{7, 0, 1969}, - dictWord{8, 0, 399}, - dictWord{8, 0, 675}, - dictWord{9, 0, 479}, - dictWord{9, 0, 731}, - dictWord{10, 0, 330}, - dictWord{10, 0, 593}, - dictWord{ - 10, - 0, - 817, - }, - dictWord{11, 0, 32}, - dictWord{11, 0, 133}, - dictWord{11, 0, 221}, - dictWord{145, 0, 68}, - dictWord{134, 10, 255}, - dictWord{7, 0, 102}, - dictWord{ - 137, - 0, - 538, - }, - dictWord{137, 10, 216}, - dictWord{7, 11, 253}, - dictWord{136, 11, 549}, - dictWord{135, 11, 912}, - dictWord{9, 10, 183}, - dictWord{139, 10, 286}, - dictWord{11, 10, 956}, - dictWord{151, 10, 3}, - dictWord{8, 11, 527}, - dictWord{18, 11, 60}, - dictWord{147, 11, 24}, - dictWord{4, 10, 536}, - dictWord{7, 10, 1141}, - dictWord{10, 10, 723}, - dictWord{139, 10, 371}, - dictWord{133, 11, 920}, - dictWord{7, 0, 876}, - dictWord{135, 10, 285}, - dictWord{135, 10, 560}, - dictWord{ - 132, - 10, - 690, - }, - dictWord{142, 11, 126}, - dictWord{11, 10, 33}, - dictWord{12, 10, 571}, - dictWord{149, 10, 1}, - dictWord{133, 0, 566}, - dictWord{9, 0, 139}, - dictWord{ - 10, - 0, - 399, - }, - dictWord{11, 0, 469}, - dictWord{12, 0, 634}, - dictWord{13, 0, 223}, - dictWord{132, 11, 483}, - dictWord{6, 0, 48}, - dictWord{135, 0, 63}, - dictWord{18, 0, 12}, - dictWord{7, 10, 1862}, - dictWord{12, 10, 491}, - dictWord{12, 10, 520}, - dictWord{13, 10, 383}, - dictWord{142, 10, 244}, - dictWord{135, 11, 1665}, - dictWord{132, 11, 448}, - dictWord{9, 11, 495}, - dictWord{146, 11, 104}, - dictWord{6, 0, 114}, - dictWord{7, 0, 1224}, - dictWord{7, 0, 1556}, - dictWord{136, 0, 3}, - dictWord{ - 4, - 10, - 190, - }, - dictWord{133, 10, 554}, - dictWord{8, 0, 576}, - dictWord{9, 0, 267}, - dictWord{133, 10, 1001}, - dictWord{133, 10, 446}, - dictWord{133, 0, 933}, - dictWord{139, 11, 1009}, - dictWord{8, 11, 653}, - dictWord{13, 11, 93}, - dictWord{147, 11, 14}, - dictWord{6, 0, 692}, - dictWord{6, 0, 821}, - dictWord{134, 0, 1077}, - dictWord{5, 11, 172}, - dictWord{135, 11, 801}, - dictWord{138, 0, 752}, - dictWord{4, 0, 375}, - dictWord{134, 0, 638}, - dictWord{134, 0, 1011}, - dictWord{ - 140, - 11, - 540, - }, - dictWord{9, 0, 96}, - dictWord{133, 11, 260}, - dictWord{139, 11, 587}, - dictWord{135, 10, 1231}, - dictWord{12, 0, 30}, - dictWord{13, 0, 148}, - dictWord{ - 14, - 0, - 87, - }, - dictWord{14, 0, 182}, - dictWord{16, 0, 42}, - dictWord{20, 0, 70}, - dictWord{132, 10, 304}, - dictWord{6, 0, 1398}, - dictWord{7, 0, 56}, - dictWord{7, 0, 1989}, - dictWord{8, 0, 337}, - dictWord{8, 0, 738}, - dictWord{9, 0, 600}, - dictWord{12, 0, 37}, - dictWord{13, 0, 447}, - dictWord{142, 0, 92}, - dictWord{138, 0, 666}, - dictWord{ - 5, - 0, - 394, - }, - dictWord{7, 0, 487}, - dictWord{136, 0, 246}, - dictWord{9, 0, 437}, - dictWord{6, 10, 53}, - dictWord{6, 10, 199}, - dictWord{7, 10, 1408}, - dictWord{8, 10, 32}, - dictWord{8, 10, 93}, - dictWord{10, 10, 397}, - dictWord{10, 10, 629}, - dictWord{11, 10, 593}, - dictWord{11, 10, 763}, - dictWord{13, 10, 326}, - dictWord{145, 10, 35}, - dictWord{134, 10, 105}, - dictWord{9, 0, 320}, - dictWord{10, 0, 506}, - dictWord{138, 10, 794}, - dictWord{7, 11, 57}, - dictWord{8, 11, 167}, - dictWord{8, 11, 375}, - dictWord{9, 11, 82}, - dictWord{9, 11, 561}, - dictWord{10, 11, 620}, - dictWord{10, 11, 770}, - dictWord{11, 10, 704}, - dictWord{141, 10, 396}, - dictWord{6, 0, 1003}, - dictWord{5, 10, 114}, - dictWord{5, 10, 255}, - dictWord{141, 10, 285}, - dictWord{7, 0, 866}, - dictWord{135, 0, 1163}, - dictWord{133, 11, 531}, - dictWord{ - 132, - 0, - 328, - }, - dictWord{7, 10, 2035}, - dictWord{8, 10, 19}, - dictWord{9, 10, 89}, - dictWord{138, 10, 831}, - dictWord{8, 11, 194}, - dictWord{136, 11, 756}, - dictWord{ - 136, - 0, - 1000, - }, - dictWord{5, 11, 453}, - dictWord{134, 11, 441}, - dictWord{4, 0, 101}, - dictWord{5, 0, 833}, - dictWord{7, 0, 1171}, - dictWord{136, 0, 744}, - dictWord{ - 133, - 0, - 726, - }, - dictWord{136, 10, 746}, - dictWord{138, 0, 176}, - dictWord{6, 0, 9}, - dictWord{6, 0, 397}, - dictWord{7, 0, 53}, - dictWord{7, 0, 1742}, - dictWord{10, 0, 632}, - dictWord{11, 0, 828}, - dictWord{140, 0, 146}, - dictWord{135, 11, 22}, - dictWord{145, 11, 64}, - dictWord{132, 0, 839}, - dictWord{11, 0, 417}, - dictWord{12, 0, 223}, - dictWord{140, 0, 265}, - dictWord{4, 11, 102}, - dictWord{7, 11, 815}, - dictWord{7, 11, 1699}, - dictWord{139, 11, 964}, - dictWord{5, 10, 955}, - dictWord{ - 136, - 10, - 814, - }, - dictWord{6, 0, 1931}, - dictWord{6, 0, 2007}, - dictWord{18, 0, 246}, - dictWord{146, 0, 247}, - dictWord{8, 0, 198}, - dictWord{11, 0, 29}, - dictWord{140, 0, 534}, - dictWord{135, 0, 1771}, - dictWord{6, 0, 846}, - dictWord{7, 11, 1010}, - dictWord{11, 11, 733}, - dictWord{11, 11, 759}, - dictWord{12, 11, 563}, - dictWord{ - 13, - 11, - 34, - }, - dictWord{14, 11, 101}, - dictWord{18, 11, 45}, - dictWord{146, 11, 129}, - dictWord{4, 0, 186}, - dictWord{5, 0, 157}, - dictWord{8, 0, 168}, - dictWord{138, 0, 6}, - dictWord{132, 11, 899}, - dictWord{133, 10, 56}, - dictWord{148, 10, 100}, - dictWord{133, 0, 875}, - dictWord{5, 0, 773}, - dictWord{5, 0, 991}, - dictWord{6, 0, 1635}, - dictWord{134, 0, 1788}, - dictWord{6, 0, 1274}, - dictWord{9, 0, 477}, - dictWord{141, 0, 78}, - dictWord{4, 0, 639}, - dictWord{7, 0, 111}, - dictWord{8, 0, 581}, - dictWord{ - 12, - 0, - 177, - }, - dictWord{6, 11, 52}, - dictWord{9, 11, 104}, - dictWord{9, 11, 559}, - dictWord{10, 10, 4}, - dictWord{10, 10, 13}, - dictWord{11, 10, 638}, - dictWord{ - 12, - 11, - 308, - }, - dictWord{19, 11, 87}, - dictWord{148, 10, 57}, - dictWord{132, 11, 604}, - dictWord{4, 11, 301}, - dictWord{133, 10, 738}, - dictWord{133, 10, 758}, - dictWord{134, 0, 1747}, - dictWord{7, 11, 1440}, - dictWord{11, 11, 854}, - dictWord{11, 11, 872}, - dictWord{11, 11, 921}, - dictWord{12, 11, 551}, - dictWord{ - 13, - 11, - 472, - }, - dictWord{142, 11, 367}, - dictWord{7, 0, 1364}, - dictWord{7, 0, 1907}, - dictWord{141, 0, 158}, - dictWord{134, 0, 873}, - dictWord{4, 0, 404}, - dictWord{ - 4, - 0, - 659, - }, - dictWord{7, 0, 552}, - dictWord{135, 0, 675}, - dictWord{135, 10, 1112}, - dictWord{139, 10, 328}, - dictWord{7, 11, 508}, - dictWord{137, 10, 133}, - dictWord{133, 0, 391}, - dictWord{5, 10, 110}, - dictWord{6, 10, 169}, - dictWord{6, 10, 1702}, - dictWord{7, 10, 400}, - dictWord{8, 10, 538}, - dictWord{9, 10, 184}, - dictWord{ - 9, - 10, - 524, - }, - dictWord{140, 10, 218}, - dictWord{6, 11, 310}, - dictWord{7, 11, 1849}, - dictWord{8, 11, 72}, - dictWord{8, 11, 272}, - dictWord{8, 11, 431}, - dictWord{ - 9, - 11, - 12, - }, - dictWord{9, 11, 351}, - dictWord{10, 11, 563}, - dictWord{10, 11, 630}, - dictWord{10, 11, 810}, - dictWord{11, 11, 367}, - dictWord{11, 11, 599}, - dictWord{11, 11, 686}, - dictWord{140, 11, 672}, - dictWord{5, 0, 540}, - dictWord{6, 0, 1697}, - dictWord{136, 0, 668}, - dictWord{132, 0, 883}, - dictWord{134, 0, 78}, - dictWord{12, 0, 628}, - dictWord{18, 0, 79}, - dictWord{6, 10, 133}, - dictWord{9, 10, 353}, - dictWord{139, 10, 993}, - dictWord{6, 11, 181}, - dictWord{7, 11, 537}, - dictWord{ - 8, - 11, - 64, - }, - dictWord{9, 11, 127}, - dictWord{10, 11, 496}, - dictWord{12, 11, 510}, - dictWord{141, 11, 384}, - dictWord{6, 10, 93}, - dictWord{7, 10, 1422}, - dictWord{ - 7, - 10, - 1851, - }, - dictWord{8, 10, 673}, - dictWord{9, 10, 529}, - dictWord{140, 10, 43}, - dictWord{137, 10, 371}, - dictWord{134, 0, 1460}, - dictWord{134, 0, 962}, - dictWord{4, 11, 244}, - dictWord{135, 11, 233}, - dictWord{9, 10, 25}, - dictWord{10, 10, 467}, - dictWord{138, 10, 559}, - dictWord{4, 10, 335}, - dictWord{ - 135, - 10, - 942, - }, - dictWord{133, 0, 460}, - dictWord{135, 11, 334}, - dictWord{134, 11, 1650}, - dictWord{4, 0, 199}, - dictWord{139, 0, 34}, - dictWord{5, 10, 601}, - dictWord{ - 8, - 10, - 39, - }, - dictWord{10, 10, 773}, - dictWord{11, 10, 84}, - dictWord{12, 10, 205}, - dictWord{142, 10, 1}, - dictWord{133, 10, 870}, - dictWord{134, 0, 388}, - dictWord{14, 0, 474}, - dictWord{148, 0, 120}, - dictWord{133, 11, 369}, - dictWord{139, 0, 271}, - dictWord{4, 0, 511}, - dictWord{9, 0, 333}, - dictWord{9, 0, 379}, - dictWord{ - 10, - 0, - 602, - }, - dictWord{11, 0, 441}, - dictWord{11, 0, 723}, - dictWord{11, 0, 976}, - dictWord{12, 0, 357}, - dictWord{132, 10, 181}, - dictWord{134, 0, 608}, - dictWord{134, 10, 1652}, - dictWord{22, 0, 49}, - dictWord{137, 11, 338}, - dictWord{140, 0, 988}, - dictWord{134, 0, 617}, - dictWord{5, 0, 938}, - dictWord{136, 0, 707}, - dictWord{132, 10, 97}, - dictWord{5, 10, 147}, - dictWord{6, 10, 286}, - dictWord{7, 10, 1362}, - dictWord{141, 10, 176}, - dictWord{6, 0, 756}, - dictWord{ - 134, - 0, - 1149, - }, - dictWord{133, 11, 896}, - dictWord{6, 10, 375}, - dictWord{7, 10, 169}, - dictWord{7, 10, 254}, - dictWord{136, 10, 780}, - dictWord{134, 0, 1583}, - dictWord{135, 10, 1447}, - dictWord{139, 0, 285}, - dictWord{7, 11, 1117}, - dictWord{8, 11, 393}, - dictWord{136, 11, 539}, - dictWord{135, 0, 344}, - dictWord{ - 6, - 0, - 469, - }, - dictWord{7, 0, 1709}, - dictWord{138, 0, 515}, - dictWord{5, 10, 629}, - dictWord{135, 10, 1549}, - dictWord{5, 11, 4}, - dictWord{5, 11, 810}, - dictWord{ - 6, - 11, - 13, - }, - dictWord{6, 11, 538}, - dictWord{6, 11, 1690}, - dictWord{6, 11, 1726}, - dictWord{7, 11, 499}, - dictWord{7, 11, 1819}, - dictWord{8, 11, 148}, - dictWord{ - 8, - 11, - 696, - }, - dictWord{8, 11, 791}, - dictWord{12, 11, 125}, - dictWord{13, 11, 54}, - dictWord{143, 11, 9}, - dictWord{135, 11, 1268}, - dictWord{137, 0, 404}, - dictWord{ - 132, - 0, - 500, - }, - dictWord{5, 0, 68}, - dictWord{134, 0, 383}, - dictWord{11, 0, 216}, - dictWord{139, 0, 340}, - dictWord{4, 11, 925}, - dictWord{5, 11, 803}, - dictWord{ - 8, - 11, - 698, - }, - dictWord{138, 11, 828}, - dictWord{4, 0, 337}, - dictWord{6, 0, 353}, - dictWord{7, 0, 1934}, - dictWord{8, 0, 488}, - dictWord{137, 0, 429}, - dictWord{7, 0, 236}, - dictWord{7, 0, 1795}, - dictWord{8, 0, 259}, - dictWord{9, 0, 135}, - dictWord{9, 0, 177}, - dictWord{9, 0, 860}, - dictWord{10, 0, 825}, - dictWord{11, 0, 115}, - dictWord{ - 11, - 0, - 370, - }, - dictWord{11, 0, 405}, - dictWord{11, 0, 604}, - dictWord{12, 0, 10}, - dictWord{12, 0, 667}, - dictWord{12, 0, 669}, - dictWord{13, 0, 76}, - dictWord{14, 0, 310}, - dictWord{15, 0, 76}, - dictWord{15, 0, 147}, - dictWord{148, 0, 23}, - dictWord{4, 0, 15}, - dictWord{4, 0, 490}, - dictWord{5, 0, 22}, - dictWord{6, 0, 244}, - dictWord{7, 0, 40}, - dictWord{7, 0, 200}, - dictWord{7, 0, 906}, - dictWord{7, 0, 1199}, - dictWord{9, 0, 616}, - dictWord{10, 0, 716}, - dictWord{11, 0, 635}, - dictWord{11, 0, 801}, - dictWord{ - 140, - 0, - 458, - }, - dictWord{12, 0, 756}, - dictWord{132, 10, 420}, - dictWord{134, 0, 1504}, - dictWord{6, 0, 757}, - dictWord{133, 11, 383}, - dictWord{6, 0, 1266}, - dictWord{ - 135, - 0, - 1735, - }, - dictWord{5, 0, 598}, - dictWord{7, 0, 791}, - dictWord{8, 0, 108}, - dictWord{9, 0, 123}, - dictWord{7, 10, 1570}, - dictWord{140, 10, 542}, - dictWord{ - 142, - 11, - 410, - }, - dictWord{9, 11, 660}, - dictWord{138, 11, 347}, -} diff --git a/vendor/github.com/andybalholm/brotli/symbol_list.go b/vendor/github.com/andybalholm/brotli/symbol_list.go deleted file mode 100644 index c5cb49e..0000000 --- a/vendor/github.com/andybalholm/brotli/symbol_list.go +++ /dev/null @@ -1,22 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Utilities for building Huffman decoding tables. */ - -type symbolList struct { - storage []uint16 - offset int -} - -func symbolListGet(sl symbolList, i int) uint16 { - return sl.storage[i+sl.offset] -} - -func symbolListPut(sl symbolList, i int, val uint16) { - sl.storage[i+sl.offset] = val -} diff --git a/vendor/github.com/andybalholm/brotli/transform.go b/vendor/github.com/andybalholm/brotli/transform.go deleted file mode 100644 index d2c043a..0000000 --- a/vendor/github.com/andybalholm/brotli/transform.go +++ /dev/null @@ -1,641 +0,0 @@ -package brotli - -const ( - transformIdentity = 0 - transformOmitLast1 = 1 - transformOmitLast2 = 2 - transformOmitLast3 = 3 - transformOmitLast4 = 4 - transformOmitLast5 = 5 - transformOmitLast6 = 6 - transformOmitLast7 = 7 - transformOmitLast8 = 8 - transformOmitLast9 = 9 - transformUppercaseFirst = 10 - transformUppercaseAll = 11 - transformOmitFirst1 = 12 - transformOmitFirst2 = 13 - transformOmitFirst3 = 14 - transformOmitFirst4 = 15 - transformOmitFirst5 = 16 - transformOmitFirst6 = 17 - transformOmitFirst7 = 18 - transformOmitFirst8 = 19 - transformOmitFirst9 = 20 - transformShiftFirst = 21 - transformShiftAll = 22 + iota - 22 - numTransformTypes -) - -const transformsMaxCutOff = transformOmitLast9 - -type transforms struct { - prefix_suffix_size uint16 - prefix_suffix []byte - prefix_suffix_map []uint16 - num_transforms uint32 - transforms []byte - params []byte - cutOffTransforms [transformsMaxCutOff + 1]int16 -} - -func transformPrefixId(t *transforms, I int) byte { - return t.transforms[(I*3)+0] -} - -func transformType(t *transforms, I int) byte { - return t.transforms[(I*3)+1] -} - -func transformSuffixId(t *transforms, I int) byte { - return t.transforms[(I*3)+2] -} - -func transformPrefix(t *transforms, I int) []byte { - return t.prefix_suffix[t.prefix_suffix_map[transformPrefixId(t, I)]:] -} - -func transformSuffix(t *transforms, I int) []byte { - return t.prefix_suffix[t.prefix_suffix_map[transformSuffixId(t, I)]:] -} - -/* RFC 7932 transforms string data */ -const kPrefixSuffix string = "\001 \002, \010 of the \004 of \002s \001.\005 and \004 " + "in \001\"\004 to \002\">\001\n\002. \001]\005 for \003 a \006 " + "that \001'\006 with \006 from \004 by \001(\006. T" + "he \004 on \004 as \004 is \004ing \002\n\t\001:\003ed " + "\002=\"\004 at \003ly \001,\002='\005.com/\007. This \005" + " not \003er \003al \004ful \004ive \005less \004es" + "t \004ize \002\xc2\xa0\004ous \005 the \002e \000" - -var kPrefixSuffixMap = [50]uint16{ - 0x00, - 0x02, - 0x05, - 0x0E, - 0x13, - 0x16, - 0x18, - 0x1E, - 0x23, - 0x25, - 0x2A, - 0x2D, - 0x2F, - 0x32, - 0x34, - 0x3A, - 0x3E, - 0x45, - 0x47, - 0x4E, - 0x55, - 0x5A, - 0x5C, - 0x63, - 0x68, - 0x6D, - 0x72, - 0x77, - 0x7A, - 0x7C, - 0x80, - 0x83, - 0x88, - 0x8C, - 0x8E, - 0x91, - 0x97, - 0x9F, - 0xA5, - 0xA9, - 0xAD, - 0xB2, - 0xB7, - 0xBD, - 0xC2, - 0xC7, - 0xCA, - 0xCF, - 0xD5, - 0xD8, -} - -/* RFC 7932 transforms */ -var kTransformsData = []byte{ - 49, - transformIdentity, - 49, - 49, - transformIdentity, - 0, - 0, - transformIdentity, - 0, - 49, - transformOmitFirst1, - 49, - 49, - transformUppercaseFirst, - 0, - 49, - transformIdentity, - 47, - 0, - transformIdentity, - 49, - 4, - transformIdentity, - 0, - 49, - transformIdentity, - 3, - 49, - transformUppercaseFirst, - 49, - 49, - transformIdentity, - 6, - 49, - transformOmitFirst2, - 49, - 49, - transformOmitLast1, - 49, - 1, - transformIdentity, - 0, - 49, - transformIdentity, - 1, - 0, - transformUppercaseFirst, - 0, - 49, - transformIdentity, - 7, - 49, - transformIdentity, - 9, - 48, - transformIdentity, - 0, - 49, - transformIdentity, - 8, - 49, - transformIdentity, - 5, - 49, - transformIdentity, - 10, - 49, - transformIdentity, - 11, - 49, - transformOmitLast3, - 49, - 49, - transformIdentity, - 13, - 49, - transformIdentity, - 14, - 49, - transformOmitFirst3, - 49, - 49, - transformOmitLast2, - 49, - 49, - transformIdentity, - 15, - 49, - transformIdentity, - 16, - 0, - transformUppercaseFirst, - 49, - 49, - transformIdentity, - 12, - 5, - transformIdentity, - 49, - 0, - transformIdentity, - 1, - 49, - transformOmitFirst4, - 49, - 49, - transformIdentity, - 18, - 49, - transformIdentity, - 17, - 49, - transformIdentity, - 19, - 49, - transformIdentity, - 20, - 49, - transformOmitFirst5, - 49, - 49, - transformOmitFirst6, - 49, - 47, - transformIdentity, - 49, - 49, - transformOmitLast4, - 49, - 49, - transformIdentity, - 22, - 49, - transformUppercaseAll, - 49, - 49, - transformIdentity, - 23, - 49, - transformIdentity, - 24, - 49, - transformIdentity, - 25, - 49, - transformOmitLast7, - 49, - 49, - transformOmitLast1, - 26, - 49, - transformIdentity, - 27, - 49, - transformIdentity, - 28, - 0, - transformIdentity, - 12, - 49, - transformIdentity, - 29, - 49, - transformOmitFirst9, - 49, - 49, - transformOmitFirst7, - 49, - 49, - transformOmitLast6, - 49, - 49, - transformIdentity, - 21, - 49, - transformUppercaseFirst, - 1, - 49, - transformOmitLast8, - 49, - 49, - transformIdentity, - 31, - 49, - transformIdentity, - 32, - 47, - transformIdentity, - 3, - 49, - transformOmitLast5, - 49, - 49, - transformOmitLast9, - 49, - 0, - transformUppercaseFirst, - 1, - 49, - transformUppercaseFirst, - 8, - 5, - transformIdentity, - 21, - 49, - transformUppercaseAll, - 0, - 49, - transformUppercaseFirst, - 10, - 49, - transformIdentity, - 30, - 0, - transformIdentity, - 5, - 35, - transformIdentity, - 49, - 47, - transformIdentity, - 2, - 49, - transformUppercaseFirst, - 17, - 49, - transformIdentity, - 36, - 49, - transformIdentity, - 33, - 5, - transformIdentity, - 0, - 49, - transformUppercaseFirst, - 21, - 49, - transformUppercaseFirst, - 5, - 49, - transformIdentity, - 37, - 0, - transformIdentity, - 30, - 49, - transformIdentity, - 38, - 0, - transformUppercaseAll, - 0, - 49, - transformIdentity, - 39, - 0, - transformUppercaseAll, - 49, - 49, - transformIdentity, - 34, - 49, - transformUppercaseAll, - 8, - 49, - transformUppercaseFirst, - 12, - 0, - transformIdentity, - 21, - 49, - transformIdentity, - 40, - 0, - transformUppercaseFirst, - 12, - 49, - transformIdentity, - 41, - 49, - transformIdentity, - 42, - 49, - transformUppercaseAll, - 17, - 49, - transformIdentity, - 43, - 0, - transformUppercaseFirst, - 5, - 49, - transformUppercaseAll, - 10, - 0, - transformIdentity, - 34, - 49, - transformUppercaseFirst, - 33, - 49, - transformIdentity, - 44, - 49, - transformUppercaseAll, - 5, - 45, - transformIdentity, - 49, - 0, - transformIdentity, - 33, - 49, - transformUppercaseFirst, - 30, - 49, - transformUppercaseAll, - 30, - 49, - transformIdentity, - 46, - 49, - transformUppercaseAll, - 1, - 49, - transformUppercaseFirst, - 34, - 0, - transformUppercaseFirst, - 33, - 0, - transformUppercaseAll, - 30, - 0, - transformUppercaseAll, - 1, - 49, - transformUppercaseAll, - 33, - 49, - transformUppercaseAll, - 21, - 49, - transformUppercaseAll, - 12, - 0, - transformUppercaseAll, - 5, - 49, - transformUppercaseAll, - 34, - 0, - transformUppercaseAll, - 12, - 0, - transformUppercaseFirst, - 30, - 0, - transformUppercaseAll, - 34, - 0, - transformUppercaseFirst, - 34, -} - -var kBrotliTransforms = transforms{ - 217, - []byte(kPrefixSuffix), - kPrefixSuffixMap[:], - 121, - kTransformsData, - nil, /* no extra parameters */ - [transformsMaxCutOff + 1]int16{0, 12, 27, 23, 42, 63, 56, 48, 59, 64}, -} - -func getTransforms() *transforms { - return &kBrotliTransforms -} - -func toUpperCase(p []byte) int { - if p[0] < 0xC0 { - if p[0] >= 'a' && p[0] <= 'z' { - p[0] ^= 32 - } - - return 1 - } - - /* An overly simplified uppercasing model for UTF-8. */ - if p[0] < 0xE0 { - p[1] ^= 32 - return 2 - } - - /* An arbitrary transform for three byte characters. */ - p[2] ^= 5 - - return 3 -} - -func shiftTransform(word []byte, word_len int, parameter uint16) int { - /* Limited sign extension: scalar < (1 << 24). */ - var scalar uint32 = (uint32(parameter) & 0x7FFF) + (0x1000000 - (uint32(parameter) & 0x8000)) - if word[0] < 0x80 { - /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */ - scalar += uint32(word[0]) - - word[0] = byte(scalar & 0x7F) - return 1 - } else if word[0] < 0xC0 { - /* Continuation / 10AAAAAA. */ - return 1 - } else if word[0] < 0xE0 { - /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */ - if word_len < 2 { - return 1 - } - scalar += uint32(word[1]&0x3F | (word[0]&0x1F)<<6) - word[0] = byte(0xC0 | (scalar>>6)&0x1F) - word[1] = byte(uint32(word[1]&0xC0) | scalar&0x3F) - return 2 - } else if word[0] < 0xF0 { - /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */ - if word_len < 3 { - return word_len - } - scalar += uint32(word[2])&0x3F | uint32(word[1]&0x3F)<<6 | uint32(word[0]&0x0F)<<12 - word[0] = byte(0xE0 | (scalar>>12)&0x0F) - word[1] = byte(uint32(word[1]&0xC0) | (scalar>>6)&0x3F) - word[2] = byte(uint32(word[2]&0xC0) | scalar&0x3F) - return 3 - } else if word[0] < 0xF8 { - /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */ - if word_len < 4 { - return word_len - } - scalar += uint32(word[3])&0x3F | uint32(word[2]&0x3F)<<6 | uint32(word[1]&0x3F)<<12 | uint32(word[0]&0x07)<<18 - word[0] = byte(0xF0 | (scalar>>18)&0x07) - word[1] = byte(uint32(word[1]&0xC0) | (scalar>>12)&0x3F) - word[2] = byte(uint32(word[2]&0xC0) | (scalar>>6)&0x3F) - word[3] = byte(uint32(word[3]&0xC0) | scalar&0x3F) - return 4 - } - - return 1 -} - -func transformDictionaryWord(dst []byte, word []byte, len int, trans *transforms, transform_idx int) int { - var idx int = 0 - var prefix []byte = transformPrefix(trans, transform_idx) - var type_ byte = transformType(trans, transform_idx) - var suffix []byte = transformSuffix(trans, transform_idx) - { - var prefix_len int = int(prefix[0]) - prefix = prefix[1:] - for { - tmp1 := prefix_len - prefix_len-- - if tmp1 == 0 { - break - } - dst[idx] = prefix[0] - idx++ - prefix = prefix[1:] - } - } - { - var t int = int(type_) - var i int = 0 - if t <= transformOmitLast9 { - len -= t - } else if t >= transformOmitFirst1 && t <= transformOmitFirst9 { - var skip int = t - (transformOmitFirst1 - 1) - word = word[skip:] - len -= skip - } - - for i < len { - dst[idx] = word[i] - idx++ - i++ - } - if t == transformUppercaseFirst { - toUpperCase(dst[idx-len:]) - } else if t == transformUppercaseAll { - var uppercase []byte = dst - uppercase = uppercase[idx-len:] - for len > 0 { - var step int = toUpperCase(uppercase) - uppercase = uppercase[step:] - len -= step - } - } else if t == transformShiftFirst { - var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 - shiftTransform(dst[idx-len:], int(len), param) - } else if t == transformShiftAll { - var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 - var shift []byte = dst - shift = shift[idx-len:] - for len > 0 { - var step int = shiftTransform(shift, int(len), param) - shift = shift[step:] - len -= step - } - } - } - { - var suffix_len int = int(suffix[0]) - suffix = suffix[1:] - for { - tmp2 := suffix_len - suffix_len-- - if tmp2 == 0 { - break - } - dst[idx] = suffix[0] - idx++ - suffix = suffix[1:] - } - return idx - } -} diff --git a/vendor/github.com/andybalholm/brotli/utf8_util.go b/vendor/github.com/andybalholm/brotli/utf8_util.go deleted file mode 100644 index 3244247..0000000 --- a/vendor/github.com/andybalholm/brotli/utf8_util.go +++ /dev/null @@ -1,70 +0,0 @@ -package brotli - -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Heuristics for deciding about the UTF8-ness of strings. */ - -const kMinUTF8Ratio float64 = 0.75 - -/* Returns 1 if at least min_fraction of the bytes between pos and - pos + length in the (data, mask) ring-buffer is UTF8-encoded, otherwise - returns 0. */ -func parseAsUTF8(symbol *int, input []byte, size uint) uint { - /* ASCII */ - if input[0]&0x80 == 0 { - *symbol = int(input[0]) - if *symbol > 0 { - return 1 - } - } - - /* 2-byte UTF8 */ - if size > 1 && input[0]&0xE0 == 0xC0 && input[1]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x1F)<<6 | int(input[1])&0x3F - if *symbol > 0x7F { - return 2 - } - } - - /* 3-byte UFT8 */ - if size > 2 && input[0]&0xF0 == 0xE0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x0F)<<12 | (int(input[1])&0x3F)<<6 | int(input[2])&0x3F - if *symbol > 0x7FF { - return 3 - } - } - - /* 4-byte UFT8 */ - if size > 3 && input[0]&0xF8 == 0xF0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 && input[3]&0xC0 == 0x80 { - *symbol = (int(input[0])&0x07)<<18 | (int(input[1])&0x3F)<<12 | (int(input[2])&0x3F)<<6 | int(input[3])&0x3F - if *symbol > 0xFFFF && *symbol <= 0x10FFFF { - return 4 - } - } - - /* Not UTF8, emit a special symbol above the UTF8-code space */ - *symbol = 0x110000 | int(input[0]) - - return 1 -} - -/* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/ -func isMostlyUTF8(data []byte, pos uint, mask uint, length uint, min_fraction float64) bool { - var size_utf8 uint = 0 - var i uint = 0 - for i < length { - var symbol int - current_data := data[(pos+i)&mask:] - var bytes_read uint = parseAsUTF8(&symbol, current_data, length-i) - i += bytes_read - if symbol < 0x110000 { - size_utf8 += bytes_read - } - } - - return float64(size_utf8) > min_fraction*float64(length) -} diff --git a/vendor/github.com/andybalholm/brotli/util.go b/vendor/github.com/andybalholm/brotli/util.go deleted file mode 100644 index a84553a..0000000 --- a/vendor/github.com/andybalholm/brotli/util.go +++ /dev/null @@ -1,7 +0,0 @@ -package brotli - -func assert(cond bool) { - if !cond { - panic("assertion failure") - } -} diff --git a/vendor/github.com/andybalholm/brotli/write_bits.go b/vendor/github.com/andybalholm/brotli/write_bits.go deleted file mode 100644 index 8729901..0000000 --- a/vendor/github.com/andybalholm/brotli/write_bits.go +++ /dev/null @@ -1,52 +0,0 @@ -package brotli - -import "encoding/binary" - -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Write bits into a byte array. */ - -/* This function writes bits into bytes in increasing addresses, and within - a byte least-significant-bit first. - - The function can write up to 56 bits in one go with WriteBits - Example: let's assume that 3 bits (Rs below) have been written already: - - BYTE-0 BYTE+1 BYTE+2 - - 0000 0RRR 0000 0000 0000 0000 - - Now, we could write 5 or less bits in MSB by just sifting by 3 - and OR'ing to BYTE-0. - - For n bits, we take the last 5 bits, OR that with high bits in BYTE-0, - and locate the rest in BYTE+1, BYTE+2, etc. */ -func writeBits(n_bits uint, bits uint64, pos *uint, array []byte) { - /* This branch of the code can write up to 56 bits at a time, - 7 bits are lost by being perhaps already in *p and at least - 1 bit is needed to initialize the bit-stream ahead (i.e. if 7 - bits are in *p and we write 57 bits, then the next write will - access a byte that was never initialized). */ - p := array[*pos>>3:] - v := uint64(p[0]) - v |= bits << (*pos & 7) - binary.LittleEndian.PutUint64(p, v) - *pos += n_bits -} - -func writeSingleBit(bit bool, pos *uint, array []byte) { - if bit { - writeBits(1, 1, pos, array) - } else { - writeBits(1, 0, pos, array) - } -} - -func writeBitsPrepareStorage(pos uint, array []byte) { - assert(pos&7 == 0) - array[pos>>3] = 0 -} diff --git a/vendor/github.com/andybalholm/brotli/writer.go b/vendor/github.com/andybalholm/brotli/writer.go deleted file mode 100644 index 8a68811..0000000 --- a/vendor/github.com/andybalholm/brotli/writer.go +++ /dev/null @@ -1,162 +0,0 @@ -package brotli - -import ( - "errors" - "io" - - "github.com/andybalholm/brotli/matchfinder" -) - -const ( - BestSpeed = 0 - BestCompression = 11 - DefaultCompression = 6 -) - -// WriterOptions configures Writer. -type WriterOptions struct { - // Quality controls the compression-speed vs compression-density trade-offs. - // The higher the quality, the slower the compression. Range is 0 to 11. - Quality int - // LGWin is the base 2 logarithm of the sliding window size. - // Range is 10 to 24. 0 indicates automatic configuration based on Quality. - LGWin int -} - -var ( - errEncode = errors.New("brotli: encode error") - errWriterClosed = errors.New("brotli: Writer is closed") -) - -// Writes to the returned writer are compressed and written to dst. -// It is the caller's responsibility to call Close on the Writer when done. -// Writes may be buffered and not flushed until Close. -func NewWriter(dst io.Writer) *Writer { - return NewWriterLevel(dst, DefaultCompression) -} - -// NewWriterLevel is like NewWriter but specifies the compression level instead -// of assuming DefaultCompression. -// The compression level can be DefaultCompression or any integer value between -// BestSpeed and BestCompression inclusive. -func NewWriterLevel(dst io.Writer, level int) *Writer { - return NewWriterOptions(dst, WriterOptions{ - Quality: level, - }) -} - -// NewWriterOptions is like NewWriter but specifies WriterOptions -func NewWriterOptions(dst io.Writer, options WriterOptions) *Writer { - w := new(Writer) - w.options = options - w.Reset(dst) - return w -} - -// Reset discards the Writer's state and makes it equivalent to the result of -// its original state from NewWriter or NewWriterLevel, but writing to dst -// instead. This permits reusing a Writer rather than allocating a new one. -func (w *Writer) Reset(dst io.Writer) { - encoderInitState(w) - w.params.quality = w.options.Quality - if w.options.LGWin > 0 { - w.params.lgwin = uint(w.options.LGWin) - } - w.dst = dst - w.err = nil -} - -func (w *Writer) writeChunk(p []byte, op int) (n int, err error) { - if w.dst == nil { - return 0, errWriterClosed - } - if w.err != nil { - return 0, w.err - } - - for { - availableIn := uint(len(p)) - nextIn := p - success := encoderCompressStream(w, op, &availableIn, &nextIn) - bytesConsumed := len(p) - int(availableIn) - p = p[bytesConsumed:] - n += bytesConsumed - if !success { - return n, errEncode - } - - if len(p) == 0 || w.err != nil { - return n, w.err - } - } -} - -// Flush outputs encoded data for all input provided to Write. The resulting -// output can be decoded to match all input before Flush, but the stream is -// not yet complete until after Close. -// Flush has a negative impact on compression. -func (w *Writer) Flush() error { - _, err := w.writeChunk(nil, operationFlush) - return err -} - -// Close flushes remaining data to the decorated writer. -func (w *Writer) Close() error { - // If stream is already closed, it is reported by `writeChunk`. - _, err := w.writeChunk(nil, operationFinish) - w.dst = nil - return err -} - -// Write implements io.Writer. Flush or Close must be called to ensure that the -// encoded bytes are actually flushed to the underlying Writer. -func (w *Writer) Write(p []byte) (n int, err error) { - return w.writeChunk(p, operationProcess) -} - -type nopCloser struct { - io.Writer -} - -func (nopCloser) Close() error { return nil } - -// NewWriterV2 is like NewWriterLevel, but it uses the new implementation -// based on the matchfinder package. It currently supports up to level 7; -// if a higher level is specified, level 7 will be used. -func NewWriterV2(dst io.Writer, level int) *matchfinder.Writer { - var mf matchfinder.MatchFinder - if level < 2 { - mf = matchfinder.M0{Lazy: level == 1} - } else { - hashLen := 6 - if level >= 6 { - hashLen = 5 - } - chainLen := 64 - switch level { - case 2: - chainLen = 0 - case 3: - chainLen = 1 - case 4: - chainLen = 2 - case 5: - chainLen = 4 - case 6: - chainLen = 8 - } - mf = &matchfinder.M4{ - MaxDistance: 1 << 20, - ChainLength: chainLen, - HashLen: hashLen, - DistanceBitCost: 57, - } - } - - return &matchfinder.Writer{ - Dest: dst, - MatchFinder: mf, - Encoder: &Encoder{}, - BlockSize: 1 << 16, - } -} diff --git a/vendor/github.com/cenkalti/backoff/v4/.gitignore b/vendor/github.com/cenkalti/backoff/v4/.gitignore deleted file mode 100644 index 50d95c5..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe - -# IDEs -.idea/ diff --git a/vendor/github.com/cenkalti/backoff/v4/LICENSE b/vendor/github.com/cenkalti/backoff/v4/LICENSE deleted file mode 100644 index 89b8179..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Cenk Altı - -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/cenkalti/backoff/v4/README.md b/vendor/github.com/cenkalti/backoff/v4/README.md deleted file mode 100644 index 9433004..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Coverage Status][coveralls image]][coveralls] - -This is a Go port of the exponential backoff algorithm from [Google's HTTP Client Library for Java][google-http-java-client]. - -[Exponential backoff][exponential backoff wiki] -is an algorithm that uses feedback to multiplicatively decrease the rate of some process, -in order to gradually find an acceptable rate. -The retries exponentially increase and stop increasing when a certain threshold is met. - -## Usage - -Import path is `github.com/cenkalti/backoff/v4`. Please note the version part at the end. - -Use https://pkg.go.dev/github.com/cenkalti/backoff/v4 to view the documentation. - -## Contributing - -* I would like to keep this library as small as possible. -* Please don't send a PR without opening an issue and discussing it first. -* If proposed change is not a common use case, I will probably not accept it. - -[godoc]: https://pkg.go.dev/github.com/cenkalti/backoff/v4 -[godoc image]: https://godoc.org/github.com/cenkalti/backoff?status.png -[coveralls]: https://coveralls.io/github/cenkalti/backoff?branch=master -[coveralls image]: https://coveralls.io/repos/github/cenkalti/backoff/badge.svg?branch=master - -[google-http-java-client]: https://github.com/google/google-http-java-client/blob/da1aa993e90285ec18579f1553339b00e19b3ab5/google-http-client/src/main/java/com/google/api/client/util/ExponentialBackOff.java -[exponential backoff wiki]: http://en.wikipedia.org/wiki/Exponential_backoff - -[advanced example]: https://pkg.go.dev/github.com/cenkalti/backoff/v4?tab=doc#pkg-examples diff --git a/vendor/github.com/cenkalti/backoff/v4/backoff.go b/vendor/github.com/cenkalti/backoff/v4/backoff.go deleted file mode 100644 index 3676ee4..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/backoff.go +++ /dev/null @@ -1,66 +0,0 @@ -// Package backoff implements backoff algorithms for retrying operations. -// -// Use Retry function for retrying operations that may fail. -// If Retry does not meet your needs, -// copy/paste the function into your project and modify as you wish. -// -// There is also Ticker type similar to time.Ticker. -// You can use it if you need to work with channels. -// -// See Examples section below for usage examples. -package backoff - -import "time" - -// BackOff is a backoff policy for retrying an operation. -type BackOff interface { - // NextBackOff returns the duration to wait before retrying the operation, - // or backoff. Stop to indicate that no more retries should be made. - // - // Example usage: - // - // duration := backoff.NextBackOff(); - // if (duration == backoff.Stop) { - // // Do not retry operation. - // } else { - // // Sleep for duration and retry operation. - // } - // - NextBackOff() time.Duration - - // Reset to initial state. - Reset() -} - -// Stop indicates that no more retries should be made for use in NextBackOff(). -const Stop time.Duration = -1 - -// ZeroBackOff is a fixed backoff policy whose backoff time is always zero, -// meaning that the operation is retried immediately without waiting, indefinitely. -type ZeroBackOff struct{} - -func (b *ZeroBackOff) Reset() {} - -func (b *ZeroBackOff) NextBackOff() time.Duration { return 0 } - -// StopBackOff is a fixed backoff policy that always returns backoff.Stop for -// NextBackOff(), meaning that the operation should never be retried. -type StopBackOff struct{} - -func (b *StopBackOff) Reset() {} - -func (b *StopBackOff) NextBackOff() time.Duration { return Stop } - -// ConstantBackOff is a backoff policy that always returns the same backoff delay. -// This is in contrast to an exponential backoff policy, -// which returns a delay that grows longer as you call NextBackOff() over and over again. -type ConstantBackOff struct { - Interval time.Duration -} - -func (b *ConstantBackOff) Reset() {} -func (b *ConstantBackOff) NextBackOff() time.Duration { return b.Interval } - -func NewConstantBackOff(d time.Duration) *ConstantBackOff { - return &ConstantBackOff{Interval: d} -} diff --git a/vendor/github.com/cenkalti/backoff/v4/context.go b/vendor/github.com/cenkalti/backoff/v4/context.go deleted file mode 100644 index 4848233..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/context.go +++ /dev/null @@ -1,62 +0,0 @@ -package backoff - -import ( - "context" - "time" -) - -// BackOffContext is a backoff policy that stops retrying after the context -// is canceled. -type BackOffContext interface { // nolint: golint - BackOff - Context() context.Context -} - -type backOffContext struct { - BackOff - ctx context.Context -} - -// WithContext returns a BackOffContext with context ctx -// -// ctx must not be nil -func WithContext(b BackOff, ctx context.Context) BackOffContext { // nolint: golint - if ctx == nil { - panic("nil context") - } - - if b, ok := b.(*backOffContext); ok { - return &backOffContext{ - BackOff: b.BackOff, - ctx: ctx, - } - } - - return &backOffContext{ - BackOff: b, - ctx: ctx, - } -} - -func getContext(b BackOff) context.Context { - if cb, ok := b.(BackOffContext); ok { - return cb.Context() - } - if tb, ok := b.(*backOffTries); ok { - return getContext(tb.delegate) - } - return context.Background() -} - -func (b *backOffContext) Context() context.Context { - return b.ctx -} - -func (b *backOffContext) NextBackOff() time.Duration { - select { - case <-b.ctx.Done(): - return Stop - default: - return b.BackOff.NextBackOff() - } -} diff --git a/vendor/github.com/cenkalti/backoff/v4/exponential.go b/vendor/github.com/cenkalti/backoff/v4/exponential.go deleted file mode 100644 index aac99f1..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/exponential.go +++ /dev/null @@ -1,216 +0,0 @@ -package backoff - -import ( - "math/rand" - "time" -) - -/* -ExponentialBackOff is a backoff implementation that increases the backoff -period for each retry attempt using a randomization function that grows exponentially. - -NextBackOff() is calculated using the following formula: - - randomized interval = - RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor]) - -In other words NextBackOff() will range between the randomization factor -percentage below and above the retry interval. - -For example, given the following parameters: - - RetryInterval = 2 - RandomizationFactor = 0.5 - Multiplier = 2 - -the actual backoff period used in the next retry attempt will range between 1 and 3 seconds, -multiplied by the exponential, that is, between 2 and 6 seconds. - -Note: MaxInterval caps the RetryInterval and not the randomized interval. - -If the time elapsed since an ExponentialBackOff instance is created goes past the -MaxElapsedTime, then the method NextBackOff() starts returning backoff.Stop. - -The elapsed time can be reset by calling Reset(). - -Example: Given the following default arguments, for 10 tries the sequence will be, -and assuming we go over the MaxElapsedTime on the 10th try: - - Request # RetryInterval (seconds) Randomized Interval (seconds) - - 1 0.5 [0.25, 0.75] - 2 0.75 [0.375, 1.125] - 3 1.125 [0.562, 1.687] - 4 1.687 [0.8435, 2.53] - 5 2.53 [1.265, 3.795] - 6 3.795 [1.897, 5.692] - 7 5.692 [2.846, 8.538] - 8 8.538 [4.269, 12.807] - 9 12.807 [6.403, 19.210] - 10 19.210 backoff.Stop - -Note: Implementation is not thread-safe. -*/ -type ExponentialBackOff struct { - InitialInterval time.Duration - RandomizationFactor float64 - Multiplier float64 - MaxInterval time.Duration - // After MaxElapsedTime the ExponentialBackOff returns Stop. - // It never stops if MaxElapsedTime == 0. - MaxElapsedTime time.Duration - Stop time.Duration - Clock Clock - - currentInterval time.Duration - startTime time.Time -} - -// Clock is an interface that returns current time for BackOff. -type Clock interface { - Now() time.Time -} - -// ExponentialBackOffOpts is a function type used to configure ExponentialBackOff options. -type ExponentialBackOffOpts func(*ExponentialBackOff) - -// Default values for ExponentialBackOff. -const ( - DefaultInitialInterval = 500 * time.Millisecond - DefaultRandomizationFactor = 0.5 - DefaultMultiplier = 1.5 - DefaultMaxInterval = 60 * time.Second - DefaultMaxElapsedTime = 15 * time.Minute -) - -// NewExponentialBackOff creates an instance of ExponentialBackOff using default values. -func NewExponentialBackOff(opts ...ExponentialBackOffOpts) *ExponentialBackOff { - b := &ExponentialBackOff{ - InitialInterval: DefaultInitialInterval, - RandomizationFactor: DefaultRandomizationFactor, - Multiplier: DefaultMultiplier, - MaxInterval: DefaultMaxInterval, - MaxElapsedTime: DefaultMaxElapsedTime, - Stop: Stop, - Clock: SystemClock, - } - for _, fn := range opts { - fn(b) - } - b.Reset() - return b -} - -// WithInitialInterval sets the initial interval between retries. -func WithInitialInterval(duration time.Duration) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.InitialInterval = duration - } -} - -// WithRandomizationFactor sets the randomization factor to add jitter to intervals. -func WithRandomizationFactor(randomizationFactor float64) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.RandomizationFactor = randomizationFactor - } -} - -// WithMultiplier sets the multiplier for increasing the interval after each retry. -func WithMultiplier(multiplier float64) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.Multiplier = multiplier - } -} - -// WithMaxInterval sets the maximum interval between retries. -func WithMaxInterval(duration time.Duration) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.MaxInterval = duration - } -} - -// WithMaxElapsedTime sets the maximum total time for retries. -func WithMaxElapsedTime(duration time.Duration) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.MaxElapsedTime = duration - } -} - -// WithRetryStopDuration sets the duration after which retries should stop. -func WithRetryStopDuration(duration time.Duration) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.Stop = duration - } -} - -// WithClockProvider sets the clock used to measure time. -func WithClockProvider(clock Clock) ExponentialBackOffOpts { - return func(ebo *ExponentialBackOff) { - ebo.Clock = clock - } -} - -type systemClock struct{} - -func (t systemClock) Now() time.Time { - return time.Now() -} - -// SystemClock implements Clock interface that uses time.Now(). -var SystemClock = systemClock{} - -// Reset the interval back to the initial retry interval and restarts the timer. -// Reset must be called before using b. -func (b *ExponentialBackOff) Reset() { - b.currentInterval = b.InitialInterval - b.startTime = b.Clock.Now() -} - -// NextBackOff calculates the next backoff interval using the formula: -// Randomized interval = RetryInterval * (1 ± RandomizationFactor) -func (b *ExponentialBackOff) NextBackOff() time.Duration { - // Make sure we have not gone over the maximum elapsed time. - elapsed := b.GetElapsedTime() - next := getRandomValueFromInterval(b.RandomizationFactor, rand.Float64(), b.currentInterval) - b.incrementCurrentInterval() - if b.MaxElapsedTime != 0 && elapsed+next > b.MaxElapsedTime { - return b.Stop - } - return next -} - -// GetElapsedTime returns the elapsed time since an ExponentialBackOff instance -// is created and is reset when Reset() is called. -// -// The elapsed time is computed using time.Now().UnixNano(). It is -// safe to call even while the backoff policy is used by a running -// ticker. -func (b *ExponentialBackOff) GetElapsedTime() time.Duration { - return b.Clock.Now().Sub(b.startTime) -} - -// Increments the current interval by multiplying it with the multiplier. -func (b *ExponentialBackOff) incrementCurrentInterval() { - // Check for overflow, if overflow is detected set the current interval to the max interval. - if float64(b.currentInterval) >= float64(b.MaxInterval)/b.Multiplier { - b.currentInterval = b.MaxInterval - } else { - b.currentInterval = time.Duration(float64(b.currentInterval) * b.Multiplier) - } -} - -// Returns a random value from the following interval: -// [currentInterval - randomizationFactor * currentInterval, currentInterval + randomizationFactor * currentInterval]. -func getRandomValueFromInterval(randomizationFactor, random float64, currentInterval time.Duration) time.Duration { - if randomizationFactor == 0 { - return currentInterval // make sure no randomness is used when randomizationFactor is 0. - } - var delta = randomizationFactor * float64(currentInterval) - var minInterval = float64(currentInterval) - delta - var maxInterval = float64(currentInterval) + delta - - // Get a random value from the range [minInterval, maxInterval]. - // The formula used below has a +1 because if the minInterval is 1 and the maxInterval is 3 then - // we want a 33% chance for selecting either 1, 2 or 3. - return time.Duration(minInterval + (random * (maxInterval - minInterval + 1))) -} diff --git a/vendor/github.com/cenkalti/backoff/v4/retry.go b/vendor/github.com/cenkalti/backoff/v4/retry.go deleted file mode 100644 index b9c0c51..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/retry.go +++ /dev/null @@ -1,146 +0,0 @@ -package backoff - -import ( - "errors" - "time" -) - -// An OperationWithData is executing by RetryWithData() or RetryNotifyWithData(). -// The operation will be retried using a backoff policy if it returns an error. -type OperationWithData[T any] func() (T, error) - -// An Operation is executing by Retry() or RetryNotify(). -// The operation will be retried using a backoff policy if it returns an error. -type Operation func() error - -func (o Operation) withEmptyData() OperationWithData[struct{}] { - return func() (struct{}, error) { - return struct{}{}, o() - } -} - -// Notify is a notify-on-error function. It receives an operation error and -// backoff delay if the operation failed (with an error). -// -// NOTE that if the backoff policy stated to stop retrying, -// the notify function isn't called. -type Notify func(error, time.Duration) - -// Retry the operation o until it does not return error or BackOff stops. -// o is guaranteed to be run at least once. -// -// If o returns a *PermanentError, the operation is not retried, and the -// wrapped error is returned. -// -// Retry sleeps the goroutine for the duration returned by BackOff after a -// failed operation returns. -func Retry(o Operation, b BackOff) error { - return RetryNotify(o, b, nil) -} - -// RetryWithData is like Retry but returns data in the response too. -func RetryWithData[T any](o OperationWithData[T], b BackOff) (T, error) { - return RetryNotifyWithData(o, b, nil) -} - -// RetryNotify calls notify function with the error and wait duration -// for each failed attempt before sleep. -func RetryNotify(operation Operation, b BackOff, notify Notify) error { - return RetryNotifyWithTimer(operation, b, notify, nil) -} - -// RetryNotifyWithData is like RetryNotify but returns data in the response too. -func RetryNotifyWithData[T any](operation OperationWithData[T], b BackOff, notify Notify) (T, error) { - return doRetryNotify(operation, b, notify, nil) -} - -// RetryNotifyWithTimer calls notify function with the error and wait duration using the given Timer -// for each failed attempt before sleep. -// A default timer that uses system timer is used when nil is passed. -func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer) error { - _, err := doRetryNotify(operation.withEmptyData(), b, notify, t) - return err -} - -// RetryNotifyWithTimerAndData is like RetryNotifyWithTimer but returns data in the response too. -func RetryNotifyWithTimerAndData[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) { - return doRetryNotify(operation, b, notify, t) -} - -func doRetryNotify[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) { - var ( - err error - next time.Duration - res T - ) - if t == nil { - t = &defaultTimer{} - } - - defer func() { - t.Stop() - }() - - ctx := getContext(b) - - b.Reset() - for { - res, err = operation() - if err == nil { - return res, nil - } - - var permanent *PermanentError - if errors.As(err, &permanent) { - return res, permanent.Err - } - - if next = b.NextBackOff(); next == Stop { - if cerr := ctx.Err(); cerr != nil { - return res, cerr - } - - return res, err - } - - if notify != nil { - notify(err, next) - } - - t.Start(next) - - select { - case <-ctx.Done(): - return res, ctx.Err() - case <-t.C(): - } - } -} - -// PermanentError signals that the operation should not be retried. -type PermanentError struct { - Err error -} - -func (e *PermanentError) Error() string { - return e.Err.Error() -} - -func (e *PermanentError) Unwrap() error { - return e.Err -} - -func (e *PermanentError) Is(target error) bool { - _, ok := target.(*PermanentError) - return ok -} - -// Permanent wraps the given err in a *PermanentError. -func Permanent(err error) error { - if err == nil { - return nil - } - return &PermanentError{ - Err: err, - } -} diff --git a/vendor/github.com/cenkalti/backoff/v4/ticker.go b/vendor/github.com/cenkalti/backoff/v4/ticker.go deleted file mode 100644 index df9d68b..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/ticker.go +++ /dev/null @@ -1,97 +0,0 @@ -package backoff - -import ( - "context" - "sync" - "time" -) - -// Ticker holds a channel that delivers `ticks' of a clock at times reported by a BackOff. -// -// Ticks will continue to arrive when the previous operation is still running, -// so operations that take a while to fail could run in quick succession. -type Ticker struct { - C <-chan time.Time - c chan time.Time - b BackOff - ctx context.Context - timer Timer - stop chan struct{} - stopOnce sync.Once -} - -// NewTicker returns a new Ticker containing a channel that will send -// the time at times specified by the BackOff argument. Ticker is -// guaranteed to tick at least once. The channel is closed when Stop -// method is called or BackOff stops. It is not safe to manipulate the -// provided backoff policy (notably calling NextBackOff or Reset) -// while the ticker is running. -func NewTicker(b BackOff) *Ticker { - return NewTickerWithTimer(b, &defaultTimer{}) -} - -// NewTickerWithTimer returns a new Ticker with a custom timer. -// A default timer that uses system timer is used when nil is passed. -func NewTickerWithTimer(b BackOff, timer Timer) *Ticker { - if timer == nil { - timer = &defaultTimer{} - } - c := make(chan time.Time) - t := &Ticker{ - C: c, - c: c, - b: b, - ctx: getContext(b), - timer: timer, - stop: make(chan struct{}), - } - t.b.Reset() - go t.run() - return t -} - -// Stop turns off a ticker. After Stop, no more ticks will be sent. -func (t *Ticker) Stop() { - t.stopOnce.Do(func() { close(t.stop) }) -} - -func (t *Ticker) run() { - c := t.c - defer close(c) - - // Ticker is guaranteed to tick at least once. - afterC := t.send(time.Now()) - - for { - if afterC == nil { - return - } - - select { - case tick := <-afterC: - afterC = t.send(tick) - case <-t.stop: - t.c = nil // Prevent future ticks from being sent to the channel. - return - case <-t.ctx.Done(): - return - } - } -} - -func (t *Ticker) send(tick time.Time) <-chan time.Time { - select { - case t.c <- tick: - case <-t.stop: - return nil - } - - next := t.b.NextBackOff() - if next == Stop { - t.Stop() - return nil - } - - t.timer.Start(next) - return t.timer.C() -} diff --git a/vendor/github.com/cenkalti/backoff/v4/timer.go b/vendor/github.com/cenkalti/backoff/v4/timer.go deleted file mode 100644 index 8120d02..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/timer.go +++ /dev/null @@ -1,35 +0,0 @@ -package backoff - -import "time" - -type Timer interface { - Start(duration time.Duration) - Stop() - C() <-chan time.Time -} - -// defaultTimer implements Timer interface using time.Timer -type defaultTimer struct { - timer *time.Timer -} - -// C returns the timers channel which receives the current time when the timer fires. -func (t *defaultTimer) C() <-chan time.Time { - return t.timer.C -} - -// Start starts the timer to fire after the given duration -func (t *defaultTimer) Start(duration time.Duration) { - if t.timer == nil { - t.timer = time.NewTimer(duration) - } else { - t.timer.Reset(duration) - } -} - -// Stop is called when the timer is not used anymore and resources may be freed. -func (t *defaultTimer) Stop() { - if t.timer != nil { - t.timer.Stop() - } -} diff --git a/vendor/github.com/cenkalti/backoff/v4/tries.go b/vendor/github.com/cenkalti/backoff/v4/tries.go deleted file mode 100644 index 28d58ca..0000000 --- a/vendor/github.com/cenkalti/backoff/v4/tries.go +++ /dev/null @@ -1,38 +0,0 @@ -package backoff - -import "time" - -/* -WithMaxRetries creates a wrapper around another BackOff, which will -return Stop if NextBackOff() has been called too many times since -the last time Reset() was called - -Note: Implementation is not thread-safe. -*/ -func WithMaxRetries(b BackOff, max uint64) BackOff { - return &backOffTries{delegate: b, maxTries: max} -} - -type backOffTries struct { - delegate BackOff - maxTries uint64 - numTries uint64 -} - -func (b *backOffTries) NextBackOff() time.Duration { - if b.maxTries == 0 { - return Stop - } - if b.maxTries > 0 { - if b.maxTries <= b.numTries { - return Stop - } - b.numTries++ - } - return b.delegate.NextBackOff() -} - -func (b *backOffTries) Reset() { - b.numTries = 0 - b.delegate.Reset() -} diff --git a/vendor/github.com/cli/browser/LICENSE b/vendor/github.com/cli/browser/LICENSE deleted file mode 100644 index 65f78fb..0000000 --- a/vendor/github.com/cli/browser/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2014, Dave Cheney <dave@cheney.net> -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. - -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 HOLDER 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/cli/browser/README.md b/vendor/github.com/cli/browser/README.md deleted file mode 100644 index 8a46315..0000000 --- a/vendor/github.com/cli/browser/README.md +++ /dev/null @@ -1,20 +0,0 @@ - -# browser - -Helpers to open URLs, readers, or files in the system default web browser. - -This fork adds: - -- `OpenReader` error wrapping; -- `ErrNotFound` error wrapping on BSD; -- Go 1.21 support. - -## Usage - -``` go -import "github.com/cli/browser" - -err = browser.OpenURL(url) -err = browser.OpenFile(path) -err = browser.OpenReader(reader) -``` diff --git a/vendor/github.com/cli/browser/browser.go b/vendor/github.com/cli/browser/browser.go deleted file mode 100644 index a0bd87e..0000000 --- a/vendor/github.com/cli/browser/browser.go +++ /dev/null @@ -1,57 +0,0 @@ -// Package browser provides helpers to open files, readers, and urls in a browser window. -// -// The choice of which browser is started is entirely client dependent. -package browser - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "os/exec" - "path/filepath" -) - -// Stdout is the io.Writer to which executed commands write standard output. -var Stdout io.Writer = os.Stdout - -// Stderr is the io.Writer to which executed commands write standard error. -var Stderr io.Writer = os.Stderr - -// OpenFile opens new browser window for the file path. -func OpenFile(path string) error { - path, err := filepath.Abs(path) - if err != nil { - return err - } - return OpenURL("file://" + path) -} - -// OpenReader consumes the contents of r and presents the -// results in a new browser window. -func OpenReader(r io.Reader) error { - f, err := ioutil.TempFile("", "browser.*.html") - if err != nil { - return fmt.Errorf("browser: could not create temporary file: %w", err) - } - if _, err := io.Copy(f, r); err != nil { - f.Close() - return fmt.Errorf("browser: caching temporary file failed: %w", err) - } - if err := f.Close(); err != nil { - return fmt.Errorf("browser: caching temporary file failed: %w", err) - } - return OpenFile(f.Name()) -} - -// OpenURL opens a new browser window pointing to url. -func OpenURL(url string) error { - return openBrowser(url) -} - -func runCmd(prog string, args ...string) error { - cmd := exec.Command(prog, args...) - cmd.Stdout = Stdout - cmd.Stderr = Stderr - return cmd.Run() -} diff --git a/vendor/github.com/cli/browser/browser_darwin.go b/vendor/github.com/cli/browser/browser_darwin.go deleted file mode 100644 index 8507cf7..0000000 --- a/vendor/github.com/cli/browser/browser_darwin.go +++ /dev/null @@ -1,5 +0,0 @@ -package browser - -func openBrowser(url string) error { - return runCmd("open", url) -} diff --git a/vendor/github.com/cli/browser/browser_freebsd.go b/vendor/github.com/cli/browser/browser_freebsd.go deleted file mode 100644 index 2a3c9a2..0000000 --- a/vendor/github.com/cli/browser/browser_freebsd.go +++ /dev/null @@ -1,15 +0,0 @@ -package browser - -import ( - "errors" - "fmt" - "os/exec" -) - -func openBrowser(url string) error { - err := runCmd("xdg-open", url) - if errors.Is(err, exec.ErrNotFound) { - return fmt.Errorf("%w - install xdg-utils from ports(8)", err) - } - return err -} diff --git a/vendor/github.com/cli/browser/browser_linux.go b/vendor/github.com/cli/browser/browser_linux.go deleted file mode 100644 index b303250..0000000 --- a/vendor/github.com/cli/browser/browser_linux.go +++ /dev/null @@ -1,21 +0,0 @@ -package browser - -import ( - "os/exec" - "strings" -) - -func openBrowser(url string) error { - providers := []string{"xdg-open", "x-www-browser", "www-browser", "wslview"} - - // There are multiple possible providers to open a browser on linux - // One of them is xdg-open, another is x-www-browser, then there's www-browser, etc. - // Look for one that exists and run it - for _, provider := range providers { - if _, err := exec.LookPath(provider); err == nil { - return runCmd(provider, url) - } - } - - return &exec.Error{Name: strings.Join(providers, ","), Err: exec.ErrNotFound} -} diff --git a/vendor/github.com/cli/browser/browser_netbsd.go b/vendor/github.com/cli/browser/browser_netbsd.go deleted file mode 100644 index 65a5e5a..0000000 --- a/vendor/github.com/cli/browser/browser_netbsd.go +++ /dev/null @@ -1,14 +0,0 @@ -package browser - -import ( - "errors" - "os/exec" -) - -func openBrowser(url string) error { - err := runCmd("xdg-open", url) - if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { - return errors.New("xdg-open: command not found - install xdg-utils from pkgsrc(7)") - } - return err -} diff --git a/vendor/github.com/cli/browser/browser_openbsd.go b/vendor/github.com/cli/browser/browser_openbsd.go deleted file mode 100644 index 2a3c9a2..0000000 --- a/vendor/github.com/cli/browser/browser_openbsd.go +++ /dev/null @@ -1,15 +0,0 @@ -package browser - -import ( - "errors" - "fmt" - "os/exec" -) - -func openBrowser(url string) error { - err := runCmd("xdg-open", url) - if errors.Is(err, exec.ErrNotFound) { - return fmt.Errorf("%w - install xdg-utils from ports(8)", err) - } - return err -} diff --git a/vendor/github.com/cli/browser/browser_unsupported.go b/vendor/github.com/cli/browser/browser_unsupported.go deleted file mode 100644 index 7c5c17d..0000000 --- a/vendor/github.com/cli/browser/browser_unsupported.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build !linux,!windows,!darwin,!openbsd,!freebsd,!netbsd - -package browser - -import ( - "fmt" - "runtime" -) - -func openBrowser(url string) error { - return fmt.Errorf("openBrowser: unsupported operating system: %v", runtime.GOOS) -} diff --git a/vendor/github.com/cli/browser/browser_windows.go b/vendor/github.com/cli/browser/browser_windows.go deleted file mode 100644 index 63e1929..0000000 --- a/vendor/github.com/cli/browser/browser_windows.go +++ /dev/null @@ -1,7 +0,0 @@ -package browser - -import "golang.org/x/sys/windows" - -func openBrowser(url string) error { - return windows.ShellExecute(0, nil, windows.StringToUTF16Ptr(url), nil, nil, windows.SW_SHOWNORMAL) -} diff --git a/vendor/github.com/fatih/color/LICENSE.md b/vendor/github.com/fatih/color/LICENSE.md deleted file mode 100644 index 25fdaf6..0000000 --- a/vendor/github.com/fatih/color/LICENSE.md +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Fatih Arslan - -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/fatih/color/README.md b/vendor/github.com/fatih/color/README.md deleted file mode 100644 index be82827..0000000 --- a/vendor/github.com/fatih/color/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# color [![](https://github.com/fatih/color/workflows/build/badge.svg)](https://github.com/fatih/color/actions) [![PkgGoDev](https://pkg.go.dev/badge/github.com/fatih/color)](https://pkg.go.dev/github.com/fatih/color) - -Color lets you use colorized outputs in terms of [ANSI Escape -Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It -has support for Windows too! The API can be used in several ways, pick one that -suits you. - -![Color](https://user-images.githubusercontent.com/438920/96832689-03b3e000-13f4-11eb-9803-46f4c4de3406.jpg) - -## Install - -```bash -go get github.com/fatih/color -``` - -## Examples - -### Standard colors - -```go -// Print with default helper functions -color.Cyan("Prints text in cyan.") - -// A newline will be appended automatically -color.Blue("Prints %s in blue.", "text") - -// These are using the default foreground colors -color.Red("We have red") -color.Magenta("And many others ..") - -``` - -### Mix and reuse colors - -```go -// Create a new color object -c := color.New(color.FgCyan).Add(color.Underline) -c.Println("Prints cyan text with an underline.") - -// Or just add them to New() -d := color.New(color.FgCyan, color.Bold) -d.Printf("This prints bold cyan %s\n", "too!.") - -// Mix up foreground and background colors, create new mixes! -red := color.New(color.FgRed) - -boldRed := red.Add(color.Bold) -boldRed.Println("This will print text in bold red.") - -whiteBackground := red.Add(color.BgWhite) -whiteBackground.Println("Red text with white background.") -``` - -### Use your own output (io.Writer) - -```go -// Use your own io.Writer output -color.New(color.FgBlue).Fprintln(myWriter, "blue color!") - -blue := color.New(color.FgBlue) -blue.Fprint(writer, "This will print text in blue.") -``` - -### Custom print functions (PrintFunc) - -```go -// Create a custom print function for convenience -red := color.New(color.FgRed).PrintfFunc() -red("Warning") -red("Error: %s", err) - -// Mix up multiple attributes -notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() -notice("Don't forget this...") -``` - -### Custom fprint functions (FprintFunc) - -```go -blue := color.New(color.FgBlue).FprintfFunc() -blue(myWriter, "important notice: %s", stars) - -// Mix up with multiple attributes -success := color.New(color.Bold, color.FgGreen).FprintlnFunc() -success(myWriter, "Don't forget this...") -``` - -### Insert into noncolor strings (SprintFunc) - -```go -// Create SprintXxx functions to mix strings with other non-colorized strings: -yellow := color.New(color.FgYellow).SprintFunc() -red := color.New(color.FgRed).SprintFunc() -fmt.Printf("This is a %s and this is %s.\n", yellow("warning"), red("error")) - -info := color.New(color.FgWhite, color.BgGreen).SprintFunc() -fmt.Printf("This %s rocks!\n", info("package")) - -// Use helper functions -fmt.Println("This", color.RedString("warning"), "should be not neglected.") -fmt.Printf("%v %v\n", color.GreenString("Info:"), "an important message.") - -// Windows supported too! Just don't forget to change the output to color.Output -fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) -``` - -### Plug into existing code - -```go -// Use handy standard colors -color.Set(color.FgYellow) - -fmt.Println("Existing text will now be in yellow") -fmt.Printf("This one %s\n", "too") - -color.Unset() // Don't forget to unset - -// You can mix up parameters -color.Set(color.FgMagenta, color.Bold) -defer color.Unset() // Use it in your function - -fmt.Println("All text will now be bold magenta.") -``` - -### Disable/Enable color - -There might be a case where you want to explicitly disable/enable color output. the -`go-isatty` package will automatically disable color output for non-tty output streams -(for example if the output were piped directly to `less`). - -The `color` package also disables color output if the [`NO_COLOR`](https://no-color.org) environment -variable is set to a non-empty string. - -`Color` has support to disable/enable colors programmatically both globally and -for single color definitions. For example suppose you have a CLI app and a -`-no-color` bool flag. You can easily disable the color output with: - -```go -var flagNoColor = flag.Bool("no-color", false, "Disable color output") - -if *flagNoColor { - color.NoColor = true // disables colorized output -} -``` - -It also has support for single color definitions (local). You can -disable/enable color output on the fly: - -```go -c := color.New(color.FgCyan) -c.Println("Prints cyan text") - -c.DisableColor() -c.Println("This is printed without any color") - -c.EnableColor() -c.Println("This prints again cyan...") -``` - -## GitHub Actions - -To output color in GitHub Actions (or other CI systems that support ANSI colors), make sure to set `color.NoColor = false` so that it bypasses the check for non-tty output streams. - -## Todo - -* Save/Return previous values -* Evaluate fmt.Formatter interface - -## Credits - -* [Fatih Arslan](https://github.com/fatih) -* Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable) - -## License - -The MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) for more details diff --git a/vendor/github.com/fatih/color/color.go b/vendor/github.com/fatih/color/color.go deleted file mode 100644 index c423428..0000000 --- a/vendor/github.com/fatih/color/color.go +++ /dev/null @@ -1,650 +0,0 @@ -package color - -import ( - "fmt" - "io" - "os" - "strconv" - "strings" - "sync" - - "github.com/mattn/go-colorable" - "github.com/mattn/go-isatty" -) - -var ( - // NoColor defines if the output is colorized or not. It's dynamically set to - // false or true based on the stdout's file descriptor referring to a terminal - // or not. It's also set to true if the NO_COLOR environment variable is - // set (regardless of its value). This is a global option and affects all - // colors. For more control over each color block use the methods - // DisableColor() individually. - NoColor = noColorIsSet() || os.Getenv("TERM") == "dumb" || - (!isatty.IsTerminal(os.Stdout.Fd()) && !isatty.IsCygwinTerminal(os.Stdout.Fd())) - - // Output defines the standard output of the print functions. By default, - // os.Stdout is used. - Output = colorable.NewColorableStdout() - - // Error defines a color supporting writer for os.Stderr. - Error = colorable.NewColorableStderr() - - // colorsCache is used to reduce the count of created Color objects and - // allows to reuse already created objects with required Attribute. - colorsCache = make(map[Attribute]*Color) - colorsCacheMu sync.Mutex // protects colorsCache -) - -// noColorIsSet returns true if the environment variable NO_COLOR is set to a non-empty string. -func noColorIsSet() bool { - return os.Getenv("NO_COLOR") != "" -} - -// Color defines a custom color object which is defined by SGR parameters. -type Color struct { - params []Attribute - noColor *bool -} - -// Attribute defines a single SGR Code -type Attribute int - -const escape = "\x1b" - -// Base attributes -const ( - Reset Attribute = iota - Bold - Faint - Italic - Underline - BlinkSlow - BlinkRapid - ReverseVideo - Concealed - CrossedOut -) - -const ( - ResetBold Attribute = iota + 22 - ResetItalic - ResetUnderline - ResetBlinking - _ - ResetReversed - ResetConcealed - ResetCrossedOut -) - -var mapResetAttributes map[Attribute]Attribute = map[Attribute]Attribute{ - Bold: ResetBold, - Faint: ResetBold, - Italic: ResetItalic, - Underline: ResetUnderline, - BlinkSlow: ResetBlinking, - BlinkRapid: ResetBlinking, - ReverseVideo: ResetReversed, - Concealed: ResetConcealed, - CrossedOut: ResetCrossedOut, -} - -// Foreground text colors -const ( - FgBlack Attribute = iota + 30 - FgRed - FgGreen - FgYellow - FgBlue - FgMagenta - FgCyan - FgWhite -) - -// Foreground Hi-Intensity text colors -const ( - FgHiBlack Attribute = iota + 90 - FgHiRed - FgHiGreen - FgHiYellow - FgHiBlue - FgHiMagenta - FgHiCyan - FgHiWhite -) - -// Background text colors -const ( - BgBlack Attribute = iota + 40 - BgRed - BgGreen - BgYellow - BgBlue - BgMagenta - BgCyan - BgWhite -) - -// Background Hi-Intensity text colors -const ( - BgHiBlack Attribute = iota + 100 - BgHiRed - BgHiGreen - BgHiYellow - BgHiBlue - BgHiMagenta - BgHiCyan - BgHiWhite -) - -// New returns a newly created color object. -func New(value ...Attribute) *Color { - c := &Color{ - params: make([]Attribute, 0), - } - - if noColorIsSet() { - c.noColor = boolPtr(true) - } - - c.Add(value...) - return c -} - -// Set sets the given parameters immediately. It will change the color of -// output with the given SGR parameters until color.Unset() is called. -func Set(p ...Attribute) *Color { - c := New(p...) - c.Set() - return c -} - -// Unset resets all escape attributes and clears the output. Usually should -// be called after Set(). -func Unset() { - if NoColor { - return - } - - fmt.Fprintf(Output, "%s[%dm", escape, Reset) -} - -// Set sets the SGR sequence. -func (c *Color) Set() *Color { - if c.isNoColorSet() { - return c - } - - fmt.Fprint(Output, c.format()) - return c -} - -func (c *Color) unset() { - if c.isNoColorSet() { - return - } - - Unset() -} - -// SetWriter is used to set the SGR sequence with the given io.Writer. This is -// a low-level function, and users should use the higher-level functions, such -// as color.Fprint, color.Print, etc. -func (c *Color) SetWriter(w io.Writer) *Color { - if c.isNoColorSet() { - return c - } - - fmt.Fprint(w, c.format()) - return c -} - -// UnsetWriter resets all escape attributes and clears the output with the give -// io.Writer. Usually should be called after SetWriter(). -func (c *Color) UnsetWriter(w io.Writer) { - if c.isNoColorSet() { - return - } - - if NoColor { - return - } - - fmt.Fprintf(w, "%s[%dm", escape, Reset) -} - -// Add is used to chain SGR parameters. Use as many as parameters to combine -// and create custom color objects. Example: Add(color.FgRed, color.Underline). -func (c *Color) Add(value ...Attribute) *Color { - c.params = append(c.params, value...) - return c -} - -// Fprint formats using the default formats for its operands and writes to w. -// Spaces are added between operands when neither is a string. -// It returns the number of bytes written and any write error encountered. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - c.SetWriter(w) - defer c.UnsetWriter(w) - - return fmt.Fprint(w, a...) -} - -// Print formats using the default formats for its operands and writes to -// standard output. Spaces are added between operands when neither is a -// string. It returns the number of bytes written and any write error -// encountered. This is the standard fmt.Print() method wrapped with the given -// color. -func (c *Color) Print(a ...interface{}) (n int, err error) { - c.Set() - defer c.unset() - - return fmt.Fprint(Output, a...) -} - -// Fprintf formats according to a format specifier and writes to w. -// It returns the number of bytes written and any write error encountered. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - c.SetWriter(w) - defer c.UnsetWriter(w) - - return fmt.Fprintf(w, format, a...) -} - -// Printf formats according to a format specifier and writes to standard output. -// It returns the number of bytes written and any write error encountered. -// This is the standard fmt.Printf() method wrapped with the given color. -func (c *Color) Printf(format string, a ...interface{}) (n int, err error) { - c.Set() - defer c.unset() - - return fmt.Fprintf(Output, format, a...) -} - -// Fprintln formats using the default formats for its operands and writes to w. -// Spaces are always added between operands and a newline is appended. -// On Windows, users should wrap w with colorable.NewColorable() if w is of -// type *os.File. -func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - return fmt.Fprintln(w, c.wrap(fmt.Sprint(a...))) -} - -// Println formats using the default formats for its operands and writes to -// standard output. Spaces are always added between operands and a newline is -// appended. It returns the number of bytes written and any write error -// encountered. This is the standard fmt.Print() method wrapped with the given -// color. -func (c *Color) Println(a ...interface{}) (n int, err error) { - return fmt.Fprintln(Output, c.wrap(fmt.Sprint(a...))) -} - -// Sprint is just like Print, but returns a string instead of printing it. -func (c *Color) Sprint(a ...interface{}) string { - return c.wrap(fmt.Sprint(a...)) -} - -// Sprintln is just like Println, but returns a string instead of printing it. -func (c *Color) Sprintln(a ...interface{}) string { - return fmt.Sprintln(c.Sprint(a...)) -} - -// Sprintf is just like Printf, but returns a string instead of printing it. -func (c *Color) Sprintf(format string, a ...interface{}) string { - return c.wrap(fmt.Sprintf(format, a...)) -} - -// FprintFunc returns a new function that prints the passed arguments as -// colorized with color.Fprint(). -func (c *Color) FprintFunc() func(w io.Writer, a ...interface{}) { - return func(w io.Writer, a ...interface{}) { - c.Fprint(w, a...) - } -} - -// PrintFunc returns a new function that prints the passed arguments as -// colorized with color.Print(). -func (c *Color) PrintFunc() func(a ...interface{}) { - return func(a ...interface{}) { - c.Print(a...) - } -} - -// FprintfFunc returns a new function that prints the passed arguments as -// colorized with color.Fprintf(). -func (c *Color) FprintfFunc() func(w io.Writer, format string, a ...interface{}) { - return func(w io.Writer, format string, a ...interface{}) { - c.Fprintf(w, format, a...) - } -} - -// PrintfFunc returns a new function that prints the passed arguments as -// colorized with color.Printf(). -func (c *Color) PrintfFunc() func(format string, a ...interface{}) { - return func(format string, a ...interface{}) { - c.Printf(format, a...) - } -} - -// FprintlnFunc returns a new function that prints the passed arguments as -// colorized with color.Fprintln(). -func (c *Color) FprintlnFunc() func(w io.Writer, a ...interface{}) { - return func(w io.Writer, a ...interface{}) { - c.Fprintln(w, a...) - } -} - -// PrintlnFunc returns a new function that prints the passed arguments as -// colorized with color.Println(). -func (c *Color) PrintlnFunc() func(a ...interface{}) { - return func(a ...interface{}) { - c.Println(a...) - } -} - -// SprintFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprint(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output, example: -// -// put := New(FgYellow).SprintFunc() -// fmt.Fprintf(color.Output, "This is a %s", put("warning")) -func (c *Color) SprintFunc() func(a ...interface{}) string { - return func(a ...interface{}) string { - return c.wrap(fmt.Sprint(a...)) - } -} - -// SprintfFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprintf(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output. -func (c *Color) SprintfFunc() func(format string, a ...interface{}) string { - return func(format string, a ...interface{}) string { - return c.wrap(fmt.Sprintf(format, a...)) - } -} - -// SprintlnFunc returns a new function that returns colorized strings for the -// given arguments with fmt.Sprintln(). Useful to put into or mix into other -// string. Windows users should use this in conjunction with color.Output. -func (c *Color) SprintlnFunc() func(a ...interface{}) string { - return func(a ...interface{}) string { - return fmt.Sprintln(c.Sprint(a...)) - } -} - -// sequence returns a formatted SGR sequence to be plugged into a "\x1b[...m" -// an example output might be: "1;36" -> bold cyan -func (c *Color) sequence() string { - format := make([]string, len(c.params)) - for i, v := range c.params { - format[i] = strconv.Itoa(int(v)) - } - - return strings.Join(format, ";") -} - -// wrap wraps the s string with the colors attributes. The string is ready to -// be printed. -func (c *Color) wrap(s string) string { - if c.isNoColorSet() { - return s - } - - return c.format() + s + c.unformat() -} - -func (c *Color) format() string { - return fmt.Sprintf("%s[%sm", escape, c.sequence()) -} - -func (c *Color) unformat() string { - //return fmt.Sprintf("%s[%dm", escape, Reset) - //for each element in sequence let's use the speficic reset escape, ou the generic one if not found - format := make([]string, len(c.params)) - for i, v := range c.params { - format[i] = strconv.Itoa(int(Reset)) - ra, ok := mapResetAttributes[v] - if ok { - format[i] = strconv.Itoa(int(ra)) - } - } - - return fmt.Sprintf("%s[%sm", escape, strings.Join(format, ";")) -} - -// DisableColor disables the color output. Useful to not change any existing -// code and still being able to output. Can be used for flags like -// "--no-color". To enable back use EnableColor() method. -func (c *Color) DisableColor() { - c.noColor = boolPtr(true) -} - -// EnableColor enables the color output. Use it in conjunction with -// DisableColor(). Otherwise, this method has no side effects. -func (c *Color) EnableColor() { - c.noColor = boolPtr(false) -} - -func (c *Color) isNoColorSet() bool { - // check first if we have user set action - if c.noColor != nil { - return *c.noColor - } - - // if not return the global option, which is disabled by default - return NoColor -} - -// Equals returns a boolean value indicating whether two colors are equal. -func (c *Color) Equals(c2 *Color) bool { - if c == nil && c2 == nil { - return true - } - if c == nil || c2 == nil { - return false - } - if len(c.params) != len(c2.params) { - return false - } - - for _, attr := range c.params { - if !c2.attrExists(attr) { - return false - } - } - - return true -} - -func (c *Color) attrExists(a Attribute) bool { - for _, attr := range c.params { - if attr == a { - return true - } - } - - return false -} - -func boolPtr(v bool) *bool { - return &v -} - -func getCachedColor(p Attribute) *Color { - colorsCacheMu.Lock() - defer colorsCacheMu.Unlock() - - c, ok := colorsCache[p] - if !ok { - c = New(p) - colorsCache[p] = c - } - - return c -} - -func colorPrint(format string, p Attribute, a ...interface{}) { - c := getCachedColor(p) - - if !strings.HasSuffix(format, "\n") { - format += "\n" - } - - if len(a) == 0 { - c.Print(format) - } else { - c.Printf(format, a...) - } -} - -func colorString(format string, p Attribute, a ...interface{}) string { - c := getCachedColor(p) - - if len(a) == 0 { - return c.SprintFunc()(format) - } - - return c.SprintfFunc()(format, a...) -} - -// Black is a convenient helper function to print with black foreground. A -// newline is appended to format by default. -func Black(format string, a ...interface{}) { colorPrint(format, FgBlack, a...) } - -// Red is a convenient helper function to print with red foreground. A -// newline is appended to format by default. -func Red(format string, a ...interface{}) { colorPrint(format, FgRed, a...) } - -// Green is a convenient helper function to print with green foreground. A -// newline is appended to format by default. -func Green(format string, a ...interface{}) { colorPrint(format, FgGreen, a...) } - -// Yellow is a convenient helper function to print with yellow foreground. -// A newline is appended to format by default. -func Yellow(format string, a ...interface{}) { colorPrint(format, FgYellow, a...) } - -// Blue is a convenient helper function to print with blue foreground. A -// newline is appended to format by default. -func Blue(format string, a ...interface{}) { colorPrint(format, FgBlue, a...) } - -// Magenta is a convenient helper function to print with magenta foreground. -// A newline is appended to format by default. -func Magenta(format string, a ...interface{}) { colorPrint(format, FgMagenta, a...) } - -// Cyan is a convenient helper function to print with cyan foreground. A -// newline is appended to format by default. -func Cyan(format string, a ...interface{}) { colorPrint(format, FgCyan, a...) } - -// White is a convenient helper function to print with white foreground. A -// newline is appended to format by default. -func White(format string, a ...interface{}) { colorPrint(format, FgWhite, a...) } - -// BlackString is a convenient helper function to return a string with black -// foreground. -func BlackString(format string, a ...interface{}) string { return colorString(format, FgBlack, a...) } - -// RedString is a convenient helper function to return a string with red -// foreground. -func RedString(format string, a ...interface{}) string { return colorString(format, FgRed, a...) } - -// GreenString is a convenient helper function to return a string with green -// foreground. -func GreenString(format string, a ...interface{}) string { return colorString(format, FgGreen, a...) } - -// YellowString is a convenient helper function to return a string with yellow -// foreground. -func YellowString(format string, a ...interface{}) string { return colorString(format, FgYellow, a...) } - -// BlueString is a convenient helper function to return a string with blue -// foreground. -func BlueString(format string, a ...interface{}) string { return colorString(format, FgBlue, a...) } - -// MagentaString is a convenient helper function to return a string with magenta -// foreground. -func MagentaString(format string, a ...interface{}) string { - return colorString(format, FgMagenta, a...) -} - -// CyanString is a convenient helper function to return a string with cyan -// foreground. -func CyanString(format string, a ...interface{}) string { return colorString(format, FgCyan, a...) } - -// WhiteString is a convenient helper function to return a string with white -// foreground. -func WhiteString(format string, a ...interface{}) string { return colorString(format, FgWhite, a...) } - -// HiBlack is a convenient helper function to print with hi-intensity black foreground. A -// newline is appended to format by default. -func HiBlack(format string, a ...interface{}) { colorPrint(format, FgHiBlack, a...) } - -// HiRed is a convenient helper function to print with hi-intensity red foreground. A -// newline is appended to format by default. -func HiRed(format string, a ...interface{}) { colorPrint(format, FgHiRed, a...) } - -// HiGreen is a convenient helper function to print with hi-intensity green foreground. A -// newline is appended to format by default. -func HiGreen(format string, a ...interface{}) { colorPrint(format, FgHiGreen, a...) } - -// HiYellow is a convenient helper function to print with hi-intensity yellow foreground. -// A newline is appended to format by default. -func HiYellow(format string, a ...interface{}) { colorPrint(format, FgHiYellow, a...) } - -// HiBlue is a convenient helper function to print with hi-intensity blue foreground. A -// newline is appended to format by default. -func HiBlue(format string, a ...interface{}) { colorPrint(format, FgHiBlue, a...) } - -// HiMagenta is a convenient helper function to print with hi-intensity magenta foreground. -// A newline is appended to format by default. -func HiMagenta(format string, a ...interface{}) { colorPrint(format, FgHiMagenta, a...) } - -// HiCyan is a convenient helper function to print with hi-intensity cyan foreground. A -// newline is appended to format by default. -func HiCyan(format string, a ...interface{}) { colorPrint(format, FgHiCyan, a...) } - -// HiWhite is a convenient helper function to print with hi-intensity white foreground. A -// newline is appended to format by default. -func HiWhite(format string, a ...interface{}) { colorPrint(format, FgHiWhite, a...) } - -// HiBlackString is a convenient helper function to return a string with hi-intensity black -// foreground. -func HiBlackString(format string, a ...interface{}) string { - return colorString(format, FgHiBlack, a...) -} - -// HiRedString is a convenient helper function to return a string with hi-intensity red -// foreground. -func HiRedString(format string, a ...interface{}) string { return colorString(format, FgHiRed, a...) } - -// HiGreenString is a convenient helper function to return a string with hi-intensity green -// foreground. -func HiGreenString(format string, a ...interface{}) string { - return colorString(format, FgHiGreen, a...) -} - -// HiYellowString is a convenient helper function to return a string with hi-intensity yellow -// foreground. -func HiYellowString(format string, a ...interface{}) string { - return colorString(format, FgHiYellow, a...) -} - -// HiBlueString is a convenient helper function to return a string with hi-intensity blue -// foreground. -func HiBlueString(format string, a ...interface{}) string { return colorString(format, FgHiBlue, a...) } - -// HiMagentaString is a convenient helper function to return a string with hi-intensity magenta -// foreground. -func HiMagentaString(format string, a ...interface{}) string { - return colorString(format, FgHiMagenta, a...) -} - -// HiCyanString is a convenient helper function to return a string with hi-intensity cyan -// foreground. -func HiCyanString(format string, a ...interface{}) string { return colorString(format, FgHiCyan, a...) } - -// HiWhiteString is a convenient helper function to return a string with hi-intensity white -// foreground. -func HiWhiteString(format string, a ...interface{}) string { - return colorString(format, FgHiWhite, a...) -} diff --git a/vendor/github.com/fatih/color/color_windows.go b/vendor/github.com/fatih/color/color_windows.go deleted file mode 100644 index be01c55..0000000 --- a/vendor/github.com/fatih/color/color_windows.go +++ /dev/null @@ -1,19 +0,0 @@ -package color - -import ( - "os" - - "golang.org/x/sys/windows" -) - -func init() { - // Opt-in for ansi color support for current process. - // https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences - var outMode uint32 - out := windows.Handle(os.Stdout.Fd()) - if err := windows.GetConsoleMode(out, &outMode); err != nil { - return - } - outMode |= windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING - _ = windows.SetConsoleMode(out, outMode) -} diff --git a/vendor/github.com/fatih/color/doc.go b/vendor/github.com/fatih/color/doc.go deleted file mode 100644 index 9491ad5..0000000 --- a/vendor/github.com/fatih/color/doc.go +++ /dev/null @@ -1,134 +0,0 @@ -/* -Package color is an ANSI color package to output colorized or SGR defined -output to the standard output. The API can be used in several way, pick one -that suits you. - -Use simple and default helper functions with predefined foreground colors: - - color.Cyan("Prints text in cyan.") - - // a newline will be appended automatically - color.Blue("Prints %s in blue.", "text") - - // More default foreground colors.. - color.Red("We have red") - color.Yellow("Yellow color too!") - color.Magenta("And many others ..") - - // Hi-intensity colors - color.HiGreen("Bright green color.") - color.HiBlack("Bright black means gray..") - color.HiWhite("Shiny white color!") - -However, there are times when custom color mixes are required. Below are some -examples to create custom color objects and use the print functions of each -separate color object. - - // Create a new color object - c := color.New(color.FgCyan).Add(color.Underline) - c.Println("Prints cyan text with an underline.") - - // Or just add them to New() - d := color.New(color.FgCyan, color.Bold) - d.Printf("This prints bold cyan %s\n", "too!.") - - - // Mix up foreground and background colors, create new mixes! - red := color.New(color.FgRed) - - boldRed := red.Add(color.Bold) - boldRed.Println("This will print text in bold red.") - - whiteBackground := red.Add(color.BgWhite) - whiteBackground.Println("Red text with White background.") - - // Use your own io.Writer output - color.New(color.FgBlue).Fprintln(myWriter, "blue color!") - - blue := color.New(color.FgBlue) - blue.Fprint(myWriter, "This will print text in blue.") - -You can create PrintXxx functions to simplify even more: - - // Create a custom print function for convenient - red := color.New(color.FgRed).PrintfFunc() - red("warning") - red("error: %s", err) - - // Mix up multiple attributes - notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() - notice("don't forget this...") - -You can also FprintXxx functions to pass your own io.Writer: - - blue := color.New(FgBlue).FprintfFunc() - blue(myWriter, "important notice: %s", stars) - - // Mix up with multiple attributes - success := color.New(color.Bold, color.FgGreen).FprintlnFunc() - success(myWriter, don't forget this...") - -Or create SprintXxx functions to mix strings with other non-colorized strings: - - yellow := New(FgYellow).SprintFunc() - red := New(FgRed).SprintFunc() - - fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error")) - - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Printf("this %s rocks!\n", info("package")) - -Windows support is enabled by default. All Print functions work as intended. -However, only for color.SprintXXX functions, user should use fmt.FprintXXX and -set the output to color.Output: - - fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) - - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Fprintf(color.Output, "this %s rocks!\n", info("package")) - -Using with existing code is possible. Just use the Set() method to set the -standard output to the given parameters. That way a rewrite of an existing -code is not required. - - // Use handy standard colors. - color.Set(color.FgYellow) - - fmt.Println("Existing text will be now in Yellow") - fmt.Printf("This one %s\n", "too") - - color.Unset() // don't forget to unset - - // You can mix up parameters - color.Set(color.FgMagenta, color.Bold) - defer color.Unset() // use it in your function - - fmt.Println("All text will be now bold magenta.") - -There might be a case where you want to disable color output (for example to -pipe the standard output of your app to somewhere else). `Color` has support to -disable colors both globally and for single color definition. For example -suppose you have a CLI app and a `--no-color` bool flag. You can easily disable -the color output with: - - var flagNoColor = flag.Bool("no-color", false, "Disable color output") - - if *flagNoColor { - color.NoColor = true // disables colorized output - } - -You can also disable the color by setting the NO_COLOR environment variable to any value. - -It also has support for single color definitions (local). You can -disable/enable color output on the fly: - - c := color.New(color.FgCyan) - c.Println("Prints cyan text") - - c.DisableColor() - c.Println("This is printed without any color") - - c.EnableColor() - c.Println("This prints again cyan...") -*/ -package color diff --git a/vendor/github.com/fsnotify/fsnotify/.cirrus.yml b/vendor/github.com/fsnotify/fsnotify/.cirrus.yml deleted file mode 100644 index ffc7b99..0000000 --- a/vendor/github.com/fsnotify/fsnotify/.cirrus.yml +++ /dev/null @@ -1,13 +0,0 @@ -freebsd_task: - name: 'FreeBSD' - freebsd_instance: - image_family: freebsd-13-2 - install_script: - - pkg update -f - - pkg install -y go - test_script: - # run tests as user "cirrus" instead of root - - pw useradd cirrus -m - - chown -R cirrus:cirrus . - - FSNOTIFY_BUFFER=4096 sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./... - - sudo --preserve-env=FSNOTIFY_BUFFER -u cirrus go test -parallel 1 -race ./... diff --git a/vendor/github.com/fsnotify/fsnotify/.editorconfig b/vendor/github.com/fsnotify/fsnotify/.editorconfig deleted file mode 100644 index fad8958..0000000 --- a/vendor/github.com/fsnotify/fsnotify/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*.go] -indent_style = tab -indent_size = 4 -insert_final_newline = true - -[*.{yml,yaml}] -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/vendor/github.com/fsnotify/fsnotify/.gitattributes b/vendor/github.com/fsnotify/fsnotify/.gitattributes deleted file mode 100644 index 32f1001..0000000 --- a/vendor/github.com/fsnotify/fsnotify/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -go.sum linguist-generated diff --git a/vendor/github.com/fsnotify/fsnotify/.gitignore b/vendor/github.com/fsnotify/fsnotify/.gitignore deleted file mode 100644 index 391cc07..0000000 --- a/vendor/github.com/fsnotify/fsnotify/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# go test -c output -*.test -*.test.exe - -# Output of go build ./cmd/fsnotify -/fsnotify -/fsnotify.exe diff --git a/vendor/github.com/fsnotify/fsnotify/.mailmap b/vendor/github.com/fsnotify/fsnotify/.mailmap deleted file mode 100644 index a04f290..0000000 --- a/vendor/github.com/fsnotify/fsnotify/.mailmap +++ /dev/null @@ -1,2 +0,0 @@ -Chris Howey <howeyc@gmail.com> <chris@howey.me> -Nathan Youngman <git@nathany.com> <4566+nathany@users.noreply.github.com> diff --git a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md b/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md deleted file mode 100644 index e0e5757..0000000 --- a/vendor/github.com/fsnotify/fsnotify/CHANGELOG.md +++ /dev/null @@ -1,541 +0,0 @@ -# Changelog - -Unreleased ----------- -Nothing yet. - -1.7.0 - 2023-10-22 ------------------- -This version of fsnotify needs Go 1.17. - -### Additions - -- illumos: add FEN backend to support illumos and Solaris. ([#371]) - -- all: add `NewBufferedWatcher()` to use a buffered channel, which can be useful - in cases where you can't control the kernel buffer and receive a large number - of events in bursts. ([#550], [#572]) - -- all: add `AddWith()`, which is identical to `Add()` but allows passing - options. ([#521]) - -- windows: allow setting the ReadDirectoryChangesW() buffer size with - `fsnotify.WithBufferSize()`; the default of 64K is the highest value that - works on all platforms and is enough for most purposes, but in some cases a - highest buffer is needed. ([#521]) - -### Changes and fixes - -- inotify: remove watcher if a watched path is renamed ([#518]) - - After a rename the reported name wasn't updated, or even an empty string. - Inotify doesn't provide any good facilities to update it, so just remove the - watcher. This is already how it worked on kqueue and FEN. - - On Windows this does work, and remains working. - -- windows: don't listen for file attribute changes ([#520]) - - File attribute changes are sent as `FILE_ACTION_MODIFIED` by the Windows API, - with no way to see if they're a file write or attribute change, so would show - up as a fsnotify.Write event. This is never useful, and could result in many - spurious Write events. - -- windows: return `ErrEventOverflow` if the buffer is full ([#525]) - - Before it would merely return "short read", making it hard to detect this - error. - -- kqueue: make sure events for all files are delivered properly when removing a - watched directory ([#526]) - - Previously they would get sent with `""` (empty string) or `"."` as the path - name. - -- kqueue: don't emit spurious Create events for symbolic links ([#524]) - - The link would get resolved but kqueue would "forget" it already saw the link - itself, resulting on a Create for every Write event for the directory. - -- all: return `ErrClosed` on `Add()` when the watcher is closed ([#516]) - -- other: add `Watcher.Errors` and `Watcher.Events` to the no-op `Watcher` in - `backend_other.go`, making it easier to use on unsupported platforms such as - WASM, AIX, etc. ([#528]) - -- other: use the `backend_other.go` no-op if the `appengine` build tag is set; - Google AppEngine forbids usage of the unsafe package so the inotify backend - won't compile there. - -[#371]: https://github.com/fsnotify/fsnotify/pull/371 -[#516]: https://github.com/fsnotify/fsnotify/pull/516 -[#518]: https://github.com/fsnotify/fsnotify/pull/518 -[#520]: https://github.com/fsnotify/fsnotify/pull/520 -[#521]: https://github.com/fsnotify/fsnotify/pull/521 -[#524]: https://github.com/fsnotify/fsnotify/pull/524 -[#525]: https://github.com/fsnotify/fsnotify/pull/525 -[#526]: https://github.com/fsnotify/fsnotify/pull/526 -[#528]: https://github.com/fsnotify/fsnotify/pull/528 -[#537]: https://github.com/fsnotify/fsnotify/pull/537 -[#550]: https://github.com/fsnotify/fsnotify/pull/550 -[#572]: https://github.com/fsnotify/fsnotify/pull/572 - -1.6.0 - 2022-10-13 ------------------- -This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, -but not documented). It also increases the minimum Linux version to 2.6.32. - -### Additions - -- all: add `Event.Has()` and `Op.Has()` ([#477]) - - This makes checking events a lot easier; for example: - - if event.Op&Write == Write && !(event.Op&Remove == Remove) { - } - - Becomes: - - if event.Has(Write) && !event.Has(Remove) { - } - -- all: add cmd/fsnotify ([#463]) - - A command-line utility for testing and some examples. - -### Changes and fixes - -- inotify: don't ignore events for files that don't exist ([#260], [#470]) - - Previously the inotify watcher would call `os.Lstat()` to check if a file - still exists before emitting events. - - This was inconsistent with other platforms and resulted in inconsistent event - reporting (e.g. when a file is quickly removed and re-created), and generally - a source of confusion. It was added in 2013 to fix a memory leak that no - longer exists. - -- all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's - not watched ([#460]) - -- inotify: replace epoll() with non-blocking inotify ([#434]) - - Non-blocking inotify was not generally available at the time this library was - written in 2014, but now it is. As a result, the minimum Linux version is - bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster. - -- kqueue: don't check for events every 100ms ([#480]) - - The watcher would wake up every 100ms, even when there was nothing to do. Now - it waits until there is something to do. - -- macos: retry opening files on EINTR ([#475]) - -- kqueue: skip unreadable files ([#479]) - - kqueue requires a file descriptor for every file in a directory; this would - fail if a file was unreadable by the current user. Now these files are simply - skipped. - -- windows: fix renaming a watched directory if the parent is also watched ([#370]) - -- windows: increase buffer size from 4K to 64K ([#485]) - -- windows: close file handle on Remove() ([#288]) - -- kqueue: put pathname in the error if watching a file fails ([#471]) - -- inotify, windows: calling Close() more than once could race ([#465]) - -- kqueue: improve Close() performance ([#233]) - -- all: various documentation additions and clarifications. - -[#233]: https://github.com/fsnotify/fsnotify/pull/233 -[#260]: https://github.com/fsnotify/fsnotify/pull/260 -[#288]: https://github.com/fsnotify/fsnotify/pull/288 -[#370]: https://github.com/fsnotify/fsnotify/pull/370 -[#434]: https://github.com/fsnotify/fsnotify/pull/434 -[#460]: https://github.com/fsnotify/fsnotify/pull/460 -[#463]: https://github.com/fsnotify/fsnotify/pull/463 -[#465]: https://github.com/fsnotify/fsnotify/pull/465 -[#470]: https://github.com/fsnotify/fsnotify/pull/470 -[#471]: https://github.com/fsnotify/fsnotify/pull/471 -[#475]: https://github.com/fsnotify/fsnotify/pull/475 -[#477]: https://github.com/fsnotify/fsnotify/pull/477 -[#479]: https://github.com/fsnotify/fsnotify/pull/479 -[#480]: https://github.com/fsnotify/fsnotify/pull/480 -[#485]: https://github.com/fsnotify/fsnotify/pull/485 - -## [1.5.4] - 2022-04-25 - -* Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) -* go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444) -* Fix compilation for OpenBSD [#443](https://github.com/fsnotify/fsnotify/pull/443) - -## [1.5.3] - 2022-04-22 - -* This version is retracted. An incorrect branch is published accidentally [#445](https://github.com/fsnotify/fsnotify/issues/445) - -## [1.5.2] - 2022-04-21 - -* Add a feature to return the directories and files that are being monitored [#374](https://github.com/fsnotify/fsnotify/pull/374) -* Fix potential crash on windows if `raw.FileNameLength` exceeds `syscall.MAX_PATH` [#361](https://github.com/fsnotify/fsnotify/pull/361) -* Allow build on unsupported GOOS [#424](https://github.com/fsnotify/fsnotify/pull/424) -* Don't set `poller.fd` twice in `newFdPoller` [#406](https://github.com/fsnotify/fsnotify/pull/406) -* fix go vet warnings: call to `(*T).Fatalf` from a non-test goroutine [#416](https://github.com/fsnotify/fsnotify/pull/416) - -## [1.5.1] - 2021-08-24 - -* Revert Add AddRaw to not follow symlinks [#394](https://github.com/fsnotify/fsnotify/pull/394) - -## [1.5.0] - 2021-08-20 - -* Go: Increase minimum required version to Go 1.12 [#381](https://github.com/fsnotify/fsnotify/pull/381) -* Feature: Add AddRaw method which does not follow symlinks when adding a watch [#289](https://github.com/fsnotify/fsnotify/pull/298) -* Windows: Follow symlinks by default like on all other systems [#289](https://github.com/fsnotify/fsnotify/pull/289) -* CI: Use GitHub Actions for CI and cover go 1.12-1.17 - [#378](https://github.com/fsnotify/fsnotify/pull/378) - [#381](https://github.com/fsnotify/fsnotify/pull/381) - [#385](https://github.com/fsnotify/fsnotify/pull/385) -* Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) - -## [1.4.9] - 2020-03-11 - -* Move example usage to the readme #329. This may resolve #328. - -## [1.4.8] - 2020-03-10 - -* CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216) -* Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265) -* Tests: t.Fatalf -> t.Errorf in go routines (@gdey #266) -* CI: Less verbosity (@nathany #267) -* Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267) -* Tests: Check if channels are closed in the example (@alexeykazakov #244) -* CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284) -* CI: Add windows to travis matrix (@cpuguy83 #284) -* Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93) -* Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219) -* Linux: open files with close-on-exec (@linxiulei #273) -* Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 ) -* Project: Add go.mod (@nathany #309) -* Project: Revise editor config (@nathany #309) -* Project: Update copyright for 2019 (@nathany #309) -* CI: Drop go1.8 from CI matrix (@nathany #309) -* Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e ) - -## [1.4.7] - 2018-01-09 - -* BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) -* Tests: Fix missing verb on format string (thanks @rchiossi) -* Linux: Fix deadlock in Remove (thanks @aarondl) -* Linux: Watch.Add improvements (avoid race, fix consistency, reduce garbage) (thanks @twpayne) -* Docs: Moved FAQ into the README (thanks @vahe) -* Linux: Properly handle inotify's IN_Q_OVERFLOW event (thanks @zeldovich) -* Docs: replace references to OS X with macOS - -## [1.4.2] - 2016-10-10 - -* Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack) - -## [1.4.1] - 2016-10-04 - -* Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack) - -## [1.4.0] - 2016-10-01 - -* add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie) - -## [1.3.1] - 2016-06-28 - -* Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc) - -## [1.3.0] - 2016-04-19 - -* Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135) - -## [1.2.10] - 2016-03-02 - -* Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj) - -## [1.2.9] - 2016-01-13 - -kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep) - -## [1.2.8] - 2015-12-17 - -* kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test) -* inotify: fix race in test -* enable race detection for continuous integration (Linux, Mac, Windows) - -## [1.2.5] - 2015-10-17 - -* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki) -* inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken) -* kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie) -* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion) - -## [1.2.1] - 2015-10-14 - -* kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx) - -## [1.2.0] - 2015-02-08 - -* inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD) -* inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD) -* kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59) - -## [1.1.1] - 2015-02-05 - -* inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD) - -## [1.1.0] - 2014-12-12 - -* kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43) - * add low-level functions - * only need to store flags on directories - * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13) - * done can be an unbuffered channel - * remove calls to os.NewSyscallError -* More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher) -* kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48) -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## [1.0.4] - 2014-09-07 - -* kqueue: add dragonfly to the build tags. -* Rename source code files, rearrange code so exported APIs are at the top. -* Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang) - -## [1.0.3] - 2014-08-19 - -* [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36) - -## [1.0.2] - 2014-08-17 - -* [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) -* [Fix] Make ./path and path equivalent. (thanks @zhsso) - -## [1.0.0] - 2014-08-15 - -* [API] Remove AddWatch on Windows, use Add. -* Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30) -* Minor updates based on feedback from golint. - -## dev / 2014-07-09 - -* Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). -* Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno) - -## dev / 2014-07-04 - -* kqueue: fix incorrect mutex used in Close() -* Update example to demonstrate usage of Op. - -## dev / 2014-06-28 - -* [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4) -* Fix for String() method on Event (thanks Alex Brainman) -* Don't build on Plan 9 or Solaris (thanks @4ad) - -## dev / 2014-06-21 - -* Events channel of type Event rather than *Event. -* [internal] use syscall constants directly for inotify and kqueue. -* [internal] kqueue: rename events to kevents and fileEvent to event. - -## dev / 2014-06-19 - -* Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally). -* [internal] remove cookie from Event struct (unused). -* [internal] Event struct has the same definition across every OS. -* [internal] remove internal watch and removeWatch methods. - -## dev / 2014-06-12 - -* [API] Renamed Watch() to Add() and RemoveWatch() to Remove(). -* [API] Pluralized channel names: Events and Errors. -* [API] Renamed FileEvent struct to Event. -* [API] Op constants replace methods like IsCreate(). - -## dev / 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## dev / 2014-05-23 - -* [API] Remove current implementation of WatchFlags. - * current implementation doesn't take advantage of OS for efficiency - * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes - * no tests for the current implementation - * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195) - -## [0.9.3] - 2014-12-31 - -* kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51) - -## [0.9.2] - 2014-08-17 - -* [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso) - -## [0.9.1] - 2014-06-12 - -* Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98) - -## [0.9.0] - 2014-01-17 - -* IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany) -* [Fix] kqueue: fix deadlock [#77][] (thanks @cespare) -* [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library. - -## [0.8.12] - 2013-11-13 - -* [API] Remove FD_SET and friends from Linux adapter - -## [0.8.11] - 2013-11-02 - -* [Doc] Add Changelog [#72][] (thanks @nathany) -* [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond) - -## [0.8.10] - 2013-10-19 - -* [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott) -* [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer) -* [Doc] specify OS-specific limits in README (thanks @debrando) - -## [0.8.9] - 2013-09-08 - -* [Doc] Contributing (thanks @nathany) -* [Doc] update package path in example code [#63][] (thanks @paulhammond) -* [Doc] GoCI badge in README (Linux only) [#60][] -* [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany) - -## [0.8.8] - 2013-06-17 - -* [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie) - -## [0.8.7] - 2013-06-03 - -* [API] Make syscall flags internal -* [Fix] inotify: ignore event changes -* [Fix] race in symlink test [#45][] (reported by @srid) -* [Fix] tests on Windows -* lower case error messages - -## [0.8.6] - 2013-05-23 - -* kqueue: Use EVT_ONLY flag on Darwin -* [Doc] Update README with full example - -## [0.8.5] - 2013-05-09 - -* [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg) - -## [0.8.4] - 2013-04-07 - -* [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz) - -## [0.8.3] - 2013-03-13 - -* [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin) -* [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin) - -## [0.8.2] - 2013-02-07 - -* [Doc] add Authors -* [Fix] fix data races for map access [#29][] (thanks @fsouza) - -## [0.8.1] - 2013-01-09 - -* [Fix] Windows path separators -* [Doc] BSD License - -## [0.8.0] - 2012-11-09 - -* kqueue: directory watching improvements (thanks @vmirage) -* inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto) -* [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr) - -## [0.7.4] - 2012-10-09 - -* [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji) -* [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig) -* [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig) -* [Fix] kqueue: modify after recreation of file - -## [0.7.3] - 2012-09-27 - -* [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage) -* [Fix] kqueue: no longer get duplicate CREATE events - -## [0.7.2] - 2012-09-01 - -* kqueue: events for created directories - -## [0.7.1] - 2012-07-14 - -* [Fix] for renaming files - -## [0.7.0] - 2012-07-02 - -* [Feature] FSNotify flags -* [Fix] inotify: Added file name back to event path - -## [0.6.0] - 2012-06-06 - -* kqueue: watch files after directory created (thanks @tmc) - -## [0.5.1] - 2012-05-22 - -* [Fix] inotify: remove all watches before Close() - -## [0.5.0] - 2012-05-03 - -* [API] kqueue: return errors during watch instead of sending over channel -* kqueue: match symlink behavior on Linux -* inotify: add `DELETE_SELF` (requested by @taralx) -* [Fix] kqueue: handle EINTR (reported by @robfig) -* [Doc] Godoc example [#1][] (thanks @davecheney) - -## [0.4.0] - 2012-03-30 - -* Go 1 released: build with go tool -* [Feature] Windows support using winfsnotify -* Windows does not have attribute change notifications -* Roll attribute notifications into IsModify - -## [0.3.0] - 2012-02-19 - -* kqueue: add files when watch directory - -## [0.2.0] - 2011-12-30 - -* update to latest Go weekly code - -## [0.1.0] - 2011-10-19 - -* kqueue: add watch on file creation to match inotify -* kqueue: create file event -* inotify: ignore `IN_IGNORED` events -* event String() -* linux: common FileEvent functions -* initial commit - -[#79]: https://github.com/howeyc/fsnotify/pull/79 -[#77]: https://github.com/howeyc/fsnotify/pull/77 -[#72]: https://github.com/howeyc/fsnotify/issues/72 -[#71]: https://github.com/howeyc/fsnotify/issues/71 -[#70]: https://github.com/howeyc/fsnotify/issues/70 -[#63]: https://github.com/howeyc/fsnotify/issues/63 -[#62]: https://github.com/howeyc/fsnotify/issues/62 -[#60]: https://github.com/howeyc/fsnotify/issues/60 -[#59]: https://github.com/howeyc/fsnotify/issues/59 -[#49]: https://github.com/howeyc/fsnotify/issues/49 -[#45]: https://github.com/howeyc/fsnotify/issues/45 -[#40]: https://github.com/howeyc/fsnotify/issues/40 -[#36]: https://github.com/howeyc/fsnotify/issues/36 -[#33]: https://github.com/howeyc/fsnotify/issues/33 -[#29]: https://github.com/howeyc/fsnotify/issues/29 -[#25]: https://github.com/howeyc/fsnotify/issues/25 -[#24]: https://github.com/howeyc/fsnotify/issues/24 -[#21]: https://github.com/howeyc/fsnotify/issues/21 diff --git a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md b/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md deleted file mode 100644 index ea37975..0000000 --- a/vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md +++ /dev/null @@ -1,26 +0,0 @@ -Thank you for your interest in contributing to fsnotify! We try to review and -merge PRs in a reasonable timeframe, but please be aware that: - -- To avoid "wasted" work, please discus changes on the issue tracker first. You - can just send PRs, but they may end up being rejected for one reason or the - other. - -- fsnotify is a cross-platform library, and changes must work reasonably well on - all supported platforms. - -- Changes will need to be compatible; old code should still compile, and the - runtime behaviour can't change in ways that are likely to lead to problems for - users. - -Testing -------- -Just `go test ./...` runs all the tests; the CI runs this on all supported -platforms. Testing different platforms locally can be done with something like -[goon] or [Vagrant], but this isn't super-easy to set up at the moment. - -Use the `-short` flag to make the "stress test" run faster. - - -[goon]: https://github.com/arp242/goon -[Vagrant]: https://www.vagrantup.com/ -[integration_test.go]: /integration_test.go diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE deleted file mode 100644 index fb03ade..0000000 --- a/vendor/github.com/fsnotify/fsnotify/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright © 2012 The Go Authors. All rights reserved. -Copyright © fsnotify Authors. 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. -* Neither the name of Google Inc. nor the names of its contributors may be used - to endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md deleted file mode 100644 index e480733..0000000 --- a/vendor/github.com/fsnotify/fsnotify/README.md +++ /dev/null @@ -1,184 +0,0 @@ -fsnotify is a Go library to provide cross-platform filesystem notifications on -Windows, Linux, macOS, BSD, and illumos. - -Go 1.17 or newer is required; the full documentation is at -https://pkg.go.dev/github.com/fsnotify/fsnotify - ---- - -Platform support: - -| Backend | OS | Status | -| :-------------------- | :--------- | :------------------------------------------------------------------------ | -| inotify | Linux | Supported | -| kqueue | BSD, macOS | Supported | -| ReadDirectoryChangesW | Windows | Supported | -| FEN | illumos | Supported | -| fanotify | Linux 5.9+ | [Not yet](https://github.com/fsnotify/fsnotify/issues/114) | -| AHAFS | AIX | [aix branch]; experimental due to lack of maintainer and test environment | -| FSEvents | macOS | [Needs support in x/sys/unix][fsevents] | -| USN Journals | Windows | [Needs support in x/sys/windows][usn] | -| Polling | *All* | [Not yet](https://github.com/fsnotify/fsnotify/issues/9) | - -Linux and illumos should include Android and Solaris, but these are currently -untested. - -[fsevents]: https://github.com/fsnotify/fsnotify/issues/11#issuecomment-1279133120 -[usn]: https://github.com/fsnotify/fsnotify/issues/53#issuecomment-1279829847 -[aix branch]: https://github.com/fsnotify/fsnotify/issues/353#issuecomment-1284590129 - -Usage ------ -A basic example: - -```go -package main - -import ( - "log" - - "github.com/fsnotify/fsnotify" -) - -func main() { - // Create new watcher. - watcher, err := fsnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - defer watcher.Close() - - // Start listening for events. - go func() { - for { - select { - case event, ok := <-watcher.Events: - if !ok { - return - } - log.Println("event:", event) - if event.Has(fsnotify.Write) { - log.Println("modified file:", event.Name) - } - case err, ok := <-watcher.Errors: - if !ok { - return - } - log.Println("error:", err) - } - } - }() - - // Add a path. - err = watcher.Add("/tmp") - if err != nil { - log.Fatal(err) - } - - // Block main goroutine forever. - <-make(chan struct{}) -} -``` - -Some more examples can be found in [cmd/fsnotify](cmd/fsnotify), which can be -run with: - - % go run ./cmd/fsnotify - -Further detailed documentation can be found in godoc: -https://pkg.go.dev/github.com/fsnotify/fsnotify - -FAQ ---- -### Will a file still be watched when it's moved to another directory? -No, not unless you are watching the location it was moved to. - -### Are subdirectories watched? -No, you must add watches for any directory you want to watch (a recursive -watcher is on the roadmap: [#18]). - -[#18]: https://github.com/fsnotify/fsnotify/issues/18 - -### Do I have to watch the Error and Event channels in a goroutine? -Yes. You can read both channels in the same goroutine using `select` (you don't -need a separate goroutine for both channels; see the example). - -### Why don't notifications work with NFS, SMB, FUSE, /proc, or /sys? -fsnotify requires support from underlying OS to work. The current NFS and SMB -protocols does not provide network level support for file notifications, and -neither do the /proc and /sys virtual filesystems. - -This could be fixed with a polling watcher ([#9]), but it's not yet implemented. - -[#9]: https://github.com/fsnotify/fsnotify/issues/9 - -### Why do I get many Chmod events? -Some programs may generate a lot of attribute changes; for example Spotlight on -macOS, anti-virus programs, backup applications, and some others are known to do -this. As a rule, it's typically best to ignore Chmod events. They're often not -useful, and tend to cause problems. - -Spotlight indexing on macOS can result in multiple events (see [#15]). A -temporary workaround is to add your folder(s) to the *Spotlight Privacy -settings* until we have a native FSEvents implementation (see [#11]). - -[#11]: https://github.com/fsnotify/fsnotify/issues/11 -[#15]: https://github.com/fsnotify/fsnotify/issues/15 - -### Watching a file doesn't work well -Watching individual files (rather than directories) is generally not recommended -as many programs (especially editors) update files atomically: it will write to -a temporary file which is then moved to to destination, overwriting the original -(or some variant thereof). The watcher on the original file is now lost, as that -no longer exists. - -The upshot of this is that a power failure or crash won't leave a half-written -file. - -Watch the parent directory and use `Event.Name` to filter out files you're not -interested in. There is an example of this in `cmd/fsnotify/file.go`. - -Platform-specific notes ------------------------ -### Linux -When a file is removed a REMOVE event won't be emitted until all file -descriptors are closed; it will emit a CHMOD instead: - - fp := os.Open("file") - os.Remove("file") // CHMOD - fp.Close() // REMOVE - -This is the event that inotify sends, so not much can be changed about this. - -The `fs.inotify.max_user_watches` sysctl variable specifies the upper limit for -the number of watches per user, and `fs.inotify.max_user_instances` specifies -the maximum number of inotify instances per user. Every Watcher you create is an -"instance", and every path you add is a "watch". - -These are also exposed in `/proc` as `/proc/sys/fs/inotify/max_user_watches` and -`/proc/sys/fs/inotify/max_user_instances` - -To increase them you can use `sysctl` or write the value to proc file: - - # The default values on Linux 5.18 - sysctl fs.inotify.max_user_watches=124983 - sysctl fs.inotify.max_user_instances=128 - -To make the changes persist on reboot edit `/etc/sysctl.conf` or -`/usr/lib/sysctl.d/50-default.conf` (details differ per Linux distro; check your -distro's documentation): - - fs.inotify.max_user_watches=124983 - fs.inotify.max_user_instances=128 - -Reaching the limit will result in a "no space left on device" or "too many open -files" error. - -### kqueue (macOS, all BSD systems) -kqueue requires opening a file descriptor for every file that's being watched; -so if you're watching a directory with five files then that's six file -descriptors. You will run in to your system's "max open files" limit faster on -these platforms. - -The sysctl variables `kern.maxfiles` and `kern.maxfilesperproc` can be used to -control the maximum number of open files. diff --git a/vendor/github.com/fsnotify/fsnotify/backend_fen.go b/vendor/github.com/fsnotify/fsnotify/backend_fen.go deleted file mode 100644 index 28497f1..0000000 --- a/vendor/github.com/fsnotify/fsnotify/backend_fen.go +++ /dev/null @@ -1,640 +0,0 @@ -//go:build solaris -// +build solaris - -// Note: the documentation on the Watcher type and methods is generated from -// mkdoc.zsh - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "sync" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\path\to\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. - Events chan Event - - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. - Errors chan error - - mu sync.Mutex - port *unix.EventPort - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - dirs map[string]struct{} // Explicitly watched directories - watches map[string]struct{} // Explicitly watched non-directories -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return NewBufferedWatcher(0) -} - -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -func NewBufferedWatcher(sz uint) (*Watcher, error) { - w := &Watcher{ - Events: make(chan Event, sz), - Errors: make(chan error), - dirs: make(map[string]struct{}), - watches: make(map[string]struct{}), - done: make(chan struct{}), - } - - var err error - w.port, err = unix.NewEventPort() - if err != nil { - return nil, fmt.Errorf("fsnotify.NewWatcher: %w", err) - } - - go w.readEvents() - return w, nil -} - -// sendEvent attempts to send an event to the user, returning true if the event -// was put in the channel successfully and false if the watcher has been closed. -func (w *Watcher) sendEvent(name string, op Op) (sent bool) { - select { - case w.Events <- Event{Name: name, Op: op}: - return true - case <-w.done: - return false - } -} - -// sendError attempts to send an error to the user, returning true if the error -// was put in the channel successfully and false if the watcher has been closed. -func (w *Watcher) sendError(err error) (sent bool) { - select { - case w.Errors <- err: - return true - case <-w.done: - return false - } -} - -func (w *Watcher) isClosed() bool { - select { - case <-w.done: - return true - default: - return false - } -} - -// Close removes all watches and closes the Events channel. -func (w *Watcher) Close() error { - // Take the lock used by associateFile to prevent lingering events from - // being processed after the close - w.mu.Lock() - defer w.mu.Unlock() - if w.isClosed() { - return nil - } - close(w.done) - return w.port.Close() -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -func (w *Watcher) Add(name string) error { return w.AddWith(name) } - -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -func (w *Watcher) AddWith(name string, opts ...addOpt) error { - if w.isClosed() { - return ErrClosed - } - if w.port.PathIsWatched(name) { - return nil - } - - _ = getOptions(opts...) - - // Currently we resolve symlinks that were explicitly requested to be - // watched. Otherwise we would use LStat here. - stat, err := os.Stat(name) - if err != nil { - return err - } - - // Associate all files in the directory. - if stat.IsDir() { - err := w.handleDirectory(name, stat, true, w.associateFile) - if err != nil { - return err - } - - w.mu.Lock() - w.dirs[name] = struct{}{} - w.mu.Unlock() - return nil - } - - err = w.associateFile(name, stat, true) - if err != nil { - return err - } - - w.mu.Lock() - w.watches[name] = struct{}{} - w.mu.Unlock() - return nil -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) Remove(name string) error { - if w.isClosed() { - return nil - } - if !w.port.PathIsWatched(name) { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) - } - - // The user has expressed an intent. Immediately remove this name from - // whichever watch list it might be in. If it's not in there the delete - // doesn't cause harm. - w.mu.Lock() - delete(w.watches, name) - delete(w.dirs, name) - w.mu.Unlock() - - stat, err := os.Stat(name) - if err != nil { - return err - } - - // Remove associations for every file in the directory. - if stat.IsDir() { - err := w.handleDirectory(name, stat, false, w.dissociateFile) - if err != nil { - return err - } - return nil - } - - err = w.port.DissociatePath(name) - if err != nil { - return err - } - - return nil -} - -// readEvents contains the main loop that runs in a goroutine watching for events. -func (w *Watcher) readEvents() { - // If this function returns, the watcher has been closed and we can close - // these channels - defer func() { - close(w.Errors) - close(w.Events) - }() - - pevents := make([]unix.PortEvent, 8) - for { - count, err := w.port.Get(pevents, 1, nil) - if err != nil && err != unix.ETIME { - // Interrupted system call (count should be 0) ignore and continue - if errors.Is(err, unix.EINTR) && count == 0 { - continue - } - // Get failed because we called w.Close() - if errors.Is(err, unix.EBADF) && w.isClosed() { - return - } - // There was an error not caused by calling w.Close() - if !w.sendError(err) { - return - } - } - - p := pevents[:count] - for _, pevent := range p { - if pevent.Source != unix.PORT_SOURCE_FILE { - // Event from unexpected source received; should never happen. - if !w.sendError(errors.New("Event from unexpected source received")) { - return - } - continue - } - - err = w.handleEvent(&pevent) - if err != nil { - if !w.sendError(err) { - return - } - } - } - } -} - -func (w *Watcher) handleDirectory(path string, stat os.FileInfo, follow bool, handler func(string, os.FileInfo, bool) error) error { - files, err := os.ReadDir(path) - if err != nil { - return err - } - - // Handle all children of the directory. - for _, entry := range files { - finfo, err := entry.Info() - if err != nil { - return err - } - err = handler(filepath.Join(path, finfo.Name()), finfo, false) - if err != nil { - return err - } - } - - // And finally handle the directory itself. - return handler(path, stat, follow) -} - -// handleEvent might need to emit more than one fsnotify event if the events -// bitmap matches more than one event type (e.g. the file was both modified and -// had the attributes changed between when the association was created and the -// when event was returned) -func (w *Watcher) handleEvent(event *unix.PortEvent) error { - var ( - events = event.Events - path = event.Path - fmode = event.Cookie.(os.FileMode) - reRegister = true - ) - - w.mu.Lock() - _, watchedDir := w.dirs[path] - _, watchedPath := w.watches[path] - w.mu.Unlock() - isWatched := watchedDir || watchedPath - - if events&unix.FILE_DELETE != 0 { - if !w.sendEvent(path, Remove) { - return nil - } - reRegister = false - } - if events&unix.FILE_RENAME_FROM != 0 { - if !w.sendEvent(path, Rename) { - return nil - } - // Don't keep watching the new file name - reRegister = false - } - if events&unix.FILE_RENAME_TO != 0 { - // We don't report a Rename event for this case, because Rename events - // are interpreted as referring to the _old_ name of the file, and in - // this case the event would refer to the new name of the file. This - // type of rename event is not supported by fsnotify. - - // inotify reports a Remove event in this case, so we simulate this - // here. - if !w.sendEvent(path, Remove) { - return nil - } - // Don't keep watching the file that was removed - reRegister = false - } - - // The file is gone, nothing left to do. - if !reRegister { - if watchedDir { - w.mu.Lock() - delete(w.dirs, path) - w.mu.Unlock() - } - if watchedPath { - w.mu.Lock() - delete(w.watches, path) - w.mu.Unlock() - } - return nil - } - - // If we didn't get a deletion the file still exists and we're going to have - // to watch it again. Let's Stat it now so that we can compare permissions - // and have what we need to continue watching the file - - stat, err := os.Lstat(path) - if err != nil { - // This is unexpected, but we should still emit an event. This happens - // most often on "rm -r" of a subdirectory inside a watched directory We - // get a modify event of something happening inside, but by the time we - // get here, the sudirectory is already gone. Clearly we were watching - // this path but now it is gone. Let's tell the user that it was - // removed. - if !w.sendEvent(path, Remove) { - return nil - } - // Suppress extra write events on removed directories; they are not - // informative and can be confusing. - return nil - } - - // resolve symlinks that were explicitly watched as we would have at Add() - // time. this helps suppress spurious Chmod events on watched symlinks - if isWatched { - stat, err = os.Stat(path) - if err != nil { - // The symlink still exists, but the target is gone. Report the - // Remove similar to above. - if !w.sendEvent(path, Remove) { - return nil - } - // Don't return the error - } - } - - if events&unix.FILE_MODIFIED != 0 { - if fmode.IsDir() { - if watchedDir { - if err := w.updateDirectory(path); err != nil { - return err - } - } else { - if !w.sendEvent(path, Write) { - return nil - } - } - } else { - if !w.sendEvent(path, Write) { - return nil - } - } - } - if events&unix.FILE_ATTRIB != 0 && stat != nil { - // Only send Chmod if perms changed - if stat.Mode().Perm() != fmode.Perm() { - if !w.sendEvent(path, Chmod) { - return nil - } - } - } - - if stat != nil { - // If we get here, it means we've hit an event above that requires us to - // continue watching the file or directory - return w.associateFile(path, stat, isWatched) - } - return nil -} - -func (w *Watcher) updateDirectory(path string) error { - // The directory was modified, so we must find unwatched entities and watch - // them. If something was removed from the directory, nothing will happen, - // as everything else should still be watched. - files, err := os.ReadDir(path) - if err != nil { - return err - } - - for _, entry := range files { - path := filepath.Join(path, entry.Name()) - if w.port.PathIsWatched(path) { - continue - } - - finfo, err := entry.Info() - if err != nil { - return err - } - err = w.associateFile(path, finfo, false) - if err != nil { - if !w.sendError(err) { - return nil - } - } - if !w.sendEvent(path, Create) { - return nil - } - } - return nil -} - -func (w *Watcher) associateFile(path string, stat os.FileInfo, follow bool) error { - if w.isClosed() { - return ErrClosed - } - // This is primarily protecting the call to AssociatePath but it is - // important and intentional that the call to PathIsWatched is also - // protected by this mutex. Without this mutex, AssociatePath has been seen - // to error out that the path is already associated. - w.mu.Lock() - defer w.mu.Unlock() - - if w.port.PathIsWatched(path) { - // Remove the old association in favor of this one If we get ENOENT, - // then while the x/sys/unix wrapper still thought that this path was - // associated, the underlying event port did not. This call will have - // cleared up that discrepancy. The most likely cause is that the event - // has fired but we haven't processed it yet. - err := w.port.DissociatePath(path) - if err != nil && err != unix.ENOENT { - return err - } - } - // FILE_NOFOLLOW means we watch symlinks themselves rather than their - // targets. - events := unix.FILE_MODIFIED | unix.FILE_ATTRIB | unix.FILE_NOFOLLOW - if follow { - // We *DO* follow symlinks for explicitly watched entries. - events = unix.FILE_MODIFIED | unix.FILE_ATTRIB - } - return w.port.AssociatePath(path, stat, - events, - stat.Mode()) -} - -func (w *Watcher) dissociateFile(path string, stat os.FileInfo, unused bool) error { - if !w.port.PathIsWatched(path) { - return nil - } - return w.port.DissociatePath(path) -} - -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) WatchList() []string { - if w.isClosed() { - return nil - } - - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)+len(w.dirs)) - for pathname := range w.dirs { - entries = append(entries, pathname) - } - for pathname := range w.watches { - entries = append(entries, pathname) - } - - return entries -} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_inotify.go b/vendor/github.com/fsnotify/fsnotify/backend_inotify.go deleted file mode 100644 index 921c1c1..0000000 --- a/vendor/github.com/fsnotify/fsnotify/backend_inotify.go +++ /dev/null @@ -1,594 +0,0 @@ -//go:build linux && !appengine -// +build linux,!appengine - -// Note: the documentation on the Watcher type and methods is generated from -// mkdoc.zsh - -package fsnotify - -import ( - "errors" - "fmt" - "io" - "os" - "path/filepath" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\path\to\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. - Events chan Event - - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. - Errors chan error - - // Store fd here as os.File.Read() will no longer return on close after - // calling Fd(). See: https://github.com/golang/go/issues/26439 - fd int - inotifyFile *os.File - watches *watches - done chan struct{} // Channel for sending a "quit message" to the reader goroutine - closeMu sync.Mutex - doneResp chan struct{} // Channel to respond to Close -} - -type ( - watches struct { - mu sync.RWMutex - wd map[uint32]*watch // wd → watch - path map[string]uint32 // pathname → wd - } - watch struct { - wd uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall) - flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags) - path string // Watch path. - } -) - -func newWatches() *watches { - return &watches{ - wd: make(map[uint32]*watch), - path: make(map[string]uint32), - } -} - -func (w *watches) len() int { - w.mu.RLock() - defer w.mu.RUnlock() - return len(w.wd) -} - -func (w *watches) add(ww *watch) { - w.mu.Lock() - defer w.mu.Unlock() - w.wd[ww.wd] = ww - w.path[ww.path] = ww.wd -} - -func (w *watches) remove(wd uint32) { - w.mu.Lock() - defer w.mu.Unlock() - delete(w.path, w.wd[wd].path) - delete(w.wd, wd) -} - -func (w *watches) removePath(path string) (uint32, bool) { - w.mu.Lock() - defer w.mu.Unlock() - - wd, ok := w.path[path] - if !ok { - return 0, false - } - - delete(w.path, path) - delete(w.wd, wd) - - return wd, true -} - -func (w *watches) byPath(path string) *watch { - w.mu.RLock() - defer w.mu.RUnlock() - return w.wd[w.path[path]] -} - -func (w *watches) byWd(wd uint32) *watch { - w.mu.RLock() - defer w.mu.RUnlock() - return w.wd[wd] -} - -func (w *watches) updatePath(path string, f func(*watch) (*watch, error)) error { - w.mu.Lock() - defer w.mu.Unlock() - - var existing *watch - wd, ok := w.path[path] - if ok { - existing = w.wd[wd] - } - - upd, err := f(existing) - if err != nil { - return err - } - if upd != nil { - w.wd[upd.wd] = upd - w.path[upd.path] = upd.wd - - if upd.wd != wd { - delete(w.wd, wd) - } - } - - return nil -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return NewBufferedWatcher(0) -} - -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -func NewBufferedWatcher(sz uint) (*Watcher, error) { - // Need to set nonblocking mode for SetDeadline to work, otherwise blocking - // I/O operations won't terminate on close. - fd, errno := unix.InotifyInit1(unix.IN_CLOEXEC | unix.IN_NONBLOCK) - if fd == -1 { - return nil, errno - } - - w := &Watcher{ - fd: fd, - inotifyFile: os.NewFile(uintptr(fd), ""), - watches: newWatches(), - Events: make(chan Event, sz), - Errors: make(chan error), - done: make(chan struct{}), - doneResp: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -// Returns true if the event was sent, or false if watcher is closed. -func (w *Watcher) sendEvent(e Event) bool { - select { - case w.Events <- e: - return true - case <-w.done: - return false - } -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.done: - return false - } -} - -func (w *Watcher) isClosed() bool { - select { - case <-w.done: - return true - default: - return false - } -} - -// Close removes all watches and closes the Events channel. -func (w *Watcher) Close() error { - w.closeMu.Lock() - if w.isClosed() { - w.closeMu.Unlock() - return nil - } - close(w.done) - w.closeMu.Unlock() - - // Causes any blocking reads to return with an error, provided the file - // still supports deadline operations. - err := w.inotifyFile.Close() - if err != nil { - return err - } - - // Wait for goroutine to close - <-w.doneResp - - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -func (w *Watcher) Add(name string) error { return w.AddWith(name) } - -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -func (w *Watcher) AddWith(name string, opts ...addOpt) error { - if w.isClosed() { - return ErrClosed - } - - name = filepath.Clean(name) - _ = getOptions(opts...) - - var flags uint32 = unix.IN_MOVED_TO | unix.IN_MOVED_FROM | - unix.IN_CREATE | unix.IN_ATTRIB | unix.IN_MODIFY | - unix.IN_MOVE_SELF | unix.IN_DELETE | unix.IN_DELETE_SELF - - return w.watches.updatePath(name, func(existing *watch) (*watch, error) { - if existing != nil { - flags |= existing.flags | unix.IN_MASK_ADD - } - - wd, err := unix.InotifyAddWatch(w.fd, name, flags) - if wd == -1 { - return nil, err - } - - if existing == nil { - return &watch{ - wd: uint32(wd), - path: name, - flags: flags, - }, nil - } - - existing.wd = uint32(wd) - existing.flags = flags - return existing, nil - }) -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) Remove(name string) error { - if w.isClosed() { - return nil - } - return w.remove(filepath.Clean(name)) -} - -func (w *Watcher) remove(name string) error { - wd, ok := w.watches.removePath(name) - if !ok { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) - } - - success, errno := unix.InotifyRmWatch(w.fd, wd) - if success == -1 { - // TODO: Perhaps it's not helpful to return an error here in every case; - // The only two possible errors are: - // - // - EBADF, which happens when w.fd is not a valid file descriptor - // of any kind. - // - EINVAL, which is when fd is not an inotify descriptor or wd - // is not a valid watch descriptor. Watch descriptors are - // invalidated when they are removed explicitly or implicitly; - // explicitly by inotify_rm_watch, implicitly when the file they - // are watching is deleted. - return errno - } - return nil -} - -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) WatchList() []string { - if w.isClosed() { - return nil - } - - entries := make([]string, 0, w.watches.len()) - w.watches.mu.RLock() - for pathname := range w.watches.path { - entries = append(entries, pathname) - } - w.watches.mu.RUnlock() - - return entries -} - -// readEvents reads from the inotify file descriptor, converts the -// received events into Event objects and sends them via the Events channel -func (w *Watcher) readEvents() { - defer func() { - close(w.doneResp) - close(w.Errors) - close(w.Events) - }() - - var ( - buf [unix.SizeofInotifyEvent * 4096]byte // Buffer for a maximum of 4096 raw events - errno error // Syscall errno - ) - for { - // See if we have been closed. - if w.isClosed() { - return - } - - n, err := w.inotifyFile.Read(buf[:]) - switch { - case errors.Unwrap(err) == os.ErrClosed: - return - case err != nil: - if !w.sendError(err) { - return - } - continue - } - - if n < unix.SizeofInotifyEvent { - var err error - if n == 0 { - err = io.EOF // If EOF is received. This should really never happen. - } else if n < 0 { - err = errno // If an error occurred while reading. - } else { - err = errors.New("notify: short read in readEvents()") // Read was too short. - } - if !w.sendError(err) { - return - } - continue - } - - var offset uint32 - // We don't know how many events we just read into the buffer - // While the offset points to at least one whole event... - for offset <= uint32(n-unix.SizeofInotifyEvent) { - var ( - // Point "raw" to the event in the buffer - raw = (*unix.InotifyEvent)(unsafe.Pointer(&buf[offset])) - mask = uint32(raw.Mask) - nameLen = uint32(raw.Len) - ) - - if mask&unix.IN_Q_OVERFLOW != 0 { - if !w.sendError(ErrEventOverflow) { - return - } - } - - // If the event happened to the watched directory or the watched file, the kernel - // doesn't append the filename to the event, but we would like to always fill the - // the "Name" field with a valid filename. We retrieve the path of the watch from - // the "paths" map. - watch := w.watches.byWd(uint32(raw.Wd)) - - // inotify will automatically remove the watch on deletes; just need - // to clean our state here. - if watch != nil && mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF { - w.watches.remove(watch.wd) - } - // We can't really update the state when a watched path is moved; - // only IN_MOVE_SELF is sent and not IN_MOVED_{FROM,TO}. So remove - // the watch. - if watch != nil && mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF { - err := w.remove(watch.path) - if err != nil && !errors.Is(err, ErrNonExistentWatch) { - if !w.sendError(err) { - return - } - } - } - - var name string - if watch != nil { - name = watch.path - } - if nameLen > 0 { - // Point "bytes" at the first byte of the filename - bytes := (*[unix.PathMax]byte)(unsafe.Pointer(&buf[offset+unix.SizeofInotifyEvent]))[:nameLen:nameLen] - // The filename is padded with NULL bytes. TrimRight() gets rid of those. - name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000") - } - - event := w.newEvent(name, mask) - - // Send the events that are not ignored on the events channel - if mask&unix.IN_IGNORED == 0 { - if !w.sendEvent(event) { - return - } - } - - // Move to the next event in the buffer - offset += unix.SizeofInotifyEvent + nameLen - } - } -} - -// newEvent returns an platform-independent Event based on an inotify mask. -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.IN_CREATE == unix.IN_CREATE || mask&unix.IN_MOVED_TO == unix.IN_MOVED_TO { - e.Op |= Create - } - if mask&unix.IN_DELETE_SELF == unix.IN_DELETE_SELF || mask&unix.IN_DELETE == unix.IN_DELETE { - e.Op |= Remove - } - if mask&unix.IN_MODIFY == unix.IN_MODIFY { - e.Op |= Write - } - if mask&unix.IN_MOVE_SELF == unix.IN_MOVE_SELF || mask&unix.IN_MOVED_FROM == unix.IN_MOVED_FROM { - e.Op |= Rename - } - if mask&unix.IN_ATTRIB == unix.IN_ATTRIB { - e.Op |= Chmod - } - return e -} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go b/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go deleted file mode 100644 index 063a091..0000000 --- a/vendor/github.com/fsnotify/fsnotify/backend_kqueue.go +++ /dev/null @@ -1,782 +0,0 @@ -//go:build freebsd || openbsd || netbsd || dragonfly || darwin -// +build freebsd openbsd netbsd dragonfly darwin - -// Note: the documentation on the Watcher type and methods is generated from -// mkdoc.zsh - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "sync" - - "golang.org/x/sys/unix" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\path\to\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. - Events chan Event - - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. - Errors chan error - - done chan struct{} - kq int // File descriptor (as returned by the kqueue() syscall). - closepipe [2]int // Pipe used for closing. - mu sync.Mutex // Protects access to watcher data - watches map[string]int // Watched file descriptors (key: path). - watchesByDir map[string]map[int]struct{} // Watched file descriptors indexed by the parent directory (key: dirname(path)). - userWatches map[string]struct{} // Watches added with Watcher.Add() - dirFlags map[string]uint32 // Watched directories to fflags used in kqueue. - paths map[int]pathInfo // File descriptors to path names for processing kqueue events. - fileExists map[string]struct{} // Keep track of if we know this file exists (to stop duplicate create events). - isClosed bool // Set to true when Close() is first called -} - -type pathInfo struct { - name string - isDir bool -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return NewBufferedWatcher(0) -} - -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -func NewBufferedWatcher(sz uint) (*Watcher, error) { - kq, closepipe, err := newKqueue() - if err != nil { - return nil, err - } - - w := &Watcher{ - kq: kq, - closepipe: closepipe, - watches: make(map[string]int), - watchesByDir: make(map[string]map[int]struct{}), - dirFlags: make(map[string]uint32), - paths: make(map[int]pathInfo), - fileExists: make(map[string]struct{}), - userWatches: make(map[string]struct{}), - Events: make(chan Event, sz), - Errors: make(chan error), - done: make(chan struct{}), - } - - go w.readEvents() - return w, nil -} - -// newKqueue creates a new kernel event queue and returns a descriptor. -// -// This registers a new event on closepipe, which will trigger an event when -// it's closed. This way we can use kevent() without timeout/polling; without -// the closepipe, it would block forever and we wouldn't be able to stop it at -// all. -func newKqueue() (kq int, closepipe [2]int, err error) { - kq, err = unix.Kqueue() - if kq == -1 { - return kq, closepipe, err - } - - // Register the close pipe. - err = unix.Pipe(closepipe[:]) - if err != nil { - unix.Close(kq) - return kq, closepipe, err - } - - // Register changes to listen on the closepipe. - changes := make([]unix.Kevent_t, 1) - // SetKevent converts int to the platform-specific types. - unix.SetKevent(&changes[0], closepipe[0], unix.EVFILT_READ, - unix.EV_ADD|unix.EV_ENABLE|unix.EV_ONESHOT) - - ok, err := unix.Kevent(kq, changes, nil, nil) - if ok == -1 { - unix.Close(kq) - unix.Close(closepipe[0]) - unix.Close(closepipe[1]) - return kq, closepipe, err - } - return kq, closepipe, nil -} - -// Returns true if the event was sent, or false if watcher is closed. -func (w *Watcher) sendEvent(e Event) bool { - select { - case w.Events <- e: - return true - case <-w.done: - return false - } -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.done: - return false - } -} - -// Close removes all watches and closes the Events channel. -func (w *Watcher) Close() error { - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - w.isClosed = true - - // copy paths to remove while locked - pathsToRemove := make([]string, 0, len(w.watches)) - for name := range w.watches { - pathsToRemove = append(pathsToRemove, name) - } - w.mu.Unlock() // Unlock before calling Remove, which also locks - for _, name := range pathsToRemove { - w.Remove(name) - } - - // Send "quit" message to the reader goroutine. - unix.Close(w.closepipe[1]) - close(w.done) - - return nil -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -func (w *Watcher) Add(name string) error { return w.AddWith(name) } - -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -func (w *Watcher) AddWith(name string, opts ...addOpt) error { - _ = getOptions(opts...) - - w.mu.Lock() - w.userWatches[name] = struct{}{} - w.mu.Unlock() - _, err := w.addWatch(name, noteAllEvents) - return err -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) Remove(name string) error { - return w.remove(name, true) -} - -func (w *Watcher) remove(name string, unwatchFiles bool) error { - name = filepath.Clean(name) - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return nil - } - watchfd, ok := w.watches[name] - w.mu.Unlock() - if !ok { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, name) - } - - err := w.register([]int{watchfd}, unix.EV_DELETE, 0) - if err != nil { - return err - } - - unix.Close(watchfd) - - w.mu.Lock() - isDir := w.paths[watchfd].isDir - delete(w.watches, name) - delete(w.userWatches, name) - - parentName := filepath.Dir(name) - delete(w.watchesByDir[parentName], watchfd) - - if len(w.watchesByDir[parentName]) == 0 { - delete(w.watchesByDir, parentName) - } - - delete(w.paths, watchfd) - delete(w.dirFlags, name) - delete(w.fileExists, name) - w.mu.Unlock() - - // Find all watched paths that are in this directory that are not external. - if unwatchFiles && isDir { - var pathsToRemove []string - w.mu.Lock() - for fd := range w.watchesByDir[name] { - path := w.paths[fd] - if _, ok := w.userWatches[path.name]; !ok { - pathsToRemove = append(pathsToRemove, path.name) - } - } - w.mu.Unlock() - for _, name := range pathsToRemove { - // Since these are internal, not much sense in propagating error to - // the user, as that will just confuse them with an error about a - // path they did not explicitly watch themselves. - w.Remove(name) - } - } - return nil -} - -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) WatchList() []string { - w.mu.Lock() - defer w.mu.Unlock() - if w.isClosed { - return nil - } - - entries := make([]string, 0, len(w.userWatches)) - for pathname := range w.userWatches { - entries = append(entries, pathname) - } - - return entries -} - -// Watch all events (except NOTE_EXTEND, NOTE_LINK, NOTE_REVOKE) -const noteAllEvents = unix.NOTE_DELETE | unix.NOTE_WRITE | unix.NOTE_ATTRIB | unix.NOTE_RENAME - -// addWatch adds name to the watched file set; the flags are interpreted as -// described in kevent(2). -// -// Returns the real path to the file which was added, with symlinks resolved. -func (w *Watcher) addWatch(name string, flags uint32) (string, error) { - var isDir bool - name = filepath.Clean(name) - - w.mu.Lock() - if w.isClosed { - w.mu.Unlock() - return "", ErrClosed - } - watchfd, alreadyWatching := w.watches[name] - // We already have a watch, but we can still override flags. - if alreadyWatching { - isDir = w.paths[watchfd].isDir - } - w.mu.Unlock() - - if !alreadyWatching { - fi, err := os.Lstat(name) - if err != nil { - return "", err - } - - // Don't watch sockets or named pipes - if (fi.Mode()&os.ModeSocket == os.ModeSocket) || (fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe) { - return "", nil - } - - // Follow Symlinks. - if fi.Mode()&os.ModeSymlink == os.ModeSymlink { - link, err := os.Readlink(name) - if err != nil { - // Return nil because Linux can add unresolvable symlinks to the - // watch list without problems, so maintain consistency with - // that. There will be no file events for broken symlinks. - // TODO: more specific check; returns os.PathError; ENOENT? - return "", nil - } - - w.mu.Lock() - _, alreadyWatching = w.watches[link] - w.mu.Unlock() - - if alreadyWatching { - // Add to watches so we don't get spurious Create events later - // on when we diff the directories. - w.watches[name] = 0 - w.fileExists[name] = struct{}{} - return link, nil - } - - name = link - fi, err = os.Lstat(name) - if err != nil { - return "", nil - } - } - - // Retry on EINTR; open() can return EINTR in practice on macOS. - // See #354, and Go issues 11180 and 39237. - for { - watchfd, err = unix.Open(name, openMode, 0) - if err == nil { - break - } - if errors.Is(err, unix.EINTR) { - continue - } - - return "", err - } - - isDir = fi.IsDir() - } - - err := w.register([]int{watchfd}, unix.EV_ADD|unix.EV_CLEAR|unix.EV_ENABLE, flags) - if err != nil { - unix.Close(watchfd) - return "", err - } - - if !alreadyWatching { - w.mu.Lock() - parentName := filepath.Dir(name) - w.watches[name] = watchfd - - watchesByDir, ok := w.watchesByDir[parentName] - if !ok { - watchesByDir = make(map[int]struct{}, 1) - w.watchesByDir[parentName] = watchesByDir - } - watchesByDir[watchfd] = struct{}{} - w.paths[watchfd] = pathInfo{name: name, isDir: isDir} - w.mu.Unlock() - } - - if isDir { - // Watch the directory if it has not been watched before, or if it was - // watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) - w.mu.Lock() - - watchDir := (flags&unix.NOTE_WRITE) == unix.NOTE_WRITE && - (!alreadyWatching || (w.dirFlags[name]&unix.NOTE_WRITE) != unix.NOTE_WRITE) - // Store flags so this watch can be updated later - w.dirFlags[name] = flags - w.mu.Unlock() - - if watchDir { - if err := w.watchDirectoryFiles(name); err != nil { - return "", err - } - } - } - return name, nil -} - -// readEvents reads from kqueue and converts the received kevents into -// Event values that it sends down the Events channel. -func (w *Watcher) readEvents() { - defer func() { - close(w.Events) - close(w.Errors) - _ = unix.Close(w.kq) - unix.Close(w.closepipe[0]) - }() - - eventBuffer := make([]unix.Kevent_t, 10) - for closed := false; !closed; { - kevents, err := w.read(eventBuffer) - // EINTR is okay, the syscall was interrupted before timeout expired. - if err != nil && err != unix.EINTR { - if !w.sendError(fmt.Errorf("fsnotify.readEvents: %w", err)) { - closed = true - } - continue - } - - // Flush the events we received to the Events channel - for _, kevent := range kevents { - var ( - watchfd = int(kevent.Ident) - mask = uint32(kevent.Fflags) - ) - - // Shut down the loop when the pipe is closed, but only after all - // other events have been processed. - if watchfd == w.closepipe[0] { - closed = true - continue - } - - w.mu.Lock() - path := w.paths[watchfd] - w.mu.Unlock() - - event := w.newEvent(path.name, mask) - - if event.Has(Rename) || event.Has(Remove) { - w.remove(event.Name, false) - w.mu.Lock() - delete(w.fileExists, event.Name) - w.mu.Unlock() - } - - if path.isDir && event.Has(Write) && !event.Has(Remove) { - w.sendDirectoryChangeEvents(event.Name) - } else { - if !w.sendEvent(event) { - closed = true - continue - } - } - - if event.Has(Remove) { - // Look for a file that may have overwritten this; for example, - // mv f1 f2 will delete f2, then create f2. - if path.isDir { - fileDir := filepath.Clean(event.Name) - w.mu.Lock() - _, found := w.watches[fileDir] - w.mu.Unlock() - if found { - err := w.sendDirectoryChangeEvents(fileDir) - if err != nil { - if !w.sendError(err) { - closed = true - } - } - } - } else { - filePath := filepath.Clean(event.Name) - if fi, err := os.Lstat(filePath); err == nil { - err := w.sendFileCreatedEventIfNew(filePath, fi) - if err != nil { - if !w.sendError(err) { - closed = true - } - } - } - } - } - } - } -} - -// newEvent returns an platform-independent Event based on kqueue Fflags. -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&unix.NOTE_DELETE == unix.NOTE_DELETE { - e.Op |= Remove - } - if mask&unix.NOTE_WRITE == unix.NOTE_WRITE { - e.Op |= Write - } - if mask&unix.NOTE_RENAME == unix.NOTE_RENAME { - e.Op |= Rename - } - if mask&unix.NOTE_ATTRIB == unix.NOTE_ATTRIB { - e.Op |= Chmod - } - // No point sending a write and delete event at the same time: if it's gone, - // then it's gone. - if e.Op.Has(Write) && e.Op.Has(Remove) { - e.Op &^= Write - } - return e -} - -// watchDirectoryFiles to mimic inotify when adding a watch on a directory -func (w *Watcher) watchDirectoryFiles(dirPath string) error { - // Get all files - files, err := os.ReadDir(dirPath) - if err != nil { - return err - } - - for _, f := range files { - path := filepath.Join(dirPath, f.Name()) - - fi, err := f.Info() - if err != nil { - return fmt.Errorf("%q: %w", path, err) - } - - cleanPath, err := w.internalWatch(path, fi) - if err != nil { - // No permission to read the file; that's not a problem: just skip. - // But do add it to w.fileExists to prevent it from being picked up - // as a "new" file later (it still shows up in the directory - // listing). - switch { - case errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM): - cleanPath = filepath.Clean(path) - default: - return fmt.Errorf("%q: %w", path, err) - } - } - - w.mu.Lock() - w.fileExists[cleanPath] = struct{}{} - w.mu.Unlock() - } - - return nil -} - -// Search the directory for new files and send an event for them. -// -// This functionality is to have the BSD watcher match the inotify, which sends -// a create event for files created in a watched directory. -func (w *Watcher) sendDirectoryChangeEvents(dir string) error { - files, err := os.ReadDir(dir) - if err != nil { - // Directory no longer exists: we can ignore this safely. kqueue will - // still give us the correct events. - if errors.Is(err, os.ErrNotExist) { - return nil - } - return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) - } - - for _, f := range files { - fi, err := f.Info() - if err != nil { - return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) - } - - err = w.sendFileCreatedEventIfNew(filepath.Join(dir, fi.Name()), fi) - if err != nil { - // Don't need to send an error if this file isn't readable. - if errors.Is(err, unix.EACCES) || errors.Is(err, unix.EPERM) { - return nil - } - return fmt.Errorf("fsnotify.sendDirectoryChangeEvents: %w", err) - } - } - return nil -} - -// sendFileCreatedEvent sends a create event if the file isn't already being tracked. -func (w *Watcher) sendFileCreatedEventIfNew(filePath string, fi os.FileInfo) (err error) { - w.mu.Lock() - _, doesExist := w.fileExists[filePath] - w.mu.Unlock() - if !doesExist { - if !w.sendEvent(Event{Name: filePath, Op: Create}) { - return - } - } - - // like watchDirectoryFiles (but without doing another ReadDir) - filePath, err = w.internalWatch(filePath, fi) - if err != nil { - return err - } - - w.mu.Lock() - w.fileExists[filePath] = struct{}{} - w.mu.Unlock() - - return nil -} - -func (w *Watcher) internalWatch(name string, fi os.FileInfo) (string, error) { - if fi.IsDir() { - // mimic Linux providing delete events for subdirectories, but preserve - // the flags used if currently watching subdirectory - w.mu.Lock() - flags := w.dirFlags[name] - w.mu.Unlock() - - flags |= unix.NOTE_DELETE | unix.NOTE_RENAME - return w.addWatch(name, flags) - } - - // watch file to mimic Linux inotify - return w.addWatch(name, noteAllEvents) -} - -// Register events with the queue. -func (w *Watcher) register(fds []int, flags int, fflags uint32) error { - changes := make([]unix.Kevent_t, len(fds)) - for i, fd := range fds { - // SetKevent converts int to the platform-specific types. - unix.SetKevent(&changes[i], fd, unix.EVFILT_VNODE, flags) - changes[i].Fflags = fflags - } - - // Register the events. - success, err := unix.Kevent(w.kq, changes, nil, nil) - if success == -1 { - return err - } - return nil -} - -// read retrieves pending events, or waits until an event occurs. -func (w *Watcher) read(events []unix.Kevent_t) ([]unix.Kevent_t, error) { - n, err := unix.Kevent(w.kq, nil, events, nil) - if err != nil { - return nil, err - } - return events[0:n], nil -} diff --git a/vendor/github.com/fsnotify/fsnotify/backend_other.go b/vendor/github.com/fsnotify/fsnotify/backend_other.go deleted file mode 100644 index d34a23c..0000000 --- a/vendor/github.com/fsnotify/fsnotify/backend_other.go +++ /dev/null @@ -1,205 +0,0 @@ -//go:build appengine || (!darwin && !dragonfly && !freebsd && !openbsd && !linux && !netbsd && !solaris && !windows) -// +build appengine !darwin,!dragonfly,!freebsd,!openbsd,!linux,!netbsd,!solaris,!windows - -// Note: the documentation on the Watcher type and methods is generated from -// mkdoc.zsh - -package fsnotify - -import "errors" - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\path\to\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. - Events chan Event - - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. - Errors chan error -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return nil, errors.New("fsnotify not supported on the current platform") -} - -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -func NewBufferedWatcher(sz uint) (*Watcher, error) { return NewWatcher() } - -// Close removes all watches and closes the Events channel. -func (w *Watcher) Close() error { return nil } - -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) WatchList() []string { return nil } - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -func (w *Watcher) Add(name string) error { return nil } - -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -func (w *Watcher) AddWith(name string, opts ...addOpt) error { return nil } - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) Remove(name string) error { return nil } diff --git a/vendor/github.com/fsnotify/fsnotify/backend_windows.go b/vendor/github.com/fsnotify/fsnotify/backend_windows.go deleted file mode 100644 index 9bc91e5..0000000 --- a/vendor/github.com/fsnotify/fsnotify/backend_windows.go +++ /dev/null @@ -1,827 +0,0 @@ -//go:build windows -// +build windows - -// Windows backend based on ReadDirectoryChangesW() -// -// https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw -// -// Note: the documentation on the Watcher type and methods is generated from -// mkdoc.zsh - -package fsnotify - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "reflect" - "runtime" - "strings" - "sync" - "unsafe" - - "golang.org/x/sys/windows" -) - -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\path\to\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -type Watcher struct { - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. - Events chan Event - - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. - Errors chan error - - port windows.Handle // Handle to completion port - input chan *input // Inputs to the reader are sent on this channel - quit chan chan<- error - - mu sync.Mutex // Protects access to watches, closed - watches watchMap // Map of watches (key: i-number) - closed bool // Set to true when Close() is first called -} - -// NewWatcher creates a new Watcher. -func NewWatcher() (*Watcher, error) { - return NewBufferedWatcher(50) -} - -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -func NewBufferedWatcher(sz uint) (*Watcher, error) { - port, err := windows.CreateIoCompletionPort(windows.InvalidHandle, 0, 0, 0) - if err != nil { - return nil, os.NewSyscallError("CreateIoCompletionPort", err) - } - w := &Watcher{ - port: port, - watches: make(watchMap), - input: make(chan *input, 1), - Events: make(chan Event, sz), - Errors: make(chan error), - quit: make(chan chan<- error, 1), - } - go w.readEvents() - return w, nil -} - -func (w *Watcher) isClosed() bool { - w.mu.Lock() - defer w.mu.Unlock() - return w.closed -} - -func (w *Watcher) sendEvent(name string, mask uint64) bool { - if mask == 0 { - return false - } - - event := w.newEvent(name, uint32(mask)) - select { - case ch := <-w.quit: - w.quit <- ch - case w.Events <- event: - } - return true -} - -// Returns true if the error was sent, or false if watcher is closed. -func (w *Watcher) sendError(err error) bool { - select { - case w.Errors <- err: - return true - case <-w.quit: - } - return false -} - -// Close removes all watches and closes the Events channel. -func (w *Watcher) Close() error { - if w.isClosed() { - return nil - } - - w.mu.Lock() - w.closed = true - w.mu.Unlock() - - // Send "quit" message to the reader goroutine - ch := make(chan error) - w.quit <- ch - if err := w.wakeupReader(); err != nil { - return err - } - return <-ch -} - -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -func (w *Watcher) Add(name string) error { return w.AddWith(name) } - -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -func (w *Watcher) AddWith(name string, opts ...addOpt) error { - if w.isClosed() { - return ErrClosed - } - - with := getOptions(opts...) - if with.bufsize < 4096 { - return fmt.Errorf("fsnotify.WithBufferSize: buffer size cannot be smaller than 4096 bytes") - } - - in := &input{ - op: opAddWatch, - path: filepath.Clean(name), - flags: sysFSALLEVENTS, - reply: make(chan error), - bufsize: with.bufsize, - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) Remove(name string) error { - if w.isClosed() { - return nil - } - - in := &input{ - op: opRemoveWatch, - path: filepath.Clean(name), - reply: make(chan error), - } - w.input <- in - if err := w.wakeupReader(); err != nil { - return err - } - return <-in.reply -} - -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -func (w *Watcher) WatchList() []string { - if w.isClosed() { - return nil - } - - w.mu.Lock() - defer w.mu.Unlock() - - entries := make([]string, 0, len(w.watches)) - for _, entry := range w.watches { - for _, watchEntry := range entry { - entries = append(entries, watchEntry.path) - } - } - - return entries -} - -// These options are from the old golang.org/x/exp/winfsnotify, where you could -// add various options to the watch. This has long since been removed. -// -// The "sys" in the name is misleading as they're not part of any "system". -// -// This should all be removed at some point, and just use windows.FILE_NOTIFY_* -const ( - sysFSALLEVENTS = 0xfff - sysFSCREATE = 0x100 - sysFSDELETE = 0x200 - sysFSDELETESELF = 0x400 - sysFSMODIFY = 0x2 - sysFSMOVE = 0xc0 - sysFSMOVEDFROM = 0x40 - sysFSMOVEDTO = 0x80 - sysFSMOVESELF = 0x800 - sysFSIGNORED = 0x8000 -) - -func (w *Watcher) newEvent(name string, mask uint32) Event { - e := Event{Name: name} - if mask&sysFSCREATE == sysFSCREATE || mask&sysFSMOVEDTO == sysFSMOVEDTO { - e.Op |= Create - } - if mask&sysFSDELETE == sysFSDELETE || mask&sysFSDELETESELF == sysFSDELETESELF { - e.Op |= Remove - } - if mask&sysFSMODIFY == sysFSMODIFY { - e.Op |= Write - } - if mask&sysFSMOVE == sysFSMOVE || mask&sysFSMOVESELF == sysFSMOVESELF || mask&sysFSMOVEDFROM == sysFSMOVEDFROM { - e.Op |= Rename - } - return e -} - -const ( - opAddWatch = iota - opRemoveWatch -) - -const ( - provisional uint64 = 1 << (32 + iota) -) - -type input struct { - op int - path string - flags uint32 - bufsize int - reply chan error -} - -type inode struct { - handle windows.Handle - volume uint32 - index uint64 -} - -type watch struct { - ov windows.Overlapped - ino *inode // i-number - recurse bool // Recursive watch? - path string // Directory path - mask uint64 // Directory itself is being watched with these notify flags - names map[string]uint64 // Map of names being watched and their notify flags - rename string // Remembers the old name while renaming a file - buf []byte // buffer, allocated later -} - -type ( - indexMap map[uint64]*watch - watchMap map[uint32]indexMap -) - -func (w *Watcher) wakeupReader() error { - err := windows.PostQueuedCompletionStatus(w.port, 0, 0, nil) - if err != nil { - return os.NewSyscallError("PostQueuedCompletionStatus", err) - } - return nil -} - -func (w *Watcher) getDir(pathname string) (dir string, err error) { - attr, err := windows.GetFileAttributes(windows.StringToUTF16Ptr(pathname)) - if err != nil { - return "", os.NewSyscallError("GetFileAttributes", err) - } - if attr&windows.FILE_ATTRIBUTE_DIRECTORY != 0 { - dir = pathname - } else { - dir, _ = filepath.Split(pathname) - dir = filepath.Clean(dir) - } - return -} - -func (w *Watcher) getIno(path string) (ino *inode, err error) { - h, err := windows.CreateFile(windows.StringToUTF16Ptr(path), - windows.FILE_LIST_DIRECTORY, - windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE|windows.FILE_SHARE_DELETE, - nil, windows.OPEN_EXISTING, - windows.FILE_FLAG_BACKUP_SEMANTICS|windows.FILE_FLAG_OVERLAPPED, 0) - if err != nil { - return nil, os.NewSyscallError("CreateFile", err) - } - - var fi windows.ByHandleFileInformation - err = windows.GetFileInformationByHandle(h, &fi) - if err != nil { - windows.CloseHandle(h) - return nil, os.NewSyscallError("GetFileInformationByHandle", err) - } - ino = &inode{ - handle: h, - volume: fi.VolumeSerialNumber, - index: uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow), - } - return ino, nil -} - -// Must run within the I/O thread. -func (m watchMap) get(ino *inode) *watch { - if i := m[ino.volume]; i != nil { - return i[ino.index] - } - return nil -} - -// Must run within the I/O thread. -func (m watchMap) set(ino *inode, watch *watch) { - i := m[ino.volume] - if i == nil { - i = make(indexMap) - m[ino.volume] = i - } - i[ino.index] = watch -} - -// Must run within the I/O thread. -func (w *Watcher) addWatch(pathname string, flags uint64, bufsize int) error { - //pathname, recurse := recursivePath(pathname) - recurse := false - - dir, err := w.getDir(pathname) - if err != nil { - return err - } - - ino, err := w.getIno(dir) - if err != nil { - return err - } - w.mu.Lock() - watchEntry := w.watches.get(ino) - w.mu.Unlock() - if watchEntry == nil { - _, err := windows.CreateIoCompletionPort(ino.handle, w.port, 0, 0) - if err != nil { - windows.CloseHandle(ino.handle) - return os.NewSyscallError("CreateIoCompletionPort", err) - } - watchEntry = &watch{ - ino: ino, - path: dir, - names: make(map[string]uint64), - recurse: recurse, - buf: make([]byte, bufsize), - } - w.mu.Lock() - w.watches.set(ino, watchEntry) - w.mu.Unlock() - flags |= provisional - } else { - windows.CloseHandle(ino.handle) - } - if pathname == dir { - watchEntry.mask |= flags - } else { - watchEntry.names[filepath.Base(pathname)] |= flags - } - - err = w.startRead(watchEntry) - if err != nil { - return err - } - - if pathname == dir { - watchEntry.mask &= ^provisional - } else { - watchEntry.names[filepath.Base(pathname)] &= ^provisional - } - return nil -} - -// Must run within the I/O thread. -func (w *Watcher) remWatch(pathname string) error { - pathname, recurse := recursivePath(pathname) - - dir, err := w.getDir(pathname) - if err != nil { - return err - } - ino, err := w.getIno(dir) - if err != nil { - return err - } - - w.mu.Lock() - watch := w.watches.get(ino) - w.mu.Unlock() - - if recurse && !watch.recurse { - return fmt.Errorf("can't use \\... with non-recursive watch %q", pathname) - } - - err = windows.CloseHandle(ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CloseHandle", err)) - } - if watch == nil { - return fmt.Errorf("%w: %s", ErrNonExistentWatch, pathname) - } - if pathname == dir { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - watch.mask = 0 - } else { - name := filepath.Base(pathname) - w.sendEvent(filepath.Join(watch.path, name), watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - - return w.startRead(watch) -} - -// Must run within the I/O thread. -func (w *Watcher) deleteWatch(watch *watch) { - for name, mask := range watch.names { - if mask&provisional == 0 { - w.sendEvent(filepath.Join(watch.path, name), mask&sysFSIGNORED) - } - delete(watch.names, name) - } - if watch.mask != 0 { - if watch.mask&provisional == 0 { - w.sendEvent(watch.path, watch.mask&sysFSIGNORED) - } - watch.mask = 0 - } -} - -// Must run within the I/O thread. -func (w *Watcher) startRead(watch *watch) error { - err := windows.CancelIo(watch.ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CancelIo", err)) - w.deleteWatch(watch) - } - mask := w.toWindowsFlags(watch.mask) - for _, m := range watch.names { - mask |= w.toWindowsFlags(m) - } - if mask == 0 { - err := windows.CloseHandle(watch.ino.handle) - if err != nil { - w.sendError(os.NewSyscallError("CloseHandle", err)) - } - w.mu.Lock() - delete(w.watches[watch.ino.volume], watch.ino.index) - w.mu.Unlock() - return nil - } - - // We need to pass the array, rather than the slice. - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&watch.buf)) - rdErr := windows.ReadDirectoryChanges(watch.ino.handle, - (*byte)(unsafe.Pointer(hdr.Data)), uint32(hdr.Len), - watch.recurse, mask, nil, &watch.ov, 0) - if rdErr != nil { - err := os.NewSyscallError("ReadDirectoryChanges", rdErr) - if rdErr == windows.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 { - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - err = nil - } - w.deleteWatch(watch) - w.startRead(watch) - return err - } - return nil -} - -// readEvents reads from the I/O completion port, converts the -// received events into Event objects and sends them via the Events channel. -// Entry point to the I/O thread. -func (w *Watcher) readEvents() { - var ( - n uint32 - key uintptr - ov *windows.Overlapped - ) - runtime.LockOSThread() - - for { - // This error is handled after the watch == nil check below. - qErr := windows.GetQueuedCompletionStatus(w.port, &n, &key, &ov, windows.INFINITE) - - watch := (*watch)(unsafe.Pointer(ov)) - if watch == nil { - select { - case ch := <-w.quit: - w.mu.Lock() - var indexes []indexMap - for _, index := range w.watches { - indexes = append(indexes, index) - } - w.mu.Unlock() - for _, index := range indexes { - for _, watch := range index { - w.deleteWatch(watch) - w.startRead(watch) - } - } - - err := windows.CloseHandle(w.port) - if err != nil { - err = os.NewSyscallError("CloseHandle", err) - } - close(w.Events) - close(w.Errors) - ch <- err - return - case in := <-w.input: - switch in.op { - case opAddWatch: - in.reply <- w.addWatch(in.path, uint64(in.flags), in.bufsize) - case opRemoveWatch: - in.reply <- w.remWatch(in.path) - } - default: - } - continue - } - - switch qErr { - case nil: - // No error - case windows.ERROR_MORE_DATA: - if watch == nil { - w.sendError(errors.New("ERROR_MORE_DATA has unexpectedly null lpOverlapped buffer")) - } else { - // The i/o succeeded but the buffer is full. - // In theory we should be building up a full packet. - // In practice we can get away with just carrying on. - n = uint32(unsafe.Sizeof(watch.buf)) - } - case windows.ERROR_ACCESS_DENIED: - // Watched directory was probably removed - w.sendEvent(watch.path, watch.mask&sysFSDELETESELF) - w.deleteWatch(watch) - w.startRead(watch) - continue - case windows.ERROR_OPERATION_ABORTED: - // CancelIo was called on this handle - continue - default: - w.sendError(os.NewSyscallError("GetQueuedCompletionPort", qErr)) - continue - } - - var offset uint32 - for { - if n == 0 { - w.sendError(ErrEventOverflow) - break - } - - // Point "raw" to the event in the buffer - raw := (*windows.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset])) - - // Create a buf that is the size of the path name - size := int(raw.FileNameLength / 2) - var buf []uint16 - // TODO: Use unsafe.Slice in Go 1.17; https://stackoverflow.com/questions/51187973 - sh := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) - sh.Data = uintptr(unsafe.Pointer(&raw.FileName)) - sh.Len = size - sh.Cap = size - name := windows.UTF16ToString(buf) - fullname := filepath.Join(watch.path, name) - - var mask uint64 - switch raw.Action { - case windows.FILE_ACTION_REMOVED: - mask = sysFSDELETESELF - case windows.FILE_ACTION_MODIFIED: - mask = sysFSMODIFY - case windows.FILE_ACTION_RENAMED_OLD_NAME: - watch.rename = name - case windows.FILE_ACTION_RENAMED_NEW_NAME: - // Update saved path of all sub-watches. - old := filepath.Join(watch.path, watch.rename) - w.mu.Lock() - for _, watchMap := range w.watches { - for _, ww := range watchMap { - if strings.HasPrefix(ww.path, old) { - ww.path = filepath.Join(fullname, strings.TrimPrefix(ww.path, old)) - } - } - } - w.mu.Unlock() - - if watch.names[watch.rename] != 0 { - watch.names[name] |= watch.names[watch.rename] - delete(watch.names, watch.rename) - mask = sysFSMOVESELF - } - } - - sendNameEvent := func() { - w.sendEvent(fullname, watch.names[name]&mask) - } - if raw.Action != windows.FILE_ACTION_RENAMED_NEW_NAME { - sendNameEvent() - } - if raw.Action == windows.FILE_ACTION_REMOVED { - w.sendEvent(fullname, watch.names[name]&sysFSIGNORED) - delete(watch.names, name) - } - - w.sendEvent(fullname, watch.mask&w.toFSnotifyFlags(raw.Action)) - if raw.Action == windows.FILE_ACTION_RENAMED_NEW_NAME { - fullname = filepath.Join(watch.path, watch.rename) - sendNameEvent() - } - - // Move to the next event in the buffer - if raw.NextEntryOffset == 0 { - break - } - offset += raw.NextEntryOffset - - // Error! - if offset >= n { - //lint:ignore ST1005 Windows should be capitalized - w.sendError(errors.New( - "Windows system assumed buffer larger than it is, events have likely been missed")) - break - } - } - - if err := w.startRead(watch); err != nil { - w.sendError(err) - } - } -} - -func (w *Watcher) toWindowsFlags(mask uint64) uint32 { - var m uint32 - if mask&sysFSMODIFY != 0 { - m |= windows.FILE_NOTIFY_CHANGE_LAST_WRITE - } - if mask&(sysFSMOVE|sysFSCREATE|sysFSDELETE) != 0 { - m |= windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME - } - return m -} - -func (w *Watcher) toFSnotifyFlags(action uint32) uint64 { - switch action { - case windows.FILE_ACTION_ADDED: - return sysFSCREATE - case windows.FILE_ACTION_REMOVED: - return sysFSDELETE - case windows.FILE_ACTION_MODIFIED: - return sysFSMODIFY - case windows.FILE_ACTION_RENAMED_OLD_NAME: - return sysFSMOVEDFROM - case windows.FILE_ACTION_RENAMED_NEW_NAME: - return sysFSMOVEDTO - } - return 0 -} diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go deleted file mode 100644 index 24c99cc..0000000 --- a/vendor/github.com/fsnotify/fsnotify/fsnotify.go +++ /dev/null @@ -1,146 +0,0 @@ -// Package fsnotify provides a cross-platform interface for file system -// notifications. -// -// Currently supported systems: -// -// Linux 2.6.32+ via inotify -// BSD, macOS via kqueue -// Windows via ReadDirectoryChangesW -// illumos via FEN -package fsnotify - -import ( - "errors" - "fmt" - "path/filepath" - "strings" -) - -// Event represents a file system notification. -type Event struct { - // Path to the file or directory. - // - // Paths are relative to the input; for example with Add("dir") the Name - // will be set to "dir/file" if you create that file, but if you use - // Add("/path/to/dir") it will be "/path/to/dir/file". - Name string - - // File operation that triggered the event. - // - // This is a bitmask and some systems may send multiple operations at once. - // Use the Event.Has() method instead of comparing with ==. - Op Op -} - -// Op describes a set of file operations. -type Op uint32 - -// The operations fsnotify can trigger; see the documentation on [Watcher] for a -// full description, and check them with [Event.Has]. -const ( - // A new pathname was created. - Create Op = 1 << iota - - // The pathname was written to; this does *not* mean the write has finished, - // and a write can be followed by more writes. - Write - - // The path was removed; any watches on it will be removed. Some "remove" - // operations may trigger a Rename if the file is actually moved (for - // example "remove to trash" is often a rename). - Remove - - // The path was renamed to something else; any watched on it will be - // removed. - Rename - - // File attributes were changed. - // - // It's generally not recommended to take action on this event, as it may - // get triggered very frequently by some software. For example, Spotlight - // indexing on macOS, anti-virus software, backup software, etc. - Chmod -) - -// Common errors that can be reported. -var ( - ErrNonExistentWatch = errors.New("fsnotify: can't remove non-existent watch") - ErrEventOverflow = errors.New("fsnotify: queue or buffer overflow") - ErrClosed = errors.New("fsnotify: watcher already closed") -) - -func (o Op) String() string { - var b strings.Builder - if o.Has(Create) { - b.WriteString("|CREATE") - } - if o.Has(Remove) { - b.WriteString("|REMOVE") - } - if o.Has(Write) { - b.WriteString("|WRITE") - } - if o.Has(Rename) { - b.WriteString("|RENAME") - } - if o.Has(Chmod) { - b.WriteString("|CHMOD") - } - if b.Len() == 0 { - return "[no events]" - } - return b.String()[1:] -} - -// Has reports if this operation has the given operation. -func (o Op) Has(h Op) bool { return o&h != 0 } - -// Has reports if this event has the given operation. -func (e Event) Has(op Op) bool { return e.Op.Has(op) } - -// String returns a string representation of the event with their path. -func (e Event) String() string { - return fmt.Sprintf("%-13s %q", e.Op.String(), e.Name) -} - -type ( - addOpt func(opt *withOpts) - withOpts struct { - bufsize int - } -) - -var defaultOpts = withOpts{ - bufsize: 65536, // 64K -} - -func getOptions(opts ...addOpt) withOpts { - with := defaultOpts - for _, o := range opts { - o(&with) - } - return with -} - -// WithBufferSize sets the [ReadDirectoryChangesW] buffer size. -// -// This only has effect on Windows systems, and is a no-op for other backends. -// -// The default value is 64K (65536 bytes) which is the highest value that works -// on all filesystems and should be enough for most applications, but if you -// have a large burst of events it may not be enough. You can increase it if -// you're hitting "queue or buffer overflow" errors ([ErrEventOverflow]). -// -// [ReadDirectoryChangesW]: https://learn.microsoft.com/en-gb/windows/win32/api/winbase/nf-winbase-readdirectorychangesw -func WithBufferSize(bytes int) addOpt { - return func(opt *withOpts) { opt.bufsize = bytes } -} - -// Check if this path is recursive (ends with "/..." or "\..."), and return the -// path with the /... stripped. -func recursivePath(path string) (string, bool) { - if filepath.Base(path) == "..." { - return filepath.Dir(path), true - } - return path, false -} diff --git a/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh b/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh deleted file mode 100644 index 99012ae..0000000 --- a/vendor/github.com/fsnotify/fsnotify/mkdoc.zsh +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env zsh -[ "${ZSH_VERSION:-}" = "" ] && echo >&2 "Only works with zsh" && exit 1 -setopt err_exit no_unset pipefail extended_glob - -# Simple script to update the godoc comments on all watchers so you don't need -# to update the same comment 5 times. - -watcher=$(<<EOF -// Watcher watches a set of paths, delivering events on a channel. -// -// A watcher should not be copied (e.g. pass it by pointer, rather than by -// value). -// -// # Linux notes -// -// When a file is removed a Remove event won't be emitted until all file -// descriptors are closed, and deletes will always emit a Chmod. For example: -// -// fp := os.Open("file") -// os.Remove("file") // Triggers Chmod -// fp.Close() // Triggers Remove -// -// This is the event that inotify sends, so not much can be changed about this. -// -// The fs.inotify.max_user_watches sysctl variable specifies the upper limit -// for the number of watches per user, and fs.inotify.max_user_instances -// specifies the maximum number of inotify instances per user. Every Watcher you -// create is an "instance", and every path you add is a "watch". -// -// These are also exposed in /proc as /proc/sys/fs/inotify/max_user_watches and -// /proc/sys/fs/inotify/max_user_instances -// -// To increase them you can use sysctl or write the value to the /proc file: -// -// # Default values on Linux 5.18 -// sysctl fs.inotify.max_user_watches=124983 -// sysctl fs.inotify.max_user_instances=128 -// -// To make the changes persist on reboot edit /etc/sysctl.conf or -// /usr/lib/sysctl.d/50-default.conf (details differ per Linux distro; check -// your distro's documentation): -// -// fs.inotify.max_user_watches=124983 -// fs.inotify.max_user_instances=128 -// -// Reaching the limit will result in a "no space left on device" or "too many open -// files" error. -// -// # kqueue notes (macOS, BSD) -// -// kqueue requires opening a file descriptor for every file that's being watched; -// so if you're watching a directory with five files then that's six file -// descriptors. You will run in to your system's "max open files" limit faster on -// these platforms. -// -// The sysctl variables kern.maxfiles and kern.maxfilesperproc can be used to -// control the maximum number of open files, as well as /etc/login.conf on BSD -// systems. -// -// # Windows notes -// -// Paths can be added as "C:\\path\\to\\dir", but forward slashes -// ("C:/path/to/dir") will also work. -// -// When a watched directory is removed it will always send an event for the -// directory itself, but may not send events for all files in that directory. -// Sometimes it will send events for all times, sometimes it will send no -// events, and often only for some files. -// -// The default ReadDirectoryChangesW() buffer size is 64K, which is the largest -// value that is guaranteed to work with SMB filesystems. If you have many -// events in quick succession this may not be enough, and you will have to use -// [WithBufferSize] to increase the value. -EOF -) - -new=$(<<EOF -// NewWatcher creates a new Watcher. -EOF -) - -newbuffered=$(<<EOF -// NewBufferedWatcher creates a new Watcher with a buffered Watcher.Events -// channel. -// -// The main use case for this is situations with a very large number of events -// where the kernel buffer size can't be increased (e.g. due to lack of -// permissions). An unbuffered Watcher will perform better for almost all use -// cases, and whenever possible you will be better off increasing the kernel -// buffers instead of adding a large userspace buffer. -EOF -) - -add=$(<<EOF -// Add starts monitoring the path for changes. -// -// A path can only be watched once; watching it more than once is a no-op and will -// not return an error. Paths that do not yet exist on the filesystem cannot be -// watched. -// -// A watch will be automatically removed if the watched path is deleted or -// renamed. The exception is the Windows backend, which doesn't remove the -// watcher on renames. -// -// Notifications on network filesystems (NFS, SMB, FUSE, etc.) or special -// filesystems (/proc, /sys, etc.) generally don't work. -// -// Returns [ErrClosed] if [Watcher.Close] was called. -// -// See [Watcher.AddWith] for a version that allows adding options. -// -// # Watching directories -// -// All files in a directory are monitored, including new files that are created -// after the watcher is started. Subdirectories are not watched (i.e. it's -// non-recursive). -// -// # Watching files -// -// Watching individual files (rather than directories) is generally not -// recommended as many programs (especially editors) update files atomically: it -// will write to a temporary file which is then moved to to destination, -// overwriting the original (or some variant thereof). The watcher on the -// original file is now lost, as that no longer exists. -// -// The upshot of this is that a power failure or crash won't leave a -// half-written file. -// -// Watch the parent directory and use Event.Name to filter out files you're not -// interested in. There is an example of this in cmd/fsnotify/file.go. -EOF -) - -addwith=$(<<EOF -// AddWith is like [Watcher.Add], but allows adding options. When using Add() -// the defaults described below are used. -// -// Possible options are: -// -// - [WithBufferSize] sets the buffer size for the Windows backend; no-op on -// other platforms. The default is 64K (65536 bytes). -EOF -) - -remove=$(<<EOF -// Remove stops monitoring the path for changes. -// -// Directories are always removed non-recursively. For example, if you added -// /tmp/dir and /tmp/dir/subdir then you will need to remove both. -// -// Removing a path that has not yet been added returns [ErrNonExistentWatch]. -// -// Returns nil if [Watcher.Close] was called. -EOF -) - -close=$(<<EOF -// Close removes all watches and closes the Events channel. -EOF -) - -watchlist=$(<<EOF -// WatchList returns all paths explicitly added with [Watcher.Add] (and are not -// yet removed). -// -// Returns nil if [Watcher.Close] was called. -EOF -) - -events=$(<<EOF - // Events sends the filesystem change events. - // - // fsnotify can send the following events; a "path" here can refer to a - // file, directory, symbolic link, or special file like a FIFO. - // - // fsnotify.Create A new path was created; this may be followed by one - // or more Write events if data also gets written to a - // file. - // - // fsnotify.Remove A path was removed. - // - // fsnotify.Rename A path was renamed. A rename is always sent with the - // old path as Event.Name, and a Create event will be - // sent with the new name. Renames are only sent for - // paths that are currently watched; e.g. moving an - // unmonitored file into a monitored directory will - // show up as just a Create. Similarly, renaming a file - // to outside a monitored directory will show up as - // only a Rename. - // - // fsnotify.Write A file or named pipe was written to. A Truncate will - // also trigger a Write. A single "write action" - // initiated by the user may show up as one or multiple - // writes, depending on when the system syncs things to - // disk. For example when compiling a large Go program - // you may get hundreds of Write events, and you may - // want to wait until you've stopped receiving them - // (see the dedup example in cmd/fsnotify). - // - // Some systems may send Write event for directories - // when the directory content changes. - // - // fsnotify.Chmod Attributes were changed. On Linux this is also sent - // when a file is removed (or more accurately, when a - // link to an inode is removed). On kqueue it's sent - // when a file is truncated. On Windows it's never - // sent. -EOF -) - -errors=$(<<EOF - // Errors sends any errors. - // - // ErrEventOverflow is used to indicate there are too many events: - // - // - inotify: There are too many queued events (fs.inotify.max_queued_events sysctl) - // - windows: The buffer size is too small; WithBufferSize() can be used to increase it. - // - kqueue, fen: Not used. -EOF -) - -set-cmt() { - local pat=$1 - local cmt=$2 - - IFS=$'\n' local files=($(grep -n $pat backend_*~*_test.go)) - for f in $files; do - IFS=':' local fields=($=f) - local file=$fields[1] - local end=$(( $fields[2] - 1 )) - - # Find start of comment. - local start=0 - IFS=$'\n' local lines=($(head -n$end $file)) - for (( i = 1; i <= $#lines; i++ )); do - local line=$lines[-$i] - if ! grep -q '^[[:space:]]*//' <<<$line; then - start=$(( end - (i - 2) )) - break - fi - done - - head -n $(( start - 1 )) $file >/tmp/x - print -r -- $cmt >>/tmp/x - tail -n+$(( end + 1 )) $file >>/tmp/x - mv /tmp/x $file - done -} - -set-cmt '^type Watcher struct ' $watcher -set-cmt '^func NewWatcher(' $new -set-cmt '^func NewBufferedWatcher(' $newbuffered -set-cmt '^func (w \*Watcher) Add(' $add -set-cmt '^func (w \*Watcher) AddWith(' $addwith -set-cmt '^func (w \*Watcher) Remove(' $remove -set-cmt '^func (w \*Watcher) Close(' $close -set-cmt '^func (w \*Watcher) WatchList(' $watchlist -set-cmt '^[[:space:]]*Events *chan Event$' $events -set-cmt '^[[:space:]]*Errors *chan error$' $errors diff --git a/vendor/github.com/fsnotify/fsnotify/system_bsd.go b/vendor/github.com/fsnotify/fsnotify/system_bsd.go deleted file mode 100644 index 4322b0b..0000000 --- a/vendor/github.com/fsnotify/fsnotify/system_bsd.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build freebsd || openbsd || netbsd || dragonfly -// +build freebsd openbsd netbsd dragonfly - -package fsnotify - -import "golang.org/x/sys/unix" - -const openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/fsnotify/fsnotify/system_darwin.go b/vendor/github.com/fsnotify/fsnotify/system_darwin.go deleted file mode 100644 index 5da5ffa..0000000 --- a/vendor/github.com/fsnotify/fsnotify/system_darwin.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build darwin -// +build darwin - -package fsnotify - -import "golang.org/x/sys/unix" - -// note: this constant is not defined on BSD -const openMode = unix.O_EVTONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/mattn/go-colorable/LICENSE b/vendor/github.com/mattn/go-colorable/LICENSE deleted file mode 100644 index 91b5cef..0000000 --- a/vendor/github.com/mattn/go-colorable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Yasuhiro Matsumoto - -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/mattn/go-colorable/README.md b/vendor/github.com/mattn/go-colorable/README.md deleted file mode 100644 index ca04837..0000000 --- a/vendor/github.com/mattn/go-colorable/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# go-colorable - -[![Build Status](https://github.com/mattn/go-colorable/workflows/test/badge.svg)](https://github.com/mattn/go-colorable/actions?query=workflow%3Atest) -[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable) -[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable) -[![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable) - -Colorable writer for windows. - -For example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.) -This package is possible to handle escape sequence for ansi color on windows. - -## Too Bad! - -![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/bad.png) - - -## So Good! - -![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/good.png) - -## Usage - -```go -logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) -logrus.SetOutput(colorable.NewColorableStdout()) - -logrus.Info("succeeded") -logrus.Warn("not correct") -logrus.Error("something error") -logrus.Fatal("panic") -``` - -You can compile above code on non-windows OSs. - -## Installation - -``` -$ go get github.com/mattn/go-colorable -``` - -# License - -MIT - -# Author - -Yasuhiro Matsumoto (a.k.a mattn) diff --git a/vendor/github.com/mattn/go-colorable/colorable_appengine.go b/vendor/github.com/mattn/go-colorable/colorable_appengine.go deleted file mode 100644 index 416d1bb..0000000 --- a/vendor/github.com/mattn/go-colorable/colorable_appengine.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build appengine -// +build appengine - -package colorable - -import ( - "io" - "os" - - _ "github.com/mattn/go-isatty" -) - -// NewColorable returns new instance of Writer which handles escape sequence. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - return file -} - -// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. -func NewColorableStdout() io.Writer { - return os.Stdout -} - -// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. -func NewColorableStderr() io.Writer { - return os.Stderr -} - -// EnableColorsStdout enable colors if possible. -func EnableColorsStdout(enabled *bool) func() { - if enabled != nil { - *enabled = true - } - return func() {} -} diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go deleted file mode 100644 index 766d946..0000000 --- a/vendor/github.com/mattn/go-colorable/colorable_others.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build !windows && !appengine -// +build !windows,!appengine - -package colorable - -import ( - "io" - "os" - - _ "github.com/mattn/go-isatty" -) - -// NewColorable returns new instance of Writer which handles escape sequence. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - return file -} - -// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. -func NewColorableStdout() io.Writer { - return os.Stdout -} - -// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. -func NewColorableStderr() io.Writer { - return os.Stderr -} - -// EnableColorsStdout enable colors if possible. -func EnableColorsStdout(enabled *bool) func() { - if enabled != nil { - *enabled = true - } - return func() {} -} diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go deleted file mode 100644 index 1846ad5..0000000 --- a/vendor/github.com/mattn/go-colorable/colorable_windows.go +++ /dev/null @@ -1,1047 +0,0 @@ -//go:build windows && !appengine -// +build windows,!appengine - -package colorable - -import ( - "bytes" - "io" - "math" - "os" - "strconv" - "strings" - "sync" - "syscall" - "unsafe" - - "github.com/mattn/go-isatty" -) - -const ( - foregroundBlue = 0x1 - foregroundGreen = 0x2 - foregroundRed = 0x4 - foregroundIntensity = 0x8 - foregroundMask = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity) - backgroundBlue = 0x10 - backgroundGreen = 0x20 - backgroundRed = 0x40 - backgroundIntensity = 0x80 - backgroundMask = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity) - commonLvbUnderscore = 0x8000 - - cENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 -) - -const ( - genericRead = 0x80000000 - genericWrite = 0x40000000 -) - -const ( - consoleTextmodeBuffer = 0x1 -) - -type wchar uint16 -type short int16 -type dword uint32 -type word uint16 - -type coord struct { - x short - y short -} - -type smallRect struct { - left short - top short - right short - bottom short -} - -type consoleScreenBufferInfo struct { - size coord - cursorPosition coord - attributes word - window smallRect - maximumWindowSize coord -} - -type consoleCursorInfo struct { - size dword - visible int32 -} - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") - procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute") - procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") - procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW") - procFillConsoleOutputAttribute = kernel32.NewProc("FillConsoleOutputAttribute") - procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo") - procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo") - procSetConsoleTitle = kernel32.NewProc("SetConsoleTitleW") - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procSetConsoleMode = kernel32.NewProc("SetConsoleMode") - procCreateConsoleScreenBuffer = kernel32.NewProc("CreateConsoleScreenBuffer") -) - -// Writer provides colorable Writer to the console -type Writer struct { - out io.Writer - handle syscall.Handle - althandle syscall.Handle - oldattr word - oldpos coord - rest bytes.Buffer - mutex sync.Mutex -} - -// NewColorable returns new instance of Writer which handles escape sequence from File. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - if isatty.IsTerminal(file.Fd()) { - var mode uint32 - if r, _, _ := procGetConsoleMode.Call(file.Fd(), uintptr(unsafe.Pointer(&mode))); r != 0 && mode&cENABLE_VIRTUAL_TERMINAL_PROCESSING != 0 { - return file - } - var csbi consoleScreenBufferInfo - handle := syscall.Handle(file.Fd()) - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - return &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}} - } - return file -} - -// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. -func NewColorableStdout() io.Writer { - return NewColorable(os.Stdout) -} - -// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. -func NewColorableStderr() io.Writer { - return NewColorable(os.Stderr) -} - -var color256 = map[int]int{ - 0: 0x000000, - 1: 0x800000, - 2: 0x008000, - 3: 0x808000, - 4: 0x000080, - 5: 0x800080, - 6: 0x008080, - 7: 0xc0c0c0, - 8: 0x808080, - 9: 0xff0000, - 10: 0x00ff00, - 11: 0xffff00, - 12: 0x0000ff, - 13: 0xff00ff, - 14: 0x00ffff, - 15: 0xffffff, - 16: 0x000000, - 17: 0x00005f, - 18: 0x000087, - 19: 0x0000af, - 20: 0x0000d7, - 21: 0x0000ff, - 22: 0x005f00, - 23: 0x005f5f, - 24: 0x005f87, - 25: 0x005faf, - 26: 0x005fd7, - 27: 0x005fff, - 28: 0x008700, - 29: 0x00875f, - 30: 0x008787, - 31: 0x0087af, - 32: 0x0087d7, - 33: 0x0087ff, - 34: 0x00af00, - 35: 0x00af5f, - 36: 0x00af87, - 37: 0x00afaf, - 38: 0x00afd7, - 39: 0x00afff, - 40: 0x00d700, - 41: 0x00d75f, - 42: 0x00d787, - 43: 0x00d7af, - 44: 0x00d7d7, - 45: 0x00d7ff, - 46: 0x00ff00, - 47: 0x00ff5f, - 48: 0x00ff87, - 49: 0x00ffaf, - 50: 0x00ffd7, - 51: 0x00ffff, - 52: 0x5f0000, - 53: 0x5f005f, - 54: 0x5f0087, - 55: 0x5f00af, - 56: 0x5f00d7, - 57: 0x5f00ff, - 58: 0x5f5f00, - 59: 0x5f5f5f, - 60: 0x5f5f87, - 61: 0x5f5faf, - 62: 0x5f5fd7, - 63: 0x5f5fff, - 64: 0x5f8700, - 65: 0x5f875f, - 66: 0x5f8787, - 67: 0x5f87af, - 68: 0x5f87d7, - 69: 0x5f87ff, - 70: 0x5faf00, - 71: 0x5faf5f, - 72: 0x5faf87, - 73: 0x5fafaf, - 74: 0x5fafd7, - 75: 0x5fafff, - 76: 0x5fd700, - 77: 0x5fd75f, - 78: 0x5fd787, - 79: 0x5fd7af, - 80: 0x5fd7d7, - 81: 0x5fd7ff, - 82: 0x5fff00, - 83: 0x5fff5f, - 84: 0x5fff87, - 85: 0x5fffaf, - 86: 0x5fffd7, - 87: 0x5fffff, - 88: 0x870000, - 89: 0x87005f, - 90: 0x870087, - 91: 0x8700af, - 92: 0x8700d7, - 93: 0x8700ff, - 94: 0x875f00, - 95: 0x875f5f, - 96: 0x875f87, - 97: 0x875faf, - 98: 0x875fd7, - 99: 0x875fff, - 100: 0x878700, - 101: 0x87875f, - 102: 0x878787, - 103: 0x8787af, - 104: 0x8787d7, - 105: 0x8787ff, - 106: 0x87af00, - 107: 0x87af5f, - 108: 0x87af87, - 109: 0x87afaf, - 110: 0x87afd7, - 111: 0x87afff, - 112: 0x87d700, - 113: 0x87d75f, - 114: 0x87d787, - 115: 0x87d7af, - 116: 0x87d7d7, - 117: 0x87d7ff, - 118: 0x87ff00, - 119: 0x87ff5f, - 120: 0x87ff87, - 121: 0x87ffaf, - 122: 0x87ffd7, - 123: 0x87ffff, - 124: 0xaf0000, - 125: 0xaf005f, - 126: 0xaf0087, - 127: 0xaf00af, - 128: 0xaf00d7, - 129: 0xaf00ff, - 130: 0xaf5f00, - 131: 0xaf5f5f, - 132: 0xaf5f87, - 133: 0xaf5faf, - 134: 0xaf5fd7, - 135: 0xaf5fff, - 136: 0xaf8700, - 137: 0xaf875f, - 138: 0xaf8787, - 139: 0xaf87af, - 140: 0xaf87d7, - 141: 0xaf87ff, - 142: 0xafaf00, - 143: 0xafaf5f, - 144: 0xafaf87, - 145: 0xafafaf, - 146: 0xafafd7, - 147: 0xafafff, - 148: 0xafd700, - 149: 0xafd75f, - 150: 0xafd787, - 151: 0xafd7af, - 152: 0xafd7d7, - 153: 0xafd7ff, - 154: 0xafff00, - 155: 0xafff5f, - 156: 0xafff87, - 157: 0xafffaf, - 158: 0xafffd7, - 159: 0xafffff, - 160: 0xd70000, - 161: 0xd7005f, - 162: 0xd70087, - 163: 0xd700af, - 164: 0xd700d7, - 165: 0xd700ff, - 166: 0xd75f00, - 167: 0xd75f5f, - 168: 0xd75f87, - 169: 0xd75faf, - 170: 0xd75fd7, - 171: 0xd75fff, - 172: 0xd78700, - 173: 0xd7875f, - 174: 0xd78787, - 175: 0xd787af, - 176: 0xd787d7, - 177: 0xd787ff, - 178: 0xd7af00, - 179: 0xd7af5f, - 180: 0xd7af87, - 181: 0xd7afaf, - 182: 0xd7afd7, - 183: 0xd7afff, - 184: 0xd7d700, - 185: 0xd7d75f, - 186: 0xd7d787, - 187: 0xd7d7af, - 188: 0xd7d7d7, - 189: 0xd7d7ff, - 190: 0xd7ff00, - 191: 0xd7ff5f, - 192: 0xd7ff87, - 193: 0xd7ffaf, - 194: 0xd7ffd7, - 195: 0xd7ffff, - 196: 0xff0000, - 197: 0xff005f, - 198: 0xff0087, - 199: 0xff00af, - 200: 0xff00d7, - 201: 0xff00ff, - 202: 0xff5f00, - 203: 0xff5f5f, - 204: 0xff5f87, - 205: 0xff5faf, - 206: 0xff5fd7, - 207: 0xff5fff, - 208: 0xff8700, - 209: 0xff875f, - 210: 0xff8787, - 211: 0xff87af, - 212: 0xff87d7, - 213: 0xff87ff, - 214: 0xffaf00, - 215: 0xffaf5f, - 216: 0xffaf87, - 217: 0xffafaf, - 218: 0xffafd7, - 219: 0xffafff, - 220: 0xffd700, - 221: 0xffd75f, - 222: 0xffd787, - 223: 0xffd7af, - 224: 0xffd7d7, - 225: 0xffd7ff, - 226: 0xffff00, - 227: 0xffff5f, - 228: 0xffff87, - 229: 0xffffaf, - 230: 0xffffd7, - 231: 0xffffff, - 232: 0x080808, - 233: 0x121212, - 234: 0x1c1c1c, - 235: 0x262626, - 236: 0x303030, - 237: 0x3a3a3a, - 238: 0x444444, - 239: 0x4e4e4e, - 240: 0x585858, - 241: 0x626262, - 242: 0x6c6c6c, - 243: 0x767676, - 244: 0x808080, - 245: 0x8a8a8a, - 246: 0x949494, - 247: 0x9e9e9e, - 248: 0xa8a8a8, - 249: 0xb2b2b2, - 250: 0xbcbcbc, - 251: 0xc6c6c6, - 252: 0xd0d0d0, - 253: 0xdadada, - 254: 0xe4e4e4, - 255: 0xeeeeee, -} - -// `\033]0;TITLESTR\007` -func doTitleSequence(er *bytes.Reader) error { - var c byte - var err error - - c, err = er.ReadByte() - if err != nil { - return err - } - if c != '0' && c != '2' { - return nil - } - c, err = er.ReadByte() - if err != nil { - return err - } - if c != ';' { - return nil - } - title := make([]byte, 0, 80) - for { - c, err = er.ReadByte() - if err != nil { - return err - } - if c == 0x07 || c == '\n' { - break - } - title = append(title, c) - } - if len(title) > 0 { - title8, err := syscall.UTF16PtrFromString(string(title)) - if err == nil { - procSetConsoleTitle.Call(uintptr(unsafe.Pointer(title8))) - } - } - return nil -} - -// returns Atoi(s) unless s == "" in which case it returns def -func atoiWithDefault(s string, def int) (int, error) { - if s == "" { - return def, nil - } - return strconv.Atoi(s) -} - -// Write writes data on console -func (w *Writer) Write(data []byte) (n int, err error) { - w.mutex.Lock() - defer w.mutex.Unlock() - var csbi consoleScreenBufferInfo - procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi))) - - handle := w.handle - - var er *bytes.Reader - if w.rest.Len() > 0 { - var rest bytes.Buffer - w.rest.WriteTo(&rest) - w.rest.Reset() - rest.Write(data) - er = bytes.NewReader(rest.Bytes()) - } else { - er = bytes.NewReader(data) - } - var plaintext bytes.Buffer -loop: - for { - c1, err := er.ReadByte() - if err != nil { - plaintext.WriteTo(w.out) - break loop - } - if c1 != 0x1b { - plaintext.WriteByte(c1) - continue - } - _, err = plaintext.WriteTo(w.out) - if err != nil { - break loop - } - c2, err := er.ReadByte() - if err != nil { - break loop - } - - switch c2 { - case '>': - continue - case ']': - w.rest.WriteByte(c1) - w.rest.WriteByte(c2) - er.WriteTo(&w.rest) - if bytes.IndexByte(w.rest.Bytes(), 0x07) == -1 { - break loop - } - er = bytes.NewReader(w.rest.Bytes()[2:]) - err := doTitleSequence(er) - if err != nil { - break loop - } - w.rest.Reset() - continue - // https://github.com/mattn/go-colorable/issues/27 - case '7': - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - w.oldpos = csbi.cursorPosition - continue - case '8': - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos))) - continue - case 0x5b: - // execute part after switch - default: - continue - } - - w.rest.WriteByte(c1) - w.rest.WriteByte(c2) - er.WriteTo(&w.rest) - - var buf bytes.Buffer - var m byte - for i, c := range w.rest.Bytes()[2:] { - if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { - m = c - er = bytes.NewReader(w.rest.Bytes()[2+i+1:]) - w.rest.Reset() - break - } - buf.Write([]byte(string(c))) - } - if m == 0 { - break loop - } - - switch m { - case 'A': - n, err = atoiWithDefault(buf.String(), 1) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.y -= short(n) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'B': - n, err = atoiWithDefault(buf.String(), 1) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.y += short(n) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'C': - n, err = atoiWithDefault(buf.String(), 1) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x += short(n) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'D': - n, err = atoiWithDefault(buf.String(), 1) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x -= short(n) - if csbi.cursorPosition.x < 0 { - csbi.cursorPosition.x = 0 - } - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'E': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = 0 - csbi.cursorPosition.y += short(n) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'F': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = 0 - csbi.cursorPosition.y -= short(n) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'G': - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - if n < 1 { - n = 1 - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - csbi.cursorPosition.x = short(n - 1) - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'H', 'f': - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - if buf.Len() > 0 { - token := strings.Split(buf.String(), ";") - switch len(token) { - case 1: - n1, err := strconv.Atoi(token[0]) - if err != nil { - continue - } - csbi.cursorPosition.y = short(n1 - 1) - case 2: - n1, err := strconv.Atoi(token[0]) - if err != nil { - continue - } - n2, err := strconv.Atoi(token[1]) - if err != nil { - continue - } - csbi.cursorPosition.x = short(n2 - 1) - csbi.cursorPosition.y = short(n1 - 1) - } - } else { - csbi.cursorPosition.y = 0 - } - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) - case 'J': - n := 0 - if buf.Len() > 0 { - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - } - var count, written dword - var cursor coord - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - switch n { - case 0: - cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} - count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x) - case 1: - cursor = coord{x: csbi.window.left, y: csbi.window.top} - count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.window.top-csbi.cursorPosition.y)*dword(csbi.size.x) - case 2: - cursor = coord{x: csbi.window.left, y: csbi.window.top} - count = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x) - } - procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - case 'K': - n := 0 - if buf.Len() > 0 { - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - var cursor coord - var count, written dword - switch n { - case 0: - cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} - count = dword(csbi.size.x - csbi.cursorPosition.x) - case 1: - cursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y} - count = dword(csbi.size.x - csbi.cursorPosition.x) - case 2: - cursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y} - count = dword(csbi.size.x) - } - procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - case 'X': - n := 0 - if buf.Len() > 0 { - n, err = strconv.Atoi(buf.String()) - if err != nil { - continue - } - } - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - var cursor coord - var written dword - cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y} - procFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - procFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written))) - case 'm': - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - attr := csbi.attributes - cs := buf.String() - if cs == "" { - procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr)) - continue - } - token := strings.Split(cs, ";") - for i := 0; i < len(token); i++ { - ns := token[i] - if n, err = strconv.Atoi(ns); err == nil { - switch { - case n == 0 || n == 100: - attr = w.oldattr - case n == 4: - attr |= commonLvbUnderscore - case (1 <= n && n <= 3) || n == 5: - attr |= foregroundIntensity - case n == 7 || n == 27: - attr = - (attr &^ (foregroundMask | backgroundMask)) | - ((attr & foregroundMask) << 4) | - ((attr & backgroundMask) >> 4) - case n == 22: - attr &^= foregroundIntensity - case n == 24: - attr &^= commonLvbUnderscore - case 30 <= n && n <= 37: - attr &= backgroundMask - if (n-30)&1 != 0 { - attr |= foregroundRed - } - if (n-30)&2 != 0 { - attr |= foregroundGreen - } - if (n-30)&4 != 0 { - attr |= foregroundBlue - } - case n == 38: // set foreground color. - if i < len(token)-2 && (token[i+1] == "5" || token[i+1] == "05") { - if n256, err := strconv.Atoi(token[i+2]); err == nil { - if n256foreAttr == nil { - n256setup() - } - attr &= backgroundMask - attr |= n256foreAttr[n256%len(n256foreAttr)] - i += 2 - } - } else if len(token) == 5 && token[i+1] == "2" { - var r, g, b int - r, _ = strconv.Atoi(token[i+2]) - g, _ = strconv.Atoi(token[i+3]) - b, _ = strconv.Atoi(token[i+4]) - i += 4 - if r > 127 { - attr |= foregroundRed - } - if g > 127 { - attr |= foregroundGreen - } - if b > 127 { - attr |= foregroundBlue - } - } else { - attr = attr & (w.oldattr & backgroundMask) - } - case n == 39: // reset foreground color. - attr &= backgroundMask - attr |= w.oldattr & foregroundMask - case 40 <= n && n <= 47: - attr &= foregroundMask - if (n-40)&1 != 0 { - attr |= backgroundRed - } - if (n-40)&2 != 0 { - attr |= backgroundGreen - } - if (n-40)&4 != 0 { - attr |= backgroundBlue - } - case n == 48: // set background color. - if i < len(token)-2 && token[i+1] == "5" { - if n256, err := strconv.Atoi(token[i+2]); err == nil { - if n256backAttr == nil { - n256setup() - } - attr &= foregroundMask - attr |= n256backAttr[n256%len(n256backAttr)] - i += 2 - } - } else if len(token) == 5 && token[i+1] == "2" { - var r, g, b int - r, _ = strconv.Atoi(token[i+2]) - g, _ = strconv.Atoi(token[i+3]) - b, _ = strconv.Atoi(token[i+4]) - i += 4 - if r > 127 { - attr |= backgroundRed - } - if g > 127 { - attr |= backgroundGreen - } - if b > 127 { - attr |= backgroundBlue - } - } else { - attr = attr & (w.oldattr & foregroundMask) - } - case n == 49: // reset foreground color. - attr &= foregroundMask - attr |= w.oldattr & backgroundMask - case 90 <= n && n <= 97: - attr = (attr & backgroundMask) - attr |= foregroundIntensity - if (n-90)&1 != 0 { - attr |= foregroundRed - } - if (n-90)&2 != 0 { - attr |= foregroundGreen - } - if (n-90)&4 != 0 { - attr |= foregroundBlue - } - case 100 <= n && n <= 107: - attr = (attr & foregroundMask) - attr |= backgroundIntensity - if (n-100)&1 != 0 { - attr |= backgroundRed - } - if (n-100)&2 != 0 { - attr |= backgroundGreen - } - if (n-100)&4 != 0 { - attr |= backgroundBlue - } - } - procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr)) - } - } - case 'h': - var ci consoleCursorInfo - cs := buf.String() - if cs == "5>" { - procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 0 - procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - } else if cs == "?25" { - procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 1 - procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - } else if cs == "?1049" { - if w.althandle == 0 { - h, _, _ := procCreateConsoleScreenBuffer.Call(uintptr(genericRead|genericWrite), 0, 0, uintptr(consoleTextmodeBuffer), 0, 0) - w.althandle = syscall.Handle(h) - if w.althandle != 0 { - handle = w.althandle - } - } - } - case 'l': - var ci consoleCursorInfo - cs := buf.String() - if cs == "5>" { - procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 1 - procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - } else if cs == "?25" { - procGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - ci.visible = 0 - procSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci))) - } else if cs == "?1049" { - if w.althandle != 0 { - syscall.CloseHandle(w.althandle) - w.althandle = 0 - handle = w.handle - } - } - case 's': - procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - w.oldpos = csbi.cursorPosition - case 'u': - procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos))) - } - } - - return len(data), nil -} - -type consoleColor struct { - rgb int - red bool - green bool - blue bool - intensity bool -} - -func (c consoleColor) foregroundAttr() (attr word) { - if c.red { - attr |= foregroundRed - } - if c.green { - attr |= foregroundGreen - } - if c.blue { - attr |= foregroundBlue - } - if c.intensity { - attr |= foregroundIntensity - } - return -} - -func (c consoleColor) backgroundAttr() (attr word) { - if c.red { - attr |= backgroundRed - } - if c.green { - attr |= backgroundGreen - } - if c.blue { - attr |= backgroundBlue - } - if c.intensity { - attr |= backgroundIntensity - } - return -} - -var color16 = []consoleColor{ - {0x000000, false, false, false, false}, - {0x000080, false, false, true, false}, - {0x008000, false, true, false, false}, - {0x008080, false, true, true, false}, - {0x800000, true, false, false, false}, - {0x800080, true, false, true, false}, - {0x808000, true, true, false, false}, - {0xc0c0c0, true, true, true, false}, - {0x808080, false, false, false, true}, - {0x0000ff, false, false, true, true}, - {0x00ff00, false, true, false, true}, - {0x00ffff, false, true, true, true}, - {0xff0000, true, false, false, true}, - {0xff00ff, true, false, true, true}, - {0xffff00, true, true, false, true}, - {0xffffff, true, true, true, true}, -} - -type hsv struct { - h, s, v float32 -} - -func (a hsv) dist(b hsv) float32 { - dh := a.h - b.h - switch { - case dh > 0.5: - dh = 1 - dh - case dh < -0.5: - dh = -1 - dh - } - ds := a.s - b.s - dv := a.v - b.v - return float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv))) -} - -func toHSV(rgb int) hsv { - r, g, b := float32((rgb&0xFF0000)>>16)/256.0, - float32((rgb&0x00FF00)>>8)/256.0, - float32(rgb&0x0000FF)/256.0 - min, max := minmax3f(r, g, b) - h := max - min - if h > 0 { - if max == r { - h = (g - b) / h - if h < 0 { - h += 6 - } - } else if max == g { - h = 2 + (b-r)/h - } else { - h = 4 + (r-g)/h - } - } - h /= 6.0 - s := max - min - if max != 0 { - s /= max - } - v := max - return hsv{h: h, s: s, v: v} -} - -type hsvTable []hsv - -func toHSVTable(rgbTable []consoleColor) hsvTable { - t := make(hsvTable, len(rgbTable)) - for i, c := range rgbTable { - t[i] = toHSV(c.rgb) - } - return t -} - -func (t hsvTable) find(rgb int) consoleColor { - hsv := toHSV(rgb) - n := 7 - l := float32(5.0) - for i, p := range t { - d := hsv.dist(p) - if d < l { - l, n = d, i - } - } - return color16[n] -} - -func minmax3f(a, b, c float32) (min, max float32) { - if a < b { - if b < c { - return a, c - } else if a < c { - return a, b - } else { - return c, b - } - } else { - if a < c { - return b, c - } else if b < c { - return b, a - } else { - return c, a - } - } -} - -var n256foreAttr []word -var n256backAttr []word - -func n256setup() { - n256foreAttr = make([]word, 256) - n256backAttr = make([]word, 256) - t := toHSVTable(color16) - for i, rgb := range color256 { - c := t.find(rgb) - n256foreAttr[i] = c.foregroundAttr() - n256backAttr[i] = c.backgroundAttr() - } -} - -// EnableColorsStdout enable colors if possible. -func EnableColorsStdout(enabled *bool) func() { - var mode uint32 - h := os.Stdout.Fd() - if r, _, _ := procGetConsoleMode.Call(h, uintptr(unsafe.Pointer(&mode))); r != 0 { - if r, _, _ = procSetConsoleMode.Call(h, uintptr(mode|cENABLE_VIRTUAL_TERMINAL_PROCESSING)); r != 0 { - if enabled != nil { - *enabled = true - } - return func() { - procSetConsoleMode.Call(h, uintptr(mode)) - } - } - } - if enabled != nil { - *enabled = true - } - return func() {} -} diff --git a/vendor/github.com/mattn/go-colorable/go.test.sh b/vendor/github.com/mattn/go-colorable/go.test.sh deleted file mode 100644 index 012162b..0000000 --- a/vendor/github.com/mattn/go-colorable/go.test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -echo "" > coverage.txt - -for d in $(go list ./... | grep -v vendor); do - go test -race -coverprofile=profile.out -covermode=atomic "$d" - if [ -f profile.out ]; then - cat profile.out >> coverage.txt - rm profile.out - fi -done diff --git a/vendor/github.com/mattn/go-colorable/noncolorable.go b/vendor/github.com/mattn/go-colorable/noncolorable.go deleted file mode 100644 index 05d6f74..0000000 --- a/vendor/github.com/mattn/go-colorable/noncolorable.go +++ /dev/null @@ -1,57 +0,0 @@ -package colorable - -import ( - "bytes" - "io" -) - -// NonColorable holds writer but removes escape sequence. -type NonColorable struct { - out io.Writer -} - -// NewNonColorable returns new instance of Writer which removes escape sequence from Writer. -func NewNonColorable(w io.Writer) io.Writer { - return &NonColorable{out: w} -} - -// Write writes data on console -func (w *NonColorable) Write(data []byte) (n int, err error) { - er := bytes.NewReader(data) - var plaintext bytes.Buffer -loop: - for { - c1, err := er.ReadByte() - if err != nil { - plaintext.WriteTo(w.out) - break loop - } - if c1 != 0x1b { - plaintext.WriteByte(c1) - continue - } - _, err = plaintext.WriteTo(w.out) - if err != nil { - break loop - } - c2, err := er.ReadByte() - if err != nil { - break loop - } - if c2 != 0x5b { - continue - } - - for { - c, err := er.ReadByte() - if err != nil { - break loop - } - if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' { - break - } - } - } - - return len(data), nil -} diff --git a/vendor/github.com/mattn/go-isatty/LICENSE b/vendor/github.com/mattn/go-isatty/LICENSE deleted file mode 100644 index 65dc692..0000000 --- a/vendor/github.com/mattn/go-isatty/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com> - -MIT License (Expat) - -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/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md deleted file mode 100644 index 3841835..0000000 --- a/vendor/github.com/mattn/go-isatty/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# go-isatty - -[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty) -[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty) -[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master) -[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty) - -isatty for golang - -## Usage - -```go -package main - -import ( - "fmt" - "github.com/mattn/go-isatty" - "os" -) - -func main() { - if isatty.IsTerminal(os.Stdout.Fd()) { - fmt.Println("Is Terminal") - } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { - fmt.Println("Is Cygwin/MSYS2 Terminal") - } else { - fmt.Println("Is Not Terminal") - } -} -``` - -## Installation - -``` -$ go get github.com/mattn/go-isatty -``` - -## License - -MIT - -## Author - -Yasuhiro Matsumoto (a.k.a mattn) - -## Thanks - -* k-takata: base idea for IsCygwinTerminal - - https://github.com/k-takata/go-iscygpty diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go deleted file mode 100644 index 17d4f90..0000000 --- a/vendor/github.com/mattn/go-isatty/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package isatty implements interface to isatty -package isatty diff --git a/vendor/github.com/mattn/go-isatty/go.test.sh b/vendor/github.com/mattn/go-isatty/go.test.sh deleted file mode 100644 index 012162b..0000000 --- a/vendor/github.com/mattn/go-isatty/go.test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -echo "" > coverage.txt - -for d in $(go list ./... | grep -v vendor); do - go test -race -coverprofile=profile.out -covermode=atomic "$d" - if [ -f profile.out ]; then - cat profile.out >> coverage.txt - rm profile.out - fi -done diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go deleted file mode 100644 index d0ea68f..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine && !tinygo -// +build darwin freebsd openbsd netbsd dragonfly hurd -// +build !appengine -// +build !tinygo - -package isatty - -import "golang.org/x/sys/unix" - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go deleted file mode 100644 index 7402e06..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_others.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build (appengine || js || nacl || tinygo || wasm) && !windows -// +build appengine js nacl tinygo wasm -// +build !windows - -package isatty - -// IsTerminal returns true if the file descriptor is terminal which -// is always false on js and appengine classic which is a sandboxed PaaS. -func IsTerminal(fd uintptr) bool { - return false -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_plan9.go b/vendor/github.com/mattn/go-isatty/isatty_plan9.go deleted file mode 100644 index bae7f9b..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_plan9.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build plan9 -// +build plan9 - -package isatty - -import ( - "syscall" -) - -// IsTerminal returns true if the given file descriptor is a terminal. -func IsTerminal(fd uintptr) bool { - path, err := syscall.Fd2path(int(fd)) - if err != nil { - return false - } - return path == "/dev/cons" || path == "/mnt/term/dev/cons" -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go deleted file mode 100644 index 0c3acf2..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_solaris.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build solaris && !appengine -// +build solaris,!appengine - -package isatty - -import ( - "golang.org/x/sys/unix" -) - -// IsTerminal returns true if the given file descriptor is a terminal. -// see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermio(int(fd), unix.TCGETA) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go deleted file mode 100644 index 0337d8c..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build (linux || aix || zos) && !appengine && !tinygo -// +build linux aix zos -// +build !appengine -// +build !tinygo - -package isatty - -import "golang.org/x/sys/unix" - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go deleted file mode 100644 index 8e3c991..0000000 --- a/vendor/github.com/mattn/go-isatty/isatty_windows.go +++ /dev/null @@ -1,125 +0,0 @@ -//go:build windows && !appengine -// +build windows,!appengine - -package isatty - -import ( - "errors" - "strings" - "syscall" - "unicode/utf16" - "unsafe" -) - -const ( - objectNameInfo uintptr = 1 - fileNameInfo = 2 - fileTypePipe = 3 -) - -var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") - ntdll = syscall.NewLazyDLL("ntdll.dll") - procGetConsoleMode = kernel32.NewProc("GetConsoleMode") - procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx") - procGetFileType = kernel32.NewProc("GetFileType") - procNtQueryObject = ntdll.NewProc("NtQueryObject") -) - -func init() { - // Check if GetFileInformationByHandleEx is available. - if procGetFileInformationByHandleEx.Find() != nil { - procGetFileInformationByHandleEx = nil - } -} - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var st uint32 - r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) - return r != 0 && e == 0 -} - -// Check pipe name is used for cygwin/msys2 pty. -// Cygwin/MSYS2 PTY has a name like: -// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master -func isCygwinPipeName(name string) bool { - token := strings.Split(name, "-") - if len(token) < 5 { - return false - } - - if token[0] != `\msys` && - token[0] != `\cygwin` && - token[0] != `\Device\NamedPipe\msys` && - token[0] != `\Device\NamedPipe\cygwin` { - return false - } - - if token[1] == "" { - return false - } - - if !strings.HasPrefix(token[2], "pty") { - return false - } - - if token[3] != `from` && token[3] != `to` { - return false - } - - if token[4] != "master" { - return false - } - - return true -} - -// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler -// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion -// guys are using Windows XP, this is a workaround for those guys, it will also work on system from -// Windows vista to 10 -// see https://stackoverflow.com/a/18792477 for details -func getFileNameByHandle(fd uintptr) (string, error) { - if procNtQueryObject == nil { - return "", errors.New("ntdll.dll: NtQueryObject not supported") - } - - var buf [4 + syscall.MAX_PATH]uint16 - var result int - r, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5, - fd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0) - if r != 0 { - return "", e - } - return string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil -} - -// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 -// terminal. -func IsCygwinTerminal(fd uintptr) bool { - if procGetFileInformationByHandleEx == nil { - name, err := getFileNameByHandle(fd) - if err != nil { - return false - } - return isCygwinPipeName(name) - } - - // Cygwin/msys's pty is a pipe. - ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0) - if ft != fileTypePipe || e != 0 { - return false - } - - var buf [2 + syscall.MAX_PATH]uint16 - r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), - 4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)), - uintptr(len(buf)*2), 0, 0) - if r == 0 || e != 0 { - return false - } - - l := *(*uint32)(unsafe.Pointer(&buf)) - return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2]))) -} diff --git a/vendor/github.com/natefinch/atomic/.gitignore b/vendor/github.com/natefinch/atomic/.gitignore deleted file mode 100644 index daf913b..0000000 --- a/vendor/github.com/natefinch/atomic/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof diff --git a/vendor/github.com/natefinch/atomic/LICENSE b/vendor/github.com/natefinch/atomic/LICENSE deleted file mode 100644 index cc38d64..0000000 --- a/vendor/github.com/natefinch/atomic/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Nate Finch - -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/natefinch/atomic/README.md b/vendor/github.com/natefinch/atomic/README.md deleted file mode 100644 index 37cd673..0000000 --- a/vendor/github.com/natefinch/atomic/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# atomic - import "github.com/natefinch/atomic" -atomic is a go package for atomic file writing - -By default, writing to a file in go (and generally any language) can fail -partway through... you then have a partially written file, which probably was -truncated when the write began, and bam, now you've lost data. - -This go package avoids this problem, by writing first to a temp file, and then -overwriting the target file in an atomic way. This is easy on linux, os.Rename -just is atomic. However, on Windows, os.Rename is not atomic, and so bad things -can happen. By wrapping the windows API moveFileEx, we can ensure that the move -is atomic, and we can be safe in knowing that either the move succeeds entirely, -or neither file will be modified. - - -## func ReplaceFile -``` go -func ReplaceFile(source, destination string) error -``` -ReplaceFile atomically replaces the destination file or directory with the -source. It is guaranteed to either replace the target file entirely, or not -change either file. - - -## func WriteFile -``` go -func WriteFile(filename string, r io.Reader) (err error) -``` -WriteFile atomically writes the contents of r to the specified filepath. If -an error occurs, the target file is guaranteed to be either fully written, or -not written at all. WriteFile overwrites any file that exists at the -location (but only if the write fully succeeds, otherwise the existing file -is unmodified). - diff --git a/vendor/github.com/natefinch/atomic/atomic.go b/vendor/github.com/natefinch/atomic/atomic.go deleted file mode 100644 index f7e2706..0000000 --- a/vendor/github.com/natefinch/atomic/atomic.go +++ /dev/null @@ -1,73 +0,0 @@ -// package atomic provides functions to atomically change files. -package atomic - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" -) - -// WriteFile atomically writes the contents of r to the specified filepath. If -// an error occurs, the target file is guaranteed to be either fully written, or -// not written at all. WriteFile overwrites any file that exists at the -// location (but only if the write fully succeeds, otherwise the existing file -// is unmodified). -func WriteFile(filename string, r io.Reader) (err error) { - // write to a temp file first, then we'll atomically replace the target file - // with the temp file. - dir, file := filepath.Split(filename) - if dir == "" { - dir = "." - } - - f, err := ioutil.TempFile(dir, file) - if err != nil { - return fmt.Errorf("cannot create temp file: %v", err) - } - defer func() { - if err != nil { - // Don't leave the temp file lying around on error. - _ = os.Remove(f.Name()) // yes, ignore the error, not much we can do about it. - } - }() - // ensure we always close f. Note that this does not conflict with the - // close below, as close is idempotent. - defer f.Close() - name := f.Name() - if _, err := io.Copy(f, r); err != nil { - return fmt.Errorf("cannot write data to tempfile %q: %v", name, err) - } - // fsync is important, otherwise os.Rename could rename a zero-length file - if err := f.Sync(); err != nil { - return fmt.Errorf("can't flush tempfile %q: %v", name, err) - } - if err := f.Close(); err != nil { - return fmt.Errorf("can't close tempfile %q: %v", name, err) - } - - // get the file mode from the original file and use that for the replacement - // file, too. - destInfo, err := os.Stat(filename) - if os.IsNotExist(err) { - // no original file - } else if err != nil { - return err - } else { - sourceInfo, err := os.Stat(name) - if err != nil { - return err - } - - if sourceInfo.Mode() != destInfo.Mode() { - if err := os.Chmod(name, destInfo.Mode()); err != nil { - return fmt.Errorf("can't set filemode on tempfile %q: %v", name, err) - } - } - } - if err := ReplaceFile(name, filename); err != nil { - return fmt.Errorf("cannot replace %q with tempfile %q: %v", filename, name, err) - } - return nil -} diff --git a/vendor/github.com/natefinch/atomic/file_unix.go b/vendor/github.com/natefinch/atomic/file_unix.go deleted file mode 100644 index 408f18e..0000000 --- a/vendor/github.com/natefinch/atomic/file_unix.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build !windows - -package atomic - -import ( - "os" -) - -// ReplaceFile atomically replaces the destination file or directory with the -// source. It is guaranteed to either replace the target file entirely, or not -// change either file. -func ReplaceFile(source, destination string) error { - return os.Rename(source, destination) -} diff --git a/vendor/github.com/natefinch/atomic/file_windows.go b/vendor/github.com/natefinch/atomic/file_windows.go deleted file mode 100644 index e507143..0000000 --- a/vendor/github.com/natefinch/atomic/file_windows.go +++ /dev/null @@ -1,33 +0,0 @@ -package atomic - -import ( - "os" - "syscall" -) - -const ( - movefile_replace_existing = 0x1 - movefile_write_through = 0x8 -) - -//sys moveFileEx(lpExistingFileName *uint16, lpNewFileName *uint16, dwFlags uint32) (err error) = MoveFileExW - -// ReplaceFile atomically replaces the destination file or directory with the -// source. It is guaranteed to either replace the target file entirely, or not -// change either file. -func ReplaceFile(source, destination string) error { - src, err := syscall.UTF16PtrFromString(source) - if err != nil { - return &os.LinkError{"replace", source, destination, err} - } - dest, err := syscall.UTF16PtrFromString(destination) - if err != nil { - return &os.LinkError{"replace", source, destination, err} - } - - // see http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240(v=vs.85).aspx - if err := moveFileEx(src, dest, movefile_replace_existing|movefile_write_through); err != nil { - return &os.LinkError{"replace", source, destination, err} - } - return nil -} diff --git a/vendor/github.com/natefinch/atomic/zfile_windows.go b/vendor/github.com/natefinch/atomic/zfile_windows.go deleted file mode 100644 index d55db61..0000000 --- a/vendor/github.com/natefinch/atomic/zfile_windows.go +++ /dev/null @@ -1,27 +0,0 @@ -// mksyscall_windows -l32 file_windows.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package atomic - -import ( - "syscall" - "unsafe" -) - -var ( - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - - procMoveFileExW = modkernel32.NewProc("MoveFileExW") -) - -func moveFileEx(lpExistingFileName *uint16, lpNewFileName *uint16, dwFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(lpExistingFileName)), uintptr(unsafe.Pointer(lpNewFileName)), uintptr(dwFlags)) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} diff --git a/vendor/github.com/shurcooL/go-goon/LICENSE b/vendor/github.com/shurcooL/go-goon/LICENSE deleted file mode 100644 index 207c455..0000000 --- a/vendor/github.com/shurcooL/go-goon/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Dave Collins - -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/shurcooL/go-goon/README.md b/vendor/github.com/shurcooL/go-goon/README.md deleted file mode 100644 index 3d33cb7..0000000 --- a/vendor/github.com/shurcooL/go-goon/README.md +++ /dev/null @@ -1,92 +0,0 @@ -goon -==== - -[![Go Reference](https://pkg.go.dev/badge/github.com/shurcooL/go-goon.svg)](https://pkg.go.dev/github.com/shurcooL/go-goon) - -Package goon is a deep pretty printer with Go-like notation. It implements the [goon](https://github.com/shurcooL/goon) specification. - -**Deprecated:** This package is old, incomplete, low code quality, and now unmaintained. -See [github.com/hexops/valast](https://github.com/hexops/valast) for a newer package that is the closest known direct replacement. -See the [Alternatives](#alternatives) section for other known entries in this problem space. - -Installation ------------- - -```bash -go get github.com/shurcooL/go-goon -``` - -Examples --------- - -```Go -x := Lang{ - Name: "Go", - Year: 2009, - URL: "http", - Inner: &Inner{ - Field1: "Secret!", - }, -} - -goon.Dump(x) - -// Output: -// (Lang)(Lang{ -// Name: (string)("Go"), -// Year: (int)(2009), -// URL: (string)("http"), -// Inner: (*Inner)(&Inner{ -// Field1: (string)("Secret!"), -// Field2: (int)(0), -// }), -// }) -``` - -```Go -items := []int{1, 2, 3} - -goon.DumpExpr(len(items)) - -// Output: -// len(items) = (int)(3) -``` - -```Go -adderFunc := func(a int, b int) int { - c := a + b - return c -} - -goon.DumpExpr(adderFunc) - -// Output: -// adderFunc = (func(int, int) int)(func(a int, b int) int { -// c := a + b -// return c -// }) -``` - -Directories ------------ - -| Path | Synopsis | -|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------| -| [bypass](https://pkg.go.dev/github.com/shurcooL/go-goon/bypass) | Package bypass allows bypassing reflect restrictions on accessing unexported struct fields. | - -Alternatives ------------- - -- [`go-spew`](https://github.com/davecgh/go-spew) - A deep pretty printer for Go data structures to aid in debugging. -- [`valast`](https://github.com/hexops/valast) - Convert Go values to their AST. -- [`repr`](https://github.com/alecthomas/repr) - Python's repr() for Go. - -Attribution ------------ - -go-goon source was based on the existing source of [go-spew](https://github.com/davecgh/go-spew) by [Dave Collins](https://github.com/davecgh). - -License -------- - -- [MIT License](LICENSE) diff --git a/vendor/github.com/shurcooL/go-goon/dump.go b/vendor/github.com/shurcooL/go-goon/dump.go deleted file mode 100644 index f05e878..0000000 --- a/vendor/github.com/shurcooL/go-goon/dump.go +++ /dev/null @@ -1,394 +0,0 @@ -package goon - -import ( - "bytes" - "fmt" - "go/format" - "io" - "reflect" - "strconv" - "strings" - "time" - - "github.com/shurcooL/go/reflectsource" -) - -var config = struct { - indent string -}{ - indent: "\t", -} - -// dumpState contains information about the state of a dump operation. -type dumpState struct { - w io.Writer - depth int - pointers map[uintptr]int - ignoreNextType bool - ignoreNextIndent bool -} - -// indent performs indentation according to the depth level and cs.Indent -// option. -func (d *dumpState) indent() { - if d.ignoreNextIndent { - d.ignoreNextIndent = false - return - } - d.w.Write(bytes.Repeat([]byte(config.indent), d.depth)) -} - -// unpackValue returns values inside of non-nil interfaces when possible. -// This is useful for data types like structs, arrays, slices, and maps which -// can contain varying types packed inside an interface. -func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { - if v.Kind() == reflect.Interface && !v.IsNil() { - v = v.Elem() - } - return v -} - -// dumpPtr handles formatting of pointers by indirecting them as necessary. -func (d *dumpState) dumpPtr(v reflect.Value) { - // Remove pointers at or below the current depth from map used to detect - // circular refs. - for k, depth := range d.pointers { - if depth >= d.depth { - delete(d.pointers, k) - } - } - - // Figure out how many levels of indirection there are by dereferencing - // pointers and unpacking interfaces down the chain while detecting circular - // references. - nilFound := false - cycleFound := false - indirects := 0 - ve := v - for ve.Kind() == reflect.Ptr { - if ve.IsNil() { - nilFound = true - break - } - indirects++ - addr := ve.Pointer() - if pd, ok := d.pointers[addr]; ok && pd < d.depth { - cycleFound = true - indirects-- - break - } - d.pointers[addr] = d.depth - - ve = ve.Elem() - if ve.Kind() == reflect.Interface { - if ve.IsNil() { - nilFound = true - break - } - ve = ve.Elem() - } - } - - // Display type information. - d.w.Write(bytes.Repeat(ampersandBytes, indirects)) - - // Display dereferenced value. - switch { - case nilFound: - d.w.Write(nilBytes) - - case cycleFound: - d.w.Write(circularBytes) - - default: - d.ignoreNextType = true - d.dump(ve) - } -} - -// dump is the main workhorse for dumping a value. It uses the passed reflect -// value to figure out what kind of object we are dealing with and formats it -// appropriately. It is a recursive function, however circular data structures -// are detected and handled properly. -func (d *dumpState) dump(v reflect.Value) { - // Handle invalid reflect values immediately. - kind := v.Kind() - if kind == reflect.Invalid { - d.w.Write(invalidAngleBytes) - return - } - - // Handle pointers specially. - if kind == reflect.Ptr { - d.indent() - d.w.Write(openParenBytes) - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(closeParenBytes) - d.w.Write(openParenBytes) - d.dumpPtr(v) - d.w.Write(closeParenBytes) - return - } - - // Print type information unless already handled elsewhere. - var shouldPrintClosingBr = false - if !d.ignoreNextType { - d.indent() - d.w.Write(openParenBytes) - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(closeParenBytes) - d.w.Write(openParenBytes) - shouldPrintClosingBr = true - } - d.ignoreNextType = false - - if v.Type() == timeType { - t := v.Interface().(time.Time) - switch t.IsZero() { - case false: - var location string - switch t.Location() { - case time.UTC: - location = "time.UTC" - case time.Local: - location = "time.Local" - default: - location = fmt.Sprintf("must(time.LoadLocation(%q))", t.Location().String()) - } - fmt.Fprintf(d.w, "time.Date(%d, %d, %d, %d, %d, %d, %d, %s)", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), location) - case true: - d.w.Write([]byte("time.Time{}")) - } - goto AfterKindSwitch - } - - switch kind { - case reflect.Invalid: - // Do nothing. We should never get here since invalid has already - // been handled above. - - case reflect.Bool: - printBool(d.w, v.Bool()) - - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: - printInt(d.w, v.Int(), 10) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: - printUint(d.w, v.Uint(), 10) - - case reflect.Float32: - printFloat(d.w, v.Float(), 32) - - case reflect.Float64: - printFloat(d.w, v.Float(), 64) - - case reflect.Complex64: - printComplex(d.w, v.Complex(), 32) - - case reflect.Complex128: - printComplex(d.w, v.Complex(), 64) - - case reflect.Array: - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(openBraceNewlineBytes) - d.depth++ - for i := 0; i < v.Len(); i++ { - d.dump(d.unpackValue(v.Index(i))) - d.w.Write(commaNewlineBytes) - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Slice: - if v.IsNil() { - d.w.Write(nilBytes) - } else { - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(openBraceNewlineBytes) - d.depth++ - for i := 0; i < v.Len(); i++ { - d.dump(d.unpackValue(v.Index(i))) - d.w.Write(commaNewlineBytes) - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - } - - case reflect.String: - d.w.Write([]byte(strconv.Quote(v.String()))) - - case reflect.Interface: - // If we got here, it's because interface is nil - // See https://github.com/davecgh/go-spew/issues/12 - d.w.Write(nilBytes) - - case reflect.Ptr: - // Do nothing. We should never get here since pointers have already - // been handled above. - - case reflect.Map: - if v.IsNil() { - d.w.Write(nilBytes) - } else { - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(openBraceNewlineBytes) - d.depth++ - keys := v.MapKeys() - for _, key := range keys { - d.dump(d.unpackValue(key)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.MapIndex(key))) - d.w.Write(commaNewlineBytes) - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - } - - case reflect.Struct: - d.w.Write([]byte(typeStringWithoutPackagePrefix(v))) - d.w.Write(openBraceBytes) - d.depth++ - { - vt := v.Type() - numFields := v.NumField() - if numFields > 0 { - d.w.Write(newlineBytes) - } - for i := 0; i < numFields; i++ { - d.indent() - vtf := vt.Field(i) - d.w.Write([]byte(vtf.Name)) - d.w.Write(colonSpaceBytes) - d.ignoreNextIndent = true - d.dump(d.unpackValue(v.Field(i))) - d.w.Write(commaBytes) - d.w.Write(newlineBytes) - } - } - d.depth-- - d.indent() - d.w.Write(closeBraceBytes) - - case reflect.Uintptr: - printHexPtr(d.w, uintptr(v.Uint())) - - case reflect.Func: - d.w.Write([]byte(reflectsource.GetFuncValueSourceAsString(v))) - - case reflect.UnsafePointer, reflect.Chan: - printHexPtr(d.w, v.Pointer()) - - // There were not any other types at the time this code was written, but - // fall back to letting the default fmt package handle it in case any new - // types are added. - default: - if v.CanInterface() { - fmt.Fprintf(d.w, "%v", v.Interface()) - } else { - fmt.Fprintf(d.w, "%v", v.String()) - } - } -AfterKindSwitch: - - if shouldPrintClosingBr { - d.w.Write(closeParenBytes) - } -} - -var timeType = reflect.TypeOf(time.Time{}) - -func typeStringWithoutPackagePrefix(v reflect.Value) string { - //return v.Type().String()[len(v.Type().PkgPath())+1:] // TODO: Error checking? - //return v.Type().PkgPath() - //return v.Type().String() - //return v.Type().Name() - - /*x := v.Type().String() - if strings.HasPrefix(x, "main.") { - x = x[len("main."):] - } - return x*/ - - px := v.Type().String() - prefix := px[0 : len(px)-len(strings.TrimLeft(px, "*"))] // Split "**main.Lang" -> "**" and "main.Lang" - x := px[len(prefix):] - x = strings.TrimPrefix(x, "main.") - x = strings.TrimPrefix(x, "goon_test.") - return prefix + x - - /*x = string(debug.Stack())//GetLine(string(debug.Stack()), 0) - //x = x[1:strings.Index(x, ":")] - //spew.Printf(">%s<\n", x) - //panic(nil) - //st := string(debug.Stack()) - //debug.PrintStack() - - return x*/ -} - -// fdump is a helper function to consolidate the logic from the various public -// methods which take varying writers and config states. -func fdump(w io.Writer, a ...interface{}) { - for _, arg := range a { - d := dumpState{w: w} - if arg == nil { - d.w.Write(interfaceBytes) - d.w.Write(nilParenBytes) - } else { - d.pointers = make(map[uintptr]int) - d.dump(reflect.ValueOf(arg)) - } - d.w.Write(newlineBytes) - } -} - -// bdump dumps to []byte. -func bdump(a ...interface{}) []byte { - var buf bytes.Buffer - fdump(&buf, a...) - return gofmt(buf.Bytes()) -} - -func fdumpNamed(w io.Writer, names []string, a ...interface{}) { - for argIndex, arg := range a { - d := dumpState{w: w} - if argIndex < len(names) { - d.w.Write([]byte(names[argIndex])) - d.w.Write([]byte(" = ")) - } - if arg == nil { - d.w.Write(interfaceBytes) - d.w.Write(nilParenBytes) - } else { - d.pointers = make(map[uintptr]int) - d.dump(reflect.ValueOf(arg)) - } - if len(names) >= len(a) { - d.w.Write(newlineBytes) - } else { - if argIndex < len(a)-1 { - d.w.Write(commaNewlineBytes) - } else { - d.w.Write(newlineBytes) - } - } - } -} - -func bdumpNamed(names []string, a ...interface{}) []byte { - var buf bytes.Buffer - fdumpNamed(&buf, names, a...) - return gofmt(buf.Bytes()) -} - -func gofmt(src []byte) []byte { - formattedSrc, err := format.Source(src) - if nil != err { - return []byte("gofmt error (" + err.Error() + ")!\n" + string(src)) - } - return formattedSrc -} diff --git a/vendor/github.com/shurcooL/go-goon/goon.go b/vendor/github.com/shurcooL/go-goon/goon.go deleted file mode 100644 index 8149147..0000000 --- a/vendor/github.com/shurcooL/go-goon/goon.go +++ /dev/null @@ -1,56 +0,0 @@ -// Package goon is a deep pretty printer with Go-like notation. It implements the goon specification. -// -// Deprecated: This package is old, incomplete, low code quality, and now unmaintained. -// See github.com/hexops/valast for a newer package that is the closest known direct replacement. -// See the Alternatives section in README.md for other known entries in this problem space. -package goon - -import ( - "io" - "os" - - "github.com/shurcooL/go/reflectsource" -) - -// Dump dumps goons to stdout. -func Dump(a ...interface{}) (n int, err error) { - return os.Stdout.Write(bdump(a...)) -} - -// Sdump dumps goons to a string. -func Sdump(a ...interface{}) string { - return string(bdump(a...)) -} - -// Fdump dumps goons to a writer. -func Fdump(w io.Writer, a ...interface{}) (n int, err error) { - return w.Write(bdump(a...)) -} - -// DumpExpr dumps goon expressions to stdout. -// -// E.g., this: -// -// somethingImportant := 5 -// DumpExpr(somethingImportant) -// -// Will print: -// -// somethingImportant = (int)(5) -func DumpExpr(a ...interface{}) (n int, err error) { - return os.Stdout.Write(bdumpNamed(reflectsource.GetParentArgExprAllAsString(), a...)) -} - -// SdumpExpr dumps goon expressions to a string. -func SdumpExpr(a ...interface{}) string { - return string(bdumpNamed(reflectsource.GetParentArgExprAllAsString(), a...)) -} - -// FdumpExpr dumps goon expressions to a writer. -func FdumpExpr(w io.Writer, a ...interface{}) (n int, err error) { - names := reflectsource.GetParentArgExprAllAsString() - if len(names) >= 1 { - names = names[1:] // First argument is the writer, skip it. - } - return w.Write(bdumpNamed(names, a...)) -} diff --git a/vendor/github.com/shurcooL/go-goon/print_types.go b/vendor/github.com/shurcooL/go-goon/print_types.go deleted file mode 100644 index 274f003..0000000 --- a/vendor/github.com/shurcooL/go-goon/print_types.go +++ /dev/null @@ -1,107 +0,0 @@ -package goon - -import ( - "io" - "strconv" -) - -// Some constants in the form of bytes to avoid string overhead. This mirrors -// the technique used in the fmt package. -var ( - plusBytes = []byte("+") - iBytes = []byte("i") - trueBytes = []byte("true") - falseBytes = []byte("false") - interfaceBytes = []byte("(interface{})") - commaBytes = []byte(",") - commaNewlineBytes = []byte(",\n") - newlineBytes = []byte("\n") - openBraceBytes = []byte("{") - openBraceNewlineBytes = []byte("{\n") - closeBraceBytes = []byte("}") - ampersandBytes = []byte("&") - colonSpaceBytes = []byte(": ") - openParenBytes = []byte("(") - closeParenBytes = []byte(")") - nilBytes = []byte("nil") - nilParenBytes = []byte("(nil)") - circularBytes = []byte("already_shown") - invalidAngleBytes = []byte("<invalid>") -) - -// hexDigits is used to map a decimal value to a hex digit. -var hexDigits = "0123456789abcdef" - -// printBool outputs a boolean value as true or false to Writer w. -func printBool(w io.Writer, val bool) { - if val { - w.Write(trueBytes) - } else { - w.Write(falseBytes) - } -} - -// printInt outputs a signed integer value to Writer w. -func printInt(w io.Writer, val int64, base int) { - w.Write([]byte(strconv.FormatInt(val, base))) -} - -// printUint outputs an unsigned integer value to Writer w. -func printUint(w io.Writer, val uint64, base int) { - w.Write([]byte(strconv.FormatUint(val, base))) -} - -// printFloat outputs a floating point value using the specified precision, -// which is expected to be 32 or 64bit, to Writer w. -func printFloat(w io.Writer, val float64, precision int) { - w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) -} - -// printComplex outputs a complex value using the specified float precision -// for the real and imaginary parts to Writer w. -func printComplex(w io.Writer, c complex128, floatPrecision int) { - r := real(c) - w.Write(openParenBytes) - w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) - i := imag(c) - if i >= 0 { - w.Write(plusBytes) - } - w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) - w.Write(iBytes) - w.Write(closeParenBytes) -} - -// printHexPtr outputs a uintptr formatted as hexidecimal with a leading '0x' -// prefix to Writer w. -func printHexPtr(w io.Writer, p uintptr) { - // Null pointer. - num := uint64(p) - if num == 0 { - w.Write(nilBytes) - return - } - - // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix - buf := make([]byte, 18) - - // It's simpler to construct the hex string right to left. - base := uint64(16) - i := len(buf) - 1 - for num >= base { - buf[i] = hexDigits[num%base] - num /= base - i-- - } - buf[i] = hexDigits[num] - - // Add '0x' prefix. - i-- - buf[i] = 'x' - i-- - buf[i] = '0' - - // Strip unused leading bytes. - buf = buf[i:] - w.Write(buf) -} diff --git a/vendor/github.com/shurcooL/go/LICENSE b/vendor/github.com/shurcooL/go/LICENSE deleted file mode 100644 index 2b3af91..0000000 --- a/vendor/github.com/shurcooL/go/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Dmitri Shuralyov - -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/shurcooL/go/parserutil/parserutil.go b/vendor/github.com/shurcooL/go/parserutil/parserutil.go deleted file mode 100644 index 32b234d..0000000 --- a/vendor/github.com/shurcooL/go/parserutil/parserutil.go +++ /dev/null @@ -1,34 +0,0 @@ -// Package parserutil offers convenience functions for parsing Go code to AST. -package parserutil - -import ( - "errors" - "go/ast" - "go/parser" - "go/token" -) - -// ParseStmt is a convenience function for obtaining the AST of a statement x. -// The position information recorded in the AST is undefined. The filename used -// in error messages is the empty string. -func ParseStmt(x string) (ast.Stmt, error) { - file, err := parser.ParseFile(token.NewFileSet(), "", "package p;func _(){\n//line :1\n"+x+"\n;}", 0) - if err != nil { - return nil, err - } - return file.Decls[0].(*ast.FuncDecl).Body.List[0], nil -} - -// ParseDecl is a convenience function for obtaining the AST of a declaration x. -// The position information recorded in the AST is undefined. The filename used -// in error messages is the empty string. -func ParseDecl(x string) (ast.Decl, error) { - file, err := parser.ParseFile(token.NewFileSet(), "", "package p\n//line :1\n"+x+"\n", 0) - if err != nil { - return nil, err - } - if len(file.Decls) == 0 { - return nil, errors.New("no declaration") - } - return file.Decls[0], nil -} diff --git a/vendor/github.com/shurcooL/go/printerutil/printerutil.go b/vendor/github.com/shurcooL/go/printerutil/printerutil.go deleted file mode 100644 index 2306268..0000000 --- a/vendor/github.com/shurcooL/go/printerutil/printerutil.go +++ /dev/null @@ -1,36 +0,0 @@ -// Package printerutil provides formatted printing of AST nodes. -package printerutil - -import ( - "bytes" - "fmt" - "go/printer" - "go/token" -) - -// Consistent with the default gofmt behavior. -var config = printer.Config{Mode: printer.UseSpaces | printer.TabIndent, Tabwidth: 8} - -// SprintAst prints node, using fset, and returns it as string. -func SprintAst(fset *token.FileSet, node interface{}) string { - var buf bytes.Buffer - config.Fprint(&buf, fset, node) - return buf.String() -} - -// SprintAstBare prints node and returns it as string. -func SprintAstBare(node interface{}) string { - fset := token.NewFileSet() - return SprintAst(fset, node) -} - -// PrintlnAst prints node, using fset, to stdout. -func PrintlnAst(fset *token.FileSet, node interface{}) { - fmt.Println(SprintAst(fset, node)) -} - -// PrintlnAstBare prints node to stdout. -func PrintlnAstBare(node interface{}) { - fset := token.NewFileSet() - PrintlnAst(fset, node) -} diff --git a/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go b/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go deleted file mode 100644 index dbf56e4..0000000 --- a/vendor/github.com/shurcooL/go/reflectfind/reflectfind.go +++ /dev/null @@ -1,112 +0,0 @@ -// Package reflectfind offers funcs to perform deep-search via reflect to find instances that satisfy given query. -package reflectfind - -import "reflect" - -// First finds the first instances of i that satisfies query within d. -func First(d interface{}, query func(i interface{}) bool) interface{} { - s := state{Visited: make(map[uintptr]struct{})} - return s.findFirst(reflect.ValueOf(d), query) -} - -type state struct { - Visited map[uintptr]struct{} -} - -func (s *state) findFirst(v reflect.Value, query func(i interface{}) bool) interface{} { - // TODO: Should I check v.CanInterface()? It seems like I might be able to get away without it... - if query(v.Interface()) { - return v.Interface() - } - - switch v.Kind() { - case reflect.Struct: - for i := 0; i < v.NumField(); i++ { - if q := s.findFirst(v.Field(i), query); q != nil { - return q - } - } - case reflect.Map: - for _, key := range v.MapKeys() { - if q := s.findFirst(v.MapIndex(key), query); q != nil { - return q - } - } - case reflect.Array, reflect.Slice: - for i := 0; i < v.Len(); i++ { - if q := s.findFirst(v.Index(i), query); q != nil { - return q - } - } - case reflect.Ptr: - if !v.IsNil() { - if _, visited := s.Visited[v.Pointer()]; !visited { - s.Visited[v.Pointer()] = struct{}{} - if q := s.findFirst(v.Elem(), query); q != nil { - return q - } - } - } - case reflect.Interface: - if !v.IsNil() { - if q := s.findFirst(v.Elem(), query); q != nil { - return q - } - } - } - - return nil -} - -// All finds all instances of i that satisfy query within d. -func All(d interface{}, query func(i interface{}) bool) map[interface{}]struct{} { - s := stateAll{state: state{Visited: make(map[uintptr]struct{})}, Found: make(map[interface{}]struct{})} - s.findAll(reflect.ValueOf(d), query) - return s.Found -} - -type stateAll struct { - state - Found map[interface{}]struct{} -} - -func (s *stateAll) findAll(v reflect.Value, query func(i interface{}) bool) { - switch v.Kind() { - case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: - // TODO: Instead of skipping nil values, maybe pass the info as a bool parameter to query? - if v.IsNil() { - return - } - } - - // TODO: Should I check v.CanInterface()? It seems like I might be able to get away without it... - if query(v.Interface()) { - s.Found[v.Interface()] = struct{}{} - } - - switch v.Kind() { - case reflect.Struct: - for i := 0; i < v.NumField(); i++ { - s.findAll(v.Field(i), query) - } - case reflect.Map: - for _, key := range v.MapKeys() { - s.findAll(v.MapIndex(key), query) - } - case reflect.Array, reflect.Slice: - for i := 0; i < v.Len(); i++ { - s.findAll(v.Index(i), query) - } - case reflect.Ptr: - if !v.IsNil() { - if _, visited := s.Visited[v.Pointer()]; !visited { - s.Visited[v.Pointer()] = struct{}{} - s.findAll(v.Elem(), query) - } - } - case reflect.Interface: - if !v.IsNil() { - s.findAll(v.Elem(), query) - } - } -} diff --git a/vendor/github.com/shurcooL/go/reflectsource/callername.go b/vendor/github.com/shurcooL/go/reflectsource/callername.go deleted file mode 100644 index eda5543..0000000 --- a/vendor/github.com/shurcooL/go/reflectsource/callername.go +++ /dev/null @@ -1,219 +0,0 @@ -package reflectsource - -import ( - "bytes" - "fmt" - "go/ast" - "io/ioutil" - "runtime" - "strings" - - "github.com/shurcooL/go/parserutil" - "github.com/shurcooL/go/printerutil" - "github.com/shurcooL/go/reflectfind" -) - -// GetParentFuncAsString gets the parent func as a string. -func GetParentFuncAsString() string { - // TODO: Replace use of debug.Stack() with direct use of runtime package... - // TODO: Use runtime.FuncForPC(runtime.Caller()).Name() to get func name if source code not found. - stack := string(stack()) - - funcName := getLine(stack, 3) - funcName = funcName[1:strings.Index(funcName, ": ")] - if dotPos := strings.LastIndex(funcName, "."); dotPos != -1 { // Trim package prefix. - funcName = funcName[dotPos+1:] - } - - funcArgs := getLine(stack, 5) - funcArgs = funcArgs[strings.Index(funcArgs, ": ")+len(": "):] - funcArgs = funcArgs[strings.Index(funcArgs, "(") : strings.LastIndex(funcArgs, ")")+len(")")] // TODO: This may fail if there are 2+ func calls on one line. - - return funcName + funcArgs -} - -// GetParentFuncArgsAsString gets the parent func with its args as a string. -func GetParentFuncArgsAsString(args ...interface{}) string { - // TODO: Replace use of debug.Stack() with direct use of runtime package... - // TODO: Use runtime.FuncForPC(runtime.Caller()).Name() to get func name if source code not found. - stack := string(stack()) - - funcName := getLine(stack, 3) - funcName = funcName[1:strings.Index(funcName, ": ")] - if dotPos := strings.LastIndex(funcName, "."); dotPos != -1 { // Trim package prefix. - funcName = funcName[dotPos+1:] - } - - funcArgs := "(" - for i, arg := range args { - // TODO: Add arg names. Maybe not? - if i != 0 { - funcArgs += ", " - } - funcArgs += fmt.Sprintf("%#v", arg) // TODO: Maybe use goon instead. Need to move elsewhere to avoid import cycle. - } - funcArgs += ")" - - return funcName + funcArgs -} - -// GetExprAsString gets the expression as a string. -func GetExprAsString(_ interface{}) string { - return GetParentArgExprAsString(0) -} - -func getParent2ArgExprAllAsAst() []ast.Expr { - // TODO: Replace use of debug.Stack() with direct use of runtime package... - stack := string(stack()) - - // TODO: Bounds error checking, get rid of GetLine gists, etc. - parentName := getLine(stack, 5) - if !strings.Contains(parentName, ": ") { - // TODO: This happens when source file isn't present in same location as when built. See if can do anything better - // via direct use of runtime package (instead of debug.Stack(), which will exclude any func names)... - return nil - } - parentName = parentName[1:strings.Index(parentName, ": ")] - if dotPos := strings.LastIndex(parentName, "."); dotPos != -1 { // Trim package prefix. - parentName = parentName[dotPos+1:] - } - - str := getLine(stack, 7) - str = str[strings.Index(str, ": ")+len(": "):] - p, err := parserutil.ParseStmt(str) - if err != nil { - return nil - } - - innerQuery := func(i interface{}) bool { - if ident, ok := i.(*ast.Ident); ok && ident.Name == parentName { - return true - } - return false - } - - query := func(i interface{}) bool { - if c, ok := i.(*ast.CallExpr); ok && nil != reflectfind.First(c.Fun, innerQuery) { - return true - } - return false - } - callExpr, _ := reflectfind.First(p, query).(*ast.CallExpr) - - if callExpr == nil { - return nil - } - return callExpr.Args -} - -// GetParentArgExprAsString gets the argIndex argument expression of parent func call as a string. -func GetParentArgExprAsString(argIndex uint32) string { - args := getParent2ArgExprAllAsAst() - if args == nil { - return "<expr not found>" - } - if argIndex >= uint32(len(args)) { - return "<out of range>" - } - - return printerutil.SprintAstBare(args[argIndex]) -} - -// GetParentArgExprAllAsString gets all argument expressions of parent func call as a string. -func GetParentArgExprAllAsString() []string { - args := getParent2ArgExprAllAsAst() - if args == nil { - return nil - } - - out := make([]string, len(args)) - for i := range args { - out[i] = printerutil.SprintAstBare(args[i]) - } - return out -} - -func getMySecondArgExprAsString(int, int) string { - return GetParentArgExprAsString(1) -} - -func getLine(s string, lineIndex int) string { - return strings.Split(s, "\n")[lineIndex] -} - -var ( - dunno = []byte("???") - centerDot = []byte("·") - dot = []byte(".") - slash = []byte("/") -) - -// stack returns a formatted stack trace of the goroutine that calls it. -// For each routine, it includes the source line information and PC value, -// then attempts to discover, for Go functions, the calling function or -// method and the text of the line containing the invocation. -// -// It was deprecated in Go 1.5, suggested to use package runtime's Stack instead, -// and replaced by another implementation in Go 1.6. -// -// stack implements the Go 1.5 version of debug.Stack(), skipping 1 frame, -// instead of 2, since it's being called directly (rather than via debug.Stack()). -func stack() []byte { - buf := new(bytes.Buffer) // the returned data - // As we loop, we open files and read them. These variables record the currently - // loaded file. - var lines [][]byte - var lastFile string - for i := 1; ; i++ { // Caller we care about is the user, 1 frame up - pc, file, line, ok := runtime.Caller(i) - if !ok { - break - } - // Print this much at least. If we can't find the source, it won't show. - fmt.Fprintf(buf, "%s:%d (0x%x)\n", file, line, pc) - if file != lastFile { - data, err := ioutil.ReadFile(file) - if err != nil { - continue - } - lines = bytes.Split(data, []byte{'\n'}) - lastFile = file - } - line-- // in stack trace, lines are 1-indexed but our array is 0-indexed - fmt.Fprintf(buf, "\t%s: %s\n", function(pc), source(lines, line)) - } - return buf.Bytes() -} - -// source returns a space-trimmed slice of the n'th line. -func source(lines [][]byte, n int) []byte { - if n < 0 || n >= len(lines) { - return dunno - } - return bytes.Trim(lines[n], " \t") -} - -// function returns, if possible, the name of the function containing the PC. -func function(pc uintptr) []byte { - fn := runtime.FuncForPC(pc) - if fn == nil { - return dunno - } - name := []byte(fn.Name()) - // The name includes the path name to the package, which is unnecessary - // since the file name is already included. Plus, it has center dots. - // That is, we see - // runtime/debug.*T·ptrmethod - // and want - // *T.ptrmethod - // Since the package path might contains dots (e.g. code.google.com/...), - // we first remove the path prefix if there is one. - if lastslash := bytes.LastIndex(name, slash); lastslash >= 0 { - name = name[lastslash+1:] - } - if period := bytes.Index(name, dot); period >= 0 { - name = name[period+1:] - } - name = bytes.Replace(name, centerDot, dot, -1) - return name -} diff --git a/vendor/github.com/shurcooL/go/reflectsource/doc.go b/vendor/github.com/shurcooL/go/reflectsource/doc.go deleted file mode 100644 index 8cabcfa..0000000 --- a/vendor/github.com/shurcooL/go/reflectsource/doc.go +++ /dev/null @@ -1,9 +0,0 @@ -// Package sourcereflect implements run-time source reflection, allowing a program to -// look up string representation of objects from the underlying .go source files. -// -// Specifically, it implements ability to get name of caller funcs and their parameters. -// It also implements functionality to get a string containing source code of provided func. -// -// In order to succeed, it expects the program's source code to be available in normal location. -// It's intended to be used for development purposes, or for experimental programs. -package reflectsource diff --git a/vendor/github.com/shurcooL/go/reflectsource/funcsource.go b/vendor/github.com/shurcooL/go/reflectsource/funcsource.go deleted file mode 100644 index 9e2cf70..0000000 --- a/vendor/github.com/shurcooL/go/reflectsource/funcsource.go +++ /dev/null @@ -1,82 +0,0 @@ -package reflectsource - -import ( - "fmt" - "go/ast" - "go/parser" - "go/token" - "io/ioutil" - "reflect" - "runtime" - - "github.com/shurcooL/go/printerutil" - "github.com/shurcooL/go/reflectfind" -) - -// GetSourceAsString returns the source of the func f. -func GetSourceAsString(f interface{}) string { - // No need to check for f being nil, since that's handled below. - fv := reflect.ValueOf(f) - return GetFuncValueSourceAsString(fv) -} - -// GetFuncValueSourceAsString returns the source of the func value fv. -func GetFuncValueSourceAsString(fv reflect.Value) string { - // Checking the kind catches cases where f was nil, resulting in fv being a zero Value (i.e. invalid kind), - // as well as when fv is non-func. - if fv.Kind() != reflect.Func { - return "kind not func" - } - pc := fv.Pointer() - if pc == 0 { - return "nil" - } - function := runtime.FuncForPC(pc) - if function == nil { - return "nil" - } - file, line := function.FileLine(pc) - - var startIndex, endIndex int - { - b, err := ioutil.ReadFile(file) - if err != nil { - return "<file not found>" - } - startIndex, endIndex = getLineStartEndIndicies(b, line-1) - } - - fs := token.NewFileSet() - fileAst, err := parser.ParseFile(fs, file, nil, 0*parser.ParseComments) - if err != nil { - return "<ParseFile failed>" - } - - // TODO: Consider using ast.Walk() instead of custom FindFirst() - query := func(i interface{}) bool { - // TODO: Factor-out the unusual overlap check - if f, ok := i.(*ast.FuncLit); ok && ((startIndex <= int(f.Pos())-1 && int(f.Pos())-1 <= endIndex) || (int(f.Pos())-1 <= startIndex && startIndex <= int(f.End())-1)) { - return true - } - return false - } - funcAst := reflectfind.First(fileAst, query) - - // If func literal wasn't found, try again looking for func declaration - if funcAst == nil { - query := func(i interface{}) bool { - // TODO: Factor-out the unusual overlap check - if f, ok := i.(*ast.FuncDecl); ok && ((startIndex <= int(f.Pos())-1 && int(f.Pos())-1 <= endIndex) || (int(f.Pos())-1 <= startIndex && startIndex <= int(f.End())-1)) { - return true - } - return false - } - funcAst = reflectfind.First(fileAst, query) - } - - if funcAst == nil { - return fmt.Sprintf("<func src not found at %v:%v>", file, line) - } - - return printerutil.SprintAst(fs, funcAst) -} diff --git a/vendor/github.com/shurcooL/go/reflectsource/indicies.go b/vendor/github.com/shurcooL/go/reflectsource/indicies.go deleted file mode 100644 index ea2041c..0000000 --- a/vendor/github.com/shurcooL/go/reflectsource/indicies.go +++ /dev/null @@ -1,29 +0,0 @@ -package reflectsource - -import ( - "bytes" -) - -// getLineStartEndIndicies gets the starting and ending caret indicies of line with specified lineIndex. -// Does not include newline character. -// First line has index 0. -// Returns (-1, -1) if line is not found. -func getLineStartEndIndicies(b []byte, lineIndex int) (startIndex, endIndex int) { - index := 0 - for line := 0; ; line++ { - lineLength := bytes.IndexByte(b[index:], '\n') - if line == lineIndex { - if lineLength == -1 { - return index, len(b) - } else { - return index, index + lineLength - } - } - if lineLength == -1 { - break - } - index += lineLength + 1 - } - - return -1, -1 -} diff --git a/vendor/github.com/shurcooL/goexec/LICENSE b/vendor/github.com/shurcooL/goexec/LICENSE deleted file mode 100644 index 2b3af91..0000000 --- a/vendor/github.com/shurcooL/goexec/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Dmitri Shuralyov - -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/shurcooL/goexec/README.md b/vendor/github.com/shurcooL/goexec/README.md deleted file mode 100644 index cac6392..0000000 --- a/vendor/github.com/shurcooL/goexec/README.md +++ /dev/null @@ -1,82 +0,0 @@ -goexec -====== - -[![Go Reference](https://pkg.go.dev/badge/github.com/shurcooL/goexec.svg)](https://pkg.go.dev/github.com/shurcooL/goexec) - -goexec is a command line tool to execute Go code. Output is printed as goons to stdout. - -Installation ------------- - -```sh -go install github.com/shurcooL/goexec@latest -``` - -Usage ------ - -``` -Usage: goexec [flags] [packages] [package.]function(parameters) - echo parameters | goexec -stdin [flags] [packages] [package.]function - -compiler string - Compiler to use, one of: "gc", "gopherjs". (default "gc") - -n Print the generated source but do not run it. - -quiet - Do not dump the return values as a goon. - -stdin - Read func parameters from stdin instead. - -tags string - A comma-separated list of build tags to consider satisfied during the build. -``` - -Examples --------- - -```sh -$ goexec 'strings.Repeat("Go! ", 5)' -(string)("Go! Go! Go! Go! Go! ") - -$ goexec strings 'Replace("Calling Go functions from the terminal is hard.", "hard", "easy", -1)' -(string)("Calling Go functions from the terminal is easy.") - -# Note that parser.ParseExpr returns 2 values (ast.Expr, error). -$ goexec 'parser.ParseExpr("5 + 7")' -(*ast.BinaryExpr)(&ast.BinaryExpr{ - X: (*ast.BasicLit)(&ast.BasicLit{ - ValuePos: (token.Pos)(1), - Kind: (token.Token)(5), - Value: (string)("5"), - }), - OpPos: (token.Pos)(3), - Op: (token.Token)(12), - Y: (*ast.BasicLit)(&ast.BasicLit{ - ValuePos: (token.Pos)(5), - Kind: (token.Token)(5), - Value: (string)("7"), - }), -}) -(interface{})(nil) - -# Run function RepoRootForImportPath from package "golang.org/x/tools/go/vcs". -$ goexec 'vcs.RepoRootForImportPath("rsc.io/pdf", false)' -(*vcs.RepoRoot)(...) -(interface{})(nil) - -$ goexec -quiet 'fmt.Println("Use -quiet to disable output of goon; useful if you want to print to stdout.")' -Use -quiet to disable output of goon; useful if you want to print to stdout. - -$ echo '"fmt"' | goexec -stdin 'gist4727543.GetForcedUse' -(string)("var _ = fmt.Errorf") -``` - -Alternatives ------------- - -- [gommand](https://github.com/sno6/gommand) - Go one liner program, similar to python -c. -- [gorram](https://github.com/natefinch/gorram) - Like go run for any Go function. -- [goeval](https://github.com/dolmen-go/goeval) - Run Go snippets instantly from the command-line. - -License -------- - -- [MIT License](LICENSE) diff --git a/vendor/github.com/shurcooL/goexec/main.go b/vendor/github.com/shurcooL/goexec/main.go deleted file mode 100644 index 380f1a1..0000000 --- a/vendor/github.com/shurcooL/goexec/main.go +++ /dev/null @@ -1,154 +0,0 @@ -// goexec is a command line tool to execute Go code. Output is printed as goons to stdout. -package main - -import ( - "flag" - "fmt" - "go/build" - "io/ioutil" - "log" - "os" - "os/exec" - "path/filepath" - "strconv" - "strings" - - "golang.org/x/tools/imports" - - // We need go-goon to be available; this ensures getting goexec will get go-goon too. - _ "github.com/shurcooL/go-goon" -) - -var ( - quietFlag = flag.Bool("quiet", false, "Do not dump the return values as a goon.") - stdinFlag = flag.Bool("stdin", false, "Read func parameters from stdin instead.") - nFlag = flag.Bool("n", false, "Print the generated source but do not run it.") - compilerFlag = flag.String("compiler", "gc", `Compiler to use, one of: "gc", "gopherjs".`) - tagsFlag = flag.String("tags", "", "A comma-separated list of build tags to consider satisfied during the build.") -) - -func usage() { - fmt.Fprintln(os.Stderr, `Usage: goexec [flags] [packages] [package.]function(parameters) - echo parameters | goexec -stdin [flags] [packages] [package.]function`) - flag.PrintDefaults() -} - -func main() { - flag.Usage = usage - flag.Parse() - if flag.NArg() < 1 { - flag.Usage() - os.Exit(2) - } - switch *compilerFlag { - case "gc", "gopherjs": - default: - flag.Usage() - os.Exit(2) - } - - wd, err := os.Getwd() - if err != nil { - log.Fatalln(err) - } - - args := flag.Args() - importPaths := args[:len(args)-1] // All but last. - cmd := args[len(args)-1] // Last one. - if *stdinFlag { - stdin, err := ioutil.ReadAll(os.Stdin) - if err != nil { - log.Fatalln(err) - } - - cmd += "(" + strings.TrimSuffix(string(stdin), "\n") + ")" - } - if !*quietFlag { - cmd = "goon.Dump(" + cmd + ")" - } - - // Generate source code. - src := `package main - -import ( -` - if !*quietFlag { - src += ` "github.com/shurcooL/go-goon" -` - } - for _, importPath := range importPaths { - bpkg, err := build.Import(importPath, wd, build.FindOnly) - if err != nil { - log.Fatalln(err) - } - if build.IsLocalImport(bpkg.ImportPath) { - log.Fatalf("local import path %q not supported", bpkg.ImportPath) // TODO: Add support for this when it's a priority. - } - src += ` . ` + strconv.Quote(bpkg.ImportPath) + ` -` - } - src += `) - -func main() { - ` + cmd + ` -} -` - - // Run `goimports` on the source code. - { - out, err := imports.Process("gen.go", []byte(src), nil) - if err != nil { - fmt.Fprint(os.Stderr, src) - fmt.Fprintln(os.Stderr, "imports.Process:", err) // Output is like "gen.go:8:18: expected ...". - os.Exit(1) - } - src = string(out) - } - - if *nFlag { - fmt.Print(src) - return - } - - // Run the program. - err = run(src) - if err != nil { - fmt.Fprintln(os.Stderr, "### Error ###") - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func run(src string) error { - // Create a temp folder. - tempDir, err := ioutil.TempDir("", "goexec_") - if err != nil { - return err - } - defer func() { - err := os.RemoveAll(tempDir) - if err != nil { - fmt.Fprintln(os.Stderr, "warning: error removing temp dir:", err) - } - }() - - // Write the source code file. - tempFile := filepath.Join(tempDir, "gen.go") - err = ioutil.WriteFile(tempFile, []byte(src), 0600) - if err != nil { - return err - } - - // Compile and run the program. - var cmd *exec.Cmd - switch *compilerFlag { - case "gc": - cmd = exec.Command("go", "run", "-tags", *tagsFlag, tempFile) - case "gopherjs": - cmd = exec.Command("gopherjs", "run", "--tags", *tagsFlag, tempFile) - } - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd.Run() -} diff --git a/vendor/golang.org/x/mod/LICENSE b/vendor/golang.org/x/mod/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/mod/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/mod/PATENTS b/vendor/golang.org/x/mod/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/mod/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go deleted file mode 100644 index 150f887..0000000 --- a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go +++ /dev/null @@ -1,78 +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. - -// Package lazyregexp is a thin wrapper over regexp, allowing the use of global -// regexp variables without forcing them to be compiled at init. -package lazyregexp - -import ( - "os" - "regexp" - "strings" - "sync" -) - -// Regexp is a wrapper around [regexp.Regexp], where the underlying regexp will be -// compiled the first time it is needed. -type Regexp struct { - str string - once sync.Once - rx *regexp.Regexp -} - -func (r *Regexp) re() *regexp.Regexp { - r.once.Do(r.build) - return r.rx -} - -func (r *Regexp) build() { - r.rx = regexp.MustCompile(r.str) - r.str = "" -} - -func (r *Regexp) FindSubmatch(s []byte) [][]byte { - return r.re().FindSubmatch(s) -} - -func (r *Regexp) FindStringSubmatch(s string) []string { - return r.re().FindStringSubmatch(s) -} - -func (r *Regexp) FindStringSubmatchIndex(s string) []int { - return r.re().FindStringSubmatchIndex(s) -} - -func (r *Regexp) ReplaceAllString(src, repl string) string { - return r.re().ReplaceAllString(src, repl) -} - -func (r *Regexp) FindString(s string) string { - return r.re().FindString(s) -} - -func (r *Regexp) FindAllString(s string, n int) []string { - return r.re().FindAllString(s, n) -} - -func (r *Regexp) MatchString(s string) bool { - return r.re().MatchString(s) -} - -func (r *Regexp) SubexpNames() []string { - return r.re().SubexpNames() -} - -var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") - -// New creates a new lazy regexp, delaying the compiling work until it is first -// needed. If the code is being run as part of tests, the regexp compiling will -// happen immediately. -func New(str string) *Regexp { - lr := &Regexp{str: str} - if inTest { - // In tests, always compile the regexps early. - lr.re() - } - return lr -} diff --git a/vendor/golang.org/x/mod/modfile/print.go b/vendor/golang.org/x/mod/modfile/print.go deleted file mode 100644 index 2a0123d..0000000 --- a/vendor/golang.org/x/mod/modfile/print.go +++ /dev/null @@ -1,184 +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. - -// Module file printer. - -package modfile - -import ( - "bytes" - "fmt" - "strings" -) - -// Format returns a go.mod file as a byte slice, formatted in standard style. -func Format(f *FileSyntax) []byte { - pr := &printer{} - pr.file(f) - - // remove trailing blank lines - b := pr.Bytes() - for len(b) > 0 && b[len(b)-1] == '\n' && (len(b) == 1 || b[len(b)-2] == '\n') { - b = b[:len(b)-1] - } - return b -} - -// A printer collects the state during printing of a file or expression. -type printer struct { - bytes.Buffer // output buffer - comment []Comment // pending end-of-line comments - margin int // left margin (indent), a number of tabs -} - -// printf prints to the buffer. -func (p *printer) printf(format string, args ...interface{}) { - fmt.Fprintf(p, format, args...) -} - -// indent returns the position on the current line, in bytes, 0-indexed. -func (p *printer) indent() int { - b := p.Bytes() - n := 0 - for n < len(b) && b[len(b)-1-n] != '\n' { - n++ - } - return n -} - -// newline ends the current line, flushing end-of-line comments. -func (p *printer) newline() { - if len(p.comment) > 0 { - p.printf(" ") - for i, com := range p.comment { - if i > 0 { - p.trim() - p.printf("\n") - for i := 0; i < p.margin; i++ { - p.printf("\t") - } - } - p.printf("%s", strings.TrimSpace(com.Token)) - } - p.comment = p.comment[:0] - } - - p.trim() - if b := p.Bytes(); len(b) == 0 || (len(b) >= 2 && b[len(b)-1] == '\n' && b[len(b)-2] == '\n') { - // skip the blank line at top of file or after a blank line - } else { - p.printf("\n") - } - for i := 0; i < p.margin; i++ { - p.printf("\t") - } -} - -// trim removes trailing spaces and tabs from the current line. -func (p *printer) trim() { - // Remove trailing spaces and tabs from line we're about to end. - b := p.Bytes() - n := len(b) - for n > 0 && (b[n-1] == '\t' || b[n-1] == ' ') { - n-- - } - p.Truncate(n) -} - -// file formats the given file into the print buffer. -func (p *printer) file(f *FileSyntax) { - for _, com := range f.Before { - p.printf("%s", strings.TrimSpace(com.Token)) - p.newline() - } - - for i, stmt := range f.Stmt { - switch x := stmt.(type) { - case *CommentBlock: - // comments already handled - p.expr(x) - - default: - p.expr(x) - p.newline() - } - - for _, com := range stmt.Comment().After { - p.printf("%s", strings.TrimSpace(com.Token)) - p.newline() - } - - if i+1 < len(f.Stmt) { - p.newline() - } - } -} - -func (p *printer) expr(x Expr) { - // Emit line-comments preceding this expression. - if before := x.Comment().Before; len(before) > 0 { - // Want to print a line comment. - // Line comments must be at the current margin. - p.trim() - if p.indent() > 0 { - // There's other text on the line. Start a new line. - p.printf("\n") - } - // Re-indent to margin. - for i := 0; i < p.margin; i++ { - p.printf("\t") - } - for _, com := range before { - p.printf("%s", strings.TrimSpace(com.Token)) - p.newline() - } - } - - switch x := x.(type) { - default: - panic(fmt.Errorf("printer: unexpected type %T", x)) - - case *CommentBlock: - // done - - case *LParen: - p.printf("(") - case *RParen: - p.printf(")") - - case *Line: - p.tokens(x.Token) - - case *LineBlock: - p.tokens(x.Token) - p.printf(" ") - p.expr(&x.LParen) - p.margin++ - for _, l := range x.Line { - p.newline() - p.expr(l) - } - p.margin-- - p.newline() - p.expr(&x.RParen) - } - - // Queue end-of-line comments for printing when we - // reach the end of the line. - p.comment = append(p.comment, x.Comment().Suffix...) -} - -func (p *printer) tokens(tokens []string) { - sep := "" - for _, t := range tokens { - if t == "," || t == ")" || t == "]" || t == "}" { - sep = "" - } - p.printf("%s%s", sep, t) - sep = " " - if t == "(" || t == "[" || t == "{" { - sep = "" - } - } -} diff --git a/vendor/golang.org/x/mod/modfile/read.go b/vendor/golang.org/x/mod/modfile/read.go deleted file mode 100644 index 2d74868..0000000 --- a/vendor/golang.org/x/mod/modfile/read.go +++ /dev/null @@ -1,964 +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. - -package modfile - -import ( - "bytes" - "errors" - "fmt" - "os" - "strconv" - "strings" - "unicode" - "unicode/utf8" -) - -// A Position describes an arbitrary source position in a file, including the -// file, line, column, and byte offset. -type Position struct { - Line int // line in input (starting at 1) - LineRune int // rune in line (starting at 1) - Byte int // byte in input (starting at 0) -} - -// add returns the position at the end of s, assuming it starts at p. -func (p Position) add(s string) Position { - p.Byte += len(s) - if n := strings.Count(s, "\n"); n > 0 { - p.Line += n - s = s[strings.LastIndex(s, "\n")+1:] - p.LineRune = 1 - } - p.LineRune += utf8.RuneCountInString(s) - return p -} - -// An Expr represents an input element. -type Expr interface { - // Span returns the start and end position of the expression, - // excluding leading or trailing comments. - Span() (start, end Position) - - // Comment returns the comments attached to the expression. - // This method would normally be named 'Comments' but that - // would interfere with embedding a type of the same name. - Comment() *Comments -} - -// A Comment represents a single // comment. -type Comment struct { - Start Position - Token string // without trailing newline - Suffix bool // an end of line (not whole line) comment -} - -// Comments collects the comments associated with an expression. -type Comments struct { - Before []Comment // whole-line comments before this expression - Suffix []Comment // end-of-line comments after this expression - - // For top-level expressions only, After lists whole-line - // comments following the expression. - After []Comment -} - -// Comment returns the receiver. This isn't useful by itself, but -// a [Comments] struct is embedded into all the expression -// implementation types, and this gives each of those a Comment -// method to satisfy the Expr interface. -func (c *Comments) Comment() *Comments { - return c -} - -// A FileSyntax represents an entire go.mod file. -type FileSyntax struct { - Name string // file path - Comments - Stmt []Expr -} - -func (x *FileSyntax) Span() (start, end Position) { - if len(x.Stmt) == 0 { - return - } - start, _ = x.Stmt[0].Span() - _, end = x.Stmt[len(x.Stmt)-1].Span() - return start, end -} - -// addLine adds a line containing the given tokens to the file. -// -// If the first token of the hint matches the first token of the -// line, the new line is added at the end of the block containing hint, -// extracting hint into a new block if it is not yet in one. -// -// If the hint is non-nil buts its first token does not match, -// the new line is added after the block containing hint -// (or hint itself, if not in a block). -// -// If no hint is provided, addLine appends the line to the end of -// the last block with a matching first token, -// or to the end of the file if no such block exists. -func (x *FileSyntax) addLine(hint Expr, tokens ...string) *Line { - if hint == nil { - // If no hint given, add to the last statement of the given type. - Loop: - for i := len(x.Stmt) - 1; i >= 0; i-- { - stmt := x.Stmt[i] - switch stmt := stmt.(type) { - case *Line: - if stmt.Token != nil && stmt.Token[0] == tokens[0] { - hint = stmt - break Loop - } - case *LineBlock: - if stmt.Token[0] == tokens[0] { - hint = stmt - break Loop - } - } - } - } - - newLineAfter := func(i int) *Line { - new := &Line{Token: tokens} - if i == len(x.Stmt) { - x.Stmt = append(x.Stmt, new) - } else { - x.Stmt = append(x.Stmt, nil) - copy(x.Stmt[i+2:], x.Stmt[i+1:]) - x.Stmt[i+1] = new - } - return new - } - - if hint != nil { - for i, stmt := range x.Stmt { - switch stmt := stmt.(type) { - case *Line: - if stmt == hint { - if stmt.Token == nil || stmt.Token[0] != tokens[0] { - return newLineAfter(i) - } - - // Convert line to line block. - stmt.InBlock = true - block := &LineBlock{Token: stmt.Token[:1], Line: []*Line{stmt}} - stmt.Token = stmt.Token[1:] - x.Stmt[i] = block - new := &Line{Token: tokens[1:], InBlock: true} - block.Line = append(block.Line, new) - return new - } - - case *LineBlock: - if stmt == hint { - if stmt.Token[0] != tokens[0] { - return newLineAfter(i) - } - - new := &Line{Token: tokens[1:], InBlock: true} - stmt.Line = append(stmt.Line, new) - return new - } - - for j, line := range stmt.Line { - if line == hint { - if stmt.Token[0] != tokens[0] { - return newLineAfter(i) - } - - // Add new line after hint within the block. - stmt.Line = append(stmt.Line, nil) - copy(stmt.Line[j+2:], stmt.Line[j+1:]) - new := &Line{Token: tokens[1:], InBlock: true} - stmt.Line[j+1] = new - return new - } - } - } - } - } - - new := &Line{Token: tokens} - x.Stmt = append(x.Stmt, new) - return new -} - -func (x *FileSyntax) updateLine(line *Line, tokens ...string) { - if line.InBlock { - tokens = tokens[1:] - } - line.Token = tokens -} - -// markRemoved modifies line so that it (and its end-of-line comment, if any) -// will be dropped by (*FileSyntax).Cleanup. -func (line *Line) markRemoved() { - line.Token = nil - line.Comments.Suffix = nil -} - -// Cleanup cleans up the file syntax x after any edit operations. -// To avoid quadratic behavior, (*Line).markRemoved marks the line as dead -// by setting line.Token = nil but does not remove it from the slice -// in which it appears. After edits have all been indicated, -// calling Cleanup cleans out the dead lines. -func (x *FileSyntax) Cleanup() { - w := 0 - for _, stmt := range x.Stmt { - switch stmt := stmt.(type) { - case *Line: - if stmt.Token == nil { - continue - } - case *LineBlock: - ww := 0 - for _, line := range stmt.Line { - if line.Token != nil { - stmt.Line[ww] = line - ww++ - } - } - if ww == 0 { - continue - } - if ww == 1 && len(stmt.RParen.Comments.Before) == 0 { - // Collapse block into single line but keep the Line reference used by the - // parsed File structure. - *stmt.Line[0] = Line{ - Comments: Comments{ - Before: commentsAdd(stmt.Before, stmt.Line[0].Before), - Suffix: commentsAdd(stmt.Line[0].Suffix, stmt.Suffix), - After: commentsAdd(stmt.Line[0].After, stmt.After), - }, - Token: stringsAdd(stmt.Token, stmt.Line[0].Token), - } - x.Stmt[w] = stmt.Line[0] - w++ - continue - } - stmt.Line = stmt.Line[:ww] - } - x.Stmt[w] = stmt - w++ - } - x.Stmt = x.Stmt[:w] -} - -func commentsAdd(x, y []Comment) []Comment { - return append(x[:len(x):len(x)], y...) -} - -func stringsAdd(x, y []string) []string { - return append(x[:len(x):len(x)], y...) -} - -// A CommentBlock represents a top-level block of comments separate -// from any rule. -type CommentBlock struct { - Comments - Start Position -} - -func (x *CommentBlock) Span() (start, end Position) { - return x.Start, x.Start -} - -// A Line is a single line of tokens. -type Line struct { - Comments - Start Position - Token []string - InBlock bool - End Position -} - -func (x *Line) Span() (start, end Position) { - return x.Start, x.End -} - -// A LineBlock is a factored block of lines, like -// -// require ( -// "x" -// "y" -// ) -type LineBlock struct { - Comments - Start Position - LParen LParen - Token []string - Line []*Line - RParen RParen -} - -func (x *LineBlock) Span() (start, end Position) { - return x.Start, x.RParen.Pos.add(")") -} - -// An LParen represents the beginning of a parenthesized line block. -// It is a place to store suffix comments. -type LParen struct { - Comments - Pos Position -} - -func (x *LParen) Span() (start, end Position) { - return x.Pos, x.Pos.add(")") -} - -// An RParen represents the end of a parenthesized line block. -// It is a place to store whole-line (before) comments. -type RParen struct { - Comments - Pos Position -} - -func (x *RParen) Span() (start, end Position) { - return x.Pos, x.Pos.add(")") -} - -// An input represents a single input file being parsed. -type input struct { - // Lexing state. - filename string // name of input file, for errors - complete []byte // entire input - remaining []byte // remaining input - tokenStart []byte // token being scanned to end of input - token token // next token to be returned by lex, peek - pos Position // current input position - comments []Comment // accumulated comments - - // Parser state. - file *FileSyntax // returned top-level syntax tree - parseErrors ErrorList // errors encountered during parsing - - // Comment assignment state. - pre []Expr // all expressions, in preorder traversal - post []Expr // all expressions, in postorder traversal -} - -func newInput(filename string, data []byte) *input { - return &input{ - filename: filename, - complete: data, - remaining: data, - pos: Position{Line: 1, LineRune: 1, Byte: 0}, - } -} - -// parse parses the input file. -func parse(file string, data []byte) (f *FileSyntax, err error) { - // The parser panics for both routine errors like syntax errors - // and for programmer bugs like array index errors. - // Turn both into error returns. Catching bug panics is - // especially important when processing many files. - in := newInput(file, data) - defer func() { - if e := recover(); e != nil && e != &in.parseErrors { - in.parseErrors = append(in.parseErrors, Error{ - Filename: in.filename, - Pos: in.pos, - Err: fmt.Errorf("internal error: %v", e), - }) - } - if err == nil && len(in.parseErrors) > 0 { - err = in.parseErrors - } - }() - - // Prime the lexer by reading in the first token. It will be available - // in the next peek() or lex() call. - in.readToken() - - // Invoke the parser. - in.parseFile() - if len(in.parseErrors) > 0 { - return nil, in.parseErrors - } - in.file.Name = in.filename - - // Assign comments to nearby syntax. - in.assignComments() - - return in.file, nil -} - -// Error is called to report an error. -// Error does not return: it panics. -func (in *input) Error(s string) { - in.parseErrors = append(in.parseErrors, Error{ - Filename: in.filename, - Pos: in.pos, - Err: errors.New(s), - }) - panic(&in.parseErrors) -} - -// eof reports whether the input has reached end of file. -func (in *input) eof() bool { - return len(in.remaining) == 0 -} - -// peekRune returns the next rune in the input without consuming it. -func (in *input) peekRune() int { - if len(in.remaining) == 0 { - return 0 - } - r, _ := utf8.DecodeRune(in.remaining) - return int(r) -} - -// peekPrefix reports whether the remaining input begins with the given prefix. -func (in *input) peekPrefix(prefix string) bool { - // This is like bytes.HasPrefix(in.remaining, []byte(prefix)) - // but without the allocation of the []byte copy of prefix. - for i := 0; i < len(prefix); i++ { - if i >= len(in.remaining) || in.remaining[i] != prefix[i] { - return false - } - } - return true -} - -// readRune consumes and returns the next rune in the input. -func (in *input) readRune() int { - if len(in.remaining) == 0 { - in.Error("internal lexer error: readRune at EOF") - } - r, size := utf8.DecodeRune(in.remaining) - in.remaining = in.remaining[size:] - if r == '\n' { - in.pos.Line++ - in.pos.LineRune = 1 - } else { - in.pos.LineRune++ - } - in.pos.Byte += size - return int(r) -} - -type token struct { - kind tokenKind - pos Position - endPos Position - text string -} - -type tokenKind int - -const ( - _EOF tokenKind = -(iota + 1) - _EOLCOMMENT - _IDENT - _STRING - _COMMENT - - // newlines and punctuation tokens are allowed as ASCII codes. -) - -func (k tokenKind) isComment() bool { - return k == _COMMENT || k == _EOLCOMMENT -} - -// isEOL returns whether a token terminates a line. -func (k tokenKind) isEOL() bool { - return k == _EOF || k == _EOLCOMMENT || k == '\n' -} - -// startToken marks the beginning of the next input token. -// It must be followed by a call to endToken, once the token's text has -// been consumed using readRune. -func (in *input) startToken() { - in.tokenStart = in.remaining - in.token.text = "" - in.token.pos = in.pos -} - -// endToken marks the end of an input token. -// It records the actual token string in tok.text. -// A single trailing newline (LF or CRLF) will be removed from comment tokens. -func (in *input) endToken(kind tokenKind) { - in.token.kind = kind - text := string(in.tokenStart[:len(in.tokenStart)-len(in.remaining)]) - if kind.isComment() { - if strings.HasSuffix(text, "\r\n") { - text = text[:len(text)-2] - } else { - text = strings.TrimSuffix(text, "\n") - } - } - in.token.text = text - in.token.endPos = in.pos -} - -// peek returns the kind of the next token returned by lex. -func (in *input) peek() tokenKind { - return in.token.kind -} - -// lex is called from the parser to obtain the next input token. -func (in *input) lex() token { - tok := in.token - in.readToken() - return tok -} - -// readToken lexes the next token from the text and stores it in in.token. -func (in *input) readToken() { - // Skip past spaces, stopping at non-space or EOF. - for !in.eof() { - c := in.peekRune() - if c == ' ' || c == '\t' || c == '\r' { - in.readRune() - continue - } - - // Comment runs to end of line. - if in.peekPrefix("//") { - in.startToken() - - // Is this comment the only thing on its line? - // Find the last \n before this // and see if it's all - // spaces from there to here. - i := bytes.LastIndex(in.complete[:in.pos.Byte], []byte("\n")) - suffix := len(bytes.TrimSpace(in.complete[i+1:in.pos.Byte])) > 0 - in.readRune() - in.readRune() - - // Consume comment. - for len(in.remaining) > 0 && in.readRune() != '\n' { - } - - // If we are at top level (not in a statement), hand the comment to - // the parser as a _COMMENT token. The grammar is written - // to handle top-level comments itself. - if !suffix { - in.endToken(_COMMENT) - return - } - - // Otherwise, save comment for later attachment to syntax tree. - in.endToken(_EOLCOMMENT) - in.comments = append(in.comments, Comment{in.token.pos, in.token.text, suffix}) - return - } - - if in.peekPrefix("/*") { - in.Error("mod files must use // comments (not /* */ comments)") - } - - // Found non-space non-comment. - break - } - - // Found the beginning of the next token. - in.startToken() - - // End of file. - if in.eof() { - in.endToken(_EOF) - return - } - - // Punctuation tokens. - switch c := in.peekRune(); c { - case '\n', '(', ')', '[', ']', '{', '}', ',': - in.readRune() - in.endToken(tokenKind(c)) - return - - case '"', '`': // quoted string - quote := c - in.readRune() - for { - if in.eof() { - in.pos = in.token.pos - in.Error("unexpected EOF in string") - } - if in.peekRune() == '\n' { - in.Error("unexpected newline in string") - } - c := in.readRune() - if c == quote { - break - } - if c == '\\' && quote != '`' { - if in.eof() { - in.pos = in.token.pos - in.Error("unexpected EOF in string") - } - in.readRune() - } - } - in.endToken(_STRING) - return - } - - // Checked all punctuation. Must be identifier token. - if c := in.peekRune(); !isIdent(c) { - in.Error(fmt.Sprintf("unexpected input character %#q", c)) - } - - // Scan over identifier. - for isIdent(in.peekRune()) { - if in.peekPrefix("//") { - break - } - if in.peekPrefix("/*") { - in.Error("mod files must use // comments (not /* */ comments)") - } - in.readRune() - } - in.endToken(_IDENT) -} - -// isIdent reports whether c is an identifier rune. -// We treat most printable runes as identifier runes, except for a handful of -// ASCII punctuation characters. -func isIdent(c int) bool { - switch r := rune(c); r { - case ' ', '(', ')', '[', ']', '{', '}', ',': - return false - default: - return !unicode.IsSpace(r) && unicode.IsPrint(r) - } -} - -// Comment assignment. -// We build two lists of all subexpressions, preorder and postorder. -// The preorder list is ordered by start location, with outer expressions first. -// The postorder list is ordered by end location, with outer expressions last. -// We use the preorder list to assign each whole-line comment to the syntax -// immediately following it, and we use the postorder list to assign each -// end-of-line comment to the syntax immediately preceding it. - -// order walks the expression adding it and its subexpressions to the -// preorder and postorder lists. -func (in *input) order(x Expr) { - if x != nil { - in.pre = append(in.pre, x) - } - switch x := x.(type) { - default: - panic(fmt.Errorf("order: unexpected type %T", x)) - case nil: - // nothing - case *LParen, *RParen: - // nothing - case *CommentBlock: - // nothing - case *Line: - // nothing - case *FileSyntax: - for _, stmt := range x.Stmt { - in.order(stmt) - } - case *LineBlock: - in.order(&x.LParen) - for _, l := range x.Line { - in.order(l) - } - in.order(&x.RParen) - } - if x != nil { - in.post = append(in.post, x) - } -} - -// assignComments attaches comments to nearby syntax. -func (in *input) assignComments() { - const debug = false - - // Generate preorder and postorder lists. - in.order(in.file) - - // Split into whole-line comments and suffix comments. - var line, suffix []Comment - for _, com := range in.comments { - if com.Suffix { - suffix = append(suffix, com) - } else { - line = append(line, com) - } - } - - if debug { - for _, c := range line { - fmt.Fprintf(os.Stderr, "LINE %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) - } - } - - // Assign line comments to syntax immediately following. - for _, x := range in.pre { - start, _ := x.Span() - if debug { - fmt.Fprintf(os.Stderr, "pre %T :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte) - } - xcom := x.Comment() - for len(line) > 0 && start.Byte >= line[0].Start.Byte { - if debug { - fmt.Fprintf(os.Stderr, "ASSIGN LINE %q #%d\n", line[0].Token, line[0].Start.Byte) - } - xcom.Before = append(xcom.Before, line[0]) - line = line[1:] - } - } - - // Remaining line comments go at end of file. - in.file.After = append(in.file.After, line...) - - if debug { - for _, c := range suffix { - fmt.Fprintf(os.Stderr, "SUFFIX %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) - } - } - - // Assign suffix comments to syntax immediately before. - for i := len(in.post) - 1; i >= 0; i-- { - x := in.post[i] - - start, end := x.Span() - if debug { - fmt.Fprintf(os.Stderr, "post %T :%d:%d #%d :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte, end.Line, end.LineRune, end.Byte) - } - - // Do not assign suffix comments to end of line block or whole file. - // Instead assign them to the last element inside. - switch x.(type) { - case *FileSyntax: - continue - } - - // Do not assign suffix comments to something that starts - // on an earlier line, so that in - // - // x ( y - // z ) // comment - // - // we assign the comment to z and not to x ( ... ). - if start.Line != end.Line { - continue - } - xcom := x.Comment() - for len(suffix) > 0 && end.Byte <= suffix[len(suffix)-1].Start.Byte { - if debug { - fmt.Fprintf(os.Stderr, "ASSIGN SUFFIX %q #%d\n", suffix[len(suffix)-1].Token, suffix[len(suffix)-1].Start.Byte) - } - xcom.Suffix = append(xcom.Suffix, suffix[len(suffix)-1]) - suffix = suffix[:len(suffix)-1] - } - } - - // We assigned suffix comments in reverse. - // If multiple suffix comments were appended to the same - // expression node, they are now in reverse. Fix that. - for _, x := range in.post { - reverseComments(x.Comment().Suffix) - } - - // Remaining suffix comments go at beginning of file. - in.file.Before = append(in.file.Before, suffix...) -} - -// reverseComments reverses the []Comment list. -func reverseComments(list []Comment) { - for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 { - list[i], list[j] = list[j], list[i] - } -} - -func (in *input) parseFile() { - in.file = new(FileSyntax) - var cb *CommentBlock - for { - switch in.peek() { - case '\n': - in.lex() - if cb != nil { - in.file.Stmt = append(in.file.Stmt, cb) - cb = nil - } - case _COMMENT: - tok := in.lex() - if cb == nil { - cb = &CommentBlock{Start: tok.pos} - } - com := cb.Comment() - com.Before = append(com.Before, Comment{Start: tok.pos, Token: tok.text}) - case _EOF: - if cb != nil { - in.file.Stmt = append(in.file.Stmt, cb) - } - return - default: - in.parseStmt() - if cb != nil { - in.file.Stmt[len(in.file.Stmt)-1].Comment().Before = cb.Before - cb = nil - } - } - } -} - -func (in *input) parseStmt() { - tok := in.lex() - start := tok.pos - end := tok.endPos - tokens := []string{tok.text} - for { - tok := in.lex() - switch { - case tok.kind.isEOL(): - in.file.Stmt = append(in.file.Stmt, &Line{ - Start: start, - Token: tokens, - End: end, - }) - return - - case tok.kind == '(': - if next := in.peek(); next.isEOL() { - // Start of block: no more tokens on this line. - in.file.Stmt = append(in.file.Stmt, in.parseLineBlock(start, tokens, tok)) - return - } else if next == ')' { - rparen := in.lex() - if in.peek().isEOL() { - // Empty block. - in.lex() - in.file.Stmt = append(in.file.Stmt, &LineBlock{ - Start: start, - Token: tokens, - LParen: LParen{Pos: tok.pos}, - RParen: RParen{Pos: rparen.pos}, - }) - return - } - // '( )' in the middle of the line, not a block. - tokens = append(tokens, tok.text, rparen.text) - } else { - // '(' in the middle of the line, not a block. - tokens = append(tokens, tok.text) - } - - default: - tokens = append(tokens, tok.text) - end = tok.endPos - } - } -} - -func (in *input) parseLineBlock(start Position, token []string, lparen token) *LineBlock { - x := &LineBlock{ - Start: start, - Token: token, - LParen: LParen{Pos: lparen.pos}, - } - var comments []Comment - for { - switch in.peek() { - case _EOLCOMMENT: - // Suffix comment, will be attached later by assignComments. - in.lex() - case '\n': - // Blank line. Add an empty comment to preserve it. - in.lex() - if len(comments) == 0 && len(x.Line) > 0 || len(comments) > 0 && comments[len(comments)-1].Token != "" { - comments = append(comments, Comment{}) - } - case _COMMENT: - tok := in.lex() - comments = append(comments, Comment{Start: tok.pos, Token: tok.text}) - case _EOF: - in.Error(fmt.Sprintf("syntax error (unterminated block started at %s:%d:%d)", in.filename, x.Start.Line, x.Start.LineRune)) - case ')': - rparen := in.lex() - // Don't preserve blank lines (denoted by a single empty comment, added above) - // at the end of the block. - if len(comments) == 1 && comments[0] == (Comment{}) { - comments = nil - } - x.RParen.Before = comments - x.RParen.Pos = rparen.pos - if !in.peek().isEOL() { - in.Error("syntax error (expected newline after closing paren)") - } - in.lex() - return x - default: - l := in.parseLine() - x.Line = append(x.Line, l) - l.Comment().Before = comments - comments = nil - } - } -} - -func (in *input) parseLine() *Line { - tok := in.lex() - if tok.kind.isEOL() { - in.Error("internal parse error: parseLine at end of line") - } - start := tok.pos - end := tok.endPos - tokens := []string{tok.text} - for { - tok := in.lex() - if tok.kind.isEOL() { - return &Line{ - Start: start, - Token: tokens, - End: end, - InBlock: true, - } - } - tokens = append(tokens, tok.text) - end = tok.endPos - } -} - -var ( - slashSlash = []byte("//") - moduleStr = []byte("module") -) - -// ModulePath returns the module path from the gomod file text. -// If it cannot find a module path, it returns an empty string. -// It is tolerant of unrelated problems in the go.mod file. -func ModulePath(mod []byte) string { - for len(mod) > 0 { - line := mod - mod = nil - if i := bytes.IndexByte(line, '\n'); i >= 0 { - line, mod = line[:i], line[i+1:] - } - if i := bytes.Index(line, slashSlash); i >= 0 { - line = line[:i] - } - line = bytes.TrimSpace(line) - if !bytes.HasPrefix(line, moduleStr) { - continue - } - line = line[len(moduleStr):] - n := len(line) - line = bytes.TrimSpace(line) - if len(line) == n || len(line) == 0 { - continue - } - - if line[0] == '"' || line[0] == '`' { - p, err := strconv.Unquote(string(line)) - if err != nil { - return "" // malformed quoted string or multiline module path - } - return p - } - - return string(line) - } - return "" // missing module path -} diff --git a/vendor/golang.org/x/mod/modfile/rule.go b/vendor/golang.org/x/mod/modfile/rule.go deleted file mode 100644 index a86ee4f..0000000 --- a/vendor/golang.org/x/mod/modfile/rule.go +++ /dev/null @@ -1,1904 +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. - -// Package modfile implements a parser and formatter for go.mod files. -// -// The go.mod syntax is described in -// https://pkg.go.dev/cmd/go/#hdr-The_go_mod_file. -// -// The [Parse] and [ParseLax] functions both parse a go.mod file and return an -// abstract syntax tree. ParseLax ignores unknown statements and may be used to -// parse go.mod files that may have been developed with newer versions of Go. -// -// The [File] struct returned by Parse and ParseLax represent an abstract -// go.mod file. File has several methods like [File.AddNewRequire] and -// [File.DropReplace] that can be used to programmatically edit a file. -// -// The [Format] function formats a File back to a byte slice which can be -// written to a file. -package modfile - -import ( - "cmp" - "errors" - "fmt" - "path/filepath" - "slices" - "strconv" - "strings" - "unicode" - - "golang.org/x/mod/internal/lazyregexp" - "golang.org/x/mod/module" - "golang.org/x/mod/semver" -) - -// A File is the parsed, interpreted form of a go.mod file. -type File struct { - Module *Module - Go *Go - Toolchain *Toolchain - Godebug []*Godebug - Require []*Require - Exclude []*Exclude - Replace []*Replace - Retract []*Retract - Tool []*Tool - Ignore []*Ignore - - Syntax *FileSyntax -} - -// A Module is the module statement. -type Module struct { - Mod module.Version - Deprecated string - Syntax *Line -} - -// A Go is the go statement. -type Go struct { - Version string // "1.23" - Syntax *Line -} - -// A Toolchain is the toolchain statement. -type Toolchain struct { - Name string // "go1.21rc1" - Syntax *Line -} - -// A Godebug is a single godebug key=value statement. -type Godebug struct { - Key string - Value string - Syntax *Line -} - -// An Exclude is a single exclude statement. -type Exclude struct { - Mod module.Version - Syntax *Line -} - -// A Replace is a single replace statement. -type Replace struct { - Old module.Version - New module.Version - Syntax *Line -} - -// A Retract is a single retract statement. -type Retract struct { - VersionInterval - Rationale string - Syntax *Line -} - -// A Tool is a single tool statement. -type Tool struct { - Path string - Syntax *Line -} - -// An Ignore is a single ignore statement. -type Ignore struct { - Path string - Syntax *Line -} - -// A VersionInterval represents a range of versions with upper and lower bounds. -// Intervals are closed: both bounds are included. When Low is equal to High, -// the interval may refer to a single version ('v1.2.3') or an interval -// ('[v1.2.3, v1.2.3]'); both have the same representation. -type VersionInterval struct { - Low, High string -} - -// A Require is a single require statement. -type Require struct { - Mod module.Version - Indirect bool // has "// indirect" comment - Syntax *Line -} - -func (r *Require) markRemoved() { - r.Syntax.markRemoved() - *r = Require{} -} - -func (r *Require) setVersion(v string) { - r.Mod.Version = v - - if line := r.Syntax; len(line.Token) > 0 { - if line.InBlock { - // If the line is preceded by an empty line, remove it; see - // https://golang.org/issue/33779. - if len(line.Comments.Before) == 1 && len(line.Comments.Before[0].Token) == 0 { - line.Comments.Before = line.Comments.Before[:0] - } - if len(line.Token) >= 2 { // example.com v1.2.3 - line.Token[1] = v - } - } else { - if len(line.Token) >= 3 { // require example.com v1.2.3 - line.Token[2] = v - } - } - } -} - -// setIndirect sets line to have (or not have) a "// indirect" comment. -func (r *Require) setIndirect(indirect bool) { - r.Indirect = indirect - line := r.Syntax - if isIndirect(line) == indirect { - return - } - if indirect { - // Adding comment. - if len(line.Suffix) == 0 { - // New comment. - line.Suffix = []Comment{{Token: "// indirect", Suffix: true}} - return - } - - com := &line.Suffix[0] - text := strings.TrimSpace(strings.TrimPrefix(com.Token, string(slashSlash))) - if text == "" { - // Empty comment. - com.Token = "// indirect" - return - } - - // Insert at beginning of existing comment. - com.Token = "// indirect; " + text - return - } - - // Removing comment. - f := strings.TrimSpace(strings.TrimPrefix(line.Suffix[0].Token, string(slashSlash))) - if f == "indirect" { - // Remove whole comment. - line.Suffix = nil - return - } - - // Remove comment prefix. - com := &line.Suffix[0] - i := strings.Index(com.Token, "indirect;") - com.Token = "//" + com.Token[i+len("indirect;"):] -} - -// isIndirect reports whether line has a "// indirect" comment, -// meaning it is in go.mod only for its effect on indirect dependencies, -// so that it can be dropped entirely once the effective version of the -// indirect dependency reaches the given minimum version. -func isIndirect(line *Line) bool { - if len(line.Suffix) == 0 { - return false - } - f := strings.Fields(strings.TrimPrefix(line.Suffix[0].Token, string(slashSlash))) - return (len(f) == 1 && f[0] == "indirect" || len(f) > 1 && f[0] == "indirect;") -} - -func (f *File) AddModuleStmt(path string) error { - if f.Syntax == nil { - f.Syntax = new(FileSyntax) - } - if f.Module == nil { - f.Module = &Module{ - Mod: module.Version{Path: path}, - Syntax: f.Syntax.addLine(nil, "module", AutoQuote(path)), - } - } else { - f.Module.Mod.Path = path - f.Syntax.updateLine(f.Module.Syntax, "module", AutoQuote(path)) - } - return nil -} - -func (f *File) AddComment(text string) { - if f.Syntax == nil { - f.Syntax = new(FileSyntax) - } - f.Syntax.Stmt = append(f.Syntax.Stmt, &CommentBlock{ - Comments: Comments{ - Before: []Comment{ - { - Token: text, - }, - }, - }, - }) -} - -type VersionFixer func(path, version string) (string, error) - -// errDontFix is returned by a VersionFixer to indicate the version should be -// left alone, even if it's not canonical. -var dontFixRetract VersionFixer = func(_, vers string) (string, error) { - return vers, nil -} - -// Parse parses and returns a go.mod file. -// -// file is the name of the file, used in positions and errors. -// -// data is the content of the file. -// -// fix is an optional function that canonicalizes module versions. -// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] -// must return the same string). -func Parse(file string, data []byte, fix VersionFixer) (*File, error) { - return parseToFile(file, data, fix, true) -} - -// ParseLax is like Parse but ignores unknown statements. -// It is used when parsing go.mod files other than the main module, -// under the theory that most statement types we add in the future will -// only apply in the main module, like exclude and replace, -// and so we get better gradual deployments if old go commands -// simply ignore those statements when found in go.mod files -// in dependencies. -func ParseLax(file string, data []byte, fix VersionFixer) (*File, error) { - return parseToFile(file, data, fix, false) -} - -func parseToFile(file string, data []byte, fix VersionFixer, strict bool) (parsed *File, err error) { - fs, err := parse(file, data) - if err != nil { - return nil, err - } - f := &File{ - Syntax: fs, - } - var errs ErrorList - - // fix versions in retract directives after the file is parsed. - // We need the module path to fix versions, and it might be at the end. - defer func() { - oldLen := len(errs) - f.fixRetract(fix, &errs) - if len(errs) > oldLen { - parsed, err = nil, errs - } - }() - - for _, x := range fs.Stmt { - switch x := x.(type) { - case *Line: - f.add(&errs, nil, x, x.Token[0], x.Token[1:], fix, strict) - - case *LineBlock: - if len(x.Token) > 1 { - if strict { - errs = append(errs, Error{ - Filename: file, - Pos: x.Start, - Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), - }) - } - continue - } - switch x.Token[0] { - default: - if strict { - errs = append(errs, Error{ - Filename: file, - Pos: x.Start, - Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), - }) - } - continue - case "module", "godebug", "require", "exclude", "replace", "retract", "tool", "ignore": - for _, l := range x.Line { - f.add(&errs, x, l, x.Token[0], l.Token, fix, strict) - } - } - } - } - - if len(errs) > 0 { - return nil, errs - } - return f, nil -} - -var GoVersionRE = lazyregexp.New(`^([1-9][0-9]*)\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?([a-z]+[0-9]+)?$`) -var laxGoVersionRE = lazyregexp.New(`^v?(([1-9][0-9]*)\.(0|[1-9][0-9]*))([^0-9].*)$`) - -// Toolchains must be named beginning with `go1`, -// like "go1.20.3" or "go1.20.3-gccgo". As a special case, "default" is also permitted. -// Note that this regexp is a much looser condition than go/version.IsValid, -// for forward compatibility. -// (This code has to be work to identify new toolchains even if we tweak the syntax in the future.) -var ToolchainRE = lazyregexp.New(`^default$|^go1($|\.)`) - -func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, args []string, fix VersionFixer, strict bool) { - // If strict is false, this module is a dependency. - // We ignore all unknown directives as well as main-module-only - // directives like replace and exclude. It will work better for - // forward compatibility if we can depend on modules that have unknown - // statements (presumed relevant only when acting as the main module) - // and simply ignore those statements. - if !strict { - switch verb { - case "go", "module", "retract", "require", "ignore": - // want these even for dependency go.mods - default: - return - } - } - - wrapModPathError := func(modPath string, err error) { - *errs = append(*errs, Error{ - Filename: f.Syntax.Name, - Pos: line.Start, - ModPath: modPath, - Verb: verb, - Err: err, - }) - } - wrapError := func(err error) { - *errs = append(*errs, Error{ - Filename: f.Syntax.Name, - Pos: line.Start, - Err: err, - }) - } - errorf := func(format string, args ...interface{}) { - wrapError(fmt.Errorf(format, args...)) - } - - switch verb { - default: - errorf("unknown directive: %s", verb) - - case "go": - if f.Go != nil { - errorf("repeated go statement") - return - } - if len(args) != 1 { - errorf("go directive expects exactly one argument") - return - } else if !GoVersionRE.MatchString(args[0]) { - fixed := false - if !strict { - if m := laxGoVersionRE.FindStringSubmatch(args[0]); m != nil { - args[0] = m[1] - fixed = true - } - } - if !fixed { - errorf("invalid go version '%s': must match format 1.23.0", args[0]) - return - } - } - - f.Go = &Go{Syntax: line} - f.Go.Version = args[0] - - case "toolchain": - if f.Toolchain != nil { - errorf("repeated toolchain statement") - return - } - if len(args) != 1 { - errorf("toolchain directive expects exactly one argument") - return - } else if !ToolchainRE.MatchString(args[0]) { - errorf("invalid toolchain version '%s': must match format go1.23.0 or default", args[0]) - return - } - f.Toolchain = &Toolchain{Syntax: line} - f.Toolchain.Name = args[0] - - case "module": - if f.Module != nil { - errorf("repeated module statement") - return - } - deprecated := parseDeprecation(block, line) - f.Module = &Module{ - Syntax: line, - Deprecated: deprecated, - } - if len(args) != 1 { - errorf("usage: module module/path") - return - } - s, err := parseString(&args[0]) - if err != nil { - errorf("invalid quoted string: %v", err) - return - } - f.Module.Mod = module.Version{Path: s} - - case "godebug": - if len(args) != 1 || strings.ContainsAny(args[0], "\"`',") { - errorf("usage: godebug key=value") - return - } - key, value, ok := strings.Cut(args[0], "=") - if !ok { - errorf("usage: godebug key=value") - return - } - f.Godebug = append(f.Godebug, &Godebug{ - Key: key, - Value: value, - Syntax: line, - }) - - case "require", "exclude": - if len(args) != 2 { - errorf("usage: %s module/path v1.2.3", verb) - return - } - s, err := parseString(&args[0]) - if err != nil { - errorf("invalid quoted string: %v", err) - return - } - v, err := parseVersion(verb, s, &args[1], fix) - if err != nil { - wrapError(err) - return - } - pathMajor, err := modulePathMajor(s) - if err != nil { - wrapError(err) - return - } - if err := module.CheckPathMajor(v, pathMajor); err != nil { - wrapModPathError(s, err) - return - } - if verb == "require" { - f.Require = append(f.Require, &Require{ - Mod: module.Version{Path: s, Version: v}, - Syntax: line, - Indirect: isIndirect(line), - }) - } else { - f.Exclude = append(f.Exclude, &Exclude{ - Mod: module.Version{Path: s, Version: v}, - Syntax: line, - }) - } - - case "replace": - replace, wrappederr := parseReplace(f.Syntax.Name, line, verb, args, fix) - if wrappederr != nil { - *errs = append(*errs, *wrappederr) - return - } - f.Replace = append(f.Replace, replace) - - case "retract": - rationale := parseDirectiveComment(block, line) - vi, err := parseVersionInterval(verb, "", &args, dontFixRetract) - if err != nil { - if strict { - wrapError(err) - return - } else { - // Only report errors parsing intervals in the main module. We may - // support additional syntax in the future, such as open and half-open - // intervals. Those can't be supported now, because they break the - // go.mod parser, even in lax mode. - return - } - } - if len(args) > 0 && strict { - // In the future, there may be additional information after the version. - errorf("unexpected token after version: %q", args[0]) - return - } - retract := &Retract{ - VersionInterval: vi, - Rationale: rationale, - Syntax: line, - } - f.Retract = append(f.Retract, retract) - - case "tool": - if len(args) != 1 { - errorf("tool directive expects exactly one argument") - return - } - s, err := parseString(&args[0]) - if err != nil { - errorf("invalid quoted string: %v", err) - return - } - f.Tool = append(f.Tool, &Tool{ - Path: s, - Syntax: line, - }) - - case "ignore": - if len(args) != 1 { - errorf("ignore directive expects exactly one argument") - return - } - s, err := parseString(&args[0]) - if err != nil { - errorf("invalid quoted string: %v", err) - return - } - f.Ignore = append(f.Ignore, &Ignore{ - Path: s, - Syntax: line, - }) - } -} - -func parseReplace(filename string, line *Line, verb string, args []string, fix VersionFixer) (*Replace, *Error) { - wrapModPathError := func(modPath string, err error) *Error { - return &Error{ - Filename: filename, - Pos: line.Start, - ModPath: modPath, - Verb: verb, - Err: err, - } - } - wrapError := func(err error) *Error { - return &Error{ - Filename: filename, - Pos: line.Start, - Err: err, - } - } - errorf := func(format string, args ...interface{}) *Error { - return wrapError(fmt.Errorf(format, args...)) - } - - arrow := 2 - if len(args) >= 2 && args[1] == "=>" { - arrow = 1 - } - if len(args) < arrow+2 || len(args) > arrow+3 || args[arrow] != "=>" { - return nil, errorf("usage: %s module/path [v1.2.3] => other/module v1.4\n\t or %s module/path [v1.2.3] => ../local/directory", verb, verb) - } - s, err := parseString(&args[0]) - if err != nil { - return nil, errorf("invalid quoted string: %v", err) - } - pathMajor, err := modulePathMajor(s) - if err != nil { - return nil, wrapModPathError(s, err) - - } - var v string - if arrow == 2 { - v, err = parseVersion(verb, s, &args[1], fix) - if err != nil { - return nil, wrapError(err) - } - if err := module.CheckPathMajor(v, pathMajor); err != nil { - return nil, wrapModPathError(s, err) - } - } - ns, err := parseString(&args[arrow+1]) - if err != nil { - return nil, errorf("invalid quoted string: %v", err) - } - nv := "" - if len(args) == arrow+2 { - if !IsDirectoryPath(ns) { - if strings.Contains(ns, "@") { - return nil, errorf("replacement module must match format 'path version', not 'path@version'") - } - return nil, errorf("replacement module without version must be directory path (rooted or starting with . or ..)") - } - if filepath.Separator == '/' && strings.Contains(ns, `\`) { - return nil, errorf("replacement directory appears to be Windows path (on a non-windows system)") - } - } - if len(args) == arrow+3 { - nv, err = parseVersion(verb, ns, &args[arrow+2], fix) - if err != nil { - return nil, wrapError(err) - } - if IsDirectoryPath(ns) { - return nil, errorf("replacement module directory path %q cannot have version", ns) - } - } - return &Replace{ - Old: module.Version{Path: s, Version: v}, - New: module.Version{Path: ns, Version: nv}, - Syntax: line, - }, nil -} - -// fixRetract applies fix to each retract directive in f, appending any errors -// to errs. -// -// Most versions are fixed as we parse the file, but for retract directives, -// the relevant module path is the one specified with the module directive, -// and that might appear at the end of the file (or not at all). -func (f *File) fixRetract(fix VersionFixer, errs *ErrorList) { - if fix == nil { - return - } - path := "" - if f.Module != nil { - path = f.Module.Mod.Path - } - var r *Retract - wrapError := func(err error) { - *errs = append(*errs, Error{ - Filename: f.Syntax.Name, - Pos: r.Syntax.Start, - Err: err, - }) - } - - for _, r = range f.Retract { - if path == "" { - wrapError(errors.New("no module directive found, so retract cannot be used")) - return // only print the first one of these - } - - args := r.Syntax.Token - if args[0] == "retract" { - args = args[1:] - } - vi, err := parseVersionInterval("retract", path, &args, fix) - if err != nil { - wrapError(err) - } - r.VersionInterval = vi - } -} - -func (f *WorkFile) add(errs *ErrorList, line *Line, verb string, args []string, fix VersionFixer) { - wrapError := func(err error) { - *errs = append(*errs, Error{ - Filename: f.Syntax.Name, - Pos: line.Start, - Err: err, - }) - } - errorf := func(format string, args ...interface{}) { - wrapError(fmt.Errorf(format, args...)) - } - - switch verb { - default: - errorf("unknown directive: %s", verb) - - case "go": - if f.Go != nil { - errorf("repeated go statement") - return - } - if len(args) != 1 { - errorf("go directive expects exactly one argument") - return - } else if !GoVersionRE.MatchString(args[0]) { - errorf("invalid go version '%s': must match format 1.23.0", args[0]) - return - } - - f.Go = &Go{Syntax: line} - f.Go.Version = args[0] - - case "toolchain": - if f.Toolchain != nil { - errorf("repeated toolchain statement") - return - } - if len(args) != 1 { - errorf("toolchain directive expects exactly one argument") - return - } else if !ToolchainRE.MatchString(args[0]) { - errorf("invalid toolchain version '%s': must match format go1.23.0 or default", args[0]) - return - } - - f.Toolchain = &Toolchain{Syntax: line} - f.Toolchain.Name = args[0] - - case "godebug": - if len(args) != 1 || strings.ContainsAny(args[0], "\"`',") { - errorf("usage: godebug key=value") - return - } - key, value, ok := strings.Cut(args[0], "=") - if !ok { - errorf("usage: godebug key=value") - return - } - f.Godebug = append(f.Godebug, &Godebug{ - Key: key, - Value: value, - Syntax: line, - }) - - case "use": - if len(args) != 1 { - errorf("usage: %s local/dir", verb) - return - } - s, err := parseString(&args[0]) - if err != nil { - errorf("invalid quoted string: %v", err) - return - } - f.Use = append(f.Use, &Use{ - Path: s, - Syntax: line, - }) - - case "replace": - replace, wrappederr := parseReplace(f.Syntax.Name, line, verb, args, fix) - if wrappederr != nil { - *errs = append(*errs, *wrappederr) - return - } - f.Replace = append(f.Replace, replace) - } -} - -// IsDirectoryPath reports whether the given path should be interpreted as a directory path. -// Just like on the go command line, relative paths starting with a '.' or '..' path component -// and rooted paths are directory paths; the rest are module paths. -func IsDirectoryPath(ns string) bool { - // Because go.mod files can move from one system to another, - // we check all known path syntaxes, both Unix and Windows. - return ns == "." || strings.HasPrefix(ns, "./") || strings.HasPrefix(ns, `.\`) || - ns == ".." || strings.HasPrefix(ns, "../") || strings.HasPrefix(ns, `..\`) || - strings.HasPrefix(ns, "/") || strings.HasPrefix(ns, `\`) || - len(ns) >= 2 && ('A' <= ns[0] && ns[0] <= 'Z' || 'a' <= ns[0] && ns[0] <= 'z') && ns[1] == ':' -} - -// MustQuote reports whether s must be quoted in order to appear as -// a single token in a go.mod line. -func MustQuote(s string) bool { - for _, r := range s { - switch r { - case ' ', '"', '\'', '`': - return true - - case '(', ')', '[', ']', '{', '}', ',': - if len(s) > 1 { - return true - } - - default: - if !unicode.IsPrint(r) { - return true - } - } - } - return s == "" || strings.Contains(s, "//") || strings.Contains(s, "/*") -} - -// AutoQuote returns s or, if quoting is required for s to appear in a go.mod, -// the quotation of s. -func AutoQuote(s string) string { - if MustQuote(s) { - return strconv.Quote(s) - } - return s -} - -func parseVersionInterval(verb string, path string, args *[]string, fix VersionFixer) (VersionInterval, error) { - toks := *args - if len(toks) == 0 || toks[0] == "(" { - return VersionInterval{}, fmt.Errorf("expected '[' or version") - } - if toks[0] != "[" { - v, err := parseVersion(verb, path, &toks[0], fix) - if err != nil { - return VersionInterval{}, err - } - *args = toks[1:] - return VersionInterval{Low: v, High: v}, nil - } - toks = toks[1:] - - if len(toks) == 0 { - return VersionInterval{}, fmt.Errorf("expected version after '['") - } - low, err := parseVersion(verb, path, &toks[0], fix) - if err != nil { - return VersionInterval{}, err - } - toks = toks[1:] - - if len(toks) == 0 || toks[0] != "," { - return VersionInterval{}, fmt.Errorf("expected ',' after version") - } - toks = toks[1:] - - if len(toks) == 0 { - return VersionInterval{}, fmt.Errorf("expected version after ','") - } - high, err := parseVersion(verb, path, &toks[0], fix) - if err != nil { - return VersionInterval{}, err - } - toks = toks[1:] - - if len(toks) == 0 || toks[0] != "]" { - return VersionInterval{}, fmt.Errorf("expected ']' after version") - } - toks = toks[1:] - - *args = toks - return VersionInterval{Low: low, High: high}, nil -} - -func parseString(s *string) (string, error) { - t := *s - if strings.HasPrefix(t, `"`) { - var err error - if t, err = strconv.Unquote(t); err != nil { - return "", err - } - } else if strings.ContainsAny(t, "\"'`") { - // Other quotes are reserved both for possible future expansion - // and to avoid confusion. For example if someone types 'x' - // we want that to be a syntax error and not a literal x in literal quotation marks. - return "", fmt.Errorf("unquoted string cannot contain quote") - } - *s = AutoQuote(t) - return t, nil -} - -var deprecatedRE = lazyregexp.New(`(?s)(?:^|\n\n)Deprecated: *(.*?)(?:$|\n\n)`) - -// parseDeprecation extracts the text of comments on a "module" directive and -// extracts a deprecation message from that. -// -// A deprecation message is contained in a paragraph within a block of comments -// that starts with "Deprecated:" (case sensitive). The message runs until the -// end of the paragraph and does not include the "Deprecated:" prefix. If the -// comment block has multiple paragraphs that start with "Deprecated:", -// parseDeprecation returns the message from the first. -func parseDeprecation(block *LineBlock, line *Line) string { - text := parseDirectiveComment(block, line) - m := deprecatedRE.FindStringSubmatch(text) - if m == nil { - return "" - } - return m[1] -} - -// parseDirectiveComment extracts the text of comments on a directive. -// If the directive's line does not have comments and is part of a block that -// does have comments, the block's comments are used. -func parseDirectiveComment(block *LineBlock, line *Line) string { - comments := line.Comment() - if block != nil && len(comments.Before) == 0 && len(comments.Suffix) == 0 { - comments = block.Comment() - } - groups := [][]Comment{comments.Before, comments.Suffix} - var lines []string - for _, g := range groups { - for _, c := range g { - if !strings.HasPrefix(c.Token, "//") { - continue // blank line - } - lines = append(lines, strings.TrimSpace(strings.TrimPrefix(c.Token, "//"))) - } - } - return strings.Join(lines, "\n") -} - -type ErrorList []Error - -func (e ErrorList) Error() string { - errStrs := make([]string, len(e)) - for i, err := range e { - errStrs[i] = err.Error() - } - return strings.Join(errStrs, "\n") -} - -type Error struct { - Filename string - Pos Position - Verb string - ModPath string - Err error -} - -func (e *Error) Error() string { - var pos string - if e.Pos.LineRune > 1 { - // Don't print LineRune if it's 1 (beginning of line). - // It's always 1 except in scanner errors, which are rare. - pos = fmt.Sprintf("%s:%d:%d: ", e.Filename, e.Pos.Line, e.Pos.LineRune) - } else if e.Pos.Line > 0 { - pos = fmt.Sprintf("%s:%d: ", e.Filename, e.Pos.Line) - } else if e.Filename != "" { - pos = fmt.Sprintf("%s: ", e.Filename) - } - - var directive string - if e.ModPath != "" { - directive = fmt.Sprintf("%s %s: ", e.Verb, e.ModPath) - } else if e.Verb != "" { - directive = fmt.Sprintf("%s: ", e.Verb) - } - - return pos + directive + e.Err.Error() -} - -func (e *Error) Unwrap() error { return e.Err } - -func parseVersion(verb string, path string, s *string, fix VersionFixer) (string, error) { - t, err := parseString(s) - if err != nil { - return "", &Error{ - Verb: verb, - ModPath: path, - Err: &module.InvalidVersionError{ - Version: *s, - Err: err, - }, - } - } - if fix != nil { - fixed, err := fix(path, t) - if err != nil { - if err, ok := err.(*module.ModuleError); ok { - return "", &Error{ - Verb: verb, - ModPath: path, - Err: err.Err, - } - } - return "", err - } - t = fixed - } else { - cv := module.CanonicalVersion(t) - if cv == "" { - return "", &Error{ - Verb: verb, - ModPath: path, - Err: &module.InvalidVersionError{ - Version: t, - Err: errors.New("must be of the form v1.2.3"), - }, - } - } - t = cv - } - *s = t - return *s, nil -} - -func modulePathMajor(path string) (string, error) { - _, major, ok := module.SplitPathVersion(path) - if !ok { - return "", fmt.Errorf("invalid module path") - } - return major, nil -} - -func (f *File) Format() ([]byte, error) { - return Format(f.Syntax), nil -} - -// Cleanup cleans up the file f after any edit operations. -// To avoid quadratic behavior, modifications like [File.DropRequire] -// clear the entry but do not remove it from the slice. -// Cleanup cleans out all the cleared entries. -func (f *File) Cleanup() { - w := 0 - for _, g := range f.Godebug { - if g.Key != "" { - f.Godebug[w] = g - w++ - } - } - f.Godebug = f.Godebug[:w] - - w = 0 - for _, r := range f.Require { - if r.Mod.Path != "" { - f.Require[w] = r - w++ - } - } - f.Require = f.Require[:w] - - w = 0 - for _, x := range f.Exclude { - if x.Mod.Path != "" { - f.Exclude[w] = x - w++ - } - } - f.Exclude = f.Exclude[:w] - - w = 0 - for _, r := range f.Replace { - if r.Old.Path != "" { - f.Replace[w] = r - w++ - } - } - f.Replace = f.Replace[:w] - - w = 0 - for _, r := range f.Retract { - if r.Low != "" || r.High != "" { - f.Retract[w] = r - w++ - } - } - f.Retract = f.Retract[:w] - - f.Syntax.Cleanup() -} - -func (f *File) AddGoStmt(version string) error { - if !GoVersionRE.MatchString(version) { - return fmt.Errorf("invalid language version %q", version) - } - if f.Go == nil { - var hint Expr - if f.Module != nil && f.Module.Syntax != nil { - hint = f.Module.Syntax - } else if f.Syntax == nil { - f.Syntax = new(FileSyntax) - } - f.Go = &Go{ - Version: version, - Syntax: f.Syntax.addLine(hint, "go", version), - } - } else { - f.Go.Version = version - f.Syntax.updateLine(f.Go.Syntax, "go", version) - } - return nil -} - -// DropGoStmt deletes the go statement from the file. -func (f *File) DropGoStmt() { - if f.Go != nil { - f.Go.Syntax.markRemoved() - f.Go = nil - } -} - -// DropToolchainStmt deletes the toolchain statement from the file. -func (f *File) DropToolchainStmt() { - if f.Toolchain != nil { - f.Toolchain.Syntax.markRemoved() - f.Toolchain = nil - } -} - -func (f *File) AddToolchainStmt(name string) error { - if !ToolchainRE.MatchString(name) { - return fmt.Errorf("invalid toolchain name %q", name) - } - if f.Toolchain == nil { - var hint Expr - if f.Go != nil && f.Go.Syntax != nil { - hint = f.Go.Syntax - } else if f.Module != nil && f.Module.Syntax != nil { - hint = f.Module.Syntax - } - f.Toolchain = &Toolchain{ - Name: name, - Syntax: f.Syntax.addLine(hint, "toolchain", name), - } - } else { - f.Toolchain.Name = name - f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) - } - return nil -} - -// AddGodebug sets the first godebug line for key to value, -// preserving any existing comments for that line and removing all -// other godebug lines for key. -// -// If no line currently exists for key, AddGodebug adds a new line -// at the end of the last godebug block. -func (f *File) AddGodebug(key, value string) error { - need := true - for _, g := range f.Godebug { - if g.Key == key { - if need { - g.Value = value - f.Syntax.updateLine(g.Syntax, "godebug", key+"="+value) - need = false - } else { - g.Syntax.markRemoved() - *g = Godebug{} - } - } - } - - if need { - f.addNewGodebug(key, value) - } - return nil -} - -// addNewGodebug adds a new godebug key=value line at the end -// of the last godebug block, regardless of any existing godebug lines for key. -func (f *File) addNewGodebug(key, value string) { - line := f.Syntax.addLine(nil, "godebug", key+"="+value) - g := &Godebug{ - Key: key, - Value: value, - Syntax: line, - } - f.Godebug = append(f.Godebug, g) -} - -// AddRequire sets the first require line for path to version vers, -// preserving any existing comments for that line and removing all -// other lines for path. -// -// If no line currently exists for path, AddRequire adds a new line -// at the end of the last require block. -func (f *File) AddRequire(path, vers string) error { - need := true - for _, r := range f.Require { - if r.Mod.Path == path { - if need { - r.Mod.Version = vers - f.Syntax.updateLine(r.Syntax, "require", AutoQuote(path), vers) - need = false - } else { - r.Syntax.markRemoved() - *r = Require{} - } - } - } - - if need { - f.AddNewRequire(path, vers, false) - } - return nil -} - -// AddNewRequire adds a new require line for path at version vers at the end of -// the last require block, regardless of any existing require lines for path. -func (f *File) AddNewRequire(path, vers string, indirect bool) { - line := f.Syntax.addLine(nil, "require", AutoQuote(path), vers) - r := &Require{ - Mod: module.Version{Path: path, Version: vers}, - Syntax: line, - } - r.setIndirect(indirect) - f.Require = append(f.Require, r) -} - -// SetRequire updates the requirements of f to contain exactly req, preserving -// the existing block structure and line comment contents (except for 'indirect' -// markings) for the first requirement on each named module path. -// -// The Syntax field is ignored for the requirements in req. -// -// Any requirements not already present in the file are added to the block -// containing the last require line. -// -// The requirements in req must specify at most one distinct version for each -// module path. -// -// If any existing requirements may be removed, the caller should call -// [File.Cleanup] after all edits are complete. -func (f *File) SetRequire(req []*Require) { - type elem struct { - version string - indirect bool - } - need := make(map[string]elem) - for _, r := range req { - if prev, dup := need[r.Mod.Path]; dup && prev.version != r.Mod.Version { - panic(fmt.Errorf("SetRequire called with conflicting versions for path %s (%s and %s)", r.Mod.Path, prev.version, r.Mod.Version)) - } - need[r.Mod.Path] = elem{r.Mod.Version, r.Indirect} - } - - // Update or delete the existing Require entries to preserve - // only the first for each module path in req. - for _, r := range f.Require { - e, ok := need[r.Mod.Path] - if ok { - r.setVersion(e.version) - r.setIndirect(e.indirect) - } else { - r.markRemoved() - } - delete(need, r.Mod.Path) - } - - // Add new entries in the last block of the file for any paths that weren't - // already present. - // - // This step is nondeterministic, but the final result will be deterministic - // because we will sort the block. - for path, e := range need { - f.AddNewRequire(path, e.version, e.indirect) - } - - f.SortBlocks() -} - -// SetRequireSeparateIndirect updates the requirements of f to contain the given -// requirements. Comment contents (except for 'indirect' markings) are retained -// from the first existing requirement for each module path. Like SetRequire, -// SetRequireSeparateIndirect adds requirements for new paths in req, -// updates the version and "// indirect" comment on existing requirements, -// and deletes requirements on paths not in req. Existing duplicate requirements -// are deleted. -// -// As its name suggests, SetRequireSeparateIndirect puts direct and indirect -// requirements into two separate blocks, one containing only direct -// requirements, and the other containing only indirect requirements. -// SetRequireSeparateIndirect may move requirements between these two blocks -// when their indirect markings change. However, SetRequireSeparateIndirect -// won't move requirements from other blocks, especially blocks with comments. -// -// If the file initially has one uncommented block of requirements, -// SetRequireSeparateIndirect will split it into a direct-only and indirect-only -// block. This aids in the transition to separate blocks. -func (f *File) SetRequireSeparateIndirect(req []*Require) { - // hasComments returns whether a line or block has comments - // other than "indirect". - hasComments := func(c Comments) bool { - return len(c.Before) > 0 || len(c.After) > 0 || len(c.Suffix) > 1 || - (len(c.Suffix) == 1 && - strings.TrimSpace(strings.TrimPrefix(c.Suffix[0].Token, string(slashSlash))) != "indirect") - } - - // moveReq adds r to block. If r was in another block, moveReq deletes - // it from that block and transfers its comments. - moveReq := func(r *Require, block *LineBlock) { - var line *Line - if r.Syntax == nil { - line = &Line{Token: []string{AutoQuote(r.Mod.Path), r.Mod.Version}} - r.Syntax = line - if r.Indirect { - r.setIndirect(true) - } - } else { - line = new(Line) - *line = *r.Syntax - if !line.InBlock && len(line.Token) > 0 && line.Token[0] == "require" { - line.Token = line.Token[1:] - } - r.Syntax.Token = nil // Cleanup will delete the old line. - r.Syntax = line - } - line.InBlock = true - block.Line = append(block.Line, line) - } - - // Examine existing require lines and blocks. - var ( - // We may insert new requirements into the last uncommented - // direct-only and indirect-only blocks. We may also move requirements - // to the opposite block if their indirect markings change. - lastDirectIndex = -1 - lastIndirectIndex = -1 - - // If there are no direct-only or indirect-only blocks, a new block may - // be inserted after the last require line or block. - lastRequireIndex = -1 - - // If there's only one require line or block, and it's uncommented, - // we'll move its requirements to the direct-only or indirect-only blocks. - requireLineOrBlockCount = 0 - - // Track the block each requirement belongs to (if any) so we can - // move them later. - lineToBlock = make(map[*Line]*LineBlock) - ) - for i, stmt := range f.Syntax.Stmt { - switch stmt := stmt.(type) { - case *Line: - if len(stmt.Token) == 0 || stmt.Token[0] != "require" { - continue - } - lastRequireIndex = i - requireLineOrBlockCount++ - if !hasComments(stmt.Comments) { - if isIndirect(stmt) { - lastIndirectIndex = i - } else { - lastDirectIndex = i - } - } - - case *LineBlock: - if len(stmt.Token) == 0 || stmt.Token[0] != "require" { - continue - } - lastRequireIndex = i - requireLineOrBlockCount++ - allDirect := len(stmt.Line) > 0 && !hasComments(stmt.Comments) - allIndirect := len(stmt.Line) > 0 && !hasComments(stmt.Comments) - for _, line := range stmt.Line { - lineToBlock[line] = stmt - if hasComments(line.Comments) { - allDirect = false - allIndirect = false - } else if isIndirect(line) { - allDirect = false - } else { - allIndirect = false - } - } - if allDirect { - lastDirectIndex = i - } - if allIndirect { - lastIndirectIndex = i - } - } - } - - oneFlatUncommentedBlock := requireLineOrBlockCount == 1 && - !hasComments(*f.Syntax.Stmt[lastRequireIndex].Comment()) - - // Create direct and indirect blocks if needed. Convert lines into blocks - // if needed. If we end up with an empty block or a one-line block, - // Cleanup will delete it or convert it to a line later. - insertBlock := func(i int) *LineBlock { - block := &LineBlock{Token: []string{"require"}} - f.Syntax.Stmt = append(f.Syntax.Stmt, nil) - copy(f.Syntax.Stmt[i+1:], f.Syntax.Stmt[i:]) - f.Syntax.Stmt[i] = block - return block - } - - ensureBlock := func(i int) *LineBlock { - switch stmt := f.Syntax.Stmt[i].(type) { - case *LineBlock: - return stmt - case *Line: - block := &LineBlock{ - Token: []string{"require"}, - Line: []*Line{stmt}, - } - stmt.Token = stmt.Token[1:] // remove "require" - stmt.InBlock = true - f.Syntax.Stmt[i] = block - return block - default: - panic(fmt.Sprintf("unexpected statement: %v", stmt)) - } - } - - var lastDirectBlock *LineBlock - if lastDirectIndex < 0 { - if lastIndirectIndex >= 0 { - lastDirectIndex = lastIndirectIndex - lastIndirectIndex++ - } else if lastRequireIndex >= 0 { - lastDirectIndex = lastRequireIndex + 1 - } else { - lastDirectIndex = len(f.Syntax.Stmt) - } - lastDirectBlock = insertBlock(lastDirectIndex) - } else { - lastDirectBlock = ensureBlock(lastDirectIndex) - } - - var lastIndirectBlock *LineBlock - if lastIndirectIndex < 0 { - lastIndirectIndex = lastDirectIndex + 1 - lastIndirectBlock = insertBlock(lastIndirectIndex) - } else { - lastIndirectBlock = ensureBlock(lastIndirectIndex) - } - - // Delete requirements we don't want anymore. - // Update versions and indirect comments on requirements we want to keep. - // If a requirement is in last{Direct,Indirect}Block with the wrong - // indirect marking after this, or if the requirement is in an single - // uncommented mixed block (oneFlatUncommentedBlock), move it to the - // correct block. - // - // Some blocks may be empty after this. Cleanup will remove them. - need := make(map[string]*Require) - for _, r := range req { - need[r.Mod.Path] = r - } - have := make(map[string]*Require) - for _, r := range f.Require { - path := r.Mod.Path - if need[path] == nil || have[path] != nil { - // Requirement not needed, or duplicate requirement. Delete. - r.markRemoved() - continue - } - have[r.Mod.Path] = r - r.setVersion(need[path].Mod.Version) - r.setIndirect(need[path].Indirect) - if need[path].Indirect && - (oneFlatUncommentedBlock || lineToBlock[r.Syntax] == lastDirectBlock) { - moveReq(r, lastIndirectBlock) - } else if !need[path].Indirect && - (oneFlatUncommentedBlock || lineToBlock[r.Syntax] == lastIndirectBlock) { - moveReq(r, lastDirectBlock) - } - } - - // Add new requirements. - for path, r := range need { - if have[path] == nil { - if r.Indirect { - moveReq(r, lastIndirectBlock) - } else { - moveReq(r, lastDirectBlock) - } - f.Require = append(f.Require, r) - } - } - - f.SortBlocks() -} - -func (f *File) DropGodebug(key string) error { - for _, g := range f.Godebug { - if g.Key == key { - g.Syntax.markRemoved() - *g = Godebug{} - } - } - return nil -} - -func (f *File) DropRequire(path string) error { - for _, r := range f.Require { - if r.Mod.Path == path { - r.Syntax.markRemoved() - *r = Require{} - } - } - return nil -} - -// AddExclude adds a exclude statement to the mod file. Errors if the provided -// version is not a canonical version string -func (f *File) AddExclude(path, vers string) error { - if err := checkCanonicalVersion(path, vers); err != nil { - return err - } - - var hint *Line - for _, x := range f.Exclude { - if x.Mod.Path == path && x.Mod.Version == vers { - return nil - } - if x.Mod.Path == path { - hint = x.Syntax - } - } - - f.Exclude = append(f.Exclude, &Exclude{Mod: module.Version{Path: path, Version: vers}, Syntax: f.Syntax.addLine(hint, "exclude", AutoQuote(path), vers)}) - return nil -} - -func (f *File) DropExclude(path, vers string) error { - for _, x := range f.Exclude { - if x.Mod.Path == path && x.Mod.Version == vers { - x.Syntax.markRemoved() - *x = Exclude{} - } - } - return nil -} - -func (f *File) AddReplace(oldPath, oldVers, newPath, newVers string) error { - return addReplace(f.Syntax, &f.Replace, oldPath, oldVers, newPath, newVers) -} - -func addReplace(syntax *FileSyntax, replace *[]*Replace, oldPath, oldVers, newPath, newVers string) error { - need := true - old := module.Version{Path: oldPath, Version: oldVers} - new := module.Version{Path: newPath, Version: newVers} - tokens := []string{"replace", AutoQuote(oldPath)} - if oldVers != "" { - tokens = append(tokens, oldVers) - } - tokens = append(tokens, "=>", AutoQuote(newPath)) - if newVers != "" { - tokens = append(tokens, newVers) - } - - var hint *Line - for _, r := range *replace { - if r.Old.Path == oldPath && (oldVers == "" || r.Old.Version == oldVers) { - if need { - // Found replacement for old; update to use new. - r.New = new - syntax.updateLine(r.Syntax, tokens...) - need = false - continue - } - // Already added; delete other replacements for same. - r.Syntax.markRemoved() - *r = Replace{} - } - if r.Old.Path == oldPath { - hint = r.Syntax - } - } - if need { - *replace = append(*replace, &Replace{Old: old, New: new, Syntax: syntax.addLine(hint, tokens...)}) - } - return nil -} - -func (f *File) DropReplace(oldPath, oldVers string) error { - for _, r := range f.Replace { - if r.Old.Path == oldPath && r.Old.Version == oldVers { - r.Syntax.markRemoved() - *r = Replace{} - } - } - return nil -} - -// AddRetract adds a retract statement to the mod file. Errors if the provided -// version interval does not consist of canonical version strings -func (f *File) AddRetract(vi VersionInterval, rationale string) error { - var path string - if f.Module != nil { - path = f.Module.Mod.Path - } - if err := checkCanonicalVersion(path, vi.High); err != nil { - return err - } - if err := checkCanonicalVersion(path, vi.Low); err != nil { - return err - } - - r := &Retract{ - VersionInterval: vi, - } - if vi.Low == vi.High { - r.Syntax = f.Syntax.addLine(nil, "retract", AutoQuote(vi.Low)) - } else { - r.Syntax = f.Syntax.addLine(nil, "retract", "[", AutoQuote(vi.Low), ",", AutoQuote(vi.High), "]") - } - if rationale != "" { - for _, line := range strings.Split(rationale, "\n") { - com := Comment{Token: "// " + line} - r.Syntax.Comment().Before = append(r.Syntax.Comment().Before, com) - } - } - return nil -} - -func (f *File) DropRetract(vi VersionInterval) error { - for _, r := range f.Retract { - if r.VersionInterval == vi { - r.Syntax.markRemoved() - *r = Retract{} - } - } - return nil -} - -// AddTool adds a new tool directive with the given path. -// It does nothing if the tool line already exists. -func (f *File) AddTool(path string) error { - for _, t := range f.Tool { - if t.Path == path { - return nil - } - } - - f.Tool = append(f.Tool, &Tool{ - Path: path, - Syntax: f.Syntax.addLine(nil, "tool", path), - }) - - f.SortBlocks() - return nil -} - -// RemoveTool removes a tool directive with the given path. -// It does nothing if no such tool directive exists. -func (f *File) DropTool(path string) error { - for _, t := range f.Tool { - if t.Path == path { - t.Syntax.markRemoved() - *t = Tool{} - } - } - return nil -} - -// AddIgnore adds a new ignore directive with the given path. -// It does nothing if the ignore line already exists. -func (f *File) AddIgnore(path string) error { - for _, t := range f.Ignore { - if t.Path == path { - return nil - } - } - - f.Ignore = append(f.Ignore, &Ignore{ - Path: path, - Syntax: f.Syntax.addLine(nil, "ignore", path), - }) - - f.SortBlocks() - return nil -} - -// DropIgnore removes a ignore directive with the given path. -// It does nothing if no such ignore directive exists. -func (f *File) DropIgnore(path string) error { - for _, t := range f.Ignore { - if t.Path == path { - t.Syntax.markRemoved() - *t = Ignore{} - } - } - return nil -} - -func (f *File) SortBlocks() { - f.removeDups() // otherwise sorting is unsafe - - // semanticSortForExcludeVersionV is the Go version (plus leading "v") at which - // lines in exclude blocks start to use semantic sort instead of lexicographic sort. - // See go.dev/issue/60028. - const semanticSortForExcludeVersionV = "v1.21" - useSemanticSortForExclude := f.Go != nil && semver.Compare("v"+f.Go.Version, semanticSortForExcludeVersionV) >= 0 - - for _, stmt := range f.Syntax.Stmt { - block, ok := stmt.(*LineBlock) - if !ok { - continue - } - less := compareLine - if block.Token[0] == "exclude" && useSemanticSortForExclude { - less = compareLineExclude - } else if block.Token[0] == "retract" { - less = compareLineRetract - } - slices.SortStableFunc(block.Line, less) - } -} - -// removeDups removes duplicate exclude, replace and tool directives. -// -// Earlier exclude and tool directives take priority. -// -// Later replace directives take priority. -// -// require directives are not de-duplicated. That's left up to higher-level -// logic (MVS). -// -// retract directives are not de-duplicated since comments are -// meaningful, and versions may be retracted multiple times. -func (f *File) removeDups() { - removeDups(f.Syntax, &f.Exclude, &f.Replace, &f.Tool, &f.Ignore) -} - -func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace, tool *[]*Tool, ignore *[]*Ignore) { - kill := make(map[*Line]bool) - - // Remove duplicate excludes. - if exclude != nil { - haveExclude := make(map[module.Version]bool) - for _, x := range *exclude { - if haveExclude[x.Mod] { - kill[x.Syntax] = true - continue - } - haveExclude[x.Mod] = true - } - var excl []*Exclude - for _, x := range *exclude { - if !kill[x.Syntax] { - excl = append(excl, x) - } - } - *exclude = excl - } - - // Remove duplicate replacements. - // Later replacements take priority over earlier ones. - haveReplace := make(map[module.Version]bool) - for i := len(*replace) - 1; i >= 0; i-- { - x := (*replace)[i] - if haveReplace[x.Old] { - kill[x.Syntax] = true - continue - } - haveReplace[x.Old] = true - } - var repl []*Replace - for _, x := range *replace { - if !kill[x.Syntax] { - repl = append(repl, x) - } - } - *replace = repl - - if tool != nil { - haveTool := make(map[string]bool) - for _, t := range *tool { - if haveTool[t.Path] { - kill[t.Syntax] = true - continue - } - haveTool[t.Path] = true - } - var newTool []*Tool - for _, t := range *tool { - if !kill[t.Syntax] { - newTool = append(newTool, t) - } - } - *tool = newTool - } - - if ignore != nil { - haveIgnore := make(map[string]bool) - for _, i := range *ignore { - if haveIgnore[i.Path] { - kill[i.Syntax] = true - continue - } - haveIgnore[i.Path] = true - } - var newIgnore []*Ignore - for _, i := range *ignore { - if !kill[i.Syntax] { - newIgnore = append(newIgnore, i) - } - } - *ignore = newIgnore - } - - // Duplicate require and retract directives are not removed. - - // Drop killed statements from the syntax tree. - var stmts []Expr - for _, stmt := range syntax.Stmt { - switch stmt := stmt.(type) { - case *Line: - if kill[stmt] { - continue - } - case *LineBlock: - var lines []*Line - for _, line := range stmt.Line { - if !kill[line] { - lines = append(lines, line) - } - } - stmt.Line = lines - if len(lines) == 0 { - continue - } - } - stmts = append(stmts, stmt) - } - syntax.Stmt = stmts -} - -// compareLine compares li and lj. It sorts lexicographically without assigning -// any special meaning to tokens. -func compareLine(li, lj *Line) int { - for k := 0; k < len(li.Token) && k < len(lj.Token); k++ { - if li.Token[k] != lj.Token[k] { - return cmp.Compare(li.Token[k], lj.Token[k]) - } - } - return cmp.Compare(len(li.Token), len(lj.Token)) -} - -// compareLineExclude compares li and lj for lines in an "exclude" block. -func compareLineExclude(li, lj *Line) int { - if len(li.Token) != 2 || len(lj.Token) != 2 { - // Not a known exclude specification. - // Fall back to sorting lexicographically. - return compareLine(li, lj) - } - // An exclude specification has two tokens: ModulePath and Version. - // Compare module path by string order and version by semver rules. - if pi, pj := li.Token[0], lj.Token[0]; pi != pj { - return cmp.Compare(pi, pj) - } - return semver.Compare(li.Token[1], lj.Token[1]) -} - -// compareLineRetract compares li and lj for lines in a "retract" block. -// It treats each line as a version interval. Single versions are compared as -// if they were intervals with the same low and high version. -// Intervals are sorted in descending order, first by low version, then by -// high version, using [semver.Compare]. -func compareLineRetract(li, lj *Line) int { - interval := func(l *Line) VersionInterval { - if len(l.Token) == 1 { - return VersionInterval{Low: l.Token[0], High: l.Token[0]} - } else if len(l.Token) == 5 && l.Token[0] == "[" && l.Token[2] == "," && l.Token[4] == "]" { - return VersionInterval{Low: l.Token[1], High: l.Token[3]} - } else { - // Line in unknown format. Treat as an invalid version. - return VersionInterval{} - } - } - vii := interval(li) - vij := interval(lj) - if cmp := semver.Compare(vii.Low, vij.Low); cmp != 0 { - return -cmp - } - return -semver.Compare(vii.High, vij.High) -} - -// checkCanonicalVersion returns a non-nil error if vers is not a canonical -// version string or does not match the major version of path. -// -// If path is non-empty, the error text suggests a format with a major version -// corresponding to the path. -func checkCanonicalVersion(path, vers string) error { - _, pathMajor, pathMajorOk := module.SplitPathVersion(path) - - if vers == "" || vers != module.CanonicalVersion(vers) { - if pathMajor == "" { - return &module.InvalidVersionError{ - Version: vers, - Err: fmt.Errorf("must be of the form v1.2.3"), - } - } - return &module.InvalidVersionError{ - Version: vers, - Err: fmt.Errorf("must be of the form %s.2.3", module.PathMajorPrefix(pathMajor)), - } - } - - if pathMajorOk { - if err := module.CheckPathMajor(vers, pathMajor); err != nil { - if pathMajor == "" { - // In this context, the user probably wrote "v2.3.4" when they meant - // "v2.3.4+incompatible". Suggest that instead of "v0 or v1". - return &module.InvalidVersionError{ - Version: vers, - Err: fmt.Errorf("should be %s+incompatible (or module %s/%v)", vers, path, semver.Major(vers)), - } - } - return err - } - } - - return nil -} diff --git a/vendor/golang.org/x/mod/modfile/work.go b/vendor/golang.org/x/mod/modfile/work.go deleted file mode 100644 index 09df5ea..0000000 --- a/vendor/golang.org/x/mod/modfile/work.go +++ /dev/null @@ -1,333 +0,0 @@ -// 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. - -package modfile - -import ( - "fmt" - "slices" - "strings" -) - -// A WorkFile is the parsed, interpreted form of a go.work file. -type WorkFile struct { - Go *Go - Toolchain *Toolchain - Godebug []*Godebug - Use []*Use - Replace []*Replace - - Syntax *FileSyntax -} - -// A Use is a single directory statement. -type Use struct { - Path string // Use path of module. - ModulePath string // Module path in the comment. - Syntax *Line -} - -// ParseWork parses and returns a go.work file. -// -// file is the name of the file, used in positions and errors. -// -// data is the content of the file. -// -// fix is an optional function that canonicalizes module versions. -// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] -// must return the same string). -func ParseWork(file string, data []byte, fix VersionFixer) (*WorkFile, error) { - fs, err := parse(file, data) - if err != nil { - return nil, err - } - f := &WorkFile{ - Syntax: fs, - } - var errs ErrorList - - for _, x := range fs.Stmt { - switch x := x.(type) { - case *Line: - f.add(&errs, x, x.Token[0], x.Token[1:], fix) - - case *LineBlock: - if len(x.Token) > 1 { - errs = append(errs, Error{ - Filename: file, - Pos: x.Start, - Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), - }) - continue - } - switch x.Token[0] { - default: - errs = append(errs, Error{ - Filename: file, - Pos: x.Start, - Err: fmt.Errorf("unknown block type: %s", strings.Join(x.Token, " ")), - }) - continue - case "godebug", "use", "replace": - for _, l := range x.Line { - f.add(&errs, l, x.Token[0], l.Token, fix) - } - } - } - } - - if len(errs) > 0 { - return nil, errs - } - return f, nil -} - -// Cleanup cleans up the file f after any edit operations. -// To avoid quadratic behavior, modifications like [WorkFile.DropRequire] -// clear the entry but do not remove it from the slice. -// Cleanup cleans out all the cleared entries. -func (f *WorkFile) Cleanup() { - w := 0 - for _, r := range f.Use { - if r.Path != "" { - f.Use[w] = r - w++ - } - } - f.Use = f.Use[:w] - - w = 0 - for _, r := range f.Replace { - if r.Old.Path != "" { - f.Replace[w] = r - w++ - } - } - f.Replace = f.Replace[:w] - - f.Syntax.Cleanup() -} - -func (f *WorkFile) AddGoStmt(version string) error { - if !GoVersionRE.MatchString(version) { - return fmt.Errorf("invalid language version %q", version) - } - if f.Go == nil { - stmt := &Line{Token: []string{"go", version}} - f.Go = &Go{ - Version: version, - Syntax: stmt, - } - // Find the first non-comment-only block and add - // the go statement before it. That will keep file comments at the top. - i := 0 - for i = 0; i < len(f.Syntax.Stmt); i++ { - if _, ok := f.Syntax.Stmt[i].(*CommentBlock); !ok { - break - } - } - f.Syntax.Stmt = append(append(f.Syntax.Stmt[:i:i], stmt), f.Syntax.Stmt[i:]...) - } else { - f.Go.Version = version - f.Syntax.updateLine(f.Go.Syntax, "go", version) - } - return nil -} - -func (f *WorkFile) AddToolchainStmt(name string) error { - if !ToolchainRE.MatchString(name) { - return fmt.Errorf("invalid toolchain name %q", name) - } - if f.Toolchain == nil { - stmt := &Line{Token: []string{"toolchain", name}} - f.Toolchain = &Toolchain{ - Name: name, - Syntax: stmt, - } - // Find the go line and add the toolchain line after it. - // Or else find the first non-comment-only block and add - // the toolchain line before it. That will keep file comments at the top. - i := 0 - for i = 0; i < len(f.Syntax.Stmt); i++ { - if line, ok := f.Syntax.Stmt[i].(*Line); ok && len(line.Token) > 0 && line.Token[0] == "go" { - i++ - goto Found - } - } - for i = 0; i < len(f.Syntax.Stmt); i++ { - if _, ok := f.Syntax.Stmt[i].(*CommentBlock); !ok { - break - } - } - Found: - f.Syntax.Stmt = append(append(f.Syntax.Stmt[:i:i], stmt), f.Syntax.Stmt[i:]...) - } else { - f.Toolchain.Name = name - f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) - } - return nil -} - -// DropGoStmt deletes the go statement from the file. -func (f *WorkFile) DropGoStmt() { - if f.Go != nil { - f.Go.Syntax.markRemoved() - f.Go = nil - } -} - -// DropToolchainStmt deletes the toolchain statement from the file. -func (f *WorkFile) DropToolchainStmt() { - if f.Toolchain != nil { - f.Toolchain.Syntax.markRemoved() - f.Toolchain = nil - } -} - -// AddGodebug sets the first godebug line for key to value, -// preserving any existing comments for that line and removing all -// other godebug lines for key. -// -// If no line currently exists for key, AddGodebug adds a new line -// at the end of the last godebug block. -func (f *WorkFile) AddGodebug(key, value string) error { - need := true - for _, g := range f.Godebug { - if g.Key == key { - if need { - g.Value = value - f.Syntax.updateLine(g.Syntax, "godebug", key+"="+value) - need = false - } else { - g.Syntax.markRemoved() - *g = Godebug{} - } - } - } - - if need { - f.addNewGodebug(key, value) - } - return nil -} - -// addNewGodebug adds a new godebug key=value line at the end -// of the last godebug block, regardless of any existing godebug lines for key. -func (f *WorkFile) addNewGodebug(key, value string) { - line := f.Syntax.addLine(nil, "godebug", key+"="+value) - g := &Godebug{ - Key: key, - Value: value, - Syntax: line, - } - f.Godebug = append(f.Godebug, g) -} - -func (f *WorkFile) DropGodebug(key string) error { - for _, g := range f.Godebug { - if g.Key == key { - g.Syntax.markRemoved() - *g = Godebug{} - } - } - return nil -} - -func (f *WorkFile) AddUse(diskPath, modulePath string) error { - need := true - for _, d := range f.Use { - if d.Path == diskPath { - if need { - d.ModulePath = modulePath - f.Syntax.updateLine(d.Syntax, "use", AutoQuote(diskPath)) - need = false - } else { - d.Syntax.markRemoved() - *d = Use{} - } - } - } - - if need { - f.AddNewUse(diskPath, modulePath) - } - return nil -} - -func (f *WorkFile) AddNewUse(diskPath, modulePath string) { - line := f.Syntax.addLine(nil, "use", AutoQuote(diskPath)) - f.Use = append(f.Use, &Use{Path: diskPath, ModulePath: modulePath, Syntax: line}) -} - -func (f *WorkFile) SetUse(dirs []*Use) { - need := make(map[string]string) - for _, d := range dirs { - need[d.Path] = d.ModulePath - } - - for _, d := range f.Use { - if modulePath, ok := need[d.Path]; ok { - d.ModulePath = modulePath - } else { - d.Syntax.markRemoved() - *d = Use{} - } - } - - // TODO(#45713): Add module path to comment. - - for diskPath, modulePath := range need { - f.AddNewUse(diskPath, modulePath) - } - f.SortBlocks() -} - -func (f *WorkFile) DropUse(path string) error { - for _, d := range f.Use { - if d.Path == path { - d.Syntax.markRemoved() - *d = Use{} - } - } - return nil -} - -func (f *WorkFile) AddReplace(oldPath, oldVers, newPath, newVers string) error { - return addReplace(f.Syntax, &f.Replace, oldPath, oldVers, newPath, newVers) -} - -func (f *WorkFile) DropReplace(oldPath, oldVers string) error { - for _, r := range f.Replace { - if r.Old.Path == oldPath && r.Old.Version == oldVers { - r.Syntax.markRemoved() - *r = Replace{} - } - } - return nil -} - -func (f *WorkFile) SortBlocks() { - f.removeDups() // otherwise sorting is unsafe - - for _, stmt := range f.Syntax.Stmt { - block, ok := stmt.(*LineBlock) - if !ok { - continue - } - slices.SortStableFunc(block.Line, compareLine) - } -} - -// removeDups removes duplicate replace directives. -// -// Later replace directives take priority. -// -// require directives are not de-duplicated. That's left up to higher-level -// logic (MVS). -// -// retract directives are not de-duplicated since comments are -// meaningful, and versions may be retracted multiple times. -func (f *WorkFile) removeDups() { - removeDups(f.Syntax, nil, &f.Replace, nil, nil) -} diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go deleted file mode 100644 index 16e1aa7..0000000 --- a/vendor/golang.org/x/mod/module/module.go +++ /dev/null @@ -1,840 +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. - -// Package module defines the module.Version type along with support code. -// -// The [module.Version] type is a simple Path, Version pair: -// -// type Version struct { -// Path string -// Version string -// } -// -// There are no restrictions imposed directly by use of this structure, -// but additional checking functions, most notably [Check], verify that -// a particular path, version pair is valid. -// -// # Escaped Paths -// -// Module paths appear as substrings of file system paths -// (in the download cache) and of web server URLs in the proxy protocol. -// In general we cannot rely on file systems to be case-sensitive, -// nor can we rely on web servers, since they read from file systems. -// That is, we cannot rely on the file system to keep rsc.io/QUOTE -// and rsc.io/quote separate. Windows and macOS don't. -// Instead, we must never require two different casings of a file path. -// Because we want the download cache to match the proxy protocol, -// and because we want the proxy protocol to be possible to serve -// from a tree of static files (which might be stored on a case-insensitive -// file system), the proxy protocol must never require two different casings -// of a URL path either. -// -// One possibility would be to make the escaped form be the lowercase -// hexadecimal encoding of the actual path bytes. This would avoid ever -// needing different casings of a file path, but it would be fairly illegible -// to most programmers when those paths appeared in the file system -// (including in file paths in compiler errors and stack traces) -// in web server logs, and so on. Instead, we want a safe escaped form that -// leaves most paths unaltered. -// -// The safe escaped form is to replace every uppercase letter -// with an exclamation mark followed by the letter's lowercase equivalent. -// -// For example, -// -// github.com/Azure/azure-sdk-for-go -> github.com/!azure/azure-sdk-for-go. -// github.com/GoogleCloudPlatform/cloudsql-proxy -> github.com/!google!cloud!platform/cloudsql-proxy -// github.com/Sirupsen/logrus -> github.com/!sirupsen/logrus. -// -// Import paths that avoid upper-case letters are left unchanged. -// Note that because import paths are ASCII-only and avoid various -// problematic punctuation (like : < and >), the escaped form is also ASCII-only -// and avoids the same problematic punctuation. -// -// Import paths have never allowed exclamation marks, so there is no -// need to define how to escape a literal !. -// -// # Unicode Restrictions -// -// Today, paths are disallowed from using Unicode. -// -// Although paths are currently disallowed from using Unicode, -// we would like at some point to allow Unicode letters as well, to assume that -// file systems and URLs are Unicode-safe (storing UTF-8), and apply -// the !-for-uppercase convention for escaping them in the file system. -// But there are at least two subtle considerations. -// -// First, note that not all case-fold equivalent distinct runes -// form an upper/lower pair. -// For example, U+004B ('K'), U+006B ('k'), and U+212A ('K' for Kelvin) -// are three distinct runes that case-fold to each other. -// When we do add Unicode letters, we must not assume that upper/lower -// are the only case-equivalent pairs. -// Perhaps the Kelvin symbol would be disallowed entirely, for example. -// Or perhaps it would escape as "!!k", or perhaps as "(212A)". -// -// Second, it would be nice to allow Unicode marks as well as letters, -// but marks include combining marks, and then we must deal not -// only with case folding but also normalization: both U+00E9 ('é') -// and U+0065 U+0301 ('e' followed by combining acute accent) -// look the same on the page and are treated by some file systems -// as the same path. If we do allow Unicode marks in paths, there -// must be some kind of normalization to allow only one canonical -// encoding of any character used in an import path. -package module - -// IMPORTANT NOTE -// -// This file essentially defines the set of valid import paths for the go command. -// There are many subtle considerations, including Unicode ambiguity, -// security, network, and file system representations. -// -// This file also defines the set of valid module path and version combinations, -// another topic with many subtle considerations. -// -// Changes to the semantics in this file require approval from rsc. - -import ( - "cmp" - "errors" - "fmt" - "path" - "slices" - "strings" - "unicode" - "unicode/utf8" - - "golang.org/x/mod/semver" -) - -// A Version (for clients, a module.Version) is defined by a module path and version pair. -// These are stored in their plain (unescaped) form. -type Version struct { - // Path is a module path, like "golang.org/x/text" or "rsc.io/quote/v2". - Path string - - // Version is usually a semantic version in canonical form. - // There are three exceptions to this general rule. - // First, the top-level target of a build has no specific version - // and uses Version = "". - // Second, during MVS calculations the version "none" is used - // to represent the decision to take no version of a given module. - // Third, filesystem paths found in "replace" directives are - // represented by a path with an empty version. - Version string `json:",omitempty"` -} - -// String returns a representation of the Version suitable for logging -// (Path@Version, or just Path if Version is empty). -func (m Version) String() string { - if m.Version == "" { - return m.Path - } - return m.Path + "@" + m.Version -} - -// A ModuleError indicates an error specific to a module. -type ModuleError struct { - Path string - Version string - Err error -} - -// VersionError returns a [ModuleError] derived from a [Version] and error, -// or err itself if it is already such an error. -func VersionError(v Version, err error) error { - var mErr *ModuleError - if errors.As(err, &mErr) && mErr.Path == v.Path && mErr.Version == v.Version { - return err - } - return &ModuleError{ - Path: v.Path, - Version: v.Version, - Err: err, - } -} - -func (e *ModuleError) Error() string { - if v, ok := e.Err.(*InvalidVersionError); ok { - return fmt.Sprintf("%s@%s: invalid %s: %v", e.Path, v.Version, v.noun(), v.Err) - } - if e.Version != "" { - return fmt.Sprintf("%s@%s: %v", e.Path, e.Version, e.Err) - } - return fmt.Sprintf("module %s: %v", e.Path, e.Err) -} - -func (e *ModuleError) Unwrap() error { return e.Err } - -// An InvalidVersionError indicates an error specific to a version, with the -// module path unknown or specified externally. -// -// A [ModuleError] may wrap an InvalidVersionError, but an InvalidVersionError -// must not wrap a ModuleError. -type InvalidVersionError struct { - Version string - Pseudo bool - Err error -} - -// noun returns either "version" or "pseudo-version", depending on whether -// e.Version is a pseudo-version. -func (e *InvalidVersionError) noun() string { - if e.Pseudo { - return "pseudo-version" - } - return "version" -} - -func (e *InvalidVersionError) Error() string { - return fmt.Sprintf("%s %q invalid: %s", e.noun(), e.Version, e.Err) -} - -func (e *InvalidVersionError) Unwrap() error { return e.Err } - -// An InvalidPathError indicates a module, import, or file path doesn't -// satisfy all naming constraints. See [CheckPath], [CheckImportPath], -// and [CheckFilePath] for specific restrictions. -type InvalidPathError struct { - Kind string // "module", "import", or "file" - Path string - Err error -} - -func (e *InvalidPathError) Error() string { - return fmt.Sprintf("malformed %s path %q: %v", e.Kind, e.Path, e.Err) -} - -func (e *InvalidPathError) Unwrap() error { return e.Err } - -// Check checks that a given module path, version pair is valid. -// In addition to the path being a valid module path -// and the version being a valid semantic version, -// the two must correspond. -// For example, the path "yaml/v2" only corresponds to -// semantic versions beginning with "v2.". -func Check(path, version string) error { - if err := CheckPath(path); err != nil { - return err - } - if !semver.IsValid(version) { - return &ModuleError{ - Path: path, - Err: &InvalidVersionError{Version: version, Err: errors.New("not a semantic version")}, - } - } - _, pathMajor, _ := SplitPathVersion(path) - if err := CheckPathMajor(version, pathMajor); err != nil { - return &ModuleError{Path: path, Err: err} - } - return nil -} - -// firstPathOK reports whether r can appear in the first element of a module path. -// The first element of the path must be an LDH domain name, at least for now. -// To avoid case ambiguity, the domain name must be entirely lower case. -func firstPathOK(r rune) bool { - return r == '-' || r == '.' || - '0' <= r && r <= '9' || - 'a' <= r && r <= 'z' -} - -// modPathOK reports whether r can appear in a module path element. -// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. -// -// This matches what "go get" has historically recognized in import paths, -// and avoids confusing sequences like '%20' or '+' that would change meaning -// if used in a URL. -// -// TODO(rsc): We would like to allow Unicode letters, but that requires additional -// care in the safe encoding (see "escaped paths" above). -func modPathOK(r rune) bool { - if r < utf8.RuneSelf { - return r == '-' || r == '.' || r == '_' || r == '~' || - '0' <= r && r <= '9' || - 'A' <= r && r <= 'Z' || - 'a' <= r && r <= 'z' - } - return false -} - -// importPathOK reports whether r can appear in a package import path element. -// -// Import paths are intermediate between module paths and file paths: we allow -// disallow characters that would be confusing or ambiguous as arguments to -// 'go get' (such as '@' and ' ' ), but allow certain characters that are -// otherwise-unambiguous on the command line and historically used for some -// binary names (such as '++' as a suffix for compiler binaries and wrappers). -func importPathOK(r rune) bool { - return modPathOK(r) || r == '+' -} - -// fileNameOK reports whether r can appear in a file name. -// For now we allow all Unicode letters but otherwise limit to pathOK plus a few more punctuation characters. -// If we expand the set of allowed characters here, we have to -// work harder at detecting potential case-folding and normalization collisions. -// See note about "escaped paths" above. -func fileNameOK(r rune) bool { - if r < utf8.RuneSelf { - // Entire set of ASCII punctuation, from which we remove characters: - // ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ - // We disallow some shell special characters: " ' * < > ? ` | - // (Note that some of those are disallowed by the Windows file system as well.) - // We also disallow path separators / : and \ (fileNameOK is only called on path element characters). - // We allow spaces (U+0020) in file names. - const allowed = "!#$%&()+,-.=@[]^_{}~ " - if '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' { - return true - } - return strings.ContainsRune(allowed, r) - } - // It may be OK to add more ASCII punctuation here, but only carefully. - // For example Windows disallows < > \, and macOS disallows :, so we must not allow those. - return unicode.IsLetter(r) -} - -// CheckPath checks that a module path is valid. -// A valid module path is a valid import path, as checked by [CheckImportPath], -// with three additional constraints. -// First, the leading path element (up to the first slash, if any), -// by convention a domain name, must contain only lower-case ASCII letters, -// ASCII digits, dots (U+002E), and dashes (U+002D); -// it must contain at least one dot and cannot start with a dash. -// Second, for a final path element of the form /vN, where N looks numeric -// (ASCII digits and dots) must not begin with a leading zero, must not be /v1, -// and must not contain any dots. For paths beginning with "gopkg.in/", -// this second requirement is replaced by a requirement that the path -// follow the gopkg.in server's conventions. -// Third, no path element may begin with a dot. -func CheckPath(path string) (err error) { - defer func() { - if err != nil { - err = &InvalidPathError{Kind: "module", Path: path, Err: err} - } - }() - - if err := checkPath(path, modulePath); err != nil { - return err - } - i := strings.Index(path, "/") - if i < 0 { - i = len(path) - } - if i == 0 { - return fmt.Errorf("leading slash") - } - if !strings.Contains(path[:i], ".") { - return fmt.Errorf("missing dot in first path element") - } - if path[0] == '-' { - return fmt.Errorf("leading dash in first path element") - } - for _, r := range path[:i] { - if !firstPathOK(r) { - return fmt.Errorf("invalid char %q in first path element", r) - } - } - if _, _, ok := SplitPathVersion(path); !ok { - return fmt.Errorf("invalid version") - } - return nil -} - -// CheckImportPath checks that an import path is valid. -// -// A valid import path consists of one or more valid path elements -// separated by slashes (U+002F). (It must not begin with nor end in a slash.) -// -// A valid path element is a non-empty string made up of -// ASCII letters, ASCII digits, and limited ASCII punctuation: - . _ and ~. -// It must not end with a dot (U+002E), nor contain two dots in a row. -// -// The element prefix up to the first dot must not be a reserved file name -// on Windows, regardless of case (CON, com1, NuL, and so on). The element -// must not have a suffix of a tilde followed by one or more ASCII digits -// (to exclude paths elements that look like Windows short-names). -// -// CheckImportPath may be less restrictive in the future, but see the -// top-level package documentation for additional information about -// subtleties of Unicode. -func CheckImportPath(path string) error { - if err := checkPath(path, importPath); err != nil { - return &InvalidPathError{Kind: "import", Path: path, Err: err} - } - return nil -} - -// pathKind indicates what kind of path we're checking. Module paths, -// import paths, and file paths have different restrictions. -type pathKind int - -const ( - modulePath pathKind = iota - importPath - filePath -) - -// checkPath checks that a general path is valid. kind indicates what -// specific constraints should be applied. -// -// checkPath returns an error describing why the path is not valid. -// Because these checks apply to module, import, and file paths, -// and because other checks may be applied, the caller is expected to wrap -// this error with [InvalidPathError]. -func checkPath(path string, kind pathKind) error { - if !utf8.ValidString(path) { - return fmt.Errorf("invalid UTF-8") - } - if path == "" { - return fmt.Errorf("empty string") - } - if path[0] == '-' && kind != filePath { - return fmt.Errorf("leading dash") - } - if strings.Contains(path, "//") { - return fmt.Errorf("double slash") - } - if path[len(path)-1] == '/' { - return fmt.Errorf("trailing slash") - } - elemStart := 0 - for i, r := range path { - if r == '/' { - if err := checkElem(path[elemStart:i], kind); err != nil { - return err - } - elemStart = i + 1 - } - } - if err := checkElem(path[elemStart:], kind); err != nil { - return err - } - return nil -} - -// checkElem checks whether an individual path element is valid. -func checkElem(elem string, kind pathKind) error { - if elem == "" { - return fmt.Errorf("empty path element") - } - if strings.Count(elem, ".") == len(elem) { - return fmt.Errorf("invalid path element %q", elem) - } - if elem[0] == '.' && kind == modulePath { - return fmt.Errorf("leading dot in path element") - } - if elem[len(elem)-1] == '.' { - return fmt.Errorf("trailing dot in path element") - } - for _, r := range elem { - ok := false - switch kind { - case modulePath: - ok = modPathOK(r) - case importPath: - ok = importPathOK(r) - case filePath: - ok = fileNameOK(r) - default: - panic(fmt.Sprintf("internal error: invalid kind %v", kind)) - } - if !ok { - return fmt.Errorf("invalid char %q", r) - } - } - - // Windows disallows a bunch of path elements, sadly. - // See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file - short := elem - if i := strings.Index(short, "."); i >= 0 { - short = short[:i] - } - for _, bad := range badWindowsNames { - if strings.EqualFold(bad, short) { - return fmt.Errorf("%q disallowed as path element component on Windows", short) - } - } - - if kind == filePath { - // don't check for Windows short-names in file names. They're - // only an issue for import paths. - return nil - } - - // Reject path components that look like Windows short-names. - // Those usually end in a tilde followed by one or more ASCII digits. - if tilde := strings.LastIndexByte(short, '~'); tilde >= 0 && tilde < len(short)-1 { - suffix := short[tilde+1:] - suffixIsDigits := true - for _, r := range suffix { - if r < '0' || r > '9' { - suffixIsDigits = false - break - } - } - if suffixIsDigits { - return fmt.Errorf("trailing tilde and digits in path element") - } - } - - return nil -} - -// CheckFilePath checks that a slash-separated file path is valid. -// The definition of a valid file path is the same as the definition -// of a valid import path except that the set of allowed characters is larger: -// all Unicode letters, ASCII digits, the ASCII space character (U+0020), -// and the ASCII punctuation characters -// “!#$%&()+,-.=@[]^_{}~”. -// (The excluded punctuation characters, " * < > ? ` ' | / \ and :, -// have special meanings in certain shells or operating systems.) -// -// CheckFilePath may be less restrictive in the future, but see the -// top-level package documentation for additional information about -// subtleties of Unicode. -func CheckFilePath(path string) error { - if err := checkPath(path, filePath); err != nil { - return &InvalidPathError{Kind: "file", Path: path, Err: err} - } - return nil -} - -// badWindowsNames are the reserved file path elements on Windows. -// See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file -var badWindowsNames = []string{ - "CON", - "PRN", - "AUX", - "NUL", - "COM1", - "COM2", - "COM3", - "COM4", - "COM5", - "COM6", - "COM7", - "COM8", - "COM9", - "LPT1", - "LPT2", - "LPT3", - "LPT4", - "LPT5", - "LPT6", - "LPT7", - "LPT8", - "LPT9", -} - -// SplitPathVersion returns prefix and major version such that prefix+pathMajor == path -// and version is either empty or "/vN" for N >= 2. -// As a special case, gopkg.in paths are recognized directly; -// they require ".vN" instead of "/vN", and for all N, not just N >= 2. -// SplitPathVersion returns with ok = false when presented with -// a path whose last path element does not satisfy the constraints -// applied by [CheckPath], such as "example.com/pkg/v1" or "example.com/pkg/v1.2". -func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { - if strings.HasPrefix(path, "gopkg.in/") { - return splitGopkgIn(path) - } - - i := len(path) - dot := false - for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9' || path[i-1] == '.') { - if path[i-1] == '.' { - dot = true - } - i-- - } - if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' { - return path, "", true - } - prefix, pathMajor = path[:i-2], path[i-2:] - if dot || len(pathMajor) <= 2 || pathMajor[2] == '0' || pathMajor == "/v1" { - return path, "", false - } - return prefix, pathMajor, true -} - -// splitGopkgIn is like SplitPathVersion but only for gopkg.in paths. -func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) { - if !strings.HasPrefix(path, "gopkg.in/") { - return path, "", false - } - i := len(path) - if strings.HasSuffix(path, "-unstable") { - i -= len("-unstable") - } - for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9') { - i-- - } - if i <= 1 || path[i-1] != 'v' || path[i-2] != '.' { - // All gopkg.in paths must end in vN for some N. - return path, "", false - } - prefix, pathMajor = path[:i-2], path[i-2:] - if len(pathMajor) <= 2 || pathMajor[2] == '0' && pathMajor != ".v0" { - return path, "", false - } - return prefix, pathMajor, true -} - -// MatchPathMajor reports whether the semantic version v -// matches the path major version pathMajor. -// -// MatchPathMajor returns true if and only if [CheckPathMajor] returns nil. -func MatchPathMajor(v, pathMajor string) bool { - return CheckPathMajor(v, pathMajor) == nil -} - -// CheckPathMajor returns a non-nil error if the semantic version v -// does not match the path major version pathMajor. -func CheckPathMajor(v, pathMajor string) error { - // TODO(jayconrod): return errors or panic for invalid inputs. This function - // (and others) was covered by integration tests for cmd/go, and surrounding - // code protected against invalid inputs like non-canonical versions. - if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") { - pathMajor = strings.TrimSuffix(pathMajor, "-unstable") - } - if strings.HasPrefix(v, "v0.0.0-") && pathMajor == ".v1" { - // Allow old bug in pseudo-versions that generated v0.0.0- pseudoversion for gopkg .v1. - // For example, gopkg.in/yaml.v2@v2.2.1's go.mod requires gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405. - return nil - } - m := semver.Major(v) - if pathMajor == "" { - if m == "v0" || m == "v1" || semver.Build(v) == "+incompatible" { - return nil - } - pathMajor = "v0 or v1" - } else if pathMajor[0] == '/' || pathMajor[0] == '.' { - if m == pathMajor[1:] { - return nil - } - pathMajor = pathMajor[1:] - } - return &InvalidVersionError{ - Version: v, - Err: fmt.Errorf("should be %s, not %s", pathMajor, semver.Major(v)), - } -} - -// PathMajorPrefix returns the major-version tag prefix implied by pathMajor. -// An empty PathMajorPrefix allows either v0 or v1. -// -// Note that [MatchPathMajor] may accept some versions that do not actually begin -// with this prefix: namely, it accepts a 'v0.0.0-' prefix for a '.v1' -// pathMajor, even though that pathMajor implies 'v1' tagging. -func PathMajorPrefix(pathMajor string) string { - if pathMajor == "" { - return "" - } - if pathMajor[0] != '/' && pathMajor[0] != '.' { - panic("pathMajor suffix " + pathMajor + " passed to PathMajorPrefix lacks separator") - } - if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") { - pathMajor = strings.TrimSuffix(pathMajor, "-unstable") - } - m := pathMajor[1:] - if m != semver.Major(m) { - panic("pathMajor suffix " + pathMajor + "passed to PathMajorPrefix is not a valid major version") - } - return m -} - -// CanonicalVersion returns the canonical form of the version string v. -// It is the same as [semver.Canonical] except that it preserves the special build suffix "+incompatible". -func CanonicalVersion(v string) string { - cv := semver.Canonical(v) - if semver.Build(v) == "+incompatible" { - cv += "+incompatible" - } - return cv -} - -// Sort sorts the list by Path, breaking ties by comparing [Version] fields. -// The Version fields are interpreted as semantic versions (using [semver.Compare]) -// optionally followed by a tie-breaking suffix introduced by a slash character, -// like in "v0.0.1/go.mod". -func Sort(list []Version) { - slices.SortFunc(list, func(i, j Version) int { - if i.Path != j.Path { - return strings.Compare(i.Path, j.Path) - } - // To help go.sum formatting, allow version/file. - // Compare semver prefix by semver rules, - // file by string order. - vi := i.Version - vj := j.Version - var fi, fj string - if k := strings.Index(vi, "/"); k >= 0 { - vi, fi = vi[:k], vi[k:] - } - if k := strings.Index(vj, "/"); k >= 0 { - vj, fj = vj[:k], vj[k:] - } - if vi != vj { - return semver.Compare(vi, vj) - } - return cmp.Compare(fi, fj) - }) -} - -// EscapePath returns the escaped form of the given module path. -// It fails if the module path is invalid. -func EscapePath(path string) (escaped string, err error) { - if err := CheckPath(path); err != nil { - return "", err - } - - return escapeString(path) -} - -// EscapeVersion returns the escaped form of the given module version. -// Versions are allowed to be in non-semver form but must be valid file names -// and not contain exclamation marks. -func EscapeVersion(v string) (escaped string, err error) { - if err := checkElem(v, filePath); err != nil || strings.Contains(v, "!") { - return "", &InvalidVersionError{ - Version: v, - Err: fmt.Errorf("disallowed version string"), - } - } - return escapeString(v) -} - -func escapeString(s string) (escaped string, err error) { - haveUpper := false - for _, r := range s { - if r == '!' || r >= utf8.RuneSelf { - // This should be disallowed by CheckPath, but diagnose anyway. - // The correctness of the escaping loop below depends on it. - return "", fmt.Errorf("internal error: inconsistency in EscapePath") - } - if 'A' <= r && r <= 'Z' { - haveUpper = true - } - } - - if !haveUpper { - return s, nil - } - - var buf []byte - for _, r := range s { - if 'A' <= r && r <= 'Z' { - buf = append(buf, '!', byte(r+'a'-'A')) - } else { - buf = append(buf, byte(r)) - } - } - return string(buf), nil -} - -// UnescapePath returns the module path for the given escaped path. -// It fails if the escaped path is invalid or describes an invalid path. -func UnescapePath(escaped string) (path string, err error) { - path, ok := unescapeString(escaped) - if !ok { - return "", fmt.Errorf("invalid escaped module path %q", escaped) - } - if err := CheckPath(path); err != nil { - return "", fmt.Errorf("invalid escaped module path %q: %v", escaped, err) - } - return path, nil -} - -// UnescapeVersion returns the version string for the given escaped version. -// It fails if the escaped form is invalid or describes an invalid version. -// Versions are allowed to be in non-semver form but must be valid file names -// and not contain exclamation marks. -func UnescapeVersion(escaped string) (v string, err error) { - v, ok := unescapeString(escaped) - if !ok { - return "", fmt.Errorf("invalid escaped version %q", escaped) - } - if err := checkElem(v, filePath); err != nil { - return "", fmt.Errorf("invalid escaped version %q: %v", v, err) - } - return v, nil -} - -func unescapeString(escaped string) (string, bool) { - var buf []byte - - bang := false - for _, r := range escaped { - if r >= utf8.RuneSelf { - return "", false - } - if bang { - bang = false - if r < 'a' || 'z' < r { - return "", false - } - buf = append(buf, byte(r+'A'-'a')) - continue - } - if r == '!' { - bang = true - continue - } - if 'A' <= r && r <= 'Z' { - return "", false - } - buf = append(buf, byte(r)) - } - if bang { - return "", false - } - return string(buf), true -} - -// MatchPrefixPatterns reports whether any path prefix of target matches one of -// the glob patterns (as defined by [path.Match]) in the comma-separated globs -// list. This implements the algorithm used when matching a module path to the -// GOPRIVATE environment variable, as described by 'go help module-private'. -// -// It ignores any empty or malformed patterns in the list. -// Trailing slashes on patterns are ignored. -func MatchPrefixPatterns(globs, target string) bool { - for globs != "" { - // Extract next non-empty glob in comma-separated list. - var glob string - if i := strings.Index(globs, ","); i >= 0 { - glob, globs = globs[:i], globs[i+1:] - } else { - glob, globs = globs, "" - } - glob = strings.TrimSuffix(glob, "/") - if glob == "" { - continue - } - - // A glob with N+1 path elements (N slashes) needs to be matched - // against the first N+1 path elements of target, - // which end just before the N+1'th slash. - n := strings.Count(glob, "/") - prefix := target - // Walk target, counting slashes, truncating at the N+1'th slash. - for i := 0; i < len(target); i++ { - if target[i] == '/' { - if n == 0 { - prefix = target[:i] - break - } - n-- - } - } - if n > 0 { - // Not enough prefix elements. - continue - } - matched, _ := path.Match(glob, prefix) - if matched { - return true - } - } - return false -} diff --git a/vendor/golang.org/x/mod/module/pseudo.go b/vendor/golang.org/x/mod/module/pseudo.go deleted file mode 100644 index 9cf19d3..0000000 --- a/vendor/golang.org/x/mod/module/pseudo.go +++ /dev/null @@ -1,250 +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. - -// Pseudo-versions -// -// Code authors are expected to tag the revisions they want users to use, -// including prereleases. However, not all authors tag versions at all, -// and not all commits a user might want to try will have tags. -// A pseudo-version is a version with a special form that allows us to -// address an untagged commit and order that version with respect to -// other versions we might encounter. -// -// A pseudo-version takes one of the general forms: -// -// (1) vX.0.0-yyyymmddhhmmss-abcdef123456 -// (2) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 -// (3) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible -// (4) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 -// (5) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible -// -// If there is no recently tagged version with the right major version vX, -// then form (1) is used, creating a space of pseudo-versions at the bottom -// of the vX version range, less than any tagged version, including the unlikely v0.0.0. -// -// If the most recent tagged version before the target commit is vX.Y.Z or vX.Y.Z+incompatible, -// then the pseudo-version uses form (2) or (3), making it a prerelease for the next -// possible semantic version after vX.Y.Z. The leading 0 segment in the prerelease string -// ensures that the pseudo-version compares less than possible future explicit prereleases -// like vX.Y.(Z+1)-rc1 or vX.Y.(Z+1)-1. -// -// If the most recent tagged version before the target commit is vX.Y.Z-pre or vX.Y.Z-pre+incompatible, -// then the pseudo-version uses form (4) or (5), making it a slightly later prerelease. - -package module - -import ( - "errors" - "fmt" - "strings" - "time" - - "golang.org/x/mod/internal/lazyregexp" - "golang.org/x/mod/semver" -) - -var pseudoVersionRE = lazyregexp.New(`^v[0-9]+\.(0\.0-|\d+\.\d+-([^+]*\.)?0\.)\d{14}-[A-Za-z0-9]+(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$`) - -const PseudoVersionTimestampFormat = "20060102150405" - -// PseudoVersion returns a pseudo-version for the given major version ("v1") -// preexisting older tagged version ("" or "v1.2.3" or "v1.2.3-pre"), revision time, -// and revision identifier (usually a 12-byte commit hash prefix). -func PseudoVersion(major, older string, t time.Time, rev string) string { - if major == "" { - major = "v0" - } - segment := fmt.Sprintf("%s-%s", t.UTC().Format(PseudoVersionTimestampFormat), rev) - build := semver.Build(older) - older = semver.Canonical(older) - if older == "" { - return major + ".0.0-" + segment // form (1) - } - if semver.Prerelease(older) != "" { - return older + ".0." + segment + build // form (4), (5) - } - - // Form (2), (3). - // Extract patch from vMAJOR.MINOR.PATCH - i := strings.LastIndex(older, ".") + 1 - v, patch := older[:i], older[i:] - - // Reassemble. - return v + incDecimal(patch) + "-0." + segment + build -} - -// ZeroPseudoVersion returns a pseudo-version with a zero timestamp and -// revision, which may be used as a placeholder. -func ZeroPseudoVersion(major string) string { - return PseudoVersion(major, "", time.Time{}, "000000000000") -} - -// incDecimal returns the decimal string incremented by 1. -func incDecimal(decimal string) string { - // Scan right to left turning 9s to 0s until you find a digit to increment. - digits := []byte(decimal) - i := len(digits) - 1 - for ; i >= 0 && digits[i] == '9'; i-- { - digits[i] = '0' - } - if i >= 0 { - digits[i]++ - } else { - // digits is all zeros - digits[0] = '1' - digits = append(digits, '0') - } - return string(digits) -} - -// decDecimal returns the decimal string decremented by 1, or the empty string -// if the decimal is all zeroes. -func decDecimal(decimal string) string { - // Scan right to left turning 0s to 9s until you find a digit to decrement. - digits := []byte(decimal) - i := len(digits) - 1 - for ; i >= 0 && digits[i] == '0'; i-- { - digits[i] = '9' - } - if i < 0 { - // decimal is all zeros - return "" - } - if i == 0 && digits[i] == '1' && len(digits) > 1 { - digits = digits[1:] - } else { - digits[i]-- - } - return string(digits) -} - -// IsPseudoVersion reports whether v is a pseudo-version. -func IsPseudoVersion(v string) bool { - return strings.Count(v, "-") >= 2 && semver.IsValid(v) && pseudoVersionRE.MatchString(v) -} - -// IsZeroPseudoVersion returns whether v is a pseudo-version with a zero base, -// timestamp, and revision, as returned by [ZeroPseudoVersion]. -func IsZeroPseudoVersion(v string) bool { - return v == ZeroPseudoVersion(semver.Major(v)) -} - -// PseudoVersionTime returns the time stamp of the pseudo-version v. -// It returns an error if v is not a pseudo-version or if the time stamp -// embedded in the pseudo-version is not a valid time. -func PseudoVersionTime(v string) (time.Time, error) { - _, timestamp, _, _, err := parsePseudoVersion(v) - if err != nil { - return time.Time{}, err - } - t, err := time.Parse("20060102150405", timestamp) - if err != nil { - return time.Time{}, &InvalidVersionError{ - Version: v, - Pseudo: true, - Err: fmt.Errorf("malformed time %q", timestamp), - } - } - return t, nil -} - -// PseudoVersionRev returns the revision identifier of the pseudo-version v. -// It returns an error if v is not a pseudo-version. -func PseudoVersionRev(v string) (rev string, err error) { - _, _, rev, _, err = parsePseudoVersion(v) - return -} - -// PseudoVersionBase returns the canonical parent version, if any, upon which -// the pseudo-version v is based. -// -// If v has no parent version (that is, if it is "vX.0.0-[…]"), -// PseudoVersionBase returns the empty string and a nil error. -func PseudoVersionBase(v string) (string, error) { - base, _, _, build, err := parsePseudoVersion(v) - if err != nil { - return "", err - } - - switch pre := semver.Prerelease(base); pre { - case "": - // vX.0.0-yyyymmddhhmmss-abcdef123456 → "" - if build != "" { - // Pseudo-versions of the form vX.0.0-yyyymmddhhmmss-abcdef123456+incompatible - // are nonsensical: the "vX.0.0-" prefix implies that there is no parent tag, - // but the "+incompatible" suffix implies that the major version of - // the parent tag is not compatible with the module's import path. - // - // There are a few such entries in the index generated by proxy.golang.org, - // but we believe those entries were generated by the proxy itself. - return "", &InvalidVersionError{ - Version: v, - Pseudo: true, - Err: fmt.Errorf("lacks base version, but has build metadata %q", build), - } - } - return "", nil - - case "-0": - // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z - // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z+incompatible - base = strings.TrimSuffix(base, pre) - i := strings.LastIndexByte(base, '.') - if i < 0 { - panic("base from parsePseudoVersion missing patch number: " + base) - } - patch := decDecimal(base[i+1:]) - if patch == "" { - // vX.0.0-0 is invalid, but has been observed in the wild in the index - // generated by requests to proxy.golang.org. - // - // NOTE(bcmills): I cannot find a historical bug that accounts for - // pseudo-versions of this form, nor have I seen such versions in any - // actual go.mod files. If we find actual examples of this form and a - // reasonable theory of how they came into existence, it seems fine to - // treat them as equivalent to vX.0.0 (especially since the invalid - // pseudo-versions have lower precedence than the real ones). For now, we - // reject them. - return "", &InvalidVersionError{ - Version: v, - Pseudo: true, - Err: fmt.Errorf("version before %s would have negative patch number", base), - } - } - return base[:i+1] + patch + build, nil - - default: - // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z-pre - // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z-pre+incompatible - if !strings.HasSuffix(base, ".0") { - panic(`base from parsePseudoVersion missing ".0" before date: ` + base) - } - return strings.TrimSuffix(base, ".0") + build, nil - } -} - -var errPseudoSyntax = errors.New("syntax error") - -func parsePseudoVersion(v string) (base, timestamp, rev, build string, err error) { - if !IsPseudoVersion(v) { - return "", "", "", "", &InvalidVersionError{ - Version: v, - Pseudo: true, - Err: errPseudoSyntax, - } - } - build = semver.Build(v) - v = strings.TrimSuffix(v, build) - j := strings.LastIndex(v, "-") - v, rev = v[:j], v[j+1:] - i := strings.LastIndex(v, "-") - if j := strings.LastIndex(v, "."); j > i { - base = v[:j] // "vX.Y.Z-pre.0" or "vX.Y.(Z+1)-0" - timestamp = v[j+1:] - } else { - base = v[:i] // "vX.0.0" - timestamp = v[i+1:] - } - return base, timestamp, rev, build, nil -} diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go deleted file mode 100644 index 628f8fd..0000000 --- a/vendor/golang.org/x/mod/semver/semver.go +++ /dev/null @@ -1,407 +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. - -// Package semver implements comparison of semantic version strings. -// In this package, semantic version strings must begin with a leading "v", -// as in "v1.0.0". -// -// The general form of a semantic version string accepted by this package is -// -// vMAJOR[.MINOR[.PATCH[-PRERELEASE][+BUILD]]] -// -// where square brackets indicate optional parts of the syntax; -// MAJOR, MINOR, and PATCH are decimal integers without extra leading zeros; -// PRERELEASE and BUILD are each a series of non-empty dot-separated identifiers -// using only alphanumeric characters and hyphens; and -// all-numeric PRERELEASE identifiers must not have leading zeros. -// -// This package follows Semantic Versioning 2.0.0 (see semver.org) -// with two exceptions. First, it requires the "v" prefix. Second, it recognizes -// vMAJOR and vMAJOR.MINOR (with no prerelease or build suffixes) -// as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. -package semver - -import ( - "slices" - "strings" -) - -// parsed returns the parsed form of a semantic version string. -type parsed struct { - major string - minor string - patch string - short string - prerelease string - build string -} - -// IsValid reports whether v is a valid semantic version string. -func IsValid(v string) bool { - _, ok := parse(v) - return ok -} - -// Canonical returns the canonical formatting of the semantic version v. -// It fills in any missing .MINOR or .PATCH and discards build metadata. -// Two semantic versions compare equal only if their canonical formattings -// are identical strings. -// The canonical invalid semantic version is the empty string. -func Canonical(v string) string { - p, ok := parse(v) - if !ok { - return "" - } - if p.build != "" { - return v[:len(v)-len(p.build)] - } - if p.short != "" { - return v + p.short - } - return v -} - -// Major returns the major version prefix of the semantic version v. -// For example, Major("v2.1.0") == "v2". -// If v is an invalid semantic version string, Major returns the empty string. -func Major(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return v[:1+len(pv.major)] -} - -// MajorMinor returns the major.minor version prefix of the semantic version v. -// For example, MajorMinor("v2.1.0") == "v2.1". -// If v is an invalid semantic version string, MajorMinor returns the empty string. -func MajorMinor(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - i := 1 + len(pv.major) - if j := i + 1 + len(pv.minor); j <= len(v) && v[i] == '.' && v[i+1:j] == pv.minor { - return v[:j] - } - return v[:i] + "." + pv.minor -} - -// Prerelease returns the prerelease suffix of the semantic version v. -// For example, Prerelease("v2.1.0-pre+meta") == "-pre". -// If v is an invalid semantic version string, Prerelease returns the empty string. -func Prerelease(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return pv.prerelease -} - -// Build returns the build suffix of the semantic version v. -// For example, Build("v2.1.0+meta") == "+meta". -// If v is an invalid semantic version string, Build returns the empty string. -func Build(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return pv.build -} - -// Compare returns an integer comparing two versions according to -// semantic version precedence. -// The result will be 0 if v == w, -1 if v < w, or +1 if v > w. -// -// An invalid semantic version string is considered less than a valid one. -// All invalid semantic version strings compare equal to each other. -func Compare(v, w string) int { - pv, ok1 := parse(v) - pw, ok2 := parse(w) - if !ok1 && !ok2 { - return 0 - } - if !ok1 { - return -1 - } - if !ok2 { - return +1 - } - if c := compareInt(pv.major, pw.major); c != 0 { - return c - } - if c := compareInt(pv.minor, pw.minor); c != 0 { - return c - } - if c := compareInt(pv.patch, pw.patch); c != 0 { - return c - } - return comparePrerelease(pv.prerelease, pw.prerelease) -} - -// Max canonicalizes its arguments and then returns the version string -// that compares greater. -// -// Deprecated: use [Compare] instead. In most cases, returning a canonicalized -// version is not expected or desired. -func Max(v, w string) string { - v = Canonical(v) - w = Canonical(w) - if Compare(v, w) > 0 { - return v - } - return w -} - -// ByVersion implements [sort.Interface] for sorting semantic version strings. -type ByVersion []string - -func (vs ByVersion) Len() int { return len(vs) } -func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } -func (vs ByVersion) Less(i, j int) bool { return compareVersion(vs[i], vs[j]) < 0 } - -// Sort sorts a list of semantic version strings using [Compare] and falls back -// to use [strings.Compare] if both versions are considered equal. -func Sort(list []string) { - slices.SortFunc(list, compareVersion) -} - -func compareVersion(a, b string) int { - cmp := Compare(a, b) - if cmp != 0 { - return cmp - } - return strings.Compare(a, b) -} - -func parse(v string) (p parsed, ok bool) { - if v == "" || v[0] != 'v' { - return - } - p.major, v, ok = parseInt(v[1:]) - if !ok { - return - } - if v == "" { - p.minor = "0" - p.patch = "0" - p.short = ".0.0" - return - } - if v[0] != '.' { - ok = false - return - } - p.minor, v, ok = parseInt(v[1:]) - if !ok { - return - } - if v == "" { - p.patch = "0" - p.short = ".0" - return - } - if v[0] != '.' { - ok = false - return - } - p.patch, v, ok = parseInt(v[1:]) - if !ok { - return - } - if len(v) > 0 && v[0] == '-' { - p.prerelease, v, ok = parsePrerelease(v) - if !ok { - return - } - } - if len(v) > 0 && v[0] == '+' { - p.build, v, ok = parseBuild(v) - if !ok { - return - } - } - if v != "" { - ok = false - return - } - ok = true - return -} - -func parseInt(v string) (t, rest string, ok bool) { - if v == "" { - return - } - if v[0] < '0' || '9' < v[0] { - return - } - i := 1 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - if v[0] == '0' && i != 1 { - return - } - return v[:i], v[i:], true -} - -func parsePrerelease(v string) (t, rest string, ok bool) { - // "A pre-release version MAY be denoted by appending a hyphen and - // a series of dot separated identifiers immediately following the patch version. - // Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. - // Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes." - if v == "" || v[0] != '-' { - return - } - i := 1 - start := 1 - for i < len(v) && v[i] != '+' { - if !isIdentChar(v[i]) && v[i] != '.' { - return - } - if v[i] == '.' { - if start == i || isBadNum(v[start:i]) { - return - } - start = i + 1 - } - i++ - } - if start == i || isBadNum(v[start:i]) { - return - } - return v[:i], v[i:], true -} - -func parseBuild(v string) (t, rest string, ok bool) { - if v == "" || v[0] != '+' { - return - } - i := 1 - start := 1 - for i < len(v) { - if !isIdentChar(v[i]) && v[i] != '.' { - return - } - if v[i] == '.' { - if start == i { - return - } - start = i + 1 - } - i++ - } - if start == i { - return - } - return v[:i], v[i:], true -} - -func isIdentChar(c byte) bool { - return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '-' -} - -func isBadNum(v string) bool { - i := 0 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - return i == len(v) && i > 1 && v[0] == '0' -} - -func isNum(v string) bool { - i := 0 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - return i == len(v) -} - -func compareInt(x, y string) int { - if x == y { - return 0 - } - if len(x) < len(y) { - return -1 - } - if len(x) > len(y) { - return +1 - } - if x < y { - return -1 - } else { - return +1 - } -} - -func comparePrerelease(x, y string) int { - // "When major, minor, and patch are equal, a pre-release version has - // lower precedence than a normal version. - // Example: 1.0.0-alpha < 1.0.0. - // Precedence for two pre-release versions with the same major, minor, - // and patch version MUST be determined by comparing each dot separated - // identifier from left to right until a difference is found as follows: - // identifiers consisting of only digits are compared numerically and - // identifiers with letters or hyphens are compared lexically in ASCII - // sort order. Numeric identifiers always have lower precedence than - // non-numeric identifiers. A larger set of pre-release fields has a - // higher precedence than a smaller set, if all of the preceding - // identifiers are equal. - // Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < - // 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0." - if x == y { - return 0 - } - if x == "" { - return +1 - } - if y == "" { - return -1 - } - for x != "" && y != "" { - x = x[1:] // skip - or . - y = y[1:] // skip - or . - var dx, dy string - dx, x = nextIdent(x) - dy, y = nextIdent(y) - if dx != dy { - ix := isNum(dx) - iy := isNum(dy) - if ix != iy { - if ix { - return -1 - } else { - return +1 - } - } - if ix { - if len(dx) < len(dy) { - return -1 - } - if len(dx) > len(dy) { - return +1 - } - } - if dx < dy { - return -1 - } else { - return +1 - } - } - } - if x == "" { - return -1 - } else { - return +1 - } -} - -func nextIdent(x string) (dx, rest string) { - i := 0 - for i < len(x) && x[i] != '.' { - i++ - } - return x[:i], x[i:] -} diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/net/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/net/PATENTS b/vendor/golang.org/x/net/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/net/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/net/html/atom/atom.go b/vendor/golang.org/x/net/html/atom/atom.go deleted file mode 100644 index cd0a8ac..0000000 --- a/vendor/golang.org/x/net/html/atom/atom.go +++ /dev/null @@ -1,78 +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. - -// Package atom provides integer codes (also known as atoms) for a fixed set of -// frequently occurring HTML strings: tag names and attribute keys such as "p" -// and "id". -// -// Sharing an atom's name between all elements with the same tag can result in -// fewer string allocations when tokenizing and parsing HTML. Integer -// comparisons are also generally faster than string comparisons. -// -// The value of an atom's particular code is not guaranteed to stay the same -// between versions of this package. Neither is any ordering guaranteed: -// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to -// be dense. The only guarantees are that e.g. looking up "div" will yield -// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0. -package atom // import "golang.org/x/net/html/atom" - -// Atom is an integer code for a string. The zero value maps to "". -type Atom uint32 - -// String returns the atom's name. -func (a Atom) String() string { - start := uint32(a >> 8) - n := uint32(a & 0xff) - if start+n > uint32(len(atomText)) { - return "" - } - return atomText[start : start+n] -} - -func (a Atom) string() string { - return atomText[a>>8 : a>>8+a&0xff] -} - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s []byte) uint32 { - for i := range s { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -func match(s string, t []byte) bool { - for i, c := range t { - if s[i] != c { - return false - } - } - return true -} - -// Lookup returns the atom whose name is s. It returns zero if there is no -// such atom. The lookup is case sensitive. -func Lookup(s []byte) Atom { - if len(s) == 0 || len(s) > maxAtomLen { - return 0 - } - h := fnv(hash0, s) - if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - return 0 -} - -// String returns a string whose contents are equal to s. In that sense, it is -// equivalent to string(s) but may be more efficient. -func String(s []byte) string { - if a := Lookup(s); a != 0 { - return a.String() - } - return string(s) -} diff --git a/vendor/golang.org/x/net/html/atom/table.go b/vendor/golang.org/x/net/html/atom/table.go deleted file mode 100644 index b460e6f..0000000 --- a/vendor/golang.org/x/net/html/atom/table.go +++ /dev/null @@ -1,785 +0,0 @@ -// Code generated by go generate gen.go; DO NOT EDIT. - -//go:generate go run gen.go - -package atom - -const ( - A Atom = 0x1 - Abbr Atom = 0x4 - Accept Atom = 0x1a06 - AcceptCharset Atom = 0x1a0e - Accesskey Atom = 0x2c09 - Acronym Atom = 0xaa07 - Action Atom = 0x26506 - Address Atom = 0x6f107 - Align Atom = 0xb105 - Allowfullscreen Atom = 0x3280f - Allowpaymentrequest Atom = 0xc113 - Allowusermedia Atom = 0xdd0e - Alt Atom = 0xf303 - Annotation Atom = 0x1c90a - AnnotationXml Atom = 0x1c90e - Applet Atom = 0x30806 - Area Atom = 0x35004 - Article Atom = 0x3f607 - As Atom = 0x3c02 - Aside Atom = 0x10705 - Async Atom = 0xff05 - Audio Atom = 0x11505 - Autocomplete Atom = 0x26b0c - Autofocus Atom = 0x12109 - Autoplay Atom = 0x13c08 - B Atom = 0x101 - Base Atom = 0x3b04 - Basefont Atom = 0x3b08 - Bdi Atom = 0xba03 - Bdo Atom = 0x14b03 - Bgsound Atom = 0x15e07 - Big Atom = 0x17003 - Blink Atom = 0x17305 - Blockquote Atom = 0x1870a - Body Atom = 0x2804 - Br Atom = 0x202 - Button Atom = 0x19106 - Canvas Atom = 0x10306 - Caption Atom = 0x22407 - Center Atom = 0x21306 - Challenge Atom = 0x28e09 - Charset Atom = 0x2107 - Checked Atom = 0x5b507 - Cite Atom = 0x19c04 - Class Atom = 0x55805 - Code Atom = 0x5ee04 - Col Atom = 0x1ab03 - Colgroup Atom = 0x1ab08 - Color Atom = 0x1bf05 - Cols Atom = 0x1c404 - Colspan Atom = 0x1c407 - Command Atom = 0x1d707 - Content Atom = 0x57b07 - Contenteditable Atom = 0x57b0f - Contextmenu Atom = 0x37a0b - Controls Atom = 0x1de08 - Coords Atom = 0x1f006 - Crossorigin Atom = 0x1fa0b - Data Atom = 0x49904 - Datalist Atom = 0x49908 - Datetime Atom = 0x2ab08 - Dd Atom = 0x2bf02 - Default Atom = 0x10a07 - Defer Atom = 0x5f005 - Del Atom = 0x44c03 - Desc Atom = 0x55504 - Details Atom = 0x7207 - Dfn Atom = 0x8703 - Dialog Atom = 0xbb06 - Dir Atom = 0x9303 - Dirname Atom = 0x9307 - Disabled Atom = 0x16408 - Div Atom = 0x16b03 - Dl Atom = 0x5d602 - Download Atom = 0x45d08 - Draggable Atom = 0x17a09 - Dropzone Atom = 0x3ff08 - Dt Atom = 0x64002 - Em Atom = 0x6e02 - Embed Atom = 0x6e05 - Enctype Atom = 0x28007 - Face Atom = 0x21104 - Fieldset Atom = 0x21908 - Figcaption Atom = 0x2210a - Figure Atom = 0x23b06 - Font Atom = 0x3f04 - Footer Atom = 0xf606 - For Atom = 0x24703 - ForeignObject Atom = 0x2470d - Foreignobject Atom = 0x2540d - Form Atom = 0x26104 - Formaction Atom = 0x2610a - Formenctype Atom = 0x27c0b - Formmethod Atom = 0x2970a - Formnovalidate Atom = 0x2a10e - Formtarget Atom = 0x2b30a - Frame Atom = 0x8b05 - Frameset Atom = 0x8b08 - H1 Atom = 0x15c02 - H2 Atom = 0x56102 - H3 Atom = 0x2cd02 - H4 Atom = 0x2fc02 - H5 Atom = 0x33f02 - H6 Atom = 0x34902 - Head Atom = 0x32004 - Header Atom = 0x32006 - Headers Atom = 0x32007 - Height Atom = 0x5206 - Hgroup Atom = 0x64206 - Hidden Atom = 0x2bd06 - High Atom = 0x2ca04 - Hr Atom = 0x15702 - Href Atom = 0x2cf04 - Hreflang Atom = 0x2cf08 - Html Atom = 0x5604 - HttpEquiv Atom = 0x2d70a - I Atom = 0x601 - Icon Atom = 0x57a04 - Id Atom = 0x10902 - Iframe Atom = 0x2eb06 - Image Atom = 0x2f105 - Img Atom = 0x2f603 - Input Atom = 0x44505 - Inputmode Atom = 0x44509 - Ins Atom = 0x20303 - Integrity Atom = 0x23209 - Is Atom = 0x16502 - Isindex Atom = 0x2fe07 - Ismap Atom = 0x30505 - Itemid Atom = 0x38506 - Itemprop Atom = 0x19d08 - Itemref Atom = 0x3c707 - Itemscope Atom = 0x66f09 - Itemtype Atom = 0x30e08 - Kbd Atom = 0xb903 - Keygen Atom = 0x3206 - Keytype Atom = 0xd607 - Kind Atom = 0x17704 - Label Atom = 0x5905 - Lang Atom = 0x2d304 - Legend Atom = 0x18106 - Li Atom = 0xb202 - Link Atom = 0x17404 - List Atom = 0x49d04 - Listing Atom = 0x49d07 - Loop Atom = 0x5d04 - Low Atom = 0xc303 - Main Atom = 0x1004 - Malignmark Atom = 0xb00a - Manifest Atom = 0x6d508 - Map Atom = 0x30703 - Mark Atom = 0xb604 - Marquee Atom = 0x31607 - Math Atom = 0x31d04 - Max Atom = 0x33703 - Maxlength Atom = 0x33709 - Media Atom = 0xe605 - Mediagroup Atom = 0xe60a - Menu Atom = 0x38104 - Menuitem Atom = 0x38108 - Meta Atom = 0x4ac04 - Meter Atom = 0x9805 - Method Atom = 0x29b06 - Mglyph Atom = 0x2f706 - Mi Atom = 0x34102 - Min Atom = 0x34103 - Minlength Atom = 0x34109 - Mn Atom = 0x2a402 - Mo Atom = 0xa402 - Ms Atom = 0x67202 - Mtext Atom = 0x34b05 - Multiple Atom = 0x35908 - Muted Atom = 0x36105 - Name Atom = 0x9604 - Nav Atom = 0x1303 - Nobr Atom = 0x3704 - Noembed Atom = 0x6c07 - Noframes Atom = 0x8908 - Nomodule Atom = 0xa208 - Nonce Atom = 0x1a605 - Noscript Atom = 0x2c208 - Novalidate Atom = 0x2a50a - Object Atom = 0x25b06 - Ol Atom = 0x13702 - Onabort Atom = 0x19507 - Onafterprint Atom = 0x2290c - Onautocomplete Atom = 0x2690e - Onautocompleteerror Atom = 0x26913 - Onauxclick Atom = 0x6140a - Onbeforeprint Atom = 0x69c0d - Onbeforeunload Atom = 0x6e50e - Onblur Atom = 0x1ea06 - Oncancel Atom = 0x11908 - Oncanplay Atom = 0x14d09 - Oncanplaythrough Atom = 0x14d10 - Onchange Atom = 0x41508 - Onclick Atom = 0x2e407 - Onclose Atom = 0x36607 - Oncontextmenu Atom = 0x3780d - Oncopy Atom = 0x38b06 - Oncuechange Atom = 0x3910b - Oncut Atom = 0x39c05 - Ondblclick Atom = 0x3a10a - Ondrag Atom = 0x3ab06 - Ondragend Atom = 0x3ab09 - Ondragenter Atom = 0x3b40b - Ondragexit Atom = 0x3bf0a - Ondragleave Atom = 0x3d90b - Ondragover Atom = 0x3e40a - Ondragstart Atom = 0x3ee0b - Ondrop Atom = 0x3fd06 - Ondurationchange Atom = 0x40d10 - Onemptied Atom = 0x40409 - Onended Atom = 0x41d07 - Onerror Atom = 0x42407 - Onfocus Atom = 0x42b07 - Onhashchange Atom = 0x4370c - Oninput Atom = 0x44307 - Oninvalid Atom = 0x44f09 - Onkeydown Atom = 0x45809 - Onkeypress Atom = 0x4650a - Onkeyup Atom = 0x47407 - Onlanguagechange Atom = 0x48110 - Onload Atom = 0x49106 - Onloadeddata Atom = 0x4910c - Onloadedmetadata Atom = 0x4a410 - Onloadend Atom = 0x4ba09 - Onloadstart Atom = 0x4c30b - Onmessage Atom = 0x4ce09 - Onmessageerror Atom = 0x4ce0e - Onmousedown Atom = 0x4dc0b - Onmouseenter Atom = 0x4e70c - Onmouseleave Atom = 0x4f30c - Onmousemove Atom = 0x4ff0b - Onmouseout Atom = 0x50a0a - Onmouseover Atom = 0x5170b - Onmouseup Atom = 0x52209 - Onmousewheel Atom = 0x5300c - Onoffline Atom = 0x53c09 - Ononline Atom = 0x54508 - Onpagehide Atom = 0x54d0a - Onpageshow Atom = 0x5630a - Onpaste Atom = 0x56f07 - Onpause Atom = 0x58a07 - Onplay Atom = 0x59406 - Onplaying Atom = 0x59409 - Onpopstate Atom = 0x59d0a - Onprogress Atom = 0x5a70a - Onratechange Atom = 0x5bc0c - Onrejectionhandled Atom = 0x5c812 - Onreset Atom = 0x5da07 - Onresize Atom = 0x5e108 - Onscroll Atom = 0x5f508 - Onsecuritypolicyviolation Atom = 0x5fd19 - Onseeked Atom = 0x61e08 - Onseeking Atom = 0x62609 - Onselect Atom = 0x62f08 - Onshow Atom = 0x63906 - Onsort Atom = 0x64d06 - Onstalled Atom = 0x65709 - Onstorage Atom = 0x66009 - Onsubmit Atom = 0x66908 - Onsuspend Atom = 0x67909 - Ontimeupdate Atom = 0x400c - Ontoggle Atom = 0x68208 - Onunhandledrejection Atom = 0x68a14 - Onunload Atom = 0x6a908 - Onvolumechange Atom = 0x6b10e - Onwaiting Atom = 0x6bf09 - Onwheel Atom = 0x6c807 - Open Atom = 0x1a304 - Optgroup Atom = 0x5f08 - Optimum Atom = 0x6cf07 - Option Atom = 0x6e106 - Output Atom = 0x51106 - P Atom = 0xc01 - Param Atom = 0xc05 - Pattern Atom = 0x6607 - Picture Atom = 0x7b07 - Ping Atom = 0xef04 - Placeholder Atom = 0x1310b - Plaintext Atom = 0x1b209 - Playsinline Atom = 0x1400b - Poster Atom = 0x64706 - Pre Atom = 0x46a03 - Preload Atom = 0x47a07 - Progress Atom = 0x5a908 - Prompt Atom = 0x52a06 - Public Atom = 0x57606 - Q Atom = 0xcf01 - Radiogroup Atom = 0x30a - Rb Atom = 0x3a02 - Readonly Atom = 0x35108 - Referrerpolicy Atom = 0x3cb0e - Rel Atom = 0x47b03 - Required Atom = 0x23f08 - Reversed Atom = 0x8008 - Rows Atom = 0x9c04 - Rowspan Atom = 0x9c07 - Rp Atom = 0x22f02 - Rt Atom = 0x19a02 - Rtc Atom = 0x19a03 - Ruby Atom = 0xfb04 - S Atom = 0x2501 - Samp Atom = 0x7804 - Sandbox Atom = 0x12907 - Scope Atom = 0x67305 - Scoped Atom = 0x67306 - Script Atom = 0x2c406 - Seamless Atom = 0x36b08 - Search Atom = 0x55c06 - Section Atom = 0x1e507 - Select Atom = 0x63106 - Selected Atom = 0x63108 - Shape Atom = 0x1f505 - Size Atom = 0x5e504 - Sizes Atom = 0x5e505 - Slot Atom = 0x20504 - Small Atom = 0x32605 - Sortable Atom = 0x64f08 - Sorted Atom = 0x37206 - Source Atom = 0x43106 - Spacer Atom = 0x46e06 - Span Atom = 0x9f04 - Spellcheck Atom = 0x5b00a - Src Atom = 0x5e903 - Srcdoc Atom = 0x5e906 - Srclang Atom = 0x6f707 - Srcset Atom = 0x6fe06 - Start Atom = 0x3f405 - Step Atom = 0x57304 - Strike Atom = 0xd206 - Strong Atom = 0x6db06 - Style Atom = 0x70405 - Sub Atom = 0x66b03 - Summary Atom = 0x70907 - Sup Atom = 0x71003 - Svg Atom = 0x71303 - System Atom = 0x71606 - Tabindex Atom = 0x4b208 - Table Atom = 0x58505 - Target Atom = 0x2b706 - Tbody Atom = 0x2705 - Td Atom = 0x9202 - Template Atom = 0x71908 - Textarea Atom = 0x34c08 - Tfoot Atom = 0xf505 - Th Atom = 0x15602 - Thead Atom = 0x31f05 - Time Atom = 0x4204 - Title Atom = 0x11005 - Tr Atom = 0xcc02 - Track Atom = 0x1ba05 - Translate Atom = 0x20809 - Tt Atom = 0x6802 - Type Atom = 0xd904 - Typemustmatch Atom = 0x2830d - U Atom = 0xb01 - Ul Atom = 0xa702 - Updateviacache Atom = 0x460e - Usemap Atom = 0x58e06 - Value Atom = 0x1505 - Var Atom = 0x16d03 - Video Atom = 0x2e005 - Wbr Atom = 0x56c03 - Width Atom = 0x63e05 - Workertype Atom = 0x7210a - Wrap Atom = 0x72b04 - Xmp Atom = 0x12f03 -) - -const hash0 = 0x84f70e16 - -const maxAtomLen = 25 - -var table = [1 << 9]Atom{ - 0x1: 0x3ff08, // dropzone - 0x2: 0x3b08, // basefont - 0x3: 0x23209, // integrity - 0x4: 0x43106, // source - 0x5: 0x2c09, // accesskey - 0x6: 0x1a06, // accept - 0x7: 0x6c807, // onwheel - 0xb: 0x47407, // onkeyup - 0xc: 0x32007, // headers - 0xd: 0x67306, // scoped - 0xe: 0x67909, // onsuspend - 0xf: 0x8908, // noframes - 0x10: 0x1fa0b, // crossorigin - 0x11: 0x2e407, // onclick - 0x12: 0x3f405, // start - 0x13: 0x37a0b, // contextmenu - 0x14: 0x5e903, // src - 0x15: 0x1c404, // cols - 0x16: 0xbb06, // dialog - 0x17: 0x47a07, // preload - 0x18: 0x3c707, // itemref - 0x1b: 0x2f105, // image - 0x1d: 0x4ba09, // onloadend - 0x1e: 0x45d08, // download - 0x1f: 0x46a03, // pre - 0x23: 0x2970a, // formmethod - 0x24: 0x71303, // svg - 0x25: 0xcf01, // q - 0x26: 0x64002, // dt - 0x27: 0x1de08, // controls - 0x2a: 0x2804, // body - 0x2b: 0xd206, // strike - 0x2c: 0x3910b, // oncuechange - 0x2d: 0x4c30b, // onloadstart - 0x2e: 0x2fe07, // isindex - 0x2f: 0xb202, // li - 0x30: 0x1400b, // playsinline - 0x31: 0x34102, // mi - 0x32: 0x30806, // applet - 0x33: 0x4ce09, // onmessage - 0x35: 0x13702, // ol - 0x36: 0x1a304, // open - 0x39: 0x14d09, // oncanplay - 0x3a: 0x6bf09, // onwaiting - 0x3b: 0x11908, // oncancel - 0x3c: 0x6a908, // onunload - 0x3e: 0x53c09, // onoffline - 0x3f: 0x1a0e, // accept-charset - 0x40: 0x32004, // head - 0x42: 0x3ab09, // ondragend - 0x43: 0x1310b, // placeholder - 0x44: 0x2b30a, // formtarget - 0x45: 0x2540d, // foreignobject - 0x47: 0x400c, // ontimeupdate - 0x48: 0xdd0e, // allowusermedia - 0x4a: 0x69c0d, // onbeforeprint - 0x4b: 0x5604, // html - 0x4c: 0x9f04, // span - 0x4d: 0x64206, // hgroup - 0x4e: 0x16408, // disabled - 0x4f: 0x4204, // time - 0x51: 0x42b07, // onfocus - 0x53: 0xb00a, // malignmark - 0x55: 0x4650a, // onkeypress - 0x56: 0x55805, // class - 0x57: 0x1ab08, // colgroup - 0x58: 0x33709, // maxlength - 0x59: 0x5a908, // progress - 0x5b: 0x70405, // style - 0x5c: 0x2a10e, // formnovalidate - 0x5e: 0x38b06, // oncopy - 0x60: 0x26104, // form - 0x61: 0xf606, // footer - 0x64: 0x30a, // radiogroup - 0x66: 0xfb04, // ruby - 0x67: 0x4ff0b, // onmousemove - 0x68: 0x19d08, // itemprop - 0x69: 0x2d70a, // http-equiv - 0x6a: 0x15602, // th - 0x6c: 0x6e02, // em - 0x6d: 0x38108, // menuitem - 0x6e: 0x63106, // select - 0x6f: 0x48110, // onlanguagechange - 0x70: 0x31f05, // thead - 0x71: 0x15c02, // h1 - 0x72: 0x5e906, // srcdoc - 0x75: 0x9604, // name - 0x76: 0x19106, // button - 0x77: 0x55504, // desc - 0x78: 0x17704, // kind - 0x79: 0x1bf05, // color - 0x7c: 0x58e06, // usemap - 0x7d: 0x30e08, // itemtype - 0x7f: 0x6d508, // manifest - 0x81: 0x5300c, // onmousewheel - 0x82: 0x4dc0b, // onmousedown - 0x84: 0xc05, // param - 0x85: 0x2e005, // video - 0x86: 0x4910c, // onloadeddata - 0x87: 0x6f107, // address - 0x8c: 0xef04, // ping - 0x8d: 0x24703, // for - 0x8f: 0x62f08, // onselect - 0x90: 0x30703, // map - 0x92: 0xc01, // p - 0x93: 0x8008, // reversed - 0x94: 0x54d0a, // onpagehide - 0x95: 0x3206, // keygen - 0x96: 0x34109, // minlength - 0x97: 0x3e40a, // ondragover - 0x98: 0x42407, // onerror - 0x9a: 0x2107, // charset - 0x9b: 0x29b06, // method - 0x9c: 0x101, // b - 0x9d: 0x68208, // ontoggle - 0x9e: 0x2bd06, // hidden - 0xa0: 0x3f607, // article - 0xa2: 0x63906, // onshow - 0xa3: 0x64d06, // onsort - 0xa5: 0x57b0f, // contenteditable - 0xa6: 0x66908, // onsubmit - 0xa8: 0x44f09, // oninvalid - 0xaa: 0x202, // br - 0xab: 0x10902, // id - 0xac: 0x5d04, // loop - 0xad: 0x5630a, // onpageshow - 0xb0: 0x2cf04, // href - 0xb2: 0x2210a, // figcaption - 0xb3: 0x2690e, // onautocomplete - 0xb4: 0x49106, // onload - 0xb6: 0x9c04, // rows - 0xb7: 0x1a605, // nonce - 0xb8: 0x68a14, // onunhandledrejection - 0xbb: 0x21306, // center - 0xbc: 0x59406, // onplay - 0xbd: 0x33f02, // h5 - 0xbe: 0x49d07, // listing - 0xbf: 0x57606, // public - 0xc2: 0x23b06, // figure - 0xc3: 0x57a04, // icon - 0xc4: 0x1ab03, // col - 0xc5: 0x47b03, // rel - 0xc6: 0xe605, // media - 0xc7: 0x12109, // autofocus - 0xc8: 0x19a02, // rt - 0xca: 0x2d304, // lang - 0xcc: 0x49908, // datalist - 0xce: 0x2eb06, // iframe - 0xcf: 0x36105, // muted - 0xd0: 0x6140a, // onauxclick - 0xd2: 0x3c02, // as - 0xd6: 0x3fd06, // ondrop - 0xd7: 0x1c90a, // annotation - 0xd8: 0x21908, // fieldset - 0xdb: 0x2cf08, // hreflang - 0xdc: 0x4e70c, // onmouseenter - 0xdd: 0x2a402, // mn - 0xde: 0xe60a, // mediagroup - 0xdf: 0x9805, // meter - 0xe0: 0x56c03, // wbr - 0xe2: 0x63e05, // width - 0xe3: 0x2290c, // onafterprint - 0xe4: 0x30505, // ismap - 0xe5: 0x1505, // value - 0xe7: 0x1303, // nav - 0xe8: 0x54508, // ononline - 0xe9: 0xb604, // mark - 0xea: 0xc303, // low - 0xeb: 0x3ee0b, // ondragstart - 0xef: 0x12f03, // xmp - 0xf0: 0x22407, // caption - 0xf1: 0xd904, // type - 0xf2: 0x70907, // summary - 0xf3: 0x6802, // tt - 0xf4: 0x20809, // translate - 0xf5: 0x1870a, // blockquote - 0xf8: 0x15702, // hr - 0xfa: 0x2705, // tbody - 0xfc: 0x7b07, // picture - 0xfd: 0x5206, // height - 0xfe: 0x19c04, // cite - 0xff: 0x2501, // s - 0x101: 0xff05, // async - 0x102: 0x56f07, // onpaste - 0x103: 0x19507, // onabort - 0x104: 0x2b706, // target - 0x105: 0x14b03, // bdo - 0x106: 0x1f006, // coords - 0x107: 0x5e108, // onresize - 0x108: 0x71908, // template - 0x10a: 0x3a02, // rb - 0x10b: 0x2a50a, // novalidate - 0x10c: 0x460e, // updateviacache - 0x10d: 0x71003, // sup - 0x10e: 0x6c07, // noembed - 0x10f: 0x16b03, // div - 0x110: 0x6f707, // srclang - 0x111: 0x17a09, // draggable - 0x112: 0x67305, // scope - 0x113: 0x5905, // label - 0x114: 0x22f02, // rp - 0x115: 0x23f08, // required - 0x116: 0x3780d, // oncontextmenu - 0x117: 0x5e504, // size - 0x118: 0x5b00a, // spellcheck - 0x119: 0x3f04, // font - 0x11a: 0x9c07, // rowspan - 0x11b: 0x10a07, // default - 0x11d: 0x44307, // oninput - 0x11e: 0x38506, // itemid - 0x11f: 0x5ee04, // code - 0x120: 0xaa07, // acronym - 0x121: 0x3b04, // base - 0x125: 0x2470d, // foreignObject - 0x126: 0x2ca04, // high - 0x127: 0x3cb0e, // referrerpolicy - 0x128: 0x33703, // max - 0x129: 0x59d0a, // onpopstate - 0x12a: 0x2fc02, // h4 - 0x12b: 0x4ac04, // meta - 0x12c: 0x17305, // blink - 0x12e: 0x5f508, // onscroll - 0x12f: 0x59409, // onplaying - 0x130: 0xc113, // allowpaymentrequest - 0x131: 0x19a03, // rtc - 0x132: 0x72b04, // wrap - 0x134: 0x8b08, // frameset - 0x135: 0x32605, // small - 0x137: 0x32006, // header - 0x138: 0x40409, // onemptied - 0x139: 0x34902, // h6 - 0x13a: 0x35908, // multiple - 0x13c: 0x52a06, // prompt - 0x13f: 0x28e09, // challenge - 0x141: 0x4370c, // onhashchange - 0x142: 0x57b07, // content - 0x143: 0x1c90e, // annotation-xml - 0x144: 0x36607, // onclose - 0x145: 0x14d10, // oncanplaythrough - 0x148: 0x5170b, // onmouseover - 0x149: 0x64f08, // sortable - 0x14a: 0xa402, // mo - 0x14b: 0x2cd02, // h3 - 0x14c: 0x2c406, // script - 0x14d: 0x41d07, // onended - 0x14f: 0x64706, // poster - 0x150: 0x7210a, // workertype - 0x153: 0x1f505, // shape - 0x154: 0x4, // abbr - 0x155: 0x1, // a - 0x156: 0x2bf02, // dd - 0x157: 0x71606, // system - 0x158: 0x4ce0e, // onmessageerror - 0x159: 0x36b08, // seamless - 0x15a: 0x2610a, // formaction - 0x15b: 0x6e106, // option - 0x15c: 0x31d04, // math - 0x15d: 0x62609, // onseeking - 0x15e: 0x39c05, // oncut - 0x15f: 0x44c03, // del - 0x160: 0x11005, // title - 0x161: 0x11505, // audio - 0x162: 0x63108, // selected - 0x165: 0x3b40b, // ondragenter - 0x166: 0x46e06, // spacer - 0x167: 0x4a410, // onloadedmetadata - 0x168: 0x44505, // input - 0x16a: 0x58505, // table - 0x16b: 0x41508, // onchange - 0x16e: 0x5f005, // defer - 0x171: 0x50a0a, // onmouseout - 0x172: 0x20504, // slot - 0x175: 0x3704, // nobr - 0x177: 0x1d707, // command - 0x17a: 0x7207, // details - 0x17b: 0x38104, // menu - 0x17c: 0xb903, // kbd - 0x17d: 0x57304, // step - 0x17e: 0x20303, // ins - 0x17f: 0x13c08, // autoplay - 0x182: 0x34103, // min - 0x183: 0x17404, // link - 0x185: 0x40d10, // ondurationchange - 0x186: 0x9202, // td - 0x187: 0x8b05, // frame - 0x18a: 0x2ab08, // datetime - 0x18b: 0x44509, // inputmode - 0x18c: 0x35108, // readonly - 0x18d: 0x21104, // face - 0x18f: 0x5e505, // sizes - 0x191: 0x4b208, // tabindex - 0x192: 0x6db06, // strong - 0x193: 0xba03, // bdi - 0x194: 0x6fe06, // srcset - 0x196: 0x67202, // ms - 0x197: 0x5b507, // checked - 0x198: 0xb105, // align - 0x199: 0x1e507, // section - 0x19b: 0x6e05, // embed - 0x19d: 0x15e07, // bgsound - 0x1a2: 0x49d04, // list - 0x1a3: 0x61e08, // onseeked - 0x1a4: 0x66009, // onstorage - 0x1a5: 0x2f603, // img - 0x1a6: 0xf505, // tfoot - 0x1a9: 0x26913, // onautocompleteerror - 0x1aa: 0x5fd19, // onsecuritypolicyviolation - 0x1ad: 0x9303, // dir - 0x1ae: 0x9307, // dirname - 0x1b0: 0x5a70a, // onprogress - 0x1b2: 0x65709, // onstalled - 0x1b5: 0x66f09, // itemscope - 0x1b6: 0x49904, // data - 0x1b7: 0x3d90b, // ondragleave - 0x1b8: 0x56102, // h2 - 0x1b9: 0x2f706, // mglyph - 0x1ba: 0x16502, // is - 0x1bb: 0x6e50e, // onbeforeunload - 0x1bc: 0x2830d, // typemustmatch - 0x1bd: 0x3ab06, // ondrag - 0x1be: 0x5da07, // onreset - 0x1c0: 0x51106, // output - 0x1c1: 0x12907, // sandbox - 0x1c2: 0x1b209, // plaintext - 0x1c4: 0x34c08, // textarea - 0x1c7: 0xd607, // keytype - 0x1c8: 0x34b05, // mtext - 0x1c9: 0x6b10e, // onvolumechange - 0x1ca: 0x1ea06, // onblur - 0x1cb: 0x58a07, // onpause - 0x1cd: 0x5bc0c, // onratechange - 0x1ce: 0x10705, // aside - 0x1cf: 0x6cf07, // optimum - 0x1d1: 0x45809, // onkeydown - 0x1d2: 0x1c407, // colspan - 0x1d3: 0x1004, // main - 0x1d4: 0x66b03, // sub - 0x1d5: 0x25b06, // object - 0x1d6: 0x55c06, // search - 0x1d7: 0x37206, // sorted - 0x1d8: 0x17003, // big - 0x1d9: 0xb01, // u - 0x1db: 0x26b0c, // autocomplete - 0x1dc: 0xcc02, // tr - 0x1dd: 0xf303, // alt - 0x1df: 0x7804, // samp - 0x1e0: 0x5c812, // onrejectionhandled - 0x1e1: 0x4f30c, // onmouseleave - 0x1e2: 0x28007, // enctype - 0x1e3: 0xa208, // nomodule - 0x1e5: 0x3280f, // allowfullscreen - 0x1e6: 0x5f08, // optgroup - 0x1e8: 0x27c0b, // formenctype - 0x1e9: 0x18106, // legend - 0x1ea: 0x10306, // canvas - 0x1eb: 0x6607, // pattern - 0x1ec: 0x2c208, // noscript - 0x1ed: 0x601, // i - 0x1ee: 0x5d602, // dl - 0x1ef: 0xa702, // ul - 0x1f2: 0x52209, // onmouseup - 0x1f4: 0x1ba05, // track - 0x1f7: 0x3a10a, // ondblclick - 0x1f8: 0x3bf0a, // ondragexit - 0x1fa: 0x8703, // dfn - 0x1fc: 0x26506, // action - 0x1fd: 0x35004, // area - 0x1fe: 0x31607, // marquee - 0x1ff: 0x16d03, // var -} - -const atomText = "abbradiogrouparamainavalueaccept-charsetbodyaccesskeygenobrb" + - "asefontimeupdateviacacheightmlabelooptgroupatternoembedetail" + - "sampictureversedfnoframesetdirnameterowspanomoduleacronymali" + - "gnmarkbdialogallowpaymentrequestrikeytypeallowusermediagroup" + - "ingaltfooterubyasyncanvasidefaultitleaudioncancelautofocusan" + - "dboxmplaceholderautoplaysinlinebdoncanplaythrough1bgsoundisa" + - "bledivarbigblinkindraggablegendblockquotebuttonabortcitempro" + - "penoncecolgrouplaintextrackcolorcolspannotation-xmlcommandco" + - "ntrolsectionblurcoordshapecrossoriginslotranslatefacenterfie" + - "ldsetfigcaptionafterprintegrityfigurequiredforeignObjectfore" + - "ignobjectformactionautocompleteerrorformenctypemustmatchalle" + - "ngeformmethodformnovalidatetimeformtargethiddenoscripthigh3h" + - "reflanghttp-equivideonclickiframeimageimglyph4isindexismappl" + - "etitemtypemarqueematheadersmallowfullscreenmaxlength5minleng" + - "th6mtextareadonlymultiplemutedoncloseamlessortedoncontextmen" + - "uitemidoncopyoncuechangeoncutondblclickondragendondragentero" + - "ndragexitemreferrerpolicyondragleaveondragoverondragstarticl" + - "eondropzonemptiedondurationchangeonendedonerroronfocusourceo" + - "nhashchangeoninputmodeloninvalidonkeydownloadonkeypresspacer" + - "onkeyupreloadonlanguagechangeonloadeddatalistingonloadedmeta" + - "databindexonloadendonloadstartonmessageerroronmousedownonmou" + - "seenteronmouseleaveonmousemoveonmouseoutputonmouseoveronmous" + - "eupromptonmousewheelonofflineononlineonpagehidesclassearch2o" + - "npageshowbronpastepublicontenteditableonpausemaponplayingonp" + - "opstateonprogresspellcheckedonratechangeonrejectionhandledon" + - "resetonresizesrcdocodeferonscrollonsecuritypolicyviolationau" + - "xclickonseekedonseekingonselectedonshowidthgrouposteronsorta" + - "bleonstalledonstorageonsubmitemscopedonsuspendontoggleonunha" + - "ndledrejectionbeforeprintonunloadonvolumechangeonwaitingonwh" + - "eeloptimumanifestrongoptionbeforeunloaddressrclangsrcsetstyl" + - "esummarysupsvgsystemplateworkertypewrap" diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go deleted file mode 100644 index ff7acf2..0000000 --- a/vendor/golang.org/x/net/html/const.go +++ /dev/null @@ -1,111 +0,0 @@ -// 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 html - -// Section 12.2.4.2 of the HTML5 specification says "The following elements -// have varying levels of special parsing rules". -// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements -var isSpecialElementMap = map[string]bool{ - "address": true, - "applet": true, - "area": true, - "article": true, - "aside": true, - "base": true, - "basefont": true, - "bgsound": true, - "blockquote": true, - "body": true, - "br": true, - "button": true, - "caption": true, - "center": true, - "col": true, - "colgroup": true, - "dd": true, - "details": true, - "dir": true, - "div": true, - "dl": true, - "dt": true, - "embed": true, - "fieldset": true, - "figcaption": true, - "figure": true, - "footer": true, - "form": true, - "frame": true, - "frameset": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "header": true, - "hgroup": true, - "hr": true, - "html": true, - "iframe": true, - "img": true, - "input": true, - "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility. - "li": true, - "link": true, - "listing": true, - "main": true, - "marquee": true, - "menu": true, - "meta": true, - "nav": true, - "noembed": true, - "noframes": true, - "noscript": true, - "object": true, - "ol": true, - "p": true, - "param": true, - "plaintext": true, - "pre": true, - "script": true, - "section": true, - "select": true, - "source": true, - "style": true, - "summary": true, - "table": true, - "tbody": true, - "td": true, - "template": true, - "textarea": true, - "tfoot": true, - "th": true, - "thead": true, - "title": true, - "tr": true, - "track": true, - "ul": true, - "wbr": true, - "xmp": true, -} - -func isSpecialElement(element *Node) bool { - switch element.Namespace { - case "", "html": - return isSpecialElementMap[element.Data] - case "math": - switch element.Data { - case "mi", "mo", "mn", "ms", "mtext", "annotation-xml": - return true - } - case "svg": - switch element.Data { - case "foreignObject", "desc", "title": - return true - } - } - return false -} diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go deleted file mode 100644 index 885c4c5..0000000 --- a/vendor/golang.org/x/net/html/doc.go +++ /dev/null @@ -1,122 +0,0 @@ -// 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 html implements an HTML5-compliant tokenizer and parser. - -Tokenization is done by creating a Tokenizer for an io.Reader r. It is the -caller's responsibility to ensure that r provides UTF-8 encoded HTML. - - z := html.NewTokenizer(r) - -Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(), -which parses the next token and returns its type, or an error: - - for { - tt := z.Next() - if tt == html.ErrorToken { - // ... - return ... - } - // Process the current token. - } - -There are two APIs for retrieving the current token. The high-level API is to -call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs -allow optionally calling Raw after Next but before Token, Text, TagName, or -TagAttr. In EBNF notation, the valid call sequence per token is: - - Next {Raw} [ Token | Text | TagName {TagAttr} ] - -Token returns an independent data structure that completely describes a token. -Entities (such as "&lt;") are unescaped, tag names and attribute keys are -lower-cased, and attributes are collected into a []Attribute. For example: - - for { - if z.Next() == html.ErrorToken { - // Returning io.EOF indicates success. - return z.Err() - } - emitToken(z.Token()) - } - -The low-level API performs fewer allocations and copies, but the contents of -the []byte values returned by Text, TagName and TagAttr may change on the next -call to Next. For example, to extract an HTML page's anchor text: - - depth := 0 - for { - tt := z.Next() - switch tt { - case html.ErrorToken: - return z.Err() - case html.TextToken: - if depth > 0 { - // emitBytes should copy the []byte it receives, - // if it doesn't process it immediately. - emitBytes(z.Text()) - } - case html.StartTagToken, html.EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == html.StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - -Parsing is done by calling Parse with an io.Reader, which returns the root of -the parse tree (the document element) as a *Node. It is the caller's -responsibility to ensure that the Reader provides UTF-8 encoded HTML. For -example, to process each anchor node in depth-first order: - - doc, err := html.Parse(r) - if err != nil { - // ... - } - for n := range doc.Descendants() { - if n.Type == html.ElementNode && n.Data == "a" { - // Do something with n... - } - } - -The relevant specifications include: -https://html.spec.whatwg.org/multipage/syntax.html and -https://html.spec.whatwg.org/multipage/syntax.html#tokenization - -# Security Considerations - -Care should be taken when parsing and interpreting HTML, whether full documents -or fragments, within the framework of the HTML specification, especially with -regard to untrusted inputs. - -This package provides both a tokenizer and a parser, which implement the -tokenization, and tokenization and tree construction stages of the WHATWG HTML -parsing specification respectively. While the tokenizer parses and normalizes -individual HTML tokens, only the parser constructs the DOM tree from the -tokenized HTML, as described in the tree construction stage of the -specification, dynamically modifying or extending the document's DOM tree. - -If your use case requires semantically well-formed HTML documents, as defined by -the WHATWG specification, the parser should be used rather than the tokenizer. - -In security contexts, if trust decisions are being made using the tokenized or -parsed content, the input must be re-serialized (for instance by using Render or -Token.String) in order for those trust decisions to hold, as the process of -tokenization or parsing may alter the content. -*/ -package html // import "golang.org/x/net/html" - -// The tokenization algorithm implemented by this package is not a line-by-line -// transliteration of the relatively verbose state-machine in the WHATWG -// specification. A more direct approach is used instead, where the program -// counter implies the state, such as whether it is tokenizing a tag or a text -// node. Specification compliance is verified by checking expected and actual -// outputs over a test suite rather than aiming for algorithmic fidelity. - -// TODO(nigeltao): Does a DOM API belong in this package or a separate one? -// TODO(nigeltao): How does parsing interact with a JavaScript engine? diff --git a/vendor/golang.org/x/net/html/doctype.go b/vendor/golang.org/x/net/html/doctype.go deleted file mode 100644 index bca3ae9..0000000 --- a/vendor/golang.org/x/net/html/doctype.go +++ /dev/null @@ -1,156 +0,0 @@ -// 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 html - -import ( - "strings" -) - -// parseDoctype parses the data from a DoctypeToken into a name, -// public identifier, and system identifier. It returns a Node whose Type -// is DoctypeNode, whose Data is the name, and which has attributes -// named "system" and "public" for the two identifiers if they were present. -// quirks is whether the document should be parsed in "quirks mode". -func parseDoctype(s string) (n *Node, quirks bool) { - n = &Node{Type: DoctypeNode} - - // Find the name. - space := strings.IndexAny(s, whitespace) - if space == -1 { - space = len(s) - } - n.Data = s[:space] - // The comparison to "html" is case-sensitive. - if n.Data != "html" { - quirks = true - } - n.Data = strings.ToLower(n.Data) - s = strings.TrimLeft(s[space:], whitespace) - - if len(s) < 6 { - // It can't start with "PUBLIC" or "SYSTEM". - // Ignore the rest of the string. - return n, quirks || s != "" - } - - key := strings.ToLower(s[:6]) - s = s[6:] - for key == "public" || key == "system" { - s = strings.TrimLeft(s, whitespace) - if s == "" { - break - } - quote := s[0] - if quote != '"' && quote != '\'' { - break - } - s = s[1:] - q := strings.IndexRune(s, rune(quote)) - var id string - if q == -1 { - id = s - s = "" - } else { - id = s[:q] - s = s[q+1:] - } - n.Attr = append(n.Attr, Attribute{Key: key, Val: id}) - if key == "public" { - key = "system" - } else { - key = "" - } - } - - if key != "" || s != "" { - quirks = true - } else if len(n.Attr) > 0 { - if n.Attr[0].Key == "public" { - public := strings.ToLower(n.Attr[0].Val) - switch public { - case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html": - quirks = true - default: - for _, q := range quirkyIDs { - if strings.HasPrefix(public, q) { - quirks = true - break - } - } - } - // The following two public IDs only cause quirks mode if there is no system ID. - if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") || - strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) { - quirks = true - } - } - if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" && - strings.EqualFold(lastAttr.Val, "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd") { - quirks = true - } - } - - return n, quirks -} - -// quirkyIDs is a list of public doctype identifiers that cause a document -// to be interpreted in quirks mode. The identifiers should be in lower case. -var quirkyIDs = []string{ - "+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//", -} diff --git a/vendor/golang.org/x/net/html/entity.go b/vendor/golang.org/x/net/html/entity.go deleted file mode 100644 index b628880..0000000 --- a/vendor/golang.org/x/net/html/entity.go +++ /dev/null @@ -1,2253 +0,0 @@ -// 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 html - -// All entities that do not end with ';' are 6 or fewer bytes long. -const longestEntityWithoutSemicolon = 6 - -// entity is a map from HTML entity names to their values. The semicolon matters: -// https://html.spec.whatwg.org/multipage/syntax.html#named-character-references -// lists both "amp" and "amp;" as two separate entries. -// -// Note that the HTML5 list is larger than the HTML4 list at -// http://www.w3.org/TR/html4/sgml/entities.html -var entity = map[string]rune{ - "AElig;": '\U000000C6', - "AMP;": '\U00000026', - "Aacute;": '\U000000C1', - "Abreve;": '\U00000102', - "Acirc;": '\U000000C2', - "Acy;": '\U00000410', - "Afr;": '\U0001D504', - "Agrave;": '\U000000C0', - "Alpha;": '\U00000391', - "Amacr;": '\U00000100', - "And;": '\U00002A53', - "Aogon;": '\U00000104', - "Aopf;": '\U0001D538', - "ApplyFunction;": '\U00002061', - "Aring;": '\U000000C5', - "Ascr;": '\U0001D49C', - "Assign;": '\U00002254', - "Atilde;": '\U000000C3', - "Auml;": '\U000000C4', - "Backslash;": '\U00002216', - "Barv;": '\U00002AE7', - "Barwed;": '\U00002306', - "Bcy;": '\U00000411', - "Because;": '\U00002235', - "Bernoullis;": '\U0000212C', - "Beta;": '\U00000392', - "Bfr;": '\U0001D505', - "Bopf;": '\U0001D539', - "Breve;": '\U000002D8', - "Bscr;": '\U0000212C', - "Bumpeq;": '\U0000224E', - "CHcy;": '\U00000427', - "COPY;": '\U000000A9', - "Cacute;": '\U00000106', - "Cap;": '\U000022D2', - "CapitalDifferentialD;": '\U00002145', - "Cayleys;": '\U0000212D', - "Ccaron;": '\U0000010C', - "Ccedil;": '\U000000C7', - "Ccirc;": '\U00000108', - "Cconint;": '\U00002230', - "Cdot;": '\U0000010A', - "Cedilla;": '\U000000B8', - "CenterDot;": '\U000000B7', - "Cfr;": '\U0000212D', - "Chi;": '\U000003A7', - "CircleDot;": '\U00002299', - "CircleMinus;": '\U00002296', - "CirclePlus;": '\U00002295', - "CircleTimes;": '\U00002297', - "ClockwiseContourIntegral;": '\U00002232', - "CloseCurlyDoubleQuote;": '\U0000201D', - "CloseCurlyQuote;": '\U00002019', - "Colon;": '\U00002237', - "Colone;": '\U00002A74', - "Congruent;": '\U00002261', - "Conint;": '\U0000222F', - "ContourIntegral;": '\U0000222E', - "Copf;": '\U00002102', - "Coproduct;": '\U00002210', - "CounterClockwiseContourIntegral;": '\U00002233', - "Cross;": '\U00002A2F', - "Cscr;": '\U0001D49E', - "Cup;": '\U000022D3', - "CupCap;": '\U0000224D', - "DD;": '\U00002145', - "DDotrahd;": '\U00002911', - "DJcy;": '\U00000402', - "DScy;": '\U00000405', - "DZcy;": '\U0000040F', - "Dagger;": '\U00002021', - "Darr;": '\U000021A1', - "Dashv;": '\U00002AE4', - "Dcaron;": '\U0000010E', - "Dcy;": '\U00000414', - "Del;": '\U00002207', - "Delta;": '\U00000394', - "Dfr;": '\U0001D507', - "DiacriticalAcute;": '\U000000B4', - "DiacriticalDot;": '\U000002D9', - "DiacriticalDoubleAcute;": '\U000002DD', - "DiacriticalGrave;": '\U00000060', - "DiacriticalTilde;": '\U000002DC', - "Diamond;": '\U000022C4', - "DifferentialD;": '\U00002146', - "Dopf;": '\U0001D53B', - "Dot;": '\U000000A8', - "DotDot;": '\U000020DC', - "DotEqual;": '\U00002250', - "DoubleContourIntegral;": '\U0000222F', - "DoubleDot;": '\U000000A8', - "DoubleDownArrow;": '\U000021D3', - "DoubleLeftArrow;": '\U000021D0', - "DoubleLeftRightArrow;": '\U000021D4', - "DoubleLeftTee;": '\U00002AE4', - "DoubleLongLeftArrow;": '\U000027F8', - "DoubleLongLeftRightArrow;": '\U000027FA', - "DoubleLongRightArrow;": '\U000027F9', - "DoubleRightArrow;": '\U000021D2', - "DoubleRightTee;": '\U000022A8', - "DoubleUpArrow;": '\U000021D1', - "DoubleUpDownArrow;": '\U000021D5', - "DoubleVerticalBar;": '\U00002225', - "DownArrow;": '\U00002193', - "DownArrowBar;": '\U00002913', - "DownArrowUpArrow;": '\U000021F5', - "DownBreve;": '\U00000311', - "DownLeftRightVector;": '\U00002950', - "DownLeftTeeVector;": '\U0000295E', - "DownLeftVector;": '\U000021BD', - "DownLeftVectorBar;": '\U00002956', - "DownRightTeeVector;": '\U0000295F', - "DownRightVector;": '\U000021C1', - "DownRightVectorBar;": '\U00002957', - "DownTee;": '\U000022A4', - "DownTeeArrow;": '\U000021A7', - "Downarrow;": '\U000021D3', - "Dscr;": '\U0001D49F', - "Dstrok;": '\U00000110', - "ENG;": '\U0000014A', - "ETH;": '\U000000D0', - "Eacute;": '\U000000C9', - "Ecaron;": '\U0000011A', - "Ecirc;": '\U000000CA', - "Ecy;": '\U0000042D', - "Edot;": '\U00000116', - "Efr;": '\U0001D508', - "Egrave;": '\U000000C8', - "Element;": '\U00002208', - "Emacr;": '\U00000112', - "EmptySmallSquare;": '\U000025FB', - "EmptyVerySmallSquare;": '\U000025AB', - "Eogon;": '\U00000118', - "Eopf;": '\U0001D53C', - "Epsilon;": '\U00000395', - "Equal;": '\U00002A75', - "EqualTilde;": '\U00002242', - "Equilibrium;": '\U000021CC', - "Escr;": '\U00002130', - "Esim;": '\U00002A73', - "Eta;": '\U00000397', - "Euml;": '\U000000CB', - "Exists;": '\U00002203', - "ExponentialE;": '\U00002147', - "Fcy;": '\U00000424', - "Ffr;": '\U0001D509', - "FilledSmallSquare;": '\U000025FC', - "FilledVerySmallSquare;": '\U000025AA', - "Fopf;": '\U0001D53D', - "ForAll;": '\U00002200', - "Fouriertrf;": '\U00002131', - "Fscr;": '\U00002131', - "GJcy;": '\U00000403', - "GT;": '\U0000003E', - "Gamma;": '\U00000393', - "Gammad;": '\U000003DC', - "Gbreve;": '\U0000011E', - "Gcedil;": '\U00000122', - "Gcirc;": '\U0000011C', - "Gcy;": '\U00000413', - "Gdot;": '\U00000120', - "Gfr;": '\U0001D50A', - "Gg;": '\U000022D9', - "Gopf;": '\U0001D53E', - "GreaterEqual;": '\U00002265', - "GreaterEqualLess;": '\U000022DB', - "GreaterFullEqual;": '\U00002267', - "GreaterGreater;": '\U00002AA2', - "GreaterLess;": '\U00002277', - "GreaterSlantEqual;": '\U00002A7E', - "GreaterTilde;": '\U00002273', - "Gscr;": '\U0001D4A2', - "Gt;": '\U0000226B', - "HARDcy;": '\U0000042A', - "Hacek;": '\U000002C7', - "Hat;": '\U0000005E', - "Hcirc;": '\U00000124', - "Hfr;": '\U0000210C', - "HilbertSpace;": '\U0000210B', - "Hopf;": '\U0000210D', - "HorizontalLine;": '\U00002500', - "Hscr;": '\U0000210B', - "Hstrok;": '\U00000126', - "HumpDownHump;": '\U0000224E', - "HumpEqual;": '\U0000224F', - "IEcy;": '\U00000415', - "IJlig;": '\U00000132', - "IOcy;": '\U00000401', - "Iacute;": '\U000000CD', - "Icirc;": '\U000000CE', - "Icy;": '\U00000418', - "Idot;": '\U00000130', - "Ifr;": '\U00002111', - "Igrave;": '\U000000CC', - "Im;": '\U00002111', - "Imacr;": '\U0000012A', - "ImaginaryI;": '\U00002148', - "Implies;": '\U000021D2', - "Int;": '\U0000222C', - "Integral;": '\U0000222B', - "Intersection;": '\U000022C2', - "InvisibleComma;": '\U00002063', - "InvisibleTimes;": '\U00002062', - "Iogon;": '\U0000012E', - "Iopf;": '\U0001D540', - "Iota;": '\U00000399', - "Iscr;": '\U00002110', - "Itilde;": '\U00000128', - "Iukcy;": '\U00000406', - "Iuml;": '\U000000CF', - "Jcirc;": '\U00000134', - "Jcy;": '\U00000419', - "Jfr;": '\U0001D50D', - "Jopf;": '\U0001D541', - "Jscr;": '\U0001D4A5', - "Jsercy;": '\U00000408', - "Jukcy;": '\U00000404', - "KHcy;": '\U00000425', - "KJcy;": '\U0000040C', - "Kappa;": '\U0000039A', - "Kcedil;": '\U00000136', - "Kcy;": '\U0000041A', - "Kfr;": '\U0001D50E', - "Kopf;": '\U0001D542', - "Kscr;": '\U0001D4A6', - "LJcy;": '\U00000409', - "LT;": '\U0000003C', - "Lacute;": '\U00000139', - "Lambda;": '\U0000039B', - "Lang;": '\U000027EA', - "Laplacetrf;": '\U00002112', - "Larr;": '\U0000219E', - "Lcaron;": '\U0000013D', - "Lcedil;": '\U0000013B', - "Lcy;": '\U0000041B', - "LeftAngleBracket;": '\U000027E8', - "LeftArrow;": '\U00002190', - "LeftArrowBar;": '\U000021E4', - "LeftArrowRightArrow;": '\U000021C6', - "LeftCeiling;": '\U00002308', - "LeftDoubleBracket;": '\U000027E6', - "LeftDownTeeVector;": '\U00002961', - "LeftDownVector;": '\U000021C3', - "LeftDownVectorBar;": '\U00002959', - "LeftFloor;": '\U0000230A', - "LeftRightArrow;": '\U00002194', - "LeftRightVector;": '\U0000294E', - "LeftTee;": '\U000022A3', - "LeftTeeArrow;": '\U000021A4', - "LeftTeeVector;": '\U0000295A', - "LeftTriangle;": '\U000022B2', - "LeftTriangleBar;": '\U000029CF', - "LeftTriangleEqual;": '\U000022B4', - "LeftUpDownVector;": '\U00002951', - "LeftUpTeeVector;": '\U00002960', - "LeftUpVector;": '\U000021BF', - "LeftUpVectorBar;": '\U00002958', - "LeftVector;": '\U000021BC', - "LeftVectorBar;": '\U00002952', - "Leftarrow;": '\U000021D0', - "Leftrightarrow;": '\U000021D4', - "LessEqualGreater;": '\U000022DA', - "LessFullEqual;": '\U00002266', - "LessGreater;": '\U00002276', - "LessLess;": '\U00002AA1', - "LessSlantEqual;": '\U00002A7D', - "LessTilde;": '\U00002272', - "Lfr;": '\U0001D50F', - "Ll;": '\U000022D8', - "Lleftarrow;": '\U000021DA', - "Lmidot;": '\U0000013F', - "LongLeftArrow;": '\U000027F5', - "LongLeftRightArrow;": '\U000027F7', - "LongRightArrow;": '\U000027F6', - "Longleftarrow;": '\U000027F8', - "Longleftrightarrow;": '\U000027FA', - "Longrightarrow;": '\U000027F9', - "Lopf;": '\U0001D543', - "LowerLeftArrow;": '\U00002199', - "LowerRightArrow;": '\U00002198', - "Lscr;": '\U00002112', - "Lsh;": '\U000021B0', - "Lstrok;": '\U00000141', - "Lt;": '\U0000226A', - "Map;": '\U00002905', - "Mcy;": '\U0000041C', - "MediumSpace;": '\U0000205F', - "Mellintrf;": '\U00002133', - "Mfr;": '\U0001D510', - "MinusPlus;": '\U00002213', - "Mopf;": '\U0001D544', - "Mscr;": '\U00002133', - "Mu;": '\U0000039C', - "NJcy;": '\U0000040A', - "Nacute;": '\U00000143', - "Ncaron;": '\U00000147', - "Ncedil;": '\U00000145', - "Ncy;": '\U0000041D', - "NegativeMediumSpace;": '\U0000200B', - "NegativeThickSpace;": '\U0000200B', - "NegativeThinSpace;": '\U0000200B', - "NegativeVeryThinSpace;": '\U0000200B', - "NestedGreaterGreater;": '\U0000226B', - "NestedLessLess;": '\U0000226A', - "NewLine;": '\U0000000A', - "Nfr;": '\U0001D511', - "NoBreak;": '\U00002060', - "NonBreakingSpace;": '\U000000A0', - "Nopf;": '\U00002115', - "Not;": '\U00002AEC', - "NotCongruent;": '\U00002262', - "NotCupCap;": '\U0000226D', - "NotDoubleVerticalBar;": '\U00002226', - "NotElement;": '\U00002209', - "NotEqual;": '\U00002260', - "NotExists;": '\U00002204', - "NotGreater;": '\U0000226F', - "NotGreaterEqual;": '\U00002271', - "NotGreaterLess;": '\U00002279', - "NotGreaterTilde;": '\U00002275', - "NotLeftTriangle;": '\U000022EA', - "NotLeftTriangleEqual;": '\U000022EC', - "NotLess;": '\U0000226E', - "NotLessEqual;": '\U00002270', - "NotLessGreater;": '\U00002278', - "NotLessTilde;": '\U00002274', - "NotPrecedes;": '\U00002280', - "NotPrecedesSlantEqual;": '\U000022E0', - "NotReverseElement;": '\U0000220C', - "NotRightTriangle;": '\U000022EB', - "NotRightTriangleEqual;": '\U000022ED', - "NotSquareSubsetEqual;": '\U000022E2', - "NotSquareSupersetEqual;": '\U000022E3', - "NotSubsetEqual;": '\U00002288', - "NotSucceeds;": '\U00002281', - "NotSucceedsSlantEqual;": '\U000022E1', - "NotSupersetEqual;": '\U00002289', - "NotTilde;": '\U00002241', - "NotTildeEqual;": '\U00002244', - "NotTildeFullEqual;": '\U00002247', - "NotTildeTilde;": '\U00002249', - "NotVerticalBar;": '\U00002224', - "Nscr;": '\U0001D4A9', - "Ntilde;": '\U000000D1', - "Nu;": '\U0000039D', - "OElig;": '\U00000152', - "Oacute;": '\U000000D3', - "Ocirc;": '\U000000D4', - "Ocy;": '\U0000041E', - "Odblac;": '\U00000150', - "Ofr;": '\U0001D512', - "Ograve;": '\U000000D2', - "Omacr;": '\U0000014C', - "Omega;": '\U000003A9', - "Omicron;": '\U0000039F', - "Oopf;": '\U0001D546', - "OpenCurlyDoubleQuote;": '\U0000201C', - "OpenCurlyQuote;": '\U00002018', - "Or;": '\U00002A54', - "Oscr;": '\U0001D4AA', - "Oslash;": '\U000000D8', - "Otilde;": '\U000000D5', - "Otimes;": '\U00002A37', - "Ouml;": '\U000000D6', - "OverBar;": '\U0000203E', - "OverBrace;": '\U000023DE', - "OverBracket;": '\U000023B4', - "OverParenthesis;": '\U000023DC', - "PartialD;": '\U00002202', - "Pcy;": '\U0000041F', - "Pfr;": '\U0001D513', - "Phi;": '\U000003A6', - "Pi;": '\U000003A0', - "PlusMinus;": '\U000000B1', - "Poincareplane;": '\U0000210C', - "Popf;": '\U00002119', - "Pr;": '\U00002ABB', - "Precedes;": '\U0000227A', - "PrecedesEqual;": '\U00002AAF', - "PrecedesSlantEqual;": '\U0000227C', - "PrecedesTilde;": '\U0000227E', - "Prime;": '\U00002033', - "Product;": '\U0000220F', - "Proportion;": '\U00002237', - "Proportional;": '\U0000221D', - "Pscr;": '\U0001D4AB', - "Psi;": '\U000003A8', - "QUOT;": '\U00000022', - "Qfr;": '\U0001D514', - "Qopf;": '\U0000211A', - "Qscr;": '\U0001D4AC', - "RBarr;": '\U00002910', - "REG;": '\U000000AE', - "Racute;": '\U00000154', - "Rang;": '\U000027EB', - "Rarr;": '\U000021A0', - "Rarrtl;": '\U00002916', - "Rcaron;": '\U00000158', - "Rcedil;": '\U00000156', - "Rcy;": '\U00000420', - "Re;": '\U0000211C', - "ReverseElement;": '\U0000220B', - "ReverseEquilibrium;": '\U000021CB', - "ReverseUpEquilibrium;": '\U0000296F', - "Rfr;": '\U0000211C', - "Rho;": '\U000003A1', - "RightAngleBracket;": '\U000027E9', - "RightArrow;": '\U00002192', - "RightArrowBar;": '\U000021E5', - "RightArrowLeftArrow;": '\U000021C4', - "RightCeiling;": '\U00002309', - "RightDoubleBracket;": '\U000027E7', - "RightDownTeeVector;": '\U0000295D', - "RightDownVector;": '\U000021C2', - "RightDownVectorBar;": '\U00002955', - "RightFloor;": '\U0000230B', - "RightTee;": '\U000022A2', - "RightTeeArrow;": '\U000021A6', - "RightTeeVector;": '\U0000295B', - "RightTriangle;": '\U000022B3', - "RightTriangleBar;": '\U000029D0', - "RightTriangleEqual;": '\U000022B5', - "RightUpDownVector;": '\U0000294F', - "RightUpTeeVector;": '\U0000295C', - "RightUpVector;": '\U000021BE', - "RightUpVectorBar;": '\U00002954', - "RightVector;": '\U000021C0', - "RightVectorBar;": '\U00002953', - "Rightarrow;": '\U000021D2', - "Ropf;": '\U0000211D', - "RoundImplies;": '\U00002970', - "Rrightarrow;": '\U000021DB', - "Rscr;": '\U0000211B', - "Rsh;": '\U000021B1', - "RuleDelayed;": '\U000029F4', - "SHCHcy;": '\U00000429', - "SHcy;": '\U00000428', - "SOFTcy;": '\U0000042C', - "Sacute;": '\U0000015A', - "Sc;": '\U00002ABC', - "Scaron;": '\U00000160', - "Scedil;": '\U0000015E', - "Scirc;": '\U0000015C', - "Scy;": '\U00000421', - "Sfr;": '\U0001D516', - "ShortDownArrow;": '\U00002193', - "ShortLeftArrow;": '\U00002190', - "ShortRightArrow;": '\U00002192', - "ShortUpArrow;": '\U00002191', - "Sigma;": '\U000003A3', - "SmallCircle;": '\U00002218', - "Sopf;": '\U0001D54A', - "Sqrt;": '\U0000221A', - "Square;": '\U000025A1', - "SquareIntersection;": '\U00002293', - "SquareSubset;": '\U0000228F', - "SquareSubsetEqual;": '\U00002291', - "SquareSuperset;": '\U00002290', - "SquareSupersetEqual;": '\U00002292', - "SquareUnion;": '\U00002294', - "Sscr;": '\U0001D4AE', - "Star;": '\U000022C6', - "Sub;": '\U000022D0', - "Subset;": '\U000022D0', - "SubsetEqual;": '\U00002286', - "Succeeds;": '\U0000227B', - "SucceedsEqual;": '\U00002AB0', - "SucceedsSlantEqual;": '\U0000227D', - "SucceedsTilde;": '\U0000227F', - "SuchThat;": '\U0000220B', - "Sum;": '\U00002211', - "Sup;": '\U000022D1', - "Superset;": '\U00002283', - "SupersetEqual;": '\U00002287', - "Supset;": '\U000022D1', - "THORN;": '\U000000DE', - "TRADE;": '\U00002122', - "TSHcy;": '\U0000040B', - "TScy;": '\U00000426', - "Tab;": '\U00000009', - "Tau;": '\U000003A4', - "Tcaron;": '\U00000164', - "Tcedil;": '\U00000162', - "Tcy;": '\U00000422', - "Tfr;": '\U0001D517', - "Therefore;": '\U00002234', - "Theta;": '\U00000398', - "ThinSpace;": '\U00002009', - "Tilde;": '\U0000223C', - "TildeEqual;": '\U00002243', - "TildeFullEqual;": '\U00002245', - "TildeTilde;": '\U00002248', - "Topf;": '\U0001D54B', - "TripleDot;": '\U000020DB', - "Tscr;": '\U0001D4AF', - "Tstrok;": '\U00000166', - "Uacute;": '\U000000DA', - "Uarr;": '\U0000219F', - "Uarrocir;": '\U00002949', - "Ubrcy;": '\U0000040E', - "Ubreve;": '\U0000016C', - "Ucirc;": '\U000000DB', - "Ucy;": '\U00000423', - "Udblac;": '\U00000170', - "Ufr;": '\U0001D518', - "Ugrave;": '\U000000D9', - "Umacr;": '\U0000016A', - "UnderBar;": '\U0000005F', - "UnderBrace;": '\U000023DF', - "UnderBracket;": '\U000023B5', - "UnderParenthesis;": '\U000023DD', - "Union;": '\U000022C3', - "UnionPlus;": '\U0000228E', - "Uogon;": '\U00000172', - "Uopf;": '\U0001D54C', - "UpArrow;": '\U00002191', - "UpArrowBar;": '\U00002912', - "UpArrowDownArrow;": '\U000021C5', - "UpDownArrow;": '\U00002195', - "UpEquilibrium;": '\U0000296E', - "UpTee;": '\U000022A5', - "UpTeeArrow;": '\U000021A5', - "Uparrow;": '\U000021D1', - "Updownarrow;": '\U000021D5', - "UpperLeftArrow;": '\U00002196', - "UpperRightArrow;": '\U00002197', - "Upsi;": '\U000003D2', - "Upsilon;": '\U000003A5', - "Uring;": '\U0000016E', - "Uscr;": '\U0001D4B0', - "Utilde;": '\U00000168', - "Uuml;": '\U000000DC', - "VDash;": '\U000022AB', - "Vbar;": '\U00002AEB', - "Vcy;": '\U00000412', - "Vdash;": '\U000022A9', - "Vdashl;": '\U00002AE6', - "Vee;": '\U000022C1', - "Verbar;": '\U00002016', - "Vert;": '\U00002016', - "VerticalBar;": '\U00002223', - "VerticalLine;": '\U0000007C', - "VerticalSeparator;": '\U00002758', - "VerticalTilde;": '\U00002240', - "VeryThinSpace;": '\U0000200A', - "Vfr;": '\U0001D519', - "Vopf;": '\U0001D54D', - "Vscr;": '\U0001D4B1', - "Vvdash;": '\U000022AA', - "Wcirc;": '\U00000174', - "Wedge;": '\U000022C0', - "Wfr;": '\U0001D51A', - "Wopf;": '\U0001D54E', - "Wscr;": '\U0001D4B2', - "Xfr;": '\U0001D51B', - "Xi;": '\U0000039E', - "Xopf;": '\U0001D54F', - "Xscr;": '\U0001D4B3', - "YAcy;": '\U0000042F', - "YIcy;": '\U00000407', - "YUcy;": '\U0000042E', - "Yacute;": '\U000000DD', - "Ycirc;": '\U00000176', - "Ycy;": '\U0000042B', - "Yfr;": '\U0001D51C', - "Yopf;": '\U0001D550', - "Yscr;": '\U0001D4B4', - "Yuml;": '\U00000178', - "ZHcy;": '\U00000416', - "Zacute;": '\U00000179', - "Zcaron;": '\U0000017D', - "Zcy;": '\U00000417', - "Zdot;": '\U0000017B', - "ZeroWidthSpace;": '\U0000200B', - "Zeta;": '\U00000396', - "Zfr;": '\U00002128', - "Zopf;": '\U00002124', - "Zscr;": '\U0001D4B5', - "aacute;": '\U000000E1', - "abreve;": '\U00000103', - "ac;": '\U0000223E', - "acd;": '\U0000223F', - "acirc;": '\U000000E2', - "acute;": '\U000000B4', - "acy;": '\U00000430', - "aelig;": '\U000000E6', - "af;": '\U00002061', - "afr;": '\U0001D51E', - "agrave;": '\U000000E0', - "alefsym;": '\U00002135', - "aleph;": '\U00002135', - "alpha;": '\U000003B1', - "amacr;": '\U00000101', - "amalg;": '\U00002A3F', - "amp;": '\U00000026', - "and;": '\U00002227', - "andand;": '\U00002A55', - "andd;": '\U00002A5C', - "andslope;": '\U00002A58', - "andv;": '\U00002A5A', - "ang;": '\U00002220', - "ange;": '\U000029A4', - "angle;": '\U00002220', - "angmsd;": '\U00002221', - "angmsdaa;": '\U000029A8', - "angmsdab;": '\U000029A9', - "angmsdac;": '\U000029AA', - "angmsdad;": '\U000029AB', - "angmsdae;": '\U000029AC', - "angmsdaf;": '\U000029AD', - "angmsdag;": '\U000029AE', - "angmsdah;": '\U000029AF', - "angrt;": '\U0000221F', - "angrtvb;": '\U000022BE', - "angrtvbd;": '\U0000299D', - "angsph;": '\U00002222', - "angst;": '\U000000C5', - "angzarr;": '\U0000237C', - "aogon;": '\U00000105', - "aopf;": '\U0001D552', - "ap;": '\U00002248', - "apE;": '\U00002A70', - "apacir;": '\U00002A6F', - "ape;": '\U0000224A', - "apid;": '\U0000224B', - "apos;": '\U00000027', - "approx;": '\U00002248', - "approxeq;": '\U0000224A', - "aring;": '\U000000E5', - "ascr;": '\U0001D4B6', - "ast;": '\U0000002A', - "asymp;": '\U00002248', - "asympeq;": '\U0000224D', - "atilde;": '\U000000E3', - "auml;": '\U000000E4', - "awconint;": '\U00002233', - "awint;": '\U00002A11', - "bNot;": '\U00002AED', - "backcong;": '\U0000224C', - "backepsilon;": '\U000003F6', - "backprime;": '\U00002035', - "backsim;": '\U0000223D', - "backsimeq;": '\U000022CD', - "barvee;": '\U000022BD', - "barwed;": '\U00002305', - "barwedge;": '\U00002305', - "bbrk;": '\U000023B5', - "bbrktbrk;": '\U000023B6', - "bcong;": '\U0000224C', - "bcy;": '\U00000431', - "bdquo;": '\U0000201E', - "becaus;": '\U00002235', - "because;": '\U00002235', - "bemptyv;": '\U000029B0', - "bepsi;": '\U000003F6', - "bernou;": '\U0000212C', - "beta;": '\U000003B2', - "beth;": '\U00002136', - "between;": '\U0000226C', - "bfr;": '\U0001D51F', - "bigcap;": '\U000022C2', - "bigcirc;": '\U000025EF', - "bigcup;": '\U000022C3', - "bigodot;": '\U00002A00', - "bigoplus;": '\U00002A01', - "bigotimes;": '\U00002A02', - "bigsqcup;": '\U00002A06', - "bigstar;": '\U00002605', - "bigtriangledown;": '\U000025BD', - "bigtriangleup;": '\U000025B3', - "biguplus;": '\U00002A04', - "bigvee;": '\U000022C1', - "bigwedge;": '\U000022C0', - "bkarow;": '\U0000290D', - "blacklozenge;": '\U000029EB', - "blacksquare;": '\U000025AA', - "blacktriangle;": '\U000025B4', - "blacktriangledown;": '\U000025BE', - "blacktriangleleft;": '\U000025C2', - "blacktriangleright;": '\U000025B8', - "blank;": '\U00002423', - "blk12;": '\U00002592', - "blk14;": '\U00002591', - "blk34;": '\U00002593', - "block;": '\U00002588', - "bnot;": '\U00002310', - "bopf;": '\U0001D553', - "bot;": '\U000022A5', - "bottom;": '\U000022A5', - "bowtie;": '\U000022C8', - "boxDL;": '\U00002557', - "boxDR;": '\U00002554', - "boxDl;": '\U00002556', - "boxDr;": '\U00002553', - "boxH;": '\U00002550', - "boxHD;": '\U00002566', - "boxHU;": '\U00002569', - "boxHd;": '\U00002564', - "boxHu;": '\U00002567', - "boxUL;": '\U0000255D', - "boxUR;": '\U0000255A', - "boxUl;": '\U0000255C', - "boxUr;": '\U00002559', - "boxV;": '\U00002551', - "boxVH;": '\U0000256C', - "boxVL;": '\U00002563', - "boxVR;": '\U00002560', - "boxVh;": '\U0000256B', - "boxVl;": '\U00002562', - "boxVr;": '\U0000255F', - "boxbox;": '\U000029C9', - "boxdL;": '\U00002555', - "boxdR;": '\U00002552', - "boxdl;": '\U00002510', - "boxdr;": '\U0000250C', - "boxh;": '\U00002500', - "boxhD;": '\U00002565', - "boxhU;": '\U00002568', - "boxhd;": '\U0000252C', - "boxhu;": '\U00002534', - "boxminus;": '\U0000229F', - "boxplus;": '\U0000229E', - "boxtimes;": '\U000022A0', - "boxuL;": '\U0000255B', - "boxuR;": '\U00002558', - "boxul;": '\U00002518', - "boxur;": '\U00002514', - "boxv;": '\U00002502', - "boxvH;": '\U0000256A', - "boxvL;": '\U00002561', - "boxvR;": '\U0000255E', - "boxvh;": '\U0000253C', - "boxvl;": '\U00002524', - "boxvr;": '\U0000251C', - "bprime;": '\U00002035', - "breve;": '\U000002D8', - "brvbar;": '\U000000A6', - "bscr;": '\U0001D4B7', - "bsemi;": '\U0000204F', - "bsim;": '\U0000223D', - "bsime;": '\U000022CD', - "bsol;": '\U0000005C', - "bsolb;": '\U000029C5', - "bsolhsub;": '\U000027C8', - "bull;": '\U00002022', - "bullet;": '\U00002022', - "bump;": '\U0000224E', - "bumpE;": '\U00002AAE', - "bumpe;": '\U0000224F', - "bumpeq;": '\U0000224F', - "cacute;": '\U00000107', - "cap;": '\U00002229', - "capand;": '\U00002A44', - "capbrcup;": '\U00002A49', - "capcap;": '\U00002A4B', - "capcup;": '\U00002A47', - "capdot;": '\U00002A40', - "caret;": '\U00002041', - "caron;": '\U000002C7', - "ccaps;": '\U00002A4D', - "ccaron;": '\U0000010D', - "ccedil;": '\U000000E7', - "ccirc;": '\U00000109', - "ccups;": '\U00002A4C', - "ccupssm;": '\U00002A50', - "cdot;": '\U0000010B', - "cedil;": '\U000000B8', - "cemptyv;": '\U000029B2', - "cent;": '\U000000A2', - "centerdot;": '\U000000B7', - "cfr;": '\U0001D520', - "chcy;": '\U00000447', - "check;": '\U00002713', - "checkmark;": '\U00002713', - "chi;": '\U000003C7', - "cir;": '\U000025CB', - "cirE;": '\U000029C3', - "circ;": '\U000002C6', - "circeq;": '\U00002257', - "circlearrowleft;": '\U000021BA', - "circlearrowright;": '\U000021BB', - "circledR;": '\U000000AE', - "circledS;": '\U000024C8', - "circledast;": '\U0000229B', - "circledcirc;": '\U0000229A', - "circleddash;": '\U0000229D', - "cire;": '\U00002257', - "cirfnint;": '\U00002A10', - "cirmid;": '\U00002AEF', - "cirscir;": '\U000029C2', - "clubs;": '\U00002663', - "clubsuit;": '\U00002663', - "colon;": '\U0000003A', - "colone;": '\U00002254', - "coloneq;": '\U00002254', - "comma;": '\U0000002C', - "commat;": '\U00000040', - "comp;": '\U00002201', - "compfn;": '\U00002218', - "complement;": '\U00002201', - "complexes;": '\U00002102', - "cong;": '\U00002245', - "congdot;": '\U00002A6D', - "conint;": '\U0000222E', - "copf;": '\U0001D554', - "coprod;": '\U00002210', - "copy;": '\U000000A9', - "copysr;": '\U00002117', - "crarr;": '\U000021B5', - "cross;": '\U00002717', - "cscr;": '\U0001D4B8', - "csub;": '\U00002ACF', - "csube;": '\U00002AD1', - "csup;": '\U00002AD0', - "csupe;": '\U00002AD2', - "ctdot;": '\U000022EF', - "cudarrl;": '\U00002938', - "cudarrr;": '\U00002935', - "cuepr;": '\U000022DE', - "cuesc;": '\U000022DF', - "cularr;": '\U000021B6', - "cularrp;": '\U0000293D', - "cup;": '\U0000222A', - "cupbrcap;": '\U00002A48', - "cupcap;": '\U00002A46', - "cupcup;": '\U00002A4A', - "cupdot;": '\U0000228D', - "cupor;": '\U00002A45', - "curarr;": '\U000021B7', - "curarrm;": '\U0000293C', - "curlyeqprec;": '\U000022DE', - "curlyeqsucc;": '\U000022DF', - "curlyvee;": '\U000022CE', - "curlywedge;": '\U000022CF', - "curren;": '\U000000A4', - "curvearrowleft;": '\U000021B6', - "curvearrowright;": '\U000021B7', - "cuvee;": '\U000022CE', - "cuwed;": '\U000022CF', - "cwconint;": '\U00002232', - "cwint;": '\U00002231', - "cylcty;": '\U0000232D', - "dArr;": '\U000021D3', - "dHar;": '\U00002965', - "dagger;": '\U00002020', - "daleth;": '\U00002138', - "darr;": '\U00002193', - "dash;": '\U00002010', - "dashv;": '\U000022A3', - "dbkarow;": '\U0000290F', - "dblac;": '\U000002DD', - "dcaron;": '\U0000010F', - "dcy;": '\U00000434', - "dd;": '\U00002146', - "ddagger;": '\U00002021', - "ddarr;": '\U000021CA', - "ddotseq;": '\U00002A77', - "deg;": '\U000000B0', - "delta;": '\U000003B4', - "demptyv;": '\U000029B1', - "dfisht;": '\U0000297F', - "dfr;": '\U0001D521', - "dharl;": '\U000021C3', - "dharr;": '\U000021C2', - "diam;": '\U000022C4', - "diamond;": '\U000022C4', - "diamondsuit;": '\U00002666', - "diams;": '\U00002666', - "die;": '\U000000A8', - "digamma;": '\U000003DD', - "disin;": '\U000022F2', - "div;": '\U000000F7', - "divide;": '\U000000F7', - "divideontimes;": '\U000022C7', - "divonx;": '\U000022C7', - "djcy;": '\U00000452', - "dlcorn;": '\U0000231E', - "dlcrop;": '\U0000230D', - "dollar;": '\U00000024', - "dopf;": '\U0001D555', - "dot;": '\U000002D9', - "doteq;": '\U00002250', - "doteqdot;": '\U00002251', - "dotminus;": '\U00002238', - "dotplus;": '\U00002214', - "dotsquare;": '\U000022A1', - "doublebarwedge;": '\U00002306', - "downarrow;": '\U00002193', - "downdownarrows;": '\U000021CA', - "downharpoonleft;": '\U000021C3', - "downharpoonright;": '\U000021C2', - "drbkarow;": '\U00002910', - "drcorn;": '\U0000231F', - "drcrop;": '\U0000230C', - "dscr;": '\U0001D4B9', - "dscy;": '\U00000455', - "dsol;": '\U000029F6', - "dstrok;": '\U00000111', - "dtdot;": '\U000022F1', - "dtri;": '\U000025BF', - "dtrif;": '\U000025BE', - "duarr;": '\U000021F5', - "duhar;": '\U0000296F', - "dwangle;": '\U000029A6', - "dzcy;": '\U0000045F', - "dzigrarr;": '\U000027FF', - "eDDot;": '\U00002A77', - "eDot;": '\U00002251', - "eacute;": '\U000000E9', - "easter;": '\U00002A6E', - "ecaron;": '\U0000011B', - "ecir;": '\U00002256', - "ecirc;": '\U000000EA', - "ecolon;": '\U00002255', - "ecy;": '\U0000044D', - "edot;": '\U00000117', - "ee;": '\U00002147', - "efDot;": '\U00002252', - "efr;": '\U0001D522', - "eg;": '\U00002A9A', - "egrave;": '\U000000E8', - "egs;": '\U00002A96', - "egsdot;": '\U00002A98', - "el;": '\U00002A99', - "elinters;": '\U000023E7', - "ell;": '\U00002113', - "els;": '\U00002A95', - "elsdot;": '\U00002A97', - "emacr;": '\U00000113', - "empty;": '\U00002205', - "emptyset;": '\U00002205', - "emptyv;": '\U00002205', - "emsp;": '\U00002003', - "emsp13;": '\U00002004', - "emsp14;": '\U00002005', - "eng;": '\U0000014B', - "ensp;": '\U00002002', - "eogon;": '\U00000119', - "eopf;": '\U0001D556', - "epar;": '\U000022D5', - "eparsl;": '\U000029E3', - "eplus;": '\U00002A71', - "epsi;": '\U000003B5', - "epsilon;": '\U000003B5', - "epsiv;": '\U000003F5', - "eqcirc;": '\U00002256', - "eqcolon;": '\U00002255', - "eqsim;": '\U00002242', - "eqslantgtr;": '\U00002A96', - "eqslantless;": '\U00002A95', - "equals;": '\U0000003D', - "equest;": '\U0000225F', - "equiv;": '\U00002261', - "equivDD;": '\U00002A78', - "eqvparsl;": '\U000029E5', - "erDot;": '\U00002253', - "erarr;": '\U00002971', - "escr;": '\U0000212F', - "esdot;": '\U00002250', - "esim;": '\U00002242', - "eta;": '\U000003B7', - "eth;": '\U000000F0', - "euml;": '\U000000EB', - "euro;": '\U000020AC', - "excl;": '\U00000021', - "exist;": '\U00002203', - "expectation;": '\U00002130', - "exponentiale;": '\U00002147', - "fallingdotseq;": '\U00002252', - "fcy;": '\U00000444', - "female;": '\U00002640', - "ffilig;": '\U0000FB03', - "fflig;": '\U0000FB00', - "ffllig;": '\U0000FB04', - "ffr;": '\U0001D523', - "filig;": '\U0000FB01', - "flat;": '\U0000266D', - "fllig;": '\U0000FB02', - "fltns;": '\U000025B1', - "fnof;": '\U00000192', - "fopf;": '\U0001D557', - "forall;": '\U00002200', - "fork;": '\U000022D4', - "forkv;": '\U00002AD9', - "fpartint;": '\U00002A0D', - "frac12;": '\U000000BD', - "frac13;": '\U00002153', - "frac14;": '\U000000BC', - "frac15;": '\U00002155', - "frac16;": '\U00002159', - "frac18;": '\U0000215B', - "frac23;": '\U00002154', - "frac25;": '\U00002156', - "frac34;": '\U000000BE', - "frac35;": '\U00002157', - "frac38;": '\U0000215C', - "frac45;": '\U00002158', - "frac56;": '\U0000215A', - "frac58;": '\U0000215D', - "frac78;": '\U0000215E', - "frasl;": '\U00002044', - "frown;": '\U00002322', - "fscr;": '\U0001D4BB', - "gE;": '\U00002267', - "gEl;": '\U00002A8C', - "gacute;": '\U000001F5', - "gamma;": '\U000003B3', - "gammad;": '\U000003DD', - "gap;": '\U00002A86', - "gbreve;": '\U0000011F', - "gcirc;": '\U0000011D', - "gcy;": '\U00000433', - "gdot;": '\U00000121', - "ge;": '\U00002265', - "gel;": '\U000022DB', - "geq;": '\U00002265', - "geqq;": '\U00002267', - "geqslant;": '\U00002A7E', - "ges;": '\U00002A7E', - "gescc;": '\U00002AA9', - "gesdot;": '\U00002A80', - "gesdoto;": '\U00002A82', - "gesdotol;": '\U00002A84', - "gesles;": '\U00002A94', - "gfr;": '\U0001D524', - "gg;": '\U0000226B', - "ggg;": '\U000022D9', - "gimel;": '\U00002137', - "gjcy;": '\U00000453', - "gl;": '\U00002277', - "glE;": '\U00002A92', - "gla;": '\U00002AA5', - "glj;": '\U00002AA4', - "gnE;": '\U00002269', - "gnap;": '\U00002A8A', - "gnapprox;": '\U00002A8A', - "gne;": '\U00002A88', - "gneq;": '\U00002A88', - "gneqq;": '\U00002269', - "gnsim;": '\U000022E7', - "gopf;": '\U0001D558', - "grave;": '\U00000060', - "gscr;": '\U0000210A', - "gsim;": '\U00002273', - "gsime;": '\U00002A8E', - "gsiml;": '\U00002A90', - "gt;": '\U0000003E', - "gtcc;": '\U00002AA7', - "gtcir;": '\U00002A7A', - "gtdot;": '\U000022D7', - "gtlPar;": '\U00002995', - "gtquest;": '\U00002A7C', - "gtrapprox;": '\U00002A86', - "gtrarr;": '\U00002978', - "gtrdot;": '\U000022D7', - "gtreqless;": '\U000022DB', - "gtreqqless;": '\U00002A8C', - "gtrless;": '\U00002277', - "gtrsim;": '\U00002273', - "hArr;": '\U000021D4', - "hairsp;": '\U0000200A', - "half;": '\U000000BD', - "hamilt;": '\U0000210B', - "hardcy;": '\U0000044A', - "harr;": '\U00002194', - "harrcir;": '\U00002948', - "harrw;": '\U000021AD', - "hbar;": '\U0000210F', - "hcirc;": '\U00000125', - "hearts;": '\U00002665', - "heartsuit;": '\U00002665', - "hellip;": '\U00002026', - "hercon;": '\U000022B9', - "hfr;": '\U0001D525', - "hksearow;": '\U00002925', - "hkswarow;": '\U00002926', - "hoarr;": '\U000021FF', - "homtht;": '\U0000223B', - "hookleftarrow;": '\U000021A9', - "hookrightarrow;": '\U000021AA', - "hopf;": '\U0001D559', - "horbar;": '\U00002015', - "hscr;": '\U0001D4BD', - "hslash;": '\U0000210F', - "hstrok;": '\U00000127', - "hybull;": '\U00002043', - "hyphen;": '\U00002010', - "iacute;": '\U000000ED', - "ic;": '\U00002063', - "icirc;": '\U000000EE', - "icy;": '\U00000438', - "iecy;": '\U00000435', - "iexcl;": '\U000000A1', - "iff;": '\U000021D4', - "ifr;": '\U0001D526', - "igrave;": '\U000000EC', - "ii;": '\U00002148', - "iiiint;": '\U00002A0C', - "iiint;": '\U0000222D', - "iinfin;": '\U000029DC', - "iiota;": '\U00002129', - "ijlig;": '\U00000133', - "imacr;": '\U0000012B', - "image;": '\U00002111', - "imagline;": '\U00002110', - "imagpart;": '\U00002111', - "imath;": '\U00000131', - "imof;": '\U000022B7', - "imped;": '\U000001B5', - "in;": '\U00002208', - "incare;": '\U00002105', - "infin;": '\U0000221E', - "infintie;": '\U000029DD', - "inodot;": '\U00000131', - "int;": '\U0000222B', - "intcal;": '\U000022BA', - "integers;": '\U00002124', - "intercal;": '\U000022BA', - "intlarhk;": '\U00002A17', - "intprod;": '\U00002A3C', - "iocy;": '\U00000451', - "iogon;": '\U0000012F', - "iopf;": '\U0001D55A', - "iota;": '\U000003B9', - "iprod;": '\U00002A3C', - "iquest;": '\U000000BF', - "iscr;": '\U0001D4BE', - "isin;": '\U00002208', - "isinE;": '\U000022F9', - "isindot;": '\U000022F5', - "isins;": '\U000022F4', - "isinsv;": '\U000022F3', - "isinv;": '\U00002208', - "it;": '\U00002062', - "itilde;": '\U00000129', - "iukcy;": '\U00000456', - "iuml;": '\U000000EF', - "jcirc;": '\U00000135', - "jcy;": '\U00000439', - "jfr;": '\U0001D527', - "jmath;": '\U00000237', - "jopf;": '\U0001D55B', - "jscr;": '\U0001D4BF', - "jsercy;": '\U00000458', - "jukcy;": '\U00000454', - "kappa;": '\U000003BA', - "kappav;": '\U000003F0', - "kcedil;": '\U00000137', - "kcy;": '\U0000043A', - "kfr;": '\U0001D528', - "kgreen;": '\U00000138', - "khcy;": '\U00000445', - "kjcy;": '\U0000045C', - "kopf;": '\U0001D55C', - "kscr;": '\U0001D4C0', - "lAarr;": '\U000021DA', - "lArr;": '\U000021D0', - "lAtail;": '\U0000291B', - "lBarr;": '\U0000290E', - "lE;": '\U00002266', - "lEg;": '\U00002A8B', - "lHar;": '\U00002962', - "lacute;": '\U0000013A', - "laemptyv;": '\U000029B4', - "lagran;": '\U00002112', - "lambda;": '\U000003BB', - "lang;": '\U000027E8', - "langd;": '\U00002991', - "langle;": '\U000027E8', - "lap;": '\U00002A85', - "laquo;": '\U000000AB', - "larr;": '\U00002190', - "larrb;": '\U000021E4', - "larrbfs;": '\U0000291F', - "larrfs;": '\U0000291D', - "larrhk;": '\U000021A9', - "larrlp;": '\U000021AB', - "larrpl;": '\U00002939', - "larrsim;": '\U00002973', - "larrtl;": '\U000021A2', - "lat;": '\U00002AAB', - "latail;": '\U00002919', - "late;": '\U00002AAD', - "lbarr;": '\U0000290C', - "lbbrk;": '\U00002772', - "lbrace;": '\U0000007B', - "lbrack;": '\U0000005B', - "lbrke;": '\U0000298B', - "lbrksld;": '\U0000298F', - "lbrkslu;": '\U0000298D', - "lcaron;": '\U0000013E', - "lcedil;": '\U0000013C', - "lceil;": '\U00002308', - "lcub;": '\U0000007B', - "lcy;": '\U0000043B', - "ldca;": '\U00002936', - "ldquo;": '\U0000201C', - "ldquor;": '\U0000201E', - "ldrdhar;": '\U00002967', - "ldrushar;": '\U0000294B', - "ldsh;": '\U000021B2', - "le;": '\U00002264', - "leftarrow;": '\U00002190', - "leftarrowtail;": '\U000021A2', - "leftharpoondown;": '\U000021BD', - "leftharpoonup;": '\U000021BC', - "leftleftarrows;": '\U000021C7', - "leftrightarrow;": '\U00002194', - "leftrightarrows;": '\U000021C6', - "leftrightharpoons;": '\U000021CB', - "leftrightsquigarrow;": '\U000021AD', - "leftthreetimes;": '\U000022CB', - "leg;": '\U000022DA', - "leq;": '\U00002264', - "leqq;": '\U00002266', - "leqslant;": '\U00002A7D', - "les;": '\U00002A7D', - "lescc;": '\U00002AA8', - "lesdot;": '\U00002A7F', - "lesdoto;": '\U00002A81', - "lesdotor;": '\U00002A83', - "lesges;": '\U00002A93', - "lessapprox;": '\U00002A85', - "lessdot;": '\U000022D6', - "lesseqgtr;": '\U000022DA', - "lesseqqgtr;": '\U00002A8B', - "lessgtr;": '\U00002276', - "lesssim;": '\U00002272', - "lfisht;": '\U0000297C', - "lfloor;": '\U0000230A', - "lfr;": '\U0001D529', - "lg;": '\U00002276', - "lgE;": '\U00002A91', - "lhard;": '\U000021BD', - "lharu;": '\U000021BC', - "lharul;": '\U0000296A', - "lhblk;": '\U00002584', - "ljcy;": '\U00000459', - "ll;": '\U0000226A', - "llarr;": '\U000021C7', - "llcorner;": '\U0000231E', - "llhard;": '\U0000296B', - "lltri;": '\U000025FA', - "lmidot;": '\U00000140', - "lmoust;": '\U000023B0', - "lmoustache;": '\U000023B0', - "lnE;": '\U00002268', - "lnap;": '\U00002A89', - "lnapprox;": '\U00002A89', - "lne;": '\U00002A87', - "lneq;": '\U00002A87', - "lneqq;": '\U00002268', - "lnsim;": '\U000022E6', - "loang;": '\U000027EC', - "loarr;": '\U000021FD', - "lobrk;": '\U000027E6', - "longleftarrow;": '\U000027F5', - "longleftrightarrow;": '\U000027F7', - "longmapsto;": '\U000027FC', - "longrightarrow;": '\U000027F6', - "looparrowleft;": '\U000021AB', - "looparrowright;": '\U000021AC', - "lopar;": '\U00002985', - "lopf;": '\U0001D55D', - "loplus;": '\U00002A2D', - "lotimes;": '\U00002A34', - "lowast;": '\U00002217', - "lowbar;": '\U0000005F', - "loz;": '\U000025CA', - "lozenge;": '\U000025CA', - "lozf;": '\U000029EB', - "lpar;": '\U00000028', - "lparlt;": '\U00002993', - "lrarr;": '\U000021C6', - "lrcorner;": '\U0000231F', - "lrhar;": '\U000021CB', - "lrhard;": '\U0000296D', - "lrm;": '\U0000200E', - "lrtri;": '\U000022BF', - "lsaquo;": '\U00002039', - "lscr;": '\U0001D4C1', - "lsh;": '\U000021B0', - "lsim;": '\U00002272', - "lsime;": '\U00002A8D', - "lsimg;": '\U00002A8F', - "lsqb;": '\U0000005B', - "lsquo;": '\U00002018', - "lsquor;": '\U0000201A', - "lstrok;": '\U00000142', - "lt;": '\U0000003C', - "ltcc;": '\U00002AA6', - "ltcir;": '\U00002A79', - "ltdot;": '\U000022D6', - "lthree;": '\U000022CB', - "ltimes;": '\U000022C9', - "ltlarr;": '\U00002976', - "ltquest;": '\U00002A7B', - "ltrPar;": '\U00002996', - "ltri;": '\U000025C3', - "ltrie;": '\U000022B4', - "ltrif;": '\U000025C2', - "lurdshar;": '\U0000294A', - "luruhar;": '\U00002966', - "mDDot;": '\U0000223A', - "macr;": '\U000000AF', - "male;": '\U00002642', - "malt;": '\U00002720', - "maltese;": '\U00002720', - "map;": '\U000021A6', - "mapsto;": '\U000021A6', - "mapstodown;": '\U000021A7', - "mapstoleft;": '\U000021A4', - "mapstoup;": '\U000021A5', - "marker;": '\U000025AE', - "mcomma;": '\U00002A29', - "mcy;": '\U0000043C', - "mdash;": '\U00002014', - "measuredangle;": '\U00002221', - "mfr;": '\U0001D52A', - "mho;": '\U00002127', - "micro;": '\U000000B5', - "mid;": '\U00002223', - "midast;": '\U0000002A', - "midcir;": '\U00002AF0', - "middot;": '\U000000B7', - "minus;": '\U00002212', - "minusb;": '\U0000229F', - "minusd;": '\U00002238', - "minusdu;": '\U00002A2A', - "mlcp;": '\U00002ADB', - "mldr;": '\U00002026', - "mnplus;": '\U00002213', - "models;": '\U000022A7', - "mopf;": '\U0001D55E', - "mp;": '\U00002213', - "mscr;": '\U0001D4C2', - "mstpos;": '\U0000223E', - "mu;": '\U000003BC', - "multimap;": '\U000022B8', - "mumap;": '\U000022B8', - "nLeftarrow;": '\U000021CD', - "nLeftrightarrow;": '\U000021CE', - "nRightarrow;": '\U000021CF', - "nVDash;": '\U000022AF', - "nVdash;": '\U000022AE', - "nabla;": '\U00002207', - "nacute;": '\U00000144', - "nap;": '\U00002249', - "napos;": '\U00000149', - "napprox;": '\U00002249', - "natur;": '\U0000266E', - "natural;": '\U0000266E', - "naturals;": '\U00002115', - "nbsp;": '\U000000A0', - "ncap;": '\U00002A43', - "ncaron;": '\U00000148', - "ncedil;": '\U00000146', - "ncong;": '\U00002247', - "ncup;": '\U00002A42', - "ncy;": '\U0000043D', - "ndash;": '\U00002013', - "ne;": '\U00002260', - "neArr;": '\U000021D7', - "nearhk;": '\U00002924', - "nearr;": '\U00002197', - "nearrow;": '\U00002197', - "nequiv;": '\U00002262', - "nesear;": '\U00002928', - "nexist;": '\U00002204', - "nexists;": '\U00002204', - "nfr;": '\U0001D52B', - "nge;": '\U00002271', - "ngeq;": '\U00002271', - "ngsim;": '\U00002275', - "ngt;": '\U0000226F', - "ngtr;": '\U0000226F', - "nhArr;": '\U000021CE', - "nharr;": '\U000021AE', - "nhpar;": '\U00002AF2', - "ni;": '\U0000220B', - "nis;": '\U000022FC', - "nisd;": '\U000022FA', - "niv;": '\U0000220B', - "njcy;": '\U0000045A', - "nlArr;": '\U000021CD', - "nlarr;": '\U0000219A', - "nldr;": '\U00002025', - "nle;": '\U00002270', - "nleftarrow;": '\U0000219A', - "nleftrightarrow;": '\U000021AE', - "nleq;": '\U00002270', - "nless;": '\U0000226E', - "nlsim;": '\U00002274', - "nlt;": '\U0000226E', - "nltri;": '\U000022EA', - "nltrie;": '\U000022EC', - "nmid;": '\U00002224', - "nopf;": '\U0001D55F', - "not;": '\U000000AC', - "notin;": '\U00002209', - "notinva;": '\U00002209', - "notinvb;": '\U000022F7', - "notinvc;": '\U000022F6', - "notni;": '\U0000220C', - "notniva;": '\U0000220C', - "notnivb;": '\U000022FE', - "notnivc;": '\U000022FD', - "npar;": '\U00002226', - "nparallel;": '\U00002226', - "npolint;": '\U00002A14', - "npr;": '\U00002280', - "nprcue;": '\U000022E0', - "nprec;": '\U00002280', - "nrArr;": '\U000021CF', - "nrarr;": '\U0000219B', - "nrightarrow;": '\U0000219B', - "nrtri;": '\U000022EB', - "nrtrie;": '\U000022ED', - "nsc;": '\U00002281', - "nsccue;": '\U000022E1', - "nscr;": '\U0001D4C3', - "nshortmid;": '\U00002224', - "nshortparallel;": '\U00002226', - "nsim;": '\U00002241', - "nsime;": '\U00002244', - "nsimeq;": '\U00002244', - "nsmid;": '\U00002224', - "nspar;": '\U00002226', - "nsqsube;": '\U000022E2', - "nsqsupe;": '\U000022E3', - "nsub;": '\U00002284', - "nsube;": '\U00002288', - "nsubseteq;": '\U00002288', - "nsucc;": '\U00002281', - "nsup;": '\U00002285', - "nsupe;": '\U00002289', - "nsupseteq;": '\U00002289', - "ntgl;": '\U00002279', - "ntilde;": '\U000000F1', - "ntlg;": '\U00002278', - "ntriangleleft;": '\U000022EA', - "ntrianglelefteq;": '\U000022EC', - "ntriangleright;": '\U000022EB', - "ntrianglerighteq;": '\U000022ED', - "nu;": '\U000003BD', - "num;": '\U00000023', - "numero;": '\U00002116', - "numsp;": '\U00002007', - "nvDash;": '\U000022AD', - "nvHarr;": '\U00002904', - "nvdash;": '\U000022AC', - "nvinfin;": '\U000029DE', - "nvlArr;": '\U00002902', - "nvrArr;": '\U00002903', - "nwArr;": '\U000021D6', - "nwarhk;": '\U00002923', - "nwarr;": '\U00002196', - "nwarrow;": '\U00002196', - "nwnear;": '\U00002927', - "oS;": '\U000024C8', - "oacute;": '\U000000F3', - "oast;": '\U0000229B', - "ocir;": '\U0000229A', - "ocirc;": '\U000000F4', - "ocy;": '\U0000043E', - "odash;": '\U0000229D', - "odblac;": '\U00000151', - "odiv;": '\U00002A38', - "odot;": '\U00002299', - "odsold;": '\U000029BC', - "oelig;": '\U00000153', - "ofcir;": '\U000029BF', - "ofr;": '\U0001D52C', - "ogon;": '\U000002DB', - "ograve;": '\U000000F2', - "ogt;": '\U000029C1', - "ohbar;": '\U000029B5', - "ohm;": '\U000003A9', - "oint;": '\U0000222E', - "olarr;": '\U000021BA', - "olcir;": '\U000029BE', - "olcross;": '\U000029BB', - "oline;": '\U0000203E', - "olt;": '\U000029C0', - "omacr;": '\U0000014D', - "omega;": '\U000003C9', - "omicron;": '\U000003BF', - "omid;": '\U000029B6', - "ominus;": '\U00002296', - "oopf;": '\U0001D560', - "opar;": '\U000029B7', - "operp;": '\U000029B9', - "oplus;": '\U00002295', - "or;": '\U00002228', - "orarr;": '\U000021BB', - "ord;": '\U00002A5D', - "order;": '\U00002134', - "orderof;": '\U00002134', - "ordf;": '\U000000AA', - "ordm;": '\U000000BA', - "origof;": '\U000022B6', - "oror;": '\U00002A56', - "orslope;": '\U00002A57', - "orv;": '\U00002A5B', - "oscr;": '\U00002134', - "oslash;": '\U000000F8', - "osol;": '\U00002298', - "otilde;": '\U000000F5', - "otimes;": '\U00002297', - "otimesas;": '\U00002A36', - "ouml;": '\U000000F6', - "ovbar;": '\U0000233D', - "par;": '\U00002225', - "para;": '\U000000B6', - "parallel;": '\U00002225', - "parsim;": '\U00002AF3', - "parsl;": '\U00002AFD', - "part;": '\U00002202', - "pcy;": '\U0000043F', - "percnt;": '\U00000025', - "period;": '\U0000002E', - "permil;": '\U00002030', - "perp;": '\U000022A5', - "pertenk;": '\U00002031', - "pfr;": '\U0001D52D', - "phi;": '\U000003C6', - "phiv;": '\U000003D5', - "phmmat;": '\U00002133', - "phone;": '\U0000260E', - "pi;": '\U000003C0', - "pitchfork;": '\U000022D4', - "piv;": '\U000003D6', - "planck;": '\U0000210F', - "planckh;": '\U0000210E', - "plankv;": '\U0000210F', - "plus;": '\U0000002B', - "plusacir;": '\U00002A23', - "plusb;": '\U0000229E', - "pluscir;": '\U00002A22', - "plusdo;": '\U00002214', - "plusdu;": '\U00002A25', - "pluse;": '\U00002A72', - "plusmn;": '\U000000B1', - "plussim;": '\U00002A26', - "plustwo;": '\U00002A27', - "pm;": '\U000000B1', - "pointint;": '\U00002A15', - "popf;": '\U0001D561', - "pound;": '\U000000A3', - "pr;": '\U0000227A', - "prE;": '\U00002AB3', - "prap;": '\U00002AB7', - "prcue;": '\U0000227C', - "pre;": '\U00002AAF', - "prec;": '\U0000227A', - "precapprox;": '\U00002AB7', - "preccurlyeq;": '\U0000227C', - "preceq;": '\U00002AAF', - "precnapprox;": '\U00002AB9', - "precneqq;": '\U00002AB5', - "precnsim;": '\U000022E8', - "precsim;": '\U0000227E', - "prime;": '\U00002032', - "primes;": '\U00002119', - "prnE;": '\U00002AB5', - "prnap;": '\U00002AB9', - "prnsim;": '\U000022E8', - "prod;": '\U0000220F', - "profalar;": '\U0000232E', - "profline;": '\U00002312', - "profsurf;": '\U00002313', - "prop;": '\U0000221D', - "propto;": '\U0000221D', - "prsim;": '\U0000227E', - "prurel;": '\U000022B0', - "pscr;": '\U0001D4C5', - "psi;": '\U000003C8', - "puncsp;": '\U00002008', - "qfr;": '\U0001D52E', - "qint;": '\U00002A0C', - "qopf;": '\U0001D562', - "qprime;": '\U00002057', - "qscr;": '\U0001D4C6', - "quaternions;": '\U0000210D', - "quatint;": '\U00002A16', - "quest;": '\U0000003F', - "questeq;": '\U0000225F', - "quot;": '\U00000022', - "rAarr;": '\U000021DB', - "rArr;": '\U000021D2', - "rAtail;": '\U0000291C', - "rBarr;": '\U0000290F', - "rHar;": '\U00002964', - "racute;": '\U00000155', - "radic;": '\U0000221A', - "raemptyv;": '\U000029B3', - "rang;": '\U000027E9', - "rangd;": '\U00002992', - "range;": '\U000029A5', - "rangle;": '\U000027E9', - "raquo;": '\U000000BB', - "rarr;": '\U00002192', - "rarrap;": '\U00002975', - "rarrb;": '\U000021E5', - "rarrbfs;": '\U00002920', - "rarrc;": '\U00002933', - "rarrfs;": '\U0000291E', - "rarrhk;": '\U000021AA', - "rarrlp;": '\U000021AC', - "rarrpl;": '\U00002945', - "rarrsim;": '\U00002974', - "rarrtl;": '\U000021A3', - "rarrw;": '\U0000219D', - "ratail;": '\U0000291A', - "ratio;": '\U00002236', - "rationals;": '\U0000211A', - "rbarr;": '\U0000290D', - "rbbrk;": '\U00002773', - "rbrace;": '\U0000007D', - "rbrack;": '\U0000005D', - "rbrke;": '\U0000298C', - "rbrksld;": '\U0000298E', - "rbrkslu;": '\U00002990', - "rcaron;": '\U00000159', - "rcedil;": '\U00000157', - "rceil;": '\U00002309', - "rcub;": '\U0000007D', - "rcy;": '\U00000440', - "rdca;": '\U00002937', - "rdldhar;": '\U00002969', - "rdquo;": '\U0000201D', - "rdquor;": '\U0000201D', - "rdsh;": '\U000021B3', - "real;": '\U0000211C', - "realine;": '\U0000211B', - "realpart;": '\U0000211C', - "reals;": '\U0000211D', - "rect;": '\U000025AD', - "reg;": '\U000000AE', - "rfisht;": '\U0000297D', - "rfloor;": '\U0000230B', - "rfr;": '\U0001D52F', - "rhard;": '\U000021C1', - "rharu;": '\U000021C0', - "rharul;": '\U0000296C', - "rho;": '\U000003C1', - "rhov;": '\U000003F1', - "rightarrow;": '\U00002192', - "rightarrowtail;": '\U000021A3', - "rightharpoondown;": '\U000021C1', - "rightharpoonup;": '\U000021C0', - "rightleftarrows;": '\U000021C4', - "rightleftharpoons;": '\U000021CC', - "rightrightarrows;": '\U000021C9', - "rightsquigarrow;": '\U0000219D', - "rightthreetimes;": '\U000022CC', - "ring;": '\U000002DA', - "risingdotseq;": '\U00002253', - "rlarr;": '\U000021C4', - "rlhar;": '\U000021CC', - "rlm;": '\U0000200F', - "rmoust;": '\U000023B1', - "rmoustache;": '\U000023B1', - "rnmid;": '\U00002AEE', - "roang;": '\U000027ED', - "roarr;": '\U000021FE', - "robrk;": '\U000027E7', - "ropar;": '\U00002986', - "ropf;": '\U0001D563', - "roplus;": '\U00002A2E', - "rotimes;": '\U00002A35', - "rpar;": '\U00000029', - "rpargt;": '\U00002994', - "rppolint;": '\U00002A12', - "rrarr;": '\U000021C9', - "rsaquo;": '\U0000203A', - "rscr;": '\U0001D4C7', - "rsh;": '\U000021B1', - "rsqb;": '\U0000005D', - "rsquo;": '\U00002019', - "rsquor;": '\U00002019', - "rthree;": '\U000022CC', - "rtimes;": '\U000022CA', - "rtri;": '\U000025B9', - "rtrie;": '\U000022B5', - "rtrif;": '\U000025B8', - "rtriltri;": '\U000029CE', - "ruluhar;": '\U00002968', - "rx;": '\U0000211E', - "sacute;": '\U0000015B', - "sbquo;": '\U0000201A', - "sc;": '\U0000227B', - "scE;": '\U00002AB4', - "scap;": '\U00002AB8', - "scaron;": '\U00000161', - "sccue;": '\U0000227D', - "sce;": '\U00002AB0', - "scedil;": '\U0000015F', - "scirc;": '\U0000015D', - "scnE;": '\U00002AB6', - "scnap;": '\U00002ABA', - "scnsim;": '\U000022E9', - "scpolint;": '\U00002A13', - "scsim;": '\U0000227F', - "scy;": '\U00000441', - "sdot;": '\U000022C5', - "sdotb;": '\U000022A1', - "sdote;": '\U00002A66', - "seArr;": '\U000021D8', - "searhk;": '\U00002925', - "searr;": '\U00002198', - "searrow;": '\U00002198', - "sect;": '\U000000A7', - "semi;": '\U0000003B', - "seswar;": '\U00002929', - "setminus;": '\U00002216', - "setmn;": '\U00002216', - "sext;": '\U00002736', - "sfr;": '\U0001D530', - "sfrown;": '\U00002322', - "sharp;": '\U0000266F', - "shchcy;": '\U00000449', - "shcy;": '\U00000448', - "shortmid;": '\U00002223', - "shortparallel;": '\U00002225', - "shy;": '\U000000AD', - "sigma;": '\U000003C3', - "sigmaf;": '\U000003C2', - "sigmav;": '\U000003C2', - "sim;": '\U0000223C', - "simdot;": '\U00002A6A', - "sime;": '\U00002243', - "simeq;": '\U00002243', - "simg;": '\U00002A9E', - "simgE;": '\U00002AA0', - "siml;": '\U00002A9D', - "simlE;": '\U00002A9F', - "simne;": '\U00002246', - "simplus;": '\U00002A24', - "simrarr;": '\U00002972', - "slarr;": '\U00002190', - "smallsetminus;": '\U00002216', - "smashp;": '\U00002A33', - "smeparsl;": '\U000029E4', - "smid;": '\U00002223', - "smile;": '\U00002323', - "smt;": '\U00002AAA', - "smte;": '\U00002AAC', - "softcy;": '\U0000044C', - "sol;": '\U0000002F', - "solb;": '\U000029C4', - "solbar;": '\U0000233F', - "sopf;": '\U0001D564', - "spades;": '\U00002660', - "spadesuit;": '\U00002660', - "spar;": '\U00002225', - "sqcap;": '\U00002293', - "sqcup;": '\U00002294', - "sqsub;": '\U0000228F', - "sqsube;": '\U00002291', - "sqsubset;": '\U0000228F', - "sqsubseteq;": '\U00002291', - "sqsup;": '\U00002290', - "sqsupe;": '\U00002292', - "sqsupset;": '\U00002290', - "sqsupseteq;": '\U00002292', - "squ;": '\U000025A1', - "square;": '\U000025A1', - "squarf;": '\U000025AA', - "squf;": '\U000025AA', - "srarr;": '\U00002192', - "sscr;": '\U0001D4C8', - "ssetmn;": '\U00002216', - "ssmile;": '\U00002323', - "sstarf;": '\U000022C6', - "star;": '\U00002606', - "starf;": '\U00002605', - "straightepsilon;": '\U000003F5', - "straightphi;": '\U000003D5', - "strns;": '\U000000AF', - "sub;": '\U00002282', - "subE;": '\U00002AC5', - "subdot;": '\U00002ABD', - "sube;": '\U00002286', - "subedot;": '\U00002AC3', - "submult;": '\U00002AC1', - "subnE;": '\U00002ACB', - "subne;": '\U0000228A', - "subplus;": '\U00002ABF', - "subrarr;": '\U00002979', - "subset;": '\U00002282', - "subseteq;": '\U00002286', - "subseteqq;": '\U00002AC5', - "subsetneq;": '\U0000228A', - "subsetneqq;": '\U00002ACB', - "subsim;": '\U00002AC7', - "subsub;": '\U00002AD5', - "subsup;": '\U00002AD3', - "succ;": '\U0000227B', - "succapprox;": '\U00002AB8', - "succcurlyeq;": '\U0000227D', - "succeq;": '\U00002AB0', - "succnapprox;": '\U00002ABA', - "succneqq;": '\U00002AB6', - "succnsim;": '\U000022E9', - "succsim;": '\U0000227F', - "sum;": '\U00002211', - "sung;": '\U0000266A', - "sup;": '\U00002283', - "sup1;": '\U000000B9', - "sup2;": '\U000000B2', - "sup3;": '\U000000B3', - "supE;": '\U00002AC6', - "supdot;": '\U00002ABE', - "supdsub;": '\U00002AD8', - "supe;": '\U00002287', - "supedot;": '\U00002AC4', - "suphsol;": '\U000027C9', - "suphsub;": '\U00002AD7', - "suplarr;": '\U0000297B', - "supmult;": '\U00002AC2', - "supnE;": '\U00002ACC', - "supne;": '\U0000228B', - "supplus;": '\U00002AC0', - "supset;": '\U00002283', - "supseteq;": '\U00002287', - "supseteqq;": '\U00002AC6', - "supsetneq;": '\U0000228B', - "supsetneqq;": '\U00002ACC', - "supsim;": '\U00002AC8', - "supsub;": '\U00002AD4', - "supsup;": '\U00002AD6', - "swArr;": '\U000021D9', - "swarhk;": '\U00002926', - "swarr;": '\U00002199', - "swarrow;": '\U00002199', - "swnwar;": '\U0000292A', - "szlig;": '\U000000DF', - "target;": '\U00002316', - "tau;": '\U000003C4', - "tbrk;": '\U000023B4', - "tcaron;": '\U00000165', - "tcedil;": '\U00000163', - "tcy;": '\U00000442', - "tdot;": '\U000020DB', - "telrec;": '\U00002315', - "tfr;": '\U0001D531', - "there4;": '\U00002234', - "therefore;": '\U00002234', - "theta;": '\U000003B8', - "thetasym;": '\U000003D1', - "thetav;": '\U000003D1', - "thickapprox;": '\U00002248', - "thicksim;": '\U0000223C', - "thinsp;": '\U00002009', - "thkap;": '\U00002248', - "thksim;": '\U0000223C', - "thorn;": '\U000000FE', - "tilde;": '\U000002DC', - "times;": '\U000000D7', - "timesb;": '\U000022A0', - "timesbar;": '\U00002A31', - "timesd;": '\U00002A30', - "tint;": '\U0000222D', - "toea;": '\U00002928', - "top;": '\U000022A4', - "topbot;": '\U00002336', - "topcir;": '\U00002AF1', - "topf;": '\U0001D565', - "topfork;": '\U00002ADA', - "tosa;": '\U00002929', - "tprime;": '\U00002034', - "trade;": '\U00002122', - "triangle;": '\U000025B5', - "triangledown;": '\U000025BF', - "triangleleft;": '\U000025C3', - "trianglelefteq;": '\U000022B4', - "triangleq;": '\U0000225C', - "triangleright;": '\U000025B9', - "trianglerighteq;": '\U000022B5', - "tridot;": '\U000025EC', - "trie;": '\U0000225C', - "triminus;": '\U00002A3A', - "triplus;": '\U00002A39', - "trisb;": '\U000029CD', - "tritime;": '\U00002A3B', - "trpezium;": '\U000023E2', - "tscr;": '\U0001D4C9', - "tscy;": '\U00000446', - "tshcy;": '\U0000045B', - "tstrok;": '\U00000167', - "twixt;": '\U0000226C', - "twoheadleftarrow;": '\U0000219E', - "twoheadrightarrow;": '\U000021A0', - "uArr;": '\U000021D1', - "uHar;": '\U00002963', - "uacute;": '\U000000FA', - "uarr;": '\U00002191', - "ubrcy;": '\U0000045E', - "ubreve;": '\U0000016D', - "ucirc;": '\U000000FB', - "ucy;": '\U00000443', - "udarr;": '\U000021C5', - "udblac;": '\U00000171', - "udhar;": '\U0000296E', - "ufisht;": '\U0000297E', - "ufr;": '\U0001D532', - "ugrave;": '\U000000F9', - "uharl;": '\U000021BF', - "uharr;": '\U000021BE', - "uhblk;": '\U00002580', - "ulcorn;": '\U0000231C', - "ulcorner;": '\U0000231C', - "ulcrop;": '\U0000230F', - "ultri;": '\U000025F8', - "umacr;": '\U0000016B', - "uml;": '\U000000A8', - "uogon;": '\U00000173', - "uopf;": '\U0001D566', - "uparrow;": '\U00002191', - "updownarrow;": '\U00002195', - "upharpoonleft;": '\U000021BF', - "upharpoonright;": '\U000021BE', - "uplus;": '\U0000228E', - "upsi;": '\U000003C5', - "upsih;": '\U000003D2', - "upsilon;": '\U000003C5', - "upuparrows;": '\U000021C8', - "urcorn;": '\U0000231D', - "urcorner;": '\U0000231D', - "urcrop;": '\U0000230E', - "uring;": '\U0000016F', - "urtri;": '\U000025F9', - "uscr;": '\U0001D4CA', - "utdot;": '\U000022F0', - "utilde;": '\U00000169', - "utri;": '\U000025B5', - "utrif;": '\U000025B4', - "uuarr;": '\U000021C8', - "uuml;": '\U000000FC', - "uwangle;": '\U000029A7', - "vArr;": '\U000021D5', - "vBar;": '\U00002AE8', - "vBarv;": '\U00002AE9', - "vDash;": '\U000022A8', - "vangrt;": '\U0000299C', - "varepsilon;": '\U000003F5', - "varkappa;": '\U000003F0', - "varnothing;": '\U00002205', - "varphi;": '\U000003D5', - "varpi;": '\U000003D6', - "varpropto;": '\U0000221D', - "varr;": '\U00002195', - "varrho;": '\U000003F1', - "varsigma;": '\U000003C2', - "vartheta;": '\U000003D1', - "vartriangleleft;": '\U000022B2', - "vartriangleright;": '\U000022B3', - "vcy;": '\U00000432', - "vdash;": '\U000022A2', - "vee;": '\U00002228', - "veebar;": '\U000022BB', - "veeeq;": '\U0000225A', - "vellip;": '\U000022EE', - "verbar;": '\U0000007C', - "vert;": '\U0000007C', - "vfr;": '\U0001D533', - "vltri;": '\U000022B2', - "vopf;": '\U0001D567', - "vprop;": '\U0000221D', - "vrtri;": '\U000022B3', - "vscr;": '\U0001D4CB', - "vzigzag;": '\U0000299A', - "wcirc;": '\U00000175', - "wedbar;": '\U00002A5F', - "wedge;": '\U00002227', - "wedgeq;": '\U00002259', - "weierp;": '\U00002118', - "wfr;": '\U0001D534', - "wopf;": '\U0001D568', - "wp;": '\U00002118', - "wr;": '\U00002240', - "wreath;": '\U00002240', - "wscr;": '\U0001D4CC', - "xcap;": '\U000022C2', - "xcirc;": '\U000025EF', - "xcup;": '\U000022C3', - "xdtri;": '\U000025BD', - "xfr;": '\U0001D535', - "xhArr;": '\U000027FA', - "xharr;": '\U000027F7', - "xi;": '\U000003BE', - "xlArr;": '\U000027F8', - "xlarr;": '\U000027F5', - "xmap;": '\U000027FC', - "xnis;": '\U000022FB', - "xodot;": '\U00002A00', - "xopf;": '\U0001D569', - "xoplus;": '\U00002A01', - "xotime;": '\U00002A02', - "xrArr;": '\U000027F9', - "xrarr;": '\U000027F6', - "xscr;": '\U0001D4CD', - "xsqcup;": '\U00002A06', - "xuplus;": '\U00002A04', - "xutri;": '\U000025B3', - "xvee;": '\U000022C1', - "xwedge;": '\U000022C0', - "yacute;": '\U000000FD', - "yacy;": '\U0000044F', - "ycirc;": '\U00000177', - "ycy;": '\U0000044B', - "yen;": '\U000000A5', - "yfr;": '\U0001D536', - "yicy;": '\U00000457', - "yopf;": '\U0001D56A', - "yscr;": '\U0001D4CE', - "yucy;": '\U0000044E', - "yuml;": '\U000000FF', - "zacute;": '\U0000017A', - "zcaron;": '\U0000017E', - "zcy;": '\U00000437', - "zdot;": '\U0000017C', - "zeetrf;": '\U00002128', - "zeta;": '\U000003B6', - "zfr;": '\U0001D537', - "zhcy;": '\U00000436', - "zigrarr;": '\U000021DD', - "zopf;": '\U0001D56B', - "zscr;": '\U0001D4CF', - "zwj;": '\U0000200D', - "zwnj;": '\U0000200C', - "AElig": '\U000000C6', - "AMP": '\U00000026', - "Aacute": '\U000000C1', - "Acirc": '\U000000C2', - "Agrave": '\U000000C0', - "Aring": '\U000000C5', - "Atilde": '\U000000C3', - "Auml": '\U000000C4', - "COPY": '\U000000A9', - "Ccedil": '\U000000C7', - "ETH": '\U000000D0', - "Eacute": '\U000000C9', - "Ecirc": '\U000000CA', - "Egrave": '\U000000C8', - "Euml": '\U000000CB', - "GT": '\U0000003E', - "Iacute": '\U000000CD', - "Icirc": '\U000000CE', - "Igrave": '\U000000CC', - "Iuml": '\U000000CF', - "LT": '\U0000003C', - "Ntilde": '\U000000D1', - "Oacute": '\U000000D3', - "Ocirc": '\U000000D4', - "Ograve": '\U000000D2', - "Oslash": '\U000000D8', - "Otilde": '\U000000D5', - "Ouml": '\U000000D6', - "QUOT": '\U00000022', - "REG": '\U000000AE', - "THORN": '\U000000DE', - "Uacute": '\U000000DA', - "Ucirc": '\U000000DB', - "Ugrave": '\U000000D9', - "Uuml": '\U000000DC', - "Yacute": '\U000000DD', - "aacute": '\U000000E1', - "acirc": '\U000000E2', - "acute": '\U000000B4', - "aelig": '\U000000E6', - "agrave": '\U000000E0', - "amp": '\U00000026', - "aring": '\U000000E5', - "atilde": '\U000000E3', - "auml": '\U000000E4', - "brvbar": '\U000000A6', - "ccedil": '\U000000E7', - "cedil": '\U000000B8', - "cent": '\U000000A2', - "copy": '\U000000A9', - "curren": '\U000000A4', - "deg": '\U000000B0', - "divide": '\U000000F7', - "eacute": '\U000000E9', - "ecirc": '\U000000EA', - "egrave": '\U000000E8', - "eth": '\U000000F0', - "euml": '\U000000EB', - "frac12": '\U000000BD', - "frac14": '\U000000BC', - "frac34": '\U000000BE', - "gt": '\U0000003E', - "iacute": '\U000000ED', - "icirc": '\U000000EE', - "iexcl": '\U000000A1', - "igrave": '\U000000EC', - "iquest": '\U000000BF', - "iuml": '\U000000EF', - "laquo": '\U000000AB', - "lt": '\U0000003C', - "macr": '\U000000AF', - "micro": '\U000000B5', - "middot": '\U000000B7', - "nbsp": '\U000000A0', - "not": '\U000000AC', - "ntilde": '\U000000F1', - "oacute": '\U000000F3', - "ocirc": '\U000000F4', - "ograve": '\U000000F2', - "ordf": '\U000000AA', - "ordm": '\U000000BA', - "oslash": '\U000000F8', - "otilde": '\U000000F5', - "ouml": '\U000000F6', - "para": '\U000000B6', - "plusmn": '\U000000B1', - "pound": '\U000000A3', - "quot": '\U00000022', - "raquo": '\U000000BB', - "reg": '\U000000AE', - "sect": '\U000000A7', - "shy": '\U000000AD', - "sup1": '\U000000B9', - "sup2": '\U000000B2', - "sup3": '\U000000B3', - "szlig": '\U000000DF', - "thorn": '\U000000FE', - "times": '\U000000D7', - "uacute": '\U000000FA', - "ucirc": '\U000000FB', - "ugrave": '\U000000F9', - "uml": '\U000000A8', - "uuml": '\U000000FC', - "yacute": '\U000000FD', - "yen": '\U000000A5', - "yuml": '\U000000FF', -} - -// HTML entities that are two unicode codepoints. -var entity2 = map[string][2]rune{ - // TODO(nigeltao): Handle replacements that are wider than their names. - // "nLt;": {'\u226A', '\u20D2'}, - // "nGt;": {'\u226B', '\u20D2'}, - "NotEqualTilde;": {'\u2242', '\u0338'}, - "NotGreaterFullEqual;": {'\u2267', '\u0338'}, - "NotGreaterGreater;": {'\u226B', '\u0338'}, - "NotGreaterSlantEqual;": {'\u2A7E', '\u0338'}, - "NotHumpDownHump;": {'\u224E', '\u0338'}, - "NotHumpEqual;": {'\u224F', '\u0338'}, - "NotLeftTriangleBar;": {'\u29CF', '\u0338'}, - "NotLessLess;": {'\u226A', '\u0338'}, - "NotLessSlantEqual;": {'\u2A7D', '\u0338'}, - "NotNestedGreaterGreater;": {'\u2AA2', '\u0338'}, - "NotNestedLessLess;": {'\u2AA1', '\u0338'}, - "NotPrecedesEqual;": {'\u2AAF', '\u0338'}, - "NotRightTriangleBar;": {'\u29D0', '\u0338'}, - "NotSquareSubset;": {'\u228F', '\u0338'}, - "NotSquareSuperset;": {'\u2290', '\u0338'}, - "NotSubset;": {'\u2282', '\u20D2'}, - "NotSucceedsEqual;": {'\u2AB0', '\u0338'}, - "NotSucceedsTilde;": {'\u227F', '\u0338'}, - "NotSuperset;": {'\u2283', '\u20D2'}, - "ThickSpace;": {'\u205F', '\u200A'}, - "acE;": {'\u223E', '\u0333'}, - "bne;": {'\u003D', '\u20E5'}, - "bnequiv;": {'\u2261', '\u20E5'}, - "caps;": {'\u2229', '\uFE00'}, - "cups;": {'\u222A', '\uFE00'}, - "fjlig;": {'\u0066', '\u006A'}, - "gesl;": {'\u22DB', '\uFE00'}, - "gvertneqq;": {'\u2269', '\uFE00'}, - "gvnE;": {'\u2269', '\uFE00'}, - "lates;": {'\u2AAD', '\uFE00'}, - "lesg;": {'\u22DA', '\uFE00'}, - "lvertneqq;": {'\u2268', '\uFE00'}, - "lvnE;": {'\u2268', '\uFE00'}, - "nGg;": {'\u22D9', '\u0338'}, - "nGtv;": {'\u226B', '\u0338'}, - "nLl;": {'\u22D8', '\u0338'}, - "nLtv;": {'\u226A', '\u0338'}, - "nang;": {'\u2220', '\u20D2'}, - "napE;": {'\u2A70', '\u0338'}, - "napid;": {'\u224B', '\u0338'}, - "nbump;": {'\u224E', '\u0338'}, - "nbumpe;": {'\u224F', '\u0338'}, - "ncongdot;": {'\u2A6D', '\u0338'}, - "nedot;": {'\u2250', '\u0338'}, - "nesim;": {'\u2242', '\u0338'}, - "ngE;": {'\u2267', '\u0338'}, - "ngeqq;": {'\u2267', '\u0338'}, - "ngeqslant;": {'\u2A7E', '\u0338'}, - "nges;": {'\u2A7E', '\u0338'}, - "nlE;": {'\u2266', '\u0338'}, - "nleqq;": {'\u2266', '\u0338'}, - "nleqslant;": {'\u2A7D', '\u0338'}, - "nles;": {'\u2A7D', '\u0338'}, - "notinE;": {'\u22F9', '\u0338'}, - "notindot;": {'\u22F5', '\u0338'}, - "nparsl;": {'\u2AFD', '\u20E5'}, - "npart;": {'\u2202', '\u0338'}, - "npre;": {'\u2AAF', '\u0338'}, - "npreceq;": {'\u2AAF', '\u0338'}, - "nrarrc;": {'\u2933', '\u0338'}, - "nrarrw;": {'\u219D', '\u0338'}, - "nsce;": {'\u2AB0', '\u0338'}, - "nsubE;": {'\u2AC5', '\u0338'}, - "nsubset;": {'\u2282', '\u20D2'}, - "nsubseteqq;": {'\u2AC5', '\u0338'}, - "nsucceq;": {'\u2AB0', '\u0338'}, - "nsupE;": {'\u2AC6', '\u0338'}, - "nsupset;": {'\u2283', '\u20D2'}, - "nsupseteqq;": {'\u2AC6', '\u0338'}, - "nvap;": {'\u224D', '\u20D2'}, - "nvge;": {'\u2265', '\u20D2'}, - "nvgt;": {'\u003E', '\u20D2'}, - "nvle;": {'\u2264', '\u20D2'}, - "nvlt;": {'\u003C', '\u20D2'}, - "nvltrie;": {'\u22B4', '\u20D2'}, - "nvrtrie;": {'\u22B5', '\u20D2'}, - "nvsim;": {'\u223C', '\u20D2'}, - "race;": {'\u223D', '\u0331'}, - "smtes;": {'\u2AAC', '\uFE00'}, - "sqcaps;": {'\u2293', '\uFE00'}, - "sqcups;": {'\u2294', '\uFE00'}, - "varsubsetneq;": {'\u228A', '\uFE00'}, - "varsubsetneqq;": {'\u2ACB', '\uFE00'}, - "varsupsetneq;": {'\u228B', '\uFE00'}, - "varsupsetneqq;": {'\u2ACC', '\uFE00'}, - "vnsub;": {'\u2282', '\u20D2'}, - "vnsup;": {'\u2283', '\u20D2'}, - "vsubnE;": {'\u2ACB', '\uFE00'}, - "vsubne;": {'\u228A', '\uFE00'}, - "vsupnE;": {'\u2ACC', '\uFE00'}, - "vsupne;": {'\u228B', '\uFE00'}, -} diff --git a/vendor/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go deleted file mode 100644 index 04c6bec..0000000 --- a/vendor/golang.org/x/net/html/escape.go +++ /dev/null @@ -1,339 +0,0 @@ -// 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 html - -import ( - "bytes" - "strings" - "unicode/utf8" -) - -// These replacements permit compatibility with old numeric entities that -// assumed Windows-1252 encoding. -// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference -var replacementTable = [...]rune{ - '\u20AC', // First entry is what 0x80 should be replaced with. - '\u0081', - '\u201A', - '\u0192', - '\u201E', - '\u2026', - '\u2020', - '\u2021', - '\u02C6', - '\u2030', - '\u0160', - '\u2039', - '\u0152', - '\u008D', - '\u017D', - '\u008F', - '\u0090', - '\u2018', - '\u2019', - '\u201C', - '\u201D', - '\u2022', - '\u2013', - '\u2014', - '\u02DC', - '\u2122', - '\u0161', - '\u203A', - '\u0153', - '\u009D', - '\u017E', - '\u0178', // Last entry is 0x9F. - // 0x00->'\uFFFD' is handled programmatically. - // 0x0D->'\u000D' is a no-op. -} - -// unescapeEntity reads an entity like "&lt;" from b[src:] and writes the -// corresponding "<" to b[dst:], returning the incremented dst and src cursors. -// Precondition: b[src] == '&' && dst <= src. -// attribute should be true if parsing an attribute value. -func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) { - // https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference - - // i starts at 1 because we already know that s[0] == '&'. - i, s := 1, b[src:] - - if len(s) <= 1 { - b[dst] = b[src] - return dst + 1, src + 1 - } - - if s[i] == '#' { - if len(s) <= 3 { // We need to have at least "&#.". - b[dst] = b[src] - return dst + 1, src + 1 - } - i++ - c := s[i] - hex := false - if c == 'x' || c == 'X' { - hex = true - i++ - } - - x := '\x00' - for i < len(s) { - c = s[i] - i++ - if hex { - if '0' <= c && c <= '9' { - x = 16*x + rune(c) - '0' - continue - } else if 'a' <= c && c <= 'f' { - x = 16*x + rune(c) - 'a' + 10 - continue - } else if 'A' <= c && c <= 'F' { - x = 16*x + rune(c) - 'A' + 10 - continue - } - } else if '0' <= c && c <= '9' { - x = 10*x + rune(c) - '0' - continue - } - if c != ';' { - i-- - } - break - } - - if i <= 3 { // No characters matched. - b[dst] = b[src] - return dst + 1, src + 1 - } - - if 0x80 <= x && x <= 0x9F { - // Replace characters from Windows-1252 with UTF-8 equivalents. - x = replacementTable[x-0x80] - } else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF { - // Replace invalid characters with the replacement character. - x = '\uFFFD' - } - - return dst + utf8.EncodeRune(b[dst:], x), src + i - } - - // Consume the maximum number of characters possible, with the - // consumed characters matching one of the named references. - - for i < len(s) { - c := s[i] - i++ - // Lower-cased characters are more common in entities, so we check for them first. - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { - continue - } - if c != ';' { - i-- - } - break - } - - entityName := string(s[1:i]) - if entityName == "" { - // No-op. - } else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' { - // No-op. - } else if x := entity[entityName]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + i - } else if x := entity2[entityName]; x[0] != 0 { - dst1 := dst + utf8.EncodeRune(b[dst:], x[0]) - return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i - } else if !attribute { - maxLen := len(entityName) - 1 - if maxLen > longestEntityWithoutSemicolon { - maxLen = longestEntityWithoutSemicolon - } - for j := maxLen; j > 1; j-- { - if x := entity[entityName[:j]]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + j + 1 - } - } - } - - dst1, src1 = dst+i, src+i - copy(b[dst:dst1], b[src:src1]) - return dst1, src1 -} - -// unescape unescapes b's entities in-place, so that "a&lt;b" becomes "a<b". -// attribute should be true if parsing an attribute value. -func unescape(b []byte, attribute bool) []byte { - for i, c := range b { - if c == '&' { - dst, src := unescapeEntity(b, i, i, attribute) - for src < len(b) { - c := b[src] - if c == '&' { - dst, src = unescapeEntity(b, dst, src, attribute) - } else { - b[dst] = c - dst, src = dst+1, src+1 - } - } - return b[0:dst] - } - } - return b -} - -// lower lower-cases the A-Z bytes in b in-place, so that "aBc" becomes "abc". -func lower(b []byte) []byte { - for i, c := range b { - if 'A' <= c && c <= 'Z' { - b[i] = c + 'a' - 'A' - } - } - return b -} - -// escapeComment is like func escape but escapes its input bytes less often. -// Per https://github.com/golang/go/issues/58246 some HTML comments are (1) -// meaningful and (2) contain angle brackets that we'd like to avoid escaping -// unless we have to. -// -// "We have to" includes the '&' byte, since that introduces other escapes. -// -// It also includes those bytes (not including EOF) that would otherwise end -// the comment. Per the summary table at the bottom of comment_test.go, this is -// the '>' byte that, per above, we'd like to avoid escaping unless we have to. -// -// Studying the summary table (and T actions in its '>' column) closely, we -// only need to escape in states 43, 44, 49, 51 and 52. State 43 is at the -// start of the comment data. State 52 is after a '!'. The other three states -// are after a '-'. -// -// Our algorithm is thus to escape every '&' and to escape '>' if and only if: -// - The '>' is after a '!' or '-' (in the unescaped data) or -// - The '>' is at the start of the comment data (after the opening "<!--"). -func escapeComment(w writer, s string) error { - // When modifying this function, consider manually increasing the - // maxSuffixLen constant in func TestComments, from 6 to e.g. 9 or more. - // That increase should only be temporary, not committed, as it - // exponentially affects the test running time. - - if len(s) == 0 { - return nil - } - - // Loop: - // - Grow j such that s[i:j] does not need escaping. - // - If s[j] does need escaping, output s[i:j] and an escaped s[j], - // resetting i and j to point past that s[j] byte. - i := 0 - for j := 0; j < len(s); j++ { - escaped := "" - switch s[j] { - case '&': - escaped = "&amp;" - - case '>': - if j > 0 { - if prev := s[j-1]; (prev != '!') && (prev != '-') { - continue - } - } - escaped = "&gt;" - - default: - continue - } - - if i < j { - if _, err := w.WriteString(s[i:j]); err != nil { - return err - } - } - if _, err := w.WriteString(escaped); err != nil { - return err - } - i = j + 1 - } - - if i < len(s) { - if _, err := w.WriteString(s[i:]); err != nil { - return err - } - } - return nil -} - -// escapeCommentString is to EscapeString as escapeComment is to escape. -func escapeCommentString(s string) string { - if strings.IndexAny(s, "&>") == -1 { - return s - } - var buf bytes.Buffer - escapeComment(&buf, s) - return buf.String() -} - -const escapedChars = "&'<>\"\r" - -func escape(w writer, s string) error { - i := strings.IndexAny(s, escapedChars) - for i != -1 { - if _, err := w.WriteString(s[:i]); err != nil { - return err - } - var esc string - switch s[i] { - case '&': - esc = "&amp;" - case '\'': - // "&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5. - esc = "&#39;" - case '<': - esc = "&lt;" - case '>': - esc = "&gt;" - case '"': - // "&#34;" is shorter than "&quot;". - esc = "&#34;" - case '\r': - esc = "&#13;" - default: - panic("unrecognized escape character") - } - s = s[i+1:] - if _, err := w.WriteString(esc); err != nil { - return err - } - i = strings.IndexAny(s, escapedChars) - } - _, err := w.WriteString(s) - return err -} - -// EscapeString escapes special characters like "<" to become "&lt;". It -// escapes only five such characters: <, >, &, ' and ". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func EscapeString(s string) string { - if strings.IndexAny(s, escapedChars) == -1 { - return s - } - var buf bytes.Buffer - escape(&buf, s) - return buf.String() -} - -// UnescapeString unescapes entities like "&lt;" to become "<". It unescapes a -// larger range of entities than EscapeString escapes. For example, "&aacute;" -// unescapes to "á", as does "&#225;" and "&xE1;". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func UnescapeString(s string) string { - for _, c := range s { - if c == '&' { - return string(unescape([]byte(s), false)) - } - } - return s -} diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go deleted file mode 100644 index e8515d8..0000000 --- a/vendor/golang.org/x/net/html/foreign.go +++ /dev/null @@ -1,221 +0,0 @@ -// 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 html - -import ( - "strings" -) - -func adjustAttributeNames(aa []Attribute, nameMap map[string]string) { - for i := range aa { - if newName, ok := nameMap[aa[i].Key]; ok { - aa[i].Key = newName - } - } -} - -func adjustForeignAttributes(aa []Attribute) { - for i, a := range aa { - if a.Key == "" || a.Key[0] != 'x' { - continue - } - switch a.Key { - case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show", - "xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink": - j := strings.Index(a.Key, ":") - aa[i].Namespace = a.Key[:j] - aa[i].Key = a.Key[j+1:] - } - } -} - -func htmlIntegrationPoint(n *Node) bool { - if n.Type != ElementNode { - return false - } - switch n.Namespace { - case "math": - if n.Data == "annotation-xml" { - for _, a := range n.Attr { - if a.Key == "encoding" { - if strings.EqualFold(a.Val, "text/html") || strings.EqualFold(a.Val, "application/xhtml+xml") { - return true - } - } - } - } - case "svg": - switch n.Data { - case "desc", "foreignObject", "title": - return true - } - } - return false -} - -func mathMLTextIntegrationPoint(n *Node) bool { - if n.Namespace != "math" { - return false - } - switch n.Data { - case "mi", "mo", "mn", "ms", "mtext": - return true - } - return false -} - -// Section 12.2.6.5. -var breakout = map[string]bool{ - "b": true, - "big": true, - "blockquote": true, - "body": true, - "br": true, - "center": true, - "code": true, - "dd": true, - "div": true, - "dl": true, - "dt": true, - "em": true, - "embed": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "hr": true, - "i": true, - "img": true, - "li": true, - "listing": true, - "menu": true, - "meta": true, - "nobr": true, - "ol": true, - "p": true, - "pre": true, - "ruby": true, - "s": true, - "small": true, - "span": true, - "strong": true, - "strike": true, - "sub": true, - "sup": true, - "table": true, - "tt": true, - "u": true, - "ul": true, - "var": true, -} - -// Section 12.2.6.5. -var svgTagNameAdjustments = map[string]string{ - "altglyph": "altGlyph", - "altglyphdef": "altGlyphDef", - "altglyphitem": "altGlyphItem", - "animatecolor": "animateColor", - "animatemotion": "animateMotion", - "animatetransform": "animateTransform", - "clippath": "clipPath", - "feblend": "feBlend", - "fecolormatrix": "feColorMatrix", - "fecomponenttransfer": "feComponentTransfer", - "fecomposite": "feComposite", - "feconvolvematrix": "feConvolveMatrix", - "fediffuselighting": "feDiffuseLighting", - "fedisplacementmap": "feDisplacementMap", - "fedistantlight": "feDistantLight", - "feflood": "feFlood", - "fefunca": "feFuncA", - "fefuncb": "feFuncB", - "fefuncg": "feFuncG", - "fefuncr": "feFuncR", - "fegaussianblur": "feGaussianBlur", - "feimage": "feImage", - "femerge": "feMerge", - "femergenode": "feMergeNode", - "femorphology": "feMorphology", - "feoffset": "feOffset", - "fepointlight": "fePointLight", - "fespecularlighting": "feSpecularLighting", - "fespotlight": "feSpotLight", - "fetile": "feTile", - "feturbulence": "feTurbulence", - "foreignobject": "foreignObject", - "glyphref": "glyphRef", - "lineargradient": "linearGradient", - "radialgradient": "radialGradient", - "textpath": "textPath", -} - -// Section 12.2.6.1 -var mathMLAttributeAdjustments = map[string]string{ - "definitionurl": "definitionURL", -} - -var svgAttributeAdjustments = map[string]string{ - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan", -} diff --git a/vendor/golang.org/x/net/html/iter.go b/vendor/golang.org/x/net/html/iter.go deleted file mode 100644 index 54be8fd..0000000 --- a/vendor/golang.org/x/net/html/iter.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.23 - -package html - -import "iter" - -// Ancestors returns an iterator over the ancestors of n, starting with n.Parent. -// -// Mutating a Node or its parents while iterating may have unexpected results. -func (n *Node) Ancestors() iter.Seq[*Node] { - _ = n.Parent // eager nil check - - return func(yield func(*Node) bool) { - for p := n.Parent; p != nil && yield(p); p = p.Parent { - } - } -} - -// ChildNodes returns an iterator over the immediate children of n, -// starting with n.FirstChild. -// -// Mutating a Node or its children while iterating may have unexpected results. -func (n *Node) ChildNodes() iter.Seq[*Node] { - _ = n.FirstChild // eager nil check - - return func(yield func(*Node) bool) { - for c := n.FirstChild; c != nil && yield(c); c = c.NextSibling { - } - } - -} - -// Descendants returns an iterator over all nodes recursively beneath -// n, excluding n itself. Nodes are visited in depth-first preorder. -// -// Mutating a Node or its descendants while iterating may have unexpected results. -func (n *Node) Descendants() iter.Seq[*Node] { - _ = n.FirstChild // eager nil check - - return func(yield func(*Node) bool) { - n.descendants(yield) - } -} - -func (n *Node) descendants(yield func(*Node) bool) bool { - for c := range n.ChildNodes() { - if !yield(c) || !c.descendants(yield) { - return false - } - } - return true -} diff --git a/vendor/golang.org/x/net/html/node.go b/vendor/golang.org/x/net/html/node.go deleted file mode 100644 index 77741a1..0000000 --- a/vendor/golang.org/x/net/html/node.go +++ /dev/null @@ -1,229 +0,0 @@ -// 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 html - -import ( - "golang.org/x/net/html/atom" -) - -// A NodeType is the type of a Node. -type NodeType uint32 - -const ( - ErrorNode NodeType = iota - TextNode - DocumentNode - ElementNode - CommentNode - DoctypeNode - // RawNode nodes are not returned by the parser, but can be part of the - // Node tree passed to func Render to insert raw HTML (without escaping). - // If so, this package makes no guarantee that the rendered HTML is secure - // (from e.g. Cross Site Scripting attacks) or well-formed. - RawNode - scopeMarkerNode -) - -// Section 12.2.4.3 says "The markers are inserted when entering applet, -// object, marquee, template, td, th, and caption elements, and are used -// to prevent formatting from "leaking" into applet, object, marquee, -// template, td, th, and caption elements". -var scopeMarker = Node{Type: scopeMarkerNode} - -// A Node consists of a NodeType and some Data (tag name for element nodes, -// content for text) and are part of a tree of Nodes. Element nodes may also -// have a Namespace and contain a slice of Attributes. Data is unescaped, so -// that it looks like "a<b" rather than "a&lt;b". For element nodes, DataAtom -// is the atom for Data, or zero if Data is not a known tag name. -// -// Node trees may be navigated using the link fields (Parent, -// FirstChild, and so on) or a range loop over iterators such as -// [Node.Descendants]. -// -// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace. -// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and -// "svg" is short for "http://www.w3.org/2000/svg". -type Node struct { - Parent, FirstChild, LastChild, PrevSibling, NextSibling *Node - - Type NodeType - DataAtom atom.Atom - Data string - Namespace string - Attr []Attribute -} - -// InsertBefore inserts newChild as a child of n, immediately before oldChild -// in the sequence of n's children. oldChild may be nil, in which case newChild -// is appended to the end of n's children. -// -// It will panic if newChild already has a parent or siblings. -func (n *Node) InsertBefore(newChild, oldChild *Node) { - if newChild.Parent != nil || newChild.PrevSibling != nil || newChild.NextSibling != nil { - panic("html: InsertBefore called for an attached child Node") - } - var prev, next *Node - if oldChild != nil { - prev, next = oldChild.PrevSibling, oldChild - } else { - prev = n.LastChild - } - if prev != nil { - prev.NextSibling = newChild - } else { - n.FirstChild = newChild - } - if next != nil { - next.PrevSibling = newChild - } else { - n.LastChild = newChild - } - newChild.Parent = n - newChild.PrevSibling = prev - newChild.NextSibling = next -} - -// AppendChild adds a node c as a child of n. -// -// It will panic if c already has a parent or siblings. -func (n *Node) AppendChild(c *Node) { - if c.Parent != nil || c.PrevSibling != nil || c.NextSibling != nil { - panic("html: AppendChild called for an attached child Node") - } - last := n.LastChild - if last != nil { - last.NextSibling = c - } else { - n.FirstChild = c - } - n.LastChild = c - c.Parent = n - c.PrevSibling = last -} - -// RemoveChild removes a node c that is a child of n. Afterwards, c will have -// no parent and no siblings. -// -// It will panic if c's parent is not n. -func (n *Node) RemoveChild(c *Node) { - if c.Parent != n { - panic("html: RemoveChild called for a non-child Node") - } - if n.FirstChild == c { - n.FirstChild = c.NextSibling - } - if c.NextSibling != nil { - c.NextSibling.PrevSibling = c.PrevSibling - } - if n.LastChild == c { - n.LastChild = c.PrevSibling - } - if c.PrevSibling != nil { - c.PrevSibling.NextSibling = c.NextSibling - } - c.Parent = nil - c.PrevSibling = nil - c.NextSibling = nil -} - -// reparentChildren reparents all of src's child nodes to dst. -func reparentChildren(dst, src *Node) { - for { - child := src.FirstChild - if child == nil { - break - } - src.RemoveChild(child) - dst.AppendChild(child) - } -} - -// clone returns a new node with the same type, data and attributes. -// The clone has no parent, no siblings and no children. -func (n *Node) clone() *Node { - m := &Node{ - Type: n.Type, - DataAtom: n.DataAtom, - Data: n.Data, - Attr: make([]Attribute, len(n.Attr)), - } - copy(m.Attr, n.Attr) - return m -} - -// nodeStack is a stack of nodes. -type nodeStack []*Node - -// pop pops the stack. It will panic if s is empty. -func (s *nodeStack) pop() *Node { - i := len(*s) - n := (*s)[i-1] - *s = (*s)[:i-1] - return n -} - -// top returns the most recently pushed node, or nil if s is empty. -func (s *nodeStack) top() *Node { - if i := len(*s); i > 0 { - return (*s)[i-1] - } - return nil -} - -// index returns the index of the top-most occurrence of n in the stack, or -1 -// if n is not present. -func (s *nodeStack) index(n *Node) int { - for i := len(*s) - 1; i >= 0; i-- { - if (*s)[i] == n { - return i - } - } - return -1 -} - -// contains returns whether a is within s. -func (s *nodeStack) contains(a atom.Atom) bool { - for _, n := range *s { - if n.DataAtom == a && n.Namespace == "" { - return true - } - } - return false -} - -// insert inserts a node at the given index. -func (s *nodeStack) insert(i int, n *Node) { - (*s) = append(*s, nil) - copy((*s)[i+1:], (*s)[i:]) - (*s)[i] = n -} - -// remove removes a node from the stack. It is a no-op if n is not present. -func (s *nodeStack) remove(n *Node) { - i := s.index(n) - if i == -1 { - return - } - copy((*s)[i:], (*s)[i+1:]) - j := len(*s) - 1 - (*s)[j] = nil - *s = (*s)[:j] -} - -type insertionModeStack []insertionMode - -func (s *insertionModeStack) pop() (im insertionMode) { - i := len(*s) - im = (*s)[i-1] - *s = (*s)[:i-1] - return im -} - -func (s *insertionModeStack) top() insertionMode { - if i := len(*s); i > 0 { - return (*s)[i-1] - } - return nil -} diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go deleted file mode 100644 index 518ee4c..0000000 --- a/vendor/golang.org/x/net/html/parse.go +++ /dev/null @@ -1,2464 +0,0 @@ -// 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 html - -import ( - "errors" - "fmt" - "io" - "strings" - - a "golang.org/x/net/html/atom" -) - -// A parser implements the HTML5 parsing algorithm: -// https://html.spec.whatwg.org/multipage/syntax.html#tree-construction -type parser struct { - // tokenizer provides the tokens for the parser. - tokenizer *Tokenizer - // tok is the most recently read token. - tok Token - // Self-closing tags like <hr/> are treated as start tags, except that - // hasSelfClosingToken is set while they are being processed. - hasSelfClosingToken bool - // doc is the document root element. - doc *Node - // The stack of open elements (section 12.2.4.2) and active formatting - // elements (section 12.2.4.3). - oe, afe nodeStack - // Element pointers (section 12.2.4.4). - head, form *Node - // Other parsing state flags (section 12.2.4.5). - scripting, framesetOK bool - // The stack of template insertion modes - templateStack insertionModeStack - // im is the current insertion mode. - im insertionMode - // originalIM is the insertion mode to go back to after completing a text - // or inTableText insertion mode. - originalIM insertionMode - // fosterParenting is whether new elements should be inserted according to - // the foster parenting rules (section 12.2.6.1). - fosterParenting bool - // quirks is whether the parser is operating in "quirks mode." - quirks bool - // fragment is whether the parser is parsing an HTML fragment. - fragment bool - // context is the context element when parsing an HTML fragment - // (section 12.4). - context *Node -} - -func (p *parser) top() *Node { - if n := p.oe.top(); n != nil { - return n - } - return p.doc -} - -// Stop tags for use in popUntil. These come from section 12.2.4.2. -var ( - defaultScopeStopTags = map[string][]a.Atom{ - "": {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object, a.Template}, - "math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext}, - "svg": {a.Desc, a.ForeignObject, a.Title}, - } -) - -type scope int - -const ( - defaultScope scope = iota - listItemScope - buttonScope - tableScope - tableRowScope - tableBodyScope - selectScope -) - -// popUntil pops the stack of open elements at the highest element whose tag -// is in matchTags, provided there is no higher element in the scope's stop -// tags (as defined in section 12.2.4.2). It returns whether or not there was -// such an element. If there was not, popUntil leaves the stack unchanged. -// -// For example, the set of stop tags for table scope is: "html", "table". If -// the stack was: -// ["html", "body", "font", "table", "b", "i", "u"] -// then popUntil(tableScope, "font") would return false, but -// popUntil(tableScope, "i") would return true and the stack would become: -// ["html", "body", "font", "table", "b"] -// -// If an element's tag is in both the stop tags and matchTags, then the stack -// will be popped and the function returns true (provided, of course, there was -// no higher element in the stack that was also in the stop tags). For example, -// popUntil(tableScope, "table") returns true and leaves: -// ["html", "body", "font"] -func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool { - if i := p.indexOfElementInScope(s, matchTags...); i != -1 { - p.oe = p.oe[:i] - return true - } - return false -} - -// indexOfElementInScope returns the index in p.oe of the highest element whose -// tag is in matchTags that is in scope. If no matching element is in scope, it -// returns -1. -func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - if p.oe[i].Namespace == "" { - for _, t := range matchTags { - if t == tagAtom { - return i - } - } - switch s { - case defaultScope: - // No-op. - case listItemScope: - if tagAtom == a.Ol || tagAtom == a.Ul { - return -1 - } - case buttonScope: - if tagAtom == a.Button { - return -1 - } - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table || tagAtom == a.Template { - return -1 - } - case selectScope: - if tagAtom != a.Optgroup && tagAtom != a.Option { - return -1 - } - default: - panic("unreachable") - } - } - switch s { - case defaultScope, listItemScope, buttonScope: - for _, t := range defaultScopeStopTags[p.oe[i].Namespace] { - if t == tagAtom { - return -1 - } - } - } - } - return -1 -} - -// elementInScope is like popUntil, except that it doesn't modify the stack of -// open elements. -func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool { - return p.indexOfElementInScope(s, matchTags...) != -1 -} - -// clearStackToContext pops elements off the stack of open elements until a -// scope-defined element is found. -func (p *parser) clearStackToContext(s scope) { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - switch s { - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table || tagAtom == a.Template { - p.oe = p.oe[:i+1] - return - } - case tableRowScope: - if tagAtom == a.Html || tagAtom == a.Tr || tagAtom == a.Template { - p.oe = p.oe[:i+1] - return - } - case tableBodyScope: - if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead || tagAtom == a.Template { - p.oe = p.oe[:i+1] - return - } - default: - panic("unreachable") - } - } -} - -// parseGenericRawTextElement implements the generic raw text element parsing -// algorithm defined in 12.2.6.2. -// https://html.spec.whatwg.org/multipage/parsing.html#parsing-elements-that-contain-only-text -// TODO: Since both RAWTEXT and RCDATA states are treated as tokenizer's part -// officially, need to make tokenizer consider both states. -func (p *parser) parseGenericRawTextElement() { - p.addElement() - p.originalIM = p.im - p.im = textIM -} - -// generateImpliedEndTags pops nodes off the stack of open elements as long as -// the top node has a tag name of dd, dt, li, optgroup, option, p, rb, rp, rt or rtc. -// If exceptions are specified, nodes with that name will not be popped off. -func (p *parser) generateImpliedEndTags(exceptions ...string) { - var i int -loop: - for i = len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if n.Type != ElementNode { - break - } - switch n.DataAtom { - case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc: - for _, except := range exceptions { - if n.Data == except { - break loop - } - } - continue - } - break - } - - p.oe = p.oe[:i+1] -} - -// addChild adds a child node n to the top element, and pushes n onto the stack -// of open elements if it is an element node. -func (p *parser) addChild(n *Node) { - if p.shouldFosterParent() { - p.fosterParent(n) - } else { - p.top().AppendChild(n) - } - - if n.Type == ElementNode { - p.oe = append(p.oe, n) - } -} - -// shouldFosterParent returns whether the next node to be added should be -// foster parented. -func (p *parser) shouldFosterParent() bool { - if p.fosterParenting { - switch p.top().DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - return true - } - } - return false -} - -// fosterParent adds a child node according to the foster parenting rules. -// Section 12.2.6.1, "foster parenting". -func (p *parser) fosterParent(n *Node) { - var table, parent, prev, template *Node - var i int - for i = len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].DataAtom == a.Table { - table = p.oe[i] - break - } - } - - var j int - for j = len(p.oe) - 1; j >= 0; j-- { - if p.oe[j].DataAtom == a.Template { - template = p.oe[j] - break - } - } - - if template != nil && (table == nil || j > i) { - template.AppendChild(n) - return - } - - if table == nil { - // The foster parent is the html element. - parent = p.oe[0] - } else { - parent = table.Parent - } - if parent == nil { - parent = p.oe[i-1] - } - - if table != nil { - prev = table.PrevSibling - } else { - prev = parent.LastChild - } - if prev != nil && prev.Type == TextNode && n.Type == TextNode { - prev.Data += n.Data - return - } - - parent.InsertBefore(n, table) -} - -// addText adds text to the preceding node if it is a text node, or else it -// calls addChild with a new text node. -func (p *parser) addText(text string) { - if text == "" { - return - } - - if p.shouldFosterParent() { - p.fosterParent(&Node{ - Type: TextNode, - Data: text, - }) - return - } - - t := p.top() - if n := t.LastChild; n != nil && n.Type == TextNode { - n.Data += text - return - } - p.addChild(&Node{ - Type: TextNode, - Data: text, - }) -} - -// addElement adds a child element based on the current token. -func (p *parser) addElement() { - p.addChild(&Node{ - Type: ElementNode, - DataAtom: p.tok.DataAtom, - Data: p.tok.Data, - Attr: p.tok.Attr, - }) -} - -// Section 12.2.4.3. -func (p *parser) addFormattingElement() { - tagAtom, attr := p.tok.DataAtom, p.tok.Attr - p.addElement() - - // Implement the Noah's Ark clause, but with three per family instead of two. - identicalElements := 0 -findIdenticalElements: - for i := len(p.afe) - 1; i >= 0; i-- { - n := p.afe[i] - if n.Type == scopeMarkerNode { - break - } - if n.Type != ElementNode { - continue - } - if n.Namespace != "" { - continue - } - if n.DataAtom != tagAtom { - continue - } - if len(n.Attr) != len(attr) { - continue - } - compareAttributes: - for _, t0 := range n.Attr { - for _, t1 := range attr { - if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val { - // Found a match for this attribute, continue with the next attribute. - continue compareAttributes - } - } - // If we get here, there is no attribute that matches a. - // Therefore the element is not identical to the new one. - continue findIdenticalElements - } - - identicalElements++ - if identicalElements >= 3 { - p.afe.remove(n) - } - } - - p.afe = append(p.afe, p.top()) -} - -// Section 12.2.4.3. -func (p *parser) clearActiveFormattingElements() { - for { - if n := p.afe.pop(); len(p.afe) == 0 || n.Type == scopeMarkerNode { - return - } - } -} - -// Section 12.2.4.3. -func (p *parser) reconstructActiveFormattingElements() { - n := p.afe.top() - if n == nil { - return - } - if n.Type == scopeMarkerNode || p.oe.index(n) != -1 { - return - } - i := len(p.afe) - 1 - for n.Type != scopeMarkerNode && p.oe.index(n) == -1 { - if i == 0 { - i = -1 - break - } - i-- - n = p.afe[i] - } - for { - i++ - clone := p.afe[i].clone() - p.addChild(clone) - p.afe[i] = clone - if i == len(p.afe)-1 { - break - } - } -} - -// Section 12.2.5. -func (p *parser) acknowledgeSelfClosingTag() { - p.hasSelfClosingToken = false -} - -// An insertion mode (section 12.2.4.1) is the state transition function from -// a particular state in the HTML5 parser's state machine. It updates the -// parser's fields depending on parser.tok (where ErrorToken means EOF). -// It returns whether the token was consumed. -type insertionMode func(*parser) bool - -// setOriginalIM sets the insertion mode to return to after completing a text or -// inTableText insertion mode. -// Section 12.2.4.1, "using the rules for". -func (p *parser) setOriginalIM() { - if p.originalIM != nil { - panic("html: bad parser state: originalIM was set twice") - } - p.originalIM = p.im -} - -// Section 12.2.4.1, "reset the insertion mode". -func (p *parser) resetInsertionMode() { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - last := i == 0 - if last && p.context != nil { - n = p.context - } - - switch n.DataAtom { - case a.Select: - if !last { - for ancestor, first := n, p.oe[0]; ancestor != first; { - ancestor = p.oe[p.oe.index(ancestor)-1] - switch ancestor.DataAtom { - case a.Template: - p.im = inSelectIM - return - case a.Table: - p.im = inSelectInTableIM - return - } - } - } - p.im = inSelectIM - case a.Td, a.Th: - // TODO: remove this divergence from the HTML5 spec. - // - // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668 - p.im = inCellIM - case a.Tr: - p.im = inRowIM - case a.Tbody, a.Thead, a.Tfoot: - p.im = inTableBodyIM - case a.Caption: - p.im = inCaptionIM - case a.Colgroup: - p.im = inColumnGroupIM - case a.Table: - p.im = inTableIM - case a.Template: - // TODO: remove this divergence from the HTML5 spec. - if n.Namespace != "" { - continue - } - p.im = p.templateStack.top() - case a.Head: - // TODO: remove this divergence from the HTML5 spec. - // - // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668 - p.im = inHeadIM - case a.Body: - p.im = inBodyIM - case a.Frameset: - p.im = inFramesetIM - case a.Html: - if p.head == nil { - p.im = beforeHeadIM - } else { - p.im = afterHeadIM - } - default: - if last { - p.im = inBodyIM - return - } - continue - } - return - } -} - -const whitespace = " \t\r\n\f" - -// Section 12.2.6.4.1. -func initialIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - n, quirks := parseDoctype(p.tok.Data) - p.doc.AppendChild(n) - p.quirks = quirks - p.im = beforeHTMLIM - return true - } - p.quirks = true - p.im = beforeHTMLIM - return false -} - -// Section 12.2.6.4.2. -func beforeHTMLIM(p *parser) bool { - switch p.tok.Type { - case DoctypeToken: - // Ignore the token. - return true - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - if p.tok.DataAtom == a.Html { - p.addElement() - p.im = beforeHeadIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false -} - -// Section 12.2.6.4.3. -func beforeHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Head: - p.addElement() - p.head = p.top() - p.im = inHeadIM - return true - case a.Html: - return inBodyIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.6.4.4. -func inHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - return true - case a.Noscript: - if p.scripting { - p.parseGenericRawTextElement() - return true - } - p.addElement() - p.im = inHeadNoscriptIM - // Don't let the tokenizer go into raw text mode when scripting is disabled. - p.tokenizer.NextIsNotRawText() - return true - case a.Script, a.Title: - p.addElement() - p.setOriginalIM() - p.im = textIM - return true - case a.Noframes, a.Style: - p.parseGenericRawTextElement() - return true - case a.Head: - // Ignore the token. - return true - case a.Template: - // TODO: remove this divergence from the HTML5 spec. - // - // We don't handle all of the corner cases when mixing foreign - // content (i.e. <math> or <svg>) with <template>. Without this - // early return, we can get into an infinite loop, possibly because - // of the "TODO... further divergence" a little below. - // - // As a workaround, if we are mixing foreign content and templates, - // just ignore the rest of the HTML. Foreign content is rare and a - // relatively old HTML feature. Templates are also rare and a - // relatively new HTML feature. Their combination is very rare. - for _, e := range p.oe { - if e.Namespace != "" { - p.im = ignoreTheRemainingTokens - return true - } - } - - p.addElement() - p.afe = append(p.afe, &scopeMarker) - p.framesetOK = false - p.im = inTemplateIM - p.templateStack = append(p.templateStack, inTemplateIM) - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head: - p.oe.pop() - p.im = afterHeadIM - return true - case a.Body, a.Html, a.Br: - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false - case a.Template: - if !p.oe.contains(a.Template) { - return true - } - // TODO: remove this further divergence from the HTML5 spec. - // - // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668 - p.generateImpliedEndTags() - for i := len(p.oe) - 1; i >= 0; i-- { - if n := p.oe[i]; n.Namespace == "" && n.DataAtom == a.Template { - p.oe = p.oe[:i] - break - } - } - p.clearActiveFormattingElements() - p.templateStack.pop() - p.resetInsertionMode() - return true - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.6.4.5. -func inHeadNoscriptIM(p *parser) bool { - switch p.tok.Type { - case DoctypeToken: - // Ignore the token. - return true - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Style: - return inHeadIM(p) - case a.Head: - // Ignore the token. - return true - case a.Noscript: - // Don't let the tokenizer go into raw text mode even when a <noscript> - // tag is in "in head noscript" insertion mode. - p.tokenizer.NextIsNotRawText() - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Noscript, a.Br: - default: - // Ignore the token. - return true - } - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) == 0 { - // It was all whitespace. - return inHeadIM(p) - } - case CommentToken: - return inHeadIM(p) - } - p.oe.pop() - if p.top().DataAtom != a.Head { - panic("html: the new current node will be a head element.") - } - p.im = inHeadIM - if p.tok.DataAtom == a.Noscript { - return true - } - return false -} - -// Section 12.2.6.4.6. -func afterHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Body: - p.addElement() - p.framesetOK = false - p.im = inBodyIM - return true - case a.Frameset: - p.addElement() - p.im = inFramesetIM - return true - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: - p.oe = append(p.oe, p.head) - defer p.oe.remove(p.head) - return inHeadIM(p) - case a.Head: - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Body, a.Html, a.Br: - // Drop down to creating an implied <body> tag. - case a.Template: - return inHeadIM(p) - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Body, a.Body.String()) - p.framesetOK = true - if p.tok.Type == ErrorToken { - // Stop parsing. - return true - } - return false -} - -// copyAttributes copies attributes of src not found on dst to dst. -func copyAttributes(dst *Node, src Token) { - if len(src.Attr) == 0 { - return - } - attr := map[string]string{} - for _, t := range dst.Attr { - attr[t.Key] = t.Val - } - for _, t := range src.Attr { - if _, ok := attr[t.Key]; !ok { - dst.Attr = append(dst.Attr, t) - attr[t.Key] = t.Val - } - } -} - -// Section 12.2.6.4.7. -func inBodyIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - d := p.tok.Data - switch n := p.oe.top(); n.DataAtom { - case a.Pre, a.Listing: - if n.FirstChild == nil { - // Ignore a newline at the start of a <pre> block. - if d != "" && d[0] == '\r' { - d = d[1:] - } - if d != "" && d[0] == '\n' { - d = d[1:] - } - } - } - d = strings.Replace(d, "\x00", "", -1) - if d == "" { - return true - } - p.reconstructActiveFormattingElements() - p.addText(d) - if p.framesetOK && strings.TrimLeft(d, whitespace) != "" { - // There were non-whitespace characters inserted. - p.framesetOK = false - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - if p.oe.contains(a.Template) { - return true - } - copyAttributes(p.oe[0], p.tok) - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: - return inHeadIM(p) - case a.Body: - if p.oe.contains(a.Template) { - return true - } - if len(p.oe) >= 2 { - body := p.oe[1] - if body.Type == ElementNode && body.DataAtom == a.Body { - p.framesetOK = false - copyAttributes(body, p.tok) - } - } - case a.Frameset: - if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body { - // Ignore the token. - return true - } - body := p.oe[1] - if body.Parent != nil { - body.Parent.RemoveChild(body) - } - p.oe = p.oe[:1] - p.addElement() - p.im = inFramesetIM - return true - case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Main, a.Menu, a.Nav, a.Ol, a.P, a.Search, a.Section, a.Summary, a.Ul: - p.popUntil(buttonScope, a.P) - p.addElement() - case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6: - p.popUntil(buttonScope, a.P) - switch n := p.top(); n.DataAtom { - case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6: - p.oe.pop() - } - p.addElement() - case a.Pre, a.Listing: - p.popUntil(buttonScope, a.P) - p.addElement() - // The newline, if any, will be dealt with by the TextToken case. - p.framesetOK = false - case a.Form: - if p.form != nil && !p.oe.contains(a.Template) { - // Ignore the token - return true - } - p.popUntil(buttonScope, a.P) - p.addElement() - if !p.oe.contains(a.Template) { - p.form = p.top() - } - case a.Li: - p.framesetOK = false - for i := len(p.oe) - 1; i >= 0; i-- { - node := p.oe[i] - switch node.DataAtom { - case a.Li: - p.oe = p.oe[:i] - case a.Address, a.Div, a.P: - continue - default: - if !isSpecialElement(node) { - continue - } - } - break - } - p.popUntil(buttonScope, a.P) - p.addElement() - case a.Dd, a.Dt: - p.framesetOK = false - for i := len(p.oe) - 1; i >= 0; i-- { - node := p.oe[i] - switch node.DataAtom { - case a.Dd, a.Dt: - p.oe = p.oe[:i] - case a.Address, a.Div, a.P: - continue - default: - if !isSpecialElement(node) { - continue - } - } - break - } - p.popUntil(buttonScope, a.P) - p.addElement() - case a.Plaintext: - p.popUntil(buttonScope, a.P) - p.addElement() - case a.Button: - p.popUntil(defaultScope, a.Button) - p.reconstructActiveFormattingElements() - p.addElement() - p.framesetOK = false - case a.A: - for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- { - if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A { - p.inBodyEndTagFormatting(a.A, "a") - p.oe.remove(n) - p.afe.remove(n) - break - } - } - p.reconstructActiveFormattingElements() - p.addFormattingElement() - case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U: - p.reconstructActiveFormattingElements() - p.addFormattingElement() - case a.Nobr: - p.reconstructActiveFormattingElements() - if p.elementInScope(defaultScope, a.Nobr) { - p.inBodyEndTagFormatting(a.Nobr, "nobr") - p.reconstructActiveFormattingElements() - } - p.addFormattingElement() - case a.Applet, a.Marquee, a.Object: - p.reconstructActiveFormattingElements() - p.addElement() - p.afe = append(p.afe, &scopeMarker) - p.framesetOK = false - case a.Table: - if !p.quirks { - p.popUntil(buttonScope, a.P) - } - p.addElement() - p.framesetOK = false - p.im = inTableIM - return true - case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr: - p.reconstructActiveFormattingElements() - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - if p.tok.DataAtom == a.Input { - for _, t := range p.tok.Attr { - if t.Key == "type" { - if strings.EqualFold(t.Val, "hidden") { - // Skip setting framesetOK = false - return true - } - } - } - } - p.framesetOK = false - case a.Param, a.Source, a.Track: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - case a.Hr: - p.popUntil(buttonScope, a.P) - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - p.framesetOK = false - case a.Image: - p.tok.DataAtom = a.Img - p.tok.Data = a.Img.String() - return false - case a.Textarea: - p.addElement() - p.setOriginalIM() - p.framesetOK = false - p.im = textIM - case a.Xmp: - p.popUntil(buttonScope, a.P) - p.reconstructActiveFormattingElements() - p.framesetOK = false - p.parseGenericRawTextElement() - case a.Iframe: - p.framesetOK = false - p.parseGenericRawTextElement() - case a.Noembed: - p.parseGenericRawTextElement() - case a.Noscript: - if p.scripting { - p.parseGenericRawTextElement() - return true - } - p.reconstructActiveFormattingElements() - p.addElement() - // Don't let the tokenizer go into raw text mode when scripting is disabled. - p.tokenizer.NextIsNotRawText() - case a.Select: - p.reconstructActiveFormattingElements() - p.addElement() - p.framesetOK = false - p.im = inSelectIM - return true - case a.Optgroup, a.Option: - if p.top().DataAtom == a.Option { - p.oe.pop() - } - p.reconstructActiveFormattingElements() - p.addElement() - case a.Rb, a.Rtc: - if p.elementInScope(defaultScope, a.Ruby) { - p.generateImpliedEndTags() - } - p.addElement() - case a.Rp, a.Rt: - if p.elementInScope(defaultScope, a.Ruby) { - p.generateImpliedEndTags("rtc") - } - p.addElement() - case a.Math, a.Svg: - p.reconstructActiveFormattingElements() - if p.tok.DataAtom == a.Math { - adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments) - } else { - adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments) - } - adjustForeignAttributes(p.tok.Attr) - p.addElement() - p.top().Namespace = p.tok.Data - if p.hasSelfClosingToken { - p.oe.pop() - p.acknowledgeSelfClosingTag() - } - return true - case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr: - // Ignore the token. - default: - p.reconstructActiveFormattingElements() - p.addElement() - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Body: - if p.elementInScope(defaultScope, a.Body) { - p.im = afterBodyIM - } - case a.Html: - if p.elementInScope(defaultScope, a.Body) { - p.parseImpliedToken(EndTagToken, a.Body, a.Body.String()) - return false - } - return true - case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Main, a.Menu, a.Nav, a.Ol, a.Pre, a.Search, a.Section, a.Summary, a.Ul: - p.popUntil(defaultScope, p.tok.DataAtom) - case a.Form: - if p.oe.contains(a.Template) { - i := p.indexOfElementInScope(defaultScope, a.Form) - if i == -1 { - // Ignore the token. - return true - } - p.generateImpliedEndTags() - if p.oe[i].DataAtom != a.Form { - // Ignore the token. - return true - } - p.popUntil(defaultScope, a.Form) - } else { - node := p.form - p.form = nil - i := p.indexOfElementInScope(defaultScope, a.Form) - if node == nil || i == -1 || p.oe[i] != node { - // Ignore the token. - return true - } - p.generateImpliedEndTags() - p.oe.remove(node) - } - case a.P: - if !p.elementInScope(buttonScope, a.P) { - p.parseImpliedToken(StartTagToken, a.P, a.P.String()) - } - p.popUntil(buttonScope, a.P) - case a.Li: - p.popUntil(listItemScope, a.Li) - case a.Dd, a.Dt: - p.popUntil(defaultScope, p.tok.DataAtom) - case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6: - p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6) - case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U: - p.inBodyEndTagFormatting(p.tok.DataAtom, p.tok.Data) - case a.Applet, a.Marquee, a.Object: - if p.popUntil(defaultScope, p.tok.DataAtom) { - p.clearActiveFormattingElements() - } - case a.Br: - p.tok.Type = StartTagToken - return false - case a.Template: - return inHeadIM(p) - default: - p.inBodyEndTagOther(p.tok.DataAtom, p.tok.Data) - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case ErrorToken: - // TODO: remove this divergence from the HTML5 spec. - if len(p.templateStack) > 0 { - p.im = inTemplateIM - return false - } - for _, e := range p.oe { - switch e.DataAtom { - case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th, - a.Thead, a.Tr, a.Body, a.Html: - default: - return true - } - } - } - - return true -} - -func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { - // This is the "adoption agency" algorithm, described at - // https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency - - // TODO: this is a fairly literal line-by-line translation of that algorithm. - // Once the code successfully parses the comprehensive test suite, we should - // refactor this code to be more idiomatic. - - // Steps 1-2 - if current := p.oe.top(); current.Data == tagName && p.afe.index(current) == -1 { - p.oe.pop() - return - } - - // Steps 3-5. The outer loop. - for i := 0; i < 8; i++ { - // Step 6. Find the formatting element. - var formattingElement *Node - for j := len(p.afe) - 1; j >= 0; j-- { - if p.afe[j].Type == scopeMarkerNode { - break - } - if p.afe[j].DataAtom == tagAtom { - formattingElement = p.afe[j] - break - } - } - if formattingElement == nil { - p.inBodyEndTagOther(tagAtom, tagName) - return - } - - // Step 7. Ignore the tag if formatting element is not in the stack of open elements. - feIndex := p.oe.index(formattingElement) - if feIndex == -1 { - p.afe.remove(formattingElement) - return - } - // Step 8. Ignore the tag if formatting element is not in the scope. - if !p.elementInScope(defaultScope, tagAtom) { - // Ignore the tag. - return - } - - // Step 9. This step is omitted because it's just a parse error but no need to return. - - // Steps 10-11. Find the furthest block. - var furthestBlock *Node - for _, e := range p.oe[feIndex:] { - if isSpecialElement(e) { - furthestBlock = e - break - } - } - if furthestBlock == nil { - e := p.oe.pop() - for e != formattingElement { - e = p.oe.pop() - } - p.afe.remove(e) - return - } - - // Steps 12-13. Find the common ancestor and bookmark node. - commonAncestor := p.oe[feIndex-1] - bookmark := p.afe.index(formattingElement) - - // Step 14. The inner loop. Find the lastNode to reparent. - lastNode := furthestBlock - node := furthestBlock - x := p.oe.index(node) - // Step 14.1. - j := 0 - for { - // Step 14.2. - j++ - // Step. 14.3. - x-- - node = p.oe[x] - // Step 14.4. Go to the next step if node is formatting element. - if node == formattingElement { - break - } - // Step 14.5. Remove node from the list of active formatting elements if - // inner loop counter is greater than three and node is in the list of - // active formatting elements. - if ni := p.afe.index(node); j > 3 && ni > -1 { - p.afe.remove(node) - // If any element of the list of active formatting elements is removed, - // we need to take care whether bookmark should be decremented or not. - // This is because the value of bookmark may exceed the size of the - // list by removing elements from the list. - if ni <= bookmark { - bookmark-- - } - continue - } - // Step 14.6. Continue the next inner loop if node is not in the list of - // active formatting elements. - if p.afe.index(node) == -1 { - p.oe.remove(node) - continue - } - // Step 14.7. - clone := node.clone() - p.afe[p.afe.index(node)] = clone - p.oe[p.oe.index(node)] = clone - node = clone - // Step 14.8. - if lastNode == furthestBlock { - bookmark = p.afe.index(node) + 1 - } - // Step 14.9. - if lastNode.Parent != nil { - lastNode.Parent.RemoveChild(lastNode) - } - node.AppendChild(lastNode) - // Step 14.10. - lastNode = node - } - - // Step 15. Reparent lastNode to the common ancestor, - // or for misnested table nodes, to the foster parent. - if lastNode.Parent != nil { - lastNode.Parent.RemoveChild(lastNode) - } - switch commonAncestor.DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - p.fosterParent(lastNode) - default: - commonAncestor.AppendChild(lastNode) - } - - // Steps 16-18. Reparent nodes from the furthest block's children - // to a clone of the formatting element. - clone := formattingElement.clone() - reparentChildren(clone, furthestBlock) - furthestBlock.AppendChild(clone) - - // Step 19. Fix up the list of active formatting elements. - if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark { - // Move the bookmark with the rest of the list. - bookmark-- - } - p.afe.remove(formattingElement) - p.afe.insert(bookmark, clone) - - // Step 20. Fix up the stack of open elements. - p.oe.remove(formattingElement) - p.oe.insert(p.oe.index(furthestBlock)+1, clone) - } -} - -// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM. -// "Any other end tag" handling from 12.2.6.5 The rules for parsing tokens in foreign content -// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign -func (p *parser) inBodyEndTagOther(tagAtom a.Atom, tagName string) { - for i := len(p.oe) - 1; i >= 0; i-- { - // Two element nodes have the same tag if they have the same Data (a - // string-typed field). As an optimization, for common HTML tags, each - // Data string is assigned a unique, non-zero DataAtom (a uint32-typed - // field), since integer comparison is faster than string comparison. - // Uncommon (custom) tags get a zero DataAtom. - // - // The if condition here is equivalent to (p.oe[i].Data == tagName). - if (p.oe[i].DataAtom == tagAtom) && - ((tagAtom != 0) || (p.oe[i].Data == tagName)) { - p.oe = p.oe[:i] - break - } - if isSpecialElement(p.oe[i]) { - break - } - } -} - -// Section 12.2.6.4.8. -func textIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - p.oe.pop() - case TextToken: - d := p.tok.Data - if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil { - // Ignore a newline at the start of a <textarea> block. - if d != "" && d[0] == '\r' { - d = d[1:] - } - if d != "" && d[0] == '\n' { - d = d[1:] - } - } - if d == "" { - return true - } - p.addText(d) - return true - case EndTagToken: - p.oe.pop() - } - p.im = p.originalIM - p.originalIM = nil - return p.tok.Type == EndTagToken -} - -// Section 12.2.6.4.9. -func inTableIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1) - switch p.oe.top().DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - if strings.Trim(p.tok.Data, whitespace) == "" { - p.addText(p.tok.Data) - return true - } - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Caption: - p.clearStackToContext(tableScope) - p.afe = append(p.afe, &scopeMarker) - p.addElement() - p.im = inCaptionIM - return true - case a.Colgroup: - p.clearStackToContext(tableScope) - p.addElement() - p.im = inColumnGroupIM - return true - case a.Col: - p.parseImpliedToken(StartTagToken, a.Colgroup, a.Colgroup.String()) - return false - case a.Tbody, a.Tfoot, a.Thead: - p.clearStackToContext(tableScope) - p.addElement() - p.im = inTableBodyIM - return true - case a.Td, a.Th, a.Tr: - p.parseImpliedToken(StartTagToken, a.Tbody, a.Tbody.String()) - return false - case a.Table: - if p.popUntil(tableScope, a.Table) { - p.resetInsertionMode() - return false - } - // Ignore the token. - return true - case a.Style, a.Script, a.Template: - return inHeadIM(p) - case a.Input: - for _, t := range p.tok.Attr { - if t.Key == "type" && strings.EqualFold(t.Val, "hidden") { - p.addElement() - p.oe.pop() - return true - } - } - // Otherwise drop down to the default action. - case a.Form: - if p.oe.contains(a.Template) || p.form != nil { - // Ignore the token. - return true - } - p.addElement() - p.form = p.oe.pop() - case a.Select: - p.reconstructActiveFormattingElements() - switch p.top().DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - p.fosterParenting = true - } - p.addElement() - p.fosterParenting = false - p.framesetOK = false - p.im = inSelectInTableIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Table: - if p.popUntil(tableScope, a.Table) { - p.resetInsertionMode() - return true - } - // Ignore the token. - return true - case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr: - // Ignore the token. - return true - case a.Template: - return inHeadIM(p) - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - case ErrorToken: - return inBodyIM(p) - } - - p.fosterParenting = true - defer func() { p.fosterParenting = false }() - - return inBodyIM(p) -} - -// Section 12.2.6.4.11. -func inCaptionIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken: - switch p.tok.DataAtom { - case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr: - if !p.popUntil(tableScope, a.Caption) { - // Ignore the token. - return true - } - p.clearActiveFormattingElements() - p.im = inTableIM - return false - case a.Select: - p.reconstructActiveFormattingElements() - p.addElement() - p.framesetOK = false - p.im = inSelectInTableIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Caption: - if p.popUntil(tableScope, a.Caption) { - p.clearActiveFormattingElements() - p.im = inTableIM - } - return true - case a.Table: - if !p.popUntil(tableScope, a.Caption) { - // Ignore the token. - return true - } - p.clearActiveFormattingElements() - p.im = inTableIM - return false - case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr: - // Ignore the token. - return true - } - } - return inBodyIM(p) -} - -// Section 12.2.6.4.12. -func inColumnGroupIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Col: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - return true - case a.Template: - return inHeadIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Colgroup: - if p.oe.top().DataAtom == a.Colgroup { - p.oe.pop() - p.im = inTableIM - } - return true - case a.Col: - // Ignore the token. - return true - case a.Template: - return inHeadIM(p) - } - case ErrorToken: - return inBodyIM(p) - } - if p.oe.top().DataAtom != a.Colgroup { - return true - } - p.oe.pop() - p.im = inTableIM - return false -} - -// Section 12.2.6.4.13. -func inTableBodyIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken: - switch p.tok.DataAtom { - case a.Tr: - p.clearStackToContext(tableBodyScope) - p.addElement() - p.im = inRowIM - return true - case a.Td, a.Th: - p.parseImpliedToken(StartTagToken, a.Tr, a.Tr.String()) - return false - case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead: - if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) { - p.im = inTableIM - return false - } - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Tbody, a.Tfoot, a.Thead: - if p.elementInScope(tableScope, p.tok.DataAtom) { - p.clearStackToContext(tableBodyScope) - p.oe.pop() - p.im = inTableIM - } - return true - case a.Table: - if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) { - p.im = inTableIM - return false - } - // Ignore the token. - return true - case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th, a.Tr: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - - return inTableIM(p) -} - -// Section 12.2.6.4.14. -func inRowIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken: - switch p.tok.DataAtom { - case a.Td, a.Th: - p.clearStackToContext(tableRowScope) - p.addElement() - p.afe = append(p.afe, &scopeMarker) - p.im = inCellIM - return true - case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr: - if p.popUntil(tableScope, a.Tr) { - p.im = inTableBodyIM - return false - } - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Tr: - if p.popUntil(tableScope, a.Tr) { - p.im = inTableBodyIM - return true - } - // Ignore the token. - return true - case a.Table: - if p.popUntil(tableScope, a.Tr) { - p.im = inTableBodyIM - return false - } - // Ignore the token. - return true - case a.Tbody, a.Tfoot, a.Thead: - if p.elementInScope(tableScope, p.tok.DataAtom) { - p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String()) - return false - } - // Ignore the token. - return true - case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th: - // Ignore the token. - return true - } - } - - return inTableIM(p) -} - -// Section 12.2.6.4.15. -func inCellIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken: - switch p.tok.DataAtom { - case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr: - if p.popUntil(tableScope, a.Td, a.Th) { - // Close the cell and reprocess. - p.clearActiveFormattingElements() - p.im = inRowIM - return false - } - // Ignore the token. - return true - case a.Select: - p.reconstructActiveFormattingElements() - p.addElement() - p.framesetOK = false - p.im = inSelectInTableIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Td, a.Th: - if !p.popUntil(tableScope, p.tok.DataAtom) { - // Ignore the token. - return true - } - p.clearActiveFormattingElements() - p.im = inRowIM - return true - case a.Body, a.Caption, a.Col, a.Colgroup, a.Html: - // Ignore the token. - return true - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - if !p.elementInScope(tableScope, p.tok.DataAtom) { - // Ignore the token. - return true - } - // Close the cell and reprocess. - if p.popUntil(tableScope, a.Td, a.Th) { - p.clearActiveFormattingElements() - } - p.im = inRowIM - return false - } - } - return inBodyIM(p) -} - -// Section 12.2.6.4.16. -func inSelectIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.addText(strings.Replace(p.tok.Data, "\x00", "", -1)) - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Option: - if p.top().DataAtom == a.Option { - p.oe.pop() - } - p.addElement() - case a.Optgroup: - if p.top().DataAtom == a.Option { - p.oe.pop() - } - if p.top().DataAtom == a.Optgroup { - p.oe.pop() - } - p.addElement() - case a.Select: - if !p.popUntil(selectScope, a.Select) { - // Ignore the token. - return true - } - p.resetInsertionMode() - case a.Input, a.Keygen, a.Textarea: - if p.elementInScope(selectScope, a.Select) { - p.parseImpliedToken(EndTagToken, a.Select, a.Select.String()) - return false - } - // In order to properly ignore <textarea>, we need to change the tokenizer mode. - p.tokenizer.NextIsNotRawText() - // Ignore the token. - return true - case a.Script, a.Template: - return inHeadIM(p) - case a.Iframe, a.Noembed, a.Noframes, a.Noscript, a.Plaintext, a.Style, a.Title, a.Xmp: - // Don't let the tokenizer go into raw text mode when there are raw tags - // to be ignored. These tags should be ignored from the tokenizer - // properly. - p.tokenizer.NextIsNotRawText() - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Option: - if p.top().DataAtom == a.Option { - p.oe.pop() - } - case a.Optgroup: - i := len(p.oe) - 1 - if p.oe[i].DataAtom == a.Option { - i-- - } - if p.oe[i].DataAtom == a.Optgroup { - p.oe = p.oe[:i] - } - case a.Select: - if !p.popUntil(selectScope, a.Select) { - // Ignore the token. - return true - } - p.resetInsertionMode() - case a.Template: - return inHeadIM(p) - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case DoctypeToken: - // Ignore the token. - return true - case ErrorToken: - return inBodyIM(p) - } - - return true -} - -// Section 12.2.6.4.17. -func inSelectInTableIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken, EndTagToken: - switch p.tok.DataAtom { - case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th: - if p.tok.Type == EndTagToken && !p.elementInScope(tableScope, p.tok.DataAtom) { - // Ignore the token. - return true - } - // This is like p.popUntil(selectScope, a.Select), but it also - // matches <math select>, not just <select>. Matching the MathML - // tag is arguably incorrect (conceptually), but it mimics what - // Chromium does. - for i := len(p.oe) - 1; i >= 0; i-- { - if n := p.oe[i]; n.DataAtom == a.Select { - p.oe = p.oe[:i] - break - } - } - p.resetInsertionMode() - return false - } - } - return inSelectIM(p) -} - -// Section 12.2.6.4.18. -func inTemplateIM(p *parser) bool { - switch p.tok.Type { - case TextToken, CommentToken, DoctypeToken: - return inBodyIM(p) - case StartTagToken: - switch p.tok.DataAtom { - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: - return inHeadIM(p) - case a.Caption, a.Colgroup, a.Tbody, a.Tfoot, a.Thead: - p.templateStack.pop() - p.templateStack = append(p.templateStack, inTableIM) - p.im = inTableIM - return false - case a.Col: - p.templateStack.pop() - p.templateStack = append(p.templateStack, inColumnGroupIM) - p.im = inColumnGroupIM - return false - case a.Tr: - p.templateStack.pop() - p.templateStack = append(p.templateStack, inTableBodyIM) - p.im = inTableBodyIM - return false - case a.Td, a.Th: - p.templateStack.pop() - p.templateStack = append(p.templateStack, inRowIM) - p.im = inRowIM - return false - default: - p.templateStack.pop() - p.templateStack = append(p.templateStack, inBodyIM) - p.im = inBodyIM - return false - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Template: - return inHeadIM(p) - default: - // Ignore the token. - return true - } - case ErrorToken: - if !p.oe.contains(a.Template) { - // Ignore the token. - return true - } - // TODO: remove this divergence from the HTML5 spec. - // - // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668 - p.generateImpliedEndTags() - for i := len(p.oe) - 1; i >= 0; i-- { - if n := p.oe[i]; n.Namespace == "" && n.DataAtom == a.Template { - p.oe = p.oe[:i] - break - } - } - p.clearActiveFormattingElements() - p.templateStack.pop() - p.resetInsertionMode() - return false - } - return false -} - -// Section 12.2.6.4.19. -func afterBodyIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // Stop parsing. - return true - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) == 0 { - // It was all whitespace. - return inBodyIM(p) - } - case StartTagToken: - if p.tok.DataAtom == a.Html { - return inBodyIM(p) - } - case EndTagToken: - if p.tok.DataAtom == a.Html { - if !p.fragment { - p.im = afterAfterBodyIM - } - return true - } - case CommentToken: - // The comment is attached to the <html> element. - if len(p.oe) < 1 || p.oe[0].DataAtom != a.Html { - panic("html: bad parser state: <html> element not found, in the after-body insertion mode") - } - p.oe[0].AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.im = inBodyIM - return false -} - -// Section 12.2.6.4.20. -func inFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.addText(s) - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Frameset: - p.addElement() - case a.Frame: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - case a.Noframes: - return inHeadIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Frameset: - if p.oe.top().DataAtom != a.Html { - p.oe.pop() - if p.oe.top().DataAtom != a.Frameset { - p.im = afterFramesetIM - return true - } - } - } - default: - // Ignore the token. - } - return true -} - -// Section 12.2.6.4.21. -func afterFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.addText(s) - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Noframes: - return inHeadIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Html: - p.im = afterAfterFramesetIM - return true - } - default: - // Ignore the token. - } - return true -} - -// Section 12.2.6.4.22. -func afterAfterBodyIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // Stop parsing. - return true - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) == 0 { - // It was all whitespace. - return inBodyIM(p) - } - case StartTagToken: - if p.tok.DataAtom == a.Html { - return inBodyIM(p) - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - return inBodyIM(p) - } - p.im = inBodyIM - return false -} - -// Section 12.2.6.4.23. -func afterAfterFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.tok.Data = s - return inBodyIM(p) - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Noframes: - return inHeadIM(p) - } - case DoctypeToken: - return inBodyIM(p) - default: - // Ignore the token. - } - return true -} - -func ignoreTheRemainingTokens(p *parser) bool { - return true -} - -const whitespaceOrNUL = whitespace + "\x00" - -// Section 12.2.6.5 -func parseForeignContent(p *parser) bool { - switch p.tok.Type { - case TextToken: - if p.framesetOK { - p.framesetOK = strings.TrimLeft(p.tok.Data, whitespaceOrNUL) == "" - } - p.tok.Data = strings.Replace(p.tok.Data, "\x00", "\ufffd", -1) - p.addText(p.tok.Data) - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case StartTagToken: - if !p.fragment { - b := breakout[p.tok.Data] - if p.tok.DataAtom == a.Font { - loop: - for _, attr := range p.tok.Attr { - switch attr.Key { - case "color", "face", "size": - b = true - break loop - } - } - } - if b { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) { - p.oe = p.oe[:i+1] - break - } - } - return false - } - } - current := p.adjustedCurrentNode() - switch current.Namespace { - case "math": - adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments) - case "svg": - // Adjust SVG tag names. The tokenizer lower-cases tag names, but - // SVG wants e.g. "foreignObject" with a capital second "O". - if x := svgTagNameAdjustments[p.tok.Data]; x != "" { - p.tok.DataAtom = a.Lookup([]byte(x)) - p.tok.Data = x - } - adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments) - default: - panic("html: bad parser state: unexpected namespace") - } - adjustForeignAttributes(p.tok.Attr) - namespace := current.Namespace - p.addElement() - p.top().Namespace = namespace - if namespace != "" { - // Don't let the tokenizer go into raw text mode in foreign content - // (e.g. in an SVG <title> tag). - p.tokenizer.NextIsNotRawText() - } - if p.hasSelfClosingToken { - p.oe.pop() - p.acknowledgeSelfClosingTag() - } - case EndTagToken: - for i := len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Namespace == "" { - return p.im(p) - } - if strings.EqualFold(p.oe[i].Data, p.tok.Data) { - p.oe = p.oe[:i] - break - } - } - return true - default: - // Ignore the token. - } - return true -} - -// Section 12.2.4.2. -func (p *parser) adjustedCurrentNode() *Node { - if len(p.oe) == 1 && p.fragment && p.context != nil { - return p.context - } - return p.oe.top() -} - -// Section 12.2.6. -func (p *parser) inForeignContent() bool { - if len(p.oe) == 0 { - return false - } - n := p.adjustedCurrentNode() - if n.Namespace == "" { - return false - } - if mathMLTextIntegrationPoint(n) { - if p.tok.Type == StartTagToken && p.tok.DataAtom != a.Mglyph && p.tok.DataAtom != a.Malignmark { - return false - } - if p.tok.Type == TextToken { - return false - } - } - if n.Namespace == "math" && n.DataAtom == a.AnnotationXml && p.tok.Type == StartTagToken && p.tok.DataAtom == a.Svg { - return false - } - if htmlIntegrationPoint(n) && (p.tok.Type == StartTagToken || p.tok.Type == TextToken) { - return false - } - if p.tok.Type == ErrorToken { - return false - } - return true -} - -// parseImpliedToken parses a token as though it had appeared in the parser's -// input. -func (p *parser) parseImpliedToken(t TokenType, dataAtom a.Atom, data string) { - realToken, selfClosing := p.tok, p.hasSelfClosingToken - p.tok = Token{ - Type: t, - DataAtom: dataAtom, - Data: data, - } - p.hasSelfClosingToken = false - p.parseCurrentToken() - p.tok, p.hasSelfClosingToken = realToken, selfClosing -} - -// parseCurrentToken runs the current token through the parsing routines -// until it is consumed. -func (p *parser) parseCurrentToken() { - if p.tok.Type == SelfClosingTagToken { - p.hasSelfClosingToken = true - p.tok.Type = StartTagToken - } - - consumed := false - for !consumed { - if p.inForeignContent() { - consumed = parseForeignContent(p) - } else { - consumed = p.im(p) - } - } - - if p.hasSelfClosingToken { - // This is a parse error, but ignore it. - p.hasSelfClosingToken = false - } -} - -func (p *parser) parse() error { - // Iterate until EOF. Any other error will cause an early return. - var err error - for err != io.EOF { - // CDATA sections are allowed only in foreign content. - n := p.oe.top() - p.tokenizer.AllowCDATA(n != nil && n.Namespace != "") - // Read and parse the next token. - p.tokenizer.Next() - p.tok = p.tokenizer.Token() - if p.tok.Type == ErrorToken { - err = p.tokenizer.Err() - if err != nil && err != io.EOF { - return err - } - } - p.parseCurrentToken() - } - return nil -} - -// Parse returns the parse tree for the HTML from the given Reader. -// -// It implements the HTML5 parsing algorithm -// (https://html.spec.whatwg.org/multipage/syntax.html#tree-construction), -// which is very complicated. The resultant tree can contain implicitly created -// nodes that have no explicit <tag> listed in r's data, and nodes' parents can -// differ from the nesting implied by a naive processing of start and end -// <tag>s. Conversely, explicit <tag>s in r's data can be silently dropped, -// with no corresponding node in the resulting tree. -// -// The input is assumed to be UTF-8 encoded. -func Parse(r io.Reader) (*Node, error) { - return ParseWithOptions(r) -} - -// ParseFragment parses a fragment of HTML and returns the nodes that were -// found. If the fragment is the InnerHTML for an existing element, pass that -// element in context. -// -// It has the same intricacies as Parse. -func ParseFragment(r io.Reader, context *Node) ([]*Node, error) { - return ParseFragmentWithOptions(r, context) -} - -// ParseOption configures a parser. -type ParseOption func(p *parser) - -// ParseOptionEnableScripting configures the scripting flag. -// https://html.spec.whatwg.org/multipage/webappapis.html#enabling-and-disabling-scripting -// -// By default, scripting is enabled. -func ParseOptionEnableScripting(enable bool) ParseOption { - return func(p *parser) { - p.scripting = enable - } -} - -// ParseWithOptions is like Parse, with options. -func ParseWithOptions(r io.Reader, opts ...ParseOption) (*Node, error) { - p := &parser{ - tokenizer: NewTokenizer(r), - doc: &Node{ - Type: DocumentNode, - }, - scripting: true, - framesetOK: true, - im: initialIM, - } - - for _, f := range opts { - f(p) - } - - if err := p.parse(); err != nil { - return nil, err - } - return p.doc, nil -} - -// ParseFragmentWithOptions is like ParseFragment, with options. -func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) ([]*Node, error) { - contextTag := "" - if context != nil { - if context.Type != ElementNode { - return nil, errors.New("html: ParseFragment of non-element Node") - } - // The next check isn't just context.DataAtom.String() == context.Data because - // it is valid to pass an element whose tag isn't a known atom. For example, - // DataAtom == 0 and Data = "tagfromthefuture" is perfectly consistent. - if context.DataAtom != a.Lookup([]byte(context.Data)) { - return nil, fmt.Errorf("html: inconsistent Node: DataAtom=%q, Data=%q", context.DataAtom, context.Data) - } - contextTag = context.DataAtom.String() - } - p := &parser{ - doc: &Node{ - Type: DocumentNode, - }, - scripting: true, - fragment: true, - context: context, - } - if context != nil && context.Namespace != "" { - p.tokenizer = NewTokenizer(r) - } else { - p.tokenizer = NewTokenizerFragment(r, contextTag) - } - - for _, f := range opts { - f(p) - } - - root := &Node{ - Type: ElementNode, - DataAtom: a.Html, - Data: a.Html.String(), - } - p.doc.AppendChild(root) - p.oe = nodeStack{root} - if context != nil && context.DataAtom == a.Template { - p.templateStack = append(p.templateStack, inTemplateIM) - } - p.resetInsertionMode() - - for n := context; n != nil; n = n.Parent { - if n.Type == ElementNode && n.DataAtom == a.Form { - p.form = n - break - } - } - - if err := p.parse(); err != nil { - return nil, err - } - - parent := p.doc - if context != nil { - parent = root - } - - var result []*Node - for c := parent.FirstChild; c != nil; { - next := c.NextSibling - parent.RemoveChild(c) - result = append(result, c) - c = next - } - return result, nil -} diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go deleted file mode 100644 index e8c1233..0000000 --- a/vendor/golang.org/x/net/html/render.go +++ /dev/null @@ -1,293 +0,0 @@ -// 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 html - -import ( - "bufio" - "errors" - "fmt" - "io" - "strings" -) - -type writer interface { - io.Writer - io.ByteWriter - WriteString(string) (int, error) -} - -// Render renders the parse tree n to the given writer. -// -// Rendering is done on a 'best effort' basis: calling Parse on the output of -// Render will always result in something similar to the original tree, but it -// is not necessarily an exact clone unless the original tree was 'well-formed'. -// 'Well-formed' is not easily specified; the HTML5 specification is -// complicated. -// -// Calling Parse on arbitrary input typically results in a 'well-formed' parse -// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree. -// For example, in a 'well-formed' parse tree, no <a> element is a child of -// another <a> element: parsing "<a><a>" results in two sibling elements. -// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a -// <table> element: parsing "<p><table><a>" results in a <p> with two sibling -// children; the <a> is reparented to the <table>'s parent. However, calling -// Parse on "<a><table><a>" does not return an error, but the result has an <a> -// element with an <a> child, and is therefore not 'well-formed'. -// -// Programmatically constructed trees are typically also 'well-formed', but it -// is possible to construct a tree that looks innocuous but, when rendered and -// re-parsed, results in a different tree. A simple example is that a solitary -// text node would become a tree containing <html>, <head> and <body> elements. -// Another example is that the programmatic equivalent of "a<head>b</head>c" -// becomes "<html><head><head/><body>abc</body></html>". -func Render(w io.Writer, n *Node) error { - if x, ok := w.(writer); ok { - return render(x, n) - } - buf := bufio.NewWriter(w) - if err := render(buf, n); err != nil { - return err - } - return buf.Flush() -} - -// plaintextAbort is returned from render1 when a <plaintext> element -// has been rendered. No more end tags should be rendered after that. -var plaintextAbort = errors.New("html: internal error (plaintext abort)") - -func render(w writer, n *Node) error { - err := render1(w, n) - if err == plaintextAbort { - err = nil - } - return err -} - -func render1(w writer, n *Node) error { - // Render non-element nodes; these are the easy cases. - switch n.Type { - case ErrorNode: - return errors.New("html: cannot render an ErrorNode node") - case TextNode: - return escape(w, n.Data) - case DocumentNode: - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := render1(w, c); err != nil { - return err - } - } - return nil - case ElementNode: - // No-op. - case CommentNode: - if _, err := w.WriteString("<!--"); err != nil { - return err - } - if err := escapeComment(w, n.Data); err != nil { - return err - } - if _, err := w.WriteString("-->"); err != nil { - return err - } - return nil - case DoctypeNode: - if _, err := w.WriteString("<!DOCTYPE "); err != nil { - return err - } - if err := escape(w, n.Data); err != nil { - return err - } - if n.Attr != nil { - var p, s string - for _, a := range n.Attr { - switch a.Key { - case "public": - p = a.Val - case "system": - s = a.Val - } - } - if p != "" { - if _, err := w.WriteString(" PUBLIC "); err != nil { - return err - } - if err := writeQuoted(w, p); err != nil { - return err - } - if s != "" { - if err := w.WriteByte(' '); err != nil { - return err - } - if err := writeQuoted(w, s); err != nil { - return err - } - } - } else if s != "" { - if _, err := w.WriteString(" SYSTEM "); err != nil { - return err - } - if err := writeQuoted(w, s); err != nil { - return err - } - } - } - return w.WriteByte('>') - case RawNode: - _, err := w.WriteString(n.Data) - return err - default: - return errors.New("html: unknown node type") - } - - // Render the <xxx> opening tag. - if err := w.WriteByte('<'); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - for _, a := range n.Attr { - if err := w.WriteByte(' '); err != nil { - return err - } - if a.Namespace != "" { - if _, err := w.WriteString(a.Namespace); err != nil { - return err - } - if err := w.WriteByte(':'); err != nil { - return err - } - } - if _, err := w.WriteString(a.Key); err != nil { - return err - } - if _, err := w.WriteString(`="`); err != nil { - return err - } - if err := escape(w, a.Val); err != nil { - return err - } - if err := w.WriteByte('"'); err != nil { - return err - } - } - if voidElements[n.Data] { - if n.FirstChild != nil { - return fmt.Errorf("html: void element <%s> has child nodes", n.Data) - } - _, err := w.WriteString("/>") - return err - } - if err := w.WriteByte('>'); err != nil { - return err - } - - // Add initial newline where there is danger of a newline beging ignored. - if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") { - switch n.Data { - case "pre", "listing", "textarea": - if err := w.WriteByte('\n'); err != nil { - return err - } - } - } - - // Render any child nodes - if childTextNodesAreLiteral(n) { - for c := n.FirstChild; c != nil; c = c.NextSibling { - if c.Type == TextNode { - if _, err := w.WriteString(c.Data); err != nil { - return err - } - } else { - if err := render1(w, c); err != nil { - return err - } - } - } - if n.Data == "plaintext" { - // Don't render anything else. <plaintext> must be the - // last element in the file, with no closing tag. - return plaintextAbort - } - } else { - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := render1(w, c); err != nil { - return err - } - } - } - - // Render the </xxx> closing tag. - if _, err := w.WriteString("</"); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - return w.WriteByte('>') -} - -func childTextNodesAreLiteral(n *Node) bool { - // Per WHATWG HTML 13.3, if the parent of the current node is a style, - // script, xmp, iframe, noembed, noframes, or plaintext element, and the - // current node is a text node, append the value of the node's data - // literally. The specification is not explicit about it, but we only - // enforce this if we are in the HTML namespace (i.e. when the namespace is - // ""). - // NOTE: we also always include noscript elements, although the - // specification states that they should only be rendered as such if - // scripting is enabled for the node (which is not something we track). - if n.Namespace != "" { - return false - } - switch n.Data { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": - return true - default: - return false - } -} - -// writeQuoted writes s to w surrounded by quotes. Normally it will use double -// quotes, but if s contains a double quote, it will use single quotes. -// It is used for writing the identifiers in a doctype declaration. -// In valid HTML, they can't contain both types of quotes. -func writeQuoted(w writer, s string) error { - var q byte = '"' - if strings.Contains(s, `"`) { - q = '\'' - } - if err := w.WriteByte(q); err != nil { - return err - } - if _, err := w.WriteString(s); err != nil { - return err - } - if err := w.WriteByte(q); err != nil { - return err - } - return nil -} - -// Section 12.1.2, "Elements", gives this list of void elements. Void elements -// are those that can't have any contents. -var voidElements = map[string]bool{ - "area": true, - "base": true, - "br": true, - "col": true, - "embed": true, - "hr": true, - "img": true, - "input": true, - "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility. - "link": true, - "meta": true, - "param": true, - "source": true, - "track": true, - "wbr": true, -} diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go deleted file mode 100644 index 6598c1f..0000000 --- a/vendor/golang.org/x/net/html/token.go +++ /dev/null @@ -1,1286 +0,0 @@ -// 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 html - -import ( - "bytes" - "errors" - "io" - "strconv" - "strings" - - "golang.org/x/net/html/atom" -) - -// A TokenType is the type of a Token. -type TokenType uint32 - -const ( - // ErrorToken means that an error occurred during tokenization. - ErrorToken TokenType = iota - // TextToken means a text node. - TextToken - // A StartTagToken looks like <a>. - StartTagToken - // An EndTagToken looks like </a>. - EndTagToken - // A SelfClosingTagToken tag looks like <br/>. - SelfClosingTagToken - // A CommentToken looks like <!--x-->. - CommentToken - // A DoctypeToken looks like <!DOCTYPE x> - DoctypeToken -) - -// ErrBufferExceeded means that the buffering limit was exceeded. -var ErrBufferExceeded = errors.New("max buffer exceeded") - -// String returns a string representation of the TokenType. -func (t TokenType) String() string { - switch t { - case ErrorToken: - return "Error" - case TextToken: - return "Text" - case StartTagToken: - return "StartTag" - case EndTagToken: - return "EndTag" - case SelfClosingTagToken: - return "SelfClosingTag" - case CommentToken: - return "Comment" - case DoctypeToken: - return "Doctype" - } - return "Invalid(" + strconv.Itoa(int(t)) + ")" -} - -// An Attribute is an attribute namespace-key-value triple. Namespace is -// non-empty for foreign attributes like xlink, Key is alphabetic (and hence -// does not contain escapable characters like '&', '<' or '>'), and Val is -// unescaped (it looks like "a<b" rather than "a&lt;b"). -// -// Namespace is only used by the parser, not the tokenizer. -type Attribute struct { - Namespace, Key, Val string -} - -// A Token consists of a TokenType and some Data (tag name for start and end -// tags, content for text, comments and doctypes). A tag Token may also contain -// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b" -// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or -// zero if Data is not a known tag name. -type Token struct { - Type TokenType - DataAtom atom.Atom - Data string - Attr []Attribute -} - -// tagString returns a string representation of a tag Token's Data and Attr. -func (t Token) tagString() string { - if len(t.Attr) == 0 { - return t.Data - } - buf := bytes.NewBufferString(t.Data) - for _, a := range t.Attr { - buf.WriteByte(' ') - buf.WriteString(a.Key) - buf.WriteString(`="`) - escape(buf, a.Val) - buf.WriteByte('"') - } - return buf.String() -} - -// String returns a string representation of the Token. -func (t Token) String() string { - switch t.Type { - case ErrorToken: - return "" - case TextToken: - return EscapeString(t.Data) - case StartTagToken: - return "<" + t.tagString() + ">" - case EndTagToken: - return "</" + t.tagString() + ">" - case SelfClosingTagToken: - return "<" + t.tagString() + "/>" - case CommentToken: - return "<!--" + escapeCommentString(t.Data) + "-->" - case DoctypeToken: - return "<!DOCTYPE " + EscapeString(t.Data) + ">" - } - return "Invalid(" + strconv.Itoa(int(t.Type)) + ")" -} - -// span is a range of bytes in a Tokenizer's buffer. The start is inclusive, -// the end is exclusive. -type span struct { - start, end int -} - -// A Tokenizer returns a stream of HTML Tokens. -type Tokenizer struct { - // r is the source of the HTML text. - r io.Reader - // tt is the TokenType of the current token. - tt TokenType - // err is the first error encountered during tokenization. It is possible - // for tt != Error && err != nil to hold: this means that Next returned a - // valid token but the subsequent Next call will return an error token. - // For example, if the HTML text input was just "plain", then the first - // Next call would set z.err to io.EOF but return a TextToken, and all - // subsequent Next calls would return an ErrorToken. - // err is never reset. Once it becomes non-nil, it stays non-nil. - err error - // readErr is the error returned by the io.Reader r. It is separate from - // err because it is valid for an io.Reader to return (n int, err1 error) - // such that n > 0 && err1 != nil, and callers should always process the - // n > 0 bytes before considering the error err1. - readErr error - // buf[raw.start:raw.end] holds the raw bytes of the current token. - // buf[raw.end:] is buffered input that will yield future tokens. - raw span - buf []byte - // maxBuf limits the data buffered in buf. A value of 0 means unlimited. - maxBuf int - // buf[data.start:data.end] holds the raw bytes of the current token's data: - // a text token's text, a tag token's tag name, etc. - data span - // pendingAttr is the attribute key and value currently being tokenized. - // When complete, pendingAttr is pushed onto attr. nAttrReturned is - // incremented on each call to TagAttr. - pendingAttr [2]span - attr [][2]span - nAttrReturned int - // rawTag is the "script" in "</script>" that closes the next token. If - // non-empty, the subsequent call to Next will return a raw or RCDATA text - // token: one that treats "<p>" as text instead of an element. - // rawTag's contents are lower-cased. - rawTag string - // textIsRaw is whether the current text token's data is not escaped. - textIsRaw bool - // convertNUL is whether NUL bytes in the current token's data should - // be converted into \ufffd replacement characters. - convertNUL bool - // allowCDATA is whether CDATA sections are allowed in the current context. - allowCDATA bool -} - -// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as -// the text "foo". The default value is false, which means to recognize it as -// a bogus comment "<!-- [CDATA[foo]] -->" instead. -// -// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and -// only if tokenizing foreign content, such as MathML and SVG. However, -// tracking foreign-contentness is difficult to do purely in the tokenizer, -// as opposed to the parser, due to HTML integration points: an <svg> element -// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to- -// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the -// responsibility of the user of a tokenizer to call AllowCDATA as appropriate. -// In practice, if using the tokenizer without caring whether MathML or SVG -// CDATA is text or comments, such as tokenizing HTML to find all the anchor -// text, it is acceptable to ignore this responsibility. -func (z *Tokenizer) AllowCDATA(allowCDATA bool) { - z.allowCDATA = allowCDATA -} - -// NextIsNotRawText instructs the tokenizer that the next token should not be -// considered as 'raw text'. Some elements, such as script and title elements, -// normally require the next token after the opening tag to be 'raw text' that -// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>" -// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and -// an end tag token for "</title>". There are no distinct start tag or end tag -// tokens for the "<b>" and "</b>". -// -// This tokenizer implementation will generally look for raw text at the right -// times. Strictly speaking, an HTML5 compliant tokenizer should not look for -// raw text if in foreign content: <title> generally needs raw text, but a -// <title> inside an <svg> does not. Another example is that a <textarea> -// generally needs raw text, but a <textarea> is not allowed as an immediate -// child of a <select>; in normal parsing, a <textarea> implies </select>, but -// one cannot close the implicit element when parsing a <select>'s InnerHTML. -// Similarly to AllowCDATA, tracking the correct moment to override raw-text- -// ness is difficult to do purely in the tokenizer, as opposed to the parser. -// For strict compliance with the HTML5 tokenization algorithm, it is the -// responsibility of the user of a tokenizer to call NextIsNotRawText as -// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this -// responsibility for basic usage. -// -// Note that this 'raw text' concept is different from the one offered by the -// Tokenizer.Raw method. -func (z *Tokenizer) NextIsNotRawText() { - z.rawTag = "" -} - -// Err returns the error associated with the most recent ErrorToken token. -// This is typically io.EOF, meaning the end of tokenization. -func (z *Tokenizer) Err() error { - if z.tt != ErrorToken { - return nil - } - return z.err -} - -// readByte returns the next byte from the input stream, doing a buffered read -// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte -// slice that holds all the bytes read so far for the current token. -// It sets z.err if the underlying reader returns an error. -// Pre-condition: z.err == nil. -func (z *Tokenizer) readByte() byte { - if z.raw.end >= len(z.buf) { - // Our buffer is exhausted and we have to read from z.r. Check if the - // previous read resulted in an error. - if z.readErr != nil { - z.err = z.readErr - return 0 - } - // We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length - // z.raw.end - z.raw.start is more than half the capacity of z.buf, then we - // allocate a new buffer before the copy. - c := cap(z.buf) - d := z.raw.end - z.raw.start - var buf1 []byte - if 2*d > c { - buf1 = make([]byte, d, 2*c) - } else { - buf1 = z.buf[:d] - } - copy(buf1, z.buf[z.raw.start:z.raw.end]) - if x := z.raw.start; x != 0 { - // Adjust the data/attr spans to refer to the same contents after the copy. - z.data.start -= x - z.data.end -= x - z.pendingAttr[0].start -= x - z.pendingAttr[0].end -= x - z.pendingAttr[1].start -= x - z.pendingAttr[1].end -= x - for i := range z.attr { - z.attr[i][0].start -= x - z.attr[i][0].end -= x - z.attr[i][1].start -= x - z.attr[i][1].end -= x - } - } - z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d] - // Now that we have copied the live bytes to the start of the buffer, - // we read from z.r into the remainder. - var n int - n, z.readErr = readAtLeastOneByte(z.r, buf1[d:cap(buf1)]) - if n == 0 { - z.err = z.readErr - return 0 - } - z.buf = buf1[:d+n] - } - x := z.buf[z.raw.end] - z.raw.end++ - if z.maxBuf > 0 && z.raw.end-z.raw.start >= z.maxBuf { - z.err = ErrBufferExceeded - return 0 - } - return x -} - -// Buffered returns a slice containing data buffered but not yet tokenized. -func (z *Tokenizer) Buffered() []byte { - return z.buf[z.raw.end:] -} - -// readAtLeastOneByte wraps an io.Reader so that reading cannot return (0, nil). -// It returns io.ErrNoProgress if the underlying r.Read method returns (0, nil) -// too many times in succession. -func readAtLeastOneByte(r io.Reader, b []byte) (int, error) { - for i := 0; i < 100; i++ { - if n, err := r.Read(b); n != 0 || err != nil { - return n, err - } - } - return 0, io.ErrNoProgress -} - -// skipWhiteSpace skips past any white space. -func (z *Tokenizer) skipWhiteSpace() { - if z.err != nil { - return - } - for { - c := z.readByte() - if z.err != nil { - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - // No-op. - default: - z.raw.end-- - return - } - } -} - -// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and -// is typically something like "script" or "textarea". -func (z *Tokenizer) readRawOrRCDATA() { - if z.rawTag == "script" { - z.readScript() - z.textIsRaw = true - z.rawTag = "" - return - } -loop: - for { - c := z.readByte() - if z.err != nil { - break loop - } - if c != '<' { - continue loop - } - c = z.readByte() - if z.err != nil { - break loop - } - if c != '/' { - z.raw.end-- - continue loop - } - if z.readRawEndTag() || z.err != nil { - break loop - } - } - z.data.end = z.raw.end - // A textarea's or title's RCDATA can contain escaped entities. - z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title" - z.rawTag = "" -} - -// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag. -// If it succeeds, it backs up the input position to reconsume the tag and -// returns true. Otherwise it returns false. The opening "</" has already been -// consumed. -func (z *Tokenizer) readRawEndTag() bool { - for i := 0; i < len(z.rawTag); i++ { - c := z.readByte() - if z.err != nil { - return false - } - if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') { - z.raw.end-- - return false - } - } - c := z.readByte() - if z.err != nil { - return false - } - switch c { - case ' ', '\n', '\r', '\t', '\f', '/', '>': - // The 3 is 2 for the leading "</" plus 1 for the trailing character c. - z.raw.end -= 3 + len(z.rawTag) - return true - } - z.raw.end-- - return false -} - -// readScript reads until the next </script> tag, following the byzantine -// rules for escaping/hiding the closing tag. -func (z *Tokenizer) readScript() { - defer func() { - z.data.end = z.raw.end - }() - var c byte - -scriptData: - c = z.readByte() - if z.err != nil { - return - } - if c == '<' { - goto scriptDataLessThanSign - } - goto scriptData - -scriptDataLessThanSign: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '/': - goto scriptDataEndTagOpen - case '!': - goto scriptDataEscapeStart - } - z.raw.end-- - goto scriptData - -scriptDataEndTagOpen: - if z.readRawEndTag() || z.err != nil { - return - } - goto scriptData - -scriptDataEscapeStart: - c = z.readByte() - if z.err != nil { - return - } - if c == '-' { - goto scriptDataEscapeStartDash - } - z.raw.end-- - goto scriptData - -scriptDataEscapeStartDash: - c = z.readByte() - if z.err != nil { - return - } - if c == '-' { - goto scriptDataEscapedDashDash - } - z.raw.end-- - goto scriptData - -scriptDataEscaped: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataEscapedDash - case '<': - goto scriptDataEscapedLessThanSign - } - goto scriptDataEscaped - -scriptDataEscapedDash: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataEscapedDashDash - case '<': - goto scriptDataEscapedLessThanSign - } - goto scriptDataEscaped - -scriptDataEscapedDashDash: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataEscapedDashDash - case '<': - goto scriptDataEscapedLessThanSign - case '>': - goto scriptData - } - goto scriptDataEscaped - -scriptDataEscapedLessThanSign: - c = z.readByte() - if z.err != nil { - return - } - if c == '/' { - goto scriptDataEscapedEndTagOpen - } - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' { - goto scriptDataDoubleEscapeStart - } - z.raw.end-- - goto scriptData - -scriptDataEscapedEndTagOpen: - if z.readRawEndTag() || z.err != nil { - return - } - goto scriptDataEscaped - -scriptDataDoubleEscapeStart: - z.raw.end-- - for i := 0; i < len("script"); i++ { - c = z.readByte() - if z.err != nil { - return - } - if c != "script"[i] && c != "SCRIPT"[i] { - z.raw.end-- - goto scriptDataEscaped - } - } - c = z.readByte() - if z.err != nil { - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f', '/', '>': - goto scriptDataDoubleEscaped - } - z.raw.end-- - goto scriptDataEscaped - -scriptDataDoubleEscaped: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataDoubleEscapedDash - case '<': - goto scriptDataDoubleEscapedLessThanSign - } - goto scriptDataDoubleEscaped - -scriptDataDoubleEscapedDash: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataDoubleEscapedDashDash - case '<': - goto scriptDataDoubleEscapedLessThanSign - } - goto scriptDataDoubleEscaped - -scriptDataDoubleEscapedDashDash: - c = z.readByte() - if z.err != nil { - return - } - switch c { - case '-': - goto scriptDataDoubleEscapedDashDash - case '<': - goto scriptDataDoubleEscapedLessThanSign - case '>': - goto scriptData - } - goto scriptDataDoubleEscaped - -scriptDataDoubleEscapedLessThanSign: - c = z.readByte() - if z.err != nil { - return - } - if c == '/' { - goto scriptDataDoubleEscapeEnd - } - z.raw.end-- - goto scriptDataDoubleEscaped - -scriptDataDoubleEscapeEnd: - if z.readRawEndTag() { - z.raw.end += len("</script>") - goto scriptDataEscaped - } - if z.err != nil { - return - } - goto scriptDataDoubleEscaped -} - -// readComment reads the next comment token starting with "<!--". The opening -// "<!--" has already been consumed. -func (z *Tokenizer) readComment() { - // When modifying this function, consider manually increasing the - // maxSuffixLen constant in func TestComments, from 6 to e.g. 9 or more. - // That increase should only be temporary, not committed, as it - // exponentially affects the test running time. - - z.data.start = z.raw.end - defer func() { - if z.data.end < z.data.start { - // It's a comment with no data, like <!-->. - z.data.end = z.data.start - } - }() - - var dashCount int - beginning := true - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.calculateAbruptCommentDataEnd() - return - } - switch c { - case '-': - dashCount++ - continue - case '>': - if dashCount >= 2 || beginning { - z.data.end = z.raw.end - len("-->") - return - } - case '!': - if dashCount >= 2 { - c = z.readByte() - if z.err != nil { - z.data.end = z.calculateAbruptCommentDataEnd() - return - } else if c == '>' { - z.data.end = z.raw.end - len("--!>") - return - } else if c == '-' { - dashCount = 1 - beginning = false - continue - } - } - } - dashCount = 0 - beginning = false - } -} - -func (z *Tokenizer) calculateAbruptCommentDataEnd() int { - raw := z.Raw() - const prefixLen = len("<!--") - if len(raw) >= prefixLen { - raw = raw[prefixLen:] - if hasSuffix(raw, "--!") { - return z.raw.end - 3 - } else if hasSuffix(raw, "--") { - return z.raw.end - 2 - } else if hasSuffix(raw, "-") { - return z.raw.end - 1 - } - } - return z.raw.end -} - -func hasSuffix(b []byte, suffix string) bool { - if len(b) < len(suffix) { - return false - } - b = b[len(b)-len(suffix):] - for i := range b { - if b[i] != suffix[i] { - return false - } - } - return true -} - -// readUntilCloseAngle reads until the next ">". -func (z *Tokenizer) readUntilCloseAngle() { - z.data.start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return - } - if c == '>' { - z.data.end = z.raw.end - len(">") - return - } - } -} - -// readMarkupDeclaration reads the next token starting with "<!". It might be -// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or -// "<!a bogus comment". The opening "<!" has already been consumed. -func (z *Tokenizer) readMarkupDeclaration() TokenType { - z.data.start = z.raw.end - var c [2]byte - for i := 0; i < 2; i++ { - c[i] = z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return CommentToken - } - } - if c[0] == '-' && c[1] == '-' { - z.readComment() - return CommentToken - } - z.raw.end -= 2 - if z.readDoctype() { - return DoctypeToken - } - if z.allowCDATA && z.readCDATA() { - z.convertNUL = true - return TextToken - } - // It's a bogus comment. - z.readUntilCloseAngle() - return CommentToken -} - -// readDoctype attempts to read a doctype declaration and returns true if -// successful. The opening "<!" has already been consumed. -func (z *Tokenizer) readDoctype() bool { - const s = "DOCTYPE" - for i := 0; i < len(s); i++ { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return false - } - if c != s[i] && c != s[i]+('a'-'A') { - // Back up to read the fragment of "DOCTYPE" again. - z.raw.end = z.data.start - return false - } - } - if z.skipWhiteSpace(); z.err != nil { - z.data.start = z.raw.end - z.data.end = z.raw.end - return true - } - z.readUntilCloseAngle() - return true -} - -// readCDATA attempts to read a CDATA section and returns true if -// successful. The opening "<!" has already been consumed. -func (z *Tokenizer) readCDATA() bool { - const s = "[CDATA[" - for i := 0; i < len(s); i++ { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return false - } - if c != s[i] { - // Back up to read the fragment of "[CDATA[" again. - z.raw.end = z.data.start - return false - } - } - z.data.start = z.raw.end - brackets := 0 - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return true - } - switch c { - case ']': - brackets++ - case '>': - if brackets >= 2 { - z.data.end = z.raw.end - len("]]>") - return true - } - brackets = 0 - default: - brackets = 0 - } - } -} - -// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end] -// case-insensitively matches any element of ss. -func (z *Tokenizer) startTagIn(ss ...string) bool { -loop: - for _, s := range ss { - if z.data.end-z.data.start != len(s) { - continue loop - } - for i := 0; i < len(s); i++ { - c := z.buf[z.data.start+i] - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - if c != s[i] { - continue loop - } - } - return true - } - return false -} - -// readStartTag reads the next start tag token. The opening "<a" has already -// been consumed, where 'a' means anything in [A-Za-z]. -func (z *Tokenizer) readStartTag() TokenType { - z.readTag(true) - if z.err != nil { - return ErrorToken - } - // Several tags flag the tokenizer's next token as raw. - c, raw := z.buf[z.data.start], false - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - switch c { - case 'i': - raw = z.startTagIn("iframe") - case 'n': - raw = z.startTagIn("noembed", "noframes", "noscript") - case 'p': - raw = z.startTagIn("plaintext") - case 's': - raw = z.startTagIn("script", "style") - case 't': - raw = z.startTagIn("textarea", "title") - case 'x': - raw = z.startTagIn("xmp") - } - if raw { - z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end])) - } - // Look for a self-closing token (e.g. <br/>). - // - // Originally, we did this by just checking that the last character of the - // tag (ignoring the closing bracket) was a solidus (/) character, but this - // is not always accurate. - // - // We need to be careful that we don't misinterpret a non-self-closing tag - // as self-closing, as can happen if the tag contains unquoted attribute - // values (i.e. <p a=/>). - // - // To avoid this, we check that the last non-bracket character of the tag - // (z.raw.end-2) isn't the same character as the last non-quote character of - // the last attribute of the tag (z.pendingAttr[1].end-1), if the tag has - // attributes. - nAttrs := len(z.attr) - if z.err == nil && z.buf[z.raw.end-2] == '/' && (nAttrs == 0 || z.raw.end-2 != z.attr[nAttrs-1][1].end-1) { - return SelfClosingTagToken - } - return StartTagToken -} - -// readTag reads the next tag token and its attributes. If saveAttr, those -// attributes are saved in z.attr, otherwise z.attr is set to an empty slice. -// The opening "<a" or "</a" has already been consumed, where 'a' means anything -// in [A-Za-z]. -func (z *Tokenizer) readTag(saveAttr bool) { - z.attr = z.attr[:0] - z.nAttrReturned = 0 - // Read the tag name and attribute key/value pairs. - z.readTagName() - if z.skipWhiteSpace(); z.err != nil { - return - } - for { - c := z.readByte() - if z.err != nil || c == '>' { - break - } - z.raw.end-- - z.readTagAttrKey() - z.readTagAttrVal() - // Save pendingAttr if saveAttr and that attribute has a non-empty key. - if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end { - z.attr = append(z.attr, z.pendingAttr) - } - if z.skipWhiteSpace(); z.err != nil { - break - } - } -} - -// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end) -// is positioned such that the first byte of the tag name (the "d" in "<div") -// has already been consumed. -func (z *Tokenizer) readTagName() { - z.data.start = z.raw.end - 1 - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - z.data.end = z.raw.end - 1 - return - case '/', '>': - z.raw.end-- - z.data.end = z.raw.end - return - } - } -} - -// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>". -// Precondition: z.err == nil. -func (z *Tokenizer) readTagAttrKey() { - z.pendingAttr[0].start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[0].end = z.raw.end - return - } - switch c { - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name - // begins, we treat it as a character in the attribute name and continue. - continue - } - fallthrough - case ' ', '\n', '\r', '\t', '\f', '/', '>': - // WHATWG 13.2.5.33 Attribute name state - // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return - } - } -} - -// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>". -func (z *Tokenizer) readTagAttrVal() { - z.pendingAttr[1].start = z.raw.end - z.pendingAttr[1].end = z.raw.end - if z.skipWhiteSpace(); z.err != nil { - return - } - c := z.readByte() - if z.err != nil { - return - } - if c == '/' { - // WHATWG 13.2.5.34 After attribute name state - // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. - return - } - if c != '=' { - z.raw.end-- - return - } - if z.skipWhiteSpace(); z.err != nil { - return - } - quote := z.readByte() - if z.err != nil { - return - } - switch quote { - case '>': - z.raw.end-- - return - - case '\'', '"': - z.pendingAttr[1].start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[1].end = z.raw.end - return - } - if c == quote { - z.pendingAttr[1].end = z.raw.end - 1 - return - } - } - - default: - z.pendingAttr[1].start = z.raw.end - 1 - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[1].end = z.raw.end - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - z.pendingAttr[1].end = z.raw.end - 1 - return - case '>': - z.raw.end-- - z.pendingAttr[1].end = z.raw.end - return - } - } - } -} - -// Next scans the next token and returns its type. -func (z *Tokenizer) Next() TokenType { - z.raw.start = z.raw.end - z.data.start = z.raw.end - z.data.end = z.raw.end - if z.err != nil { - z.tt = ErrorToken - return z.tt - } - if z.rawTag != "" { - if z.rawTag == "plaintext" { - // Read everything up to EOF. - for z.err == nil { - z.readByte() - } - z.data.end = z.raw.end - z.textIsRaw = true - } else { - z.readRawOrRCDATA() - } - if z.data.end > z.data.start { - z.tt = TextToken - z.convertNUL = true - return z.tt - } - } - z.textIsRaw = false - z.convertNUL = false - -loop: - for { - c := z.readByte() - if z.err != nil { - break loop - } - if c != '<' { - continue loop - } - - // Check if the '<' we have just read is part of a tag, comment - // or doctype. If not, it's part of the accumulated text token. - c = z.readByte() - if z.err != nil { - break loop - } - var tokenType TokenType - switch { - case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z': - tokenType = StartTagToken - case c == '/': - tokenType = EndTagToken - case c == '!' || c == '?': - // We use CommentToken to mean any of "<!--actual comments-->", - // "<!DOCTYPE declarations>" and "<?xml processing instructions?>". - tokenType = CommentToken - default: - // Reconsume the current character. - z.raw.end-- - continue - } - - // We have a non-text token, but we might have accumulated some text - // before that. If so, we return the text first, and return the non- - // text token on the subsequent call to Next. - if x := z.raw.end - len("<a"); z.raw.start < x { - z.raw.end = x - z.data.end = x - z.tt = TextToken - return z.tt - } - switch tokenType { - case StartTagToken: - z.tt = z.readStartTag() - return z.tt - case EndTagToken: - c = z.readByte() - if z.err != nil { - break loop - } - if c == '>' { - // "</>" does not generate a token at all. Generate an empty comment - // to allow passthrough clients to pick up the data using Raw. - // Reset the tokenizer state and start again. - z.tt = CommentToken - return z.tt - } - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' { - z.readTag(false) - if z.err != nil { - z.tt = ErrorToken - } else { - z.tt = EndTagToken - } - return z.tt - } - z.raw.end-- - z.readUntilCloseAngle() - z.tt = CommentToken - return z.tt - case CommentToken: - if c == '!' { - z.tt = z.readMarkupDeclaration() - return z.tt - } - z.raw.end-- - z.readUntilCloseAngle() - z.tt = CommentToken - return z.tt - } - } - if z.raw.start < z.raw.end { - z.data.end = z.raw.end - z.tt = TextToken - return z.tt - } - z.tt = ErrorToken - return z.tt -} - -// Raw returns the unmodified text of the current token. Calling Next, Token, -// Text, TagName or TagAttr may change the contents of the returned slice. -// -// The token stream's raw bytes partition the byte stream (up until an -// ErrorToken). There are no overlaps or gaps between two consecutive token's -// raw bytes. One implication is that the byte offset of the current token is -// the sum of the lengths of all previous tokens' raw bytes. -func (z *Tokenizer) Raw() []byte { - return z.buf[z.raw.start:z.raw.end] -} - -// convertNewlines converts "\r" and "\r\n" in s to "\n". -// The conversion happens in place, but the resulting slice may be shorter. -func convertNewlines(s []byte) []byte { - for i, c := range s { - if c != '\r' { - continue - } - - src := i + 1 - if src >= len(s) || s[src] != '\n' { - s[i] = '\n' - continue - } - - dst := i - for src < len(s) { - if s[src] == '\r' { - if src+1 < len(s) && s[src+1] == '\n' { - src++ - } - s[dst] = '\n' - } else { - s[dst] = s[src] - } - src++ - dst++ - } - return s[:dst] - } - return s -} - -var ( - nul = []byte("\x00") - replacement = []byte("\ufffd") -) - -// Text returns the unescaped text of a text, comment or doctype token. The -// contents of the returned slice may change on the next call to Next. -func (z *Tokenizer) Text() []byte { - switch z.tt { - case TextToken, CommentToken, DoctypeToken: - s := z.buf[z.data.start:z.data.end] - z.data.start = z.raw.end - z.data.end = z.raw.end - s = convertNewlines(s) - if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) { - s = bytes.Replace(s, nul, replacement, -1) - } - if !z.textIsRaw { - s = unescape(s, false) - } - return s - } - return nil -} - -// TagName returns the lower-cased name of a tag token (the `img` out of -// `<IMG SRC="foo">`) and whether the tag has attributes. -// The contents of the returned slice may change on the next call to Next. -func (z *Tokenizer) TagName() (name []byte, hasAttr bool) { - if z.data.start < z.data.end { - switch z.tt { - case StartTagToken, EndTagToken, SelfClosingTagToken: - s := z.buf[z.data.start:z.data.end] - z.data.start = z.raw.end - z.data.end = z.raw.end - return lower(s), z.nAttrReturned < len(z.attr) - } - } - return nil, false -} - -// TagAttr returns the lower-cased key and unescaped value of the next unparsed -// attribute for the current tag token and whether there are more attributes. -// The contents of the returned slices may change on the next call to Next. -func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) { - if z.nAttrReturned < len(z.attr) { - switch z.tt { - case StartTagToken, SelfClosingTagToken: - x := z.attr[z.nAttrReturned] - z.nAttrReturned++ - key = z.buf[x[0].start:x[0].end] - val = z.buf[x[1].start:x[1].end] - return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr) - } - } - return nil, nil, false -} - -// Token returns the current Token. The result's Data and Attr values remain -// valid after subsequent Next calls. -func (z *Tokenizer) Token() Token { - t := Token{Type: z.tt} - switch z.tt { - case TextToken, CommentToken, DoctypeToken: - t.Data = string(z.Text()) - case StartTagToken, SelfClosingTagToken, EndTagToken: - name, moreAttr := z.TagName() - for moreAttr { - var key, val []byte - key, val, moreAttr = z.TagAttr() - t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)}) - } - if a := atom.Lookup(name); a != 0 { - t.DataAtom, t.Data = a, a.String() - } else { - t.DataAtom, t.Data = 0, string(name) - } - } - return t -} - -// SetMaxBuf sets a limit on the amount of data buffered during tokenization. -// A value of 0 means unlimited. -func (z *Tokenizer) SetMaxBuf(n int) { - z.maxBuf = n -} - -// NewTokenizer returns a new HTML Tokenizer for the given Reader. -// The input is assumed to be UTF-8 encoded. -func NewTokenizer(r io.Reader) *Tokenizer { - return NewTokenizerFragment(r, "") -} - -// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for -// tokenizing an existing element's InnerHTML fragment. contextTag is that -// element's tag, such as "div" or "iframe". -// -// For example, how the InnerHTML "a<b" is tokenized depends on whether it is -// for a <p> tag or a <script> tag. -// -// The input is assumed to be UTF-8 encoded. -func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer { - z := &Tokenizer{ - r: r, - buf: make([]byte, 0, 4096), - } - if contextTag != "" { - switch s := strings.ToLower(contextTag); s { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp": - z.rawTag = s - } - } - return z -} diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/sync/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/sync/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go deleted file mode 100644 index 1d8cffa..0000000 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package errgroup provides synchronization, error propagation, and Context -// cancelation for groups of goroutines working on subtasks of a common task. -// -// [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks -// returning errors. -package errgroup - -import ( - "context" - "fmt" - "sync" -) - -type token struct{} - -// A Group is a collection of goroutines working on subtasks that are part of -// the same overall task. A Group should not be reused for different tasks. -// -// A zero Group is valid, has no limit on the number of active goroutines, -// and does not cancel on error. -type Group struct { - cancel func(error) - - wg sync.WaitGroup - - sem chan token - - errOnce sync.Once - err error -} - -func (g *Group) done() { - if g.sem != nil { - <-g.sem - } - g.wg.Done() -} - -// WithContext returns a new Group and an associated Context derived from ctx. -// -// The derived Context is canceled the first time a function passed to Go -// returns a non-nil error or the first time Wait returns, whichever occurs -// first. -func WithContext(ctx context.Context) (*Group, context.Context) { - ctx, cancel := context.WithCancelCause(ctx) - return &Group{cancel: cancel}, ctx -} - -// Wait blocks until all function calls from the Go method have returned, then -// returns the first non-nil error (if any) from them. -func (g *Group) Wait() error { - g.wg.Wait() - if g.cancel != nil { - g.cancel(g.err) - } - return g.err -} - -// Go calls the given function in a new goroutine. -// -// The first call to Go must happen before a Wait. -// It blocks until the new goroutine can be added without the number of -// goroutines in the group exceeding the configured limit. -// -// The first goroutine in the group that returns a non-nil error will -// cancel the associated Context, if any. The error will be returned -// by Wait. -func (g *Group) Go(f func() error) { - if g.sem != nil { - g.sem <- token{} - } - - g.wg.Add(1) - go func() { - defer g.done() - - // It is tempting to propagate panics from f() - // up to the goroutine that calls Wait, but - // it creates more problems than it solves: - // - it delays panics arbitrarily, - // making bugs harder to detect; - // - it turns f's panic stack into a mere value, - // hiding it from crash-monitoring tools; - // - it risks deadlocks that hide the panic entirely, - // if f's panic leaves the program in a state - // that prevents the Wait call from being reached. - // See #53757, #74275, #74304, #74306. - - if err := f(); err != nil { - g.errOnce.Do(func() { - g.err = err - if g.cancel != nil { - g.cancel(g.err) - } - }) - } - }() -} - -// TryGo calls the given function in a new goroutine only if the number of -// active goroutines in the group is currently below the configured limit. -// -// The return value reports whether the goroutine was started. -func (g *Group) TryGo(f func() error) bool { - if g.sem != nil { - select { - case g.sem <- token{}: - // Note: this allows barging iff channels in general allow barging. - default: - return false - } - } - - g.wg.Add(1) - go func() { - defer g.done() - - if err := f(); err != nil { - g.errOnce.Do(func() { - g.err = err - if g.cancel != nil { - g.cancel(g.err) - } - }) - } - }() - return true -} - -// SetLimit limits the number of active goroutines in this group to at most n. -// A negative value indicates no limit. -// A limit of zero will prevent any new goroutines from being added. -// -// Any subsequent call to the Go method will block until it can add an active -// goroutine without exceeding the configured limit. -// -// The limit must not be modified while any goroutines in the group are active. -func (g *Group) SetLimit(n int) { - if n < 0 { - g.sem = nil - return - } - if len(g.sem) != 0 { - panic(fmt.Errorf("errgroup: modify limit while %v goroutines in the group are still active", len(g.sem))) - } - g.sem = make(chan token, n) -} diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/sys/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/sys/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sys/unix/.gitignore b/vendor/golang.org/x/sys/unix/.gitignore deleted file mode 100644 index e3e0fc6..0000000 --- a/vendor/golang.org/x/sys/unix/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -_obj/ -unix.test diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md deleted file mode 100644 index 6e08a76..0000000 --- a/vendor/golang.org/x/sys/unix/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# Building `sys/unix` - -The sys/unix package provides access to the raw system call interface of the -underlying operating system. See: https://godoc.org/golang.org/x/sys/unix - -Porting Go to a new architecture/OS combination or adding syscalls, types, or -constants to an existing architecture/OS pair requires some manual effort; -however, there are tools that automate much of the process. - -## Build Systems - -There are currently two ways we generate the necessary files. We are currently -migrating the build system to use containers so the builds are reproducible. -This is being done on an OS-by-OS basis. Please update this documentation as -components of the build system change. - -### Old Build System (currently for `GOOS != "linux"`) - -The old build system generates the Go files based on the C header files -present on your system. This means that files -for a given GOOS/GOARCH pair must be generated on a system with that OS and -architecture. This also means that the generated code can differ from system -to system, based on differences in the header files. - -To avoid this, if you are using the old build system, only generate the Go -files on an installation with unmodified header files. It is also important to -keep track of which version of the OS the files were generated from (ex. -Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes -and have each OS upgrade correspond to a single change. - -To build the files for your current OS and architecture, make sure GOOS and -GOARCH are set correctly and run `mkall.sh`. This will generate the files for -your specific system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go - -### New Build System (currently for `GOOS == "linux"`) - -The new build system uses a Docker container to generate the go files directly -from source checkouts of the kernel and various system libraries. This means -that on any platform that supports Docker, all the files using the new build -system can be generated at once, and generated files will not change based on -what the person running the scripts has installed on their computer. - -The OS specific files for the new build system are located in the `${GOOS}` -directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When -the kernel or system library updates, modify the Dockerfile at -`${GOOS}/Dockerfile` to checkout the new release of the source. - -To build all the files under the new build system, you must be on an amd64/Linux -system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will -then generate all of the files for all of the GOOS/GOARCH pairs in the new build -system. Running `mkall.sh -n` shows the commands that will be run. - -Requirements: bash, go, docker - -## Component files - -This section describes the various files used in the code generation process. -It also contains instructions on how to modify these files to add a new -architecture/OS or to add additional syscalls, types, or constants. Note that -if you are using the new build system, the scripts/programs cannot be called normally. -They must be called from within the docker container. - -### asm files - -The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system -call dispatch. There are three entry points: -``` - func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) - func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) - func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) -``` -The first and second are the standard ones; they differ only in how many -arguments can be passed to the kernel. The third is for low-level use by the -ForkExec wrapper. Unlike the first two, it does not call into the scheduler to -let it know that a system call is running. - -When porting Go to a new architecture/OS, this file must be implemented for -each GOOS/GOARCH pair. - -### mksysnum - -Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` -for the old system). This program takes in a list of header files containing the -syscall number declarations and parses them to produce the corresponding list of -Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated -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 may need to update the -parsing in mksysnum. - -### mksyscall.go - -The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are -hand-written Go files which implement system calls (for unix, the specific OS, -or the specific OS/Architecture pair respectively) that need special handling -and list `//sys` comments giving prototypes for ones that can be generated. - -The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts -them into syscalls. This requires the name of the prototype in the comment to -match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function -prototype can be exported (capitalized) or not. - -Adding a new syscall often just requires adding a new `//sys` function prototype -with the desired arguments and a capitalized name so it is exported. However, if -you want the interface to the syscall to be different, often one will make an -unexported `//sys` prototype, and then write a custom wrapper in -`syscall_${GOOS}.go`. - -### types files - -For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or -`types_${GOOS}.go` on the old system). This file includes standard C headers and -creates Go type aliases to the corresponding C types. The file is then fed -through godef to get the Go compatible definitions. Finally, the generated code -is fed though mkpost.go to format the code correctly and remove any hidden or -private identifiers. This cleaned-up code is written to -`ztypes_${GOOS}_${GOARCH}.go`. - -The hardest part about preparing this file is figuring out which headers to -include and which symbols need to be `#define`d to get the actual data -structures that pass through to the kernel system calls. Some C libraries -preset alternate versions for binary compatibility and translate them on the -way in and out of system calls, but there is almost always a `#define` that can -get the real ones. -See `types_darwin.go` and `linux/types.go` for examples. - -To add a new type, add in the necessary include statement at the top of the -file (if it is not already there) and add in a type alias line. Note that if -your type is significantly different on different architectures, you may need -some `#if/#elif` macros in your include statements. - -### mkerrors.sh - -This script is used to generate the system's various constants. This doesn't -just include the error numbers and error strings, but also the signal numbers -and a wide variety of miscellaneous constants. The constants come from the list -of include files in the `includes_${uname}` variable. A regex then picks out -the desired `#define` statements, and generates the corresponding Go constants. -The error numbers and strings are generated from `#include <errno.h>`, and the -signal numbers and strings are generated from `#include <signal.h>`. All of -these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, -`_errors.c`, which prints out all the constants. - -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. - -### internal/mkmerge - -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 identical 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 - -### `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). - -### `zsyscall_${GOOS}_${GOARCH}.go` - -A file containing all the generated syscalls for a specific GOOS and GOARCH. -Generated by `mksyscall.go` (see above). - -### `zsysnum_${GOOS}_${GOARCH}.go` - -A list of numeric constants for all the syscall number of the specific GOOS -and GOARCH. Generated by mksysnum (see above). - -### `ztypes_${GOOS}_${GOARCH}.go` - -A file containing Go types for passing into (or returning from) syscalls. -Generated by godefs and the types file (see above). diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go deleted file mode 100644 index 6e5c81a..0000000 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ /dev/null @@ -1,86 +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. - -// CPU affinity functions - -package unix - -import ( - "math/bits" - "unsafe" -) - -const cpuSetSize = _CPU_SETSIZE / _NCPUBITS - -// CPUSet represents a CPU affinity mask. -type CPUSet [cpuSetSize]cpuMask - -func schedAffinity(trap uintptr, pid int, set *CPUSet) error { - _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) - if e != 0 { - return errnoErr(e) - } - return nil -} - -// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedGetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) -} - -// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. -// If pid is 0 the calling thread is used. -func SchedSetaffinity(pid int, set *CPUSet) error { - return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) -} - -// Zero clears the set s, so that it contains no CPUs. -func (s *CPUSet) Zero() { - for i := range s { - s[i] = 0 - } -} - -func cpuBitsIndex(cpu int) int { - return cpu / _NCPUBITS -} - -func cpuBitsMask(cpu int) cpuMask { - return cpuMask(1 << (uint(cpu) % _NCPUBITS)) -} - -// Set adds cpu to the set s. -func (s *CPUSet) Set(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] |= cpuBitsMask(cpu) - } -} - -// Clear removes cpu from the set s. -func (s *CPUSet) Clear(cpu int) { - i := cpuBitsIndex(cpu) - if i < len(s) { - s[i] &^= cpuBitsMask(cpu) - } -} - -// IsSet reports whether cpu is in the set s. -func (s *CPUSet) IsSet(cpu int) bool { - i := cpuBitsIndex(cpu) - if i < len(s) { - return s[i]&cpuBitsMask(cpu) != 0 - } - return false -} - -// Count returns the number of CPUs in the set s. -func (s *CPUSet) Count() int { - c := 0 - for _, b := range s { - c += bits.OnesCount64(uint64(b)) - } - return c -} diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go deleted file mode 100644 index b0e4198..0000000 --- a/vendor/golang.org/x/sys/unix/aliases.go +++ /dev/null @@ -1,13 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import "syscall" - -type Signal = syscall.Signal -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s deleted file mode 100644 index 269e173..0000000 --- a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +++ /dev/null @@ -1,17 +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. - -//go:build gc - -#include "textflag.h" - -// -// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go -// - -TEXT ·syscall6(SB),NOSPLIT,$0-88 - JMP syscall·syscall6(SB) - -TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s deleted file mode 100644 index a4fcef0..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_386.s +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -//go:build (freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for 386 BSD - -// 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_bsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s deleted file mode 100644 index 1e63615..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for AMD64 BSD - -// 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_bsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s deleted file mode 100644 index 6496c31..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_arm.s +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -//go:build (freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for ARM BSD - -// 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_bsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s deleted file mode 100644 index 4fd1f54..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for ARM64 BSD - -// 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_bsd_ppc64.s b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s deleted file mode 100644 index 42f7eb9..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// -// System call support for ppc64, BSD -// - -// 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_bsd_riscv64.s b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s deleted file mode 100644 index f890266..0000000 --- a/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +++ /dev/null @@ -1,27 +0,0 @@ -// 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. - -//go:build (darwin || freebsd || netbsd || openbsd) && gc - -#include "textflag.h" - -// System call support for RISCV64 BSD - -// 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 deleted file mode 100644 index 3b47348..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_386.s +++ /dev/null @@ -1,65 +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. - -//go:build gc - -#include "textflag.h" - -// -// System calls for 386, Linux -// - -// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 -// instead of the glibc-specific "CALL 0x10(GS)". -#define INVOKE_SYSCALL INT $0x80 - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 - CALL runtime·entersyscall(SB) - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - CALL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVL trap+0(FP), AX // syscall entry - MOVL a1+4(FP), BX - MOVL a2+8(FP), CX - MOVL a3+12(FP), DX - MOVL $0, SI - MOVL $0, DI - INVOKE_SYSCALL - MOVL AX, r1+16(FP) - MOVL DX, r2+20(FP) - RET - -TEXT ·socketcall(SB),NOSPLIT,$0-36 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 - JMP syscall·rawsocketcall(SB) - -TEXT ·seek(SB),NOSPLIT,$0-28 - JMP syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s deleted file mode 100644 index 67e29f3..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +++ /dev/null @@ -1,57 +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. - -//go:build gc - -#include "textflag.h" - -// -// System calls for AMD64, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - CALL runtime·entersyscall(SB) - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - 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 - MOVQ a1+8(FP), DI - MOVQ a2+16(FP), SI - MOVQ a3+24(FP), DX - MOVQ $0, R10 - MOVQ $0, R8 - MOVQ $0, R9 - MOVQ trap+0(FP), AX // syscall entry - SYSCALL - MOVQ AX, r1+32(FP) - MOVQ DX, r2+40(FP) - RET - -TEXT ·gettimeofday(SB),NOSPLIT,$0-16 - JMP syscall·gettimeofday(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s deleted file mode 100644 index d6ae269..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s +++ /dev/null @@ -1,56 +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. - -//go:build gc - -#include "textflag.h" - -// -// System calls for arm, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 - BL runtime·entersyscall(SB) - MOVW trap+0(FP), R7 - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - MOVW $0, R3 - MOVW $0, R4 - MOVW $0, R5 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW trap+0(FP), R7 // syscall entry - MOVW a1+4(FP), R0 - MOVW a2+8(FP), R1 - MOVW a3+12(FP), R2 - SWI $0 - MOVW R0, r1+16(FP) - MOVW $0, R0 - MOVW R0, r2+20(FP) - RET - -TEXT ·seek(SB),NOSPLIT,$0-28 - B syscall·seek(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s deleted file mode 100644 index 01e5e25..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && arm64 && gc - -#include "textflag.h" - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) // r1 - MOVD R1, r2+40(FP) // r2 - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - B syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - B syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R0 - MOVD a2+16(FP), R1 - MOVD a3+24(FP), R2 - MOVD $0, R3 - MOVD $0, R4 - MOVD $0, R5 - MOVD trap+0(FP), R8 // syscall entry - SVC - MOVD R0, r1+32(FP) - MOVD R1, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s deleted file mode 100644 index 2abf12f..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && loong64 && gc - -#include "textflag.h" - - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - JAL 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 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R11 // syscall entry - SYSCALL - MOVV R4, r1+32(FP) - MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s deleted file mode 100644 index f84bae7..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips64 || mips64le) && gc - -#include "textflag.h" - -// -// System calls for mips64, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-48 - JAL runtime·entersyscall(SB) - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - JAL 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 - MOVV a1+8(FP), R4 - MOVV a2+16(FP), R5 - MOVV a3+24(FP), R6 - MOVV R0, R7 - MOVV R0, R8 - MOVV R0, R9 - MOVV trap+0(FP), R2 // syscall entry - SYSCALL - MOVV R2, r1+32(FP) - MOVV R3, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s deleted file mode 100644 index f08f628..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) && gc - -#include "textflag.h" - -// -// System calls for mips, Linux -// - -// 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 ·SyscallNoError(SB),NOSPLIT,$0-24 - JAL runtime·entersyscall(SB) - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW R0, R7 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) // r1 - MOVW R3, r2+20(FP) // r2 - JAL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - JMP syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 - MOVW a1+4(FP), R4 - MOVW a2+8(FP), R5 - MOVW a3+12(FP), R6 - MOVW trap+0(FP), R2 // syscall entry - SYSCALL - MOVW R2, r1+16(FP) - MOVW R3, r2+20(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s deleted file mode 100644 index bdfc024..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (ppc64 || ppc64le) && gc - -#include "textflag.h" - -// -// System calls for ppc64, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R3 - MOVD a2+16(FP), R4 - MOVD a3+24(FP), R5 - MOVD R0, R6 - MOVD R0, R7 - MOVD R0, R8 - MOVD trap+0(FP), R9 // syscall entry - SYSCALL R9 - MOVD R3, r1+32(FP) - MOVD R4, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s deleted file mode 100644 index 2e8c996..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ /dev/null @@ -1,47 +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. - -//go: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 deleted file mode 100644 index 2c394b1..0000000 --- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && s390x && gc - -#include "textflag.h" - -// -// System calls for s390x, Linux -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-56 - BR syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-80 - BR syscall·Syscall6(SB) - -TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 - BL runtime·entersyscall(SB) - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - BL runtime·exitsyscall(SB) - RET - -TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - BR syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - BR syscall·RawSyscall6(SB) - -TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 - MOVD a1+8(FP), R2 - MOVD a2+16(FP), R3 - MOVD a3+24(FP), R4 - MOVD $0, R5 - MOVD $0, R6 - MOVD $0, R7 - MOVD trap+0(FP), R1 // syscall entry - SYSCALL - MOVD R2, r1+32(FP) - MOVD R3, r2+40(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s deleted file mode 100644 index fab586a..0000000 --- a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.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. - -//go:build gc - -#include "textflag.h" - -// -// System call support for mips64, OpenBSD -// - -// 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_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s deleted file mode 100644 index f949ec5..0000000 --- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc - -#include "textflag.h" - -// -// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go -// - -TEXT ·sysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSysvicall6(SB) diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s deleted file mode 100644 index 813dfad..0000000 --- a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +++ /dev/null @@ -1,382 +0,0 @@ -// 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 - -#include "textflag.h" - -#define PSALAA 1208(R0) -#define GTAB64(x) 80(x) -#define LCA64(x) 88(x) -#define SAVSTACK_ASYNC(x) 336(x) // in the LCA -#define CAA(x) 8(x) -#define CEECAATHDID(x) 976(x) // in the CAA -#define EDCHPXV(x) 1016(x) // in the CAA -#define GOCB(x) 1104(x) // in the CAA - -// 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) - -// Function Descriptor Offsets -#define __errno 0x156*16 -#define __err2ad 0x16C*16 - -// Call Instructions -#define LE_CALL BYTE $0x0D; BYTE $0x76 // BL R7, R6 -#define SVC_LOAD BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD -#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE - -DATA zosLibVec<>(SB)/8, $0 -GLOBL zosLibVec<>(SB), NOPTR, $8 - -TEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R8 - MOVD EDCHPXV(R8), R8 - MOVD R8, zosLibVec<>(SB) - RET - -TEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0 - MOVD zosLibVec<>(SB), R8 - MOVD R8, ret+0(FP) - RET - -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 $(__errno), 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 - -// 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 - SVC_LOAD - 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, ret+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) - SVC_DELETE - MOVD R2, R15 // Restore go stack pointer - -error: - MOVD $0, ret+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 fnptr+8(FP), R15 - SVC_DELETE - XOR R0, R0 // Reset r0 to 0 - MOVD R15, R1 // Save SVC return code - MOVD R2, R15 // Restore go stack pointer - MOVD R1, ret+16(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 CEECAATHDID(R9), R9 - MOVD R9, ret+0(FP) - - RET - -// -// Call LE function, if the return is -1 -// errno and errno2 is retrieved -// -TEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R9 - MOVD g, GOCB(R9) - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address - MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer - - MOVD parms_base+8(FP), R7 // R7 -> argument array - MOVD parms_len+16(FP), R8 // R8 number of arguments - - // arg 1 ---> R1 - CMP R8, $0 - BEQ docall - SUB $1, R8 - MOVD 0(R7), R1 - - // arg 2 ---> R2 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R2 - - // arg 3 --> R3 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R3 - - CMP R8, $0 - BEQ docall - MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument - -repeat: - ADD $8, R7 - MOVD 0(R7), R0 // advance arg pointer by 8 byte - ADD $8, R6 // advance LE argument address by 8 byte - MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame - SUB $1, R8 - CMP R8, $0 - BNE repeat - -docall: - MOVD funcdesc+0(FP), R8 // R8-> function descriptor - LMG 0(R8), R5, R6 - MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC - LE_CALL // balr R7, R6 (return #1) - NOPH - MOVD R3, ret+32(FP) - CMP R3, $-1 // compare result to -1 - BNE done - - // retrieve errno and errno2 - MOVD zosLibVec<>(SB), R8 - ADD $(__errno), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __errno (return #3) - NOPH - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) - MOVD zosLibVec<>(SB), R8 - ADD $(__err2ad), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __err2ad (return #2) - NOPH - MOVW (R3), R2 // retrieve errno2 - MOVD R2, errno2+40(FP) // store in return area - -done: - MOVD R4, 0(R9) // Save stack pointer. - RET - -// -// Call LE function, if the return is 0 -// errno and errno2 is retrieved -// -TEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0 - MOVW PSALAA, R8 - MOVD LCA64(R8), R8 - MOVD CAA(R8), R9 - MOVD g, GOCB(R9) - - // Restore LE stack. - MOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address - MOVD 0(R9), R4 // R4-> restore previously saved stack frame pointer - - MOVD parms_base+8(FP), R7 // R7 -> argument array - MOVD parms_len+16(FP), R8 // R8 number of arguments - - // arg 1 ---> R1 - CMP R8, $0 - BEQ docall - SUB $1, R8 - MOVD 0(R7), R1 - - // arg 2 ---> R2 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R2 - - // arg 3 --> R3 - CMP R8, $0 - BEQ docall - SUB $1, R8 - ADD $8, R7 - MOVD 0(R7), R3 - - CMP R8, $0 - BEQ docall - MOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument - -repeat: - ADD $8, R7 - MOVD 0(R7), R0 // advance arg pointer by 8 byte - ADD $8, R6 // advance LE argument address by 8 byte - MOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame - SUB $1, R8 - CMP R8, $0 - BNE repeat - -docall: - MOVD funcdesc+0(FP), R8 // R8-> function descriptor - LMG 0(R8), R5, R6 - MOVD $0, 0(R9) // R9 address of SAVSTACK_ASYNC - LE_CALL // balr R7, R6 (return #1) - NOPH - MOVD R3, ret+32(FP) - CMP R3, $0 // compare result to 0 - BNE done - - // retrieve errno and errno2 - MOVD zosLibVec<>(SB), R8 - ADD $(__errno), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __errno (return #3) - NOPH - MOVWZ 0(R3), R3 - MOVD R3, err+48(FP) - MOVD zosLibVec<>(SB), R8 - ADD $(__err2ad), R8 - LMG 0(R8), R5, R6 - LE_CALL // balr R7, R6 __err2ad (return #2) - NOPH - MOVW (R3), R2 // retrieve errno2 - MOVD R2, errno2+40(FP) // store in return area - XOR R2, R2 - MOVWZ R2, (R3) // clear errno2 - -done: - MOVD R4, 0(R9) // Save stack pointer. - RET - -// -// function to test if a pointer can be safely dereferenced (content read) -// return 0 for succces -// -TEXT ·ptrtest(SB), NOSPLIT, $0-16 - MOVD arg+0(FP), R10 // test pointer in R10 - - // set up R2 to point to CEECAADMC - BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 - BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 - BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) - BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) - - // set up R5 to point to the "shunt" path which set 1 to R3 (failure) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 - BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 - BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 - - // if r3 is not zero (failed) then branch to finish - BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 - BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 - - // stomic store shunt address in R5 into CEECAADMC - BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) - - // now try reading from the test pointer in R10, if it fails it branches to the "lghi" instruction above - BYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 9,0(10) - - // finish here, restore 0 into CEECAADMC - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 - BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) - MOVD R3, ret+8(FP) // result in R3 - RET - -// -// function to test if a untptr can be loaded from a pointer -// return 1: the 8-byte content -// 2: 0 for success, 1 for failure -// -// func safeload(ptr uintptr) ( value uintptr, error uintptr) -TEXT ·safeload(SB), NOSPLIT, $0-24 - MOVD ptr+0(FP), R10 // test pointer in R10 - MOVD $0x0, R6 - BYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt 2,1208 - BYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22 // llgtr 2,2 - BYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF // nilh 2,32767 - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg 2,88(2) - BYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg 2,8(2) - BYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68 // la 2,872(2) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr 3,3 - BYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras 5,lbl1 - BYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi 3,1 - BYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1 ltgr 3,3 - BYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc b'0111',lbl2 - BYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2) - BYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg 6,0(10) - BYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99 // lbl2 xgr 9,9 - BYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 9,0(2) - MOVD R6, value+8(FP) // result in R6 - MOVD R3, error+16(FP) // error in R3 - RET diff --git a/vendor/golang.org/x/sys/unix/auxv.go b/vendor/golang.org/x/sys/unix/auxv.go deleted file mode 100644 index 37a8252..0000000 --- a/vendor/golang.org/x/sys/unix/auxv.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) - -package unix - -import ( - "syscall" - "unsafe" -) - -//go:linkname runtime_getAuxv runtime.getAuxv -func runtime_getAuxv() []uintptr - -// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. -// The returned slice is always a fresh copy, owned by the caller. -// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, -// which happens in some locked-down environments and build modes. -func Auxv() ([][2]uintptr, error) { - vec := runtime_getAuxv() - vecLen := len(vec) - - if vecLen == 0 { - return nil, syscall.ENOENT - } - - if vecLen%2 != 0 { - return nil, syscall.EINVAL - } - - result := make([]uintptr, vecLen) - copy(result, vec) - return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil -} diff --git a/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/vendor/golang.org/x/sys/unix/auxv_unsupported.go deleted file mode 100644 index 1200487..0000000 --- a/vendor/golang.org/x/sys/unix/auxv_unsupported.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) - -package unix - -import "syscall" - -func Auxv() ([][2]uintptr, error) { - return nil, syscall.ENOTSUP -} diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go deleted file mode 100644 index a178a61..0000000 --- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Bluetooth sockets and messages - -package unix - -// Bluetooth Protocols -const ( - BTPROTO_L2CAP = 0 - BTPROTO_HCI = 1 - BTPROTO_SCO = 2 - BTPROTO_RFCOMM = 3 - BTPROTO_BNEP = 4 - BTPROTO_CMTP = 5 - BTPROTO_HIDP = 6 - BTPROTO_AVDTP = 7 -) - -const ( - HCI_CHANNEL_RAW = 0 - HCI_CHANNEL_USER = 1 - HCI_CHANNEL_MONITOR = 2 - HCI_CHANNEL_CONTROL = 3 - HCI_CHANNEL_LOGGING = 4 -) - -// Socketoption Level -const ( - SOL_BLUETOOTH = 0x112 - SOL_HCI = 0x0 - SOL_L2CAP = 0x6 - SOL_RFCOMM = 0x12 - SOL_SCO = 0x11 -) diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/vendor/golang.org/x/sys/unix/bpxsvc_zos.go deleted file mode 100644 index 39d647d..0000000 --- a/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +++ /dev/null @@ -1,657 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos - -package unix - -import ( - "bytes" - "fmt" - "unsafe" -) - -//go:noescape -func bpxcall(plist []unsafe.Pointer, bpx_offset int64) - -//go:noescape -func A2e([]byte) - -//go:noescape -func E2a([]byte) - -const ( - BPX4STA = 192 // stat - BPX4FST = 104 // fstat - BPX4LST = 132 // lstat - BPX4OPN = 156 // open - BPX4CLO = 72 // close - BPX4CHR = 500 // chattr - BPX4FCR = 504 // fchattr - BPX4LCR = 1180 // lchattr - BPX4CTW = 492 // cond_timed_wait - BPX4GTH = 1056 // __getthent - BPX4PTQ = 412 // pthread_quiesc - BPX4PTR = 320 // ptrace -) - -const ( - //options - //byte1 - BPX_OPNFHIGH = 0x80 - //byte2 - BPX_OPNFEXEC = 0x80 - //byte3 - BPX_O_NOLARGEFILE = 0x08 - BPX_O_LARGEFILE = 0x04 - BPX_O_ASYNCSIG = 0x02 - BPX_O_SYNC = 0x01 - //byte4 - BPX_O_CREXCL = 0xc0 - BPX_O_CREAT = 0x80 - BPX_O_EXCL = 0x40 - BPX_O_NOCTTY = 0x20 - BPX_O_TRUNC = 0x10 - BPX_O_APPEND = 0x08 - BPX_O_NONBLOCK = 0x04 - BPX_FNDELAY = 0x04 - BPX_O_RDWR = 0x03 - BPX_O_RDONLY = 0x02 - BPX_O_WRONLY = 0x01 - BPX_O_ACCMODE = 0x03 - BPX_O_GETFL = 0x0f - - //mode - // byte1 (file type) - BPX_FT_DIR = 1 - BPX_FT_CHARSPEC = 2 - BPX_FT_REGFILE = 3 - BPX_FT_FIFO = 4 - BPX_FT_SYMLINK = 5 - BPX_FT_SOCKET = 6 - //byte3 - BPX_S_ISUID = 0x08 - BPX_S_ISGID = 0x04 - BPX_S_ISVTX = 0x02 - BPX_S_IRWXU1 = 0x01 - BPX_S_IRUSR = 0x01 - //byte4 - BPX_S_IRWXU2 = 0xc0 - BPX_S_IWUSR = 0x80 - BPX_S_IXUSR = 0x40 - BPX_S_IRWXG = 0x38 - BPX_S_IRGRP = 0x20 - BPX_S_IWGRP = 0x10 - BPX_S_IXGRP = 0x08 - BPX_S_IRWXOX = 0x07 - BPX_S_IROTH = 0x04 - BPX_S_IWOTH = 0x02 - BPX_S_IXOTH = 0x01 - - CW_INTRPT = 1 - CW_CONDVAR = 32 - CW_TIMEOUT = 64 - - PGTHA_NEXT = 2 - PGTHA_CURRENT = 1 - PGTHA_FIRST = 0 - PGTHA_LAST = 3 - PGTHA_PROCESS = 0x80 - PGTHA_CONTTY = 0x40 - PGTHA_PATH = 0x20 - PGTHA_COMMAND = 0x10 - PGTHA_FILEDATA = 0x08 - PGTHA_THREAD = 0x04 - PGTHA_PTAG = 0x02 - PGTHA_COMMANDLONG = 0x01 - PGTHA_THREADFAST = 0x80 - PGTHA_FILEPATH = 0x40 - PGTHA_THDSIGMASK = 0x20 - // thread quiece mode - QUIESCE_TERM int32 = 1 - QUIESCE_FORCE int32 = 2 - QUIESCE_QUERY int32 = 3 - QUIESCE_FREEZE int32 = 4 - QUIESCE_UNFREEZE int32 = 5 - FREEZE_THIS_THREAD int32 = 6 - FREEZE_EXIT int32 = 8 - QUIESCE_SRB int32 = 9 -) - -type Pgtha struct { - Pid uint32 // 0 - Tid0 uint32 // 4 - Tid1 uint32 - Accesspid byte // C - Accesstid byte // D - Accessasid uint16 // E - Loginname [8]byte // 10 - Flag1 byte // 18 - Flag1b2 byte // 19 -} - -type Bpxystat_t struct { // DSECT BPXYSTAT - St_id [4]uint8 // 0 - St_length uint16 // 0x4 - St_version uint16 // 0x6 - St_mode uint32 // 0x8 - St_ino uint32 // 0xc - St_dev uint32 // 0x10 - St_nlink uint32 // 0x14 - St_uid uint32 // 0x18 - St_gid uint32 // 0x1c - St_size uint64 // 0x20 - St_atime uint32 // 0x28 - St_mtime uint32 // 0x2c - St_ctime uint32 // 0x30 - St_rdev uint32 // 0x34 - St_auditoraudit uint32 // 0x38 - St_useraudit uint32 // 0x3c - St_blksize uint32 // 0x40 - St_createtime uint32 // 0x44 - St_auditid [4]uint32 // 0x48 - St_res01 uint32 // 0x58 - Ft_ccsid uint16 // 0x5c - Ft_flags uint16 // 0x5e - St_res01a [2]uint32 // 0x60 - St_res02 uint32 // 0x68 - St_blocks uint32 // 0x6c - St_opaque [3]uint8 // 0x70 - St_visible uint8 // 0x73 - St_reftime uint32 // 0x74 - St_fid uint64 // 0x78 - St_filefmt uint8 // 0x80 - St_fspflag2 uint8 // 0x81 - St_res03 [2]uint8 // 0x82 - St_ctimemsec uint32 // 0x84 - St_seclabel [8]uint8 // 0x88 - St_res04 [4]uint8 // 0x90 - // end of version 1 - _ uint32 // 0x94 - St_atime64 uint64 // 0x98 - St_mtime64 uint64 // 0xa0 - St_ctime64 uint64 // 0xa8 - St_createtime64 uint64 // 0xb0 - St_reftime64 uint64 // 0xb8 - _ uint64 // 0xc0 - St_res05 [16]uint8 // 0xc8 - // end of version 2 -} - -type BpxFilestatus struct { - Oflag1 byte - Oflag2 byte - Oflag3 byte - Oflag4 byte -} - -type BpxMode struct { - Ftype byte - Mode1 byte - Mode2 byte - Mode3 byte -} - -// Thr attribute structure for extended attributes -type Bpxyatt_t struct { // DSECT BPXYATT - Att_id [4]uint8 - Att_version uint16 - Att_res01 [2]uint8 - Att_setflags1 uint8 - Att_setflags2 uint8 - Att_setflags3 uint8 - Att_setflags4 uint8 - Att_mode uint32 - Att_uid uint32 - Att_gid uint32 - Att_opaquemask [3]uint8 - Att_visblmaskres uint8 - Att_opaque [3]uint8 - Att_visibleres uint8 - Att_size_h uint32 - Att_size_l uint32 - Att_atime uint32 - Att_mtime uint32 - Att_auditoraudit uint32 - Att_useraudit uint32 - Att_ctime uint32 - Att_reftime uint32 - // end of version 1 - Att_filefmt uint8 - Att_res02 [3]uint8 - Att_filetag uint32 - Att_res03 [8]uint8 - // end of version 2 - Att_atime64 uint64 - Att_mtime64 uint64 - Att_ctime64 uint64 - Att_reftime64 uint64 - Att_seclabel [8]uint8 - Att_ver3res02 [8]uint8 - // end of version 3 -} - -func BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(options) - parms[3] = unsafe.Pointer(mode) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4OPN) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxClose(fd int32) (rv int32, rc int32, rn int32) { - var parms [4]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&rv) - parms[2] = unsafe.Pointer(&rc) - parms[3] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CLO) - return rv, rc, rn -} - -func BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [6]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&stat_sz) - parms[2] = unsafe.Pointer(st) - parms[3] = unsafe.Pointer(&rv) - parms[4] = unsafe.Pointer(&rc) - parms[5] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4FST) - return rv, rc, rn -} - -func BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&stat_sz) - parms[3] = unsafe.Pointer(st) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4STA) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) { - if len(name) < 1024 { - var namebuf [1024]byte - sz := int32(copy(namebuf[:], name)) - A2e(namebuf[:sz]) - st.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3} - st.St_version = 2 - stat_sz := uint32(unsafe.Sizeof(*st)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&stat_sz) - parms[3] = unsafe.Pointer(st) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4LST) - return rv, rc, rn - } - return -1, -1, -1 -} - -func BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - if len(path) >= 1024 { - return -1, -1, -1 - } - var namebuf [1024]byte - sz := int32(copy(namebuf[:], path)) - A2e(namebuf[:sz]) - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&attr_sz) - parms[3] = unsafe.Pointer(attr) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CHR) - return rv, rc, rn -} - -func BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - if len(path) >= 1024 { - return -1, -1, -1 - } - var namebuf [1024]byte - sz := int32(copy(namebuf[:], path)) - A2e(namebuf[:sz]) - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [7]unsafe.Pointer - parms[0] = unsafe.Pointer(&sz) - parms[1] = unsafe.Pointer(&namebuf[0]) - parms[2] = unsafe.Pointer(&attr_sz) - parms[3] = unsafe.Pointer(attr) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4LCR) - return rv, rc, rn -} - -func BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) { - attr_sz := uint32(unsafe.Sizeof(*attr)) - var parms [6]unsafe.Pointer - parms[0] = unsafe.Pointer(&fd) - parms[1] = unsafe.Pointer(&attr_sz) - parms[2] = unsafe.Pointer(attr) - parms[3] = unsafe.Pointer(&rv) - parms[4] = unsafe.Pointer(&rc) - parms[5] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4FCR) - return rv, rc, rn -} - -func BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) { - var parms [8]unsafe.Pointer - parms[0] = unsafe.Pointer(&sec) - parms[1] = unsafe.Pointer(&nsec) - parms[2] = unsafe.Pointer(&events) - parms[3] = unsafe.Pointer(secrem) - parms[4] = unsafe.Pointer(nsecrem) - parms[5] = unsafe.Pointer(&rv) - parms[6] = unsafe.Pointer(&rc) - parms[7] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4CTW) - return rv, rc, rn -} -func BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) { - var parms [7]unsafe.Pointer - inlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is "packed" and must be 26-byte - parms[0] = unsafe.Pointer(&inlen) - parms[1] = unsafe.Pointer(&in) - parms[2] = unsafe.Pointer(outlen) - parms[3] = unsafe.Pointer(&out) - parms[4] = unsafe.Pointer(&rv) - parms[5] = unsafe.Pointer(&rc) - parms[6] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4GTH) - return rv, rc, rn -} -func ZosJobname() (jobname string, err error) { - var pgtha Pgtha - pgtha.Pid = uint32(Getpid()) - pgtha.Accesspid = PGTHA_CURRENT - pgtha.Flag1 = PGTHA_PROCESS - var out [256]byte - var outlen uint32 - outlen = 256 - rv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0])) - if rv == 0 { - gthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic - ix := bytes.Index(out[:], gthc) - if ix == -1 { - err = fmt.Errorf("BPX4GTH: gthc return data not found") - return - } - jn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80 - E2a(jn) - jobname = string(bytes.TrimRight(jn, " ")) - - } else { - err = fmt.Errorf("BPX4GTH: rc=%d errno=%d reason=code=0x%x", rv, rc, rn) - } - return -} -func Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) { - var userdata [8]byte - var parms [5]unsafe.Pointer - copy(userdata[:], data+" ") - A2e(userdata[:]) - parms[0] = unsafe.Pointer(&code) - parms[1] = unsafe.Pointer(&userdata[0]) - parms[2] = unsafe.Pointer(&rv) - parms[3] = unsafe.Pointer(&rc) - parms[4] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4PTQ) - return rv, rc, rn -} - -const ( - PT_TRACE_ME = 0 // Debug this process - PT_READ_I = 1 // Read a full word - PT_READ_D = 2 // Read a full word - PT_READ_U = 3 // Read control info - PT_WRITE_I = 4 //Write a full word - PT_WRITE_D = 5 //Write a full word - PT_CONTINUE = 7 //Continue the process - PT_KILL = 8 //Terminate the process - PT_READ_GPR = 11 // Read GPR, CR, PSW - PT_READ_FPR = 12 // Read FPR - PT_READ_VR = 13 // Read VR - PT_WRITE_GPR = 14 // Write GPR, CR, PSW - PT_WRITE_FPR = 15 // Write FPR - PT_WRITE_VR = 16 // Write VR - PT_READ_BLOCK = 17 // Read storage - PT_WRITE_BLOCK = 19 // Write storage - PT_READ_GPRH = 20 // Read GPRH - PT_WRITE_GPRH = 21 // Write GPRH - PT_REGHSET = 22 // Read all GPRHs - PT_ATTACH = 30 // Attach to a process - PT_DETACH = 31 // Detach from a process - PT_REGSET = 32 // Read all GPRs - PT_REATTACH = 33 // Reattach to a process - PT_LDINFO = 34 // Read loader info - PT_MULTI = 35 // Multi process mode - PT_LD64INFO = 36 // RMODE64 Info Area - PT_BLOCKREQ = 40 // Block request - PT_THREAD_INFO = 60 // Read thread info - PT_THREAD_MODIFY = 61 - PT_THREAD_READ_FOCUS = 62 - PT_THREAD_WRITE_FOCUS = 63 - PT_THREAD_HOLD = 64 - PT_THREAD_SIGNAL = 65 - PT_EXPLAIN = 66 - PT_EVENTS = 67 - PT_THREAD_INFO_EXTENDED = 68 - PT_REATTACH2 = 71 - PT_CAPTURE = 72 - PT_UNCAPTURE = 73 - PT_GET_THREAD_TCB = 74 - PT_GET_ALET = 75 - PT_SWAPIN = 76 - PT_EXTENDED_EVENT = 98 - PT_RECOVER = 99 // Debug a program check - PT_GPR0 = 0 // General purpose register 0 - PT_GPR1 = 1 // General purpose register 1 - PT_GPR2 = 2 // General purpose register 2 - PT_GPR3 = 3 // General purpose register 3 - PT_GPR4 = 4 // General purpose register 4 - PT_GPR5 = 5 // General purpose register 5 - PT_GPR6 = 6 // General purpose register 6 - PT_GPR7 = 7 // General purpose register 7 - PT_GPR8 = 8 // General purpose register 8 - PT_GPR9 = 9 // General purpose register 9 - PT_GPR10 = 10 // General purpose register 10 - PT_GPR11 = 11 // General purpose register 11 - PT_GPR12 = 12 // General purpose register 12 - PT_GPR13 = 13 // General purpose register 13 - PT_GPR14 = 14 // General purpose register 14 - PT_GPR15 = 15 // General purpose register 15 - PT_FPR0 = 16 // Floating point register 0 - PT_FPR1 = 17 // Floating point register 1 - PT_FPR2 = 18 // Floating point register 2 - PT_FPR3 = 19 // Floating point register 3 - PT_FPR4 = 20 // Floating point register 4 - PT_FPR5 = 21 // Floating point register 5 - PT_FPR6 = 22 // Floating point register 6 - PT_FPR7 = 23 // Floating point register 7 - PT_FPR8 = 24 // Floating point register 8 - PT_FPR9 = 25 // Floating point register 9 - PT_FPR10 = 26 // Floating point register 10 - PT_FPR11 = 27 // Floating point register 11 - PT_FPR12 = 28 // Floating point register 12 - PT_FPR13 = 29 // Floating point register 13 - PT_FPR14 = 30 // Floating point register 14 - PT_FPR15 = 31 // Floating point register 15 - PT_FPC = 32 // Floating point control register - PT_PSW = 40 // PSW - PT_PSW0 = 40 // Left half of the PSW - PT_PSW1 = 41 // Right half of the PSW - PT_CR0 = 42 // Control register 0 - PT_CR1 = 43 // Control register 1 - PT_CR2 = 44 // Control register 2 - PT_CR3 = 45 // Control register 3 - PT_CR4 = 46 // Control register 4 - PT_CR5 = 47 // Control register 5 - PT_CR6 = 48 // Control register 6 - PT_CR7 = 49 // Control register 7 - PT_CR8 = 50 // Control register 8 - PT_CR9 = 51 // Control register 9 - PT_CR10 = 52 // Control register 10 - PT_CR11 = 53 // Control register 11 - PT_CR12 = 54 // Control register 12 - PT_CR13 = 55 // Control register 13 - PT_CR14 = 56 // Control register 14 - PT_CR15 = 57 // Control register 15 - PT_GPRH0 = 58 // GP High register 0 - PT_GPRH1 = 59 // GP High register 1 - PT_GPRH2 = 60 // GP High register 2 - PT_GPRH3 = 61 // GP High register 3 - PT_GPRH4 = 62 // GP High register 4 - PT_GPRH5 = 63 // GP High register 5 - PT_GPRH6 = 64 // GP High register 6 - PT_GPRH7 = 65 // GP High register 7 - PT_GPRH8 = 66 // GP High register 8 - PT_GPRH9 = 67 // GP High register 9 - PT_GPRH10 = 68 // GP High register 10 - PT_GPRH11 = 69 // GP High register 11 - PT_GPRH12 = 70 // GP High register 12 - PT_GPRH13 = 71 // GP High register 13 - PT_GPRH14 = 72 // GP High register 14 - PT_GPRH15 = 73 // GP High register 15 - PT_VR0 = 74 // Vector register 0 - PT_VR1 = 75 // Vector register 1 - PT_VR2 = 76 // Vector register 2 - PT_VR3 = 77 // Vector register 3 - PT_VR4 = 78 // Vector register 4 - PT_VR5 = 79 // Vector register 5 - PT_VR6 = 80 // Vector register 6 - PT_VR7 = 81 // Vector register 7 - PT_VR8 = 82 // Vector register 8 - PT_VR9 = 83 // Vector register 9 - PT_VR10 = 84 // Vector register 10 - PT_VR11 = 85 // Vector register 11 - PT_VR12 = 86 // Vector register 12 - PT_VR13 = 87 // Vector register 13 - PT_VR14 = 88 // Vector register 14 - PT_VR15 = 89 // Vector register 15 - PT_VR16 = 90 // Vector register 16 - PT_VR17 = 91 // Vector register 17 - PT_VR18 = 92 // Vector register 18 - PT_VR19 = 93 // Vector register 19 - PT_VR20 = 94 // Vector register 20 - PT_VR21 = 95 // Vector register 21 - PT_VR22 = 96 // Vector register 22 - PT_VR23 = 97 // Vector register 23 - PT_VR24 = 98 // Vector register 24 - PT_VR25 = 99 // Vector register 25 - PT_VR26 = 100 // Vector register 26 - PT_VR27 = 101 // Vector register 27 - PT_VR28 = 102 // Vector register 28 - PT_VR29 = 103 // Vector register 29 - PT_VR30 = 104 // Vector register 30 - PT_VR31 = 105 // Vector register 31 - PT_PSWG = 106 // PSWG - PT_PSWG0 = 106 // Bytes 0-3 - PT_PSWG1 = 107 // Bytes 4-7 - PT_PSWG2 = 108 // Bytes 8-11 (IA high word) - PT_PSWG3 = 109 // Bytes 12-15 (IA low word) -) - -func Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) { - var parms [8]unsafe.Pointer - parms[0] = unsafe.Pointer(&request) - parms[1] = unsafe.Pointer(&pid) - parms[2] = unsafe.Pointer(&addr) - parms[3] = unsafe.Pointer(&data) - parms[4] = unsafe.Pointer(&buffer) - parms[5] = unsafe.Pointer(&rv) - parms[6] = unsafe.Pointer(&rc) - parms[7] = unsafe.Pointer(&rn) - bpxcall(parms[:], BPX4PTR) - return rv, rc, rn -} - -func copyU8(val uint8, dest []uint8) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU8Arr(src, dest []uint8) int { - if len(dest) < len(src) { - return 0 - } - for i, v := range src { - dest[i] = v - } - return len(src) -} - -func copyU16(val uint16, dest []uint16) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU32(val uint32, dest []uint32) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} - -func copyU32Arr(src, dest []uint32) int { - if len(dest) < len(src) { - return 0 - } - for i, v := range src { - dest[i] = v - } - return len(src) -} - -func copyU64(val uint64, dest []uint64) int { - if len(dest) < 1 { - return 0 - } - dest[0] = val - return 1 -} diff --git a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/vendor/golang.org/x/sys/unix/bpxsvc_zos.s deleted file mode 100644 index 4bd4a17..0000000 --- a/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -#include "go_asm.h" -#include "textflag.h" - -// function to call USS assembly language services -// -// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm -// -// arg1 unsafe.Pointer array that ressembles an OS PLIST -// -// arg2 function offset as in -// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm -// -// func bpxcall(plist []unsafe.Pointer, bpx_offset int64) - -TEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0 - MOVD plist_base+0(FP), R1 // r1 points to plist - MOVD bpx_offset+24(FP), R2 // r2 offset to BPX vector table - MOVD R14, R7 // save r14 - MOVD R15, R8 // save r15 - MOVWZ 16(R0), R9 - MOVWZ 544(R9), R9 - MOVWZ 24(R9), R9 // call vector in r9 - ADD R2, R9 // add offset to vector table - MOVWZ (R9), R9 // r9 points to entry point - BYTE $0x0D // BL R14,R9 --> basr r14,r9 - BYTE $0xE9 // clobbers 0,1,14,15 - MOVD R8, R15 // restore 15 - JMP R7 // return via saved return address - -// func A2e(arr [] byte) -// code page conversion from 819 to 1047 -TEXT ·A2e(SB), NOSPLIT|NOFRAME, $0 - MOVD arg_base+0(FP), R2 // pointer to arry of characters - MOVD arg_len+8(FP), R3 // count - XOR R0, R0 - XOR R1, R1 - BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) - - // ASCII -> EBCDIC conversion table: - BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 - BYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f - BYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b - BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f - BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 - BYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26 - BYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27 - BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f - BYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b - BYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d - BYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e - BYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61 - BYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3 - BYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7 - BYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e - BYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f - BYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3 - BYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7 - BYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2 - BYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6 - BYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2 - BYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6 - BYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad - BYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d - BYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83 - BYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87 - BYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92 - BYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96 - BYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2 - BYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6 - BYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0 - BYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07 - BYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23 - BYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17 - BYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b - BYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b - BYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33 - BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08 - BYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b - BYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff - BYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1 - BYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5 - BYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a - BYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc - BYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa - BYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3 - BYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b - BYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab - BYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66 - BYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68 - BYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73 - BYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77 - BYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee - BYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf - BYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb - BYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59 - BYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46 - BYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48 - BYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53 - BYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57 - BYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce - BYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1 - BYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb - BYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf - -retry: - WORD $0xB9931022 // TROO 2,2,b'0001' - BVS retry - RET - -// func e2a(arr [] byte) -// code page conversion from 1047 to 819 -TEXT ·E2a(SB), NOSPLIT|NOFRAME, $0 - MOVD arg_base+0(FP), R2 // pointer to arry of characters - MOVD arg_len+8(FP), R3 // count - XOR R0, R0 - XOR R1, R1 - BYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2)) - - // EBCDIC -> ASCII conversion table: - BYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03 - BYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f - BYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b - BYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f - BYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13 - BYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87 - BYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f - BYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f - BYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83 - BYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b - BYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b - BYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07 - BYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93 - BYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04 - BYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b - BYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a - BYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4 - BYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5 - BYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e - BYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c - BYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb - BYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef - BYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24 - BYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e - BYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4 - BYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5 - BYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c - BYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f - BYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb - BYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf - BYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23 - BYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22 - BYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63 - BYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67 - BYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb - BYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1 - BYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c - BYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70 - BYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba - BYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4 - BYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74 - BYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78 - BYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf - BYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae - BYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7 - BYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc - BYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8 - BYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7 - BYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43 - BYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47 - BYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4 - BYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5 - BYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c - BYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50 - BYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb - BYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff - BYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54 - BYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58 - BYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4 - BYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5 - BYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33 - BYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37 - BYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb - BYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f - -retry: - WORD $0xB9931022 // TROO 2,2,b'0001' - BVS retry - RET diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go deleted file mode 100644 index a086578..0000000 --- a/vendor/golang.org/x/sys/unix/cap_freebsd.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build freebsd - -package unix - -import ( - "errors" - "fmt" -) - -// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c - -const ( - // This is the version of CapRights this package understands. See C implementation for parallels. - capRightsGoVersion = CAP_RIGHTS_VERSION_00 - capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 - capArSizeMax = capRightsGoVersion + 2 -) - -var ( - bit2idx = []int{ - -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - } -) - -func capidxbit(right uint64) int { - return int((right >> 57) & 0x1f) -} - -func rightToIndex(right uint64) (int, error) { - idx := capidxbit(right) - if idx < 0 || idx >= len(bit2idx) { - return -2, fmt.Errorf("index for right 0x%x out of range", right) - } - return bit2idx[idx], nil -} - -func caprver(right uint64) int { - return int(right >> 62) -} - -func capver(rights *CapRights) int { - return caprver(rights.Rights[0]) -} - -func caparsize(rights *CapRights) int { - return capver(rights) + 2 -} - -// CapRightsSet sets the permissions in setrights in rights. -func CapRightsSet(rights *CapRights, setrights []uint64) error { - // This is essentially a copy of cap_rights_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] |= right - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsClear clears the permissions in clearrights from rights. -func CapRightsClear(rights *CapRights, clearrights []uint64) error { - // This is essentially a copy of cap_rights_vclear() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return errors.New("bad rights size") - } - - for _, right := range clearrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return err - } - if i >= n { - return errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch") - } - rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return errors.New("index mismatch (after assign)") - } - } - - return nil -} - -// CapRightsIsSet checks whether all the permissions in setrights are present in rights. -func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { - // This is essentially a copy of cap_rights_is_vset() - if capver(rights) != CAP_RIGHTS_VERSION_00 { - return false, fmt.Errorf("bad rights version %d", capver(rights)) - } - - n := caparsize(rights) - if n < capArSizeMin || n > capArSizeMax { - return false, errors.New("bad rights size") - } - - for _, right := range setrights { - if caprver(right) != CAP_RIGHTS_VERSION_00 { - return false, errors.New("bad right version") - } - i, err := rightToIndex(right) - if err != nil { - return false, err - } - if i >= n { - return false, errors.New("index overflow") - } - if capidxbit(rights.Rights[i]) != capidxbit(right) { - return false, errors.New("index mismatch") - } - if (rights.Rights[i] & right) != right { - return false, nil - } - } - - return true, nil -} - -func capright(idx uint64, bit uint64) uint64 { - return ((1 << (57 + idx)) | bit) -} - -// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. -// See man cap_rights_init(3) and rights(4). -func CapRightsInit(rights []uint64) (*CapRights, error) { - var r CapRights - r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) - r.Rights[1] = capright(1, 0) - - err := CapRightsSet(&r, rights) - if err != nil { - return nil, err - } - return &r, nil -} - -// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. -// The capability rights on fd can never be increased by CapRightsLimit. -// See man cap_rights_limit(2) and rights(4). -func CapRightsLimit(fd uintptr, rights *CapRights) error { - return capRightsLimit(int(fd), rights) -} - -// CapRightsGet returns a CapRights structure containing the operations permitted on fd. -// See man cap_rights_get(3) and rights(4). -func CapRightsGet(fd uintptr) (*CapRights, error) { - r, err := CapRightsInit(nil) - if err != nil { - return nil, err - } - err = capRightsGet(capRightsGoVersion, int(fd), r) - if err != nil { - return nil, err - } - return r, nil -} diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go deleted file mode 100644 index 6fb7cb7..0000000 --- a/vendor/golang.org/x/sys/unix/constants.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -const ( - R_OK = 0x4 - W_OK = 0x2 - X_OK = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go deleted file mode 100644 index d785134..0000000 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +++ /dev/null @@ -1,26 +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. - -//go:build aix && ppc - -// Functions to access/create device major and minor numbers matching the -// encoding used by AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 16) & 0xffff) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return uint64(((major) << 16) | (minor)) -} diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go deleted file mode 100644 index 623a5e6..0000000 --- a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +++ /dev/null @@ -1,28 +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. - -//go:build aix && ppc64 - -// Functions to access/create device major and minor numbers matching the -// encoding used AIX. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x3fffffff00000000) >> 32) -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - return uint32((dev & 0x00000000ffffffff) >> 0) -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - var DEVNO64 uint64 - DEVNO64 = 0x8000000000000000 - return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) -} diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go deleted file mode 100644 index 8d1dc0f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_darwin.go +++ /dev/null @@ -1,24 +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. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Darwin's sys/types.h header. - -package unix - -// Major returns the major component of a Darwin device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 24) & 0xff) -} - -// Minor returns the minor component of a Darwin device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffffff) -} - -// Mkdev returns a Darwin device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 24) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go deleted file mode 100644 index 8502f20..0000000 --- a/vendor/golang.org/x/sys/unix/dev_dragonfly.go +++ /dev/null @@ -1,30 +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. - -// Functions to access/create device major and minor numbers matching the -// encoding used in Dragonfly's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a DragonFlyBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a DragonFlyBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a DragonFlyBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go deleted file mode 100644 index eba3b4b..0000000 --- a/vendor/golang.org/x/sys/unix/dev_freebsd.go +++ /dev/null @@ -1,30 +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. - -// Functions to access/create device major and minor numbers matching the -// encoding used in FreeBSD's sys/types.h header. -// -// The information below is extracted and adapted from sys/types.h: -// -// Minor gives a cookie instead of an index since in order to avoid changing the -// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for -// devices that don't use them. - -package unix - -// Major returns the major component of a FreeBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev >> 8) & 0xff) -} - -// Minor returns the minor component of a FreeBSD device number. -func Minor(dev uint64) uint32 { - return uint32(dev & 0xffff00ff) -} - -// Mkdev returns a FreeBSD device number generated from the given major and -// minor components. -func Mkdev(major, minor uint32) uint64 { - return (uint64(major) << 8) | uint64(minor) -} diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go deleted file mode 100644 index d165d6f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_linux.go +++ /dev/null @@ -1,42 +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. - -// Functions to access/create device major and minor numbers matching the -// encoding used by the Linux kernel and glibc. -// -// The information below is extracted and adapted from bits/sysmacros.h in the -// glibc sources: -// -// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's -// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major -// number and m is a hex digit of the minor number. This is backward compatible -// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also -// backward compatible with the Linux kernel, which for some architectures uses -// 32-bit dev_t, encoded as mmmM MMmm. - -package unix - -// Major returns the major component of a Linux device number. -func Major(dev uint64) uint32 { - major := uint32((dev & 0x00000000000fff00) >> 8) - major |= uint32((dev & 0xfffff00000000000) >> 32) - return major -} - -// Minor returns the minor component of a Linux device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x00000000000000ff) >> 0) - minor |= uint32((dev & 0x00000ffffff00000) >> 12) - return minor -} - -// Mkdev returns a Linux device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) & 0x00000fff) << 8 - dev |= (uint64(major) & 0xfffff000) << 32 - dev |= (uint64(minor) & 0x000000ff) << 0 - dev |= (uint64(minor) & 0xffffff00) << 12 - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go deleted file mode 100644 index b4a203d..0000000 --- a/vendor/golang.org/x/sys/unix/dev_netbsd.go +++ /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. - -// Functions to access/create device major and minor numbers matching the -// encoding used in NetBSD's sys/types.h header. - -package unix - -// Major returns the major component of a NetBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x000fff00) >> 8) -} - -// Minor returns the minor component of a NetBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xfff00000) >> 12) - return minor -} - -// Mkdev returns a NetBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x000fff00 - dev |= (uint64(minor) << 12) & 0xfff00000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go deleted file mode 100644 index f3430c4..0000000 --- a/vendor/golang.org/x/sys/unix/dev_openbsd.go +++ /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. - -// Functions to access/create device major and minor numbers matching the -// encoding used in OpenBSD's sys/types.h header. - -package unix - -// Major returns the major component of an OpenBSD device number. -func Major(dev uint64) uint32 { - return uint32((dev & 0x0000ff00) >> 8) -} - -// Minor returns the minor component of an OpenBSD device number. -func Minor(dev uint64) uint32 { - minor := uint32((dev & 0x000000ff) >> 0) - minor |= uint32((dev & 0xffff0000) >> 8) - return minor -} - -// Mkdev returns an OpenBSD device number generated from the given major and minor -// components. -func Mkdev(major, minor uint32) uint64 { - dev := (uint64(major) << 8) & 0x0000ff00 - dev |= (uint64(minor) << 8) & 0xffff0000 - dev |= (uint64(minor) << 0) & 0x000000ff - return dev -} diff --git a/vendor/golang.org/x/sys/unix/dev_zos.go b/vendor/golang.org/x/sys/unix/dev_zos.go deleted file mode 100644 index bb6a64f..0000000 --- a/vendor/golang.org/x/sys/unix/dev_zos.go +++ /dev/null @@ -1,28 +0,0 @@ -// 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 - -// Functions to access/create device major and minor numbers matching the -// encoding used by z/OS. -// -// The information below is extracted and adapted from <sys/stat.h> 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 deleted file mode 100644 index 1ebf117..0000000 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ /dev/null @@ -1,102 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -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) { - 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 deleted file mode 100644 index 1095fd3..0000000 --- a/vendor/golang.org/x/sys/unix/endian_big.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 - -package unix - -const isBigEndian = true diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go deleted file mode 100644 index b9f0e27..0000000 --- a/vendor/golang.org/x/sys/unix/endian_little.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -// -//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh - -package unix - -const isBigEndian = false diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go deleted file mode 100644 index a96da71..0000000 --- a/vendor/golang.org/x/sys/unix/env_unix.go +++ /dev/null @@ -1,31 +0,0 @@ -// 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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Unix environment variables. - -package unix - -import "syscall" - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -func Environ() []string { - return syscall.Environ() -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go deleted file mode 100644 index 6200876..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build dragonfly || freebsd || linux || netbsd - -package unix - -import "unsafe" - -// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. -var fcntl64Syscall uintptr = SYS_FCNTL - -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 - } - 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))) - if errno == 0 { - return nil - } - return errno -} diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go deleted file mode 100644 index a9911c7..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl_darwin.go +++ /dev/null @@ -1,24 +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. - -package unix - -import "unsafe" - -// 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 { - _, 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 deleted file mode 100644 index 13b4acd..0000000 --- a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) - -package unix - -func init() { - // On 32-bit Linux systems, the fcntl syscall that matches Go's - // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. - fcntl64Syscall = SYS_FCNTL64 -} diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go deleted file mode 100644 index 9e83d18..0000000 --- a/vendor/golang.org/x/sys/unix/fdset.go +++ /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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -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/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go deleted file mode 100644 index aca5721..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && !aix && !hurd - -package unix - -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. - -func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) - -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) { - syscall.Entersyscall() - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0 -} - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { - syscall.Entersyscall() - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) - syscall.Exitsyscall() - return r, 0, syscall.Errno(errno) -} - -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { - r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0 -} - -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} - -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) - return r, 0, syscall.Errno(errno) -} diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c deleted file mode 100644 index d468b7b..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && !aix && !hurd - -#include <errno.h> -#include <stdint.h> -#include <unistd.h> - -#define _STRINGIFY2_(x) #x -#define _STRINGIFY_(x) _STRINGIFY2_(x) -#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) - -// Call syscall from C code because the gccgo support for calling from -// Go to C does not support varargs functions. - -struct ret { - uintptr_t r; - 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) -{ - struct ret r; - - errno = 0; - r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); - r.err = errno; - 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) -{ - return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, 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 deleted file mode 100644 index 972d61b..0000000 --- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gccgo && linux && amd64 - -package unix - -import "syscall" - -//extern gettimeofday -func realGettimeofday(*Timeval, *byte) int32 - -func gettimeofday(tv *Timeval) (err syscall.Errno) { - r := realGettimeofday(tv, nil) - if r < 0 { - return syscall.GetErrno() - } - return 0 -} diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go deleted file mode 100644 index 848840a..0000000 --- a/vendor/golang.org/x/sys/unix/ifreq_linux.go +++ /dev/null @@ -1,141 +0,0 @@ -// 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. - -//go:build linux - -package unix - -import ( - "unsafe" -) - -// Helpers for dealing with ifreq since it contains a union and thus requires a -// lot of unsafe.Pointer casts to use properly. - -// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq -// contains an interface name and a union of arbitrary data which can be -// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq -// function. -// -// Use the Name method to access the stored interface name. The union data -// fields can be get and set using the following methods: -// - Uint16/SetUint16: flags -// - Uint32/SetUint32: ifindex, metric, mtu -type Ifreq struct{ raw ifreq } - -// NewIfreq creates an Ifreq with the input network interface name after -// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required) -// bytes. -func NewIfreq(name string) (*Ifreq, error) { - // Leave room for terminating NULL byte. - if len(name) >= IFNAMSIZ { - return nil, EINVAL - } - - var ifr ifreq - copy(ifr.Ifrn[:], name) - - return &Ifreq{raw: ifr}, nil -} - -// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc. - -// Name returns the interface name associated with the Ifreq. -func (ifr *Ifreq) Name() string { - return ByteSliceToString(ifr.raw.Ifrn[:]) -} - -// According to netdevice(7), only AF_INET addresses are returned for numerous -// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port -// field and other data is always empty. - -// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C -// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not -// AF_INET, an error is returned. -func (ifr *Ifreq) Inet4Addr() ([]byte, error) { - raw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0])) - if raw.Family != AF_INET { - // Cannot safely interpret raw.Addr bytes as an IPv4 address. - return nil, EINVAL - } - - return raw.Addr[:], nil -} - -// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an -// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length -// or an error will be returned. -func (ifr *Ifreq) SetInet4Addr(v []byte) error { - if len(v) != 4 { - return EINVAL - } - - var addr [4]byte - copy(addr[:], v) - - ifr.clear() - *(*RawSockaddrInet4)( - unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]), - ) = RawSockaddrInet4{ - // Always set IP family as ioctls would require it anyway. - Family: AF_INET, - Addr: addr, - } - - return nil -} - -// Uint16 returns the Ifreq union data as a C short/Go uint16 value. -func (ifr *Ifreq) Uint16() uint16 { - return *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) -} - -// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint16(v uint16) { - ifr.clear() - *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v -} - -// Uint32 returns the Ifreq union data as a C int/Go uint32 value. -func (ifr *Ifreq) Uint32() uint32 { - return *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) -} - -// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data. -func (ifr *Ifreq) SetUint32(v uint32) { - ifr.clear() - *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v -} - -// clear zeroes the ifreq's union field to prevent trailing garbage data from -// being sent to the kernel if an ifreq is reused. -func (ifr *Ifreq) clear() { - for i := range ifr.raw.Ifru { - ifr.raw.Ifru[i] = 0 - } -} - -// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as -// IoctlGetEthtoolDrvinfo which use these APIs under the hood. - -// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData, -// use the Ifreq.withData method. -type ifreqData struct { - name [IFNAMSIZ]byte - // A type separate from ifreq is required in order to comply with the - // unsafe.Pointer rules since the "pointer-ness" of data would not be - // preserved if it were cast into the byte array of a raw ifreq. - data unsafe.Pointer - // Pad to the same size as ifreq. - _ [len(ifreq{}.Ifru) - SizeofPtr]byte -} - -// withData produces an ifreqData with the pointer p set for ioctls which require -// arbitrary pointer data. -func (ifr Ifreq) withData(p unsafe.Pointer) ifreqData { - return ifreqData{ - name: ifr.raw.Ifrn, - data: p, - } -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go deleted file mode 100644 index 7ca4fa1..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_linux.go +++ /dev/null @@ -1,334 +0,0 @@ -// 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. - -package unix - -import "unsafe" - -// 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 IoctlGetUint32(fd int, req uint) (uint32, error) { - var value uint32 - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetRTCTime(fd int) (*RTCTime, error) { - var value RTCTime - err := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCTime(fd int, value *RTCTime) error { - return ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value)) -} - -func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { - var value RTCWkAlrm - err := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { - return ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value)) -} - -// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network -// device specified by ifname. -func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) - return &value, err -} - -// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC -// association for the network device specified by ifname. -func IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) - return &value, err -} - -// IoctlGetHwTstamp retrieves the hardware timestamping configuration -// for the network device specified by ifname. -func IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) { - ifr, err := NewIfreq(ifname) - if err != nil { - return nil, err - } - - value := HwTstampConfig{} - ifrd := ifr.withData(unsafe.Pointer(&value)) - - err = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd) - return &value, err -} - -// IoctlSetHwTstamp updates the hardware timestamping configuration for -// the network device specified by ifname. -func IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error { - ifr, err := NewIfreq(ifname) - if err != nil { - return err - } - ifrd := ifr.withData(unsafe.Pointer(cfg)) - return ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd) -} - -// FdToClockID derives the clock ID from the file descriptor number -// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is -// suitable for system calls like ClockGettime. -func FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) } - -// IoctlPtpClockGetcaps returns the description of a given PTP device. -func IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) { - var value PtpClockCaps - err := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpSysOffsetPrecise returns a description of the clock -// offset compared to the system clock. -func IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) { - var value PtpSysOffsetPrecise - err := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpSysOffsetExtended returns an extended description of the -// clock offset compared to the system clock. The samples parameter -// specifies the desired number of measurements. -func IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) { - value := PtpSysOffsetExtended{Samples: uint32(samples)} - err := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpPinGetfunc returns the configuration of the specified -// I/O pin on given PTP device. -func IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) { - value := PtpPinDesc{Index: uint32(index)} - err := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value)) - return &value, err -} - -// IoctlPtpPinSetfunc updates configuration of the specified PTP -// I/O pin. -func IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error { - return ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd)) -} - -// IoctlPtpPeroutRequest configures the periodic output mode of the -// PTP I/O pins. -func IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error { - return ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r)) -} - -// IoctlPtpExttsRequest configures the external timestamping mode -// of the PTP I/O pins. -func IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error { - return ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r)) -} - -// 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 := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value)) - return &value, 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 { - // arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr. - return ioctl(fd, WDIOC_KEEPALIVE, 0) -} - -// 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 { - return ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value)) -} - -// 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 := ioctlPtr(srcFd, FIDEDUPERANGE, 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 -} - -func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { - return ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value)) -} - -func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { - var value HIDRawDevInfo - err := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlHIDGetRawName(fd int) (string, error) { - var value [_HIDIOCGRAWNAME_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawPhys(fd int) (string, error) { - var value [_HIDIOCGRAWPHYS_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -func IoctlHIDGetRawUniq(fd int) (string, error) { - var value [_HIDIOCGRAWUNIQ_LEN]byte - err := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0])) - return ByteSliceToString(value[:]), err -} - -// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or -// output. See the netdevice(7) man page for details. -func IoctlIfreq(fd int, req uint, value *Ifreq) error { - // It is possible we will add more fields to *Ifreq itself later to prevent - // misuse, so pass the raw *ifreq directly. - return ioctlPtr(fd, req, unsafe.Pointer(&value.raw)) -} - -// TODO(mdlayher): export if and when IfreqData is exported. - -// ioctlIfreqData performs an ioctl using an ifreqData structure for input -// and/or output. See the netdevice(7) man page for details. -func ioctlIfreqData(fd int, req uint, value *ifreqData) error { - // The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are - // identical so pass *IfreqData directly. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an -// existing KCM socket, returning a structure containing the file descriptor of -// the new socket. -func IoctlKCMClone(fd int) (*KCMClone, error) { - var info KCMClone - if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { - return nil, err - } - - return &info, nil -} - -// IoctlKCMAttach attaches a TCP socket and associated BPF program file -// descriptor to a multiplexor. -func IoctlKCMAttach(fd int, info KCMAttach) error { - return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) -} - -// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor. -func IoctlKCMUnattach(fd int, info KCMUnattach) error { - return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) -} - -// IoctlLoopGetStatus64 gets the status of the loop device associated with the -// file descriptor fd using the LOOP_GET_STATUS64 operation. -func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { - var value LoopInfo64 - if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { - return nil, err - } - return &value, nil -} - -// IoctlLoopSetStatus64 sets the status of the loop device associated with the -// file descriptor fd using the LOOP_SET_STATUS64 operation. -func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { - return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) -} - -// IoctlLoopConfigure configures all loop device parameters in a single step -func IoctlLoopConfigure(fd int, value *LoopConfig) error { - return ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value)) -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_signed.go b/vendor/golang.org/x/sys/unix/ioctl_signed.go deleted file mode 100644 index 5b0759b..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_signed.go +++ /dev/null @@ -1,69 +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. - -//go:build aix || solaris - -package unix - -import ( - "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 int, 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 int, value int) error { - v := int32(value) - return ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// 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 int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// The req value will usually be TCSETA or TIOCSETA. -func IoctlSetTermios(fd int, req int, value *Termios) error { - // TODO: if we get the chance, remove the req parameter. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// 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 int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} diff --git a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go deleted file mode 100644 index 20f470b..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go +++ /dev/null @@ -1,69 +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. - -//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd - -package unix - -import ( - "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 ioctlPtr(fd, req, unsafe.Pointer(&v)) -} - -// 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. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// IoctlSetTermios performs an ioctl on fd with a *Termios. -// -// 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. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// 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 := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctlPtr(fd, req, 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 deleted file mode 100644 index c8b2a75..0000000 --- a/vendor/golang.org/x/sys/unix/ioctl_zos.go +++ /dev/null @@ -1,71 +0,0 @@ -// 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 - -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 int, 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 int, value *Winsize) error { - // TODO: if we get the chance, remove the req parameter and - // hardcode TIOCSWINSZ. - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -// 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 int, 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 int) (int, error) { - var value int - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctlPtr(fd, req, 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 int) (*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 deleted file mode 100644 index e6f31d3..0000000 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ /dev/null @@ -1,249 +0,0 @@ -#!/usr/bin/env bash -# 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. - -# This script runs or (given -n) prints suggested commands to generate files for -# the Architecture/OS specified by the GOARCH and GOOS environment variables. -# See README.md for more information about how the build system works. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="go run mksyscall.go" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -mkasm= -run="sh" -cmd="" - -case "$1" in --syscalls) - for i in zsyscall*go - do - # Run the command line that appears in the first line - # of the generated file to regenerate it. - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - cmd="echo" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -if [[ "$GOOS" = "linux" ]]; then - # Use the Docker-based build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS - exit -fi - -GOOSARCH_in=syscall_$GOOSARCH.go -case "$GOOSARCH" in -_* | *_ | _) - echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 - exit 1 - ;; -aix_ppc) - mkerrors="$mkerrors -maix32" - mksyscall="go run mksyscall_aix_ppc.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -aix_ppc64) - mkerrors="$mkerrors -maix64" - mksyscall="go run mksyscall_aix_ppc64.go -aix" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -darwin_amd64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -darwin_arm64) - mkerrors="$mkerrors -m64" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm.go" - ;; -dragonfly_amd64) - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -dragonfly" - mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_amd64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -freebsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - # 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://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -freebsd_riscv64) - mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -netbsd_386) - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -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" - ;; -netbsd_amd64) - 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" - ;; -netbsd_arm) - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -netbsd -arm" - mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~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" - ;; -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) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_amd64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -openbsd_arm) - mkasm="go run mkasm.go" - mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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_ppc64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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_riscv64) - mkasm="go run mkasm.go" - mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd -libc" - mksysctl="go run mksysctl_openbsd.go" - # 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" - ;; -solaris_amd64) - mksyscall="go run mksyscall_solaris.go" - mkerrors="$mkerrors -m64" - 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 - ;; -esac - -( - if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi - case "$GOOS" in - *) - syscall_goos="syscall_$GOOS.go" - case "$GOOS" in - darwin | dragonfly | freebsd | netbsd | openbsd) - syscall_goos="syscall_bsd.go $syscall_goos" - ;; - esac - if [ -n "$mksyscall" ]; then - if [ "$GOOSARCH" == "aix_ppc64" ]; then - # 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" == "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 - fi - esac - if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi - if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi - if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi - if [ -n "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi -) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh deleted file mode 100644 index 6ab02b6..0000000 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ /dev/null @@ -1,805 +0,0 @@ -#!/usr/bin/env bash -# 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. - -# Generate Go code listing errors and other #defined constant -# values (ENAMETOOLONG etc.), by asking the preprocessor -# about the definitions. - -unset LANG -export LC_ALL=C -export LC_CTYPE=C - -if test -z "$GOARCH" -o -z "$GOOS"; then - echo 1>&2 "GOARCH or GOOS not defined in environment" - exit 1 -fi - -# Check that we are using the new build system if we should -if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then - echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." - echo 1>&2 "See README.md" - exit 1 -fi - -if [[ "$GOOS" = "aix" ]]; then - CC=${CC:-gcc} -else - CC=${CC:-cc} -fi - -if [[ "$GOOS" = "solaris" ]]; then - # Assumes GNU versions of utilities in PATH. - export PATH=/usr/gnu/bin:$PATH -fi - -uname=$(uname) - -includes_AIX=' -#include <net/if.h> -#include <net/netopt.h> -#include <netinet/ip_mroute.h> -#include <sys/protosw.h> -#include <sys/stropts.h> -#include <sys/mman.h> -#include <sys/poll.h> -#include <sys/select.h> -#include <sys/termio.h> -#include <termios.h> -#include <fcntl.h> - -#define AF_LOCAL AF_UNIX -' - -includes_Darwin=' -#define _DARWIN_C_SOURCE -#define KERNEL 1 -#define _DARWIN_USE_64_BIT_INODE -#define __APPLE_USE_RFC_3542 -#include <stdint.h> -#include <sys/stdio.h> -#include <sys/attr.h> -#include <sys/clonefile.h> -#include <sys/kern_control.h> -#include <sys/types.h> -#include <sys/event.h> -#include <sys/ptrace.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/un.h> -#include <sys/sockio.h> -#include <sys/sys_domain.h> -#include <sys/sysctl.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/utsname.h> -#include <sys/wait.h> -#include <sys/xattr.h> -#include <sys/vsock.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_types.h> -#include <net/route.h> -#include <netinet/in.h> -#include <netinet/ip.h> -#include <termios.h> - -// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk. -#define TIOCREMOTE 0x80047469 -' - -includes_DragonFly=' -#include <sys/types.h> -#include <sys/event.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/stat.h> -#include <sys/sysctl.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/wait.h> -#include <sys/ioctl.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_clone.h> -#include <net/if_types.h> -#include <net/route.h> -#include <netinet/in.h> -#include <termios.h> -#include <netinet/ip.h> -#include <net/ip_mroute/ip_mroute.h> -' - -includes_FreeBSD=' -#include <sys/capsicum.h> -#include <sys/param.h> -#include <sys/types.h> -#include <sys/disk.h> -#include <sys/event.h> -#include <sys/sched.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/un.h> -#include <sys/sockio.h> -#include <sys/stat.h> -#include <sys/sysctl.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/wait.h> -#include <sys/ioctl.h> -#include <sys/ptrace.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_types.h> -#include <net/route.h> -#include <netinet/in.h> -#include <termios.h> -#include <netinet/ip.h> -#include <netinet/ip_mroute.h> -#include <sys/extattr.h> - -#if __FreeBSD__ >= 10 -#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 -#undef SIOCAIFADDR -#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data -#undef SIOCSIFPHYADDR -#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data -#endif -' - -includes_Linux=' -#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#ifndef __LP64__ -#define _FILE_OFFSET_BITS 64 -#endif -#define _GNU_SOURCE - -// See the description in unix/linux/types.go -#if defined(__ARM_EABI__) || \ - (defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \ - (defined(__powerpc__) && (!defined(__powerpc64__))) -# ifdef _TIME_BITS -# undef _TIME_BITS -# endif -# define _TIME_BITS 32 -#endif - -// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of -// these structures. We just include them copied from <bits/termios.h>. -#if defined(__powerpc__) -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; -#endif - -#include <bits/sockaddr.h> -#include <sys/epoll.h> -#include <sys/eventfd.h> -#include <sys/inotify.h> -#include <sys/ioctl.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/prctl.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <sys/time.h> -#include <sys/select.h> -#include <sys/signalfd.h> -#include <sys/socket.h> -#include <sys/timerfd.h> -#include <sys/uio.h> -#include <sys/xattr.h> -#include <netinet/udp.h> -#include <linux/audit.h> -#include <linux/bpf.h> -#include <linux/can.h> -#include <linux/can/error.h> -#include <linux/can/netlink.h> -#include <linux/can/raw.h> -#include <linux/capability.h> -#include <linux/cryptouser.h> -#include <linux/devlink.h> -#include <linux/dm-ioctl.h> -#include <linux/errqueue.h> -#include <linux/ethtool_netlink.h> -#include <linux/falloc.h> -#include <linux/fanotify.h> -#include <linux/fib_rules.h> -#include <linux/filter.h> -#include <linux/fs.h> -#include <linux/fscrypt.h> -#include <linux/fsverity.h> -#include <linux/genetlink.h> -#include <linux/hdreg.h> -#include <linux/hidraw.h> -#include <linux/if.h> -#include <linux/if_addr.h> -#include <linux/if_alg.h> -#include <linux/if_arp.h> -#include <linux/if_ether.h> -#include <linux/if_ppp.h> -#include <linux/if_tun.h> -#include <linux/if_packet.h> -#include <linux/if_xdp.h> -#include <linux/input.h> -#include <linux/kcm.h> -#include <linux/kexec.h> -#include <linux/keyctl.h> -#include <linux/landlock.h> -#include <linux/loop.h> -#include <linux/lwtunnel.h> -#include <linux/magic.h> -#include <linux/memfd.h> -#include <linux/module.h> -#include <linux/mount.h> -#include <linux/netfilter/nfnetlink.h> -#include <linux/netfilter/nf_tables.h> -#include <linux/netlink.h> -#include <linux/net_namespace.h> -#include <linux/nfc.h> -#include <linux/nsfs.h> -#include <linux/perf_event.h> -#include <linux/pps.h> -#include <linux/ptp_clock.h> -#include <linux/ptrace.h> -#include <linux/random.h> -#include <linux/reboot.h> -#include <linux/rtc.h> -#include <linux/rtnetlink.h> -#include <linux/sched.h> -#include <linux/seccomp.h> -#include <linux/serial.h> -#include <linux/sock_diag.h> -#include <linux/sockios.h> -#include <linux/taskstats.h> -#include <linux/tipc.h> -#include <linux/vm_sockets.h> -#include <linux/wait.h> -#include <linux/watchdog.h> -#include <linux/wireguard.h> - -#include <mtd/ubi-user.h> -#include <mtd/mtd-user.h> -#include <net/route.h> - -#if defined(__sparc__) -// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the -// definition in glibc. As only the error constants are needed here, include the -// generic termibits.h (which is included by termbits.h on sparc). -#include <asm-generic/termbits.h> -#else -#include <asm/termbits.h> -#endif - -#ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 0xc -#endif - -#ifndef PTRACE_SETREGS -#define PTRACE_SETREGS 0xd -#endif - -#ifdef SOL_BLUETOOTH -// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h -// but it is already in bluetooth_linux.go -#undef SOL_BLUETOOTH -#endif - -// Certain constants are missing from the fs/crypto UAPI -#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/netfilter/nf_nat.h -// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -// and netinet/in.h. -#define NF_NAT_RANGE_MAP_IPS (1 << 0) -#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -#define NF_NAT_RANGE_PERSISTENT (1 << 3) -#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -#define NF_NAT_RANGE_NETMAP (1 << 6) -#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ - (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -#define NF_NAT_RANGE_MASK \ - (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ - NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ - NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ - NF_NAT_RANGE_NETMAP) - -// 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=' -#include <sys/types.h> -#include <sys/param.h> -#include <sys/event.h> -#include <sys/extattr.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/sched.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/sysctl.h> -#include <sys/termios.h> -#include <sys/ttycom.h> -#include <sys/wait.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_types.h> -#include <net/route.h> -#include <netinet/in.h> -#include <netinet/in_systm.h> -#include <netinet/ip.h> -#include <netinet/ip_mroute.h> -#include <netinet/if_ether.h> - -// Needed since <sys/param.h> refers to it... -#define schedppq 1 -' - -includes_OpenBSD=' -#include <sys/types.h> -#include <sys/param.h> -#include <sys/event.h> -#include <sys/mman.h> -#include <sys/mount.h> -#include <sys/select.h> -#include <sys/sched.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/stat.h> -#include <sys/sysctl.h> -#include <sys/termios.h> -#include <sys/ttycom.h> -#include <sys/unistd.h> -#include <sys/wait.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_types.h> -#include <net/if_var.h> -#include <net/route.h> -#include <netinet/in.h> -#include <netinet/in_systm.h> -#include <netinet/ip.h> -#include <netinet/ip_mroute.h> -#include <netinet/if_ether.h> -#include <net/if_bridge.h> - -// We keep some constants not supported in OpenBSD 5.5 and beyond for -// the promise of compatibility. -#define EMUL_ENABLED 0x1 -#define EMUL_NATIVE 0x2 -#define IPV6_FAITH 0x1d -#define IPV6_OPTIONS 0x1 -#define IPV6_RTHDR_STRICT 0x1 -#define IPV6_SOCKOPT_RESERVED1 0x3 -#define SIOCGIFGENERIC 0xc020693a -#define SIOCSIFGENERIC 0x80206939 -#define WALTSIG 0x4 -' - -includes_SunOS=' -#include <limits.h> -#include <sys/types.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/sockio.h> -#include <sys/stat.h> -#include <sys/stream.h> -#include <sys/mman.h> -#include <sys/wait.h> -#include <sys/ioctl.h> -#include <sys/mkdev.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_arp.h> -#include <net/if_types.h> -#include <net/route.h> -#include <netinet/icmp6.h> -#include <netinet/in.h> -#include <netinet/ip.h> -#include <netinet/ip_mroute.h> -#include <termios.h> -' - - -includes=' -#include <sys/types.h> -#include <sys/file.h> -#include <fcntl.h> -#include <dirent.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netinet/ip.h> -#include <netinet/ip6.h> -#include <netinet/tcp.h> -#include <errno.h> -#include <sys/signal.h> -#include <signal.h> -#include <sys/resource.h> -#include <time.h> -' -ccflags="$@" - -# Write go tool cgo -godefs input. -( - echo package unix - echo - echo '/*' - indirect="includes_$(uname)" - echo "${!indirect} $includes" - echo '*/' - echo 'import "C"' - echo 'import "syscall"' - echo - echo 'const (' - - # The gcc command line prints all the #defines - # it encounters while processing the input - echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | - awk ' - $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} - - $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers - $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} - $2 ~ /^(SCM_SRCRT)$/ {next} - $2 ~ /^(MAP_FAILED)$/ {next} - $2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc. - - $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || - $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} - - $2 !~ /^ECCAPBITS/ && - $2 !~ /^ETH_/ && - $2 !~ /^EPROC_/ && - $2 !~ /^EQUIV_/ && - $2 !~ /^EXPR_/ && - $2 !~ /^EVIOC/ && - $2 ~ /^E[A-Z0-9_]+$/ || - $2 ~ /^B[0-9_]+$/ || - $2 ~ /^(OLD|NEW)DEV$/ || - $2 == "BOTHER" || - $2 ~ /^CI?BAUD(EX)?$/ || - $2 == "IBSHIFT" || - $2 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 !~ "X86_CR3_PCID_NOFLUSH" && - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 == "XCASE" || - $2 == "ALTWERASE" || - $2 == "NOKERNINFO" || - $2 == "NFDBITS" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || - $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || - $2 ~ /^O?XTABS$/ || - $2 ~ /^TC[IO](ON|OFF)$/ || - $2 ~ /^IN_/ || - $2 ~ /^KCM/ || - $2 ~ /^LANDLOCK_/ || - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^LO_(KEY|NAME)_SIZE$/ || - $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || - $2 == "LOOP_CONFIGURE" || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || - $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || - $2 ~ /^NFC_.*_(MAX)?SIZE$/ || - $2 ~ /^PTP_/ || - $2 ~ /^RAW_PAYLOAD_/ || - $2 ~ /^[US]F_/ || - $2 ~ /^TP_STATUS_/ || - $2 ~ /^FALLOC_/ || - $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || - $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || - $2 ~ /^HW_MACHINE$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 !~ "MNT_BITS" && - $2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || - $2 ~ /^NS_GET_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|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 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || - $2 ~ /^(CONNECT|SAE)_/ || - $2 ~ /^FIORDCHK$/ || - $2 ~ /^SIOC/ || - $2 ~ /^TIOC/ || - $2 ~ /^TCGET/ || - $2 ~ /^TCSET/ || - $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || - $2 !~ "RTF_BITS" && - $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|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^AUDIT_/ || - $2 ~ /^(CLOCK|TIMER)_/ || - $2 ~ /^CAN_/ || - $2 ~ /^CAP_/ || - $2 ~ /^CP_/ || - $2 ~ /^CPUSTATES$/ || - $2 ~ /^CTLIOCGINFO$/ || - $2 ~ /^ALG_/ || - $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_/ || - $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || - $2 ~ /^SYNC_FILE_RANGE_/ || - $2 !~ /IOC_MAGIC/ && - $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || - $2 ~ /^(VM|VMADDR)_/ || - $2 ~ /^IOCTL_VM_SOCKETS_/ || - $2 ~ /^(TASKSTATS|TS)_/ || - $2 ~ /^CGROUPSTATS_/ || - $2 ~ /^GENL_/ || - $2 ~ /^STATX_/ || - $2 ~ /^RENAME/ || - $2 ~ /^UBI_IOC[A-Z]/ || - $2 ~ /^UTIME_/ || - $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || - $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || - $2 !~ /^NFT_META_IIFTYPE/ && - $2 ~ /^NFT_/ || - $2 ~ /^NF_NAT_/ || - $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 ~ /^ITIMER_/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ || - $2 ~ /^P_/ || - $2 ~/^PPPIOC/ || - $2 ~ /^FAN_|FANOTIFY_/ || - $2 == "HID_MAX_DESCRIPTOR_SIZE" || - $2 ~ /^_?HIDIOC/ || - $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || - $2 ~ /^MTD/ || - $2 ~ /^OTP/ || - $2 ~ /^MEM/ || - $2 ~ /^WG/ || - $2 ~ /^FIB_RULE_/ || - $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {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)} - - {next} - ' | sort - - echo ')' -) >_const.go - -# Pull out the error names for later. -errors=$( - echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | - sort -) - -# Pull out the signal names for later. -signals=$( - echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | - sort -) - -# Again, writing regexps to a file. -echo '#include <errno.h>' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | - sort >_error.grep -echo '#include <signal.h>' | $CC -x c - -E -dM $ccflags | - awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - grep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | - sort >_signal.grep - -echo '// mkerrors.sh' "$@" -echo '// Code generated by the command above; see README.md. DO NOT EDIT.' -echo -echo "//go:build ${GOARCH} && ${GOOS}" -echo -go tool cgo -godefs -- "$@" _const.go >_error.out -cat _error.out | grep -vf _error.grep | grep -vf _signal.grep -echo -echo '// Errors' -echo 'const (' -cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' -echo ')' - -echo -echo '// Signals' -echo 'const (' -cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' -echo ')' - -# Run C program to print error and syscall strings. -( - echo -E " -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <ctype.h> -#include <string.h> -#include <signal.h> - -#define nelem(x) (sizeof(x)/sizeof((x)[0])) - -enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below - -struct tuple { - int num; - const char *name; -}; - -struct tuple errors[] = { -" - for i in $errors - do - echo -E ' {'$i', "'$i'" },' - done - - echo -E " -}; - -struct tuple signals[] = { -" - for i in $signals - do - echo -E ' {'$i', "'$i'" },' - done - - # Use -E because on some systems bash builtin interprets \n itself. - echo -E ' -}; - -static int -tuplecmp(const void *a, const void *b) -{ - return ((struct tuple *)a)->num - ((struct tuple *)b)->num; -} - -int -main(void) -{ - int i, e; - char buf[1024], *p; - - printf("\n\n// Error table\n"); - printf("var errorList = [...]struct {\n"); - printf("\tnum syscall.Errno\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); - for(i=0; i<nelem(errors); i++) { - e = errors[i].num; - if(i > 0 && errors[i-1].num == e) - continue; - strncpy(buf, strerror(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); - } - printf("}\n\n"); - - printf("\n\n// Signal table\n"); - printf("var signalList = [...]struct {\n"); - printf("\tnum syscall.Signal\n"); - printf("\tname string\n"); - printf("\tdesc string\n"); - printf("} {\n"); - qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); - for(i=0; i<nelem(signals); i++) { - e = signals[i].num; - if(i > 0 && signals[i-1].num == e) - continue; - strncpy(buf, strsignal(e), sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; - // cut trailing : number. - p = strrchr(buf, ":"[0]); - if(p) - *p = '\0'; - printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); - } - printf("}\n\n"); - - return 0; -} - -' -) >_errors.c - -$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go deleted file mode 100644 index 7f602ff..0000000 --- a/vendor/golang.org/x/sys/unix/mmap_nomremap.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos - -package unix - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go deleted file mode 100644 index 3a5e776..0000000 --- a/vendor/golang.org/x/sys/unix/mremap.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux || netbsd - -package unix - -import "unsafe" - -type mremapMmapper struct { - mmapper - mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -} - -var mapper = &mremapMmapper{ - mmapper: mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, - }, - mremap: mremap, -} - -func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { - return nil, EINVAL - } - - pOld := &oldData[cap(oldData)-1] - m.Lock() - defer m.Unlock() - bOld := m.active[pOld] - if bOld == nil || &bOld[0] != &oldData[0] { - return nil, EINVAL - } - newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) - if errno != nil { - return nil, errno - } - bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) - pNew := &bNew[cap(bNew)-1] - if flags&mremapDontunmap == 0 { - delete(m.active, pOld) - } - m.active[pNew] = bNew - return bNew, nil -} - -func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - return mapper.Mremap(oldData, newLength, flags) -} - -func MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr)) - return unsafe.Pointer(xaddr), err -} diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go deleted file mode 100644 index 0482408..0000000 --- a/vendor/golang.org/x/sys/unix/pagesize_unix.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// For Unix, get the pagesize from the runtime. - -package unix - -import "syscall" - -func Getpagesize() int { - return syscall.Getpagesize() -} diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go deleted file mode 100644 index 6a09af5..0000000 --- a/vendor/golang.org/x/sys/unix/pledge_openbsd.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unix - -import ( - "errors" - "fmt" - "strconv" -) - -// Pledge implements the pledge syscall. -// -// This changes both the promises and execpromises; use PledgePromises or -// PledgeExecpromises to only change the promises or execpromises -// respectively. -// -// For more information see pledge(2). -func Pledge(promises, execpromises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - - exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - - return pledge(pptr, exptr) -} - -// PledgePromises implements the pledge syscall. -// -// This changes the promises and leaves the execpromises untouched. -// -// For more information see pledge(2). -func PledgePromises(promises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - - return pledge(pptr, nil) -} - -// PledgeExecpromises implements the pledge syscall. -// -// This changes the execpromises and leaves the promises untouched. -// -// For more information see pledge(2). -func PledgeExecpromises(execpromises string) error { - if err := pledgeAvailable(); err != nil { - return err - } - - exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - - return pledge(nil, exptr) -} - -// majmin returns major and minor version number for an OpenBSD system. -func majmin() (major int, minor int, err error) { - var v Utsname - err = Uname(&v) - if err != nil { - return - } - - major, err = strconv.Atoi(string(v.Release[0])) - if err != nil { - err = errors.New("cannot parse major version number returned by uname") - return - } - - minor, err = strconv.Atoi(string(v.Release[2])) - if err != nil { - err = errors.New("cannot parse minor version number returned by uname") - return - } - - return -} - -// pledgeAvailable checks for availability of the pledge(2) syscall -// based on the running OpenBSD version. -func pledgeAvailable() error { - maj, min, err := majmin() - if err != nil { - return err - } - - // Require OpenBSD 6.4 as a minimum. - if maj < 6 || (maj == 6 && min <= 3) { - return fmt.Errorf("cannot call Pledge on OpenBSD %d.%d", maj, min) - } - - return nil -} diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go deleted file mode 100644 index 3f0975f..0000000 --- a/vendor/golang.org/x/sys/unix/ptrace_darwin.go +++ /dev/null @@ -1,11 +0,0 @@ -// 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 darwin && !ios - -package unix - -func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ptrace1(request, pid, addr, data) -} diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go deleted file mode 100644 index a4d35db..0000000 --- a/vendor/golang.org/x/sys/unix/ptrace_ios.go +++ /dev/null @@ -1,11 +0,0 @@ -// 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 ios - -package unix - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - return ENOTSUP -} diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go deleted file mode 100644 index 714d2aa..0000000 --- a/vendor/golang.org/x/sys/unix/race.go +++ /dev/null @@ -1,30 +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. - -//go:build (darwin && race) || (linux && race) || (freebsd && race) - -package unix - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go deleted file mode 100644 index 4a9f663..0000000 --- a/vendor/golang.org/x/sys/unix/race0.go +++ /dev/null @@ -1,25 +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. - -//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos - -package unix - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go deleted file mode 100644 index dbd2b6c..0000000 --- a/vendor/golang.org/x/sys/unix/readdirent_getdents.go +++ /dev/null @@ -1,12 +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. - -//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd - -package unix - -// ReadDirent reads directory entries from fd and writes them into buf. -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) -} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go deleted file mode 100644 index b903c00..0000000 --- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +++ /dev/null @@ -1,19 +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. - -//go:build darwin || zos - -package unix - -import "unsafe" - -// 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. - // 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) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go deleted file mode 100644 index 5144dee..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +++ /dev/null @@ -1,16 +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. - -package unix - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { - // 64-bit Dragonfly before the September 2019 ABI changes still requires - // 32-bit aligned access to network subsystem. - salign = 4 - } - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go deleted file mode 100644 index 5f63147..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +++ /dev/null @@ -1,85 +0,0 @@ -// 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. - -// Socket control messages - -package unix - -import "unsafe" - -// UnixCredentials encodes credentials into a socket control message -// for sending to another process. This can be used for -// authentication. -func UnixCredentials(ucred *Ucred) []byte { - b := make([]byte, CmsgSpace(SizeofUcred)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_CREDENTIALS - h.SetLen(CmsgLen(SizeofUcred)) - *(*Ucred)(h.data(0)) = *ucred - return b -} - -// ParseUnixCredentials decodes a socket control message that contains -// credentials in a Ucred structure. To receive such a message, the -// SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_CREDENTIALS { - return nil, EINVAL - } - ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) - return &ucred, nil -} - -// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. -func PktInfo4(info *Inet4Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IP - h.Type = IP_PKTINFO - h.SetLen(CmsgLen(SizeofInet4Pktinfo)) - *(*Inet4Pktinfo)(h.data(0)) = *info - return b -} - -// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. -func PktInfo6(info *Inet6Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IPV6 - h.Type = IPV6_PKTINFO - h.SetLen(CmsgLen(SizeofInet6Pktinfo)) - *(*Inet6Pktinfo)(h.data(0)) = *info - return b -} - -// ParseOrigDstAddr decodes a socket control message containing the original -// destination address. To receive such a message the IP_RECVORIGDSTADDR or -// IPV6_RECVORIGDSTADDR option must be enabled on the socket. -func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) { - switch { - case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR: - pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.Addr = pp.Addr - return sa, nil - - case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR: - pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0])) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - sa.Addr = pp.Addr - return sa, nil - - default: - return nil, EINVAL - } -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go deleted file mode 100644 index c3a62db..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Socket control messages - -package unix - -import ( - "unsafe" -) - -// CmsgLen returns the value to store in the Len field of the Cmsghdr -// structure, taking into account any necessary alignment. -func CmsgLen(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + datalen -} - -// CmsgSpace returns the number of bytes an ancillary element with -// payload of the passed data length occupies. -func CmsgSpace(datalen int) int { - return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) -} - -func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { - return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) -} - -// SocketControlMessage represents a socket control message. -type SocketControlMessage struct { - Header Cmsghdr - Data []byte -} - -// ParseSocketControlMessage parses b as an array of socket control -// messages. -func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { - var msgs []SocketControlMessage - i := 0 - for i+CmsgLen(0) <= len(b) { - h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) - if err != nil { - return nil, err - } - m := SocketControlMessage{Header: *h, Data: dbuf} - msgs = append(msgs, m) - i += cmsgAlignOf(int(h.Len)) - } - return msgs, nil -} - -// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, -// message data (a slice of b), and the remainder of b after that single message. -// When there are no remaining messages, len(remainder) == 0. -func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { - h, dbuf, err := socketControlMessageHeaderAndData(b) - if err != nil { - return Cmsghdr{}, nil, nil, err - } - if i := cmsgAlignOf(int(h.Len)); i < len(b) { - remainder = b[i:] - } - return *h, dbuf, remainder, nil -} - -func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { - return nil, nil, EINVAL - } - return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil -} - -// UnixRights encodes a set of open file descriptors into a socket -// control message for sending to another process. -func UnixRights(fds ...int) []byte { - datalen := len(fds) * 4 - b := make([]byte, CmsgSpace(datalen)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_RIGHTS - h.SetLen(CmsgLen(datalen)) - for i, fd := range fds { - *(*int32)(h.data(4 * uintptr(i))) = int32(fd) - } - return b -} - -// ParseUnixRights decodes a socket control message that contains an -// integer array of open file descriptors from another process. -func ParseUnixRights(m *SocketControlMessage) ([]int, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_RIGHTS { - return nil, EINVAL - } - fds := make([]int, len(m.Data)>>2) - for i, j := 0, 0; i < len(m.Data); i += 4 { - fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) - j++ - } - return fds, nil -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go deleted file mode 100644 index 4a1eab3..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +++ /dev/null @@ -1,46 +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. - -//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import ( - "runtime" -) - -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - - // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in - // sockcmsg_dragonfly.go - switch runtime.GOOS { - case "aix": - // There is no alignment on AIX. - salign = 1 - case "darwin", "ios", "illumos", "solaris": - // NOTE: It seems like 64-bit Darwin, Illumos and Solaris - // kernels still require 32-bit aligned access to network - // subsystem. - if SizeofPtr == 8 { - salign = 4 - } - case "netbsd", "openbsd": - // NetBSD and OpenBSD armv7 require 64-bit alignment. - if runtime.GOARCH == "arm" { - salign = 8 - } - // NetBSD aarch64 requires 128-bit alignment. - if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { - salign = 16 - } - case "zos": - // z/OS socket macros use [32-bit] sizeof(int) alignment, - // not pointer width. - salign = SizeofInt - } - - return (salen + salign - 1) & ^(salign - 1) -} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/vendor/golang.org/x/sys/unix/sockcmsg_zos.go deleted file mode 100644 index 3e53dbc..0000000 --- a/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Socket control messages - -package unix - -import "unsafe" - -// UnixCredentials encodes credentials into a socket control message -// for sending to another process. This can be used for -// authentication. -func UnixCredentials(ucred *Ucred) []byte { - b := make([]byte, CmsgSpace(SizeofUcred)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_SOCKET - h.Type = SCM_CREDENTIALS - h.SetLen(CmsgLen(SizeofUcred)) - *(*Ucred)(h.data(0)) = *ucred - return b -} - -// ParseUnixCredentials decodes a socket control message that contains -// credentials in a Ucred structure. To receive such a message, the -// SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { - if m.Header.Level != SOL_SOCKET { - return nil, EINVAL - } - if m.Header.Type != SCM_CREDENTIALS { - return nil, EINVAL - } - ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) - return &ucred, nil -} - -// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. -func PktInfo4(info *Inet4Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IP - h.Type = IP_PKTINFO - h.SetLen(CmsgLen(SizeofInet4Pktinfo)) - *(*Inet4Pktinfo)(h.data(0)) = *info - return b -} - -// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. -func PktInfo6(info *Inet6Pktinfo) []byte { - b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) - h := (*Cmsghdr)(unsafe.Pointer(&b[0])) - h.Level = SOL_IPV6 - h.Type = IPV6_PKTINFO - h.SetLen(CmsgLen(SizeofInet6Pktinfo)) - *(*Inet6Pktinfo)(h.data(0)) = *info - return b -} diff --git a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s deleted file mode 100644 index 3c4f33c..0000000 --- a/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build zos && s390x && gc - -#include "textflag.h" - -// provide the address of function variable to be fixed up. - -TEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Pipe2(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Flock(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Getxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Nanosleep(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Setxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Wait4(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mount(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unmount(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·UtimesNanoAt(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·UtimesNano(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mkfifoat(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Chtag(SB), R8 - MOVD R8, ret+0(FP) - RET - -TEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Readlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go deleted file mode 100644 index 5ea74da..0000000 --- a/vendor/golang.org/x/sys/unix/syscall.go +++ /dev/null @@ -1,86 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -// Package unix contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display OS-specific documentation for the current -// system. If you want godoc to display OS documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package unix // import "golang.org/x/sys/unix" - -import ( - "bytes" - "strings" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - 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) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -var _zero uintptr diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go deleted file mode 100644 index 6f15ba1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ /dev/null @@ -1,582 +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. - -//go:build aix - -// Aix system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import "unsafe" - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) error { - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - 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 - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = uint8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -//sys getcwd(buf []byte) (err error) - -const ImplementsGetwd = true - -func Getwd() (ret string, err error) { - for len := uint64(4096); ; len *= 2 { - b := make([]byte, len) - err := getcwd(b) - if err == nil { - i := 0 - for b[i] != 0 { - i++ - } - return string(b[0:i]), nil - } - if err != ERANGE { - return "", err - } - } -} - -func Getcwd(buf []byte) (n int, err error) { - err = getcwd(buf) - if err == nil { - i := 0 - for buf[i] != 0 { - i++ - } - n = i + 1 - } - return -} - -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 16 on BSD. - if n < 0 || n > 1000 { - 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]) -} - -/* - * Socket - */ - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - - // Some versions of AIX have a bug in getsockname (see IV78655). - // We can't rely on sa.Len being set correctly. - n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - 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]) - sa.Addr = pp.Addr - 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 - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -func Gettimeofday(tv *Timeval) (err error) { - err = gettimeofday(tv, nil) - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -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 getdirent(fd int, buf []byte) (n int, err error) - -func Getdents(fd int, buf []byte) (n int, err error) { - return getdirent(fd, buf) -} - -//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - var r Pid_t - err = ERESTART - // AIX wait4 may return with ERESTART errno, while the process is still - // active. - for err == ERESTART { - r, err = wait4(Pid_t(pid), &status, options, rusage) - } - wpid = int(r) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -/* - * Wait - */ - -type WaitStatus uint32 - -func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } -func (w WaitStatus) StopSignal() Signal { - if !w.Stopped() { - return -1 - } - return Signal(w>>8) & 0xFF -} - -func (w WaitStatus) Exited() bool { return w&0xFF == 0 } -func (w WaitStatus) ExitStatus() int { - if !w.Exited() { - return -1 - } - return int((w >> 8) & 0xFF) -} - -func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } -func (w WaitStatus) Signal() Signal { - if !w.Signaled() { - return -1 - } - return Signal(w>>16) & 0xFF -} - -func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } - -func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys ioctl(fd int, req int, arg uintptr) (err error) -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl - -// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX -// There is no way to create a custom fcntl and to keep //sys fcntl easily, -// Therefore, the programmer must call dup2 instead of fcntl in this case. - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl - -// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -//sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range - -func Fsync(fd int) error { - return fsyncRange(fd, O_SYNC, 0, 0) -} - -/* - * Direct access - */ - -//sys Acct(path string) (err error) -//sys Chdir(path string) (err error) -//sys Chroot(path string) (err error) -//sys Close(fd int) (err error) -//sys Dup(oldfd int) (fd 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) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys Fdatasync(fd int) (err error) -// readdir_r -//sysnb Getpgid(pid int) (pgid int, err error) - -//sys Getpgrp() (pid int) - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Kill(pid int, sig Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog -//sys Mkdir(dirfd int, path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) - -//sys Setuid(uid int) (err error) -//sys Setgid(uid int) (err error) - -//sys Setpriority(which int, who int, prio int) (err error) -//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) -//sys Sync() -//sysnb Times(tms *Tms) (ticks uintptr, err error) -//sysnb Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys write(fd int, p []byte) (n int, err error) - -//sys Dup2(oldfd int, newfd int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 -//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) = fstatat -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys lstat(path string, stat *Stat_t) (err error) -//sys Pause() (err error) -//sys pread(fd int, p []byte, offset int64) (n int, err error) = pread64 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) -//sysnb Setregid(rgid int, egid int) (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) -//sys stat(path string, statptr *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) - -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) - -// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg - -//sys munmap(addr uintptr, length uintptr) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -//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) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} - -//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 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) - -//sys Getsystemcfg(label int) (n uint64) - -//sys umount(target string) (err error) - -func Unmount(target string, flags int) (err error) { - if flags != 0 { - // AIX doesn't have any flags for umount. - return ENOSYS - } - return umount(target) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go deleted file mode 100644 index 1fdaa47..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +++ /dev/null @@ -1,52 +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. - -//go:build aix && ppc - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -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 Fstat(fd int, stat *Stat_t) error { - return fstat(fd, stat) -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { - return fstatat(dirfd, path, stat, flags) -} - -func Lstat(path string, stat *Stat_t) error { - return lstat(path, stat) -} - -func Stat(path string, statptr *Stat_t) error { - return stat(path, statptr) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go deleted file mode 100644 index c87f9a9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +++ /dev/null @@ -1,83 +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. - -//go:build aix && ppc64 - -package unix - -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek - -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int64(sec), Usec: int32(usec)} -} - -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 = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -// In order to only have Timespec structure, type of Stat_t's fields -// Atim, Mtim and Ctim is changed from StTimespec to Timespec during -// ztypes generation. -// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an -// int32, so the fields' value must be modified. -func fixStatTimFields(stat *Stat_t) { - stat.Atim.Nsec >>= 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 deleted file mode 100644 index a00c3e5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ /dev/null @@ -1,609 +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. - -//go:build darwin || dragonfly || freebsd || netbsd || openbsd - -// BSD system call wrappers shared by *BSD based systems -// including OS X (Darwin) and FreeBSD. Like the other -// syscall_*.go files it is compiled as Go code but also -// used as input to mksyscall which parses the //sys -// lines and generates system call stubs. - -package unix - -import ( - "runtime" - "syscall" - "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 - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -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 16 on BSD. - if n < 0 || n > 1000 { - 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]) -} - -// 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. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - killed = 9 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -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 { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb socket(domain int, typ int, proto int) (fd int, 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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sys Shutdown(s int, how int) (err error) - -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) - sa.raw.Addr = sa.Addr - 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 - sa.raw.Addr = sa.Addr - 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 (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Index == 0 { - return nil, 0, EINVAL - } - sa.raw.Len = sa.Len - sa.raw.Family = AF_LINK - sa.raw.Index = sa.Index - sa.raw.Type = sa.Type - sa.raw.Nlen = sa.Nlen - sa.raw.Alen = sa.Alen - sa.raw.Slen = sa.Slen - sa.raw.Data = sa.Data - return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_LINK: - pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) - sa := new(SockaddrDatalink) - sa.Len = pp.Len - sa.Family = pp.Family - sa.Index = pp.Index - sa.Type = pp.Type - sa.Nlen = pp.Nlen - sa.Alen = pp.Alen - sa.Slen = pp.Slen - sa.Data = pp.Data - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { - return nil, EINVAL - } - sa := new(SockaddrUnix) - - // Some BSDs include the trailing NUL in the length, whereas - // others do not. Work around this by subtracting the leading - // family and len. The path is then scanned to see if a NUL - // terminator still exists within the length. - n := int(pp.Len) - 2 // subtract leading Family, Len - for i := 0; i < n; i++ { - if pp.Path[i] == 0 { - // found early NUL; assume Len included the NUL - // or was overestimating. - n = i - break - } - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - 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]) - sa.Addr = pp.Addr - 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 - sa.Addr = pp.Addr - return sa, nil - } - return anyToSockaddrGOOS(fd, rsa) -} - -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 - } - 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 - // is accepted, but has no address. - Close(nfd) - return 0, nil, ECONNABORTED - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -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(jsing): DragonFly has a "bug" (see issue 3349), which should be - // reported upstream. - if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { - rsa.Addr.Family = AF_UNIX - rsa.Addr.Len = SizeofSockaddrUnix - } - return anyToSockaddr(fd, &rsa) -} - -//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. -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 ByteSliceToString(buf[:vallen]), 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 recvmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Control = (*byte)(unsafe.Pointer(&oob[0])) - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) - -func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { - var change, event unsafe.Pointer - if len(changes) > 0 { - change = unsafe.Pointer(&changes[0]) - } - if len(events) > 0 { - event = unsafe.Pointer(&events[0]) - } - return kevent(kq, change, len(changes), event, len(events), timeout) -} - -// 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. - mib, err := nametomib(name) - if err != nil { - return nil, err - } - - for _, a := range args { - mib = append(mib, _C_int(a)) - } - - return mib, nil -} - -func Sysctl(name string) (string, error) { - return SysctlArgs(name) -} - -func SysctlArgs(name string, args ...int) (string, error) { - buf, err := SysctlRaw(name, args...) - if err != nil { - return "", err - } - n := len(buf) - - // Throw away terminating NUL. - if n > 0 && buf[n-1] == '\x00' { - n-- - } - return string(buf[0:n]), nil -} - -func SysctlUint32(name string) (uint32, error) { - return SysctlUint32Args(name) -} - -func SysctlUint32Args(name string, args ...int) (uint32, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(4) - buf := make([]byte, 4) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 4 { - return 0, EIO - } - return *(*uint32)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlUint64(name string, args ...int) (uint64, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return 0, err - } - - n := uintptr(8) - buf := make([]byte, 8) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return 0, err - } - if n != 8 { - return 0, EIO - } - return *(*uint64)(unsafe.Pointer(&buf[0])), nil -} - -func SysctlRaw(name string, args ...int) ([]byte, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - - // Read into buffer of that size. - buf := make([]byte, n) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return nil, err - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - 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 { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(ts) != 2 { - return EINVAL - } - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - // 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 UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys futimes(fd int, timeval *[2]Timeval) (err error) - -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimes(fd, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//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 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -// TODO: wrap -// Acct(name nil-string) (err error) -// Gethostuuid(uuid *byte, timeout *Timespec) (err error) -// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) - -//sys Madvise(b []byte, behav int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go deleted file mode 100644 index 798f61a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ /dev/null @@ -1,854 +0,0 @@ -// Copyright 2009,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. - -// Darwin system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "syscall" - "unsafe" -) - -//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(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) - dir = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fdopendir_trampoline_addr uintptr - -//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. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), 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 -} - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - 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 -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - CID uint32 - Port uint32 - raw RawSockaddrVM -} - -func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Len = SizeofSockaddrVM - sa.raw.Family = AF_VSOCK - sa.raw.Port = sa.Port - sa.raw.Cid = sa.CID - - return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, 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 - } - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - } - 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]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - return buf[0 : n/siz], nil -} - -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) } -func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } - -//sysnb pipe(p *[2]int32) (err error) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - var x [2]int32 - err = pipe(&x) - if err == nil { - p[0] = int(x[0]) - p[1] = int(x[1]) - } - return -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - return getfsstat(_p0, bufsize, flags) -} - -func xattrPointer(dest []byte) *byte { - // It's only when dest is set to NULL that the OS X implementations of - // getxattr() and listxattr() return the current sizes of the named attributes. - // An empty byte array is not sufficient. To maintain the same behaviour as the - // linux implementation, we wrap around the system calls and pass in NULL when - // dest is empty. - var destp *byte - if len(dest) > 0 { - destp = &dest[0] - } - return destp -} - -//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) -} - -//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) -} - -//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - // The parameters for the OS X implementation vary slightly compared to the - // linux system call, specifically the position parameter: - // - // linux: - // int setxattr( - // const char *path, - // const char *name, - // const void *value, - // size_t size, - // int flags - // ); - // - // darwin: - // int setxattr( - // const char *path, - // const char *name, - // void *value, - // size_t size, - // u_int32_t position, - // int options - // ); - // - // position specifies the offset within the extended attribute. In the - // current implementation, only the resource fork extended attribute makes - // use of this argument. For all others, position is reserved. We simply - // default to setting it to zero. - return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) -} - -//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) -} - -//sys removexattr(path string, attr string, options int) (err error) - -func Removexattr(path string, attr string) (err error) { - // We wrap around and explicitly zero out the options provided to the OS X - // implementation of removexattr, we do so for interoperability with the - // linux variant. - return removexattr(path, attr, 0) -} - -func Lremovexattr(link string, attr string) (err error) { - return removexattr(link, attr, XATTR_NOFOLLOW) -} - -//sys fremovexattr(fd int, attr string, options int) (err error) - -func Fremovexattr(fd int, attr string) (err error) { - return fremovexattr(fd, attr, 0) -} - -//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) - -func Listxattr(path string, dest []byte) (sz int, err error) { - return listxattr(path, xattrPointer(dest), len(dest), 0) -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) -} - -//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - return flistxattr(fd, xattrPointer(dest), len(dest), 0) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err 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) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { - return ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo)) -} - -// IfreqMTU is struct ifreq used to get or set a network device's MTU. -type IfreqMTU struct { - Name [IFNAMSIZ]byte - MTU int32 -} - -// 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 := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq)) - return &ifreq, 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 { - return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) -} - -//sys renamexNp(from string, to string, flag uint32) (err error) - -func RenamexNp(from string, to string, flag uint32) (err error) { - return renamexNp(from, to, flag) -} - -//sys renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) - -func RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) { - return renameatxNp(fromfd, from, tofd, to, flag) -} - -//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} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var length = int64(count) - err = sendfile(infd, outfd, *offset, &length, nil, 0) - written = int(length) - return -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -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 GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { - var value TCPConnectionInfo - vallen := _Socklen(SizeofTCPConnectionInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - var kinfo KinfoProc - n := uintptr(SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofKinfoProc { - return nil, EIO - } - return &kinfo, nil -} - -func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { - mib, err := sysctlmib(name, args...) - if err != nil { - return nil, err - } - - for { - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // Read into buffer of that size. - buf := make([]KinfoProc, n/SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { - if err == ENOMEM { - // Process table grew. Try again. - continue - } - return nil, err - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } - - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n/SizeofKinfoProc], nil - } -} - -//sys pthread_chdir_np(path string) (err error) - -func PthreadChdir(path string) (err error) { - return pthread_chdir_np(path) -} - -//sys pthread_fchdir_np(fd int) (err error) - -func PthreadFchdir(fd int) (err error) { - return pthread_fchdir_np(fd) -} - -// Connectx calls connectx(2) to initiate a connection on a socket. -// -// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument. -// -// - srcIf is the optional source interface index. 0 means unspecified. -// - srcAddr is the optional source address. nil means unspecified. -// - dstAddr is the destination address. -// -// On success, Connectx returns the number of bytes enqueued for transmission. -func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) { - endpoints := SaEndpoints{ - Srcif: srcIf, - } - - if srcAddr != nil { - addrp, addrlen, err := srcAddr.sockaddr() - if err != nil { - return 0, err - } - endpoints.Srcaddr = (*RawSockaddr)(addrp) - endpoints.Srcaddrlen = uint32(addrlen) - } - - if dstAddr != nil { - addrp, addrlen, err := dstAddr.sockaddr() - if err != nil { - return 0, err - } - endpoints.Dstaddr = (*RawSockaddr)(addrp) - endpoints.Dstaddrlen = uint32(addrlen) - } - - err = connectx(fd, &endpoints, associd, flags, iov, &n, connid) - return -} - -// sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) -const minIovec = 8 - -func Readv(fd int, iovs [][]byte) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = readv(fd, iovecs) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - n, err = preadv(fd, iovecs, offset) - readvRacedetect(iovecs, n, err) - return n, err -} - -func Writev(fd int, iovs [][]byte) (n int, err error) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - 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) { - if !darwinKernelVersionMin(11, 0, 0) { - return 0, ENOSYS - } - - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, iovs) - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = pwritev(fd, iovecs, offset) - writevRacedetect(iovecs, n) - return n, err -} - -func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { - for _, b := range bs { - var v Iovec - v.SetLen(len(b)) - if len(b) > 0 { - v.Base = &b[0] - } else { - v.Base = (*byte)(unsafe.Pointer(&_zero)) - } - vecs = append(vecs, v) - } - return vecs -} - -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) - } - } -} - -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 darwinMajorMinPatch() (maj, min, patch int, err error) { - var un Utsname - err = Uname(&un) - if err != nil { - return - } - - var mmp [3]int - c := 0 -Loop: - for _, b := range un.Release[:] { - switch { - case b >= '0' && b <= '9': - mmp[c] = 10*mmp[c] + int(b-'0') - case b == '.': - c++ - if c > 2 { - return 0, 0, 0, ENOTSUP - } - case b == 0: - break Loop - default: - return 0, 0, 0, ENOTSUP - } - } - if c != 2 { - return 0, 0, 0, ENOTSUP - } - return mmp[0], mmp[1], mmp[2], nil -} - -func darwinKernelVersionMin(maj, min, patch int) bool { - actualMaj, actualMin, actualPatch, err := darwinMajorMinPatch() - if err != nil { - return false - } - return actualMaj > maj || actualMaj == maj && (actualMin > min || actualMin == min && actualPatch >= patch) -} - -//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//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) -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//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) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//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) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//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 read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) -//sys Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) -//sys Setegid(egid int) (err error) -//sysnb Seteuid(euid int) (err error) -//sysnb Setgid(gid int) (err error) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sys Setprivexec(flag int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//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 readv(fd int, iovecs []Iovec) (n int, err error) -//sys preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) -//sys writev(fd int, iovecs []Iovec) (n int, err error) -//sys pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go deleted file mode 100644 index 0eaecf5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ /dev/null @@ -1,50 +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. - -//go:build amd64 && darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(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 = 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 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 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_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go deleted file mode 100644 index f36c670..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && darwin - -package unix - -import "syscall" - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(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 = 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 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) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go deleted file mode 100644 index 2f0fa76..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +++ /dev/null @@ -1,26 +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. - -//go:build darwin - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_darwin.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -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 -//go:linkname syscall_syscall6X syscall.syscall6X -//go:linkname syscall_syscall9 syscall.syscall9 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 -//go:linkname syscall_syscallPtr syscall.syscallPtr diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go deleted file mode 100644 index be8c002..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ /dev/null @@ -1,359 +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. - -// DragonFly BSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -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 { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - Rcf uint16 - Route [16]uint16 - 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]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - 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) { - 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 { - return EINVAL - } - r, w, err := pipe() - if err == nil { - p[0], p[1] = r, w - } - 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. - r, w, err := pipe2(&pp, flags) - if err == nil { - p[0], p[1] = r, w - } - 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) -} - -//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) - -func pwrite(fd int, p []byte, offset int64) (n int, err error) { - return extpwrite(fd, p, 0, offset) -} - -func Accept4(fd, 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 Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var _p0 unsafe.Pointer - var bufsize uintptr - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//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) - if err != nil { - // Utsname members on Dragonfly are only 32 bytes and - // the syscall returns ENOMEM in case the actual value - // is longer. - if err == ENOMEM { - err = nil - } - } - return err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { - return err - } - uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { - return err - } - uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { - return err - } - uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { - return err - } - uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func Dup3(oldfd, newfd, flags int) error { - if oldfd == newfd || flags&^O_CLOEXEC != 0 { - return EINVAL - } - how := F_DUP2FD - if flags&O_CLOEXEC != 0 { - how = F_DUP2FD_CLOEXEC - } - _, err := fcntl(oldfd, how, newfd) - return err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to 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) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//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 Flock(fd int, how int) (err error) -//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 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) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//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(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags 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 deleted file mode 100644 index 14bab6b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +++ /dev/null @@ -1,56 +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. - -//go:build amd64 && dragonfly - -package unix - -import ( - "syscall" - "unsafe" -) - -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 = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go deleted file mode 100644 index 2b57e0f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright 2009,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. - -// FreeBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "errors" - "sync" - "unsafe" -) - -// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. -var ( - osreldateOnce sync.Once - osreldate uint32 -) - -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 { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [46]int8 - 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]) - - // NOTE(rsc): It seems strange to set the buffer to have - // size CTL_MAXNAME+2 but use only CTL_MAXNAME - // as the size. I don't know why the +2 is here, but the - // kernel uses +2 for its own implementation of this function. - // I am scared that if we don't include the +2 here, the kernel - // will silently write 2 words farther than we specify - // and we'll get memory corruption. - var buf [CTL_MAXNAME + 2]_C_int - n := uintptr(CTL_MAXNAME) * siz - - p := (*byte)(unsafe.Pointer(&buf[0])) - bytes, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - - // Magic sysctl: "setting" 0.3 to a string name - // lets you read back the array of integers form. - if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { - return nil, err - } - 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) -} - -//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) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, errno -} - -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 - 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 Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var ( - _p0 unsafe.Pointer - bufsize uintptr - ) - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = e1 - } - return -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//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} - n := unsafe.Sizeof(uname.Sysname) - // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - return nil -} - -func Stat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, 0) -} - -func Lstat(path string, st *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) -} - -func Getdents(fd int, buf []byte) (n int, err error) { - return Getdirentries(fd, buf, nil) -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - if basep == nil || unsafe.Sizeof(*basep) == 8 { - return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) - } - // The 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(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 -} - -func Mknod(path string, mode uint32, dev uint64) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -//sys ptrace(request int, pid int, addr uintptr, data int) (err error) -//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE - -func PtraceAttach(pid int) (err error) { - return ptrace(PT_ATTACH, pid, 0, 0) -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PT_CONTINUE, pid, 1, signal) -} - -func PtraceDetach(pid int) (err error) { - return ptrace(PT_DETACH, pid, 1, 0) -} - -func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { - return ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0) -} - -func PtraceGetRegs(pid int, regsout *Reg) (err error) { - return ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0) -} - -func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{ - Op: int32(req), - Offs: offs, - } - if countin > 0 { - _ = out[:countin] // check bounds - ioDesc.Addr = &out[0] - } else if out != nil { - ioDesc.Addr = (*byte)(unsafe.Pointer(&_zero)) - } - ioDesc.SetLen(countin) - - err = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0) - return int(ioDesc.Len), err -} - -func PtraceLwpEvents(pid int, enable int) (err error) { - return ptrace(PT_LWP_EVENTS, pid, 0, enable) -} - -func PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) { - return ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info))) -} - -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 ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0) -} - -func PtraceSingleStep(pid int) (err error) { - return ptrace(PT_STEP, pid, 1, 0) -} - -func Dup3(oldfd, newfd, flags int) error { - if oldfd == newfd || flags&^O_CLOEXEC != 0 { - return EINVAL - } - how := F_DUP2FD - if flags&O_CLOEXEC != 0 { - how = F_DUP2FD_CLOEXEC - } - _, err := fcntl(oldfd, how, newfd) - return err -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys CapEnter() (err error) -//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET -//sys capRightsLimit(fd int, rightsp *CapRights) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(from int, to 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) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//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 Flock(fd int, how int) (err error) -//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 Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) -//sys Getdtablesize() (size int) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//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(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//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 read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Undelete(path string) (err error) -//sys Unlink(path string) (err error) -//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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags 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 deleted file mode 100644 index 3967bca..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ /dev/null @@ -1,64 +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. - -//go:build 386 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -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 (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -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 ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go deleted file mode 100644 index eff19ad..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ /dev/null @@ -1,64 +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. - -//go:build amd64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -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 ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go deleted file mode 100644 index 4f24b51..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ /dev/null @@ -1,60 +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. - -//go:build arm && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -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 (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint32(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go deleted file mode 100644 index ac30759..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ /dev/null @@ -1,60 +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. - -//go:build arm64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go deleted file mode 100644 index aab725c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build riscv64 && freebsd - -package unix - -import ( - "syscall" - "unsafe" -) - -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 = int32(length) -} - -func (cmsg *Cmsghdr) SetLen(length int) { - cmsg.Len = uint32(length) -} - -func (d *PtraceIoDesc) SetLen(length int) { - d.Len = uint64(length) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var writtenOut uint64 = 0 - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) - - written = int(writtenOut) - - if e1 != 0 { - err = e1 - } - return -} - -func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go deleted file mode 100644 index a6a2d2f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_hurd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build hurd - -package unix - -/* -#include <stdint.h> -int ioctl(int, unsigned long int, uintptr_t); -*/ -import "C" -import "unsafe" - -func ioctl(fd int, req uint, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go deleted file mode 100644 index df89f9e..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 && hurd - -package unix - -const ( - TIOCGETA = 0x62251713 -) - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed int32 - Ospeed int32 -} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go deleted file mode 100644 index a863f70..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_illumos.go +++ /dev/null @@ -1,78 +0,0 @@ -// 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. - -// illumos system calls not present on Solaris. - -//go: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 { - iovecs[i].Base = &b[0] - } else { - iovecs[i].Base = (*byte)(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 -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go deleted file mode 100644 index 4958a65..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ /dev/null @@ -1,2647 +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. - -// Linux system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and -// wrap it in our own nicer implementation. - -package unix - -import ( - "encoding/binary" - "slices" - "strconv" - "syscall" - "time" - "unsafe" -) - -/* - * Wrapped - */ - -func Access(path string, mode uint32) (err error) { - return Faccessat(AT_FDCWD, path, mode, 0) -} - -func Chmod(path string, mode uint32) (err error) { - return Fchmodat(AT_FDCWD, path, mode, 0) -} - -func Chown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, 0) -} - -func Creat(path string, mode uint32) (fd int, err error) { - return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) -} - -func EpollCreate(size int) (fd int, err error) { - if size <= 0 { - return -1, EINVAL - } - return EpollCreate1(0) -} - -//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) -//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) - -func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { - if pathname == "" { - return fanotifyMark(fd, flags, mask, dirFd, nil) - } - p, err := BytePtrFromString(pathname) - if err != nil { - return err - } - return fanotifyMark(fd, flags, mask, dirFd, p) -} - -//sys fchmodat(dirfd int, path string, mode uint32) (err error) -//sys fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) - -func Fchmodat(dirfd int, path string, mode uint32, flags int) error { - // Linux fchmodat doesn't support the flags parameter, but fchmodat2 does. - // Try fchmodat2 if flags are specified. - if flags != 0 { - err := fchmodat2(dirfd, path, mode, flags) - if err == ENOSYS { - // fchmodat2 isn't available. If the flags are known to be valid, - // return EOPNOTSUPP to indicate that fchmodat doesn't support them. - if flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { - return EINVAL - } else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { - return EOPNOTSUPP - } - } - return err - } - return fchmodat(dirfd, path, mode) -} - -func InotifyInit() (fd int, err error) { - return InotifyInit1(0) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -// ioctl itself should not be exposed directly, but additional get/set functions -// for specific types are permissible. These are defined in ioctl.go and -// ioctl_linux.go. -// -// The third argument to ioctl is often a pointer but sometimes an integer. -// Callers should use ioctlPtr when the third argument is a pointer and ioctl -// when the third argument is an integer. -// -// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr. - -//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) - -func Link(oldpath string, newpath string) (err error) { - return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) -} - -func Mkdir(path string, mode uint32) (err error) { - return Mkdirat(AT_FDCWD, path, mode) -} - -func Mknod(path string, mode uint32, dev int) (err error) { - return Mknodat(AT_FDCWD, path, mode, dev) -} - -func Open(path string, mode int, perm uint32) (fd int, err error) { - return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) - -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) -} - -func Pipe(p []int) 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 := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//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) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Poll(fds []PollFd, timeout int) (n int, err error) { - var ts *Timespec - if timeout >= 0 { - ts = new(Timespec) - *ts = NsecToTimespec(int64(timeout) * 1e6) - } - return Ppoll(fds, ts, nil) -} - -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) - -func Readlink(path string, buf []byte) (n int, err error) { - return Readlinkat(AT_FDCWD, path, buf) -} - -func Rename(oldpath string, newpath string) (err error) { - return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) -} - -func Rmdir(path string) error { - return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) -} - -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) - -func Symlink(oldpath string, newpath string) (err error) { - return Symlinkat(oldpath, AT_FDCWD, newpath) -} - -func Unlink(path string) error { - return Unlinkat(AT_FDCWD, path, 0) -} - -//sys Unlinkat(dirfd int, path string, flags int) (err error) - -func Utimes(path string, tv []Timeval) error { - if tv == nil { - err := utimensat(AT_FDCWD, path, nil, 0) - if err != ENOSYS { - return err - } - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - var ts [2]Timespec - ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) - ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) - err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) - if err != ENOSYS { - return err - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - return UtimesNanoAt(AT_FDCWD, path, ts, 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func Futimesat(dirfd int, path string, tv []Timeval) error { - if tv == nil { - return futimesat(dirfd, path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func Futimes(fd int, tv []Timeval) (err error) { - // Believe it or not, this is the best we can do on Linux - // (and is what glibc does). - return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -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 - } - // In some cases, Linux can return a path that starts with the - // "(unreachable)" prefix, which can potentially be a valid relative - // path. To work around that, return ENOENT if path is not absolute. - if buf[0] != '/' { - return "", ENOENT - } - - 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]) -} - -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() syscall.Signal { - if !w.Signaled() { - return -1 - } - return syscall.Signal(w & mask) -} - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { - if w.StopSignal() != SIGTRAP { - return -1 - } - return int(w>>shift) >> 8 -} - -//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - var status _C_int - wpid, err = wait4(pid, &status, options, rusage) - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return -} - -//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) - -func Mkfifo(path string, mode uint32) error { - return Mknod(path, mode|S_IFIFO, 0) -} - -func Mkfifoat(dirfd int, path string, mode uint32) error { - return Mknodat(dirfd, path, mode|S_IFIFO, 0) -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - 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 - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := range n { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. -type SockaddrLinklayer struct { - Protocol uint16 - Ifindex int - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]byte - raw RawSockaddrLinklayer -} - -func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { - return nil, 0, EINVAL - } - sa.raw.Family = AF_PACKET - sa.raw.Protocol = sa.Protocol - sa.raw.Ifindex = int32(sa.Ifindex) - sa.raw.Hatype = sa.Hatype - sa.raw.Pkttype = sa.Pkttype - sa.raw.Halen = sa.Halen - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil -} - -// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. -type SockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 - raw RawSockaddrNetlink -} - -func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_NETLINK - sa.raw.Pad = sa.Pad - sa.raw.Pid = sa.Pid - sa.raw.Groups = sa.Groups - return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil -} - -// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the HCI protocol. -type SockaddrHCI struct { - Dev uint16 - Channel uint16 - raw RawSockaddrHCI -} - -func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Dev = sa.Dev - sa.raw.Channel = sa.Channel - return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil -} - -// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the L2CAP protocol. -type SockaddrL2 struct { - PSM uint16 - CID uint16 - Addr [6]uint8 - AddrType uint8 - raw RawSockaddrL2 -} - -func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) - psm[0] = byte(sa.PSM) - psm[1] = byte(sa.PSM >> 8) - for i := range len(sa.Addr) { - sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] - } - cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) - cid[0] = byte(sa.CID) - cid[1] = byte(sa.CID >> 8) - sa.raw.Bdaddr_type = sa.AddrType - return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil -} - -// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets -// using the RFCOMM protocol. -// -// Server example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 -// }) -// _ = Listen(fd, 1) -// nfd, sa, _ := Accept(fd) -// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) -// Read(nfd, buf) -// -// Client example: -// -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = Connect(fd, &SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 -// }) -// Write(fd, []byte(`hello`)) -type SockaddrRFCOMM struct { - // Addr represents a bluetooth address, byte ordering is little-endian. - Addr [6]uint8 - - // Channel is a designated bluetooth channel, only 1-30 are available for use. - // Since Linux 2.6.7 and further zero value is the first available channel. - Channel uint8 - - raw RawSockaddrRFCOMM -} - -func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_BLUETOOTH - sa.raw.Channel = sa.Channel - sa.raw.Bdaddr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil -} - -// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. -// The RxID and TxID fields are used for transport protocol addressing in -// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with -// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. -// -// The SockaddrCAN struct must be bound to the socket file descriptor -// using Bind before the CAN socket can be used. -// -// // Read one raw CAN frame -// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) -// addr := &SockaddrCAN{Ifindex: index} -// Bind(fd, addr) -// frame := make([]byte, 16) -// Read(fd, frame) -// -// The full SocketCAN documentation can be found in the linux kernel -// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt -type SockaddrCAN struct { - Ifindex int - RxID uint32 - TxID uint32 - raw RawSockaddrCAN -} - -func (sa *SockaddrCAN) 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) - rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) - for i := range 4 { - sa.raw.Addr[i] = rx[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := range 4 { - sa.raw.Addr[i+4] = tx[i] - } - 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 := range 8 { - sa.raw.Addr[i] = n[i] - } - p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := range 4 { - 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 -// should be used with a given socket. -// -// To create a file descriptor that provides access to a hash or cipher, both -// Bind and Accept must be used. Once the setup process is complete, input -// data can be written to the socket, processed by the kernel, and then read -// back as hash output or ciphertext. -// -// Here is an example of using an AF_ALG socket with SHA1 hashing. -// The initial socket setup process is as follows: -// -// // Open a socket to perform SHA1 hashing. -// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) -// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} -// unix.Bind(fd, addr) -// // Note: unix.Accept does not work at this time; must invoke accept() -// // manually using unix.Syscall. -// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) -// -// Once a file descriptor has been returned from Accept, it may be used to -// perform SHA1 hashing. The descriptor is not safe for concurrent use, but -// may be re-used repeatedly with subsequent Write and Read operations. -// -// When hashing a small byte slice or string, a single Write and Read may -// be used: -// -// // Assume hashfd is already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash an input string and read the results. Each Write discards -// // previous hash state. Read always reads the current state. -// b := make([]byte, 20) -// for i := 0; i < 2; i++ { -// io.WriteString(hash, "Hello, world.") -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// } -// // Output: -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// -// For hashing larger byte slices, or byte streams such as those read from -// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update -// the hash digest instead of creating a new one for a given chunk and finalizing it. -// -// // Assume hashfd and addr are already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash the contents of a file. -// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") -// b := make([]byte, 4096) -// for { -// n, err := f.Read(b) -// if err == io.EOF { -// break -// } -// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) -// } -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 -// -// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. -type SockaddrALG struct { - Type string - Name string - Feature uint32 - Mask uint32 - raw RawSockaddrALG -} - -func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - // Leave room for NUL byte terminator. - if len(sa.Type) > len(sa.raw.Type)-1 { - return nil, 0, EINVAL - } - if len(sa.Name) > len(sa.raw.Name)-1 { - return nil, 0, EINVAL - } - - sa.raw.Family = AF_ALG - sa.raw.Feat = sa.Feature - sa.raw.Mask = sa.Mask - - copy(sa.raw.Type[:], sa.Type) - copy(sa.raw.Name[:], sa.Name) - - return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil -} - -// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. -// SockaddrVM provides access to Linux VM sockets: a mechanism that enables -// bidirectional communication between a hypervisor and its guest virtual -// machines. -type SockaddrVM struct { - // CID and Port specify a context ID and port address for a VM socket. - // Guests have a unique CID, and hosts may have a well-known CID of: - // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. - // - VMADDR_CID_LOCAL: refers to local communication (loopback). - // - VMADDR_CID_HOST: refers to other processes on the host. - 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 -} - -type SockaddrXDP struct { - Flags uint16 - Ifindex uint32 - QueueID uint32 - SharedUmemFD uint32 - raw RawSockaddrXDP -} - -func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Family = AF_XDP - sa.raw.Flags = sa.Flags - sa.raw.Ifindex = sa.Ifindex - sa.raw.Queue_id = sa.QueueID - sa.raw.Shared_umem_fd = sa.SharedUmemFD - - return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil -} - -// This constant mirrors the #define of PX_PROTO_OE in -// linux/if_pppox.h. We're defining this by hand here instead of -// autogenerating through mkerrors.sh because including -// linux/if_pppox.h causes some declaration conflicts with other -// includes (linux/if_pppox.h includes linux/in.h, which conflicts -// with netinet/in.h). Given that we only need a single zero constant -// out of that file, it's cleaner to just define it by hand here. -const px_proto_oe = 0 - -type SockaddrPPPoE struct { - SID uint16 - Remote []byte - Dev string - raw RawSockaddrPPPoX -} - -func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { - if len(sa.Remote) != 6 { - return nil, 0, EINVAL - } - if len(sa.Dev) > IFNAMSIZ-1 { - return nil, 0, EINVAL - } - - *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX - // This next field is in host-endian byte order. We can't use the - // same unsafe pointer cast as above, because this value is not - // 32-bit aligned and some architectures don't allow unaligned - // access. - // - // However, the value of px_proto_oe is 0, so we can use - // encoding/binary helpers to write the bytes without worrying - // about the ordering. - binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) - // This field is deliberately big-endian, unlike the previous - // one. The kernel expects SID to be in network byte order. - binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) - copy(sa.raw[8:14], sa.Remote) - for i := 14; i < 14+IFNAMSIZ; i++ { - sa.raw[i] = 0 - } - copy(sa.raw[14:], sa.Dev) - 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 - sa.raw.Addr = sa.Addr - 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 - sa.raw.Addr = sa.Addr - 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 := range 8 { - 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 -} - -type SockaddrNFC struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - raw RawSockaddrNFC -} - -func (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil -} - -type SockaddrNFCLLCP struct { - DeviceIdx uint32 - TargetIdx uint32 - NFCProtocol uint32 - DestinationSAP uint8 - SourceSAP uint8 - ServiceName string - raw RawSockaddrNFCLLCP -} - -func (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Sa_family = AF_NFC - sa.raw.Dev_idx = sa.DeviceIdx - sa.raw.Target_idx = sa.TargetIdx - sa.raw.Nfc_protocol = sa.NFCProtocol - sa.raw.Dsap = sa.DestinationSAP - sa.raw.Ssap = sa.SourceSAP - if len(sa.ServiceName) > len(sa.raw.Service_name) { - return nil, 0, EINVAL - } - copy(sa.raw.Service_name[:], sa.ServiceName) - sa.raw.SetServiceNameLen(len(sa.ServiceName)) - return unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, 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: - pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) - sa := new(SockaddrNetlink) - sa.Family = pp.Family - sa.Pad = pp.Pad - sa.Pid = pp.Pid - sa.Groups = pp.Groups - return sa, nil - - case AF_PACKET: - pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) - sa := new(SockaddrLinklayer) - sa.Protocol = pp.Protocol - sa.Ifindex = int(pp.Ifindex) - sa.Hatype = pp.Hatype - sa.Pkttype = pp.Pkttype - sa.Halen = pp.Halen - sa.Addr = pp.Addr - return sa, nil - - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if 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. - // 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 < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - return sa, nil - - case AF_INET: - 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 - sa.Addr = pp.Addr - 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]) - sa.Addr = pp.Addr - return sa, nil - } - - case AF_INET6: - 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 - sa.Addr = pp.Addr - 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 - sa.Addr = pp.Addr - return sa, nil - } - - case AF_VSOCK: - pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) - sa := &SockaddrVM{ - CID: pp.Cid, - Port: pp.Port, - Flags: pp.Flags, - } - return sa, nil - case AF_BLUETOOTH: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections - switch proto { - case BTPROTO_L2CAP: - pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) - sa := &SockaddrL2{ - PSM: pp.Psm, - CID: pp.Cid, - Addr: pp.Bdaddr, - AddrType: pp.Bdaddr_type, - } - return sa, nil - case BTPROTO_RFCOMM: - pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) - sa := &SockaddrRFCOMM{ - Channel: pp.Channel, - Addr: pp.Bdaddr, - } - return sa, nil - } - case AF_XDP: - pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) - sa := &SockaddrXDP{ - Flags: pp.Flags, - Ifindex: pp.Ifindex, - QueueID: pp.Queue_id, - SharedUmemFD: pp.Shared_umem_fd, - } - return sa, nil - case AF_PPPOX: - pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) - if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { - return nil, EINVAL - } - sa := &SockaddrPPPoE{ - SID: binary.BigEndian.Uint16(pp[6:8]), - Remote: pp[8:14], - } - for i := 14; i < 14+IFNAMSIZ; i++ { - if pp[i] == 0 { - sa.Dev = string(pp[14:i]) - break - } - } - 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 := range 8 { - 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 := range 8 { - name[i] = pp.Addr[i] - } - pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) - for i := range 4 { - 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 := range 4 { - rx[i] = pp.Addr[i] - } - tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) - for i := range 4 { - tx[i] = pp.Addr[i+4] - } - return sa, nil - } - case AF_NFC: - proto, err := socketProtocol(fd) - if err != nil { - return nil, err - } - switch proto { - case NFC_SOCKPROTO_RAW: - pp := (*RawSockaddrNFC)(unsafe.Pointer(rsa)) - sa := &SockaddrNFC{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - } - return sa, nil - case NFC_SOCKPROTO_LLCP: - pp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa)) - if uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) { - return nil, EINVAL - } - sa := &SockaddrNFCLLCP{ - DeviceIdx: pp.Dev_idx, - TargetIdx: pp.Target_idx, - NFCProtocol: pp.Nfc_protocol, - DestinationSAP: pp.Dsap, - SourceSAP: pp.Ssap, - ServiceName: string(pp.Service_name[:pp.Service_name_len]), - } - return sa, nil - default: - return nil, EINVAL - } - } - return nil, EAFNOSUPPORT -} - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept4(fd, &rsa, &len, 0) - if err != nil { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -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 -} - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { - var value IPMreqn - vallen := _Socklen(SizeofIPMreqn) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { - var value Ucred - vallen := _Socklen(SizeofUcred) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { - var value TCPInfo - vallen := _Socklen(SizeofTCPInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the "vegas" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPVegasInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the "dctp" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the "bbr" -// algorithm. -// -// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option: -// -// algo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION) -func GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) { - var value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment - vallen := _Socklen(SizeofTCPCCInfo) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) - out := (*TCPBBRInfo)(unsafe.Pointer(&value[0])) - return out, err -} - -// 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 { - if err == ERANGE { - buf = make([]byte, vallen) - err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) - } - if err != nil { - return "", err - } - } - return ByteSliceToString(buf[:vallen]), nil -} - -func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { - var value TpacketStats - vallen := _Socklen(SizeofTpacketStats) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { - var value TpacketStatsV3 - vallen := _Socklen(SizeofTpacketStatsV3) - err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) - return &value, err -} - -func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a -// socket to filter incoming packets. See 'man 7 socket' for usage information. -func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { - return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) -} - -func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { - var p unsafe.Pointer - if len(filter) > 0 { - p = unsafe.Pointer(&filter[0]) - } - return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) -} - -func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - -func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { - return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) -} - -func SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) { - if len(o) == 0 { - return EINVAL - } - return setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o))) -} - -func SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error { - return setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s)) -} - -// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) - -// KeyctlInt calls keyctl commands in which each argument is an int. -// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, -// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, -// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, -// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. -//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlBuffer calls keyctl commands in which the third and fourth -// arguments are a buffer and its length, respectively. -// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. -//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlString calls keyctl commands which return a string. -// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. -func KeyctlString(cmd int, id int) (string, error) { - // We must loop as the string data may change in between the syscalls. - // We could allocate a large buffer here to reduce the chance that the - // syscall needs to be called twice; however, this is unnecessary as - // the performance loss is negligible. - var buffer []byte - for { - // Try to fill the buffer with data - length, err := KeyctlBuffer(cmd, id, buffer, 0) - if err != nil { - return "", err - } - - // Check if the data was written - if length <= len(buffer) { - // Exclude the null terminator - return string(buffer[:length-1]), nil - } - - // Make a bigger buffer if needed - buffer = make([]byte, length) - } -} - -// Keyctl commands with special signatures. - -// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html -func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { - createInt := 0 - if create { - createInt = 1 - } - return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) -} - -// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the -// key handle permission mask as described in the "keyctl setperm" section of -// http://man7.org/linux/man-pages/man1/keyctl.1.html. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html -func KeyctlSetperm(id int, perm uint32) error { - _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) - return err -} - -//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL - -// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html -func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { - return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) -} - -//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL - -// KeyctlSearch implements the KEYCTL_SEARCH command. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_search.3.html -func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { - return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) -} - -//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL - -// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This -// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice -// of Iovec (each of which represents a buffer) instead of a single buffer. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html -func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { - return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) -} - -//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL - -// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command -// computes a Diffie-Hellman shared secret based on the provide params. The -// secret is written to the provided buffer and the returned size is the number -// of bytes written (returning an error if there is insufficient space in the -// buffer). If a nil buffer is passed in, this function returns the minimum -// buffer length needed to store the appropriate data. Note that this differs -// from KEYCTL_READ's behavior which always returns the requested payload size. -// See the full documentation at: -// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html -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:<key>", and "key_or_keyring:<key>: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 recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - if emptyIovecs(iov) { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return - } - // receive at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); err != nil { - return - } - oobn = int(msg.Controllen) - recvflags = int(msg.Flags) - return -} - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(ptr) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - empty = emptyIovecs(iov) - if empty { - var sockType int - sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) - if err != nil { - return 0, err - } - // send at least one normal byte - if sockType != SOCK_DGRAM { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - } - msg.Control = &oob[0] - msg.SetControllen(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -// BindToDevice binds the socket associated with fd to device. -func BindToDevice(fd int, device string) (err error) { - return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) -} - -//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) -//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE - -func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { - // The peek requests are machine-size oriented, so we wrap it - // to retrieve arbitrary-length data. - - // The ptrace syscall differs from glibc's ptrace. - // Peeks returns the word in *data, not as the return value. - - var buf [SizeofPtr]byte - - // Leading edge. PEEKTEXT/PEEKDATA don't require aligned - // access (PEEKUSER warns that it might), but if we don't - // align our reads, we might straddle an unmapped page - // boundary and not get the bytes leading up to the page - // boundary. - n := 0 - if addr%SizeofPtr != 0 { - err = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(out, buf[addr%SizeofPtr:]) - out = out[n:] - } - - // Remainder. - for len(out) > 0 { - // We use an internal buffer to guarantee alignment. - // It's not documented if this is necessary, but we're paranoid. - err = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copied := copy(out, buf[0:]) - n += copied - out = out[copied:] - } - - return n, nil -} - -func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) -} - -func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) -} - -func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { - return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) -} - -func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { - // As for ptracePeek, we need to align our accesses to deal - // with the possibility of straddling an invalid page. - - // Leading edge. - n := 0 - if addr%SizeofPtr != 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) - if err != nil { - return 0, err - } - n += copy(buf[addr%SizeofPtr:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) - if err != nil { - return 0, err - } - data = data[n:] - } - - // Interior. - for len(data) > SizeofPtr { - word := *((*uintptr)(unsafe.Pointer(&data[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += SizeofPtr - data = data[SizeofPtr:] - } - - // Trailing edge. - if len(data) > 0 { - var buf [SizeofPtr]byte - err = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) - if err != nil { - return n, err - } - copy(buf[0:], data) - word := *((*uintptr)(unsafe.Pointer(&buf[0]))) - err = ptrace(pokeReq, pid, addr+uintptr(n), word) - if err != nil { - return n, err - } - n += len(data) - } - - return n, nil -} - -func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) -} - -func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) -} - -func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) -} - -// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so -// x/sys/unix doesn't need to depend on debug/elf and thus -// compress/zlib, debug/dwarf, and other packages. -const elfNT_PRSTATUS = 1 - -func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regsout)) - iov.SetLen(int(unsafe.Sizeof(*regsout))) - return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { - var iov Iovec - iov.Base = (*byte)(unsafe.Pointer(regs)) - iov.SetLen(int(unsafe.Sizeof(*regs))) - return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) -} - -func PtraceSetOptions(pid int, options int) (err error) { - return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) -} - -func PtraceGetEventMsg(pid int) (msg uint, err error) { - var data _C_long - err = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data)) - msg = uint(data) - return -} - -func PtraceCont(pid int, signal int) (err error) { - return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) -} - -func PtraceSyscall(pid int, signal int) (err error) { - return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) -} - -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) - -func Reboot(cmd int) (err error) { - return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") -} - -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) - -func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - // Certain file systems get rather angry and EINVAL if you give - // them an empty string of data, rather than NULL. - if data == "" { - return mount(source, target, fstype, flags, nil) - } - datap, err := BytePtrFromString(data) - if err != nil { - return err - } - return mount(source, target, fstype, flags, datap) -} - -//sys mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR - -// MountSetattr is a wrapper for mount_setattr(2). -// https://man7.org/linux/man-pages/man2/mount_setattr.2.html -// -// Requires kernel >= 5.12. -func MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error { - return mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr)) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -// Sendto -// Recvfrom -// Socketpair - -/* - * Direct access - */ -//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 ClockAdjtime(clockid int32, buf *Timex) (state int, err error) -//sys ClockGetres(clockid int32, res *Timespec) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys ClockSettime(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 { - return Dup3(oldfd, newfd, 0) -} - -//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) -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 -//sys Exit(code int) = SYS_EXIT_GROUP -//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) -//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 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) -//sys Flistxattr(fd int, dest []byte) (sz int, err error) -//sys Flock(fd int, how int) (err error) -//sys Fremovexattr(fd int, attr string) (err error) -//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) -//sys Fsync(fd int) (err error) -//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) -//sys Fsopen(fsName string, flags int) (fd int, err error) -//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) - -//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) - -func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { - var keyp *byte - if keyp, err = BytePtrFromString(key); err != nil { - return - } - return fsconfig(fd, cmd, keyp, value, aux) -} - -// FsconfigSetFlag is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_FLAG. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -func FsconfigSetFlag(fd int, key string) (err error) { - return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -} - -// FsconfigSetString is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_STRING. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is the parameter value to set. -func FsconfigSetString(fd int, key string, value string) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(value); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -} - -// FsconfigSetBinary is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_BINARY. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is the parameter value to set. -func FsconfigSetBinary(fd int, key string, value []byte) (err error) { - if len(value) == 0 { - return EINVAL - } - return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -} - -// FsconfigSetPath is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_PATH. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// path is a non-empty path for specified key. -// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(path); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -} - -// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -// FconfigSetPath but with AT_PATH_EMPTY implied. -func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { - var valuep *byte - if valuep, err = BytePtrFromString(path); err != nil { - return - } - return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -} - -// FsconfigSetFd is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_SET_FD. -// -// fd is the filesystem context to act upon. -// key the parameter key to set. -// value is a file descriptor to be assigned to specified key. -func FsconfigSetFd(fd int, key string, value int) (err error) { - return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -} - -// FsconfigCreate is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_CMD_CREATE. -// -// fd is the filesystem context to act upon. -func FsconfigCreate(fd int) (err error) { - return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -} - -// FsconfigReconfigure is equivalent to fsconfig(2) called -// with cmd == FSCONFIG_CMD_RECONFIGURE. -// -// fd is the filesystem context to act upon. -func FsconfigReconfigure(fd int) (err error) { - return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -} - -//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 -//sysnb Getpgid(pid int) (pgid int, err error) - -func Getpgrp() (pid int) { - pid, _ = Getpgid(0) - return -} - -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) - -func Getrandom(buf []byte, flags int) (n int, err error) { - vdsoRet, supported := vgetrandom(buf, uint32(flags)) - if supported { - if vdsoRet < 0 { - return 0, errnoErr(syscall.Errno(-vdsoRet)) - } - return vdsoRet, nil - } - var p *byte - if len(buf) > 0 { - p = &buf[0] - } - r, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags)) - if e != 0 { - return 0, errnoErr(e) - } - return int(r), nil -} - -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettid() (tid int) -//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) -//sys InitModule(moduleImage []byte, params string) (err error) -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) -//sysnb InotifyInit1(flags int) (fd int, err error) -//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) -//sysnb Kill(pid int, sig syscall.Signal) (err error) -//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG -//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) -//sys Listxattr(path string, dest []byte) (sz int, err error) -//sys Llistxattr(path string, dest []byte) (sz int, err error) -//sys Lremovexattr(path string, attr string) (err error) -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) -//sys MemfdCreate(name string, flags int) (fd int, err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys OpenTree(dfd int, fileName string, flags uint) (r int, 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 -//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) -//sys pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) -//sys read(fd int, p []byte) (n int, err error) -//sys Removexattr(path string, attr string) (err error) -//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) -//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) -//sys Setdomainname(p []byte) (err error) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tv *Timeval) (err error) -//sys Setns(fd int, nstype int) (err error) - -//go:linkname syscall_prlimit syscall.prlimit -func syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error - -func Prlimit(pid, resource int, newlimit, old *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old)) -} - -// 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 -} - -func Setuid(uid int) (err error) { - return syscall.Setuid(uid) -} - -func Setgid(gid int) (err error) { - return syscall.Setgid(gid) -} - -func Setreuid(ruid, euid int) (err error) { - return syscall.Setreuid(ruid, euid) -} - -func Setregid(rgid, egid int) (err error) { - return syscall.Setregid(rgid, egid) -} - -func Setresuid(ruid, euid, suid int) (err error) { - return syscall.Setresuid(ruid, euid, suid) -} - -func Setresgid(rgid, egid, sgid int) (err error) { - return syscall.Setresgid(rgid, egid, sgid) -} - -// 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, 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) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 -//sys Unshare(flags int) (err error) -//sys write(fd int, p []byte) (n int, err error) -//sys exitThread(code int) (err error) = SYS_EXIT -//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 - -// minIovec is the size of the small initial allocation used by -// Readv, Writev, etc. -// -// This small allocation gets stack allocated, which lets the -// common use case of len(iovs) <= minIovs avoid more expensive -// heap allocations. -const minIovec = 8 - -// appendBytes converts bs to Iovecs and appends them to vecs. -func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { - for _, b := range bs { - var v Iovec - v.SetLen(len(b)) - if len(b) > 0 { - v.Base = &b[0] - } else { - v.Base = (*byte)(unsafe.Pointer(&_zero)) - } - vecs = append(vecs, v) - } - return vecs -} - -// offs2lohi splits offs into its low and high order bits. -func offs2lohi(offs int64) (lo, hi uintptr) { - const longBits = SizeofLong * 8 - return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet -} - -func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := min(int(iovecs[i].Len), 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 := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := make([]Iovec, 0, minIovec) - iovecs = appendBytes(iovecs, 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 := min(int(iovecs[i].Len), 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) -//sys mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) - -const ( - mremapFixed = MREMAP_FIXED - mremapDontunmap = MREMAP_DONTUNMAP - mremapMaymove = MREMAP_MAYMOVE -) - -// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, -// using the specified flags. -func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { - var p unsafe.Pointer - if len(iovs) > 0 { - p = unsafe.Pointer(&iovs[0]) - } - - n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) - if errno != 0 { - return 0, syscall.Errno(errno) - } - - return int(n), nil -} - -func isGroupMember(gid int) bool { - groups, err := Getgroups() - if err != nil { - return false - } - - return slices.Contains(groups, gid) -} - -func isCapDacOverrideSet() bool { - hdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3} - data := [2]CapUserData{} - err := Capget(&hdr, &data[0]) - - return err == nil && data[0].Effective&(1<<CAP_DAC_OVERRIDE) != 0 -} - -//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 == 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. - // The glibc faccessat implements the flags itself; see - // https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD - // Because people naturally expect syscall.Faccessat to act - // like C faccessat, we do the same. - - if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { - return EINVAL - } - - var st Stat_t - if err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil { - return err - } - - mode &= 7 - if mode == 0 { - return nil - } - - var uid int - if flags&AT_EACCESS != 0 { - uid = Geteuid() - if uid != 0 && isCapDacOverrideSet() { - // If CAP_DAC_OVERRIDE is set, file access check is - // done by the kernel in the same way as for root - // (see generic_permission() in the Linux sources). - uid = 0 - } - } else { - uid = Getuid() - } - - if uid == 0 { - if mode&1 == 0 { - // Root can read and write any file. - return nil - } - if st.Mode&0111 != 0 { - // Root can execute any file that anybody can execute. - return nil - } - return EACCES - } - - var fmode uint32 - if uint32(uid) == st.Uid { - fmode = (st.Mode >> 6) & 7 - } else { - var gid int - if flags&AT_EACCESS != 0 { - gid = Getegid() - } else { - gid = Getgid() - } - - if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { - fmode = (st.Mode >> 3) & 7 - } else { - fmode = st.Mode & 7 - } - } - - if fmode&mode == mode { - return nil - } - - 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 unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), 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 - -//sys PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN -//sys PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD -//sys PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL - -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) -//sys shmdt(addr uintptr) (err error) -//sys shmget(key int, size int, flag int) (id int, err error) - -//sys getitimer(which int, currValue *Itimerval) (err error) -//sys setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) - -// MakeItimerval creates an Itimerval from interval and value durations. -func MakeItimerval(interval, value time.Duration) Itimerval { - return Itimerval{ - Interval: NsecToTimeval(interval.Nanoseconds()), - Value: NsecToTimeval(value.Nanoseconds()), - } -} - -// A value which may be passed to the which parameter for Getitimer and -// Setitimer. -type ItimerWhich int - -// Possible which values for Getitimer and Setitimer. -const ( - ItimerReal ItimerWhich = ITIMER_REAL - ItimerVirtual ItimerWhich = ITIMER_VIRTUAL - ItimerProf ItimerWhich = ITIMER_PROF -) - -// Getitimer wraps getitimer(2) to return the current value of the timer -// specified by which. -func Getitimer(which ItimerWhich) (Itimerval, error) { - var it Itimerval - if err := getitimer(int(which), &it); err != nil { - return Itimerval{}, err - } - - return it, nil -} - -// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which. -// It returns the previous value of the timer. -// -// If the Itimerval argument is the zero value, the timer will be disarmed. -func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { - var prev Itimerval - if err := setitimer(int(which), &it, &prev); err != nil { - return Itimerval{}, err - } - - return prev, nil -} - -//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK - -func PthreadSigmask(how int, set, oldset *Sigset_t) error { - if oldset != nil { - // Explicitly clear in case Sigset_t is larger than _C__NSIG. - *oldset = Sigset_t{} - } - return rtSigprocmask(how, set, oldset, _C__NSIG/8) -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -// Pselect is a wrapper around the Linux pselect6 system call. -// This version does not modify the timeout argument. -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - // Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES, - // The Linux pselect6() system call modifies its timeout argument. - // [Not modifying the argument] is the behavior required by POSIX.1-2001. - var mutableTimeout *Timespec - if timeout != nil { - mutableTimeout = new(Timespec) - *mutableTimeout = *timeout - } - - // The final argument of the pselect6() system call is not a - // sigset_t * pointer, but is instead a structure - var kernelMask *sigset_argpack - if sigmask != nil { - wordBits := 32 << (^uintptr(0) >> 63) // see math.intSize - - // A sigset stores one bit per signal, - // offset by 1 (because signal 0 does not exist). - // So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉. - sigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits) - - sigsetBytes := uintptr(sigsetWords * (wordBits / 8)) - kernelMask = &sigset_argpack{ - ss: sigmask, - ssLen: sigsetBytes, - } - } - - return pselect6(nfd, r, w, e, mutableTimeout, kernelMask) -} - -//sys schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) -//sys schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) - -// SchedSetAttr is a wrapper for sched_setattr(2) syscall. -// https://man7.org/linux/man-pages/man2/sched_setattr.2.html -func SchedSetAttr(pid int, attr *SchedAttr, flags uint) error { - if attr == nil { - return EINVAL - } - attr.Size = SizeofSchedAttr - return schedSetattr(pid, attr, flags) -} - -// SchedGetAttr is a wrapper for sched_getattr(2) syscall. -// https://man7.org/linux/man-pages/man2/sched_getattr.2.html -func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { - attr := &SchedAttr{} - if err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil { - return nil, err - } - return attr, nil -} - -//sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) -//sys Mseal(b []byte, flags uint) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go deleted file mode 100644 index 506dafa..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ /dev/null @@ -1,314 +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. - -//go:build 386 && linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -// 64-bit file system and 32-bit uid calls -// (386 default is 32-bit file system and 16-bit uid). -//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 -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//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 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) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) -//sys Pause() (err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -// On x86 Linux, all the socket calls go through an extra indirection, -// I think because the 5-register system call interface can't handle -// the 6-argument calls like sendto and recvfrom. Instead the -// arguments to the underlying system call are the number below -// and a pointer to an array of uintptr. We hide the pointer in the -// socketcall assembly to avoid allocation on every system call. - -const ( - // see linux/net.h - _SOCKET = 1 - _BIND = 2 - _CONNECT = 3 - _LISTEN = 4 - _ACCEPT = 5 - _GETSOCKNAME = 6 - _GETPEERNAME = 7 - _SOCKETPAIR = 8 - _SEND = 9 - _RECV = 10 - _SENDTO = 11 - _RECVFROM = 12 - _SHUTDOWN = 13 - _SETSOCKOPT = 14 - _GETSOCKOPT = 15 - _SENDMSG = 16 - _RECVMSG = 17 - _ACCEPT4 = 18 - _RECVMMSG = 19 - _SENDMMSG = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) - if e != 0 { - err = e - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func socket(domain int, typ int, proto int) (fd int, err error) { - fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e != 0 { - err = e - } - return -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) - if e != 0 { - err = e - } - return -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - if e != 0 { - err = e - } - return -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e != 0 { - err = e - } - return -} - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Listen(s int, n int) (err error) { - _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Shutdown(s, how int) (err error) { - _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e != 0 { - err = e - } - return -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go deleted file mode 100644 index 38d5564..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) - -package unix - -// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH -// values. - -//sys Alarm(seconds uint) (remaining uint, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go deleted file mode 100644 index d557cf8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ /dev/null @@ -1,145 +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. - -//go:build amd64 && 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 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_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys MemfdSecret(flags int) (fd int, err error) -//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev 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) - -func Stat(path string, stat *Stat_t) (err error) { - // Use fstatat, because Android's seccomp policy blocks stat. - return Fstatat(AT_FDCWD, path, stat, 0) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) - -func Gettimeofday(tv *Timeval) (err error) { - errno := gettimeofday(tv) - if errno != 0 { - return errno - } - return nil -} - -func Time(t *Time_t) (tt Time_t, err error) { - var tv Timeval - errno := gettimeofday(&tv) - if errno != 0 { - return 0, errno - } - if t != nil { - *t = Time_t(tv.Sec) - } - return Time_t(tv.Sec), nil -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 (r *PtraceRegs) PC() uint64 { return r.Rip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//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_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go deleted file mode 100644 index facdb83..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && linux && gc - -package unix - -import "syscall" - -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go deleted file mode 100644 index cd2dd79..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ /dev/null @@ -1,216 +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. - -//go:build arm && linux - -package unix - -import ( - "unsafe" -) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 -//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 -//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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -// 64-bit file system and 32-bit uid calls -// (16-bit uid calls are not always supported in newer kernels) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sysnb Getegid() (egid int) = SYS_GETEGID32 -//sysnb Geteuid() (euid int) = SYS_GETEUID32 -//sysnb Getgid() (gid int) = SYS_GETGID32 -//sysnb Getuid() (uid int) = SYS_GETUID32 -//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (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) (prev int, err error) = SYS_SETFSGID32 -//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sys Shutdown(fd int, how int) (err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -//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 Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and arm_sync_file_range syscalls differ only in the - // 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 deleted file mode 100644 index 745e5c7..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid 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 Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, 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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev 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) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -// 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) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -//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) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go deleted file mode 100644 index ffc4c2b..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +++ /dev/null @@ -1,14 +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. - -//go:build linux && gc - -package unix - -// SyscallNoError may be used instead of Syscall for syscalls that don't fail. -func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) - -// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't -// fail. -func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) 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 deleted file mode 100644 index 9ebfdcf..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +++ /dev/null @@ -1,16 +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. - -//go:build linux && gc && 386 - -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) - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) 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 deleted file mode 100644 index 5f2b57c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +++ /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. - -//go: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 deleted file mode 100644 index d1a3ad8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +++ /dev/null @@ -1,30 +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. - -//go:build linux && gccgo && 386 - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} - -func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { - fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) - return int(fd), err -} 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 deleted file mode 100644 index f2f6742..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +++ /dev/null @@ -1,20 +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. - -//go:build linux && gccgo && arm - -package unix - -import ( - "syscall" - "unsafe" -) - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go deleted file mode 100644 index dd2262a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build loong64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//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 -//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev 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) - -func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { - return Timespec{ - Sec: x.Sec, - Nsec: int64(x.Nsec), - } -} - -func Fstatat(fd int, path string, stat *Stat_t, flags int) error { - var r Statx_t - // Do it the glibc way, add AT_NO_AUTOMOUNT. - if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { - return err - } - - stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) - stat.Ino = r.Ino - stat.Mode = uint32(r.Mode) - stat.Nlink = r.Nlink - stat.Uid = r.Uid - stat.Gid = r.Gid - stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) - // hope we don't get to process files so large to overflow these size - // fields... - stat.Size = int64(r.Size) - stat.Blksize = int32(r.Blksize) - stat.Blocks = int64(r.Blocks) - stat.Atim = timespecFromStatxTimestamp(r.Atime) - stat.Mtim = timespecFromStatxTimestamp(r.Mtime) - stat.Ctim = timespecFromStatxTimestamp(r.Ctime) - - return nil -} - -func Fstat(fd int, stat *Stat_t) (err error) { - return Fstatat(fd, "", stat, AT_EMPTY_PATH) -} - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - return -} - -func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Era } - -func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) -} - -//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) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go deleted file mode 100644 index 70963a9..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips64 || mips64le) - -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 Fchown(fd int, uid int, gid int) (err error) -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev 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) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -type stat_t struct { - Dev uint32 - Pad0 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad1 [3]uint32 - Size int64 - Atime uint32 - Atime_nsec uint32 - Mtime uint32 - Mtime_nsec uint32 - Ctime uint32 - Ctime_nsec uint32 - Blksize uint32 - Pad2 uint32 - Blocks int64 -} - -//sys fstat(fd int, st *stat_t) (err error) -//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT -//sys lstat(path string, st *stat_t) (err error) -//sys stat(path string, st *stat_t) (err error) - -func Fstat(fd int, s *Stat_t) (err error) { - st := &stat_t{} - err = fstat(fd, st) - fillStat_t(s, st) - return -} - -func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { - st := &stat_t{} - err = fstatat(dirfd, path, st, flags) - fillStat_t(s, st) - return -} - -func Lstat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = lstat(path, st) - fillStat_t(s, st) - return -} - -func Stat(path string, s *Stat_t) (err error) { - st := &stat_t{} - err = stat(path, st) - fillStat_t(s, st) - return -} - -func fillStat_t(s *Stat_t, st *stat_t) { - s.Dev = st.Dev - s.Ino = st.Ino - s.Mode = st.Mode - s.Nlink = st.Nlink - s.Uid = st.Uid - s.Gid = st.Gid - s.Rdev = st.Rdev - s.Size = st.Size - s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} - s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} - s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} - s.Blksize = st.Blksize - s.Blocks = st.Blocks -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go deleted file mode 100644 index c218ebd..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && (mips || mipsle) - -package unix - -import ( - "syscall" - "unsafe" -) - -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) - -//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 Fchown(fd int, uid int, gid int) (err error) -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (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 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) (prev int, err error) -//sys setfsuid(uid int) (prev 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 int, err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - -//sys Pause() (err error) - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - p, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = errnoErr(e) - } - return -} - -func Seek(fd int, offset int64, whence int) (off int64, err error) { - _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) - if e != 0 { - err = errnoErr(e) - } - return -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint64 { return r.Epc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go deleted file mode 100644 index e6c4850..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +++ /dev/null @@ -1,204 +0,0 @@ -// 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. - -//go:build linux && ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 -//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 -//sys Pause() (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 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) (prev int, err error) -//sys setfsuid(uid int) (prev 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 int, err error) -//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 -//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { - var newoffset int64 - offsetLow := uint32(offset & 0xffffffff) - offsetHigh := uint32((offset >> 32) & 0xffffffff) - _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) - return newoffset, err -} - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, errno := seek(fd, offset, whence) - if errno != 0 { - return 0, errno - } - return newoffset, nil -} - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -func Statfs(path string, buf *Statfs_t) (err error) { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) - if e != 0 { - err = e - } - return -} - -//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, EINVAL - } - return mmap2(addr, length, prot, flags, fd, page) -} - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: int32(sec), Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: int32(sec), Usec: int32(usec)} -} - -type rlimit32 struct { - Cur uint32 - Max uint32 -} - -//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT - -const rlimInf32 = ^uint32(0) -const rlimInf64 = ^uint64(0) - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - err = Prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - - rl := rlimit32{} - err = getrlimit(resource, &rl) - if err != nil { - return - } - - if rl.Cur == rlimInf32 { - rlim.Cur = rlimInf64 - } else { - rlim.Cur = uint64(rl.Cur) - } - - if rl.Max == rlimInf32 { - rlim.Max = rlimInf64 - } else { - rlim.Max = uint64(rl.Max) - } - return -} - -func (r *PtraceRegs) PC() uint32 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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) -} - -func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint32(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(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_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go deleted file mode 100644 index 7286a9a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ /dev/null @@ -1,115 +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. - -//go:build linux && (ppc64 || ppc64le) - -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 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_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT -//sysnb Getuid() (uid int) -//sys Ioperm(from int, num int, on int) (err error) -//sys Iopl(level int) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//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) (prev int, err error) -//sys setfsuid(uid int) (prev 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) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Time(t *Time_t) (tt Time_t, err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 (r *PtraceRegs) PC() uint64 { return r.Nip } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 - -func SyncFileRange(fd int, off int64, n int64, flags int) error { - // The sync_file_range and sync_file_range2 syscalls differ only in the - // order of their arguments. - return syncFileRange2(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_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go deleted file mode 100644 index 8cf3670..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ /dev/null @@ -1,191 +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. - -//go:build riscv64 && linux - -package unix - -import "unsafe" - -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Fchown(fd int, uid int, gid 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 Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Listen(s int, n int) (err error) -//sys MemfdSecret(flags int) (fd int, 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 Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK - -func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - var ts *Timespec - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } - return pselect6(nfd, r, w, e, ts, nil) -} - -//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys setfsgid(gid int) (prev int, err error) -//sys setfsuid(uid int) (prev 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) - -func Stat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, 0) -} - -func Lchown(path string, uid int, gid int) (err error) { - return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) -} - -func Lstat(path string, stat *Stat_t) (err error) { - return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) -} - -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - return ENOSYS -} - -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(dirfd, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func Time(t *Time_t) (Time_t, 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 Utime(path string, buf *Utimbuf) error { - tv := []Timeval{ - {Sec: buf.Actime}, - {Sec: buf.Modtime}, - } - return Utimes(path, tv) -} - -func utimes(path string, tv *[2]Timeval) (err error) { - if tv == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func (r *PtraceRegs) PC() uint64 { return r.Pc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -func Pause() error { - _, err := ppoll(nil, 0, nil, nil) - return err -} - -func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) -} - -//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) -} - -//sys riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) - -func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) { - var setSize uintptr - - if set != nil { - setSize = uintptr(unsafe.Sizeof(*set)) - } - return riscvHWProbe(pairs, setSize, set, flags) -} - -const SYS_FSTATAT = SYS_NEWFSTATAT diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go deleted file mode 100644 index 66f3121..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ /dev/null @@ -1,296 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build s390x && linux - -package unix - -import ( - "unsafe" -) - -//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 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_NEWFSTATAT -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//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) (prev int, err error) -//sys setfsuid(uid int) (prev int, err error) -//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) -//sysnb setgroups(n int, list *_Gid_t) (err error) - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -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 Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} - -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>. -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// On s390x Linux, all the socket calls go through an extra indirection. -// The arguments to the underlying system call (SYS_SOCKETCALL) are the -// number below and a pointer to an array of uintptr. -const ( - // see linux/net.h - netSocket = 1 - netBind = 2 - netConnect = 3 - netListen = 4 - netAccept = 5 - netGetSockName = 6 - netGetPeerName = 7 - netSocketPair = 8 - netSend = 9 - netRecv = 10 - netSendTo = 11 - netRecvFrom = 12 - netShutdown = 13 - netSetSockOpt = 14 - netGetSockOpt = 15 - netSendMsg = 16 - netRecvMsg = 17 - netAccept4 = 18 - netRecvMMsg = 19 - netSendMMsg = 20 -) - -func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { - args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} - fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socketpair(domain int, typ int, flags int, fd *[2]int32) error { - args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} - _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { - args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func socket(domain int, typ int, proto int) (int, error) { - args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} - fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(fd), nil -} - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { - args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} - _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { - 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 - } - return nil -} - -func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { - var base uintptr - if len(p) > 0 { - base = uintptr(unsafe.Pointer(&p[0])) - } - args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} - _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func recvmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func sendmsg(s int, msg *Msghdr, flags int) (int, error) { - args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} - n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return 0, err - } - return int(n), nil -} - -func Listen(s int, n int) error { - args := [2]uintptr{uintptr(s), uintptr(n)} - _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -func Shutdown(s, how int) error { - args := [2]uintptr{uintptr(s), uintptr(how)} - _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) - if err != 0 { - return err - } - return nil -} - -//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_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go deleted file mode 100644 index 11d1f16..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ /dev/null @@ -1,112 +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. - -//go: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 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 -//sys Fstatfs(fd int, buf *Statfs_t) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (euid int) -//sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Getuid() (uid int) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Pause() (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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) -//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) (prev int, err error) -//sys setfsuid(uid int) (prev 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) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, buf *Statfs_t) (err error) -//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) -//sys Truncate(path string, length int64) (err error) -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) -//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) -//sysnb getsockname(fd int, rsa *RawSockaddrAny, 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) -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) -//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func Ioperm(from int, num int, on int) (err error) { - return ENOSYS -} - -func Iopl(level int) (err error) { - return ENOSYS -} - -//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) -//sysnb Gettimeofday(tv *Timeval) (err error) - -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 -} - -//sys Utime(path string, buf *Utimbuf) (err error) -//sys utimes(path string, times *[2]Timeval) (err error) - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: nsec} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func (r *PtraceRegs) PC() uint64 { return r.Tpc } - -func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint64(length) -} - -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 (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { - rsa.Service_name_len = uint64(length) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go deleted file mode 100644 index 8816209..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ /dev/null @@ -1,371 +0,0 @@ -// Copyright 2009,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. - -// NetBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [12]int8 - 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) { - var olen uintptr - - // Get a list of all sysctl nodes below the given MIB by performing - // a sysctl for the given MIB with CTL_QUERY appended. - mib = append(mib, CTL_QUERY) - qnode := Sysctlnode{Flags: SYSCTL_VERS_1} - qp := (*byte)(unsafe.Pointer(&qnode)) - sz := unsafe.Sizeof(qnode) - if err = sysctl(mib, nil, &olen, qp, sz); err != nil { - return nil, err - } - - // Now that we know the size, get the actual nodes. - nodes = make([]Sysctlnode, olen/sz) - np := (*byte)(unsafe.Pointer(&nodes[0])) - if err = sysctl(mib, np, &olen, qp, sz); err != nil { - return nil, err - } - - return nodes, nil -} - -func nametomib(name string) (mib []_C_int, err error) { - // Split name into components. - var parts []string - last := 0 - for i := 0; i < len(name); i++ { - if name[i] == '.' { - parts = append(parts, name[last:i]) - last = i + 1 - } - } - parts = append(parts, name[last:]) - - // Discover the nodes and construct the MIB OID. - for partno, part := range parts { - nodes, err := sysctlNodes(mib) - if err != nil { - return nil, err - } - for _, node := range nodes { - n := make([]byte, 0) - for i := range node.Name { - if node.Name[i] != 0 { - n = append(n, byte(node.Name[i])) - } - } - if string(n) == part { - mib = append(mib, _C_int(node.Num)) - break - } - } - if len(mib) != partno+1 { - return nil, EINVAL - } - } - - return mib, 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 SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - return &u, nil -} - -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 := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys Getdents(fd int, buf []byte) (n int, err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - 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 -} - -//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 -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//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 - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - 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 - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err 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 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) -//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) -//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) -//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) -//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) -//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) -//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE -//sys Fchdir(fd int) (err error) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//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 Flock(fd int, how int) (err error) -//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) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//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(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//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 read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//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) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//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 utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - -const ( - mremapFixed = MAP_FIXED - mremapDontunmap = 0 - mremapMaymove = 0 -) - -//sys mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP - -func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) { - return mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go deleted file mode 100644 index 7a5eb57..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +++ /dev/null @@ -1,37 +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. - -//go:build 386 && netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -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 deleted file mode 100644 index 62d8957..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +++ /dev/null @@ -1,37 +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. - -//go:build amd64 && netbsd - -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: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(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 = 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 deleted file mode 100644 index ce6a068..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2013 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 && netbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = uint32(mode) - k.Flags = uint32(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(length) -} - -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 deleted file mode 100644 index d46d689..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +++ /dev/null @@ -1,37 +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. - -//go:build arm64 && netbsd - -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: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint64(fd) - k.Filter = uint32(mode) - k.Flags = uint32(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 = 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 deleted file mode 100644 index b86ded5..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ /dev/null @@ -1,342 +0,0 @@ -// Copyright 2009,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. - -// OpenBSD system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_bsd.go or syscall_unix.go. - -package unix - -import ( - "sort" - "syscall" - "unsafe" -) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Len uint8 - Family uint8 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [24]int8 - 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) { - i := sort.Search(len(sysctlMib), func(i int) bool { - return sysctlMib[i].ctlname >= name - }) - if i < len(sysctlMib) && sysctlMib[i].ctlname == name { - return sysctlMib[i].ctloid, nil - } - return nil, EINVAL -} - -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 SysctlUvmexp(name string) (*Uvmexp, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofUvmexp) - var u Uvmexp - if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofUvmexp { - return nil, EIO - } - return &u, nil -} - -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 := pipe2(&pp, flags) - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return err -} - -//sys Getdents(fd int, buf []byte) (n int, err error) - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - n, err = Getdents(fd, buf) - if err != nil || basep == nil { - return - } - - var off int64 - off, err = Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - *basep = ^uintptr(0) - return - } - *basep = uintptr(off) - if unsafe.Sizeof(*basep) == 8 { - return - } - 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 -} - -//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)) - } - return sendfile(outfd, infd, offset, count) -} - -// TODO -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return -1, ENOSYS -} - -func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - var bufptr *Statfs_t - var bufsize uintptr - if len(buf) > 0 { - bufptr = &buf[0] - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } - return getfsstat(bufptr, bufsize, flags) -} - -//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) - -func Getresuid() (ruid, euid, suid int) { - var r, e, s _C_int - getresuid(&r, &e, &s) - return int(r), int(e), int(s) -} - -func Getresgid() (rgid, egid, sgid int) { - var r, e, s _C_int - getresgid(&r, &e, &s) - return int(r), int(e), int(s) -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) -//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -//sys fcntl(fd int, cmd int, arg int) (n int, err error) -//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL - -// 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 { - _, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk)) - return err -} - -//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) { - if len(fds) == 0 { - return ppoll(nil, 0, timeout, sigmask) - } - return ppoll(&fds[0], len(fds), timeout, sigmask) -} - -func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) - if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) - if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) - if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) - if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { - return err - } - - // The version might have newlines or tabs in it, convert them to - // spaces. - for i, b := range uname.Version { - if b == '\n' || b == '\t' { - if i == len(uname.Version)-1 { - uname.Version[i] = 0 - } else { - uname.Version[i] = ' ' - } - } - } - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) - if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { - return err - } - - return nil -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chflags(path string, flags int) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err 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) -//sys Fchflags(fd int, flags int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//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 Flock(fd int, how int) (err error) -//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 Fstatfs(fd int, stat *Statfs_t) (err error) -//sys Fsync(fd int) (err error) -//sys Ftruncate(fd int, length int64) (err error) -//sysnb Getegid() (egid int) -//sysnb Geteuid() (uid int) -//sysnb Getgid() (gid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgrp int) -//sysnb Getpid() (pid int) -//sysnb Getppid() (ppid int) -//sys Getpriority(which int, who int) (prio int, err error) -//sysnb Getrlimit(which int, lim *Rlimit) (err error) -//sysnb Getrtable() (rtable int, err error) -//sysnb Getrusage(who int, rusage *Rusage) (err error) -//sysnb Getsid(pid int) (sid int, err error) -//sysnb Gettimeofday(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Issetugid() (tainted bool) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Kqueue() (fd int, err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) -//sys Listen(s int, backlog int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//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 read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//sys Renameat(fromfd int, from string, tofd int, to string) (err 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(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) -//sys Setlogin(name string) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrtable(rtable int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Settimeofday(tp *Timeval) (err error) -//sysnb Setuid(uid int) (err error) -//sys Stat(path string, stat *Stat_t) (err error) -//sys Statfs(path string, stat *Statfs_t) (err error) -//sys Symlink(path string, link string) (err error) -//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) -//sys Sync() (err error) -//sys Truncate(path string, length int64) (err error) -//sys Umask(newmask int) (oldmask int) -//sys Unlink(path string) (err error) -//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 getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) -//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -//sys pledge(promises *byte, execpromises *byte) (err error) -//sys unveil(path *byte, flags *byte) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go deleted file mode 100644 index 9ddc89f..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +++ /dev/null @@ -1,41 +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. - -//go:build 386 && openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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/386 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go deleted file mode 100644 index 70a3c96..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +++ /dev/null @@ -1,41 +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. - -//go:build amd64 && 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_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go deleted file mode 100644 index 265caa8..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build arm && openbsd - -package unix - -func setTimespec(sec, nsec int64) Timespec { - return Timespec{Sec: sec, Nsec: int32(nsec)} -} - -func setTimeval(sec, usec int64) Timeval { - return Timeval{Sec: sec, Usec: int32(usec)} -} - -func SetKevent(k *Kevent_t, fd, mode, flags int) { - k.Ident = uint32(fd) - k.Filter = int16(mode) - k.Flags = uint16(flags) -} - -func (iov *Iovec) SetLen(length int) { - iov.Len = uint32(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/arm the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go deleted file mode 100644 index ac4fda1..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +++ /dev/null @@ -1,41 +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. - -//go: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_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go deleted file mode 100644 index 0a451e6..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build openbsd - -package unix - -import _ "unsafe" - -// Implemented in the runtime package (runtime/sys_openbsd3.go) -func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) -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) - -//go:linkname syscall_syscall syscall.syscall -//go:linkname syscall_syscall6 syscall.syscall6 -//go:linkname syscall_syscall10 syscall.syscall10 -//go:linkname syscall_rawSyscall syscall.rawSyscall -//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 - -func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { - return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go deleted file mode 100644 index 1378489..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +++ /dev/null @@ -1,39 +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. - -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 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go deleted file mode 100644 index 30a308c..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +++ /dev/null @@ -1,41 +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. - -//go:build ppc64 && 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/ppc64 the syscall is called sysctl instead of __sysctl. -const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go deleted file mode 100644 index ea95433..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +++ /dev/null @@ -1,41 +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. - -//go:build riscv64 && 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/riscv64 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 deleted file mode 100644 index abc3955..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ /dev/null @@ -1,1191 +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. - -// Solaris system calls. -// This file is compiled as ordinary Go code, -// but it is also input to mksyscall, -// which parses the //sys lines and generates system call stubs. -// Note that sometimes we use a lowercase //sys name and wrap -// it in our own nicer implementation, either here or in -// syscall_solaris.go or syscall_unix.go. - -package unix - -import ( - "fmt" - "os" - "runtime" - "sync" - "syscall" - "unsafe" -) - -// Implemented in runtime/syscall_solaris.go. -type syscallFunc uintptr - -func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - -// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. -type SockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 - 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) { - if len(p) != 2 { - return EINVAL - } - var pp [2]_C_int - n, err := pipe(&pp) - if n != 0 { - return err - } - if err == nil { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - 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) - if err == nil { - 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 - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, EINVAL - } - 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 - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - name := sa.Name - n := len(name) - if n >= len(sa.raw.Path) { - return nil, 0, EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := _Socklen(2) - if n > 0 { - sl += _Socklen(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname - -func Getsockname(fd int) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - if err = getsockname(fd, &rsa, &len); err != nil { - return - } - return anyToSockaddr(fd, &rsa) -} - -// 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 ByteSliceToString(buf[:vallen]), nil -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) - -func Getwd() (wd string, err error) { - var buf [PathMax]byte - // Getcwd will return an error if it failed for any reason. - _, err = Getcwd(buf[0:]) - if err != nil { - return "", err - } - n := clen(buf[:]) - if n < 1 { - return "", EINVAL - } - return string(buf[:n]), nil -} - -/* - * Wrapped - */ - -//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) -//sysnb setgroups(ngid int, gid *_Gid_t) (err error) - -func Getgroups() (gids []int, err error) { - n, err := getgroups(0, nil) - // Check for error and sanity check group count. Newer versions of - // Solaris allow up to 1024 (NGROUPS_MAX). - if n < 0 || n > 1024 { - if err != nil { - return nil, err - } - return nil, EINVAL - } else if n == 0 { - return nil, nil - } - - a := make([]_Gid_t, n) - n, err = getgroups(n, &a[0]) - if n == -1 { - 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]) -} - -// 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? - return Getdents(fd, buf, new(uintptr)) -} - -// 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. - -type WaitStatus uint32 - -const ( - mask = 0x7F - core = 0x80 - shift = 8 - - exited = 0 - stopped = 0x7F -) - -func (w WaitStatus) Exited() bool { return w&mask == exited } - -func (w WaitStatus) ExitStatus() int { - if w&mask != exited { - return -1 - } - return int(w >> shift) -} - -func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } - -func (w WaitStatus) Signal() syscall.Signal { - sig := syscall.Signal(w & mask) - if sig == stopped || sig == 0 { - return -1 - } - return sig -} - -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) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } - -func (w WaitStatus) StopSignal() syscall.Signal { - if !w.Stopped() { - return -1 - } - return syscall.Signal(w>>shift) & 0xFF -} - -func (w WaitStatus) TrapCause() int { return -1 } - -//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { - var status _C_int - rpid, err := wait4(int32(pid), &status, options, rusage) - wpid := int(rpid) - if wpid == -1 { - return wpid, err - } - if wstatus != nil { - *wstatus = WaitStatus(status) - } - return wpid, nil -} - -//sys gethostname(buf []byte) (n int, err error) - -func Gethostname() (name string, err error) { - var buf [MaxHostNameLen]byte - n, err := gethostname(buf[:]) - if n != 0 { - return "", err - } - n = clen(buf[:]) - if n < 1 { - return "", EFAULT - } - return string(buf[:n]), nil -} - -//sys utimes(path string, times *[2]Timeval) (err error) - -func Utimes(path string, tv []Timeval) (err error) { - if tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) - -func UtimesNano(path string, ts []Timespec) error { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - var err error - if errno != 0 { - err = errno - } - return int(valptr), err -} - -// 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 { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) - if e1 != 0 { - return e1 - } - return nil -} - -//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) - -func Futimesat(dirfd int, path string, tv []Timeval) error { - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - if tv == nil { - return futimesat(dirfd, pathp, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -// Solaris doesn't have an futimes function because it allows NULL to be -// specified as the path for futimesat. However, Go doesn't like -// NULL-style string interfaces, so this simple wrapper is provided. -func Futimes(fd int, tv []Timeval) error { - if tv == nil { - return futimesat(fd, nil, nil) - } - if len(tv) != 2 { - return EINVAL - } - return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - // Assume path ends at NUL. - // This is not technically the Solaris 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 < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - 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]) - sa.Addr = pp.Addr - 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 - sa.Addr = pp.Addr - return sa, nil - } - return nil, EAFNOSUPPORT -} - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept - -func Accept(fd int) (nfd int, sa Sockaddr, err error) { - var rsa RawSockaddrAny - var len _Socklen = SizeofSockaddrAny - nfd, err = accept(fd, &rsa, &len) - if nfd == -1 { - return - } - sa, err = anyToSockaddr(fd, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg - -func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(rsa)) - msg.Namelen = uint32(SizeofSockaddrAny) - var dummy byte - if len(oob) > 0 { - // receive at least one normal byte - if emptyIovecs(iov) { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = recvmsg(fd, &msg, flags); n == -1 { - return - } - oobn = int(msg.Accrightslen) - return -} - -//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg - -func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - var msg Msghdr - msg.Name = (*byte)(unsafe.Pointer(ptr)) - msg.Namelen = uint32(salen) - var dummy byte - var empty bool - if len(oob) > 0 { - // send at least one normal byte - empty = emptyIovecs(iov) - if empty { - var iova [1]Iovec - iova[0].Base = &dummy - iova[0].SetLen(1) - iov = iova[:] - } - msg.Accrightslen = int32(len(oob)) - } - if len(iov) > 0 { - msg.Iov = &iov[0] - msg.SetIovlen(len(iov)) - } - if n, err = sendmsg(fd, &msg, flags); err != nil { - return 0, err - } - if len(oob) > 0 && empty { - n = 0 - } - return n, nil -} - -//sys acct(path *byte) (err error) - -func Acct(path string) (err error) { - if len(path) == 0 { - // Assume caller wants to disable accounting. - return acct(nil) - } - - pathp, err := BytePtrFromString(path) - if err != nil { - return err - } - return acct(pathp) -} - -//sys __makedev(version int, major uint, minor uint) (val uint64) - -func Mkdev(major, minor uint32) uint64 { - return __makedev(NEWDEV, uint(major), uint(minor)) -} - -//sys __major(version int, dev uint64) (val uint) - -func Major(dev uint64) uint32 { - return uint32(__major(NEWDEV, dev)) -} - -//sys __minor(version int, dev uint64) (val uint) - -func Minor(dev uint64) uint32 { - return uint32(__minor(NEWDEV, dev)) -} - -/* - * Expose the ioctl function - */ - -//sys ioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl -//sys ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl - -func ioctl(fd int, req int, arg uintptr) (err error) { - _, err = ioctlRet(fd, req, arg) - return err -} - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, err = ioctlPtrRet(fd, req, arg) - return err -} - -func IoctlSetTermio(fd int, req int, value *Termio) error { - return ioctlPtr(fd, req, unsafe.Pointer(value)) -} - -func IoctlGetTermio(fd int, req int) (*Termio, error) { - var value Termio - err := ioctlPtr(fd, req, unsafe.Pointer(&value)) - return &value, err -} - -//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 { - return poll(nil, 0, timeout) - } - return poll(&fds[0], len(fds), timeout) -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -/* - * Exposed directly - */ -//sys Access(path string, mode uint32) (err error) -//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) -//sys Chdir(path string) (err error) -//sys Chmod(path string, mode uint32) (err error) -//sys Chown(path string, uid int, gid int) (err error) -//sys Chroot(path string) (err error) -//sys ClockGettime(clockid int32, time *Timespec) (err error) -//sys Close(fd int) (err error) -//sys Creat(path string, mode uint32) (fd int, err error) -//sys Dup(fd int) (nfd int, err error) -//sys Dup2(oldfd int, newfd 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) -//sys Fchmod(fd int, mode uint32) (err error) -//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 Fdatasync(fd int) (err error) -//sys Flock(fd int, how int) (err error) -//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 Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) -//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) -//sysnb Getgid() (gid int) -//sysnb Getpid() (pid int) -//sysnb Getpgid(pid int) (pgid int, err error) -//sysnb Getpgrp() (pgid int, err error) -//sys Geteuid() (euid int) -//sys Getegid() (egid int) -//sys Getppid() (ppid int) -//sys Getpriority(which int, who int) (n int, err error) -//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(tv *Timeval) (err error) -//sysnb Getuid() (uid int) -//sys Kill(pid int, signum syscall.Signal) (err error) -//sys Lchown(path string, uid int, gid int) (err error) -//sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten -//sys Lstat(path string, stat *Stat_t) (err error) -//sys Madvise(b []byte, advice int) (err error) -//sys Mkdir(path string, mode uint32) (err error) -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) -//sys Mkfifo(path string, mode uint32) (err error) -//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) -//sys Mknod(path string, mode uint32, dev int) (err error) -//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) -//sys Mlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Mprotect(b []byte, prot int) (err error) -//sys Msync(b []byte, flags int) (err error) -//sys Munlock(b []byte) (err error) -//sys Munlockall() (err error) -//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) -//sys Open(path string, mode int, perm uint32) (fd int, err error) -//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) -//sys Pathconf(path string, name int) (val int, err error) -//sys Pause() (err error) -//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 read(fd int, p []byte) (n int, err error) -//sys Readlink(path string, buf []byte) (n int, err error) -//sys Rename(from string, to string) (err error) -//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(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) -//sys Sethostname(p []byte) (err error) -//sysnb Setpgid(pid int, pgid int) (err error) -//sys Setpriority(which int, who int, prio int) (err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) -//sysnb Setsid() (pid int, err error) -//sysnb Setuid(uid int) (err error) -//sys Shutdown(s int, how int) (err error) = libsocket.shutdown -//sys Stat(path string, stat *Stat_t) (err error) -//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) -//sys Ftruncate(fd int, length int64) (err error) -//sys Umask(mask int) (oldmask int) -//sysnb Uname(buf *Utsname) (err error) -//sys Unmount(target string, flags int) (err error) = libc.umount -//sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string, flags int) (err error) -//sys Ustat(dev int, ubuf *Ustat_t) (err error) -//sys Utime(path string, buf *Utimbuf) (err error) -//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect -//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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile -//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto -//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair -//sys write(fd int, p []byte) (n int, err error) -//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt -//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername -//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt -//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom - -// Event Ports - -type fileObjCookie struct { - fobj *fileObj - cookie interface{} -} - -// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports. -type EventPort struct { - port int - mu sync.Mutex - fds map[uintptr]*fileObjCookie - paths map[string]*fileObjCookie - // The user cookie presents an interesting challenge from a memory management perspective. - // There are two paths by which we can discover that it is no longer in use: - // 1. The user calls port_dissociate before any events fire - // 2. An event fires and we return it to the user - // The tricky situation is if the event has fired in the kernel but - // the user hasn't requested/received it yet. - // If the user wants to port_dissociate before the event has been processed, - // we should handle things gracefully. To do so, we need to keep an extra - // reference to the cookie around until the event is processed - // thus the otherwise seemingly extraneous "cookies" map - // The key of this map is a pointer to the corresponding fCookie - cookies map[*fileObjCookie]struct{} -} - -// PortEvent is an abstraction of the port_event C struct. -// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD -// to see if Path or Fd was the event source. The other will be -// uninitialized. -type PortEvent struct { - Cookie interface{} - Events int32 - Fd uintptr - Path string - Source uint16 - fobj *fileObj -} - -// NewEventPort creates a new EventPort including the -// underlying call to port_create(3c). -func NewEventPort() (*EventPort, error) { - port, err := port_create() - if err != nil { - return nil, err - } - e := &EventPort{ - port: port, - fds: make(map[uintptr]*fileObjCookie), - paths: make(map[string]*fileObjCookie), - cookies: make(map[*fileObjCookie]struct{}), - } - return e, nil -} - -//sys port_create() (n int, err error) -//sys port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) -//sys port_dissociate(port int, source int, object uintptr) (n int, err error) -//sys port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) -//sys port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) - -// Close closes the event port. -func (e *EventPort) Close() error { - e.mu.Lock() - defer e.mu.Unlock() - err := Close(e.port) - if err != nil { - return err - } - e.fds = nil - e.paths = nil - e.cookies = nil - return nil -} - -// PathIsWatched checks to see if path is associated with this EventPort. -func (e *EventPort) PathIsWatched(path string) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.paths[path] - return found -} - -// FdIsWatched checks to see if fd is associated with this EventPort. -func (e *EventPort) FdIsWatched(fd uintptr) bool { - e.mu.Lock() - defer e.mu.Unlock() - _, found := e.fds[fd] - return found -} - -// AssociatePath wraps port_associate(3c) for a filesystem path including -// creating the necessary file_obj from the provided stat information. -func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.paths[path]; found { - return fmt.Errorf("%v is already associated with this Event Port", path) - } - fCookie, err := createFileObjCookie(path, stat, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.paths[path] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociatePath wraps port_dissociate(3c) for a filesystem path. -func (e *EventPort) DissociatePath(path string) error { - e.mu.Lock() - defer e.mu.Unlock() - f, ok := e.paths[path] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", path) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) - // If the path is no longer associated with this event port (ENOENT) - // we should delete it from our map. We can still return ENOENT to the caller. - // But we need to save the cookie - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.paths[path] - delete(e.cookies, fCookie) - } - delete(e.paths, path) - return err -} - -// AssociateFd wraps calls to port_associate(3c) on file descriptors. -func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error { - e.mu.Lock() - defer e.mu.Unlock() - if _, found := e.fds[fd]; found { - return fmt.Errorf("%v is already associated with this Event Port", fd) - } - fCookie, err := createFileObjCookie("", nil, cookie) - if err != nil { - return err - } - _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) - if err != nil { - return err - } - e.fds[fd] = fCookie - e.cookies[fCookie] = struct{}{} - return nil -} - -// DissociateFd wraps calls to port_dissociate(3c) on file descriptors. -func (e *EventPort) DissociateFd(fd uintptr) error { - e.mu.Lock() - defer e.mu.Unlock() - _, ok := e.fds[fd] - if !ok { - return fmt.Errorf("%v is not associated with this Event Port", fd) - } - _, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) - if err != nil && err != ENOENT { - return err - } - if err == nil { - // dissociate was successful, safe to delete the cookie - fCookie := e.fds[fd] - delete(e.cookies, fCookie) - } - delete(e.fds, fd) - return err -} - -func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { - fCookie := new(fileObjCookie) - fCookie.cookie = cookie - if name != "" && stat != nil { - fCookie.fobj = new(fileObj) - bs, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) - s := stat.Sys().(*syscall.Stat_t) - fCookie.fobj.Atim.Sec = s.Atim.Sec - fCookie.fobj.Atim.Nsec = s.Atim.Nsec - fCookie.fobj.Mtim.Sec = s.Mtim.Sec - fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec - fCookie.fobj.Ctim.Sec = s.Ctim.Sec - fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec - } - return fCookie, nil -} - -// GetOne wraps port_get(3c) and returns a single PortEvent. -func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { - pe := new(portEvent) - _, err := port_get(e.port, pe, t) - if err != nil { - return nil, err - } - p := new(PortEvent) - e.mu.Lock() - defer e.mu.Unlock() - err = e.peIntToExt(pe, p) - if err != nil { - return nil, err - } - return p, nil -} - -// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent -// NOTE: Always call this function while holding the e.mu mutex -func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { - if e.cookies == nil { - return fmt.Errorf("this EventPort is already closed") - } - peExt.Events = peInt.Events - peExt.Source = peInt.Source - fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) - _, found := e.cookies[fCookie] - - if !found { - panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") - } - peExt.Cookie = fCookie.cookie - delete(e.cookies, fCookie) - - switch peInt.Source { - case PORT_SOURCE_FD: - peExt.Fd = uintptr(peInt.Object) - // Only remove the fds entry if it exists and this cookie matches - if fobj, ok := e.fds[peExt.Fd]; ok { - if fobj == fCookie { - delete(e.fds, peExt.Fd) - } - } - case PORT_SOURCE_FILE: - peExt.fobj = fCookie.fobj - peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) - // Only remove the paths entry if it exists and this cookie matches - if fobj, ok := e.paths[peExt.Path]; ok { - if fobj == fCookie { - delete(e.paths, peExt.Path) - } - } - } - return nil -} - -// Pending wraps port_getn(3c) and returns how many events are pending. -func (e *EventPort) Pending() (int, error) { - var n uint32 = 0 - _, err := port_getn(e.port, nil, 0, &n, nil) - return int(n), err -} - -// Get wraps port_getn(3c) and fills a slice of PortEvent. -// It will block until either min events have been received -// or the timeout has been exceeded. It will return how many -// events were actually received along with any error information. -func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) { - if min == 0 { - return 0, fmt.Errorf("need to request at least one event or use Pending() instead") - } - if len(s) < min { - return 0, fmt.Errorf("len(s) (%d) is less than min events requested (%d)", len(s), min) - } - got := uint32(min) - max := uint32(len(s)) - var err error - ps := make([]portEvent, max) - _, err = port_getn(e.port, &ps[0], max, &got, timeout) - // got will be trustworthy with ETIME, but not any other error. - if err != nil && err != ETIME { - return 0, err - } - e.mu.Lock() - defer e.mu.Unlock() - valid := 0 - for i := 0; i < int(got); i++ { - err2 := e.peIntToExt(&ps[i], &s[i]) - if err2 != nil { - if valid == 0 && err == nil { - // If err2 is the only error and there are no valid events - // to return, return it to the caller. - err = err2 - } - break - } - valid = i + 1 - } - return valid, err -} - -//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 -} - -func IoctlSetIntRetInt(fd int, req int, arg int) (int, error) { - return ioctlRet(fd, req, uintptr(arg)) -} - -func IoctlSetString(fd int, req int, val string) error { - bs := make([]byte, len(val)+1) - copy(bs[:len(bs)-1], val) - err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0])) - runtime.KeepAlive(&bs[0]) - return err -} - -// Lifreq Helpers - -func (l *Lifreq) SetName(name string) error { - if len(name) >= len(l.Name) { - return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) - } - for i := range name { - l.Name[i] = int8(name[i]) - } - return nil -} - -func (l *Lifreq) SetLifruInt(d int) { - *(*int)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruInt() int { - return *(*int)(unsafe.Pointer(&l.Lifru[0])) -} - -func (l *Lifreq) SetLifruUint(d uint) { - *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruUint() uint { - return *(*uint)(unsafe.Pointer(&l.Lifru[0])) -} - -func IoctlLifreq(fd int, req int, l *Lifreq) error { - return ioctlPtr(fd, req, unsafe.Pointer(l)) -} - -// Strioctl Helpers - -func (s *Strioctl) SetInt(i int) { - s.Len = int32(unsafe.Sizeof(i)) - s.Dp = (*int8)(unsafe.Pointer(&i)) -} - -func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { - return ioctlPtrRet(fd, req, unsafe.Pointer(s)) -} - -// Ucred Helpers -// See ucred(3c) and getpeerucred(3c) - -//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) -//sys ucredFree(ucred uintptr) = ucred_free -//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get -//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid -//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid -//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid -//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid -//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid -//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid -//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid - -// Ucred is an opaque struct that holds user credentials. -type Ucred struct { - ucred uintptr -} - -// We need to ensure that ucredFree is called on the underlying ucred -// when the Ucred is garbage collected. -func ucredFinalizer(u *Ucred) { - ucredFree(u.ucred) -} - -func GetPeerUcred(fd uintptr) (*Ucred, error) { - var ucred uintptr - err := getpeerucred(fd, &ucred) - if err != nil { - return nil, err - } - result := &Ucred{ - ucred: ucred, - } - // set the finalizer on the result so that the ucred will be freed - runtime.SetFinalizer(result, ucredFinalizer) - return result, nil -} - -func UcredGet(pid int) (*Ucred, error) { - ucred, err := ucredGet(pid) - if err != nil { - return nil, err - } - result := &Ucred{ - ucred: ucred, - } - // set the finalizer on the result so that the ucred will be freed - runtime.SetFinalizer(result, ucredFinalizer) - return result, nil -} - -func (u *Ucred) Geteuid() int { - defer runtime.KeepAlive(u) - return ucredGeteuid(u.ucred) -} - -func (u *Ucred) Getruid() int { - defer runtime.KeepAlive(u) - return ucredGetruid(u.ucred) -} - -func (u *Ucred) Getsuid() int { - defer runtime.KeepAlive(u) - return ucredGetsuid(u.ucred) -} - -func (u *Ucred) Getegid() int { - defer runtime.KeepAlive(u) - return ucredGetegid(u.ucred) -} - -func (u *Ucred) Getrgid() int { - defer runtime.KeepAlive(u) - return ucredGetrgid(u.ucred) -} - -func (u *Ucred) Getsgid() int { - defer runtime.KeepAlive(u) - return ucredGetsgid(u.ucred) -} - -func (u *Ucred) Getpid() int { - defer runtime.KeepAlive(u) - return ucredGetpid(u.ucred) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go deleted file mode 100644 index e02d8ce..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +++ /dev/null @@ -1,27 +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. - -//go:build amd64 && solaris - -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 (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 deleted file mode 100644 index 4e92e5a..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ /dev/null @@ -1,615 +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. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris - -package unix - -import ( - "bytes" - "sort" - "sync" - "syscall" - "unsafe" -) - -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 syscall.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 syscall.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 - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) - - // 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 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) -} - -func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) - return unsafe.Pointer(xaddr), err -} - -func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { - return mapper.munmap(uintptr(addr), length) -} - -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 -} - -func Pread(fd int, p []byte, offset int64) (n int, err error) { - n, err = pread(fd, p, offset) - if raceenabled { - if n > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), n) - } - if err == nil { - raceAcquire(unsafe.Pointer(&ioSync)) - } - } - return -} - -func Pwrite(fd int, p []byte, offset int64) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - n, err = pwrite(fd, p, offset) - 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 -} - -// Recvmsg receives a message from a socket using the recvmsg system call. The -// received non-control data will be written to p, and any "out of band" -// control data will be written to oob. The flags are passed to recvmsg. -// -// The results are: -// - n is the number of non-control data bytes read into p -// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] -// - recvflags is flags returned by recvmsg -// - from is the address of the sender -// -// If the underlying socket type is not SOCK_DGRAM, a received message -// containing oob data and a single '\0' of non-control data is treated as if -// the message contained only control data, i.e. n will be zero on return. -func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) - // source address is only specified if the socket is unconnected - if rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// RecvmsgBuffers receives a message from a socket using the recvmsg system -// call. This function is equivalent to Recvmsg, but non-control data read is -// scattered into the buffers slices. -func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var rsa RawSockaddrAny - n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) - if err == nil && rsa.Addr.Family != AF_UNSPEC { - from, err = anyToSockaddr(fd, &rsa) - } - return -} - -// Sendmsg sends a message on a socket to an address using the sendmsg system -// call. This function is equivalent to SendmsgN, but does not return the -// number of bytes actually sent. -func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { - _, err = SendmsgN(fd, p, oob, to, flags) - return -} - -// SendmsgN sends a message on a socket to an address using the sendmsg system -// call. p contains the non-control data to send, and oob contains the "out of -// band" control data. The flags are passed to sendmsg. The number of -// non-control bytes actually written to the socket is returned. -// -// Some socket types do not support sending control data without accompanying -// non-control data. If p is empty, and oob contains control data, and the -// underlying socket type is not SOCK_DGRAM, p will be treated as containing a -// single '\0' and the return value will indicate zero bytes sent. -// -// The Go function Recvmsg, if called with an empty p and a non-empty oob, -// will read and ignore this additional '\0'. If the message is received by -// code that does not use Recvmsg, or that does not use Go at all, that code -// will need to be written to expect and ignore the additional '\0'. -// -// If you need to send non-empty oob with p actually empty, and if the -// underlying socket type supports it, you can do so via a raw system call as -// follows: -// -// msg := &unix.Msghdr{ -// Control: &oob[0], -// } -// msg.SetControllen(len(oob)) -// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) -func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { - var iov [1]Iovec - if len(p) > 0 { - iov[0].Base = &p[0] - iov[0].SetLen(len(p)) - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov[:], oob, ptr, salen, flags) -} - -// SendmsgBuffers sends a message on a socket to an address using the sendmsg -// system call. This function is equivalent to SendmsgN, but the non-control -// data is gathered from buffers. -func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { - iov := make([]Iovec, len(buffers)) - for i := range buffers { - if len(buffers[i]) > 0 { - iov[i].Base = &buffers[i][0] - iov[i].SetLen(len(buffers[i])) - } else { - iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) - } - } - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return 0, err - } - } - return sendmsgN(fd, iov, oob, ptr, salen, flags) -} - -func Send(s int, buf []byte, flags int) (err error) { - return sendto(s, buf, flags, nil, 0) -} - -func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - var ptr unsafe.Pointer - var salen _Socklen - if to != nil { - ptr, salen, err = to.sockaddr() - if err != nil { - return err - } - } - return sendto(fd, p, flags, ptr, salen) -} - -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 (flag&O_NONBLOCK != 0) == nonblocking { - return nil - } - 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) -} - -// Lutimes sets the access and modification times tv on path. If path refers to -// a symlink, it is not dereferenced and the timestamps are set on the symlink. -// If tv is nil, the access and modification times are set to the current time. -// Otherwise tv must contain exactly 2 elements, with access time as the first -// element and modification time as the second element. -func Lutimes(path string, tv []Timeval) error { - if tv == nil { - return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) - } - if len(tv) != 2 { - return EINVAL - } - ts := []Timespec{ - NsecToTimespec(TimevalToNsec(tv[0])), - NsecToTimespec(TimevalToNsec(tv[1])), - } - return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) -} - -// emptyIovecs reports whether there are no bytes in the slice of Iovec. -func emptyIovecs(iov []Iovec) bool { - for i := range iov { - if iov[i].Len > 0 { - return false - } - } - return true -} - -// Setrlimit sets a resource limit. -func Setrlimit(resource int, rlim *Rlimit) error { - // Just call the syscall version, because as of Go 1.21 - // it will affect starting a new process. - return syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim)) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go deleted file mode 100644 index 05c95bc..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 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 deleted file mode 100644 index 23f39b7..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +++ /dev/null @@ -1,22 +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. - -//go:build linux && (ppc64le || ppc64) && gc - -package unix - -import "syscall" - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall(trap, a1, a2, a3) -} -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) -} -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall(trap, a1, a2, a3) -} -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { - return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go deleted file mode 100644 index 7bf5c04..0000000 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ /dev/null @@ -1,3213 +0,0 @@ -// 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 - -// Many of the following syscalls are not available on all versions of z/OS. -// Some missing calls have legacy implementations/simulations but others -// will be missing completely. To achieve consistent failing behaviour on -// legacy systems, we first test the function pointer via a safeloading -// mechanism to see if the function exists on a given system. Then execution -// is branched to either continue the function call, or return an error. - -package unix - -import ( - "bytes" - "fmt" - "os" - "reflect" - "regexp" - "runtime" - "sort" - "strings" - "sync" - "syscall" - "unsafe" -) - -//go:noescape -func initZosLibVec() - -//go:noescape -func GetZosLibVec() uintptr - -func init() { - initZosLibVec() - r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACE\x00"))[0]))) - if r0 != 0 { - n, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) - ZosTraceLevel = int(n) - r0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte("__ZOS_XSYSTRACEFD\x00"))[0]))) - if r0 != 0 { - fd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0) - f := os.NewFile(fd, "zostracefile") - if f != nil { - ZosTracefile = f - } - } - - } -} - -//go:noescape -func CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) - -//go:noescape -func CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno) - -// ------------------------------- -// pointer validity test -// good pointer returns 0 -// bad pointer returns 1 -// -//go:nosplit -func ptrtest(uintptr) uint64 - -// Load memory at ptr location with error handling if the location is invalid -// -//go:noescape -func safeload(ptr uintptr) (value uintptr, error uintptr) - -const ( - entrypointLocationOffset = 8 // From function descriptor - - xplinkEyecatcher = 0x00c300c500c500f1 // ".C.E.E.1" - eyecatcherOffset = 16 // From function entrypoint (negative) - ppa1LocationOffset = 8 // From function entrypoint (negative) - - nameLenOffset = 0x14 // From PPA1 start - nameOffset = 0x16 // From PPA1 start -) - -func getPpaOffset(funcptr uintptr) int64 { - entrypoint, err := safeload(funcptr + entrypointLocationOffset) - if err != 0 { - return -1 - } - - // XPLink functions have ".C.E.E.1" as the first 8 bytes (EBCDIC) - val, err := safeload(entrypoint - eyecatcherOffset) - if err != 0 { - return -1 - } - if val != xplinkEyecatcher { - return -1 - } - - ppaoff, err := safeload(entrypoint - ppa1LocationOffset) - if err != 0 { - return -1 - } - - ppaoff >>= 32 - return int64(ppaoff) -} - -//------------------------------- -// function descriptor pointer validity test -// good pointer returns 0 -// bad pointer returns 1 - -// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName -// have correct funcName pass to the funcptrtest function -func funcptrtest(funcptr uintptr, funcName string) uint64 { - entrypoint, err := safeload(funcptr + entrypointLocationOffset) - if err != 0 { - return 1 - } - - ppaoff := getPpaOffset(funcptr) - if ppaoff == -1 { - return 1 - } - - // PPA1 offset value is from the start of the entire function block, not the entrypoint - ppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff) - - nameLen, err := safeload(ppa1 + nameLenOffset) - if err != 0 { - return 1 - } - - nameLen >>= 48 - if nameLen > 128 { - return 1 - } - - // no function name input to argument end here - if funcName == "" { - return 0 - } - - var funcname [128]byte - for i := 0; i < int(nameLen); i += 8 { - v, err := safeload(ppa1 + nameOffset + uintptr(i)) - if err != 0 { - return 1 - } - funcname[i] = byte(v >> 56) - funcname[i+1] = byte(v >> 48) - funcname[i+2] = byte(v >> 40) - funcname[i+3] = byte(v >> 32) - funcname[i+4] = byte(v >> 24) - funcname[i+5] = byte(v >> 16) - funcname[i+6] = byte(v >> 8) - funcname[i+7] = byte(v) - } - - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l - []uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen}) - - name := string(funcname[:nameLen]) - if name != funcName { - return 1 - } - - return 0 -} - -// For detection of capabilities on a system. -// Is function descriptor f a valid function? -func isValidLeFunc(f uintptr) error { - ret := funcptrtest(f, "") - if ret != 0 { - return fmt.Errorf("Bad pointer, not an LE function ") - } - return nil -} - -// Retrieve function name from descriptor -func getLeFuncName(f uintptr) (string, error) { - // assume it has been checked, only check ppa1 validity here - entry := ((*[2]uintptr)(unsafe.Pointer(f)))[1] - preamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset))) - - offsetPpa1 := preamp[2] - if offsetPpa1 > 0x0ffff { - return "", fmt.Errorf("PPA1 offset seems too big 0x%x\n", offsetPpa1) - } - - ppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1) - res := ptrtest(ppa1) - if res != 0 { - return "", fmt.Errorf("PPA1 address not valid") - } - - size := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset)) - if size > 128 { - return "", fmt.Errorf("Function name seems too long, length=%d\n", size) - } - - var name [128]byte - funcname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset)) - copy(name[0:size], funcname[0:size]) - - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l - []uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)}) - - return string(name[:size]), nil -} - -// Check z/OS version -func zosLeVersion() (version, release uint32) { - p1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32 - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88))) - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8))) - p1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984))) - vrm := *(*uint32)(unsafe.Pointer(p1 + 80)) - version = (vrm & 0x00ff0000) >> 16 - release = (vrm & 0x0000ff00) >> 8 - return -} - -// returns a zos C FILE * for stdio fd 0, 1, 2 -func ZosStdioFilep(fd int32) uintptr { - return uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3)))))))) -} - -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 "" - } - s := string(d.Name[:]) - idx := strings.IndexByte(s, 0) - if idx == -1 { - return s - } else { - return s[:idx] - } -} - -func DecodeData(dest []byte, sz int, val uint64) { - for i := 0; i < sz; i++ { - dest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff) - } -} - -func EncodeData(data []byte) uint64 { - var value uint64 - sz := len(data) - for i := 0; i < sz; i++ { - value |= uint64(data[i]) << uint64(((sz - i - 1) * 8)) - } - return value -} - -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++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - 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 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") - } - // TODO(neeilan): Remove 0 in call - sa, err = anyToSockaddr(0, &rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -func Ctermid() (tty string, err error) { - var termdev [1025]byte - runtime.EnterSyscall() - r0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0]))) - runtime.ExitSyscall() - if r0 == 0 { - return "", fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) - } - s := string(termdev[:]) - idx := strings.Index(s, string(rune(0))) - if idx == -1 { - tty = s - } else { - tty = s[:idx] - } - 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 Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A -//sys Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A -//sys read(fd int, p []byte) (n int, err error) -//sys write(fd int, p []byte) (n int, err error) - -//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A -//sys Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A - -//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A -//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_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 Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_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 int, arg uintptr) (err error) = SYS_IOCTL -//sys ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL -//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT -//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64 -//sys shmdt(addr uintptr) (err error) = SYS_SHMDT -//sys shmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET - -//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 Dup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3 -//sys Dirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD -//sys EpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE -//sys EpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1 -//sys EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL -//sys EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT -//sys Errno2() (er2 int) = SYS___ERRNO2 -//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD -//sys Exit(code int) -//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A - -func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { - return Faccessat(dirfd, path, mode, flags) -} - -//sys Fchdir(fd int) (err error) -//sys Fchmod(fd int, mode uint32) (err error) -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A -//sys Fchown(fd int, uid int, gid int) (err error) -//sys Fchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A -//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL -//sys Fdatasync(fd int) (err error) = SYS_FDATASYNC -//sys fstat(fd int, stat *Stat_LE_t) (err error) -//sys fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A - -func Fstat(fd int, stat *Stat_t) (err error) { - var statLE Stat_LE_t - err = fstat(fd, &statLE) - copyStat(stat, &statLE) - return -} - -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var statLE Stat_LE_t - err = fstatat(dirfd, path, &statLE, flags) - copyStat(stat, &statLE) - return -} - -func impl_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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error)) - -var Getxattr = enter_Getxattr - -func enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) { - funcref := get_GetxattrAddr() - if validGetxattr() { - *funcref = impl_Getxattr - } else { - *funcref = error_Getxattr - } - return (*funcref)(path, attr, dest) -} - -func error_Getxattr(path string, attr string, dest []byte) (sz int, err error) { - return -1, ENOSYS -} - -func validGetxattr() bool { - if funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil { - return name == "__getxattr_a" - } - } - return false -} - -//sys Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A -//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A - -func impl_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) - } - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) - -var Setxattr = enter_Setxattr - -func enter_Setxattr(path string, attr string, data []byte, flags int) (err error) { - funcref := get_SetxattrAddr() - if validSetxattr() { - *funcref = impl_Setxattr - } else { - *funcref = error_Setxattr - } - return (*funcref)(path, attr, data, flags) -} - -func error_Setxattr(path string, attr string, data []byte, flags int) (err error) { - return ENOSYS -} - -func validSetxattr() bool { - if funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil { - return name == "__setxattr_a" - } - } - return false -} - -//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS -//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS -//sys Fsync(fd int) (err error) -//sys Futimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES -//sys Futimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A -//sys Ftruncate(fd int, length int64) (err error) -//sys Getrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM -//sys InotifyInit() (fd int, err error) = SYS_INOTIFY_INIT -//sys InotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1 -//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A -//sys InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH -//sys Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A -//sys Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A -//sys Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A -//sys Lutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A -//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT -//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC -//sys Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2 - -// Pipe2 begin - -//go:nosplit -func getPipe2Addr() *(func([]int, int) error) - -var Pipe2 = pipe2Enter - -func pipe2Enter(p []int, flags int) (err error) { - if funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, "") == 0 { - *getPipe2Addr() = pipe2Impl - } else { - *getPipe2Addr() = pipe2Error - } - return (*getPipe2Addr())(p, flags) -} - -func pipe2Impl(p []int, flags int) (err error) { - var pp [2]_C_int - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } else { - p[0] = int(pp[0]) - p[1] = int(pp[1]) - } - return -} -func pipe2Error(p []int, flags int) (err error) { - return fmt.Errorf("Pipe2 is not available on this system") -} - -// Pipe2 end - -//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL - -func Readdir(dir uintptr) (dirent *Dirent, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir)) - runtime.ExitSyscall() - dirent = (*Dirent)(unsafe.Pointer(r0)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//sys Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A -//sys Statfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A -//sys Syncfs(fd int) (err error) = SYS_SYNCFS -//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 W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A - -//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A -//sys unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A -//sys Chroot(path string) (err error) = SYS___CHROOT_A -//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT -//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A -//sys Unshare(flags int) (err error) = SYS_UNSHARE - -func Ptsname(fd int) (name string, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd)) - runtime.ExitSyscall() - if r0 == 0 { - err = errnoErr2(e1, e2) - } else { - name = u2s(unsafe.Pointer(r0)) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) - runtime.ExitSyscall() - for i := 0; e1 == EAGAIN && i < 10; i++ { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10)) - runtime.ExitSyscall() - runtime.EnterSyscall() - r0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd)) - runtime.ExitSyscall() - } - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -// 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) -} - -func MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset) - return unsafe.Pointer(xaddr), err -} - -func MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) { - return mapper.munmap(uintptr(addr), length) -} - -//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A -//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 -} - -//sys Getegid() (egid int) = SYS_GETEGID -//sys Geteuid() (euid int) = SYS_GETEUID -//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 Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_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 -} - -// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/ -func isSpecialPath(path []byte) (v bool) { - var special = [4][8]byte{ - {'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'}, - {'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'}, - {'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'}, - {'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}} - - var i, j int - for i = 0; i < len(special); i++ { - for j = 0; j < len(special[i]); j++ { - if path[j] != special[i][j] { - break - } - } - if j == len(special[i]) { - return true - } - } - return false -} - -func realpath(srcpath string, abspath []byte) (pathlen int, errno int) { - var source [1024]byte - copy(source[:], srcpath) - source[len(srcpath)] = 0 - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a() - []uintptr{uintptr(unsafe.Pointer(&source[0])), - uintptr(unsafe.Pointer(&abspath[0]))}) - if ret != 0 { - index := bytes.IndexByte(abspath[:], byte(0)) - if index != -1 { - return index, 0 - } - } else { - errptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno() - return 0, *errptr - } - return 0, 245 // EBADDATA 245 -} - -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) - } - n = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4, - []uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))})) - runtime.KeepAlive(unsafe.Pointer(_p0)) - if n == -1 { - value := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) - err = errnoErr(Errno(value)) - } else { - if buf[0] == '$' { - if isSpecialPath(buf[1:9]) { - cnt, err1 := realpath(path, buf) - if err1 == 0 { - n = cnt - } - } - } - } - return -} - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - return n, err - } else { - if buf[0] == '$' { - if isSpecialPath(buf[1:9]) { - cnt, err1 := realpath(path, buf) - if err1 == 0 { - n = cnt - } - } - } - } - return -} - -//go:nosplit -func get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error)) - -var Readlinkat = enter_Readlinkat - -func enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - funcref := get_ReadlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, "") == 0 { - *funcref = impl_Readlinkat - } else { - *funcref = error_Readlinkat - } - return (*funcref)(dirfd, path, buf) -} - -func error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A -//sys Mkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_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 Mknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A -//sys PivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_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 Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A -//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT -//sys Rename(from string, to string) (err error) = SYS___RENAME_A -//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A -//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_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 Setegid(egid int) (err error) = SYS_SETEGID -//sys Seteuid(euid int) (err error) = SYS_SETEUID -//sys Sethostname(p []byte) (err error) = SYS___SETHOSTNAME_A -//sys Setns(fd int, nstype int) (err error) = SYS_SETNS -//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 Symlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_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 Unlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_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) { - if mode&O_ACCMODE == 0 { - mode |= O_RDONLY - } - return open(path, mode, perm) -} - -//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A - -func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - if flags&O_ACCMODE == 0 { - flags |= O_RDONLY - } - return openat(dirfd, path, flags, mode) -} - -//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A - -func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { - if how.Flags&O_ACCMODE == 0 { - how.Flags |= O_RDONLY - } - return openat2(dirfd, path, how, SizeofOpenHow) -} - -func ZosFdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - runtime.EnterSyscall() - ret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))) - runtime.ExitSyscall() - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - CallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)) - return string(buffer[:zb]), nil - } - return "", errnoErr2(e1, e2) -} - -//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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf))) - runtime.ExitSyscall() - n = clen(buf) + 1 - if r0 == 0 { - err = errnoErr2(e1, e2) - } - 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 waitid(idType int, id int, info *Siginfo, options int) (err error) - -func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { - return waitid(idType, id, info, options) -} - -//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) - -func impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage))) - runtime.ExitSyscall() - wpid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)) - -var Wait4 = enter_Wait4 - -func enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - funcref := get_Wait4Addr() - if funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, "") == 0 { - *funcref = impl_Wait4 - } else { - *funcref = legacyWait4 - } - return (*funcref)(pid, wstatus, options, rusage) -} - -func legacyWait4(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 tv == nil { - return utimes(path, nil) - } - if len(tv) != 2 { - return EINVAL - } - return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) -} - -//sys utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A - -func validUtimensat() bool { - if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil { - return name == "__utimensat_a" - } - } - return false -} - -// Begin UtimesNano - -//go:nosplit -func get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error)) - -var UtimesNano = enter_UtimesNano - -func enter_UtimesNano(path string, ts []Timespec) (err error) { - funcref := get_UtimesNanoAddr() - if validUtimensat() { - *funcref = utimesNanoImpl - } else { - *funcref = legacyUtimesNano - } - return (*funcref)(path, ts) -} - -func utimesNanoImpl(path string, ts []Timespec) (err error) { - if ts == nil { - return utimensat(AT_FDCWD, path, nil, 0) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) -} - -func legacyUtimesNano(path string, ts []Timespec) (err 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]))) -} - -// End UtimesNano - -// Begin UtimesNanoAt - -//go:nosplit -func get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error)) - -var UtimesNanoAt = enter_UtimesNanoAt - -func enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { - funcref := get_UtimesNanoAtAddr() - if validUtimensat() { - *funcref = utimesNanoAtImpl - } else { - *funcref = legacyUtimesNanoAt - } - return (*funcref)(dirfd, path, ts, flags) -} - -func utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) { - if ts == nil { - return utimensat(dirfd, path, nil, flags) - } - if len(ts) != 2 { - return EINVAL - } - return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) -} - -func legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) { - if path[0] != '/' { - dirPath, err := ZosFdToPath(dirfd) - if err != nil { - return err - } - path = dirPath + "/" + path - } - if flags == AT_SYMLINK_NOFOLLOW { - if len(ts) != 2 { - return EINVAL - } - - if ts[0].Nsec >= 5e8 { - ts[0].Sec++ - } - ts[0].Nsec = 0 - if ts[1].Nsec >= 5e8 { - ts[1].Sec++ - } - ts[1].Nsec = 0 - - // Not as efficient as it could be because Timespec and - // Timeval have different types in the different OSes - tv := []Timeval{ - NsecToTimeval(TimespecToNsec(ts[0])), - NsecToTimeval(TimespecToNsec(ts[1])), - } - return Lutimes(path, tv) - } - return UtimesNano(path, ts) -} - -// End UtimesNanoAt - -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 ByteSliceToString(buf[:vallen]), 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 - } - err = nil - runtime.EnterSyscall() - dir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p))) - runtime.ExitSyscall() - runtime.KeepAlive(unsafe.Pointer(p)) - if dir == 0 { - err = errnoErr2(e1, e2) - } - return dir, err -} - -// clearsyscall.Errno resets the errno value to 0. -func clearErrno() - -func Closedir(dir uintptr) error { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir) - runtime.ExitSyscall() - if r0 != 0 { - return errnoErr2(e1, e2) - } - return nil -} - -func Seekdir(dir uintptr, pos int) { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos)) - runtime.ExitSyscall() -} - -func Telldir(dir uintptr) (int, error) { - p, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir) - pos := int(p) - if int64(p) == -1 { - return pos, errnoErr2(e1, e2) - } - 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 - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) - runtime.ExitSyscall() - 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 r0 == 0 { - return nil - } - return errnoErr2(e1, e2) -} - -func impl_Flock(fd int, how int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FlockAddr() *(func(fd int, how int) (err error)) - -var Flock = enter_Flock - -func validFlock(fp uintptr) bool { - if funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil { - return name == "flock" - } - } - return false -} - -func enter_Flock(fd int, how int) (err error) { - funcref := get_FlockAddr() - if validFlock(GetZosLibVec() + SYS_FLOCK<<4) { - *funcref = impl_Flock - } else { - *funcref = legacyFlock - } - return (*funcref)(fd, how) -} - -func legacyFlock(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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Mlock2(b []byte, flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Mlockall(flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Munlock(b []byte) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - return -} - -func Munlockall() (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP) - runtime.ExitSyscall() - if r0 != 0 { - err = errnoErr2(e1, e2) - } - 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 -} - -// Chtag - -//go:nosplit -func get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error) - -var Chtag = enter_Chtag - -func enter_Chtag(path string, ccsid uint64, textbit uint64) error { - funcref := get_ChtagAddr() - if validSetxattr() { - *funcref = impl_Chtag - } else { - *funcref = legacy_Chtag - } - return (*funcref)(path, ccsid, textbit) -} - -func legacy_Chtag(path string, ccsid uint64, textbit uint64) error { - tag := ccsid<<16 | textbit<<15 - var tag_buff [8]byte - DecodeData(tag_buff[:], 8, tag) - return Setxattr(path, "filetag", tag_buff[:], XATTR_REPLACE) -} - -func impl_Chtag(path string, ccsid uint64, textbit uint64) error { - tag := ccsid<<16 | textbit<<15 - var tag_buff [4]byte - DecodeData(tag_buff[:], 4, tag) - return Setxattr(path, "system.filetag", tag_buff[:], XATTR_REPLACE) -} - -// End of Chtag - -// Nanosleep - -//go:nosplit -func get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error) - -var Nanosleep = enter_Nanosleep - -func enter_Nanosleep(time *Timespec, leftover *Timespec) error { - funcref := get_NanosleepAddr() - if funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, "") == 0 { - *funcref = impl_Nanosleep - } else { - *funcref = legacyNanosleep - } - return (*funcref)(time, leftover) -} - -func impl_Nanosleep(time *Timespec, leftover *Timespec) error { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) - runtime.ExitSyscall() - if int64(r0) == -1 { - return errnoErr2(e1, e2) - } - return nil -} - -func legacyNanosleep(time *Timespec, leftover *Timespec) error { - t0 := runtime.Nanotime1() - var secrem uint32 - var nsecrem uint32 - total := time.Sec*1000000000 + time.Nsec - elapsed := runtime.Nanotime1() - t0 - var rv int32 - var rc int32 - var err error - // repeatedly sleep for 1 second until less than 1 second left - for total-elapsed > 1000000000 { - rv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem) - if rv != 0 && rc != 112 { // 112 is EAGAIN - if leftover != nil && rc == 120 { // 120 is EINTR - leftover.Sec = int64(secrem) - leftover.Nsec = int64(nsecrem) - } - err = Errno(rc) - return err - } - elapsed = runtime.Nanotime1() - t0 - } - // sleep the remainder - if total > elapsed { - rv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem) - } - if leftover != nil && rc == 120 { - leftover.Sec = int64(secrem) - leftover.Nsec = int64(nsecrem) - } - if rv != 0 && rc != 112 { - err = Errno(rc) - } - return err -} - -// End of Nanosleep - -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 ZosTraceLevel int -var ZosTracefile *os.File - -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 -} - -var reg *regexp.Regexp - -// enhanced with zos specific errno2 -func errnoErr2(e Errno, e2 uintptr) error { - switch e { - case 0: - return nil - case EAGAIN: - return errEAGAIN - /* - Allow the retrieval of errno2 for EINVAL and ENOENT on zos - case EINVAL: - return errEINVAL - case ENOENT: - return errENOENT - */ - } - if ZosTraceLevel > 0 { - var name string - if reg == nil { - reg = regexp.MustCompile("(^unix\\.[^/]+$|.*\\/unix\\.[^/]+$)") - } - i := 1 - pc, file, line, ok := runtime.Caller(i) - if ok { - name = runtime.FuncForPC(pc).Name() - } - for ok && reg.MatchString(runtime.FuncForPC(pc).Name()) { - i += 1 - pc, file, line, ok = runtime.Caller(i) - } - if ok { - if ZosTracefile == nil { - ZosConsolePrintf("From %s:%d\n", file, line) - ZosConsolePrintf("%s: %s (errno2=0x%x)\n", name, e.Error(), e2) - } else { - fmt.Fprintf(ZosTracefile, "From %s:%d\n", file, line) - fmt.Fprintf(ZosTracefile, "%s: %s (errno2=0x%x)\n", name, e.Error(), e2) - } - } else { - if ZosTracefile == nil { - ZosConsolePrintf("%s (errno2=0x%x)\n", e.Error(), e2) - } else { - fmt.Fprintf(ZosTracefile, "%s (errno2=0x%x)\n", e.Error(), e2) - } - } - } - 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 - } - - // Set __MAP_64 by default - flags |= __MAP_64 - - // 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) -} - -func Getag(path string) (ccsid uint16, flag uint16, err error) { - var val [8]byte - sz, err := Getxattr(path, "ccsid", val[:]) - if err != nil { - return - } - ccsid = uint16(EncodeData(val[0:sz])) - sz, err = Getxattr(path, "flags", val[:]) - if err != nil { - return - } - flag = uint16(EncodeData(val[0:sz]) >> 15) - return -} - -// Mount begin -func impl_Mount(source string, target string, fstype string, flags uintptr, data string) (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 - } - var _p3 *byte - _p3, err = BytePtrFromString(data) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error)) - -var Mount = enter_Mount - -func enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { - funcref := get_MountAddr() - if validMount() { - *funcref = impl_Mount - } else { - *funcref = legacyMount - } - return (*funcref)(source, target, fstype, flags, data) -} - -func legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) { - if needspace := 8 - len(fstype); needspace <= 0 { - fstype = fstype[0:8] - } else { - fstype += " "[0:needspace] - } - return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) -} - -func validMount() bool { - if funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, "") == 0 { - if name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil { - return name == "__mount1_a" - } - } - return false -} - -// Mount end - -// Unmount begin -func impl_Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnmountAddr() *(func(target string, flags int) (err error)) - -var Unmount = enter_Unmount - -func enter_Unmount(target string, flags int) (err error) { - funcref := get_UnmountAddr() - if funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, "") == 0 { - *funcref = impl_Unmount - } else { - *funcref = legacyUnmount - } - return (*funcref)(target, flags) -} - -func legacyUnmount(name string, mtm int) (err error) { - // mountpoint is always a full path and starts with a '/' - // check if input string is not a mountpoint but a filesystem name - if name[0] != '/' { - return unmount_LE(name, mtm) - } - // treat name as mountpoint - b2s := func(arr []byte) string { - var str string - for i := 0; i < len(arr); i++ { - if arr[i] == 0 { - str = string(arr[:i]) - break - } - } - return str - } - var buffer struct { - header W_Mnth - fsinfo [64]W_Mntent - } - fs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) - if err == nil { - err = EINVAL - for i := 0; i < fs_count; i++ { - if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { - err = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm) - break - } - } - } else if fs_count == 0 { - err = EINVAL - } - return err -} - -// Unmount end - -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 -} - -func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { - var d Dirent - - d.Ino = uint64(dirent.Ino) - offset, err := Telldir(dir) - if err != nil { - return d, err - } - - d.Off = int64(offset) - s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) - copy(d.Name[:], s) - - d.Reclen = uint16(24 + len(d.NameString())) - var st Stat_t - path = path + "/" + s - err = Lstat(path, &st) - if err != nil { - return d, err - } - - d.Type = uint8(st.Mode >> 24) - return d, err -} - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulation of Getdirentries port from the Darwin implementation. - // COMMENTS FROM DARWIN: - // 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 - } - - // Get path from fd to avoid unavailable call (fdopendir) - path, err := ZosFdToPath(fd) - if err != nil { - return 0, err - } - d, err := Opendir(path) - if err != nil { - return 0, err - } - defer Closedir(d) - - var cnt int64 - for { - var entryLE direntLE - var entrypLE *direntLE - e := Readdir_r(d, &entryLE, &entrypLE) - if e != nil { - return n, e - } - if entrypLE == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - // Dirent on zos has a different structure - entry, e := direntLeToDirentUnix(&entryLE, d, path) - if e != nil { - return n, e - } - - 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. - s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), 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 -} - -func Err2ad() (eadd *int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4) - eadd = (*int)(unsafe.Pointer(r0)) - return -} - -func ZosConsolePrintf(format string, v ...interface{}) (int, error) { - type __cmsg struct { - _ uint16 - _ [2]uint8 - __msg_length uint32 - __msg uintptr - _ [4]uint8 - } - msg := fmt.Sprintf(format, v...) - strptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data) - len := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len - cmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)} - cmd := uint32(0) - runtime.EnterSyscall() - rc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd))) - runtime.ExitSyscall() - if rc != 0 { - return 0, fmt.Errorf("%s (errno2=0x%x)\n", err1.Error(), err2) - } - return 0, nil -} -func ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) { - if nullterm { - ebcdicBytes = []byte(str + "\x00") - } else { - ebcdicBytes = []byte(str) - } - A2e(ebcdicBytes) - return -} -func ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) { - res := make([]byte, len(b)) - copy(res, b) - E2a(res) - if trimRight { - str = string(bytes.TrimRight(res, " \x00")) - } else { - str = string(res) - } - return -} - -func fdToPath(dirfd int) (path string, err error) { - var buffer [1024]byte - // w_ctrl() - ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, - []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - // __e2a_l() - runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, - []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) - return string(buffer[:zb]), nil - } - // __errno() - errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, - []uintptr{})))) - // __errno2() - errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, - []uintptr{})) - // strerror_r() - ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, - []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) - if ret == 0 { - zb := bytes.IndexByte(buffer[:], 0) - if zb == -1 { - zb = len(buffer) - } - return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) - } else { - return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) - } -} - -func impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error)) - -var Mkfifoat = enter_Mkfifoat - -func enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - funcref := get_MkfifoatAddr() - if funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, "") == 0 { - *funcref = impl_Mkfifoat - } else { - *funcref = legacy_Mkfifoat - } - return (*funcref)(dirfd, path, mode) -} - -func legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) { - dirname, err := ZosFdToPath(dirfd) - if err != nil { - return err - } - return Mkfifo(dirname+"/"+path, mode) -} - -//sys Posix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT -//sys Grantpt(fildes int) (rc int, err error) = SYS_GRANTPT -//sys Unlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT - -func fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg) - runtime.ExitSyscall() - val = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -func Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) { - switch op.(type) { - case *Flock_t: - err = FcntlFlock(fd, cmd, op.(*Flock_t)) - if err != nil { - ret = -1 - } - return - case int: - return FcntlInt(fd, cmd, op.(int)) - case *F_cnvrt: - return fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt)))) - case unsafe.Pointer: - return fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer))) - default: - return -1, EINVAL - } - return -} - -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - // TODO: use LE call instead if the call is implemented - originalOffset, err := Seek(infd, 0, SEEK_CUR) - if err != nil { - return -1, err - } - //start reading data from in_fd - if offset != nil { - _, err := Seek(infd, *offset, SEEK_SET) - if err != nil { - return -1, err - } - } - - buf := make([]byte, count) - readBuf := make([]byte, 0) - var n int = 0 - for i := 0; i < count; i += n { - n, err := Read(infd, buf) - if n == 0 { - if err != nil { - return -1, err - } else { // EOF - break - } - } - readBuf = append(readBuf, buf...) - buf = buf[0:0] - } - - n2, err := Write(outfd, readBuf) - if err != nil { - return -1, err - } - - //When sendfile() returns, this variable will be set to the - // offset of the byte following the last byte that was read. - if offset != nil { - *offset = *offset + int64(n) - // If offset is not NULL, then sendfile() does not modify the file - // offset of in_fd - _, err := Seek(infd, originalOffset, SEEK_SET) - if err != nil { - return -1, err - } - } - return n2, nil -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/vendor/golang.org/x/sys/unix/sysvshm_linux.go deleted file mode 100644 index 4fcd38d..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_linux.go +++ /dev/null @@ -1,20 +0,0 @@ -// 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. - -//go:build linux - -package unix - -import "runtime" - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - if runtime.GOARCH == "arm" || - runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { - cmd |= ipc_64 - } - - return shmctl(id, cmd, desc) -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go deleted file mode 100644 index 672d6b0..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go +++ /dev/null @@ -1,51 +0,0 @@ -// 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. - -//go:build (darwin && !ios) || linux || zos - -package unix - -import "unsafe" - -// SysvShmAttach attaches the Sysv shared memory segment associated with the -// shared memory identifier id. -func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { - addr, errno := shmat(id, addr, flag) - if errno != nil { - return nil, errno - } - - // Retrieve the size of the shared memory to enable slice creation - var info SysvShmDesc - - _, err := SysvShmCtl(id, IPC_STAT, &info) - if err != nil { - // release the shared memory if we can't find the size - - // ignoring error from shmdt as there's nothing sensible to return here - shmdt(addr) - return nil, err - } - - // Use unsafe to convert addr into a []byte. - b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) - return b, nil -} - -// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach. -// -// It is not safe to use the slice after calling this function. -func SysvShmDetach(data []byte) error { - if len(data) == 0 { - return EINVAL - } - - return shmdt(uintptr(unsafe.Pointer(&data[0]))) -} - -// SysvShmGet returns the Sysv shared memory identifier associated with key. -// If the IPC_CREAT flag is specified a new segment is created. -func SysvShmGet(key, size, flag int) (id int, err error) { - return shmget(key, size, flag) -} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go deleted file mode 100644 index 8b7977a..0000000 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +++ /dev/null @@ -1,13 +0,0 @@ -// 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. - -//go:build (darwin && !ios) || zos - -package unix - -// SysvShmCtl performs control operations on the shared memory segment -// specified by id. -func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { - return shmctl(id, cmd, desc) -} diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go deleted file mode 100644 index 7997b19..0000000 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - -package unix - -import "time" - -// TimespecToNsec returns the time stored in ts as nanoseconds. -func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } - -// NsecToTimespec converts a number of nanoseconds into a Timespec. -func NsecToTimespec(nsec int64) Timespec { - sec := nsec / 1e9 - nsec = nsec % 1e9 - if nsec < 0 { - nsec += 1e9 - sec-- - } - return setTimespec(sec, nsec) -} - -// TimeToTimespec converts t into a Timespec. -// On some 32-bit systems the range of valid Timespec values are smaller -// than that of time.Time values. So if t is out of the valid range of -// Timespec, it returns a zero Timespec and ERANGE. -func TimeToTimespec(t time.Time) (Timespec, error) { - sec := t.Unix() - nsec := int64(t.Nanosecond()) - ts := setTimespec(sec, nsec) - - // Currently all targets have either int32 or int64 for Timespec.Sec. - // If there were a new target with floating point type for it, we have - // to consider the rounding error. - if int64(ts.Sec) != sec { - return Timespec{}, ERANGE - } - return ts, nil -} - -// TimevalToNsec returns the time stored in tv as nanoseconds. -func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } - -// NsecToTimeval converts a number of nanoseconds into a Timeval. -func NsecToTimeval(nsec int64) Timeval { - nsec += 999 // round up to microsecond - usec := nsec % 1e9 / 1e3 - sec := nsec / 1e9 - if usec < 0 { - usec += 1e6 - sec-- - } - return setTimeval(sec, usec) -} - -// 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 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 the time stored in ts as nanoseconds. -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -// 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/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go deleted file mode 100644 index cb7e598..0000000 --- a/vendor/golang.org/x/sys/unix/unveil_openbsd.go +++ /dev/null @@ -1,51 +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. - -package unix - -import "fmt" - -// Unveil implements the unveil syscall. -// For more information see unveil(2). -// Note that the special case of blocking further -// unveil calls is handled by UnveilBlock. -func Unveil(path string, flags string) error { - if err := supportsUnveil(); err != nil { - return err - } - pathPtr, err := BytePtrFromString(path) - if err != nil { - return err - } - flagsPtr, err := BytePtrFromString(flags) - if err != nil { - return err - } - return unveil(pathPtr, flagsPtr) -} - -// UnveilBlock blocks future unveil calls. -// For more information see unveil(2). -func UnveilBlock() error { - if err := supportsUnveil(); err != nil { - return err - } - return unveil(nil, nil) -} - -// supportsUnveil checks for availability of the unveil(2) system call based -// on the running OpenBSD version. -func supportsUnveil() error { - maj, min, err := majmin() - if err != nil { - return err - } - - // unveil is not available before 6.4 - if maj < 6 || (maj == 6 && min <= 3) { - return fmt.Errorf("cannot call Unveil on OpenBSD %d.%d", maj, min) - } - - return nil -} diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go b/vendor/golang.org/x/sys/unix/vgetrandom_linux.go deleted file mode 100644 index 07ac8e0..0000000 --- a/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux && go1.24 - -package unix - -import _ "unsafe" - -//go:linkname vgetrandom runtime.vgetrandom -//go:noescape -func vgetrandom(p []byte, flags uint32) (ret int, supported bool) diff --git a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go b/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go deleted file mode 100644 index 297e97b..0000000 --- a/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !linux || !go1.24 - -package unix - -func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { - return -1, false -} diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go deleted file mode 100644 index e168793..0000000 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ /dev/null @@ -1,280 +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. - -//go:build freebsd || netbsd - -package unix - -import ( - "strings" - "unsafe" -) - -// Derive extattr namespace and attribute name - -func xattrnamespace(fullattr string) (ns int, attr string, err error) { - s := strings.IndexByte(fullattr, '.') - if s == -1 { - return -1, "", ENOATTR - } - - namespace := fullattr[0:s] - attr = fullattr[s+1:] - - switch namespace { - case "user": - return EXTATTR_NAMESPACE_USER, attr, nil - case "system": - return EXTATTR_NAMESPACE_SYSTEM, attr, nil - default: - return -1, "", ENOATTR - } -} - -func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { - if len(dest) > idx { - return unsafe.Pointer(&dest[idx]) - } - if dest != nil { - // extattr_get_file and extattr_list_file treat NULL differently from - // a non-NULL pointer of length zero. Preserve the property of nilness, - // even if we can't use dest directly. - return unsafe.Pointer(&_zero) - } - return nil -} - -// FreeBSD and NetBSD implement their own syscalls to handle extended attributes - -func Getxattr(file string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) -} - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) -} - -func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsize := len(dest) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return -1, err - } - - return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) -} - -// flags are unused on FreeBSD - -func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) - return -} - -func Setxattr(file string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) - return -} - -func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { - var d unsafe.Pointer - if len(data) > 0 { - d = unsafe.Pointer(&data[0]) - } - datasiz := len(data) - - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) - return -} - -func Removexattr(file string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFile(file, nsid, a) - return -} - -func Fremovexattr(fd int, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteFd(fd, nsid, a) - return -} - -func Lremovexattr(link string, attr string) (err error) { - nsid, a, err := xattrnamespace(attr) - if err != nil { - return - } - - err = ExtattrDeleteLink(link, nsid, a) - return -} - -func Listxattr(file string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - // FreeBSD won't allow you to list xattrs from multiple namespaces - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ListxattrNS(file, nsid, dest[pos:]) - - /* Errors accessing system attrs are ignored so that - * we can implement the Linux-like behavior of omitting errors that - * we don't have read permissions on - * - * Linux will still error if we ask for user attributes on a file that - * we don't have read permissions on, so don't ignore those errors - */ - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - destsiz := len(dest) - - s, pos := 0, 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := LlistxattrNS(link, nsid, dest[pos:]) - - if e != nil { - if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } - return s, e - } - - s += stmp - pos = s - if pos > destsiz { - pos = destsiz - } - } - - return s, nil -} - -func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil { - return 0, err - } - - return s, nil -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go deleted file mode 100644 index 2fb219d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ /dev/null @@ -1,1384 +0,0 @@ -// mkerrors.sh -maix32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && aix - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -maix32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - 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 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3ff796dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x5 - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0xc - F_SETLKW = 0x7 - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - 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_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - 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_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - 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 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fcf8df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fcf8df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3ff796bb - SIOCGIFCONFGLOB = -0x3ff79670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0x80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0x80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - 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_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0x80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0x8004747e - TIOCLBIS = 0x8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0x8004747d - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - 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_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0x80067411 - TIOCSETD = 0x80047401 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0x3f) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - 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) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - 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", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGKAP", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGSAK", "secure attention"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go deleted file mode 100644 index b0e6f5c..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ /dev/null @@ -1,1385 +0,0 @@ -// mkerrors.sh -maix64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && aix - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -maix64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_BYPASS = 0x19 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_INTF = 0x14 - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x1e - AF_NDD = 0x17 - AF_NETWARE = 0x16 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_RIF = 0x15 - AF_ROUTE = 0x11 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x400000 - ARPHRD_802_3 = 0x6 - ARPHRD_802_5 = 0x6 - ARPHRD_ETHER = 0x1 - ARPHRD_FDDI = 0x1 - 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 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x1000 - BSDLY = 0x1000 - CAP_AACCT = 0x6 - CAP_ARM_APPLICATION = 0x5 - CAP_BYPASS_RAC_VMM = 0x3 - CAP_CLEAR = 0x0 - CAP_CREDENTIALS = 0x7 - CAP_EFFECTIVE = 0x1 - CAP_EWLM_AGENT = 0x4 - CAP_INHERITABLE = 0x2 - CAP_MAXIMUM = 0x7 - CAP_NUMA_ATTACH = 0x2 - CAP_PERMITTED = 0x3 - CAP_PROPAGATE = 0x1 - CAP_PROPOGATE = 0x1 - CAP_SET = 0x1 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_MONOTONIC = 0xa - CLOCK_PROCESS_CPUTIME_ID = 0xb - CLOCK_REALTIME = 0x9 - CLOCK_THREAD_CPUTIME_ID = 0xc - CR0 = 0x0 - CR1 = 0x100 - CR2 = 0x200 - CR3 = 0x300 - CRDLY = 0x300 - CREAD = 0x80 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIOCGIFCONF = -0x3fef96dc - CSIZE = 0x30 - CSMAP_DIR = "/usr/lib/nls/csmap/" - CSTART = '\021' - CSTOP = '\023' - CSTOPB = 0x40 - CSUSP = 0x1a - ECHO = 0x8 - ECHOCTL = 0x20000 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x80000 - ECHONL = 0x40 - ECHOPRT = 0x40000 - ECH_ICMPID = 0x2 - ETHERNET_CSMACD = 0x6 - EVENP = 0x80 - EXCONTINUE = 0x0 - EXDLOK = 0x3 - EXIO = 0x2 - EXPGIO = 0x0 - EXRESUME = 0x2 - EXRETURN = 0x1 - EXSIG = 0x4 - EXTA = 0xe - EXTB = 0xf - EXTRAP = 0x1 - EYEC_RTENTRYA = 0x257274656e747241 - EYEC_RTENTRYF = 0x257274656e747246 - E_ACC = 0x0 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0xfffe - FF0 = 0x0 - FF1 = 0x2000 - FFDLY = 0x2000 - FLUSHBAND = 0x40 - FLUSHLOW = 0x8 - FLUSHO = 0x100000 - FLUSHR = 0x1 - FLUSHRW = 0x3 - FLUSHW = 0x2 - F_CLOSEM = 0xa - F_DUP2FD = 0xe - F_DUPFD = 0x0 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETLK64 = 0xb - F_GETOWN = 0x8 - F_LOCK = 0x1 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLK64 = 0xc - F_SETLKW = 0xd - F_SETLKW64 = 0xd - F_SETOWN = 0x9 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_TSTLK = 0xf - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x26 - ICMP6_SEC_SEND_DEL = 0x46 - ICMP6_SEC_SEND_GET = 0x47 - ICMP6_SEC_SEND_SET = 0x44 - ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 - ICRNL = 0x100 - IEXTEN = 0x200000 - IFA_FIRSTALIAS = 0x2000 - IFA_ROUTE = 0x1 - IFF_64BIT = 0x4000000 - IFF_ALLCAST = 0x20000 - IFF_ALLMULTI = 0x200 - IFF_BPF = 0x8000000 - IFF_BRIDGE = 0x40000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x80c52 - IFF_CHECKSUM_OFFLOAD = 0x10000000 - IFF_D1 = 0x8000 - IFF_D2 = 0x4000 - IFF_D3 = 0x2000 - IFF_D4 = 0x1000 - IFF_DEBUG = 0x4 - IFF_DEVHEALTH = 0x4000 - IFF_DO_HW_LOOPBACK = 0x10000 - IFF_GROUP_ROUTING = 0x2000000 - IFF_IFBUFMGT = 0x800000 - IFF_LINK0 = 0x100000 - IFF_LINK1 = 0x200000 - IFF_LINK2 = 0x400000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x80000 - IFF_NOARP = 0x80 - IFF_NOECHO = 0x800 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_PSEG = 0x40000000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SNAP = 0x8000 - IFF_TCP_DISABLE_CKSUM = 0x20000000 - IFF_TCP_NOCKSUM = 0x1000000 - IFF_UP = 0x1 - IFF_VIPA = 0x80000000 - IFNAMSIZ = 0x10 - IFO_FLUSH = 0x1 - IFT_1822 = 0x2 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_CLUSTER = 0x3e - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FCS = 0x3a - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIFTUNNEL = 0x3c - IFT_HDH1822 = 0x3 - IFT_HF = 0x3d - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SN = 0x38 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_SP = 0x39 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_TUNNEL = 0x3b - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_VIPA = 0x37 - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x10000 - 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_USE = 0x1 - IPPROTO_AH = 0x33 - IPPROTO_BIP = 0x53 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GIF = 0x8c - 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_LOCAL = 0x3f - IPPROTO_MAX = 0x100 - IPPROTO_MH = 0x87 - IPPROTO_NONE = 0x3b - IPPROTO_PUP = 0xc - IPPROTO_QOS = 0x2d - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPV6_ADDRFORM = 0x16 - IPV6_ADDR_PREFERENCES = 0x4a - IPV6_ADD_MEMBERSHIP = 0xc - IPV6_AIXRAWSOCKET = 0x39 - IPV6_CHECKSUM = 0x27 - IPV6_DONTFRAG = 0x2d - IPV6_DROP_MEMBERSHIP = 0xd - IPV6_DSTOPTS = 0x36 - IPV6_FLOWINFO_FLOWLABEL = 0xffffff - IPV6_FLOWINFO_PRIFLOW = 0xfffffff - IPV6_FLOWINFO_PRIORITY = 0xf000000 - IPV6_FLOWINFO_SRFLAG = 0x10000000 - IPV6_FLOWINFO_VERSION = 0xf0000000 - IPV6_HOPLIMIT = 0x28 - IPV6_HOPOPTS = 0x34 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MIPDSTOPTS = 0x36 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_LOOP = 0xb - IPV6_NEXTHOP = 0x30 - IPV6_NOPROBE = 0x1c - IPV6_PATHMTU = 0x2e - IPV6_PKTINFO = 0x21 - IPV6_PKTOPTIONS = 0x24 - IPV6_PRIORITY_10 = 0xa000000 - IPV6_PRIORITY_11 = 0xb000000 - IPV6_PRIORITY_12 = 0xc000000 - IPV6_PRIORITY_13 = 0xd000000 - IPV6_PRIORITY_14 = 0xe000000 - IPV6_PRIORITY_15 = 0xf000000 - IPV6_PRIORITY_8 = 0x8000000 - IPV6_PRIORITY_9 = 0x9000000 - IPV6_PRIORITY_BULK = 0x4000000 - IPV6_PRIORITY_CONTROL = 0x7000000 - IPV6_PRIORITY_FILLER = 0x1000000 - IPV6_PRIORITY_INTERACTIVE = 0x6000000 - IPV6_PRIORITY_RESERVED1 = 0x3000000 - IPV6_PRIORITY_RESERVED2 = 0x5000000 - IPV6_PRIORITY_UNATTENDED = 0x2000000 - IPV6_PRIORITY_UNCHARACTERIZED = 0x0 - IPV6_RECVDSTOPTS = 0x38 - IPV6_RECVHOPLIMIT = 0x29 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVHOPS = 0x22 - IPV6_RECVIF = 0x1e - IPV6_RECVPATHMTU = 0x2f - IPV6_RECVPKTINFO = 0x23 - IPV6_RECVRTHDR = 0x33 - IPV6_RECVSRCRT = 0x1d - IPV6_RECVTCLASS = 0x2a - IPV6_RTHDR = 0x32 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RTHDR_TYPE_2 = 0x2 - IPV6_SENDIF = 0x1f - IPV6_SRFLAG_LOOSE = 0x0 - IPV6_SRFLAG_STRICT = 0x10000000 - IPV6_TCLASS = 0x2b - IPV6_TOKEN_LENGTH = 0x40 - IPV6_UNICAST_HOPS = 0x4 - IPV6_USE_MIN_MTU = 0x2c - IPV6_V6ONLY = 0x25 - IPV6_VERSION = 0x60000000 - IP_ADDRFORM = 0x16 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x3c - IP_BLOCK_SOURCE = 0x3a - IP_BROADCAST_IF = 0x10 - IP_CACHE_LINE_SIZE = 0x80 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPMODE = 0x11 - IP_DONTFRAG = 0x19 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x3d - IP_FINDPMTU = 0x1a - IP_HDRINCL = 0x2 - IP_INC_MEMBERSHIPS = 0x14 - IP_INIT_MEMBERSHIP = 0x14 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_HOPS = 0xa - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OPT = 0x1b - IP_OPTIONS = 0x1 - IP_PMTUAGE = 0x1b - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVIFINFO = 0xf - IP_RECVINTERFACE = 0x20 - IP_RECVMACHDR = 0xe - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x22 - IP_RETOPTS = 0x8 - IP_SOURCE_FILTER = 0x48 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x3b - IP_UNICAST_HOPS = 0x4 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x800 - IXANY = 0x1000 - IXOFF = 0x400 - IXON = 0x200 - I_FLUSH = 0x20005305 - LNOFLSH = 0x8000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DONTNEED = 0x4 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SPACEAVAIL = 0x5 - MADV_WILLNEED = 0x3 - MAP_ANON = 0x10 - MAP_ANONYMOUS = 0x10 - MAP_FILE = 0x0 - MAP_FIXED = 0x100 - MAP_PRIVATE = 0x2 - 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 - MSG_ARGEXT = 0x400 - MSG_BAND = 0x2 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_EOR = 0x8 - MSG_HIPRI = 0x1 - MSG_MAXIOVLEN = 0x10 - MSG_MPEG2 = 0x80 - MSG_NONBLOCK = 0x4000 - MSG_NOSIGNAL = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x200 - MS_ASYNC = 0x10 - MS_EINTR = 0x80 - MS_INVALIDATE = 0x40 - MS_PER_SEC = 0x3e8 - MS_SYNC = 0x20 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x4000 - NL2 = 0x8000 - NL3 = 0xc000 - NLDLY = 0x4000 - NOFLSH = 0x80 - NOFLUSH = 0x80000000 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - ONOEOT = 0x80000 - OPOST = 0x1 - OXTABS = 0x40000 - O_ACCMODE = 0x23 - O_APPEND = 0x8 - O_CIO = 0x80 - O_CIOR = 0x800000000 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DEFER = 0x2000 - O_DELAY = 0x4000 - O_DIRECT = 0x8000000 - O_DIRECTORY = 0x80000 - O_DSYNC = 0x400000 - O_EFSOFF = 0x400000000 - O_EFSON = 0x200000000 - O_EXCL = 0x400 - O_EXEC = 0x20 - O_LARGEFILE = 0x4000000 - O_NDELAY = 0x8000 - O_NOCACHE = 0x100000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x1000000 - O_NONBLOCK = 0x4 - O_NONE = 0x3 - O_NSHARE = 0x10000 - O_RAW = 0x100000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSHARE = 0x1000 - O_RSYNC = 0x200000 - O_SEARCH = 0x20 - O_SNAPSHOT = 0x40 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_TTY_INIT = 0x0 - O_WRONLY = 0x1 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_64BIT = 0x20 - PR_ADDR = 0x2 - PR_ARGEXT = 0x400 - PR_ATOMIC = 0x1 - PR_CONNREQUIRED = 0x4 - PR_FASTHZ = 0x5 - PR_INP = 0x40 - PR_INTRLEVEL = 0x8000 - PR_MLS = 0x100 - PR_MLS_1_LABEL = 0x200 - PR_NOEOR = 0x4000 - PR_RIGHTS = 0x10 - PR_SLOWHZ = 0x2 - PR_WANTRCVD = 0x8 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x9 - RLIMIT_RSS = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0x7fffffffffffffff - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DOWNSTREAM = 0x100 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTC_IA64 = 0x3 - RTC_POWER = 0x1 - RTC_POWER_PC = 0x2 - RTF_ACTIVE_DGD = 0x1000000 - RTF_BCE = 0x80000 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_BUL = 0x2000 - RTF_CLONE = 0x10000 - RTF_CLONED = 0x20000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FREE_IN_PROG = 0x4000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PERMANENT6 = 0x8000000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_SMALLMTU = 0x40000 - RTF_STATIC = 0x800 - RTF_STOPSRCH = 0x2000000 - RTF_UNREACHABLE = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_EXPIRE = 0xf - RTM_GET = 0x4 - RTM_GETNEXT = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTLOST = 0x10 - RTM_RTTUNIT = 0xf4240 - RTM_SAMEADDR = 0x12 - RTM_SET = 0x13 - RTM_VERSION = 0x2 - RTM_VERSION_GR = 0x4 - RTM_VERSION_GR_COMPAT = 0x3 - RTM_VERSION_POLICY = 0x5 - RTM_VERSION_POLICY_EXT = 0x6 - RTM_VERSION_POLICY_PRFN = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_RIGHTS = 0x1 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIGMAX64 = 0xff - SIGQUEUE_MAX = 0x20 - SIOCADDIFVIPA = 0x20006942 - SIOCADDMTU = -0x7ffb9690 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDNETID = -0x7fd796a9 - SIOCADDRT = -0x7fc78df6 - SIOCAIFADDR = -0x7fbf96e6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fb396e0 - SIOCDELIFVIPA = 0x20006943 - SIOCDELMTU = -0x7ffb968f - SIOCDELMULTI = -0x7fdf96ce - SIOCDELPMTU = -0x7fd78ff6 - SIOCDELRT = -0x7fc78df5 - SIOCDIFADDR = -0x7fd796e7 - SIOCDNETOPT = -0x3ffe9680 - SIOCDX25XLATE = -0x7fd7969b - SIOCFIFADDR = -0x7fdf966d - SIOCGARP = -0x3fb396da - SIOCGETMTUS = 0x2000696f - SIOCGETSGCNT = -0x3feb8acc - SIOCGETVIFCNT = -0x3feb8acd - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fd796df - SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fdf9669 - SIOCGIFBRDADDR = -0x3fd796dd - SIOCGIFCONF = -0x3fef96bb - SIOCGIFCONFGLOB = -0x3fef9670 - SIOCGIFDSTADDR = -0x3fd796de - SIOCGIFFLAGS = -0x3fd796ef - SIOCGIFGIDLIST = 0x20006968 - SIOCGIFHWADDR = -0x3fab966b - SIOCGIFMETRIC = -0x3fd796e9 - SIOCGIFMTU = -0x3fd796aa - SIOCGIFNETMASK = -0x3fd796db - SIOCGIFOPTIONS = -0x3fd796d6 - SIOCGISNO = -0x3fd79695 - SIOCGLOADF = -0x3ffb967e - SIOCGLOWAT = 0x40047303 - SIOCGNETOPT = -0x3ffe96a5 - SIOCGNETOPT1 = -0x3fdf967f - SIOCGNMTUS = 0x2000696e - SIOCGPGRP = 0x40047309 - SIOCGSIZIFCONF = 0x4004696a - SIOCGSRCFILTER = -0x3fe796cb - SIOCGTUNEPHASE = -0x3ffb9676 - SIOCGX25XLATE = -0x3fd7969c - SIOCIFATTACH = -0x7fdf9699 - SIOCIFDETACH = -0x7fdf969a - SIOCIFGETPKEY = -0x7fdf969b - SIOCIF_ATM_DARP = -0x7fdf9683 - SIOCIF_ATM_DUMPARP = -0x7fdf9685 - SIOCIF_ATM_GARP = -0x7fdf9682 - SIOCIF_ATM_IDLE = -0x7fdf9686 - SIOCIF_ATM_SARP = -0x7fdf9681 - SIOCIF_ATM_SNMPARP = -0x7fdf9687 - SIOCIF_ATM_SVC = -0x7fdf9684 - SIOCIF_ATM_UBR = -0x7fdf9688 - SIOCIF_DEVHEALTH = -0x7ffb966c - SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 - SIOCIF_IB_ARP_TIMER = -0x7fdf9678 - SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f - SIOCIF_IB_DEL_ARP = -0x7fdf967f - SIOCIF_IB_DEL_PINFO = -0x3fdf9670 - SIOCIF_IB_DUMP_ARP = -0x7fdf9680 - SIOCIF_IB_GET_ARP = -0x7fdf967e - SIOCIF_IB_GET_INFO = -0x3f879675 - SIOCIF_IB_GET_STATS = -0x3f879672 - SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a - SIOCIF_IB_RESET_STATS = -0x3f879671 - SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 - SIOCIF_IB_SET_ARP = -0x7fdf967d - SIOCIF_IB_SET_PKEY = -0x7fdf967c - SIOCIF_IB_SET_PORT = -0x7fdf967b - SIOCIF_IB_SET_QKEY = -0x7fdf9676 - SIOCIF_IB_SET_QSIZE = -0x7fdf967a - SIOCLISTIFVIPA = 0x20006944 - SIOCSARP = -0x7fb396e2 - SIOCSHIWAT = 0xffffffff80047300 - SIOCSIFADDR = -0x7fd796f4 - SIOCSIFADDRORI = -0x7fdb9673 - SIOCSIFBRDADDR = -0x7fd796ed - SIOCSIFDSTADDR = -0x7fd796f2 - SIOCSIFFLAGS = -0x7fd796f0 - SIOCSIFGIDLIST = 0x20006969 - SIOCSIFMETRIC = -0x7fd796e8 - SIOCSIFMTU = -0x7fd796a8 - SIOCSIFNETDUMP = -0x7fd796e4 - SIOCSIFNETMASK = -0x7fd796ea - SIOCSIFOPTIONS = -0x7fd796d7 - SIOCSIFSUBCHAN = -0x7fd796e5 - SIOCSISNO = -0x7fd79694 - SIOCSLOADF = -0x3ffb967d - SIOCSLOWAT = 0xffffffff80047302 - SIOCSNETOPT = -0x7ffe96a6 - SIOCSPGRP = 0xffffffff80047308 - SIOCSX25XLATE = -0x7fd7969d - SOCK_CONN_DGRAM = 0x6 - SOCK_DGRAM = 0x2 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x400 - SO_ACCEPTCONN = 0x2 - SO_AUDIT = 0x8000 - SO_BROADCAST = 0x20 - SO_CKSUMRECV = 0x800 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_KERNACCEPT = 0x2000 - SO_LINGER = 0x80 - SO_NOMULTIPATH = 0x4000 - SO_NOREUSEADDR = 0x1000 - SO_OOBINLINE = 0x100 - SO_PEERID = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMPNS = 0x100a - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_USE_IFBUFS = 0x400 - S_BANDURG = 0x400 - S_EMODFMT = 0x3c000000 - S_ENFMT = 0x400 - S_ERROR = 0x100 - S_HANGUP = 0x200 - S_HIPRI = 0x2 - S_ICRYPTO = 0x80000 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFJOURNAL = 0x10000 - S_IFLNK = 0xa000 - S_IFMPX = 0x2200 - S_IFMT = 0xf000 - S_IFPDIR = 0x4000000 - S_IFPSDIR = 0x8000000 - S_IFPSSDIR = 0xc000000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFSYSEA = 0x30000000 - S_INPUT = 0x1 - 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_ITCB = 0x1000000 - S_ITP = 0x800000 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXACL = 0x2000000 - S_IXATTR = 0x40000 - S_IXGRP = 0x8 - S_IXINTERFACE = 0x100000 - S_IXMOD = 0x40000000 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - S_MSG = 0x8 - S_OUTPUT = 0x4 - S_RDBAND = 0x20 - S_RDNORM = 0x10 - S_RESERVED1 = 0x20000 - S_RESERVED2 = 0x200000 - S_RESERVED3 = 0x400000 - S_RESERVED4 = 0x80000000 - S_RESFMT1 = 0x10000000 - S_RESFMT10 = 0x34000000 - S_RESFMT11 = 0x38000000 - S_RESFMT12 = 0x3c000000 - S_RESFMT2 = 0x14000000 - S_RESFMT3 = 0x18000000 - S_RESFMT4 = 0x1c000000 - S_RESFMT5 = 0x20000000 - S_RESFMT6 = 0x24000000 - S_RESFMT7 = 0x28000000 - S_RESFMT8 = 0x2c000000 - S_WRBAND = 0x80 - S_WRNORM = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TCFLSH = 0x540c - TCGETA = 0x5405 - TCGETS = 0x5401 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 - TCP_ACLADD = 0x23 - TCP_ACLBIND = 0x26 - TCP_ACLCLEAR = 0x22 - TCP_ACLDEL = 0x24 - TCP_ACLDENY = 0x8 - TCP_ACLFLUSH = 0x21 - TCP_ACLGID = 0x1 - TCP_ACLLS = 0x25 - TCP_ACLSUBNET = 0x4 - TCP_ACLUID = 0x2 - TCP_CWND_DF = 0x16 - TCP_CWND_IF = 0x15 - TCP_DELAY_ACK_FIN = 0x2 - TCP_DELAY_ACK_SYN = 0x1 - TCP_FASTNAME = 0x101080a - TCP_KEEPCNT = 0x13 - TCP_KEEPIDLE = 0x11 - TCP_KEEPINTVL = 0x12 - TCP_LSPRIV = 0x29 - TCP_LUID = 0x20 - TCP_MAXBURST = 0x8 - TCP_MAXDF = 0x64 - TCP_MAXIF = 0x64 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAXWINDOWSCALE = 0xe - TCP_MAX_SACK = 0x4 - TCP_MSS = 0x5b4 - TCP_NODELAY = 0x1 - TCP_NODELAYACK = 0x14 - TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 - TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 - TCP_NOTENTER_SSTART = 0x17 - TCP_OPT = 0x19 - TCP_RFC1323 = 0x4 - TCP_SETPRIV = 0x27 - TCP_STDURG = 0x10 - TCP_TIMESTAMP_OPTLEN = 0xc - TCP_UNSETPRIV = 0x28 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETSF = 0x5404 - TCSETSW = 0x5403 - TCXONC = 0x540b - TIMER_ABSTIME = 0x3e7 - TIMER_MAX = 0x20 - TIOC = 0x5400 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0xffffffff80047462 - TIOCEXCL = 0x2000740d - TIOCFLUSH = 0xffffffff80047410 - TIOCGETC = 0x40067412 - TIOCGETD = 0x40047400 - TIOCGETP = 0x40067408 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047448 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCHPCL = 0x20007402 - TIOCLBIC = 0xffffffff8004747e - TIOCLBIS = 0xffffffff8004747f - TIOCLGET = 0x4004747c - TIOCLSET = 0xffffffff8004747d - TIOCMBIC = 0xffffffff8004746b - TIOCMBIS = 0xffffffff8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0xffffffff80047464 - TIOCMODG = 0x40047403 - TIOCMODS = 0xffffffff80047404 - TIOCMSET = 0xffffffff8004746d - 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 = 0xffffffff80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCREMOTE = 0xffffffff80047469 - TIOCSBRK = 0x2000747b - TIOCSDTR = 0x20007479 - TIOCSETC = 0xffffffff80067411 - TIOCSETD = 0xffffffff80047401 - TIOCSETN = 0xffffffff8006740a - TIOCSETP = 0xffffffff80067409 - TIOCSLTC = 0xffffffff80067475 - TIOCSPGRP = 0xffffffff80047476 - TIOCSSIZE = 0xffffffff80087467 - TIOCSTART = 0x2000746e - TIOCSTI = 0xffffffff80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0xffffffff80087467 - TIOCUCNTL = 0xffffffff80047466 - TOSTOP = 0x10000 - UTIME_NOW = -0x2 - UTIME_OMIT = -0x3 - VDISCRD = 0xc - VDSUSP = 0xa - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xe - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0x7 - VSTOP = 0x8 - VSTRT = 0x7 - VSUSP = 0x9 - VT0 = 0x0 - VT1 = 0x8000 - VTDELAY = 0x2000 - VTDLY = 0x8000 - VTIME = 0x5 - VWERSE = 0xd - WPARSTART = 0x1 - WPARSTOP = 0x2 - WPARTTYNAME = "Global" - XCASE = 0x4 - XTABS = 0xc00 - _FDATAFLUSH = 0x2000000000 -) - -// Errors -const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) - EADDRINUSE = syscall.Errno(0x43) - EADDRNOTAVAIL = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x42) - EAGAIN = syscall.Errno(0xb) - EALREADY = syscall.Errno(0x38) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x78) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x75) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECLONEME = syscall.Errno(0x52) - ECONNABORTED = syscall.Errno(0x48) - ECONNREFUSED = syscall.Errno(0x4f) - ECONNRESET = syscall.Errno(0x49) - ECORRUPT = syscall.Errno(0x59) - EDEADLK = syscall.Errno(0x2d) - EDESTADDREQ = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x3a) - EDIST = syscall.Errno(0x35) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x58) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EFORMAT = syscall.Errno(0x30) - EHOSTDOWN = syscall.Errno(0x50) - EHOSTUNREACH = syscall.Errno(0x51) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x74) - EINPROGRESS = syscall.Errno(0x37) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x4b) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x55) - EMEDIA = syscall.Errno(0x6e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x3b) - EMULTIHOP = syscall.Errno(0x7d) - ENAMETOOLONG = syscall.Errno(0x56) - ENETDOWN = syscall.Errno(0x45) - ENETRESET = syscall.Errno(0x47) - ENETUNREACH = syscall.Errno(0x46) - ENFILE = syscall.Errno(0x17) - ENOATTR = syscall.Errno(0x70) - ENOBUFS = syscall.Errno(0x4a) - ENOCONNECT = syscall.Errno(0x32) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x7a) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x31) - ENOLINK = syscall.Errno(0x7e) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x23) - ENOPROTOOPT = syscall.Errno(0x3d) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x76) - ENOSTR = syscall.Errno(0x7b) - ENOSYS = syscall.Errno(0x6d) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x4c) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x11) - ENOTREADY = syscall.Errno(0x2e) - ENOTRECOVERABLE = syscall.Errno(0x5e) - ENOTRUST = syscall.Errno(0x72) - ENOTSOCK = syscall.Errno(0x39) - ENOTSUP = syscall.Errno(0x7c) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x40) - EOVERFLOW = syscall.Errno(0x7f) - EOWNERDEAD = syscall.Errno(0x5f) - EPERM = syscall.Errno(0x1) - EPFNOSUPPORT = syscall.Errno(0x41) - EPIPE = syscall.Errno(0x20) - EPROCLIM = syscall.Errno(0x53) - EPROTO = syscall.Errno(0x79) - EPROTONOSUPPORT = syscall.Errno(0x3e) - EPROTOTYPE = syscall.Errno(0x3c) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x5d) - ERESTART = syscall.Errno(0x52) - EROFS = syscall.Errno(0x1e) - ESAD = syscall.Errno(0x71) - ESHUTDOWN = syscall.Errno(0x4d) - ESOCKTNOSUPPORT = syscall.Errno(0x3f) - ESOFT = syscall.Errno(0x6f) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x34) - ESYSERROR = syscall.Errno(0x5a) - ETIME = syscall.Errno(0x77) - ETIMEDOUT = syscall.Errno(0x4e) - ETOOMANYREFS = syscall.Errno(0x73) - ETXTBSY = syscall.Errno(0x1a) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x54) - EWOULDBLOCK = syscall.Errno(0xb) - EWRPROTECT = syscall.Errno(0x2f) - EXDEV = syscall.Errno(0x12) -) - -// Signals -const ( - SIGABRT = syscall.Signal(0x6) - SIGAIO = syscall.Signal(0x17) - SIGALRM = syscall.Signal(0xe) - SIGALRM1 = syscall.Signal(0x26) - SIGBUS = syscall.Signal(0xa) - SIGCAPI = syscall.Signal(0x31) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGCPUFAIL = syscall.Signal(0x3b) - SIGDANGER = syscall.Signal(0x21) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGGRANT = syscall.Signal(0x3c) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x17) - SIGIOINT = syscall.Signal(0x10) - SIGIOT = syscall.Signal(0x6) - SIGKAP = syscall.Signal(0x3c) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x6) - SIGMAX = syscall.Signal(0xff) - SIGMAX32 = syscall.Signal(0x3f) - SIGMIGRATE = syscall.Signal(0x23) - SIGMSG = syscall.Signal(0x1b) - SIGPIPE = syscall.Signal(0xd) - SIGPOLL = syscall.Signal(0x17) - SIGPRE = syscall.Signal(0x24) - SIGPROF = syscall.Signal(0x20) - SIGPTY = syscall.Signal(0x17) - SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGRECONFIG = syscall.Signal(0x3a) - SIGRETRACT = syscall.Signal(0x3d) - SIGSAK = syscall.Signal(0x3f) - SIGSEGV = syscall.Signal(0xb) - SIGSOUND = syscall.Signal(0x3e) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - SIGSYSERROR = syscall.Signal(0x30) - SIGTALRM = syscall.Signal(0x26) - SIGTERM = syscall.Signal(0xf) - 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) - SIGVIRT = syscall.Signal(0x25) - SIGVTALRM = syscall.Signal(0x22) - SIGWAITING = syscall.Signal(0x27) - 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", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EWOULDBLOCK", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device busy"}, - {17, "ENOTEMPTY", "file exists"}, - {18, "EXDEV", "cross-device link"}, - {19, "ENODEV", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {24, "EMFILE", "too many open files"}, - {25, "ENOTTY", "not a typewriter"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock condition if locked"}, - {46, "ENOTREADY", "device not ready"}, - {47, "EWRPROTECT", "write-protected media"}, - {48, "EFORMAT", "unformatted or incompatible media"}, - {49, "ENOLCK", "no locks available"}, - {50, "ENOCONNECT", "cannot Establish Connection"}, - {52, "ESTALE", "missing file or filesystem"}, - {53, "EDIST", "requests blocked by Administrator"}, - {55, "EINPROGRESS", "operation now in progress"}, - {56, "EALREADY", "operation already in progress"}, - {57, "ENOTSOCK", "socket operation on non-socket"}, - {58, "EDESTADDREQ", "destination address required"}, - {59, "EMSGSIZE", "message too long"}, - {60, "EPROTOTYPE", "protocol wrong type for socket"}, - {61, "ENOPROTOOPT", "protocol not available"}, - {62, "EPROTONOSUPPORT", "protocol not supported"}, - {63, "ESOCKTNOSUPPORT", "socket type not supported"}, - {64, "EOPNOTSUPP", "operation not supported on socket"}, - {65, "EPFNOSUPPORT", "protocol family not supported"}, - {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, - {67, "EADDRINUSE", "address already in use"}, - {68, "EADDRNOTAVAIL", "can't assign requested address"}, - {69, "ENETDOWN", "network is down"}, - {70, "ENETUNREACH", "network is unreachable"}, - {71, "ENETRESET", "network dropped connection on reset"}, - {72, "ECONNABORTED", "software caused connection abort"}, - {73, "ECONNRESET", "connection reset by peer"}, - {74, "ENOBUFS", "no buffer space available"}, - {75, "EISCONN", "socket is already connected"}, - {76, "ENOTCONN", "socket is not connected"}, - {77, "ESHUTDOWN", "can't send after socket shutdown"}, - {78, "ETIMEDOUT", "connection timed out"}, - {79, "ECONNREFUSED", "connection refused"}, - {80, "EHOSTDOWN", "host is down"}, - {81, "EHOSTUNREACH", "no route to host"}, - {82, "ERESTART", "restart the system call"}, - {83, "EPROCLIM", "too many processes"}, - {84, "EUSERS", "too many users"}, - {85, "ELOOP", "too many levels of symbolic links"}, - {86, "ENAMETOOLONG", "file name too long"}, - {88, "EDQUOT", "disk quota exceeded"}, - {89, "ECORRUPT", "invalid file system control data detected"}, - {90, "ESYSERROR", "for future use "}, - {93, "EREMOTE", "item is not local to host"}, - {94, "ENOTRECOVERABLE", "state not recoverable "}, - {95, "EOWNERDEAD", "previous owner died "}, - {109, "ENOSYS", "function not implemented"}, - {110, "EMEDIA", "media surface error"}, - {111, "ESOFT", "I/O completed, but needs relocation"}, - {112, "ENOATTR", "no attribute found"}, - {113, "ESAD", "security Authentication Denied"}, - {114, "ENOTRUST", "not a Trusted Program"}, - {115, "ETOOMANYREFS", "too many references: can't splice"}, - {116, "EILSEQ", "invalid wide character"}, - {117, "ECANCELED", "asynchronous I/O cancelled"}, - {118, "ENOSR", "out of STREAMS resources"}, - {119, "ETIME", "system call timed out"}, - {120, "EBADMSG", "next message has wrong type"}, - {121, "EPROTO", "error in protocol"}, - {122, "ENODATA", "no message on stream head read q"}, - {123, "ENOSTR", "fd not associated with a stream"}, - {124, "ENOTSUP", "unsupported attribute value"}, - {125, "EMULTIHOP", "multihop is not allowed"}, - {126, "ENOLINK", "the server link has been severed"}, - {127, "EOVERFLOW", "value too large to be stored in data type"}, -} - -// 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, "SIGIOT", "IOT/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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible/complete"}, - {24, "SIGXCPU", "cputime limit exceeded"}, - {25, "SIGXFSZ", "filesize limit exceeded"}, - {27, "SIGMSG", "input device data"}, - {28, "SIGWINCH", "window size changes"}, - {29, "SIGPWR", "power-failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, - {32, "SIGPROF", "profiling timer expired"}, - {33, "SIGDANGER", "paging space low"}, - {34, "SIGVTALRM", "virtual timer expired"}, - {35, "SIGMIGRATE", "signal 35"}, - {36, "SIGPRE", "signal 36"}, - {37, "SIGVIRT", "signal 37"}, - {38, "SIGTALRM", "signal 38"}, - {39, "SIGWAITING", "signal 39"}, - {48, "SIGSYSERROR", "signal 48"}, - {49, "SIGCAPI", "signal 49"}, - {58, "SIGRECONFIG", "signal 58"}, - {59, "SIGCPUFAIL", "CPU Failure Predicted"}, - {60, "SIGGRANT", "monitor mode granted"}, - {61, "SIGRETRACT", "monitor mode retracted"}, - {62, "SIGSOUND", "sound completed"}, - {63, "SIGMAX32", "secure attention"}, - {255, "SIGMAX", "signal 255"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go deleted file mode 100644 index d73c465..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ /dev/null @@ -1,1922 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - 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 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - 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 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - 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 = 0x80000 - 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 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CONNECT_DATA_AUTHENTICATED = 0x4 - CONNECT_DATA_IDEMPOTENT = 0x2 - CONNECT_RESUME_ON_READ_WRITE = 0x1 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - 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_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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - 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 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - 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_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - 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_USB_DARWIN = 0x10a - 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_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - 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 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - 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 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - 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 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - 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_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - 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 = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - 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_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 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - 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 - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - 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 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - 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 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - 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 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - 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 = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - 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 = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RENAME_EXCL = 0x4 - RENAME_NOFOLLOW_ANY = 0x10 - RENAME_RESERVED1 = 0x8 - RENAME_SECLUDE = 0x1 - RENAME_SWAP = 0x2 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - 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 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SAE_ASSOCID_ALL = 0xffffffff - SAE_ASSOCID_ANY = 0x0 - SAE_CONNID_ALL = 0xffffffff - SAE_CONNID_ANY = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// 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) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - 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(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - 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(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - 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) - 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, - {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, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// 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"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go deleted file mode 100644 index 4a55a40..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ /dev/null @@ -1,1922 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && darwin - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_CNT = 0x15 - AF_COIP = 0x14 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_E164 = 0x1c - AF_ECMA = 0x8 - AF_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1e - AF_IPX = 0x17 - AF_ISDN = 0x1c - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x29 - AF_NATM = 0x1f - AF_NDRV = 0x1b - AF_NETBIOS = 0x21 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PPP = 0x22 - AF_PUP = 0x4 - AF_RESERVED_36 = 0x24 - AF_ROUTE = 0x11 - 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 - ATTR_CMN_ACCTIME = 0x1000 - ATTR_CMN_ADDEDTIME = 0x10000000 - ATTR_CMN_BKUPTIME = 0x2000 - ATTR_CMN_CHGTIME = 0x800 - ATTR_CMN_CRTIME = 0x200 - ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 - ATTR_CMN_DEVID = 0x2 - ATTR_CMN_DOCUMENT_ID = 0x100000 - ATTR_CMN_ERROR = 0x20000000 - ATTR_CMN_EXTENDED_SECURITY = 0x400000 - ATTR_CMN_FILEID = 0x2000000 - ATTR_CMN_FLAGS = 0x40000 - ATTR_CMN_FNDRINFO = 0x4000 - ATTR_CMN_FSID = 0x4 - ATTR_CMN_FULLPATH = 0x8000000 - ATTR_CMN_GEN_COUNT = 0x80000 - ATTR_CMN_GRPID = 0x10000 - ATTR_CMN_GRPUUID = 0x1000000 - ATTR_CMN_MODTIME = 0x400 - ATTR_CMN_NAME = 0x1 - ATTR_CMN_NAMEDATTRCOUNT = 0x80000 - ATTR_CMN_NAMEDATTRLIST = 0x100000 - ATTR_CMN_OBJID = 0x20 - ATTR_CMN_OBJPERMANENTID = 0x40 - ATTR_CMN_OBJTAG = 0x10 - ATTR_CMN_OBJTYPE = 0x8 - ATTR_CMN_OWNERID = 0x8000 - ATTR_CMN_PARENTID = 0x4000000 - ATTR_CMN_PAROBJID = 0x80 - ATTR_CMN_RETURNED_ATTRS = 0x80000000 - ATTR_CMN_SCRIPT = 0x100 - ATTR_CMN_SETMASK = 0x51c7ff00 - ATTR_CMN_USERACCESS = 0x200000 - ATTR_CMN_UUID = 0x800000 - ATTR_CMN_VALIDMASK = 0xffffffff - ATTR_CMN_VOLSETMASK = 0x6700 - ATTR_FILE_ALLOCSIZE = 0x4 - ATTR_FILE_CLUMPSIZE = 0x10 - ATTR_FILE_DATAALLOCSIZE = 0x400 - ATTR_FILE_DATAEXTENTS = 0x800 - ATTR_FILE_DATALENGTH = 0x200 - ATTR_FILE_DEVTYPE = 0x20 - ATTR_FILE_FILETYPE = 0x40 - ATTR_FILE_FORKCOUNT = 0x80 - ATTR_FILE_FORKLIST = 0x100 - ATTR_FILE_IOBLOCKSIZE = 0x8 - ATTR_FILE_LINKCOUNT = 0x1 - ATTR_FILE_RSRCALLOCSIZE = 0x2000 - ATTR_FILE_RSRCEXTENTS = 0x4000 - ATTR_FILE_RSRCLENGTH = 0x1000 - ATTR_FILE_SETMASK = 0x20 - ATTR_FILE_TOTALSIZE = 0x2 - ATTR_FILE_VALIDMASK = 0x37ff - ATTR_VOL_ALLOCATIONCLUMP = 0x40 - ATTR_VOL_ATTRIBUTES = 0x40000000 - ATTR_VOL_CAPABILITIES = 0x20000 - ATTR_VOL_DIRCOUNT = 0x400 - ATTR_VOL_ENCODINGSUSED = 0x10000 - ATTR_VOL_FILECOUNT = 0x200 - ATTR_VOL_FSTYPE = 0x1 - ATTR_VOL_INFO = 0x80000000 - ATTR_VOL_IOBLOCKSIZE = 0x80 - ATTR_VOL_MAXOBJCOUNT = 0x800 - ATTR_VOL_MINALLOCATION = 0x20 - ATTR_VOL_MOUNTEDDEVICE = 0x8000 - ATTR_VOL_MOUNTFLAGS = 0x4000 - ATTR_VOL_MOUNTPOINT = 0x1000 - ATTR_VOL_NAME = 0x2000 - ATTR_VOL_OBJCOUNT = 0x100 - ATTR_VOL_QUOTA_SIZE = 0x10000000 - ATTR_VOL_RESERVED_SIZE = 0x20000000 - ATTR_VOL_SETMASK = 0x80002000 - ATTR_VOL_SIGNATURE = 0x2 - ATTR_VOL_SIZE = 0x4 - ATTR_VOL_SPACEAVAIL = 0x10 - ATTR_VOL_SPACEFREE = 0x8 - ATTR_VOL_SPACEUSED = 0x800000 - ATTR_VOL_UUID = 0x40000 - ATTR_VOL_VALIDMASK = 0xf087ffff - 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 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc00c4279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x8010427e - BIOCSETIF = 0x8020426c - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - 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 = 0x80000 - 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 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_MONOTONIC_RAW_APPROX = 0x5 - CLOCK_PROCESS_CPUTIME_ID = 0xc - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x10 - CLOCK_UPTIME_RAW = 0x8 - CLOCK_UPTIME_RAW_APPROX = 0x9 - CLONE_NOFOLLOW = 0x1 - CLONE_NOOWNERCOPY = 0x2 - CONNECT_DATA_AUTHENTICATED = 0x4 - CONNECT_DATA_IDEMPOTENT = 0x2 - CONNECT_RESUME_ON_READ_WRITE = 0x1 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x30000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTLIOCGINFO = 0xc0644e03 - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - 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_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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - 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 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_IPFILTER = 0x74 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xf2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x10a - 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_NFC_LLCP = 0xf5 - DLT_NFLOG = 0xef - DLT_NG40 = 0xf4 - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - 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_USB_DARWIN = 0x10a - 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_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0xf - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x11 - EVFILT_THREADMARKER = 0x11 - EVFILT_TIMER = -0x7 - EVFILT_USER = -0xa - EVFILT_VM = -0xc - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DISPATCH2 = 0x180 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG0 = 0x1000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_OOBAND = 0x2000 - EV_POLL = 0x1000 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EV_UDATA_SPECIFIC = 0x100 - EV_VANISHED = 0x200 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FSOPT_ATTR_CMN_EXTENDED = 0x20 - FSOPT_NOFOLLOW = 0x1 - 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 - F_BARRIERFSYNC = 0x55 - F_CHECK_LV = 0x62 - F_CHKCLEAN = 0x29 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x43 - F_FINDSIGS = 0x4e - F_FLUSH_DATA = 0x28 - F_FREEZE_FS = 0x35 - F_FULLFSYNC = 0x33 - F_GETCODEDIR = 0x48 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETLKPID = 0x42 - F_GETNOSIGPIPE = 0x4a - 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 - F_NOCACHE = 0x30 - F_NODIRECT = 0x3e - F_OK = 0x0 - F_PATHPKG_CHECK = 0x34 - F_PEOFPOSMODE = 0x3 - F_PREALLOCATE = 0x2a - F_PUNCHHOLE = 0x63 - F_RDADVISE = 0x2c - F_RDAHEAD = 0x2d - F_RDLCK = 0x1 - F_SETBACKINGSTORE = 0x46 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETLKWTIMEOUT = 0xa - F_SETNOSIGPIPE = 0x49 - F_SETOWN = 0x6 - 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 - F_UNLCK = 0x2 - F_VOLPOSMODE = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6LOWPAN = 0x40 - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_CELLULAR = 0xff - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FAITH = 0x38 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_GIF = 0x37 - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IEEE1394 = 0x90 - IFT_IEEE8023ADLAG = 0x88 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_L2VLAN = 0x87 - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PDP = 0xff - IFT_PFLOG = 0xf5 - IFT_PFSYNC = 0xf6 - IFT_PKTAP = 0xfe - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_STF = 0x39 - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - 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_LINKLOCALNETNUM = 0xa9fe0000 - IN_LOOPBACKNET = 0x7f - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_2292DSTOPTS = 0x17 - IPV6_2292HOPLIMIT = 0x14 - IPV6_2292HOPOPTS = 0x16 - IPV6_2292NEXTHOP = 0x15 - 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 = 0x3000 - IPV6_FRAGTTL = 0x3c - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - 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_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 - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BLOCK_SOURCE = 0x48 - IP_BOUND_IF = 0x19 - 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 - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FAITH = 0x16 - IP_FW_ADD = 0x28 - IP_FW_DEL = 0x29 - IP_FW_FLUSH = 0x2a - IP_FW_GET = 0x2c - IP_FW_RESETLOG = 0x2d - IP_FW_ZERO = 0x2b - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MIN_MEMBERSHIPS = 0x1f - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_IFINDEX = 0x42 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_NAT__XXX = 0x37 - IP_OFFMASK = 0x1fff - IP_OLD_FW_ADD = 0x32 - IP_OLD_FW_DEL = 0x33 - IP_OLD_FW_FLUSH = 0x34 - IP_OLD_FW_GET = 0x36 - IP_OLD_FW_RESETLOG = 0x38 - IP_OLD_FW_ZERO = 0x35 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x1b - IP_RECVTTL = 0x18 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_STRIPHDR = 0x17 - IP_TOS = 0x3 - IP_TRAFFIC_MGT_BACKGROUND = 0x41 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - ISIG = 0x80 - ISTRIP = 0x20 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - 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 - LOCK_UN = 0x8 - MADV_CAN_REUSE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_FREE_REUSABLE = 0x7 - MADV_FREE_REUSE = 0x8 - MADV_NORMAL = 0x0 - MADV_PAGEOUT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_32BIT = 0x8000 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_JIT = 0x800 - MAP_NOCACHE = 0x400 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_RESERVED0080 = 0x80 - 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 - MNT_AUTOMOUNTED = 0x400000 - MNT_CMDFLAGS = 0xf0000 - MNT_CPROTECT = 0x80 - MNT_DEFWRITE = 0x2000000 - MNT_DONTBROWSE = 0x100000 - 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 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NOATIME = 0x10000000 - MNT_NOBLOCK = 0x20000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOUSERXATTR = 0x1000000 - MNT_NOWAIT = 0x2 - MNT_QUARANTINE = 0x400 - 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 = 0xd7f0f7ff - MNT_WAIT = 0x1 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FLUSH = 0x400 - MSG_HAVEMORE = 0x2000 - MSG_HOLD = 0x800 - MSG_NEEDSA = 0x10000 - MSG_NOSIGNAL = 0x80000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_RCVMORE = 0x4000 - MSG_SEND = 0x1000 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITSTREAM = 0x200 - MS_ASYNC = 0x1 - MS_DEACTIVATE = 0x8 - MS_INVALIDATE = 0x2 - MS_KILLPAGES = 0x4 - MS_SYNC = 0x10 - NAME_MAX = 0xff - 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 = 0xb - NET_RT_STAT = 0x4 - NET_RT_TRASH = 0x5 - NFDBITS = 0x20 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSOLUTE = 0x8 - NOTE_ATTRIB = 0x8 - NOTE_BACKGROUND = 0x40 - NOTE_CHILD = 0x4 - NOTE_CRITICAL = 0x20 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXITSTATUS = 0x4000000 - NOTE_EXIT_CSERROR = 0x40000 - NOTE_EXIT_DECRYPTFAIL = 0x10000 - NOTE_EXIT_DETAIL = 0x2000000 - NOTE_EXIT_DETAIL_MASK = 0x70000 - NOTE_EXIT_MEMORY = 0x20000 - NOTE_EXIT_REPARENTED = 0x80000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_FUNLOCK = 0x100 - NOTE_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MACHTIME = 0x100 - NOTE_MACH_CONTINUOUS_TIME = 0x80 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = -0x100000 - NOTE_PDATAMASK = 0xfffff - NOTE_REAP = 0x10000000 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_SIGNAL = 0x8000000 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x2 - NOTE_VM_ERROR = 0x10000000 - NOTE_VM_PRESSURE = 0x80000000 - NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 - NOTE_VM_PRESSURE_TERMINATE = 0x40000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - OFDEL = 0x20000 - OFILL = 0x80 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_ALERT = 0x20000000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x1000000 - O_CREAT = 0x200 - O_DIRECTORY = 0x100000 - O_DP_GETRAWENCRYPTED = 0x1 - O_DP_GETRAWUNENCRYPTED = 0x2 - O_DSYNC = 0x400000 - O_EVTONLY = 0x8000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x20000 - O_NOFOLLOW = 0x100 - O_NOFOLLOW_ANY = 0x20000000 - O_NONBLOCK = 0x4 - O_POPUP = 0x80000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYMLINK = 0x200000 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PT_ATTACH = 0xa - PT_ATTACHEXC = 0xe - PT_CONTINUE = 0x7 - PT_DENY_ATTACH = 0x1f - PT_DETACH = 0xb - PT_FIRSTMACH = 0x20 - PT_FORCEQUOTA = 0x1e - PT_KILL = 0x8 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_READ_U = 0x3 - PT_SIGEXC = 0xc - PT_STEP = 0x9 - PT_THUPDATE = 0xd - PT_TRACE_ME = 0x0 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - PT_WRITE_U = 0x6 - RENAME_EXCL = 0x4 - RENAME_NOFOLLOW_ANY = 0x10 - RENAME_RESERVED1 = 0x8 - RENAME_SECLUDE = 0x1 - RENAME_SWAP = 0x2 - RLIMIT_AS = 0x5 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_CPU_USAGE_MONITOR = 0x2 - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_CONDEMNED = 0x2000000 - RTF_DEAD = 0x20000000 - RTF_DELCLONE = 0x80 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_GLOBAL = 0x40000000 - RTF_HOST = 0x4 - RTF_IFREF = 0x4000000 - RTF_IFSCOPE = 0x1000000 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_NOIFREF = 0x2000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_PROXY = 0x8000000 - RTF_REJECT = 0x8 - RTF_ROUTER = 0x10000000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_GET2 = 0x14 - RTM_IFINFO = 0xe - RTM_IFINFO2 = 0x12 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_NEWMADDR2 = 0x13 - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - 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 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SAE_ASSOCID_ALL = 0xffffffff - SAE_ASSOCID_ANY = 0x0 - SAE_CONNID_ALL = 0xffffffff - SAE_CONNID_ANY = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIMESTAMP_MONOTONIC = 0x4 - SEEK_CUR = 0x1 - SEEK_DATA = 0x4 - SEEK_END = 0x2 - SEEK_HOLE = 0x3 - SEEK_SET = 0x0 - SF_APPEND = 0x40000 - SF_ARCHIVED = 0x10000 - SF_DATALESS = 0x40000000 - SF_FIRMLINK = 0x800000 - SF_IMMUTABLE = 0x20000 - SF_NOUNLINK = 0x100000 - SF_RESTRICTED = 0x80000 - SF_SETTABLE = 0x3fff0000 - SF_SUPPORTED = 0x9f0000 - SF_SYNTHETIC = 0xc0000000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCARPIPLL = 0xc0206928 - SIOCATMARK = 0x40047307 - SIOCAUTOADDR = 0xc0206926 - SIOCAUTONETMASK = 0x80206927 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206941 - SIOCGDRVSPEC = 0xc028697b - SIOCGETVLAN = 0xc020697f - SIOCGHIWAT = 0x40047301 - SIOCGIF6LOWPAN = 0xc02069c5 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALTMTU = 0xc0206948 - SIOCGIFASYNCMAP = 0xc020697c - SIOCGIFBOND = 0xc0206947 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020695b - SIOCGIFCONF = 0xc00c6924 - SIOCGIFDEVMTU = 0xc0206944 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFFUNCTIONALTYPE = 0xc02069ad - SIOCGIFGENERIC = 0xc020693a - SIOCGIFKPI = 0xc0206987 - SIOCGIFMAC = 0xc0206982 - SIOCGIFMEDIA = 0xc02c6938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206940 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc020693f - SIOCGIFSTATUS = 0xc331693d - SIOCGIFVLAN = 0xc020697f - SIOCGIFWAKEFLAGS = 0xc0206988 - SIOCGIFXMEDIA = 0xc02c6948 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCIFCREATE = 0xc0206978 - SIOCIFCREATE2 = 0xc020697a - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106981 - SIOCRSLVMULTI = 0xc010693b - SIOCSDRVSPEC = 0x8028697b - SIOCSETVLAN = 0x8020697e - SIOCSHIWAT = 0x80047300 - SIOCSIF6LOWPAN = 0x802069c4 - SIOCSIFADDR = 0x8020690c - SIOCSIFALTMTU = 0x80206945 - SIOCSIFASYNCMAP = 0x8020697d - SIOCSIFBOND = 0x80206946 - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020695a - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFKPI = 0x80206986 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206983 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x8040693e - SIOCSIFPHYS = 0x80206936 - SIOCSIFVLAN = 0x8020697e - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_DONTTRUNC = 0x2000 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1010 - SO_LINGER = 0x80 - SO_LINGER_SEC = 0x1080 - SO_NETSVC_MARKING_LEVEL = 0x1119 - SO_NET_SERVICE_TYPE = 0x1116 - SO_NKE = 0x1021 - SO_NOADDRERR = 0x1023 - SO_NOSIGPIPE = 0x1022 - SO_NOTIFYCONFLICT = 0x1026 - SO_NP_EXTENSIONS = 0x1083 - SO_NREAD = 0x1020 - SO_NUMRCVPKT = 0x1112 - SO_NWRITE = 0x1024 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1011 - SO_RANDOMPORT = 0x1082 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_REUSESHAREUID = 0x1025 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TIMESTAMP_MONOTONIC = 0x800 - SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 - SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 - SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 - SO_TRACKER_TRANSPARENCY_VERSION = 0x3 - SO_TYPE = 0x1008 - SO_UPCALLCLOSEWAIT = 0x1027 - SO_USELOOPBACK = 0x40 - SO_WANTMORE = 0x4000 - SO_WANTOOBFLAG = 0x8000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0x4 - TABDLY = 0xc04 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_CC = 0xb - TCPOPT_CCECHO = 0xd - TCPOPT_CCNEW = 0xc - TCPOPT_EOL = 0x0 - TCPOPT_FASTOPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_CONNECTION_INFO = 0x106 - TCP_ENABLE_ECN = 0x104 - TCP_FASTOPEN = 0x105 - TCP_KEEPALIVE = 0x10 - TCP_KEEPCNT = 0x102 - TCP_KEEPINTVL = 0x101 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0xd8 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NOTSENT_LOWAT = 0x201 - TCP_RXT_CONNDROPTIME = 0x80 - TCP_RXT_FINDROP = 0x100 - TCP_SENDMOREACKS = 0x103 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCDSIMICROCODE = 0x20007455 - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x40487413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGWINSZ = 0x40087468 - TIOCIXOFF = 0x20007480 - TIOCIXON = 0x20007481 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCPTYGNAME = 0x40807453 - TIOCPTYGRANT = 0x20007454 - TIOCPTYUNLK = 0x20007452 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCONS = 0x20007463 - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x80487414 - TIOCSETAF = 0x80487416 - TIOCSETAW = 0x80487415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UF_APPEND = 0x4 - UF_COMPRESSED = 0x20 - UF_DATAVAULT = 0x80 - UF_HIDDEN = 0x8000 - UF_IMMUTABLE = 0x2 - UF_NODUMP = 0x1 - UF_OPAQUE = 0x8 - UF_SETTABLE = 0xffff - UF_TRACKED = 0x40 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x10 - VM_LOADAVG = 0x2 - VM_MACHFACTOR = 0x4 - VM_MAXID = 0x6 - VM_METER = 0x1 - VM_SWAPUSAGE = 0x5 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x10 - WCOREFLAG = 0x80 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WORDSIZE = 0x40 - WSTOPPED = 0x8 - WUNTRACED = 0x2 - XATTR_CREATE = 0x2 - XATTR_NODEFAULT = 0x10 - XATTR_NOFOLLOW = 0x1 - XATTR_NOSECURITY = 0x8 - XATTR_REPLACE = 0x4 - XATTR_SHOWCOMPRESSION = 0x20 -) - -// 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) - EBADARCH = syscall.Errno(0x56) - EBADEXEC = syscall.Errno(0x55) - EBADF = syscall.Errno(0x9) - EBADMACHO = syscall.Errno(0x58) - EBADMSG = syscall.Errno(0x5e) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x59) - ECHILD = syscall.Errno(0xa) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0xb) - EDESTADDRREQ = syscall.Errno(0x27) - EDEVERR = syscall.Errno(0x53) - 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(0x5a) - EILSEQ = syscall.Errno(0x5c) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x6a) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5f) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x60) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x61) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x5b) - ENOPOLICY = syscall.Errno(0x67) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x62) - ENOSTR = syscall.Errno(0x63) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x68) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x66) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x69) - 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(0x64) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EPWROFF = syscall.Errno(0x52) - EQFULL = syscall.Errno(0x6a) - ERANGE = syscall.Errno(0x22) - EREMOTE = syscall.Errno(0x47) - EROFS = syscall.Errno(0x1e) - ERPCMISMATCH = syscall.Errno(0x49) - ESHLIBVERS = syscall.Errno(0x57) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) - ESTALE = syscall.Errno(0x46) - ETIME = syscall.Errno(0x65) - 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) - 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", "resource 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, "ENOTSUP", "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", "disc 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 prog. not avail"}, - {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, "EPWROFF", "device power is off"}, - {83, "EDEVERR", "device error"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EBADEXEC", "bad executable (or shared library)"}, - {86, "EBADARCH", "bad CPU type in executable"}, - {87, "ESHLIBVERS", "shared library version mismatch"}, - {88, "EBADMACHO", "malformed Mach-o file"}, - {89, "ECANCELED", "operation canceled"}, - {90, "EIDRM", "identifier removed"}, - {91, "ENOMSG", "no message of desired type"}, - {92, "EILSEQ", "illegal byte sequence"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EBADMSG", "bad message"}, - {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, - {96, "ENODATA", "no message available on STREAM"}, - {97, "ENOLINK", "ENOLINK (Reserved)"}, - {98, "ENOSR", "no STREAM resources"}, - {99, "ENOSTR", "not a STREAM"}, - {100, "EPROTO", "protocol error"}, - {101, "ETIME", "STREAM ioctl timeout"}, - {102, "EOPNOTSUPP", "operation not supported on socket"}, - {103, "ENOPOLICY", "policy not found"}, - {104, "ENOTRECOVERABLE", "state not recoverable"}, - {105, "EOWNERDEAD", "previous owner died"}, - {106, "EQFULL", "interface output queue is full"}, -} - -// 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"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go deleted file mode 100644 index c0e0f86..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +++ /dev/null @@ -1,1737 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && dragonfly - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x21 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x23 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x24 - AF_MPLS = 0x22 - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - 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 - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8010427b - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DEFAULTBUFSIZE = 0x1000 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MAX_CLONES = 0x80 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - 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 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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 - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - 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 - 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 - EVFILT_AIO = -0x3 - EVFILT_EXCEPT = -0x8 - EVFILT_FS = -0xa - EVFILT_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xa - EVFILT_TIMER = -0x7 - EVFILT_USER = -0x9 - EVFILT_VNODE = -0x4 - EVFILT_WRITE = -0x2 - 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_HUP = 0x800 - EV_NODATA = 0x1000 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf800 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTEXIT_LWP = 0x10000 - EXTEXIT_PROC = 0x0 - EXTEXIT_SETINT = 0x1 - EXTEXIT_SIMPLE = 0x0 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETOWN = 0x5 - 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_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x318e72 - IFF_DEBUG = 0x4 - IFF_IDIRECT = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NPOLLING = 0x100000 - IFF_OACTIVE = 0x400 - IFF_OACTIVE_COMPAT = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_POLLING = 0x10000 - IFF_POLLING_COMPAT = 0x10000 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_SMART = 0x20 - IFF_STATICARP = 0x80000 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DS0 = 0x51 - IFT_DS0BUNDLE = 0x52 - IFT_DS1FDL = 0xaa - IFT_DS3 = 0x1e - IFT_DTM = 0x8c - IFT_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ENC = 0xf4 - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - 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_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_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - 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_PFSYNC = 0xf6 - IFT_PLC = 0xae - IFT_POS = 0xab - IFT_PPP = 0x17 - IFT_PPPMULTILINKBUNDLE = 0x6c - 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 = 0xf1 - 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_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_STF = 0xf3 - IFT_T1 = 0x12 - IFT_TDLC = 0x74 - 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_VOICEEM = 0x64 - IFT_VOICEENCAP = 0x67 - IFT_VOICEFXO = 0x65 - IFT_VOICEFXS = 0x66 - IFT_VOICEOVERATM = 0x98 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0xfe - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MEAS = 0x13 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SDRP = 0x2a - IPPROTO_SEP = 0x21 - IPPROTO_SKIP = 0x39 - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UNKNOWN = 0x102 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - IPV6_FW_GET = 0x22 - IPV6_FW_ZERO = 0x21 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MINHLIM = 0x28 - 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_PKTOPTIONS = 0x34 - 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 = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - 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_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CONTROL_END = 0xb - MADV_CONTROL_START = 0xa - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_INVAL = 0xa - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_SETMAP = 0xb - MADV_WILLNEED = 0x3 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_NOCORE = 0x20000 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SIZEALIGN = 0x40000 - MAP_STACK = 0x400 - MAP_TRYFIXED = 0x10000 - MAP_VPAGETABLE = 0x2000 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x20 - MNT_CMDFLAGS = 0xf0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x4 - MNT_LOCAL = 0x1000 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NODEV = 0x10 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SYNCHRONOUS = 0x2 - MNT_TRIM = 0x1000000 - MNT_UPDATE = 0x10000 - MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0xf1f0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x1000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_FBLOCKING = 0x10000 - MSG_FMASK = 0xffff0000 - MSG_FNONBLOCKING = 0x20000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - MSG_UNUSED09 = 0x200 - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x4 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x20000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x8000000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FAPPEND = 0x100000 - O_FASYNCWRITE = 0x800000 - O_FBLOCKING = 0x40000 - O_FMASK = 0xfc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0xb - RTAX_MPLS1 = 0x8 - RTAX_MPLS2 = 0x9 - RTAX_MPLS3 = 0xa - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_MPLS1 = 0x100 - RTA_MPLS2 = 0x200 - RTA_MPLS3 = 0x400 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MPLSOPS = 0x1000000 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PRCLONING = 0x10000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_WASCLONED = 0x20000 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_VERSION = 0x7 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_IWCAPSEGS = 0x400 - RTV_IWMAXSEGS = 0x200 - RTV_MSL = 0x100 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x3 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc0406929 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0xc0206926 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPOLLCPU = 0xc020697e - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFTSOLEN = 0xc0206980 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFPOLLCPU = 0x8020697d - SIOCSIFTSOLEN = 0x8020697f - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_CPUHINT = 0x1030 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDSPACE = 0x100a - SO_SNDTIMEO = 0x1005 - SO_TIMESTAMP = 0x400 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDB = 0x9000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCP_FASTKEEP = 0x80 - TCP_KEEPCNT = 0x400 - TCP_KEEPIDLE = 0x100 - TCP_KEEPINIT = 0x20 - TCP_KEEPINTVL = 0x200 - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MINMSS = 0x100 - TCP_MIN_WINSHIFT = 0x5 - TCP_MSS = 0x200 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_SIGNATURE_ENABLE = 0x10 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCISPTMASTER = 0x20007455 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMODG = 0x40047403 - TIOCMODS = 0x80047404 - TIOCMSDTRWAIT = 0x8004745b - 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 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2000745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCHECKPT = 0x13 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x0 - VM_SWZONE_SIZE_MAX = 0x4000000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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) - EASYNC = syscall.Errno(0x63) - EAUTH = syscall.Errno(0x50) - EBADF = syscall.Errno(0x9) - EBADMSG = syscall.Errno(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x63) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEDIUM = syscall.Errno(0x5d) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - 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) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x5c) - 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) - SIGCKPT = syscall.Signal(0x21) - SIGCKPTEXIT = syscall.Signal(0x22) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOMEDIUM", "no medium found"}, - {99, "EASYNC", "unknown error: 99"}, -} - -// 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, "SIGIOT", "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 Scheduler"}, - {33, "SIGCKPT", "checkPoint"}, - {34, "SIGCKPTEXIT", "checkPointExit"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go deleted file mode 100644 index 6c69239..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ /dev/null @@ -1,2042 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8008426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - 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 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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_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 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - 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 - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_KONTRON = 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - 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_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 = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - 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_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - 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 - 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_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 - 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 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - 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 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - 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 - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - 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 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - 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 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXMMREGS = 0x40 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXMMREGS = 0x41 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - 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 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - 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 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - 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 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - 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_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - 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_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - 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 - TCP_KEEPCNT = 0x400 - 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 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - 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_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 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40087459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x70e0000 - VM_SWZONE_SIZE_MAX = 0x2280000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go deleted file mode 100644 index dd9163f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ /dev/null @@ -1,2039 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - 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 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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_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 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - 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 - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_KONTRON = 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - 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_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 = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - 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_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - 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 - 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_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 - 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 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - 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 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - 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 - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - 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 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - 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 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETFSBASE = 0x47 - PT_GETGSBASE = 0x49 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETXSTATE = 0x45 - PT_GETXSTATE_INFO = 0x44 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETFSBASE = 0x48 - PT_SETGSBASE = 0x4a - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETXSTATE = 0x46 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - 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 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - 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 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - 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 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - 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_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - 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_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - 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 - TCP_KEEPCNT = 0x400 - 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 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - 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_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 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go deleted file mode 100644 index 493a2a7..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ /dev/null @@ -1,2033 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4004427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x400c4280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80084267 - BIOCSETFNR = 0x80084282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8008427b - BIOCSETZBUF = 0x800c4281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - 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 = 0x804c6490 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCZONECMD = 0xc078648f - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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_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 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - 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 - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_KONTRON = 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - 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_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 = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - 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_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - 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 - 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_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 - 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 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - 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 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - 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 - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - 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 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - 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 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GETVFPREGS = 0x40 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SETVFPREGS = 0x41 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - 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 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0286938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc028698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - 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 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - 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 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - 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_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - 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_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - 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 - TCP_KEEPCNT = 0x400 - 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 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - 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_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 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go deleted file mode 100644 index 8b437b3..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ /dev/null @@ -1,2033 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR02 = 0x2b - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - 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 - DLT_AOS = 0xde - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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_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 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - 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 - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_KONTRON = 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - 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_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 = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - 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_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - 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 - 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_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 - 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 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - 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 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f52 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - 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 - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - LOCAL_CONNWAIT = 0x4 - LOCAL_CREDS = 0x2 - LOCAL_PEERCRED = 0x1 - LOCAL_VENDOR = 0x80000000 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - 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 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0xd0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - 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 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - 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_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_RNH_LOCKED = 0x40000000 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - 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 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - 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 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - 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 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - 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_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - 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_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - 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 - TCP_KEEPCNT = 0x400 - 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 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_GP_INCREASE = 0x446 - 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_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 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VM_BCACHE_SIZE_MAX = 0x19000000 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go deleted file mode 100644 index 67c02dd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +++ /dev/null @@ -1,2147 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && freebsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x23 - AF_ATM = 0x1e - AF_BLUETOOTH = 0x24 - 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_HYLINK = 0xf - AF_HYPERV = 0x2b - AF_IEEE80211 = 0x25 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1c - AF_INET6_SDP = 0x2a - AF_INET_SDP = 0x28 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x2b - AF_NATM = 0x1d - AF_NETBIOS = 0x6 - AF_NETGRAPH = 0x20 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SCLUSTER = 0x22 - AF_SIP = 0x18 - AF_SLOW = 0x21 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VENDOR00 = 0x27 - AF_VENDOR01 = 0x29 - AF_VENDOR03 = 0x2d - AF_VENDOR04 = 0x2f - AF_VENDOR05 = 0x31 - AF_VENDOR06 = 0x33 - AF_VENDOR07 = 0x35 - AF_VENDOR08 = 0x37 - AF_VENDOR09 = 0x39 - AF_VENDOR10 = 0x3b - AF_VENDOR11 = 0x3d - AF_VENDOR12 = 0x3f - AF_VENDOR13 = 0x41 - AF_VENDOR14 = 0x43 - AF_VENDOR15 = 0x45 - AF_VENDOR16 = 0x47 - AF_VENDOR17 = 0x49 - AF_VENDOR18 = 0x4b - AF_VENDOR19 = 0x4d - AF_VENDOR20 = 0x4f - AF_VENDOR21 = 0x51 - AF_VENDOR22 = 0x53 - AF_VENDOR23 = 0x55 - AF_VENDOR24 = 0x57 - AF_VENDOR25 = 0x59 - AF_VENDOR26 = 0x5b - AF_VENDOR27 = 0x5d - AF_VENDOR28 = 0x5f - AF_VENDOR29 = 0x61 - AF_VENDOR30 = 0x63 - AF_VENDOR31 = 0x65 - AF_VENDOR32 = 0x67 - AF_VENDOR33 = 0x69 - AF_VENDOR34 = 0x6b - AF_VENDOR35 = 0x6d - AF_VENDOR36 = 0x6f - AF_VENDOR37 = 0x71 - AF_VENDOR38 = 0x73 - AF_VENDOR39 = 0x75 - AF_VENDOR40 = 0x77 - AF_VENDOR41 = 0x79 - AF_VENDOR42 = 0x7b - AF_VENDOR43 = 0x7d - AF_VENDOR44 = 0x7f - AF_VENDOR45 = 0x81 - AF_VENDOR46 = 0x83 - AF_VENDOR47 = 0x85 - ALTWERASE = 0x200 - B0 = 0x0 - B1000000 = 0xf4240 - B110 = 0x6e - B115200 = 0x1c200 - B1200 = 0x4b0 - B134 = 0x86 - B14400 = 0x3840 - B150 = 0x96 - B1500000 = 0x16e360 - B1800 = 0x708 - B19200 = 0x4b00 - B200 = 0xc8 - B2000000 = 0x1e8480 - B230400 = 0x38400 - B2400 = 0x960 - B2500000 = 0x2625a0 - B28800 = 0x7080 - B300 = 0x12c - B3000000 = 0x2dc6c0 - B3500000 = 0x3567e0 - B38400 = 0x9600 - B4000000 = 0x3d0900 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B500000 = 0x7a120 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427c - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDIRECTION = 0x40044276 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104279 - BIOCGETBUFMODE = 0x4004427d - BIOCGETIF = 0x4020426b - BIOCGETZMAX = 0x4008427f - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4010426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCGTSTAMP = 0x40044283 - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCROTZBUF = 0x40184280 - BIOCSBLEN = 0xc0044266 - BIOCSDIRECTION = 0x80044277 - BIOCSDLT = 0x80044278 - BIOCSETBUFMODE = 0x8004427e - BIOCSETF = 0x80104267 - BIOCSETFNR = 0x80104282 - BIOCSETIF = 0x8020426c - BIOCSETVLANPCP = 0x80044285 - BIOCSETWF = 0x8010427b - BIOCSETZBUF = 0x80184281 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044273 - BIOCSRTIMEOUT = 0x8010426d - BIOCSSEESENT = 0x80044277 - BIOCSTSTAMP = 0x80044284 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_BUFMODE_BUFFER = 0x1 - BPF_BUFMODE_ZBUF = 0x2 - BPF_DIV = 0x30 - 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 = 0x80000 - BPF_MAXINSNS = 0x200 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINBUFSIZE = 0x20 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - 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_T_BINTIME = 0x2 - BPF_T_BINTIME_FAST = 0x102 - BPF_T_BINTIME_MONOTONIC = 0x202 - BPF_T_BINTIME_MONOTONIC_FAST = 0x302 - BPF_T_FAST = 0x100 - BPF_T_FLAG_MASK = 0x300 - BPF_T_FORMAT_MASK = 0x3 - BPF_T_MICROTIME = 0x0 - BPF_T_MICROTIME_FAST = 0x100 - BPF_T_MICROTIME_MONOTONIC = 0x200 - BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 - BPF_T_MONOTONIC = 0x200 - BPF_T_MONOTONIC_FAST = 0x300 - BPF_T_NANOTIME = 0x1 - BPF_T_NANOTIME_FAST = 0x101 - BPF_T_NANOTIME_MONOTONIC = 0x201 - BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 - BPF_T_NONE = 0x3 - BPF_T_NORMAL = 0x0 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - CAP_ACCEPT = 0x200000020000000 - CAP_ACL_CHECK = 0x400000000010000 - CAP_ACL_DELETE = 0x400000000020000 - CAP_ACL_GET = 0x400000000040000 - CAP_ACL_SET = 0x400000000080000 - CAP_ALL0 = 0x20007ffffffffff - CAP_ALL1 = 0x4000000001fffff - CAP_BIND = 0x200000040000000 - CAP_BINDAT = 0x200008000000400 - CAP_CHFLAGSAT = 0x200000000001400 - CAP_CONNECT = 0x200000080000000 - CAP_CONNECTAT = 0x200010000000400 - CAP_CREATE = 0x200000000000040 - CAP_EVENT = 0x400000000000020 - CAP_EXTATTR_DELETE = 0x400000000001000 - CAP_EXTATTR_GET = 0x400000000002000 - CAP_EXTATTR_LIST = 0x400000000004000 - CAP_EXTATTR_SET = 0x400000000008000 - CAP_FCHDIR = 0x200000000000800 - CAP_FCHFLAGS = 0x200000000001000 - CAP_FCHMOD = 0x200000000002000 - CAP_FCHMODAT = 0x200000000002400 - CAP_FCHOWN = 0x200000000004000 - CAP_FCHOWNAT = 0x200000000004400 - CAP_FCNTL = 0x200000000008000 - CAP_FCNTL_ALL = 0x78 - CAP_FCNTL_GETFL = 0x8 - CAP_FCNTL_GETOWN = 0x20 - CAP_FCNTL_SETFL = 0x10 - CAP_FCNTL_SETOWN = 0x40 - CAP_FEXECVE = 0x200000000000080 - CAP_FLOCK = 0x200000000010000 - CAP_FPATHCONF = 0x200000000020000 - CAP_FSCK = 0x200000000040000 - CAP_FSTAT = 0x200000000080000 - CAP_FSTATAT = 0x200000000080400 - CAP_FSTATFS = 0x200000000100000 - CAP_FSYNC = 0x200000000000100 - CAP_FTRUNCATE = 0x200000000000200 - CAP_FUTIMES = 0x200000000200000 - CAP_FUTIMESAT = 0x200000000200400 - CAP_GETPEERNAME = 0x200000100000000 - CAP_GETSOCKNAME = 0x200000200000000 - CAP_GETSOCKOPT = 0x200000400000000 - CAP_IOCTL = 0x400000000000080 - CAP_IOCTLS_ALL = 0x7fffffffffffffff - CAP_KQUEUE = 0x400000000100040 - CAP_KQUEUE_CHANGE = 0x400000000100000 - CAP_KQUEUE_EVENT = 0x400000000000040 - CAP_LINKAT_SOURCE = 0x200020000000400 - CAP_LINKAT_TARGET = 0x200000000400400 - CAP_LISTEN = 0x200000800000000 - CAP_LOOKUP = 0x200000000000400 - CAP_MAC_GET = 0x400000000000001 - CAP_MAC_SET = 0x400000000000002 - CAP_MKDIRAT = 0x200000000800400 - CAP_MKFIFOAT = 0x200000001000400 - CAP_MKNODAT = 0x200000002000400 - CAP_MMAP = 0x200000000000010 - CAP_MMAP_R = 0x20000000000001d - CAP_MMAP_RW = 0x20000000000001f - CAP_MMAP_RWX = 0x20000000000003f - CAP_MMAP_RX = 0x20000000000003d - CAP_MMAP_W = 0x20000000000001e - CAP_MMAP_WX = 0x20000000000003e - CAP_MMAP_X = 0x20000000000003c - CAP_PDGETPID = 0x400000000000200 - CAP_PDKILL = 0x400000000000800 - CAP_PDWAIT = 0x400000000000400 - CAP_PEELOFF = 0x200001000000000 - CAP_POLL_EVENT = 0x400000000000020 - CAP_PREAD = 0x20000000000000d - CAP_PWRITE = 0x20000000000000e - CAP_READ = 0x200000000000001 - CAP_RECV = 0x200000000000001 - CAP_RENAMEAT_SOURCE = 0x200000004000400 - CAP_RENAMEAT_TARGET = 0x200040000000400 - CAP_RIGHTS_VERSION = 0x0 - CAP_RIGHTS_VERSION_00 = 0x0 - CAP_SEEK = 0x20000000000000c - CAP_SEEK_TELL = 0x200000000000004 - CAP_SEM_GETVALUE = 0x400000000000004 - CAP_SEM_POST = 0x400000000000008 - CAP_SEM_WAIT = 0x400000000000010 - CAP_SEND = 0x200000000000002 - CAP_SETSOCKOPT = 0x200002000000000 - CAP_SHUTDOWN = 0x200004000000000 - CAP_SOCK_CLIENT = 0x200007780000003 - CAP_SOCK_SERVER = 0x200007f60000003 - CAP_SYMLINKAT = 0x200000008000400 - CAP_TTYHOOK = 0x400000000000100 - CAP_UNLINKAT = 0x200000010000400 - CAP_UNUSED0_44 = 0x200080000000000 - CAP_UNUSED0_57 = 0x300000000000000 - CAP_UNUSED1_22 = 0x400000000200000 - CAP_UNUSED1_57 = 0x500000000000000 - CAP_WRITE = 0x200000000000002 - CFLUSH = 0xf - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x5 - CLOCK_MONOTONIC = 0x4 - CLOCK_MONOTONIC_COARSE = 0xc - CLOCK_MONOTONIC_FAST = 0xc - CLOCK_MONOTONIC_PRECISE = 0xb - CLOCK_PROCESS_CPUTIME_ID = 0xf - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_COARSE = 0xa - CLOCK_REALTIME_FAST = 0xa - CLOCK_REALTIME_PRECISE = 0x9 - CLOCK_SECOND = 0xd - CLOCK_THREAD_CPUTIME_ID = 0xe - CLOCK_UPTIME = 0x5 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0x18 - CTL_NET = 0x4 - DIOCGATTR = 0xc148648e - DIOCGDELETE = 0x80106488 - DIOCGFLUSH = 0x20006487 - DIOCGFWHEADS = 0x40046483 - DIOCGFWSECTORS = 0x40046482 - DIOCGIDENT = 0x41006489 - DIOCGKERNELDUMP = 0xc0986492 - DIOCGMEDIASIZE = 0x40086481 - DIOCGPHYSPATH = 0x4400648d - DIOCGPROVIDERNAME = 0x4400648a - DIOCGSECTORSIZE = 0x40046480 - DIOCGSTRIPEOFFSET = 0x4008648c - DIOCGSTRIPESIZE = 0x4008648b - DIOCSKERNELDUMP = 0x80986491 - DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 - DIOCSKERNELDUMP_FREEBSD12 = 0x80506490 - DIOCZONECMD = 0xc080648f - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - 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_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 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_EPON = 0x103 - 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 - DLT_FLEXRAY = 0xd2 - DLT_FRELAY = 0x6b - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - 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_KONTRON = 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 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - 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_PPP_WITHDIRECTION = 0xa6 - DLT_LINUX_SLL = 0x71 - DLT_LINUX_SLL2 = 0x114 - DLT_LOOP = 0x6c - DLT_LORATAP = 0x10e - DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x114 - 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_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 = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PPP_WITH_DIRECTION = 0xa6 - 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_SDLC = 0x10c - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - 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 - 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_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 - 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 - EHE_DEAD_PRIORITY = -0x1 - EVFILT_AIO = -0x3 - EVFILT_EMPTY = -0xd - EVFILT_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_PROCDESC = -0x8 - EVFILT_READ = -0x1 - EVFILT_SENDFILE = -0xc - EVFILT_SIGNAL = -0x6 - 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 - EV_DISABLE = 0x8 - EV_DISPATCH = 0x80 - EV_DROP = 0x1000 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_FLAG2 = 0x4000 - EV_FORCEONESHOT = 0x100 - EV_ONESHOT = 0x10 - EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_MAXNAMELEN = 0xff - EXTATTR_NAMESPACE_EMPTY = 0x0 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_NONE = -0xc8 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADD_SEALS = 0x13 - F_CANCEL = 0x5 - F_DUP2FD = 0xa - F_DUP2FD_CLOEXEC = 0x12 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x11 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xb - F_GETOWN = 0x5 - F_GET_SEALS = 0x14 - F_ISUNIONSTACK = 0x15 - F_KINFO = 0x16 - F_OGETLK = 0x7 - F_OK = 0x0 - F_OSETLK = 0x8 - F_OSETLKW = 0x9 - F_RDAHEAD = 0x10 - F_RDLCK = 0x1 - F_READAHEAD = 0xf - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0xc - F_SETLKW = 0xd - F_SETLK_REMOTE = 0xe - F_SETOWN = 0x6 - F_UNLCK = 0x2 - F_UNLCKSYS = 0x4 - F_WRLCK = 0x3 - HUPCL = 0x4000 - HW_MACHINE = 0x1 - ICANON = 0x100 - ICMP6_FILTER = 0x12 - ICRNL = 0x100 - IEXTEN = 0x400 - IFAN_ARRIVAL = 0x0 - IFAN_DEPARTURE = 0x1 - IFCAP_WOL_MAGIC = 0x2000 - IFF_ALLMULTI = 0x200 - IFF_ALTPHYS = 0x4000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x218f72 - IFF_CANTCONFIG = 0x10000 - IFF_DEBUG = 0x4 - IFF_DRV_OACTIVE = 0x400 - IFF_DRV_RUNNING = 0x40 - IFF_DYING = 0x200000 - IFF_KNOWSEPOCH = 0x20 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MONITOR = 0x40000 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOGROUP = 0x800000 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PPROMISC = 0x20000 - IFF_PROMISC = 0x100 - IFF_RENAMING = 0x400000 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - IFF_STATICARP = 0x80000 - IFF_UP = 0x1 - IFNAMSIZ = 0x10 - IFT_BRIDGE = 0xd1 - IFT_CARP = 0xf8 - IFT_IEEE1394 = 0x90 - IFT_INFINIBAND = 0xc7 - IFT_L2VLAN = 0x87 - IFT_L3IPVLAN = 0x88 - IFT_PPP = 0x17 - IFT_PROPVIRTUAL = 0x35 - 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_NETMASK_DEFAULT = 0xffffff00 - IN_RFC3021_MASK = 0xfffffffe - IPPROTO_3PC = 0x22 - IPPROTO_ADFS = 0x44 - IPPROTO_AH = 0x33 - IPPROTO_AHIP = 0x3d - IPPROTO_APES = 0x63 - IPPROTO_ARGUS = 0xd - IPPROTO_AX25 = 0x5d - IPPROTO_BHA = 0x31 - IPPROTO_BLT = 0x1e - IPPROTO_BRSATMON = 0x4c - IPPROTO_CARP = 0x70 - IPPROTO_CFTP = 0x3e - IPPROTO_CHAOS = 0x10 - IPPROTO_CMTP = 0x26 - IPPROTO_CPHB = 0x49 - IPPROTO_CPNX = 0x48 - IPPROTO_DCCP = 0x21 - IPPROTO_DDP = 0x25 - IPPROTO_DGP = 0x56 - IPPROTO_DIVERT = 0x102 - IPPROTO_DONE = 0x101 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_EMCON = 0xe - IPPROTO_ENCAP = 0x62 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_ETHERIP = 0x61 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_GMTP = 0x64 - IPPROTO_GRE = 0x2f - IPPROTO_HELLO = 0x3f - IPPROTO_HIP = 0x8b - IPPROTO_HMP = 0x14 - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IDPR = 0x23 - IPPROTO_IDRP = 0x2d - IPPROTO_IGMP = 0x2 - IPPROTO_IGP = 0x55 - IPPROTO_IGRP = 0x58 - IPPROTO_IL = 0x28 - IPPROTO_INLSP = 0x34 - IPPROTO_INP = 0x20 - IPPROTO_IP = 0x0 - IPPROTO_IPCOMP = 0x6c - IPPROTO_IPCV = 0x47 - IPPROTO_IPEIP = 0x5e - IPPROTO_IPIP = 0x4 - IPPROTO_IPPC = 0x43 - IPPROTO_IPV4 = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_IRTP = 0x1c - IPPROTO_KRYPTOLAN = 0x41 - IPPROTO_LARP = 0x5b - IPPROTO_LEAF1 = 0x19 - IPPROTO_LEAF2 = 0x1a - IPPROTO_MAX = 0x100 - IPPROTO_MEAS = 0x13 - IPPROTO_MH = 0x87 - IPPROTO_MHRP = 0x30 - IPPROTO_MICP = 0x5f - IPPROTO_MOBILE = 0x37 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_MUX = 0x12 - IPPROTO_ND = 0x4d - IPPROTO_NHRP = 0x36 - IPPROTO_NONE = 0x3b - IPPROTO_NSP = 0x1f - IPPROTO_NVPII = 0xb - IPPROTO_OLD_DIVERT = 0xfe - IPPROTO_OSPFIGP = 0x59 - IPPROTO_PFSYNC = 0xf0 - IPPROTO_PGM = 0x71 - IPPROTO_PIGP = 0x9 - IPPROTO_PIM = 0x67 - IPPROTO_PRM = 0x15 - IPPROTO_PUP = 0xc - IPPROTO_PVP = 0x4b - IPPROTO_RAW = 0xff - IPPROTO_RCCMON = 0xa - IPPROTO_RDP = 0x1b - IPPROTO_RESERVED_253 = 0xfd - IPPROTO_RESERVED_254 = 0xfe - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_RVD = 0x42 - IPPROTO_SATEXPAK = 0x40 - IPPROTO_SATMON = 0x45 - IPPROTO_SCCSP = 0x60 - IPPROTO_SCTP = 0x84 - IPPROTO_SDRP = 0x2a - IPPROTO_SEND = 0x103 - IPPROTO_SHIM6 = 0x8c - IPPROTO_SKIP = 0x39 - IPPROTO_SPACER = 0x7fff - IPPROTO_SRPC = 0x5a - IPPROTO_ST = 0x7 - IPPROTO_SVMTP = 0x52 - IPPROTO_SWIPE = 0x35 - IPPROTO_TCF = 0x57 - IPPROTO_TCP = 0x6 - IPPROTO_TLSP = 0x38 - IPPROTO_TP = 0x1d - IPPROTO_TPXX = 0x27 - IPPROTO_TRUNK1 = 0x17 - IPPROTO_TRUNK2 = 0x18 - IPPROTO_TTP = 0x54 - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPPROTO_VINES = 0x53 - IPPROTO_VISA = 0x46 - IPPROTO_VMTP = 0x51 - IPPROTO_WBEXPAK = 0x4f - IPPROTO_WBMON = 0x4e - IPPROTO_WSN = 0x4a - IPPROTO_XNET = 0xf - IPPROTO_XTP = 0x24 - IPV6_AUTOFLOWLABEL = 0x3b - IPV6_BINDANY = 0x40 - IPV6_BINDMULTI = 0x41 - IPV6_BINDV6ONLY = 0x1b - IPV6_CHECKSUM = 0x1a - IPV6_DEFAULT_MULTICAST_HOPS = 0x1 - IPV6_DEFAULT_MULTICAST_LOOP = 0x1 - IPV6_DEFHLIM = 0x40 - IPV6_DONTFRAG = 0x3e - IPV6_DSTOPTS = 0x32 - IPV6_FLOWID = 0x43 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_LEN = 0x14 - IPV6_FLOWLABEL_MASK = 0xffff0f00 - IPV6_FLOWTYPE = 0x44 - IPV6_FRAGTTL = 0x78 - IPV6_FW_ADD = 0x1e - IPV6_FW_DEL = 0x1f - IPV6_FW_FLUSH = 0x20 - 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 - IPV6_MAXHLIM = 0xff - IPV6_MAXOPTHDR = 0x800 - IPV6_MAXPACKET = 0xffff - IPV6_MAX_GROUP_SRC_FILTER = 0x200 - IPV6_MAX_MEMBERSHIPS = 0xfff - IPV6_MAX_SOCK_SRC_FILTER = 0x80 - 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 - IPV6_PORTRANGE_DEFAULT = 0x0 - IPV6_PORTRANGE_HIGH = 0x1 - IPV6_PORTRANGE_LOW = 0x2 - IPV6_PREFER_TEMPADDR = 0x3f - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVFLOWID = 0x46 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVORIGDSTADDR = 0x48 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRSSBUCKETID = 0x47 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - IPV6_RSSBUCKETID = 0x45 - IPV6_RSS_LISTEN_BUCKET = 0x42 - 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 - IPV6_VLAN_PCP = 0x4b - IP_ADD_MEMBERSHIP = 0xc - IP_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - IP_BINDMULTI = 0x19 - IP_BLOCK_SOURCE = 0x48 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DONTFRAG = 0x43 - IP_DROP_MEMBERSHIP = 0xd - IP_DROP_SOURCE_MEMBERSHIP = 0x47 - IP_DUMMYNET3 = 0x31 - IP_DUMMYNET_CONFIGURE = 0x3c - IP_DUMMYNET_DEL = 0x3d - IP_DUMMYNET_FLUSH = 0x3e - IP_DUMMYNET_GET = 0x40 - IP_FLOWID = 0x5a - IP_FLOWTYPE = 0x5b - IP_FW3 = 0x30 - IP_FW_ADD = 0x32 - IP_FW_DEL = 0x33 - IP_FW_FLUSH = 0x34 - IP_FW_GET = 0x36 - IP_FW_NAT_CFG = 0x38 - IP_FW_NAT_DEL = 0x39 - IP_FW_NAT_GET_CONFIG = 0x3a - IP_FW_NAT_GET_LOG = 0x3b - IP_FW_RESETLOG = 0x37 - IP_FW_TABLE_ADD = 0x28 - IP_FW_TABLE_DEL = 0x29 - IP_FW_TABLE_FLUSH = 0x2a - IP_FW_TABLE_GETSIZE = 0x2b - IP_FW_TABLE_LIST = 0x2c - IP_FW_ZERO = 0x35 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x15 - IP_MAXPACKET = 0xffff - IP_MAX_GROUP_SRC_FILTER = 0x200 - IP_MAX_MEMBERSHIPS = 0xfff - IP_MAX_SOCK_MUTE_FILTER = 0x80 - IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MF = 0x2000 - IP_MINTTL = 0x42 - IP_MSFILTER = 0x4a - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_VIF = 0xe - IP_OFFMASK = 0x1fff - IP_ONESBCAST = 0x17 - IP_OPTIONS = 0x1 - IP_ORIGDSTADDR = 0x1b - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVFLOWID = 0x5d - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVORIGDSTADDR = 0x1b - IP_RECVRETOPTS = 0x6 - IP_RECVRSSBUCKETID = 0x5e - IP_RECVTOS = 0x44 - IP_RECVTTL = 0x41 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_RSSBUCKETID = 0x5c - IP_RSS_LISTEN_BUCKET = 0x1a - IP_RSVP_OFF = 0x10 - IP_RSVP_ON = 0xf - IP_RSVP_VIF_OFF = 0x12 - IP_RSVP_VIF_ON = 0x11 - IP_SENDSRCADDR = 0x7 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x49 - IP_VLAN_PCP = 0x4b - ISIG = 0x80 - ISTRIP = 0x20 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - 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 - LOCK_UN = 0x8 - MADV_AUTOSYNC = 0x7 - MADV_CORE = 0x9 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NOCORE = 0x8 - MADV_NORMAL = 0x0 - MADV_NOSYNC = 0x6 - MADV_PROTECT = 0xa - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80000 - MAP_ALIGNED_SUPER = 0x1000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_ANONYMOUS = 0x1000 - MAP_COPY = 0x2 - MAP_EXCL = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GUARD = 0x2000 - MAP_HASSEMAPHORE = 0x200 - MAP_NOCORE = 0x20000 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RESERVED0020 = 0x20 - MAP_RESERVED0040 = 0x40 - MAP_RESERVED0080 = 0x80 - 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 - 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 = 0xfc000000 - MFD_HUGE_SHIFT = 0x1a - MNT_ACLS = 0x8000000 - MNT_ASYNC = 0x40 - MNT_AUTOMOUNTED = 0x200000000 - MNT_BYFSID = 0x8000000 - MNT_CMDFLAGS = 0x300d0f0000 - MNT_DEFEXPORTED = 0x200 - MNT_DELEXPORT = 0x20000 - MNT_EMPTYDIR = 0x2000000000 - MNT_EXKERB = 0x800 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x20000000 - MNT_EXRDONLY = 0x80 - MNT_EXTLS = 0x4000000000 - MNT_EXTLSCERT = 0x8000000000 - MNT_EXTLSCERTUSER = 0x10000000000 - MNT_FORCE = 0x80000 - MNT_GJOURNAL = 0x2000000 - MNT_IGNORE = 0x800000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_MULTILABEL = 0x4000000 - MNT_NFS4ACLS = 0x10 - MNT_NOATIME = 0x10000000 - MNT_NOCLUSTERR = 0x40000000 - MNT_NOCLUSTERW = 0x80000000 - MNT_NOCOVER = 0x1000000000 - MNT_NOEXEC = 0x4 - MNT_NONBUSY = 0x4000000 - MNT_NOSUID = 0x8 - MNT_NOSYMFOLLOW = 0x400000 - MNT_NOWAIT = 0x2 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SNAPSHOT = 0x1000000 - MNT_SOFTDEP = 0x200000 - MNT_SUIDDIR = 0x100000 - MNT_SUJ = 0x100000000 - MNT_SUSPEND = 0x4 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UNTRUSTED = 0x800000000 - MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0xad8d0807e - MNT_USER = 0x8000 - MNT_VERIFIED = 0x400000000 - MNT_VISFLAGMASK = 0xffef0ffff - MNT_WAIT = 0x1 - MSG_CMSG_CLOEXEC = 0x40000 - MSG_COMPAT = 0x8000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOF = 0x100 - MSG_EOR = 0x8 - MSG_NBIO = 0x4000 - MSG_NOSIGNAL = 0x20000 - MSG_NOTIFICATION = 0x2000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_WAITALL = 0x40 - MSG_WAITFORONE = 0x80000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x0 - NAME_MAX = 0xff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x3 - NET_RT_IFLISTL = 0x5 - NET_RT_IFMALIST = 0x4 - NET_RT_NHGRP = 0x7 - NET_RT_NHOP = 0x6 - NFDBITS = 0x40 - NOFLSH = 0x80000000 - NOKERNINFO = 0x2000000 - NOTE_ABSTIME = 0x10 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_CLOSE = 0x100 - NOTE_CLOSE_WRITE = 0x200 - NOTE_DELETE = 0x1 - NOTE_EXEC = 0x20000000 - NOTE_EXIT = 0x80000000 - NOTE_EXTEND = 0x4 - NOTE_FFAND = 0x40000000 - NOTE_FFCOPY = 0xc0000000 - NOTE_FFCTRLMASK = 0xc0000000 - NOTE_FFLAGSMASK = 0xffffff - NOTE_FFNOP = 0x0 - NOTE_FFOR = 0x80000000 - NOTE_FILE_POLL = 0x2 - NOTE_FORK = 0x40000000 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_OPEN = 0x80 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_READ = 0x400 - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_SECONDS = 0x1 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_TRIGGER = 0x1000000 - NOTE_USECONDS = 0x4 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - OXTABS = 0x4 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x100000 - O_CREAT = 0x200 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x20000 - O_DSYNC = 0x1000000 - O_EMPTY_PATH = 0x2000000 - O_EXCL = 0x800 - O_EXEC = 0x40000 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_PATH = 0x400000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RESOLVE_BENEATH = 0x800000 - O_SEARCH = 0x40000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_TTY_INIT = 0x80000 - O_VERIFY = 0x200000 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PIOD_READ_D = 0x1 - PIOD_READ_I = 0x3 - PIOD_WRITE_D = 0x2 - PIOD_WRITE_I = 0x4 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PTRACE_DEFAULT = 0x1 - PTRACE_EXEC = 0x1 - PTRACE_FORK = 0x8 - PTRACE_LWP = 0x10 - PTRACE_SCE = 0x2 - PTRACE_SCX = 0x4 - PTRACE_SYSCALL = 0x6 - PTRACE_VFORK = 0x20 - PT_ATTACH = 0xa - PT_CLEARSTEP = 0x10 - PT_CONTINUE = 0x7 - PT_COREDUMP = 0x1d - PT_DETACH = 0xb - PT_FIRSTMACH = 0x40 - PT_FOLLOW_FORK = 0x17 - PT_GETDBREGS = 0x25 - PT_GETFPREGS = 0x23 - PT_GETLWPLIST = 0xf - PT_GETNUMLWPS = 0xe - PT_GETREGS = 0x21 - PT_GET_EVENT_MASK = 0x19 - PT_GET_SC_ARGS = 0x1b - PT_GET_SC_RET = 0x1c - PT_IO = 0xc - PT_KILL = 0x8 - PT_LWPINFO = 0xd - PT_LWP_EVENTS = 0x18 - PT_READ_D = 0x2 - PT_READ_I = 0x1 - PT_RESUME = 0x13 - PT_SETDBREGS = 0x26 - PT_SETFPREGS = 0x24 - PT_SETREGS = 0x22 - PT_SETSTEP = 0x11 - PT_SET_EVENT_MASK = 0x1a - PT_STEP = 0x9 - PT_SUSPEND = 0x12 - PT_SYSCALL = 0x16 - PT_TO_SCE = 0x14 - PT_TO_SCX = 0x15 - PT_TRACE_ME = 0x0 - PT_VM_ENTRY = 0x29 - PT_VM_TIMESTAMP = 0x28 - PT_WRITE_D = 0x5 - PT_WRITE_I = 0x4 - P_ZONEID = 0xc - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x8 - RTAX_NETMASK = 0x2 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTF_BLACKHOLE = 0x1000 - RTF_BROADCAST = 0x400000 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_FIXEDMTU = 0x80000 - RTF_FMASK = 0x1004d808 - RTF_GATEWAY = 0x2 - RTF_GWFLAG_COMPAT = 0x80000000 - RTF_HOST = 0x4 - RTF_LLDATA = 0x400 - RTF_LLINFO = 0x400 - RTF_LOCAL = 0x200000 - RTF_MODIFIED = 0x20 - RTF_MULTICAST = 0x800000 - RTF_PINNED = 0x100000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_PROTO3 = 0x40000 - RTF_REJECT = 0x8 - RTF_STATIC = 0x800 - RTF_STICKY = 0x10000000 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_DELMADDR = 0x10 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x12 - RTM_IFANNOUNCE = 0x11 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_NEWMADDR = 0xf - 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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_BLACKHOLE = 0x40 - RT_DEFAULT_FIB = 0x0 - RT_DEFAULT_WEIGHT = 0x1 - RT_HAS_GW = 0x80 - RT_HAS_HEADER = 0x10 - RT_HAS_HEADER_BIT = 0x4 - RT_L2_ME = 0x4 - RT_L2_ME_BIT = 0x2 - RT_LLE_CACHE = 0x100 - RT_MAX_WEIGHT = 0xffffff - RT_MAY_LOOP = 0x8 - RT_MAY_LOOP_BIT = 0x3 - RT_REJECT = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_BINTIME = 0x4 - SCM_CREDS = 0x3 - SCM_CREDS2 = 0x8 - SCM_MONOTONIC = 0x6 - SCM_REALTIME = 0x5 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x2 - SCM_TIME_INFO = 0x7 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - SIOCGHWADDR = 0xc020693e - SIOCGI2C = 0xc020693d - SIOCGIFADDR = 0xc0206921 - SIOCGIFALIAS = 0xc044692d - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0106924 - SIOCGIFDATA = 0x8020692c - SIOCGIFDESCR = 0xc020692a - SIOCGIFDOWNREASON = 0xc058699a - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFIB = 0xc020695c - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc028698a - SIOCGIFGROUP = 0xc0286988 - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMAC = 0xc0206926 - SIOCGIFMEDIA = 0xc0306938 - SIOCGIFMETRIC = 0xc0206917 - SIOCGIFMTU = 0xc0206933 - SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 - SIOCGIFPHYS = 0xc0206935 - SIOCGIFPSRCADDR = 0xc0206947 - SIOCGIFRSSHASH = 0xc0186997 - SIOCGIFRSSKEY = 0xc0946996 - SIOCGIFSTATUS = 0xc331693b - SIOCGIFXMEDIA = 0xc030698b - SIOCGLANPCP = 0xc0206998 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - SIOCGTUNFIB = 0xc020695e - SIOCIFCREATE = 0xc020697a - SIOCIFCREATE2 = 0xc020697c - SIOCIFDESTROY = 0x80206979 - SIOCIFGCLONERS = 0xc0106978 - SIOCSDRVSPEC = 0x8028697b - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFCAP = 0x8020691e - SIOCSIFDESCR = 0x80206929 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFIB = 0x8020695d - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGENERIC = 0x80206939 - SIOCSIFLLADDR = 0x8020693c - SIOCSIFMAC = 0x80206927 - SIOCSIFMEDIA = 0xc0206937 - SIOCSIFMETRIC = 0x80206918 - SIOCSIFMTU = 0x80206934 - SIOCSIFNAME = 0x80206928 - SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSIFPHYS = 0x80206936 - SIOCSIFRVNET = 0xc020695b - SIOCSIFVNET = 0xc020695a - SIOCSLANPCP = 0x80206999 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSTUNFIB = 0x8020695f - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_MAXADDRLEN = 0xff - SOCK_NONBLOCK = 0x20000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_LOCAL = 0x0 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BINTIME = 0x2000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DOMAIN = 0x1019 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LABEL = 0x1009 - SO_LINGER = 0x80 - 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 - SO_OOBINLINE = 0x100 - SO_PEERLABEL = 0x1010 - SO_PROTOCOL = 0x1016 - SO_PROTOTYPE = 0x1016 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RERROR = 0x20000 - 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 - SO_VENDOR = 0x80000000 - 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_IFWHT = 0xe000 - 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 - TAB0 = 0x0 - TAB3 = 0x4 - TABDLY = 0x4 - TCIFLUSH = 0x1 - TCIOFF = 0x3 - TCIOFLUSH = 0x3 - TCION = 0x4 - TCOFLUSH = 0x2 - TCOOFF = 0x1 - TCOON = 0x2 - TCPOPT_EOL = 0x0 - TCPOPT_FAST_OPEN = 0x22 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_PAD = 0x0 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_WINDOW = 0x3 - TCP_BBR_ACK_COMP_ALG = 0x448 - TCP_BBR_ALGORITHM = 0x43b - TCP_BBR_DRAIN_INC_EXTRA = 0x43c - TCP_BBR_DRAIN_PG = 0x42e - TCP_BBR_EXTRA_GAIN = 0x449 - TCP_BBR_EXTRA_STATE = 0x453 - TCP_BBR_FLOOR_MIN_TSO = 0x454 - TCP_BBR_HDWR_PACE = 0x451 - TCP_BBR_HOLD_TARGET = 0x436 - 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_MIN_TOPACEOUT = 0x455 - TCP_BBR_ONE_RETRAN = 0x431 - TCP_BBR_PACE_CROSS = 0x442 - TCP_BBR_PACE_DEL_TAR = 0x43f - TCP_BBR_PACE_OH = 0x435 - TCP_BBR_PACE_PER_SEC = 0x43e - TCP_BBR_PACE_SEG_MAX = 0x440 - TCP_BBR_PACE_SEG_MIN = 0x441 - TCP_BBR_POLICER_DETECT = 0x457 - TCP_BBR_PROBE_RTT_GAIN = 0x44d - TCP_BBR_PROBE_RTT_INT = 0x430 - TCP_BBR_PROBE_RTT_LEN = 0x44e - TCP_BBR_RACK_INIT_RATE = 0x458 - 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_SEND_IWND_IN_TSO = 0x44f - TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d - TCP_BBR_STARTUP_LOSS_EXIT = 0x432 - TCP_BBR_STARTUP_PG = 0x42d - TCP_BBR_TMR_PACE_OH = 0x448 - TCP_BBR_TSLIMITS = 0x434 - TCP_BBR_TSTMP_RAISES = 0x456 - TCP_BBR_UNLIMITED = 0x43b - TCP_BBR_USEDEL_RATE = 0x437 - TCP_BBR_USE_LOWGAIN = 0x433 - TCP_BBR_USE_RACK_CHEAT = 0x450 - TCP_BBR_USE_RACK_RR = 0x450 - TCP_BBR_UTTER_MAX_TSO = 0x452 - TCP_CA_NAME_MAX = 0x10 - TCP_CCALGOOPT = 0x41 - TCP_CONGESTION = 0x40 - TCP_DATA_AFTER_CLOSE = 0x44c - TCP_DEFER_OPTIONS = 0x470 - TCP_DELACK = 0x48 - TCP_FASTOPEN = 0x401 - TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 - TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 - TCP_FASTOPEN_PSK_LEN = 0x10 - TCP_FAST_RSM_HACK = 0x471 - TCP_FIN_IS_RST = 0x49 - TCP_FUNCTION_BLK = 0x2000 - TCP_FUNCTION_NAME_LEN_MAX = 0x20 - TCP_HDWR_RATE_CAP = 0x46a - TCP_HDWR_UP_ONLY = 0x46c - TCP_IDLE_REDUCE = 0x46 - TCP_INFO = 0x20 - TCP_IWND_NB = 0x2b - TCP_IWND_NSEG = 0x2c - TCP_KEEPCNT = 0x400 - 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_LOGID_CNT = 0x2e - TCP_LOG_ID_LEN = 0x40 - TCP_LOG_LIMIT = 0x4a - TCP_LOG_TAG = 0x2f - TCP_MAXBURST = 0x4 - TCP_MAXHLEN = 0x3c - TCP_MAXOLEN = 0x28 - TCP_MAXPEAKRATE = 0x45 - TCP_MAXSEG = 0x2 - TCP_MAXUNACKTIME = 0x44 - TCP_MAXWIN = 0xffff - TCP_MAX_SACK = 0x4 - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOOPT = 0x8 - TCP_NOPUSH = 0x4 - TCP_NO_PRR = 0x462 - TCP_PACING_RATE_CAP = 0x46b - TCP_PCAP_IN = 0x1000 - TCP_PCAP_OUT = 0x800 - TCP_PERF_INFO = 0x4e - TCP_PROC_ACCOUNTING = 0x4c - TCP_RACK_ABC_VAL = 0x46d - TCP_RACK_CHEAT_NOT_CONF_RATE = 0x459 - TCP_RACK_DO_DETECTION = 0x449 - TCP_RACK_EARLY_RECOV = 0x423 - TCP_RACK_EARLY_SEG = 0x424 - TCP_RACK_FORCE_MSEG = 0x45d - TCP_RACK_GP_INCREASE = 0x446 - TCP_RACK_GP_INCREASE_CA = 0x45a - TCP_RACK_GP_INCREASE_REC = 0x45c - TCP_RACK_GP_INCREASE_SS = 0x45b - TCP_RACK_IDLE_REDUCE_HIGH = 0x444 - TCP_RACK_MBUF_QUEUE = 0x41a - TCP_RACK_MEASURE_CNT = 0x46f - TCP_RACK_MIN_PACE = 0x445 - TCP_RACK_MIN_PACE_SEG = 0x446 - TCP_RACK_MIN_TO = 0x422 - TCP_RACK_NONRXT_CFG_RATE = 0x463 - TCP_RACK_NO_PUSH_AT_MAX = 0x466 - TCP_RACK_PACE_ALWAYS = 0x41f - TCP_RACK_PACE_MAX_SEG = 0x41e - TCP_RACK_PACE_RATE_CA = 0x45e - TCP_RACK_PACE_RATE_REC = 0x460 - TCP_RACK_PACE_RATE_SS = 0x45f - TCP_RACK_PACE_REDUCE = 0x41d - TCP_RACK_PACE_TO_FILL = 0x467 - TCP_RACK_PACING_BETA = 0x472 - TCP_RACK_PACING_BETA_ECN = 0x473 - TCP_RACK_PKT_DELAY = 0x428 - TCP_RACK_PROFILE = 0x469 - 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_RR_CONF = 0x459 - TCP_RACK_TIMER_SLOP = 0x474 - TCP_RACK_TLP_INC_VAR = 0x429 - TCP_RACK_TLP_REDUCE = 0x41c - TCP_RACK_TLP_THRESH = 0x427 - TCP_RACK_TLP_USE = 0x447 - TCP_REC_ABC_VAL = 0x46e - TCP_REMOTE_UDP_ENCAPS_PORT = 0x47 - TCP_REUSPORT_LB_NUMA = 0x402 - TCP_REUSPORT_LB_NUMA_CURDOM = -0x1 - TCP_REUSPORT_LB_NUMA_NODOM = -0x2 - TCP_RXTLS_ENABLE = 0x29 - TCP_RXTLS_MODE = 0x2a - TCP_SHARED_CWND_ALLOWED = 0x4b - TCP_SHARED_CWND_ENABLE = 0x464 - TCP_SHARED_CWND_TIME_LIMIT = 0x468 - TCP_STATS = 0x21 - TCP_TIMELY_DYN_ADJ = 0x465 - TCP_TLS_MODE_IFNET = 0x2 - TCP_TLS_MODE_NONE = 0x0 - TCP_TLS_MODE_SW = 0x1 - TCP_TLS_MODE_TOE = 0x3 - TCP_TXTLS_ENABLE = 0x27 - TCP_TXTLS_MODE = 0x28 - TCP_USER_LOG = 0x30 - TCP_USE_CMP_ACKS = 0x4d - TCP_VENDOR = 0x80000000 - TCSAFLUSH = 0x2 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLUSH = 0x80047410 - TIOCGDRAINWAIT = 0x40047456 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGPGRP = 0x40047477 - TIOCGPTN = 0x4004740f - TIOCGSID = 0x40047463 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGDTRWAIT = 0x4004745a - TIOCMGET = 0x4004746a - TIOCMSDTRWAIT = 0x8004745b - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DCD = 0x40 - 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 - TIOCPTMASTER = 0x2000741c - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDRAINWAIT = 0x80047457 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSIG = 0x2004745f - TIOCSPGRP = 0x80047476 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCTIMESTAMP = 0x40107459 - TIOCUCNTL = 0x80047466 - TOSTOP = 0x400000 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VERASE2 = 0x7 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WCONTINUED = 0x4 - WCOREFLAG = 0x80 - WEXITED = 0x10 - WLINUXCLONE = 0x80000000 - WNOHANG = 0x1 - WNOWAIT = 0x8 - WSTOPPED = 0x2 - WTRAPPED = 0x20 - WUNTRACED = 0x2 -) - -// 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(0x59) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x55) - ECAPMODE = syscall.Errno(0x5e) - 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) - EDOOFUS = syscall.Errno(0x58) - 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(0x52) - EILSEQ = syscall.Errno(0x56) - EINPROGRESS = syscall.Errno(0x24) - EINTEGRITY = syscall.Errno(0x61) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x61) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5a) - 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(0x57) - ENOBUFS = syscall.Errno(0x37) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5b) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCAPABLE = syscall.Errno(0x5d) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTRECOVERABLE = syscall.Errno(0x5f) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - EOWNERDEAD = syscall.Errno(0x60) - 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(0x5c) - 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) - SIGLIBRT = syscall.Signal(0x21) - SIGLWP = syscall.Signal(0x20) - 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, "EWOULDBLOCK", "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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "ECANCELED", "operation canceled"}, - {86, "EILSEQ", "illegal byte sequence"}, - {87, "ENOATTR", "attribute not found"}, - {88, "EDOOFUS", "programming error"}, - {89, "EBADMSG", "bad message"}, - {90, "EMULTIHOP", "multihop attempted"}, - {91, "ENOLINK", "link has been severed"}, - {92, "EPROTO", "protocol error"}, - {93, "ENOTCAPABLE", "capabilities insufficient"}, - {94, "ECAPMODE", "not permitted in capability mode"}, - {95, "ENOTRECOVERABLE", "state not recoverable"}, - {96, "EOWNERDEAD", "previous owner died"}, - {97, "EINTEGRITY", "integrity check failed"}, -} - -// 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, "SIGIOT", "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", "unknown signal"}, - {33, "SIGLIBRT", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go deleted file mode 100644 index 9e7a6c5..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ /dev/null @@ -1,3767 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go: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 = 0x2e - AF_MCTP = 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_KEY_BY_KEY_SERIAL = 0x7 - 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_MCTP = 0x122 - 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 - AUDIT_ADD = 0x3eb - AUDIT_ADD_RULE = 0x3f3 - AUDIT_ALWAYS = 0x2 - AUDIT_ANOM_ABEND = 0x6a5 - AUDIT_ANOM_CREAT = 0x6a7 - AUDIT_ANOM_LINK = 0x6a6 - AUDIT_ANOM_PROMISCUOUS = 0x6a4 - AUDIT_ARCH = 0xb - AUDIT_ARCH_AARCH64 = 0xc00000b7 - AUDIT_ARCH_ALPHA = 0xc0009026 - AUDIT_ARCH_ARCOMPACT = 0x4000005d - AUDIT_ARCH_ARCOMPACTBE = 0x5d - AUDIT_ARCH_ARCV2 = 0x400000c3 - AUDIT_ARCH_ARCV2BE = 0xc3 - AUDIT_ARCH_ARM = 0x40000028 - AUDIT_ARCH_ARMEB = 0x28 - AUDIT_ARCH_C6X = 0x4000008c - AUDIT_ARCH_C6XBE = 0x8c - AUDIT_ARCH_CRIS = 0x4000004c - AUDIT_ARCH_CSKY = 0x400000fc - AUDIT_ARCH_FRV = 0x5441 - AUDIT_ARCH_H8300 = 0x2e - AUDIT_ARCH_HEXAGON = 0xa4 - AUDIT_ARCH_I386 = 0x40000003 - AUDIT_ARCH_IA64 = 0xc0000032 - AUDIT_ARCH_LOONGARCH32 = 0x40000102 - AUDIT_ARCH_LOONGARCH64 = 0xc0000102 - AUDIT_ARCH_M32R = 0x58 - AUDIT_ARCH_M68K = 0x4 - AUDIT_ARCH_MICROBLAZE = 0xbd - AUDIT_ARCH_MIPS = 0x8 - AUDIT_ARCH_MIPS64 = 0x80000008 - AUDIT_ARCH_MIPS64N32 = 0xa0000008 - AUDIT_ARCH_MIPSEL = 0x40000008 - AUDIT_ARCH_MIPSEL64 = 0xc0000008 - AUDIT_ARCH_MIPSEL64N32 = 0xe0000008 - AUDIT_ARCH_NDS32 = 0x400000a7 - AUDIT_ARCH_NDS32BE = 0xa7 - AUDIT_ARCH_NIOS2 = 0x40000071 - AUDIT_ARCH_OPENRISC = 0x5c - AUDIT_ARCH_PARISC = 0xf - AUDIT_ARCH_PARISC64 = 0x8000000f - AUDIT_ARCH_PPC = 0x14 - AUDIT_ARCH_PPC64 = 0x80000015 - AUDIT_ARCH_PPC64LE = 0xc0000015 - AUDIT_ARCH_RISCV32 = 0x400000f3 - AUDIT_ARCH_RISCV64 = 0xc00000f3 - AUDIT_ARCH_S390 = 0x16 - AUDIT_ARCH_S390X = 0x80000016 - AUDIT_ARCH_SH = 0x2a - AUDIT_ARCH_SH64 = 0x8000002a - AUDIT_ARCH_SHEL = 0x4000002a - AUDIT_ARCH_SHEL64 = 0xc000002a - AUDIT_ARCH_SPARC = 0x2 - AUDIT_ARCH_SPARC64 = 0x8000002b - AUDIT_ARCH_TILEGX = 0xc00000bf - AUDIT_ARCH_TILEGX32 = 0x400000bf - AUDIT_ARCH_TILEPRO = 0x400000bc - AUDIT_ARCH_UNICORE = 0x4000006e - AUDIT_ARCH_X86_64 = 0xc000003e - AUDIT_ARCH_XTENSA = 0x5e - AUDIT_ARG0 = 0xc8 - AUDIT_ARG1 = 0xc9 - AUDIT_ARG2 = 0xca - AUDIT_ARG3 = 0xcb - AUDIT_AVC = 0x578 - AUDIT_AVC_PATH = 0x57a - AUDIT_BITMASK_SIZE = 0x40 - AUDIT_BIT_MASK = 0x8000000 - AUDIT_BIT_TEST = 0x48000000 - AUDIT_BPF = 0x536 - AUDIT_BPRM_FCAPS = 0x529 - AUDIT_CAPSET = 0x52a - AUDIT_CLASS_CHATTR = 0x2 - AUDIT_CLASS_CHATTR_32 = 0x3 - AUDIT_CLASS_DIR_WRITE = 0x0 - AUDIT_CLASS_DIR_WRITE_32 = 0x1 - AUDIT_CLASS_READ = 0x4 - AUDIT_CLASS_READ_32 = 0x5 - AUDIT_CLASS_SIGNAL = 0x8 - AUDIT_CLASS_SIGNAL_32 = 0x9 - AUDIT_CLASS_WRITE = 0x6 - AUDIT_CLASS_WRITE_32 = 0x7 - AUDIT_COMPARE_AUID_TO_EUID = 0x10 - AUDIT_COMPARE_AUID_TO_FSUID = 0xe - AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5 - AUDIT_COMPARE_AUID_TO_SUID = 0xf - AUDIT_COMPARE_EGID_TO_FSGID = 0x17 - AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4 - AUDIT_COMPARE_EGID_TO_SGID = 0x18 - AUDIT_COMPARE_EUID_TO_FSUID = 0x12 - AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3 - AUDIT_COMPARE_EUID_TO_SUID = 0x11 - AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9 - AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8 - AUDIT_COMPARE_GID_TO_EGID = 0x14 - AUDIT_COMPARE_GID_TO_FSGID = 0x15 - AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2 - AUDIT_COMPARE_GID_TO_SGID = 0x16 - AUDIT_COMPARE_SGID_TO_FSGID = 0x19 - AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7 - AUDIT_COMPARE_SUID_TO_FSUID = 0x13 - AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6 - AUDIT_COMPARE_UID_TO_AUID = 0xa - AUDIT_COMPARE_UID_TO_EUID = 0xb - AUDIT_COMPARE_UID_TO_FSUID = 0xc - AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1 - AUDIT_COMPARE_UID_TO_SUID = 0xd - AUDIT_CONFIG_CHANGE = 0x519 - AUDIT_CWD = 0x51b - AUDIT_DAEMON_ABORT = 0x4b2 - AUDIT_DAEMON_CONFIG = 0x4b3 - AUDIT_DAEMON_END = 0x4b1 - AUDIT_DAEMON_START = 0x4b0 - AUDIT_DEL = 0x3ec - AUDIT_DEL_RULE = 0x3f4 - AUDIT_DEVMAJOR = 0x64 - AUDIT_DEVMINOR = 0x65 - AUDIT_DIR = 0x6b - AUDIT_DM_CTRL = 0x53a - AUDIT_DM_EVENT = 0x53b - AUDIT_EGID = 0x6 - AUDIT_EOE = 0x528 - AUDIT_EQUAL = 0x40000000 - AUDIT_EUID = 0x2 - AUDIT_EVENT_LISTENER = 0x537 - AUDIT_EXE = 0x70 - AUDIT_EXECVE = 0x51d - AUDIT_EXIT = 0x67 - AUDIT_FAIL_PANIC = 0x2 - AUDIT_FAIL_PRINTK = 0x1 - AUDIT_FAIL_SILENT = 0x0 - AUDIT_FANOTIFY = 0x533 - AUDIT_FD_PAIR = 0x525 - AUDIT_FEATURE_BITMAP_ALL = 0x7f - AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1 - AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2 - AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8 - AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4 - AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40 - AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20 - AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10 - AUDIT_FEATURE_CHANGE = 0x530 - AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1 - AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0 - AUDIT_FEATURE_VERSION = 0x1 - AUDIT_FIELD_COMPARE = 0x6f - AUDIT_FILETYPE = 0x6c - AUDIT_FILTERKEY = 0xd2 - AUDIT_FILTER_ENTRY = 0x2 - AUDIT_FILTER_EXCLUDE = 0x5 - AUDIT_FILTER_EXIT = 0x4 - AUDIT_FILTER_FS = 0x6 - AUDIT_FILTER_PREPEND = 0x10 - AUDIT_FILTER_TASK = 0x1 - AUDIT_FILTER_TYPE = 0x5 - AUDIT_FILTER_URING_EXIT = 0x7 - AUDIT_FILTER_USER = 0x0 - AUDIT_FILTER_WATCH = 0x3 - AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4 - AUDIT_FIRST_USER_MSG = 0x44c - AUDIT_FIRST_USER_MSG2 = 0x834 - AUDIT_FSGID = 0x8 - AUDIT_FSTYPE = 0x1a - AUDIT_FSUID = 0x4 - AUDIT_GET = 0x3e8 - AUDIT_GET_FEATURE = 0x3fb - AUDIT_GID = 0x5 - AUDIT_GREATER_THAN = 0x20000000 - AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000 - AUDIT_INODE = 0x66 - AUDIT_INTEGRITY_DATA = 0x708 - AUDIT_INTEGRITY_EVM_XATTR = 0x70e - AUDIT_INTEGRITY_HASH = 0x70b - AUDIT_INTEGRITY_METADATA = 0x709 - AUDIT_INTEGRITY_PCR = 0x70c - AUDIT_INTEGRITY_POLICY_RULE = 0x70f - AUDIT_INTEGRITY_RULE = 0x70d - AUDIT_INTEGRITY_STATUS = 0x70a - AUDIT_INTEGRITY_USERSPACE = 0x710 - AUDIT_IPC = 0x517 - AUDIT_IPC_SET_PERM = 0x51f - AUDIT_IPE_ACCESS = 0x58c - AUDIT_IPE_CONFIG_CHANGE = 0x58d - AUDIT_IPE_POLICY_LOAD = 0x58e - AUDIT_KERNEL = 0x7d0 - AUDIT_KERNEL_OTHER = 0x524 - AUDIT_KERN_MODULE = 0x532 - AUDIT_LAST_FEATURE = 0x1 - AUDIT_LAST_KERN_ANOM_MSG = 0x707 - AUDIT_LAST_USER_MSG = 0x4af - AUDIT_LAST_USER_MSG2 = 0xbb7 - AUDIT_LESS_THAN = 0x10000000 - AUDIT_LESS_THAN_OR_EQUAL = 0x50000000 - AUDIT_LIST = 0x3ea - AUDIT_LIST_RULES = 0x3f5 - AUDIT_LOGIN = 0x3ee - AUDIT_LOGINUID = 0x9 - AUDIT_LOGINUID_SET = 0x18 - AUDIT_MAC_CALIPSO_ADD = 0x58a - AUDIT_MAC_CALIPSO_DEL = 0x58b - AUDIT_MAC_CIPSOV4_ADD = 0x57f - AUDIT_MAC_CIPSOV4_DEL = 0x580 - AUDIT_MAC_CONFIG_CHANGE = 0x57d - AUDIT_MAC_IPSEC_ADDSA = 0x583 - AUDIT_MAC_IPSEC_ADDSPD = 0x585 - AUDIT_MAC_IPSEC_DELSA = 0x584 - AUDIT_MAC_IPSEC_DELSPD = 0x586 - AUDIT_MAC_IPSEC_EVENT = 0x587 - AUDIT_MAC_MAP_ADD = 0x581 - AUDIT_MAC_MAP_DEL = 0x582 - AUDIT_MAC_POLICY_LOAD = 0x57b - AUDIT_MAC_STATUS = 0x57c - AUDIT_MAC_UNLBL_ALLOW = 0x57e - AUDIT_MAC_UNLBL_STCADD = 0x588 - AUDIT_MAC_UNLBL_STCDEL = 0x589 - AUDIT_MAKE_EQUIV = 0x3f7 - AUDIT_MAX_FIELDS = 0x40 - AUDIT_MAX_FIELD_COMPARE = 0x19 - AUDIT_MAX_KEY_LEN = 0x100 - AUDIT_MESSAGE_TEXT_MAX = 0x2170 - AUDIT_MMAP = 0x52b - AUDIT_MQ_GETSETATTR = 0x523 - AUDIT_MQ_NOTIFY = 0x522 - AUDIT_MQ_OPEN = 0x520 - AUDIT_MQ_SENDRECV = 0x521 - AUDIT_MSGTYPE = 0xc - AUDIT_NEGATE = 0x80000000 - AUDIT_NETFILTER_CFG = 0x52d - AUDIT_NETFILTER_PKT = 0x52c - AUDIT_NEVER = 0x0 - AUDIT_NLGRP_MAX = 0x1 - AUDIT_NOT_EQUAL = 0x30000000 - AUDIT_NR_FILTERS = 0x8 - AUDIT_OBJ_GID = 0x6e - AUDIT_OBJ_LEV_HIGH = 0x17 - AUDIT_OBJ_LEV_LOW = 0x16 - AUDIT_OBJ_PID = 0x526 - AUDIT_OBJ_ROLE = 0x14 - AUDIT_OBJ_TYPE = 0x15 - AUDIT_OBJ_UID = 0x6d - AUDIT_OBJ_USER = 0x13 - AUDIT_OPENAT2 = 0x539 - AUDIT_OPERATORS = 0x78000000 - AUDIT_PATH = 0x516 - AUDIT_PERM = 0x6a - AUDIT_PERM_ATTR = 0x8 - AUDIT_PERM_EXEC = 0x1 - AUDIT_PERM_READ = 0x4 - AUDIT_PERM_WRITE = 0x2 - AUDIT_PERS = 0xa - AUDIT_PID = 0x0 - AUDIT_POSSIBLE = 0x1 - AUDIT_PPID = 0x12 - AUDIT_PROCTITLE = 0x52f - AUDIT_REPLACE = 0x531 - AUDIT_SADDR_FAM = 0x71 - AUDIT_SECCOMP = 0x52e - AUDIT_SELINUX_ERR = 0x579 - AUDIT_SESSIONID = 0x19 - AUDIT_SET = 0x3e9 - AUDIT_SET_FEATURE = 0x3fa - AUDIT_SGID = 0x7 - AUDIT_SID_UNSET = 0xffffffff - AUDIT_SIGNAL_INFO = 0x3f2 - AUDIT_SOCKADDR = 0x51a - AUDIT_SOCKETCALL = 0x518 - AUDIT_STATUS_BACKLOG_LIMIT = 0x10 - AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20 - AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80 - AUDIT_STATUS_ENABLED = 0x1 - AUDIT_STATUS_FAILURE = 0x2 - AUDIT_STATUS_LOST = 0x40 - AUDIT_STATUS_PID = 0x4 - AUDIT_STATUS_RATE_LIMIT = 0x8 - AUDIT_SUBJ_CLR = 0x11 - AUDIT_SUBJ_ROLE = 0xe - AUDIT_SUBJ_SEN = 0x10 - AUDIT_SUBJ_TYPE = 0xf - AUDIT_SUBJ_USER = 0xd - AUDIT_SUCCESS = 0x68 - AUDIT_SUID = 0x3 - AUDIT_SYSCALL = 0x514 - AUDIT_SYSCALL_CLASSES = 0x10 - AUDIT_TIME_ADJNTPVAL = 0x535 - AUDIT_TIME_INJOFFSET = 0x534 - AUDIT_TRIM = 0x3f6 - AUDIT_TTY = 0x527 - AUDIT_TTY_GET = 0x3f8 - AUDIT_TTY_SET = 0x3f9 - AUDIT_UID = 0x1 - AUDIT_UID_UNSET = 0xffffffff - AUDIT_UNUSED_BITS = 0x7fffc00 - AUDIT_URINGOP = 0x538 - AUDIT_USER = 0x3ed - AUDIT_USER_AVC = 0x453 - AUDIT_USER_TTY = 0x464 - AUDIT_VERSION_BACKLOG_LIMIT = 0x1 - AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2 - AUDIT_VERSION_LATEST = 0x7f - AUDIT_WATCH = 0x69 - AUDIT_WATCH_INS = 0x3ef - AUDIT_WATCH_LIST = 0x3f1 - AUDIT_WATCH_REM = 0x3f0 - 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 - BCACHEFS_SUPER_MAGIC = 0xca451a4e - 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_ATOMIC = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_CMPXCHG = 0xf1 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIT = 0x90 - BPF_FETCH = 0x1 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_AFTER = 0x10 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_BEFORE = 0x8 - BPF_F_ID = 0x20 - BPF_F_NETFILTER_IP_DEFRAG = 0x1 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_REDIRECT_FLAGS = 0x19 - BPF_F_REPLACE = 0x4 - BPF_F_SLEEPABLE = 0x10 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_TEST_REG_INVARIANTS = 0x80 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TEST_RUN_ON_CPU = 0x1 - BPF_F_TEST_SKB_CHECKSUM_COMPLETE = 0x4 - BPF_F_TEST_STATE_FREQ = 0x8 - BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 - BPF_F_XDP_DEV_BOUND_ONLY = 0x40 - BPF_F_XDP_HAS_FRAGS = 0x20 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JCOND = 0xe0 - 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_MEMSX = 0x80 - 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_FUNC = 0x4 - BPF_PSEUDO_KFUNC_CALL = 0x2 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_IDX = 0x5 - BPF_PSEUDO_MAP_IDX_VALUE = 0x6 - 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_XCHG = 0xe1 - 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_BUS_OFF_THRESHOLD = 0x100 - CAN_CTRLMODE_3_SAMPLES = 0x4 - CAN_CTRLMODE_BERR_REPORTING = 0x10 - CAN_CTRLMODE_CC_LEN8_DLC = 0x100 - CAN_CTRLMODE_FD = 0x20 - CAN_CTRLMODE_FD_NON_ISO = 0x80 - CAN_CTRLMODE_LISTENONLY = 0x2 - CAN_CTRLMODE_LOOPBACK = 0x1 - CAN_CTRLMODE_ONE_SHOT = 0x8 - CAN_CTRLMODE_PRESUME_ACK = 0x40 - CAN_CTRLMODE_TDC_AUTO = 0x200 - CAN_CTRLMODE_TDC_MANUAL = 0x400 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERROR_PASSIVE_THRESHOLD = 0x80 - CAN_ERROR_WARNING_THRESHOLD = 0x60 - CAN_ERR_ACK = 0x20 - CAN_ERR_BUSERROR = 0x80 - CAN_ERR_BUSOFF = 0x40 - CAN_ERR_CNT = 0x200 - 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_RAW_XL_VCID_RX_FILTER = 0x4 - CAN_RAW_XL_VCID_TX_PASS = 0x2 - CAN_RAW_XL_VCID_TX_SET = 0x1 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TERMINATION_DISABLED = 0x0 - 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 - CEPH_SUPER_MAGIC = 0xc36400 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIFS_SUPER_MAGIC = 0xff534d42 - 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_PORT_FN_CAP_IPSEC_CRYPTO = 0x4 - DEVLINK_PORT_FN_CAP_IPSEC_PACKET = 0x8 - DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 - DEVLINK_PORT_FN_CAP_ROCE = 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_IMA_MEASUREMENT_FLAG = 0x80000 - 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_NAME_LIST_FLAG_DOESNT_HAVE_UUID = 0x2 - DM_NAME_LIST_FLAG_HAS_UUID = 0x1 - 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 (2025-01-17)" - DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x31 - 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 - EM_386 = 0x3 - EM_486 = 0x6 - EM_68K = 0x4 - EM_860 = 0x7 - EM_88K = 0x5 - EM_AARCH64 = 0xb7 - EM_ALPHA = 0x9026 - EM_ALTERA_NIOS2 = 0x71 - EM_ARCOMPACT = 0x5d - EM_ARCV2 = 0xc3 - EM_ARM = 0x28 - EM_BLACKFIN = 0x6a - EM_BPF = 0xf7 - EM_CRIS = 0x4c - EM_CSKY = 0xfc - EM_CYGNUS_M32R = 0x9041 - EM_CYGNUS_MN10300 = 0xbeef - EM_FRV = 0x5441 - EM_H8_300 = 0x2e - EM_HEXAGON = 0xa4 - EM_IA_64 = 0x32 - EM_LOONGARCH = 0x102 - EM_M32 = 0x1 - EM_M32R = 0x58 - EM_MICROBLAZE = 0xbd - EM_MIPS = 0x8 - EM_MIPS_RS3_LE = 0xa - EM_MIPS_RS4_BE = 0xa - EM_MN10300 = 0x59 - EM_NDS32 = 0xa7 - EM_NONE = 0x0 - EM_OPENRISC = 0x5c - EM_PARISC = 0xf - EM_PPC = 0x14 - EM_PPC64 = 0x15 - EM_RISCV = 0xf3 - EM_S390 = 0x16 - EM_S390_OLD = 0xa390 - EM_SH = 0x2a - EM_SPARC = 0x2 - EM_SPARC32PLUS = 0x12 - EM_SPARCV9 = 0x2b - EM_SPU = 0x17 - EM_TILEGX = 0xbf - EM_TILEPRO = 0xbc - EM_TI_C6000 = 0x8c - EM_UNICORE = 0x6e - EM_X86_64 = 0x3e - EM_XTENSA = 0x5e - 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 - EPOLL_IOC_TYPE = 0x8a - EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 - ESP_V4_FLOW = 0xa - ESP_V6_FLOW = 0xc - ETHER_FLOW = 0x12 - ETHTOOL_BUSINFO_LEN = 0x20 - ETHTOOL_EROMVERS_LEN = 0x20 - ETHTOOL_FAMILY_NAME = "ethtool" - ETHTOOL_FAMILY_VERSION = 0x1 - ETHTOOL_FEC_AUTO = 0x2 - ETHTOOL_FEC_BASER = 0x10 - ETHTOOL_FEC_LLRS = 0x20 - ETHTOOL_FEC_NONE = 0x1 - ETHTOOL_FEC_OFF = 0x4 - ETHTOOL_FEC_RS = 0x8 - ETHTOOL_FLAG_ALL = 0x7 - 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_CANXL = 0xe - 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_DSA_A5PSW = 0xe001 - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_ETHERCAT = 0x88a4 - 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_MCTP = 0xfa - 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_PROFINET = 0x8892 - 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_REALTEK = 0x8899 - 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 - EV_ABS = 0x3 - EV_CNT = 0x20 - EV_FF = 0x15 - EV_FF_STATUS = 0x17 - EV_KEY = 0x1 - EV_LED = 0x11 - EV_MAX = 0x1f - EV_MSC = 0x4 - EV_PWR = 0x16 - EV_REL = 0x2 - EV_REP = 0x14 - EV_SND = 0x12 - EV_SW = 0x5 - EV_SYN = 0x0 - EV_VERSION = 0x10001 - EXABYTE_ENABLE_NEST = 0xf0 - EXFAT_SUPER_MAGIC = 0x2011bab0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_ALLOCATE_RANGE = 0x0 - 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_EPIDFD = -0x2 - FAN_ERRNO_BITS = 0x8 - FAN_ERRNO_MASK = 0xff - FAN_ERRNO_SHIFT = 0x18 - FAN_EVENT_INFO_TYPE_DFID = 0x3 - FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 - FAN_EVENT_INFO_TYPE_ERROR = 0x5 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc - FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa - FAN_EVENT_INFO_TYPE_PIDFD = 0x4 - FAN_EVENT_INFO_TYPE_RANGE = 0x6 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_FS_ERROR = 0x8000 - FAN_INFO = 0x20 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_EVICTABLE = 0x200 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORE = 0x400 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_IGNORE_SURV = 0x440 - 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_NOPIDFD = -0x1 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_PRE_ACCESS = 0x100000 - FAN_Q_OVERFLOW = 0x4000 - FAN_RENAME = 0x10000000 - FAN_REPORT_DFID_NAME = 0xc00 - FAN_REPORT_DFID_NAME_TARGET = 0x1e00 - FAN_REPORT_DIR_FID = 0x400 - FAN_REPORT_FD_ERROR = 0x2000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_NAME = 0x800 - FAN_REPORT_PIDFD = 0x80 - FAN_REPORT_TARGET_FID = 0x1000 - FAN_REPORT_TID = 0x100 - FAN_RESPONSE_INFO_AUDIT_RULE = 0x1 - FAN_RESPONSE_INFO_NONE = 0x0 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FIB_RULE_DEV_DETACHED = 0x8 - FIB_RULE_FIND_SADDR = 0x10000 - FIB_RULE_IIF_DETACHED = 0x8 - FIB_RULE_INVERT = 0x2 - FIB_RULE_OIF_DETACHED = 0x10 - FIB_RULE_PERMANENT = 0x1 - FIB_RULE_UNRESOLVED = 0x4 - 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_HCTR2 = 0xa - FSCRYPT_MODE_AES_256_XTS = 0x1 - FSCRYPT_MODE_SM4_CTS = 0x8 - FSCRYPT_MODE_SM4_XTS = 0x7 - 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_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_READ_VERITY_METADATA = 0xc0286687 - 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 - FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 - FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 - FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 - FUSE_SUPER_MAGIC = 0x65735546 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_CREATED_QUERY = 0x404 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_DUPFD_QUERY = 0x403 - 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_EXEC = 0x20 - 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 - 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 = 0xb - 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_CARRIER = 0x40 - 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_SMC = 0x100 - 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_VERSION = 0x60 - IPV6_VERSION_MASK = 0xf0 - 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_LOCAL_PORT_RANGE = 0x33 - 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_PROTOCOL = 0x34 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - IUTF8 = 0x4000 - IXANY = 0x800 - JFFS2_SUPER_MAGIC = 0x72b6 - KCMPROTO_CONNECTED = 0x0 - KCM_RECV_DISABLE = 0x1 - 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_LOONGARCH = 0x1020000 - 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_RISCV = 0xf30000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_CRASH_HOTPLUG_SUPPORT = 0x8 - KEXEC_FILE_DEBUG = 0x8 - 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 - KEXEC_UPDATE_ELFCOREHDR = 0x4 - 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 - LANDLOCK_ACCESS_FS_EXECUTE = 0x1 - LANDLOCK_ACCESS_FS_IOCTL_DEV = 0x8000 - LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 - LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 - LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 - LANDLOCK_ACCESS_FS_MAKE_FIFO = 0x400 - LANDLOCK_ACCESS_FS_MAKE_REG = 0x100 - LANDLOCK_ACCESS_FS_MAKE_SOCK = 0x200 - LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000 - LANDLOCK_ACCESS_FS_READ_DIR = 0x8 - LANDLOCK_ACCESS_FS_READ_FILE = 0x4 - LANDLOCK_ACCESS_FS_REFER = 0x2000 - LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10 - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 - LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 - LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET = 0x1 - LANDLOCK_SCOPE_SIGNAL = 0x2 - 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_CONFIGURE = 0x4c0a - 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_COLLAPSE = 0x19 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_DONTNEED_LOCKED = 0x18 - 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_POPULATE_READ = 0x16 - MADV_POPULATE_WRITE = 0x17 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_DROPPABLE = 0x8 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_HUGE_16GB = 0x88000000 - MAP_HUGE_16KB = 0x38000000 - MAP_HUGE_16MB = 0x60000000 - MAP_HUGE_1GB = 0x78000000 - MAP_HUGE_1MB = 0x50000000 - MAP_HUGE_256MB = 0x70000000 - MAP_HUGE_2GB = 0x7c000000 - MAP_HUGE_2MB = 0x54000000 - MAP_HUGE_32MB = 0x64000000 - MAP_HUGE_512KB = 0x4c000000 - MAP_HUGE_512MB = 0x74000000 - MAP_HUGE_64KB = 0x40000000 - MAP_HUGE_8MB = 0x5c000000 - 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 - MEMGETREGIONINFO = 0xc0104d08 - MEMREADOOB64 = 0xc0184d16 - MEMWRITE = 0xc0304d18 - MEMWRITEOOB64 = 0xc0184d15 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_EXEC = 0x10 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = 0x88000000 - 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 - MFD_NOEXEC_SEAL = 0x8 - 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 - MNT_ID_REQ_SIZE_VER0 = 0x18 - MNT_ID_REQ_SIZE_VER1 = 0x20 - MNT_NS_INFO_SIZE_VER0 = 0x10 - MODULE_INIT_COMPRESSED_FILE = 0x4 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MOUNT_ATTR_IDMAP = 0x100000 - MOUNT_ATTR_NOATIME = 0x10 - MOUNT_ATTR_NODEV = 0x4 - MOUNT_ATTR_NODIRATIME = 0x80 - MOUNT_ATTR_NOEXEC = 0x8 - MOUNT_ATTR_NOSUID = 0x2 - MOUNT_ATTR_NOSYMFOLLOW = 0x200000 - MOUNT_ATTR_RDONLY = 0x1 - MOUNT_ATTR_RELATIME = 0x0 - MOUNT_ATTR_SIZE_VER0 = 0x20 - MOUNT_ATTR_STRICTATIME = 0x20 - MOUNT_ATTR__ATIME = 0x70 - MREMAP_DONTUNMAP = 0x4 - MREMAP_FIXED = 0x2 - MREMAP_MAYMOVE = 0x1 - 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_SOCK_DEVMEM = 0x2000000 - 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_ABSENT = 0x0 - MTD_BIT_WRITEABLE = 0x800 - MTD_CAP_NANDFLASH = 0x400 - MTD_CAP_NORFLASH = 0xc00 - MTD_CAP_NVRAM = 0x1c00 - MTD_CAP_RAM = 0x1c00 - MTD_CAP_ROM = 0x0 - MTD_DATAFLASH = 0x6 - MTD_INODE_FS_MAGIC = 0x11307854 - MTD_MAX_ECCPOS_ENTRIES = 0x40 - MTD_MAX_OOBFREE_ENTRIES = 0x8 - MTD_MLCNANDFLASH = 0x8 - MTD_NANDECC_AUTOPLACE = 0x2 - MTD_NANDECC_AUTOPL_USR = 0x4 - MTD_NANDECC_OFF = 0x0 - MTD_NANDECC_PLACE = 0x1 - MTD_NANDECC_PLACEONLY = 0x3 - MTD_NANDFLASH = 0x4 - MTD_NORFLASH = 0x3 - MTD_NO_ERASE = 0x1000 - MTD_OTP_FACTORY = 0x1 - MTD_OTP_OFF = 0x0 - MTD_OTP_USER = 0x2 - MTD_POWERUP_LOCK = 0x2000 - MTD_RAM = 0x1 - MTD_ROM = 0x2 - MTD_SLC_ON_MLC_EMULATION = 0x4000 - MTD_UBIVOLUME = 0x7 - MTD_WRITEABLE = 0x400 - 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 - NFC_ATR_REQ_GB_MAXSIZE = 0x30 - NFC_ATR_REQ_MAXSIZE = 0x40 - NFC_ATR_RES_GB_MAXSIZE = 0x2f - NFC_ATR_RES_MAXSIZE = 0x40 - NFC_ATS_MAXSIZE = 0x14 - NFC_COMM_ACTIVE = 0x0 - NFC_COMM_PASSIVE = 0x1 - NFC_DEVICE_NAME_MAXSIZE = 0x8 - NFC_DIRECTION_RX = 0x0 - NFC_DIRECTION_TX = 0x1 - NFC_FIRMWARE_NAME_MAXSIZE = 0x20 - NFC_GB_MAXSIZE = 0x30 - NFC_GENL_MCAST_EVENT_NAME = "events" - NFC_GENL_NAME = "nfc" - NFC_GENL_VERSION = 0x1 - NFC_HEADER_SIZE = 0x1 - NFC_ISO15693_UID_MAXSIZE = 0x8 - NFC_LLCP_MAX_SERVICE_NAME = 0x3f - NFC_LLCP_MIUX = 0x1 - NFC_LLCP_REMOTE_LTO = 0x3 - NFC_LLCP_REMOTE_MIU = 0x2 - NFC_LLCP_REMOTE_RW = 0x4 - NFC_LLCP_RW = 0x0 - NFC_NFCID1_MAXSIZE = 0xa - NFC_NFCID2_MAXSIZE = 0x8 - NFC_NFCID3_MAXSIZE = 0xa - NFC_PROTO_FELICA = 0x3 - NFC_PROTO_FELICA_MASK = 0x8 - NFC_PROTO_ISO14443 = 0x4 - NFC_PROTO_ISO14443_B = 0x6 - NFC_PROTO_ISO14443_B_MASK = 0x40 - NFC_PROTO_ISO14443_MASK = 0x10 - NFC_PROTO_ISO15693 = 0x7 - NFC_PROTO_ISO15693_MASK = 0x80 - NFC_PROTO_JEWEL = 0x1 - NFC_PROTO_JEWEL_MASK = 0x2 - NFC_PROTO_MAX = 0x8 - NFC_PROTO_MIFARE = 0x2 - NFC_PROTO_MIFARE_MASK = 0x4 - NFC_PROTO_NFC_DEP = 0x5 - NFC_PROTO_NFC_DEP_MASK = 0x20 - NFC_RAW_HEADER_SIZE = 0x2 - NFC_RF_INITIATOR = 0x0 - NFC_RF_NONE = 0x2 - NFC_RF_TARGET = 0x1 - NFC_SENSB_RES_MAXSIZE = 0xc - NFC_SENSF_RES_MAXSIZE = 0x12 - NFC_SE_DISABLED = 0x0 - NFC_SE_EMBEDDED = 0x2 - NFC_SE_ENABLED = 0x1 - NFC_SE_UICC = 0x1 - NFC_SOCKPROTO_LLCP = 0x1 - NFC_SOCKPROTO_MAX = 0x2 - NFC_SOCKPROTO_RAW = 0x0 - 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 = 0xd - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_HOOK = 0xc - 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 - NFT_BITWISE_BOOL = 0x0 - NFT_CHAIN_FLAGS = 0x7 - NFT_CHAIN_MAXNAMELEN = 0x100 - NFT_CT_MAX = 0x17 - NFT_DATA_RESERVED_MASK = 0xffffff00 - NFT_DATA_VALUE_MAXLEN = 0x40 - NFT_EXTHDR_OP_MAX = 0x4 - NFT_FIB_RESULT_MAX = 0x3 - NFT_INNER_MASK = 0xf - NFT_LOGLEVEL_MAX = 0x8 - NFT_NAME_MAXLEN = 0x100 - NFT_NG_MAX = 0x1 - NFT_OBJECT_CONNLIMIT = 0x5 - NFT_OBJECT_COUNTER = 0x1 - NFT_OBJECT_CT_EXPECT = 0x9 - NFT_OBJECT_CT_HELPER = 0x3 - NFT_OBJECT_CT_TIMEOUT = 0x7 - NFT_OBJECT_LIMIT = 0x4 - NFT_OBJECT_MAX = 0xa - NFT_OBJECT_QUOTA = 0x2 - NFT_OBJECT_SECMARK = 0x8 - NFT_OBJECT_SYNPROXY = 0xa - NFT_OBJECT_TUNNEL = 0x6 - NFT_OBJECT_UNSPEC = 0x0 - NFT_OBJ_MAXNAMELEN = 0x100 - NFT_OSF_MAXGENRELEN = 0x10 - NFT_QUEUE_FLAG_BYPASS = 0x1 - NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 - NFT_QUEUE_FLAG_MASK = 0x3 - NFT_REG32_COUNT = 0x10 - NFT_REG32_SIZE = 0x4 - NFT_REG_MAX = 0x4 - NFT_REG_SIZE = 0x10 - NFT_REJECT_ICMPX_MAX = 0x3 - NFT_RT_MAX = 0x4 - NFT_SECMARK_CTX_MAXLEN = 0x1000 - NFT_SET_MAXNAMELEN = 0x100 - NFT_SOCKET_MAX = 0x3 - NFT_TABLE_F_MASK = 0x7 - NFT_TABLE_MAXNAMELEN = 0x100 - NFT_TRACETYPE_MAX = 0x3 - NFT_TUNNEL_F_MASK = 0x7 - NFT_TUNNEL_MAX = 0x1 - NFT_TUNNEL_MODE_MAX = 0x2 - NFT_USERDATA_MAXLEN = 0x100 - NFT_XFRM_KEY_MAX = 0x6 - NF_NAT_RANGE_MAP_IPS = 0x1 - NF_NAT_RANGE_MASK = 0x7f - NF_NAT_RANGE_NETMAP = 0x40 - NF_NAT_RANGE_PERSISTENT = 0x8 - NF_NAT_RANGE_PROTO_OFFSET = 0x20 - NF_NAT_RANGE_PROTO_RANDOM = 0x4 - NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 - NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 - NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - 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_BULK = 0x200 - 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_IGNORE_OUTGOING = 0x4000 - 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 - PACKET_VNET_HDR_SZ = 0x18 - 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_ATTR_SIZE_VER7 = 0x80 - PERF_ATTR_SIZE_VER8 = 0x88 - PERF_AUX_FLAG_COLLISION = 0x8 - PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 - PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 - PERF_AUX_FLAG_OVERWRITE = 0x2 - PERF_AUX_FLAG_PARTIAL = 0x4 - PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 - PERF_AUX_FLAG_TRUNCATED = 0x1 - PERF_BRANCH_ENTRY_INFO_BITS_MAX = 0x21 - PERF_BR_ARM64_DEBUG_DATA = 0x7 - PERF_BR_ARM64_DEBUG_EXIT = 0x5 - PERF_BR_ARM64_DEBUG_HALT = 0x4 - PERF_BR_ARM64_DEBUG_INST = 0x6 - PERF_BR_ARM64_FIQ = 0x3 - PERF_FLAG_FD_CLOEXEC = 0x8 - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_HW_EVENT_MASK = 0xffffffff - PERF_MAX_CONTEXTS_PER_STACK = 0x8 - PERF_MAX_STACK_DEPTH = 0x7f - PERF_MEM_BLK_ADDR = 0x4 - PERF_MEM_BLK_DATA = 0x2 - PERF_MEM_BLK_NA = 0x1 - PERF_MEM_BLK_SHIFT = 0x28 - PERF_MEM_HOPS_0 = 0x1 - PERF_MEM_HOPS_1 = 0x2 - PERF_MEM_HOPS_2 = 0x3 - PERF_MEM_HOPS_3 = 0x4 - PERF_MEM_HOPS_SHIFT = 0x2b - PERF_MEM_LOCK_LOCKED = 0x2 - PERF_MEM_LOCK_NA = 0x1 - PERF_MEM_LOCK_SHIFT = 0x18 - PERF_MEM_LVLNUM_ANY_CACHE = 0xb - PERF_MEM_LVLNUM_CXL = 0x9 - PERF_MEM_LVLNUM_IO = 0xa - PERF_MEM_LVLNUM_L1 = 0x1 - PERF_MEM_LVLNUM_L2 = 0x2 - PERF_MEM_LVLNUM_L2_MHB = 0x5 - PERF_MEM_LVLNUM_L3 = 0x3 - PERF_MEM_LVLNUM_L4 = 0x4 - PERF_MEM_LVLNUM_LFB = 0xc - PERF_MEM_LVLNUM_MSC = 0x6 - PERF_MEM_LVLNUM_NA = 0xf - PERF_MEM_LVLNUM_PMEM = 0xe - PERF_MEM_LVLNUM_RAM = 0xd - PERF_MEM_LVLNUM_SHIFT = 0x21 - PERF_MEM_LVLNUM_UNC = 0x8 - 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_PEER = 0x2 - 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_PMU_TYPE_SHIFT = 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_BUILD_ID = 0x4000 - 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 - PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 - PID_FS_MAGIC = 0x50494446 - PIPEFS_MAGIC = 0x50495045 - PPPIOCGNPMODE = 0xc008744c - PPPIOCNEWUNIT = 0xc004743e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROCFS_IOCTL_MAGIC = 'f' - 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_AUXV = 0x41555856 - 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_MDWE = 0x42 - PR_GET_MEMORY_MERGE = 0x44 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SHADOW_STACK_STATUS = 0x4a - 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_LOCK_SHADOW_STACK_STATUS = 0x4c - 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_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 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_GET_ENABLED_KEYS = 0x3d - PR_PAC_RESET_KEYS = 0x36 - PR_PAC_SET_ENABLED_KEYS = 0x3c - PR_PMLEN_MASK = 0x7f000000 - PR_PMLEN_SHIFT = 0x18 - PR_PPC_DEXCR_CTRL_CLEAR = 0x4 - PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 - PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 - PR_PPC_DEXCR_CTRL_MASK = 0x1f - PR_PPC_DEXCR_CTRL_SET = 0x2 - PR_PPC_DEXCR_CTRL_SET_ONEXEC = 0x8 - PR_PPC_DEXCR_IBRTPD = 0x1 - PR_PPC_DEXCR_NPHIE = 0x3 - PR_PPC_DEXCR_SBHE = 0x0 - PR_PPC_DEXCR_SRAPD = 0x2 - PR_PPC_GET_DEXCR = 0x48 - PR_PPC_SET_DEXCR = 0x49 - PR_RISCV_CTX_SW_FENCEI_OFF = 0x1 - PR_RISCV_CTX_SW_FENCEI_ON = 0x0 - PR_RISCV_SCOPE_PER_PROCESS = 0x0 - PR_RISCV_SCOPE_PER_THREAD = 0x1 - PR_RISCV_SET_ICACHE_FLUSH_CTX = 0x47 - PR_RISCV_V_GET_CONTROL = 0x46 - PR_RISCV_V_SET_CONTROL = 0x45 - PR_RISCV_V_VSTATE_CTRL_CUR_MASK = 0x3 - PR_RISCV_V_VSTATE_CTRL_DEFAULT = 0x0 - PR_RISCV_V_VSTATE_CTRL_INHERIT = 0x10 - PR_RISCV_V_VSTATE_CTRL_MASK = 0x1f - PR_RISCV_V_VSTATE_CTRL_NEXT_MASK = 0xc - PR_RISCV_V_VSTATE_CTRL_OFF = 0x1 - PR_RISCV_V_VSTATE_CTRL_ON = 0x2 - PR_SCHED_CORE = 0x3e - PR_SCHED_CORE_CREATE = 0x1 - PR_SCHED_CORE_GET = 0x0 - PR_SCHED_CORE_MAX = 0x4 - PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 - PR_SCHED_CORE_SCOPE_THREAD = 0x0 - PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 - PR_SCHED_CORE_SHARE_FROM = 0x3 - PR_SCHED_CORE_SHARE_TO = 0x2 - 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_MDWE = 0x41 - PR_SET_MEMORY_MERGE = 0x43 - 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_SHADOW_STACK_STATUS = 0x4b - 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_SET_VMA = 0x53564d41 - PR_SET_VMA_ANON_NAME = 0x0 - PR_SHADOW_STACK_ENABLE = 0x1 - PR_SHADOW_STACK_PUSH = 0x4 - PR_SHADOW_STACK_WRITE = 0x2 - PR_SME_GET_VL = 0x40 - PR_SME_SET_VL = 0x3f - PR_SME_SET_VL_ONEXEC = 0x40000 - PR_SME_VL_INHERIT = 0x20000 - PR_SME_VL_LEN_MASK = 0xffff - 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_L1D_FLUSH = 0x2 - 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 - PTP_CLK_MAGIC = '=' - PTP_ENABLE_FEATURE = 0x1 - PTP_EXTTS_EDGES = 0x6 - PTP_EXTTS_EVENT_VALID = 0x1 - PTP_EXTTS_V1_VALID_FLAGS = 0x7 - PTP_EXTTS_VALID_FLAGS = 0x1f - PTP_EXT_OFFSET = 0x10 - PTP_FALLING_EDGE = 0x4 - PTP_MAX_SAMPLES = 0x19 - PTP_PEROUT_DUTY_CYCLE = 0x2 - PTP_PEROUT_ONE_SHOT = 0x1 - PTP_PEROUT_PHASE = 0x4 - PTP_PEROUT_V1_VALID_FLAGS = 0x0 - PTP_PEROUT_VALID_FLAGS = 0x7 - PTP_PIN_GETFUNC = 0xc0603d06 - PTP_PIN_GETFUNC2 = 0xc0603d0f - PTP_RISING_EDGE = 0x2 - PTP_STRICT_FLAGS = 0x8 - PTP_SYS_OFFSET_EXTENDED = 0xc4c03d09 - PTP_SYS_OFFSET_EXTENDED2 = 0xc4c03d12 - PTP_SYS_OFFSET_PRECISE = 0xc0403d08 - PTP_SYS_OFFSET_PRECISE2 = 0xc0403d11 - 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_RSEQ_CONFIGURATION = 0x420f - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 - 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_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 - 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 - P_ALL = 0x0 - P_PGID = 0x2 - P_PID = 0x1 - P_PIDFD = 0x3 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RAW_PAYLOAD_DIGITAL = 0x3 - RAW_PAYLOAD_HCI = 0x2 - RAW_PAYLOAD_LLCP = 0x0 - RAW_PAYLOAD_NCI = 0x1 - RAW_PAYLOAD_PROPRIETARY = 0x4 - 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 = 0x1f - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TCP_USEC_TS = 0x10 - 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 = 0x1f - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_BSM_DIRECT = 0x1 - RTC_BSM_DISABLED = 0x0 - RTC_BSM_LEVEL = 0x2 - RTC_BSM_STANDBY = 0x3 - RTC_FEATURE_ALARM = 0x0 - RTC_FEATURE_ALARM_RES_2S = 0x3 - RTC_FEATURE_ALARM_RES_MINUTE = 0x1 - RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7 - RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6 - RTC_FEATURE_CNT = 0x8 - RTC_FEATURE_CORRECTION = 0x5 - RTC_FEATURE_NEED_WEEK_DAY = 0x2 - RTC_FEATURE_UPDATE_INTERRUPT = 0x4 - RTC_IRQF = 0x80 - RTC_MAX_FREQ = 0x2000 - RTC_PARAM_BACKUP_SWITCH_MODE = 0x2 - RTC_PARAM_CORRECTION = 0x1 - RTC_PARAM_FEATURES = 0x0 - 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_DELANYCAST = 0x3d - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELLINKPROP = 0x6d - RTM_DELMDB = 0x55 - RTM_DELMULTICAST = 0x39 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNEXTHOPBUCKET = 0x75 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_DELTUNNEL = 0x79 - 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_OFFLOAD_FAILED = 0x20000000 - 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_GETNEXTHOPBUCKET = 0x76 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_GETTUNNEL = 0x7a - RTM_GETVLAN = 0x72 - RTM_MAX = 0x7b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWANYCAST = 0x3c - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWLINKPROP = 0x6c - RTM_NEWMDB = 0x54 - RTM_NEWMULTICAST = 0x38 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNEXTHOPBUCKET = 0x74 - 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_NEWTUNNEL = 0x78 - RTM_NEWVLAN = 0x70 - RTM_NR_FAMILIES = 0x1b - RTM_NR_MSGTYPES = 0x6c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTM_SETSTATS = 0x5f - 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_OPENR = 0x63 - 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_ATOMIC = 0x40 - RWF_DONTCACHE = 0x80 - RWF_DSYNC = 0x2 - RWF_HIPRI = 0x1 - RWF_NOAPPEND = 0x20 - RWF_NOWAIT = 0x8 - RWF_SUPPORTED = 0xff - RWF_SYNC = 0x4 - RWF_WRITE_LIFE_NOT_SET = 0x0 - SCHED_BATCH = 0x3 - SCHED_DEADLINE = 0x6 - SCHED_EXT = 0x7 - SCHED_FIFO = 0x1 - SCHED_FLAG_ALL = 0x7f - SCHED_FLAG_DL_OVERRUN = 0x4 - SCHED_FLAG_KEEP_ALL = 0x18 - SCHED_FLAG_KEEP_PARAMS = 0x10 - SCHED_FLAG_KEEP_POLICY = 0x8 - SCHED_FLAG_RECLAIM = 0x2 - SCHED_FLAG_RESET_ON_FORK = 0x1 - SCHED_FLAG_UTIL_CLAMP = 0x60 - SCHED_FLAG_UTIL_CLAMP_MAX = 0x40 - SCHED_FLAG_UTIL_CLAMP_MIN = 0x20 - SCHED_IDLE = 0x5 - SCHED_NORMAL = 0x0 - SCHED_RESET_ON_FORK = 0x40000000 - SCHED_RR = 0x2 - SCM_CREDENTIALS = 0x2 - SCM_PIDFD = 0x4 - SCM_RIGHTS = 0x1 - SCM_SECURITY = 0x3 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 - SECCOMP_ADDFD_FLAG_SEND = 0x2 - SECCOMP_ADDFD_FLAG_SETFD = 0x1 - SECCOMP_FILTER_FLAG_LOG = 0x2 - SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 - SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 - SECCOMP_FILTER_FLAG_TSYNC = 0x1 - SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 - SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 - SECCOMP_GET_ACTION_AVAIL = 0x2 - SECCOMP_GET_NOTIF_SIZES = 0x3 - SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 - SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 - SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECCOMP_RET_ACTION = 0x7fff0000 - SECCOMP_RET_ACTION_FULL = 0xffff0000 - SECCOMP_RET_ALLOW = 0x7fff0000 - SECCOMP_RET_DATA = 0xffff - SECCOMP_RET_ERRNO = 0x50000 - SECCOMP_RET_KILL = 0x0 - SECCOMP_RET_KILL_PROCESS = 0x80000000 - SECCOMP_RET_KILL_THREAD = 0x0 - SECCOMP_RET_LOG = 0x7ffc0000 - SECCOMP_RET_TRACE = 0x7ff00000 - SECCOMP_RET_TRAP = 0x30000 - SECCOMP_RET_USER_NOTIF = 0x7fc00000 - SECCOMP_SET_MODE_FILTER = 0x1 - SECCOMP_SET_MODE_STRICT = 0x0 - SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 - SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 - SEEK_DATA = 0x3 - SEEK_END = 0x2 - SEEK_HOLE = 0x4 - SEEK_MAX = 0x4 - SEEK_SET = 0x0 - 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 - SIOCKCMATTACH = 0x89e0 - SIOCKCMCLONE = 0x89e2 - SIOCKCMUNATTACH = 0x89e1 - 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 - SK_DIAG_BPF_STORAGE_MAX = 0x3 - SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1 - 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 - SMB2_SUPER_MAGIC = 0xfe534d42 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_BUF_LOCK_MASK = 0x3 - SOCK_DCCP = 0x6 - SOCK_DESTROY = 0x15 - SOCK_DIAG_BY_FAMILY = 0x14 - SOCK_IOC_TYPE = 0x89 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RCVBUF_LOCK = 0x2 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_SNDBUF_LOCK = 0x1 - SOCK_TXREHASH_DEFAULT = 0xff - SOCK_TXREHASH_DISABLED = 0x0 - SOCK_TXREHASH_ENABLED = 0x1 - 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_MCTP = 0x11d - SOL_MPTCP = 0x11c - 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_SMC = 0x11e - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 - SOL_VSOCK = 0x11f - 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_CONNECT_TIMEOUT_NEW = 0x8 - SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD = 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_ATTR_WRITE_ATOMIC = 0x400000 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_DIOALIGN = 0x2000 - STATX_DIO_READ_ALIGN = 0x20000 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MNT_ID = 0x1000 - STATX_MNT_ID_UNIQUE = 0x4000 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_SUBVOL = 0x8000 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX_WRITE_ATOMIC = 0x10000 - 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 = 0xf - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - 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_IFINDEX = 0x2 - 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_GSO_TCP = 0x100 - 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 - UBI_IOCECNFO = 0xc01c6f06 - UDF_SUPER_MAGIC = 0x15013346 - UDP_CORK = 0x1 - UDP_ENCAP = 0x64 - UDP_ENCAP_ESPINUDP = 0x2 - UDP_ENCAP_ESPINUDP_NON_IKE = 0x1 - UDP_ENCAP_GTP0 = 0x4 - UDP_ENCAP_GTP1U = 0x5 - UDP_ENCAP_L2TPINUDP = 0x3 - UDP_GRO = 0x68 - UDP_NO_CHECK6_RX = 0x66 - UDP_NO_CHECK6_TX = 0x65 - UDP_SEGMENT = 0x67 - UDP_V4_FLOW = 0x2 - UDP_V6_FLOW = 0x6 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VERASE = 0x2 - 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 - WGALLOWEDIP_A_MAX = 0x3 - WGDEVICE_A_MAX = 0x8 - WGPEER_A_MAX = 0xa - WG_CMD_MAX = 0x1 - WG_GENL_NAME = "wireguard" - WG_GENL_VERSION = 0x1 - WG_KEY_LEN = 0x20 - 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_PKT_CONTD = 0x1 - XDP_RING_NEED_WAKEUP = 0x1 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TXMD_FLAGS_CHECKSUM = 0x2 - XDP_TXMD_FLAGS_TIMESTAMP = 0x1 - XDP_TX_METADATA = 0x2 - 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_TX_METADATA_LEN = 0x4 - XDP_UMEM_TX_SW_CSUM = 0x2 - XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 - XDP_USE_NEED_WAKEUP = 0x8 - XDP_USE_SG = 0x10 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - ZONEFS_MAGIC = 0x5a4f4653 - _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 deleted file mode 100644 index a8c421e..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ /dev/null @@ -1,874 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ABOVE4G = 0x80 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc03c4d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go deleted file mode 100644 index 9a88d18..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ /dev/null @@ -1,874 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - MAP_32BIT = 0x40 - MAP_ABOVE4G = 0x80 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go deleted file mode 100644 index 7cb6a86..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ /dev/null @@ -1,879 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go deleted file mode 100644 index d0ecd2c..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ /dev/null @@ -1,876 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - ESR_MAGIC = 0x45535201 - EXTPROC = 0x10000 - EXTRA_MAGIC = 0x45585401 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPMR_MAGIC = 0x46504d52 - 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 - GCS_MAGIC = 0x47435300 - HIDIOCGRAWINFO = 0x80084803 - HIDIOCGRDESC = 0x90044802 - HIDIOCGRDESCSIZE = 0x80044801 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - POE_MAGIC = 0x504f4530 - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 - TPIDR2_MAGIC = 0x54504902 - 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 - ZA_MAGIC = 0x54366345 - ZT_MAGIC = 0x5a544e01 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go deleted file mode 100644 index 7a2940a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ /dev/null @@ -1,866 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000 - FF1 = 0x8000 - FFDLY = 0x8000 - FICLONE = 0x40049409 - FICLONERANGE = 0x4020940d - FLUSHO = 0x1000 - FPU_CTX_MAGIC = 0x46505501 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - ISIG = 0x1 - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 - LASX_CTX_MAGIC = 0x41535801 - LBT_CTX_MAGIC = 0x42540001 - LSX_CTX_MAGIC = 0x53580001 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go deleted file mode 100644 index d14ca8f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ /dev/null @@ -1,880 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go deleted file mode 100644 index 2da1bac..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ /dev/null @@ -1,880 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go deleted file mode 100644 index 2872751..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ /dev/null @@ -1,880 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go deleted file mode 100644 index 7f287b5..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ /dev/null @@ -1,880 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x100 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x80 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x7d) - EADDRNOTAVAIL = syscall.Errno(0x7e) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x7c) - EALREADY = syscall.Errno(0x95) - EBADE = syscall.Errno(0x32) - EBADFD = syscall.Errno(0x51) - EBADMSG = syscall.Errno(0x4d) - EBADR = syscall.Errno(0x33) - EBADRQC = syscall.Errno(0x36) - EBADSLT = syscall.Errno(0x37) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x9e) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x46d) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EHWPOISON = syscall.Errno(0xa8) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINIT = syscall.Errno(0x8d) - EINPROGRESS = syscall.Errno(0x96) - EISCONN = syscall.Errno(0x85) - EISNAM = syscall.Errno(0x8b) - EKEYEXPIRED = syscall.Errno(0xa2) - EKEYREJECTED = syscall.Errno(0xa4) - EKEYREVOKED = syscall.Errno(0xa3) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOOP = syscall.Errno(0x5a) - EMEDIUMTYPE = syscall.Errno(0xa0) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - ENAVAIL = syscall.Errno(0x8a) - ENETDOWN = syscall.Errno(0x7f) - ENETRESET = syscall.Errno(0x81) - ENETUNREACH = syscall.Errno(0x80) - ENOANO = syscall.Errno(0x35) - ENOBUFS = syscall.Errno(0x84) - ENOCSI = syscall.Errno(0x2b) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0xa1) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x9f) - ENOMSG = syscall.Errno(0x23) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x63) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x59) - ENOTCONN = syscall.Errno(0x86) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTNAM = syscall.Errno(0x89) - ENOTRECOVERABLE = syscall.Errno(0xa6) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x7a) - ENOTUNIQ = syscall.Errno(0x50) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0xa5) - EPFNOSUPPORT = syscall.Errno(0x7b) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x78) - EPROTOTYPE = syscall.Errno(0x62) - EREMCHG = syscall.Errno(0x52) - EREMDEV = syscall.Errno(0x8e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x8c) - ERESTART = syscall.Errno(0x5b) - ERFKILL = syscall.Errno(0xa7) - ESHUTDOWN = syscall.Errno(0x8f) - ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x97) - ESTRPIPE = syscall.Errno(0x5c) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x91) - ETOOMANYREFS = syscall.Errno(0x90) - EUCLEAN = syscall.Errno(0x87) - EUNATCH = syscall.Errno(0x2a) - EUSERS = syscall.Errno(0x5e) - EXFULL = syscall.Errno(0x34) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x16) - SIGPOLL = syscall.Signal(0x16) - SIGPROF = syscall.Signal(0x1d) - SIGPWR = syscall.Signal(0x13) - SIGSTOP = syscall.Signal(0x17) - SIGSYS = syscall.Signal(0xc) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) -) - -// 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "resource deadlock avoided"}, - {46, "ENOLCK", "no locks available"}, - {50, "EBADE", "invalid exchange"}, - {51, "EBADR", "invalid request descriptor"}, - {52, "EXFULL", "exchange full"}, - {53, "ENOANO", "no anode"}, - {54, "EBADRQC", "invalid request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "bad message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in too many shared libraries"}, - {87, "ELIBEXEC", "cannot exec a shared library directly"}, - {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {89, "ENOSYS", "function not implemented"}, - {90, "ELOOP", "too many levels of symbolic links"}, - {91, "ERESTART", "interrupted system call should be restarted"}, - {92, "ESTRPIPE", "streams pipe error"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "protocol not available"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "ENOTSUP", "operation not supported"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection on reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {135, "EUCLEAN", "structure needs cleaning"}, - {137, "ENOTNAM", "not a XENIX named type file"}, - {138, "ENAVAIL", "no XENIX semaphores available"}, - {139, "EISNAM", "is a named type file"}, - {140, "EREMOTEIO", "remote I/O error"}, - {141, "EINIT", "unknown error 141"}, - {142, "EREMDEV", "unknown error 142"}, - {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale file handle"}, - {158, "ECANCELED", "operation canceled"}, - {159, "ENOMEDIUM", "no medium found"}, - {160, "EMEDIUMTYPE", "wrong medium type"}, - {161, "ENOKEY", "required key not available"}, - {162, "EKEYEXPIRED", "key has expired"}, - {163, "EKEYREVOKED", "key has been revoked"}, - {164, "EKEYREJECTED", "key was rejected by service"}, - {165, "EOWNERDEAD", "owner died"}, - {166, "ENOTRECOVERABLE", "state not recoverable"}, - {167, "ERFKILL", "operation not possible due to RF-kill"}, - {168, "EHWPOISON", "memory page has hardware error"}, - {1133, "EDQUOT", "disk quota exceeded"}, -} - -// 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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, "SIGUSR1", "user defined signal 1"}, - {17, "SIGUSR2", "user defined signal 2"}, - {18, "SIGCHLD", "child exited"}, - {19, "SIGPWR", "power failure"}, - {20, "SIGWINCH", "window changed"}, - {21, "SIGURG", "urgent I/O condition"}, - {22, "SIGIO", "I/O possible"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual timer expired"}, - {29, "SIGPROF", "profiling timer expired"}, - {30, "SIGXCPU", "CPU time limit exceeded"}, - {31, "SIGXFSZ", "file size limit exceeded"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go deleted file mode 100644 index 7e5f9e6..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ /dev/null @@ -1,932 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - EPOLL_CLOEXEC = 0x80000 - EXTPROC = 0x10000000 - FF1 = 0x4000 - FFDLY = 0x4000 - FICLONE = 0x80049409 - FICLONERANGE = 0x8020940d - FLUSHO = 0x800000 - 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 = 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 = 0x40084803 - HIDIOCGRDESC = 0x50044802 - HIDIOCGRDESCSIZE = 0x40044801 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc00c4d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc00c4d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x20 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 = 0x10000 - 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 = 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 - PROT_SAO = 0x10 - PR_SET_PTRACER_ANY = 0xffffffff - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_FPR31 = 0x6e - PT_FPSCR = 0x71 - PT_LNK = 0x24 - PT_MQ = 0x27 - 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_TRAP = 0x28 - 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 = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 = 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 = 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 = 0x20 - XCASE = 0x4000 - XTABS = 0xc00 - _HIDIOCGRAWNAME = 0x40804804 - _HIDIOCGRAWPHYS = 0x40404805 - _HIDIOCGRAWUNIQ = 0x40404808 -) - -// Errors -const ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go deleted file mode 100644 index 37c8795..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ /dev/null @@ -1,936 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go deleted file mode 100644 index 5220133..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ /dev/null @@ -1,936 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x4000 - ICANON = 0x100 - IEXTEN = 0x400 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NL2 = 0x200 - NL3 = 0x300 - NLDLY = 0x300 - NOFLSH = 0x80000000 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x4 - ONLCR = 0x2 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x3a) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {58, "EDEADLOCK", "file locking deadlock error"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go deleted file mode 100644 index 4bfe2b5..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ /dev/null @@ -1,863 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xffffff0f - IPV6_FLOWLABEL_MASK = 0xffff0f00 - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - PTRACE_GETFDPIC = 0x21 - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go deleted file mode 100644 index e3cffb8..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ /dev/null @@ -1,935 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKDISCARD = 0x1277 - BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKIOMIN = 0x1278 - BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f - BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BLKZEROOUT = 0x127f - 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 - ECCGETLAYOUT = 0x81484d11 - ECCGETSTATS = 0x80104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EPIOCGPARAMS = 0x80088a02 - EPIOCSPARAMS = 0x40088a01 - 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 - HIDIOCREVOKE = 0x4004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x80000 - IN_NONBLOCK = 0x800 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x40084d02 - MEMERASE64 = 0x40104d14 - MEMGETBADBLOCK = 0x40084d0b - MEMGETINFO = 0x80204d01 - MEMGETOOBSEL = 0x80c84d0a - MEMGETREGIONCOUNT = 0x80044d07 - MEMISLOCKED = 0x80084d17 - MEMLOCK = 0x40084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x40084d0c - MEMUNLOCK = 0x40084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x4d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x8008b705 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_PID_FROM_PIDNS = 0x8004b706 - NS_GET_PID_IN_PIDNS = 0x8004b708 - NS_GET_TGID_FROM_PIDNS = 0x8004b707 - NS_GET_TGID_IN_PIDNS = 0x8004b709 - NS_GET_USERNS = 0xb701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x400c4d19 - OTPGETREGIONCOUNT = 0x40044d0e - OTPGETREGIONINFO = 0x400c4d0f - OTPLOCK = 0x800c4d10 - OTPSELECT = 0x80044d0d - 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 - PTP_CLOCK_GETCAPS = 0x80503d01 - PTP_CLOCK_GETCAPS2 = 0x80503d0a - PTP_ENABLE_PPS = 0x40043d04 - PTP_ENABLE_PPS2 = 0x40043d0d - PTP_EXTTS_REQUEST = 0x40103d02 - PTP_EXTTS_REQUEST2 = 0x40103d0b - PTP_MASK_CLEAR_ALL = 0x3d13 - PTP_MASK_EN_SINGLE = 0x40043d14 - PTP_PEROUT_REQUEST = 0x40383d03 - PTP_PEROUT_REQUEST2 = 0x40383d0c - PTP_PIN_SETFUNC = 0x40603d07 - PTP_PIN_SETFUNC2 = 0x40603d10 - PTP_SYS_OFFSET = 0x43403d05 - PTP_SYS_OFFSET2 = 0x43403d0e - 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_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - 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_PARAM_GET = 0x40187013 - RTC_PARAM_SET = 0x40187014 - 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_DEVMEM_DMABUF = 0x4f - SCM_DEVMEM_LINEAR = 0x4e - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TS_OPT_ID = 0x51 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - 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_BUF_LOCK = 0x48 - SO_BUSY_POLL = 0x2e - SO_BUSY_POLL_BUDGET = 0x46 - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DEVMEM_DMABUF = 0x4f - SO_DEVMEM_DONTNEED = 0x50 - SO_DEVMEM_LINEAR = 0x4e - 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_NETNS_COOKIE = 0x47 - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVMARK = 0x4b - SO_RCVPRIORITY = 0x52 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_RESERVE_MEM = 0x49 - 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_TXREHASH = 0x4a - 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 ( - EADDRINUSE = syscall.Errno(0x62) - EADDRNOTAVAIL = syscall.Errno(0x63) - EADV = syscall.Errno(0x44) - EAFNOSUPPORT = syscall.Errno(0x61) - EALREADY = syscall.Errno(0x72) - EBADE = syscall.Errno(0x34) - EBADFD = syscall.Errno(0x4d) - EBADMSG = syscall.Errno(0x4a) - EBADR = syscall.Errno(0x35) - EBADRQC = syscall.Errno(0x38) - EBADSLT = syscall.Errno(0x39) - EBFONT = syscall.Errno(0x3b) - ECANCELED = syscall.Errno(0x7d) - ECHRNG = syscall.Errno(0x2c) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x67) - ECONNREFUSED = syscall.Errno(0x6f) - ECONNRESET = syscall.Errno(0x68) - EDEADLK = syscall.Errno(0x23) - EDEADLOCK = syscall.Errno(0x23) - EDESTADDRREQ = syscall.Errno(0x59) - EDOTDOT = syscall.Errno(0x49) - EDQUOT = syscall.Errno(0x7a) - EHOSTDOWN = syscall.Errno(0x70) - EHOSTUNREACH = syscall.Errno(0x71) - EHWPOISON = syscall.Errno(0x85) - EIDRM = syscall.Errno(0x2b) - EILSEQ = syscall.Errno(0x54) - EINPROGRESS = syscall.Errno(0x73) - EISCONN = syscall.Errno(0x6a) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x7f) - EKEYREJECTED = syscall.Errno(0x81) - EKEYREVOKED = syscall.Errno(0x80) - EL2HLT = syscall.Errno(0x33) - EL2NSYNC = syscall.Errno(0x2d) - EL3HLT = syscall.Errno(0x2e) - EL3RST = syscall.Errno(0x2f) - ELIBACC = syscall.Errno(0x4f) - ELIBBAD = syscall.Errno(0x50) - ELIBEXEC = syscall.Errno(0x53) - ELIBMAX = syscall.Errno(0x52) - ELIBSCN = syscall.Errno(0x51) - ELNRNG = syscall.Errno(0x30) - ELOOP = syscall.Errno(0x28) - EMEDIUMTYPE = syscall.Errno(0x7c) - EMSGSIZE = syscall.Errno(0x5a) - EMULTIHOP = syscall.Errno(0x48) - ENAMETOOLONG = syscall.Errno(0x24) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x64) - ENETRESET = syscall.Errno(0x66) - ENETUNREACH = syscall.Errno(0x65) - ENOANO = syscall.Errno(0x37) - ENOBUFS = syscall.Errno(0x69) - ENOCSI = syscall.Errno(0x32) - ENODATA = syscall.Errno(0x3d) - ENOKEY = syscall.Errno(0x7e) - ENOLCK = syscall.Errno(0x25) - ENOLINK = syscall.Errno(0x43) - ENOMEDIUM = syscall.Errno(0x7b) - ENOMSG = syscall.Errno(0x2a) - ENONET = syscall.Errno(0x40) - ENOPKG = syscall.Errno(0x41) - ENOPROTOOPT = syscall.Errno(0x5c) - ENOSR = syscall.Errno(0x3f) - ENOSTR = syscall.Errno(0x3c) - ENOSYS = syscall.Errno(0x26) - ENOTCONN = syscall.Errno(0x6b) - ENOTEMPTY = syscall.Errno(0x27) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x83) - ENOTSOCK = syscall.Errno(0x58) - ENOTSUP = syscall.Errno(0x5f) - ENOTUNIQ = syscall.Errno(0x4c) - EOPNOTSUPP = syscall.Errno(0x5f) - EOVERFLOW = syscall.Errno(0x4b) - EOWNERDEAD = syscall.Errno(0x82) - EPFNOSUPPORT = syscall.Errno(0x60) - EPROTO = syscall.Errno(0x47) - EPROTONOSUPPORT = syscall.Errno(0x5d) - EPROTOTYPE = syscall.Errno(0x5b) - EREMCHG = syscall.Errno(0x4e) - EREMOTE = syscall.Errno(0x42) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x55) - ERFKILL = syscall.Errno(0x84) - ESHUTDOWN = syscall.Errno(0x6c) - ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESRMNT = syscall.Errno(0x45) - ESTALE = syscall.Errno(0x74) - ESTRPIPE = syscall.Errno(0x56) - ETIME = syscall.Errno(0x3e) - ETIMEDOUT = syscall.Errno(0x6e) - ETOOMANYREFS = syscall.Errno(0x6d) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x31) - EUSERS = syscall.Errno(0x57) - EXFULL = syscall.Errno(0x36) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0x7) - SIGCHLD = syscall.Signal(0x11) - SIGCLD = syscall.Signal(0x11) - SIGCONT = syscall.Signal(0x12) - SIGIO = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x1d) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1e) - SIGSTKFLT = syscall.Signal(0x10) - SIGSTOP = syscall.Signal(0x13) - SIGSYS = syscall.Signal(0x1f) - SIGTSTP = syscall.Signal(0x14) - SIGTTIN = syscall.Signal(0x15) - SIGTTOU = syscall.Signal(0x16) - SIGURG = syscall.Signal(0x17) - SIGUSR1 = syscall.Signal(0xa) - SIGUSR2 = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {35, "EDEADLK", "resource deadlock avoided"}, - {36, "ENAMETOOLONG", "file name too long"}, - {37, "ENOLCK", "no locks available"}, - {38, "ENOSYS", "function not implemented"}, - {39, "ENOTEMPTY", "directory not empty"}, - {40, "ELOOP", "too many levels of symbolic links"}, - {42, "ENOMSG", "no message of desired type"}, - {43, "EIDRM", "identifier removed"}, - {44, "ECHRNG", "channel number out of range"}, - {45, "EL2NSYNC", "level 2 not synchronized"}, - {46, "EL3HLT", "level 3 halted"}, - {47, "EL3RST", "level 3 reset"}, - {48, "ELNRNG", "link number out of range"}, - {49, "EUNATCH", "protocol driver not attached"}, - {50, "ENOCSI", "no CSI structure available"}, - {51, "EL2HLT", "level 2 halted"}, - {52, "EBADE", "invalid exchange"}, - {53, "EBADR", "invalid request descriptor"}, - {54, "EXFULL", "exchange full"}, - {55, "ENOANO", "no anode"}, - {56, "EBADRQC", "invalid request code"}, - {57, "EBADSLT", "invalid slot"}, - {59, "EBFONT", "bad font file format"}, - {60, "ENOSTR", "device not a stream"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of streams resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "EMULTIHOP", "multihop attempted"}, - {73, "EDOTDOT", "RFS specific error"}, - {74, "EBADMSG", "bad message"}, - {75, "EOVERFLOW", "value too large for defined data type"}, - {76, "ENOTUNIQ", "name not unique on network"}, - {77, "EBADFD", "file descriptor in bad state"}, - {78, "EREMCHG", "remote address changed"}, - {79, "ELIBACC", "can not access a needed shared library"}, - {80, "ELIBBAD", "accessing a corrupted shared library"}, - {81, "ELIBSCN", ".lib section in a.out corrupted"}, - {82, "ELIBMAX", "attempting to link in too many shared libraries"}, - {83, "ELIBEXEC", "cannot exec a shared library directly"}, - {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {85, "ERESTART", "interrupted system call should be restarted"}, - {86, "ESTRPIPE", "streams pipe error"}, - {87, "EUSERS", "too many users"}, - {88, "ENOTSOCK", "socket operation on non-socket"}, - {89, "EDESTADDRREQ", "destination address required"}, - {90, "EMSGSIZE", "message too long"}, - {91, "EPROTOTYPE", "protocol wrong type for socket"}, - {92, "ENOPROTOOPT", "protocol not available"}, - {93, "EPROTONOSUPPORT", "protocol not supported"}, - {94, "ESOCKTNOSUPPORT", "socket type not supported"}, - {95, "ENOTSUP", "operation not supported"}, - {96, "EPFNOSUPPORT", "protocol family not supported"}, - {97, "EAFNOSUPPORT", "address family not supported by protocol"}, - {98, "EADDRINUSE", "address already in use"}, - {99, "EADDRNOTAVAIL", "cannot assign requested address"}, - {100, "ENETDOWN", "network is down"}, - {101, "ENETUNREACH", "network is unreachable"}, - {102, "ENETRESET", "network dropped connection on reset"}, - {103, "ECONNABORTED", "software caused connection abort"}, - {104, "ECONNRESET", "connection reset by peer"}, - {105, "ENOBUFS", "no buffer space available"}, - {106, "EISCONN", "transport endpoint is already connected"}, - {107, "ENOTCONN", "transport endpoint is not connected"}, - {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {109, "ETOOMANYREFS", "too many references: cannot splice"}, - {110, "ETIMEDOUT", "connection timed out"}, - {111, "ECONNREFUSED", "connection refused"}, - {112, "EHOSTDOWN", "host is down"}, - {113, "EHOSTUNREACH", "no route to host"}, - {114, "EALREADY", "operation already in progress"}, - {115, "EINPROGRESS", "operation now in progress"}, - {116, "ESTALE", "stale file handle"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EDQUOT", "disk quota exceeded"}, - {123, "ENOMEDIUM", "no medium found"}, - {124, "EMEDIUMTYPE", "wrong medium type"}, - {125, "ECANCELED", "operation canceled"}, - {126, "ENOKEY", "required key not available"}, - {127, "EKEYEXPIRED", "key has expired"}, - {128, "EKEYREVOKED", "key has been revoked"}, - {129, "EKEYREJECTED", "key was rejected by service"}, - {130, "EOWNERDEAD", "owner died"}, - {131, "ENOTRECOVERABLE", "state not recoverable"}, - {132, "ERFKILL", "operation not possible due to RF-kill"}, - {133, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {7, "SIGBUS", "bus error"}, - {8, "SIGFPE", "floating point exception"}, - {9, "SIGKILL", "killed"}, - {10, "SIGUSR1", "user defined signal 1"}, - {11, "SIGSEGV", "segmentation fault"}, - {12, "SIGUSR2", "user defined signal 2"}, - {13, "SIGPIPE", "broken pipe"}, - {14, "SIGALRM", "alarm clock"}, - {15, "SIGTERM", "terminated"}, - {16, "SIGSTKFLT", "stack fault"}, - {17, "SIGCHLD", "child exited"}, - {18, "SIGCONT", "continued"}, - {19, "SIGSTOP", "stopped (signal)"}, - {20, "SIGTSTP", "stopped"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGURG", "urgent I/O condition"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGIO", "I/O possible"}, - {30, "SIGPWR", "power failure"}, - {31, "SIGSYS", "bad system call"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go deleted file mode 100644 index c219c8d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ /dev/null @@ -1,978 +0,0 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go - -package unix - -import "syscall" - -const ( - 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 - BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKDISCARD = 0x20001277 - BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKIOMIN = 0x20001278 - BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f - BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BLKZEROOUT = 0x2000127f - 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 - ECCGETLAYOUT = 0x41484d11 - ECCGETSTATS = 0x40104d12 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EFD_CLOEXEC = 0x400000 - EFD_NONBLOCK = 0x4000 - EMT_TAGOVF = 0x1 - EPIOCGPARAMS = 0x40088a02 - EPIOCSPARAMS = 0x80088a01 - 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 - HIDIOCREVOKE = 0x8004480d - HUPCL = 0x400 - ICANON = 0x2 - IEXTEN = 0x8000 - IN_CLOEXEC = 0x400000 - IN_NONBLOCK = 0x4000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPV6_FLOWINFO_MASK = 0xfffffff - IPV6_FLOWLABEL_MASK = 0xfffff - 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 - MEMERASE = 0x80084d02 - MEMERASE64 = 0x80104d14 - MEMGETBADBLOCK = 0x80084d0b - MEMGETINFO = 0x40204d01 - MEMGETOOBSEL = 0x40c84d0a - MEMGETREGIONCOUNT = 0x40044d07 - MEMISLOCKED = 0x40084d17 - MEMLOCK = 0x80084d05 - MEMREAD = 0xc0404d1a - MEMREADOOB = 0xc0104d04 - MEMSETBADBLOCK = 0x80084d0c - MEMUNLOCK = 0x80084d06 - MEMWRITEOOB = 0xc0104d03 - MTDFILEMODE = 0x20004d13 - NFDBITS = 0x40 - NLDLY = 0x100 - NOFLSH = 0x80 - NS_GET_MNTNS_ID = 0x4008b705 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_PID_FROM_PIDNS = 0x4004b706 - NS_GET_PID_IN_PIDNS = 0x4004b708 - NS_GET_TGID_FROM_PIDNS = 0x4004b707 - NS_GET_TGID_IN_PIDNS = 0x4004b709 - NS_GET_USERNS = 0x2000b701 - OLCUC = 0x2 - ONLCR = 0x4 - OTPERASE = 0x800c4d19 - OTPGETREGIONCOUNT = 0x80044d0e - OTPGETREGIONINFO = 0x800c4d0f - OTPLOCK = 0x400c4d10 - OTPSELECT = 0x40044d0d - 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 - PTP_CLOCK_GETCAPS = 0x40503d01 - PTP_CLOCK_GETCAPS2 = 0x40503d0a - PTP_ENABLE_PPS = 0x80043d04 - PTP_ENABLE_PPS2 = 0x80043d0d - PTP_EXTTS_REQUEST = 0x80103d02 - PTP_EXTTS_REQUEST2 = 0x80103d0b - PTP_MASK_CLEAR_ALL = 0x20003d13 - PTP_MASK_EN_SINGLE = 0x80043d14 - PTP_PEROUT_REQUEST = 0x80383d03 - PTP_PEROUT_REQUEST2 = 0x80383d0c - PTP_PIN_SETFUNC = 0x80603d07 - PTP_PIN_SETFUNC2 = 0x80603d10 - PTP_SYS_OFFSET = 0x83403d05 - PTP_SYS_OFFSET2 = 0x83403d0e - 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_PARAM_GET = 0x80187013 - RTC_PARAM_SET = 0x80187014 - 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_DEVMEM_DMABUF = 0x58 - SCM_DEVMEM_LINEAR = 0x57 - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPING_OPT_STATS = 0x38 - SCM_TIMESTAMPING_PKTINFO = 0x3c - SCM_TIMESTAMPNS = 0x21 - SCM_TS_OPT_ID = 0x5a - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 - SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 - SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 - SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 - SF_I0 = 0x20 - SF_I1 = 0x24 - SF_I2 = 0x28 - SF_I3 = 0x2c - SF_I4 = 0x30 - SF_I5 = 0x34 - SF_L0 = 0x0 - SF_L1 = 0x4 - SF_L2 = 0x8 - SF_L3 = 0xc - SF_L4 = 0x10 - SF_L5 = 0x14 - SF_L6 = 0x18 - SF_L7 = 0x1c - SF_PC = 0x3c - SF_RETP = 0x40 - SF_V9_FP = 0x70 - SF_V9_I0 = 0x40 - SF_V9_I1 = 0x48 - SF_V9_I2 = 0x50 - SF_V9_I3 = 0x58 - SF_V9_I4 = 0x60 - SF_V9_I5 = 0x68 - SF_V9_L0 = 0x0 - SF_V9_L1 = 0x8 - SF_V9_L2 = 0x10 - SF_V9_L3 = 0x18 - SF_V9_L4 = 0x20 - SF_V9_L5 = 0x28 - SF_V9_L6 = 0x30 - SF_V9_L7 = 0x38 - SF_V9_PC = 0x78 - SF_V9_RETP = 0x80 - SF_V9_XARG0 = 0x88 - SF_V9_XARG1 = 0x90 - SF_V9_XARG2 = 0x98 - SF_V9_XARG3 = 0xa0 - SF_V9_XARG4 = 0xa8 - SF_V9_XARG5 = 0xb0 - SF_V9_XXARG = 0xb8 - SF_XARG0 = 0x44 - SF_XARG1 = 0x48 - SF_XARG2 = 0x4c - SF_XARG3 = 0x50 - SF_XARG4 = 0x54 - SF_XARG5 = 0x58 - SF_XXARG = 0x5c - 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_BUF_LOCK = 0x51 - SO_BUSY_POLL = 0x30 - SO_BUSY_POLL_BUDGET = 0x49 - SO_CNX_ADVICE = 0x37 - SO_COOKIE = 0x3b - SO_DETACH_REUSEPORT_BPF = 0x47 - SO_DEVMEM_DMABUF = 0x58 - SO_DEVMEM_DONTNEED = 0x59 - SO_DEVMEM_LINEAR = 0x57 - 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_NETNS_COOKIE = 0x50 - SO_NOFCS = 0x27 - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSPIDFD = 0x55 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d - SO_PEERPIDFD = 0x56 - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x48 - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVMARK = 0x54 - SO_RCVPRIORITY = 0x5b - SO_RCVTIMEO = 0x2000 - SO_RCVTIMEO_NEW = 0x44 - SO_RCVTIMEO_OLD = 0x2000 - SO_RESERVE_MEM = 0x52 - 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_TXREHASH = 0x53 - 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 ( - EADDRINUSE = syscall.Errno(0x30) - EADDRNOTAVAIL = syscall.Errno(0x31) - EADV = syscall.Errno(0x53) - EAFNOSUPPORT = syscall.Errno(0x2f) - EALREADY = syscall.Errno(0x25) - EBADE = syscall.Errno(0x66) - EBADFD = syscall.Errno(0x5d) - EBADMSG = syscall.Errno(0x4c) - EBADR = syscall.Errno(0x67) - EBADRQC = syscall.Errno(0x6a) - EBADSLT = syscall.Errno(0x6b) - EBFONT = syscall.Errno(0x6d) - ECANCELED = syscall.Errno(0x7f) - ECHRNG = syscall.Errno(0x5e) - ECOMM = syscall.Errno(0x55) - ECONNABORTED = syscall.Errno(0x35) - ECONNREFUSED = syscall.Errno(0x3d) - ECONNRESET = syscall.Errno(0x36) - EDEADLK = syscall.Errno(0x4e) - EDEADLOCK = syscall.Errno(0x6c) - EDESTADDRREQ = syscall.Errno(0x27) - EDOTDOT = syscall.Errno(0x58) - EDQUOT = syscall.Errno(0x45) - EHOSTDOWN = syscall.Errno(0x40) - EHOSTUNREACH = syscall.Errno(0x41) - EHWPOISON = syscall.Errno(0x87) - EIDRM = syscall.Errno(0x4d) - EILSEQ = syscall.Errno(0x7a) - EINPROGRESS = syscall.Errno(0x24) - EISCONN = syscall.Errno(0x38) - EISNAM = syscall.Errno(0x78) - EKEYEXPIRED = syscall.Errno(0x81) - EKEYREJECTED = syscall.Errno(0x83) - EKEYREVOKED = syscall.Errno(0x82) - EL2HLT = syscall.Errno(0x65) - EL2NSYNC = syscall.Errno(0x5f) - EL3HLT = syscall.Errno(0x60) - EL3RST = syscall.Errno(0x61) - ELIBACC = syscall.Errno(0x72) - ELIBBAD = syscall.Errno(0x70) - ELIBEXEC = syscall.Errno(0x6e) - ELIBMAX = syscall.Errno(0x7b) - ELIBSCN = syscall.Errno(0x7c) - ELNRNG = syscall.Errno(0x62) - ELOOP = syscall.Errno(0x3e) - EMEDIUMTYPE = syscall.Errno(0x7e) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x57) - ENAMETOOLONG = syscall.Errno(0x3f) - ENAVAIL = syscall.Errno(0x77) - ENETDOWN = syscall.Errno(0x32) - ENETRESET = syscall.Errno(0x34) - ENETUNREACH = syscall.Errno(0x33) - ENOANO = syscall.Errno(0x69) - ENOBUFS = syscall.Errno(0x37) - ENOCSI = syscall.Errno(0x64) - ENODATA = syscall.Errno(0x6f) - ENOKEY = syscall.Errno(0x80) - ENOLCK = syscall.Errno(0x4f) - ENOLINK = syscall.Errno(0x52) - ENOMEDIUM = syscall.Errno(0x7d) - ENOMSG = syscall.Errno(0x4b) - ENONET = syscall.Errno(0x50) - ENOPKG = syscall.Errno(0x71) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSR = syscall.Errno(0x4a) - ENOSTR = syscall.Errno(0x48) - ENOSYS = syscall.Errno(0x5a) - ENOTCONN = syscall.Errno(0x39) - ENOTEMPTY = syscall.Errno(0x42) - ENOTNAM = syscall.Errno(0x76) - ENOTRECOVERABLE = syscall.Errno(0x85) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x2d) - ENOTUNIQ = syscall.Errno(0x73) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x5c) - EOWNERDEAD = syscall.Errno(0x84) - EPFNOSUPPORT = syscall.Errno(0x2e) - EPROCLIM = syscall.Errno(0x43) - EPROTO = syscall.Errno(0x56) - EPROTONOSUPPORT = syscall.Errno(0x2b) - EPROTOTYPE = syscall.Errno(0x29) - EREMCHG = syscall.Errno(0x59) - EREMOTE = syscall.Errno(0x47) - EREMOTEIO = syscall.Errno(0x79) - ERESTART = syscall.Errno(0x74) - ERFKILL = syscall.Errno(0x86) - ERREMOTE = syscall.Errno(0x51) - ESHUTDOWN = syscall.Errno(0x3a) - ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESRMNT = syscall.Errno(0x54) - ESTALE = syscall.Errno(0x46) - ESTRPIPE = syscall.Errno(0x5b) - ETIME = syscall.Errno(0x49) - ETIMEDOUT = syscall.Errno(0x3c) - ETOOMANYREFS = syscall.Errno(0x3b) - EUCLEAN = syscall.Errno(0x75) - EUNATCH = syscall.Errno(0x63) - EUSERS = syscall.Errno(0x44) - EXFULL = syscall.Errno(0x68) -) - -// Signals -const ( - SIGBUS = syscall.Signal(0xa) - SIGCHLD = syscall.Signal(0x14) - SIGCLD = syscall.Signal(0x14) - SIGCONT = syscall.Signal(0x13) - SIGEMT = syscall.Signal(0x7) - SIGIO = syscall.Signal(0x17) - SIGLOST = syscall.Signal(0x1d) - SIGPOLL = syscall.Signal(0x17) - SIGPROF = syscall.Signal(0x1b) - SIGPWR = syscall.Signal(0x1d) - SIGSTOP = syscall.Signal(0x11) - SIGSYS = syscall.Signal(0xc) - 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", "no such device or address"}, - {7, "E2BIG", "argument list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file descriptor"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "cannot allocate memory"}, - {13, "EACCES", "permission denied"}, - {14, "EFAULT", "bad address"}, - {15, "ENOTBLK", "block device required"}, - {16, "EBUSY", "device or resource busy"}, - {17, "EEXIST", "file exists"}, - {18, "EXDEV", "invalid cross-device link"}, - {19, "ENODEV", "no such 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", "numerical result out of range"}, - {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, "ENOTSUP", "operation not supported"}, - {46, "EPFNOSUPPORT", "protocol family not supported"}, - {47, "EAFNOSUPPORT", "address family not supported by protocol"}, - {48, "EADDRINUSE", "address already in use"}, - {49, "EADDRNOTAVAIL", "cannot 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", "transport endpoint is already connected"}, - {57, "ENOTCONN", "transport endpoint is not connected"}, - {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, - {59, "ETOOMANYREFS", "too many references: cannot splice"}, - {60, "ETIMEDOUT", "connection 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 file handle"}, - {71, "EREMOTE", "object is remote"}, - {72, "ENOSTR", "device not a stream"}, - {73, "ETIME", "timer expired"}, - {74, "ENOSR", "out of streams resources"}, - {75, "ENOMSG", "no message of desired type"}, - {76, "EBADMSG", "bad message"}, - {77, "EIDRM", "identifier removed"}, - {78, "EDEADLK", "resource deadlock avoided"}, - {79, "ENOLCK", "no locks available"}, - {80, "ENONET", "machine is not on the network"}, - {81, "ERREMOTE", "unknown error 81"}, - {82, "ENOLINK", "link has been severed"}, - {83, "EADV", "advertise error"}, - {84, "ESRMNT", "srmount error"}, - {85, "ECOMM", "communication error on send"}, - {86, "EPROTO", "protocol error"}, - {87, "EMULTIHOP", "multihop attempted"}, - {88, "EDOTDOT", "RFS specific error"}, - {89, "EREMCHG", "remote address changed"}, - {90, "ENOSYS", "function not implemented"}, - {91, "ESTRPIPE", "streams pipe error"}, - {92, "EOVERFLOW", "value too large for defined data type"}, - {93, "EBADFD", "file descriptor in bad state"}, - {94, "ECHRNG", "channel number out of range"}, - {95, "EL2NSYNC", "level 2 not synchronized"}, - {96, "EL3HLT", "level 3 halted"}, - {97, "EL3RST", "level 3 reset"}, - {98, "ELNRNG", "link number out of range"}, - {99, "EUNATCH", "protocol driver not attached"}, - {100, "ENOCSI", "no CSI structure available"}, - {101, "EL2HLT", "level 2 halted"}, - {102, "EBADE", "invalid exchange"}, - {103, "EBADR", "invalid request descriptor"}, - {104, "EXFULL", "exchange full"}, - {105, "ENOANO", "no anode"}, - {106, "EBADRQC", "invalid request code"}, - {107, "EBADSLT", "invalid slot"}, - {108, "EDEADLOCK", "file locking deadlock error"}, - {109, "EBFONT", "bad font file format"}, - {110, "ELIBEXEC", "cannot exec a shared library directly"}, - {111, "ENODATA", "no data available"}, - {112, "ELIBBAD", "accessing a corrupted shared library"}, - {113, "ENOPKG", "package not installed"}, - {114, "ELIBACC", "can not access a needed shared library"}, - {115, "ENOTUNIQ", "name not unique on network"}, - {116, "ERESTART", "interrupted system call should be restarted"}, - {117, "EUCLEAN", "structure needs cleaning"}, - {118, "ENOTNAM", "not a XENIX named type file"}, - {119, "ENAVAIL", "no XENIX semaphores available"}, - {120, "EISNAM", "is a named type file"}, - {121, "EREMOTEIO", "remote I/O error"}, - {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, - {123, "ELIBMAX", "attempting to link in too many shared libraries"}, - {124, "ELIBSCN", ".lib section in a.out corrupted"}, - {125, "ENOMEDIUM", "no medium found"}, - {126, "EMEDIUMTYPE", "wrong medium type"}, - {127, "ECANCELED", "operation canceled"}, - {128, "ENOKEY", "required key not available"}, - {129, "EKEYEXPIRED", "key has expired"}, - {130, "EKEYREVOKED", "key has been revoked"}, - {131, "EKEYREJECTED", "key was rejected by service"}, - {132, "EOWNERDEAD", "owner died"}, - {133, "ENOTRECOVERABLE", "state not recoverable"}, - {134, "ERFKILL", "operation not possible due to RF-kill"}, - {135, "EHWPOISON", "memory page has hardware 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/breakpoint trap"}, - {6, "SIGABRT", "aborted"}, - {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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {19, "SIGCONT", "continued"}, - {20, "SIGCHLD", "child exited"}, - {21, "SIGTTIN", "stopped (tty input)"}, - {22, "SIGTTOU", "stopped (tty output)"}, - {23, "SIGIO", "I/O possible"}, - {24, "SIGXCPU", "CPU time limit exceeded"}, - {25, "SIGXFSZ", "file size limit exceeded"}, - {26, "SIGVTALRM", "virtual timer expired"}, - {27, "SIGPROF", "profiling timer expired"}, - {28, "SIGWINCH", "window changed"}, - {29, "SIGLOST", "power failure"}, - {30, "SIGUSR1", "user defined signal 1"}, - {31, "SIGUSR2", "user defined signal 2"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go deleted file mode 100644 index 130085d..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ /dev/null @@ -1,1779 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - 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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - 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_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - EN_SW_CTL_INF = 0x1000 - EN_SW_CTL_PREC = 0x300 - EN_SW_CTL_ROUND = 0xc00 - EN_SW_DATACHAIN = 0x80 - EN_SW_DENORM = 0x2 - EN_SW_INVOP = 0x1 - EN_SW_OVERFLOW = 0x8 - EN_SW_PRECLOSS = 0x20 - EN_SW_UNDERFLOW = 0x10 - EN_SW_ZERODIV = 0x4 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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_VRRP = 0x70 - 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_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - 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_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - 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) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go deleted file mode 100644 index 84769a1..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ /dev/null @@ -1,1769 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - 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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - 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_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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_VRRP = 0x70 - 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_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - 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_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - 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) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go deleted file mode 100644 index 602ded0..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ /dev/null @@ -1,1758 +0,0 @@ -// mkerrors.sh -marm -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -marm _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0084277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x400c427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x800c427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80084272 - BIOCSUDPF = 0x80084273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CPUSTATES = 0x5 - CP_IDLE = 0x4 - CP_INTR = 0x3 - CP_NICE = 0x1 - CP_SYS = 0x2 - CP_USER = 0x0 - CREAD = 0x800 - CRTSCTS = 0x10000 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - 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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - 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_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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_VRRP = 0x70 - 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_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - 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_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PRI_IOFLUSH = 0x7c - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc01c697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0946920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0086926 - SIOCGIFDATA = 0xc0946985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0286936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc01c6987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc00c6978 - SIOCINITIFADDR = 0xc0446984 - SIOCSDRVSPEC = 0x801c697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8094691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x801c6988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0946986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x400c7458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x48087446 - TIOCPTSNAME = 0x48087448 - TIOCRCVFRAME = 0x80047445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80047444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - 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) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go deleted file mode 100644 index efc0406..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ /dev/null @@ -1,1769 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && netbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_APPLETALK = 0x10 - AF_ARP = 0x1c - AF_BLUETOOTH = 0x1f - 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_HYLINK = 0xf - AF_IEEE80211 = 0x20 - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x18 - AF_IPX = 0x17 - AF_ISDN = 0x1a - AF_ISO = 0x7 - AF_LAT = 0xe - AF_LINK = 0x12 - AF_LOCAL = 0x1 - AF_MAX = 0x23 - AF_MPLS = 0x21 - AF_NATM = 0x1b - AF_NS = 0x6 - AF_OROUTE = 0x11 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x22 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - ARPHRD_ARCNET = 0x7 - ARPHRD_ETHER = 0x1 - ARPHRD_FRELAY = 0xf - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_STRIP = 0x17 - 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 - B460800 = 0x70800 - B4800 = 0x12c0 - B50 = 0x32 - B57600 = 0xe100 - B600 = 0x258 - B7200 = 0x1c20 - B75 = 0x4b - B76800 = 0x12c00 - B921600 = 0xe1000 - B9600 = 0x2580 - BIOCFEEDBACK = 0x8004427d - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = 0xc0104277 - BIOCGETIF = 0x4090426b - BIOCGFEEDBACK = 0x4004427c - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044276 - BIOCSETF = 0x80104267 - BIOCSETIF = 0x8090426c - BIOCSFEEDBACK = 0x8004427d - BIOCSHDRCMPLT = 0x80044275 - BIOCSRTIMEOUT = 0x8010427a - BIOCSSEESENT = 0x80044279 - BIOCSTCPF = 0x80104272 - BIOCSUDPF = 0x80104273 - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x8 - BPF_ALIGNMENT32 = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - CLONE_CSIGNAL = 0xff - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_PID = 0x1000 - CLONE_PTRACE = 0x2000 - 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 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - CTL_HW = 0x6 - CTL_KERN = 0x1 - CTL_MAXNAME = 0xc - CTL_NET = 0x4 - CTL_QUERY = -0x2 - DIOCBSFLUSH = 0x20006478 - 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 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_AX25_KISS = 0xca - DLT_BACNET_MS_TP = 0xa5 - DLT_BLUETOOTH_HCI_H4 = 0xbb - DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 - DLT_CAN20B = 0xbe - DLT_CAN_SOCKETCAN = 0xe3 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_C_HDLC_WITH_DIR = 0xcd - DLT_DECT = 0xdd - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - 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 - DLT_FRELAY_WITH_DIR = 0xce - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_GSMTAP_ABIS = 0xda - DLT_GSMTAP_UM = 0xd9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IEEE802_15_4 = 0xc3 - DLT_IEEE802_15_4_LINUX = 0xbf - DLT_IEEE802_15_4_NONASK_PHY = 0xd7 - DLT_IEEE802_16_MAC_CPS = 0xbc - DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 - DLT_IPMB = 0xc7 - DLT_IPMB_LINUX = 0xd1 - DLT_IPNET = 0xe2 - DLT_IPV4 = 0xe4 - DLT_IPV6 = 0xe5 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_ISM = 0xc2 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_JUNIPER_ST = 0xc8 - DLT_JUNIPER_VP = 0xb7 - 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_MFR = 0xb6 - DLT_MOST = 0xd3 - DLT_MPLS = 0xdb - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPI = 0xc0 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_ETHER = 0x33 - DLT_PPP_PPPD = 0xa6 - DLT_PPP_SERIAL = 0x32 - DLT_PPP_WITH_DIR = 0xcc - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAIF1 = 0xc6 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SITA = 0xc4 - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - DLT_USB = 0xba - DLT_USB_LINUX = 0xbd - DLT_USB_LINUX_MMAPPED = 0xdc - DLT_WIHART = 0xdf - DLT_X2E_SERIAL = 0xd5 - DLT_X2E_XORAYA = 0xd6 - 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 - EMUL_LINUX = 0x1 - EMUL_LINUX32 = 0x5 - EMUL_MAXID = 0x6 - ETHERCAP_JUMBO_MTU = 0x4 - ETHERCAP_VLAN_HWTAGGING = 0x2 - ETHERCAP_VLAN_MTU = 0x1 - ETHERMIN = 0x2e - ETHERMTU = 0x5dc - ETHERMTU_JUMBO = 0x2328 - ETHERTYPE_8023 = 0x4 - ETHERTYPE_AARP = 0x80f3 - ETHERTYPE_ACCTON = 0x8390 - ETHERTYPE_AEONIC = 0x8036 - ETHERTYPE_ALPHA = 0x814a - ETHERTYPE_AMBER = 0x6008 - ETHERTYPE_AMOEBA = 0x8145 - 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_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_PCS = 0x4242 - ETHERTYPE_PLANNING = 0x8044 - ETHERTYPE_PPP = 0x880b - ETHERTYPE_PPPOE = 0x8864 - ETHERTYPE_PPPOEDISC = 0x8863 - ETHERTYPE_PRIMENTS = 0x7031 - ETHERTYPE_PUP = 0x200 - ETHERTYPE_PUPAT = 0x200 - 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_SLOWPROTOCOLS = 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_CRC_LEN = 0x4 - ETHER_CRC_POLY_BE = 0x4c11db6 - ETHER_CRC_POLY_LE = 0xedb88320 - ETHER_HDR_LEN = 0xe - ETHER_MAX_LEN = 0x5ee - ETHER_MAX_LEN_JUMBO = 0x233a - ETHER_MIN_LEN = 0x40 - ETHER_PPPOE_ENCAP_LEN = 0x8 - ETHER_TYPE_LEN = 0x2 - ETHER_VLAN_ENCAP_LEN = 0x4 - EVFILT_AIO = 0x2 - EVFILT_PROC = 0x4 - EVFILT_READ = 0x0 - EVFILT_SIGNAL = 0x5 - EVFILT_SYSCOUNT = 0x7 - EVFILT_TIMER = 0x6 - EVFILT_VNODE = 0x3 - EVFILT_WRITE = 0x1 - EV_ADD = 0x1 - EV_CLEAR = 0x20 - EV_DELETE = 0x2 - EV_DISABLE = 0x8 - EV_ENABLE = 0x4 - EV_EOF = 0x8000 - EV_ERROR = 0x4000 - EV_FLAG1 = 0x2000 - EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 - EXTA = 0x4b00 - EXTATTR_CMD_START = 0x1 - EXTATTR_CMD_STOP = 0x2 - EXTATTR_NAMESPACE_SYSTEM = 0x2 - EXTATTR_NAMESPACE_USER = 0x1 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x100 - FLUSHO = 0x800000 - F_CLOSEM = 0xa - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0xc - F_FSCTL = -0x80000000 - F_FSDIRMASK = 0x70000000 - F_FSIN = 0x10000000 - F_FSINOUT = 0x30000000 - F_FSOUT = 0x20000000 - F_FSPRIV = 0x8000 - F_FSVOID = 0x40000000 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0x7 - F_GETNOSIGPIPE = 0xd - F_GETOWN = 0x5 - F_MAXFD = 0xb - F_OK = 0x0 - F_PARAM_MASK = 0xfff - F_PARAM_MAX = 0xfff - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x8 - F_SETLKW = 0x9 - F_SETNOSIGPIPE = 0xe - 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 - IFA_ROUTE = 0x1 - IFF_ALLMULTI = 0x200 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x8f52 - IFF_DEBUG = 0x4 - IFF_LINK0 = 0x1000 - IFF_LINK1 = 0x2000 - IFF_LINK2 = 0x4000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x8000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_OACTIVE = 0x400 - IFF_POINTOPOINT = 0x10 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SIMPLEX = 0x800 - 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_BRIDGE = 0xd1 - IFT_BSC = 0x53 - IFT_CARP = 0xf8 - 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_DVBASILN = 0xac - IFT_DVBASIOUT = 0xad - IFT_DVBRCCDOWNSTREAM = 0x93 - IFT_DVBRCCMACLAYER = 0x92 - IFT_DVBRCCUPSTREAM = 0x94 - IFT_ECONET = 0xce - IFT_EON = 0x19 - IFT_EPLRS = 0x57 - IFT_ESCON = 0x49 - IFT_ETHER = 0x6 - IFT_FAITH = 0xf2 - 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_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_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 = 0xf1 - 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_STF = 0xd7 - 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 - IPPROTO_AH = 0x33 - IPPROTO_CARP = 0x70 - 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_IPV6_ICMP = 0x3a - IPPROTO_MAX = 0x100 - IPPROTO_MAXID = 0x34 - IPPROTO_MOBILE = 0x37 - 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_VRRP = 0x70 - 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_FRAGTTL = 0x78 - IPV6_HLIMDEC = 0x1 - IPV6_HOPLIMIT = 0x2f - IPV6_HOPOPTS = 0x31 - IPV6_IPSEC_POLICY = 0x1c - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_MAXHLIM = 0xff - IPV6_MAXPACKET = 0xffff - IPV6_MMTU = 0x500 - 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_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x25 - IPV6_RECVHOPOPTS = 0x27 - IPV6_RECVPATHMTU = 0x2b - IPV6_RECVPKTINFO = 0x24 - IPV6_RECVRTHDR = 0x26 - IPV6_RECVTCLASS = 0x39 - 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_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0xd - IP_EF = 0x8000 - IP_ERRORMTU = 0x15 - IP_HDRINCL = 0x2 - IP_IPSEC_POLICY = 0x16 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINFRAGSIZE = 0x45 - IP_MINTTL = 0x18 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_LOOP = 0xb - IP_MULTICAST_TTL = 0xa - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x1 - IP_PORTRANGE = 0x13 - IP_PORTRANGE_DEFAULT = 0x0 - IP_PORTRANGE_HIGH = 0x1 - IP_PORTRANGE_LOW = 0x2 - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTTL = 0x17 - IP_RETOPTS = 0x8 - IP_RF = 0x8000 - IP_TOS = 0x3 - IP_TTL = 0x4 - ISIG = 0x80 - ISTRIP = 0x20 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - KERN_HOSTNAME = 0xa - KERN_OSRELEASE = 0x2 - KERN_OSTYPE = 0x1 - KERN_VERSION = 0x4 - 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_ALIGNMENT_16MB = 0x18000000 - MAP_ALIGNMENT_1TB = 0x28000000 - MAP_ALIGNMENT_256TB = 0x30000000 - MAP_ALIGNMENT_4GB = 0x20000000 - MAP_ALIGNMENT_64KB = 0x10000000 - MAP_ALIGNMENT_64PB = 0x38000000 - MAP_ALIGNMENT_MASK = -0x1000000 - MAP_ALIGNMENT_SHIFT = 0x18 - MAP_ANON = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_HASSEMAPHORE = 0x200 - MAP_INHERIT = 0x80 - MAP_INHERIT_COPY = 0x1 - MAP_INHERIT_DEFAULT = 0x1 - MAP_INHERIT_DONATE_COPY = 0x3 - MAP_INHERIT_NONE = 0x2 - MAP_INHERIT_SHARE = 0x0 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x2000 - MAP_TRYFIXED = 0x400 - MAP_WIRED = 0x800 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_ASYNC = 0x40 - MNT_BASIC_FLAGS = 0xe782807f - MNT_DEFEXPORTED = 0x200 - MNT_DISCARD = 0x800000 - MNT_EXKERB = 0x800 - MNT_EXNORESPORT = 0x8000000 - MNT_EXPORTANON = 0x400 - MNT_EXPORTED = 0x100 - MNT_EXPUBLIC = 0x10000000 - MNT_EXRDONLY = 0x80 - MNT_EXTATTR = 0x1000000 - MNT_FORCE = 0x80000 - MNT_GETARGS = 0x400000 - MNT_IGNORE = 0x100000 - MNT_LAZY = 0x3 - MNT_LOCAL = 0x1000 - MNT_LOG = 0x2000000 - MNT_NOATIME = 0x4000000 - MNT_NOCOREDUMP = 0x8000 - MNT_NODEV = 0x10 - MNT_NODEVMTIME = 0x40000000 - MNT_NOEXEC = 0x4 - MNT_NOSUID = 0x8 - MNT_NOWAIT = 0x2 - MNT_OP_FLAGS = 0x4d0000 - MNT_QUOTA = 0x2000 - MNT_RDONLY = 0x1 - MNT_RELATIME = 0x20000 - MNT_RELOAD = 0x40000 - MNT_ROOTFS = 0x4000 - MNT_SOFTDEP = 0x80000000 - MNT_SYMPERM = 0x20000000 - MNT_SYNCHRONOUS = 0x2 - MNT_UNION = 0x20 - MNT_UPDATE = 0x10000 - MNT_VISFLAGMASK = 0xff90ffff - MNT_WAIT = 0x1 - MSG_BCAST = 0x100 - MSG_CMSG_CLOEXEC = 0x800 - MSG_CONTROLMBUF = 0x2000000 - MSG_CTRUNC = 0x20 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_EOR = 0x8 - MSG_IOVUSRSPACE = 0x4000000 - MSG_LENUSRSPACE = 0x8000000 - MSG_MCAST = 0x200 - MSG_NAMEMBUF = 0x1000000 - MSG_NBIO = 0x1000 - MSG_NOSIGNAL = 0x400 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x10 - MSG_USERFLAGS = 0xffffff - MSG_WAITALL = 0x40 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_SYNC = 0x4 - NAME_MAX = 0x1ff - NET_RT_DUMP = 0x1 - NET_RT_FLAGS = 0x2 - NET_RT_IFLIST = 0x5 - NET_RT_MAXID = 0x6 - NET_RT_OIFLIST = 0x4 - NET_RT_OOIFLIST = 0x3 - NFDBITS = 0x20 - NOFLSH = 0x80000000 - NOTE_ATTRIB = 0x8 - NOTE_CHILD = 0x4 - NOTE_DELETE = 0x1 - 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_WRITE = 0x2 - OCRNL = 0x10 - OFIOGETBMAP = 0xc004667a - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_ALT_IO = 0x40000 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x80000 - O_DIRECTORY = 0x200000 - O_DSYNC = 0x10000 - O_EXCL = 0x800 - O_EXLOCK = 0x20 - O_FSYNC = 0x80 - O_NDELAY = 0x4 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x100 - O_NONBLOCK = 0x4 - O_NOSIGPIPE = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x20000 - O_SHLOCK = 0x10 - O_SYNC = 0x80 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PARENB = 0x1000 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PRI_IOFLUSH = 0x7c - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0xa - 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_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_TAG = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_TAG = 0x100 - RTF_ANNOUNCE = 0x20000 - RTF_BLACKHOLE = 0x1000 - RTF_CLONED = 0x2000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SRC = 0x10000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0x15 - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_GET = 0x4 - RTM_IEEE80211 = 0x11 - RTM_IFANNOUNCE = 0x10 - RTM_IFINFO = 0x14 - RTM_LLINFO_UPD = 0x13 - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OIFINFO = 0xf - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_OOIFINFO = 0xe - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 - RTM_SETGATE = 0x12 - RTM_VERSION = 0x4 - RTV_EXPIRE = 0x4 - RTV_HOPCOUNT = 0x2 - RTV_MTU = 0x1 - RTV_RPIPE = 0x8 - RTV_RTT = 0x40 - RTV_RTTVAR = 0x80 - RTV_SPIPE = 0x10 - RTV_SSTHRESH = 0x20 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_CREDS = 0x4 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x8 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80906931 - SIOCADDRT = 0x8038720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691c - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80906932 - SIOCDELRT = 0x8038720b - SIOCDIFADDR = 0x80906919 - SIOCDIFPHYADDR = 0x80906949 - SIOCDLIFADDR = 0x8118691e - SIOCGDRVSPEC = 0xc028697b - SIOCGETPFSYNC = 0xc09069f8 - SIOCGETSGCNT = 0xc0207534 - SIOCGETVIFCNT = 0xc0287533 - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0906921 - SIOCGIFADDRPREF = 0xc0986920 - SIOCGIFALIAS = 0xc040691b - SIOCGIFBRDADDR = 0xc0906923 - SIOCGIFCAP = 0xc0206976 - SIOCGIFCONF = 0xc0106926 - SIOCGIFDATA = 0xc0986985 - SIOCGIFDLT = 0xc0906977 - SIOCGIFDSTADDR = 0xc0906922 - SIOCGIFFLAGS = 0xc0906911 - SIOCGIFGENERIC = 0xc090693a - SIOCGIFMEDIA = 0xc0306936 - SIOCGIFMETRIC = 0xc0906917 - SIOCGIFMTU = 0xc090697e - SIOCGIFNETMASK = 0xc0906925 - SIOCGIFPDSTADDR = 0xc0906948 - SIOCGIFPSRCADDR = 0xc0906947 - SIOCGLIFADDR = 0xc118691d - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLINKSTR = 0xc0286987 - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGVH = 0xc0906983 - SIOCIFCREATE = 0x8090697a - SIOCIFDESTROY = 0x80906979 - SIOCIFGCLONERS = 0xc0106978 - SIOCINITIFADDR = 0xc0706984 - SIOCSDRVSPEC = 0x8028697b - SIOCSETPFSYNC = 0x809069f7 - SIOCSHIWAT = 0x80047300 - SIOCSIFADDR = 0x8090690c - SIOCSIFADDRPREF = 0x8098691f - SIOCSIFBRDADDR = 0x80906913 - SIOCSIFCAP = 0x80206975 - SIOCSIFDSTADDR = 0x8090690e - SIOCSIFFLAGS = 0x80906910 - SIOCSIFGENERIC = 0x80906939 - SIOCSIFMEDIA = 0xc0906935 - SIOCSIFMETRIC = 0x80906918 - SIOCSIFMTU = 0x8090697f - SIOCSIFNETMASK = 0x80906916 - SIOCSIFPHYADDR = 0x80406946 - SIOCSLIFPHYADDR = 0x8118694a - SIOCSLINKSTR = 0x80286988 - SIOCSLOWAT = 0x80047302 - SIOCSPGRP = 0x80047308 - SIOCSVH = 0xc0906982 - SIOCZIFDATA = 0xc0986986 - SOCK_CLOEXEC = 0x10000000 - SOCK_DGRAM = 0x2 - SOCK_FLAGS_MASK = 0xf0000000 - SOCK_NONBLOCK = 0x20000000 - SOCK_NOSIGPIPE = 0x40000000 - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - SO_DEBUG = 0x1 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_NOHEADER = 0x100a - SO_NOSIGPIPE = 0x800 - SO_OOBINLINE = 0x100 - SO_OVERFLOWED = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x100c - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x100b - SO_TIMESTAMP = 0x2000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SYSCTL_VERSION = 0x1000000 - SYSCTL_VERS_0 = 0x0 - SYSCTL_VERS_1 = 0x1000000 - SYSCTL_VERS_MASK = 0xff000000 - S_ARCH1 = 0x10000 - S_ARCH2 = 0x20000 - 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_IFWHT = 0xe000 - 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 - S_LOGIN_SET = 0x1 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONGCTL = 0x20 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x3 - TCP_KEEPINIT = 0x7 - TCP_KEEPINTVL = 0x5 - TCP_MAXBURST = 0x4 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0x10 - TCP_MINMSS = 0xd8 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCSAFLUSH = 0x2 - TIOCCBRK = 0x2000747a - TIOCCDTR = 0x20007478 - TIOCCONS = 0x80047462 - TIOCDCDTIMESTAMP = 0x40107458 - TIOCDRAIN = 0x2000745e - TIOCEXCL = 0x2000740d - TIOCEXT = 0x80047460 - TIOCFLAG_CDTRCTS = 0x10 - TIOCFLAG_CLOCAL = 0x2 - TIOCFLAG_CRTSCTS = 0x4 - TIOCFLAG_MDMBUF = 0x8 - TIOCFLAG_SOFTCAR = 0x1 - TIOCFLUSH = 0x80047410 - TIOCGETA = 0x402c7413 - TIOCGETD = 0x4004741a - TIOCGFLAGS = 0x4004745d - TIOCGLINED = 0x40207442 - TIOCGPGRP = 0x40047477 - TIOCGQSIZE = 0x40047481 - TIOCGRANTPT = 0x20007447 - TIOCGSID = 0x40047463 - TIOCGSIZE = 0x40087468 - TIOCGWINSZ = 0x40087468 - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - 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 - TIOCPTMGET = 0x40287446 - TIOCPTSNAME = 0x40287448 - TIOCRCVFRAME = 0x80087445 - TIOCREMOTE = 0x80047469 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007461 - TIOCSDTR = 0x20007479 - TIOCSETA = 0x802c7414 - TIOCSETAF = 0x802c7416 - TIOCSETAW = 0x802c7415 - TIOCSETD = 0x8004741b - TIOCSFLAGS = 0x8004745c - TIOCSIG = 0x2000745f - TIOCSLINED = 0x80207443 - TIOCSPGRP = 0x80047476 - TIOCSQSIZE = 0x80047480 - TIOCSSIZE = 0x80087467 - TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCUCNTL = 0x80047466 - TIOCXMTFRAME = 0x80087444 - TOSTOP = 0x400000 - VDISCARD = 0xf - VDSUSP = 0xb - VEOF = 0x0 - VEOL = 0x1 - VEOL2 = 0x2 - VERASE = 0x3 - VINTR = 0x8 - VKILL = 0x5 - VLNEXT = 0xe - VMIN = 0x10 - VQUIT = 0x9 - VREPRINT = 0x6 - VSTART = 0xc - VSTATUS = 0x12 - VSTOP = 0xd - VSUSP = 0xa - VTIME = 0x11 - VWERASE = 0x4 - WALL = 0x8 - WALLSIG = 0x8 - WALTSIG = 0x4 - WCLONE = 0x4 - WCOREFLAG = 0x80 - WNOHANG = 0x1 - WNOWAIT = 0x10000 - WNOZOMBIE = 0x20000 - WOPTSCHECKED = 0x40000 - WSTOPPED = 0x7f - WUNTRACED = 0x2 -) - -// 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(0x58) - EBADRPC = syscall.Errno(0x48) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x57) - 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(0x52) - EILSEQ = syscall.Errno(0x55) - EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x60) - ELOOP = syscall.Errno(0x3e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x28) - EMULTIHOP = syscall.Errno(0x5e) - 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(0x5d) - ENOBUFS = syscall.Errno(0x37) - ENODATA = syscall.Errno(0x59) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) - ENOLCK = syscall.Errno(0x4d) - ENOLINK = syscall.Errno(0x5f) - ENOMEM = syscall.Errno(0xc) - ENOMSG = syscall.Errno(0x53) - ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) - ENOSR = syscall.Errno(0x5a) - ENOSTR = syscall.Errno(0x5b) - ENOSYS = syscall.Errno(0x4e) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x42) - ENOTSOCK = syscall.Errno(0x26) - ENOTSUP = syscall.Errno(0x56) - ENOTTY = syscall.Errno(0x19) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x2d) - EOVERFLOW = syscall.Errno(0x54) - 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(0x60) - 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) - ETIME = syscall.Errno(0x5c) - 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) - SIGPWR = syscall.Signal(0x20) - 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) - 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 or too small"}, - {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 option 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", "connection 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", "disc 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 prog. not avail"}, - {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, "EIDRM", "identifier removed"}, - {83, "ENOMSG", "no message of desired type"}, - {84, "EOVERFLOW", "value too large to be stored in data type"}, - {85, "EILSEQ", "illegal byte sequence"}, - {86, "ENOTSUP", "not supported"}, - {87, "ECANCELED", "operation Canceled"}, - {88, "EBADMSG", "bad or Corrupt message"}, - {89, "ENODATA", "no message available"}, - {90, "ENOSR", "no STREAM resources"}, - {91, "ENOSTR", "not a STREAM"}, - {92, "ETIME", "STREAM ioctl timeout"}, - {93, "ENOATTR", "attribute not found"}, - {94, "EMULTIHOP", "multihop attempted"}, - {95, "ENOLINK", "link has been severed"}, - {96, "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, "SIGIOT", "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", "stopped (signal)"}, - {18, "SIGTSTP", "stopped"}, - {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, "SIGPWR", "power fail/restart"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go deleted file mode 100644 index 5a6500f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m32 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m32 _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 = 0xc008427b - BIOCGETIF = 0x4020426b - BIOCGFILDROP = 0x40044278 - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x20004276 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDIRFILT = 0x8004427d - BIOCSDLT = 0x8004427a - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - BIOCSFILDROP = 0x80044279 - BIOCSHDRCMPLT = 0x80044275 - BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d - 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 = 0xc100445d - DIOCADDRULE = 0xccc84404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xccc8441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xccc84407 - DIOCGETRULES = 0xccc84406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc084444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0844450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 = 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x805c693c - SIOCBRDGADDL = 0x805c6949 - SIOCBRDGADDS = 0x805c6941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x805c693d - SIOCBRDGDELS = 0x805c6942 - SIOCBRDGFLUSH = 0x805c6948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc05c693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc05c6942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x805c6955 - SIOCBRDGSIFFLGS = 0x805c693f - SIOCBRDGSIFPRIO = 0x805c6954 - SIOCBRDGSIFPROT = 0x805c694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - 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 = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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 = 0x400c745b - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go deleted file mode 100644 index a5aeeb9..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 = 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go deleted file mode 100644 index 0e9748a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && openbsd - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- _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 = 0xc008427b - 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 = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x80084277 - 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 = 0xc100445d - DIOCADDRULE = 0xcce04404 - DIOCADDSTATE = 0xc1084425 - DIOCCHANGERULE = 0xcce0441a - DIOCCLRIFFLAG = 0xc024445a - DIOCCLRSRCNODES = 0x20004455 - DIOCCLRSTATES = 0xc0d04412 - DIOCCLRSTATUS = 0xc0244416 - DIOCGETLIMIT = 0xc0084427 - DIOCGETQSTATS = 0xc1084460 - DIOCGETQUEUE = 0xc100445f - DIOCGETQUEUES = 0xc100445e - DIOCGETRULE = 0xcce04407 - DIOCGETRULES = 0xcce04406 - DIOCGETRULESET = 0xc444443b - DIOCGETRULESETS = 0xc444443a - DIOCGETSRCNODES = 0xc0084454 - DIOCGETSTATE = 0xc1084413 - DIOCGETSTATES = 0xc0084419 - DIOCGETSTATUS = 0xc1e84415 - DIOCGETSYNFLWATS = 0xc0084463 - DIOCGETTIMEOUT = 0xc008441e - DIOCIGETIFACES = 0xc0244457 - DIOCKILLSRCNODES = 0xc068445b - DIOCKILLSTATES = 0xc0d04429 - DIOCNATLOOK = 0xc0504417 - DIOCOSFPADD = 0xc088444f - DIOCOSFPFLUSH = 0x2000444e - DIOCOSFPGET = 0xc0884450 - DIOCRADDADDRS = 0xc44c4443 - DIOCRADDTABLES = 0xc44c443d - DIOCRCLRADDRS = 0xc44c4442 - DIOCRCLRASTATS = 0xc44c4448 - DIOCRCLRTABLES = 0xc44c443c - DIOCRCLRTSTATS = 0xc44c4441 - DIOCRDELADDRS = 0xc44c4444 - DIOCRDELTABLES = 0xc44c443e - DIOCRGETADDRS = 0xc44c4446 - DIOCRGETASTATS = 0xc44c4447 - DIOCRGETTABLES = 0xc44c443f - DIOCRGETTSTATS = 0xc44c4440 - DIOCRINADEFINE = 0xc44c444d - DIOCRSETADDRS = 0xc44c4445 - DIOCRSETTFLAGS = 0xc44c444a - DIOCRTSTADDRS = 0xc44c4449 - DIOCSETDEBUG = 0xc0044418 - DIOCSETHOSTID = 0xc0044456 - DIOCSETIFFLAG = 0xc0244459 - DIOCSETLIMIT = 0xc0084428 - DIOCSETREASS = 0xc004445c - DIOCSETSTATUSIF = 0xc0244414 - DIOCSETSYNCOOKIES = 0xc0014462 - DIOCSETSYNFLWATS = 0xc0084461 - DIOCSETTIMEOUT = 0xc008441d - DIOCSTART = 0x20004401 - DIOCSTOP = 0x20004402 - DIOCXBEGIN = 0xc00c4451 - DIOCXCOMMIT = 0xc00c4452 - DIOCXROLLBACK = 0xc00c4453 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 = 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDMULTI = 0x80206931 - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8060693c - SIOCBRDGADDL = 0x80606949 - SIOCBRDGADDS = 0x80606941 - SIOCBRDGARL = 0x808c694d - SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8060693d - SIOCBRDGDELS = 0x80606942 - SIOCBRDGFLUSH = 0x80606948 - SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc028694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0186943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - SIOCDELLABEL = 0x80206997 - SIOCDELMULTI = 0x80206932 - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPARENT = 0x802069b4 - SIOCDIFPHYADDR = 0x80206949 - SIOCDPWE3NEIGHBOR = 0x802069de - SIOCDVNETID = 0x802069af - SIOCGETKALIVE = 0xc01869a4 - SIOCGETLABEL = 0x8020699a - SIOCGETMPWCFG = 0xc02069ae - SIOCGETPFLOW = 0xc02069fe - SIOCGETPFSYNC = 0xc02069f8 - SIOCGETSGCNT = 0xc0147534 - SIOCGETVIFCNT = 0xc0147533 - SIOCGETVLAN = 0xc0206990 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc020691b - SIOCGIFDESCR = 0xc0206981 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGATTR = 0xc024698b - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGLIST = 0xc024698d - SIOCGIFGMEMB = 0xc024698a - SIOCGIFGROUP = 0xc0246988 - SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFLLPRIO = 0xc02069b6 - SIOCGIFMEDIA = 0xc0386938 - 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 = 0xc00c6978 - SIOCSETKALIVE = 0x801869a3 - SIOCSETLABEL = 0x80206999 - SIOCSETMPWCFG = 0x802069ad - SIOCSETPFLOW = 0x802069fd - SIOCSETPFSYNC = 0x802069f7 - SIOCSETVLAN = 0x8020698f - SIOCSIFADDR = 0x8020690c - SIOCSIFBRDADDR = 0x80206913 - SIOCSIFDESCR = 0x80206980 - SIOCSIFDSTADDR = 0x8020690e - SIOCSIFFLAGS = 0x80206910 - SIOCSIFGATTR = 0x8024698c - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go deleted file mode 100644 index 4f4449a..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 = 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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, "SIGIOT", "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"}, - {28672, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go deleted file mode 100644 index 76a363f..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ /dev/null @@ -1,1905 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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, "SIGIOT", "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"}, - {81920, "SIGSTKSZ", "unknown signal"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go deleted file mode 100644 index 43ca0cd..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +++ /dev/null @@ -1,1904 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 - MSG_WAITFORONE = 0x1000 - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go deleted file mode 100644 index b1b8bb2..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +++ /dev/null @@ -1,1903 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && 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_F_DIR_IN = 0x10 - BPF_F_DIR_MASK = 0x30 - BPF_F_DIR_OUT = 0x20 - BPF_F_DIR_SHIFT = 0x4 - BPF_F_FLOWID = 0x8 - BPF_F_PRI_MASK = 0x7 - 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_RND = 0xc0 - 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 - ETH64_8021_RSVD_MASK = 0xfffffffffff0 - ETH64_8021_RSVD_PREFIX = 0x180c2000000 - 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_EAPOL = 0x888e - 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_NHRP = 0x2001 - ETHERTYPE_NOVELL = 0x8138 - ETHERTYPE_NS = 0x600 - ETHERTYPE_NSAT = 0x601 - ETHERTYPE_NSCOMPAT = 0x807 - ETHERTYPE_NSH = 0x984f - ETHERTYPE_NTRAILER = 0x10 - ETHERTYPE_OS9 = 0x7007 - ETHERTYPE_OS9NET = 0x7009 - ETHERTYPE_PACER = 0x80c6 - 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_EXCEPT = -0x9 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x9 - 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 = 0xf800 - 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_WIREGUARD = 0xfb - 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_SCTP = 0x84 - 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 = 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 - ITIMER_PROF = 0x2 - ITIMER_REAL = 0x0 - ITIMER_VIRTUAL = 0x1 - 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 - MOUNT_AFS = "afs" - MOUNT_CD9660 = "cd9660" - MOUNT_EXT2FS = "ext2fs" - MOUNT_FFS = "ffs" - MOUNT_FUSEFS = "fuse" - MOUNT_MFS = "mfs" - MOUNT_MSDOS = "msdos" - MOUNT_NCPFS = "ncpfs" - MOUNT_NFS = "nfs" - MOUNT_NTFS = "ntfs" - MOUNT_TMPFS = "tmpfs" - MOUNT_UDF = "udf" - MOUNT_UFS = "ffs" - 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 = 0x8 - NET_RT_SOURCE = 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_OOB = 0x4 - 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_SOURCE = 0x16 - 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 - SEEK_CUR = 0x1 - SEEK_END = 0x2 - SEEK_SET = 0x0 - 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 = 0xc0146941 - SIOCBRDGGFD = 0xc0146952 - SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0146950 - SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0606942 - SIOCBRDGRTS = 0xc0206943 - SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80146940 - SIOCBRDGSFD = 0x80146952 - SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80606955 - SIOCBRDGSIFFLGS = 0x8060693f - SIOCBRDGSIFPRIO = 0x80606954 - SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80146953 - SIOCBRDGSPRI = 0x80146950 - SIOCBRDGSPROTO = 0x8014695a - SIOCBRDGSTO = 0x80146945 - SIOCBRDGSTXHC = 0x80146959 - 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 - 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 - TCPOPT_EOL = 0x0 - TCPOPT_MAXSEG = 0x2 - TCPOPT_NOP = 0x1 - TCPOPT_SACK = 0x5 - TCPOPT_SACK_HDR = 0x1010500 - TCPOPT_SACK_PERMITTED = 0x4 - TCPOPT_SACK_PERMIT_HDR = 0x1010402 - TCPOPT_SIGNATURE = 0x13 - TCPOPT_TIMESTAMP = 0x8 - TCPOPT_TSTAMP_HDR = 0x101080a - TCPOPT_WINDOW = 0x3 - TCP_INFO = 0x9 - 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 deleted file mode 100644 index d2ddd31..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +++ /dev/null @@ -1,1556 +0,0 @@ -// mkerrors.sh -m64 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && solaris - -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -m64 _const.go - -package unix - -import "syscall" - -const ( - AF_802 = 0x12 - AF_APPLETALK = 0x10 - AF_CCITT = 0xa - AF_CHAOS = 0x5 - AF_DATAKIT = 0x9 - AF_DECnet = 0xc - AF_DLI = 0xd - AF_ECMA = 0x8 - AF_FILE = 0x1 - AF_GOSIP = 0x16 - AF_HYLINK = 0xf - AF_IMPLINK = 0x3 - AF_INET = 0x2 - AF_INET6 = 0x1a - AF_INET_OFFLOAD = 0x1e - AF_IPX = 0x17 - AF_KEY = 0x1b - AF_LAT = 0xe - AF_LINK = 0x19 - AF_LOCAL = 0x1 - AF_MAX = 0x20 - AF_NBS = 0x7 - AF_NCA = 0x1c - AF_NIT = 0x11 - AF_NS = 0x6 - AF_OSI = 0x13 - AF_OSINET = 0x15 - AF_PACKET = 0x20 - AF_POLICY = 0x1d - AF_PUP = 0x4 - AF_ROUTE = 0x18 - AF_SNA = 0xb - AF_TRILL = 0x1f - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_X25 = 0x14 - ARPHRD_ARCNET = 0x7 - ARPHRD_ATM = 0x10 - ARPHRD_AX25 = 0x3 - ARPHRD_CHAOS = 0x5 - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_FC = 0x12 - ARPHRD_FRAME = 0xf - ARPHRD_HDLC = 0x11 - ARPHRD_IB = 0x20 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IPATM = 0x13 - ARPHRD_METRICOM = 0x17 - ARPHRD_TUNNEL = 0x1f - B0 = 0x0 - B110 = 0x3 - B115200 = 0x12 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B153600 = 0x13 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B230400 = 0x14 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x15 - B38400 = 0xf - B460800 = 0x16 - B4800 = 0xc - B50 = 0x1 - B57600 = 0x10 - B600 = 0x8 - B75 = 0x2 - B76800 = 0x11 - B921600 = 0x17 - B9600 = 0xd - BIOCFLUSH = 0x20004268 - BIOCGBLEN = 0x40044266 - BIOCGDLT = 0x4004426a - BIOCGDLTLIST = -0x3fefbd89 - BIOCGDLTLIST32 = -0x3ff7bd89 - BIOCGETIF = 0x4020426b - BIOCGETLIF = 0x4078426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRTIMEOUT = 0x4010427b - BIOCGRTIMEOUT32 = 0x4008427b - BIOCGSEESENT = 0x40044278 - BIOCGSTATS = 0x4080426f - BIOCGSTATSOLD = 0x4008426f - BIOCIMMEDIATE = -0x7ffbbd90 - BIOCPROMISC = 0x20004269 - BIOCSBLEN = -0x3ffbbd9a - BIOCSDLT = -0x7ffbbd8a - BIOCSETF = -0x7fefbd99 - BIOCSETF32 = -0x7ff7bd99 - BIOCSETIF = -0x7fdfbd94 - BIOCSETLIF = -0x7f87bd94 - BIOCSHDRCMPLT = -0x7ffbbd8b - BIOCSRTIMEOUT = -0x7fefbd86 - BIOCSRTIMEOUT32 = -0x7ff7bd86 - BIOCSSEESENT = -0x7ffbbd87 - BIOCSTCPF = -0x7fefbd8e - BIOCSUDPF = -0x7fefbd8d - BIOCVERSION = 0x40044271 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALIGNMENT = 0x4 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DFLTBUFSIZE = 0x100000 - BPF_DIV = 0x30 - 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 = 0x1000000 - 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 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CBAUD = 0xf - CFLUSH = 0xf - CIBAUD = 0xf0000 - CLOCAL = 0x800 - CLOCK_HIGHRES = 0x4 - CLOCK_LEVEL = 0xa - CLOCK_MONOTONIC = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x5 - CLOCK_PROF = 0x2 - CLOCK_REALTIME = 0x3 - CLOCK_THREAD_CPUTIME_ID = 0x2 - CLOCK_VIRTUAL = 0x1 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x14 - CSTOP = 0x13 - 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 - DLT_ARCNET_LINUX = 0x81 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AURORA = 0x7e - DLT_AX25 = 0x3 - DLT_BACNET_MS_TP = 0xa5 - DLT_CHAOS = 0x5 - DLT_CISCO_IOS = 0x76 - DLT_C_HDLC = 0x68 - DLT_DOCSIS = 0x8f - DLT_ECONET = 0x73 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_ENC = 0x6d - DLT_ERF_ETH = 0xaf - DLT_ERF_POS = 0xb0 - DLT_FDDI = 0xa - DLT_FRELAY = 0x6b - DLT_GCOM_SERIAL = 0xad - DLT_GCOM_T1E1 = 0xac - DLT_GPF_F = 0xab - DLT_GPF_T = 0xaa - DLT_GPRS_LLC = 0xa9 - DLT_HDLC = 0x10 - DLT_HHDLC = 0x79 - DLT_HIPPI = 0xf - DLT_IBM_SN = 0x92 - DLT_IBM_SP = 0x91 - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_IPNET = 0xe2 - DLT_IPOIB = 0xa2 - DLT_IP_OVER_FC = 0x7a - DLT_JUNIPER_ATM1 = 0x89 - DLT_JUNIPER_ATM2 = 0x87 - DLT_JUNIPER_CHDLC = 0xb5 - DLT_JUNIPER_ES = 0x84 - DLT_JUNIPER_ETHER = 0xb2 - DLT_JUNIPER_FRELAY = 0xb4 - DLT_JUNIPER_GGSN = 0x85 - DLT_JUNIPER_MFR = 0x86 - DLT_JUNIPER_MLFR = 0x83 - DLT_JUNIPER_MLPPP = 0x82 - DLT_JUNIPER_MONITOR = 0xa4 - DLT_JUNIPER_PIC_PEER = 0xae - DLT_JUNIPER_PPP = 0xb3 - DLT_JUNIPER_PPPOE = 0xa7 - DLT_JUNIPER_PPPOE_ATM = 0xa8 - DLT_JUNIPER_SERVICES = 0x88 - DLT_LINUX_IRDA = 0x90 - DLT_LINUX_LAPD = 0xb1 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_LTALK = 0x72 - DLT_MTP2 = 0x8c - DLT_MTP2_WITH_PHDR = 0x8b - DLT_MTP3 = 0x8d - DLT_NULL = 0x0 - DLT_PCI_EXP = 0x7d - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0xe - DLT_PPP_PPPD = 0xa6 - DLT_PRISM_HEADER = 0x77 - DLT_PRONET = 0x4 - DLT_RAW = 0xc - DLT_RAWAF_MASK = 0x2240000 - DLT_RIO = 0x7c - DLT_SCCP = 0x8e - DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xd - DLT_SUNATM = 0x7b - DLT_SYMANTEC_FIREWALL = 0x63 - DLT_TZSP = 0x80 - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMPTY_SET = 0x0 - EMT_CPCOVF = 0x1 - EQUALITY_CHECK = 0x0 - EXTA = 0xe - EXTB = 0xf - FD_CLOEXEC = 0x1 - FD_NFDBITS = 0x40 - FD_SETSIZE = 0x10000 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FIORDCHK = 0x6603 - FLUSHALL = 0x1 - FLUSHDATA = 0x0 - FLUSHO = 0x2000 - F_ALLOCSP = 0xa - F_ALLOCSP64 = 0xa - F_BADFD = 0x2e - F_BLKSIZE = 0x13 - F_BLOCKS = 0x12 - F_CHKFL = 0x8 - F_COMPAT = 0x8 - F_DUP2FD = 0x9 - F_DUP2FD_CLOEXEC = 0x24 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x25 - F_FLOCK = 0x35 - F_FLOCK64 = 0x35 - F_FLOCKW = 0x36 - F_FLOCKW64 = 0x36 - F_FREESP = 0xb - F_FREESP64 = 0xb - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETXFL = 0x2d - F_HASREMOTELOCKS = 0x1a - F_ISSTREAM = 0xd - F_MANDDNY = 0x10 - F_MDACC = 0x20 - F_NODNY = 0x0 - F_NPRIV = 0x10 - F_OFD_GETLK = 0x2f - F_OFD_GETLK64 = 0x2f - F_OFD_SETLK = 0x30 - F_OFD_SETLK64 = 0x30 - F_OFD_SETLKW = 0x31 - F_OFD_SETLKW64 = 0x31 - F_PRIV = 0xf - F_QUOTACTL = 0x11 - F_RDACC = 0x1 - F_RDDNY = 0x1 - F_RDLCK = 0x1 - F_REVOKE = 0x19 - F_RMACC = 0x4 - F_RMDNY = 0x4 - F_RWACC = 0x3 - F_RWDNY = 0x3 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLK64_NBMAND = 0x2a - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETLK_NBMAND = 0x2a - F_SETOWN = 0x18 - F_SHARE = 0x28 - F_SHARE_NBMAND = 0x2b - F_UNLCK = 0x3 - F_UNLKSYS = 0x4 - F_UNSHARE = 0x29 - F_WRACC = 0x2 - F_WRDNY = 0x2 - F_WRLCK = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMP6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFF_ADDRCONF = 0x80000 - IFF_ALLMULTI = 0x200 - IFF_ANYCAST = 0x400000 - IFF_BROADCAST = 0x2 - IFF_CANTCHANGE = 0x7f203003b5a - IFF_COS_ENABLED = 0x200000000 - IFF_DEBUG = 0x4 - IFF_DEPRECATED = 0x40000 - IFF_DHCPRUNNING = 0x4000 - IFF_DUPLICATE = 0x4000000000 - IFF_FAILED = 0x10000000 - IFF_FIXEDMTU = 0x1000000000 - IFF_INACTIVE = 0x40000000 - IFF_INTELLIGENT = 0x400 - IFF_IPMP = 0x8000000000 - IFF_IPMP_CANTCHANGE = 0x10000000 - IFF_IPMP_INVALID = 0x1ec200080 - IFF_IPV4 = 0x1000000 - IFF_IPV6 = 0x2000000 - IFF_L3PROTECT = 0x40000000000 - IFF_LOOPBACK = 0x8 - IFF_MULTICAST = 0x800 - IFF_MULTI_BCAST = 0x1000 - IFF_NOACCEPT = 0x4000000 - IFF_NOARP = 0x80 - IFF_NOFAILOVER = 0x8000000 - IFF_NOLINKLOCAL = 0x20000000000 - IFF_NOLOCAL = 0x20000 - IFF_NONUD = 0x200000 - IFF_NORTEXCH = 0x800000 - IFF_NOTRAILERS = 0x20 - IFF_NOXMIT = 0x10000 - IFF_OFFLINE = 0x80000000 - IFF_POINTOPOINT = 0x10 - IFF_PREFERRED = 0x400000000 - IFF_PRIVATE = 0x8000 - IFF_PROMISC = 0x100 - IFF_ROUTER = 0x100000 - IFF_RUNNING = 0x40 - IFF_STANDBY = 0x20000000 - IFF_TEMPORARY = 0x800000000 - IFF_UNNUMBERED = 0x2000 - IFF_UP = 0x1 - IFF_VIRTUAL = 0x2000000000 - IFF_VRRP = 0x10000000000 - IFF_XRESOLV = 0x100000000 - IFNAMSIZ = 0x10 - IFT_1822 = 0x2 - IFT_6TO4 = 0xca - IFT_AAL5 = 0x31 - IFT_ARCNET = 0x23 - IFT_ARCNETPLUS = 0x24 - IFT_ATM = 0x25 - IFT_CEPT = 0x13 - IFT_DS3 = 0x1e - IFT_EON = 0x19 - IFT_ETHER = 0x6 - IFT_FDDI = 0xf - IFT_FRELAY = 0x20 - IFT_FRELAYDCE = 0x2c - IFT_HDH1822 = 0x3 - IFT_HIPPI = 0x2f - IFT_HSSI = 0x2e - IFT_HY = 0xe - IFT_IB = 0xc7 - IFT_IPV4 = 0xc8 - IFT_IPV6 = 0xc9 - IFT_ISDNBASIC = 0x14 - IFT_ISDNPRIMARY = 0x15 - IFT_ISO88022LLC = 0x29 - IFT_ISO88023 = 0x7 - IFT_ISO88024 = 0x8 - IFT_ISO88025 = 0x9 - IFT_ISO88026 = 0xa - IFT_LAPB = 0x10 - IFT_LOCALTALK = 0x2a - IFT_LOOP = 0x18 - IFT_MIOX25 = 0x26 - IFT_MODEM = 0x30 - IFT_NSIP = 0x1b - IFT_OTHER = 0x1 - IFT_P10 = 0xc - IFT_P80 = 0xd - IFT_PARA = 0x22 - IFT_PPP = 0x17 - IFT_PROPMUX = 0x36 - IFT_PROPVIRTUAL = 0x35 - IFT_PTPSERIAL = 0x16 - IFT_RS232 = 0x21 - IFT_SDLC = 0x11 - IFT_SIP = 0x1f - IFT_SLIP = 0x1c - IFT_SMDSDXI = 0x2b - IFT_SMDSICIP = 0x34 - IFT_SONET = 0x27 - IFT_SONETPATH = 0x32 - IFT_SONETVT = 0x33 - IFT_STARLAN = 0xb - IFT_T1 = 0x12 - IFT_ULTRA = 0x1d - IFT_V35 = 0x2d - IFT_X25 = 0x5 - IFT_X25DDN = 0x4 - IFT_X25PLE = 0x28 - IFT_XETHER = 0x1a - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_AUTOCONF_MASK = 0xffff0000 - IN_AUTOCONF_NET = 0xa9fe0000 - 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_CLASSE_NET = 0xffffffff - IN_LOOPBACKNET = 0x7f - IN_PRIVATE12_MASK = 0xfff00000 - IN_PRIVATE12_NET = 0xac100000 - IN_PRIVATE16_MASK = 0xffff0000 - IN_PRIVATE16_NET = 0xc0a80000 - IN_PRIVATE8_MASK = 0xff000000 - IN_PRIVATE8_NET = 0xa000000 - IPPROTO_AH = 0x33 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x4 - IPPROTO_EON = 0x50 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GGP = 0x3 - IPPROTO_HELLO = 0x3f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPV6 = 0x29 - IPPROTO_MAX = 0x100 - IPPROTO_ND = 0x4d - IPPROTO_NONE = 0x3b - IPPROTO_OSPF = 0x59 - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_UDP = 0x11 - IPV6_ADD_MEMBERSHIP = 0x9 - IPV6_BOUND_IF = 0x41 - IPV6_CHECKSUM = 0x18 - IPV6_DONTFRAG = 0x21 - IPV6_DROP_MEMBERSHIP = 0xa - IPV6_DSTOPTS = 0xf - IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 - IPV6_FLOWINFO_TCLASS = 0xf00f - IPV6_HOPLIMIT = 0xc - IPV6_HOPOPTS = 0xe - IPV6_JOIN_GROUP = 0x9 - IPV6_LEAVE_GROUP = 0xa - IPV6_MULTICAST_HOPS = 0x7 - IPV6_MULTICAST_IF = 0x6 - IPV6_MULTICAST_LOOP = 0x8 - IPV6_NEXTHOP = 0xd - IPV6_PAD1_OPT = 0x0 - IPV6_PATHMTU = 0x25 - IPV6_PKTINFO = 0xb - IPV6_PREFER_SRC_CGA = 0x20 - IPV6_PREFER_SRC_CGADEFAULT = 0x10 - IPV6_PREFER_SRC_CGAMASK = 0x30 - IPV6_PREFER_SRC_COA = 0x2 - IPV6_PREFER_SRC_DEFAULT = 0x15 - IPV6_PREFER_SRC_HOME = 0x1 - IPV6_PREFER_SRC_MASK = 0x3f - IPV6_PREFER_SRC_MIPDEFAULT = 0x1 - IPV6_PREFER_SRC_MIPMASK = 0x3 - IPV6_PREFER_SRC_NONCGA = 0x10 - IPV6_PREFER_SRC_PUBLIC = 0x4 - IPV6_PREFER_SRC_TMP = 0x8 - IPV6_PREFER_SRC_TMPDEFAULT = 0x4 - IPV6_PREFER_SRC_TMPMASK = 0xc - IPV6_RECVDSTOPTS = 0x28 - IPV6_RECVHOPLIMIT = 0x13 - IPV6_RECVHOPOPTS = 0x14 - IPV6_RECVPATHMTU = 0x24 - IPV6_RECVPKTINFO = 0x12 - IPV6_RECVRTHDR = 0x16 - IPV6_RECVRTHDRDSTOPTS = 0x17 - IPV6_RECVTCLASS = 0x19 - IPV6_RTHDR = 0x10 - IPV6_RTHDRDSTOPTS = 0x11 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_SEC_OPT = 0x22 - IPV6_SRC_PREFERENCES = 0x23 - IPV6_TCLASS = 0x26 - IPV6_UNICAST_HOPS = 0x5 - IPV6_UNSPEC_SRC = 0x42 - IPV6_USE_MIN_MTU = 0x20 - IPV6_V6ONLY = 0x27 - IP_ADD_MEMBERSHIP = 0x13 - IP_ADD_SOURCE_MEMBERSHIP = 0x17 - IP_BLOCK_SOURCE = 0x15 - IP_BOUND_IF = 0x41 - IP_BROADCAST = 0x106 - IP_BROADCAST_TTL = 0x43 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DHCPINIT_IF = 0x45 - IP_DONTFRAG = 0x1b - IP_DONTROUTE = 0x105 - IP_DROP_MEMBERSHIP = 0x14 - IP_DROP_SOURCE_MEMBERSHIP = 0x18 - IP_HDRINCL = 0x2 - IP_MAXPACKET = 0xffff - IP_MF = 0x2000 - IP_MSS = 0x240 - IP_MULTICAST_IF = 0x10 - IP_MULTICAST_LOOP = 0x12 - IP_MULTICAST_TTL = 0x11 - IP_NEXTHOP = 0x19 - IP_OPTIONS = 0x1 - IP_PKTINFO = 0x1a - IP_RECVDSTADDR = 0x7 - IP_RECVIF = 0x9 - IP_RECVOPTS = 0x5 - IP_RECVPKTINFO = 0x1a - IP_RECVRETOPTS = 0x6 - IP_RECVSLLA = 0xa - IP_RECVTOS = 0xc - IP_RECVTTL = 0xb - IP_RETOPTS = 0x8 - IP_REUSEADDR = 0x104 - IP_SEC_OPT = 0x22 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_UNBLOCK_SOURCE = 0x16 - IP_UNSPEC_SRC = 0x42 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_ACCESS_DEFAULT = 0x6 - MADV_ACCESS_LWP = 0x7 - MADV_ACCESS_MANY = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NORMAL = 0x0 - MADV_PURGE = 0x9 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80 - MAP_ALIGN = 0x200 - MAP_ANON = 0x100 - MAP_ANONYMOUS = 0x100 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_INITDATA = 0x800 - MAP_NORESERVE = 0x40 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - 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 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x80 - MSG_DUPCTRL = 0x800 - MSG_EOR = 0x8 - MSG_MAXIOVLEN = 0x10 - MSG_NOSIGNAL = 0x200 - MSG_NOTIFICATION = 0x100 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_TRUNC = 0x20 - MSG_WAITALL = 0x40 - MSG_XPG4_2 = 0x8000 - MS_ASYNC = 0x1 - MS_INVALIDATE = 0x2 - MS_OLDSYNC = 0x0 - MS_SYNC = 0x4 - M_FLUSH = 0x86 - NAME_MAX = 0xff - NEWDEV = 0x1 - NFDBITS = 0x40 - NL0 = 0x0 - NL1 = 0x100 - NLDLY = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - OLDDEV = 0x0 - ONBITSMAJOR = 0x7 - ONBITSMINOR = 0x8 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENFAIL = -0x1 - OPOST = 0x1 - O_ACCMODE = 0x600003 - O_APPEND = 0x8 - O_CLOEXEC = 0x800000 - O_CREAT = 0x100 - O_DIRECT = 0x2000000 - O_DIRECTORY = 0x1000000 - O_DSYNC = 0x40 - O_EXCL = 0x400 - O_EXEC = 0x400000 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x4 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NOLINKS = 0x40000 - O_NONBLOCK = 0x80 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x8000 - O_SEARCH = 0x200000 - O_SIOCGIFCONF = -0x3ff796ec - O_SIOCGLIFCONF = -0x3fef9688 - O_SYNC = 0x10 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - O_XATTR = 0x4000 - PARENB = 0x100 - PAREXT = 0x100000 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x5 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xfffffffffffffffd - RTAX_AUTHOR = 0x6 - RTAX_BRD = 0x7 - RTAX_DST = 0x0 - RTAX_GATEWAY = 0x1 - RTAX_GENMASK = 0x3 - RTAX_IFA = 0x5 - RTAX_IFP = 0x4 - RTAX_MAX = 0x9 - RTAX_NETMASK = 0x2 - RTAX_SRC = 0x8 - RTA_AUTHOR = 0x40 - RTA_BRD = 0x80 - RTA_DST = 0x1 - RTA_GATEWAY = 0x2 - RTA_GENMASK = 0x8 - RTA_IFA = 0x20 - RTA_IFP = 0x10 - RTA_NETMASK = 0x4 - RTA_NUMBITS = 0x9 - RTA_SRC = 0x100 - RTF_BLACKHOLE = 0x1000 - RTF_CLONING = 0x100 - RTF_DONE = 0x40 - RTF_DYNAMIC = 0x10 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INDIRECT = 0x40000 - RTF_KERNEL = 0x80000 - RTF_LLINFO = 0x400 - RTF_MASK = 0x80 - RTF_MODIFIED = 0x20 - RTF_MULTIRT = 0x10000 - RTF_PRIVATE = 0x2000 - RTF_PROTO1 = 0x8000 - RTF_PROTO2 = 0x4000 - RTF_REJECT = 0x8 - RTF_SETSRC = 0x20000 - RTF_STATIC = 0x800 - RTF_UP = 0x1 - RTF_XRESOLVE = 0x200 - RTF_ZONE = 0x100000 - RTM_ADD = 0x1 - RTM_CHANGE = 0x3 - RTM_CHGADDR = 0xf - RTM_DELADDR = 0xd - RTM_DELETE = 0x2 - RTM_FREEADDR = 0x10 - RTM_GET = 0x4 - RTM_IFINFO = 0xe - RTM_LOCK = 0x8 - RTM_LOSING = 0x5 - RTM_MISS = 0x7 - RTM_NEWADDR = 0xc - RTM_OLDADD = 0x9 - RTM_OLDDEL = 0xa - RTM_REDIRECT = 0x6 - RTM_RESOLVE = 0xb - RTM_VERSION = 0x3 - 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_AWARE = 0x1 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - SCM_RIGHTS = 0x1010 - SCM_TIMESTAMP = 0x1013 - SCM_UCRED = 0x1012 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIG2STR_MAX = 0x20 - SIOCADDMULTI = -0x7fdf96cf - SIOCADDRT = -0x7fcf8df6 - SIOCATMARK = 0x40047307 - SIOCDARP = -0x7fdb96e0 - SIOCDELMULTI = -0x7fdf96ce - SIOCDELRT = -0x7fcf8df5 - SIOCDXARP = -0x7fff9658 - SIOCGARP = -0x3fdb96e1 - SIOCGDSTINFO = -0x3fff965c - SIOCGENADDR = -0x3fdf96ab - SIOCGENPSTATS = -0x3fdf96c7 - SIOCGETLSGCNT = -0x3fef8deb - SIOCGETNAME = 0x40107334 - SIOCGETPEER = 0x40107335 - SIOCGETPROP = -0x3fff8f44 - SIOCGETSGCNT = -0x3feb8deb - SIOCGETSYNC = -0x3fdf96d3 - SIOCGETVIFCNT = -0x3feb8dec - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = -0x3fdf96f3 - SIOCGIFBRDADDR = -0x3fdf96e9 - SIOCGIFCONF = -0x3ff796a4 - SIOCGIFDSTADDR = -0x3fdf96f1 - SIOCGIFFLAGS = -0x3fdf96ef - SIOCGIFHWADDR = -0x3fdf9647 - SIOCGIFINDEX = -0x3fdf96a6 - SIOCGIFMEM = -0x3fdf96ed - SIOCGIFMETRIC = -0x3fdf96e5 - SIOCGIFMTU = -0x3fdf96ea - SIOCGIFMUXID = -0x3fdf96a8 - SIOCGIFNETMASK = -0x3fdf96e7 - SIOCGIFNUM = 0x40046957 - SIOCGIP6ADDRPOLICY = -0x3fff965e - SIOCGIPMSFILTER = -0x3ffb964c - SIOCGLIFADDR = -0x3f87968f - SIOCGLIFBINDING = -0x3f879666 - SIOCGLIFBRDADDR = -0x3f879685 - SIOCGLIFCONF = -0x3fef965b - SIOCGLIFDADSTATE = -0x3f879642 - SIOCGLIFDSTADDR = -0x3f87968d - SIOCGLIFFLAGS = -0x3f87968b - SIOCGLIFGROUPINFO = -0x3f4b9663 - SIOCGLIFGROUPNAME = -0x3f879664 - SIOCGLIFHWADDR = -0x3f879640 - SIOCGLIFINDEX = -0x3f87967b - SIOCGLIFLNKINFO = -0x3f879674 - SIOCGLIFMETRIC = -0x3f879681 - SIOCGLIFMTU = -0x3f879686 - SIOCGLIFMUXID = -0x3f87967d - SIOCGLIFNETMASK = -0x3f879683 - SIOCGLIFNUM = -0x3ff3967e - SIOCGLIFSRCOF = -0x3fef964f - SIOCGLIFSUBNET = -0x3f879676 - SIOCGLIFTOKEN = -0x3f879678 - SIOCGLIFUSESRC = -0x3f879651 - SIOCGLIFZONE = -0x3f879656 - SIOCGLOWAT = 0x40047303 - SIOCGMSFILTER = -0x3ffb964e - SIOCGPGRP = 0x40047309 - SIOCGSTAMP = -0x3fef9646 - SIOCGXARP = -0x3fff9659 - SIOCIFDETACH = -0x7fdf96c8 - SIOCILB = -0x3ffb9645 - SIOCLIFADDIF = -0x3f879691 - SIOCLIFDELND = -0x7f879673 - SIOCLIFGETND = -0x3f879672 - SIOCLIFREMOVEIF = -0x7f879692 - SIOCLIFSETND = -0x7f879671 - SIOCLOWER = -0x7fdf96d7 - SIOCSARP = -0x7fdb96e2 - SIOCSCTPGOPT = -0x3fef9653 - SIOCSCTPPEELOFF = -0x3ffb9652 - SIOCSCTPSOPT = -0x7fef9654 - SIOCSENABLESDP = -0x3ffb9649 - SIOCSETPROP = -0x7ffb8f43 - SIOCSETSYNC = -0x7fdf96d4 - SIOCSHIWAT = -0x7ffb8d00 - SIOCSIFADDR = -0x7fdf96f4 - SIOCSIFBRDADDR = -0x7fdf96e8 - SIOCSIFDSTADDR = -0x7fdf96f2 - SIOCSIFFLAGS = -0x7fdf96f0 - SIOCSIFINDEX = -0x7fdf96a5 - SIOCSIFMEM = -0x7fdf96ee - SIOCSIFMETRIC = -0x7fdf96e4 - SIOCSIFMTU = -0x7fdf96eb - SIOCSIFMUXID = -0x7fdf96a7 - SIOCSIFNAME = -0x7fdf96b7 - SIOCSIFNETMASK = -0x7fdf96e6 - SIOCSIP6ADDRPOLICY = -0x7fff965d - SIOCSIPMSFILTER = -0x7ffb964b - SIOCSLGETREQ = -0x3fdf96b9 - SIOCSLIFADDR = -0x7f879690 - SIOCSLIFBRDADDR = -0x7f879684 - SIOCSLIFDSTADDR = -0x7f87968e - SIOCSLIFFLAGS = -0x7f87968c - SIOCSLIFGROUPNAME = -0x7f879665 - SIOCSLIFINDEX = -0x7f87967a - SIOCSLIFLNKINFO = -0x7f879675 - SIOCSLIFMETRIC = -0x7f879680 - SIOCSLIFMTU = -0x7f879687 - SIOCSLIFMUXID = -0x7f87967c - SIOCSLIFNAME = -0x3f87967f - SIOCSLIFNETMASK = -0x7f879682 - SIOCSLIFPREFIX = -0x3f879641 - SIOCSLIFSUBNET = -0x7f879677 - SIOCSLIFTOKEN = -0x7f879679 - SIOCSLIFUSESRC = -0x7f879650 - SIOCSLIFZONE = -0x7f879655 - SIOCSLOWAT = -0x7ffb8cfe - SIOCSLSTAT = -0x7fdf96b8 - SIOCSMSFILTER = -0x7ffb964d - SIOCSPGRP = -0x7ffb8cf8 - SIOCSPROMISC = -0x7ffb96d0 - SIOCSQPTR = -0x3ffb9648 - SIOCSSDSTATS = -0x3fdf96d2 - SIOCSSESTATS = -0x3fdf96d1 - SIOCSXARP = -0x7fff965a - SIOCTMYADDR = -0x3ff79670 - SIOCTMYSITE = -0x3ff7966e - SIOCTONLINK = -0x3ff7966f - SIOCUPPER = -0x7fdf96d8 - SIOCX25RCV = -0x3fdf96c4 - SIOCX25TBL = -0x3fdf96c3 - SIOCX25XMT = -0x3fdf96c5 - SIOCXPROTO = 0x20007337 - SOCK_CLOEXEC = 0x80000 - SOCK_DGRAM = 0x1 - SOCK_NDELAY = 0x200000 - SOCK_NONBLOCK = 0x100000 - SOCK_RAW = 0x4 - SOCK_RDM = 0x5 - SOCK_SEQPACKET = 0x6 - SOCK_STREAM = 0x2 - SOCK_TYPE_MASK = 0xffff - SOL_FILTER = 0xfffc - SOL_PACKET = 0xfffd - SOL_ROUTE = 0xfffe - SOL_SOCKET = 0xffff - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x2 - SO_ALL = 0x3f - SO_ALLZONES = 0x1014 - SO_ANON_MLP = 0x100a - SO_ATTACH_FILTER = 0x40000001 - SO_BAND = 0x4000 - SO_BROADCAST = 0x20 - SO_COPYOPT = 0x80000 - SO_DEBUG = 0x1 - SO_DELIM = 0x8000 - SO_DETACH_FILTER = 0x40000002 - SO_DGRAM_ERRIND = 0x200 - SO_DOMAIN = 0x100c - SO_DONTLINGER = -0x81 - SO_DONTROUTE = 0x10 - SO_ERROPT = 0x40000 - SO_ERROR = 0x1007 - SO_EXCLBIND = 0x1015 - SO_HIWAT = 0x10 - SO_ISNTTY = 0x800 - SO_ISTTY = 0x400 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOWAT = 0x20 - SO_MAC_EXEMPT = 0x100b - SO_MAC_IMPLICIT = 0x1016 - SO_MAXBLK = 0x100000 - SO_MAXPSZ = 0x8 - SO_MINPSZ = 0x4 - SO_MREADOFF = 0x80 - SO_MREADON = 0x40 - SO_NDELOFF = 0x200 - SO_NDELON = 0x100 - SO_NODELIM = 0x10000 - SO_OOBINLINE = 0x100 - SO_PROTOTYPE = 0x1009 - SO_RCVBUF = 0x1002 - SO_RCVLOWAT = 0x1004 - SO_RCVPSH = 0x100d - SO_RCVTIMEO = 0x1006 - SO_READOPT = 0x1 - SO_RECVUCRED = 0x400 - SO_REUSEADDR = 0x4 - SO_SECATTR = 0x1011 - SO_SNDBUF = 0x1001 - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_STRHOLD = 0x20000 - SO_TAIL = 0x200000 - SO_TIMESTAMP = 0x1013 - SO_TONSTOP = 0x2000 - SO_TOSTOP = 0x1000 - SO_TYPE = 0x1008 - SO_USELOOPBACK = 0x40 - SO_VRRP = 0x1017 - SO_WROFF = 0x2 - S_ENFMT = 0x400 - S_IAMB = 0x1ff - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFDOOR = 0xd000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFNAM = 0x5000 - S_IFPORT = 0xe000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_INSEM = 0x1 - S_INSHD = 0x2 - 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 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - 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 - TCP_EXCLBIND = 0x21 - TCP_INIT_CWND = 0x15 - TCP_KEEPALIVE = 0x8 - TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 - TCP_KEEPALIVE_THRESHOLD = 0x16 - TCP_KEEPCNT = 0x23 - TCP_KEEPIDLE = 0x22 - TCP_KEEPINTVL = 0x24 - TCP_LINGER2 = 0x1c - TCP_MAXSEG = 0x2 - TCP_MSS = 0x218 - TCP_NODELAY = 0x1 - TCP_NOTIFY_THRESHOLD = 0x10 - TCP_RECVDSTADDR = 0x14 - TCP_RTO_INITIAL = 0x19 - TCP_RTO_MAX = 0x1b - TCP_RTO_MIN = 0x1a - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETSF = 0x5410 - TCSETSW = 0x540f - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIMER_RELTIME = 0x0 - TIOC = 0x5400 - TIOCCBRK = 0x747a - TIOCCDTR = 0x7478 - TIOCCILOOP = 0x746c - TIOCEXCL = 0x740d - TIOCFLUSH = 0x7410 - TIOCGETC = 0x7412 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x7414 - TIOCGPPS = 0x547d - TIOCGPPSEV = 0x547f - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5469 - TIOCGWINSZ = 0x5468 - TIOCHPCL = 0x7402 - TIOCKBOF = 0x5409 - TIOCKBON = 0x5408 - TIOCLBIC = 0x747e - TIOCLBIS = 0x747f - TIOCLGET = 0x747c - TIOCLSET = 0x747d - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMSET = 0x741a - 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 = 0x7471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7473 - TIOCREMOTE = 0x741e - TIOCSBRK = 0x747b - TIOCSCTTY = 0x7484 - TIOCSDTR = 0x7479 - TIOCSETC = 0x7411 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIGNAL = 0x741f - TIOCSILOOP = 0x746d - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x7415 - TIOCSPPS = 0x547e - TIOCSSOFTCAR = 0x546a - TIOCSTART = 0x746e - TIOCSTI = 0x7417 - TIOCSTOP = 0x746f - TIOCSWINSZ = 0x5467 - TOSTOP = 0x100 - UTIME_NOW = -0x1 - UTIME_OMIT = -0x2 - VCEOF = 0x8 - VCEOL = 0x9 - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VERASE2 = 0x11 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTATUS = 0x10 - VSTOP = 0x9 - VSUSP = 0xa - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WCONTFLG = 0xffff - WCONTINUED = 0x8 - WCOREFLG = 0x80 - WEXITED = 0x1 - WNOHANG = 0x40 - WNOWAIT = 0x80 - WOPTMASK = 0xcf - WRAP = 0x20000 - WSIGMASK = 0x7f - WSTOPFLG = 0x7f - WSTOPPED = 0x4 - WTRAPPED = 0x2 - WUNTRACED = 0x4 - XCASE = 0x4 - XTABS = 0x1800 -) - -// 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(0x39) - EBUSY = syscall.Errno(0x10) - ECANCELED = syscall.Errno(0x2f) - ECHILD = syscall.Errno(0xa) - ECHRNG = syscall.Errno(0x25) - ECOMM = syscall.Errno(0x46) - ECONNABORTED = syscall.Errno(0x82) - ECONNREFUSED = syscall.Errno(0x92) - ECONNRESET = syscall.Errno(0x83) - EDEADLK = syscall.Errno(0x2d) - EDEADLOCK = syscall.Errno(0x38) - EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) - EDQUOT = syscall.Errno(0x31) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) - EHOSTDOWN = syscall.Errno(0x93) - EHOSTUNREACH = syscall.Errno(0x94) - EIDRM = syscall.Errno(0x24) - EILSEQ = syscall.Errno(0x58) - EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) - EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) - EL2HLT = syscall.Errno(0x2c) - EL2NSYNC = syscall.Errno(0x26) - EL3HLT = syscall.Errno(0x27) - EL3RST = syscall.Errno(0x28) - ELIBACC = syscall.Errno(0x53) - ELIBBAD = syscall.Errno(0x54) - ELIBEXEC = syscall.Errno(0x57) - ELIBMAX = syscall.Errno(0x56) - ELIBSCN = syscall.Errno(0x55) - ELNRNG = syscall.Errno(0x29) - ELOCKUNMAPPED = syscall.Errno(0x48) - ELOOP = syscall.Errno(0x5a) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) - EMSGSIZE = syscall.Errno(0x61) - EMULTIHOP = syscall.Errno(0x4a) - ENAMETOOLONG = syscall.Errno(0x4e) - 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) - ENOLCK = syscall.Errno(0x2e) - ENOLINK = syscall.Errno(0x43) - 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) - ENOTACTIVE = syscall.Errno(0x49) - ENOTBLK = syscall.Errno(0xf) - ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) - ENOTEMPTY = syscall.Errno(0x5d) - ENOTRECOVERABLE = syscall.Errno(0x3b) - ENOTSOCK = syscall.Errno(0x5f) - ENOTSUP = syscall.Errno(0x30) - ENOTTY = syscall.Errno(0x19) - ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) - EOPNOTSUPP = syscall.Errno(0x7a) - EOVERFLOW = syscall.Errno(0x4f) - EOWNERDEAD = syscall.Errno(0x3a) - 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) - EREMOTE = syscall.Errno(0x42) - ERESTART = syscall.Errno(0x5b) - 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) - 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) - SIGCANCEL = syscall.Signal(0x24) - SIGCHLD = syscall.Signal(0x12) - SIGCLD = syscall.Signal(0x12) - SIGCONT = syscall.Signal(0x19) - SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGFREEZE = syscall.Signal(0x22) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINFO = syscall.Signal(0x29) - SIGINT = syscall.Signal(0x2) - SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGJVM1 = syscall.Signal(0x27) - SIGJVM2 = syscall.Signal(0x28) - SIGKILL = syscall.Signal(0x9) - SIGLOST = syscall.Signal(0x25) - SIGLWP = syscall.Signal(0x21) - 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) - SIGTHAW = syscall.Signal(0x23) - SIGTRAP = syscall.Signal(0x5) - SIGTSTP = syscall.Signal(0x18) - SIGTTIN = syscall.Signal(0x1a) - SIGTTOU = syscall.Signal(0x1b) - SIGURG = syscall.Signal(0x15) - SIGUSR1 = syscall.Signal(0x10) - SIGUSR2 = syscall.Signal(0x11) - SIGVTALRM = syscall.Signal(0x1c) - SIGWAITING = syscall.Signal(0x20) - SIGWINCH = syscall.Signal(0x14) - SIGXCPU = syscall.Signal(0x1e) - SIGXFSZ = syscall.Signal(0x1f) - SIGXRES = syscall.Signal(0x26) -) - -// Error table -var errorList = [...]struct { - num syscall.Errno - name string - desc string -}{ - {1, "EPERM", "not owner"}, - {2, "ENOENT", "no such file or directory"}, - {3, "ESRCH", "no such process"}, - {4, "EINTR", "interrupted system call"}, - {5, "EIO", "I/O error"}, - {6, "ENXIO", "no such device or address"}, - {7, "E2BIG", "arg list too long"}, - {8, "ENOEXEC", "exec format error"}, - {9, "EBADF", "bad file number"}, - {10, "ECHILD", "no child processes"}, - {11, "EAGAIN", "resource temporarily unavailable"}, - {12, "ENOMEM", "not enough space"}, - {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", "no such device"}, - {20, "ENOTDIR", "not a directory"}, - {21, "EISDIR", "is a directory"}, - {22, "EINVAL", "invalid argument"}, - {23, "ENFILE", "file table overflow"}, - {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", "argument out of domain"}, - {34, "ERANGE", "result too large"}, - {35, "ENOMSG", "no message of desired type"}, - {36, "EIDRM", "identifier removed"}, - {37, "ECHRNG", "channel number out of range"}, - {38, "EL2NSYNC", "level 2 not synchronized"}, - {39, "EL3HLT", "level 3 halted"}, - {40, "EL3RST", "level 3 reset"}, - {41, "ELNRNG", "link number out of range"}, - {42, "EUNATCH", "protocol driver not attached"}, - {43, "ENOCSI", "no CSI structure available"}, - {44, "EL2HLT", "level 2 halted"}, - {45, "EDEADLK", "deadlock situation detected/avoided"}, - {46, "ENOLCK", "no record locks available"}, - {47, "ECANCELED", "operation canceled"}, - {48, "ENOTSUP", "operation not supported"}, - {49, "EDQUOT", "disc quota exceeded"}, - {50, "EBADE", "bad exchange descriptor"}, - {51, "EBADR", "bad request descriptor"}, - {52, "EXFULL", "message tables full"}, - {53, "ENOANO", "anode table overflow"}, - {54, "EBADRQC", "bad request code"}, - {55, "EBADSLT", "invalid slot"}, - {56, "EDEADLOCK", "file locking deadlock"}, - {57, "EBFONT", "bad font file format"}, - {58, "EOWNERDEAD", "owner of the lock died"}, - {59, "ENOTRECOVERABLE", "lock is not recoverable"}, - {60, "ENOSTR", "not a stream device"}, - {61, "ENODATA", "no data available"}, - {62, "ETIME", "timer expired"}, - {63, "ENOSR", "out of stream resources"}, - {64, "ENONET", "machine is not on the network"}, - {65, "ENOPKG", "package not installed"}, - {66, "EREMOTE", "object is remote"}, - {67, "ENOLINK", "link has been severed"}, - {68, "EADV", "advertise error"}, - {69, "ESRMNT", "srmount error"}, - {70, "ECOMM", "communication error on send"}, - {71, "EPROTO", "protocol error"}, - {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, - {73, "ENOTACTIVE", "facility is not active"}, - {74, "EMULTIHOP", "multihop attempted"}, - {77, "EBADMSG", "not a data message"}, - {78, "ENAMETOOLONG", "file name too long"}, - {79, "EOVERFLOW", "value too large for defined data type"}, - {80, "ENOTUNIQ", "name not unique on network"}, - {81, "EBADFD", "file descriptor in bad state"}, - {82, "EREMCHG", "remote address changed"}, - {83, "ELIBACC", "can not access a needed shared library"}, - {84, "ELIBBAD", "accessing a corrupted shared library"}, - {85, "ELIBSCN", ".lib section in a.out corrupted"}, - {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, - {87, "ELIBEXEC", "can not exec a shared library directly"}, - {88, "EILSEQ", "illegal byte sequence"}, - {89, "ENOSYS", "operation not applicable"}, - {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, - {91, "ERESTART", "error 91"}, - {92, "ESTRPIPE", "error 92"}, - {93, "ENOTEMPTY", "directory not empty"}, - {94, "EUSERS", "too many users"}, - {95, "ENOTSOCK", "socket operation on non-socket"}, - {96, "EDESTADDRREQ", "destination address required"}, - {97, "EMSGSIZE", "message too long"}, - {98, "EPROTOTYPE", "protocol wrong type for socket"}, - {99, "ENOPROTOOPT", "option not supported by protocol"}, - {120, "EPROTONOSUPPORT", "protocol not supported"}, - {121, "ESOCKTNOSUPPORT", "socket type not supported"}, - {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, - {123, "EPFNOSUPPORT", "protocol family not supported"}, - {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, - {125, "EADDRINUSE", "address already in use"}, - {126, "EADDRNOTAVAIL", "cannot assign requested address"}, - {127, "ENETDOWN", "network is down"}, - {128, "ENETUNREACH", "network is unreachable"}, - {129, "ENETRESET", "network dropped connection because of reset"}, - {130, "ECONNABORTED", "software caused connection abort"}, - {131, "ECONNRESET", "connection reset by peer"}, - {132, "ENOBUFS", "no buffer space available"}, - {133, "EISCONN", "transport endpoint is already connected"}, - {134, "ENOTCONN", "transport endpoint is not connected"}, - {143, "ESHUTDOWN", "cannot send after socket shutdown"}, - {144, "ETOOMANYREFS", "too many references: cannot splice"}, - {145, "ETIMEDOUT", "connection timed out"}, - {146, "ECONNREFUSED", "connection refused"}, - {147, "EHOSTDOWN", "host is down"}, - {148, "EHOSTUNREACH", "no route to host"}, - {149, "EALREADY", "operation already in progress"}, - {150, "EINPROGRESS", "operation now in progress"}, - {151, "ESTALE", "stale NFS file handle"}, -} - -// 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/Breakpoint Trap"}, - {6, "SIGABRT", "abort"}, - {7, "SIGEMT", "emulation Trap"}, - {8, "SIGFPE", "arithmetic 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, "SIGUSR1", "user Signal 1"}, - {17, "SIGUSR2", "user Signal 2"}, - {18, "SIGCHLD", "child Status Changed"}, - {19, "SIGPWR", "power-Fail/Restart"}, - {20, "SIGWINCH", "window Size Change"}, - {21, "SIGURG", "urgent Socket Condition"}, - {22, "SIGIO", "pollable Event"}, - {23, "SIGSTOP", "stopped (signal)"}, - {24, "SIGTSTP", "stopped (user)"}, - {25, "SIGCONT", "continued"}, - {26, "SIGTTIN", "stopped (tty input)"}, - {27, "SIGTTOU", "stopped (tty output)"}, - {28, "SIGVTALRM", "virtual Timer Expired"}, - {29, "SIGPROF", "profiling Timer Expired"}, - {30, "SIGXCPU", "cpu Limit Exceeded"}, - {31, "SIGXFSZ", "file Size Limit Exceeded"}, - {32, "SIGWAITING", "no runnable lwp"}, - {33, "SIGLWP", "inter-lwp signal"}, - {34, "SIGFREEZE", "checkpoint Freeze"}, - {35, "SIGTHAW", "checkpoint Thaw"}, - {36, "SIGCANCEL", "thread Cancellation"}, - {37, "SIGLOST", "resource Lost"}, - {38, "SIGXRES", "resource Control Exceeded"}, - {39, "SIGJVM1", "reserved for JVM 1"}, - {40, "SIGJVM2", "reserved for JVM 2"}, - {41, "SIGINFO", "information Request"}, -} diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go deleted file mode 100644 index 1ec2b14..0000000 --- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +++ /dev/null @@ -1,990 +0,0 @@ -// 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 - -// Hand edited based on zerrors_linux_s390x.go -// TODO: auto-generate. - -package unix - -const ( - BRKINT = 0x0001 - CLOCAL = 0x1 - CLOCK_MONOTONIC = 0x1 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLONE_NEWIPC = 0x08000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x00020000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUTS = 0x04000000 - CLONE_PARENT = 0x00008000 - CS8 = 0x0030 - CSIZE = 0x0030 - ECHO = 0x00000008 - ECHONL = 0x00000001 - EFD_SEMAPHORE = 0x00002000 - EFD_CLOEXEC = 0x00001000 - EFD_NONBLOCK = 0x00000004 - EPOLL_CLOEXEC = 0x00001000 - EPOLL_CTL_ADD = 0 - EPOLL_CTL_MOD = 1 - EPOLL_CTL_DEL = 2 - EPOLLRDNORM = 0x0001 - EPOLLRDBAND = 0x0002 - EPOLLIN = 0x0003 - EPOLLOUT = 0x0004 - EPOLLWRBAND = 0x0008 - EPOLLPRI = 0x0010 - EPOLLERR = 0x0020 - EPOLLHUP = 0x0040 - EPOLLEXCLUSIVE = 0x20000000 - EPOLLONESHOT = 0x40000000 - FD_CLOEXEC = 0x01 - FD_CLOFORK = 0x02 - FD_SETSIZE = 0x800 - 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" - GRND_NONBLOCK = 1 - GRND_RANDOM = 2 - HUPCL = 0x0100 // Hang up on last close - IN_CLOEXEC = 0x00001000 - IN_NONBLOCK = 0x00000004 - IN_ACCESS = 0x00000001 - IN_MODIFY = 0x00000002 - IN_ATTRIB = 0x00000004 - IN_CLOSE_WRITE = 0x00000008 - IN_CLOSE_NOWRITE = 0x00000010 - IN_OPEN = 0x00000020 - IN_MOVED_FROM = 0x00000040 - IN_MOVED_TO = 0x00000080 - IN_CREATE = 0x00000100 - IN_DELETE = 0x00000200 - IN_DELETE_SELF = 0x00000400 - IN_MOVE_SELF = 0x00000800 - IN_UNMOUNT = 0x00002000 - IN_Q_OVERFLOW = 0x00004000 - IN_IGNORED = 0x00008000 - IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) - IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO) - IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | - IN_CLOSE | IN_OPEN | IN_MOVE | - IN_CREATE | IN_DELETE | IN_DELETE_SELF | - IN_MOVE_SELF) - IN_ONLYDIR = 0x01000000 - IN_DONT_FOLLOW = 0x02000000 - IN_EXCL_UNLINK = 0x04000000 - IN_MASK_CREATE = 0x10000000 - IN_MASK_ADD = 0x20000000 - IN_ISDIR = 0x40000000 - IN_ONESHOT = 0x80000000 - 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 - SOL_AH = 51 - IPPROTO_DSTOPTS = 60 - SOL_DSTOPTS = 60 - IPPROTO_EGP = 8 - SOL_EGP = 8 - IPPROTO_ESP = 50 - SOL_ESP = 50 - IPPROTO_FRAGMENT = 44 - SOL_FRAGMENT = 44 - IPPROTO_GGP = 2 - SOL_GGP = 2 - IPPROTO_HOPOPTS = 0 - SOL_HOPOPTS = 0 - IPPROTO_ICMP = 1 - SOL_ICMP = 1 - IPPROTO_ICMPV6 = 58 - SOL_ICMPV6 = 58 - IPPROTO_IDP = 22 - SOL_IDP = 22 - IPPROTO_IP = 0 - SOL_IP = 0 - IPPROTO_IPV6 = 41 - SOL_IPV6 = 41 - IPPROTO_MAX = 256 - SOL_MAX = 256 - IPPROTO_NONE = 59 - SOL_NONE = 59 - IPPROTO_PUP = 12 - SOL_PUP = 12 - IPPROTO_RAW = 255 - SOL_RAW = 255 - IPPROTO_ROUTING = 43 - SOL_ROUTING = 43 - IPPROTO_TCP = 6 - SOL_TCP = 6 - IPPROTO_UDP = 17 - SOL_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 = 14 - IP_UNBLOCK_SOURCE = 11 - ICMP6_FILTER = 1 - MCAST_INCLUDE = 0 - MCAST_EXCLUDE = 1 - MCAST_JOIN_GROUP = 40 - MCAST_LEAVE_GROUP = 41 - MCAST_JOIN_SOURCE_GROUP = 42 - MCAST_LEAVE_SOURCE_GROUP = 43 - MCAST_BLOCK_SOURCE = 44 - MCAST_UNBLOCK_SOURCE = 46 - ICANON = 0x0010 - ICRNL = 0x0002 - IEXTEN = 0x0020 - IGNBRK = 0x0004 - IGNCR = 0x0008 - INLCR = 0x0020 - ISIG = 0x0040 - ISTRIP = 0x0080 - IXON = 0x0200 - IXOFF = 0x0100 - LOCK_SH = 0x1 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_UN = 0x8 - 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 - __MAP_MEGA = 0x8 - __MAP_64 = 0x10 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MS_SYNC = 0x1 // msync - synchronous writes - MS_ASYNC = 0x2 // asynchronous writes - MS_INVALIDATE = 0x4 // invalidate mappings - MS_BIND = 0x00001000 - MS_MOVE = 0x00002000 - MS_NOSUID = 0x00000002 - MS_PRIVATE = 0x00040000 - MS_REC = 0x00004000 - MS_REMOUNT = 0x00008000 - MS_RDONLY = 0x00000001 - MS_UNBINDABLE = 0x00020000 - MNT_DETACH = 0x00000004 - ZOSDSFS_SUPER_MAGIC = 0x44534653 // zOS DSFS - NFS_SUPER_MAGIC = 0x6969 // NFS - NSFS_MAGIC = 0x6e736673 // PROCNS - PROC_SUPER_MAGIC = 0x9fa0 // proc FS - ZOSTFS_SUPER_MAGIC = 0x544653 // zOS TFS - ZOSUFS_SUPER_MAGIC = 0x554653 // zOS UFS - ZOSZFS_SUPER_MAGIC = 0x5A4653 // zOS ZFS - 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 - NFDBITS = 0x20 - ONLRET = 0x0020 // NL performs CR function - O_ACCMODE = 0x03 - O_APPEND = 0x08 - O_ASYNCSIG = 0x0200 - O_CREAT = 0x80 - O_DIRECT = 0x00002000 - O_NOFOLLOW = 0x00004000 - O_DIRECTORY = 0x00008000 - O_PATH = 0x00080000 - O_CLOEXEC = 0x00001000 - O_EXCL = 0x40 - O_GETFL = 0x0F - O_LARGEFILE = 0x0400 - O_NDELAY = 0x4 - 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_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX - 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 - RLIMIT_MEMLOCK = 0x8 - RLIM_INFINITY = 2147483647 - SCHED_FIFO = 0x2 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x01 - SF_CLOSE = 0x00000002 - SF_REUSE = 0x00000001 - SHM_RND = 0x2 - SHM_RDONLY = 0x1 - SHMLBA = 0x1000 - IPC_STAT = 0x3 - IPC_SET = 0x2 - IPC_RMID = 0x1 - IPC_PRIVATE = 0x0 - IPC_CREAT = 0x1000000 - __IPC_MEGA = 0x4000000 - __IPC_SHAREAS = 0x20000000 - __IPC_BELOWBAR = 0x10000000 - IPC_EXCL = 0x2000000 - __IPC_GIGA = 0x8000000 - SHUT_RD = 0 - SHUT_RDWR = 2 - SHUT_WR = 1 - SOCK_CLOEXEC = 0x00001000 - SOCK_CONN_DGRAM = 6 - SOCK_DGRAM = 2 - SOCK_NONBLOCK = 0x800 - 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 - WEXITED = 0x8 - WNOHANG = 0x1 - WNOWAIT = 0x20 - WSTOPPED = 0x10 - 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_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - P_PID = 0 - P_PGID = 1 - P_ALL = 2 - PR_SET_NAME = 15 - PR_GET_NAME = 16 - PR_SET_NO_NEW_PRIVS = 38 - PR_GET_NO_NEW_PRIVS = 39 - PR_SET_DUMPABLE = 4 - PR_GET_DUMPABLE = 3 - PR_SET_PDEATHSIG = 1 - PR_GET_PDEATHSIG = 2 - PR_SET_CHILD_SUBREAPER = 36 - PR_GET_CHILD_SUBREAPER = 37 - AT_FDCWD = -100 - AT_EACCESS = 0x200 - AT_EMPTY_PATH = 0x1000 - AT_REMOVEDIR = 0x200 - RENAME_NOREPLACE = 1 << 0 - ST_RDONLY = 1 - ST_NOSUID = 2 -) - -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) - ENOATTR = Errno(265) - 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, "EDC5148I", "The named attribute or data not available."}, - {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."}, - {265, "EDC5265I", "The named attribute not available."}, - {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/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go deleted file mode 100644 index 586317c..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. - -//go:build linux && (arm || arm64) - -package unix - -import "unsafe" - -// PtraceRegsArm is the registers used by arm binaries. -type PtraceRegsArm struct { - Uregs [18]uint32 -} - -// PtraceGetRegsArm fetches the registers used by arm binaries. -func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm sets the registers used by arm binaries. -func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsArm64 is the registers used by arm64 binaries. -type PtraceRegsArm64 struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. -func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsArm64 sets the registers used by arm64 binaries. -func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go deleted file mode 100644 index 834d285..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +++ /dev/null @@ -1,17 +0,0 @@ -// 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 ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), 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 ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go deleted file mode 100644 index d7c881b..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. - -//go:build linux && (mips || mips64) - -package unix - -import "unsafe" - -// PtraceRegsMips is the registers used by mips binaries. -type PtraceRegsMips struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips fetches the registers used by mips binaries. -func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips sets the registers used by mips binaries. -func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64 is the registers used by mips64 binaries. -type PtraceRegsMips64 struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. -func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64 sets the registers used by mips64 binaries. -func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go deleted file mode 100644 index 2d2de5d..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. - -//go:build linux && (mipsle || mips64le) - -package unix - -import "unsafe" - -// PtraceRegsMipsle is the registers used by mipsle binaries. -type PtraceRegsMipsle struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. -func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMipsle sets the registers used by mipsle binaries. -func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsMips64le is the registers used by mips64le binaries. -type PtraceRegsMips64le struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. -func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsMips64le sets the registers used by mips64le binaries. -func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go deleted file mode 100644 index 5adc79f..0000000 --- a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +++ /dev/null @@ -1,79 +0,0 @@ -// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. - -//go:build linux && (386 || amd64) - -package unix - -import "unsafe" - -// PtraceRegs386 is the registers used by 386 binaries. -type PtraceRegs386 struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -// PtraceGetRegs386 fetches the registers used by 386 binaries. -func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegs386 sets the registers used by 386 binaries. -func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} - -// PtraceRegsAmd64 is the registers used by amd64 binaries. -type PtraceRegsAmd64 struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. -func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -} - -// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. -func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -} diff --git a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s deleted file mode 100644 index b77ff5d..0000000 --- a/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +++ /dev/null @@ -1,364 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x -#include "textflag.h" - -// provide the address of function variable to be fixed up. - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Flistxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fremovexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fgetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fsetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·accept4(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Removexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Dup3(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Dirfd(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCreate(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCreate1(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollCtl(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollPwait(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·EpollWait(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Eventfd(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Faccessat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fchmodat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fchownat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fdatasync(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·fstatat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lgetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lsetxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Fstatfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Futimes(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Futimesat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Getrandom(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyInit(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyInit1(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyAddWatch(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·InotifyRmWatch(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Listxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Llistxattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lremovexattr(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Lutimes(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Statfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Syncfs(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unshare(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Linkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mkdirat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Mknodat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·PivotRoot(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Prctl(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Prlimit(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Renameat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Renameat2(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Sethostname(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Setns(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Symlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·Unlinkat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·openat(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·openat2(SB), R8 - MOVD R8, ret+0(FP) - RET - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -TEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8 - MOVD $·utimensat(SB), R8 - MOVD R8, ret+0(FP) - RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go deleted file mode 100644 index 6ea64a3..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ /dev/null @@ -1,1461 +0,0 @@ -// 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 - -package unix - -/* -#include <stdint.h> -#include <stddef.h> -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -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); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -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 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); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -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); -long long lseek64(int, long long, int); -uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - wpid = Pid_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - r = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) - val = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fsyncRange(fd int, how int, start int64, length int64) (err error) { - r0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.acct(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 Chdir(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chdir(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 Chroot(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.chroot(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 Close(fd int) (err error) { - r0, er := C.close(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, er := C.dup(C.int(oldfd)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - C.exit(C.int(code)) - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - r0, er := C.fchdir(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - r0, er := C.fchmod(C.int(fd), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - r0, er := C.fdatasync(C.int(fd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, er := C.getpgid(C.int(pid)) - pgid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pid int) { - r0, _ := C.getpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := C.getpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := C.getppid() - 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, er := C.getpriority(C.int(which), C.int(who)) - prio = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, er := C.getsid(C.int(pid)) - sid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig Signal) (err error) { - r0, er := C.kill(C.int(pid), C.int(sig)) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Mkdir(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkfifo(path string, mode uint32) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknod(path string, mode uint32, dev int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Readlink(path string, buf []byte) (n int, err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - var _p1 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - var _p2 int - _p2 = len(buf) - r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) - 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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) - _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) - r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - r0, er := C.setpgid(C.int(pid), C.int(pgid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, er := C.setsid() - pid = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - r0, er := C.setuid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - r0, er := C.setgid(C.int(uid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) - if r0 == -1 && er != nil { - err = er - } - 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) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - C.sync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) - ticks = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := C.umask(C.int(mask)) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlink(path string) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - 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 Dup2(oldfd int, newfd int) (err error) { - r0, er := C.dup2(C.int(oldfd), C.int(newfd)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 - } - return -} - -// 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) { - _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 { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - r0, er := C.ftruncate(C.int(fd), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _ := C.getegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := C.geteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := C.getgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := C.getuid() - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lchown(path string, uid int, gid int) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - r0, er := C.listen(C.int(s), C.int(n)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - r0, er := C.pause() - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - 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 pwrite(fd int, p []byte, offset int64) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) - 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 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) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - r0, er := C.setregid(C.int(rgid), C.int(egid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - r0, er := C.setreuid(C.int(ruid), C.int(euid)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - r0, er := C.shutdown(C.int(fd), C.int(how)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) - n = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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(statptr)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Truncate(path string, length int64) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - nn = int(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) - fd = int(r0) - if r0 == -1 && er != nil { - err = er - } - 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) { - r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) - if r0 == -1 && er != nil { - err = er - } - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - var _p1 int - _p1 = len(p) - r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) - 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 sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - var _p1 int - _p1 = len(buf) - r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) - if r0 == -1 && er != nil { - err = er - } - 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, 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 - } - 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, 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 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - r0, er := C.mlockall(C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 int - _p1 = len(b) - r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - r0, er := C.munlockall() - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) - if r0 == -1 && er != nil { - err = er - } - 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, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) - tt = Time_t(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - _p0 := uintptr(unsafe.Pointer(C.CString(path))) - r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) - if r0 == -1 && er != nil { - err = er - } - return -} - -// 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 { - err = er - } - 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, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) - off = int64(r0) - if r0 == -1 && er != nil { - err = er - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) - xaddr = uintptr(r0) - if uintptr(r0) == ^uintptr(0) && er != nil { - err = er - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go deleted file mode 100644 index 99ee439..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +++ /dev/null @@ -1,1420 +0,0 @@ -// 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 - -package unix - -import ( - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - 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, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getcwd(buf []byte) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) - 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 := callaccept(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 getdirent(fd int, buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), 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 wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { - r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) - wpid = Pid_t(r0) - 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 int, arg uintptr) (err error) { - _, e1 := callioctl(fd, req, arg) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - _, e1 := callioctl_ptr(fd, req, arg) - 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) (r int, err error) { - r0, e1 := callfcntl(fd, cmd, uintptr(arg)) - r = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { - _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) - 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 := callfcntl(uintptr(fd), 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 fsyncRange(fd int, how int, start int64, length int64) (err error) { - _, e1 := callfsync_range(fd, how, start, length) - 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 := callacct(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 Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchdir(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 Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callchroot(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 Close(fd int) (err error) { - _, e1 := callclose(fd) - 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 := calldup(oldfd) - 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) { - callexit(code) - 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 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - 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 := callfchdir(fd) - 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 := callfchmod(fd, mode) - 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 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) - 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 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) - 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 := callfdatasync(fd) - 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 := callgetpgid(pid) - 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() (pid int) { - r0, _ := callgetpgrp() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := callgetpid() - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := callgetppid() - 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 := callgetpriority(which, who) - prio = 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 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) - 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 := callgetsid(pid) - sid = 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 Signal) (err error) { - _, e1 := callkill(pid, int(sig)) - 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), 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 Mkdir(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) - 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 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), 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 := callmkfifo(uintptr(unsafe.Pointer(_p0)), 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) - if err != nil { - return - } - _, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev) - 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 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) - 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 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) - 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 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, 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, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) - fd = 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), 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 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 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 Renameat(olddirfd int, 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 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), 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 Setdomainname(p []byte) (err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) - 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 := callsetpgid(pid, pgid) - 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 := callsetsid() - 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 := callsettimeofday(uintptr(unsafe.Pointer(tv))) - 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 := callsetuid(uid) - 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 := callsetgid(uid) - 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 := callsetpriority(which, who, prio) - if e1 != 0 { - err = errnoErr(e1) - } - 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 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - callsync() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) - 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, _ := callumask(mask) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, e1 := calluname(uintptr(unsafe.Pointer(buf))) - 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 := callunlink(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 Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), 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 Dup2(oldfd int, newfd int) (err error) { - _, e1 := calldup2(oldfd, newfd) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, e1 := callposix_fadvise64(fd, offset, length, advice) - 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 := callfchown(fd, uid, gid) - 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 := callfstat(fd, uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, buf *Statfs_t) (err error) { - _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) - 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 := callftruncate(fd, length) - 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, _ := callgetegid() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := callgeteuid() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := callgetgid() - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := callgetuid() - uid = int(r0) - 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 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) - 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 := calllisten(s, n) - 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 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, e1 := callpause() - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - 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 := callsetregid(rgid, egid) - 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 := callsetreuid(ruid, euid) - 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 := callshutdown(fd, how) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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(statptr))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - 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 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) - 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 := callbind(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 := callconnect(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 := callgetgroups(n, uintptr(unsafe.Pointer(list))) - 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 := callsetgroups(n, uintptr(unsafe.Pointer(list))) - 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 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) - 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 := callsetsockopt(s, level, name, uintptr(val), vallen) - 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 := callsocket(domain, typ, 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 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) - 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 := callgetpeername(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 := callgetsockname(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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), 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 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), 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 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), 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 munmap(addr uintptr, length uintptr) (err error) { - _, e1 := callmunmap(addr, length) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) - 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 := callmlockall(flags) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) - 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 := callmunlockall() - 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 := callpipe(uintptr(unsafe.Pointer(p))) - 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 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, 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 gettimeofday(tv *Timeval, tzp *Timezone) (err error) { - _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Time(t *Time_t) (tt Time_t, err error) { - r0, e1 := calltime(uintptr(unsafe.Pointer(t))) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsystemcfg(label int) (n uint64) { - r0, _ := callgetsystemcfg(label) - n = uint64(r0) - return -} - -// 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 { - 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 := calllseek(fd, offset, 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} 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 deleted file mode 100644 index b68a783..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +++ /dev/null @@ -1,1188 +0,0 @@ -// 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 && gc - -package unix - -import ( - "unsafe" -) - -//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fsync_range fsync_range "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" -//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" -//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" -//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_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" -//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" -//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_lseek lseek "libc.a/shr_64.o" -//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" - -//go:linkname libc_utimes libc_utimes -//go:linkname libc_utimensat libc_utimensat -//go:linkname libc_getcwd libc_getcwd -//go:linkname libc_accept libc_accept -//go:linkname libc_getdirent libc_getdirent -//go:linkname libc_wait4 libc_wait4 -//go:linkname libc_ioctl libc_ioctl -//go:linkname libc_fcntl libc_fcntl -//go:linkname libc_fsync_range libc_fsync_range -//go:linkname libc_acct libc_acct -//go:linkname libc_chdir libc_chdir -//go:linkname libc_chroot libc_chroot -//go:linkname libc_close libc_close -//go:linkname libc_dup libc_dup -//go:linkname libc_exit libc_exit -//go:linkname libc_faccessat libc_faccessat -//go:linkname libc_fchdir libc_fchdir -//go:linkname libc_fchmod libc_fchmod -//go:linkname libc_fchmodat libc_fchmodat -//go:linkname libc_fchownat libc_fchownat -//go:linkname libc_fdatasync libc_fdatasync -//go:linkname libc_getpgid libc_getpgid -//go:linkname libc_getpgrp libc_getpgrp -//go:linkname libc_getpid libc_getpid -//go:linkname libc_getppid libc_getppid -//go:linkname libc_getpriority libc_getpriority -//go:linkname libc_getrusage libc_getrusage -//go:linkname libc_getsid libc_getsid -//go:linkname libc_kill libc_kill -//go:linkname libc_syslog libc_syslog -//go:linkname libc_mkdir libc_mkdir -//go:linkname libc_mkdirat libc_mkdirat -//go:linkname libc_mkfifo libc_mkfifo -//go:linkname libc_mknod libc_mknod -//go:linkname libc_mknodat libc_mknodat -//go:linkname libc_nanosleep libc_nanosleep -//go:linkname libc_open64 libc_open64 -//go:linkname libc_openat libc_openat -//go:linkname libc_read libc_read -//go:linkname libc_readlink libc_readlink -//go:linkname libc_renameat libc_renameat -//go:linkname libc_setdomainname libc_setdomainname -//go:linkname libc_sethostname libc_sethostname -//go:linkname libc_setpgid libc_setpgid -//go:linkname libc_setsid libc_setsid -//go:linkname libc_settimeofday libc_settimeofday -//go:linkname libc_setuid libc_setuid -//go:linkname libc_setgid libc_setgid -//go:linkname libc_setpriority libc_setpriority -//go:linkname libc_statx libc_statx -//go:linkname libc_sync libc_sync -//go:linkname libc_times libc_times -//go:linkname libc_umask libc_umask -//go:linkname libc_uname libc_uname -//go:linkname libc_unlink libc_unlink -//go:linkname libc_unlinkat libc_unlinkat -//go:linkname libc_ustat libc_ustat -//go:linkname libc_write libc_write -//go:linkname libc_dup2 libc_dup2 -//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 -//go:linkname libc_fchown libc_fchown -//go:linkname libc_fstat libc_fstat -//go:linkname libc_fstatat libc_fstatat -//go:linkname libc_fstatfs libc_fstatfs -//go:linkname libc_ftruncate libc_ftruncate -//go:linkname libc_getegid libc_getegid -//go:linkname libc_geteuid libc_geteuid -//go:linkname libc_getgid libc_getgid -//go:linkname libc_getuid libc_getuid -//go:linkname libc_lchown libc_lchown -//go:linkname libc_listen libc_listen -//go:linkname libc_lstat libc_lstat -//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 -//go:linkname libc_shutdown libc_shutdown -//go:linkname libc_splice libc_splice -//go:linkname libc_stat libc_stat -//go:linkname libc_statfs libc_statfs -//go:linkname libc_truncate libc_truncate -//go:linkname libc_bind libc_bind -//go:linkname libc_connect libc_connect -//go:linkname libc_getgroups libc_getgroups -//go:linkname libc_setgroups libc_setgroups -//go:linkname libc_getsockopt libc_getsockopt -//go:linkname libc_setsockopt libc_setsockopt -//go:linkname libc_socket libc_socket -//go:linkname libc_socketpair libc_socketpair -//go:linkname libc_getpeername libc_getpeername -//go:linkname libc_getsockname libc_getsockname -//go:linkname libc_recvfrom libc_recvfrom -//go:linkname libc_sendto libc_sendto -//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 -//go:linkname libc_mlock libc_mlock -//go:linkname libc_mlockall libc_mlockall -//go:linkname libc_msync libc_msync -//go:linkname libc_munlock libc_munlock -//go:linkname libc_munlockall libc_munlockall -//go:linkname libc_pipe libc_pipe -//go:linkname libc_poll libc_poll -//go:linkname libc_gettimeofday libc_gettimeofday -//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_lseek libc_lseek -//go:linkname libc_mmap64 libc_mmap64 - -type syscallFunc uintptr - -var ( - libc_utimes, - libc_utimensat, - libc_getcwd, - libc_accept, - libc_getdirent, - libc_wait4, - libc_ioctl, - libc_fcntl, - libc_fsync_range, - libc_acct, - libc_chdir, - libc_chroot, - libc_close, - libc_dup, - libc_exit, - libc_faccessat, - libc_fchdir, - libc_fchmod, - libc_fchmodat, - libc_fchownat, - libc_fdatasync, - libc_getpgid, - libc_getpgrp, - libc_getpid, - libc_getppid, - libc_getpriority, - libc_getrusage, - libc_getsid, - libc_kill, - libc_syslog, - libc_mkdir, - libc_mkdirat, - libc_mkfifo, - libc_mknod, - libc_mknodat, - libc_nanosleep, - libc_open64, - libc_openat, - libc_read, - libc_readlink, - libc_renameat, - libc_setdomainname, - libc_sethostname, - libc_setpgid, - libc_setsid, - libc_settimeofday, - libc_setuid, - libc_setgid, - libc_setpriority, - libc_statx, - libc_sync, - libc_times, - libc_umask, - libc_uname, - libc_unlink, - libc_unlinkat, - libc_ustat, - libc_write, - libc_dup2, - libc_posix_fadvise64, - libc_fchown, - libc_fstat, - libc_fstatat, - libc_fstatfs, - libc_ftruncate, - libc_getegid, - libc_geteuid, - libc_getgid, - libc_getuid, - libc_lchown, - libc_listen, - libc_lstat, - libc_pause, - libc_pread64, - libc_pwrite64, - libc_select, - libc_pselect, - libc_setregid, - libc_setreuid, - libc_shutdown, - libc_splice, - libc_stat, - libc_statfs, - libc_truncate, - libc_bind, - libc_connect, - libc_getgroups, - libc_setgroups, - libc_getsockopt, - libc_setsockopt, - libc_socket, - libc_socketpair, - libc_getpeername, - libc_getsockname, - libc_recvfrom, - libc_sendto, - libc_nrecvmsg, - libc_nsendmsg, - libc_munmap, - libc_madvise, - libc_mprotect, - libc_mlock, - libc_mlockall, - libc_msync, - libc_munlock, - libc_munlockall, - libc_pipe, - libc_poll, - libc_gettimeofday, - libc_time, - libc_utime, - libc_getsystemcfg, - libc_umount, - libc_getrlimit, - libc_lseek, - libc_mmap64 syscallFunc -) - -// Implemented in runtime/syscall_aix.go. -func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) -func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) - return -} - -// 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) - return -} - -// 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - 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 deleted file mode 100644 index 0a87450..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +++ /dev/null @@ -1,1069 +0,0 @@ -// 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 && gccgo - -package unix - -/* -#include <stdint.h> -int utimes(uintptr_t, uintptr_t); -int utimensat(int, uintptr_t, uintptr_t, int); -int getcwd(uintptr_t, size_t); -int accept(int, uintptr_t, uintptr_t); -int getdirent(int, uintptr_t, size_t); -int wait4(int, uintptr_t, int, uintptr_t); -int ioctl(int, int, uintptr_t); -int fcntl(uintptr_t, int, uintptr_t); -int fsync_range(int, int, long long, long long); -int acct(uintptr_t); -int chdir(uintptr_t); -int chroot(uintptr_t); -int close(int); -int dup(int); -void exit(int); -int faccessat(int, uintptr_t, unsigned int, int); -int fchdir(int); -int fchmod(int, unsigned int); -int fchmodat(int, uintptr_t, unsigned int, int); -int fchownat(int, uintptr_t, int, int, int); -int fdatasync(int); -int getpgid(int); -int getpgrp(); -int getpid(); -int getppid(); -int getpriority(int, int); -int getrusage(int, uintptr_t); -int getsid(int); -int kill(int, int); -int syslog(int, uintptr_t, size_t); -int mkdir(int, uintptr_t, unsigned int); -int mkdirat(int, uintptr_t, unsigned int); -int mkfifo(uintptr_t, unsigned int); -int mknod(uintptr_t, unsigned int, int); -int mknodat(int, uintptr_t, unsigned int, int); -int nanosleep(uintptr_t, uintptr_t); -int open64(uintptr_t, int, unsigned int); -int openat(int, uintptr_t, int, unsigned int); -int read(int, uintptr_t, size_t); -int readlink(uintptr_t, uintptr_t, size_t); -int renameat(int, uintptr_t, int, uintptr_t); -int setdomainname(uintptr_t, size_t); -int sethostname(uintptr_t, size_t); -int setpgid(int, int); -int setsid(); -int settimeofday(uintptr_t); -int setuid(int); -int setgid(int); -int setpriority(int, int, int); -int statx(int, uintptr_t, int, int, uintptr_t); -int sync(); -uintptr_t times(uintptr_t); -int umask(int); -int uname(uintptr_t); -int unlink(uintptr_t); -int unlinkat(int, uintptr_t, int); -int ustat(int, uintptr_t); -int write(int, uintptr_t, size_t); -int dup2(int, int); -int posix_fadvise64(int, long long, long long, int); -int fchown(int, int, int); -int fstat(int, uintptr_t); -int fstatat(int, uintptr_t, uintptr_t, int); -int fstatfs(int, uintptr_t); -int ftruncate(int, long long); -int getegid(); -int geteuid(); -int getgid(); -int getuid(); -int lchown(uintptr_t, int, int); -int listen(int, int); -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); -int shutdown(int, int); -long long splice(int, uintptr_t, int, uintptr_t, int, int); -int stat(uintptr_t, uintptr_t); -int statfs(uintptr_t, uintptr_t); -int truncate(uintptr_t, long long); -int bind(int, uintptr_t, uintptr_t); -int connect(int, uintptr_t, uintptr_t); -int getgroups(int, uintptr_t); -int setgroups(int, uintptr_t); -int getsockopt(int, int, int, uintptr_t, uintptr_t); -int setsockopt(int, int, int, uintptr_t, uintptr_t); -int socket(int, int, int); -int socketpair(int, int, int, uintptr_t); -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 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); -int mlock(uintptr_t, size_t); -int mlockall(int); -int msync(uintptr_t, size_t, int); -int munlock(uintptr_t, size_t); -int munlockall(); -int pipe(uintptr_t); -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 getrlimit(int, uintptr_t); -long long lseek(int, long long, int); -uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); - -*/ -import "C" -import ( - "syscall" - "unsafe" -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.acct(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chdir(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.chroot(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callclose(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.close(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup(oldfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup(C.int(oldfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callexit(code int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.exit(C.int(code))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchdir(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchdir(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfdatasync(fd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fdatasync(C.int(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpgrp() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpgrp()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetppid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getppid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpriority(C.int(which), C.int(who))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsid(pid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsid(C.int(pid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.kill(C.int(pid), C.int(sig))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetuid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setuid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgid(uid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgid(C.int(uid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsync() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sync()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.times(C.uintptr_t(tms))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callumask(mask int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.umask(C.int(mask))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calluname(buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.uname(C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlink(C.uintptr_t(_p0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetegid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getegid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgeteuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.geteuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetuid() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getuid()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllisten(s int, n int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.listen(C.int(s), C.int(n))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpause() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pause()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} - -// 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() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmlockall(flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mlockall(C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmunlockall() (r1 uintptr, e1 Errno) { - r1 = uintptr(C.munlockall()) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpipe(p uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.pipe(C.uintptr_t(p))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calltime(t uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.time(C.uintptr_t(t))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.getsystemcfg(C.int(label))) - e1 = syscall.GetErrno() - return -} - -// 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() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) - e1 = syscall.GetErrno() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { - r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) - e1 = syscall.GetErrno() - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go deleted file mode 100644 index 813c05b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ /dev/null @@ -1,2728 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64 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 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//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 - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//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 - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//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 - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//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 - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//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 - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//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 - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//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 - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//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 - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//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 - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//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 - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//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 - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//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 - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//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 - -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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//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 - -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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//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 - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//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 - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//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 - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//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 utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//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 - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//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 poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//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 - -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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//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 - -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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//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 - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//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 - -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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//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 - -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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//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 - -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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//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 - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//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 closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//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(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_getxattr_trampoline_addr, 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 -} - -var libc_getxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fgetxattr_trampoline_addr, 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 -} - -var libc_fgetxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_setxattr_trampoline_addr, 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 -} - -var libc_setxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//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 - -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_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//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 - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//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 - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//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 - -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_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/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(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//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(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//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 - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renamex_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameatx_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//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 pthread_chdir_np(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_chdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_fchdir_np(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_fchdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { - var _p0 unsafe.Pointer - if len(iov) > 0 { - _p0 = unsafe.Pointer(&iov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connectx_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connectx connectx "/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(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//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 - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//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 - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//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 - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//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 - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//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 - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//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 - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//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 - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//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(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//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(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//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(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//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(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//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 - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//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 - -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_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//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 - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//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 - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//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 - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//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 - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//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 - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//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 - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//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 - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//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(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//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(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//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 - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//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 - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//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 - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//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(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//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 - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//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 - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//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 - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//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 - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//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 - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//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 - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//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 - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//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 - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//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 - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//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 - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//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 - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//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(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//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(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//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 - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//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 - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//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 - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//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 - -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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//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 - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//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 - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//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 - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//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 - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//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 - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//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 - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//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 - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//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 - -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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//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 - -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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//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 - -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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//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 - -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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//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 - -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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//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 - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//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 - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//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 - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//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 - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//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 Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//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 - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//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 - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//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 - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//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 - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//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 - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//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 - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//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 - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//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 - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//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 - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//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 - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//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 - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//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 - -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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//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 - -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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//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 - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//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 - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//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 - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//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 - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//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 - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//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 - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//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 - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//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 - -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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//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 - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//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 - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//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 - -func readv(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_preadv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_writev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwritev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwritev pwritev "/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(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat64_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat64_trampoline_addr uintptr - -//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 - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs64_trampoline_addr uintptr - -//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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat64_trampoline_addr uintptr - -//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 - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat64_trampoline_addr uintptr - -//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(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//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) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat64_trampoline_addr uintptr - -//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 - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs64_trampoline_addr uintptr - -//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 deleted file mode 100644 index fda3285..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ /dev/null @@ -1,799 +0,0 @@ -// go run mkasm.go darwin amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renamex_np(SB) -GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) - -TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameatx_np(SB) -GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_chdir_np(SB) -GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) - -TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_fchdir_np(SB) -GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) - -TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connectx(SB) -GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readv(SB) -GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) - -TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_preadv(SB) -GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) - -TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_writev(SB) -GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) - -TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwritev(SB) -GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) - -TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat64(SB) -GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) - -TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat64(SB) -GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) - -TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs64(SB) -GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) - -TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat64(SB) -GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) - -TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat64(SB) -GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat64(SB) -GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) - -TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs64(SB) -GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(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 deleted file mode 100644 index e6f58f3..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ /dev/null @@ -1,2728 +0,0 @@ -// go run mksyscall.go -tags darwin,arm64 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 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//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 - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//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 - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//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 - -func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//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 - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//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 - -func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//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 - -func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//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 - -func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//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 - -func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//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 - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//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 - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//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 - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//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 - -func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//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 - -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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//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 - -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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//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 - -func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//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 - -func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//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 - -func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//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 utimes(path string, timeval *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//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 - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//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 poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//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 - -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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//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 - -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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//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 - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//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 - -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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//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 - -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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//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 - -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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//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 - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//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 closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//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(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_getxattr_trampoline_addr, 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 -} - -var libc_getxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fgetxattr_trampoline_addr, 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 -} - -var libc_fgetxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_setxattr_trampoline_addr, 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 -} - -var libc_setxattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsetxattr_trampoline_addr uintptr - -//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 - -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_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_removexattr_trampoline_addr uintptr - -//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 - -func fremovexattr(fd int, attr string, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fremovexattr_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listxattr_trampoline_addr uintptr - -//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 - -func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flistxattr_trampoline_addr uintptr - -//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 - -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_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "/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(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//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(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//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 - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 renamexNp(from string, to string, flag uint32) (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(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renamex_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renamex_np renamex_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (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_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameatx_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameatx_np renameatx_np "/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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//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 pthread_chdir_np(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_chdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pthread_fchdir_np(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pthread_fchdir_np_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { - var _p0 unsafe.Pointer - if len(iov) > 0 { - _p0 = unsafe.Pointer(&iov[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connectx_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connectx connectx "/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(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendfile_trampoline_addr uintptr - -//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 - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmdt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shmget_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//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 - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//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 - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//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 - -func Chflags(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//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 - -func Chmod(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//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 - -func Chown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//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 - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//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(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//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(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//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(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefile_trampoline_addr uintptr - -//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(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clonefileat_trampoline_addr uintptr - -//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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//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 - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//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 - -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_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_exchangedata_trampoline_addr uintptr - -//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 - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//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 - -func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//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 - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//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 - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//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 - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//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 - -func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//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 - -func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//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(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fclonefileat_trampoline_addr uintptr - -//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(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//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 - -func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//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 - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//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 - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//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(libc_getdtablesize_trampoline_addr, 0, 0, 0) - size = int(r0) - return -} - -var libc_getdtablesize_trampoline_addr uintptr - -//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 - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//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 - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//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 - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//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 - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//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 - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//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 - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//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 - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//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 - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//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 - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//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 - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//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 - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//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(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//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(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//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 - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//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 - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//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 - -func Lchown(path string, uid int, gid int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//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 - -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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//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 - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//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 - -func Mkdir(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//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 - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//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 - -func Mkfifo(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//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 - -func Mknod(path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//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 - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//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 - -func Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//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 - -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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//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 - -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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//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 - -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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//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 - -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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//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 - -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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//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 - -func Revoke(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//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 - -func Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//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 - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//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(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//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 - -func Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(attrBuf) > 0 { - _p1 = unsafe.Pointer(&attrBuf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setattrlist_trampoline_addr uintptr - -//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 Setegid(egid int) (err error) { - _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//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 - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//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 - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//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 - -func Setlogin(name string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//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 - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//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 - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//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 - -func Setprivexec(flag int) (err error) { - _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setprivexec_trampoline_addr uintptr - -//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 - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//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 - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//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 - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//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 - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//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 - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//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 - -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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//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 - -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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//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 - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//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 - -func Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//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 - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//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 - -func Undelete(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_undelete_trampoline_addr uintptr - -//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 - -func Unlink(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//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 - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//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 - -func Unmount(path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//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 - -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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//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 - -func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//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 - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//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 - -func readv(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readv readv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_preadv_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_preadv preadv "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writev(fd int, iovecs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_writev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_writev writev "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovecs) > 0 { - _p0 = unsafe.Pointer(&iovecs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwritev_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwritev pwritev "/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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//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 - -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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//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 - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//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 - -func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//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 - -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//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(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ptrace_trampoline_addr uintptr - -//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) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//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 - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//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 deleted file mode 100644 index 7f8998b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ /dev/null @@ -1,799 +0,0 @@ -// go run mkasm.go darwin arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - -TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - -TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - -TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - -TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - -TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - -TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - -TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - -TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - -TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renamex_np(SB) -GLOBL ·libc_renamex_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB) - -TEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameatx_np(SB) -GLOBL ·libc_renameatx_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_chdir_np(SB) -GLOBL ·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB) - -TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pthread_fchdir_np(SB) -GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) - -TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connectx(SB) -GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) - -TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - -TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - -TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - -TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - -TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - -TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setattrlist(SB) -GLOBL ·libc_setattrlist_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 -DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readv(SB) -GLOBL ·libc_readv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB) - -TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_preadv(SB) -GLOBL ·libc_preadv_trampoline_addr(SB), RODATA, $8 -DATA ·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB) - -TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_writev(SB) -GLOBL ·libc_writev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB) - -TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwritev(SB) -GLOBL ·libc_pwritev_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go deleted file mode 100644 index aad65fc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ /dev/null @@ -1,1666 +0,0 @@ -// 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 - -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 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 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 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 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 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 extpwrite(fd int, p []byte, flags int, 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_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - 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 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 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 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 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) { - 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 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 -} - -// 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 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 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) - 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 Mknodat(fd 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(fd), 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) - 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 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 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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)), 0, uintptr(length)) - 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 := 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) - } - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go deleted file mode 100644 index c009639..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ /dev/null @@ -1,1886 +0,0 @@ -// 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 - -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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - 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, 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 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) { - 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 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), uintptr(length>>32)) - 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 *uint64) (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_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 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) - 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(fdat 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(fdat), 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), uintptr(offset>>32), 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), uintptr(offset>>32), 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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), uintptr(length>>32)) - 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go deleted file mode 100644 index 7664df7..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// 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 - -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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { - 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) - 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(fdat 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(fdat), 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go deleted file mode 100644 index ae09918..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ /dev/null @@ -1,1886 +0,0 @@ -// 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 - -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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 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, 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 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) { - 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 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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 *uint64) (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_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) - 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) - 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(fdat 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(fdat), 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go deleted file mode 100644 index 11fd5d4..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// 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 - -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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { - 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) - 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(fdat 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(fdat), 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go deleted file mode 100644 index c3d2d65..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +++ /dev/null @@ -1,1886 +0,0 @@ -// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build freebsd && riscv64 - -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 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 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 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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 ptracePtr(request int, pid int, addr unsafe.Pointer, 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) - 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 CapEnter() (err error) { - _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func capRightsLimit(fd int, rightsp *CapRights) (err error) { - _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 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 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 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 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 ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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, 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 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) { - 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 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 getdirentries(fd int, buf []byte, basep *uint64) (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_GETDIRENTRIES, 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 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), 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) - 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(fdat 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(fdat), 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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) - } - 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 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) - 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 accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 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 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 -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go deleted file mode 100644 index c698cbc..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +++ /dev/null @@ -1,101 +0,0 @@ -// 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 - -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:linkname procreadv libc_readv -//go:linkname procpreadv libc_preadv -//go:linkname procwritev libc_writev -//go:linkname procpwritev libc_pwritev -//go:linkname procaccept4 libc_accept4 - -var ( - procreadv, - procpreadv, - procwritev, - procpwritev, - procaccept4 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 = errnoErr(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 = errnoErr(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 = errnoErr(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 = errnoErr(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 = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go deleted file mode 100644 index 5cc1e8e..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ /dev/null @@ -1,2240 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go:build linux - -package unix - -import ( - "syscall" - "unsafe" -) - -// 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 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 fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHMODAT2, 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - } - 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) - } - 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 Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { - _, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), 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 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 keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), 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 keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 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 ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (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 mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 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 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - 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 ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 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 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 ClockSettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_SETTIME, 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 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) - } - 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 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 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 Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { - r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) - fsfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsopen(fsName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSOPEN, 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 Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { - _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 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 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 MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fromPathName) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(toPathName) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), 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 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 OpenTree(dfd int, fileName string, flags uint) (r int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fileName) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - r = int(r0) - 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 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 pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (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, 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) - } - 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) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// 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 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) - } - r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(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 unsafe.Pointer - if len(iovs) > 0 { - _p0 = unsafe.Pointer(&iovs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func preadv(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_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 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 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - 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 mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0) - xaddr = uintptr(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, 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 Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FACCESSAT2, 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 nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, 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 PidfdOpen(pid int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), 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 PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), 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 PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { - _, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), 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 shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - r0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - result = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - _, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - r0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag)) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getitimer(which int, currValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { - _, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { - _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) { - _, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { - _, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), 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 Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) { - _, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), 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 Mseal(b []byte, flags uint) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go deleted file mode 100644 index 4def3e9..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ /dev/null @@ -1,486 +0,0 @@ -// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && 386 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) - 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_FCHOWN32, 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 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(dirfd 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(dirfd), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) - 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, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(SYS_LCHOWN32, 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 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) - 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_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - 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 := RawSyscall(SYS_GETGROUPS32, 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 := RawSyscall(SYS_SETGROUPS32, 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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 *rlimit32) (err error) { - _, _, e1 := 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go deleted file mode 100644 index fef2bc8..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && amd64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { - _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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) - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go deleted file mode 100644 index a9fd76a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ /dev/null @@ -1,601 +0,0 @@ -// 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 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS32, 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 := RawSyscall(SYS_SETGROUPS32, 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 := 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 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 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 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 socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN32, 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 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(dirfd 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(dirfd), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) - uid = int(r0) - 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_LCHOWN32, 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 Listen(s int, n int) (err error) { - _, _, e1 := 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_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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 utimes(path string, times *[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(times)), 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - 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 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 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 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) - 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) - 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 deleted file mode 100644 index 4600650..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ /dev/null @@ -1,552 +0,0 @@ -// 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 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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) { - 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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) (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 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_loong64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go deleted file mode 100644 index c8987d2..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +++ /dev/null @@ -1,486 +0,0 @@ -// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && loong64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := 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 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_PREAD64, 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_PWRITE64, 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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) (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 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_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go deleted file mode 100644 index 921f430..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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_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 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(dirfd 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(dirfd), 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 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(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 *rlimit32) (err error) { - _, _, e1 := 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 Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go deleted file mode 100644 index 44f0678..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ /dev/null @@ -1,647 +0,0 @@ -// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mips64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go deleted file mode 100644 index e7fa0ab..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ /dev/null @@ -1,636 +0,0 @@ -// 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 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 Fstatfs(fd int, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *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(st)), 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, st *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(st)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go deleted file mode 100644 index 8c51256..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ /dev/null @@ -1,653 +0,0 @@ -// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && mipsle - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r1)<<32 | int64(r0)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := 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 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, 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 SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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_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 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(dirfd 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(dirfd), 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 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(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 *rlimit32) (err error) { - _, _, e1 := 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 Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go deleted file mode 100644 index 7392fd4..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +++ /dev/null @@ -1,658 +0,0 @@ -// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(int64(r0)<<32 | int64(r1)) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 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 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(dirfd 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(dirfd), 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 Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length)) - 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, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { - _, _, e1 := 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_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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 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_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, 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 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(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 *rlimit32) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) - 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) - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go deleted file mode 100644 index 4118043..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ /dev/null @@ -1,704 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { - _, _, e1 := 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_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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 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) - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go deleted file mode 100644 index 40c6ce7..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ /dev/null @@ -1,704 +0,0 @@ -// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && ppc64le - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_UGETRLIMIT, 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 Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ioperm(from int, num int, on int) (err error) { - _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Iopl(level int) (err error) { - _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 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(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 Listen(s int, n int) (err error) { - _, _, e1 := 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_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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS__NEWSELECT, 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - if e1 != 0 { - err = errnoErr(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 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Time(t *Time_t) (tt Time_t, err error) { - r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) - tt = Time_t(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 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) - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go deleted file mode 100644 index 2cfe34a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ /dev/null @@ -1,548 +0,0 @@ -// 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 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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) { - 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - _, _, e1 := 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 MemfdSecret(flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_MEMFD_SECRET, 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 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_PREAD64, 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_PWRITE64, 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(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) (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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) { - var _p0 unsafe.Pointer - if len(pairs) > 0 { - _p0 = unsafe.Pointer(&pairs[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go deleted file mode 100644 index 61e6f07..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ /dev/null @@ -1,495 +0,0 @@ -// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && s390x - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) - 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 := 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 := 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 futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 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) - 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go deleted file mode 100644 index 834b842..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ /dev/null @@ -1,648 +0,0 @@ -// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build linux && sparc64 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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 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 Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) - n = int64(r0) - 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 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 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 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(dirfd 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(dirfd), 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, buf *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 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 Getegid() (egid int) { - r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) - uid = int(r0) - 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 Listen(s int, n int) (err error) { - _, _, e1 := 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_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 Pause() (err error) { - _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) - 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_PREAD64, 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_PWRITE64, 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 Renameat(olddirfd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Seek(fd int, offset int64, whence int) (off int64, err error) { - r0, _, e1 := 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 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - _, _, e1 := 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 Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { - r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int64(r0) - 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, buf *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(buf)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { - _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), 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 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 accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 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 getgroups(n int, list *_Gid_t) (nn int, err error) { - r0, _, e1 := 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 := 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 := 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 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 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 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 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 Utime(path string, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 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, times *[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(times)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Alarm(seconds uint) (remaining uint, err error) { - r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) - remaining = uint(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go deleted file mode 100644 index e91ebc1..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ /dev/null @@ -1,1848 +0,0 @@ -// 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 - -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 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 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 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]) - } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - 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 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 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 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) { - 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 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 { - 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _, _ := 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 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) - 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 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) - 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 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) - 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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 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 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 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) - 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go deleted file mode 100644 index be28bab..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ /dev/null @@ -1,1848 +0,0 @@ -// 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 - -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 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 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 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]) - } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - 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 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 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - 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 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) { - 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 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 { - 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 -} - -// 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 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) - 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 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) - 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 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) - 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)), 0, uintptr(offset), 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)), 0, uintptr(offset), 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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 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 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 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) - 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)), 0, uintptr(length)) - 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 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 := 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) - } - 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go deleted file mode 100644 index fb587e8..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ /dev/null @@ -1,1848 +0,0 @@ -// 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 - -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 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 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 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]) - } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - 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 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 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 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) { - 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 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 { - 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 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 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, _, _ := 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 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) - 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 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) - 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 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) - 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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)), 0, uintptr(offset), uintptr(offset>>32)) - 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, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := 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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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 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 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 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) - 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 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 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 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 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go deleted file mode 100644 index d576438..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ /dev/null @@ -1,1848 +0,0 @@ -// 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 - -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 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 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 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]) - } 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 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 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 ioctlPtr(fd int, req uint, arg unsafe.Pointer) (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 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) - 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 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 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 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 -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), 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 ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(file) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 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 ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attrname) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), 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 ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) { - _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) - 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 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) { - 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 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 { - 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 -} - -// 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 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) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - 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) - 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 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) - 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 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) - 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 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) - 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)), 0, uintptr(offset), 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)), 0, uintptr(offset), 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 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) - 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(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) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(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 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 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 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 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 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) - 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)), 0, uintptr(length)) - 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 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 := 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) - } - 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 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 mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go deleted file mode 100644 index 1851df1..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -libc -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 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s deleted file mode 100644 index 0b43c69..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd 386 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go deleted file mode 100644 index e1ec0db..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -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 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s deleted file mode 100644 index 880c6d6..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd amd64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go deleted file mode 100644 index 7c8452a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -l32 -openbsd -arm -libc -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 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) - newoffset = int64(int64(r1)<<32 | int64(r0)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s deleted file mode 100644 index b8ef95b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd arm -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 -DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 -DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 -DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 -DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 -DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 -DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 -DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 -DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 -DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 -DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 -DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 -DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 -DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 -DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 -DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 -DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 -DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 -DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 -DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 -DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 -DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 -DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 -DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 -DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 -DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 -DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 -DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 -DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 -DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 -DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 -DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go deleted file mode 100644 index 2ffdf86..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -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. - -//go:build openbsd && arm64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s deleted file mode 100644 index 2af3b5c..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd arm64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go deleted file mode 100644 index 1da08d5..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -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. - -//go:build openbsd && mips64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s deleted file mode 100644 index b7a2513..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd mips64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go deleted file mode 100644 index 6e85b0a..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && ppc64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s deleted file mode 100644 index f15dadf..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +++ /dev/null @@ -1,838 +0,0 @@ -// go run mkasm.go openbsd ppc64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgroups(SB) - RET -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgroups(SB) - RET -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_wait4(SB) - RET -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_accept(SB) - RET -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_bind(SB) - RET -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_connect(SB) - RET -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socket(SB) - RET -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockopt(SB) - RET -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsockopt(SB) - RET -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpeername(SB) - RET -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsockname(SB) - RET -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_shutdown(SB) - RET -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_socketpair(SB) - RET -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvfrom(SB) - RET -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendto(SB) - RET -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_recvmsg(SB) - RET -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sendmsg(SB) - RET -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kevent(SB) - RET -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimes(SB) - RET -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_futimes(SB) - RET -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_poll(SB) - RET -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_madvise(SB) - RET -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlock(SB) - RET -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mlockall(SB) - RET -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mprotect(SB) - RET -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_msync(SB) - RET -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlock(SB) - RET -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munlockall(SB) - RET -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pipe2(SB) - RET -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getdents(SB) - RET -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getcwd(SB) - RET -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresuid(SB) - RET -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getresgid(SB) - RET -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ioctl(SB) - RET -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sysctl(SB) - RET -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fcntl(SB) - RET -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ppoll(SB) - RET -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_access(SB) - RET -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_adjtime(SB) - RET -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chdir(SB) - RET -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chflags(SB) - RET -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chmod(SB) - RET -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chown(SB) - RET -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_chroot(SB) - RET -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_clock_gettime(SB) - RET -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_close(SB) - RET -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup(SB) - RET -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup2(SB) - RET -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_dup3(SB) - RET -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_exit(SB) - RET -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_faccessat(SB) - RET -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchdir(SB) - RET -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchflags(SB) - RET -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmod(SB) - RET -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchmodat(SB) - RET -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchown(SB) - RET -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fchownat(SB) - RET -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_flock(SB) - RET -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fpathconf(SB) - RET -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstat(SB) - RET -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatat(SB) - RET -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fstatfs(SB) - RET -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_fsync(SB) - RET -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ftruncate(SB) - RET -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getegid(SB) - RET -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_geteuid(SB) - RET -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getgid(SB) - RET -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgid(SB) - RET -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpgrp(SB) - RET -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpid(SB) - RET -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getppid(SB) - RET -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getpriority(SB) - RET -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrlimit(SB) - RET -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrtable(SB) - RET -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getrusage(SB) - RET -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getsid(SB) - RET -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_gettimeofday(SB) - RET -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getuid(SB) - RET -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_issetugid(SB) - RET -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kill(SB) - RET -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_kqueue(SB) - RET -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lchown(SB) - RET -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_link(SB) - RET -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_linkat(SB) - RET -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_listen(SB) - RET -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lstat(SB) - RET -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdir(SB) - RET -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkdirat(SB) - RET -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifo(SB) - RET -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mkfifoat(SB) - RET -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknod(SB) - RET -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mknodat(SB) - RET -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mount(SB) - RET -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_nanosleep(SB) - RET -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_open(SB) - RET -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_openat(SB) - RET -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pathconf(SB) - RET -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pread(SB) - RET -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pwrite(SB) - RET -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_read(SB) - RET -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlink(SB) - RET -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_readlinkat(SB) - RET -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rename(SB) - RET -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_renameat(SB) - RET -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_revoke(SB) - RET -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_rmdir(SB) - RET -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_lseek(SB) - RET -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_select(SB) - RET -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setegid(SB) - RET -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_seteuid(SB) - RET -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setgid(SB) - RET -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setlogin(SB) - RET -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpgid(SB) - RET -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setpriority(SB) - RET -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setregid(SB) - RET -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setreuid(SB) - RET -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresgid(SB) - RET -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setresuid(SB) - RET -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setrtable(SB) - RET -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setsid(SB) - RET -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_settimeofday(SB) - RET -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_setuid(SB) - RET -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_stat(SB) - RET -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_statfs(SB) - RET -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlink(SB) - RET -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_symlinkat(SB) - RET -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_sync(SB) - RET -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_truncate(SB) - RET -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_umask(SB) - RET -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlink(SB) - RET -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unlinkat(SB) - RET -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unmount(SB) - RET -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_write(SB) - RET -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_mmap(SB) - RET -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_munmap(SB) - RET -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_getfsstat(SB) - RET -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimensat(SB) - RET -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_pledge(SB) - RET -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_unveil(SB) - RET -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go deleted file mode 100644 index 28b487d..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +++ /dev/null @@ -1,2323 +0,0 @@ -// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build openbsd && riscv64 - -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 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgroups_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" - -// 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 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_wait4_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" - -// 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(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_accept_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_accept accept "libc.so" - -// 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(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_bind_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_bind bind "libc.so" - -// 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(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_connect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_connect connect "libc.so" - -// 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(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socket_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socket socket "libc.so" - -// 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(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" - -// 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(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsockopt_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" - -// 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(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpeername_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" - -// 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(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsockname_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(s int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_shutdown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" - -// 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(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_socketpair_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" - -// 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(libc_recvfrom_trampoline_addr, 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 -} - -var libc_recvfrom_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" - -// 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(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendto_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendto sendto "libc.so" - -// 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(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_recvmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" - -// 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(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sendmsg_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" - -// 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 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kevent_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kevent kevent "libc.so" - -// 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(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimes utimes "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_futimes_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_futimes futimes "libc.so" - -// 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(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_poll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_poll poll "libc.so" - -// 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_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_madvise_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_madvise madvise "libc.so" - -// 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_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlock mlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" - -// 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(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mprotect_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" - -// 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(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_msync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_msync msync "libc.so" - -// 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_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlock munlock "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munlockall_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pipe2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" - -// 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_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getdents_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getdents getdents "libc.so" - -// 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(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getcwd_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { - syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) - return -} - -var libc_getresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { - syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) - return -} - -var libc_getresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" - -// 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(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, 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 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(libc_sysctl_trampoline_addr, 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 -} - -var libc_sysctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fcntl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) - n = 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 := syscall_syscall6(libc_ppoll_trampoline_addr, 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 -} - -var libc_ppoll_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" - -// 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(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_access_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_access access "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_adjtime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" - -// 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(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chdir chdir "libc.so" - -// 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_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chflags chflags "libc.so" - -// 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(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chmod chmod "libc.so" - -// 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(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chown chown "libc.so" - -// 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(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_chroot_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_chroot chroot "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_clock_gettime_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_close_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_close close "libc.so" - -// 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(libc_dup_trampoline_addr, uintptr(fd), 0, 0) - nfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup dup "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(from int, to int) (err error) { - _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup2_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" - -// 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_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_dup3_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) - return -} - -var libc_exit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_exit exit "libc.so" - -// 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 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_faccessat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchflags(fd int, flags int) (err error) { - _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchflags_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" - -// 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 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchmodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" - -// 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(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchown fchown "libc.so" - -// 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 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fchownat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_flock_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_flock flock "libc.so" - -// 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_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fpathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" - -// 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(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstat fstat "libc.so" - -// 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 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fstatfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fsync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fsync fsync "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_ftruncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) - egid = int(r0) - return -} - -var libc_getegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getegid getegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_geteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) - gid = int(r0) - return -} - -var libc_getgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getgid getgid "libc.so" - -// 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(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgrp() (pgrp int) { - r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) - pgrp = int(r0) - return -} - -var libc_getpgrp_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) - pid = int(r0) - return -} - -var libc_getpid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpid getpid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) - ppid = int(r0) - return -} - -var libc_getppid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getppid getppid "libc.so" - -// 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(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrlimit_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrtable() (rtable int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) - rtable = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getrusage_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" - -// 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(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getsid getsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_gettimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) - uid = int(r0) - return -} - -var libc_getuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getuid getuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Issetugid() (tainted bool) { - r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) - tainted = bool(r0 != 0) - return -} - -var libc_issetugid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kill_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kill kill "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kqueue() (fd int, err error) { - r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_kqueue_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" - -// 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(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lchown_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lchown lchown "libc.so" - -// 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(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_link_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_link link "libc.so" - -// 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 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_linkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_linkat linkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, backlog int) (err error) { - _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_listen_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_listen listen "libc.so" - -// 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_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lstat lstat "libc.so" - -// 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(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" - -// 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_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkdirat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" - -// 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(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifo_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" - -// 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_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mkfifoat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" - -// 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(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknod_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknod mknod "libc.so" - -// 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 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mknodat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(fsType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(dir) - if err != nil { - return - } - _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mount mount "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_nanosleep_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" - -// 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(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_open_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_open open "libc.so" - -// 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 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_openat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_openat openat "libc.so" - -// 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_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pathconf_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" - -// 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(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pread_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pread pread "libc.so" - -// 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(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pwrite_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" - -// 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(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_read_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_read read "libc.so" - -// 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(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlink readlink "libc.so" - -// 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 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_readlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" - -// 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(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rename_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rename rename "libc.so" - -// 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 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_renameat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_renameat renameat "libc.so" - -// 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_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_revoke_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_revoke revoke "libc.so" - -// 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(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_rmdir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" - -// 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_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) - newoffset = int64(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_lseek_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_lseek lseek "libc.so" - -// 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 := syscall_syscall6(libc_select_trampoline_addr, 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) - } - return -} - -var libc_select_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_select select "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setegid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setegid setegid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_seteuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(gid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setgid setgid "libc.so" - -// 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_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setlogin_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" - -// 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(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setpriority_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setregid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setregid setregid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setreuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresgid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setresuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrtable(rtable int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setrtable_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setsid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setsid setsid "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_settimeofday_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_setuid_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_setuid setuid "libc.so" - -// 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_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_stat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_stat stat "libc.so" - -// 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_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_statfs_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_statfs statfs "libc.so" - -// 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(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlink symlink "libc.so" - -// 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_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_symlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() (err error) { - _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_sync_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_sync sync "libc.so" - -// 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(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_truncate_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_truncate truncate "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(newmask int) (oldmask int) { - r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) - oldmask = int(r0) - return -} - -var libc_umask_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_umask umask "libc.so" - -// 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(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlink_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlink unlink "libc.so" - -// 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_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unlinkat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" - -// 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_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unmount_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unmount unmount "libc.so" - -// 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(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_write_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_write write "libc.so" - -// 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(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_mmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_mmap mmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_munmap_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_munmap munmap "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { - r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_getfsstat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" - -// 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 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_utimensat_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pledge(promises *byte, execpromises *byte) (err error) { - _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_pledge_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_pledge pledge "libc.so" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unveil(path *byte, flags *byte) (err error) { - _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_unveil_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_unveil unveil "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s deleted file mode 100644 index 1e7f321..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +++ /dev/null @@ -1,699 +0,0 @@ -// go run mkasm.go openbsd riscv64 -// Code generated by the command above; DO NOT EDIT. - -#include "textflag.h" - -TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - -TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - -TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 -DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - -TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 -DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - -TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 -DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - -TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - -TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - -TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - -TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - -TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - -TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - -TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - -TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 -DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - -TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - -TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - -TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - -TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - -TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - -TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - -TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 -DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - -TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - -TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 -DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - -TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - -TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - -TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - -TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - -TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - -TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - -TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe2(SB) -GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) - -TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdents(SB) -GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) - -TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresuid(SB) -GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) - -TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getresgid(SB) -GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) - -TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - -TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - -TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) -GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) - -TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 -DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - -TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - -TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - -TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - -TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - -TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - -TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 -DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - -TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 -DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - -TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 -DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - -TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - -TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - -TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup3(SB) -GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 -DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) - -TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - -TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - -TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - -TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - -TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - -TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - -TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - -TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - -TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 -DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - -TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - -TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - -TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - -TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - -TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - -TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - -TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - -TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - -TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - -TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - -TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - -TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - -TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - -TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - -TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - -TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrtable(SB) -GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) - -TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - -TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - -TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - -TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - -TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - -TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - -TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 -DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - -TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - -TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 -DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - -TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - -TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 -DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - -TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - -TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - -TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - -TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - -TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifoat(SB) -GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) - -TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - -TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknodat(SB) -GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) - -TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - -TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_nanosleep(SB) -GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 -DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) - -TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 -DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - -TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - -TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - -TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - -TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - -TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 -DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - -TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - -TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - -TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - -TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - -TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 -DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - -TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - -TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 -DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - -TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 -DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - -TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - -TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - -TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - -TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - -TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - -TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - -TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - -TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresgid(SB) -GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) - -TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setresuid(SB) -GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) - -TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setrtable(SB) -GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) - -TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - -TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 -DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - -TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 -DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - -TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - -TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 -DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) - -TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - -TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - -TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 -DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - -TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 -DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - -TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 -DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - -TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - -TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - -TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - -TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 -DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - -TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - -TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 -DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - -TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 -DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - -TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pledge(SB) -GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) - -TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unveil(SB) -GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go deleted file mode 100644 index c654541..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ /dev/null @@ -1,2217 +0,0 @@ -// 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 - -package unix - -import ( - "syscall" - "unsafe" -) - -//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" -//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" -//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" -//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" -//go:cgo_import_dynamic libc_utimes utimes "libc.so" -//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" -//go:cgo_import_dynamic libc_accept accept "libsocket.so" -//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" -//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" -//go:cgo_import_dynamic libc_acct acct "libc.so" -//go:cgo_import_dynamic libc___makedev __makedev "libc.so" -//go:cgo_import_dynamic libc___major __major "libc.so" -//go:cgo_import_dynamic libc___minor __minor "libc.so" -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -//go:cgo_import_dynamic libc_poll poll "libc.so" -//go:cgo_import_dynamic libc_access access "libc.so" -//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" -//go:cgo_import_dynamic libc_chdir chdir "libc.so" -//go:cgo_import_dynamic libc_chmod chmod "libc.so" -//go:cgo_import_dynamic libc_chown chown "libc.so" -//go:cgo_import_dynamic libc_chroot chroot "libc.so" -//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" -//go:cgo_import_dynamic libc_close close "libc.so" -//go:cgo_import_dynamic libc_creat creat "libc.so" -//go:cgo_import_dynamic libc_dup dup "libc.so" -//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" -//go:cgo_import_dynamic libc_exit exit "libc.so" -//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" -//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" -//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" -//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" -//go:cgo_import_dynamic libc_fchown fchown "libc.so" -//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" -//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" -//go:cgo_import_dynamic libc_flock flock "libc.so" -//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" -//go:cgo_import_dynamic libc_fstat fstat "libc.so" -//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" -//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" -//go:cgo_import_dynamic libc_getdents getdents "libc.so" -//go:cgo_import_dynamic libc_getgid getgid "libc.so" -//go:cgo_import_dynamic libc_getpid getpid "libc.so" -//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" -//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" -//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" -//go:cgo_import_dynamic libc_getegid getegid "libc.so" -//go:cgo_import_dynamic libc_getppid getppid "libc.so" -//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" -//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" -//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" -//go:cgo_import_dynamic libc_getsid getsid "libc.so" -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" -//go:cgo_import_dynamic libc_getuid getuid "libc.so" -//go:cgo_import_dynamic libc_kill kill "libc.so" -//go:cgo_import_dynamic libc_lchown lchown "libc.so" -//go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" -//go:cgo_import_dynamic libc_lstat lstat "libc.so" -//go:cgo_import_dynamic libc_madvise madvise "libc.so" -//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" -//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" -//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" -//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" -//go:cgo_import_dynamic libc_mknod mknod "libc.so" -//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" -//go:cgo_import_dynamic libc_mlock mlock "libc.so" -//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" -//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" -//go:cgo_import_dynamic libc_msync msync "libc.so" -//go:cgo_import_dynamic libc_munlock munlock "libc.so" -//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" -//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" -//go:cgo_import_dynamic libc_open open "libc.so" -//go:cgo_import_dynamic libc_openat openat "libc.so" -//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" -//go:cgo_import_dynamic libc_pause pause "libc.so" -//go:cgo_import_dynamic libc_pread pread "libc.so" -//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" -//go:cgo_import_dynamic libc_read read "libc.so" -//go:cgo_import_dynamic libc_readlink readlink "libc.so" -//go:cgo_import_dynamic libc_rename rename "libc.so" -//go:cgo_import_dynamic libc_renameat renameat "libc.so" -//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" -//go:cgo_import_dynamic libc_lseek lseek "libc.so" -//go:cgo_import_dynamic libc_select select "libc.so" -//go:cgo_import_dynamic libc_setegid setegid "libc.so" -//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" -//go:cgo_import_dynamic libc_setgid setgid "libc.so" -//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" -//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" -//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" -//go:cgo_import_dynamic libc_setregid setregid "libc.so" -//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" -//go:cgo_import_dynamic libc_setsid setsid "libc.so" -//go:cgo_import_dynamic libc_setuid setuid "libc.so" -//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" -//go:cgo_import_dynamic libc_stat stat "libc.so" -//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" -//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" -//go:cgo_import_dynamic libc_umask umask "libc.so" -//go:cgo_import_dynamic libc_uname uname "libc.so" -//go:cgo_import_dynamic libc_umount umount "libc.so" -//go:cgo_import_dynamic libc_unlink unlink "libc.so" -//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" -//go:cgo_import_dynamic libc_ustat ustat "libc.so" -//go:cgo_import_dynamic libc_utime utime "libc.so" -//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" -//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" -//go:cgo_import_dynamic libc_mmap mmap "libc.so" -//go:cgo_import_dynamic libc_munmap munmap "libc.so" -//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" -//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" -//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" -//go:cgo_import_dynamic libc_write write "libc.so" -//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" -//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" -//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" -//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" -//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" -//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" -//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" -//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" -//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" -//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" -//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" -//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" -//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" -//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" -//go:cgo_import_dynamic libc_port_create port_create "libc.so" -//go:cgo_import_dynamic libc_port_associate port_associate "libc.so" -//go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" -//go:cgo_import_dynamic libc_port_get port_get "libc.so" -//go:cgo_import_dynamic libc_port_getn port_getn "libc.so" -//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" -//go:cgo_import_dynamic libc_getmsg getmsg "libc.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 -//go:linkname procsetgroups libc_setgroups -//go:linkname procwait4 libc_wait4 -//go:linkname procgethostname libc_gethostname -//go:linkname procutimes libc_utimes -//go:linkname procutimensat libc_utimensat -//go:linkname procfcntl libc_fcntl -//go:linkname procfutimesat libc_futimesat -//go:linkname procaccept libc_accept -//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg -//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg -//go:linkname procacct libc_acct -//go:linkname proc__makedev libc___makedev -//go:linkname proc__major libc___major -//go:linkname proc__minor libc___minor -//go:linkname procioctl libc_ioctl -//go:linkname procpoll libc_poll -//go:linkname procAccess libc_access -//go:linkname procAdjtime libc_adjtime -//go:linkname procChdir libc_chdir -//go:linkname procChmod libc_chmod -//go:linkname procChown libc_chown -//go:linkname procChroot libc_chroot -//go:linkname procClockGettime libc_clockgettime -//go:linkname procClose libc_close -//go:linkname procCreat libc_creat -//go:linkname procDup libc_dup -//go:linkname procDup2 libc_dup2 -//go:linkname procExit libc_exit -//go:linkname procFaccessat libc_faccessat -//go:linkname procFchdir libc_fchdir -//go:linkname procFchmod libc_fchmod -//go:linkname procFchmodat libc_fchmodat -//go:linkname procFchown libc_fchown -//go:linkname procFchownat libc_fchownat -//go:linkname procFdatasync libc_fdatasync -//go:linkname procFlock libc_flock -//go:linkname procFpathconf libc_fpathconf -//go:linkname procFstat libc_fstat -//go:linkname procFstatat libc_fstatat -//go:linkname procFstatvfs libc_fstatvfs -//go:linkname procGetdents libc_getdents -//go:linkname procGetgid libc_getgid -//go:linkname procGetpid libc_getpid -//go:linkname procGetpgid libc_getpgid -//go:linkname procGetpgrp libc_getpgrp -//go:linkname procGeteuid libc_geteuid -//go:linkname procGetegid libc_getegid -//go:linkname procGetppid libc_getppid -//go:linkname procGetpriority libc_getpriority -//go:linkname procGetrlimit libc_getrlimit -//go:linkname procGetrusage libc_getrusage -//go:linkname procGetsid libc_getsid -//go:linkname procGettimeofday libc_gettimeofday -//go:linkname procGetuid libc_getuid -//go:linkname procKill libc_kill -//go:linkname procLchown libc_lchown -//go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten -//go:linkname procLstat libc_lstat -//go:linkname procMadvise libc_madvise -//go:linkname procMkdir libc_mkdir -//go:linkname procMkdirat libc_mkdirat -//go:linkname procMkfifo libc_mkfifo -//go:linkname procMkfifoat libc_mkfifoat -//go:linkname procMknod libc_mknod -//go:linkname procMknodat libc_mknodat -//go:linkname procMlock libc_mlock -//go:linkname procMlockall libc_mlockall -//go:linkname procMprotect libc_mprotect -//go:linkname procMsync libc_msync -//go:linkname procMunlock libc_munlock -//go:linkname procMunlockall libc_munlockall -//go:linkname procNanosleep libc_nanosleep -//go:linkname procOpen libc_open -//go:linkname procOpenat libc_openat -//go:linkname procPathconf libc_pathconf -//go:linkname procPause libc_pause -//go:linkname procpread libc_pread -//go:linkname procpwrite libc_pwrite -//go:linkname procread libc_read -//go:linkname procReadlink libc_readlink -//go:linkname procRename libc_rename -//go:linkname procRenameat libc_renameat -//go:linkname procRmdir libc_rmdir -//go:linkname proclseek libc_lseek -//go:linkname procSelect libc_select -//go:linkname procSetegid libc_setegid -//go:linkname procSeteuid libc_seteuid -//go:linkname procSetgid libc_setgid -//go:linkname procSethostname libc_sethostname -//go:linkname procSetpgid libc_setpgid -//go:linkname procSetpriority libc_setpriority -//go:linkname procSetregid libc_setregid -//go:linkname procSetreuid libc_setreuid -//go:linkname procSetsid libc_setsid -//go:linkname procSetuid libc_setuid -//go:linkname procshutdown libc_shutdown -//go:linkname procStat libc_stat -//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 -//go:linkname procFtruncate libc_ftruncate -//go:linkname procUmask libc_umask -//go:linkname procUname libc_uname -//go:linkname procumount libc_umount -//go:linkname procUnlink libc_unlink -//go:linkname procUnlinkat libc_unlinkat -//go:linkname procUstat libc_ustat -//go:linkname procUtime libc_utime -//go:linkname proc__xnet_bind libc___xnet_bind -//go:linkname proc__xnet_connect libc___xnet_connect -//go:linkname procmmap libc_mmap -//go:linkname procmunmap libc_munmap -//go:linkname procsendfile libc_sendfile -//go:linkname proc__xnet_sendto libc___xnet_sendto -//go:linkname proc__xnet_socket libc___xnet_socket -//go:linkname proc__xnet_socketpair libc___xnet_socketpair -//go:linkname procwrite libc_write -//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt -//go:linkname procgetpeername libc_getpeername -//go:linkname procsetsockopt libc_setsockopt -//go:linkname procrecvfrom libc_recvfrom -//go:linkname procgetpeerucred libc_getpeerucred -//go:linkname procucred_get libc_ucred_get -//go:linkname procucred_geteuid libc_ucred_geteuid -//go:linkname procucred_getegid libc_ucred_getegid -//go:linkname procucred_getruid libc_ucred_getruid -//go:linkname procucred_getrgid libc_ucred_getrgid -//go:linkname procucred_getsuid libc_ucred_getsuid -//go:linkname procucred_getsgid libc_ucred_getsgid -//go:linkname procucred_getpid libc_ucred_getpid -//go:linkname procucred_free libc_ucred_free -//go:linkname procport_create libc_port_create -//go:linkname procport_associate libc_port_associate -//go:linkname procport_dissociate libc_port_dissociate -//go:linkname procport_get libc_port_get -//go:linkname procport_getn libc_port_getn -//go:linkname procputmsg libc_putmsg -//go:linkname procgetmsg libc_getmsg - -var ( - procpipe, - procpipe2, - procgetsockname, - procGetcwd, - procgetgroups, - procsetgroups, - procwait4, - procgethostname, - procutimes, - procutimensat, - procfcntl, - procfutimesat, - procaccept, - proc__xnet_recvmsg, - proc__xnet_sendmsg, - procacct, - proc__makedev, - proc__major, - proc__minor, - procioctl, - procpoll, - procAccess, - procAdjtime, - procChdir, - procChmod, - procChown, - procChroot, - procClockGettime, - procClose, - procCreat, - procDup, - procDup2, - procExit, - procFaccessat, - procFchdir, - procFchmod, - procFchmodat, - procFchown, - procFchownat, - procFdatasync, - procFlock, - procFpathconf, - procFstat, - procFstatat, - procFstatvfs, - procGetdents, - procGetgid, - procGetpid, - procGetpgid, - procGetpgrp, - procGeteuid, - procGetegid, - procGetppid, - procGetpriority, - procGetrlimit, - procGetrusage, - procGetsid, - procGettimeofday, - procGetuid, - procKill, - procLchown, - procLink, - proc__xnet_llisten, - procLstat, - procMadvise, - procMkdir, - procMkdirat, - procMkfifo, - procMkfifoat, - procMknod, - procMknodat, - procMlock, - procMlockall, - procMprotect, - procMsync, - procMunlock, - procMunlockall, - procNanosleep, - procOpen, - procOpenat, - procPathconf, - procPause, - procpread, - procpwrite, - procread, - procReadlink, - procRename, - procRenameat, - procRmdir, - proclseek, - procSelect, - procSetegid, - procSeteuid, - procSetgid, - procSethostname, - procSetpgid, - procSetpriority, - procSetregid, - procSetreuid, - procSetsid, - procSetuid, - procshutdown, - procStat, - procStatvfs, - procSymlink, - procSync, - procSysconf, - procTimes, - procTruncate, - procFsync, - procFtruncate, - procUmask, - procUname, - procumount, - procUnlink, - procUnlinkat, - procUstat, - procUtime, - proc__xnet_bind, - proc__xnet_connect, - procmmap, - procmunmap, - procsendfile, - proc__xnet_sendto, - proc__xnet_socket, - proc__xnet_socketpair, - procwrite, - proc__xnet_getsockopt, - procgetpeername, - procsetsockopt, - procrecvfrom, - procgetpeerucred, - procucred_get, - procucred_geteuid, - procucred_getegid, - procucred_getruid, - procucred_getrgid, - procucred_getsuid, - procucred_getsgid, - procucred_getpid, - procucred_free, - procport_create, - procport_associate, - procport_dissociate, - procport_get, - procport_getn, - procputmsg, - procgetmsg syscallFunc -) - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 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 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 = 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 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 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 setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int32(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gethostname(buf []byte) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 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 utimes(path string, times *[2]Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 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 fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 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 futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 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 recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 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 acct(path *byte) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __makedev(version int, major uint, minor uint) (val uint64) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) - val = uint64(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __major(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func __minor(version int, dev uint64) (val uint) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) - val = uint(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlRet(fd int, req int, 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 = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (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 = 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 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 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 Access(path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 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 Dup(fd int) (nfd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 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(oldfd int, newfd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 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) { - sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, 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 Fdatasync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 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 Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, 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 Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 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, basep *uintptr) (n int, err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 Getgid() (gid int) { - r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 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, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 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() (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 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 Geteuid() (euid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 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) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 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 Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 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 Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 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, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 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_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, 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 Mlock(b []byte) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) - 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 *byte - if len(b) > 0 { - _p0 = &b[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 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 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 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, 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 Pathconf(path string, name int) (val int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 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 Pause() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) - 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 *byte - if len(buf) > 0 { - _p1 = &buf[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat(olddirfd int, 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 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), 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 Rmdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - 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(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 = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 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 *byte - if len(p) > 0 { - _p0 = &p[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statvfs(path string, vfsstat *Statvfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// 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 = 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 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 Truncate(path string, length int64) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - 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, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 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, buf *Utimbuf) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - 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 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, 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 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = 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 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_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 socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 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 socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, 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 write(fd int, p []byte) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 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 getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, 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 getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, 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 recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { - var _p0 *byte - if len(p) > 0 { - _p0 = &p[0] - } - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_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 getpeerucred(fd uintptr, ucred *uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGet(pid int) (ucred uintptr, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) - ucred = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGeteuid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetegid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetruid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetrgid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetsuid(ucred uintptr) (uid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - uid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetsgid(ucred uintptr) (gid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredGetpid(ucred uintptr) (pid int) { - r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ucredFree(ucred uintptr) { - sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func port_create() (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 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 port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 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 port_dissociate(port int, source int, object uintptr) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 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 port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 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 port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 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 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 = errnoErr(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 = errnoErr(e1) - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go deleted file mode 100644 index 7ccf66b..0000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +++ /dev/null @@ -1,3458 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x - -package unix - -import ( - "runtime" - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) - runtime.ExitSyscall() - val = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error)) - -var Flistxattr = enter_Flistxattr - -func enter_Flistxattr(fd int, dest []byte) (sz int, err error) { - funcref := get_FlistxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, "") == 0 { - *funcref = impl_Flistxattr - } else { - *funcref = error_Flistxattr - } - return (*funcref)(fd, dest) -} - -func error_Flistxattr(fd int, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FremovexattrAddr() *(func(fd int, attr string) (err error)) - -var Fremovexattr = enter_Fremovexattr - -func enter_Fremovexattr(fd int, attr string) (err error) { - funcref := get_FremovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Fremovexattr - } else { - *funcref = error_Fremovexattr - } - return (*funcref)(fd, attr) -} - -func error_Fremovexattr(fd int, attr string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error)) - -var Fgetxattr = enter_Fgetxattr - -func enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - funcref := get_FgetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, "") == 0 { - *funcref = impl_Fgetxattr - } else { - *funcref = error_Fgetxattr - } - return (*funcref)(fd, attr, dest) -} - -func error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(data) > 0 { - _p1 = unsafe.Pointer(&data[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error)) - -var Fsetxattr = enter_Fsetxattr - -func enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - funcref := get_FsetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, "") == 0 { - *funcref = impl_Fsetxattr - } else { - *funcref = error_Fsetxattr - } - return (*funcref)(fd, attr, data, flag) -} - -func error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) { - err = ENOSYS - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)) - -var accept4 = enter_accept4 - -func enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - funcref := get_accept4Addr() - if funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, "") == 0 { - *funcref = impl_accept4 - } else { - *funcref = error_accept4 - } - return (*funcref)(s, rsa, addrlen, flags) -} - -func error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) - nn = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func setgroups(n int, list *_Gid_t) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto)) - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_RemovexattrAddr() *(func(path string, attr string) (err error)) - -var Removexattr = enter_Removexattr - -func enter_Removexattr(path string, attr string) (err error) { - funcref := get_RemovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Removexattr - } else { - *funcref = error_Removexattr - } - return (*funcref)(path, attr) -} - -func error_Removexattr(path string, attr string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - runtime.ExitSyscall() - ret = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req int, arg uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag)) - runtime.ExitSyscall() - ret = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - result = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmdt(addr uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func shmget(key int, size int, flag int) (id int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag)) - runtime.ExitSyscall() - id = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Dup3(oldfd int, newfd int, flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error)) - -var Dup3 = enter_Dup3 - -func enter_Dup3(oldfd int, newfd int, flags int) (err error) { - funcref := get_Dup3Addr() - if funcptrtest(GetZosLibVec()+SYS_DUP3<<4, "") == 0 { - *funcref = impl_Dup3 - } else { - *funcref = error_Dup3 - } - return (*funcref)(oldfd, newfd, flags) -} - -func error_Dup3(oldfd int, newfd int, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Dirfd(dirp uintptr) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_DirfdAddr() *(func(dirp uintptr) (fd int, err error)) - -var Dirfd = enter_Dirfd - -func enter_Dirfd(dirp uintptr) (fd int, err error) { - funcref := get_DirfdAddr() - if funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, "") == 0 { - *funcref = impl_Dirfd - } else { - *funcref = error_Dirfd - } - return (*funcref)(dirp) -} - -func error_Dirfd(dirp uintptr) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCreate(size int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCreateAddr() *(func(size int) (fd int, err error)) - -var EpollCreate = enter_EpollCreate - -func enter_EpollCreate(size int) (fd int, err error) { - funcref := get_EpollCreateAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, "") == 0 { - *funcref = impl_EpollCreate - } else { - *funcref = error_EpollCreate - } - return (*funcref)(size) -} - -func error_EpollCreate(size int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCreate1(flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCreate1Addr() *(func(flags int) (fd int, err error)) - -var EpollCreate1 = enter_EpollCreate1 - -func enter_EpollCreate1(flags int) (fd int, err error) { - funcref := get_EpollCreate1Addr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, "") == 0 { - *funcref = impl_EpollCreate1 - } else { - *funcref = error_EpollCreate1 - } - return (*funcref)(flags) -} - -func error_EpollCreate1(flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error)) - -var EpollCtl = enter_EpollCtl - -func enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - funcref := get_EpollCtlAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, "") == 0 { - *funcref = impl_EpollCtl - } else { - *funcref = error_EpollCtl - } - return (*funcref)(epfd, op, fd, event) -} - -func error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask))) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error)) - -var EpollPwait = enter_EpollPwait - -func enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - funcref := get_EpollPwaitAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, "") == 0 { - *funcref = impl_EpollPwait - } else { - *funcref = error_EpollPwait - } - return (*funcref)(epfd, events, msec, sigmask) -} - -func error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error)) - -var EpollWait = enter_EpollWait - -func enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - funcref := get_EpollWaitAddr() - if funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, "") == 0 { - *funcref = impl_EpollWait - } else { - *funcref = error_EpollWait - } - return (*funcref)(epfd, events, msec) -} - -func error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Errno2() (er2 int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4) - runtime.ExitSyscall() - er2 = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Eventfd(initval uint, flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error)) - -var Eventfd = enter_Eventfd - -func enter_Eventfd(initval uint, flags int) (fd int, err error) { - funcref := get_EventfdAddr() - if funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, "") == 0 { - *funcref = impl_Eventfd - } else { - *funcref = error_Eventfd - } - return (*funcref)(initval, flags) -} - -func error_Eventfd(initval uint, flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code)) - runtime.ExitSyscall() - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) - -var Faccessat = enter_Faccessat - -func enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - funcref := get_FaccessatAddr() - if funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, "") == 0 { - *funcref = impl_Faccessat - } else { - *funcref = error_Faccessat - } - return (*funcref)(dirfd, path, mode, flags) -} - -func error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchdir(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error)) - -var Fchmodat = enter_Fchmodat - -func enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - funcref := get_FchmodatAddr() - if funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, "") == 0 { - *funcref = impl_Fchmodat - } else { - *funcref = error_Fchmodat - } - return (*funcref)(dirfd, path, mode, flags) -} - -func error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchown(fd int, uid int, gid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error)) - -var Fchownat = enter_Fchownat - -func enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - funcref := get_FchownatAddr() - if funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, "") == 0 { - *funcref = impl_Fchownat - } else { - *funcref = error_Fchownat - } - return (*funcref)(fd, path, uid, gid, flags) -} - -func error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) { - err = ENOSYS - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg)) - runtime.ExitSyscall() - retval = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fdatasync(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FdatasyncAddr() *(func(fd int) (err error)) - -var Fdatasync = enter_Fdatasync - -func enter_Fdatasync(fd int) (err error) { - funcref := get_FdatasyncAddr() - if funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, "") == 0 { - *funcref = impl_Fdatasync - } else { - *funcref = error_Fdatasync - } - return (*funcref)(fd) -} - -func error_Fdatasync(fd int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fstat(fd int, stat *Stat_LE_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error)) - -var fstatat = enter_fstatat - -func enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - funcref := get_fstatatAddr() - if funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, "") == 0 { - *funcref = impl_fstatat - } else { - *funcref = error_fstatat - } - return (*funcref)(dirfd, path, stat, flags) -} - -func error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(link) - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error)) - -var Lgetxattr = enter_Lgetxattr - -func enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - funcref := get_LgetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, "") == 0 { - *funcref = impl_Lgetxattr - } else { - *funcref = error_Lgetxattr - } - return (*funcref)(link, attr, dest) -} - -func error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error)) - -var Lsetxattr = enter_Lsetxattr - -func enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - funcref := get_LsetxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, "") == 0 { - *funcref = impl_Lsetxattr - } else { - *funcref = error_Lsetxattr - } - return (*funcref)(path, attr, data, flags) -} - -func error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Fstatfs(fd int, buf *Statfs_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error)) - -var Fstatfs = enter_Fstatfs - -func enter_Fstatfs(fd int, buf *Statfs_t) (err error) { - funcref := get_FstatfsAddr() - if funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, "") == 0 { - *funcref = impl_Fstatfs - } else { - *funcref = error_Fstatfs - } - return (*funcref)(fd, buf) -} - -func error_Fstatfs(fd int, buf *Statfs_t) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatvfs(fd int, stat *Statvfs_t) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Futimes(fd int, tv []Timeval) (err error) { - var _p0 unsafe.Pointer - if len(tv) > 0 { - _p0 = unsafe.Pointer(&tv[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FutimesAddr() *(func(fd int, tv []Timeval) (err error)) - -var Futimes = enter_Futimes - -func enter_Futimes(fd int, tv []Timeval) (err error) { - funcref := get_FutimesAddr() - if funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, "") == 0 { - *funcref = impl_Futimes - } else { - *funcref = error_Futimes - } - return (*funcref)(fd, tv) -} - -func error_Futimes(fd int, tv []Timeval) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(tv) > 0 { - _p1 = unsafe.Pointer(&tv[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error)) - -var Futimesat = enter_Futimesat - -func enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - funcref := get_FutimesatAddr() - if funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, "") == 0 { - *funcref = impl_Futimesat - } else { - *funcref = error_Futimesat - } - return (*funcref)(dirfd, path, tv) -} - -func error_Futimesat(dirfd int, path string, tv []Timeval) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Ftruncate(fd int, length int64) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error)) - -var Getrandom = enter_Getrandom - -func enter_Getrandom(buf []byte, flags int) (n int, err error) { - funcref := get_GetrandomAddr() - if funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, "") == 0 { - *funcref = impl_Getrandom - } else { - *funcref = error_Getrandom - } - return (*funcref)(buf, flags) -} - -func error_Getrandom(buf []byte, flags int) (n int, err error) { - n = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyInit() (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyInitAddr() *(func() (fd int, err error)) - -var InotifyInit = enter_InotifyInit - -func enter_InotifyInit() (fd int, err error) { - funcref := get_InotifyInitAddr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, "") == 0 { - *funcref = impl_InotifyInit - } else { - *funcref = error_InotifyInit - } - return (*funcref)() -} - -func error_InotifyInit() (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyInit1(flags int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyInit1Addr() *(func(flags int) (fd int, err error)) - -var InotifyInit1 = enter_InotifyInit1 - -func enter_InotifyInit1(flags int) (fd int, err error) { - funcref := get_InotifyInit1Addr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, "") == 0 { - *funcref = impl_InotifyInit1 - } else { - *funcref = error_InotifyInit1 - } - return (*funcref)(flags) -} - -func error_InotifyInit1(flags int) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - runtime.ExitSyscall() - watchdesc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error)) - -var InotifyAddWatch = enter_InotifyAddWatch - -func enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - funcref := get_InotifyAddWatchAddr() - if funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, "") == 0 { - *funcref = impl_InotifyAddWatch - } else { - *funcref = error_InotifyAddWatch - } - return (*funcref)(fd, pathname, mask) -} - -func error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - watchdesc = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc)) - runtime.ExitSyscall() - success = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error)) - -var InotifyRmWatch = enter_InotifyRmWatch - -func enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - funcref := get_InotifyRmWatchAddr() - if funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, "") == 0 { - *funcref = impl_InotifyRmWatch - } else { - *funcref = error_InotifyRmWatch - } - return (*funcref)(fd, watchdesc) -} - -func error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - success = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error)) - -var Listxattr = enter_Listxattr - -func enter_Listxattr(path string, dest []byte) (sz int, err error) { - funcref := get_ListxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, "") == 0 { - *funcref = impl_Listxattr - } else { - *funcref = error_Listxattr - } - return (*funcref)(path, dest) -} - -func error_Listxattr(path string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - runtime.ExitSyscall() - sz = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error)) - -var Llistxattr = enter_Llistxattr - -func enter_Llistxattr(path string, dest []byte) (sz int, err error) { - funcref := get_LlistxattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, "") == 0 { - *funcref = impl_Llistxattr - } else { - *funcref = error_Llistxattr - } - return (*funcref)(path, dest) -} - -func error_Llistxattr(path string, dest []byte) (sz int, err error) { - sz = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LremovexattrAddr() *(func(path string, attr string) (err error)) - -var Lremovexattr = enter_Lremovexattr - -func enter_Lremovexattr(path string, attr string) (err error) { - funcref := get_LremovexattrAddr() - if funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, "") == 0 { - *funcref = impl_Lremovexattr - } else { - *funcref = error_Lremovexattr - } - return (*funcref)(path, attr) -} - -func error_Lremovexattr(path string, attr string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Lutimes(path string, tv []Timeval) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(tv) > 0 { - _p1 = unsafe.Pointer(&tv[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LutimesAddr() *(func(path string, tv []Timeval) (err error)) - -var Lutimes = enter_Lutimes - -func enter_Lutimes(path string, tv []Timeval) (err error) { - funcref := get_LutimesAddr() - if funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, "") == 0 { - *funcref = impl_Lutimes - } else { - *funcref = error_Lutimes - } - return (*funcref)(path, tv) -} - -func error_Lutimes(path string, tv []Timeval) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Statfs(path string, buf *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error)) - -var Statfs = enter_Statfs - -func enter_Statfs(path string, buf *Statfs_t) (err error) { - funcref := get_StatfsAddr() - if funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, "") == 0 { - *funcref = impl_Statfs - } else { - *funcref = error_Statfs - } - return (*funcref)(path, buf) -} - -func error_Statfs(path string, buf *Statfs_t) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Syncfs(fd int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SyncfsAddr() *(func(fd int) (err error)) - -var Syncfs = enter_Syncfs - -func enter_Syncfs(fd int) (err error) { - funcref := get_SyncfsAddr() - if funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, "") == 0 { - *funcref = impl_Syncfs - } else { - *funcref = error_Syncfs - } - return (*funcref)(fd) -} - -func error_Syncfs(fd int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms))) - runtime.ExitSyscall() - ticks = uintptr(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) - runtime.ExitSyscall() - lastsys = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size)) - runtime.ExitSyscall() - lastsys = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount_LE(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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func unmount_LE(filesystem string, mtm int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(filesystem) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) - runtime.ExitSyscall() - ret = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Unshare(flags int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnshareAddr() *(func(flags int) (err error)) - -var Unshare = enter_Unshare - -func enter_Unshare(flags int) (err error) { - funcref := get_UnshareAddr() - if funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, "") == 0 { - *funcref = impl_Unshare - } else { - *funcref = error_Unshare - } - return (*funcref)(flags) -} - -func error_Unshare(flags int) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getgid() (gid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4) - gid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4) - 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, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid)) - pgid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (pid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4) - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who)) - runtime.ExitSyscall() - prio = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrlimit(resource int, rlim *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getrusage(who int, rusage *rusage_zos) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getegid() (egid int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4) - runtime.ExitSyscall() - egid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Geteuid() (euid int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4) - runtime.ExitSyscall() - euid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid)) - sid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getuid() (uid int) { - r0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4) - 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) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error)) - -var Linkat = enter_Linkat - -func enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { - funcref := get_LinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, "") == 0 { - *funcref = impl_Linkat - } else { - *funcref = error_Linkat - } - return (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags) -} - -func error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listen(s int, n int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error)) - -var Mkdirat = enter_Mkdirat - -func enter_Mkdirat(dirfd int, path string, mode uint32) (err error) { - funcref := get_MkdiratAddr() - if funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, "") == 0 { - *funcref = impl_Mkdirat - } else { - *funcref = error_Mkdirat - } - return (*funcref)(dirfd, path, mode) -} - -func error_Mkdirat(dirfd int, path string, mode uint32) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error)) - -var Mknodat = enter_Mknodat - -func enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - funcref := get_MknodatAddr() - if funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, "") == 0 { - *funcref = impl_Mknodat - } else { - *funcref = error_Mknodat - } - return (*funcref)(dirfd, path, mode, dev) -} - -func error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_PivotRoot(newroot string, oldroot string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(oldroot) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PivotRootAddr() *(func(newroot string, oldroot string) (err error)) - -var PivotRoot = enter_PivotRoot - -func enter_PivotRoot(newroot string, oldroot string) (err error) { - funcref := get_PivotRootAddr() - if funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, "") == 0 { - *funcref = impl_PivotRoot - } else { - *funcref = error_PivotRoot - } - return (*funcref)(newroot, oldroot) -} - -func error_PivotRoot(newroot string, oldroot string) (err error) { - err = ENOSYS - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset)) - runtime.ExitSyscall() - n = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)) - -var Prctl = enter_Prctl - -func enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - funcref := get_PrctlAddr() - if funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, "") == 0 { - *funcref = impl_Prctl - } else { - *funcref = error_Prctl - } - return (*funcref)(option, arg2, arg3, arg4, arg5) -} - -func error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error)) - -var Prlimit = enter_Prlimit - -func enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - funcref := get_PrlimitAddr() - if funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, "") == 0 { - *funcref = impl_Prlimit - } else { - *funcref = error_Prlimit - } - return (*funcref)(pid, resource, newlimit, old) -} - -func error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Renameat(olddirfd int, 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)) - -var Renameat = enter_Renameat - -func enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - funcref := get_RenameatAddr() - if funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, "") == 0 { - *funcref = impl_Renameat - } else { - *funcref = error_Renameat - } - return (*funcref)(olddirfd, oldpath, newdirfd, newpath) -} - -func error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)) - -var Renameat2 = enter_Renameat2 - -func enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - funcref := get_Renameat2Addr() - if funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, "") == 0 { - *funcref = impl_Renameat2 - } else { - *funcref = error_Renameat2 - } - return (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags) -} - -func error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence)) - runtime.ExitSyscall() - off = int64(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setegid(egid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Seteuid(euid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SethostnameAddr() *(func(p []byte) (err error)) - -var Sethostname = enter_Sethostname - -func enter_Sethostname(p []byte) (err error) { - funcref := get_SethostnameAddr() - if funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, "") == 0 { - *funcref = impl_Sethostname - } else { - *funcref = error_Sethostname - } - return (*funcref)(p) -} - -func error_Sethostname(p []byte) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Setns(fd int, nstype int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SetnsAddr() *(func(fd int, nstype int) (err error)) - -var Setns = enter_Setns - -func enter_Setns(fd int, nstype int) (err error) { - funcref := get_SetnsAddr() - if funcptrtest(GetZosLibVec()+SYS_SETNS<<4, "") == 0 { - *funcref = impl_Setns - } else { - *funcref = error_Setns - } - return (*funcref)(fd, nstype) -} - -func error_Setns(fd int, nstype int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setrlimit(resource int, lim *Rlimit) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setregid(rgid int, egid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid)) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4) - pid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setuid(uid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setgid(uid int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Shutdown(fd int, how int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Symlinkat(oldPath string, dirfd 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error)) - -var Symlinkat = enter_Symlinkat - -func enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { - funcref := get_SymlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, "") == 0 { - *funcref = impl_Symlinkat - } else { - *funcref = error_Symlinkat - } - return (*funcref)(oldPath, dirfd, newPath) -} - -func error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - runtime.EnterSyscall() - CallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4) - runtime.ExitSyscall() - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcgetattr(fildes int, termptr *Termios) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - runtime.EnterSyscall() - r0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask)) - runtime.ExitSyscall() - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error)) - -var Unlinkat = enter_Unlinkat - -func enter_Unlinkat(dirfd int, path string, flags int) (err error) { - funcref := get_UnlinkatAddr() - if funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, "") == 0 { - *funcref = impl_Unlinkat - } else { - *funcref = error_Unlinkat - } - return (*funcref)(dirfd, path, flags) -} - -func error_Unlinkat(dirfd int, path string, flags int) (err error) { - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error)) - -var openat = enter_openat - -func enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - funcref := get_openatAddr() - if funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, "") == 0 { - *funcref = impl_openat - } else { - *funcref = error_openat - } - return (*funcref)(dirfd, path, flags, mode) -} - -func error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - fd = -1 - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)) - -var openat2 = enter_openat2 - -func enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - funcref := get_openat2Addr() - if funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, "") == 0 { - *funcref = impl_openat2 - } else { - *funcref = error_openat2 - } - return (*funcref)(dirfd, path, open_how, size) -} - -func error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { - fd = -1 - err = ENOSYS - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func waitid(idType int, id int, info *Siginfo, options int) (err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) - runtime.ExitSyscall() - wpid = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func gettimeofday(tv *timeval_zos) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p))) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval))) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags)) - runtime.ExitSyscall() - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -//go:nosplit -func get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error)) - -var utimensat = enter_utimensat - -func enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - funcref := get_utimensatAddr() - if funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, "") == 0 { - *funcref = impl_utimensat - } else { - *funcref = error_utimensat - } - return (*funcref)(dirfd, path, ts, flags) -} - -func error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) { - err = ENOSYS - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Posix_openpt(oflag int) (fd int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag)) - runtime.ExitSyscall() - fd = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Grantpt(fildes int) (rc int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes)) - runtime.ExitSyscall() - rc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlockpt(fildes int) (rc int, err error) { - runtime.EnterSyscall() - r0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes)) - runtime.ExitSyscall() - rc = int(r0) - if int64(r0) == -1 { - err = errnoErr2(e1, e2) - } - 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 deleted file mode 100644 index 3a58ae8..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build 386 && 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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go deleted file mode 100644 index dcb7a0e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build amd64 && 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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go deleted file mode 100644 index db5a7bf..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build arm && 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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go deleted file mode 100644 index 7be575a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go: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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go deleted file mode 100644 index d6e3174..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go: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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go deleted file mode 100644 index ee97157..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +++ /dev/null @@ -1,280 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build ppc64 && 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.power", []_C_int{6, 26}}, - {"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.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.video", []_C_int{1, 89}}, - {"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/zsysctl_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go deleted file mode 100644 index 35c3b91..0000000 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +++ /dev/null @@ -1,281 +0,0 @@ -// go run mksysctl_openbsd.go -// Code generated by the command above; DO NOT EDIT. - -//go:build riscv64 && 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.power", []_C_int{6, 26}}, - {"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.video", []_C_int{1, 89}}, - {"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_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go deleted file mode 100644 index 5edda76..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ /dev/null @@ -1,439 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_KQUEUE_WORKLOOP_CTL = 530 - SYS___MACH_BRIDGE_REMOTE_TIME = 531 - SYS_MAXSYSCALL = 532 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go deleted file mode 100644 index 0dc9e8b..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ /dev/null @@ -1,437 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libSystem wrappers instead of direct syscalls. -const ( - SYS_SYSCALL = 0 - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_WAIT4 = 7 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_CHDIR = 12 - SYS_FCHDIR = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_CHOWN = 16 - SYS_GETFSSTAT = 18 - SYS_GETPID = 20 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_GETEUID = 25 - SYS_PTRACE = 26 - SYS_RECVMSG = 27 - SYS_SENDMSG = 28 - SYS_RECVFROM = 29 - SYS_ACCEPT = 30 - SYS_GETPEERNAME = 31 - SYS_GETSOCKNAME = 32 - SYS_ACCESS = 33 - SYS_CHFLAGS = 34 - SYS_FCHFLAGS = 35 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_GETPPID = 39 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_GETEGID = 43 - SYS_SIGACTION = 46 - SYS_GETGID = 47 - SYS_SIGPROCMASK = 48 - SYS_GETLOGIN = 49 - SYS_SETLOGIN = 50 - SYS_ACCT = 51 - SYS_SIGPENDING = 52 - SYS_SIGALTSTACK = 53 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_REVOKE = 56 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETPGID = 82 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_GETDTABLESIZE = 89 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_GETPRIORITY = 100 - SYS_BIND = 104 - SYS_SETSOCKOPT = 105 - SYS_LISTEN = 106 - SYS_SIGSUSPEND = 111 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_FLOCK = 131 - SYS_MKFIFO = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_FUTIMES = 139 - SYS_ADJTIME = 140 - SYS_GETHOSTUUID = 142 - SYS_SETSID = 147 - SYS_GETPGID = 151 - SYS_SETPRIVEXEC = 152 - SYS_PREAD = 153 - SYS_PWRITE = 154 - SYS_NFSSVC = 155 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UNMOUNT = 159 - SYS_GETFH = 161 - SYS_QUOTACTL = 165 - SYS_MOUNT = 167 - SYS_CSOPS = 169 - SYS_CSOPS_AUDITTOKEN = 170 - SYS_WAITID = 173 - SYS_KDEBUG_TYPEFILTER = 177 - SYS_KDEBUG_TRACE_STRING = 178 - SYS_KDEBUG_TRACE64 = 179 - SYS_KDEBUG_TRACE = 180 - SYS_SETGID = 181 - SYS_SETEGID = 182 - SYS_SETEUID = 183 - SYS_SIGRETURN = 184 - SYS_THREAD_SELFCOUNTS = 186 - SYS_FDATASYNC = 187 - SYS_STAT = 188 - SYS_FSTAT = 189 - SYS_LSTAT = 190 - SYS_PATHCONF = 191 - SYS_FPATHCONF = 192 - SYS_GETRLIMIT = 194 - SYS_SETRLIMIT = 195 - SYS_GETDIRENTRIES = 196 - SYS_MMAP = 197 - SYS_LSEEK = 199 - SYS_TRUNCATE = 200 - SYS_FTRUNCATE = 201 - SYS_SYSCTL = 202 - SYS_MLOCK = 203 - SYS_MUNLOCK = 204 - SYS_UNDELETE = 205 - SYS_OPEN_DPROTECTED_NP = 216 - SYS_GETATTRLIST = 220 - SYS_SETATTRLIST = 221 - SYS_GETDIRENTRIESATTR = 222 - SYS_EXCHANGEDATA = 223 - SYS_SEARCHFS = 225 - SYS_DELETE = 226 - SYS_COPYFILE = 227 - SYS_FGETATTRLIST = 228 - SYS_FSETATTRLIST = 229 - SYS_POLL = 230 - SYS_WATCHEVENT = 231 - SYS_WAITEVENT = 232 - SYS_MODWATCH = 233 - SYS_GETXATTR = 234 - SYS_FGETXATTR = 235 - SYS_SETXATTR = 236 - SYS_FSETXATTR = 237 - SYS_REMOVEXATTR = 238 - SYS_FREMOVEXATTR = 239 - SYS_LISTXATTR = 240 - SYS_FLISTXATTR = 241 - SYS_FSCTL = 242 - SYS_INITGROUPS = 243 - SYS_POSIX_SPAWN = 244 - SYS_FFSCTL = 245 - SYS_NFSCLNT = 247 - SYS_FHOPEN = 248 - SYS_MINHERIT = 250 - SYS_SEMSYS = 251 - SYS_MSGSYS = 252 - SYS_SHMSYS = 253 - SYS_SEMCTL = 254 - SYS_SEMGET = 255 - SYS_SEMOP = 256 - SYS_MSGCTL = 258 - SYS_MSGGET = 259 - SYS_MSGSND = 260 - SYS_MSGRCV = 261 - SYS_SHMAT = 262 - SYS_SHMCTL = 263 - SYS_SHMDT = 264 - SYS_SHMGET = 265 - SYS_SHM_OPEN = 266 - SYS_SHM_UNLINK = 267 - SYS_SEM_OPEN = 268 - SYS_SEM_CLOSE = 269 - SYS_SEM_UNLINK = 270 - SYS_SEM_WAIT = 271 - SYS_SEM_TRYWAIT = 272 - SYS_SEM_POST = 273 - SYS_SYSCTLBYNAME = 274 - SYS_OPEN_EXTENDED = 277 - SYS_UMASK_EXTENDED = 278 - SYS_STAT_EXTENDED = 279 - SYS_LSTAT_EXTENDED = 280 - SYS_FSTAT_EXTENDED = 281 - SYS_CHMOD_EXTENDED = 282 - SYS_FCHMOD_EXTENDED = 283 - SYS_ACCESS_EXTENDED = 284 - SYS_SETTID = 285 - SYS_GETTID = 286 - SYS_SETSGROUPS = 287 - SYS_GETSGROUPS = 288 - SYS_SETWGROUPS = 289 - SYS_GETWGROUPS = 290 - SYS_MKFIFO_EXTENDED = 291 - SYS_MKDIR_EXTENDED = 292 - SYS_IDENTITYSVC = 293 - SYS_SHARED_REGION_CHECK_NP = 294 - SYS_VM_PRESSURE_MONITOR = 296 - SYS_PSYNCH_RW_LONGRDLOCK = 297 - SYS_PSYNCH_RW_YIELDWRLOCK = 298 - SYS_PSYNCH_RW_DOWNGRADE = 299 - SYS_PSYNCH_RW_UPGRADE = 300 - SYS_PSYNCH_MUTEXWAIT = 301 - SYS_PSYNCH_MUTEXDROP = 302 - SYS_PSYNCH_CVBROAD = 303 - SYS_PSYNCH_CVSIGNAL = 304 - SYS_PSYNCH_CVWAIT = 305 - SYS_PSYNCH_RW_RDLOCK = 306 - SYS_PSYNCH_RW_WRLOCK = 307 - SYS_PSYNCH_RW_UNLOCK = 308 - SYS_PSYNCH_RW_UNLOCK2 = 309 - SYS_GETSID = 310 - SYS_SETTID_WITH_PID = 311 - SYS_PSYNCH_CVCLRPREPOST = 312 - SYS_AIO_FSYNC = 313 - SYS_AIO_RETURN = 314 - SYS_AIO_SUSPEND = 315 - SYS_AIO_CANCEL = 316 - SYS_AIO_ERROR = 317 - SYS_AIO_READ = 318 - SYS_AIO_WRITE = 319 - SYS_LIO_LISTIO = 320 - SYS_IOPOLICYSYS = 322 - SYS_PROCESS_POLICY = 323 - SYS_MLOCKALL = 324 - SYS_MUNLOCKALL = 325 - SYS_ISSETUGID = 327 - SYS___PTHREAD_KILL = 328 - SYS___PTHREAD_SIGMASK = 329 - SYS___SIGWAIT = 330 - SYS___DISABLE_THREADSIGNAL = 331 - SYS___PTHREAD_MARKCANCEL = 332 - SYS___PTHREAD_CANCELED = 333 - SYS___SEMWAIT_SIGNAL = 334 - SYS_PROC_INFO = 336 - SYS_SENDFILE = 337 - SYS_STAT64 = 338 - SYS_FSTAT64 = 339 - SYS_LSTAT64 = 340 - SYS_STAT64_EXTENDED = 341 - SYS_LSTAT64_EXTENDED = 342 - SYS_FSTAT64_EXTENDED = 343 - SYS_GETDIRENTRIES64 = 344 - SYS_STATFS64 = 345 - SYS_FSTATFS64 = 346 - SYS_GETFSSTAT64 = 347 - SYS___PTHREAD_CHDIR = 348 - SYS___PTHREAD_FCHDIR = 349 - SYS_AUDIT = 350 - SYS_AUDITON = 351 - SYS_GETAUID = 353 - SYS_SETAUID = 354 - SYS_GETAUDIT_ADDR = 357 - SYS_SETAUDIT_ADDR = 358 - SYS_AUDITCTL = 359 - SYS_BSDTHREAD_CREATE = 360 - SYS_BSDTHREAD_TERMINATE = 361 - SYS_KQUEUE = 362 - SYS_KEVENT = 363 - SYS_LCHOWN = 364 - SYS_BSDTHREAD_REGISTER = 366 - SYS_WORKQ_OPEN = 367 - SYS_WORKQ_KERNRETURN = 368 - SYS_KEVENT64 = 369 - SYS___OLD_SEMWAIT_SIGNAL = 370 - SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 - SYS_THREAD_SELFID = 372 - SYS_LEDGER = 373 - SYS_KEVENT_QOS = 374 - SYS_KEVENT_ID = 375 - SYS___MAC_EXECVE = 380 - SYS___MAC_SYSCALL = 381 - SYS___MAC_GET_FILE = 382 - SYS___MAC_SET_FILE = 383 - SYS___MAC_GET_LINK = 384 - SYS___MAC_SET_LINK = 385 - SYS___MAC_GET_PROC = 386 - SYS___MAC_SET_PROC = 387 - SYS___MAC_GET_FD = 388 - SYS___MAC_SET_FD = 389 - SYS___MAC_GET_PID = 390 - SYS_PSELECT = 394 - SYS_PSELECT_NOCANCEL = 395 - SYS_READ_NOCANCEL = 396 - SYS_WRITE_NOCANCEL = 397 - SYS_OPEN_NOCANCEL = 398 - SYS_CLOSE_NOCANCEL = 399 - SYS_WAIT4_NOCANCEL = 400 - SYS_RECVMSG_NOCANCEL = 401 - SYS_SENDMSG_NOCANCEL = 402 - SYS_RECVFROM_NOCANCEL = 403 - SYS_ACCEPT_NOCANCEL = 404 - SYS_MSYNC_NOCANCEL = 405 - SYS_FCNTL_NOCANCEL = 406 - SYS_SELECT_NOCANCEL = 407 - SYS_FSYNC_NOCANCEL = 408 - SYS_CONNECT_NOCANCEL = 409 - SYS_SIGSUSPEND_NOCANCEL = 410 - SYS_READV_NOCANCEL = 411 - SYS_WRITEV_NOCANCEL = 412 - SYS_SENDTO_NOCANCEL = 413 - SYS_PREAD_NOCANCEL = 414 - SYS_PWRITE_NOCANCEL = 415 - SYS_WAITID_NOCANCEL = 416 - SYS_POLL_NOCANCEL = 417 - SYS_MSGSND_NOCANCEL = 418 - SYS_MSGRCV_NOCANCEL = 419 - SYS_SEM_WAIT_NOCANCEL = 420 - SYS_AIO_SUSPEND_NOCANCEL = 421 - SYS___SIGWAIT_NOCANCEL = 422 - SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 - SYS___MAC_MOUNT = 424 - SYS___MAC_GET_MOUNT = 425 - SYS___MAC_GETFSSTAT = 426 - SYS_FSGETPATH = 427 - SYS_AUDIT_SESSION_SELF = 428 - SYS_AUDIT_SESSION_JOIN = 429 - SYS_FILEPORT_MAKEPORT = 430 - SYS_FILEPORT_MAKEFD = 431 - SYS_AUDIT_SESSION_PORT = 432 - SYS_PID_SUSPEND = 433 - SYS_PID_RESUME = 434 - SYS_PID_HIBERNATE = 435 - SYS_PID_SHUTDOWN_SOCKETS = 436 - SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 - SYS_KAS_INFO = 439 - SYS_MEMORYSTATUS_CONTROL = 440 - SYS_GUARDED_OPEN_NP = 441 - SYS_GUARDED_CLOSE_NP = 442 - SYS_GUARDED_KQUEUE_NP = 443 - SYS_CHANGE_FDGUARD_NP = 444 - SYS_USRCTL = 445 - SYS_PROC_RLIMIT_CONTROL = 446 - SYS_CONNECTX = 447 - SYS_DISCONNECTX = 448 - SYS_PEELOFF = 449 - SYS_SOCKET_DELEGATE = 450 - SYS_TELEMETRY = 451 - SYS_PROC_UUID_POLICY = 452 - SYS_MEMORYSTATUS_GET_LEVEL = 453 - SYS_SYSTEM_OVERRIDE = 454 - SYS_VFS_PURGE = 455 - SYS_SFI_CTL = 456 - SYS_SFI_PIDCTL = 457 - SYS_COALITION = 458 - SYS_COALITION_INFO = 459 - SYS_NECP_MATCH_POLICY = 460 - SYS_GETATTRLISTBULK = 461 - SYS_CLONEFILEAT = 462 - SYS_OPENAT = 463 - SYS_OPENAT_NOCANCEL = 464 - SYS_RENAMEAT = 465 - SYS_FACCESSAT = 466 - SYS_FCHMODAT = 467 - SYS_FCHOWNAT = 468 - SYS_FSTATAT = 469 - SYS_FSTATAT64 = 470 - SYS_LINKAT = 471 - SYS_UNLINKAT = 472 - SYS_READLINKAT = 473 - SYS_SYMLINKAT = 474 - SYS_MKDIRAT = 475 - SYS_GETATTRLISTAT = 476 - SYS_PROC_TRACE_LOG = 477 - SYS_BSDTHREAD_CTL = 478 - SYS_OPENBYID_NP = 479 - SYS_RECVMSG_X = 480 - SYS_SENDMSG_X = 481 - SYS_THREAD_SELFUSAGE = 482 - SYS_CSRCTL = 483 - SYS_GUARDED_OPEN_DPROTECTED_NP = 484 - SYS_GUARDED_WRITE_NP = 485 - SYS_GUARDED_PWRITE_NP = 486 - SYS_GUARDED_WRITEV_NP = 487 - SYS_RENAMEATX_NP = 488 - SYS_MREMAP_ENCRYPTED = 489 - SYS_NETAGENT_TRIGGER = 490 - SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 - SYS_MICROSTACKSHOT = 492 - SYS_GRAB_PGO_DATA = 493 - SYS_PERSONA = 494 - SYS_WORK_INTERVAL_CTL = 499 - SYS_GETENTROPY = 500 - SYS_NECP_OPEN = 501 - SYS_NECP_CLIENT_ACTION = 502 - SYS___NEXUS_OPEN = 503 - SYS___NEXUS_REGISTER = 504 - SYS___NEXUS_DEREGISTER = 505 - SYS___NEXUS_CREATE = 506 - SYS___NEXUS_DESTROY = 507 - SYS___NEXUS_GET_OPT = 508 - SYS___NEXUS_SET_OPT = 509 - SYS___CHANNEL_OPEN = 510 - SYS___CHANNEL_GET_INFO = 511 - SYS___CHANNEL_SYNC = 512 - SYS___CHANNEL_GET_OPT = 513 - SYS___CHANNEL_SET_OPT = 514 - SYS_ULOCK_WAIT = 515 - SYS_ULOCK_WAKE = 516 - SYS_FCLONEFILEAT = 517 - SYS_FS_SNAPSHOT = 518 - SYS_TERMINATE_WITH_PAYLOAD = 520 - SYS_ABORT_WITH_PAYLOAD = 521 - SYS_NECP_SESSION_OPEN = 522 - SYS_NECP_SESSION_ACTION = 523 - SYS_SETATTRLISTAT = 524 - SYS_NET_QOS_GUIDELINE = 525 - SYS_FMOUNT = 526 - SYS_NTP_ADJTIME = 527 - SYS_NTP_GETTIME = 528 - SYS_OS_FAULT_WITH_PAYLOAD = 529 - SYS_MAXSYSCALL = 530 - SYS_INVALID = 63 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go deleted file mode 100644 index 308ddf3..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ /dev/null @@ -1,316 +0,0 @@ -// 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 - -package unix - -const ( - 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); } - 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, int timeout); } - SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } - SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - 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 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } - SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - 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_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - 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, u_int nfds, int timeout); } - SYS_ISSETUGID = 253 // { int issetugid(void); } - 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, 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); } - 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 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, 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_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_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } - SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } - SYS_YIELD = 321 // { int yield(void); } - SYS_MLOCKALL = 324 // { int mlockall(int how); } - SYS_MUNLOCKALL = 325 // { int munlockall(void); } - SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, const sigset_t *set, sigset_t *oset); } - SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } - SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } - 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 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 357 // { int 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_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, 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(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); } - SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } - SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } - SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } - SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } - SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } - SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } - SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } - SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } - SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } - SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } - SYS_CLOSEFROM = 474 // { int closefrom(int fd); } - SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } - SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } - SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } - SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } - SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } - SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } - SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } - SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } - SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } - SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } - SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } - SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } - SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } - SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } - SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } - SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } - SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } - SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } - SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } - SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } - SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } - SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } - SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } - SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } - SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } - SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } - SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } - SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } - SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } - SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } - SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } - SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } - SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } - SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } - SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } - SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } - SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } - SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } - SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } - SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } - SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } - SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } - SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } - SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } - SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } - SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } - SYS_SWAPOFF = 529 // { int swapoff(char *name); } - SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } - SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } - SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } - SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } - 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, 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); } - SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } - SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } - SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } - 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 deleted file mode 100644 index 418664e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && 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_args void - 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); } - 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_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - 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, 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); } - 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(u_int fd); } - 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 // { 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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - 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_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(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, 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_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, 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, 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); } - 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___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, 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, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 34d0b86..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && 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_args void - 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); } - 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_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - 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, 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); } - 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(u_int fd); } - 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 // { 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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - 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_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(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, 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_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, 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, 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); } - 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___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, 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, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index b71cf45..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && 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_args void - 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); } - 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_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - 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, 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); } - 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(u_int fd); } - 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 // { 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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - 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_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(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, 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_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, 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, 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); } - 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___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, 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, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go deleted file mode 100644 index e32df1c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_args void - 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); } - 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_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - 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, 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); } - 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(u_int fd); } - 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 // { 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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - 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_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(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, 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_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, 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, 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); } - 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___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, 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, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go deleted file mode 100644 index 15ad611..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +++ /dev/null @@ -1,393 +0,0 @@ -// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && 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_args void - 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); } - 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_CHMOD = 15 // { int chmod(char *path, int mode); } - SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_BREAK = 17 // { caddr_t break(char *nsize); } - 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, 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); } - 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(u_int fd); } - 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 // { 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); } - SYS_CHROOT = 61 // { int chroot(char *path); } - 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_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(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, 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_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, 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, 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); } - 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___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, 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, size_t msgsz, int msgflg); } - SYS_MSGRCV = 227 // { ssize_t 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, 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, 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, struct timespec *rmtp); } - 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); } - SYS_RFORK = 251 // { int rfork(int flags); } - 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, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - 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_MODNEXT = 300 // { int modnext(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 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, 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(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, size_t buflen); } - 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, struct timespec *interval); } - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - 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, 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, 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_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, 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, 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_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, 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, 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(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, 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, 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, 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(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, 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, 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, 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, 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, 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, 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_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_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } - SYS_READLINKAT = 500 // { ssize_t 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, 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, 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, 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, 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, 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, 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_FDATASYNC = 550 // { int fdatasync(int fd); } - SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } - SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } - SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } - SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } - SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } - SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } - SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } - SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } - SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } - SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } - SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } - SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } - SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } - SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } - SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } - SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } - SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } - SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go deleted file mode 100644 index c79aaff..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ /dev/null @@ -1,465 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go deleted file mode 100644 index 5eb4506..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ /dev/null @@ -1,388 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -package unix - -const ( - SYS_READ = 0 - SYS_WRITE = 1 - SYS_OPEN = 2 - SYS_CLOSE = 3 - SYS_STAT = 4 - SYS_FSTAT = 5 - SYS_LSTAT = 6 - SYS_POLL = 7 - SYS_LSEEK = 8 - SYS_MMAP = 9 - SYS_MPROTECT = 10 - SYS_MUNMAP = 11 - SYS_BRK = 12 - SYS_RT_SIGACTION = 13 - SYS_RT_SIGPROCMASK = 14 - SYS_RT_SIGRETURN = 15 - SYS_IOCTL = 16 - SYS_PREAD64 = 17 - SYS_PWRITE64 = 18 - SYS_READV = 19 - SYS_WRITEV = 20 - SYS_ACCESS = 21 - SYS_PIPE = 22 - SYS_SELECT = 23 - SYS_SCHED_YIELD = 24 - SYS_MREMAP = 25 - SYS_MSYNC = 26 - SYS_MINCORE = 27 - SYS_MADVISE = 28 - SYS_SHMGET = 29 - SYS_SHMAT = 30 - SYS_SHMCTL = 31 - SYS_DUP = 32 - SYS_DUP2 = 33 - SYS_PAUSE = 34 - SYS_NANOSLEEP = 35 - SYS_GETITIMER = 36 - SYS_ALARM = 37 - SYS_SETITIMER = 38 - SYS_GETPID = 39 - SYS_SENDFILE = 40 - SYS_SOCKET = 41 - SYS_CONNECT = 42 - SYS_ACCEPT = 43 - SYS_SENDTO = 44 - SYS_RECVFROM = 45 - SYS_SENDMSG = 46 - SYS_RECVMSG = 47 - SYS_SHUTDOWN = 48 - SYS_BIND = 49 - SYS_LISTEN = 50 - SYS_GETSOCKNAME = 51 - SYS_GETPEERNAME = 52 - SYS_SOCKETPAIR = 53 - SYS_SETSOCKOPT = 54 - SYS_GETSOCKOPT = 55 - SYS_CLONE = 56 - SYS_FORK = 57 - SYS_VFORK = 58 - SYS_EXECVE = 59 - SYS_EXIT = 60 - SYS_WAIT4 = 61 - SYS_KILL = 62 - SYS_UNAME = 63 - SYS_SEMGET = 64 - SYS_SEMOP = 65 - SYS_SEMCTL = 66 - SYS_SHMDT = 67 - SYS_MSGGET = 68 - SYS_MSGSND = 69 - SYS_MSGRCV = 70 - SYS_MSGCTL = 71 - SYS_FCNTL = 72 - SYS_FLOCK = 73 - SYS_FSYNC = 74 - SYS_FDATASYNC = 75 - SYS_TRUNCATE = 76 - SYS_FTRUNCATE = 77 - SYS_GETDENTS = 78 - SYS_GETCWD = 79 - SYS_CHDIR = 80 - SYS_FCHDIR = 81 - SYS_RENAME = 82 - SYS_MKDIR = 83 - SYS_RMDIR = 84 - SYS_CREAT = 85 - SYS_LINK = 86 - SYS_UNLINK = 87 - SYS_SYMLINK = 88 - SYS_READLINK = 89 - SYS_CHMOD = 90 - SYS_FCHMOD = 91 - SYS_CHOWN = 92 - SYS_FCHOWN = 93 - SYS_LCHOWN = 94 - SYS_UMASK = 95 - SYS_GETTIMEOFDAY = 96 - SYS_GETRLIMIT = 97 - SYS_GETRUSAGE = 98 - SYS_SYSINFO = 99 - SYS_TIMES = 100 - SYS_PTRACE = 101 - SYS_GETUID = 102 - SYS_SYSLOG = 103 - SYS_GETGID = 104 - SYS_SETUID = 105 - SYS_SETGID = 106 - SYS_GETEUID = 107 - SYS_GETEGID = 108 - SYS_SETPGID = 109 - SYS_GETPPID = 110 - SYS_GETPGRP = 111 - SYS_SETSID = 112 - SYS_SETREUID = 113 - SYS_SETREGID = 114 - SYS_GETGROUPS = 115 - SYS_SETGROUPS = 116 - SYS_SETRESUID = 117 - SYS_GETRESUID = 118 - SYS_SETRESGID = 119 - SYS_GETRESGID = 120 - SYS_GETPGID = 121 - SYS_SETFSUID = 122 - SYS_SETFSGID = 123 - SYS_GETSID = 124 - SYS_CAPGET = 125 - SYS_CAPSET = 126 - SYS_RT_SIGPENDING = 127 - SYS_RT_SIGTIMEDWAIT = 128 - SYS_RT_SIGQUEUEINFO = 129 - SYS_RT_SIGSUSPEND = 130 - SYS_SIGALTSTACK = 131 - SYS_UTIME = 132 - SYS_MKNOD = 133 - SYS_USELIB = 134 - SYS_PERSONALITY = 135 - SYS_USTAT = 136 - SYS_STATFS = 137 - SYS_FSTATFS = 138 - SYS_SYSFS = 139 - SYS_GETPRIORITY = 140 - SYS_SETPRIORITY = 141 - SYS_SCHED_SETPARAM = 142 - SYS_SCHED_GETPARAM = 143 - SYS_SCHED_SETSCHEDULER = 144 - SYS_SCHED_GETSCHEDULER = 145 - SYS_SCHED_GET_PRIORITY_MAX = 146 - SYS_SCHED_GET_PRIORITY_MIN = 147 - SYS_SCHED_RR_GET_INTERVAL = 148 - SYS_MLOCK = 149 - SYS_MUNLOCK = 150 - SYS_MLOCKALL = 151 - SYS_MUNLOCKALL = 152 - SYS_VHANGUP = 153 - SYS_MODIFY_LDT = 154 - SYS_PIVOT_ROOT = 155 - SYS__SYSCTL = 156 - SYS_PRCTL = 157 - SYS_ARCH_PRCTL = 158 - SYS_ADJTIMEX = 159 - SYS_SETRLIMIT = 160 - SYS_CHROOT = 161 - SYS_SYNC = 162 - SYS_ACCT = 163 - SYS_SETTIMEOFDAY = 164 - SYS_MOUNT = 165 - SYS_UMOUNT2 = 166 - SYS_SWAPON = 167 - SYS_SWAPOFF = 168 - SYS_REBOOT = 169 - SYS_SETHOSTNAME = 170 - SYS_SETDOMAINNAME = 171 - SYS_IOPL = 172 - SYS_IOPERM = 173 - SYS_CREATE_MODULE = 174 - SYS_INIT_MODULE = 175 - SYS_DELETE_MODULE = 176 - SYS_GET_KERNEL_SYMS = 177 - SYS_QUERY_MODULE = 178 - SYS_QUOTACTL = 179 - SYS_NFSSERVCTL = 180 - SYS_GETPMSG = 181 - SYS_PUTPMSG = 182 - SYS_AFS_SYSCALL = 183 - SYS_TUXCALL = 184 - SYS_SECURITY = 185 - SYS_GETTID = 186 - SYS_READAHEAD = 187 - SYS_SETXATTR = 188 - SYS_LSETXATTR = 189 - SYS_FSETXATTR = 190 - SYS_GETXATTR = 191 - SYS_LGETXATTR = 192 - SYS_FGETXATTR = 193 - SYS_LISTXATTR = 194 - SYS_LLISTXATTR = 195 - SYS_FLISTXATTR = 196 - SYS_REMOVEXATTR = 197 - SYS_LREMOVEXATTR = 198 - SYS_FREMOVEXATTR = 199 - SYS_TKILL = 200 - SYS_TIME = 201 - SYS_FUTEX = 202 - SYS_SCHED_SETAFFINITY = 203 - SYS_SCHED_GETAFFINITY = 204 - SYS_SET_THREAD_AREA = 205 - SYS_IO_SETUP = 206 - SYS_IO_DESTROY = 207 - SYS_IO_GETEVENTS = 208 - SYS_IO_SUBMIT = 209 - SYS_IO_CANCEL = 210 - SYS_GET_THREAD_AREA = 211 - SYS_LOOKUP_DCOOKIE = 212 - SYS_EPOLL_CREATE = 213 - SYS_EPOLL_CTL_OLD = 214 - SYS_EPOLL_WAIT_OLD = 215 - SYS_REMAP_FILE_PAGES = 216 - SYS_GETDENTS64 = 217 - SYS_SET_TID_ADDRESS = 218 - SYS_RESTART_SYSCALL = 219 - SYS_SEMTIMEDOP = 220 - SYS_FADVISE64 = 221 - SYS_TIMER_CREATE = 222 - SYS_TIMER_SETTIME = 223 - SYS_TIMER_GETTIME = 224 - SYS_TIMER_GETOVERRUN = 225 - SYS_TIMER_DELETE = 226 - SYS_CLOCK_SETTIME = 227 - SYS_CLOCK_GETTIME = 228 - SYS_CLOCK_GETRES = 229 - SYS_CLOCK_NANOSLEEP = 230 - SYS_EXIT_GROUP = 231 - SYS_EPOLL_WAIT = 232 - SYS_EPOLL_CTL = 233 - SYS_TGKILL = 234 - SYS_UTIMES = 235 - SYS_VSERVER = 236 - SYS_MBIND = 237 - SYS_SET_MEMPOLICY = 238 - SYS_GET_MEMPOLICY = 239 - SYS_MQ_OPEN = 240 - SYS_MQ_UNLINK = 241 - SYS_MQ_TIMEDSEND = 242 - SYS_MQ_TIMEDRECEIVE = 243 - SYS_MQ_NOTIFY = 244 - SYS_MQ_GETSETATTR = 245 - SYS_KEXEC_LOAD = 246 - SYS_WAITID = 247 - SYS_ADD_KEY = 248 - SYS_REQUEST_KEY = 249 - SYS_KEYCTL = 250 - SYS_IOPRIO_SET = 251 - SYS_IOPRIO_GET = 252 - SYS_INOTIFY_INIT = 253 - SYS_INOTIFY_ADD_WATCH = 254 - SYS_INOTIFY_RM_WATCH = 255 - SYS_MIGRATE_PAGES = 256 - SYS_OPENAT = 257 - SYS_MKDIRAT = 258 - SYS_MKNODAT = 259 - SYS_FCHOWNAT = 260 - SYS_FUTIMESAT = 261 - SYS_NEWFSTATAT = 262 - SYS_UNLINKAT = 263 - SYS_RENAMEAT = 264 - SYS_LINKAT = 265 - SYS_SYMLINKAT = 266 - SYS_READLINKAT = 267 - SYS_FCHMODAT = 268 - SYS_FACCESSAT = 269 - SYS_PSELECT6 = 270 - SYS_PPOLL = 271 - SYS_UNSHARE = 272 - SYS_SET_ROBUST_LIST = 273 - SYS_GET_ROBUST_LIST = 274 - SYS_SPLICE = 275 - SYS_TEE = 276 - SYS_SYNC_FILE_RANGE = 277 - SYS_VMSPLICE = 278 - SYS_MOVE_PAGES = 279 - SYS_UTIMENSAT = 280 - SYS_EPOLL_PWAIT = 281 - SYS_SIGNALFD = 282 - SYS_TIMERFD_CREATE = 283 - SYS_EVENTFD = 284 - SYS_FALLOCATE = 285 - SYS_TIMERFD_SETTIME = 286 - SYS_TIMERFD_GETTIME = 287 - SYS_ACCEPT4 = 288 - SYS_SIGNALFD4 = 289 - SYS_EVENTFD2 = 290 - SYS_EPOLL_CREATE1 = 291 - SYS_DUP3 = 292 - SYS_PIPE2 = 293 - SYS_INOTIFY_INIT1 = 294 - SYS_PREADV = 295 - SYS_PWRITEV = 296 - SYS_RT_TGSIGQUEUEINFO = 297 - SYS_PERF_EVENT_OPEN = 298 - SYS_RECVMMSG = 299 - SYS_FANOTIFY_INIT = 300 - SYS_FANOTIFY_MARK = 301 - SYS_PRLIMIT64 = 302 - SYS_NAME_TO_HANDLE_AT = 303 - SYS_OPEN_BY_HANDLE_AT = 304 - SYS_CLOCK_ADJTIME = 305 - SYS_SYNCFS = 306 - SYS_SENDMMSG = 307 - SYS_SETNS = 308 - SYS_GETCPU = 309 - SYS_PROCESS_VM_READV = 310 - SYS_PROCESS_VM_WRITEV = 311 - SYS_KCMP = 312 - SYS_FINIT_MODULE = 313 - SYS_SCHED_SETATTR = 314 - SYS_SCHED_GETATTR = 315 - SYS_RENAMEAT2 = 316 - SYS_SECCOMP = 317 - SYS_GETRANDOM = 318 - SYS_MEMFD_CREATE = 319 - SYS_KEXEC_FILE_LOAD = 320 - SYS_BPF = 321 - SYS_EXECVEAT = 322 - SYS_USERFAULTFD = 323 - SYS_MEMBARRIER = 324 - SYS_MLOCK2 = 325 - SYS_COPY_FILE_RANGE = 326 - SYS_PREADV2 = 327 - SYS_PWRITEV2 = 328 - SYS_PKEY_MPROTECT = 329 - SYS_PKEY_ALLOC = 330 - SYS_PKEY_FREE = 331 - SYS_STATX = 332 - SYS_IO_PGETEVENTS = 333 - SYS_RSEQ = 334 - SYS_URETPROBE = 335 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go deleted file mode 100644 index 05e5029..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ /dev/null @@ -1,429 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -package unix - -const ( - SYS_SYSCALL_MASK = 0 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go deleted file mode 100644 index 38c53ec..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ /dev/null @@ -1,332 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_RENAMEAT = 38 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go deleted file mode 100644 index 31d2e71..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ /dev/null @@ -1,328 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go deleted file mode 100644 index f4184a3..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ /dev/null @@ -1,449 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_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 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 - SYS_MAP_SHADOW_STACK = 4453 - SYS_FUTEX_WAKE = 4454 - SYS_FUTEX_WAIT = 4455 - SYS_FUTEX_REQUEUE = 4456 - SYS_STATMOUNT = 4457 - SYS_LISTMOUNT = 4458 - SYS_LSM_GET_SELF_ATTR = 4459 - SYS_LSM_SET_SELF_ATTR = 4460 - SYS_LSM_LIST_MODULES = 4461 - SYS_MSEAL = 4462 - SYS_SETXATTRAT = 4463 - SYS_GETXATTRAT = 4464 - SYS_LISTXATTRAT = 4465 - SYS_REMOVEXATTRAT = 4466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go deleted file mode 100644 index 05b9962..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ /dev/null @@ -1,379 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - 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 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 - SYS_MAP_SHADOW_STACK = 5453 - SYS_FUTEX_WAKE = 5454 - SYS_FUTEX_WAIT = 5455 - SYS_FUTEX_REQUEUE = 5456 - SYS_STATMOUNT = 5457 - SYS_LISTMOUNT = 5458 - SYS_LSM_GET_SELF_ATTR = 5459 - SYS_LSM_SET_SELF_ATTR = 5460 - SYS_LSM_LIST_MODULES = 5461 - SYS_MSEAL = 5462 - SYS_SETXATTRAT = 5463 - SYS_GETXATTRAT = 5464 - SYS_LISTXATTRAT = 5465 - SYS_REMOVEXATTRAT = 5466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go deleted file mode 100644 index 43a256e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ /dev/null @@ -1,379 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -package unix - -const ( - SYS_READ = 5000 - SYS_WRITE = 5001 - SYS_OPEN = 5002 - SYS_CLOSE = 5003 - SYS_STAT = 5004 - SYS_FSTAT = 5005 - SYS_LSTAT = 5006 - SYS_POLL = 5007 - SYS_LSEEK = 5008 - SYS_MMAP = 5009 - SYS_MPROTECT = 5010 - SYS_MUNMAP = 5011 - SYS_BRK = 5012 - SYS_RT_SIGACTION = 5013 - SYS_RT_SIGPROCMASK = 5014 - SYS_IOCTL = 5015 - SYS_PREAD64 = 5016 - SYS_PWRITE64 = 5017 - SYS_READV = 5018 - SYS_WRITEV = 5019 - SYS_ACCESS = 5020 - SYS_PIPE = 5021 - SYS__NEWSELECT = 5022 - SYS_SCHED_YIELD = 5023 - SYS_MREMAP = 5024 - SYS_MSYNC = 5025 - SYS_MINCORE = 5026 - SYS_MADVISE = 5027 - SYS_SHMGET = 5028 - SYS_SHMAT = 5029 - SYS_SHMCTL = 5030 - SYS_DUP = 5031 - SYS_DUP2 = 5032 - SYS_PAUSE = 5033 - SYS_NANOSLEEP = 5034 - SYS_GETITIMER = 5035 - SYS_SETITIMER = 5036 - SYS_ALARM = 5037 - SYS_GETPID = 5038 - SYS_SENDFILE = 5039 - SYS_SOCKET = 5040 - SYS_CONNECT = 5041 - SYS_ACCEPT = 5042 - SYS_SENDTO = 5043 - SYS_RECVFROM = 5044 - SYS_SENDMSG = 5045 - SYS_RECVMSG = 5046 - SYS_SHUTDOWN = 5047 - SYS_BIND = 5048 - SYS_LISTEN = 5049 - SYS_GETSOCKNAME = 5050 - SYS_GETPEERNAME = 5051 - SYS_SOCKETPAIR = 5052 - SYS_SETSOCKOPT = 5053 - SYS_GETSOCKOPT = 5054 - SYS_CLONE = 5055 - SYS_FORK = 5056 - SYS_EXECVE = 5057 - SYS_EXIT = 5058 - SYS_WAIT4 = 5059 - SYS_KILL = 5060 - SYS_UNAME = 5061 - SYS_SEMGET = 5062 - SYS_SEMOP = 5063 - SYS_SEMCTL = 5064 - SYS_SHMDT = 5065 - SYS_MSGGET = 5066 - SYS_MSGSND = 5067 - SYS_MSGRCV = 5068 - SYS_MSGCTL = 5069 - SYS_FCNTL = 5070 - SYS_FLOCK = 5071 - SYS_FSYNC = 5072 - SYS_FDATASYNC = 5073 - SYS_TRUNCATE = 5074 - SYS_FTRUNCATE = 5075 - SYS_GETDENTS = 5076 - SYS_GETCWD = 5077 - SYS_CHDIR = 5078 - SYS_FCHDIR = 5079 - SYS_RENAME = 5080 - SYS_MKDIR = 5081 - SYS_RMDIR = 5082 - SYS_CREAT = 5083 - SYS_LINK = 5084 - SYS_UNLINK = 5085 - SYS_SYMLINK = 5086 - SYS_READLINK = 5087 - SYS_CHMOD = 5088 - SYS_FCHMOD = 5089 - SYS_CHOWN = 5090 - SYS_FCHOWN = 5091 - SYS_LCHOWN = 5092 - SYS_UMASK = 5093 - SYS_GETTIMEOFDAY = 5094 - SYS_GETRLIMIT = 5095 - SYS_GETRUSAGE = 5096 - SYS_SYSINFO = 5097 - SYS_TIMES = 5098 - SYS_PTRACE = 5099 - SYS_GETUID = 5100 - SYS_SYSLOG = 5101 - SYS_GETGID = 5102 - SYS_SETUID = 5103 - SYS_SETGID = 5104 - SYS_GETEUID = 5105 - SYS_GETEGID = 5106 - SYS_SETPGID = 5107 - SYS_GETPPID = 5108 - SYS_GETPGRP = 5109 - SYS_SETSID = 5110 - SYS_SETREUID = 5111 - SYS_SETREGID = 5112 - SYS_GETGROUPS = 5113 - SYS_SETGROUPS = 5114 - SYS_SETRESUID = 5115 - SYS_GETRESUID = 5116 - SYS_SETRESGID = 5117 - SYS_GETRESGID = 5118 - SYS_GETPGID = 5119 - SYS_SETFSUID = 5120 - SYS_SETFSGID = 5121 - SYS_GETSID = 5122 - SYS_CAPGET = 5123 - SYS_CAPSET = 5124 - SYS_RT_SIGPENDING = 5125 - SYS_RT_SIGTIMEDWAIT = 5126 - SYS_RT_SIGQUEUEINFO = 5127 - SYS_RT_SIGSUSPEND = 5128 - SYS_SIGALTSTACK = 5129 - SYS_UTIME = 5130 - SYS_MKNOD = 5131 - SYS_PERSONALITY = 5132 - SYS_USTAT = 5133 - SYS_STATFS = 5134 - SYS_FSTATFS = 5135 - SYS_SYSFS = 5136 - SYS_GETPRIORITY = 5137 - SYS_SETPRIORITY = 5138 - SYS_SCHED_SETPARAM = 5139 - SYS_SCHED_GETPARAM = 5140 - SYS_SCHED_SETSCHEDULER = 5141 - SYS_SCHED_GETSCHEDULER = 5142 - SYS_SCHED_GET_PRIORITY_MAX = 5143 - SYS_SCHED_GET_PRIORITY_MIN = 5144 - SYS_SCHED_RR_GET_INTERVAL = 5145 - SYS_MLOCK = 5146 - SYS_MUNLOCK = 5147 - SYS_MLOCKALL = 5148 - SYS_MUNLOCKALL = 5149 - SYS_VHANGUP = 5150 - SYS_PIVOT_ROOT = 5151 - SYS__SYSCTL = 5152 - SYS_PRCTL = 5153 - SYS_ADJTIMEX = 5154 - SYS_SETRLIMIT = 5155 - SYS_CHROOT = 5156 - SYS_SYNC = 5157 - SYS_ACCT = 5158 - SYS_SETTIMEOFDAY = 5159 - SYS_MOUNT = 5160 - SYS_UMOUNT2 = 5161 - SYS_SWAPON = 5162 - SYS_SWAPOFF = 5163 - SYS_REBOOT = 5164 - SYS_SETHOSTNAME = 5165 - SYS_SETDOMAINNAME = 5166 - SYS_CREATE_MODULE = 5167 - SYS_INIT_MODULE = 5168 - SYS_DELETE_MODULE = 5169 - SYS_GET_KERNEL_SYMS = 5170 - SYS_QUERY_MODULE = 5171 - SYS_QUOTACTL = 5172 - SYS_NFSSERVCTL = 5173 - SYS_GETPMSG = 5174 - SYS_PUTPMSG = 5175 - SYS_AFS_SYSCALL = 5176 - SYS_RESERVED177 = 5177 - SYS_GETTID = 5178 - SYS_READAHEAD = 5179 - SYS_SETXATTR = 5180 - SYS_LSETXATTR = 5181 - SYS_FSETXATTR = 5182 - SYS_GETXATTR = 5183 - SYS_LGETXATTR = 5184 - SYS_FGETXATTR = 5185 - SYS_LISTXATTR = 5186 - SYS_LLISTXATTR = 5187 - SYS_FLISTXATTR = 5188 - SYS_REMOVEXATTR = 5189 - SYS_LREMOVEXATTR = 5190 - SYS_FREMOVEXATTR = 5191 - SYS_TKILL = 5192 - SYS_RESERVED193 = 5193 - SYS_FUTEX = 5194 - SYS_SCHED_SETAFFINITY = 5195 - SYS_SCHED_GETAFFINITY = 5196 - SYS_CACHEFLUSH = 5197 - SYS_CACHECTL = 5198 - SYS_SYSMIPS = 5199 - SYS_IO_SETUP = 5200 - SYS_IO_DESTROY = 5201 - SYS_IO_GETEVENTS = 5202 - SYS_IO_SUBMIT = 5203 - SYS_IO_CANCEL = 5204 - SYS_EXIT_GROUP = 5205 - SYS_LOOKUP_DCOOKIE = 5206 - SYS_EPOLL_CREATE = 5207 - SYS_EPOLL_CTL = 5208 - SYS_EPOLL_WAIT = 5209 - SYS_REMAP_FILE_PAGES = 5210 - SYS_RT_SIGRETURN = 5211 - SYS_SET_TID_ADDRESS = 5212 - SYS_RESTART_SYSCALL = 5213 - SYS_SEMTIMEDOP = 5214 - SYS_FADVISE64 = 5215 - SYS_TIMER_CREATE = 5216 - SYS_TIMER_SETTIME = 5217 - SYS_TIMER_GETTIME = 5218 - SYS_TIMER_GETOVERRUN = 5219 - SYS_TIMER_DELETE = 5220 - SYS_CLOCK_SETTIME = 5221 - SYS_CLOCK_GETTIME = 5222 - SYS_CLOCK_GETRES = 5223 - SYS_CLOCK_NANOSLEEP = 5224 - SYS_TGKILL = 5225 - SYS_UTIMES = 5226 - SYS_MBIND = 5227 - SYS_GET_MEMPOLICY = 5228 - SYS_SET_MEMPOLICY = 5229 - SYS_MQ_OPEN = 5230 - SYS_MQ_UNLINK = 5231 - SYS_MQ_TIMEDSEND = 5232 - SYS_MQ_TIMEDRECEIVE = 5233 - SYS_MQ_NOTIFY = 5234 - SYS_MQ_GETSETATTR = 5235 - SYS_VSERVER = 5236 - SYS_WAITID = 5237 - SYS_ADD_KEY = 5239 - SYS_REQUEST_KEY = 5240 - SYS_KEYCTL = 5241 - SYS_SET_THREAD_AREA = 5242 - SYS_INOTIFY_INIT = 5243 - SYS_INOTIFY_ADD_WATCH = 5244 - SYS_INOTIFY_RM_WATCH = 5245 - SYS_MIGRATE_PAGES = 5246 - SYS_OPENAT = 5247 - SYS_MKDIRAT = 5248 - SYS_MKNODAT = 5249 - SYS_FCHOWNAT = 5250 - SYS_FUTIMESAT = 5251 - SYS_NEWFSTATAT = 5252 - SYS_UNLINKAT = 5253 - SYS_RENAMEAT = 5254 - SYS_LINKAT = 5255 - SYS_SYMLINKAT = 5256 - SYS_READLINKAT = 5257 - SYS_FCHMODAT = 5258 - SYS_FACCESSAT = 5259 - SYS_PSELECT6 = 5260 - SYS_PPOLL = 5261 - SYS_UNSHARE = 5262 - SYS_SPLICE = 5263 - SYS_SYNC_FILE_RANGE = 5264 - SYS_TEE = 5265 - SYS_VMSPLICE = 5266 - SYS_MOVE_PAGES = 5267 - SYS_SET_ROBUST_LIST = 5268 - SYS_GET_ROBUST_LIST = 5269 - SYS_KEXEC_LOAD = 5270 - SYS_GETCPU = 5271 - SYS_EPOLL_PWAIT = 5272 - SYS_IOPRIO_SET = 5273 - SYS_IOPRIO_GET = 5274 - SYS_UTIMENSAT = 5275 - SYS_SIGNALFD = 5276 - SYS_TIMERFD = 5277 - SYS_EVENTFD = 5278 - SYS_FALLOCATE = 5279 - SYS_TIMERFD_CREATE = 5280 - SYS_TIMERFD_GETTIME = 5281 - SYS_TIMERFD_SETTIME = 5282 - SYS_SIGNALFD4 = 5283 - SYS_EVENTFD2 = 5284 - SYS_EPOLL_CREATE1 = 5285 - SYS_DUP3 = 5286 - SYS_PIPE2 = 5287 - SYS_INOTIFY_INIT1 = 5288 - SYS_PREADV = 5289 - SYS_PWRITEV = 5290 - SYS_RT_TGSIGQUEUEINFO = 5291 - SYS_PERF_EVENT_OPEN = 5292 - SYS_ACCEPT4 = 5293 - SYS_RECVMMSG = 5294 - SYS_FANOTIFY_INIT = 5295 - SYS_FANOTIFY_MARK = 5296 - SYS_PRLIMIT64 = 5297 - SYS_NAME_TO_HANDLE_AT = 5298 - SYS_OPEN_BY_HANDLE_AT = 5299 - SYS_CLOCK_ADJTIME = 5300 - SYS_SYNCFS = 5301 - SYS_SENDMMSG = 5302 - SYS_SETNS = 5303 - SYS_PROCESS_VM_READV = 5304 - SYS_PROCESS_VM_WRITEV = 5305 - SYS_KCMP = 5306 - SYS_FINIT_MODULE = 5307 - SYS_GETDENTS64 = 5308 - SYS_SCHED_SETATTR = 5309 - SYS_SCHED_GETATTR = 5310 - SYS_RENAMEAT2 = 5311 - SYS_SECCOMP = 5312 - SYS_GETRANDOM = 5313 - SYS_MEMFD_CREATE = 5314 - SYS_BPF = 5315 - SYS_EXECVEAT = 5316 - SYS_USERFAULTFD = 5317 - SYS_MEMBARRIER = 5318 - SYS_MLOCK2 = 5319 - SYS_COPY_FILE_RANGE = 5320 - SYS_PREADV2 = 5321 - SYS_PWRITEV2 = 5322 - SYS_PKEY_MPROTECT = 5323 - SYS_PKEY_ALLOC = 5324 - SYS_PKEY_FREE = 5325 - 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 - SYS_MOUNT_SETATTR = 5442 - SYS_QUOTACTL_FD = 5443 - SYS_LANDLOCK_CREATE_RULESET = 5444 - SYS_LANDLOCK_ADD_RULE = 5445 - SYS_LANDLOCK_RESTRICT_SELF = 5446 - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 - SYS_MAP_SHADOW_STACK = 5453 - SYS_FUTEX_WAKE = 5454 - SYS_FUTEX_WAIT = 5455 - SYS_FUTEX_REQUEUE = 5456 - SYS_STATMOUNT = 5457 - SYS_LISTMOUNT = 5458 - SYS_LSM_GET_SELF_ATTR = 5459 - SYS_LSM_SET_SELF_ATTR = 5460 - SYS_LSM_LIST_MODULES = 5461 - SYS_MSEAL = 5462 - SYS_SETXATTRAT = 5463 - SYS_GETXATTRAT = 5464 - SYS_LISTXATTRAT = 5465 - SYS_REMOVEXATTRAT = 5466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go deleted file mode 100644 index eea5ddf..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ /dev/null @@ -1,449 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go: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_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 - SYS_MOUNT_SETATTR = 4442 - SYS_QUOTACTL_FD = 4443 - SYS_LANDLOCK_CREATE_RULESET = 4444 - SYS_LANDLOCK_ADD_RULE = 4445 - SYS_LANDLOCK_RESTRICT_SELF = 4446 - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 - SYS_MAP_SHADOW_STACK = 4453 - SYS_FUTEX_WAKE = 4454 - SYS_FUTEX_WAIT = 4455 - SYS_FUTEX_REQUEUE = 4456 - SYS_STATMOUNT = 4457 - SYS_LISTMOUNT = 4458 - SYS_LSM_GET_SELF_ATTR = 4459 - SYS_LSM_SET_SELF_ATTR = 4460 - SYS_LSM_LIST_MODULES = 4461 - SYS_MSEAL = 4462 - SYS_SETXATTRAT = 4463 - SYS_GETXATTRAT = 4464 - SYS_LISTXATTRAT = 4465 - SYS_REMOVEXATTRAT = 4466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go deleted file mode 100644 index 0d777bf..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ /dev/null @@ -1,456 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && 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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_MMAP2 = 192 - SYS_TRUNCATE64 = 193 - SYS_FTRUNCATE64 = 194 - SYS_STAT64 = 195 - SYS_LSTAT64 = 196 - SYS_FSTAT64 = 197 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_FCNTL64 = 204 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_SENDFILE64 = 226 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_FADVISE64_64 = 254 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_FSTATAT64 = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - SYS_PKEY_MPROTECT = 386 - SYS_RSEQ = 387 - SYS_IO_PGETEVENTS = 388 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go deleted file mode 100644 index b446365..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ /dev/null @@ -1,428 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && 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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go deleted file mode 100644 index 0c7d21c..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ /dev/null @@ -1,428 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && 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_VM86 = 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_QUERY_MODULE = 166 - SYS_POLL = 167 - SYS_NFSSERVCTL = 168 - SYS_SETRESGID = 169 - SYS_GETRESGID = 170 - SYS_PRCTL = 171 - SYS_RT_SIGRETURN = 172 - SYS_RT_SIGACTION = 173 - SYS_RT_SIGPROCMASK = 174 - SYS_RT_SIGPENDING = 175 - SYS_RT_SIGTIMEDWAIT = 176 - SYS_RT_SIGQUEUEINFO = 177 - SYS_RT_SIGSUSPEND = 178 - SYS_PREAD64 = 179 - SYS_PWRITE64 = 180 - SYS_CHOWN = 181 - SYS_GETCWD = 182 - SYS_CAPGET = 183 - SYS_CAPSET = 184 - SYS_SIGALTSTACK = 185 - SYS_SENDFILE = 186 - SYS_GETPMSG = 187 - SYS_PUTPMSG = 188 - SYS_VFORK = 189 - SYS_UGETRLIMIT = 190 - SYS_READAHEAD = 191 - SYS_PCICONFIG_READ = 198 - SYS_PCICONFIG_WRITE = 199 - SYS_PCICONFIG_IOBASE = 200 - SYS_MULTIPLEXER = 201 - SYS_GETDENTS64 = 202 - SYS_PIVOT_ROOT = 203 - SYS_MADVISE = 205 - SYS_MINCORE = 206 - SYS_GETTID = 207 - SYS_TKILL = 208 - SYS_SETXATTR = 209 - SYS_LSETXATTR = 210 - SYS_FSETXATTR = 211 - SYS_GETXATTR = 212 - SYS_LGETXATTR = 213 - SYS_FGETXATTR = 214 - SYS_LISTXATTR = 215 - SYS_LLISTXATTR = 216 - SYS_FLISTXATTR = 217 - SYS_REMOVEXATTR = 218 - SYS_LREMOVEXATTR = 219 - SYS_FREMOVEXATTR = 220 - SYS_FUTEX = 221 - SYS_SCHED_SETAFFINITY = 222 - SYS_SCHED_GETAFFINITY = 223 - SYS_TUXCALL = 225 - SYS_IO_SETUP = 227 - SYS_IO_DESTROY = 228 - SYS_IO_GETEVENTS = 229 - SYS_IO_SUBMIT = 230 - SYS_IO_CANCEL = 231 - SYS_SET_TID_ADDRESS = 232 - SYS_FADVISE64 = 233 - SYS_EXIT_GROUP = 234 - SYS_LOOKUP_DCOOKIE = 235 - SYS_EPOLL_CREATE = 236 - SYS_EPOLL_CTL = 237 - SYS_EPOLL_WAIT = 238 - SYS_REMAP_FILE_PAGES = 239 - SYS_TIMER_CREATE = 240 - SYS_TIMER_SETTIME = 241 - SYS_TIMER_GETTIME = 242 - SYS_TIMER_GETOVERRUN = 243 - SYS_TIMER_DELETE = 244 - SYS_CLOCK_SETTIME = 245 - SYS_CLOCK_GETTIME = 246 - SYS_CLOCK_GETRES = 247 - SYS_CLOCK_NANOSLEEP = 248 - SYS_SWAPCONTEXT = 249 - SYS_TGKILL = 250 - SYS_UTIMES = 251 - SYS_STATFS64 = 252 - SYS_FSTATFS64 = 253 - SYS_RTAS = 255 - SYS_SYS_DEBUG_SETCONTEXT = 256 - SYS_MIGRATE_PAGES = 258 - SYS_MBIND = 259 - SYS_GET_MEMPOLICY = 260 - SYS_SET_MEMPOLICY = 261 - SYS_MQ_OPEN = 262 - SYS_MQ_UNLINK = 263 - SYS_MQ_TIMEDSEND = 264 - SYS_MQ_TIMEDRECEIVE = 265 - SYS_MQ_NOTIFY = 266 - SYS_MQ_GETSETATTR = 267 - SYS_KEXEC_LOAD = 268 - SYS_ADD_KEY = 269 - SYS_REQUEST_KEY = 270 - SYS_KEYCTL = 271 - SYS_WAITID = 272 - SYS_IOPRIO_SET = 273 - SYS_IOPRIO_GET = 274 - SYS_INOTIFY_INIT = 275 - SYS_INOTIFY_ADD_WATCH = 276 - SYS_INOTIFY_RM_WATCH = 277 - SYS_SPU_RUN = 278 - SYS_SPU_CREATE = 279 - SYS_PSELECT6 = 280 - SYS_PPOLL = 281 - SYS_UNSHARE = 282 - SYS_SPLICE = 283 - SYS_TEE = 284 - SYS_VMSPLICE = 285 - SYS_OPENAT = 286 - SYS_MKDIRAT = 287 - SYS_MKNODAT = 288 - SYS_FCHOWNAT = 289 - SYS_FUTIMESAT = 290 - SYS_NEWFSTATAT = 291 - SYS_UNLINKAT = 292 - SYS_RENAMEAT = 293 - SYS_LINKAT = 294 - SYS_SYMLINKAT = 295 - SYS_READLINKAT = 296 - SYS_FCHMODAT = 297 - SYS_FACCESSAT = 298 - SYS_GET_ROBUST_LIST = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_MOVE_PAGES = 301 - SYS_GETCPU = 302 - SYS_EPOLL_PWAIT = 303 - SYS_UTIMENSAT = 304 - SYS_SIGNALFD = 305 - SYS_TIMERFD_CREATE = 306 - SYS_EVENTFD = 307 - SYS_SYNC_FILE_RANGE2 = 308 - SYS_FALLOCATE = 309 - SYS_SUBPAGE_PROT = 310 - SYS_TIMERFD_SETTIME = 311 - SYS_TIMERFD_GETTIME = 312 - SYS_SIGNALFD4 = 313 - SYS_EVENTFD2 = 314 - SYS_EPOLL_CREATE1 = 315 - SYS_DUP3 = 316 - SYS_PIPE2 = 317 - SYS_INOTIFY_INIT1 = 318 - SYS_PERF_EVENT_OPEN = 319 - SYS_PREADV = 320 - SYS_PWRITEV = 321 - SYS_RT_TGSIGQUEUEINFO = 322 - SYS_FANOTIFY_INIT = 323 - SYS_FANOTIFY_MARK = 324 - SYS_PRLIMIT64 = 325 - SYS_SOCKET = 326 - SYS_BIND = 327 - SYS_CONNECT = 328 - SYS_LISTEN = 329 - SYS_ACCEPT = 330 - SYS_GETSOCKNAME = 331 - SYS_GETPEERNAME = 332 - SYS_SOCKETPAIR = 333 - SYS_SEND = 334 - SYS_SENDTO = 335 - SYS_RECV = 336 - SYS_RECVFROM = 337 - SYS_SHUTDOWN = 338 - SYS_SETSOCKOPT = 339 - SYS_GETSOCKOPT = 340 - SYS_SENDMSG = 341 - SYS_RECVMSG = 342 - SYS_RECVMMSG = 343 - SYS_ACCEPT4 = 344 - SYS_NAME_TO_HANDLE_AT = 345 - SYS_OPEN_BY_HANDLE_AT = 346 - SYS_CLOCK_ADJTIME = 347 - SYS_SYNCFS = 348 - SYS_SENDMMSG = 349 - SYS_SETNS = 350 - SYS_PROCESS_VM_READV = 351 - SYS_PROCESS_VM_WRITEV = 352 - SYS_FINIT_MODULE = 353 - SYS_KCMP = 354 - SYS_SCHED_SETATTR = 355 - SYS_SCHED_GETATTR = 356 - SYS_RENAMEAT2 = 357 - SYS_SECCOMP = 358 - SYS_GETRANDOM = 359 - SYS_MEMFD_CREATE = 360 - SYS_BPF = 361 - SYS_EXECVEAT = 362 - SYS_SWITCH_ENDIAN = 363 - SYS_USERFAULTFD = 364 - SYS_MEMBARRIER = 365 - SYS_MLOCK2 = 378 - SYS_COPY_FILE_RANGE = 379 - SYS_PREADV2 = 380 - SYS_PWRITEV2 = 381 - SYS_KEXEC_FILE_LOAD = 382 - SYS_STATX = 383 - SYS_PKEY_ALLOC = 384 - SYS_PKEY_FREE = 385 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go deleted file mode 100644 index 8405391..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ /dev/null @@ -1,333 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -package unix - -const ( - SYS_IO_SETUP = 0 - SYS_IO_DESTROY = 1 - SYS_IO_SUBMIT = 2 - SYS_IO_CANCEL = 3 - SYS_IO_GETEVENTS = 4 - SYS_SETXATTR = 5 - SYS_LSETXATTR = 6 - SYS_FSETXATTR = 7 - SYS_GETXATTR = 8 - SYS_LGETXATTR = 9 - SYS_FGETXATTR = 10 - SYS_LISTXATTR = 11 - SYS_LLISTXATTR = 12 - SYS_FLISTXATTR = 13 - SYS_REMOVEXATTR = 14 - SYS_LREMOVEXATTR = 15 - SYS_FREMOVEXATTR = 16 - SYS_GETCWD = 17 - SYS_LOOKUP_DCOOKIE = 18 - SYS_EVENTFD2 = 19 - SYS_EPOLL_CREATE1 = 20 - SYS_EPOLL_CTL = 21 - SYS_EPOLL_PWAIT = 22 - SYS_DUP = 23 - SYS_DUP3 = 24 - SYS_FCNTL = 25 - SYS_INOTIFY_INIT1 = 26 - SYS_INOTIFY_ADD_WATCH = 27 - SYS_INOTIFY_RM_WATCH = 28 - SYS_IOCTL = 29 - SYS_IOPRIO_SET = 30 - SYS_IOPRIO_GET = 31 - SYS_FLOCK = 32 - SYS_MKNODAT = 33 - SYS_MKDIRAT = 34 - SYS_UNLINKAT = 35 - SYS_SYMLINKAT = 36 - SYS_LINKAT = 37 - SYS_UMOUNT2 = 39 - SYS_MOUNT = 40 - SYS_PIVOT_ROOT = 41 - SYS_NFSSERVCTL = 42 - SYS_STATFS = 43 - SYS_FSTATFS = 44 - SYS_TRUNCATE = 45 - SYS_FTRUNCATE = 46 - SYS_FALLOCATE = 47 - SYS_FACCESSAT = 48 - SYS_CHDIR = 49 - SYS_FCHDIR = 50 - SYS_CHROOT = 51 - SYS_FCHMOD = 52 - SYS_FCHMODAT = 53 - SYS_FCHOWNAT = 54 - SYS_FCHOWN = 55 - SYS_OPENAT = 56 - SYS_CLOSE = 57 - SYS_VHANGUP = 58 - SYS_PIPE2 = 59 - SYS_QUOTACTL = 60 - SYS_GETDENTS64 = 61 - SYS_LSEEK = 62 - SYS_READ = 63 - SYS_WRITE = 64 - SYS_READV = 65 - SYS_WRITEV = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_PREADV = 69 - SYS_PWRITEV = 70 - SYS_SENDFILE = 71 - SYS_PSELECT6 = 72 - SYS_PPOLL = 73 - SYS_SIGNALFD4 = 74 - SYS_VMSPLICE = 75 - SYS_SPLICE = 76 - SYS_TEE = 77 - SYS_READLINKAT = 78 - SYS_NEWFSTATAT = 79 - SYS_FSTAT = 80 - SYS_SYNC = 81 - SYS_FSYNC = 82 - SYS_FDATASYNC = 83 - SYS_SYNC_FILE_RANGE = 84 - SYS_TIMERFD_CREATE = 85 - SYS_TIMERFD_SETTIME = 86 - SYS_TIMERFD_GETTIME = 87 - SYS_UTIMENSAT = 88 - SYS_ACCT = 89 - SYS_CAPGET = 90 - SYS_CAPSET = 91 - SYS_PERSONALITY = 92 - SYS_EXIT = 93 - SYS_EXIT_GROUP = 94 - SYS_WAITID = 95 - SYS_SET_TID_ADDRESS = 96 - SYS_UNSHARE = 97 - SYS_FUTEX = 98 - SYS_SET_ROBUST_LIST = 99 - SYS_GET_ROBUST_LIST = 100 - SYS_NANOSLEEP = 101 - SYS_GETITIMER = 102 - SYS_SETITIMER = 103 - SYS_KEXEC_LOAD = 104 - SYS_INIT_MODULE = 105 - SYS_DELETE_MODULE = 106 - SYS_TIMER_CREATE = 107 - SYS_TIMER_GETTIME = 108 - SYS_TIMER_GETOVERRUN = 109 - SYS_TIMER_SETTIME = 110 - SYS_TIMER_DELETE = 111 - SYS_CLOCK_SETTIME = 112 - SYS_CLOCK_GETTIME = 113 - SYS_CLOCK_GETRES = 114 - SYS_CLOCK_NANOSLEEP = 115 - SYS_SYSLOG = 116 - SYS_PTRACE = 117 - SYS_SCHED_SETPARAM = 118 - SYS_SCHED_SETSCHEDULER = 119 - SYS_SCHED_GETSCHEDULER = 120 - SYS_SCHED_GETPARAM = 121 - SYS_SCHED_SETAFFINITY = 122 - SYS_SCHED_GETAFFINITY = 123 - SYS_SCHED_YIELD = 124 - SYS_SCHED_GET_PRIORITY_MAX = 125 - SYS_SCHED_GET_PRIORITY_MIN = 126 - SYS_SCHED_RR_GET_INTERVAL = 127 - SYS_RESTART_SYSCALL = 128 - SYS_KILL = 129 - SYS_TKILL = 130 - SYS_TGKILL = 131 - SYS_SIGALTSTACK = 132 - SYS_RT_SIGSUSPEND = 133 - SYS_RT_SIGACTION = 134 - SYS_RT_SIGPROCMASK = 135 - SYS_RT_SIGPENDING = 136 - SYS_RT_SIGTIMEDWAIT = 137 - SYS_RT_SIGQUEUEINFO = 138 - SYS_RT_SIGRETURN = 139 - SYS_SETPRIORITY = 140 - SYS_GETPRIORITY = 141 - SYS_REBOOT = 142 - SYS_SETREGID = 143 - SYS_SETGID = 144 - SYS_SETREUID = 145 - SYS_SETUID = 146 - SYS_SETRESUID = 147 - SYS_GETRESUID = 148 - SYS_SETRESGID = 149 - SYS_GETRESGID = 150 - SYS_SETFSUID = 151 - SYS_SETFSGID = 152 - SYS_TIMES = 153 - SYS_SETPGID = 154 - SYS_GETPGID = 155 - SYS_GETSID = 156 - SYS_SETSID = 157 - SYS_GETGROUPS = 158 - SYS_SETGROUPS = 159 - SYS_UNAME = 160 - SYS_SETHOSTNAME = 161 - SYS_SETDOMAINNAME = 162 - SYS_GETRLIMIT = 163 - SYS_SETRLIMIT = 164 - SYS_GETRUSAGE = 165 - SYS_UMASK = 166 - SYS_PRCTL = 167 - SYS_GETCPU = 168 - SYS_GETTIMEOFDAY = 169 - SYS_SETTIMEOFDAY = 170 - SYS_ADJTIMEX = 171 - SYS_GETPID = 172 - SYS_GETPPID = 173 - SYS_GETUID = 174 - SYS_GETEUID = 175 - SYS_GETGID = 176 - SYS_GETEGID = 177 - SYS_GETTID = 178 - SYS_SYSINFO = 179 - SYS_MQ_OPEN = 180 - SYS_MQ_UNLINK = 181 - SYS_MQ_TIMEDSEND = 182 - SYS_MQ_TIMEDRECEIVE = 183 - SYS_MQ_NOTIFY = 184 - SYS_MQ_GETSETATTR = 185 - SYS_MSGGET = 186 - SYS_MSGCTL = 187 - SYS_MSGRCV = 188 - SYS_MSGSND = 189 - SYS_SEMGET = 190 - SYS_SEMCTL = 191 - SYS_SEMTIMEDOP = 192 - SYS_SEMOP = 193 - SYS_SHMGET = 194 - SYS_SHMCTL = 195 - SYS_SHMAT = 196 - SYS_SHMDT = 197 - SYS_SOCKET = 198 - SYS_SOCKETPAIR = 199 - SYS_BIND = 200 - SYS_LISTEN = 201 - SYS_ACCEPT = 202 - SYS_CONNECT = 203 - SYS_GETSOCKNAME = 204 - SYS_GETPEERNAME = 205 - SYS_SENDTO = 206 - SYS_RECVFROM = 207 - SYS_SETSOCKOPT = 208 - SYS_GETSOCKOPT = 209 - SYS_SHUTDOWN = 210 - SYS_SENDMSG = 211 - SYS_RECVMSG = 212 - SYS_READAHEAD = 213 - SYS_BRK = 214 - SYS_MUNMAP = 215 - SYS_MREMAP = 216 - SYS_ADD_KEY = 217 - SYS_REQUEST_KEY = 218 - SYS_KEYCTL = 219 - SYS_CLONE = 220 - SYS_EXECVE = 221 - SYS_MMAP = 222 - SYS_FADVISE64 = 223 - SYS_SWAPON = 224 - SYS_SWAPOFF = 225 - SYS_MPROTECT = 226 - SYS_MSYNC = 227 - SYS_MLOCK = 228 - SYS_MUNLOCK = 229 - SYS_MLOCKALL = 230 - SYS_MUNLOCKALL = 231 - SYS_MINCORE = 232 - SYS_MADVISE = 233 - SYS_REMAP_FILE_PAGES = 234 - SYS_MBIND = 235 - SYS_GET_MEMPOLICY = 236 - SYS_SET_MEMPOLICY = 237 - SYS_MIGRATE_PAGES = 238 - SYS_MOVE_PAGES = 239 - SYS_RT_TGSIGQUEUEINFO = 240 - SYS_PERF_EVENT_OPEN = 241 - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 - SYS_RISCV_HWPROBE = 258 - SYS_RISCV_FLUSH_ICACHE = 259 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 - SYS_FANOTIFY_MARK = 263 - SYS_NAME_TO_HANDLE_AT = 264 - SYS_OPEN_BY_HANDLE_AT = 265 - SYS_CLOCK_ADJTIME = 266 - SYS_SYNCFS = 267 - SYS_SETNS = 268 - SYS_SENDMMSG = 269 - SYS_PROCESS_VM_READV = 270 - SYS_PROCESS_VM_WRITEV = 271 - SYS_KCMP = 272 - SYS_FINIT_MODULE = 273 - SYS_SCHED_SETATTR = 274 - SYS_SCHED_GETATTR = 275 - SYS_RENAMEAT2 = 276 - SYS_SECCOMP = 277 - SYS_GETRANDOM = 278 - SYS_MEMFD_CREATE = 279 - SYS_BPF = 280 - SYS_EXECVEAT = 281 - SYS_USERFAULTFD = 282 - SYS_MEMBARRIER = 283 - SYS_MLOCK2 = 284 - SYS_COPY_FILE_RANGE = 285 - SYS_PREADV2 = 286 - SYS_PWRITEV2 = 287 - SYS_PKEY_MPROTECT = 288 - SYS_PKEY_ALLOC = 289 - SYS_PKEY_FREE = 290 - SYS_STATX = 291 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go deleted file mode 100644 index fcf1b79..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ /dev/null @@ -1,394 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -package unix - -const ( - SYS_EXIT = 1 - SYS_FORK = 2 - SYS_READ = 3 - SYS_WRITE = 4 - SYS_OPEN = 5 - SYS_CLOSE = 6 - SYS_RESTART_SYSCALL = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECVE = 11 - SYS_CHDIR = 12 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_MOUNT = 21 - SYS_UMOUNT = 22 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_PAUSE = 29 - SYS_UTIME = 30 - 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_SIGNAL = 48 - 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_SIGSUSPEND = 72 - SYS_SIGPENDING = 73 - SYS_SETHOSTNAME = 74 - SYS_SETRLIMIT = 75 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_SYMLINK = 83 - SYS_READLINK = 85 - SYS_USELIB = 86 - SYS_SWAPON = 87 - SYS_REBOOT = 88 - SYS_READDIR = 89 - SYS_MMAP = 90 - SYS_MUNMAP = 91 - SYS_TRUNCATE = 92 - SYS_FTRUNCATE = 93 - SYS_FCHMOD = 94 - SYS_GETPRIORITY = 96 - SYS_SETPRIORITY = 97 - SYS_STATFS = 99 - SYS_FSTATFS = 100 - SYS_SOCKETCALL = 102 - SYS_SYSLOG = 103 - SYS_SETITIMER = 104 - SYS_GETITIMER = 105 - SYS_STAT = 106 - SYS_LSTAT = 107 - SYS_FSTAT = 108 - SYS_LOOKUP_DCOOKIE = 110 - SYS_VHANGUP = 111 - SYS_IDLE = 112 - 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_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_GETDENTS = 141 - SYS_SELECT = 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_QUERY_MODULE = 167 - SYS_POLL = 168 - SYS_NFSSERVCTL = 169 - 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_GETCWD = 183 - SYS_CAPGET = 184 - SYS_CAPSET = 185 - SYS_SIGALTSTACK = 186 - SYS_SENDFILE = 187 - SYS_GETPMSG = 188 - SYS_PUTPMSG = 189 - SYS_VFORK = 190 - SYS_GETRLIMIT = 191 - SYS_LCHOWN = 198 - SYS_GETUID = 199 - SYS_GETGID = 200 - SYS_GETEUID = 201 - SYS_GETEGID = 202 - SYS_SETREUID = 203 - SYS_SETREGID = 204 - SYS_GETGROUPS = 205 - SYS_SETGROUPS = 206 - SYS_FCHOWN = 207 - SYS_SETRESUID = 208 - SYS_GETRESUID = 209 - SYS_SETRESGID = 210 - SYS_GETRESGID = 211 - SYS_CHOWN = 212 - SYS_SETUID = 213 - SYS_SETGID = 214 - SYS_SETFSUID = 215 - SYS_SETFSGID = 216 - SYS_PIVOT_ROOT = 217 - SYS_MINCORE = 218 - SYS_MADVISE = 219 - SYS_GETDENTS64 = 220 - SYS_READAHEAD = 222 - SYS_SETXATTR = 224 - SYS_LSETXATTR = 225 - SYS_FSETXATTR = 226 - SYS_GETXATTR = 227 - SYS_LGETXATTR = 228 - SYS_FGETXATTR = 229 - SYS_LISTXATTR = 230 - SYS_LLISTXATTR = 231 - SYS_FLISTXATTR = 232 - SYS_REMOVEXATTR = 233 - SYS_LREMOVEXATTR = 234 - SYS_FREMOVEXATTR = 235 - SYS_GETTID = 236 - SYS_TKILL = 237 - SYS_FUTEX = 238 - SYS_SCHED_SETAFFINITY = 239 - SYS_SCHED_GETAFFINITY = 240 - SYS_TGKILL = 241 - 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_EPOLL_CREATE = 249 - SYS_EPOLL_CTL = 250 - SYS_EPOLL_WAIT = 251 - SYS_SET_TID_ADDRESS = 252 - SYS_FADVISE64 = 253 - SYS_TIMER_CREATE = 254 - SYS_TIMER_SETTIME = 255 - SYS_TIMER_GETTIME = 256 - SYS_TIMER_GETOVERRUN = 257 - SYS_TIMER_DELETE = 258 - SYS_CLOCK_SETTIME = 259 - SYS_CLOCK_GETTIME = 260 - SYS_CLOCK_GETRES = 261 - SYS_CLOCK_NANOSLEEP = 262 - SYS_STATFS64 = 265 - SYS_FSTATFS64 = 266 - SYS_REMAP_FILE_PAGES = 267 - SYS_MBIND = 268 - SYS_GET_MEMPOLICY = 269 - SYS_SET_MEMPOLICY = 270 - SYS_MQ_OPEN = 271 - SYS_MQ_UNLINK = 272 - SYS_MQ_TIMEDSEND = 273 - SYS_MQ_TIMEDRECEIVE = 274 - SYS_MQ_NOTIFY = 275 - SYS_MQ_GETSETATTR = 276 - SYS_KEXEC_LOAD = 277 - SYS_ADD_KEY = 278 - SYS_REQUEST_KEY = 279 - SYS_KEYCTL = 280 - SYS_WAITID = 281 - SYS_IOPRIO_SET = 282 - SYS_IOPRIO_GET = 283 - SYS_INOTIFY_INIT = 284 - SYS_INOTIFY_ADD_WATCH = 285 - SYS_INOTIFY_RM_WATCH = 286 - SYS_MIGRATE_PAGES = 287 - SYS_OPENAT = 288 - SYS_MKDIRAT = 289 - SYS_MKNODAT = 290 - SYS_FCHOWNAT = 291 - SYS_FUTIMESAT = 292 - SYS_NEWFSTATAT = 293 - SYS_UNLINKAT = 294 - SYS_RENAMEAT = 295 - SYS_LINKAT = 296 - SYS_SYMLINKAT = 297 - SYS_READLINKAT = 298 - SYS_FCHMODAT = 299 - SYS_FACCESSAT = 300 - SYS_PSELECT6 = 301 - SYS_PPOLL = 302 - SYS_UNSHARE = 303 - SYS_SET_ROBUST_LIST = 304 - SYS_GET_ROBUST_LIST = 305 - SYS_SPLICE = 306 - SYS_SYNC_FILE_RANGE = 307 - SYS_TEE = 308 - SYS_VMSPLICE = 309 - SYS_MOVE_PAGES = 310 - SYS_GETCPU = 311 - SYS_EPOLL_PWAIT = 312 - SYS_UTIMES = 313 - SYS_FALLOCATE = 314 - SYS_UTIMENSAT = 315 - SYS_SIGNALFD = 316 - SYS_TIMERFD = 317 - SYS_EVENTFD = 318 - SYS_TIMERFD_CREATE = 319 - SYS_TIMERFD_SETTIME = 320 - SYS_TIMERFD_GETTIME = 321 - SYS_SIGNALFD4 = 322 - SYS_EVENTFD2 = 323 - SYS_INOTIFY_INIT1 = 324 - SYS_PIPE2 = 325 - SYS_DUP3 = 326 - SYS_EPOLL_CREATE1 = 327 - SYS_PREADV = 328 - SYS_PWRITEV = 329 - SYS_RT_TGSIGQUEUEINFO = 330 - SYS_PERF_EVENT_OPEN = 331 - SYS_FANOTIFY_INIT = 332 - SYS_FANOTIFY_MARK = 333 - SYS_PRLIMIT64 = 334 - SYS_NAME_TO_HANDLE_AT = 335 - SYS_OPEN_BY_HANDLE_AT = 336 - SYS_CLOCK_ADJTIME = 337 - SYS_SYNCFS = 338 - SYS_SETNS = 339 - SYS_PROCESS_VM_READV = 340 - SYS_PROCESS_VM_WRITEV = 341 - SYS_S390_RUNTIME_INSTR = 342 - SYS_KCMP = 343 - SYS_FINIT_MODULE = 344 - SYS_SCHED_SETATTR = 345 - SYS_SCHED_GETATTR = 346 - SYS_RENAMEAT2 = 347 - SYS_SECCOMP = 348 - SYS_GETRANDOM = 349 - SYS_MEMFD_CREATE = 350 - SYS_BPF = 351 - SYS_S390_PCI_MMIO_WRITE = 352 - SYS_S390_PCI_MMIO_READ = 353 - SYS_EXECVEAT = 354 - SYS_USERFAULTFD = 355 - SYS_MEMBARRIER = 356 - SYS_RECVMMSG = 357 - SYS_SENDMMSG = 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_MLOCK2 = 374 - SYS_COPY_FILE_RANGE = 375 - SYS_PREADV2 = 376 - SYS_PWRITEV2 = 377 - SYS_S390_GUARDED_STORAGE = 378 - SYS_STATX = 379 - SYS_S390_STHYI = 380 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go deleted file mode 100644 index 52d15b5..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ /dev/null @@ -1,407 +0,0 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && 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_WAIT4 = 7 - SYS_CREAT = 8 - SYS_LINK = 9 - SYS_UNLINK = 10 - SYS_EXECV = 11 - SYS_CHDIR = 12 - SYS_CHOWN = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - SYS_BRK = 17 - SYS_PERFCTR = 18 - SYS_LSEEK = 19 - SYS_GETPID = 20 - SYS_CAPGET = 21 - SYS_CAPSET = 22 - SYS_SETUID = 23 - SYS_GETUID = 24 - SYS_VMSPLICE = 25 - SYS_PTRACE = 26 - SYS_ALARM = 27 - SYS_SIGALTSTACK = 28 - SYS_PAUSE = 29 - SYS_UTIME = 30 - SYS_ACCESS = 33 - SYS_NICE = 34 - SYS_SYNC = 36 - SYS_KILL = 37 - SYS_STAT = 38 - SYS_SENDFILE = 39 - SYS_LSTAT = 40 - SYS_DUP = 41 - SYS_PIPE = 42 - SYS_TIMES = 43 - SYS_UMOUNT2 = 45 - SYS_SETGID = 46 - SYS_GETGID = 47 - SYS_SIGNAL = 48 - SYS_GETEUID = 49 - SYS_GETEGID = 50 - SYS_ACCT = 51 - SYS_MEMORY_ORDERING = 52 - SYS_IOCTL = 54 - SYS_REBOOT = 55 - SYS_SYMLINK = 57 - SYS_READLINK = 58 - SYS_EXECVE = 59 - SYS_UMASK = 60 - SYS_CHROOT = 61 - SYS_FSTAT = 62 - SYS_FSTAT64 = 63 - SYS_GETPAGESIZE = 64 - SYS_MSYNC = 65 - SYS_VFORK = 66 - SYS_PREAD64 = 67 - SYS_PWRITE64 = 68 - SYS_MMAP = 71 - SYS_MUNMAP = 73 - SYS_MPROTECT = 74 - SYS_MADVISE = 75 - SYS_VHANGUP = 76 - SYS_MINCORE = 78 - SYS_GETGROUPS = 79 - SYS_SETGROUPS = 80 - SYS_GETPGRP = 81 - SYS_SETITIMER = 83 - SYS_SWAPON = 85 - SYS_GETITIMER = 86 - SYS_SETHOSTNAME = 88 - SYS_DUP2 = 90 - SYS_FCNTL = 92 - SYS_SELECT = 93 - SYS_FSYNC = 95 - SYS_SETPRIORITY = 96 - SYS_SOCKET = 97 - SYS_CONNECT = 98 - SYS_ACCEPT = 99 - SYS_GETPRIORITY = 100 - SYS_RT_SIGRETURN = 101 - SYS_RT_SIGACTION = 102 - SYS_RT_SIGPROCMASK = 103 - SYS_RT_SIGPENDING = 104 - SYS_RT_SIGTIMEDWAIT = 105 - SYS_RT_SIGQUEUEINFO = 106 - SYS_RT_SIGSUSPEND = 107 - SYS_SETRESUID = 108 - SYS_GETRESUID = 109 - SYS_SETRESGID = 110 - SYS_GETRESGID = 111 - SYS_RECVMSG = 113 - SYS_SENDMSG = 114 - SYS_GETTIMEOFDAY = 116 - SYS_GETRUSAGE = 117 - SYS_GETSOCKOPT = 118 - SYS_GETCWD = 119 - SYS_READV = 120 - SYS_WRITEV = 121 - SYS_SETTIMEOFDAY = 122 - SYS_FCHOWN = 123 - SYS_FCHMOD = 124 - SYS_RECVFROM = 125 - SYS_SETREUID = 126 - SYS_SETREGID = 127 - SYS_RENAME = 128 - SYS_TRUNCATE = 129 - SYS_FTRUNCATE = 130 - SYS_FLOCK = 131 - SYS_LSTAT64 = 132 - SYS_SENDTO = 133 - SYS_SHUTDOWN = 134 - SYS_SOCKETPAIR = 135 - SYS_MKDIR = 136 - SYS_RMDIR = 137 - SYS_UTIMES = 138 - SYS_STAT64 = 139 - SYS_SENDFILE64 = 140 - SYS_GETPEERNAME = 141 - SYS_FUTEX = 142 - SYS_GETTID = 143 - SYS_GETRLIMIT = 144 - SYS_SETRLIMIT = 145 - SYS_PIVOT_ROOT = 146 - SYS_PRCTL = 147 - SYS_PCICONFIG_READ = 148 - SYS_PCICONFIG_WRITE = 149 - SYS_GETSOCKNAME = 150 - SYS_INOTIFY_INIT = 151 - SYS_INOTIFY_ADD_WATCH = 152 - SYS_POLL = 153 - SYS_GETDENTS64 = 154 - SYS_INOTIFY_RM_WATCH = 156 - SYS_STATFS = 157 - SYS_FSTATFS = 158 - SYS_UMOUNT = 159 - SYS_SCHED_SET_AFFINITY = 160 - SYS_SCHED_GET_AFFINITY = 161 - SYS_GETDOMAINNAME = 162 - SYS_SETDOMAINNAME = 163 - SYS_UTRAP_INSTALL = 164 - SYS_QUOTACTL = 165 - SYS_SET_TID_ADDRESS = 166 - SYS_MOUNT = 167 - SYS_USTAT = 168 - SYS_SETXATTR = 169 - SYS_LSETXATTR = 170 - SYS_FSETXATTR = 171 - SYS_GETXATTR = 172 - SYS_LGETXATTR = 173 - SYS_GETDENTS = 174 - SYS_SETSID = 175 - SYS_FCHDIR = 176 - SYS_FGETXATTR = 177 - SYS_LISTXATTR = 178 - SYS_LLISTXATTR = 179 - SYS_FLISTXATTR = 180 - SYS_REMOVEXATTR = 181 - SYS_LREMOVEXATTR = 182 - SYS_SIGPENDING = 183 - SYS_QUERY_MODULE = 184 - SYS_SETPGID = 185 - SYS_FREMOVEXATTR = 186 - SYS_TKILL = 187 - SYS_EXIT_GROUP = 188 - SYS_UNAME = 189 - SYS_INIT_MODULE = 190 - SYS_PERSONALITY = 191 - SYS_REMAP_FILE_PAGES = 192 - SYS_EPOLL_CREATE = 193 - SYS_EPOLL_CTL = 194 - SYS_EPOLL_WAIT = 195 - SYS_IOPRIO_SET = 196 - SYS_GETPPID = 197 - SYS_SIGACTION = 198 - SYS_SGETMASK = 199 - SYS_SSETMASK = 200 - SYS_SIGSUSPEND = 201 - SYS_OLDLSTAT = 202 - SYS_USELIB = 203 - SYS_READDIR = 204 - SYS_READAHEAD = 205 - SYS_SOCKETCALL = 206 - SYS_SYSLOG = 207 - SYS_LOOKUP_DCOOKIE = 208 - SYS_FADVISE64 = 209 - SYS_FADVISE64_64 = 210 - SYS_TGKILL = 211 - SYS_WAITPID = 212 - SYS_SWAPOFF = 213 - SYS_SYSINFO = 214 - SYS_IPC = 215 - SYS_SIGRETURN = 216 - SYS_CLONE = 217 - SYS_IOPRIO_GET = 218 - SYS_ADJTIMEX = 219 - SYS_SIGPROCMASK = 220 - SYS_CREATE_MODULE = 221 - SYS_DELETE_MODULE = 222 - SYS_GET_KERNEL_SYMS = 223 - SYS_GETPGID = 224 - SYS_BDFLUSH = 225 - SYS_SYSFS = 226 - SYS_AFS_SYSCALL = 227 - SYS_SETFSUID = 228 - SYS_SETFSGID = 229 - SYS__NEWSELECT = 230 - SYS_SPLICE = 232 - SYS_STIME = 233 - SYS_STATFS64 = 234 - SYS_FSTATFS64 = 235 - SYS__LLSEEK = 236 - SYS_MLOCK = 237 - SYS_MUNLOCK = 238 - SYS_MLOCKALL = 239 - SYS_MUNLOCKALL = 240 - SYS_SCHED_SETPARAM = 241 - SYS_SCHED_GETPARAM = 242 - SYS_SCHED_SETSCHEDULER = 243 - SYS_SCHED_GETSCHEDULER = 244 - SYS_SCHED_YIELD = 245 - SYS_SCHED_GET_PRIORITY_MAX = 246 - SYS_SCHED_GET_PRIORITY_MIN = 247 - SYS_SCHED_RR_GET_INTERVAL = 248 - SYS_NANOSLEEP = 249 - SYS_MREMAP = 250 - SYS__SYSCTL = 251 - SYS_GETSID = 252 - SYS_FDATASYNC = 253 - SYS_NFSSERVCTL = 254 - SYS_SYNC_FILE_RANGE = 255 - SYS_CLOCK_SETTIME = 256 - SYS_CLOCK_GETTIME = 257 - SYS_CLOCK_GETRES = 258 - SYS_CLOCK_NANOSLEEP = 259 - SYS_SCHED_GETAFFINITY = 260 - SYS_SCHED_SETAFFINITY = 261 - SYS_TIMER_SETTIME = 262 - SYS_TIMER_GETTIME = 263 - SYS_TIMER_GETOVERRUN = 264 - SYS_TIMER_DELETE = 265 - SYS_TIMER_CREATE = 266 - SYS_VSERVER = 267 - SYS_IO_SETUP = 268 - SYS_IO_DESTROY = 269 - SYS_IO_SUBMIT = 270 - SYS_IO_CANCEL = 271 - SYS_IO_GETEVENTS = 272 - SYS_MQ_OPEN = 273 - SYS_MQ_UNLINK = 274 - SYS_MQ_TIMEDSEND = 275 - SYS_MQ_TIMEDRECEIVE = 276 - SYS_MQ_NOTIFY = 277 - SYS_MQ_GETSETATTR = 278 - SYS_WAITID = 279 - SYS_TEE = 280 - SYS_ADD_KEY = 281 - SYS_REQUEST_KEY = 282 - SYS_KEYCTL = 283 - SYS_OPENAT = 284 - SYS_MKDIRAT = 285 - SYS_MKNODAT = 286 - SYS_FCHOWNAT = 287 - SYS_FUTIMESAT = 288 - SYS_FSTATAT64 = 289 - SYS_UNLINKAT = 290 - SYS_RENAMEAT = 291 - SYS_LINKAT = 292 - SYS_SYMLINKAT = 293 - SYS_READLINKAT = 294 - SYS_FCHMODAT = 295 - SYS_FACCESSAT = 296 - SYS_PSELECT6 = 297 - SYS_PPOLL = 298 - SYS_UNSHARE = 299 - SYS_SET_ROBUST_LIST = 300 - SYS_GET_ROBUST_LIST = 301 - SYS_MIGRATE_PAGES = 302 - SYS_MBIND = 303 - SYS_GET_MEMPOLICY = 304 - SYS_SET_MEMPOLICY = 305 - SYS_KEXEC_LOAD = 306 - SYS_MOVE_PAGES = 307 - SYS_GETCPU = 308 - SYS_EPOLL_PWAIT = 309 - SYS_UTIMENSAT = 310 - SYS_SIGNALFD = 311 - SYS_TIMERFD_CREATE = 312 - SYS_EVENTFD = 313 - SYS_FALLOCATE = 314 - SYS_TIMERFD_SETTIME = 315 - SYS_TIMERFD_GETTIME = 316 - SYS_SIGNALFD4 = 317 - SYS_EVENTFD2 = 318 - SYS_EPOLL_CREATE1 = 319 - SYS_DUP3 = 320 - SYS_PIPE2 = 321 - SYS_INOTIFY_INIT1 = 322 - SYS_ACCEPT4 = 323 - SYS_PREADV = 324 - SYS_PWRITEV = 325 - SYS_RT_TGSIGQUEUEINFO = 326 - SYS_PERF_EVENT_OPEN = 327 - SYS_RECVMMSG = 328 - SYS_FANOTIFY_INIT = 329 - SYS_FANOTIFY_MARK = 330 - SYS_PRLIMIT64 = 331 - SYS_NAME_TO_HANDLE_AT = 332 - SYS_OPEN_BY_HANDLE_AT = 333 - SYS_CLOCK_ADJTIME = 334 - SYS_SYNCFS = 335 - SYS_SENDMMSG = 336 - SYS_SETNS = 337 - SYS_PROCESS_VM_READV = 338 - SYS_PROCESS_VM_WRITEV = 339 - SYS_KERN_FEATURES = 340 - SYS_KCMP = 341 - SYS_FINIT_MODULE = 342 - SYS_SCHED_SETATTR = 343 - SYS_SCHED_GETATTR = 344 - SYS_RENAMEAT2 = 345 - SYS_SECCOMP = 346 - SYS_GETRANDOM = 347 - SYS_MEMFD_CREATE = 348 - SYS_BPF = 349 - SYS_EXECVEAT = 350 - SYS_MEMBARRIER = 351 - SYS_USERFAULTFD = 352 - SYS_BIND = 353 - SYS_LISTEN = 354 - SYS_SETSOCKOPT = 355 - SYS_MLOCK2 = 356 - SYS_COPY_FILE_RANGE = 357 - SYS_PREADV2 = 358 - 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 - SYS_MOUNT_SETATTR = 442 - SYS_QUOTACTL_FD = 443 - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 - SYS_FUTEX_WAKE = 454 - SYS_FUTEX_WAIT = 455 - SYS_FUTEX_REQUEUE = 456 - SYS_STATMOUNT = 457 - SYS_LISTMOUNT = 458 - SYS_LSM_GET_SELF_ATTR = 459 - SYS_LSM_SET_SELF_ATTR = 460 - SYS_LSM_LIST_MODULES = 461 - SYS_MSEAL = 462 - SYS_SETXATTRAT = 463 - SYS_GETXATTRAT = 464 - SYS_LISTXATTRAT = 465 - SYS_REMOVEXATTRAT = 466 -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go deleted file mode 100644 index b2aa8cd..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ /dev/null @@ -1,274 +0,0 @@ -// 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 - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go deleted file mode 100644 index 524a1b1..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ /dev/null @@ -1,274 +0,0 @@ -// 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 - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go deleted file mode 100644 index d59b943..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ /dev/null @@ -1,274 +0,0 @@ -// 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 - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go deleted file mode 100644 index 31e771d..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +++ /dev/null @@ -1,274 +0,0 @@ -// 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 - -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_LINK = 9 // { int|sys||link(const char *path, const char *link); } - SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } - SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } - SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } - 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_BREAK = 17 // { int|sys||obreak(char *nsize); } - SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } - 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_with_euid(void); } - SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } - SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *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 flags); } - SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } - SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } - SYS_SYNC = 36 // { void|sys||sync(void); } - SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } - SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } - SYS_DUP = 41 // { int|sys||dup(int fd); } - SYS_PIPE = 42 // { int|sys||pipe(void); } - SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } - SYS_PROFIL = 44 // { int|sys||profil(char *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_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } - SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } - SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } - SYS_ACCT = 51 // { int|sys||acct(const char *path); } - SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } - 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_VFORK = 66 // { int|sys||vfork(void); } - SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } - SYS_SSTK = 70 // { int|sys||sstk(int incr); } - SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } - 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_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } - 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_DUP2 = 90 // { int|sys||dup2(int from, int to); } - SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } - SYS_FSYNC = 95 // { int|sys||fsync(int fd); } - SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } - SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } - SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } - 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_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } - 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_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_SETSID = 147 // { int|sys||setsid(void); } - 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_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } - 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_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, const 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_UNDELETE = 205 // { int|sys||undelete(const char *path); } - SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } - SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } - SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } - SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } - SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } - 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 // { ssize_t|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_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } - SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } - SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } - SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } - SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } - SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } - SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } - SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } - SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } - SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } - SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } - SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } - SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } - SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } - SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } - SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } - SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } - SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } - SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } - SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } - SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } - SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } - SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } - SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } - SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } - SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } - SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } - SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } - SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } - SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } - SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } - SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } - SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } - SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } - SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } - SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } - SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } - SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } - SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } - SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } - SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } - SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } - SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } - SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } - SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } - SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } - SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } - SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } - SYS_KQUEUE = 344 // { int|sys||kqueue(void); } - SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } - SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } - SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } - SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } - SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } - SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } - SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } - SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } - SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } - SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } - SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } - SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } - SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } - SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } - SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } - SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } - SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } - SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } - SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } - SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } - SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } - SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } - SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } - SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } - SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } - SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } - SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } - SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } - SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } - SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } - SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } - SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } - SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } - SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } - SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } - SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } - SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } - SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } - SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } - SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } - SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } - SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } - SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } - SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } - SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } - SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } - SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } - SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } - SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } - SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } - SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } - SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } - SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } - SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } - SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } - SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } - SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } - SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } - SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } - SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } - SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } - SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } - SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } - SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } - SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } - SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } - SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } - SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } - SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } - SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } - SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } - SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } - SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } - SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } - SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } - SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } - SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } - SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } - SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } - SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } - SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } - SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } - SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } - SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } - SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } - SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } - SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } - SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } - SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } - SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } - SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } -) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go deleted file mode 100644 index 9fd77c6..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ /dev/null @@ -1,219 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go deleted file mode 100644 index af10af2..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ /dev/null @@ -1,219 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go deleted file mode 100644 index cc2028a..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ /dev/null @@ -1,219 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } - 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_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go deleted file mode 100644 index c06dd44..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ /dev/null @@ -1,218 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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 deleted file mode 100644 index 9ddbf3e..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ /dev/null @@ -1,221 +0,0 @@ -// 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 - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go deleted file mode 100644 index 19a6ee4..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +++ /dev/null @@ -1,217 +0,0 @@ -// 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 ppc64 && 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_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go deleted file mode 100644 index 05192a7..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +++ /dev/null @@ -1,218 +0,0 @@ -// 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 riscv64 && openbsd - -package unix - -// Deprecated: Use libc wrappers instead of direct syscalls. -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_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go deleted file mode 100644 index 5e8c263..0000000 --- a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +++ /dev/null @@ -1,2852 +0,0 @@ -// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build zos && s390x - -package unix - -const ( - SYS_LOG = 0x17 // 23 - SYS_COSH = 0x18 // 24 - SYS_TANH = 0x19 // 25 - SYS_EXP = 0x1A // 26 - SYS_MODF = 0x1B // 27 - SYS_LOG10 = 0x1C // 28 - SYS_FREXP = 0x1D // 29 - SYS_LDEXP = 0x1E // 30 - SYS_CEIL = 0x1F // 31 - SYS_POW = 0x20 // 32 - SYS_SQRT = 0x21 // 33 - SYS_FLOOR = 0x22 // 34 - SYS_J1 = 0x23 // 35 - SYS_FABS = 0x24 // 36 - SYS_FMOD = 0x25 // 37 - SYS_J0 = 0x26 // 38 - SYS_YN = 0x27 // 39 - SYS_JN = 0x28 // 40 - SYS_Y0 = 0x29 // 41 - SYS_Y1 = 0x2A // 42 - SYS_HYPOT = 0x2B // 43 - SYS_ERF = 0x2C // 44 - SYS_ERFC = 0x2D // 45 - SYS_GAMMA = 0x2E // 46 - SYS_ISALPHA = 0x30 // 48 - SYS_ISALNUM = 0x31 // 49 - SYS_ISLOWER = 0x32 // 50 - SYS_ISCNTRL = 0x33 // 51 - SYS_ISDIGIT = 0x34 // 52 - SYS_ISGRAPH = 0x35 // 53 - SYS_ISUPPER = 0x36 // 54 - SYS_ISPRINT = 0x37 // 55 - SYS_ISPUNCT = 0x38 // 56 - SYS_ISSPACE = 0x39 // 57 - SYS_SETLOCAL = 0x3A // 58 - SYS_SETLOCALE = 0x3A // 58 - SYS_ISXDIGIT = 0x3B // 59 - SYS_TOLOWER = 0x3C // 60 - SYS_TOUPPER = 0x3D // 61 - SYS_ASIN = 0x3E // 62 - SYS_SIN = 0x3F // 63 - SYS_COS = 0x40 // 64 - SYS_TAN = 0x41 // 65 - SYS_SINH = 0x42 // 66 - SYS_ACOS = 0x43 // 67 - SYS_ATAN = 0x44 // 68 - SYS_ATAN2 = 0x45 // 69 - SYS_FTELL = 0x46 // 70 - SYS_FGETPOS = 0x47 // 71 - SYS_FSEEK = 0x48 // 72 - SYS_FSETPOS = 0x49 // 73 - SYS_FERROR = 0x4A // 74 - SYS_REWIND = 0x4B // 75 - SYS_CLEARERR = 0x4C // 76 - SYS_FEOF = 0x4D // 77 - SYS_ATOL = 0x4E // 78 - SYS_PERROR = 0x4F // 79 - SYS_ATOF = 0x50 // 80 - SYS_ATOI = 0x51 // 81 - SYS_RAND = 0x52 // 82 - SYS_STRTOD = 0x53 // 83 - SYS_STRTOL = 0x54 // 84 - SYS_STRTOUL = 0x55 // 85 - SYS_MALLOC = 0x56 // 86 - SYS_SRAND = 0x57 // 87 - SYS_CALLOC = 0x58 // 88 - SYS_FREE = 0x59 // 89 - SYS_EXIT = 0x5A // 90 - SYS_REALLOC = 0x5B // 91 - SYS_ABORT = 0x5C // 92 - SYS___ABORT = 0x5C // 92 - SYS_ATEXIT = 0x5D // 93 - SYS_RAISE = 0x5E // 94 - SYS_SETJMP = 0x5F // 95 - SYS_LONGJMP = 0x60 // 96 - SYS_SIGNAL = 0x61 // 97 - SYS_TMPNAM = 0x62 // 98 - SYS_REMOVE = 0x63 // 99 - SYS_RENAME = 0x64 // 100 - SYS_TMPFILE = 0x65 // 101 - SYS_FREOPEN = 0x66 // 102 - SYS_FCLOSE = 0x67 // 103 - SYS_FFLUSH = 0x68 // 104 - SYS_FOPEN = 0x69 // 105 - SYS_FSCANF = 0x6A // 106 - SYS_SETBUF = 0x6B // 107 - SYS_SETVBUF = 0x6C // 108 - SYS_FPRINTF = 0x6D // 109 - SYS_SSCANF = 0x6E // 110 - SYS_PRINTF = 0x6F // 111 - SYS_SCANF = 0x70 // 112 - SYS_SPRINTF = 0x71 // 113 - SYS_FGETC = 0x72 // 114 - SYS_VFPRINTF = 0x73 // 115 - SYS_VPRINTF = 0x74 // 116 - SYS_VSPRINTF = 0x75 // 117 - SYS_GETC = 0x76 // 118 - SYS_FGETS = 0x77 // 119 - SYS_FPUTC = 0x78 // 120 - SYS_FPUTS = 0x79 // 121 - SYS_PUTCHAR = 0x7A // 122 - SYS_GETCHAR = 0x7B // 123 - SYS_GETS = 0x7C // 124 - SYS_PUTC = 0x7D // 125 - SYS_FWRITE = 0x7E // 126 - SYS_PUTS = 0x7F // 127 - SYS_UNGETC = 0x80 // 128 - SYS_FREAD = 0x81 // 129 - SYS_WCSTOMBS = 0x82 // 130 - SYS_MBTOWC = 0x83 // 131 - SYS_WCTOMB = 0x84 // 132 - SYS_MBSTOWCS = 0x85 // 133 - SYS_WCSCPY = 0x86 // 134 - SYS_WCSCAT = 0x87 // 135 - SYS_WCSCHR = 0x88 // 136 - SYS_WCSCMP = 0x89 // 137 - SYS_WCSNCMP = 0x8A // 138 - SYS_WCSCSPN = 0x8B // 139 - SYS_WCSLEN = 0x8C // 140 - SYS_WCSNCAT = 0x8D // 141 - SYS_WCSSPN = 0x8E // 142 - SYS_WCSNCPY = 0x8F // 143 - SYS_ABS = 0x90 // 144 - SYS_DIV = 0x91 // 145 - SYS_LABS = 0x92 // 146 - SYS_STRNCPY = 0x93 // 147 - SYS_MEMCPY = 0x94 // 148 - SYS_MEMMOVE = 0x95 // 149 - SYS_STRCPY = 0x96 // 150 - SYS_STRCMP = 0x97 // 151 - SYS_STRCAT = 0x98 // 152 - SYS_STRNCAT = 0x99 // 153 - SYS_MEMCMP = 0x9A // 154 - SYS_MEMCHR = 0x9B // 155 - SYS_STRCOLL = 0x9C // 156 - SYS_STRNCMP = 0x9D // 157 - SYS_STRXFRM = 0x9E // 158 - SYS_STRRCHR = 0x9F // 159 - SYS_STRCHR = 0xA0 // 160 - SYS_STRCSPN = 0xA1 // 161 - SYS_STRPBRK = 0xA2 // 162 - SYS_MEMSET = 0xA3 // 163 - SYS_STRSPN = 0xA4 // 164 - SYS_STRSTR = 0xA5 // 165 - SYS_STRTOK = 0xA6 // 166 - SYS_DIFFTIME = 0xA7 // 167 - SYS_STRERROR = 0xA8 // 168 - SYS_STRLEN = 0xA9 // 169 - SYS_CLOCK = 0xAA // 170 - SYS_CTIME = 0xAB // 171 - SYS_MKTIME = 0xAC // 172 - SYS_TIME = 0xAD // 173 - SYS_ASCTIME = 0xAE // 174 - SYS_MBLEN = 0xAF // 175 - SYS_GMTIME = 0xB0 // 176 - SYS_LOCALTIM = 0xB1 // 177 - SYS_LOCALTIME = 0xB1 // 177 - SYS_STRFTIME = 0xB2 // 178 - SYS___GETCB = 0xB4 // 180 - SYS_FUPDATE = 0xB5 // 181 - SYS___FUPDT = 0xB5 // 181 - SYS_CLRMEMF = 0xBD // 189 - SYS___CLRMF = 0xBD // 189 - SYS_FETCHEP = 0xBF // 191 - SYS___FTCHEP = 0xBF // 191 - SYS_FLDATA = 0xC1 // 193 - SYS___FLDATA = 0xC1 // 193 - SYS_DYNFREE = 0xC2 // 194 - SYS___DYNFRE = 0xC2 // 194 - SYS_DYNALLOC = 0xC3 // 195 - SYS___DYNALL = 0xC3 // 195 - SYS___CDUMP = 0xC4 // 196 - SYS_CSNAP = 0xC5 // 197 - SYS___CSNAP = 0xC5 // 197 - SYS_CTRACE = 0xC6 // 198 - SYS___CTRACE = 0xC6 // 198 - SYS___CTEST = 0xC7 // 199 - SYS_SETENV = 0xC8 // 200 - SYS___SETENV = 0xC8 // 200 - SYS_CLEARENV = 0xC9 // 201 - SYS___CLRENV = 0xC9 // 201 - SYS___REGCOMP_STD = 0xEA // 234 - SYS_NL_LANGINFO = 0xFC // 252 - SYS_GETSYNTX = 0xFD // 253 - SYS_ISBLANK = 0xFE // 254 - SYS___ISBLNK = 0xFE // 254 - SYS_ISWALNUM = 0xFF // 255 - SYS_ISWALPHA = 0x100 // 256 - SYS_ISWBLANK = 0x101 // 257 - SYS___ISWBLK = 0x101 // 257 - SYS_ISWCNTRL = 0x102 // 258 - SYS_ISWDIGIT = 0x103 // 259 - SYS_ISWGRAPH = 0x104 // 260 - SYS_ISWLOWER = 0x105 // 261 - SYS_ISWPRINT = 0x106 // 262 - SYS_ISWPUNCT = 0x107 // 263 - SYS_ISWSPACE = 0x108 // 264 - SYS_ISWUPPER = 0x109 // 265 - SYS_ISWXDIGI = 0x10A // 266 - SYS_ISWXDIGIT = 0x10A // 266 - SYS_WCTYPE = 0x10B // 267 - SYS_ISWCTYPE = 0x10C // 268 - SYS_TOWLOWER = 0x10D // 269 - SYS_TOWUPPER = 0x10E // 270 - SYS_MBSINIT = 0x10F // 271 - SYS_WCTOB = 0x110 // 272 - SYS_MBRLEN = 0x111 // 273 - SYS_MBRTOWC = 0x112 // 274 - SYS_MBSRTOWC = 0x113 // 275 - SYS_MBSRTOWCS = 0x113 // 275 - SYS_WCRTOMB = 0x114 // 276 - SYS_WCSRTOMB = 0x115 // 277 - SYS_WCSRTOMBS = 0x115 // 277 - SYS___CSID = 0x116 // 278 - SYS___WCSID = 0x117 // 279 - SYS_STRPTIME = 0x118 // 280 - SYS___STRPTM = 0x118 // 280 - SYS_STRFMON = 0x119 // 281 - SYS___RPMTCH = 0x11A // 282 - SYS_WCSSTR = 0x11B // 283 - SYS_WCSTOK = 0x12C // 300 - SYS_WCSTOL = 0x12D // 301 - SYS_WCSTOD = 0x12E // 302 - SYS_WCSTOUL = 0x12F // 303 - SYS_WCSCOLL = 0x130 // 304 - SYS_WCSXFRM = 0x131 // 305 - SYS_WCSWIDTH = 0x132 // 306 - SYS_WCWIDTH = 0x133 // 307 - SYS_WCSFTIME = 0x134 // 308 - SYS_SWPRINTF = 0x135 // 309 - SYS_VSWPRINT = 0x136 // 310 - SYS_VSWPRINTF = 0x136 // 310 - SYS_SWSCANF = 0x137 // 311 - SYS_REGCOMP = 0x138 // 312 - SYS_REGEXEC = 0x139 // 313 - SYS_REGFREE = 0x13A // 314 - SYS_REGERROR = 0x13B // 315 - SYS_FGETWC = 0x13C // 316 - SYS_FGETWS = 0x13D // 317 - SYS_FPUTWC = 0x13E // 318 - SYS_FPUTWS = 0x13F // 319 - SYS_GETWC = 0x140 // 320 - SYS_GETWCHAR = 0x141 // 321 - SYS_PUTWC = 0x142 // 322 - SYS_PUTWCHAR = 0x143 // 323 - SYS_UNGETWC = 0x144 // 324 - SYS_ICONV_OPEN = 0x145 // 325 - SYS_ICONV = 0x146 // 326 - SYS_ICONV_CLOSE = 0x147 // 327 - SYS_ISMCCOLLEL = 0x14C // 332 - SYS_STRTOCOLL = 0x14D // 333 - SYS_COLLTOSTR = 0x14E // 334 - SYS_COLLEQUIV = 0x14F // 335 - SYS_COLLRANGE = 0x150 // 336 - SYS_CCLASS = 0x151 // 337 - SYS_COLLORDER = 0x152 // 338 - SYS___DEMANGLE = 0x154 // 340 - SYS_FDOPEN = 0x155 // 341 - SYS___ERRNO = 0x156 // 342 - SYS___ERRNO2 = 0x157 // 343 - SYS___TERROR = 0x158 // 344 - SYS_MAXCOLL = 0x169 // 361 - SYS_GETMCCOLL = 0x16A // 362 - SYS_GETWMCCOLL = 0x16B // 363 - SYS___ERR2AD = 0x16C // 364 - SYS_DLLQUERYFN = 0x16D // 365 - SYS_DLLQUERYVAR = 0x16E // 366 - SYS_DLLFREE = 0x16F // 367 - SYS_DLLLOAD = 0x170 // 368 - SYS__EXIT = 0x174 // 372 - SYS_ACCESS = 0x175 // 373 - SYS_ALARM = 0x176 // 374 - SYS_CFGETISPEED = 0x177 // 375 - SYS_CFGETOSPEED = 0x178 // 376 - SYS_CFSETISPEED = 0x179 // 377 - SYS_CFSETOSPEED = 0x17A // 378 - SYS_CHDIR = 0x17B // 379 - SYS_CHMOD = 0x17C // 380 - SYS_CHOWN = 0x17D // 381 - SYS_CLOSE = 0x17E // 382 - SYS_CLOSEDIR = 0x17F // 383 - SYS_CREAT = 0x180 // 384 - SYS_CTERMID = 0x181 // 385 - SYS_DUP = 0x182 // 386 - SYS_DUP2 = 0x183 // 387 - SYS_EXECL = 0x184 // 388 - SYS_EXECLE = 0x185 // 389 - SYS_EXECLP = 0x186 // 390 - SYS_EXECV = 0x187 // 391 - SYS_EXECVE = 0x188 // 392 - SYS_EXECVP = 0x189 // 393 - SYS_FCHMOD = 0x18A // 394 - SYS_FCHOWN = 0x18B // 395 - SYS_FCNTL = 0x18C // 396 - SYS_FILENO = 0x18D // 397 - SYS_FORK = 0x18E // 398 - SYS_FPATHCONF = 0x18F // 399 - SYS_FSTAT = 0x190 // 400 - SYS_FSYNC = 0x191 // 401 - SYS_FTRUNCATE = 0x192 // 402 - SYS_GETCWD = 0x193 // 403 - SYS_GETEGID = 0x194 // 404 - SYS_GETEUID = 0x195 // 405 - SYS_GETGID = 0x196 // 406 - SYS_GETGRGID = 0x197 // 407 - SYS_GETGRNAM = 0x198 // 408 - SYS_GETGROUPS = 0x199 // 409 - SYS_GETLOGIN = 0x19A // 410 - SYS_W_GETMNTENT = 0x19B // 411 - SYS_GETPGRP = 0x19C // 412 - SYS_GETPID = 0x19D // 413 - SYS_GETPPID = 0x19E // 414 - SYS_GETPWNAM = 0x19F // 415 - SYS_GETPWUID = 0x1A0 // 416 - SYS_GETUID = 0x1A1 // 417 - SYS_W_IOCTL = 0x1A2 // 418 - SYS_ISATTY = 0x1A3 // 419 - SYS_KILL = 0x1A4 // 420 - SYS_LINK = 0x1A5 // 421 - SYS_LSEEK = 0x1A6 // 422 - SYS_LSTAT = 0x1A7 // 423 - SYS_MKDIR = 0x1A8 // 424 - SYS_MKFIFO = 0x1A9 // 425 - SYS_MKNOD = 0x1AA // 426 - SYS_MOUNT = 0x1AB // 427 - SYS_OPEN = 0x1AC // 428 - SYS_OPENDIR = 0x1AD // 429 - SYS_PATHCONF = 0x1AE // 430 - SYS_PAUSE = 0x1AF // 431 - SYS_PIPE = 0x1B0 // 432 - SYS_W_GETPSENT = 0x1B1 // 433 - SYS_READ = 0x1B2 // 434 - SYS_READDIR = 0x1B3 // 435 - SYS_READLINK = 0x1B4 // 436 - SYS_REWINDDIR = 0x1B5 // 437 - SYS_RMDIR = 0x1B6 // 438 - SYS_SETEGID = 0x1B7 // 439 - SYS_SETEUID = 0x1B8 // 440 - SYS_SETGID = 0x1B9 // 441 - SYS_SETPGID = 0x1BA // 442 - SYS_SETSID = 0x1BB // 443 - SYS_SETUID = 0x1BC // 444 - SYS_SIGACTION = 0x1BD // 445 - SYS_SIGADDSET = 0x1BE // 446 - SYS_SIGDELSET = 0x1BF // 447 - SYS_SIGEMPTYSET = 0x1C0 // 448 - SYS_SIGFILLSET = 0x1C1 // 449 - SYS_SIGISMEMBER = 0x1C2 // 450 - SYS_SIGLONGJMP = 0x1C3 // 451 - SYS_SIGPENDING = 0x1C4 // 452 - SYS_SIGPROCMASK = 0x1C5 // 453 - SYS_SIGSETJMP = 0x1C6 // 454 - SYS_SIGSUSPEND = 0x1C7 // 455 - SYS_SLEEP = 0x1C8 // 456 - SYS_STAT = 0x1C9 // 457 - SYS_W_STATFS = 0x1CA // 458 - SYS_SYMLINK = 0x1CB // 459 - SYS_SYSCONF = 0x1CC // 460 - SYS_TCDRAIN = 0x1CD // 461 - SYS_TCFLOW = 0x1CE // 462 - SYS_TCFLUSH = 0x1CF // 463 - SYS_TCGETATTR = 0x1D0 // 464 - SYS_TCGETPGRP = 0x1D1 // 465 - SYS_TCSENDBREAK = 0x1D2 // 466 - SYS_TCSETATTR = 0x1D3 // 467 - SYS_TCSETPGRP = 0x1D4 // 468 - SYS_TIMES = 0x1D5 // 469 - SYS_TTYNAME = 0x1D6 // 470 - SYS_TZSET = 0x1D7 // 471 - SYS_UMASK = 0x1D8 // 472 - SYS_UMOUNT = 0x1D9 // 473 - SYS_UNAME = 0x1DA // 474 - SYS_UNLINK = 0x1DB // 475 - SYS_UTIME = 0x1DC // 476 - SYS_WAIT = 0x1DD // 477 - SYS_WAITPID = 0x1DE // 478 - SYS_WRITE = 0x1DF // 479 - SYS_CHAUDIT = 0x1E0 // 480 - SYS_FCHAUDIT = 0x1E1 // 481 - SYS_GETGROUPSBYNAME = 0x1E2 // 482 - SYS_SIGWAIT = 0x1E3 // 483 - SYS_PTHREAD_EXIT = 0x1E4 // 484 - SYS_PTHREAD_KILL = 0x1E5 // 485 - SYS_PTHREAD_ATTR_INIT = 0x1E6 // 486 - SYS_PTHREAD_ATTR_DESTROY = 0x1E7 // 487 - SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 // 488 - SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 // 489 - SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA // 490 - SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB // 491 - SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC // 492 - SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED // 493 - SYS_PTHREAD_CANCEL = 0x1EE // 494 - SYS_PTHREAD_CLEANUP_PUSH = 0x1EF // 495 - SYS_PTHREAD_CLEANUP_POP = 0x1F0 // 496 - SYS_PTHREAD_CONDATTR_INIT = 0x1F1 // 497 - SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 // 498 - SYS_PTHREAD_COND_INIT = 0x1F3 // 499 - SYS_PTHREAD_COND_DESTROY = 0x1F4 // 500 - SYS_PTHREAD_COND_SIGNAL = 0x1F5 // 501 - SYS_PTHREAD_COND_BROADCAST = 0x1F6 // 502 - SYS_PTHREAD_COND_WAIT = 0x1F7 // 503 - SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 // 504 - SYS_PTHREAD_CREATE = 0x1F9 // 505 - SYS_PTHREAD_DETACH = 0x1FA // 506 - SYS_PTHREAD_EQUAL = 0x1FB // 507 - SYS_PTHREAD_GETSPECIFIC = 0x1FC // 508 - SYS_PTHREAD_JOIN = 0x1FD // 509 - SYS_PTHREAD_KEY_CREATE = 0x1FE // 510 - SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF // 511 - SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 // 512 - SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 // 513 - SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 // 514 - SYS_PTHREAD_MUTEX_INIT = 0x203 // 515 - SYS_PTHREAD_MUTEX_DESTROY = 0x204 // 516 - SYS_PTHREAD_MUTEX_LOCK = 0x205 // 517 - SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 // 518 - SYS_PTHREAD_MUTEX_UNLOCK = 0x207 // 519 - SYS_PTHREAD_ONCE = 0x209 // 521 - SYS_PTHREAD_SELF = 0x20A // 522 - SYS_PTHREAD_SETINTR = 0x20B // 523 - SYS_PTHREAD_SETINTRTYPE = 0x20C // 524 - SYS_PTHREAD_SETSPECIFIC = 0x20D // 525 - SYS_PTHREAD_TESTINTR = 0x20E // 526 - SYS_PTHREAD_YIELD = 0x20F // 527 - SYS_TW_OPEN = 0x210 // 528 - SYS_TW_FCNTL = 0x211 // 529 - SYS_PTHREAD_JOIN_D4_NP = 0x212 // 530 - SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 // 531 - SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 // 532 - SYS_EXTLINK_NP = 0x215 // 533 - SYS___PASSWD = 0x216 // 534 - SYS_SETGROUPS = 0x217 // 535 - SYS_INITGROUPS = 0x218 // 536 - SYS_WCSPBRK = 0x23F // 575 - SYS_WCSRCHR = 0x240 // 576 - SYS_SVC99 = 0x241 // 577 - SYS___SVC99 = 0x241 // 577 - SYS_WCSWCS = 0x242 // 578 - SYS_LOCALECO = 0x243 // 579 - SYS_LOCALECONV = 0x243 // 579 - SYS___LIBREL = 0x244 // 580 - SYS_RELEASE = 0x245 // 581 - SYS___RLSE = 0x245 // 581 - SYS_FLOCATE = 0x246 // 582 - SYS___FLOCT = 0x246 // 582 - SYS_FDELREC = 0x247 // 583 - SYS___FDLREC = 0x247 // 583 - SYS_FETCH = 0x248 // 584 - SYS___FETCH = 0x248 // 584 - SYS_QSORT = 0x249 // 585 - SYS_GETENV = 0x24A // 586 - SYS_SYSTEM = 0x24B // 587 - SYS_BSEARCH = 0x24C // 588 - SYS_LDIV = 0x24D // 589 - SYS___THROW = 0x25E // 606 - SYS___RETHROW = 0x25F // 607 - SYS___CLEANUPCATCH = 0x260 // 608 - SYS___CATCHMATCH = 0x261 // 609 - SYS___CLEAN2UPCATCH = 0x262 // 610 - SYS_PUTENV = 0x26A // 618 - SYS___GETENV = 0x26F // 623 - SYS_GETPRIORITY = 0x270 // 624 - SYS_NICE = 0x271 // 625 - SYS_SETPRIORITY = 0x272 // 626 - SYS_GETITIMER = 0x273 // 627 - SYS_SETITIMER = 0x274 // 628 - SYS_MSGCTL = 0x275 // 629 - SYS_MSGGET = 0x276 // 630 - SYS_MSGRCV = 0x277 // 631 - SYS_MSGSND = 0x278 // 632 - SYS_MSGXRCV = 0x279 // 633 - SYS___MSGXR = 0x279 // 633 - SYS_SEMCTL = 0x27A // 634 - SYS_SEMGET = 0x27B // 635 - SYS_SEMOP = 0x27C // 636 - SYS_SHMAT = 0x27D // 637 - SYS_SHMCTL = 0x27E // 638 - SYS_SHMDT = 0x27F // 639 - SYS_SHMGET = 0x280 // 640 - SYS___GETIPC = 0x281 // 641 - SYS_SETGRENT = 0x282 // 642 - SYS_GETGRENT = 0x283 // 643 - SYS_ENDGRENT = 0x284 // 644 - SYS_SETPWENT = 0x285 // 645 - SYS_GETPWENT = 0x286 // 646 - SYS_ENDPWENT = 0x287 // 647 - SYS_BSD_SIGNAL = 0x288 // 648 - SYS_KILLPG = 0x289 // 649 - SYS_SIGALTSTACK = 0x28A // 650 - SYS_SIGHOLD = 0x28B // 651 - SYS_SIGIGNORE = 0x28C // 652 - SYS_SIGINTERRUPT = 0x28D // 653 - SYS_SIGPAUSE = 0x28E // 654 - SYS_SIGRELSE = 0x28F // 655 - SYS_SIGSET = 0x290 // 656 - SYS_SIGSTACK = 0x291 // 657 - SYS_GETRLIMIT = 0x292 // 658 - SYS_SETRLIMIT = 0x293 // 659 - SYS_GETRUSAGE = 0x294 // 660 - SYS_MMAP = 0x295 // 661 - SYS_MPROTECT = 0x296 // 662 - SYS_MSYNC = 0x297 // 663 - SYS_MUNMAP = 0x298 // 664 - SYS_CONFSTR = 0x299 // 665 - SYS_GETOPT = 0x29A // 666 - SYS_LCHOWN = 0x29B // 667 - SYS_TRUNCATE = 0x29C // 668 - SYS_GETSUBOPT = 0x29D // 669 - SYS_SETPGRP = 0x29E // 670 - SYS___GDERR = 0x29F // 671 - SYS___TZONE = 0x2A0 // 672 - SYS___DLGHT = 0x2A1 // 673 - SYS___OPARGF = 0x2A2 // 674 - SYS___OPOPTF = 0x2A3 // 675 - SYS___OPINDF = 0x2A4 // 676 - SYS___OPERRF = 0x2A5 // 677 - SYS_GETDATE = 0x2A6 // 678 - SYS_WAIT3 = 0x2A7 // 679 - SYS_WAITID = 0x2A8 // 680 - SYS___CATTRM = 0x2A9 // 681 - SYS___GDTRM = 0x2AA // 682 - SYS___RNDTRM = 0x2AB // 683 - SYS_CRYPT = 0x2AC // 684 - SYS_ENCRYPT = 0x2AD // 685 - SYS_SETKEY = 0x2AE // 686 - SYS___CNVBLK = 0x2AF // 687 - SYS___CRYTRM = 0x2B0 // 688 - SYS___ECRTRM = 0x2B1 // 689 - SYS_DRAND48 = 0x2B2 // 690 - SYS_ERAND48 = 0x2B3 // 691 - SYS_FSTATVFS = 0x2B4 // 692 - SYS_STATVFS = 0x2B5 // 693 - SYS_CATCLOSE = 0x2B6 // 694 - SYS_CATGETS = 0x2B7 // 695 - SYS_CATOPEN = 0x2B8 // 696 - SYS_BCMP = 0x2B9 // 697 - SYS_BCOPY = 0x2BA // 698 - SYS_BZERO = 0x2BB // 699 - SYS_FFS = 0x2BC // 700 - SYS_INDEX = 0x2BD // 701 - SYS_RINDEX = 0x2BE // 702 - SYS_STRCASECMP = 0x2BF // 703 - SYS_STRDUP = 0x2C0 // 704 - SYS_STRNCASECMP = 0x2C1 // 705 - SYS_INITSTATE = 0x2C2 // 706 - SYS_SETSTATE = 0x2C3 // 707 - SYS_RANDOM = 0x2C4 // 708 - SYS_SRANDOM = 0x2C5 // 709 - SYS_HCREATE = 0x2C6 // 710 - SYS_HDESTROY = 0x2C7 // 711 - SYS_HSEARCH = 0x2C8 // 712 - SYS_LFIND = 0x2C9 // 713 - SYS_LSEARCH = 0x2CA // 714 - SYS_TDELETE = 0x2CB // 715 - SYS_TFIND = 0x2CC // 716 - SYS_TSEARCH = 0x2CD // 717 - SYS_TWALK = 0x2CE // 718 - SYS_INSQUE = 0x2CF // 719 - SYS_REMQUE = 0x2D0 // 720 - SYS_POPEN = 0x2D1 // 721 - SYS_PCLOSE = 0x2D2 // 722 - SYS_SWAB = 0x2D3 // 723 - SYS_MEMCCPY = 0x2D4 // 724 - SYS_GETPAGESIZE = 0x2D8 // 728 - SYS_FCHDIR = 0x2D9 // 729 - SYS___OCLCK = 0x2DA // 730 - SYS___ATOE = 0x2DB // 731 - SYS___ATOE_L = 0x2DC // 732 - SYS___ETOA = 0x2DD // 733 - SYS___ETOA_L = 0x2DE // 734 - SYS_SETUTXENT = 0x2DF // 735 - SYS_GETUTXENT = 0x2E0 // 736 - SYS_ENDUTXENT = 0x2E1 // 737 - SYS_GETUTXID = 0x2E2 // 738 - SYS_GETUTXLINE = 0x2E3 // 739 - SYS_PUTUTXLINE = 0x2E4 // 740 - SYS_FMTMSG = 0x2E5 // 741 - SYS_JRAND48 = 0x2E6 // 742 - SYS_LRAND48 = 0x2E7 // 743 - SYS_MRAND48 = 0x2E8 // 744 - SYS_NRAND48 = 0x2E9 // 745 - SYS_LCONG48 = 0x2EA // 746 - SYS_SRAND48 = 0x2EB // 747 - SYS_SEED48 = 0x2EC // 748 - SYS_ISASCII = 0x2ED // 749 - SYS_TOASCII = 0x2EE // 750 - SYS_A64L = 0x2EF // 751 - SYS_L64A = 0x2F0 // 752 - SYS_UALARM = 0x2F1 // 753 - SYS_USLEEP = 0x2F2 // 754 - SYS___UTXTRM = 0x2F3 // 755 - SYS___SRCTRM = 0x2F4 // 756 - SYS_FTIME = 0x2F5 // 757 - SYS_GETTIMEOFDAY = 0x2F6 // 758 - SYS_DBM_CLEARERR = 0x2F7 // 759 - SYS_DBM_CLOSE = 0x2F8 // 760 - SYS_DBM_DELETE = 0x2F9 // 761 - SYS_DBM_ERROR = 0x2FA // 762 - SYS_DBM_FETCH = 0x2FB // 763 - SYS_DBM_FIRSTKEY = 0x2FC // 764 - SYS_DBM_NEXTKEY = 0x2FD // 765 - SYS_DBM_OPEN = 0x2FE // 766 - SYS_DBM_STORE = 0x2FF // 767 - SYS___NDMTRM = 0x300 // 768 - SYS_FTOK = 0x301 // 769 - SYS_BASENAME = 0x302 // 770 - SYS_DIRNAME = 0x303 // 771 - SYS_GETDTABLESIZE = 0x304 // 772 - SYS_MKSTEMP = 0x305 // 773 - SYS_MKTEMP = 0x306 // 774 - SYS_NFTW = 0x307 // 775 - SYS_GETWD = 0x308 // 776 - SYS_LOCKF = 0x309 // 777 - SYS__LONGJMP = 0x30D // 781 - SYS__SETJMP = 0x30E // 782 - SYS_VFORK = 0x30F // 783 - SYS_WORDEXP = 0x310 // 784 - SYS_WORDFREE = 0x311 // 785 - SYS_GETPGID = 0x312 // 786 - SYS_GETSID = 0x313 // 787 - SYS___UTMPXNAME = 0x314 // 788 - SYS_CUSERID = 0x315 // 789 - SYS_GETPASS = 0x316 // 790 - SYS_FNMATCH = 0x317 // 791 - SYS_FTW = 0x318 // 792 - SYS_GETW = 0x319 // 793 - SYS_GLOB = 0x31A // 794 - SYS_GLOBFREE = 0x31B // 795 - SYS_PUTW = 0x31C // 796 - SYS_SEEKDIR = 0x31D // 797 - SYS_TELLDIR = 0x31E // 798 - SYS_TEMPNAM = 0x31F // 799 - SYS_ACOSH = 0x320 // 800 - SYS_ASINH = 0x321 // 801 - SYS_ATANH = 0x322 // 802 - SYS_CBRT = 0x323 // 803 - SYS_EXPM1 = 0x324 // 804 - SYS_ILOGB = 0x325 // 805 - SYS_LOGB = 0x326 // 806 - SYS_LOG1P = 0x327 // 807 - SYS_NEXTAFTER = 0x328 // 808 - SYS_RINT = 0x329 // 809 - SYS_REMAINDER = 0x32A // 810 - SYS_SCALB = 0x32B // 811 - SYS_LGAMMA = 0x32C // 812 - SYS_TTYSLOT = 0x32D // 813 - SYS_GETTIMEOFDAY_R = 0x32E // 814 - SYS_SYNC = 0x32F // 815 - SYS_SPAWN = 0x330 // 816 - SYS_SPAWNP = 0x331 // 817 - SYS_GETLOGIN_UU = 0x332 // 818 - SYS_ECVT = 0x333 // 819 - SYS_FCVT = 0x334 // 820 - SYS_GCVT = 0x335 // 821 - SYS_ACCEPT = 0x336 // 822 - SYS_BIND = 0x337 // 823 - SYS_CONNECT = 0x338 // 824 - SYS_ENDHOSTENT = 0x339 // 825 - SYS_ENDPROTOENT = 0x33A // 826 - SYS_ENDSERVENT = 0x33B // 827 - SYS_GETHOSTBYADDR_R = 0x33C // 828 - SYS_GETHOSTBYADDR = 0x33D // 829 - SYS_GETHOSTBYNAME_R = 0x33E // 830 - SYS_GETHOSTBYNAME = 0x33F // 831 - SYS_GETHOSTENT = 0x340 // 832 - SYS_GETHOSTID = 0x341 // 833 - SYS_GETHOSTNAME = 0x342 // 834 - SYS_GETNETBYADDR = 0x343 // 835 - SYS_GETNETBYNAME = 0x344 // 836 - SYS_GETNETENT = 0x345 // 837 - SYS_GETPEERNAME = 0x346 // 838 - SYS_GETPROTOBYNAME = 0x347 // 839 - SYS_GETPROTOBYNUMBER = 0x348 // 840 - SYS_GETPROTOENT = 0x349 // 841 - SYS_GETSERVBYNAME = 0x34A // 842 - SYS_GETSERVBYPORT = 0x34B // 843 - SYS_GETSERVENT = 0x34C // 844 - SYS_GETSOCKNAME = 0x34D // 845 - SYS_GETSOCKOPT = 0x34E // 846 - SYS_INET_ADDR = 0x34F // 847 - SYS_INET_LNAOF = 0x350 // 848 - SYS_INET_MAKEADDR = 0x351 // 849 - SYS_INET_NETOF = 0x352 // 850 - SYS_INET_NETWORK = 0x353 // 851 - SYS_INET_NTOA = 0x354 // 852 - SYS_IOCTL = 0x355 // 853 - SYS_LISTEN = 0x356 // 854 - SYS_READV = 0x357 // 855 - SYS_RECV = 0x358 // 856 - SYS_RECVFROM = 0x359 // 857 - SYS_SELECT = 0x35B // 859 - SYS_SELECTEX = 0x35C // 860 - SYS_SEND = 0x35D // 861 - SYS_SENDTO = 0x35F // 863 - SYS_SETHOSTENT = 0x360 // 864 - SYS_SETNETENT = 0x361 // 865 - SYS_SETPEER = 0x362 // 866 - SYS_SETPROTOENT = 0x363 // 867 - SYS_SETSERVENT = 0x364 // 868 - SYS_SETSOCKOPT = 0x365 // 869 - SYS_SHUTDOWN = 0x366 // 870 - SYS_SOCKET = 0x367 // 871 - SYS_SOCKETPAIR = 0x368 // 872 - SYS_WRITEV = 0x369 // 873 - SYS_CHROOT = 0x36A // 874 - SYS_W_STATVFS = 0x36B // 875 - SYS_ULIMIT = 0x36C // 876 - SYS_ISNAN = 0x36D // 877 - SYS_UTIMES = 0x36E // 878 - SYS___H_ERRNO = 0x36F // 879 - SYS_ENDNETENT = 0x370 // 880 - SYS_CLOSELOG = 0x371 // 881 - SYS_OPENLOG = 0x372 // 882 - SYS_SETLOGMASK = 0x373 // 883 - SYS_SYSLOG = 0x374 // 884 - SYS_PTSNAME = 0x375 // 885 - SYS_SETREUID = 0x376 // 886 - SYS_SETREGID = 0x377 // 887 - SYS_REALPATH = 0x378 // 888 - SYS___SIGNGAM = 0x379 // 889 - SYS_GRANTPT = 0x37A // 890 - SYS_UNLOCKPT = 0x37B // 891 - SYS_TCGETSID = 0x37C // 892 - SYS___TCGETCP = 0x37D // 893 - SYS___TCSETCP = 0x37E // 894 - SYS___TCSETTABLES = 0x37F // 895 - SYS_POLL = 0x380 // 896 - SYS_REXEC = 0x381 // 897 - SYS___ISASCII2 = 0x382 // 898 - SYS___TOASCII2 = 0x383 // 899 - SYS_CHPRIORITY = 0x384 // 900 - SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 // 901 - SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 // 902 - SYS_PTHREAD_SET_LIMIT_NP = 0x387 // 903 - SYS___STNETENT = 0x388 // 904 - SYS___STPROTOENT = 0x389 // 905 - SYS___STSERVENT = 0x38A // 906 - SYS___STHOSTENT = 0x38B // 907 - SYS_NLIST = 0x38C // 908 - SYS___IPDBCS = 0x38D // 909 - SYS___IPDSPX = 0x38E // 910 - SYS___IPMSGC = 0x38F // 911 - SYS___SELECT1 = 0x390 // 912 - SYS_PTHREAD_SECURITY_NP = 0x391 // 913 - SYS___CHECK_RESOURCE_AUTH_NP = 0x392 // 914 - SYS___CONVERT_ID_NP = 0x393 // 915 - SYS___OPENVMREL = 0x394 // 916 - SYS_WMEMCHR = 0x395 // 917 - SYS_WMEMCMP = 0x396 // 918 - SYS_WMEMCPY = 0x397 // 919 - SYS_WMEMMOVE = 0x398 // 920 - SYS_WMEMSET = 0x399 // 921 - SYS___FPUTWC = 0x400 // 1024 - SYS___PUTWC = 0x401 // 1025 - SYS___PWCHAR = 0x402 // 1026 - SYS___WCSFTM = 0x403 // 1027 - SYS___WCSTOK = 0x404 // 1028 - SYS___WCWDTH = 0x405 // 1029 - SYS_T_ACCEPT = 0x409 // 1033 - SYS_T_ALLOC = 0x40A // 1034 - SYS_T_BIND = 0x40B // 1035 - SYS_T_CLOSE = 0x40C // 1036 - SYS_T_CONNECT = 0x40D // 1037 - SYS_T_ERROR = 0x40E // 1038 - SYS_T_FREE = 0x40F // 1039 - SYS_T_GETINFO = 0x410 // 1040 - SYS_T_GETPROTADDR = 0x411 // 1041 - SYS_T_GETSTATE = 0x412 // 1042 - SYS_T_LISTEN = 0x413 // 1043 - SYS_T_LOOK = 0x414 // 1044 - SYS_T_OPEN = 0x415 // 1045 - SYS_T_OPTMGMT = 0x416 // 1046 - SYS_T_RCV = 0x417 // 1047 - SYS_T_RCVCONNECT = 0x418 // 1048 - SYS_T_RCVDIS = 0x419 // 1049 - SYS_T_RCVREL = 0x41A // 1050 - SYS_T_RCVUDATA = 0x41B // 1051 - SYS_T_RCVUDERR = 0x41C // 1052 - SYS_T_SND = 0x41D // 1053 - SYS_T_SNDDIS = 0x41E // 1054 - SYS_T_SNDREL = 0x41F // 1055 - SYS_T_SNDUDATA = 0x420 // 1056 - SYS_T_STRERROR = 0x421 // 1057 - SYS_T_SYNC = 0x422 // 1058 - SYS_T_UNBIND = 0x423 // 1059 - SYS___T_ERRNO = 0x424 // 1060 - SYS___RECVMSG2 = 0x425 // 1061 - SYS___SENDMSG2 = 0x426 // 1062 - SYS_FATTACH = 0x427 // 1063 - SYS_FDETACH = 0x428 // 1064 - SYS_GETMSG = 0x429 // 1065 - SYS_GETPMSG = 0x42A // 1066 - SYS_ISASTREAM = 0x42B // 1067 - SYS_PUTMSG = 0x42C // 1068 - SYS_PUTPMSG = 0x42D // 1069 - SYS___ISPOSIXON = 0x42E // 1070 - SYS___OPENMVSREL = 0x42F // 1071 - SYS_GETCONTEXT = 0x430 // 1072 - SYS_SETCONTEXT = 0x431 // 1073 - SYS_MAKECONTEXT = 0x432 // 1074 - SYS_SWAPCONTEXT = 0x433 // 1075 - SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 // 1076 - SYS_GETCLIENTID = 0x470 // 1136 - SYS___GETCLIENTID = 0x471 // 1137 - SYS_GETSTABLESIZE = 0x472 // 1138 - SYS_GETIBMOPT = 0x473 // 1139 - SYS_GETIBMSOCKOPT = 0x474 // 1140 - SYS_GIVESOCKET = 0x475 // 1141 - SYS_IBMSFLUSH = 0x476 // 1142 - SYS_MAXDESC = 0x477 // 1143 - SYS_SETIBMOPT = 0x478 // 1144 - SYS_SETIBMSOCKOPT = 0x479 // 1145 - SYS_SOCK_DEBUG = 0x47A // 1146 - SYS_SOCK_DO_TESTSTOR = 0x47D // 1149 - SYS_TAKESOCKET = 0x47E // 1150 - SYS___SERVER_INIT = 0x47F // 1151 - SYS___SERVER_PWU = 0x480 // 1152 - SYS_PTHREAD_TAG_NP = 0x481 // 1153 - SYS___CONSOLE = 0x482 // 1154 - SYS___WSINIT = 0x483 // 1155 - SYS___IPTCPN = 0x489 // 1161 - SYS___SMF_RECORD = 0x48A // 1162 - SYS___IPHOST = 0x48B // 1163 - SYS___IPNODE = 0x48C // 1164 - SYS___SERVER_CLASSIFY_CREATE = 0x48D // 1165 - SYS___SERVER_CLASSIFY_DESTROY = 0x48E // 1166 - SYS___SERVER_CLASSIFY_RESET = 0x48F // 1167 - SYS___SERVER_CLASSIFY = 0x490 // 1168 - SYS___HEAPRPT = 0x496 // 1174 - SYS___FNWSA = 0x49B // 1179 - SYS___SPAWN2 = 0x49D // 1181 - SYS___SPAWNP2 = 0x49E // 1182 - SYS___GDRR = 0x4A1 // 1185 - SYS___HRRNO = 0x4A2 // 1186 - SYS___OPRG = 0x4A3 // 1187 - SYS___OPRR = 0x4A4 // 1188 - SYS___OPND = 0x4A5 // 1189 - SYS___OPPT = 0x4A6 // 1190 - SYS___SIGGM = 0x4A7 // 1191 - SYS___DGHT = 0x4A8 // 1192 - SYS___TZNE = 0x4A9 // 1193 - SYS___TZZN = 0x4AA // 1194 - SYS___TRRNO = 0x4AF // 1199 - SYS___ENVN = 0x4B0 // 1200 - SYS___MLOCKALL = 0x4B1 // 1201 - SYS_CREATEWO = 0x4B2 // 1202 - SYS_CREATEWORKUNIT = 0x4B2 // 1202 - SYS_CONTINUE = 0x4B3 // 1203 - SYS_CONTINUEWORKUNIT = 0x4B3 // 1203 - SYS_CONNECTW = 0x4B4 // 1204 - SYS_CONNECTWORKMGR = 0x4B4 // 1204 - SYS_CONNECTS = 0x4B5 // 1205 - SYS_CONNECTSERVER = 0x4B5 // 1205 - SYS_DISCONNE = 0x4B6 // 1206 - SYS_DISCONNECTSERVER = 0x4B6 // 1206 - SYS_JOINWORK = 0x4B7 // 1207 - SYS_JOINWORKUNIT = 0x4B7 // 1207 - SYS_LEAVEWOR = 0x4B8 // 1208 - SYS_LEAVEWORKUNIT = 0x4B8 // 1208 - SYS_DELETEWO = 0x4B9 // 1209 - SYS_DELETEWORKUNIT = 0x4B9 // 1209 - SYS_QUERYMET = 0x4BA // 1210 - SYS_QUERYMETRICS = 0x4BA // 1210 - SYS_QUERYSCH = 0x4BB // 1211 - SYS_QUERYSCHENV = 0x4BB // 1211 - SYS_CHECKSCH = 0x4BC // 1212 - SYS_CHECKSCHENV = 0x4BC // 1212 - SYS___PID_AFFINITY = 0x4BD // 1213 - SYS___ASINH_B = 0x4BE // 1214 - SYS___ATAN_B = 0x4BF // 1215 - SYS___CBRT_B = 0x4C0 // 1216 - SYS___CEIL_B = 0x4C1 // 1217 - SYS_COPYSIGN = 0x4C2 // 1218 - SYS___COS_B = 0x4C3 // 1219 - SYS___ERF_B = 0x4C4 // 1220 - SYS___ERFC_B = 0x4C5 // 1221 - SYS___EXPM1_B = 0x4C6 // 1222 - SYS___FABS_B = 0x4C7 // 1223 - SYS_FINITE = 0x4C8 // 1224 - SYS___FLOOR_B = 0x4C9 // 1225 - SYS___FREXP_B = 0x4CA // 1226 - SYS___ILOGB_B = 0x4CB // 1227 - SYS___ISNAN_B = 0x4CC // 1228 - SYS___LDEXP_B = 0x4CD // 1229 - SYS___LOG1P_B = 0x4CE // 1230 - SYS___LOGB_B = 0x4CF // 1231 - SYS_MATHERR = 0x4D0 // 1232 - SYS___MODF_B = 0x4D1 // 1233 - SYS___NEXTAFTER_B = 0x4D2 // 1234 - SYS___RINT_B = 0x4D3 // 1235 - SYS_SCALBN = 0x4D4 // 1236 - SYS_SIGNIFIC = 0x4D5 // 1237 - SYS_SIGNIFICAND = 0x4D5 // 1237 - SYS___SIN_B = 0x4D6 // 1238 - SYS___TAN_B = 0x4D7 // 1239 - SYS___TANH_B = 0x4D8 // 1240 - SYS___ACOS_B = 0x4D9 // 1241 - SYS___ACOSH_B = 0x4DA // 1242 - SYS___ASIN_B = 0x4DB // 1243 - SYS___ATAN2_B = 0x4DC // 1244 - SYS___ATANH_B = 0x4DD // 1245 - SYS___COSH_B = 0x4DE // 1246 - SYS___EXP_B = 0x4DF // 1247 - SYS___FMOD_B = 0x4E0 // 1248 - SYS___GAMMA_B = 0x4E1 // 1249 - SYS_GAMMA_R = 0x4E2 // 1250 - SYS___HYPOT_B = 0x4E3 // 1251 - SYS___J0_B = 0x4E4 // 1252 - SYS___Y0_B = 0x4E5 // 1253 - SYS___J1_B = 0x4E6 // 1254 - SYS___Y1_B = 0x4E7 // 1255 - SYS___JN_B = 0x4E8 // 1256 - SYS___YN_B = 0x4E9 // 1257 - SYS___LGAMMA_B = 0x4EA // 1258 - SYS_LGAMMA_R = 0x4EB // 1259 - SYS___LOG_B = 0x4EC // 1260 - SYS___LOG10_B = 0x4ED // 1261 - SYS___POW_B = 0x4EE // 1262 - SYS___REMAINDER_B = 0x4EF // 1263 - SYS___SCALB_B = 0x4F0 // 1264 - SYS___SINH_B = 0x4F1 // 1265 - SYS___SQRT_B = 0x4F2 // 1266 - SYS___OPENDIR2 = 0x4F3 // 1267 - SYS___READDIR2 = 0x4F4 // 1268 - SYS___LOGIN = 0x4F5 // 1269 - SYS___OPEN_STAT = 0x4F6 // 1270 - SYS_ACCEPT_AND_RECV = 0x4F7 // 1271 - SYS___FP_SETMODE = 0x4F8 // 1272 - SYS___SIGACTIONSET = 0x4FB // 1275 - SYS___UCREATE = 0x4FC // 1276 - SYS___UMALLOC = 0x4FD // 1277 - SYS___UFREE = 0x4FE // 1278 - SYS___UHEAPREPORT = 0x4FF // 1279 - SYS___ISBFP = 0x500 // 1280 - SYS___FP_CAST = 0x501 // 1281 - SYS___CERTIFICATE = 0x502 // 1282 - SYS_SEND_FILE = 0x503 // 1283 - SYS_AIO_CANCEL = 0x504 // 1284 - SYS_AIO_ERROR = 0x505 // 1285 - SYS_AIO_READ = 0x506 // 1286 - SYS_AIO_RETURN = 0x507 // 1287 - SYS_AIO_SUSPEND = 0x508 // 1288 - SYS_AIO_WRITE = 0x509 // 1289 - SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A // 1290 - SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B // 1291 - SYS_PTHREAD_RWLOCK_DESTROY = 0x50C // 1292 - SYS_PTHREAD_RWLOCK_INIT = 0x50D // 1293 - SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E // 1294 - SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F // 1295 - SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 // 1296 - SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 // 1297 - SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 // 1298 - SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 // 1299 - SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 // 1300 - SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 // 1301 - SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 // 1302 - SYS___CTTBL = 0x517 // 1303 - SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 // 1304 - SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 // 1305 - SYS___FP_CLR_FLAG = 0x51A // 1306 - SYS___FP_READ_FLAG = 0x51B // 1307 - SYS___FP_RAISE_XCP = 0x51C // 1308 - SYS___FP_CLASS = 0x51D // 1309 - SYS___FP_FINITE = 0x51E // 1310 - SYS___FP_ISNAN = 0x51F // 1311 - SYS___FP_UNORDERED = 0x520 // 1312 - SYS___FP_READ_RND = 0x521 // 1313 - SYS___FP_READ_RND_B = 0x522 // 1314 - SYS___FP_SWAP_RND = 0x523 // 1315 - SYS___FP_SWAP_RND_B = 0x524 // 1316 - SYS___FP_LEVEL = 0x525 // 1317 - SYS___FP_BTOH = 0x526 // 1318 - SYS___FP_HTOB = 0x527 // 1319 - SYS___FPC_RD = 0x528 // 1320 - SYS___FPC_WR = 0x529 // 1321 - SYS___FPC_RW = 0x52A // 1322 - SYS___FPC_SM = 0x52B // 1323 - SYS___FPC_RS = 0x52C // 1324 - SYS_SIGTIMEDWAIT = 0x52D // 1325 - SYS_SIGWAITINFO = 0x52E // 1326 - SYS___CHKBFP = 0x52F // 1327 - SYS___W_PIOCTL = 0x59E // 1438 - SYS___OSENV = 0x59F // 1439 - SYS_EXPORTWO = 0x5A1 // 1441 - SYS_EXPORTWORKUNIT = 0x5A1 // 1441 - SYS_UNDOEXPO = 0x5A2 // 1442 - SYS_UNDOEXPORTWORKUNIT = 0x5A2 // 1442 - SYS_IMPORTWO = 0x5A3 // 1443 - SYS_IMPORTWORKUNIT = 0x5A3 // 1443 - SYS_UNDOIMPO = 0x5A4 // 1444 - SYS_UNDOIMPORTWORKUNIT = 0x5A4 // 1444 - SYS_EXTRACTW = 0x5A5 // 1445 - SYS_EXTRACTWORKUNIT = 0x5A5 // 1445 - SYS___CPL = 0x5A6 // 1446 - SYS___MAP_INIT = 0x5A7 // 1447 - SYS___MAP_SERVICE = 0x5A8 // 1448 - SYS_SIGQUEUE = 0x5A9 // 1449 - SYS___MOUNT = 0x5AA // 1450 - SYS___GETUSERID = 0x5AB // 1451 - SYS___IPDOMAINNAME = 0x5AC // 1452 - SYS_QUERYENC = 0x5AD // 1453 - SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD // 1453 - SYS_CONNECTE = 0x5AE // 1454 - SYS_CONNECTEXPORTIMPORT = 0x5AE // 1454 - SYS___FP_SWAPMODE = 0x5AF // 1455 - SYS_STRTOLL = 0x5B0 // 1456 - SYS_STRTOULL = 0x5B1 // 1457 - SYS___DSA_PREV = 0x5B2 // 1458 - SYS___EP_FIND = 0x5B3 // 1459 - SYS___SERVER_THREADS_QUERY = 0x5B4 // 1460 - SYS___MSGRCV_TIMED = 0x5B7 // 1463 - SYS___SEMOP_TIMED = 0x5B8 // 1464 - SYS___GET_CPUID = 0x5B9 // 1465 - SYS___GET_SYSTEM_SETTINGS = 0x5BA // 1466 - SYS_FTELLO = 0x5C8 // 1480 - SYS_FSEEKO = 0x5C9 // 1481 - SYS_LLDIV = 0x5CB // 1483 - SYS_WCSTOLL = 0x5CC // 1484 - SYS_WCSTOULL = 0x5CD // 1485 - SYS_LLABS = 0x5CE // 1486 - SYS___CONSOLE2 = 0x5D2 // 1490 - SYS_INET_NTOP = 0x5D3 // 1491 - SYS_INET_PTON = 0x5D4 // 1492 - SYS___RES = 0x5D6 // 1494 - SYS_RES_MKQUERY = 0x5D7 // 1495 - SYS_RES_INIT = 0x5D8 // 1496 - SYS_RES_QUERY = 0x5D9 // 1497 - SYS_RES_SEARCH = 0x5DA // 1498 - SYS_RES_SEND = 0x5DB // 1499 - SYS_RES_QUERYDOMAIN = 0x5DC // 1500 - SYS_DN_EXPAND = 0x5DD // 1501 - SYS_DN_SKIPNAME = 0x5DE // 1502 - SYS_DN_COMP = 0x5DF // 1503 - SYS_ASCTIME_R = 0x5E0 // 1504 - SYS_CTIME_R = 0x5E1 // 1505 - SYS_GMTIME_R = 0x5E2 // 1506 - SYS_LOCALTIME_R = 0x5E3 // 1507 - SYS_RAND_R = 0x5E4 // 1508 - SYS_STRTOK_R = 0x5E5 // 1509 - SYS_READDIR_R = 0x5E6 // 1510 - SYS_GETGRGID_R = 0x5E7 // 1511 - SYS_GETGRNAM_R = 0x5E8 // 1512 - SYS_GETLOGIN_R = 0x5E9 // 1513 - SYS_GETPWNAM_R = 0x5EA // 1514 - SYS_GETPWUID_R = 0x5EB // 1515 - SYS_TTYNAME_R = 0x5EC // 1516 - SYS_PTHREAD_ATFORK = 0x5ED // 1517 - SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE // 1518 - SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF // 1519 - SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 // 1520 - SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 // 1521 - SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 // 1522 - SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 // 1523 - SYS_PTHREAD_GETCONCURRENCY = 0x5F4 // 1524 - SYS_PTHREAD_KEY_DELETE = 0x5F5 // 1525 - SYS_PTHREAD_SETCONCURRENCY = 0x5F6 // 1526 - SYS_PTHREAD_SIGMASK = 0x5F7 // 1527 - SYS___DISCARDDATA = 0x5F8 // 1528 - SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 // 1529 - SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA // 1530 - SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531 - SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532 - SYS_PTHREAD_DETACH_U98 = 0x5FD // 1533 - SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE // 1534 - SYS_PTHREAD_SETCANCELSTATE = 0x5FF // 1535 - SYS_PTHREAD_SETCANCELTYPE = 0x600 // 1536 - SYS_PTHREAD_TESTCANCEL = 0x601 // 1537 - SYS___ATANF_B = 0x602 // 1538 - SYS___ATANL_B = 0x603 // 1539 - SYS___CEILF_B = 0x604 // 1540 - SYS___CEILL_B = 0x605 // 1541 - SYS___COSF_B = 0x606 // 1542 - SYS___COSL_B = 0x607 // 1543 - SYS___FABSF_B = 0x608 // 1544 - SYS___FABSL_B = 0x609 // 1545 - SYS___FLOORF_B = 0x60A // 1546 - SYS___FLOORL_B = 0x60B // 1547 - SYS___FREXPF_B = 0x60C // 1548 - SYS___FREXPL_B = 0x60D // 1549 - SYS___LDEXPF_B = 0x60E // 1550 - SYS___LDEXPL_B = 0x60F // 1551 - SYS___SINF_B = 0x610 // 1552 - SYS___SINL_B = 0x611 // 1553 - SYS___TANF_B = 0x612 // 1554 - SYS___TANL_B = 0x613 // 1555 - SYS___TANHF_B = 0x614 // 1556 - SYS___TANHL_B = 0x615 // 1557 - SYS___ACOSF_B = 0x616 // 1558 - SYS___ACOSL_B = 0x617 // 1559 - SYS___ASINF_B = 0x618 // 1560 - SYS___ASINL_B = 0x619 // 1561 - SYS___ATAN2F_B = 0x61A // 1562 - SYS___ATAN2L_B = 0x61B // 1563 - SYS___COSHF_B = 0x61C // 1564 - SYS___COSHL_B = 0x61D // 1565 - SYS___EXPF_B = 0x61E // 1566 - SYS___EXPL_B = 0x61F // 1567 - SYS___LOGF_B = 0x620 // 1568 - SYS___LOGL_B = 0x621 // 1569 - SYS___LOG10F_B = 0x622 // 1570 - SYS___LOG10L_B = 0x623 // 1571 - SYS___POWF_B = 0x624 // 1572 - SYS___POWL_B = 0x625 // 1573 - SYS___SINHF_B = 0x626 // 1574 - SYS___SINHL_B = 0x627 // 1575 - SYS___SQRTF_B = 0x628 // 1576 - SYS___SQRTL_B = 0x629 // 1577 - SYS___ABSF_B = 0x62A // 1578 - SYS___ABS_B = 0x62B // 1579 - SYS___ABSL_B = 0x62C // 1580 - SYS___FMODF_B = 0x62D // 1581 - SYS___FMODL_B = 0x62E // 1582 - SYS___MODFF_B = 0x62F // 1583 - SYS___MODFL_B = 0x630 // 1584 - SYS_ABSF = 0x631 // 1585 - SYS_ABSL = 0x632 // 1586 - SYS_ACOSF = 0x633 // 1587 - SYS_ACOSL = 0x634 // 1588 - SYS_ASINF = 0x635 // 1589 - SYS_ASINL = 0x636 // 1590 - SYS_ATAN2F = 0x637 // 1591 - SYS_ATAN2L = 0x638 // 1592 - SYS_ATANF = 0x639 // 1593 - SYS_ATANL = 0x63A // 1594 - SYS_CEILF = 0x63B // 1595 - SYS_CEILL = 0x63C // 1596 - SYS_COSF = 0x63D // 1597 - SYS_COSL = 0x63E // 1598 - SYS_COSHF = 0x63F // 1599 - SYS_COSHL = 0x640 // 1600 - SYS_EXPF = 0x641 // 1601 - SYS_EXPL = 0x642 // 1602 - SYS_TANHF = 0x643 // 1603 - SYS_TANHL = 0x644 // 1604 - SYS_LOG10F = 0x645 // 1605 - SYS_LOG10L = 0x646 // 1606 - SYS_LOGF = 0x647 // 1607 - SYS_LOGL = 0x648 // 1608 - SYS_POWF = 0x649 // 1609 - SYS_POWL = 0x64A // 1610 - SYS_SINF = 0x64B // 1611 - SYS_SINL = 0x64C // 1612 - SYS_SQRTF = 0x64D // 1613 - SYS_SQRTL = 0x64E // 1614 - SYS_SINHF = 0x64F // 1615 - SYS_SINHL = 0x650 // 1616 - SYS_TANF = 0x651 // 1617 - SYS_TANL = 0x652 // 1618 - SYS_FABSF = 0x653 // 1619 - SYS_FABSL = 0x654 // 1620 - SYS_FLOORF = 0x655 // 1621 - SYS_FLOORL = 0x656 // 1622 - SYS_FMODF = 0x657 // 1623 - SYS_FMODL = 0x658 // 1624 - SYS_FREXPF = 0x659 // 1625 - SYS_FREXPL = 0x65A // 1626 - SYS_LDEXPF = 0x65B // 1627 - SYS_LDEXPL = 0x65C // 1628 - SYS_MODFF = 0x65D // 1629 - SYS_MODFL = 0x65E // 1630 - SYS_BTOWC = 0x65F // 1631 - SYS___CHATTR = 0x660 // 1632 - SYS___FCHATTR = 0x661 // 1633 - SYS___TOCCSID = 0x662 // 1634 - SYS___CSNAMETYPE = 0x663 // 1635 - SYS___TOCSNAME = 0x664 // 1636 - SYS___CCSIDTYPE = 0x665 // 1637 - SYS___AE_CORRESTBL_QUERY = 0x666 // 1638 - SYS___AE_AUTOCONVERT_STATE = 0x667 // 1639 - SYS_DN_FIND = 0x668 // 1640 - SYS___GETHOSTBYADDR_A = 0x669 // 1641 - SYS___GETHOSTBYNAME_A = 0x66A // 1642 - SYS___RES_INIT_A = 0x66B // 1643 - SYS___GETHOSTBYADDR_R_A = 0x66C // 1644 - SYS___GETHOSTBYNAME_R_A = 0x66D // 1645 - SYS___CHARMAP_INIT_A = 0x66E // 1646 - SYS___MBLEN_A = 0x66F // 1647 - SYS___MBLEN_SB_A = 0x670 // 1648 - SYS___MBLEN_STD_A = 0x671 // 1649 - SYS___MBLEN_UTF = 0x672 // 1650 - SYS___MBSTOWCS_A = 0x673 // 1651 - SYS___MBSTOWCS_STD_A = 0x674 // 1652 - SYS___MBTOWC_A = 0x675 // 1653 - SYS___MBTOWC_ISO1 = 0x676 // 1654 - SYS___MBTOWC_SBCS = 0x677 // 1655 - SYS___MBTOWC_MBCS = 0x678 // 1656 - SYS___MBTOWC_UTF = 0x679 // 1657 - SYS___WCSTOMBS_A = 0x67A // 1658 - SYS___WCSTOMBS_STD_A = 0x67B // 1659 - SYS___WCSWIDTH_A = 0x67C // 1660 - SYS___GETGRGID_R_A = 0x67D // 1661 - SYS___WCSWIDTH_STD_A = 0x67E // 1662 - SYS___WCSWIDTH_ASIA = 0x67F // 1663 - SYS___CSID_A = 0x680 // 1664 - SYS___CSID_STD_A = 0x681 // 1665 - SYS___WCSID_A = 0x682 // 1666 - SYS___WCSID_STD_A = 0x683 // 1667 - SYS___WCTOMB_A = 0x684 // 1668 - SYS___WCTOMB_ISO1 = 0x685 // 1669 - SYS___WCTOMB_STD_A = 0x686 // 1670 - SYS___WCTOMB_UTF = 0x687 // 1671 - SYS___WCWIDTH_A = 0x688 // 1672 - SYS___GETGRNAM_R_A = 0x689 // 1673 - SYS___WCWIDTH_STD_A = 0x68A // 1674 - SYS___WCWIDTH_ASIA = 0x68B // 1675 - SYS___GETPWNAM_R_A = 0x68C // 1676 - SYS___GETPWUID_R_A = 0x68D // 1677 - SYS___GETLOGIN_R_A = 0x68E // 1678 - SYS___TTYNAME_R_A = 0x68F // 1679 - SYS___READDIR_R_A = 0x690 // 1680 - SYS___E2A_S = 0x691 // 1681 - SYS___FNMATCH_A = 0x692 // 1682 - SYS___FNMATCH_C_A = 0x693 // 1683 - SYS___EXECL_A = 0x694 // 1684 - SYS___FNMATCH_STD_A = 0x695 // 1685 - SYS___REGCOMP_A = 0x696 // 1686 - SYS___REGCOMP_STD_A = 0x697 // 1687 - SYS___REGERROR_A = 0x698 // 1688 - SYS___REGERROR_STD_A = 0x699 // 1689 - SYS___REGEXEC_A = 0x69A // 1690 - SYS___REGEXEC_STD_A = 0x69B // 1691 - SYS___REGFREE_A = 0x69C // 1692 - SYS___REGFREE_STD_A = 0x69D // 1693 - SYS___STRCOLL_A = 0x69E // 1694 - SYS___STRCOLL_C_A = 0x69F // 1695 - SYS___EXECLE_A = 0x6A0 // 1696 - SYS___STRCOLL_STD_A = 0x6A1 // 1697 - SYS___STRXFRM_A = 0x6A2 // 1698 - SYS___STRXFRM_C_A = 0x6A3 // 1699 - SYS___EXECLP_A = 0x6A4 // 1700 - SYS___STRXFRM_STD_A = 0x6A5 // 1701 - SYS___WCSCOLL_A = 0x6A6 // 1702 - SYS___WCSCOLL_C_A = 0x6A7 // 1703 - SYS___WCSCOLL_STD_A = 0x6A8 // 1704 - SYS___WCSXFRM_A = 0x6A9 // 1705 - SYS___WCSXFRM_C_A = 0x6AA // 1706 - SYS___WCSXFRM_STD_A = 0x6AB // 1707 - SYS___COLLATE_INIT_A = 0x6AC // 1708 - SYS___WCTYPE_A = 0x6AD // 1709 - SYS___GET_WCTYPE_STD_A = 0x6AE // 1710 - SYS___CTYPE_INIT_A = 0x6AF // 1711 - SYS___ISWCTYPE_A = 0x6B0 // 1712 - SYS___EXECV_A = 0x6B1 // 1713 - SYS___IS_WCTYPE_STD_A = 0x6B2 // 1714 - SYS___TOWLOWER_A = 0x6B3 // 1715 - SYS___TOWLOWER_STD_A = 0x6B4 // 1716 - SYS___TOWUPPER_A = 0x6B5 // 1717 - SYS___TOWUPPER_STD_A = 0x6B6 // 1718 - SYS___LOCALE_INIT_A = 0x6B7 // 1719 - SYS___LOCALECONV_A = 0x6B8 // 1720 - SYS___LOCALECONV_STD_A = 0x6B9 // 1721 - SYS___NL_LANGINFO_A = 0x6BA // 1722 - SYS___NL_LNAGINFO_STD_A = 0x6BB // 1723 - SYS___MONETARY_INIT_A = 0x6BC // 1724 - SYS___STRFMON_A = 0x6BD // 1725 - SYS___STRFMON_STD_A = 0x6BE // 1726 - SYS___GETADDRINFO_A = 0x6BF // 1727 - SYS___CATGETS_A = 0x6C0 // 1728 - SYS___EXECVE_A = 0x6C1 // 1729 - SYS___EXECVP_A = 0x6C2 // 1730 - SYS___SPAWN_A = 0x6C3 // 1731 - SYS___GETNAMEINFO_A = 0x6C4 // 1732 - SYS___SPAWNP_A = 0x6C5 // 1733 - SYS___NUMERIC_INIT_A = 0x6C6 // 1734 - SYS___RESP_INIT_A = 0x6C7 // 1735 - SYS___RPMATCH_A = 0x6C8 // 1736 - SYS___RPMATCH_C_A = 0x6C9 // 1737 - SYS___RPMATCH_STD_A = 0x6CA // 1738 - SYS___TIME_INIT_A = 0x6CB // 1739 - SYS___STRFTIME_A = 0x6CC // 1740 - SYS___STRFTIME_STD_A = 0x6CD // 1741 - SYS___STRPTIME_A = 0x6CE // 1742 - SYS___STRPTIME_STD_A = 0x6CF // 1743 - SYS___WCSFTIME_A = 0x6D0 // 1744 - SYS___WCSFTIME_STD_A = 0x6D1 // 1745 - SYS_____SPAWN2_A = 0x6D2 // 1746 - SYS_____SPAWNP2_A = 0x6D3 // 1747 - SYS___SYNTAX_INIT_A = 0x6D4 // 1748 - SYS___TOD_INIT_A = 0x6D5 // 1749 - SYS___NL_CSINFO_A = 0x6D6 // 1750 - SYS___NL_MONINFO_A = 0x6D7 // 1751 - SYS___NL_NUMINFO_A = 0x6D8 // 1752 - SYS___NL_RESPINFO_A = 0x6D9 // 1753 - SYS___NL_TIMINFO_A = 0x6DA // 1754 - SYS___IF_NAMETOINDEX_A = 0x6DB // 1755 - SYS___IF_INDEXTONAME_A = 0x6DC // 1756 - SYS___PRINTF_A = 0x6DD // 1757 - SYS___ICONV_OPEN_A = 0x6DE // 1758 - SYS___DLLLOAD_A = 0x6DF // 1759 - SYS___DLLQUERYFN_A = 0x6E0 // 1760 - SYS___DLLQUERYVAR_A = 0x6E1 // 1761 - SYS_____CHATTR_A = 0x6E2 // 1762 - SYS___E2A_L = 0x6E3 // 1763 - SYS_____TOCCSID_A = 0x6E4 // 1764 - SYS_____TOCSNAME_A = 0x6E5 // 1765 - SYS_____CCSIDTYPE_A = 0x6E6 // 1766 - SYS_____CSNAMETYPE_A = 0x6E7 // 1767 - SYS___CHMOD_A = 0x6E8 // 1768 - SYS___MKDIR_A = 0x6E9 // 1769 - SYS___STAT_A = 0x6EA // 1770 - SYS___STAT_O_A = 0x6EB // 1771 - SYS___MKFIFO_A = 0x6EC // 1772 - SYS_____OPEN_STAT_A = 0x6ED // 1773 - SYS___LSTAT_A = 0x6EE // 1774 - SYS___LSTAT_O_A = 0x6EF // 1775 - SYS___MKNOD_A = 0x6F0 // 1776 - SYS___MOUNT_A = 0x6F1 // 1777 - SYS___UMOUNT_A = 0x6F2 // 1778 - SYS___CHAUDIT_A = 0x6F4 // 1780 - SYS___W_GETMNTENT_A = 0x6F5 // 1781 - SYS___CREAT_A = 0x6F6 // 1782 - SYS___OPEN_A = 0x6F7 // 1783 - SYS___SETLOCALE_A = 0x6F9 // 1785 - SYS___FPRINTF_A = 0x6FA // 1786 - SYS___SPRINTF_A = 0x6FB // 1787 - SYS___VFPRINTF_A = 0x6FC // 1788 - SYS___VPRINTF_A = 0x6FD // 1789 - SYS___VSPRINTF_A = 0x6FE // 1790 - SYS___VSWPRINTF_A = 0x6FF // 1791 - SYS___SWPRINTF_A = 0x700 // 1792 - SYS___FSCANF_A = 0x701 // 1793 - SYS___SCANF_A = 0x702 // 1794 - SYS___SSCANF_A = 0x703 // 1795 - SYS___SWSCANF_A = 0x704 // 1796 - SYS___ATOF_A = 0x705 // 1797 - SYS___ATOI_A = 0x706 // 1798 - SYS___ATOL_A = 0x707 // 1799 - SYS___STRTOD_A = 0x708 // 1800 - SYS___STRTOL_A = 0x709 // 1801 - SYS___STRTOUL_A = 0x70A // 1802 - SYS_____AE_CORRESTBL_QUERY_A = 0x70B // 1803 - SYS___A64L_A = 0x70C // 1804 - SYS___ECVT_A = 0x70D // 1805 - SYS___FCVT_A = 0x70E // 1806 - SYS___GCVT_A = 0x70F // 1807 - SYS___L64A_A = 0x710 // 1808 - SYS___STRERROR_A = 0x711 // 1809 - SYS___PERROR_A = 0x712 // 1810 - SYS___FETCH_A = 0x713 // 1811 - SYS___GETENV_A = 0x714 // 1812 - SYS___MKSTEMP_A = 0x717 // 1815 - SYS___PTSNAME_A = 0x718 // 1816 - SYS___PUTENV_A = 0x719 // 1817 - SYS___REALPATH_A = 0x71A // 1818 - SYS___SETENV_A = 0x71B // 1819 - SYS___SYSTEM_A = 0x71C // 1820 - SYS___GETOPT_A = 0x71D // 1821 - SYS___CATOPEN_A = 0x71E // 1822 - SYS___ACCESS_A = 0x71F // 1823 - SYS___CHDIR_A = 0x720 // 1824 - SYS___CHOWN_A = 0x721 // 1825 - SYS___CHROOT_A = 0x722 // 1826 - SYS___GETCWD_A = 0x723 // 1827 - SYS___GETWD_A = 0x724 // 1828 - SYS___LCHOWN_A = 0x725 // 1829 - SYS___LINK_A = 0x726 // 1830 - SYS___PATHCONF_A = 0x727 // 1831 - SYS___IF_NAMEINDEX_A = 0x728 // 1832 - SYS___READLINK_A = 0x729 // 1833 - SYS___RMDIR_A = 0x72A // 1834 - SYS___STATVFS_A = 0x72B // 1835 - SYS___SYMLINK_A = 0x72C // 1836 - SYS___TRUNCATE_A = 0x72D // 1837 - SYS___UNLINK_A = 0x72E // 1838 - SYS___GAI_STRERROR_A = 0x72F // 1839 - SYS___EXTLINK_NP_A = 0x730 // 1840 - SYS___ISALNUM_A = 0x731 // 1841 - SYS___ISALPHA_A = 0x732 // 1842 - SYS___A2E_S = 0x733 // 1843 - SYS___ISCNTRL_A = 0x734 // 1844 - SYS___ISDIGIT_A = 0x735 // 1845 - SYS___ISGRAPH_A = 0x736 // 1846 - SYS___ISLOWER_A = 0x737 // 1847 - SYS___ISPRINT_A = 0x738 // 1848 - SYS___ISPUNCT_A = 0x739 // 1849 - SYS___ISSPACE_A = 0x73A // 1850 - SYS___ISUPPER_A = 0x73B // 1851 - SYS___ISXDIGIT_A = 0x73C // 1852 - SYS___TOLOWER_A = 0x73D // 1853 - SYS___TOUPPER_A = 0x73E // 1854 - SYS___ISWALNUM_A = 0x73F // 1855 - SYS___ISWALPHA_A = 0x740 // 1856 - SYS___A2E_L = 0x741 // 1857 - SYS___ISWCNTRL_A = 0x742 // 1858 - SYS___ISWDIGIT_A = 0x743 // 1859 - SYS___ISWGRAPH_A = 0x744 // 1860 - SYS___ISWLOWER_A = 0x745 // 1861 - SYS___ISWPRINT_A = 0x746 // 1862 - SYS___ISWPUNCT_A = 0x747 // 1863 - SYS___ISWSPACE_A = 0x748 // 1864 - SYS___ISWUPPER_A = 0x749 // 1865 - SYS___ISWXDIGIT_A = 0x74A // 1866 - SYS___CONFSTR_A = 0x74B // 1867 - SYS___FTOK_A = 0x74C // 1868 - SYS___MKTEMP_A = 0x74D // 1869 - SYS___FDOPEN_A = 0x74E // 1870 - SYS___FLDATA_A = 0x74F // 1871 - SYS___REMOVE_A = 0x750 // 1872 - SYS___RENAME_A = 0x751 // 1873 - SYS___TMPNAM_A = 0x752 // 1874 - SYS___FOPEN_A = 0x753 // 1875 - SYS___FREOPEN_A = 0x754 // 1876 - SYS___CUSERID_A = 0x755 // 1877 - SYS___POPEN_A = 0x756 // 1878 - SYS___TEMPNAM_A = 0x757 // 1879 - SYS___FTW_A = 0x758 // 1880 - SYS___GETGRENT_A = 0x759 // 1881 - SYS___GETGRGID_A = 0x75A // 1882 - SYS___GETGRNAM_A = 0x75B // 1883 - SYS___GETGROUPSBYNAME_A = 0x75C // 1884 - SYS___GETHOSTENT_A = 0x75D // 1885 - SYS___GETHOSTNAME_A = 0x75E // 1886 - SYS___GETLOGIN_A = 0x75F // 1887 - SYS___INET_NTOP_A = 0x760 // 1888 - SYS___GETPASS_A = 0x761 // 1889 - SYS___GETPWENT_A = 0x762 // 1890 - SYS___GETPWNAM_A = 0x763 // 1891 - SYS___GETPWUID_A = 0x764 // 1892 - SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 // 1893 - SYS___CHECKSCHENV_A = 0x766 // 1894 - SYS___CONNECTSERVER_A = 0x767 // 1895 - SYS___CONNECTWORKMGR_A = 0x768 // 1896 - SYS_____CONSOLE_A = 0x769 // 1897 - SYS___CREATEWORKUNIT_A = 0x76A // 1898 - SYS___CTERMID_A = 0x76B // 1899 - SYS___FMTMSG_A = 0x76C // 1900 - SYS___INITGROUPS_A = 0x76D // 1901 - SYS_____LOGIN_A = 0x76E // 1902 - SYS___MSGRCV_A = 0x76F // 1903 - SYS___MSGSND_A = 0x770 // 1904 - SYS___MSGXRCV_A = 0x771 // 1905 - SYS___NFTW_A = 0x772 // 1906 - SYS_____PASSWD_A = 0x773 // 1907 - SYS___PTHREAD_SECURITY_NP_A = 0x774 // 1908 - SYS___QUERYMETRICS_A = 0x775 // 1909 - SYS___QUERYSCHENV = 0x776 // 1910 - SYS___READV_A = 0x777 // 1911 - SYS_____SERVER_CLASSIFY_A = 0x778 // 1912 - SYS_____SERVER_INIT_A = 0x779 // 1913 - SYS_____SERVER_PWU_A = 0x77A // 1914 - SYS___STRCASECMP_A = 0x77B // 1915 - SYS___STRNCASECMP_A = 0x77C // 1916 - SYS___TTYNAME_A = 0x77D // 1917 - SYS___UNAME_A = 0x77E // 1918 - SYS___UTIMES_A = 0x77F // 1919 - SYS___W_GETPSENT_A = 0x780 // 1920 - SYS___WRITEV_A = 0x781 // 1921 - SYS___W_STATFS_A = 0x782 // 1922 - SYS___W_STATVFS_A = 0x783 // 1923 - SYS___FPUTC_A = 0x784 // 1924 - SYS___PUTCHAR_A = 0x785 // 1925 - SYS___PUTS_A = 0x786 // 1926 - SYS___FGETS_A = 0x787 // 1927 - SYS___GETS_A = 0x788 // 1928 - SYS___FPUTS_A = 0x789 // 1929 - SYS___FREAD_A = 0x78A // 1930 - SYS___FWRITE_A = 0x78B // 1931 - SYS___OPEN_O_A = 0x78C // 1932 - SYS___ISASCII = 0x78D // 1933 - SYS___CREAT_O_A = 0x78E // 1934 - SYS___ENVNA = 0x78F // 1935 - SYS___PUTC_A = 0x790 // 1936 - SYS___AE_THREAD_SETMODE = 0x791 // 1937 - SYS___AE_THREAD_SWAPMODE = 0x792 // 1938 - SYS___GETNETBYADDR_A = 0x793 // 1939 - SYS___GETNETBYNAME_A = 0x794 // 1940 - SYS___GETNETENT_A = 0x795 // 1941 - SYS___GETPROTOBYNAME_A = 0x796 // 1942 - SYS___GETPROTOBYNUMBER_A = 0x797 // 1943 - SYS___GETPROTOENT_A = 0x798 // 1944 - SYS___GETSERVBYNAME_A = 0x799 // 1945 - SYS___GETSERVBYPORT_A = 0x79A // 1946 - SYS___GETSERVENT_A = 0x79B // 1947 - SYS___ASCTIME_A = 0x79C // 1948 - SYS___CTIME_A = 0x79D // 1949 - SYS___GETDATE_A = 0x79E // 1950 - SYS___TZSET_A = 0x79F // 1951 - SYS___UTIME_A = 0x7A0 // 1952 - SYS___ASCTIME_R_A = 0x7A1 // 1953 - SYS___CTIME_R_A = 0x7A2 // 1954 - SYS___STRTOLL_A = 0x7A3 // 1955 - SYS___STRTOULL_A = 0x7A4 // 1956 - SYS___FPUTWC_A = 0x7A5 // 1957 - SYS___PUTWC_A = 0x7A6 // 1958 - SYS___PUTWCHAR_A = 0x7A7 // 1959 - SYS___FPUTWS_A = 0x7A8 // 1960 - SYS___UNGETWC_A = 0x7A9 // 1961 - SYS___FGETWC_A = 0x7AA // 1962 - SYS___GETWC_A = 0x7AB // 1963 - SYS___GETWCHAR_A = 0x7AC // 1964 - SYS___FGETWS_A = 0x7AD // 1965 - SYS___GETTIMEOFDAY_A = 0x7AE // 1966 - SYS___GMTIME_A = 0x7AF // 1967 - SYS___GMTIME_R_A = 0x7B0 // 1968 - SYS___LOCALTIME_A = 0x7B1 // 1969 - SYS___LOCALTIME_R_A = 0x7B2 // 1970 - SYS___MKTIME_A = 0x7B3 // 1971 - SYS___TZZNA = 0x7B4 // 1972 - SYS_UNATEXIT = 0x7B5 // 1973 - SYS___CEE3DMP_A = 0x7B6 // 1974 - SYS___CDUMP_A = 0x7B7 // 1975 - SYS___CSNAP_A = 0x7B8 // 1976 - SYS___CTEST_A = 0x7B9 // 1977 - SYS___CTRACE_A = 0x7BA // 1978 - SYS___VSWPRNTF2_A = 0x7BB // 1979 - SYS___INET_PTON_A = 0x7BC // 1980 - SYS___SYSLOG_A = 0x7BD // 1981 - SYS___CRYPT_A = 0x7BE // 1982 - SYS_____OPENDIR2_A = 0x7BF // 1983 - SYS_____READDIR2_A = 0x7C0 // 1984 - SYS___OPENDIR_A = 0x7C2 // 1986 - SYS___READDIR_A = 0x7C3 // 1987 - SYS_PREAD = 0x7C7 // 1991 - SYS_PWRITE = 0x7C8 // 1992 - SYS_M_CREATE_LAYOUT = 0x7C9 // 1993 - SYS_M_DESTROY_LAYOUT = 0x7CA // 1994 - SYS_M_GETVALUES_LAYOUT = 0x7CB // 1995 - SYS_M_SETVALUES_LAYOUT = 0x7CC // 1996 - SYS_M_TRANSFORM_LAYOUT = 0x7CD // 1997 - SYS_M_WTRANSFORM_LAYOUT = 0x7CE // 1998 - SYS_FWPRINTF = 0x7D1 // 2001 - SYS_WPRINTF = 0x7D2 // 2002 - SYS_VFWPRINT = 0x7D3 // 2003 - SYS_VFWPRINTF = 0x7D3 // 2003 - SYS_VWPRINTF = 0x7D4 // 2004 - SYS_FWSCANF = 0x7D5 // 2005 - SYS_WSCANF = 0x7D6 // 2006 - SYS_WCTRANS = 0x7D7 // 2007 - SYS_TOWCTRAN = 0x7D8 // 2008 - SYS_TOWCTRANS = 0x7D8 // 2008 - SYS___WCSTOD_A = 0x7D9 // 2009 - SYS___WCSTOL_A = 0x7DA // 2010 - SYS___WCSTOUL_A = 0x7DB // 2011 - SYS___BASENAME_A = 0x7DC // 2012 - SYS___DIRNAME_A = 0x7DD // 2013 - SYS___GLOB_A = 0x7DE // 2014 - SYS_FWIDE = 0x7DF // 2015 - SYS___OSNAME = 0x7E0 // 2016 - SYS_____OSNAME_A = 0x7E1 // 2017 - SYS___BTOWC_A = 0x7E4 // 2020 - SYS___WCTOB_A = 0x7E5 // 2021 - SYS___DBM_OPEN_A = 0x7E6 // 2022 - SYS___VFPRINTF2_A = 0x7E7 // 2023 - SYS___VPRINTF2_A = 0x7E8 // 2024 - SYS___VSPRINTF2_A = 0x7E9 // 2025 - SYS___CEIL_H = 0x7EA // 2026 - SYS___FLOOR_H = 0x7EB // 2027 - SYS___MODF_H = 0x7EC // 2028 - SYS___FABS_H = 0x7ED // 2029 - SYS___J0_H = 0x7EE // 2030 - SYS___J1_H = 0x7EF // 2031 - SYS___JN_H = 0x7F0 // 2032 - SYS___Y0_H = 0x7F1 // 2033 - SYS___Y1_H = 0x7F2 // 2034 - SYS___YN_H = 0x7F3 // 2035 - SYS___CEILF_H = 0x7F4 // 2036 - SYS___CEILL_H = 0x7F5 // 2037 - SYS___FLOORF_H = 0x7F6 // 2038 - SYS___FLOORL_H = 0x7F7 // 2039 - SYS___MODFF_H = 0x7F8 // 2040 - SYS___MODFL_H = 0x7F9 // 2041 - SYS___FABSF_H = 0x7FA // 2042 - SYS___FABSL_H = 0x7FB // 2043 - SYS___MALLOC24 = 0x7FC // 2044 - SYS___MALLOC31 = 0x7FD // 2045 - SYS_ACL_INIT = 0x7FE // 2046 - SYS_ACL_FREE = 0x7FF // 2047 - SYS_ACL_FIRST_ENTRY = 0x800 // 2048 - SYS_ACL_GET_ENTRY = 0x801 // 2049 - SYS_ACL_VALID = 0x802 // 2050 - SYS_ACL_CREATE_ENTRY = 0x803 // 2051 - SYS_ACL_DELETE_ENTRY = 0x804 // 2052 - SYS_ACL_UPDATE_ENTRY = 0x805 // 2053 - SYS_ACL_DELETE_FD = 0x806 // 2054 - SYS_ACL_DELETE_FILE = 0x807 // 2055 - SYS_ACL_GET_FD = 0x808 // 2056 - SYS_ACL_GET_FILE = 0x809 // 2057 - SYS_ACL_SET_FD = 0x80A // 2058 - SYS_ACL_SET_FILE = 0x80B // 2059 - SYS_ACL_FROM_TEXT = 0x80C // 2060 - SYS_ACL_TO_TEXT = 0x80D // 2061 - SYS_ACL_SORT = 0x80E // 2062 - SYS___SHUTDOWN_REGISTRATION = 0x80F // 2063 - SYS___ERFL_B = 0x810 // 2064 - SYS___ERFCL_B = 0x811 // 2065 - SYS___LGAMMAL_B = 0x812 // 2066 - SYS___SETHOOKEVENTS = 0x813 // 2067 - SYS_IF_NAMETOINDEX = 0x814 // 2068 - SYS_IF_INDEXTONAME = 0x815 // 2069 - SYS_IF_NAMEINDEX = 0x816 // 2070 - SYS_IF_FREENAMEINDEX = 0x817 // 2071 - SYS_GETADDRINFO = 0x818 // 2072 - SYS_GETNAMEINFO = 0x819 // 2073 - SYS_FREEADDRINFO = 0x81A // 2074 - SYS_GAI_STRERROR = 0x81B // 2075 - SYS_REXEC_AF = 0x81C // 2076 - SYS___POE = 0x81D // 2077 - SYS___DYNALLOC_A = 0x81F // 2079 - SYS___DYNFREE_A = 0x820 // 2080 - SYS___RES_QUERY_A = 0x821 // 2081 - SYS___RES_SEARCH_A = 0x822 // 2082 - SYS___RES_QUERYDOMAIN_A = 0x823 // 2083 - SYS___RES_MKQUERY_A = 0x824 // 2084 - SYS___RES_SEND_A = 0x825 // 2085 - SYS___DN_EXPAND_A = 0x826 // 2086 - SYS___DN_SKIPNAME_A = 0x827 // 2087 - SYS___DN_COMP_A = 0x828 // 2088 - SYS___DN_FIND_A = 0x829 // 2089 - SYS___NLIST_A = 0x82A // 2090 - SYS_____TCGETCP_A = 0x82B // 2091 - SYS_____TCSETCP_A = 0x82C // 2092 - SYS_____W_PIOCTL_A = 0x82E // 2094 - SYS___INET_ADDR_A = 0x82F // 2095 - SYS___INET_NTOA_A = 0x830 // 2096 - SYS___INET_NETWORK_A = 0x831 // 2097 - SYS___ACCEPT_A = 0x832 // 2098 - SYS___ACCEPT_AND_RECV_A = 0x833 // 2099 - SYS___BIND_A = 0x834 // 2100 - SYS___CONNECT_A = 0x835 // 2101 - SYS___GETPEERNAME_A = 0x836 // 2102 - SYS___GETSOCKNAME_A = 0x837 // 2103 - SYS___RECVFROM_A = 0x838 // 2104 - SYS___SENDTO_A = 0x839 // 2105 - SYS___SENDMSG_A = 0x83A // 2106 - SYS___RECVMSG_A = 0x83B // 2107 - SYS_____LCHATTR_A = 0x83C // 2108 - SYS___CABEND = 0x83D // 2109 - SYS___LE_CIB_GET = 0x83E // 2110 - SYS___SET_LAA_FOR_JIT = 0x83F // 2111 - SYS___LCHATTR = 0x840 // 2112 - SYS___WRITEDOWN = 0x841 // 2113 - SYS_PTHREAD_MUTEX_INIT2 = 0x842 // 2114 - SYS___ACOSHF_B = 0x843 // 2115 - SYS___ACOSHL_B = 0x844 // 2116 - SYS___ASINHF_B = 0x845 // 2117 - SYS___ASINHL_B = 0x846 // 2118 - SYS___ATANHF_B = 0x847 // 2119 - SYS___ATANHL_B = 0x848 // 2120 - SYS___CBRTF_B = 0x849 // 2121 - SYS___CBRTL_B = 0x84A // 2122 - SYS___COPYSIGNF_B = 0x84B // 2123 - SYS___COPYSIGNL_B = 0x84C // 2124 - SYS___COTANF_B = 0x84D // 2125 - SYS___COTAN_B = 0x84E // 2126 - SYS___COTANL_B = 0x84F // 2127 - SYS___EXP2F_B = 0x850 // 2128 - SYS___EXP2L_B = 0x851 // 2129 - SYS___EXPM1F_B = 0x852 // 2130 - SYS___EXPM1L_B = 0x853 // 2131 - SYS___FDIMF_B = 0x854 // 2132 - SYS___FDIM_B = 0x855 // 2133 - SYS___FDIML_B = 0x856 // 2134 - SYS___HYPOTF_B = 0x857 // 2135 - SYS___HYPOTL_B = 0x858 // 2136 - SYS___LOG1PF_B = 0x859 // 2137 - SYS___LOG1PL_B = 0x85A // 2138 - SYS___LOG2F_B = 0x85B // 2139 - SYS___LOG2_B = 0x85C // 2140 - SYS___LOG2L_B = 0x85D // 2141 - SYS___REMAINDERF_B = 0x85E // 2142 - SYS___REMAINDERL_B = 0x85F // 2143 - SYS___REMQUOF_B = 0x860 // 2144 - SYS___REMQUO_B = 0x861 // 2145 - SYS___REMQUOL_B = 0x862 // 2146 - SYS___TGAMMAF_B = 0x863 // 2147 - SYS___TGAMMA_B = 0x864 // 2148 - SYS___TGAMMAL_B = 0x865 // 2149 - SYS___TRUNCF_B = 0x866 // 2150 - SYS___TRUNC_B = 0x867 // 2151 - SYS___TRUNCL_B = 0x868 // 2152 - SYS___LGAMMAF_B = 0x869 // 2153 - SYS___LROUNDF_B = 0x86A // 2154 - SYS___LROUND_B = 0x86B // 2155 - SYS___ERFF_B = 0x86C // 2156 - SYS___ERFCF_B = 0x86D // 2157 - SYS_ACOSHF = 0x86E // 2158 - SYS_ACOSHL = 0x86F // 2159 - SYS_ASINHF = 0x870 // 2160 - SYS_ASINHL = 0x871 // 2161 - SYS_ATANHF = 0x872 // 2162 - SYS_ATANHL = 0x873 // 2163 - SYS_CBRTF = 0x874 // 2164 - SYS_CBRTL = 0x875 // 2165 - SYS_COPYSIGNF = 0x876 // 2166 - SYS_CPYSIGNF = 0x876 // 2166 - SYS_COPYSIGNL = 0x877 // 2167 - SYS_CPYSIGNL = 0x877 // 2167 - SYS_COTANF = 0x878 // 2168 - SYS___COTANF = 0x878 // 2168 - SYS_COTAN = 0x879 // 2169 - SYS___COTAN = 0x879 // 2169 - SYS_COTANL = 0x87A // 2170 - SYS___COTANL = 0x87A // 2170 - SYS_EXP2F = 0x87B // 2171 - SYS_EXP2L = 0x87C // 2172 - SYS_EXPM1F = 0x87D // 2173 - SYS_EXPM1L = 0x87E // 2174 - SYS_FDIMF = 0x87F // 2175 - SYS_FDIM = 0x881 // 2177 - SYS_FDIML = 0x882 // 2178 - SYS_HYPOTF = 0x883 // 2179 - SYS_HYPOTL = 0x884 // 2180 - SYS_LOG1PF = 0x885 // 2181 - SYS_LOG1PL = 0x886 // 2182 - SYS_LOG2F = 0x887 // 2183 - SYS_LOG2 = 0x888 // 2184 - SYS_LOG2L = 0x889 // 2185 - SYS_REMAINDERF = 0x88A // 2186 - SYS_REMAINDF = 0x88A // 2186 - SYS_REMAINDERL = 0x88B // 2187 - SYS_REMAINDL = 0x88B // 2187 - SYS_REMQUOF = 0x88C // 2188 - SYS_REMQUO = 0x88D // 2189 - SYS_REMQUOL = 0x88E // 2190 - SYS_TGAMMAF = 0x88F // 2191 - SYS_TGAMMA = 0x890 // 2192 - SYS_TGAMMAL = 0x891 // 2193 - SYS_TRUNCF = 0x892 // 2194 - SYS_TRUNC = 0x893 // 2195 - SYS_TRUNCL = 0x894 // 2196 - SYS_LGAMMAF = 0x895 // 2197 - SYS_LGAMMAL = 0x896 // 2198 - SYS_LROUNDF = 0x897 // 2199 - SYS_LROUND = 0x898 // 2200 - SYS_ERFF = 0x899 // 2201 - SYS_ERFL = 0x89A // 2202 - SYS_ERFCF = 0x89B // 2203 - SYS_ERFCL = 0x89C // 2204 - SYS___EXP2_B = 0x89D // 2205 - SYS_EXP2 = 0x89E // 2206 - SYS___FAR_JUMP = 0x89F // 2207 - SYS___TCGETATTR_A = 0x8A1 // 2209 - SYS___TCSETATTR_A = 0x8A2 // 2210 - SYS___SUPERKILL = 0x8A4 // 2212 - SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 // 2213 - SYS___LE_MSG_ADD_INSERT = 0x8A6 // 2214 - SYS___LE_MSG_GET = 0x8A7 // 2215 - SYS___LE_MSG_GET_AND_WRITE = 0x8A8 // 2216 - SYS___LE_MSG_WRITE = 0x8A9 // 2217 - SYS___ITOA = 0x8AA // 2218 - SYS___UTOA = 0x8AB // 2219 - SYS___LTOA = 0x8AC // 2220 - SYS___ULTOA = 0x8AD // 2221 - SYS___LLTOA = 0x8AE // 2222 - SYS___ULLTOA = 0x8AF // 2223 - SYS___ITOA_A = 0x8B0 // 2224 - SYS___UTOA_A = 0x8B1 // 2225 - SYS___LTOA_A = 0x8B2 // 2226 - SYS___ULTOA_A = 0x8B3 // 2227 - SYS___LLTOA_A = 0x8B4 // 2228 - SYS___ULLTOA_A = 0x8B5 // 2229 - SYS_____GETENV_A = 0x8C3 // 2243 - SYS___REXEC_A = 0x8C4 // 2244 - SYS___REXEC_AF_A = 0x8C5 // 2245 - SYS___GETUTXENT_A = 0x8C6 // 2246 - SYS___GETUTXID_A = 0x8C7 // 2247 - SYS___GETUTXLINE_A = 0x8C8 // 2248 - SYS___PUTUTXLINE_A = 0x8C9 // 2249 - SYS_____UTMPXNAME_A = 0x8CA // 2250 - SYS___PUTC_UNLOCKED_A = 0x8CB // 2251 - SYS___PUTCHAR_UNLOCKED_A = 0x8CC // 2252 - SYS___SNPRINTF_A = 0x8CD // 2253 - SYS___VSNPRINTF_A = 0x8CE // 2254 - SYS___DLOPEN_A = 0x8D0 // 2256 - SYS___DLSYM_A = 0x8D1 // 2257 - SYS___DLERROR_A = 0x8D2 // 2258 - SYS_FLOCKFILE = 0x8D3 // 2259 - SYS_FTRYLOCKFILE = 0x8D4 // 2260 - SYS_FUNLOCKFILE = 0x8D5 // 2261 - SYS_GETC_UNLOCKED = 0x8D6 // 2262 - SYS_GETCHAR_UNLOCKED = 0x8D7 // 2263 - SYS_PUTC_UNLOCKED = 0x8D8 // 2264 - SYS_PUTCHAR_UNLOCKED = 0x8D9 // 2265 - SYS_SNPRINTF = 0x8DA // 2266 - SYS_VSNPRINTF = 0x8DB // 2267 - SYS_DLOPEN = 0x8DD // 2269 - SYS_DLSYM = 0x8DE // 2270 - SYS_DLCLOSE = 0x8DF // 2271 - SYS_DLERROR = 0x8E0 // 2272 - SYS___SET_EXCEPTION_HANDLER = 0x8E2 // 2274 - SYS___RESET_EXCEPTION_HANDLER = 0x8E3 // 2275 - SYS___VHM_EVENT = 0x8E4 // 2276 - SYS___ABS_H = 0x8E6 // 2278 - SYS___ABSF_H = 0x8E7 // 2279 - SYS___ABSL_H = 0x8E8 // 2280 - SYS___ACOS_H = 0x8E9 // 2281 - SYS___ACOSF_H = 0x8EA // 2282 - SYS___ACOSL_H = 0x8EB // 2283 - SYS___ACOSH_H = 0x8EC // 2284 - SYS___ASIN_H = 0x8ED // 2285 - SYS___ASINF_H = 0x8EE // 2286 - SYS___ASINL_H = 0x8EF // 2287 - SYS___ASINH_H = 0x8F0 // 2288 - SYS___ATAN_H = 0x8F1 // 2289 - SYS___ATANF_H = 0x8F2 // 2290 - SYS___ATANL_H = 0x8F3 // 2291 - SYS___ATANH_H = 0x8F4 // 2292 - SYS___ATANHF_H = 0x8F5 // 2293 - SYS___ATANHL_H = 0x8F6 // 2294 - SYS___ATAN2_H = 0x8F7 // 2295 - SYS___ATAN2F_H = 0x8F8 // 2296 - SYS___ATAN2L_H = 0x8F9 // 2297 - SYS___CBRT_H = 0x8FA // 2298 - SYS___COPYSIGNF_H = 0x8FB // 2299 - SYS___COPYSIGNL_H = 0x8FC // 2300 - SYS___COS_H = 0x8FD // 2301 - SYS___COSF_H = 0x8FE // 2302 - SYS___COSL_H = 0x8FF // 2303 - SYS___COSHF_H = 0x900 // 2304 - SYS___COSHL_H = 0x901 // 2305 - SYS___COTAN_H = 0x902 // 2306 - SYS___COTANF_H = 0x903 // 2307 - SYS___COTANL_H = 0x904 // 2308 - SYS___ERF_H = 0x905 // 2309 - SYS___ERFF_H = 0x906 // 2310 - SYS___ERFL_H = 0x907 // 2311 - SYS___ERFC_H = 0x908 // 2312 - SYS___ERFCF_H = 0x909 // 2313 - SYS___ERFCL_H = 0x90A // 2314 - SYS___EXP_H = 0x90B // 2315 - SYS___EXPF_H = 0x90C // 2316 - SYS___EXPL_H = 0x90D // 2317 - SYS___EXPM1_H = 0x90E // 2318 - SYS___FDIM_H = 0x90F // 2319 - SYS___FDIMF_H = 0x910 // 2320 - SYS___FDIML_H = 0x911 // 2321 - SYS___FMOD_H = 0x912 // 2322 - SYS___FMODF_H = 0x913 // 2323 - SYS___FMODL_H = 0x914 // 2324 - SYS___GAMMA_H = 0x915 // 2325 - SYS___HYPOT_H = 0x916 // 2326 - SYS___ILOGB_H = 0x917 // 2327 - SYS___LGAMMA_H = 0x918 // 2328 - SYS___LGAMMAF_H = 0x919 // 2329 - SYS___LOG_H = 0x91A // 2330 - SYS___LOGF_H = 0x91B // 2331 - SYS___LOGL_H = 0x91C // 2332 - SYS___LOGB_H = 0x91D // 2333 - SYS___LOG2_H = 0x91E // 2334 - SYS___LOG2F_H = 0x91F // 2335 - SYS___LOG2L_H = 0x920 // 2336 - SYS___LOG1P_H = 0x921 // 2337 - SYS___LOG10_H = 0x922 // 2338 - SYS___LOG10F_H = 0x923 // 2339 - SYS___LOG10L_H = 0x924 // 2340 - SYS___LROUND_H = 0x925 // 2341 - SYS___LROUNDF_H = 0x926 // 2342 - SYS___NEXTAFTER_H = 0x927 // 2343 - SYS___POW_H = 0x928 // 2344 - SYS___POWF_H = 0x929 // 2345 - SYS___POWL_H = 0x92A // 2346 - SYS___REMAINDER_H = 0x92B // 2347 - SYS___RINT_H = 0x92C // 2348 - SYS___SCALB_H = 0x92D // 2349 - SYS___SIN_H = 0x92E // 2350 - SYS___SINF_H = 0x92F // 2351 - SYS___SINL_H = 0x930 // 2352 - SYS___SINH_H = 0x931 // 2353 - SYS___SINHF_H = 0x932 // 2354 - SYS___SINHL_H = 0x933 // 2355 - SYS___SQRT_H = 0x934 // 2356 - SYS___SQRTF_H = 0x935 // 2357 - SYS___SQRTL_H = 0x936 // 2358 - SYS___TAN_H = 0x937 // 2359 - SYS___TANF_H = 0x938 // 2360 - SYS___TANL_H = 0x939 // 2361 - SYS___TANH_H = 0x93A // 2362 - SYS___TANHF_H = 0x93B // 2363 - SYS___TANHL_H = 0x93C // 2364 - SYS___TGAMMA_H = 0x93D // 2365 - SYS___TGAMMAF_H = 0x93E // 2366 - SYS___TRUNC_H = 0x93F // 2367 - SYS___TRUNCF_H = 0x940 // 2368 - SYS___TRUNCL_H = 0x941 // 2369 - SYS___COSH_H = 0x942 // 2370 - SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 // 2371 - SYS_VFSCANF = 0x944 // 2372 - SYS_VSCANF = 0x946 // 2374 - SYS_VSSCANF = 0x948 // 2376 - SYS_VFWSCANF = 0x94A // 2378 - SYS_VWSCANF = 0x94C // 2380 - SYS_VSWSCANF = 0x94E // 2382 - SYS_IMAXABS = 0x950 // 2384 - SYS_IMAXDIV = 0x951 // 2385 - SYS_STRTOIMAX = 0x952 // 2386 - SYS_STRTOUMAX = 0x953 // 2387 - SYS_WCSTOIMAX = 0x954 // 2388 - SYS_WCSTOUMAX = 0x955 // 2389 - SYS_ATOLL = 0x956 // 2390 - SYS_STRTOF = 0x957 // 2391 - SYS_STRTOLD = 0x958 // 2392 - SYS_WCSTOF = 0x959 // 2393 - SYS_WCSTOLD = 0x95A // 2394 - SYS_INET6_RTH_SPACE = 0x95B // 2395 - SYS_INET6_RTH_INIT = 0x95C // 2396 - SYS_INET6_RTH_ADD = 0x95D // 2397 - SYS_INET6_RTH_REVERSE = 0x95E // 2398 - SYS_INET6_RTH_SEGMENTS = 0x95F // 2399 - SYS_INET6_RTH_GETADDR = 0x960 // 2400 - SYS_INET6_OPT_INIT = 0x961 // 2401 - SYS_INET6_OPT_APPEND = 0x962 // 2402 - SYS_INET6_OPT_FINISH = 0x963 // 2403 - SYS_INET6_OPT_SET_VAL = 0x964 // 2404 - SYS_INET6_OPT_NEXT = 0x965 // 2405 - SYS_INET6_OPT_FIND = 0x966 // 2406 - SYS_INET6_OPT_GET_VAL = 0x967 // 2407 - SYS___POW_I = 0x987 // 2439 - SYS___POW_I_B = 0x988 // 2440 - SYS___POW_I_H = 0x989 // 2441 - SYS___POW_II = 0x98A // 2442 - SYS___POW_II_B = 0x98B // 2443 - SYS___POW_II_H = 0x98C // 2444 - SYS_CABS = 0x98E // 2446 - SYS___CABS_B = 0x98F // 2447 - SYS___CABS_H = 0x990 // 2448 - SYS_CABSF = 0x991 // 2449 - SYS___CABSF_B = 0x992 // 2450 - SYS___CABSF_H = 0x993 // 2451 - SYS_CABSL = 0x994 // 2452 - SYS___CABSL_B = 0x995 // 2453 - SYS___CABSL_H = 0x996 // 2454 - SYS_CACOS = 0x997 // 2455 - SYS___CACOS_B = 0x998 // 2456 - SYS___CACOS_H = 0x999 // 2457 - SYS_CACOSF = 0x99A // 2458 - SYS___CACOSF_B = 0x99B // 2459 - SYS___CACOSF_H = 0x99C // 2460 - SYS_CACOSL = 0x99D // 2461 - SYS___CACOSL_B = 0x99E // 2462 - SYS___CACOSL_H = 0x99F // 2463 - SYS_CACOSH = 0x9A0 // 2464 - SYS___CACOSH_B = 0x9A1 // 2465 - SYS___CACOSH_H = 0x9A2 // 2466 - SYS_CACOSHF = 0x9A3 // 2467 - SYS___CACOSHF_B = 0x9A4 // 2468 - SYS___CACOSHF_H = 0x9A5 // 2469 - SYS_CACOSHL = 0x9A6 // 2470 - SYS___CACOSHL_B = 0x9A7 // 2471 - SYS___CACOSHL_H = 0x9A8 // 2472 - SYS_CARG = 0x9A9 // 2473 - SYS___CARG_B = 0x9AA // 2474 - SYS___CARG_H = 0x9AB // 2475 - SYS_CARGF = 0x9AC // 2476 - SYS___CARGF_B = 0x9AD // 2477 - SYS___CARGF_H = 0x9AE // 2478 - SYS_CARGL = 0x9AF // 2479 - SYS___CARGL_B = 0x9B0 // 2480 - SYS___CARGL_H = 0x9B1 // 2481 - SYS_CASIN = 0x9B2 // 2482 - SYS___CASIN_B = 0x9B3 // 2483 - SYS___CASIN_H = 0x9B4 // 2484 - SYS_CASINF = 0x9B5 // 2485 - SYS___CASINF_B = 0x9B6 // 2486 - SYS___CASINF_H = 0x9B7 // 2487 - SYS_CASINL = 0x9B8 // 2488 - SYS___CASINL_B = 0x9B9 // 2489 - SYS___CASINL_H = 0x9BA // 2490 - SYS_CASINH = 0x9BB // 2491 - SYS___CASINH_B = 0x9BC // 2492 - SYS___CASINH_H = 0x9BD // 2493 - SYS_CASINHF = 0x9BE // 2494 - SYS___CASINHF_B = 0x9BF // 2495 - SYS___CASINHF_H = 0x9C0 // 2496 - SYS_CASINHL = 0x9C1 // 2497 - SYS___CASINHL_B = 0x9C2 // 2498 - SYS___CASINHL_H = 0x9C3 // 2499 - SYS_CATAN = 0x9C4 // 2500 - SYS___CATAN_B = 0x9C5 // 2501 - SYS___CATAN_H = 0x9C6 // 2502 - SYS_CATANF = 0x9C7 // 2503 - SYS___CATANF_B = 0x9C8 // 2504 - SYS___CATANF_H = 0x9C9 // 2505 - SYS_CATANL = 0x9CA // 2506 - SYS___CATANL_B = 0x9CB // 2507 - SYS___CATANL_H = 0x9CC // 2508 - SYS_CATANH = 0x9CD // 2509 - SYS___CATANH_B = 0x9CE // 2510 - SYS___CATANH_H = 0x9CF // 2511 - SYS_CATANHF = 0x9D0 // 2512 - SYS___CATANHF_B = 0x9D1 // 2513 - SYS___CATANHF_H = 0x9D2 // 2514 - SYS_CATANHL = 0x9D3 // 2515 - SYS___CATANHL_B = 0x9D4 // 2516 - SYS___CATANHL_H = 0x9D5 // 2517 - SYS_CCOS = 0x9D6 // 2518 - SYS___CCOS_B = 0x9D7 // 2519 - SYS___CCOS_H = 0x9D8 // 2520 - SYS_CCOSF = 0x9D9 // 2521 - SYS___CCOSF_B = 0x9DA // 2522 - SYS___CCOSF_H = 0x9DB // 2523 - SYS_CCOSL = 0x9DC // 2524 - SYS___CCOSL_B = 0x9DD // 2525 - SYS___CCOSL_H = 0x9DE // 2526 - SYS_CCOSH = 0x9DF // 2527 - SYS___CCOSH_B = 0x9E0 // 2528 - SYS___CCOSH_H = 0x9E1 // 2529 - SYS_CCOSHF = 0x9E2 // 2530 - SYS___CCOSHF_B = 0x9E3 // 2531 - SYS___CCOSHF_H = 0x9E4 // 2532 - SYS_CCOSHL = 0x9E5 // 2533 - SYS___CCOSHL_B = 0x9E6 // 2534 - SYS___CCOSHL_H = 0x9E7 // 2535 - SYS_CEXP = 0x9E8 // 2536 - SYS___CEXP_B = 0x9E9 // 2537 - SYS___CEXP_H = 0x9EA // 2538 - SYS_CEXPF = 0x9EB // 2539 - SYS___CEXPF_B = 0x9EC // 2540 - SYS___CEXPF_H = 0x9ED // 2541 - SYS_CEXPL = 0x9EE // 2542 - SYS___CEXPL_B = 0x9EF // 2543 - SYS___CEXPL_H = 0x9F0 // 2544 - SYS_CIMAG = 0x9F1 // 2545 - SYS___CIMAG_B = 0x9F2 // 2546 - SYS___CIMAG_H = 0x9F3 // 2547 - SYS_CIMAGF = 0x9F4 // 2548 - SYS___CIMAGF_B = 0x9F5 // 2549 - SYS___CIMAGF_H = 0x9F6 // 2550 - SYS_CIMAGL = 0x9F7 // 2551 - SYS___CIMAGL_B = 0x9F8 // 2552 - SYS___CIMAGL_H = 0x9F9 // 2553 - SYS___CLOG = 0x9FA // 2554 - SYS___CLOG_B = 0x9FB // 2555 - SYS___CLOG_H = 0x9FC // 2556 - SYS_CLOGF = 0x9FD // 2557 - SYS___CLOGF_B = 0x9FE // 2558 - SYS___CLOGF_H = 0x9FF // 2559 - SYS_CLOGL = 0xA00 // 2560 - SYS___CLOGL_B = 0xA01 // 2561 - SYS___CLOGL_H = 0xA02 // 2562 - SYS_CONJ = 0xA03 // 2563 - SYS___CONJ_B = 0xA04 // 2564 - SYS___CONJ_H = 0xA05 // 2565 - SYS_CONJF = 0xA06 // 2566 - SYS___CONJF_B = 0xA07 // 2567 - SYS___CONJF_H = 0xA08 // 2568 - SYS_CONJL = 0xA09 // 2569 - SYS___CONJL_B = 0xA0A // 2570 - SYS___CONJL_H = 0xA0B // 2571 - SYS_CPOW = 0xA0C // 2572 - SYS___CPOW_B = 0xA0D // 2573 - SYS___CPOW_H = 0xA0E // 2574 - SYS_CPOWF = 0xA0F // 2575 - SYS___CPOWF_B = 0xA10 // 2576 - SYS___CPOWF_H = 0xA11 // 2577 - SYS_CPOWL = 0xA12 // 2578 - SYS___CPOWL_B = 0xA13 // 2579 - SYS___CPOWL_H = 0xA14 // 2580 - SYS_CPROJ = 0xA15 // 2581 - SYS___CPROJ_B = 0xA16 // 2582 - SYS___CPROJ_H = 0xA17 // 2583 - SYS_CPROJF = 0xA18 // 2584 - SYS___CPROJF_B = 0xA19 // 2585 - SYS___CPROJF_H = 0xA1A // 2586 - SYS_CPROJL = 0xA1B // 2587 - SYS___CPROJL_B = 0xA1C // 2588 - SYS___CPROJL_H = 0xA1D // 2589 - SYS_CREAL = 0xA1E // 2590 - SYS___CREAL_B = 0xA1F // 2591 - SYS___CREAL_H = 0xA20 // 2592 - SYS_CREALF = 0xA21 // 2593 - SYS___CREALF_B = 0xA22 // 2594 - SYS___CREALF_H = 0xA23 // 2595 - SYS_CREALL = 0xA24 // 2596 - SYS___CREALL_B = 0xA25 // 2597 - SYS___CREALL_H = 0xA26 // 2598 - SYS_CSIN = 0xA27 // 2599 - SYS___CSIN_B = 0xA28 // 2600 - SYS___CSIN_H = 0xA29 // 2601 - SYS_CSINF = 0xA2A // 2602 - SYS___CSINF_B = 0xA2B // 2603 - SYS___CSINF_H = 0xA2C // 2604 - SYS_CSINL = 0xA2D // 2605 - SYS___CSINL_B = 0xA2E // 2606 - SYS___CSINL_H = 0xA2F // 2607 - SYS_CSINH = 0xA30 // 2608 - SYS___CSINH_B = 0xA31 // 2609 - SYS___CSINH_H = 0xA32 // 2610 - SYS_CSINHF = 0xA33 // 2611 - SYS___CSINHF_B = 0xA34 // 2612 - SYS___CSINHF_H = 0xA35 // 2613 - SYS_CSINHL = 0xA36 // 2614 - SYS___CSINHL_B = 0xA37 // 2615 - SYS___CSINHL_H = 0xA38 // 2616 - SYS_CSQRT = 0xA39 // 2617 - SYS___CSQRT_B = 0xA3A // 2618 - SYS___CSQRT_H = 0xA3B // 2619 - SYS_CSQRTF = 0xA3C // 2620 - SYS___CSQRTF_B = 0xA3D // 2621 - SYS___CSQRTF_H = 0xA3E // 2622 - SYS_CSQRTL = 0xA3F // 2623 - SYS___CSQRTL_B = 0xA40 // 2624 - SYS___CSQRTL_H = 0xA41 // 2625 - SYS_CTAN = 0xA42 // 2626 - SYS___CTAN_B = 0xA43 // 2627 - SYS___CTAN_H = 0xA44 // 2628 - SYS_CTANF = 0xA45 // 2629 - SYS___CTANF_B = 0xA46 // 2630 - SYS___CTANF_H = 0xA47 // 2631 - SYS_CTANL = 0xA48 // 2632 - SYS___CTANL_B = 0xA49 // 2633 - SYS___CTANL_H = 0xA4A // 2634 - SYS_CTANH = 0xA4B // 2635 - SYS___CTANH_B = 0xA4C // 2636 - SYS___CTANH_H = 0xA4D // 2637 - SYS_CTANHF = 0xA4E // 2638 - SYS___CTANHF_B = 0xA4F // 2639 - SYS___CTANHF_H = 0xA50 // 2640 - SYS_CTANHL = 0xA51 // 2641 - SYS___CTANHL_B = 0xA52 // 2642 - SYS___CTANHL_H = 0xA53 // 2643 - SYS___ACOSHF_H = 0xA54 // 2644 - SYS___ACOSHL_H = 0xA55 // 2645 - SYS___ASINHF_H = 0xA56 // 2646 - SYS___ASINHL_H = 0xA57 // 2647 - SYS___CBRTF_H = 0xA58 // 2648 - SYS___CBRTL_H = 0xA59 // 2649 - SYS___COPYSIGN_B = 0xA5A // 2650 - SYS___EXPM1F_H = 0xA5B // 2651 - SYS___EXPM1L_H = 0xA5C // 2652 - SYS___EXP2_H = 0xA5D // 2653 - SYS___EXP2F_H = 0xA5E // 2654 - SYS___EXP2L_H = 0xA5F // 2655 - SYS___LOG1PF_H = 0xA60 // 2656 - SYS___LOG1PL_H = 0xA61 // 2657 - SYS___LGAMMAL_H = 0xA62 // 2658 - SYS_FMA = 0xA63 // 2659 - SYS___FMA_B = 0xA64 // 2660 - SYS___FMA_H = 0xA65 // 2661 - SYS_FMAF = 0xA66 // 2662 - SYS___FMAF_B = 0xA67 // 2663 - SYS___FMAF_H = 0xA68 // 2664 - SYS_FMAL = 0xA69 // 2665 - SYS___FMAL_B = 0xA6A // 2666 - SYS___FMAL_H = 0xA6B // 2667 - SYS_FMAX = 0xA6C // 2668 - SYS___FMAX_B = 0xA6D // 2669 - SYS___FMAX_H = 0xA6E // 2670 - SYS_FMAXF = 0xA6F // 2671 - SYS___FMAXF_B = 0xA70 // 2672 - SYS___FMAXF_H = 0xA71 // 2673 - SYS_FMAXL = 0xA72 // 2674 - SYS___FMAXL_B = 0xA73 // 2675 - SYS___FMAXL_H = 0xA74 // 2676 - SYS_FMIN = 0xA75 // 2677 - SYS___FMIN_B = 0xA76 // 2678 - SYS___FMIN_H = 0xA77 // 2679 - SYS_FMINF = 0xA78 // 2680 - SYS___FMINF_B = 0xA79 // 2681 - SYS___FMINF_H = 0xA7A // 2682 - SYS_FMINL = 0xA7B // 2683 - SYS___FMINL_B = 0xA7C // 2684 - SYS___FMINL_H = 0xA7D // 2685 - SYS_ILOGBF = 0xA7E // 2686 - SYS___ILOGBF_B = 0xA7F // 2687 - SYS___ILOGBF_H = 0xA80 // 2688 - SYS_ILOGBL = 0xA81 // 2689 - SYS___ILOGBL_B = 0xA82 // 2690 - SYS___ILOGBL_H = 0xA83 // 2691 - SYS_LLRINT = 0xA84 // 2692 - SYS___LLRINT_B = 0xA85 // 2693 - SYS___LLRINT_H = 0xA86 // 2694 - SYS_LLRINTF = 0xA87 // 2695 - SYS___LLRINTF_B = 0xA88 // 2696 - SYS___LLRINTF_H = 0xA89 // 2697 - SYS_LLRINTL = 0xA8A // 2698 - SYS___LLRINTL_B = 0xA8B // 2699 - SYS___LLRINTL_H = 0xA8C // 2700 - SYS_LLROUND = 0xA8D // 2701 - SYS___LLROUND_B = 0xA8E // 2702 - SYS___LLROUND_H = 0xA8F // 2703 - SYS_LLROUNDF = 0xA90 // 2704 - SYS___LLROUNDF_B = 0xA91 // 2705 - SYS___LLROUNDF_H = 0xA92 // 2706 - SYS_LLROUNDL = 0xA93 // 2707 - SYS___LLROUNDL_B = 0xA94 // 2708 - SYS___LLROUNDL_H = 0xA95 // 2709 - SYS_LOGBF = 0xA96 // 2710 - SYS___LOGBF_B = 0xA97 // 2711 - SYS___LOGBF_H = 0xA98 // 2712 - SYS_LOGBL = 0xA99 // 2713 - SYS___LOGBL_B = 0xA9A // 2714 - SYS___LOGBL_H = 0xA9B // 2715 - SYS_LRINT = 0xA9C // 2716 - SYS___LRINT_B = 0xA9D // 2717 - SYS___LRINT_H = 0xA9E // 2718 - SYS_LRINTF = 0xA9F // 2719 - SYS___LRINTF_B = 0xAA0 // 2720 - SYS___LRINTF_H = 0xAA1 // 2721 - SYS_LRINTL = 0xAA2 // 2722 - SYS___LRINTL_B = 0xAA3 // 2723 - SYS___LRINTL_H = 0xAA4 // 2724 - SYS_LROUNDL = 0xAA5 // 2725 - SYS___LROUNDL_B = 0xAA6 // 2726 - SYS___LROUNDL_H = 0xAA7 // 2727 - SYS_NAN = 0xAA8 // 2728 - SYS___NAN_B = 0xAA9 // 2729 - SYS_NANF = 0xAAA // 2730 - SYS___NANF_B = 0xAAB // 2731 - SYS_NANL = 0xAAC // 2732 - SYS___NANL_B = 0xAAD // 2733 - SYS_NEARBYINT = 0xAAE // 2734 - SYS___NEARBYINT_B = 0xAAF // 2735 - SYS___NEARBYINT_H = 0xAB0 // 2736 - SYS_NEARBYINTF = 0xAB1 // 2737 - SYS___NEARBYINTF_B = 0xAB2 // 2738 - SYS___NEARBYINTF_H = 0xAB3 // 2739 - SYS_NEARBYINTL = 0xAB4 // 2740 - SYS___NEARBYINTL_B = 0xAB5 // 2741 - SYS___NEARBYINTL_H = 0xAB6 // 2742 - SYS_NEXTAFTERF = 0xAB7 // 2743 - SYS___NEXTAFTERF_B = 0xAB8 // 2744 - SYS___NEXTAFTERF_H = 0xAB9 // 2745 - SYS_NEXTAFTERL = 0xABA // 2746 - SYS___NEXTAFTERL_B = 0xABB // 2747 - SYS___NEXTAFTERL_H = 0xABC // 2748 - SYS_NEXTTOWARD = 0xABD // 2749 - SYS___NEXTTOWARD_B = 0xABE // 2750 - SYS___NEXTTOWARD_H = 0xABF // 2751 - SYS_NEXTTOWARDF = 0xAC0 // 2752 - SYS___NEXTTOWARDF_B = 0xAC1 // 2753 - SYS___NEXTTOWARDF_H = 0xAC2 // 2754 - SYS_NEXTTOWARDL = 0xAC3 // 2755 - SYS___NEXTTOWARDL_B = 0xAC4 // 2756 - SYS___NEXTTOWARDL_H = 0xAC5 // 2757 - SYS___REMAINDERF_H = 0xAC6 // 2758 - SYS___REMAINDERL_H = 0xAC7 // 2759 - SYS___REMQUO_H = 0xAC8 // 2760 - SYS___REMQUOF_H = 0xAC9 // 2761 - SYS___REMQUOL_H = 0xACA // 2762 - SYS_RINTF = 0xACB // 2763 - SYS___RINTF_B = 0xACC // 2764 - SYS_RINTL = 0xACD // 2765 - SYS___RINTL_B = 0xACE // 2766 - SYS_ROUND = 0xACF // 2767 - SYS___ROUND_B = 0xAD0 // 2768 - SYS___ROUND_H = 0xAD1 // 2769 - SYS_ROUNDF = 0xAD2 // 2770 - SYS___ROUNDF_B = 0xAD3 // 2771 - SYS___ROUNDF_H = 0xAD4 // 2772 - SYS_ROUNDL = 0xAD5 // 2773 - SYS___ROUNDL_B = 0xAD6 // 2774 - SYS___ROUNDL_H = 0xAD7 // 2775 - SYS_SCALBLN = 0xAD8 // 2776 - SYS___SCALBLN_B = 0xAD9 // 2777 - SYS___SCALBLN_H = 0xADA // 2778 - SYS_SCALBLNF = 0xADB // 2779 - SYS___SCALBLNF_B = 0xADC // 2780 - SYS___SCALBLNF_H = 0xADD // 2781 - SYS_SCALBLNL = 0xADE // 2782 - SYS___SCALBLNL_B = 0xADF // 2783 - SYS___SCALBLNL_H = 0xAE0 // 2784 - SYS___SCALBN_B = 0xAE1 // 2785 - SYS___SCALBN_H = 0xAE2 // 2786 - SYS_SCALBNF = 0xAE3 // 2787 - SYS___SCALBNF_B = 0xAE4 // 2788 - SYS___SCALBNF_H = 0xAE5 // 2789 - SYS_SCALBNL = 0xAE6 // 2790 - SYS___SCALBNL_B = 0xAE7 // 2791 - SYS___SCALBNL_H = 0xAE8 // 2792 - SYS___TGAMMAL_H = 0xAE9 // 2793 - SYS_FECLEAREXCEPT = 0xAEA // 2794 - SYS_FEGETENV = 0xAEB // 2795 - SYS_FEGETEXCEPTFLAG = 0xAEC // 2796 - SYS_FEGETROUND = 0xAED // 2797 - SYS_FEHOLDEXCEPT = 0xAEE // 2798 - SYS_FERAISEEXCEPT = 0xAEF // 2799 - SYS_FESETENV = 0xAF0 // 2800 - SYS_FESETEXCEPTFLAG = 0xAF1 // 2801 - SYS_FESETROUND = 0xAF2 // 2802 - SYS_FETESTEXCEPT = 0xAF3 // 2803 - SYS_FEUPDATEENV = 0xAF4 // 2804 - SYS___COPYSIGN_H = 0xAF5 // 2805 - SYS___HYPOTF_H = 0xAF6 // 2806 - SYS___HYPOTL_H = 0xAF7 // 2807 - SYS___CLASS = 0xAFA // 2810 - SYS___CLASS_B = 0xAFB // 2811 - SYS___CLASS_H = 0xAFC // 2812 - SYS___ISBLANK_A = 0xB2E // 2862 - SYS___ISWBLANK_A = 0xB2F // 2863 - SYS___LROUND_FIXUP = 0xB30 // 2864 - SYS___LROUNDF_FIXUP = 0xB31 // 2865 - SYS_SCHED_YIELD = 0xB32 // 2866 - SYS_STRERROR_R = 0xB33 // 2867 - SYS_UNSETENV = 0xB34 // 2868 - SYS___LGAMMA_H_C99 = 0xB38 // 2872 - SYS___LGAMMA_B_C99 = 0xB39 // 2873 - SYS___LGAMMA_R_C99 = 0xB3A // 2874 - SYS___FTELL2 = 0xB3B // 2875 - SYS___FSEEK2 = 0xB3C // 2876 - SYS___STATIC_REINIT = 0xB3D // 2877 - SYS_PTHREAD_ATTR_GETSTACK = 0xB3E // 2878 - SYS_PTHREAD_ATTR_SETSTACK = 0xB3F // 2879 - SYS___TGAMMA_H_C99 = 0xB78 // 2936 - SYS___TGAMMAF_H_C99 = 0xB79 // 2937 - SYS___LE_TRACEBACK = 0xB7A // 2938 - SYS___MUST_STAY_CLEAN = 0xB7C // 2940 - SYS___O_ENV = 0xB7D // 2941 - SYS_ACOSD32 = 0xB7E // 2942 - SYS_ACOSD64 = 0xB7F // 2943 - SYS_ACOSD128 = 0xB80 // 2944 - SYS_ACOSHD32 = 0xB81 // 2945 - SYS_ACOSHD64 = 0xB82 // 2946 - SYS_ACOSHD128 = 0xB83 // 2947 - SYS_ASIND32 = 0xB84 // 2948 - SYS_ASIND64 = 0xB85 // 2949 - SYS_ASIND128 = 0xB86 // 2950 - SYS_ASINHD32 = 0xB87 // 2951 - SYS_ASINHD64 = 0xB88 // 2952 - SYS_ASINHD128 = 0xB89 // 2953 - SYS_ATAND32 = 0xB8A // 2954 - SYS_ATAND64 = 0xB8B // 2955 - SYS_ATAND128 = 0xB8C // 2956 - SYS_ATAN2D32 = 0xB8D // 2957 - SYS_ATAN2D64 = 0xB8E // 2958 - SYS_ATAN2D128 = 0xB8F // 2959 - SYS_ATANHD32 = 0xB90 // 2960 - SYS_ATANHD64 = 0xB91 // 2961 - SYS_ATANHD128 = 0xB92 // 2962 - SYS_CBRTD32 = 0xB93 // 2963 - SYS_CBRTD64 = 0xB94 // 2964 - SYS_CBRTD128 = 0xB95 // 2965 - SYS_CEILD32 = 0xB96 // 2966 - SYS_CEILD64 = 0xB97 // 2967 - SYS_CEILD128 = 0xB98 // 2968 - SYS___CLASS2 = 0xB99 // 2969 - SYS___CLASS2_B = 0xB9A // 2970 - SYS___CLASS2_H = 0xB9B // 2971 - SYS_COPYSIGND32 = 0xB9C // 2972 - SYS_COPYSIGND64 = 0xB9D // 2973 - SYS_COPYSIGND128 = 0xB9E // 2974 - SYS_COSD32 = 0xB9F // 2975 - SYS_COSD64 = 0xBA0 // 2976 - SYS_COSD128 = 0xBA1 // 2977 - SYS_COSHD32 = 0xBA2 // 2978 - SYS_COSHD64 = 0xBA3 // 2979 - SYS_COSHD128 = 0xBA4 // 2980 - SYS_ERFD32 = 0xBA5 // 2981 - SYS_ERFD64 = 0xBA6 // 2982 - SYS_ERFD128 = 0xBA7 // 2983 - SYS_ERFCD32 = 0xBA8 // 2984 - SYS_ERFCD64 = 0xBA9 // 2985 - SYS_ERFCD128 = 0xBAA // 2986 - SYS_EXPD32 = 0xBAB // 2987 - SYS_EXPD64 = 0xBAC // 2988 - SYS_EXPD128 = 0xBAD // 2989 - SYS_EXP2D32 = 0xBAE // 2990 - SYS_EXP2D64 = 0xBAF // 2991 - SYS_EXP2D128 = 0xBB0 // 2992 - SYS_EXPM1D32 = 0xBB1 // 2993 - SYS_EXPM1D64 = 0xBB2 // 2994 - SYS_EXPM1D128 = 0xBB3 // 2995 - SYS_FABSD32 = 0xBB4 // 2996 - SYS_FABSD64 = 0xBB5 // 2997 - SYS_FABSD128 = 0xBB6 // 2998 - SYS_FDIMD32 = 0xBB7 // 2999 - SYS_FDIMD64 = 0xBB8 // 3000 - SYS_FDIMD128 = 0xBB9 // 3001 - SYS_FE_DEC_GETROUND = 0xBBA // 3002 - SYS_FE_DEC_SETROUND = 0xBBB // 3003 - SYS_FLOORD32 = 0xBBC // 3004 - SYS_FLOORD64 = 0xBBD // 3005 - SYS_FLOORD128 = 0xBBE // 3006 - SYS_FMAD32 = 0xBBF // 3007 - SYS_FMAD64 = 0xBC0 // 3008 - SYS_FMAD128 = 0xBC1 // 3009 - SYS_FMAXD32 = 0xBC2 // 3010 - SYS_FMAXD64 = 0xBC3 // 3011 - SYS_FMAXD128 = 0xBC4 // 3012 - SYS_FMIND32 = 0xBC5 // 3013 - SYS_FMIND64 = 0xBC6 // 3014 - SYS_FMIND128 = 0xBC7 // 3015 - SYS_FMODD32 = 0xBC8 // 3016 - SYS_FMODD64 = 0xBC9 // 3017 - SYS_FMODD128 = 0xBCA // 3018 - SYS___FP_CAST_D = 0xBCB // 3019 - SYS_FREXPD32 = 0xBCC // 3020 - SYS_FREXPD64 = 0xBCD // 3021 - SYS_FREXPD128 = 0xBCE // 3022 - SYS_HYPOTD32 = 0xBCF // 3023 - SYS_HYPOTD64 = 0xBD0 // 3024 - SYS_HYPOTD128 = 0xBD1 // 3025 - SYS_ILOGBD32 = 0xBD2 // 3026 - SYS_ILOGBD64 = 0xBD3 // 3027 - SYS_ILOGBD128 = 0xBD4 // 3028 - SYS_LDEXPD32 = 0xBD5 // 3029 - SYS_LDEXPD64 = 0xBD6 // 3030 - SYS_LDEXPD128 = 0xBD7 // 3031 - SYS_LGAMMAD32 = 0xBD8 // 3032 - SYS_LGAMMAD64 = 0xBD9 // 3033 - SYS_LGAMMAD128 = 0xBDA // 3034 - SYS_LLRINTD32 = 0xBDB // 3035 - SYS_LLRINTD64 = 0xBDC // 3036 - SYS_LLRINTD128 = 0xBDD // 3037 - SYS_LLROUNDD32 = 0xBDE // 3038 - SYS_LLROUNDD64 = 0xBDF // 3039 - SYS_LLROUNDD128 = 0xBE0 // 3040 - SYS_LOGD32 = 0xBE1 // 3041 - SYS_LOGD64 = 0xBE2 // 3042 - SYS_LOGD128 = 0xBE3 // 3043 - SYS_LOG10D32 = 0xBE4 // 3044 - SYS_LOG10D64 = 0xBE5 // 3045 - SYS_LOG10D128 = 0xBE6 // 3046 - SYS_LOG1PD32 = 0xBE7 // 3047 - SYS_LOG1PD64 = 0xBE8 // 3048 - SYS_LOG1PD128 = 0xBE9 // 3049 - SYS_LOG2D32 = 0xBEA // 3050 - SYS_LOG2D64 = 0xBEB // 3051 - SYS_LOG2D128 = 0xBEC // 3052 - SYS_LOGBD32 = 0xBED // 3053 - SYS_LOGBD64 = 0xBEE // 3054 - SYS_LOGBD128 = 0xBEF // 3055 - SYS_LRINTD32 = 0xBF0 // 3056 - SYS_LRINTD64 = 0xBF1 // 3057 - SYS_LRINTD128 = 0xBF2 // 3058 - SYS_LROUNDD32 = 0xBF3 // 3059 - SYS_LROUNDD64 = 0xBF4 // 3060 - SYS_LROUNDD128 = 0xBF5 // 3061 - SYS_MODFD32 = 0xBF6 // 3062 - SYS_MODFD64 = 0xBF7 // 3063 - SYS_MODFD128 = 0xBF8 // 3064 - SYS_NAND32 = 0xBF9 // 3065 - SYS_NAND64 = 0xBFA // 3066 - SYS_NAND128 = 0xBFB // 3067 - SYS_NEARBYINTD32 = 0xBFC // 3068 - SYS_NEARBYINTD64 = 0xBFD // 3069 - SYS_NEARBYINTD128 = 0xBFE // 3070 - SYS_NEXTAFTERD32 = 0xBFF // 3071 - SYS_NEXTAFTERD64 = 0xC00 // 3072 - SYS_NEXTAFTERD128 = 0xC01 // 3073 - SYS_NEXTTOWARDD32 = 0xC02 // 3074 - SYS_NEXTTOWARDD64 = 0xC03 // 3075 - SYS_NEXTTOWARDD128 = 0xC04 // 3076 - SYS_POWD32 = 0xC05 // 3077 - SYS_POWD64 = 0xC06 // 3078 - SYS_POWD128 = 0xC07 // 3079 - SYS_QUANTIZED32 = 0xC08 // 3080 - SYS_QUANTIZED64 = 0xC09 // 3081 - SYS_QUANTIZED128 = 0xC0A // 3082 - SYS_REMAINDERD32 = 0xC0B // 3083 - SYS_REMAINDERD64 = 0xC0C // 3084 - SYS_REMAINDERD128 = 0xC0D // 3085 - SYS___REMQUOD32 = 0xC0E // 3086 - SYS___REMQUOD64 = 0xC0F // 3087 - SYS___REMQUOD128 = 0xC10 // 3088 - SYS_RINTD32 = 0xC11 // 3089 - SYS_RINTD64 = 0xC12 // 3090 - SYS_RINTD128 = 0xC13 // 3091 - SYS_ROUNDD32 = 0xC14 // 3092 - SYS_ROUNDD64 = 0xC15 // 3093 - SYS_ROUNDD128 = 0xC16 // 3094 - SYS_SAMEQUANTUMD32 = 0xC17 // 3095 - SYS_SAMEQUANTUMD64 = 0xC18 // 3096 - SYS_SAMEQUANTUMD128 = 0xC19 // 3097 - SYS_SCALBLND32 = 0xC1A // 3098 - SYS_SCALBLND64 = 0xC1B // 3099 - SYS_SCALBLND128 = 0xC1C // 3100 - SYS_SCALBND32 = 0xC1D // 3101 - SYS_SCALBND64 = 0xC1E // 3102 - SYS_SCALBND128 = 0xC1F // 3103 - SYS_SIND32 = 0xC20 // 3104 - SYS_SIND64 = 0xC21 // 3105 - SYS_SIND128 = 0xC22 // 3106 - SYS_SINHD32 = 0xC23 // 3107 - SYS_SINHD64 = 0xC24 // 3108 - SYS_SINHD128 = 0xC25 // 3109 - SYS_SQRTD32 = 0xC26 // 3110 - SYS_SQRTD64 = 0xC27 // 3111 - SYS_SQRTD128 = 0xC28 // 3112 - SYS_STRTOD32 = 0xC29 // 3113 - SYS_STRTOD64 = 0xC2A // 3114 - SYS_STRTOD128 = 0xC2B // 3115 - SYS_TAND32 = 0xC2C // 3116 - SYS_TAND64 = 0xC2D // 3117 - SYS_TAND128 = 0xC2E // 3118 - SYS_TANHD32 = 0xC2F // 3119 - SYS_TANHD64 = 0xC30 // 3120 - SYS_TANHD128 = 0xC31 // 3121 - SYS_TGAMMAD32 = 0xC32 // 3122 - SYS_TGAMMAD64 = 0xC33 // 3123 - SYS_TGAMMAD128 = 0xC34 // 3124 - SYS_TRUNCD32 = 0xC3E // 3134 - SYS_TRUNCD64 = 0xC3F // 3135 - SYS_TRUNCD128 = 0xC40 // 3136 - SYS_WCSTOD32 = 0xC41 // 3137 - SYS_WCSTOD64 = 0xC42 // 3138 - SYS_WCSTOD128 = 0xC43 // 3139 - SYS___CODEPAGE_INFO = 0xC64 // 3172 - SYS_POSIX_OPENPT = 0xC66 // 3174 - SYS_PSELECT = 0xC67 // 3175 - SYS_SOCKATMARK = 0xC68 // 3176 - SYS_AIO_FSYNC = 0xC69 // 3177 - SYS_LIO_LISTIO = 0xC6A // 3178 - SYS___ATANPID32 = 0xC6B // 3179 - SYS___ATANPID64 = 0xC6C // 3180 - SYS___ATANPID128 = 0xC6D // 3181 - SYS___COSPID32 = 0xC6E // 3182 - SYS___COSPID64 = 0xC6F // 3183 - SYS___COSPID128 = 0xC70 // 3184 - SYS___SINPID32 = 0xC71 // 3185 - SYS___SINPID64 = 0xC72 // 3186 - SYS___SINPID128 = 0xC73 // 3187 - SYS_SETIPV4SOURCEFILTER = 0xC76 // 3190 - SYS_GETIPV4SOURCEFILTER = 0xC77 // 3191 - SYS_SETSOURCEFILTER = 0xC78 // 3192 - SYS_GETSOURCEFILTER = 0xC79 // 3193 - SYS_FWRITE_UNLOCKED = 0xC7A // 3194 - SYS_FREAD_UNLOCKED = 0xC7B // 3195 - SYS_FGETS_UNLOCKED = 0xC7C // 3196 - SYS_GETS_UNLOCKED = 0xC7D // 3197 - SYS_FPUTS_UNLOCKED = 0xC7E // 3198 - SYS_PUTS_UNLOCKED = 0xC7F // 3199 - SYS_FGETC_UNLOCKED = 0xC80 // 3200 - SYS_FPUTC_UNLOCKED = 0xC81 // 3201 - SYS_DLADDR = 0xC82 // 3202 - SYS_SHM_OPEN = 0xC8C // 3212 - SYS_SHM_UNLINK = 0xC8D // 3213 - SYS___CLASS2F = 0xC91 // 3217 - SYS___CLASS2L = 0xC92 // 3218 - SYS___CLASS2F_B = 0xC93 // 3219 - SYS___CLASS2F_H = 0xC94 // 3220 - SYS___CLASS2L_B = 0xC95 // 3221 - SYS___CLASS2L_H = 0xC96 // 3222 - SYS___CLASS2D32 = 0xC97 // 3223 - SYS___CLASS2D64 = 0xC98 // 3224 - SYS___CLASS2D128 = 0xC99 // 3225 - SYS___TOCSNAME2 = 0xC9A // 3226 - SYS___D1TOP = 0xC9B // 3227 - SYS___D2TOP = 0xC9C // 3228 - SYS___D4TOP = 0xC9D // 3229 - SYS___PTOD1 = 0xC9E // 3230 - SYS___PTOD2 = 0xC9F // 3231 - SYS___PTOD4 = 0xCA0 // 3232 - SYS_CLEARERR_UNLOCKED = 0xCA1 // 3233 - SYS_FDELREC_UNLOCKED = 0xCA2 // 3234 - SYS_FEOF_UNLOCKED = 0xCA3 // 3235 - SYS_FERROR_UNLOCKED = 0xCA4 // 3236 - SYS_FFLUSH_UNLOCKED = 0xCA5 // 3237 - SYS_FGETPOS_UNLOCKED = 0xCA6 // 3238 - SYS_FGETWC_UNLOCKED = 0xCA7 // 3239 - SYS_FGETWS_UNLOCKED = 0xCA8 // 3240 - SYS_FILENO_UNLOCKED = 0xCA9 // 3241 - SYS_FLDATA_UNLOCKED = 0xCAA // 3242 - SYS_FLOCATE_UNLOCKED = 0xCAB // 3243 - SYS_FPRINTF_UNLOCKED = 0xCAC // 3244 - SYS_FPUTWC_UNLOCKED = 0xCAD // 3245 - SYS_FPUTWS_UNLOCKED = 0xCAE // 3246 - SYS_FSCANF_UNLOCKED = 0xCAF // 3247 - SYS_FSEEK_UNLOCKED = 0xCB0 // 3248 - SYS_FSEEKO_UNLOCKED = 0xCB1 // 3249 - SYS_FSETPOS_UNLOCKED = 0xCB3 // 3251 - SYS_FTELL_UNLOCKED = 0xCB4 // 3252 - SYS_FTELLO_UNLOCKED = 0xCB5 // 3253 - SYS_FUPDATE_UNLOCKED = 0xCB7 // 3255 - SYS_FWIDE_UNLOCKED = 0xCB8 // 3256 - SYS_FWPRINTF_UNLOCKED = 0xCB9 // 3257 - SYS_FWSCANF_UNLOCKED = 0xCBA // 3258 - SYS_GETWC_UNLOCKED = 0xCBB // 3259 - SYS_GETWCHAR_UNLOCKED = 0xCBC // 3260 - SYS_PERROR_UNLOCKED = 0xCBD // 3261 - SYS_PRINTF_UNLOCKED = 0xCBE // 3262 - SYS_PUTWC_UNLOCKED = 0xCBF // 3263 - SYS_PUTWCHAR_UNLOCKED = 0xCC0 // 3264 - SYS_REWIND_UNLOCKED = 0xCC1 // 3265 - SYS_SCANF_UNLOCKED = 0xCC2 // 3266 - SYS_UNGETC_UNLOCKED = 0xCC3 // 3267 - SYS_UNGETWC_UNLOCKED = 0xCC4 // 3268 - SYS_VFPRINTF_UNLOCKED = 0xCC5 // 3269 - SYS_VFSCANF_UNLOCKED = 0xCC7 // 3271 - SYS_VFWPRINTF_UNLOCKED = 0xCC9 // 3273 - SYS_VFWSCANF_UNLOCKED = 0xCCB // 3275 - SYS_VPRINTF_UNLOCKED = 0xCCD // 3277 - SYS_VSCANF_UNLOCKED = 0xCCF // 3279 - SYS_VWPRINTF_UNLOCKED = 0xCD1 // 3281 - SYS_VWSCANF_UNLOCKED = 0xCD3 // 3283 - SYS_WPRINTF_UNLOCKED = 0xCD5 // 3285 - SYS_WSCANF_UNLOCKED = 0xCD6 // 3286 - SYS_ASCTIME64 = 0xCD7 // 3287 - SYS_ASCTIME64_R = 0xCD8 // 3288 - SYS_CTIME64 = 0xCD9 // 3289 - SYS_CTIME64_R = 0xCDA // 3290 - SYS_DIFFTIME64 = 0xCDB // 3291 - SYS_GMTIME64 = 0xCDC // 3292 - SYS_GMTIME64_R = 0xCDD // 3293 - SYS_LOCALTIME64 = 0xCDE // 3294 - SYS_LOCALTIME64_R = 0xCDF // 3295 - SYS_MKTIME64 = 0xCE0 // 3296 - SYS_TIME64 = 0xCE1 // 3297 - SYS___LOGIN_APPLID = 0xCE2 // 3298 - SYS___PASSWD_APPLID = 0xCE3 // 3299 - SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 // 3300 - SYS___GETTHENT = 0xCE5 // 3301 - SYS_FREEIFADDRS = 0xCE6 // 3302 - SYS_GETIFADDRS = 0xCE7 // 3303 - SYS_POSIX_FALLOCATE = 0xCE8 // 3304 - SYS_POSIX_MEMALIGN = 0xCE9 // 3305 - SYS_SIZEOF_ALLOC = 0xCEA // 3306 - SYS_RESIZE_ALLOC = 0xCEB // 3307 - SYS_FREAD_NOUPDATE = 0xCEC // 3308 - SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED // 3309 - SYS_FGETPOS64 = 0xCEE // 3310 - SYS_FSEEK64 = 0xCEF // 3311 - SYS_FSEEKO64 = 0xCF0 // 3312 - SYS_FSETPOS64 = 0xCF1 // 3313 - SYS_FTELL64 = 0xCF2 // 3314 - SYS_FTELLO64 = 0xCF3 // 3315 - SYS_FGETPOS64_UNLOCKED = 0xCF4 // 3316 - SYS_FSEEK64_UNLOCKED = 0xCF5 // 3317 - SYS_FSEEKO64_UNLOCKED = 0xCF6 // 3318 - SYS_FSETPOS64_UNLOCKED = 0xCF7 // 3319 - SYS_FTELL64_UNLOCKED = 0xCF8 // 3320 - SYS_FTELLO64_UNLOCKED = 0xCF9 // 3321 - SYS_FOPEN_UNLOCKED = 0xCFA // 3322 - SYS_FREOPEN_UNLOCKED = 0xCFB // 3323 - SYS_FDOPEN_UNLOCKED = 0xCFC // 3324 - SYS_TMPFILE_UNLOCKED = 0xCFD // 3325 - SYS___MOSERVICES = 0xD3D // 3389 - SYS___GETTOD = 0xD3E // 3390 - SYS_C16RTOMB = 0xD40 // 3392 - SYS_C32RTOMB = 0xD41 // 3393 - SYS_MBRTOC16 = 0xD42 // 3394 - SYS_MBRTOC32 = 0xD43 // 3395 - SYS_QUANTEXPD32 = 0xD44 // 3396 - SYS_QUANTEXPD64 = 0xD45 // 3397 - SYS_QUANTEXPD128 = 0xD46 // 3398 - SYS___LOCALE_CTL = 0xD47 // 3399 - SYS___SMF_RECORD2 = 0xD48 // 3400 - SYS_FOPEN64 = 0xD49 // 3401 - SYS_FOPEN64_UNLOCKED = 0xD4A // 3402 - SYS_FREOPEN64 = 0xD4B // 3403 - SYS_FREOPEN64_UNLOCKED = 0xD4C // 3404 - SYS_TMPFILE64 = 0xD4D // 3405 - SYS_TMPFILE64_UNLOCKED = 0xD4E // 3406 - SYS_GETDATE64 = 0xD4F // 3407 - SYS_GETTIMEOFDAY64 = 0xD50 // 3408 - SYS_BIND2ADDRSEL = 0xD59 // 3417 - SYS_INET6_IS_SRCADDR = 0xD5A // 3418 - SYS___GETGRGID1 = 0xD5B // 3419 - SYS___GETGRNAM1 = 0xD5C // 3420 - SYS___FBUFSIZE = 0xD60 // 3424 - SYS___FPENDING = 0xD61 // 3425 - SYS___FLBF = 0xD62 // 3426 - SYS___FREADABLE = 0xD63 // 3427 - SYS___FWRITABLE = 0xD64 // 3428 - SYS___FREADING = 0xD65 // 3429 - SYS___FWRITING = 0xD66 // 3430 - SYS___FSETLOCKING = 0xD67 // 3431 - SYS__FLUSHLBF = 0xD68 // 3432 - SYS___FPURGE = 0xD69 // 3433 - SYS___FREADAHEAD = 0xD6A // 3434 - SYS___FSETERR = 0xD6B // 3435 - SYS___FPENDING_UNLOCKED = 0xD6C // 3436 - SYS___FREADING_UNLOCKED = 0xD6D // 3437 - SYS___FWRITING_UNLOCKED = 0xD6E // 3438 - SYS__FLUSHLBF_UNLOCKED = 0xD6F // 3439 - SYS___FPURGE_UNLOCKED = 0xD70 // 3440 - SYS___FREADAHEAD_UNLOCKED = 0xD71 // 3441 - SYS___LE_CEEGTJS = 0xD72 // 3442 - SYS___LE_RECORD_DUMP = 0xD73 // 3443 - SYS_FSTAT64 = 0xD74 // 3444 - SYS_LSTAT64 = 0xD75 // 3445 - SYS_STAT64 = 0xD76 // 3446 - SYS___READDIR2_64 = 0xD77 // 3447 - SYS___OPEN_STAT64 = 0xD78 // 3448 - SYS_FTW64 = 0xD79 // 3449 - SYS_NFTW64 = 0xD7A // 3450 - SYS_UTIME64 = 0xD7B // 3451 - SYS_UTIMES64 = 0xD7C // 3452 - SYS___GETIPC64 = 0xD7D // 3453 - SYS_MSGCTL64 = 0xD7E // 3454 - SYS_SEMCTL64 = 0xD7F // 3455 - SYS_SHMCTL64 = 0xD80 // 3456 - SYS_MSGXRCV64 = 0xD81 // 3457 - SYS___MGXR64 = 0xD81 // 3457 - SYS_W_GETPSENT64 = 0xD82 // 3458 - SYS_PTHREAD_COND_TIMEDWAIT64 = 0xD83 // 3459 - SYS_FTIME64 = 0xD85 // 3461 - SYS_GETUTXENT64 = 0xD86 // 3462 - SYS_GETUTXID64 = 0xD87 // 3463 - SYS_GETUTXLINE64 = 0xD88 // 3464 - SYS_PUTUTXLINE64 = 0xD89 // 3465 - SYS_NEWLOCALE = 0xD8A // 3466 - SYS_FREELOCALE = 0xD8B // 3467 - SYS_USELOCALE = 0xD8C // 3468 - SYS_DUPLOCALE = 0xD8D // 3469 - SYS___CHATTR64 = 0xD9C // 3484 - SYS___LCHATTR64 = 0xD9D // 3485 - SYS___FCHATTR64 = 0xD9E // 3486 - SYS_____CHATTR64_A = 0xD9F // 3487 - SYS_____LCHATTR64_A = 0xDA0 // 3488 - SYS___LE_CEEUSGD = 0xDA1 // 3489 - SYS___LE_IFAM_CON = 0xDA2 // 3490 - SYS___LE_IFAM_DSC = 0xDA3 // 3491 - SYS___LE_IFAM_GET = 0xDA4 // 3492 - SYS___LE_IFAM_QRY = 0xDA5 // 3493 - SYS_ALIGNED_ALLOC = 0xDA6 // 3494 - SYS_ACCEPT4 = 0xDA7 // 3495 - SYS___ACCEPT4_A = 0xDA8 // 3496 - SYS_COPYFILERANGE = 0xDA9 // 3497 - SYS_GETLINE = 0xDAA // 3498 - SYS___GETLINE_A = 0xDAB // 3499 - SYS_DIRFD = 0xDAC // 3500 - SYS_CLOCK_GETTIME = 0xDAD // 3501 - SYS_DUP3 = 0xDAE // 3502 - SYS_EPOLL_CREATE = 0xDAF // 3503 - SYS_EPOLL_CREATE1 = 0xDB0 // 3504 - SYS_EPOLL_CTL = 0xDB1 // 3505 - SYS_EPOLL_WAIT = 0xDB2 // 3506 - SYS_EPOLL_PWAIT = 0xDB3 // 3507 - SYS_EVENTFD = 0xDB4 // 3508 - SYS_STATFS = 0xDB5 // 3509 - SYS___STATFS_A = 0xDB6 // 3510 - SYS_FSTATFS = 0xDB7 // 3511 - SYS_INOTIFY_INIT = 0xDB8 // 3512 - SYS_INOTIFY_INIT1 = 0xDB9 // 3513 - SYS_INOTIFY_ADD_WATCH = 0xDBA // 3514 - SYS___INOTIFY_ADD_WATCH_A = 0xDBB // 3515 - SYS_INOTIFY_RM_WATCH = 0xDBC // 3516 - SYS_PIPE2 = 0xDBD // 3517 - SYS_PIVOT_ROOT = 0xDBE // 3518 - SYS___PIVOT_ROOT_A = 0xDBF // 3519 - SYS_PRCTL = 0xDC0 // 3520 - SYS_PRLIMIT = 0xDC1 // 3521 - SYS_SETHOSTNAME = 0xDC2 // 3522 - SYS___SETHOSTNAME_A = 0xDC3 // 3523 - SYS_SETRESUID = 0xDC4 // 3524 - SYS_SETRESGID = 0xDC5 // 3525 - SYS_PTHREAD_CONDATTR_GETCLOCK = 0xDC6 // 3526 - SYS_FLOCK = 0xDC7 // 3527 - SYS_FGETXATTR = 0xDC8 // 3528 - SYS___FGETXATTR_A = 0xDC9 // 3529 - SYS_FLISTXATTR = 0xDCA // 3530 - SYS___FLISTXATTR_A = 0xDCB // 3531 - SYS_FREMOVEXATTR = 0xDCC // 3532 - SYS___FREMOVEXATTR_A = 0xDCD // 3533 - SYS_FSETXATTR = 0xDCE // 3534 - SYS___FSETXATTR_A = 0xDCF // 3535 - SYS_GETXATTR = 0xDD0 // 3536 - SYS___GETXATTR_A = 0xDD1 // 3537 - SYS_LGETXATTR = 0xDD2 // 3538 - SYS___LGETXATTR_A = 0xDD3 // 3539 - SYS_LISTXATTR = 0xDD4 // 3540 - SYS___LISTXATTR_A = 0xDD5 // 3541 - SYS_LLISTXATTR = 0xDD6 // 3542 - SYS___LLISTXATTR_A = 0xDD7 // 3543 - SYS_LREMOVEXATTR = 0xDD8 // 3544 - SYS___LREMOVEXATTR_A = 0xDD9 // 3545 - SYS_LSETXATTR = 0xDDA // 3546 - SYS___LSETXATTR_A = 0xDDB // 3547 - SYS_REMOVEXATTR = 0xDDC // 3548 - SYS___REMOVEXATTR_A = 0xDDD // 3549 - SYS_SETXATTR = 0xDDE // 3550 - SYS___SETXATTR_A = 0xDDF // 3551 - SYS_FDATASYNC = 0xDE0 // 3552 - SYS_SYNCFS = 0xDE1 // 3553 - SYS_FUTIMES = 0xDE2 // 3554 - SYS_FUTIMESAT = 0xDE3 // 3555 - SYS___FUTIMESAT_A = 0xDE4 // 3556 - SYS_LUTIMES = 0xDE5 // 3557 - SYS___LUTIMES_A = 0xDE6 // 3558 - SYS_INET_ATON = 0xDE7 // 3559 - SYS_GETRANDOM = 0xDE8 // 3560 - SYS_GETTID = 0xDE9 // 3561 - SYS_MEMFD_CREATE = 0xDEA // 3562 - SYS___MEMFD_CREATE_A = 0xDEB // 3563 - SYS_FACCESSAT = 0xDEC // 3564 - SYS___FACCESSAT_A = 0xDED // 3565 - SYS_FCHMODAT = 0xDEE // 3566 - SYS___FCHMODAT_A = 0xDEF // 3567 - SYS_FCHOWNAT = 0xDF0 // 3568 - SYS___FCHOWNAT_A = 0xDF1 // 3569 - SYS_FSTATAT = 0xDF2 // 3570 - SYS___FSTATAT_A = 0xDF3 // 3571 - SYS_LINKAT = 0xDF4 // 3572 - SYS___LINKAT_A = 0xDF5 // 3573 - SYS_MKDIRAT = 0xDF6 // 3574 - SYS___MKDIRAT_A = 0xDF7 // 3575 - SYS_MKFIFOAT = 0xDF8 // 3576 - SYS___MKFIFOAT_A = 0xDF9 // 3577 - SYS_MKNODAT = 0xDFA // 3578 - SYS___MKNODAT_A = 0xDFB // 3579 - SYS_OPENAT = 0xDFC // 3580 - SYS___OPENAT_A = 0xDFD // 3581 - SYS_READLINKAT = 0xDFE // 3582 - SYS___READLINKAT_A = 0xDFF // 3583 - SYS_RENAMEAT = 0xE00 // 3584 - SYS___RENAMEAT_A = 0xE01 // 3585 - SYS_RENAMEAT2 = 0xE02 // 3586 - SYS___RENAMEAT2_A = 0xE03 // 3587 - SYS_SYMLINKAT = 0xE04 // 3588 - SYS___SYMLINKAT_A = 0xE05 // 3589 - SYS_UNLINKAT = 0xE06 // 3590 - SYS___UNLINKAT_A = 0xE07 // 3591 - SYS_SYSINFO = 0xE08 // 3592 - SYS_WAIT4 = 0xE0A // 3594 - SYS_CLONE = 0xE0B // 3595 - SYS_UNSHARE = 0xE0C // 3596 - SYS_SETNS = 0xE0D // 3597 - SYS_CAPGET = 0xE0E // 3598 - SYS_CAPSET = 0xE0F // 3599 - SYS_STRCHRNUL = 0xE10 // 3600 - SYS_PTHREAD_CONDATTR_SETCLOCK = 0xE12 // 3602 - SYS_OPEN_BY_HANDLE_AT = 0xE13 // 3603 - SYS___OPEN_BY_HANDLE_AT_A = 0xE14 // 3604 - SYS___INET_ATON_A = 0xE15 // 3605 - SYS_MOUNT1 = 0xE16 // 3606 - SYS___MOUNT1_A = 0xE17 // 3607 - SYS_UMOUNT1 = 0xE18 // 3608 - SYS___UMOUNT1_A = 0xE19 // 3609 - SYS_UMOUNT2 = 0xE1A // 3610 - SYS___UMOUNT2_A = 0xE1B // 3611 - SYS___PRCTL_A = 0xE1C // 3612 - SYS_LOCALTIME_R2 = 0xE1D // 3613 - SYS___LOCALTIME_R2_A = 0xE1E // 3614 - SYS_OPENAT2 = 0xE1F // 3615 - SYS___OPENAT2_A = 0xE20 // 3616 - SYS___LE_CEEMICT = 0xE21 // 3617 - SYS_GETENTROPY = 0xE22 // 3618 - SYS_NANOSLEEP = 0xE23 // 3619 - SYS_UTIMENSAT = 0xE24 // 3620 - SYS___UTIMENSAT_A = 0xE25 // 3621 - SYS_ASPRINTF = 0xE26 // 3622 - SYS___ASPRINTF_A = 0xE27 // 3623 - SYS_VASPRINTF = 0xE28 // 3624 - SYS___VASPRINTF_A = 0xE29 // 3625 - SYS_DPRINTF = 0xE2A // 3626 - SYS___DPRINTF_A = 0xE2B // 3627 - SYS_GETOPT_LONG = 0xE2C // 3628 - SYS___GETOPT_LONG_A = 0xE2D // 3629 - SYS_PSIGNAL = 0xE2E // 3630 - SYS___PSIGNAL_A = 0xE2F // 3631 - SYS_PSIGNAL_UNLOCKED = 0xE30 // 3632 - SYS___PSIGNAL_UNLOCKED_A = 0xE31 // 3633 - SYS_FSTATAT_O = 0xE32 // 3634 - SYS___FSTATAT_O_A = 0xE33 // 3635 - SYS_FSTATAT64 = 0xE34 // 3636 - SYS___FSTATAT64_A = 0xE35 // 3637 - SYS___CHATTRAT = 0xE36 // 3638 - SYS_____CHATTRAT_A = 0xE37 // 3639 - SYS___CHATTRAT64 = 0xE38 // 3640 - SYS_____CHATTRAT64_A = 0xE39 // 3641 - SYS_MADVISE = 0xE3A // 3642 - SYS___AUTHENTICATE = 0xE3B // 3643 - -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go deleted file mode 100644 index 3e6d57c..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +++ /dev/null @@ -1,353 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type off64 int64 -type off int32 -type Mode_t uint32 - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int32 - -type Tms struct{} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint32 - -type Stat_t struct { - Dev uint32 - Ino uint32 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint32 - Size int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int32 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint32 - Ino uint32 - Reclen uint16 - Namlen uint16 - Name [256]uint8 -} - -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 [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 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type Iovec struct { - Base *byte - Len uint32 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - 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 ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [2048]int32 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Losigs uint32 - Hisigs uint32 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint32 - Blocks uint32 - Bfree uint32 - Bavail uint32 - Files uint32 - Ffree uint32 - Fsid Fsid_t - Vfstype int32 - Fsize uint32 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 -} - -const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go deleted file mode 100644 index 3a219bd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +++ /dev/null @@ -1,357 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x3ff -) - -type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 -) - -type off64 int64 -type off int64 -type Mode_t uint32 - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -type Timex struct{} - -type Time_t int64 - -type Tms struct{} - -type Utimbuf struct { - Actime int64 - Modtime int64 -} - -type Timezone struct { - Minuteswest int32 - Dsttime int32 -} - -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 Pid_t int32 - -type _Gid_t uint32 - -type dev_t uint64 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink int16 - Flag uint16 - Uid uint32 - Gid uint32 - Rdev uint64 - Ssize int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int64 - Blocks int64 - Vfstype int32 - Vfs uint32 - Type uint32 - Gen uint32 - Reserved [9]uint32 - Padto_ll uint32 - Size int64 -} - -type StatxTimestamp struct{} - -type Statx_t struct{} - -type Dirent struct { - Offset uint64 - Ino uint64 - Reclen uint16 - Namlen uint16 - Name [256]uint8 - _ [4]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 [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 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [1012]uint8 -} - -type _Socklen uint32 - -type Cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -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 IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type Linger struct { - Onoff int32 - Linger int32 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -const ( - 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 ( - SizeofIfMsghdr = 0x10 -) - -type IfMsgHdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Addrlen uint8 - _ [1]byte -} - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - Version [32]byte - Machine [32]byte -} - -type Ustat_t struct{} - -type Sigset_t struct { - Set [4]uint64 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x1 - AT_SYMLINK_NOFOLLOW = 0x1 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [16]uint8 -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line uint8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type PollFd struct { - Fd int32 - Events uint16 - Revents uint16 -} - -const ( - POLLERR = 0x4000 - POLLHUP = 0x2000 - POLLIN = 0x1 - POLLNVAL = 0x8000 - POLLOUT = 0x2 - POLLPRI = 0x4 - POLLRDBAND = 0x20 - POLLRDNORM = 0x10 - POLLWRBAND = 0x40 - POLLWRNORM = 0x2 -) - -type Flock_t struct { - Type int16 - Whence int16 - Sysid uint32 - Pid int32 - Vfs int32 - Start int64 - Len int64 -} - -type Fsid_t struct { - Val [2]uint32 -} -type Fsid64_t struct { - Val [2]uint64 -} - -type Statfs_t struct { - Version int32 - Type int32 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid64_t - Vfstype int32 - Fsize uint64 - Vfsnumber int32 - Vfsoff int32 - Vfslen int32 - Vfsvers int32 - Fname [32]uint8 - Fpack [32]uint8 - Name_max int32 - _ [4]byte -} - -const RNDGETENTCNT = 0x80045200 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index 17c53bd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,878 +0,0 @@ -// 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 - -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 int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -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 { - 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 { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -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 [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - 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 RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type SaeAssocID uint32 - -type SaeConnID uint32 - -type SaEndpoints struct { - Srcif uint32 - Srcaddr *RawSockaddr - Srcaddrlen uint32 - Dstaddr *RawSockaddr - Dstaddrlen uint32 - _ [4]byte -} - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - 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 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -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]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfMsghdr2 = 0xa0 - SizeofIfData = 0x60 - SizeofIfData64 = 0x80 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMsghdr2 = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Snd_len int32 - Snd_maxlen int32 - Snd_drops int32 - Timer int32 - Data IfData64 -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfData64 struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Refcnt int32 - Parentflags int32 - Reserved int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -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 Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -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 Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go deleted file mode 100644 index 2392226..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ /dev/null @@ -1,878 +0,0 @@ -// 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 - -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 int32 - _ [4]byte -} - -type Timeval32 struct { - Sec int32 - Usec int32 -} - -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 { - 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 { - Bsize uint32 - Iosize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Owner uint32 - Type uint32 - Flags uint32 - Fssubtype uint32 - Fstypename [16]byte - Mntonname [1024]byte - Mntfromname [1024]byte - Flags_ext uint32 - Reserved [7]uint32 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Fstore_t struct { - Flags uint32 - Posmode int32 - Offset int64 - Length int64 - Bytesalloc int64 -} - -type Radvisory_t struct { - Offset int64 - Count int32 - _ [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - _ [16]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - _ [3]byte -} - -type Attrlist struct { - Bitmapcount uint16 - Reserved uint16 - Commonattr uint32 - Volattr uint32 - Dirattr uint32 - Fileattr uint32 - Forkattr uint32 -} - -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 [12]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - 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 RawSockaddrVM struct { - Len uint8 - Family uint8 - Reserved1 uint16 - Port uint32 - Cid uint32 -} - -type XVSockPCB struct { - Xv_len uint32 - Xv_vsockpp uint64 - Xvp_local_cid uint32 - Xvp_local_port uint32 - Xvp_remote_cid uint32 - Xvp_remote_port uint32 - Xvp_rxcnt uint32 - Xvp_txcnt uint32 - Xvp_peer_rxhiwat uint32 - Xvp_peer_rxcnt uint32 - Xvp_last_pid int32 - Xvp_gencnt uint64 - Xv_socket XSocket - _ [4]byte -} - -type XSocket struct { - Xso_len uint32 - Xso_so uint32 - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - So_pcb uint32 - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSocket64 struct { - Xso_len uint32 - _ [8]byte - So_type int16 - So_options int16 - So_linger int16 - So_state int16 - _ [8]byte - Xso_protocol int32 - Xso_family int32 - So_qlen int16 - So_incqlen int16 - So_qlimit int16 - So_timeo int16 - So_error uint16 - So_pgid int32 - So_oobmark uint32 - So_rcv XSockbuf - So_snd XSockbuf - So_uid uint32 -} - -type XSockbuf struct { - Cc uint32 - Hiwat uint32 - Mbcnt uint32 - Mbmax uint32 - Lowat int32 - Flags int16 - Timeo int16 -} - -type XVSockPgen struct { - Len uint32 - Count uint64 - Gen uint64 - Sogen uint64 -} - -type _Socklen uint32 - -type SaeAssocID uint32 - -type SaeConnID uint32 - -type SaEndpoints struct { - Srcif uint32 - Srcaddr *RawSockaddr - Srcaddrlen uint32 - Dstaddr *RawSockaddr - Dstaddrlen uint32 - _ [4]byte -} - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type Cmsghdr struct { - Len uint32 - Level int32 - 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 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -type TCPConnectionInfo struct { - State uint8 - Snd_wscale uint8 - Rcv_wscale uint8 - _ uint8 - Options uint32 - Flags uint32 - Rto uint32 - Maxseg uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Snd_wnd uint32 - Snd_sbbytes uint32 - Rcv_wnd uint32 - Rttcur uint32 - Srtt uint32 - Rttvar uint32 - Txpackets uint64 - Txbytes uint64 - Txretransmitbytes uint64 - Rxpackets uint64 - Rxbytes uint64 - Rxoutoforderbytes uint64 - Txretransmitpackets uint64 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofSockaddrCtl = 0x20 - SizeofSockaddrVM = 0xc - SizeofXvsockpcb = 0xa8 - SizeofXSocket = 0x64 - SizeofXSockbuf = 0x18 - SizeofXVSockPgen = 0x20 - SizeofXucred = 0x4c - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofTCPConnectionInfo = 0x70 -) - -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]int32 -} - -const ( - SizeofIfMsghdr = 0x70 - SizeofIfMsghdr2 = 0xa0 - SizeofIfData = 0x60 - SizeofIfData64 = 0x80 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfmaMsghdr2 = 0x14 - SizeofRtMsghdr = 0x5c - SizeofRtMsghdr2 = 0x5c - SizeofRtMetrics = 0x38 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Snd_len int32 - Snd_maxlen int32 - Snd_drops int32 - Timer int32 - Data IfData64 -} - -type IfData struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 - Unused2 uint32 - Hwassist uint32 - Reserved1 uint32 - Reserved2 uint32 -} - -type IfData64 struct { - Type uint8 - Typelen uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Unused1 uint8 - Mtu uint32 - Metric uint32 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Recvtiming uint32 - Xmittiming uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Refcount int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Refcnt int32 - Parentflags int32 - Reserved int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire int32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - State uint32 - Filler [3]uint32 -} - -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 Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Ispeed uint64 - Ospeed uint64 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x2 - AT_REMOVEDIR = 0x80 - AT_SYMLINK_FOLLOW = 0x40 - AT_SYMLINK_NOFOLLOW = 0x20 - AT_EACCESS = 0x10 -) - -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 Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofClockinfo = 0x14 - -type Clockinfo struct { - Hz int32 - Tick int32 - Tickadj int32 - Stathz int32 - Profhz int32 -} - -type CtlInfo struct { - Id uint32 - Name [96]byte -} - -const SizeofKinfoProc = 0x288 - -type Eproc struct { - Paddr uintptr - Sess uintptr - Pcred Pcred - Ucred Ucred - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Tdev int32 - Tpgid int32 - Tsess uintptr - Wmesg [8]byte - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Flag int32 - Login [12]byte - Spare [4]int32 - _ [4]byte -} - -type ExternProc struct { - P_starttime Timeval - P_vmspace *Vmspace - P_sigacts uintptr - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - User_stack *int8 - Exit_thread *byte - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - P_wchan *byte - P_wmesg *int8 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - P_tracep uintptr - P_siglist int32 - P_textvp uintptr - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]byte - P_pgrp uintptr - P_addr uintptr - P_xstat uint16 - P_acflag uint16 - P_ru *Rusage -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Vmspace struct { - Dummy int32 - Dummy2 *int8 - Dummy3 [5]int32 - Dummy4 [3]*int8 -} - -type Pcred struct { - Pc_lock [72]int8 - Pc_ucred uintptr - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - _ [4]byte -} - -type Ucred struct { - Ref int32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ uint16 - _ int32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Lpid int32 - Cpid int32 - Nattch uint16 - _ [34]byte -} - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go deleted file mode 100644 index 30e405b..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ /dev/null @@ -1,473 +0,0 @@ -// 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 - -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 int64 - Max int64 -} - -type _Gid_t uint32 - -type Stat_t struct { - 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 { - Spare2 int64 - Bsize int64 - Iosize int64 - Blocks int64 - Bfree int64 - Bavail int64 - Files int64 - Ffree int64 - Fsid Fsid - Owner uint32 - Type int32 - Flags int32 - Syncwrites int64 - Asyncwrites int64 - Fstypename [16]byte - Mntonname [80]byte - Syncreads int64 - Asyncreads int64 - Spares1 int16 - Mntfromname [80]byte - Spares2 int16 - Spare [2]int64 -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Namlen uint16 - Type uint8 - Unused1 uint8 - Unused2 uint32 - 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 [12]int8 - Rcf uint16 - Route [16]uint16 -} - -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 int32 - 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 = 0x36 - 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 [16]uint64 -} - -const ( - SizeofIfMsghdr = 0xb0 - SizeofIfData = 0xa0 - SizeofIfaMsghdr = 0x18 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Data IfData -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Mtu uint64 - Metric uint64 - Link_state uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Oqdrops uint64 - Lastchange Timeval -} - -type IfaMsghdr struct { - 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 - Index uint16 - Flags int32 - Addrs int32 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Pksent uint64 - Expire uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Recvpipe uint64 - Hopcount uint64 - Mssopt uint16 - Pad uint16 - Msl uint64 - Iwmaxsegs uint64 - Iwcapsegs uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -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 Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = 0xfffafdcd - AT_SYMLINK_NOFOLLOW = 0x1 - AT_REMOVEDIR = 0x2 - AT_EACCESS = 0x4 - AT_SYMLINK_FOLLOW = 0x8 -) - -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 Utsname struct { - Sysname [32]byte - Nodename [32]byte - Release [32]byte - 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 deleted file mode 100644 index 51e13eb..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ /dev/null @@ -1,651 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Time_t int32 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -type Stat_t struct { - 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 Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - 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 __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - 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 FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x60 - sizeofIfData = 0x98 - SizeofIfData = 0x50 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Epoch int32 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - 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 deleted file mode 100644 index d002d8e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ /dev/null @@ -1,656 +0,0 @@ -// 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 - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - 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 __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - 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 FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - 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 deleted file mode 100644 index 3f863d8..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ /dev/null @@ -1,642 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Time_t int64 - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x50 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - 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 __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [4]byte - _ [32]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - R [13]uint32 - Sp uint32 - Lr uint32 - Pc uint32 - Cpsr uint32 -} - -type FpReg struct { - Fpsr uint32 - Fpr [8]FpExtendedPrecision -} - -type FpExtendedPrecision struct { - Exponent uint32 - Mantissa_hi uint32 - Mantissa_lo uint32 -} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint32 -} - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0x70 - sizeofIfData = 0x98 - SizeofIfData = 0x60 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x5c - SizeofRtMetrics = 0x38 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - _ [4]byte - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 - Weight uint32 - Filler [3]uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0xc - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint32 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - 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 deleted file mode 100644 index 61c7293..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ /dev/null @@ -1,636 +0,0 @@ -// 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 - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - 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 __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - 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 FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Filler [3]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - 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_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go deleted file mode 100644 index b5d1741..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +++ /dev/null @@ -1,638 +0,0 @@ -// 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 riscv64 && freebsd - -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 Time_t 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 int64 - Max int64 -} - -type _Gid_t uint32 - -const ( - _statfsVersion = 0x20140518 - _dirblksiz = 0x400 -) - -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 - Btim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint64 - Spare [10]uint64 -} - -type Statfs_t struct { - Version uint32 - Type uint32 - Flags uint64 - Bsize uint64 - Iosize uint64 - Blocks uint64 - Bfree uint64 - Bavail int64 - Files uint64 - Ffree int64 - Syncwrites uint64 - Asyncwrites uint64 - Syncreads uint64 - Asyncreads uint64 - Spare [10]uint64 - Namemax uint32 - Owner uint32 - Fsid Fsid - Charspare [80]int8 - Fstypename [16]byte - Mntfromname [1024]byte - Mntonname [1024]byte -} - -type Flock_t struct { - Start int64 - Len int64 - Pid int32 - Type int16 - Whence int16 - Sysid int32 - _ [4]byte -} - -type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Pad0 uint8 - Namlen uint16 - Pad1 uint16 - Name [256]int8 -} - -type Fsid struct { - Val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [46]int8 -} - -type RawSockaddr struct { - Len uint8 - Family uint8 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [92]int8 -} - -type _Socklen uint32 - -type Xucred struct { - Version uint32 - Uid uint32 - Ngroups int16 - Groups [16]uint32 - _ *byte -} - -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 Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen int32 - 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 = 0x36 - SizeofXucred = 0x58 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type PtraceLwpInfoStruct struct { - Lwpid int32 - Event int32 - Flags int32 - Sigmask Sigset_t - Siglist Sigset_t - Siginfo __PtraceSiginfo - 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 __PtraceSiginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr uintptr - Value [8]byte - _ [40]byte -} - -type Sigset_t struct { - Val [4]uint32 -} - -type Reg struct { - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T [7]uint64 - S [12]uint64 - A [8]uint64 - Sepc uint64 - Sstatus uint64 -} - -type FpReg struct { - X [32][2]uint64 - Fcsr uint64 -} - -type FpExtendedPrecision struct{} - -type PtraceIoDesc struct { - Op int32 - Offs uintptr - Addr *byte - Len uint64 -} - -type Kevent_t struct { - Ident uint64 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte - Ext [4]uint64 -} - -type FdSet struct { - Bits [16]uint64 -} - -const ( - sizeofIfMsghdr = 0xa8 - SizeofIfMsghdr = 0xa8 - sizeofIfData = 0x98 - SizeofIfData = 0x98 - SizeofIfaMsghdr = 0x14 - SizeofIfmaMsghdr = 0x10 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x98 - SizeofRtMetrics = 0x70 -) - -type ifMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Data ifData -} - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type ifData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Vhid uint8 - Datalen uint16 - Mtu uint32 - Metric 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 - Hwassist uint64 - _ [8]byte - _ [16]byte -} - -type IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Link_state uint8 - Spare_char1 uint8 - Spare_char2 uint8 - Datalen uint8 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Hwassist uint64 - Epoch int64 - Lastchange Timeval -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - _ uint16 -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - _ uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Fmask int32 - Inits uint64 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Expire uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Pksent uint64 - Weight uint64 - Nhidx uint64 - Filler [2]uint64 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfZbuf = 0x18 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 - SizeofBpfZbufHeader = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint32 - Drop uint32 -} - -type BpfZbuf struct { - Bufa *byte - Bufb *byte - Buflen uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [6]byte -} - -type BpfZbufHeader struct { - Kernel_gen uint32 - Kernel_len uint32 - User_gen uint32 - _ [5]uint32 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [20]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLERR = 0x8 - POLLHUP = 0x10 - POLLIN = 0x1 - POLLINIGNEOF = 0x2000 - POLLNVAL = 0x20 - POLLOUT = 0x4 - POLLPRI = 0x2 - POLLRDBAND = 0x80 - POLLRDNORM = 0x40 - POLLWRBAND = 0x100 - POLLWRNORM = 0x4 - POLLRDHUP = 0x4000 -) - -type CapRights struct { - Rights [2]uint64 -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - 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_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go deleted file mode 100644 index 8bcac28..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ /dev/null @@ -1,6272 +0,0 @@ -// Code generated by mkmerge; DO NOT EDIT. - -//go: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 -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -const ( - ADJ_OFFSET = 0x1 - ADJ_FREQUENCY = 0x2 - ADJ_MAXERROR = 0x4 - ADJ_ESTERROR = 0x8 - ADJ_STATUS = 0x10 - ADJ_TIMECONST = 0x20 - ADJ_TAI = 0x80 - ADJ_SETOFFSET = 0x100 - ADJ_MICRO = 0x1000 - ADJ_NANO = 0x2000 - ADJ_TICK = 0x4000 - ADJ_OFFSET_SINGLESHOT = 0x8001 - ADJ_OFFSET_SS_READ = 0xa001 -) - -const ( - STA_PLL = 0x1 - STA_PPSFREQ = 0x2 - STA_PPSTIME = 0x4 - STA_FLL = 0x8 - STA_INS = 0x10 - STA_DEL = 0x20 - STA_UNSYNC = 0x40 - STA_FREQHOLD = 0x80 - STA_PPSSIGNAL = 0x100 - STA_PPSJITTER = 0x200 - STA_PPSWANDER = 0x400 - STA_PPSERROR = 0x800 - STA_CLOCKERR = 0x1000 - STA_NANO = 0x2000 - STA_MODE = 0x4000 - STA_CLK = 0x8000 -) - -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 - Dio_mem_align uint32 - Dio_offset_align uint32 - Subvol uint64 - Atomic_write_unit_min uint32 - Atomic_write_unit_max uint32 - Atomic_write_segments_max uint32 - Dio_read_offset_align uint32 - _ [9]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 - Log2_data_unit_size uint8 - _ [3]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 RawSockaddrNFC struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 -} - -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 - Pacing_rate uint64 - Max_pacing_rate uint64 - Bytes_acked uint64 - Bytes_received uint64 - Segs_out uint32 - Segs_in uint32 - Notsent_bytes uint32 - Min_rtt uint32 - Data_segs_in uint32 - Data_segs_out uint32 - Delivery_rate uint64 - Busy_time uint64 - Rwnd_limited uint64 - Sndbuf_limited uint64 - Delivered uint32 - Delivered_ce uint32 - Bytes_sent uint64 - Bytes_retrans uint64 - Dsack_dups uint32 - Reord_seen uint32 - Rcv_ooopack uint32 - Snd_wnd uint32 - Rcv_wnd uint32 - Rehash uint32 - Total_rto uint16 - Total_rto_recoveries uint16 - Total_rto_time uint32 -} - -type TCPVegasInfo struct { - Enabled uint32 - Rttcnt uint32 - Rtt uint32 - Minrtt uint32 -} - -type TCPDCTCPInfo struct { - Enabled uint16 - Ce_state uint16 - Alpha uint32 - Ab_ecn uint32 - Ab_tot uint32 -} - -type TCPBBRInfo struct { - Bw_lo uint32 - Bw_hi uint32 - Min_rtt uint32 - Pacing_gain uint32 - Cwnd_gain uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - -type TCPRepairOpt struct { - Code uint32 - Val 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 - SizeofSockaddrNFC = 0x10 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0xf8 - SizeofTCPCCInfo = 0x14 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 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 ( - ICMP_FILTER = 0x1 - - ICMPV6_FILTER = 0x1 - ICMPV6_FILTER_BLOCK = 0x1 - ICMPV6_FILTER_BLOCKOTHERS = 0x3 - ICMPV6_FILTER_PASS = 0x2 - ICMPV6_FILTER_PASSONLY = 0x4 -) - -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_RECURSIVE = 0x8000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 - - OPEN_TREE_CLONE = 0x1 - - MOVE_MOUNT_F_SYMLINKS = 0x1 - MOVE_MOUNT_F_AUTOMOUNTS = 0x2 - MOVE_MOUNT_F_EMPTY_PATH = 0x4 - MOVE_MOUNT_T_SYMLINKS = 0x10 - MOVE_MOUNT_T_AUTOMOUNTS = 0x20 - MOVE_MOUNT_T_EMPTY_PATH = 0x40 - MOVE_MOUNT_SET_GROUP = 0x100 - - FSOPEN_CLOEXEC = 0x1 - - FSPICK_CLOEXEC = 0x1 - FSPICK_SYMLINK_NOFOLLOW = 0x2 - FSPICK_NO_AUTOMOUNT = 0x4 - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 - - FSCONFIG_SET_FLAG = 0x0 - FSCONFIG_SET_STRING = 0x1 - FSCONFIG_SET_BINARY = 0x2 - FSCONFIG_SET_PATH = 0x3 - FSCONFIG_SET_PATH_EMPTY = 0x4 - FSCONFIG_SET_FD = 0x5 - FSCONFIG_CMD_CREATE = 0x6 - FSCONFIG_CMD_RECONFIGURE = 0x7 -) - -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 sigset_argpack struct { - ss *Sigset_t - ssLen uintptr -} - -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_CMD_GETPOLICY = 0xa - 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_POLICY = 0x8 - CTRL_ATTR_OP_POLICY = 0x9 - CTRL_ATTR_OP = 0xa - 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 - CTRL_ATTR_POLICY_UNSPEC = 0x0 - CTRL_ATTR_POLICY_DO = 0x1 - CTRL_ATTR_POLICY_DUMP = 0x2 - CTRL_ATTR_POLICY_DUMP_MAX = 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 - Aux_sample_size uint32 - _ uint32 - Sig_data uint64 -} - -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 - PerfBitWriteBackward = CBitFieldMaskBit27 -) - -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 = 0xc - 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_DATA_PAGE_SIZE = 0x400000 - PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 - PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 - PERF_SAMPLE_MAX = 0x2000000 - 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_PRIV_SAVE_SHIFT = 0x12 - PERF_SAMPLE_BRANCH_COUNTERS = 0x80000 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x14 - 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_PRIV_SAVE = 0x40000 - PERF_SAMPLE_BRANCH_MAX = 0x100000 - 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_ERET = 0xb - PERF_BR_IRQ = 0xc - PERF_BR_SERROR = 0xd - PERF_BR_NO_TX = 0xe - PERF_BR_EXTEND_ABI = 0xf - PERF_BR_MAX = 0x10 - 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_LOST = 0x10 - PERF_FORMAT_MAX = 0x20 - 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_AUX_OUTPUT_HW_ID = 0x15 - PERF_RECORD_MAX = 0x16 - 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 - Ifindex int32 - 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_PARENT_DEV_NAME = 0x38 - IFLA_PARENT_DEV_BUS_NAME = 0x39 - IFLA_GRO_MAX_SIZE = 0x3a - IFLA_TSO_MAX_SIZE = 0x3b - IFLA_TSO_MAX_SEGS = 0x3c - IFLA_ALLMULTI = 0x3d - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 - IFLA_DPLL_PIN = 0x41 - 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_INET6_RA_MTU = 0x9 - 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_BR_MCAST_QUERIER_STATE = 0x2f - IFLA_BR_FDB_N_LEARNED = 0x30 - IFLA_BR_FDB_MAX_LEARNED = 0x31 - 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_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 - IFLA_BRPORT_LOCKED = 0x27 - IFLA_BRPORT_MAB = 0x28 - IFLA_BRPORT_MCAST_N_GROUPS = 0x29 - IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b - IFLA_BRPORT_BACKUP_NHID = 0x2c - 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_MACVLAN_BC_QUEUE_LEN = 0x7 - IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 - IFLA_MACVLAN_BC_CUTOFF = 0x9 - 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_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 - IFLA_NETKIT_UNSPEC = 0x0 - IFLA_NETKIT_PEER_INFO = 0x1 - IFLA_NETKIT_PRIMARY = 0x2 - IFLA_NETKIT_POLICY = 0x3 - IFLA_NETKIT_PEER_POLICY = 0x4 - IFLA_NETKIT_MODE = 0x5 - 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_VXLAN_VNIFILTER = 0x1e - IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_VXLAN_LABEL_POLICY = 0x20 - 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_GENEVE_INNER_PROTO_INHERIT = 0xe - 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_GTP_CREATE_SOCKETS = 0x5 - IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_GTP_LOCAL = 0x7 - IFLA_GTP_LOCAL6 = 0x8 - 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_LACP_ACTIVE = 0x1d - IFLA_BOND_MISSED_MAX = 0x1e - IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_COUPLED_CONTROL = 0x20 - 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_BOND_SLAVE_PRIO = 0x9 - 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_HSR_INTERLINK = 0x8 - 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_STATS_GETSET_UNSPEC = 0x0 - IFLA_STATS_GET_FILTERS = 0x1 - IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 - IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 - IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 - IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - 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 - IFLA_MCTP_UNSPEC = 0x0 - IFLA_MCTP_NET = 0x1 - IFLA_DSA_UNSPEC = 0x0 - IFLA_DSA_CONDUIT = 0x1 - IFLA_DSA_MASTER = 0x1 -) - -const ( - NETKIT_NEXT = -0x1 - NETKIT_PASS = 0x0 - NETKIT_DROP = 0x2 - NETKIT_REDIRECT = 0x7 - NETKIT_L2 = 0x0 - NETKIT_L3 = 0x1 -) - -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_EGRESS = 0x1 - NF_NETDEV_NUMHOOKS = 0x2 -) - -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 -) - -const SO_ORIGINAL_DST = 0x50 - -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_NEWFLOWTABLE = 0x16 - NFT_MSG_GETFLOWTABLE = 0x17 - NFT_MSG_DELFLOWTABLE = 0x18 - NFT_MSG_GETRULE_RESET = 0x19 - NFT_MSG_MAX = 0x22 - 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_INNER_HEADER = 0x3 - NFT_PAYLOAD_TUN_HEADER = 0x4 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_CSUM_SCTP = 0x2 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - 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 XDPUmemReg struct { - Addr uint64 - Len uint64 - Size uint32 - Headroom uint32 - Flags uint32 - Tx_metadata_len uint32 -} - -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_BIND_PHC = 0x8000 - SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 - - SOF_TIMESTAMPING_LAST = 0x20000 - SOF_TIMESTAMPING_MASK = 0x3ffff - - 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_CGROUP_ITER_ORDER_UNSPEC = 0x0 - BPF_CGROUP_ITER_SELF_ONLY = 0x1 - BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 - BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 - BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 - 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_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_DEPRECATED = 0x13 - 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_MAP_TYPE_TASK_STORAGE = 0x1d - BPF_MAP_TYPE_BLOOM_FILTER = 0x1e - BPF_MAP_TYPE_USER_RINGBUF = 0x1f - BPF_MAP_TYPE_CGRP_STORAGE = 0x20 - 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_PROG_TYPE_SYSCALL = 0x1f - BPF_PROG_TYPE_NETFILTER = 0x20 - 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_SK_SKB_VERDICT = 0x26 - BPF_SK_REUSEPORT_SELECT = 0x27 - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 - BPF_PERF_EVENT = 0x29 - BPF_TRACE_KPROBE_MULTI = 0x2a - BPF_LSM_CGROUP = 0x2b - BPF_STRUCT_OPS = 0x2c - BPF_NETFILTER = 0x2d - BPF_TCX_INGRESS = 0x2e - BPF_TCX_EGRESS = 0x2f - BPF_TRACE_UPROBE_MULTI = 0x30 - 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_LINK_TYPE_PERF_EVENT = 0x7 - BPF_LINK_TYPE_KPROBE_MULTI = 0x8 - BPF_LINK_TYPE_STRUCT_OPS = 0x9 - BPF_LINK_TYPE_NETFILTER = 0xa - BPF_LINK_TYPE_TCX = 0xb - BPF_LINK_TYPE_UPROBE_MULTI = 0xc - BPF_PERF_EVENT_UNSPEC = 0x0 - BPF_PERF_EVENT_UPROBE = 0x1 - BPF_PERF_EVENT_URETPROBE = 0x2 - BPF_PERF_EVENT_KPROBE = 0x3 - BPF_PERF_EVENT_KRETPROBE = 0x4 - BPF_PERF_EVENT_TRACEPOINT = 0x5 - BPF_PERF_EVENT_EVENT = 0x6 - BPF_F_KPROBE_MULTI_RETURN = 0x1 - BPF_F_UPROBE_MULTI_RETURN = 0x1 - 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_F_LINK = 0x2000 - BPF_F_PATH_FD = 0x4000 - 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_NO_TUNNEL_KEY = 0x10 - BPF_F_TUNINFO_FLAGS = 0x10 - 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_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 - BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 0x80 - BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 0x100 - 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_F_BPRM_SECUREEXEC = 0x1 - BPF_F_BROADCAST = 0x8 - BPF_F_EXCLUDE_INGRESS = 0x10 - BPF_SKB_TSTAMP_UNSPEC = 0x0 - BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_LWT_REROUTE = 0x80 - BPF_FLOW_DISSECTOR_CONTINUE = 0x81 - 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 = 0xe - 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_LOOKUP_SKIP_NEIGH = 0x4 - BPF_FIB_LOOKUP_TBID = 0x8 - 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_MTU_CHK_SEGS = 0x1 - BPF_MTU_CHK_RET_SUCCESS = 0x0 - BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 - BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 - 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 - BPF_CORE_FIELD_BYTE_OFFSET = 0x0 - BPF_CORE_FIELD_BYTE_SIZE = 0x1 - BPF_CORE_FIELD_EXISTS = 0x2 - BPF_CORE_FIELD_SIGNED = 0x3 - BPF_CORE_FIELD_LSHIFT_U64 = 0x4 - BPF_CORE_FIELD_RSHIFT_U64 = 0x5 - BPF_CORE_TYPE_ID_LOCAL = 0x6 - BPF_CORE_TYPE_ID_TARGET = 0x7 - BPF_CORE_TYPE_EXISTS = 0x8 - BPF_CORE_TYPE_SIZE = 0x9 - BPF_CORE_ENUMVAL_EXISTS = 0xa - BPF_CORE_ENUMVAL_VALUE = 0xb - BPF_CORE_TYPE_MATCHES = 0xc - BPF_F_TIMER_ABS = 0x1 -) - -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 LoopConfig struct { - Fd uint32 - Size uint32 - Info LoopInfo64 - _ [8]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_RATE_GET = 0x4a - DEVLINK_CMD_RATE_SET = 0x4b - DEVLINK_CMD_RATE_NEW = 0x4c - DEVLINK_CMD_RATE_DEL = 0x4d - DEVLINK_CMD_LINECARD_GET = 0x4e - DEVLINK_CMD_LINECARD_SET = 0x4f - DEVLINK_CMD_LINECARD_NEW = 0x50 - DEVLINK_CMD_LINECARD_DEL = 0x51 - DEVLINK_CMD_SELFTESTS_GET = 0x52 - DEVLINK_CMD_MAX = 0x54 - 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_PORT_PCI_SF_NUMBER = 0xa4 - DEVLINK_ATTR_RATE_TYPE = 0xa5 - DEVLINK_ATTR_RATE_TX_SHARE = 0xa6 - DEVLINK_ATTR_RATE_TX_MAX = 0xa7 - DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 - DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 - DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa - DEVLINK_ATTR_LINECARD_INDEX = 0xab - DEVLINK_ATTR_LINECARD_STATE = 0xac - DEVLINK_ATTR_LINECARD_TYPE = 0xad - DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae - DEVLINK_ATTR_NESTED_DEVLINK = 0xaf - DEVLINK_ATTR_SELFTESTS = 0xb0 - DEVLINK_ATTR_MAX = 0xb3 - 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_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 - DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x6 -) - -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 - High 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_IOAM6 = 0x9 - LWTUNNEL_ENCAP_XFRM = 0xa - LWTUNNEL_ENCAP_MAX = 0xa - - 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_FEC_GET = 0x1d - ETHTOOL_MSG_FEC_SET = 0x1e - ETHTOOL_MSG_MODULE_EEPROM_GET = 0x1f - ETHTOOL_MSG_STATS_GET = 0x20 - ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 - ETHTOOL_MSG_MODULE_GET = 0x22 - ETHTOOL_MSG_MODULE_SET = 0x23 - ETHTOOL_MSG_PSE_GET = 0x24 - ETHTOOL_MSG_PSE_SET = 0x25 - ETHTOOL_MSG_RSS_GET = 0x26 - ETHTOOL_MSG_PLCA_GET_CFG = 0x27 - ETHTOOL_MSG_PLCA_SET_CFG = 0x28 - ETHTOOL_MSG_PLCA_GET_STATUS = 0x29 - ETHTOOL_MSG_MM_GET = 0x2a - ETHTOOL_MSG_MM_SET = 0x2b - ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 0x2c - ETHTOOL_MSG_PHY_GET = 0x2d - ETHTOOL_MSG_TSCONFIG_GET = 0x2e - ETHTOOL_MSG_TSCONFIG_SET = 0x2f - ETHTOOL_MSG_USER_MAX = 0x2f - ETHTOOL_MSG_KERNEL_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 - ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 - 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_FEC_GET_REPLY = 0x1e - ETHTOOL_MSG_FEC_NTF = 0x1f - ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 0x20 - ETHTOOL_MSG_STATS_GET_REPLY = 0x21 - ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 - ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 - ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_PSE_GET_REPLY = 0x25 - ETHTOOL_MSG_RSS_GET_REPLY = 0x26 - ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 0x27 - ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 0x28 - ETHTOOL_MSG_PLCA_NTF = 0x29 - ETHTOOL_MSG_MM_GET_REPLY = 0x2a - ETHTOOL_MSG_MM_NTF = 0x2b - ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 0x2c - ETHTOOL_MSG_PHY_GET_REPLY = 0x2d - ETHTOOL_MSG_PHY_NTF = 0x2e - ETHTOOL_MSG_TSCONFIG_GET_REPLY = 0x2f - ETHTOOL_MSG_TSCONFIG_SET_REPLY = 0x30 - ETHTOOL_MSG_KERNEL_MAX = 0x30 - ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 - ETHTOOL_FLAG_OMIT_REPLY = 0x2 - ETHTOOL_FLAG_STATS = 0x4 - 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 = 0x4 - 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_LANES = 0x9 - ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa - ETHTOOL_A_LINKMODES_MAX = 0xa - 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_EXT_DOWN_CNT = 0x7 - ETHTOOL_A_LINKSTATE_MAX = 0x7 - 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_RX_BUF_LEN = 0xa - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb - ETHTOOL_A_RINGS_CQE_SIZE = 0xc - ETHTOOL_A_RINGS_TX_PUSH = 0xd - ETHTOOL_A_RINGS_RX_PUSH = 0xe - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 0xf - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 0x10 - ETHTOOL_A_RINGS_HDS_THRESH = 0x11 - ETHTOOL_A_RINGS_HDS_THRESH_MAX = 0x12 - ETHTOOL_A_RINGS_MAX = 0x12 - ETHTOOL_A_CHANNELS_UNSPEC = 0x0 - ETHTOOL_A_CHANNELS_HEADER = 0x1 - ETHTOOL_A_CHANNELS_RX_MAX = 0x2 - 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_USE_CQE_MODE_TX = 0x18 - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 - ETHTOOL_A_COALESCE_MAX = 0x1e - 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 = 0x6 - 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_STATS = 0x6 - ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 0x7 - ETHTOOL_A_TSINFO_MAX = 0x7 - 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 = 0x3 - 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 = 0x3 - 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 -) - -const SPEED_UNKNOWN = -0x1 - -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 EthtoolTsInfo struct { - Cmd uint32 - So_timestamping uint32 - Phc_index int32 - Tx_types uint32 - Tx_reserved [3]uint32 - Rx_filters uint32 - Rx_reserved [3]uint32 -} - -type HwTstampConfig struct { - Flags int32 - Tx_type int32 - Rx_filter int32 -} - -const ( - HWTSTAMP_FILTER_NONE = 0x0 - HWTSTAMP_FILTER_ALL = 0x1 - HWTSTAMP_FILTER_SOME = 0x2 - HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3 - HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6 - HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9 - HWTSTAMP_FILTER_PTP_V2_EVENT = 0xc -) - -const ( - HWTSTAMP_TX_OFF = 0x0 - HWTSTAMP_TX_ON = 0x1 - HWTSTAMP_TX_ONESTEP_SYNC = 0x2 -) - -type ( - PtpClockCaps struct { - Max_adj int32 - N_alarm int32 - N_ext_ts int32 - N_per_out int32 - Pps int32 - N_pins int32 - Cross_timestamping int32 - Adjust_phase int32 - Max_phase_adj int32 - Rsv [11]int32 - } - PtpClockTime struct { - Sec int64 - Nsec uint32 - Reserved uint32 - } - PtpExttsEvent struct { - T PtpClockTime - Index uint32 - Flags uint32 - Rsv [2]uint32 - } - PtpExttsRequest struct { - Index uint32 - Flags uint32 - Rsv [2]uint32 - } - PtpPeroutRequest struct { - StartOrPhase PtpClockTime - Period PtpClockTime - Index uint32 - Flags uint32 - On PtpClockTime - } - PtpPinDesc struct { - Name [64]byte - Index uint32 - Func uint32 - Chan uint32 - Rsv [5]uint32 - } - PtpSysOffset struct { - Samples uint32 - Rsv [3]uint32 - Ts [51]PtpClockTime - } - PtpSysOffsetExtended struct { - Samples uint32 - Clockid int32 - Rsv [2]uint32 - Ts [25][3]PtpClockTime - } - PtpSysOffsetPrecise struct { - Device PtpClockTime - Realtime PtpClockTime - Monoraw PtpClockTime - Rsv [4]uint32 - } -) - -const ( - PTP_PF_NONE = 0x0 - PTP_PF_EXTTS = 0x1 - PTP_PF_PEROUT = 0x2 - PTP_PF_PHYSYNC = 0x3 -) - -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 -) - -type ( - EraseInfo struct { - Start uint32 - Length uint32 - } - EraseInfo64 struct { - Start uint64 - Length uint64 - } - MtdOobBuf struct { - Start uint32 - Length uint32 - Ptr *uint8 - } - MtdOobBuf64 struct { - Start uint64 - Pad uint32 - Length uint32 - Ptr uint64 - } - MtdWriteReq struct { - Start uint64 - Len uint64 - Ooblen uint64 - Data uint64 - Oob uint64 - Mode uint8 - _ [7]uint8 - } - MtdInfo struct { - Type uint8 - Flags uint32 - Size uint32 - Erasesize uint32 - Writesize uint32 - Oobsize uint32 - _ uint64 - } - RegionInfo struct { - Offset uint32 - Erasesize uint32 - Numblocks uint32 - Regionindex uint32 - } - OtpInfo struct { - Start uint32 - Length uint32 - Locked uint32 - } - NandOobinfo struct { - Useecc uint32 - Eccbytes uint32 - Oobfree [8][2]uint32 - Eccpos [32]uint32 - } - NandOobfree struct { - Offset uint32 - Length uint32 - } - NandEcclayout struct { - Eccbytes uint32 - Eccpos [64]uint32 - Oobavail uint32 - Oobfree [8]NandOobfree - } - MtdEccStats struct { - Corrected uint32 - Failed uint32 - Badblocks uint32 - Bbtblocks uint32 - } -) - -const ( - MTD_OPS_PLACE_OOB = 0x0 - MTD_OPS_AUTO_OOB = 0x1 - MTD_OPS_RAW = 0x2 -) - -const ( - MTD_FILE_MODE_NORMAL = 0x0 - MTD_FILE_MODE_OTP_FACTORY = 0x1 - MTD_FILE_MODE_OTP_USER = 0x2 - MTD_FILE_MODE_RAW = 0x3 -) - -const ( - NFC_CMD_UNSPEC = 0x0 - NFC_CMD_GET_DEVICE = 0x1 - NFC_CMD_DEV_UP = 0x2 - NFC_CMD_DEV_DOWN = 0x3 - NFC_CMD_DEP_LINK_UP = 0x4 - NFC_CMD_DEP_LINK_DOWN = 0x5 - NFC_CMD_START_POLL = 0x6 - NFC_CMD_STOP_POLL = 0x7 - NFC_CMD_GET_TARGET = 0x8 - NFC_EVENT_TARGETS_FOUND = 0x9 - NFC_EVENT_DEVICE_ADDED = 0xa - NFC_EVENT_DEVICE_REMOVED = 0xb - NFC_EVENT_TARGET_LOST = 0xc - NFC_EVENT_TM_ACTIVATED = 0xd - NFC_EVENT_TM_DEACTIVATED = 0xe - NFC_CMD_LLC_GET_PARAMS = 0xf - NFC_CMD_LLC_SET_PARAMS = 0x10 - NFC_CMD_ENABLE_SE = 0x11 - NFC_CMD_DISABLE_SE = 0x12 - NFC_CMD_LLC_SDREQ = 0x13 - NFC_EVENT_LLC_SDRES = 0x14 - NFC_CMD_FW_DOWNLOAD = 0x15 - NFC_EVENT_SE_ADDED = 0x16 - NFC_EVENT_SE_REMOVED = 0x17 - NFC_EVENT_SE_CONNECTIVITY = 0x18 - NFC_EVENT_SE_TRANSACTION = 0x19 - NFC_CMD_GET_SE = 0x1a - NFC_CMD_SE_IO = 0x1b - NFC_CMD_ACTIVATE_TARGET = 0x1c - NFC_CMD_VENDOR = 0x1d - NFC_CMD_DEACTIVATE_TARGET = 0x1e - NFC_ATTR_UNSPEC = 0x0 - NFC_ATTR_DEVICE_INDEX = 0x1 - NFC_ATTR_DEVICE_NAME = 0x2 - NFC_ATTR_PROTOCOLS = 0x3 - NFC_ATTR_TARGET_INDEX = 0x4 - NFC_ATTR_TARGET_SENS_RES = 0x5 - NFC_ATTR_TARGET_SEL_RES = 0x6 - NFC_ATTR_TARGET_NFCID1 = 0x7 - NFC_ATTR_TARGET_SENSB_RES = 0x8 - NFC_ATTR_TARGET_SENSF_RES = 0x9 - NFC_ATTR_COMM_MODE = 0xa - NFC_ATTR_RF_MODE = 0xb - NFC_ATTR_DEVICE_POWERED = 0xc - NFC_ATTR_IM_PROTOCOLS = 0xd - NFC_ATTR_TM_PROTOCOLS = 0xe - NFC_ATTR_LLC_PARAM_LTO = 0xf - NFC_ATTR_LLC_PARAM_RW = 0x10 - NFC_ATTR_LLC_PARAM_MIUX = 0x11 - NFC_ATTR_SE = 0x12 - NFC_ATTR_LLC_SDP = 0x13 - NFC_ATTR_FIRMWARE_NAME = 0x14 - NFC_ATTR_SE_INDEX = 0x15 - NFC_ATTR_SE_TYPE = 0x16 - NFC_ATTR_SE_AID = 0x17 - NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18 - NFC_ATTR_SE_APDU = 0x19 - NFC_ATTR_TARGET_ISO15693_DSFID = 0x1a - NFC_ATTR_TARGET_ISO15693_UID = 0x1b - NFC_ATTR_SE_PARAMS = 0x1c - NFC_ATTR_VENDOR_ID = 0x1d - NFC_ATTR_VENDOR_SUBCMD = 0x1e - NFC_ATTR_VENDOR_DATA = 0x1f - NFC_SDP_ATTR_UNSPEC = 0x0 - NFC_SDP_ATTR_URI = 0x1 - NFC_SDP_ATTR_SAP = 0x2 -) - -type LandlockRulesetAttr struct { - Access_fs uint64 - Access_net uint64 - Scoped uint64 -} - -type LandlockPathBeneathAttr struct { - Allowed_access uint64 - Parent_fd int32 -} - -const ( - LANDLOCK_RULE_PATH_BENEATH = 0x1 -) - -const ( - IPC_CREAT = 0x200 - IPC_EXCL = 0x400 - IPC_NOWAIT = 0x800 - IPC_PRIVATE = 0x0 - - ipc_64 = 0x100 -) - -const ( - IPC_RMID = 0x0 - IPC_SET = 0x1 - IPC_STAT = 0x2 -) - -const ( - SHM_RDONLY = 0x1000 - SHM_RND = 0x2000 -) - -type MountAttr struct { - Attr_set uint64 - Attr_clr uint64 - Propagation uint64 - Userns_fd uint64 -} - -const ( - WG_CMD_GET_DEVICE = 0x0 - WG_CMD_SET_DEVICE = 0x1 - WGDEVICE_F_REPLACE_PEERS = 0x1 - WGDEVICE_A_UNSPEC = 0x0 - WGDEVICE_A_IFINDEX = 0x1 - WGDEVICE_A_IFNAME = 0x2 - WGDEVICE_A_PRIVATE_KEY = 0x3 - WGDEVICE_A_PUBLIC_KEY = 0x4 - WGDEVICE_A_FLAGS = 0x5 - WGDEVICE_A_LISTEN_PORT = 0x6 - WGDEVICE_A_FWMARK = 0x7 - WGDEVICE_A_PEERS = 0x8 - WGPEER_F_REMOVE_ME = 0x1 - WGPEER_F_REPLACE_ALLOWEDIPS = 0x2 - WGPEER_F_UPDATE_ONLY = 0x4 - WGPEER_A_UNSPEC = 0x0 - WGPEER_A_PUBLIC_KEY = 0x1 - WGPEER_A_PRESHARED_KEY = 0x2 - WGPEER_A_FLAGS = 0x3 - WGPEER_A_ENDPOINT = 0x4 - WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5 - WGPEER_A_LAST_HANDSHAKE_TIME = 0x6 - WGPEER_A_RX_BYTES = 0x7 - WGPEER_A_TX_BYTES = 0x8 - WGPEER_A_ALLOWEDIPS = 0x9 - WGPEER_A_PROTOCOL_VERSION = 0xa - WGALLOWEDIP_A_UNSPEC = 0x0 - WGALLOWEDIP_A_FAMILY = 0x1 - WGALLOWEDIP_A_IPADDR = 0x2 - WGALLOWEDIP_A_CIDR_MASK = 0x3 -) - -const ( - NL_ATTR_TYPE_INVALID = 0x0 - NL_ATTR_TYPE_FLAG = 0x1 - NL_ATTR_TYPE_U8 = 0x2 - NL_ATTR_TYPE_U16 = 0x3 - NL_ATTR_TYPE_U32 = 0x4 - NL_ATTR_TYPE_U64 = 0x5 - NL_ATTR_TYPE_S8 = 0x6 - NL_ATTR_TYPE_S16 = 0x7 - NL_ATTR_TYPE_S32 = 0x8 - NL_ATTR_TYPE_S64 = 0x9 - NL_ATTR_TYPE_BINARY = 0xa - NL_ATTR_TYPE_STRING = 0xb - NL_ATTR_TYPE_NUL_STRING = 0xc - NL_ATTR_TYPE_NESTED = 0xd - NL_ATTR_TYPE_NESTED_ARRAY = 0xe - NL_ATTR_TYPE_BITFIELD32 = 0xf - - NL_POLICY_TYPE_ATTR_UNSPEC = 0x0 - NL_POLICY_TYPE_ATTR_TYPE = 0x1 - NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 0x2 - NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 0x3 - NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 0x4 - NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 0x5 - NL_POLICY_TYPE_ATTR_MIN_LENGTH = 0x6 - NL_POLICY_TYPE_ATTR_MAX_LENGTH = 0x7 - NL_POLICY_TYPE_ATTR_POLICY_IDX = 0x8 - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 0x9 - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa - NL_POLICY_TYPE_ATTR_PAD = 0xb - NL_POLICY_TYPE_ATTR_MASK = 0xc - NL_POLICY_TYPE_ATTR_MAX = 0xc -) - -type CANBitTiming struct { - Bitrate uint32 - Sample_point uint32 - Tq uint32 - Prop_seg uint32 - Phase_seg1 uint32 - Phase_seg2 uint32 - Sjw uint32 - Brp uint32 -} - -type CANBitTimingConst struct { - Name [16]uint8 - Tseg1_min uint32 - Tseg1_max uint32 - Tseg2_min uint32 - Tseg2_max uint32 - Sjw_max uint32 - Brp_min uint32 - Brp_max uint32 - Brp_inc uint32 -} - -type CANClock struct { - Freq uint32 -} - -type CANBusErrorCounters struct { - Txerr uint16 - Rxerr uint16 -} - -type CANCtrlMode struct { - Mask uint32 - Flags uint32 -} - -type CANDeviceStats struct { - Bus_error uint32 - Error_warning uint32 - Error_passive uint32 - Bus_off uint32 - Arbitration_lost uint32 - Restarts uint32 -} - -const ( - CAN_STATE_ERROR_ACTIVE = 0x0 - CAN_STATE_ERROR_WARNING = 0x1 - CAN_STATE_ERROR_PASSIVE = 0x2 - CAN_STATE_BUS_OFF = 0x3 - CAN_STATE_STOPPED = 0x4 - CAN_STATE_SLEEPING = 0x5 - CAN_STATE_MAX = 0x6 -) - -const ( - IFLA_CAN_UNSPEC = 0x0 - IFLA_CAN_BITTIMING = 0x1 - IFLA_CAN_BITTIMING_CONST = 0x2 - IFLA_CAN_CLOCK = 0x3 - IFLA_CAN_STATE = 0x4 - IFLA_CAN_CTRLMODE = 0x5 - IFLA_CAN_RESTART_MS = 0x6 - IFLA_CAN_RESTART = 0x7 - IFLA_CAN_BERR_COUNTER = 0x8 - IFLA_CAN_DATA_BITTIMING = 0x9 - IFLA_CAN_DATA_BITTIMING_CONST = 0xa - IFLA_CAN_TERMINATION = 0xb - IFLA_CAN_TERMINATION_CONST = 0xc - IFLA_CAN_BITRATE_CONST = 0xd - IFLA_CAN_DATA_BITRATE_CONST = 0xe - IFLA_CAN_BITRATE_MAX = 0xf -) - -type KCMAttach struct { - Fd int32 - Bpf_fd int32 -} - -type KCMUnattach struct { - Fd int32 -} - -type KCMClone struct { - Fd int32 -} - -const ( - NL80211_AC_BE = 0x2 - NL80211_AC_BK = 0x3 - NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0x0 - NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 - NL80211_AC_VI = 0x1 - NL80211_AC_VO = 0x0 - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 - NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 - NL80211_ATTR_4ADDR = 0x53 - NL80211_ATTR_ACK = 0x5c - NL80211_ATTR_ACK_SIGNAL = 0x107 - NL80211_ATTR_ACL_POLICY = 0xa5 - NL80211_ATTR_ADMITTED_TIME = 0xd4 - NL80211_ATTR_AIRTIME_WEIGHT = 0x112 - NL80211_ATTR_AKM_SUITES = 0x4c - NL80211_ATTR_AP_ISOLATE = 0x60 - NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 - NL80211_ATTR_ASSOC_SPP_AMSDU = 0x14a - NL80211_ATTR_AUTH_DATA = 0x9c - NL80211_ATTR_AUTH_TYPE = 0x35 - NL80211_ATTR_BANDS = 0xef - NL80211_ATTR_BEACON_HEAD = 0xe - NL80211_ATTR_BEACON_INTERVAL = 0xc - NL80211_ATTR_BEACON_TAIL = 0xf - NL80211_ATTR_BG_SCAN_PERIOD = 0x98 - NL80211_ATTR_BSS_BASIC_RATES = 0x24 - NL80211_ATTR_BSS = 0x2f - NL80211_ATTR_BSS_CTS_PROT = 0x1c - NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 0x147 - NL80211_ATTR_BSS_HT_OPMODE = 0x6d - NL80211_ATTR_BSSID = 0xf5 - NL80211_ATTR_BSS_SELECT = 0xe3 - NL80211_ATTR_BSS_SHORT_PREAMBLE = 0x1d - NL80211_ATTR_BSS_SHORT_SLOT_TIME = 0x1e - NL80211_ATTR_CENTER_FREQ1 = 0xa0 - NL80211_ATTR_CENTER_FREQ1_OFFSET = 0x123 - NL80211_ATTR_CENTER_FREQ2 = 0xa1 - NL80211_ATTR_CHANNEL_WIDTH = 0x9f - NL80211_ATTR_CH_SWITCH_BLOCK_TX = 0xb8 - NL80211_ATTR_CH_SWITCH_COUNT = 0xb7 - NL80211_ATTR_CIPHER_SUITE_GROUP = 0x4a - NL80211_ATTR_CIPHER_SUITES = 0x39 - NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 0x49 - NL80211_ATTR_CNTDWN_OFFS_BEACON = 0xba - NL80211_ATTR_CNTDWN_OFFS_PRESP = 0xbb - NL80211_ATTR_COALESCE_RULE = 0xb6 - NL80211_ATTR_COALESCE_RULE_CONDITION = 0x2 - NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 - NL80211_ATTR_COALESCE_RULE_MAX = 0x3 - NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 - NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 - NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f - NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 - NL80211_ATTR_CONN_FAILED_REASON = 0x9b - NL80211_ATTR_CONTROL_PORT = 0x44 - NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 - NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 0x67 - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 0x11e - NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 0x108 - NL80211_ATTR_COOKIE = 0x58 - NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 0x8 - NL80211_ATTR_CQM = 0x5e - NL80211_ATTR_CQM_MAX = 0x9 - NL80211_ATTR_CQM_PKT_LOSS_EVENT = 0x4 - NL80211_ATTR_CQM_RSSI_HYST = 0x2 - NL80211_ATTR_CQM_RSSI_LEVEL = 0x9 - NL80211_ATTR_CQM_RSSI_THOLD = 0x1 - NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 0x3 - NL80211_ATTR_CQM_TXE_INTVL = 0x7 - NL80211_ATTR_CQM_TXE_PKTS = 0x6 - NL80211_ATTR_CQM_TXE_RATE = 0x5 - NL80211_ATTR_CRIT_PROT_ID = 0xb3 - NL80211_ATTR_CSA_C_OFF_BEACON = 0xba - NL80211_ATTR_CSA_C_OFF_PRESP = 0xbb - NL80211_ATTR_CSA_C_OFFSETS_TX = 0xcd - NL80211_ATTR_CSA_IES = 0xb9 - NL80211_ATTR_DEVICE_AP_SME = 0x8d - NL80211_ATTR_DFS_CAC_TIME = 0x7 - NL80211_ATTR_DFS_REGION = 0x92 - NL80211_ATTR_DISABLE_EHT = 0x137 - NL80211_ATTR_DISABLE_HE = 0x12d - NL80211_ATTR_DISABLE_HT = 0x93 - NL80211_ATTR_DISABLE_VHT = 0xaf - NL80211_ATTR_DISCONNECTED_BY_AP = 0x47 - NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e - NL80211_ATTR_DTIM_PERIOD = 0xd - NL80211_ATTR_DURATION = 0x57 - NL80211_ATTR_EHT_CAPABILITY = 0x136 - NL80211_ATTR_EMA_RNR_ELEMS = 0x145 - NL80211_ATTR_EML_CAPABILITY = 0x13d - NL80211_ATTR_EXT_CAPA = 0xa9 - NL80211_ATTR_EXT_CAPA_MASK = 0xaa - NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 - NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 0x105 - NL80211_ATTR_EXT_FEATURES = 0xd9 - NL80211_ATTR_FEATURE_FLAGS = 0x8f - NL80211_ATTR_FILS_CACHE_ID = 0xfd - NL80211_ATTR_FILS_DISCOVERY = 0x126 - NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 0xfb - NL80211_ATTR_FILS_ERP_REALM = 0xfa - NL80211_ATTR_FILS_ERP_RRK = 0xfc - NL80211_ATTR_FILS_ERP_USERNAME = 0xf9 - NL80211_ATTR_FILS_KEK = 0xf2 - NL80211_ATTR_FILS_NONCES = 0xf3 - NL80211_ATTR_FRAME = 0x33 - NL80211_ATTR_FRAME_MATCH = 0x5b - NL80211_ATTR_FRAME_TYPE = 0x65 - NL80211_ATTR_FREQ_AFTER = 0x3b - NL80211_ATTR_FREQ_BEFORE = 0x3a - NL80211_ATTR_FREQ_FIXED = 0x3c - NL80211_ATTR_FREQ_RANGE_END = 0x3 - NL80211_ATTR_FREQ_RANGE_MAX_BW = 0x4 - NL80211_ATTR_FREQ_RANGE_START = 0x2 - NL80211_ATTR_FTM_RESPONDER = 0x10e - NL80211_ATTR_FTM_RESPONDER_STATS = 0x10f - NL80211_ATTR_GENERATION = 0x2e - NL80211_ATTR_HANDLE_DFS = 0xbf - NL80211_ATTR_HE_6GHZ_CAPABILITY = 0x125 - NL80211_ATTR_HE_BSS_COLOR = 0x11b - NL80211_ATTR_HE_CAPABILITY = 0x10d - NL80211_ATTR_HE_OBSS_PD = 0x117 - NL80211_ATTR_HIDDEN_SSID = 0x7e - NL80211_ATTR_HT_CAPABILITY = 0x1f - NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 - NL80211_ATTR_HW_TIMESTAMP_ENABLED = 0x144 - NL80211_ATTR_IE_ASSOC_RESP = 0x80 - NL80211_ATTR_IE = 0x2a - NL80211_ATTR_IE_PROBE_RESP = 0x7f - NL80211_ATTR_IE_RIC = 0xb2 - NL80211_ATTR_IFACE_SOCKET_OWNER = 0xcc - NL80211_ATTR_IFINDEX = 0x3 - NL80211_ATTR_IFNAME = 0x4 - NL80211_ATTR_IFTYPE_AKM_SUITES = 0x11c - NL80211_ATTR_IFTYPE = 0x5 - NL80211_ATTR_IFTYPE_EXT_CAPA = 0xe6 - NL80211_ATTR_INACTIVITY_TIMEOUT = 0x96 - NL80211_ATTR_INTERFACE_COMBINATIONS = 0x78 - NL80211_ATTR_KEY_CIPHER = 0x9 - NL80211_ATTR_KEY = 0x50 - NL80211_ATTR_KEY_DATA = 0x7 - NL80211_ATTR_KEY_DEFAULT = 0xb - NL80211_ATTR_KEY_DEFAULT_MGMT = 0x28 - NL80211_ATTR_KEY_DEFAULT_TYPES = 0x6e - NL80211_ATTR_KEY_IDX = 0x8 - NL80211_ATTR_KEYS = 0x51 - NL80211_ATTR_KEY_SEQ = 0xa - NL80211_ATTR_KEY_TYPE = 0x37 - NL80211_ATTR_LOCAL_MESH_POWER_MODE = 0xa4 - NL80211_ATTR_LOCAL_STATE_CHANGE = 0x5f - NL80211_ATTR_MAC_ACL_MAX = 0xa7 - NL80211_ATTR_MAC_ADDRS = 0xa6 - NL80211_ATTR_MAC = 0x6 - NL80211_ATTR_MAC_HINT = 0xc8 - NL80211_ATTR_MAC_MASK = 0xd7 - NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x150 - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 - NL80211_ATTR_MAX_CSA_COUNTERS = 0xce - NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 0x143 - NL80211_ATTR_MAX_MATCH_SETS = 0x85 - NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c - NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 - NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b - NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde - NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 0x7b - NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 0x6f - NL80211_ATTR_MAX_SCAN_IE_LEN = 0x38 - NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf - NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 - NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c - NL80211_ATTR_MBSSID_CONFIG = 0x132 - NL80211_ATTR_MBSSID_ELEMS = 0x133 - NL80211_ATTR_MCAST_RATE = 0x6b - NL80211_ATTR_MDID = 0xb1 - NL80211_ATTR_MEASUREMENT_DURATION = 0xeb - NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 0xec - NL80211_ATTR_MESH_CONFIG = 0x23 - NL80211_ATTR_MESH_ID = 0x18 - NL80211_ATTR_MESH_PEER_AID = 0xed - NL80211_ATTR_MESH_SETUP = 0x70 - NL80211_ATTR_MGMT_SUBTYPE = 0x29 - NL80211_ATTR_MLD_ADDR = 0x13a - NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e - NL80211_ATTR_MLO_LINK_DISABLED = 0x146 - NL80211_ATTR_MLO_LINK_ID = 0x139 - NL80211_ATTR_MLO_LINKS = 0x138 - NL80211_ATTR_MLO_SUPPORT = 0x13b - NL80211_ATTR_MLO_TTLM_DLINK = 0x148 - NL80211_ATTR_MLO_TTLM_ULINK = 0x149 - NL80211_ATTR_MNTR_FLAGS = 0x17 - NL80211_ATTR_MPATH_INFO = 0x1b - NL80211_ATTR_MPATH_NEXT_HOP = 0x1a - NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 0xf4 - NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 0xe8 - NL80211_ATTR_MU_MIMO_GROUP_DATA = 0xe7 - NL80211_ATTR_NAN_FUNC = 0xf0 - NL80211_ATTR_NAN_MASTER_PREF = 0xee - NL80211_ATTR_NAN_MATCH = 0xf1 - NL80211_ATTR_NETNS_FD = 0xdb - NL80211_ATTR_NOACK_MAP = 0x95 - NL80211_ATTR_NSS = 0x106 - NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e - NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c - NL80211_ATTR_OPER_CLASS = 0xd6 - NL80211_ATTR_OPMODE_NOTIF = 0xc2 - NL80211_ATTR_P2P_CTWINDOW = 0xa2 - NL80211_ATTR_P2P_OPPPS = 0xa3 - NL80211_ATTR_PAD = 0xe5 - NL80211_ATTR_PBSS = 0xe2 - NL80211_ATTR_PEER_AID = 0xb5 - NL80211_ATTR_PEER_MEASUREMENTS = 0x111 - NL80211_ATTR_PID = 0x52 - NL80211_ATTR_PMK = 0xfe - NL80211_ATTR_PMKID = 0x55 - NL80211_ATTR_PMK_LIFETIME = 0x11f - NL80211_ATTR_PMKR0_NAME = 0x102 - NL80211_ATTR_PMK_REAUTH_THRESHOLD = 0x120 - NL80211_ATTR_PMKSA_CANDIDATE = 0x86 - NL80211_ATTR_PORT_AUTHORIZED = 0x103 - NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 - NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 - NL80211_ATTR_POWER_RULE_PSD = 0x8 - NL80211_ATTR_PREV_BSSID = 0x4f - NL80211_ATTR_PRIVACY = 0x46 - NL80211_ATTR_PROBE_RESP = 0x91 - NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 - NL80211_ATTR_PROTOCOL_FEATURES = 0xad - NL80211_ATTR_PS_STATE = 0x5d - NL80211_ATTR_PUNCT_BITMAP = 0x142 - NL80211_ATTR_QOS_MAP = 0xc7 - NL80211_ATTR_RADAR_BACKGROUND = 0x134 - NL80211_ATTR_RADAR_EVENT = 0xa8 - NL80211_ATTR_REASON_CODE = 0x36 - NL80211_ATTR_RECEIVE_MULTICAST = 0x121 - NL80211_ATTR_RECONNECT_REQUESTED = 0x12b - NL80211_ATTR_REG_ALPHA2 = 0x21 - NL80211_ATTR_REG_INDOOR = 0xdd - NL80211_ATTR_REG_INITIATOR = 0x30 - NL80211_ATTR_REG_RULE_FLAGS = 0x1 - NL80211_ATTR_REG_RULES = 0x22 - NL80211_ATTR_REG_TYPE = 0x31 - NL80211_ATTR_REKEY_DATA = 0x7a - NL80211_ATTR_REQ_IE = 0x4d - NL80211_ATTR_RESP_IE = 0x4e - NL80211_ATTR_ROAM_SUPPORT = 0x83 - NL80211_ATTR_RX_FRAME_TYPES = 0x64 - NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 - NL80211_ATTR_RXMGMT_FLAGS = 0xbc - NL80211_ATTR_RX_SIGNAL_DBM = 0x97 - NL80211_ATTR_S1G_CAPABILITY = 0x128 - NL80211_ATTR_S1G_CAPABILITY_MASK = 0x129 - NL80211_ATTR_SAE_DATA = 0x9c - NL80211_ATTR_SAE_PASSWORD = 0x115 - NL80211_ATTR_SAE_PWE = 0x12a - NL80211_ATTR_SAR_SPEC = 0x12c - NL80211_ATTR_SCAN_FLAGS = 0x9e - NL80211_ATTR_SCAN_FREQ_KHZ = 0x124 - NL80211_ATTR_SCAN_FREQUENCIES = 0x2c - NL80211_ATTR_SCAN_GENERATION = 0x2e - NL80211_ATTR_SCAN_SSIDS = 0x2d - NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 0xea - NL80211_ATTR_SCAN_START_TIME_TSF = 0xe9 - NL80211_ATTR_SCAN_SUPP_RATES = 0x7d - NL80211_ATTR_SCHED_SCAN_DELAY = 0xdc - NL80211_ATTR_SCHED_SCAN_INTERVAL = 0x77 - NL80211_ATTR_SCHED_SCAN_MATCH = 0x84 - NL80211_ATTR_SCHED_SCAN_MATCH_SSID = 0x1 - NL80211_ATTR_SCHED_SCAN_MAX_REQS = 0x100 - NL80211_ATTR_SCHED_SCAN_MULTI = 0xff - NL80211_ATTR_SCHED_SCAN_PLANS = 0xe1 - NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 0xf6 - NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 0xf7 - NL80211_ATTR_SMPS_MODE = 0xd5 - NL80211_ATTR_SOCKET_OWNER = 0xcc - NL80211_ATTR_SOFTWARE_IFTYPES = 0x79 - NL80211_ATTR_SPLIT_WIPHY_DUMP = 0xae - NL80211_ATTR_SSID = 0x34 - NL80211_ATTR_STA_AID = 0x10 - NL80211_ATTR_STA_CAPABILITY = 0xab - NL80211_ATTR_STA_EXT_CAPABILITY = 0xac - NL80211_ATTR_STA_FLAGS2 = 0x43 - NL80211_ATTR_STA_FLAGS = 0x11 - NL80211_ATTR_STA_INFO = 0x15 - NL80211_ATTR_STA_LISTEN_INTERVAL = 0x12 - NL80211_ATTR_STA_PLINK_ACTION = 0x19 - NL80211_ATTR_STA_PLINK_STATE = 0x74 - NL80211_ATTR_STA_SUPPORTED_CHANNELS = 0xbd - NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 0xbe - NL80211_ATTR_STA_SUPPORTED_RATES = 0x13 - NL80211_ATTR_STA_SUPPORT_P2P_PS = 0xe4 - NL80211_ATTR_STATUS_CODE = 0x48 - NL80211_ATTR_STA_TX_POWER = 0x114 - NL80211_ATTR_STA_TX_POWER_SETTING = 0x113 - NL80211_ATTR_STA_VLAN = 0x14 - NL80211_ATTR_STA_WME = 0x81 - NL80211_ATTR_SUPPORT_10_MHZ = 0xc1 - NL80211_ATTR_SUPPORT_5_MHZ = 0xc0 - NL80211_ATTR_SUPPORT_AP_UAPSD = 0x82 - NL80211_ATTR_SUPPORTED_COMMANDS = 0x32 - NL80211_ATTR_SUPPORTED_IFTYPES = 0x20 - NL80211_ATTR_SUPPORT_IBSS_RSN = 0x68 - NL80211_ATTR_SUPPORT_MESH_AUTH = 0x73 - NL80211_ATTR_SURVEY_INFO = 0x54 - NL80211_ATTR_SURVEY_RADIO_STATS = 0xda - NL80211_ATTR_TD_BITMAP = 0x141 - NL80211_ATTR_TDLS_ACTION = 0x88 - NL80211_ATTR_TDLS_DIALOG_TOKEN = 0x89 - NL80211_ATTR_TDLS_EXTERNAL_SETUP = 0x8c - NL80211_ATTR_TDLS_INITIATOR = 0xcf - NL80211_ATTR_TDLS_OPERATION = 0x8a - NL80211_ATTR_TDLS_PEER_CAPABILITY = 0xcb - NL80211_ATTR_TDLS_SUPPORT = 0x8b - NL80211_ATTR_TESTDATA = 0x45 - NL80211_ATTR_TID_CONFIG = 0x11d - NL80211_ATTR_TIMED_OUT = 0x41 - NL80211_ATTR_TIMEOUT = 0x110 - NL80211_ATTR_TIMEOUT_REASON = 0xf8 - NL80211_ATTR_TSID = 0xd2 - NL80211_ATTR_TWT_RESPONDER = 0x116 - NL80211_ATTR_TX_FRAME_TYPES = 0x63 - NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f - NL80211_ATTR_TX_NO_CCK_RATE = 0x87 - NL80211_ATTR_TXQ_LIMIT = 0x10a - NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b - NL80211_ATTR_TXQ_QUANTUM = 0x10c - NL80211_ATTR_TXQ_STATS = 0x109 - NL80211_ATTR_TX_RATES = 0x5a - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 0x127 - NL80211_ATTR_UNSPEC = 0x0 - NL80211_ATTR_USE_MFP = 0x42 - NL80211_ATTR_USER_PRIO = 0xd3 - NL80211_ATTR_USER_REG_HINT_TYPE = 0x9a - NL80211_ATTR_USE_RRM = 0xd0 - NL80211_ATTR_VENDOR_DATA = 0xc5 - NL80211_ATTR_VENDOR_EVENTS = 0xc6 - NL80211_ATTR_VENDOR_ID = 0xc3 - NL80211_ATTR_VENDOR_SUBCMD = 0xc4 - NL80211_ATTR_VHT_CAPABILITY = 0x9d - NL80211_ATTR_VHT_CAPABILITY_MASK = 0xb0 - NL80211_ATTR_VLAN_ID = 0x11a - NL80211_ATTR_WANT_1X_4WAY_HS = 0x101 - NL80211_ATTR_WDEV = 0x99 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 0x72 - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 0x71 - NL80211_ATTR_WIPHY_ANTENNA_RX = 0x6a - NL80211_ATTR_WIPHY_ANTENNA_TX = 0x69 - NL80211_ATTR_WIPHY_BANDS = 0x16 - NL80211_ATTR_WIPHY_CHANNEL_TYPE = 0x27 - NL80211_ATTR_WIPHY = 0x1 - NL80211_ATTR_WIPHY_COVERAGE_CLASS = 0x59 - NL80211_ATTR_WIPHY_DYN_ACK = 0xd1 - NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 0x119 - NL80211_ATTR_WIPHY_EDMG_CHANNELS = 0x118 - NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 0x3f - NL80211_ATTR_WIPHY_FREQ = 0x26 - NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 - NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 - NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS = 0x14c - NL80211_ATTR_WIPHY_NAME = 0x2 - NL80211_ATTR_WIPHY_RADIOS = 0x14b - NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e - NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d - NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 - NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 0xd8 - NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 0x62 - NL80211_ATTR_WIPHY_TX_POWER_SETTING = 0x61 - NL80211_ATTR_WIPHY_TXQ_PARAMS = 0x25 - NL80211_ATTR_WOWLAN_TRIGGERS = 0x75 - NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 0x76 - NL80211_ATTR_WPA_VERSIONS = 0x4b - NL80211_AUTHTYPE_AUTOMATIC = 0x8 - NL80211_AUTHTYPE_FILS_PK = 0x7 - NL80211_AUTHTYPE_FILS_SK = 0x5 - NL80211_AUTHTYPE_FILS_SK_PFS = 0x6 - NL80211_AUTHTYPE_FT = 0x2 - NL80211_AUTHTYPE_MAX = 0x7 - NL80211_AUTHTYPE_NETWORK_EAP = 0x3 - NL80211_AUTHTYPE_OPEN_SYSTEM = 0x0 - NL80211_AUTHTYPE_SAE = 0x4 - NL80211_AUTHTYPE_SHARED_KEY = 0x1 - NL80211_BAND_2GHZ = 0x0 - NL80211_BAND_5GHZ = 0x1 - NL80211_BAND_60GHZ = 0x2 - NL80211_BAND_6GHZ = 0x3 - NL80211_BAND_ATTR_EDMG_BW_CONFIG = 0xb - NL80211_BAND_ATTR_EDMG_CHANNELS = 0xa - NL80211_BAND_ATTR_FREQS = 0x1 - NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 0x6 - NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 0x5 - NL80211_BAND_ATTR_HT_CAPA = 0x4 - NL80211_BAND_ATTR_HT_MCS_SET = 0x3 - NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 - NL80211_BAND_ATTR_MAX = 0xd - NL80211_BAND_ATTR_RATES = 0x2 - NL80211_BAND_ATTR_S1G_CAPA = 0xd - NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 0xc - NL80211_BAND_ATTR_VHT_CAPA = 0x8 - NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 - NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb - NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 0x3 - NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 - NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 - NL80211_BAND_IFTYPE_ATTR_MAX = 0xb - NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 - NL80211_BAND_LC = 0x5 - NL80211_BAND_S1GHZ = 0x4 - NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 - NL80211_BITRATE_ATTR_MAX = 0x2 - NL80211_BITRATE_ATTR_RATE = 0x1 - NL80211_BSS_BEACON_IES = 0xb - NL80211_BSS_BEACON_INTERVAL = 0x4 - NL80211_BSS_BEACON_TSF = 0xd - NL80211_BSS_BSSID = 0x1 - NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 0x2 - NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 0x1 - NL80211_BSS_CANNOT_USE_REASONS = 0x18 - NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 0x2 - NL80211_BSS_CAPABILITY = 0x5 - NL80211_BSS_CHAIN_SIGNAL = 0x13 - NL80211_BSS_CHAN_WIDTH_10 = 0x1 - NL80211_BSS_CHAN_WIDTH_1 = 0x3 - NL80211_BSS_CHAN_WIDTH_20 = 0x0 - NL80211_BSS_CHAN_WIDTH_2 = 0x4 - NL80211_BSS_CHAN_WIDTH_5 = 0x2 - NL80211_BSS_CHAN_WIDTH = 0xc - NL80211_BSS_FREQUENCY = 0x2 - NL80211_BSS_FREQUENCY_OFFSET = 0x14 - NL80211_BSS_INFORMATION_ELEMENTS = 0x6 - NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x18 - NL80211_BSS_MLD_ADDR = 0x16 - NL80211_BSS_MLO_LINK_ID = 0x15 - NL80211_BSS_PAD = 0x10 - NL80211_BSS_PARENT_BSSID = 0x12 - NL80211_BSS_PARENT_TSF = 0x11 - NL80211_BSS_PRESP_DATA = 0xe - NL80211_BSS_SEEN_MS_AGO = 0xa - NL80211_BSS_SELECT_ATTR_BAND_PREF = 0x2 - NL80211_BSS_SELECT_ATTR_MAX = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 0x3 - NL80211_BSS_SELECT_ATTR_RSSI = 0x1 - NL80211_BSS_SIGNAL_MBM = 0x7 - NL80211_BSS_SIGNAL_UNSPEC = 0x8 - NL80211_BSS_STATUS_ASSOCIATED = 0x1 - NL80211_BSS_STATUS_AUTHENTICATED = 0x0 - NL80211_BSS_STATUS = 0x9 - NL80211_BSS_STATUS_IBSS_JOINED = 0x2 - NL80211_BSS_TSF = 0x3 - NL80211_BSS_USE_FOR = 0x17 - NL80211_BSS_USE_FOR_MLD_LINK = 0x2 - NL80211_BSS_USE_FOR_NORMAL = 0x1 - NL80211_CHAN_HT20 = 0x1 - NL80211_CHAN_HT40MINUS = 0x2 - NL80211_CHAN_HT40PLUS = 0x3 - NL80211_CHAN_NO_HT = 0x0 - NL80211_CHAN_WIDTH_10 = 0x7 - NL80211_CHAN_WIDTH_160 = 0x5 - NL80211_CHAN_WIDTH_16 = 0xc - NL80211_CHAN_WIDTH_1 = 0x8 - NL80211_CHAN_WIDTH_20 = 0x1 - NL80211_CHAN_WIDTH_20_NOHT = 0x0 - NL80211_CHAN_WIDTH_2 = 0x9 - NL80211_CHAN_WIDTH_320 = 0xd - NL80211_CHAN_WIDTH_40 = 0x2 - NL80211_CHAN_WIDTH_4 = 0xa - NL80211_CHAN_WIDTH_5 = 0x6 - NL80211_CHAN_WIDTH_80 = 0x3 - NL80211_CHAN_WIDTH_80P80 = 0x4 - NL80211_CHAN_WIDTH_8 = 0xb - NL80211_CMD_ABORT_SCAN = 0x72 - NL80211_CMD_ACTION = 0x3b - NL80211_CMD_ACTION_TX_STATUS = 0x3c - NL80211_CMD_ADD_LINK = 0x94 - NL80211_CMD_ADD_LINK_STA = 0x96 - NL80211_CMD_ADD_NAN_FUNCTION = 0x75 - NL80211_CMD_ADD_TX_TS = 0x69 - NL80211_CMD_ASSOC_COMEBACK = 0x93 - NL80211_CMD_ASSOCIATE = 0x26 - NL80211_CMD_AUTHENTICATE = 0x25 - NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 - NL80211_CMD_CHANGE_NAN_CONFIG = 0x77 - NL80211_CMD_CHANNEL_SWITCH = 0x66 - NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 - NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e - NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 - NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 - NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e - NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f - NL80211_CMD_CONNECT = 0x2e - NL80211_CMD_CONN_FAILED = 0x5b - NL80211_CMD_CONTROL_PORT_FRAME = 0x81 - NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 0x8b - NL80211_CMD_CRIT_PROTOCOL_START = 0x62 - NL80211_CMD_CRIT_PROTOCOL_STOP = 0x63 - NL80211_CMD_DEAUTHENTICATE = 0x27 - NL80211_CMD_DEL_BEACON = 0x10 - NL80211_CMD_DEL_INTERFACE = 0x8 - NL80211_CMD_DEL_KEY = 0xc - NL80211_CMD_DEL_MPATH = 0x18 - NL80211_CMD_DEL_NAN_FUNCTION = 0x76 - NL80211_CMD_DEL_PMK = 0x7c - NL80211_CMD_DEL_PMKSA = 0x35 - NL80211_CMD_DEL_STATION = 0x14 - NL80211_CMD_DEL_TX_TS = 0x6a - NL80211_CMD_DEL_WIPHY = 0x4 - NL80211_CMD_DISASSOCIATE = 0x28 - NL80211_CMD_DISCONNECT = 0x30 - NL80211_CMD_EXTERNAL_AUTH = 0x7f - NL80211_CMD_FLUSH_PMKSA = 0x36 - NL80211_CMD_FRAME = 0x3b - NL80211_CMD_FRAME_TX_STATUS = 0x3c - NL80211_CMD_FRAME_WAIT_CANCEL = 0x43 - NL80211_CMD_FT_EVENT = 0x61 - NL80211_CMD_GET_BEACON = 0xd - NL80211_CMD_GET_COALESCE = 0x64 - NL80211_CMD_GET_FTM_RESPONDER_STATS = 0x82 - NL80211_CMD_GET_INTERFACE = 0x5 - NL80211_CMD_GET_KEY = 0x9 - NL80211_CMD_GET_MESH_CONFIG = 0x1c - NL80211_CMD_GET_MESH_PARAMS = 0x1c - NL80211_CMD_GET_MPATH = 0x15 - NL80211_CMD_GET_MPP = 0x6b - NL80211_CMD_GET_POWER_SAVE = 0x3e - NL80211_CMD_GET_PROTOCOL_FEATURES = 0x5f - NL80211_CMD_GET_REG = 0x1f - NL80211_CMD_GET_SCAN = 0x20 - NL80211_CMD_GET_STATION = 0x11 - NL80211_CMD_GET_SURVEY = 0x32 - NL80211_CMD_GET_WIPHY = 0x1 - NL80211_CMD_GET_WOWLAN = 0x49 - NL80211_CMD_JOIN_IBSS = 0x2b - NL80211_CMD_JOIN_MESH = 0x44 - NL80211_CMD_JOIN_OCB = 0x6c - NL80211_CMD_LEAVE_IBSS = 0x2c - NL80211_CMD_LEAVE_MESH = 0x45 - NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_LINKS_REMOVED = 0x9a - NL80211_CMD_MAX = 0x9d - NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 - NL80211_CMD_MODIFY_LINK_STA = 0x97 - NL80211_CMD_NAN_MATCH = 0x78 - NL80211_CMD_NEW_BEACON = 0xf - NL80211_CMD_NEW_INTERFACE = 0x7 - NL80211_CMD_NEW_KEY = 0xb - NL80211_CMD_NEW_MPATH = 0x17 - NL80211_CMD_NEW_PEER_CANDIDATE = 0x48 - NL80211_CMD_NEW_SCAN_RESULTS = 0x22 - NL80211_CMD_NEW_STATION = 0x13 - NL80211_CMD_NEW_SURVEY_RESULTS = 0x33 - NL80211_CMD_NEW_WIPHY = 0x3 - NL80211_CMD_NOTIFY_CQM = 0x40 - NL80211_CMD_NOTIFY_RADAR = 0x86 - NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d - NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 - NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 - NL80211_CMD_PEER_MEASUREMENT_START = 0x83 - NL80211_CMD_PMKSA_CANDIDATE = 0x50 - NL80211_CMD_PORT_AUTHORIZED = 0x7d - NL80211_CMD_PROBE_CLIENT = 0x54 - NL80211_CMD_PROBE_MESH_LINK = 0x88 - NL80211_CMD_RADAR_DETECT = 0x5e - NL80211_CMD_REG_BEACON_HINT = 0x2a - NL80211_CMD_REG_CHANGE = 0x24 - NL80211_CMD_REGISTER_ACTION = 0x3a - NL80211_CMD_REGISTER_BEACONS = 0x55 - NL80211_CMD_REGISTER_FRAME = 0x3a - NL80211_CMD_RELOAD_REGDB = 0x7e - NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 - NL80211_CMD_REMOVE_LINK = 0x95 - NL80211_CMD_REMOVE_LINK_STA = 0x98 - NL80211_CMD_REQ_SET_REG = 0x1b - NL80211_CMD_ROAM = 0x2f - NL80211_CMD_SCAN_ABORTED = 0x23 - NL80211_CMD_SCHED_SCAN_RESULTS = 0x4d - NL80211_CMD_SCHED_SCAN_STOPPED = 0x4e - NL80211_CMD_SET_BEACON = 0xe - NL80211_CMD_SET_BSS = 0x19 - NL80211_CMD_SET_CHANNEL = 0x41 - NL80211_CMD_SET_COALESCE = 0x65 - NL80211_CMD_SET_CQM = 0x3f - NL80211_CMD_SET_FILS_AAD = 0x92 - NL80211_CMD_SET_HW_TIMESTAMP = 0x99 - NL80211_CMD_SET_INTERFACE = 0x6 - NL80211_CMD_SET_KEY = 0xa - NL80211_CMD_SET_MAC_ACL = 0x5d - NL80211_CMD_SET_MCAST_RATE = 0x5c - NL80211_CMD_SET_MESH_CONFIG = 0x1d - NL80211_CMD_SET_MESH_PARAMS = 0x1d - NL80211_CMD_SET_MGMT_EXTRA_IE = 0x1e - NL80211_CMD_SET_MPATH = 0x16 - NL80211_CMD_SET_MULTICAST_TO_UNICAST = 0x79 - NL80211_CMD_SET_NOACK_MAP = 0x57 - NL80211_CMD_SET_PMK = 0x7b - NL80211_CMD_SET_PMKSA = 0x34 - NL80211_CMD_SET_POWER_SAVE = 0x3d - NL80211_CMD_SET_QOS_MAP = 0x68 - NL80211_CMD_SET_REG = 0x1a - NL80211_CMD_SET_REKEY_OFFLOAD = 0x4f - NL80211_CMD_SET_SAR_SPECS = 0x8c - NL80211_CMD_SET_STATION = 0x12 - NL80211_CMD_SET_TID_CONFIG = 0x89 - NL80211_CMD_SET_TID_TO_LINK_MAPPING = 0x9b - NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 - NL80211_CMD_SET_WDS_PEER = 0x42 - NL80211_CMD_SET_WIPHY = 0x2 - NL80211_CMD_SET_WIPHY_NETNS = 0x31 - NL80211_CMD_SET_WOWLAN = 0x4a - NL80211_CMD_STA_OPMODE_CHANGED = 0x80 - NL80211_CMD_START_AP = 0xf - NL80211_CMD_START_NAN = 0x73 - NL80211_CMD_START_P2P_DEVICE = 0x59 - NL80211_CMD_START_SCHED_SCAN = 0x4b - NL80211_CMD_STOP_AP = 0x10 - NL80211_CMD_STOP_NAN = 0x74 - NL80211_CMD_STOP_P2P_DEVICE = 0x5a - NL80211_CMD_STOP_SCHED_SCAN = 0x4c - NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 0x70 - NL80211_CMD_TDLS_CHANNEL_SWITCH = 0x6f - NL80211_CMD_TDLS_MGMT = 0x52 - NL80211_CMD_TDLS_OPER = 0x51 - NL80211_CMD_TESTMODE = 0x2d - NL80211_CMD_TRIGGER_SCAN = 0x21 - NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 0x56 - NL80211_CMD_UNEXPECTED_FRAME = 0x53 - NL80211_CMD_UNPROT_BEACON = 0x8a - NL80211_CMD_UNPROT_DEAUTHENTICATE = 0x46 - NL80211_CMD_UNPROT_DISASSOCIATE = 0x47 - NL80211_CMD_UNSPEC = 0x0 - NL80211_CMD_UPDATE_CONNECT_PARAMS = 0x7a - NL80211_CMD_UPDATE_FT_IES = 0x60 - NL80211_CMD_UPDATE_OWE_INFO = 0x87 - NL80211_CMD_VENDOR = 0x67 - NL80211_CMD_WIPHY_REG_CHANGE = 0x71 - NL80211_COALESCE_CONDITION_MATCH = 0x0 - NL80211_COALESCE_CONDITION_NO_MATCH = 0x1 - NL80211_CONN_FAIL_BLOCKED_CLIENT = 0x1 - NL80211_CONN_FAIL_MAX_CLIENTS = 0x0 - NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 0x2 - NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 0x1 - NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0x0 - NL80211_CQM_TXE_MAX_INTVL = 0x708 - NL80211_CRIT_PROTO_APIPA = 0x3 - NL80211_CRIT_PROTO_DHCP = 0x1 - NL80211_CRIT_PROTO_EAPOL = 0x2 - NL80211_CRIT_PROTO_MAX_DURATION = 0x1388 - NL80211_CRIT_PROTO_UNSPEC = 0x0 - NL80211_DFS_AVAILABLE = 0x2 - NL80211_DFS_ETSI = 0x2 - NL80211_DFS_FCC = 0x1 - NL80211_DFS_JP = 0x3 - NL80211_DFS_UNAVAILABLE = 0x1 - NL80211_DFS_UNSET = 0x0 - NL80211_DFS_USABLE = 0x0 - NL80211_EDMG_BW_CONFIG_MAX = 0xf - NL80211_EDMG_BW_CONFIG_MIN = 0x4 - NL80211_EDMG_CHANNELS_MAX = 0x3c - NL80211_EDMG_CHANNELS_MIN = 0x1 - NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 - NL80211_EHT_MIN_CAPABILITY_LEN = 0xd - NL80211_EXTERNAL_AUTH_ABORT = 0x1 - NL80211_EXTERNAL_AUTH_START = 0x0 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 0x10 - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 0xf - NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 0x12 - NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 - NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 - NL80211_EXT_FEATURE_AQL = 0x28 - NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 0x40 - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e - NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 - NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 - NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 - NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 - NL80211_EXT_FEATURE_BSS_COLOR = 0x3a - NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 - NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 0x1a - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30 - NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd - NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b - NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c - NL80211_EXT_FEATURE_DFS_CONCURRENT = 0x43 - NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 - NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 - NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b - NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 - NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 - NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe - NL80211_EXT_FEATURE_FILS_STA = 0x9 - NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 0x18 - NL80211_EXT_FEATURE_LOW_POWER_SCAN = 0x17 - NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 0x16 - NL80211_EXT_FEATURE_MFP_OPTIONAL = 0x15 - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 0xa - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 0xb - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 0x2d - NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 0x2 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 - NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 - NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 0x42 - NL80211_EXT_FEATURE_OWE_OFFLOAD = 0x41 - NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d - NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 - NL80211_EXT_FEATURE_PUNCT = 0x3e - NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c - NL80211_EXT_FEATURE_RRM = 0x1 - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 - NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 0x2f - NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 0x1e - NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 0x1d - NL80211_EXT_FEATURE_SCAN_START_TIME = 0x3 - NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 - NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc - NL80211_EXT_FEATURE_SECURE_LTF = 0x37 - NL80211_EXT_FEATURE_SECURE_NAN = 0x3f - NL80211_EXT_FEATURE_SECURE_RTT = 0x38 - NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 - NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 0x44 - NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 - NL80211_EXT_FEATURE_TXQS = 0x1c - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 - NL80211_EXT_FEATURE_VHT_IBSS = 0x0 - NL80211_EXT_FEATURE_VLAN_OFFLOAD = 0x27 - NL80211_FEATURE_ACKTO_ESTIMATION = 0x800000 - NL80211_FEATURE_ACTIVE_MONITOR = 0x20000 - NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 0x4000 - NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 0x40000 - NL80211_FEATURE_AP_SCAN = 0x100 - NL80211_FEATURE_CELL_BASE_REG_HINTS = 0x8 - NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 0x80000 - NL80211_FEATURE_DYNAMIC_SMPS = 0x2000000 - NL80211_FEATURE_FULL_AP_CLIENT_STATE = 0x8000 - NL80211_FEATURE_HT_IBSS = 0x2 - NL80211_FEATURE_INACTIVITY_TIMER = 0x4 - NL80211_FEATURE_LOW_PRIORITY_SCAN = 0x40 - NL80211_FEATURE_MAC_ON_CREATE = 0x8000000 - NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 0x80000000 - NL80211_FEATURE_NEED_OBSS_SCAN = 0x400 - NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 0x10 - NL80211_FEATURE_P2P_GO_CTWIN = 0x800 - NL80211_FEATURE_P2P_GO_OPPPS = 0x1000 - NL80211_FEATURE_QUIET = 0x200000 - NL80211_FEATURE_SAE = 0x20 - NL80211_FEATURE_SCAN_FLUSH = 0x80 - NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 0x20000000 - NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 0x40000000 - NL80211_FEATURE_SK_TX_STATUS = 0x1 - NL80211_FEATURE_STATIC_SMPS = 0x1000000 - NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 0x4000000 - NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 0x10000000 - NL80211_FEATURE_TX_POWER_INSERTION = 0x400000 - NL80211_FEATURE_USERSPACE_MPM = 0x10000 - NL80211_FEATURE_VIF_TXPOWER = 0x200 - NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 0x100000 - NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 0x2 - NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 0x1 - NL80211_FILS_DISCOVERY_ATTR_MAX = 0x3 - NL80211_FILS_DISCOVERY_ATTR_TMPL = 0x3 - NL80211_FILS_DISCOVERY_TMPL_MIN_LEN = 0x2a - NL80211_FREQUENCY_ATTR_16MHZ = 0x19 - NL80211_FREQUENCY_ATTR_1MHZ = 0x15 - NL80211_FREQUENCY_ATTR_2MHZ = 0x16 - NL80211_FREQUENCY_ATTR_4MHZ = 0x17 - NL80211_FREQUENCY_ATTR_8MHZ = 0x18 - NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP = 0x21 - NL80211_FREQUENCY_ATTR_CAN_MONITOR = 0x20 - NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd - NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 0x1d - NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 - NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 - NL80211_FREQUENCY_ATTR_DISABLED = 0x2 - NL80211_FREQUENCY_ATTR_FREQ = 0x1 - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x21 - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc - NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 - NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a - NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 0x1f - NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 0x1e - NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb - NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b - NL80211_FREQUENCY_ATTR_NO_HE = 0x13 - NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 - NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa - NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 - NL80211_FREQUENCY_ATTR_NO_IR = 0x3 - NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT = 0x1f - NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT = 0x1e - NL80211_FREQUENCY_ATTR_OFFSET = 0x14 - NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 - NL80211_FREQUENCY_ATTR_PSD = 0x1c - NL80211_FREQUENCY_ATTR_RADAR = 0x5 - NL80211_FREQUENCY_ATTR_WMM = 0x12 - NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 - NL80211_FTM_RESP_ATTR_ENABLED = 0x1 - NL80211_FTM_RESP_ATTR_LCI = 0x2 - NL80211_FTM_RESP_ATTR_MAX = 0x3 - NL80211_FTM_STATS_ASAP_NUM = 0x4 - NL80211_FTM_STATS_FAILED_NUM = 0x3 - NL80211_FTM_STATS_MAX = 0xa - NL80211_FTM_STATS_NON_ASAP_NUM = 0x5 - NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 0x9 - NL80211_FTM_STATS_PAD = 0xa - NL80211_FTM_STATS_PARTIAL_NUM = 0x2 - NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 0x8 - NL80211_FTM_STATS_SUCCESS_NUM = 0x1 - NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 0x6 - NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 0x7 - NL80211_GENL_NAME = "nl80211" - NL80211_HE_BSS_COLOR_ATTR_COLOR = 0x1 - NL80211_HE_BSS_COLOR_ATTR_DISABLED = 0x2 - NL80211_HE_BSS_COLOR_ATTR_MAX = 0x3 - NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 0x3 - NL80211_HE_MAX_CAPABILITY_LEN = 0x36 - NL80211_HE_MIN_CAPABILITY_LEN = 0x10 - NL80211_HE_NSS_MAX = 0x8 - NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 0x4 - NL80211_HE_OBSS_PD_ATTR_MAX = 0x6 - NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 0x2 - NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 0x1 - NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 0x3 - NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 0x5 - NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 0x6 - NL80211_HIDDEN_SSID_NOT_IN_USE = 0x0 - NL80211_HIDDEN_SSID_ZERO_CONTENTS = 0x2 - NL80211_HIDDEN_SSID_ZERO_LEN = 0x1 - NL80211_HT_CAPABILITY_LEN = 0x1a - NL80211_IFACE_COMB_BI_MIN_GCD = 0x7 - NL80211_IFACE_COMB_LIMITS = 0x1 - NL80211_IFACE_COMB_MAXNUM = 0x2 - NL80211_IFACE_COMB_NUM_CHANNELS = 0x4 - NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 0x6 - NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 0x5 - NL80211_IFACE_COMB_STA_AP_BI_MATCH = 0x3 - NL80211_IFACE_COMB_UNSPEC = 0x0 - NL80211_IFACE_LIMIT_MAX = 0x1 - NL80211_IFACE_LIMIT_TYPES = 0x2 - NL80211_IFACE_LIMIT_UNSPEC = 0x0 - NL80211_IFTYPE_ADHOC = 0x1 - NL80211_IFTYPE_AKM_ATTR_IFTYPES = 0x1 - NL80211_IFTYPE_AKM_ATTR_MAX = 0x2 - NL80211_IFTYPE_AKM_ATTR_SUITES = 0x2 - NL80211_IFTYPE_AP = 0x3 - NL80211_IFTYPE_AP_VLAN = 0x4 - NL80211_IFTYPE_MAX = 0xc - NL80211_IFTYPE_MESH_POINT = 0x7 - NL80211_IFTYPE_MONITOR = 0x6 - NL80211_IFTYPE_NAN = 0xc - NL80211_IFTYPE_OCB = 0xb - NL80211_IFTYPE_P2P_CLIENT = 0x8 - NL80211_IFTYPE_P2P_DEVICE = 0xa - NL80211_IFTYPE_P2P_GO = 0x9 - NL80211_IFTYPE_STATION = 0x2 - NL80211_IFTYPE_UNSPECIFIED = 0x0 - NL80211_IFTYPE_WDS = 0x5 - NL80211_KCK_EXT_LEN_32 = 0x20 - NL80211_KCK_EXT_LEN = 0x18 - NL80211_KCK_LEN = 0x10 - NL80211_KEK_EXT_LEN = 0x20 - NL80211_KEK_LEN = 0x10 - NL80211_KEY_CIPHER = 0x3 - NL80211_KEY_DATA = 0x1 - NL80211_KEY_DEFAULT_BEACON = 0xa - NL80211_KEY_DEFAULT = 0x5 - NL80211_KEY_DEFAULT_MGMT = 0x6 - NL80211_KEY_DEFAULT_TYPE_MULTICAST = 0x2 - NL80211_KEY_DEFAULT_TYPES = 0x8 - NL80211_KEY_DEFAULT_TYPE_UNICAST = 0x1 - NL80211_KEY_IDX = 0x2 - NL80211_KEY_MAX = 0xa - NL80211_KEY_MODE = 0x9 - NL80211_KEY_NO_TX = 0x1 - NL80211_KEY_RX_TX = 0x0 - NL80211_KEY_SEQ = 0x4 - NL80211_KEY_SET_TX = 0x2 - NL80211_KEY_TYPE = 0x7 - NL80211_KEYTYPE_GROUP = 0x0 - NL80211_KEYTYPE_PAIRWISE = 0x1 - NL80211_KEYTYPE_PEERKEY = 0x2 - NL80211_MAX_NR_AKM_SUITES = 0x2 - NL80211_MAX_NR_CIPHER_SUITES = 0x5 - NL80211_MAX_SUPP_HT_RATES = 0x4d - NL80211_MAX_SUPP_RATES = 0x20 - NL80211_MAX_SUPP_REG_RULES = 0x80 - NL80211_MAX_SUPP_SELECTORS = 0x80 - NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 - NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 - NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 - NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 - NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 - NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 - NL80211_MESHCONF_ATTR_MAX = 0x1f - NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 - NL80211_MESHCONF_AWAKE_WINDOW = 0x1b - NL80211_MESHCONF_CONFIRM_TIMEOUT = 0x2 - NL80211_MESHCONF_CONNECTED_TO_AS = 0x1f - NL80211_MESHCONF_CONNECTED_TO_GATE = 0x1d - NL80211_MESHCONF_ELEMENT_TTL = 0xf - NL80211_MESHCONF_FORWARDING = 0x13 - NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 0x11 - NL80211_MESHCONF_HOLDING_TIMEOUT = 0x3 - NL80211_MESHCONF_HT_OPMODE = 0x16 - NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 0xb - NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 0x19 - NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 0x8 - NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 0xd - NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 0x17 - NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 0x12 - NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 0xc - NL80211_MESHCONF_HWMP_RANN_INTERVAL = 0x10 - NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 0x18 - NL80211_MESHCONF_HWMP_ROOTMODE = 0xe - NL80211_MESHCONF_MAX_PEER_LINKS = 0x4 - NL80211_MESHCONF_MAX_RETRIES = 0x5 - NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 0xa - NL80211_MESHCONF_NOLEARN = 0x1e - NL80211_MESHCONF_PATH_REFRESH_TIME = 0x9 - NL80211_MESHCONF_PLINK_TIMEOUT = 0x1c - NL80211_MESHCONF_POWER_MODE = 0x1a - NL80211_MESHCONF_RETRY_TIMEOUT = 0x1 - NL80211_MESHCONF_RSSI_THRESHOLD = 0x14 - NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 0x15 - NL80211_MESHCONF_TTL = 0x6 - NL80211_MESH_POWER_ACTIVE = 0x1 - NL80211_MESH_POWER_DEEP_SLEEP = 0x3 - NL80211_MESH_POWER_LIGHT_SLEEP = 0x2 - NL80211_MESH_POWER_MAX = 0x3 - NL80211_MESH_POWER_UNKNOWN = 0x0 - NL80211_MESH_SETUP_ATTR_MAX = 0x8 - NL80211_MESH_SETUP_AUTH_PROTOCOL = 0x8 - NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 0x2 - NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 0x1 - NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 0x6 - NL80211_MESH_SETUP_IE = 0x3 - NL80211_MESH_SETUP_USERSPACE_AMPE = 0x5 - NL80211_MESH_SETUP_USERSPACE_AUTH = 0x4 - NL80211_MESH_SETUP_USERSPACE_MPM = 0x7 - NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE = 0x3 - NL80211_MFP_NO = 0x0 - NL80211_MFP_OPTIONAL = 0x2 - NL80211_MFP_REQUIRED = 0x1 - NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 0xa - NL80211_MNTR_FLAG_ACTIVE = 0x6 - NL80211_MNTR_FLAG_CONTROL = 0x3 - NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 - NL80211_MNTR_FLAG_FCSFAIL = 0x1 - NL80211_MNTR_FLAG_MAX = 0x7 - NL80211_MNTR_FLAG_OTHER_BSS = 0x4 - NL80211_MNTR_FLAG_PLCPFAIL = 0x2 - NL80211_MPATH_FLAG_ACTIVE = 0x1 - NL80211_MPATH_FLAG_FIXED = 0x8 - NL80211_MPATH_FLAG_RESOLVED = 0x10 - NL80211_MPATH_FLAG_RESOLVING = 0x2 - NL80211_MPATH_FLAG_SN_VALID = 0x4 - NL80211_MPATH_INFO_DISCOVERY_RETRIES = 0x7 - NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 0x6 - NL80211_MPATH_INFO_EXPTIME = 0x4 - NL80211_MPATH_INFO_FLAGS = 0x5 - NL80211_MPATH_INFO_FRAME_QLEN = 0x1 - NL80211_MPATH_INFO_HOP_COUNT = 0x8 - NL80211_MPATH_INFO_MAX = 0x9 - NL80211_MPATH_INFO_METRIC = 0x3 - NL80211_MPATH_INFO_PATH_CHANGE = 0x9 - NL80211_MPATH_INFO_SN = 0x2 - NL80211_MULTICAST_GROUP_CONFIG = "config" - NL80211_MULTICAST_GROUP_MLME = "mlme" - NL80211_MULTICAST_GROUP_NAN = "nan" - NL80211_MULTICAST_GROUP_REG = "regulatory" - NL80211_MULTICAST_GROUP_SCAN = "scan" - NL80211_MULTICAST_GROUP_TESTMODE = "testmode" - NL80211_MULTICAST_GROUP_VENDOR = "vendor" - NL80211_NAN_FUNC_ATTR_MAX = 0x10 - NL80211_NAN_FUNC_CLOSE_RANGE = 0x9 - NL80211_NAN_FUNC_FOLLOW_UP = 0x2 - NL80211_NAN_FUNC_FOLLOW_UP_DEST = 0x8 - NL80211_NAN_FUNC_FOLLOW_UP_ID = 0x6 - NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 0x7 - NL80211_NAN_FUNC_INSTANCE_ID = 0xf - NL80211_NAN_FUNC_MAX_TYPE = 0x2 - NL80211_NAN_FUNC_PUBLISH_BCAST = 0x4 - NL80211_NAN_FUNC_PUBLISH = 0x0 - NL80211_NAN_FUNC_PUBLISH_TYPE = 0x3 - NL80211_NAN_FUNC_RX_MATCH_FILTER = 0xd - NL80211_NAN_FUNC_SERVICE_ID = 0x2 - NL80211_NAN_FUNC_SERVICE_ID_LEN = 0x6 - NL80211_NAN_FUNC_SERVICE_INFO = 0xb - NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 0xff - NL80211_NAN_FUNC_SRF = 0xc - NL80211_NAN_FUNC_SRF_MAX_LEN = 0xff - NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 0x5 - NL80211_NAN_FUNC_SUBSCRIBE = 0x1 - NL80211_NAN_FUNC_TERM_REASON = 0x10 - NL80211_NAN_FUNC_TERM_REASON_ERROR = 0x2 - NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 0x1 - NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0x0 - NL80211_NAN_FUNC_TTL = 0xa - NL80211_NAN_FUNC_TX_MATCH_FILTER = 0xe - NL80211_NAN_FUNC_TYPE = 0x1 - NL80211_NAN_MATCH_ATTR_MAX = 0x2 - NL80211_NAN_MATCH_FUNC_LOCAL = 0x1 - NL80211_NAN_MATCH_FUNC_PEER = 0x2 - NL80211_NAN_SOLICITED_PUBLISH = 0x1 - NL80211_NAN_SRF_ATTR_MAX = 0x4 - NL80211_NAN_SRF_BF = 0x2 - NL80211_NAN_SRF_BF_IDX = 0x3 - NL80211_NAN_SRF_INCLUDE = 0x1 - NL80211_NAN_SRF_MAC_ADDRS = 0x4 - NL80211_NAN_UNSOLICITED_PUBLISH = 0x2 - NL80211_NUM_ACS = 0x4 - NL80211_P2P_PS_SUPPORTED = 0x1 - NL80211_P2P_PS_UNSUPPORTED = 0x0 - NL80211_PKTPAT_MASK = 0x1 - NL80211_PKTPAT_OFFSET = 0x3 - NL80211_PKTPAT_PATTERN = 0x2 - NL80211_PLINK_ACTION_BLOCK = 0x2 - NL80211_PLINK_ACTION_NO_ACTION = 0x0 - NL80211_PLINK_ACTION_OPEN = 0x1 - NL80211_PLINK_BLOCKED = 0x6 - NL80211_PLINK_CNF_RCVD = 0x3 - NL80211_PLINK_ESTAB = 0x4 - NL80211_PLINK_HOLDING = 0x5 - NL80211_PLINK_LISTEN = 0x0 - NL80211_PLINK_OPN_RCVD = 0x2 - NL80211_PLINK_OPN_SNT = 0x1 - NL80211_PMKSA_CANDIDATE_BSSID = 0x2 - NL80211_PMKSA_CANDIDATE_INDEX = 0x1 - NL80211_PMKSA_CANDIDATE_PREAUTH = 0x3 - NL80211_PMSR_ATTR_MAX = 0x5 - NL80211_PMSR_ATTR_MAX_PEERS = 0x1 - NL80211_PMSR_ATTR_PEERS = 0x5 - NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 0x3 - NL80211_PMSR_ATTR_REPORT_AP_TSF = 0x2 - NL80211_PMSR_ATTR_TYPE_CAPA = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 0x6 - NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 0x7 - NL80211_PMSR_FTM_CAPA_ATTR_MAX = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 0x2 - NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 0x5 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 0x4 - NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 0x3 - NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 0x9 - NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 0x7 - NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 0x5 - NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 0x1 - NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 0x6 - NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 0x4 - NL80211_PMSR_FTM_FAILURE_REJECTED = 0x2 - NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 - NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 - NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd - NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 - NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 - NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 - NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 0xc - NL80211_PMSR_FTM_REQ_ATTR_MAX = 0xd - NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 0xb - NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 0x3 - NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 0x7 - NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 0x2 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 0x9 - NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 0x8 - NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 0xa - NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 0x7 - NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 0x2 - NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 0x5 - NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 0x14 - NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 0x10 - NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 0x12 - NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 0x11 - NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 0x1 - NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 0x8 - NL80211_PMSR_FTM_RESP_ATTR_LCI = 0x13 - NL80211_PMSR_FTM_RESP_ATTR_MAX = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 0x6 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 0x3 - NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 0x4 - NL80211_PMSR_FTM_RESP_ATTR_PAD = 0x15 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 0x9 - NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 0xa - NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 0xd - NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 0xf - NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 0xe - NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 0xc - NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 0xb - NL80211_PMSR_PEER_ATTR_ADDR = 0x1 - NL80211_PMSR_PEER_ATTR_CHAN = 0x2 - NL80211_PMSR_PEER_ATTR_MAX = 0x4 - NL80211_PMSR_PEER_ATTR_REQ = 0x3 - NL80211_PMSR_PEER_ATTR_RESP = 0x4 - NL80211_PMSR_REQ_ATTR_DATA = 0x1 - NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 0x2 - NL80211_PMSR_REQ_ATTR_MAX = 0x2 - NL80211_PMSR_RESP_ATTR_AP_TSF = 0x4 - NL80211_PMSR_RESP_ATTR_DATA = 0x1 - NL80211_PMSR_RESP_ATTR_FINAL = 0x5 - NL80211_PMSR_RESP_ATTR_HOST_TIME = 0x3 - NL80211_PMSR_RESP_ATTR_MAX = 0x6 - NL80211_PMSR_RESP_ATTR_PAD = 0x6 - NL80211_PMSR_RESP_ATTR_STATUS = 0x2 - NL80211_PMSR_STATUS_FAILURE = 0x3 - NL80211_PMSR_STATUS_REFUSED = 0x1 - NL80211_PMSR_STATUS_SUCCESS = 0x0 - NL80211_PMSR_STATUS_TIMEOUT = 0x2 - NL80211_PMSR_TYPE_FTM = 0x1 - NL80211_PMSR_TYPE_INVALID = 0x0 - NL80211_PMSR_TYPE_MAX = 0x1 - NL80211_PREAMBLE_DMG = 0x3 - NL80211_PREAMBLE_HE = 0x4 - NL80211_PREAMBLE_HT = 0x1 - NL80211_PREAMBLE_LEGACY = 0x0 - NL80211_PREAMBLE_VHT = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 0x8 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 0x4 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 0x2 - NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 0x1 - NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 0x1 - NL80211_PS_DISABLED = 0x0 - NL80211_PS_ENABLED = 0x1 - NL80211_RADAR_CAC_ABORTED = 0x2 - NL80211_RADAR_CAC_FINISHED = 0x1 - NL80211_RADAR_CAC_STARTED = 0x5 - NL80211_RADAR_DETECTED = 0x0 - NL80211_RADAR_NOP_FINISHED = 0x3 - NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 - NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb - NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa - NL80211_RATE_INFO_16_MHZ_WIDTH = 0x1d - NL80211_RATE_INFO_1_MHZ_WIDTH = 0x19 - NL80211_RATE_INFO_2_MHZ_WIDTH = 0x1a - NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 - NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 - NL80211_RATE_INFO_4_MHZ_WIDTH = 0x1b - NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc - NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 - NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 - NL80211_RATE_INFO_8_MHZ_WIDTH = 0x1c - NL80211_RATE_INFO_BITRATE32 = 0x5 - NL80211_RATE_INFO_BITRATE = 0x1 - NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 - NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 - NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 - NL80211_RATE_INFO_EHT_GI = 0x15 - NL80211_RATE_INFO_EHT_MCS = 0x13 - NL80211_RATE_INFO_EHT_NSS = 0x14 - NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 - NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 - NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 - NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb - NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd - NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe - NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 - NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 - NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf - NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 - NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 - NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa - NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 - NL80211_RATE_INFO_HE_1XLTF = 0x0 - NL80211_RATE_INFO_HE_2XLTF = 0x1 - NL80211_RATE_INFO_HE_4XLTF = 0x2 - NL80211_RATE_INFO_HE_DCM = 0x10 - NL80211_RATE_INFO_HE_GI_0_8 = 0x0 - NL80211_RATE_INFO_HE_GI_1_6 = 0x1 - NL80211_RATE_INFO_HE_GI_3_2 = 0x2 - NL80211_RATE_INFO_HE_GI = 0xf - NL80211_RATE_INFO_HE_MCS = 0xd - NL80211_RATE_INFO_HE_NSS = 0xe - NL80211_RATE_INFO_HE_RU_ALLOC_106 = 0x2 - NL80211_RATE_INFO_HE_RU_ALLOC_242 = 0x3 - NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0x0 - NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 0x6 - NL80211_RATE_INFO_HE_RU_ALLOC_484 = 0x4 - NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 - NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 - NL80211_RATE_INFO_MAX = 0x1d - NL80211_RATE_INFO_MCS = 0x2 - NL80211_RATE_INFO_S1G_MCS = 0x17 - NL80211_RATE_INFO_S1G_NSS = 0x18 - NL80211_RATE_INFO_SHORT_GI = 0x4 - NL80211_RATE_INFO_VHT_MCS = 0x6 - NL80211_RATE_INFO_VHT_NSS = 0x7 - NL80211_REGDOM_SET_BY_CORE = 0x0 - NL80211_REGDOM_SET_BY_COUNTRY_IE = 0x3 - NL80211_REGDOM_SET_BY_DRIVER = 0x2 - NL80211_REGDOM_SET_BY_USER = 0x1 - NL80211_REGDOM_TYPE_COUNTRY = 0x0 - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 - NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 - NL80211_REKEY_DATA_REPLAY_CTR = 0x3 - NL80211_REPLAY_CTR_LEN = 0x8 - NL80211_RRF_ALLOW_6GHZ_VLP_AP = 0x1000000 - NL80211_RRF_AUTO_BW = 0x800 - NL80211_RRF_DFS = 0x10 - NL80211_RRF_DFS_CONCURRENT = 0x200000 - NL80211_RRF_GO_CONCURRENT = 0x1000 - NL80211_RRF_IR_CONCURRENT = 0x1000 - NL80211_RRF_NO_160MHZ = 0x10000 - NL80211_RRF_NO_320MHZ = 0x40000 - NL80211_RRF_NO_6GHZ_AFC_CLIENT = 0x800000 - NL80211_RRF_NO_6GHZ_VLP_CLIENT = 0x400000 - NL80211_RRF_NO_80MHZ = 0x8000 - NL80211_RRF_NO_CCK = 0x2 - NL80211_RRF_NO_EHT = 0x80000 - NL80211_RRF_NO_HE = 0x20000 - NL80211_RRF_NO_HT40 = 0x6000 - NL80211_RRF_NO_HT40MINUS = 0x2000 - NL80211_RRF_NO_HT40PLUS = 0x4000 - NL80211_RRF_NO_IBSS = 0x80 - NL80211_RRF_NO_INDOOR = 0x4 - NL80211_RRF_NO_IR_ALL = 0x180 - NL80211_RRF_NO_IR = 0x80 - NL80211_RRF_NO_OFDM = 0x1 - NL80211_RRF_NO_OUTDOOR = 0x8 - NL80211_RRF_NO_UHB_AFC_CLIENT = 0x800000 - NL80211_RRF_NO_UHB_VLP_CLIENT = 0x400000 - NL80211_RRF_PASSIVE_SCAN = 0x80 - NL80211_RRF_PSD = 0x100000 - NL80211_RRF_PTMP_ONLY = 0x40 - NL80211_RRF_PTP_ONLY = 0x20 - NL80211_RXMGMT_FLAG_ANSWERED = 0x1 - NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 0x2 - NL80211_SAE_PWE_BOTH = 0x3 - NL80211_SAE_PWE_HASH_TO_ELEMENT = 0x2 - NL80211_SAE_PWE_HUNT_AND_PECK = 0x1 - NL80211_SAE_PWE_UNSPECIFIED = 0x0 - NL80211_SAR_ATTR_MAX = 0x2 - NL80211_SAR_ATTR_SPECS = 0x2 - NL80211_SAR_ATTR_SPECS_END_FREQ = 0x4 - NL80211_SAR_ATTR_SPECS_MAX = 0x4 - NL80211_SAR_ATTR_SPECS_POWER = 0x1 - NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 0x2 - NL80211_SAR_ATTR_SPECS_START_FREQ = 0x3 - NL80211_SAR_ATTR_TYPE = 0x1 - NL80211_SAR_TYPE_POWER = 0x0 - NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 0x20 - NL80211_SCAN_FLAG_AP = 0x4 - NL80211_SCAN_FLAG_COLOCATED_6GHZ = 0x4000 - NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 0x10 - NL80211_SCAN_FLAG_FLUSH = 0x2 - NL80211_SCAN_FLAG_FREQ_KHZ = 0x2000 - NL80211_SCAN_FLAG_HIGH_ACCURACY = 0x400 - NL80211_SCAN_FLAG_LOW_POWER = 0x200 - NL80211_SCAN_FLAG_LOW_PRIORITY = 0x1 - NL80211_SCAN_FLAG_LOW_SPAN = 0x100 - NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 0x1000 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x80 - NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 0x40 - NL80211_SCAN_FLAG_RANDOM_ADDR = 0x8 - NL80211_SCAN_FLAG_RANDOM_SN = 0x800 - NL80211_SCAN_RSSI_THOLD_OFF = -0x12c - NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 0x5 - NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 0x6 - NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 0x3 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 0x4 - NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 0x2 - NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 0x1 - NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 0x6 - NL80211_SCHED_SCAN_PLAN_INTERVAL = 0x1 - NL80211_SCHED_SCAN_PLAN_ITERATIONS = 0x2 - NL80211_SCHED_SCAN_PLAN_MAX = 0x2 - NL80211_SMPS_DYNAMIC = 0x2 - NL80211_SMPS_MAX = 0x2 - NL80211_SMPS_OFF = 0x0 - NL80211_SMPS_STATIC = 0x1 - NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 0x5 - NL80211_STA_BSS_PARAM_CTS_PROT = 0x1 - NL80211_STA_BSS_PARAM_DTIM_PERIOD = 0x4 - NL80211_STA_BSS_PARAM_MAX = 0x5 - NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 0x2 - NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 0x3 - NL80211_STA_FLAG_ASSOCIATED = 0x7 - NL80211_STA_FLAG_AUTHENTICATED = 0x5 - NL80211_STA_FLAG_AUTHORIZED = 0x1 - NL80211_STA_FLAG_MAX = 0x8 - NL80211_STA_FLAG_MAX_OLD_API = 0x6 - NL80211_STA_FLAG_MFP = 0x4 - NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 - NL80211_STA_FLAG_SPP_AMSDU = 0x8 - NL80211_STA_FLAG_TDLS_PEER = 0x6 - NL80211_STA_FLAG_WME = 0x3 - NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_ACK_SIGNAL = 0x22 - NL80211_STA_INFO_AIRTIME_LINK_METRIC = 0x29 - NL80211_STA_INFO_AIRTIME_WEIGHT = 0x28 - NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 0x2a - NL80211_STA_INFO_BEACON_LOSS = 0x12 - NL80211_STA_INFO_BEACON_RX = 0x1d - NL80211_STA_INFO_BEACON_SIGNAL_AVG = 0x1e - NL80211_STA_INFO_BSS_PARAM = 0xf - NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 0x1a - NL80211_STA_INFO_CHAIN_SIGNAL = 0x19 - NL80211_STA_INFO_CONNECTED_TIME = 0x10 - NL80211_STA_INFO_CONNECTED_TO_AS = 0x2b - NL80211_STA_INFO_CONNECTED_TO_GATE = 0x26 - NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG = 0x23 - NL80211_STA_INFO_EXPECTED_THROUGHPUT = 0x1b - NL80211_STA_INFO_FCS_ERROR_COUNT = 0x25 - NL80211_STA_INFO_INACTIVE_TIME = 0x1 - NL80211_STA_INFO_LLID = 0x4 - NL80211_STA_INFO_LOCAL_PM = 0x14 - NL80211_STA_INFO_MAX = 0x2b - NL80211_STA_INFO_NONPEER_PM = 0x16 - NL80211_STA_INFO_PAD = 0x21 - NL80211_STA_INFO_PEER_PM = 0x15 - NL80211_STA_INFO_PLID = 0x5 - NL80211_STA_INFO_PLINK_STATE = 0x6 - NL80211_STA_INFO_RX_BITRATE = 0xe - NL80211_STA_INFO_RX_BYTES64 = 0x17 - NL80211_STA_INFO_RX_BYTES = 0x2 - NL80211_STA_INFO_RX_DROP_MISC = 0x1c - NL80211_STA_INFO_RX_DURATION = 0x20 - NL80211_STA_INFO_RX_MPDUS = 0x24 - NL80211_STA_INFO_RX_PACKETS = 0x9 - NL80211_STA_INFO_SIGNAL_AVG = 0xd - NL80211_STA_INFO_SIGNAL = 0x7 - NL80211_STA_INFO_STA_FLAGS = 0x11 - NL80211_STA_INFO_TID_STATS = 0x1f - NL80211_STA_INFO_T_OFFSET = 0x13 - NL80211_STA_INFO_TX_BITRATE = 0x8 - NL80211_STA_INFO_TX_BYTES64 = 0x18 - NL80211_STA_INFO_TX_BYTES = 0x3 - NL80211_STA_INFO_TX_DURATION = 0x27 - NL80211_STA_INFO_TX_FAILED = 0xc - NL80211_STA_INFO_TX_PACKETS = 0xa - NL80211_STA_INFO_TX_RETRIES = 0xb - NL80211_STA_WME_MAX = 0x2 - NL80211_STA_WME_MAX_SP = 0x2 - NL80211_STA_WME_UAPSD_QUEUES = 0x1 - NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_CHANNEL_TIME = 0x4 - NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_CHANNEL_TIME_RX = 0x7 - NL80211_SURVEY_INFO_CHANNEL_TIME_TX = 0x8 - NL80211_SURVEY_INFO_FREQUENCY = 0x1 - NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 0xc - NL80211_SURVEY_INFO_IN_USE = 0x3 - NL80211_SURVEY_INFO_MAX = 0xc - NL80211_SURVEY_INFO_NOISE = 0x2 - NL80211_SURVEY_INFO_PAD = 0xa - NL80211_SURVEY_INFO_TIME_BSS_RX = 0xb - NL80211_SURVEY_INFO_TIME_BUSY = 0x5 - NL80211_SURVEY_INFO_TIME = 0x4 - NL80211_SURVEY_INFO_TIME_EXT_BUSY = 0x6 - NL80211_SURVEY_INFO_TIME_RX = 0x7 - NL80211_SURVEY_INFO_TIME_SCAN = 0x9 - NL80211_SURVEY_INFO_TIME_TX = 0x8 - NL80211_TDLS_DISABLE_LINK = 0x4 - NL80211_TDLS_DISCOVERY_REQ = 0x0 - NL80211_TDLS_ENABLE_LINK = 0x3 - NL80211_TDLS_PEER_HE = 0x8 - NL80211_TDLS_PEER_HT = 0x1 - NL80211_TDLS_PEER_VHT = 0x2 - NL80211_TDLS_PEER_WMM = 0x4 - NL80211_TDLS_SETUP = 0x1 - NL80211_TDLS_TEARDOWN = 0x2 - NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 0x9 - NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 0xb - NL80211_TID_CONFIG_ATTR_MAX = 0xd - NL80211_TID_CONFIG_ATTR_NOACK = 0x6 - NL80211_TID_CONFIG_ATTR_OVERRIDE = 0x4 - NL80211_TID_CONFIG_ATTR_PAD = 0x1 - NL80211_TID_CONFIG_ATTR_PEER_SUPP = 0x3 - NL80211_TID_CONFIG_ATTR_RETRY_LONG = 0x8 - NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 0x7 - NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 0xa - NL80211_TID_CONFIG_ATTR_TIDS = 0x5 - NL80211_TID_CONFIG_ATTR_TX_RATE = 0xd - NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 0xc - NL80211_TID_CONFIG_ATTR_VIF_SUPP = 0x2 - NL80211_TID_CONFIG_DISABLE = 0x1 - NL80211_TID_CONFIG_ENABLE = 0x0 - NL80211_TID_STATS_MAX = 0x6 - NL80211_TID_STATS_PAD = 0x5 - NL80211_TID_STATS_RX_MSDU = 0x1 - NL80211_TID_STATS_TX_MSDU = 0x2 - NL80211_TID_STATS_TX_MSDU_FAILED = 0x4 - NL80211_TID_STATS_TX_MSDU_RETRIES = 0x3 - NL80211_TID_STATS_TXQ_STATS = 0x6 - NL80211_TIMEOUT_ASSOC = 0x3 - NL80211_TIMEOUT_AUTH = 0x2 - NL80211_TIMEOUT_SCAN = 0x1 - NL80211_TIMEOUT_UNSPECIFIED = 0x0 - NL80211_TKIP_DATA_OFFSET_ENCR_KEY = 0x0 - NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY = 0x18 - NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY = 0x10 - NL80211_TX_POWER_AUTOMATIC = 0x0 - NL80211_TX_POWER_FIXED = 0x2 - NL80211_TX_POWER_LIMITED = 0x1 - NL80211_TXQ_ATTR_AC = 0x1 - NL80211_TXQ_ATTR_AIFS = 0x5 - NL80211_TXQ_ATTR_CWMAX = 0x4 - NL80211_TXQ_ATTR_CWMIN = 0x3 - NL80211_TXQ_ATTR_MAX = 0x5 - NL80211_TXQ_ATTR_QUEUE = 0x1 - NL80211_TXQ_ATTR_TXOP = 0x2 - NL80211_TXQ_Q_BE = 0x2 - NL80211_TXQ_Q_BK = 0x3 - NL80211_TXQ_Q_VI = 0x1 - NL80211_TXQ_Q_VO = 0x0 - NL80211_TXQ_STATS_BACKLOG_BYTES = 0x1 - NL80211_TXQ_STATS_BACKLOG_PACKETS = 0x2 - NL80211_TXQ_STATS_COLLISIONS = 0x8 - NL80211_TXQ_STATS_DROPS = 0x4 - NL80211_TXQ_STATS_ECN_MARKS = 0x5 - NL80211_TXQ_STATS_FLOWS = 0x3 - NL80211_TXQ_STATS_MAX = 0xb - NL80211_TXQ_STATS_MAX_FLOWS = 0xb - NL80211_TXQ_STATS_OVERLIMIT = 0x6 - NL80211_TXQ_STATS_OVERMEMORY = 0x7 - NL80211_TXQ_STATS_TX_BYTES = 0x9 - NL80211_TXQ_STATS_TX_PACKETS = 0xa - NL80211_TX_RATE_AUTOMATIC = 0x0 - NL80211_TXRATE_DEFAULT_GI = 0x0 - NL80211_TX_RATE_FIXED = 0x2 - NL80211_TXRATE_FORCE_LGI = 0x2 - NL80211_TXRATE_FORCE_SGI = 0x1 - NL80211_TXRATE_GI = 0x4 - NL80211_TXRATE_HE = 0x5 - NL80211_TXRATE_HE_GI = 0x6 - NL80211_TXRATE_HE_LTF = 0x7 - NL80211_TXRATE_HT = 0x2 - NL80211_TXRATE_LEGACY = 0x1 - NL80211_TX_RATE_LIMITED = 0x1 - NL80211_TXRATE_MAX = 0x7 - NL80211_TXRATE_MCS = 0x2 - NL80211_TXRATE_VHT = 0x3 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 0x1 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 0x2 - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 0x2 - NL80211_USER_REG_HINT_CELL_BASE = 0x1 - NL80211_USER_REG_HINT_INDOOR = 0x2 - NL80211_USER_REG_HINT_USER = 0x0 - NL80211_VENDOR_ID_IS_LINUX = 0x80000000 - NL80211_VHT_CAPABILITY_LEN = 0xc - NL80211_VHT_NSS_MAX = 0x8 - NL80211_WIPHY_NAME_MAXLEN = 0x40 - NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE = 0x2 - NL80211_WIPHY_RADIO_ATTR_INDEX = 0x1 - NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION = 0x3 - NL80211_WIPHY_RADIO_ATTR_MAX = 0x4 - NL80211_WIPHY_RADIO_FREQ_ATTR_END = 0x2 - NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = 0x2 - NL80211_WIPHY_RADIO_FREQ_ATTR_START = 0x1 - NL80211_WMMR_AIFSN = 0x3 - NL80211_WMMR_CW_MAX = 0x2 - NL80211_WMMR_CW_MIN = 0x1 - NL80211_WMMR_MAX = 0x4 - NL80211_WMMR_TXOP = 0x4 - NL80211_WOWLAN_PKTPAT_MASK = 0x1 - NL80211_WOWLAN_PKTPAT_OFFSET = 0x3 - NL80211_WOWLAN_PKTPAT_PATTERN = 0x2 - NL80211_WOWLAN_TCP_DATA_INTERVAL = 0x9 - NL80211_WOWLAN_TCP_DATA_PAYLOAD = 0x6 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 0x7 - NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 0x8 - NL80211_WOWLAN_TCP_DST_IPV4 = 0x2 - NL80211_WOWLAN_TCP_DST_MAC = 0x3 - NL80211_WOWLAN_TCP_DST_PORT = 0x5 - NL80211_WOWLAN_TCP_SRC_IPV4 = 0x1 - NL80211_WOWLAN_TCP_SRC_PORT = 0x4 - NL80211_WOWLAN_TCP_WAKE_MASK = 0xb - NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 0xa - NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 0x8 - NL80211_WOWLAN_TRIG_ANY = 0x1 - NL80211_WOWLAN_TRIG_DISCONNECT = 0x2 - NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 0x7 - NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 0x6 - NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 0x5 - NL80211_WOWLAN_TRIG_MAGIC_PKT = 0x3 - NL80211_WOWLAN_TRIG_NET_DETECT = 0x12 - NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 0x13 - NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 - NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 - NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe - NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 0x14 - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa - NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc - NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 0xd - NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 0x10 - NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 0xf - NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 0x11 - NL80211_WPA_VERSION_1 = 0x1 - NL80211_WPA_VERSION_2 = 0x2 - NL80211_WPA_VERSION_3 = 0x4 -) - -const ( - FRA_UNSPEC = 0x0 - FRA_DST = 0x1 - FRA_SRC = 0x2 - FRA_IIFNAME = 0x3 - FRA_GOTO = 0x4 - FRA_UNUSED2 = 0x5 - FRA_PRIORITY = 0x6 - FRA_UNUSED3 = 0x7 - FRA_UNUSED4 = 0x8 - FRA_UNUSED5 = 0x9 - FRA_FWMARK = 0xa - FRA_FLOW = 0xb - FRA_TUN_ID = 0xc - FRA_SUPPRESS_IFGROUP = 0xd - FRA_SUPPRESS_PREFIXLEN = 0xe - FRA_TABLE = 0xf - FRA_FWMASK = 0x10 - FRA_OIFNAME = 0x11 - FRA_PAD = 0x12 - FRA_L3MDEV = 0x13 - FRA_UID_RANGE = 0x14 - FRA_PROTOCOL = 0x15 - FRA_IP_PROTO = 0x16 - FRA_SPORT_RANGE = 0x17 - FRA_DPORT_RANGE = 0x18 - FR_ACT_UNSPEC = 0x0 - FR_ACT_TO_TBL = 0x1 - FR_ACT_GOTO = 0x2 - FR_ACT_NOP = 0x3 - FR_ACT_RES3 = 0x4 - FR_ACT_RES4 = 0x5 - FR_ACT_BLACKHOLE = 0x6 - FR_ACT_UNREACHABLE = 0x7 - FR_ACT_PROHIBIT = 0x8 -) - -const ( - AUDIT_NLGRP_NONE = 0x0 - AUDIT_NLGRP_READLOG = 0x1 -) - -const ( - TUN_F_CSUM = 0x1 - TUN_F_TSO4 = 0x2 - TUN_F_TSO6 = 0x4 - TUN_F_TSO_ECN = 0x8 - TUN_F_UFO = 0x10 - TUN_F_USO4 = 0x20 - TUN_F_USO6 = 0x40 -) - -const ( - VIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1 - VIRTIO_NET_HDR_F_DATA_VALID = 0x2 - VIRTIO_NET_HDR_F_RSC_INFO = 0x4 -) - -const ( - VIRTIO_NET_HDR_GSO_NONE = 0x0 - VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 - VIRTIO_NET_HDR_GSO_UDP = 0x3 - VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 - VIRTIO_NET_HDR_GSO_UDP_L4 = 0x5 - VIRTIO_NET_HDR_GSO_ECN = 0x80 -) - -type SchedAttr struct { - Size uint32 - Policy uint32 - Flags uint64 - Nice int32 - Priority uint32 - Runtime uint64 - Deadline uint64 - Period uint64 - Util_min uint32 - Util_max uint32 -} - -const SizeofSchedAttr = 0x38 - -type Cachestat_t struct { - Cache uint64 - Dirty uint64 - Writeback uint64 - Evicted uint64 - Recently_evicted uint64 -} -type CachestatRange struct { - Off uint64 - Len uint64 -} - -const ( - SK_MEMINFO_RMEM_ALLOC = 0x0 - SK_MEMINFO_RCVBUF = 0x1 - SK_MEMINFO_WMEM_ALLOC = 0x2 - SK_MEMINFO_SNDBUF = 0x3 - SK_MEMINFO_FWD_ALLOC = 0x4 - SK_MEMINFO_WMEM_QUEUED = 0x5 - SK_MEMINFO_OPTMEM = 0x6 - SK_MEMINFO_BACKLOG = 0x7 - SK_MEMINFO_DROPS = 0x8 - SK_MEMINFO_VARS = 0x9 - SKNLGRP_NONE = 0x0 - SKNLGRP_INET_TCP_DESTROY = 0x1 - SKNLGRP_INET_UDP_DESTROY = 0x2 - SKNLGRP_INET6_TCP_DESTROY = 0x3 - SKNLGRP_INET6_UDP_DESTROY = 0x4 - SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0 - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1 - SK_DIAG_BPF_STORAGE_REP_NONE = 0x0 - SK_DIAG_BPF_STORAGE = 0x1 - SK_DIAG_BPF_STORAGE_NONE = 0x0 - SK_DIAG_BPF_STORAGE_PAD = 0x1 - SK_DIAG_BPF_STORAGE_MAP_ID = 0x2 - SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3 -) - -type SockDiagReq struct { - Family uint8 - Protocol uint8 -} - -const RTM_NEWNVLAN = 0x70 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 62db85f..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,705 +0,0 @@ -// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build 386 && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [1]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -type DmNameList struct { - Dev uint64 - Next uint32 -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Ebx int32 - Ecx int32 - Edx int32 - Esi int32 - Edi int32 - Ebp int32 - Eax int32 - Xds int32 - Xes int32 - Xfs int32 - Xgs int32 - Orig_eax int32 - Eip int32 - Xcs int32 - Eflags int32 - Esp int32 - Xss int32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index 7d89d64..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,719 +0,0 @@ -// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [3]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - R15 uint64 - R14 uint64 - R13 uint64 - R12 uint64 - Rbp uint64 - Rbx uint64 - R11 uint64 - R10 uint64 - R9 uint64 - R8 uint64 - Rax uint64 - Rcx uint64 - Rdx uint64 - Rsi uint64 - Rdi uint64 - Orig_rax uint64 - Rip uint64 - Cs uint64 - Eflags uint64 - Rsp uint64 - Ss uint64 - Fs_base uint64 - Gs_base uint64 - Ds uint64 - Es uint64 - Fs uint64 - Gs uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index 9c0b39e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - _ uint16 - _ uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [4]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Uregs [18]uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint16 - _ [2]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Atime_high uint32 - Dtime uint32 - Dtime_high uint32 - Ctime uint32 - Ctime_high uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index de9c7ff..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,698 +0,0 @@ -// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build arm64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [31]uint64 - Sp uint64 - Pc uint64 - Pstate uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go deleted file mode 100644 index 2336bd2..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ /dev/null @@ -1,699 +0,0 @@ -// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build loong64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Orig_a0 uint64 - Era uint64 - Badv uint64 - Reserved [10]uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go deleted file mode 100644 index 4711f0b..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ /dev/null @@ -1,704 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go deleted file mode 100644 index ab99a34..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ /dev/null @@ -1,701 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go deleted file mode 100644 index 04c9866..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ /dev/null @@ -1,701 +0,0 @@ -// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mips64le && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint32 - Pad1 [3]uint32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]uint32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize uint32 - Pad4 uint32 - Blocks int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Frsize int64 - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int64 - Flags int64 - Spare [5]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go deleted file mode 100644 index 60aa69f..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ /dev/null @@ -1,704 +0,0 @@ -// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build mipsle && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint32 - Pad1 [3]int32 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint32 - Pad2 [3]int32 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Pad4 int32 - Blocks int64 - Pad5 [14]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Regs [32]uint64 - Lo uint64 - Hi uint64 - Epc uint64 - Badvaddr uint64 - Status uint64 - Cause uint64 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]int8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x80 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x3 -) - -type Siginfo struct { - Signo int32 - Code int32 - Errno int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Frsize int32 - _ [4]byte - Blocks uint64 - Bfree uint64 - Files uint64 - Ffree uint64 - Bavail uint64 - Fsid Fsid - Namelen int32 - Flags int32 - Spare [5]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x80 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint32 - _ uint32 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint32 - Atime uint32 - Dtime uint32 - Ctime uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - Atime_high uint16 - Dtime_high uint16 - Ctime_high uint16 - _ uint16 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go deleted file mode 100644 index cb4fad7..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ /dev/null @@ -1,712 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc && linux - -package unix - -const ( - SizeofPtr = 0x4 - SizeofLong = 0x4 -) - -type ( - _C_long int32 -) - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -type Timex struct { - Modes uint32 - Offset int32 - Freq int32 - Maxerror int32 - Esterror int32 - Status int32 - Constant int32 - Precision int32 - Tolerance int32 - Time Timeval - Tick int32 - Ppsfreq int32 - Jitter int32 - Shift int32 - Stabil int32 - Jitcnt int32 - Calcnt int32 - Errcnt int32 - Stbcnt int32 - Tai int32 - _ [44]byte -} - -type Time_t int32 - -type Tms struct { - Utime int32 - Stime int32 - Cutime int32 - Cstime int32 -} - -type Utimbuf struct { - Actime int32 - Modtime int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - _ [4]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint32 - _ uint32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint32 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len 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 ifreq struct { - Ifrn [16]byte - Ifru [16]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x58 - SizeofIovec = 0x8 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc -) - -const ( - SizeofSockFprog = 0x8 -) - -type PtraceRegs struct { - Gpr [32]uint32 - Nip uint32 - Msr uint32 - Orig_gpr3 uint32 - Ctr uint32 - Link uint32 - Xer uint32 - Ccr uint32 - Mq uint32 - Trap uint32 - Dar uint32 - Dsisr uint32 - Result uint32 -} - -type FdSet struct { - Bits [32]int32 -} - -type Sysinfo_t struct { - Uptime int32 - Loads [3]uint32 - Totalram uint32 - Freeram uint32 - Sharedram uint32 - Bufferram uint32 - Totalswap uint32 - Freeswap uint32 - Procs uint16 - Pad uint16 - Totalhigh uint32 - Freehigh uint32 - Unit uint32 - _ [8]uint8 -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]uint8 - Fpack [6]uint8 -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [32]uint32 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ [116]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [4]byte - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - _ [4]byte - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - _ [4]byte - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint32 - -const ( - _NCPUBITS = 0x20 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [122]byte - _ uint32 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint32 -} - -type Statfs_t struct { - Type int32 - Bsize int32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int32 - Frsize int32 - Flags int32 - Spare [4]int32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 -} - -const ( - SizeofTpacketHdr = 0x18 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int32 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -type LoopInfo struct { - Number int32 - Device uint32 - Inode uint32 - Rdevice uint32 - Offset int32 - Encrypt_type int32 - Encrypt_key_size int32 - Flags int32 - Name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint32 - Reserved [4]uint8 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime_high uint32 - Atime uint32 - Dtime_high uint32 - Dtime uint32 - Ctime_high uint32 - Ctime uint32 - _ uint32 - Segsz uint32 - Cpid int32 - Lpid int32 - Nattch uint32 - _ uint32 - _ uint32 - _ [4]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index 60272cf..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,707 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index 3f5b91b..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,707 +0,0 @@ -// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build ppc64le && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - _ int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Gpr [32]uint64 - Nip uint64 - Msr uint64 - Orig_gpr3 uint64 - Ctr uint64 - Link uint64 - Xer uint64 - Ccr uint64 - Softe uint64 - Trap uint64 - Dar uint64 - Dsisr uint64 - Result uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - Seq uint32 - _ uint32 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go deleted file mode 100644 index 51550f1..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ /dev/null @@ -1,786 +0,0 @@ -// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build riscv64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint64 - Size int64 - Blksize int32 - _ int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Pc uint64 - Ra uint64 - Sp uint64 - Gp uint64 - Tp uint64 - T0 uint64 - T1 uint64 - T2 uint64 - S0 uint64 - S1 uint64 - A0 uint64 - A1 uint64 - A2 uint64 - A3 uint64 - A4 uint64 - A5 uint64 - A6 uint64 - A7 uint64 - S2 uint64 - S3 uint64 - S4 uint64 - S5 uint64 - S6 uint64 - S7 uint64 - S8 uint64 - S9 uint64 - S10 uint64 - S11 uint64 - T3 uint64 - T4 uint64 - T5 uint64 - T6 uint64 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]uint8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]uint8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x1 - CBitFieldMaskBit1 = 0x2 - CBitFieldMaskBit2 = 0x4 - CBitFieldMaskBit3 = 0x8 - CBitFieldMaskBit4 = 0x10 - CBitFieldMaskBit5 = 0x20 - CBitFieldMaskBit6 = 0x40 - CBitFieldMaskBit7 = 0x80 - CBitFieldMaskBit8 = 0x100 - CBitFieldMaskBit9 = 0x200 - CBitFieldMaskBit10 = 0x400 - CBitFieldMaskBit11 = 0x800 - CBitFieldMaskBit12 = 0x1000 - CBitFieldMaskBit13 = 0x2000 - CBitFieldMaskBit14 = 0x4000 - CBitFieldMaskBit15 = 0x8000 - CBitFieldMaskBit16 = 0x10000 - CBitFieldMaskBit17 = 0x20000 - CBitFieldMaskBit18 = 0x40000 - CBitFieldMaskBit19 = 0x80000 - CBitFieldMaskBit20 = 0x100000 - CBitFieldMaskBit21 = 0x200000 - CBitFieldMaskBit22 = 0x400000 - CBitFieldMaskBit23 = 0x800000 - CBitFieldMaskBit24 = 0x1000000 - CBitFieldMaskBit25 = 0x2000000 - CBitFieldMaskBit26 = 0x4000000 - CBitFieldMaskBit27 = 0x8000000 - CBitFieldMaskBit28 = 0x10000000 - CBitFieldMaskBit29 = 0x20000000 - CBitFieldMaskBit30 = 0x40000000 - CBitFieldMaskBit31 = 0x80000000 - CBitFieldMaskBit32 = 0x100000000 - CBitFieldMaskBit33 = 0x200000000 - CBitFieldMaskBit34 = 0x400000000 - CBitFieldMaskBit35 = 0x800000000 - CBitFieldMaskBit36 = 0x1000000000 - CBitFieldMaskBit37 = 0x2000000000 - CBitFieldMaskBit38 = 0x4000000000 - CBitFieldMaskBit39 = 0x8000000000 - CBitFieldMaskBit40 = 0x10000000000 - CBitFieldMaskBit41 = 0x20000000000 - CBitFieldMaskBit42 = 0x40000000000 - CBitFieldMaskBit43 = 0x80000000000 - CBitFieldMaskBit44 = 0x100000000000 - CBitFieldMaskBit45 = 0x200000000000 - CBitFieldMaskBit46 = 0x400000000000 - CBitFieldMaskBit47 = 0x800000000000 - CBitFieldMaskBit48 = 0x1000000000000 - CBitFieldMaskBit49 = 0x2000000000000 - CBitFieldMaskBit50 = 0x4000000000000 - CBitFieldMaskBit51 = 0x8000000000000 - CBitFieldMaskBit52 = 0x10000000000000 - CBitFieldMaskBit53 = 0x20000000000000 - CBitFieldMaskBit54 = 0x40000000000000 - CBitFieldMaskBit55 = 0x80000000000000 - CBitFieldMaskBit56 = 0x100000000000000 - CBitFieldMaskBit57 = 0x200000000000000 - CBitFieldMaskBit58 = 0x400000000000000 - CBitFieldMaskBit59 = 0x800000000000000 - CBitFieldMaskBit60 = 0x1000000000000000 - CBitFieldMaskBit61 = 0x2000000000000000 - CBitFieldMaskBit62 = 0x4000000000000000 - CBitFieldMaskBit63 = 0x8000000000000000 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]uint8 - Driver_name [64]uint8 - Module_name [64]uint8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]uint8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]uint8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]uint8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]uint8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]uint8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]uint8 -} - -type CryptoReportLarval struct { - Type [64]uint8 -} - -type CryptoReportHash struct { - Type [64]uint8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]uint8 - Geniv [64]uint8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]uint8 -} - -type CryptoReportRNG struct { - Type [64]uint8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]uint8 -} - -type CryptoReportKPP struct { - Type [64]uint8 -} - -type CryptoReportAcomp struct { - Type [64]uint8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]uint8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]uint8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]uint8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ [0]uint8 - Seq uint16 - _ uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} - -type RISCVHWProbePairs struct { - Key int64 - Value uint64 -} - -const ( - RISCV_HWPROBE_KEY_MVENDORID = 0x0 - RISCV_HWPROBE_KEY_MARCHID = 0x1 - RISCV_HWPROBE_KEY_MIMPID = 0x2 - RISCV_HWPROBE_KEY_BASE_BEHAVIOR = 0x3 - RISCV_HWPROBE_BASE_BEHAVIOR_IMA = 0x1 - RISCV_HWPROBE_KEY_IMA_EXT_0 = 0x4 - RISCV_HWPROBE_IMA_FD = 0x1 - RISCV_HWPROBE_IMA_C = 0x2 - RISCV_HWPROBE_IMA_V = 0x4 - RISCV_HWPROBE_EXT_ZBA = 0x8 - RISCV_HWPROBE_EXT_ZBB = 0x10 - RISCV_HWPROBE_EXT_ZBS = 0x20 - RISCV_HWPROBE_EXT_ZICBOZ = 0x40 - RISCV_HWPROBE_EXT_ZBC = 0x80 - RISCV_HWPROBE_EXT_ZBKB = 0x100 - RISCV_HWPROBE_EXT_ZBKC = 0x200 - RISCV_HWPROBE_EXT_ZBKX = 0x400 - RISCV_HWPROBE_EXT_ZKND = 0x800 - RISCV_HWPROBE_EXT_ZKNE = 0x1000 - RISCV_HWPROBE_EXT_ZKNH = 0x2000 - RISCV_HWPROBE_EXT_ZKSED = 0x4000 - RISCV_HWPROBE_EXT_ZKSH = 0x8000 - RISCV_HWPROBE_EXT_ZKT = 0x10000 - RISCV_HWPROBE_EXT_ZVBB = 0x20000 - RISCV_HWPROBE_EXT_ZVBC = 0x40000 - RISCV_HWPROBE_EXT_ZVKB = 0x80000 - RISCV_HWPROBE_EXT_ZVKG = 0x100000 - RISCV_HWPROBE_EXT_ZVKNED = 0x200000 - RISCV_HWPROBE_EXT_ZVKNHA = 0x400000 - RISCV_HWPROBE_EXT_ZVKNHB = 0x800000 - RISCV_HWPROBE_EXT_ZVKSED = 0x1000000 - RISCV_HWPROBE_EXT_ZVKSH = 0x2000000 - RISCV_HWPROBE_EXT_ZVKT = 0x4000000 - RISCV_HWPROBE_EXT_ZFH = 0x8000000 - RISCV_HWPROBE_EXT_ZFHMIN = 0x10000000 - RISCV_HWPROBE_EXT_ZIHINTNTL = 0x20000000 - RISCV_HWPROBE_EXT_ZVFH = 0x40000000 - RISCV_HWPROBE_EXT_ZVFHMIN = 0x80000000 - RISCV_HWPROBE_EXT_ZFA = 0x100000000 - RISCV_HWPROBE_EXT_ZTSO = 0x200000000 - RISCV_HWPROBE_EXT_ZACAS = 0x400000000 - RISCV_HWPROBE_EXT_ZICOND = 0x800000000 - RISCV_HWPROBE_EXT_ZIHINTPAUSE = 0x1000000000 - RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 - RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 - RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 - RISCV_HWPROBE_MISALIGNED_SLOW = 0x2 - RISCV_HWPROBE_MISALIGNED_FAST = 0x3 - RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 - RISCV_HWPROBE_MISALIGNED_MASK = 0x7 - RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE = 0x6 - RISCV_HWPROBE_WHICH_CPUS = 0x1 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go deleted file mode 100644 index 3239e50..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ /dev/null @@ -1,721 +0,0 @@ -// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build s390x && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int64 -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - 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 Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Psw PtracePsw - Gprs [16]uint64 - Acrs [16]uint32 - Orig_gpr2 uint64 - Fp_regs PtraceFpregs - Per_info PtracePer - Ieee_instruction_pointer uint64 -} - -type PtracePsw struct { - Mask uint64 - Addr uint64 -} - -type PtraceFpregs struct { - Fpc uint32 - Fprs [16]float64 -} - -type PtracePer struct { - Control_regs [3]uint64 - _ [8]byte - Starting_addr uint64 - Ending_addr uint64 - Perc_atmid uint16 - Address uint64 - Access_id uint8 - _ [7]byte -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x80000 -) - -const ( - POLLRDHUP = 0x2000 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x0 - SIG_UNBLOCK = 0x1 - SIG_SETMASK = 0x2 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type uint32 - Bsize uint32 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen uint32 - Frsize uint32 - Flags uint32 - Spare [4]uint32 - _ [4]byte -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x1269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x800 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go deleted file mode 100644 index faf2002..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ /dev/null @@ -1,702 +0,0 @@ -// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build sparc64 && linux - -package unix - -const ( - SizeofPtr = 0x8 - SizeofLong = 0x8 -) - -type ( - _C_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int64 -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Timex struct { - Modes uint32 - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - _ [44]byte -} - -type Time_t int64 - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 Stat_t struct { - Dev uint64 - _ uint16 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - _ uint16 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 - _ int16 - _ [2]byte -} - -type DmNameList struct { - Dev uint64 - Next uint32 - Name [0]byte - _ [4]byte -} - -const ( - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -type RawSockaddrNFCLLCP struct { - Sa_family uint16 - Dev_idx uint32 - Target_idx uint32 - Nfc_protocol uint32 - Dsap uint8 - Ssap uint8 - Service_name [63]uint8 - Service_name_len uint64 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Iovec struct { - Base *byte - Len uint64 -} - -type Msghdr struct { - Name *byte - Namelen uint32 - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type ifreq struct { - Ifrn [16]byte - Ifru [24]byte -} - -const ( - SizeofSockaddrNFCLLCP = 0x60 - SizeofIovec = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 -) - -const ( - SizeofSockFprog = 0x10 -) - -type PtraceRegs struct { - Regs [16]uint64 - Tstate uint64 - Tpc uint64 - Tnpc uint64 - Y uint32 - Magic uint32 -} - -type FdSet struct { - Bits [16]int64 -} - -type Sysinfo_t struct { - Uptime int64 - Loads [3]uint64 - Totalram uint64 - Freeram uint64 - Sharedram uint64 - Bufferram uint64 - Totalswap uint64 - Freeswap uint64 - Procs uint16 - Pad uint16 - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -const ( - OPEN_TREE_CLOEXEC = 0x400000 -) - -const ( - POLLRDHUP = 0x800 -) - -type Sigset_t struct { - Val [16]uint64 -} - -const _C__NSIG = 0x41 - -const ( - SIG_BLOCK = 0x1 - SIG_UNBLOCK = 0x2 - SIG_SETMASK = 0x4 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - _ int32 - _ [112]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Taskstats struct { - Version uint16 - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - Cpu_count uint64 - Cpu_delay_total uint64 - Cpu_delay_max uint64 - Cpu_delay_min uint64 - Blkio_count uint64 - Blkio_delay_total uint64 - Blkio_delay_max uint64 - Blkio_delay_min uint64 - Swapin_count uint64 - Swapin_delay_total uint64 - Swapin_delay_max uint64 - Swapin_delay_min uint64 - Cpu_run_real_total uint64 - Cpu_run_virtual_total uint64 - Ac_comm [32]int8 - Ac_sched uint8 - Ac_pad [3]uint8 - _ [4]byte - Ac_uid uint32 - Ac_gid uint32 - Ac_pid uint32 - Ac_ppid uint32 - Ac_btime uint32 - Ac_etime uint64 - Ac_utime uint64 - Ac_stime uint64 - Ac_minflt uint64 - Ac_majflt uint64 - Coremem uint64 - Virtmem uint64 - Hiwater_rss uint64 - Hiwater_vm uint64 - Read_char uint64 - Write_char uint64 - Read_syscalls uint64 - Write_syscalls uint64 - Read_bytes uint64 - Write_bytes uint64 - Cancelled_write_bytes uint64 - Nvcsw uint64 - Nivcsw uint64 - Ac_utimescaled uint64 - Ac_stimescaled uint64 - Cpu_scaled_run_real_total uint64 - Freepages_count uint64 - Freepages_delay_total uint64 - Freepages_delay_max uint64 - Freepages_delay_min uint64 - Thrashing_count uint64 - Thrashing_delay_total uint64 - Thrashing_delay_max uint64 - Thrashing_delay_min uint64 - Ac_btime64 uint64 - Compact_count uint64 - Compact_delay_total uint64 - Compact_delay_max uint64 - Compact_delay_min uint64 - Ac_tgid uint32 - Ac_tgetime uint64 - Ac_exe_dev uint64 - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 - Wpcopy_delay_max uint64 - Wpcopy_delay_min uint64 - Irq_count uint64 - Irq_delay_total uint64 - Irq_delay_max uint64 - Irq_delay_min uint64 -} - -type cpuMask uint64 - -const ( - _NCPUBITS = 0x40 -) - -const ( - CBitFieldMaskBit0 = 0x8000000000000000 - CBitFieldMaskBit1 = 0x4000000000000000 - CBitFieldMaskBit2 = 0x2000000000000000 - CBitFieldMaskBit3 = 0x1000000000000000 - CBitFieldMaskBit4 = 0x800000000000000 - CBitFieldMaskBit5 = 0x400000000000000 - CBitFieldMaskBit6 = 0x200000000000000 - CBitFieldMaskBit7 = 0x100000000000000 - CBitFieldMaskBit8 = 0x80000000000000 - CBitFieldMaskBit9 = 0x40000000000000 - CBitFieldMaskBit10 = 0x20000000000000 - CBitFieldMaskBit11 = 0x10000000000000 - CBitFieldMaskBit12 = 0x8000000000000 - CBitFieldMaskBit13 = 0x4000000000000 - CBitFieldMaskBit14 = 0x2000000000000 - CBitFieldMaskBit15 = 0x1000000000000 - CBitFieldMaskBit16 = 0x800000000000 - CBitFieldMaskBit17 = 0x400000000000 - CBitFieldMaskBit18 = 0x200000000000 - CBitFieldMaskBit19 = 0x100000000000 - CBitFieldMaskBit20 = 0x80000000000 - CBitFieldMaskBit21 = 0x40000000000 - CBitFieldMaskBit22 = 0x20000000000 - CBitFieldMaskBit23 = 0x10000000000 - CBitFieldMaskBit24 = 0x8000000000 - CBitFieldMaskBit25 = 0x4000000000 - CBitFieldMaskBit26 = 0x2000000000 - CBitFieldMaskBit27 = 0x1000000000 - CBitFieldMaskBit28 = 0x800000000 - CBitFieldMaskBit29 = 0x400000000 - CBitFieldMaskBit30 = 0x200000000 - CBitFieldMaskBit31 = 0x100000000 - CBitFieldMaskBit32 = 0x80000000 - CBitFieldMaskBit33 = 0x40000000 - CBitFieldMaskBit34 = 0x20000000 - CBitFieldMaskBit35 = 0x10000000 - CBitFieldMaskBit36 = 0x8000000 - CBitFieldMaskBit37 = 0x4000000 - CBitFieldMaskBit38 = 0x2000000 - CBitFieldMaskBit39 = 0x1000000 - CBitFieldMaskBit40 = 0x800000 - CBitFieldMaskBit41 = 0x400000 - CBitFieldMaskBit42 = 0x200000 - CBitFieldMaskBit43 = 0x100000 - CBitFieldMaskBit44 = 0x80000 - CBitFieldMaskBit45 = 0x40000 - CBitFieldMaskBit46 = 0x20000 - CBitFieldMaskBit47 = 0x10000 - CBitFieldMaskBit48 = 0x8000 - CBitFieldMaskBit49 = 0x4000 - CBitFieldMaskBit50 = 0x2000 - CBitFieldMaskBit51 = 0x1000 - CBitFieldMaskBit52 = 0x800 - CBitFieldMaskBit53 = 0x400 - CBitFieldMaskBit54 = 0x200 - CBitFieldMaskBit55 = 0x100 - CBitFieldMaskBit56 = 0x80 - CBitFieldMaskBit57 = 0x40 - CBitFieldMaskBit58 = 0x20 - CBitFieldMaskBit59 = 0x10 - CBitFieldMaskBit60 = 0x8 - CBitFieldMaskBit61 = 0x4 - CBitFieldMaskBit62 = 0x2 - CBitFieldMaskBit63 = 0x1 -) - -type SockaddrStorage struct { - Family uint16 - Data [118]byte - _ uint64 -} - -type HDGeometry struct { - Heads uint8 - Sectors uint8 - Cylinders uint16 - Start uint64 -} - -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 -} - -type TpacketHdr struct { - Status uint64 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Usec uint32 - _ [4]byte -} - -const ( - SizeofTpacketHdr = 0x20 -) - -type RTCPLLInfo struct { - Ctrl int32 - Value int32 - Max int32 - Min int32 - Posmult int32 - Negmult int32 - Clock int64 -} - -type BlkpgPartition struct { - Start int64 - Length int64 - Pno int32 - Devname [64]uint8 - Volname [64]uint8 - _ [4]byte -} - -const ( - BLKPG = 0x20001269 -) - -type CryptoUserAlg struct { - Name [64]int8 - Driver_name [64]int8 - Module_name [64]int8 - Type uint32 - Mask uint32 - Refcnt uint32 - Flags uint32 -} - -type CryptoStatAEAD struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -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 CryptoStatCipher struct { - Type [64]int8 - Encrypt_cnt uint64 - Encrypt_tlen uint64 - Decrypt_cnt uint64 - Decrypt_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatCompress struct { - Type [64]int8 - Compress_cnt uint64 - Compress_tlen uint64 - Decompress_cnt uint64 - Decompress_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatHash struct { - Type [64]int8 - Hash_cnt uint64 - Hash_tlen uint64 - Err_cnt uint64 -} - -type CryptoStatKPP struct { - Type [64]int8 - Setsecret_cnt uint64 - Generate_public_key_cnt uint64 - Compute_shared_secret_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatRNG struct { - Type [64]int8 - Generate_cnt uint64 - Generate_tlen uint64 - Seed_cnt uint64 - Err_cnt uint64 -} - -type CryptoStatLarval struct { - Type [64]int8 -} - -type CryptoReportLarval struct { - Type [64]int8 -} - -type CryptoReportHash struct { - Type [64]int8 - Blocksize uint32 - Digestsize uint32 -} - -type CryptoReportCipher struct { - Type [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 -} - -type CryptoReportBlkCipher struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Min_keysize uint32 - Max_keysize uint32 - Ivsize uint32 -} - -type CryptoReportAEAD struct { - Type [64]int8 - Geniv [64]int8 - Blocksize uint32 - Maxauthsize uint32 - Ivsize uint32 -} - -type CryptoReportComp struct { - Type [64]int8 -} - -type CryptoReportRNG struct { - Type [64]int8 - Seedsize uint32 -} - -type CryptoReportAKCipher struct { - Type [64]int8 -} - -type CryptoReportKPP struct { - Type [64]int8 -} - -type CryptoReportAcomp struct { - Type [64]int8 -} - -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 -} - -type TIPCSubscr struct { - Seq TIPCServiceRange - Timeout uint32 - Filter uint32 - Handle [8]int8 -} - -type TIPCSIOCLNReq struct { - Peer uint32 - Id uint32 - Linkname [68]int8 -} - -type TIPCSIOCNodeIDReq struct { - Peer uint32 - Id [16]int8 -} - -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 -) - -const ( - PIDFD_NONBLOCK = 0x4000 -) - -type SysvIpcPerm struct { - Key int32 - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode uint32 - _ uint16 - Seq uint16 - _ uint64 - _ uint64 -} -type SysvShmDesc struct { - Perm SysvIpcPerm - Atime int64 - Dtime int64 - Ctime int64 - Segsz uint64 - Cpid int32 - Lpid int32 - Nattch uint64 - _ uint64 - _ uint64 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go deleted file mode 100644 index f22e794..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ /dev/null @@ -1,585 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - 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 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 uint32 -} - -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 int32 - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x84 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData - Pad_cgo_1 [4]byte -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -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 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go deleted file mode 100644 index 066a7d8..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ /dev/null @@ -1,593 +0,0 @@ -// 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 - -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 int32 - Pad_cgo_0 [4]byte -} - -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 { - 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 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - 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 = 0x14 - 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 uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go deleted file mode 100644 index 439548e..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ /dev/null @@ -1,590 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - Pad_cgo_0 [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - 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 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 uint32 -} - -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 int32 - 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 = 0x14 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter uint32 - Flags uint32 - Fflags uint32 - Data int64 - Udata int32 - Pad_cgo_0 [4]byte -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -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 - Pad_cgo_0 [2]byte -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go deleted file mode 100644 index 16085d3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ /dev/null @@ -1,593 +0,0 @@ -// 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 - -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 int32 - Pad_cgo_0 [4]byte -} - -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 { - 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 - Pid int32 - Type int16 - Whence int16 -} - -type Dirent struct { - Fileno uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [512]int8 - Pad_cgo_0 [3]byte -} - -type Fsid struct { - X__fsid_val [2]int32 -} - -const ( - PathMax = 0x400 -) - -const ( - ST_WAIT = 0x1 - ST_NOWAIT = 0x2 -) - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 [12]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 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen int32 - Pad_cgo_1 [4]byte - 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 = 0x14 - 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 uint32 - Flags uint32 - Fflags uint32 - Pad_cgo_0 [4]byte - Data int64 - Udata int64 -} - -type FdSet struct { - Bits [8]uint32 -} - -const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x88 - SizeofIfaMsghdr = 0x18 - SizeofIfAnnounceMsghdr = 0x18 - SizeofRtMsghdr = 0x78 - SizeofRtMetrics = 0x50 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - Link_state int32 - Mtu uint64 - Metric uint64 - Baudrate uint64 - Ipackets uint64 - Ierrors uint64 - Opackets uint64 - Oerrors uint64 - Collisions uint64 - Ibytes uint64 - Obytes uint64 - Imcasts uint64 - Omcasts uint64 - Iqdrops uint64 - Noproto uint64 - Lastchange Timespec -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Metric int32 - Index uint16 - Pad_cgo_0 [6]byte -} - -type IfAnnounceMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Name [16]int8 - What uint16 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Pad_cgo_0 [2]byte - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits int32 - Pad_cgo_1 [4]byte - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint64 - Mtu uint64 - Hopcount uint64 - Recvpipe uint64 - Sendpipe uint64 - Ssthresh uint64 - Rtt uint64 - Rttvar uint64 - Expire int64 - Pksent int64 -} - -type Mclpool [0]byte - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x20 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - Padding [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [6]byte -} - -type BpfTimeval struct { - Sec int64 - Usec int64 -} - -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 -} - -type Ptmget struct { - Cfd int32 - Sfd int32 - Cn [1024]byte - Sn [1024]byte -} - -const ( - AT_FDCWD = -0x64 - AT_EACCESS = 0x100 - AT_SYMLINK_NOFOLLOW = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_REMOVEDIR = 0x800 -) - -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 Sysctlnode struct { - Flags uint32 - Num int32 - Name [32]int8 - Ver uint32 - X__rsvd uint32 - Un [16]byte - X_sysctl_size [8]byte - X_sysctl_func [8]byte - X_sysctl_parent [8]byte - X_sysctl_desc [8]byte -} - -type Utsname struct { - Sysname [256]byte - Nodename [256]byte - Release [256]byte - Version [256]byte - Machine [256]byte -} - -const SizeofUvmexp = 0x278 - -type Uvmexp struct { - Pagesize int64 - Pagemask int64 - Pageshift int64 - Npages int64 - Free int64 - Active int64 - Inactive int64 - Paging int64 - Wired int64 - Zeropages int64 - Reserve_pagedaemon int64 - Reserve_kernel int64 - Freemin int64 - Freetarg int64 - Inactarg int64 - Wiredmax int64 - Nswapdev int64 - Swpages int64 - Swpginuse int64 - Swpgonly int64 - Nswget int64 - Unused1 int64 - Cpuhit int64 - Cpumiss int64 - Faults int64 - Traps int64 - Intrs int64 - Swtch int64 - Softs int64 - Syscalls int64 - Pageins int64 - Swapins int64 - Swapouts int64 - Pgswapin int64 - Pgswapout int64 - Forks int64 - Forks_ppwait int64 - Forks_sharevm int64 - Pga_zerohit int64 - Pga_zeromiss int64 - Zeroaborts int64 - Fltnoram int64 - Fltnoanon int64 - Fltpgwait int64 - Fltpgrele int64 - Fltrelck int64 - Fltrelckok int64 - Fltanget int64 - Fltanretry int64 - Fltamcopy int64 - Fltnamap int64 - Fltnomap int64 - Fltlget int64 - Fltget int64 - Flt_anon int64 - Flt_acow int64 - Flt_obj int64 - Flt_prcopy int64 - Flt_przero int64 - Pdwoke int64 - Pdrevs int64 - Unused4 int64 - Pdfreed int64 - Pdscans int64 - Pdanscan int64 - Pdobscan int64 - Pdreact int64 - Pdbusy int64 - Pdpageouts int64 - Pdpending int64 - Pddeact int64 - Anonpages int64 - Filepages int64 - Execpages int64 - Colorhit int64 - Colormiss int64 - Ncolors int64 - Bootpages int64 - Poolpages int64 -} - -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_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go deleted file mode 100644 index afd13a3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ /dev/null @@ -1,568 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 -} - -type Timeval struct { - Sec int64 - Usec int32 -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 uint32 -} - -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 = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - Data int64 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0xa0 - SizeofIfData = 0x88 - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go deleted file mode 100644 index 5d97f1f..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ /dev/null @@ -1,568 +0,0 @@ -// 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 - -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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go deleted file mode 100644 index 34871cd..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ /dev/null @@ -1,575 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 -) - -type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 -) - -type Timespec struct { - Sec int64 - Nsec int32 - _ [4]byte -} - -type Timeval struct { - Sec int64 - Usec int32 - _ [4]byte -} - -type Rusage struct { - Utime Timeval - Stime Timeval - Maxrss int32 - Ixrss int32 - Idrss int32 - Isrss int32 - Minflt int32 - Majflt int32 - Nswap int32 - Inblock int32 - Oublock int32 - Msgsnd int32 - Msgrcv int32 - Nsignals int32 - Nvcsw int32 - Nivcsw int32 -} - -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 - _ [4]byte - _ Timespec -} - -type Statfs_t struct { - F_flags uint32 - F_bsize uint32 - F_iosize uint32 - _ [4]byte - 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 uint32 -} - -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 = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 -) - -const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 -) - -type Kevent_t struct { - Ident uint32 - Filter int16 - Flags uint16 - Fflags uint32 - _ [4]byte - Data int64 - Udata *byte - _ [4]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 - _ [4]byte - 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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x8 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go deleted file mode 100644 index 5911bce..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ /dev/null @@ -1,568 +0,0 @@ -// 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 - -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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick 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 deleted file mode 100644 index e4f24f3..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ /dev/null @@ -1,568 +0,0 @@ -// 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 - -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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x8 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go deleted file mode 100644 index ca50a79..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +++ /dev/null @@ -1,570 +0,0 @@ -// 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 ppc64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick int32 - Stathz int32 - Profhz int32 -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go deleted file mode 100644 index d7d7f79..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +++ /dev/null @@ -1,570 +0,0 @@ -// 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 riscv64 && 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]byte - F_mntonname [90]byte - F_mntfromname [90]byte - F_mntfromspec [90]byte - _ [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 = 0x18 -) - -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 - Ifidx uint16 - Flowid uint16 - Flags uint8 - Drops uint8 -} - -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_EACCESS = 0x1 - AT_SYMLINK_NOFOLLOW = 0x2 - AT_SYMLINK_FOLLOW = 0x4 - AT_REMOVEDIR = 0x8 -) - -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 = 0x10 - -type Clockinfo struct { - Hz int32 - Tick 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 deleted file mode 100644 index 1416057..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,516 +0,0 @@ -// 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 - -package unix - -const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x400 - MaxHostNameLen = 0x100 -) - -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 Timeval32 struct { - Sec int32 - Usec int32 -} - -type Tms struct { - Utime int64 - Stime int64 - Cutime int64 - Cstime int64 -} - -type Utimbuf struct { - Actime int64 - Modtime 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 { - Dev uint64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - Size int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Blksize int32 - Blocks int64 - Fstype [16]int8 -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Sysid int32 - Pid int32 - Pad [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Name [1]int8 - _ [5]byte -} - -type _Fsblkcnt_t uint64 - -type Statvfs_t struct { - Bsize uint64 - Frsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Favail uint64 - Fsid uint64 - Basetype [16]int8 - Flag uint64 - Namemax uint64 - Fstr [32]int8 -} - -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - _ uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrDatalink struct { - Family uint16 - Index uint16 - Type uint8 - Nlen uint8 - Alen uint8 - Slen uint8 - Data [244]int8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [236]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 int32 - Accrights *int8 - Accrightslen int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint32 - Level int32 - 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 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x20 - SizeofSockaddrAny = 0xfc - SizeofSockaddrUnix = 0x6e - SizeofSockaddrDatalink = 0xfc - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x24 - SizeofICMPv6Filter = 0x20 -) - -type FdSet struct { - Bits [1024]int64 -} - -type Utsname struct { - Sysname [257]byte - Nodename [257]byte - Release [257]byte - Version [257]byte - Machine [257]byte -} - -type Ustat_t struct { - Tfree int64 - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -const ( - AT_FDCWD = 0xffd19553 - AT_SYMLINK_NOFOLLOW = 0x1000 - AT_SYMLINK_FOLLOW = 0x2000 - AT_REMOVEDIR = 0x1 - AT_EACCESS = 0x4 -) - -const ( - SizeofIfMsghdr = 0x54 - SizeofIfData = 0x44 - SizeofIfaMsghdr = 0x14 - SizeofRtMsghdr = 0x4c - SizeofRtMetrics = 0x28 -) - -type IfMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Mtu uint32 - Metric uint32 - Baudrate uint32 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Lastchange Timeval32 -} - -type IfaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Metric int32 -} - -type RtMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Index uint16 - Flags int32 - Addrs int32 - Pid int32 - Seq int32 - Errno int32 - Use int32 - Inits uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Hopcount uint32 - Expire uint32 - Recvpipe uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Pksent uint32 -} - -const ( - SizeofBpfVersion = 0x4 - SizeofBpfStat = 0x80 - SizeofBpfProgram = 0x10 - SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 -) - -type BpfVersion struct { - Major uint16 - Minor uint16 -} - -type BpfStat struct { - Recv uint64 - Drop uint64 - Capt uint64 - _ [13]uint64 -} - -type BpfProgram struct { - Len uint32 - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfTimeval struct { - Sec int32 - Usec int32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - _ [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - _ [1]byte -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line int8 - Cc [8]uint8 - _ [1]byte -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -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 fileObj struct { - Atim Timespec - Mtim Timespec - Ctim Timespec - Pad [3]uint64 - Name *int8 -} - -type portEvent struct { - Events int32 - Source uint16 - Pad uint16 - Object uint64 - User *byte -} - -const ( - PORT_SOURCE_AIO = 0x1 - PORT_SOURCE_TIMER = 0x2 - PORT_SOURCE_USER = 0x3 - PORT_SOURCE_FD = 0x4 - PORT_SOURCE_ALERT = 0x5 - PORT_SOURCE_MQ = 0x6 - PORT_SOURCE_FILE = 0x7 - PORT_ALERT_SET = 0x1 - PORT_ALERT_UPDATE = 0x2 - PORT_ALERT_INVALID = 0x3 - FILE_ACCESS = 0x1 - FILE_MODIFIED = 0x2 - FILE_ATTRIB = 0x4 - FILE_TRUNC = 0x100000 - FILE_NOFOLLOW = 0x10000000 - FILE_DELETE = 0x10 - FILE_RENAME_TO = 0x20 - FILE_RENAME_FROM = 0x40 - UNMOUNTED = 0x20000000 - MOUNTEDOVER = 0x40000000 - FILE_EXCEPTION = 0x60000070 -) - -const ( - TUNNEWPPA = 0x540001 - TUNSETPPA = 0x540002 - - I_STR = 0x5308 - I_POP = 0x5303 - I_PUSH = 0x5302 - I_LINK = 0x530c - I_UNLINK = 0x530d - 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_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go deleted file mode 100644 index 2e5d5a4..0000000 --- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +++ /dev/null @@ -1,552 +0,0 @@ -// 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 - -// 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 - SizeofInet4Pktinfo = 8 - SizeofInet6Pktinfo = 20 - SizeofLinger = 8 - SizeofSockaddrInet4 = 16 - SizeofSockaddrInet6 = 28 - SizeofTCPInfo = 0x68 - SizeofUcred = 12 -) - -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 [16]byte - Nodename [32]byte - Release [8]byte - Version [8]byte - Machine [16]byte -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -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 uint64 - Bsize uint64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint32 - Ffree uint32 - Fsid uint64 - Namelen uint64 - Frsize uint64 - Flags uint64 - _ [4]uint64 -} - -type direntLE struct { - Reclen uint16 - Namlen uint16 - Ino uint32 - Extra uintptr - Name [256]byte -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type FdSet struct { - Bits [64]int32 -} - -// 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 F_cnvrt struct { - Cvtcmd int32 - Pccsid int16 - Fccsid int16 -} - -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 -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 - Name string -} - -const ( - SizeofInotifyEvent = 0x10 -) - -type ConsMsg2 struct { - Cm2Format uint16 - Cm2R1 uint16 - Cm2Msglength uint32 - Cm2Msg *byte - Cm2R2 [4]byte - Cm2R3 [4]byte - Cm2Routcde *uint32 - Cm2Descr *uint32 - Cm2Msgflag uint32 - Cm2Token uint32 - Cm2Msgid *uint32 - Cm2R4 [4]byte - Cm2DomToken uint32 - Cm2DomMsgid *uint32 - Cm2ModCartptr *byte - Cm2ModConsidptr *byte - Cm2MsgCart [8]byte - Cm2MsgConsid [4]byte - Cm2R5 [12]byte -} - -const ( - CC_modify = 1 - CC_stop = 2 - CONSOLE_FORMAT_2 = 2 - CONSOLE_FORMAT_3 = 3 - CONSOLE_HRDCPY = 0x80000000 -) - -type OpenHow struct { - Flags uint64 - Mode uint64 - Resolve uint64 -} - -const SizeofOpenHow = 0x18 - -const ( - RESOLVE_CACHED = 0x20 - RESOLVE_BENEATH = 0x8 - RESOLVE_IN_ROOT = 0x10 - RESOLVE_NO_MAGICLINKS = 0x2 - RESOLVE_NO_SYMLINKS = 0x4 - RESOLVE_NO_XDEV = 0x1 -) - -type Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - _ [44]byte -} - -type SysvIpcPerm struct { - Uid uint32 - Gid uint32 - Cuid uint32 - Cgid uint32 - Mode int32 -} - -type SysvShmDesc struct { - Perm SysvIpcPerm - _ [4]byte - Lpid int32 - Cpid int32 - Nattch uint32 - _ [4]byte - _ [4]byte - _ [4]byte - _ int32 - _ uint8 - _ uint8 - _ uint16 - _ *byte - Segsz uint64 - Atime Time_t - Dtime Time_t - Ctime Time_t -} - -type SysvShmDesc64 struct { - Perm SysvIpcPerm - _ [4]byte - Lpid int32 - Cpid int32 - Nattch uint32 - _ [4]byte - _ [4]byte - _ [4]byte - _ int32 - _ byte - _ uint8 - _ uint16 - _ *byte - Segsz uint64 - Atime int64 - Dtime int64 - Ctime int64 -} diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go deleted file mode 100644 index 16f9056..0000000 --- a/vendor/golang.org/x/sys/windows/aliases.go +++ /dev/null @@ -1,12 +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. - -//go:build windows - -package windows - -import "syscall" - -type Errno = syscall.Errno -type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go deleted file mode 100644 index 3ca814f..0000000 --- a/vendor/golang.org/x/sys/windows/dll_windows.go +++ /dev/null @@ -1,415 +0,0 @@ -// 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 - -import ( - "sync" - "sync/atomic" - "syscall" - "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 - ObjName string - Msg string -} - -func (e *DLLError) Error() string { return e.Msg } - -func (e *DLLError) Unwrap() error { return e.Err } - -// A DLL implements access to a single DLL. -type DLL struct { - Name string - Handle Handle -} - -// LoadDLL loads DLL file into memory. -// -// Warning: using LoadDLL without an absolute path name is subject to -// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL], -// or use [LoadLibraryEx] directly. -func LoadDLL(name string) (dll *DLL, err error) { - namep, err := UTF16PtrFromString(name) - if err != nil { - return nil, err - } - h, e := syscall_loadlibrary(namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to load " + name + ": " + e.Error(), - } - } - d := &DLL{ - Name: name, - Handle: h, - } - return d, nil -} - -// MustLoadDLL is like LoadDLL but panics if load operation fails. -func MustLoadDLL(name string) *DLL { - d, e := LoadDLL(name) - if e != nil { - panic(e) - } - return d -} - -// FindProc searches DLL d for procedure named name and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProc(name string) (proc *Proc, err error) { - namep, err := BytePtrFromString(name) - if err != nil { - return nil, err - } - a, e := syscall_getprocaddress(d.Handle, namep) - if e != 0 { - 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 -} - -// MustFindProc is like FindProc but panics if search fails. -func (d *DLL) MustFindProc(name string) *Proc { - p, e := d.FindProc(name) - if e != nil { - panic(e) - } - 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) -} - -// A Proc implements access to a procedure inside a DLL. -type Proc struct { - Dll *DLL - Name string - addr uintptr -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -func (p *Proc) Addr() uintptr { - return p.addr -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - switch len(a) { - case 0: - return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) - case 1: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) - case 2: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) - case 3: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) - case 4: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) - case 5: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) - case 6: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) - case 7: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) - case 8: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) - case 9: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) - case 10: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) - case 11: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) - case 12: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) - case 13: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) - case 14: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) - case 15: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) - default: - panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") - } -} - -// A LazyDLL implements access to a single DLL. -// It will delay the load of the DLL until the first -// call to its Handle method or to one of its -// LazyProc's Addr method. -type LazyDLL struct { - Name string - - // System determines whether the DLL must be loaded from the - // Windows System directory, bypassing the normal DLL search - // path. - System bool - - mu sync.Mutex - dll *DLL // non nil once DLL is loaded -} - -// Load loads DLL file d.Name into memory. It returns an error if fails. -// Load will not try to load DLL, if it is already loaded into memory. -func (d *LazyDLL) Load() error { - // Non-racy version of: - // if d.dll != nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { - return nil - } - d.mu.Lock() - defer d.mu.Unlock() - if d.dll != nil { - return nil - } - - // kernel32.dll is special, since it's where LoadLibraryEx comes from. - // The kernel already special-cases its name, so it's always - // loaded from system32. - var dll *DLL - var err error - if d.Name == "kernel32.dll" { - dll, err = LoadDLL(d.Name) - } else { - dll, err = loadLibraryEx(d.Name, d.System) - } - if err != nil { - return err - } - - // Non-racy version of: - // d.dll = dll - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) - return nil -} - -// mustLoad is like Load but panics if search fails. -func (d *LazyDLL) mustLoad() { - e := d.Load() - if e != nil { - panic(e) - } -} - -// Handle returns d's module handle. -func (d *LazyDLL) Handle() uintptr { - d.mustLoad() - return uintptr(d.dll.Handle) -} - -// NewProc returns a LazyProc for accessing the named procedure in the DLL d. -func (d *LazyDLL) NewProc(name string) *LazyProc { - return &LazyProc{l: d, Name: name} -} - -// NewLazyDLL creates new LazyDLL associated with DLL file. -// -// Warning: using NewLazyDLL without an absolute path name is subject to -// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL]. -func NewLazyDLL(name string) *LazyDLL { - return &LazyDLL{Name: name} -} - -// NewLazySystemDLL is like NewLazyDLL, but will only -// search Windows System directory for the DLL if name is -// a base name (like "advapi32.dll"). -func NewLazySystemDLL(name string) *LazyDLL { - return &LazyDLL{Name: name, System: true} -} - -// A LazyProc implements access to a procedure inside a LazyDLL. -// It delays the lookup until the Addr method is called. -type LazyProc struct { - Name string - - mu sync.Mutex - l *LazyDLL - proc *Proc -} - -// Find searches DLL for procedure named p.Name. It returns -// an error if search fails. Find will not search procedure, -// if it is already found and loaded into memory. -func (p *LazyProc) Find() error { - // Non-racy version of: - // if p.proc == nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { - p.mu.Lock() - defer p.mu.Unlock() - if p.proc == nil { - e := p.l.Load() - if e != nil { - return e - } - proc, e := p.l.dll.FindProc(p.Name) - if e != nil { - return e - } - // Non-racy version of: - // p.proc = proc - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) - } - } - return nil -} - -// mustFind is like Find but panics if search fails. -func (p *LazyProc) mustFind() { - e := p.Find() - if e != nil { - panic(e) - } -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -// It will panic if the procedure cannot be found. -func (p *LazyProc) Addr() uintptr { - p.mustFind() - return p.proc.Addr() -} - -//go:uintptrescapes - -// Call executes procedure p with arguments a. It will panic, if more than 15 arguments -// are supplied. It will also panic if the procedure cannot be found. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - p.mustFind() - return p.proc.Call(a...) -} - -var canDoSearchSystem32Once struct { - sync.Once - v bool -} - -func initCanDoSearchSystem32() { - // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: - // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows - // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on - // systems that have KB2533623 installed. To determine whether the - // flags are available, use GetProcAddress to get the address of the - // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories - // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* - // flags can be used with LoadLibraryEx." - canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) -} - -func canDoSearchSystem32() bool { - canDoSearchSystem32Once.Do(initCanDoSearchSystem32) - return canDoSearchSystem32Once.v -} - -func isBaseName(name string) bool { - for _, c := range name { - if c == ':' || c == '/' || c == '\\' { - return false - } - } - return true -} - -// loadLibraryEx wraps the Windows LoadLibraryEx function. -// -// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx -// -// If name is not an absolute path, LoadLibraryEx searches for the DLL -// in a variety of automatic locations unless constrained by flags. -// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx -func loadLibraryEx(name string, system bool) (*DLL, error) { - loadDLL := name - var flags uintptr - if system { - if canDoSearchSystem32() { - flags = LOAD_LIBRARY_SEARCH_SYSTEM32 - } else if isBaseName(name) { - // WindowsXP or unpatched Windows machine - // trying to load "foo.dll" out of the system - // folder, but LoadLibraryEx doesn't support - // that yet on their system, so emulate it. - systemdir, err := GetSystemDirectory() - if err != nil { - return nil, err - } - loadDLL = systemdir + "\\" + name - } - } - h, err := LoadLibraryEx(loadDLL, 0, flags) - if err != nil { - return nil, err - } - return &DLL{Name: name, Handle: h}, nil -} diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go deleted file mode 100644 index d4577a4..0000000 --- a/vendor/golang.org/x/sys/windows/env_windows.go +++ /dev/null @@ -1,57 +0,0 @@ -// 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. - -// Windows environment variables. - -package windows - -import ( - "syscall" - "unsafe" -) - -func Getenv(key string) (value string, found bool) { - return syscall.Getenv(key) -} - -func Setenv(key, value string) error { - return syscall.Setenv(key, value) -} - -func Clearenv() { - syscall.Clearenv() -} - -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) - size := unsafe.Sizeof(*block) - for *block != 0 { - // find NUL terminator - end := unsafe.Pointer(block) - for *(*uint16)(end) != 0 { - end = unsafe.Add(end, size) - } - - entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) - env = append(env, UTF16ToString(entry)) - block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil -} - -func Unsetenv(key string) error { - return syscall.Unsetenv(key) -} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go deleted file mode 100644 index 6c36695..0000000 --- a/vendor/golang.org/x/sys/windows/eventlog.go +++ /dev/null @@ -1,20 +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. - -//go:build windows - -package windows - -const ( - EVENTLOG_SUCCESS = 0 - EVENTLOG_ERROR_TYPE = 1 - EVENTLOG_WARNING_TYPE = 2 - EVENTLOG_INFORMATION_TYPE = 4 - EVENTLOG_AUDIT_SUCCESS = 8 - EVENTLOG_AUDIT_FAILURE = 16 -) - -//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW -//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource -//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go deleted file mode 100644 index 9cabbb6..0000000 --- a/vendor/golang.org/x/sys/windows/exec_windows.go +++ /dev/null @@ -1,248 +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. - -// Fork, exec, wait, etc. - -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. -// Alternatively, these transformations are done: -// - every back slash (\) is doubled, but only if immediately -// followed by double quote ("); -// - every double quote (") is escaped by back slash (\); -// - finally, s is wrapped with double quotes (arg -> "arg"), -// but only if there is space or tab inside s. -func EscapeArg(s string) string { - if len(s) == 0 { - return `""` - } - n := len(s) - hasSpace := false - for i := 0; i < len(s); i++ { - switch s[i] { - case '"', '\\': - n++ - case ' ', '\t': - hasSpace = true - } - } - if hasSpace { - n += 2 // Reserve space for quotes. - } - if n == len(s) { - return s - } - - qs := make([]byte, n) - j := 0 - if hasSpace { - qs[j] = '"' - j++ - } - slashes := 0 - for i := 0; i < len(s); i++ { - switch s[i] { - default: - slashes = 0 - qs[j] = s[i] - case '\\': - slashes++ - qs[j] = s[i] - case '"': - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '\\' - j++ - qs[j] = s[i] - } - j++ - } - if hasSpace { - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '"' - j++ - } - return string(qs[:j]) -} - -// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, -// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, -// or any program that uses CommandLineToArgv. -func ComposeCommandLine(args []string) string { - if len(args) == 0 { - return "" - } - - // Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw: - // “This function accepts command lines that contain a program name; the - // program name can be enclosed in quotation marks or not.” - // - // Unfortunately, it provides no means of escaping interior quotation marks - // within that program name, and we have no way to report them here. - prog := args[0] - mustQuote := len(prog) == 0 - for i := 0; i < len(prog); i++ { - c := prog[i] - if c <= ' ' || (c == '"' && i == 0) { - // Force quotes for not only the ASCII space and tab as described in the - // MSDN article, but also ASCII control characters. - // The documentation for CommandLineToArgvW doesn't say what happens when - // the first argument is not a valid program name, but it empirically - // seems to drop unquoted control characters. - mustQuote = true - break - } - } - var commandLine []byte - if mustQuote { - commandLine = make([]byte, 0, len(prog)+2) - commandLine = append(commandLine, '"') - for i := 0; i < len(prog); i++ { - c := prog[i] - if c == '"' { - // This quote would interfere with our surrounding quotes. - // We have no way to report an error, so just strip out - // the offending character instead. - continue - } - commandLine = append(commandLine, c) - } - commandLine = append(commandLine, '"') - } else { - if len(args) == 1 { - // args[0] is a valid command line representing itself. - // No need to allocate a new slice or string for it. - return prog - } - commandLine = []byte(prog) - } - - for _, arg := range args[1:] { - commandLine = append(commandLine, ' ') - // TODO(bcmills): since we're already appending to a slice, it would be nice - // to avoid the intermediate allocations of EscapeArg. - // Perhaps we can factor out an appendEscapedArg function. - commandLine = append(commandLine, EscapeArg(arg)...) - } - return string(commandLine) -} - -// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, -// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that -// command lines are passed around. -// DecomposeCommandLine returns an error if commandLine contains NUL. -func DecomposeCommandLine(commandLine string) ([]string, error) { - if len(commandLine) == 0 { - return []string{}, nil - } - utf16CommandLine, err := UTF16FromString(commandLine) - if err != nil { - return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") - } - var argc int32 - argv, err := commandLineToArgv(&utf16CommandLine[0], &argc) - if err != nil { - return nil, err - } - defer LocalFree(Handle(unsafe.Pointer(argv))) - - var args []string - for _, p := range unsafe.Slice(argv, argc) { - args = append(args, UTF16PtrToString(p)) - } - return args, nil -} - -// CommandLineToArgv parses a Unicode command line string and sets -// argc to the number of parsed arguments. -// -// The returned memory should be freed using a single call to LocalFree. -// -// Note that although the return type of CommandLineToArgv indicates 8192 -// entries of up to 8192 characters each, the actual count of parsed arguments -// may exceed 8192, and the documentation for CommandLineToArgvW does not mention -// any bound on the lengths of the individual argument strings. -// (See https://go.dev/issue/63236.) -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - argp, err := commandLineToArgv(cmd, argc) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp)) - return argv, err -} - -func CloseOnExec(fd Handle) { - SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) -} - -// FullPath retrieves the full path of the specified file. -func FullPath(name string) (path string, err error) { - p, err := UTF16PtrFromString(name) - if err != nil { - return "", err - } - n := uint32(100) - for { - buf := make([]uint16, n) - n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) - if err != nil { - return "", err - } - if n <= uint32(len(buf)) { - return UTF16ToString(buf[:n]), nil - } - } -} - -// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. -func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, 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 - } - alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) - if err != nil { - return nil, err - } - // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. - al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} - err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) - if err != nil { - return nil, err - } - return al, err -} - -// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. -func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { - al.pointers = append(al.pointers, value) - return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) -} - -// Delete frees ProcThreadAttributeList's resources. -func (al *ProcThreadAttributeListContainer) Delete() { - deleteProcThreadAttributeList(al.data) - LocalFree(Handle(unsafe.Pointer(al.data))) - al.data = nil - al.pointers = nil -} - -// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. -func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { - return al.data -} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go deleted file mode 100644 index 6dc0920..0000000 --- a/vendor/golang.org/x/sys/windows/memory_windows.go +++ /dev/null @@ -1,48 +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. - -package windows - -const ( - MEM_COMMIT = 0x00001000 - MEM_RESERVE = 0x00002000 - MEM_DECOMMIT = 0x00004000 - MEM_RELEASE = 0x00008000 - MEM_RESET = 0x00080000 - MEM_TOP_DOWN = 0x00100000 - MEM_WRITE_WATCH = 0x00200000 - MEM_PHYSICAL = 0x00400000 - MEM_RESET_UNDO = 0x01000000 - MEM_LARGE_PAGES = 0x20000000 - - 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 -) - -type MemoryBasicInformation struct { - BaseAddress uintptr - AllocationBase uintptr - AllocationProtect uint32 - PartitionId uint16 - RegionSize uintptr - State uint32 - Protect uint32 - Type uint32 -} diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash deleted file mode 100644 index 58e0188..0000000 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ /dev/null @@ -1,70 +0,0 @@ -#!/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 - -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 'mkerrors.bash'; DO NOT EDIT." - echo - echo "package windows" - echo "import \"syscall\"" - echo "const (" - - while read -r line; do - unset vtype - if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then - key="${BASH_REMATCH[1]}" - value="${BASH_REMATCH[3]}" - vtype="${BASH_REMATCH[2]}" - else - continue - fi - [[ -n $key && -n $value ]] || continue - [[ -z ${errors["$key"]} ]] || continue - errors["$key"]="$value" - if [[ -v vtype ]]; then - if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then - vtype="" - elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then - vtype="Handle" - else - vtype="syscall.Errno" - fi - last_vtype="$vtype" - else - vtype="" - if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then - value="S_OK" - elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then - value="ERROR_SUCCESS" - fi - fi - - 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 > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash deleted file mode 100644 index ab8924e..0000000 --- a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash +++ /dev/null @@ -1,27 +0,0 @@ -#!/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 deleted file mode 100644 index dbcdb09..0000000 --- a/vendor/golang.org/x/sys/windows/mksyscall.go +++ /dev/null @@ -1,9 +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. - -//go:build generate - -package windows - -//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go deleted file mode 100644 index 0f1bdc3..0000000 --- a/vendor/golang.org/x/sys/windows/race.go +++ /dev/null @@ -1,30 +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. - -//go:build windows && race - -package windows - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go deleted file mode 100644 index 0c78da7..0000000 --- a/vendor/golang.org/x/sys/windows/race0.go +++ /dev/null @@ -1,25 +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. - -//go:build windows && !race - -package windows - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go deleted file mode 100644 index a8b0364..0000000 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ /dev/null @@ -1,1497 +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. - -package windows - -import ( - "syscall" - "unsafe" -) - -const ( - NameUnknown = 0 - NameFullyQualifiedDN = 1 - NameSamCompatible = 2 - NameDisplay = 3 - NameUniqueId = 6 - NameCanonical = 7 - NameUserPrincipal = 8 - NameCanonicalEx = 9 - NameServicePrincipal = 10 - NameDnsDomain = 12 -) - -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx -//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW -//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW - -// TranslateAccountName converts a directory service -// object name from one format to another. -func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { - u, e := UTF16PtrFromString(username) - if e != nil { - return "", e - } - n := uint32(50) - for { - b := make([]uint16, n) - e = TranslateName(u, from, to, &b[0], &n) - if e == nil { - return UTF16ToString(b[:n]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -const ( - // do not reorder - NetSetupUnknownStatus = iota - NetSetupUnjoined - NetSetupWorkgroupName - NetSetupDomainName -) - -type UserInfo10 struct { - Name *uint16 - Comment *uint16 - UsrComment *uint16 - FullName *uint16 -} - -//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo -//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation -//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree -//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum - -const ( - // do not reorder - SidTypeUser = 1 + iota - SidTypeGroup - SidTypeDomain - SidTypeAlias - SidTypeWellKnownGroup - SidTypeDeletedAccount - SidTypeInvalid - SidTypeUnknown - SidTypeComputer - SidTypeLabel -) - -type SidIdentifierAuthority struct { - Value [6]byte -} - -var ( - SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} - SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} - SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} - SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} - SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} - SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} - SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} -) - -const ( - SECURITY_NULL_RID = 0 - SECURITY_WORLD_RID = 0 - SECURITY_LOCAL_RID = 0 - SECURITY_CREATOR_OWNER_RID = 0 - SECURITY_CREATOR_GROUP_RID = 1 - SECURITY_DIALUP_RID = 1 - SECURITY_NETWORK_RID = 2 - SECURITY_BATCH_RID = 3 - SECURITY_INTERACTIVE_RID = 4 - SECURITY_LOGON_IDS_RID = 5 - SECURITY_SERVICE_RID = 6 - SECURITY_LOCAL_SYSTEM_RID = 18 - SECURITY_BUILTIN_DOMAIN_RID = 32 - SECURITY_PRINCIPAL_SELF_RID = 10 - SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 - SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 - SECURITY_LOGON_IDS_RID_COUNT = 0x3 - SECURITY_ANONYMOUS_LOGON_RID = 0x7 - SECURITY_PROXY_RID = 0x8 - SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 - SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID - SECURITY_AUTHENTICATED_USER_RID = 0xb - SECURITY_RESTRICTED_CODE_RID = 0xc - SECURITY_NT_NON_UNIQUE_RID = 0x15 -) - -// Predefined domain-relative RIDs for local groups. -// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx -const ( - DOMAIN_ALIAS_RID_ADMINS = 0x220 - DOMAIN_ALIAS_RID_USERS = 0x221 - DOMAIN_ALIAS_RID_GUESTS = 0x222 - DOMAIN_ALIAS_RID_POWER_USERS = 0x223 - DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 - DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 - DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 - DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 - DOMAIN_ALIAS_RID_REPLICATOR = 0x228 - DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 - DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a - DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b - DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c - DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d - DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e - DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f - DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 - DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 - DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 - DOMAIN_ALIAS_RID_IUSERS = 0x238 - DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 - DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b - DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c - DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d - DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e -) - -//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW -//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW -//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW -//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW -//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid -//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. -func StringToSid(s string) (*SID, error) { - var sid *SID - p, e := UTF16PtrFromString(s) - if e != nil { - return nil, e - } - e = ConvertStringSidToSid(p, &sid) - if e != nil { - return nil, e - } - defer LocalFree((Handle)(unsafe.Pointer(sid))) - return sid.Copy() -} - -// 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) { - if len(account) == 0 { - return nil, "", 0, syscall.EINVAL - } - acc, e := UTF16PtrFromString(account) - if e != nil { - return nil, "", 0, e - } - var sys *uint16 - if len(system) > 0 { - sys, e = UTF16PtrFromString(system) - if e != nil { - return nil, "", 0, e - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]byte, n) - db := make([]uint16, dn) - sid = (*SID)(unsafe.Pointer(&b[0])) - e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) - if e == nil { - return sid, UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, "", 0, e - } - if n <= uint32(len(b)) { - return nil, "", 0, e - } - } -} - -// 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 "" - } - defer LocalFree((Handle)(unsafe.Pointer(s))) - return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) -} - -// 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. -func (sid *SID) Copy() (*SID, error) { - b := make([]byte, sid.Len()) - sid2 := (*SID)(unsafe.Pointer(&b[0])) - e := CopySid(uint32(len(b)), sid2, sid) - if e != nil { - return nil, e - } - return sid2, nil -} - -// 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 - if len(system) > 0 { - sys, err = UTF16PtrFromString(system) - if err != nil { - return "", "", 0, err - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]uint16, n) - db := make([]uint16, dn) - e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) - if e == nil { - return UTF16ToString(b), UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", "", 0, e - } - if n <= uint32(len(b)) { - return "", "", 0, e - } - } -} - -// Various types of pre-specified SIDs that can be synthesized and compared at runtime. -type WELL_KNOWN_SID_TYPE uint32 - -const ( - WinNullSid = 0 - WinWorldSid = 1 - WinLocalSid = 2 - WinCreatorOwnerSid = 3 - WinCreatorGroupSid = 4 - WinCreatorOwnerServerSid = 5 - WinCreatorGroupServerSid = 6 - WinNtAuthoritySid = 7 - WinDialupSid = 8 - WinNetworkSid = 9 - WinBatchSid = 10 - WinInteractiveSid = 11 - WinServiceSid = 12 - WinAnonymousSid = 13 - WinProxySid = 14 - WinEnterpriseControllersSid = 15 - WinSelfSid = 16 - WinAuthenticatedUserSid = 17 - WinRestrictedCodeSid = 18 - WinTerminalServerSid = 19 - WinRemoteLogonIdSid = 20 - WinLogonIdsSid = 21 - WinLocalSystemSid = 22 - WinLocalServiceSid = 23 - WinNetworkServiceSid = 24 - WinBuiltinDomainSid = 25 - WinBuiltinAdministratorsSid = 26 - WinBuiltinUsersSid = 27 - WinBuiltinGuestsSid = 28 - WinBuiltinPowerUsersSid = 29 - WinBuiltinAccountOperatorsSid = 30 - WinBuiltinSystemOperatorsSid = 31 - WinBuiltinPrintOperatorsSid = 32 - WinBuiltinBackupOperatorsSid = 33 - WinBuiltinReplicatorSid = 34 - WinBuiltinPreWindows2000CompatibleAccessSid = 35 - WinBuiltinRemoteDesktopUsersSid = 36 - WinBuiltinNetworkConfigurationOperatorsSid = 37 - WinAccountAdministratorSid = 38 - WinAccountGuestSid = 39 - WinAccountKrbtgtSid = 40 - WinAccountDomainAdminsSid = 41 - WinAccountDomainUsersSid = 42 - WinAccountDomainGuestsSid = 43 - WinAccountComputersSid = 44 - WinAccountControllersSid = 45 - WinAccountCertAdminsSid = 46 - WinAccountSchemaAdminsSid = 47 - WinAccountEnterpriseAdminsSid = 48 - WinAccountPolicyAdminsSid = 49 - WinAccountRasAndIasServersSid = 50 - WinNTLMAuthenticationSid = 51 - WinDigestAuthenticationSid = 52 - WinSChannelAuthenticationSid = 53 - WinThisOrganizationSid = 54 - WinOtherOrganizationSid = 55 - WinBuiltinIncomingForestTrustBuildersSid = 56 - WinBuiltinPerfMonitoringUsersSid = 57 - WinBuiltinPerfLoggingUsersSid = 58 - WinBuiltinAuthorizationAccessSid = 59 - WinBuiltinTerminalServerLicenseServersSid = 60 - WinBuiltinDCOMUsersSid = 61 - WinBuiltinIUsersSid = 62 - WinIUserSid = 63 - WinBuiltinCryptoOperatorsSid = 64 - WinUntrustedLabelSid = 65 - WinLowLabelSid = 66 - WinMediumLabelSid = 67 - WinHighLabelSid = 68 - WinSystemLabelSid = 69 - WinWriteRestrictedCodeSid = 70 - WinCreatorOwnerRightsSid = 71 - WinCacheablePrincipalsGroupSid = 72 - WinNonCacheablePrincipalsGroupSid = 73 - WinEnterpriseReadonlyControllersSid = 74 - WinAccountReadonlyControllersSid = 75 - WinBuiltinEventLogReadersGroup = 76 - WinNewEnterpriseReadonlyControllersSid = 77 - WinBuiltinCertSvcDComAccessGroup = 78 - WinMediumPlusLabelSid = 79 - WinLocalLogonSid = 80 - WinConsoleLogonSid = 81 - WinThisOrganizationCertificateSid = 82 - WinApplicationPackageAuthoritySid = 83 - WinBuiltinAnyPackageSid = 84 - WinCapabilityInternetClientSid = 85 - WinCapabilityInternetClientServerSid = 86 - WinCapabilityPrivateNetworkClientServerSid = 87 - WinCapabilityPicturesLibrarySid = 88 - WinCapabilityVideosLibrarySid = 89 - WinCapabilityMusicLibrarySid = 90 - WinCapabilityDocumentsLibrarySid = 91 - WinCapabilitySharedUserCertificatesSid = 92 - WinCapabilityEnterpriseAuthenticationSid = 93 - WinCapabilityRemovableStorageSid = 94 - WinBuiltinRDSRemoteAccessServersSid = 95 - WinBuiltinRDSEndpointServersSid = 96 - WinBuiltinRDSManagementServersSid = 97 - WinUserModeDriversSid = 98 - WinBuiltinHyperVAdminsSid = 99 - WinAccountCloneableControllersSid = 100 - WinBuiltinAccessControlAssistanceOperatorsSid = 101 - WinBuiltinRemoteManagementUsersSid = 102 - WinAuthenticationAuthorityAssertedSid = 103 - WinAuthenticationServiceAssertedSid = 104 - WinLocalAccountSid = 105 - WinLocalAccountAndAdministratorSid = 106 - WinAccountProtectedUsersSid = 107 - WinCapabilityAppointmentsSid = 108 - WinCapabilityContactsSid = 109 - WinAccountDefaultSystemManagedSid = 110 - WinBuiltinDefaultSystemManagedGroupSid = 111 - WinBuiltinStorageReplicaAdminsSid = 112 - WinAccountKeyAdminsSid = 113 - WinAccountEnterpriseKeyAdminsSid = 114 - WinAuthenticationKeyTrustSid = 115 - WinAuthenticationKeyPropertyMFASid = 116 - WinAuthenticationKeyPropertyAttestationSid = 117 - WinAuthenticationFreshKeyAuthSid = 118 - WinBuiltinDeviceOwnersSid = 119 -) - -// 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 -// Win*Sid, for the domain specified by the domainSid parameter. -func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { - n := uint32(50) - for { - b := make([]byte, n) - sid := (*SID)(unsafe.Pointer(&b[0])) - err := createWellKnownSid(sidType, domainSid, sid, &n) - if err == nil { - return sid, nil - } - if err != ERROR_INSUFFICIENT_BUFFER { - return nil, err - } - if n <= uint32(len(b)) { - return nil, err - } - } -} - -const ( - // do not reorder - TOKEN_ASSIGN_PRIMARY = 1 << iota - TOKEN_DUPLICATE - TOKEN_IMPERSONATE - TOKEN_QUERY - TOKEN_QUERY_SOURCE - TOKEN_ADJUST_PRIVILEGES - TOKEN_ADJUST_GROUPS - TOKEN_ADJUST_DEFAULT - TOKEN_ADJUST_SESSIONID - - TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | - TOKEN_ASSIGN_PRIMARY | - TOKEN_DUPLICATE | - TOKEN_IMPERSONATE | - TOKEN_QUERY | - TOKEN_QUERY_SOURCE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT | - TOKEN_ADJUST_SESSIONID - TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY - TOKEN_WRITE = STANDARD_RIGHTS_WRITE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT - TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE -) - -const ( - // do not reorder - TokenUser = 1 + iota - TokenGroups - TokenPrivileges - TokenOwner - TokenPrimaryGroup - TokenDefaultDacl - TokenSource - TokenType - TokenImpersonationLevel - TokenStatistics - TokenRestrictedSids - TokenSessionId - TokenGroupsAndPrivileges - TokenSessionReference - TokenSandBoxInert - TokenAuditPolicy - TokenOrigin - TokenElevationType - TokenLinkedToken - TokenElevation - TokenHasRestrictions - TokenAccessInformation - TokenVirtualizationAllowed - TokenVirtualizationEnabled - TokenIntegrityLevel - TokenUIAccess - TokenMandatoryPolicy - TokenLogonSid - 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 -} - -type Tokenuser struct { - User SIDAndAttributes -} - -type Tokenprimarygroup struct { - PrimaryGroup *SID -} - -type Tokengroups struct { - GroupCount uint32 - 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 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 -// process executed on behalf of the user has a copy of the token. -// The token identifies the user, the user's groups, and the user's -// privileges. The system uses the token to control access to securable -// objects and to control the ability of the user to perform various -// system-related operations on the local computer. -type Token Handle - -// 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) { - 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. -func (t Token) Close() error { - return CloseHandle(Handle(t)) -} - -// getInfo retrieves a specified type of information about an access token. -func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { - n := uint32(initSize) - for { - b := make([]byte, n) - e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) - if e == nil { - return unsafe.Pointer(&b[0]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, e - } - if n <= uint32(len(b)) { - return nil, e - } - } -} - -// GetTokenUser retrieves access token t user account information. -func (t Token) GetTokenUser() (*Tokenuser, error) { - i, e := t.getInfo(TokenUser, 50) - if e != nil { - return nil, e - } - return (*Tokenuser)(i), nil -} - -// GetTokenGroups retrieves group accounts associated with access token t. -func (t Token) GetTokenGroups() (*Tokengroups, error) { - i, e := t.getInfo(TokenGroups, 50) - if e != nil { - return nil, e - } - return (*Tokengroups)(i), nil -} - -// GetTokenPrimaryGroup retrieves access token t primary group information. -// A pointer to a SID structure representing a group that will become -// the primary group of any objects created by a process using this access token. -func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { - i, e := t.getInfo(TokenPrimaryGroup, 50) - if e != nil { - return nil, e - } - return (*Tokenprimarygroup)(i), nil -} - -// GetUserProfileDirectory retrieves path to the -// root directory of the access token t user's profile. -func (t Token) GetUserProfileDirectory() (string, error) { - n := uint32(100) - for { - b := make([]uint16, n) - e := GetUserProfileDirectory(t, &b[0], &n) - if e == nil { - return UTF16ToString(b), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -// 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 { - b := make([]uint16, n) - l, e := getSystemDirectory(&b[0], n) - if e != nil { - return "", e - } - if l <= n { - return UTF16ToString(b[:l]), nil - } - n = l - } -} - -// 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 - if e := checkTokenMembership(t, sid, &b); e != nil { - return false, e - } - 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 -//sys WTSGetActiveConsoleSessionId() (sessionID uint32) - -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 -} - -// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header -type ACE_HEADER struct { - AceType uint8 - AceFlags uint8 - AceSize uint16 -} - -// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace -type ACCESS_ALLOWED_ACE struct { - Header ACE_HEADER - Mask ACCESS_MASK - SidStart uint32 -} - -const ( - // Constants for AceType - // https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header - ACCESS_ALLOWED_ACE_TYPE = 0 - ACCESS_DENIED_ACE_TYPE = 1 -) - -// 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 -//sys GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce - -// 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 = new(SECURITY_DESCRIPTOR) - if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) { - panic("sizeof(SECURITY_DESCRIPTOR) too small") - } - } - var ( - dacl *ACL - sacl *ACL - owner *SID - group *SID - ) - if daclSize > 0 { - dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize)))) - } - if saclSize > 0 { - sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize)))) - } - if ownerSize > 0 { - owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize)))) - } - if groupSize > 0 { - group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize)))) - } - // We call into Windows via makeAbsoluteSD, which sets up - // pointers within absoluteSD that point to other chunks of memory - // we pass into makeAbsoluteSD, and that happens outside the view of the GC. - // We therefore take some care here to then verify the pointers are as we expect - // and set them explicitly in view of the GC. See https://go.dev/issue/73199. - // TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575. - err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, - dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) - if err != nil { - // Don't return absoluteSD, which might be partially initialized. - return nil, err - } - // Before using any fields, verify absoluteSD is in the format we expect according to Windows. - // See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors - absControl, _, err := absoluteSD.Control() - if err != nil { - panic("absoluteSD: " + err.Error()) - } - if absControl&SE_SELF_RELATIVE != 0 { - panic("absoluteSD not in absolute format") - } - if absoluteSD.dacl != dacl { - panic("dacl pointer mismatch") - } - if absoluteSD.sacl != sacl { - panic("sacl pointer mismatch") - } - if absoluteSD.owner != owner { - panic("owner pointer mismatch") - } - if absoluteSD.group != group { - panic("group pointer mismatch") - } - absoluteSD.dacl = dacl - absoluteSD.sacl = sacl - absoluteSD.owner = owner - absoluteSD.group = group - - return -} - -// 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 - } - - src := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen) - // SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to - // be aligned properly. When we're copying a Windows-allocated struct to a - // Go-allocated one, make sure that the Go allocation is aligned to the - // pointer size. - const psize = int(unsafe.Sizeof(uintptr(0))) - alloc := make([]uintptr, (sdLen+psize-1)/psize) - dst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), 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 deleted file mode 100644 index a9dc630..0000000 --- a/vendor/golang.org/x/sys/windows/service.go +++ /dev/null @@ -1,257 +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. - -//go:build windows - -package windows - -const ( - SC_MANAGER_CONNECT = 1 - SC_MANAGER_CREATE_SERVICE = 2 - SC_MANAGER_ENUMERATE_SERVICE = 4 - SC_MANAGER_LOCK = 8 - SC_MANAGER_QUERY_LOCK_STATUS = 16 - SC_MANAGER_MODIFY_BOOT_CONFIG = 32 - SC_MANAGER_ALL_ACCESS = 0xf003f -) - -const ( - SERVICE_KERNEL_DRIVER = 1 - SERVICE_FILE_SYSTEM_DRIVER = 2 - SERVICE_ADAPTER = 4 - SERVICE_RECOGNIZER_DRIVER = 8 - SERVICE_WIN32_OWN_PROCESS = 16 - SERVICE_WIN32_SHARE_PROCESS = 32 - SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS - SERVICE_INTERACTIVE_PROCESS = 256 - SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER - SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS - - SERVICE_BOOT_START = 0 - SERVICE_SYSTEM_START = 1 - SERVICE_AUTO_START = 2 - SERVICE_DEMAND_START = 3 - SERVICE_DISABLED = 4 - - SERVICE_ERROR_IGNORE = 0 - SERVICE_ERROR_NORMAL = 1 - SERVICE_ERROR_SEVERE = 2 - SERVICE_ERROR_CRITICAL = 3 - - SC_STATUS_PROCESS_INFO = 0 - - SC_ACTION_NONE = 0 - SC_ACTION_RESTART = 1 - SC_ACTION_REBOOT = 2 - SC_ACTION_RUN_COMMAND = 3 - - SERVICE_STOPPED = 1 - SERVICE_START_PENDING = 2 - SERVICE_STOP_PENDING = 3 - SERVICE_RUNNING = 4 - SERVICE_CONTINUE_PENDING = 5 - SERVICE_PAUSE_PENDING = 6 - SERVICE_PAUSED = 7 - SERVICE_NO_CHANGE = 0xffffffff - - SERVICE_ACCEPT_STOP = 1 - SERVICE_ACCEPT_PAUSE_CONTINUE = 2 - SERVICE_ACCEPT_SHUTDOWN = 4 - SERVICE_ACCEPT_PARAMCHANGE = 8 - SERVICE_ACCEPT_NETBINDCHANGE = 16 - SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 - SERVICE_ACCEPT_POWEREVENT = 64 - SERVICE_ACCEPT_SESSIONCHANGE = 128 - SERVICE_ACCEPT_PRESHUTDOWN = 256 - - SERVICE_CONTROL_STOP = 1 - SERVICE_CONTROL_PAUSE = 2 - SERVICE_CONTROL_CONTINUE = 3 - SERVICE_CONTROL_INTERROGATE = 4 - SERVICE_CONTROL_SHUTDOWN = 5 - SERVICE_CONTROL_PARAMCHANGE = 6 - SERVICE_CONTROL_NETBINDADD = 7 - SERVICE_CONTROL_NETBINDREMOVE = 8 - SERVICE_CONTROL_NETBINDENABLE = 9 - SERVICE_CONTROL_NETBINDDISABLE = 10 - SERVICE_CONTROL_DEVICEEVENT = 11 - 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_RUNS_IN_SYSTEM_PROCESS = 1 - - 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 - - SERVICE_START_REASON_DEMAND = 0x00000001 - SERVICE_START_REASON_AUTO = 0x00000002 - SERVICE_START_REASON_TRIGGER = 0x00000004 - SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 - SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 - - SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 -) - -type ENUM_SERVICE_STATUS struct { - ServiceName *uint16 - DisplayName *uint16 - ServiceStatus SERVICE_STATUS -} - -type SERVICE_STATUS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 -} - -type SERVICE_TABLE_ENTRY struct { - ServiceName *uint16 - ServiceProc uintptr -} - -type QUERY_SERVICE_CONFIG struct { - ServiceType uint32 - StartType uint32 - ErrorControl uint32 - BinaryPathName *uint16 - LoadOrderGroup *uint16 - TagId uint32 - Dependencies *uint16 - ServiceStartName *uint16 - DisplayName *uint16 -} - -type SERVICE_DESCRIPTION struct { - Description *uint16 -} - -type SERVICE_DELAYED_AUTO_START_INFO struct { - IsDelayedAutoStartUp uint32 -} - -type SERVICE_STATUS_PROCESS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 - ProcessId uint32 - ServiceFlags uint32 -} - -type ENUM_SERVICE_STATUS_PROCESS struct { - ServiceName *uint16 - DisplayName *uint16 - 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 - Command *uint16 - ActionsCount uint32 - Actions *SC_ACTION -} - -type SERVICE_FAILURE_ACTIONS_FLAG struct { - FailureActionsOnNonCrashFailures int32 -} - -type SC_ACTION struct { - Type uint32 - Delay uint32 -} - -type QUERY_SERVICE_LOCK_STATUS struct { - IsLocked uint32 - LockOwner *uint16 - LockDuration uint32 -} - -//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW -//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 -//sys 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) = advapi32.ChangeServiceConfigW -//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW -//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 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? -//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW -//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? -//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go deleted file mode 100644 index f812648..0000000 --- a/vendor/golang.org/x/sys/windows/setupapi_windows.go +++ /dev/null @@ -1,1425 +0,0 @@ -// 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. - -package windows - -import ( - "encoding/binary" - "errors" - "fmt" - "runtime" - "strings" - "syscall" - "unsafe" -) - -// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, -// core system functions for managing hardware devices, drivers, and the PnP tree. -// Information about these APIs can be found at: -// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi -// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- - -const ( - ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 - ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 - ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 - ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 - ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 - ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 - ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 - ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 - ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 - ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 - ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 - ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 - ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 - ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 - ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 - ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 - ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 - ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 - ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A - ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B - ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C - ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D - ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E - ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F - ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 - ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 - ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 - ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 - ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 - ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 - ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 - ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 - ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 - ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 - ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A - ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B - ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C - ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D - ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E - ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F - ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 - ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 - ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 - ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 - ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 - ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 - ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 - ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 - ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 - ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 - ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A - ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B - ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C - ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D - ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E - ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F - ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 - ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 - ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 - ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 - ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 - ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 - ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 - ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 - ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 - ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A - ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B - ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C - ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D - ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E - ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F - ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 - ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 - ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 - ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 - ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 - ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 - ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 - ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 - ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 - ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 - ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A - ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B - ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C - ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 - EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW - ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE - ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE - ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED - ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE -) - -const ( - MAX_DEVICE_ID_LEN = 200 - MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN - MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null - MAX_CLASS_NAME_LEN = 32 - MAX_PROFILE_LEN = 80 - MAX_CONFIG_VALUE = 9999 - MAX_INSTANCE_VALUE = 9999 - CONFIGMG_VERSION = 0x0400 -) - -// Maximum string length constants -const ( - LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. - MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). - MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. - MAX_TITLE_LEN = 60 - MAX_INSTRUCTION_LEN = 256 - MAX_LABEL_LEN = 30 - MAX_SERVICE_NAME_LEN = 256 - MAX_SUBTITLE_LEN = 256 -) - -const ( - // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). - SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 -) - -// HSPFILEQ is type for setup file queue -type HSPFILEQ uintptr - -// DevInfo holds reference to device information set -type DevInfo Handle - -// DEVINST is a handle usually recognized by cfgmgr32 APIs -type DEVINST uint32 - -// DevInfoData is a device information structure (references a device instance that is a member of a device information set) -type DevInfoData struct { - size uint32 - ClassGUID GUID - DevInst DEVINST - _ uintptr -} - -// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). -type DevInfoListDetailData struct { - size uint32 // Use unsafeSizeOf method - ClassGUID GUID - RemoteMachineHandle Handle - remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 -} - -func (*DevInfoListDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) - } - return uint32(unsafe.Sizeof(DevInfoListDetailData{})) -} - -func (data *DevInfoListDetailData) RemoteMachineName() string { - return UTF16ToString(data.remoteMachineName[:]) -} - -func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { - str, err := UTF16FromString(remoteMachineName) - if err != nil { - return err - } - copy(data.remoteMachineName[:], str) - return nil -} - -// DI_FUNCTION is function type for device installer -type DI_FUNCTION uint32 - -const ( - DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 - DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 - DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 - DIF_PROPERTIES DI_FUNCTION = 0x00000004 - DIF_REMOVE DI_FUNCTION = 0x00000005 - DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 - DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 - DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 - DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 - DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A - DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B - DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C - DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D - DIF_DETECT DI_FUNCTION = 0x0000000F - DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 - DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 - DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 - DIF_ENABLECLASS DI_FUNCTION = 0x00000013 - DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 - DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 - DIF_UNREMOVE DI_FUNCTION = 0x00000016 - DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 - DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 - DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 - DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A - DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B - DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C - DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D - DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E - DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 - DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 - DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 - DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 - DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 - DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 - DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 - DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 - DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 - DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A -) - -// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) -type DevInstallParams struct { - size uint32 - Flags DI_FLAGS - FlagsEx DI_FLAGSEX - hwndParent uintptr - InstallMsgHandler uintptr - InstallMsgHandlerContext uintptr - FileQueue HSPFILEQ - _ uintptr - _ uint32 - driverPath [MAX_PATH]uint16 -} - -func (params *DevInstallParams) DriverPath() string { - return UTF16ToString(params.driverPath[:]) -} - -func (params *DevInstallParams) SetDriverPath(driverPath string) error { - str, err := UTF16FromString(driverPath) - if err != nil { - return err - } - copy(params.driverPath[:], str) - return nil -} - -// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values -type DI_FLAGS uint32 - -const ( - // Flags for choosing a device - DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button - DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list - DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list - DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown - DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue - DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices - DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices - DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible - - // Flags returned by DiInstallDevice to indicate need to reboot/restart - DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect - DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" - - // Flags for device installation - DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk - - // Flags set by DiBuildDriverInfoList - DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list - - // Flag indicates that device is disabled - DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled - - // Flags for Device/Class Properties - DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 - DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 - - // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. - DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 - - // Flag to indicate that the sorting from the INF file should be used. - DI_INF_IS_SORTED DI_FLAGS = 0x00008000 - - // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. - DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 - - // Flag that prevents ConfigMgr from removing/re-enumerating devices during device - // registration, installation, and deletion. - DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 - - // The following flag can be used to install a device disabled - DI_INSTALLDISABLED DI_FLAGS = 0x00040000 - - // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver - // list from its existing class driver list, instead of the normal INF search. - DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 - - // This flag is set if the Class Install params should be used. - DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 - - // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. - DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 - - // Flags for device installation - DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info - DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary - DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path - DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. - DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg - DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags - DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props - - DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs - - DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install -) - -// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values -type DI_FLAGSEX uint32 - -const ( - DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer - DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. - DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List - DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List - DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 - DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 - DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 - DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 - DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. - DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 - DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 - DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) - DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. - DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. - DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update - DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. - DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used - DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used - DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) - DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. - DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page - DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list - DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList - DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list - DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue - DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. - DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search - DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search -) - -// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. -type ClassInstallHeader struct { - size uint32 - InstallFunction DI_FUNCTION -} - -func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { - hdr := &ClassInstallHeader{InstallFunction: installFunction} - hdr.size = uint32(unsafe.Sizeof(*hdr)) - return hdr -} - -// DICS_STATE specifies values indicating a change in a device's state -type DICS_STATE uint32 - -const ( - DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. - DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. - DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. - DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). - DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. -) - -// DICS_FLAG specifies the scope of a device property change -type DICS_FLAG uint32 - -const ( - DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles - DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only - DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) -) - -// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. -type PropChangeParams struct { - ClassInstallHeader ClassInstallHeader - StateChange DICS_STATE - Scope DICS_FLAG - HwProfile uint32 -} - -// DI_REMOVEDEVICE specifies the scope of the device removal -type DI_REMOVEDEVICE uint32 - -const ( - DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. - DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. -) - -// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. -type RemoveDeviceParams struct { - ClassInstallHeader ClassInstallHeader - Scope DI_REMOVEDEVICE - HwProfile uint32 -} - -// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) -type DrvInfoData struct { - size uint32 - DriverType uint32 - _ uintptr - description [LINE_LEN]uint16 - mfgName [LINE_LEN]uint16 - providerName [LINE_LEN]uint16 - DriverDate Filetime - DriverVersion uint64 -} - -func (data *DrvInfoData) Description() string { - return UTF16ToString(data.description[:]) -} - -func (data *DrvInfoData) SetDescription(description string) error { - str, err := UTF16FromString(description) - if err != nil { - return err - } - copy(data.description[:], str) - return nil -} - -func (data *DrvInfoData) MfgName() string { - return UTF16ToString(data.mfgName[:]) -} - -func (data *DrvInfoData) SetMfgName(mfgName string) error { - str, err := UTF16FromString(mfgName) - if err != nil { - return err - } - copy(data.mfgName[:], str) - return nil -} - -func (data *DrvInfoData) ProviderName() string { - return UTF16ToString(data.providerName[:]) -} - -func (data *DrvInfoData) SetProviderName(providerName string) error { - str, err := UTF16FromString(providerName) - if err != nil { - return err - } - copy(data.providerName[:], str) - return nil -} - -// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. -func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { - if data.DriverDate.HighDateTime > driverDate.HighDateTime { - return true - } - if data.DriverDate.HighDateTime < driverDate.HighDateTime { - return false - } - - if data.DriverDate.LowDateTime > driverDate.LowDateTime { - return true - } - if data.DriverDate.LowDateTime < driverDate.LowDateTime { - return false - } - - if data.DriverVersion > driverVersion { - return true - } - if data.DriverVersion < driverVersion { - return false - } - - return false -} - -// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) -type DrvInfoDetailData struct { - size uint32 // Use unsafeSizeOf method - InfDate Filetime - compatIDsOffset uint32 - compatIDsLength uint32 - _ uintptr - sectionName [LINE_LEN]uint16 - infFileName [MAX_PATH]uint16 - drvDescription [LINE_LEN]uint16 - hardwareID [1]uint16 -} - -func (*DrvInfoDetailData) unsafeSizeOf() uint32 { - if unsafe.Sizeof(uintptr(0)) == 4 { - // Windows declares this with pshpack1.h - return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) - } - return uint32(unsafe.Sizeof(DrvInfoDetailData{})) -} - -func (data *DrvInfoDetailData) SectionName() string { - return UTF16ToString(data.sectionName[:]) -} - -func (data *DrvInfoDetailData) InfFileName() string { - return UTF16ToString(data.infFileName[:]) -} - -func (data *DrvInfoDetailData) DrvDescription() string { - return UTF16ToString(data.drvDescription[:]) -} - -func (data *DrvInfoDetailData) HardwareID() string { - if data.compatIDsOffset > 1 { - bufW := data.getBuf() - return UTF16ToString(bufW[:wcslen(bufW)]) - } - - return "" -} - -func (data *DrvInfoDetailData) CompatIDs() []string { - a := make([]string, 0) - - if data.compatIDsLength > 0 { - bufW := data.getBuf() - bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - } - - return a -} - -func (data *DrvInfoDetailData) getBuf() []uint16 { - len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 - sl := struct { - addr *uint16 - len int - cap int - }{&data.hardwareID[0], int(len), int(len)} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. -func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { - hwidLC := strings.ToLower(hwid) - if strings.ToLower(data.HardwareID()) == hwidLC { - return true - } - a := data.CompatIDs() - for i := range a { - if strings.ToLower(a[i]) == hwidLC { - return true - } - } - - return false -} - -// DICD flags control SetupDiCreateDeviceInfo -type DICD uint32 - -const ( - DICD_GENERATE_ID DICD = 0x00000001 - DICD_INHERIT_CLASSDRVS DICD = 0x00000002 -) - -// SUOI flags control SetupUninstallOEMInf -type SUOI uint32 - -const ( - SUOI_FORCEDELETE SUOI = 0x0001 -) - -// SPDIT flags to distinguish between class drivers and -// device drivers. (Passed in 'DriverType' parameter of -// driver information list APIs) -type SPDIT uint32 - -const ( - SPDIT_NODRIVER SPDIT = 0x00000000 - SPDIT_CLASSDRIVER SPDIT = 0x00000001 - SPDIT_COMPATDRIVER SPDIT = 0x00000002 -) - -// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs -type DIGCF uint32 - -const ( - DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE - DIGCF_PRESENT DIGCF = 0x00000002 - DIGCF_ALLCLASSES DIGCF = 0x00000004 - DIGCF_PROFILE DIGCF = 0x00000008 - DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 -) - -// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. -type DIREG uint32 - -const ( - DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key - DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key - DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key -) - -// SPDRP specifies device registry property codes -// (Codes marked as read-only (R) may only be used for -// SetupDiGetDeviceRegistryProperty) -// -// These values should cover the same set of registry properties -// as defined by the CM_DRP codes in cfgmgr32.h. -// -// Note that SPDRP codes are zero based while CM_DRP codes are one based! -type SPDRP uint32 - -const ( - SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) - SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) - SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) - SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) - SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) - SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) - SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) - SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) - SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) - SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) - SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) - SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) - SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) - SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) - SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) - SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) - SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) - SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) - SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) - SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) - SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) - SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) - SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) - SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) - SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) - SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) - SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) - SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) - SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) - SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) - SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) - SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) - SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) - SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) - - SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals -) - -// DEVPROPTYPE represents the property-data-type identifier that specifies the -// data type of a device property value in the unified device property model. -type DEVPROPTYPE uint32 - -const ( - DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 - DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 - - DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 - DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 - DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 - DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 - DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 - DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 - DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 - DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 - DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 - DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 - DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A - DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B - DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C - DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D - DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E - DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F - DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 - DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 - DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 - DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST - DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 - DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 - DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 - DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 - DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY - DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 - DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 - DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 - - MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 - MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 - - DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF - DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 -) - -// DEVPROPGUID specifies a property category. -type DEVPROPGUID GUID - -// DEVPROPID uniquely identifies the property within the property category. -type DEVPROPID uint32 - -const DEVPROPID_FIRST_USABLE DEVPROPID = 2 - -// DEVPROPKEY represents a device property key for a device property in the -// unified device property model. -type DEVPROPKEY struct { - FmtID DEVPROPGUID - PID DEVPROPID -} - -// CONFIGRET is a return value or error code from cfgmgr32 APIs -type CONFIGRET uint32 - -func (ret CONFIGRET) Error() string { - if win32Error, ok := ret.Unwrap().(Errno); ok { - return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) - } - return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) -} - -func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { - return cm_MapCrToWin32Err(ret, defaultError) -} - -func (ret CONFIGRET) Unwrap() error { - const noMatch = Errno(^uintptr(0)) - win32Error := ret.Win32Error(noMatch) - if win32Error == noMatch { - return nil - } - return win32Error -} - -const ( - CR_SUCCESS CONFIGRET = 0x00000000 - CR_DEFAULT CONFIGRET = 0x00000001 - CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 - CR_INVALID_POINTER CONFIGRET = 0x00000003 - CR_INVALID_FLAG CONFIGRET = 0x00000004 - CR_INVALID_DEVNODE CONFIGRET = 0x00000005 - CR_INVALID_DEVINST = CR_INVALID_DEVNODE - CR_INVALID_RES_DES CONFIGRET = 0x00000006 - CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 - CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 - CR_INVALID_NODELIST CONFIGRET = 0x00000009 - CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A - CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS - CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B - CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C - CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D - CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE - CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E - CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F - CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 - CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE - CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 - CR_INVALID_RANGE CONFIGRET = 0x00000012 - CR_FAILURE CONFIGRET = 0x00000013 - CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 - CR_CREATE_BLOCKED CONFIGRET = 0x00000015 - CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 - CR_REMOVE_VETOED CONFIGRET = 0x00000017 - CR_APM_VETOED CONFIGRET = 0x00000018 - CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 - CR_BUFFER_SMALL CONFIGRET = 0x0000001A - CR_NO_ARBITRATOR CONFIGRET = 0x0000001B - CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C - CR_REGISTRY_ERROR CONFIGRET = 0x0000001D - CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E - CR_INVALID_DATA CONFIGRET = 0x0000001F - CR_INVALID_API CONFIGRET = 0x00000020 - CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 - CR_NEED_RESTART CONFIGRET = 0x00000022 - CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 - CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 - CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 - CR_WRONG_TYPE CONFIGRET = 0x00000026 - CR_INVALID_PRIORITY CONFIGRET = 0x00000027 - CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 - CR_FREE_RESOURCES CONFIGRET = 0x00000029 - CR_QUERY_VETOED CONFIGRET = 0x0000002A - CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B - CR_NO_DEPENDENT CONFIGRET = 0x0000002C - CR_SAME_RESOURCES CONFIGRET = 0x0000002D - CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E - CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F - CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 - CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 - CR_NO_CM_SERVICES CONFIGRET = 0x00000032 - CR_ACCESS_DENIED CONFIGRET = 0x00000033 - CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 - CR_INVALID_PROPERTY CONFIGRET = 0x00000035 - CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 - CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 - CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 - CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 - CR_INVALID_INDEX CONFIGRET = 0x0000003A - CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B - NUM_CR_RESULTS CONFIGRET = 0x0000003C -) - -const ( - CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces - CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not -) - -const ( - DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT - DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver - DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator - DN_STARTED = 0x00000008 // Is currently configured - DN_MANUAL = 0x00000010 // Manually installed - DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration - DN_NOT_FIRST_TIME = 0x00000040 // Has received a config - DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID - DN_LIAR = 0x00000100 // Lied about can reconfig once - DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately - DN_HAS_PROBLEM = 0x00000400 // Need device installer - DN_FILTERED = 0x00000800 // Is filtered - DN_MOVED = 0x00001000 // Has been moved - DN_DISABLEABLE = 0x00002000 // Can be disabled - DN_REMOVABLE = 0x00004000 // Can be removed - DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem - DN_MF_PARENT = 0x00010000 // Multi function parent - DN_MF_CHILD = 0x00020000 // Multi function child - DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed - DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate - DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources - DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance - DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources - DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator - DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver - DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing - DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device - DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator - DN_APM_DRIVER = 0x10000000 // APM aware driver - DN_SILENT_INSTALL = 0x20000000 // Silent install - DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager - DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf - DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly - DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode - DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver - DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs - DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. - DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal - DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP - DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM -) - -//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW - -// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. -func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) -} - -//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW - -// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { - data := &DevInfoListDetailData{} - data.size = data.unsafeSizeOf() - - return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) -} - -// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. -func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { - return SetupDiGetDeviceInfoListDetail(deviceInfoSet) -} - -//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW - -// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. -func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { - deviceNameUTF16, err := UTF16PtrFromString(deviceName) - if err != nil { - return - } - - var deviceDescriptionUTF16 *uint16 - if deviceDescription != "" { - deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) - if err != nil { - return - } - } - - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) -} - -// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. -func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { - return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) -} - -//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo - -// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. -func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) -} - -// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. -func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { - return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) -} - -// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. -//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList - -// Close method deletes a device information set and frees all associated memory. -func (deviceInfoSet DevInfo) Close() error { - return SetupDiDestroyDeviceInfoList(deviceInfoSet) -} - -//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList - -// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. -func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch - -// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. -func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { - return SetupDiCancelDriverInfoSearch(deviceInfoSet) -} - -//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW - -// SetupDiEnumDriverInfo function enumerates the members of a driver list. -func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) -} - -// EnumDriverInfo method enumerates the members of a driver list. -func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { - return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) -} - -//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW - -// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. -func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { - data := &DrvInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) -} - -// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { - return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) -} - -//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW - -// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. -func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { - return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW - -// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. -func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - reqSize := uint32(2048) - for { - buf := make([]byte, reqSize) - data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) - data.size = data.unsafeSizeOf() - err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - data.size = reqSize - return data, nil - } -} - -// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. -func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { - return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) -} - -//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList - -// DestroyDriverInfoList method deletes a driver list. -func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { - return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) -} - -//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW - -// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. -func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { - var enumeratorUTF16 *uint16 - if enumerator != "" { - enumeratorUTF16, err = UTF16PtrFromString(enumerator) - if err != nil { - return - } - } - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) -} - -// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller - -// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). -func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { - return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) -} - -// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. -//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey - -// OpenDevRegKey method opens a registry key for device-specific configuration information. -func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { - return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) -} - -//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW - -// SetupDiGetDeviceProperty function retrieves a specified device instance property. -func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType DEVPROPTYPE - buf := make([]byte, reqSize) - err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - switch dataType { - case DEVPROP_TYPE_STRING: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - } - return nil, errors.New("unimplemented property type") - } -} - -//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW - -// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. -func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { - reqSize := uint32(256) - for { - var dataType uint32 - buf := make([]byte, reqSize) - err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return - } - return getRegistryValue(buf[:reqSize], dataType) - } -} - -func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { - switch dataType { - case REG_SZ: - ret := UTF16ToString(bufToUTF16(buf)) - runtime.KeepAlive(buf) - return ret, nil - case REG_EXPAND_SZ: - value := UTF16ToString(bufToUTF16(buf)) - if value == "" { - return "", nil - } - p, err := syscall.UTF16PtrFromString(value) - if err != nil { - return "", err - } - ret := make([]uint16, 100) - for { - n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) - if err != nil { - return "", err - } - if n <= uint32(len(ret)) { - return UTF16ToString(ret[:n]), nil - } - ret = make([]uint16, n) - } - case REG_BINARY: - return buf, nil - case REG_DWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint32(buf), nil - case REG_DWORD_BIG_ENDIAN: - return binary.BigEndian.Uint32(buf), nil - case REG_MULTI_SZ: - bufW := bufToUTF16(buf) - a := []string{} - for i := 0; i < len(bufW); { - j := i + wcslen(bufW[i:]) - if i < j { - a = append(a, UTF16ToString(bufW[i:j])) - } - i = j + 1 - } - runtime.KeepAlive(buf) - return a, nil - case REG_QWORD_LITTLE_ENDIAN: - return binary.LittleEndian.Uint64(buf), nil - default: - return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) - } -} - -// bufToUTF16 function reinterprets []byte buffer as []uint16 -func bufToUTF16(buf []byte) []uint16 { - sl := struct { - addr *uint16 - len int - cap int - }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} - return *(*[]uint16)(unsafe.Pointer(&sl)) -} - -// utf16ToBuf function reinterprets []uint16 as []byte -func utf16ToBuf(buf []uint16) []byte { - sl := struct { - addr *byte - len int - cap int - }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} - return *(*[]byte)(unsafe.Pointer(&sl)) -} - -func wcslen(str []uint16) int { - for i := 0; i < len(str); i++ { - if str[i] == 0 { - return i - } - } - return len(str) -} - -// DeviceRegistryProperty method retrieves a specified Plug and Play device property. -func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { - return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) -} - -//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW - -// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) -} - -// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { - return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) -} - -// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. -func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { - str16, err := UTF16FromString(str) - if err != nil { - return err - } - err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) - runtime.KeepAlive(str16) - return err -} - -//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW - -// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. -func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { - params := &DevInstallParams{} - params.size = uint32(unsafe.Sizeof(*params)) - - return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) -} - -// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { - return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) -} - -//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW - -// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. -func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { - reqSize := uint32(1024) - for { - buf := make([]uint16, reqSize) - err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return "", err - } - return UTF16ToString(buf), nil - } -} - -// DeviceInstanceID method retrieves the instance ID of the device. -func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { - return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) -} - -// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. -//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW - -// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { - return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) -} - -//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW - -// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { - return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) -} - -// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. -//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW - -// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. -func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { - return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) -} - -//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW - -// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. -func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { - var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return - } - } - - err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) - if err != nil { - return - } - - className = UTF16ToString(classNameUTF16[:]) - return -} - -//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW - -// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. -func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { - classNameUTF16, err := UTF16PtrFromString(className) - if err != nil { - return nil, err - } - - var machineNameUTF16 *uint16 - if machineName != "" { - machineNameUTF16, err = UTF16PtrFromString(machineName) - if err != nil { - return nil, err - } - } - - reqSize := uint32(4) - for { - buf := make([]GUID, reqSize) - err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) - if err == ERROR_INSUFFICIENT_BUFFER { - continue - } - if err != nil { - return nil, err - } - return buf[:reqSize], nil - } -} - -//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice - -// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. -func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { - data := &DevInfoData{} - data.size = uint32(unsafe.Sizeof(*data)) - - return data, setupDiGetSelectedDevice(deviceInfoSet, data) -} - -// SelectedDevice method retrieves the selected device information element in a device information set. -func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { - return SetupDiGetSelectedDevice(deviceInfoSet) -} - -// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice - -// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. -func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { - return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) -} - -//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW - -// SetupUninstallOEMInf uninstalls the specified driver. -func SetupUninstallOEMInf(infFileName string, flags SUOI) error { - infFileName16, err := UTF16PtrFromString(infFileName) - if err != nil { - return err - } - return setupUninstallOEMInf(infFileName16, flags, 0) -} - -//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err - -//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW -//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW - -func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { - deviceID16, err := UTF16PtrFromString(deviceID) - if err != nil { - return nil, err - } - var buf []uint16 - var buflen uint32 - for { - if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { - return nil, ret - } - buf = make([]uint16, buflen) - if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { - break - } else if ret != CR_BUFFER_SMALL { - return nil, ret - } - } - var interfaces []string - for i := 0; i < len(buf); { - j := i + wcslen(buf[i:]) - if i < j { - interfaces = append(interfaces, UTF16ToString(buf[i:j])) - } - i = j + 1 - } - if interfaces == nil { - return nil, ERROR_NO_SUCH_DEVICE_INTERFACE - } - return interfaces, nil -} - -//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status - -func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { - ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) - if ret == CR_SUCCESS { - return nil - } - return ret -} diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go deleted file mode 100644 index 6a4f9ce..0000000 --- a/vendor/golang.org/x/sys/windows/str.go +++ /dev/null @@ -1,22 +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. - -//go:build windows - -package windows - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + itoa(-val) - } - var buf [32]byte // big enough for int64 - i := len(buf) - 1 - for val >= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go deleted file mode 100644 index e85ed6b..0000000 --- a/vendor/golang.org/x/sys/windows/syscall.go +++ /dev/null @@ -1,104 +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. - -//go:build windows - -// Package windows contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display the OS-specific documentation for the current -// system. If you want godoc to display syscall documentation for another -// system, set $GOOS and $GOARCH to the desired system. For example, if -// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS -// to freebsd and $GOARCH to arm. -// -// The primary use of this package is inside other packages that provide a more -// portable interface to the system, such as "os", "time" and "net". Use -// those packages rather than this one if you can. -// -// For details of the functions and data types in this package consult -// the manuals for the appropriate operating system. -// -// These calls return err == nil to indicate success; otherwise -// err represents an operating system error describing the failure and -// holds a value of type syscall.Errno. -package windows // import "golang.org/x/sys/windows" - -import ( - "bytes" - "strings" - "syscall" - "unsafe" -) - -// ByteSliceFromString returns a NUL-terminated slice of bytes -// containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, syscall.EINVAL - } - a := make([]byte, len(s)+1) - copy(a, s) - return a, nil -} - -// BytePtrFromString returns a pointer to a NUL-terminated array of -// bytes containing the text of s. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func BytePtrFromString(s string) (*byte, error) { - a, err := ByteSliceFromString(s) - if err != nil { - return nil, err - } - 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) - } - - return string(unsafe.Slice(p, n)) -} - -// Single-word zero for use when we need a valid pointer to 0 bytes. -// See mksyscall.pl. -var _zero uintptr - -func (ts *Timespec) Unix() (sec int64, nsec int64) { - return int64(ts.Sec), int64(ts.Nsec) -} - -func (tv *Timeval) Unix() (sec int64, nsec int64) { - return int64(tv.Sec), int64(tv.Usec) * 1000 -} - -func (ts *Timespec) Nano() int64 { - return int64(ts.Sec)*1e9 + int64(ts.Nsec) -} - -func (tv *Timeval) Nano() int64 { - return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 -} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go deleted file mode 100644 index 640f6b1..0000000 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ /dev/null @@ -1,1934 +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. - -// Windows system calls. - -package windows - -import ( - errorspkg "errors" - "fmt" - "runtime" - "sync" - "syscall" - "time" - "unicode/utf16" - "unsafe" -) - -type ( - Handle uintptr - HWND uintptr -) - -const ( - InvalidHandle = ^Handle(0) - InvalidHWND = ^HWND(0) - - // Flags for DefineDosDevice. - DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 - DDD_NO_BROADCAST_SYSTEM = 0x00000008 - DDD_RAW_TARGET_PATH = 0x00000001 - DDD_REMOVE_DEFINITION = 0x00000002 - - // Return values for GetDriveType. - DRIVE_UNKNOWN = 0 - DRIVE_NO_ROOT_DIR = 1 - DRIVE_REMOVABLE = 2 - DRIVE_FIXED = 3 - DRIVE_REMOTE = 4 - DRIVE_CDROM = 5 - DRIVE_RAMDISK = 6 - - // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. - FILE_CASE_SENSITIVE_SEARCH = 0x00000001 - FILE_CASE_PRESERVED_NAMES = 0x00000002 - FILE_FILE_COMPRESSION = 0x00000010 - FILE_DAX_VOLUME = 0x20000000 - FILE_NAMED_STREAMS = 0x00040000 - FILE_PERSISTENT_ACLS = 0x00000008 - FILE_READ_ONLY_VOLUME = 0x00080000 - FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 - FILE_SUPPORTS_ENCRYPTION = 0x00020000 - FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 - FILE_SUPPORTS_HARD_LINKS = 0x00400000 - FILE_SUPPORTS_OBJECT_IDS = 0x00010000 - FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 - FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 - FILE_SUPPORTS_SPARSE_FILES = 0x00000040 - FILE_SUPPORTS_TRANSACTIONS = 0x00200000 - FILE_SUPPORTS_USN_JOURNAL = 0x02000000 - 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. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16(s string) []uint16 { - a, err := UTF16FromString(s) - if err != nil { - panic("windows: string with NUL passed to StringToUTF16") - } - return a -} - -// UTF16FromString returns the UTF-16 encoding of the UTF-8 string -// s, with a terminating NUL added. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func UTF16FromString(s string) ([]uint16, error) { - return syscall.UTF16FromString(s) -} - -// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL and any bytes after the NUL removed. -func UTF16ToString(s []uint16) string { - return syscall.UTF16ToString(s) -} - -// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } - -// UTF16PtrFromString returns pointer to the UTF-16 encoding of -// the UTF-8 string s, with a terminating NUL added. If s -// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). -func UTF16PtrFromString(s string) (*uint16, error) { - a, err := UTF16FromString(s) - if err != nil { - return nil, err - } - 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)) - } - return UTF16ToString(unsafe.Slice(p, n)) -} - -func Getpagesize() int { return 4096 } - -// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallback(fn interface{}) uintptr { - return syscall.NewCallback(fn) -} - -// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. -// This is useful when interoperating with Windows code requiring callbacks. -// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -func NewCallbackCDecl(fn interface{}) uintptr { - return syscall.NewCallbackCDecl(fn) -} - -// windows api calls - -//sys GetLastError() (lasterr error) -//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW -//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 AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory -//sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory -//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 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 DisconnectNamedPipe(pipe Handle) (err error) -//sys GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) -//sys GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (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) = ReadFile -//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile -//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) -//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] -//sys CloseHandle(handle Handle) (err error) -//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] -//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) -//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW -//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 -//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW -//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 SetFileValidData(handle Handle, validDataLength int64) (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 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 CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW -//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 LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW -//sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout -//sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout -//sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx -//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) = GetStartupInfoW -//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] -//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects -//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW -//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) -//sys GetFileType(filehandle Handle) (n uint32, err error) -//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW -//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext -//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom -//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW -//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 ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW -//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 GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) -//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 -//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW -//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW -//sys commandLineToArgv(cmd *uint16, argc *int32) (argv **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 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) -//sys VirtualLock(addr uintptr, length uintptr) (err error) -//sys VirtualUnlock(addr uintptr, length uintptr) (err error) -//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc -//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree -//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect -//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx -//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery -//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx -//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory -//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory -//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) = 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 CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//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 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 ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole -//sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole -//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 GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP -//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP -//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP -//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP -//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW -//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW -//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole -//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot -//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW -//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW -//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) [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 ClearCommBreak(handle Handle) (err error) -//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) -//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) -//sys GetCommState(handle Handle, lpDCB *DCB) (err error) -//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) -//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys PurgeComm(handle Handle, dwFlags uint32) (err error) -//sys SetCommBreak(handle Handle) (err error) -//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) -//sys SetCommState(handle Handle, lpDCB *DCB) (err error) -//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) -//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) -//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) -//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) -//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) -//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows -//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows -//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW -//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow -//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow -//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow -//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode -//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible -//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo -//sys GetLargePageMinimum() (size uintptr) - -// Volume Management Functions -//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW -//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW -//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW -//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW -//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW -//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 -//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW -//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW -//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW -//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW -//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW -//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 - -// Version APIs -//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW -//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW -//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW - -// Process Status API (PSAPI) -//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses -//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules -//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx -//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation -//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW -//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW -//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx - -// 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 NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile -//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 -//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation -//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation -//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable -//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable - -// Desktop Window Manager API (Dwmapi) -//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute -//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute - -// Windows Multimedia API -//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod -//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod - -// 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 { - err = errnoErr(e1) - } - return -} - -func Exit(code int) { ExitProcess(uint32(code)) } - -func makeInheritSa() *SecurityAttributes { - var sa SecurityAttributes - sa.Length = uint32(unsafe.Sizeof(sa)) - sa.InheritHandle = 1 - return &sa -} - -func Open(path string, mode int, perm uint32) (fd Handle, err error) { - if len(path) == 0 { - return InvalidHandle, ERROR_FILE_NOT_FOUND - } - pathp, err := UTF16PtrFromString(path) - if err != nil { - return InvalidHandle, err - } - var access uint32 - switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { - case O_RDONLY: - access = GENERIC_READ - case O_WRONLY: - access = GENERIC_WRITE - case O_RDWR: - access = GENERIC_READ | GENERIC_WRITE - } - if mode&O_CREAT != 0 { - access |= GENERIC_WRITE - } - if mode&O_APPEND != 0 { - access &^= GENERIC_WRITE - access |= FILE_APPEND_DATA - } - sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) - var sa *SecurityAttributes - if mode&O_CLOEXEC == 0 { - sa = makeInheritSa() - } - var createmode uint32 - switch { - case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): - createmode = CREATE_NEW - case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): - createmode = CREATE_ALWAYS - case mode&O_CREAT == O_CREAT: - createmode = OPEN_ALWAYS - case mode&O_TRUNC == O_TRUNC: - createmode = TRUNCATE_EXISTING - default: - createmode = OPEN_EXISTING - } - 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 -} - -func Read(fd Handle, p []byte) (n int, err error) { - var done uint32 - e := ReadFile(fd, p, &done, nil) - if e != nil { - if e == ERROR_BROKEN_PIPE { - // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin - return 0, nil - } - return 0, e - } - return int(done), nil -} - -func Write(fd Handle, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var done uint32 - e := WriteFile(fd, p, &done, nil) - if e != nil { - return 0, e - } - return int(done), nil -} - -func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - err := readFile(fd, p, done, overlapped) - if raceenabled { - if *done > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) - } - raceAcquire(unsafe.Pointer(&ioSync)) - } - return err -} - -func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - err := writeFile(fd, p, done, overlapped) - if raceenabled && *done > 0 { - raceReadRange(unsafe.Pointer(&p[0]), int(*done)) - } - return err -} - -var ioSync int64 - -func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { - var w uint32 - switch whence { - case 0: - w = FILE_BEGIN - case 1: - w = FILE_CURRENT - case 2: - w = FILE_END - } - hi := int32(offset >> 32) - lo := int32(offset) - // use GetFileType to check pipe, pipe can't do seek - ft, _ := GetFileType(fd) - if ft == FILE_TYPE_PIPE { - return 0, syscall.EPIPE - } - rlo, e := SetFilePointer(fd, lo, &hi, w) - if e != nil { - return 0, e - } - return int64(hi)<<32 + int64(rlo), nil -} - -func Close(fd Handle) (err error) { - return CloseHandle(fd) -} - -var ( - Stdin = getStdHandle(STD_INPUT_HANDLE) - Stdout = getStdHandle(STD_OUTPUT_HANDLE) - Stderr = getStdHandle(STD_ERROR_HANDLE) -) - -func getStdHandle(stdhandle uint32) (fd Handle) { - r, _ := GetStdHandle(stdhandle) - return r -} - -const ImplementsGetwd = true - -func Getwd() (wd string, err error) { - b := make([]uint16, 300) - n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func Chdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return SetCurrentDirectory(pathp) -} - -func Mkdir(path string, mode uint32) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return CreateDirectory(pathp, nil) -} - -func Rmdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return RemoveDirectory(pathp) -} - -func Unlink(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return DeleteFile(pathp) -} - -func Rename(oldpath, newpath string) (err error) { - from, err := UTF16PtrFromString(oldpath) - if err != nil { - return err - } - to, err := UTF16PtrFromString(newpath) - if err != nil { - return err - } - return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) -} - -func ComputerName() (name string, err error) { - var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 - b := make([]uint16, n) - e := GetComputerName(&b[0], &n) - if e != nil { - return "", e - } - 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) { - type _FILE_END_OF_FILE_INFO struct { - EndOfFile int64 - } - var info _FILE_END_OF_FILE_INFO - info.EndOfFile = length - return SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info))) -} - -func Gettimeofday(tv *Timeval) (err error) { - var ft Filetime - GetSystemTimeAsFileTime(&ft) - *tv = NsecToTimeval(ft.Nanoseconds()) - return nil -} - -func Pipe(p []Handle) (err error) { - if len(p) != 2 { - return syscall.EINVAL - } - var r, w Handle - e := CreatePipe(&r, &w, makeInheritSa(), 0) - if e != nil { - return e - } - p[0] = r - p[1] = w - return nil -} - -func Utimes(path string, tv []Timeval) (err error) { - if len(tv) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(tv[0].Nanoseconds()) - w := NsecToFiletime(tv[1].Nanoseconds()) - return SetFileTime(h, nil, &a, &w) -} - -func UtimesNano(path string, ts []Timespec) (err error) { - if len(ts) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer CloseHandle(h) - a := NsecToFiletime(TimespecToNsec(ts[0])) - w := NsecToFiletime(TimespecToNsec(ts[1])) - return SetFileTime(h, nil, &a, &w) -} - -func Fsync(fd Handle) (err error) { - return FlushFileBuffers(fd) -} - -func Chmod(path string, mode uint32) (err error) { - p, e := UTF16PtrFromString(path) - if e != nil { - return e - } - attrs, e := GetFileAttributes(p) - if e != nil { - return e - } - if mode&S_IWRITE != 0 { - attrs &^= FILE_ATTRIBUTE_READONLY - } else { - attrs |= FILE_ATTRIBUTE_READONLY - } - return SetFileAttributes(p, attrs) -} - -func LoadGetSystemTimePreciseAsFileTime() error { - return procGetSystemTimePreciseAsFileTime.Find() -} - -func LoadCancelIoEx() error { - return procCancelIoEx.Find() -} - -func LoadSetFileCompletionNotificationModes() error { - return procSetFileCompletionNotificationModes.Find() -} - -func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { - // Every other win32 array API takes arguments as "pointer, count", except for this function. So we - // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore - // trivially stub this ourselves. - - var handlePtr *Handle - if len(handles) > 0 { - handlePtr = &handles[0] - } - return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) -} - -// net api calls - -const socket_error = uintptr(^uint32(0)) - -//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup -//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 WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW -//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW -//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd -//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 -//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect -//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname -//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername -//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen -//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown -//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket -//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx -//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs -//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv -//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 WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW -//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname -//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname -//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs -//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname -//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W -//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree -//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W -//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW -//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW -//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry -//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 -//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx -//sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex -//sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry -//sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange -//sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange -//sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -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 RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [100]int8 -} - -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs -} - -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_INET - p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) - p[0] = byte(sa.Port >> 8) - p[1] = byte(sa.Port) - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.EINVAL - } - 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 - sa.raw.Addr = sa.Addr - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -type RawSockaddrUnix struct { - Family uint16 - Path [UNIX_PATH_MAX]int8 -} - -type SockaddrUnix struct { - Name string - raw RawSockaddrUnix -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { - name := sa.Name - n := len(name) - if n > len(sa.raw.Path) { - return nil, 0, syscall.EINVAL - } - if n == len(sa.raw.Path) && name[0] != '@' { - return nil, 0, syscall.EINVAL - } - sa.raw.Family = AF_UNIX - for i := 0; i < n; i++ { - sa.raw.Path[i] = int8(name[i]) - } - // length is family (uint16), name, NUL. - sl := int32(2) - if n > 0 { - sl += int32(n) + 1 - } - if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { - // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- - } - - return unsafe.Pointer(&sa.raw), sl, nil -} - -type RawSockaddrBth struct { - AddressFamily [2]byte - BtAddr [8]byte - ServiceClassId [16]byte - Port [4]byte -} - -type SockaddrBth struct { - BtAddr uint64 - ServiceClassId GUID - Port uint32 - - raw RawSockaddrBth -} - -func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { - family := AF_BTH - sa.raw = RawSockaddrBth{ - AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), - BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), - Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), - ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), - } - return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil -} - -func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) - sa := new(SockaddrUnix) - if 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. - // 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 < len(pp.Path) && pp.Path[n] != 0 { - n++ - } - sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) - 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]) - sa.Addr = pp.Addr - 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 - sa.Addr = pp.Addr - return sa, nil - } - return nil, syscall.EAFNOSUPPORT -} - -func Socket(domain, typ, proto int) (fd Handle, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return InvalidHandle, syscall.EAFNOSUPPORT - } - return socket(int32(domain), int32(typ), int32(proto)) -} - -func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { - v := int32(value) - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) -} - -func Bind(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { - ptr, _, err := sa.sockaddr() - if err != nil { - return err - } - return getBestInterfaceEx(ptr, pdwBestIfIndex) -} - -func Getsockname(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getsockname(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Getpeername(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getpeername(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Listen(s Handle, n int) (err error) { - return listen(s, int32(n)) -} - -func Shutdown(fd Handle, how int) (err error) { - return shutdown(fd, int32(how)) -} - -func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - var rsa unsafe.Pointer - var l int32 - if to != nil { - rsa, l, err = to.sockaddr() - if err != nil { - return err - } - } - return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) -} - -func LoadGetAddrInfo() error { - return procGetAddrInfoW.Find() -} - -var connectExFunc struct { - once sync.Once - addr uintptr - err error -} - -func LoadConnectEx() error { - connectExFunc.once.Do(func() { - var s Handle - s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) - if connectExFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - connectExFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), - uint32(unsafe.Sizeof(WSAID_CONNECTEX)), - (*byte)(unsafe.Pointer(&connectExFunc.addr)), - uint32(unsafe.Sizeof(connectExFunc.addr)), - &n, nil, 0) - }) - return connectExFunc.err -} - -func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { - err := LoadConnectEx() - if err != nil { - return errorspkg.New("failed to find ConnectEx: " + err.Error()) - } - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) -} - -var sendRecvMsgFunc struct { - once sync.Once - sendAddr uintptr - recvAddr uintptr - err error -} - -func loadWSASendRecvMsg() error { - sendRecvMsgFunc.once.Do(func() { - var s Handle - s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) - if sendRecvMsgFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), - uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), - &n, nil, 0) - if sendRecvMsgFunc.err != nil { - return - } - sendRecvMsgFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), - uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), - (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), - uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), - &n, nil, 0) - }) - return sendRecvMsgFunc.err -} - -func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - 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 { - err = errnoErr(e1) - } - return err -} - -func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { - err := loadWSASendRecvMsg() - if err != nil { - return err - } - 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 { - err = errnoErr(e1) - } - return err -} - -// Invented structures to support what package os expects. -type Rusage struct { - CreationTime Filetime - ExitTime Filetime - KernelTime Filetime - UserTime Filetime -} - -type WaitStatus struct { - ExitCode uint32 -} - -func (w WaitStatus) Exited() bool { return true } - -func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } - -func (w WaitStatus) Signal() Signal { return -1 } - -func (w WaitStatus) CoreDump() bool { return false } - -func (w WaitStatus) Stopped() bool { return false } - -func (w WaitStatus) Continued() bool { return false } - -func (w WaitStatus) StopSignal() Signal { return -1 } - -func (w WaitStatus) Signaled() bool { return false } - -func (w WaitStatus) TrapCause() int { return -1 } - -// Timespec is an invented structure on Windows, but here for -// consistency with the corresponding package for other operating systems. -type Timespec struct { - Sec int64 - Nsec int64 -} - -func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } - -func NsecToTimespec(nsec int64) (ts Timespec) { - ts.Sec = nsec / 1e9 - ts.Nsec = nsec % 1e9 - return -} - -// 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) { - 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 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. -// sysLinger is the real system call structure. - -// BUG(brainman): The definition of Linger is not appropriate for direct use -// with Setsockopt and Getsockopt. -// Use SetsockoptLinger instead. - -type Linger struct { - Onoff int32 - Linger int32 -} - -type sysLinger struct { - Onoff uint16 - Linger uint16 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -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)} - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) -} - -func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) -} - -func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) -} - -func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { - return syscall.EWINDOWS -} - -func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { - // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses - // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. - var p *uint32 - if len(processIds) > 0 { - p = &processIds[0] - } - size := uint32(len(processIds) * 4) - return enumProcesses(p, size, bytesReturned) -} - -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: - // the two paths are each one uint16 short. Use the correct struct, - // a win32finddata1, and then copy the results out. - // There is no loss of expressivity here, because the final - // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. - // For Go 1.1, we might avoid the allocation of win32finddata1 here - // by adding a final Bug [2]uint16 field to the struct and then - // adjusting the fields in the result directly. - var data1 win32finddata1 - handle, err = findFirstFile1(name, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func FindNextFile(handle Handle, data *Win32finddata) (err error) { - var data1 win32finddata1 - err = findNextFile1(handle, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func getProcessEntry(pid int) (*ProcessEntry32, error) { - snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) - if err != nil { - return nil, err - } - defer CloseHandle(snapshot) - var procEntry ProcessEntry32 - procEntry.Size = uint32(unsafe.Sizeof(procEntry)) - if err = Process32First(snapshot, &procEntry); err != nil { - return nil, err - } - for { - if procEntry.ProcessID == uint32(pid) { - return &procEntry, nil - } - err = Process32Next(snapshot, &procEntry) - if err != nil { - return nil, err - } - } -} - -func Getppid() (ppid int) { - pe, err := getProcessEntry(Getpid()) - if err != nil { - return -1 - } - return int(pe.ParentProcessID) -} - -// TODO(brainman): fix all needed for os -func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } -func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } -func Symlink(path, link string) (err error) { return syscall.EWINDOWS } - -func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } -func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } - -func Getuid() (uid int) { return -1 } -func Geteuid() (euid int) { return -1 } -func Getgid() (gid int) { return -1 } -func Getegid() (egid int) { return -1 } -func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } - -type Signal int - -func (s Signal) Signal() {} - -func (s Signal) String() string { - if 0 <= s && int(s) < len(signals) { - str := signals[s] - if str != "" { - return str - } - } - return "signal " + itoa(int(s)) -} - -func LoadCreateSymbolicLink() error { - return procCreateSymbolicLinkW.Find() -} - -// Readlink returns the destination of the named symbolic link. -func Readlink(path string, buf []byte) (n int, err error) { - fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, - FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) - if err != nil { - return -1, err - } - defer CloseHandle(fd) - - rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) - var bytesReturned uint32 - err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) - if err != nil { - return -1, err - } - - rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) - var s string - switch rdb.ReparseTag { - case IO_REPARSE_TAG_SYMLINK: - data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - case IO_REPARSE_TAG_MOUNT_POINT: - data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - default: - // the path is not a symlink or junction but another type of reparse - // point - return -1, syscall.ENOENT - } - n = copy(buf, []byte(s)) - - 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 GetStartupInfo(startupInfo *StartupInfo) error { - getStartupInfo(startupInfo) - return nil -} - -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) { - s16, err := UTF16FromString(s) - if err != nil { - return nil, err - } - n := uint16(len(s16) * 2) - return &NTUnicodeString{ - Length: n - 2, // subtract 2 bytes for the NULL terminator - MaximumLength: n, - Buffer: &s16[0], - }, nil -} - -// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. -func (s *NTUnicodeString) Slice() []uint16 { - // Note: this rounds the length down, if it happens - // to (incorrectly) be odd. Probably safer than rounding up. - return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2] -} - -func (s *NTUnicodeString) String() string { - 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 { - slice := unsafe.Slice(s.Buffer, s.MaximumLength) - return slice[:s.Length] -} - -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 - } - data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size) - return -} - -// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. -type PSAPI_WORKING_SET_EX_BLOCK uint64 - -// Valid returns the validity of this page. -// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. -func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { - return (b & 1) == 1 -} - -// ShareCount is the number of processes that share this page. The maximum value of this member is 7. -func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { - return b.intField(1, 3) -} - -// Win32Protection is the memory protection attributes of the page. For a list of values, see -// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants -func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { - return b.intField(4, 11) -} - -// Shared returns the shared status of this page. -// If this bit is 1, the page can be shared. -func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { - return (b & (1 << 15)) == 1 -} - -// Node is the NUMA node. The maximum value of this member is 63. -func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { - return b.intField(16, 6) -} - -// Locked returns the locked status of this page. -// If this bit is 1, the virtual page is locked in physical memory. -func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { - return (b & (1 << 22)) == 1 -} - -// LargePage returns the large page status of this page. -// If this bit is 1, the page is a large page. -func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { - return (b & (1 << 23)) == 1 -} - -// Bad returns the bad status of this page. -// If this bit is 1, the page is has been reported as bad. -func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { - return (b & (1 << 31)) == 1 -} - -// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. -func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { - var mask PSAPI_WORKING_SET_EX_BLOCK - for pos := start; pos < start+length; pos++ { - mask |= (1 << pos) - } - - masked := b & mask - return uint64(masked >> start) -} - -// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. -type PSAPI_WORKING_SET_EX_INFORMATION struct { - // The virtual address. - VirtualAddress Pointer - // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. - VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK -} - -// CreatePseudoConsole creates a windows pseudo console. -func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error { - // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only - // accept arguments that can be casted to uintptr, and Coord can't. - return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole) -} - -// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. -func ResizePseudoConsole(pconsole Handle, size Coord) error { - // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only - // accept arguments that can be casted to uintptr, and Coord can't. - return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) -} - -// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. -const ( - CBR_110 = 110 - CBR_300 = 300 - CBR_600 = 600 - CBR_1200 = 1200 - CBR_2400 = 2400 - CBR_4800 = 4800 - CBR_9600 = 9600 - CBR_14400 = 14400 - CBR_19200 = 19200 - CBR_38400 = 38400 - CBR_57600 = 57600 - CBR_115200 = 115200 - CBR_128000 = 128000 - CBR_256000 = 256000 - - DTR_CONTROL_DISABLE = 0x00000000 - DTR_CONTROL_ENABLE = 0x00000010 - DTR_CONTROL_HANDSHAKE = 0x00000020 - - RTS_CONTROL_DISABLE = 0x00000000 - RTS_CONTROL_ENABLE = 0x00001000 - RTS_CONTROL_HANDSHAKE = 0x00002000 - RTS_CONTROL_TOGGLE = 0x00003000 - - NOPARITY = 0 - ODDPARITY = 1 - EVENPARITY = 2 - MARKPARITY = 3 - SPACEPARITY = 4 - - ONESTOPBIT = 0 - ONE5STOPBITS = 1 - TWOSTOPBITS = 2 -) - -// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. -const ( - SETXOFF = 1 - SETXON = 2 - SETRTS = 3 - CLRRTS = 4 - SETDTR = 5 - CLRDTR = 6 - SETBREAK = 8 - CLRBREAK = 9 -) - -// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. -const ( - PURGE_TXABORT = 0x0001 - PURGE_RXABORT = 0x0002 - PURGE_TXCLEAR = 0x0004 - PURGE_RXCLEAR = 0x0008 -) - -// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. -const ( - EV_RXCHAR = 0x0001 - EV_RXFLAG = 0x0002 - EV_TXEMPTY = 0x0004 - EV_CTS = 0x0008 - EV_DSR = 0x0010 - EV_RLSD = 0x0020 - EV_BREAK = 0x0040 - EV_ERR = 0x0080 - EV_RING = 0x0100 -) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go deleted file mode 100644 index 958bcf4..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ /dev/null @@ -1,3842 +0,0 @@ -// 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 - -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. - O_RDONLY = 0x00000 - O_WRONLY = 0x00001 - O_RDWR = 0x00002 - O_CREAT = 0x00040 - O_EXCL = 0x00080 - O_NOCTTY = 0x00100 - O_TRUNC = 0x00200 - O_NONBLOCK = 0x00800 - O_APPEND = 0x00400 - O_SYNC = 0x01000 - O_ASYNC = 0x02000 - O_CLOEXEC = 0x80000 -) - -const ( - // More invented values for signals - SIGHUP = Signal(0x1) - SIGINT = Signal(0x2) - SIGQUIT = Signal(0x3) - SIGILL = Signal(0x4) - SIGTRAP = Signal(0x5) - SIGABRT = Signal(0x6) - SIGBUS = Signal(0x7) - SIGFPE = Signal(0x8) - SIGKILL = Signal(0x9) - SIGSEGV = Signal(0xb) - SIGPIPE = Signal(0xd) - SIGALRM = Signal(0xe) - SIGTERM = Signal(0xf) -) - -var signals = [...]string{ - 1: "hangup", - 2: "interrupt", - 3: "quit", - 4: "illegal instruction", - 5: "trace/breakpoint trap", - 6: "aborted", - 7: "bus error", - 8: "floating point exception", - 9: "killed", - 10: "user defined signal 1", - 11: "segmentation fault", - 12: "user defined signal 2", - 13: "broken pipe", - 14: "alarm clock", - 15: "terminated", -} - -const ( - FILE_READ_DATA = 0x00000001 - FILE_READ_ATTRIBUTES = 0x00000080 - FILE_READ_EA = 0x00000008 - FILE_WRITE_DATA = 0x00000002 - FILE_WRITE_ATTRIBUTES = 0x00000100 - FILE_WRITE_EA = 0x00000010 - FILE_APPEND_DATA = 0x00000004 - FILE_EXECUTE = 0x00000020 - - FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE - FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE - FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE - - FILE_LIST_DIRECTORY = 0x00000001 - FILE_TRAVERSE = 0x00000020 - - FILE_SHARE_READ = 0x00000001 - FILE_SHARE_WRITE = 0x00000002 - FILE_SHARE_DELETE = 0x00000004 - - FILE_ATTRIBUTE_READONLY = 0x00000001 - FILE_ATTRIBUTE_HIDDEN = 0x00000002 - FILE_ATTRIBUTE_SYSTEM = 0x00000004 - FILE_ATTRIBUTE_DIRECTORY = 0x00000010 - FILE_ATTRIBUTE_ARCHIVE = 0x00000020 - FILE_ATTRIBUTE_DEVICE = 0x00000040 - FILE_ATTRIBUTE_NORMAL = 0x00000080 - FILE_ATTRIBUTE_TEMPORARY = 0x00000100 - FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 - FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 - FILE_ATTRIBUTE_COMPRESSED = 0x00000800 - FILE_ATTRIBUTE_OFFLINE = 0x00001000 - FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 - FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 - FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 - FILE_ATTRIBUTE_VIRTUAL = 0x00010000 - FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 - FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 - FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 - - INVALID_FILE_ATTRIBUTES = 0xffffffff - - CREATE_NEW = 1 - CREATE_ALWAYS = 2 - OPEN_EXISTING = 3 - OPEN_ALWAYS = 4 - TRUNCATE_EXISTING = 5 - - FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 - FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 - FILE_FLAG_OPEN_NO_RECALL = 0x00100000 - FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 - FILE_FLAG_SESSION_AWARE = 0x00800000 - FILE_FLAG_POSIX_SEMANTICS = 0x01000000 - FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 - FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 - FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 - FILE_FLAG_RANDOM_ACCESS = 0x10000000 - FILE_FLAG_NO_BUFFERING = 0x20000000 - FILE_FLAG_OVERLAPPED = 0x40000000 - FILE_FLAG_WRITE_THROUGH = 0x80000000 - - HANDLE_FLAG_INHERIT = 0x00000001 - STARTF_USESTDHANDLES = 0x00000100 - STARTF_USESHOWWINDOW = 0x00000001 - DUPLICATE_CLOSE_SOURCE = 0x00000001 - DUPLICATE_SAME_ACCESS = 0x00000002 - - STD_INPUT_HANDLE = -10 & (1<<32 - 1) - STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) - STD_ERROR_HANDLE = -12 & (1<<32 - 1) - - FILE_BEGIN = 0 - FILE_CURRENT = 1 - FILE_END = 2 - - LANG_ENGLISH = 0x09 - SUBLANG_ENGLISH_US = 0x01 - - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 - FORMAT_MESSAGE_IGNORE_INSERTS = 512 - FORMAT_MESSAGE_FROM_STRING = 1024 - FORMAT_MESSAGE_FROM_HMODULE = 2048 - FORMAT_MESSAGE_FROM_SYSTEM = 4096 - FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 - FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 - - MAX_PATH = 260 - MAX_LONG_PATH = 32768 - - MAX_MODULE_NAME32 = 255 - - MAX_COMPUTERNAME_LENGTH = 15 - - MAX_DHCPV6_DUID_LENGTH = 130 - - MAX_DNS_SUFFIX_STRING_LENGTH = 256 - - TIME_ZONE_ID_UNKNOWN = 0 - TIME_ZONE_ID_STANDARD = 1 - - TIME_ZONE_ID_DAYLIGHT = 2 - IGNORE = 0 - INFINITE = 0xffffffff - - WAIT_ABANDONED = 0x00000080 - WAIT_OBJECT_0 = 0x00000000 - WAIT_FAILED = 0xFFFFFFFF - - // Access rights for process. - PROCESS_ALL_ACCESS = 0xFFFF - 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_CLOSE_EVENT = 2 - CTRL_LOGOFF_EVENT = 5 - CTRL_SHUTDOWN_EVENT = 6 - - // Windows reserves errors >= 1<<29 for application use. - APPLICATION_ERROR = 1 << 29 -) - -const ( - // Process creation flags. - CREATE_BREAKAWAY_FROM_JOB = 0x01000000 - CREATE_DEFAULT_ERROR_MODE = 0x04000000 - CREATE_NEW_CONSOLE = 0x00000010 - CREATE_NEW_PROCESS_GROUP = 0x00000200 - CREATE_NO_WINDOW = 0x08000000 - CREATE_PROTECTED_PROCESS = 0x00040000 - CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 - CREATE_SEPARATE_WOW_VDM = 0x00000800 - CREATE_SHARED_WOW_VDM = 0x00001000 - CREATE_SUSPENDED = 0x00000004 - CREATE_UNICODE_ENVIRONMENT = 0x00000400 - DEBUG_ONLY_THIS_PROCESS = 0x00000002 - DEBUG_PROCESS = 0x00000001 - DETACHED_PROCESS = 0x00000008 - EXTENDED_STARTUPINFO_PRESENT = 0x00080000 - 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 - PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016 -) - -const ( - // flags for CreateToolhelp32Snapshot - TH32CS_SNAPHEAPLIST = 0x01 - TH32CS_SNAPPROCESS = 0x02 - TH32CS_SNAPTHREAD = 0x04 - TH32CS_SNAPMODULE = 0x08 - TH32CS_SNAPMODULE32 = 0x10 - TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD - TH32CS_INHERIT = 0x80000000 -) - -const ( - // flags for EnumProcessModulesEx - LIST_MODULES_32BIT = 0x01 - LIST_MODULES_64BIT = 0x02 - LIST_MODULES_ALL = 0x03 - LIST_MODULES_DEFAULT = 0x00 -) - -const ( - // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW - FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 - FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 - FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 - FILE_NOTIFY_CHANGE_SIZE = 0x008 - FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 - FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 - FILE_NOTIFY_CHANGE_CREATION = 0x040 - FILE_NOTIFY_CHANGE_SECURITY = 0x100 -) - -const ( - // do not reorder - FILE_ACTION_ADDED = iota + 1 - FILE_ACTION_REMOVED - FILE_ACTION_MODIFIED - FILE_ACTION_RENAMED_OLD_NAME - FILE_ACTION_RENAMED_NEW_NAME -) - -const ( - // wincrypt.h - /* 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 - CRYPT_MACHINE_KEYSET = 0x00000020 - 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 - - /* msgAndCertEncodingType values for CertOpenStore function */ - X509_ASN_ENCODING = 0x00000001 - PKCS_7_ASN_ENCODING = 0x00010000 - - /* storeProvider values for CertOpenStore function */ - CERT_STORE_PROV_MSG = 1 - CERT_STORE_PROV_MEMORY = 2 - CERT_STORE_PROV_FILE = 3 - CERT_STORE_PROV_REG = 4 - CERT_STORE_PROV_PKCS7 = 5 - CERT_STORE_PROV_SERIALIZED = 6 - CERT_STORE_PROV_FILENAME_A = 7 - CERT_STORE_PROV_FILENAME_W = 8 - CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W - CERT_STORE_PROV_SYSTEM_A = 9 - CERT_STORE_PROV_SYSTEM_W = 10 - CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W - CERT_STORE_PROV_COLLECTION = 11 - CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 - CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 - CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W - CERT_STORE_PROV_PHYSICAL_W = 14 - CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W - CERT_STORE_PROV_SMART_CARD_W = 15 - CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W - CERT_STORE_PROV_LDAP_W = 16 - CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W - CERT_STORE_PROV_PKCS12 = 17 - - /* store characteristics (low WORD of flag) for CertOpenStore function */ - CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 - CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 - CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 - CERT_STORE_DELETE_FLAG = 0x00000010 - CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 - CERT_STORE_SHARE_STORE_FLAG = 0x00000040 - CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 - CERT_STORE_MANIFOLD_FLAG = 0x00000100 - CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 - CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 - CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 - CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 - CERT_STORE_CREATE_NEW_FLAG = 0x00002000 - CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 - CERT_STORE_READONLY_FLAG = 0x00008000 - - /* store locations (high WORD of flag) for CertOpenStore function */ - CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 - CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 - CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 - CERT_SYSTEM_STORE_SERVICES = 0x00050000 - CERT_SYSTEM_STORE_USERS = 0x00060000 - CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 - CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 - CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 - CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 - - /* Miscellaneous high-WORD flags for CertOpenStore function */ - CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 - CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 - CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 - CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 - CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 - CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 - CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 - CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 - CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 - CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 - CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 - - /* addDisposition values for CertAddCertificateContextToStore function */ - CERT_STORE_ADD_NEW = 1 - CERT_STORE_ADD_USE_EXISTING = 2 - CERT_STORE_ADD_REPLACE_EXISTING = 3 - CERT_STORE_ADD_ALWAYS = 4 - CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 - CERT_STORE_ADD_NEWER = 6 - CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 - - /* ErrorStatus values for CertTrustStatus struct */ - CERT_TRUST_NO_ERROR = 0x00000000 - CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 - CERT_TRUST_IS_REVOKED = 0x00000004 - CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 - CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 - CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 - CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 - CERT_TRUST_IS_CYCLIC = 0x00000080 - CERT_TRUST_INVALID_EXTENSION = 0x00000100 - CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 - CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 - CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 - CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 - CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 - CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 - CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 - CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 - CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 - CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 - CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 - CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 - CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 - CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 - CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 - CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 - - /* InfoStatus values for CertTrustStatus struct */ - CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 - CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 - CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 - CERT_TRUST_IS_SELF_SIGNED = 0x00000008 - CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 - CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 - CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 - CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 - CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 - CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 - 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<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) - CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) - CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) - CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) - CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) - CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) - CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W - CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) - CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) - CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W - CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) - CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) - CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE - CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) - CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) - CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) - CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) - CERT_FIND_CROSS_CERT_DIST_POINTS = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) - CERT_FIND_PUBKEY_MD5_HASH = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) - CERT_FIND_SUBJECT_INFO_ACCESS = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT) - CERT_FIND_HASH_STR = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT) - CERT_FIND_HAS_PRIVATE_KEY = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT) - CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1 - CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2 - CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4 - CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8 - CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10 - CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20 - CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG - CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG - CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG - CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG - CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG - CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG - - /* policyOID values for CertVerifyCertificateChainPolicy function */ - CERT_CHAIN_POLICY_BASE = 1 - CERT_CHAIN_POLICY_AUTHENTICODE = 2 - CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3 - CERT_CHAIN_POLICY_SSL = 4 - CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5 - CERT_CHAIN_POLICY_NT_AUTH = 6 - CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7 - CERT_CHAIN_POLICY_EV = 8 - CERT_CHAIN_POLICY_SSL_F12 = 9 - - /* flag for dwFindType CertFindChainInStore */ - CERT_CHAIN_FIND_BY_ISSUER = 1 - - /* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */ - CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001 - CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002 - CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004 - CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008 - CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000 - CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000 - - /* Certificate Store close flags */ - CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001 - CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002 - - /* CryptQueryObject object type */ - CERT_QUERY_OBJECT_FILE = 1 - CERT_QUERY_OBJECT_BLOB = 2 - - /* CryptQueryObject content type flags */ - CERT_QUERY_CONTENT_CERT = 1 - CERT_QUERY_CONTENT_CTL = 2 - CERT_QUERY_CONTENT_CRL = 3 - CERT_QUERY_CONTENT_SERIALIZED_STORE = 4 - CERT_QUERY_CONTENT_SERIALIZED_CERT = 5 - CERT_QUERY_CONTENT_SERIALIZED_CTL = 6 - CERT_QUERY_CONTENT_SERIALIZED_CRL = 7 - CERT_QUERY_CONTENT_PKCS7_SIGNED = 8 - CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9 - CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10 - CERT_QUERY_CONTENT_PKCS10 = 11 - CERT_QUERY_CONTENT_PFX = 12 - CERT_QUERY_CONTENT_CERT_PAIR = 13 - CERT_QUERY_CONTENT_PFX_AND_LOAD = 14 - CERT_QUERY_CONTENT_FLAG_CERT = (1 << CERT_QUERY_CONTENT_CERT) - CERT_QUERY_CONTENT_FLAG_CTL = (1 << CERT_QUERY_CONTENT_CTL) - CERT_QUERY_CONTENT_FLAG_CRL = (1 << CERT_QUERY_CONTENT_CRL) - CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) - CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) - CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) - CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) - CERT_QUERY_CONTENT_FLAG_PKCS10 = (1 << CERT_QUERY_CONTENT_PKCS10) - CERT_QUERY_CONTENT_FLAG_PFX = (1 << CERT_QUERY_CONTENT_PFX) - CERT_QUERY_CONTENT_FLAG_CERT_PAIR = (1 << CERT_QUERY_CONTENT_CERT_PAIR) - CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD) - CERT_QUERY_CONTENT_FLAG_ALL = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR) - CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED) - - /* CryptQueryObject format type flags */ - CERT_QUERY_FORMAT_BINARY = 1 - CERT_QUERY_FORMAT_BASE64_ENCODED = 2 - CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3 - CERT_QUERY_FORMAT_FLAG_BINARY = (1 << CERT_QUERY_FORMAT_BINARY) - CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED) - CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) - CERT_QUERY_FORMAT_FLAG_ALL = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED) - - /* CertGetNameString name types */ - CERT_NAME_EMAIL_TYPE = 1 - CERT_NAME_RDN_TYPE = 2 - CERT_NAME_ATTR_TYPE = 3 - CERT_NAME_SIMPLE_DISPLAY_TYPE = 4 - CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5 - CERT_NAME_DNS_TYPE = 6 - CERT_NAME_URL_TYPE = 7 - CERT_NAME_UPN_TYPE = 8 - - /* CertGetNameString flags */ - CERT_NAME_ISSUER_FLAG = 0x1 - CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x10000 - CERT_NAME_SEARCH_ALL_NAMES_FLAG = 0x2 - CERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000 - - /* AuthType values for SSLExtraCertChainPolicyPara struct */ - AUTHTYPE_CLIENT = 1 - AUTHTYPE_SERVER = 2 - - /* Checks values for SSLExtraCertChainPolicyPara struct */ - SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080 - SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 - SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200 - SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 - SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 - - /* Flags for Crypt[Un]ProtectData */ - CRYPTPROTECT_UI_FORBIDDEN = 0x1 - CRYPTPROTECT_LOCAL_MACHINE = 0x4 - CRYPTPROTECT_CRED_SYNC = 0x8 - CRYPTPROTECT_AUDIT = 0x10 - CRYPTPROTECT_NO_RECOVERY = 0x20 - CRYPTPROTECT_VERIFY_PROTECTION = 0x40 - CRYPTPROTECT_CRED_REGENERATE = 0x80 - - /* Flags for CryptProtectPromptStruct */ - CRYPTPROTECT_PROMPT_ON_UNPROTECT = 1 - CRYPTPROTECT_PROMPT_ON_PROTECT = 2 - CRYPTPROTECT_PROMPT_RESERVED = 4 - CRYPTPROTECT_PROMPT_STRONG = 8 - CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16 -) - -const ( - // flags for SetErrorMode - SEM_FAILCRITICALERRORS = 0x0001 - SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 - SEM_NOGPFAULTERRORBOX = 0x0002 - SEM_NOOPENFILEERRORBOX = 0x8000 -) - -const ( - // Priority class. - ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 - BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 - HIGH_PRIORITY_CLASS = 0x00000080 - IDLE_PRIORITY_CLASS = 0x00000040 - NORMAL_PRIORITY_CLASS = 0x00000020 - PROCESS_MODE_BACKGROUND_BEGIN = 0x00100000 - PROCESS_MODE_BACKGROUND_END = 0x00200000 - REALTIME_PRIORITY_CLASS = 0x00000100 -) - -/* wintrust.h constants for WinVerifyTrustEx */ -const ( - WTD_UI_ALL = 1 - WTD_UI_NONE = 2 - WTD_UI_NOBAD = 3 - WTD_UI_NOGOOD = 4 - - WTD_REVOKE_NONE = 0 - WTD_REVOKE_WHOLECHAIN = 1 - - WTD_CHOICE_FILE = 1 - WTD_CHOICE_CATALOG = 2 - WTD_CHOICE_BLOB = 3 - WTD_CHOICE_SIGNER = 4 - WTD_CHOICE_CERT = 5 - - WTD_STATEACTION_IGNORE = 0x00000000 - WTD_STATEACTION_VERIFY = 0x00000001 - WTD_STATEACTION_CLOSE = 0x00000002 - WTD_STATEACTION_AUTO_CACHE = 0x00000003 - WTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004 - - WTD_USE_IE4_TRUST_FLAG = 0x1 - WTD_NO_IE4_CHAIN_FLAG = 0x2 - WTD_NO_POLICY_USAGE_FLAG = 0x4 - WTD_REVOCATION_CHECK_NONE = 0x10 - WTD_REVOCATION_CHECK_END_CERT = 0x20 - WTD_REVOCATION_CHECK_CHAIN = 0x40 - WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80 - WTD_SAFER_FLAG = 0x100 - WTD_HASH_ONLY_FLAG = 0x200 - WTD_USE_DEFAULT_OSVER_CHECK = 0x400 - WTD_LIFETIME_SIGNING_FLAG = 0x800 - WTD_CACHE_ONLY_URL_RETRIEVAL = 0x1000 - WTD_DISABLE_MD2_MD4 = 0x2000 - WTD_MOTW = 0x4000 - - WTD_UICONTEXT_EXECUTE = 0 - WTD_UICONTEXT_INSTALL = 1 -) - -var ( - OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00") - OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00") - OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00") - - WINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{ - Data1: 0xaac56b, - Data2: 0xcd44, - Data3: 0x11d0, - Data4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee}, - } -) - -// Pointer represents a pointer to an arbitrary Windows type. -// -// Pointer-typed fields may point to one of many different types. It's -// up to the caller to provide a pointer to the appropriate type, cast -// to Pointer. The caller must obey the unsafe.Pointer rules while -// doing so. -type Pointer *struct{} - -// Invented values to support what package os expects. -type Timeval struct { - Sec int32 - Usec int32 -} - -func (tv *Timeval) Nanoseconds() int64 { - return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3 -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - tv.Sec = int32(nsec / 1e9) - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -type Overlapped struct { - Internal uintptr - InternalHigh uintptr - Offset uint32 - OffsetHigh uint32 - HEvent Handle -} - -type FileNotifyInformation struct { - NextEntryOffset uint32 - Action uint32 - FileNameLength uint32 - FileName uint16 -} - -type Filetime struct { - LowDateTime uint32 - HighDateTime uint32 -} - -// Nanoseconds returns Filetime ft in nanoseconds -// since Epoch (00:00:00 UTC, January 1, 1970). -func (ft *Filetime) Nanoseconds() int64 { - // 100-nanosecond intervals since January 1, 1601 - nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime) - // change starting time to the Epoch (00:00:00 UTC, January 1, 1970) - nsec -= 116444736000000000 - // convert into nanoseconds - nsec *= 100 - return nsec -} - -func NsecToFiletime(nsec int64) (ft Filetime) { - // convert into 100-nanosecond - nsec /= 100 - // change starting time to January 1, 1601 - nsec += 116444736000000000 - // split into high / low - ft.LowDateTime = uint32(nsec & 0xffffffff) - ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff) - return ft -} - -type Win32finddata struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH - 1]uint16 - AlternateFileName [13]uint16 -} - -// This is the actual system call structure. -// Win32finddata is what we committed to in Go 1. -type win32finddata1 struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH]uint16 - AlternateFileName [14]uint16 - - // The Microsoft documentation for this struct¹ describes three additional - // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields - // are empirically only present in the macOS port of the Win32 API,² and thus - // not needed for binaries built for Windows. - // - // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe - // ² https://golang.org/issue/42637#issuecomment-760715755. -} - -func copyFindData(dst *Win32finddata, src *win32finddata1) { - dst.FileAttributes = src.FileAttributes - dst.CreationTime = src.CreationTime - dst.LastAccessTime = src.LastAccessTime - dst.LastWriteTime = src.LastWriteTime - dst.FileSizeHigh = src.FileSizeHigh - dst.FileSizeLow = src.FileSizeLow - dst.Reserved0 = src.Reserved0 - dst.Reserved1 = src.Reserved1 - - // The src is 1 element bigger than dst, but it must be NUL. - copy(dst.FileName[:], src.FileName[:]) - copy(dst.AlternateFileName[:], src.AlternateFileName[:]) -} - -type ByHandleFileInformation struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - VolumeSerialNumber uint32 - FileSizeHigh uint32 - FileSizeLow uint32 - NumberOfLinks uint32 - FileIndexHigh uint32 - FileIndexLow uint32 -} - -const ( - GetFileExInfoStandard = 0 - GetFileExMaxInfoLevel = 1 -) - -type Win32FileAttributeData struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 -} - -// ShowWindow constants -const ( - // winuser.h - SW_HIDE = 0 - SW_NORMAL = 1 - SW_SHOWNORMAL = 1 - SW_SHOWMINIMIZED = 2 - SW_SHOWMAXIMIZED = 3 - SW_MAXIMIZE = 3 - SW_SHOWNOACTIVATE = 4 - SW_SHOW = 5 - SW_MINIMIZE = 6 - SW_SHOWMINNOACTIVE = 7 - SW_SHOWNA = 8 - SW_RESTORE = 9 - SW_SHOWDEFAULT = 10 - SW_FORCEMINIMIZE = 11 -) - -type StartupInfo struct { - Cb uint32 - _ *uint16 - Desktop *uint16 - Title *uint16 - X uint32 - Y uint32 - XSize uint32 - YSize uint32 - XCountChars uint32 - YCountChars uint32 - FillAttribute uint32 - Flags uint32 - ShowWindow uint16 - _ uint16 - _ *byte - StdInput Handle - StdOutput Handle - StdErr Handle -} - -type StartupInfoEx struct { - StartupInfo - ProcThreadAttributeList *ProcThreadAttributeList -} - -// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. -// -// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update -// it with ProcThreadAttributeListContainer.Update, free its memory using -// ProcThreadAttributeListContainer.Delete, and access the list itself using -// ProcThreadAttributeListContainer.List. -type ProcThreadAttributeList struct{} - -type ProcThreadAttributeListContainer struct { - data *ProcThreadAttributeList - pointers []unsafe.Pointer -} - -type ProcessInformation struct { - Process Handle - Thread Handle - ProcessId uint32 - ThreadId uint32 -} - -type ProcessEntry32 struct { - Size uint32 - Usage uint32 - ProcessID uint32 - DefaultHeapID uintptr - ModuleID uint32 - Threads uint32 - ParentProcessID uint32 - PriClassBase int32 - Flags uint32 - ExeFile [MAX_PATH]uint16 -} - -type ThreadEntry32 struct { - Size uint32 - Usage uint32 - ThreadID uint32 - OwnerProcessID uint32 - BasePri int32 - DeltaPri int32 - Flags uint32 -} - -type ModuleEntry32 struct { - Size uint32 - ModuleID uint32 - ProcessID uint32 - GlblcntUsage uint32 - ProccntUsage uint32 - ModBaseAddr uintptr - ModBaseSize uint32 - ModuleHandle Handle - Module [MAX_MODULE_NAME32 + 1]uint16 - ExePath [MAX_PATH]uint16 -} - -const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) - -type Systemtime struct { - Year uint16 - Month uint16 - DayOfWeek uint16 - Day uint16 - Hour uint16 - Minute uint16 - Second uint16 - Milliseconds uint16 -} - -type Timezoneinformation struct { - Bias int32 - StandardName [32]uint16 - StandardDate Systemtime - StandardBias int32 - DaylightName [32]uint16 - DaylightDate Systemtime - DaylightBias int32 -} - -// Socket related. - -const ( - AF_UNSPEC = 0 - AF_UNIX = 1 - AF_INET = 2 - AF_NETBIOS = 17 - AF_INET6 = 23 - AF_IRDA = 26 - AF_BTH = 32 - - SOCK_STREAM = 1 - SOCK_DGRAM = 2 - SOCK_RAW = 3 - SOCK_RDM = 4 - SOCK_SEQPACKET = 5 - - IPPROTO_IP = 0 - IPPROTO_ICMP = 1 - IPPROTO_IGMP = 2 - BTHPROTO_RFCOMM = 3 - IPPROTO_TCP = 6 - IPPROTO_UDP = 17 - IPPROTO_IPV6 = 41 - IPPROTO_ICMPV6 = 58 - IPPROTO_RM = 113 - - SOL_SOCKET = 0xffff - SO_REUSEADDR = 4 - SO_KEEPALIVE = 8 - SO_DONTROUTE = 16 - SO_BROADCAST = 32 - SO_LINGER = 128 - SO_RCVBUF = 0x1002 - SO_RCVTIMEO = 0x1006 - SO_SNDBUF = 0x1001 - SO_UPDATE_ACCEPT_CONTEXT = 0x700b - SO_UPDATE_CONNECT_CONTEXT = 0x7010 - - IOC_OUT = 0x40000000 - IOC_IN = 0x80000000 - IOC_VENDOR = 0x18000000 - IOC_INOUT = IOC_IN | IOC_OUT - IOC_WS2 = 0x08000000 - SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 - SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 - SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 - SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 - - // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 - - IP_HDRINCL = 0x2 - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_LOOP = 0xb - IP_ADD_MEMBERSHIP = 0xc - IP_DROP_MEMBERSHIP = 0xd - IP_PKTINFO = 0x13 - IP_MTU_DISCOVER = 0x47 - - IPV6_V6ONLY = 0x1b - IPV6_UNICAST_HOPS = 0x4 - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_LOOP = 0xb - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - IPV6_PKTINFO = 0x13 - IPV6_MTU_DISCOVER = 0x47 - - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_DONTROUTE = 0x4 - MSG_WAITALL = 0x8 - - MSG_TRUNC = 0x0100 - MSG_CTRUNC = 0x0200 - MSG_BCAST = 0x0400 - MSG_MCAST = 0x0800 - - SOMAXCONN = 0x7fffffff - - TCP_NODELAY = 1 - TCP_EXPEDITED_1122 = 2 - TCP_KEEPALIVE = 3 - TCP_MAXSEG = 4 - TCP_MAXRT = 5 - TCP_STDURG = 6 - TCP_NOURG = 7 - TCP_ATMARK = 8 - TCP_NOSYNRETRIES = 9 - TCP_TIMESTAMPS = 10 - TCP_OFFLOAD_PREFERENCE = 11 - TCP_CONGESTION_ALGORITHM = 12 - TCP_DELAY_FIN_ACK = 13 - TCP_MAXRTMS = 14 - TCP_FASTOPEN = 15 - TCP_KEEPCNT = 16 - TCP_KEEPIDLE = TCP_KEEPALIVE - TCP_KEEPINTVL = 17 - TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18 - TCP_ICMP_ERROR_INFO = 19 - - UDP_NOCHECKSUM = 1 - UDP_SEND_MSG_SIZE = 2 - UDP_RECV_MAX_COALESCED_SIZE = 3 - UDP_CHECKSUM_COVERAGE = 20 - - UDP_COALESCED_INFO = 3 - - SHUT_RD = 0 - SHUT_WR = 1 - SHUT_RDWR = 2 - - WSADESCRIPTION_LEN = 256 - WSASYS_STATUS_LEN = 128 -) - -// enum PMTUD_STATE from ws2ipdef.h -const ( - IP_PMTUDISC_NOT_SET = 0 - IP_PMTUDISC_DO = 1 - IP_PMTUDISC_DONT = 2 - IP_PMTUDISC_PROBE = 3 - IP_PMTUDISC_MAX = 4 -) - -type WSABuf struct { - Len uint32 - Buf *byte -} - -type WSAMsg struct { - Name *syscall.RawSockaddrAny - Namelen int32 - Buffers *WSABuf - BufferCount uint32 - Control WSABuf - Flags uint32 -} - -type WSACMSGHDR struct { - Len uintptr - Level int32 - Type int32 -} - -type IN_PKTINFO struct { - Addr [4]byte - Ifindex uint32 -} - -type IN6_PKTINFO struct { - Addr [16]byte - Ifindex uint32 -} - -// Flags for WSASocket -const ( - WSA_FLAG_OVERLAPPED = 0x01 - WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 - WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 - WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 - WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 - WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 - WSA_FLAG_NO_HANDLE_INHERIT = 0x80 - WSA_FLAG_REGISTERED_IO = 0x100 -) - -// Invented values to support what package os expects. -const ( - S_IFMT = 0x1f000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 - S_ISUID = 0x800 - S_ISGID = 0x400 - S_ISVTX = 0x200 - S_IRUSR = 0x100 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -const ( - FILE_TYPE_CHAR = 0x0002 - FILE_TYPE_DISK = 0x0001 - FILE_TYPE_PIPE = 0x0003 - FILE_TYPE_REMOTE = 0x8000 - FILE_TYPE_UNKNOWN = 0x0000 -) - -type Hostent struct { - Name *byte - Aliases **byte - AddrType uint16 - Length uint16 - AddrList **byte -} - -type Protoent struct { - Name *byte - Aliases **byte - Proto uint16 -} - -const ( - DNS_TYPE_A = 0x0001 - DNS_TYPE_NS = 0x0002 - DNS_TYPE_MD = 0x0003 - DNS_TYPE_MF = 0x0004 - DNS_TYPE_CNAME = 0x0005 - DNS_TYPE_SOA = 0x0006 - DNS_TYPE_MB = 0x0007 - DNS_TYPE_MG = 0x0008 - DNS_TYPE_MR = 0x0009 - DNS_TYPE_NULL = 0x000a - DNS_TYPE_WKS = 0x000b - DNS_TYPE_PTR = 0x000c - DNS_TYPE_HINFO = 0x000d - DNS_TYPE_MINFO = 0x000e - DNS_TYPE_MX = 0x000f - DNS_TYPE_TEXT = 0x0010 - DNS_TYPE_RP = 0x0011 - DNS_TYPE_AFSDB = 0x0012 - DNS_TYPE_X25 = 0x0013 - DNS_TYPE_ISDN = 0x0014 - DNS_TYPE_RT = 0x0015 - DNS_TYPE_NSAP = 0x0016 - DNS_TYPE_NSAPPTR = 0x0017 - DNS_TYPE_SIG = 0x0018 - DNS_TYPE_KEY = 0x0019 - DNS_TYPE_PX = 0x001a - DNS_TYPE_GPOS = 0x001b - DNS_TYPE_AAAA = 0x001c - DNS_TYPE_LOC = 0x001d - DNS_TYPE_NXT = 0x001e - DNS_TYPE_EID = 0x001f - DNS_TYPE_NIMLOC = 0x0020 - DNS_TYPE_SRV = 0x0021 - DNS_TYPE_ATMA = 0x0022 - DNS_TYPE_NAPTR = 0x0023 - DNS_TYPE_KX = 0x0024 - DNS_TYPE_CERT = 0x0025 - DNS_TYPE_A6 = 0x0026 - DNS_TYPE_DNAME = 0x0027 - DNS_TYPE_SINK = 0x0028 - DNS_TYPE_OPT = 0x0029 - DNS_TYPE_DS = 0x002B - DNS_TYPE_RRSIG = 0x002E - DNS_TYPE_NSEC = 0x002F - DNS_TYPE_DNSKEY = 0x0030 - DNS_TYPE_DHCID = 0x0031 - DNS_TYPE_UINFO = 0x0064 - DNS_TYPE_UID = 0x0065 - DNS_TYPE_GID = 0x0066 - DNS_TYPE_UNSPEC = 0x0067 - DNS_TYPE_ADDRS = 0x00f8 - DNS_TYPE_TKEY = 0x00f9 - DNS_TYPE_TSIG = 0x00fa - DNS_TYPE_IXFR = 0x00fb - DNS_TYPE_AXFR = 0x00fc - DNS_TYPE_MAILB = 0x00fd - DNS_TYPE_MAILA = 0x00fe - DNS_TYPE_ALL = 0x00ff - DNS_TYPE_ANY = 0x00ff - DNS_TYPE_WINS = 0xff01 - DNS_TYPE_WINSR = 0xff02 - DNS_TYPE_NBSTAT = 0xff01 -) - -const ( - // flags inside DNSRecord.Dw - DnsSectionQuestion = 0x0000 - DnsSectionAnswer = 0x0001 - DnsSectionAuthority = 0x0002 - DnsSectionAdditional = 0x0003 -) - -const ( - // flags of WSALookupService - LUP_DEEP = 0x0001 - LUP_CONTAINERS = 0x0002 - LUP_NOCONTAINERS = 0x0004 - LUP_NEAREST = 0x0008 - LUP_RETURN_NAME = 0x0010 - LUP_RETURN_TYPE = 0x0020 - LUP_RETURN_VERSION = 0x0040 - LUP_RETURN_COMMENT = 0x0080 - LUP_RETURN_ADDR = 0x0100 - LUP_RETURN_BLOB = 0x0200 - LUP_RETURN_ALIASES = 0x0400 - LUP_RETURN_QUERY_STRING = 0x0800 - LUP_RETURN_ALL = 0x0FF0 - LUP_RES_SERVICE = 0x8000 - - LUP_FLUSHCACHE = 0x1000 - LUP_FLUSHPREVIOUS = 0x2000 - - LUP_NON_AUTHORITATIVE = 0x4000 - LUP_SECURE = 0x8000 - LUP_RETURN_PREFERRED_NAMES = 0x10000 - LUP_DNS_ONLY = 0x20000 - - LUP_ADDRCONFIG = 0x100000 - LUP_DUAL_ADDR = 0x200000 - LUP_FILESERVER = 0x400000 - LUP_DISABLE_IDN_ENCODING = 0x00800000 - LUP_API_ANSI = 0x01000000 - - LUP_RESOLUTION_HANDLE = 0x80000000 -) - -const ( - // values of WSAQUERYSET's namespace - NS_ALL = 0 - NS_DNS = 12 - NS_NLA = 15 - NS_BTH = 16 - NS_EMAIL = 37 - NS_PNRPNAME = 38 - NS_PNRPCLOUD = 39 -) - -type DNSSRVData struct { - Target *uint16 - Priority uint16 - Weight uint16 - Port uint16 - Pad uint16 -} - -type DNSPTRData struct { - Host *uint16 -} - -type DNSMXData struct { - NameExchange *uint16 - Preference uint16 - Pad uint16 -} - -type DNSTXTData struct { - StringCount uint16 - StringArray [1]*uint16 -} - -type DNSRecord struct { - Next *DNSRecord - Name *uint16 - Type uint16 - Length uint16 - Dw uint32 - Ttl uint32 - Reserved uint32 - Data [40]byte -} - -const ( - TF_DISCONNECT = 1 - TF_REUSE_SOCKET = 2 - TF_WRITE_BEHIND = 4 - TF_USE_DEFAULT_WORKER = 0 - TF_USE_SYSTEM_THREAD = 16 - TF_USE_KERNEL_APC = 32 -) - -type TransmitFileBuffers struct { - Head uintptr - HeadLength uint32 - Tail uintptr - TailLength uint32 -} - -const ( - IFF_UP = 1 - IFF_BROADCAST = 2 - IFF_LOOPBACK = 4 - IFF_POINTTOPOINT = 8 - IFF_MULTICAST = 16 -) - -const SIO_GET_INTERFACE_LIST = 0x4004747F - -// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. -// will be fixed to change variable type as suitable. - -type SockaddrGen [24]byte - -type InterfaceInfo struct { - Flags uint32 - Address SockaddrGen - BroadcastAddress SockaddrGen - Netmask SockaddrGen -} - -type IpAddressString struct { - String [16]byte -} - -type IpMaskString IpAddressString - -type IpAddrString struct { - Next *IpAddrString - IpAddress IpAddressString - IpMask IpMaskString - Context uint32 -} - -const MAX_ADAPTER_NAME_LENGTH = 256 -const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 -const MAX_ADAPTER_ADDRESS_LENGTH = 8 - -type IpAdapterInfo struct { - Next *IpAdapterInfo - ComboIndex uint32 - AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte - Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte - AddressLength uint32 - Address [MAX_ADAPTER_ADDRESS_LENGTH]byte - Index uint32 - Type uint32 - DhcpEnabled uint32 - CurrentIpAddress *IpAddrString - IpAddressList IpAddrString - GatewayList IpAddrString - DhcpServer IpAddrString - HaveWins bool - PrimaryWinsServer IpAddrString - SecondaryWinsServer IpAddrString - LeaseObtained int64 - LeaseExpires int64 -} - -const MAXLEN_PHYSADDR = 8 -const MAX_INTERFACE_NAME_LEN = 256 -const MAXLEN_IFDESCR = 256 - -type MibIfRow struct { - Name [MAX_INTERFACE_NAME_LEN]uint16 - Index uint32 - Type uint32 - Mtu uint32 - Speed uint32 - PhysAddrLen uint32 - PhysAddr [MAXLEN_PHYSADDR]byte - AdminStatus uint32 - OperStatus uint32 - LastChange uint32 - InOctets uint32 - InUcastPkts uint32 - InNUcastPkts uint32 - InDiscards uint32 - InErrors uint32 - InUnknownProtos uint32 - OutOctets uint32 - OutUcastPkts uint32 - OutNUcastPkts uint32 - OutDiscards uint32 - OutErrors uint32 - OutQLen uint32 - DescrLen uint32 - Descr [MAXLEN_IFDESCR]byte -} - -type CertInfo struct { - Version uint32 - SerialNumber CryptIntegerBlob - SignatureAlgorithm CryptAlgorithmIdentifier - Issuer CertNameBlob - NotBefore Filetime - NotAfter Filetime - Subject CertNameBlob - SubjectPublicKeyInfo CertPublicKeyInfo - IssuerUniqueId CryptBitBlob - SubjectUniqueId CryptBitBlob - CountExtensions uint32 - Extensions *CertExtension -} - -type CertExtension struct { - ObjId *byte - Critical int32 - Value CryptObjidBlob -} - -type CryptAlgorithmIdentifier struct { - ObjId *byte - Parameters CryptObjidBlob -} - -type CertPublicKeyInfo struct { - Algorithm CryptAlgorithmIdentifier - PublicKey CryptBitBlob -} - -type DataBlob struct { - Size uint32 - Data *byte -} -type CryptIntegerBlob DataBlob -type CryptUintBlob DataBlob -type CryptObjidBlob DataBlob -type CertNameBlob DataBlob -type CertRdnValueBlob DataBlob -type CertBlob DataBlob -type CrlBlob DataBlob -type CryptDataBlob DataBlob -type CryptHashBlob DataBlob -type CryptDigestBlob DataBlob -type CryptDerBlob DataBlob -type CryptAttrBlob DataBlob - -type CryptBitBlob struct { - Size uint32 - Data *byte - UnusedBits uint32 -} - -type CertContext struct { - EncodingType uint32 - EncodedCert *byte - Length uint32 - CertInfo *CertInfo - Store Handle -} - -type CertChainContext struct { - Size uint32 - TrustStatus CertTrustStatus - ChainCount uint32 - Chains **CertSimpleChain - LowerQualityChainCount uint32 - LowerQualityChains **CertChainContext - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertTrustListInfo struct { - // Not implemented -} - -type CertSimpleChain struct { - Size uint32 - TrustStatus CertTrustStatus - NumElements uint32 - Elements **CertChainElement - TrustListInfo *CertTrustListInfo - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertChainElement struct { - Size uint32 - CertContext *CertContext - TrustStatus CertTrustStatus - RevocationInfo *CertRevocationInfo - IssuanceUsage *CertEnhKeyUsage - ApplicationUsage *CertEnhKeyUsage - ExtendedErrorInfo *uint16 -} - -type CertRevocationCrlInfo struct { - // Not implemented -} - -type CertRevocationInfo struct { - Size uint32 - RevocationResult uint32 - RevocationOid *byte - OidSpecificInfo Pointer - HasFreshnessTime uint32 - FreshnessTime uint32 - CrlInfo *CertRevocationCrlInfo -} - -type CertTrustStatus struct { - ErrorStatus uint32 - InfoStatus uint32 -} - -type CertUsageMatch struct { - Type uint32 - Usage CertEnhKeyUsage -} - -type CertEnhKeyUsage struct { - Length uint32 - UsageIdentifiers **byte -} - -type CertChainPara struct { - Size uint32 - RequestedUsage CertUsageMatch - RequstedIssuancePolicy CertUsageMatch - URLRetrievalTimeout uint32 - CheckRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 - CacheResync *Filetime -} - -type CertChainPolicyPara struct { - Size uint32 - Flags uint32 - ExtraPolicyPara Pointer -} - -type SSLExtraCertChainPolicyPara struct { - Size uint32 - AuthType uint32 - Checks uint32 - ServerName *uint16 -} - -type CertChainPolicyStatus struct { - Size uint32 - Error uint32 - ChainIndex uint32 - ElementIndex uint32 - ExtraPolicyStatus Pointer -} - -type CertPolicyInfo struct { - Identifier *byte - CountQualifiers uint32 - Qualifiers *CertPolicyQualifierInfo -} - -type CertPoliciesInfo struct { - Count uint32 - PolicyInfos *CertPolicyInfo -} - -type CertPolicyQualifierInfo struct { - // Not implemented -} - -type CertStrongSignPara struct { - Size uint32 - InfoChoice uint32 - InfoOrSerializedInfoOrOID unsafe.Pointer -} - -type CryptProtectPromptStruct struct { - Size uint32 - PromptFlags uint32 - App HWND - Prompt *uint16 -} - -type CertChainFindByIssuerPara struct { - Size uint32 - UsageIdentifier *byte - KeySpec uint32 - AcquirePrivateKeyFlags uint32 - IssuerCount uint32 - Issuer Pointer - FindCallback Pointer - FindArg Pointer - IssuerChainIndex *uint32 - IssuerElementIndex *uint32 -} - -type WinTrustData struct { - Size uint32 - PolicyCallbackData uintptr - SIPClientData uintptr - UIChoice uint32 - RevocationChecks uint32 - UnionChoice uint32 - FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer - StateAction uint32 - StateData Handle - URLReference *uint16 - ProvFlags uint32 - UIContext uint32 - SignatureSettings *WinTrustSignatureSettings -} - -type WinTrustFileInfo struct { - Size uint32 - FilePath *uint16 - File Handle - KnownSubject *GUID -} - -type WinTrustSignatureSettings struct { - Size uint32 - Index uint32 - Flags uint32 - SecondarySigs uint32 - VerifiedSigIndex uint32 - CryptoPolicy *CertStrongSignPara -} - -const ( - // do not reorder - HKEY_CLASSES_ROOT = 0x80000000 + iota - HKEY_CURRENT_USER - HKEY_LOCAL_MACHINE - HKEY_USERS - HKEY_PERFORMANCE_DATA - HKEY_CURRENT_CONFIG - HKEY_DYN_DATA - - KEY_QUERY_VALUE = 1 - KEY_SET_VALUE = 2 - KEY_CREATE_SUB_KEY = 4 - KEY_ENUMERATE_SUB_KEYS = 8 - KEY_NOTIFY = 16 - KEY_CREATE_LINK = 32 - KEY_WRITE = 0x20006 - KEY_EXECUTE = 0x20019 - KEY_READ = 0x20019 - KEY_WOW64_64KEY = 0x0100 - KEY_WOW64_32KEY = 0x0200 - KEY_ALL_ACCESS = 0xf003f -) - -const ( - // do not reorder - REG_NONE = iota - REG_SZ - REG_EXPAND_SZ - REG_BINARY - REG_DWORD_LITTLE_ENDIAN - REG_DWORD_BIG_ENDIAN - REG_LINK - REG_MULTI_SZ - REG_RESOURCE_LIST - REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST - REG_QWORD_LITTLE_ENDIAN - REG_DWORD = REG_DWORD_LITTLE_ENDIAN - REG_QWORD = REG_QWORD_LITTLE_ENDIAN -) - -const ( - EVENT_MODIFY_STATE = 0x0002 - EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - MUTANT_QUERY_STATE = 0x0001 - MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE - - SEMAPHORE_MODIFY_STATE = 0x0002 - SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 - - TIMER_QUERY_STATE = 0x0001 - TIMER_MODIFY_STATE = 0x0002 - TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE - - MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE - MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS - - CREATE_EVENT_MANUAL_RESET = 0x1 - CREATE_EVENT_INITIAL_SET = 0x2 - CREATE_MUTEX_INITIAL_OWNER = 0x1 -) - -type AddrinfoW struct { - Flags int32 - Family int32 - Socktype int32 - Protocol int32 - Addrlen uintptr - Canonname *uint16 - Addr uintptr - Next *AddrinfoW -} - -const ( - AI_PASSIVE = 1 - AI_CANONNAME = 2 - AI_NUMERICHOST = 4 -) - -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} - -var WSAID_CONNECTEX = GUID{ - 0x25a207b9, - 0xddf3, - 0x4660, - [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, -} - -var WSAID_WSASENDMSG = GUID{ - 0xa441e712, - 0x754f, - 0x43ca, - [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, -} - -var WSAID_WSARECVMSG = GUID{ - 0xf689d7c8, - 0x6f1f, - 0x436b, - [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, -} - -const ( - FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 - FILE_SKIP_SET_EVENT_ON_HANDLE = 2 -) - -const ( - WSAPROTOCOL_LEN = 255 - MAX_PROTOCOL_CHAIN = 7 - BASE_PROTOCOL = 1 - LAYERED_PROTOCOL = 0 - - XP1_CONNECTIONLESS = 0x00000001 - XP1_GUARANTEED_DELIVERY = 0x00000002 - XP1_GUARANTEED_ORDER = 0x00000004 - XP1_MESSAGE_ORIENTED = 0x00000008 - XP1_PSEUDO_STREAM = 0x00000010 - XP1_GRACEFUL_CLOSE = 0x00000020 - XP1_EXPEDITED_DATA = 0x00000040 - XP1_CONNECT_DATA = 0x00000080 - XP1_DISCONNECT_DATA = 0x00000100 - XP1_SUPPORT_BROADCAST = 0x00000200 - XP1_SUPPORT_MULTIPOINT = 0x00000400 - XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 - XP1_MULTIPOINT_DATA_PLANE = 0x00001000 - XP1_QOS_SUPPORTED = 0x00002000 - XP1_UNI_SEND = 0x00008000 - XP1_UNI_RECV = 0x00010000 - XP1_IFS_HANDLES = 0x00020000 - XP1_PARTIAL_MESSAGE = 0x00040000 - XP1_SAN_SUPPORT_SDP = 0x00080000 - - PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 - PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 - PFL_HIDDEN = 0x00000004 - PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 - PFL_NETWORKDIRECT_PROVIDER = 0x00000010 -) - -type WSAProtocolInfo struct { - ServiceFlags1 uint32 - ServiceFlags2 uint32 - ServiceFlags3 uint32 - ServiceFlags4 uint32 - ProviderFlags uint32 - ProviderId GUID - CatalogEntryId uint32 - ProtocolChain WSAProtocolChain - Version int32 - AddressFamily int32 - MaxSockAddr int32 - MinSockAddr int32 - SocketType int32 - Protocol int32 - ProtocolMaxOffset int32 - NetworkByteOrder int32 - SecurityScheme int32 - MessageSize uint32 - ProviderReserved uint32 - ProtocolName [WSAPROTOCOL_LEN + 1]uint16 -} - -type WSAProtocolChain struct { - ChainLen int32 - ChainEntries [MAX_PROTOCOL_CHAIN]uint32 -} - -type TCPKeepalive struct { - OnOff uint32 - Time uint32 - Interval uint32 -} - -type symbolicLinkReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - Flags uint32 - PathBuffer [1]uint16 -} - -type mountPointReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - PathBuffer [1]uint16 -} - -type reparseDataBuffer struct { - ReparseTag uint32 - ReparseDataLength uint16 - Reserved uint16 - - // GenericReparseBuffer - reparseBuffer byte -} - -const ( - FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 - FSCTL_DELETE_OBJECT_ID = 0x0900A0 - FSCTL_DELETE_REPARSE_POINT = 0x0900AC - FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 - FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 - FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 - FSCTL_FILE_LEVEL_TRIM = 0x098208 - FSCTL_FIND_FILES_BY_SID = 0x09008F - FSCTL_GET_COMPRESSION = 0x09003C - FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C - FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 - FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 - FSCTL_GET_OBJECT_ID = 0x09009C - FSCTL_GET_REPARSE_POINT = 0x0900A8 - FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B - FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 - FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 - FSCTL_IS_PATHNAME_VALID = 0x09002C - FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC - FSCTL_MARK_HANDLE = 0x0900FC - FSCTL_OFFLOAD_READ = 0x094264 - FSCTL_OFFLOAD_WRITE = 0x098268 - FSCTL_PIPE_PEEK = 0x11400C - FSCTL_PIPE_TRANSCEIVE = 0x11C017 - FSCTL_PIPE_WAIT = 0x110018 - FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF - FSCTL_QUERY_FAT_BPB = 0x090058 - FSCTL_QUERY_FILE_REGIONS = 0x090284 - FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C - FSCTL_QUERY_SPARING_INFO = 0x090138 - FSCTL_READ_FILE_USN_DATA = 0x0900EB - FSCTL_RECALL_FILE = 0x090117 - FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 - FSCTL_SET_COMPRESSION = 0x09C040 - FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 - FSCTL_SET_ENCRYPTION = 0x0900D7 - FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 - FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 - FSCTL_SET_OBJECT_ID = 0x090098 - FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC - FSCTL_SET_REPARSE_POINT = 0x0900A4 - FSCTL_SET_SPARSE = 0x0900C4 - FSCTL_SET_ZERO_DATA = 0x0980C8 - FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 - FSCTL_SIS_COPYFILE = 0x090100 - FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF - - MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 - IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 - IO_REPARSE_TAG_SYMLINK = 0xA000000C - SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 -) - -const ( - ComputerNameNetBIOS = 0 - ComputerNameDnsHostname = 1 - ComputerNameDnsDomain = 2 - ComputerNameDnsFullyQualified = 3 - ComputerNamePhysicalNetBIOS = 4 - ComputerNamePhysicalDnsHostname = 5 - ComputerNamePhysicalDnsDomain = 6 - ComputerNamePhysicalDnsFullyQualified = 7 - ComputerNameMax = 8 -) - -// For MessageBox() -const ( - MB_OK = 0x00000000 - MB_OKCANCEL = 0x00000001 - MB_ABORTRETRYIGNORE = 0x00000002 - MB_YESNOCANCEL = 0x00000003 - MB_YESNO = 0x00000004 - MB_RETRYCANCEL = 0x00000005 - MB_CANCELTRYCONTINUE = 0x00000006 - MB_ICONHAND = 0x00000010 - MB_ICONQUESTION = 0x00000020 - MB_ICONEXCLAMATION = 0x00000030 - MB_ICONASTERISK = 0x00000040 - MB_USERICON = 0x00000080 - MB_ICONWARNING = MB_ICONEXCLAMATION - MB_ICONERROR = MB_ICONHAND - MB_ICONINFORMATION = MB_ICONASTERISK - MB_ICONSTOP = MB_ICONHAND - MB_DEFBUTTON1 = 0x00000000 - MB_DEFBUTTON2 = 0x00000100 - MB_DEFBUTTON3 = 0x00000200 - MB_DEFBUTTON4 = 0x00000300 - MB_APPLMODAL = 0x00000000 - MB_SYSTEMMODAL = 0x00001000 - MB_TASKMODAL = 0x00002000 - MB_HELP = 0x00004000 - MB_NOFOCUS = 0x00008000 - MB_SETFOREGROUND = 0x00010000 - MB_DEFAULT_DESKTOP_ONLY = 0x00020000 - MB_TOPMOST = 0x00040000 - MB_RIGHT = 0x00080000 - MB_RTLREADING = 0x00100000 - MB_SERVICE_NOTIFICATION = 0x00200000 -) - -const ( - MOVEFILE_REPLACE_EXISTING = 0x1 - MOVEFILE_COPY_ALLOWED = 0x2 - MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 - MOVEFILE_WRITE_THROUGH = 0x8 - MOVEFILE_CREATE_HARDLINK = 0x10 - MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 -) - -// Flags for GetAdaptersAddresses, see -// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses. -const ( - GAA_FLAG_SKIP_UNICAST = 0x1 - GAA_FLAG_SKIP_ANYCAST = 0x2 - GAA_FLAG_SKIP_MULTICAST = 0x4 - GAA_FLAG_SKIP_DNS_SERVER = 0x8 - GAA_FLAG_INCLUDE_PREFIX = 0x10 - GAA_FLAG_SKIP_FRIENDLY_NAME = 0x20 - GAA_FLAG_INCLUDE_WINS_INFO = 0x40 - GAA_FLAG_INCLUDE_GATEWAYS = 0x80 - GAA_FLAG_INCLUDE_ALL_INTERFACES = 0x100 - GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = 0x200 - GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400 -) - -const ( - IF_TYPE_OTHER = 1 - IF_TYPE_ETHERNET_CSMACD = 6 - IF_TYPE_ISO88025_TOKENRING = 9 - IF_TYPE_PPP = 23 - IF_TYPE_SOFTWARE_LOOPBACK = 24 - IF_TYPE_ATM = 37 - IF_TYPE_IEEE80211 = 71 - IF_TYPE_TUNNEL = 131 - IF_TYPE_IEEE1394 = 144 -) - -// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin -const ( - IpPrefixOriginOther = 0 - IpPrefixOriginManual = 1 - IpPrefixOriginWellKnown = 2 - IpPrefixOriginDhcp = 3 - IpPrefixOriginRouterAdvertisement = 4 - IpPrefixOriginUnchanged = 1 << 4 -) - -// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin -const ( - NlsoOther = 0 - NlsoManual = 1 - NlsoWellKnown = 2 - NlsoDhcp = 3 - NlsoLinkLayerAddress = 4 - NlsoRandom = 5 - IpSuffixOriginOther = 0 - IpSuffixOriginManual = 1 - IpSuffixOriginWellKnown = 2 - IpSuffixOriginDhcp = 3 - IpSuffixOriginLinkLayerAddress = 4 - IpSuffixOriginRandom = 5 - IpSuffixOriginUnchanged = 1 << 4 -) - -// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see -// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state -const ( - NldsInvalid = 0 - NldsTentative = 1 - NldsDuplicate = 2 - NldsDeprecated = 3 - NldsPreferred = 4 - IpDadStateInvalid = 0 - IpDadStateTentative = 1 - IpDadStateDuplicate = 2 - IpDadStateDeprecated = 3 - IpDadStatePreferred = 4 -) - -type SocketAddress struct { - Sockaddr *syscall.RawSockaddrAny - SockaddrLength int32 -} - -// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. -func (addr *SocketAddress) IP() net.IP { - if uintptr(addr.SockaddrLength) >= 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 - Next *IpAdapterUnicastAddress - Address SocketAddress - PrefixOrigin int32 - SuffixOrigin int32 - DadState int32 - ValidLifetime uint32 - PreferredLifetime uint32 - LeaseLifetime uint32 - OnLinkPrefixLength uint8 -} - -type IpAdapterAnycastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterAnycastAddress - Address SocketAddress -} - -type IpAdapterMulticastAddress struct { - Length uint32 - Flags uint32 - Next *IpAdapterMulticastAddress - Address SocketAddress -} - -type IpAdapterDnsServerAdapter struct { - Length uint32 - Reserved uint32 - Next *IpAdapterDnsServerAdapter - Address SocketAddress -} - -type IpAdapterPrefix struct { - Length uint32 - Flags uint32 - Next *IpAdapterPrefix - Address SocketAddress - PrefixLength uint32 -} - -type IpAdapterAddresses struct { - Length uint32 - IfIndex uint32 - Next *IpAdapterAddresses - AdapterName *byte - FirstUnicastAddress *IpAdapterUnicastAddress - FirstAnycastAddress *IpAdapterAnycastAddress - FirstMulticastAddress *IpAdapterMulticastAddress - FirstDnsServerAddress *IpAdapterDnsServerAdapter - DnsSuffix *uint16 - Description *uint16 - FriendlyName *uint16 - PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte - PhysicalAddressLength uint32 - Flags uint32 - Mtu uint32 - IfType uint32 - OperStatus uint32 - Ipv6IfIndex uint32 - ZoneIndices [16]uint32 - FirstPrefix *IpAdapterPrefix - TransmitLinkSpeed uint64 - ReceiveLinkSpeed uint64 - FirstWinsServerAddress *IpAdapterWinsServerAddress - FirstGatewayAddress *IpAdapterGatewayAddress - Ipv4Metric uint32 - Ipv6Metric uint32 - Luid uint64 - Dhcpv4Server SocketAddress - CompartmentId uint32 - NetworkGuid GUID - ConnectionType uint32 - TunnelType uint32 - Dhcpv6Server SocketAddress - Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte - Dhcpv6ClientDuidLength uint32 - Dhcpv6Iaid uint32 - FirstDnsSuffix *IpAdapterDNSSuffix -} - -type IpAdapterWinsServerAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterWinsServerAddress - Address SocketAddress -} - -type IpAdapterGatewayAddress struct { - Length uint32 - Reserved uint32 - Next *IpAdapterGatewayAddress - Address SocketAddress -} - -type IpAdapterDNSSuffix struct { - Next *IpAdapterDNSSuffix - String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 -} - -const ( - IfOperStatusUp = 1 - IfOperStatusDown = 2 - IfOperStatusTesting = 3 - IfOperStatusUnknown = 4 - IfOperStatusDormant = 5 - IfOperStatusNotPresent = 6 - IfOperStatusLowerLayerDown = 7 -) - -const ( - IF_MAX_PHYS_ADDRESS_LENGTH = 32 - IF_MAX_STRING_SIZE = 256 -) - -// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex. -const ( - MibIfEntryNormal = 0 - MibIfEntryNormalWithoutStatistics = 2 -) - -// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type. -const ( - MibParameterNotification = 0 - MibAddInstance = 1 - MibDeleteInstance = 2 - MibInitialNotification = 3 -) - -// MibIfRow2 stores information about a particular interface. See -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2. -type MibIfRow2 struct { - InterfaceLuid uint64 - InterfaceIndex uint32 - InterfaceGuid GUID - Alias [IF_MAX_STRING_SIZE + 1]uint16 - Description [IF_MAX_STRING_SIZE + 1]uint16 - PhysicalAddressLength uint32 - PhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 - PermanentPhysicalAddress [IF_MAX_PHYS_ADDRESS_LENGTH]uint8 - Mtu uint32 - Type uint32 - TunnelType uint32 - MediaType uint32 - PhysicalMediumType uint32 - AccessType uint32 - DirectionType uint32 - InterfaceAndOperStatusFlags uint8 - OperStatus uint32 - AdminStatus uint32 - MediaConnectState uint32 - NetworkGuid GUID - ConnectionType uint32 - TransmitLinkSpeed uint64 - ReceiveLinkSpeed uint64 - InOctets uint64 - InUcastPkts uint64 - InNUcastPkts uint64 - InDiscards uint64 - InErrors uint64 - InUnknownProtos uint64 - InUcastOctets uint64 - InMulticastOctets uint64 - InBroadcastOctets uint64 - OutOctets uint64 - OutUcastPkts uint64 - OutNUcastPkts uint64 - OutDiscards uint64 - OutErrors uint64 - OutUcastOctets uint64 - OutMulticastOctets uint64 - OutBroadcastOctets uint64 - OutQLen uint64 -} - -// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See -// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. -type MibUnicastIpAddressRow struct { - Address RawSockaddrInet6 // SOCKADDR_INET union - InterfaceLuid uint64 - InterfaceIndex uint32 - PrefixOrigin uint32 - SuffixOrigin uint32 - ValidLifetime uint32 - PreferredLifetime uint32 - OnLinkPrefixLength uint8 - SkipAsSource uint8 - DadState uint32 - ScopeId uint32 - CreationTimeStamp Filetime -} - -const ScopeLevelCount = 16 - -// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface. -// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row. -type MibIpInterfaceRow struct { - Family uint16 - InterfaceLuid uint64 - InterfaceIndex uint32 - MaxReassemblySize uint32 - InterfaceIdentifier uint64 - MinRouterAdvertisementInterval uint32 - MaxRouterAdvertisementInterval uint32 - AdvertisingEnabled uint8 - ForwardingEnabled uint8 - WeakHostSend uint8 - WeakHostReceive uint8 - UseAutomaticMetric uint8 - UseNeighborUnreachabilityDetection uint8 - ManagedAddressConfigurationSupported uint8 - OtherStatefulConfigurationSupported uint8 - AdvertiseDefaultRoute uint8 - RouterDiscoveryBehavior uint32 - DadTransmits uint32 - BaseReachableTime uint32 - RetransmitTime uint32 - PathMtuDiscoveryTimeout uint32 - LinkLocalAddressBehavior uint32 - LinkLocalAddressTimeout uint32 - ZoneIndices [ScopeLevelCount]uint32 - SitePrefixLength uint32 - Metric uint32 - NlMtu uint32 - Connected uint8 - SupportsWakeUpPatterns uint8 - SupportsNeighborDiscovery uint8 - SupportsRouterDiscovery uint8 - ReachableTime uint32 - TransmitOffload uint32 - ReceiveOffload uint32 - DisableDefaultRoutes uint8 -} - -// Console related constants used for the mode parameter to SetConsoleMode. See -// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. - -const ( - ENABLE_PROCESSED_INPUT = 0x1 - ENABLE_LINE_INPUT = 0x2 - ENABLE_ECHO_INPUT = 0x4 - ENABLE_WINDOW_INPUT = 0x8 - ENABLE_MOUSE_INPUT = 0x10 - ENABLE_INSERT_MODE = 0x20 - ENABLE_QUICK_EDIT_MODE = 0x40 - ENABLE_EXTENDED_FLAGS = 0x80 - ENABLE_AUTO_POSITION = 0x100 - ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 - - ENABLE_PROCESSED_OUTPUT = 0x1 - ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 - ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 - DISABLE_NEWLINE_AUTO_RETURN = 0x8 - ENABLE_LVB_GRID_WORLDWIDE = 0x10 -) - -// Pseudo console related constants used for the flags parameter to -// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole -const ( - PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 -) - -type Coord struct { - X int16 - Y int16 -} - -type SmallRect struct { - Left int16 - Top int16 - Right int16 - Bottom int16 -} - -// Used with GetConsoleScreenBuffer to retrieve information about a console -// screen buffer. See -// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str -// for details. - -type ConsoleScreenBufferInfo struct { - Size Coord - CursorPosition Coord - Attributes uint16 - Window SmallRect - MaximumWindowSize Coord -} - -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 for QueryInformationJobObject and SetInformationJobObject - JobObjectAssociateCompletionPortInformation = 7 - JobObjectBasicAccountingInformation = 1 - JobObjectBasicAndIoAccountingInformation = 8 - JobObjectBasicLimitInformation = 2 - JobObjectBasicProcessIdList = 3 - JobObjectBasicUIRestrictions = 4 - JobObjectCpuRateControlInformation = 15 - JobObjectEndOfJobTimeInformation = 6 - JobObjectExtendedLimitInformation = 9 - JobObjectGroupInformation = 11 - JobObjectGroupInformationEx = 14 - JobObjectLimitViolationInformation = 13 - JobObjectLimitViolationInformation2 = 34 - JobObjectNetRateControlInformation = 32 - JobObjectNotificationLimitInformation = 12 - JobObjectNotificationLimitInformation2 = 33 - 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 { - // Note: Length and MaximumLength are in *bytes*, not uint16s. - // They should always be even. - 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 RUNTIME_FUNCTION struct { - BeginAddress uint32 - EndAddress uint32 - UnwindData uint32 -} - -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 -) - -const ( - // FileInformationClass for NtSetInformationFile - FileBasicInformation = 4 - FileRenameInformation = 10 - FileDispositionInformation = 13 - FilePositionInformation = 14 - FileEndOfFileInformation = 20 - FileValidDataLengthInformation = 39 - FileShortNameInformation = 40 - FileIoPriorityHintInformation = 43 - FileReplaceCompletionInformation = 61 - FileDispositionInformationEx = 64 - FileCaseSensitiveInformation = 71 - FileLinkInformation = 72 - FileCaseSensitiveInformationForceAccessCheck = 75 - FileKnownFolderInformation = 76 - - // Flags for FILE_RENAME_INFORMATION - FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 - FILE_RENAME_POSIX_SEMANTICS = 0x00000002 - FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 - FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 - - // Flags for FILE_DISPOSITION_INFORMATION_EX - FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 - FILE_DISPOSITION_DELETE = 0x00000001 - FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 - FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 - FILE_DISPOSITION_ON_CLOSE = 0x00000008 - FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 - - // Flags for FILE_CASE_SENSITIVE_INFORMATION - FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 - - // Flags for FILE_LINK_INFORMATION - FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 - FILE_LINK_POSIX_SEMANTICS = 0x00000002 - FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 - FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 - FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 - FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 - FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 - FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 - FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 - FILE_LINK_FORCE_RESIZE_SR = 0x00000180 -) - -// 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 -} - -type SYSTEM_PROCESS_INFORMATION struct { - NextEntryOffset uint32 - NumberOfThreads uint32 - WorkingSetPrivateSize int64 - HardFaultCount uint32 - NumberOfThreadsHighWatermark uint32 - CycleTime uint64 - CreateTime int64 - UserTime int64 - KernelTime int64 - ImageName NTUnicodeString - BasePriority int32 - UniqueProcessID uintptr - InheritedFromUniqueProcessID uintptr - HandleCount uint32 - SessionID uint32 - UniqueProcessKey *uint32 - PeakVirtualSize uintptr - VirtualSize uintptr - PageFaultCount uint32 - PeakWorkingSetSize uintptr - WorkingSetSize uintptr - QuotaPeakPagedPoolUsage uintptr - QuotaPagedPoolUsage uintptr - QuotaPeakNonPagedPoolUsage uintptr - QuotaNonPagedPoolUsage uintptr - PagefileUsage uintptr - PeakPagefileUsage uintptr - PrivatePageCount uintptr - ReadOperationCount int64 - WriteOperationCount int64 - OtherOperationCount int64 - ReadTransferCount int64 - WriteTransferCount int64 - OtherTransferCount int64 -} - -// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation -const ( - SystemBasicInformation = iota - SystemProcessorInformation - SystemPerformanceInformation - SystemTimeOfDayInformation - SystemPathInformation - SystemProcessInformation - SystemCallCountInformation - SystemDeviceInformation - SystemProcessorPerformanceInformation - SystemFlagsInformation - SystemCallTimeInformation - SystemModuleInformation - SystemLocksInformation - SystemStackTraceInformation - SystemPagedPoolInformation - SystemNonPagedPoolInformation - SystemHandleInformation - SystemObjectInformation - SystemPageFileInformation - SystemVdmInstemulInformation - SystemVdmBopInformation - SystemFileCacheInformation - SystemPoolTagInformation - SystemInterruptInformation - SystemDpcBehaviorInformation - SystemFullMemoryInformation - SystemLoadGdiDriverInformation - SystemUnloadGdiDriverInformation - SystemTimeAdjustmentInformation - SystemSummaryMemoryInformation - SystemMirrorMemoryInformation - SystemPerformanceTraceInformation - systemObsolete0 - SystemExceptionInformation - SystemCrashDumpStateInformation - SystemKernelDebuggerInformation - SystemContextSwitchInformation - SystemRegistryQuotaInformation - SystemExtendServiceTableInformation - SystemPrioritySeperation - SystemVerifierAddDriverInformation - SystemVerifierRemoveDriverInformation - SystemProcessorIdleInformation - SystemLegacyDriverInformation - SystemCurrentTimeZoneInformation - SystemLookasideInformation - SystemTimeSlipNotification - SystemSessionCreate - SystemSessionDetach - SystemSessionInformation - SystemRangeStartInformation - SystemVerifierInformation - SystemVerifierThunkExtend - SystemSessionProcessInformation - SystemLoadGdiDriverInSystemSpace - SystemNumaProcessorMap - SystemPrefetcherInformation - SystemExtendedProcessInformation - SystemRecommendedSharedDataAlignment - SystemComPlusPackage - SystemNumaAvailableMemory - SystemProcessorPowerInformation - SystemEmulationBasicInformation - SystemEmulationProcessorInformation - SystemExtendedHandleInformation - SystemLostDelayedWriteInformation - SystemBigPoolInformation - SystemSessionPoolTagInformation - SystemSessionMappedViewInformation - SystemHotpatchInformation - SystemObjectSecurityMode - SystemWatchdogTimerHandler - SystemWatchdogTimerInformation - SystemLogicalProcessorInformation - SystemWow64SharedInformationObsolete - SystemRegisterFirmwareTableInformationHandler - SystemFirmwareTableInformation - SystemModuleInformationEx - SystemVerifierTriageInformation - SystemSuperfetchInformation - SystemMemoryListInformation - SystemFileCacheInformationEx - SystemThreadPriorityClientIdInformation - SystemProcessorIdleCycleTimeInformation - SystemVerifierCancellationInformation - SystemProcessorPowerInformationEx - SystemRefTraceInformation - SystemSpecialPoolInformation - SystemProcessIdInformation - SystemErrorPortInformation - SystemBootEnvironmentInformation - SystemHypervisorInformation - SystemVerifierInformationEx - SystemTimeZoneInformation - SystemImageFileExecutionOptionsInformation - SystemCoverageInformation - SystemPrefetchPatchInformation - SystemVerifierFaultsInformation - SystemSystemPartitionInformation - SystemSystemDiskInformation - SystemProcessorPerformanceDistribution - SystemNumaProximityNodeInformation - SystemDynamicTimeZoneInformation - SystemCodeIntegrityInformation - SystemProcessorMicrocodeUpdateInformation - SystemProcessorBrandString - SystemVirtualAddressInformation - SystemLogicalProcessorAndGroupInformation - SystemProcessorCycleTimeInformation - SystemStoreInformation - SystemRegistryAppendString - SystemAitSamplingValue - SystemVhdBootInformation - SystemCpuQuotaInformation - SystemNativeBasicInformation - systemSpare1 - SystemLowPriorityIoInformation - SystemTpmBootEntropyInformation - SystemVerifierCountersInformation - SystemPagedPoolInformationEx - SystemSystemPtesInformationEx - SystemNodeDistanceInformation - SystemAcpiAuditInformation - SystemBasicPerformanceInformation - SystemQueryPerformanceCounterInformation - SystemSessionBigPoolInformation - SystemBootGraphicsInformation - SystemScrubPhysicalMemoryInformation - SystemBadPageInformation - SystemProcessorProfileControlArea - SystemCombinePhysicalMemoryInformation - SystemEntropyInterruptTimingCallback - SystemConsoleInformation - SystemPlatformBinaryInformation - SystemThrottleNotificationInformation - SystemHypervisorProcessorCountInformation - SystemDeviceDataInformation - SystemDeviceDataEnumerationInformation - SystemMemoryTopologyInformation - SystemMemoryChannelInformation - SystemBootLogoInformation - SystemProcessorPerformanceInformationEx - systemSpare0 - SystemSecureBootPolicyInformation - SystemPageFileInformationEx - SystemSecureBootInformation - SystemEntropyInterruptTimingRawInformation - SystemPortableWorkspaceEfiLauncherInformation - SystemFullProcessInformation - SystemKernelDebuggerInformationEx - SystemBootMetadataInformation - SystemSoftRebootInformation - SystemElamCertificateInformation - SystemOfflineDumpConfigInformation - SystemProcessorFeaturesInformation - SystemRegistryReconciliationInformation - SystemEdidInformation - SystemManufacturingInformation - SystemEnergyEstimationConfigInformation - SystemHypervisorDetailInformation - SystemProcessorCycleStatsInformation - SystemVmGenerationCountInformation - SystemTrustedPlatformModuleInformation - SystemKernelDebuggerFlags - SystemCodeIntegrityPolicyInformation - SystemIsolatedUserModeInformation - SystemHardwareSecurityTestInterfaceResultsInformation - SystemSingleModuleInformation - SystemAllowedCpuSetsInformation - SystemDmaProtectionInformation - SystemInterruptCpuSetsInformation - SystemSecureBootPolicyFullInformation - SystemCodeIntegrityPolicyFullInformation - SystemAffinitizedInterruptProcessorInformation - SystemRootSiloInformation -) - -type RTL_PROCESS_MODULE_INFORMATION struct { - Section Handle - MappedBase uintptr - ImageBase uintptr - ImageSize uint32 - Flags uint32 - LoadOrderIndex uint16 - InitOrderIndex uint16 - LoadCount uint16 - OffsetToFileName uint16 - FullPathName [256]byte -} - -type RTL_PROCESS_MODULES struct { - NumberOfModules uint32 - Modules [1]RTL_PROCESS_MODULE_INFORMATION -} - -// 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 VS_FIXEDFILEINFO struct { - Signature uint32 - StrucVersion uint32 - FileVersionMS uint32 - FileVersionLS uint32 - ProductVersionMS uint32 - ProductVersionLS uint32 - FileFlagsMask uint32 - FileFlags uint32 - FileOS uint32 - FileType uint32 - FileSubtype uint32 - FileDateMS uint32 - FileDateLS uint32 -} - -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 - -type ModuleInfo struct { - BaseOfDll uintptr - SizeOfImage uint32 - EntryPoint uintptr -} - -const ALL_PROCESSOR_GROUPS = 0xFFFF - -type Rect struct { - Left int32 - Top int32 - Right int32 - Bottom int32 -} - -type GUIThreadInfo struct { - Size uint32 - Flags uint32 - Active HWND - Focus HWND - Capture HWND - MenuOwner HWND - MoveSize HWND - CaretHandle HWND - CaretRect Rect -} - -const ( - DWMWA_NCRENDERING_ENABLED = 1 - DWMWA_NCRENDERING_POLICY = 2 - DWMWA_TRANSITIONS_FORCEDISABLED = 3 - DWMWA_ALLOW_NCPAINT = 4 - DWMWA_CAPTION_BUTTON_BOUNDS = 5 - DWMWA_NONCLIENT_RTL_LAYOUT = 6 - DWMWA_FORCE_ICONIC_REPRESENTATION = 7 - DWMWA_FLIP3D_POLICY = 8 - DWMWA_EXTENDED_FRAME_BOUNDS = 9 - DWMWA_HAS_ICONIC_BITMAP = 10 - DWMWA_DISALLOW_PEEK = 11 - DWMWA_EXCLUDED_FROM_PEEK = 12 - DWMWA_CLOAK = 13 - DWMWA_CLOAKED = 14 - DWMWA_FREEZE_REPRESENTATION = 15 - DWMWA_PASSIVE_UPDATE_MODE = 16 - DWMWA_USE_HOSTBACKDROPBRUSH = 17 - DWMWA_USE_IMMERSIVE_DARK_MODE = 20 - DWMWA_WINDOW_CORNER_PREFERENCE = 33 - DWMWA_BORDER_COLOR = 34 - DWMWA_CAPTION_COLOR = 35 - DWMWA_TEXT_COLOR = 36 - DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 -) - -type WSAQUERYSET struct { - Size uint32 - ServiceInstanceName *uint16 - ServiceClassId *GUID - Version *WSAVersion - Comment *uint16 - NameSpace uint32 - NSProviderId *GUID - Context *uint16 - NumberOfProtocols uint32 - AfpProtocols *AFProtocols - QueryString *uint16 - NumberOfCsAddrs uint32 - SaBuffer *CSAddrInfo - OutputFlags uint32 - Blob *BLOB -} - -type WSAVersion struct { - Version uint32 - EnumerationOfComparison int32 -} - -type AFProtocols struct { - AddressFamily int32 - Protocol int32 -} - -type CSAddrInfo struct { - LocalAddr SocketAddress - RemoteAddr SocketAddress - SocketType int32 - Protocol int32 -} - -type BLOB struct { - Size uint32 - BlobData *byte -} - -type ComStat struct { - Flags uint32 - CBInQue uint32 - CBOutQue uint32 -} - -type DCB struct { - DCBlength uint32 - BaudRate uint32 - Flags uint32 - wReserved uint16 - XonLim uint16 - XoffLim uint16 - ByteSize uint8 - Parity uint8 - StopBits uint8 - XonChar byte - XoffChar byte - ErrorChar byte - EofChar byte - EvtChar byte - wReserved1 uint16 -} - -// Keyboard Layout Flags. -// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw -const ( - KLF_ACTIVATE = 0x00000001 - KLF_SUBSTITUTE_OK = 0x00000002 - KLF_REORDER = 0x00000008 - KLF_REPLACELANG = 0x00000010 - KLF_NOTELLSHELL = 0x00000080 - KLF_SETFORPROCESS = 0x00000100 -) - -// Virtual Key codes -// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes -const ( - VK_LBUTTON = 0x01 - VK_RBUTTON = 0x02 - VK_CANCEL = 0x03 - VK_MBUTTON = 0x04 - VK_XBUTTON1 = 0x05 - VK_XBUTTON2 = 0x06 - VK_BACK = 0x08 - VK_TAB = 0x09 - VK_CLEAR = 0x0C - VK_RETURN = 0x0D - VK_SHIFT = 0x10 - VK_CONTROL = 0x11 - VK_MENU = 0x12 - VK_PAUSE = 0x13 - VK_CAPITAL = 0x14 - VK_KANA = 0x15 - VK_HANGEUL = 0x15 - VK_HANGUL = 0x15 - VK_IME_ON = 0x16 - VK_JUNJA = 0x17 - VK_FINAL = 0x18 - VK_HANJA = 0x19 - VK_KANJI = 0x19 - VK_IME_OFF = 0x1A - VK_ESCAPE = 0x1B - VK_CONVERT = 0x1C - VK_NONCONVERT = 0x1D - VK_ACCEPT = 0x1E - VK_MODECHANGE = 0x1F - VK_SPACE = 0x20 - VK_PRIOR = 0x21 - VK_NEXT = 0x22 - VK_END = 0x23 - VK_HOME = 0x24 - VK_LEFT = 0x25 - VK_UP = 0x26 - VK_RIGHT = 0x27 - VK_DOWN = 0x28 - VK_SELECT = 0x29 - VK_PRINT = 0x2A - VK_EXECUTE = 0x2B - VK_SNAPSHOT = 0x2C - VK_INSERT = 0x2D - VK_DELETE = 0x2E - VK_HELP = 0x2F - VK_LWIN = 0x5B - VK_RWIN = 0x5C - VK_APPS = 0x5D - VK_SLEEP = 0x5F - VK_NUMPAD0 = 0x60 - VK_NUMPAD1 = 0x61 - VK_NUMPAD2 = 0x62 - VK_NUMPAD3 = 0x63 - VK_NUMPAD4 = 0x64 - VK_NUMPAD5 = 0x65 - VK_NUMPAD6 = 0x66 - VK_NUMPAD7 = 0x67 - VK_NUMPAD8 = 0x68 - VK_NUMPAD9 = 0x69 - VK_MULTIPLY = 0x6A - VK_ADD = 0x6B - VK_SEPARATOR = 0x6C - VK_SUBTRACT = 0x6D - VK_DECIMAL = 0x6E - VK_DIVIDE = 0x6F - VK_F1 = 0x70 - VK_F2 = 0x71 - VK_F3 = 0x72 - VK_F4 = 0x73 - VK_F5 = 0x74 - VK_F6 = 0x75 - VK_F7 = 0x76 - VK_F8 = 0x77 - VK_F9 = 0x78 - VK_F10 = 0x79 - VK_F11 = 0x7A - VK_F12 = 0x7B - VK_F13 = 0x7C - VK_F14 = 0x7D - VK_F15 = 0x7E - VK_F16 = 0x7F - VK_F17 = 0x80 - VK_F18 = 0x81 - VK_F19 = 0x82 - VK_F20 = 0x83 - VK_F21 = 0x84 - VK_F22 = 0x85 - VK_F23 = 0x86 - VK_F24 = 0x87 - VK_NUMLOCK = 0x90 - VK_SCROLL = 0x91 - VK_OEM_NEC_EQUAL = 0x92 - VK_OEM_FJ_JISHO = 0x92 - VK_OEM_FJ_MASSHOU = 0x93 - VK_OEM_FJ_TOUROKU = 0x94 - VK_OEM_FJ_LOYA = 0x95 - VK_OEM_FJ_ROYA = 0x96 - VK_LSHIFT = 0xA0 - VK_RSHIFT = 0xA1 - VK_LCONTROL = 0xA2 - VK_RCONTROL = 0xA3 - VK_LMENU = 0xA4 - VK_RMENU = 0xA5 - VK_BROWSER_BACK = 0xA6 - VK_BROWSER_FORWARD = 0xA7 - VK_BROWSER_REFRESH = 0xA8 - VK_BROWSER_STOP = 0xA9 - VK_BROWSER_SEARCH = 0xAA - VK_BROWSER_FAVORITES = 0xAB - VK_BROWSER_HOME = 0xAC - VK_VOLUME_MUTE = 0xAD - VK_VOLUME_DOWN = 0xAE - VK_VOLUME_UP = 0xAF - VK_MEDIA_NEXT_TRACK = 0xB0 - VK_MEDIA_PREV_TRACK = 0xB1 - VK_MEDIA_STOP = 0xB2 - VK_MEDIA_PLAY_PAUSE = 0xB3 - VK_LAUNCH_MAIL = 0xB4 - VK_LAUNCH_MEDIA_SELECT = 0xB5 - VK_LAUNCH_APP1 = 0xB6 - VK_LAUNCH_APP2 = 0xB7 - VK_OEM_1 = 0xBA - VK_OEM_PLUS = 0xBB - VK_OEM_COMMA = 0xBC - VK_OEM_MINUS = 0xBD - VK_OEM_PERIOD = 0xBE - VK_OEM_2 = 0xBF - VK_OEM_3 = 0xC0 - VK_OEM_4 = 0xDB - VK_OEM_5 = 0xDC - VK_OEM_6 = 0xDD - VK_OEM_7 = 0xDE - VK_OEM_8 = 0xDF - VK_OEM_AX = 0xE1 - VK_OEM_102 = 0xE2 - VK_ICO_HELP = 0xE3 - VK_ICO_00 = 0xE4 - VK_PROCESSKEY = 0xE5 - VK_ICO_CLEAR = 0xE6 - VK_OEM_RESET = 0xE9 - VK_OEM_JUMP = 0xEA - VK_OEM_PA1 = 0xEB - VK_OEM_PA2 = 0xEC - VK_OEM_PA3 = 0xED - VK_OEM_WSCTRL = 0xEE - VK_OEM_CUSEL = 0xEF - VK_OEM_ATTN = 0xF0 - VK_OEM_FINISH = 0xF1 - VK_OEM_COPY = 0xF2 - VK_OEM_AUTO = 0xF3 - VK_OEM_ENLW = 0xF4 - VK_OEM_BACKTAB = 0xF5 - VK_ATTN = 0xF6 - VK_CRSEL = 0xF7 - VK_EXSEL = 0xF8 - VK_EREOF = 0xF9 - VK_PLAY = 0xFA - VK_ZOOM = 0xFB - VK_NONAME = 0xFC - VK_PA1 = 0xFD - VK_OEM_CLEAR = 0xFE -) - -// Mouse button constants. -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 - RIGHTMOST_BUTTON_PRESSED = 0x0002 - FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 - FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 - FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 -) - -// Control key state constaints. -// https://docs.microsoft.com/en-us/windows/console/key-event-record-str -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - CAPSLOCK_ON = 0x0080 - ENHANCED_KEY = 0x0100 - LEFT_ALT_PRESSED = 0x0002 - LEFT_CTRL_PRESSED = 0x0008 - NUMLOCK_ON = 0x0020 - RIGHT_ALT_PRESSED = 0x0001 - RIGHT_CTRL_PRESSED = 0x0004 - SCROLLLOCK_ON = 0x0040 - SHIFT_PRESSED = 0x0010 -) - -// Mouse event record event flags. -// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str -const ( - MOUSE_MOVED = 0x0001 - DOUBLE_CLICK = 0x0002 - MOUSE_WHEELED = 0x0004 - MOUSE_HWHEELED = 0x0008 -) - -// Input Record Event Types -// https://learn.microsoft.com/en-us/windows/console/input-record-str -const ( - FOCUS_EVENT = 0x0010 - KEY_EVENT = 0x0001 - MENU_EVENT = 0x0008 - MOUSE_EVENT = 0x0002 - WINDOW_BUFFER_SIZE_EVENT = 0x0004 -) diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go deleted file mode 100644 index 8bce3e2..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_386.go +++ /dev/null @@ -1,35 +0,0 @@ -// 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 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - 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 deleted file mode 100644 index fdddc0c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_amd64.go +++ /dev/null @@ -1,34 +0,0 @@ -// 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/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go deleted file mode 100644 index 321872c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_arm.go +++ /dev/null @@ -1,35 +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. - -package windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - 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 deleted file mode 100644 index fdddc0c..0000000 --- a/vendor/golang.org/x/sys/windows/types_windows_arm64.go +++ /dev/null @@ -1,34 +0,0 @@ -// 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 deleted file mode 100644 index 0cf658f..0000000 --- a/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ /dev/null @@ -1,9468 +0,0 @@ -// Code generated by 'mkerrors.bash'; DO NOT EDIT. - -package windows - -import "syscall" - -const ( - FACILITY_NULL = 0 - FACILITY_RPC = 1 - FACILITY_DISPATCH = 2 - FACILITY_STORAGE = 3 - FACILITY_ITF = 4 - FACILITY_WIN32 = 7 - FACILITY_WINDOWS = 8 - FACILITY_SSPI = 9 - FACILITY_SECURITY = 9 - FACILITY_CONTROL = 10 - FACILITY_CERT = 11 - FACILITY_INTERNET = 12 - FACILITY_MEDIASERVER = 13 - FACILITY_MSMQ = 14 - FACILITY_SETUPAPI = 15 - FACILITY_SCARD = 16 - FACILITY_COMPLUS = 17 - FACILITY_AAF = 18 - FACILITY_URT = 19 - FACILITY_ACS = 20 - FACILITY_DPLAY = 21 - FACILITY_UMI = 22 - FACILITY_SXS = 23 - FACILITY_WINDOWS_CE = 24 - FACILITY_HTTP = 25 - FACILITY_USERMODE_COMMONLOG = 26 - FACILITY_WER = 27 - FACILITY_USERMODE_FILTER_MANAGER = 31 - FACILITY_BACKGROUNDCOPY = 32 - FACILITY_CONFIGURATION = 33 - FACILITY_WIA = 33 - FACILITY_STATE_MANAGEMENT = 34 - FACILITY_METADIRECTORY = 35 - FACILITY_WINDOWSUPDATE = 36 - FACILITY_DIRECTORYSERVICE = 37 - FACILITY_GRAPHICS = 38 - FACILITY_SHELL = 39 - FACILITY_NAP = 39 - FACILITY_TPM_SERVICES = 40 - FACILITY_TPM_SOFTWARE = 41 - FACILITY_UI = 42 - FACILITY_XAML = 43 - FACILITY_ACTION_QUEUE = 44 - FACILITY_PLA = 48 - FACILITY_WINDOWS_SETUP = 48 - FACILITY_FVE = 49 - FACILITY_FWP = 50 - FACILITY_WINRM = 51 - FACILITY_NDIS = 52 - FACILITY_USERMODE_HYPERVISOR = 53 - FACILITY_CMI = 54 - FACILITY_USERMODE_VIRTUALIZATION = 55 - FACILITY_USERMODE_VOLMGR = 56 - FACILITY_BCD = 57 - FACILITY_USERMODE_VHD = 58 - FACILITY_USERMODE_HNS = 59 - FACILITY_SDIAG = 60 - FACILITY_WEBSERVICES = 61 - FACILITY_WINPE = 61 - FACILITY_WPN = 62 - FACILITY_WINDOWS_STORE = 63 - FACILITY_INPUT = 64 - FACILITY_EAP = 66 - FACILITY_WINDOWS_DEFENDER = 80 - FACILITY_OPC = 81 - FACILITY_XPS = 82 - FACILITY_MBN = 84 - FACILITY_POWERSHELL = 84 - FACILITY_RAS = 83 - FACILITY_P2P_INT = 98 - FACILITY_P2P = 99 - FACILITY_DAF = 100 - FACILITY_BLUETOOTH_ATT = 101 - FACILITY_AUDIO = 102 - FACILITY_STATEREPOSITORY = 103 - FACILITY_VISUALCPP = 109 - FACILITY_SCRIPT = 112 - FACILITY_PARSE = 113 - FACILITY_BLB = 120 - FACILITY_BLB_CLI = 121 - FACILITY_WSBAPP = 122 - FACILITY_BLBUI = 128 - FACILITY_USN = 129 - FACILITY_USERMODE_VOLSNAP = 130 - FACILITY_TIERING = 131 - FACILITY_WSB_ONLINE = 133 - FACILITY_ONLINE_ID = 134 - FACILITY_DEVICE_UPDATE_AGENT = 135 - FACILITY_DRVSERVICING = 136 - FACILITY_DLS = 153 - FACILITY_DELIVERY_OPTIMIZATION = 208 - FACILITY_USERMODE_SPACES = 231 - FACILITY_USER_MODE_SECURITY_CORE = 232 - FACILITY_USERMODE_LICENSING = 234 - FACILITY_SOS = 160 - FACILITY_DEBUGGERS = 176 - FACILITY_SPP = 256 - FACILITY_RESTORE = 256 - FACILITY_DMSERVER = 256 - FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 - FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 - FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 - FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 - FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 - FACILITY_DEPLOYMENT_SERVICES_PXE = 263 - FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 - FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 - FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 - FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 - FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 - FACILITY_LINGUISTIC_SERVICES = 305 - FACILITY_AUDIOSTREAMING = 1094 - FACILITY_ACCELERATOR = 1536 - FACILITY_WMAAECMA = 1996 - FACILITY_DIRECTMUSIC = 2168 - FACILITY_DIRECT3D10 = 2169 - FACILITY_DXGI = 2170 - FACILITY_DXGI_DDI = 2171 - FACILITY_DIRECT3D11 = 2172 - FACILITY_DIRECT3D11_DEBUG = 2173 - FACILITY_DIRECT3D12 = 2174 - FACILITY_DIRECT3D12_DEBUG = 2175 - FACILITY_LEAP = 2184 - FACILITY_AUDCLNT = 2185 - FACILITY_WINCODEC_DWRITE_DWM = 2200 - FACILITY_WINML = 2192 - FACILITY_DIRECT2D = 2201 - FACILITY_DEFRAG = 2304 - FACILITY_USERMODE_SDBUS = 2305 - FACILITY_JSCRIPT = 2306 - FACILITY_PIDGENX = 2561 - FACILITY_EAS = 85 - FACILITY_WEB = 885 - FACILITY_WEB_SOCKET = 886 - FACILITY_MOBILE = 1793 - FACILITY_SQLITE = 1967 - FACILITY_UTC = 1989 - FACILITY_WEP = 2049 - FACILITY_SYNCENGINE = 2050 - FACILITY_XBOX = 2339 - FACILITY_GAME = 2340 - FACILITY_PIX = 2748 - ERROR_SUCCESS syscall.Errno = 0 - NO_ERROR = 0 - SEC_E_OK Handle = 0x00000000 - ERROR_INVALID_FUNCTION syscall.Errno = 1 - ERROR_FILE_NOT_FOUND syscall.Errno = 2 - ERROR_PATH_NOT_FOUND syscall.Errno = 3 - ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 - ERROR_ACCESS_DENIED syscall.Errno = 5 - ERROR_INVALID_HANDLE syscall.Errno = 6 - ERROR_ARENA_TRASHED syscall.Errno = 7 - ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 - ERROR_INVALID_BLOCK syscall.Errno = 9 - ERROR_BAD_ENVIRONMENT syscall.Errno = 10 - ERROR_BAD_FORMAT syscall.Errno = 11 - ERROR_INVALID_ACCESS syscall.Errno = 12 - ERROR_INVALID_DATA syscall.Errno = 13 - ERROR_OUTOFMEMORY syscall.Errno = 14 - ERROR_INVALID_DRIVE syscall.Errno = 15 - ERROR_CURRENT_DIRECTORY syscall.Errno = 16 - ERROR_NOT_SAME_DEVICE syscall.Errno = 17 - ERROR_NO_MORE_FILES syscall.Errno = 18 - ERROR_WRITE_PROTECT syscall.Errno = 19 - ERROR_BAD_UNIT syscall.Errno = 20 - ERROR_NOT_READY syscall.Errno = 21 - ERROR_BAD_COMMAND syscall.Errno = 22 - ERROR_CRC syscall.Errno = 23 - ERROR_BAD_LENGTH syscall.Errno = 24 - ERROR_SEEK syscall.Errno = 25 - ERROR_NOT_DOS_DISK syscall.Errno = 26 - ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 - ERROR_OUT_OF_PAPER syscall.Errno = 28 - ERROR_WRITE_FAULT syscall.Errno = 29 - ERROR_READ_FAULT syscall.Errno = 30 - ERROR_GEN_FAILURE syscall.Errno = 31 - ERROR_SHARING_VIOLATION syscall.Errno = 32 - ERROR_LOCK_VIOLATION syscall.Errno = 33 - ERROR_WRONG_DISK syscall.Errno = 34 - ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 - ERROR_HANDLE_EOF syscall.Errno = 38 - ERROR_HANDLE_DISK_FULL syscall.Errno = 39 - ERROR_NOT_SUPPORTED syscall.Errno = 50 - ERROR_REM_NOT_LIST syscall.Errno = 51 - ERROR_DUP_NAME syscall.Errno = 52 - ERROR_BAD_NETPATH syscall.Errno = 53 - ERROR_NETWORK_BUSY syscall.Errno = 54 - ERROR_DEV_NOT_EXIST syscall.Errno = 55 - ERROR_TOO_MANY_CMDS syscall.Errno = 56 - ERROR_ADAP_HDW_ERR syscall.Errno = 57 - ERROR_BAD_NET_RESP syscall.Errno = 58 - ERROR_UNEXP_NET_ERR syscall.Errno = 59 - ERROR_BAD_REM_ADAP syscall.Errno = 60 - ERROR_PRINTQ_FULL syscall.Errno = 61 - ERROR_NO_SPOOL_SPACE syscall.Errno = 62 - ERROR_PRINT_CANCELLED syscall.Errno = 63 - ERROR_NETNAME_DELETED syscall.Errno = 64 - ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 - ERROR_BAD_DEV_TYPE syscall.Errno = 66 - ERROR_BAD_NET_NAME syscall.Errno = 67 - ERROR_TOO_MANY_NAMES syscall.Errno = 68 - ERROR_TOO_MANY_SESS syscall.Errno = 69 - ERROR_SHARING_PAUSED syscall.Errno = 70 - ERROR_REQ_NOT_ACCEP syscall.Errno = 71 - ERROR_REDIR_PAUSED syscall.Errno = 72 - ERROR_FILE_EXISTS syscall.Errno = 80 - ERROR_CANNOT_MAKE syscall.Errno = 82 - ERROR_FAIL_I24 syscall.Errno = 83 - ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 - ERROR_ALREADY_ASSIGNED syscall.Errno = 85 - ERROR_INVALID_PASSWORD syscall.Errno = 86 - ERROR_INVALID_PARAMETER syscall.Errno = 87 - ERROR_NET_WRITE_FAULT syscall.Errno = 88 - ERROR_NO_PROC_SLOTS syscall.Errno = 89 - ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 - ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 - ERROR_SEM_IS_SET syscall.Errno = 102 - ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 - ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 - ERROR_SEM_OWNER_DIED syscall.Errno = 105 - ERROR_SEM_USER_LIMIT syscall.Errno = 106 - ERROR_DISK_CHANGE syscall.Errno = 107 - ERROR_DRIVE_LOCKED syscall.Errno = 108 - ERROR_BROKEN_PIPE syscall.Errno = 109 - ERROR_OPEN_FAILED syscall.Errno = 110 - ERROR_BUFFER_OVERFLOW syscall.Errno = 111 - ERROR_DISK_FULL syscall.Errno = 112 - ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 - ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 - ERROR_INVALID_CATEGORY syscall.Errno = 117 - ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 - ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 - ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 - ERROR_SEM_TIMEOUT syscall.Errno = 121 - ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 - ERROR_INVALID_NAME syscall.Errno = 123 - ERROR_INVALID_LEVEL syscall.Errno = 124 - ERROR_NO_VOLUME_LABEL syscall.Errno = 125 - ERROR_MOD_NOT_FOUND syscall.Errno = 126 - ERROR_PROC_NOT_FOUND syscall.Errno = 127 - ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 - ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 - ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 - ERROR_NEGATIVE_SEEK syscall.Errno = 131 - ERROR_SEEK_ON_DEVICE syscall.Errno = 132 - ERROR_IS_JOIN_TARGET syscall.Errno = 133 - ERROR_IS_JOINED syscall.Errno = 134 - ERROR_IS_SUBSTED syscall.Errno = 135 - ERROR_NOT_JOINED syscall.Errno = 136 - ERROR_NOT_SUBSTED syscall.Errno = 137 - ERROR_JOIN_TO_JOIN syscall.Errno = 138 - ERROR_SUBST_TO_SUBST syscall.Errno = 139 - ERROR_JOIN_TO_SUBST syscall.Errno = 140 - ERROR_SUBST_TO_JOIN syscall.Errno = 141 - ERROR_BUSY_DRIVE syscall.Errno = 142 - ERROR_SAME_DRIVE syscall.Errno = 143 - ERROR_DIR_NOT_ROOT syscall.Errno = 144 - ERROR_DIR_NOT_EMPTY syscall.Errno = 145 - ERROR_IS_SUBST_PATH syscall.Errno = 146 - ERROR_IS_JOIN_PATH syscall.Errno = 147 - ERROR_PATH_BUSY syscall.Errno = 148 - ERROR_IS_SUBST_TARGET syscall.Errno = 149 - ERROR_SYSTEM_TRACE syscall.Errno = 150 - ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 - ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 - ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 - ERROR_LABEL_TOO_LONG syscall.Errno = 154 - ERROR_TOO_MANY_TCBS syscall.Errno = 155 - ERROR_SIGNAL_REFUSED syscall.Errno = 156 - ERROR_DISCARDED syscall.Errno = 157 - ERROR_NOT_LOCKED syscall.Errno = 158 - ERROR_BAD_THREADID_ADDR syscall.Errno = 159 - ERROR_BAD_ARGUMENTS syscall.Errno = 160 - ERROR_BAD_PATHNAME syscall.Errno = 161 - ERROR_SIGNAL_PENDING syscall.Errno = 162 - ERROR_MAX_THRDS_REACHED syscall.Errno = 164 - ERROR_LOCK_FAILED syscall.Errno = 167 - ERROR_BUSY syscall.Errno = 170 - ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 - ERROR_CANCEL_VIOLATION syscall.Errno = 173 - ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 - ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 - ERROR_INVALID_ORDINAL syscall.Errno = 182 - ERROR_ALREADY_EXISTS syscall.Errno = 183 - ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 - ERROR_SEM_NOT_FOUND syscall.Errno = 187 - ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 - ERROR_INVALID_STACKSEG syscall.Errno = 189 - ERROR_INVALID_MODULETYPE syscall.Errno = 190 - ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 - ERROR_EXE_MARKED_INVALID syscall.Errno = 192 - ERROR_BAD_EXE_FORMAT syscall.Errno = 193 - ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 - ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 - ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 - ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 - ERROR_INVALID_SEGDPL syscall.Errno = 198 - ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 - ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 - ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 - ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 - ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 - ERROR_NO_SIGNAL_SENT syscall.Errno = 205 - ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 - ERROR_RING2_STACK_IN_USE syscall.Errno = 207 - ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 - ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 - ERROR_THREAD_1_INACTIVE syscall.Errno = 210 - ERROR_LOCKED syscall.Errno = 212 - ERROR_TOO_MANY_MODULES syscall.Errno = 214 - ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 - ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 - ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 - ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 - ERROR_FILE_CHECKED_OUT syscall.Errno = 220 - ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 - ERROR_BAD_FILE_TYPE syscall.Errno = 222 - ERROR_FILE_TOO_LARGE syscall.Errno = 223 - ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 - ERROR_VIRUS_INFECTED syscall.Errno = 225 - ERROR_VIRUS_DELETED syscall.Errno = 226 - ERROR_PIPE_LOCAL syscall.Errno = 229 - ERROR_BAD_PIPE syscall.Errno = 230 - ERROR_PIPE_BUSY syscall.Errno = 231 - ERROR_NO_DATA syscall.Errno = 232 - ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 - ERROR_MORE_DATA syscall.Errno = 234 - ERROR_NO_WORK_DONE syscall.Errno = 235 - ERROR_VC_DISCONNECTED syscall.Errno = 240 - ERROR_INVALID_EA_NAME syscall.Errno = 254 - ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 - WAIT_TIMEOUT syscall.Errno = 258 - ERROR_NO_MORE_ITEMS syscall.Errno = 259 - ERROR_CANNOT_COPY syscall.Errno = 266 - ERROR_DIRECTORY syscall.Errno = 267 - ERROR_EAS_DIDNT_FIT syscall.Errno = 275 - ERROR_EA_FILE_CORRUPT syscall.Errno = 276 - ERROR_EA_TABLE_FULL syscall.Errno = 277 - ERROR_INVALID_EA_HANDLE syscall.Errno = 278 - ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 - ERROR_NOT_OWNER syscall.Errno = 288 - ERROR_TOO_MANY_POSTS syscall.Errno = 298 - ERROR_PARTIAL_COPY syscall.Errno = 299 - ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 - ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 - ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 - ERROR_DELETE_PENDING syscall.Errno = 303 - ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 - ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 - ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 - ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 - ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 - ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 - ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 - ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 - ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 - ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 - ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 - ERROR_INVALID_TOKEN syscall.Errno = 315 - ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 - ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 - ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 - ERROR_UNDEFINED_SCOPE syscall.Errno = 319 - ERROR_INVALID_CAP syscall.Errno = 320 - ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 - ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 - ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 - ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 - ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 - ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 - ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 - ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 - ERROR_BAD_DEVICE_PATH syscall.Errno = 330 - ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 - ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 - ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 - ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 - ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 - ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 - ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 - ERROR_FT_WRITE_FAILURE syscall.Errno = 338 - ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 - ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 - ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 - ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 - ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 - ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 - ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 - ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 - ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 - ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 - ERROR_ENCLAVE_FAILURE syscall.Errno = 349 - ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 - ERROR_FAIL_SHUTDOWN syscall.Errno = 351 - ERROR_FAIL_RESTART syscall.Errno = 352 - ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 - ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 - ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 - ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 - ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 - ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 - ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 - ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 - ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 - ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 - ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 - ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 - ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 - ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 - ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 - ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 - ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 - ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 - ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 - ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 - ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 - ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 - ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 - ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 - ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 - ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 - ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 - ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 - ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 - ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 - ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 - ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 - ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 - ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 - ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 - ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 - ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 - ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 - ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 - ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 - ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 - ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 - ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 - ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 - ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 - ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 - ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 - ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 - ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 - ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 - ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 - ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 - ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 - ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 - ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 - ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 - ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 - ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 - ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 - ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 - ERROR_FT_READ_FAILURE syscall.Errno = 415 - ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 - ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 - ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 - 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_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 - ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 - ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 - ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 - ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 - ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 - ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 - ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 - ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 - ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 - ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 - ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 - ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 - ERROR_INVALID_ADDRESS syscall.Errno = 487 - ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 - ERROR_PARTITION_TERMINATING syscall.Errno = 1184 - ERROR_USER_PROFILE_LOAD syscall.Errno = 500 - ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 - ERROR_PIPE_CONNECTED syscall.Errno = 535 - ERROR_PIPE_LISTENING syscall.Errno = 536 - ERROR_VERIFIER_STOP syscall.Errno = 537 - ERROR_ABIOS_ERROR syscall.Errno = 538 - ERROR_WX86_WARNING syscall.Errno = 539 - ERROR_WX86_ERROR syscall.Errno = 540 - ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 - ERROR_UNWIND syscall.Errno = 542 - ERROR_BAD_STACK syscall.Errno = 543 - ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 - ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 - ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 - ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 - ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 - ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 - ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 - ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 - ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 - ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 - ERROR_CANT_WAIT syscall.Errno = 554 - ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 - ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 - ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 - ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 - ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 - ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 - ERROR_INVALID_LDT_SIZE syscall.Errno = 561 - ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 - ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 - ERROR_TOO_MANY_THREADS syscall.Errno = 565 - ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 - ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 - ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 - ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 - ERROR_NET_OPEN_FAILED syscall.Errno = 570 - ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 - ERROR_CONTROL_C_EXIT syscall.Errno = 572 - ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 - ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 - ERROR_APP_INIT_FAILURE syscall.Errno = 575 - ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 - ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 - ERROR_NO_PAGEFILE syscall.Errno = 578 - ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 - ERROR_NO_EVENT_PAIR syscall.Errno = 580 - ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 - ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 - ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 - ERROR_FLOPPY_VOLUME syscall.Errno = 584 - ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 - ERROR_BACKUP_CONTROLLER syscall.Errno = 586 - ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 - ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 - ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 - ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 - ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 - ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 - ERROR_VDM_HARD_ERROR syscall.Errno = 593 - ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 - ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 - ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 - ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 - ERROR_NOT_TINY_STREAM syscall.Errno = 598 - ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 - ERROR_CONVERT_TO_LARGE syscall.Errno = 600 - ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 - ERROR_ALLOCATE_BUCKET syscall.Errno = 602 - ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 - ERROR_INVALID_VARIANT syscall.Errno = 604 - ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 - ERROR_AUDIT_FAILED syscall.Errno = 606 - ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 - ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 - ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 - ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 - ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 - ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 - ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 - ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 - ERROR_PWD_TOO_SHORT syscall.Errno = 615 - ERROR_PWD_TOO_RECENT syscall.Errno = 616 - ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 - ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 - ERROR_INVALID_HW_PROFILE syscall.Errno = 619 - ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 - ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 - ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 - ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 - ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 - ERROR_VALIDATE_CONTINUE syscall.Errno = 625 - ERROR_NO_MORE_MATCHES syscall.Errno = 626 - ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 - ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 - ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 - ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 - ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 - ERROR_NOINTERFACE syscall.Errno = 632 - ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 - ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 - ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 - ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 - ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 - ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 - ERROR_INSUFFICIENT_POWER syscall.Errno = 639 - ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 - ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 - ERROR_PORT_NOT_SET syscall.Errno = 642 - ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 - ERROR_RANGE_NOT_FOUND syscall.Errno = 644 - ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 - ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 - ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 - ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 - ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 - ERROR_MCA_OCCURED syscall.Errno = 651 - ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 - ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 - ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 - ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 - ERROR_HIBERNATION_FAILURE syscall.Errno = 656 - ERROR_PWD_TOO_LONG syscall.Errno = 657 - ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 - ERROR_ASSERTION_FAILURE syscall.Errno = 668 - ERROR_ACPI_ERROR syscall.Errno = 669 - ERROR_WOW_ASSERTION syscall.Errno = 670 - ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 - ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 - ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 - ERROR_PNP_INVALID_ID syscall.Errno = 674 - ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 - ERROR_HANDLES_CLOSED syscall.Errno = 676 - ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 - ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 - ERROR_MEDIA_CHECK syscall.Errno = 679 - ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 - ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 - ERROR_LONGJUMP syscall.Errno = 682 - ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 - ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 - ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 - ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 - ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 - ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 - ERROR_DBG_REPLY_LATER syscall.Errno = 689 - ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 - ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 - ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 - ERROR_DBG_CONTROL_C syscall.Errno = 693 - ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 - ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 - ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 - ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 - ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 - ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 - ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 - ERROR_RXACT_STATE_CREATED syscall.Errno = 701 - ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 - ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 - ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 - ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 - ERROR_RECEIVE_PARTIAL syscall.Errno = 707 - ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 - ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 - ERROR_EVENT_DONE syscall.Errno = 710 - ERROR_EVENT_PENDING syscall.Errno = 711 - ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 - ERROR_FATAL_APP_EXIT syscall.Errno = 713 - ERROR_PREDEFINED_HANDLE syscall.Errno = 714 - ERROR_WAS_UNLOCKED syscall.Errno = 715 - ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 - ERROR_WAS_LOCKED syscall.Errno = 717 - ERROR_LOG_HARD_ERROR syscall.Errno = 718 - ERROR_ALREADY_WIN32 syscall.Errno = 719 - ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 - ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 - ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 - ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 - ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 - ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 - ERROR_HIBERNATED syscall.Errno = 726 - ERROR_RESUME_HIBERNATION syscall.Errno = 727 - ERROR_FIRMWARE_UPDATED syscall.Errno = 728 - ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 - ERROR_WAKE_SYSTEM syscall.Errno = 730 - ERROR_WAIT_1 syscall.Errno = 731 - ERROR_WAIT_2 syscall.Errno = 732 - ERROR_WAIT_3 syscall.Errno = 733 - ERROR_WAIT_63 syscall.Errno = 734 - ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 - ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 - ERROR_USER_APC syscall.Errno = 737 - ERROR_KERNEL_APC syscall.Errno = 738 - ERROR_ALERTED syscall.Errno = 739 - ERROR_ELEVATION_REQUIRED syscall.Errno = 740 - ERROR_REPARSE syscall.Errno = 741 - ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 - ERROR_VOLUME_MOUNTED syscall.Errno = 743 - ERROR_RXACT_COMMITTED syscall.Errno = 744 - ERROR_NOTIFY_CLEANUP syscall.Errno = 745 - ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 - ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 - ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 - ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 - ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 - ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 - ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 - ERROR_CRASH_DUMP syscall.Errno = 753 - ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 - ERROR_REPARSE_OBJECT syscall.Errno = 755 - ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 - ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 - ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 - ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 - ERROR_PROCESS_IN_JOB syscall.Errno = 760 - ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 - ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 - ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 - ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 - ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 - ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 - ERROR_DBG_CONTINUE syscall.Errno = 767 - ERROR_CALLBACK_POP_STACK syscall.Errno = 768 - ERROR_COMPRESSION_DISABLED syscall.Errno = 769 - ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 - ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 - ERROR_ROWSNOTRELEASED syscall.Errno = 772 - ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 - ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 - ERROR_NOT_CAPABLE syscall.Errno = 775 - ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 - ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 - ERROR_BADSTARTPOSITION syscall.Errno = 778 - ERROR_MEMORY_HARDWARE syscall.Errno = 779 - ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 - ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 - ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 - ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 - ERROR_MCA_EXCEPTION syscall.Errno = 784 - ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 - ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 - ERROR_ABANDON_HIBERFILE syscall.Errno = 787 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 - ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 - ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 - ERROR_BAD_MCFG_TABLE syscall.Errno = 791 - ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 - ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 - ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 - ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 - ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 - ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 - ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 - ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 - ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 - ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 - ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 - ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 - ERROR_NO_ACE_CONDITION syscall.Errno = 804 - ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 - ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 - ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 - ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 - ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 - ERROR_QUOTA_ACTIVITY syscall.Errno = 810 - ERROR_HANDLE_REVOKED syscall.Errno = 811 - ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 - ERROR_CPU_SET_INVALID syscall.Errno = 813 - ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 - ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 - ERROR_EA_ACCESS_DENIED syscall.Errno = 994 - ERROR_OPERATION_ABORTED syscall.Errno = 995 - ERROR_IO_INCOMPLETE syscall.Errno = 996 - ERROR_IO_PENDING syscall.Errno = 997 - ERROR_NOACCESS syscall.Errno = 998 - ERROR_SWAPERROR syscall.Errno = 999 - ERROR_STACK_OVERFLOW syscall.Errno = 1001 - ERROR_INVALID_MESSAGE syscall.Errno = 1002 - ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 - ERROR_INVALID_FLAGS syscall.Errno = 1004 - ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 - ERROR_FILE_INVALID syscall.Errno = 1006 - ERROR_FULLSCREEN_MODE syscall.Errno = 1007 - ERROR_NO_TOKEN syscall.Errno = 1008 - ERROR_BADDB syscall.Errno = 1009 - ERROR_BADKEY syscall.Errno = 1010 - ERROR_CANTOPEN syscall.Errno = 1011 - ERROR_CANTREAD syscall.Errno = 1012 - ERROR_CANTWRITE syscall.Errno = 1013 - ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 - ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 - ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 - ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 - ERROR_KEY_DELETED syscall.Errno = 1018 - ERROR_NO_LOG_SPACE syscall.Errno = 1019 - ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 - ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 - ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 - ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 - ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 - ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 - ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 - ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 - ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 - ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 - ERROR_SERVICE_DISABLED syscall.Errno = 1058 - ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 - ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 - ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 - ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 - ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 - ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 - ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 - ERROR_PROCESS_ABORTED syscall.Errno = 1067 - ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 - ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 - ERROR_SERVICE_START_HANG syscall.Errno = 1070 - ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 - ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 - ERROR_SERVICE_EXISTS syscall.Errno = 1073 - ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 - ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 - ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 - ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 - ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 - ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 - ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 - ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 - ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 - ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 - ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 - ERROR_END_OF_MEDIA syscall.Errno = 1100 - ERROR_FILEMARK_DETECTED syscall.Errno = 1101 - ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 - ERROR_SETMARK_DETECTED syscall.Errno = 1103 - ERROR_NO_DATA_DETECTED syscall.Errno = 1104 - ERROR_PARTITION_FAILURE syscall.Errno = 1105 - ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 - ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 - ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 - ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 - ERROR_MEDIA_CHANGED syscall.Errno = 1110 - ERROR_BUS_RESET syscall.Errno = 1111 - ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 - ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 - ERROR_DLL_INIT_FAILED syscall.Errno = 1114 - ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 - ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 - ERROR_IO_DEVICE syscall.Errno = 1117 - ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 - ERROR_IRQ_BUSY syscall.Errno = 1119 - ERROR_MORE_WRITES syscall.Errno = 1120 - ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 - ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 - ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 - ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 - ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 - ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 - ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 - ERROR_DISK_RESET_FAILED syscall.Errno = 1128 - ERROR_EOM_OVERFLOW syscall.Errno = 1129 - ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 - ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 - ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 - ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 - ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 - ERROR_TOO_MANY_LINKS syscall.Errno = 1142 - ERROR_OLD_WIN_VERSION syscall.Errno = 1150 - ERROR_APP_WRONG_OS syscall.Errno = 1151 - ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 - ERROR_RMODE_APP syscall.Errno = 1153 - ERROR_INVALID_DLL syscall.Errno = 1154 - ERROR_NO_ASSOCIATION syscall.Errno = 1155 - ERROR_DDE_FAIL syscall.Errno = 1156 - ERROR_DLL_NOT_FOUND syscall.Errno = 1157 - ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 - ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 - ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 - ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 - ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 - ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 - ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 - ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 - ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 - ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 - ERROR_NOT_FOUND syscall.Errno = 1168 - ERROR_NO_MATCH syscall.Errno = 1169 - ERROR_SET_NOT_FOUND syscall.Errno = 1170 - ERROR_POINT_NOT_FOUND syscall.Errno = 1171 - ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 - ERROR_NO_VOLUME_ID syscall.Errno = 1173 - ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 - ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 - ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 - ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 - ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 - ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 - ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 - ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 - ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 - ERROR_BAD_DEVICE syscall.Errno = 1200 - ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 - ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 - ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 - ERROR_BAD_PROVIDER syscall.Errno = 1204 - ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 - ERROR_BAD_PROFILE syscall.Errno = 1206 - ERROR_NOT_CONTAINER syscall.Errno = 1207 - ERROR_EXTENDED_ERROR syscall.Errno = 1208 - ERROR_INVALID_GROUPNAME syscall.Errno = 1209 - ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 - ERROR_INVALID_EVENTNAME syscall.Errno = 1211 - ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 - ERROR_INVALID_SERVICENAME syscall.Errno = 1213 - ERROR_INVALID_NETNAME syscall.Errno = 1214 - ERROR_INVALID_SHARENAME syscall.Errno = 1215 - ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 - ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 - ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 - ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 - ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 - ERROR_DUP_DOMAINNAME syscall.Errno = 1221 - ERROR_NO_NETWORK syscall.Errno = 1222 - ERROR_CANCELLED syscall.Errno = 1223 - ERROR_USER_MAPPED_FILE syscall.Errno = 1224 - ERROR_CONNECTION_REFUSED syscall.Errno = 1225 - ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 - ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 - ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 - ERROR_CONNECTION_INVALID syscall.Errno = 1229 - ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 - ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 - ERROR_HOST_UNREACHABLE syscall.Errno = 1232 - ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 - ERROR_PORT_UNREACHABLE syscall.Errno = 1234 - ERROR_REQUEST_ABORTED syscall.Errno = 1235 - ERROR_CONNECTION_ABORTED syscall.Errno = 1236 - ERROR_RETRY syscall.Errno = 1237 - ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 - ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 - ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 - ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 - ERROR_ALREADY_REGISTERED syscall.Errno = 1242 - ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 - ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 - ERROR_NOT_LOGGED_ON syscall.Errno = 1245 - ERROR_CONTINUE syscall.Errno = 1246 - ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 - ERROR_NO_MORE_DEVICES syscall.Errno = 1248 - ERROR_NO_SUCH_SITE syscall.Errno = 1249 - ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 - ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 - ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 - ERROR_BAD_USER_PROFILE syscall.Errno = 1253 - ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 - ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 - ERROR_HOST_DOWN syscall.Errno = 1256 - ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 - ERROR_NON_DOMAIN_SID syscall.Errno = 1258 - ERROR_APPHELP_BLOCK syscall.Errno = 1259 - ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 - ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 - ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 - ERROR_PKINIT_FAILURE syscall.Errno = 1263 - ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 - ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 - ERROR_MACHINE_LOCKED syscall.Errno = 1271 - ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 - ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 - ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 - ERROR_DRIVER_BLOCKED syscall.Errno = 1275 - ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 - ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 - ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 - ERROR_RECOVERY_FAILURE syscall.Errno = 1279 - ERROR_ALREADY_FIBER syscall.Errno = 1280 - ERROR_ALREADY_THREAD syscall.Errno = 1281 - ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 - ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 - ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 - ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 - ERROR_VDM_DISALLOWED syscall.Errno = 1286 - ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 - ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 - ERROR_BEYOND_VDL syscall.Errno = 1289 - ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 - ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 - ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 - ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 - ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 - ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 - ERROR_CONTENT_BLOCKED syscall.Errno = 1296 - ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 - ERROR_APP_HANG syscall.Errno = 1298 - ERROR_INVALID_LABEL syscall.Errno = 1299 - ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 - ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 - ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 - ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 - ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 - ERROR_UNKNOWN_REVISION syscall.Errno = 1305 - ERROR_REVISION_MISMATCH syscall.Errno = 1306 - ERROR_INVALID_OWNER syscall.Errno = 1307 - ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 - ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 - ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 - ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 - ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 - ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 - ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 - ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 - ERROR_USER_EXISTS syscall.Errno = 1316 - ERROR_NO_SUCH_USER syscall.Errno = 1317 - ERROR_GROUP_EXISTS syscall.Errno = 1318 - ERROR_NO_SUCH_GROUP syscall.Errno = 1319 - ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 - ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 - ERROR_LAST_ADMIN syscall.Errno = 1322 - ERROR_WRONG_PASSWORD syscall.Errno = 1323 - ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 - ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 - ERROR_LOGON_FAILURE syscall.Errno = 1326 - ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 - ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 - ERROR_INVALID_WORKSTATION syscall.Errno = 1329 - ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 - ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 - ERROR_NONE_MAPPED syscall.Errno = 1332 - ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 - ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 - ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 - ERROR_INVALID_ACL syscall.Errno = 1336 - ERROR_INVALID_SID syscall.Errno = 1337 - ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 - ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 - ERROR_SERVER_DISABLED syscall.Errno = 1341 - ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 - ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 - ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 - ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 - ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 - ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 - ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 - ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 - ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 - ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 - ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 - ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 - ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 - ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 - ERROR_DOMAIN_EXISTS syscall.Errno = 1356 - ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 - ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 - ERROR_INTERNAL_ERROR syscall.Errno = 1359 - ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 - ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 - ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 - ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 - ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 - ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 - ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 - ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 - ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 - ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 - ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 - ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 - ERROR_SPECIAL_GROUP syscall.Errno = 1372 - ERROR_SPECIAL_USER syscall.Errno = 1373 - ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 - ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 - ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 - ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 - ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 - ERROR_ALIAS_EXISTS syscall.Errno = 1379 - ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 - ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 - ERROR_SECRET_TOO_LONG syscall.Errno = 1382 - ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 - ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 - ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 - ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 - ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 - ERROR_INVALID_MEMBER syscall.Errno = 1388 - ERROR_TOO_MANY_SIDS syscall.Errno = 1389 - ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 - ERROR_NO_INHERITANCE syscall.Errno = 1391 - ERROR_FILE_CORRUPT syscall.Errno = 1392 - ERROR_DISK_CORRUPT syscall.Errno = 1393 - ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 - ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 - ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 - ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 - ERROR_TIME_SKEW syscall.Errno = 1398 - ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 - ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 - ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 - ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 - ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 - ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 - ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 - ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 - ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 - ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 - ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 - ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 - ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 - ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 - ERROR_INVALID_INDEX syscall.Errno = 1413 - ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 - ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 - ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 - ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 - ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 - ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 - ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 - ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 - ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 - ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 - ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 - ERROR_DC_NOT_FOUND syscall.Errno = 1425 - ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 - ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 - ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 - ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 - ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 - ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 - ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 - ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 - ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 - ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 - ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 - ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 - ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 - ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 - ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 - ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 - ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 - ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 - ERROR_INVALID_THREAD_ID syscall.Errno = 1444 - ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 - ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 - ERROR_NO_SCROLLBARS syscall.Errno = 1447 - ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 - ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 - ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 - ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 - ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 - ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 - ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 - ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 - ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 - ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 - ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 - ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 - ERROR_TIMEOUT syscall.Errno = 1460 - ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 - ERROR_INCORRECT_SIZE syscall.Errno = 1462 - ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 - ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 - ERROR_XML_PARSE_ERROR syscall.Errno = 1465 - ERROR_XMLDSIG_ERROR syscall.Errno = 1466 - ERROR_RESTART_APPLICATION syscall.Errno = 1467 - ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 - ERROR_AUTHIP_FAILURE syscall.Errno = 1469 - ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 - ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 - ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 - ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 - ERROR_LOG_FILE_FULL syscall.Errno = 1502 - ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 - ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 - ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 - ERROR_INVALID_TASK_NAME syscall.Errno = 1550 - ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 - ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 - ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 - ERROR_INSTALL_USEREXIT syscall.Errno = 1602 - ERROR_INSTALL_FAILURE syscall.Errno = 1603 - ERROR_INSTALL_SUSPEND syscall.Errno = 1604 - ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 - ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 - ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 - ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 - ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 - ERROR_BAD_CONFIGURATION syscall.Errno = 1610 - ERROR_INDEX_ABSENT syscall.Errno = 1611 - ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 - ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 - ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 - ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 - ERROR_INVALID_FIELD syscall.Errno = 1616 - ERROR_DEVICE_REMOVED syscall.Errno = 1617 - ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 - ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 - ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 - ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 - ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 - ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 - ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 - ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 - ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 - ERROR_FUNCTION_FAILED syscall.Errno = 1627 - ERROR_INVALID_TABLE syscall.Errno = 1628 - ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 - ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 - ERROR_CREATE_FAILED syscall.Errno = 1631 - ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 - ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 - ERROR_INSTALL_NOTUSED syscall.Errno = 1634 - ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 - ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 - ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 - ERROR_PRODUCT_VERSION syscall.Errno = 1638 - ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 - ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 - ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 - ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 - ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 - ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 - ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 - ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 - ERROR_UNKNOWN_PATCH syscall.Errno = 1647 - ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 - ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 - ERROR_INVALID_PATCH_XML syscall.Errno = 1650 - ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 - ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 - ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 - ERROR_INSTALL_REJECTED syscall.Errno = 1654 - ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 - ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 - ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 - ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 - ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 - RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 - RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 - RPC_S_INVALID_BINDING syscall.Errno = 1702 - RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 - RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 - RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 - RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 - RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 - RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 - RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 - RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 - RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 - RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 - RPC_S_ALREADY_LISTENING syscall.Errno = 1713 - RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 - RPC_S_NOT_LISTENING syscall.Errno = 1715 - RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 - RPC_S_UNKNOWN_IF syscall.Errno = 1717 - RPC_S_NO_BINDINGS syscall.Errno = 1718 - RPC_S_NO_PROTSEQS syscall.Errno = 1719 - RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 - RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 - RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 - RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 - RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 - RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 - RPC_S_CALL_FAILED syscall.Errno = 1726 - RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 - RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 - RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 - RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 - RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 - RPC_S_INVALID_TAG syscall.Errno = 1733 - RPC_S_INVALID_BOUND syscall.Errno = 1734 - RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 - RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 - RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 - RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 - RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 - RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 - RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 - RPC_S_STRING_TOO_LONG syscall.Errno = 1743 - RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 - RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 - RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 - RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 - RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 - RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 - RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 - EPT_S_INVALID_ENTRY syscall.Errno = 1751 - EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 - EPT_S_NOT_REGISTERED syscall.Errno = 1753 - RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 - RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 - RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 - RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 - RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 - RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 - RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 - RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 - RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 - RPC_S_INVALID_NAF_ID syscall.Errno = 1763 - RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 - RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 - RPC_S_INTERNAL_ERROR syscall.Errno = 1766 - RPC_S_ZERO_DIVIDE syscall.Errno = 1767 - RPC_S_ADDRESS_ERROR syscall.Errno = 1768 - RPC_S_FP_DIV_ZERO syscall.Errno = 1769 - RPC_S_FP_UNDERFLOW syscall.Errno = 1770 - RPC_S_FP_OVERFLOW syscall.Errno = 1771 - RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 - RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 - RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 - RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 - RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 - RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 - RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 - RPC_X_NULL_REF_POINTER syscall.Errno = 1780 - RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 - RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 - RPC_X_BAD_STUB_DATA syscall.Errno = 1783 - ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 - ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 - ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 - ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 - ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 - ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 - ERROR_TRUST_FAILURE syscall.Errno = 1790 - RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 - ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 - ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 - ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 - ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 - ERROR_UNKNOWN_PORT syscall.Errno = 1796 - ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 - ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 - ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 - ERROR_INVALID_PRIORITY syscall.Errno = 1800 - ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 - ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 - ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 - ERROR_INVALID_DATATYPE syscall.Errno = 1804 - ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 - RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 - ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 - ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 - ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 - ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 - ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 - ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 - ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 - ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 - ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 - ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 - RPC_S_NO_INTERFACES syscall.Errno = 1817 - RPC_S_CALL_CANCELLED syscall.Errno = 1818 - RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 - RPC_S_COMM_FAILURE syscall.Errno = 1820 - RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 - RPC_S_NO_PRINC_NAME syscall.Errno = 1822 - RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 - RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 - RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 - RPC_S_NOT_CANCELLED syscall.Errno = 1826 - RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 - RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 - RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 - RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 - RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 - RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 - RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 - RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 - RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 - RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 - RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 - EPT_S_CANT_CREATE syscall.Errno = 1899 - RPC_S_INVALID_OBJECT syscall.Errno = 1900 - ERROR_INVALID_TIME syscall.Errno = 1901 - ERROR_INVALID_FORM_NAME syscall.Errno = 1902 - ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 - ERROR_ALREADY_WAITING syscall.Errno = 1904 - ERROR_PRINTER_DELETED syscall.Errno = 1905 - ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 - ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 - ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 - ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 - OR_INVALID_OXID syscall.Errno = 1910 - OR_INVALID_OID syscall.Errno = 1911 - OR_INVALID_SET syscall.Errno = 1912 - RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 - RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 - RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 - RPC_X_PIPE_CLOSED syscall.Errno = 1916 - RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 - RPC_X_PIPE_EMPTY syscall.Errno = 1918 - ERROR_NO_SITENAME syscall.Errno = 1919 - ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 - ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 - RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 - RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 - RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 - RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 - RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 - RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 - RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 - RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 - ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 - ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 - ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 - ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 - ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 - ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 - ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 - ERROR_NTLM_BLOCKED syscall.Errno = 1937 - ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 - ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 - ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 - ERROR_BAD_DRIVER syscall.Errno = 2001 - ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 - ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 - ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 - ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 - ERROR_INVALID_CMM syscall.Errno = 2010 - ERROR_INVALID_PROFILE syscall.Errno = 2011 - ERROR_TAG_NOT_FOUND syscall.Errno = 2012 - ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 - ERROR_DUPLICATE_TAG syscall.Errno = 2014 - ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 - ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 - ERROR_INVALID_COLORSPACE syscall.Errno = 2017 - ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 - ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 - ERROR_INVALID_TRANSFORM syscall.Errno = 2020 - ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 - ERROR_INVALID_COLORINDEX syscall.Errno = 2022 - ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 - ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 - ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 - ERROR_BAD_USERNAME syscall.Errno = 2202 - ERROR_NOT_CONNECTED syscall.Errno = 2250 - ERROR_OPEN_FILES syscall.Errno = 2401 - ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 - ERROR_DEVICE_IN_USE syscall.Errno = 2404 - ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 - ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 - ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 - ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 - ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 - ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 - ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 - ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 - ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 - ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 - ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 - ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 - ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 - ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 - ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 - ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 - ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 - ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 - ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 - ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 - ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 - ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 - ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 - ERROR_REQUEST_PAUSED syscall.Errno = 3050 - ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 - ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 - ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 - ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 - ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 - ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 - ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 - ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 - ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 - ERROR_WINS_INTERNAL syscall.Errno = 4000 - ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 - ERROR_STATIC_INIT syscall.Errno = 4002 - ERROR_INC_BACKUP syscall.Errno = 4003 - ERROR_FULL_BACKUP syscall.Errno = 4004 - ERROR_REC_NON_EXISTENT syscall.Errno = 4005 - ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 - PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 - PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 - PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 - PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 - PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 - PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 - PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 - PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 - PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 - PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 - PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 - PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 - PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 - PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 - PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 - PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 - PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 - ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 - ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 - ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 - ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 - ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 - ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 - ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 - ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 - ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 - ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 - ERROR_WMI_DP_FAILED syscall.Errno = 4209 - ERROR_WMI_INVALID_MOF syscall.Errno = 4210 - ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 - ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 - ERROR_WMI_READ_ONLY syscall.Errno = 4213 - ERROR_WMI_SET_FAILURE syscall.Errno = 4214 - ERROR_NOT_APPCONTAINER syscall.Errno = 4250 - ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 - ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 - ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 - ERROR_INVALID_MEDIA syscall.Errno = 4300 - ERROR_INVALID_LIBRARY syscall.Errno = 4301 - ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 - ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 - ERROR_MEDIA_OFFLINE syscall.Errno = 4304 - ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 - ERROR_EMPTY syscall.Errno = 4306 - ERROR_NOT_EMPTY syscall.Errno = 4307 - ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 - ERROR_RESOURCE_DISABLED syscall.Errno = 4309 - ERROR_INVALID_CLEANER syscall.Errno = 4310 - ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 - ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 - ERROR_DATABASE_FAILURE syscall.Errno = 4313 - ERROR_DATABASE_FULL syscall.Errno = 4314 - ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 - ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 - ERROR_INVALID_OPERATION syscall.Errno = 4317 - ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 - ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 - ERROR_REQUEST_REFUSED syscall.Errno = 4320 - ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 - ERROR_LIBRARY_FULL syscall.Errno = 4322 - ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 - ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 - ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 - ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 - ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 - ERROR_TRANSPORT_FULL syscall.Errno = 4328 - ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 - ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 - ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 - ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 - ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 - ERROR_UNEXPECTED_OMID syscall.Errno = 4334 - ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 - ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 - ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 - ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 - ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 - ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 - ERROR_IEPORT_FULL syscall.Errno = 4341 - ERROR_FILE_OFFLINE syscall.Errno = 4350 - ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 - ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 - ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 - ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 - ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 - ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 - ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 - ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 - ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 - ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 - ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 - ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 - ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 - ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 - ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 - ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 - ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 - ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 - ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 - ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 - ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 - ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 - ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 - ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 - ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 - ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 - ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 - ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 - ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 - ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 - ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 - ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 - ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 - ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 - ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 - ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 - ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 - ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 - ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 - ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 - 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 - ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 - ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 - ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 - ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 - ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 - ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 - ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 - ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 - ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 - ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 - ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 - ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 - ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 - ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 - ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 - ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 - ERROR_OBJECT_IN_LIST syscall.Errno = 5011 - ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 - ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 - ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 - ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 - ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 - ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 - ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 - ERROR_RESOURCE_ONLINE syscall.Errno = 5019 - ERROR_QUORUM_RESOURCE syscall.Errno = 5020 - ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 - ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 - ERROR_INVALID_STATE syscall.Errno = 5023 - ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 - ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 - ERROR_CORE_RESOURCE syscall.Errno = 5026 - ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 - ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 - ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 - ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 - ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 - ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 - ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 - ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 - ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 - ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 - ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 - ERROR_RESOURCE_FAILED syscall.Errno = 5038 - ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 - ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 - ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 - ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 - ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 - ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 - ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 - ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 - ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 - ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 - ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 - ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 - ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 - ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 - ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 - ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 - ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 - ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 - ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 - ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 - ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 - ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 - ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 - ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 - ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 - ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 - ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 - ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 - ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 - ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 - ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 - ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 - ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 - ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 - ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 - ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 - ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 - ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 - ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 - ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 - ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 - ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 - ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 - ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 - ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 - ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 - ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 - ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 - ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 - ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 - ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 - ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 - ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 - ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 - ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 - ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 - ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 - ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 - ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 - ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 - ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 - ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 - ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 - ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 - ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 - ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 - ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 - ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 - ERROR_CLUSTER_POISONED syscall.Errno = 5907 - ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 - ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 - ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 - ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 - ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 - ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 - ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 - ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 - ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 - ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 - ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 - ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 - ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 - ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 - ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 - ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 - ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 - ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 - ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 - ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 - ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 - ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 - ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 - ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 - ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 - ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 - ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 - ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 - ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 - ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 - ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 - ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 - ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 - ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 - ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 - ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 - ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 - ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 - ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 - ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 - ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 - ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 - ERROR_NON_CSV_PATH syscall.Errno = 5950 - ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 - ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 - ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 - ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 - ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 - ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 - ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 - ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 - ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 - ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 - ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 - ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 - ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 - ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 - ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 - ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 - ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 - ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 - ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 - ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 - ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 - ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 - ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 - ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 - ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 - ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 - ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 - ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 - ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 - ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 - ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 - ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 - ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 - ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 - ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 - ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 - ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 - ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 - ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 - ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 - ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 - ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 - ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 - ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 - ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 - ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 - ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 - ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 - ERROR_DECRYPTION_FAILED syscall.Errno = 6001 - ERROR_FILE_ENCRYPTED syscall.Errno = 6002 - ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 - ERROR_NO_EFS syscall.Errno = 6004 - ERROR_WRONG_EFS syscall.Errno = 6005 - ERROR_NO_USER_KEYS syscall.Errno = 6006 - ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 - ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 - ERROR_FILE_READ_ONLY syscall.Errno = 6009 - ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 - ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 - ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 - ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 - ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 - ERROR_EFS_DISABLED syscall.Errno = 6015 - ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 - ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 - ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 - ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 - 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 - ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 - ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 - ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 - ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 - ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 - ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 - ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 - ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 - ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 - ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 - ERROR_LOG_NO_RESTART syscall.Errno = 6611 - ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 - ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 - ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 - ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 - ERROR_LOG_CANT_DELETE syscall.Errno = 6616 - ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 - ERROR_LOG_START_OF_LOG syscall.Errno = 6618 - ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 - ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 - ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 - ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 - ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 - ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 - ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 - ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 - ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 - ERROR_LOG_FULL syscall.Errno = 6628 - ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 - ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 - ERROR_LOG_DEDICATED syscall.Errno = 6631 - ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 - ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 - ERROR_LOG_EPHEMERAL syscall.Errno = 6634 - ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 - ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 - ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 - ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 - ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 - ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 - ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 - ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 - ERROR_LOG_STATE_INVALID syscall.Errno = 6643 - ERROR_LOG_PINNED syscall.Errno = 6644 - ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 - ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 - ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 - ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 - ERROR_INVALID_TRANSACTION syscall.Errno = 6700 - ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 - ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 - ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 - ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 - ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 - ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 - ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 - ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 - ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 - ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 - ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 - ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 - ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 - ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 - ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 - ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 - ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 - ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 - ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 - ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 - ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 - ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 - ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 - ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 - ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 - ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 - ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 - ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 - ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 - ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 - ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 - ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 - ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 - ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 - ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 - ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 - ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 - ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 - ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 - ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 - ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 - ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 - ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 - ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 - ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 - ERROR_NO_TXF_METADATA syscall.Errno = 6816 - ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 - ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 - ERROR_RM_DISCONNECTED syscall.Errno = 6819 - ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 - ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 - ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 - ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 - ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 - ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 - ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 - ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 - ERROR_TM_VOLATILE syscall.Errno = 6828 - ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 - ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 - ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 - ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 - ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 - ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 - ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 - ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 - ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 - ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 - ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 - ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 - ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 - ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 - ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 - ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 - ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 - ERROR_FLOATED_SECTION syscall.Errno = 6846 - ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 - ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 - ERROR_BAD_CLUSTERS syscall.Errno = 6849 - ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 - ERROR_VOLUME_DIRTY syscall.Errno = 6851 - ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 - ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 - ERROR_EXPIRED_HANDLE syscall.Errno = 6854 - ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 - ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 - ERROR_CTX_INVALID_PD syscall.Errno = 7002 - ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 - ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 - ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 - ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 - ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 - ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 - ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 - ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 - ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 - ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 - ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 - ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 - ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 - ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 - ERROR_CTX_TD_ERROR syscall.Errno = 7017 - ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 - ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 - ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 - ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 - ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 - ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 - ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 - ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 - ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 - ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 - ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 - ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 - ERROR_CTX_INVALID_WD syscall.Errno = 7049 - ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 - ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 - ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 - ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 - ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 - ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 - ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 - ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 - ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 - ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 - ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 - ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 - ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 - ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 - ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 - ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 - ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 - ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 - ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 - ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 - ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 - FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 - FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 - FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 - FRS_ERR_INTERNAL_API syscall.Errno = 8004 - FRS_ERR_INTERNAL syscall.Errno = 8005 - FRS_ERR_SERVICE_COMM syscall.Errno = 8006 - FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 - FRS_ERR_AUTHENTICATION syscall.Errno = 8008 - FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 - FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 - FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 - FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 - FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 - FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 - FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 - FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 - FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 - DS_S_SUCCESS = ERROR_SUCCESS - ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 - ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 - ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 - ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 - ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 - ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 - ERROR_DS_BUSY syscall.Errno = 8206 - ERROR_DS_UNAVAILABLE syscall.Errno = 8207 - ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 - ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 - ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 - ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 - ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 - ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 - ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 - ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 - ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 - ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 - ERROR_SHARED_POLICY syscall.Errno = 8218 - ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 - ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 - ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 - ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 - ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 - ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 - ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 - ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 - ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 - ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 - ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 - ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 - ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 - ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 - ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 - ERROR_DS_REFERRAL syscall.Errno = 8235 - ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 - ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 - ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 - ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 - ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 - ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 - ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 - ERROR_DS_IS_LEAF syscall.Errno = 8243 - ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 - ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 - ERROR_DS_LOOP_DETECT syscall.Errno = 8246 - ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 - ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 - ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 - ERROR_DS_SERVER_DOWN syscall.Errno = 8250 - ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 - ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 - ERROR_DS_DECODING_ERROR syscall.Errno = 8253 - ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 - ERROR_DS_PARAM_ERROR syscall.Errno = 8255 - ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 - ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 - ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 - ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 - ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 - ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 - ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 - ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 - ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 - ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 - ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 - ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 - ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 - ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 - ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 - ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 - ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 - ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 - ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 - ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 - ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 - ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 - ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 - ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 - ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 - ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 - ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 - ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 - ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 - ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 - ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 - ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 - ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 - ERROR_DS_NO_CHAINING syscall.Errno = 8327 - ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 - ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 - ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 - ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 - ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 - ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 - ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 - ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 - ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 - ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 - ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 - ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 - ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 - ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 - ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 - ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 - ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 - ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 - ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 - ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 - ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 - ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 - ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 - ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 - ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 - ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 - ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 - ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 - ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 - ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 - ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 - ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 - ERROR_DS_INVALID_DMD syscall.Errno = 8360 - ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 - ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 - ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 - ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 - ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 - ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 - ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 - ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 - ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 - ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 - ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 - ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 - ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 - ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 - ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 - ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 - ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 - ERROR_DS_DUP_RDN syscall.Errno = 8378 - ERROR_DS_DUP_OID syscall.Errno = 8379 - ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 - ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 - ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 - ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 - ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 - ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 - ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 - ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 - ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 - ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 - ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 - ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 - ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 - ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 - ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 - ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 - ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 - ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 - ERROR_DS_CANT_DELETE syscall.Errno = 8398 - ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 - ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 - ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 - ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 - ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 - ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 - ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 - ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 - ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 - ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 - ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 - ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 - ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 - ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 - ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 - ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 - ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 - ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 - ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 - ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 - ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 - ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 - ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 - ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 - ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 - ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 - ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 - ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 - ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 - ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 - ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 - ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 - ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 - ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 - ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 - ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 - ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 - ERROR_DS_DRA_GENERIC syscall.Errno = 8436 - ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 - ERROR_DS_DRA_BUSY syscall.Errno = 8438 - ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 - ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 - ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 - ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 - ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 - ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 - ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 - ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 - ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 - ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 - ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 - ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 - ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 - ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 - ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 - ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 - ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 - ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 - ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 - ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 - ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 - ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 - ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 - ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 - ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 - ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 - ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 - ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 - ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 - ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 - ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 - ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 - ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 - ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 - ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 - ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 - ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 - ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 - ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 - ERROR_DS_DS_REQUIRED syscall.Errno = 8478 - ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 - ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 - ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 - ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 - ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 - ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 - ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 - ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 - ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 - ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 - ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 - ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 - ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 - ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 - ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 - ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 - ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 - ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 - ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 - ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 - ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 - ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 - ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 - ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 - ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 - ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 - ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 - ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 - ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 - ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 - ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 - ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 - ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 - ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 - ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 - ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 - ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 - ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 - ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 - ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 - ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 - ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 - ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 - ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 - ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 - ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 - ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 - ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 - ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 - ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 - ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 - ERROR_DS_CANT_START syscall.Errno = 8531 - ERROR_DS_INIT_FAILURE syscall.Errno = 8532 - ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 - ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 - ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 - ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 - ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 - ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 - ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 - ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 - ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 - ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 - ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 - ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 - ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 - ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 - ERROR_DS_GC_REQUIRED syscall.Errno = 8547 - ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 - ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 - ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 - ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 - ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 - ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 - ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 - ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 - ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 - ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 - ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 - ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 - ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 - ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 - ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 - ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 - ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 - ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 - ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 - ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 - ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 - ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 - ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 - ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 - ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 - ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 - ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 - ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 - ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 - ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 - ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 - ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 - ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 - ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 - ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 - ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 - ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 - ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 - ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 - ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 - ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 - ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 - ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 - ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 - ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 - ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 - ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 - ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 - ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 - ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 - ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 - ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 - ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 - ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 - ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 - ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 - ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 - ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 - ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 - ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 - ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 - ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 - ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 - ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 - ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 - ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 - ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 - ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 - ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 - ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 - ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 - ERROR_NO_SECRETS syscall.Errno = 8620 - ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 - ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 - ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 - ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 - ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 - ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 - ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 - ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 - ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 - ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 - ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 - ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 - ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 - ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 - ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 - ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 - ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 - ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 - ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 - ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 - ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 - ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 - ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 - ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 - ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 - ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 - ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 - ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 - ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 - ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 - DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 - DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS - DNS_ERROR_MASK syscall.Errno = 0x00002328 - DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 - DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 - DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 - DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 - DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 - DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 - DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 - DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 - DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 - DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 - DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 - DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 - DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 - DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME - DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 - DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 - DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 - DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 - DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 - DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 - DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 - DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 - DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 - DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 - DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 - DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 - DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 - DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 - DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 - DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 - DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 - DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 - DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 - DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 - DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 - DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 - DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 - DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 - DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 - DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 - DNS_ERROR_INVALID_XML syscall.Errno = 9126 - DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 - DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 - DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 - DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 - DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 - DNS_INFO_NO_RECORDS syscall.Errno = 9501 - DNS_ERROR_BAD_PACKET syscall.Errno = 9502 - DNS_ERROR_NO_PACKET syscall.Errno = 9503 - DNS_ERROR_RCODE syscall.Errno = 9504 - DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 - DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET - DNS_REQUEST_PENDING syscall.Errno = 9506 - DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY - DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME - DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA - DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 - DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 - DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 - DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 - DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 - DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 - DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 - DNS_STATUS_FQDN syscall.Errno = 9557 - DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 - DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 - DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 - DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 - DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 - DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 - DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 - DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 - DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 - DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 - DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 - DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 - DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 - DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 - DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 - DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 - DNS_ERROR_ZONE_BASE syscall.Errno = 9600 - DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 - DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 - DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 - DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 - DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 - DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 - DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 - DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 - DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 - DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 - DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 - DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 - DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 - DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 - DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 - DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 - DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 - DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 - DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 - DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 - DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 - DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 - DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 - DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 - DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 - DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 - DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 - DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 - DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 - DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 - DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 - DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 - DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 - DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 - DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 - DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 - DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 - DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 - DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 - DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 - DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 - DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 - DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 - DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 - DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 - DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 - DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 - DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 - DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 - DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 - DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 - DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 - DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 - DNS_ERROR_AXFR syscall.Errno = 9752 - DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 - DNS_ERROR_SECURE_BASE syscall.Errno = 9800 - DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 - DNS_ERROR_SETUP_BASE syscall.Errno = 9850 - DNS_ERROR_NO_TCPIP syscall.Errno = 9851 - DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 - DNS_ERROR_DP_BASE syscall.Errno = 9900 - DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 - DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 - DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 - DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 - DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 - DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 - DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 - DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 - DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 - DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 - DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 - DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 - DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 - DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 - DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 - DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 - DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 - DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 - DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 - DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 - DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 - DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 - DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 - DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 - DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 - DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 - DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 - DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 - DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 - DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 - DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 - DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 - DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 - DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 - DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 - DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 - DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 - DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 - DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 - DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 - DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 - DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 - DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 - DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 - DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 - DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 - DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 - DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 - DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 - DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 - DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 - DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 - DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 - DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 - DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 - DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 - DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 - WSABASEERR syscall.Errno = 10000 - WSAEINTR syscall.Errno = 10004 - WSAEBADF syscall.Errno = 10009 - WSAEACCES syscall.Errno = 10013 - WSAEFAULT syscall.Errno = 10014 - WSAEINVAL syscall.Errno = 10022 - WSAEMFILE syscall.Errno = 10024 - WSAEWOULDBLOCK syscall.Errno = 10035 - WSAEINPROGRESS syscall.Errno = 10036 - WSAEALREADY syscall.Errno = 10037 - WSAENOTSOCK syscall.Errno = 10038 - WSAEDESTADDRREQ syscall.Errno = 10039 - WSAEMSGSIZE syscall.Errno = 10040 - WSAEPROTOTYPE syscall.Errno = 10041 - WSAENOPROTOOPT syscall.Errno = 10042 - WSAEPROTONOSUPPORT syscall.Errno = 10043 - WSAESOCKTNOSUPPORT syscall.Errno = 10044 - WSAEOPNOTSUPP syscall.Errno = 10045 - WSAEPFNOSUPPORT syscall.Errno = 10046 - WSAEAFNOSUPPORT syscall.Errno = 10047 - WSAEADDRINUSE syscall.Errno = 10048 - WSAEADDRNOTAVAIL syscall.Errno = 10049 - WSAENETDOWN syscall.Errno = 10050 - WSAENETUNREACH syscall.Errno = 10051 - WSAENETRESET syscall.Errno = 10052 - WSAECONNABORTED syscall.Errno = 10053 - WSAECONNRESET syscall.Errno = 10054 - WSAENOBUFS syscall.Errno = 10055 - WSAEISCONN syscall.Errno = 10056 - WSAENOTCONN syscall.Errno = 10057 - WSAESHUTDOWN syscall.Errno = 10058 - WSAETOOMANYREFS syscall.Errno = 10059 - WSAETIMEDOUT syscall.Errno = 10060 - WSAECONNREFUSED syscall.Errno = 10061 - WSAELOOP syscall.Errno = 10062 - WSAENAMETOOLONG syscall.Errno = 10063 - WSAEHOSTDOWN syscall.Errno = 10064 - WSAEHOSTUNREACH syscall.Errno = 10065 - WSAENOTEMPTY syscall.Errno = 10066 - WSAEPROCLIM syscall.Errno = 10067 - WSAEUSERS syscall.Errno = 10068 - WSAEDQUOT syscall.Errno = 10069 - WSAESTALE syscall.Errno = 10070 - WSAEREMOTE syscall.Errno = 10071 - WSASYSNOTREADY syscall.Errno = 10091 - WSAVERNOTSUPPORTED syscall.Errno = 10092 - WSANOTINITIALISED syscall.Errno = 10093 - WSAEDISCON syscall.Errno = 10101 - WSAENOMORE syscall.Errno = 10102 - WSAECANCELLED syscall.Errno = 10103 - WSAEINVALIDPROCTABLE syscall.Errno = 10104 - WSAEINVALIDPROVIDER syscall.Errno = 10105 - WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 - WSASYSCALLFAILURE syscall.Errno = 10107 - WSASERVICE_NOT_FOUND syscall.Errno = 10108 - WSATYPE_NOT_FOUND syscall.Errno = 10109 - WSA_E_NO_MORE syscall.Errno = 10110 - WSA_E_CANCELLED syscall.Errno = 10111 - WSAEREFUSED syscall.Errno = 10112 - WSAHOST_NOT_FOUND syscall.Errno = 11001 - WSATRY_AGAIN syscall.Errno = 11002 - WSANO_RECOVERY syscall.Errno = 11003 - WSANO_DATA syscall.Errno = 11004 - WSA_QOS_RECEIVERS syscall.Errno = 11005 - WSA_QOS_SENDERS syscall.Errno = 11006 - WSA_QOS_NO_SENDERS syscall.Errno = 11007 - WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 - WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 - WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 - WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 - WSA_QOS_BAD_STYLE syscall.Errno = 11012 - WSA_QOS_BAD_OBJECT syscall.Errno = 11013 - WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 - WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 - WSA_QOS_ESERVICETYPE syscall.Errno = 11016 - WSA_QOS_EFLOWSPEC syscall.Errno = 11017 - WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 - WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 - WSA_QOS_EFILTERTYPE syscall.Errno = 11020 - WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 - WSA_QOS_EOBJLENGTH syscall.Errno = 11022 - WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 - WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 - WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 - WSA_QOS_EFLOWDESC syscall.Errno = 11026 - WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 - WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 - WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 - WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 - WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 - WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 - WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 - ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 - ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 - ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 - ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 - ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 - ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 - ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 - ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 - ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 - ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 - ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 - ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 - ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 - ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 - ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 - ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 - ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 - ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 - ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 - ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 - ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 - ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 - ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 - ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 - WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 - WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 - ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 - ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 - ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 - ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 - ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 - ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 - ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 - ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 - ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 - ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 - ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 - ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 - ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 - ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 - ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 - ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 - ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 - ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 - ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 - ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 - ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 - ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 - ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 - ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 - ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 - ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 - ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 - ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 - ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 - ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 - ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 - ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 - ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 - ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 - ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 - ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 - ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 - ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 - ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 - ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 - ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 - ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 - ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 - ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 - ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 - ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 - ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 - ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 - ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 - ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 - ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 - ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 - ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 - ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 - ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 - ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 - ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 - ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 - ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 - ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 - ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 - ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 - ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 - ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 - ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 - ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 - ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 - ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 - ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 - ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 - ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 - ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 - ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 - ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 - ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 - ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 - ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 - ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 - ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 - ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 - ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 - ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 - ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 - ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 - ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 - ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 - ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 - ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 - ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 - ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 - ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 - ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 - ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 - ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 - ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 - ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 - ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 - ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 - ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 - ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 - ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 - ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 - ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 - ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 - ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 - ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 - ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 - ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 - ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 - ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 - ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 - ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 - ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 - ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 - ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 - ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 - ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 - ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 - ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 - ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 - ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 - ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 - ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 - ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 - ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 - ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 - ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 - ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 - ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 - ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 - ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 - ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 - ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 - ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 - ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 - ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 - ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 - ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 - ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 - ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 - ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 - ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 - ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 - ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 - ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 - ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 - ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 - ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 - ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 - ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 - ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 - ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 - ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 - ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 - ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 - ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 - ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 - ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 - ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 - ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 - ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 - ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 - ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 - ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 - ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 - ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 - ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 - ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 - ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 - ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 - ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 - ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 - ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 - ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 - ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 - ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 - ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 - ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 - ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 - ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 - ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 - ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 - ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 - ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 - ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 - ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 - ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 - ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 - ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 - ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 - ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 - ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 - ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 - ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 - ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 - ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 - ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 - ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 - ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 - ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 - ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 - ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 - ERROR_SXS_CORRUPTION syscall.Errno = 14083 - ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 - ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 - ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 - ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 - ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 - ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 - ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 - ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 - ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 - ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 - ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 - ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 - ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 - ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 - ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 - ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 - ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 - ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 - ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 - ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 - ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 - ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 - 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 - ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 - ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 - ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 - ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 - ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 - ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 - ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 - ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 - ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 - ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 - ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 - ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 - ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 - ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 - ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 - ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 - ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 - ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 - ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 - ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 - ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 - ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 - ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 - ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 - ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 - ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 - ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 - ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 - ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 - ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 - ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 - ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 - ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 - ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 - ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 - ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 - ERROR_EC_LOG_DISABLED syscall.Errno = 15081 - ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 - ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 - ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 - ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 - ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 - ERROR_MUI_INVALID_FILE syscall.Errno = 15101 - ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 - ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 - ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 - ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 - ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 - ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 - ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 - ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 - ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 - ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 - ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 - ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 - ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 - ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 - ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 - ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 - ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 - ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 - ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 - ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 - ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 - ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 - ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 - ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 - ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 - ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 - ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 - ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 - ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 - ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 - ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 - ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 - ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 - ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 - ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 - ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 - ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 - ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 - ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 - ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 - ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 - ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 - ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 - 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 - ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 - ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 - ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 - ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 - ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 - ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 - ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 - ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 - ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 - ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 - ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 - ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 - ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 - ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 - ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 - ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 - ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 - ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 - ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 - ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 - ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 - ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 - ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 - ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 - ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 - ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 - ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 - ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 - ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 - ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 - ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 - ERROR_INSTALL_CANCEL syscall.Errno = 15608 - ERROR_INSTALL_FAILED syscall.Errno = 15609 - ERROR_REMOVE_FAILED syscall.Errno = 15610 - ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 - ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 - ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 - ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 - ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 - ERROR_PACKAGE_UPDATING syscall.Errno = 15616 - ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 - ERROR_PACKAGES_IN_USE syscall.Errno = 15618 - ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 - ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 - ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 - ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 - ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 - ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 - ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 - ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 - ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 - ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 - ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 - ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 - ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 - ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 - ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 - ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 - ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 - ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 - ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 - ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 - ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 - ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 - ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 - ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 - ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 - 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 - APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 - 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 - ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 - ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 - ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 - ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 - ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 - ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 - ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 - ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 - ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 - ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 - ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 - ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 - ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 - ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 - ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 - ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 - ERROR_API_UNAVAILABLE syscall.Errno = 15841 - STORE_ERROR_UNLICENSED syscall.Errno = 15861 - STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 - STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 - STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 - SEVERITY_SUCCESS syscall.Errno = 0 - SEVERITY_ERROR syscall.Errno = 1 - FACILITY_NT_BIT = 0x10000000 - E_NOT_SET = ERROR_NOT_FOUND - E_NOT_VALID_STATE = ERROR_INVALID_STATE - E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER - 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 - E_OUTOFMEMORY Handle = 0x8007000E - E_INVALIDARG Handle = 0x80070057 - E_NOINTERFACE Handle = 0x80004002 - E_POINTER Handle = 0x80004003 - E_HANDLE Handle = 0x80070006 - E_ABORT Handle = 0x80004004 - E_FAIL Handle = 0x80004005 - E_ACCESSDENIED Handle = 0x80070005 - E_PENDING Handle = 0x8000000A - E_BOUNDS Handle = 0x8000000B - E_CHANGED_STATE Handle = 0x8000000C - E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D - E_ILLEGAL_METHOD_CALL Handle = 0x8000000E - RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F - RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 - RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 - RO_E_INVALID_METADATA_FILE Handle = 0x80000012 - RO_E_CLOSED Handle = 0x80000013 - RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 - RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 - RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 - E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 - E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 - E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 - E_APPLICATION_EXITING Handle = 0x8000001A - E_APPLICATION_VIEW_EXITING Handle = 0x8000001B - RO_E_MUST_BE_AGILE Handle = 0x8000001C - RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D - RO_E_COMMITTED Handle = 0x8000001E - RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F - RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 - RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 - CO_E_INIT_TLS Handle = 0x80004006 - CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 - CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 - CO_E_INIT_CLASS_CACHE Handle = 0x80004009 - CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A - CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B - CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C - CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D - CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E - CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F - CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 - CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 - CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 - CO_E_CANT_REMOTE Handle = 0x80004013 - CO_E_BAD_SERVER_NAME Handle = 0x80004014 - CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 - CO_E_OLE1DDE_DISABLED Handle = 0x80004016 - CO_E_RUNAS_SYNTAX Handle = 0x80004017 - CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 - CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 - CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A - CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B - CO_E_START_SERVICE_FAILURE Handle = 0x8000401C - CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D - CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E - CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F - CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 - CO_E_NOT_SUPPORTED Handle = 0x80004021 - CO_E_RELOAD_DLL Handle = 0x80004022 - CO_E_MSI_ERROR Handle = 0x80004023 - CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 - CO_E_SERVER_PAUSED Handle = 0x80004025 - CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 - CO_E_CLASS_DISABLED Handle = 0x80004027 - CO_E_CLRNOTAVAILABLE Handle = 0x80004028 - CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 - CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A - CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B - CO_E_TRACKER_CONFIG Handle = 0x80004030 - CO_E_THREADPOOL_CONFIG Handle = 0x80004031 - CO_E_SXS_CONFIG Handle = 0x80004032 - CO_E_MALFORMED_SPN Handle = 0x80004033 - CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 - CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 - S_OK Handle = 0 - S_FALSE Handle = 1 - OLE_E_FIRST Handle = 0x80040000 - OLE_E_LAST Handle = 0x800400FF - OLE_S_FIRST Handle = 0x00040000 - OLE_S_LAST Handle = 0x000400FF - OLE_E_OLEVERB Handle = 0x80040000 - OLE_E_ADVF Handle = 0x80040001 - OLE_E_ENUM_NOMORE Handle = 0x80040002 - OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 - OLE_E_NOCONNECTION Handle = 0x80040004 - OLE_E_NOTRUNNING Handle = 0x80040005 - OLE_E_NOCACHE Handle = 0x80040006 - OLE_E_BLANK Handle = 0x80040007 - OLE_E_CLASSDIFF Handle = 0x80040008 - OLE_E_CANT_GETMONIKER Handle = 0x80040009 - OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A - OLE_E_STATIC Handle = 0x8004000B - OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C - OLE_E_INVALIDRECT Handle = 0x8004000D - OLE_E_WRONGCOMPOBJ Handle = 0x8004000E - OLE_E_INVALIDHWND Handle = 0x8004000F - OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 - OLE_E_CANTCONVERT Handle = 0x80040011 - OLE_E_NOSTORAGE Handle = 0x80040012 - DV_E_FORMATETC Handle = 0x80040064 - DV_E_DVTARGETDEVICE Handle = 0x80040065 - DV_E_STGMEDIUM Handle = 0x80040066 - DV_E_STATDATA Handle = 0x80040067 - DV_E_LINDEX Handle = 0x80040068 - DV_E_TYMED Handle = 0x80040069 - DV_E_CLIPFORMAT Handle = 0x8004006A - DV_E_DVASPECT Handle = 0x8004006B - DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C - DV_E_NOIVIEWOBJECT Handle = 0x8004006D - DRAGDROP_E_FIRST syscall.Errno = 0x80040100 - DRAGDROP_E_LAST syscall.Errno = 0x8004010F - DRAGDROP_S_FIRST syscall.Errno = 0x00040100 - DRAGDROP_S_LAST syscall.Errno = 0x0004010F - DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 - DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 - DRAGDROP_E_INVALIDHWND Handle = 0x80040102 - DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 - CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 - CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F - CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 - CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F - CLASS_E_NOAGGREGATION Handle = 0x80040110 - CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 - CLASS_E_NOTLICENSED Handle = 0x80040112 - MARSHAL_E_FIRST syscall.Errno = 0x80040120 - MARSHAL_E_LAST syscall.Errno = 0x8004012F - MARSHAL_S_FIRST syscall.Errno = 0x00040120 - MARSHAL_S_LAST syscall.Errno = 0x0004012F - DATA_E_FIRST syscall.Errno = 0x80040130 - DATA_E_LAST syscall.Errno = 0x8004013F - DATA_S_FIRST syscall.Errno = 0x00040130 - DATA_S_LAST syscall.Errno = 0x0004013F - VIEW_E_FIRST syscall.Errno = 0x80040140 - VIEW_E_LAST syscall.Errno = 0x8004014F - VIEW_S_FIRST syscall.Errno = 0x00040140 - VIEW_S_LAST syscall.Errno = 0x0004014F - VIEW_E_DRAW Handle = 0x80040140 - REGDB_E_FIRST syscall.Errno = 0x80040150 - REGDB_E_LAST syscall.Errno = 0x8004015F - REGDB_S_FIRST syscall.Errno = 0x00040150 - REGDB_S_LAST syscall.Errno = 0x0004015F - REGDB_E_READREGDB Handle = 0x80040150 - REGDB_E_WRITEREGDB Handle = 0x80040151 - REGDB_E_KEYMISSING Handle = 0x80040152 - REGDB_E_INVALIDVALUE Handle = 0x80040153 - REGDB_E_CLASSNOTREG Handle = 0x80040154 - REGDB_E_IIDNOTREG Handle = 0x80040155 - REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 - REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 - CAT_E_FIRST syscall.Errno = 0x80040160 - CAT_E_LAST syscall.Errno = 0x80040161 - CAT_E_CATIDNOEXIST Handle = 0x80040160 - CAT_E_NODESCRIPTION Handle = 0x80040161 - CS_E_FIRST syscall.Errno = 0x80040164 - CS_E_LAST syscall.Errno = 0x8004016F - CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 - CS_E_NOT_DELETABLE Handle = 0x80040165 - CS_E_CLASS_NOTFOUND Handle = 0x80040166 - CS_E_INVALID_VERSION Handle = 0x80040167 - CS_E_NO_CLASSSTORE Handle = 0x80040168 - CS_E_OBJECT_NOTFOUND Handle = 0x80040169 - CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A - CS_E_INVALID_PATH Handle = 0x8004016B - CS_E_NETWORK_ERROR Handle = 0x8004016C - CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D - CS_E_SCHEMA_MISMATCH Handle = 0x8004016E - CS_E_INTERNAL_ERROR Handle = 0x8004016F - CACHE_E_FIRST syscall.Errno = 0x80040170 - CACHE_E_LAST syscall.Errno = 0x8004017F - CACHE_S_FIRST syscall.Errno = 0x00040170 - CACHE_S_LAST syscall.Errno = 0x0004017F - CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 - OLEOBJ_E_FIRST syscall.Errno = 0x80040180 - OLEOBJ_E_LAST syscall.Errno = 0x8004018F - OLEOBJ_S_FIRST syscall.Errno = 0x00040180 - OLEOBJ_S_LAST syscall.Errno = 0x0004018F - OLEOBJ_E_NOVERBS Handle = 0x80040180 - OLEOBJ_E_INVALIDVERB Handle = 0x80040181 - CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 - CLIENTSITE_E_LAST syscall.Errno = 0x8004019F - CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 - CLIENTSITE_S_LAST syscall.Errno = 0x0004019F - INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 - INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 - INPLACE_E_FIRST syscall.Errno = 0x800401A0 - INPLACE_E_LAST syscall.Errno = 0x800401AF - INPLACE_S_FIRST syscall.Errno = 0x000401A0 - INPLACE_S_LAST syscall.Errno = 0x000401AF - ENUM_E_FIRST syscall.Errno = 0x800401B0 - ENUM_E_LAST syscall.Errno = 0x800401BF - ENUM_S_FIRST syscall.Errno = 0x000401B0 - ENUM_S_LAST syscall.Errno = 0x000401BF - CONVERT10_E_FIRST syscall.Errno = 0x800401C0 - CONVERT10_E_LAST syscall.Errno = 0x800401CF - CONVERT10_S_FIRST syscall.Errno = 0x000401C0 - CONVERT10_S_LAST syscall.Errno = 0x000401CF - CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 - CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 - CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 - CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 - CONVERT10_E_STG_FMT Handle = 0x800401C4 - CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 - CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 - CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 - CLIPBRD_E_LAST syscall.Errno = 0x800401DF - CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 - CLIPBRD_S_LAST syscall.Errno = 0x000401DF - CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 - CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 - CLIPBRD_E_CANT_SET Handle = 0x800401D2 - CLIPBRD_E_BAD_DATA Handle = 0x800401D3 - CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 - MK_E_FIRST syscall.Errno = 0x800401E0 - MK_E_LAST syscall.Errno = 0x800401EF - MK_S_FIRST syscall.Errno = 0x000401E0 - MK_S_LAST syscall.Errno = 0x000401EF - MK_E_CONNECTMANUALLY Handle = 0x800401E0 - MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 - MK_E_NEEDGENERIC Handle = 0x800401E2 - MK_E_UNAVAILABLE Handle = 0x800401E3 - MK_E_SYNTAX Handle = 0x800401E4 - MK_E_NOOBJECT Handle = 0x800401E5 - MK_E_INVALIDEXTENSION Handle = 0x800401E6 - MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 - MK_E_NOTBINDABLE Handle = 0x800401E8 - MK_E_NOTBOUND Handle = 0x800401E9 - MK_E_CANTOPENFILE Handle = 0x800401EA - MK_E_MUSTBOTHERUSER Handle = 0x800401EB - MK_E_NOINVERSE Handle = 0x800401EC - MK_E_NOSTORAGE Handle = 0x800401ED - MK_E_NOPREFIX Handle = 0x800401EE - MK_E_ENUMERATION_FAILED Handle = 0x800401EF - CO_E_FIRST syscall.Errno = 0x800401F0 - CO_E_LAST syscall.Errno = 0x800401FF - CO_S_FIRST syscall.Errno = 0x000401F0 - CO_S_LAST syscall.Errno = 0x000401FF - CO_E_NOTINITIALIZED Handle = 0x800401F0 - CO_E_ALREADYINITIALIZED Handle = 0x800401F1 - CO_E_CANTDETERMINECLASS Handle = 0x800401F2 - CO_E_CLASSSTRING Handle = 0x800401F3 - CO_E_IIDSTRING Handle = 0x800401F4 - CO_E_APPNOTFOUND Handle = 0x800401F5 - CO_E_APPSINGLEUSE Handle = 0x800401F6 - CO_E_ERRORINAPP Handle = 0x800401F7 - CO_E_DLLNOTFOUND Handle = 0x800401F8 - CO_E_ERRORINDLL Handle = 0x800401F9 - CO_E_WRONGOSFORAPP Handle = 0x800401FA - CO_E_OBJNOTREG Handle = 0x800401FB - CO_E_OBJISREG Handle = 0x800401FC - CO_E_OBJNOTCONNECTED Handle = 0x800401FD - CO_E_APPDIDNTREG Handle = 0x800401FE - CO_E_RELEASED Handle = 0x800401FF - EVENT_E_FIRST syscall.Errno = 0x80040200 - EVENT_E_LAST syscall.Errno = 0x8004021F - EVENT_S_FIRST syscall.Errno = 0x00040200 - EVENT_S_LAST syscall.Errno = 0x0004021F - EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 - EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 - EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 - EVENT_E_QUERYSYNTAX Handle = 0x80040203 - EVENT_E_QUERYFIELD Handle = 0x80040204 - EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 - EVENT_E_INTERNALERROR Handle = 0x80040206 - EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 - EVENT_E_USER_EXCEPTION Handle = 0x80040208 - EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 - EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A - EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B - EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C - EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D - EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E - EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F - EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 - TPC_E_INVALID_PROPERTY Handle = 0x80040241 - TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 - TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B - TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 - TPC_E_INVALID_STROKE Handle = 0x80040222 - TPC_E_INITIALIZE_FAIL Handle = 0x80040223 - TPC_E_NOT_RELEVANT Handle = 0x80040232 - TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 - TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 - TPC_E_INVALID_RIGHTS Handle = 0x80040236 - TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 - TPC_E_QUEUE_FULL Handle = 0x80040238 - TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 - TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A - TPC_S_TRUNCATED Handle = 0x00040252 - TPC_S_INTERRUPTED Handle = 0x00040253 - TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 - XACT_E_FIRST syscall.Errno = 0x8004D000 - XACT_E_LAST syscall.Errno = 0x8004D02B - XACT_S_FIRST syscall.Errno = 0x0004D000 - XACT_S_LAST syscall.Errno = 0x0004D010 - XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 - XACT_E_CANTRETAIN Handle = 0x8004D001 - XACT_E_COMMITFAILED Handle = 0x8004D002 - XACT_E_COMMITPREVENTED Handle = 0x8004D003 - XACT_E_HEURISTICABORT Handle = 0x8004D004 - XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 - XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 - XACT_E_HEURISTICDANGER Handle = 0x8004D007 - XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 - XACT_E_NOASYNC Handle = 0x8004D009 - XACT_E_NOENLIST Handle = 0x8004D00A - XACT_E_NOISORETAIN Handle = 0x8004D00B - XACT_E_NORESOURCE Handle = 0x8004D00C - XACT_E_NOTCURRENT Handle = 0x8004D00D - XACT_E_NOTRANSACTION Handle = 0x8004D00E - XACT_E_NOTSUPPORTED Handle = 0x8004D00F - XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 - XACT_E_WRONGSTATE Handle = 0x8004D011 - XACT_E_WRONGUOW Handle = 0x8004D012 - XACT_E_XTIONEXISTS Handle = 0x8004D013 - XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 - XACT_E_INVALIDCOOKIE Handle = 0x8004D015 - XACT_E_INDOUBT Handle = 0x8004D016 - XACT_E_NOTIMEOUT Handle = 0x8004D017 - XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 - XACT_E_ABORTED Handle = 0x8004D019 - XACT_E_LOGFULL Handle = 0x8004D01A - XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B - XACT_E_CONNECTION_DOWN Handle = 0x8004D01C - XACT_E_CONNECTION_DENIED Handle = 0x8004D01D - XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E - XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F - XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 - XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 - XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 - XACT_E_TIP_DISABLED Handle = 0x8004D023 - XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 - XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 - XACT_E_XA_TX_DISABLED Handle = 0x8004D026 - XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 - XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 - XACT_E_ABORTING Handle = 0x8004D029 - XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A - XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B - XACT_E_LU_TX_DISABLED Handle = 0x8004D02C - XACT_E_CLERKNOTFOUND Handle = 0x8004D080 - XACT_E_CLERKEXISTS Handle = 0x8004D081 - XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 - XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 - XACT_E_INVALIDLSN Handle = 0x8004D084 - XACT_E_REPLAYREQUEST Handle = 0x8004D085 - XACT_S_ASYNC Handle = 0x0004D000 - XACT_S_DEFECT Handle = 0x0004D001 - XACT_S_READONLY Handle = 0x0004D002 - XACT_S_SOMENORETAIN Handle = 0x0004D003 - XACT_S_OKINFORM Handle = 0x0004D004 - XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 - XACT_S_MADECHANGESINFORM Handle = 0x0004D006 - XACT_S_ALLNORETAIN Handle = 0x0004D007 - XACT_S_ABORTING Handle = 0x0004D008 - XACT_S_SINGLEPHASE Handle = 0x0004D009 - XACT_S_LOCALLY_OK Handle = 0x0004D00A - XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 - CONTEXT_E_FIRST syscall.Errno = 0x8004E000 - CONTEXT_E_LAST syscall.Errno = 0x8004E02F - CONTEXT_S_FIRST syscall.Errno = 0x0004E000 - CONTEXT_S_LAST syscall.Errno = 0x0004E02F - CONTEXT_E_ABORTED Handle = 0x8004E002 - CONTEXT_E_ABORTING Handle = 0x8004E003 - CONTEXT_E_NOCONTEXT Handle = 0x8004E004 - CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 - CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 - CONTEXT_E_OLDREF Handle = 0x8004E007 - CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C - CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F - CO_E_ACTIVATIONFAILED Handle = 0x8004E021 - CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 - CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 - CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 - CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 - CONTEXT_E_NOJIT Handle = 0x8004E026 - CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 - CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 - CO_E_NOIISINTRINSICS Handle = 0x8004E029 - CO_E_NOCOOKIES Handle = 0x8004E02A - CO_E_DBERROR Handle = 0x8004E02B - CO_E_NOTPOOLED Handle = 0x8004E02C - CO_E_NOTCONSTRUCTED Handle = 0x8004E02D - CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E - CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F - CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 - CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 - OLE_S_USEREG Handle = 0x00040000 - OLE_S_STATIC Handle = 0x00040001 - OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 - DRAGDROP_S_DROP Handle = 0x00040100 - DRAGDROP_S_CANCEL Handle = 0x00040101 - DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 - DATA_S_SAMEFORMATETC Handle = 0x00040130 - VIEW_S_ALREADY_FROZEN Handle = 0x00040140 - CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 - CACHE_S_SAMECACHE Handle = 0x00040171 - CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 - OLEOBJ_S_INVALIDVERB Handle = 0x00040180 - OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 - OLEOBJ_S_INVALIDHWND Handle = 0x00040182 - INPLACE_S_TRUNCATED Handle = 0x000401A0 - CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 - MK_S_REDUCED_TO_SELF Handle = 0x000401E2 - MK_S_ME Handle = 0x000401E4 - MK_S_HIM Handle = 0x000401E5 - MK_S_US Handle = 0x000401E6 - MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 - SCHED_S_TASK_READY Handle = 0x00041300 - SCHED_S_TASK_RUNNING Handle = 0x00041301 - SCHED_S_TASK_DISABLED Handle = 0x00041302 - SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 - SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 - SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 - SCHED_S_TASK_TERMINATED Handle = 0x00041306 - SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 - SCHED_S_EVENT_TRIGGER Handle = 0x00041308 - SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 - SCHED_E_TASK_NOT_READY Handle = 0x8004130A - SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B - SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C - SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D - SCHED_E_INVALID_TASK Handle = 0x8004130E - SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F - SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 - SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 - SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 - SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 - SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 - SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 - SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 - SCHED_E_NAMESPACE Handle = 0x80041317 - SCHED_E_INVALIDVALUE Handle = 0x80041318 - SCHED_E_MISSINGNODE Handle = 0x80041319 - SCHED_E_MALFORMEDXML Handle = 0x8004131A - SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B - SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C - SCHED_E_TOO_MANY_NODES Handle = 0x8004131D - SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E - SCHED_E_ALREADY_RUNNING Handle = 0x8004131F - SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 - SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 - SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 - SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 - SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 - SCHED_S_TASK_QUEUED Handle = 0x00041325 - SCHED_E_TASK_DISABLED Handle = 0x80041326 - SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 - SCHED_E_START_ON_DEMAND Handle = 0x80041328 - SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 - SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 - CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 - CO_E_SCM_ERROR Handle = 0x80080002 - CO_E_SCM_RPC_FAILURE Handle = 0x80080003 - CO_E_BAD_PATH Handle = 0x80080004 - CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 - CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 - MK_E_NO_NORMALIZED Handle = 0x80080007 - CO_E_SERVER_STOPPING Handle = 0x80080008 - MEM_E_INVALID_ROOT Handle = 0x80080009 - MEM_E_INVALID_LINK Handle = 0x80080010 - MEM_E_INVALID_SIZE Handle = 0x80080011 - CO_S_NOTALLINTERFACES Handle = 0x00080012 - CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 - CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 - CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 - CO_E_ELEVATION_DISABLED Handle = 0x80080017 - APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 - APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 - APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 - APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 - APPX_E_INVALID_MANIFEST Handle = 0x80080204 - APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 - APPX_E_CORRUPT_CONTENT Handle = 0x80080206 - APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 - APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 - APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 - APPX_E_INVALID_KEY_INFO Handle = 0x8008020A - APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B - APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C - APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D - APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E - APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F - APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 - APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 - APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 - APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 - APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 - APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 - APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 - BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 - DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 - DISP_E_MEMBERNOTFOUND Handle = 0x80020003 - DISP_E_PARAMNOTFOUND Handle = 0x80020004 - DISP_E_TYPEMISMATCH Handle = 0x80020005 - DISP_E_UNKNOWNNAME Handle = 0x80020006 - DISP_E_NONAMEDARGS Handle = 0x80020007 - DISP_E_BADVARTYPE Handle = 0x80020008 - DISP_E_EXCEPTION Handle = 0x80020009 - DISP_E_OVERFLOW Handle = 0x8002000A - DISP_E_BADINDEX Handle = 0x8002000B - DISP_E_UNKNOWNLCID Handle = 0x8002000C - DISP_E_ARRAYISLOCKED Handle = 0x8002000D - DISP_E_BADPARAMCOUNT Handle = 0x8002000E - DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F - DISP_E_BADCALLEE Handle = 0x80020010 - DISP_E_NOTACOLLECTION Handle = 0x80020011 - DISP_E_DIVBYZERO Handle = 0x80020012 - DISP_E_BUFFERTOOSMALL Handle = 0x80020013 - TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 - TYPE_E_FIELDNOTFOUND Handle = 0x80028017 - TYPE_E_INVDATAREAD Handle = 0x80028018 - TYPE_E_UNSUPFORMAT Handle = 0x80028019 - TYPE_E_REGISTRYACCESS Handle = 0x8002801C - TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D - TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 - TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 - TYPE_E_INVALIDSTATE Handle = 0x80028029 - TYPE_E_WRONGTYPEKIND Handle = 0x8002802A - TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B - TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C - TYPE_E_NAMECONFLICT Handle = 0x8002802D - TYPE_E_UNKNOWNLCID Handle = 0x8002802E - TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F - TYPE_E_BADMODULEKIND Handle = 0x800288BD - TYPE_E_SIZETOOBIG Handle = 0x800288C5 - TYPE_E_DUPLICATEID Handle = 0x800288C6 - TYPE_E_INVALIDID Handle = 0x800288CF - TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 - TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 - TYPE_E_IOERROR Handle = 0x80028CA2 - TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 - TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A - TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 - TYPE_E_CIRCULARTYPE Handle = 0x80029C84 - STG_E_INVALIDFUNCTION Handle = 0x80030001 - STG_E_FILENOTFOUND Handle = 0x80030002 - STG_E_PATHNOTFOUND Handle = 0x80030003 - STG_E_TOOMANYOPENFILES Handle = 0x80030004 - STG_E_ACCESSDENIED Handle = 0x80030005 - STG_E_INVALIDHANDLE Handle = 0x80030006 - STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 - STG_E_INVALIDPOINTER Handle = 0x80030009 - STG_E_NOMOREFILES Handle = 0x80030012 - STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 - STG_E_SEEKERROR Handle = 0x80030019 - STG_E_WRITEFAULT Handle = 0x8003001D - STG_E_READFAULT Handle = 0x8003001E - STG_E_SHAREVIOLATION Handle = 0x80030020 - STG_E_LOCKVIOLATION Handle = 0x80030021 - STG_E_FILEALREADYEXISTS Handle = 0x80030050 - STG_E_INVALIDPARAMETER Handle = 0x80030057 - STG_E_MEDIUMFULL Handle = 0x80030070 - STG_E_PROPSETMISMATCHED Handle = 0x800300F0 - STG_E_ABNORMALAPIEXIT Handle = 0x800300FA - STG_E_INVALIDHEADER Handle = 0x800300FB - STG_E_INVALIDNAME Handle = 0x800300FC - STG_E_UNKNOWN Handle = 0x800300FD - STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE - STG_E_INVALIDFLAG Handle = 0x800300FF - STG_E_INUSE Handle = 0x80030100 - STG_E_NOTCURRENT Handle = 0x80030101 - STG_E_REVERTED Handle = 0x80030102 - STG_E_CANTSAVE Handle = 0x80030103 - STG_E_OLDFORMAT Handle = 0x80030104 - STG_E_OLDDLL Handle = 0x80030105 - STG_E_SHAREREQUIRED Handle = 0x80030106 - STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 - STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 - STG_E_DOCFILECORRUPT Handle = 0x80030109 - STG_E_BADBASEADDRESS Handle = 0x80030110 - STG_E_DOCFILETOOLARGE Handle = 0x80030111 - STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 - STG_E_INCOMPLETE Handle = 0x80030201 - STG_E_TERMINATED Handle = 0x80030202 - STG_S_CONVERTED Handle = 0x00030200 - STG_S_BLOCK Handle = 0x00030201 - STG_S_RETRYNOW Handle = 0x00030202 - STG_S_MONITORING Handle = 0x00030203 - STG_S_MULTIPLEOPENS Handle = 0x00030204 - STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 - STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 - STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 - STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 - STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 - STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A - STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 - STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 - STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 - STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 - STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 - STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A - STG_E_RESETS_EXHAUSTED Handle = 0x8003030B - RPC_E_CALL_REJECTED Handle = 0x80010001 - RPC_E_CALL_CANCELED Handle = 0x80010002 - RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 - RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 - RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 - RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 - RPC_E_SERVER_DIED Handle = 0x80010007 - RPC_E_CLIENT_DIED Handle = 0x80010008 - RPC_E_INVALID_DATAPACKET Handle = 0x80010009 - RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A - RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B - RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C - RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D - RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E - RPC_E_INVALID_DATA Handle = 0x8001000F - RPC_E_INVALID_PARAMETER Handle = 0x80010010 - RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 - RPC_E_SERVER_DIED_DNE Handle = 0x80010012 - RPC_E_SYS_CALL_FAILED Handle = 0x80010100 - RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 - RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 - RPC_E_NOT_REGISTERED Handle = 0x80010103 - RPC_E_FAULT Handle = 0x80010104 - RPC_E_SERVERFAULT Handle = 0x80010105 - RPC_E_CHANGED_MODE Handle = 0x80010106 - RPC_E_INVALIDMETHOD Handle = 0x80010107 - RPC_E_DISCONNECTED Handle = 0x80010108 - RPC_E_RETRY Handle = 0x80010109 - RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A - RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B - RPC_E_INVALID_CALLDATA Handle = 0x8001010C - RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D - RPC_E_WRONG_THREAD Handle = 0x8001010E - RPC_E_THREAD_NOT_INIT Handle = 0x8001010F - RPC_E_VERSION_MISMATCH Handle = 0x80010110 - RPC_E_INVALID_HEADER Handle = 0x80010111 - RPC_E_INVALID_EXTENSION Handle = 0x80010112 - RPC_E_INVALID_IPID Handle = 0x80010113 - RPC_E_INVALID_OBJECT Handle = 0x80010114 - RPC_S_CALLPENDING Handle = 0x80010115 - RPC_S_WAITONTIMER Handle = 0x80010116 - RPC_E_CALL_COMPLETE Handle = 0x80010117 - RPC_E_UNSECURE_CALL Handle = 0x80010118 - RPC_E_TOO_LATE Handle = 0x80010119 - RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A - RPC_E_ACCESS_DENIED Handle = 0x8001011B - RPC_E_REMOTE_DISABLED Handle = 0x8001011C - RPC_E_INVALID_OBJREF Handle = 0x8001011D - RPC_E_NO_CONTEXT Handle = 0x8001011E - RPC_E_TIMEOUT Handle = 0x8001011F - RPC_E_NO_SYNC Handle = 0x80010120 - RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 - RPC_E_INVALID_STD_NAME Handle = 0x80010122 - CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 - CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 - CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 - CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 - CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 - CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 - CO_E_FAILEDTOSETDACL Handle = 0x80010129 - CO_E_ACCESSCHECKFAILED Handle = 0x8001012A - CO_E_NETACCESSAPIFAILED Handle = 0x8001012B - CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C - CO_E_INVALIDSID Handle = 0x8001012D - CO_E_CONVERSIONFAILED Handle = 0x8001012E - CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F - CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 - CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 - CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 - CO_E_SETSERLHNDLFAILED Handle = 0x80010133 - CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 - CO_E_PATHTOOLONG Handle = 0x80010135 - CO_E_FAILEDTOGENUUID Handle = 0x80010136 - CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 - CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 - CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 - CO_E_ACESINWRONGORDER Handle = 0x8001013A - CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B - CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C - CO_E_DECODEFAILED Handle = 0x8001013D - CO_E_ACNOTINITIALIZED Handle = 0x8001013F - CO_E_CANCEL_DISABLED Handle = 0x80010140 - RPC_E_UNEXPECTED Handle = 0x8001FFFF - ERROR_AUDITING_DISABLED Handle = 0xC0090001 - ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 - ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 - NTE_BAD_UID Handle = 0x80090001 - NTE_BAD_HASH Handle = 0x80090002 - NTE_BAD_KEY Handle = 0x80090003 - NTE_BAD_LEN Handle = 0x80090004 - NTE_BAD_DATA Handle = 0x80090005 - NTE_BAD_SIGNATURE Handle = 0x80090006 - NTE_BAD_VER Handle = 0x80090007 - NTE_BAD_ALGID Handle = 0x80090008 - NTE_BAD_FLAGS Handle = 0x80090009 - NTE_BAD_TYPE Handle = 0x8009000A - NTE_BAD_KEY_STATE Handle = 0x8009000B - NTE_BAD_HASH_STATE Handle = 0x8009000C - NTE_NO_KEY Handle = 0x8009000D - NTE_NO_MEMORY Handle = 0x8009000E - NTE_EXISTS Handle = 0x8009000F - NTE_PERM Handle = 0x80090010 - NTE_NOT_FOUND Handle = 0x80090011 - NTE_DOUBLE_ENCRYPT Handle = 0x80090012 - NTE_BAD_PROVIDER Handle = 0x80090013 - NTE_BAD_PROV_TYPE Handle = 0x80090014 - NTE_BAD_PUBLIC_KEY Handle = 0x80090015 - NTE_BAD_KEYSET Handle = 0x80090016 - NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 - NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 - NTE_KEYSET_NOT_DEF Handle = 0x80090019 - NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A - NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B - NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C - NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D - NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E - NTE_BAD_KEYSET_PARAM Handle = 0x8009001F - NTE_FAIL Handle = 0x80090020 - NTE_SYS_ERR Handle = 0x80090021 - NTE_SILENT_CONTEXT Handle = 0x80090022 - NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 - NTE_TEMPORARY_PROFILE Handle = 0x80090024 - NTE_FIXEDPARAMETER Handle = 0x80090025 - NTE_INVALID_HANDLE Handle = 0x80090026 - NTE_INVALID_PARAMETER Handle = 0x80090027 - NTE_BUFFER_TOO_SMALL Handle = 0x80090028 - NTE_NOT_SUPPORTED Handle = 0x80090029 - NTE_NO_MORE_ITEMS Handle = 0x8009002A - NTE_BUFFERS_OVERLAP Handle = 0x8009002B - NTE_DECRYPTION_FAILURE Handle = 0x8009002C - NTE_INTERNAL_ERROR Handle = 0x8009002D - NTE_UI_REQUIRED Handle = 0x8009002E - NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F - NTE_DEVICE_NOT_READY Handle = 0x80090030 - NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 - NTE_VALIDATION_FAILED Handle = 0x80090032 - NTE_INCORRECT_PASSWORD Handle = 0x80090033 - NTE_ENCRYPTION_FAILURE Handle = 0x80090034 - NTE_DEVICE_NOT_FOUND Handle = 0x80090035 - NTE_USER_CANCELLED Handle = 0x80090036 - NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 - NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 - SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 - SEC_E_INVALID_HANDLE Handle = 0x80090301 - SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 - SEC_E_TARGET_UNKNOWN Handle = 0x80090303 - SEC_E_INTERNAL_ERROR Handle = 0x80090304 - SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 - SEC_E_NOT_OWNER Handle = 0x80090306 - SEC_E_CANNOT_INSTALL Handle = 0x80090307 - SEC_E_INVALID_TOKEN Handle = 0x80090308 - SEC_E_CANNOT_PACK Handle = 0x80090309 - SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A - SEC_E_NO_IMPERSONATION Handle = 0x8009030B - SEC_E_LOGON_DENIED Handle = 0x8009030C - SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D - SEC_E_NO_CREDENTIALS Handle = 0x8009030E - SEC_E_MESSAGE_ALTERED Handle = 0x8009030F - SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 - SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 - SEC_I_CONTINUE_NEEDED Handle = 0x00090312 - 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 - SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 - SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 - SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 - SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 - SEC_I_RENEGOTIATE Handle = 0x00090321 - SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 - SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 - SEC_E_TIME_SKEW Handle = 0x80090324 - SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 - SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 - SEC_E_CERT_UNKNOWN Handle = 0x80090327 - SEC_E_CERT_EXPIRED Handle = 0x80090328 - SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 - SEC_E_DECRYPT_FAILURE Handle = 0x80090330 - SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 - SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 - SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 - SEC_E_NO_TGT_REPLY Handle = 0x80090334 - SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 - SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 - SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 - SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 - SEC_E_MUST_BE_KDC Handle = 0x80090339 - SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A - SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B - SEC_E_NO_PA_DATA Handle = 0x8009033C - SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D - SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E - SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F - SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 - SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 - SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 - SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 - SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 - SEC_E_BAD_BINDINGS Handle = 0x80090346 - SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 - SEC_E_NO_KERB_KEY Handle = 0x80090348 - SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 - SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 - SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 - SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 - SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 - SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 - SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 - SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 - SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 - SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 - SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 - SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A - SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B - SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C - SEC_E_INVALID_PARAMETER Handle = 0x8009035D - SEC_E_DELEGATION_POLICY Handle = 0x8009035E - SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F - SEC_I_NO_RENEGOTIATION Handle = 0x00090360 - SEC_E_NO_CONTEXT Handle = 0x80090361 - SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 - SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 - SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 - SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 - SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 - 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 - CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 - CRYPT_E_OID_FORMAT Handle = 0x80091003 - CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 - CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 - CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 - CRYPT_E_HASH_VALUE Handle = 0x80091007 - CRYPT_E_INVALID_INDEX Handle = 0x80091008 - CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 - CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A - CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B - CRYPT_E_CONTROL_TYPE Handle = 0x8009100C - CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D - CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E - CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F - CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 - CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 - CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 - CRYPT_E_BAD_LEN Handle = 0x80092001 - CRYPT_E_BAD_ENCODE Handle = 0x80092002 - CRYPT_E_FILE_ERROR Handle = 0x80092003 - CRYPT_E_NOT_FOUND Handle = 0x80092004 - CRYPT_E_EXISTS Handle = 0x80092005 - CRYPT_E_NO_PROVIDER Handle = 0x80092006 - CRYPT_E_SELF_SIGNED Handle = 0x80092007 - CRYPT_E_DELETED_PREV Handle = 0x80092008 - CRYPT_E_NO_MATCH Handle = 0x80092009 - CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A - CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B - CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C - CRYPT_E_BAD_MSG Handle = 0x8009200D - CRYPT_E_NO_SIGNER Handle = 0x8009200E - CRYPT_E_PENDING_CLOSE Handle = 0x8009200F - CRYPT_E_REVOKED Handle = 0x80092010 - CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 - CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 - CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 - CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 - CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 - CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 - CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 - CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 - CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 - CRYPT_E_FILERESIZED Handle = 0x80092025 - CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 - CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 - CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 - CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 - CRYPT_E_NOT_IN_CTL Handle = 0x8009202A - CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B - CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C - CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D - CRYPT_E_OSS_ERROR Handle = 0x80093000 - OSS_MORE_BUF Handle = 0x80093001 - OSS_NEGATIVE_UINTEGER Handle = 0x80093002 - OSS_PDU_RANGE Handle = 0x80093003 - OSS_MORE_INPUT Handle = 0x80093004 - OSS_DATA_ERROR Handle = 0x80093005 - OSS_BAD_ARG Handle = 0x80093006 - OSS_BAD_VERSION Handle = 0x80093007 - OSS_OUT_MEMORY Handle = 0x80093008 - OSS_PDU_MISMATCH Handle = 0x80093009 - OSS_LIMITED Handle = 0x8009300A - OSS_BAD_PTR Handle = 0x8009300B - OSS_BAD_TIME Handle = 0x8009300C - OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D - OSS_MEM_ERROR Handle = 0x8009300E - OSS_BAD_TABLE Handle = 0x8009300F - OSS_TOO_LONG Handle = 0x80093010 - OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 - OSS_FATAL_ERROR Handle = 0x80093012 - OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 - OSS_NULL_TBL Handle = 0x80093014 - OSS_NULL_FCN Handle = 0x80093015 - OSS_BAD_ENCRULES Handle = 0x80093016 - OSS_UNAVAIL_ENCRULES Handle = 0x80093017 - OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 - OSS_UNIMPLEMENTED Handle = 0x80093019 - OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A - OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B - OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C - OSS_TABLE_MISMATCH Handle = 0x8009301D - OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E - OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F - OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 - OSS_OUT_OF_RANGE Handle = 0x80093021 - OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 - OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 - OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 - OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 - OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 - OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 - OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 - OSS_API_DLL_NOT_LINKED Handle = 0x80093029 - OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A - OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B - OSS_OPEN_TYPE_ERROR Handle = 0x8009302C - OSS_MUTEX_NOT_CREATED Handle = 0x8009302D - OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E - CRYPT_E_ASN1_ERROR Handle = 0x80093100 - CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 - CRYPT_E_ASN1_EOD Handle = 0x80093102 - CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 - CRYPT_E_ASN1_LARGE Handle = 0x80093104 - CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 - CRYPT_E_ASN1_MEMORY Handle = 0x80093106 - CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 - CRYPT_E_ASN1_BADPDU Handle = 0x80093108 - CRYPT_E_ASN1_BADARGS Handle = 0x80093109 - CRYPT_E_ASN1_BADREAL Handle = 0x8009310A - CRYPT_E_ASN1_BADTAG Handle = 0x8009310B - CRYPT_E_ASN1_CHOICE Handle = 0x8009310C - CRYPT_E_ASN1_RULE Handle = 0x8009310D - CRYPT_E_ASN1_UTF8 Handle = 0x8009310E - CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 - CRYPT_E_ASN1_NYI Handle = 0x80093134 - CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 - CRYPT_E_ASN1_NOEOD Handle = 0x80093202 - CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 - CERTSRV_E_NO_REQUEST Handle = 0x80094002 - CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 - CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 - CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 - CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 - CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 - CERTSRV_E_ROLECONFLICT Handle = 0x80094008 - CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 - CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A - CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B - CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C - CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D - CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E - CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F - CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 - CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 - CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 - CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 - CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 - CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 - CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 - CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 - CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 - CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 - CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 - CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 - CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 - CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 - CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 - CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 - CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 - CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 - CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 - CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A - CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B - CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C - CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D - CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E - CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F - CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 - CERTSRV_E_KEY_LENGTH Handle = 0x80094811 - CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 - CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 - CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 - CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 - CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 - CERTSRV_E_INVALID_EK Handle = 0x80094817 - CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 - CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 - CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A - CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B - CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C - CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D - CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E - CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F - CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 - XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 - XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 - XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 - XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 - XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 - XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 - TRUST_E_SYSTEM_ERROR Handle = 0x80096001 - TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 - TRUST_E_COUNTER_SIGNER Handle = 0x80096003 - TRUST_E_CERT_SIGNATURE Handle = 0x80096004 - TRUST_E_TIME_STAMP Handle = 0x80096005 - TRUST_E_BAD_DIGEST Handle = 0x80096010 - TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 - TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 - TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E - MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 - MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 - MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 - MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 - MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 - MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 - MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 - MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 - MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 - MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A - MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B - MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C - MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D - MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 - MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 - MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 - MSSIPOTF_E_FILE Handle = 0x80097013 - MSSIPOTF_E_CRYPT Handle = 0x80097014 - MSSIPOTF_E_BADVERSION Handle = 0x80097015 - MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 - MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 - MSSIPOTF_E_STRUCTURE Handle = 0x80097018 - ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 - NTE_OP_OK syscall.Errno = 0 - TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 - TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 - TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 - TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 - DIGSIG_E_ENCODE Handle = 0x800B0005 - DIGSIG_E_DECODE Handle = 0x800B0006 - DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 - DIGSIG_E_CRYPTO Handle = 0x800B0008 - PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 - PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A - PERSIST_E_NOTSELFSIZING Handle = 0x800B000B - TRUST_E_NOSIGNATURE Handle = 0x800B0100 - CERT_E_EXPIRED Handle = 0x800B0101 - CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 - CERT_E_ROLE Handle = 0x800B0103 - CERT_E_PATHLENCONST Handle = 0x800B0104 - CERT_E_CRITICAL Handle = 0x800B0105 - CERT_E_PURPOSE Handle = 0x800B0106 - CERT_E_ISSUERCHAINING Handle = 0x800B0107 - CERT_E_MALFORMED Handle = 0x800B0108 - CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 - CERT_E_CHAINING Handle = 0x800B010A - TRUST_E_FAIL Handle = 0x800B010B - CERT_E_REVOKED Handle = 0x800B010C - CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D - CERT_E_REVOCATION_FAILURE Handle = 0x800B010E - CERT_E_CN_NO_MATCH Handle = 0x800B010F - CERT_E_WRONG_USAGE Handle = 0x800B0110 - TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 - CERT_E_UNTRUSTEDCA Handle = 0x800B0112 - CERT_E_INVALID_POLICY Handle = 0x800B0113 - CERT_E_INVALID_NAME Handle = 0x800B0114 - SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 - SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 - SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 - SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 - SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 - SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 - SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 - SPAPI_E_NO_BACKUP Handle = 0x800F0103 - SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 - SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 - SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 - SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 - SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 - SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 - SPAPI_E_INVALID_CLASS Handle = 0x800F0206 - SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 - SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 - SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 - SPAPI_E_NO_INF Handle = 0x800F020A - SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B - SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C - SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D - SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E - SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F - SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 - SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 - SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 - SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 - SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 - SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 - SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 - SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 - SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 - SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 - SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A - SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B - SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C - SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D - SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E - SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F - SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 - SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 - SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 - SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 - SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 - SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 - SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 - SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 - SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 - SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 - SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A - SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B - SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C - SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D - SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E - SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F - SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 - SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 - SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 - SPAPI_E_INVALID_TARGET Handle = 0x800F0233 - SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 - SPAPI_E_IN_WOW64 Handle = 0x800F0235 - SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 - SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 - SPAPI_E_SCE_DISABLED Handle = 0x800F0238 - SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 - SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A - SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B - SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C - SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D - SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E - SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F - SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 - SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 - SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 - SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 - SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 - SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 - SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 - SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 - SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 - SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 - SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A - SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B - SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C - SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 - SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 - SCARD_S_SUCCESS = S_OK - SCARD_F_INTERNAL_ERROR Handle = 0x80100001 - SCARD_E_CANCELLED Handle = 0x80100002 - SCARD_E_INVALID_HANDLE Handle = 0x80100003 - SCARD_E_INVALID_PARAMETER Handle = 0x80100004 - SCARD_E_INVALID_TARGET Handle = 0x80100005 - SCARD_E_NO_MEMORY Handle = 0x80100006 - SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 - SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 - SCARD_E_UNKNOWN_READER Handle = 0x80100009 - SCARD_E_TIMEOUT Handle = 0x8010000A - SCARD_E_SHARING_VIOLATION Handle = 0x8010000B - SCARD_E_NO_SMARTCARD Handle = 0x8010000C - SCARD_E_UNKNOWN_CARD Handle = 0x8010000D - SCARD_E_CANT_DISPOSE Handle = 0x8010000E - SCARD_E_PROTO_MISMATCH Handle = 0x8010000F - SCARD_E_NOT_READY Handle = 0x80100010 - SCARD_E_INVALID_VALUE Handle = 0x80100011 - SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 - SCARD_F_COMM_ERROR Handle = 0x80100013 - SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 - SCARD_E_INVALID_ATR Handle = 0x80100015 - SCARD_E_NOT_TRANSACTED Handle = 0x80100016 - SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 - SCARD_P_SHUTDOWN Handle = 0x80100018 - SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 - SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A - SCARD_E_DUPLICATE_READER Handle = 0x8010001B - SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C - SCARD_E_NO_SERVICE Handle = 0x8010001D - SCARD_E_SERVICE_STOPPED Handle = 0x8010001E - SCARD_E_UNEXPECTED Handle = 0x8010001F - SCARD_E_ICC_INSTALLATION Handle = 0x80100020 - SCARD_E_ICC_CREATEORDER Handle = 0x80100021 - SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 - SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 - SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 - SCARD_E_NO_DIR Handle = 0x80100025 - SCARD_E_NO_FILE Handle = 0x80100026 - SCARD_E_NO_ACCESS Handle = 0x80100027 - SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 - SCARD_E_BAD_SEEK Handle = 0x80100029 - SCARD_E_INVALID_CHV Handle = 0x8010002A - SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B - SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C - SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D - SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E - SCARD_E_COMM_DATA_LOST Handle = 0x8010002F - SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 - SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 - SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 - SCARD_E_NO_PIN_CACHE Handle = 0x80100033 - SCARD_E_READ_ONLY_CARD Handle = 0x80100034 - SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 - SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 - SCARD_W_UNPOWERED_CARD Handle = 0x80100067 - SCARD_W_RESET_CARD Handle = 0x80100068 - SCARD_W_REMOVED_CARD Handle = 0x80100069 - SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A - SCARD_W_WRONG_CHV Handle = 0x8010006B - SCARD_W_CHV_BLOCKED Handle = 0x8010006C - SCARD_W_EOF Handle = 0x8010006D - SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E - SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F - SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 - SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 - SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 - COMADMIN_E_OBJECTERRORS Handle = 0x80110401 - COMADMIN_E_OBJECTINVALID Handle = 0x80110402 - COMADMIN_E_KEYMISSING Handle = 0x80110403 - COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 - COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 - COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 - COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 - COMADMIN_E_BADPATH Handle = 0x8011040A - COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B - COMADMIN_E_ROLEEXISTS Handle = 0x8011040C - COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D - COMADMIN_E_NOUSER Handle = 0x8011040F - COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 - COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 - COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 - COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 - COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 - COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 - COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 - COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A - COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B - COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D - COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E - COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F - COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 - COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 - COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 - COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 - COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 - COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 - COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 - COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A - COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B - COMADMIN_E_SESSION Handle = 0x8011042C - COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D - COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E - COMADMIN_E_REGISTERTLB Handle = 0x80110430 - COMADMIN_E_SYSTEMAPP Handle = 0x80110433 - COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 - COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 - COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 - COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 - COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 - COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 - COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B - COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C - COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E - COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F - COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 - COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 - COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 - COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 - COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A - COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B - COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C - COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D - COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E - COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F - COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 - COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 - COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 - COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 - COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 - COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A - COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B - COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C - COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D - COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 - COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 - COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 - COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 - COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 - COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 - COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 - COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 - COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 - COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 - COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 - COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 - COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 - COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 - COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 - COMQC_E_BAD_MESSAGE Handle = 0x80110604 - COMQC_E_UNAUTHENTICATED Handle = 0x80110605 - COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 - MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 - COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 - COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 - COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A - COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B - COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D - COMADMIN_E_USER_IN_SET Handle = 0x8011080E - COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F - COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 - COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 - COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 - COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 - COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 - COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 - COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 - COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 - COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A - COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B - COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C - COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D - COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E - COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F - COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 - COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 - COMADMIN_E_SAFERINVALID Handle = 0x80110822 - COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 - COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 - WER_S_REPORT_DEBUG Handle = 0x001B0000 - WER_S_REPORT_UPLOADED Handle = 0x001B0001 - WER_S_REPORT_QUEUED Handle = 0x001B0002 - WER_S_DISABLED Handle = 0x001B0003 - WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 - WER_S_DISABLED_QUEUE Handle = 0x001B0005 - WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 - WER_S_REPORT_ASYNC Handle = 0x001B0007 - WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 - WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 - WER_S_ASSERT_CONTINUE Handle = 0x001B000A - WER_S_THROTTLED Handle = 0x001B000B - WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C - WER_E_CRASH_FAILURE Handle = 0x801B8000 - WER_E_CANCELED Handle = 0x801B8001 - WER_E_NETWORK_FAILURE Handle = 0x801B8002 - WER_E_NOT_INITIALIZED Handle = 0x801B8003 - WER_E_ALREADY_REPORTING Handle = 0x801B8004 - WER_E_DUMP_THROTTLED Handle = 0x801B8005 - WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 - WER_E_TOO_HEAVY Handle = 0x801B8007 - ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 - ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 - ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 - ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 - ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 - ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 - ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 - ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 - ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 - ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 - ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A - ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B - ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C - ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D - ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E - ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F - ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 - ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 - ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 - ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 - ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 - ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 - ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 - ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 - ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 - ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 - ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A - ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B - ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C - ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 - ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 - ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 - DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 - DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 - DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 - DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 - DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 - DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 - DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 - DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 - ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 - ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 - ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 - ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 - ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 - ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 - ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 - ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 - ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 - ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A - ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 - ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 - ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 - ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 - ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 - ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 - ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 - ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 - ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 - ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 - ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A - ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B - ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C - ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D - ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E - 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 - ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 - ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 - ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 - ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 - ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 - ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 - ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 - ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 - ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 - ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 - ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 - ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 - ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 - ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 - ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 - ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 - ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 - ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 - ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 - ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 - ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 - ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A - ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B - ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 - ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 - ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 - ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 - ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 - ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 - ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 - ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 - ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 - ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C - ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D - ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E - ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F - ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 - ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 - ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 - ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 - ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 - ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 - ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 - ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A - ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B - ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C - ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D - ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E - ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F - ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 - ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 - ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 - ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 - ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 - ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 - ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 - ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 - ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 - ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 - ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A - ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B - ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C - ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D - ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E - ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F - ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 - ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 - ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 - ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 - ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 - ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 - ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 - ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 - ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 - ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A - ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B - ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C - ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D - ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E - ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F - ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 - ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 - ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 - ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 - ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 - ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 - ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 - ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 - ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 - ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 - ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A - ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B - ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C - ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 - ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 - ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F - ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 - ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 - ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 - ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 - ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 - ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 - ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 - ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 - ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 - ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 - ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A - ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B - ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C - ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 - ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 - ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 - ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 - ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 - ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B - ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C - ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E - ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F - ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 - ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 - ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 - ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 - ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 - ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 - ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A - ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C - ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D - ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E - ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F - ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 - ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 - ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 - ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 - ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 - ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 - ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 - ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 - ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 - ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 - ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A - ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B - ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C - ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D - ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 - ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 - ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA - ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB - ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC - ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE - ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF - ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 - ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 - ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 - ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 - ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 - ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 - ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 - ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 - ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 - NAP_E_INVALID_PACKET Handle = 0x80270001 - NAP_E_MISSING_SOH Handle = 0x80270002 - NAP_E_CONFLICTING_ID Handle = 0x80270003 - NAP_E_NO_CACHED_SOH Handle = 0x80270004 - NAP_E_STILL_BOUND Handle = 0x80270005 - NAP_E_NOT_REGISTERED Handle = 0x80270006 - NAP_E_NOT_INITIALIZED Handle = 0x80270007 - NAP_E_MISMATCHED_ID Handle = 0x80270008 - NAP_E_NOT_PENDING Handle = 0x80270009 - NAP_E_ID_NOT_FOUND Handle = 0x8027000A - NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B - NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C - NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D - NAP_E_ENTITY_DISABLED Handle = 0x8027000E - NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F - NAP_E_TOO_MANY_CALLS Handle = 0x80270010 - NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 - NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 - NAP_E_SHV_TIMEOUT Handle = 0x80270013 - TPM_E_ERROR_MASK Handle = 0x80280000 - TPM_E_AUTHFAIL Handle = 0x80280001 - TPM_E_BADINDEX Handle = 0x80280002 - TPM_E_BAD_PARAMETER Handle = 0x80280003 - TPM_E_AUDITFAILURE Handle = 0x80280004 - TPM_E_CLEAR_DISABLED Handle = 0x80280005 - TPM_E_DEACTIVATED Handle = 0x80280006 - TPM_E_DISABLED Handle = 0x80280007 - TPM_E_DISABLED_CMD Handle = 0x80280008 - TPM_E_FAIL Handle = 0x80280009 - TPM_E_BAD_ORDINAL Handle = 0x8028000A - TPM_E_INSTALL_DISABLED Handle = 0x8028000B - TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C - TPM_E_KEYNOTFOUND Handle = 0x8028000D - TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E - TPM_E_MIGRATEFAIL Handle = 0x8028000F - TPM_E_INVALID_PCR_INFO Handle = 0x80280010 - TPM_E_NOSPACE Handle = 0x80280011 - TPM_E_NOSRK Handle = 0x80280012 - TPM_E_NOTSEALED_BLOB Handle = 0x80280013 - TPM_E_OWNER_SET Handle = 0x80280014 - TPM_E_RESOURCES Handle = 0x80280015 - TPM_E_SHORTRANDOM Handle = 0x80280016 - TPM_E_SIZE Handle = 0x80280017 - TPM_E_WRONGPCRVAL Handle = 0x80280018 - TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 - TPM_E_SHA_THREAD Handle = 0x8028001A - TPM_E_SHA_ERROR Handle = 0x8028001B - TPM_E_FAILEDSELFTEST Handle = 0x8028001C - TPM_E_AUTH2FAIL Handle = 0x8028001D - TPM_E_BADTAG Handle = 0x8028001E - TPM_E_IOERROR Handle = 0x8028001F - TPM_E_ENCRYPT_ERROR Handle = 0x80280020 - TPM_E_DECRYPT_ERROR Handle = 0x80280021 - TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 - TPM_E_NO_ENDORSEMENT Handle = 0x80280023 - TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 - TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 - TPM_E_INVALID_POSTINIT Handle = 0x80280026 - TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 - TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 - TPM_E_BAD_MIGRATION Handle = 0x80280029 - TPM_E_BAD_SCHEME Handle = 0x8028002A - TPM_E_BAD_DATASIZE Handle = 0x8028002B - TPM_E_BAD_MODE Handle = 0x8028002C - TPM_E_BAD_PRESENCE Handle = 0x8028002D - TPM_E_BAD_VERSION Handle = 0x8028002E - TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F - TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 - TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 - TPM_E_NOTRESETABLE Handle = 0x80280032 - TPM_E_NOTLOCAL Handle = 0x80280033 - TPM_E_BAD_TYPE Handle = 0x80280034 - TPM_E_INVALID_RESOURCE Handle = 0x80280035 - TPM_E_NOTFIPS Handle = 0x80280036 - TPM_E_INVALID_FAMILY Handle = 0x80280037 - TPM_E_NO_NV_PERMISSION Handle = 0x80280038 - TPM_E_REQUIRES_SIGN Handle = 0x80280039 - TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A - TPM_E_AUTH_CONFLICT Handle = 0x8028003B - TPM_E_AREA_LOCKED Handle = 0x8028003C - TPM_E_BAD_LOCALITY Handle = 0x8028003D - TPM_E_READ_ONLY Handle = 0x8028003E - TPM_E_PER_NOWRITE Handle = 0x8028003F - TPM_E_FAMILYCOUNT Handle = 0x80280040 - TPM_E_WRITE_LOCKED Handle = 0x80280041 - TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 - TPM_E_INVALID_STRUCTURE Handle = 0x80280043 - TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 - TPM_E_BAD_COUNTER Handle = 0x80280045 - TPM_E_NOT_FULLWRITE Handle = 0x80280046 - TPM_E_CONTEXT_GAP Handle = 0x80280047 - TPM_E_MAXNVWRITES Handle = 0x80280048 - TPM_E_NOOPERATOR Handle = 0x80280049 - TPM_E_RESOURCEMISSING Handle = 0x8028004A - TPM_E_DELEGATE_LOCK Handle = 0x8028004B - TPM_E_DELEGATE_FAMILY Handle = 0x8028004C - TPM_E_DELEGATE_ADMIN Handle = 0x8028004D - TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E - TPM_E_OWNER_CONTROL Handle = 0x8028004F - TPM_E_DAA_RESOURCES Handle = 0x80280050 - TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 - TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 - TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 - TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 - TPM_E_DAA_STAGE Handle = 0x80280055 - TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 - TPM_E_DAA_WRONG_W Handle = 0x80280057 - TPM_E_BAD_HANDLE Handle = 0x80280058 - TPM_E_BAD_DELEGATE Handle = 0x80280059 - TPM_E_BADCONTEXT Handle = 0x8028005A - TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B - TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C - TPM_E_MA_DESTINATION Handle = 0x8028005D - TPM_E_MA_SOURCE Handle = 0x8028005E - TPM_E_MA_AUTHORITY Handle = 0x8028005F - TPM_E_PERMANENTEK Handle = 0x80280061 - TPM_E_BAD_SIGNATURE Handle = 0x80280062 - TPM_E_NOCONTEXTSPACE Handle = 0x80280063 - TPM_20_E_ASYMMETRIC Handle = 0x80280081 - TPM_20_E_ATTRIBUTES Handle = 0x80280082 - TPM_20_E_HASH Handle = 0x80280083 - TPM_20_E_VALUE Handle = 0x80280084 - TPM_20_E_HIERARCHY Handle = 0x80280085 - TPM_20_E_KEY_SIZE Handle = 0x80280087 - TPM_20_E_MGF Handle = 0x80280088 - TPM_20_E_MODE Handle = 0x80280089 - TPM_20_E_TYPE Handle = 0x8028008A - TPM_20_E_HANDLE Handle = 0x8028008B - TPM_20_E_KDF Handle = 0x8028008C - TPM_20_E_RANGE Handle = 0x8028008D - TPM_20_E_AUTH_FAIL Handle = 0x8028008E - TPM_20_E_NONCE Handle = 0x8028008F - TPM_20_E_PP Handle = 0x80280090 - TPM_20_E_SCHEME Handle = 0x80280092 - TPM_20_E_SIZE Handle = 0x80280095 - TPM_20_E_SYMMETRIC Handle = 0x80280096 - TPM_20_E_TAG Handle = 0x80280097 - TPM_20_E_SELECTOR Handle = 0x80280098 - TPM_20_E_INSUFFICIENT Handle = 0x8028009A - TPM_20_E_SIGNATURE Handle = 0x8028009B - TPM_20_E_KEY Handle = 0x8028009C - TPM_20_E_POLICY_FAIL Handle = 0x8028009D - TPM_20_E_INTEGRITY Handle = 0x8028009F - TPM_20_E_TICKET Handle = 0x802800A0 - TPM_20_E_RESERVED_BITS Handle = 0x802800A1 - TPM_20_E_BAD_AUTH Handle = 0x802800A2 - TPM_20_E_EXPIRED Handle = 0x802800A3 - TPM_20_E_POLICY_CC Handle = 0x802800A4 - TPM_20_E_BINDING Handle = 0x802800A5 - TPM_20_E_CURVE Handle = 0x802800A6 - TPM_20_E_ECC_POINT Handle = 0x802800A7 - TPM_20_E_INITIALIZE Handle = 0x80280100 - TPM_20_E_FAILURE Handle = 0x80280101 - TPM_20_E_SEQUENCE Handle = 0x80280103 - TPM_20_E_PRIVATE Handle = 0x8028010B - TPM_20_E_HMAC Handle = 0x80280119 - TPM_20_E_DISABLED Handle = 0x80280120 - TPM_20_E_EXCLUSIVE Handle = 0x80280121 - TPM_20_E_ECC_CURVE Handle = 0x80280123 - TPM_20_E_AUTH_TYPE Handle = 0x80280124 - TPM_20_E_AUTH_MISSING Handle = 0x80280125 - TPM_20_E_POLICY Handle = 0x80280126 - TPM_20_E_PCR Handle = 0x80280127 - TPM_20_E_PCR_CHANGED Handle = 0x80280128 - TPM_20_E_UPGRADE Handle = 0x8028012D - TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E - TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F - TPM_20_E_REBOOT Handle = 0x80280130 - TPM_20_E_UNBALANCED Handle = 0x80280131 - TPM_20_E_COMMAND_SIZE Handle = 0x80280142 - TPM_20_E_COMMAND_CODE Handle = 0x80280143 - TPM_20_E_AUTHSIZE Handle = 0x80280144 - TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 - TPM_20_E_NV_RANGE Handle = 0x80280146 - TPM_20_E_NV_SIZE Handle = 0x80280147 - TPM_20_E_NV_LOCKED Handle = 0x80280148 - TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 - TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A - TPM_20_E_NV_SPACE Handle = 0x8028014B - TPM_20_E_NV_DEFINED Handle = 0x8028014C - TPM_20_E_BAD_CONTEXT Handle = 0x80280150 - TPM_20_E_CPHASH Handle = 0x80280151 - TPM_20_E_PARENT Handle = 0x80280152 - TPM_20_E_NEEDS_TEST Handle = 0x80280153 - TPM_20_E_NO_RESULT Handle = 0x80280154 - TPM_20_E_SENSITIVE Handle = 0x80280155 - TPM_E_COMMAND_BLOCKED Handle = 0x80280400 - TPM_E_INVALID_HANDLE Handle = 0x80280401 - TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 - TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 - TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 - TPM_E_RETRY Handle = 0x80280800 - TPM_E_NEEDS_SELFTEST Handle = 0x80280801 - TPM_E_DOING_SELFTEST Handle = 0x80280802 - TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 - TPM_20_E_CONTEXT_GAP Handle = 0x80280901 - TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 - TPM_20_E_SESSION_MEMORY Handle = 0x80280903 - TPM_20_E_MEMORY Handle = 0x80280904 - TPM_20_E_SESSION_HANDLES Handle = 0x80280905 - TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 - TPM_20_E_LOCALITY Handle = 0x80280907 - TPM_20_E_YIELDED Handle = 0x80280908 - TPM_20_E_CANCELED Handle = 0x80280909 - TPM_20_E_TESTING Handle = 0x8028090A - TPM_20_E_NV_RATE Handle = 0x80280920 - TPM_20_E_LOCKOUT Handle = 0x80280921 - TPM_20_E_RETRY Handle = 0x80280922 - TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 - TBS_E_INTERNAL_ERROR Handle = 0x80284001 - TBS_E_BAD_PARAMETER Handle = 0x80284002 - TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 - TBS_E_INVALID_CONTEXT Handle = 0x80284004 - TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 - TBS_E_IOERROR Handle = 0x80284006 - TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 - TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 - TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 - TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A - TBS_E_SERVICE_START_PENDING Handle = 0x8028400B - TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C - TBS_E_COMMAND_CANCELED Handle = 0x8028400D - TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E - TBS_E_TPM_NOT_FOUND Handle = 0x8028400F - TBS_E_SERVICE_DISABLED Handle = 0x80284010 - TBS_E_NO_EVENT_LOG Handle = 0x80284011 - TBS_E_ACCESS_DENIED Handle = 0x80284012 - TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 - TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 - TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 - TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 - TPMAPI_E_INVALID_STATE Handle = 0x80290100 - TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 - TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 - TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 - TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 - TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 - TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 - TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 - TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 - TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 - TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A - TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B - TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C - TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D - TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E - TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F - TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 - TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 - TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 - TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 - TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 - TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 - TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 - TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 - TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 - TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 - TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A - TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B - TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C - TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D - TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E - TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F - TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 - TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 - TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 - TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 - TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 - TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 - TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 - TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 - TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 - TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 - TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A - TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B - TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C - TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 - TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 - TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 - TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 - TBSIMP_E_TPM_ERROR Handle = 0x80290204 - TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 - TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 - TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 - TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 - TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 - TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A - TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B - TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C - TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D - TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E - TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F - TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 - TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 - TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 - TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 - TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 - TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 - TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 - TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 - TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 - TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 - TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A - TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B - TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 - TPM_E_PPI_USER_ABORT Handle = 0x80290301 - TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 - TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 - TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 - TPM_E_PCP_ERROR_MASK Handle = 0x80290400 - TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 - TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 - TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 - TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 - TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 - TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 - TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 - TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 - TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 - TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A - TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B - TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C - TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E - TPM_E_KEY_NOT_LOADED Handle = 0x8029040F - TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 - TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 - TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 - TPM_E_NOT_PCR_BOUND Handle = 0x80290413 - TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 - TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 - TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 - TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 - TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 - TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 - TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A - TPM_E_LOCKED_OUT Handle = 0x8029041B - TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C - TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D - TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E - TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F - TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 - TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 - TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 - TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 - TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 - PLA_E_DCS_NOT_FOUND Handle = 0x80300002 - PLA_E_DCS_IN_USE Handle = 0x803000AA - PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 - PLA_E_NO_MIN_DISK Handle = 0x80300070 - PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 - PLA_S_PROPERTY_IGNORED Handle = 0x00300100 - PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 - PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 - PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 - PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 - PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 - PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 - PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 - PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 - PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 - PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A - PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B - PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C - PLA_E_NO_DUPLICATES Handle = 0x8030010D - PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E - PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F - PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 - PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 - PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 - PLA_E_CABAPI_FAILURE Handle = 0x80300113 - FVE_E_LOCKED_VOLUME Handle = 0x80310000 - FVE_E_NOT_ENCRYPTED Handle = 0x80310001 - FVE_E_NO_TPM_BIOS Handle = 0x80310002 - FVE_E_NO_MBR_METRIC Handle = 0x80310003 - FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 - FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 - FVE_E_WRONG_BOOTMGR Handle = 0x80310006 - FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 - FVE_E_NOT_ACTIVATED Handle = 0x80310008 - FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 - FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A - FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B - FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C - FVE_E_AD_NO_VALUES Handle = 0x8031000D - FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E - FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F - FVE_E_BAD_INFORMATION Handle = 0x80310010 - FVE_E_TOO_SMALL Handle = 0x80310011 - FVE_E_SYSTEM_VOLUME Handle = 0x80310012 - FVE_E_FAILED_WRONG_FS Handle = 0x80310013 - FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 - FVE_E_NOT_SUPPORTED Handle = 0x80310015 - FVE_E_BAD_DATA Handle = 0x80310016 - FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 - FVE_E_TPM_NOT_OWNED Handle = 0x80310018 - FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 - FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A - FVE_E_CONV_READ Handle = 0x8031001B - FVE_E_CONV_WRITE Handle = 0x8031001C - FVE_E_KEY_REQUIRED Handle = 0x8031001D - FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E - FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F - FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 - FVE_E_PROTECTION_DISABLED Handle = 0x80310021 - FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 - FVE_E_FOREIGN_VOLUME Handle = 0x80310023 - FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 - FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 - FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 - FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 - FVE_E_NOT_OS_VOLUME Handle = 0x80310028 - FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 - FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A - FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B - FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C - FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D - FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E - FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 - FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 - FVE_E_RELATIVE_PATH Handle = 0x80310032 - FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 - FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 - FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 - FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 - FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 - FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 - FVE_E_NOT_DECRYPTED Handle = 0x80310039 - FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A - FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B - FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C - FVE_E_KEYFILE_INVALID Handle = 0x8031003D - FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E - FVE_E_TPM_DISABLED Handle = 0x8031003F - FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 - FVE_E_TPM_INVALID_PCR Handle = 0x80310041 - FVE_E_TPM_NO_VMK Handle = 0x80310042 - FVE_E_PIN_INVALID Handle = 0x80310043 - FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 - FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 - FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 - FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 - FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 - FVE_E_NO_LICENSE Handle = 0x80310049 - FVE_E_NOT_ON_STACK Handle = 0x8031004A - FVE_E_FS_MOUNTED Handle = 0x8031004B - FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C - FVE_E_DRY_RUN_FAILED Handle = 0x8031004D - FVE_E_REBOOT_REQUIRED Handle = 0x8031004E - FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F - FVE_E_RAW_ACCESS Handle = 0x80310050 - FVE_E_RAW_BLOCKED Handle = 0x80310051 - FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 - FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 - FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 - FVE_E_MOR_FAILED Handle = 0x80310055 - FVE_E_HIDDEN_VOLUME Handle = 0x80310056 - FVE_E_TRANSIENT_STATE Handle = 0x80310057 - FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 - FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 - FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A - FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B - FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C - FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D - FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E - FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F - FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 - FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 - FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 - FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 - FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 - FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 - FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 - FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 - FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 - FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 - FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A - FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B - FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C - FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D - FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E - FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F - FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 - FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 - FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 - FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 - FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 - FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 - FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 - FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 - FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 - FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 - FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 - FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 - FVE_E_RECOVERY_PARTITION Handle = 0x80310082 - FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 - FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 - FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 - FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 - FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 - FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 - FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 - FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 - FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 - FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 - FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 - FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 - FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 - FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 - FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 - FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 - FVE_E_ENH_PIN_INVALID Handle = 0x80310099 - FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A - FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B - FVE_E_EFI_ONLY Handle = 0x8031009C - FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D - FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E - FVE_E_INVALID_NKP_CERT Handle = 0x8031009F - FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 - FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 - FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 - FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 - FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 - FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 - FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 - FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 - FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 - FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 - FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA - FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB - FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC - FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD - FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE - FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF - FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 - FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 - FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 - FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 - FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 - FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 - FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 - FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 - FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 - FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 - FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA - FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB - FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC - FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD - FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE - FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF - FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 - FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 - FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 - FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 - FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 - FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 - FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 - FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 - FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 - FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 - FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA - FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB - FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC - FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD - FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE - FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF - FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 - FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 - FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 - FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 - FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 - FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 - FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 - 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 - FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 - FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 - FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 - FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 - FWP_E_NOT_FOUND Handle = 0x80320008 - FWP_E_ALREADY_EXISTS Handle = 0x80320009 - FWP_E_IN_USE Handle = 0x8032000A - FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B - FWP_E_WRONG_SESSION Handle = 0x8032000C - FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D - FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E - FWP_E_TXN_ABORTED Handle = 0x8032000F - FWP_E_SESSION_ABORTED Handle = 0x80320010 - FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 - FWP_E_TIMEOUT Handle = 0x80320012 - FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 - FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 - FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 - FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 - FWP_E_BUILTIN_OBJECT Handle = 0x80320017 - FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 - FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 - FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A - FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B - FWP_E_NULL_POINTER Handle = 0x8032001C - FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D - FWP_E_INVALID_FLAGS Handle = 0x8032001E - FWP_E_INVALID_NET_MASK Handle = 0x8032001F - FWP_E_INVALID_RANGE Handle = 0x80320020 - FWP_E_INVALID_INTERVAL Handle = 0x80320021 - FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 - FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 - FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 - FWP_E_INVALID_WEIGHT Handle = 0x80320025 - FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 - FWP_E_TYPE_MISMATCH Handle = 0x80320027 - FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 - FWP_E_RESERVED Handle = 0x80320029 - FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A - FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B - FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C - FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D - FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E - FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F - FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 - FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 - FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 - FWP_E_NEVER_MATCH Handle = 0x80320033 - FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 - FWP_E_INVALID_PARAMETER Handle = 0x80320035 - FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 - FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 - FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 - FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 - FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A - FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B - FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C - FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D - FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E - FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F - FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 - FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 - FWP_E_INVALID_DNS_NAME Handle = 0x80320042 - FWP_E_STILL_ON Handle = 0x80320043 - FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 - FWP_E_DROP_NOICMP Handle = 0x80320104 - WS_S_ASYNC Handle = 0x003D0000 - WS_S_END Handle = 0x003D0001 - WS_E_INVALID_FORMAT Handle = 0x803D0000 - WS_E_OBJECT_FAULTED Handle = 0x803D0001 - WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 - WS_E_INVALID_OPERATION Handle = 0x803D0003 - WS_E_OPERATION_ABORTED Handle = 0x803D0004 - WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 - WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 - WS_E_OPERATION_ABANDONED Handle = 0x803D0007 - WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 - WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 - WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A - WS_E_ADDRESS_IN_USE Handle = 0x803D000B - WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C - WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D - WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E - WS_E_ENDPOINT_FAILURE Handle = 0x803D000F - WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 - WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 - WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 - WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 - WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 - WS_E_PROXY_FAILURE Handle = 0x803D0015 - WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 - WS_E_NOT_SUPPORTED Handle = 0x803D0017 - WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 - WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 - WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A - WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B - WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C - WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D - WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E - WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F - WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 - WS_E_OTHER Handle = 0x803D0021 - WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 - WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 - ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 - ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 - ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 - ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 - ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 - ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 - ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 - ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A - ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B - ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C - ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D - ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB - ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F - ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 - ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 - ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 - ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 - ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 - ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 - ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 - ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A - ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B - ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C - ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D - ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E - ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F - ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 - ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 - ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A - ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B - ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C - ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D - ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E - ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F - ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 - ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 - ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 - ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 - ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 - ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 - ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 - ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 - ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 - ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 - ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 - ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 - ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F - ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 - ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 - ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 - ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 - ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 - ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 - ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 - ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 - ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 - ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 - ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A - ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B - ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C - ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D - ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E - ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 - ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 - ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 - ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 - ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 - ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 - ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 - ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 - ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 - ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A - ERROR_HV_NO_DATA syscall.Errno = 0xC035001B - ERROR_HV_INACTIVE syscall.Errno = 0xC035001C - ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D - ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E - ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 - ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 - ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C - ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D - ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E - ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F - ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 - ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 - ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 - ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 - ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 - ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 - ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 - ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 - ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F - ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 - ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 - ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 - ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 - ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 - ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 - ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 - ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 - ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 - ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 - ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 - ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 - ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 - ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 - ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A - ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B - ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C - ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D - ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E - ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F - ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 - ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 - ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 - ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 - ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 - ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 - ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 - ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 - ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 - ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 - ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A - ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B - ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C - ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D - ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E - ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F - ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 - ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 - ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 - ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 - ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 - ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 - ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 - ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 - ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 - ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 - ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A - ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 - ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 - ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 - ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 - ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 - ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 - ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 - ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 - ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 - ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 - ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A - ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B - ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C - ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D - ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E - ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F - ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 - ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 - ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 - ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 - HCS_E_TERMINATED_DURING_START Handle = 0x80370100 - HCS_E_IMAGE_MISMATCH Handle = 0x80370101 - HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 - HCS_E_INVALID_STATE Handle = 0x80370105 - HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 - HCS_E_TERMINATED Handle = 0x80370107 - HCS_E_CONNECT_FAILED Handle = 0x80370108 - HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 - HCS_E_CONNECTION_CLOSED Handle = 0x8037010A - HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B - HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C - HCS_E_INVALID_JSON Handle = 0x8037010D - HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E - HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F - HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 - HCS_E_PROTOCOL_ERROR Handle = 0x80370111 - HCS_E_INVALID_LAYER Handle = 0x80370112 - HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 - HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 - HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 - HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 - HCS_E_OPERATION_PENDING Handle = 0x80370117 - HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 - HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 - HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A - HCS_E_ACCESS_DENIED Handle = 0x8037011B - HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C - ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 - ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 - WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 - WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 - WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 - WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 - WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 - WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 - WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 - WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 - WHV_E_INVALID_VP_STATE Handle = 0x80370308 - WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 - ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 - ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 - ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 - ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 - ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 - ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 - ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 - ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 - ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 - ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 - ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 - ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 - ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 - ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A - ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B - ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C - ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D - ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E - ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F - ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 - ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 - ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 - ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 - ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 - ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 - ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 - ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 - ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 - ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A - ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B - ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C - ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D - ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E - ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F - ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 - ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 - ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 - ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 - ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 - ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 - ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 - ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 - ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 - ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 - ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A - ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B - ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C - ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D - ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E - ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F - ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 - ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 - ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 - ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 - ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 - ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 - ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 - ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 - ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 - ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 - ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A - ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B - ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C - ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D - ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E - ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F - ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 - ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 - ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 - ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 - ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 - ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 - ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 - ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 - ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 - ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 - ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A - ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B - ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C - ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D - ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E - ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F - ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 - ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 - ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 - ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 - ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 - ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 - ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 - ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 - ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 - ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A - ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B - ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C - ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 - ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 - ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 - ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 - ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 - ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 - ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 - ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 - ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 - ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 - ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 - ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 - ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A - ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B - ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C - ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D - ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E - ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F - ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 - ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 - ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 - ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 - ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 - ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 - ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 - ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 - ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 - ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 - ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A - ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B - ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C - ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D - ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E - ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F - ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 - ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 - ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 - ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 - ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 - ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 - ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 - ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 - ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 - ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 - ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A - ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 - ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 - HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 - HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 - HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 - HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 - HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 - HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 - HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 - HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 - HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 - HCN_E_INVALID_NETWORK Handle = 0x803B000A - HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B - HCN_E_INVALID_ENDPOINT Handle = 0x803B000C - HCN_E_INVALID_POLICY Handle = 0x803B000D - HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E - HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F - HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 - HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 - HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 - HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 - HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 - HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 - HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 - HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 - HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 - HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 - HCN_E_REGKEY_FAILURE Handle = 0x803B001A - HCN_E_INVALID_JSON Handle = 0x803B001B - HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C - HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D - HCN_E_INVALID_IP Handle = 0x803B001E - HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F - HCN_E_MANAGER_STOPPED Handle = 0x803B0020 - GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 - GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 - GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 - GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 - GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 - GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 - 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 - SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 - SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 - SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 - SDIAG_E_DISABLED syscall.Errno = 0x803C0106 - SDIAG_E_TRUST syscall.Errno = 0x803C0107 - SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 - SDIAG_E_VERSION syscall.Errno = 0x803C0109 - SDIAG_E_RESOURCE syscall.Errno = 0x803C010A - SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B - WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 - WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 - WPN_E_INVALID_APP Handle = 0x803E0102 - WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 - WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 - WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 - WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 - WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 - WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 - WPN_E_CLOUD_DISABLED Handle = 0x803E0109 - WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 - WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A - WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B - WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C - WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 - WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 - WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 - WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 - WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 - WPN_E_TAG_SIZE Handle = 0x803E0116 - WPN_E_ACCESS_DENIED Handle = 0x803E0117 - WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 - WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 - WPN_E_DEV_ID_SIZE Handle = 0x803E0120 - WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A - WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B - WPN_E_OUT_OF_SESSION Handle = 0x803E0200 - WPN_E_POWER_SAVE Handle = 0x803E0201 - WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 - WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 - WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 - WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 - WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 - WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 - WPN_E_STORAGE_LOCKED Handle = 0x803E0208 - WPN_E_GROUP_SIZE Handle = 0x803E0209 - WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A - WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B - E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 - E_MBN_BAD_SIM Handle = 0x80548202 - E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 - E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 - E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 - E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 - E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 - E_MBN_RADIO_POWER_OFF Handle = 0x80548208 - E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 - E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A - E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B - E_MBN_INVALID_CACHE Handle = 0x8054820C - E_MBN_NOT_REGISTERED Handle = 0x8054820D - E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E - E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F - E_MBN_PIN_REQUIRED Handle = 0x80548210 - E_MBN_PIN_DISABLED Handle = 0x80548211 - E_MBN_FAILURE Handle = 0x80548212 - E_MBN_INVALID_PROFILE Handle = 0x80548218 - E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 - E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 - E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 - E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 - E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 - E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 - E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 - E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 - E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 - E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 - E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 - PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 - PEER_E_NOT_INITIALIZED Handle = 0x80630002 - PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 - PEER_E_NOT_LICENSED Handle = 0x80630004 - PEER_E_INVALID_GRAPH Handle = 0x80630010 - PEER_E_DBNAME_CHANGED Handle = 0x80630011 - PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 - PEER_E_GRAPH_NOT_READY Handle = 0x80630013 - PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 - PEER_E_GRAPH_IN_USE Handle = 0x80630015 - PEER_E_INVALID_DATABASE Handle = 0x80630016 - PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 - PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 - PEER_E_CONNECT_SELF Handle = 0x80630106 - PEER_E_ALREADY_LISTENING Handle = 0x80630107 - PEER_E_NODE_NOT_FOUND Handle = 0x80630108 - PEER_E_CONNECTION_FAILED Handle = 0x80630109 - PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A - PEER_E_CONNECTION_REFUSED Handle = 0x8063010B - PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 - PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 - PEER_E_NO_KEY_ACCESS Handle = 0x80630203 - PEER_E_GROUPS_EXIST Handle = 0x80630204 - PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 - PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 - PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 - PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 - PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 - PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 - PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 - PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 - PEER_E_INVALID_SEARCH Handle = 0x80630601 - PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 - PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 - PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 - PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 - PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 - PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 - PEER_E_NO_CLOUD Handle = 0x80631001 - PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 - PEER_E_INVALID_RECORD Handle = 0x80632010 - PEER_E_NOT_AUTHORIZED Handle = 0x80632020 - PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 - PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 - PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 - PEER_E_INVALID_PEER_NAME Handle = 0x80632050 - PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 - PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 - PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 - PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 - PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 - PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 - PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 - PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 - PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 - PEER_E_GROUP_NOT_READY Handle = 0x80632091 - PEER_E_GROUP_IN_USE Handle = 0x80632092 - PEER_E_INVALID_GROUP Handle = 0x80632093 - PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 - PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 - PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 - PEER_E_IDENTITY_DELETED Handle = 0x806320A0 - PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 - PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 - PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 - PEER_S_NO_EVENT_DATA Handle = 0x00630002 - PEER_S_ALREADY_CONNECTED Handle = 0x00632000 - PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 - PEER_S_NO_CONNECTIVITY Handle = 0x00630005 - PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 - PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 - PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 - PEER_E_NO_MORE Handle = 0x80634003 - PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 - PEER_E_INVITE_CANCELLED Handle = 0x80637000 - PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 - PEER_E_NOT_SIGNED_IN Handle = 0x80637003 - PEER_E_PRIVACY_DECLINED Handle = 0x80637004 - PEER_E_TIMEOUT Handle = 0x80637005 - PEER_E_INVALID_ADDRESS Handle = 0x80637007 - PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 - PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 - PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A - PEER_E_FW_DECLINED Handle = 0x8063700B - UI_E_CREATE_FAILED Handle = 0x802A0001 - UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 - UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 - UI_E_OBJECT_SEALED Handle = 0x802A0004 - UI_E_VALUE_NOT_SET Handle = 0x802A0005 - UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 - UI_E_INVALID_OUTPUT Handle = 0x802A0007 - UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 - UI_E_DIFFERENT_OWNER Handle = 0x802A0009 - UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A - UI_E_FP_OVERFLOW Handle = 0x802A000B - UI_E_WRONG_THREAD Handle = 0x802A000C - UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 - UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 - UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 - UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 - UI_E_LOOPS_OVERLAP Handle = 0x802A0105 - UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 - UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 - UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 - UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 - UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A - UI_E_INVALID_DIMENSION Handle = 0x802A010B - UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C - UI_E_WINDOW_CLOSED Handle = 0x802A0201 - E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 - E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 - E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 - E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 - E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 - E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 - E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 - E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A - E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C - E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D - E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E - E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F - E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 - E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 - E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 - E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 - E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 - E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 - E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 - E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 - STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 - STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 - STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 - STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 - STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 - STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 - STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 - STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 - STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A - STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B - STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C - STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D - STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E - STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F - STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 - STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 - STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 - STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 - STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 - ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 - ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 - ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 - ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 - ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 - ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 - ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 - ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 - ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 - ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A - ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B - ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C - ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D - ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E - ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F - ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 - ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 - ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 - ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 - ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 - ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 - ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 - ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 - ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 - ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 - ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 - ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 - ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 - ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 - ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 - ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 - ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A - ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 - ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 - ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 - ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 - ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 - ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 - ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 - ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 - ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 - ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 - ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A - DXGI_STATUS_OCCLUDED Handle = 0x087A0001 - DXGI_STATUS_CLIPPED Handle = 0x087A0002 - DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 - DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 - DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 - DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 - DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 - DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 - DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 - DXGI_ERROR_MORE_DATA Handle = 0x887A0003 - DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 - DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 - DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 - DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 - DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A - DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B - DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C - DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 - DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 - DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 - DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 - DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 - DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 - DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 - DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 - DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 - DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A - DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B - DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C - DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D - DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E - DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 - DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 - DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 - DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 - DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A - DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 - DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F - DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 - DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 - DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 - DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 - DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 - DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 - DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 - D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 - D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 - D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 - D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 - D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 - D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 - D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 - D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 - D2DERR_WRONG_STATE Handle = 0x88990001 - D2DERR_NOT_INITIALIZED Handle = 0x88990002 - D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 - D2DERR_SCANNER_FAILED Handle = 0x88990004 - D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 - D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 - D2DERR_ZERO_VECTOR Handle = 0x88990007 - D2DERR_INTERNAL_ERROR Handle = 0x88990008 - D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 - D2DERR_INVALID_CALL Handle = 0x8899000A - D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B - D2DERR_RECREATE_TARGET Handle = 0x8899000C - D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D - D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E - D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F - D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 - D2DERR_BAD_NUMBER Handle = 0x88990011 - D2DERR_WRONG_FACTORY Handle = 0x88990012 - D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 - D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 - D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 - D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 - D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 - D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 - D2DERR_WIN32_ERROR Handle = 0x88990019 - D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A - D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B - D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C - D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D - D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E - D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F - D2DERR_CYCLIC_GRAPH Handle = 0x88990020 - D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 - D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 - D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 - D2DERR_INVALID_TARGET Handle = 0x88990024 - D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 - D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 - D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 - D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 - D2DERR_INVALID_PROPERTY Handle = 0x88990029 - D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A - D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B - D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C - D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D - D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E - DWRITE_E_FILEFORMAT Handle = 0x88985000 - DWRITE_E_UNEXPECTED Handle = 0x88985001 - DWRITE_E_NOFONT Handle = 0x88985002 - DWRITE_E_FILENOTFOUND Handle = 0x88985003 - DWRITE_E_FILEACCESS Handle = 0x88985004 - DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 - DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 - DWRITE_E_CACHEFORMAT Handle = 0x88985007 - DWRITE_E_CACHEVERSION Handle = 0x88985008 - DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 - DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A - DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B - DWRITE_E_NOCOLOR Handle = 0x8898500C - DWRITE_E_REMOTEFONT Handle = 0x8898500D - DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E - DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F - DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 - WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 - WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 - WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 - WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B - WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C - WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D - WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 - WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 - WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 - WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 - WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 - WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 - WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 - WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 - WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 - WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 - WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 - WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 - WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 - WINCODEC_ERR_BADHEADER Handle = 0x88982F61 - WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 - WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 - WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 - WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 - WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 - WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 - WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 - WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 - WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A - WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B - WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C - WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D - WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E - WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F - WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 - WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 - WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 - WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 - WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 - WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 - WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 - MILERR_OBJECTBUSY Handle = 0x88980001 - MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 - MILERR_WIN32ERROR Handle = 0x88980003 - MILERR_SCANNER_FAILED Handle = 0x88980004 - MILERR_SCREENACCESSDENIED Handle = 0x88980005 - MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 - MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 - MILERR_ZEROVECTOR Handle = 0x88980008 - MILERR_TERMINATED Handle = 0x88980009 - MILERR_BADNUMBER Handle = 0x8898000A - MILERR_INTERNALERROR Handle = 0x88980080 - MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 - MILERR_INVALIDCALL Handle = 0x88980085 - MILERR_ALREADYLOCKED Handle = 0x88980086 - MILERR_NOTLOCKED Handle = 0x88980087 - MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 - MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 - MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A - MILERR_GENERIC_IGNORE Handle = 0x8898008B - MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C - MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D - MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E - MILERR_ALREADY_INITIALIZED Handle = 0x8898008F - MILERR_MISMATCHED_SIZE Handle = 0x88980090 - MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 - MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 - MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 - MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 - MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 - MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 - MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 - MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 - MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 - MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A - MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B - MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D - MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E - MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F - MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 - MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 - UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 - UCEERR_UNKNOWNPACKET Handle = 0x88980401 - UCEERR_ILLEGALPACKET Handle = 0x88980402 - UCEERR_MALFORMEDPACKET Handle = 0x88980403 - UCEERR_ILLEGALHANDLE Handle = 0x88980404 - UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 - UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 - UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 - UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 - UCEERR_BLOCKSFULL Handle = 0x88980409 - UCEERR_MEMORYFAILURE Handle = 0x8898040A - UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B - UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C - UCEERR_OUTOFHANDLES Handle = 0x8898040D - UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E - UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F - UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 - UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 - UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 - UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 - UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 - UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 - UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 - UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 - UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 - UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 - UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 - UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 - UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 - UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 - MILAVERR_NOCLOCK Handle = 0x88980500 - MILAVERR_NOMEDIATYPE Handle = 0x88980501 - MILAVERR_NOVIDEOMIXER Handle = 0x88980502 - MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 - MILAVERR_NOREADYFRAMES Handle = 0x88980504 - MILAVERR_MODULENOTLOADED Handle = 0x88980505 - MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 - MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 - MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 - MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 - MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A - MILAVERR_SEEKFAILED Handle = 0x8898050B - MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C - MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D - MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E - MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E - MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F - MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 - MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 - MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 - MILEFFECTSERR_RESERVED Handle = 0x88980613 - MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 - MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 - MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 - MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 - MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 - MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 - MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A - MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B - DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 - DWMERR_THEME_FAILED Handle = 0x88980701 - DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 - DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 - DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 - DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 - ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 - ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 - ONL_E_INVALID_APPLICATION Handle = 0x80860003 - ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 - ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 - ONL_E_FORCESIGNIN Handle = 0x80860006 - ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 - ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 - ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 - ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A - ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B - ONL_E_ACTION_REQUIRED Handle = 0x8086000C - ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D - ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E - ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F - ONL_E_REQUEST_THROTTLED Handle = 0x80860010 - FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 - FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 - E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 - E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 - E_UAC_DISABLED Handle = 0x80270252 - E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 - E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 - E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 - E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 - E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 - S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 - S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 - E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A - E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B - E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C - E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D - E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 - E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 - E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 - E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 - E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 - E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 - E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 - E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 - E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 - E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 - E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 - E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 - E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 - E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 - E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 - E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 - E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 - E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 - E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 - E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 - E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 - E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 - E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 - E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 - E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 - E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 - E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 - E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A - E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B - EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 - EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 - EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 - EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 - EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 - EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 - EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 - EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 - EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A - EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B - EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C - EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D - WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 - WEB_E_INVALID_XML Handle = 0x83750002 - WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 - WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 - WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 - WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 - WEB_E_INVALID_JSON_STRING Handle = 0x83750007 - WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 - WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 - HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 - HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 - HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 - HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 - HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C - HTTP_E_STATUS_MOVED Handle = 0x8019012D - HTTP_E_STATUS_REDIRECT Handle = 0x8019012E - HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F - HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 - HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 - HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 - HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 - HTTP_E_STATUS_DENIED Handle = 0x80190191 - HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 - HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 - HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 - HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 - HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 - HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 - HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 - HTTP_E_STATUS_CONFLICT Handle = 0x80190199 - HTTP_E_STATUS_GONE Handle = 0x8019019A - HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B - HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C - HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D - HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E - HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F - HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 - HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 - HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 - HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 - HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 - HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 - HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 - HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 - E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 - E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 - E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 - E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 - E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 - INPUT_E_OUT_OF_ORDER Handle = 0x80400000 - INPUT_E_REENTRANCY Handle = 0x80400001 - INPUT_E_MULTIMODAL Handle = 0x80400002 - INPUT_E_PACKET Handle = 0x80400003 - INPUT_E_FRAME Handle = 0x80400004 - INPUT_E_HISTORY Handle = 0x80400005 - INPUT_E_DEVICE_INFO Handle = 0x80400006 - INPUT_E_TRANSFORM Handle = 0x80400007 - INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 - INET_E_INVALID_URL Handle = 0x800C0002 - INET_E_NO_SESSION Handle = 0x800C0003 - INET_E_CANNOT_CONNECT Handle = 0x800C0004 - INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 - INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 - INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 - INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 - INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 - INET_E_NO_VALID_MEDIA Handle = 0x800C000A - INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B - INET_E_INVALID_REQUEST Handle = 0x800C000C - INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D - INET_E_SECURITY_PROBLEM Handle = 0x800C000E - INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F - INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 - INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 - INET_E_REDIRECT_FAILED Handle = 0x800C0014 - INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 - ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 - ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 - ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 - ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 - ERROR_IO_PREEMPTED Handle = 0x89010001 - JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 - WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 - WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 - WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 - WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 - WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 - WEP_E_NO_LICENSE Handle = 0x88010006 - WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 - WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 - WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 - ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 - ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 - ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 - ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 - ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 - ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 - ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 - ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 - ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 - ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 - ERROR_VHD_SHARED Handle = 0xC05CFF0A - ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B - ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C - ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 - ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 - WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 - WININET_E_TIMEOUT Handle = 0x80072EE2 - WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 - WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 - WININET_E_INVALID_URL Handle = 0x80072EE5 - WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 - WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 - WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 - WININET_E_INVALID_OPTION Handle = 0x80072EE9 - WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA - WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB - WININET_E_SHUTDOWN Handle = 0x80072EEC - WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED - WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE - WININET_E_LOGIN_FAILURE Handle = 0x80072EEF - WININET_E_INVALID_OPERATION Handle = 0x80072EF0 - WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 - WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 - WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 - WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 - WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 - WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 - WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 - WININET_E_NO_CONTEXT Handle = 0x80072EF8 - WININET_E_NO_CALLBACK Handle = 0x80072EF9 - WININET_E_REQUEST_PENDING Handle = 0x80072EFA - WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB - WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC - WININET_E_CANNOT_CONNECT Handle = 0x80072EFD - WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE - WININET_E_CONNECTION_RESET Handle = 0x80072EFF - WININET_E_FORCE_RETRY Handle = 0x80072F00 - WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 - WININET_E_NEED_UI Handle = 0x80072F02 - WININET_E_HANDLE_EXISTS Handle = 0x80072F04 - WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 - WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 - WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 - WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 - WININET_E_MIXED_SECURITY Handle = 0x80072F09 - WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A - WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B - WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C - WININET_E_INVALID_CA Handle = 0x80072F0D - WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E - WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F - WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 - WININET_E_DIALOG_PENDING Handle = 0x80072F11 - WININET_E_RETRY_DIALOG Handle = 0x80072F12 - WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 - WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 - WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 - WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 - WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 - WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 - WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 - WININET_E_INVALID_HEADER Handle = 0x80072F79 - WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A - WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B - WININET_E_REDIRECT_FAILED Handle = 0x80072F7C - WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D - WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E - WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F - WININET_E_DISCONNECTED Handle = 0x80072F83 - WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 - WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 - WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 - WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 - WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 - WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A - WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B - WININET_E_NOT_INITIALIZED Handle = 0x80072F8C - WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E - WININET_E_DECODING_FAILED Handle = 0x80072F8F - WININET_E_NOT_REDIRECTED Handle = 0x80072F80 - WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 - WININET_E_COOKIE_DECLINED Handle = 0x80072F82 - WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 - SQLITE_E_ERROR Handle = 0x87AF0001 - SQLITE_E_INTERNAL Handle = 0x87AF0002 - SQLITE_E_PERM Handle = 0x87AF0003 - SQLITE_E_ABORT Handle = 0x87AF0004 - SQLITE_E_BUSY Handle = 0x87AF0005 - SQLITE_E_LOCKED Handle = 0x87AF0006 - SQLITE_E_NOMEM Handle = 0x87AF0007 - SQLITE_E_READONLY Handle = 0x87AF0008 - SQLITE_E_INTERRUPT Handle = 0x87AF0009 - SQLITE_E_IOERR Handle = 0x87AF000A - SQLITE_E_CORRUPT Handle = 0x87AF000B - SQLITE_E_NOTFOUND Handle = 0x87AF000C - SQLITE_E_FULL Handle = 0x87AF000D - SQLITE_E_CANTOPEN Handle = 0x87AF000E - SQLITE_E_PROTOCOL Handle = 0x87AF000F - SQLITE_E_EMPTY Handle = 0x87AF0010 - SQLITE_E_SCHEMA Handle = 0x87AF0011 - SQLITE_E_TOOBIG Handle = 0x87AF0012 - SQLITE_E_CONSTRAINT Handle = 0x87AF0013 - SQLITE_E_MISMATCH Handle = 0x87AF0014 - SQLITE_E_MISUSE Handle = 0x87AF0015 - SQLITE_E_NOLFS Handle = 0x87AF0016 - SQLITE_E_AUTH Handle = 0x87AF0017 - SQLITE_E_FORMAT Handle = 0x87AF0018 - SQLITE_E_RANGE Handle = 0x87AF0019 - SQLITE_E_NOTADB Handle = 0x87AF001A - SQLITE_E_NOTICE Handle = 0x87AF001B - SQLITE_E_WARNING Handle = 0x87AF001C - SQLITE_E_ROW Handle = 0x87AF0064 - SQLITE_E_DONE Handle = 0x87AF0065 - SQLITE_E_IOERR_READ Handle = 0x87AF010A - SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A - SQLITE_E_IOERR_WRITE Handle = 0x87AF030A - SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A - SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A - SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A - SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A - SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A - SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A - SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A - SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A - SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A - SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A - SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A - SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A - SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A - SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A - SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A - SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A - SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A - SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A - SQLITE_E_IOERR_SEEK Handle = 0x87AF160A - SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A - SQLITE_E_IOERR_MMAP Handle = 0x87AF180A - SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A - SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A - SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 - SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 - SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 - SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 - SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 - SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E - SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E - SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E - SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E - SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B - SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 - SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 - SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 - SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 - SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 - SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 - SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 - SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 - SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 - SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 - SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 - SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 - SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 - SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 - SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 - SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B - SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B - SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C - UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 - UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 - UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 - UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 - UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 - UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 - UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 - UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 - UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 - UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A - UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B - UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C - UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D - UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E - UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F - UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 - UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 - UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 - UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 - UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 - UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 - UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 - UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 - UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 - UTC_E_INVALID_FILTER Handle = 0x87C51019 - UTC_E_EXE_TERMINATED Handle = 0x87C5101A - UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B - UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C - UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D - UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E - UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F - UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 - UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 - UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 - UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 - UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 - UTC_E_DELAY_TERMINATED Handle = 0x87C51025 - UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 - UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 - UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 - UTC_E_RPC_TIMEOUT Handle = 0x87C51029 - UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A - UTC_E_API_BUSY Handle = 0x87C5102B - UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C - UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D - UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E - UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F - UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 - UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 - UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 - UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 - UTC_E_BINARY_MISSING Handle = 0x87C51034 - UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 - UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 - UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 - UTC_E_THROTTLED Handle = 0x87C51038 - UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 - UTC_E_SCRIPT_MISSING Handle = 0x87C5103A - UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B - UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C - UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D - UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E - UTC_E_CERT_REV_FAILED Handle = 0x87C5103F - UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 - UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 - UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 - UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 - UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 - UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 - UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 - UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 - UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 - UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 - UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 - UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 - UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 - UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 - UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 - UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 - UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 - UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 - UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 - 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 deleted file mode 100644 index 6048ac6..0000000 --- a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go +++ /dev/null @@ -1,149 +0,0 @@ -// 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 deleted file mode 100644 index a58bc48..0000000 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ /dev/null @@ -1,4695 +0,0 @@ -// Code generated by 'go generate'; DO NOT EDIT. - -package windows - -import ( - "syscall" - "unsafe" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") - modadvapi32 = NewLazySystemDLL("advapi32.dll") - modcrypt32 = NewLazySystemDLL("crypt32.dll") - moddnsapi = NewLazySystemDLL("dnsapi.dll") - moddwmapi = NewLazySystemDLL("dwmapi.dll") - modiphlpapi = NewLazySystemDLL("iphlpapi.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") - modsetupapi = NewLazySystemDLL("setupapi.dll") - modshell32 = NewLazySystemDLL("shell32.dll") - moduser32 = NewLazySystemDLL("user32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") - modversion = NewLazySystemDLL("version.dll") - modwinmm = NewLazySystemDLL("winmm.dll") - modwintrust = NewLazySystemDLL("wintrust.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") - modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") - - procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") - procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") - procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") - procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") - 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") - procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") - 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") - procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procEqualSid = modadvapi32.NewProc("EqualSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procGetAce = modadvapi32.NewProc("GetAce") - 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") - procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") - 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") - procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") - 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") - procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") - procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") - procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") - procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") - procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") - procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") - procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") - procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") - procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procClearCommBreak = modkernel32.NewProc("ClearCommBreak") - procClearCommError = modkernel32.NewProc("ClearCommError") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") - 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") - procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") - 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") - procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") - procExitProcess = modkernel32.NewProc("ExitProcess") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") - 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") - procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") - procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") - procGetCommState = modkernel32.NewProc("GetCommState") - procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") - 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") - procGetFileTime = modkernel32.NewProc("GetFileTime") - procGetFileType = modkernel32.NewProc("GetFileType") - procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") - procGetLastError = modkernel32.NewProc("GetLastError") - procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") - procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") - procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") - procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") - procGetNamedPipeClientProcessId = modkernel32.NewProc("GetNamedPipeClientProcessId") - procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") - procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") - procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") - 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") - procModule32FirstW = modkernel32.NewProc("Module32FirstW") - procModule32NextW = modkernel32.NewProc("Module32NextW") - 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") - procPurgeComm = modkernel32.NewProc("PurgeComm") - procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") - procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") - procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procReadFile = modkernel32.NewProc("ReadFile") - procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") - procReleaseMutex = modkernel32.NewProc("ReleaseMutex") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procRemoveDllDirectory = modkernel32.NewProc("RemoveDllDirectory") - procResetEvent = modkernel32.NewProc("ResetEvent") - procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") - procResumeThread = modkernel32.NewProc("ResumeThread") - procSetCommBreak = modkernel32.NewProc("SetCommBreak") - procSetCommMask = modkernel32.NewProc("SetCommMask") - procSetCommState = modkernel32.NewProc("SetCommState") - procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") - procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") - procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") - procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") - procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") - 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") - procSetFileValidData = modkernel32.NewProc("SetFileValidData") - 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") - procSetupComm = modkernel32.NewProc("SetupComm") - 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") - procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") - procVirtualQuery = modkernel32.NewProc("VirtualQuery") - procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") - procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") - procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procWriteFile = modkernel32.NewProc("WriteFile") - procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetUserEnum = modnetapi32.NewProc("NetUserEnum") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNtCreateFile = modntdll.NewProc("NtCreateFile") - procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") - procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") - procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") - procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") - procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") - procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") - procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") - procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") - procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") - 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") - procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") - procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") - procEnumProcesses = modpsapi.NewProc("EnumProcesses") - procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") - procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") - procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") - procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") - procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") - procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") - procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") - procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") - procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") - procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") - procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") - procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") - procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") - procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") - procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") - procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") - procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") - procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") - procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") - procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") - procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") - procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") - procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") - procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") - procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") - procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") - procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") - procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") - procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") - procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") - procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") - procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") - procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") - procShellExecuteW = modshell32.NewProc("ShellExecuteW") - procEnumChildWindows = moduser32.NewProc("EnumChildWindows") - procEnumWindows = moduser32.NewProc("EnumWindows") - procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") - procGetClassNameW = moduser32.NewProc("GetClassNameW") - procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") - procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") - procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") - procGetKeyboardLayout = moduser32.NewProc("GetKeyboardLayout") - procGetShellWindow = moduser32.NewProc("GetShellWindow") - procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") - procIsWindow = moduser32.NewProc("IsWindow") - procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") - procIsWindowVisible = moduser32.NewProc("IsWindowVisible") - procLoadKeyboardLayoutW = moduser32.NewProc("LoadKeyboardLayoutW") - procMessageBoxW = moduser32.NewProc("MessageBoxW") - procToUnicodeEx = moduser32.NewProc("ToUnicodeEx") - procUnloadKeyboardLayout = moduser32.NewProc("UnloadKeyboardLayout") - procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") - procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") - procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") - procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") - procVerQueryValueW = modversion.NewProc("VerQueryValueW") - proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") - proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") - procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") - procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") - procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") - 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 cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) - ret = CONFIGRET(r0) - return -} - -func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) - ret = CONFIGRET(r0) - return -} - -func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) - ret = Errno(r0) - return -} - -func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { - var _p0 uint32 - if resetToDefault { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { - var _p0 uint32 - if disableAllPrivileges { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) - if r1 == 0 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 { - 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))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - 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) - if r1 == 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))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CreateProcessAsUser(token Token, 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 - } - r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) - if r1 == 0 { - 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 { - 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) - 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) - if r1 == 0 { - 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))) - if r1 == 0 { - err = errnoErr(e1) - } - 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 -} - -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 DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) - if r1 == 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) - if r1 == 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 - return -} - -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 GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { - r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - len = uint32(r0) - return -} - -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 - _p0, ret = syscall.UTF16PtrFromString(objectName) - if ret != nil { - return - } - return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) -} - -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 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 getSecurityDescriptorDacl(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(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 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { - var _p0 uint32 - if *groupDefaulted { - _p0 = 1 - } - 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 { - err = errnoErr(e1) - } - return -} - -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 *ownerDefaulted { - _p0 = 1 - } - 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 { - err = errnoErr(e1) - } - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -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 getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) - return -} - -func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) - subAuthority = (*uint32)(unsafe.Pointer(r0)) - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -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 isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) - isValid = r0 != 0 - return -} - -func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - isValid = r0 != 0 - return -} - -func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) - 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 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 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 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 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 { - err = errnoErr(e1) - } - return -} - -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 { - 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 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { - err = procQueryServiceDynamicInformation.Find() - if err != nil { - return - } - r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - 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) - if r1 == 0 { - 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) - if r1 == 0 { - 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 RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { - var _p0 uint32 - if watchSubtree { - _p0 = 1 - } - 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 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 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 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 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 RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) - handle = Handle(r0) - if handle == 0 { - 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 { - err = errnoErr(e1) - } - return -} - -func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) -} - -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 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 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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) - if r1 == 0 { - 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))) - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 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 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 CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - return -} - -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 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 { - err = errnoErr(e1) - } - return -} - -func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { - var _p0 uint32 - if *callerFreeProvOrNCryptKey { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) - *callerFreeProvOrNCryptKey = _p0 != 0 - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 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 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 _DnsQuery(_p0, qtype, options, extra, qrs, pr) -} - -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) - } - return -} - -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) - return -} - -func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) - if r0 != 0 { - ret = syscall.Errno(r0) - } - return -} - -func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { - r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - 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) - } - return -} - -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 { - errcode = syscall.Errno(r0) - } - return -} - -func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - 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) - } - return -} - -func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { - var _p0 uint32 - if initialNotification { - _p0 = 1 - } - r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { - var _p0 uint32 - if initialNotification { - _p0 = 1 - } - r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func AddDllDirectory(path *uint16) (cookie uintptr, err error) { - r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - cookie = uintptr(r0) - if cookie == 0 { - err = errnoErr(e1) - } - return -} - -func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) - if r1 == 0 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClearCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ClosePseudoConsole(console Handle) { - syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) - return -} - -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 { - 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 { - 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) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - 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) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - 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 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -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 -} - -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 { - err = errnoErr(e1) - } - return -} - -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 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 { - err = errnoErr(e1) - } - return -} - -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 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if initialOwner { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 || e1 == ERROR_ALREADY_EXISTS { - err = errnoErr(e1) - } - return -} - -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 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 { - 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 - } - 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 { - err = errnoErr(e1) - } - return -} - -func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { - r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) - if r0 != 0 { - hr = syscall.Errno(r0) - } - 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 { - 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 { - err = errnoErr(e1) - } - 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))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) - return -} - -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) - if r1 == 0 { - 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 { - err = errnoErr(e1) - } - return -} - -func DisconnectNamedPipe(pipe Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) - if r1 == 0 { - 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 - } - 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 EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) -} - -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 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 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 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 FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - 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 { - 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 { - 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)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) - acp = uint32(r0) - return -} - -func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) - ret = uint32(r0) - return -} - -func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) - return -} - -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetConsoleCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) - cp = uint32(r0) - if cp == 0 { - err = errnoErr(e1) - } - return -} - -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 GetConsoleOutputCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) - cp = uint32(r0) - if cp == 0 { - 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) - if r1 == 0 { - 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 { - err = errnoErr(e1) - } - return -} - -func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) - return -} - -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) - return -} - -func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) - if r1 == 0 { - 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 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 -} - -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 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 -} - -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 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 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 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 GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - 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 { - err = errnoErr(e1) - } - return -} - -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 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 GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) - size = uintptr(r0) - return -} - -func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) - if r0 != 0 { - lasterr = syscall.Errno(r0) - } - 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 { - err = errnoErr(e1) - } - return -} - -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 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 GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) - ret = uint32(r0) - return -} - -func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) - n = uint32(r0) - if n == 0 { - err = errnoErr(e1) - } - return -} - -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 GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 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 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 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 { - err = errnoErr(e1) - } - return -} - -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 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -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 { - 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 { - err = errnoErr(e1) - } - return -} - -func getStartupInfo(startupInfo *StartupInfo) { - syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - 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 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 { - err = errnoErr(e1) - } - return -} - -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 { - err = errnoErr(e1) - } - return -} - -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 { - 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 { - 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) - if r1 == 0 { - err = errnoErr(e1) - } - 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) - if r1 == 0 { - 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 { - err = errnoErr(e1) - } - return -} - -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 { - 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 { - err = errnoErr(e1) - } - return -} - -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 { - 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 Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) - if r1 == 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 PurgeComm(handle Handle, dwFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 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 ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) - 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 RemoveDllDirectory(cookie uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 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 resizePseudoConsole(pconsole Handle, size uint32) (hr error) { - r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) - if r0 != 0 { - hr = syscall.Errno(r0) - } - 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 SetCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) - if r1 == 0 { - 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 SetConsoleCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 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 SetConsoleOutputCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 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 SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 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 SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) - 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 VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) - 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 WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) - sessionID = uint32(r0) - return -} - -func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) - 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 WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) - 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 NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { - r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) - 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 NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) - 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 NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) - if r0 != 0 { - ntstatus = NTStatus(r0) - } - return -} - -func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) - ret = r0 != 0 - 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 RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) - ret = r0 != 0 - return -} - -func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) - 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 EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) - 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 SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) - handle = DevInfo(r0) - if handle == DevInfo(InvalidHandle) { - err = errnoErr(e1) - } - return -} - -func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) - key = Handle(r0) - if key == InvalidHandle { - err = errnoErr(e1) - } - return -} - -func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) - argv = (**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 EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) - return -} - -func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) - if r1 == 0 { - 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 GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) - copied = int32(r0) - if copied == 0 { - err = errnoErr(e1) - } - return -} - -func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) - hwnd = HWND(r0) - return -} - -func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) - hwnd = HWND(r0) - return -} - -func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func GetKeyboardLayout(tid uint32) (hkl Handle) { - r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) - hkl = Handle(r0) - 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 IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) - isWindow = r0 != 0 - return -} - -func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) - isUnicode = r0 != 0 - return -} - -func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) - isVisible = r0 != 0 - return -} - -func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) - hkl = Handle(r0) - if hkl == 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 ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { - r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) - ret = int32(r0) - return -} - -func UnloadKeyboardLayout(hkl Handle) (err error) { - r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) - if r1 == 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 GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfoSize(_p0, zeroHandle) -} - -func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) - bufSize = uint32(r0) - if bufSize == 0 { - err = errnoErr(e1) - } - return -} - -func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(filename) - if err != nil { - return - } - return _GetFileVersionInfo(_p0, handle, bufSize, buffer) -} - -func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(subBlock) - if err != nil { - return - } - return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) -} - -func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func TimeBeginPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func TimeEndPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) - 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 WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { - r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) - if r1 != 0 { - err = errnoErr(e1) - } - return -} - -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - 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 WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) - if r1 == socket_error { - err = errnoErr(e1) - } - return -} - -func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) - 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/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE deleted file mode 100644 index 2a7cf70..0000000 --- a/vendor/golang.org/x/tools/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS deleted file mode 100644 index 7330990..0000000 --- a/vendor/golang.org/x/tools/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go deleted file mode 100644 index 89f5097..0000000 --- a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go +++ /dev/null @@ -1,663 +0,0 @@ -// Copyright 2013 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 astutil - -// This file defines utilities for working with source positions. - -import ( - "fmt" - "go/ast" - "go/token" - "sort" -) - -// PathEnclosingInterval returns the node that encloses the source -// interval [start, end), and all its ancestors up to the AST root. -// -// The definition of "enclosing" used by this function considers -// additional whitespace abutting a node to be enclosed by it. -// In this example: -// -// z := x + y // add them -// <-A-> -// <----B-----> -// -// the ast.BinaryExpr(+) node is considered to enclose interval B -// even though its [Pos()..End()) is actually only interval A. -// This behaviour makes user interfaces more tolerant of imperfect -// input. -// -// This function treats tokens as nodes, though they are not included -// in the result. e.g. PathEnclosingInterval("+") returns the -// enclosing ast.BinaryExpr("x + y"). -// -// If start==end, the 1-char interval following start is used instead. -// -// The 'exact' result is true if the interval contains only path[0] -// and perhaps some adjacent whitespace. It is false if the interval -// overlaps multiple children of path[0], or if it contains only -// interior whitespace of path[0]. -// In this example: -// -// z := x + y // add them -// <--C--> <---E--> -// ^ -// D -// -// intervals C, D and E are inexact. C is contained by the -// z-assignment statement, because it spans three of its children (:=, -// x, +). So too is the 1-char interval D, because it contains only -// interior whitespace of the assignment. E is considered interior -// whitespace of the BlockStmt containing the assignment. -// -// The resulting path is never empty; it always contains at least the -// 'root' *ast.File. Ideally PathEnclosingInterval would reject -// intervals that lie wholly or partially outside the range of the -// file, but unfortunately ast.File records only the token.Pos of -// the 'package' keyword, but not of the start of the file itself. -func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) { - // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging - - // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end). - var visit func(node ast.Node) bool - visit = func(node ast.Node) bool { - path = append(path, node) - - nodePos := node.Pos() - nodeEnd := node.End() - - // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging - - // Intersect [start, end) with interval of node. - if start < nodePos { - start = nodePos - } - if end > nodeEnd { - end = nodeEnd - } - - // Find sole child that contains [start, end). - children := childrenOf(node) - l := len(children) - for i, child := range children { - // [childPos, childEnd) is unaugmented interval of child. - childPos := child.Pos() - childEnd := child.End() - - // [augPos, augEnd) is whitespace-augmented interval of child. - augPos := childPos - augEnd := childEnd - if i > 0 { - augPos = children[i-1].End() // start of preceding whitespace - } - if i < l-1 { - nextChildPos := children[i+1].Pos() - // Does [start, end) lie between child and next child? - if start >= augEnd && end <= nextChildPos { - return false // inexact match - } - augEnd = nextChildPos // end of following whitespace - } - - // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n", - // i, augPos, augEnd, start, end) // debugging - - // Does augmented child strictly contain [start, end)? - if augPos <= start && end <= augEnd { - if is[tokenNode](child) { - return true - } - - // childrenOf elides the FuncType node beneath FuncDecl. - // Add it back here for TypeParams, Params, Results, - // all FieldLists). But we don't add it back for the "func" token - // even though it is is the tree at FuncDecl.Type.Func. - if decl, ok := node.(*ast.FuncDecl); ok { - if fields, ok := child.(*ast.FieldList); ok && fields != decl.Recv { - path = append(path, decl.Type) - } - } - - return visit(child) - } - - // Does [start, end) overlap multiple children? - // i.e. left-augmented child contains start - // but LR-augmented child does not contain end. - if start < childEnd && end > augEnd { - break - } - } - - // No single child contained [start, end), - // so node is the result. Is it exact? - - // (It's tempting to put this condition before the - // child loop, but it gives the wrong result in the - // case where a node (e.g. ExprStmt) and its sole - // child have equal intervals.) - if start == nodePos && end == nodeEnd { - return true // exact match - } - - return false // inexact: overlaps multiple children - } - - // Ensure [start,end) is nondecreasing. - if start > end { - start, end = end, start - } - - if start < root.End() && end > root.Pos() { - if start == end { - end = start + 1 // empty interval => interval of size 1 - } - exact = visit(root) - - // Reverse the path: - for i, l := 0, len(path); i < l/2; i++ { - path[i], path[l-1-i] = path[l-1-i], path[i] - } - } else { - // Selection lies within whitespace preceding the - // first (or following the last) declaration in the file. - // The result nonetheless always includes the ast.File. - path = append(path, root) - } - - return -} - -// tokenNode is a dummy implementation of ast.Node for a single token. -// They are used transiently by PathEnclosingInterval but never escape -// this package. -type tokenNode struct { - pos token.Pos - end token.Pos -} - -func (n tokenNode) Pos() token.Pos { - return n.pos -} - -func (n tokenNode) End() token.Pos { - return n.end -} - -func tok(pos token.Pos, len int) ast.Node { - return tokenNode{pos, pos + token.Pos(len)} -} - -// childrenOf returns the direct non-nil children of ast.Node n. -// It may include fake ast.Node implementations for bare tokens. -// it is not safe to call (e.g.) ast.Walk on such nodes. -func childrenOf(n ast.Node) []ast.Node { - var children []ast.Node - - // First add nodes for all true subtrees. - ast.Inspect(n, func(node ast.Node) bool { - if node == n { // push n - return true // recur - } - if node != nil { // push child - children = append(children, node) - } - return false // no recursion - }) - - // TODO(adonovan): be more careful about missing (!Pos.Valid) - // tokens in trees produced from invalid input. - - // Then add fake Nodes for bare tokens. - switch n := n.(type) { - case *ast.ArrayType: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Elt.End(), len("]"))) - - case *ast.AssignStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.BasicLit: - children = append(children, - tok(n.ValuePos, len(n.Value))) - - case *ast.BinaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.BlockStmt: - if n.Lbrace.IsValid() { - children = append(children, tok(n.Lbrace, len("{"))) - } - if n.Rbrace.IsValid() { - children = append(children, tok(n.Rbrace, len("}"))) - } - - case *ast.BranchStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.CallExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - if n.Ellipsis != 0 { - children = append(children, tok(n.Ellipsis, len("..."))) - } - - case *ast.CaseClause: - if n.List == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.ChanType: - switch n.Dir { - case ast.RECV: - children = append(children, tok(n.Begin, len("<-chan"))) - case ast.SEND: - children = append(children, tok(n.Begin, len("chan<-"))) - case ast.RECV | ast.SEND: - children = append(children, tok(n.Begin, len("chan"))) - } - - case *ast.CommClause: - if n.Comm == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.Comment: - // nop - - case *ast.CommentGroup: - // nop - - case *ast.CompositeLit: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("{"))) - - case *ast.DeclStmt: - // nop - - case *ast.DeferStmt: - children = append(children, - tok(n.Defer, len("defer"))) - - case *ast.Ellipsis: - children = append(children, - tok(n.Ellipsis, len("..."))) - - case *ast.EmptyStmt: - // nop - - case *ast.ExprStmt: - // nop - - case *ast.Field: - // TODO(adonovan): Field.{Doc,Comment,Tag}? - - case *ast.FieldList: - if n.Opening.IsValid() { - children = append(children, tok(n.Opening, len("("))) - } - if n.Closing.IsValid() { - children = append(children, tok(n.Closing, len(")"))) - } - - case *ast.File: - // TODO test: Doc - children = append(children, - tok(n.Package, len("package"))) - - case *ast.ForStmt: - children = append(children, - tok(n.For, len("for"))) - - case *ast.FuncDecl: - // TODO(adonovan): FuncDecl.Comment? - - // Uniquely, FuncDecl breaks the invariant that - // preorder traversal yields tokens in lexical order: - // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func. - // - // As a workaround, we inline the case for FuncType - // here and order things correctly. - // We also need to insert the elided FuncType just - // before the 'visit' recursion. - // - children = nil // discard ast.Walk(FuncDecl) info subtrees - children = append(children, tok(n.Type.Func, len("func"))) - if n.Recv != nil { - children = append(children, n.Recv) - } - children = append(children, n.Name) - if tparams := n.Type.TypeParams; tparams != nil { - children = append(children, tparams) - } - if n.Type.Params != nil { - children = append(children, n.Type.Params) - } - if n.Type.Results != nil { - children = append(children, n.Type.Results) - } - if n.Body != nil { - children = append(children, n.Body) - } - - case *ast.FuncLit: - // nop - - case *ast.FuncType: - if n.Func != 0 { - children = append(children, - tok(n.Func, len("func"))) - } - - case *ast.GenDecl: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - if n.Lparen != 0 { - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - } - - case *ast.GoStmt: - children = append(children, - tok(n.Go, len("go"))) - - case *ast.Ident: - children = append(children, - tok(n.NamePos, len(n.Name))) - - case *ast.IfStmt: - children = append(children, - tok(n.If, len("if"))) - - case *ast.ImportSpec: - // TODO(adonovan): ImportSpec.{Doc,EndPos}? - - case *ast.IncDecStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.IndexExpr: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Rbrack, len("]"))) - - case *ast.IndexListExpr: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Rbrack, len("]"))) - - case *ast.InterfaceType: - children = append(children, - tok(n.Interface, len("interface"))) - - case *ast.KeyValueExpr: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.LabeledStmt: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.MapType: - children = append(children, - tok(n.Map, len("map"))) - - case *ast.ParenExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.RangeStmt: - children = append(children, - tok(n.For, len("for")), - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.ReturnStmt: - children = append(children, - tok(n.Return, len("return"))) - - case *ast.SelectStmt: - children = append(children, - tok(n.Select, len("select"))) - - case *ast.SelectorExpr: - // nop - - case *ast.SendStmt: - children = append(children, - tok(n.Arrow, len("<-"))) - - case *ast.SliceExpr: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Rbrack, len("]"))) - - case *ast.StarExpr: - children = append(children, tok(n.Star, len("*"))) - - case *ast.StructType: - children = append(children, tok(n.Struct, len("struct"))) - - case *ast.SwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.TypeAssertExpr: - children = append(children, - tok(n.Lparen-1, len(".")), - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.TypeSpec: - // TODO(adonovan): TypeSpec.{Doc,Comment}? - - case *ast.TypeSwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.UnaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.ValueSpec: - // TODO(adonovan): ValueSpec.{Doc,Comment}? - - case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt: - // nop - } - - // TODO(adonovan): opt: merge the logic of ast.Inspect() into - // the switch above so we can make interleaved callbacks for - // both Nodes and Tokens in the right order and avoid the need - // to sort. - sort.Sort(byPos(children)) - - return children -} - -type byPos []ast.Node - -func (sl byPos) Len() int { - return len(sl) -} -func (sl byPos) Less(i, j int) bool { - return sl[i].Pos() < sl[j].Pos() -} -func (sl byPos) Swap(i, j int) { - sl[i], sl[j] = sl[j], sl[i] -} - -// NodeDescription returns a description of the concrete type of n suitable -// for a user interface. -// -// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident, -// StarExpr) we could be much more specific given the path to the AST -// root. Perhaps we should do that. -func NodeDescription(n ast.Node) string { - switch n := n.(type) { - case *ast.ArrayType: - return "array type" - case *ast.AssignStmt: - return "assignment" - case *ast.BadDecl: - return "bad declaration" - case *ast.BadExpr: - return "bad expression" - case *ast.BadStmt: - return "bad statement" - case *ast.BasicLit: - return "basic literal" - case *ast.BinaryExpr: - return fmt.Sprintf("binary %s operation", n.Op) - case *ast.BlockStmt: - return "block" - case *ast.BranchStmt: - switch n.Tok { - case token.BREAK: - return "break statement" - case token.CONTINUE: - return "continue statement" - case token.GOTO: - return "goto statement" - case token.FALLTHROUGH: - return "fall-through statement" - } - case *ast.CallExpr: - if len(n.Args) == 1 && !n.Ellipsis.IsValid() { - return "function call (or conversion)" - } - return "function call" - case *ast.CaseClause: - return "case clause" - case *ast.ChanType: - return "channel type" - case *ast.CommClause: - return "communication clause" - case *ast.Comment: - return "comment" - case *ast.CommentGroup: - return "comment group" - case *ast.CompositeLit: - return "composite literal" - case *ast.DeclStmt: - return NodeDescription(n.Decl) + " statement" - case *ast.DeferStmt: - return "defer statement" - case *ast.Ellipsis: - return "ellipsis" - case *ast.EmptyStmt: - return "empty statement" - case *ast.ExprStmt: - return "expression statement" - case *ast.Field: - // Can be any of these: - // struct {x, y int} -- struct field(s) - // struct {T} -- anon struct field - // interface {I} -- interface embedding - // interface {f()} -- interface method - // func (A) func(B) C -- receiver, param(s), result(s) - return "field/method/parameter" - case *ast.FieldList: - return "field/method/parameter list" - case *ast.File: - return "source file" - case *ast.ForStmt: - return "for loop" - case *ast.FuncDecl: - return "function declaration" - case *ast.FuncLit: - return "function literal" - case *ast.FuncType: - return "function type" - case *ast.GenDecl: - switch n.Tok { - case token.IMPORT: - return "import declaration" - case token.CONST: - return "constant declaration" - case token.TYPE: - return "type declaration" - case token.VAR: - return "variable declaration" - } - case *ast.GoStmt: - return "go statement" - case *ast.Ident: - return "identifier" - case *ast.IfStmt: - return "if statement" - case *ast.ImportSpec: - return "import specification" - case *ast.IncDecStmt: - if n.Tok == token.INC { - return "increment statement" - } - return "decrement statement" - case *ast.IndexExpr: - return "index expression" - case *ast.IndexListExpr: - return "index list expression" - case *ast.InterfaceType: - return "interface type" - case *ast.KeyValueExpr: - return "key/value association" - case *ast.LabeledStmt: - return "statement label" - case *ast.MapType: - return "map type" - case *ast.Package: - return "package" - case *ast.ParenExpr: - return "parenthesized " + NodeDescription(n.X) - case *ast.RangeStmt: - return "range loop" - case *ast.ReturnStmt: - return "return statement" - case *ast.SelectStmt: - return "select statement" - case *ast.SelectorExpr: - return "selector" - case *ast.SendStmt: - return "channel send" - case *ast.SliceExpr: - return "slice expression" - case *ast.StarExpr: - return "*-operation" // load/store expr or pointer type - case *ast.StructType: - return "struct type" - case *ast.SwitchStmt: - return "switch statement" - case *ast.TypeAssertExpr: - return "type assertion" - case *ast.TypeSpec: - return "type specification" - case *ast.TypeSwitchStmt: - return "type switch" - case *ast.UnaryExpr: - return fmt.Sprintf("unary %s operation", n.Op) - case *ast.ValueSpec: - return "value specification" - - } - panic(fmt.Sprintf("unexpected node type: %T", n)) -} - -func is[T any](x any) bool { - _, ok := x.(T) - return ok -} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go deleted file mode 100644 index 5e5601a..0000000 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ /dev/null @@ -1,491 +0,0 @@ -// Copyright 2013 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 astutil contains common utilities for working with the Go AST. -package astutil // import "golang.org/x/tools/go/ast/astutil" - -import ( - "fmt" - "go/ast" - "go/token" - "slices" - "strconv" - "strings" -) - -// AddImport adds the import path to the file f, if absent. -func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) { - return AddNamedImport(fset, f, "", path) -} - -// AddNamedImport adds the import with the given name and path to the file f, if absent. -// If name is not empty, it is used to rename the import. -// -// For example, calling -// -// AddNamedImport(fset, f, "pathpkg", "path") -// -// adds -// -// import pathpkg "path" -func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) { - if imports(f, name, path) { - return false - } - - newImport := &ast.ImportSpec{ - Path: &ast.BasicLit{ - Kind: token.STRING, - Value: strconv.Quote(path), - }, - } - if name != "" { - newImport.Name = &ast.Ident{Name: name} - } - - // Find an import decl to add to. - // The goal is to find an existing import - // whose import path has the longest shared - // prefix with path. - var ( - bestMatch = -1 // length of longest shared prefix - lastImport = -1 // index in f.Decls of the file's final import decl - impDecl *ast.GenDecl // import decl containing the best match - impIndex = -1 // spec index in impDecl containing the best match - - isThirdPartyPath = isThirdParty(path) - ) - for i, decl := range f.Decls { - gen, ok := decl.(*ast.GenDecl) - if ok && gen.Tok == token.IMPORT { - lastImport = i - // Do not add to import "C", to avoid disrupting the - // association with its doc comment, breaking cgo. - if declImports(gen, "C") { - continue - } - - // Match an empty import decl if that's all that is available. - if len(gen.Specs) == 0 && bestMatch == -1 { - impDecl = gen - } - - // Compute longest shared prefix with imports in this group and find best - // matched import spec. - // 1. Always prefer import spec with longest shared prefix. - // 2. While match length is 0, - // - for stdlib package: prefer first import spec. - // - for third party package: prefer first third party import spec. - // We cannot use last import spec as best match for third party package - // because grouped imports are usually placed last by goimports -local - // flag. - // See issue #19190. - seenAnyThirdParty := false - for j, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - p := importPath(impspec) - n := matchLen(p, path) - if n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) { - bestMatch = n - impDecl = gen - impIndex = j - } - seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p) - } - } - } - - // If no import decl found, add one after the last import. - if impDecl == nil { - impDecl = &ast.GenDecl{ - Tok: token.IMPORT, - } - if lastImport >= 0 { - impDecl.TokPos = f.Decls[lastImport].End() - } else { - // There are no existing imports. - // Our new import, preceded by a blank line, goes after the package declaration - // and after the comment, if any, that starts on the same line as the - // package declaration. - impDecl.TokPos = f.Package - - file := fset.File(f.Package) - pkgLine := file.Line(f.Package) - for _, c := range f.Comments { - if file.Line(c.Pos()) > pkgLine { - break - } - // +2 for a blank line - impDecl.TokPos = c.End() + 2 - } - } - f.Decls = append(f.Decls, nil) - copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:]) - f.Decls[lastImport+1] = impDecl - } - - // Insert new import at insertAt. - insertAt := 0 - if impIndex >= 0 { - // insert after the found import - insertAt = impIndex + 1 - } - impDecl.Specs = append(impDecl.Specs, nil) - copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:]) - impDecl.Specs[insertAt] = newImport - pos := impDecl.Pos() - if insertAt > 0 { - // If there is a comment after an existing import, preserve the comment - // position by adding the new import after the comment. - if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil { - pos = spec.Comment.End() - } else { - // Assign same position as the previous import, - // so that the sorter sees it as being in the same block. - pos = impDecl.Specs[insertAt-1].Pos() - } - } - if newImport.Name != nil { - newImport.Name.NamePos = pos - } - newImport.Path.ValuePos = pos - newImport.EndPos = pos - - // Clean up parens. impDecl contains at least one spec. - if len(impDecl.Specs) == 1 { - // Remove unneeded parens. - impDecl.Lparen = token.NoPos - } else if !impDecl.Lparen.IsValid() { - // impDecl needs parens added. - impDecl.Lparen = impDecl.Specs[0].Pos() - } - - f.Imports = append(f.Imports, newImport) - - if len(f.Decls) <= 1 { - return true - } - - // Merge all the import declarations into the first one. - var first *ast.GenDecl - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { - continue - } - if first == nil { - first = gen - continue // Don't touch the first one. - } - // We now know there is more than one package in this import - // declaration. Ensure that it ends up parenthesized. - first.Lparen = first.Pos() - // Move the imports of the other import declaration to the first one. - for _, spec := range gen.Specs { - spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() - first.Specs = append(first.Specs, spec) - } - f.Decls = slices.Delete(f.Decls, i, i+1) - i-- - } - - return true -} - -func isThirdParty(importPath string) bool { - // Third party package import path usually contains "." (".com", ".org", ...) - // This logic is taken from golang.org/x/tools/imports package. - return strings.Contains(importPath, ".") -} - -// DeleteImport deletes the import path from the file f, if present. -// If there are duplicate import declarations, all matching ones are deleted. -func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) { - return DeleteNamedImport(fset, f, "", path) -} - -// DeleteNamedImport deletes the import with the given name and path from the file f, if present. -// If there are duplicate import declarations, all matching ones are deleted. -func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { - var delspecs []*ast.ImportSpec - var delcomments []*ast.CommentGroup - - // Find the import nodes that import path, if any. - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT { - continue - } - for j := 0; j < len(gen.Specs); j++ { - spec := gen.Specs[j] - impspec := spec.(*ast.ImportSpec) - if importName(impspec) != name || importPath(impspec) != path { - continue - } - - // We found an import spec that imports path. - // Delete it. - delspecs = append(delspecs, impspec) - deleted = true - copy(gen.Specs[j:], gen.Specs[j+1:]) - gen.Specs = gen.Specs[:len(gen.Specs)-1] - - // If this was the last import spec in this decl, - // delete the decl, too. - if len(gen.Specs) == 0 { - copy(f.Decls[i:], f.Decls[i+1:]) - f.Decls = f.Decls[:len(f.Decls)-1] - i-- - break - } else if len(gen.Specs) == 1 { - if impspec.Doc != nil { - delcomments = append(delcomments, impspec.Doc) - } - if impspec.Comment != nil { - delcomments = append(delcomments, impspec.Comment) - } - for _, cg := range f.Comments { - // Found comment on the same line as the import spec. - if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line { - delcomments = append(delcomments, cg) - break - } - } - - spec := gen.Specs[0].(*ast.ImportSpec) - - // Move the documentation right after the import decl. - if spec.Doc != nil { - for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line { - fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) - } - } - for _, cg := range f.Comments { - if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line { - for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line { - fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) - } - break - } - } - } - if j > 0 { - lastImpspec := gen.Specs[j-1].(*ast.ImportSpec) - lastLine := fset.PositionFor(lastImpspec.Path.ValuePos, false).Line - line := fset.PositionFor(impspec.Path.ValuePos, false).Line - - // We deleted an entry but now there may be - // a blank line-sized hole where the import was. - if line-lastLine > 1 || !gen.Rparen.IsValid() { - // There was a blank line immediately preceding the deleted import, - // so there's no need to close the hole. The right parenthesis is - // invalid after AddImport to an import statement without parenthesis. - // Do nothing. - } else if line != fset.File(gen.Rparen).LineCount() { - // There was no blank line. Close the hole. - fset.File(gen.Rparen).MergeLine(line) - } - } - j-- - } - } - - // Delete imports from f.Imports. - for i := 0; i < len(f.Imports); i++ { - imp := f.Imports[i] - for j, del := range delspecs { - if imp == del { - copy(f.Imports[i:], f.Imports[i+1:]) - f.Imports = f.Imports[:len(f.Imports)-1] - copy(delspecs[j:], delspecs[j+1:]) - delspecs = delspecs[:len(delspecs)-1] - i-- - break - } - } - } - - // Delete comments from f.Comments. - for i := 0; i < len(f.Comments); i++ { - cg := f.Comments[i] - for j, del := range delcomments { - if cg == del { - copy(f.Comments[i:], f.Comments[i+1:]) - f.Comments = f.Comments[:len(f.Comments)-1] - copy(delcomments[j:], delcomments[j+1:]) - delcomments = delcomments[:len(delcomments)-1] - i-- - break - } - } - } - - if len(delspecs) > 0 { - panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) - } - - return -} - -// RewriteImport rewrites any import of path oldPath to path newPath. -func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) { - for _, imp := range f.Imports { - if importPath(imp) == oldPath { - rewrote = true - // record old End, because the default is to compute - // it using the length of imp.Path.Value. - imp.EndPos = imp.End() - imp.Path.Value = strconv.Quote(newPath) - } - } - return -} - -// UsesImport reports whether a given import is used. -// The provided File must have been parsed with syntactic object resolution -// (not using go/parser.SkipObjectResolution). -func UsesImport(f *ast.File, path string) (used bool) { - if f.Scope == nil { - panic("file f was not parsed with syntactic object resolution") - } - spec := importSpec(f, path) - if spec == nil { - return - } - - name := spec.Name.String() - switch name { - case "<nil>": - // If the package name is not explicitly specified, - // make an educated guess. This is not guaranteed to be correct. - lastSlash := strings.LastIndex(path, "/") - if lastSlash == -1 { - name = path - } else { - name = path[lastSlash+1:] - } - case "_", ".": - // Not sure if this import is used - err on the side of caution. - return true - } - - ast.Walk(visitFn(func(n ast.Node) { - sel, ok := n.(*ast.SelectorExpr) - if ok && isTopName(sel.X, name) { - used = true - } - }), f) - - return -} - -type visitFn func(node ast.Node) - -func (fn visitFn) Visit(node ast.Node) ast.Visitor { - fn(node) - return fn -} - -// imports reports whether f has an import with the specified name and path. -func imports(f *ast.File, name, path string) bool { - for _, s := range f.Imports { - if importName(s) == name && importPath(s) == path { - return true - } - } - return false -} - -// importSpec returns the import spec if f imports path, -// or nil otherwise. -func importSpec(f *ast.File, path string) *ast.ImportSpec { - for _, s := range f.Imports { - if importPath(s) == path { - return s - } - } - return nil -} - -// importName returns the name of s, -// or "" if the import is not named. -func importName(s *ast.ImportSpec) string { - if s.Name == nil { - return "" - } - return s.Name.Name -} - -// importPath returns the unquoted import path of s, -// or "" if the path is not properly quoted. -func importPath(s *ast.ImportSpec) string { - t, err := strconv.Unquote(s.Path.Value) - if err != nil { - return "" - } - return t -} - -// declImports reports whether gen contains an import of path. -func declImports(gen *ast.GenDecl, path string) bool { - if gen.Tok != token.IMPORT { - return false - } - for _, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - if importPath(impspec) == path { - return true - } - } - return false -} - -// matchLen returns the length of the longest path segment prefix shared by x and y. -func matchLen(x, y string) int { - n := 0 - for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ { - if x[i] == '/' { - n++ - } - } - return n -} - -// isTopName returns true if n is a top-level unresolved identifier with the given name. -func isTopName(n ast.Expr, name string) bool { - id, ok := n.(*ast.Ident) - return ok && id.Name == name && id.Obj == nil -} - -// Imports returns the file imports grouped by paragraph. -func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec { - var groups [][]*ast.ImportSpec - - for _, decl := range f.Decls { - genDecl, ok := decl.(*ast.GenDecl) - if !ok || genDecl.Tok != token.IMPORT { - break - } - - group := []*ast.ImportSpec{} - - var lastLine int - for _, spec := range genDecl.Specs { - importSpec := spec.(*ast.ImportSpec) - pos := importSpec.Path.ValuePos - line := fset.Position(pos).Line - if lastLine > 0 && pos > 0 && line-lastLine > 1 { - groups = append(groups, group) - group = []*ast.ImportSpec{} - } - group = append(group, importSpec) - lastLine = line - } - groups = append(groups, group) - } - - return groups -} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go deleted file mode 100644 index 4ad0549..0000000 --- a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go +++ /dev/null @@ -1,490 +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. - -package astutil - -import ( - "fmt" - "go/ast" - "reflect" - "sort" -) - -// An ApplyFunc is invoked by Apply for each node n, even if n is nil, -// before and/or after the node's children, using a Cursor describing -// the current node and providing operations on it. -// -// The return value of ApplyFunc controls the syntax tree traversal. -// See Apply for details. -type ApplyFunc func(*Cursor) bool - -// Apply traverses a syntax tree recursively, starting with root, -// and calling pre and post for each node as described below. -// Apply returns the syntax tree, possibly modified. -// -// If pre is not nil, it is called for each node before the node's -// children are traversed (pre-order). If pre returns false, no -// children are traversed, and post is not called for that node. -// -// If post is not nil, and a prior call of pre didn't return false, -// post is called for each node after its children are traversed -// (post-order). If post returns false, traversal is terminated and -// Apply returns immediately. -// -// Only fields that refer to AST nodes are considered children; -// i.e., token.Pos, Scopes, Objects, and fields of basic types -// (strings, etc.) are ignored. -// -// Children are traversed in the order in which they appear in the -// respective node's struct definition. A package's files are -// traversed in the filenames' alphabetical order. -func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) { - parent := &struct{ ast.Node }{root} - defer func() { - if r := recover(); r != nil && r != abort { - panic(r) - } - result = parent.Node - }() - a := &application{pre: pre, post: post} - a.apply(parent, "Node", nil, root) - return -} - -var abort = new(int) // singleton, to signal termination of Apply - -// A Cursor describes a node encountered during Apply. -// Information about the node and its parent is available -// from the Node, Parent, Name, and Index methods. -// -// If p is a variable of type and value of the current parent node -// c.Parent(), and f is the field identifier with name c.Name(), -// the following invariants hold: -// -// p.f == c.Node() if c.Index() < 0 -// p.f[c.Index()] == c.Node() if c.Index() >= 0 -// -// The methods Replace, Delete, InsertBefore, and InsertAfter -// can be used to change the AST without disrupting Apply. -// -// This type is not to be confused with [inspector.Cursor] from -// package [golang.org/x/tools/go/ast/inspector], which provides -// stateless navigation of immutable syntax trees. -type Cursor struct { - parent ast.Node - name string - iter *iterator // valid if non-nil - node ast.Node -} - -// Node returns the current Node. -func (c *Cursor) Node() ast.Node { return c.node } - -// Parent returns the parent of the current Node. -func (c *Cursor) Parent() ast.Node { return c.parent } - -// Name returns the name of the parent Node field that contains the current Node. -// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns -// the filename for the current Node. -func (c *Cursor) Name() string { return c.name } - -// Index reports the index >= 0 of the current Node in the slice of Nodes that -// contains it, or a value < 0 if the current Node is not part of a slice. -// The index of the current node changes if InsertBefore is called while -// processing the current node. -func (c *Cursor) Index() int { - if c.iter != nil { - return c.iter.index - } - return -1 -} - -// field returns the current node's parent field value. -func (c *Cursor) field() reflect.Value { - return reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name) -} - -// Replace replaces the current Node with n. -// The replacement node is not walked by Apply. -func (c *Cursor) Replace(n ast.Node) { - if _, ok := c.node.(*ast.File); ok { - file, ok := n.(*ast.File) - if !ok { - panic("attempt to replace *ast.File with non-*ast.File") - } - c.parent.(*ast.Package).Files[c.name] = file - return - } - - v := c.field() - if i := c.Index(); i >= 0 { - v = v.Index(i) - } - v.Set(reflect.ValueOf(n)) -} - -// Delete deletes the current Node from its containing slice. -// If the current Node is not part of a slice, Delete panics. -// As a special case, if the current node is a package file, -// Delete removes it from the package's Files map. -func (c *Cursor) Delete() { - if _, ok := c.node.(*ast.File); ok { - delete(c.parent.(*ast.Package).Files, c.name) - return - } - - i := c.Index() - if i < 0 { - panic("Delete node not contained in slice") - } - v := c.field() - l := v.Len() - reflect.Copy(v.Slice(i, l), v.Slice(i+1, l)) - v.Index(l - 1).Set(reflect.Zero(v.Type().Elem())) - v.SetLen(l - 1) - c.iter.step-- -} - -// InsertAfter inserts n after the current Node in its containing slice. -// If the current Node is not part of a slice, InsertAfter panics. -// Apply does not walk n. -func (c *Cursor) InsertAfter(n ast.Node) { - i := c.Index() - if i < 0 { - panic("InsertAfter node not contained in slice") - } - v := c.field() - v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) - l := v.Len() - reflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l)) - v.Index(i + 1).Set(reflect.ValueOf(n)) - c.iter.step++ -} - -// InsertBefore inserts n before the current Node in its containing slice. -// If the current Node is not part of a slice, InsertBefore panics. -// Apply will not walk n. -func (c *Cursor) InsertBefore(n ast.Node) { - i := c.Index() - if i < 0 { - panic("InsertBefore node not contained in slice") - } - v := c.field() - v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) - l := v.Len() - reflect.Copy(v.Slice(i+1, l), v.Slice(i, l)) - v.Index(i).Set(reflect.ValueOf(n)) - c.iter.index++ -} - -// application carries all the shared data so we can pass it around cheaply. -type application struct { - pre, post ApplyFunc - cursor Cursor - iter iterator -} - -func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) { - // convert typed nil into untyped nil - if v := reflect.ValueOf(n); v.Kind() == reflect.Pointer && v.IsNil() { - n = nil - } - - // avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead - saved := a.cursor - a.cursor.parent = parent - a.cursor.name = name - a.cursor.iter = iter - a.cursor.node = n - - if a.pre != nil && !a.pre(&a.cursor) { - a.cursor = saved - return - } - - // walk children - // (the order of the cases matches the order of the corresponding node types in go/ast) - switch n := n.(type) { - case nil: - // nothing to do - - // Comments and fields - case *ast.Comment: - // nothing to do - - case *ast.CommentGroup: - if n != nil { - a.applyList(n, "List") - } - - case *ast.Field: - a.apply(n, "Doc", nil, n.Doc) - a.applyList(n, "Names") - a.apply(n, "Type", nil, n.Type) - a.apply(n, "Tag", nil, n.Tag) - a.apply(n, "Comment", nil, n.Comment) - - case *ast.FieldList: - a.applyList(n, "List") - - // Expressions - case *ast.BadExpr, *ast.Ident, *ast.BasicLit: - // nothing to do - - case *ast.Ellipsis: - a.apply(n, "Elt", nil, n.Elt) - - case *ast.FuncLit: - a.apply(n, "Type", nil, n.Type) - a.apply(n, "Body", nil, n.Body) - - case *ast.CompositeLit: - a.apply(n, "Type", nil, n.Type) - a.applyList(n, "Elts") - - case *ast.ParenExpr: - a.apply(n, "X", nil, n.X) - - case *ast.SelectorExpr: - a.apply(n, "X", nil, n.X) - a.apply(n, "Sel", nil, n.Sel) - - case *ast.IndexExpr: - a.apply(n, "X", nil, n.X) - a.apply(n, "Index", nil, n.Index) - - case *ast.IndexListExpr: - a.apply(n, "X", nil, n.X) - a.applyList(n, "Indices") - - case *ast.SliceExpr: - a.apply(n, "X", nil, n.X) - a.apply(n, "Low", nil, n.Low) - a.apply(n, "High", nil, n.High) - a.apply(n, "Max", nil, n.Max) - - case *ast.TypeAssertExpr: - a.apply(n, "X", nil, n.X) - a.apply(n, "Type", nil, n.Type) - - case *ast.CallExpr: - a.apply(n, "Fun", nil, n.Fun) - a.applyList(n, "Args") - - case *ast.StarExpr: - a.apply(n, "X", nil, n.X) - - case *ast.UnaryExpr: - a.apply(n, "X", nil, n.X) - - case *ast.BinaryExpr: - a.apply(n, "X", nil, n.X) - a.apply(n, "Y", nil, n.Y) - - case *ast.KeyValueExpr: - a.apply(n, "Key", nil, n.Key) - a.apply(n, "Value", nil, n.Value) - - // Types - case *ast.ArrayType: - a.apply(n, "Len", nil, n.Len) - a.apply(n, "Elt", nil, n.Elt) - - case *ast.StructType: - a.apply(n, "Fields", nil, n.Fields) - - case *ast.FuncType: - if tparams := n.TypeParams; tparams != nil { - a.apply(n, "TypeParams", nil, tparams) - } - a.apply(n, "Params", nil, n.Params) - a.apply(n, "Results", nil, n.Results) - - case *ast.InterfaceType: - a.apply(n, "Methods", nil, n.Methods) - - case *ast.MapType: - a.apply(n, "Key", nil, n.Key) - a.apply(n, "Value", nil, n.Value) - - case *ast.ChanType: - a.apply(n, "Value", nil, n.Value) - - // Statements - case *ast.BadStmt: - // nothing to do - - case *ast.DeclStmt: - a.apply(n, "Decl", nil, n.Decl) - - case *ast.EmptyStmt: - // nothing to do - - case *ast.LabeledStmt: - a.apply(n, "Label", nil, n.Label) - a.apply(n, "Stmt", nil, n.Stmt) - - case *ast.ExprStmt: - a.apply(n, "X", nil, n.X) - - case *ast.SendStmt: - a.apply(n, "Chan", nil, n.Chan) - a.apply(n, "Value", nil, n.Value) - - case *ast.IncDecStmt: - a.apply(n, "X", nil, n.X) - - case *ast.AssignStmt: - a.applyList(n, "Lhs") - a.applyList(n, "Rhs") - - case *ast.GoStmt: - a.apply(n, "Call", nil, n.Call) - - case *ast.DeferStmt: - a.apply(n, "Call", nil, n.Call) - - case *ast.ReturnStmt: - a.applyList(n, "Results") - - case *ast.BranchStmt: - a.apply(n, "Label", nil, n.Label) - - case *ast.BlockStmt: - a.applyList(n, "List") - - case *ast.IfStmt: - a.apply(n, "Init", nil, n.Init) - a.apply(n, "Cond", nil, n.Cond) - a.apply(n, "Body", nil, n.Body) - a.apply(n, "Else", nil, n.Else) - - case *ast.CaseClause: - a.applyList(n, "List") - a.applyList(n, "Body") - - case *ast.SwitchStmt: - a.apply(n, "Init", nil, n.Init) - a.apply(n, "Tag", nil, n.Tag) - a.apply(n, "Body", nil, n.Body) - - case *ast.TypeSwitchStmt: - a.apply(n, "Init", nil, n.Init) - a.apply(n, "Assign", nil, n.Assign) - a.apply(n, "Body", nil, n.Body) - - case *ast.CommClause: - a.apply(n, "Comm", nil, n.Comm) - a.applyList(n, "Body") - - case *ast.SelectStmt: - a.apply(n, "Body", nil, n.Body) - - case *ast.ForStmt: - a.apply(n, "Init", nil, n.Init) - a.apply(n, "Cond", nil, n.Cond) - a.apply(n, "Post", nil, n.Post) - a.apply(n, "Body", nil, n.Body) - - case *ast.RangeStmt: - a.apply(n, "Key", nil, n.Key) - a.apply(n, "Value", nil, n.Value) - a.apply(n, "X", nil, n.X) - a.apply(n, "Body", nil, n.Body) - - // Declarations - case *ast.ImportSpec: - a.apply(n, "Doc", nil, n.Doc) - a.apply(n, "Name", nil, n.Name) - a.apply(n, "Path", nil, n.Path) - a.apply(n, "Comment", nil, n.Comment) - - case *ast.ValueSpec: - a.apply(n, "Doc", nil, n.Doc) - a.applyList(n, "Names") - a.apply(n, "Type", nil, n.Type) - a.applyList(n, "Values") - a.apply(n, "Comment", nil, n.Comment) - - case *ast.TypeSpec: - a.apply(n, "Doc", nil, n.Doc) - a.apply(n, "Name", nil, n.Name) - if tparams := n.TypeParams; tparams != nil { - a.apply(n, "TypeParams", nil, tparams) - } - a.apply(n, "Type", nil, n.Type) - a.apply(n, "Comment", nil, n.Comment) - - case *ast.BadDecl: - // nothing to do - - case *ast.GenDecl: - a.apply(n, "Doc", nil, n.Doc) - a.applyList(n, "Specs") - - case *ast.FuncDecl: - a.apply(n, "Doc", nil, n.Doc) - a.apply(n, "Recv", nil, n.Recv) - a.apply(n, "Name", nil, n.Name) - a.apply(n, "Type", nil, n.Type) - a.apply(n, "Body", nil, n.Body) - - // Files and packages - case *ast.File: - a.apply(n, "Doc", nil, n.Doc) - a.apply(n, "Name", nil, n.Name) - a.applyList(n, "Decls") - // Don't walk n.Comments; they have either been walked already if - // they are Doc comments, or they can be easily walked explicitly. - - case *ast.Package: - // collect and sort names for reproducible behavior - var names []string - for name := range n.Files { - names = append(names, name) - } - sort.Strings(names) - for _, name := range names { - a.apply(n, name, nil, n.Files[name]) - } - - default: - panic(fmt.Sprintf("Apply: unexpected node type %T", n)) - } - - if a.post != nil && !a.post(&a.cursor) { - panic(abort) - } - - a.cursor = saved -} - -// An iterator controls iteration over a slice of nodes. -type iterator struct { - index, step int -} - -func (a *application) applyList(parent ast.Node, name string) { - // avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead - saved := a.iter - a.iter.index = 0 - for { - // must reload parent.name each time, since cursor modifications might change it - v := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name) - if a.iter.index >= v.Len() { - break - } - - // element x may be nil in a bad AST - be cautious - var x ast.Node - if e := v.Index(a.iter.index); e.IsValid() { - x = e.Interface().(ast.Node) - } - - a.iter.step = 1 - a.apply(parent, name, &a.iter, x) - a.iter.index += a.iter.step - } - a.iter = saved -} diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go deleted file mode 100644 index c820b20..0000000 --- a/vendor/golang.org/x/tools/go/ast/astutil/util.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package astutil - -import "go/ast" - -// Unparen returns e with any enclosing parentheses stripped. -// Deprecated: use [ast.Unparen]. -// -//go:fix inline -func Unparen(e ast.Expr) ast.Expr { return ast.Unparen(e) } diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go deleted file mode 100644 index 7b90bc9..0000000 --- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gcexportdata provides functions for reading and writing -// export data, which is a serialized description of the API of a Go -// package including the names, kinds, types, and locations of all -// exported declarations. -// -// The standard Go compiler (cmd/compile) writes an export data file -// for each package it compiles, which it later reads when compiling -// packages that import the earlier one. The compiler must thus -// contain logic to both write and read export data. -// (See the "Export" section in the cmd/compile/README file.) -// -// The [Read] function in this package can read files produced by the -// compiler, producing [go/types] data structures. As a matter of -// policy, Read supports export data files produced by only the last -// two Go releases plus tip; see https://go.dev/issue/68898. The -// export data files produced by the compiler contain additional -// details related to generics, inlining, and other optimizations that -// cannot be decoded by the [Read] function. -// -// In files written by the compiler, the export data is not at the -// start of the file. Before calling Read, use [NewReader] to locate -// the desired portion of the file. -// -// The [Write] function in this package encodes the exported API of a -// Go package ([types.Package]) as a file. Such files can be later -// decoded by Read, but cannot be consumed by the compiler. -// -// # Future changes -// -// Although Read supports the formats written by both Write and the -// compiler, the two are quite different, and there is an open -// proposal (https://go.dev/issue/69491) to separate these APIs. -// -// Under that proposal, this package would ultimately provide only the -// Read operation for compiler export data, which must be defined in -// this module (golang.org/x/tools), not in the standard library, to -// avoid version skew for developer tools that need to read compiler -// export data both before and after a Go release, such as from Go -// 1.23 to Go 1.24. Because this package lives in the tools module, -// clients can update their version of the module some time before the -// Go 1.24 release and rebuild and redeploy their tools, which will -// then be able to consume both Go 1.23 and Go 1.24 export data files, -// so they will work before and after the Go update. (See discussion -// at https://go.dev/issue/15651.) -// -// The operations to import and export [go/types] data structures -// would be defined in the go/types package as Import and Export. -// [Write] would (eventually) delegate to Export, -// and [Read], when it detects a file produced by Export, -// would delegate to Import. -// -// # Deprecations -// -// The [NewImporter] and [Find] functions are deprecated and should -// not be used in new code. The [WriteBundle] and [ReadBundle] -// functions are experimental, and there is an open proposal to -// deprecate them (https://go.dev/issue/69573). -package gcexportdata - -import ( - "bufio" - "bytes" - "encoding/json" - "fmt" - "go/token" - "go/types" - "io" - "os/exec" - - "golang.org/x/tools/internal/gcimporter" -) - -// Find returns the name of an object (.o) or archive (.a) file -// containing type information for the specified import path, -// using the go command. -// If no file was found, an empty filename is returned. -// -// A relative srcDir is interpreted relative to the current working directory. -// -// Find also returns the package's resolved (canonical) import path, -// reflecting the effects of srcDir and vendoring on importPath. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func Find(importPath, srcDir string) (filename, path string) { - cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) - cmd.Dir = srcDir - out, err := cmd.Output() - if err != nil { - return "", "" - } - var data struct { - ImportPath string - Export string - } - json.Unmarshal(out, &data) - return data.Export, data.ImportPath -} - -// NewReader returns a reader for the export data section of an object -// (.o) or archive (.a) file read from r. The new reader may provide -// additional trailing data beyond the end of the export data. -func NewReader(r io.Reader) (io.Reader, error) { - buf := bufio.NewReader(r) - size, err := gcimporter.FindExportData(buf) - if err != nil { - return nil, err - } - - // We were given an archive and found the __.PKGDEF in it. - // This tells us the size of the export data, and we don't - // need to return the entire file. - return &io.LimitedReader{ - R: buf, - N: size, - }, nil -} - -// readAll works the same way as io.ReadAll, but avoids allocations and copies -// by preallocating a byte slice of the necessary size if the size is known up -// front. This is always possible when the input is an archive. In that case, -// NewReader will return the known size using an io.LimitedReader. -func readAll(r io.Reader) ([]byte, error) { - if lr, ok := r.(*io.LimitedReader); ok { - data := make([]byte, lr.N) - _, err := io.ReadFull(lr, data) - return data, err - } - return io.ReadAll(r) -} - -// Read reads export data from in, decodes it, and returns type -// information for the package. -// -// Read is capable of reading export data produced by [Write] at the -// same source code version, or by the last two Go releases (plus tip) -// of the standard Go compiler. Reading files from older compilers may -// produce an error. -// -// The package path (effectively its linker symbol prefix) is -// specified by path, since unlike the package name, this information -// may not be recorded in the export data. -// -// File position information is added to fset. -// -// Read may inspect and add to the imports map to ensure that references -// within the export data to other packages are consistent. The caller -// must ensure that imports[path] does not exist, or exists but is -// incomplete (see types.Package.Complete), and Read inserts the -// resulting package into this map entry. -// -// On return, the state of the reader is undefined. -func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export data for %q: %v", path, err) - } - - if bytes.HasPrefix(data, []byte("!<arch>")) { - return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) - } - - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. - if len(data) > 0 { - switch data[0] { - case 'v', 'c', 'd': - // binary, produced by cmd/compile till go1.10 - return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - - case 'i': - // indexed, produced by cmd/compile till go1.19, - // and also by [Write]. - // - // If proposal #69491 is accepted, go/types - // serialization will be implemented by - // types.Export, to which Write would eventually - // delegate (explicitly dropping any pretence at - // inter-version Write-Read compatibility). - // This [Read] function would delegate to types.Import - // when it detects that the file was produced by Export. - _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) - return pkg, err - - case 'u': - // unified, produced by cmd/compile since go1.20 - _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) - return pkg, err - - default: - l := min(len(data), 10) - return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) - } - } - return nil, fmt.Errorf("empty export data for %s", path) -} - -// Write writes encoded type information for the specified package to out. -// The FileSet provides file position information for named objects. -func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - if _, err := io.WriteString(out, "i"); err != nil { - return err - } - return gcimporter.IExportData(out, fset, pkg) -} - -// ReadBundle reads an export bundle from in, decodes it, and returns type -// information for the packages. -// File position information is added to fset. -// -// ReadBundle may inspect and add to the imports map to ensure that references -// within the export bundle to other packages are consistent. -// -// On return, the state of the reader is undefined. -// -// Experimental: This API is experimental and may change in the future. -func ReadBundle(in io.Reader, fset *token.FileSet, imports map[string]*types.Package) ([]*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export bundle: %v", err) - } - return gcimporter.IImportBundle(fset, imports, data) -} - -// WriteBundle writes encoded type information for the specified packages to out. -// The FileSet provides file position information for named objects. -// -// Experimental: This API is experimental and may change in the future. -func WriteBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - return gcimporter.IExportBundle(out, fset, pkgs) -} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go deleted file mode 100644 index 37a7247..0000000 --- a/vendor/golang.org/x/tools/go/gcexportdata/importer.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcexportdata - -import ( - "fmt" - "go/token" - "go/types" - "os" -) - -// NewImporter returns a new instance of the types.Importer interface -// that reads type information from export data files written by gc. -// The Importer also satisfies types.ImporterFrom. -// -// Export data files are located using "go build" workspace conventions -// and the build.Default context. -// -// Use this importer instead of go/importer.For("gc", ...) to avoid the -// version-skew problems described in the documentation of this package, -// or to control the FileSet or access the imports map populated during -// package loading. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { - return importer{fset, imports} -} - -type importer struct { - fset *token.FileSet - imports map[string]*types.Package -} - -func (imp importer) Import(importPath string) (*types.Package, error) { - return imp.ImportFrom(importPath, "", 0) -} - -func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { - filename, path := Find(importPath, srcDir) - if filename == "" { - if importPath == "unsafe" { - // Even for unsafe, call Find first in case - // the package was vendored. - return types.Unsafe, nil - } - return nil, fmt.Errorf("can't find import: %s", importPath) - } - - if pkg, ok := imp.imports[path]; ok && pkg.Complete() { - return pkg, nil // cache hit - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - f.Close() - if err != nil { - // add file name to error - err = fmt.Errorf("reading export data: %s: %v", filename, err) - } - }() - - r, err := NewReader(f) - if err != nil { - return nil, err - } - - return Read(r, imp.fset, imp.imports, path) -} diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go deleted file mode 100644 index f1931d1..0000000 --- a/vendor/golang.org/x/tools/go/packages/doc.go +++ /dev/null @@ -1,251 +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. - -/* -Package packages loads Go packages for inspection and analysis. - -The [Load] function takes as input a list of patterns and returns a -list of [Package] values describing individual packages matched by those -patterns. -A [Config] specifies configuration options, the most important of which is -the [LoadMode], which controls the amount of detail in the loaded packages. - -Load passes most patterns directly to the underlying build tool. -The default build tool is the go command. -Its supported patterns are described at -https://pkg.go.dev/cmd/go#hdr-Package_lists_and_patterns. -Other build systems may be supported by providing a "driver"; -see [The driver protocol]. - -All patterns with the prefix "query=", where query is a -non-empty string of letters from [a-z], are reserved and may be -interpreted as query operators. - -Two query operators are currently supported: "file" and "pattern". - -The query "file=path/to/file.go" matches the package or packages enclosing -the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" -might return the packages "fmt" and "fmt [fmt.test]". - -The query "pattern=string" causes "string" to be passed directly to -the underlying build tool. In most cases this is unnecessary, -but an application can use Load("pattern=" + x) as an escaping mechanism -to ensure that x is not interpreted as a query operator if it contains '='. - -All other query operators are reserved for future use and currently -cause Load to report an error. - -The Package struct provides basic information about the package, including - - - ID, a unique identifier for the package in the returned set; - - GoFiles, the names of the package's Go source files; - - Imports, a map from source import strings to the Packages they name; - - Types, the type information for the package's exported symbols; - - Syntax, the parsed syntax trees for the package's source code; and - - TypesInfo, the result of a complete type-check of the package syntax trees. - -(See the documentation for type Package for the complete list of fields -and more detailed descriptions.) - -For example, - - Load(nil, "bytes", "unicode...") - -returns four Package structs describing the standard library packages -bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern -can match multiple packages and that a package might be matched by -multiple patterns: in general it is not possible to determine which -packages correspond to which patterns. - -Note that the list returned by Load contains only the packages matched -by the patterns. Their dependencies can be found by walking the import -graph using the Imports fields. - -The Load function can be configured by passing a pointer to a Config as -the first argument. A nil Config is equivalent to the zero Config, which -causes Load to run in [LoadFiles] mode, collecting minimal information. -See the documentation for type Config for details. - -As noted earlier, the Config.Mode controls the amount of detail -reported about the loaded packages. See the documentation for type LoadMode -for details. - -Most tools should pass their command-line arguments (after any flags) -uninterpreted to Load, so that it can interpret them -according to the conventions of the underlying build system. - -See the Example function for typical usage. - -# The driver protocol - -Load may be used to load Go packages even in Go projects that use -alternative build systems, by installing an appropriate "driver" -program for the build system and specifying its location in the -GOPACKAGESDRIVER environment variable. -For example, -https://github.com/bazelbuild/rules_go/wiki/Editor-and-tool-integration -explains how to use the driver for Bazel. - -The driver program is responsible for interpreting patterns in its -preferred notation and reporting information about the packages that -those patterns identify. Drivers must also support the special "file=" -and "pattern=" patterns described above. - -The patterns are provided as positional command-line arguments. A -JSON-encoded [DriverRequest] message providing additional information -is written to the driver's standard input. The driver must write a -JSON-encoded [DriverResponse] message to its standard output. (This -message differs from the JSON schema produced by 'go list'.) - -The value of the PWD environment variable seen by the driver process -is the preferred name of its working directory. (The working directory -may have other aliases due to symbolic links; see the comment on the -Dir field of [exec.Cmd] for related information.) -When the driver process emits in its response the name of a file -that is a descendant of this directory, it must use an absolute path -that has the value of PWD as a prefix, to ensure that the returned -filenames satisfy the original query. -*/ -package packages // import "golang.org/x/tools/go/packages" - -/* - -Motivation and design considerations - -The new package's design solves problems addressed by two existing -packages: go/build, which locates and describes packages, and -golang.org/x/tools/go/loader, which loads, parses and type-checks them. -The go/build.Package structure encodes too much of the 'go build' way -of organizing projects, leaving us in need of a data type that describes a -package of Go source code independent of the underlying build system. -We wanted something that works equally well with go build and vgo, and -also other build systems such as Bazel and Blaze, making it possible to -construct analysis tools that work in all these environments. -Tools such as errcheck and staticcheck were essentially unavailable to -the Go community at Google, and some of Google's internal tools for Go -are unavailable externally. -This new package provides a uniform way to obtain package metadata by -querying each of these build systems, optionally supporting their -preferred command-line notations for packages, so that tools integrate -neatly with users' build environments. The Metadata query function -executes an external query tool appropriate to the current workspace. - -Loading packages always returns the complete import graph "all the way down", -even if all you want is information about a single package, because the query -mechanisms of all the build systems we currently support ({go,vgo} list, and -blaze/bazel aspect-based query) cannot provide detailed information -about one package without visiting all its dependencies too, so there is -no additional asymptotic cost to providing transitive information. -(This property might not be true of a hypothetical 5th build system.) - -In calls to TypeCheck, all initial packages, and any package that -transitively depends on one of them, must be loaded from source. -Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from -source; D may be loaded from export data, and E may not be loaded at all -(though it's possible that D's export data mentions it, so a -types.Package may be created for it and exposed.) - -The old loader had a feature to suppress type-checking of function -bodies on a per-package basis, primarily intended to reduce the work of -obtaining type information for imported packages. Now that imports are -satisfied by export data, the optimization no longer seems necessary. - -Despite some early attempts, the old loader did not exploit export data, -instead always using the equivalent of WholeProgram mode. This was due -to the complexity of mixing source and export data packages (now -resolved by the upward traversal mentioned above), and because export data -files were nearly always missing or stale. Now that 'go build' supports -caching, all the underlying build systems can guarantee to produce -export data in a reasonable (amortized) time. - -Test "main" packages synthesized by the build system are now reported as -first-class packages, avoiding the need for clients (such as go/ssa) to -reinvent this generation logic. - -One way in which go/packages is simpler than the old loader is in its -treatment of in-package tests. In-package tests are packages that -consist of all the files of the library under test, plus the test files. -The old loader constructed in-package tests by a two-phase process of -mutation called "augmentation": first it would construct and type check -all the ordinary library packages and type-check the packages that -depend on them; then it would add more (test) files to the package and -type-check again. This two-phase approach had four major problems: -1) in processing the tests, the loader modified the library package, - leaving no way for a client application to see both the test - package and the library package; one would mutate into the other. -2) because test files can declare additional methods on types defined in - the library portion of the package, the dispatch of method calls in - the library portion was affected by the presence of the test files. - This should have been a clue that the packages were logically - different. -3) this model of "augmentation" assumed at most one in-package test - per library package, which is true of projects using 'go build', - but not other build systems. -4) because of the two-phase nature of test processing, all packages that - import the library package had to be processed before augmentation, - forcing a "one-shot" API and preventing the client from calling Load - in several times in sequence as is now possible in WholeProgram mode. - (TypeCheck mode has a similar one-shot restriction for a different reason.) - -Early drafts of this package supported "multi-shot" operation. -Although it allowed clients to make a sequence of calls (or concurrent -calls) to Load, building up the graph of Packages incrementally, -it was of marginal value: it complicated the API -(since it allowed some options to vary across calls but not others), -it complicated the implementation, -it cannot be made to work in Types mode, as explained above, -and it was less efficient than making one combined call (when this is possible). -Among the clients we have inspected, none made multiple calls to load -but could not be easily and satisfactorily modified to make only a single call. -However, applications changes may be required. -For example, the ssadump command loads the user-specified packages -and in addition the runtime package. It is tempting to simply append -"runtime" to the user-provided list, but that does not work if the user -specified an ad-hoc package such as [a.go b.go]. -Instead, ssadump no longer requests the runtime package, -but seeks it among the dependencies of the user-specified packages, -and emits an error if it is not found. - -Questions & Tasks - -- Add GOARCH/GOOS? - They are not portable concepts, but could be made portable. - Our goal has been to allow users to express themselves using the conventions - of the underlying build system: if the build system honors GOARCH - during a build and during a metadata query, then so should - applications built atop that query mechanism. - Conversely, if the target architecture of the build is determined by - command-line flags, the application can pass the relevant - flags through to the build system using a command such as: - myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" - However, this approach is low-level, unwieldy, and non-portable. - GOOS and GOARCH seem important enough to warrant a dedicated option. - -- How should we handle partial failures such as a mixture of good and - malformed patterns, existing and non-existent packages, successful and - failed builds, import failures, import cycles, and so on, in a call to - Load? - -- Support bazel, blaze, and go1.10 list, not just go1.11 list. - -- Handle (and test) various partial success cases, e.g. - a mixture of good packages and: - invalid patterns - nonexistent packages - empty packages - packages with malformed package or import declarations - unreadable files - import cycles - other parse errors - type errors - Make sure we record errors at the correct place in the graph. - -- Missing packages among initial arguments are not reported. - Return bogus packages for them, like golist does. - -- "undeclared name" errors (for example) are reported out of source file - order. I suspect this is due to the breadth-first resolution now used - by go/types. Is that a bug? Discuss with gri. - -*/ diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go deleted file mode 100644 index f37bc65..0000000 --- a/vendor/golang.org/x/tools/go/packages/external.go +++ /dev/null @@ -1,153 +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. - -package packages - -// This file defines the protocol that enables an external "driver" -// tool to supply package metadata in place of 'go list'. - -import ( - "bytes" - "encoding/json" - "fmt" - "os" - "os/exec" - "slices" - "strings" -) - -// DriverRequest defines the schema of a request for package metadata -// from an external driver program. The JSON-encoded DriverRequest -// message is provided to the driver program's standard input. The -// query patterns are provided as command-line arguments. -// -// See the package documentation for an overview. -type DriverRequest struct { - Mode LoadMode `json:"mode"` - - // Env specifies the environment the underlying build system should be run in. - Env []string `json:"env"` - - // BuildFlags are flags that should be passed to the underlying build system. - BuildFlags []string `json:"build_flags"` - - // Tests specifies whether the patterns should also return test packages. - Tests bool `json:"tests"` - - // Overlay maps file paths (relative to the driver's working directory) - // to the contents of overlay files (see Config.Overlay). - Overlay map[string][]byte `json:"overlay"` -} - -// DriverResponse defines the schema of a response from an external -// driver program, providing the results of a query for package -// metadata. The driver program must write a JSON-encoded -// DriverResponse message to its standard output. -// -// See the package documentation for an overview. -type DriverResponse struct { - // NotHandled is returned if the request can't be handled by the current - // driver. If an external driver returns a response with NotHandled, the - // rest of the DriverResponse is ignored, and go/packages will fallback - // to the next driver. If go/packages is extended in the future to support - // lists of multiple drivers, go/packages will fall back to the next driver. - NotHandled bool - - // Compiler and Arch are the arguments pass of types.SizesFor - // to get a types.Sizes to use when type checking. - Compiler string - Arch string - - // Roots is the set of package IDs that make up the root packages. - // We have to encode this separately because when we encode a single package - // we cannot know if it is one of the roots as that requires knowledge of the - // graph it is part of. - Roots []string `json:",omitempty"` - - // Packages is the full set of packages in the graph. - // The packages are not connected into a graph. - // The Imports if populated will be stubs that only have their ID set. - // Imports will be connected and then type and syntax information added in a - // later pass (see refine). - Packages []*Package - - // GoVersion is the minor version number used by the driver - // (e.g. the go command on the PATH) when selecting .go files. - // Zero means unknown. - GoVersion int -} - -// driver is the type for functions that query the build system for the -// packages named by the patterns. -type driver func(cfg *Config, patterns []string) (*DriverResponse, error) - -// findExternalDriver returns the file path of a tool that supplies -// the build system package structure, or "" if not found. -// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its -// value, otherwise it searches for a binary named gopackagesdriver on the PATH. -func findExternalDriver(cfg *Config) driver { - const toolPrefix = "GOPACKAGESDRIVER=" - tool := "" - for _, env := range cfg.Env { - if val, ok := strings.CutPrefix(env, toolPrefix); ok { - tool = val - } - } - if tool != "" && tool == "off" { - return nil - } - if tool == "" { - var err error - tool, err = exec.LookPath("gopackagesdriver") - if err != nil { - return nil - } - } - return func(cfg *Config, patterns []string) (*DriverResponse, error) { - req, err := json.Marshal(DriverRequest{ - Mode: cfg.Mode, - Env: cfg.Env, - BuildFlags: cfg.BuildFlags, - Tests: cfg.Tests, - Overlay: cfg.Overlay, - }) - if err != nil { - return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) - } - - buf := new(bytes.Buffer) - stderr := new(bytes.Buffer) - cmd := exec.CommandContext(cfg.Context, tool, patterns...) - cmd.Dir = cfg.Dir - // The cwd gets resolved to the real path. On Darwin, where - // /tmp is a symlink, this breaks anything that expects the - // working directory to keep the original path, including the - // go command when dealing with modules. - // - // os.Getwd stdlib has a special feature where if the - // cwd and the PWD are the same node then it trusts - // the PWD, so by setting it in the env for the child - // process we fix up all the paths returned by the go - // command. - // - // (See similar trick in Invocation.run in ../../internal/gocommand/invoke.go) - cmd.Env = append(slices.Clip(cfg.Env), "PWD="+cfg.Dir) - cmd.Stdin = bytes.NewReader(req) - cmd.Stdout = buf - cmd.Stderr = stderr - - if err := cmd.Run(); err != nil { - return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) - } - if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { - fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) - } - - var response DriverResponse - if err := json.Unmarshal(buf.Bytes(), &response); err != nil { - return nil, err - } - return &response, nil - } -} diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go deleted file mode 100644 index 89f89dd..0000000 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ /dev/null @@ -1,1092 +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. - -package packages - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "log" - "os" - "os/exec" - "path" - "path/filepath" - "reflect" - "sort" - "strconv" - "strings" - "sync" - "unicode" - - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" -) - -// debug controls verbose logging. -var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) - -// A goTooOldError reports that the go command -// found by exec.LookPath is too old to use the new go list behavior. -type goTooOldError struct { - error -} - -// responseDeduper wraps a DriverResponse, deduplicating its contents. -type responseDeduper struct { - seenRoots map[string]bool - seenPackages map[string]*Package - dr *DriverResponse -} - -func newDeduper() *responseDeduper { - return &responseDeduper{ - dr: &DriverResponse{}, - seenRoots: map[string]bool{}, - seenPackages: map[string]*Package{}, - } -} - -// addAll fills in r with a DriverResponse. -func (r *responseDeduper) addAll(dr *DriverResponse) { - for _, pkg := range dr.Packages { - r.addPackage(pkg) - } - for _, root := range dr.Roots { - r.addRoot(root) - } - r.dr.GoVersion = dr.GoVersion -} - -func (r *responseDeduper) addPackage(p *Package) { - if r.seenPackages[p.ID] != nil { - return - } - r.seenPackages[p.ID] = p - r.dr.Packages = append(r.dr.Packages, p) -} - -func (r *responseDeduper) addRoot(id string) { - if r.seenRoots[id] { - return - } - r.seenRoots[id] = true - r.dr.Roots = append(r.dr.Roots, id) -} - -type golistState struct { - cfg *Config - ctx context.Context - - runner *gocommand.Runner - - // overlay is the JSON file that encodes the Config.Overlay - // mapping, used by 'go list -overlay=...'. - overlay string - - envOnce sync.Once - goEnvError error - goEnv map[string]string - - rootsOnce sync.Once - rootDirsError error - rootDirs map[string]string - - goVersionOnce sync.Once - goVersionError error - goVersion int // The X in Go 1.X. - - // vendorDirs caches the (non)existence of vendor directories. - vendorDirs map[string]bool -} - -// getEnv returns Go environment variables. Only specific variables are -// populated -- computing all of them is slow. -func (state *golistState) getEnv() (map[string]string, error) { - state.envOnce.Do(func() { - var b *bytes.Buffer - b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH") - if state.goEnvError != nil { - return - } - - state.goEnv = make(map[string]string) - decoder := json.NewDecoder(b) - if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil { - return - } - }) - return state.goEnv, state.goEnvError -} - -// mustGetEnv is a convenience function that can be used if getEnv has already succeeded. -func (state *golistState) mustGetEnv() map[string]string { - env, err := state.getEnv() - if err != nil { - panic(fmt.Sprintf("mustGetEnv: %v", err)) - } - return env -} - -// goListDriver uses the go list command to interpret the patterns and produce -// the build system package structure. -// See driver for more details. -// -// overlay is the JSON file that encodes the cfg.Overlay -// mapping, used by 'go list -overlay=...' -func goListDriver(cfg *Config, runner *gocommand.Runner, overlay string, patterns []string) (_ *DriverResponse, err error) { - // Make sure that any asynchronous go commands are killed when we return. - parentCtx := cfg.Context - if parentCtx == nil { - parentCtx = context.Background() - } - ctx, cancel := context.WithCancel(parentCtx) - defer cancel() - - response := newDeduper() - - state := &golistState{ - cfg: cfg, - ctx: ctx, - vendorDirs: map[string]bool{}, - overlay: overlay, - runner: runner, - } - - // Fill in response.Sizes asynchronously if necessary. - if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - errCh := make(chan error) - go func() { - compiler, arch, err := getSizesForArgs(ctx, state.cfgInvocation(), runner) - response.dr.Compiler = compiler - response.dr.Arch = arch - errCh <- err - }() - defer func() { - if sizesErr := <-errCh; sizesErr != nil { - err = sizesErr - } - }() - } - - // Determine files requested in contains patterns - var containFiles []string - restPatterns := make([]string, 0, len(patterns)) - // Extract file= and other [querytype]= patterns. Report an error if querytype - // doesn't exist. -extractQueries: - for _, pattern := range patterns { - eqidx := strings.Index(pattern, "=") - if eqidx < 0 { - restPatterns = append(restPatterns, pattern) - } else { - query, value := pattern[:eqidx], pattern[eqidx+len("="):] - switch query { - case "file": - containFiles = append(containFiles, value) - case "pattern": - restPatterns = append(restPatterns, value) - case "": // not a reserved query - restPatterns = append(restPatterns, pattern) - default: - for _, rune := range query { - if rune < 'a' || rune > 'z' { // not a reserved query - restPatterns = append(restPatterns, pattern) - continue extractQueries - } - } - // Reject all other patterns containing "=" - return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) - } - } - } - - // See if we have any patterns to pass through to go list. Zero initial - // patterns also requires a go list call, since it's the equivalent of - // ".". - if len(restPatterns) > 0 || len(patterns) == 0 { - dr, err := state.createDriverResponse(restPatterns...) - if err != nil { - return nil, err - } - response.addAll(dr) - } - - if len(containFiles) != 0 { - if err := state.runContainsQueries(response, containFiles); err != nil { - return nil, err - } - } - - // (We may yet return an error due to defer.) - return response.dr, nil -} - -// abs returns an absolute representation of path, based on cfg.Dir. -func (cfg *Config) abs(path string) (string, error) { - if filepath.IsAbs(path) { - return path, nil - } - // In case cfg.Dir is relative, pass it to filepath.Abs. - return filepath.Abs(filepath.Join(cfg.Dir, path)) -} - -func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { - for _, query := range queries { - // TODO(matloob): Do only one query per directory. - fdir := filepath.Dir(query) - // Pass absolute path of directory to go list so that it knows to treat it as a directory, - // not a package path. - pattern, err := state.cfg.abs(fdir) - if err != nil { - return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) - } - dirResponse, err := state.createDriverResponse(pattern) - - // If there was an error loading the package, or no packages are returned, - // or the package is returned with errors, try to load the file as an - // ad-hoc package. - // Usually the error will appear in a returned package, but may not if we're - // in module mode and the ad-hoc is located outside a module. - if err != nil || len(dirResponse.Packages) == 0 || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 && - len(dirResponse.Packages[0].Errors) == 1 { - var queryErr error - if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil { - return err // return the original error - } - } - isRoot := make(map[string]bool, len(dirResponse.Roots)) - for _, root := range dirResponse.Roots { - isRoot[root] = true - } - for _, pkg := range dirResponse.Packages { - // Add any new packages to the main set - // We don't bother to filter packages that will be dropped by the changes of roots, - // that will happen anyway during graph construction outside this function. - // Over-reporting packages is not a problem. - response.addPackage(pkg) - // if the package was not a root one, it cannot have the file - if !isRoot[pkg.ID] { - continue - } - for _, pkgFile := range pkg.GoFiles { - if filepath.Base(query) == filepath.Base(pkgFile) { - response.addRoot(pkg.ID) - break - } - } - } - } - return nil -} - -// adhocPackage attempts to load or construct an ad-hoc package for a given -// query, if the original call to the driver produced inadequate results. -func (state *golistState) adhocPackage(pattern, query string) (*DriverResponse, error) { - response, err := state.createDriverResponse(query) - if err != nil { - return nil, err - } - // If we get nothing back from `go list`, - // try to make this file into its own ad-hoc package. - // TODO(rstambler): Should this check against the original response? - if len(response.Packages) == 0 { - response.Packages = append(response.Packages, &Package{ - ID: "command-line-arguments", - PkgPath: query, - GoFiles: []string{query}, - CompiledGoFiles: []string{query}, - Imports: make(map[string]*Package), - }) - response.Roots = append(response.Roots, "command-line-arguments") - } - // Handle special cases. - if len(response.Packages) == 1 { - // golang/go#33482: If this is a file= query for ad-hoc packages where - // the file only exists on an overlay, and exists outside of a module, - // add the file to the package and remove the errors. - if response.Packages[0].ID == "command-line-arguments" || - filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) { - if len(response.Packages[0].GoFiles) == 0 { - filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath - // TODO(matloob): check if the file is outside of a root dir? - for path := range state.cfg.Overlay { - if path == filename { - response.Packages[0].Errors = nil - response.Packages[0].GoFiles = []string{path} - response.Packages[0].CompiledGoFiles = []string{path} - } - } - } - } - } - return response, nil -} - -// Fields must match go list; -// see $GOROOT/src/cmd/go/internal/load/pkg.go. -type jsonPackage struct { - ImportPath string - Dir string - Name string - Target string - Export string - GoFiles []string - CompiledGoFiles []string - IgnoredGoFiles []string - IgnoredOtherFiles []string - EmbedPatterns []string - EmbedFiles []string - CFiles []string - CgoFiles []string - CXXFiles []string - MFiles []string - HFiles []string - FFiles []string - SFiles []string - SwigFiles []string - SwigCXXFiles []string - SysoFiles []string - Imports []string - ImportMap map[string]string - Deps []string - Module *Module - TestGoFiles []string - TestImports []string - XTestGoFiles []string - XTestImports []string - ForTest string // q in a "p [q.test]" package, else "" - DepOnly bool - - Error *packagesinternal.PackageError - DepsErrors []*packagesinternal.PackageError -} - -type jsonPackageError struct { - ImportStack []string - Pos string - Err string -} - -func otherFiles(p *jsonPackage) [][]string { - return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} -} - -// createDriverResponse uses the "go list" command to expand the pattern -// words and return a response for the specified packages. -func (state *golistState) createDriverResponse(words ...string) (*DriverResponse, error) { - // go list uses the following identifiers in ImportPath and Imports: - // - // "p" -- importable package or main (command) - // "q.test" -- q's test executable - // "p [q.test]" -- variant of p as built for q's test executable - // "q_test [q.test]" -- q's external test package - // - // The packages p that are built differently for a test q.test - // are q itself, plus any helpers used by the external test q_test, - // typically including "testing" and all its dependencies. - - // Run "go list" for complete - // information on the specified packages. - goVersion, err := state.getGoVersion() - if err != nil { - return nil, err - } - buf, err := state.invokeGo("list", golistargs(state.cfg, words, goVersion)...) - if err != nil { - return nil, err - } - - seen := make(map[string]*jsonPackage) - pkgs := make(map[string]*Package) - additionalErrors := make(map[string][]Error) - // Decode the JSON and convert it to Package form. - response := &DriverResponse{ - GoVersion: goVersion, - } - for dec := json.NewDecoder(buf); dec.More(); { - p := new(jsonPackage) - if err := dec.Decode(p); err != nil { - return nil, fmt.Errorf("JSON decoding failed: %v", err) - } - - if p.ImportPath == "" { - // The documentation for go list says that “[e]rroneous packages will have - // a non-empty ImportPath”. If for some reason it comes back empty, we - // prefer to error out rather than silently discarding data or handing - // back a package without any way to refer to it. - if p.Error != nil { - return nil, Error{ - Pos: p.Error.Pos, - Msg: p.Error.Err, - } - } - return nil, fmt.Errorf("package missing import path: %+v", p) - } - - // Work around https://golang.org/issue/33157: - // go list -e, when given an absolute path, will find the package contained at - // that directory. But when no package exists there, it will return a fake package - // with an error and the ImportPath set to the absolute path provided to go list. - // Try to convert that absolute path to what its package path would be if it's - // contained in a known module or GOPATH entry. This will allow the package to be - // properly "reclaimed" when overlays are processed. - if filepath.IsAbs(p.ImportPath) && p.Error != nil { - pkgPath, ok, err := state.getPkgPath(p.ImportPath) - if err != nil { - return nil, err - } - if ok { - p.ImportPath = pkgPath - } - } - - if old, found := seen[p.ImportPath]; found { - // If one version of the package has an error, and the other doesn't, assume - // that this is a case where go list is reporting a fake dependency variant - // of the imported package: When a package tries to invalidly import another - // package, go list emits a variant of the imported package (with the same - // import path, but with an error on it, and the package will have a - // DepError set on it). An example of when this can happen is for imports of - // main packages: main packages can not be imported, but they may be - // separately matched and listed by another pattern. - // See golang.org/issue/36188 for more details. - - // The plan is that eventually, hopefully in Go 1.15, the error will be - // reported on the importing package rather than the duplicate "fake" - // version of the imported package. Once all supported versions of Go - // have the new behavior this logic can be deleted. - // TODO(matloob): delete the workaround logic once all supported versions of - // Go return the errors on the proper package. - - // There should be exactly one version of a package that doesn't have an - // error. - if old.Error == nil && p.Error == nil { - if !reflect.DeepEqual(p, old) { - return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) - } - continue - } - - // Determine if this package's error needs to be bubbled up. - // This is a hack, and we expect for go list to eventually set the error - // on the package. - if old.Error != nil { - var errkind string - if strings.Contains(old.Error.Err, "not an importable package") { - errkind = "not an importable package" - } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") { - errkind = "use of internal package not allowed" - } - if errkind != "" { - if len(old.Error.ImportStack) < 1 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with empty import stack`, errkind) - } - importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-1] - if importingPkg == old.ImportPath { - // Using an older version of Go which put this package itself on top of import - // stack, instead of the importer. Look for importer in second from top - // position. - if len(old.Error.ImportStack) < 2 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack without importing package`, errkind) - } - importingPkg = old.Error.ImportStack[len(old.Error.ImportStack)-2] - } - additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{ - Pos: old.Error.Pos, - Msg: old.Error.Err, - Kind: ListError, - }) - } - } - - // Make sure that if there's a version of the package without an error, - // that's the one reported to the user. - if old.Error == nil { - continue - } - - // This package will replace the old one at the end of the loop. - } - seen[p.ImportPath] = p - - pkg := &Package{ - Name: p.Name, - ID: p.ImportPath, - Dir: p.Dir, - Target: p.Target, - GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), - CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), - OtherFiles: absJoin(p.Dir, otherFiles(p)...), - EmbedFiles: absJoin(p.Dir, p.EmbedFiles), - EmbedPatterns: absJoin(p.Dir, p.EmbedPatterns), - IgnoredFiles: absJoin(p.Dir, p.IgnoredGoFiles, p.IgnoredOtherFiles), - ForTest: p.ForTest, - depsErrors: p.DepsErrors, - Module: p.Module, - } - - if (state.cfg.Mode&typecheckCgo) != 0 && len(p.CgoFiles) != 0 { - if len(p.CompiledGoFiles) > len(p.GoFiles) { - // We need the cgo definitions, which are in the first - // CompiledGoFile after the non-cgo ones. This is a hack but there - // isn't currently a better way to find it. We also need the pure - // Go files and unprocessed cgo files, all of which are already - // in pkg.GoFiles. - cgoTypes := p.CompiledGoFiles[len(p.GoFiles)] - pkg.CompiledGoFiles = append([]string{cgoTypes}, pkg.GoFiles...) - } else { - // golang/go#38990: go list silently fails to do cgo processing - pkg.CompiledGoFiles = nil - pkg.Errors = append(pkg.Errors, Error{ - Msg: "go list failed to return CompiledGoFiles. This may indicate failure to perform cgo processing; try building at the command line. See https://golang.org/issue/38990.", - Kind: ListError, - }) - } - } - - // Work around https://golang.org/issue/28749: - // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. - // Remove files from CompiledGoFiles that are non-go files - // (or are not files that look like they are from the cache). - if len(pkg.CompiledGoFiles) > 0 { - out := pkg.CompiledGoFiles[:0] - for _, f := range pkg.CompiledGoFiles { - if ext := filepath.Ext(f); ext != ".go" && ext != "" { // ext == "" means the file is from the cache, so probably cgo-processed file - continue - } - out = append(out, f) - } - pkg.CompiledGoFiles = out - } - - // Extract the PkgPath from the package's ID. - if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { - pkg.PkgPath = pkg.ID[:i] - } else { - pkg.PkgPath = pkg.ID - } - - if pkg.PkgPath == "unsafe" { - pkg.CompiledGoFiles = nil // ignore fake unsafe.go file (#59929) - } else if len(pkg.CompiledGoFiles) == 0 { - // Work around for pre-go.1.11 versions of go list. - // TODO(matloob): they should be handled by the fallback. - // Can we delete this? - pkg.CompiledGoFiles = pkg.GoFiles - } - - // Assume go list emits only absolute paths for Dir. - if p.Dir != "" && !filepath.IsAbs(p.Dir) { - log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) - } - - if p.Export != "" && !filepath.IsAbs(p.Export) { - pkg.ExportFile = filepath.Join(p.Dir, p.Export) - } else { - pkg.ExportFile = p.Export - } - - // imports - // - // Imports contains the IDs of all imported packages. - // ImportsMap records (path, ID) only where they differ. - ids := make(map[string]bool) - for _, id := range p.Imports { - ids[id] = true - } - pkg.Imports = make(map[string]*Package) - for path, id := range p.ImportMap { - pkg.Imports[path] = &Package{ID: id} // non-identity import - delete(ids, id) - } - for id := range ids { - if id == "C" { - continue - } - - pkg.Imports[id] = &Package{ID: id} // identity import - } - if !p.DepOnly { - response.Roots = append(response.Roots, pkg.ID) - } - - // Temporary work-around for golang/go#39986. Parse filenames out of - // error messages. This happens if there are unrecoverable syntax - // errors in the source, so we can't match on a specific error message. - // - // TODO(rfindley): remove this heuristic, in favor of considering - // InvalidGoFiles from the list driver. - if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { - addFilenameFromPos := func(pos string) bool { - split := strings.Split(pos, ":") - if len(split) < 1 { - return false - } - filename := strings.TrimSpace(split[0]) - if filename == "" { - return false - } - if !filepath.IsAbs(filename) { - filename = filepath.Join(state.cfg.Dir, filename) - } - info, _ := os.Stat(filename) - if info == nil { - return false - } - pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, filename) - pkg.GoFiles = append(pkg.GoFiles, filename) - return true - } - found := addFilenameFromPos(err.Pos) - // In some cases, go list only reports the error position in the - // error text, not the error position. One such case is when the - // file's package name is a keyword (see golang.org/issue/39763). - if !found { - addFilenameFromPos(err.Err) - } - } - - if p.Error != nil { - msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363. - // Address golang.org/issue/35964 by appending import stack to error message. - if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 { - msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack) - } - pkg.Errors = append(pkg.Errors, Error{ - Pos: p.Error.Pos, - Msg: msg, - Kind: ListError, - }) - } - - pkgs[pkg.ID] = pkg - } - - for id, errs := range additionalErrors { - if p, ok := pkgs[id]; ok { - p.Errors = append(p.Errors, errs...) - } - } - for _, pkg := range pkgs { - response.Packages = append(response.Packages, pkg) - } - sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID }) - - return response, nil -} - -func (state *golistState) shouldAddFilenameFromError(p *jsonPackage) bool { - if len(p.GoFiles) > 0 || len(p.CompiledGoFiles) > 0 { - return false - } - - goV, err := state.getGoVersion() - if err != nil { - return false - } - - // On Go 1.14 and earlier, only add filenames from errors if the import stack is empty. - // The import stack behaves differently for these versions than newer Go versions. - if goV < 15 { - return len(p.Error.ImportStack) == 0 - } - - // On Go 1.15 and later, only parse filenames out of error if there's no import stack, - // or the current package is at the top of the import stack. This is not guaranteed - // to work perfectly, but should avoid some cases where files in errors don't belong to this - // package. - return len(p.Error.ImportStack) == 0 || p.Error.ImportStack[len(p.Error.ImportStack)-1] == p.ImportPath -} - -// getGoVersion returns the effective minor version of the go command. -func (state *golistState) getGoVersion() (int, error) { - state.goVersionOnce.Do(func() { - state.goVersion, state.goVersionError = gocommand.GoVersion(state.ctx, state.cfgInvocation(), state.runner) - }) - return state.goVersion, state.goVersionError -} - -// getPkgPath finds the package path of a directory if it's relative to a root -// directory. -func (state *golistState) getPkgPath(dir string) (string, bool, error) { - if !filepath.IsAbs(dir) { - panic("non-absolute dir passed to getPkgPath") - } - roots, err := state.determineRootDirs() - if err != nil { - return "", false, err - } - - for rdir, rpath := range roots { - // Make sure that the directory is in the module, - // to avoid creating a path relative to another module. - if !strings.HasPrefix(dir, rdir) { - continue - } - // TODO(matloob): This doesn't properly handle symlinks. - r, err := filepath.Rel(rdir, dir) - if err != nil { - continue - } - if rpath != "" { - // We choose only one root even though the directory even it can belong in multiple modules - // or GOPATH entries. This is okay because we only need to work with absolute dirs when a - // file is missing from disk, for instance when gopls calls go/packages in an overlay. - // Once the file is saved, gopls, or the next invocation of the tool will get the correct - // result straight from golist. - // TODO(matloob): Implement module tiebreaking? - return path.Join(rpath, filepath.ToSlash(r)), true, nil - } - return filepath.ToSlash(r), true, nil - } - return "", false, nil -} - -// absJoin absolutizes and flattens the lists of files. -func absJoin(dir string, fileses ...[]string) (res []string) { - for _, files := range fileses { - for _, file := range files { - if !filepath.IsAbs(file) { - file = filepath.Join(dir, file) - } - res = append(res, file) - } - } - return res -} - -func jsonFlag(cfg *Config, goVersion int) string { - if goVersion < 19 { - return "-json" - } - var fields []string - added := make(map[string]bool) - addFields := func(fs ...string) { - for _, f := range fs { - if !added[f] { - added[f] = true - fields = append(fields, f) - } - } - } - addFields("Name", "ImportPath", "Error") // These fields are always needed - if cfg.Mode&NeedFiles != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - addFields("Dir", "GoFiles", "IgnoredGoFiles", "IgnoredOtherFiles", "CFiles", - "CgoFiles", "CXXFiles", "MFiles", "HFiles", "FFiles", "SFiles", - "SwigFiles", "SwigCXXFiles", "SysoFiles") - if cfg.Tests { - addFields("TestGoFiles", "XTestGoFiles") - } - } - if cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - // CompiledGoFiles seems to be required for the test case TestCgoNoSyntax, - // even when -compiled isn't passed in. - // TODO(#52435): Should we make the test ask for -compiled, or automatically - // request CompiledGoFiles in certain circumstances? - addFields("Dir", "CompiledGoFiles") - } - if cfg.Mode&NeedCompiledGoFiles != 0 { - addFields("Dir", "CompiledGoFiles", "Export") - } - if cfg.Mode&NeedImports != 0 { - // When imports are requested, DepOnly is used to distinguish between packages - // explicitly requested and transitive imports of those packages. - addFields("DepOnly", "Imports", "ImportMap") - if cfg.Tests { - addFields("TestImports", "XTestImports") - } - } - if cfg.Mode&NeedDeps != 0 { - addFields("DepOnly") - } - if usesExportData(cfg) { - // Request Dir in the unlikely case Export is not absolute. - addFields("Dir", "Export") - } - if cfg.Mode&NeedForTest != 0 { - addFields("ForTest") - } - if cfg.Mode&needInternalDepsErrors != 0 { - addFields("DepsErrors") - } - if cfg.Mode&NeedModule != 0 { - addFields("Module") - } - if cfg.Mode&NeedEmbedFiles != 0 { - addFields("EmbedFiles") - } - if cfg.Mode&NeedEmbedPatterns != 0 { - addFields("EmbedPatterns") - } - if cfg.Mode&NeedTarget != 0 { - addFields("Target") - } - return "-json=" + strings.Join(fields, ",") -} - -func golistargs(cfg *Config, words []string, goVersion int) []string { - const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo - fullargs := []string{ - "-e", jsonFlag(cfg, goVersion), - fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0), - fmt.Sprintf("-test=%t", cfg.Tests), - fmt.Sprintf("-export=%t", usesExportData(cfg)), - fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0), - // go list doesn't let you pass -test and -find together, - // probably because you'd just get the TestMain. - fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), - } - - // golang/go#60456: with go1.21 and later, go list serves pgo variants, which - // can be costly to compute and may result in redundant processing for the - // caller. Disable these variants. If someone wants to add e.g. a NeedPGO - // mode flag, that should be a separate proposal. - if goVersion >= 21 { - fullargs = append(fullargs, "-pgo=off") - } - - fullargs = append(fullargs, cfg.BuildFlags...) - fullargs = append(fullargs, "--") - fullargs = append(fullargs, words...) - return fullargs -} - -// cfgInvocation returns an Invocation that reflects cfg's settings. -func (state *golistState) cfgInvocation() gocommand.Invocation { - cfg := state.cfg - return gocommand.Invocation{ - BuildFlags: cfg.BuildFlags, - CleanEnv: cfg.Env != nil, - Env: cfg.Env, - Logf: cfg.Logf, - WorkingDir: cfg.Dir, - Overlay: state.overlay, - } -} - -// invokeGo returns the stdout of a go command invocation. -func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) { - cfg := state.cfg - - inv := state.cfgInvocation() - inv.Verb = verb - inv.Args = args - - stdout, stderr, friendlyErr, err := state.runner.RunRaw(cfg.Context, inv) - if err != nil { - // Check for 'go' executable not being found. - if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { - return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) - } - - exitErr, ok := err.(*exec.ExitError) - if !ok { - // Catastrophic error: - // - context cancellation - return nil, fmt.Errorf("couldn't run 'go': %w", err) - } - - // Old go version? - if strings.Contains(stderr.String(), "flag provided but not defined") { - return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} - } - - // Related to #24854 - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") { - return nil, friendlyErr - } - - // Return an error if 'go list' failed due to missing tools in - // $GOROOT/pkg/tool/$GOOS_$GOARCH (#69606). - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), `go: no such tool`) { - return nil, friendlyErr - } - - // Is there an error running the C compiler in cgo? This will be reported in the "Error" field - // and should be suppressed by go list -e. - // - // This condition is not perfect yet because the error message can include other error messages than runtime/cgo. - isPkgPathRune := func(r rune) bool { - // From https://golang.org/ref/spec#Import_declarations: - // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings - // using only characters belonging to Unicode's L, M, N, P, and S general categories - // (the Graphic characters without spaces) and may also exclude the - // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD. - return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) && - !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r) - } - // golang/go#36770: Handle case where cmd/go prints module download messages before the error. - msg := stderr.String() - for strings.HasPrefix(msg, "go: downloading") { - msg = msg[strings.IndexRune(msg, '\n')+1:] - } - if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") { - msg := msg[len("# "):] - if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") { - return stdout, nil - } - // Treat pkg-config errors as a special case (golang.org/issue/36770). - if strings.HasPrefix(msg, "pkg-config") { - return stdout, nil - } - } - - // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show - // the error in the Err section of stdout in case -e option is provided. - // This fix is provided for backwards compatibility. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Similar to the previous error, but currently lacks a fix in Go. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath. - // If the package doesn't exist, put the absolute path of the directory into the error message, - // as Go 1.13 list does. - const noSuchDirectory = "no such directory" - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) { - errstr := stderr.String() - abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):]) - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - abspath, strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist. - // Note that the error message we look for in this case is different that the one looked for above. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a - // directory outside any module. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Another variation of the previous error - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit - // status if there's a dependency on a package that doesn't exist. But it should return - // a zero exit status and set an error on that package. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") { - // Don't clobber stdout if `go list` actually returned something. - if len(stdout.String()) > 0 { - return stdout, nil - } - // try to extract package name from string - stderrStr := stderr.String() - var importPath string - colon := strings.Index(stderrStr, ":") - if colon > 0 && strings.HasPrefix(stderrStr, "go build ") { - importPath = stderrStr[len("go build "):colon] - } - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - importPath, strings.Trim(stderrStr, "\n")) - return bytes.NewBufferString(output), nil - } - - // Export mode entails a build. - // If that build fails, errors appear on stderr - // (despite the -e flag) and the Export field is blank. - // Do not fail in that case. - // The same is true if an ad-hoc package given to go list doesn't exist. - // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when - // packages don't exist or a build fails. - if !usesExportData(cfg) && !containsGoFile(args) { - return nil, friendlyErr - } - } - return stdout, nil -} - -func containsGoFile(s []string) bool { - for _, f := range s { - if strings.HasSuffix(f, ".go") { - return true - } - } - return false -} - -func cmdDebugStr(cmd *exec.Cmd) string { - env := make(map[string]string) - for _, kv := range cmd.Env { - split := strings.SplitN(kv, "=", 2) - k, v := split[0], split[1] - env[k] = v - } - - var args []string - for _, arg := range cmd.Args { - quoted := strconv.Quote(arg) - if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { - args = append(args, quoted) - } else { - args = append(args, arg) - } - } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) -} - -// getSizesForArgs queries 'go list' for the appropriate -// Compiler and GOARCH arguments to pass to [types.SizesFor]. -func getSizesForArgs(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { - inv.Verb = "list" - inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} - stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) - var goarch, compiler string - if rawErr != nil { - rawErrMsg := rawErr.Error() - if strings.Contains(rawErrMsg, "cannot find main module") || - strings.Contains(rawErrMsg, "go.mod file not found") { - // User's running outside of a module. - // All bets are off. Get GOARCH and guess compiler is gc. - // TODO(matloob): Is this a problem in practice? - inv.Verb = "env" - inv.Args = []string{"GOARCH"} - envout, enverr := gocmdRunner.Run(ctx, inv) - if enverr != nil { - return "", "", enverr - } - goarch = strings.TrimSpace(envout.String()) - compiler = "gc" - } else if friendlyErr != nil { - return "", "", friendlyErr - } else { - // This should be unreachable, but be defensive - // in case RunRaw's error results are inconsistent. - return "", "", rawErr - } - } else { - fields := strings.Fields(stdout.String()) - if len(fields) < 2 { - return "", "", fmt.Errorf("could not parse GOARCH and Go compiler in format \"<GOARCH> <compiler>\":\nstdout: <<%s>>\nstderr: <<%s>>", - stdout.String(), stderr.String()) - } - goarch = fields[0] - compiler = fields[1] - } - return compiler, goarch, nil -} diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go deleted file mode 100644 index d9d5a45..0000000 --- a/vendor/golang.org/x/tools/go/packages/golist_overlay.go +++ /dev/null @@ -1,83 +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. - -package packages - -import ( - "encoding/json" - "path/filepath" - - "golang.org/x/tools/internal/gocommand" -) - -// determineRootDirs returns a mapping from absolute directories that could -// contain code to their corresponding import path prefixes. -func (state *golistState) determineRootDirs() (map[string]string, error) { - env, err := state.getEnv() - if err != nil { - return nil, err - } - if env["GOMOD"] != "" { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsModules() - }) - } else { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH() - }) - } - return state.rootDirs, state.rootDirsError -} - -func (state *golistState) determineRootDirsModules() (map[string]string, error) { - // List all of the modules--the first will be the directory for the main - // module. Any replaced modules will also need to be treated as roots. - // Editing files in the module cache isn't a great idea, so we don't - // plan to ever support that. - out, err := state.invokeGo("list", "-m", "-json", "all") - if err != nil { - // 'go list all' will fail if we're outside of a module and - // GO111MODULE=on. Try falling back without 'all'. - var innerErr error - out, innerErr = state.invokeGo("list", "-m", "-json") - if innerErr != nil { - return nil, err - } - } - roots := map[string]string{} - modules := map[string]string{} - var i int - for dec := json.NewDecoder(out); dec.More(); { - mod := new(gocommand.ModuleJSON) - if err := dec.Decode(mod); err != nil { - return nil, err - } - if mod.Dir != "" && mod.Path != "" { - // This is a valid module; add it to the map. - absDir, err := state.cfg.abs(mod.Dir) - if err != nil { - return nil, err - } - modules[absDir] = mod.Path - // The first result is the main module. - if i == 0 || mod.Replace != nil && mod.Replace.Path != "" { - roots[absDir] = mod.Path - } - } - i++ - } - return roots, nil -} - -func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { - m := map[string]string{} - for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) { - absDir, err := filepath.Abs(dir) - if err != nil { - return nil, err - } - m[filepath.Join(absDir, "src")] = "" - } - return m, nil -} diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go deleted file mode 100644 index 69eec9f..0000000 --- a/vendor/golang.org/x/tools/go/packages/loadmode_string.go +++ /dev/null @@ -1,56 +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. - -package packages - -import ( - "fmt" - "strings" -) - -var modes = [...]struct { - mode LoadMode - name string -}{ - {NeedName, "NeedName"}, - {NeedFiles, "NeedFiles"}, - {NeedCompiledGoFiles, "NeedCompiledGoFiles"}, - {NeedImports, "NeedImports"}, - {NeedDeps, "NeedDeps"}, - {NeedExportFile, "NeedExportFile"}, - {NeedTypes, "NeedTypes"}, - {NeedSyntax, "NeedSyntax"}, - {NeedTypesInfo, "NeedTypesInfo"}, - {NeedTypesSizes, "NeedTypesSizes"}, - {NeedForTest, "NeedForTest"}, - {NeedModule, "NeedModule"}, - {NeedEmbedFiles, "NeedEmbedFiles"}, - {NeedEmbedPatterns, "NeedEmbedPatterns"}, - {NeedTarget, "NeedTarget"}, -} - -func (mode LoadMode) String() string { - if mode == 0 { - return "LoadMode(0)" - } - var out []string - // named bits - for _, item := range modes { - if (mode & item.mode) != 0 { - mode ^= item.mode - out = append(out, item.name) - } - } - // unnamed residue - if mode != 0 { - if out == nil { - return fmt.Sprintf("LoadMode(%#x)", int(mode)) - } - out = append(out, fmt.Sprintf("%#x", int(mode))) - } - if len(out) == 1 { - return out[0] - } - return "(" + strings.Join(out, "|") + ")" -} diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go deleted file mode 100644 index 060ab08..0000000 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ /dev/null @@ -1,1559 +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. - -package packages - -// See doc.go for package documentation and implementation notes. - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "go/ast" - "go/parser" - "go/scanner" - "go/token" - "go/types" - "log" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "sync/atomic" - "time" - - "golang.org/x/sync/errgroup" - - "golang.org/x/tools/go/gcexportdata" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" - "golang.org/x/tools/internal/typesinternal" -) - -// A LoadMode controls the amount of detail to return when loading. -// The bits below can be combined to specify which fields should be -// filled in the result packages. -// -// The zero value is a special case, equivalent to combining -// the NeedName, NeedFiles, and NeedCompiledGoFiles bits. -// -// ID and Errors (if present) will always be filled. -// [Load] may return more information than requested. -// -// The Mode flag is a union of several bits named NeedName, -// NeedFiles, and so on, each of which determines whether -// a given field of Package (Name, Files, etc) should be -// populated. -// -// For convenience, we provide named constants for the most -// common combinations of Need flags: -// -// [LoadFiles] lists of files in each package -// [LoadImports] ... plus imports -// [LoadTypes] ... plus type information -// [LoadSyntax] ... plus type-annotated syntax -// [LoadAllSyntax] ... for all dependencies -// -// Unfortunately there are a number of open bugs related to -// interactions among the LoadMode bits: -// - https://go.dev/issue/56633 -// - https://go.dev/issue/56677 -// - https://go.dev/issue/58726 -// - https://go.dev/issue/63517 -type LoadMode int - -const ( - // NeedName adds Name and PkgPath. - NeedName LoadMode = 1 << iota - - // NeedFiles adds Dir, GoFiles, OtherFiles, and IgnoredFiles - NeedFiles - - // NeedCompiledGoFiles adds CompiledGoFiles. - NeedCompiledGoFiles - - // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain - // "placeholder" Packages with only the ID set. - NeedImports - - // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. - NeedDeps - - // NeedExportFile adds ExportFile. - NeedExportFile - - // NeedTypes adds Types, Fset, and IllTyped. - NeedTypes - - // NeedSyntax adds Syntax and Fset. - NeedSyntax - - // NeedTypesInfo adds TypesInfo and Fset. - NeedTypesInfo - - // NeedTypesSizes adds TypesSizes. - NeedTypesSizes - - // needInternalDepsErrors adds the internal deps errors field for use by gopls. - needInternalDepsErrors - - // NeedForTest adds ForTest. - // - // Tests must also be set on the context for this field to be populated. - NeedForTest - - // typecheckCgo enables full support for type checking cgo. Requires Go 1.15+. - // Modifies CompiledGoFiles and Types, and has no effect on its own. - typecheckCgo - - // NeedModule adds Module. - NeedModule - - // NeedEmbedFiles adds EmbedFiles. - NeedEmbedFiles - - // NeedEmbedPatterns adds EmbedPatterns. - NeedEmbedPatterns - - // NeedTarget adds Target. - NeedTarget - - // Be sure to update loadmode_string.go when adding new items! -) - -const ( - // LoadFiles loads the name and file names for the initial packages. - LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles - - // LoadImports loads the name, file names, and import mapping for the initial packages. - LoadImports = LoadFiles | NeedImports - - // LoadTypes loads exported type information for the initial packages. - LoadTypes = LoadImports | NeedTypes | NeedTypesSizes - - // LoadSyntax loads typed syntax for the initial packages. - LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo - - // LoadAllSyntax loads typed syntax for the initial packages and all dependencies. - LoadAllSyntax = LoadSyntax | NeedDeps - - // Deprecated: NeedExportsFile is a historical misspelling of NeedExportFile. - // - //go:fix inline - NeedExportsFile = NeedExportFile -) - -// A Config specifies details about how packages should be loaded. -// The zero value is a valid configuration. -// -// Calls to [Load] do not modify this struct. -type Config struct { - // Mode controls the level of information returned for each package. - Mode LoadMode - - // Context specifies the context for the load operation. - // Cancelling the context may cause [Load] to abort and - // return an error. - Context context.Context - - // Logf is the logger for the config. - // If the user provides a logger, debug logging is enabled. - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the logger is nil, default to log.Printf. - Logf func(format string, args ...any) - - // Dir is the directory in which to run the build system's query tool - // that provides information about the packages. - // If Dir is empty, the tool is run in the current directory. - Dir string - - // Env is the environment to use when invoking the build system's query tool. - // If Env is nil, the current environment is used. - // As in os/exec's Cmd, only the last value in the slice for - // each environment key is used. To specify the setting of only - // a few variables, append to the current environment, as in: - // - // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") - // - Env []string - - // BuildFlags is a list of command-line flags to be passed through to - // the build system's query tool. - BuildFlags []string - - // Fset provides source position information for syntax trees and types. - // If Fset is nil, Load will use a new fileset, but preserve Fset's value. - Fset *token.FileSet - - // ParseFile is called to read and parse each file - // when preparing a package's type-checked syntax tree. - // It must be safe to call ParseFile simultaneously from multiple goroutines. - // If ParseFile is nil, the loader will uses parser.ParseFile. - // - // ParseFile should parse the source from src and use filename only for - // recording position information. - // - // An application may supply a custom implementation of ParseFile - // to change the effective file contents or the behavior of the parser, - // or to modify the syntax tree. For example, selectively eliminating - // unwanted function bodies can significantly accelerate type checking. - ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) - - // If Tests is set, the loader includes not just the packages - // matching a particular pattern but also any related test packages, - // including test-only variants of the package and the test executable. - // - // For example, when using the go command, loading "fmt" with Tests=true - // returns four packages, with IDs "fmt" (the standard package), - // "fmt [fmt.test]" (the package as compiled for the test), - // "fmt_test" (the test functions from source files in package fmt_test), - // and "fmt.test" (the test binary). - // - // In build systems with explicit names for tests, - // setting Tests may have no effect. - Tests bool - - // Overlay is a mapping from absolute file paths to file contents. - // - // For each map entry, [Load] uses the alternative file - // contents provided by the overlay mapping instead of reading - // from the file system. This mechanism can be used to enable - // editor-integrated tools to correctly analyze the contents - // of modified but unsaved buffers, for example. - // - // The overlay mapping is passed to the build system's driver - // (see "The driver protocol") so that it too can report - // consistent package metadata about unsaved files. However, - // drivers may vary in their level of support for overlays. - Overlay map[string][]byte -} - -// Load loads and returns the Go packages named by the given patterns. -// -// The cfg parameter specifies loading options; nil behaves the same as an empty [Config]. -// -// The [Config.Mode] field is a set of bits that determine what kinds -// of information should be computed and returned. Modes that require -// more information tend to be slower. See [LoadMode] for details -// and important caveats. Its zero value is equivalent to -// [NeedName] | [NeedFiles] | [NeedCompiledGoFiles]. -// -// Each call to Load returns a new set of [Package] instances. -// The Packages and their Imports form a directed acyclic graph. -// -// If the [NeedTypes] mode flag was set, each call to Load uses a new -// [types.Importer], so [types.Object] and [types.Type] values from -// different calls to Load must not be mixed as they will have -// inconsistent notions of type identity. -// -// If any of the patterns was invalid as defined by the -// underlying build system, Load returns an error. -// It may return an empty list of packages without an error, -// for instance for an empty expansion of a valid wildcard. -// Errors associated with a particular package are recorded in the -// corresponding Package's Errors list, and do not cause Load to -// return an error. Clients may need to handle such errors before -// proceeding with further analysis. The [PrintErrors] function is -// provided for convenient display of all errors. -func Load(cfg *Config, patterns ...string) ([]*Package, error) { - ld := newLoader(cfg) - response, external, err := defaultDriver(&ld.Config, patterns...) - if err != nil { - return nil, err - } - - ld.sizes = types.SizesFor(response.Compiler, response.Arch) - if ld.sizes == nil && ld.Config.Mode&(NeedTypes|NeedTypesSizes|NeedTypesInfo) != 0 { - // Type size information is needed but unavailable. - if external { - // An external driver may fail to populate the Compiler/GOARCH fields, - // especially since they are relatively new (see #63700). - // Provide a sensible fallback in this case. - ld.sizes = types.SizesFor("gc", runtime.GOARCH) - if ld.sizes == nil { // gccgo-only arch - ld.sizes = types.SizesFor("gc", "amd64") - } - } else { - // Go list should never fail to deliver accurate size information. - // Reject the whole Load since the error is the same for every package. - return nil, fmt.Errorf("can't determine type sizes for compiler %q on GOARCH %q", - response.Compiler, response.Arch) - } - } - - return ld.refine(response) -} - -// defaultDriver is a driver that implements go/packages' fallback behavior. -// It will try to request to an external driver, if one exists. If there's -// no external driver, or the driver returns a response with NotHandled set, -// defaultDriver will fall back to the go list driver. -// The boolean result indicates that an external driver handled the request. -func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, error) { - const ( - // windowsArgMax specifies the maximum command line length for - // the Windows' CreateProcess function. - windowsArgMax = 32767 - // maxEnvSize is a very rough estimation of the maximum environment - // size of a user. - maxEnvSize = 16384 - // safeArgMax specifies the maximum safe command line length to use - // by the underlying driver excl. the environment. We choose the Windows' - // ARG_MAX as the starting point because it's one of the lowest ARG_MAX - // constants out of the different supported platforms, - // e.g., https://www.in-ulm.de/~mascheck/various/argmax/#results. - safeArgMax = windowsArgMax - maxEnvSize - ) - chunks, err := splitIntoChunks(patterns, safeArgMax) - if err != nil { - return nil, false, err - } - - if driver := findExternalDriver(cfg); driver != nil { - response, err := callDriverOnChunks(driver, cfg, chunks) - if err != nil { - return nil, false, err - } else if !response.NotHandled { - return response, true, nil - } - // not handled: fall through - } - - // go list fallback - - // Write overlays once, as there are many calls - // to 'go list' (one per chunk plus others too). - overlayFile, cleanupOverlay, err := gocommand.WriteOverlays(cfg.Overlay) - if err != nil { - return nil, false, err - } - defer cleanupOverlay() - - var runner gocommand.Runner // (shared across many 'go list' calls) - driver := func(cfg *Config, patterns []string) (*DriverResponse, error) { - return goListDriver(cfg, &runner, overlayFile, patterns) - } - response, err := callDriverOnChunks(driver, cfg, chunks) - if err != nil { - return nil, false, err - } - return response, false, err -} - -// splitIntoChunks chunks the slice so that the total number of characters -// in a chunk is no longer than argMax. -func splitIntoChunks(patterns []string, argMax int) ([][]string, error) { - if argMax <= 0 { - return nil, errors.New("failed to split patterns into chunks, negative safe argMax value") - } - var chunks [][]string - charsInChunk := 0 - nextChunkStart := 0 - for i, v := range patterns { - vChars := len(v) - if vChars > argMax { - // a single pattern is longer than the maximum safe ARG_MAX, hardly should happen - return nil, errors.New("failed to split patterns into chunks, a pattern is too long") - } - charsInChunk += vChars + 1 // +1 is for a whitespace between patterns that has to be counted too - if charsInChunk > argMax { - chunks = append(chunks, patterns[nextChunkStart:i]) - nextChunkStart = i - charsInChunk = vChars - } - } - // add the last chunk - if nextChunkStart < len(patterns) { - chunks = append(chunks, patterns[nextChunkStart:]) - } - return chunks, nil -} - -func callDriverOnChunks(driver driver, cfg *Config, chunks [][]string) (*DriverResponse, error) { - if len(chunks) == 0 { - return driver(cfg, nil) - } - responses := make([]*DriverResponse, len(chunks)) - errNotHandled := errors.New("driver returned NotHandled") - var g errgroup.Group - for i, chunk := range chunks { - g.Go(func() (err error) { - responses[i], err = driver(cfg, chunk) - if responses[i] != nil && responses[i].NotHandled { - err = errNotHandled - } - return err - }) - } - if err := g.Wait(); err != nil { - if errors.Is(err, errNotHandled) { - return &DriverResponse{NotHandled: true}, nil - } - return nil, err - } - return mergeResponses(responses...), nil -} - -func mergeResponses(responses ...*DriverResponse) *DriverResponse { - if len(responses) == 0 { - return nil - } - response := newDeduper() - response.dr.NotHandled = false - response.dr.Compiler = responses[0].Compiler - response.dr.Arch = responses[0].Arch - response.dr.GoVersion = responses[0].GoVersion - for _, v := range responses { - response.addAll(v) - } - return response.dr -} - -// A Package describes a loaded Go package. -// -// It also defines part of the JSON schema of [DriverResponse]. -// See the package documentation for an overview. -type Package struct { - // ID is a unique identifier for a package, - // in a syntax provided by the underlying build system. - // - // Because the syntax varies based on the build system, - // clients should treat IDs as opaque and not attempt to - // interpret them. - ID string - - // Name is the package name as it appears in the package source code. - Name string - - // PkgPath is the package path as used by the go/types package. - PkgPath string - - // Dir is the directory associated with the package, if it exists. - // - // For packages listed by the go command, this is the directory containing - // the package files. - Dir string - - // Errors contains any errors encountered querying the metadata - // of the package, or while parsing or type-checking its files. - Errors []Error - - // TypeErrors contains the subset of errors produced during type checking. - TypeErrors []types.Error - - // GoFiles lists the absolute file paths of the package's Go source files. - // It may include files that should not be compiled, for example because - // they contain non-matching build tags, are documentary pseudo-files such as - // unsafe/unsafe.go or builtin/builtin.go, or are subject to cgo preprocessing. - GoFiles []string - - // CompiledGoFiles lists the absolute file paths of the package's source - // files that are suitable for type checking. - // This may differ from GoFiles if files are processed before compilation. - CompiledGoFiles []string - - // OtherFiles lists the absolute file paths of the package's non-Go source files, - // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. - OtherFiles []string - - // EmbedFiles lists the absolute file paths of the package's files - // embedded with go:embed. - EmbedFiles []string - - // EmbedPatterns lists the absolute file patterns of the package's - // files embedded with go:embed. - EmbedPatterns []string - - // IgnoredFiles lists source files that are not part of the package - // using the current build configuration but that might be part of - // the package using other build configurations. - IgnoredFiles []string - - // ExportFile is the absolute path to a file containing type - // information for the package as provided by the build system. - ExportFile string - - // Target is the absolute install path of the .a file, for libraries, - // and of the executable file, for binaries. - Target string - - // Imports maps import paths appearing in the package's Go source files - // to corresponding loaded Packages. - Imports map[string]*Package - - // Module is the module information for the package if it exists. - // - // Note: it may be missing for std and cmd; see Go issue #65816. - Module *Module - - // -- The following fields are not part of the driver JSON schema. -- - - // Types provides type information for the package. - // The NeedTypes LoadMode bit sets this field for packages matching the - // patterns; type information for dependencies may be missing or incomplete, - // unless NeedDeps and NeedImports are also set. - // - // Each call to [Load] returns a consistent set of type - // symbols, as defined by the comment at [types.Identical]. - // Avoid mixing type information from two or more calls to [Load]. - Types *types.Package `json:"-"` - - // Fset provides position information for Types, TypesInfo, and Syntax. - // It is set only when Types is set. - Fset *token.FileSet `json:"-"` - - // IllTyped indicates whether the package or any dependency contains errors. - // It is set only when Types is set. - IllTyped bool `json:"-"` - - // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. - // - // The NeedSyntax LoadMode bit populates this field for packages matching the patterns. - // If NeedDeps and NeedImports are also set, this field will also be populated - // for dependencies. - // - // Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are - // removed. If parsing returned nil, Syntax may be shorter than CompiledGoFiles. - Syntax []*ast.File `json:"-"` - - // TypesInfo provides type information about the package's syntax trees. - // It is set only when Syntax is set. - TypesInfo *types.Info `json:"-"` - - // TypesSizes provides the effective size function for types in TypesInfo. - TypesSizes types.Sizes `json:"-"` - - // -- internal -- - - // ForTest is the package under test, if any. - ForTest string - - // depsErrors is the DepsErrors field from the go list response, if any. - depsErrors []*packagesinternal.PackageError -} - -// Module provides module information for a package. -// -// It also defines part of the JSON schema of [DriverResponse]. -// See the package documentation for an overview. -type Module struct { - Path string // module path - Version string // module version - Replace *Module // replaced by this module - Time *time.Time // time version was created - Main bool // is this the main module? - Indirect bool // is this module only an indirect dependency of main module? - Dir string // directory holding files for this module, if any - GoMod string // path to go.mod file used when loading this module, if any - GoVersion string // go version used in module - Error *ModuleError // error loading module -} - -// ModuleError holds errors loading a module. -type ModuleError struct { - Err string // the error itself -} - -func init() { - packagesinternal.GetDepsErrors = func(p any) []*packagesinternal.PackageError { - return p.(*Package).depsErrors - } - packagesinternal.TypecheckCgo = int(typecheckCgo) - packagesinternal.DepsErrors = int(needInternalDepsErrors) -} - -// An Error describes a problem with a package's metadata, syntax, or types. -type Error struct { - Pos string // "file:line:col" or "file:line" or "" or "-" - Msg string - Kind ErrorKind -} - -// ErrorKind describes the source of the error, allowing the user to -// differentiate between errors generated by the driver, the parser, or the -// type-checker. -type ErrorKind int - -const ( - UnknownError ErrorKind = iota - ListError - ParseError - TypeError -) - -func (err Error) Error() string { - pos := err.Pos - if pos == "" { - pos = "-" // like token.Position{}.String() - } - return pos + ": " + err.Msg -} - -// flatPackage is the JSON form of Package -// It drops all the type and syntax fields, and transforms the Imports -// -// TODO(adonovan): identify this struct with Package, effectively -// publishing the JSON protocol. -type flatPackage struct { - ID string - Name string `json:",omitempty"` - PkgPath string `json:",omitempty"` - Errors []Error `json:",omitempty"` - GoFiles []string `json:",omitempty"` - CompiledGoFiles []string `json:",omitempty"` - OtherFiles []string `json:",omitempty"` - EmbedFiles []string `json:",omitempty"` - EmbedPatterns []string `json:",omitempty"` - IgnoredFiles []string `json:",omitempty"` - ExportFile string `json:",omitempty"` - Imports map[string]string `json:",omitempty"` -} - -// MarshalJSON returns the Package in its JSON form. -// For the most part, the structure fields are written out unmodified, and -// the type and syntax fields are skipped. -// The imports are written out as just a map of path to package id. -// The errors are written using a custom type that tries to preserve the -// structure of error types we know about. -// -// This method exists to enable support for additional build systems. It is -// not intended for use by clients of the API and we may change the format. -func (p *Package) MarshalJSON() ([]byte, error) { - flat := &flatPackage{ - ID: p.ID, - Name: p.Name, - PkgPath: p.PkgPath, - Errors: p.Errors, - GoFiles: p.GoFiles, - CompiledGoFiles: p.CompiledGoFiles, - OtherFiles: p.OtherFiles, - EmbedFiles: p.EmbedFiles, - EmbedPatterns: p.EmbedPatterns, - IgnoredFiles: p.IgnoredFiles, - ExportFile: p.ExportFile, - } - if len(p.Imports) > 0 { - flat.Imports = make(map[string]string, len(p.Imports)) - for path, ipkg := range p.Imports { - flat.Imports[path] = ipkg.ID - } - } - return json.Marshal(flat) -} - -// UnmarshalJSON reads in a Package from its JSON format. -// See MarshalJSON for details about the format accepted. -func (p *Package) UnmarshalJSON(b []byte) error { - flat := &flatPackage{} - if err := json.Unmarshal(b, &flat); err != nil { - return err - } - *p = Package{ - ID: flat.ID, - Name: flat.Name, - PkgPath: flat.PkgPath, - Errors: flat.Errors, - GoFiles: flat.GoFiles, - CompiledGoFiles: flat.CompiledGoFiles, - OtherFiles: flat.OtherFiles, - EmbedFiles: flat.EmbedFiles, - EmbedPatterns: flat.EmbedPatterns, - IgnoredFiles: flat.IgnoredFiles, - ExportFile: flat.ExportFile, - } - if len(flat.Imports) > 0 { - p.Imports = make(map[string]*Package, len(flat.Imports)) - for path, id := range flat.Imports { - p.Imports[path] = &Package{ID: id} - } - } - return nil -} - -func (p *Package) String() string { return p.ID } - -// loaderPackage augments Package with state used during the loading phase -type loaderPackage struct { - *Package - importErrors map[string]error // maps each bad import to its error - preds []*loaderPackage // packages that import this one - unfinishedSuccs atomic.Int32 // number of direct imports not yet loaded - color uint8 // for cycle detection - needsrc bool // load from source (Mode >= LoadTypes) - needtypes bool // type information is either requested or depended on - initial bool // package was matched by a pattern - goVersion int // minor version number of go command on PATH -} - -// loader holds the working state of a single call to load. -type loader struct { - pkgs map[string]*loaderPackage // keyed by Package.ID - Config - sizes types.Sizes // non-nil if needed by mode - parseCache map[string]*parseValue - parseCacheMu sync.Mutex - exportMu sync.Mutex // enforces mutual exclusion of exportdata operations - - // Config.Mode contains the implied mode (see impliedLoadMode). - // Implied mode contains all the fields we need the data for. - // In requestedMode there are the actually requested fields. - // We'll zero them out before returning packages to the user. - // This makes it easier for us to get the conditions where - // we need certain modes right. - requestedMode LoadMode -} - -type parseValue struct { - f *ast.File - err error - ready chan struct{} -} - -func newLoader(cfg *Config) *loader { - ld := &loader{ - parseCache: map[string]*parseValue{}, - } - if cfg != nil { - ld.Config = *cfg - // If the user has provided a logger, use it. - ld.Config.Logf = cfg.Logf - } - if ld.Config.Logf == nil { - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the user has not provided a logger, default to log.Printf. - if debug { - ld.Config.Logf = log.Printf - } else { - ld.Config.Logf = func(format string, args ...any) {} - } - } - if ld.Config.Mode == 0 { - ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility. - } - if ld.Config.Env == nil { - ld.Config.Env = os.Environ() - } - if ld.Context == nil { - ld.Context = context.Background() - } - if ld.Dir == "" { - if dir, err := os.Getwd(); err == nil { - ld.Dir = dir - } - } - - // Save the actually requested fields. We'll zero them out before returning packages to the user. - ld.requestedMode = ld.Mode - ld.Mode = impliedLoadMode(ld.Mode) - - if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - if ld.Fset == nil { - ld.Fset = token.NewFileSet() - } - - // ParseFile is required even in LoadTypes mode - // because we load source if export data is missing. - if ld.ParseFile == nil { - ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { - // We implicitly promise to keep doing ast.Object resolution. :( - const mode = parser.AllErrors | parser.ParseComments - return parser.ParseFile(fset, filename, src, mode) - } - } - } - - return ld -} - -// refine connects the supplied packages into a graph and then adds type -// and syntax information as requested by the LoadMode. -func (ld *loader) refine(response *DriverResponse) ([]*Package, error) { - roots := response.Roots - rootMap := make(map[string]int, len(roots)) - for i, root := range roots { - rootMap[root] = i - } - ld.pkgs = make(map[string]*loaderPackage) - // first pass, fixup and build the map and roots - var initial = make([]*loaderPackage, len(roots)) - for _, pkg := range response.Packages { - rootIndex := -1 - if i, found := rootMap[pkg.ID]; found { - rootIndex = i - } - - // Overlays can invalidate export data. - // TODO(matloob): make this check fine-grained based on dependencies on overlaid files - exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe" - // This package needs type information if the caller requested types and the package is - // either a root, or it's a non-root and the user requested dependencies ... - needtypes := (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) - // This package needs source if the call requested source (or types info, which implies source) - // and the package is either a root, or itas a non- root and the user requested dependencies... - needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) || - // ... or if we need types and the exportData is invalid. We fall back to (incompletely) - // typechecking packages from source if they fail to compile. - (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe" - lpkg := &loaderPackage{ - Package: pkg, - needtypes: needtypes, - needsrc: needsrc, - goVersion: response.GoVersion, - } - ld.pkgs[lpkg.ID] = lpkg - if rootIndex >= 0 { - initial[rootIndex] = lpkg - lpkg.initial = true - } - } - for i, root := range roots { - if initial[i] == nil { - return nil, fmt.Errorf("root package %v is missing", root) - } - } - - // Materialize the import graph if it is needed (NeedImports), - // or if we'll be using loadPackages (Need{Syntax|Types|TypesInfo}). - var leaves []*loaderPackage // packages with no unfinished successors - if ld.Mode&(NeedImports|NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - const ( - white = 0 // new - grey = 1 // in progress - black = 2 // complete - ) - - // visit traverses the import graph, depth-first, - // and materializes the graph as Packages.Imports. - // - // Valid imports are saved in the Packages.Import map. - // Invalid imports (cycles and missing nodes) are saved in the importErrors map. - // Thus, even in the presence of both kinds of errors, - // the Import graph remains a DAG. - // - // visit returns whether the package needs src or has a transitive - // dependency on a package that does. These are the only packages - // for which we load source code. - var stack []*loaderPackage - var visit func(from, lpkg *loaderPackage) bool - visit = func(from, lpkg *loaderPackage) bool { - if lpkg.color == grey { - panic("internal error: grey node") - } - if lpkg.color == white { - lpkg.color = grey - stack = append(stack, lpkg) // push - stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports - lpkg.Imports = make(map[string]*Package, len(stubs)) - for importPath, ipkg := range stubs { - var importErr error - imp := ld.pkgs[ipkg.ID] - if imp == nil { - // (includes package "C" when DisableCgo) - importErr = fmt.Errorf("missing package: %q", ipkg.ID) - } else if imp.color == grey { - importErr = fmt.Errorf("import cycle: %s", stack) - } - if importErr != nil { - if lpkg.importErrors == nil { - lpkg.importErrors = make(map[string]error) - } - lpkg.importErrors[importPath] = importErr - continue - } - - if visit(lpkg, imp) { - lpkg.needsrc = true - } - lpkg.Imports[importPath] = imp.Package - } - - // -- postorder -- - - // Complete type information is required for the - // immediate dependencies of each source package. - if lpkg.needsrc && ld.Mode&NeedTypes != 0 { - for _, ipkg := range lpkg.Imports { - ld.pkgs[ipkg.ID].needtypes = true - } - } - - // NeedTypeSizes causes TypeSizes to be set even - // on packages for which types aren't needed. - if ld.Mode&NeedTypesSizes != 0 { - lpkg.TypesSizes = ld.sizes - } - - // Add packages with no imports directly to the queue of leaves. - if len(lpkg.Imports) == 0 { - leaves = append(leaves, lpkg) - } - - stack = stack[:len(stack)-1] // pop - lpkg.color = black - } - - // Add edge from predecessor. - if from != nil { - from.unfinishedSuccs.Add(+1) // incref - lpkg.preds = append(lpkg.preds, from) - } - - return lpkg.needsrc - } - - // For each initial package, create its import DAG. - for _, lpkg := range initial { - visit(nil, lpkg) - } - - } else { - // !NeedImports: drop the stub (ID-only) import packages - // that we are not even going to try to resolve. - for _, lpkg := range initial { - lpkg.Imports = nil - } - } - - // Load type data and syntax if needed, starting at - // the initial packages (roots of the import DAG). - if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - - // We avoid using g.SetLimit to limit concurrency as - // it makes g.Go stop accepting work, which prevents - // workers from enqeuing, and thus finishing, and thus - // allowing the group to make progress: deadlock. - // - // Instead we use the ioLimit and cpuLimit semaphores. - g, _ := errgroup.WithContext(ld.Context) - - // enqueues adds a package to the type-checking queue. - // It must have no unfinished successors. - var enqueue func(*loaderPackage) - enqueue = func(lpkg *loaderPackage) { - g.Go(func() error { - // Parse and type-check. - ld.loadPackage(lpkg) - - // Notify each waiting predecessor, - // and enqueue it when it becomes a leaf. - for _, pred := range lpkg.preds { - if pred.unfinishedSuccs.Add(-1) == 0 { // decref - enqueue(pred) - } - } - - return nil - }) - } - - // Load leaves first, adding new packages - // to the queue as they become leaves. - for _, leaf := range leaves { - enqueue(leaf) - } - - if err := g.Wait(); err != nil { - return nil, err // cancelled - } - } - - // If the context is done, return its error and - // throw out [likely] incomplete packages. - if err := ld.Context.Err(); err != nil { - return nil, err - } - - result := make([]*Package, len(initial)) - for i, lpkg := range initial { - result[i] = lpkg.Package - } - for i := range ld.pkgs { - // Clear all unrequested fields, - // to catch programs that use more than they request. - if ld.requestedMode&NeedName == 0 { - ld.pkgs[i].Name = "" - ld.pkgs[i].PkgPath = "" - } - if ld.requestedMode&NeedFiles == 0 { - ld.pkgs[i].GoFiles = nil - ld.pkgs[i].OtherFiles = nil - ld.pkgs[i].IgnoredFiles = nil - } - if ld.requestedMode&NeedEmbedFiles == 0 { - ld.pkgs[i].EmbedFiles = nil - } - if ld.requestedMode&NeedEmbedPatterns == 0 { - ld.pkgs[i].EmbedPatterns = nil - } - if ld.requestedMode&NeedCompiledGoFiles == 0 { - ld.pkgs[i].CompiledGoFiles = nil - } - if ld.requestedMode&NeedImports == 0 { - ld.pkgs[i].Imports = nil - } - if ld.requestedMode&NeedExportFile == 0 { - ld.pkgs[i].ExportFile = "" - } - if ld.requestedMode&NeedTypes == 0 { - ld.pkgs[i].Types = nil - ld.pkgs[i].IllTyped = false - } - if ld.requestedMode&NeedSyntax == 0 { - ld.pkgs[i].Syntax = nil - } - if ld.requestedMode&(NeedSyntax|NeedTypes|NeedTypesInfo) == 0 { - ld.pkgs[i].Fset = nil - } - if ld.requestedMode&NeedTypesInfo == 0 { - ld.pkgs[i].TypesInfo = nil - } - if ld.requestedMode&NeedTypesSizes == 0 { - ld.pkgs[i].TypesSizes = nil - } - if ld.requestedMode&NeedModule == 0 { - ld.pkgs[i].Module = nil - } - } - - return result, nil -} - -// loadPackage loads/parses/typechecks the specified package. -// It must be called only once per Package, -// after immediate dependencies are loaded. -// Precondition: ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0. -func (ld *loader) loadPackage(lpkg *loaderPackage) { - if lpkg.PkgPath == "unsafe" { - // Fill in the blanks to avoid surprises. - lpkg.Types = types.Unsafe - lpkg.Fset = ld.Fset - lpkg.Syntax = []*ast.File{} - lpkg.TypesInfo = new(types.Info) - lpkg.TypesSizes = ld.sizes - return - } - - // Call NewPackage directly with explicit name. - // This avoids skew between golist and go/types when the files' - // package declarations are inconsistent. - lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) - lpkg.Fset = ld.Fset - - // Start shutting down if the context is done and do not load - // source or export data files. - // Packages that import this one will have ld.Context.Err() != nil. - // ld.Context.Err() will be returned later by refine. - if ld.Context.Err() != nil { - return - } - - // Subtle: we populate all Types fields with an empty Package - // before loading export data so that export data processing - // never has to create a types.Package for an indirect dependency, - // which would then require that such created packages be explicitly - // inserted back into the Import graph as a final step after export data loading. - // (Hence this return is after the Types assignment.) - // The Diamond test exercises this case. - if !lpkg.needtypes && !lpkg.needsrc { - return - } - - // TODO(adonovan): this condition looks wrong: - // I think it should be lpkg.needtypes && !lpg.needsrc, - // so that NeedSyntax without NeedTypes can be satisfied by export data. - if !lpkg.needsrc { - if err := ld.loadFromExportData(lpkg); err != nil { - lpkg.Errors = append(lpkg.Errors, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, // e.g. can't find/open/parse export data - }) - } - return // not a source package, don't get syntax trees - } - - appendError := func(err error) { - // Convert various error types into the one true Error. - var errs []Error - switch err := err.(type) { - case Error: - // from driver - errs = append(errs, err) - - case *os.PathError: - // from parser - errs = append(errs, Error{ - Pos: err.Path + ":1", - Msg: err.Err.Error(), - Kind: ParseError, - }) - - case scanner.ErrorList: - // from parser - for _, err := range err { - errs = append(errs, Error{ - Pos: err.Pos.String(), - Msg: err.Msg, - Kind: ParseError, - }) - } - - case types.Error: - // from type checker - lpkg.TypeErrors = append(lpkg.TypeErrors, err) - errs = append(errs, Error{ - Pos: err.Fset.Position(err.Pos).String(), - Msg: err.Msg, - Kind: TypeError, - }) - - default: - // unexpected impoverished error from parser? - errs = append(errs, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, - }) - - // If you see this error message, please file a bug. - log.Printf("internal error: error %q (%T) without position", err, err) - } - - lpkg.Errors = append(lpkg.Errors, errs...) - } - - // If the go command on the PATH is newer than the runtime, - // then the go/{scanner,ast,parser,types} packages from the - // standard library may be unable to process the files - // selected by go list. - // - // There is currently no way to downgrade the effective - // version of the go command (see issue 52078), so we proceed - // with the newer go command but, in case of parse or type - // errors, we emit an additional diagnostic. - // - // See: - // - golang.org/issue/52078 (flag to set release tags) - // - golang.org/issue/50825 (gopls legacy version support) - // - golang.org/issue/55883 (go/packages confusing error) - // - // Should we assert a hard minimum of (currently) go1.16 here? - var runtimeVersion int - if _, err := fmt.Sscanf(runtime.Version(), "go1.%d", &runtimeVersion); err == nil && runtimeVersion < lpkg.goVersion { - defer func() { - if len(lpkg.Errors) > 0 { - appendError(Error{ - Pos: "-", - Msg: fmt.Sprintf("This application uses version go1.%d of the source-processing packages but runs version go1.%d of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go.", runtimeVersion, lpkg.goVersion), - Kind: UnknownError, - }) - } - }() - } - - if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" { - // The config requested loading sources and types, but sources are missing. - // Add an error to the package and fall back to loading from export data. - appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError}) - _ = ld.loadFromExportData(lpkg) // ignore any secondary errors - - return // can't get syntax trees for this package - } - - files, errs := ld.parseFiles(lpkg.CompiledGoFiles) - for _, err := range errs { - appendError(err) - } - - lpkg.Syntax = files - if ld.Config.Mode&(NeedTypes|NeedTypesInfo) == 0 { - return - } - - // Start shutting down if the context is done and do not type check. - // Packages that import this one will have ld.Context.Err() != nil. - // ld.Context.Err() will be returned later by refine. - if ld.Context.Err() != nil { - return - } - - // Populate TypesInfo only if needed, as it - // causes the type checker to work much harder. - if ld.Config.Mode&NeedTypesInfo != 0 { - lpkg.TypesInfo = &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Instances: make(map[*ast.Ident]types.Instance), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - FileVersions: make(map[*ast.File]string), - } - } - lpkg.TypesSizes = ld.sizes - - importer := importerFunc(func(path string) (*types.Package, error) { - if path == "unsafe" { - return types.Unsafe, nil - } - - // The imports map is keyed by import path. - ipkg := lpkg.Imports[path] - if ipkg == nil { - if err := lpkg.importErrors[path]; err != nil { - return nil, err - } - // There was skew between the metadata and the - // import declarations, likely due to an edit - // race, or because the ParseFile feature was - // used to supply alternative file contents. - return nil, fmt.Errorf("no metadata for %s", path) - } - - if ipkg.Types != nil && ipkg.Types.Complete() { - return ipkg.Types, nil - } - log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg) - panic("unreachable") - }) - - // type-check - tc := &types.Config{ - Importer: importer, - - // Type-check bodies of functions only in initial packages. - // Example: for import graph A->B->C and initial packages {A,C}, - // we can ignore function bodies in B. - IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, - - Error: appendError, - Sizes: ld.sizes, // may be nil - } - if lpkg.Module != nil && lpkg.Module.GoVersion != "" { - tc.GoVersion = "go" + lpkg.Module.GoVersion - } - if (ld.Mode & typecheckCgo) != 0 { - if !typesinternal.SetUsesCgo(tc) { - appendError(Error{ - Msg: "typecheckCgo requires Go 1.15+", - Kind: ListError, - }) - return - } - } - - // Type-checking is CPU intensive. - cpuLimit <- unit{} // acquire a token - defer func() { <-cpuLimit }() // release a token - - typErr := types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) - lpkg.importErrors = nil // no longer needed - - // In go/types go1.21 and go1.22, Checker.Files failed fast with a - // a "too new" error, without calling tc.Error and without - // proceeding to type-check the package (#66525). - // We rely on the runtimeVersion error to give the suggested remedy. - if typErr != nil && len(lpkg.Errors) == 0 && len(lpkg.Syntax) > 0 { - if msg := typErr.Error(); strings.HasPrefix(msg, "package requires newer Go version") { - appendError(types.Error{ - Fset: ld.Fset, - Pos: lpkg.Syntax[0].Package, - Msg: msg, - }) - } - } - - // If !Cgo, the type-checker uses FakeImportC mode, so - // it doesn't invoke the importer for import "C", - // nor report an error for the import, - // or for any undefined C.f reference. - // We must detect this explicitly and correctly - // mark the package as IllTyped (by reporting an error). - // TODO(adonovan): if these errors are annoying, - // we could just set IllTyped quietly. - if tc.FakeImportC { - outer: - for _, f := range lpkg.Syntax { - for _, imp := range f.Imports { - if imp.Path.Value == `"C"` { - err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} - appendError(err) - break outer - } - } - } - } - - // If types.Checker.Files had an error that was unreported, - // make sure to report the unknown error so the package is illTyped. - if typErr != nil && len(lpkg.Errors) == 0 { - appendError(typErr) - } - - // Record accumulated errors. - illTyped := len(lpkg.Errors) > 0 - if !illTyped { - for _, imp := range lpkg.Imports { - if imp.IllTyped { - illTyped = true - break - } - } - } - lpkg.IllTyped = illTyped -} - -// An importFunc is an implementation of the single-method -// types.Importer interface based on a function value. -type importerFunc func(path string) (*types.Package, error) - -func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } - -// We use a counting semaphore to limit -// the number of parallel I/O calls or CPU threads per process. -var ( - ioLimit = make(chan unit, 20) - cpuLimit = make(chan unit, runtime.GOMAXPROCS(0)) -) - -func (ld *loader) parseFile(filename string) (*ast.File, error) { - ld.parseCacheMu.Lock() - v, ok := ld.parseCache[filename] - if ok { - // cache hit - ld.parseCacheMu.Unlock() - <-v.ready - } else { - // cache miss - v = &parseValue{ready: make(chan struct{})} - ld.parseCache[filename] = v - ld.parseCacheMu.Unlock() - - var src []byte - for f, contents := range ld.Config.Overlay { - // TODO(adonovan): Inefficient for large overlays. - // Do an exact name-based map lookup - // (for nonexistent files) followed by a - // FileID-based map lookup (for existing ones). - if sameFile(f, filename) { - src = contents - break - } - } - var err error - if src == nil { - ioLimit <- unit{} // acquire a token - src, err = os.ReadFile(filename) - <-ioLimit // release a token - } - if err != nil { - v.err = err - } else { - // Parsing is CPU intensive. - cpuLimit <- unit{} // acquire a token - v.f, v.err = ld.ParseFile(ld.Fset, filename, src) - <-cpuLimit // release a token - } - - close(v.ready) - } - return v.f, v.err -} - -// parseFiles reads and parses the Go source files and returns the ASTs -// of the ones that could be at least partially parsed, along with a -// list of I/O and parse errors encountered. -// -// Because files are scanned in parallel, the token.Pos -// positions of the resulting ast.Files are not ordered. -func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { - var ( - n = len(filenames) - parsed = make([]*ast.File, n) - errors = make([]error, n) - ) - var g errgroup.Group - for i, filename := range filenames { - // This creates goroutines unnecessarily in the - // cache-hit case, but that case is uncommon. - g.Go(func() error { - parsed[i], errors[i] = ld.parseFile(filename) - return nil - }) - } - g.Wait() - - // Eliminate nils, preserving order. - var o int - for _, f := range parsed { - if f != nil { - parsed[o] = f - o++ - } - } - parsed = parsed[:o] - - o = 0 - for _, err := range errors { - if err != nil { - errors[o] = err - o++ - } - } - errors = errors[:o] - - return parsed, errors -} - -// sameFile returns true if x and y have the same basename and denote -// the same file. -func sameFile(x, y string) bool { - if x == y { - // It could be the case that y doesn't exist. - // For instance, it may be an overlay file that - // hasn't been written to disk. To handle that case - // let x == y through. (We added the exact absolute path - // string to the CompiledGoFiles list, so the unwritten - // overlay case implies x==y.) - return true - } - if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) - if xi, err := os.Stat(x); err == nil { - if yi, err := os.Stat(y); err == nil { - return os.SameFile(xi, yi) - } - } - } - return false -} - -// loadFromExportData ensures that type information is present for the specified -// package, loading it from an export data file on the first request. -// On success it sets lpkg.Types to a new Package. -func (ld *loader) loadFromExportData(lpkg *loaderPackage) error { - if lpkg.PkgPath == "" { - log.Fatalf("internal error: Package %s has no PkgPath", lpkg) - } - - // Because gcexportdata.Read has the potential to create or - // modify the types.Package for each node in the transitive - // closure of dependencies of lpkg, all exportdata operations - // must be sequential. (Finer-grained locking would require - // changes to the gcexportdata API.) - // - // The exportMu lock guards the lpkg.Types field and the - // types.Package it points to, for each loaderPackage in the graph. - // - // Not all accesses to Package.Pkg need to be protected by exportMu: - // graph ordering ensures that direct dependencies of source - // packages are fully loaded before the importer reads their Pkg field. - ld.exportMu.Lock() - defer ld.exportMu.Unlock() - - if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { - return nil // cache hit - } - - lpkg.IllTyped = true // fail safe - - if lpkg.ExportFile == "" { - // Errors while building export data will have been printed to stderr. - return fmt.Errorf("no export data file") - } - f, err := os.Open(lpkg.ExportFile) - if err != nil { - return err - } - defer f.Close() - - // Read gc export data. - // - // We don't currently support gccgo export data because all - // underlying workspaces use the gc toolchain. (Even build - // systems that support gccgo don't use it for workspace - // queries.) - r, err := gcexportdata.NewReader(f) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - - // Build the view. - // - // The gcexportdata machinery has no concept of package ID. - // It identifies packages by their PkgPath, which although not - // globally unique is unique within the scope of one invocation - // of the linker, type-checker, or gcexportdata. - // - // So, we must build a PkgPath-keyed view of the global - // (conceptually ID-keyed) cache of packages and pass it to - // gcexportdata. The view must contain every existing - // package that might possibly be mentioned by the - // current package---its transitive closure. - // - // In loadPackage, we unconditionally create a types.Package for - // each dependency so that export data loading does not - // create new ones. - // - // TODO(adonovan): it would be simpler and more efficient - // if the export data machinery invoked a callback to - // get-or-create a package instead of a map. - // - view := make(map[string]*types.Package) // view seen by gcexportdata - seen := make(map[*loaderPackage]bool) // all visited packages - var visit func(pkgs map[string]*Package) - visit = func(pkgs map[string]*Package) { - for _, p := range pkgs { - lpkg := ld.pkgs[p.ID] - if !seen[lpkg] { - seen[lpkg] = true - view[lpkg.PkgPath] = lpkg.Types - visit(lpkg.Imports) - } - } - } - visit(lpkg.Imports) - - viewLen := len(view) + 1 // adding the self package - // Parse the export data. - // (May modify incomplete packages in view but not create new ones.) - tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - if _, ok := view["go.shape"]; ok { - // Account for the pseudopackage "go.shape" that gets - // created by generic code. - viewLen++ - } - if viewLen != len(view) { - log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath) - } - - lpkg.Types = tpkg - lpkg.IllTyped = false - return nil -} - -// impliedLoadMode returns loadMode with its dependencies. -func impliedLoadMode(loadMode LoadMode) LoadMode { - if loadMode&(NeedDeps|NeedTypes|NeedTypesInfo) != 0 { - // All these things require knowing the import graph. - loadMode |= NeedImports - } - if loadMode&NeedTypes != 0 { - // Types require the GoVersion from Module. - loadMode |= NeedModule - } - - return loadMode -} - -func usesExportData(cfg *Config) bool { - return cfg.Mode&NeedExportFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0 -} - -type unit struct{} diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go deleted file mode 100644 index df14ffd..0000000 --- a/vendor/golang.org/x/tools/go/packages/visit.go +++ /dev/null @@ -1,68 +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. - -package packages - -import ( - "fmt" - "os" - "sort" -) - -// Visit visits all the packages in the import graph whose roots are -// pkgs, calling the optional pre function the first time each package -// is encountered (preorder), and the optional post function after a -// package's dependencies have been visited (postorder). -// The boolean result of pre(pkg) determines whether -// the imports of package pkg are visited. -func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { - seen := make(map[*Package]bool) - var visit func(*Package) - visit = func(pkg *Package) { - if !seen[pkg] { - seen[pkg] = true - - if pre == nil || pre(pkg) { - paths := make([]string, 0, len(pkg.Imports)) - for path := range pkg.Imports { - paths = append(paths, path) - } - sort.Strings(paths) // Imports is a map, this makes visit stable - for _, path := range paths { - visit(pkg.Imports[path]) - } - } - - if post != nil { - post(pkg) - } - } - } - for _, pkg := range pkgs { - visit(pkg) - } -} - -// PrintErrors prints to os.Stderr the accumulated errors of all -// packages in the import graph rooted at pkgs, dependencies first. -// PrintErrors returns the number of errors printed. -func PrintErrors(pkgs []*Package) int { - var n int - errModules := make(map[*Module]bool) - Visit(pkgs, nil, func(pkg *Package) { - for _, err := range pkg.Errors { - fmt.Fprintln(os.Stderr, err) - n++ - } - - // Print pkg.Module.Error once if present. - mod := pkg.Module - if mod != nil && mod.Error != nil && !errModules[mod] { - errModules[mod] = true - fmt.Fprintln(os.Stderr, mod.Error.Err) - n++ - } - }) - return n -} diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go deleted file mode 100644 index d3c2913..0000000 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ /dev/null @@ -1,817 +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. - -// Package objectpath defines a naming scheme for types.Objects -// (that is, named entities in Go programs) relative to their enclosing -// package. -// -// Type-checker objects are canonical, so they are usually identified by -// their address in memory (a pointer), but a pointer has meaning only -// within one address space. By contrast, objectpath names allow the -// identity of an object to be sent from one program to another, -// establishing a correspondence between types.Object variables that are -// distinct but logically equivalent. -// -// A single object may have multiple paths. In this example, -// -// type A struct{ X int } -// type B A -// -// the field X has two paths due to its membership of both A and B. -// The For(obj) function always returns one of these paths, arbitrarily -// but consistently. -package objectpath - -import ( - "fmt" - "go/types" - "strconv" - "strings" - - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/typesinternal" -) - -// TODO(adonovan): think about generic aliases. - -// A Path is an opaque name that identifies a types.Object -// relative to its package. Conceptually, the name consists of a -// sequence of destructuring operations applied to the package scope -// to obtain the original object. -// The name does not include the package itself. -type Path string - -// Encoding -// -// An object path is a textual and (with training) human-readable encoding -// of a sequence of destructuring operators, starting from a types.Package. -// The sequences represent a path through the package/object/type graph. -// We classify these operators by their type: -// -// PO package->object Package.Scope.Lookup -// OT object->type Object.Type -// TT type->type Type.{Elem,Key,{,{,Recv}Type}Params,Results,Underlying,Rhs} [EKPRUTrCa] -// TO type->object Type.{At,Field,Method,Obj} [AFMO] -// -// All valid paths start with a package and end at an object -// and thus may be defined by the regular language: -// -// objectpath = PO (OT TT* TO)* -// -// The concrete encoding follows directly: -// - The only PO operator is Package.Scope.Lookup, which requires an identifier. -// - The only OT operator is Object.Type, -// which we encode as '.' because dot cannot appear in an identifier. -// - The TT operators are encoded as [EKPRUTrCa]; -// two of these ({,Recv}TypeParams) require an integer operand, -// which is encoded as a string of decimal digits. -// - The TO operators are encoded as [AFMO]; -// three of these (At,Field,Method) require an integer operand, -// which is encoded as a string of decimal digits. -// These indices are stable across different representations -// of the same package, even source and export data. -// The indices used are implementation specific and may not correspond to -// the argument to the go/types function. -// -// In the example below, -// -// package p -// -// type T interface { -// f() (a string, b struct{ X int }) -// } -// -// field X has the path "T.UM0.RA1.F0", -// representing the following sequence of operations: -// -// p.Lookup("T") T -// .Type().Underlying().Method(0). f -// .Type().Results().At(1) b -// .Type().Field(0) X -// -// The encoding is not maximally compact---every R or P is -// followed by an A, for example---but this simplifies the -// encoder and decoder. -const ( - // object->type operators - opType = '.' // .Type() (Object) - - // type->type operators - opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map) - opKey = 'K' // .Key() (Map) - opParams = 'P' // .Params() (Signature) - opResults = 'R' // .Results() (Signature) - opUnderlying = 'U' // .Underlying() (Named) - opTypeParam = 'T' // .TypeParams.At(i) (Named, Signature) - opRecvTypeParam = 'r' // .RecvTypeParams.At(i) (Signature) - opConstraint = 'C' // .Constraint() (TypeParam) - opRhs = 'a' // .Rhs() (Alias) - - // type->object operators - opAt = 'A' // .At(i) (Tuple) - opField = 'F' // .Field(i) (Struct) - opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored) - opObj = 'O' // .Obj() (Named, TypeParam) -) - -// For is equivalent to new(Encoder).For(obj). -// -// It may be more efficient to reuse a single Encoder across several calls. -func For(obj types.Object) (Path, error) { - return new(Encoder).For(obj) -} - -// An Encoder amortizes the cost of encoding the paths of multiple objects. -// The zero value of an Encoder is ready to use. -type Encoder struct { - scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects -} - -// For returns the path to an object relative to its package, -// or an error if the object is not accessible from the package's Scope. -// -// The For function guarantees to return a path only for the following objects: -// - package-level types -// - exported package-level non-types -// - methods -// - parameter and result variables -// - struct fields -// These objects are sufficient to define the API of their package. -// The objects described by a package's export data are drawn from this set. -// -// The set of objects accessible from a package's Scope depends on -// whether the package was produced by type-checking syntax, or -// reading export data; the latter may have a smaller Scope since -// export data trims objects that are not reachable from an exported -// declaration. For example, the For function will return a path for -// an exported method of an unexported type that is not reachable -// from any public declaration; this path will cause the Object -// function to fail if called on a package loaded from export data. -// TODO(adonovan): is this a bug or feature? Should this package -// compute accessibility in the same way? -// -// For does not return a path for predeclared names, imported package -// names, local names, and unexported package-level names (except -// types). -// -// Example: given this definition, -// -// package p -// -// type T interface { -// f() (a string, b struct{ X int }) -// } -// -// For(X) would return a path that denotes the following sequence of operations: -// -// p.Scope().Lookup("T") (TypeName T) -// .Type().Underlying().Method(0). (method Func f) -// .Type().Results().At(1) (field Var b) -// .Type().Field(0) (field Var X) -// -// where p is the package (*types.Package) to which X belongs. -func (enc *Encoder) For(obj types.Object) (Path, error) { - pkg := obj.Pkg() - - // This table lists the cases of interest. - // - // Object Action - // ------ ------ - // nil reject - // builtin reject - // pkgname reject - // label reject - // var - // package-level accept - // func param/result accept - // local reject - // struct field accept - // const - // package-level accept - // local reject - // func - // package-level accept - // init functions reject - // concrete method accept - // interface method accept - // type - // package-level accept - // local reject - // - // The only accessible package-level objects are members of pkg itself. - // - // The cases are handled in four steps: - // - // 1. reject nil and builtin - // 2. accept package-level objects - // 3. reject obviously invalid objects - // 4. search the API for the path to the param/result/field/method. - - // 1. reference to nil or builtin? - if pkg == nil { - return "", fmt.Errorf("predeclared %s has no path", obj) - } - scope := pkg.Scope() - - // 2. package-level object? - if scope.Lookup(obj.Name()) == obj { - // Only exported objects (and non-exported types) have a path. - // Non-exported types may be referenced by other objects. - if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() { - return "", fmt.Errorf("no path for non-exported %v", obj) - } - return Path(obj.Name()), nil - } - - // 3. Not a package-level object. - // Reject obviously non-viable cases. - switch obj := obj.(type) { - case *types.TypeName: - if _, ok := types.Unalias(obj.Type()).(*types.TypeParam); !ok { - // With the exception of type parameters, only package-level type names - // have a path. - return "", fmt.Errorf("no path for %v", obj) - } - case *types.Const, // Only package-level constants have a path. - *types.Label, // Labels are function-local. - *types.PkgName: // PkgNames are file-local. - return "", fmt.Errorf("no path for %v", obj) - - case *types.Var: - // Could be: - // - a field (obj.IsField()) - // - a func parameter or result - // - a local var. - // Sadly there is no way to distinguish - // a param/result from a local - // so we must proceed to the find. - - case *types.Func: - // A func, if not package-level, must be a method. - if recv := obj.Type().(*types.Signature).Recv(); recv == nil { - return "", fmt.Errorf("func is not a method: %v", obj) - } - - if path, ok := enc.concreteMethod(obj); ok { - // Fast path for concrete methods that avoids looping over scope. - return path, nil - } - - default: - panic(obj) - } - - // 4. Search the API for the path to the var (field/param/result) or method. - - // First inspect package-level named types. - // In the presence of path aliases, these give - // the best paths because non-types may - // refer to types, but not the reverse. - empty := make([]byte, 0, 48) // initial space - objs := enc.scopeObjects(scope) - for _, o := range objs { - tname, ok := o.(*types.TypeName) - if !ok { - continue // handle non-types in second pass - } - - path := append(empty, o.Name()...) - path = append(path, opType) - - T := o.Type() - if alias, ok := T.(*types.Alias); ok { - if r := findTypeParam(obj, aliases.TypeParams(alias), path, opTypeParam); r != nil { - return Path(r), nil - } - if r := find(obj, aliases.Rhs(alias), append(path, opRhs)); r != nil { - return Path(r), nil - } - - } else if tname.IsAlias() { - // legacy alias - if r := find(obj, T, path); r != nil { - return Path(r), nil - } - - } else if named, ok := T.(*types.Named); ok { - // defined (named) type - if r := findTypeParam(obj, named.TypeParams(), path, opTypeParam); r != nil { - return Path(r), nil - } - if r := find(obj, named.Underlying(), append(path, opUnderlying)); r != nil { - return Path(r), nil - } - } - } - - // Then inspect everything else: - // non-types, and declared methods of defined types. - for _, o := range objs { - path := append(empty, o.Name()...) - if _, ok := o.(*types.TypeName); !ok { - if o.Exported() { - // exported non-type (const, var, func) - if r := find(obj, o.Type(), append(path, opType)); r != nil { - return Path(r), nil - } - } - continue - } - - // Inspect declared methods of defined types. - if T, ok := types.Unalias(o.Type()).(*types.Named); ok { - path = append(path, opType) - // The method index here is always with respect - // to the underlying go/types data structures, - // which ultimately derives from source order - // and must be preserved by export data. - for i := 0; i < T.NumMethods(); i++ { - m := T.Method(i) - path2 := appendOpArg(path, opMethod, i) - if m == obj { - return Path(path2), nil // found declared method - } - if r := find(obj, m.Type(), append(path2, opType)); r != nil { - return Path(r), nil - } - } - } - } - - return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path()) -} - -func appendOpArg(path []byte, op byte, arg int) []byte { - path = append(path, op) - path = strconv.AppendInt(path, int64(arg), 10) - return path -} - -// concreteMethod returns the path for meth, which must have a non-nil receiver. -// The second return value indicates success and may be false if the method is -// an interface method or if it is an instantiated method. -// -// This function is just an optimization that avoids the general scope walking -// approach. You are expected to fall back to the general approach if this -// function fails. -func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { - // Concrete methods can only be declared on package-scoped named types. For - // that reason we can skip the expensive walk over the package scope: the - // path will always be package -> named type -> method. We can trivially get - // the type name from the receiver, and only have to look over the type's - // methods to find the method index. - // - // Methods on generic types require special consideration, however. Consider - // the following package: - // - // L1: type S[T any] struct{} - // L2: func (recv S[A]) Foo() { recv.Bar() } - // L3: func (recv S[B]) Bar() { } - // L4: type Alias = S[int] - // L5: func _[T any]() { var s S[int]; s.Foo() } - // - // The receivers of methods on generic types are instantiations. L2 and L3 - // instantiate S with the type-parameters A and B, which are scoped to the - // respective methods. L4 and L5 each instantiate S with int. Each of these - // instantiations has its own method set, full of methods (and thus objects) - // with receivers whose types are the respective instantiations. In other - // words, we have - // - // S[A].Foo, S[A].Bar - // S[B].Foo, S[B].Bar - // S[int].Foo, S[int].Bar - // - // We may thus be trying to produce object paths for any of these objects. - // - // S[A].Foo and S[B].Bar are the origin methods, and their paths are S.Foo - // and S.Bar, which are the paths that this function naturally produces. - // - // S[A].Bar, S[B].Foo, and both methods on S[int] are instantiations that - // don't correspond to the origin methods. For S[int], this is significant. - // The most precise object path for S[int].Foo, for example, is Alias.Foo, - // not S.Foo. Our function, however, would produce S.Foo, which would - // resolve to a different object. - // - // For S[A].Bar and S[B].Foo it could be argued that S.Bar and S.Foo are - // still the correct paths, since only the origin methods have meaningful - // paths. But this is likely only true for trivial cases and has edge cases. - // Since this function is only an optimization, we err on the side of giving - // up, deferring to the slower but definitely correct algorithm. Most users - // of objectpath will only be giving us origin methods, anyway, as referring - // to instantiated methods is usually not useful. - - if meth.Origin() != meth { - return "", false - } - - _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) - if named == nil { - return "", false - } - - if types.IsInterface(named) { - // Named interfaces don't have to be package-scoped - // - // TODO(dominikh): opt: if scope.Lookup(name) == named, then we can apply this optimization to interface - // methods, too, I think. - return "", false - } - - // Preallocate space for the name, opType, opMethod, and some digits. - name := named.Obj().Name() - path := make([]byte, 0, len(name)+8) - path = append(path, name...) - path = append(path, opType) - - // Method indices are w.r.t. the go/types data structures, - // ultimately deriving from source order, - // which is preserved by export data. - for i := 0; i < named.NumMethods(); i++ { - if named.Method(i) == meth { - path = appendOpArg(path, opMethod, i) - return Path(path), true - } - } - - // Due to golang/go#59944, go/types fails to associate the receiver with - // certain methods on cgo types. - // - // TODO(rfindley): replace this panic once golang/go#59944 is fixed in all Go - // versions gopls supports. - return "", false - // panic(fmt.Sprintf("couldn't find method %s on type %s; methods: %#v", meth, named, enc.namedMethods(named))) -} - -// find finds obj within type T, returning the path to it, or nil if not found. -// -// The seen map is used to short circuit cycles through type parameters. If -// nil, it will be allocated as necessary. -// -// The seenMethods map is used internally to short circuit cycles through -// interface methods, such as occur in the following example: -// -// type I interface { f() interface{I} } -// -// See golang/go#68046 for details. -func find(obj types.Object, T types.Type, path []byte) []byte { - return (&finder{obj: obj}).find(T, path) -} - -// finder closes over search state for a call to find. -type finder struct { - obj types.Object // the sought object - seenTParamNames map[*types.TypeName]bool // for cycle breaking through type parameters - seenMethods map[*types.Func]bool // for cycle breaking through recursive interfaces -} - -func (f *finder) find(T types.Type, path []byte) []byte { - switch T := T.(type) { - case *types.Alias: - return f.find(types.Unalias(T), path) - case *types.Basic, *types.Named: - // Named types belonging to pkg were handled already, - // so T must belong to another package. No path. - return nil - case *types.Pointer: - return f.find(T.Elem(), append(path, opElem)) - case *types.Slice: - return f.find(T.Elem(), append(path, opElem)) - case *types.Array: - return f.find(T.Elem(), append(path, opElem)) - case *types.Chan: - return f.find(T.Elem(), append(path, opElem)) - case *types.Map: - if r := f.find(T.Key(), append(path, opKey)); r != nil { - return r - } - return f.find(T.Elem(), append(path, opElem)) - case *types.Signature: - if r := f.findTypeParam(T.RecvTypeParams(), path, opRecvTypeParam); r != nil { - return r - } - if r := f.findTypeParam(T.TypeParams(), path, opTypeParam); r != nil { - return r - } - if r := f.find(T.Params(), append(path, opParams)); r != nil { - return r - } - return f.find(T.Results(), append(path, opResults)) - case *types.Struct: - for i := 0; i < T.NumFields(); i++ { - fld := T.Field(i) - path2 := appendOpArg(path, opField, i) - if fld == f.obj { - return path2 // found field var - } - if r := f.find(fld.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.Tuple: - for i := 0; i < T.Len(); i++ { - v := T.At(i) - path2 := appendOpArg(path, opAt, i) - if v == f.obj { - return path2 // found param/result var - } - if r := f.find(v.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.Interface: - for i := 0; i < T.NumMethods(); i++ { - m := T.Method(i) - if f.seenMethods[m] { - return nil - } - path2 := appendOpArg(path, opMethod, i) - if m == f.obj { - return path2 // found interface method - } - if f.seenMethods == nil { - f.seenMethods = make(map[*types.Func]bool) - } - f.seenMethods[m] = true - if r := f.find(m.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.TypeParam: - name := T.Obj() - if f.seenTParamNames[name] { - return nil - } - if name == f.obj { - return append(path, opObj) - } - if f.seenTParamNames == nil { - f.seenTParamNames = make(map[*types.TypeName]bool) - } - f.seenTParamNames[name] = true - if r := f.find(T.Constraint(), append(path, opConstraint)); r != nil { - return r - } - return nil - } - panic(T) -} - -func findTypeParam(obj types.Object, list *types.TypeParamList, path []byte, op byte) []byte { - return (&finder{obj: obj}).findTypeParam(list, path, op) -} - -func (f *finder) findTypeParam(list *types.TypeParamList, path []byte, op byte) []byte { - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) - path2 := appendOpArg(path, op, i) - if r := f.find(tparam, path2); r != nil { - return r - } - } - return nil -} - -// Object returns the object denoted by path p within the package pkg. -func Object(pkg *types.Package, p Path) (types.Object, error) { - pathstr := string(p) - if pathstr == "" { - return nil, fmt.Errorf("empty path") - } - - var pkgobj, suffix string - if dot := strings.IndexByte(pathstr, opType); dot < 0 { - pkgobj = pathstr - } else { - pkgobj = pathstr[:dot] - suffix = pathstr[dot:] // suffix starts with "." - } - - obj := pkg.Scope().Lookup(pkgobj) - if obj == nil { - return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj) - } - - // abstraction of *types.{Pointer,Slice,Array,Chan,Map} - type hasElem interface { - Elem() types.Type - } - // abstraction of *types.{Named,Signature} - type hasTypeParams interface { - TypeParams() *types.TypeParamList - } - // abstraction of *types.{Alias,Named,TypeParam} - type hasObj interface { - Obj() *types.TypeName - } - - // The loop state is the pair (t, obj), - // exactly one of which is non-nil, initially obj. - // All suffixes start with '.' (the only object->type operation), - // followed by optional type->type operations, - // then a type->object operation. - // The cycle then repeats. - var t types.Type - for suffix != "" { - code := suffix[0] - suffix = suffix[1:] - - // Codes [AFMTr] have an integer operand. - var index int - switch code { - case opAt, opField, opMethod, opTypeParam, opRecvTypeParam: - rest := strings.TrimLeft(suffix, "0123456789") - numerals := suffix[:len(suffix)-len(rest)] - suffix = rest - i, err := strconv.Atoi(numerals) - if err != nil { - return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code) - } - index = int(i) - case opObj: - // no operand - default: - // The suffix must end with a type->object operation. - if suffix == "" { - return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code) - } - } - - if code == opType { - if t != nil { - return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType) - } - t = obj.Type() - obj = nil - continue - } - - if t == nil { - return nil, fmt.Errorf("invalid path: code %q in object context", code) - } - - // Inv: t != nil, obj == nil - - t = types.Unalias(t) - switch code { - case opElem: - hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t) - } - t = hasElem.Elem() - - case opKey: - mapType, ok := t.(*types.Map) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t) - } - t = mapType.Key() - - case opParams: - sig, ok := t.(*types.Signature) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - t = sig.Params() - - case opResults: - sig, ok := t.(*types.Signature) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - t = sig.Results() - - case opUnderlying: - named, ok := t.(*types.Named) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named)", code, t, t) - } - t = named.Underlying() - - case opRhs: - if alias, ok := t.(*types.Alias); ok { - t = aliases.Rhs(alias) - } else if false && aliases.Enabled() { - // The Enabled check is too expensive, so for now we - // simply assume that aliases are not enabled. - // TODO(adonovan): replace with "if true {" when go1.24 is assured. - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want alias)", code, t, t) - } - - case opTypeParam: - hasTypeParams, ok := t.(hasTypeParams) // Named, Signature - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or signature)", code, t, t) - } - tparams := hasTypeParams.TypeParams() - if n := tparams.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - t = tparams.At(index) - - case opRecvTypeParam: - sig, ok := t.(*types.Signature) // Signature - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - rtparams := sig.RecvTypeParams() - if n := rtparams.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - t = rtparams.At(index) - - case opConstraint: - tparam, ok := t.(*types.TypeParam) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) - } - t = tparam.Constraint() - - case opAt: - tuple, ok := t.(*types.Tuple) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want tuple)", code, t, t) - } - if n := tuple.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - obj = tuple.At(index) - t = nil - - case opField: - structType, ok := t.(*types.Struct) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t) - } - if n := structType.NumFields(); index >= n { - return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n) - } - obj = structType.Field(index) - t = nil - - case opMethod: - switch t := t.(type) { - case *types.Interface: - if index >= t.NumMethods() { - return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) - } - obj = t.Method(index) // Id-ordered - - case *types.Named: - if index >= t.NumMethods() { - return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) - } - obj = t.Method(index) - - default: - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) - } - t = nil - - case opObj: - hasObj, ok := t.(hasObj) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or type param)", code, t, t) - } - obj = hasObj.Obj() - t = nil - - default: - return nil, fmt.Errorf("invalid path: unknown code %q", code) - } - } - - if obj == nil { - panic(p) // path does not end in an object-valued operator - } - - if obj.Pkg() != pkg { - return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj) - } - - return obj, nil // success -} - -// scopeObjects is a memoization of scope objects. -// Callers must not modify the result. -func (enc *Encoder) scopeObjects(scope *types.Scope) []types.Object { - m := enc.scopeMemo - if m == nil { - m = make(map[*types.Scope][]types.Object) - enc.scopeMemo = m - } - objs, ok := m[scope] - if !ok { - names := scope.Names() // allocates and sorts - objs = make([]types.Object, len(names)) - for i, name := range names { - objs[i] = scope.Lookup(name) - } - m[scope] = objs - } - return objs -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go deleted file mode 100644 index 5f10f56..0000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/callee.go +++ /dev/null @@ -1,85 +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. - -package typeutil - -import ( - "go/ast" - "go/types" - _ "unsafe" // for linkname -) - -// Callee returns the named target of a function call, if any: -// a function, method, builtin, or variable. -// -// Functions and methods may potentially have type parameters. -// -// Note: for calls of instantiated functions and methods, Callee returns -// the corresponding generic function or method on the generic type. -func Callee(info *types.Info, call *ast.CallExpr) types.Object { - obj := info.Uses[usedIdent(info, call.Fun)] - if obj == nil { - return nil - } - if _, ok := obj.(*types.TypeName); ok { - return nil - } - return obj -} - -// StaticCallee returns the target (function or method) of a static function -// call, if any. It returns nil for calls to builtins. -// -// Note: for calls of instantiated functions and methods, StaticCallee returns -// the corresponding generic function or method on the generic type. -func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { - obj := info.Uses[usedIdent(info, call.Fun)] - fn, _ := obj.(*types.Func) - if fn == nil || interfaceMethod(fn) { - return nil - } - return fn -} - -// usedIdent is the implementation of [internal/typesinternal.UsedIdent]. -// It returns the identifier associated with e. -// See typesinternal.UsedIdent for a fuller description. -// This function should live in typesinternal, but cannot because it would -// create an import cycle. -// -//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent -func usedIdent(info *types.Info, e ast.Expr) *ast.Ident { - if info.Types == nil || info.Uses == nil { - panic("one of info.Types or info.Uses is nil; both must be populated") - } - // Look through type instantiation if necessary. - switch d := ast.Unparen(e).(type) { - case *ast.IndexExpr: - if info.Types[d.Index].IsType() { - e = d.X - } - case *ast.IndexListExpr: - e = d.X - } - - switch e := ast.Unparen(e).(type) { - // info.Uses always has the object we want, even for selector expressions. - // We don't need info.Selections. - // See go/types/recording.go:recordSelection. - case *ast.Ident: - return e - case *ast.SelectorExpr: - return e.Sel - } - return nil -} - -// interfaceMethod reports whether its argument is a method of an interface. -// This function should live in typesinternal, but cannot because it would create an import cycle. -// -//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod -func interfaceMethod(f *types.Func) bool { - recv := f.Signature().Recv() - return recv != nil && types.IsInterface(recv.Type()) -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/vendor/golang.org/x/tools/go/types/typeutil/imports.go deleted file mode 100644 index b81ce0c..0000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/imports.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeutil - -import "go/types" - -// Dependencies returns all dependencies of the specified packages. -// -// Dependent packages appear in topological order: if package P imports -// package Q, Q appears earlier than P in the result. -// The algorithm follows import statements in the order they -// appear in the source code, so the result is a total order. -func Dependencies(pkgs ...*types.Package) []*types.Package { - var result []*types.Package - seen := make(map[*types.Package]bool) - var visit func(pkgs []*types.Package) - visit = func(pkgs []*types.Package) { - for _, p := range pkgs { - if !seen[p] { - seen[p] = true - visit(p.Imports()) - result = append(result, p) - } - } - } - visit(pkgs) - return result -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go deleted file mode 100644 index b6d542c..0000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/map.go +++ /dev/null @@ -1,475 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typeutil defines various utilities for types, such as [Map], -// a hash table that maps [types.Type] to any value. -package typeutil - -import ( - "bytes" - "fmt" - "go/types" - "hash/maphash" - "unsafe" - - "golang.org/x/tools/internal/typeparams" -) - -// Map is a hash-table-based mapping from types (types.Type) to -// arbitrary values. The concrete types that implement -// the Type interface are pointers. Since they are not canonicalized, -// == cannot be used to check for equivalence, and thus we cannot -// simply use a Go map. -// -// Just as with map[K]V, a nil *Map is a valid empty map. -// -// Read-only map operations ([Map.At], [Map.Len], and so on) may -// safely be called concurrently. -// -// TODO(adonovan): deprecate in favor of https://go.dev/issues/69420 -// and 69559, if the latter proposals for a generic hash-map type and -// a types.Hash function are accepted. -type Map struct { - table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused - length int // number of map entries -} - -// entry is an entry (key/value association) in a hash bucket. -type entry struct { - key types.Type - value any -} - -// SetHasher has no effect. -// -// It is a relic of an optimization that is no longer profitable. Do -// not use [Hasher], [MakeHasher], or [SetHasher] in new code. -func (m *Map) SetHasher(Hasher) {} - -// Delete removes the entry with the given key, if any. -// It returns true if the entry was found. -func (m *Map) Delete(key types.Type) bool { - if m != nil && m.table != nil { - hash := hash(key) - bucket := m.table[hash] - for i, e := range bucket { - if e.key != nil && types.Identical(key, e.key) { - // We can't compact the bucket as it - // would disturb iterators. - bucket[i] = entry{} - m.length-- - return true - } - } - } - return false -} - -// At returns the map entry for the given key. -// The result is nil if the entry is not present. -func (m *Map) At(key types.Type) any { - if m != nil && m.table != nil { - for _, e := range m.table[hash(key)] { - if e.key != nil && types.Identical(key, e.key) { - return e.value - } - } - } - return nil -} - -// Set sets the map entry for key to val, -// and returns the previous entry, if any. -func (m *Map) Set(key types.Type, value any) (prev any) { - if m.table != nil { - hash := hash(key) - bucket := m.table[hash] - var hole *entry - for i, e := range bucket { - if e.key == nil { - hole = &bucket[i] - } else if types.Identical(key, e.key) { - prev = e.value - bucket[i].value = value - return - } - } - - if hole != nil { - *hole = entry{key, value} // overwrite deleted entry - } else { - m.table[hash] = append(bucket, entry{key, value}) - } - } else { - hash := hash(key) - m.table = map[uint32][]entry{hash: {entry{key, value}}} - } - - m.length++ - return -} - -// Len returns the number of map entries. -func (m *Map) Len() int { - if m != nil { - return m.length - } - return 0 -} - -// Iterate calls function f on each entry in the map in unspecified order. -// -// If f should mutate the map, Iterate provides the same guarantees as -// Go maps: if f deletes a map entry that Iterate has not yet reached, -// f will not be invoked for it, but if f inserts a map entry that -// Iterate has not yet reached, whether or not f will be invoked for -// it is unspecified. -func (m *Map) Iterate(f func(key types.Type, value any)) { - if m != nil { - for _, bucket := range m.table { - for _, e := range bucket { - if e.key != nil { - f(e.key, e.value) - } - } - } - } -} - -// Keys returns a new slice containing the set of map keys. -// The order is unspecified. -func (m *Map) Keys() []types.Type { - keys := make([]types.Type, 0, m.Len()) - m.Iterate(func(key types.Type, _ any) { - keys = append(keys, key) - }) - return keys -} - -func (m *Map) toString(values bool) string { - if m == nil { - return "{}" - } - var buf bytes.Buffer - fmt.Fprint(&buf, "{") - sep := "" - m.Iterate(func(key types.Type, value any) { - fmt.Fprint(&buf, sep) - sep = ", " - fmt.Fprint(&buf, key) - if values { - fmt.Fprintf(&buf, ": %q", value) - } - }) - fmt.Fprint(&buf, "}") - return buf.String() -} - -// String returns a string representation of the map's entries. -// Values are printed using fmt.Sprintf("%v", v). -// Order is unspecified. -func (m *Map) String() string { - return m.toString(true) -} - -// KeysString returns a string representation of the map's key set. -// Order is unspecified. -func (m *Map) KeysString() string { - return m.toString(false) -} - -// -- Hasher -- - -// hash returns the hash of type t. -// TODO(adonovan): replace by types.Hash when Go proposal #69420 is accepted. -func hash(t types.Type) uint32 { - return theHasher.Hash(t) -} - -// A Hasher provides a [Hasher.Hash] method to map a type to its hash value. -// Hashers are stateless, and all are equivalent. -type Hasher struct{} - -var theHasher Hasher - -// MakeHasher returns Hasher{}. -// Hashers are stateless; all are equivalent. -func MakeHasher() Hasher { return theHasher } - -// Hash computes a hash value for the given type t such that -// Identical(t, t') => Hash(t) == Hash(t'). -func (h Hasher) Hash(t types.Type) uint32 { - return hasher{inGenericSig: false}.hash(t) -} - -// hasher holds the state of a single Hash traversal: whether we are -// inside the signature of a generic function; this is used to -// optimize [hasher.hashTypeParam]. -type hasher struct{ inGenericSig bool } - -// hashString computes the Fowler–Noll–Vo hash of s. -func hashString(s string) uint32 { - var h uint32 - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -// hash computes the hash of t. -func (h hasher) hash(t types.Type) uint32 { - // See Identical for rationale. - switch t := t.(type) { - case *types.Basic: - return uint32(t.Kind()) - - case *types.Alias: - return h.hash(types.Unalias(t)) - - case *types.Array: - return 9043 + 2*uint32(t.Len()) + 3*h.hash(t.Elem()) - - case *types.Slice: - return 9049 + 2*h.hash(t.Elem()) - - case *types.Struct: - var hash uint32 = 9059 - for i, n := 0, t.NumFields(); i < n; i++ { - f := t.Field(i) - if f.Anonymous() { - hash += 8861 - } - hash += hashString(t.Tag(i)) - hash += hashString(f.Name()) // (ignore f.Pkg) - hash += h.hash(f.Type()) - } - return hash - - case *types.Pointer: - return 9067 + 2*h.hash(t.Elem()) - - case *types.Signature: - var hash uint32 = 9091 - if t.Variadic() { - hash *= 8863 - } - - tparams := t.TypeParams() - if n := tparams.Len(); n > 0 { - h.inGenericSig = true // affects constraints, params, and results - - for i := range n { - tparam := tparams.At(i) - hash += 7 * h.hash(tparam.Constraint()) - } - } - - return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results()) - - case *types.Union: - return h.hashUnion(t) - - case *types.Interface: - // Interfaces are identical if they have the same set of methods, with - // identical names and types, and they have the same set of type - // restrictions. See go/types.identical for more details. - var hash uint32 = 9103 - - // Hash methods. - for i, n := 0, t.NumMethods(); i < n; i++ { - // Method order is not significant. - // Ignore m.Pkg(). - m := t.Method(i) - // Use shallow hash on method signature to - // avoid anonymous interface cycles. - hash += 3*hashString(m.Name()) + 5*h.shallowHash(m.Type()) - } - - // Hash type restrictions. - terms, err := typeparams.InterfaceTermSet(t) - // if err != nil t has invalid type restrictions. - if err == nil { - hash += h.hashTermSet(terms) - } - - return hash - - case *types.Map: - return 9109 + 2*h.hash(t.Key()) + 3*h.hash(t.Elem()) - - case *types.Chan: - return 9127 + 2*uint32(t.Dir()) + 3*h.hash(t.Elem()) - - case *types.Named: - hash := h.hashTypeName(t.Obj()) - targs := t.TypeArgs() - for i := 0; i < targs.Len(); i++ { - targ := targs.At(i) - hash += 2 * h.hash(targ) - } - return hash - - case *types.TypeParam: - return h.hashTypeParam(t) - - case *types.Tuple: - return h.hashTuple(t) - } - - panic(fmt.Sprintf("%T: %v", t, t)) -} - -func (h hasher) hashTuple(tuple *types.Tuple) uint32 { - // See go/types.identicalTypes for rationale. - n := tuple.Len() - hash := 9137 + 2*uint32(n) - for i := range n { - hash += 3 * h.hash(tuple.At(i).Type()) - } - return hash -} - -func (h hasher) hashUnion(t *types.Union) uint32 { - // Hash type restrictions. - terms, err := typeparams.UnionTermSet(t) - // if err != nil t has invalid type restrictions. Fall back on a non-zero - // hash. - if err != nil { - return 9151 - } - return h.hashTermSet(terms) -} - -func (h hasher) hashTermSet(terms []*types.Term) uint32 { - hash := 9157 + 2*uint32(len(terms)) - for _, term := range terms { - // term order is not significant. - termHash := h.hash(term.Type()) - if term.Tilde() { - termHash *= 9161 - } - hash += 3 * termHash - } - return hash -} - -// hashTypeParam returns the hash of a type parameter. -func (h hasher) hashTypeParam(t *types.TypeParam) uint32 { - // Within the signature of a generic function, TypeParams are - // identical if they have the same index and constraint, so we - // hash them based on index. - // - // When we are outside a generic function, free TypeParams are - // identical iff they are the same object, so we can use a - // more discriminating hash consistent with object identity. - // This optimization saves [Map] about 4% when hashing all the - // types.Info.Types in the forward closure of net/http. - if !h.inGenericSig { - // Optimization: outside a generic function signature, - // use a more discrimating hash consistent with object identity. - return h.hashTypeName(t.Obj()) - } - return 9173 + 3*uint32(t.Index()) -} - -var theSeed = maphash.MakeSeed() - -// hashTypeName hashes the pointer of tname. -func (hasher) hashTypeName(tname *types.TypeName) uint32 { - // Since types.Identical uses == to compare TypeNames, - // the Hash function uses maphash.Comparable. - // TODO(adonovan): or will, when it becomes available in go1.24. - // In the meantime we use the pointer's numeric value. - // - // hash := maphash.Comparable(theSeed, tname) - // - // (Another approach would be to hash the name and package - // path, and whether or not it is a package-level typename. It - // is rare for a package to define multiple local types with - // the same name.) - ptr := uintptr(unsafe.Pointer(tname)) - if unsafe.Sizeof(ptr) == 8 { - hash := uint64(ptr) - return uint32(hash ^ (hash >> 32)) - } else { - return uint32(ptr) - } -} - -// shallowHash computes a hash of t without looking at any of its -// element Types, to avoid potential anonymous cycles in the types of -// interface methods. -// -// When an unnamed non-empty interface type appears anywhere among the -// arguments or results of an interface method, there is a potential -// for endless recursion. Consider: -// -// type X interface { m() []*interface { X } } -// -// The problem is that the Methods of the interface in m's result type -// include m itself; there is no mention of the named type X that -// might help us break the cycle. -// (See comment in go/types.identical, case *Interface, for more.) -func (h hasher) shallowHash(t types.Type) uint32 { - // t is the type of an interface method (Signature), - // its params or results (Tuples), or their immediate - // elements (mostly Slice, Pointer, Basic, Named), - // so there's no need to optimize anything else. - switch t := t.(type) { - case *types.Alias: - return h.shallowHash(types.Unalias(t)) - - case *types.Signature: - var hash uint32 = 604171 - if t.Variadic() { - hash *= 971767 - } - // The Signature/Tuple recursion is always finite - // and invariably shallow. - return hash + 1062599*h.shallowHash(t.Params()) + 1282529*h.shallowHash(t.Results()) - - case *types.Tuple: - n := t.Len() - hash := 9137 + 2*uint32(n) - for i := range n { - hash += 53471161 * h.shallowHash(t.At(i).Type()) - } - return hash - - case *types.Basic: - return 45212177 * uint32(t.Kind()) - - case *types.Array: - return 1524181 + 2*uint32(t.Len()) - - case *types.Slice: - return 2690201 - - case *types.Struct: - return 3326489 - - case *types.Pointer: - return 4393139 - - case *types.Union: - return 562448657 - - case *types.Interface: - return 2124679 // no recursion here - - case *types.Map: - return 9109 - - case *types.Chan: - return 9127 - - case *types.Named: - return h.hashTypeName(t.Obj()) - - case *types.TypeParam: - return h.hashTypeParam(t) - } - panic(fmt.Sprintf("shallowHash: %T: %v", t, t)) -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go deleted file mode 100644 index f766602..0000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file implements a cache of method sets. - -package typeutil - -import ( - "go/types" - "sync" -) - -// A MethodSetCache records the method set of each type T for which -// MethodSet(T) is called so that repeat queries are fast. -// The zero value is a ready-to-use cache instance. -type MethodSetCache struct { - mu sync.Mutex - named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N - others map[types.Type]*types.MethodSet // all other types -} - -// MethodSet returns the method set of type T. It is thread-safe. -// -// If cache is nil, this function is equivalent to types.NewMethodSet(T). -// Utility functions can thus expose an optional *MethodSetCache -// parameter to clients that care about performance. -func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet { - if cache == nil { - return types.NewMethodSet(T) - } - cache.mu.Lock() - defer cache.mu.Unlock() - - switch T := types.Unalias(T).(type) { - case *types.Named: - return cache.lookupNamed(T).value - - case *types.Pointer: - if N, ok := types.Unalias(T.Elem()).(*types.Named); ok { - return cache.lookupNamed(N).pointer - } - } - - // all other types - // (The map uses pointer equivalence, not type identity.) - mset := cache.others[T] - if mset == nil { - mset = types.NewMethodSet(T) - if cache.others == nil { - cache.others = make(map[types.Type]*types.MethodSet) - } - cache.others[T] = mset - } - return mset -} - -func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } { - if cache.named == nil { - cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet }) - } - // Avoid recomputing mset(*T) for each distinct Pointer - // instance whose underlying type is a named type. - msets, ok := cache.named[named] - if !ok { - msets.value = types.NewMethodSet(named) - msets.pointer = types.NewMethodSet(types.NewPointer(named)) - cache.named[named] = msets - } - return msets -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/vendor/golang.org/x/tools/go/types/typeutil/ui.go deleted file mode 100644 index 9dda6a2..0000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/ui.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeutil - -// This file defines utilities for user interfaces that display types. - -import ( - "go/types" -) - -// IntuitiveMethodSet returns the intuitive method set of a type T, -// which is the set of methods you can call on an addressable value of -// that type. -// -// The result always contains MethodSet(T), and is exactly MethodSet(T) -// for interface types and for pointer-to-concrete types. -// For all other concrete types T, the result additionally -// contains each method belonging to *T if there is no identically -// named method on T itself. -// -// This corresponds to user intuition about method sets; -// this function is intended only for user interfaces. -// -// The order of the result is as for types.MethodSet(T). -func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection { - isPointerToConcrete := func(T types.Type) bool { - ptr, ok := types.Unalias(T).(*types.Pointer) - return ok && !types.IsInterface(ptr.Elem()) - } - - var result []*types.Selection - mset := msets.MethodSet(T) - if types.IsInterface(T) || isPointerToConcrete(T) { - for i, n := 0, mset.Len(); i < n; i++ { - result = append(result, mset.At(i)) - } - } else { - // T is some other concrete type. - // Report methods of T and *T, preferring those of T. - pmset := msets.MethodSet(types.NewPointer(T)) - for i, n := 0, pmset.Len(); i < n; i++ { - meth := pmset.At(i) - if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil { - meth = m - } - result = append(result, meth) - } - - } - return result -} diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go deleted file mode 100644 index cb6db88..0000000 --- a/vendor/golang.org/x/tools/imports/forward.go +++ /dev/null @@ -1,77 +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. - -// Package imports implements a Go pretty-printer (like package "go/format") -// that also adds or removes import statements as necessary. -package imports // import "golang.org/x/tools/imports" - -import ( - "log" - "os" - - "golang.org/x/tools/internal/gocommand" - intimp "golang.org/x/tools/internal/imports" -) - -// Options specifies options for processing files. -type Options struct { - Fragment bool // Accept fragment of a source file (no package statement) - AllErrors bool // Report all errors (not just the first 10 on different lines) - - Comments bool // Print comments (true if nil *Options provided) - TabIndent bool // Use tabs for indent (true if nil *Options provided) - TabWidth int // Tab width (8 if nil *Options provided) - - FormatOnly bool // Disable the insertion and deletion of imports -} - -// Debug controls verbose logging. -var Debug = false - -// LocalPrefix is a comma-separated string of import path prefixes, which, if -// set, instructs Process to sort the import paths with the given prefixes -// into another group after 3rd-party packages. -var LocalPrefix string - -// Process formats and adjusts imports for the provided file. -// If opt is nil the defaults are used, and if src is nil the source -// is read from the filesystem. -// -// Note that filename's directory influences which imports can be chosen, -// so it is important that filename be accurate. -// To process data “as if” it were in filename, pass the data as a non-nil src. -func Process(filename string, src []byte, opt *Options) ([]byte, error) { - var err error - if src == nil { - src, err = os.ReadFile(filename) - if err != nil { - return nil, err - } - } - if opt == nil { - opt = &Options{Comments: true, TabIndent: true, TabWidth: 8} - } - intopt := &intimp.Options{ - Env: &intimp.ProcessEnv{ - GocmdRunner: &gocommand.Runner{}, - }, - LocalPrefix: LocalPrefix, - AllErrors: opt.AllErrors, - Comments: opt.Comments, - FormatOnly: opt.FormatOnly, - Fragment: opt.Fragment, - TabIndent: opt.TabIndent, - TabWidth: opt.TabWidth, - } - if Debug { - intopt.Env.Logf = log.Printf - } - return intimp.Process(filename, src, intopt) -} - -// VendorlessPath returns the devendorized version of the import path ipath. -// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". -func VendorlessPath(ipath string) string { - return intimp.VendorlessPath(ipath) -} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go deleted file mode 100644 index b9425f5..0000000 --- a/vendor/golang.org/x/tools/internal/aliases/aliases.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package aliases - -import ( - "go/token" - "go/types" -) - -// Package aliases defines backward compatible shims -// for the types.Alias type representation added in 1.22. -// This defines placeholders for x/tools until 1.26. - -// NewAlias creates a new TypeName in Package pkg that -// is an alias for the type rhs. -// -// The enabled parameter determines whether the resulting [TypeName]'s -// type is an [types.Alias]. Its value must be the result of a call to -// [Enabled], which computes the effective value of -// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled -// function is expensive and should be called once per task (e.g. -// package import), not once per call to NewAlias. -// -// Precondition: enabled || len(tparams)==0. -// If materialized aliases are disabled, there must not be any type parameters. -func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type, tparams []*types.TypeParam) *types.TypeName { - if enabled { - tname := types.NewTypeName(pos, pkg, name, nil) - SetTypeParams(types.NewAlias(tname, rhs), tparams) - return tname - } - if len(tparams) > 0 { - panic("cannot create an alias with type parameters when gotypesalias is not enabled") - } - return types.NewTypeName(pos, pkg, name, rhs) -} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go deleted file mode 100644 index 7716a33..0000000 --- a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package aliases - -import ( - "go/ast" - "go/parser" - "go/token" - "go/types" -) - -// Rhs returns the type on the right-hand side of the alias declaration. -func Rhs(alias *types.Alias) types.Type { - if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { - return alias.Rhs() // go1.23+ - } - - // go1.22's Alias didn't have the Rhs method, - // so Unalias is the best we can do. - return types.Unalias(alias) -} - -// TypeParams returns the type parameter list of the alias. -func TypeParams(alias *types.Alias) *types.TypeParamList { - if alias, ok := any(alias).(interface{ TypeParams() *types.TypeParamList }); ok { - return alias.TypeParams() // go1.23+ - } - return nil -} - -// SetTypeParams sets the type parameters of the alias type. -func SetTypeParams(alias *types.Alias, tparams []*types.TypeParam) { - if alias, ok := any(alias).(interface { - SetTypeParams(tparams []*types.TypeParam) - }); ok { - alias.SetTypeParams(tparams) // go1.23+ - } else if len(tparams) > 0 { - panic("cannot set type parameters of an Alias type in go1.22") - } -} - -// TypeArgs returns the type arguments used to instantiate the Alias type. -func TypeArgs(alias *types.Alias) *types.TypeList { - if alias, ok := any(alias).(interface{ TypeArgs() *types.TypeList }); ok { - return alias.TypeArgs() // go1.23+ - } - return nil // empty (go1.22) -} - -// Origin returns the generic Alias type of which alias is an instance. -// If alias is not an instance of a generic alias, Origin returns alias. -func Origin(alias *types.Alias) *types.Alias { - if alias, ok := any(alias).(interface{ Origin() *types.Alias }); ok { - return alias.Origin() // go1.23+ - } - return alias // not an instance of a generic alias (go1.22) -} - -// Enabled reports whether [NewAlias] should create [types.Alias] types. -// -// This function is expensive! Call it sparingly. -func Enabled() bool { - // The only reliable way to compute the answer is to invoke go/types. - // We don't parse the GODEBUG environment variable, because - // (a) it's tricky to do so in a manner that is consistent - // with the godebug package; in particular, a simple - // substring check is not good enough. The value is a - // rightmost-wins list of options. But more importantly: - // (b) it is impossible to detect changes to the effective - // setting caused by os.Setenv("GODEBUG"), as happens in - // many tests. Therefore any attempt to cache the result - // is just incorrect. - fset := token.NewFileSet() - f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", parser.SkipObjectResolution) - pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) - _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) - return enabled -} diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go deleted file mode 100644 index a6cf0e6..0000000 --- a/vendor/golang.org/x/tools/internal/event/core/event.go +++ /dev/null @@ -1,85 +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. - -// Package core provides support for event based telemetry. -package core - -import ( - "fmt" - "time" - - "golang.org/x/tools/internal/event/label" -) - -// Event holds the information about an event of note that occurred. -type Event struct { - at time.Time - - // As events are often on the stack, storing the first few labels directly - // in the event can avoid an allocation at all for the very common cases of - // simple events. - // The length needs to be large enough to cope with the majority of events - // but no so large as to cause undue stack pressure. - // A log message with two values will use 3 labels (one for each value and - // one for the message itself). - - static [3]label.Label // inline storage for the first few labels - dynamic []label.Label // dynamically sized storage for remaining labels -} - -// eventLabelMap implements label.Map for a the labels of an Event. -type eventLabelMap struct { - event Event -} - -func (ev Event) At() time.Time { return ev.at } - -func (ev Event) Format(f fmt.State, r rune) { - if !ev.at.IsZero() { - fmt.Fprint(f, ev.at.Format("2006/01/02 15:04:05 ")) - } - for index := 0; ev.Valid(index); index++ { - if l := ev.Label(index); l.Valid() { - fmt.Fprintf(f, "\n\t%v", l) - } - } -} - -func (ev Event) Valid(index int) bool { - return index >= 0 && index < len(ev.static)+len(ev.dynamic) -} - -func (ev Event) Label(index int) label.Label { - if index < len(ev.static) { - return ev.static[index] - } - return ev.dynamic[index-len(ev.static)] -} - -func (ev Event) Find(key label.Key) label.Label { - for _, l := range ev.static { - if l.Key() == key { - return l - } - } - for _, l := range ev.dynamic { - if l.Key() == key { - return l - } - } - return label.Label{} -} - -func MakeEvent(static [3]label.Label, labels []label.Label) Event { - return Event{ - static: static, - dynamic: labels, - } -} - -// CloneEvent event returns a copy of the event with the time adjusted to at. -func CloneEvent(ev Event, at time.Time) Event { - ev.at = at - return ev -} diff --git a/vendor/golang.org/x/tools/internal/event/core/export.go b/vendor/golang.org/x/tools/internal/event/core/export.go deleted file mode 100644 index 05f3a9a..0000000 --- a/vendor/golang.org/x/tools/internal/event/core/export.go +++ /dev/null @@ -1,70 +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. - -package core - -import ( - "context" - "sync/atomic" - "time" - "unsafe" - - "golang.org/x/tools/internal/event/label" -) - -// Exporter is a function that handles events. -// It may return a modified context and event. -type Exporter func(context.Context, Event, label.Map) context.Context - -var ( - exporter unsafe.Pointer -) - -// SetExporter sets the global exporter function that handles all events. -// The exporter is called synchronously from the event call site, so it should -// return quickly so as not to hold up user code. -func SetExporter(e Exporter) { - p := unsafe.Pointer(&e) - if e == nil { - // &e is always valid, and so p is always valid, but for the early abort - // of ProcessEvent to be efficient it needs to make the nil check on the - // pointer without having to dereference it, so we make the nil function - // also a nil pointer - p = nil - } - atomic.StorePointer(&exporter, p) -} - -// deliver is called to deliver an event to the supplied exporter. -// it will fill in the time. -func deliver(ctx context.Context, exporter Exporter, ev Event) context.Context { - // add the current time to the event - ev.at = time.Now() - // hand the event off to the current exporter - return exporter(ctx, ev, ev) -} - -// Export is called to deliver an event to the global exporter if set. -func Export(ctx context.Context, ev Event) context.Context { - // get the global exporter and abort early if there is not one - exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) - if exporterPtr == nil { - return ctx - } - return deliver(ctx, *exporterPtr, ev) -} - -// ExportPair is called to deliver a start event to the supplied exporter. -// It also returns a function that will deliver the end event to the same -// exporter. -// It will fill in the time. -func ExportPair(ctx context.Context, begin, end Event) (context.Context, func()) { - // get the global exporter and abort early if there is not one - exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) - if exporterPtr == nil { - return ctx, func() {} - } - ctx = deliver(ctx, *exporterPtr, begin) - return ctx, func() { deliver(ctx, *exporterPtr, end) } -} diff --git a/vendor/golang.org/x/tools/internal/event/core/fast.go b/vendor/golang.org/x/tools/internal/event/core/fast.go deleted file mode 100644 index 06c1d46..0000000 --- a/vendor/golang.org/x/tools/internal/event/core/fast.go +++ /dev/null @@ -1,77 +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. - -package core - -import ( - "context" - - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// Log1 takes a message and one label delivers a log event to the exporter. -// It is a customized version of Print that is faster and does no allocation. -func Log1(ctx context.Context, message string, t1 label.Label) { - Export(ctx, MakeEvent([3]label.Label{ - keys.Msg.Of(message), - t1, - }, nil)) -} - -// Log2 takes a message and two labels and delivers a log event to the exporter. -// It is a customized version of Print that is faster and does no allocation. -func Log2(ctx context.Context, message string, t1 label.Label, t2 label.Label) { - Export(ctx, MakeEvent([3]label.Label{ - keys.Msg.Of(message), - t1, - t2, - }, nil)) -} - -// Metric1 sends a label event to the exporter with the supplied labels. -func Metric1(ctx context.Context, t1 label.Label) context.Context { - return Export(ctx, MakeEvent([3]label.Label{ - keys.Metric.New(), - t1, - }, nil)) -} - -// Metric2 sends a label event to the exporter with the supplied labels. -func Metric2(ctx context.Context, t1, t2 label.Label) context.Context { - return Export(ctx, MakeEvent([3]label.Label{ - keys.Metric.New(), - t1, - t2, - }, nil)) -} - -// Start1 sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start1(ctx context.Context, name string, t1 label.Label) (context.Context, func()) { - return ExportPair(ctx, - MakeEvent([3]label.Label{ - keys.Start.Of(name), - t1, - }, nil), - MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} - -// Start2 sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start2(ctx context.Context, name string, t1, t2 label.Label) (context.Context, func()) { - return ExportPair(ctx, - MakeEvent([3]label.Label{ - keys.Start.Of(name), - t1, - t2, - }, nil), - MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} diff --git a/vendor/golang.org/x/tools/internal/event/doc.go b/vendor/golang.org/x/tools/internal/event/doc.go deleted file mode 100644 index 5dc6e6b..0000000 --- a/vendor/golang.org/x/tools/internal/event/doc.go +++ /dev/null @@ -1,7 +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. - -// Package event provides a set of packages that cover the main -// concepts of telemetry in an implementation agnostic way. -package event diff --git a/vendor/golang.org/x/tools/internal/event/event.go b/vendor/golang.org/x/tools/internal/event/event.go deleted file mode 100644 index 4d55e57..0000000 --- a/vendor/golang.org/x/tools/internal/event/event.go +++ /dev/null @@ -1,127 +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. - -package event - -import ( - "context" - - "golang.org/x/tools/internal/event/core" - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// Exporter is a function that handles events. -// It may return a modified context and event. -type Exporter func(context.Context, core.Event, label.Map) context.Context - -// SetExporter sets the global exporter function that handles all events. -// The exporter is called synchronously from the event call site, so it should -// return quickly so as not to hold up user code. -func SetExporter(e Exporter) { - core.SetExporter(core.Exporter(e)) -} - -// Log takes a message and a label list and combines them into a single event -// before delivering them to the exporter. -func Log(ctx context.Context, message string, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Msg.Of(message), - }, labels)) -} - -// IsLog returns true if the event was built by the Log function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsLog(ev core.Event) bool { - return ev.Label(0).Key() == keys.Msg -} - -// Error takes a message and a label list and combines them into a single event -// before delivering them to the exporter. It captures the error in the -// delivered event. -func Error(ctx context.Context, message string, err error, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Msg.Of(message), - keys.Err.Of(err), - }, labels)) -} - -// IsError returns true if the event was built by the Error function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsError(ev core.Event) bool { - return ev.Label(0).Key() == keys.Msg && - ev.Label(1).Key() == keys.Err -} - -// Metric sends a label event to the exporter with the supplied labels. -func Metric(ctx context.Context, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Metric.New(), - }, labels)) -} - -// IsMetric returns true if the event was built by the Metric function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsMetric(ev core.Event) bool { - return ev.Label(0).Key() == keys.Metric -} - -// Label sends a label event to the exporter with the supplied labels. -func Label(ctx context.Context, labels ...label.Label) context.Context { - return core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Label.New(), - }, labels)) -} - -// IsLabel returns true if the event was built by the Label function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsLabel(ev core.Event) bool { - return ev.Label(0).Key() == keys.Label -} - -// Start sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start(ctx context.Context, name string, labels ...label.Label) (context.Context, func()) { - return core.ExportPair(ctx, - core.MakeEvent([3]label.Label{ - keys.Start.Of(name), - }, labels), - core.MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} - -// IsStart returns true if the event was built by the Start function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsStart(ev core.Event) bool { - return ev.Label(0).Key() == keys.Start -} - -// IsEnd returns true if the event was built by the End function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsEnd(ev core.Event) bool { - return ev.Label(0).Key() == keys.End -} - -// Detach returns a context without an associated span. -// This allows the creation of spans that are not children of the current span. -func Detach(ctx context.Context) context.Context { - return core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Detach.New(), - }, nil)) -} - -// IsDetach returns true if the event was built by the Detach function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsDetach(ev core.Event) bool { - return ev.Label(0).Key() == keys.Detach -} diff --git a/vendor/golang.org/x/tools/internal/event/keys/keys.go b/vendor/golang.org/x/tools/internal/event/keys/keys.go deleted file mode 100644 index 4cfa51b..0000000 --- a/vendor/golang.org/x/tools/internal/event/keys/keys.go +++ /dev/null @@ -1,564 +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. - -package keys - -import ( - "fmt" - "io" - "math" - "strconv" - - "golang.org/x/tools/internal/event/label" -) - -// Value represents a key for untyped values. -type Value struct { - name string - description string -} - -// New creates a new Key for untyped values. -func New(name, description string) *Value { - return &Value{name: name, description: description} -} - -func (k *Value) Name() string { return k.name } -func (k *Value) Description() string { return k.description } - -func (k *Value) Format(w io.Writer, buf []byte, l label.Label) { - fmt.Fprint(w, k.From(l)) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Value) Get(lm label.Map) any { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return nil -} - -// From can be used to get a value from a Label. -func (k *Value) From(t label.Label) any { return t.UnpackValue() } - -// Of creates a new Label with this key and the supplied value. -func (k *Value) Of(value any) label.Label { return label.OfValue(k, value) } - -// Tag represents a key for tagging labels that have no value. -// These are used when the existence of the label is the entire information it -// carries, such as marking events to be of a specific kind, or from a specific -// package. -type Tag struct { - name string - description string -} - -// NewTag creates a new Key for tagging labels. -func NewTag(name, description string) *Tag { - return &Tag{name: name, description: description} -} - -func (k *Tag) Name() string { return k.name } -func (k *Tag) Description() string { return k.description } - -func (k *Tag) Format(w io.Writer, buf []byte, l label.Label) {} - -// New creates a new Label with this key. -func (k *Tag) New() label.Label { return label.OfValue(k, nil) } - -// Int represents a key -type Int struct { - name string - description string -} - -// NewInt creates a new Key for int values. -func NewInt(name, description string) *Int { - return &Int{name: name, description: description} -} - -func (k *Int) Name() string { return k.name } -func (k *Int) Description() string { return k.description } - -func (k *Int) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int) Of(v int) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int) Get(lm label.Map) int { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int) From(t label.Label) int { return int(t.Unpack64()) } - -// Int8 represents a key -type Int8 struct { - name string - description string -} - -// NewInt8 creates a new Key for int8 values. -func NewInt8(name, description string) *Int8 { - return &Int8{name: name, description: description} -} - -func (k *Int8) Name() string { return k.name } -func (k *Int8) Description() string { return k.description } - -func (k *Int8) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int8) Of(v int8) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int8) Get(lm label.Map) int8 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int8) From(t label.Label) int8 { return int8(t.Unpack64()) } - -// Int16 represents a key -type Int16 struct { - name string - description string -} - -// NewInt16 creates a new Key for int16 values. -func NewInt16(name, description string) *Int16 { - return &Int16{name: name, description: description} -} - -func (k *Int16) Name() string { return k.name } -func (k *Int16) Description() string { return k.description } - -func (k *Int16) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int16) Of(v int16) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int16) Get(lm label.Map) int16 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int16) From(t label.Label) int16 { return int16(t.Unpack64()) } - -// Int32 represents a key -type Int32 struct { - name string - description string -} - -// NewInt32 creates a new Key for int32 values. -func NewInt32(name, description string) *Int32 { - return &Int32{name: name, description: description} -} - -func (k *Int32) Name() string { return k.name } -func (k *Int32) Description() string { return k.description } - -func (k *Int32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int32) Of(v int32) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int32) Get(lm label.Map) int32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int32) From(t label.Label) int32 { return int32(t.Unpack64()) } - -// Int64 represents a key -type Int64 struct { - name string - description string -} - -// NewInt64 creates a new Key for int64 values. -func NewInt64(name, description string) *Int64 { - return &Int64{name: name, description: description} -} - -func (k *Int64) Name() string { return k.name } -func (k *Int64) Description() string { return k.description } - -func (k *Int64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, k.From(l), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int64) Of(v int64) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int64) Get(lm label.Map) int64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int64) From(t label.Label) int64 { return int64(t.Unpack64()) } - -// UInt represents a key -type UInt struct { - name string - description string -} - -// NewUInt creates a new Key for uint values. -func NewUInt(name, description string) *UInt { - return &UInt{name: name, description: description} -} - -func (k *UInt) Name() string { return k.name } -func (k *UInt) Description() string { return k.description } - -func (k *UInt) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt) Of(v uint) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt) Get(lm label.Map) uint { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt) From(t label.Label) uint { return uint(t.Unpack64()) } - -// UInt8 represents a key -type UInt8 struct { - name string - description string -} - -// NewUInt8 creates a new Key for uint8 values. -func NewUInt8(name, description string) *UInt8 { - return &UInt8{name: name, description: description} -} - -func (k *UInt8) Name() string { return k.name } -func (k *UInt8) Description() string { return k.description } - -func (k *UInt8) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt8) Of(v uint8) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt8) Get(lm label.Map) uint8 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt8) From(t label.Label) uint8 { return uint8(t.Unpack64()) } - -// UInt16 represents a key -type UInt16 struct { - name string - description string -} - -// NewUInt16 creates a new Key for uint16 values. -func NewUInt16(name, description string) *UInt16 { - return &UInt16{name: name, description: description} -} - -func (k *UInt16) Name() string { return k.name } -func (k *UInt16) Description() string { return k.description } - -func (k *UInt16) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt16) Of(v uint16) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt16) Get(lm label.Map) uint16 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt16) From(t label.Label) uint16 { return uint16(t.Unpack64()) } - -// UInt32 represents a key -type UInt32 struct { - name string - description string -} - -// NewUInt32 creates a new Key for uint32 values. -func NewUInt32(name, description string) *UInt32 { - return &UInt32{name: name, description: description} -} - -func (k *UInt32) Name() string { return k.name } -func (k *UInt32) Description() string { return k.description } - -func (k *UInt32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt32) Of(v uint32) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt32) Get(lm label.Map) uint32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt32) From(t label.Label) uint32 { return uint32(t.Unpack64()) } - -// UInt64 represents a key -type UInt64 struct { - name string - description string -} - -// NewUInt64 creates a new Key for uint64 values. -func NewUInt64(name, description string) *UInt64 { - return &UInt64{name: name, description: description} -} - -func (k *UInt64) Name() string { return k.name } -func (k *UInt64) Description() string { return k.description } - -func (k *UInt64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, k.From(l), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt64) Of(v uint64) label.Label { return label.Of64(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt64) Get(lm label.Map) uint64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt64) From(t label.Label) uint64 { return t.Unpack64() } - -// Float32 represents a key -type Float32 struct { - name string - description string -} - -// NewFloat32 creates a new Key for float32 values. -func NewFloat32(name, description string) *Float32 { - return &Float32{name: name, description: description} -} - -func (k *Float32) Name() string { return k.name } -func (k *Float32) Description() string { return k.description } - -func (k *Float32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendFloat(buf, float64(k.From(l)), 'E', -1, 32)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Float32) Of(v float32) label.Label { - return label.Of64(k, uint64(math.Float32bits(v))) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Float32) Get(lm label.Map) float32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Float32) From(t label.Label) float32 { - return math.Float32frombits(uint32(t.Unpack64())) -} - -// Float64 represents a key -type Float64 struct { - name string - description string -} - -// NewFloat64 creates a new Key for int64 values. -func NewFloat64(name, description string) *Float64 { - return &Float64{name: name, description: description} -} - -func (k *Float64) Name() string { return k.name } -func (k *Float64) Description() string { return k.description } - -func (k *Float64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendFloat(buf, k.From(l), 'E', -1, 64)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Float64) Of(v float64) label.Label { - return label.Of64(k, math.Float64bits(v)) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Float64) Get(lm label.Map) float64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Float64) From(t label.Label) float64 { - return math.Float64frombits(t.Unpack64()) -} - -// String represents a key -type String struct { - name string - description string -} - -// NewString creates a new Key for int64 values. -func NewString(name, description string) *String { - return &String{name: name, description: description} -} - -func (k *String) Name() string { return k.name } -func (k *String) Description() string { return k.description } - -func (k *String) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendQuote(buf, k.From(l))) -} - -// Of creates a new Label with this key and the supplied value. -func (k *String) Of(v string) label.Label { return label.OfString(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *String) Get(lm label.Map) string { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return "" -} - -// From can be used to get a value from a Label. -func (k *String) From(t label.Label) string { return t.UnpackString() } - -// Boolean represents a key -type Boolean struct { - name string - description string -} - -// NewBoolean creates a new Key for bool values. -func NewBoolean(name, description string) *Boolean { - return &Boolean{name: name, description: description} -} - -func (k *Boolean) Name() string { return k.name } -func (k *Boolean) Description() string { return k.description } - -func (k *Boolean) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendBool(buf, k.From(l))) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Boolean) Of(v bool) label.Label { - if v { - return label.Of64(k, 1) - } - return label.Of64(k, 0) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Boolean) Get(lm label.Map) bool { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return false -} - -// From can be used to get a value from a Label. -func (k *Boolean) From(t label.Label) bool { return t.Unpack64() > 0 } - -// Error represents a key -type Error struct { - name string - description string -} - -// NewError creates a new Key for int64 values. -func NewError(name, description string) *Error { - return &Error{name: name, description: description} -} - -func (k *Error) Name() string { return k.name } -func (k *Error) Description() string { return k.description } - -func (k *Error) Format(w io.Writer, buf []byte, l label.Label) { - io.WriteString(w, k.From(l).Error()) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Error) Of(v error) label.Label { return label.OfValue(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Error) Get(lm label.Map) error { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return nil -} - -// From can be used to get a value from a Label. -func (k *Error) From(t label.Label) error { - err, _ := t.UnpackValue().(error) - return err -} diff --git a/vendor/golang.org/x/tools/internal/event/keys/standard.go b/vendor/golang.org/x/tools/internal/event/keys/standard.go deleted file mode 100644 index 7e95866..0000000 --- a/vendor/golang.org/x/tools/internal/event/keys/standard.go +++ /dev/null @@ -1,22 +0,0 @@ -// 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 keys - -var ( - // Msg is a key used to add message strings to label lists. - Msg = NewString("message", "a readable message") - // Label is a key used to indicate an event adds labels to the context. - Label = NewTag("label", "a label context marker") - // Start is used for things like traces that have a name. - Start = NewString("start", "span start") - // Metric is a key used to indicate an event records metrics. - End = NewTag("end", "a span end marker") - // Metric is a key used to indicate an event records metrics. - Detach = NewTag("detach", "a span detach marker") - // Err is a key used to add error values to label lists. - Err = NewError("error", "an error that occurred") - // Metric is a key used to indicate an event records metrics. - Metric = NewTag("metric", "a metric event marker") -) diff --git a/vendor/golang.org/x/tools/internal/event/keys/util.go b/vendor/golang.org/x/tools/internal/event/keys/util.go deleted file mode 100644 index c0e8e73..0000000 --- a/vendor/golang.org/x/tools/internal/event/keys/util.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package keys - -import ( - "sort" - "strings" -) - -// Join returns a canonical join of the keys in S: -// a sorted comma-separated string list. -func Join[S ~[]T, T ~string](s S) string { - strs := make([]string, 0, len(s)) - for _, v := range s { - strs = append(strs, string(v)) - } - sort.Strings(strs) - return strings.Join(strs, ",") -} diff --git a/vendor/golang.org/x/tools/internal/event/label/label.go b/vendor/golang.org/x/tools/internal/event/label/label.go deleted file mode 100644 index 92a3910..0000000 --- a/vendor/golang.org/x/tools/internal/event/label/label.go +++ /dev/null @@ -1,214 +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. - -package label - -import ( - "fmt" - "io" - "reflect" - "slices" - "unsafe" -) - -// Key is used as the identity of a Label. -// Keys are intended to be compared by pointer only, the name should be unique -// for communicating with external systems, but it is not required or enforced. -type Key interface { - // Name returns the key name. - Name() string - // Description returns a string that can be used to describe the value. - Description() string - - // Format is used in formatting to append the value of the label to the - // supplied buffer. - // The formatter may use the supplied buf as a scratch area to avoid - // allocations. - Format(w io.Writer, buf []byte, l Label) -} - -// Label holds a key and value pair. -// It is normally used when passing around lists of labels. -type Label struct { - key Key - packed uint64 - untyped any -} - -// Map is the interface to a collection of Labels indexed by key. -type Map interface { - // Find returns the label that matches the supplied key. - Find(key Key) Label -} - -// List is the interface to something that provides an iterable -// list of labels. -// Iteration should start from 0 and continue until Valid returns false. -type List interface { - // Valid returns true if the index is within range for the list. - // It does not imply the label at that index will itself be valid. - Valid(index int) bool - // Label returns the label at the given index. - Label(index int) Label -} - -// list implements LabelList for a list of Labels. -type list struct { - labels []Label -} - -// filter wraps a LabelList filtering out specific labels. -type filter struct { - keys []Key - underlying List -} - -// listMap implements LabelMap for a simple list of labels. -type listMap struct { - labels []Label -} - -// mapChain implements LabelMap for a list of underlying LabelMap. -type mapChain struct { - maps []Map -} - -// OfValue creates a new label from the key and value. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func OfValue(k Key, value any) Label { return Label{key: k, untyped: value} } - -// UnpackValue assumes the label was built using LabelOfValue and returns the value -// that was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) UnpackValue() any { return t.untyped } - -// Of64 creates a new label from a key and a uint64. This is often -// used for non uint64 values that can be packed into a uint64. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func Of64(k Key, v uint64) Label { return Label{key: k, packed: v} } - -// Unpack64 assumes the label was built using LabelOf64 and returns the value that -// was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) Unpack64() uint64 { return t.packed } - -type stringptr unsafe.Pointer - -// OfString creates a new label from a key and a string. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func OfString(k Key, v string) Label { - hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) - return Label{ - key: k, - packed: uint64(hdr.Len), - untyped: stringptr(hdr.Data), - } -} - -// UnpackString assumes the label was built using LabelOfString and returns the -// value that was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) UnpackString() string { - var v string - hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) - hdr.Data = uintptr(t.untyped.(stringptr)) - hdr.Len = int(t.packed) - return v -} - -// Valid returns true if the Label is a valid one (it has a key). -func (t Label) Valid() bool { return t.key != nil } - -// Key returns the key of this Label. -func (t Label) Key() Key { return t.key } - -// Format is used for debug printing of labels. -func (t Label) Format(f fmt.State, r rune) { - if !t.Valid() { - io.WriteString(f, `nil`) - return - } - io.WriteString(f, t.Key().Name()) - io.WriteString(f, "=") - var buf [128]byte - t.Key().Format(f, buf[:0], t) -} - -func (l *list) Valid(index int) bool { - return index >= 0 && index < len(l.labels) -} - -func (l *list) Label(index int) Label { - return l.labels[index] -} - -func (f *filter) Valid(index int) bool { - return f.underlying.Valid(index) -} - -func (f *filter) Label(index int) Label { - l := f.underlying.Label(index) - if slices.Contains(f.keys, l.Key()) { - return Label{} - } - return l -} - -func (lm listMap) Find(key Key) Label { - for _, l := range lm.labels { - if l.Key() == key { - return l - } - } - return Label{} -} - -func (c mapChain) Find(key Key) Label { - for _, src := range c.maps { - l := src.Find(key) - if l.Valid() { - return l - } - } - return Label{} -} - -var emptyList = &list{} - -func NewList(labels ...Label) List { - if len(labels) == 0 { - return emptyList - } - return &list{labels: labels} -} - -func Filter(l List, keys ...Key) List { - if len(keys) == 0 { - return l - } - return &filter{keys: keys, underlying: l} -} - -func NewMap(labels ...Label) Map { - return listMap{labels: labels} -} - -func MergeMaps(srcs ...Map) Map { - var nonNil []Map - for _, src := range srcs { - if src != nil { - nonNil = append(nonNil, src) - } - } - if len(nonNil) == 1 { - return nonNil[0] - } - return mapChain{maps: nonNil} -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go deleted file mode 100644 index 734c461..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go +++ /dev/null @@ -1,89 +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. - -// This file contains the remaining vestiges of -// $GOROOT/src/go/internal/gcimporter/bimport.go. - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" - "sync" -) - -func errorf(format string, args ...any) { - panic(fmt.Sprintf(format, args...)) -} - -const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go - -// Synthesize a token.Pos -type fakeFileSet struct { - fset *token.FileSet - files map[string]*fileInfo -} - -type fileInfo struct { - file *token.File - lastline int -} - -const maxlines = 64 * 1024 - -func (s *fakeFileSet) pos(file string, line, column int) token.Pos { - // TODO(mdempsky): Make use of column. - - // Since we don't know the set of needed file positions, we reserve maxlines - // positions per file. We delay calling token.File.SetLines until all - // positions have been calculated (by way of fakeFileSet.setLines), so that - // we can avoid setting unnecessary lines. See also golang/go#46586. - f := s.files[file] - if f == nil { - f = &fileInfo{file: s.fset.AddFile(file, -1, maxlines)} - s.files[file] = f - } - if line > maxlines { - line = 1 - } - if line > f.lastline { - f.lastline = line - } - - // Return a fake position assuming that f.file consists only of newlines. - return token.Pos(f.file.Base() + line - 1) -} - -func (s *fakeFileSet) setLines() { - fakeLinesOnce.Do(func() { - fakeLines = make([]int, maxlines) - for i := range fakeLines { - fakeLines[i] = i - } - }) - for _, f := range s.files { - f.file.SetLines(fakeLines[:f.lastline]) - } -} - -var ( - fakeLines []int - fakeLinesOnce sync.Once -) - -func chanDir(d int) types.ChanDir { - // tag values must match the constants in cmd/compile/internal/gc/go.go - switch d { - case 1 /* Crecv */ : - return types.RecvOnly - case 2 /* Csend */ : - return types.SendOnly - case 3 /* Cboth */ : - return types.SendRecv - default: - errorf("unexpected channel dir %d", d) - return 0 - } -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go deleted file mode 100644 index 5662a31..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go +++ /dev/null @@ -1,421 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file should be kept in sync with $GOROOT/src/internal/exportdata/exportdata.go. -// This file also additionally implements FindExportData for gcexportdata.NewReader. - -package gcimporter - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "go/build" - "io" - "os" - "os/exec" - "path/filepath" - "strings" - "sync" -) - -// FindExportData positions the reader r at the beginning of the -// export data section of an underlying cmd/compile created archive -// file by reading from it. The reader must be positioned at the -// start of the file before calling this function. -// This returns the length of the export data in bytes. -// -// This function is needed by [gcexportdata.Read], which must -// accept inputs produced by the last two releases of cmd/compile, -// plus tip. -func FindExportData(r *bufio.Reader) (size int64, err error) { - arsize, err := FindPackageDefinition(r) - if err != nil { - return - } - size = int64(arsize) - - objapi, headers, err := ReadObjectHeaders(r) - if err != nil { - return - } - size -= int64(len(objapi)) - for _, h := range headers { - size -= int64(len(h)) - } - - // Check for the binary export data section header "$$B\n". - // TODO(taking): Unify with ReadExportDataHeader so that it stops at the 'u' instead of reading - line, err := r.ReadSlice('\n') - if err != nil { - return - } - hdr := string(line) - if hdr != "$$B\n" { - err = fmt.Errorf("unknown export data header: %q", hdr) - return - } - size -= int64(len(hdr)) - - // For files with a binary export data header "$$B\n", - // these are always terminated by an end-of-section marker "\n$$\n". - // So the last bytes must always be this constant. - // - // The end-of-section marker is not a part of the export data itself. - // Do not include these in size. - // - // It would be nice to have sanity check that the final bytes after - // the export data are indeed the end-of-section marker. The split - // of gcexportdata.NewReader and gcexportdata.Read make checking this - // ugly so gcimporter gives up enforcing this. The compiler and go/types - // importer do enforce this, which seems good enough. - const endofsection = "\n$$\n" - size -= int64(len(endofsection)) - - if size < 0 { - err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", arsize, size) - return - } - - return -} - -// ReadUnified reads the contents of the unified export data from a reader r -// that contains the contents of a GC-created archive file. -// -// On success, the reader will be positioned after the end-of-section marker "\n$$\n". -// -// Supported GC-created archive files have 4 layers of nesting: -// - An archive file containing a package definition file. -// - The package definition file contains headers followed by a data section. -// Headers are lines (≤ 4kb) that do not start with "$$". -// - The data section starts with "$$B\n" followed by export data followed -// by an end of section marker "\n$$\n". (The section start "$$\n" is no -// longer supported.) -// - The export data starts with a format byte ('u') followed by the <data> in -// the given format. (See ReadExportDataHeader for older formats.) -// -// Putting this together, the bytes in a GC-created archive files are expected -// to look like the following. -// See cmd/internal/archive for more details on ar file headers. -// -// | <!arch>\n | ar file signature -// | __.PKGDEF...size...\n | ar header for __.PKGDEF including size. -// | go object <...>\n | objabi header -// | <optional headers>\n | other headers such as build id -// | $$B\n | binary format marker -// | u<data>\n | unified export <data> -// | $$\n | end-of-section marker -// | [optional padding] | padding byte (0x0A) if size is odd -// | [ar file header] | other ar files -// | [ar file data] | -func ReadUnified(r *bufio.Reader) (data []byte, err error) { - // We historically guaranteed headers at the default buffer size (4096) work. - // This ensures we can use ReadSlice throughout. - const minBufferSize = 4096 - r = bufio.NewReaderSize(r, minBufferSize) - - size, err := FindPackageDefinition(r) - if err != nil { - return - } - n := size - - objapi, headers, err := ReadObjectHeaders(r) - if err != nil { - return - } - n -= len(objapi) - for _, h := range headers { - n -= len(h) - } - - hdrlen, err := ReadExportDataHeader(r) - if err != nil { - return - } - n -= hdrlen - - // size also includes the end of section marker. Remove that many bytes from the end. - const marker = "\n$$\n" - n -= len(marker) - - if n < 0 { - err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", size, n) - return - } - - // Read n bytes from buf. - data = make([]byte, n) - _, err = io.ReadFull(r, data) - if err != nil { - return - } - - // Check for marker at the end. - var suffix [len(marker)]byte - _, err = io.ReadFull(r, suffix[:]) - if err != nil { - return - } - if s := string(suffix[:]); s != marker { - err = fmt.Errorf("read %q instead of end-of-section marker (%q)", s, marker) - return - } - - return -} - -// FindPackageDefinition positions the reader r at the beginning of a package -// definition file ("__.PKGDEF") within a GC-created archive by reading -// from it, and returns the size of the package definition file in the archive. -// -// The reader must be positioned at the start of the archive file before calling -// this function, and "__.PKGDEF" is assumed to be the first file in the archive. -// -// See cmd/internal/archive for details on the archive format. -func FindPackageDefinition(r *bufio.Reader) (size int, err error) { - // Uses ReadSlice to limit risk of malformed inputs. - - // Read first line to make sure this is an object file. - line, err := r.ReadSlice('\n') - if err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - - // Is the first line an archive file signature? - if string(line) != "!<arch>\n" { - err = fmt.Errorf("not the start of an archive file (%q)", line) - return - } - - // package export block should be first - size = readArchiveHeader(r, "__.PKGDEF") - if size <= 0 { - err = fmt.Errorf("not a package file") - return - } - - return -} - -// ReadObjectHeaders reads object headers from the reader. Object headers are -// lines that do not start with an end-of-section marker "$$". The first header -// is the objabi header. On success, the reader will be positioned at the beginning -// of the end-of-section marker. -// -// It returns an error if any header does not fit in r.Size() bytes. -func ReadObjectHeaders(r *bufio.Reader) (objapi string, headers []string, err error) { - // line is a temporary buffer for headers. - // Use bounded reads (ReadSlice, Peek) to limit risk of malformed inputs. - var line []byte - - // objapi header should be the first line - if line, err = r.ReadSlice('\n'); err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - objapi = string(line) - - // objapi header begins with "go object ". - if !strings.HasPrefix(objapi, "go object ") { - err = fmt.Errorf("not a go object file: %s", objapi) - return - } - - // process remaining object header lines - for { - // check for an end of section marker "$$" - line, err = r.Peek(2) - if err != nil { - return - } - if string(line) == "$$" { - return // stop - } - - // read next header - line, err = r.ReadSlice('\n') - if err != nil { - return - } - headers = append(headers, string(line)) - } -} - -// ReadExportDataHeader reads the export data header and format from r. -// It returns the number of bytes read, or an error if the format is no longer -// supported or it failed to read. -// -// The only currently supported format is binary export data in the -// unified export format. -func ReadExportDataHeader(r *bufio.Reader) (n int, err error) { - // Read export data header. - line, err := r.ReadSlice('\n') - if err != nil { - return - } - - hdr := string(line) - switch hdr { - case "$$\n": - err = fmt.Errorf("old textual export format no longer supported (recompile package)") - return - - case "$$B\n": - var format byte - format, err = r.ReadByte() - if err != nil { - return - } - // The unified export format starts with a 'u'. - switch format { - case 'u': - default: - // Older no longer supported export formats include: - // indexed export format which started with an 'i'; and - // the older binary export format which started with a 'c', - // 'd', or 'v' (from "version"). - err = fmt.Errorf("binary export format %q is no longer supported (recompile package)", format) - return - } - - default: - err = fmt.Errorf("unknown export data header: %q", hdr) - return - } - - n = len(hdr) + 1 // + 1 is for 'u' - return -} - -// FindPkg returns the filename and unique package id for an import -// path based on package information provided by build.Import (using -// the build.Default build.Context). A relative srcDir is interpreted -// relative to the current working directory. -// -// FindPkg is only used in tests within x/tools. -func FindPkg(path, srcDir string) (filename, id string, err error) { - // TODO(taking): Move internal/exportdata.FindPkg into its own file, - // and then this copy into a _test package. - if path == "" { - return "", "", errors.New("path is empty") - } - - var noext string - switch { - default: - // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" - // Don't require the source files to be present. - if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 - srcDir = abs - } - var bp *build.Package - bp, err = build.Import(path, srcDir, build.FindOnly|build.AllowBinary) - if bp.PkgObj == "" { - if bp.Goroot && bp.Dir != "" { - filename, err = lookupGorootExport(bp.Dir) - if err == nil { - _, err = os.Stat(filename) - } - if err == nil { - return filename, bp.ImportPath, nil - } - } - goto notfound - } else { - noext = strings.TrimSuffix(bp.PkgObj, ".a") - } - id = bp.ImportPath - - case build.IsLocalImport(path): - // "./x" -> "/this/directory/x.ext", "/this/directory/x" - noext = filepath.Join(srcDir, path) - id = noext - - case filepath.IsAbs(path): - // for completeness only - go/build.Import - // does not support absolute imports - // "/x" -> "/x.ext", "/x" - noext = path - id = path - } - - if false { // for debugging - if path != id { - fmt.Printf("%s -> %s\n", path, id) - } - } - - // try extensions - for _, ext := range pkgExts { - filename = noext + ext - f, statErr := os.Stat(filename) - if statErr == nil && !f.IsDir() { - return filename, id, nil - } - if err == nil { - err = statErr - } - } - -notfound: - if err == nil { - return "", path, fmt.Errorf("can't find import: %q", path) - } - return "", path, fmt.Errorf("can't find import: %q: %w", path, err) -} - -var pkgExts = [...]string{".a", ".o"} // a file from the build cache will have no extension - -var exportMap sync.Map // package dir → func() (string, error) - -// lookupGorootExport returns the location of the export data -// (normally found in the build cache, but located in GOROOT/pkg -// in prior Go releases) for the package located in pkgDir. -// -// (We use the package's directory instead of its import path -// mainly to simplify handling of the packages in src/vendor -// and cmd/vendor.) -// -// lookupGorootExport is only used in tests within x/tools. -func lookupGorootExport(pkgDir string) (string, error) { - f, ok := exportMap.Load(pkgDir) - if !ok { - var ( - listOnce sync.Once - exportPath string - err error - ) - f, _ = exportMap.LoadOrStore(pkgDir, func() (string, error) { - listOnce.Do(func() { - cmd := exec.Command(filepath.Join(build.Default.GOROOT, "bin", "go"), "list", "-export", "-f", "{{.Export}}", pkgDir) - cmd.Dir = build.Default.GOROOT - cmd.Env = append(os.Environ(), "PWD="+cmd.Dir, "GOROOT="+build.Default.GOROOT) - var output []byte - output, err = cmd.Output() - if err != nil { - if ee, ok := err.(*exec.ExitError); ok && len(ee.Stderr) > 0 { - err = errors.New(string(ee.Stderr)) - } - return - } - - exports := strings.Split(string(bytes.TrimSpace(output)), "\n") - if len(exports) != 1 { - err = fmt.Errorf("go list reported %d exports; expected 1", len(exports)) - return - } - - exportPath = exports[0] - }) - - return exportPath, err - }) - } - - return f.(func() (string, error))() -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go deleted file mode 100644 index 3dbd21d..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file is a reduced copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go. - -// Package gcimporter provides various functions for reading -// gc-generated object files that can be used to implement the -// Importer interface defined by the Go 1.5 standard library package. -// -// The encoding is deterministic: if the encoder is applied twice to -// the same types.Package data structure, both encodings are equal. -// This property may be important to avoid spurious changes in -// applications such as build systems. -// -// However, the encoder is not necessarily idempotent. Importing an -// exported package may yield a types.Package that, while it -// represents the same set of Go types as the original, may differ in -// the details of its internal representation. Because of these -// differences, re-encoding the imported package may yield a -// different, but equally valid, encoding of the package. -package gcimporter // import "golang.org/x/tools/internal/gcimporter" - -import ( - "bufio" - "fmt" - "go/token" - "go/types" - "io" - "os" -) - -const ( - // Enable debug during development: it adds some additional checks, and - // prevents errors from being recovered. - debug = false - - // If trace is set, debugging output is printed to std out. - trace = false -) - -// Import imports a gc-generated package given its import path and srcDir, adds -// the corresponding package object to the packages map, and returns the object. -// The packages map must contain all packages already imported. -// -// Import is only used in tests. -func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { - var rc io.ReadCloser - var id string - if lookup != nil { - // With custom lookup specified, assume that caller has - // converted path to a canonical import path for use in the map. - if path == "unsafe" { - return types.Unsafe, nil - } - id = path - - // No need to re-import if the package was imported completely before. - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - f, err := lookup(path) - if err != nil { - return nil, err - } - rc = f - } else { - var filename string - filename, id, err = FindPkg(path, srcDir) - if filename == "" { - if path == "unsafe" { - return types.Unsafe, nil - } - return nil, err - } - - // no need to re-import if the package was imported completely before - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - if err != nil { - // add file name to error - err = fmt.Errorf("%s: %v", filename, err) - } - }() - rc = f - } - defer rc.Close() - - buf := bufio.NewReader(rc) - data, err := ReadUnified(buf) - if err != nil { - err = fmt.Errorf("import %q: %v", path, err) - return - } - - // unified: emitted by cmd/compile since go1.20. - _, pkg, err = UImportData(fset, packages, data, id) - - return -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go deleted file mode 100644 index 780873e..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ /dev/null @@ -1,1596 +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. - -// Indexed package export. -// -// The indexed export data format is an evolution of the previous -// binary export data format. Its chief contribution is introducing an -// index table, which allows efficient random access of individual -// declarations and inline function bodies. In turn, this allows -// avoiding unnecessary work for compilation units that import large -// packages. -// -// -// The top-level data format is structured as: -// -// Header struct { -// Tag byte // 'i' -// Version uvarint -// StringSize uvarint -// DataSize uvarint -// } -// -// Strings [StringSize]byte -// Data [DataSize]byte -// -// MainIndex []struct{ -// PkgPath stringOff -// PkgName stringOff -// PkgHeight uvarint -// -// Decls []struct{ -// Name stringOff -// Offset declOff -// } -// } -// -// Fingerprint [8]byte -// -// uvarint means a uint64 written out using uvarint encoding. -// -// []T means a uvarint followed by that many T objects. In other -// words: -// -// Len uvarint -// Elems [Len]T -// -// stringOff means a uvarint that indicates an offset within the -// Strings section. At that offset is another uvarint, followed by -// that many bytes, which form the string value. -// -// declOff means a uvarint that indicates an offset within the Data -// section where the associated declaration can be found. -// -// -// There are five kinds of declarations, distinguished by their first -// byte: -// -// type Var struct { -// Tag byte // 'V' -// Pos Pos -// Type typeOff -// } -// -// type Func struct { -// Tag byte // 'F' or 'G' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'G' -// Signature Signature -// } -// -// type Const struct { -// Tag byte // 'C' -// Pos Pos -// Value Value -// } -// -// type Type struct { -// Tag byte // 'T' or 'U' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'U' -// Underlying typeOff -// -// Methods []struct{ // omitted if Underlying is an interface type -// Pos Pos -// Name stringOff -// Recv Param -// Signature Signature -// } -// } -// -// type Alias struct { -// Tag byte // 'A' or 'B' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'B' -// Type typeOff -// } -// -// // "Automatic" declaration of each typeparam -// type TypeParam struct { -// Tag byte // 'P' -// Pos Pos -// Implicit bool -// Constraint typeOff -// } -// -// typeOff means a uvarint that either indicates a predeclared type, -// or an offset into the Data section. If the uvarint is less than -// predeclReserved, then it indicates the index into the predeclared -// types list (see predeclared in bexport.go for order). Otherwise, -// subtracting predeclReserved yields the offset of a type descriptor. -// -// Value means a type, kind, and type-specific value. See -// (*exportWriter).value for details. -// -// -// There are twelve kinds of type descriptors, distinguished by an itag: -// -// type DefinedType struct { -// Tag itag // definedType -// Name stringOff -// PkgPath stringOff -// } -// -// type PointerType struct { -// Tag itag // pointerType -// Elem typeOff -// } -// -// type SliceType struct { -// Tag itag // sliceType -// Elem typeOff -// } -// -// type ArrayType struct { -// Tag itag // arrayType -// Len uint64 -// Elem typeOff -// } -// -// type ChanType struct { -// Tag itag // chanType -// Dir uint64 // 1 RecvOnly; 2 SendOnly; 3 SendRecv -// Elem typeOff -// } -// -// type MapType struct { -// Tag itag // mapType -// Key typeOff -// Elem typeOff -// } -// -// type FuncType struct { -// Tag itag // signatureType -// PkgPath stringOff -// Signature Signature -// } -// -// type StructType struct { -// Tag itag // structType -// PkgPath stringOff -// Fields []struct { -// Pos Pos -// Name stringOff -// Type typeOff -// Embedded bool -// Note stringOff -// } -// } -// -// type InterfaceType struct { -// Tag itag // interfaceType -// PkgPath stringOff -// Embeddeds []struct { -// Pos Pos -// Type typeOff -// } -// Methods []struct { -// Pos Pos -// Name stringOff -// Signature Signature -// } -// } -// -// // Reference to a type param declaration -// type TypeParamType struct { -// Tag itag // typeParamType -// Name stringOff -// PkgPath stringOff -// } -// -// // Instantiation of a generic type (like List[T2] or List[int]) -// type InstanceType struct { -// Tag itag // instanceType -// Pos pos -// TypeArgs []typeOff -// BaseType typeOff -// } -// -// type UnionType struct { -// Tag itag // interfaceType -// Terms []struct { -// tilde bool -// Type typeOff -// } -// } -// -// -// -// type Signature struct { -// Params []Param -// Results []Param -// Variadic bool // omitted if Results is empty -// } -// -// type Param struct { -// Pos Pos -// Name stringOff -// Type typOff -// } -// -// -// Pos encodes a file:line:column triple, incorporating a simple delta -// encoding scheme within a data object. See exportWriter.pos for -// details. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "reflect" - "slices" - "sort" - "strconv" - "strings" - - "golang.org/x/tools/go/types/objectpath" - "golang.org/x/tools/internal/aliases" -) - -// IExportShallow encodes "shallow" export data for the specified package. -// -// For types, we use "shallow" export data. Historically, the Go -// compiler always produced a summary of the types for a given package -// that included types from other packages that it indirectly -// referenced: "deep" export data. This had the advantage that the -// compiler (and analogous tools such as gopls) need only load one -// file per direct import. However, it meant that the files tended to -// get larger based on the level of the package in the import -// graph. For example, higher-level packages in the kubernetes module -// have over 1MB of "deep" export data, even when they have almost no -// content of their own, merely because they mention a major type that -// references many others. In pathological cases the export data was -// 300x larger than the source for a package due to this quadratic -// growth. -// -// "Shallow" export data means that the serialized types describe only -// a single package. If those types mention types from other packages, -// the type checker may need to request additional packages beyond -// just the direct imports. Type information for the entire transitive -// closure of imports is provided (lazily) by the DAG. -// -// No promises are made about the encoding other than that it can be decoded by -// the same version of IIExportShallow. If you plan to save export data in the -// file system, be sure to include a cryptographic digest of the executable in -// the key to avoid version skew. -// -// If the provided reportf func is non-nil, it is used for reporting -// bugs (e.g. recovered panics) encountered during export, enabling us -// to obtain via telemetry the stack that would otherwise be lost by -// merely returning an error. -func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) ([]byte, error) { - // In principle this operation can only fail if out.Write fails, - // but that's impossible for bytes.Buffer---and as a matter of - // fact iexportCommon doesn't even check for I/O errors. - // TODO(adonovan): handle I/O errors properly. - // TODO(adonovan): use byte slices throughout, avoiding copying. - const bundle, shallow = false, true - var out bytes.Buffer - err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, reportf) - return out.Bytes(), err -} - -// IImportShallow decodes "shallow" types.Package data encoded by -// [IExportShallow] in the same executable. This function cannot import data -// from cmd/compile or gcexportdata.Write. -// -// The importer calls getPackages to obtain package symbols for all -// packages mentioned in the export data, including the one being -// decoded. -// -// If the provided reportf func is non-nil, it will be used for reporting bugs -// encountered during import. -// TODO(rfindley): remove reportf when we are confident enough in the new -// objectpath encoding. -func IImportShallow(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, path string, reportf ReportFunc) (*types.Package, error) { - const bundle = false - const shallow = true - pkgs, err := iimportCommon(fset, getPackages, data, bundle, path, shallow, reportf) - if err != nil { - return nil, err - } - return pkgs[0], nil -} - -// ReportFunc is the type of a function used to report formatted bugs. -type ReportFunc = func(string, ...any) - -// Current bundled export format version. Increase with each format change. -// 0: initial implementation -const bundleVersion = 0 - -// IExportData writes indexed export data for pkg to out. -// -// If no file set is provided, position info will be missing. -// The package path of the top-level package will not be recorded, -// so that calls to IImportData can override with a provided package path. -func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - const bundle, shallow = false, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, nil) -} - -// IExportBundle writes an indexed export bundle for pkgs to out. -func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - const bundle, shallow = true, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs, nil) -} - -func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package, reportf ReportFunc) (err error) { - if !debug { - defer func() { - if e := recover(); e != nil { - // Report the stack via telemetry (see #71067). - if reportf != nil { - reportf("panic in exporter") - } - if ierr, ok := e.(internalError); ok { - // internalError usually means we exported a - // bad go/types data structure: a violation - // of an implicit precondition of Export. - err = ierr - return - } - // Not an internal error; panic again. - panic(e) - } - }() - } - - p := iexporter{ - fset: fset, - version: version, - shallow: shallow, - allPkgs: map[*types.Package]bool{}, - stringIndex: map[string]uint64{}, - declIndex: map[types.Object]uint64{}, - tparamNames: map[types.Object]string{}, - typIndex: map[types.Type]uint64{}, - } - if !bundle { - p.localpkg = pkgs[0] - } - - for i, pt := range predeclared() { - p.typIndex[pt] = uint64(i) - } - if len(p.typIndex) > predeclReserved { - panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) - } - - // Initialize work queue with exported declarations. - for _, pkg := range pkgs { - scope := pkg.Scope() - for _, name := range scope.Names() { - if token.IsExported(name) { - p.pushDecl(scope.Lookup(name)) - } - } - - if bundle { - // Ensure pkg and its imports are included in the index. - p.allPkgs[pkg] = true - for _, imp := range pkg.Imports() { - p.allPkgs[imp] = true - } - } - } - - // Loop until no more work. - for !p.declTodo.empty() { - p.doDecl(p.declTodo.popHead()) - } - - // Produce index of offset of each file record in files. - var files intWriter - var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i - if p.shallow { - fileOffset = make([]uint64, len(p.fileInfos)) - for i, info := range p.fileInfos { - fileOffset[i] = uint64(files.Len()) - p.encodeFile(&files, info.file, info.needed) - } - } - - // Append indices to data0 section. - dataLen := uint64(p.data0.Len()) - w := p.newWriter() - w.writeIndex(p.declIndex) - - if bundle { - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.pkg(pkg) - imps := pkg.Imports() - w.uint64(uint64(len(imps))) - for _, imp := range imps { - w.pkg(imp) - } - } - } - w.flush() - - // Assemble header. - var hdr intWriter - if bundle { - hdr.uint64(bundleVersion) - } - hdr.uint64(uint64(p.version)) - hdr.uint64(uint64(p.strings.Len())) - if p.shallow { - hdr.uint64(uint64(files.Len())) - hdr.uint64(uint64(len(fileOffset))) - for _, offset := range fileOffset { - hdr.uint64(offset) - } - } - hdr.uint64(dataLen) - - // Flush output. - io.Copy(out, &hdr) - io.Copy(out, &p.strings) - if p.shallow { - io.Copy(out, &files) - } - io.Copy(out, &p.data0) - - return nil -} - -// encodeFile writes to w a representation of the file sufficient to -// faithfully restore position information about all needed offsets. -// Mutates the needed array. -func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) { - _ = needed[0] // precondition: needed is non-empty - - w.uint64(p.stringOff(file.Name())) - - size := uint64(file.Size()) - w.uint64(size) - - // Sort the set of needed offsets. Duplicates are harmless. - slices.Sort(needed) - - lines := file.Lines() // byte offset of each line start - w.uint64(uint64(len(lines))) - - // Rather than record the entire array of line start offsets, - // we save only a sparse list of (index, offset) pairs for - // the start of each line that contains a needed position. - var sparse [][2]int // (index, offset) pairs -outer: - for i, lineStart := range lines { - lineEnd := size - if i < len(lines)-1 { - lineEnd = uint64(lines[i+1]) - } - // Does this line contains a needed offset? - if needed[0] < lineEnd { - sparse = append(sparse, [2]int{i, lineStart}) - for needed[0] < lineEnd { - needed = needed[1:] - if len(needed) == 0 { - break outer - } - } - } - } - - // Delta-encode the columns. - w.uint64(uint64(len(sparse))) - var prev [2]int - for _, pair := range sparse { - w.uint64(uint64(pair[0] - prev[0])) - w.uint64(uint64(pair[1] - prev[1])) - prev = pair - } -} - -// writeIndex writes out an object index. mainIndex indicates whether -// we're writing out the main index, which is also read by -// non-compiler tools and includes a complete package description -// (i.e., name and height). -func (w *exportWriter) writeIndex(index map[types.Object]uint64) { - type pkgObj struct { - obj types.Object - name string // qualified name; differs from obj.Name for type params - } - // Build a map from packages to objects from that package. - pkgObjs := map[*types.Package][]pkgObj{} - - // For the main index, make sure to include every package that - // we reference, even if we're not exporting (or reexporting) - // any symbols from it. - if w.p.localpkg != nil { - pkgObjs[w.p.localpkg] = nil - } - for pkg := range w.p.allPkgs { - pkgObjs[pkg] = nil - } - - for obj := range index { - name := w.p.exportName(obj) - pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], pkgObj{obj, name}) - } - - var pkgs []*types.Package - for pkg, objs := range pkgObjs { - pkgs = append(pkgs, pkg) - - sort.Slice(objs, func(i, j int) bool { - return objs[i].name < objs[j].name - }) - } - - sort.Slice(pkgs, func(i, j int) bool { - return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j]) - }) - - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.string(w.exportPath(pkg)) - w.string(pkg.Name()) - w.uint64(uint64(0)) // package height is not needed for go/types - - objs := pkgObjs[pkg] - w.uint64(uint64(len(objs))) - for _, obj := range objs { - w.string(obj.name) - w.uint64(index[obj.obj]) - } - } -} - -// exportName returns the 'exported' name of an object. It differs from -// obj.Name() only for type parameters (see tparamExportName for details). -func (p *iexporter) exportName(obj types.Object) (res string) { - if name := p.tparamNames[obj]; name != "" { - return name - } - return obj.Name() -} - -type iexporter struct { - fset *token.FileSet - out *bytes.Buffer - version int - - shallow bool // don't put types from other packages in the index - objEncoder *objectpath.Encoder // encodes objects from other packages in shallow mode; lazily allocated - localpkg *types.Package // (nil in bundle mode) - - // allPkgs tracks all packages that have been referenced by - // the export data, so we can ensure to include them in the - // main index. - allPkgs map[*types.Package]bool - - declTodo objQueue - - strings intWriter - stringIndex map[string]uint64 - - // In shallow mode, object positions are encoded as (file, offset). - // Each file is recorded as a line-number table. - // Only the lines of needed positions are saved faithfully. - fileInfo map[*token.File]uint64 // value is index in fileInfos - fileInfos []*filePositions - - data0 intWriter - declIndex map[types.Object]uint64 - tparamNames map[types.Object]string // typeparam->exported name - typIndex map[types.Type]uint64 - - indent int // for tracing support -} - -type filePositions struct { - file *token.File - needed []uint64 // unordered list of needed file offsets -} - -func (p *iexporter) trace(format string, args ...any) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -// objectpathEncoder returns the lazily allocated objectpath.Encoder to use -// when encoding objects in other packages during shallow export. -// -// Using a shared Encoder amortizes some of cost of objectpath search. -func (p *iexporter) objectpathEncoder() *objectpath.Encoder { - if p.objEncoder == nil { - p.objEncoder = new(objectpath.Encoder) - } - return p.objEncoder -} - -// stringOff returns the offset of s within the string section. -// If not already present, it's added to the end. -func (p *iexporter) stringOff(s string) uint64 { - off, ok := p.stringIndex[s] - if !ok { - off = uint64(p.strings.Len()) - p.stringIndex[s] = off - - p.strings.uint64(uint64(len(s))) - p.strings.WriteString(s) - } - return off -} - -// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it. -func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) { - index, ok := p.fileInfo[file] - if !ok { - index = uint64(len(p.fileInfo)) - p.fileInfos = append(p.fileInfos, &filePositions{file: file}) - if p.fileInfo == nil { - p.fileInfo = make(map[*token.File]uint64) - } - p.fileInfo[file] = index - } - // Record each needed offset. - info := p.fileInfos[index] - offset := uint64(file.Offset(pos)) - info.needed = append(info.needed, offset) - - return index, offset -} - -// pushDecl adds n to the declaration work queue, if not already present. -func (p *iexporter) pushDecl(obj types.Object) { - // Package unsafe is known to the compiler and predeclared. - // Caller should not ask us to do export it. - if obj.Pkg() == types.Unsafe { - panic("cannot export package unsafe") - } - - // Shallow export data: don't index decls from other packages. - if p.shallow && obj.Pkg() != p.localpkg { - return - } - - if _, ok := p.declIndex[obj]; ok { - return - } - - p.declIndex[obj] = ^uint64(0) // mark obj present in work queue - p.declTodo.pushTail(obj) -} - -// exportWriter handles writing out individual data section chunks. -type exportWriter struct { - p *iexporter - - data intWriter - prevFile string - prevLine int64 - prevColumn int64 -} - -func (w *exportWriter) exportPath(pkg *types.Package) string { - if pkg == w.p.localpkg { - return "" - } - return pkg.Path() -} - -func (p *iexporter) doDecl(obj types.Object) { - if trace { - p.trace("exporting decl %v (%T)", obj, obj) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", obj) - }() - } - w := p.newWriter() - - switch obj := obj.(type) { - case *types.Var: - w.tag(varTag) - w.pos(obj.Pos()) - w.typ(obj.Type(), obj.Pkg()) - - case *types.Func: - sig, _ := obj.Type().(*types.Signature) - if sig.Recv() != nil { - // We shouldn't see methods in the package scope, - // but the type checker may repair "func () F() {}" - // to "func (Invalid) F()" and then treat it like "func F()", - // so allow that. See golang/go#57729. - if sig.Recv().Type() != types.Typ[types.Invalid] { - panic(internalErrorf("unexpected method: %v", sig)) - } - } - - // Function. - if sig.TypeParams().Len() == 0 { - w.tag(funcTag) - } else { - w.tag(genericFuncTag) - } - w.pos(obj.Pos()) - // The tparam list of the function type is the declaration of the type - // params. So, write out the type params right now. Then those type params - // will be referenced via their type offset (via typOff) in all other - // places in the signature and function where they are used. - // - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - if tparams := sig.TypeParams(); tparams.Len() > 0 { - w.tparamList(obj.Name(), tparams, obj.Pkg()) - } - w.signature(sig) - - case *types.Const: - w.tag(constTag) - w.pos(obj.Pos()) - w.value(obj.Type(), obj.Val()) - - case *types.TypeName: - t := obj.Type() - - if tparam, ok := types.Unalias(t).(*types.TypeParam); ok { - w.tag(typeParamTag) - w.pos(obj.Pos()) - constraint := tparam.Constraint() - if p.version >= iexportVersionGo1_18 { - implicit := false - if iface, _ := types.Unalias(constraint).(*types.Interface); iface != nil { - implicit = iface.IsImplicit() - } - w.bool(implicit) - } - w.typ(constraint, obj.Pkg()) - break - } - - if obj.IsAlias() { - alias, materialized := t.(*types.Alias) // may fail when aliases are not enabled - - var tparams *types.TypeParamList - if materialized { - tparams = aliases.TypeParams(alias) - } - if tparams.Len() == 0 { - w.tag(aliasTag) - } else { - w.tag(genericAliasTag) - } - w.pos(obj.Pos()) - if tparams.Len() > 0 { - w.tparamList(obj.Name(), tparams, obj.Pkg()) - } - if materialized { - // Preserve materialized aliases, - // even of non-exported types. - t = aliases.Rhs(alias) - } - w.typ(t, obj.Pkg()) - break - } - - // Defined type. - named, ok := t.(*types.Named) - if !ok { - panic(internalErrorf("%s is not a defined type", t)) - } - - if named.TypeParams().Len() == 0 { - w.tag(typeTag) - } else { - w.tag(genericTypeTag) - } - w.pos(obj.Pos()) - - if named.TypeParams().Len() > 0 { - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg()) - } - - underlying := named.Underlying() - w.typ(underlying, obj.Pkg()) - - if types.IsInterface(t) { - break - } - - n := named.NumMethods() - w.uint64(uint64(n)) - for i := range n { - m := named.Method(i) - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - - // Receiver type parameters are type arguments of the receiver type, so - // their name must be qualified before exporting recv. - if rparams := sig.RecvTypeParams(); rparams.Len() > 0 { - prefix := obj.Name() + "." + m.Name() - for i := 0; i < rparams.Len(); i++ { - rparam := rparams.At(i) - name := tparamExportName(prefix, rparam) - w.p.tparamNames[rparam.Obj()] = name - } - } - w.param(sig.Recv()) - w.signature(sig) - } - - default: - panic(internalErrorf("unexpected object: %v", obj)) - } - - p.declIndex[obj] = w.flush() -} - -func (w *exportWriter) tag(tag byte) { - w.data.WriteByte(tag) -} - -func (w *exportWriter) pos(pos token.Pos) { - if w.p.shallow { - w.posV2(pos) - } else if w.p.version >= iexportVersionPosCol { - w.posV1(pos) - } else { - w.posV0(pos) - } -} - -// posV2 encoding (used only in shallow mode) records positions as -// (file, offset), where file is the index in the token.File table -// (which records the file name and newline offsets) and offset is a -// byte offset. It effectively ignores //line directives. -func (w *exportWriter) posV2(pos token.Pos) { - if pos == token.NoPos { - w.uint64(0) - return - } - file := w.p.fset.File(pos) // fset must be non-nil - index, offset := w.p.fileIndexAndOffset(file, pos) - w.uint64(1 + index) - w.uint64(offset) -} - -func (w *exportWriter) posV1(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - column := int64(p.Column) - - deltaColumn := (column - w.prevColumn) << 1 - deltaLine := (line - w.prevLine) << 1 - - if file != w.prevFile { - deltaLine |= 1 - } - if deltaLine != 0 { - deltaColumn |= 1 - } - - w.int64(deltaColumn) - if deltaColumn&1 != 0 { - w.int64(deltaLine) - if deltaLine&1 != 0 { - w.string(file) - } - } - - w.prevFile = file - w.prevLine = line - w.prevColumn = column -} - -func (w *exportWriter) posV0(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - - // When file is the same as the last position (common case), - // we can save a few bytes by delta encoding just the line - // number. - // - // Note: Because data objects may be read out of order (or not - // at all), we can only apply delta encoding within a single - // object. This is handled implicitly by tracking prevFile and - // prevLine as fields of exportWriter. - - if file == w.prevFile { - delta := line - w.prevLine - w.int64(delta) - if delta == deltaNewFile { - w.int64(-1) - } - } else { - w.int64(deltaNewFile) - w.int64(line) // line >= 0 - w.string(file) - w.prevFile = file - } - w.prevLine = line -} - -func (w *exportWriter) pkg(pkg *types.Package) { - // Ensure any referenced packages are declared in the main index. - w.p.allPkgs[pkg] = true - - w.string(w.exportPath(pkg)) -} - -func (w *exportWriter) qualifiedType(obj *types.TypeName) { - name := w.p.exportName(obj) - - // Ensure any referenced declarations are written out too. - w.p.pushDecl(obj) - w.string(name) - w.pkg(obj.Pkg()) -} - -// TODO(rfindley): what does 'pkg' even mean here? It would be better to pass -// it in explicitly into signatures and structs that may use it for -// constructing fields. -func (w *exportWriter) typ(t types.Type, pkg *types.Package) { - w.data.uint64(w.p.typOff(t, pkg)) -} - -func (p *iexporter) newWriter() *exportWriter { - return &exportWriter{p: p} -} - -func (w *exportWriter) flush() uint64 { - off := uint64(w.p.data0.Len()) - io.Copy(&w.p.data0, &w.data) - return off -} - -func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { - off, ok := p.typIndex[t] - if !ok { - w := p.newWriter() - w.doTyp(t, pkg) - off = predeclReserved + w.flush() - p.typIndex[t] = off - } - return off -} - -func (w *exportWriter) startType(k itag) { - w.data.uint64(uint64(k)) -} - -func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { - if trace { - w.p.trace("exporting type %s (%T)", t, t) - w.p.indent++ - defer func() { - w.p.indent-- - w.p.trace("=> %s", t) - }() - } - switch t := t.(type) { - case *types.Alias: - if targs := aliases.TypeArgs(t); targs.Len() > 0 { - w.startType(instanceType) - w.pos(t.Obj().Pos()) - w.typeList(targs, pkg) - w.typ(aliases.Origin(t), pkg) - return - } - w.startType(aliasType) - w.qualifiedType(t.Obj()) - - case *types.Named: - if targs := t.TypeArgs(); targs.Len() > 0 { - w.startType(instanceType) - // TODO(rfindley): investigate if this position is correct, and if it - // matters. - w.pos(t.Obj().Pos()) - w.typeList(targs, pkg) - w.typ(t.Origin(), pkg) - return - } - w.startType(definedType) - w.qualifiedType(t.Obj()) - - case *types.TypeParam: - w.startType(typeParamType) - w.qualifiedType(t.Obj()) - - case *types.Pointer: - w.startType(pointerType) - w.typ(t.Elem(), pkg) - - case *types.Slice: - w.startType(sliceType) - w.typ(t.Elem(), pkg) - - case *types.Array: - w.startType(arrayType) - w.uint64(uint64(t.Len())) - w.typ(t.Elem(), pkg) - - case *types.Chan: - w.startType(chanType) - // 1 RecvOnly; 2 SendOnly; 3 SendRecv - var dir uint64 - switch t.Dir() { - case types.RecvOnly: - dir = 1 - case types.SendOnly: - dir = 2 - case types.SendRecv: - dir = 3 - } - w.uint64(dir) - w.typ(t.Elem(), pkg) - - case *types.Map: - w.startType(mapType) - w.typ(t.Key(), pkg) - w.typ(t.Elem(), pkg) - - case *types.Signature: - w.startType(signatureType) - w.pkg(pkg) - w.signature(t) - - case *types.Struct: - w.startType(structType) - n := t.NumFields() - // Even for struct{} we must emit some qualifying package, because that's - // what the compiler does, and thus that's what the importer expects. - fieldPkg := pkg - if n > 0 { - fieldPkg = t.Field(0).Pkg() - } - if fieldPkg == nil { - // TODO(rfindley): improve this very hacky logic. - // - // The importer expects a package to be set for all struct types, even - // those with no fields. A better encoding might be to set NumFields - // before pkg. setPkg panics with a nil package, which may be possible - // to reach with invalid packages (and perhaps valid packages, too?), so - // (arbitrarily) set the localpkg if available. - // - // Alternatively, we may be able to simply guarantee that pkg != nil, by - // reconsidering the encoding of constant values. - if w.p.shallow { - fieldPkg = w.p.localpkg - } else { - panic(internalErrorf("no package to set for empty struct")) - } - } - w.pkg(fieldPkg) - w.uint64(uint64(n)) - - for i := range n { - f := t.Field(i) - if w.p.shallow { - w.objectPath(f) - } - w.pos(f.Pos()) - w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg - w.typ(f.Type(), fieldPkg) - w.bool(f.Anonymous()) - w.string(t.Tag(i)) // note (or tag) - } - - case *types.Interface: - w.startType(interfaceType) - w.pkg(pkg) - - n := t.NumEmbeddeds() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - ft := t.EmbeddedType(i) - tPkg := pkg - if named, _ := types.Unalias(ft).(*types.Named); named != nil { - w.pos(named.Obj().Pos()) - } else { - w.pos(token.NoPos) - } - w.typ(ft, tPkg) - } - - // See comment for struct fields. In shallow mode we change the encoding - // for interface methods that are promoted from other packages. - - n = t.NumExplicitMethods() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - m := t.ExplicitMethod(i) - if w.p.shallow { - w.objectPath(m) - } - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - w.signature(sig) - } - - case *types.Union: - w.startType(unionType) - nt := t.Len() - w.uint64(uint64(nt)) - for i := range nt { - term := t.Term(i) - w.bool(term.Tilde()) - w.typ(term.Type(), pkg) - } - - default: - panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) - } -} - -// objectPath writes the package and objectPath to use to look up obj in a -// different package, when encoding in "shallow" mode. -// -// When doing a shallow import, the importer creates only the local package, -// and requests package symbols for dependencies from the client. -// However, certain types defined in the local package may hold objects defined -// (perhaps deeply) within another package. -// -// For example, consider the following: -// -// package a -// func F() chan * map[string] struct { X int } -// -// package b -// import "a" -// var B = a.F() -// -// In this example, the type of b.B holds fields defined in package a. -// In order to have the correct canonical objects for the field defined in the -// type of B, they are encoded as objectPaths and later looked up in the -// importer. The same problem applies to interface methods. -func (w *exportWriter) objectPath(obj types.Object) { - if obj.Pkg() == nil || obj.Pkg() == w.p.localpkg { - // obj.Pkg() may be nil for the builtin error.Error. - // In this case, or if obj is declared in the local package, no need to - // encode. - w.string("") - return - } - objectPath, err := w.p.objectpathEncoder().For(obj) - if err != nil { - // Fall back to the empty string, which will cause the importer to create a - // new object, which matches earlier behavior. Creating a new object is - // sufficient for many purposes (such as type checking), but causes certain - // references algorithms to fail (golang/go#60819). However, we didn't - // notice this problem during months of gopls@v0.12.0 testing. - // - // TODO(golang/go#61674): this workaround is insufficient, as in the case - // where the field forwarded from an instantiated type that may not appear - // in the export data of the original package: - // - // // package a - // type A[P any] struct{ F P } - // - // // package b - // type B a.A[int] - // - // We need to update references algorithms not to depend on this - // de-duplication, at which point we may want to simply remove the - // workaround here. - w.string("") - return - } - w.string(string(objectPath)) - w.pkg(obj.Pkg()) -} - -func (w *exportWriter) signature(sig *types.Signature) { - w.paramList(sig.Params()) - w.paramList(sig.Results()) - if sig.Params().Len() > 0 { - w.bool(sig.Variadic()) - } -} - -func (w *exportWriter) typeList(ts *types.TypeList, pkg *types.Package) { - w.uint64(uint64(ts.Len())) - for i := 0; i < ts.Len(); i++ { - w.typ(ts.At(i), pkg) - } -} - -func (w *exportWriter) tparamList(prefix string, list *types.TypeParamList, pkg *types.Package) { - ll := uint64(list.Len()) - w.uint64(ll) - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) - // Set the type parameter exportName before exporting its type. - exportName := tparamExportName(prefix, tparam) - w.p.tparamNames[tparam.Obj()] = exportName - w.typ(list.At(i), pkg) - } -} - -const blankMarker = "$" - -// tparamExportName returns the 'exported' name of a type parameter, which -// differs from its actual object name: it is prefixed with a qualifier, and -// blank type parameter names are disambiguated by their index in the type -// parameter list. -func tparamExportName(prefix string, tparam *types.TypeParam) string { - assert(prefix != "") - name := tparam.Obj().Name() - if name == "_" { - name = blankMarker + strconv.Itoa(tparam.Index()) - } - return prefix + "." + name -} - -// tparamName returns the real name of a type parameter, after stripping its -// qualifying prefix and reverting blank-name encoding. See tparamExportName -// for details. -func tparamName(exportName string) string { - // Remove the "path" from the type param name that makes it unique. - ix := strings.LastIndex(exportName, ".") - if ix < 0 { - errorf("malformed type parameter export name %s: missing prefix", exportName) - } - name := exportName[ix+1:] - if strings.HasPrefix(name, blankMarker) { - return "_" - } - return name -} - -func (w *exportWriter) paramList(tup *types.Tuple) { - n := tup.Len() - w.uint64(uint64(n)) - for i := range n { - w.param(tup.At(i)) - } -} - -func (w *exportWriter) param(obj types.Object) { - w.pos(obj.Pos()) - w.localIdent(obj) - w.typ(obj.Type(), obj.Pkg()) -} - -func (w *exportWriter) value(typ types.Type, v constant.Value) { - w.typ(typ, nil) - if w.p.version >= iexportVersionGo1_18 { - w.int64(int64(v.Kind())) - } - - if v.Kind() == constant.Unknown { - // golang/go#60605: treat unknown constant values as if they have invalid type - // - // This loses some fidelity over the package type-checked from source, but that - // is acceptable. - // - // TODO(rfindley): we should switch on the recorded constant kind rather - // than the constant type - return - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - w.bool(constant.BoolVal(v)) - case types.IsInteger: - var i big.Int - if i64, exact := constant.Int64Val(v); exact { - i.SetInt64(i64) - } else if ui64, exact := constant.Uint64Val(v); exact { - i.SetUint64(ui64) - } else { - i.SetString(v.ExactString(), 10) - } - w.mpint(&i, typ) - case types.IsFloat: - f := constantToFloat(v) - w.mpfloat(f, typ) - case types.IsComplex: - w.mpfloat(constantToFloat(constant.Real(v)), typ) - w.mpfloat(constantToFloat(constant.Imag(v)), typ) - case types.IsString: - w.string(constant.StringVal(v)) - default: - if b.Kind() == types.Invalid { - // package contains type errors - break - } - panic(internalErrorf("unexpected type %v (%v)", typ, typ.Underlying())) - } -} - -// constantToFloat converts a constant.Value with kind constant.Float to a -// big.Float. -func constantToFloat(x constant.Value) *big.Float { - x = constant.ToFloat(x) - // Use the same floating-point precision (512) as cmd/compile - // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). - const mpprec = 512 - var f big.Float - f.SetPrec(mpprec) - if v, exact := constant.Float64Val(x); exact { - // float64 - f.SetFloat64(v) - } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { - // TODO(gri): add big.Rat accessor to constant.Value. - n := valueToRat(num) - d := valueToRat(denom) - f.SetRat(n.Quo(n, d)) - } else { - // Value too large to represent as a fraction => inaccessible. - // TODO(gri): add big.Float accessor to constant.Value. - _, ok := f.SetString(x.ExactString()) - assert(ok) - } - return &f -} - -func valueToRat(x constant.Value) *big.Rat { - // Convert little-endian to big-endian. - // I can't believe this is necessary. - bytes := constant.Bytes(x) - for i := 0; i < len(bytes)/2; i++ { - bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] - } - return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) -} - -// mpint exports a multi-precision integer. -// -// For unsigned types, small values are written out as a single -// byte. Larger values are written out as a length-prefixed big-endian -// byte string, where the length prefix is encoded as its complement. -// For example, bytes 0, 1, and 2 directly represent the integer -// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, -// 2-, and 3-byte big-endian string follow. -// -// Encoding for signed types use the same general approach as for -// unsigned types, except small values use zig-zag encoding and the -// bottom bit of length prefix byte for large values is reserved as a -// sign bit. -// -// The exact boundary between small and large encodings varies -// according to the maximum number of bytes needed to encode a value -// of type typ. As a special case, 8-bit types are always encoded as a -// single byte. -// -// TODO(mdempsky): Is this level of complexity really worthwhile? -func (w *exportWriter) mpint(x *big.Int, typ types.Type) { - basic, ok := typ.Underlying().(*types.Basic) - if !ok { - panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) - } - - signed, maxBytes := intSize(basic) - - negative := x.Sign() < 0 - if !signed && negative { - panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) - } - - b := x.Bytes() - if len(b) > 0 && b[0] == 0 { - panic(internalErrorf("leading zeros")) - } - if uint(len(b)) > maxBytes { - panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) - } - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - // Check if x can use small value encoding. - if len(b) <= 1 { - var ux uint - if len(b) == 1 { - ux = uint(b[0]) - } - if signed { - ux <<= 1 - if negative { - ux-- - } - } - if ux < maxSmall { - w.data.WriteByte(byte(ux)) - return - } - } - - n := 256 - uint(len(b)) - if signed { - n = 256 - 2*uint(len(b)) - if negative { - n |= 1 - } - } - if n < maxSmall || n >= 256 { - panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) - } - - w.data.WriteByte(byte(n)) - w.data.Write(b) -} - -// mpfloat exports a multi-precision floating point number. -// -// The number's value is decomposed into mantissa × 2**exponent, where -// mantissa is an integer. The value is written out as mantissa (as a -// multi-precision integer) and then the exponent, except exponent is -// omitted if mantissa is zero. -func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { - if f.IsInf() { - panic("infinite constant") - } - - // Break into f = mant × 2**exp, with 0.5 <= mant < 1. - var mant big.Float - exp := int64(f.MantExp(&mant)) - - // Scale so that mant is an integer. - prec := mant.MinPrec() - mant.SetMantExp(&mant, int(prec)) - exp -= int64(prec) - - manti, acc := mant.Int(nil) - if acc != big.Exact { - panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) - } - w.mpint(manti, typ) - if manti.Sign() != 0 { - w.int64(exp) - } -} - -func (w *exportWriter) bool(b bool) bool { - var x uint64 - if b { - x = 1 - } - w.uint64(x) - return b -} - -func (w *exportWriter) int64(x int64) { w.data.int64(x) } -func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } -func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } - -func (w *exportWriter) localIdent(obj types.Object) { - // Anonymous parameters. - if obj == nil { - w.string("") - return - } - - name := obj.Name() - if name == "_" { - w.string("_") - return - } - - w.string(name) -} - -type intWriter struct { - bytes.Buffer -} - -func (w *intWriter) int64(x int64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutVarint(buf[:], x) - w.Write(buf[:n]) -} - -func (w *intWriter) uint64(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - w.Write(buf[:n]) -} - -func assert(cond bool) { - if !cond { - panic("internal error: assertion failed") - } -} - -// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. - -// objQueue is a FIFO queue of types.Object. The zero value of objQueue is -// a ready-to-use empty queue. -type objQueue struct { - ring []types.Object - head, tail int -} - -// empty returns true if q contains no Nodes. -func (q *objQueue) empty() bool { - return q.head == q.tail -} - -// pushTail appends n to the tail of the queue. -func (q *objQueue) pushTail(obj types.Object) { - if len(q.ring) == 0 { - q.ring = make([]types.Object, 16) - } else if q.head+len(q.ring) == q.tail { - // Grow the ring. - nring := make([]types.Object, len(q.ring)*2) - // Copy the old elements. - part := q.ring[q.head%len(q.ring):] - if q.tail-q.head <= len(part) { - part = part[:q.tail-q.head] - copy(nring, part) - } else { - pos := copy(nring, part) - copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) - } - q.ring, q.head, q.tail = nring, 0, q.tail-q.head - } - - q.ring[q.tail%len(q.ring)] = obj - q.tail++ -} - -// popHead pops a node from the head of the queue. It panics if q is empty. -func (q *objQueue) popHead() types.Object { - if q.empty() { - panic("dequeue empty") - } - obj := q.ring[q.head%len(q.ring)] - q.head++ - return obj -} - -// internalError represents an error generated inside this package. -type internalError string - -func (e internalError) Error() string { return "gcimporter: " + string(e) } - -// TODO(adonovan): make this call panic, so that it's symmetric with errorf. -// Otherwise it's easy to forget to do anything with the error. -// -// TODO(adonovan): also, consider switching the names "errorf" and -// "internalErrorf" as the former is used for bugs, whose cause is -// internal inconsistency, whereas the latter is used for ordinary -// situations like bad input, whose cause is external. -func internalErrorf(format string, args ...any) error { - return internalError(fmt.Sprintf(format, args...)) -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go deleted file mode 100644 index 82e6c9d..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ /dev/null @@ -1,1120 +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. - -// Indexed package import. -// See iexport.go for the export data format. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "slices" - "sort" - "strings" - - "golang.org/x/tools/go/types/objectpath" - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/typesinternal" -) - -type intReader struct { - *bytes.Reader - path string -} - -func (r *intReader) int64() int64 { - i, err := binary.ReadVarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -func (r *intReader) uint64() uint64 { - i, err := binary.ReadUvarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -// Keep this in sync with constants in iexport.go. -const ( - iexportVersionGo1_11 = 0 - iexportVersionPosCol = 1 - iexportVersionGo1_18 = 2 - iexportVersionGenerics = 2 - iexportVersion = iexportVersionGenerics - - iexportVersionCurrent = 2 -) - -type ident struct { - pkg *types.Package - name string -} - -const predeclReserved = 32 - -type itag uint64 - -const ( - // Types - definedType itag = iota - pointerType - sliceType - arrayType - chanType - mapType - signatureType - structType - interfaceType - typeParamType - instanceType - unionType - aliasType -) - -// Object tags -const ( - varTag = 'V' - funcTag = 'F' - genericFuncTag = 'G' - constTag = 'C' - aliasTag = 'A' - genericAliasTag = 'B' - typeParamTag = 'P' - typeTag = 'T' - genericTypeTag = 'U' -) - -// IImportData imports a package from the serialized package data -// and returns 0 and a reference to the package. -// If the export data version is not recognized or the format is otherwise -// compromised, an error is returned. -func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { - pkgs, err := iimportCommon(fset, GetPackagesFromMap(imports), data, false, path, false, nil) - if err != nil { - return 0, nil, err - } - return 0, pkgs[0], nil -} - -// IImportBundle imports a set of packages from the serialized package bundle. -func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { - return iimportCommon(fset, GetPackagesFromMap(imports), data, true, "", false, nil) -} - -// A GetPackagesFunc function obtains the non-nil symbols for a set of -// packages, creating and recursively importing them as needed. An -// implementation should store each package symbol is in the Pkg -// field of the items array. -// -// Any error causes importing to fail. This can be used to quickly read -// the import manifest of an export data file without fully decoding it. -type GetPackagesFunc = func(items []GetPackagesItem) error - -// A GetPackagesItem is a request from the importer for the package -// symbol of the specified name and path. -type GetPackagesItem struct { - Name, Path string - Pkg *types.Package // to be filled in by GetPackagesFunc call - - // private importer state - pathOffset uint64 - nameIndex map[string]uint64 -} - -// GetPackagesFromMap returns a GetPackagesFunc that retrieves -// packages from the given map of package path to package. -// -// The returned function may mutate m: each requested package that is not -// found is created with types.NewPackage and inserted into m. -func GetPackagesFromMap(m map[string]*types.Package) GetPackagesFunc { - return func(items []GetPackagesItem) error { - for i, item := range items { - pkg, ok := m[item.Path] - if !ok { - pkg = types.NewPackage(item.Path, item.Name) - m[item.Path] = pkg - } - items[i].Pkg = pkg - } - return nil - } -} - -func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, bundle bool, path string, shallow bool, reportf ReportFunc) (pkgs []*types.Package, err error) { - const currentVersion = iexportVersionCurrent - version := int64(-1) - if !debug { - defer func() { - if e := recover(); e != nil { - if bundle { - err = fmt.Errorf("%v", e) - } else if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { - err = fmt.Errorf("internal error while importing %q (%v); please report an issue", path, e) - } - } - }() - } - - r := &intReader{bytes.NewReader(data), path} - - if bundle { - if v := r.uint64(); v != bundleVersion { - errorf("unknown bundle format version %d", v) - } - } - - version = int64(r.uint64()) - switch version { - case iexportVersionGo1_18, iexportVersionPosCol, iexportVersionGo1_11: - default: - if version > iexportVersionGo1_18 { - errorf("unstable iexport format version %d, just rebuild compiler and std library", version) - } else { - errorf("unknown iexport format version %d", version) - } - } - - sLen := int64(r.uint64()) - var fLen int64 - var fileOffset []uint64 - if shallow { - // Shallow mode uses a different position encoding. - fLen = int64(r.uint64()) - fileOffset = make([]uint64, r.uint64()) - for i := range fileOffset { - fileOffset[i] = r.uint64() - } - } - dLen := int64(r.uint64()) - - whence, _ := r.Seek(0, io.SeekCurrent) - stringData := data[whence : whence+sLen] - fileData := data[whence+sLen : whence+sLen+fLen] - declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen] - r.Seek(sLen+fLen+dLen, io.SeekCurrent) - - p := iimporter{ - version: int(version), - ipath: path, - aliases: aliases.Enabled(), - shallow: shallow, - reportf: reportf, - - stringData: stringData, - stringCache: make(map[uint64]string), - fileOffset: fileOffset, - fileData: fileData, - fileCache: make([]*token.File, len(fileOffset)), - pkgCache: make(map[uint64]*types.Package), - - declData: declData, - pkgIndex: make(map[*types.Package]map[string]uint64), - typCache: make(map[uint64]types.Type), - // Separate map for typeparams, keyed by their package and unique - // name. - tparamIndex: make(map[ident]types.Type), - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - } - defer p.fake.setLines() // set lines for files in fset - - for i, pt := range predeclared() { - p.typCache[uint64(i)] = pt - } - - // Gather the relevant packages from the manifest. - items := make([]GetPackagesItem, r.uint64()) - uniquePkgPaths := make(map[string]bool) - for i := range items { - pkgPathOff := r.uint64() - pkgPath := p.stringAt(pkgPathOff) - pkgName := p.stringAt(r.uint64()) - _ = r.uint64() // package height; unused by go/types - - if pkgPath == "" { - pkgPath = path - } - items[i].Name = pkgName - items[i].Path = pkgPath - items[i].pathOffset = pkgPathOff - - // Read index for package. - nameIndex := make(map[string]uint64) - nSyms := r.uint64() - // In shallow mode, only the current package (i=0) has an index. - assert(!(shallow && i > 0 && nSyms != 0)) - for ; nSyms > 0; nSyms-- { - name := p.stringAt(r.uint64()) - nameIndex[name] = r.uint64() - } - - items[i].nameIndex = nameIndex - - uniquePkgPaths[pkgPath] = true - } - // Debugging #63822; hypothesis: there are duplicate PkgPaths. - if len(uniquePkgPaths) != len(items) { - reportf("found duplicate PkgPaths while reading export data manifest: %v", items) - } - - // Request packages all at once from the client, - // enabling a parallel implementation. - if err := getPackages(items); err != nil { - return nil, err // don't wrap this error - } - - // Check the results and complete the index. - pkgList := make([]*types.Package, len(items)) - for i, item := range items { - pkg := item.Pkg - if pkg == nil { - errorf("internal error: getPackages returned nil package for %q", item.Path) - } else if pkg.Path() != item.Path { - errorf("internal error: getPackages returned wrong path %q, want %q", pkg.Path(), item.Path) - } else if pkg.Name() != item.Name { - errorf("internal error: getPackages returned wrong name %s for package %q, want %s", pkg.Name(), item.Path, item.Name) - } - p.pkgCache[item.pathOffset] = pkg - p.pkgIndex[pkg] = item.nameIndex - pkgList[i] = pkg - } - - if bundle { - pkgs = make([]*types.Package, r.uint64()) - for i := range pkgs { - pkg := p.pkgAt(r.uint64()) - imps := make([]*types.Package, r.uint64()) - for j := range imps { - imps[j] = p.pkgAt(r.uint64()) - } - pkg.SetImports(imps) - pkgs[i] = pkg - } - } else { - if len(pkgList) == 0 { - errorf("no packages found for %s", path) - panic("unreachable") - } - pkgs = pkgList[:1] - - // record all referenced packages as imports - list := slices.Clone(pkgList[1:]) - sort.Sort(byPath(list)) - pkgs[0].SetImports(list) - } - - for _, pkg := range pkgs { - if pkg.Complete() { - continue - } - - names := make([]string, 0, len(p.pkgIndex[pkg])) - for name := range p.pkgIndex[pkg] { - names = append(names, name) - } - sort.Strings(names) - for _, name := range names { - p.doDecl(pkg, name) - } - - // package was imported completely and without errors - pkg.MarkComplete() - } - - // SetConstraint can't be called if the constraint type is not yet complete. - // When type params are created in the typeParamTag case of (*importReader).obj(), - // the associated constraint type may not be complete due to recursion. - // Therefore, we defer calling SetConstraint there, and call it here instead - // after all types are complete. - for _, d := range p.later { - d.t.SetConstraint(d.constraint) - } - - for _, typ := range p.interfaceList { - typ.Complete() - } - - // Workaround for golang/go#61561. See the doc for instanceList for details. - for _, typ := range p.instanceList { - if iface, _ := typ.Underlying().(*types.Interface); iface != nil { - iface.Complete() - } - } - - return pkgs, nil -} - -type setConstraintArgs struct { - t *types.TypeParam - constraint types.Type -} - -type iimporter struct { - version int - ipath string - - aliases bool - shallow bool - reportf ReportFunc // if non-nil, used to report bugs - - stringData []byte - stringCache map[uint64]string - fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i - fileData []byte - fileCache []*token.File // memoized decoding of file encoded as i - pkgCache map[uint64]*types.Package - - declData []byte - pkgIndex map[*types.Package]map[string]uint64 - typCache map[uint64]types.Type - tparamIndex map[ident]types.Type - - fake fakeFileSet - interfaceList []*types.Interface - - // Workaround for the go/types bug golang/go#61561: instances produced during - // instantiation may contain incomplete interfaces. Here we only complete the - // underlying type of the instance, which is the most common case but doesn't - // handle parameterized interface literals defined deeper in the type. - instanceList []types.Type // instances for later completion (see golang/go#61561) - - // Arguments for calls to SetConstraint that are deferred due to recursive types - later []setConstraintArgs - - indent int // for tracing support -} - -func (p *iimporter) trace(format string, args ...any) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -func (p *iimporter) doDecl(pkg *types.Package, name string) { - if debug { - p.trace("import decl %s", name) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", name) - }() - } - // See if we've already imported this declaration. - if obj := pkg.Scope().Lookup(name); obj != nil { - return - } - - off, ok := p.pkgIndex[pkg][name] - if !ok { - // In deep mode, the index should be complete. In shallow - // mode, we should have already recursively loaded necessary - // dependencies so the above Lookup succeeds. - errorf("%v.%v not in index", pkg, name) - } - - r := &importReader{p: p, currPkg: pkg} - r.declReader.Reset(p.declData[off:]) - - r.obj(name) -} - -func (p *iimporter) stringAt(off uint64) string { - if s, ok := p.stringCache[off]; ok { - return s - } - - slen, n := binary.Uvarint(p.stringData[off:]) - if n <= 0 { - errorf("varint failed") - } - spos := off + uint64(n) - s := string(p.stringData[spos : spos+slen]) - p.stringCache[off] = s - return s -} - -func (p *iimporter) fileAt(index uint64) *token.File { - file := p.fileCache[index] - if file == nil { - off := p.fileOffset[index] - file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath}) - p.fileCache[index] = file - } - return file -} - -func (p *iimporter) decodeFile(rd intReader) *token.File { - filename := p.stringAt(rd.uint64()) - size := int(rd.uint64()) - file := p.fake.fset.AddFile(filename, -1, size) - - // SetLines requires a nondecreasing sequence. - // Because it is common for clients to derive the interval - // [start, start+len(name)] from a start position, and we - // want to ensure that the end offset is on the same line, - // we fill in the gaps of the sparse encoding with values - // that strictly increase by the largest possible amount. - // This allows us to avoid having to record the actual end - // offset of each needed line. - - lines := make([]int, int(rd.uint64())) - var index, offset int - for i, n := 0, int(rd.uint64()); i < n; i++ { - index += int(rd.uint64()) - offset += int(rd.uint64()) - lines[index] = offset - - // Ensure monotonicity between points. - for j := index - 1; j > 0 && lines[j] == 0; j-- { - lines[j] = lines[j+1] - 1 - } - } - - // Ensure monotonicity after last point. - for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- { - size-- - lines[j] = size - } - - if !file.SetLines(lines) { - errorf("SetLines failed: %d", lines) // can't happen - } - return file -} - -func (p *iimporter) pkgAt(off uint64) *types.Package { - if pkg, ok := p.pkgCache[off]; ok { - return pkg - } - path := p.stringAt(off) - errorf("missing package %q in %q", path, p.ipath) - return nil -} - -func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { - if t, ok := p.typCache[off]; ok && canReuse(base, t) { - return t - } - - if off < predeclReserved { - errorf("predeclared type missing from cache: %v", off) - } - - r := &importReader{p: p} - r.declReader.Reset(p.declData[off-predeclReserved:]) - t := r.doType(base) - - if canReuse(base, t) { - p.typCache[off] = t - } - return t -} - -// canReuse reports whether the type rhs on the RHS of the declaration for def -// may be re-used. -// -// Specifically, if def is non-nil and rhs is an interface type with methods, it -// may not be re-used because we have a convention of setting the receiver type -// for interface methods to def. -func canReuse(def *types.Named, rhs types.Type) bool { - if def == nil { - return true - } - iface, _ := types.Unalias(rhs).(*types.Interface) - if iface == nil { - return true - } - // Don't use iface.Empty() here as iface may not be complete. - return iface.NumEmbeddeds() == 0 && iface.NumExplicitMethods() == 0 -} - -type importReader struct { - p *iimporter - declReader bytes.Reader - currPkg *types.Package - prevFile string - prevLine int64 - prevColumn int64 -} - -// markBlack is redefined in iimport_go123.go, to work around golang/go#69912. -// -// If TypeNames are not marked black (in the sense of go/types cycle -// detection), they may be mutated when dot-imported. Fix this by punching a -// hole through the type, when compiling with Go 1.23. (The bug has been fixed -// for 1.24, but the fix was not worth back-porting). -var markBlack = func(name *types.TypeName) {} - -func (r *importReader) obj(name string) { - tag := r.byte() - pos := r.pos() - - switch tag { - case aliasTag, genericAliasTag: - var tparams []*types.TypeParam - if tag == genericAliasTag { - tparams = r.tparamList() - } - typ := r.typ() - obj := aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ, tparams) - markBlack(obj) // workaround for golang/go#69912 - r.declare(obj) - - case constTag: - typ, val := r.value() - - r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) - - case funcTag, genericFuncTag: - var tparams []*types.TypeParam - if tag == genericFuncTag { - tparams = r.tparamList() - } - sig := r.signature(nil, nil, tparams) - r.declare(types.NewFunc(pos, r.currPkg, name, sig)) - - case typeTag, genericTypeTag: - // Types can be recursive. We need to setup a stub - // declaration before recursing. - obj := types.NewTypeName(pos, r.currPkg, name, nil) - named := types.NewNamed(obj, nil, nil) - - markBlack(obj) // workaround for golang/go#69912 - - // Declare obj before calling r.tparamList, so the new type name is recognized - // if used in the constraint of one of its own typeparams (see #48280). - r.declare(obj) - if tag == genericTypeTag { - tparams := r.tparamList() - named.SetTypeParams(tparams) - } - - underlying := r.p.typAt(r.uint64(), named).Underlying() - named.SetUnderlying(underlying) - - if !isInterface(underlying) { - for n := r.uint64(); n > 0; n-- { - mpos := r.pos() - mname := r.ident() - recv := r.param() - - // If the receiver has any targs, set those as the - // rparams of the method (since those are the - // typeparams being used in the method sig/body). - _, recvNamed := typesinternal.ReceiverNamed(recv) - targs := recvNamed.TypeArgs() - var rparams []*types.TypeParam - if targs.Len() > 0 { - rparams = make([]*types.TypeParam, targs.Len()) - for i := range rparams { - rparams[i] = types.Unalias(targs.At(i)).(*types.TypeParam) - } - } - msig := r.signature(recv, rparams, nil) - - named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) - } - } - - case typeParamTag: - // We need to "declare" a typeparam in order to have a name that - // can be referenced recursively (if needed) in the type param's - // bound. - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - name0 := tparamName(name) - tn := types.NewTypeName(pos, r.currPkg, name0, nil) - t := types.NewTypeParam(tn, nil) - - // To handle recursive references to the typeparam within its - // bound, save the partial type in tparamIndex before reading the bounds. - id := ident{r.currPkg, name} - r.p.tparamIndex[id] = t - var implicit bool - if r.p.version >= iexportVersionGo1_18 { - implicit = r.bool() - } - constraint := r.typ() - if implicit { - iface, _ := types.Unalias(constraint).(*types.Interface) - if iface == nil { - errorf("non-interface constraint marked implicit") - } - iface.MarkImplicit() - } - // The constraint type may not be complete, if we - // are in the middle of a type recursion involving type - // constraints. So, we defer SetConstraint until we have - // completely set up all types in ImportData. - r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) - - case varTag: - typ := r.typ() - - v := types.NewVar(pos, r.currPkg, name, typ) - typesinternal.SetVarKind(v, typesinternal.PackageVar) - r.declare(v) - - default: - errorf("unexpected tag: %v", tag) - } -} - -func (r *importReader) declare(obj types.Object) { - obj.Pkg().Scope().Insert(obj) -} - -func (r *importReader) value() (typ types.Type, val constant.Value) { - typ = r.typ() - if r.p.version >= iexportVersionGo1_18 { - // TODO: add support for using the kind. - _ = constant.Kind(r.int64()) - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - val = constant.MakeBool(r.bool()) - - case types.IsString: - val = constant.MakeString(r.string()) - - case types.IsInteger: - var x big.Int - r.mpint(&x, b) - val = constant.Make(&x) - - case types.IsFloat: - val = r.mpfloat(b) - - case types.IsComplex: - re := r.mpfloat(b) - im := r.mpfloat(b) - val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) - - default: - if b.Kind() == types.Invalid { - val = constant.MakeUnknown() - return - } - errorf("unexpected type %v", typ) // panics - panic("unreachable") - } - - return -} - -func intSize(b *types.Basic) (signed bool, maxBytes uint) { - if (b.Info() & types.IsUntyped) != 0 { - return true, 64 - } - - switch b.Kind() { - case types.Float32, types.Complex64: - return true, 3 - case types.Float64, types.Complex128: - return true, 7 - } - - signed = (b.Info() & types.IsUnsigned) == 0 - switch b.Kind() { - case types.Int8, types.Uint8: - maxBytes = 1 - case types.Int16, types.Uint16: - maxBytes = 2 - case types.Int32, types.Uint32: - maxBytes = 4 - default: - maxBytes = 8 - } - - return -} - -func (r *importReader) mpint(x *big.Int, typ *types.Basic) { - signed, maxBytes := intSize(typ) - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - n, _ := r.declReader.ReadByte() - if uint(n) < maxSmall { - v := int64(n) - if signed { - v >>= 1 - if n&1 != 0 { - v = ^v - } - } - x.SetInt64(v) - return - } - - v := -n - if signed { - v = -(n &^ 1) >> 1 - } - if v < 1 || uint(v) > maxBytes { - errorf("weird decoding: %v, %v => %v", n, signed, v) - } - b := make([]byte, v) - io.ReadFull(&r.declReader, b) - x.SetBytes(b) - if signed && n&1 != 0 { - x.Neg(x) - } -} - -func (r *importReader) mpfloat(typ *types.Basic) constant.Value { - var mant big.Int - r.mpint(&mant, typ) - var f big.Float - f.SetInt(&mant) - if f.Sign() != 0 { - f.SetMantExp(&f, int(r.int64())) - } - return constant.Make(&f) -} - -func (r *importReader) ident() string { - return r.string() -} - -func (r *importReader) qualifiedIdent() (*types.Package, string) { - name := r.string() - pkg := r.pkg() - return pkg, name -} - -func (r *importReader) pos() token.Pos { - if r.p.shallow { - // precise offsets are encoded only in shallow mode - return r.posv2() - } - if r.p.version >= iexportVersionPosCol { - r.posv1() - } else { - r.posv0() - } - - if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 { - return token.NoPos - } - return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn)) -} - -func (r *importReader) posv0() { - delta := r.int64() - if delta != deltaNewFile { - r.prevLine += delta - } else if l := r.int64(); l == -1 { - r.prevLine += deltaNewFile - } else { - r.prevFile = r.string() - r.prevLine = l - } -} - -func (r *importReader) posv1() { - delta := r.int64() - r.prevColumn += delta >> 1 - if delta&1 != 0 { - delta = r.int64() - r.prevLine += delta >> 1 - if delta&1 != 0 { - r.prevFile = r.string() - } - } -} - -func (r *importReader) posv2() token.Pos { - file := r.uint64() - if file == 0 { - return token.NoPos - } - tf := r.p.fileAt(file - 1) - return tf.Pos(int(r.uint64())) -} - -func (r *importReader) typ() types.Type { - return r.p.typAt(r.uint64(), nil) -} - -func isInterface(t types.Type) bool { - _, ok := types.Unalias(t).(*types.Interface) - return ok -} - -func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } -func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } - -func (r *importReader) doType(base *types.Named) (res types.Type) { - k := r.kind() - if debug { - r.p.trace("importing type %d (base: %v)", k, base) - r.p.indent++ - defer func() { - r.p.indent-- - r.p.trace("=> %s", res) - }() - } - switch k { - default: - errorf("unexpected kind tag in %q: %v", r.p.ipath, k) - return nil - - case aliasType, definedType: - pkg, name := r.qualifiedIdent() - r.p.doDecl(pkg, name) - return pkg.Scope().Lookup(name).(*types.TypeName).Type() - case pointerType: - return types.NewPointer(r.typ()) - case sliceType: - return types.NewSlice(r.typ()) - case arrayType: - n := r.uint64() - return types.NewArray(r.typ(), int64(n)) - case chanType: - dir := chanDir(int(r.uint64())) - return types.NewChan(dir, r.typ()) - case mapType: - return types.NewMap(r.typ(), r.typ()) - case signatureType: - r.currPkg = r.pkg() - return r.signature(nil, nil, nil) - - case structType: - r.currPkg = r.pkg() - - fields := make([]*types.Var, r.uint64()) - tags := make([]string, len(fields)) - for i := range fields { - var field *types.Var - if r.p.shallow { - field, _ = r.objectPathObject().(*types.Var) - } - - fpos := r.pos() - fname := r.ident() - ftyp := r.typ() - emb := r.bool() - tag := r.string() - - // Either this is not a shallow import, the field is local, or the - // encoded objectPath failed to produce an object (a bug). - // - // Even in this last, buggy case, fall back on creating a new field. As - // discussed in iexport.go, this is not correct, but mostly works and is - // preferable to failing (for now at least). - if field == nil { - field = types.NewField(fpos, r.currPkg, fname, ftyp, emb) - } - - fields[i] = field - tags[i] = tag - } - return types.NewStruct(fields, tags) - - case interfaceType: - r.currPkg = r.pkg() - - embeddeds := make([]types.Type, r.uint64()) - for i := range embeddeds { - _ = r.pos() - embeddeds[i] = r.typ() - } - - methods := make([]*types.Func, r.uint64()) - for i := range methods { - var method *types.Func - if r.p.shallow { - method, _ = r.objectPathObject().(*types.Func) - } - - mpos := r.pos() - mname := r.ident() - - // TODO(mdempsky): Matches bimport.go, but I - // don't agree with this. - var recv *types.Var - if base != nil { - recv = types.NewVar(token.NoPos, r.currPkg, "", base) - } - msig := r.signature(recv, nil, nil) - - if method == nil { - method = types.NewFunc(mpos, r.currPkg, mname, msig) - } - methods[i] = method - } - - typ := types.NewInterfaceType(methods, embeddeds) - r.p.interfaceList = append(r.p.interfaceList, typ) - return typ - - case typeParamType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - pkg, name := r.qualifiedIdent() - id := ident{pkg, name} - if t, ok := r.p.tparamIndex[id]; ok { - // We're already in the process of importing this typeparam. - return t - } - // Otherwise, import the definition of the typeparam now. - r.p.doDecl(pkg, name) - return r.p.tparamIndex[id] - - case instanceType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - // pos does not matter for instances: they are positioned on the original - // type. - _ = r.pos() - len := r.uint64() - targs := make([]types.Type, len) - for i := range targs { - targs[i] = r.typ() - } - baseType := r.typ() - // The imported instantiated type doesn't include any methods, so - // we must always use the methods of the base (orig) type. - // TODO provide a non-nil *Environment - t, _ := types.Instantiate(nil, baseType, targs, false) - - // Workaround for golang/go#61561. See the doc for instanceList for details. - r.p.instanceList = append(r.p.instanceList, t) - return t - - case unionType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - terms := make([]*types.Term, r.uint64()) - for i := range terms { - terms[i] = types.NewTerm(r.bool(), r.typ()) - } - return types.NewUnion(terms) - } -} - -func (r *importReader) kind() itag { - return itag(r.uint64()) -} - -// objectPathObject is the inverse of exportWriter.objectPath. -// -// In shallow mode, certain fields and methods may need to be looked up in an -// imported package. See the doc for exportWriter.objectPath for a full -// explanation. -func (r *importReader) objectPathObject() types.Object { - objPath := objectpath.Path(r.string()) - if objPath == "" { - return nil - } - pkg := r.pkg() - obj, err := objectpath.Object(pkg, objPath) - if err != nil { - if r.p.reportf != nil { - r.p.reportf("failed to find object for objectPath %q: %v", objPath, err) - } - } - return obj -} - -func (r *importReader) signature(recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { - params := r.paramList() - results := r.paramList() - variadic := params.Len() > 0 && r.bool() - return types.NewSignatureType(recv, rparams, tparams, params, results, variadic) -} - -func (r *importReader) tparamList() []*types.TypeParam { - n := r.uint64() - if n == 0 { - return nil - } - xs := make([]*types.TypeParam, n) - for i := range xs { - // Note: the standard library importer is tolerant of nil types here, - // though would panic in SetTypeParams. - xs[i] = types.Unalias(r.typ()).(*types.TypeParam) - } - return xs -} - -func (r *importReader) paramList() *types.Tuple { - xs := make([]*types.Var, r.uint64()) - for i := range xs { - xs[i] = r.param() - } - return types.NewTuple(xs...) -} - -func (r *importReader) param() *types.Var { - pos := r.pos() - name := r.ident() - typ := r.typ() - return types.NewParam(pos, r.currPkg, name, typ) -} - -func (r *importReader) bool() bool { - return r.uint64() != 0 -} - -func (r *importReader) int64() int64 { - n, err := binary.ReadVarint(&r.declReader) - if err != nil { - errorf("readVarint: %v", err) - } - return n -} - -func (r *importReader) uint64() uint64 { - n, err := binary.ReadUvarint(&r.declReader) - if err != nil { - errorf("readUvarint: %v", err) - } - return n -} - -func (r *importReader) byte() byte { - x, err := r.declReader.ReadByte() - if err != nil { - errorf("declReader.ReadByte: %v", err) - } - return x -} - -type byPath []*types.Package - -func (a byPath) Len() int { return len(a) } -func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go deleted file mode 100644 index 7586bfa..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.22 && !go1.24 - -package gcimporter - -import ( - "go/token" - "go/types" - "unsafe" -) - -// TODO(rfindley): delete this workaround once go1.24 is assured. - -func init() { - // Update markBlack so that it correctly sets the color - // of imported TypeNames. - // - // See the doc comment for markBlack for details. - - type color uint32 - const ( - white color = iota - black - grey - ) - type object struct { - _ *types.Scope - _ token.Pos - _ *types.Package - _ string - _ types.Type - _ uint32 - color_ color - _ token.Pos - } - type typeName struct { - object - } - - // If the size of types.TypeName changes, this will fail to compile. - const delta = int64(unsafe.Sizeof(typeName{})) - int64(unsafe.Sizeof(types.TypeName{})) - var _ [-delta * delta]int - - markBlack = func(obj *types.TypeName) { - type uP = unsafe.Pointer - var ptr *typeName - *(*uP)(uP(&ptr)) = uP(obj) - ptr.color_ = black - } -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go b/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go deleted file mode 100644 index 907c855..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcimporter - -import ( - "go/types" - "sync" -) - -// predecl is a cache for the predeclared types in types.Universe. -// -// Cache a distinct result based on the runtime value of any. -// The pointer value of the any type varies based on GODEBUG settings. -var predeclMu sync.Mutex -var predecl map[types.Type][]types.Type - -func predeclared() []types.Type { - anyt := types.Universe.Lookup("any").Type() - - predeclMu.Lock() - defer predeclMu.Unlock() - - if pre, ok := predecl[anyt]; ok { - return pre - } - - if predecl == nil { - predecl = make(map[types.Type][]types.Type) - } - - decls := []types.Type{ // basic types - types.Typ[types.Bool], - types.Typ[types.Int], - types.Typ[types.Int8], - types.Typ[types.Int16], - types.Typ[types.Int32], - types.Typ[types.Int64], - types.Typ[types.Uint], - types.Typ[types.Uint8], - types.Typ[types.Uint16], - types.Typ[types.Uint32], - types.Typ[types.Uint64], - types.Typ[types.Uintptr], - types.Typ[types.Float32], - types.Typ[types.Float64], - types.Typ[types.Complex64], - types.Typ[types.Complex128], - types.Typ[types.String], - - // basic type aliases - types.Universe.Lookup("byte").Type(), - types.Universe.Lookup("rune").Type(), - - // error - types.Universe.Lookup("error").Type(), - - // untyped types - types.Typ[types.UntypedBool], - types.Typ[types.UntypedInt], - types.Typ[types.UntypedRune], - types.Typ[types.UntypedFloat], - types.Typ[types.UntypedComplex], - types.Typ[types.UntypedString], - types.Typ[types.UntypedNil], - - // package unsafe - types.Typ[types.UnsafePointer], - - // invalid type - types.Typ[types.Invalid], // only appears in packages with errors - - // used internally by gc; never used by this package or in .a files - anyType{}, - - // comparable - types.Universe.Lookup("comparable").Type(), - - // any - anyt, - } - - predecl[anyt] = decls - return decls -} - -type anyType struct{} - -func (t anyType) Underlying() types.Type { return t } -func (t anyType) String() string { return "any" } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support.go b/vendor/golang.org/x/tools/internal/gcimporter/support.go deleted file mode 100644 index 4af810d..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/support.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcimporter - -import ( - "bufio" - "io" - "strconv" - "strings" -) - -// Copy of $GOROOT/src/cmd/internal/archive.ReadHeader. -func readArchiveHeader(b *bufio.Reader, name string) int { - // architecture-independent object file output - const HeaderSize = 60 - - var buf [HeaderSize]byte - if _, err := io.ReadFull(b, buf[:]); err != nil { - return -1 - } - aname := strings.Trim(string(buf[0:16]), " ") - if !strings.HasPrefix(aname, name) { - return -1 - } - asize := strings.Trim(string(buf[48:58]), " ") - i, _ := strconv.Atoi(asize) - return i -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go deleted file mode 100644 index 37b4a39..0000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ /dev/null @@ -1,761 +0,0 @@ -// 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. - -// Derived from go/internal/gcimporter/ureader.go - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" - "sort" - - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/pkgbits" - "golang.org/x/tools/internal/typesinternal" -) - -// A pkgReader holds the shared state for reading a unified IR package -// description. -type pkgReader struct { - pkgbits.PkgDecoder - - fake fakeFileSet - - ctxt *types.Context - imports map[string]*types.Package // previously imported packages, indexed by path - aliases bool // create types.Alias nodes - - // lazily initialized arrays corresponding to the unified IR - // PosBase, Pkg, and Type sections, respectively. - posBases []string // position bases (i.e., file names) - pkgs []*types.Package - typs []types.Type - - // laterFns holds functions that need to be invoked at the end of - // import reading. - laterFns []func() - // laterFors is used in case of 'type A B' to ensure that B is processed before A. - laterFors map[types.Type]int - - // ifaces holds a list of constructed Interfaces, which need to have - // Complete called after importing is done. - ifaces []*types.Interface -} - -// later adds a function to be invoked at the end of import reading. -func (pr *pkgReader) later(fn func()) { - pr.laterFns = append(pr.laterFns, fn) -} - -// See cmd/compile/internal/noder.derivedInfo. -type derivedInfo struct { - idx pkgbits.Index -} - -// See cmd/compile/internal/noder.typeInfo. -type typeInfo struct { - idx pkgbits.Index - derived bool -} - -func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - if !debug { - defer func() { - if x := recover(); x != nil { - err = fmt.Errorf("internal error in importing %q (%v); please report an issue", path, x) - } - }() - } - - s := string(data) - input := pkgbits.NewPkgDecoder(path, s) - pkg = readUnifiedPackage(fset, nil, imports, input) - return -} - -// laterFor adds a function to be invoked at the end of import reading, and records the type that function is finishing. -func (pr *pkgReader) laterFor(t types.Type, fn func()) { - if pr.laterFors == nil { - pr.laterFors = make(map[types.Type]int) - } - pr.laterFors[t] = len(pr.laterFns) - pr.laterFns = append(pr.laterFns, fn) -} - -// readUnifiedPackage reads a package description from the given -// unified IR export data decoder. -func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { - pr := pkgReader{ - PkgDecoder: input, - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - - ctxt: ctxt, - imports: imports, - aliases: aliases.Enabled(), - - posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), - pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), - typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), - } - defer pr.fake.setLines() - - r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) - pkg := r.pkg() - if r.Version().Has(pkgbits.HasInit) { - r.Bool() - } - - for i, n := 0, r.Len(); i < n; i++ { - // As if r.obj(), but avoiding the Scope.Lookup call, - // to avoid eager loading of imports. - r.Sync(pkgbits.SyncObject) - if r.Version().Has(pkgbits.DerivedFuncInstance) { - assert(!r.Bool()) - } - r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - assert(r.Len() == 0) - } - - r.Sync(pkgbits.SyncEOF) - - for _, fn := range pr.laterFns { - fn() - } - - for _, iface := range pr.ifaces { - iface.Complete() - } - - // Imports() of pkg are all of the transitive packages that were loaded. - var imps []*types.Package - for _, imp := range pr.pkgs { - if imp != nil && imp != pkg { - imps = append(imps, imp) - } - } - sort.Sort(byPath(imps)) - pkg.SetImports(imps) - - pkg.MarkComplete() - return pkg -} - -// A reader holds the state for reading a single unified IR element -// within a package. -type reader struct { - pkgbits.Decoder - - p *pkgReader - - dict *readerDict -} - -// A readerDict holds the state for type parameters that parameterize -// the current unified IR element. -type readerDict struct { - // bounds is a slice of typeInfos corresponding to the underlying - // bounds of the element's type parameters. - bounds []typeInfo - - // tparams is a slice of the constructed TypeParams for the element. - tparams []*types.TypeParam - - // derived is a slice of types derived from tparams, which may be - // instantiated while reading the current element. - derived []derivedInfo - derivedTypes []types.Type // lazily instantiated from derived -} - -func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.NewDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) tempReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.TempDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) retireReader(r *reader) { - pr.RetireDecoder(&r.Decoder) -} - -// @@@ Positions - -func (r *reader) pos() token.Pos { - r.Sync(pkgbits.SyncPos) - if !r.Bool() { - return token.NoPos - } - - // TODO(mdempsky): Delta encoding. - posBase := r.posBase() - line := r.Uint() - col := r.Uint() - return r.p.fake.pos(posBase, int(line), int(col)) -} - -func (r *reader) posBase() string { - return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) -} - -func (pr *pkgReader) posBaseIdx(idx pkgbits.Index) string { - if b := pr.posBases[idx]; b != "" { - return b - } - - var filename string - { - r := pr.tempReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) - - // Within types2, position bases have a lot more details (e.g., - // keeping track of where //line directives appeared exactly). - // - // For go/types, we just track the file name. - - filename = r.String() - - if r.Bool() { // file base - // Was: "b = token.NewTrimmedFileBase(filename, true)" - } else { // line base - pos := r.pos() - line := r.Uint() - col := r.Uint() - - // Was: "b = token.NewLineBase(pos, filename, true, line, col)" - _, _, _ = pos, line, col - } - pr.retireReader(r) - } - b := filename - pr.posBases[idx] = b - return b -} - -// @@@ Packages - -func (r *reader) pkg() *types.Package { - r.Sync(pkgbits.SyncPkg) - return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) -} - -func (pr *pkgReader) pkgIdx(idx pkgbits.Index) *types.Package { - // TODO(mdempsky): Consider using some non-nil pointer to indicate - // the universe scope, so we don't need to keep re-reading it. - if pkg := pr.pkgs[idx]; pkg != nil { - return pkg - } - - pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() - pr.pkgs[idx] = pkg - return pkg -} - -func (r *reader) doPkg() *types.Package { - path := r.String() - switch path { - // cmd/compile emits path="main" for main packages because - // that's the linker symbol prefix it used; but we need - // the package's path as it would be reported by go list, - // hence "main" below. - // See test at go/packages.TestMainPackagePathInModeTypes. - case "", "main": - path = r.p.PkgPath() - case "builtin": - return nil // universe - case "unsafe": - return types.Unsafe - } - - if pkg := r.p.imports[path]; pkg != nil { - return pkg - } - - name := r.String() - - pkg := types.NewPackage(path, name) - r.p.imports[path] = pkg - - return pkg -} - -// @@@ Types - -func (r *reader) typ() types.Type { - return r.p.typIdx(r.typInfo(), r.dict) -} - -func (r *reader) typInfo() typeInfo { - r.Sync(pkgbits.SyncType) - if r.Bool() { - return typeInfo{idx: pkgbits.Index(r.Len()), derived: true} - } - return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} -} - -func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { - idx := info.idx - var where *types.Type - if info.derived { - where = &dict.derivedTypes[idx] - idx = dict.derived[idx].idx - } else { - where = &pr.typs[idx] - } - - if typ := *where; typ != nil { - return typ - } - - var typ types.Type - { - r := pr.tempReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) - r.dict = dict - - typ = r.doTyp() - assert(typ != nil) - pr.retireReader(r) - } - // See comment in pkgReader.typIdx explaining how this happens. - if prev := *where; prev != nil { - return prev - } - - *where = typ - return typ -} - -func (r *reader) doTyp() (res types.Type) { - switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { - default: - errorf("unhandled type tag: %v", tag) - panic("unreachable") - - case pkgbits.TypeBasic: - return types.Typ[r.Len()] - - case pkgbits.TypeNamed: - obj, targs := r.obj() - name := obj.(*types.TypeName) - if len(targs) != 0 { - t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) - return t - } - return name.Type() - - case pkgbits.TypeTypeParam: - return r.dict.tparams[r.Len()] - - case pkgbits.TypeArray: - len := int64(r.Uint64()) - return types.NewArray(r.typ(), len) - case pkgbits.TypeChan: - dir := types.ChanDir(r.Len()) - return types.NewChan(dir, r.typ()) - case pkgbits.TypeMap: - return types.NewMap(r.typ(), r.typ()) - case pkgbits.TypePointer: - return types.NewPointer(r.typ()) - case pkgbits.TypeSignature: - return r.signature(nil, nil, nil) - case pkgbits.TypeSlice: - return types.NewSlice(r.typ()) - case pkgbits.TypeStruct: - return r.structType() - case pkgbits.TypeInterface: - return r.interfaceType() - case pkgbits.TypeUnion: - return r.unionType() - } -} - -func (r *reader) structType() *types.Struct { - fields := make([]*types.Var, r.Len()) - var tags []string - for i := range fields { - pos := r.pos() - pkg, name := r.selector() - ftyp := r.typ() - tag := r.String() - embedded := r.Bool() - - fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) - if tag != "" { - for len(tags) < i { - tags = append(tags, "") - } - tags = append(tags, tag) - } - } - return types.NewStruct(fields, tags) -} - -func (r *reader) unionType() *types.Union { - terms := make([]*types.Term, r.Len()) - for i := range terms { - terms[i] = types.NewTerm(r.Bool(), r.typ()) - } - return types.NewUnion(terms) -} - -func (r *reader) interfaceType() *types.Interface { - methods := make([]*types.Func, r.Len()) - embeddeds := make([]types.Type, r.Len()) - implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() - - for i := range methods { - pos := r.pos() - pkg, name := r.selector() - mtyp := r.signature(nil, nil, nil) - methods[i] = types.NewFunc(pos, pkg, name, mtyp) - } - - for i := range embeddeds { - embeddeds[i] = r.typ() - } - - iface := types.NewInterfaceType(methods, embeddeds) - if implicit { - iface.MarkImplicit() - } - - // We need to call iface.Complete(), but if there are any embedded - // defined types, then we may not have set their underlying - // interface type yet. So we need to defer calling Complete until - // after we've called SetUnderlying everywhere. - // - // TODO(mdempsky): After CL 424876 lands, it should be safe to call - // iface.Complete() immediately. - r.p.ifaces = append(r.p.ifaces, iface) - - return iface -} - -func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { - r.Sync(pkgbits.SyncSignature) - - params := r.params() - results := r.params() - variadic := r.Bool() - - return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) -} - -func (r *reader) params() *types.Tuple { - r.Sync(pkgbits.SyncParams) - - params := make([]*types.Var, r.Len()) - for i := range params { - params[i] = r.param() - } - - return types.NewTuple(params...) -} - -func (r *reader) param() *types.Var { - r.Sync(pkgbits.SyncParam) - - pos := r.pos() - pkg, name := r.localIdent() - typ := r.typ() - - return types.NewParam(pos, pkg, name, typ) -} - -// @@@ Objects - -func (r *reader) obj() (types.Object, []types.Type) { - r.Sync(pkgbits.SyncObject) - - if r.Version().Has(pkgbits.DerivedFuncInstance) { - assert(!r.Bool()) - } - - pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - obj := pkgScope(pkg).Lookup(name) - - targs := make([]types.Type, r.Len()) - for i := range targs { - targs[i] = r.typ() - } - - return obj, targs -} - -func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { - - var objPkg *types.Package - var objName string - var tag pkgbits.CodeObj - { - rname := pr.tempReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) - - objPkg, objName = rname.qualifiedIdent() - assert(objName != "") - - tag = pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) - pr.retireReader(rname) - } - - if tag == pkgbits.ObjStub { - assert(objPkg == nil || objPkg == types.Unsafe) - return objPkg, objName - } - - // Ignore local types promoted to global scope (#55110). - if _, suffix := splitVargenSuffix(objName); suffix != "" { - return objPkg, objName - } - - if objPkg.Scope().Lookup(objName) == nil { - dict := pr.objDictIdx(idx) - - r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) - r.dict = dict - - declare := func(obj types.Object) { - objPkg.Scope().Insert(obj) - } - - switch tag { - default: - panic("weird") - - case pkgbits.ObjAlias: - pos := r.pos() - var tparams []*types.TypeParam - if r.Version().Has(pkgbits.AliasTypeParamNames) { - tparams = r.typeParamNames() - } - typ := r.typ() - declare(aliases.NewAlias(r.p.aliases, pos, objPkg, objName, typ, tparams)) - - case pkgbits.ObjConst: - pos := r.pos() - typ := r.typ() - val := r.Value() - declare(types.NewConst(pos, objPkg, objName, typ, val)) - - case pkgbits.ObjFunc: - pos := r.pos() - tparams := r.typeParamNames() - sig := r.signature(nil, nil, tparams) - declare(types.NewFunc(pos, objPkg, objName, sig)) - - case pkgbits.ObjType: - pos := r.pos() - - obj := types.NewTypeName(pos, objPkg, objName, nil) - named := types.NewNamed(obj, nil, nil) - declare(obj) - - named.SetTypeParams(r.typeParamNames()) - - setUnderlying := func(underlying types.Type) { - // If the underlying type is an interface, we need to - // duplicate its methods so we can replace the receiver - // parameter's type (#49906). - if iface, ok := types.Unalias(underlying).(*types.Interface); ok && iface.NumExplicitMethods() != 0 { - methods := make([]*types.Func, iface.NumExplicitMethods()) - for i := range methods { - fn := iface.ExplicitMethod(i) - sig := fn.Type().(*types.Signature) - - recv := types.NewVar(fn.Pos(), fn.Pkg(), "", named) - typesinternal.SetVarKind(recv, typesinternal.RecvVar) - methods[i] = types.NewFunc(fn.Pos(), fn.Pkg(), fn.Name(), types.NewSignatureType(recv, nil, nil, sig.Params(), sig.Results(), sig.Variadic())) - } - - embeds := make([]types.Type, iface.NumEmbeddeds()) - for i := range embeds { - embeds[i] = iface.EmbeddedType(i) - } - - newIface := types.NewInterfaceType(methods, embeds) - r.p.ifaces = append(r.p.ifaces, newIface) - underlying = newIface - } - - named.SetUnderlying(underlying) - } - - // Since go.dev/cl/455279, we can assume rhs.Underlying() will - // always be non-nil. However, to temporarily support users of - // older snapshot releases, we continue to fallback to the old - // behavior for now. - // - // TODO(mdempsky): Remove fallback code and simplify after - // allowing time for snapshot users to upgrade. - rhs := r.typ() - if underlying := rhs.Underlying(); underlying != nil { - setUnderlying(underlying) - } else { - pk := r.p - pk.laterFor(named, func() { - // First be sure that the rhs is initialized, if it needs to be initialized. - delete(pk.laterFors, named) // prevent cycles - if i, ok := pk.laterFors[rhs]; ok { - f := pk.laterFns[i] - pk.laterFns[i] = func() {} // function is running now, so replace it with a no-op - f() // initialize RHS - } - setUnderlying(rhs.Underlying()) - }) - } - - for i, n := 0, r.Len(); i < n; i++ { - named.AddMethod(r.method()) - } - - case pkgbits.ObjVar: - pos := r.pos() - typ := r.typ() - v := types.NewVar(pos, objPkg, objName, typ) - typesinternal.SetVarKind(v, typesinternal.PackageVar) - declare(v) - } - } - - return objPkg, objName -} - -func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict { - - var dict readerDict - - { - r := pr.tempReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) - if implicits := r.Len(); implicits != 0 { - errorf("unexpected object with %v implicit type parameter(s)", implicits) - } - - dict.bounds = make([]typeInfo, r.Len()) - for i := range dict.bounds { - dict.bounds[i] = r.typInfo() - } - - dict.derived = make([]derivedInfo, r.Len()) - dict.derivedTypes = make([]types.Type, len(dict.derived)) - for i := range dict.derived { - dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)} - if r.Version().Has(pkgbits.DerivedInfoNeeded) { - assert(!r.Bool()) - } - } - - pr.retireReader(r) - } - // function references follow, but reader doesn't need those - - return &dict -} - -func (r *reader) typeParamNames() []*types.TypeParam { - r.Sync(pkgbits.SyncTypeParamNames) - - // Note: This code assumes it only processes objects without - // implement type parameters. This is currently fine, because - // reader is only used to read in exported declarations, which are - // always package scoped. - - if len(r.dict.bounds) == 0 { - return nil - } - - // Careful: Type parameter lists may have cycles. To allow for this, - // we construct the type parameter list in two passes: first we - // create all the TypeNames and TypeParams, then we construct and - // set the bound type. - - r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) - for i := range r.dict.bounds { - pos := r.pos() - pkg, name := r.localIdent() - - tname := types.NewTypeName(pos, pkg, name, nil) - r.dict.tparams[i] = types.NewTypeParam(tname, nil) - } - - typs := make([]types.Type, len(r.dict.bounds)) - for i, bound := range r.dict.bounds { - typs[i] = r.p.typIdx(bound, r.dict) - } - - // TODO(mdempsky): This is subtle, elaborate further. - // - // We have to save tparams outside of the closure, because - // typeParamNames() can be called multiple times with the same - // dictionary instance. - // - // Also, this needs to happen later to make sure SetUnderlying has - // been called. - // - // TODO(mdempsky): Is it safe to have a single "later" slice or do - // we need to have multiple passes? See comments on CL 386002 and - // go.dev/issue/52104. - tparams := r.dict.tparams - r.p.later(func() { - for i, typ := range typs { - tparams[i].SetConstraint(typ) - } - }) - - return r.dict.tparams -} - -func (r *reader) method() *types.Func { - r.Sync(pkgbits.SyncMethod) - pos := r.pos() - pkg, name := r.selector() - - rparams := r.typeParamNames() - sig := r.signature(r.param(), rparams, nil) - - _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. - return types.NewFunc(pos, pkg, name, sig) -} - -func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } -func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } -func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } - -func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { - r.Sync(marker) - return r.pkg(), r.String() -} - -// pkgScope returns pkg.Scope(). -// If pkg is nil, it returns types.Universe instead. -// -// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. -func pkgScope(pkg *types.Package) *types.Scope { - if pkg != nil { - return pkg.Scope() - } - return types.Universe -} - -// See cmd/compile/internal/types.SplitVargenSuffix. -func splitVargenSuffix(name string) (base, suffix string) { - i := len(name) - for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { - i-- - } - const dot = "·" - if i >= len(dot) && name[i-len(dot):i] == dot { - i -= len(dot) - return name[:i], name[i:] - } - return name, "" -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go deleted file mode 100644 index 5872120..0000000 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ /dev/null @@ -1,567 +0,0 @@ -// 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 gocommand is a helper for calling the go command. -package gocommand - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "fmt" - "io" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "runtime" - "strconv" - "strings" - "sync" - "time" - - "golang.org/x/tools/internal/event" - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// A Runner will run go command invocations and serialize -// them if it sees a concurrency error. -type Runner struct { - // once guards the runner initialization. - once sync.Once - - // inFlight tracks available workers. - inFlight chan struct{} - - // serialized guards the ability to run a go command serially, - // to avoid deadlocks when claiming workers. - serialized chan struct{} -} - -const maxInFlight = 10 - -func (runner *Runner) initialize() { - runner.once.Do(func() { - runner.inFlight = make(chan struct{}, maxInFlight) - runner.serialized = make(chan struct{}, 1) - }) -} - -// 1.13: go: updates to go.mod needed, but contents have changed -// 1.14: go: updating go.mod: existing contents have changed since last read -var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) - -// event keys for go command invocations -var ( - verb = keys.NewString("verb", "go command verb") - directory = keys.NewString("directory", "") -) - -func invLabels(inv Invocation) []label.Label { - return []label.Label{verb.Of(inv.Verb), directory.Of(inv.WorkingDir)} -} - -// Run is a convenience wrapper around RunRaw. -// It returns only stdout and a "friendly" error. -func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, error) { - ctx, done := event.Start(ctx, "gocommand.Runner.Run", invLabels(inv)...) - defer done() - - stdout, _, friendly, _ := runner.RunRaw(ctx, inv) - return stdout, friendly -} - -// RunPiped runs the invocation serially, always waiting for any concurrent -// invocations to complete first. -func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) error { - ctx, done := event.Start(ctx, "gocommand.Runner.RunPiped", invLabels(inv)...) - defer done() - - _, err := runner.runPiped(ctx, inv, stdout, stderr) - return err -} - -// RunRaw runs the invocation, serializing requests only if they fight over -// go.mod changes. -// Postcondition: both error results have same nilness. -func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { - ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) - defer done() - // Make sure the runner is always initialized. - runner.initialize() - - // First, try to run the go command concurrently. - stdout, stderr, friendlyErr, err := runner.runConcurrent(ctx, inv) - - // If we encounter a load concurrency error, we need to retry serially. - if friendlyErr != nil && modConcurrencyError.MatchString(friendlyErr.Error()) { - event.Error(ctx, "Load concurrency error, will retry serially", err) - - // Run serially by calling runPiped. - stdout.Reset() - stderr.Reset() - friendlyErr, err = runner.runPiped(ctx, inv, stdout, stderr) - } - - return stdout, stderr, friendlyErr, err -} - -// Postcondition: both error results have same nilness. -func (runner *Runner) runConcurrent(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { - // Wait for 1 worker to become available. - select { - case <-ctx.Done(): - return nil, nil, ctx.Err(), ctx.Err() - case runner.inFlight <- struct{}{}: - defer func() { <-runner.inFlight }() - } - - stdout, stderr := &bytes.Buffer{}, &bytes.Buffer{} - friendlyErr, err := inv.runWithFriendlyError(ctx, stdout, stderr) - return stdout, stderr, friendlyErr, err -} - -// Postcondition: both error results have same nilness. -func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) (error, error) { - // Make sure the runner is always initialized. - runner.initialize() - - // Acquire the serialization lock. This avoids deadlocks between two - // runPiped commands. - select { - case <-ctx.Done(): - return ctx.Err(), ctx.Err() - case runner.serialized <- struct{}{}: - defer func() { <-runner.serialized }() - } - - // Wait for all in-progress go commands to return before proceeding, - // to avoid load concurrency errors. - for range maxInFlight { - select { - case <-ctx.Done(): - return ctx.Err(), ctx.Err() - case runner.inFlight <- struct{}{}: - // Make sure we always "return" any workers we took. - defer func() { <-runner.inFlight }() - } - } - - return inv.runWithFriendlyError(ctx, stdout, stderr) -} - -// An Invocation represents a call to the go command. -type Invocation struct { - Verb string - Args []string - BuildFlags []string - - // If ModFlag is set, the go command is invoked with -mod=ModFlag. - // TODO(rfindley): remove, in favor of Args. - ModFlag string - - // If ModFile is set, the go command is invoked with -modfile=ModFile. - // TODO(rfindley): remove, in favor of Args. - ModFile string - - // Overlay is the name of the JSON overlay file that describes - // unsaved editor buffers; see [WriteOverlays]. - // If set, the go command is invoked with -overlay=Overlay. - // TODO(rfindley): remove, in favor of Args. - Overlay string - - // If CleanEnv is set, the invocation will run only with the environment - // in Env, not starting with os.Environ. - CleanEnv bool - Env []string - WorkingDir string - Logf func(format string, args ...any) -} - -// Postcondition: both error results have same nilness. -func (i *Invocation) runWithFriendlyError(ctx context.Context, stdout, stderr io.Writer) (friendlyError error, rawError error) { - rawError = i.run(ctx, stdout, stderr) - if rawError != nil { - friendlyError = rawError - // Check for 'go' executable not being found. - if ee, ok := rawError.(*exec.Error); ok && ee.Err == exec.ErrNotFound { - friendlyError = fmt.Errorf("go command required, not found: %v", ee) - } - if ctx.Err() != nil { - friendlyError = ctx.Err() - } - friendlyError = fmt.Errorf("err: %v: stderr: %s", friendlyError, stderr) - } - return -} - -// logf logs if i.Logf is non-nil. -func (i *Invocation) logf(format string, args ...any) { - if i.Logf != nil { - i.Logf(format, args...) - } -} - -func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { - goArgs := []string{i.Verb} - - appendModFile := func() { - if i.ModFile != "" { - goArgs = append(goArgs, "-modfile="+i.ModFile) - } - } - appendModFlag := func() { - if i.ModFlag != "" { - goArgs = append(goArgs, "-mod="+i.ModFlag) - } - } - appendOverlayFlag := func() { - if i.Overlay != "" { - goArgs = append(goArgs, "-overlay="+i.Overlay) - } - } - - switch i.Verb { - case "env", "version": - goArgs = append(goArgs, i.Args...) - case "mod": - // mod needs the sub-verb before flags. - goArgs = append(goArgs, i.Args[0]) - appendModFile() - goArgs = append(goArgs, i.Args[1:]...) - case "get": - goArgs = append(goArgs, i.BuildFlags...) - appendModFile() - goArgs = append(goArgs, i.Args...) - - default: // notably list and build. - goArgs = append(goArgs, i.BuildFlags...) - appendModFile() - appendModFlag() - appendOverlayFlag() - goArgs = append(goArgs, i.Args...) - } - cmd := exec.Command("go", goArgs...) - cmd.Stdout = stdout - cmd.Stderr = stderr - - // https://go.dev/issue/59541: don't wait forever copying stderr - // after the command has exited. - // After CL 484741 we copy stdout manually, so we we'll stop reading that as - // soon as ctx is done. However, we also don't want to wait around forever - // for stderr. Give a much-longer-than-reasonable delay and then assume that - // something has wedged in the kernel or runtime. - cmd.WaitDelay = 30 * time.Second - - // The cwd gets resolved to the real path. On Darwin, where - // /tmp is a symlink, this breaks anything that expects the - // working directory to keep the original path, including the - // go command when dealing with modules. - // - // os.Getwd has a special feature where if the cwd and the PWD - // are the same node then it trusts the PWD, so by setting it - // in the env for the child process we fix up all the paths - // returned by the go command. - if !i.CleanEnv { - cmd.Env = os.Environ() - } - cmd.Env = append(cmd.Env, i.Env...) - if i.WorkingDir != "" { - cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) - cmd.Dir = i.WorkingDir - } - - debugStr := cmdDebugStr(cmd) - i.logf("starting %v", debugStr) - start := time.Now() - defer func() { - i.logf("%s for %v", time.Since(start), debugStr) - }() - - return runCmdContext(ctx, cmd) -} - -// DebugHangingGoCommands may be set by tests to enable additional -// instrumentation (including panics) for debugging hanging Go commands. -// -// See golang/go#54461 for details. -var DebugHangingGoCommands = false - -// runCmdContext is like exec.CommandContext except it sends os.Interrupt -// before os.Kill. -func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { - // If cmd.Stdout is not an *os.File, the exec package will create a pipe and - // copy it to the Writer in a goroutine until the process has finished and - // either the pipe reaches EOF or command's WaitDelay expires. - // - // However, the output from 'go list' can be quite large, and we don't want to - // keep reading (and allocating buffers) if we've already decided we don't - // care about the output. We don't want to wait for the process to finish, and - // we don't wait to wait for the WaitDelay to expire either. - // - // Instead, if cmd.Stdout requires a copying goroutine we explicitly replace - // it with a pipe (which is an *os.File), which we can close in order to stop - // copying output as soon as we realize we don't care about it. - var stdoutW *os.File - if cmd.Stdout != nil { - if _, ok := cmd.Stdout.(*os.File); !ok { - var stdoutR *os.File - stdoutR, stdoutW, err = os.Pipe() - if err != nil { - return err - } - prevStdout := cmd.Stdout - cmd.Stdout = stdoutW - - stdoutErr := make(chan error, 1) - go func() { - _, err := io.Copy(prevStdout, stdoutR) - if err != nil { - err = fmt.Errorf("copying stdout: %w", err) - } - stdoutErr <- err - }() - defer func() { - // We started a goroutine to copy a stdout pipe. - // Wait for it to finish, or terminate it if need be. - var err2 error - select { - case err2 = <-stdoutErr: - stdoutR.Close() - case <-ctx.Done(): - stdoutR.Close() - // Per https://pkg.go.dev/os#File.Close, the call to stdoutR.Close - // should cause the Read call in io.Copy to unblock and return - // immediately, but we still need to receive from stdoutErr to confirm - // that it has happened. - <-stdoutErr - err2 = ctx.Err() - } - if err == nil { - err = err2 - } - }() - - // Per https://pkg.go.dev/os/exec#Cmd, “If Stdout and Stderr are the - // same writer, and have a type that can be compared with ==, at most - // one goroutine at a time will call Write.” - // - // Since we're starting a goroutine that writes to cmd.Stdout, we must - // also update cmd.Stderr so that it still holds. - func() { - defer func() { recover() }() - if cmd.Stderr == prevStdout { - cmd.Stderr = cmd.Stdout - } - }() - } - } - - startTime := time.Now() - err = cmd.Start() - if stdoutW != nil { - // The child process has inherited the pipe file, - // so close the copy held in this process. - stdoutW.Close() - stdoutW = nil - } - if err != nil { - return err - } - - resChan := make(chan error, 1) - go func() { - resChan <- cmd.Wait() - }() - - // If we're interested in debugging hanging Go commands, stop waiting after a - // minute and panic with interesting information. - debug := DebugHangingGoCommands - if debug { - timer := time.NewTimer(1 * time.Minute) - defer timer.Stop() - select { - case err := <-resChan: - return err - case <-timer.C: - // HandleHangingGoCommand terminates this process. - // Pass off resChan in case we can collect the command error. - handleHangingGoCommand(startTime, cmd, resChan) - case <-ctx.Done(): - } - } else { - select { - case err := <-resChan: - return err - case <-ctx.Done(): - } - } - - // Cancelled. Interrupt and see if it ends voluntarily. - if err := cmd.Process.Signal(os.Interrupt); err == nil { - // (We used to wait only 1s but this proved - // fragile on loaded builder machines.) - timer := time.NewTimer(5 * time.Second) - defer timer.Stop() - select { - case err := <-resChan: - return err - case <-timer.C: - } - } - - // Didn't shut down in response to interrupt. Kill it hard. - if err := cmd.Process.Kill(); err != nil && !errors.Is(err, os.ErrProcessDone) && debug { - log.Printf("error killing the Go command: %v", err) - } - - return <-resChan -} - -// handleHangingGoCommand outputs debugging information to help diagnose the -// cause of a hanging Go command, and then exits with log.Fatalf. -func handleHangingGoCommand(start time.Time, cmd *exec.Cmd, resChan chan error) { - switch runtime.GOOS { - case "linux", "darwin", "freebsd", "netbsd", "openbsd": - fmt.Fprintln(os.Stderr, `DETECTED A HANGING GO COMMAND - - The gopls test runner has detected a hanging go command. In order to debug - this, the output of ps and lsof/fstat is printed below. - - See golang/go#54461 for more details.`) - - fmt.Fprintln(os.Stderr, "\nps axo ppid,pid,command:") - fmt.Fprintln(os.Stderr, "-------------------------") - psCmd := exec.Command("ps", "axo", "ppid,pid,command") - psCmd.Stdout = os.Stderr - psCmd.Stderr = os.Stderr - if err := psCmd.Run(); err != nil { - log.Printf("Handling hanging Go command: running ps: %v", err) - } - - listFiles := "lsof" - if runtime.GOOS == "freebsd" || runtime.GOOS == "netbsd" { - listFiles = "fstat" - } - - fmt.Fprintln(os.Stderr, "\n"+listFiles+":") - fmt.Fprintln(os.Stderr, "-----") - listFilesCmd := exec.Command(listFiles) - listFilesCmd.Stdout = os.Stderr - listFilesCmd.Stderr = os.Stderr - if err := listFilesCmd.Run(); err != nil { - log.Printf("Handling hanging Go command: running %s: %v", listFiles, err) - } - // Try to extract information about the slow go process by issuing a SIGQUIT. - if err := cmd.Process.Signal(sigStuckProcess); err == nil { - select { - case err := <-resChan: - stderr := "not a bytes.Buffer" - if buf, _ := cmd.Stderr.(*bytes.Buffer); buf != nil { - stderr = buf.String() - } - log.Printf("Quit hanging go command:\n\terr:%v\n\tstderr:\n%v\n\n", err, stderr) - case <-time.After(5 * time.Second): - } - } else { - log.Printf("Sending signal %d to hanging go command: %v", sigStuckProcess, err) - } - } - log.Fatalf("detected hanging go command (golang/go#54461); waited %s\n\tcommand:%s\n\tpid:%d", time.Since(start), cmd, cmd.Process.Pid) -} - -func cmdDebugStr(cmd *exec.Cmd) string { - env := make(map[string]string) - for _, kv := range cmd.Env { - split := strings.SplitN(kv, "=", 2) - if len(split) == 2 { - k, v := split[0], split[1] - env[k] = v - } - } - - var args []string - for _, arg := range cmd.Args { - quoted := strconv.Quote(arg) - if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { - args = append(args, quoted) - } else { - args = append(args, arg) - } - } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) -} - -// WriteOverlays writes each value in the overlay (see the Overlay -// field of go/packages.Config) to a temporary file and returns the name -// of a JSON file describing the mapping that is suitable for the "go -// list -overlay" flag. -// -// On success, the caller must call the cleanup function exactly once -// when the files are no longer needed. -func WriteOverlays(overlay map[string][]byte) (filename string, cleanup func(), err error) { - // Do nothing if there are no overlays in the config. - if len(overlay) == 0 { - return "", func() {}, nil - } - - dir, err := os.MkdirTemp("", "gocommand-*") - if err != nil { - return "", nil, err - } - - // The caller must clean up this directory, - // unless this function returns an error. - // (The cleanup operand of each return - // statement below is ignored.) - defer func() { - cleanup = func() { - os.RemoveAll(dir) - } - if err != nil { - cleanup() - cleanup = nil - } - }() - - // Write each map entry to a temporary file. - overlays := make(map[string]string) - for k, v := range overlay { - // Use a unique basename for each file (001-foo.go), - // to avoid creating nested directories. - base := fmt.Sprintf("%d-%s", 1+len(overlays), filepath.Base(k)) - filename := filepath.Join(dir, base) - err := os.WriteFile(filename, v, 0666) - if err != nil { - return "", nil, err - } - overlays[k] = filename - } - - // Write the JSON overlay file that maps logical file names to temp files. - // - // OverlayJSON is the format overlay files are expected to be in. - // The Replace map maps from overlaid paths to replacement paths: - // the Go command will forward all reads trying to open - // each overlaid path to its replacement path, or consider the overlaid - // path not to exist if the replacement path is empty. - // - // From golang/go#39958. - type OverlayJSON struct { - Replace map[string]string `json:"replace,omitempty"` - } - b, err := json.Marshal(OverlayJSON{Replace: overlays}) - if err != nil { - return "", nil, err - } - filename = filepath.Join(dir, "overlay.json") - if err := os.WriteFile(filename, b, 0666); err != nil { - return "", nil, err - } - - return filename, nil, nil -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go b/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go deleted file mode 100644 index 469c648..0000000 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !unix - -package gocommand - -import "os" - -// sigStuckProcess is the signal to send to kill a hanging subprocess. -// On Unix we send SIGQUIT, but on non-Unix we only have os.Kill. -var sigStuckProcess = os.Kill diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go b/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go deleted file mode 100644 index 169d37c..0000000 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build unix - -package gocommand - -import "syscall" - -// Sigstuckprocess is the signal to send to kill a hanging subprocess. -// Send SIGQUIT to get a stack trace. -var sigStuckProcess = syscall.SIGQUIT diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go deleted file mode 100644 index e38d1fb..0000000 --- a/vendor/golang.org/x/tools/internal/gocommand/vendor.go +++ /dev/null @@ -1,163 +0,0 @@ -// 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 gocommand - -import ( - "bytes" - "context" - "fmt" - "os" - "path/filepath" - "regexp" - "strings" - "time" - - "golang.org/x/mod/semver" -) - -// ModuleJSON holds information about a module. -type ModuleJSON struct { - Path string // module path - Version string // module version - Versions []string // available module versions (with -versions) - Replace *ModuleJSON // replaced by this module - Time *time.Time // time version was created - Update *ModuleJSON // available update, if any (with -u) - Main bool // is this the main module? - Indirect bool // is this module only an indirect dependency of main module? - Dir string // directory holding files for this module, if any - GoMod string // path to go.mod file used when loading this module, if any - GoVersion string // go version used in module -} - -var modFlagRegexp = regexp.MustCompile(`-mod[ =](\w+)`) - -// VendorEnabled reports whether vendoring is enabled. It takes a *Runner to execute Go commands -// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, -// of which only Verb and Args are modified to run the appropriate Go command. -// Inspired by setDefaultBuildMod in modload/init.go -func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, *ModuleJSON, error) { - mainMod, go114, err := getMainModuleAnd114(ctx, inv, r) - if err != nil { - return false, nil, err - } - - // We check the GOFLAGS to see if there is anything overridden or not. - inv.Verb = "env" - inv.Args = []string{"GOFLAGS"} - stdout, err := r.Run(ctx, inv) - if err != nil { - return false, nil, err - } - goflags := string(bytes.TrimSpace(stdout.Bytes())) - matches := modFlagRegexp.FindStringSubmatch(goflags) - var modFlag string - if len(matches) != 0 { - modFlag = matches[1] - } - // Don't override an explicit '-mod=' argument. - if modFlag == "vendor" { - return true, mainMod, nil - } else if modFlag != "" { - return false, nil, nil - } - if mainMod == nil || !go114 { - return false, nil, nil - } - // Check 1.14's automatic vendor mode. - if fi, err := os.Stat(filepath.Join(mainMod.Dir, "vendor")); err == nil && fi.IsDir() { - if mainMod.GoVersion != "" && semver.Compare("v"+mainMod.GoVersion, "v1.14") >= 0 { - // The Go version is at least 1.14, and a vendor directory exists. - // Set -mod=vendor by default. - return true, mainMod, nil - } - } - return false, nil, nil -} - -// getMainModuleAnd114 gets one of the main modules' information and whether the -// go command in use is 1.14+. This is the information needed to figure out -// if vendoring should be enabled. -func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, bool, error) { - const format = `{{.Path}} -{{.Dir}} -{{.GoMod}} -{{.GoVersion}} -{{range context.ReleaseTags}}{{if eq . "go1.14"}}{{.}}{{end}}{{end}} -` - inv.Verb = "list" - inv.Args = []string{"-m", "-f", format} - stdout, err := r.Run(ctx, inv) - if err != nil { - return nil, false, err - } - - lines := strings.Split(stdout.String(), "\n") - if len(lines) < 5 { - return nil, false, fmt.Errorf("unexpected stdout: %q", stdout.String()) - } - mod := &ModuleJSON{ - Path: lines[0], - Dir: lines[1], - GoMod: lines[2], - GoVersion: lines[3], - Main: true, - } - return mod, lines[4] == "go1.14", nil -} - -// WorkspaceVendorEnabled reports whether workspace vendoring is enabled. It takes a *Runner to execute Go commands -// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, -// of which only Verb and Args are modified to run the appropriate Go command. -// Inspired by setDefaultBuildMod in modload/init.go -func WorkspaceVendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, []*ModuleJSON, error) { - inv.Verb = "env" - inv.Args = []string{"GOWORK"} - stdout, err := r.Run(ctx, inv) - if err != nil { - return false, nil, err - } - goWork := string(bytes.TrimSpace(stdout.Bytes())) - if fi, err := os.Stat(filepath.Join(filepath.Dir(goWork), "vendor")); err == nil && fi.IsDir() { - mainMods, err := getWorkspaceMainModules(ctx, inv, r) - if err != nil { - return false, nil, err - } - return true, mainMods, nil - } - return false, nil, nil -} - -// getWorkspaceMainModules gets the main modules' information. -// This is the information needed to figure out if vendoring should be enabled. -func getWorkspaceMainModules(ctx context.Context, inv Invocation, r *Runner) ([]*ModuleJSON, error) { - const format = `{{.Path}} -{{.Dir}} -{{.GoMod}} -{{.GoVersion}} -` - inv.Verb = "list" - inv.Args = []string{"-m", "-f", format} - stdout, err := r.Run(ctx, inv) - if err != nil { - return nil, err - } - - lines := strings.Split(strings.TrimSuffix(stdout.String(), "\n"), "\n") - if len(lines) < 4 { - return nil, fmt.Errorf("unexpected stdout: %q", stdout.String()) - } - mods := make([]*ModuleJSON, 0, len(lines)/4) - for i := 0; i < len(lines); i += 4 { - mods = append(mods, &ModuleJSON{ - Path: lines[i], - Dir: lines[i+1], - GoMod: lines[i+2], - GoVersion: lines[i+3], - Main: true, - }) - } - return mods, nil -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go deleted file mode 100644 index 446c584..0000000 --- a/vendor/golang.org/x/tools/internal/gocommand/version.go +++ /dev/null @@ -1,71 +0,0 @@ -// 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 gocommand - -import ( - "context" - "fmt" - "regexp" - "strings" -) - -// GoVersion reports the minor version number of the highest release -// tag built into the go command on the PATH. -// -// Note that this may be higher than the version of the go tool used -// to build this application, and thus the versions of the standard -// go/{scanner,parser,ast,types} packages that are linked into it. -// In that case, callers should either downgrade to the version of -// go used to build the application, or report an error that the -// application is too old to use the go command on the PATH. -func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { - inv.Verb = "list" - inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`, `--`, `unsafe`} - inv.BuildFlags = nil // This is not a build command. - inv.ModFlag = "" - inv.ModFile = "" - inv.Env = append(inv.Env[:len(inv.Env):len(inv.Env)], "GO111MODULE=off") - - stdoutBytes, err := r.Run(ctx, inv) - if err != nil { - return 0, err - } - stdout := stdoutBytes.String() - if len(stdout) < 3 { - return 0, fmt.Errorf("bad ReleaseTags output: %q", stdout) - } - // Split up "[go1.1 go1.15]" and return highest go1.X value. - tags := strings.Fields(stdout[1 : len(stdout)-2]) - for i := len(tags) - 1; i >= 0; i-- { - var version int - if _, err := fmt.Sscanf(tags[i], "go1.%d", &version); err != nil { - continue - } - return version, nil - } - return 0, fmt.Errorf("no parseable ReleaseTags in %v", tags) -} - -// GoVersionOutput returns the complete output of the go version command. -func GoVersionOutput(ctx context.Context, inv Invocation, r *Runner) (string, error) { - inv.Verb = "version" - goVersion, err := r.Run(ctx, inv) - if err != nil { - return "", err - } - return goVersion.String(), nil -} - -// ParseGoVersionOutput extracts the Go version string -// from the output of the "go version" command. -// Given an unrecognized form, it returns an empty string. -func ParseGoVersionOutput(data string) string { - re := regexp.MustCompile(`^go version (go\S+|devel \S+)`) - m := re.FindStringSubmatch(data) - if len(m) != 2 { - return "" // unrecognized version - } - return m[1] -} diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go deleted file mode 100644 index 5252144..0000000 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ /dev/null @@ -1,336 +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. - -// Package gopathwalk is like filepath.Walk but specialized for finding Go -// packages, particularly in $GOPATH and $GOROOT. -package gopathwalk - -import ( - "bufio" - "bytes" - "io" - "io/fs" - "os" - "path/filepath" - "runtime" - "slices" - "strings" - "sync" - "time" -) - -// Options controls the behavior of a Walk call. -type Options struct { - // If Logf is non-nil, debug logging is enabled through this function. - Logf func(format string, args ...any) - - // Search module caches. Also disables legacy goimports ignore rules. - ModulesEnabled bool - - // Maximum number of concurrent calls to user-provided callbacks, - // or 0 for GOMAXPROCS. - Concurrency int -} - -// RootType indicates the type of a Root. -type RootType int - -const ( - RootUnknown RootType = iota - RootGOROOT - RootGOPATH - RootCurrentModule - RootModuleCache - RootOther -) - -// A Root is a starting point for a Walk. -type Root struct { - Path string - Type RootType -} - -// Walk concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. -// -// For each package found, add will be called with the absolute -// paths of the containing source directory and the package directory. -// -// Unlike filepath.WalkDir, Walk follows symbolic links -// (while guarding against cycles). -func Walk(roots []Root, add func(root Root, dir string), opts Options) { - WalkSkip(roots, add, func(Root, string) bool { return false }, opts) -} - -// WalkSkip concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to -// find packages. -// -// For each package found, add will be called with the absolute -// paths of the containing source directory and the package directory. -// For each directory that will be scanned, skip will be called -// with the absolute paths of the containing source directory and the directory. -// If skip returns false on a directory it will be processed. -// -// Unlike filepath.WalkDir, WalkSkip follows symbolic links -// (while guarding against cycles). -func WalkSkip(roots []Root, add func(root Root, dir string), skip func(root Root, dir string) bool, opts Options) { - for _, root := range roots { - walkDir(root, add, skip, opts) - } -} - -// walkDir creates a walker and starts fastwalk with this walker. -func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) bool, opts Options) { - if opts.Logf == nil { - opts.Logf = func(format string, args ...any) {} - } - if _, err := os.Stat(root.Path); os.IsNotExist(err) { - opts.Logf("skipping nonexistent directory: %v", root.Path) - return - } - start := time.Now() - opts.Logf("scanning %s", root.Path) - - concurrency := opts.Concurrency - if concurrency == 0 { - // The walk be either CPU-bound or I/O-bound, depending on what the - // caller-supplied add function does and the details of the user's platform - // and machine. Rather than trying to fine-tune the concurrency level for a - // specific environment, we default to GOMAXPROCS: it is likely to be a good - // choice for a CPU-bound add function, and if it is instead I/O-bound, then - // dealing with I/O saturation is arguably the job of the kernel and/or - // runtime. (Oversaturating I/O seems unlikely to harm performance as badly - // as failing to saturate would.) - concurrency = runtime.GOMAXPROCS(0) - } - w := &walker{ - root: root, - add: add, - skip: skip, - opts: opts, - sem: make(chan struct{}, concurrency), - } - w.init() - - w.sem <- struct{}{} - path := root.Path - if path == "" { - path = "." - } - if fi, err := os.Lstat(path); err == nil { - w.walk(path, nil, fs.FileInfoToDirEntry(fi)) - } else { - w.opts.Logf("scanning directory %v: %v", root.Path, err) - } - <-w.sem - w.walking.Wait() - - opts.Logf("scanned %s in %v", root.Path, time.Since(start)) -} - -// walker is the callback for fastwalk.Walk. -type walker struct { - root Root // The source directory to scan. - add func(Root, string) // The callback that will be invoked for every possible Go package dir. - skip func(Root, string) bool // The callback that will be invoked for every dir. dir is skipped if it returns true. - opts Options // Options passed to Walk by the user. - - walking sync.WaitGroup - sem chan struct{} // Channel of semaphore tokens; send to acquire, receive to release. - ignoredDirs []string - - added sync.Map // map[string]bool -} - -// A symlinkList is a linked list of os.FileInfos for parent directories -// reached via symlinks. -type symlinkList struct { - info os.FileInfo - prev *symlinkList -} - -// init initializes the walker based on its Options -func (w *walker) init() { - var ignoredPaths []string - if w.root.Type == RootModuleCache { - ignoredPaths = []string{"cache"} - } - if !w.opts.ModulesEnabled && w.root.Type == RootGOPATH { - ignoredPaths = w.getIgnoredDirs(w.root.Path) - ignoredPaths = append(ignoredPaths, "v", "mod") - } - - for _, p := range ignoredPaths { - full := filepath.Join(w.root.Path, p) - w.ignoredDirs = append(w.ignoredDirs, full) - w.opts.Logf("Directory added to ignore list: %s", full) - } -} - -// getIgnoredDirs reads an optional config file at <path>/.goimportsignore -// of relative directories to ignore when scanning for go files. -// The provided path is one of the $GOPATH entries with "src" appended. -func (w *walker) getIgnoredDirs(path string) []string { - file := filepath.Join(path, ".goimportsignore") - slurp, err := os.ReadFile(file) - if err != nil { - w.opts.Logf("%v", err) - } else { - w.opts.Logf("Read %s", file) - } - if err != nil { - return nil - } - - var ignoredDirs []string - bs := bufio.NewScanner(bytes.NewReader(slurp)) - for bs.Scan() { - line := strings.TrimSpace(bs.Text()) - if line == "" || strings.HasPrefix(line, "#") { - continue - } - ignoredDirs = append(ignoredDirs, line) - } - return ignoredDirs -} - -// shouldSkipDir reports whether the file should be skipped or not. -func (w *walker) shouldSkipDir(dir string) bool { - if slices.Contains(w.ignoredDirs, dir) { - return true - } - if w.skip != nil { - // Check with the user specified callback. - return w.skip(w.root, dir) - } - return false -} - -// walk walks through the given path. -// -// Errors are logged if w.opts.Logf is non-nil, but otherwise ignored. -func (w *walker) walk(path string, pathSymlinks *symlinkList, d fs.DirEntry) { - if d.Type()&os.ModeSymlink != 0 { - // Walk the symlink's target rather than the symlink itself. - // - // (Note that os.Stat, unlike the lower-lever os.Readlink, - // follows arbitrarily many layers of symlinks, so it will eventually - // reach either a non-symlink or a nonexistent target.) - // - // TODO(bcmills): 'go list all' itself ignores symlinks within GOROOT/src - // and GOPATH/src. Do we really need to traverse them here? If so, why? - - fi, err := os.Stat(path) - if err != nil { - w.opts.Logf("%v", err) - return - } - - // Avoid walking symlink cycles: if we have already followed a symlink to - // this directory as a parent of itself, don't follow it again. - // - // This doesn't catch the first time through a cycle, but it also minimizes - // the number of extra stat calls we make if we *don't* encounter a cycle. - // Since we don't actually expect to encounter symlink cycles in practice, - // this seems like the right tradeoff. - for parent := pathSymlinks; parent != nil; parent = parent.prev { - if os.SameFile(fi, parent.info) { - return - } - } - - pathSymlinks = &symlinkList{ - info: fi, - prev: pathSymlinks, - } - d = fs.FileInfoToDirEntry(fi) - } - - if d.Type().IsRegular() { - if !strings.HasSuffix(path, ".go") { - return - } - - dir := filepath.Dir(path) - if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) { - // Doesn't make sense to have regular files - // directly in your $GOPATH/src or $GOROOT/src. - // - // TODO(bcmills): there are many levels of directory within - // RootModuleCache where this also wouldn't make sense, - // Can we generalize this to any directory without a corresponding - // import path? - return - } - - if _, dup := w.added.LoadOrStore(dir, true); !dup { - w.add(w.root, dir) - } - } - - if !d.IsDir() { - return - } - - base := filepath.Base(path) - if base == "" || base[0] == '.' || base[0] == '_' || - base == "testdata" || - (w.root.Type == RootGOROOT && w.opts.ModulesEnabled && base == "vendor") || - (!w.opts.ModulesEnabled && base == "node_modules") || - w.shouldSkipDir(path) { - return - } - - // Read the directory and walk its entries. - - f, err := os.Open(path) - if err != nil { - w.opts.Logf("%v", err) - return - } - defer f.Close() - - for { - // We impose an arbitrary limit on the number of ReadDir results per - // directory to limit the amount of memory consumed for stale or upcoming - // directory entries. The limit trades off CPU (number of syscalls to read - // the whole directory) against RAM (reachable directory entries other than - // the one currently being processed). - // - // Since we process the directories recursively, we will end up maintaining - // a slice of entries for each level of the directory tree. - // (Compare https://go.dev/issue/36197.) - ents, err := f.ReadDir(1024) - if err != nil { - if err != io.EOF { - w.opts.Logf("%v", err) - } - break - } - - for _, d := range ents { - nextPath := filepath.Join(path, d.Name()) - if d.IsDir() { - select { - case w.sem <- struct{}{}: - // Got a new semaphore token, so we can traverse the directory concurrently. - d := d - w.walking.Add(1) - go func() { - defer func() { - <-w.sem - w.walking.Done() - }() - w.walk(nextPath, pathSymlinks, d) - }() - continue - - default: - // No tokens available, so traverse serially. - } - } - - w.walk(nextPath, pathSymlinks, d) - } - } -} diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go deleted file mode 100644 index 50b6ca5..0000000 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ /dev/null @@ -1,1898 +0,0 @@ -// Copyright 2013 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 imports - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "go/types" - "io/fs" - "io/ioutil" - "os" - "path" - "path/filepath" - "reflect" - "sort" - "strconv" - "strings" - "sync" - "unicode" - "unicode/utf8" - - "maps" - - "golang.org/x/tools/go/ast/astutil" - "golang.org/x/tools/internal/event" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/gopathwalk" - "golang.org/x/tools/internal/stdlib" -) - -// importToGroup is a list of functions which map from an import path to -// a group number. -var importToGroup = []func(localPrefix, importPath string) (num int, ok bool){ - func(localPrefix, importPath string) (num int, ok bool) { - if localPrefix == "" { - return - } - for _, p := range strings.Split(localPrefix, ",") { - if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath { - return 3, true - } - } - return - }, - func(_, importPath string) (num int, ok bool) { - if strings.HasPrefix(importPath, "appengine") { - return 2, true - } - return - }, - func(_, importPath string) (num int, ok bool) { - firstComponent := strings.Split(importPath, "/")[0] - if strings.Contains(firstComponent, ".") { - return 1, true - } - return - }, -} - -func importGroup(localPrefix, importPath string) int { - for _, fn := range importToGroup { - if n, ok := fn(localPrefix, importPath); ok { - return n - } - } - return 0 -} - -type ImportFixType int - -const ( - AddImport ImportFixType = iota - DeleteImport - SetImportName -) - -type ImportFix struct { - // StmtInfo represents the import statement this fix will add, remove, or change. - StmtInfo ImportInfo - // IdentName is the identifier that this fix will add or remove. - IdentName string - // FixType is the type of fix this is (AddImport, DeleteImport, SetImportName). - FixType ImportFixType - Relevance float64 // see pkg -} - -// parseOtherFiles parses all the Go files in srcDir except filename, including -// test files if filename looks like a test. -// -// It returns an error only if ctx is cancelled. Files with parse errors are -// ignored. -func parseOtherFiles(ctx context.Context, fset *token.FileSet, srcDir, filename string) ([]*ast.File, error) { - // This could use go/packages but it doesn't buy much, and it fails - // with https://golang.org/issue/26296 in LoadFiles mode in some cases. - considerTests := strings.HasSuffix(filename, "_test.go") - - fileBase := filepath.Base(filename) - packageFileInfos, err := os.ReadDir(srcDir) - if err != nil { - return nil, ctx.Err() - } - - var files []*ast.File - for _, fi := range packageFileInfos { - if ctx.Err() != nil { - return nil, ctx.Err() - } - if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") { - continue - } - if !considerTests && strings.HasSuffix(fi.Name(), "_test.go") { - continue - } - - f, err := parser.ParseFile(fset, filepath.Join(srcDir, fi.Name()), nil, parser.SkipObjectResolution) - if err != nil { - continue - } - - files = append(files, f) - } - - return files, ctx.Err() -} - -// addGlobals puts the names of package vars into the provided map. -func addGlobals(f *ast.File, globals map[string]bool) { - for _, decl := range f.Decls { - genDecl, ok := decl.(*ast.GenDecl) - if !ok { - continue - } - - for _, spec := range genDecl.Specs { - valueSpec, ok := spec.(*ast.ValueSpec) - if !ok { - continue - } - globals[valueSpec.Names[0].Name] = true - } - } -} - -// collectReferences builds a map of selector expressions, from -// left hand side (X) to a set of right hand sides (Sel). -func collectReferences(f *ast.File) References { - refs := References{} - - var visitor visitFn - visitor = func(node ast.Node) ast.Visitor { - if node == nil { - return visitor - } - switch v := node.(type) { - case *ast.SelectorExpr: - xident, ok := v.X.(*ast.Ident) - if !ok { - break - } - if xident.Obj != nil { - // If the parser can resolve it, it's not a package ref. - break - } - if !ast.IsExported(v.Sel.Name) { - // Whatever this is, it's not exported from a package. - break - } - pkgName := xident.Name - r := refs[pkgName] - if r == nil { - r = make(map[string]bool) - refs[pkgName] = r - } - r[v.Sel.Name] = true - } - return visitor - } - ast.Walk(visitor, f) - return refs -} - -// collectImports returns all the imports in f. -// Unnamed imports (., _) and "C" are ignored. -func collectImports(f *ast.File) []*ImportInfo { - var imports []*ImportInfo - for _, imp := range f.Imports { - var name string - if imp.Name != nil { - name = imp.Name.Name - } - if imp.Path.Value == `"C"` || name == "_" || name == "." { - continue - } - path := strings.Trim(imp.Path.Value, `"`) - imports = append(imports, &ImportInfo{ - Name: name, - ImportPath: path, - }) - } - return imports -} - -// findMissingImport searches pass's candidates for an import that provides -// pkg, containing all of syms. -func (p *pass) findMissingImport(pkg string, syms map[string]bool) *ImportInfo { - for _, candidate := range p.candidates { - pkgInfo, ok := p.knownPackages[candidate.ImportPath] - if !ok { - continue - } - if p.importIdentifier(candidate) != pkg { - continue - } - - allFound := true - for right := range syms { - if !pkgInfo.Exports[right] { - allFound = false - break - } - } - - if allFound { - return candidate - } - } - return nil -} - -// A pass contains all the inputs and state necessary to fix a file's imports. -// It can be modified in some ways during use; see comments below. -type pass struct { - // Inputs. These must be set before a call to load, and not modified after. - fset *token.FileSet // fset used to parse f and its siblings. - f *ast.File // the file being fixed. - srcDir string // the directory containing f. - logf func(string, ...any) - source Source // the environment to use for go commands, etc. - loadRealPackageNames bool // if true, load package names from disk rather than guessing them. - otherFiles []*ast.File // sibling files. - goroot string - - // Intermediate state, generated by load. - existingImports map[string][]*ImportInfo - allRefs References - missingRefs References - - // Inputs to fix. These can be augmented between successive fix calls. - lastTry bool // indicates that this is the last call and fix should clean up as best it can. - candidates []*ImportInfo // candidate imports in priority order. - knownPackages map[string]*PackageInfo // information about all known packages. -} - -// loadPackageNames saves the package names for everything referenced by imports. -func (p *pass) loadPackageNames(ctx context.Context, imports []*ImportInfo) error { - if p.logf != nil { - p.logf("loading package names for %v packages", len(imports)) - defer func() { - p.logf("done loading package names for %v packages", len(imports)) - }() - } - var unknown []string - for _, imp := range imports { - if _, ok := p.knownPackages[imp.ImportPath]; ok { - continue - } - unknown = append(unknown, imp.ImportPath) - } - - names, err := p.source.LoadPackageNames(ctx, p.srcDir, unknown) - if err != nil { - return err - } - - // TODO(rfindley): revisit this. Why do we need to store known packages with - // no exports? The inconsistent data is confusing. - for path, name := range names { - p.knownPackages[path] = &PackageInfo{ - Name: name, - Exports: map[string]bool{}, - } - } - return nil -} - -// WithoutVersion removes a trailing major version, if there is one. -func WithoutVersion(nm string) string { - if v := path.Base(nm); len(v) > 0 && v[0] == 'v' { - if _, err := strconv.Atoi(v[1:]); err == nil { - // this is, for instance, called with rand/v2 and returns rand - if len(v) < len(nm) { - xnm := nm[:len(nm)-len(v)-1] - return path.Base(xnm) - } - } - } - return nm -} - -// importIdentifier returns the identifier that imp will introduce. It will -// guess if the package name has not been loaded, e.g. because the source -// is not available. -func (p *pass) importIdentifier(imp *ImportInfo) string { - if imp.Name != "" { - return imp.Name - } - known := p.knownPackages[imp.ImportPath] - if known != nil && known.Name != "" { - return WithoutVersion(known.Name) - } - return ImportPathToAssumedName(imp.ImportPath) -} - -// load reads in everything necessary to run a pass, and reports whether the -// file already has all the imports it needs. It fills in p.missingRefs with the -// file's missing symbols, if any, or removes unused imports if not. -func (p *pass) load(ctx context.Context) ([]*ImportFix, bool) { - p.knownPackages = map[string]*PackageInfo{} - p.missingRefs = References{} - p.existingImports = map[string][]*ImportInfo{} - - // Load basic information about the file in question. - p.allRefs = collectReferences(p.f) - - // Load stuff from other files in the same package: - // global variables so we know they don't need resolving, and imports - // that we might want to mimic. - globals := map[string]bool{} - for _, otherFile := range p.otherFiles { - // Don't load globals from files that are in the same directory - // but a different package. Using them to suggest imports is OK. - if p.f.Name.Name == otherFile.Name.Name { - addGlobals(otherFile, globals) - } - p.candidates = append(p.candidates, collectImports(otherFile)...) - } - - // Resolve all the import paths we've seen to package names, and store - // f's imports by the identifier they introduce. - imports := collectImports(p.f) - if p.loadRealPackageNames { - err := p.loadPackageNames(ctx, append(imports, p.candidates...)) - if err != nil { - if p.logf != nil { - p.logf("loading package names: %v", err) - } - return nil, false - } - } - for _, imp := range imports { - p.existingImports[p.importIdentifier(imp)] = append(p.existingImports[p.importIdentifier(imp)], imp) - } - - // Find missing references. - for left, rights := range p.allRefs { - if globals[left] { - continue - } - _, ok := p.existingImports[left] - if !ok { - p.missingRefs[left] = rights - continue - } - } - if len(p.missingRefs) != 0 { - return nil, false - } - - return p.fix() -} - -// fix attempts to satisfy missing imports using p.candidates. If it finds -// everything, or if p.lastTry is true, it updates fixes to add the imports it found, -// delete anything unused, and update import names, and returns true. -func (p *pass) fix() ([]*ImportFix, bool) { - // Find missing imports. - var selected []*ImportInfo - for left, rights := range p.missingRefs { - if imp := p.findMissingImport(left, rights); imp != nil { - selected = append(selected, imp) - } - } - - if !p.lastTry && len(selected) != len(p.missingRefs) { - return nil, false - } - - // Found everything, or giving up. Add the new imports and remove any unused. - var fixes []*ImportFix - for _, identifierImports := range p.existingImports { - for _, imp := range identifierImports { - // We deliberately ignore globals here, because we can't be sure - // they're in the same package. People do things like put multiple - // main packages in the same directory, and we don't want to - // remove imports if they happen to have the same name as a var in - // a different package. - if _, ok := p.allRefs[p.importIdentifier(imp)]; !ok { - fixes = append(fixes, &ImportFix{ - StmtInfo: *imp, - IdentName: p.importIdentifier(imp), - FixType: DeleteImport, - }) - continue - } - - // An existing import may need to update its import name to be correct. - if name := p.importSpecName(imp); name != imp.Name { - fixes = append(fixes, &ImportFix{ - StmtInfo: ImportInfo{ - Name: name, - ImportPath: imp.ImportPath, - }, - IdentName: p.importIdentifier(imp), - FixType: SetImportName, - }) - } - } - } - // Collecting fixes involved map iteration, so sort for stability. See - // golang/go#59976. - sortFixes(fixes) - - // collect selected fixes in a separate slice, so that it can be sorted - // separately. Note that these fixes must occur after fixes to existing - // imports. TODO(rfindley): figure out why. - var selectedFixes []*ImportFix - for _, imp := range selected { - selectedFixes = append(selectedFixes, &ImportFix{ - StmtInfo: ImportInfo{ - Name: p.importSpecName(imp), - ImportPath: imp.ImportPath, - }, - IdentName: p.importIdentifier(imp), - FixType: AddImport, - }) - } - sortFixes(selectedFixes) - - return append(fixes, selectedFixes...), true -} - -func sortFixes(fixes []*ImportFix) { - sort.Slice(fixes, func(i, j int) bool { - fi, fj := fixes[i], fixes[j] - if fi.StmtInfo.ImportPath != fj.StmtInfo.ImportPath { - return fi.StmtInfo.ImportPath < fj.StmtInfo.ImportPath - } - if fi.StmtInfo.Name != fj.StmtInfo.Name { - return fi.StmtInfo.Name < fj.StmtInfo.Name - } - if fi.IdentName != fj.IdentName { - return fi.IdentName < fj.IdentName - } - return fi.FixType < fj.FixType - }) -} - -// importSpecName gets the import name of imp in the import spec. -// -// When the import identifier matches the assumed import name, the import name does -// not appear in the import spec. -func (p *pass) importSpecName(imp *ImportInfo) string { - // If we did not load the real package names, or the name is already set, - // we just return the existing name. - if !p.loadRealPackageNames || imp.Name != "" { - return imp.Name - } - - ident := p.importIdentifier(imp) - if ident == ImportPathToAssumedName(imp.ImportPath) { - return "" // ident not needed since the assumed and real names are the same. - } - return ident -} - -// apply will perform the fixes on f in order. -func apply(fset *token.FileSet, f *ast.File, fixes []*ImportFix) { - for _, fix := range fixes { - switch fix.FixType { - case DeleteImport: - astutil.DeleteNamedImport(fset, f, fix.StmtInfo.Name, fix.StmtInfo.ImportPath) - case AddImport: - astutil.AddNamedImport(fset, f, fix.StmtInfo.Name, fix.StmtInfo.ImportPath) - case SetImportName: - // Find the matching import path and change the name. - for _, spec := range f.Imports { - path := strings.Trim(spec.Path.Value, `"`) - if path == fix.StmtInfo.ImportPath { - spec.Name = &ast.Ident{ - Name: fix.StmtInfo.Name, - NamePos: spec.Pos(), - } - } - } - } - } -} - -// assumeSiblingImportsValid assumes that siblings' use of packages is valid, -// adding the exports they use. -func (p *pass) assumeSiblingImportsValid() { - for _, f := range p.otherFiles { - refs := collectReferences(f) - imports := collectImports(f) - importsByName := map[string]*ImportInfo{} - for _, imp := range imports { - importsByName[p.importIdentifier(imp)] = imp - } - for left, rights := range refs { - if imp, ok := importsByName[left]; ok { - if m, ok := stdlib.PackageSymbols[imp.ImportPath]; ok { - // We have the stdlib in memory; no need to guess. - rights = symbolNameSet(m) - } - // TODO(rfindley): we should set package name here, for consistency. - p.addCandidate(imp, &PackageInfo{ - // no name; we already know it. - Exports: rights, - }) - } - } - } -} - -// addCandidate adds a candidate import to p, and merges in the information -// in pkg. -func (p *pass) addCandidate(imp *ImportInfo, pkg *PackageInfo) { - p.candidates = append(p.candidates, imp) - if existing, ok := p.knownPackages[imp.ImportPath]; ok { - if existing.Name == "" { - existing.Name = pkg.Name - } - for export := range pkg.Exports { - existing.Exports[export] = true - } - } else { - p.knownPackages[imp.ImportPath] = pkg - } -} - -// fixImports adds and removes imports from f so that all its references are -// satisfied and there are no unused imports. -// -// This is declared as a variable rather than a function so goimports can -// easily be extended by adding a file with an init function. -// -// DO NOT REMOVE: used internally at Google. -var fixImports = fixImportsDefault - -func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { - fixes, err := getFixes(context.Background(), fset, f, filename, env) - if err != nil { - return err - } - apply(fset, f, fixes) - return nil -} - -// getFixes gets the import fixes that need to be made to f in order to fix the imports. -// It does not modify the ast. -func getFixes(ctx context.Context, fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) ([]*ImportFix, error) { - source, err := NewProcessEnvSource(env, filename, f.Name.Name) - if err != nil { - return nil, err - } - goEnv, err := env.goEnv() - if err != nil { - return nil, err - } - return getFixesWithSource(ctx, fset, f, filename, goEnv["GOROOT"], env.logf, source) -} - -func getFixesWithSource(ctx context.Context, fset *token.FileSet, f *ast.File, filename string, goroot string, logf func(string, ...any), source Source) ([]*ImportFix, error) { - // This logic is defensively duplicated from getFixes. - abs, err := filepath.Abs(filename) - if err != nil { - return nil, err - } - srcDir := filepath.Dir(abs) - - if logf != nil { - logf("fixImports(filename=%q), srcDir=%q ...", filename, srcDir) - } - - // First pass: looking only at f, and using the naive algorithm to - // derive package names from import paths, see if the file is already - // complete. We can't add any imports yet, because we don't know - // if missing references are actually package vars. - p := &pass{ - fset: fset, - f: f, - srcDir: srcDir, - logf: logf, - goroot: goroot, - source: source, - } - if fixes, done := p.load(ctx); done { - return fixes, nil - } - - otherFiles, err := parseOtherFiles(ctx, fset, srcDir, filename) - if err != nil { - return nil, err - } - - // Second pass: add information from other files in the same package, - // like their package vars and imports. - p.otherFiles = otherFiles - if fixes, done := p.load(ctx); done { - return fixes, nil - } - - // Now we can try adding imports from the stdlib. - p.assumeSiblingImportsValid() - addStdlibCandidates(p, p.missingRefs) - if fixes, done := p.fix(); done { - return fixes, nil - } - - // Third pass: get real package names where we had previously used - // the naive algorithm. - p = &pass{ - fset: fset, - f: f, - srcDir: srcDir, - logf: logf, - goroot: goroot, - source: p.source, // safe to reuse, as it's just a wrapper around env - } - p.loadRealPackageNames = true - p.otherFiles = otherFiles - if fixes, done := p.load(ctx); done { - return fixes, nil - } - - if err := addStdlibCandidates(p, p.missingRefs); err != nil { - return nil, err - } - p.assumeSiblingImportsValid() - if fixes, done := p.fix(); done { - return fixes, nil - } - - // Go look for candidates in $GOPATH, etc. We don't necessarily load - // the real exports of sibling imports, so keep assuming their contents. - if err := addExternalCandidates(ctx, p, p.missingRefs, filename); err != nil { - return nil, err - } - - p.lastTry = true - fixes, _ := p.fix() - return fixes, nil -} - -// MaxRelevance is the highest relevance, used for the standard library. -// Chosen arbitrarily to match pre-existing gopls code. -const MaxRelevance = 7.0 - -// getCandidatePkgs works with the passed callback to find all acceptable packages. -// It deduplicates by import path, and uses a cached stdlib rather than reading -// from disk. -func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filename, filePkg string, env *ProcessEnv) error { - notSelf := func(p *pkg) bool { - return p.packageName != filePkg || p.dir != filepath.Dir(filename) - } - goenv, err := env.goEnv() - if err != nil { - return err - } - - var mu sync.Mutex // to guard asynchronous access to dupCheck - dupCheck := map[string]struct{}{} - - // Start off with the standard library. - for importPath, symbols := range stdlib.PackageSymbols { - p := &pkg{ - dir: filepath.Join(goenv["GOROOT"], "src", importPath), - importPathShort: importPath, - packageName: path.Base(importPath), - relevance: MaxRelevance, - } - dupCheck[importPath] = struct{}{} - if notSelf(p) && wrappedCallback.dirFound(p) && wrappedCallback.packageNameLoaded(p) { - var exports []stdlib.Symbol - for _, sym := range symbols { - switch sym.Kind { - case stdlib.Func, stdlib.Type, stdlib.Var, stdlib.Const: - exports = append(exports, sym) - } - } - wrappedCallback.exportsLoaded(p, exports) - } - } - - scanFilter := &scanCallback{ - rootFound: func(root gopathwalk.Root) bool { - // Exclude goroot results -- getting them is relatively expensive, not cached, - // and generally redundant with the in-memory version. - return root.Type != gopathwalk.RootGOROOT && wrappedCallback.rootFound(root) - }, - dirFound: wrappedCallback.dirFound, - packageNameLoaded: func(pkg *pkg) bool { - mu.Lock() - defer mu.Unlock() - if _, ok := dupCheck[pkg.importPathShort]; ok { - return false - } - dupCheck[pkg.importPathShort] = struct{}{} - return notSelf(pkg) && wrappedCallback.packageNameLoaded(pkg) - }, - exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { - // If we're an x_test, load the package under test's test variant. - if strings.HasSuffix(filePkg, "_test") && pkg.dir == filepath.Dir(filename) { - var err error - _, exports, err = loadExportsFromFiles(ctx, env, pkg.dir, true) - if err != nil { - return - } - } - wrappedCallback.exportsLoaded(pkg, exports) - }, - } - resolver, err := env.GetResolver() - if err != nil { - return err - } - return resolver.scan(ctx, scanFilter) -} - -func ScoreImportPaths(ctx context.Context, env *ProcessEnv, paths []string) (map[string]float64, error) { - result := make(map[string]float64) - resolver, err := env.GetResolver() - if err != nil { - return nil, err - } - for _, path := range paths { - result[path] = resolver.scoreImportPath(ctx, path) - } - return result, nil -} - -func PrimeCache(ctx context.Context, resolver Resolver) error { - // Fully scan the disk for directories, but don't actually read any Go files. - callback := &scanCallback{ - rootFound: func(root gopathwalk.Root) bool { - // See getCandidatePkgs: walking GOROOT is apparently expensive and - // unnecessary. - return root.Type != gopathwalk.RootGOROOT - }, - dirFound: func(pkg *pkg) bool { - return false - }, - // packageNameLoaded and exportsLoaded must never be called. - } - - return resolver.scan(ctx, callback) -} - -func candidateImportName(pkg *pkg) string { - if ImportPathToAssumedName(pkg.importPathShort) != pkg.packageName { - return pkg.packageName - } - return "" -} - -// GetAllCandidates calls wrapped for each package whose name starts with -// searchPrefix, and can be imported from filename with the package name filePkg. -// -// Beware that the wrapped function may be called multiple times concurrently. -// TODO(adonovan): encapsulate the concurrency. -func GetAllCandidates(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { - callback := &scanCallback{ - rootFound: func(gopathwalk.Root) bool { - return true - }, - dirFound: func(pkg *pkg) bool { - if !CanUse(filename, pkg.dir) { - return false - } - // Try the assumed package name first, then a simpler path match - // in case of packages named vN, which are not uncommon. - return strings.HasPrefix(ImportPathToAssumedName(pkg.importPathShort), searchPrefix) || - strings.HasPrefix(path.Base(pkg.importPathShort), searchPrefix) - }, - packageNameLoaded: func(pkg *pkg) bool { - if !strings.HasPrefix(pkg.packageName, searchPrefix) { - return false - } - wrapped(ImportFix{ - StmtInfo: ImportInfo{ - ImportPath: pkg.importPathShort, - Name: candidateImportName(pkg), - }, - IdentName: pkg.packageName, - FixType: AddImport, - Relevance: pkg.relevance, - }) - return false - }, - } - return getCandidatePkgs(ctx, callback, filename, filePkg, env) -} - -// GetImportPaths calls wrapped for each package whose import path starts with -// searchPrefix, and can be imported from filename with the package name filePkg. -func GetImportPaths(ctx context.Context, wrapped func(ImportFix), searchPrefix, filename, filePkg string, env *ProcessEnv) error { - callback := &scanCallback{ - rootFound: func(gopathwalk.Root) bool { - return true - }, - dirFound: func(pkg *pkg) bool { - if !CanUse(filename, pkg.dir) { - return false - } - return strings.HasPrefix(pkg.importPathShort, searchPrefix) - }, - packageNameLoaded: func(pkg *pkg) bool { - wrapped(ImportFix{ - StmtInfo: ImportInfo{ - ImportPath: pkg.importPathShort, - Name: candidateImportName(pkg), - }, - IdentName: pkg.packageName, - FixType: AddImport, - Relevance: pkg.relevance, - }) - return false - }, - } - return getCandidatePkgs(ctx, callback, filename, filePkg, env) -} - -// A PackageExport is a package and its exports. -type PackageExport struct { - Fix *ImportFix - Exports []stdlib.Symbol -} - -// GetPackageExports returns all known packages with name pkg and their exports. -func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchPkg, filename, filePkg string, env *ProcessEnv) error { - callback := &scanCallback{ - rootFound: func(gopathwalk.Root) bool { - return true - }, - dirFound: func(pkg *pkg) bool { - return pkgIsCandidate(filename, References{searchPkg: nil}, pkg) - }, - packageNameLoaded: func(pkg *pkg) bool { - return pkg.packageName == searchPkg - }, - exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { - sortSymbols(exports) - wrapped(PackageExport{ - Fix: &ImportFix{ - StmtInfo: ImportInfo{ - ImportPath: pkg.importPathShort, - Name: candidateImportName(pkg), - }, - IdentName: pkg.packageName, - FixType: AddImport, - Relevance: pkg.relevance, - }, - Exports: exports, - }) - }, - } - return getCandidatePkgs(ctx, callback, filename, filePkg, env) -} - -// TODO(rfindley): we should depend on GOOS and GOARCH, to provide accurate -// imports when doing cross-platform development. -var requiredGoEnvVars = []string{ - "GO111MODULE", - "GOFLAGS", - "GOINSECURE", - "GOMOD", - "GOMODCACHE", - "GONOPROXY", - "GONOSUMDB", - "GOPATH", - "GOPROXY", - "GOROOT", - "GOSUMDB", - "GOWORK", -} - -// ProcessEnv contains environment variables and settings that affect the use of -// the go command, the go/build package, etc. -// -// ...a ProcessEnv *also* overwrites its Env along with derived state in the -// form of the resolver. And because it is lazily initialized, an env may just -// be broken and unusable, but there is no way for the caller to detect that: -// all queries will just fail. -// -// TODO(rfindley): refactor this package so that this type (perhaps renamed to -// just Env or Config) is an immutable configuration struct, to be exchanged -// for an initialized object via a constructor that returns an error. Perhaps -// the signature should be `func NewResolver(*Env) (*Resolver, error)`, where -// resolver is a concrete type used for resolving imports. Via this -// refactoring, we can avoid the need to call ProcessEnv.init and -// ProcessEnv.GoEnv everywhere, and implicitly fix all the places where this -// these are misused. Also, we'd delegate the caller the decision of how to -// handle a broken environment. -type ProcessEnv struct { - GocmdRunner *gocommand.Runner - - BuildFlags []string - ModFlag string - - // SkipPathInScan returns true if the path should be skipped from scans of - // the RootCurrentModule root type. The function argument is a clean, - // absolute path. - SkipPathInScan func(string) bool - - // Env overrides the OS environment, and can be used to specify - // GOPROXY, GO111MODULE, etc. PATH cannot be set here, because - // exec.Command will not honor it. - // Specifying all of requiredGoEnvVars avoids a call to `go env`. - Env map[string]string - - WorkingDir string - - // If Logf is non-nil, debug logging is enabled through this function. - Logf func(format string, args ...any) - - // If set, ModCache holds a shared cache of directory info to use across - // multiple ProcessEnvs. - ModCache *DirInfoCache - - initialized bool // see TODO above - - // resolver and resolverErr are lazily evaluated (see GetResolver). - // This is unclean, but see the big TODO in the docstring for ProcessEnv - // above: for now, we can't be sure that the ProcessEnv is fully initialized. - resolver Resolver - resolverErr error -} - -func (e *ProcessEnv) goEnv() (map[string]string, error) { - if err := e.init(); err != nil { - return nil, err - } - return e.Env, nil -} - -func (e *ProcessEnv) matchFile(dir, name string) (bool, error) { - bctx, err := e.buildContext() - if err != nil { - return false, err - } - return bctx.MatchFile(dir, name) -} - -// CopyConfig copies the env's configuration into a new env. -func (e *ProcessEnv) CopyConfig() *ProcessEnv { - copy := &ProcessEnv{ - GocmdRunner: e.GocmdRunner, - initialized: e.initialized, - BuildFlags: e.BuildFlags, - Logf: e.Logf, - WorkingDir: e.WorkingDir, - resolver: nil, - Env: map[string]string{}, - } - maps.Copy(copy.Env, e.Env) - return copy -} - -func (e *ProcessEnv) init() error { - if e.initialized { - return nil - } - - foundAllRequired := true - for _, k := range requiredGoEnvVars { - if _, ok := e.Env[k]; !ok { - foundAllRequired = false - break - } - } - if foundAllRequired { - e.initialized = true - return nil - } - - if e.Env == nil { - e.Env = map[string]string{} - } - - goEnv := map[string]string{} - stdout, err := e.invokeGo(context.TODO(), "env", append([]string{"-json"}, requiredGoEnvVars...)...) - if err != nil { - return err - } - if err := json.Unmarshal(stdout.Bytes(), &goEnv); err != nil { - return err - } - maps.Copy(e.Env, goEnv) - e.initialized = true - return nil -} - -func (e *ProcessEnv) env() []string { - var env []string // the gocommand package will prepend os.Environ. - for k, v := range e.Env { - env = append(env, k+"="+v) - } - return env -} - -func (e *ProcessEnv) GetResolver() (Resolver, error) { - if err := e.init(); err != nil { - return nil, err - } - - if e.resolver == nil && e.resolverErr == nil { - // TODO(rfindley): we should only use a gopathResolver here if the working - // directory is actually *in* GOPATH. (I seem to recall an open gopls issue - // for this behavior, but I can't find it). - // - // For gopls, we can optionally explicitly choose a resolver type, since we - // already know the view type. - if e.Env["GOMOD"] == "" && (e.Env["GOWORK"] == "" || e.Env["GOWORK"] == "off") { - e.resolver = newGopathResolver(e) - e.logf("created gopath resolver") - } else if r, err := newModuleResolver(e, e.ModCache); err != nil { - e.resolverErr = err - e.logf("failed to create module resolver: %v", err) - } else { - e.resolver = Resolver(r) - e.logf("created module resolver") - } - } - - return e.resolver, e.resolverErr -} - -// logf logs if e.Logf is non-nil. -func (e *ProcessEnv) logf(format string, args ...any) { - if e.Logf != nil { - e.Logf(format, args...) - } -} - -// buildContext returns the build.Context to use for matching files. -// -// TODO(rfindley): support dynamic GOOS, GOARCH here, when doing cross-platform -// development. -func (e *ProcessEnv) buildContext() (*build.Context, error) { - ctx := build.Default - goenv, err := e.goEnv() - if err != nil { - return nil, err - } - ctx.GOROOT = goenv["GOROOT"] - ctx.GOPATH = goenv["GOPATH"] - - // As of Go 1.14, build.Context has a Dir field - // (see golang.org/issue/34860). - // Populate it only if present. - rc := reflect.ValueOf(&ctx).Elem() - dir := rc.FieldByName("Dir") - if dir.IsValid() && dir.Kind() == reflect.String { - dir.SetString(e.WorkingDir) - } - - // Since Go 1.11, go/build.Context.Import may invoke 'go list' depending on - // the value in GO111MODULE in the process's environment. We always want to - // run in GOPATH mode when calling Import, so we need to prevent this from - // happening. In Go 1.16, GO111MODULE defaults to "on", so this problem comes - // up more frequently. - // - // HACK: setting any of the Context I/O hooks prevents Import from invoking - // 'go list', regardless of GO111MODULE. This is undocumented, but it's - // unlikely to change before GOPATH support is removed. - ctx.ReadDir = ioutil.ReadDir - - return &ctx, nil -} - -func (e *ProcessEnv) invokeGo(ctx context.Context, verb string, args ...string) (*bytes.Buffer, error) { - inv := gocommand.Invocation{ - Verb: verb, - Args: args, - BuildFlags: e.BuildFlags, - Env: e.env(), - Logf: e.Logf, - WorkingDir: e.WorkingDir, - } - return e.GocmdRunner.Run(ctx, inv) -} - -func addStdlibCandidates(pass *pass, refs References) error { - localbase := func(nm string) string { - ans := path.Base(nm) - if ans[0] == 'v' { - // this is called, for instance, with math/rand/v2 and returns rand/v2 - if _, err := strconv.Atoi(ans[1:]); err == nil { - ix := strings.LastIndex(nm, ans) - more := path.Base(nm[:ix]) - ans = path.Join(more, ans) - } - } - return ans - } - add := func(pkg string) { - // Prevent self-imports. - if path.Base(pkg) == pass.f.Name.Name && filepath.Join(pass.goroot, "src", pkg) == pass.srcDir { - return - } - exports := symbolNameSet(stdlib.PackageSymbols[pkg]) - pass.addCandidate( - &ImportInfo{ImportPath: pkg}, - &PackageInfo{Name: localbase(pkg), Exports: exports}) - } - for left := range refs { - if left == "rand" { - // Make sure we try crypto/rand before any version of math/rand as both have Int() - // and our policy is to recommend crypto - add("crypto/rand") - // if the user's no later than go1.21, this should be "math/rand" - // but we have no way of figuring out what the user is using - // TODO: investigate using the toolchain version to disambiguate in the stdlib - add("math/rand/v2") - // math/rand has an overlapping API - // TestIssue66407 fails without this - add("math/rand") - continue - } - for importPath := range stdlib.PackageSymbols { - if path.Base(importPath) == left { - add(importPath) - } - } - } - return nil -} - -// A Resolver does the build-system-specific parts of goimports. -type Resolver interface { - // loadPackageNames loads the package names in importPaths. - loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) - - // scan works with callback to search for packages. See scanCallback for details. - scan(ctx context.Context, callback *scanCallback) error - - // loadExports returns the package name and set of exported symbols in the - // package at dir. loadExports may be called concurrently. - loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) - - // scoreImportPath returns the relevance for an import path. - scoreImportPath(ctx context.Context, path string) float64 - - // ClearForNewScan returns a new Resolver based on the receiver that has - // cleared its internal caches of directory contents. - // - // The new resolver should be primed and then set via - // [ProcessEnv.UpdateResolver]. - ClearForNewScan() Resolver -} - -// A scanCallback controls a call to scan and receives its results. -// In general, minor errors will be silently discarded; a user should not -// expect to receive a full series of calls for everything. -type scanCallback struct { - // rootFound is called before scanning a new root dir. If it returns true, - // the root will be scanned. Returning false will not necessarily prevent - // directories from that root making it to dirFound. - rootFound func(gopathwalk.Root) bool - // dirFound is called when a directory is found that is possibly a Go package. - // pkg will be populated with everything except packageName. - // If it returns true, the package's name will be loaded. - dirFound func(pkg *pkg) bool - // packageNameLoaded is called when a package is found and its name is loaded. - // If it returns true, the package's exports will be loaded. - packageNameLoaded func(pkg *pkg) bool - // exportsLoaded is called when a package's exports have been loaded. - exportsLoaded func(pkg *pkg, exports []stdlib.Symbol) -} - -func addExternalCandidates(ctx context.Context, pass *pass, refs References, filename string) error { - ctx, done := event.Start(ctx, "imports.addExternalCandidates") - defer done() - - results, err := pass.source.ResolveReferences(ctx, filename, refs) - if err != nil { - return err - } - - for _, result := range results { - if result == nil { - continue - } - // Don't offer completions that would shadow predeclared - // names, such as github.com/coreos/etcd/error. - if types.Universe.Lookup(result.Package.Name) != nil { // predeclared - // Ideally we would skip this candidate only - // if the predeclared name is actually - // referenced by the file, but that's a lot - // trickier to compute and would still create - // an import that is likely to surprise the - // user before long. - continue - } - pass.addCandidate(result.Import, result.Package) - } - return nil -} - -// notIdentifier reports whether ch is an invalid identifier character. -func notIdentifier(ch rune) bool { - return !('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || - '0' <= ch && ch <= '9' || - ch == '_' || - ch >= utf8.RuneSelf && (unicode.IsLetter(ch) || unicode.IsDigit(ch))) -} - -// ImportPathToAssumedName returns the assumed package name of an import path. -// It does this using only string parsing of the import path. -// It picks the last element of the path that does not look like a major -// version, and then picks the valid identifier off the start of that element. -// It is used to determine if a local rename should be added to an import for -// clarity. -// This function could be moved to a standard package and exported if we want -// for use in other tools. -func ImportPathToAssumedName(importPath string) string { - base := path.Base(importPath) - if strings.HasPrefix(base, "v") { - if _, err := strconv.Atoi(base[1:]); err == nil { - dir := path.Dir(importPath) - if dir != "." { - base = path.Base(dir) - } - } - } - base = strings.TrimPrefix(base, "go-") - if i := strings.IndexFunc(base, notIdentifier); i >= 0 { - base = base[:i] - } - return base -} - -// gopathResolver implements resolver for GOPATH workspaces. -type gopathResolver struct { - env *ProcessEnv - walked bool - cache *DirInfoCache - scanSema chan struct{} // scanSema prevents concurrent scans. -} - -func newGopathResolver(env *ProcessEnv) *gopathResolver { - r := &gopathResolver{ - env: env, - cache: NewDirInfoCache(), - scanSema: make(chan struct{}, 1), - } - r.scanSema <- struct{}{} - return r -} - -func (r *gopathResolver) ClearForNewScan() Resolver { - return newGopathResolver(r.env) -} - -func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { - names := map[string]string{} - bctx, err := r.env.buildContext() - if err != nil { - return nil, err - } - for _, path := range importPaths { - names[path] = importPathToName(bctx, path, srcDir) - } - return names, nil -} - -// importPathToName finds out the actual package name, as declared in its .go files. -func importPathToName(bctx *build.Context, importPath, srcDir string) string { - // Fast path for standard library without going to disk. - if stdlib.HasPackage(importPath) { - return path.Base(importPath) // stdlib packages always match their paths. - } - - buildPkg, err := bctx.Import(importPath, srcDir, build.FindOnly) - if err != nil { - return "" - } - pkgName, err := packageDirToName(buildPkg.Dir) - if err != nil { - return "" - } - return pkgName -} - -// packageDirToName is a faster version of build.Import if -// the only thing desired is the package name. Given a directory, -// packageDirToName then only parses one file in the package, -// trusting that the files in the directory are consistent. -func packageDirToName(dir string) (packageName string, err error) { - d, err := os.Open(dir) - if err != nil { - return "", err - } - names, err := d.Readdirnames(-1) - d.Close() - if err != nil { - return "", err - } - sort.Strings(names) // to have predictable behavior - var lastErr error - var nfile int - for _, name := range names { - if !strings.HasSuffix(name, ".go") { - continue - } - if strings.HasSuffix(name, "_test.go") { - continue - } - nfile++ - fullFile := filepath.Join(dir, name) - - fset := token.NewFileSet() - f, err := parser.ParseFile(fset, fullFile, nil, parser.PackageClauseOnly) - if err != nil { - lastErr = err - continue - } - pkgName := f.Name.Name - if pkgName == "documentation" { - // Special case from go/build.ImportDir, not - // handled by ctx.MatchFile. - continue - } - if pkgName == "main" { - // Also skip package main, assuming it's a +build ignore generator or example. - // Since you can't import a package main anyway, there's no harm here. - continue - } - return pkgName, nil - } - if lastErr != nil { - return "", lastErr - } - return "", fmt.Errorf("no importable package found in %d Go files", nfile) -} - -type pkg struct { - dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http") - importPathShort string // vendorless import path ("net/http", "a/b") - packageName string // package name loaded from source if requested - relevance float64 // a weakly-defined score of how relevant a package is. 0 is most relevant. -} - -type pkgDistance struct { - pkg *pkg - distance int // relative distance to target -} - -// byDistanceOrImportPathShortLength sorts by relative distance breaking ties -// on the short import path length and then the import string itself. -type byDistanceOrImportPathShortLength []pkgDistance - -func (s byDistanceOrImportPathShortLength) Len() int { return len(s) } -func (s byDistanceOrImportPathShortLength) Less(i, j int) bool { - di, dj := s[i].distance, s[j].distance - if di == -1 { - return false - } - if dj == -1 { - return true - } - if di != dj { - return di < dj - } - - vi, vj := s[i].pkg.importPathShort, s[j].pkg.importPathShort - if len(vi) != len(vj) { - return len(vi) < len(vj) - } - return vi < vj -} -func (s byDistanceOrImportPathShortLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -func distance(basepath, targetpath string) int { - p, err := filepath.Rel(basepath, targetpath) - if err != nil { - return -1 - } - if p == "." { - return 0 - } - return strings.Count(p, string(filepath.Separator)) + 1 -} - -func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error { - add := func(root gopathwalk.Root, dir string) { - // We assume cached directories have not changed. We can skip them and their - // children. - if _, ok := r.cache.Load(dir); ok { - return - } - - importpath := filepath.ToSlash(dir[len(root.Path)+len("/"):]) - info := directoryPackageInfo{ - status: directoryScanned, - dir: dir, - rootType: root.Type, - nonCanonicalImportPath: VendorlessPath(importpath), - } - r.cache.Store(dir, info) - } - processDir := func(info directoryPackageInfo) { - // Skip this directory if we were not able to get the package information successfully. - if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { - return - } - - p := &pkg{ - importPathShort: info.nonCanonicalImportPath, - dir: info.dir, - relevance: MaxRelevance - 1, - } - if info.rootType == gopathwalk.RootGOROOT { - p.relevance = MaxRelevance - } - - if !callback.dirFound(p) { - return - } - var err error - p.packageName, err = r.cache.CachePackageName(info) - if err != nil { - return - } - - if !callback.packageNameLoaded(p) { - return - } - if _, exports, err := r.loadExports(ctx, p, false); err == nil { - callback.exportsLoaded(p, exports) - } - } - stop := r.cache.ScanAndListen(ctx, processDir) - defer stop() - - goenv, err := r.env.goEnv() - if err != nil { - return err - } - var roots []gopathwalk.Root - roots = append(roots, gopathwalk.Root{Path: filepath.Join(goenv["GOROOT"], "src"), Type: gopathwalk.RootGOROOT}) - for _, p := range filepath.SplitList(goenv["GOPATH"]) { - roots = append(roots, gopathwalk.Root{Path: filepath.Join(p, "src"), Type: gopathwalk.RootGOPATH}) - } - // The callback is not necessarily safe to use in the goroutine below. Process roots eagerly. - roots = filterRoots(roots, callback.rootFound) - // We can't cancel walks, because we need them to finish to have a usable - // cache. Instead, run them in a separate goroutine and detach. - scanDone := make(chan struct{}) - go func() { - select { - case <-ctx.Done(): - return - case <-r.scanSema: - } - defer func() { r.scanSema <- struct{}{} }() - gopathwalk.Walk(roots, add, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: false}) - close(scanDone) - }() - select { - case <-ctx.Done(): - case <-scanDone: - } - return nil -} - -func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) float64 { - if stdlib.HasPackage(path) { - return MaxRelevance - } - return MaxRelevance - 1 -} - -func filterRoots(roots []gopathwalk.Root, include func(gopathwalk.Root) bool) []gopathwalk.Root { - var result []gopathwalk.Root - for _, root := range roots { - if !include(root) { - continue - } - result = append(result, root) - } - return result -} - -func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { - if info, ok := r.cache.Load(pkg.dir); ok && !includeTest { - return r.cache.CacheExports(ctx, r.env, info) - } - return loadExportsFromFiles(ctx, r.env, pkg.dir, includeTest) -} - -// VendorlessPath returns the devendorized version of the import path ipath. -// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". -func VendorlessPath(ipath string) string { - // Devendorize for use in import statement. - if i := strings.LastIndex(ipath, "/vendor/"); i >= 0 { - return ipath[i+len("/vendor/"):] - } - if strings.HasPrefix(ipath, "vendor/") { - return ipath[len("vendor/"):] - } - return ipath -} - -func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []stdlib.Symbol, error) { - // Look for non-test, buildable .go files which could provide exports. - all, err := os.ReadDir(dir) - if err != nil { - return "", nil, err - } - var files []fs.DirEntry - for _, fi := range all { - name := fi.Name() - if !strings.HasSuffix(name, ".go") || (!includeTest && strings.HasSuffix(name, "_test.go")) { - continue - } - match, err := env.matchFile(dir, fi.Name()) - if err != nil || !match { - continue - } - files = append(files, fi) - } - - if len(files) == 0 { - return "", nil, fmt.Errorf("dir %v contains no buildable, non-test .go files", dir) - } - - var pkgName string - var exports []stdlib.Symbol - fset := token.NewFileSet() - for _, fi := range files { - select { - case <-ctx.Done(): - return "", nil, ctx.Err() - default: - } - - fullFile := filepath.Join(dir, fi.Name()) - // Legacy ast.Object resolution is needed here. - f, err := parser.ParseFile(fset, fullFile, nil, 0) - if err != nil { - env.logf("error parsing %v: %v", fullFile, err) - continue - } - if f.Name.Name == "documentation" { - // Special case from go/build.ImportDir, not - // handled by MatchFile above. - continue - } - if includeTest && strings.HasSuffix(f.Name.Name, "_test") { - // x_test package. We want internal test files only. - continue - } - pkgName = f.Name.Name - for name, obj := range f.Scope.Objects { - if ast.IsExported(name) { - var kind stdlib.Kind - switch obj.Kind { - case ast.Con: - kind = stdlib.Const - case ast.Typ: - kind = stdlib.Type - case ast.Var: - kind = stdlib.Var - case ast.Fun: - kind = stdlib.Func - } - exports = append(exports, stdlib.Symbol{ - Name: name, - Kind: kind, - Version: 0, // unknown; be permissive - }) - } - } - } - sortSymbols(exports) - - env.logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports) - return pkgName, exports, nil -} - -func sortSymbols(syms []stdlib.Symbol) { - sort.Slice(syms, func(i, j int) bool { - return syms[i].Name < syms[j].Name - }) -} - -// A symbolSearcher searches for a package with a set of symbols, among a set -// of candidates. See [symbolSearcher.search]. -// -// The search occurs within the scope of a single file, with context captured -// in srcDir and xtest. -type symbolSearcher struct { - logf func(string, ...any) - srcDir string // directory containing the file - xtest bool // if set, the file containing is an x_test file - loadExports func(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) -} - -// search searches the provided candidates for a package containing all -// exported symbols. -// -// If successful, returns the resulting package. -func (s *symbolSearcher) search(ctx context.Context, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) { - // Sort the candidates by their import package length, - // assuming that shorter package names are better than long - // ones. Note that this sorts by the de-vendored name, so - // there's no "penalty" for vendoring. - sort.Sort(byDistanceOrImportPathShortLength(candidates)) - if s.logf != nil { - for i, c := range candidates { - s.logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir) - } - } - - // Arrange rescv so that we can we can await results in order of relevance - // and exit as soon as we find the first match. - // - // Search with bounded concurrency, returning as soon as the first result - // among rescv is non-nil. - rescv := make([]chan *pkg, len(candidates)) - for i := range candidates { - rescv[i] = make(chan *pkg, 1) - } - const maxConcurrentPackageImport = 4 - loadExportsSem := make(chan struct{}, maxConcurrentPackageImport) - - // Ensure that all work is completed at exit. - ctx, cancel := context.WithCancel(ctx) - var wg sync.WaitGroup - defer func() { - cancel() - wg.Wait() - }() - - // Start the search. - wg.Add(1) - go func() { - defer wg.Done() - for i, c := range candidates { - select { - case loadExportsSem <- struct{}{}: - case <-ctx.Done(): - return - } - - i := i - c := c - wg.Add(1) - go func() { - defer func() { - <-loadExportsSem - wg.Done() - }() - if s.logf != nil { - s.logf("loading exports in dir %s (seeking package %s)", c.pkg.dir, pkgName) - } - pkg, err := s.searchOne(ctx, c, symbols) - if err != nil { - if s.logf != nil && ctx.Err() == nil { - s.logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err) - } - pkg = nil - } - rescv[i] <- pkg // may be nil - }() - } - }() - - // Await the first (best) result. - for _, resc := range rescv { - select { - case r := <-resc: - if r != nil { - return r, nil - } - case <-ctx.Done(): - return nil, ctx.Err() - } - } - return nil, nil -} - -func (s *symbolSearcher) searchOne(ctx context.Context, c pkgDistance, symbols map[string]bool) (*pkg, error) { - if ctx.Err() != nil { - return nil, ctx.Err() - } - // If we're considering the package under test from an x_test, load the - // test variant. - includeTest := s.xtest && c.pkg.dir == s.srcDir - _, exports, err := s.loadExports(ctx, c.pkg, includeTest) - if err != nil { - return nil, err - } - - exportsMap := make(map[string]bool, len(exports)) - for _, sym := range exports { - exportsMap[sym.Name] = true - } - for symbol := range symbols { - if !exportsMap[symbol] { - return nil, nil // no match - } - } - return c.pkg, nil -} - -// pkgIsCandidate reports whether pkg is a candidate for satisfying the -// finding which package pkgIdent in the file named by filename is trying -// to refer to. -// -// This check is purely lexical and is meant to be as fast as possible -// because it's run over all $GOPATH directories to filter out poor -// candidates in order to limit the CPU and I/O later parsing the -// exports in candidate packages. -// -// filename is the file being formatted. -// pkgIdent is the package being searched for, like "client" (if -// searching for "client.New") -func pkgIsCandidate(filename string, refs References, pkg *pkg) bool { - // Check "internal" and "vendor" visibility: - if !CanUse(filename, pkg.dir) { - return false - } - - // Speed optimization to minimize disk I/O: - // - // Use the matchesPath heuristic to filter to package paths that could - // reasonably match a dangling reference. - // - // This permits mismatch naming like directory "go-foo" being package "foo", - // or "pkg.v3" being "pkg", or directory - // "google.golang.org/api/cloudbilling/v1" being package "cloudbilling", but - // doesn't permit a directory "foo" to be package "bar", which is strongly - // discouraged anyway. There's no reason goimports needs to be slow just to - // accommodate that. - for pkgIdent := range refs { - if matchesPath(pkgIdent, pkg.importPathShort) { - return true - } - } - return false -} - -// CanUse reports whether the package in dir is usable from filename, -// respecting the Go "internal" and "vendor" visibility rules. -func CanUse(filename, dir string) bool { - // Fast path check, before any allocations. If it doesn't contain vendor - // or internal, it's not tricky: - // Note that this can false-negative on directories like "notinternal", - // but we check it correctly below. This is just a fast path. - if !strings.Contains(dir, "vendor") && !strings.Contains(dir, "internal") { - return true - } - - dirSlash := filepath.ToSlash(dir) - if !strings.Contains(dirSlash, "/vendor/") && !strings.Contains(dirSlash, "/internal/") && !strings.HasSuffix(dirSlash, "/internal") { - return true - } - // Vendor or internal directory only visible from children of parent. - // That means the path from the current directory to the target directory - // can contain ../vendor or ../internal but not ../foo/vendor or ../foo/internal - // or bar/vendor or bar/internal. - // After stripping all the leading ../, the only okay place to see vendor or internal - // is at the very beginning of the path. - absfile, err := filepath.Abs(filename) - if err != nil { - return false - } - absdir, err := filepath.Abs(dir) - if err != nil { - return false - } - rel, err := filepath.Rel(absfile, absdir) - if err != nil { - return false - } - relSlash := filepath.ToSlash(rel) - if i := strings.LastIndex(relSlash, "../"); i >= 0 { - relSlash = relSlash[i+len("../"):] - } - return !strings.Contains(relSlash, "/vendor/") && !strings.Contains(relSlash, "/internal/") && !strings.HasSuffix(relSlash, "/internal") -} - -// matchesPath reports whether ident may match a potential package name -// referred to by path, using heuristics to filter out unidiomatic package -// names. -// -// Specifically, it checks whether either of the last two '/'- or '\'-delimited -// path segments matches the identifier. The segment-matching heuristic must -// allow for various conventions around segment naming, including go-foo, -// foo-go, and foo.v3. To handle all of these, matching considers both (1) the -// entire segment, ignoring '-' and '.', as well as (2) the last subsegment -// separated by '-' or '.'. So the segment foo-go matches all of the following -// identifiers: foo, go, and foogo. All matches are case insensitive (for ASCII -// identifiers). -// -// See the docstring for [pkgIsCandidate] for an explanation of how this -// heuristic filters potential candidate packages. -func matchesPath(ident, path string) bool { - // Ignore case, for ASCII. - lowerIfASCII := func(b byte) byte { - if 'A' <= b && b <= 'Z' { - return b + ('a' - 'A') - } - return b - } - - // match reports whether path[start:end] matches ident, ignoring [.-]. - match := func(start, end int) bool { - ii := len(ident) - 1 // current byte in ident - pi := end - 1 // current byte in path - for ; pi >= start && ii >= 0; pi-- { - pb := path[pi] - if pb == '-' || pb == '.' { - continue - } - pb = lowerIfASCII(pb) - ib := lowerIfASCII(ident[ii]) - if pb != ib { - return false - } - ii-- - } - return ii < 0 && pi < start // all bytes matched - } - - // segmentEnd and subsegmentEnd hold the end points of the current segment - // and subsegment intervals. - segmentEnd := len(path) - subsegmentEnd := len(path) - - // Count slashes; we only care about the last two segments. - nslash := 0 - - for i := len(path) - 1; i >= 0; i-- { - switch b := path[i]; b { - // TODO(rfindley): we handle backlashes here only because the previous - // heuristic handled backslashes. This is perhaps overly defensive, but is - // the result of many lessons regarding Chesterton's fence and the - // goimports codebase. - // - // However, this function is only ever called with something called an - // 'importPath'. Is it possible that this is a real import path, and - // therefore we need only consider forward slashes? - case '/', '\\': - if match(i+1, segmentEnd) || match(i+1, subsegmentEnd) { - return true - } - nslash++ - if nslash == 2 { - return false // did not match above - } - segmentEnd, subsegmentEnd = i, i // reset - case '-', '.': - if match(i+1, subsegmentEnd) { - return true - } - subsegmentEnd = i - } - } - return match(0, segmentEnd) || match(0, subsegmentEnd) -} - -type visitFn func(node ast.Node) ast.Visitor - -func (fn visitFn) Visit(node ast.Node) ast.Visitor { - return fn(node) -} - -func symbolNameSet(symbols []stdlib.Symbol) map[string]bool { - names := make(map[string]bool) - for _, sym := range symbols { - switch sym.Kind { - case stdlib.Const, stdlib.Var, stdlib.Type, stdlib.Func: - names[sym.Name] = true - } - } - return names -} diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go deleted file mode 100644 index b5f5218..0000000 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2013 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 imports implements a Go pretty-printer (like package "go/format") -// that also adds or removes import statements as necessary. -package imports - -import ( - "bufio" - "bytes" - "context" - "fmt" - "go/ast" - "go/format" - "go/parser" - "go/printer" - "go/token" - "io" - "regexp" - "strconv" - "strings" - - "golang.org/x/tools/go/ast/astutil" - "golang.org/x/tools/internal/event" -) - -// Options is golang.org/x/tools/imports.Options with extra internal-only options. -type Options struct { - Env *ProcessEnv // The environment to use. Note: this contains the cached module and filesystem state. - - // LocalPrefix is a comma-separated string of import path prefixes, which, if - // set, instructs Process to sort the import paths with the given prefixes - // into another group after 3rd-party packages. - LocalPrefix string - - Fragment bool // Accept fragment of a source file (no package statement) - AllErrors bool // Report all errors (not just the first 10 on different lines) - - Comments bool // Print comments (true if nil *Options provided) - TabIndent bool // Use tabs for indent (true if nil *Options provided) - TabWidth int // Tab width (8 if nil *Options provided) - - FormatOnly bool // Disable the insertion and deletion of imports -} - -// Process implements golang.org/x/tools/imports.Process with explicit context in opt.Env. -func Process(filename string, src []byte, opt *Options) (formatted []byte, err error) { - fileSet := token.NewFileSet() - var parserMode parser.Mode - if opt.Comments { - parserMode |= parser.ParseComments - } - if opt.AllErrors { - parserMode |= parser.AllErrors - } - file, adjust, err := parse(fileSet, filename, src, parserMode, opt.Fragment) - if err != nil { - return nil, err - } - - if !opt.FormatOnly { - if err := fixImports(fileSet, file, filename, opt.Env); err != nil { - return nil, err - } - } - return formatFile(fileSet, file, src, adjust, opt) -} - -// FixImports returns a list of fixes to the imports that, when applied, -// will leave the imports in the same state as Process. src and opt must -// be specified. -// -// Note that filename's directory influences which imports can be chosen, -// so it is important that filename be accurate. -func FixImports(ctx context.Context, filename string, src []byte, goroot string, logf func(string, ...any), source Source) (fixes []*ImportFix, err error) { - ctx, done := event.Start(ctx, "imports.FixImports") - defer done() - - fileSet := token.NewFileSet() - // TODO(rfindley): these default values for ParseComments and AllErrors were - // extracted from gopls, but are they even needed? - file, _, err := parse(fileSet, filename, src, parser.ParseComments|parser.AllErrors, true) - if err != nil { - return nil, err - } - - return getFixesWithSource(ctx, fileSet, file, filename, goroot, logf, source) -} - -// ApplyFixes applies all of the fixes to the file and formats it. extraMode -// is added in when parsing the file. src and opts must be specified, but no -// env is needed. -func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, extraMode parser.Mode) (formatted []byte, err error) { - // Don't use parse() -- we don't care about fragments or statement lists - // here, and we need to work with unparsable files. - fileSet := token.NewFileSet() - parserMode := parser.SkipObjectResolution - if opt.Comments { - parserMode |= parser.ParseComments - } - if opt.AllErrors { - parserMode |= parser.AllErrors - } - parserMode |= extraMode - - file, err := parser.ParseFile(fileSet, filename, src, parserMode) - if file == nil { - return nil, err - } - - // Apply the fixes to the file. - apply(fileSet, file, fixes) - - return formatFile(fileSet, file, src, nil, opt) -} - -// formatFile formats the file syntax tree. -// It may mutate the token.FileSet and the ast.File. -// -// If an adjust function is provided, it is called after formatting -// with the original source (formatFile's src parameter) and the -// formatted file, and returns the postpocessed result. -func formatFile(fset *token.FileSet, file *ast.File, src []byte, adjust func(orig []byte, src []byte) []byte, opt *Options) ([]byte, error) { - mergeImports(file) - sortImports(opt.LocalPrefix, fset.File(file.FileStart), file) - var spacesBefore []string // import paths we need spaces before - for _, impSection := range astutil.Imports(fset, file) { - // Within each block of contiguous imports, see if any - // import lines are in different group numbers. If so, - // we'll need to put a space between them so it's - // compatible with gofmt. - lastGroup := -1 - for _, importSpec := range impSection { - importPath, _ := strconv.Unquote(importSpec.Path.Value) - groupNum := importGroup(opt.LocalPrefix, importPath) - if groupNum != lastGroup && lastGroup != -1 { - spacesBefore = append(spacesBefore, importPath) - } - lastGroup = groupNum - } - - } - - printerMode := printer.UseSpaces - if opt.TabIndent { - printerMode |= printer.TabIndent - } - printConfig := &printer.Config{Mode: printerMode, Tabwidth: opt.TabWidth} - - var buf bytes.Buffer - err := printConfig.Fprint(&buf, fset, file) - if err != nil { - return nil, err - } - out := buf.Bytes() - if adjust != nil { - out = adjust(src, out) - } - if len(spacesBefore) > 0 { - out, err = addImportSpaces(bytes.NewReader(out), spacesBefore) - if err != nil { - return nil, err - } - } - - out, err = format.Source(out) - if err != nil { - return nil, err - } - return out, nil -} - -// parse parses src, which was read from filename, -// as a Go source file or statement list. -func parse(fset *token.FileSet, filename string, src []byte, parserMode parser.Mode, fragment bool) (*ast.File, func(orig, src []byte) []byte, error) { - if parserMode&parser.SkipObjectResolution != 0 { - panic("legacy ast.Object resolution is required") - } - - // Try as whole source file. - file, err := parser.ParseFile(fset, filename, src, parserMode) - if err == nil { - return file, nil, nil - } - // If the error is that the source file didn't begin with a - // package line and we accept fragmented input, fall through to - // try as a source fragment. Stop and return on any other error. - if !fragment || !strings.Contains(err.Error(), "expected 'package'") { - return nil, nil, err - } - - // If this is a declaration list, make it a source file - // by inserting a package clause. - // Insert using a ;, not a newline, so that parse errors are on - // the correct line. - const prefix = "package main;" - psrc := append([]byte(prefix), src...) - file, err = parser.ParseFile(fset, filename, psrc, parserMode) - if err == nil { - // Gofmt will turn the ; into a \n. - // Do that ourselves now and update the file contents, - // so that positions and line numbers are correct going forward. - psrc[len(prefix)-1] = '\n' - fset.File(file.Package).SetLinesForContent(psrc) - - // If a main function exists, we will assume this is a main - // package and leave the file. - if containsMainFunc(file) { - return file, nil, nil - } - - adjust := func(orig, src []byte) []byte { - // Remove the package clause. - src = src[len(prefix):] - return matchSpace(orig, src) - } - return file, adjust, nil - } - // If the error is that the source file didn't begin with a - // declaration, fall through to try as a statement list. - // Stop and return on any other error. - if !strings.Contains(err.Error(), "expected declaration") { - return nil, nil, err - } - - // If this is a statement list, make it a source file - // by inserting a package clause and turning the list - // into a function body. This handles expressions too. - // Insert using a ;, not a newline, so that the line numbers - // in fsrc match the ones in src. - fsrc := append(append([]byte("package p; func _() {"), src...), '}') - file, err = parser.ParseFile(fset, filename, fsrc, parserMode) - if err == nil { - adjust := func(orig, src []byte) []byte { - // Remove the wrapping. - // Gofmt has turned the ; into a \n\n. - src = src[len("package p\n\nfunc _() {"):] - src = src[:len(src)-len("}\n")] - // Gofmt has also indented the function body one level. - // Remove that indent. - src = bytes.ReplaceAll(src, []byte("\n\t"), []byte("\n")) - return matchSpace(orig, src) - } - return file, adjust, nil - } - - // Failed, and out of options. - return nil, nil, err -} - -// containsMainFunc checks if a file contains a function declaration with the -// function signature 'func main()' -func containsMainFunc(file *ast.File) bool { - for _, decl := range file.Decls { - if f, ok := decl.(*ast.FuncDecl); ok { - if f.Name.Name != "main" { - continue - } - - if len(f.Type.Params.List) != 0 { - continue - } - - if f.Type.Results != nil && len(f.Type.Results.List) != 0 { - continue - } - - return true - } - } - - return false -} - -func cutSpace(b []byte) (before, middle, after []byte) { - i := 0 - for i < len(b) && (b[i] == ' ' || b[i] == '\t' || b[i] == '\n') { - i++ - } - j := len(b) - for j > 0 && (b[j-1] == ' ' || b[j-1] == '\t' || b[j-1] == '\n') { - j-- - } - if i <= j { - return b[:i], b[i:j], b[j:] - } - return nil, nil, b[j:] -} - -// matchSpace reformats src to use the same space context as orig. -// 1. If orig begins with blank lines, matchSpace inserts them at the beginning of src. -// 2. matchSpace copies the indentation of the first non-blank line in orig -// to every non-blank line in src. -// 3. matchSpace copies the trailing space from orig and uses it in place -// of src's trailing space. -func matchSpace(orig []byte, src []byte) []byte { - before, _, after := cutSpace(orig) - i := bytes.LastIndex(before, []byte{'\n'}) - before, indent := before[:i+1], before[i+1:] - - _, src, _ = cutSpace(src) - - var b bytes.Buffer - b.Write(before) - for len(src) > 0 { - line := src - if i := bytes.IndexByte(line, '\n'); i >= 0 { - line, src = line[:i+1], line[i+1:] - } else { - src = nil - } - if len(line) > 0 && line[0] != '\n' { // not blank - b.Write(indent) - } - b.Write(line) - } - b.Write(after) - return b.Bytes() -} - -var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+?)"`) - -func addImportSpaces(r io.Reader, breaks []string) ([]byte, error) { - var out bytes.Buffer - in := bufio.NewReader(r) - inImports := false - done := false - for { - s, err := in.ReadString('\n') - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - - if !inImports && !done && strings.HasPrefix(s, "import") { - inImports = true - } - if inImports && (strings.HasPrefix(s, "var") || - strings.HasPrefix(s, "func") || - strings.HasPrefix(s, "const") || - strings.HasPrefix(s, "type")) { - done = true - inImports = false - } - if inImports && len(breaks) > 0 { - if m := impLine.FindStringSubmatch(s); m != nil { - if m[1] == breaks[0] { - out.WriteByte('\n') - breaks = breaks[1:] - } - } - } - - fmt.Fprint(&out, s) - } - return out.Bytes(), nil -} diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go deleted file mode 100644 index df94ec8..0000000 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ /dev/null @@ -1,841 +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. - -package imports - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "os" - "path" - "path/filepath" - "regexp" - "slices" - "sort" - "strconv" - "strings" - - "golang.org/x/mod/module" - "golang.org/x/tools/internal/event" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/gopathwalk" - "golang.org/x/tools/internal/stdlib" -) - -// Notes(rfindley): ModuleResolver appears to be heavily optimized for scanning -// as fast as possible, which is desirable for a call to goimports from the -// command line, but it doesn't work as well for gopls, where it suffers from -// slow startup (golang/go#44863) and intermittent hanging (golang/go#59216), -// both caused by populating the cache, albeit in slightly different ways. -// -// A high level list of TODOs: -// - Optimize the scan itself, as there is some redundancy statting and -// reading go.mod files. -// - Invert the relationship between ProcessEnv and Resolver (see the -// docstring of ProcessEnv). -// - Make it easier to use an external resolver implementation. -// -// Smaller TODOs are annotated in the code below. - -// ModuleResolver implements the Resolver interface for a workspace using -// modules. -// -// A goal of the ModuleResolver is to invoke the Go command as little as -// possible. To this end, it runs the Go command only for listing module -// information (i.e. `go list -m -e -json ...`). Package scanning, the process -// of loading package information for the modules, is implemented internally -// via the scan method. -// -// It has two types of state: the state derived from the go command, which -// is populated by init, and the state derived from scans, which is populated -// via scan. A root is considered scanned if it has been walked to discover -// directories. However, if the scan did not require additional information -// from the directory (such as package name or exports), the directory -// information itself may be partially populated. It will be lazily filled in -// as needed by scans, using the scanCallback. -type ModuleResolver struct { - env *ProcessEnv - - // Module state, populated during construction - dummyVendorMod *gocommand.ModuleJSON // if vendoring is enabled, a pseudo-module to represent the /vendor directory - moduleCacheDir string // GOMODCACHE, inferred from GOPATH if unset - roots []gopathwalk.Root // roots to scan, in approximate order of importance - mains []*gocommand.ModuleJSON // main modules - mainByDir map[string]*gocommand.ModuleJSON // module information by dir, to join with roots - modsByModPath []*gocommand.ModuleJSON // all modules, ordered by # of path components in their module path - modsByDir []*gocommand.ModuleJSON // ...or by the number of path components in their Dir. - - // Scanning state, populated by scan - - // scanSema prevents concurrent scans, and guards scannedRoots and the cache - // fields below (though the caches themselves are concurrency safe). - // Receive to acquire, send to release. - scanSema chan struct{} - scannedRoots map[gopathwalk.Root]bool // if true, root has been walked - - // Caches of directory info, populated by scans and scan callbacks - // - // moduleCacheCache stores cached information about roots in the module - // cache, which are immutable and therefore do not need to be invalidated. - // - // otherCache stores information about all other roots (even GOROOT), which - // may change. - moduleCacheCache *DirInfoCache - otherCache *DirInfoCache -} - -// newModuleResolver returns a new module-aware goimports resolver. -// -// Note: use caution when modifying this constructor: changes must also be -// reflected in ModuleResolver.ClearForNewScan. -func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleResolver, error) { - r := &ModuleResolver{ - env: e, - scanSema: make(chan struct{}, 1), - } - r.scanSema <- struct{}{} // release - - goenv, err := r.env.goEnv() - if err != nil { - return nil, err - } - - // TODO(rfindley): can we refactor to share logic with r.env.invokeGo? - inv := gocommand.Invocation{ - BuildFlags: r.env.BuildFlags, - ModFlag: r.env.ModFlag, - Env: r.env.env(), - Logf: r.env.Logf, - WorkingDir: r.env.WorkingDir, - } - - vendorEnabled := false - var mainModVendor *gocommand.ModuleJSON // for module vendoring - var mainModsVendor []*gocommand.ModuleJSON // for workspace vendoring - - goWork := r.env.Env["GOWORK"] - if len(goWork) == 0 { - // TODO(rfindley): VendorEnabled runs the go command to get GOFLAGS, but - // they should be available from the ProcessEnv. Can we avoid the redundant - // invocation? - vendorEnabled, mainModVendor, err = gocommand.VendorEnabled(context.TODO(), inv, r.env.GocmdRunner) - if err != nil { - return nil, err - } - } else { - vendorEnabled, mainModsVendor, err = gocommand.WorkspaceVendorEnabled(context.Background(), inv, r.env.GocmdRunner) - if err != nil { - return nil, err - } - } - - if vendorEnabled { - if mainModVendor != nil { - // Module vendor mode is on, so all the non-Main modules are irrelevant, - // and we need to search /vendor for everything. - r.mains = []*gocommand.ModuleJSON{mainModVendor} - r.dummyVendorMod = &gocommand.ModuleJSON{ - Path: "", - Dir: filepath.Join(mainModVendor.Dir, "vendor"), - } - r.modsByModPath = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} - r.modsByDir = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} - } else { - // Workspace vendor mode is on, so all the non-Main modules are irrelevant, - // and we need to search /vendor for everything. - r.mains = mainModsVendor - r.dummyVendorMod = &gocommand.ModuleJSON{ - Path: "", - Dir: filepath.Join(filepath.Dir(goWork), "vendor"), - } - r.modsByModPath = append(slices.Clone(mainModsVendor), r.dummyVendorMod) - r.modsByDir = append(slices.Clone(mainModsVendor), r.dummyVendorMod) - } - } else { - // Vendor mode is off, so run go list -m ... to find everything. - err := r.initAllMods() - // We expect an error when running outside of a module with - // GO111MODULE=on. Other errors are fatal. - if err != nil { - if errMsg := err.Error(); !strings.Contains(errMsg, "working directory is not part of a module") && !strings.Contains(errMsg, "go.mod file not found") { - return nil, err - } - } - } - - r.moduleCacheDir = gomodcacheForEnv(goenv) - if r.moduleCacheDir == "" { - return nil, fmt.Errorf("cannot resolve GOMODCACHE") - } - - sort.Slice(r.modsByModPath, func(i, j int) bool { - count := func(x int) int { - return strings.Count(r.modsByModPath[x].Path, "/") - } - return count(j) < count(i) // descending order - }) - sort.Slice(r.modsByDir, func(i, j int) bool { - count := func(x int) int { - return strings.Count(r.modsByDir[x].Dir, string(filepath.Separator)) - } - return count(j) < count(i) // descending order - }) - - r.roots = []gopathwalk.Root{} - if goenv["GOROOT"] != "" { // "" happens in tests - r.roots = append(r.roots, gopathwalk.Root{Path: filepath.Join(goenv["GOROOT"], "/src"), Type: gopathwalk.RootGOROOT}) - } - r.mainByDir = make(map[string]*gocommand.ModuleJSON) - for _, main := range r.mains { - r.roots = append(r.roots, gopathwalk.Root{Path: main.Dir, Type: gopathwalk.RootCurrentModule}) - r.mainByDir[main.Dir] = main - } - if vendorEnabled { - r.roots = append(r.roots, gopathwalk.Root{Path: r.dummyVendorMod.Dir, Type: gopathwalk.RootOther}) - } else { - addDep := func(mod *gocommand.ModuleJSON) { - if mod.Replace == nil { - // This is redundant with the cache, but we'll skip it cheaply enough - // when we encounter it in the module cache scan. - // - // Including it at a lower index in r.roots than the module cache dir - // helps prioritize matches from within existing dependencies. - r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootModuleCache}) - } else { - r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootOther}) - } - } - // Walk dependent modules before scanning the full mod cache, direct deps first. - for _, mod := range r.modsByModPath { - if !mod.Indirect && !mod.Main { - addDep(mod) - } - } - for _, mod := range r.modsByModPath { - if mod.Indirect && !mod.Main { - addDep(mod) - } - } - // If provided, share the moduleCacheCache. - // - // TODO(rfindley): The module cache is immutable. However, the loaded - // exports do depend on GOOS and GOARCH. Fortunately, the - // ProcessEnv.buildContext does not adjust these from build.DefaultContext - // (even though it should). So for now, this is OK to share, but we need to - // add logic for handling GOOS/GOARCH. - r.moduleCacheCache = moduleCacheCache - r.roots = append(r.roots, gopathwalk.Root{Path: r.moduleCacheDir, Type: gopathwalk.RootModuleCache}) - } - - r.scannedRoots = map[gopathwalk.Root]bool{} - if r.moduleCacheCache == nil { - r.moduleCacheCache = NewDirInfoCache() - } - r.otherCache = NewDirInfoCache() - return r, nil -} - -// gomodcacheForEnv returns the GOMODCACHE value to use based on the given env -// map, which must have GOMODCACHE and GOPATH populated. -// -// TODO(rfindley): this is defensive refactoring. -// 1. Is this even relevant anymore? Can't we just read GOMODCACHE. -// 2. Use this to separate module cache scanning from other scanning. -func gomodcacheForEnv(goenv map[string]string) string { - if gmc := goenv["GOMODCACHE"]; gmc != "" { - // golang/go#67156: ensure that the module cache is clean, since it is - // assumed as a prefix to directories scanned by gopathwalk, which are - // themselves clean. - return filepath.Clean(gmc) - } - gopaths := filepath.SplitList(goenv["GOPATH"]) - if len(gopaths) == 0 { - return "" - } - return filepath.Join(gopaths[0], "/pkg/mod") -} - -func (r *ModuleResolver) initAllMods() error { - stdout, err := r.env.invokeGo(context.TODO(), "list", "-m", "-e", "-json", "...") - if err != nil { - return err - } - for dec := json.NewDecoder(stdout); dec.More(); { - mod := &gocommand.ModuleJSON{} - if err := dec.Decode(mod); err != nil { - return err - } - if mod.Dir == "" { - r.env.logf("module %v has not been downloaded and will be ignored", mod.Path) - // Can't do anything with a module that's not downloaded. - continue - } - // golang/go#36193: the go command doesn't always clean paths. - mod.Dir = filepath.Clean(mod.Dir) - r.modsByModPath = append(r.modsByModPath, mod) - r.modsByDir = append(r.modsByDir, mod) - if mod.Main { - r.mains = append(r.mains, mod) - } - } - return nil -} - -// ClearForNewScan invalidates the last scan. -// -// It preserves the set of roots, but forgets about the set of directories. -// Though it forgets the set of module cache directories, it remembers their -// contents, since they are assumed to be immutable. -func (r *ModuleResolver) ClearForNewScan() Resolver { - <-r.scanSema // acquire r, to guard scannedRoots - r2 := &ModuleResolver{ - env: r.env, - dummyVendorMod: r.dummyVendorMod, - moduleCacheDir: r.moduleCacheDir, - roots: r.roots, - mains: r.mains, - mainByDir: r.mainByDir, - modsByModPath: r.modsByModPath, - - scanSema: make(chan struct{}, 1), - scannedRoots: make(map[gopathwalk.Root]bool), - otherCache: NewDirInfoCache(), - moduleCacheCache: r.moduleCacheCache, - } - r2.scanSema <- struct{}{} // r2 must start released - // Invalidate root scans. We don't need to invalidate module cache roots, - // because they are immutable. - // (We don't support a use case where GOMODCACHE is cleaned in the middle of - // e.g. a gopls session: the user must restart gopls to get accurate - // imports.) - // - // Scanning for new directories in GOMODCACHE should be handled elsewhere, - // via a call to ScanModuleCache. - for _, root := range r.roots { - if root.Type == gopathwalk.RootModuleCache && r.scannedRoots[root] { - r2.scannedRoots[root] = true - } - } - r.scanSema <- struct{}{} // release r - return r2 -} - -// ClearModuleInfo invalidates resolver state that depends on go.mod file -// contents (essentially, the output of go list -m -json ...). -// -// Notably, it does not forget directory contents, which are reset -// asynchronously via ClearForNewScan. -// -// If the ProcessEnv is a GOPATH environment, ClearModuleInfo is a no op. -// -// TODO(rfindley): move this to a new env.go, consolidating ProcessEnv methods. -func (e *ProcessEnv) ClearModuleInfo() { - if r, ok := e.resolver.(*ModuleResolver); ok { - resolver, err := newModuleResolver(e, e.ModCache) - if err != nil { - e.resolver = nil - e.resolverErr = err - return - } - - <-r.scanSema // acquire (guards caches) - resolver.moduleCacheCache = r.moduleCacheCache - resolver.otherCache = r.otherCache - r.scanSema <- struct{}{} // release - - e.UpdateResolver(resolver) - } -} - -// UpdateResolver sets the resolver for the ProcessEnv to use in imports -// operations. Only for use with the result of [Resolver.ClearForNewScan]. -// -// TODO(rfindley): this awkward API is a result of the (arguably) inverted -// relationship between configuration and state described in the doc comment -// for [ProcessEnv]. -func (e *ProcessEnv) UpdateResolver(r Resolver) { - e.resolver = r - e.resolverErr = nil -} - -// findPackage returns the module and directory from within the main modules -// and their dependencies that contains the package at the given import path, -// or returns nil, "" if no module is in scope. -func (r *ModuleResolver) findPackage(importPath string) (*gocommand.ModuleJSON, string) { - // This can't find packages in the stdlib, but that's harmless for all - // the existing code paths. - for _, m := range r.modsByModPath { - if !strings.HasPrefix(importPath, m.Path) { - continue - } - pathInModule := importPath[len(m.Path):] - pkgDir := filepath.Join(m.Dir, pathInModule) - if r.dirIsNestedModule(pkgDir, m) { - continue - } - - if info, ok := r.cacheLoad(pkgDir); ok { - if loaded, err := info.reachedStatus(nameLoaded); loaded { - if err != nil { - continue // No package in this dir. - } - return m, pkgDir - } - if scanned, err := info.reachedStatus(directoryScanned); scanned && err != nil { - continue // Dir is unreadable, etc. - } - // This is slightly wrong: a directory doesn't have to have an - // importable package to count as a package for package-to-module - // resolution. package main or _test files should count but - // don't. - // TODO(heschi): fix this. - if _, err := r.cachePackageName(info); err == nil { - return m, pkgDir - } - } - - // Not cached. Read the filesystem. - pkgFiles, err := os.ReadDir(pkgDir) - if err != nil { - continue - } - // A module only contains a package if it has buildable go - // files in that directory. If not, it could be provided by an - // outer module. See #29736. - for _, fi := range pkgFiles { - if ok, _ := r.env.matchFile(pkgDir, fi.Name()); ok { - return m, pkgDir - } - } - } - return nil, "" -} - -func (r *ModuleResolver) cacheLoad(dir string) (directoryPackageInfo, bool) { - if info, ok := r.moduleCacheCache.Load(dir); ok { - return info, ok - } - return r.otherCache.Load(dir) -} - -func (r *ModuleResolver) cacheStore(info directoryPackageInfo) { - if info.rootType == gopathwalk.RootModuleCache { - r.moduleCacheCache.Store(info.dir, info) - } else { - r.otherCache.Store(info.dir, info) - } -} - -// cachePackageName caches the package name for a dir already in the cache. -func (r *ModuleResolver) cachePackageName(info directoryPackageInfo) (string, error) { - if info.rootType == gopathwalk.RootModuleCache { - return r.moduleCacheCache.CachePackageName(info) - } - return r.otherCache.CachePackageName(info) -} - -func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { - if info.rootType == gopathwalk.RootModuleCache { - return r.moduleCacheCache.CacheExports(ctx, env, info) - } - return r.otherCache.CacheExports(ctx, env, info) -} - -// findModuleByDir returns the module that contains dir, or nil if no such -// module is in scope. -func (r *ModuleResolver) findModuleByDir(dir string) *gocommand.ModuleJSON { - // This is quite tricky and may not be correct. dir could be: - // - a package in the main module. - // - a replace target underneath the main module's directory. - // - a nested module in the above. - // - a replace target somewhere totally random. - // - a nested module in the above. - // - in the mod cache. - // - in /vendor/ in -mod=vendor mode. - // - nested module? Dunno. - // Rumor has it that replace targets cannot contain other replace targets. - // - // Note that it is critical here that modsByDir is sorted to have deeper dirs - // first. This ensures that findModuleByDir finds the innermost module. - // See also golang/go#56291. - for _, m := range r.modsByDir { - if !strings.HasPrefix(dir, m.Dir) { - continue - } - - if r.dirIsNestedModule(dir, m) { - continue - } - - return m - } - return nil -} - -// dirIsNestedModule reports if dir is contained in a nested module underneath -// mod, not actually in mod. -func (r *ModuleResolver) dirIsNestedModule(dir string, mod *gocommand.ModuleJSON) bool { - if !strings.HasPrefix(dir, mod.Dir) { - return false - } - if r.dirInModuleCache(dir) { - // Nested modules in the module cache are pruned, - // so it cannot be a nested module. - return false - } - if mod != nil && mod == r.dummyVendorMod { - // The /vendor pseudomodule is flattened and doesn't actually count. - return false - } - modDir, _ := r.modInfo(dir) - if modDir == "" { - return false - } - return modDir != mod.Dir -} - -func readModName(modFile string) string { - modBytes, err := os.ReadFile(modFile) - if err != nil { - return "" - } - return modulePath(modBytes) -} - -func (r *ModuleResolver) modInfo(dir string) (modDir, modName string) { - if r.dirInModuleCache(dir) { - if matches := modCacheRegexp.FindStringSubmatch(dir); len(matches) == 3 { - index := strings.Index(dir, matches[1]+"@"+matches[2]) - modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) - return modDir, readModName(filepath.Join(modDir, "go.mod")) - } - } - for { - if info, ok := r.cacheLoad(dir); ok { - return info.moduleDir, info.moduleName - } - f := filepath.Join(dir, "go.mod") - info, err := os.Stat(f) - if err == nil && !info.IsDir() { - return dir, readModName(f) - } - - d := filepath.Dir(dir) - if len(d) >= len(dir) { - return "", "" // reached top of file system, no go.mod - } - dir = d - } -} - -func (r *ModuleResolver) dirInModuleCache(dir string) bool { - if r.moduleCacheDir == "" { - return false - } - return strings.HasPrefix(dir, r.moduleCacheDir) -} - -func (r *ModuleResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { - names := map[string]string{} - for _, path := range importPaths { - // TODO(rfindley): shouldn't this use the dirInfoCache? - _, packageDir := r.findPackage(path) - if packageDir == "" { - continue - } - name, err := packageDirToName(packageDir) - if err != nil { - continue - } - names[path] = name - } - return names, nil -} - -func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error { - ctx, done := event.Start(ctx, "imports.ModuleResolver.scan") - defer done() - - processDir := func(info directoryPackageInfo) { - // Skip this directory if we were not able to get the package information successfully. - if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { - return - } - pkg, err := r.canonicalize(info) - if err != nil { - return - } - if !callback.dirFound(pkg) { - return - } - - pkg.packageName, err = r.cachePackageName(info) - if err != nil { - return - } - if !callback.packageNameLoaded(pkg) { - return - } - - _, exports, err := r.loadExports(ctx, pkg, false) - if err != nil { - return - } - callback.exportsLoaded(pkg, exports) - } - - // Start processing everything in the cache, and listen for the new stuff - // we discover in the walk below. - stop1 := r.moduleCacheCache.ScanAndListen(ctx, processDir) - defer stop1() - stop2 := r.otherCache.ScanAndListen(ctx, processDir) - defer stop2() - - // We assume cached directories are fully cached, including all their - // children, and have not changed. We can skip them. - skip := func(root gopathwalk.Root, dir string) bool { - if r.env.SkipPathInScan != nil && root.Type == gopathwalk.RootCurrentModule { - if root.Path == dir { - return false - } - - if r.env.SkipPathInScan(filepath.Clean(dir)) { - return true - } - } - - info, ok := r.cacheLoad(dir) - if !ok { - return false - } - // This directory can be skipped as long as we have already scanned it. - // Packages with errors will continue to have errors, so there is no need - // to rescan them. - packageScanned, _ := info.reachedStatus(directoryScanned) - return packageScanned - } - - add := func(root gopathwalk.Root, dir string) { - r.cacheStore(r.scanDirForPackage(root, dir)) - } - - // r.roots and the callback are not necessarily safe to use in the - // goroutine below. Process them eagerly. - roots := filterRoots(r.roots, callback.rootFound) - // We can't cancel walks, because we need them to finish to have a usable - // cache. Instead, run them in a separate goroutine and detach. - scanDone := make(chan struct{}) - go func() { - select { - case <-ctx.Done(): - return - case <-r.scanSema: // acquire - } - defer func() { r.scanSema <- struct{}{} }() // release - // We have the lock on r.scannedRoots, and no other scans can run. - for _, root := range roots { - if ctx.Err() != nil { - return - } - - if r.scannedRoots[root] { - continue - } - gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: r.env.Logf, ModulesEnabled: true}) - r.scannedRoots[root] = true - } - close(scanDone) - }() - select { - case <-ctx.Done(): - case <-scanDone: - } - return nil -} - -func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) float64 { - if stdlib.HasPackage(path) { - return MaxRelevance - } - mod, _ := r.findPackage(path) - return modRelevance(mod) -} - -func modRelevance(mod *gocommand.ModuleJSON) float64 { - var relevance float64 - switch { - case mod == nil: // out of scope - return MaxRelevance - 4 - case mod.Indirect: - relevance = MaxRelevance - 3 - case !mod.Main: - relevance = MaxRelevance - 2 - default: - relevance = MaxRelevance - 1 // main module ties with stdlib - } - - _, versionString, ok := module.SplitPathVersion(mod.Path) - if ok { - index := strings.Index(versionString, "v") - if index == -1 { - return relevance - } - if versionNumber, err := strconv.ParseFloat(versionString[index+1:], 64); err == nil { - relevance += versionNumber / 1000 - } - } - - return relevance -} - -// canonicalize gets the result of canonicalizing the packages using the results -// of initializing the resolver from 'go list -m'. -func (r *ModuleResolver) canonicalize(info directoryPackageInfo) (*pkg, error) { - // Packages in GOROOT are already canonical, regardless of the std/cmd modules. - if info.rootType == gopathwalk.RootGOROOT { - return &pkg{ - importPathShort: info.nonCanonicalImportPath, - dir: info.dir, - packageName: path.Base(info.nonCanonicalImportPath), - relevance: MaxRelevance, - }, nil - } - - importPath := info.nonCanonicalImportPath - mod := r.findModuleByDir(info.dir) - // Check if the directory is underneath a module that's in scope. - if mod != nil { - // It is. If dir is the target of a replace directive, - // our guessed import path is wrong. Use the real one. - if mod.Dir == info.dir { - importPath = mod.Path - } else { - dirInMod := info.dir[len(mod.Dir)+len("/"):] - importPath = path.Join(mod.Path, filepath.ToSlash(dirInMod)) - } - } else if !strings.HasPrefix(importPath, info.moduleName) { - // The module's name doesn't match the package's import path. It - // probably needs a replace directive we don't have. - return nil, fmt.Errorf("package in %q is not valid without a replace statement", info.dir) - } - - res := &pkg{ - importPathShort: importPath, - dir: info.dir, - relevance: modRelevance(mod), - } - // We may have discovered a package that has a different version - // in scope already. Canonicalize to that one if possible. - if _, canonicalDir := r.findPackage(importPath); canonicalDir != "" { - res.dir = canonicalDir - } - return res, nil -} - -func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { - if info, ok := r.cacheLoad(pkg.dir); ok && !includeTest { - return r.cacheExports(ctx, r.env, info) - } - return loadExportsFromFiles(ctx, r.env, pkg.dir, includeTest) -} - -func (r *ModuleResolver) scanDirForPackage(root gopathwalk.Root, dir string) directoryPackageInfo { - subdir := "" - if prefix := root.Path + string(filepath.Separator); strings.HasPrefix(dir, prefix) { - subdir = dir[len(prefix):] - } - importPath := filepath.ToSlash(subdir) - if strings.HasPrefix(importPath, "vendor/") { - // Only enter vendor directories if they're explicitly requested as a root. - return directoryPackageInfo{ - status: directoryScanned, - err: fmt.Errorf("unwanted vendor directory"), - } - } - switch root.Type { - case gopathwalk.RootCurrentModule: - importPath = path.Join(r.mainByDir[root.Path].Path, filepath.ToSlash(subdir)) - case gopathwalk.RootModuleCache: - matches := modCacheRegexp.FindStringSubmatch(subdir) - if len(matches) == 0 { - return directoryPackageInfo{ - status: directoryScanned, - err: fmt.Errorf("invalid module cache path: %v", subdir), - } - } - modPath, err := module.UnescapePath(filepath.ToSlash(matches[1])) - if err != nil { - r.env.logf("decoding module cache path %q: %v", subdir, err) - return directoryPackageInfo{ - status: directoryScanned, - err: fmt.Errorf("decoding module cache path %q: %v", subdir, err), - } - } - importPath = path.Join(modPath, filepath.ToSlash(matches[3])) - } - - modDir, modName := r.modInfo(dir) - result := directoryPackageInfo{ - status: directoryScanned, - dir: dir, - rootType: root.Type, - nonCanonicalImportPath: importPath, - moduleDir: modDir, - moduleName: modName, - } - if root.Type == gopathwalk.RootGOROOT { - // stdlib packages are always in scope, despite the confusing go.mod - return result - } - return result -} - -// modCacheRegexp splits a path in a module cache into module, module version, and package. -var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) - -var ( - slashSlash = []byte("//") - moduleStr = []byte("module") -) - -// modulePath returns the module path from the gomod file text. -// If it cannot find a module path, it returns an empty string. -// It is tolerant of unrelated problems in the go.mod file. -// -// Copied from cmd/go/internal/modfile. -func modulePath(mod []byte) string { - for len(mod) > 0 { - line := mod - mod = nil - if i := bytes.IndexByte(line, '\n'); i >= 0 { - line, mod = line[:i], line[i+1:] - } - if i := bytes.Index(line, slashSlash); i >= 0 { - line = line[:i] - } - line = bytes.TrimSpace(line) - if !bytes.HasPrefix(line, moduleStr) { - continue - } - line = line[len(moduleStr):] - n := len(line) - line = bytes.TrimSpace(line) - if len(line) == n || len(line) == 0 { - continue - } - - if line[0] == '"' || line[0] == '`' { - p, err := strconv.Unquote(string(line)) - if err != nil { - return "" // malformed quoted string or multiline module path - } - return p - } - - return string(line) - } - return "" // missing module path -} diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go deleted file mode 100644 index b96c9d4..0000000 --- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go +++ /dev/null @@ -1,331 +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. - -package imports - -import ( - "context" - "fmt" - "path" - "path/filepath" - "strings" - "sync" - - "golang.org/x/mod/module" - "golang.org/x/tools/internal/gopathwalk" - "golang.org/x/tools/internal/stdlib" -) - -// To find packages to import, the resolver needs to know about all of -// the packages that could be imported. This includes packages that are -// already in modules that are in (1) the current module, (2) replace targets, -// and (3) packages in the module cache. Packages in (1) and (2) may change over -// time, as the client may edit the current module and locally replaced modules. -// The module cache (which includes all of the packages in (3)) can only -// ever be added to. -// -// The resolver can thus save state about packages in the module cache -// and guarantee that this will not change over time. To obtain information -// about new modules added to the module cache, the module cache should be -// rescanned. -// -// It is OK to serve information about modules that have been deleted, -// as they do still exist. -// TODO(suzmue): can we share information with the caller about -// what module needs to be downloaded to import this package? - -type directoryPackageStatus int - -const ( - _ directoryPackageStatus = iota - directoryScanned - nameLoaded - exportsLoaded -) - -// directoryPackageInfo holds (possibly incomplete) information about packages -// contained in a given directory. -type directoryPackageInfo struct { - // status indicates the extent to which this struct has been filled in. - status directoryPackageStatus - // err is non-nil when there was an error trying to reach status. - err error - - // Set when status >= directoryScanned. - - // dir is the absolute directory of this package. - dir string - rootType gopathwalk.RootType - // nonCanonicalImportPath is the package's expected import path. It may - // not actually be importable at that path. - nonCanonicalImportPath string - - // Module-related information. - moduleDir string // The directory that is the module root of this dir. - moduleName string // The module name that contains this dir. - - // Set when status >= nameLoaded. - - packageName string // the package name, as declared in the source. - - // Set when status >= exportsLoaded. - // TODO(rfindley): it's hard to see this, but exports depend implicitly on - // the default build context GOOS and GOARCH. - // - // We can make this explicit, and key exports by GOOS, GOARCH. - exports []stdlib.Symbol -} - -// reachedStatus returns true when info has a status at least target and any error associated with -// an attempt to reach target. -func (info *directoryPackageInfo) reachedStatus(target directoryPackageStatus) (bool, error) { - if info.err == nil { - return info.status >= target, nil - } - if info.status == target { - return true, info.err - } - return true, nil -} - -// DirInfoCache is a concurrency-safe map for storing information about -// directories that may contain packages. -// -// The information in this cache is built incrementally. Entries are initialized in scan. -// No new keys should be added in any other functions, as all directories containing -// packages are identified in scan. -// -// Other functions, including loadExports and findPackage, may update entries in this cache -// as they discover new things about the directory. -// -// The information in the cache is not expected to change for the cache's -// lifetime, so there is no protection against competing writes. Users should -// take care not to hold the cache across changes to the underlying files. -type DirInfoCache struct { - mu sync.Mutex - // dirs stores information about packages in directories, keyed by absolute path. - dirs map[string]*directoryPackageInfo - listeners map[*int]cacheListener -} - -func NewDirInfoCache() *DirInfoCache { - return &DirInfoCache{ - dirs: make(map[string]*directoryPackageInfo), - listeners: make(map[*int]cacheListener), - } -} - -type cacheListener func(directoryPackageInfo) - -// ScanAndListen calls listener on all the items in the cache, and on anything -// newly added. The returned stop function waits for all in-flight callbacks to -// finish and blocks new ones. -func (d *DirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener) func() { - ctx, cancel := context.WithCancel(ctx) - - // Flushing out all the callbacks is tricky without knowing how many there - // are going to be. Setting an arbitrary limit makes it much easier. - const maxInFlight = 10 - sema := make(chan struct{}, maxInFlight) - for range maxInFlight { - sema <- struct{}{} - } - - cookie := new(int) // A unique ID we can use for the listener. - - // We can't hold mu while calling the listener. - d.mu.Lock() - var keys []string - for key := range d.dirs { - keys = append(keys, key) - } - d.listeners[cookie] = func(info directoryPackageInfo) { - select { - case <-ctx.Done(): - return - case <-sema: - } - listener(info) - sema <- struct{}{} - } - d.mu.Unlock() - - stop := func() { - cancel() - d.mu.Lock() - delete(d.listeners, cookie) - d.mu.Unlock() - for range maxInFlight { - <-sema - } - } - - // Process the pre-existing keys. - for _, k := range keys { - select { - case <-ctx.Done(): - return stop - default: - } - if v, ok := d.Load(k); ok { - listener(v) - } - } - - return stop -} - -// Store stores the package info for dir. -func (d *DirInfoCache) Store(dir string, info directoryPackageInfo) { - d.mu.Lock() - // TODO(rfindley, golang/go#59216): should we overwrite an existing entry? - // That seems incorrect as the cache should be idempotent. - _, old := d.dirs[dir] - d.dirs[dir] = &info - var listeners []cacheListener - for _, l := range d.listeners { - listeners = append(listeners, l) - } - d.mu.Unlock() - - if !old { - for _, l := range listeners { - l(info) - } - } -} - -// Load returns a copy of the directoryPackageInfo for absolute directory dir. -func (d *DirInfoCache) Load(dir string) (directoryPackageInfo, bool) { - d.mu.Lock() - defer d.mu.Unlock() - info, ok := d.dirs[dir] - if !ok { - return directoryPackageInfo{}, false - } - return *info, true -} - -// Keys returns the keys currently present in d. -func (d *DirInfoCache) Keys() (keys []string) { - d.mu.Lock() - defer d.mu.Unlock() - for key := range d.dirs { - keys = append(keys, key) - } - return keys -} - -func (d *DirInfoCache) CachePackageName(info directoryPackageInfo) (string, error) { - if loaded, err := info.reachedStatus(nameLoaded); loaded { - return info.packageName, err - } - if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { - return "", fmt.Errorf("cannot read package name, scan error: %v", err) - } - info.packageName, info.err = packageDirToName(info.dir) - info.status = nameLoaded - d.Store(info.dir, info) - return info.packageName, info.err -} - -func (d *DirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { - if reached, _ := info.reachedStatus(exportsLoaded); reached { - return info.packageName, info.exports, info.err - } - if reached, err := info.reachedStatus(nameLoaded); reached && err != nil { - return "", nil, err - } - info.packageName, info.exports, info.err = loadExportsFromFiles(ctx, env, info.dir, false) - if info.err == context.Canceled || info.err == context.DeadlineExceeded { - return info.packageName, info.exports, info.err - } - // The cache structure wants things to proceed linearly. We can skip a - // step here, but only if we succeed. - if info.status == nameLoaded || info.err == nil { - info.status = exportsLoaded - } else { - info.status = nameLoaded - } - d.Store(info.dir, info) - return info.packageName, info.exports, info.err -} - -// ScanModuleCache walks the given directory, which must be a GOMODCACHE value, -// for directory package information, storing the results in cache. -func ScanModuleCache(dir string, cache *DirInfoCache, logf func(string, ...any)) { - // Note(rfindley): it's hard to see, but this function attempts to implement - // just the side effects on cache of calling PrimeCache with a ProcessEnv - // that has the given dir as its GOMODCACHE. - // - // Teasing out the control flow, we see that we can avoid any handling of - // vendor/ and can infer module info entirely from the path, simplifying the - // logic here. - - root := gopathwalk.Root{ - Path: filepath.Clean(dir), - Type: gopathwalk.RootModuleCache, - } - - directoryInfo := func(root gopathwalk.Root, dir string) directoryPackageInfo { - // This is a copy of ModuleResolver.scanDirForPackage, trimmed down to - // logic that applies to a module cache directory. - - subdir := "" - if dir != root.Path { - subdir = dir[len(root.Path)+len("/"):] - } - - matches := modCacheRegexp.FindStringSubmatch(subdir) - if len(matches) == 0 { - return directoryPackageInfo{ - status: directoryScanned, - err: fmt.Errorf("invalid module cache path: %v", subdir), - } - } - modPath, err := module.UnescapePath(filepath.ToSlash(matches[1])) - if err != nil { - if logf != nil { - logf("decoding module cache path %q: %v", subdir, err) - } - return directoryPackageInfo{ - status: directoryScanned, - err: fmt.Errorf("decoding module cache path %q: %v", subdir, err), - } - } - importPath := path.Join(modPath, filepath.ToSlash(matches[3])) - index := strings.Index(dir, matches[1]+"@"+matches[2]) - modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) - modName := readModName(filepath.Join(modDir, "go.mod")) - return directoryPackageInfo{ - status: directoryScanned, - dir: dir, - rootType: root.Type, - nonCanonicalImportPath: importPath, - moduleDir: modDir, - moduleName: modName, - } - } - - add := func(root gopathwalk.Root, dir string) { - info := directoryInfo(root, dir) - cache.Store(info.dir, info) - } - - skip := func(_ gopathwalk.Root, dir string) bool { - // Skip directories that have already been scanned. - // - // Note that gopathwalk only adds "package" directories, which must contain - // a .go file, and all such package directories in the module cache are - // immutable. So if we can load a dir, it can be skipped. - info, ok := cache.Load(dir) - if !ok { - return false - } - packageScanned, _ := info.reachedStatus(directoryScanned) - return packageScanned - } - - gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: logf, ModulesEnabled: true}) -} diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go deleted file mode 100644 index 67c17bc..0000000 --- a/vendor/golang.org/x/tools/internal/imports/sortimports.go +++ /dev/null @@ -1,298 +0,0 @@ -// Copyright 2013 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. - -// Hacked up copy of go/ast/import.go -// Modified to use a single token.File in preference to a FileSet. - -package imports - -import ( - "go/ast" - "go/token" - "log" - "slices" - "sort" - "strconv" -) - -// sortImports sorts runs of consecutive import lines in import blocks in f. -// It also removes duplicate imports when it is possible to do so without data loss. -// -// It may mutate the token.File and the ast.File. -func sortImports(localPrefix string, tokFile *token.File, f *ast.File) { - for i, d := range f.Decls { - d, ok := d.(*ast.GenDecl) - if !ok || d.Tok != token.IMPORT { - // Not an import declaration, so we're done. - // Imports are always first. - break - } - - if len(d.Specs) == 0 { - // Empty import block, remove it. - f.Decls = slices.Delete(f.Decls, i, i+1) - } - - if !d.Lparen.IsValid() { - // Not a block: sorted by default. - continue - } - - // Identify and sort runs of specs on successive lines. - i := 0 - specs := d.Specs[:0] - for j, s := range d.Specs { - if j > i && tokFile.Line(s.Pos()) > 1+tokFile.Line(d.Specs[j-1].End()) { - // j begins a new run. End this one. - specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:j])...) - i = j - } - } - specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:])...) - d.Specs = specs - - // Deduping can leave a blank line before the rparen; clean that up. - // Ignore line directives. - if len(d.Specs) > 0 { - lastSpec := d.Specs[len(d.Specs)-1] - lastLine := tokFile.PositionFor(lastSpec.Pos(), false).Line - if rParenLine := tokFile.PositionFor(d.Rparen, false).Line; rParenLine > lastLine+1 { - tokFile.MergeLine(rParenLine - 1) // has side effects! - } - } - } -} - -// mergeImports merges all the import declarations into the first one. -// Taken from golang.org/x/tools/ast/astutil. -// This does not adjust line numbers properly -func mergeImports(f *ast.File) { - if len(f.Decls) <= 1 { - return - } - - // Merge all the import declarations into the first one. - var first *ast.GenDecl - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { - continue - } - if first == nil { - first = gen - continue // Don't touch the first one. - } - // We now know there is more than one package in this import - // declaration. Ensure that it ends up parenthesized. - first.Lparen = first.Pos() - // Move the imports of the other import declaration to the first one. - for _, spec := range gen.Specs { - spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() - first.Specs = append(first.Specs, spec) - } - f.Decls = slices.Delete(f.Decls, i, i+1) - i-- - } -} - -// declImports reports whether gen contains an import of path. -// Taken from golang.org/x/tools/ast/astutil. -func declImports(gen *ast.GenDecl, path string) bool { - if gen.Tok != token.IMPORT { - return false - } - for _, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - if importPath(impspec) == path { - return true - } - } - return false -} - -func importPath(s ast.Spec) string { - t, err := strconv.Unquote(s.(*ast.ImportSpec).Path.Value) - if err == nil { - return t - } - return "" -} - -func importName(s ast.Spec) string { - n := s.(*ast.ImportSpec).Name - if n == nil { - return "" - } - return n.Name -} - -func importComment(s ast.Spec) string { - c := s.(*ast.ImportSpec).Comment - if c == nil { - return "" - } - return c.Text() -} - -// collapse indicates whether prev may be removed, leaving only next. -func collapse(prev, next ast.Spec) bool { - if importPath(next) != importPath(prev) || importName(next) != importName(prev) { - return false - } - return prev.(*ast.ImportSpec).Comment == nil -} - -type posSpan struct { - Start token.Pos - End token.Pos -} - -// sortSpecs sorts the import specs within each import decl. -// It may mutate the token.File. -func sortSpecs(localPrefix string, tokFile *token.File, f *ast.File, specs []ast.Spec) []ast.Spec { - // Can't short-circuit here even if specs are already sorted, - // since they might yet need deduplication. - // A lone import, however, may be safely ignored. - if len(specs) <= 1 { - return specs - } - - // Record positions for specs. - pos := make([]posSpan, len(specs)) - for i, s := range specs { - pos[i] = posSpan{s.Pos(), s.End()} - } - - // Identify comments in this range. - // Any comment from pos[0].Start to the final line counts. - lastLine := tokFile.Line(pos[len(pos)-1].End) - cstart := len(f.Comments) - cend := len(f.Comments) - for i, g := range f.Comments { - if g.Pos() < pos[0].Start { - continue - } - if i < cstart { - cstart = i - } - if tokFile.Line(g.End()) > lastLine { - cend = i - break - } - } - comments := f.Comments[cstart:cend] - - // Assign each comment to the import spec preceding it. - importComment := map[*ast.ImportSpec][]*ast.CommentGroup{} - specIndex := 0 - for _, g := range comments { - for specIndex+1 < len(specs) && pos[specIndex+1].Start <= g.Pos() { - specIndex++ - } - s := specs[specIndex].(*ast.ImportSpec) - importComment[s] = append(importComment[s], g) - } - - // Sort the import specs by import path. - // Remove duplicates, when possible without data loss. - // Reassign the import paths to have the same position sequence. - // Reassign each comment to abut the end of its spec. - // Sort the comments by new position. - sort.Sort(byImportSpec{localPrefix, specs}) - - // Dedup. Thanks to our sorting, we can just consider - // adjacent pairs of imports. - deduped := specs[:0] - for i, s := range specs { - if i == len(specs)-1 || !collapse(s, specs[i+1]) { - deduped = append(deduped, s) - } else { - p := s.Pos() - tokFile.MergeLine(tokFile.Line(p)) // has side effects! - } - } - specs = deduped - - // Fix up comment positions - for i, s := range specs { - s := s.(*ast.ImportSpec) - if s.Name != nil { - s.Name.NamePos = pos[i].Start - } - s.Path.ValuePos = pos[i].Start - s.EndPos = pos[i].End - nextSpecPos := pos[i].End - - for _, g := range importComment[s] { - for _, c := range g.List { - c.Slash = pos[i].End - nextSpecPos = c.End() - } - } - if i < len(specs)-1 { - pos[i+1].Start = nextSpecPos - pos[i+1].End = nextSpecPos - } - } - - sort.Sort(byCommentPos(comments)) - - // Fixup comments can insert blank lines, because import specs are on different lines. - // We remove those blank lines here by merging import spec to the first import spec line. - firstSpecLine := tokFile.Line(specs[0].Pos()) - for _, s := range specs[1:] { - p := s.Pos() - line := tokFile.Line(p) - for previousLine := line - 1; previousLine >= firstSpecLine; { - // MergeLine can panic. Avoid the panic at the cost of not removing the blank line - // golang/go#50329 - if previousLine > 0 && previousLine < tokFile.LineCount() { - tokFile.MergeLine(previousLine) // has side effects! - previousLine-- - } else { - // try to gather some data to diagnose how this could happen - req := "Please report what the imports section of your go file looked like." - log.Printf("panic avoided: first:%d line:%d previous:%d max:%d. %s", - firstSpecLine, line, previousLine, tokFile.LineCount(), req) - } - } - } - return specs -} - -type byImportSpec struct { - localPrefix string - specs []ast.Spec // slice of *ast.ImportSpec -} - -func (x byImportSpec) Len() int { return len(x.specs) } -func (x byImportSpec) Swap(i, j int) { x.specs[i], x.specs[j] = x.specs[j], x.specs[i] } -func (x byImportSpec) Less(i, j int) bool { - ipath := importPath(x.specs[i]) - jpath := importPath(x.specs[j]) - - igroup := importGroup(x.localPrefix, ipath) - jgroup := importGroup(x.localPrefix, jpath) - if igroup != jgroup { - return igroup < jgroup - } - - if ipath != jpath { - return ipath < jpath - } - iname := importName(x.specs[i]) - jname := importName(x.specs[j]) - - if iname != jname { - return iname < jname - } - return importComment(x.specs[i]) < importComment(x.specs[j]) -} - -type byCommentPos []*ast.CommentGroup - -func (x byCommentPos) Len() int { return len(x) } -func (x byCommentPos) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x byCommentPos) Less(i, j int) bool { return x[i].Pos() < x[j].Pos() } diff --git a/vendor/golang.org/x/tools/internal/imports/source.go b/vendor/golang.org/x/tools/internal/imports/source.go deleted file mode 100644 index cbe4f3c..0000000 --- a/vendor/golang.org/x/tools/internal/imports/source.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package imports - -import "context" - -// These types document the APIs below. -// -// TODO(rfindley): consider making these defined types rather than aliases. -type ( - ImportPath = string - PackageName = string - Symbol = string - - // References is set of References found in a Go file. The first map key is the - // left hand side of a selector expression, the second key is the right hand - // side, and the value should always be true. - References = map[PackageName]map[Symbol]bool -) - -// A Result satisfies a missing import. -// -// The Import field describes the missing import spec, and the Package field -// summarizes the package exports. -type Result struct { - Import *ImportInfo - Package *PackageInfo -} - -// An ImportInfo represents a single import statement. -type ImportInfo struct { - ImportPath string // import path, e.g. "crypto/rand". - Name string // import name, e.g. "crand", or "" if none. -} - -// A PackageInfo represents what's known about a package. -type PackageInfo struct { - Name string // package name in the package declaration, if known - Exports map[string]bool // set of names of known package level sortSymbols -} - -// A Source provides imports to satisfy unresolved references in the file being -// fixed. -type Source interface { - // LoadPackageNames queries PackageName information for the requested import - // paths, when operating from the provided srcDir. - // - // TODO(rfindley): try to refactor to remove this operation. - LoadPackageNames(ctx context.Context, srcDir string, paths []ImportPath) (map[ImportPath]PackageName, error) - - // ResolveReferences asks the Source for the best package name to satisfy - // each of the missing references, in the context of fixing the given - // filename. - // - // Returns a map from package name to a [Result] for that package name that - // provides the required symbols. Keys may be omitted in the map if no - // candidates satisfy all missing references for that package name. It is up - // to each data source to select the best result for each entry in the - // missing map. - ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) -} diff --git a/vendor/golang.org/x/tools/internal/imports/source_env.go b/vendor/golang.org/x/tools/internal/imports/source_env.go deleted file mode 100644 index ec996c3..0000000 --- a/vendor/golang.org/x/tools/internal/imports/source_env.go +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package imports - -import ( - "context" - "path/filepath" - "strings" - "sync" - - "golang.org/x/sync/errgroup" - "golang.org/x/tools/internal/gopathwalk" -) - -// ProcessEnvSource implements the [Source] interface using the legacy -// [ProcessEnv] abstraction. -type ProcessEnvSource struct { - env *ProcessEnv - srcDir string - filename string - pkgName string -} - -// NewProcessEnvSource returns a [ProcessEnvSource] wrapping the given -// env, to be used for fixing imports in the file with name filename in package -// named pkgName. -func NewProcessEnvSource(env *ProcessEnv, filename, pkgName string) (*ProcessEnvSource, error) { - abs, err := filepath.Abs(filename) - if err != nil { - return nil, err - } - srcDir := filepath.Dir(abs) - return &ProcessEnvSource{ - env: env, - srcDir: srcDir, - filename: filename, - pkgName: pkgName, - }, nil -} - -func (s *ProcessEnvSource) LoadPackageNames(ctx context.Context, srcDir string, unknown []string) (map[string]string, error) { - r, err := s.env.GetResolver() - if err != nil { - return nil, err - } - return r.loadPackageNames(unknown, srcDir) -} - -func (s *ProcessEnvSource) ResolveReferences(ctx context.Context, filename string, refs map[string]map[string]bool) ([]*Result, error) { - var mu sync.Mutex - found := make(map[string][]pkgDistance) - callback := &scanCallback{ - rootFound: func(gopathwalk.Root) bool { - return true // We want everything. - }, - dirFound: func(pkg *pkg) bool { - return pkgIsCandidate(filename, refs, pkg) - }, - packageNameLoaded: func(pkg *pkg) bool { - if _, want := refs[pkg.packageName]; !want { - return false - } - if pkg.dir == s.srcDir && s.pkgName == pkg.packageName { - // The candidate is in the same directory and has the - // same package name. Don't try to import ourselves. - return false - } - if !CanUse(filename, pkg.dir) { - return false - } - mu.Lock() - defer mu.Unlock() - found[pkg.packageName] = append(found[pkg.packageName], pkgDistance{pkg, distance(s.srcDir, pkg.dir)}) - return false // We'll do our own loading after we sort. - }, - } - resolver, err := s.env.GetResolver() - if err != nil { - return nil, err - } - if err := resolver.scan(ctx, callback); err != nil { - return nil, err - } - - g, ctx := errgroup.WithContext(ctx) - - searcher := symbolSearcher{ - logf: s.env.logf, - srcDir: s.srcDir, - xtest: strings.HasSuffix(s.pkgName, "_test"), - loadExports: resolver.loadExports, - } - - var resultMu sync.Mutex - results := make(map[string]*Result, len(refs)) - for pkgName, symbols := range refs { - g.Go(func() error { - found, err := searcher.search(ctx, found[pkgName], pkgName, symbols) - if err != nil { - return err - } - if found == nil { - return nil // No matching package. - } - - imp := &ImportInfo{ - ImportPath: found.importPathShort, - } - pkg := &PackageInfo{ - Name: pkgName, - Exports: symbols, - } - resultMu.Lock() - results[pkgName] = &Result{Import: imp, Package: pkg} - resultMu.Unlock() - return nil - }) - } - if err := g.Wait(); err != nil { - return nil, err - } - var ans []*Result - for _, x := range results { - ans = append(ans, x) - } - return ans, nil -} diff --git a/vendor/golang.org/x/tools/internal/imports/source_modindex.go b/vendor/golang.org/x/tools/internal/imports/source_modindex.go deleted file mode 100644 index 05229f0..0000000 --- a/vendor/golang.org/x/tools/internal/imports/source_modindex.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package imports - -import ( - "context" - "sync" - "time" - - "golang.org/x/tools/internal/modindex" -) - -// This code is here rather than in the modindex package -// to avoid import loops - -// implements Source using modindex, so only for module cache. -// -// this is perhaps over-engineered. A new Index is read at first use. -// And then Update is called after every 15 minutes, and a new Index -// is read if the index changed. It is not clear the Mutex is needed. -type IndexSource struct { - modcachedir string - mutex sync.Mutex - ix *modindex.Index - expires time.Time -} - -// create a new Source. Called from NewView in cache/session.go. -func NewIndexSource(cachedir string) *IndexSource { - return &IndexSource{modcachedir: cachedir} -} - -func (s *IndexSource) LoadPackageNames(ctx context.Context, srcDir string, paths []ImportPath) (map[ImportPath]PackageName, error) { - /// This is used by goimports to resolve the package names of imports of the - // current package, which is irrelevant for the module cache. - return nil, nil -} - -func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) { - if err := s.maybeReadIndex(); err != nil { - return nil, err - } - var cs []modindex.Candidate - for pkg, nms := range missing { - for nm := range nms { - x := s.ix.Lookup(pkg, nm, false) - cs = append(cs, x...) - } - } - found := make(map[string]*Result) - for _, c := range cs { - var x *Result - if x = found[c.ImportPath]; x == nil { - x = &Result{ - Import: &ImportInfo{ - ImportPath: c.ImportPath, - Name: "", - }, - Package: &PackageInfo{ - Name: c.PkgName, - Exports: make(map[string]bool), - }, - } - found[c.ImportPath] = x - } - x.Package.Exports[c.Name] = true - } - var ans []*Result - for _, x := range found { - ans = append(ans, x) - } - return ans, nil -} - -func (s *IndexSource) maybeReadIndex() error { - s.mutex.Lock() - defer s.mutex.Unlock() - - var readIndex bool - if time.Now().After(s.expires) { - ok, err := modindex.Update(s.modcachedir) - if err != nil { - return err - } - if ok { - readIndex = true - } - } - - if readIndex || s.ix == nil { - ix, err := modindex.ReadIndex(s.modcachedir) - if err != nil { - return err - } - s.ix = ix - // for now refresh every 15 minutes - s.expires = time.Now().Add(time.Minute * 15) - } - - return nil -} diff --git a/vendor/golang.org/x/tools/internal/modindex/directories.go b/vendor/golang.org/x/tools/internal/modindex/directories.go deleted file mode 100644 index 2faa6ce..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/directories.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modindex - -import ( - "fmt" - "log" - "os" - "path/filepath" - "regexp" - "slices" - "strings" - "sync" - "time" - - "golang.org/x/mod/semver" - "golang.org/x/tools/internal/gopathwalk" -) - -type directory struct { - path Relpath - importPath string - version string // semantic version - syms []symbol -} - -// byImportPath groups the directories by import path, -// sorting the ones with the same import path by semantic version, -// most recent first. -func byImportPath(dirs []Relpath) (map[string][]*directory, error) { - ans := make(map[string][]*directory) // key is import path - for _, d := range dirs { - ip, sv, err := DirToImportPathVersion(d) - if err != nil { - return nil, err - } - ans[ip] = append(ans[ip], &directory{ - path: d, - importPath: ip, - version: sv, - }) - } - for k, v := range ans { - semanticSort(v) - ans[k] = v - } - return ans, nil -} - -// sort the directories by semantic version, latest first -func semanticSort(v []*directory) { - slices.SortFunc(v, func(l, r *directory) int { - if n := semver.Compare(l.version, r.version); n != 0 { - return -n // latest first - } - return strings.Compare(string(l.path), string(r.path)) - }) -} - -// modCacheRegexp splits a relpathpath into module, module version, and package. -var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) - -// DirToImportPathVersion computes import path and semantic version -func DirToImportPathVersion(dir Relpath) (string, string, error) { - m := modCacheRegexp.FindStringSubmatch(string(dir)) - // m[1] is the module path - // m[2] is the version major.minor.patch(-<pre release identifier) - // m[3] is the rest of the package path - if len(m) != 4 { - return "", "", fmt.Errorf("bad dir %s", dir) - } - if !semver.IsValid(m[2]) { - return "", "", fmt.Errorf("bad semantic version %s", m[2]) - } - // ToSlash is required for Windows. - return filepath.ToSlash(m[1] + m[3]), m[2], nil -} - -// a region controls what directories to look at, for -// updating the index incrementally, and for testing that. -// (for testing one builds an index as of A, incrementally -// updates it to B, and compares the result to an index build -// as of B.) -type region struct { - onlyAfter, onlyBefore time.Time - sync.Mutex - ans []Relpath -} - -func findDirs(root string, onlyAfter, onlyBefore time.Time) []Relpath { - roots := []gopathwalk.Root{{Path: root, Type: gopathwalk.RootModuleCache}} - // TODO(PJW): adjust concurrency - opts := gopathwalk.Options{ModulesEnabled: true, Concurrency: 1 /* ,Logf: log.Printf*/} - betw := &region{ - onlyAfter: onlyAfter, - onlyBefore: onlyBefore, - } - gopathwalk.WalkSkip(roots, betw.addDir, betw.skipDir, opts) - return betw.ans -} - -func (r *region) addDir(rt gopathwalk.Root, dir string) { - // do we need to check times? - r.Lock() - defer r.Unlock() - x := filepath.ToSlash(string(toRelpath(Abspath(rt.Path), dir))) - r.ans = append(r.ans, toRelpath(Abspath(rt.Path), x)) -} - -func (r *region) skipDir(_ gopathwalk.Root, dir string) bool { - // The cache directory is already ignored in gopathwalk\ - if filepath.Base(dir) == "internal" { - return true - } - if strings.Contains(dir, "toolchain@") { - return true - } - // don't look inside @ directories that are too old - if strings.Contains(filepath.Base(dir), "@") { - st, err := os.Stat(dir) - if err != nil { - log.Printf("can't stat dir %s %v", dir, err) - return true - } - if st.ModTime().Before(r.onlyAfter) { - return true - } - if st.ModTime().After(r.onlyBefore) { - return true - } - } - return false -} diff --git a/vendor/golang.org/x/tools/internal/modindex/index.go b/vendor/golang.org/x/tools/internal/modindex/index.go deleted file mode 100644 index 9665356..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/index.go +++ /dev/null @@ -1,266 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modindex - -import ( - "bufio" - "encoding/csv" - "errors" - "fmt" - "hash/crc64" - "io" - "io/fs" - "log" - "os" - "path/filepath" - "strconv" - "strings" - "testing" - "time" -) - -/* -The on-disk index is a text file. -The first 3 lines are header information containing CurrentVersion, -the value of GOMODCACHE, and the validity date of the index. -(This is when the code started building the index.) -Following the header are sections of lines, one section for each -import path. These sections are sorted by package name. -The first line of each section, marked by a leading :, contains -the package name, the import path, the name of the directory relative -to GOMODCACHE, and its semantic version. -The rest of each section consists of one line per exported symbol. -The lines are sorted by the symbol's name and contain the name, -an indication of its lexical type (C, T, V, F), and if it is the -name of a function, information about the signature. - -The fields in the section header lines are separated by commas, and -in the unlikely event this would be confusing, the csv package is used -to write (and read) them. - -In the lines containing exported names, C=const, V=var, T=type, F=func. -If it is a func, the next field is the number of returned values, -followed by pairs consisting of formal parameter names and types. -All these fields are separated by spaces. Any spaces in a type -(e.g., chan struct{}) are replaced by $s on the disk. The $s are -turned back into spaces when read. - -Here is an index header (the comments are not part of the index): -0 // version (of the index format) -/usr/local/google/home/pjw/go/pkg/mod // GOMODCACHE -2024-09-11 18:55:09 // validity date of the index - -Here is an index section: -:yaml,gopkg.in/yaml.v1,gopkg.in/yaml.v1@v1.0.0-20140924161607-9f9df34309c0,v1.0.0-20140924161607-9f9df34309c0 -Getter T -Marshal F 2 in interface{} -Setter T -Unmarshal F 1 in []byte out interface{} - -The package name is yaml, the import path is gopkg.in/yaml.v1. -Getter and Setter are types, and Marshal and Unmarshal are functions. -The latter returns one value and has two arguments, 'in' and 'out' -whose types are []byte and interface{}. -*/ - -// CurrentVersion tells readers about the format of the index. -const CurrentVersion int = 0 - -// Index is returned by ReadIndex(). -type Index struct { - Version int - Cachedir Abspath // The directory containing the module cache - Changed time.Time // The index is up to date as of Changed - Entries []Entry -} - -// An Entry contains information for an import path. -type Entry struct { - Dir Relpath // directory in modcache - ImportPath string - PkgName string - Version string - //ModTime STime // is this useful? - Names []string // exported names and information -} - -// IndexDir is where the module index is stored. -var IndexDir string - -// Set IndexDir -func init() { - var dir string - var err error - if testing.Testing() { - dir = os.TempDir() - } else { - dir, err = os.UserCacheDir() - // shouldn't happen, but TempDir is better than - // creating ./go/imports - if err != nil { - dir = os.TempDir() - } - } - dir = filepath.Join(dir, "go", "imports") - os.MkdirAll(dir, 0777) - IndexDir = dir -} - -// ReadIndex reads the latest version of the on-disk index -// for the cache directory cd. -// It returns (nil, nil) if there is no index, but returns -// a non-nil error if the index exists but could not be read. -func ReadIndex(cachedir string) (*Index, error) { - cachedir, err := filepath.Abs(cachedir) - if err != nil { - return nil, err - } - cd := Abspath(cachedir) - dir := IndexDir - base := indexNameBase(cd) - iname := filepath.Join(dir, base) - buf, err := os.ReadFile(iname) - if err != nil { - if errors.Is(err, fs.ErrNotExist) { - return nil, nil - } - return nil, fmt.Errorf("cannot read %s: %w", iname, err) - } - fname := filepath.Join(dir, string(buf)) - fd, err := os.Open(fname) - if err != nil { - return nil, err - } - defer fd.Close() - r := bufio.NewReader(fd) - ix, err := readIndexFrom(cd, r) - if err != nil { - return nil, err - } - return ix, nil -} - -func readIndexFrom(cd Abspath, bx io.Reader) (*Index, error) { - b := bufio.NewScanner(bx) - var ans Index - // header - ok := b.Scan() - if !ok { - return nil, fmt.Errorf("unexpected scan error") - } - l := b.Text() - var err error - ans.Version, err = strconv.Atoi(l) - if err != nil { - return nil, err - } - if ans.Version != CurrentVersion { - return nil, fmt.Errorf("got version %d, expected %d", ans.Version, CurrentVersion) - } - if ok := b.Scan(); !ok { - return nil, fmt.Errorf("scanner error reading cachedir") - } - ans.Cachedir = Abspath(b.Text()) - if ok := b.Scan(); !ok { - return nil, fmt.Errorf("scanner error reading index creation time") - } - // TODO(pjw): need to check that this is the expected cachedir - // so the tag should be passed in to this function - ans.Changed, err = time.ParseInLocation(time.DateTime, b.Text(), time.Local) - if err != nil { - return nil, err - } - var curEntry *Entry - for b.Scan() { - v := b.Text() - if v[0] == ':' { - if curEntry != nil { - ans.Entries = append(ans.Entries, *curEntry) - } - // as directories may contain commas and quotes, they need to be read as csv. - rdr := strings.NewReader(v[1:]) - cs := csv.NewReader(rdr) - flds, err := cs.Read() - if err != nil { - return nil, err - } - if len(flds) != 4 { - return nil, fmt.Errorf("header contains %d fields, not 4: %q", len(v), v) - } - curEntry = &Entry{PkgName: flds[0], ImportPath: flds[1], Dir: toRelpath(cd, flds[2]), Version: flds[3]} - continue - } - curEntry.Names = append(curEntry.Names, v) - } - if curEntry != nil { - ans.Entries = append(ans.Entries, *curEntry) - } - if err := b.Err(); err != nil { - return nil, fmt.Errorf("scanner failed %v", err) - } - return &ans, nil -} - -// write the index as a text file -func writeIndex(cachedir Abspath, ix *Index) error { - ipat := fmt.Sprintf("index-%d-*", CurrentVersion) - fd, err := os.CreateTemp(IndexDir, ipat) - if err != nil { - return err // can this happen? - } - defer fd.Close() - if err := writeIndexToFile(ix, fd); err != nil { - return err - } - content := fd.Name() - content = filepath.Base(content) - base := indexNameBase(cachedir) - nm := filepath.Join(IndexDir, base) - err = os.WriteFile(nm, []byte(content), 0666) - if err != nil { - return err - } - return nil -} - -func writeIndexToFile(x *Index, fd *os.File) error { - cnt := 0 - w := bufio.NewWriter(fd) - fmt.Fprintf(w, "%d\n", x.Version) - fmt.Fprintf(w, "%s\n", x.Cachedir) - // round the time down - tm := x.Changed.Add(-time.Second / 2) - fmt.Fprintf(w, "%s\n", tm.Format(time.DateTime)) - for _, e := range x.Entries { - if e.ImportPath == "" { - continue // shouldn't happen - } - // PJW: maybe always write these headers as csv? - if strings.ContainsAny(string(e.Dir), ",\"") { - log.Printf("DIR: %s", e.Dir) - cw := csv.NewWriter(w) - cw.Write([]string{":" + e.PkgName, e.ImportPath, string(e.Dir), e.Version}) - cw.Flush() - } else { - fmt.Fprintf(w, ":%s,%s,%s,%s\n", e.PkgName, e.ImportPath, e.Dir, e.Version) - } - for _, x := range e.Names { - fmt.Fprintf(w, "%s\n", x) - cnt++ - } - } - if err := w.Flush(); err != nil { - return err - } - return nil -} - -// return the base name of the file containing the name of the current index -func indexNameBase(cachedir Abspath) string { - // crc64 is a way to convert path names into 16 hex digits. - h := crc64.Checksum([]byte(cachedir), crc64.MakeTable(crc64.ECMA)) - fname := fmt.Sprintf("index-name-%d-%016x", CurrentVersion, h) - return fname -} diff --git a/vendor/golang.org/x/tools/internal/modindex/lookup.go b/vendor/golang.org/x/tools/internal/modindex/lookup.go deleted file mode 100644 index 0c011a9..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/lookup.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modindex - -import ( - "slices" - "strconv" - "strings" -) - -type Candidate struct { - PkgName string - Name string - Dir string - ImportPath string - Type LexType - Deprecated bool - // information for Funcs - Results int16 // how many results - Sig []Field // arg names and types -} - -type Field struct { - Arg, Type string -} - -type LexType int8 - -const ( - Const LexType = iota - Var - Type - Func -) - -// LookupAll only returns those Candidates whose import path -// finds all the names. -func (ix *Index) LookupAll(pkgName string, names ...string) map[string][]Candidate { - // this can be made faster when benchmarks show that it needs to be - names = uniquify(names) - byImpPath := make(map[string][]Candidate) - for _, nm := range names { - cands := ix.Lookup(pkgName, nm, false) - for _, c := range cands { - byImpPath[c.ImportPath] = append(byImpPath[c.ImportPath], c) - } - } - for k, v := range byImpPath { - if len(v) != len(names) { - delete(byImpPath, k) - } - } - return byImpPath -} - -// remove duplicates -func uniquify(in []string) []string { - if len(in) == 0 { - return in - } - in = slices.Clone(in) - slices.Sort(in) - return slices.Compact(in) -} - -// Lookup finds all the symbols in the index with the given PkgName and name. -// If prefix is true, it finds all of these with name as a prefix. -func (ix *Index) Lookup(pkgName, name string, prefix bool) []Candidate { - loc, ok := slices.BinarySearchFunc(ix.Entries, pkgName, func(e Entry, pkg string) int { - return strings.Compare(e.PkgName, pkgName) - }) - if !ok { - return nil // didn't find the package - } - var ans []Candidate - // loc is the first entry for this package name, but there may be several - for i := loc; i < len(ix.Entries); i++ { - e := ix.Entries[i] - if e.PkgName != pkgName { - break // end of sorted package names - } - nloc, ok := slices.BinarySearchFunc(e.Names, name, func(s string, name string) int { - if strings.HasPrefix(s, name) { - return 0 - } - if s < name { - return -1 - } - return 1 - }) - if !ok { - continue // didn't find the name, nor any symbols with name as a prefix - } - for j := nloc; j < len(e.Names); j++ { - nstr := e.Names[j] - // benchmarks show this makes a difference when there are a lot of Possibilities - flds := fastSplit(nstr) - if !(flds[0] == name || prefix && strings.HasPrefix(flds[0], name)) { - // past range of matching Names - break - } - if len(flds) < 2 { - continue // should never happen - } - px := Candidate{ - PkgName: pkgName, - Name: flds[0], - Dir: string(e.Dir), - ImportPath: e.ImportPath, - Type: asLexType(flds[1][0]), - Deprecated: len(flds[1]) > 1 && flds[1][1] == 'D', - } - if px.Type == Func { - n, err := strconv.Atoi(flds[2]) - if err != nil { - continue // should never happen - } - px.Results = int16(n) - if len(flds) >= 4 { - sig := strings.Split(flds[3], " ") - for i := range sig { - // $ cannot otherwise occur. removing the spaces - // almost works, but for chan struct{}, e.g. - sig[i] = strings.Replace(sig[i], "$", " ", -1) - } - px.Sig = toFields(sig) - } - } - ans = append(ans, px) - } - } - return ans -} - -func toFields(sig []string) []Field { - ans := make([]Field, len(sig)/2) - for i := range ans { - ans[i] = Field{Arg: sig[2*i], Type: sig[2*i+1]} - } - return ans -} - -// benchmarks show this is measurably better than strings.Split -// split into first 4 fields separated by single space -func fastSplit(x string) []string { - ans := make([]string, 0, 4) - nxt := 0 - start := 0 - for i := 0; i < len(x); i++ { - if x[i] != ' ' { - continue - } - ans = append(ans, x[start:i]) - nxt++ - start = i + 1 - if nxt >= 3 { - break - } - } - ans = append(ans, x[start:]) - return ans -} - -func asLexType(c byte) LexType { - switch c { - case 'C': - return Const - case 'V': - return Var - case 'T': - return Type - case 'F': - return Func - } - return -1 -} diff --git a/vendor/golang.org/x/tools/internal/modindex/modindex.go b/vendor/golang.org/x/tools/internal/modindex/modindex.go deleted file mode 100644 index 355a53e..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/modindex.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package modindex contains code for building and searching an index to -// the Go module cache. The directory containing the index, returned by -// IndexDir(), contains a file index-name-<ver> that contains the name -// of the current index. We believe writing that short file is atomic. -// ReadIndex reads that file to get the file name of the index. -// WriteIndex writes an index with a unique name and then -// writes that name into a new version of index-name-<ver>. -// (<ver> stands for the CurrentVersion of the index format.) -package modindex - -import ( - "path/filepath" - "slices" - "strings" - "time" - - "golang.org/x/mod/semver" -) - -// Create always creates a new index for the go module cache that is in cachedir. -func Create(cachedir string) error { - _, err := indexModCache(cachedir, true) - return err -} - -// Update the index for the go module cache that is in cachedir, -// If there is no existing index it will build one. -// If there are changed directories since the last index, it will -// write a new one and return true. Otherwise it returns false. -func Update(cachedir string) (bool, error) { - return indexModCache(cachedir, false) -} - -// indexModCache writes an index current as of when it is called. -// If clear is true the index is constructed from all of GOMODCACHE -// otherwise the index is constructed from the last previous index -// and the updates to the cache. It returns true if it wrote an index, -// false otherwise. -func indexModCache(cachedir string, clear bool) (bool, error) { - cachedir, err := filepath.Abs(cachedir) - if err != nil { - return false, err - } - cd := Abspath(cachedir) - future := time.Now().Add(24 * time.Hour) // safely in the future - ok, err := modindexTimed(future, cd, clear) - if err != nil { - return false, err - } - return ok, nil -} - -// modindexTimed writes an index current as of onlyBefore. -// If clear is true the index is constructed from all of GOMODCACHE -// otherwise the index is constructed from the last previous index -// and all the updates to the cache before onlyBefore. -// It returns true if it wrote a new index, false if it wrote nothing. -func modindexTimed(onlyBefore time.Time, cachedir Abspath, clear bool) (bool, error) { - var curIndex *Index - if !clear { - var err error - curIndex, err = ReadIndex(string(cachedir)) - if clear && err != nil { - return false, err - } - // TODO(pjw): check that most of those directories still exist - } - cfg := &work{ - onlyBefore: onlyBefore, - oldIndex: curIndex, - cacheDir: cachedir, - } - if curIndex != nil { - cfg.onlyAfter = curIndex.Changed - } - if err := cfg.buildIndex(); err != nil { - return false, err - } - if len(cfg.newIndex.Entries) == 0 && curIndex != nil { - // no changes from existing curIndex, don't write a new index - return false, nil - } - if err := cfg.writeIndex(); err != nil { - return false, err - } - return true, nil -} - -type work struct { - onlyBefore time.Time // do not use directories later than this - onlyAfter time.Time // only interested in directories after this - // directories from before onlyAfter come from oldIndex - oldIndex *Index - newIndex *Index - cacheDir Abspath -} - -func (w *work) buildIndex() error { - // The effective date of the new index should be at least - // slightly earlier than when the directories are scanned - // so set it now. - w.newIndex = &Index{Changed: time.Now(), Cachedir: w.cacheDir} - dirs := findDirs(string(w.cacheDir), w.onlyAfter, w.onlyBefore) - if len(dirs) == 0 { - return nil - } - newdirs, err := byImportPath(dirs) - if err != nil { - return err - } - // for each import path it might occur only in newdirs, - // only in w.oldIndex, or in both. - // If it occurs in both, use the semantically later one - if w.oldIndex != nil { - for _, e := range w.oldIndex.Entries { - found, ok := newdirs[e.ImportPath] - if !ok { - w.newIndex.Entries = append(w.newIndex.Entries, e) - continue // use this one, there is no new one - } - if semver.Compare(found[0].version, e.Version) > 0 { - // use the new one - } else { - // use the old one, forget the new one - w.newIndex.Entries = append(w.newIndex.Entries, e) - delete(newdirs, e.ImportPath) - } - } - } - // get symbol information for all the new diredtories - getSymbols(w.cacheDir, newdirs) - // assemble the new index entries - for k, v := range newdirs { - d := v[0] - pkg, names := processSyms(d.syms) - if pkg == "" { - continue // PJW: does this ever happen? - } - entry := Entry{ - PkgName: pkg, - Dir: d.path, - ImportPath: k, - Version: d.version, - Names: names, - } - w.newIndex.Entries = append(w.newIndex.Entries, entry) - } - // sort the entries in the new index - slices.SortFunc(w.newIndex.Entries, func(l, r Entry) int { - if n := strings.Compare(l.PkgName, r.PkgName); n != 0 { - return n - } - return strings.Compare(l.ImportPath, r.ImportPath) - }) - return nil -} - -func (w *work) writeIndex() error { - return writeIndex(w.cacheDir, w.newIndex) -} diff --git a/vendor/golang.org/x/tools/internal/modindex/symbols.go b/vendor/golang.org/x/tools/internal/modindex/symbols.go deleted file mode 100644 index 31a502c..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/symbols.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modindex - -import ( - "fmt" - "go/ast" - "go/parser" - "go/token" - "go/types" - "os" - "path/filepath" - "runtime" - "slices" - "strings" - - "golang.org/x/sync/errgroup" -) - -// The name of a symbol contains information about the symbol: -// <name> T for types, TD if the type is deprecated -// <name> C for consts, CD if the const is deprecated -// <name> V for vars, VD if the var is deprecated -// and for funcs: <name> F <num of return values> (<arg-name> <arg-type>)* -// any spaces in <arg-type> are replaced by $s so that the fields -// of the name are space separated. F is replaced by FD if the func -// is deprecated. -type symbol struct { - pkg string // name of the symbols's package - name string // declared name - kind string // T, C, V, or F, followed by D if deprecated - sig string // signature information, for F -} - -// find the symbols for the best directories -func getSymbols(cd Abspath, dirs map[string][]*directory) { - var g errgroup.Group - g.SetLimit(max(2, runtime.GOMAXPROCS(0)/2)) - for _, vv := range dirs { - // throttling some day? - d := vv[0] - g.Go(func() error { - thedir := filepath.Join(string(cd), string(d.path)) - mode := parser.SkipObjectResolution | parser.ParseComments - - fi, err := os.ReadDir(thedir) - if err != nil { - return nil // log this someday? - } - for _, fx := range fi { - if !strings.HasSuffix(fx.Name(), ".go") || strings.HasSuffix(fx.Name(), "_test.go") { - continue - } - fname := filepath.Join(thedir, fx.Name()) - tr, err := parser.ParseFile(token.NewFileSet(), fname, nil, mode) - if err != nil { - continue // ignore errors, someday log them? - } - d.syms = append(d.syms, getFileExports(tr)...) - } - return nil - }) - } - g.Wait() -} - -func getFileExports(f *ast.File) []symbol { - pkg := f.Name.Name - if pkg == "main" { - return nil - } - var ans []symbol - // should we look for //go:build ignore? - for _, decl := range f.Decls { - switch decl := decl.(type) { - case *ast.FuncDecl: - if decl.Recv != nil { - // ignore methods, as we are completing package selections - continue - } - name := decl.Name.Name - dtype := decl.Type - // not looking at dtype.TypeParams. That is, treating - // generic functions just like non-generic ones. - sig := dtype.Params - kind := "F" - if isDeprecated(decl.Doc) { - kind += "D" - } - result := []string{fmt.Sprintf("%d", dtype.Results.NumFields())} - for _, x := range sig.List { - // This code creates a string representing the type. - // TODO(pjw): it may be fragile: - // 1. x.Type could be nil, perhaps in ill-formed code - // 2. ExprString might someday change incompatibly to - // include struct tags, which can be arbitrary strings - if x.Type == nil { - // Can this happen without a parse error? (Files with parse - // errors are ignored in getSymbols) - continue // maybe report this someday - } - tp := types.ExprString(x.Type) - if len(tp) == 0 { - // Can this happen? - continue // maybe report this someday - } - // This is only safe if ExprString never returns anything with a $ - // The only place a $ can occur seems to be in a struct tag, which - // can be an arbitrary string literal, and ExprString does not presently - // print struct tags. So for this to happen the type of a formal parameter - // has to be a explicit struct, e.g. foo(x struct{a int "$"}) and ExprString - // would have to show the struct tag. Even testing for this case seems - // a waste of effort, but let's remember the possibility - if strings.Contains(tp, "$") { - continue - } - tp = strings.Replace(tp, " ", "$", -1) - if len(x.Names) == 0 { - result = append(result, "_") - result = append(result, tp) - } else { - for _, y := range x.Names { - result = append(result, y.Name) - result = append(result, tp) - } - } - } - sigs := strings.Join(result, " ") - if s := newsym(pkg, name, kind, sigs); s != nil { - ans = append(ans, *s) - } - case *ast.GenDecl: - depr := isDeprecated(decl.Doc) - switch decl.Tok { - case token.CONST, token.VAR: - tp := "V" - if decl.Tok == token.CONST { - tp = "C" - } - if depr { - tp += "D" - } - for _, sp := range decl.Specs { - for _, x := range sp.(*ast.ValueSpec).Names { - if s := newsym(pkg, x.Name, tp, ""); s != nil { - ans = append(ans, *s) - } - } - } - case token.TYPE: - tp := "T" - if depr { - tp += "D" - } - for _, sp := range decl.Specs { - if s := newsym(pkg, sp.(*ast.TypeSpec).Name.Name, tp, ""); s != nil { - ans = append(ans, *s) - } - } - } - } - } - return ans -} - -func newsym(pkg, name, kind, sig string) *symbol { - if len(name) == 0 || !ast.IsExported(name) { - return nil - } - sym := symbol{pkg: pkg, name: name, kind: kind, sig: sig} - return &sym -} - -func isDeprecated(doc *ast.CommentGroup) bool { - if doc == nil { - return false - } - // go.dev/wiki/Deprecated Paragraph starting 'Deprecated:' - // This code fails for /* Deprecated: */, but it's the code from - // gopls/internal/analysis/deprecated - lines := strings.Split(doc.Text(), "\n\n") - for _, line := range lines { - if strings.HasPrefix(line, "Deprecated:") { - return true - } - } - return false -} - -// return the package name and the value for the symbols. -// if there are multiple packages, choose one arbitrarily -// the returned slice is sorted lexicographically -func processSyms(syms []symbol) (string, []string) { - if len(syms) == 0 { - return "", nil - } - slices.SortFunc(syms, func(l, r symbol) int { - return strings.Compare(l.name, r.name) - }) - pkg := syms[0].pkg - var names []string - for _, s := range syms { - var nx string - if s.pkg == pkg { - if s.sig != "" { - nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig) - } else { - nx = fmt.Sprintf("%s %s", s.name, s.kind) - } - names = append(names, nx) - } else { - continue // PJW: do we want to keep track of these? - } - } - return pkg, names -} diff --git a/vendor/golang.org/x/tools/internal/modindex/types.go b/vendor/golang.org/x/tools/internal/modindex/types.go deleted file mode 100644 index ece4488..0000000 --- a/vendor/golang.org/x/tools/internal/modindex/types.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modindex - -import ( - "strings" -) - -// some special types to avoid confusions - -// distinguish various types of directory names. It's easy to get confused. -type Abspath string // absolute paths -type Relpath string // paths with GOMODCACHE prefix removed - -func toRelpath(cachedir Abspath, s string) Relpath { - if strings.HasPrefix(s, string(cachedir)) { - if s == string(cachedir) { - return Relpath("") - } - return Relpath(s[len(cachedir)+1:]) - } - return Relpath(s) -} diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go deleted file mode 100644 index 929b470..0000000 --- a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go +++ /dev/null @@ -1,23 +0,0 @@ -// 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 packagesinternal exposes internal-only fields from go/packages. -package packagesinternal - -import "fmt" - -var GetDepsErrors = func(p any) []*PackageError { return nil } - -type PackageError struct { - ImportStack []string // shortest path from package named on command line to this one - Pos string // position of error (if present, file:line:col) - Err string // the error itself -} - -func (err PackageError) String() string { - return fmt.Sprintf("%s: %s (import stack: %s)", err.Pos, err.Err, err.ImportStack) -} - -var TypecheckCgo int -var DepsErrors int // must be set as a LoadMode to call GetDepsErrors diff --git a/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/vendor/golang.org/x/tools/internal/pkgbits/codes.go deleted file mode 100644 index f0cabde..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/codes.go +++ /dev/null @@ -1,77 +0,0 @@ -// 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. - -package pkgbits - -// A Code is an enum value that can be encoded into bitstreams. -// -// Code types are preferable for enum types, because they allow -// Decoder to detect desyncs. -type Code interface { - // Marker returns the SyncMarker for the Code's dynamic type. - Marker() SyncMarker - - // Value returns the Code's ordinal value. - Value() int -} - -// A CodeVal distinguishes among go/constant.Value encodings. -type CodeVal int - -func (c CodeVal) Marker() SyncMarker { return SyncVal } -func (c CodeVal) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ValBool CodeVal = iota - ValString - ValInt64 - ValBigInt - ValBigRat - ValBigFloat -) - -// A CodeType distinguishes among go/types.Type encodings. -type CodeType int - -func (c CodeType) Marker() SyncMarker { return SyncType } -func (c CodeType) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - TypeBasic CodeType = iota - TypeNamed - TypePointer - TypeSlice - TypeArray - TypeChan - TypeMap - TypeSignature - TypeStruct - TypeInterface - TypeUnion - TypeTypeParam -) - -// A CodeObj distinguishes among go/types.Object encodings. -type CodeObj int - -func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } -func (c CodeObj) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ObjAlias CodeObj = iota - ObjConst - ObjType - ObjFunc - ObjVar - ObjStub -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go deleted file mode 100644 index c0aba26..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +++ /dev/null @@ -1,519 +0,0 @@ -// 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. - -package pkgbits - -import ( - "encoding/binary" - "errors" - "fmt" - "go/constant" - "go/token" - "io" - "math/big" - "os" - "runtime" - "strings" -) - -// A PkgDecoder provides methods for decoding a package's Unified IR -// export data. -type PkgDecoder struct { - // version is the file format version. - version Version - - // sync indicates whether the file uses sync markers. - sync bool - - // pkgPath is the package path for the package to be decoded. - // - // TODO(mdempsky): Remove; unneeded since CL 391014. - pkgPath string - - // elemData is the full data payload of the encoded package. - // Elements are densely and contiguously packed together. - // - // The last 8 bytes of elemData are the package fingerprint. - elemData string - - // elemEnds stores the byte-offset end positions of element - // bitstreams within elemData. - // - // For example, element I's bitstream data starts at elemEnds[I-1] - // (or 0, if I==0) and ends at elemEnds[I]. - // - // Note: elemEnds is indexed by absolute indices, not - // section-relative indices. - elemEnds []uint32 - - // elemEndsEnds stores the index-offset end positions of relocation - // sections within elemEnds. - // - // For example, section K's end positions start at elemEndsEnds[K-1] - // (or 0, if K==0) and end at elemEndsEnds[K]. - elemEndsEnds [numRelocs]uint32 - - scratchRelocEnt []RelocEnt -} - -// PkgPath returns the package path for the package -// -// TODO(mdempsky): Remove; unneeded since CL 391014. -func (pr *PkgDecoder) PkgPath() string { return pr.pkgPath } - -// SyncMarkers reports whether pr uses sync markers. -func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } - -// NewPkgDecoder returns a PkgDecoder initialized to read the Unified -// IR export data from input. pkgPath is the package path for the -// compilation unit that produced the export data. -func NewPkgDecoder(pkgPath, input string) PkgDecoder { - pr := PkgDecoder{ - pkgPath: pkgPath, - } - - // TODO(mdempsky): Implement direct indexing of input string to - // avoid copying the position information. - - r := strings.NewReader(input) - - var ver uint32 - assert(binary.Read(r, binary.LittleEndian, &ver) == nil) - pr.version = Version(ver) - - if pr.version >= numVersions { - panic(fmt.Errorf("cannot decode %q, export data version %d is greater than maximum supported version %d", pkgPath, pr.version, numVersions-1)) - } - - if pr.version.Has(Flags) { - var flags uint32 - assert(binary.Read(r, binary.LittleEndian, &flags) == nil) - pr.sync = flags&flagSyncMarkers != 0 - } - - assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) - - pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) - assert(binary.Read(r, binary.LittleEndian, pr.elemEnds[:]) == nil) - - pos, err := r.Seek(0, io.SeekCurrent) - assert(err == nil) - - pr.elemData = input[pos:] - - const fingerprintSize = 8 - assert(len(pr.elemData)-fingerprintSize == int(pr.elemEnds[len(pr.elemEnds)-1])) - - return pr -} - -// NumElems returns the number of elements in section k. -func (pr *PkgDecoder) NumElems(k RelocKind) int { - count := int(pr.elemEndsEnds[k]) - if k > 0 { - count -= int(pr.elemEndsEnds[k-1]) - } - return count -} - -// TotalElems returns the total number of elements across all sections. -func (pr *PkgDecoder) TotalElems() int { - return len(pr.elemEnds) -} - -// Fingerprint returns the package fingerprint. -func (pr *PkgDecoder) Fingerprint() [8]byte { - var fp [8]byte - copy(fp[:], pr.elemData[len(pr.elemData)-8:]) - return fp -} - -// AbsIdx returns the absolute index for the given (section, index) -// pair. -func (pr *PkgDecoder) AbsIdx(k RelocKind, idx Index) int { - absIdx := int(idx) - if k > 0 { - absIdx += int(pr.elemEndsEnds[k-1]) - } - if absIdx >= int(pr.elemEndsEnds[k]) { - panicf("%v:%v is out of bounds; %v", k, idx, pr.elemEndsEnds) - } - return absIdx -} - -// DataIdx returns the raw element bitstream for the given (section, -// index) pair. -func (pr *PkgDecoder) DataIdx(k RelocKind, idx Index) string { - absIdx := pr.AbsIdx(k, idx) - - var start uint32 - if absIdx > 0 { - start = pr.elemEnds[absIdx-1] - } - end := pr.elemEnds[absIdx] - - return pr.elemData[start:end] -} - -// StringIdx returns the string value for the given string index. -func (pr *PkgDecoder) StringIdx(idx Index) string { - return pr.DataIdx(RelocString, idx) -} - -// NewDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -func (pr *PkgDecoder) NewDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.NewDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -// TempDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -// If possible the Decoder should be RetireDecoder'd when it is no longer -// needed, this will avoid heap allocations. -func (pr *PkgDecoder) TempDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.TempDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -func (pr *PkgDecoder) RetireDecoder(d *Decoder) { - pr.scratchRelocEnt = d.Relocs - d.Relocs = nil -} - -// NewDecoderRaw returns a Decoder for the given (section, index) pair. -// -// Most callers should use NewDecoder instead. -func (pr *PkgDecoder) NewDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - r.Data.Reset(pr.DataIdx(k, idx)) - r.Sync(SyncRelocs) - r.Relocs = make([]RelocEnt, r.Len()) - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -func (pr *PkgDecoder) TempDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - r.Data.Reset(pr.DataIdx(k, idx)) - r.Sync(SyncRelocs) - l := r.Len() - if cap(pr.scratchRelocEnt) >= l { - r.Relocs = pr.scratchRelocEnt[:l] - pr.scratchRelocEnt = nil - } else { - r.Relocs = make([]RelocEnt, l) - } - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -// A Decoder provides methods for decoding an individual element's -// bitstream data. -type Decoder struct { - common *PkgDecoder - - Relocs []RelocEnt - Data strings.Reader - - k RelocKind - Idx Index -} - -func (r *Decoder) checkErr(err error) { - if err != nil { - panicf("unexpected decoding error: %w", err) - } -} - -func (r *Decoder) rawUvarint() uint64 { - x, err := readUvarint(&r.Data) - r.checkErr(err) - return x -} - -// readUvarint is a type-specialized copy of encoding/binary.ReadUvarint. -// This avoids the interface conversion and thus has better escape properties, -// which flows up the stack. -func readUvarint(r *strings.Reader) (uint64, error) { - var x uint64 - var s uint - for i := range binary.MaxVarintLen64 { - b, err := r.ReadByte() - if err != nil { - if i > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return x, err - } - if b < 0x80 { - if i == binary.MaxVarintLen64-1 && b > 1 { - return x, overflow - } - return x | uint64(b)<<s, nil - } - x |= uint64(b&0x7f) << s - s += 7 - } - return x, overflow -} - -var overflow = errors.New("pkgbits: readUvarint overflows a 64-bit integer") - -func (r *Decoder) rawVarint() int64 { - ux := r.rawUvarint() - - // Zig-zag decode. - x := int64(ux >> 1) - if ux&1 != 0 { - x = ^x - } - return x -} - -func (r *Decoder) rawReloc(k RelocKind, idx int) Index { - e := r.Relocs[idx] - assert(e.Kind == k) - return e.Idx -} - -// Sync decodes a sync marker from the element bitstream and asserts -// that it matches the expected marker. -// -// If r.common.sync is false, then Sync is a no-op. -func (r *Decoder) Sync(mWant SyncMarker) { - if !r.common.sync { - return - } - - pos, _ := r.Data.Seek(0, io.SeekCurrent) - mHave := SyncMarker(r.rawUvarint()) - writerPCs := make([]int, r.rawUvarint()) - for i := range writerPCs { - writerPCs[i] = int(r.rawUvarint()) - } - - if mHave == mWant { - return - } - - // There's some tension here between printing: - // - // (1) full file paths that tools can recognize (e.g., so emacs - // hyperlinks the "file:line" text for easy navigation), or - // - // (2) short file paths that are easier for humans to read (e.g., by - // omitting redundant or irrelevant details, so it's easier to - // focus on the useful bits that remain). - // - // The current formatting favors the former, as it seems more - // helpful in practice. But perhaps the formatting could be improved - // to better address both concerns. For example, use relative file - // paths if they would be shorter, or rewrite file paths to contain - // "$GOROOT" (like objabi.AbsFile does) if tools can be taught how - // to reliably expand that again. - - fmt.Printf("export data desync: package %q, section %v, index %v, offset %v\n", r.common.pkgPath, r.k, r.Idx, pos) - - fmt.Printf("\nfound %v, written at:\n", mHave) - if len(writerPCs) == 0 { - fmt.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n", r.common.pkgPath) - } - for _, pc := range writerPCs { - fmt.Printf("\t%s\n", r.common.StringIdx(r.rawReloc(RelocString, pc))) - } - - fmt.Printf("\nexpected %v, reading at:\n", mWant) - var readerPCs [32]uintptr // TODO(mdempsky): Dynamically size? - n := runtime.Callers(2, readerPCs[:]) - for _, pc := range fmtFrames(readerPCs[:n]...) { - fmt.Printf("\t%s\n", pc) - } - - // We already printed a stack trace for the reader, so now we can - // simply exit. Printing a second one with panic or base.Fatalf - // would just be noise. - os.Exit(1) -} - -// Bool decodes and returns a bool value from the element bitstream. -func (r *Decoder) Bool() bool { - r.Sync(SyncBool) - x, err := r.Data.ReadByte() - r.checkErr(err) - assert(x < 2) - return x != 0 -} - -// Int64 decodes and returns an int64 value from the element bitstream. -func (r *Decoder) Int64() int64 { - r.Sync(SyncInt64) - return r.rawVarint() -} - -// Uint64 decodes and returns a uint64 value from the element bitstream. -func (r *Decoder) Uint64() uint64 { - r.Sync(SyncUint64) - return r.rawUvarint() -} - -// Len decodes and returns a non-negative int value from the element bitstream. -func (r *Decoder) Len() int { x := r.Uint64(); v := int(x); assert(uint64(v) == x); return v } - -// Int decodes and returns an int value from the element bitstream. -func (r *Decoder) Int() int { x := r.Int64(); v := int(x); assert(int64(v) == x); return v } - -// Uint decodes and returns a uint value from the element bitstream. -func (r *Decoder) Uint() uint { x := r.Uint64(); v := uint(x); assert(uint64(v) == x); return v } - -// Code decodes a Code value from the element bitstream and returns -// its ordinal value. It's the caller's responsibility to convert the -// result to an appropriate Code type. -// -// TODO(mdempsky): Ideally this method would have signature "Code[T -// Code] T" instead, but we don't allow generic methods and the -// compiler can't depend on generics yet anyway. -func (r *Decoder) Code(mark SyncMarker) int { - r.Sync(mark) - return r.Len() -} - -// Reloc decodes a relocation of expected section k from the element -// bitstream and returns an index to the referenced element. -func (r *Decoder) Reloc(k RelocKind) Index { - r.Sync(SyncUseReloc) - return r.rawReloc(k, r.Len()) -} - -// String decodes and returns a string value from the element -// bitstream. -func (r *Decoder) String() string { - r.Sync(SyncString) - return r.common.StringIdx(r.Reloc(RelocString)) -} - -// Strings decodes and returns a variable-length slice of strings from -// the element bitstream. -func (r *Decoder) Strings() []string { - res := make([]string, r.Len()) - for i := range res { - res[i] = r.String() - } - return res -} - -// Value decodes and returns a constant.Value from the element -// bitstream. -func (r *Decoder) Value() constant.Value { - r.Sync(SyncValue) - isComplex := r.Bool() - val := r.scalar() - if isComplex { - val = constant.BinaryOp(val, token.ADD, constant.MakeImag(r.scalar())) - } - return val -} - -func (r *Decoder) scalar() constant.Value { - switch tag := CodeVal(r.Code(SyncVal)); tag { - default: - panic(fmt.Errorf("unexpected scalar tag: %v", tag)) - - case ValBool: - return constant.MakeBool(r.Bool()) - case ValString: - return constant.MakeString(r.String()) - case ValInt64: - return constant.MakeInt64(r.Int64()) - case ValBigInt: - return constant.Make(r.bigInt()) - case ValBigRat: - num := r.bigInt() - denom := r.bigInt() - return constant.Make(new(big.Rat).SetFrac(num, denom)) - case ValBigFloat: - return constant.Make(r.bigFloat()) - } -} - -func (r *Decoder) bigInt() *big.Int { - v := new(big.Int).SetBytes([]byte(r.String())) - if r.Bool() { - v.Neg(v) - } - return v -} - -func (r *Decoder) bigFloat() *big.Float { - v := new(big.Float).SetPrec(512) - assert(v.UnmarshalText([]byte(r.String())) == nil) - return v -} - -// @@@ Helpers - -// TODO(mdempsky): These should probably be removed. I think they're a -// smell that the export data format is not yet quite right. - -// PeekPkgPath returns the package path for the specified package -// index. -func (pr *PkgDecoder) PeekPkgPath(idx Index) string { - var path string - { - r := pr.TempDecoder(RelocPkg, idx, SyncPkgDef) - path = r.String() - pr.RetireDecoder(&r) - } - if path == "" { - path = pr.pkgPath - } - return path -} - -// PeekObj returns the package path, object name, and CodeObj for the -// specified object index. -func (pr *PkgDecoder) PeekObj(idx Index) (string, string, CodeObj) { - var ridx Index - var name string - var rcode int - { - r := pr.TempDecoder(RelocName, idx, SyncObject1) - r.Sync(SyncSym) - r.Sync(SyncPkg) - ridx = r.Reloc(RelocPkg) - name = r.String() - rcode = r.Code(SyncCodeObj) - pr.RetireDecoder(&r) - } - - path := pr.PeekPkgPath(ridx) - assert(name != "") - - tag := CodeObj(rcode) - - return path, name, tag -} - -// Version reports the version of the bitstream. -func (w *Decoder) Version() Version { return w.common.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/vendor/golang.org/x/tools/internal/pkgbits/doc.go deleted file mode 100644 index c8a2796..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pkgbits implements low-level coding abstractions for -// Unified IR's export data format. -// -// At a low-level, a package is a collection of bitstream elements. -// Each element has a "kind" and a dense, non-negative index. -// Elements can be randomly accessed given their kind and index. -// -// Individual elements are sequences of variable-length values (e.g., -// integers, booleans, strings, go/constant values, cross-references -// to other elements). Package pkgbits provides APIs for encoding and -// decoding these low-level values, but the details of mapping -// higher-level Go constructs into elements is left to higher-level -// abstractions. -// -// Elements may cross-reference each other with "relocations." For -// example, an element representing a pointer type has a relocation -// referring to the element type. -// -// Go constructs may be composed as a constellation of multiple -// elements. For example, a declared function may have one element to -// describe the object (e.g., its name, type, position), and a -// separate element to describe its function body. This allows readers -// some flexibility in efficiently seeking or re-reading data (e.g., -// inlining requires re-reading the function body for each inlined -// call, without needing to re-read the object-level details). -// -// This is a copy of internal/pkgbits in the Go implementation. -package pkgbits diff --git a/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/vendor/golang.org/x/tools/internal/pkgbits/encoder.go deleted file mode 100644 index c17a123..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/encoder.go +++ /dev/null @@ -1,392 +0,0 @@ -// 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. - -package pkgbits - -import ( - "bytes" - "crypto/md5" - "encoding/binary" - "go/constant" - "io" - "math/big" - "runtime" - "strings" -) - -// A PkgEncoder provides methods for encoding a package's Unified IR -// export data. -type PkgEncoder struct { - // version of the bitstream. - version Version - - // elems holds the bitstream for previously encoded elements. - elems [numRelocs][]string - - // stringsIdx maps previously encoded strings to their index within - // the RelocString section, to allow deduplication. That is, - // elems[RelocString][stringsIdx[s]] == s (if present). - stringsIdx map[string]Index - - // syncFrames is the number of frames to write at each sync - // marker. A negative value means sync markers are omitted. - syncFrames int -} - -// SyncMarkers reports whether pw uses sync markers. -func (pw *PkgEncoder) SyncMarkers() bool { return pw.syncFrames >= 0 } - -// NewPkgEncoder returns an initialized PkgEncoder. -// -// syncFrames is the number of caller frames that should be serialized -// at Sync points. Serializing additional frames results in larger -// export data files, but can help diagnosing desync errors in -// higher-level Unified IR reader/writer code. If syncFrames is -// negative, then sync markers are omitted entirely. -func NewPkgEncoder(version Version, syncFrames int) PkgEncoder { - return PkgEncoder{ - version: version, - stringsIdx: make(map[string]Index), - syncFrames: syncFrames, - } -} - -// DumpTo writes the package's encoded data to out0 and returns the -// package fingerprint. -func (pw *PkgEncoder) DumpTo(out0 io.Writer) (fingerprint [8]byte) { - h := md5.New() - out := io.MultiWriter(out0, h) - - writeUint32 := func(x uint32) { - assert(binary.Write(out, binary.LittleEndian, x) == nil) - } - - writeUint32(uint32(pw.version)) - - if pw.version.Has(Flags) { - var flags uint32 - if pw.SyncMarkers() { - flags |= flagSyncMarkers - } - writeUint32(flags) - } - - // Write elemEndsEnds. - var sum uint32 - for _, elems := range &pw.elems { - sum += uint32(len(elems)) - writeUint32(sum) - } - - // Write elemEnds. - sum = 0 - for _, elems := range &pw.elems { - for _, elem := range elems { - sum += uint32(len(elem)) - writeUint32(sum) - } - } - - // Write elemData. - for _, elems := range &pw.elems { - for _, elem := range elems { - _, err := io.WriteString(out, elem) - assert(err == nil) - } - } - - // Write fingerprint. - copy(fingerprint[:], h.Sum(nil)) - _, err := out0.Write(fingerprint[:]) - assert(err == nil) - - return -} - -// StringIdx adds a string value to the strings section, if not -// already present, and returns its index. -func (pw *PkgEncoder) StringIdx(s string) Index { - if idx, ok := pw.stringsIdx[s]; ok { - assert(pw.elems[RelocString][idx] == s) - return idx - } - - idx := Index(len(pw.elems[RelocString])) - pw.elems[RelocString] = append(pw.elems[RelocString], s) - pw.stringsIdx[s] = idx - return idx -} - -// NewEncoder returns an Encoder for a new element within the given -// section, and encodes the given SyncMarker as the start of the -// element bitstream. -func (pw *PkgEncoder) NewEncoder(k RelocKind, marker SyncMarker) Encoder { - e := pw.NewEncoderRaw(k) - e.Sync(marker) - return e -} - -// NewEncoderRaw returns an Encoder for a new element within the given -// section. -// -// Most callers should use NewEncoder instead. -func (pw *PkgEncoder) NewEncoderRaw(k RelocKind) Encoder { - idx := Index(len(pw.elems[k])) - pw.elems[k] = append(pw.elems[k], "") // placeholder - - return Encoder{ - p: pw, - k: k, - Idx: idx, - } -} - -// An Encoder provides methods for encoding an individual element's -// bitstream data. -type Encoder struct { - p *PkgEncoder - - Relocs []RelocEnt - RelocMap map[RelocEnt]uint32 - Data bytes.Buffer // accumulated element bitstream data - - encodingRelocHeader bool - - k RelocKind - Idx Index // index within relocation section -} - -// Flush finalizes the element's bitstream and returns its Index. -func (w *Encoder) Flush() Index { - var sb strings.Builder - - // Backup the data so we write the relocations at the front. - var tmp bytes.Buffer - io.Copy(&tmp, &w.Data) - - // TODO(mdempsky): Consider writing these out separately so they're - // easier to strip, along with function bodies, so that we can prune - // down to just the data that's relevant to go/types. - if w.encodingRelocHeader { - panic("encodingRelocHeader already true; recursive flush?") - } - w.encodingRelocHeader = true - w.Sync(SyncRelocs) - w.Len(len(w.Relocs)) - for _, rEnt := range w.Relocs { - w.Sync(SyncReloc) - w.Len(int(rEnt.Kind)) - w.Len(int(rEnt.Idx)) - } - - io.Copy(&sb, &w.Data) - io.Copy(&sb, &tmp) - w.p.elems[w.k][w.Idx] = sb.String() - - return w.Idx -} - -func (w *Encoder) checkErr(err error) { - if err != nil { - panicf("unexpected encoding error: %v", err) - } -} - -func (w *Encoder) rawUvarint(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - _, err := w.Data.Write(buf[:n]) - w.checkErr(err) -} - -func (w *Encoder) rawVarint(x int64) { - // Zig-zag encode. - ux := uint64(x) << 1 - if x < 0 { - ux = ^ux - } - - w.rawUvarint(ux) -} - -func (w *Encoder) rawReloc(r RelocKind, idx Index) int { - e := RelocEnt{r, idx} - if w.RelocMap != nil { - if i, ok := w.RelocMap[e]; ok { - return int(i) - } - } else { - w.RelocMap = make(map[RelocEnt]uint32) - } - - i := len(w.Relocs) - w.RelocMap[e] = uint32(i) - w.Relocs = append(w.Relocs, e) - return i -} - -func (w *Encoder) Sync(m SyncMarker) { - if !w.p.SyncMarkers() { - return - } - - // Writing out stack frame string references requires working - // relocations, but writing out the relocations themselves involves - // sync markers. To prevent infinite recursion, we simply trim the - // stack frame for sync markers within the relocation header. - var frames []string - if !w.encodingRelocHeader && w.p.syncFrames > 0 { - pcs := make([]uintptr, w.p.syncFrames) - n := runtime.Callers(2, pcs) - frames = fmtFrames(pcs[:n]...) - } - - // TODO(mdempsky): Save space by writing out stack frames as a - // linked list so we can share common stack frames. - w.rawUvarint(uint64(m)) - w.rawUvarint(uint64(len(frames))) - for _, frame := range frames { - w.rawUvarint(uint64(w.rawReloc(RelocString, w.p.StringIdx(frame)))) - } -} - -// Bool encodes and writes a bool value into the element bitstream, -// and then returns the bool value. -// -// For simple, 2-alternative encodings, the idiomatic way to call Bool -// is something like: -// -// if w.Bool(x != 0) { -// // alternative #1 -// } else { -// // alternative #2 -// } -// -// For multi-alternative encodings, use Code instead. -func (w *Encoder) Bool(b bool) bool { - w.Sync(SyncBool) - var x byte - if b { - x = 1 - } - err := w.Data.WriteByte(x) - w.checkErr(err) - return b -} - -// Int64 encodes and writes an int64 value into the element bitstream. -func (w *Encoder) Int64(x int64) { - w.Sync(SyncInt64) - w.rawVarint(x) -} - -// Uint64 encodes and writes a uint64 value into the element bitstream. -func (w *Encoder) Uint64(x uint64) { - w.Sync(SyncUint64) - w.rawUvarint(x) -} - -// Len encodes and writes a non-negative int value into the element bitstream. -func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) } - -// Int encodes and writes an int value into the element bitstream. -func (w *Encoder) Int(x int) { w.Int64(int64(x)) } - -// Uint encodes and writes a uint value into the element bitstream. -func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) } - -// Reloc encodes and writes a relocation for the given (section, -// index) pair into the element bitstream. -// -// Note: Only the index is formally written into the element -// bitstream, so bitstream decoders must know from context which -// section an encoded relocation refers to. -func (w *Encoder) Reloc(r RelocKind, idx Index) { - w.Sync(SyncUseReloc) - w.Len(w.rawReloc(r, idx)) -} - -// Code encodes and writes a Code value into the element bitstream. -func (w *Encoder) Code(c Code) { - w.Sync(c.Marker()) - w.Len(c.Value()) -} - -// String encodes and writes a string value into the element -// bitstream. -// -// Internally, strings are deduplicated by adding them to the strings -// section (if not already present), and then writing a relocation -// into the element bitstream. -func (w *Encoder) String(s string) { - w.StringRef(w.p.StringIdx(s)) -} - -// StringRef writes a reference to the given index, which must be a -// previously encoded string value. -func (w *Encoder) StringRef(idx Index) { - w.Sync(SyncString) - w.Reloc(RelocString, idx) -} - -// Strings encodes and writes a variable-length slice of strings into -// the element bitstream. -func (w *Encoder) Strings(ss []string) { - w.Len(len(ss)) - for _, s := range ss { - w.String(s) - } -} - -// Value encodes and writes a constant.Value into the element -// bitstream. -func (w *Encoder) Value(val constant.Value) { - w.Sync(SyncValue) - if w.Bool(val.Kind() == constant.Complex) { - w.scalar(constant.Real(val)) - w.scalar(constant.Imag(val)) - } else { - w.scalar(val) - } -} - -func (w *Encoder) scalar(val constant.Value) { - switch v := constant.Val(val).(type) { - default: - panicf("unhandled %v (%v)", val, val.Kind()) - case bool: - w.Code(ValBool) - w.Bool(v) - case string: - w.Code(ValString) - w.String(v) - case int64: - w.Code(ValInt64) - w.Int64(v) - case *big.Int: - w.Code(ValBigInt) - w.bigInt(v) - case *big.Rat: - w.Code(ValBigRat) - w.bigInt(v.Num()) - w.bigInt(v.Denom()) - case *big.Float: - w.Code(ValBigFloat) - w.bigFloat(v) - } -} - -func (w *Encoder) bigInt(v *big.Int) { - b := v.Bytes() - w.String(string(b)) // TODO: More efficient encoding. - w.Bool(v.Sign() < 0) -} - -func (w *Encoder) bigFloat(v *big.Float) { - b := v.Append(nil, 'p', -1) - w.String(string(b)) // TODO: More efficient encoding. -} - -// Version reports the version of the bitstream. -func (w *Encoder) Version() Version { return w.p.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/vendor/golang.org/x/tools/internal/pkgbits/flags.go deleted file mode 100644 index 6542227..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/flags.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -const ( - flagSyncMarkers = 1 << iota // file format contains sync markers -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/vendor/golang.org/x/tools/internal/pkgbits/reloc.go deleted file mode 100644 index fcdfb97..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/reloc.go +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -package pkgbits - -// A RelocKind indicates a particular section within a unified IR export. -type RelocKind int32 - -// An Index represents a bitstream element index within a particular -// section. -type Index int32 - -// A relocEnt (relocation entry) is an entry in an element's local -// reference table. -// -// TODO(mdempsky): Rename this too. -type RelocEnt struct { - Kind RelocKind - Idx Index -} - -// Reserved indices within the meta relocation section. -const ( - PublicRootIdx Index = 0 - PrivateRootIdx Index = 1 -) - -const ( - RelocString RelocKind = iota - RelocMeta - RelocPosBase - RelocPkg - RelocName - RelocType - RelocObj - RelocObjExt - RelocObjDict - RelocBody - - numRelocs = iota -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/support.go b/vendor/golang.org/x/tools/internal/pkgbits/support.go deleted file mode 100644 index 50534a2..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/support.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import "fmt" - -func assert(b bool) { - if !b { - panic("assertion failed") - } -} - -func panicf(format string, args ...any) { - panic(fmt.Errorf(format, args...)) -} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/vendor/golang.org/x/tools/internal/pkgbits/sync.go deleted file mode 100644 index 1520b73..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/sync.go +++ /dev/null @@ -1,136 +0,0 @@ -// 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. - -package pkgbits - -import ( - "fmt" - "runtime" - "strings" -) - -// fmtFrames formats a backtrace for reporting reader/writer desyncs. -func fmtFrames(pcs ...uintptr) []string { - res := make([]string, 0, len(pcs)) - walkFrames(pcs, func(file string, line int, name string, offset uintptr) { - // Trim package from function name. It's just redundant noise. - name = strings.TrimPrefix(name, "cmd/compile/internal/noder.") - - res = append(res, fmt.Sprintf("%s:%v: %s +0x%v", file, line, name, offset)) - }) - return res -} - -type frameVisitor func(file string, line int, name string, offset uintptr) - -// walkFrames calls visit for each call frame represented by pcs. -// -// pcs should be a slice of PCs, as returned by runtime.Callers. -func walkFrames(pcs []uintptr, visit frameVisitor) { - if len(pcs) == 0 { - return - } - - frames := runtime.CallersFrames(pcs) - for { - frame, more := frames.Next() - visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) - if !more { - return - } - } -} - -// SyncMarker is an enum type that represents markers that may be -// written to export data to ensure the reader and writer stay -// synchronized. -type SyncMarker int - -//go:generate stringer -type=SyncMarker -trimprefix=Sync - -const ( - _ SyncMarker = iota - - // Public markers (known to go/types importers). - - // Low-level coding markers. - SyncEOF - SyncBool - SyncInt64 - SyncUint64 - SyncString - SyncValue - SyncVal - SyncRelocs - SyncReloc - SyncUseReloc - - // Higher-level object and type markers. - SyncPublic - SyncPos - SyncPosBase - SyncObject - SyncObject1 - SyncPkg - SyncPkgDef - SyncMethod - SyncType - SyncTypeIdx - SyncTypeParamNames - SyncSignature - SyncParams - SyncParam - SyncCodeObj - SyncSym - SyncLocalIdent - SyncSelector - - // Private markers (only known to cmd/compile). - SyncPrivate - - SyncFuncExt - SyncVarExt - SyncTypeExt - SyncPragma - - SyncExprList - SyncExprs - SyncExpr - SyncExprType - SyncAssign - SyncOp - SyncFuncLit - SyncCompLit - - SyncDecl - SyncFuncBody - SyncOpenScope - SyncCloseScope - SyncCloseAnotherScope - SyncDeclNames - SyncDeclName - - SyncStmts - SyncBlockStmt - SyncIfStmt - SyncForStmt - SyncSwitchStmt - SyncRangeStmt - SyncCaseClause - SyncCommClause - SyncSelectStmt - SyncDecls - SyncLabeledStmt - SyncUseObjLocal - SyncAddLocal - SyncLinkname - SyncStmt1 - SyncStmtsEnd - SyncLabel - SyncOptLabel - - SyncMultiExpr - SyncRType - SyncConvRTTI -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go deleted file mode 100644 index 582ad56..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by "stringer -type=SyncMarker -trimprefix=Sync"; DO NOT EDIT. - -package pkgbits - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[SyncEOF-1] - _ = x[SyncBool-2] - _ = x[SyncInt64-3] - _ = x[SyncUint64-4] - _ = x[SyncString-5] - _ = x[SyncValue-6] - _ = x[SyncVal-7] - _ = x[SyncRelocs-8] - _ = x[SyncReloc-9] - _ = x[SyncUseReloc-10] - _ = x[SyncPublic-11] - _ = x[SyncPos-12] - _ = x[SyncPosBase-13] - _ = x[SyncObject-14] - _ = x[SyncObject1-15] - _ = x[SyncPkg-16] - _ = x[SyncPkgDef-17] - _ = x[SyncMethod-18] - _ = x[SyncType-19] - _ = x[SyncTypeIdx-20] - _ = x[SyncTypeParamNames-21] - _ = x[SyncSignature-22] - _ = x[SyncParams-23] - _ = x[SyncParam-24] - _ = x[SyncCodeObj-25] - _ = x[SyncSym-26] - _ = x[SyncLocalIdent-27] - _ = x[SyncSelector-28] - _ = x[SyncPrivate-29] - _ = x[SyncFuncExt-30] - _ = x[SyncVarExt-31] - _ = x[SyncTypeExt-32] - _ = x[SyncPragma-33] - _ = x[SyncExprList-34] - _ = x[SyncExprs-35] - _ = x[SyncExpr-36] - _ = x[SyncExprType-37] - _ = x[SyncAssign-38] - _ = x[SyncOp-39] - _ = x[SyncFuncLit-40] - _ = x[SyncCompLit-41] - _ = x[SyncDecl-42] - _ = x[SyncFuncBody-43] - _ = x[SyncOpenScope-44] - _ = x[SyncCloseScope-45] - _ = x[SyncCloseAnotherScope-46] - _ = x[SyncDeclNames-47] - _ = x[SyncDeclName-48] - _ = x[SyncStmts-49] - _ = x[SyncBlockStmt-50] - _ = x[SyncIfStmt-51] - _ = x[SyncForStmt-52] - _ = x[SyncSwitchStmt-53] - _ = x[SyncRangeStmt-54] - _ = x[SyncCaseClause-55] - _ = x[SyncCommClause-56] - _ = x[SyncSelectStmt-57] - _ = x[SyncDecls-58] - _ = x[SyncLabeledStmt-59] - _ = x[SyncUseObjLocal-60] - _ = x[SyncAddLocal-61] - _ = x[SyncLinkname-62] - _ = x[SyncStmt1-63] - _ = x[SyncStmtsEnd-64] - _ = x[SyncLabel-65] - _ = x[SyncOptLabel-66] - _ = x[SyncMultiExpr-67] - _ = x[SyncRType-68] - _ = x[SyncConvRTTI-69] -} - -const _SyncMarker_name = "EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabelMultiExprRTypeConvRTTI" - -var _SyncMarker_index = [...]uint16{0, 3, 7, 12, 18, 24, 29, 32, 38, 43, 51, 57, 60, 67, 73, 80, 83, 89, 95, 99, 106, 120, 129, 135, 140, 147, 150, 160, 168, 175, 182, 188, 195, 201, 209, 214, 218, 226, 232, 234, 241, 248, 252, 260, 269, 279, 296, 305, 313, 318, 327, 333, 340, 350, 359, 369, 379, 389, 394, 405, 416, 424, 432, 437, 445, 450, 458, 467, 472, 480} - -func (i SyncMarker) String() string { - i -= 1 - if i < 0 || i >= SyncMarker(len(_SyncMarker_index)-1) { - return "SyncMarker(" + strconv.FormatInt(int64(i+1), 10) + ")" - } - return _SyncMarker_name[_SyncMarker_index[i]:_SyncMarker_index[i+1]] -} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/version.go b/vendor/golang.org/x/tools/internal/pkgbits/version.go deleted file mode 100644 index 53af9df..0000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/version.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// Version indicates a version of a unified IR bitstream. -// Each Version indicates the addition, removal, or change of -// new data in the bitstream. -// -// These are serialized to disk and the interpretation remains fixed. -type Version uint32 - -const ( - // V0: initial prototype. - // - // All data that is not assigned a Field is in version V0 - // and has not been deprecated. - V0 Version = iota - - // V1: adds the Flags uint32 word - V1 - - // V2: removes unused legacy fields and supports type parameters for aliases. - // - remove the legacy "has init" bool from the public root - // - remove obj's "derived func instance" bool - // - add a TypeParamNames field to ObjAlias - // - remove derived info "needed" bool - V2 - - numVersions = iota -) - -// Field denotes a unit of data in the serialized unified IR bitstream. -// It is conceptually a like field in a structure. -// -// We only really need Fields when the data may or may not be present -// in a stream based on the Version of the bitstream. -// -// Unlike much of pkgbits, Fields are not serialized and -// can change values as needed. -type Field int - -const ( - // Flags in a uint32 in the header of a bitstream - // that is used to indicate whether optional features are enabled. - Flags Field = iota - - // Deprecated: HasInit was a bool indicating whether a package - // has any init functions. - HasInit - - // Deprecated: DerivedFuncInstance was a bool indicating - // whether an object was a function instance. - DerivedFuncInstance - - // ObjAlias has a list of TypeParamNames. - AliasTypeParamNames - - // Deprecated: DerivedInfoNeeded was a bool indicating - // whether a type was a derived type. - DerivedInfoNeeded - - numFields = iota -) - -// introduced is the version a field was added. -var introduced = [numFields]Version{ - Flags: V1, - AliasTypeParamNames: V2, -} - -// removed is the version a field was removed in or 0 for fields -// that have not yet been deprecated. -// (So removed[f]-1 is the last version it is included in.) -var removed = [numFields]Version{ - HasInit: V2, - DerivedFuncInstance: V2, - DerivedInfoNeeded: V2, -} - -// Has reports whether field f is present in a bitstream at version v. -func (v Version) Has(f Field) bool { - return introduced[f] <= v && (v < removed[f] || removed[f] == V0) -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go deleted file mode 100644 index 77cf8d2..0000000 --- a/vendor/golang.org/x/tools/internal/stdlib/deps.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate.go. DO NOT EDIT. - -package stdlib - -type pkginfo struct { - name string - deps string // list of indices of dependencies, as varint-encoded deltas -} - -var deps = [...]pkginfo{ - {"archive/tar", "\x03j\x03E5\x01\v\x01#\x01\x01\x02\x05\n\x02\x01\x02\x02\v"}, - {"archive/zip", "\x02\x04`\a\x16\x0205\x01+\x05\x01\x11\x03\x02\r\x04"}, - {"bufio", "\x03j}F\x13"}, - {"bytes", "m+R\x03\fH\x02\x02"}, - {"cmp", ""}, - {"compress/bzip2", "\x02\x02\xe6\x01C"}, - {"compress/flate", "\x02k\x03z\r\x025\x01\x03"}, - {"compress/gzip", "\x02\x04`\a\x03\x15eU"}, - {"compress/lzw", "\x02k\x03z"}, - {"compress/zlib", "\x02\x04`\a\x03\x13\x01f"}, - {"container/heap", "\xae\x02"}, - {"container/list", ""}, - {"container/ring", ""}, - {"context", "m\\i\x01\f"}, - {"crypto", "\x83\x01gE"}, - {"crypto/aes", "\x10\n\a\x8e\x02"}, - {"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1c,Q"}, - {"crypto/des", "\x10\x13\x1d-,\x96\x01\x03"}, - {"crypto/dsa", "@\x04)}\x0e"}, - {"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1c}"}, - {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1c}\x0e\x04L\x01"}, - {"crypto/ed25519", "\x0e\x1c\x16\n\a\x1c}E"}, - {"crypto/elliptic", "0=}\x0e:"}, - {"crypto/fips140", " \x05\x90\x01"}, - {"crypto/hkdf", "-\x12\x01-\x16"}, - {"crypto/hmac", "\x1a\x14\x11\x01\x112"}, - {"crypto/internal/boring", "\x0e\x02\rf"}, - {"crypto/internal/boring/bbig", "\x1a\xde\x01M"}, - {"crypto/internal/boring/bcache", "\xb3\x02\x12"}, - {"crypto/internal/boring/sig", ""}, - {"crypto/internal/cryptotest", "\x03\r\n)\x0e\x19\x06\x13\x12#\a\t\x11\x11\x11\x1b\x01\f\r\x05\n"}, - {"crypto/internal/entropy", "E"}, - {"crypto/internal/fips140", ">/}9\r\x15"}, - {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05*\x8c\x016"}, - {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06*\x8a\x01"}, - {"crypto/internal/fips140/alias", "\xc5\x02"}, - {"crypto/internal/fips140/bigmod", "%\x17\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/check", " \x0e\x06\b\x02\xac\x01["}, - {"crypto/internal/fips140/check/checktest", "%\xfe\x01\""}, - {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01(}\x0f9"}, - {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f1}\x0f9"}, - {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x067}H"}, - {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v7\xc2\x01\x03"}, - {"crypto/internal/fips140/edwards25519", "%\a\f\x041\x8c\x019"}, - {"crypto/internal/fips140/edwards25519/field", "%\x13\x041\x8c\x01"}, - {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x069"}, - {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x017"}, - {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x041"}, - {"crypto/internal/fips140/nistec", "%\f\a\x041\x8c\x01*\x0f\x13"}, - {"crypto/internal/fips140/nistec/fiat", "%\x135\x8c\x01"}, - {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x069"}, - {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x025}H"}, - {"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x010\x8c\x01L"}, - {"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/ssh", " \x05"}, - {"crypto/internal/fips140/subtle", "#"}, - {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x027"}, - {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b1"}, - {"crypto/internal/fips140deps", ""}, - {"crypto/internal/fips140deps/byteorder", "\x99\x01"}, - {"crypto/internal/fips140deps/cpu", "\xad\x01\a"}, - {"crypto/internal/fips140deps/godebug", "\xb5\x01"}, - {"crypto/internal/fips140hash", "5\x1a4\xc2\x01"}, - {"crypto/internal/fips140only", "'\r\x01\x01M25"}, - {"crypto/internal/fips140test", ""}, - {"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d#,`N"}, - {"crypto/internal/impl", "\xb0\x02"}, - {"crypto/internal/randutil", "\xea\x01\x12"}, - {"crypto/internal/sysrand", "mi!\x1f\r\x0f\x01\x01\v\x06"}, - {"crypto/internal/sysrand/internal/seccomp", "m"}, - {"crypto/md5", "\x0e2-\x16\x16`"}, - {"crypto/mlkem", "/"}, - {"crypto/pbkdf2", "2\r\x01-\x16"}, - {"crypto/rand", "\x1a\x06\a\x19\x04\x01(}\x0eM"}, - {"crypto/rc4", "#\x1d-\xc2\x01"}, - {"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1c\x03\x1325\r\x01"}, - {"crypto/sha1", "\x0e\f&-\x16\x16\x14L"}, - {"crypto/sha256", "\x0e\f\x1aO"}, - {"crypto/sha3", "\x0e'N\xc2\x01"}, - {"crypto/sha512", "\x0e\f\x1cM"}, - {"crypto/subtle", "8\x96\x01U"}, - {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x13\x16\x14\b5\x16\x16\r\n\x01\x01\x01\x02\x01\f\x06\x02\x01"}, - {"crypto/tls/internal/fips140tls", " \x93\x02"}, - {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x032\x01\x02\t\x01\x01\x01\a\x10\x05\x01\x06\x02\x05\f\x01\x02\r\x02\x01\x01\x02\x03\x01"}, - {"crypto/x509/pkix", "c\x06\a\x88\x01G"}, - {"database/sql", "\x03\nJ\x16\x03z\f\x06\"\x05\n\x02\x03\x01\f\x02\x02\x02"}, - {"database/sql/driver", "\r`\x03\xae\x01\x11\x10"}, - {"debug/buildinfo", "\x03W\x02\x01\x01\b\a\x03`\x18\x02\x01+\x0f "}, - {"debug/dwarf", "\x03c\a\x03z1\x13\x01\x01"}, - {"debug/elf", "\x03\x06P\r\a\x03`\x19\x01,\x19\x01\x15"}, - {"debug/gosym", "\x03c\n\xbe\x01\x01\x01\x02"}, - {"debug/macho", "\x03\x06P\r\n`\x1a,\x19\x01"}, - {"debug/pe", "\x03\x06P\r\a\x03`\x1a,\x19\x01\x15"}, - {"debug/plan9obj", "f\a\x03`\x1a,"}, - {"embed", "m+:\x18\x01T"}, - {"embed/internal/embedtest", ""}, - {"encoding", ""}, - {"encoding/ascii85", "\xea\x01E"}, - {"encoding/asn1", "\x03j\x03\x87\x01\x01&\x0f\x02\x01\x0f\x03\x01"}, - {"encoding/base32", "\xea\x01C\x02"}, - {"encoding/base64", "\x99\x01QC\x02"}, - {"encoding/binary", "m}\r'\x0f\x05"}, - {"encoding/csv", "\x02\x01j\x03zF\x11\x02"}, - {"encoding/gob", "\x02_\x05\a\x03`\x1a\f\x01\x02\x1d\b\x14\x01\x0e\x02"}, - {"encoding/hex", "m\x03zC\x03"}, - {"encoding/json", "\x03\x01]\x04\b\x03z\r'\x0f\x02\x01\x02\x0f\x01\x01\x02"}, - {"encoding/pem", "\x03b\b}C\x03"}, - {"encoding/xml", "\x02\x01^\f\x03z4\x05\f\x01\x02\x0f\x02"}, - {"errors", "\xc9\x01|"}, - {"expvar", "jK9\t\n\x15\r\n\x02\x03\x01\x10"}, - {"flag", "a\f\x03z,\b\x05\n\x02\x01\x0f"}, - {"fmt", "mE8\r\x1f\b\x0f\x02\x03\x11"}, - {"go/ast", "\x03\x01l\x0f\x01j\x03)\b\x0f\x02\x01"}, - {"go/ast/internal/tests", ""}, - {"go/build", "\x02\x01j\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x12\x01+\x01\x04\x01\a\n\x02\x01\x11\x02\x02"}, - {"go/build/constraint", "m\xc2\x01\x01\x11\x02"}, - {"go/constant", "p\x10w\x01\x016\x01\x02\x11"}, - {"go/doc", "\x04l\x01\x06\t=-1\x12\x02\x01\x11\x02"}, - {"go/doc/comment", "\x03m\xbd\x01\x01\x01\x01\x11\x02"}, - {"go/format", "\x03m\x01\f\x01\x02jF"}, - {"go/importer", "s\a\x01\x01\x04\x01i9"}, - {"go/internal/gccgoimporter", "\x02\x01W\x13\x03\x05\v\x01g\x02,\x01\x05\x13\x01\v\b"}, - {"go/internal/gcimporter", "\x02n\x10\x01/\x05\x0e',\x17\x03\x02"}, - {"go/internal/srcimporter", "p\x01\x02\n\x03\x01i,\x01\x05\x14\x02\x13"}, - {"go/parser", "\x03j\x03\x01\x03\v\x01j\x01+\x06\x14"}, - {"go/printer", "p\x01\x03\x03\tj\r\x1f\x17\x02\x01\x02\n\x05\x02"}, - {"go/scanner", "\x03m\x10j2\x12\x01\x12\x02"}, - {"go/token", "\x04l\xbd\x01\x02\x03\x01\x0e\x02"}, - {"go/types", "\x03\x01\x06c\x03\x01\x04\b\x03\x02\x15\x1e\x06+\x04\x03\n%\a\n\x01\x01\x01\x02\x01\x0e\x02\x02"}, - {"go/version", "\xba\x01v"}, - {"hash", "\xea\x01"}, - {"hash/adler32", "m\x16\x16"}, - {"hash/crc32", "m\x16\x16\x14\x85\x01\x01\x12"}, - {"hash/crc64", "m\x16\x16\x99\x01"}, - {"hash/fnv", "m\x16\x16`"}, - {"hash/maphash", "\x94\x01\x05\x1b\x03@N"}, - {"html", "\xb0\x02\x02\x11"}, - {"html/template", "\x03g\x06\x19,5\x01\v \x05\x01\x02\x03\x0e\x01\x02\v\x01\x03\x02"}, - {"image", "\x02k\x1f^\x0f6\x03\x01"}, - {"image/color", ""}, - {"image/color/palette", "\x8c\x01"}, - {"image/draw", "\x8b\x01\x01\x04"}, - {"image/gif", "\x02\x01\x05e\x03\x1b\x01\x01\x01\vQ"}, - {"image/internal/imageutil", "\x8b\x01"}, - {"image/jpeg", "\x02k\x1e\x01\x04Z"}, - {"image/png", "\x02\a]\n\x13\x02\x06\x01^E"}, - {"index/suffixarray", "\x03c\a}\r*\f\x01"}, - {"internal/abi", "\xb4\x01\x91\x01"}, - {"internal/asan", "\xc5\x02"}, - {"internal/bisect", "\xa3\x02\x0f\x01"}, - {"internal/buildcfg", "pG_\x06\x02\x05\f\x01"}, - {"internal/bytealg", "\xad\x01\x98\x01"}, - {"internal/byteorder", ""}, - {"internal/cfg", ""}, - {"internal/chacha8rand", "\x99\x01\x1b\x91\x01"}, - {"internal/copyright", ""}, - {"internal/coverage", ""}, - {"internal/coverage/calloc", ""}, - {"internal/coverage/cfile", "j\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x01\x1f,\x06\a\f\x01\x03\f\x06"}, - {"internal/coverage/cformat", "\x04l-\x04I\f7\x01\x02\f"}, - {"internal/coverage/cmerge", "p-Z"}, - {"internal/coverage/decodecounter", "f\n-\v\x02@,\x19\x16"}, - {"internal/coverage/decodemeta", "\x02d\n\x17\x16\v\x02@,"}, - {"internal/coverage/encodecounter", "\x02d\n-\f\x01\x02>\f \x17"}, - {"internal/coverage/encodemeta", "\x02\x01c\n\x13\x04\x16\r\x02>,/"}, - {"internal/coverage/pods", "\x04l-y\x06\x05\f\x02\x01"}, - {"internal/coverage/rtcov", "\xc5\x02"}, - {"internal/coverage/slicereader", "f\nz["}, - {"internal/coverage/slicewriter", "pz"}, - {"internal/coverage/stringtab", "p8\x04>"}, - {"internal/coverage/test", ""}, - {"internal/coverage/uleb128", ""}, - {"internal/cpu", "\xc5\x02"}, - {"internal/dag", "\x04l\xbd\x01\x03"}, - {"internal/diff", "\x03m\xbe\x01\x02"}, - {"internal/exportdata", "\x02\x01j\x03\x03]\x1a,\x01\x05\x13\x01\x02"}, - {"internal/filepathlite", "m+:\x19B"}, - {"internal/fmtsort", "\x04\x9a\x02\x0f"}, - {"internal/fuzz", "\x03\nA\x18\x04\x03\x03\x01\f\x0355\r\x02\x1d\x01\x05\x02\x05\f\x01\x02\x01\x01\v\x04\x02"}, - {"internal/goarch", ""}, - {"internal/godebug", "\x96\x01 |\x01\x12"}, - {"internal/godebugs", ""}, - {"internal/goexperiment", ""}, - {"internal/goos", ""}, - {"internal/goroot", "\x96\x02\x01\x05\x14\x02"}, - {"internal/gover", "\x04"}, - {"internal/goversion", ""}, - {"internal/itoa", ""}, - {"internal/lazyregexp", "\x96\x02\v\x0f\x02"}, - {"internal/lazytemplate", "\xea\x01,\x1a\x02\v"}, - {"internal/msan", "\xc5\x02"}, - {"internal/nettrace", ""}, - {"internal/obscuretestdata", "e\x85\x01,"}, - {"internal/oserror", "m"}, - {"internal/pkgbits", "\x03K\x18\a\x03\x05\vj\x0e\x1e\r\f\x01"}, - {"internal/platform", ""}, - {"internal/poll", "mO\x1a\x149\x0f\x01\x01\v\x06"}, - {"internal/profile", "\x03\x04f\x03z7\r\x01\x01\x0f"}, - {"internal/profilerecord", ""}, - {"internal/race", "\x94\x01\xb1\x01"}, - {"internal/reflectlite", "\x94\x01 3<\""}, - {"internal/runtime/atomic", "\xc5\x02"}, - {"internal/runtime/exithook", "\xca\x01{"}, - {"internal/runtime/maps", "\x94\x01\x01\x1f\v\t\x05\x01w"}, - {"internal/runtime/math", "\xb4\x01"}, - {"internal/runtime/sys", "\xb4\x01\x04"}, - {"internal/runtime/syscall", "\xc5\x02"}, - {"internal/saferio", "\xea\x01["}, - {"internal/singleflight", "\xb2\x02"}, - {"internal/stringslite", "\x98\x01\xad\x01"}, - {"internal/sync", "\x94\x01 \x14k\x12"}, - {"internal/synctest", "\xc5\x02"}, - {"internal/syscall/execenv", "\xb4\x02"}, - {"internal/syscall/unix", "\xa3\x02\x10\x01\x11"}, - {"internal/sysinfo", "\x02\x01\xaa\x01=,\x1a\x02"}, - {"internal/syslist", ""}, - {"internal/testenv", "\x03\n`\x02\x01*\x1a\x10'+\x01\x05\a\f\x01\x02\x02\x01\n"}, - {"internal/testlog", "\xb2\x02\x01\x12"}, - {"internal/testpty", "m\x03\xa6\x01"}, - {"internal/trace", "\x02\x01\x01\x06\\\a\x03n\x03\x03\x06\x03\n6\x01\x02\x0f\x06"}, - {"internal/trace/internal/testgen", "\x03c\nl\x03\x02\x03\x011\v\x0f"}, - {"internal/trace/internal/tracev1", "\x03\x01b\a\x03t\x06\r6\x01"}, - {"internal/trace/raw", "\x02d\nq\x03\x06E\x01\x11"}, - {"internal/trace/testtrace", "\x02\x01j\x03l\x03\x06\x057\f\x02\x01"}, - {"internal/trace/tracev2", ""}, - {"internal/trace/traceviewer", "\x02]\v\x06\x1a<\x16\a\a\x04\t\n\x15\x01\x05\a\f\x01\x02\r"}, - {"internal/trace/traceviewer/format", ""}, - {"internal/trace/version", "pq\t"}, - {"internal/txtar", "\x03m\xa6\x01\x1a"}, - {"internal/types/errors", "\xaf\x02"}, - {"internal/unsafeheader", "\xc5\x02"}, - {"internal/xcoff", "Y\r\a\x03`\x1a,\x19\x01"}, - {"internal/zstd", "f\a\x03z\x0f"}, - {"io", "m\xc5\x01"}, - {"io/fs", "m+*(1\x12\x12\x04"}, - {"io/ioutil", "\xea\x01\x01+\x17\x03"}, - {"iter", "\xc8\x01[\""}, - {"log", "pz\x05'\r\x0f\x01\f"}, - {"log/internal", ""}, - {"log/slog", "\x03\nT\t\x03\x03z\x04\x01\x02\x02\x04'\x05\n\x02\x01\x02\x01\f\x02\x02\x02"}, - {"log/slog/internal", ""}, - {"log/slog/internal/benchmarks", "\r`\x03z\x06\x03<\x10"}, - {"log/slog/internal/buffer", "\xb2\x02"}, - {"log/slog/internal/slogtest", "\xf0\x01"}, - {"log/syslog", "m\x03~\x12\x16\x1a\x02\r"}, - {"maps", "\xed\x01X"}, - {"math", "\xad\x01LL"}, - {"math/big", "\x03j\x03)\x14=\r\x02\x024\x01\x02\x13"}, - {"math/bits", "\xc5\x02"}, - {"math/cmplx", "\xf7\x01\x02"}, - {"math/rand", "\xb5\x01B;\x01\x12"}, - {"math/rand/v2", "m,\x02\\\x02L"}, - {"mime", "\x02\x01b\b\x03z\f \x17\x03\x02\x0f\x02"}, - {"mime/multipart", "\x02\x01G#\x03E5\f\x01\x06\x02\x15\x02\x06\x11\x02\x01\x15"}, - {"mime/quotedprintable", "\x02\x01mz"}, - {"net", "\x04\t`+\x1d\a\x04\x05\f\x01\x04\x14\x01%\x06\r\n\x05\x01\x01\v\x06\a"}, - {"net/http", "\x02\x01\x04\x04\x02=\b\x13\x01\a\x03E5\x01\x03\b\x01\x02\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\n\x01\x01\x01\x02\x01\x01\v\x02\x02\x02\b\x01\x01\x01"}, - {"net/http/cgi", "\x02P\x1b\x03z\x04\b\n\x01\x13\x01\x01\x01\x04\x01\x05\x02\n\x02\x01\x0f\x0e"}, - {"net/http/cookiejar", "\x04i\x03\x90\x01\x01\b\f\x18\x03\x02\r\x04"}, - {"net/http/fcgi", "\x02\x01\nY\a\x03z\x16\x01\x01\x14\x1a\x02\r"}, - {"net/http/httptest", "\x02\x01\nE\x02\x1b\x01z\x04\x12\x01\n\t\x02\x19\x01\x02\r\x0e"}, - {"net/http/httptrace", "\rEn@\x14\n!"}, - {"net/http/httputil", "\x02\x01\n`\x03z\x04\x0f\x03\x01\x05\x02\x01\v\x01\x1b\x02\r\x0e"}, - {"net/http/internal", "\x02\x01j\x03z"}, - {"net/http/internal/ascii", "\xb0\x02\x11"}, - {"net/http/internal/httpcommon", "\r`\x03\x96\x01\x0e\x01\x19\x01\x01\x02\x1b\x02"}, - {"net/http/internal/testcert", "\xb0\x02"}, - {"net/http/pprof", "\x02\x01\nc\x19,\x11$\x04\x13\x14\x01\r\x06\x03\x01\x02\x01\x0f"}, - {"net/internal/cgotest", ""}, - {"net/internal/socktest", "p\xc2\x01\x02"}, - {"net/mail", "\x02k\x03z\x04\x0f\x03\x14\x1c\x02\r\x04"}, - {"net/netip", "\x04i+\x01#;\x026\x15"}, - {"net/rpc", "\x02f\x05\x03\x10\n`\x04\x12\x01\x1d\x0f\x03\x02"}, - {"net/rpc/jsonrpc", "j\x03\x03z\x16\x11!"}, - {"net/smtp", "\x19.\v\x13\b\x03z\x16\x14\x1c"}, - {"net/textproto", "\x02\x01j\x03z\r\t/\x01\x02\x13"}, - {"net/url", "m\x03\x86\x01%\x12\x02\x01\x15"}, - {"os", "m+\x01\x18\x03\b\t\r\x03\x01\x04\x10\x018\n\x05\x01\x01\v\x06"}, - {"os/exec", "\x03\n`H \x01\x14\x01+\x06\a\f\x01\x04\v"}, - {"os/exec/internal/fdtest", "\xb4\x02"}, - {"os/signal", "\r\x89\x02\x17\x05\x02"}, - {"os/user", "\x02\x01j\x03z,\r\f\x01\x02"}, - {"path", "m+\xab\x01"}, - {"path/filepath", "m+\x19:+\r\n\x03\x04\x0f"}, - {"plugin", "m"}, - {"reflect", "m'\x04\x1c\b\f\x04\x02\x19\x10,\f\x03\x0f\x02\x02"}, - {"reflect/internal/example1", ""}, - {"reflect/internal/example2", ""}, - {"regexp", "\x03\xe7\x018\v\x02\x01\x02\x0f\x02"}, - {"regexp/syntax", "\xad\x02\x01\x01\x01\x11\x02"}, - {"runtime", "\x94\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x03\x0fd"}, - {"runtime/coverage", "\x9f\x01K"}, - {"runtime/debug", "pUQ\r\n\x02\x01\x0f\x06"}, - {"runtime/internal/startlinetest", ""}, - {"runtime/internal/wasitest", ""}, - {"runtime/metrics", "\xb6\x01A,\""}, - {"runtime/pprof", "\x02\x01\x01\x03\x06Y\a\x03$3#\r\x1f\r\n\x01\x01\x01\x02\x02\b\x03\x06"}, - {"runtime/race", "\xab\x02"}, - {"runtime/race/internal/amd64v1", ""}, - {"runtime/trace", "\rcz9\x0f\x01\x12"}, - {"slices", "\x04\xe9\x01\fL"}, - {"sort", "\xc9\x0104"}, - {"strconv", "m+:%\x02J"}, - {"strings", "m'\x04:\x18\x03\f9\x0f\x02\x02"}, - {"structs", ""}, - {"sync", "\xc8\x01\vP\x10\x12"}, - {"sync/atomic", "\xc5\x02"}, - {"syscall", "m(\x03\x01\x1b\b\x03\x03\x06\aT\n\x05\x01\x12"}, - {"testing", "\x03\n`\x02\x01X\x0f\x13\r\x04\x1b\x06\x02\x05\x02\a\x01\x02\x01\x02\x01\f\x02\x02\x02"}, - {"testing/fstest", "m\x03z\x01\v%\x12\x03\b\a"}, - {"testing/internal/testdeps", "\x02\v\xa6\x01'\x10,\x03\x05\x03\b\a\x02\r"}, - {"testing/iotest", "\x03j\x03z\x04"}, - {"testing/quick", "o\x01\x87\x01\x04#\x12\x0f"}, - {"testing/slogtest", "\r`\x03\x80\x01.\x05\x12\n"}, - {"text/scanner", "\x03mz,+\x02"}, - {"text/tabwriter", "pzY"}, - {"text/template", "m\x03B8\x01\v\x1f\x01\x05\x01\x02\x05\r\x02\f\x03\x02"}, - {"text/template/parse", "\x03m\xb3\x01\f\x01\x11\x02"}, - {"time", "m+\x1d\x1d'*\x0f\x02\x11"}, - {"time/tzdata", "m\xc7\x01\x11"}, - {"unicode", ""}, - {"unicode/utf16", ""}, - {"unicode/utf8", ""}, - {"unique", "\x94\x01>\x01P\x0f\x13\x12"}, - {"unsafe", ""}, - {"vendor/golang.org/x/crypto/chacha20", "\x10V\a\x8c\x01*'"}, - {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10V\a\xd9\x01\x04\x01\a"}, - {"vendor/golang.org/x/crypto/cryptobyte", "c\n\x03\x88\x01&!\n"}, - {"vendor/golang.org/x/crypto/cryptobyte/asn1", ""}, - {"vendor/golang.org/x/crypto/internal/alias", "\xc5\x02"}, - {"vendor/golang.org/x/crypto/internal/poly1305", "Q\x15\x93\x01"}, - {"vendor/golang.org/x/net/dns/dnsmessage", "m"}, - {"vendor/golang.org/x/net/http/httpguts", "\x80\x02\x14\x1c\x13\r"}, - {"vendor/golang.org/x/net/http/httpproxy", "m\x03\x90\x01\x15\x01\x1a\x13\r"}, - {"vendor/golang.org/x/net/http2/hpack", "\x03j\x03zH"}, - {"vendor/golang.org/x/net/idna", "p\x87\x019\x13\x10\x02\x01"}, - {"vendor/golang.org/x/net/nettest", "\x03c\a\x03z\x11\x05\x16\x01\f\f\x01\x02\x02\x01\n"}, - {"vendor/golang.org/x/sys/cpu", "\x96\x02\r\f\x01\x15"}, - {"vendor/golang.org/x/text/secure/bidirule", "m\xd6\x01\x11\x01"}, - {"vendor/golang.org/x/text/transform", "\x03j}Y"}, - {"vendor/golang.org/x/text/unicode/bidi", "\x03\be~@\x15"}, - {"vendor/golang.org/x/text/unicode/norm", "f\nzH\x11\x11"}, - {"weak", "\x94\x01\x8f\x01\""}, -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/import.go b/vendor/golang.org/x/tools/internal/stdlib/import.go deleted file mode 100644 index f690987..0000000 --- a/vendor/golang.org/x/tools/internal/stdlib/import.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package stdlib - -// This file provides the API for the import graph of the standard library. -// -// Be aware that the compiler-generated code for every package -// implicitly depends on package "runtime" and a handful of others -// (see runtimePkgs in GOROOT/src/cmd/internal/objabi/pkgspecial.go). - -import ( - "encoding/binary" - "iter" - "slices" - "strings" -) - -// Imports returns the sequence of packages directly imported by the -// named standard packages, in name order. -// The imports of an unknown package are the empty set. -// -// The graph is built into the application and may differ from the -// graph in the Go source tree being analyzed by the application. -func Imports(pkgs ...string) iter.Seq[string] { - return func(yield func(string) bool) { - for _, pkg := range pkgs { - if i, ok := find(pkg); ok { - var depIndex uint64 - for data := []byte(deps[i].deps); len(data) > 0; { - delta, n := binary.Uvarint(data) - depIndex += delta - if !yield(deps[depIndex].name) { - return - } - data = data[n:] - } - } - } - } -} - -// Dependencies returns the set of all dependencies of the named -// standard packages, including the initial package, -// in a deterministic topological order. -// The dependencies of an unknown package are the empty set. -// -// The graph is built into the application and may differ from the -// graph in the Go source tree being analyzed by the application. -func Dependencies(pkgs ...string) iter.Seq[string] { - return func(yield func(string) bool) { - for _, pkg := range pkgs { - if i, ok := find(pkg); ok { - var seen [1 + len(deps)/8]byte // bit set of seen packages - var visit func(i int) bool - visit = func(i int) bool { - bit := byte(1) << (i % 8) - if seen[i/8]&bit == 0 { - seen[i/8] |= bit - var depIndex uint64 - for data := []byte(deps[i].deps); len(data) > 0; { - delta, n := binary.Uvarint(data) - depIndex += delta - if !visit(int(depIndex)) { - return false - } - data = data[n:] - } - if !yield(deps[i].name) { - return false - } - } - return true - } - if !visit(i) { - return - } - } - } - } -} - -// find returns the index of pkg in the deps table. -func find(pkg string) (int, bool) { - return slices.BinarySearchFunc(deps[:], pkg, func(p pkginfo, n string) int { - return strings.Compare(p.name, n) - }) -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go deleted file mode 100644 index 64f0326..0000000 --- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go +++ /dev/null @@ -1,17676 +0,0 @@ -// Copyright 2025 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate.go. DO NOT EDIT. - -package stdlib - -var PackageSymbols = map[string][]Symbol{ - "archive/tar": { - {"(*Header).FileInfo", Method, 1, ""}, - {"(*Reader).Next", Method, 0, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Writer).AddFS", Method, 22, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"(*Writer).WriteHeader", Method, 0, ""}, - {"(Format).String", Method, 10, ""}, - {"ErrFieldTooLong", Var, 0, ""}, - {"ErrHeader", Var, 0, ""}, - {"ErrInsecurePath", Var, 20, ""}, - {"ErrWriteAfterClose", Var, 0, ""}, - {"ErrWriteTooLong", Var, 0, ""}, - {"FileInfoHeader", Func, 1, "func(fi fs.FileInfo, link string) (*Header, error)"}, - {"FileInfoNames", Type, 23, ""}, - {"Format", Type, 10, ""}, - {"FormatGNU", Const, 10, ""}, - {"FormatPAX", Const, 10, ""}, - {"FormatUSTAR", Const, 10, ""}, - {"FormatUnknown", Const, 10, ""}, - {"Header", Type, 0, ""}, - {"Header.AccessTime", Field, 0, ""}, - {"Header.ChangeTime", Field, 0, ""}, - {"Header.Devmajor", Field, 0, ""}, - {"Header.Devminor", Field, 0, ""}, - {"Header.Format", Field, 10, ""}, - {"Header.Gid", Field, 0, ""}, - {"Header.Gname", Field, 0, ""}, - {"Header.Linkname", Field, 0, ""}, - {"Header.ModTime", Field, 0, ""}, - {"Header.Mode", Field, 0, ""}, - {"Header.Name", Field, 0, ""}, - {"Header.PAXRecords", Field, 10, ""}, - {"Header.Size", Field, 0, ""}, - {"Header.Typeflag", Field, 0, ""}, - {"Header.Uid", Field, 0, ""}, - {"Header.Uname", Field, 0, ""}, - {"Header.Xattrs", Field, 3, ""}, - {"NewReader", Func, 0, "func(r io.Reader) *Reader"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"Reader", Type, 0, ""}, - {"TypeBlock", Const, 0, ""}, - {"TypeChar", Const, 0, ""}, - {"TypeCont", Const, 0, ""}, - {"TypeDir", Const, 0, ""}, - {"TypeFifo", Const, 0, ""}, - {"TypeGNULongLink", Const, 1, ""}, - {"TypeGNULongName", Const, 1, ""}, - {"TypeGNUSparse", Const, 3, ""}, - {"TypeLink", Const, 0, ""}, - {"TypeReg", Const, 0, ""}, - {"TypeRegA", Const, 0, ""}, - {"TypeSymlink", Const, 0, ""}, - {"TypeXGlobalHeader", Const, 0, ""}, - {"TypeXHeader", Const, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "archive/zip": { - {"(*File).DataOffset", Method, 2, ""}, - {"(*File).FileInfo", Method, 0, ""}, - {"(*File).ModTime", Method, 0, ""}, - {"(*File).Mode", Method, 0, ""}, - {"(*File).Open", Method, 0, ""}, - {"(*File).OpenRaw", Method, 17, ""}, - {"(*File).SetModTime", Method, 0, ""}, - {"(*File).SetMode", Method, 0, ""}, - {"(*FileHeader).FileInfo", Method, 0, ""}, - {"(*FileHeader).ModTime", Method, 0, ""}, - {"(*FileHeader).Mode", Method, 0, ""}, - {"(*FileHeader).SetModTime", Method, 0, ""}, - {"(*FileHeader).SetMode", Method, 0, ""}, - {"(*ReadCloser).Close", Method, 0, ""}, - {"(*ReadCloser).Open", Method, 16, ""}, - {"(*ReadCloser).RegisterDecompressor", Method, 6, ""}, - {"(*Reader).Open", Method, 16, ""}, - {"(*Reader).RegisterDecompressor", Method, 6, ""}, - {"(*Writer).AddFS", Method, 22, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Copy", Method, 17, ""}, - {"(*Writer).Create", Method, 0, ""}, - {"(*Writer).CreateHeader", Method, 0, ""}, - {"(*Writer).CreateRaw", Method, 17, ""}, - {"(*Writer).Flush", Method, 4, ""}, - {"(*Writer).RegisterCompressor", Method, 6, ""}, - {"(*Writer).SetComment", Method, 10, ""}, - {"(*Writer).SetOffset", Method, 5, ""}, - {"Compressor", Type, 2, ""}, - {"Decompressor", Type, 2, ""}, - {"Deflate", Const, 0, ""}, - {"ErrAlgorithm", Var, 0, ""}, - {"ErrChecksum", Var, 0, ""}, - {"ErrFormat", Var, 0, ""}, - {"ErrInsecurePath", Var, 20, ""}, - {"File", Type, 0, ""}, - {"File.FileHeader", Field, 0, ""}, - {"FileHeader", Type, 0, ""}, - {"FileHeader.CRC32", Field, 0, ""}, - {"FileHeader.Comment", Field, 0, ""}, - {"FileHeader.CompressedSize", Field, 0, ""}, - {"FileHeader.CompressedSize64", Field, 1, ""}, - {"FileHeader.CreatorVersion", Field, 0, ""}, - {"FileHeader.ExternalAttrs", Field, 0, ""}, - {"FileHeader.Extra", Field, 0, ""}, - {"FileHeader.Flags", Field, 0, ""}, - {"FileHeader.Method", Field, 0, ""}, - {"FileHeader.Modified", Field, 10, ""}, - {"FileHeader.ModifiedDate", Field, 0, ""}, - {"FileHeader.ModifiedTime", Field, 0, ""}, - {"FileHeader.Name", Field, 0, ""}, - {"FileHeader.NonUTF8", Field, 10, ""}, - {"FileHeader.ReaderVersion", Field, 0, ""}, - {"FileHeader.UncompressedSize", Field, 0, ""}, - {"FileHeader.UncompressedSize64", Field, 1, ""}, - {"FileInfoHeader", Func, 0, "func(fi fs.FileInfo) (*FileHeader, error)"}, - {"NewReader", Func, 0, "func(r io.ReaderAt, size int64) (*Reader, error)"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"OpenReader", Func, 0, "func(name string) (*ReadCloser, error)"}, - {"ReadCloser", Type, 0, ""}, - {"ReadCloser.Reader", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"Reader.Comment", Field, 0, ""}, - {"Reader.File", Field, 0, ""}, - {"RegisterCompressor", Func, 2, "func(method uint16, comp Compressor)"}, - {"RegisterDecompressor", Func, 2, "func(method uint16, dcomp Decompressor)"}, - {"Store", Const, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "bufio": { - {"(*Reader).Buffered", Method, 0, ""}, - {"(*Reader).Discard", Method, 5, ""}, - {"(*Reader).Peek", Method, 0, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Reader).ReadByte", Method, 0, ""}, - {"(*Reader).ReadBytes", Method, 0, ""}, - {"(*Reader).ReadLine", Method, 0, ""}, - {"(*Reader).ReadRune", Method, 0, ""}, - {"(*Reader).ReadSlice", Method, 0, ""}, - {"(*Reader).ReadString", Method, 0, ""}, - {"(*Reader).Reset", Method, 2, ""}, - {"(*Reader).Size", Method, 10, ""}, - {"(*Reader).UnreadByte", Method, 0, ""}, - {"(*Reader).UnreadRune", Method, 0, ""}, - {"(*Reader).WriteTo", Method, 1, ""}, - {"(*Scanner).Buffer", Method, 6, ""}, - {"(*Scanner).Bytes", Method, 1, ""}, - {"(*Scanner).Err", Method, 1, ""}, - {"(*Scanner).Scan", Method, 1, ""}, - {"(*Scanner).Split", Method, 1, ""}, - {"(*Scanner).Text", Method, 1, ""}, - {"(*Writer).Available", Method, 0, ""}, - {"(*Writer).AvailableBuffer", Method, 18, ""}, - {"(*Writer).Buffered", Method, 0, ""}, - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).ReadFrom", Method, 1, ""}, - {"(*Writer).Reset", Method, 2, ""}, - {"(*Writer).Size", Method, 10, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"(*Writer).WriteByte", Method, 0, ""}, - {"(*Writer).WriteRune", Method, 0, ""}, - {"(*Writer).WriteString", Method, 0, ""}, - {"(ReadWriter).Available", Method, 0, ""}, - {"(ReadWriter).AvailableBuffer", Method, 18, ""}, - {"(ReadWriter).Discard", Method, 5, ""}, - {"(ReadWriter).Flush", Method, 0, ""}, - {"(ReadWriter).Peek", Method, 0, ""}, - {"(ReadWriter).Read", Method, 0, ""}, - {"(ReadWriter).ReadByte", Method, 0, ""}, - {"(ReadWriter).ReadBytes", Method, 0, ""}, - {"(ReadWriter).ReadFrom", Method, 1, ""}, - {"(ReadWriter).ReadLine", Method, 0, ""}, - {"(ReadWriter).ReadRune", Method, 0, ""}, - {"(ReadWriter).ReadSlice", Method, 0, ""}, - {"(ReadWriter).ReadString", Method, 0, ""}, - {"(ReadWriter).UnreadByte", Method, 0, ""}, - {"(ReadWriter).UnreadRune", Method, 0, ""}, - {"(ReadWriter).Write", Method, 0, ""}, - {"(ReadWriter).WriteByte", Method, 0, ""}, - {"(ReadWriter).WriteRune", Method, 0, ""}, - {"(ReadWriter).WriteString", Method, 0, ""}, - {"(ReadWriter).WriteTo", Method, 1, ""}, - {"ErrAdvanceTooFar", Var, 1, ""}, - {"ErrBadReadCount", Var, 15, ""}, - {"ErrBufferFull", Var, 0, ""}, - {"ErrFinalToken", Var, 6, ""}, - {"ErrInvalidUnreadByte", Var, 0, ""}, - {"ErrInvalidUnreadRune", Var, 0, ""}, - {"ErrNegativeAdvance", Var, 1, ""}, - {"ErrNegativeCount", Var, 0, ""}, - {"ErrTooLong", Var, 1, ""}, - {"MaxScanTokenSize", Const, 1, ""}, - {"NewReadWriter", Func, 0, "func(r *Reader, w *Writer) *ReadWriter"}, - {"NewReader", Func, 0, "func(rd io.Reader) *Reader"}, - {"NewReaderSize", Func, 0, "func(rd io.Reader, size int) *Reader"}, - {"NewScanner", Func, 1, "func(r io.Reader) *Scanner"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"NewWriterSize", Func, 0, "func(w io.Writer, size int) *Writer"}, - {"ReadWriter", Type, 0, ""}, - {"ReadWriter.Reader", Field, 0, ""}, - {"ReadWriter.Writer", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"ScanBytes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, - {"ScanLines", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, - {"ScanRunes", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, - {"ScanWords", Func, 1, "func(data []byte, atEOF bool) (advance int, token []byte, err error)"}, - {"Scanner", Type, 1, ""}, - {"SplitFunc", Type, 1, ""}, - {"Writer", Type, 0, ""}, - }, - "bytes": { - {"(*Buffer).Available", Method, 21, ""}, - {"(*Buffer).AvailableBuffer", Method, 21, ""}, - {"(*Buffer).Bytes", Method, 0, ""}, - {"(*Buffer).Cap", Method, 5, ""}, - {"(*Buffer).Grow", Method, 1, ""}, - {"(*Buffer).Len", Method, 0, ""}, - {"(*Buffer).Next", Method, 0, ""}, - {"(*Buffer).Read", Method, 0, ""}, - {"(*Buffer).ReadByte", Method, 0, ""}, - {"(*Buffer).ReadBytes", Method, 0, ""}, - {"(*Buffer).ReadFrom", Method, 0, ""}, - {"(*Buffer).ReadRune", Method, 0, ""}, - {"(*Buffer).ReadString", Method, 0, ""}, - {"(*Buffer).Reset", Method, 0, ""}, - {"(*Buffer).String", Method, 0, ""}, - {"(*Buffer).Truncate", Method, 0, ""}, - {"(*Buffer).UnreadByte", Method, 0, ""}, - {"(*Buffer).UnreadRune", Method, 0, ""}, - {"(*Buffer).Write", Method, 0, ""}, - {"(*Buffer).WriteByte", Method, 0, ""}, - {"(*Buffer).WriteRune", Method, 0, ""}, - {"(*Buffer).WriteString", Method, 0, ""}, - {"(*Buffer).WriteTo", Method, 0, ""}, - {"(*Reader).Len", Method, 0, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Reader).ReadAt", Method, 0, ""}, - {"(*Reader).ReadByte", Method, 0, ""}, - {"(*Reader).ReadRune", Method, 0, ""}, - {"(*Reader).Reset", Method, 7, ""}, - {"(*Reader).Seek", Method, 0, ""}, - {"(*Reader).Size", Method, 5, ""}, - {"(*Reader).UnreadByte", Method, 0, ""}, - {"(*Reader).UnreadRune", Method, 0, ""}, - {"(*Reader).WriteTo", Method, 1, ""}, - {"Buffer", Type, 0, ""}, - {"Clone", Func, 20, "func(b []byte) []byte"}, - {"Compare", Func, 0, "func(a []byte, b []byte) int"}, - {"Contains", Func, 0, "func(b []byte, subslice []byte) bool"}, - {"ContainsAny", Func, 7, "func(b []byte, chars string) bool"}, - {"ContainsFunc", Func, 21, "func(b []byte, f func(rune) bool) bool"}, - {"ContainsRune", Func, 7, "func(b []byte, r rune) bool"}, - {"Count", Func, 0, "func(s []byte, sep []byte) int"}, - {"Cut", Func, 18, "func(s []byte, sep []byte) (before []byte, after []byte, found bool)"}, - {"CutPrefix", Func, 20, "func(s []byte, prefix []byte) (after []byte, found bool)"}, - {"CutSuffix", Func, 20, "func(s []byte, suffix []byte) (before []byte, found bool)"}, - {"Equal", Func, 0, "func(a []byte, b []byte) bool"}, - {"EqualFold", Func, 0, "func(s []byte, t []byte) bool"}, - {"ErrTooLarge", Var, 0, ""}, - {"Fields", Func, 0, "func(s []byte) [][]byte"}, - {"FieldsFunc", Func, 0, "func(s []byte, f func(rune) bool) [][]byte"}, - {"FieldsFuncSeq", Func, 24, "func(s []byte, f func(rune) bool) iter.Seq[[]byte]"}, - {"FieldsSeq", Func, 24, "func(s []byte) iter.Seq[[]byte]"}, - {"HasPrefix", Func, 0, "func(s []byte, prefix []byte) bool"}, - {"HasSuffix", Func, 0, "func(s []byte, suffix []byte) bool"}, - {"Index", Func, 0, "func(s []byte, sep []byte) int"}, - {"IndexAny", Func, 0, "func(s []byte, chars string) int"}, - {"IndexByte", Func, 0, "func(b []byte, c byte) int"}, - {"IndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"}, - {"IndexRune", Func, 0, "func(s []byte, r rune) int"}, - {"Join", Func, 0, "func(s [][]byte, sep []byte) []byte"}, - {"LastIndex", Func, 0, "func(s []byte, sep []byte) int"}, - {"LastIndexAny", Func, 0, "func(s []byte, chars string) int"}, - {"LastIndexByte", Func, 5, "func(s []byte, c byte) int"}, - {"LastIndexFunc", Func, 0, "func(s []byte, f func(r rune) bool) int"}, - {"Lines", Func, 24, "func(s []byte) iter.Seq[[]byte]"}, - {"Map", Func, 0, "func(mapping func(r rune) rune, s []byte) []byte"}, - {"MinRead", Const, 0, ""}, - {"NewBuffer", Func, 0, "func(buf []byte) *Buffer"}, - {"NewBufferString", Func, 0, "func(s string) *Buffer"}, - {"NewReader", Func, 0, "func(b []byte) *Reader"}, - {"Reader", Type, 0, ""}, - {"Repeat", Func, 0, "func(b []byte, count int) []byte"}, - {"Replace", Func, 0, "func(s []byte, old []byte, new []byte, n int) []byte"}, - {"ReplaceAll", Func, 12, "func(s []byte, old []byte, new []byte) []byte"}, - {"Runes", Func, 0, "func(s []byte) []rune"}, - {"Split", Func, 0, "func(s []byte, sep []byte) [][]byte"}, - {"SplitAfter", Func, 0, "func(s []byte, sep []byte) [][]byte"}, - {"SplitAfterN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"}, - {"SplitAfterSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"}, - {"SplitN", Func, 0, "func(s []byte, sep []byte, n int) [][]byte"}, - {"SplitSeq", Func, 24, "func(s []byte, sep []byte) iter.Seq[[]byte]"}, - {"Title", Func, 0, "func(s []byte) []byte"}, - {"ToLower", Func, 0, "func(s []byte) []byte"}, - {"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, - {"ToTitle", Func, 0, "func(s []byte) []byte"}, - {"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, - {"ToUpper", Func, 0, "func(s []byte) []byte"}, - {"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s []byte) []byte"}, - {"ToValidUTF8", Func, 13, "func(s []byte, replacement []byte) []byte"}, - {"Trim", Func, 0, "func(s []byte, cutset string) []byte"}, - {"TrimFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, - {"TrimLeft", Func, 0, "func(s []byte, cutset string) []byte"}, - {"TrimLeftFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, - {"TrimPrefix", Func, 1, "func(s []byte, prefix []byte) []byte"}, - {"TrimRight", Func, 0, "func(s []byte, cutset string) []byte"}, - {"TrimRightFunc", Func, 0, "func(s []byte, f func(r rune) bool) []byte"}, - {"TrimSpace", Func, 0, "func(s []byte) []byte"}, - {"TrimSuffix", Func, 1, "func(s []byte, suffix []byte) []byte"}, - }, - "cmp": { - {"Compare", Func, 21, "func[T Ordered](x T, y T) int"}, - {"Less", Func, 21, "func[T Ordered](x T, y T) bool"}, - {"Or", Func, 22, "func[T comparable](vals ...T) T"}, - {"Ordered", Type, 21, ""}, - }, - "compress/bzip2": { - {"(StructuralError).Error", Method, 0, ""}, - {"NewReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"StructuralError", Type, 0, ""}, - }, - "compress/flate": { - {"(*ReadError).Error", Method, 0, ""}, - {"(*WriteError).Error", Method, 0, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).Reset", Method, 2, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"(CorruptInputError).Error", Method, 0, ""}, - {"(InternalError).Error", Method, 0, ""}, - {"BestCompression", Const, 0, ""}, - {"BestSpeed", Const, 0, ""}, - {"CorruptInputError", Type, 0, ""}, - {"DefaultCompression", Const, 0, ""}, - {"HuffmanOnly", Const, 7, ""}, - {"InternalError", Type, 0, ""}, - {"NewReader", Func, 0, "func(r io.Reader) io.ReadCloser"}, - {"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) io.ReadCloser"}, - {"NewWriter", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, - {"NewWriterDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"}, - {"NoCompression", Const, 0, ""}, - {"ReadError", Type, 0, ""}, - {"ReadError.Err", Field, 0, ""}, - {"ReadError.Offset", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"Resetter", Type, 4, ""}, - {"WriteError", Type, 0, ""}, - {"WriteError.Err", Field, 0, ""}, - {"WriteError.Offset", Field, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "compress/gzip": { - {"(*Reader).Close", Method, 0, ""}, - {"(*Reader).Multistream", Method, 4, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Reader).Reset", Method, 3, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Flush", Method, 1, ""}, - {"(*Writer).Reset", Method, 2, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"BestCompression", Const, 0, ""}, - {"BestSpeed", Const, 0, ""}, - {"DefaultCompression", Const, 0, ""}, - {"ErrChecksum", Var, 0, ""}, - {"ErrHeader", Var, 0, ""}, - {"Header", Type, 0, ""}, - {"Header.Comment", Field, 0, ""}, - {"Header.Extra", Field, 0, ""}, - {"Header.ModTime", Field, 0, ""}, - {"Header.Name", Field, 0, ""}, - {"Header.OS", Field, 0, ""}, - {"HuffmanOnly", Const, 8, ""}, - {"NewReader", Func, 0, "func(r io.Reader) (*Reader, error)"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, - {"NoCompression", Const, 0, ""}, - {"Reader", Type, 0, ""}, - {"Reader.Header", Field, 0, ""}, - {"Writer", Type, 0, ""}, - {"Writer.Header", Field, 0, ""}, - }, - "compress/lzw": { - {"(*Reader).Close", Method, 17, ""}, - {"(*Reader).Read", Method, 17, ""}, - {"(*Reader).Reset", Method, 17, ""}, - {"(*Writer).Close", Method, 17, ""}, - {"(*Writer).Reset", Method, 17, ""}, - {"(*Writer).Write", Method, 17, ""}, - {"LSB", Const, 0, ""}, - {"MSB", Const, 0, ""}, - {"NewReader", Func, 0, "func(r io.Reader, order Order, litWidth int) io.ReadCloser"}, - {"NewWriter", Func, 0, "func(w io.Writer, order Order, litWidth int) io.WriteCloser"}, - {"Order", Type, 0, ""}, - {"Reader", Type, 17, ""}, - {"Writer", Type, 17, ""}, - }, - "compress/zlib": { - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).Reset", Method, 2, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"BestCompression", Const, 0, ""}, - {"BestSpeed", Const, 0, ""}, - {"DefaultCompression", Const, 0, ""}, - {"ErrChecksum", Var, 0, ""}, - {"ErrDictionary", Var, 0, ""}, - {"ErrHeader", Var, 0, ""}, - {"HuffmanOnly", Const, 8, ""}, - {"NewReader", Func, 0, "func(r io.Reader) (io.ReadCloser, error)"}, - {"NewReaderDict", Func, 0, "func(r io.Reader, dict []byte) (io.ReadCloser, error)"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"NewWriterLevel", Func, 0, "func(w io.Writer, level int) (*Writer, error)"}, - {"NewWriterLevelDict", Func, 0, "func(w io.Writer, level int, dict []byte) (*Writer, error)"}, - {"NoCompression", Const, 0, ""}, - {"Resetter", Type, 4, ""}, - {"Writer", Type, 0, ""}, - }, - "container/heap": { - {"Fix", Func, 2, "func(h Interface, i int)"}, - {"Init", Func, 0, "func(h Interface)"}, - {"Interface", Type, 0, ""}, - {"Pop", Func, 0, "func(h Interface) any"}, - {"Push", Func, 0, "func(h Interface, x any)"}, - {"Remove", Func, 0, "func(h Interface, i int) any"}, - }, - "container/list": { - {"(*Element).Next", Method, 0, ""}, - {"(*Element).Prev", Method, 0, ""}, - {"(*List).Back", Method, 0, ""}, - {"(*List).Front", Method, 0, ""}, - {"(*List).Init", Method, 0, ""}, - {"(*List).InsertAfter", Method, 0, ""}, - {"(*List).InsertBefore", Method, 0, ""}, - {"(*List).Len", Method, 0, ""}, - {"(*List).MoveAfter", Method, 2, ""}, - {"(*List).MoveBefore", Method, 2, ""}, - {"(*List).MoveToBack", Method, 0, ""}, - {"(*List).MoveToFront", Method, 0, ""}, - {"(*List).PushBack", Method, 0, ""}, - {"(*List).PushBackList", Method, 0, ""}, - {"(*List).PushFront", Method, 0, ""}, - {"(*List).PushFrontList", Method, 0, ""}, - {"(*List).Remove", Method, 0, ""}, - {"Element", Type, 0, ""}, - {"Element.Value", Field, 0, ""}, - {"List", Type, 0, ""}, - {"New", Func, 0, "func() *List"}, - }, - "container/ring": { - {"(*Ring).Do", Method, 0, ""}, - {"(*Ring).Len", Method, 0, ""}, - {"(*Ring).Link", Method, 0, ""}, - {"(*Ring).Move", Method, 0, ""}, - {"(*Ring).Next", Method, 0, ""}, - {"(*Ring).Prev", Method, 0, ""}, - {"(*Ring).Unlink", Method, 0, ""}, - {"New", Func, 0, "func(n int) *Ring"}, - {"Ring", Type, 0, ""}, - {"Ring.Value", Field, 0, ""}, - }, - "context": { - {"AfterFunc", Func, 21, "func(ctx Context, f func()) (stop func() bool)"}, - {"Background", Func, 7, "func() Context"}, - {"CancelCauseFunc", Type, 20, ""}, - {"CancelFunc", Type, 7, ""}, - {"Canceled", Var, 7, ""}, - {"Cause", Func, 20, "func(c Context) error"}, - {"Context", Type, 7, ""}, - {"DeadlineExceeded", Var, 7, ""}, - {"TODO", Func, 7, "func() Context"}, - {"WithCancel", Func, 7, "func(parent Context) (ctx Context, cancel CancelFunc)"}, - {"WithCancelCause", Func, 20, "func(parent Context) (ctx Context, cancel CancelCauseFunc)"}, - {"WithDeadline", Func, 7, "func(parent Context, d time.Time) (Context, CancelFunc)"}, - {"WithDeadlineCause", Func, 21, "func(parent Context, d time.Time, cause error) (Context, CancelFunc)"}, - {"WithTimeout", Func, 7, "func(parent Context, timeout time.Duration) (Context, CancelFunc)"}, - {"WithTimeoutCause", Func, 21, "func(parent Context, timeout time.Duration, cause error) (Context, CancelFunc)"}, - {"WithValue", Func, 7, "func(parent Context, key any, val any) Context"}, - {"WithoutCancel", Func, 21, "func(parent Context) Context"}, - }, - "crypto": { - {"(Hash).Available", Method, 0, ""}, - {"(Hash).HashFunc", Method, 4, ""}, - {"(Hash).New", Method, 0, ""}, - {"(Hash).Size", Method, 0, ""}, - {"(Hash).String", Method, 15, ""}, - {"BLAKE2b_256", Const, 9, ""}, - {"BLAKE2b_384", Const, 9, ""}, - {"BLAKE2b_512", Const, 9, ""}, - {"BLAKE2s_256", Const, 9, ""}, - {"Decrypter", Type, 5, ""}, - {"DecrypterOpts", Type, 5, ""}, - {"Hash", Type, 0, ""}, - {"MD4", Const, 0, ""}, - {"MD5", Const, 0, ""}, - {"MD5SHA1", Const, 0, ""}, - {"PrivateKey", Type, 0, ""}, - {"PublicKey", Type, 2, ""}, - {"RIPEMD160", Const, 0, ""}, - {"RegisterHash", Func, 0, "func(h Hash, f func() hash.Hash)"}, - {"SHA1", Const, 0, ""}, - {"SHA224", Const, 0, ""}, - {"SHA256", Const, 0, ""}, - {"SHA384", Const, 0, ""}, - {"SHA3_224", Const, 4, ""}, - {"SHA3_256", Const, 4, ""}, - {"SHA3_384", Const, 4, ""}, - {"SHA3_512", Const, 4, ""}, - {"SHA512", Const, 0, ""}, - {"SHA512_224", Const, 5, ""}, - {"SHA512_256", Const, 5, ""}, - {"Signer", Type, 4, ""}, - {"SignerOpts", Type, 4, ""}, - }, - "crypto/aes": { - {"(KeySizeError).Error", Method, 0, ""}, - {"BlockSize", Const, 0, ""}, - {"KeySizeError", Type, 0, ""}, - {"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, - }, - "crypto/cipher": { - {"(StreamReader).Read", Method, 0, ""}, - {"(StreamWriter).Close", Method, 0, ""}, - {"(StreamWriter).Write", Method, 0, ""}, - {"AEAD", Type, 2, ""}, - {"Block", Type, 0, ""}, - {"BlockMode", Type, 0, ""}, - {"NewCBCDecrypter", Func, 0, "func(b Block, iv []byte) BlockMode"}, - {"NewCBCEncrypter", Func, 0, "func(b Block, iv []byte) BlockMode"}, - {"NewCFBDecrypter", Func, 0, "func(block Block, iv []byte) Stream"}, - {"NewCFBEncrypter", Func, 0, "func(block Block, iv []byte) Stream"}, - {"NewCTR", Func, 0, "func(block Block, iv []byte) Stream"}, - {"NewGCM", Func, 2, "func(cipher Block) (AEAD, error)"}, - {"NewGCMWithNonceSize", Func, 5, "func(cipher Block, size int) (AEAD, error)"}, - {"NewGCMWithRandomNonce", Func, 24, "func(cipher Block) (AEAD, error)"}, - {"NewGCMWithTagSize", Func, 11, "func(cipher Block, tagSize int) (AEAD, error)"}, - {"NewOFB", Func, 0, "func(b Block, iv []byte) Stream"}, - {"Stream", Type, 0, ""}, - {"StreamReader", Type, 0, ""}, - {"StreamReader.R", Field, 0, ""}, - {"StreamReader.S", Field, 0, ""}, - {"StreamWriter", Type, 0, ""}, - {"StreamWriter.Err", Field, 0, ""}, - {"StreamWriter.S", Field, 0, ""}, - {"StreamWriter.W", Field, 0, ""}, - }, - "crypto/des": { - {"(KeySizeError).Error", Method, 0, ""}, - {"BlockSize", Const, 0, ""}, - {"KeySizeError", Type, 0, ""}, - {"NewCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, - {"NewTripleDESCipher", Func, 0, "func(key []byte) (cipher.Block, error)"}, - }, - "crypto/dsa": { - {"ErrInvalidPublicKey", Var, 0, ""}, - {"GenerateKey", Func, 0, "func(priv *PrivateKey, rand io.Reader) error"}, - {"GenerateParameters", Func, 0, "func(params *Parameters, rand io.Reader, sizes ParameterSizes) error"}, - {"L1024N160", Const, 0, ""}, - {"L2048N224", Const, 0, ""}, - {"L2048N256", Const, 0, ""}, - {"L3072N256", Const, 0, ""}, - {"ParameterSizes", Type, 0, ""}, - {"Parameters", Type, 0, ""}, - {"Parameters.G", Field, 0, ""}, - {"Parameters.P", Field, 0, ""}, - {"Parameters.Q", Field, 0, ""}, - {"PrivateKey", Type, 0, ""}, - {"PrivateKey.PublicKey", Field, 0, ""}, - {"PrivateKey.X", Field, 0, ""}, - {"PublicKey", Type, 0, ""}, - {"PublicKey.Parameters", Field, 0, ""}, - {"PublicKey.Y", Field, 0, ""}, - {"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"}, - {"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"}, - }, - "crypto/ecdh": { - {"(*PrivateKey).Bytes", Method, 20, ""}, - {"(*PrivateKey).Curve", Method, 20, ""}, - {"(*PrivateKey).ECDH", Method, 20, ""}, - {"(*PrivateKey).Equal", Method, 20, ""}, - {"(*PrivateKey).Public", Method, 20, ""}, - {"(*PrivateKey).PublicKey", Method, 20, ""}, - {"(*PublicKey).Bytes", Method, 20, ""}, - {"(*PublicKey).Curve", Method, 20, ""}, - {"(*PublicKey).Equal", Method, 20, ""}, - {"Curve", Type, 20, ""}, - {"P256", Func, 20, "func() Curve"}, - {"P384", Func, 20, "func() Curve"}, - {"P521", Func, 20, "func() Curve"}, - {"PrivateKey", Type, 20, ""}, - {"PublicKey", Type, 20, ""}, - {"X25519", Func, 20, "func() Curve"}, - }, - "crypto/ecdsa": { - {"(*PrivateKey).ECDH", Method, 20, ""}, - {"(*PrivateKey).Equal", Method, 15, ""}, - {"(*PrivateKey).Public", Method, 4, ""}, - {"(*PrivateKey).Sign", Method, 4, ""}, - {"(*PublicKey).ECDH", Method, 20, ""}, - {"(*PublicKey).Equal", Method, 15, ""}, - {"(PrivateKey).Add", Method, 0, ""}, - {"(PrivateKey).Double", Method, 0, ""}, - {"(PrivateKey).IsOnCurve", Method, 0, ""}, - {"(PrivateKey).Params", Method, 0, ""}, - {"(PrivateKey).ScalarBaseMult", Method, 0, ""}, - {"(PrivateKey).ScalarMult", Method, 0, ""}, - {"(PublicKey).Add", Method, 0, ""}, - {"(PublicKey).Double", Method, 0, ""}, - {"(PublicKey).IsOnCurve", Method, 0, ""}, - {"(PublicKey).Params", Method, 0, ""}, - {"(PublicKey).ScalarBaseMult", Method, 0, ""}, - {"(PublicKey).ScalarMult", Method, 0, ""}, - {"GenerateKey", Func, 0, "func(c elliptic.Curve, rand io.Reader) (*PrivateKey, error)"}, - {"PrivateKey", Type, 0, ""}, - {"PrivateKey.D", Field, 0, ""}, - {"PrivateKey.PublicKey", Field, 0, ""}, - {"PublicKey", Type, 0, ""}, - {"PublicKey.Curve", Field, 0, ""}, - {"PublicKey.X", Field, 0, ""}, - {"PublicKey.Y", Field, 0, ""}, - {"Sign", Func, 0, "func(rand io.Reader, priv *PrivateKey, hash []byte) (r *big.Int, s *big.Int, err error)"}, - {"SignASN1", Func, 15, "func(rand io.Reader, priv *PrivateKey, hash []byte) ([]byte, error)"}, - {"Verify", Func, 0, "func(pub *PublicKey, hash []byte, r *big.Int, s *big.Int) bool"}, - {"VerifyASN1", Func, 15, "func(pub *PublicKey, hash []byte, sig []byte) bool"}, - }, - "crypto/ed25519": { - {"(*Options).HashFunc", Method, 20, ""}, - {"(PrivateKey).Equal", Method, 15, ""}, - {"(PrivateKey).Public", Method, 13, ""}, - {"(PrivateKey).Seed", Method, 13, ""}, - {"(PrivateKey).Sign", Method, 13, ""}, - {"(PublicKey).Equal", Method, 15, ""}, - {"GenerateKey", Func, 13, "func(rand io.Reader) (PublicKey, PrivateKey, error)"}, - {"NewKeyFromSeed", Func, 13, "func(seed []byte) PrivateKey"}, - {"Options", Type, 20, ""}, - {"Options.Context", Field, 20, ""}, - {"Options.Hash", Field, 20, ""}, - {"PrivateKey", Type, 13, ""}, - {"PrivateKeySize", Const, 13, ""}, - {"PublicKey", Type, 13, ""}, - {"PublicKeySize", Const, 13, ""}, - {"SeedSize", Const, 13, ""}, - {"Sign", Func, 13, "func(privateKey PrivateKey, message []byte) []byte"}, - {"SignatureSize", Const, 13, ""}, - {"Verify", Func, 13, "func(publicKey PublicKey, message []byte, sig []byte) bool"}, - {"VerifyWithOptions", Func, 20, "func(publicKey PublicKey, message []byte, sig []byte, opts *Options) error"}, - }, - "crypto/elliptic": { - {"(*CurveParams).Add", Method, 0, ""}, - {"(*CurveParams).Double", Method, 0, ""}, - {"(*CurveParams).IsOnCurve", Method, 0, ""}, - {"(*CurveParams).Params", Method, 0, ""}, - {"(*CurveParams).ScalarBaseMult", Method, 0, ""}, - {"(*CurveParams).ScalarMult", Method, 0, ""}, - {"Curve", Type, 0, ""}, - {"CurveParams", Type, 0, ""}, - {"CurveParams.B", Field, 0, ""}, - {"CurveParams.BitSize", Field, 0, ""}, - {"CurveParams.Gx", Field, 0, ""}, - {"CurveParams.Gy", Field, 0, ""}, - {"CurveParams.N", Field, 0, ""}, - {"CurveParams.Name", Field, 5, ""}, - {"CurveParams.P", Field, 0, ""}, - {"GenerateKey", Func, 0, "func(curve Curve, rand io.Reader) (priv []byte, x *big.Int, y *big.Int, err error)"}, - {"Marshal", Func, 0, "func(curve Curve, x *big.Int, y *big.Int) []byte"}, - {"MarshalCompressed", Func, 15, "func(curve Curve, x *big.Int, y *big.Int) []byte"}, - {"P224", Func, 0, "func() Curve"}, - {"P256", Func, 0, "func() Curve"}, - {"P384", Func, 0, "func() Curve"}, - {"P521", Func, 0, "func() Curve"}, - {"Unmarshal", Func, 0, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"}, - {"UnmarshalCompressed", Func, 15, "func(curve Curve, data []byte) (x *big.Int, y *big.Int)"}, - }, - "crypto/fips140": { - {"Enabled", Func, 24, "func() bool"}, - }, - "crypto/hkdf": { - {"Expand", Func, 24, "func[H hash.Hash](h func() H, pseudorandomKey []byte, info string, keyLength int) ([]byte, error)"}, - {"Extract", Func, 24, "func[H hash.Hash](h func() H, secret []byte, salt []byte) ([]byte, error)"}, - {"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, secret []byte, salt []byte, info string, keyLength int) ([]byte, error)"}, - }, - "crypto/hmac": { - {"Equal", Func, 1, "func(mac1 []byte, mac2 []byte) bool"}, - {"New", Func, 0, "func(h func() hash.Hash, key []byte) hash.Hash"}, - }, - "crypto/md5": { - {"BlockSize", Const, 0, ""}, - {"New", Func, 0, "func() hash.Hash"}, - {"Size", Const, 0, ""}, - {"Sum", Func, 2, "func(data []byte) [16]byte"}, - }, - "crypto/mlkem": { - {"(*DecapsulationKey1024).Bytes", Method, 24, ""}, - {"(*DecapsulationKey1024).Decapsulate", Method, 24, ""}, - {"(*DecapsulationKey1024).EncapsulationKey", Method, 24, ""}, - {"(*DecapsulationKey768).Bytes", Method, 24, ""}, - {"(*DecapsulationKey768).Decapsulate", Method, 24, ""}, - {"(*DecapsulationKey768).EncapsulationKey", Method, 24, ""}, - {"(*EncapsulationKey1024).Bytes", Method, 24, ""}, - {"(*EncapsulationKey1024).Encapsulate", Method, 24, ""}, - {"(*EncapsulationKey768).Bytes", Method, 24, ""}, - {"(*EncapsulationKey768).Encapsulate", Method, 24, ""}, - {"CiphertextSize1024", Const, 24, ""}, - {"CiphertextSize768", Const, 24, ""}, - {"DecapsulationKey1024", Type, 24, ""}, - {"DecapsulationKey768", Type, 24, ""}, - {"EncapsulationKey1024", Type, 24, ""}, - {"EncapsulationKey768", Type, 24, ""}, - {"EncapsulationKeySize1024", Const, 24, ""}, - {"EncapsulationKeySize768", Const, 24, ""}, - {"GenerateKey1024", Func, 24, "func() (*DecapsulationKey1024, error)"}, - {"GenerateKey768", Func, 24, "func() (*DecapsulationKey768, error)"}, - {"NewDecapsulationKey1024", Func, 24, "func(seed []byte) (*DecapsulationKey1024, error)"}, - {"NewDecapsulationKey768", Func, 24, "func(seed []byte) (*DecapsulationKey768, error)"}, - {"NewEncapsulationKey1024", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey1024, error)"}, - {"NewEncapsulationKey768", Func, 24, "func(encapsulationKey []byte) (*EncapsulationKey768, error)"}, - {"SeedSize", Const, 24, ""}, - {"SharedKeySize", Const, 24, ""}, - }, - "crypto/pbkdf2": { - {"Key", Func, 24, "func[Hash hash.Hash](h func() Hash, password string, salt []byte, iter int, keyLength int) ([]byte, error)"}, - }, - "crypto/rand": { - {"Int", Func, 0, "func(rand io.Reader, max *big.Int) (n *big.Int, err error)"}, - {"Prime", Func, 0, "func(rand io.Reader, bits int) (*big.Int, error)"}, - {"Read", Func, 0, "func(b []byte) (n int, err error)"}, - {"Reader", Var, 0, ""}, - {"Text", Func, 24, "func() string"}, - }, - "crypto/rc4": { - {"(*Cipher).Reset", Method, 0, ""}, - {"(*Cipher).XORKeyStream", Method, 0, ""}, - {"(KeySizeError).Error", Method, 0, ""}, - {"Cipher", Type, 0, ""}, - {"KeySizeError", Type, 0, ""}, - {"NewCipher", Func, 0, "func(key []byte) (*Cipher, error)"}, - }, - "crypto/rsa": { - {"(*PSSOptions).HashFunc", Method, 4, ""}, - {"(*PrivateKey).Decrypt", Method, 5, ""}, - {"(*PrivateKey).Equal", Method, 15, ""}, - {"(*PrivateKey).Precompute", Method, 0, ""}, - {"(*PrivateKey).Public", Method, 4, ""}, - {"(*PrivateKey).Sign", Method, 4, ""}, - {"(*PrivateKey).Size", Method, 11, ""}, - {"(*PrivateKey).Validate", Method, 0, ""}, - {"(*PublicKey).Equal", Method, 15, ""}, - {"(*PublicKey).Size", Method, 11, ""}, - {"CRTValue", Type, 0, ""}, - {"CRTValue.Coeff", Field, 0, ""}, - {"CRTValue.Exp", Field, 0, ""}, - {"CRTValue.R", Field, 0, ""}, - {"DecryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, priv *PrivateKey, ciphertext []byte, label []byte) ([]byte, error)"}, - {"DecryptPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte) ([]byte, error)"}, - {"DecryptPKCS1v15SessionKey", Func, 0, "func(random io.Reader, priv *PrivateKey, ciphertext []byte, key []byte) error"}, - {"EncryptOAEP", Func, 0, "func(hash hash.Hash, random io.Reader, pub *PublicKey, msg []byte, label []byte) ([]byte, error)"}, - {"EncryptPKCS1v15", Func, 0, "func(random io.Reader, pub *PublicKey, msg []byte) ([]byte, error)"}, - {"ErrDecryption", Var, 0, ""}, - {"ErrMessageTooLong", Var, 0, ""}, - {"ErrVerification", Var, 0, ""}, - {"GenerateKey", Func, 0, "func(random io.Reader, bits int) (*PrivateKey, error)"}, - {"GenerateMultiPrimeKey", Func, 0, "func(random io.Reader, nprimes int, bits int) (*PrivateKey, error)"}, - {"OAEPOptions", Type, 5, ""}, - {"OAEPOptions.Hash", Field, 5, ""}, - {"OAEPOptions.Label", Field, 5, ""}, - {"OAEPOptions.MGFHash", Field, 20, ""}, - {"PKCS1v15DecryptOptions", Type, 5, ""}, - {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5, ""}, - {"PSSOptions", Type, 2, ""}, - {"PSSOptions.Hash", Field, 4, ""}, - {"PSSOptions.SaltLength", Field, 2, ""}, - {"PSSSaltLengthAuto", Const, 2, ""}, - {"PSSSaltLengthEqualsHash", Const, 2, ""}, - {"PrecomputedValues", Type, 0, ""}, - {"PrecomputedValues.CRTValues", Field, 0, ""}, - {"PrecomputedValues.Dp", Field, 0, ""}, - {"PrecomputedValues.Dq", Field, 0, ""}, - {"PrecomputedValues.Qinv", Field, 0, ""}, - {"PrivateKey", Type, 0, ""}, - {"PrivateKey.D", Field, 0, ""}, - {"PrivateKey.Precomputed", Field, 0, ""}, - {"PrivateKey.Primes", Field, 0, ""}, - {"PrivateKey.PublicKey", Field, 0, ""}, - {"PublicKey", Type, 0, ""}, - {"PublicKey.E", Field, 0, ""}, - {"PublicKey.N", Field, 0, ""}, - {"SignPKCS1v15", Func, 0, "func(random io.Reader, priv *PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error)"}, - {"SignPSS", Func, 2, "func(rand io.Reader, priv *PrivateKey, hash crypto.Hash, digest []byte, opts *PSSOptions) ([]byte, error)"}, - {"VerifyPKCS1v15", Func, 0, "func(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error"}, - {"VerifyPSS", Func, 2, "func(pub *PublicKey, hash crypto.Hash, digest []byte, sig []byte, opts *PSSOptions) error"}, - }, - "crypto/sha1": { - {"BlockSize", Const, 0, ""}, - {"New", Func, 0, "func() hash.Hash"}, - {"Size", Const, 0, ""}, - {"Sum", Func, 2, "func(data []byte) [20]byte"}, - }, - "crypto/sha256": { - {"BlockSize", Const, 0, ""}, - {"New", Func, 0, "func() hash.Hash"}, - {"New224", Func, 0, "func() hash.Hash"}, - {"Size", Const, 0, ""}, - {"Size224", Const, 0, ""}, - {"Sum224", Func, 2, "func(data []byte) [28]byte"}, - {"Sum256", Func, 2, "func(data []byte) [32]byte"}, - }, - "crypto/sha3": { - {"(*SHA3).AppendBinary", Method, 24, ""}, - {"(*SHA3).BlockSize", Method, 24, ""}, - {"(*SHA3).MarshalBinary", Method, 24, ""}, - {"(*SHA3).Reset", Method, 24, ""}, - {"(*SHA3).Size", Method, 24, ""}, - {"(*SHA3).Sum", Method, 24, ""}, - {"(*SHA3).UnmarshalBinary", Method, 24, ""}, - {"(*SHA3).Write", Method, 24, ""}, - {"(*SHAKE).AppendBinary", Method, 24, ""}, - {"(*SHAKE).BlockSize", Method, 24, ""}, - {"(*SHAKE).MarshalBinary", Method, 24, ""}, - {"(*SHAKE).Read", Method, 24, ""}, - {"(*SHAKE).Reset", Method, 24, ""}, - {"(*SHAKE).UnmarshalBinary", Method, 24, ""}, - {"(*SHAKE).Write", Method, 24, ""}, - {"New224", Func, 24, "func() *SHA3"}, - {"New256", Func, 24, "func() *SHA3"}, - {"New384", Func, 24, "func() *SHA3"}, - {"New512", Func, 24, "func() *SHA3"}, - {"NewCSHAKE128", Func, 24, "func(N []byte, S []byte) *SHAKE"}, - {"NewCSHAKE256", Func, 24, "func(N []byte, S []byte) *SHAKE"}, - {"NewSHAKE128", Func, 24, "func() *SHAKE"}, - {"NewSHAKE256", Func, 24, "func() *SHAKE"}, - {"SHA3", Type, 24, ""}, - {"SHAKE", Type, 24, ""}, - {"Sum224", Func, 24, "func(data []byte) [28]byte"}, - {"Sum256", Func, 24, "func(data []byte) [32]byte"}, - {"Sum384", Func, 24, "func(data []byte) [48]byte"}, - {"Sum512", Func, 24, "func(data []byte) [64]byte"}, - {"SumSHAKE128", Func, 24, "func(data []byte, length int) []byte"}, - {"SumSHAKE256", Func, 24, "func(data []byte, length int) []byte"}, - }, - "crypto/sha512": { - {"BlockSize", Const, 0, ""}, - {"New", Func, 0, "func() hash.Hash"}, - {"New384", Func, 0, "func() hash.Hash"}, - {"New512_224", Func, 5, "func() hash.Hash"}, - {"New512_256", Func, 5, "func() hash.Hash"}, - {"Size", Const, 0, ""}, - {"Size224", Const, 5, ""}, - {"Size256", Const, 5, ""}, - {"Size384", Const, 0, ""}, - {"Sum384", Func, 2, "func(data []byte) [48]byte"}, - {"Sum512", Func, 2, "func(data []byte) [64]byte"}, - {"Sum512_224", Func, 5, "func(data []byte) [28]byte"}, - {"Sum512_256", Func, 5, "func(data []byte) [32]byte"}, - }, - "crypto/subtle": { - {"ConstantTimeByteEq", Func, 0, "func(x uint8, y uint8) int"}, - {"ConstantTimeCompare", Func, 0, "func(x []byte, y []byte) int"}, - {"ConstantTimeCopy", Func, 0, "func(v int, x []byte, y []byte)"}, - {"ConstantTimeEq", Func, 0, "func(x int32, y int32) int"}, - {"ConstantTimeLessOrEq", Func, 2, "func(x int, y int) int"}, - {"ConstantTimeSelect", Func, 0, "func(v int, x int, y int) int"}, - {"WithDataIndependentTiming", Func, 24, "func(f func())"}, - {"XORBytes", Func, 20, "func(dst []byte, x []byte, y []byte) int"}, - }, - "crypto/tls": { - {"(*CertificateRequestInfo).Context", Method, 17, ""}, - {"(*CertificateRequestInfo).SupportsCertificate", Method, 14, ""}, - {"(*CertificateVerificationError).Error", Method, 20, ""}, - {"(*CertificateVerificationError).Unwrap", Method, 20, ""}, - {"(*ClientHelloInfo).Context", Method, 17, ""}, - {"(*ClientHelloInfo).SupportsCertificate", Method, 14, ""}, - {"(*ClientSessionState).ResumptionState", Method, 21, ""}, - {"(*Config).BuildNameToCertificate", Method, 0, ""}, - {"(*Config).Clone", Method, 8, ""}, - {"(*Config).DecryptTicket", Method, 21, ""}, - {"(*Config).EncryptTicket", Method, 21, ""}, - {"(*Config).SetSessionTicketKeys", Method, 5, ""}, - {"(*Conn).Close", Method, 0, ""}, - {"(*Conn).CloseWrite", Method, 8, ""}, - {"(*Conn).ConnectionState", Method, 0, ""}, - {"(*Conn).Handshake", Method, 0, ""}, - {"(*Conn).HandshakeContext", Method, 17, ""}, - {"(*Conn).LocalAddr", Method, 0, ""}, - {"(*Conn).NetConn", Method, 18, ""}, - {"(*Conn).OCSPResponse", Method, 0, ""}, - {"(*Conn).Read", Method, 0, ""}, - {"(*Conn).RemoteAddr", Method, 0, ""}, - {"(*Conn).SetDeadline", Method, 0, ""}, - {"(*Conn).SetReadDeadline", Method, 0, ""}, - {"(*Conn).SetWriteDeadline", Method, 0, ""}, - {"(*Conn).VerifyHostname", Method, 0, ""}, - {"(*Conn).Write", Method, 0, ""}, - {"(*ConnectionState).ExportKeyingMaterial", Method, 11, ""}, - {"(*Dialer).Dial", Method, 15, ""}, - {"(*Dialer).DialContext", Method, 15, ""}, - {"(*ECHRejectionError).Error", Method, 23, ""}, - {"(*QUICConn).Close", Method, 21, ""}, - {"(*QUICConn).ConnectionState", Method, 21, ""}, - {"(*QUICConn).HandleData", Method, 21, ""}, - {"(*QUICConn).NextEvent", Method, 21, ""}, - {"(*QUICConn).SendSessionTicket", Method, 21, ""}, - {"(*QUICConn).SetTransportParameters", Method, 21, ""}, - {"(*QUICConn).Start", Method, 21, ""}, - {"(*QUICConn).StoreSession", Method, 23, ""}, - {"(*SessionState).Bytes", Method, 21, ""}, - {"(AlertError).Error", Method, 21, ""}, - {"(ClientAuthType).String", Method, 15, ""}, - {"(CurveID).String", Method, 15, ""}, - {"(QUICEncryptionLevel).String", Method, 21, ""}, - {"(RecordHeaderError).Error", Method, 6, ""}, - {"(SignatureScheme).String", Method, 15, ""}, - {"AlertError", Type, 21, ""}, - {"Certificate", Type, 0, ""}, - {"Certificate.Certificate", Field, 0, ""}, - {"Certificate.Leaf", Field, 0, ""}, - {"Certificate.OCSPStaple", Field, 0, ""}, - {"Certificate.PrivateKey", Field, 0, ""}, - {"Certificate.SignedCertificateTimestamps", Field, 5, ""}, - {"Certificate.SupportedSignatureAlgorithms", Field, 14, ""}, - {"CertificateRequestInfo", Type, 8, ""}, - {"CertificateRequestInfo.AcceptableCAs", Field, 8, ""}, - {"CertificateRequestInfo.SignatureSchemes", Field, 8, ""}, - {"CertificateRequestInfo.Version", Field, 14, ""}, - {"CertificateVerificationError", Type, 20, ""}, - {"CertificateVerificationError.Err", Field, 20, ""}, - {"CertificateVerificationError.UnverifiedCertificates", Field, 20, ""}, - {"CipherSuite", Type, 14, ""}, - {"CipherSuite.ID", Field, 14, ""}, - {"CipherSuite.Insecure", Field, 14, ""}, - {"CipherSuite.Name", Field, 14, ""}, - {"CipherSuite.SupportedVersions", Field, 14, ""}, - {"CipherSuiteName", Func, 14, "func(id uint16) string"}, - {"CipherSuites", Func, 14, "func() []*CipherSuite"}, - {"Client", Func, 0, "func(conn net.Conn, config *Config) *Conn"}, - {"ClientAuthType", Type, 0, ""}, - {"ClientHelloInfo", Type, 4, ""}, - {"ClientHelloInfo.CipherSuites", Field, 4, ""}, - {"ClientHelloInfo.Conn", Field, 8, ""}, - {"ClientHelloInfo.Extensions", Field, 24, ""}, - {"ClientHelloInfo.ServerName", Field, 4, ""}, - {"ClientHelloInfo.SignatureSchemes", Field, 8, ""}, - {"ClientHelloInfo.SupportedCurves", Field, 4, ""}, - {"ClientHelloInfo.SupportedPoints", Field, 4, ""}, - {"ClientHelloInfo.SupportedProtos", Field, 8, ""}, - {"ClientHelloInfo.SupportedVersions", Field, 8, ""}, - {"ClientSessionCache", Type, 3, ""}, - {"ClientSessionState", Type, 3, ""}, - {"Config", Type, 0, ""}, - {"Config.Certificates", Field, 0, ""}, - {"Config.CipherSuites", Field, 0, ""}, - {"Config.ClientAuth", Field, 0, ""}, - {"Config.ClientCAs", Field, 0, ""}, - {"Config.ClientSessionCache", Field, 3, ""}, - {"Config.CurvePreferences", Field, 3, ""}, - {"Config.DynamicRecordSizingDisabled", Field, 7, ""}, - {"Config.EncryptedClientHelloConfigList", Field, 23, ""}, - {"Config.EncryptedClientHelloKeys", Field, 24, ""}, - {"Config.EncryptedClientHelloRejectionVerify", Field, 23, ""}, - {"Config.GetCertificate", Field, 4, ""}, - {"Config.GetClientCertificate", Field, 8, ""}, - {"Config.GetConfigForClient", Field, 8, ""}, - {"Config.InsecureSkipVerify", Field, 0, ""}, - {"Config.KeyLogWriter", Field, 8, ""}, - {"Config.MaxVersion", Field, 2, ""}, - {"Config.MinVersion", Field, 2, ""}, - {"Config.NameToCertificate", Field, 0, ""}, - {"Config.NextProtos", Field, 0, ""}, - {"Config.PreferServerCipherSuites", Field, 1, ""}, - {"Config.Rand", Field, 0, ""}, - {"Config.Renegotiation", Field, 7, ""}, - {"Config.RootCAs", Field, 0, ""}, - {"Config.ServerName", Field, 0, ""}, - {"Config.SessionTicketKey", Field, 1, ""}, - {"Config.SessionTicketsDisabled", Field, 1, ""}, - {"Config.Time", Field, 0, ""}, - {"Config.UnwrapSession", Field, 21, ""}, - {"Config.VerifyConnection", Field, 15, ""}, - {"Config.VerifyPeerCertificate", Field, 8, ""}, - {"Config.WrapSession", Field, 21, ""}, - {"Conn", Type, 0, ""}, - {"ConnectionState", Type, 0, ""}, - {"ConnectionState.CipherSuite", Field, 0, ""}, - {"ConnectionState.CurveID", Field, 25, ""}, - {"ConnectionState.DidResume", Field, 1, ""}, - {"ConnectionState.ECHAccepted", Field, 23, ""}, - {"ConnectionState.HandshakeComplete", Field, 0, ""}, - {"ConnectionState.NegotiatedProtocol", Field, 0, ""}, - {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0, ""}, - {"ConnectionState.OCSPResponse", Field, 5, ""}, - {"ConnectionState.PeerCertificates", Field, 0, ""}, - {"ConnectionState.ServerName", Field, 0, ""}, - {"ConnectionState.SignedCertificateTimestamps", Field, 5, ""}, - {"ConnectionState.TLSUnique", Field, 4, ""}, - {"ConnectionState.VerifiedChains", Field, 0, ""}, - {"ConnectionState.Version", Field, 3, ""}, - {"CurveID", Type, 3, ""}, - {"CurveP256", Const, 3, ""}, - {"CurveP384", Const, 3, ""}, - {"CurveP521", Const, 3, ""}, - {"Dial", Func, 0, "func(network string, addr string, config *Config) (*Conn, error)"}, - {"DialWithDialer", Func, 3, "func(dialer *net.Dialer, network string, addr string, config *Config) (*Conn, error)"}, - {"Dialer", Type, 15, ""}, - {"Dialer.Config", Field, 15, ""}, - {"Dialer.NetDialer", Field, 15, ""}, - {"ECDSAWithP256AndSHA256", Const, 8, ""}, - {"ECDSAWithP384AndSHA384", Const, 8, ""}, - {"ECDSAWithP521AndSHA512", Const, 8, ""}, - {"ECDSAWithSHA1", Const, 10, ""}, - {"ECHRejectionError", Type, 23, ""}, - {"ECHRejectionError.RetryConfigList", Field, 23, ""}, - {"Ed25519", Const, 13, ""}, - {"EncryptedClientHelloKey", Type, 24, ""}, - {"EncryptedClientHelloKey.Config", Field, 24, ""}, - {"EncryptedClientHelloKey.PrivateKey", Field, 24, ""}, - {"EncryptedClientHelloKey.SendAsRetry", Field, 24, ""}, - {"InsecureCipherSuites", Func, 14, "func() []*CipherSuite"}, - {"Listen", Func, 0, "func(network string, laddr string, config *Config) (net.Listener, error)"}, - {"LoadX509KeyPair", Func, 0, "func(certFile string, keyFile string) (Certificate, error)"}, - {"NewLRUClientSessionCache", Func, 3, "func(capacity int) ClientSessionCache"}, - {"NewListener", Func, 0, "func(inner net.Listener, config *Config) net.Listener"}, - {"NewResumptionState", Func, 21, "func(ticket []byte, state *SessionState) (*ClientSessionState, error)"}, - {"NoClientCert", Const, 0, ""}, - {"PKCS1WithSHA1", Const, 8, ""}, - {"PKCS1WithSHA256", Const, 8, ""}, - {"PKCS1WithSHA384", Const, 8, ""}, - {"PKCS1WithSHA512", Const, 8, ""}, - {"PSSWithSHA256", Const, 8, ""}, - {"PSSWithSHA384", Const, 8, ""}, - {"PSSWithSHA512", Const, 8, ""}, - {"ParseSessionState", Func, 21, "func(data []byte) (*SessionState, error)"}, - {"QUICClient", Func, 21, "func(config *QUICConfig) *QUICConn"}, - {"QUICConfig", Type, 21, ""}, - {"QUICConfig.EnableSessionEvents", Field, 23, ""}, - {"QUICConfig.TLSConfig", Field, 21, ""}, - {"QUICConn", Type, 21, ""}, - {"QUICEncryptionLevel", Type, 21, ""}, - {"QUICEncryptionLevelApplication", Const, 21, ""}, - {"QUICEncryptionLevelEarly", Const, 21, ""}, - {"QUICEncryptionLevelHandshake", Const, 21, ""}, - {"QUICEncryptionLevelInitial", Const, 21, ""}, - {"QUICEvent", Type, 21, ""}, - {"QUICEvent.Data", Field, 21, ""}, - {"QUICEvent.Kind", Field, 21, ""}, - {"QUICEvent.Level", Field, 21, ""}, - {"QUICEvent.SessionState", Field, 23, ""}, - {"QUICEvent.Suite", Field, 21, ""}, - {"QUICEventKind", Type, 21, ""}, - {"QUICHandshakeDone", Const, 21, ""}, - {"QUICNoEvent", Const, 21, ""}, - {"QUICRejectedEarlyData", Const, 21, ""}, - {"QUICResumeSession", Const, 23, ""}, - {"QUICServer", Func, 21, "func(config *QUICConfig) *QUICConn"}, - {"QUICSessionTicketOptions", Type, 21, ""}, - {"QUICSessionTicketOptions.EarlyData", Field, 21, ""}, - {"QUICSessionTicketOptions.Extra", Field, 23, ""}, - {"QUICSetReadSecret", Const, 21, ""}, - {"QUICSetWriteSecret", Const, 21, ""}, - {"QUICStoreSession", Const, 23, ""}, - {"QUICTransportParameters", Const, 21, ""}, - {"QUICTransportParametersRequired", Const, 21, ""}, - {"QUICWriteData", Const, 21, ""}, - {"RecordHeaderError", Type, 6, ""}, - {"RecordHeaderError.Conn", Field, 12, ""}, - {"RecordHeaderError.Msg", Field, 6, ""}, - {"RecordHeaderError.RecordHeader", Field, 6, ""}, - {"RenegotiateFreelyAsClient", Const, 7, ""}, - {"RenegotiateNever", Const, 7, ""}, - {"RenegotiateOnceAsClient", Const, 7, ""}, - {"RenegotiationSupport", Type, 7, ""}, - {"RequestClientCert", Const, 0, ""}, - {"RequireAndVerifyClientCert", Const, 0, ""}, - {"RequireAnyClientCert", Const, 0, ""}, - {"Server", Func, 0, "func(conn net.Conn, config *Config) *Conn"}, - {"SessionState", Type, 21, ""}, - {"SessionState.EarlyData", Field, 21, ""}, - {"SessionState.Extra", Field, 21, ""}, - {"SignatureScheme", Type, 8, ""}, - {"TLS_AES_128_GCM_SHA256", Const, 12, ""}, - {"TLS_AES_256_GCM_SHA384", Const, 12, ""}, - {"TLS_CHACHA20_POLY1305_SHA256", Const, 12, ""}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2, ""}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2, ""}, - {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2, ""}, - {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5, ""}, - {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8, ""}, - {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""}, - {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2, ""}, - {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""}, - {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""}, - {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, - {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2, ""}, - {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""}, - {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5, ""}, - {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8, ""}, - {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14, ""}, - {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0, ""}, - {"TLS_FALLBACK_SCSV", Const, 4, ""}, - {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0, ""}, - {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0, ""}, - {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8, ""}, - {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6, ""}, - {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1, ""}, - {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6, ""}, - {"TLS_RSA_WITH_RC4_128_SHA", Const, 0, ""}, - {"VerifyClientCertIfGiven", Const, 0, ""}, - {"VersionName", Func, 21, "func(version uint16) string"}, - {"VersionSSL30", Const, 2, ""}, - {"VersionTLS10", Const, 2, ""}, - {"VersionTLS11", Const, 2, ""}, - {"VersionTLS12", Const, 2, ""}, - {"VersionTLS13", Const, 12, ""}, - {"X25519", Const, 8, ""}, - {"X25519MLKEM768", Const, 24, ""}, - {"X509KeyPair", Func, 0, "func(certPEMBlock []byte, keyPEMBlock []byte) (Certificate, error)"}, - }, - "crypto/x509": { - {"(*CertPool).AddCert", Method, 0, ""}, - {"(*CertPool).AddCertWithConstraint", Method, 22, ""}, - {"(*CertPool).AppendCertsFromPEM", Method, 0, ""}, - {"(*CertPool).Clone", Method, 19, ""}, - {"(*CertPool).Equal", Method, 19, ""}, - {"(*CertPool).Subjects", Method, 0, ""}, - {"(*Certificate).CheckCRLSignature", Method, 0, ""}, - {"(*Certificate).CheckSignature", Method, 0, ""}, - {"(*Certificate).CheckSignatureFrom", Method, 0, ""}, - {"(*Certificate).CreateCRL", Method, 0, ""}, - {"(*Certificate).Equal", Method, 0, ""}, - {"(*Certificate).Verify", Method, 0, ""}, - {"(*Certificate).VerifyHostname", Method, 0, ""}, - {"(*CertificateRequest).CheckSignature", Method, 5, ""}, - {"(*OID).UnmarshalBinary", Method, 23, ""}, - {"(*OID).UnmarshalText", Method, 23, ""}, - {"(*RevocationList).CheckSignatureFrom", Method, 19, ""}, - {"(CertificateInvalidError).Error", Method, 0, ""}, - {"(ConstraintViolationError).Error", Method, 0, ""}, - {"(HostnameError).Error", Method, 0, ""}, - {"(InsecureAlgorithmError).Error", Method, 6, ""}, - {"(OID).AppendBinary", Method, 24, ""}, - {"(OID).AppendText", Method, 24, ""}, - {"(OID).Equal", Method, 22, ""}, - {"(OID).EqualASN1OID", Method, 22, ""}, - {"(OID).MarshalBinary", Method, 23, ""}, - {"(OID).MarshalText", Method, 23, ""}, - {"(OID).String", Method, 22, ""}, - {"(PublicKeyAlgorithm).String", Method, 10, ""}, - {"(SignatureAlgorithm).String", Method, 6, ""}, - {"(SystemRootsError).Error", Method, 1, ""}, - {"(SystemRootsError).Unwrap", Method, 16, ""}, - {"(UnhandledCriticalExtension).Error", Method, 0, ""}, - {"(UnknownAuthorityError).Error", Method, 0, ""}, - {"CANotAuthorizedForExtKeyUsage", Const, 10, ""}, - {"CANotAuthorizedForThisName", Const, 0, ""}, - {"CertPool", Type, 0, ""}, - {"Certificate", Type, 0, ""}, - {"Certificate.AuthorityKeyId", Field, 0, ""}, - {"Certificate.BasicConstraintsValid", Field, 0, ""}, - {"Certificate.CRLDistributionPoints", Field, 2, ""}, - {"Certificate.DNSNames", Field, 0, ""}, - {"Certificate.EmailAddresses", Field, 0, ""}, - {"Certificate.ExcludedDNSDomains", Field, 9, ""}, - {"Certificate.ExcludedEmailAddresses", Field, 10, ""}, - {"Certificate.ExcludedIPRanges", Field, 10, ""}, - {"Certificate.ExcludedURIDomains", Field, 10, ""}, - {"Certificate.ExtKeyUsage", Field, 0, ""}, - {"Certificate.Extensions", Field, 2, ""}, - {"Certificate.ExtraExtensions", Field, 2, ""}, - {"Certificate.IPAddresses", Field, 1, ""}, - {"Certificate.InhibitAnyPolicy", Field, 24, ""}, - {"Certificate.InhibitAnyPolicyZero", Field, 24, ""}, - {"Certificate.InhibitPolicyMapping", Field, 24, ""}, - {"Certificate.InhibitPolicyMappingZero", Field, 24, ""}, - {"Certificate.IsCA", Field, 0, ""}, - {"Certificate.Issuer", Field, 0, ""}, - {"Certificate.IssuingCertificateURL", Field, 2, ""}, - {"Certificate.KeyUsage", Field, 0, ""}, - {"Certificate.MaxPathLen", Field, 0, ""}, - {"Certificate.MaxPathLenZero", Field, 4, ""}, - {"Certificate.NotAfter", Field, 0, ""}, - {"Certificate.NotBefore", Field, 0, ""}, - {"Certificate.OCSPServer", Field, 2, ""}, - {"Certificate.PermittedDNSDomains", Field, 0, ""}, - {"Certificate.PermittedDNSDomainsCritical", Field, 0, ""}, - {"Certificate.PermittedEmailAddresses", Field, 10, ""}, - {"Certificate.PermittedIPRanges", Field, 10, ""}, - {"Certificate.PermittedURIDomains", Field, 10, ""}, - {"Certificate.Policies", Field, 22, ""}, - {"Certificate.PolicyIdentifiers", Field, 0, ""}, - {"Certificate.PolicyMappings", Field, 24, ""}, - {"Certificate.PublicKey", Field, 0, ""}, - {"Certificate.PublicKeyAlgorithm", Field, 0, ""}, - {"Certificate.Raw", Field, 0, ""}, - {"Certificate.RawIssuer", Field, 0, ""}, - {"Certificate.RawSubject", Field, 0, ""}, - {"Certificate.RawSubjectPublicKeyInfo", Field, 0, ""}, - {"Certificate.RawTBSCertificate", Field, 0, ""}, - {"Certificate.RequireExplicitPolicy", Field, 24, ""}, - {"Certificate.RequireExplicitPolicyZero", Field, 24, ""}, - {"Certificate.SerialNumber", Field, 0, ""}, - {"Certificate.Signature", Field, 0, ""}, - {"Certificate.SignatureAlgorithm", Field, 0, ""}, - {"Certificate.Subject", Field, 0, ""}, - {"Certificate.SubjectKeyId", Field, 0, ""}, - {"Certificate.URIs", Field, 10, ""}, - {"Certificate.UnhandledCriticalExtensions", Field, 5, ""}, - {"Certificate.UnknownExtKeyUsage", Field, 0, ""}, - {"Certificate.Version", Field, 0, ""}, - {"CertificateInvalidError", Type, 0, ""}, - {"CertificateInvalidError.Cert", Field, 0, ""}, - {"CertificateInvalidError.Detail", Field, 10, ""}, - {"CertificateInvalidError.Reason", Field, 0, ""}, - {"CertificateRequest", Type, 3, ""}, - {"CertificateRequest.Attributes", Field, 3, ""}, - {"CertificateRequest.DNSNames", Field, 3, ""}, - {"CertificateRequest.EmailAddresses", Field, 3, ""}, - {"CertificateRequest.Extensions", Field, 3, ""}, - {"CertificateRequest.ExtraExtensions", Field, 3, ""}, - {"CertificateRequest.IPAddresses", Field, 3, ""}, - {"CertificateRequest.PublicKey", Field, 3, ""}, - {"CertificateRequest.PublicKeyAlgorithm", Field, 3, ""}, - {"CertificateRequest.Raw", Field, 3, ""}, - {"CertificateRequest.RawSubject", Field, 3, ""}, - {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3, ""}, - {"CertificateRequest.RawTBSCertificateRequest", Field, 3, ""}, - {"CertificateRequest.Signature", Field, 3, ""}, - {"CertificateRequest.SignatureAlgorithm", Field, 3, ""}, - {"CertificateRequest.Subject", Field, 3, ""}, - {"CertificateRequest.URIs", Field, 10, ""}, - {"CertificateRequest.Version", Field, 3, ""}, - {"ConstraintViolationError", Type, 0, ""}, - {"CreateCertificate", Func, 0, "func(rand io.Reader, template *Certificate, parent *Certificate, pub any, priv any) ([]byte, error)"}, - {"CreateCertificateRequest", Func, 3, "func(rand io.Reader, template *CertificateRequest, priv any) (csr []byte, err error)"}, - {"CreateRevocationList", Func, 15, "func(rand io.Reader, template *RevocationList, issuer *Certificate, priv crypto.Signer) ([]byte, error)"}, - {"DSA", Const, 0, ""}, - {"DSAWithSHA1", Const, 0, ""}, - {"DSAWithSHA256", Const, 0, ""}, - {"DecryptPEMBlock", Func, 1, "func(b *pem.Block, password []byte) ([]byte, error)"}, - {"ECDSA", Const, 1, ""}, - {"ECDSAWithSHA1", Const, 1, ""}, - {"ECDSAWithSHA256", Const, 1, ""}, - {"ECDSAWithSHA384", Const, 1, ""}, - {"ECDSAWithSHA512", Const, 1, ""}, - {"Ed25519", Const, 13, ""}, - {"EncryptPEMBlock", Func, 1, "func(rand io.Reader, blockType string, data []byte, password []byte, alg PEMCipher) (*pem.Block, error)"}, - {"ErrUnsupportedAlgorithm", Var, 0, ""}, - {"Expired", Const, 0, ""}, - {"ExtKeyUsage", Type, 0, ""}, - {"ExtKeyUsageAny", Const, 0, ""}, - {"ExtKeyUsageClientAuth", Const, 0, ""}, - {"ExtKeyUsageCodeSigning", Const, 0, ""}, - {"ExtKeyUsageEmailProtection", Const, 0, ""}, - {"ExtKeyUsageIPSECEndSystem", Const, 1, ""}, - {"ExtKeyUsageIPSECTunnel", Const, 1, ""}, - {"ExtKeyUsageIPSECUser", Const, 1, ""}, - {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10, ""}, - {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10, ""}, - {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1, ""}, - {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1, ""}, - {"ExtKeyUsageOCSPSigning", Const, 0, ""}, - {"ExtKeyUsageServerAuth", Const, 0, ""}, - {"ExtKeyUsageTimeStamping", Const, 0, ""}, - {"HostnameError", Type, 0, ""}, - {"HostnameError.Certificate", Field, 0, ""}, - {"HostnameError.Host", Field, 0, ""}, - {"IncompatibleUsage", Const, 1, ""}, - {"IncorrectPasswordError", Var, 1, ""}, - {"InsecureAlgorithmError", Type, 6, ""}, - {"InvalidReason", Type, 0, ""}, - {"IsEncryptedPEMBlock", Func, 1, "func(b *pem.Block) bool"}, - {"KeyUsage", Type, 0, ""}, - {"KeyUsageCRLSign", Const, 0, ""}, - {"KeyUsageCertSign", Const, 0, ""}, - {"KeyUsageContentCommitment", Const, 0, ""}, - {"KeyUsageDataEncipherment", Const, 0, ""}, - {"KeyUsageDecipherOnly", Const, 0, ""}, - {"KeyUsageDigitalSignature", Const, 0, ""}, - {"KeyUsageEncipherOnly", Const, 0, ""}, - {"KeyUsageKeyAgreement", Const, 0, ""}, - {"KeyUsageKeyEncipherment", Const, 0, ""}, - {"MD2WithRSA", Const, 0, ""}, - {"MD5WithRSA", Const, 0, ""}, - {"MarshalECPrivateKey", Func, 2, "func(key *ecdsa.PrivateKey) ([]byte, error)"}, - {"MarshalPKCS1PrivateKey", Func, 0, "func(key *rsa.PrivateKey) []byte"}, - {"MarshalPKCS1PublicKey", Func, 10, "func(key *rsa.PublicKey) []byte"}, - {"MarshalPKCS8PrivateKey", Func, 10, "func(key any) ([]byte, error)"}, - {"MarshalPKIXPublicKey", Func, 0, "func(pub any) ([]byte, error)"}, - {"NameConstraintsWithoutSANs", Const, 10, ""}, - {"NameMismatch", Const, 8, ""}, - {"NewCertPool", Func, 0, "func() *CertPool"}, - {"NoValidChains", Const, 24, ""}, - {"NotAuthorizedToSign", Const, 0, ""}, - {"OID", Type, 22, ""}, - {"OIDFromInts", Func, 22, "func(oid []uint64) (OID, error)"}, - {"PEMCipher", Type, 1, ""}, - {"PEMCipher3DES", Const, 1, ""}, - {"PEMCipherAES128", Const, 1, ""}, - {"PEMCipherAES192", Const, 1, ""}, - {"PEMCipherAES256", Const, 1, ""}, - {"PEMCipherDES", Const, 1, ""}, - {"ParseCRL", Func, 0, "func(crlBytes []byte) (*pkix.CertificateList, error)"}, - {"ParseCertificate", Func, 0, "func(der []byte) (*Certificate, error)"}, - {"ParseCertificateRequest", Func, 3, "func(asn1Data []byte) (*CertificateRequest, error)"}, - {"ParseCertificates", Func, 0, "func(der []byte) ([]*Certificate, error)"}, - {"ParseDERCRL", Func, 0, "func(derBytes []byte) (*pkix.CertificateList, error)"}, - {"ParseECPrivateKey", Func, 1, "func(der []byte) (*ecdsa.PrivateKey, error)"}, - {"ParseOID", Func, 23, "func(oid string) (OID, error)"}, - {"ParsePKCS1PrivateKey", Func, 0, "func(der []byte) (*rsa.PrivateKey, error)"}, - {"ParsePKCS1PublicKey", Func, 10, "func(der []byte) (*rsa.PublicKey, error)"}, - {"ParsePKCS8PrivateKey", Func, 0, "func(der []byte) (key any, err error)"}, - {"ParsePKIXPublicKey", Func, 0, "func(derBytes []byte) (pub any, err error)"}, - {"ParseRevocationList", Func, 19, "func(der []byte) (*RevocationList, error)"}, - {"PolicyMapping", Type, 24, ""}, - {"PolicyMapping.IssuerDomainPolicy", Field, 24, ""}, - {"PolicyMapping.SubjectDomainPolicy", Field, 24, ""}, - {"PublicKeyAlgorithm", Type, 0, ""}, - {"PureEd25519", Const, 13, ""}, - {"RSA", Const, 0, ""}, - {"RevocationList", Type, 15, ""}, - {"RevocationList.AuthorityKeyId", Field, 19, ""}, - {"RevocationList.Extensions", Field, 19, ""}, - {"RevocationList.ExtraExtensions", Field, 15, ""}, - {"RevocationList.Issuer", Field, 19, ""}, - {"RevocationList.NextUpdate", Field, 15, ""}, - {"RevocationList.Number", Field, 15, ""}, - {"RevocationList.Raw", Field, 19, ""}, - {"RevocationList.RawIssuer", Field, 19, ""}, - {"RevocationList.RawTBSRevocationList", Field, 19, ""}, - {"RevocationList.RevokedCertificateEntries", Field, 21, ""}, - {"RevocationList.RevokedCertificates", Field, 15, ""}, - {"RevocationList.Signature", Field, 19, ""}, - {"RevocationList.SignatureAlgorithm", Field, 15, ""}, - {"RevocationList.ThisUpdate", Field, 15, ""}, - {"RevocationListEntry", Type, 21, ""}, - {"RevocationListEntry.Extensions", Field, 21, ""}, - {"RevocationListEntry.ExtraExtensions", Field, 21, ""}, - {"RevocationListEntry.Raw", Field, 21, ""}, - {"RevocationListEntry.ReasonCode", Field, 21, ""}, - {"RevocationListEntry.RevocationTime", Field, 21, ""}, - {"RevocationListEntry.SerialNumber", Field, 21, ""}, - {"SHA1WithRSA", Const, 0, ""}, - {"SHA256WithRSA", Const, 0, ""}, - {"SHA256WithRSAPSS", Const, 8, ""}, - {"SHA384WithRSA", Const, 0, ""}, - {"SHA384WithRSAPSS", Const, 8, ""}, - {"SHA512WithRSA", Const, 0, ""}, - {"SHA512WithRSAPSS", Const, 8, ""}, - {"SetFallbackRoots", Func, 20, "func(roots *CertPool)"}, - {"SignatureAlgorithm", Type, 0, ""}, - {"SystemCertPool", Func, 7, "func() (*CertPool, error)"}, - {"SystemRootsError", Type, 1, ""}, - {"SystemRootsError.Err", Field, 7, ""}, - {"TooManyConstraints", Const, 10, ""}, - {"TooManyIntermediates", Const, 0, ""}, - {"UnconstrainedName", Const, 10, ""}, - {"UnhandledCriticalExtension", Type, 0, ""}, - {"UnknownAuthorityError", Type, 0, ""}, - {"UnknownAuthorityError.Cert", Field, 8, ""}, - {"UnknownPublicKeyAlgorithm", Const, 0, ""}, - {"UnknownSignatureAlgorithm", Const, 0, ""}, - {"VerifyOptions", Type, 0, ""}, - {"VerifyOptions.CertificatePolicies", Field, 24, ""}, - {"VerifyOptions.CurrentTime", Field, 0, ""}, - {"VerifyOptions.DNSName", Field, 0, ""}, - {"VerifyOptions.Intermediates", Field, 0, ""}, - {"VerifyOptions.KeyUsages", Field, 1, ""}, - {"VerifyOptions.MaxConstraintComparisions", Field, 10, ""}, - {"VerifyOptions.Roots", Field, 0, ""}, - }, - "crypto/x509/pkix": { - {"(*CertificateList).HasExpired", Method, 0, ""}, - {"(*Name).FillFromRDNSequence", Method, 0, ""}, - {"(Name).String", Method, 10, ""}, - {"(Name).ToRDNSequence", Method, 0, ""}, - {"(RDNSequence).String", Method, 10, ""}, - {"AlgorithmIdentifier", Type, 0, ""}, - {"AlgorithmIdentifier.Algorithm", Field, 0, ""}, - {"AlgorithmIdentifier.Parameters", Field, 0, ""}, - {"AttributeTypeAndValue", Type, 0, ""}, - {"AttributeTypeAndValue.Type", Field, 0, ""}, - {"AttributeTypeAndValue.Value", Field, 0, ""}, - {"AttributeTypeAndValueSET", Type, 3, ""}, - {"AttributeTypeAndValueSET.Type", Field, 3, ""}, - {"AttributeTypeAndValueSET.Value", Field, 3, ""}, - {"CertificateList", Type, 0, ""}, - {"CertificateList.SignatureAlgorithm", Field, 0, ""}, - {"CertificateList.SignatureValue", Field, 0, ""}, - {"CertificateList.TBSCertList", Field, 0, ""}, - {"Extension", Type, 0, ""}, - {"Extension.Critical", Field, 0, ""}, - {"Extension.Id", Field, 0, ""}, - {"Extension.Value", Field, 0, ""}, - {"Name", Type, 0, ""}, - {"Name.CommonName", Field, 0, ""}, - {"Name.Country", Field, 0, ""}, - {"Name.ExtraNames", Field, 5, ""}, - {"Name.Locality", Field, 0, ""}, - {"Name.Names", Field, 0, ""}, - {"Name.Organization", Field, 0, ""}, - {"Name.OrganizationalUnit", Field, 0, ""}, - {"Name.PostalCode", Field, 0, ""}, - {"Name.Province", Field, 0, ""}, - {"Name.SerialNumber", Field, 0, ""}, - {"Name.StreetAddress", Field, 0, ""}, - {"RDNSequence", Type, 0, ""}, - {"RelativeDistinguishedNameSET", Type, 0, ""}, - {"RevokedCertificate", Type, 0, ""}, - {"RevokedCertificate.Extensions", Field, 0, ""}, - {"RevokedCertificate.RevocationTime", Field, 0, ""}, - {"RevokedCertificate.SerialNumber", Field, 0, ""}, - {"TBSCertificateList", Type, 0, ""}, - {"TBSCertificateList.Extensions", Field, 0, ""}, - {"TBSCertificateList.Issuer", Field, 0, ""}, - {"TBSCertificateList.NextUpdate", Field, 0, ""}, - {"TBSCertificateList.Raw", Field, 0, ""}, - {"TBSCertificateList.RevokedCertificates", Field, 0, ""}, - {"TBSCertificateList.Signature", Field, 0, ""}, - {"TBSCertificateList.ThisUpdate", Field, 0, ""}, - {"TBSCertificateList.Version", Field, 0, ""}, - }, - "database/sql": { - {"(*ColumnType).DatabaseTypeName", Method, 8, ""}, - {"(*ColumnType).DecimalSize", Method, 8, ""}, - {"(*ColumnType).Length", Method, 8, ""}, - {"(*ColumnType).Name", Method, 8, ""}, - {"(*ColumnType).Nullable", Method, 8, ""}, - {"(*ColumnType).ScanType", Method, 8, ""}, - {"(*Conn).BeginTx", Method, 9, ""}, - {"(*Conn).Close", Method, 9, ""}, - {"(*Conn).ExecContext", Method, 9, ""}, - {"(*Conn).PingContext", Method, 9, ""}, - {"(*Conn).PrepareContext", Method, 9, ""}, - {"(*Conn).QueryContext", Method, 9, ""}, - {"(*Conn).QueryRowContext", Method, 9, ""}, - {"(*Conn).Raw", Method, 13, ""}, - {"(*DB).Begin", Method, 0, ""}, - {"(*DB).BeginTx", Method, 8, ""}, - {"(*DB).Close", Method, 0, ""}, - {"(*DB).Conn", Method, 9, ""}, - {"(*DB).Driver", Method, 0, ""}, - {"(*DB).Exec", Method, 0, ""}, - {"(*DB).ExecContext", Method, 8, ""}, - {"(*DB).Ping", Method, 1, ""}, - {"(*DB).PingContext", Method, 8, ""}, - {"(*DB).Prepare", Method, 0, ""}, - {"(*DB).PrepareContext", Method, 8, ""}, - {"(*DB).Query", Method, 0, ""}, - {"(*DB).QueryContext", Method, 8, ""}, - {"(*DB).QueryRow", Method, 0, ""}, - {"(*DB).QueryRowContext", Method, 8, ""}, - {"(*DB).SetConnMaxIdleTime", Method, 15, ""}, - {"(*DB).SetConnMaxLifetime", Method, 6, ""}, - {"(*DB).SetMaxIdleConns", Method, 1, ""}, - {"(*DB).SetMaxOpenConns", Method, 2, ""}, - {"(*DB).Stats", Method, 5, ""}, - {"(*Null).Scan", Method, 22, ""}, - {"(*NullBool).Scan", Method, 0, ""}, - {"(*NullByte).Scan", Method, 17, ""}, - {"(*NullFloat64).Scan", Method, 0, ""}, - {"(*NullInt16).Scan", Method, 17, ""}, - {"(*NullInt32).Scan", Method, 13, ""}, - {"(*NullInt64).Scan", Method, 0, ""}, - {"(*NullString).Scan", Method, 0, ""}, - {"(*NullTime).Scan", Method, 13, ""}, - {"(*Row).Err", Method, 15, ""}, - {"(*Row).Scan", Method, 0, ""}, - {"(*Rows).Close", Method, 0, ""}, - {"(*Rows).ColumnTypes", Method, 8, ""}, - {"(*Rows).Columns", Method, 0, ""}, - {"(*Rows).Err", Method, 0, ""}, - {"(*Rows).Next", Method, 0, ""}, - {"(*Rows).NextResultSet", Method, 8, ""}, - {"(*Rows).Scan", Method, 0, ""}, - {"(*Stmt).Close", Method, 0, ""}, - {"(*Stmt).Exec", Method, 0, ""}, - {"(*Stmt).ExecContext", Method, 8, ""}, - {"(*Stmt).Query", Method, 0, ""}, - {"(*Stmt).QueryContext", Method, 8, ""}, - {"(*Stmt).QueryRow", Method, 0, ""}, - {"(*Stmt).QueryRowContext", Method, 8, ""}, - {"(*Tx).Commit", Method, 0, ""}, - {"(*Tx).Exec", Method, 0, ""}, - {"(*Tx).ExecContext", Method, 8, ""}, - {"(*Tx).Prepare", Method, 0, ""}, - {"(*Tx).PrepareContext", Method, 8, ""}, - {"(*Tx).Query", Method, 0, ""}, - {"(*Tx).QueryContext", Method, 8, ""}, - {"(*Tx).QueryRow", Method, 0, ""}, - {"(*Tx).QueryRowContext", Method, 8, ""}, - {"(*Tx).Rollback", Method, 0, ""}, - {"(*Tx).Stmt", Method, 0, ""}, - {"(*Tx).StmtContext", Method, 8, ""}, - {"(IsolationLevel).String", Method, 11, ""}, - {"(Null).Value", Method, 22, ""}, - {"(NullBool).Value", Method, 0, ""}, - {"(NullByte).Value", Method, 17, ""}, - {"(NullFloat64).Value", Method, 0, ""}, - {"(NullInt16).Value", Method, 17, ""}, - {"(NullInt32).Value", Method, 13, ""}, - {"(NullInt64).Value", Method, 0, ""}, - {"(NullString).Value", Method, 0, ""}, - {"(NullTime).Value", Method, 13, ""}, - {"ColumnType", Type, 8, ""}, - {"Conn", Type, 9, ""}, - {"DB", Type, 0, ""}, - {"DBStats", Type, 5, ""}, - {"DBStats.Idle", Field, 11, ""}, - {"DBStats.InUse", Field, 11, ""}, - {"DBStats.MaxIdleClosed", Field, 11, ""}, - {"DBStats.MaxIdleTimeClosed", Field, 15, ""}, - {"DBStats.MaxLifetimeClosed", Field, 11, ""}, - {"DBStats.MaxOpenConnections", Field, 11, ""}, - {"DBStats.OpenConnections", Field, 5, ""}, - {"DBStats.WaitCount", Field, 11, ""}, - {"DBStats.WaitDuration", Field, 11, ""}, - {"Drivers", Func, 4, "func() []string"}, - {"ErrConnDone", Var, 9, ""}, - {"ErrNoRows", Var, 0, ""}, - {"ErrTxDone", Var, 0, ""}, - {"IsolationLevel", Type, 8, ""}, - {"LevelDefault", Const, 8, ""}, - {"LevelLinearizable", Const, 8, ""}, - {"LevelReadCommitted", Const, 8, ""}, - {"LevelReadUncommitted", Const, 8, ""}, - {"LevelRepeatableRead", Const, 8, ""}, - {"LevelSerializable", Const, 8, ""}, - {"LevelSnapshot", Const, 8, ""}, - {"LevelWriteCommitted", Const, 8, ""}, - {"Named", Func, 8, "func(name string, value any) NamedArg"}, - {"NamedArg", Type, 8, ""}, - {"NamedArg.Name", Field, 8, ""}, - {"NamedArg.Value", Field, 8, ""}, - {"Null", Type, 22, ""}, - {"Null.V", Field, 22, ""}, - {"Null.Valid", Field, 22, ""}, - {"NullBool", Type, 0, ""}, - {"NullBool.Bool", Field, 0, ""}, - {"NullBool.Valid", Field, 0, ""}, - {"NullByte", Type, 17, ""}, - {"NullByte.Byte", Field, 17, ""}, - {"NullByte.Valid", Field, 17, ""}, - {"NullFloat64", Type, 0, ""}, - {"NullFloat64.Float64", Field, 0, ""}, - {"NullFloat64.Valid", Field, 0, ""}, - {"NullInt16", Type, 17, ""}, - {"NullInt16.Int16", Field, 17, ""}, - {"NullInt16.Valid", Field, 17, ""}, - {"NullInt32", Type, 13, ""}, - {"NullInt32.Int32", Field, 13, ""}, - {"NullInt32.Valid", Field, 13, ""}, - {"NullInt64", Type, 0, ""}, - {"NullInt64.Int64", Field, 0, ""}, - {"NullInt64.Valid", Field, 0, ""}, - {"NullString", Type, 0, ""}, - {"NullString.String", Field, 0, ""}, - {"NullString.Valid", Field, 0, ""}, - {"NullTime", Type, 13, ""}, - {"NullTime.Time", Field, 13, ""}, - {"NullTime.Valid", Field, 13, ""}, - {"Open", Func, 0, "func(driverName string, dataSourceName string) (*DB, error)"}, - {"OpenDB", Func, 10, "func(c driver.Connector) *DB"}, - {"Out", Type, 9, ""}, - {"Out.Dest", Field, 9, ""}, - {"Out.In", Field, 9, ""}, - {"RawBytes", Type, 0, ""}, - {"Register", Func, 0, "func(name string, driver driver.Driver)"}, - {"Result", Type, 0, ""}, - {"Row", Type, 0, ""}, - {"Rows", Type, 0, ""}, - {"Scanner", Type, 0, ""}, - {"Stmt", Type, 0, ""}, - {"Tx", Type, 0, ""}, - {"TxOptions", Type, 8, ""}, - {"TxOptions.Isolation", Field, 8, ""}, - {"TxOptions.ReadOnly", Field, 8, ""}, - }, - "database/sql/driver": { - {"(NotNull).ConvertValue", Method, 0, ""}, - {"(Null).ConvertValue", Method, 0, ""}, - {"(RowsAffected).LastInsertId", Method, 0, ""}, - {"(RowsAffected).RowsAffected", Method, 0, ""}, - {"Bool", Var, 0, ""}, - {"ColumnConverter", Type, 0, ""}, - {"Conn", Type, 0, ""}, - {"ConnBeginTx", Type, 8, ""}, - {"ConnPrepareContext", Type, 8, ""}, - {"Connector", Type, 10, ""}, - {"DefaultParameterConverter", Var, 0, ""}, - {"Driver", Type, 0, ""}, - {"DriverContext", Type, 10, ""}, - {"ErrBadConn", Var, 0, ""}, - {"ErrRemoveArgument", Var, 9, ""}, - {"ErrSkip", Var, 0, ""}, - {"Execer", Type, 0, ""}, - {"ExecerContext", Type, 8, ""}, - {"Int32", Var, 0, ""}, - {"IsScanValue", Func, 0, "func(v any) bool"}, - {"IsValue", Func, 0, "func(v any) bool"}, - {"IsolationLevel", Type, 8, ""}, - {"NamedValue", Type, 8, ""}, - {"NamedValue.Name", Field, 8, ""}, - {"NamedValue.Ordinal", Field, 8, ""}, - {"NamedValue.Value", Field, 8, ""}, - {"NamedValueChecker", Type, 9, ""}, - {"NotNull", Type, 0, ""}, - {"NotNull.Converter", Field, 0, ""}, - {"Null", Type, 0, ""}, - {"Null.Converter", Field, 0, ""}, - {"Pinger", Type, 8, ""}, - {"Queryer", Type, 1, ""}, - {"QueryerContext", Type, 8, ""}, - {"Result", Type, 0, ""}, - {"ResultNoRows", Var, 0, ""}, - {"Rows", Type, 0, ""}, - {"RowsAffected", Type, 0, ""}, - {"RowsColumnTypeDatabaseTypeName", Type, 8, ""}, - {"RowsColumnTypeLength", Type, 8, ""}, - {"RowsColumnTypeNullable", Type, 8, ""}, - {"RowsColumnTypePrecisionScale", Type, 8, ""}, - {"RowsColumnTypeScanType", Type, 8, ""}, - {"RowsNextResultSet", Type, 8, ""}, - {"SessionResetter", Type, 10, ""}, - {"Stmt", Type, 0, ""}, - {"StmtExecContext", Type, 8, ""}, - {"StmtQueryContext", Type, 8, ""}, - {"String", Var, 0, ""}, - {"Tx", Type, 0, ""}, - {"TxOptions", Type, 8, ""}, - {"TxOptions.Isolation", Field, 8, ""}, - {"TxOptions.ReadOnly", Field, 8, ""}, - {"Validator", Type, 15, ""}, - {"Value", Type, 0, ""}, - {"ValueConverter", Type, 0, ""}, - {"Valuer", Type, 0, ""}, - }, - "debug/buildinfo": { - {"BuildInfo", Type, 18, ""}, - {"Read", Func, 18, "func(r io.ReaderAt) (*BuildInfo, error)"}, - {"ReadFile", Func, 18, "func(name string) (info *BuildInfo, err error)"}, - }, - "debug/dwarf": { - {"(*AddrType).Basic", Method, 0, ""}, - {"(*AddrType).Common", Method, 0, ""}, - {"(*AddrType).Size", Method, 0, ""}, - {"(*AddrType).String", Method, 0, ""}, - {"(*ArrayType).Common", Method, 0, ""}, - {"(*ArrayType).Size", Method, 0, ""}, - {"(*ArrayType).String", Method, 0, ""}, - {"(*BasicType).Basic", Method, 0, ""}, - {"(*BasicType).Common", Method, 0, ""}, - {"(*BasicType).Size", Method, 0, ""}, - {"(*BasicType).String", Method, 0, ""}, - {"(*BoolType).Basic", Method, 0, ""}, - {"(*BoolType).Common", Method, 0, ""}, - {"(*BoolType).Size", Method, 0, ""}, - {"(*BoolType).String", Method, 0, ""}, - {"(*CharType).Basic", Method, 0, ""}, - {"(*CharType).Common", Method, 0, ""}, - {"(*CharType).Size", Method, 0, ""}, - {"(*CharType).String", Method, 0, ""}, - {"(*CommonType).Common", Method, 0, ""}, - {"(*CommonType).Size", Method, 0, ""}, - {"(*ComplexType).Basic", Method, 0, ""}, - {"(*ComplexType).Common", Method, 0, ""}, - {"(*ComplexType).Size", Method, 0, ""}, - {"(*ComplexType).String", Method, 0, ""}, - {"(*Data).AddSection", Method, 14, ""}, - {"(*Data).AddTypes", Method, 3, ""}, - {"(*Data).LineReader", Method, 5, ""}, - {"(*Data).Ranges", Method, 7, ""}, - {"(*Data).Reader", Method, 0, ""}, - {"(*Data).Type", Method, 0, ""}, - {"(*DotDotDotType).Common", Method, 0, ""}, - {"(*DotDotDotType).Size", Method, 0, ""}, - {"(*DotDotDotType).String", Method, 0, ""}, - {"(*Entry).AttrField", Method, 5, ""}, - {"(*Entry).Val", Method, 0, ""}, - {"(*EnumType).Common", Method, 0, ""}, - {"(*EnumType).Size", Method, 0, ""}, - {"(*EnumType).String", Method, 0, ""}, - {"(*FloatType).Basic", Method, 0, ""}, - {"(*FloatType).Common", Method, 0, ""}, - {"(*FloatType).Size", Method, 0, ""}, - {"(*FloatType).String", Method, 0, ""}, - {"(*FuncType).Common", Method, 0, ""}, - {"(*FuncType).Size", Method, 0, ""}, - {"(*FuncType).String", Method, 0, ""}, - {"(*IntType).Basic", Method, 0, ""}, - {"(*IntType).Common", Method, 0, ""}, - {"(*IntType).Size", Method, 0, ""}, - {"(*IntType).String", Method, 0, ""}, - {"(*LineReader).Files", Method, 14, ""}, - {"(*LineReader).Next", Method, 5, ""}, - {"(*LineReader).Reset", Method, 5, ""}, - {"(*LineReader).Seek", Method, 5, ""}, - {"(*LineReader).SeekPC", Method, 5, ""}, - {"(*LineReader).Tell", Method, 5, ""}, - {"(*PtrType).Common", Method, 0, ""}, - {"(*PtrType).Size", Method, 0, ""}, - {"(*PtrType).String", Method, 0, ""}, - {"(*QualType).Common", Method, 0, ""}, - {"(*QualType).Size", Method, 0, ""}, - {"(*QualType).String", Method, 0, ""}, - {"(*Reader).AddressSize", Method, 5, ""}, - {"(*Reader).ByteOrder", Method, 14, ""}, - {"(*Reader).Next", Method, 0, ""}, - {"(*Reader).Seek", Method, 0, ""}, - {"(*Reader).SeekPC", Method, 7, ""}, - {"(*Reader).SkipChildren", Method, 0, ""}, - {"(*StructType).Common", Method, 0, ""}, - {"(*StructType).Defn", Method, 0, ""}, - {"(*StructType).Size", Method, 0, ""}, - {"(*StructType).String", Method, 0, ""}, - {"(*TypedefType).Common", Method, 0, ""}, - {"(*TypedefType).Size", Method, 0, ""}, - {"(*TypedefType).String", Method, 0, ""}, - {"(*UcharType).Basic", Method, 0, ""}, - {"(*UcharType).Common", Method, 0, ""}, - {"(*UcharType).Size", Method, 0, ""}, - {"(*UcharType).String", Method, 0, ""}, - {"(*UintType).Basic", Method, 0, ""}, - {"(*UintType).Common", Method, 0, ""}, - {"(*UintType).Size", Method, 0, ""}, - {"(*UintType).String", Method, 0, ""}, - {"(*UnspecifiedType).Basic", Method, 4, ""}, - {"(*UnspecifiedType).Common", Method, 4, ""}, - {"(*UnspecifiedType).Size", Method, 4, ""}, - {"(*UnspecifiedType).String", Method, 4, ""}, - {"(*UnsupportedType).Common", Method, 13, ""}, - {"(*UnsupportedType).Size", Method, 13, ""}, - {"(*UnsupportedType).String", Method, 13, ""}, - {"(*VoidType).Common", Method, 0, ""}, - {"(*VoidType).Size", Method, 0, ""}, - {"(*VoidType).String", Method, 0, ""}, - {"(Attr).GoString", Method, 0, ""}, - {"(Attr).String", Method, 0, ""}, - {"(Class).GoString", Method, 5, ""}, - {"(Class).String", Method, 5, ""}, - {"(DecodeError).Error", Method, 0, ""}, - {"(Tag).GoString", Method, 0, ""}, - {"(Tag).String", Method, 0, ""}, - {"AddrType", Type, 0, ""}, - {"AddrType.BasicType", Field, 0, ""}, - {"ArrayType", Type, 0, ""}, - {"ArrayType.CommonType", Field, 0, ""}, - {"ArrayType.Count", Field, 0, ""}, - {"ArrayType.StrideBitSize", Field, 0, ""}, - {"ArrayType.Type", Field, 0, ""}, - {"Attr", Type, 0, ""}, - {"AttrAbstractOrigin", Const, 0, ""}, - {"AttrAccessibility", Const, 0, ""}, - {"AttrAddrBase", Const, 14, ""}, - {"AttrAddrClass", Const, 0, ""}, - {"AttrAlignment", Const, 14, ""}, - {"AttrAllocated", Const, 0, ""}, - {"AttrArtificial", Const, 0, ""}, - {"AttrAssociated", Const, 0, ""}, - {"AttrBaseTypes", Const, 0, ""}, - {"AttrBinaryScale", Const, 14, ""}, - {"AttrBitOffset", Const, 0, ""}, - {"AttrBitSize", Const, 0, ""}, - {"AttrByteSize", Const, 0, ""}, - {"AttrCallAllCalls", Const, 14, ""}, - {"AttrCallAllSourceCalls", Const, 14, ""}, - {"AttrCallAllTailCalls", Const, 14, ""}, - {"AttrCallColumn", Const, 0, ""}, - {"AttrCallDataLocation", Const, 14, ""}, - {"AttrCallDataValue", Const, 14, ""}, - {"AttrCallFile", Const, 0, ""}, - {"AttrCallLine", Const, 0, ""}, - {"AttrCallOrigin", Const, 14, ""}, - {"AttrCallPC", Const, 14, ""}, - {"AttrCallParameter", Const, 14, ""}, - {"AttrCallReturnPC", Const, 14, ""}, - {"AttrCallTailCall", Const, 14, ""}, - {"AttrCallTarget", Const, 14, ""}, - {"AttrCallTargetClobbered", Const, 14, ""}, - {"AttrCallValue", Const, 14, ""}, - {"AttrCalling", Const, 0, ""}, - {"AttrCommonRef", Const, 0, ""}, - {"AttrCompDir", Const, 0, ""}, - {"AttrConstExpr", Const, 14, ""}, - {"AttrConstValue", Const, 0, ""}, - {"AttrContainingType", Const, 0, ""}, - {"AttrCount", Const, 0, ""}, - {"AttrDataBitOffset", Const, 14, ""}, - {"AttrDataLocation", Const, 0, ""}, - {"AttrDataMemberLoc", Const, 0, ""}, - {"AttrDecimalScale", Const, 14, ""}, - {"AttrDecimalSign", Const, 14, ""}, - {"AttrDeclColumn", Const, 0, ""}, - {"AttrDeclFile", Const, 0, ""}, - {"AttrDeclLine", Const, 0, ""}, - {"AttrDeclaration", Const, 0, ""}, - {"AttrDefaultValue", Const, 0, ""}, - {"AttrDefaulted", Const, 14, ""}, - {"AttrDeleted", Const, 14, ""}, - {"AttrDescription", Const, 0, ""}, - {"AttrDigitCount", Const, 14, ""}, - {"AttrDiscr", Const, 0, ""}, - {"AttrDiscrList", Const, 0, ""}, - {"AttrDiscrValue", Const, 0, ""}, - {"AttrDwoName", Const, 14, ""}, - {"AttrElemental", Const, 14, ""}, - {"AttrEncoding", Const, 0, ""}, - {"AttrEndianity", Const, 14, ""}, - {"AttrEntrypc", Const, 0, ""}, - {"AttrEnumClass", Const, 14, ""}, - {"AttrExplicit", Const, 14, ""}, - {"AttrExportSymbols", Const, 14, ""}, - {"AttrExtension", Const, 0, ""}, - {"AttrExternal", Const, 0, ""}, - {"AttrFrameBase", Const, 0, ""}, - {"AttrFriend", Const, 0, ""}, - {"AttrHighpc", Const, 0, ""}, - {"AttrIdentifierCase", Const, 0, ""}, - {"AttrImport", Const, 0, ""}, - {"AttrInline", Const, 0, ""}, - {"AttrIsOptional", Const, 0, ""}, - {"AttrLanguage", Const, 0, ""}, - {"AttrLinkageName", Const, 14, ""}, - {"AttrLocation", Const, 0, ""}, - {"AttrLoclistsBase", Const, 14, ""}, - {"AttrLowerBound", Const, 0, ""}, - {"AttrLowpc", Const, 0, ""}, - {"AttrMacroInfo", Const, 0, ""}, - {"AttrMacros", Const, 14, ""}, - {"AttrMainSubprogram", Const, 14, ""}, - {"AttrMutable", Const, 14, ""}, - {"AttrName", Const, 0, ""}, - {"AttrNamelistItem", Const, 0, ""}, - {"AttrNoreturn", Const, 14, ""}, - {"AttrObjectPointer", Const, 14, ""}, - {"AttrOrdering", Const, 0, ""}, - {"AttrPictureString", Const, 14, ""}, - {"AttrPriority", Const, 0, ""}, - {"AttrProducer", Const, 0, ""}, - {"AttrPrototyped", Const, 0, ""}, - {"AttrPure", Const, 14, ""}, - {"AttrRanges", Const, 0, ""}, - {"AttrRank", Const, 14, ""}, - {"AttrRecursive", Const, 14, ""}, - {"AttrReference", Const, 14, ""}, - {"AttrReturnAddr", Const, 0, ""}, - {"AttrRnglistsBase", Const, 14, ""}, - {"AttrRvalueReference", Const, 14, ""}, - {"AttrSegment", Const, 0, ""}, - {"AttrSibling", Const, 0, ""}, - {"AttrSignature", Const, 14, ""}, - {"AttrSmall", Const, 14, ""}, - {"AttrSpecification", Const, 0, ""}, - {"AttrStartScope", Const, 0, ""}, - {"AttrStaticLink", Const, 0, ""}, - {"AttrStmtList", Const, 0, ""}, - {"AttrStrOffsetsBase", Const, 14, ""}, - {"AttrStride", Const, 0, ""}, - {"AttrStrideSize", Const, 0, ""}, - {"AttrStringLength", Const, 0, ""}, - {"AttrStringLengthBitSize", Const, 14, ""}, - {"AttrStringLengthByteSize", Const, 14, ""}, - {"AttrThreadsScaled", Const, 14, ""}, - {"AttrTrampoline", Const, 0, ""}, - {"AttrType", Const, 0, ""}, - {"AttrUpperBound", Const, 0, ""}, - {"AttrUseLocation", Const, 0, ""}, - {"AttrUseUTF8", Const, 0, ""}, - {"AttrVarParam", Const, 0, ""}, - {"AttrVirtuality", Const, 0, ""}, - {"AttrVisibility", Const, 0, ""}, - {"AttrVtableElemLoc", Const, 0, ""}, - {"BasicType", Type, 0, ""}, - {"BasicType.BitOffset", Field, 0, ""}, - {"BasicType.BitSize", Field, 0, ""}, - {"BasicType.CommonType", Field, 0, ""}, - {"BasicType.DataBitOffset", Field, 18, ""}, - {"BoolType", Type, 0, ""}, - {"BoolType.BasicType", Field, 0, ""}, - {"CharType", Type, 0, ""}, - {"CharType.BasicType", Field, 0, ""}, - {"Class", Type, 5, ""}, - {"ClassAddrPtr", Const, 14, ""}, - {"ClassAddress", Const, 5, ""}, - {"ClassBlock", Const, 5, ""}, - {"ClassConstant", Const, 5, ""}, - {"ClassExprLoc", Const, 5, ""}, - {"ClassFlag", Const, 5, ""}, - {"ClassLinePtr", Const, 5, ""}, - {"ClassLocList", Const, 14, ""}, - {"ClassLocListPtr", Const, 5, ""}, - {"ClassMacPtr", Const, 5, ""}, - {"ClassRangeListPtr", Const, 5, ""}, - {"ClassReference", Const, 5, ""}, - {"ClassReferenceAlt", Const, 5, ""}, - {"ClassReferenceSig", Const, 5, ""}, - {"ClassRngList", Const, 14, ""}, - {"ClassRngListsPtr", Const, 14, ""}, - {"ClassStrOffsetsPtr", Const, 14, ""}, - {"ClassString", Const, 5, ""}, - {"ClassStringAlt", Const, 5, ""}, - {"ClassUnknown", Const, 6, ""}, - {"CommonType", Type, 0, ""}, - {"CommonType.ByteSize", Field, 0, ""}, - {"CommonType.Name", Field, 0, ""}, - {"ComplexType", Type, 0, ""}, - {"ComplexType.BasicType", Field, 0, ""}, - {"Data", Type, 0, ""}, - {"DecodeError", Type, 0, ""}, - {"DecodeError.Err", Field, 0, ""}, - {"DecodeError.Name", Field, 0, ""}, - {"DecodeError.Offset", Field, 0, ""}, - {"DotDotDotType", Type, 0, ""}, - {"DotDotDotType.CommonType", Field, 0, ""}, - {"Entry", Type, 0, ""}, - {"Entry.Children", Field, 0, ""}, - {"Entry.Field", Field, 0, ""}, - {"Entry.Offset", Field, 0, ""}, - {"Entry.Tag", Field, 0, ""}, - {"EnumType", Type, 0, ""}, - {"EnumType.CommonType", Field, 0, ""}, - {"EnumType.EnumName", Field, 0, ""}, - {"EnumType.Val", Field, 0, ""}, - {"EnumValue", Type, 0, ""}, - {"EnumValue.Name", Field, 0, ""}, - {"EnumValue.Val", Field, 0, ""}, - {"ErrUnknownPC", Var, 5, ""}, - {"Field", Type, 0, ""}, - {"Field.Attr", Field, 0, ""}, - {"Field.Class", Field, 5, ""}, - {"Field.Val", Field, 0, ""}, - {"FloatType", Type, 0, ""}, - {"FloatType.BasicType", Field, 0, ""}, - {"FuncType", Type, 0, ""}, - {"FuncType.CommonType", Field, 0, ""}, - {"FuncType.ParamType", Field, 0, ""}, - {"FuncType.ReturnType", Field, 0, ""}, - {"IntType", Type, 0, ""}, - {"IntType.BasicType", Field, 0, ""}, - {"LineEntry", Type, 5, ""}, - {"LineEntry.Address", Field, 5, ""}, - {"LineEntry.BasicBlock", Field, 5, ""}, - {"LineEntry.Column", Field, 5, ""}, - {"LineEntry.Discriminator", Field, 5, ""}, - {"LineEntry.EndSequence", Field, 5, ""}, - {"LineEntry.EpilogueBegin", Field, 5, ""}, - {"LineEntry.File", Field, 5, ""}, - {"LineEntry.ISA", Field, 5, ""}, - {"LineEntry.IsStmt", Field, 5, ""}, - {"LineEntry.Line", Field, 5, ""}, - {"LineEntry.OpIndex", Field, 5, ""}, - {"LineEntry.PrologueEnd", Field, 5, ""}, - {"LineFile", Type, 5, ""}, - {"LineFile.Length", Field, 5, ""}, - {"LineFile.Mtime", Field, 5, ""}, - {"LineFile.Name", Field, 5, ""}, - {"LineReader", Type, 5, ""}, - {"LineReaderPos", Type, 5, ""}, - {"New", Func, 0, "func(abbrev []byte, aranges []byte, frame []byte, info []byte, line []byte, pubnames []byte, ranges []byte, str []byte) (*Data, error)"}, - {"Offset", Type, 0, ""}, - {"PtrType", Type, 0, ""}, - {"PtrType.CommonType", Field, 0, ""}, - {"PtrType.Type", Field, 0, ""}, - {"QualType", Type, 0, ""}, - {"QualType.CommonType", Field, 0, ""}, - {"QualType.Qual", Field, 0, ""}, - {"QualType.Type", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"StructField", Type, 0, ""}, - {"StructField.BitOffset", Field, 0, ""}, - {"StructField.BitSize", Field, 0, ""}, - {"StructField.ByteOffset", Field, 0, ""}, - {"StructField.ByteSize", Field, 0, ""}, - {"StructField.DataBitOffset", Field, 18, ""}, - {"StructField.Name", Field, 0, ""}, - {"StructField.Type", Field, 0, ""}, - {"StructType", Type, 0, ""}, - {"StructType.CommonType", Field, 0, ""}, - {"StructType.Field", Field, 0, ""}, - {"StructType.Incomplete", Field, 0, ""}, - {"StructType.Kind", Field, 0, ""}, - {"StructType.StructName", Field, 0, ""}, - {"Tag", Type, 0, ""}, - {"TagAccessDeclaration", Const, 0, ""}, - {"TagArrayType", Const, 0, ""}, - {"TagAtomicType", Const, 14, ""}, - {"TagBaseType", Const, 0, ""}, - {"TagCallSite", Const, 14, ""}, - {"TagCallSiteParameter", Const, 14, ""}, - {"TagCatchDwarfBlock", Const, 0, ""}, - {"TagClassType", Const, 0, ""}, - {"TagCoarrayType", Const, 14, ""}, - {"TagCommonDwarfBlock", Const, 0, ""}, - {"TagCommonInclusion", Const, 0, ""}, - {"TagCompileUnit", Const, 0, ""}, - {"TagCondition", Const, 3, ""}, - {"TagConstType", Const, 0, ""}, - {"TagConstant", Const, 0, ""}, - {"TagDwarfProcedure", Const, 0, ""}, - {"TagDynamicType", Const, 14, ""}, - {"TagEntryPoint", Const, 0, ""}, - {"TagEnumerationType", Const, 0, ""}, - {"TagEnumerator", Const, 0, ""}, - {"TagFileType", Const, 0, ""}, - {"TagFormalParameter", Const, 0, ""}, - {"TagFriend", Const, 0, ""}, - {"TagGenericSubrange", Const, 14, ""}, - {"TagImmutableType", Const, 14, ""}, - {"TagImportedDeclaration", Const, 0, ""}, - {"TagImportedModule", Const, 0, ""}, - {"TagImportedUnit", Const, 0, ""}, - {"TagInheritance", Const, 0, ""}, - {"TagInlinedSubroutine", Const, 0, ""}, - {"TagInterfaceType", Const, 0, ""}, - {"TagLabel", Const, 0, ""}, - {"TagLexDwarfBlock", Const, 0, ""}, - {"TagMember", Const, 0, ""}, - {"TagModule", Const, 0, ""}, - {"TagMutableType", Const, 0, ""}, - {"TagNamelist", Const, 0, ""}, - {"TagNamelistItem", Const, 0, ""}, - {"TagNamespace", Const, 0, ""}, - {"TagPackedType", Const, 0, ""}, - {"TagPartialUnit", Const, 0, ""}, - {"TagPointerType", Const, 0, ""}, - {"TagPtrToMemberType", Const, 0, ""}, - {"TagReferenceType", Const, 0, ""}, - {"TagRestrictType", Const, 0, ""}, - {"TagRvalueReferenceType", Const, 3, ""}, - {"TagSetType", Const, 0, ""}, - {"TagSharedType", Const, 3, ""}, - {"TagSkeletonUnit", Const, 14, ""}, - {"TagStringType", Const, 0, ""}, - {"TagStructType", Const, 0, ""}, - {"TagSubprogram", Const, 0, ""}, - {"TagSubrangeType", Const, 0, ""}, - {"TagSubroutineType", Const, 0, ""}, - {"TagTemplateAlias", Const, 3, ""}, - {"TagTemplateTypeParameter", Const, 0, ""}, - {"TagTemplateValueParameter", Const, 0, ""}, - {"TagThrownType", Const, 0, ""}, - {"TagTryDwarfBlock", Const, 0, ""}, - {"TagTypeUnit", Const, 3, ""}, - {"TagTypedef", Const, 0, ""}, - {"TagUnionType", Const, 0, ""}, - {"TagUnspecifiedParameters", Const, 0, ""}, - {"TagUnspecifiedType", Const, 0, ""}, - {"TagVariable", Const, 0, ""}, - {"TagVariant", Const, 0, ""}, - {"TagVariantPart", Const, 0, ""}, - {"TagVolatileType", Const, 0, ""}, - {"TagWithStmt", Const, 0, ""}, - {"Type", Type, 0, ""}, - {"TypedefType", Type, 0, ""}, - {"TypedefType.CommonType", Field, 0, ""}, - {"TypedefType.Type", Field, 0, ""}, - {"UcharType", Type, 0, ""}, - {"UcharType.BasicType", Field, 0, ""}, - {"UintType", Type, 0, ""}, - {"UintType.BasicType", Field, 0, ""}, - {"UnspecifiedType", Type, 4, ""}, - {"UnspecifiedType.BasicType", Field, 4, ""}, - {"UnsupportedType", Type, 13, ""}, - {"UnsupportedType.CommonType", Field, 13, ""}, - {"UnsupportedType.Tag", Field, 13, ""}, - {"VoidType", Type, 0, ""}, - {"VoidType.CommonType", Field, 0, ""}, - }, - "debug/elf": { - {"(*File).Close", Method, 0, ""}, - {"(*File).DWARF", Method, 0, ""}, - {"(*File).DynString", Method, 1, ""}, - {"(*File).DynValue", Method, 21, ""}, - {"(*File).DynamicSymbols", Method, 4, ""}, - {"(*File).DynamicVersionNeeds", Method, 24, ""}, - {"(*File).DynamicVersions", Method, 24, ""}, - {"(*File).ImportedLibraries", Method, 0, ""}, - {"(*File).ImportedSymbols", Method, 0, ""}, - {"(*File).Section", Method, 0, ""}, - {"(*File).SectionByType", Method, 0, ""}, - {"(*File).Symbols", Method, 0, ""}, - {"(*FormatError).Error", Method, 0, ""}, - {"(*Prog).Open", Method, 0, ""}, - {"(*Section).Data", Method, 0, ""}, - {"(*Section).Open", Method, 0, ""}, - {"(Class).GoString", Method, 0, ""}, - {"(Class).String", Method, 0, ""}, - {"(CompressionType).GoString", Method, 6, ""}, - {"(CompressionType).String", Method, 6, ""}, - {"(Data).GoString", Method, 0, ""}, - {"(Data).String", Method, 0, ""}, - {"(DynFlag).GoString", Method, 0, ""}, - {"(DynFlag).String", Method, 0, ""}, - {"(DynFlag1).GoString", Method, 21, ""}, - {"(DynFlag1).String", Method, 21, ""}, - {"(DynTag).GoString", Method, 0, ""}, - {"(DynTag).String", Method, 0, ""}, - {"(Machine).GoString", Method, 0, ""}, - {"(Machine).String", Method, 0, ""}, - {"(NType).GoString", Method, 0, ""}, - {"(NType).String", Method, 0, ""}, - {"(OSABI).GoString", Method, 0, ""}, - {"(OSABI).String", Method, 0, ""}, - {"(Prog).ReadAt", Method, 0, ""}, - {"(ProgFlag).GoString", Method, 0, ""}, - {"(ProgFlag).String", Method, 0, ""}, - {"(ProgType).GoString", Method, 0, ""}, - {"(ProgType).String", Method, 0, ""}, - {"(R_386).GoString", Method, 0, ""}, - {"(R_386).String", Method, 0, ""}, - {"(R_390).GoString", Method, 7, ""}, - {"(R_390).String", Method, 7, ""}, - {"(R_AARCH64).GoString", Method, 4, ""}, - {"(R_AARCH64).String", Method, 4, ""}, - {"(R_ALPHA).GoString", Method, 0, ""}, - {"(R_ALPHA).String", Method, 0, ""}, - {"(R_ARM).GoString", Method, 0, ""}, - {"(R_ARM).String", Method, 0, ""}, - {"(R_LARCH).GoString", Method, 19, ""}, - {"(R_LARCH).String", Method, 19, ""}, - {"(R_MIPS).GoString", Method, 6, ""}, - {"(R_MIPS).String", Method, 6, ""}, - {"(R_PPC).GoString", Method, 0, ""}, - {"(R_PPC).String", Method, 0, ""}, - {"(R_PPC64).GoString", Method, 5, ""}, - {"(R_PPC64).String", Method, 5, ""}, - {"(R_RISCV).GoString", Method, 11, ""}, - {"(R_RISCV).String", Method, 11, ""}, - {"(R_SPARC).GoString", Method, 0, ""}, - {"(R_SPARC).String", Method, 0, ""}, - {"(R_X86_64).GoString", Method, 0, ""}, - {"(R_X86_64).String", Method, 0, ""}, - {"(Section).ReadAt", Method, 0, ""}, - {"(SectionFlag).GoString", Method, 0, ""}, - {"(SectionFlag).String", Method, 0, ""}, - {"(SectionIndex).GoString", Method, 0, ""}, - {"(SectionIndex).String", Method, 0, ""}, - {"(SectionType).GoString", Method, 0, ""}, - {"(SectionType).String", Method, 0, ""}, - {"(SymBind).GoString", Method, 0, ""}, - {"(SymBind).String", Method, 0, ""}, - {"(SymType).GoString", Method, 0, ""}, - {"(SymType).String", Method, 0, ""}, - {"(SymVis).GoString", Method, 0, ""}, - {"(SymVis).String", Method, 0, ""}, - {"(Type).GoString", Method, 0, ""}, - {"(Type).String", Method, 0, ""}, - {"(Version).GoString", Method, 0, ""}, - {"(Version).String", Method, 0, ""}, - {"(VersionIndex).Index", Method, 24, ""}, - {"(VersionIndex).IsHidden", Method, 24, ""}, - {"ARM_MAGIC_TRAMP_NUMBER", Const, 0, ""}, - {"COMPRESS_HIOS", Const, 6, ""}, - {"COMPRESS_HIPROC", Const, 6, ""}, - {"COMPRESS_LOOS", Const, 6, ""}, - {"COMPRESS_LOPROC", Const, 6, ""}, - {"COMPRESS_ZLIB", Const, 6, ""}, - {"COMPRESS_ZSTD", Const, 21, ""}, - {"Chdr32", Type, 6, ""}, - {"Chdr32.Addralign", Field, 6, ""}, - {"Chdr32.Size", Field, 6, ""}, - {"Chdr32.Type", Field, 6, ""}, - {"Chdr64", Type, 6, ""}, - {"Chdr64.Addralign", Field, 6, ""}, - {"Chdr64.Size", Field, 6, ""}, - {"Chdr64.Type", Field, 6, ""}, - {"Class", Type, 0, ""}, - {"CompressionType", Type, 6, ""}, - {"DF_1_CONFALT", Const, 21, ""}, - {"DF_1_DIRECT", Const, 21, ""}, - {"DF_1_DISPRELDNE", Const, 21, ""}, - {"DF_1_DISPRELPND", Const, 21, ""}, - {"DF_1_EDITED", Const, 21, ""}, - {"DF_1_ENDFILTEE", Const, 21, ""}, - {"DF_1_GLOBAL", Const, 21, ""}, - {"DF_1_GLOBAUDIT", Const, 21, ""}, - {"DF_1_GROUP", Const, 21, ""}, - {"DF_1_IGNMULDEF", Const, 21, ""}, - {"DF_1_INITFIRST", Const, 21, ""}, - {"DF_1_INTERPOSE", Const, 21, ""}, - {"DF_1_KMOD", Const, 21, ""}, - {"DF_1_LOADFLTR", Const, 21, ""}, - {"DF_1_NOCOMMON", Const, 21, ""}, - {"DF_1_NODEFLIB", Const, 21, ""}, - {"DF_1_NODELETE", Const, 21, ""}, - {"DF_1_NODIRECT", Const, 21, ""}, - {"DF_1_NODUMP", Const, 21, ""}, - {"DF_1_NOHDR", Const, 21, ""}, - {"DF_1_NOKSYMS", Const, 21, ""}, - {"DF_1_NOOPEN", Const, 21, ""}, - {"DF_1_NORELOC", Const, 21, ""}, - {"DF_1_NOW", Const, 21, ""}, - {"DF_1_ORIGIN", Const, 21, ""}, - {"DF_1_PIE", Const, 21, ""}, - {"DF_1_SINGLETON", Const, 21, ""}, - {"DF_1_STUB", Const, 21, ""}, - {"DF_1_SYMINTPOSE", Const, 21, ""}, - {"DF_1_TRANS", Const, 21, ""}, - {"DF_1_WEAKFILTER", Const, 21, ""}, - {"DF_BIND_NOW", Const, 0, ""}, - {"DF_ORIGIN", Const, 0, ""}, - {"DF_STATIC_TLS", Const, 0, ""}, - {"DF_SYMBOLIC", Const, 0, ""}, - {"DF_TEXTREL", Const, 0, ""}, - {"DT_ADDRRNGHI", Const, 16, ""}, - {"DT_ADDRRNGLO", Const, 16, ""}, - {"DT_AUDIT", Const, 16, ""}, - {"DT_AUXILIARY", Const, 16, ""}, - {"DT_BIND_NOW", Const, 0, ""}, - {"DT_CHECKSUM", Const, 16, ""}, - {"DT_CONFIG", Const, 16, ""}, - {"DT_DEBUG", Const, 0, ""}, - {"DT_DEPAUDIT", Const, 16, ""}, - {"DT_ENCODING", Const, 0, ""}, - {"DT_FEATURE", Const, 16, ""}, - {"DT_FILTER", Const, 16, ""}, - {"DT_FINI", Const, 0, ""}, - {"DT_FINI_ARRAY", Const, 0, ""}, - {"DT_FINI_ARRAYSZ", Const, 0, ""}, - {"DT_FLAGS", Const, 0, ""}, - {"DT_FLAGS_1", Const, 16, ""}, - {"DT_GNU_CONFLICT", Const, 16, ""}, - {"DT_GNU_CONFLICTSZ", Const, 16, ""}, - {"DT_GNU_HASH", Const, 16, ""}, - {"DT_GNU_LIBLIST", Const, 16, ""}, - {"DT_GNU_LIBLISTSZ", Const, 16, ""}, - {"DT_GNU_PRELINKED", Const, 16, ""}, - {"DT_HASH", Const, 0, ""}, - {"DT_HIOS", Const, 0, ""}, - {"DT_HIPROC", Const, 0, ""}, - {"DT_INIT", Const, 0, ""}, - {"DT_INIT_ARRAY", Const, 0, ""}, - {"DT_INIT_ARRAYSZ", Const, 0, ""}, - {"DT_JMPREL", Const, 0, ""}, - {"DT_LOOS", Const, 0, ""}, - {"DT_LOPROC", Const, 0, ""}, - {"DT_MIPS_AUX_DYNAMIC", Const, 16, ""}, - {"DT_MIPS_BASE_ADDRESS", Const, 16, ""}, - {"DT_MIPS_COMPACT_SIZE", Const, 16, ""}, - {"DT_MIPS_CONFLICT", Const, 16, ""}, - {"DT_MIPS_CONFLICTNO", Const, 16, ""}, - {"DT_MIPS_CXX_FLAGS", Const, 16, ""}, - {"DT_MIPS_DELTA_CLASS", Const, 16, ""}, - {"DT_MIPS_DELTA_CLASSSYM", Const, 16, ""}, - {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16, ""}, - {"DT_MIPS_DELTA_CLASS_NO", Const, 16, ""}, - {"DT_MIPS_DELTA_INSTANCE", Const, 16, ""}, - {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16, ""}, - {"DT_MIPS_DELTA_RELOC", Const, 16, ""}, - {"DT_MIPS_DELTA_RELOC_NO", Const, 16, ""}, - {"DT_MIPS_DELTA_SYM", Const, 16, ""}, - {"DT_MIPS_DELTA_SYM_NO", Const, 16, ""}, - {"DT_MIPS_DYNSTR_ALIGN", Const, 16, ""}, - {"DT_MIPS_FLAGS", Const, 16, ""}, - {"DT_MIPS_GOTSYM", Const, 16, ""}, - {"DT_MIPS_GP_VALUE", Const, 16, ""}, - {"DT_MIPS_HIDDEN_GOTIDX", Const, 16, ""}, - {"DT_MIPS_HIPAGENO", Const, 16, ""}, - {"DT_MIPS_ICHECKSUM", Const, 16, ""}, - {"DT_MIPS_INTERFACE", Const, 16, ""}, - {"DT_MIPS_INTERFACE_SIZE", Const, 16, ""}, - {"DT_MIPS_IVERSION", Const, 16, ""}, - {"DT_MIPS_LIBLIST", Const, 16, ""}, - {"DT_MIPS_LIBLISTNO", Const, 16, ""}, - {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16, ""}, - {"DT_MIPS_LOCAL_GOTIDX", Const, 16, ""}, - {"DT_MIPS_LOCAL_GOTNO", Const, 16, ""}, - {"DT_MIPS_MSYM", Const, 16, ""}, - {"DT_MIPS_OPTIONS", Const, 16, ""}, - {"DT_MIPS_PERF_SUFFIX", Const, 16, ""}, - {"DT_MIPS_PIXIE_INIT", Const, 16, ""}, - {"DT_MIPS_PLTGOT", Const, 16, ""}, - {"DT_MIPS_PROTECTED_GOTIDX", Const, 16, ""}, - {"DT_MIPS_RLD_MAP", Const, 16, ""}, - {"DT_MIPS_RLD_MAP_REL", Const, 16, ""}, - {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16, ""}, - {"DT_MIPS_RLD_VERSION", Const, 16, ""}, - {"DT_MIPS_RWPLT", Const, 16, ""}, - {"DT_MIPS_SYMBOL_LIB", Const, 16, ""}, - {"DT_MIPS_SYMTABNO", Const, 16, ""}, - {"DT_MIPS_TIME_STAMP", Const, 16, ""}, - {"DT_MIPS_UNREFEXTNO", Const, 16, ""}, - {"DT_MOVEENT", Const, 16, ""}, - {"DT_MOVESZ", Const, 16, ""}, - {"DT_MOVETAB", Const, 16, ""}, - {"DT_NEEDED", Const, 0, ""}, - {"DT_NULL", Const, 0, ""}, - {"DT_PLTGOT", Const, 0, ""}, - {"DT_PLTPAD", Const, 16, ""}, - {"DT_PLTPADSZ", Const, 16, ""}, - {"DT_PLTREL", Const, 0, ""}, - {"DT_PLTRELSZ", Const, 0, ""}, - {"DT_POSFLAG_1", Const, 16, ""}, - {"DT_PPC64_GLINK", Const, 16, ""}, - {"DT_PPC64_OPD", Const, 16, ""}, - {"DT_PPC64_OPDSZ", Const, 16, ""}, - {"DT_PPC64_OPT", Const, 16, ""}, - {"DT_PPC_GOT", Const, 16, ""}, - {"DT_PPC_OPT", Const, 16, ""}, - {"DT_PREINIT_ARRAY", Const, 0, ""}, - {"DT_PREINIT_ARRAYSZ", Const, 0, ""}, - {"DT_REL", Const, 0, ""}, - {"DT_RELA", Const, 0, ""}, - {"DT_RELACOUNT", Const, 16, ""}, - {"DT_RELAENT", Const, 0, ""}, - {"DT_RELASZ", Const, 0, ""}, - {"DT_RELCOUNT", Const, 16, ""}, - {"DT_RELENT", Const, 0, ""}, - {"DT_RELSZ", Const, 0, ""}, - {"DT_RPATH", Const, 0, ""}, - {"DT_RUNPATH", Const, 0, ""}, - {"DT_SONAME", Const, 0, ""}, - {"DT_SPARC_REGISTER", Const, 16, ""}, - {"DT_STRSZ", Const, 0, ""}, - {"DT_STRTAB", Const, 0, ""}, - {"DT_SYMBOLIC", Const, 0, ""}, - {"DT_SYMENT", Const, 0, ""}, - {"DT_SYMINENT", Const, 16, ""}, - {"DT_SYMINFO", Const, 16, ""}, - {"DT_SYMINSZ", Const, 16, ""}, - {"DT_SYMTAB", Const, 0, ""}, - {"DT_SYMTAB_SHNDX", Const, 16, ""}, - {"DT_TEXTREL", Const, 0, ""}, - {"DT_TLSDESC_GOT", Const, 16, ""}, - {"DT_TLSDESC_PLT", Const, 16, ""}, - {"DT_USED", Const, 16, ""}, - {"DT_VALRNGHI", Const, 16, ""}, - {"DT_VALRNGLO", Const, 16, ""}, - {"DT_VERDEF", Const, 16, ""}, - {"DT_VERDEFNUM", Const, 16, ""}, - {"DT_VERNEED", Const, 0, ""}, - {"DT_VERNEEDNUM", Const, 0, ""}, - {"DT_VERSYM", Const, 0, ""}, - {"Data", Type, 0, ""}, - {"Dyn32", Type, 0, ""}, - {"Dyn32.Tag", Field, 0, ""}, - {"Dyn32.Val", Field, 0, ""}, - {"Dyn64", Type, 0, ""}, - {"Dyn64.Tag", Field, 0, ""}, - {"Dyn64.Val", Field, 0, ""}, - {"DynFlag", Type, 0, ""}, - {"DynFlag1", Type, 21, ""}, - {"DynTag", Type, 0, ""}, - {"DynamicVersion", Type, 24, ""}, - {"DynamicVersion.Deps", Field, 24, ""}, - {"DynamicVersion.Flags", Field, 24, ""}, - {"DynamicVersion.Index", Field, 24, ""}, - {"DynamicVersion.Name", Field, 24, ""}, - {"DynamicVersionDep", Type, 24, ""}, - {"DynamicVersionDep.Dep", Field, 24, ""}, - {"DynamicVersionDep.Flags", Field, 24, ""}, - {"DynamicVersionDep.Index", Field, 24, ""}, - {"DynamicVersionFlag", Type, 24, ""}, - {"DynamicVersionNeed", Type, 24, ""}, - {"DynamicVersionNeed.Name", Field, 24, ""}, - {"DynamicVersionNeed.Needs", Field, 24, ""}, - {"EI_ABIVERSION", Const, 0, ""}, - {"EI_CLASS", Const, 0, ""}, - {"EI_DATA", Const, 0, ""}, - {"EI_NIDENT", Const, 0, ""}, - {"EI_OSABI", Const, 0, ""}, - {"EI_PAD", Const, 0, ""}, - {"EI_VERSION", Const, 0, ""}, - {"ELFCLASS32", Const, 0, ""}, - {"ELFCLASS64", Const, 0, ""}, - {"ELFCLASSNONE", Const, 0, ""}, - {"ELFDATA2LSB", Const, 0, ""}, - {"ELFDATA2MSB", Const, 0, ""}, - {"ELFDATANONE", Const, 0, ""}, - {"ELFMAG", Const, 0, ""}, - {"ELFOSABI_86OPEN", Const, 0, ""}, - {"ELFOSABI_AIX", Const, 0, ""}, - {"ELFOSABI_ARM", Const, 0, ""}, - {"ELFOSABI_AROS", Const, 11, ""}, - {"ELFOSABI_CLOUDABI", Const, 11, ""}, - {"ELFOSABI_FENIXOS", Const, 11, ""}, - {"ELFOSABI_FREEBSD", Const, 0, ""}, - {"ELFOSABI_HPUX", Const, 0, ""}, - {"ELFOSABI_HURD", Const, 0, ""}, - {"ELFOSABI_IRIX", Const, 0, ""}, - {"ELFOSABI_LINUX", Const, 0, ""}, - {"ELFOSABI_MODESTO", Const, 0, ""}, - {"ELFOSABI_NETBSD", Const, 0, ""}, - {"ELFOSABI_NONE", Const, 0, ""}, - {"ELFOSABI_NSK", Const, 0, ""}, - {"ELFOSABI_OPENBSD", Const, 0, ""}, - {"ELFOSABI_OPENVMS", Const, 0, ""}, - {"ELFOSABI_SOLARIS", Const, 0, ""}, - {"ELFOSABI_STANDALONE", Const, 0, ""}, - {"ELFOSABI_TRU64", Const, 0, ""}, - {"EM_386", Const, 0, ""}, - {"EM_486", Const, 0, ""}, - {"EM_56800EX", Const, 11, ""}, - {"EM_68HC05", Const, 11, ""}, - {"EM_68HC08", Const, 11, ""}, - {"EM_68HC11", Const, 11, ""}, - {"EM_68HC12", Const, 0, ""}, - {"EM_68HC16", Const, 11, ""}, - {"EM_68K", Const, 0, ""}, - {"EM_78KOR", Const, 11, ""}, - {"EM_8051", Const, 11, ""}, - {"EM_860", Const, 0, ""}, - {"EM_88K", Const, 0, ""}, - {"EM_960", Const, 0, ""}, - {"EM_AARCH64", Const, 4, ""}, - {"EM_ALPHA", Const, 0, ""}, - {"EM_ALPHA_STD", Const, 0, ""}, - {"EM_ALTERA_NIOS2", Const, 11, ""}, - {"EM_AMDGPU", Const, 11, ""}, - {"EM_ARC", Const, 0, ""}, - {"EM_ARCA", Const, 11, ""}, - {"EM_ARC_COMPACT", Const, 11, ""}, - {"EM_ARC_COMPACT2", Const, 11, ""}, - {"EM_ARM", Const, 0, ""}, - {"EM_AVR", Const, 11, ""}, - {"EM_AVR32", Const, 11, ""}, - {"EM_BA1", Const, 11, ""}, - {"EM_BA2", Const, 11, ""}, - {"EM_BLACKFIN", Const, 11, ""}, - {"EM_BPF", Const, 11, ""}, - {"EM_C166", Const, 11, ""}, - {"EM_CDP", Const, 11, ""}, - {"EM_CE", Const, 11, ""}, - {"EM_CLOUDSHIELD", Const, 11, ""}, - {"EM_COGE", Const, 11, ""}, - {"EM_COLDFIRE", Const, 0, ""}, - {"EM_COOL", Const, 11, ""}, - {"EM_COREA_1ST", Const, 11, ""}, - {"EM_COREA_2ND", Const, 11, ""}, - {"EM_CR", Const, 11, ""}, - {"EM_CR16", Const, 11, ""}, - {"EM_CRAYNV2", Const, 11, ""}, - {"EM_CRIS", Const, 11, ""}, - {"EM_CRX", Const, 11, ""}, - {"EM_CSR_KALIMBA", Const, 11, ""}, - {"EM_CUDA", Const, 11, ""}, - {"EM_CYPRESS_M8C", Const, 11, ""}, - {"EM_D10V", Const, 11, ""}, - {"EM_D30V", Const, 11, ""}, - {"EM_DSP24", Const, 11, ""}, - {"EM_DSPIC30F", Const, 11, ""}, - {"EM_DXP", Const, 11, ""}, - {"EM_ECOG1", Const, 11, ""}, - {"EM_ECOG16", Const, 11, ""}, - {"EM_ECOG1X", Const, 11, ""}, - {"EM_ECOG2", Const, 11, ""}, - {"EM_ETPU", Const, 11, ""}, - {"EM_EXCESS", Const, 11, ""}, - {"EM_F2MC16", Const, 11, ""}, - {"EM_FIREPATH", Const, 11, ""}, - {"EM_FR20", Const, 0, ""}, - {"EM_FR30", Const, 11, ""}, - {"EM_FT32", Const, 11, ""}, - {"EM_FX66", Const, 11, ""}, - {"EM_H8S", Const, 0, ""}, - {"EM_H8_300", Const, 0, ""}, - {"EM_H8_300H", Const, 0, ""}, - {"EM_H8_500", Const, 0, ""}, - {"EM_HUANY", Const, 11, ""}, - {"EM_IA_64", Const, 0, ""}, - {"EM_INTEL205", Const, 11, ""}, - {"EM_INTEL206", Const, 11, ""}, - {"EM_INTEL207", Const, 11, ""}, - {"EM_INTEL208", Const, 11, ""}, - {"EM_INTEL209", Const, 11, ""}, - {"EM_IP2K", Const, 11, ""}, - {"EM_JAVELIN", Const, 11, ""}, - {"EM_K10M", Const, 11, ""}, - {"EM_KM32", Const, 11, ""}, - {"EM_KMX16", Const, 11, ""}, - {"EM_KMX32", Const, 11, ""}, - {"EM_KMX8", Const, 11, ""}, - {"EM_KVARC", Const, 11, ""}, - {"EM_L10M", Const, 11, ""}, - {"EM_LANAI", Const, 11, ""}, - {"EM_LATTICEMICO32", Const, 11, ""}, - {"EM_LOONGARCH", Const, 19, ""}, - {"EM_M16C", Const, 11, ""}, - {"EM_M32", Const, 0, ""}, - {"EM_M32C", Const, 11, ""}, - {"EM_M32R", Const, 11, ""}, - {"EM_MANIK", Const, 11, ""}, - {"EM_MAX", Const, 11, ""}, - {"EM_MAXQ30", Const, 11, ""}, - {"EM_MCHP_PIC", Const, 11, ""}, - {"EM_MCST_ELBRUS", Const, 11, ""}, - {"EM_ME16", Const, 0, ""}, - {"EM_METAG", Const, 11, ""}, - {"EM_MICROBLAZE", Const, 11, ""}, - {"EM_MIPS", Const, 0, ""}, - {"EM_MIPS_RS3_LE", Const, 0, ""}, - {"EM_MIPS_RS4_BE", Const, 0, ""}, - {"EM_MIPS_X", Const, 0, ""}, - {"EM_MMA", Const, 0, ""}, - {"EM_MMDSP_PLUS", Const, 11, ""}, - {"EM_MMIX", Const, 11, ""}, - {"EM_MN10200", Const, 11, ""}, - {"EM_MN10300", Const, 11, ""}, - {"EM_MOXIE", Const, 11, ""}, - {"EM_MSP430", Const, 11, ""}, - {"EM_NCPU", Const, 0, ""}, - {"EM_NDR1", Const, 0, ""}, - {"EM_NDS32", Const, 11, ""}, - {"EM_NONE", Const, 0, ""}, - {"EM_NORC", Const, 11, ""}, - {"EM_NS32K", Const, 11, ""}, - {"EM_OPEN8", Const, 11, ""}, - {"EM_OPENRISC", Const, 11, ""}, - {"EM_PARISC", Const, 0, ""}, - {"EM_PCP", Const, 0, ""}, - {"EM_PDP10", Const, 11, ""}, - {"EM_PDP11", Const, 11, ""}, - {"EM_PDSP", Const, 11, ""}, - {"EM_PJ", Const, 11, ""}, - {"EM_PPC", Const, 0, ""}, - {"EM_PPC64", Const, 0, ""}, - {"EM_PRISM", Const, 11, ""}, - {"EM_QDSP6", Const, 11, ""}, - {"EM_R32C", Const, 11, ""}, - {"EM_RCE", Const, 0, ""}, - {"EM_RH32", Const, 0, ""}, - {"EM_RISCV", Const, 11, ""}, - {"EM_RL78", Const, 11, ""}, - {"EM_RS08", Const, 11, ""}, - {"EM_RX", Const, 11, ""}, - {"EM_S370", Const, 0, ""}, - {"EM_S390", Const, 0, ""}, - {"EM_SCORE7", Const, 11, ""}, - {"EM_SEP", Const, 11, ""}, - {"EM_SE_C17", Const, 11, ""}, - {"EM_SE_C33", Const, 11, ""}, - {"EM_SH", Const, 0, ""}, - {"EM_SHARC", Const, 11, ""}, - {"EM_SLE9X", Const, 11, ""}, - {"EM_SNP1K", Const, 11, ""}, - {"EM_SPARC", Const, 0, ""}, - {"EM_SPARC32PLUS", Const, 0, ""}, - {"EM_SPARCV9", Const, 0, ""}, - {"EM_ST100", Const, 0, ""}, - {"EM_ST19", Const, 11, ""}, - {"EM_ST200", Const, 11, ""}, - {"EM_ST7", Const, 11, ""}, - {"EM_ST9PLUS", Const, 11, ""}, - {"EM_STARCORE", Const, 0, ""}, - {"EM_STM8", Const, 11, ""}, - {"EM_STXP7X", Const, 11, ""}, - {"EM_SVX", Const, 11, ""}, - {"EM_TILE64", Const, 11, ""}, - {"EM_TILEGX", Const, 11, ""}, - {"EM_TILEPRO", Const, 11, ""}, - {"EM_TINYJ", Const, 0, ""}, - {"EM_TI_ARP32", Const, 11, ""}, - {"EM_TI_C2000", Const, 11, ""}, - {"EM_TI_C5500", Const, 11, ""}, - {"EM_TI_C6000", Const, 11, ""}, - {"EM_TI_PRU", Const, 11, ""}, - {"EM_TMM_GPP", Const, 11, ""}, - {"EM_TPC", Const, 11, ""}, - {"EM_TRICORE", Const, 0, ""}, - {"EM_TRIMEDIA", Const, 11, ""}, - {"EM_TSK3000", Const, 11, ""}, - {"EM_UNICORE", Const, 11, ""}, - {"EM_V800", Const, 0, ""}, - {"EM_V850", Const, 11, ""}, - {"EM_VAX", Const, 11, ""}, - {"EM_VIDEOCORE", Const, 11, ""}, - {"EM_VIDEOCORE3", Const, 11, ""}, - {"EM_VIDEOCORE5", Const, 11, ""}, - {"EM_VISIUM", Const, 11, ""}, - {"EM_VPP500", Const, 0, ""}, - {"EM_X86_64", Const, 0, ""}, - {"EM_XCORE", Const, 11, ""}, - {"EM_XGATE", Const, 11, ""}, - {"EM_XIMO16", Const, 11, ""}, - {"EM_XTENSA", Const, 11, ""}, - {"EM_Z80", Const, 11, ""}, - {"EM_ZSP", Const, 11, ""}, - {"ET_CORE", Const, 0, ""}, - {"ET_DYN", Const, 0, ""}, - {"ET_EXEC", Const, 0, ""}, - {"ET_HIOS", Const, 0, ""}, - {"ET_HIPROC", Const, 0, ""}, - {"ET_LOOS", Const, 0, ""}, - {"ET_LOPROC", Const, 0, ""}, - {"ET_NONE", Const, 0, ""}, - {"ET_REL", Const, 0, ""}, - {"EV_CURRENT", Const, 0, ""}, - {"EV_NONE", Const, 0, ""}, - {"ErrNoSymbols", Var, 4, ""}, - {"File", Type, 0, ""}, - {"File.FileHeader", Field, 0, ""}, - {"File.Progs", Field, 0, ""}, - {"File.Sections", Field, 0, ""}, - {"FileHeader", Type, 0, ""}, - {"FileHeader.ABIVersion", Field, 0, ""}, - {"FileHeader.ByteOrder", Field, 0, ""}, - {"FileHeader.Class", Field, 0, ""}, - {"FileHeader.Data", Field, 0, ""}, - {"FileHeader.Entry", Field, 1, ""}, - {"FileHeader.Machine", Field, 0, ""}, - {"FileHeader.OSABI", Field, 0, ""}, - {"FileHeader.Type", Field, 0, ""}, - {"FileHeader.Version", Field, 0, ""}, - {"FormatError", Type, 0, ""}, - {"Header32", Type, 0, ""}, - {"Header32.Ehsize", Field, 0, ""}, - {"Header32.Entry", Field, 0, ""}, - {"Header32.Flags", Field, 0, ""}, - {"Header32.Ident", Field, 0, ""}, - {"Header32.Machine", Field, 0, ""}, - {"Header32.Phentsize", Field, 0, ""}, - {"Header32.Phnum", Field, 0, ""}, - {"Header32.Phoff", Field, 0, ""}, - {"Header32.Shentsize", Field, 0, ""}, - {"Header32.Shnum", Field, 0, ""}, - {"Header32.Shoff", Field, 0, ""}, - {"Header32.Shstrndx", Field, 0, ""}, - {"Header32.Type", Field, 0, ""}, - {"Header32.Version", Field, 0, ""}, - {"Header64", Type, 0, ""}, - {"Header64.Ehsize", Field, 0, ""}, - {"Header64.Entry", Field, 0, ""}, - {"Header64.Flags", Field, 0, ""}, - {"Header64.Ident", Field, 0, ""}, - {"Header64.Machine", Field, 0, ""}, - {"Header64.Phentsize", Field, 0, ""}, - {"Header64.Phnum", Field, 0, ""}, - {"Header64.Phoff", Field, 0, ""}, - {"Header64.Shentsize", Field, 0, ""}, - {"Header64.Shnum", Field, 0, ""}, - {"Header64.Shoff", Field, 0, ""}, - {"Header64.Shstrndx", Field, 0, ""}, - {"Header64.Type", Field, 0, ""}, - {"Header64.Version", Field, 0, ""}, - {"ImportedSymbol", Type, 0, ""}, - {"ImportedSymbol.Library", Field, 0, ""}, - {"ImportedSymbol.Name", Field, 0, ""}, - {"ImportedSymbol.Version", Field, 0, ""}, - {"Machine", Type, 0, ""}, - {"NT_FPREGSET", Const, 0, ""}, - {"NT_PRPSINFO", Const, 0, ""}, - {"NT_PRSTATUS", Const, 0, ""}, - {"NType", Type, 0, ""}, - {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, - {"OSABI", Type, 0, ""}, - {"Open", Func, 0, "func(name string) (*File, error)"}, - {"PF_MASKOS", Const, 0, ""}, - {"PF_MASKPROC", Const, 0, ""}, - {"PF_R", Const, 0, ""}, - {"PF_W", Const, 0, ""}, - {"PF_X", Const, 0, ""}, - {"PT_AARCH64_ARCHEXT", Const, 16, ""}, - {"PT_AARCH64_UNWIND", Const, 16, ""}, - {"PT_ARM_ARCHEXT", Const, 16, ""}, - {"PT_ARM_EXIDX", Const, 16, ""}, - {"PT_DYNAMIC", Const, 0, ""}, - {"PT_GNU_EH_FRAME", Const, 16, ""}, - {"PT_GNU_MBIND_HI", Const, 16, ""}, - {"PT_GNU_MBIND_LO", Const, 16, ""}, - {"PT_GNU_PROPERTY", Const, 16, ""}, - {"PT_GNU_RELRO", Const, 16, ""}, - {"PT_GNU_STACK", Const, 16, ""}, - {"PT_HIOS", Const, 0, ""}, - {"PT_HIPROC", Const, 0, ""}, - {"PT_INTERP", Const, 0, ""}, - {"PT_LOAD", Const, 0, ""}, - {"PT_LOOS", Const, 0, ""}, - {"PT_LOPROC", Const, 0, ""}, - {"PT_MIPS_ABIFLAGS", Const, 16, ""}, - {"PT_MIPS_OPTIONS", Const, 16, ""}, - {"PT_MIPS_REGINFO", Const, 16, ""}, - {"PT_MIPS_RTPROC", Const, 16, ""}, - {"PT_NOTE", Const, 0, ""}, - {"PT_NULL", Const, 0, ""}, - {"PT_OPENBSD_BOOTDATA", Const, 16, ""}, - {"PT_OPENBSD_NOBTCFI", Const, 23, ""}, - {"PT_OPENBSD_RANDOMIZE", Const, 16, ""}, - {"PT_OPENBSD_WXNEEDED", Const, 16, ""}, - {"PT_PAX_FLAGS", Const, 16, ""}, - {"PT_PHDR", Const, 0, ""}, - {"PT_RISCV_ATTRIBUTES", Const, 25, ""}, - {"PT_S390_PGSTE", Const, 16, ""}, - {"PT_SHLIB", Const, 0, ""}, - {"PT_SUNWSTACK", Const, 16, ""}, - {"PT_SUNW_EH_FRAME", Const, 16, ""}, - {"PT_TLS", Const, 0, ""}, - {"Prog", Type, 0, ""}, - {"Prog.ProgHeader", Field, 0, ""}, - {"Prog.ReaderAt", Field, 0, ""}, - {"Prog32", Type, 0, ""}, - {"Prog32.Align", Field, 0, ""}, - {"Prog32.Filesz", Field, 0, ""}, - {"Prog32.Flags", Field, 0, ""}, - {"Prog32.Memsz", Field, 0, ""}, - {"Prog32.Off", Field, 0, ""}, - {"Prog32.Paddr", Field, 0, ""}, - {"Prog32.Type", Field, 0, ""}, - {"Prog32.Vaddr", Field, 0, ""}, - {"Prog64", Type, 0, ""}, - {"Prog64.Align", Field, 0, ""}, - {"Prog64.Filesz", Field, 0, ""}, - {"Prog64.Flags", Field, 0, ""}, - {"Prog64.Memsz", Field, 0, ""}, - {"Prog64.Off", Field, 0, ""}, - {"Prog64.Paddr", Field, 0, ""}, - {"Prog64.Type", Field, 0, ""}, - {"Prog64.Vaddr", Field, 0, ""}, - {"ProgFlag", Type, 0, ""}, - {"ProgHeader", Type, 0, ""}, - {"ProgHeader.Align", Field, 0, ""}, - {"ProgHeader.Filesz", Field, 0, ""}, - {"ProgHeader.Flags", Field, 0, ""}, - {"ProgHeader.Memsz", Field, 0, ""}, - {"ProgHeader.Off", Field, 0, ""}, - {"ProgHeader.Paddr", Field, 0, ""}, - {"ProgHeader.Type", Field, 0, ""}, - {"ProgHeader.Vaddr", Field, 0, ""}, - {"ProgType", Type, 0, ""}, - {"R_386", Type, 0, ""}, - {"R_386_16", Const, 10, ""}, - {"R_386_32", Const, 0, ""}, - {"R_386_32PLT", Const, 10, ""}, - {"R_386_8", Const, 10, ""}, - {"R_386_COPY", Const, 0, ""}, - {"R_386_GLOB_DAT", Const, 0, ""}, - {"R_386_GOT32", Const, 0, ""}, - {"R_386_GOT32X", Const, 10, ""}, - {"R_386_GOTOFF", Const, 0, ""}, - {"R_386_GOTPC", Const, 0, ""}, - {"R_386_IRELATIVE", Const, 10, ""}, - {"R_386_JMP_SLOT", Const, 0, ""}, - {"R_386_NONE", Const, 0, ""}, - {"R_386_PC16", Const, 10, ""}, - {"R_386_PC32", Const, 0, ""}, - {"R_386_PC8", Const, 10, ""}, - {"R_386_PLT32", Const, 0, ""}, - {"R_386_RELATIVE", Const, 0, ""}, - {"R_386_SIZE32", Const, 10, ""}, - {"R_386_TLS_DESC", Const, 10, ""}, - {"R_386_TLS_DESC_CALL", Const, 10, ""}, - {"R_386_TLS_DTPMOD32", Const, 0, ""}, - {"R_386_TLS_DTPOFF32", Const, 0, ""}, - {"R_386_TLS_GD", Const, 0, ""}, - {"R_386_TLS_GD_32", Const, 0, ""}, - {"R_386_TLS_GD_CALL", Const, 0, ""}, - {"R_386_TLS_GD_POP", Const, 0, ""}, - {"R_386_TLS_GD_PUSH", Const, 0, ""}, - {"R_386_TLS_GOTDESC", Const, 10, ""}, - {"R_386_TLS_GOTIE", Const, 0, ""}, - {"R_386_TLS_IE", Const, 0, ""}, - {"R_386_TLS_IE_32", Const, 0, ""}, - {"R_386_TLS_LDM", Const, 0, ""}, - {"R_386_TLS_LDM_32", Const, 0, ""}, - {"R_386_TLS_LDM_CALL", Const, 0, ""}, - {"R_386_TLS_LDM_POP", Const, 0, ""}, - {"R_386_TLS_LDM_PUSH", Const, 0, ""}, - {"R_386_TLS_LDO_32", Const, 0, ""}, - {"R_386_TLS_LE", Const, 0, ""}, - {"R_386_TLS_LE_32", Const, 0, ""}, - {"R_386_TLS_TPOFF", Const, 0, ""}, - {"R_386_TLS_TPOFF32", Const, 0, ""}, - {"R_390", Type, 7, ""}, - {"R_390_12", Const, 7, ""}, - {"R_390_16", Const, 7, ""}, - {"R_390_20", Const, 7, ""}, - {"R_390_32", Const, 7, ""}, - {"R_390_64", Const, 7, ""}, - {"R_390_8", Const, 7, ""}, - {"R_390_COPY", Const, 7, ""}, - {"R_390_GLOB_DAT", Const, 7, ""}, - {"R_390_GOT12", Const, 7, ""}, - {"R_390_GOT16", Const, 7, ""}, - {"R_390_GOT20", Const, 7, ""}, - {"R_390_GOT32", Const, 7, ""}, - {"R_390_GOT64", Const, 7, ""}, - {"R_390_GOTENT", Const, 7, ""}, - {"R_390_GOTOFF", Const, 7, ""}, - {"R_390_GOTOFF16", Const, 7, ""}, - {"R_390_GOTOFF64", Const, 7, ""}, - {"R_390_GOTPC", Const, 7, ""}, - {"R_390_GOTPCDBL", Const, 7, ""}, - {"R_390_GOTPLT12", Const, 7, ""}, - {"R_390_GOTPLT16", Const, 7, ""}, - {"R_390_GOTPLT20", Const, 7, ""}, - {"R_390_GOTPLT32", Const, 7, ""}, - {"R_390_GOTPLT64", Const, 7, ""}, - {"R_390_GOTPLTENT", Const, 7, ""}, - {"R_390_GOTPLTOFF16", Const, 7, ""}, - {"R_390_GOTPLTOFF32", Const, 7, ""}, - {"R_390_GOTPLTOFF64", Const, 7, ""}, - {"R_390_JMP_SLOT", Const, 7, ""}, - {"R_390_NONE", Const, 7, ""}, - {"R_390_PC16", Const, 7, ""}, - {"R_390_PC16DBL", Const, 7, ""}, - {"R_390_PC32", Const, 7, ""}, - {"R_390_PC32DBL", Const, 7, ""}, - {"R_390_PC64", Const, 7, ""}, - {"R_390_PLT16DBL", Const, 7, ""}, - {"R_390_PLT32", Const, 7, ""}, - {"R_390_PLT32DBL", Const, 7, ""}, - {"R_390_PLT64", Const, 7, ""}, - {"R_390_RELATIVE", Const, 7, ""}, - {"R_390_TLS_DTPMOD", Const, 7, ""}, - {"R_390_TLS_DTPOFF", Const, 7, ""}, - {"R_390_TLS_GD32", Const, 7, ""}, - {"R_390_TLS_GD64", Const, 7, ""}, - {"R_390_TLS_GDCALL", Const, 7, ""}, - {"R_390_TLS_GOTIE12", Const, 7, ""}, - {"R_390_TLS_GOTIE20", Const, 7, ""}, - {"R_390_TLS_GOTIE32", Const, 7, ""}, - {"R_390_TLS_GOTIE64", Const, 7, ""}, - {"R_390_TLS_IE32", Const, 7, ""}, - {"R_390_TLS_IE64", Const, 7, ""}, - {"R_390_TLS_IEENT", Const, 7, ""}, - {"R_390_TLS_LDCALL", Const, 7, ""}, - {"R_390_TLS_LDM32", Const, 7, ""}, - {"R_390_TLS_LDM64", Const, 7, ""}, - {"R_390_TLS_LDO32", Const, 7, ""}, - {"R_390_TLS_LDO64", Const, 7, ""}, - {"R_390_TLS_LE32", Const, 7, ""}, - {"R_390_TLS_LE64", Const, 7, ""}, - {"R_390_TLS_LOAD", Const, 7, ""}, - {"R_390_TLS_TPOFF", Const, 7, ""}, - {"R_AARCH64", Type, 4, ""}, - {"R_AARCH64_ABS16", Const, 4, ""}, - {"R_AARCH64_ABS32", Const, 4, ""}, - {"R_AARCH64_ABS64", Const, 4, ""}, - {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_ADR_GOT_PAGE", Const, 4, ""}, - {"R_AARCH64_ADR_PREL_LO21", Const, 4, ""}, - {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4, ""}, - {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4, ""}, - {"R_AARCH64_CALL26", Const, 4, ""}, - {"R_AARCH64_CONDBR19", Const, 4, ""}, - {"R_AARCH64_COPY", Const, 4, ""}, - {"R_AARCH64_GLOB_DAT", Const, 4, ""}, - {"R_AARCH64_GOT_LD_PREL19", Const, 4, ""}, - {"R_AARCH64_IRELATIVE", Const, 4, ""}, - {"R_AARCH64_JUMP26", Const, 4, ""}, - {"R_AARCH64_JUMP_SLOT", Const, 4, ""}, - {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10, ""}, - {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10, ""}, - {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_LD_PREL_LO19", Const, 4, ""}, - {"R_AARCH64_MOVW_SABS_G0", Const, 4, ""}, - {"R_AARCH64_MOVW_SABS_G1", Const, 4, ""}, - {"R_AARCH64_MOVW_SABS_G2", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G0", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G1", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G2", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4, ""}, - {"R_AARCH64_MOVW_UABS_G3", Const, 4, ""}, - {"R_AARCH64_NONE", Const, 4, ""}, - {"R_AARCH64_NULL", Const, 4, ""}, - {"R_AARCH64_P32_ABS16", Const, 4, ""}, - {"R_AARCH64_P32_ABS32", Const, 4, ""}, - {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4, ""}, - {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4, ""}, - {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4, ""}, - {"R_AARCH64_P32_CALL26", Const, 4, ""}, - {"R_AARCH64_P32_CONDBR19", Const, 4, ""}, - {"R_AARCH64_P32_COPY", Const, 4, ""}, - {"R_AARCH64_P32_GLOB_DAT", Const, 4, ""}, - {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4, ""}, - {"R_AARCH64_P32_IRELATIVE", Const, 4, ""}, - {"R_AARCH64_P32_JUMP26", Const, 4, ""}, - {"R_AARCH64_P32_JUMP_SLOT", Const, 4, ""}, - {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_LD_PREL_LO19", Const, 4, ""}, - {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4, ""}, - {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4, ""}, - {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4, ""}, - {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4, ""}, - {"R_AARCH64_P32_PREL16", Const, 4, ""}, - {"R_AARCH64_P32_PREL32", Const, 4, ""}, - {"R_AARCH64_P32_RELATIVE", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_CALL", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4, ""}, - {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4, ""}, - {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""}, - {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4, ""}, - {"R_AARCH64_P32_TLS_DTPMOD", Const, 4, ""}, - {"R_AARCH64_P32_TLS_DTPREL", Const, 4, ""}, - {"R_AARCH64_P32_TLS_TPREL", Const, 4, ""}, - {"R_AARCH64_P32_TSTBR14", Const, 4, ""}, - {"R_AARCH64_PREL16", Const, 4, ""}, - {"R_AARCH64_PREL32", Const, 4, ""}, - {"R_AARCH64_PREL64", Const, 4, ""}, - {"R_AARCH64_RELATIVE", Const, 4, ""}, - {"R_AARCH64_TLSDESC", Const, 4, ""}, - {"R_AARCH64_TLSDESC_ADD", Const, 4, ""}, - {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4, ""}, - {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4, ""}, - {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4, ""}, - {"R_AARCH64_TLSDESC_CALL", Const, 4, ""}, - {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4, ""}, - {"R_AARCH64_TLSDESC_LDR", Const, 4, ""}, - {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4, ""}, - {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4, ""}, - {"R_AARCH64_TLSDESC_OFF_G1", Const, 4, ""}, - {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4, ""}, - {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4, ""}, - {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10, ""}, - {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10, ""}, - {"R_AARCH64_TLSGD_MOVW_G1", Const, 10, ""}, - {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4, ""}, - {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4, ""}, - {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4, ""}, - {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4, ""}, - {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4, ""}, - {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10, ""}, - {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10, ""}, - {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10, ""}, - {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10, ""}, - {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4, ""}, - {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4, ""}, - {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4, ""}, - {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10, ""}, - {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10, ""}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4, ""}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4, ""}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4, ""}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4, ""}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4, ""}, - {"R_AARCH64_TLS_DTPMOD64", Const, 4, ""}, - {"R_AARCH64_TLS_DTPREL64", Const, 4, ""}, - {"R_AARCH64_TLS_TPREL64", Const, 4, ""}, - {"R_AARCH64_TSTBR14", Const, 4, ""}, - {"R_ALPHA", Type, 0, ""}, - {"R_ALPHA_BRADDR", Const, 0, ""}, - {"R_ALPHA_COPY", Const, 0, ""}, - {"R_ALPHA_GLOB_DAT", Const, 0, ""}, - {"R_ALPHA_GPDISP", Const, 0, ""}, - {"R_ALPHA_GPREL32", Const, 0, ""}, - {"R_ALPHA_GPRELHIGH", Const, 0, ""}, - {"R_ALPHA_GPRELLOW", Const, 0, ""}, - {"R_ALPHA_GPVALUE", Const, 0, ""}, - {"R_ALPHA_HINT", Const, 0, ""}, - {"R_ALPHA_IMMED_BR_HI32", Const, 0, ""}, - {"R_ALPHA_IMMED_GP_16", Const, 0, ""}, - {"R_ALPHA_IMMED_GP_HI32", Const, 0, ""}, - {"R_ALPHA_IMMED_LO32", Const, 0, ""}, - {"R_ALPHA_IMMED_SCN_HI32", Const, 0, ""}, - {"R_ALPHA_JMP_SLOT", Const, 0, ""}, - {"R_ALPHA_LITERAL", Const, 0, ""}, - {"R_ALPHA_LITUSE", Const, 0, ""}, - {"R_ALPHA_NONE", Const, 0, ""}, - {"R_ALPHA_OP_PRSHIFT", Const, 0, ""}, - {"R_ALPHA_OP_PSUB", Const, 0, ""}, - {"R_ALPHA_OP_PUSH", Const, 0, ""}, - {"R_ALPHA_OP_STORE", Const, 0, ""}, - {"R_ALPHA_REFLONG", Const, 0, ""}, - {"R_ALPHA_REFQUAD", Const, 0, ""}, - {"R_ALPHA_RELATIVE", Const, 0, ""}, - {"R_ALPHA_SREL16", Const, 0, ""}, - {"R_ALPHA_SREL32", Const, 0, ""}, - {"R_ALPHA_SREL64", Const, 0, ""}, - {"R_ARM", Type, 0, ""}, - {"R_ARM_ABS12", Const, 0, ""}, - {"R_ARM_ABS16", Const, 0, ""}, - {"R_ARM_ABS32", Const, 0, ""}, - {"R_ARM_ABS32_NOI", Const, 10, ""}, - {"R_ARM_ABS8", Const, 0, ""}, - {"R_ARM_ALU_PCREL_15_8", Const, 10, ""}, - {"R_ARM_ALU_PCREL_23_15", Const, 10, ""}, - {"R_ARM_ALU_PCREL_7_0", Const, 10, ""}, - {"R_ARM_ALU_PC_G0", Const, 10, ""}, - {"R_ARM_ALU_PC_G0_NC", Const, 10, ""}, - {"R_ARM_ALU_PC_G1", Const, 10, ""}, - {"R_ARM_ALU_PC_G1_NC", Const, 10, ""}, - {"R_ARM_ALU_PC_G2", Const, 10, ""}, - {"R_ARM_ALU_SBREL_19_12_NC", Const, 10, ""}, - {"R_ARM_ALU_SBREL_27_20_CK", Const, 10, ""}, - {"R_ARM_ALU_SB_G0", Const, 10, ""}, - {"R_ARM_ALU_SB_G0_NC", Const, 10, ""}, - {"R_ARM_ALU_SB_G1", Const, 10, ""}, - {"R_ARM_ALU_SB_G1_NC", Const, 10, ""}, - {"R_ARM_ALU_SB_G2", Const, 10, ""}, - {"R_ARM_AMP_VCALL9", Const, 0, ""}, - {"R_ARM_BASE_ABS", Const, 10, ""}, - {"R_ARM_CALL", Const, 10, ""}, - {"R_ARM_COPY", Const, 0, ""}, - {"R_ARM_GLOB_DAT", Const, 0, ""}, - {"R_ARM_GNU_VTENTRY", Const, 0, ""}, - {"R_ARM_GNU_VTINHERIT", Const, 0, ""}, - {"R_ARM_GOT32", Const, 0, ""}, - {"R_ARM_GOTOFF", Const, 0, ""}, - {"R_ARM_GOTOFF12", Const, 10, ""}, - {"R_ARM_GOTPC", Const, 0, ""}, - {"R_ARM_GOTRELAX", Const, 10, ""}, - {"R_ARM_GOT_ABS", Const, 10, ""}, - {"R_ARM_GOT_BREL12", Const, 10, ""}, - {"R_ARM_GOT_PREL", Const, 10, ""}, - {"R_ARM_IRELATIVE", Const, 10, ""}, - {"R_ARM_JUMP24", Const, 10, ""}, - {"R_ARM_JUMP_SLOT", Const, 0, ""}, - {"R_ARM_LDC_PC_G0", Const, 10, ""}, - {"R_ARM_LDC_PC_G1", Const, 10, ""}, - {"R_ARM_LDC_PC_G2", Const, 10, ""}, - {"R_ARM_LDC_SB_G0", Const, 10, ""}, - {"R_ARM_LDC_SB_G1", Const, 10, ""}, - {"R_ARM_LDC_SB_G2", Const, 10, ""}, - {"R_ARM_LDRS_PC_G0", Const, 10, ""}, - {"R_ARM_LDRS_PC_G1", Const, 10, ""}, - {"R_ARM_LDRS_PC_G2", Const, 10, ""}, - {"R_ARM_LDRS_SB_G0", Const, 10, ""}, - {"R_ARM_LDRS_SB_G1", Const, 10, ""}, - {"R_ARM_LDRS_SB_G2", Const, 10, ""}, - {"R_ARM_LDR_PC_G1", Const, 10, ""}, - {"R_ARM_LDR_PC_G2", Const, 10, ""}, - {"R_ARM_LDR_SBREL_11_10_NC", Const, 10, ""}, - {"R_ARM_LDR_SB_G0", Const, 10, ""}, - {"R_ARM_LDR_SB_G1", Const, 10, ""}, - {"R_ARM_LDR_SB_G2", Const, 10, ""}, - {"R_ARM_ME_TOO", Const, 10, ""}, - {"R_ARM_MOVT_ABS", Const, 10, ""}, - {"R_ARM_MOVT_BREL", Const, 10, ""}, - {"R_ARM_MOVT_PREL", Const, 10, ""}, - {"R_ARM_MOVW_ABS_NC", Const, 10, ""}, - {"R_ARM_MOVW_BREL", Const, 10, ""}, - {"R_ARM_MOVW_BREL_NC", Const, 10, ""}, - {"R_ARM_MOVW_PREL_NC", Const, 10, ""}, - {"R_ARM_NONE", Const, 0, ""}, - {"R_ARM_PC13", Const, 0, ""}, - {"R_ARM_PC24", Const, 0, ""}, - {"R_ARM_PLT32", Const, 0, ""}, - {"R_ARM_PLT32_ABS", Const, 10, ""}, - {"R_ARM_PREL31", Const, 10, ""}, - {"R_ARM_PRIVATE_0", Const, 10, ""}, - {"R_ARM_PRIVATE_1", Const, 10, ""}, - {"R_ARM_PRIVATE_10", Const, 10, ""}, - {"R_ARM_PRIVATE_11", Const, 10, ""}, - {"R_ARM_PRIVATE_12", Const, 10, ""}, - {"R_ARM_PRIVATE_13", Const, 10, ""}, - {"R_ARM_PRIVATE_14", Const, 10, ""}, - {"R_ARM_PRIVATE_15", Const, 10, ""}, - {"R_ARM_PRIVATE_2", Const, 10, ""}, - {"R_ARM_PRIVATE_3", Const, 10, ""}, - {"R_ARM_PRIVATE_4", Const, 10, ""}, - {"R_ARM_PRIVATE_5", Const, 10, ""}, - {"R_ARM_PRIVATE_6", Const, 10, ""}, - {"R_ARM_PRIVATE_7", Const, 10, ""}, - {"R_ARM_PRIVATE_8", Const, 10, ""}, - {"R_ARM_PRIVATE_9", Const, 10, ""}, - {"R_ARM_RABS32", Const, 0, ""}, - {"R_ARM_RBASE", Const, 0, ""}, - {"R_ARM_REL32", Const, 0, ""}, - {"R_ARM_REL32_NOI", Const, 10, ""}, - {"R_ARM_RELATIVE", Const, 0, ""}, - {"R_ARM_RPC24", Const, 0, ""}, - {"R_ARM_RREL32", Const, 0, ""}, - {"R_ARM_RSBREL32", Const, 0, ""}, - {"R_ARM_RXPC25", Const, 10, ""}, - {"R_ARM_SBREL31", Const, 10, ""}, - {"R_ARM_SBREL32", Const, 0, ""}, - {"R_ARM_SWI24", Const, 0, ""}, - {"R_ARM_TARGET1", Const, 10, ""}, - {"R_ARM_TARGET2", Const, 10, ""}, - {"R_ARM_THM_ABS5", Const, 0, ""}, - {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10, ""}, - {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10, ""}, - {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10, ""}, - {"R_ARM_THM_ALU_ABS_G3", Const, 10, ""}, - {"R_ARM_THM_ALU_PREL_11_0", Const, 10, ""}, - {"R_ARM_THM_GOT_BREL12", Const, 10, ""}, - {"R_ARM_THM_JUMP11", Const, 10, ""}, - {"R_ARM_THM_JUMP19", Const, 10, ""}, - {"R_ARM_THM_JUMP24", Const, 10, ""}, - {"R_ARM_THM_JUMP6", Const, 10, ""}, - {"R_ARM_THM_JUMP8", Const, 10, ""}, - {"R_ARM_THM_MOVT_ABS", Const, 10, ""}, - {"R_ARM_THM_MOVT_BREL", Const, 10, ""}, - {"R_ARM_THM_MOVT_PREL", Const, 10, ""}, - {"R_ARM_THM_MOVW_ABS_NC", Const, 10, ""}, - {"R_ARM_THM_MOVW_BREL", Const, 10, ""}, - {"R_ARM_THM_MOVW_BREL_NC", Const, 10, ""}, - {"R_ARM_THM_MOVW_PREL_NC", Const, 10, ""}, - {"R_ARM_THM_PC12", Const, 10, ""}, - {"R_ARM_THM_PC22", Const, 0, ""}, - {"R_ARM_THM_PC8", Const, 0, ""}, - {"R_ARM_THM_RPC22", Const, 0, ""}, - {"R_ARM_THM_SWI8", Const, 0, ""}, - {"R_ARM_THM_TLS_CALL", Const, 10, ""}, - {"R_ARM_THM_TLS_DESCSEQ16", Const, 10, ""}, - {"R_ARM_THM_TLS_DESCSEQ32", Const, 10, ""}, - {"R_ARM_THM_XPC22", Const, 0, ""}, - {"R_ARM_TLS_CALL", Const, 10, ""}, - {"R_ARM_TLS_DESCSEQ", Const, 10, ""}, - {"R_ARM_TLS_DTPMOD32", Const, 10, ""}, - {"R_ARM_TLS_DTPOFF32", Const, 10, ""}, - {"R_ARM_TLS_GD32", Const, 10, ""}, - {"R_ARM_TLS_GOTDESC", Const, 10, ""}, - {"R_ARM_TLS_IE12GP", Const, 10, ""}, - {"R_ARM_TLS_IE32", Const, 10, ""}, - {"R_ARM_TLS_LDM32", Const, 10, ""}, - {"R_ARM_TLS_LDO12", Const, 10, ""}, - {"R_ARM_TLS_LDO32", Const, 10, ""}, - {"R_ARM_TLS_LE12", Const, 10, ""}, - {"R_ARM_TLS_LE32", Const, 10, ""}, - {"R_ARM_TLS_TPOFF32", Const, 10, ""}, - {"R_ARM_V4BX", Const, 10, ""}, - {"R_ARM_XPC25", Const, 0, ""}, - {"R_INFO", Func, 0, "func(sym uint32, typ uint32) uint64"}, - {"R_INFO32", Func, 0, "func(sym uint32, typ uint32) uint32"}, - {"R_LARCH", Type, 19, ""}, - {"R_LARCH_32", Const, 19, ""}, - {"R_LARCH_32_PCREL", Const, 20, ""}, - {"R_LARCH_64", Const, 19, ""}, - {"R_LARCH_64_PCREL", Const, 22, ""}, - {"R_LARCH_ABS64_HI12", Const, 20, ""}, - {"R_LARCH_ABS64_LO20", Const, 20, ""}, - {"R_LARCH_ABS_HI20", Const, 20, ""}, - {"R_LARCH_ABS_LO12", Const, 20, ""}, - {"R_LARCH_ADD16", Const, 19, ""}, - {"R_LARCH_ADD24", Const, 19, ""}, - {"R_LARCH_ADD32", Const, 19, ""}, - {"R_LARCH_ADD6", Const, 22, ""}, - {"R_LARCH_ADD64", Const, 19, ""}, - {"R_LARCH_ADD8", Const, 19, ""}, - {"R_LARCH_ADD_ULEB128", Const, 22, ""}, - {"R_LARCH_ALIGN", Const, 22, ""}, - {"R_LARCH_B16", Const, 20, ""}, - {"R_LARCH_B21", Const, 20, ""}, - {"R_LARCH_B26", Const, 20, ""}, - {"R_LARCH_CFA", Const, 22, ""}, - {"R_LARCH_COPY", Const, 19, ""}, - {"R_LARCH_DELETE", Const, 22, ""}, - {"R_LARCH_GNU_VTENTRY", Const, 20, ""}, - {"R_LARCH_GNU_VTINHERIT", Const, 20, ""}, - {"R_LARCH_GOT64_HI12", Const, 20, ""}, - {"R_LARCH_GOT64_LO20", Const, 20, ""}, - {"R_LARCH_GOT64_PC_HI12", Const, 20, ""}, - {"R_LARCH_GOT64_PC_LO20", Const, 20, ""}, - {"R_LARCH_GOT_HI20", Const, 20, ""}, - {"R_LARCH_GOT_LO12", Const, 20, ""}, - {"R_LARCH_GOT_PC_HI20", Const, 20, ""}, - {"R_LARCH_GOT_PC_LO12", Const, 20, ""}, - {"R_LARCH_IRELATIVE", Const, 19, ""}, - {"R_LARCH_JUMP_SLOT", Const, 19, ""}, - {"R_LARCH_MARK_LA", Const, 19, ""}, - {"R_LARCH_MARK_PCREL", Const, 19, ""}, - {"R_LARCH_NONE", Const, 19, ""}, - {"R_LARCH_PCALA64_HI12", Const, 20, ""}, - {"R_LARCH_PCALA64_LO20", Const, 20, ""}, - {"R_LARCH_PCALA_HI20", Const, 20, ""}, - {"R_LARCH_PCALA_LO12", Const, 20, ""}, - {"R_LARCH_PCREL20_S2", Const, 22, ""}, - {"R_LARCH_RELATIVE", Const, 19, ""}, - {"R_LARCH_RELAX", Const, 20, ""}, - {"R_LARCH_SOP_ADD", Const, 19, ""}, - {"R_LARCH_SOP_AND", Const, 19, ""}, - {"R_LARCH_SOP_ASSERT", Const, 19, ""}, - {"R_LARCH_SOP_IF_ELSE", Const, 19, ""}, - {"R_LARCH_SOP_NOT", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_10_12", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_10_16", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_10_5", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_S_5_20", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_U", Const, 19, ""}, - {"R_LARCH_SOP_POP_32_U_10_12", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_DUP", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_GPREL", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_PCREL", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19, ""}, - {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19, ""}, - {"R_LARCH_SOP_SL", Const, 19, ""}, - {"R_LARCH_SOP_SR", Const, 19, ""}, - {"R_LARCH_SOP_SUB", Const, 19, ""}, - {"R_LARCH_SUB16", Const, 19, ""}, - {"R_LARCH_SUB24", Const, 19, ""}, - {"R_LARCH_SUB32", Const, 19, ""}, - {"R_LARCH_SUB6", Const, 22, ""}, - {"R_LARCH_SUB64", Const, 19, ""}, - {"R_LARCH_SUB8", Const, 19, ""}, - {"R_LARCH_SUB_ULEB128", Const, 22, ""}, - {"R_LARCH_TLS_DTPMOD32", Const, 19, ""}, - {"R_LARCH_TLS_DTPMOD64", Const, 19, ""}, - {"R_LARCH_TLS_DTPREL32", Const, 19, ""}, - {"R_LARCH_TLS_DTPREL64", Const, 19, ""}, - {"R_LARCH_TLS_GD_HI20", Const, 20, ""}, - {"R_LARCH_TLS_GD_PC_HI20", Const, 20, ""}, - {"R_LARCH_TLS_IE64_HI12", Const, 20, ""}, - {"R_LARCH_TLS_IE64_LO20", Const, 20, ""}, - {"R_LARCH_TLS_IE64_PC_HI12", Const, 20, ""}, - {"R_LARCH_TLS_IE64_PC_LO20", Const, 20, ""}, - {"R_LARCH_TLS_IE_HI20", Const, 20, ""}, - {"R_LARCH_TLS_IE_LO12", Const, 20, ""}, - {"R_LARCH_TLS_IE_PC_HI20", Const, 20, ""}, - {"R_LARCH_TLS_IE_PC_LO12", Const, 20, ""}, - {"R_LARCH_TLS_LD_HI20", Const, 20, ""}, - {"R_LARCH_TLS_LD_PC_HI20", Const, 20, ""}, - {"R_LARCH_TLS_LE64_HI12", Const, 20, ""}, - {"R_LARCH_TLS_LE64_LO20", Const, 20, ""}, - {"R_LARCH_TLS_LE_HI20", Const, 20, ""}, - {"R_LARCH_TLS_LE_LO12", Const, 20, ""}, - {"R_LARCH_TLS_TPREL32", Const, 19, ""}, - {"R_LARCH_TLS_TPREL64", Const, 19, ""}, - {"R_MIPS", Type, 6, ""}, - {"R_MIPS_16", Const, 6, ""}, - {"R_MIPS_26", Const, 6, ""}, - {"R_MIPS_32", Const, 6, ""}, - {"R_MIPS_64", Const, 6, ""}, - {"R_MIPS_ADD_IMMEDIATE", Const, 6, ""}, - {"R_MIPS_CALL16", Const, 6, ""}, - {"R_MIPS_CALL_HI16", Const, 6, ""}, - {"R_MIPS_CALL_LO16", Const, 6, ""}, - {"R_MIPS_DELETE", Const, 6, ""}, - {"R_MIPS_GOT16", Const, 6, ""}, - {"R_MIPS_GOT_DISP", Const, 6, ""}, - {"R_MIPS_GOT_HI16", Const, 6, ""}, - {"R_MIPS_GOT_LO16", Const, 6, ""}, - {"R_MIPS_GOT_OFST", Const, 6, ""}, - {"R_MIPS_GOT_PAGE", Const, 6, ""}, - {"R_MIPS_GPREL16", Const, 6, ""}, - {"R_MIPS_GPREL32", Const, 6, ""}, - {"R_MIPS_HI16", Const, 6, ""}, - {"R_MIPS_HIGHER", Const, 6, ""}, - {"R_MIPS_HIGHEST", Const, 6, ""}, - {"R_MIPS_INSERT_A", Const, 6, ""}, - {"R_MIPS_INSERT_B", Const, 6, ""}, - {"R_MIPS_JALR", Const, 6, ""}, - {"R_MIPS_LITERAL", Const, 6, ""}, - {"R_MIPS_LO16", Const, 6, ""}, - {"R_MIPS_NONE", Const, 6, ""}, - {"R_MIPS_PC16", Const, 6, ""}, - {"R_MIPS_PC32", Const, 22, ""}, - {"R_MIPS_PJUMP", Const, 6, ""}, - {"R_MIPS_REL16", Const, 6, ""}, - {"R_MIPS_REL32", Const, 6, ""}, - {"R_MIPS_RELGOT", Const, 6, ""}, - {"R_MIPS_SCN_DISP", Const, 6, ""}, - {"R_MIPS_SHIFT5", Const, 6, ""}, - {"R_MIPS_SHIFT6", Const, 6, ""}, - {"R_MIPS_SUB", Const, 6, ""}, - {"R_MIPS_TLS_DTPMOD32", Const, 6, ""}, - {"R_MIPS_TLS_DTPMOD64", Const, 6, ""}, - {"R_MIPS_TLS_DTPREL32", Const, 6, ""}, - {"R_MIPS_TLS_DTPREL64", Const, 6, ""}, - {"R_MIPS_TLS_DTPREL_HI16", Const, 6, ""}, - {"R_MIPS_TLS_DTPREL_LO16", Const, 6, ""}, - {"R_MIPS_TLS_GD", Const, 6, ""}, - {"R_MIPS_TLS_GOTTPREL", Const, 6, ""}, - {"R_MIPS_TLS_LDM", Const, 6, ""}, - {"R_MIPS_TLS_TPREL32", Const, 6, ""}, - {"R_MIPS_TLS_TPREL64", Const, 6, ""}, - {"R_MIPS_TLS_TPREL_HI16", Const, 6, ""}, - {"R_MIPS_TLS_TPREL_LO16", Const, 6, ""}, - {"R_PPC", Type, 0, ""}, - {"R_PPC64", Type, 5, ""}, - {"R_PPC64_ADDR14", Const, 5, ""}, - {"R_PPC64_ADDR14_BRNTAKEN", Const, 5, ""}, - {"R_PPC64_ADDR14_BRTAKEN", Const, 5, ""}, - {"R_PPC64_ADDR16", Const, 5, ""}, - {"R_PPC64_ADDR16_DS", Const, 5, ""}, - {"R_PPC64_ADDR16_HA", Const, 5, ""}, - {"R_PPC64_ADDR16_HI", Const, 5, ""}, - {"R_PPC64_ADDR16_HIGH", Const, 10, ""}, - {"R_PPC64_ADDR16_HIGHA", Const, 10, ""}, - {"R_PPC64_ADDR16_HIGHER", Const, 5, ""}, - {"R_PPC64_ADDR16_HIGHER34", Const, 20, ""}, - {"R_PPC64_ADDR16_HIGHERA", Const, 5, ""}, - {"R_PPC64_ADDR16_HIGHERA34", Const, 20, ""}, - {"R_PPC64_ADDR16_HIGHEST", Const, 5, ""}, - {"R_PPC64_ADDR16_HIGHEST34", Const, 20, ""}, - {"R_PPC64_ADDR16_HIGHESTA", Const, 5, ""}, - {"R_PPC64_ADDR16_HIGHESTA34", Const, 20, ""}, - {"R_PPC64_ADDR16_LO", Const, 5, ""}, - {"R_PPC64_ADDR16_LO_DS", Const, 5, ""}, - {"R_PPC64_ADDR24", Const, 5, ""}, - {"R_PPC64_ADDR32", Const, 5, ""}, - {"R_PPC64_ADDR64", Const, 5, ""}, - {"R_PPC64_ADDR64_LOCAL", Const, 10, ""}, - {"R_PPC64_COPY", Const, 20, ""}, - {"R_PPC64_D28", Const, 20, ""}, - {"R_PPC64_D34", Const, 20, ""}, - {"R_PPC64_D34_HA30", Const, 20, ""}, - {"R_PPC64_D34_HI30", Const, 20, ""}, - {"R_PPC64_D34_LO", Const, 20, ""}, - {"R_PPC64_DTPMOD64", Const, 5, ""}, - {"R_PPC64_DTPREL16", Const, 5, ""}, - {"R_PPC64_DTPREL16_DS", Const, 5, ""}, - {"R_PPC64_DTPREL16_HA", Const, 5, ""}, - {"R_PPC64_DTPREL16_HI", Const, 5, ""}, - {"R_PPC64_DTPREL16_HIGH", Const, 10, ""}, - {"R_PPC64_DTPREL16_HIGHA", Const, 10, ""}, - {"R_PPC64_DTPREL16_HIGHER", Const, 5, ""}, - {"R_PPC64_DTPREL16_HIGHERA", Const, 5, ""}, - {"R_PPC64_DTPREL16_HIGHEST", Const, 5, ""}, - {"R_PPC64_DTPREL16_HIGHESTA", Const, 5, ""}, - {"R_PPC64_DTPREL16_LO", Const, 5, ""}, - {"R_PPC64_DTPREL16_LO_DS", Const, 5, ""}, - {"R_PPC64_DTPREL34", Const, 20, ""}, - {"R_PPC64_DTPREL64", Const, 5, ""}, - {"R_PPC64_ENTRY", Const, 10, ""}, - {"R_PPC64_GLOB_DAT", Const, 20, ""}, - {"R_PPC64_GNU_VTENTRY", Const, 20, ""}, - {"R_PPC64_GNU_VTINHERIT", Const, 20, ""}, - {"R_PPC64_GOT16", Const, 5, ""}, - {"R_PPC64_GOT16_DS", Const, 5, ""}, - {"R_PPC64_GOT16_HA", Const, 5, ""}, - {"R_PPC64_GOT16_HI", Const, 5, ""}, - {"R_PPC64_GOT16_LO", Const, 5, ""}, - {"R_PPC64_GOT16_LO_DS", Const, 5, ""}, - {"R_PPC64_GOT_DTPREL16_DS", Const, 5, ""}, - {"R_PPC64_GOT_DTPREL16_HA", Const, 5, ""}, - {"R_PPC64_GOT_DTPREL16_HI", Const, 5, ""}, - {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5, ""}, - {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20, ""}, - {"R_PPC64_GOT_PCREL34", Const, 20, ""}, - {"R_PPC64_GOT_TLSGD16", Const, 5, ""}, - {"R_PPC64_GOT_TLSGD16_HA", Const, 5, ""}, - {"R_PPC64_GOT_TLSGD16_HI", Const, 5, ""}, - {"R_PPC64_GOT_TLSGD16_LO", Const, 5, ""}, - {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20, ""}, - {"R_PPC64_GOT_TLSLD16", Const, 5, ""}, - {"R_PPC64_GOT_TLSLD16_HA", Const, 5, ""}, - {"R_PPC64_GOT_TLSLD16_HI", Const, 5, ""}, - {"R_PPC64_GOT_TLSLD16_LO", Const, 5, ""}, - {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20, ""}, - {"R_PPC64_GOT_TPREL16_DS", Const, 5, ""}, - {"R_PPC64_GOT_TPREL16_HA", Const, 5, ""}, - {"R_PPC64_GOT_TPREL16_HI", Const, 5, ""}, - {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5, ""}, - {"R_PPC64_GOT_TPREL_PCREL34", Const, 20, ""}, - {"R_PPC64_IRELATIVE", Const, 10, ""}, - {"R_PPC64_JMP_IREL", Const, 10, ""}, - {"R_PPC64_JMP_SLOT", Const, 5, ""}, - {"R_PPC64_NONE", Const, 5, ""}, - {"R_PPC64_PCREL28", Const, 20, ""}, - {"R_PPC64_PCREL34", Const, 20, ""}, - {"R_PPC64_PCREL_OPT", Const, 20, ""}, - {"R_PPC64_PLT16_HA", Const, 20, ""}, - {"R_PPC64_PLT16_HI", Const, 20, ""}, - {"R_PPC64_PLT16_LO", Const, 20, ""}, - {"R_PPC64_PLT16_LO_DS", Const, 10, ""}, - {"R_PPC64_PLT32", Const, 20, ""}, - {"R_PPC64_PLT64", Const, 20, ""}, - {"R_PPC64_PLTCALL", Const, 20, ""}, - {"R_PPC64_PLTCALL_NOTOC", Const, 20, ""}, - {"R_PPC64_PLTGOT16", Const, 10, ""}, - {"R_PPC64_PLTGOT16_DS", Const, 10, ""}, - {"R_PPC64_PLTGOT16_HA", Const, 10, ""}, - {"R_PPC64_PLTGOT16_HI", Const, 10, ""}, - {"R_PPC64_PLTGOT16_LO", Const, 10, ""}, - {"R_PPC64_PLTGOT_LO_DS", Const, 10, ""}, - {"R_PPC64_PLTREL32", Const, 20, ""}, - {"R_PPC64_PLTREL64", Const, 20, ""}, - {"R_PPC64_PLTSEQ", Const, 20, ""}, - {"R_PPC64_PLTSEQ_NOTOC", Const, 20, ""}, - {"R_PPC64_PLT_PCREL34", Const, 20, ""}, - {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20, ""}, - {"R_PPC64_REL14", Const, 5, ""}, - {"R_PPC64_REL14_BRNTAKEN", Const, 5, ""}, - {"R_PPC64_REL14_BRTAKEN", Const, 5, ""}, - {"R_PPC64_REL16", Const, 5, ""}, - {"R_PPC64_REL16DX_HA", Const, 10, ""}, - {"R_PPC64_REL16_HA", Const, 5, ""}, - {"R_PPC64_REL16_HI", Const, 5, ""}, - {"R_PPC64_REL16_HIGH", Const, 20, ""}, - {"R_PPC64_REL16_HIGHA", Const, 20, ""}, - {"R_PPC64_REL16_HIGHER", Const, 20, ""}, - {"R_PPC64_REL16_HIGHER34", Const, 20, ""}, - {"R_PPC64_REL16_HIGHERA", Const, 20, ""}, - {"R_PPC64_REL16_HIGHERA34", Const, 20, ""}, - {"R_PPC64_REL16_HIGHEST", Const, 20, ""}, - {"R_PPC64_REL16_HIGHEST34", Const, 20, ""}, - {"R_PPC64_REL16_HIGHESTA", Const, 20, ""}, - {"R_PPC64_REL16_HIGHESTA34", Const, 20, ""}, - {"R_PPC64_REL16_LO", Const, 5, ""}, - {"R_PPC64_REL24", Const, 5, ""}, - {"R_PPC64_REL24_NOTOC", Const, 10, ""}, - {"R_PPC64_REL24_P9NOTOC", Const, 21, ""}, - {"R_PPC64_REL30", Const, 20, ""}, - {"R_PPC64_REL32", Const, 5, ""}, - {"R_PPC64_REL64", Const, 5, ""}, - {"R_PPC64_RELATIVE", Const, 18, ""}, - {"R_PPC64_SECTOFF", Const, 20, ""}, - {"R_PPC64_SECTOFF_DS", Const, 10, ""}, - {"R_PPC64_SECTOFF_HA", Const, 20, ""}, - {"R_PPC64_SECTOFF_HI", Const, 20, ""}, - {"R_PPC64_SECTOFF_LO", Const, 20, ""}, - {"R_PPC64_SECTOFF_LO_DS", Const, 10, ""}, - {"R_PPC64_TLS", Const, 5, ""}, - {"R_PPC64_TLSGD", Const, 5, ""}, - {"R_PPC64_TLSLD", Const, 5, ""}, - {"R_PPC64_TOC", Const, 5, ""}, - {"R_PPC64_TOC16", Const, 5, ""}, - {"R_PPC64_TOC16_DS", Const, 5, ""}, - {"R_PPC64_TOC16_HA", Const, 5, ""}, - {"R_PPC64_TOC16_HI", Const, 5, ""}, - {"R_PPC64_TOC16_LO", Const, 5, ""}, - {"R_PPC64_TOC16_LO_DS", Const, 5, ""}, - {"R_PPC64_TOCSAVE", Const, 10, ""}, - {"R_PPC64_TPREL16", Const, 5, ""}, - {"R_PPC64_TPREL16_DS", Const, 5, ""}, - {"R_PPC64_TPREL16_HA", Const, 5, ""}, - {"R_PPC64_TPREL16_HI", Const, 5, ""}, - {"R_PPC64_TPREL16_HIGH", Const, 10, ""}, - {"R_PPC64_TPREL16_HIGHA", Const, 10, ""}, - {"R_PPC64_TPREL16_HIGHER", Const, 5, ""}, - {"R_PPC64_TPREL16_HIGHERA", Const, 5, ""}, - {"R_PPC64_TPREL16_HIGHEST", Const, 5, ""}, - {"R_PPC64_TPREL16_HIGHESTA", Const, 5, ""}, - {"R_PPC64_TPREL16_LO", Const, 5, ""}, - {"R_PPC64_TPREL16_LO_DS", Const, 5, ""}, - {"R_PPC64_TPREL34", Const, 20, ""}, - {"R_PPC64_TPREL64", Const, 5, ""}, - {"R_PPC64_UADDR16", Const, 20, ""}, - {"R_PPC64_UADDR32", Const, 20, ""}, - {"R_PPC64_UADDR64", Const, 20, ""}, - {"R_PPC_ADDR14", Const, 0, ""}, - {"R_PPC_ADDR14_BRNTAKEN", Const, 0, ""}, - {"R_PPC_ADDR14_BRTAKEN", Const, 0, ""}, - {"R_PPC_ADDR16", Const, 0, ""}, - {"R_PPC_ADDR16_HA", Const, 0, ""}, - {"R_PPC_ADDR16_HI", Const, 0, ""}, - {"R_PPC_ADDR16_LO", Const, 0, ""}, - {"R_PPC_ADDR24", Const, 0, ""}, - {"R_PPC_ADDR32", Const, 0, ""}, - {"R_PPC_COPY", Const, 0, ""}, - {"R_PPC_DTPMOD32", Const, 0, ""}, - {"R_PPC_DTPREL16", Const, 0, ""}, - {"R_PPC_DTPREL16_HA", Const, 0, ""}, - {"R_PPC_DTPREL16_HI", Const, 0, ""}, - {"R_PPC_DTPREL16_LO", Const, 0, ""}, - {"R_PPC_DTPREL32", Const, 0, ""}, - {"R_PPC_EMB_BIT_FLD", Const, 0, ""}, - {"R_PPC_EMB_MRKREF", Const, 0, ""}, - {"R_PPC_EMB_NADDR16", Const, 0, ""}, - {"R_PPC_EMB_NADDR16_HA", Const, 0, ""}, - {"R_PPC_EMB_NADDR16_HI", Const, 0, ""}, - {"R_PPC_EMB_NADDR16_LO", Const, 0, ""}, - {"R_PPC_EMB_NADDR32", Const, 0, ""}, - {"R_PPC_EMB_RELSDA", Const, 0, ""}, - {"R_PPC_EMB_RELSEC16", Const, 0, ""}, - {"R_PPC_EMB_RELST_HA", Const, 0, ""}, - {"R_PPC_EMB_RELST_HI", Const, 0, ""}, - {"R_PPC_EMB_RELST_LO", Const, 0, ""}, - {"R_PPC_EMB_SDA21", Const, 0, ""}, - {"R_PPC_EMB_SDA2I16", Const, 0, ""}, - {"R_PPC_EMB_SDA2REL", Const, 0, ""}, - {"R_PPC_EMB_SDAI16", Const, 0, ""}, - {"R_PPC_GLOB_DAT", Const, 0, ""}, - {"R_PPC_GOT16", Const, 0, ""}, - {"R_PPC_GOT16_HA", Const, 0, ""}, - {"R_PPC_GOT16_HI", Const, 0, ""}, - {"R_PPC_GOT16_LO", Const, 0, ""}, - {"R_PPC_GOT_TLSGD16", Const, 0, ""}, - {"R_PPC_GOT_TLSGD16_HA", Const, 0, ""}, - {"R_PPC_GOT_TLSGD16_HI", Const, 0, ""}, - {"R_PPC_GOT_TLSGD16_LO", Const, 0, ""}, - {"R_PPC_GOT_TLSLD16", Const, 0, ""}, - {"R_PPC_GOT_TLSLD16_HA", Const, 0, ""}, - {"R_PPC_GOT_TLSLD16_HI", Const, 0, ""}, - {"R_PPC_GOT_TLSLD16_LO", Const, 0, ""}, - {"R_PPC_GOT_TPREL16", Const, 0, ""}, - {"R_PPC_GOT_TPREL16_HA", Const, 0, ""}, - {"R_PPC_GOT_TPREL16_HI", Const, 0, ""}, - {"R_PPC_GOT_TPREL16_LO", Const, 0, ""}, - {"R_PPC_JMP_SLOT", Const, 0, ""}, - {"R_PPC_LOCAL24PC", Const, 0, ""}, - {"R_PPC_NONE", Const, 0, ""}, - {"R_PPC_PLT16_HA", Const, 0, ""}, - {"R_PPC_PLT16_HI", Const, 0, ""}, - {"R_PPC_PLT16_LO", Const, 0, ""}, - {"R_PPC_PLT32", Const, 0, ""}, - {"R_PPC_PLTREL24", Const, 0, ""}, - {"R_PPC_PLTREL32", Const, 0, ""}, - {"R_PPC_REL14", Const, 0, ""}, - {"R_PPC_REL14_BRNTAKEN", Const, 0, ""}, - {"R_PPC_REL14_BRTAKEN", Const, 0, ""}, - {"R_PPC_REL24", Const, 0, ""}, - {"R_PPC_REL32", Const, 0, ""}, - {"R_PPC_RELATIVE", Const, 0, ""}, - {"R_PPC_SDAREL16", Const, 0, ""}, - {"R_PPC_SECTOFF", Const, 0, ""}, - {"R_PPC_SECTOFF_HA", Const, 0, ""}, - {"R_PPC_SECTOFF_HI", Const, 0, ""}, - {"R_PPC_SECTOFF_LO", Const, 0, ""}, - {"R_PPC_TLS", Const, 0, ""}, - {"R_PPC_TPREL16", Const, 0, ""}, - {"R_PPC_TPREL16_HA", Const, 0, ""}, - {"R_PPC_TPREL16_HI", Const, 0, ""}, - {"R_PPC_TPREL16_LO", Const, 0, ""}, - {"R_PPC_TPREL32", Const, 0, ""}, - {"R_PPC_UADDR16", Const, 0, ""}, - {"R_PPC_UADDR32", Const, 0, ""}, - {"R_RISCV", Type, 11, ""}, - {"R_RISCV_32", Const, 11, ""}, - {"R_RISCV_32_PCREL", Const, 12, ""}, - {"R_RISCV_64", Const, 11, ""}, - {"R_RISCV_ADD16", Const, 11, ""}, - {"R_RISCV_ADD32", Const, 11, ""}, - {"R_RISCV_ADD64", Const, 11, ""}, - {"R_RISCV_ADD8", Const, 11, ""}, - {"R_RISCV_ALIGN", Const, 11, ""}, - {"R_RISCV_BRANCH", Const, 11, ""}, - {"R_RISCV_CALL", Const, 11, ""}, - {"R_RISCV_CALL_PLT", Const, 11, ""}, - {"R_RISCV_COPY", Const, 11, ""}, - {"R_RISCV_GNU_VTENTRY", Const, 11, ""}, - {"R_RISCV_GNU_VTINHERIT", Const, 11, ""}, - {"R_RISCV_GOT_HI20", Const, 11, ""}, - {"R_RISCV_GPREL_I", Const, 11, ""}, - {"R_RISCV_GPREL_S", Const, 11, ""}, - {"R_RISCV_HI20", Const, 11, ""}, - {"R_RISCV_JAL", Const, 11, ""}, - {"R_RISCV_JUMP_SLOT", Const, 11, ""}, - {"R_RISCV_LO12_I", Const, 11, ""}, - {"R_RISCV_LO12_S", Const, 11, ""}, - {"R_RISCV_NONE", Const, 11, ""}, - {"R_RISCV_PCREL_HI20", Const, 11, ""}, - {"R_RISCV_PCREL_LO12_I", Const, 11, ""}, - {"R_RISCV_PCREL_LO12_S", Const, 11, ""}, - {"R_RISCV_RELATIVE", Const, 11, ""}, - {"R_RISCV_RELAX", Const, 11, ""}, - {"R_RISCV_RVC_BRANCH", Const, 11, ""}, - {"R_RISCV_RVC_JUMP", Const, 11, ""}, - {"R_RISCV_RVC_LUI", Const, 11, ""}, - {"R_RISCV_SET16", Const, 11, ""}, - {"R_RISCV_SET32", Const, 11, ""}, - {"R_RISCV_SET6", Const, 11, ""}, - {"R_RISCV_SET8", Const, 11, ""}, - {"R_RISCV_SUB16", Const, 11, ""}, - {"R_RISCV_SUB32", Const, 11, ""}, - {"R_RISCV_SUB6", Const, 11, ""}, - {"R_RISCV_SUB64", Const, 11, ""}, - {"R_RISCV_SUB8", Const, 11, ""}, - {"R_RISCV_TLS_DTPMOD32", Const, 11, ""}, - {"R_RISCV_TLS_DTPMOD64", Const, 11, ""}, - {"R_RISCV_TLS_DTPREL32", Const, 11, ""}, - {"R_RISCV_TLS_DTPREL64", Const, 11, ""}, - {"R_RISCV_TLS_GD_HI20", Const, 11, ""}, - {"R_RISCV_TLS_GOT_HI20", Const, 11, ""}, - {"R_RISCV_TLS_TPREL32", Const, 11, ""}, - {"R_RISCV_TLS_TPREL64", Const, 11, ""}, - {"R_RISCV_TPREL_ADD", Const, 11, ""}, - {"R_RISCV_TPREL_HI20", Const, 11, ""}, - {"R_RISCV_TPREL_I", Const, 11, ""}, - {"R_RISCV_TPREL_LO12_I", Const, 11, ""}, - {"R_RISCV_TPREL_LO12_S", Const, 11, ""}, - {"R_RISCV_TPREL_S", Const, 11, ""}, - {"R_SPARC", Type, 0, ""}, - {"R_SPARC_10", Const, 0, ""}, - {"R_SPARC_11", Const, 0, ""}, - {"R_SPARC_13", Const, 0, ""}, - {"R_SPARC_16", Const, 0, ""}, - {"R_SPARC_22", Const, 0, ""}, - {"R_SPARC_32", Const, 0, ""}, - {"R_SPARC_5", Const, 0, ""}, - {"R_SPARC_6", Const, 0, ""}, - {"R_SPARC_64", Const, 0, ""}, - {"R_SPARC_7", Const, 0, ""}, - {"R_SPARC_8", Const, 0, ""}, - {"R_SPARC_COPY", Const, 0, ""}, - {"R_SPARC_DISP16", Const, 0, ""}, - {"R_SPARC_DISP32", Const, 0, ""}, - {"R_SPARC_DISP64", Const, 0, ""}, - {"R_SPARC_DISP8", Const, 0, ""}, - {"R_SPARC_GLOB_DAT", Const, 0, ""}, - {"R_SPARC_GLOB_JMP", Const, 0, ""}, - {"R_SPARC_GOT10", Const, 0, ""}, - {"R_SPARC_GOT13", Const, 0, ""}, - {"R_SPARC_GOT22", Const, 0, ""}, - {"R_SPARC_H44", Const, 0, ""}, - {"R_SPARC_HH22", Const, 0, ""}, - {"R_SPARC_HI22", Const, 0, ""}, - {"R_SPARC_HIPLT22", Const, 0, ""}, - {"R_SPARC_HIX22", Const, 0, ""}, - {"R_SPARC_HM10", Const, 0, ""}, - {"R_SPARC_JMP_SLOT", Const, 0, ""}, - {"R_SPARC_L44", Const, 0, ""}, - {"R_SPARC_LM22", Const, 0, ""}, - {"R_SPARC_LO10", Const, 0, ""}, - {"R_SPARC_LOPLT10", Const, 0, ""}, - {"R_SPARC_LOX10", Const, 0, ""}, - {"R_SPARC_M44", Const, 0, ""}, - {"R_SPARC_NONE", Const, 0, ""}, - {"R_SPARC_OLO10", Const, 0, ""}, - {"R_SPARC_PC10", Const, 0, ""}, - {"R_SPARC_PC22", Const, 0, ""}, - {"R_SPARC_PCPLT10", Const, 0, ""}, - {"R_SPARC_PCPLT22", Const, 0, ""}, - {"R_SPARC_PCPLT32", Const, 0, ""}, - {"R_SPARC_PC_HH22", Const, 0, ""}, - {"R_SPARC_PC_HM10", Const, 0, ""}, - {"R_SPARC_PC_LM22", Const, 0, ""}, - {"R_SPARC_PLT32", Const, 0, ""}, - {"R_SPARC_PLT64", Const, 0, ""}, - {"R_SPARC_REGISTER", Const, 0, ""}, - {"R_SPARC_RELATIVE", Const, 0, ""}, - {"R_SPARC_UA16", Const, 0, ""}, - {"R_SPARC_UA32", Const, 0, ""}, - {"R_SPARC_UA64", Const, 0, ""}, - {"R_SPARC_WDISP16", Const, 0, ""}, - {"R_SPARC_WDISP19", Const, 0, ""}, - {"R_SPARC_WDISP22", Const, 0, ""}, - {"R_SPARC_WDISP30", Const, 0, ""}, - {"R_SPARC_WPLT30", Const, 0, ""}, - {"R_SYM32", Func, 0, "func(info uint32) uint32"}, - {"R_SYM64", Func, 0, "func(info uint64) uint32"}, - {"R_TYPE32", Func, 0, "func(info uint32) uint32"}, - {"R_TYPE64", Func, 0, "func(info uint64) uint32"}, - {"R_X86_64", Type, 0, ""}, - {"R_X86_64_16", Const, 0, ""}, - {"R_X86_64_32", Const, 0, ""}, - {"R_X86_64_32S", Const, 0, ""}, - {"R_X86_64_64", Const, 0, ""}, - {"R_X86_64_8", Const, 0, ""}, - {"R_X86_64_COPY", Const, 0, ""}, - {"R_X86_64_DTPMOD64", Const, 0, ""}, - {"R_X86_64_DTPOFF32", Const, 0, ""}, - {"R_X86_64_DTPOFF64", Const, 0, ""}, - {"R_X86_64_GLOB_DAT", Const, 0, ""}, - {"R_X86_64_GOT32", Const, 0, ""}, - {"R_X86_64_GOT64", Const, 10, ""}, - {"R_X86_64_GOTOFF64", Const, 10, ""}, - {"R_X86_64_GOTPC32", Const, 10, ""}, - {"R_X86_64_GOTPC32_TLSDESC", Const, 10, ""}, - {"R_X86_64_GOTPC64", Const, 10, ""}, - {"R_X86_64_GOTPCREL", Const, 0, ""}, - {"R_X86_64_GOTPCREL64", Const, 10, ""}, - {"R_X86_64_GOTPCRELX", Const, 10, ""}, - {"R_X86_64_GOTPLT64", Const, 10, ""}, - {"R_X86_64_GOTTPOFF", Const, 0, ""}, - {"R_X86_64_IRELATIVE", Const, 10, ""}, - {"R_X86_64_JMP_SLOT", Const, 0, ""}, - {"R_X86_64_NONE", Const, 0, ""}, - {"R_X86_64_PC16", Const, 0, ""}, - {"R_X86_64_PC32", Const, 0, ""}, - {"R_X86_64_PC32_BND", Const, 10, ""}, - {"R_X86_64_PC64", Const, 10, ""}, - {"R_X86_64_PC8", Const, 0, ""}, - {"R_X86_64_PLT32", Const, 0, ""}, - {"R_X86_64_PLT32_BND", Const, 10, ""}, - {"R_X86_64_PLTOFF64", Const, 10, ""}, - {"R_X86_64_RELATIVE", Const, 0, ""}, - {"R_X86_64_RELATIVE64", Const, 10, ""}, - {"R_X86_64_REX_GOTPCRELX", Const, 10, ""}, - {"R_X86_64_SIZE32", Const, 10, ""}, - {"R_X86_64_SIZE64", Const, 10, ""}, - {"R_X86_64_TLSDESC", Const, 10, ""}, - {"R_X86_64_TLSDESC_CALL", Const, 10, ""}, - {"R_X86_64_TLSGD", Const, 0, ""}, - {"R_X86_64_TLSLD", Const, 0, ""}, - {"R_X86_64_TPOFF32", Const, 0, ""}, - {"R_X86_64_TPOFF64", Const, 0, ""}, - {"Rel32", Type, 0, ""}, - {"Rel32.Info", Field, 0, ""}, - {"Rel32.Off", Field, 0, ""}, - {"Rel64", Type, 0, ""}, - {"Rel64.Info", Field, 0, ""}, - {"Rel64.Off", Field, 0, ""}, - {"Rela32", Type, 0, ""}, - {"Rela32.Addend", Field, 0, ""}, - {"Rela32.Info", Field, 0, ""}, - {"Rela32.Off", Field, 0, ""}, - {"Rela64", Type, 0, ""}, - {"Rela64.Addend", Field, 0, ""}, - {"Rela64.Info", Field, 0, ""}, - {"Rela64.Off", Field, 0, ""}, - {"SHF_ALLOC", Const, 0, ""}, - {"SHF_COMPRESSED", Const, 6, ""}, - {"SHF_EXECINSTR", Const, 0, ""}, - {"SHF_GROUP", Const, 0, ""}, - {"SHF_INFO_LINK", Const, 0, ""}, - {"SHF_LINK_ORDER", Const, 0, ""}, - {"SHF_MASKOS", Const, 0, ""}, - {"SHF_MASKPROC", Const, 0, ""}, - {"SHF_MERGE", Const, 0, ""}, - {"SHF_OS_NONCONFORMING", Const, 0, ""}, - {"SHF_STRINGS", Const, 0, ""}, - {"SHF_TLS", Const, 0, ""}, - {"SHF_WRITE", Const, 0, ""}, - {"SHN_ABS", Const, 0, ""}, - {"SHN_COMMON", Const, 0, ""}, - {"SHN_HIOS", Const, 0, ""}, - {"SHN_HIPROC", Const, 0, ""}, - {"SHN_HIRESERVE", Const, 0, ""}, - {"SHN_LOOS", Const, 0, ""}, - {"SHN_LOPROC", Const, 0, ""}, - {"SHN_LORESERVE", Const, 0, ""}, - {"SHN_UNDEF", Const, 0, ""}, - {"SHN_XINDEX", Const, 0, ""}, - {"SHT_DYNAMIC", Const, 0, ""}, - {"SHT_DYNSYM", Const, 0, ""}, - {"SHT_FINI_ARRAY", Const, 0, ""}, - {"SHT_GNU_ATTRIBUTES", Const, 0, ""}, - {"SHT_GNU_HASH", Const, 0, ""}, - {"SHT_GNU_LIBLIST", Const, 0, ""}, - {"SHT_GNU_VERDEF", Const, 0, ""}, - {"SHT_GNU_VERNEED", Const, 0, ""}, - {"SHT_GNU_VERSYM", Const, 0, ""}, - {"SHT_GROUP", Const, 0, ""}, - {"SHT_HASH", Const, 0, ""}, - {"SHT_HIOS", Const, 0, ""}, - {"SHT_HIPROC", Const, 0, ""}, - {"SHT_HIUSER", Const, 0, ""}, - {"SHT_INIT_ARRAY", Const, 0, ""}, - {"SHT_LOOS", Const, 0, ""}, - {"SHT_LOPROC", Const, 0, ""}, - {"SHT_LOUSER", Const, 0, ""}, - {"SHT_MIPS_ABIFLAGS", Const, 17, ""}, - {"SHT_NOBITS", Const, 0, ""}, - {"SHT_NOTE", Const, 0, ""}, - {"SHT_NULL", Const, 0, ""}, - {"SHT_PREINIT_ARRAY", Const, 0, ""}, - {"SHT_PROGBITS", Const, 0, ""}, - {"SHT_REL", Const, 0, ""}, - {"SHT_RELA", Const, 0, ""}, - {"SHT_RISCV_ATTRIBUTES", Const, 25, ""}, - {"SHT_SHLIB", Const, 0, ""}, - {"SHT_STRTAB", Const, 0, ""}, - {"SHT_SYMTAB", Const, 0, ""}, - {"SHT_SYMTAB_SHNDX", Const, 0, ""}, - {"STB_GLOBAL", Const, 0, ""}, - {"STB_HIOS", Const, 0, ""}, - {"STB_HIPROC", Const, 0, ""}, - {"STB_LOCAL", Const, 0, ""}, - {"STB_LOOS", Const, 0, ""}, - {"STB_LOPROC", Const, 0, ""}, - {"STB_WEAK", Const, 0, ""}, - {"STT_COMMON", Const, 0, ""}, - {"STT_FILE", Const, 0, ""}, - {"STT_FUNC", Const, 0, ""}, - {"STT_GNU_IFUNC", Const, 23, ""}, - {"STT_HIOS", Const, 0, ""}, - {"STT_HIPROC", Const, 0, ""}, - {"STT_LOOS", Const, 0, ""}, - {"STT_LOPROC", Const, 0, ""}, - {"STT_NOTYPE", Const, 0, ""}, - {"STT_OBJECT", Const, 0, ""}, - {"STT_RELC", Const, 23, ""}, - {"STT_SECTION", Const, 0, ""}, - {"STT_SRELC", Const, 23, ""}, - {"STT_TLS", Const, 0, ""}, - {"STV_DEFAULT", Const, 0, ""}, - {"STV_HIDDEN", Const, 0, ""}, - {"STV_INTERNAL", Const, 0, ""}, - {"STV_PROTECTED", Const, 0, ""}, - {"ST_BIND", Func, 0, "func(info uint8) SymBind"}, - {"ST_INFO", Func, 0, "func(bind SymBind, typ SymType) uint8"}, - {"ST_TYPE", Func, 0, "func(info uint8) SymType"}, - {"ST_VISIBILITY", Func, 0, "func(other uint8) SymVis"}, - {"Section", Type, 0, ""}, - {"Section.ReaderAt", Field, 0, ""}, - {"Section.SectionHeader", Field, 0, ""}, - {"Section32", Type, 0, ""}, - {"Section32.Addr", Field, 0, ""}, - {"Section32.Addralign", Field, 0, ""}, - {"Section32.Entsize", Field, 0, ""}, - {"Section32.Flags", Field, 0, ""}, - {"Section32.Info", Field, 0, ""}, - {"Section32.Link", Field, 0, ""}, - {"Section32.Name", Field, 0, ""}, - {"Section32.Off", Field, 0, ""}, - {"Section32.Size", Field, 0, ""}, - {"Section32.Type", Field, 0, ""}, - {"Section64", Type, 0, ""}, - {"Section64.Addr", Field, 0, ""}, - {"Section64.Addralign", Field, 0, ""}, - {"Section64.Entsize", Field, 0, ""}, - {"Section64.Flags", Field, 0, ""}, - {"Section64.Info", Field, 0, ""}, - {"Section64.Link", Field, 0, ""}, - {"Section64.Name", Field, 0, ""}, - {"Section64.Off", Field, 0, ""}, - {"Section64.Size", Field, 0, ""}, - {"Section64.Type", Field, 0, ""}, - {"SectionFlag", Type, 0, ""}, - {"SectionHeader", Type, 0, ""}, - {"SectionHeader.Addr", Field, 0, ""}, - {"SectionHeader.Addralign", Field, 0, ""}, - {"SectionHeader.Entsize", Field, 0, ""}, - {"SectionHeader.FileSize", Field, 6, ""}, - {"SectionHeader.Flags", Field, 0, ""}, - {"SectionHeader.Info", Field, 0, ""}, - {"SectionHeader.Link", Field, 0, ""}, - {"SectionHeader.Name", Field, 0, ""}, - {"SectionHeader.Offset", Field, 0, ""}, - {"SectionHeader.Size", Field, 0, ""}, - {"SectionHeader.Type", Field, 0, ""}, - {"SectionIndex", Type, 0, ""}, - {"SectionType", Type, 0, ""}, - {"Sym32", Type, 0, ""}, - {"Sym32.Info", Field, 0, ""}, - {"Sym32.Name", Field, 0, ""}, - {"Sym32.Other", Field, 0, ""}, - {"Sym32.Shndx", Field, 0, ""}, - {"Sym32.Size", Field, 0, ""}, - {"Sym32.Value", Field, 0, ""}, - {"Sym32Size", Const, 0, ""}, - {"Sym64", Type, 0, ""}, - {"Sym64.Info", Field, 0, ""}, - {"Sym64.Name", Field, 0, ""}, - {"Sym64.Other", Field, 0, ""}, - {"Sym64.Shndx", Field, 0, ""}, - {"Sym64.Size", Field, 0, ""}, - {"Sym64.Value", Field, 0, ""}, - {"Sym64Size", Const, 0, ""}, - {"SymBind", Type, 0, ""}, - {"SymType", Type, 0, ""}, - {"SymVis", Type, 0, ""}, - {"Symbol", Type, 0, ""}, - {"Symbol.HasVersion", Field, 24, ""}, - {"Symbol.Info", Field, 0, ""}, - {"Symbol.Library", Field, 13, ""}, - {"Symbol.Name", Field, 0, ""}, - {"Symbol.Other", Field, 0, ""}, - {"Symbol.Section", Field, 0, ""}, - {"Symbol.Size", Field, 0, ""}, - {"Symbol.Value", Field, 0, ""}, - {"Symbol.Version", Field, 13, ""}, - {"Symbol.VersionIndex", Field, 24, ""}, - {"Type", Type, 0, ""}, - {"VER_FLG_BASE", Const, 24, ""}, - {"VER_FLG_INFO", Const, 24, ""}, - {"VER_FLG_WEAK", Const, 24, ""}, - {"Version", Type, 0, ""}, - {"VersionIndex", Type, 24, ""}, - }, - "debug/gosym": { - {"(*DecodingError).Error", Method, 0, ""}, - {"(*LineTable).LineToPC", Method, 0, ""}, - {"(*LineTable).PCToLine", Method, 0, ""}, - {"(*Sym).BaseName", Method, 0, ""}, - {"(*Sym).PackageName", Method, 0, ""}, - {"(*Sym).ReceiverName", Method, 0, ""}, - {"(*Sym).Static", Method, 0, ""}, - {"(*Table).LineToPC", Method, 0, ""}, - {"(*Table).LookupFunc", Method, 0, ""}, - {"(*Table).LookupSym", Method, 0, ""}, - {"(*Table).PCToFunc", Method, 0, ""}, - {"(*Table).PCToLine", Method, 0, ""}, - {"(*Table).SymByAddr", Method, 0, ""}, - {"(*UnknownLineError).Error", Method, 0, ""}, - {"(Func).BaseName", Method, 0, ""}, - {"(Func).PackageName", Method, 0, ""}, - {"(Func).ReceiverName", Method, 0, ""}, - {"(Func).Static", Method, 0, ""}, - {"(UnknownFileError).Error", Method, 0, ""}, - {"DecodingError", Type, 0, ""}, - {"Func", Type, 0, ""}, - {"Func.End", Field, 0, ""}, - {"Func.Entry", Field, 0, ""}, - {"Func.FrameSize", Field, 0, ""}, - {"Func.LineTable", Field, 0, ""}, - {"Func.Locals", Field, 0, ""}, - {"Func.Obj", Field, 0, ""}, - {"Func.Params", Field, 0, ""}, - {"Func.Sym", Field, 0, ""}, - {"LineTable", Type, 0, ""}, - {"LineTable.Data", Field, 0, ""}, - {"LineTable.Line", Field, 0, ""}, - {"LineTable.PC", Field, 0, ""}, - {"NewLineTable", Func, 0, "func(data []byte, text uint64) *LineTable"}, - {"NewTable", Func, 0, "func(symtab []byte, pcln *LineTable) (*Table, error)"}, - {"Obj", Type, 0, ""}, - {"Obj.Funcs", Field, 0, ""}, - {"Obj.Paths", Field, 0, ""}, - {"Sym", Type, 0, ""}, - {"Sym.Func", Field, 0, ""}, - {"Sym.GoType", Field, 0, ""}, - {"Sym.Name", Field, 0, ""}, - {"Sym.Type", Field, 0, ""}, - {"Sym.Value", Field, 0, ""}, - {"Table", Type, 0, ""}, - {"Table.Files", Field, 0, ""}, - {"Table.Funcs", Field, 0, ""}, - {"Table.Objs", Field, 0, ""}, - {"Table.Syms", Field, 0, ""}, - {"UnknownFileError", Type, 0, ""}, - {"UnknownLineError", Type, 0, ""}, - {"UnknownLineError.File", Field, 0, ""}, - {"UnknownLineError.Line", Field, 0, ""}, - }, - "debug/macho": { - {"(*FatFile).Close", Method, 3, ""}, - {"(*File).Close", Method, 0, ""}, - {"(*File).DWARF", Method, 0, ""}, - {"(*File).ImportedLibraries", Method, 0, ""}, - {"(*File).ImportedSymbols", Method, 0, ""}, - {"(*File).Section", Method, 0, ""}, - {"(*File).Segment", Method, 0, ""}, - {"(*FormatError).Error", Method, 0, ""}, - {"(*Section).Data", Method, 0, ""}, - {"(*Section).Open", Method, 0, ""}, - {"(*Segment).Data", Method, 0, ""}, - {"(*Segment).Open", Method, 0, ""}, - {"(Cpu).GoString", Method, 0, ""}, - {"(Cpu).String", Method, 0, ""}, - {"(Dylib).Raw", Method, 0, ""}, - {"(Dysymtab).Raw", Method, 0, ""}, - {"(FatArch).Close", Method, 3, ""}, - {"(FatArch).DWARF", Method, 3, ""}, - {"(FatArch).ImportedLibraries", Method, 3, ""}, - {"(FatArch).ImportedSymbols", Method, 3, ""}, - {"(FatArch).Section", Method, 3, ""}, - {"(FatArch).Segment", Method, 3, ""}, - {"(LoadBytes).Raw", Method, 0, ""}, - {"(LoadCmd).GoString", Method, 0, ""}, - {"(LoadCmd).String", Method, 0, ""}, - {"(RelocTypeARM).GoString", Method, 10, ""}, - {"(RelocTypeARM).String", Method, 10, ""}, - {"(RelocTypeARM64).GoString", Method, 10, ""}, - {"(RelocTypeARM64).String", Method, 10, ""}, - {"(RelocTypeGeneric).GoString", Method, 10, ""}, - {"(RelocTypeGeneric).String", Method, 10, ""}, - {"(RelocTypeX86_64).GoString", Method, 10, ""}, - {"(RelocTypeX86_64).String", Method, 10, ""}, - {"(Rpath).Raw", Method, 10, ""}, - {"(Section).ReadAt", Method, 0, ""}, - {"(Segment).Raw", Method, 0, ""}, - {"(Segment).ReadAt", Method, 0, ""}, - {"(Symtab).Raw", Method, 0, ""}, - {"(Type).GoString", Method, 10, ""}, - {"(Type).String", Method, 10, ""}, - {"ARM64_RELOC_ADDEND", Const, 10, ""}, - {"ARM64_RELOC_BRANCH26", Const, 10, ""}, - {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10, ""}, - {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10, ""}, - {"ARM64_RELOC_PAGE21", Const, 10, ""}, - {"ARM64_RELOC_PAGEOFF12", Const, 10, ""}, - {"ARM64_RELOC_POINTER_TO_GOT", Const, 10, ""}, - {"ARM64_RELOC_SUBTRACTOR", Const, 10, ""}, - {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10, ""}, - {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10, ""}, - {"ARM64_RELOC_UNSIGNED", Const, 10, ""}, - {"ARM_RELOC_BR24", Const, 10, ""}, - {"ARM_RELOC_HALF", Const, 10, ""}, - {"ARM_RELOC_HALF_SECTDIFF", Const, 10, ""}, - {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10, ""}, - {"ARM_RELOC_PAIR", Const, 10, ""}, - {"ARM_RELOC_PB_LA_PTR", Const, 10, ""}, - {"ARM_RELOC_SECTDIFF", Const, 10, ""}, - {"ARM_RELOC_VANILLA", Const, 10, ""}, - {"ARM_THUMB_32BIT_BRANCH", Const, 10, ""}, - {"ARM_THUMB_RELOC_BR22", Const, 10, ""}, - {"Cpu", Type, 0, ""}, - {"Cpu386", Const, 0, ""}, - {"CpuAmd64", Const, 0, ""}, - {"CpuArm", Const, 3, ""}, - {"CpuArm64", Const, 11, ""}, - {"CpuPpc", Const, 3, ""}, - {"CpuPpc64", Const, 3, ""}, - {"Dylib", Type, 0, ""}, - {"Dylib.CompatVersion", Field, 0, ""}, - {"Dylib.CurrentVersion", Field, 0, ""}, - {"Dylib.LoadBytes", Field, 0, ""}, - {"Dylib.Name", Field, 0, ""}, - {"Dylib.Time", Field, 0, ""}, - {"DylibCmd", Type, 0, ""}, - {"DylibCmd.Cmd", Field, 0, ""}, - {"DylibCmd.CompatVersion", Field, 0, ""}, - {"DylibCmd.CurrentVersion", Field, 0, ""}, - {"DylibCmd.Len", Field, 0, ""}, - {"DylibCmd.Name", Field, 0, ""}, - {"DylibCmd.Time", Field, 0, ""}, - {"Dysymtab", Type, 0, ""}, - {"Dysymtab.DysymtabCmd", Field, 0, ""}, - {"Dysymtab.IndirectSyms", Field, 0, ""}, - {"Dysymtab.LoadBytes", Field, 0, ""}, - {"DysymtabCmd", Type, 0, ""}, - {"DysymtabCmd.Cmd", Field, 0, ""}, - {"DysymtabCmd.Extrefsymoff", Field, 0, ""}, - {"DysymtabCmd.Extreloff", Field, 0, ""}, - {"DysymtabCmd.Iextdefsym", Field, 0, ""}, - {"DysymtabCmd.Ilocalsym", Field, 0, ""}, - {"DysymtabCmd.Indirectsymoff", Field, 0, ""}, - {"DysymtabCmd.Iundefsym", Field, 0, ""}, - {"DysymtabCmd.Len", Field, 0, ""}, - {"DysymtabCmd.Locreloff", Field, 0, ""}, - {"DysymtabCmd.Modtaboff", Field, 0, ""}, - {"DysymtabCmd.Nextdefsym", Field, 0, ""}, - {"DysymtabCmd.Nextrefsyms", Field, 0, ""}, - {"DysymtabCmd.Nextrel", Field, 0, ""}, - {"DysymtabCmd.Nindirectsyms", Field, 0, ""}, - {"DysymtabCmd.Nlocalsym", Field, 0, ""}, - {"DysymtabCmd.Nlocrel", Field, 0, ""}, - {"DysymtabCmd.Nmodtab", Field, 0, ""}, - {"DysymtabCmd.Ntoc", Field, 0, ""}, - {"DysymtabCmd.Nundefsym", Field, 0, ""}, - {"DysymtabCmd.Tocoffset", Field, 0, ""}, - {"ErrNotFat", Var, 3, ""}, - {"FatArch", Type, 3, ""}, - {"FatArch.FatArchHeader", Field, 3, ""}, - {"FatArch.File", Field, 3, ""}, - {"FatArchHeader", Type, 3, ""}, - {"FatArchHeader.Align", Field, 3, ""}, - {"FatArchHeader.Cpu", Field, 3, ""}, - {"FatArchHeader.Offset", Field, 3, ""}, - {"FatArchHeader.Size", Field, 3, ""}, - {"FatArchHeader.SubCpu", Field, 3, ""}, - {"FatFile", Type, 3, ""}, - {"FatFile.Arches", Field, 3, ""}, - {"FatFile.Magic", Field, 3, ""}, - {"File", Type, 0, ""}, - {"File.ByteOrder", Field, 0, ""}, - {"File.Dysymtab", Field, 0, ""}, - {"File.FileHeader", Field, 0, ""}, - {"File.Loads", Field, 0, ""}, - {"File.Sections", Field, 0, ""}, - {"File.Symtab", Field, 0, ""}, - {"FileHeader", Type, 0, ""}, - {"FileHeader.Cmdsz", Field, 0, ""}, - {"FileHeader.Cpu", Field, 0, ""}, - {"FileHeader.Flags", Field, 0, ""}, - {"FileHeader.Magic", Field, 0, ""}, - {"FileHeader.Ncmd", Field, 0, ""}, - {"FileHeader.SubCpu", Field, 0, ""}, - {"FileHeader.Type", Field, 0, ""}, - {"FlagAllModsBound", Const, 10, ""}, - {"FlagAllowStackExecution", Const, 10, ""}, - {"FlagAppExtensionSafe", Const, 10, ""}, - {"FlagBindAtLoad", Const, 10, ""}, - {"FlagBindsToWeak", Const, 10, ""}, - {"FlagCanonical", Const, 10, ""}, - {"FlagDeadStrippableDylib", Const, 10, ""}, - {"FlagDyldLink", Const, 10, ""}, - {"FlagForceFlat", Const, 10, ""}, - {"FlagHasTLVDescriptors", Const, 10, ""}, - {"FlagIncrLink", Const, 10, ""}, - {"FlagLazyInit", Const, 10, ""}, - {"FlagNoFixPrebinding", Const, 10, ""}, - {"FlagNoHeapExecution", Const, 10, ""}, - {"FlagNoMultiDefs", Const, 10, ""}, - {"FlagNoReexportedDylibs", Const, 10, ""}, - {"FlagNoUndefs", Const, 10, ""}, - {"FlagPIE", Const, 10, ""}, - {"FlagPrebindable", Const, 10, ""}, - {"FlagPrebound", Const, 10, ""}, - {"FlagRootSafe", Const, 10, ""}, - {"FlagSetuidSafe", Const, 10, ""}, - {"FlagSplitSegs", Const, 10, ""}, - {"FlagSubsectionsViaSymbols", Const, 10, ""}, - {"FlagTwoLevel", Const, 10, ""}, - {"FlagWeakDefines", Const, 10, ""}, - {"FormatError", Type, 0, ""}, - {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10, ""}, - {"GENERIC_RELOC_PAIR", Const, 10, ""}, - {"GENERIC_RELOC_PB_LA_PTR", Const, 10, ""}, - {"GENERIC_RELOC_SECTDIFF", Const, 10, ""}, - {"GENERIC_RELOC_TLV", Const, 10, ""}, - {"GENERIC_RELOC_VANILLA", Const, 10, ""}, - {"Load", Type, 0, ""}, - {"LoadBytes", Type, 0, ""}, - {"LoadCmd", Type, 0, ""}, - {"LoadCmdDylib", Const, 0, ""}, - {"LoadCmdDylinker", Const, 0, ""}, - {"LoadCmdDysymtab", Const, 0, ""}, - {"LoadCmdRpath", Const, 10, ""}, - {"LoadCmdSegment", Const, 0, ""}, - {"LoadCmdSegment64", Const, 0, ""}, - {"LoadCmdSymtab", Const, 0, ""}, - {"LoadCmdThread", Const, 0, ""}, - {"LoadCmdUnixThread", Const, 0, ""}, - {"Magic32", Const, 0, ""}, - {"Magic64", Const, 0, ""}, - {"MagicFat", Const, 3, ""}, - {"NewFatFile", Func, 3, "func(r io.ReaderAt) (*FatFile, error)"}, - {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, - {"Nlist32", Type, 0, ""}, - {"Nlist32.Desc", Field, 0, ""}, - {"Nlist32.Name", Field, 0, ""}, - {"Nlist32.Sect", Field, 0, ""}, - {"Nlist32.Type", Field, 0, ""}, - {"Nlist32.Value", Field, 0, ""}, - {"Nlist64", Type, 0, ""}, - {"Nlist64.Desc", Field, 0, ""}, - {"Nlist64.Name", Field, 0, ""}, - {"Nlist64.Sect", Field, 0, ""}, - {"Nlist64.Type", Field, 0, ""}, - {"Nlist64.Value", Field, 0, ""}, - {"Open", Func, 0, "func(name string) (*File, error)"}, - {"OpenFat", Func, 3, "func(name string) (*FatFile, error)"}, - {"Regs386", Type, 0, ""}, - {"Regs386.AX", Field, 0, ""}, - {"Regs386.BP", Field, 0, ""}, - {"Regs386.BX", Field, 0, ""}, - {"Regs386.CS", Field, 0, ""}, - {"Regs386.CX", Field, 0, ""}, - {"Regs386.DI", Field, 0, ""}, - {"Regs386.DS", Field, 0, ""}, - {"Regs386.DX", Field, 0, ""}, - {"Regs386.ES", Field, 0, ""}, - {"Regs386.FLAGS", Field, 0, ""}, - {"Regs386.FS", Field, 0, ""}, - {"Regs386.GS", Field, 0, ""}, - {"Regs386.IP", Field, 0, ""}, - {"Regs386.SI", Field, 0, ""}, - {"Regs386.SP", Field, 0, ""}, - {"Regs386.SS", Field, 0, ""}, - {"RegsAMD64", Type, 0, ""}, - {"RegsAMD64.AX", Field, 0, ""}, - {"RegsAMD64.BP", Field, 0, ""}, - {"RegsAMD64.BX", Field, 0, ""}, - {"RegsAMD64.CS", Field, 0, ""}, - {"RegsAMD64.CX", Field, 0, ""}, - {"RegsAMD64.DI", Field, 0, ""}, - {"RegsAMD64.DX", Field, 0, ""}, - {"RegsAMD64.FLAGS", Field, 0, ""}, - {"RegsAMD64.FS", Field, 0, ""}, - {"RegsAMD64.GS", Field, 0, ""}, - {"RegsAMD64.IP", Field, 0, ""}, - {"RegsAMD64.R10", Field, 0, ""}, - {"RegsAMD64.R11", Field, 0, ""}, - {"RegsAMD64.R12", Field, 0, ""}, - {"RegsAMD64.R13", Field, 0, ""}, - {"RegsAMD64.R14", Field, 0, ""}, - {"RegsAMD64.R15", Field, 0, ""}, - {"RegsAMD64.R8", Field, 0, ""}, - {"RegsAMD64.R9", Field, 0, ""}, - {"RegsAMD64.SI", Field, 0, ""}, - {"RegsAMD64.SP", Field, 0, ""}, - {"Reloc", Type, 10, ""}, - {"Reloc.Addr", Field, 10, ""}, - {"Reloc.Extern", Field, 10, ""}, - {"Reloc.Len", Field, 10, ""}, - {"Reloc.Pcrel", Field, 10, ""}, - {"Reloc.Scattered", Field, 10, ""}, - {"Reloc.Type", Field, 10, ""}, - {"Reloc.Value", Field, 10, ""}, - {"RelocTypeARM", Type, 10, ""}, - {"RelocTypeARM64", Type, 10, ""}, - {"RelocTypeGeneric", Type, 10, ""}, - {"RelocTypeX86_64", Type, 10, ""}, - {"Rpath", Type, 10, ""}, - {"Rpath.LoadBytes", Field, 10, ""}, - {"Rpath.Path", Field, 10, ""}, - {"RpathCmd", Type, 10, ""}, - {"RpathCmd.Cmd", Field, 10, ""}, - {"RpathCmd.Len", Field, 10, ""}, - {"RpathCmd.Path", Field, 10, ""}, - {"Section", Type, 0, ""}, - {"Section.ReaderAt", Field, 0, ""}, - {"Section.Relocs", Field, 10, ""}, - {"Section.SectionHeader", Field, 0, ""}, - {"Section32", Type, 0, ""}, - {"Section32.Addr", Field, 0, ""}, - {"Section32.Align", Field, 0, ""}, - {"Section32.Flags", Field, 0, ""}, - {"Section32.Name", Field, 0, ""}, - {"Section32.Nreloc", Field, 0, ""}, - {"Section32.Offset", Field, 0, ""}, - {"Section32.Reloff", Field, 0, ""}, - {"Section32.Reserve1", Field, 0, ""}, - {"Section32.Reserve2", Field, 0, ""}, - {"Section32.Seg", Field, 0, ""}, - {"Section32.Size", Field, 0, ""}, - {"Section64", Type, 0, ""}, - {"Section64.Addr", Field, 0, ""}, - {"Section64.Align", Field, 0, ""}, - {"Section64.Flags", Field, 0, ""}, - {"Section64.Name", Field, 0, ""}, - {"Section64.Nreloc", Field, 0, ""}, - {"Section64.Offset", Field, 0, ""}, - {"Section64.Reloff", Field, 0, ""}, - {"Section64.Reserve1", Field, 0, ""}, - {"Section64.Reserve2", Field, 0, ""}, - {"Section64.Reserve3", Field, 0, ""}, - {"Section64.Seg", Field, 0, ""}, - {"Section64.Size", Field, 0, ""}, - {"SectionHeader", Type, 0, ""}, - {"SectionHeader.Addr", Field, 0, ""}, - {"SectionHeader.Align", Field, 0, ""}, - {"SectionHeader.Flags", Field, 0, ""}, - {"SectionHeader.Name", Field, 0, ""}, - {"SectionHeader.Nreloc", Field, 0, ""}, - {"SectionHeader.Offset", Field, 0, ""}, - {"SectionHeader.Reloff", Field, 0, ""}, - {"SectionHeader.Seg", Field, 0, ""}, - {"SectionHeader.Size", Field, 0, ""}, - {"Segment", Type, 0, ""}, - {"Segment.LoadBytes", Field, 0, ""}, - {"Segment.ReaderAt", Field, 0, ""}, - {"Segment.SegmentHeader", Field, 0, ""}, - {"Segment32", Type, 0, ""}, - {"Segment32.Addr", Field, 0, ""}, - {"Segment32.Cmd", Field, 0, ""}, - {"Segment32.Filesz", Field, 0, ""}, - {"Segment32.Flag", Field, 0, ""}, - {"Segment32.Len", Field, 0, ""}, - {"Segment32.Maxprot", Field, 0, ""}, - {"Segment32.Memsz", Field, 0, ""}, - {"Segment32.Name", Field, 0, ""}, - {"Segment32.Nsect", Field, 0, ""}, - {"Segment32.Offset", Field, 0, ""}, - {"Segment32.Prot", Field, 0, ""}, - {"Segment64", Type, 0, ""}, - {"Segment64.Addr", Field, 0, ""}, - {"Segment64.Cmd", Field, 0, ""}, - {"Segment64.Filesz", Field, 0, ""}, - {"Segment64.Flag", Field, 0, ""}, - {"Segment64.Len", Field, 0, ""}, - {"Segment64.Maxprot", Field, 0, ""}, - {"Segment64.Memsz", Field, 0, ""}, - {"Segment64.Name", Field, 0, ""}, - {"Segment64.Nsect", Field, 0, ""}, - {"Segment64.Offset", Field, 0, ""}, - {"Segment64.Prot", Field, 0, ""}, - {"SegmentHeader", Type, 0, ""}, - {"SegmentHeader.Addr", Field, 0, ""}, - {"SegmentHeader.Cmd", Field, 0, ""}, - {"SegmentHeader.Filesz", Field, 0, ""}, - {"SegmentHeader.Flag", Field, 0, ""}, - {"SegmentHeader.Len", Field, 0, ""}, - {"SegmentHeader.Maxprot", Field, 0, ""}, - {"SegmentHeader.Memsz", Field, 0, ""}, - {"SegmentHeader.Name", Field, 0, ""}, - {"SegmentHeader.Nsect", Field, 0, ""}, - {"SegmentHeader.Offset", Field, 0, ""}, - {"SegmentHeader.Prot", Field, 0, ""}, - {"Symbol", Type, 0, ""}, - {"Symbol.Desc", Field, 0, ""}, - {"Symbol.Name", Field, 0, ""}, - {"Symbol.Sect", Field, 0, ""}, - {"Symbol.Type", Field, 0, ""}, - {"Symbol.Value", Field, 0, ""}, - {"Symtab", Type, 0, ""}, - {"Symtab.LoadBytes", Field, 0, ""}, - {"Symtab.Syms", Field, 0, ""}, - {"Symtab.SymtabCmd", Field, 0, ""}, - {"SymtabCmd", Type, 0, ""}, - {"SymtabCmd.Cmd", Field, 0, ""}, - {"SymtabCmd.Len", Field, 0, ""}, - {"SymtabCmd.Nsyms", Field, 0, ""}, - {"SymtabCmd.Stroff", Field, 0, ""}, - {"SymtabCmd.Strsize", Field, 0, ""}, - {"SymtabCmd.Symoff", Field, 0, ""}, - {"Thread", Type, 0, ""}, - {"Thread.Cmd", Field, 0, ""}, - {"Thread.Data", Field, 0, ""}, - {"Thread.Len", Field, 0, ""}, - {"Thread.Type", Field, 0, ""}, - {"Type", Type, 0, ""}, - {"TypeBundle", Const, 3, ""}, - {"TypeDylib", Const, 3, ""}, - {"TypeExec", Const, 0, ""}, - {"TypeObj", Const, 0, ""}, - {"X86_64_RELOC_BRANCH", Const, 10, ""}, - {"X86_64_RELOC_GOT", Const, 10, ""}, - {"X86_64_RELOC_GOT_LOAD", Const, 10, ""}, - {"X86_64_RELOC_SIGNED", Const, 10, ""}, - {"X86_64_RELOC_SIGNED_1", Const, 10, ""}, - {"X86_64_RELOC_SIGNED_2", Const, 10, ""}, - {"X86_64_RELOC_SIGNED_4", Const, 10, ""}, - {"X86_64_RELOC_SUBTRACTOR", Const, 10, ""}, - {"X86_64_RELOC_TLV", Const, 10, ""}, - {"X86_64_RELOC_UNSIGNED", Const, 10, ""}, - }, - "debug/pe": { - {"(*COFFSymbol).FullName", Method, 8, ""}, - {"(*File).COFFSymbolReadSectionDefAux", Method, 19, ""}, - {"(*File).Close", Method, 0, ""}, - {"(*File).DWARF", Method, 0, ""}, - {"(*File).ImportedLibraries", Method, 0, ""}, - {"(*File).ImportedSymbols", Method, 0, ""}, - {"(*File).Section", Method, 0, ""}, - {"(*FormatError).Error", Method, 0, ""}, - {"(*Section).Data", Method, 0, ""}, - {"(*Section).Open", Method, 0, ""}, - {"(Section).ReadAt", Method, 0, ""}, - {"(StringTable).String", Method, 8, ""}, - {"COFFSymbol", Type, 1, ""}, - {"COFFSymbol.Name", Field, 1, ""}, - {"COFFSymbol.NumberOfAuxSymbols", Field, 1, ""}, - {"COFFSymbol.SectionNumber", Field, 1, ""}, - {"COFFSymbol.StorageClass", Field, 1, ""}, - {"COFFSymbol.Type", Field, 1, ""}, - {"COFFSymbol.Value", Field, 1, ""}, - {"COFFSymbolAuxFormat5", Type, 19, ""}, - {"COFFSymbolAuxFormat5.Checksum", Field, 19, ""}, - {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19, ""}, - {"COFFSymbolAuxFormat5.NumRelocs", Field, 19, ""}, - {"COFFSymbolAuxFormat5.SecNum", Field, 19, ""}, - {"COFFSymbolAuxFormat5.Selection", Field, 19, ""}, - {"COFFSymbolAuxFormat5.Size", Field, 19, ""}, - {"COFFSymbolSize", Const, 1, ""}, - {"DataDirectory", Type, 3, ""}, - {"DataDirectory.Size", Field, 3, ""}, - {"DataDirectory.VirtualAddress", Field, 3, ""}, - {"File", Type, 0, ""}, - {"File.COFFSymbols", Field, 8, ""}, - {"File.FileHeader", Field, 0, ""}, - {"File.OptionalHeader", Field, 3, ""}, - {"File.Sections", Field, 0, ""}, - {"File.StringTable", Field, 8, ""}, - {"File.Symbols", Field, 1, ""}, - {"FileHeader", Type, 0, ""}, - {"FileHeader.Characteristics", Field, 0, ""}, - {"FileHeader.Machine", Field, 0, ""}, - {"FileHeader.NumberOfSections", Field, 0, ""}, - {"FileHeader.NumberOfSymbols", Field, 0, ""}, - {"FileHeader.PointerToSymbolTable", Field, 0, ""}, - {"FileHeader.SizeOfOptionalHeader", Field, 0, ""}, - {"FileHeader.TimeDateStamp", Field, 0, ""}, - {"FormatError", Type, 0, ""}, - {"IMAGE_COMDAT_SELECT_ANY", Const, 19, ""}, - {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19, ""}, - {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19, ""}, - {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19, ""}, - {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19, ""}, - {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19, ""}, - {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11, ""}, - {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11, ""}, - {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15, ""}, - {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15, ""}, - {"IMAGE_FILE_32BIT_MACHINE", Const, 15, ""}, - {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15, ""}, - {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15, ""}, - {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15, ""}, - {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15, ""}, - {"IMAGE_FILE_DLL", Const, 15, ""}, - {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15, ""}, - {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15, ""}, - {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15, ""}, - {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15, ""}, - {"IMAGE_FILE_MACHINE_AM33", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_AMD64", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_ARM", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_ARM64", Const, 11, ""}, - {"IMAGE_FILE_MACHINE_ARMNT", Const, 12, ""}, - {"IMAGE_FILE_MACHINE_EBC", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_I386", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_IA64", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19, ""}, - {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19, ""}, - {"IMAGE_FILE_MACHINE_M32R", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_MIPS16", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_POWERPC", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_R4000", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_RISCV128", Const, 20, ""}, - {"IMAGE_FILE_MACHINE_RISCV32", Const, 20, ""}, - {"IMAGE_FILE_MACHINE_RISCV64", Const, 20, ""}, - {"IMAGE_FILE_MACHINE_SH3", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_SH4", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_SH5", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_THUMB", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0, ""}, - {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0, ""}, - {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15, ""}, - {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15, ""}, - {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15, ""}, - {"IMAGE_FILE_SYSTEM", Const, 15, ""}, - {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15, ""}, - {"IMAGE_SCN_CNT_CODE", Const, 19, ""}, - {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19, ""}, - {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19, ""}, - {"IMAGE_SCN_LNK_COMDAT", Const, 19, ""}, - {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19, ""}, - {"IMAGE_SCN_MEM_EXECUTE", Const, 19, ""}, - {"IMAGE_SCN_MEM_READ", Const, 19, ""}, - {"IMAGE_SCN_MEM_WRITE", Const, 19, ""}, - {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_NATIVE", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15, ""}, - {"IMAGE_SUBSYSTEM_XBOX", Const, 15, ""}, - {"ImportDirectory", Type, 0, ""}, - {"ImportDirectory.FirstThunk", Field, 0, ""}, - {"ImportDirectory.ForwarderChain", Field, 0, ""}, - {"ImportDirectory.Name", Field, 0, ""}, - {"ImportDirectory.OriginalFirstThunk", Field, 0, ""}, - {"ImportDirectory.TimeDateStamp", Field, 0, ""}, - {"NewFile", Func, 0, "func(r io.ReaderAt) (*File, error)"}, - {"Open", Func, 0, "func(name string) (*File, error)"}, - {"OptionalHeader32", Type, 3, ""}, - {"OptionalHeader32.AddressOfEntryPoint", Field, 3, ""}, - {"OptionalHeader32.BaseOfCode", Field, 3, ""}, - {"OptionalHeader32.BaseOfData", Field, 3, ""}, - {"OptionalHeader32.CheckSum", Field, 3, ""}, - {"OptionalHeader32.DataDirectory", Field, 3, ""}, - {"OptionalHeader32.DllCharacteristics", Field, 3, ""}, - {"OptionalHeader32.FileAlignment", Field, 3, ""}, - {"OptionalHeader32.ImageBase", Field, 3, ""}, - {"OptionalHeader32.LoaderFlags", Field, 3, ""}, - {"OptionalHeader32.Magic", Field, 3, ""}, - {"OptionalHeader32.MajorImageVersion", Field, 3, ""}, - {"OptionalHeader32.MajorLinkerVersion", Field, 3, ""}, - {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3, ""}, - {"OptionalHeader32.MajorSubsystemVersion", Field, 3, ""}, - {"OptionalHeader32.MinorImageVersion", Field, 3, ""}, - {"OptionalHeader32.MinorLinkerVersion", Field, 3, ""}, - {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3, ""}, - {"OptionalHeader32.MinorSubsystemVersion", Field, 3, ""}, - {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3, ""}, - {"OptionalHeader32.SectionAlignment", Field, 3, ""}, - {"OptionalHeader32.SizeOfCode", Field, 3, ""}, - {"OptionalHeader32.SizeOfHeaders", Field, 3, ""}, - {"OptionalHeader32.SizeOfHeapCommit", Field, 3, ""}, - {"OptionalHeader32.SizeOfHeapReserve", Field, 3, ""}, - {"OptionalHeader32.SizeOfImage", Field, 3, ""}, - {"OptionalHeader32.SizeOfInitializedData", Field, 3, ""}, - {"OptionalHeader32.SizeOfStackCommit", Field, 3, ""}, - {"OptionalHeader32.SizeOfStackReserve", Field, 3, ""}, - {"OptionalHeader32.SizeOfUninitializedData", Field, 3, ""}, - {"OptionalHeader32.Subsystem", Field, 3, ""}, - {"OptionalHeader32.Win32VersionValue", Field, 3, ""}, - {"OptionalHeader64", Type, 3, ""}, - {"OptionalHeader64.AddressOfEntryPoint", Field, 3, ""}, - {"OptionalHeader64.BaseOfCode", Field, 3, ""}, - {"OptionalHeader64.CheckSum", Field, 3, ""}, - {"OptionalHeader64.DataDirectory", Field, 3, ""}, - {"OptionalHeader64.DllCharacteristics", Field, 3, ""}, - {"OptionalHeader64.FileAlignment", Field, 3, ""}, - {"OptionalHeader64.ImageBase", Field, 3, ""}, - {"OptionalHeader64.LoaderFlags", Field, 3, ""}, - {"OptionalHeader64.Magic", Field, 3, ""}, - {"OptionalHeader64.MajorImageVersion", Field, 3, ""}, - {"OptionalHeader64.MajorLinkerVersion", Field, 3, ""}, - {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3, ""}, - {"OptionalHeader64.MajorSubsystemVersion", Field, 3, ""}, - {"OptionalHeader64.MinorImageVersion", Field, 3, ""}, - {"OptionalHeader64.MinorLinkerVersion", Field, 3, ""}, - {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3, ""}, - {"OptionalHeader64.MinorSubsystemVersion", Field, 3, ""}, - {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3, ""}, - {"OptionalHeader64.SectionAlignment", Field, 3, ""}, - {"OptionalHeader64.SizeOfCode", Field, 3, ""}, - {"OptionalHeader64.SizeOfHeaders", Field, 3, ""}, - {"OptionalHeader64.SizeOfHeapCommit", Field, 3, ""}, - {"OptionalHeader64.SizeOfHeapReserve", Field, 3, ""}, - {"OptionalHeader64.SizeOfImage", Field, 3, ""}, - {"OptionalHeader64.SizeOfInitializedData", Field, 3, ""}, - {"OptionalHeader64.SizeOfStackCommit", Field, 3, ""}, - {"OptionalHeader64.SizeOfStackReserve", Field, 3, ""}, - {"OptionalHeader64.SizeOfUninitializedData", Field, 3, ""}, - {"OptionalHeader64.Subsystem", Field, 3, ""}, - {"OptionalHeader64.Win32VersionValue", Field, 3, ""}, - {"Reloc", Type, 8, ""}, - {"Reloc.SymbolTableIndex", Field, 8, ""}, - {"Reloc.Type", Field, 8, ""}, - {"Reloc.VirtualAddress", Field, 8, ""}, - {"Section", Type, 0, ""}, - {"Section.ReaderAt", Field, 0, ""}, - {"Section.Relocs", Field, 8, ""}, - {"Section.SectionHeader", Field, 0, ""}, - {"SectionHeader", Type, 0, ""}, - {"SectionHeader.Characteristics", Field, 0, ""}, - {"SectionHeader.Name", Field, 0, ""}, - {"SectionHeader.NumberOfLineNumbers", Field, 0, ""}, - {"SectionHeader.NumberOfRelocations", Field, 0, ""}, - {"SectionHeader.Offset", Field, 0, ""}, - {"SectionHeader.PointerToLineNumbers", Field, 0, ""}, - {"SectionHeader.PointerToRelocations", Field, 0, ""}, - {"SectionHeader.Size", Field, 0, ""}, - {"SectionHeader.VirtualAddress", Field, 0, ""}, - {"SectionHeader.VirtualSize", Field, 0, ""}, - {"SectionHeader32", Type, 0, ""}, - {"SectionHeader32.Characteristics", Field, 0, ""}, - {"SectionHeader32.Name", Field, 0, ""}, - {"SectionHeader32.NumberOfLineNumbers", Field, 0, ""}, - {"SectionHeader32.NumberOfRelocations", Field, 0, ""}, - {"SectionHeader32.PointerToLineNumbers", Field, 0, ""}, - {"SectionHeader32.PointerToRawData", Field, 0, ""}, - {"SectionHeader32.PointerToRelocations", Field, 0, ""}, - {"SectionHeader32.SizeOfRawData", Field, 0, ""}, - {"SectionHeader32.VirtualAddress", Field, 0, ""}, - {"SectionHeader32.VirtualSize", Field, 0, ""}, - {"StringTable", Type, 8, ""}, - {"Symbol", Type, 1, ""}, - {"Symbol.Name", Field, 1, ""}, - {"Symbol.SectionNumber", Field, 1, ""}, - {"Symbol.StorageClass", Field, 1, ""}, - {"Symbol.Type", Field, 1, ""}, - {"Symbol.Value", Field, 1, ""}, - }, - "debug/plan9obj": { - {"(*File).Close", Method, 3, ""}, - {"(*File).Section", Method, 3, ""}, - {"(*File).Symbols", Method, 3, ""}, - {"(*Section).Data", Method, 3, ""}, - {"(*Section).Open", Method, 3, ""}, - {"(Section).ReadAt", Method, 3, ""}, - {"ErrNoSymbols", Var, 18, ""}, - {"File", Type, 3, ""}, - {"File.FileHeader", Field, 3, ""}, - {"File.Sections", Field, 3, ""}, - {"FileHeader", Type, 3, ""}, - {"FileHeader.Bss", Field, 3, ""}, - {"FileHeader.Entry", Field, 3, ""}, - {"FileHeader.HdrSize", Field, 4, ""}, - {"FileHeader.LoadAddress", Field, 4, ""}, - {"FileHeader.Magic", Field, 3, ""}, - {"FileHeader.PtrSize", Field, 3, ""}, - {"Magic386", Const, 3, ""}, - {"Magic64", Const, 3, ""}, - {"MagicAMD64", Const, 3, ""}, - {"MagicARM", Const, 3, ""}, - {"NewFile", Func, 3, "func(r io.ReaderAt) (*File, error)"}, - {"Open", Func, 3, "func(name string) (*File, error)"}, - {"Section", Type, 3, ""}, - {"Section.ReaderAt", Field, 3, ""}, - {"Section.SectionHeader", Field, 3, ""}, - {"SectionHeader", Type, 3, ""}, - {"SectionHeader.Name", Field, 3, ""}, - {"SectionHeader.Offset", Field, 3, ""}, - {"SectionHeader.Size", Field, 3, ""}, - {"Sym", Type, 3, ""}, - {"Sym.Name", Field, 3, ""}, - {"Sym.Type", Field, 3, ""}, - {"Sym.Value", Field, 3, ""}, - }, - "embed": { - {"(FS).Open", Method, 16, ""}, - {"(FS).ReadDir", Method, 16, ""}, - {"(FS).ReadFile", Method, 16, ""}, - {"FS", Type, 16, ""}, - }, - "encoding": { - {"BinaryAppender", Type, 24, ""}, - {"BinaryMarshaler", Type, 2, ""}, - {"BinaryUnmarshaler", Type, 2, ""}, - {"TextAppender", Type, 24, ""}, - {"TextMarshaler", Type, 2, ""}, - {"TextUnmarshaler", Type, 2, ""}, - }, - "encoding/ascii85": { - {"(CorruptInputError).Error", Method, 0, ""}, - {"CorruptInputError", Type, 0, ""}, - {"Decode", Func, 0, "func(dst []byte, src []byte, flush bool) (ndst int, nsrc int, err error)"}, - {"Encode", Func, 0, "func(dst []byte, src []byte) int"}, - {"MaxEncodedLen", Func, 0, "func(n int) int"}, - {"NewDecoder", Func, 0, "func(r io.Reader) io.Reader"}, - {"NewEncoder", Func, 0, "func(w io.Writer) io.WriteCloser"}, - }, - "encoding/asn1": { - {"(BitString).At", Method, 0, ""}, - {"(BitString).RightAlign", Method, 0, ""}, - {"(ObjectIdentifier).Equal", Method, 0, ""}, - {"(ObjectIdentifier).String", Method, 3, ""}, - {"(StructuralError).Error", Method, 0, ""}, - {"(SyntaxError).Error", Method, 0, ""}, - {"BitString", Type, 0, ""}, - {"BitString.BitLength", Field, 0, ""}, - {"BitString.Bytes", Field, 0, ""}, - {"ClassApplication", Const, 6, ""}, - {"ClassContextSpecific", Const, 6, ""}, - {"ClassPrivate", Const, 6, ""}, - {"ClassUniversal", Const, 6, ""}, - {"Enumerated", Type, 0, ""}, - {"Flag", Type, 0, ""}, - {"Marshal", Func, 0, "func(val any) ([]byte, error)"}, - {"MarshalWithParams", Func, 10, "func(val any, params string) ([]byte, error)"}, - {"NullBytes", Var, 9, ""}, - {"NullRawValue", Var, 9, ""}, - {"ObjectIdentifier", Type, 0, ""}, - {"RawContent", Type, 0, ""}, - {"RawValue", Type, 0, ""}, - {"RawValue.Bytes", Field, 0, ""}, - {"RawValue.Class", Field, 0, ""}, - {"RawValue.FullBytes", Field, 0, ""}, - {"RawValue.IsCompound", Field, 0, ""}, - {"RawValue.Tag", Field, 0, ""}, - {"StructuralError", Type, 0, ""}, - {"StructuralError.Msg", Field, 0, ""}, - {"SyntaxError", Type, 0, ""}, - {"SyntaxError.Msg", Field, 0, ""}, - {"TagBMPString", Const, 14, ""}, - {"TagBitString", Const, 6, ""}, - {"TagBoolean", Const, 6, ""}, - {"TagEnum", Const, 6, ""}, - {"TagGeneralString", Const, 6, ""}, - {"TagGeneralizedTime", Const, 6, ""}, - {"TagIA5String", Const, 6, ""}, - {"TagInteger", Const, 6, ""}, - {"TagNull", Const, 9, ""}, - {"TagNumericString", Const, 10, ""}, - {"TagOID", Const, 6, ""}, - {"TagOctetString", Const, 6, ""}, - {"TagPrintableString", Const, 6, ""}, - {"TagSequence", Const, 6, ""}, - {"TagSet", Const, 6, ""}, - {"TagT61String", Const, 6, ""}, - {"TagUTCTime", Const, 6, ""}, - {"TagUTF8String", Const, 6, ""}, - {"Unmarshal", Func, 0, "func(b []byte, val any) (rest []byte, err error)"}, - {"UnmarshalWithParams", Func, 0, "func(b []byte, val any, params string) (rest []byte, err error)"}, - }, - "encoding/base32": { - {"(*Encoding).AppendDecode", Method, 22, ""}, - {"(*Encoding).AppendEncode", Method, 22, ""}, - {"(*Encoding).Decode", Method, 0, ""}, - {"(*Encoding).DecodeString", Method, 0, ""}, - {"(*Encoding).DecodedLen", Method, 0, ""}, - {"(*Encoding).Encode", Method, 0, ""}, - {"(*Encoding).EncodeToString", Method, 0, ""}, - {"(*Encoding).EncodedLen", Method, 0, ""}, - {"(CorruptInputError).Error", Method, 0, ""}, - {"(Encoding).WithPadding", Method, 9, ""}, - {"CorruptInputError", Type, 0, ""}, - {"Encoding", Type, 0, ""}, - {"HexEncoding", Var, 0, ""}, - {"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"}, - {"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"}, - {"NewEncoding", Func, 0, "func(encoder string) *Encoding"}, - {"NoPadding", Const, 9, ""}, - {"StdEncoding", Var, 0, ""}, - {"StdPadding", Const, 9, ""}, - }, - "encoding/base64": { - {"(*Encoding).AppendDecode", Method, 22, ""}, - {"(*Encoding).AppendEncode", Method, 22, ""}, - {"(*Encoding).Decode", Method, 0, ""}, - {"(*Encoding).DecodeString", Method, 0, ""}, - {"(*Encoding).DecodedLen", Method, 0, ""}, - {"(*Encoding).Encode", Method, 0, ""}, - {"(*Encoding).EncodeToString", Method, 0, ""}, - {"(*Encoding).EncodedLen", Method, 0, ""}, - {"(CorruptInputError).Error", Method, 0, ""}, - {"(Encoding).Strict", Method, 8, ""}, - {"(Encoding).WithPadding", Method, 5, ""}, - {"CorruptInputError", Type, 0, ""}, - {"Encoding", Type, 0, ""}, - {"NewDecoder", Func, 0, "func(enc *Encoding, r io.Reader) io.Reader"}, - {"NewEncoder", Func, 0, "func(enc *Encoding, w io.Writer) io.WriteCloser"}, - {"NewEncoding", Func, 0, "func(encoder string) *Encoding"}, - {"NoPadding", Const, 5, ""}, - {"RawStdEncoding", Var, 5, ""}, - {"RawURLEncoding", Var, 5, ""}, - {"StdEncoding", Var, 0, ""}, - {"StdPadding", Const, 5, ""}, - {"URLEncoding", Var, 0, ""}, - }, - "encoding/binary": { - {"Append", Func, 23, "func(buf []byte, order ByteOrder, data any) ([]byte, error)"}, - {"AppendByteOrder", Type, 19, ""}, - {"AppendUvarint", Func, 19, "func(buf []byte, x uint64) []byte"}, - {"AppendVarint", Func, 19, "func(buf []byte, x int64) []byte"}, - {"BigEndian", Var, 0, ""}, - {"ByteOrder", Type, 0, ""}, - {"Decode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"}, - {"Encode", Func, 23, "func(buf []byte, order ByteOrder, data any) (int, error)"}, - {"LittleEndian", Var, 0, ""}, - {"MaxVarintLen16", Const, 0, ""}, - {"MaxVarintLen32", Const, 0, ""}, - {"MaxVarintLen64", Const, 0, ""}, - {"NativeEndian", Var, 21, ""}, - {"PutUvarint", Func, 0, "func(buf []byte, x uint64) int"}, - {"PutVarint", Func, 0, "func(buf []byte, x int64) int"}, - {"Read", Func, 0, "func(r io.Reader, order ByteOrder, data any) error"}, - {"ReadUvarint", Func, 0, "func(r io.ByteReader) (uint64, error)"}, - {"ReadVarint", Func, 0, "func(r io.ByteReader) (int64, error)"}, - {"Size", Func, 0, "func(v any) int"}, - {"Uvarint", Func, 0, "func(buf []byte) (uint64, int)"}, - {"Varint", Func, 0, "func(buf []byte) (int64, int)"}, - {"Write", Func, 0, "func(w io.Writer, order ByteOrder, data any) error"}, - }, - "encoding/csv": { - {"(*ParseError).Error", Method, 0, ""}, - {"(*ParseError).Unwrap", Method, 13, ""}, - {"(*Reader).FieldPos", Method, 17, ""}, - {"(*Reader).InputOffset", Method, 19, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Reader).ReadAll", Method, 0, ""}, - {"(*Writer).Error", Method, 1, ""}, - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"(*Writer).WriteAll", Method, 0, ""}, - {"ErrBareQuote", Var, 0, ""}, - {"ErrFieldCount", Var, 0, ""}, - {"ErrQuote", Var, 0, ""}, - {"ErrTrailingComma", Var, 0, ""}, - {"NewReader", Func, 0, "func(r io.Reader) *Reader"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"ParseError", Type, 0, ""}, - {"ParseError.Column", Field, 0, ""}, - {"ParseError.Err", Field, 0, ""}, - {"ParseError.Line", Field, 0, ""}, - {"ParseError.StartLine", Field, 10, ""}, - {"Reader", Type, 0, ""}, - {"Reader.Comma", Field, 0, ""}, - {"Reader.Comment", Field, 0, ""}, - {"Reader.FieldsPerRecord", Field, 0, ""}, - {"Reader.LazyQuotes", Field, 0, ""}, - {"Reader.ReuseRecord", Field, 9, ""}, - {"Reader.TrailingComma", Field, 0, ""}, - {"Reader.TrimLeadingSpace", Field, 0, ""}, - {"Writer", Type, 0, ""}, - {"Writer.Comma", Field, 0, ""}, - {"Writer.UseCRLF", Field, 0, ""}, - }, - "encoding/gob": { - {"(*Decoder).Decode", Method, 0, ""}, - {"(*Decoder).DecodeValue", Method, 0, ""}, - {"(*Encoder).Encode", Method, 0, ""}, - {"(*Encoder).EncodeValue", Method, 0, ""}, - {"CommonType", Type, 0, ""}, - {"CommonType.Id", Field, 0, ""}, - {"CommonType.Name", Field, 0, ""}, - {"Decoder", Type, 0, ""}, - {"Encoder", Type, 0, ""}, - {"GobDecoder", Type, 0, ""}, - {"GobEncoder", Type, 0, ""}, - {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, - {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, - {"Register", Func, 0, "func(value any)"}, - {"RegisterName", Func, 0, "func(name string, value any)"}, - }, - "encoding/hex": { - {"(InvalidByteError).Error", Method, 0, ""}, - {"AppendDecode", Func, 22, "func(dst []byte, src []byte) ([]byte, error)"}, - {"AppendEncode", Func, 22, "func(dst []byte, src []byte) []byte"}, - {"Decode", Func, 0, "func(dst []byte, src []byte) (int, error)"}, - {"DecodeString", Func, 0, "func(s string) ([]byte, error)"}, - {"DecodedLen", Func, 0, "func(x int) int"}, - {"Dump", Func, 0, "func(data []byte) string"}, - {"Dumper", Func, 0, "func(w io.Writer) io.WriteCloser"}, - {"Encode", Func, 0, "func(dst []byte, src []byte) int"}, - {"EncodeToString", Func, 0, "func(src []byte) string"}, - {"EncodedLen", Func, 0, "func(n int) int"}, - {"ErrLength", Var, 0, ""}, - {"InvalidByteError", Type, 0, ""}, - {"NewDecoder", Func, 10, "func(r io.Reader) io.Reader"}, - {"NewEncoder", Func, 10, "func(w io.Writer) io.Writer"}, - }, - "encoding/json": { - {"(*Decoder).Buffered", Method, 1, ""}, - {"(*Decoder).Decode", Method, 0, ""}, - {"(*Decoder).DisallowUnknownFields", Method, 10, ""}, - {"(*Decoder).InputOffset", Method, 14, ""}, - {"(*Decoder).More", Method, 5, ""}, - {"(*Decoder).Token", Method, 5, ""}, - {"(*Decoder).UseNumber", Method, 1, ""}, - {"(*Encoder).Encode", Method, 0, ""}, - {"(*Encoder).SetEscapeHTML", Method, 7, ""}, - {"(*Encoder).SetIndent", Method, 7, ""}, - {"(*InvalidUTF8Error).Error", Method, 0, ""}, - {"(*InvalidUnmarshalError).Error", Method, 0, ""}, - {"(*MarshalerError).Error", Method, 0, ""}, - {"(*MarshalerError).Unwrap", Method, 13, ""}, - {"(*RawMessage).MarshalJSON", Method, 0, ""}, - {"(*RawMessage).UnmarshalJSON", Method, 0, ""}, - {"(*SyntaxError).Error", Method, 0, ""}, - {"(*UnmarshalFieldError).Error", Method, 0, ""}, - {"(*UnmarshalTypeError).Error", Method, 0, ""}, - {"(*UnsupportedTypeError).Error", Method, 0, ""}, - {"(*UnsupportedValueError).Error", Method, 0, ""}, - {"(Delim).String", Method, 5, ""}, - {"(Number).Float64", Method, 1, ""}, - {"(Number).Int64", Method, 1, ""}, - {"(Number).String", Method, 1, ""}, - {"(RawMessage).MarshalJSON", Method, 8, ""}, - {"Compact", Func, 0, "func(dst *bytes.Buffer, src []byte) error"}, - {"Decoder", Type, 0, ""}, - {"Delim", Type, 5, ""}, - {"Encoder", Type, 0, ""}, - {"HTMLEscape", Func, 0, "func(dst *bytes.Buffer, src []byte)"}, - {"Indent", Func, 0, "func(dst *bytes.Buffer, src []byte, prefix string, indent string) error"}, - {"InvalidUTF8Error", Type, 0, ""}, - {"InvalidUTF8Error.S", Field, 0, ""}, - {"InvalidUnmarshalError", Type, 0, ""}, - {"InvalidUnmarshalError.Type", Field, 0, ""}, - {"Marshal", Func, 0, "func(v any) ([]byte, error)"}, - {"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"}, - {"Marshaler", Type, 0, ""}, - {"MarshalerError", Type, 0, ""}, - {"MarshalerError.Err", Field, 0, ""}, - {"MarshalerError.Type", Field, 0, ""}, - {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, - {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, - {"Number", Type, 1, ""}, - {"RawMessage", Type, 0, ""}, - {"SyntaxError", Type, 0, ""}, - {"SyntaxError.Offset", Field, 0, ""}, - {"Token", Type, 5, ""}, - {"Unmarshal", Func, 0, "func(data []byte, v any) error"}, - {"UnmarshalFieldError", Type, 0, ""}, - {"UnmarshalFieldError.Field", Field, 0, ""}, - {"UnmarshalFieldError.Key", Field, 0, ""}, - {"UnmarshalFieldError.Type", Field, 0, ""}, - {"UnmarshalTypeError", Type, 0, ""}, - {"UnmarshalTypeError.Field", Field, 8, ""}, - {"UnmarshalTypeError.Offset", Field, 5, ""}, - {"UnmarshalTypeError.Struct", Field, 8, ""}, - {"UnmarshalTypeError.Type", Field, 0, ""}, - {"UnmarshalTypeError.Value", Field, 0, ""}, - {"Unmarshaler", Type, 0, ""}, - {"UnsupportedTypeError", Type, 0, ""}, - {"UnsupportedTypeError.Type", Field, 0, ""}, - {"UnsupportedValueError", Type, 0, ""}, - {"UnsupportedValueError.Str", Field, 0, ""}, - {"UnsupportedValueError.Value", Field, 0, ""}, - {"Valid", Func, 9, "func(data []byte) bool"}, - }, - "encoding/pem": { - {"Block", Type, 0, ""}, - {"Block.Bytes", Field, 0, ""}, - {"Block.Headers", Field, 0, ""}, - {"Block.Type", Field, 0, ""}, - {"Decode", Func, 0, "func(data []byte) (p *Block, rest []byte)"}, - {"Encode", Func, 0, "func(out io.Writer, b *Block) error"}, - {"EncodeToMemory", Func, 0, "func(b *Block) []byte"}, - }, - "encoding/xml": { - {"(*Decoder).Decode", Method, 0, ""}, - {"(*Decoder).DecodeElement", Method, 0, ""}, - {"(*Decoder).InputOffset", Method, 4, ""}, - {"(*Decoder).InputPos", Method, 19, ""}, - {"(*Decoder).RawToken", Method, 0, ""}, - {"(*Decoder).Skip", Method, 0, ""}, - {"(*Decoder).Token", Method, 0, ""}, - {"(*Encoder).Close", Method, 20, ""}, - {"(*Encoder).Encode", Method, 0, ""}, - {"(*Encoder).EncodeElement", Method, 2, ""}, - {"(*Encoder).EncodeToken", Method, 2, ""}, - {"(*Encoder).Flush", Method, 2, ""}, - {"(*Encoder).Indent", Method, 1, ""}, - {"(*SyntaxError).Error", Method, 0, ""}, - {"(*TagPathError).Error", Method, 0, ""}, - {"(*UnsupportedTypeError).Error", Method, 0, ""}, - {"(CharData).Copy", Method, 0, ""}, - {"(Comment).Copy", Method, 0, ""}, - {"(Directive).Copy", Method, 0, ""}, - {"(ProcInst).Copy", Method, 0, ""}, - {"(StartElement).Copy", Method, 0, ""}, - {"(StartElement).End", Method, 2, ""}, - {"(UnmarshalError).Error", Method, 0, ""}, - {"Attr", Type, 0, ""}, - {"Attr.Name", Field, 0, ""}, - {"Attr.Value", Field, 0, ""}, - {"CharData", Type, 0, ""}, - {"Comment", Type, 0, ""}, - {"CopyToken", Func, 0, "func(t Token) Token"}, - {"Decoder", Type, 0, ""}, - {"Decoder.AutoClose", Field, 0, ""}, - {"Decoder.CharsetReader", Field, 0, ""}, - {"Decoder.DefaultSpace", Field, 1, ""}, - {"Decoder.Entity", Field, 0, ""}, - {"Decoder.Strict", Field, 0, ""}, - {"Directive", Type, 0, ""}, - {"Encoder", Type, 0, ""}, - {"EndElement", Type, 0, ""}, - {"EndElement.Name", Field, 0, ""}, - {"Escape", Func, 0, "func(w io.Writer, s []byte)"}, - {"EscapeText", Func, 1, "func(w io.Writer, s []byte) error"}, - {"HTMLAutoClose", Var, 0, ""}, - {"HTMLEntity", Var, 0, ""}, - {"Header", Const, 0, ""}, - {"Marshal", Func, 0, "func(v any) ([]byte, error)"}, - {"MarshalIndent", Func, 0, "func(v any, prefix string, indent string) ([]byte, error)"}, - {"Marshaler", Type, 2, ""}, - {"MarshalerAttr", Type, 2, ""}, - {"Name", Type, 0, ""}, - {"Name.Local", Field, 0, ""}, - {"Name.Space", Field, 0, ""}, - {"NewDecoder", Func, 0, "func(r io.Reader) *Decoder"}, - {"NewEncoder", Func, 0, "func(w io.Writer) *Encoder"}, - {"NewTokenDecoder", Func, 10, "func(t TokenReader) *Decoder"}, - {"ProcInst", Type, 0, ""}, - {"ProcInst.Inst", Field, 0, ""}, - {"ProcInst.Target", Field, 0, ""}, - {"StartElement", Type, 0, ""}, - {"StartElement.Attr", Field, 0, ""}, - {"StartElement.Name", Field, 0, ""}, - {"SyntaxError", Type, 0, ""}, - {"SyntaxError.Line", Field, 0, ""}, - {"SyntaxError.Msg", Field, 0, ""}, - {"TagPathError", Type, 0, ""}, - {"TagPathError.Field1", Field, 0, ""}, - {"TagPathError.Field2", Field, 0, ""}, - {"TagPathError.Struct", Field, 0, ""}, - {"TagPathError.Tag1", Field, 0, ""}, - {"TagPathError.Tag2", Field, 0, ""}, - {"Token", Type, 0, ""}, - {"TokenReader", Type, 10, ""}, - {"Unmarshal", Func, 0, "func(data []byte, v any) error"}, - {"UnmarshalError", Type, 0, ""}, - {"Unmarshaler", Type, 2, ""}, - {"UnmarshalerAttr", Type, 2, ""}, - {"UnsupportedTypeError", Type, 0, ""}, - {"UnsupportedTypeError.Type", Field, 0, ""}, - }, - "errors": { - {"As", Func, 13, "func(err error, target any) bool"}, - {"ErrUnsupported", Var, 21, ""}, - {"Is", Func, 13, "func(err error, target error) bool"}, - {"Join", Func, 20, "func(errs ...error) error"}, - {"New", Func, 0, "func(text string) error"}, - {"Unwrap", Func, 13, "func(err error) error"}, - }, - "expvar": { - {"(*Float).Add", Method, 0, ""}, - {"(*Float).Set", Method, 0, ""}, - {"(*Float).String", Method, 0, ""}, - {"(*Float).Value", Method, 8, ""}, - {"(*Int).Add", Method, 0, ""}, - {"(*Int).Set", Method, 0, ""}, - {"(*Int).String", Method, 0, ""}, - {"(*Int).Value", Method, 8, ""}, - {"(*Map).Add", Method, 0, ""}, - {"(*Map).AddFloat", Method, 0, ""}, - {"(*Map).Delete", Method, 12, ""}, - {"(*Map).Do", Method, 0, ""}, - {"(*Map).Get", Method, 0, ""}, - {"(*Map).Init", Method, 0, ""}, - {"(*Map).Set", Method, 0, ""}, - {"(*Map).String", Method, 0, ""}, - {"(*String).Set", Method, 0, ""}, - {"(*String).String", Method, 0, ""}, - {"(*String).Value", Method, 8, ""}, - {"(Func).String", Method, 0, ""}, - {"(Func).Value", Method, 8, ""}, - {"Do", Func, 0, "func(f func(KeyValue))"}, - {"Float", Type, 0, ""}, - {"Func", Type, 0, ""}, - {"Get", Func, 0, "func(name string) Var"}, - {"Handler", Func, 8, "func() http.Handler"}, - {"Int", Type, 0, ""}, - {"KeyValue", Type, 0, ""}, - {"KeyValue.Key", Field, 0, ""}, - {"KeyValue.Value", Field, 0, ""}, - {"Map", Type, 0, ""}, - {"NewFloat", Func, 0, "func(name string) *Float"}, - {"NewInt", Func, 0, "func(name string) *Int"}, - {"NewMap", Func, 0, "func(name string) *Map"}, - {"NewString", Func, 0, "func(name string) *String"}, - {"Publish", Func, 0, "func(name string, v Var)"}, - {"String", Type, 0, ""}, - {"Var", Type, 0, ""}, - }, - "flag": { - {"(*FlagSet).Arg", Method, 0, ""}, - {"(*FlagSet).Args", Method, 0, ""}, - {"(*FlagSet).Bool", Method, 0, ""}, - {"(*FlagSet).BoolFunc", Method, 21, ""}, - {"(*FlagSet).BoolVar", Method, 0, ""}, - {"(*FlagSet).Duration", Method, 0, ""}, - {"(*FlagSet).DurationVar", Method, 0, ""}, - {"(*FlagSet).ErrorHandling", Method, 10, ""}, - {"(*FlagSet).Float64", Method, 0, ""}, - {"(*FlagSet).Float64Var", Method, 0, ""}, - {"(*FlagSet).Func", Method, 16, ""}, - {"(*FlagSet).Init", Method, 0, ""}, - {"(*FlagSet).Int", Method, 0, ""}, - {"(*FlagSet).Int64", Method, 0, ""}, - {"(*FlagSet).Int64Var", Method, 0, ""}, - {"(*FlagSet).IntVar", Method, 0, ""}, - {"(*FlagSet).Lookup", Method, 0, ""}, - {"(*FlagSet).NArg", Method, 0, ""}, - {"(*FlagSet).NFlag", Method, 0, ""}, - {"(*FlagSet).Name", Method, 10, ""}, - {"(*FlagSet).Output", Method, 10, ""}, - {"(*FlagSet).Parse", Method, 0, ""}, - {"(*FlagSet).Parsed", Method, 0, ""}, - {"(*FlagSet).PrintDefaults", Method, 0, ""}, - {"(*FlagSet).Set", Method, 0, ""}, - {"(*FlagSet).SetOutput", Method, 0, ""}, - {"(*FlagSet).String", Method, 0, ""}, - {"(*FlagSet).StringVar", Method, 0, ""}, - {"(*FlagSet).TextVar", Method, 19, ""}, - {"(*FlagSet).Uint", Method, 0, ""}, - {"(*FlagSet).Uint64", Method, 0, ""}, - {"(*FlagSet).Uint64Var", Method, 0, ""}, - {"(*FlagSet).UintVar", Method, 0, ""}, - {"(*FlagSet).Var", Method, 0, ""}, - {"(*FlagSet).Visit", Method, 0, ""}, - {"(*FlagSet).VisitAll", Method, 0, ""}, - {"Arg", Func, 0, "func(i int) string"}, - {"Args", Func, 0, "func() []string"}, - {"Bool", Func, 0, "func(name string, value bool, usage string) *bool"}, - {"BoolFunc", Func, 21, "func(name string, usage string, fn func(string) error)"}, - {"BoolVar", Func, 0, "func(p *bool, name string, value bool, usage string)"}, - {"CommandLine", Var, 2, ""}, - {"ContinueOnError", Const, 0, ""}, - {"Duration", Func, 0, "func(name string, value time.Duration, usage string) *time.Duration"}, - {"DurationVar", Func, 0, "func(p *time.Duration, name string, value time.Duration, usage string)"}, - {"ErrHelp", Var, 0, ""}, - {"ErrorHandling", Type, 0, ""}, - {"ExitOnError", Const, 0, ""}, - {"Flag", Type, 0, ""}, - {"Flag.DefValue", Field, 0, ""}, - {"Flag.Name", Field, 0, ""}, - {"Flag.Usage", Field, 0, ""}, - {"Flag.Value", Field, 0, ""}, - {"FlagSet", Type, 0, ""}, - {"FlagSet.Usage", Field, 0, ""}, - {"Float64", Func, 0, "func(name string, value float64, usage string) *float64"}, - {"Float64Var", Func, 0, "func(p *float64, name string, value float64, usage string)"}, - {"Func", Func, 16, "func(name string, usage string, fn func(string) error)"}, - {"Getter", Type, 2, ""}, - {"Int", Func, 0, "func(name string, value int, usage string) *int"}, - {"Int64", Func, 0, "func(name string, value int64, usage string) *int64"}, - {"Int64Var", Func, 0, "func(p *int64, name string, value int64, usage string)"}, - {"IntVar", Func, 0, "func(p *int, name string, value int, usage string)"}, - {"Lookup", Func, 0, "func(name string) *Flag"}, - {"NArg", Func, 0, "func() int"}, - {"NFlag", Func, 0, "func() int"}, - {"NewFlagSet", Func, 0, "func(name string, errorHandling ErrorHandling) *FlagSet"}, - {"PanicOnError", Const, 0, ""}, - {"Parse", Func, 0, "func()"}, - {"Parsed", Func, 0, "func() bool"}, - {"PrintDefaults", Func, 0, "func()"}, - {"Set", Func, 0, "func(name string, value string) error"}, - {"String", Func, 0, "func(name string, value string, usage string) *string"}, - {"StringVar", Func, 0, "func(p *string, name string, value string, usage string)"}, - {"TextVar", Func, 19, "func(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string)"}, - {"Uint", Func, 0, "func(name string, value uint, usage string) *uint"}, - {"Uint64", Func, 0, "func(name string, value uint64, usage string) *uint64"}, - {"Uint64Var", Func, 0, "func(p *uint64, name string, value uint64, usage string)"}, - {"UintVar", Func, 0, "func(p *uint, name string, value uint, usage string)"}, - {"UnquoteUsage", Func, 5, "func(flag *Flag) (name string, usage string)"}, - {"Usage", Var, 0, ""}, - {"Value", Type, 0, ""}, - {"Var", Func, 0, "func(value Value, name string, usage string)"}, - {"Visit", Func, 0, "func(fn func(*Flag))"}, - {"VisitAll", Func, 0, "func(fn func(*Flag))"}, - }, - "fmt": { - {"Append", Func, 19, "func(b []byte, a ...any) []byte"}, - {"Appendf", Func, 19, "func(b []byte, format string, a ...any) []byte"}, - {"Appendln", Func, 19, "func(b []byte, a ...any) []byte"}, - {"Errorf", Func, 0, "func(format string, a ...any) error"}, - {"FormatString", Func, 20, "func(state State, verb rune) string"}, - {"Formatter", Type, 0, ""}, - {"Fprint", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"}, - {"Fprintf", Func, 0, "func(w io.Writer, format string, a ...any) (n int, err error)"}, - {"Fprintln", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"}, - {"Fscan", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"}, - {"Fscanf", Func, 0, "func(r io.Reader, format string, a ...any) (n int, err error)"}, - {"Fscanln", Func, 0, "func(r io.Reader, a ...any) (n int, err error)"}, - {"GoStringer", Type, 0, ""}, - {"Print", Func, 0, "func(a ...any) (n int, err error)"}, - {"Printf", Func, 0, "func(format string, a ...any) (n int, err error)"}, - {"Println", Func, 0, "func(a ...any) (n int, err error)"}, - {"Scan", Func, 0, "func(a ...any) (n int, err error)"}, - {"ScanState", Type, 0, ""}, - {"Scanf", Func, 0, "func(format string, a ...any) (n int, err error)"}, - {"Scanln", Func, 0, "func(a ...any) (n int, err error)"}, - {"Scanner", Type, 0, ""}, - {"Sprint", Func, 0, "func(a ...any) string"}, - {"Sprintf", Func, 0, "func(format string, a ...any) string"}, - {"Sprintln", Func, 0, "func(a ...any) string"}, - {"Sscan", Func, 0, "func(str string, a ...any) (n int, err error)"}, - {"Sscanf", Func, 0, "func(str string, format string, a ...any) (n int, err error)"}, - {"Sscanln", Func, 0, "func(str string, a ...any) (n int, err error)"}, - {"State", Type, 0, ""}, - {"Stringer", Type, 0, ""}, - }, - "go/ast": { - {"(*ArrayType).End", Method, 0, ""}, - {"(*ArrayType).Pos", Method, 0, ""}, - {"(*AssignStmt).End", Method, 0, ""}, - {"(*AssignStmt).Pos", Method, 0, ""}, - {"(*BadDecl).End", Method, 0, ""}, - {"(*BadDecl).Pos", Method, 0, ""}, - {"(*BadExpr).End", Method, 0, ""}, - {"(*BadExpr).Pos", Method, 0, ""}, - {"(*BadStmt).End", Method, 0, ""}, - {"(*BadStmt).Pos", Method, 0, ""}, - {"(*BasicLit).End", Method, 0, ""}, - {"(*BasicLit).Pos", Method, 0, ""}, - {"(*BinaryExpr).End", Method, 0, ""}, - {"(*BinaryExpr).Pos", Method, 0, ""}, - {"(*BlockStmt).End", Method, 0, ""}, - {"(*BlockStmt).Pos", Method, 0, ""}, - {"(*BranchStmt).End", Method, 0, ""}, - {"(*BranchStmt).Pos", Method, 0, ""}, - {"(*CallExpr).End", Method, 0, ""}, - {"(*CallExpr).Pos", Method, 0, ""}, - {"(*CaseClause).End", Method, 0, ""}, - {"(*CaseClause).Pos", Method, 0, ""}, - {"(*ChanType).End", Method, 0, ""}, - {"(*ChanType).Pos", Method, 0, ""}, - {"(*CommClause).End", Method, 0, ""}, - {"(*CommClause).Pos", Method, 0, ""}, - {"(*Comment).End", Method, 0, ""}, - {"(*Comment).Pos", Method, 0, ""}, - {"(*CommentGroup).End", Method, 0, ""}, - {"(*CommentGroup).Pos", Method, 0, ""}, - {"(*CommentGroup).Text", Method, 0, ""}, - {"(*CompositeLit).End", Method, 0, ""}, - {"(*CompositeLit).Pos", Method, 0, ""}, - {"(*DeclStmt).End", Method, 0, ""}, - {"(*DeclStmt).Pos", Method, 0, ""}, - {"(*DeferStmt).End", Method, 0, ""}, - {"(*DeferStmt).Pos", Method, 0, ""}, - {"(*Ellipsis).End", Method, 0, ""}, - {"(*Ellipsis).Pos", Method, 0, ""}, - {"(*EmptyStmt).End", Method, 0, ""}, - {"(*EmptyStmt).Pos", Method, 0, ""}, - {"(*ExprStmt).End", Method, 0, ""}, - {"(*ExprStmt).Pos", Method, 0, ""}, - {"(*Field).End", Method, 0, ""}, - {"(*Field).Pos", Method, 0, ""}, - {"(*FieldList).End", Method, 0, ""}, - {"(*FieldList).NumFields", Method, 0, ""}, - {"(*FieldList).Pos", Method, 0, ""}, - {"(*File).End", Method, 0, ""}, - {"(*File).Pos", Method, 0, ""}, - {"(*ForStmt).End", Method, 0, ""}, - {"(*ForStmt).Pos", Method, 0, ""}, - {"(*FuncDecl).End", Method, 0, ""}, - {"(*FuncDecl).Pos", Method, 0, ""}, - {"(*FuncLit).End", Method, 0, ""}, - {"(*FuncLit).Pos", Method, 0, ""}, - {"(*FuncType).End", Method, 0, ""}, - {"(*FuncType).Pos", Method, 0, ""}, - {"(*GenDecl).End", Method, 0, ""}, - {"(*GenDecl).Pos", Method, 0, ""}, - {"(*GoStmt).End", Method, 0, ""}, - {"(*GoStmt).Pos", Method, 0, ""}, - {"(*Ident).End", Method, 0, ""}, - {"(*Ident).IsExported", Method, 0, ""}, - {"(*Ident).Pos", Method, 0, ""}, - {"(*Ident).String", Method, 0, ""}, - {"(*IfStmt).End", Method, 0, ""}, - {"(*IfStmt).Pos", Method, 0, ""}, - {"(*ImportSpec).End", Method, 0, ""}, - {"(*ImportSpec).Pos", Method, 0, ""}, - {"(*IncDecStmt).End", Method, 0, ""}, - {"(*IncDecStmt).Pos", Method, 0, ""}, - {"(*IndexExpr).End", Method, 0, ""}, - {"(*IndexExpr).Pos", Method, 0, ""}, - {"(*IndexListExpr).End", Method, 18, ""}, - {"(*IndexListExpr).Pos", Method, 18, ""}, - {"(*InterfaceType).End", Method, 0, ""}, - {"(*InterfaceType).Pos", Method, 0, ""}, - {"(*KeyValueExpr).End", Method, 0, ""}, - {"(*KeyValueExpr).Pos", Method, 0, ""}, - {"(*LabeledStmt).End", Method, 0, ""}, - {"(*LabeledStmt).Pos", Method, 0, ""}, - {"(*MapType).End", Method, 0, ""}, - {"(*MapType).Pos", Method, 0, ""}, - {"(*Object).Pos", Method, 0, ""}, - {"(*Package).End", Method, 0, ""}, - {"(*Package).Pos", Method, 0, ""}, - {"(*ParenExpr).End", Method, 0, ""}, - {"(*ParenExpr).Pos", Method, 0, ""}, - {"(*RangeStmt).End", Method, 0, ""}, - {"(*RangeStmt).Pos", Method, 0, ""}, - {"(*ReturnStmt).End", Method, 0, ""}, - {"(*ReturnStmt).Pos", Method, 0, ""}, - {"(*Scope).Insert", Method, 0, ""}, - {"(*Scope).Lookup", Method, 0, ""}, - {"(*Scope).String", Method, 0, ""}, - {"(*SelectStmt).End", Method, 0, ""}, - {"(*SelectStmt).Pos", Method, 0, ""}, - {"(*SelectorExpr).End", Method, 0, ""}, - {"(*SelectorExpr).Pos", Method, 0, ""}, - {"(*SendStmt).End", Method, 0, ""}, - {"(*SendStmt).Pos", Method, 0, ""}, - {"(*SliceExpr).End", Method, 0, ""}, - {"(*SliceExpr).Pos", Method, 0, ""}, - {"(*StarExpr).End", Method, 0, ""}, - {"(*StarExpr).Pos", Method, 0, ""}, - {"(*StructType).End", Method, 0, ""}, - {"(*StructType).Pos", Method, 0, ""}, - {"(*SwitchStmt).End", Method, 0, ""}, - {"(*SwitchStmt).Pos", Method, 0, ""}, - {"(*TypeAssertExpr).End", Method, 0, ""}, - {"(*TypeAssertExpr).Pos", Method, 0, ""}, - {"(*TypeSpec).End", Method, 0, ""}, - {"(*TypeSpec).Pos", Method, 0, ""}, - {"(*TypeSwitchStmt).End", Method, 0, ""}, - {"(*TypeSwitchStmt).Pos", Method, 0, ""}, - {"(*UnaryExpr).End", Method, 0, ""}, - {"(*UnaryExpr).Pos", Method, 0, ""}, - {"(*ValueSpec).End", Method, 0, ""}, - {"(*ValueSpec).Pos", Method, 0, ""}, - {"(CommentMap).Comments", Method, 1, ""}, - {"(CommentMap).Filter", Method, 1, ""}, - {"(CommentMap).String", Method, 1, ""}, - {"(CommentMap).Update", Method, 1, ""}, - {"(ObjKind).String", Method, 0, ""}, - {"ArrayType", Type, 0, ""}, - {"ArrayType.Elt", Field, 0, ""}, - {"ArrayType.Lbrack", Field, 0, ""}, - {"ArrayType.Len", Field, 0, ""}, - {"AssignStmt", Type, 0, ""}, - {"AssignStmt.Lhs", Field, 0, ""}, - {"AssignStmt.Rhs", Field, 0, ""}, - {"AssignStmt.Tok", Field, 0, ""}, - {"AssignStmt.TokPos", Field, 0, ""}, - {"Bad", Const, 0, ""}, - {"BadDecl", Type, 0, ""}, - {"BadDecl.From", Field, 0, ""}, - {"BadDecl.To", Field, 0, ""}, - {"BadExpr", Type, 0, ""}, - {"BadExpr.From", Field, 0, ""}, - {"BadExpr.To", Field, 0, ""}, - {"BadStmt", Type, 0, ""}, - {"BadStmt.From", Field, 0, ""}, - {"BadStmt.To", Field, 0, ""}, - {"BasicLit", Type, 0, ""}, - {"BasicLit.Kind", Field, 0, ""}, - {"BasicLit.Value", Field, 0, ""}, - {"BasicLit.ValuePos", Field, 0, ""}, - {"BinaryExpr", Type, 0, ""}, - {"BinaryExpr.Op", Field, 0, ""}, - {"BinaryExpr.OpPos", Field, 0, ""}, - {"BinaryExpr.X", Field, 0, ""}, - {"BinaryExpr.Y", Field, 0, ""}, - {"BlockStmt", Type, 0, ""}, - {"BlockStmt.Lbrace", Field, 0, ""}, - {"BlockStmt.List", Field, 0, ""}, - {"BlockStmt.Rbrace", Field, 0, ""}, - {"BranchStmt", Type, 0, ""}, - {"BranchStmt.Label", Field, 0, ""}, - {"BranchStmt.Tok", Field, 0, ""}, - {"BranchStmt.TokPos", Field, 0, ""}, - {"CallExpr", Type, 0, ""}, - {"CallExpr.Args", Field, 0, ""}, - {"CallExpr.Ellipsis", Field, 0, ""}, - {"CallExpr.Fun", Field, 0, ""}, - {"CallExpr.Lparen", Field, 0, ""}, - {"CallExpr.Rparen", Field, 0, ""}, - {"CaseClause", Type, 0, ""}, - {"CaseClause.Body", Field, 0, ""}, - {"CaseClause.Case", Field, 0, ""}, - {"CaseClause.Colon", Field, 0, ""}, - {"CaseClause.List", Field, 0, ""}, - {"ChanDir", Type, 0, ""}, - {"ChanType", Type, 0, ""}, - {"ChanType.Arrow", Field, 1, ""}, - {"ChanType.Begin", Field, 0, ""}, - {"ChanType.Dir", Field, 0, ""}, - {"ChanType.Value", Field, 0, ""}, - {"CommClause", Type, 0, ""}, - {"CommClause.Body", Field, 0, ""}, - {"CommClause.Case", Field, 0, ""}, - {"CommClause.Colon", Field, 0, ""}, - {"CommClause.Comm", Field, 0, ""}, - {"Comment", Type, 0, ""}, - {"Comment.Slash", Field, 0, ""}, - {"Comment.Text", Field, 0, ""}, - {"CommentGroup", Type, 0, ""}, - {"CommentGroup.List", Field, 0, ""}, - {"CommentMap", Type, 1, ""}, - {"CompositeLit", Type, 0, ""}, - {"CompositeLit.Elts", Field, 0, ""}, - {"CompositeLit.Incomplete", Field, 11, ""}, - {"CompositeLit.Lbrace", Field, 0, ""}, - {"CompositeLit.Rbrace", Field, 0, ""}, - {"CompositeLit.Type", Field, 0, ""}, - {"Con", Const, 0, ""}, - {"Decl", Type, 0, ""}, - {"DeclStmt", Type, 0, ""}, - {"DeclStmt.Decl", Field, 0, ""}, - {"DeferStmt", Type, 0, ""}, - {"DeferStmt.Call", Field, 0, ""}, - {"DeferStmt.Defer", Field, 0, ""}, - {"Ellipsis", Type, 0, ""}, - {"Ellipsis.Ellipsis", Field, 0, ""}, - {"Ellipsis.Elt", Field, 0, ""}, - {"EmptyStmt", Type, 0, ""}, - {"EmptyStmt.Implicit", Field, 5, ""}, - {"EmptyStmt.Semicolon", Field, 0, ""}, - {"Expr", Type, 0, ""}, - {"ExprStmt", Type, 0, ""}, - {"ExprStmt.X", Field, 0, ""}, - {"Field", Type, 0, ""}, - {"Field.Comment", Field, 0, ""}, - {"Field.Doc", Field, 0, ""}, - {"Field.Names", Field, 0, ""}, - {"Field.Tag", Field, 0, ""}, - {"Field.Type", Field, 0, ""}, - {"FieldFilter", Type, 0, ""}, - {"FieldList", Type, 0, ""}, - {"FieldList.Closing", Field, 0, ""}, - {"FieldList.List", Field, 0, ""}, - {"FieldList.Opening", Field, 0, ""}, - {"File", Type, 0, ""}, - {"File.Comments", Field, 0, ""}, - {"File.Decls", Field, 0, ""}, - {"File.Doc", Field, 0, ""}, - {"File.FileEnd", Field, 20, ""}, - {"File.FileStart", Field, 20, ""}, - {"File.GoVersion", Field, 21, ""}, - {"File.Imports", Field, 0, ""}, - {"File.Name", Field, 0, ""}, - {"File.Package", Field, 0, ""}, - {"File.Scope", Field, 0, ""}, - {"File.Unresolved", Field, 0, ""}, - {"FileExports", Func, 0, "func(src *File) bool"}, - {"Filter", Type, 0, ""}, - {"FilterDecl", Func, 0, "func(decl Decl, f Filter) bool"}, - {"FilterFile", Func, 0, "func(src *File, f Filter) bool"}, - {"FilterFuncDuplicates", Const, 0, ""}, - {"FilterImportDuplicates", Const, 0, ""}, - {"FilterPackage", Func, 0, "func(pkg *Package, f Filter) bool"}, - {"FilterUnassociatedComments", Const, 0, ""}, - {"ForStmt", Type, 0, ""}, - {"ForStmt.Body", Field, 0, ""}, - {"ForStmt.Cond", Field, 0, ""}, - {"ForStmt.For", Field, 0, ""}, - {"ForStmt.Init", Field, 0, ""}, - {"ForStmt.Post", Field, 0, ""}, - {"Fprint", Func, 0, "func(w io.Writer, fset *token.FileSet, x any, f FieldFilter) error"}, - {"Fun", Const, 0, ""}, - {"FuncDecl", Type, 0, ""}, - {"FuncDecl.Body", Field, 0, ""}, - {"FuncDecl.Doc", Field, 0, ""}, - {"FuncDecl.Name", Field, 0, ""}, - {"FuncDecl.Recv", Field, 0, ""}, - {"FuncDecl.Type", Field, 0, ""}, - {"FuncLit", Type, 0, ""}, - {"FuncLit.Body", Field, 0, ""}, - {"FuncLit.Type", Field, 0, ""}, - {"FuncType", Type, 0, ""}, - {"FuncType.Func", Field, 0, ""}, - {"FuncType.Params", Field, 0, ""}, - {"FuncType.Results", Field, 0, ""}, - {"FuncType.TypeParams", Field, 18, ""}, - {"GenDecl", Type, 0, ""}, - {"GenDecl.Doc", Field, 0, ""}, - {"GenDecl.Lparen", Field, 0, ""}, - {"GenDecl.Rparen", Field, 0, ""}, - {"GenDecl.Specs", Field, 0, ""}, - {"GenDecl.Tok", Field, 0, ""}, - {"GenDecl.TokPos", Field, 0, ""}, - {"GoStmt", Type, 0, ""}, - {"GoStmt.Call", Field, 0, ""}, - {"GoStmt.Go", Field, 0, ""}, - {"Ident", Type, 0, ""}, - {"Ident.Name", Field, 0, ""}, - {"Ident.NamePos", Field, 0, ""}, - {"Ident.Obj", Field, 0, ""}, - {"IfStmt", Type, 0, ""}, - {"IfStmt.Body", Field, 0, ""}, - {"IfStmt.Cond", Field, 0, ""}, - {"IfStmt.Else", Field, 0, ""}, - {"IfStmt.If", Field, 0, ""}, - {"IfStmt.Init", Field, 0, ""}, - {"ImportSpec", Type, 0, ""}, - {"ImportSpec.Comment", Field, 0, ""}, - {"ImportSpec.Doc", Field, 0, ""}, - {"ImportSpec.EndPos", Field, 0, ""}, - {"ImportSpec.Name", Field, 0, ""}, - {"ImportSpec.Path", Field, 0, ""}, - {"Importer", Type, 0, ""}, - {"IncDecStmt", Type, 0, ""}, - {"IncDecStmt.Tok", Field, 0, ""}, - {"IncDecStmt.TokPos", Field, 0, ""}, - {"IncDecStmt.X", Field, 0, ""}, - {"IndexExpr", Type, 0, ""}, - {"IndexExpr.Index", Field, 0, ""}, - {"IndexExpr.Lbrack", Field, 0, ""}, - {"IndexExpr.Rbrack", Field, 0, ""}, - {"IndexExpr.X", Field, 0, ""}, - {"IndexListExpr", Type, 18, ""}, - {"IndexListExpr.Indices", Field, 18, ""}, - {"IndexListExpr.Lbrack", Field, 18, ""}, - {"IndexListExpr.Rbrack", Field, 18, ""}, - {"IndexListExpr.X", Field, 18, ""}, - {"Inspect", Func, 0, "func(node Node, f func(Node) bool)"}, - {"InterfaceType", Type, 0, ""}, - {"InterfaceType.Incomplete", Field, 0, ""}, - {"InterfaceType.Interface", Field, 0, ""}, - {"InterfaceType.Methods", Field, 0, ""}, - {"IsExported", Func, 0, "func(name string) bool"}, - {"IsGenerated", Func, 21, "func(file *File) bool"}, - {"KeyValueExpr", Type, 0, ""}, - {"KeyValueExpr.Colon", Field, 0, ""}, - {"KeyValueExpr.Key", Field, 0, ""}, - {"KeyValueExpr.Value", Field, 0, ""}, - {"LabeledStmt", Type, 0, ""}, - {"LabeledStmt.Colon", Field, 0, ""}, - {"LabeledStmt.Label", Field, 0, ""}, - {"LabeledStmt.Stmt", Field, 0, ""}, - {"Lbl", Const, 0, ""}, - {"MapType", Type, 0, ""}, - {"MapType.Key", Field, 0, ""}, - {"MapType.Map", Field, 0, ""}, - {"MapType.Value", Field, 0, ""}, - {"MergeMode", Type, 0, ""}, - {"MergePackageFiles", Func, 0, "func(pkg *Package, mode MergeMode) *File"}, - {"NewCommentMap", Func, 1, "func(fset *token.FileSet, node Node, comments []*CommentGroup) CommentMap"}, - {"NewIdent", Func, 0, "func(name string) *Ident"}, - {"NewObj", Func, 0, "func(kind ObjKind, name string) *Object"}, - {"NewPackage", Func, 0, "func(fset *token.FileSet, files map[string]*File, importer Importer, universe *Scope) (*Package, error)"}, - {"NewScope", Func, 0, "func(outer *Scope) *Scope"}, - {"Node", Type, 0, ""}, - {"NotNilFilter", Func, 0, "func(_ string, v reflect.Value) bool"}, - {"ObjKind", Type, 0, ""}, - {"Object", Type, 0, ""}, - {"Object.Data", Field, 0, ""}, - {"Object.Decl", Field, 0, ""}, - {"Object.Kind", Field, 0, ""}, - {"Object.Name", Field, 0, ""}, - {"Object.Type", Field, 0, ""}, - {"Package", Type, 0, ""}, - {"Package.Files", Field, 0, ""}, - {"Package.Imports", Field, 0, ""}, - {"Package.Name", Field, 0, ""}, - {"Package.Scope", Field, 0, ""}, - {"PackageExports", Func, 0, "func(pkg *Package) bool"}, - {"ParenExpr", Type, 0, ""}, - {"ParenExpr.Lparen", Field, 0, ""}, - {"ParenExpr.Rparen", Field, 0, ""}, - {"ParenExpr.X", Field, 0, ""}, - {"Pkg", Const, 0, ""}, - {"Preorder", Func, 23, "func(root Node) iter.Seq[Node]"}, - {"Print", Func, 0, "func(fset *token.FileSet, x any) error"}, - {"RECV", Const, 0, ""}, - {"RangeStmt", Type, 0, ""}, - {"RangeStmt.Body", Field, 0, ""}, - {"RangeStmt.For", Field, 0, ""}, - {"RangeStmt.Key", Field, 0, ""}, - {"RangeStmt.Range", Field, 20, ""}, - {"RangeStmt.Tok", Field, 0, ""}, - {"RangeStmt.TokPos", Field, 0, ""}, - {"RangeStmt.Value", Field, 0, ""}, - {"RangeStmt.X", Field, 0, ""}, - {"ReturnStmt", Type, 0, ""}, - {"ReturnStmt.Results", Field, 0, ""}, - {"ReturnStmt.Return", Field, 0, ""}, - {"SEND", Const, 0, ""}, - {"Scope", Type, 0, ""}, - {"Scope.Objects", Field, 0, ""}, - {"Scope.Outer", Field, 0, ""}, - {"SelectStmt", Type, 0, ""}, - {"SelectStmt.Body", Field, 0, ""}, - {"SelectStmt.Select", Field, 0, ""}, - {"SelectorExpr", Type, 0, ""}, - {"SelectorExpr.Sel", Field, 0, ""}, - {"SelectorExpr.X", Field, 0, ""}, - {"SendStmt", Type, 0, ""}, - {"SendStmt.Arrow", Field, 0, ""}, - {"SendStmt.Chan", Field, 0, ""}, - {"SendStmt.Value", Field, 0, ""}, - {"SliceExpr", Type, 0, ""}, - {"SliceExpr.High", Field, 0, ""}, - {"SliceExpr.Lbrack", Field, 0, ""}, - {"SliceExpr.Low", Field, 0, ""}, - {"SliceExpr.Max", Field, 2, ""}, - {"SliceExpr.Rbrack", Field, 0, ""}, - {"SliceExpr.Slice3", Field, 2, ""}, - {"SliceExpr.X", Field, 0, ""}, - {"SortImports", Func, 0, "func(fset *token.FileSet, f *File)"}, - {"Spec", Type, 0, ""}, - {"StarExpr", Type, 0, ""}, - {"StarExpr.Star", Field, 0, ""}, - {"StarExpr.X", Field, 0, ""}, - {"Stmt", Type, 0, ""}, - {"StructType", Type, 0, ""}, - {"StructType.Fields", Field, 0, ""}, - {"StructType.Incomplete", Field, 0, ""}, - {"StructType.Struct", Field, 0, ""}, - {"SwitchStmt", Type, 0, ""}, - {"SwitchStmt.Body", Field, 0, ""}, - {"SwitchStmt.Init", Field, 0, ""}, - {"SwitchStmt.Switch", Field, 0, ""}, - {"SwitchStmt.Tag", Field, 0, ""}, - {"Typ", Const, 0, ""}, - {"TypeAssertExpr", Type, 0, ""}, - {"TypeAssertExpr.Lparen", Field, 2, ""}, - {"TypeAssertExpr.Rparen", Field, 2, ""}, - {"TypeAssertExpr.Type", Field, 0, ""}, - {"TypeAssertExpr.X", Field, 0, ""}, - {"TypeSpec", Type, 0, ""}, - {"TypeSpec.Assign", Field, 9, ""}, - {"TypeSpec.Comment", Field, 0, ""}, - {"TypeSpec.Doc", Field, 0, ""}, - {"TypeSpec.Name", Field, 0, ""}, - {"TypeSpec.Type", Field, 0, ""}, - {"TypeSpec.TypeParams", Field, 18, ""}, - {"TypeSwitchStmt", Type, 0, ""}, - {"TypeSwitchStmt.Assign", Field, 0, ""}, - {"TypeSwitchStmt.Body", Field, 0, ""}, - {"TypeSwitchStmt.Init", Field, 0, ""}, - {"TypeSwitchStmt.Switch", Field, 0, ""}, - {"UnaryExpr", Type, 0, ""}, - {"UnaryExpr.Op", Field, 0, ""}, - {"UnaryExpr.OpPos", Field, 0, ""}, - {"UnaryExpr.X", Field, 0, ""}, - {"Unparen", Func, 22, "func(e Expr) Expr"}, - {"ValueSpec", Type, 0, ""}, - {"ValueSpec.Comment", Field, 0, ""}, - {"ValueSpec.Doc", Field, 0, ""}, - {"ValueSpec.Names", Field, 0, ""}, - {"ValueSpec.Type", Field, 0, ""}, - {"ValueSpec.Values", Field, 0, ""}, - {"Var", Const, 0, ""}, - {"Visitor", Type, 0, ""}, - {"Walk", Func, 0, "func(v Visitor, node Node)"}, - }, - "go/build": { - {"(*Context).Import", Method, 0, ""}, - {"(*Context).ImportDir", Method, 0, ""}, - {"(*Context).MatchFile", Method, 2, ""}, - {"(*Context).SrcDirs", Method, 0, ""}, - {"(*MultiplePackageError).Error", Method, 4, ""}, - {"(*NoGoError).Error", Method, 0, ""}, - {"(*Package).IsCommand", Method, 0, ""}, - {"AllowBinary", Const, 0, ""}, - {"ArchChar", Func, 0, "func(goarch string) (string, error)"}, - {"Context", Type, 0, ""}, - {"Context.BuildTags", Field, 0, ""}, - {"Context.CgoEnabled", Field, 0, ""}, - {"Context.Compiler", Field, 0, ""}, - {"Context.Dir", Field, 14, ""}, - {"Context.GOARCH", Field, 0, ""}, - {"Context.GOOS", Field, 0, ""}, - {"Context.GOPATH", Field, 0, ""}, - {"Context.GOROOT", Field, 0, ""}, - {"Context.HasSubdir", Field, 0, ""}, - {"Context.InstallSuffix", Field, 1, ""}, - {"Context.IsAbsPath", Field, 0, ""}, - {"Context.IsDir", Field, 0, ""}, - {"Context.JoinPath", Field, 0, ""}, - {"Context.OpenFile", Field, 0, ""}, - {"Context.ReadDir", Field, 0, ""}, - {"Context.ReleaseTags", Field, 1, ""}, - {"Context.SplitPathList", Field, 0, ""}, - {"Context.ToolTags", Field, 17, ""}, - {"Context.UseAllFiles", Field, 0, ""}, - {"Default", Var, 0, ""}, - {"Directive", Type, 21, ""}, - {"Directive.Pos", Field, 21, ""}, - {"Directive.Text", Field, 21, ""}, - {"FindOnly", Const, 0, ""}, - {"IgnoreVendor", Const, 6, ""}, - {"Import", Func, 0, "func(path string, srcDir string, mode ImportMode) (*Package, error)"}, - {"ImportComment", Const, 4, ""}, - {"ImportDir", Func, 0, "func(dir string, mode ImportMode) (*Package, error)"}, - {"ImportMode", Type, 0, ""}, - {"IsLocalImport", Func, 0, "func(path string) bool"}, - {"MultiplePackageError", Type, 4, ""}, - {"MultiplePackageError.Dir", Field, 4, ""}, - {"MultiplePackageError.Files", Field, 4, ""}, - {"MultiplePackageError.Packages", Field, 4, ""}, - {"NoGoError", Type, 0, ""}, - {"NoGoError.Dir", Field, 0, ""}, - {"Package", Type, 0, ""}, - {"Package.AllTags", Field, 2, ""}, - {"Package.BinDir", Field, 0, ""}, - {"Package.BinaryOnly", Field, 7, ""}, - {"Package.CFiles", Field, 0, ""}, - {"Package.CXXFiles", Field, 2, ""}, - {"Package.CgoCFLAGS", Field, 0, ""}, - {"Package.CgoCPPFLAGS", Field, 2, ""}, - {"Package.CgoCXXFLAGS", Field, 2, ""}, - {"Package.CgoFFLAGS", Field, 7, ""}, - {"Package.CgoFiles", Field, 0, ""}, - {"Package.CgoLDFLAGS", Field, 0, ""}, - {"Package.CgoPkgConfig", Field, 0, ""}, - {"Package.ConflictDir", Field, 2, ""}, - {"Package.Dir", Field, 0, ""}, - {"Package.Directives", Field, 21, ""}, - {"Package.Doc", Field, 0, ""}, - {"Package.EmbedPatternPos", Field, 16, ""}, - {"Package.EmbedPatterns", Field, 16, ""}, - {"Package.FFiles", Field, 7, ""}, - {"Package.GoFiles", Field, 0, ""}, - {"Package.Goroot", Field, 0, ""}, - {"Package.HFiles", Field, 0, ""}, - {"Package.IgnoredGoFiles", Field, 1, ""}, - {"Package.IgnoredOtherFiles", Field, 16, ""}, - {"Package.ImportComment", Field, 4, ""}, - {"Package.ImportPath", Field, 0, ""}, - {"Package.ImportPos", Field, 0, ""}, - {"Package.Imports", Field, 0, ""}, - {"Package.InvalidGoFiles", Field, 6, ""}, - {"Package.MFiles", Field, 3, ""}, - {"Package.Name", Field, 0, ""}, - {"Package.PkgObj", Field, 0, ""}, - {"Package.PkgRoot", Field, 0, ""}, - {"Package.PkgTargetRoot", Field, 5, ""}, - {"Package.Root", Field, 0, ""}, - {"Package.SFiles", Field, 0, ""}, - {"Package.SrcRoot", Field, 0, ""}, - {"Package.SwigCXXFiles", Field, 1, ""}, - {"Package.SwigFiles", Field, 1, ""}, - {"Package.SysoFiles", Field, 0, ""}, - {"Package.TestDirectives", Field, 21, ""}, - {"Package.TestEmbedPatternPos", Field, 16, ""}, - {"Package.TestEmbedPatterns", Field, 16, ""}, - {"Package.TestGoFiles", Field, 0, ""}, - {"Package.TestImportPos", Field, 0, ""}, - {"Package.TestImports", Field, 0, ""}, - {"Package.XTestDirectives", Field, 21, ""}, - {"Package.XTestEmbedPatternPos", Field, 16, ""}, - {"Package.XTestEmbedPatterns", Field, 16, ""}, - {"Package.XTestGoFiles", Field, 0, ""}, - {"Package.XTestImportPos", Field, 0, ""}, - {"Package.XTestImports", Field, 0, ""}, - {"ToolDir", Var, 0, ""}, - }, - "go/build/constraint": { - {"(*AndExpr).Eval", Method, 16, ""}, - {"(*AndExpr).String", Method, 16, ""}, - {"(*NotExpr).Eval", Method, 16, ""}, - {"(*NotExpr).String", Method, 16, ""}, - {"(*OrExpr).Eval", Method, 16, ""}, - {"(*OrExpr).String", Method, 16, ""}, - {"(*SyntaxError).Error", Method, 16, ""}, - {"(*TagExpr).Eval", Method, 16, ""}, - {"(*TagExpr).String", Method, 16, ""}, - {"AndExpr", Type, 16, ""}, - {"AndExpr.X", Field, 16, ""}, - {"AndExpr.Y", Field, 16, ""}, - {"Expr", Type, 16, ""}, - {"GoVersion", Func, 21, "func(x Expr) string"}, - {"IsGoBuild", Func, 16, "func(line string) bool"}, - {"IsPlusBuild", Func, 16, "func(line string) bool"}, - {"NotExpr", Type, 16, ""}, - {"NotExpr.X", Field, 16, ""}, - {"OrExpr", Type, 16, ""}, - {"OrExpr.X", Field, 16, ""}, - {"OrExpr.Y", Field, 16, ""}, - {"Parse", Func, 16, "func(line string) (Expr, error)"}, - {"PlusBuildLines", Func, 16, "func(x Expr) ([]string, error)"}, - {"SyntaxError", Type, 16, ""}, - {"SyntaxError.Err", Field, 16, ""}, - {"SyntaxError.Offset", Field, 16, ""}, - {"TagExpr", Type, 16, ""}, - {"TagExpr.Tag", Field, 16, ""}, - }, - "go/constant": { - {"(Kind).String", Method, 18, ""}, - {"BinaryOp", Func, 5, "func(x_ Value, op token.Token, y_ Value) Value"}, - {"BitLen", Func, 5, "func(x Value) int"}, - {"Bool", Const, 5, ""}, - {"BoolVal", Func, 5, "func(x Value) bool"}, - {"Bytes", Func, 5, "func(x Value) []byte"}, - {"Compare", Func, 5, "func(x_ Value, op token.Token, y_ Value) bool"}, - {"Complex", Const, 5, ""}, - {"Denom", Func, 5, "func(x Value) Value"}, - {"Float", Const, 5, ""}, - {"Float32Val", Func, 5, "func(x Value) (float32, bool)"}, - {"Float64Val", Func, 5, "func(x Value) (float64, bool)"}, - {"Imag", Func, 5, "func(x Value) Value"}, - {"Int", Const, 5, ""}, - {"Int64Val", Func, 5, "func(x Value) (int64, bool)"}, - {"Kind", Type, 5, ""}, - {"Make", Func, 13, "func(x any) Value"}, - {"MakeBool", Func, 5, "func(b bool) Value"}, - {"MakeFloat64", Func, 5, "func(x float64) Value"}, - {"MakeFromBytes", Func, 5, "func(bytes []byte) Value"}, - {"MakeFromLiteral", Func, 5, "func(lit string, tok token.Token, zero uint) Value"}, - {"MakeImag", Func, 5, "func(x Value) Value"}, - {"MakeInt64", Func, 5, "func(x int64) Value"}, - {"MakeString", Func, 5, "func(s string) Value"}, - {"MakeUint64", Func, 5, "func(x uint64) Value"}, - {"MakeUnknown", Func, 5, "func() Value"}, - {"Num", Func, 5, "func(x Value) Value"}, - {"Real", Func, 5, "func(x Value) Value"}, - {"Shift", Func, 5, "func(x Value, op token.Token, s uint) Value"}, - {"Sign", Func, 5, "func(x Value) int"}, - {"String", Const, 5, ""}, - {"StringVal", Func, 5, "func(x Value) string"}, - {"ToComplex", Func, 6, "func(x Value) Value"}, - {"ToFloat", Func, 6, "func(x Value) Value"}, - {"ToInt", Func, 6, "func(x Value) Value"}, - {"Uint64Val", Func, 5, "func(x Value) (uint64, bool)"}, - {"UnaryOp", Func, 5, "func(op token.Token, y Value, prec uint) Value"}, - {"Unknown", Const, 5, ""}, - {"Val", Func, 13, "func(x Value) any"}, - {"Value", Type, 5, ""}, - }, - "go/doc": { - {"(*Package).Filter", Method, 0, ""}, - {"(*Package).HTML", Method, 19, ""}, - {"(*Package).Markdown", Method, 19, ""}, - {"(*Package).Parser", Method, 19, ""}, - {"(*Package).Printer", Method, 19, ""}, - {"(*Package).Synopsis", Method, 19, ""}, - {"(*Package).Text", Method, 19, ""}, - {"AllDecls", Const, 0, ""}, - {"AllMethods", Const, 0, ""}, - {"Example", Type, 0, ""}, - {"Example.Code", Field, 0, ""}, - {"Example.Comments", Field, 0, ""}, - {"Example.Doc", Field, 0, ""}, - {"Example.EmptyOutput", Field, 1, ""}, - {"Example.Name", Field, 0, ""}, - {"Example.Order", Field, 1, ""}, - {"Example.Output", Field, 0, ""}, - {"Example.Play", Field, 1, ""}, - {"Example.Suffix", Field, 14, ""}, - {"Example.Unordered", Field, 7, ""}, - {"Examples", Func, 0, "func(testFiles ...*ast.File) []*Example"}, - {"Filter", Type, 0, ""}, - {"Func", Type, 0, ""}, - {"Func.Decl", Field, 0, ""}, - {"Func.Doc", Field, 0, ""}, - {"Func.Examples", Field, 14, ""}, - {"Func.Level", Field, 0, ""}, - {"Func.Name", Field, 0, ""}, - {"Func.Orig", Field, 0, ""}, - {"Func.Recv", Field, 0, ""}, - {"IllegalPrefixes", Var, 1, ""}, - {"IsPredeclared", Func, 8, "func(s string) bool"}, - {"Mode", Type, 0, ""}, - {"New", Func, 0, "func(pkg *ast.Package, importPath string, mode Mode) *Package"}, - {"NewFromFiles", Func, 14, "func(fset *token.FileSet, files []*ast.File, importPath string, opts ...any) (*Package, error)"}, - {"Note", Type, 1, ""}, - {"Note.Body", Field, 1, ""}, - {"Note.End", Field, 1, ""}, - {"Note.Pos", Field, 1, ""}, - {"Note.UID", Field, 1, ""}, - {"Package", Type, 0, ""}, - {"Package.Bugs", Field, 0, ""}, - {"Package.Consts", Field, 0, ""}, - {"Package.Doc", Field, 0, ""}, - {"Package.Examples", Field, 14, ""}, - {"Package.Filenames", Field, 0, ""}, - {"Package.Funcs", Field, 0, ""}, - {"Package.ImportPath", Field, 0, ""}, - {"Package.Imports", Field, 0, ""}, - {"Package.Name", Field, 0, ""}, - {"Package.Notes", Field, 1, ""}, - {"Package.Types", Field, 0, ""}, - {"Package.Vars", Field, 0, ""}, - {"PreserveAST", Const, 12, ""}, - {"Synopsis", Func, 0, "func(text string) string"}, - {"ToHTML", Func, 0, "func(w io.Writer, text string, words map[string]string)"}, - {"ToText", Func, 0, "func(w io.Writer, text string, prefix string, codePrefix string, width int)"}, - {"Type", Type, 0, ""}, - {"Type.Consts", Field, 0, ""}, - {"Type.Decl", Field, 0, ""}, - {"Type.Doc", Field, 0, ""}, - {"Type.Examples", Field, 14, ""}, - {"Type.Funcs", Field, 0, ""}, - {"Type.Methods", Field, 0, ""}, - {"Type.Name", Field, 0, ""}, - {"Type.Vars", Field, 0, ""}, - {"Value", Type, 0, ""}, - {"Value.Decl", Field, 0, ""}, - {"Value.Doc", Field, 0, ""}, - {"Value.Names", Field, 0, ""}, - }, - "go/doc/comment": { - {"(*DocLink).DefaultURL", Method, 19, ""}, - {"(*Heading).DefaultID", Method, 19, ""}, - {"(*List).BlankBefore", Method, 19, ""}, - {"(*List).BlankBetween", Method, 19, ""}, - {"(*Parser).Parse", Method, 19, ""}, - {"(*Printer).Comment", Method, 19, ""}, - {"(*Printer).HTML", Method, 19, ""}, - {"(*Printer).Markdown", Method, 19, ""}, - {"(*Printer).Text", Method, 19, ""}, - {"Block", Type, 19, ""}, - {"Code", Type, 19, ""}, - {"Code.Text", Field, 19, ""}, - {"DefaultLookupPackage", Func, 19, "func(name string) (importPath string, ok bool)"}, - {"Doc", Type, 19, ""}, - {"Doc.Content", Field, 19, ""}, - {"Doc.Links", Field, 19, ""}, - {"DocLink", Type, 19, ""}, - {"DocLink.ImportPath", Field, 19, ""}, - {"DocLink.Name", Field, 19, ""}, - {"DocLink.Recv", Field, 19, ""}, - {"DocLink.Text", Field, 19, ""}, - {"Heading", Type, 19, ""}, - {"Heading.Text", Field, 19, ""}, - {"Italic", Type, 19, ""}, - {"Link", Type, 19, ""}, - {"Link.Auto", Field, 19, ""}, - {"Link.Text", Field, 19, ""}, - {"Link.URL", Field, 19, ""}, - {"LinkDef", Type, 19, ""}, - {"LinkDef.Text", Field, 19, ""}, - {"LinkDef.URL", Field, 19, ""}, - {"LinkDef.Used", Field, 19, ""}, - {"List", Type, 19, ""}, - {"List.ForceBlankBefore", Field, 19, ""}, - {"List.ForceBlankBetween", Field, 19, ""}, - {"List.Items", Field, 19, ""}, - {"ListItem", Type, 19, ""}, - {"ListItem.Content", Field, 19, ""}, - {"ListItem.Number", Field, 19, ""}, - {"Paragraph", Type, 19, ""}, - {"Paragraph.Text", Field, 19, ""}, - {"Parser", Type, 19, ""}, - {"Parser.LookupPackage", Field, 19, ""}, - {"Parser.LookupSym", Field, 19, ""}, - {"Parser.Words", Field, 19, ""}, - {"Plain", Type, 19, ""}, - {"Printer", Type, 19, ""}, - {"Printer.DocLinkBaseURL", Field, 19, ""}, - {"Printer.DocLinkURL", Field, 19, ""}, - {"Printer.HeadingID", Field, 19, ""}, - {"Printer.HeadingLevel", Field, 19, ""}, - {"Printer.TextCodePrefix", Field, 19, ""}, - {"Printer.TextPrefix", Field, 19, ""}, - {"Printer.TextWidth", Field, 19, ""}, - {"Text", Type, 19, ""}, - }, - "go/format": { - {"Node", Func, 1, "func(dst io.Writer, fset *token.FileSet, node any) error"}, - {"Source", Func, 1, "func(src []byte) ([]byte, error)"}, - }, - "go/importer": { - {"Default", Func, 5, "func() types.Importer"}, - {"For", Func, 5, "func(compiler string, lookup Lookup) types.Importer"}, - {"ForCompiler", Func, 12, "func(fset *token.FileSet, compiler string, lookup Lookup) types.Importer"}, - {"Lookup", Type, 5, ""}, - }, - "go/parser": { - {"AllErrors", Const, 1, ""}, - {"DeclarationErrors", Const, 0, ""}, - {"ImportsOnly", Const, 0, ""}, - {"Mode", Type, 0, ""}, - {"PackageClauseOnly", Const, 0, ""}, - {"ParseComments", Const, 0, ""}, - {"ParseDir", Func, 0, "func(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, mode Mode) (pkgs map[string]*ast.Package, first error)"}, - {"ParseExpr", Func, 0, "func(x string) (ast.Expr, error)"}, - {"ParseExprFrom", Func, 5, "func(fset *token.FileSet, filename string, src any, mode Mode) (expr ast.Expr, err error)"}, - {"ParseFile", Func, 0, "func(fset *token.FileSet, filename string, src any, mode Mode) (f *ast.File, err error)"}, - {"SkipObjectResolution", Const, 17, ""}, - {"SpuriousErrors", Const, 0, ""}, - {"Trace", Const, 0, ""}, - }, - "go/printer": { - {"(*Config).Fprint", Method, 0, ""}, - {"CommentedNode", Type, 0, ""}, - {"CommentedNode.Comments", Field, 0, ""}, - {"CommentedNode.Node", Field, 0, ""}, - {"Config", Type, 0, ""}, - {"Config.Indent", Field, 1, ""}, - {"Config.Mode", Field, 0, ""}, - {"Config.Tabwidth", Field, 0, ""}, - {"Fprint", Func, 0, "func(output io.Writer, fset *token.FileSet, node any) error"}, - {"Mode", Type, 0, ""}, - {"RawFormat", Const, 0, ""}, - {"SourcePos", Const, 0, ""}, - {"TabIndent", Const, 0, ""}, - {"UseSpaces", Const, 0, ""}, - }, - "go/scanner": { - {"(*ErrorList).Add", Method, 0, ""}, - {"(*ErrorList).RemoveMultiples", Method, 0, ""}, - {"(*ErrorList).Reset", Method, 0, ""}, - {"(*Scanner).Init", Method, 0, ""}, - {"(*Scanner).Scan", Method, 0, ""}, - {"(Error).Error", Method, 0, ""}, - {"(ErrorList).Err", Method, 0, ""}, - {"(ErrorList).Error", Method, 0, ""}, - {"(ErrorList).Len", Method, 0, ""}, - {"(ErrorList).Less", Method, 0, ""}, - {"(ErrorList).Sort", Method, 0, ""}, - {"(ErrorList).Swap", Method, 0, ""}, - {"Error", Type, 0, ""}, - {"Error.Msg", Field, 0, ""}, - {"Error.Pos", Field, 0, ""}, - {"ErrorHandler", Type, 0, ""}, - {"ErrorList", Type, 0, ""}, - {"Mode", Type, 0, ""}, - {"PrintError", Func, 0, "func(w io.Writer, err error)"}, - {"ScanComments", Const, 0, ""}, - {"Scanner", Type, 0, ""}, - {"Scanner.ErrorCount", Field, 0, ""}, - }, - "go/token": { - {"(*File).AddLine", Method, 0, ""}, - {"(*File).AddLineColumnInfo", Method, 11, ""}, - {"(*File).AddLineInfo", Method, 0, ""}, - {"(*File).Base", Method, 0, ""}, - {"(*File).Line", Method, 0, ""}, - {"(*File).LineCount", Method, 0, ""}, - {"(*File).LineStart", Method, 12, ""}, - {"(*File).Lines", Method, 21, ""}, - {"(*File).MergeLine", Method, 2, ""}, - {"(*File).Name", Method, 0, ""}, - {"(*File).Offset", Method, 0, ""}, - {"(*File).Pos", Method, 0, ""}, - {"(*File).Position", Method, 0, ""}, - {"(*File).PositionFor", Method, 4, ""}, - {"(*File).SetLines", Method, 0, ""}, - {"(*File).SetLinesForContent", Method, 0, ""}, - {"(*File).Size", Method, 0, ""}, - {"(*FileSet).AddFile", Method, 0, ""}, - {"(*FileSet).Base", Method, 0, ""}, - {"(*FileSet).File", Method, 0, ""}, - {"(*FileSet).Iterate", Method, 0, ""}, - {"(*FileSet).Position", Method, 0, ""}, - {"(*FileSet).PositionFor", Method, 4, ""}, - {"(*FileSet).Read", Method, 0, ""}, - {"(*FileSet).RemoveFile", Method, 20, ""}, - {"(*FileSet).Write", Method, 0, ""}, - {"(*Position).IsValid", Method, 0, ""}, - {"(Pos).IsValid", Method, 0, ""}, - {"(Position).String", Method, 0, ""}, - {"(Token).IsKeyword", Method, 0, ""}, - {"(Token).IsLiteral", Method, 0, ""}, - {"(Token).IsOperator", Method, 0, ""}, - {"(Token).Precedence", Method, 0, ""}, - {"(Token).String", Method, 0, ""}, - {"ADD", Const, 0, ""}, - {"ADD_ASSIGN", Const, 0, ""}, - {"AND", Const, 0, ""}, - {"AND_ASSIGN", Const, 0, ""}, - {"AND_NOT", Const, 0, ""}, - {"AND_NOT_ASSIGN", Const, 0, ""}, - {"ARROW", Const, 0, ""}, - {"ASSIGN", Const, 0, ""}, - {"BREAK", Const, 0, ""}, - {"CASE", Const, 0, ""}, - {"CHAN", Const, 0, ""}, - {"CHAR", Const, 0, ""}, - {"COLON", Const, 0, ""}, - {"COMMA", Const, 0, ""}, - {"COMMENT", Const, 0, ""}, - {"CONST", Const, 0, ""}, - {"CONTINUE", Const, 0, ""}, - {"DEC", Const, 0, ""}, - {"DEFAULT", Const, 0, ""}, - {"DEFER", Const, 0, ""}, - {"DEFINE", Const, 0, ""}, - {"ELLIPSIS", Const, 0, ""}, - {"ELSE", Const, 0, ""}, - {"EOF", Const, 0, ""}, - {"EQL", Const, 0, ""}, - {"FALLTHROUGH", Const, 0, ""}, - {"FLOAT", Const, 0, ""}, - {"FOR", Const, 0, ""}, - {"FUNC", Const, 0, ""}, - {"File", Type, 0, ""}, - {"FileSet", Type, 0, ""}, - {"GEQ", Const, 0, ""}, - {"GO", Const, 0, ""}, - {"GOTO", Const, 0, ""}, - {"GTR", Const, 0, ""}, - {"HighestPrec", Const, 0, ""}, - {"IDENT", Const, 0, ""}, - {"IF", Const, 0, ""}, - {"ILLEGAL", Const, 0, ""}, - {"IMAG", Const, 0, ""}, - {"IMPORT", Const, 0, ""}, - {"INC", Const, 0, ""}, - {"INT", Const, 0, ""}, - {"INTERFACE", Const, 0, ""}, - {"IsExported", Func, 13, "func(name string) bool"}, - {"IsIdentifier", Func, 13, "func(name string) bool"}, - {"IsKeyword", Func, 13, "func(name string) bool"}, - {"LAND", Const, 0, ""}, - {"LBRACE", Const, 0, ""}, - {"LBRACK", Const, 0, ""}, - {"LEQ", Const, 0, ""}, - {"LOR", Const, 0, ""}, - {"LPAREN", Const, 0, ""}, - {"LSS", Const, 0, ""}, - {"Lookup", Func, 0, "func(ident string) Token"}, - {"LowestPrec", Const, 0, ""}, - {"MAP", Const, 0, ""}, - {"MUL", Const, 0, ""}, - {"MUL_ASSIGN", Const, 0, ""}, - {"NEQ", Const, 0, ""}, - {"NOT", Const, 0, ""}, - {"NewFileSet", Func, 0, "func() *FileSet"}, - {"NoPos", Const, 0, ""}, - {"OR", Const, 0, ""}, - {"OR_ASSIGN", Const, 0, ""}, - {"PACKAGE", Const, 0, ""}, - {"PERIOD", Const, 0, ""}, - {"Pos", Type, 0, ""}, - {"Position", Type, 0, ""}, - {"Position.Column", Field, 0, ""}, - {"Position.Filename", Field, 0, ""}, - {"Position.Line", Field, 0, ""}, - {"Position.Offset", Field, 0, ""}, - {"QUO", Const, 0, ""}, - {"QUO_ASSIGN", Const, 0, ""}, - {"RANGE", Const, 0, ""}, - {"RBRACE", Const, 0, ""}, - {"RBRACK", Const, 0, ""}, - {"REM", Const, 0, ""}, - {"REM_ASSIGN", Const, 0, ""}, - {"RETURN", Const, 0, ""}, - {"RPAREN", Const, 0, ""}, - {"SELECT", Const, 0, ""}, - {"SEMICOLON", Const, 0, ""}, - {"SHL", Const, 0, ""}, - {"SHL_ASSIGN", Const, 0, ""}, - {"SHR", Const, 0, ""}, - {"SHR_ASSIGN", Const, 0, ""}, - {"STRING", Const, 0, ""}, - {"STRUCT", Const, 0, ""}, - {"SUB", Const, 0, ""}, - {"SUB_ASSIGN", Const, 0, ""}, - {"SWITCH", Const, 0, ""}, - {"TILDE", Const, 18, ""}, - {"TYPE", Const, 0, ""}, - {"Token", Type, 0, ""}, - {"UnaryPrec", Const, 0, ""}, - {"VAR", Const, 0, ""}, - {"XOR", Const, 0, ""}, - {"XOR_ASSIGN", Const, 0, ""}, - }, - "go/types": { - {"(*Alias).Obj", Method, 22, ""}, - {"(*Alias).Origin", Method, 23, ""}, - {"(*Alias).Rhs", Method, 23, ""}, - {"(*Alias).SetTypeParams", Method, 23, ""}, - {"(*Alias).String", Method, 22, ""}, - {"(*Alias).TypeArgs", Method, 23, ""}, - {"(*Alias).TypeParams", Method, 23, ""}, - {"(*Alias).Underlying", Method, 22, ""}, - {"(*ArgumentError).Error", Method, 18, ""}, - {"(*ArgumentError).Unwrap", Method, 18, ""}, - {"(*Array).Elem", Method, 5, ""}, - {"(*Array).Len", Method, 5, ""}, - {"(*Array).String", Method, 5, ""}, - {"(*Array).Underlying", Method, 5, ""}, - {"(*Basic).Info", Method, 5, ""}, - {"(*Basic).Kind", Method, 5, ""}, - {"(*Basic).Name", Method, 5, ""}, - {"(*Basic).String", Method, 5, ""}, - {"(*Basic).Underlying", Method, 5, ""}, - {"(*Builtin).Exported", Method, 5, ""}, - {"(*Builtin).Id", Method, 5, ""}, - {"(*Builtin).Name", Method, 5, ""}, - {"(*Builtin).Parent", Method, 5, ""}, - {"(*Builtin).Pkg", Method, 5, ""}, - {"(*Builtin).Pos", Method, 5, ""}, - {"(*Builtin).String", Method, 5, ""}, - {"(*Builtin).Type", Method, 5, ""}, - {"(*Chan).Dir", Method, 5, ""}, - {"(*Chan).Elem", Method, 5, ""}, - {"(*Chan).String", Method, 5, ""}, - {"(*Chan).Underlying", Method, 5, ""}, - {"(*Checker).Files", Method, 5, ""}, - {"(*Config).Check", Method, 5, ""}, - {"(*Const).Exported", Method, 5, ""}, - {"(*Const).Id", Method, 5, ""}, - {"(*Const).Name", Method, 5, ""}, - {"(*Const).Parent", Method, 5, ""}, - {"(*Const).Pkg", Method, 5, ""}, - {"(*Const).Pos", Method, 5, ""}, - {"(*Const).String", Method, 5, ""}, - {"(*Const).Type", Method, 5, ""}, - {"(*Const).Val", Method, 5, ""}, - {"(*Func).Exported", Method, 5, ""}, - {"(*Func).FullName", Method, 5, ""}, - {"(*Func).Id", Method, 5, ""}, - {"(*Func).Name", Method, 5, ""}, - {"(*Func).Origin", Method, 19, ""}, - {"(*Func).Parent", Method, 5, ""}, - {"(*Func).Pkg", Method, 5, ""}, - {"(*Func).Pos", Method, 5, ""}, - {"(*Func).Scope", Method, 5, ""}, - {"(*Func).Signature", Method, 23, ""}, - {"(*Func).String", Method, 5, ""}, - {"(*Func).Type", Method, 5, ""}, - {"(*Info).ObjectOf", Method, 5, ""}, - {"(*Info).PkgNameOf", Method, 22, ""}, - {"(*Info).TypeOf", Method, 5, ""}, - {"(*Initializer).String", Method, 5, ""}, - {"(*Interface).Complete", Method, 5, ""}, - {"(*Interface).Embedded", Method, 5, ""}, - {"(*Interface).EmbeddedType", Method, 11, ""}, - {"(*Interface).EmbeddedTypes", Method, 24, ""}, - {"(*Interface).Empty", Method, 5, ""}, - {"(*Interface).ExplicitMethod", Method, 5, ""}, - {"(*Interface).ExplicitMethods", Method, 24, ""}, - {"(*Interface).IsComparable", Method, 18, ""}, - {"(*Interface).IsImplicit", Method, 18, ""}, - {"(*Interface).IsMethodSet", Method, 18, ""}, - {"(*Interface).MarkImplicit", Method, 18, ""}, - {"(*Interface).Method", Method, 5, ""}, - {"(*Interface).Methods", Method, 24, ""}, - {"(*Interface).NumEmbeddeds", Method, 5, ""}, - {"(*Interface).NumExplicitMethods", Method, 5, ""}, - {"(*Interface).NumMethods", Method, 5, ""}, - {"(*Interface).String", Method, 5, ""}, - {"(*Interface).Underlying", Method, 5, ""}, - {"(*Label).Exported", Method, 5, ""}, - {"(*Label).Id", Method, 5, ""}, - {"(*Label).Name", Method, 5, ""}, - {"(*Label).Parent", Method, 5, ""}, - {"(*Label).Pkg", Method, 5, ""}, - {"(*Label).Pos", Method, 5, ""}, - {"(*Label).String", Method, 5, ""}, - {"(*Label).Type", Method, 5, ""}, - {"(*Map).Elem", Method, 5, ""}, - {"(*Map).Key", Method, 5, ""}, - {"(*Map).String", Method, 5, ""}, - {"(*Map).Underlying", Method, 5, ""}, - {"(*MethodSet).At", Method, 5, ""}, - {"(*MethodSet).Len", Method, 5, ""}, - {"(*MethodSet).Lookup", Method, 5, ""}, - {"(*MethodSet).Methods", Method, 24, ""}, - {"(*MethodSet).String", Method, 5, ""}, - {"(*Named).AddMethod", Method, 5, ""}, - {"(*Named).Method", Method, 5, ""}, - {"(*Named).Methods", Method, 24, ""}, - {"(*Named).NumMethods", Method, 5, ""}, - {"(*Named).Obj", Method, 5, ""}, - {"(*Named).Origin", Method, 18, ""}, - {"(*Named).SetTypeParams", Method, 18, ""}, - {"(*Named).SetUnderlying", Method, 5, ""}, - {"(*Named).String", Method, 5, ""}, - {"(*Named).TypeArgs", Method, 18, ""}, - {"(*Named).TypeParams", Method, 18, ""}, - {"(*Named).Underlying", Method, 5, ""}, - {"(*Nil).Exported", Method, 5, ""}, - {"(*Nil).Id", Method, 5, ""}, - {"(*Nil).Name", Method, 5, ""}, - {"(*Nil).Parent", Method, 5, ""}, - {"(*Nil).Pkg", Method, 5, ""}, - {"(*Nil).Pos", Method, 5, ""}, - {"(*Nil).String", Method, 5, ""}, - {"(*Nil).Type", Method, 5, ""}, - {"(*Package).Complete", Method, 5, ""}, - {"(*Package).GoVersion", Method, 21, ""}, - {"(*Package).Imports", Method, 5, ""}, - {"(*Package).MarkComplete", Method, 5, ""}, - {"(*Package).Name", Method, 5, ""}, - {"(*Package).Path", Method, 5, ""}, - {"(*Package).Scope", Method, 5, ""}, - {"(*Package).SetImports", Method, 5, ""}, - {"(*Package).SetName", Method, 6, ""}, - {"(*Package).String", Method, 5, ""}, - {"(*PkgName).Exported", Method, 5, ""}, - {"(*PkgName).Id", Method, 5, ""}, - {"(*PkgName).Imported", Method, 5, ""}, - {"(*PkgName).Name", Method, 5, ""}, - {"(*PkgName).Parent", Method, 5, ""}, - {"(*PkgName).Pkg", Method, 5, ""}, - {"(*PkgName).Pos", Method, 5, ""}, - {"(*PkgName).String", Method, 5, ""}, - {"(*PkgName).Type", Method, 5, ""}, - {"(*Pointer).Elem", Method, 5, ""}, - {"(*Pointer).String", Method, 5, ""}, - {"(*Pointer).Underlying", Method, 5, ""}, - {"(*Scope).Child", Method, 5, ""}, - {"(*Scope).Children", Method, 24, ""}, - {"(*Scope).Contains", Method, 5, ""}, - {"(*Scope).End", Method, 5, ""}, - {"(*Scope).Innermost", Method, 5, ""}, - {"(*Scope).Insert", Method, 5, ""}, - {"(*Scope).Len", Method, 5, ""}, - {"(*Scope).Lookup", Method, 5, ""}, - {"(*Scope).LookupParent", Method, 5, ""}, - {"(*Scope).Names", Method, 5, ""}, - {"(*Scope).NumChildren", Method, 5, ""}, - {"(*Scope).Parent", Method, 5, ""}, - {"(*Scope).Pos", Method, 5, ""}, - {"(*Scope).String", Method, 5, ""}, - {"(*Scope).WriteTo", Method, 5, ""}, - {"(*Selection).Index", Method, 5, ""}, - {"(*Selection).Indirect", Method, 5, ""}, - {"(*Selection).Kind", Method, 5, ""}, - {"(*Selection).Obj", Method, 5, ""}, - {"(*Selection).Recv", Method, 5, ""}, - {"(*Selection).String", Method, 5, ""}, - {"(*Selection).Type", Method, 5, ""}, - {"(*Signature).Params", Method, 5, ""}, - {"(*Signature).Recv", Method, 5, ""}, - {"(*Signature).RecvTypeParams", Method, 18, ""}, - {"(*Signature).Results", Method, 5, ""}, - {"(*Signature).String", Method, 5, ""}, - {"(*Signature).TypeParams", Method, 18, ""}, - {"(*Signature).Underlying", Method, 5, ""}, - {"(*Signature).Variadic", Method, 5, ""}, - {"(*Slice).Elem", Method, 5, ""}, - {"(*Slice).String", Method, 5, ""}, - {"(*Slice).Underlying", Method, 5, ""}, - {"(*StdSizes).Alignof", Method, 5, ""}, - {"(*StdSizes).Offsetsof", Method, 5, ""}, - {"(*StdSizes).Sizeof", Method, 5, ""}, - {"(*Struct).Field", Method, 5, ""}, - {"(*Struct).Fields", Method, 24, ""}, - {"(*Struct).NumFields", Method, 5, ""}, - {"(*Struct).String", Method, 5, ""}, - {"(*Struct).Tag", Method, 5, ""}, - {"(*Struct).Underlying", Method, 5, ""}, - {"(*Term).String", Method, 18, ""}, - {"(*Term).Tilde", Method, 18, ""}, - {"(*Term).Type", Method, 18, ""}, - {"(*Tuple).At", Method, 5, ""}, - {"(*Tuple).Len", Method, 5, ""}, - {"(*Tuple).String", Method, 5, ""}, - {"(*Tuple).Underlying", Method, 5, ""}, - {"(*Tuple).Variables", Method, 24, ""}, - {"(*TypeList).At", Method, 18, ""}, - {"(*TypeList).Len", Method, 18, ""}, - {"(*TypeList).Types", Method, 24, ""}, - {"(*TypeName).Exported", Method, 5, ""}, - {"(*TypeName).Id", Method, 5, ""}, - {"(*TypeName).IsAlias", Method, 9, ""}, - {"(*TypeName).Name", Method, 5, ""}, - {"(*TypeName).Parent", Method, 5, ""}, - {"(*TypeName).Pkg", Method, 5, ""}, - {"(*TypeName).Pos", Method, 5, ""}, - {"(*TypeName).String", Method, 5, ""}, - {"(*TypeName).Type", Method, 5, ""}, - {"(*TypeParam).Constraint", Method, 18, ""}, - {"(*TypeParam).Index", Method, 18, ""}, - {"(*TypeParam).Obj", Method, 18, ""}, - {"(*TypeParam).SetConstraint", Method, 18, ""}, - {"(*TypeParam).String", Method, 18, ""}, - {"(*TypeParam).Underlying", Method, 18, ""}, - {"(*TypeParamList).At", Method, 18, ""}, - {"(*TypeParamList).Len", Method, 18, ""}, - {"(*TypeParamList).TypeParams", Method, 24, ""}, - {"(*Union).Len", Method, 18, ""}, - {"(*Union).String", Method, 18, ""}, - {"(*Union).Term", Method, 18, ""}, - {"(*Union).Terms", Method, 24, ""}, - {"(*Union).Underlying", Method, 18, ""}, - {"(*Var).Anonymous", Method, 5, ""}, - {"(*Var).Embedded", Method, 11, ""}, - {"(*Var).Exported", Method, 5, ""}, - {"(*Var).Id", Method, 5, ""}, - {"(*Var).IsField", Method, 5, ""}, - {"(*Var).Kind", Method, 25, ""}, - {"(*Var).Name", Method, 5, ""}, - {"(*Var).Origin", Method, 19, ""}, - {"(*Var).Parent", Method, 5, ""}, - {"(*Var).Pkg", Method, 5, ""}, - {"(*Var).Pos", Method, 5, ""}, - {"(*Var).SetKind", Method, 25, ""}, - {"(*Var).String", Method, 5, ""}, - {"(*Var).Type", Method, 5, ""}, - {"(Checker).ObjectOf", Method, 5, ""}, - {"(Checker).PkgNameOf", Method, 22, ""}, - {"(Checker).TypeOf", Method, 5, ""}, - {"(Error).Error", Method, 5, ""}, - {"(TypeAndValue).Addressable", Method, 5, ""}, - {"(TypeAndValue).Assignable", Method, 5, ""}, - {"(TypeAndValue).HasOk", Method, 5, ""}, - {"(TypeAndValue).IsBuiltin", Method, 5, ""}, - {"(TypeAndValue).IsNil", Method, 5, ""}, - {"(TypeAndValue).IsType", Method, 5, ""}, - {"(TypeAndValue).IsValue", Method, 5, ""}, - {"(TypeAndValue).IsVoid", Method, 5, ""}, - {"(VarKind).String", Method, 25, ""}, - {"Alias", Type, 22, ""}, - {"ArgumentError", Type, 18, ""}, - {"ArgumentError.Err", Field, 18, ""}, - {"ArgumentError.Index", Field, 18, ""}, - {"Array", Type, 5, ""}, - {"AssertableTo", Func, 5, "func(V *Interface, T Type) bool"}, - {"AssignableTo", Func, 5, "func(V Type, T Type) bool"}, - {"Basic", Type, 5, ""}, - {"BasicInfo", Type, 5, ""}, - {"BasicKind", Type, 5, ""}, - {"Bool", Const, 5, ""}, - {"Builtin", Type, 5, ""}, - {"Byte", Const, 5, ""}, - {"Chan", Type, 5, ""}, - {"ChanDir", Type, 5, ""}, - {"CheckExpr", Func, 13, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr ast.Expr, info *Info) (err error)"}, - {"Checker", Type, 5, ""}, - {"Checker.Info", Field, 5, ""}, - {"Comparable", Func, 5, "func(T Type) bool"}, - {"Complex128", Const, 5, ""}, - {"Complex64", Const, 5, ""}, - {"Config", Type, 5, ""}, - {"Config.Context", Field, 18, ""}, - {"Config.DisableUnusedImportCheck", Field, 5, ""}, - {"Config.Error", Field, 5, ""}, - {"Config.FakeImportC", Field, 5, ""}, - {"Config.GoVersion", Field, 18, ""}, - {"Config.IgnoreFuncBodies", Field, 5, ""}, - {"Config.Importer", Field, 5, ""}, - {"Config.Sizes", Field, 5, ""}, - {"Const", Type, 5, ""}, - {"Context", Type, 18, ""}, - {"ConvertibleTo", Func, 5, "func(V Type, T Type) bool"}, - {"DefPredeclaredTestFuncs", Func, 5, "func()"}, - {"Default", Func, 8, "func(t Type) Type"}, - {"Error", Type, 5, ""}, - {"Error.Fset", Field, 5, ""}, - {"Error.Msg", Field, 5, ""}, - {"Error.Pos", Field, 5, ""}, - {"Error.Soft", Field, 5, ""}, - {"Eval", Func, 5, "func(fset *token.FileSet, pkg *Package, pos token.Pos, expr string) (_ TypeAndValue, err error)"}, - {"ExprString", Func, 5, "func(x ast.Expr) string"}, - {"FieldVal", Const, 5, ""}, - {"FieldVar", Const, 25, ""}, - {"Float32", Const, 5, ""}, - {"Float64", Const, 5, ""}, - {"Func", Type, 5, ""}, - {"Id", Func, 5, "func(pkg *Package, name string) string"}, - {"Identical", Func, 5, "func(x Type, y Type) bool"}, - {"IdenticalIgnoreTags", Func, 8, "func(x Type, y Type) bool"}, - {"Implements", Func, 5, "func(V Type, T *Interface) bool"}, - {"ImportMode", Type, 6, ""}, - {"Importer", Type, 5, ""}, - {"ImporterFrom", Type, 6, ""}, - {"Info", Type, 5, ""}, - {"Info.Defs", Field, 5, ""}, - {"Info.FileVersions", Field, 22, ""}, - {"Info.Implicits", Field, 5, ""}, - {"Info.InitOrder", Field, 5, ""}, - {"Info.Instances", Field, 18, ""}, - {"Info.Scopes", Field, 5, ""}, - {"Info.Selections", Field, 5, ""}, - {"Info.Types", Field, 5, ""}, - {"Info.Uses", Field, 5, ""}, - {"Initializer", Type, 5, ""}, - {"Initializer.Lhs", Field, 5, ""}, - {"Initializer.Rhs", Field, 5, ""}, - {"Instance", Type, 18, ""}, - {"Instance.Type", Field, 18, ""}, - {"Instance.TypeArgs", Field, 18, ""}, - {"Instantiate", Func, 18, "func(ctxt *Context, orig Type, targs []Type, validate bool) (Type, error)"}, - {"Int", Const, 5, ""}, - {"Int16", Const, 5, ""}, - {"Int32", Const, 5, ""}, - {"Int64", Const, 5, ""}, - {"Int8", Const, 5, ""}, - {"Interface", Type, 5, ""}, - {"Invalid", Const, 5, ""}, - {"IsBoolean", Const, 5, ""}, - {"IsComplex", Const, 5, ""}, - {"IsConstType", Const, 5, ""}, - {"IsFloat", Const, 5, ""}, - {"IsInteger", Const, 5, ""}, - {"IsInterface", Func, 5, "func(t Type) bool"}, - {"IsNumeric", Const, 5, ""}, - {"IsOrdered", Const, 5, ""}, - {"IsString", Const, 5, ""}, - {"IsUnsigned", Const, 5, ""}, - {"IsUntyped", Const, 5, ""}, - {"Label", Type, 5, ""}, - {"LocalVar", Const, 25, ""}, - {"LookupFieldOrMethod", Func, 5, "func(T Type, addressable bool, pkg *Package, name string) (obj Object, index []int, indirect bool)"}, - {"LookupSelection", Func, 25, ""}, - {"Map", Type, 5, ""}, - {"MethodExpr", Const, 5, ""}, - {"MethodSet", Type, 5, ""}, - {"MethodVal", Const, 5, ""}, - {"MissingMethod", Func, 5, "func(V Type, T *Interface, static bool) (method *Func, wrongType bool)"}, - {"Named", Type, 5, ""}, - {"NewAlias", Func, 22, "func(obj *TypeName, rhs Type) *Alias"}, - {"NewArray", Func, 5, "func(elem Type, len int64) *Array"}, - {"NewChan", Func, 5, "func(dir ChanDir, elem Type) *Chan"}, - {"NewChecker", Func, 5, "func(conf *Config, fset *token.FileSet, pkg *Package, info *Info) *Checker"}, - {"NewConst", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, val constant.Value) *Const"}, - {"NewContext", Func, 18, "func() *Context"}, - {"NewField", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var"}, - {"NewFunc", Func, 5, "func(pos token.Pos, pkg *Package, name string, sig *Signature) *Func"}, - {"NewInterface", Func, 5, "func(methods []*Func, embeddeds []*Named) *Interface"}, - {"NewInterfaceType", Func, 11, "func(methods []*Func, embeddeds []Type) *Interface"}, - {"NewLabel", Func, 5, "func(pos token.Pos, pkg *Package, name string) *Label"}, - {"NewMap", Func, 5, "func(key Type, elem Type) *Map"}, - {"NewMethodSet", Func, 5, "func(T Type) *MethodSet"}, - {"NewNamed", Func, 5, "func(obj *TypeName, underlying Type, methods []*Func) *Named"}, - {"NewPackage", Func, 5, "func(path string, name string) *Package"}, - {"NewParam", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"}, - {"NewPkgName", Func, 5, "func(pos token.Pos, pkg *Package, name string, imported *Package) *PkgName"}, - {"NewPointer", Func, 5, "func(elem Type) *Pointer"}, - {"NewScope", Func, 5, "func(parent *Scope, pos token.Pos, end token.Pos, comment string) *Scope"}, - {"NewSignature", Func, 5, "func(recv *Var, params *Tuple, results *Tuple, variadic bool) *Signature"}, - {"NewSignatureType", Func, 18, "func(recv *Var, recvTypeParams []*TypeParam, typeParams []*TypeParam, params *Tuple, results *Tuple, variadic bool) *Signature"}, - {"NewSlice", Func, 5, "func(elem Type) *Slice"}, - {"NewStruct", Func, 5, "func(fields []*Var, tags []string) *Struct"}, - {"NewTerm", Func, 18, "func(tilde bool, typ Type) *Term"}, - {"NewTuple", Func, 5, "func(x ...*Var) *Tuple"}, - {"NewTypeName", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *TypeName"}, - {"NewTypeParam", Func, 18, "func(obj *TypeName, constraint Type) *TypeParam"}, - {"NewUnion", Func, 18, "func(terms []*Term) *Union"}, - {"NewVar", Func, 5, "func(pos token.Pos, pkg *Package, name string, typ Type) *Var"}, - {"Nil", Type, 5, ""}, - {"Object", Type, 5, ""}, - {"ObjectString", Func, 5, "func(obj Object, qf Qualifier) string"}, - {"Package", Type, 5, ""}, - {"PackageVar", Const, 25, ""}, - {"ParamVar", Const, 25, ""}, - {"PkgName", Type, 5, ""}, - {"Pointer", Type, 5, ""}, - {"Qualifier", Type, 5, ""}, - {"RecvOnly", Const, 5, ""}, - {"RecvVar", Const, 25, ""}, - {"RelativeTo", Func, 5, "func(pkg *Package) Qualifier"}, - {"ResultVar", Const, 25, ""}, - {"Rune", Const, 5, ""}, - {"Satisfies", Func, 20, "func(V Type, T *Interface) bool"}, - {"Scope", Type, 5, ""}, - {"Selection", Type, 5, ""}, - {"SelectionKind", Type, 5, ""}, - {"SelectionString", Func, 5, "func(s *Selection, qf Qualifier) string"}, - {"SendOnly", Const, 5, ""}, - {"SendRecv", Const, 5, ""}, - {"Signature", Type, 5, ""}, - {"Sizes", Type, 5, ""}, - {"SizesFor", Func, 9, "func(compiler string, arch string) Sizes"}, - {"Slice", Type, 5, ""}, - {"StdSizes", Type, 5, ""}, - {"StdSizes.MaxAlign", Field, 5, ""}, - {"StdSizes.WordSize", Field, 5, ""}, - {"String", Const, 5, ""}, - {"Struct", Type, 5, ""}, - {"Term", Type, 18, ""}, - {"Tuple", Type, 5, ""}, - {"Typ", Var, 5, ""}, - {"Type", Type, 5, ""}, - {"TypeAndValue", Type, 5, ""}, - {"TypeAndValue.Type", Field, 5, ""}, - {"TypeAndValue.Value", Field, 5, ""}, - {"TypeList", Type, 18, ""}, - {"TypeName", Type, 5, ""}, - {"TypeParam", Type, 18, ""}, - {"TypeParamList", Type, 18, ""}, - {"TypeString", Func, 5, "func(typ Type, qf Qualifier) string"}, - {"Uint", Const, 5, ""}, - {"Uint16", Const, 5, ""}, - {"Uint32", Const, 5, ""}, - {"Uint64", Const, 5, ""}, - {"Uint8", Const, 5, ""}, - {"Uintptr", Const, 5, ""}, - {"Unalias", Func, 22, "func(t Type) Type"}, - {"Union", Type, 18, ""}, - {"Universe", Var, 5, ""}, - {"Unsafe", Var, 5, ""}, - {"UnsafePointer", Const, 5, ""}, - {"UntypedBool", Const, 5, ""}, - {"UntypedComplex", Const, 5, ""}, - {"UntypedFloat", Const, 5, ""}, - {"UntypedInt", Const, 5, ""}, - {"UntypedNil", Const, 5, ""}, - {"UntypedRune", Const, 5, ""}, - {"UntypedString", Const, 5, ""}, - {"Var", Type, 5, ""}, - {"VarKind", Type, 25, ""}, - {"WriteExpr", Func, 5, "func(buf *bytes.Buffer, x ast.Expr)"}, - {"WriteSignature", Func, 5, "func(buf *bytes.Buffer, sig *Signature, qf Qualifier)"}, - {"WriteType", Func, 5, "func(buf *bytes.Buffer, typ Type, qf Qualifier)"}, - }, - "go/version": { - {"Compare", Func, 22, "func(x string, y string) int"}, - {"IsValid", Func, 22, "func(x string) bool"}, - {"Lang", Func, 22, "func(x string) string"}, - }, - "hash": { - {"Hash", Type, 0, ""}, - {"Hash32", Type, 0, ""}, - {"Hash64", Type, 0, ""}, - }, - "hash/adler32": { - {"Checksum", Func, 0, "func(data []byte) uint32"}, - {"New", Func, 0, "func() hash.Hash32"}, - {"Size", Const, 0, ""}, - }, - "hash/crc32": { - {"Castagnoli", Const, 0, ""}, - {"Checksum", Func, 0, "func(data []byte, tab *Table) uint32"}, - {"ChecksumIEEE", Func, 0, "func(data []byte) uint32"}, - {"IEEE", Const, 0, ""}, - {"IEEETable", Var, 0, ""}, - {"Koopman", Const, 0, ""}, - {"MakeTable", Func, 0, "func(poly uint32) *Table"}, - {"New", Func, 0, "func(tab *Table) hash.Hash32"}, - {"NewIEEE", Func, 0, "func() hash.Hash32"}, - {"Size", Const, 0, ""}, - {"Table", Type, 0, ""}, - {"Update", Func, 0, "func(crc uint32, tab *Table, p []byte) uint32"}, - }, - "hash/crc64": { - {"Checksum", Func, 0, "func(data []byte, tab *Table) uint64"}, - {"ECMA", Const, 0, ""}, - {"ISO", Const, 0, ""}, - {"MakeTable", Func, 0, "func(poly uint64) *Table"}, - {"New", Func, 0, "func(tab *Table) hash.Hash64"}, - {"Size", Const, 0, ""}, - {"Table", Type, 0, ""}, - {"Update", Func, 0, "func(crc uint64, tab *Table, p []byte) uint64"}, - }, - "hash/fnv": { - {"New128", Func, 9, "func() hash.Hash"}, - {"New128a", Func, 9, "func() hash.Hash"}, - {"New32", Func, 0, "func() hash.Hash32"}, - {"New32a", Func, 0, "func() hash.Hash32"}, - {"New64", Func, 0, "func() hash.Hash64"}, - {"New64a", Func, 0, "func() hash.Hash64"}, - }, - "hash/maphash": { - {"(*Hash).BlockSize", Method, 14, ""}, - {"(*Hash).Reset", Method, 14, ""}, - {"(*Hash).Seed", Method, 14, ""}, - {"(*Hash).SetSeed", Method, 14, ""}, - {"(*Hash).Size", Method, 14, ""}, - {"(*Hash).Sum", Method, 14, ""}, - {"(*Hash).Sum64", Method, 14, ""}, - {"(*Hash).Write", Method, 14, ""}, - {"(*Hash).WriteByte", Method, 14, ""}, - {"(*Hash).WriteString", Method, 14, ""}, - {"Bytes", Func, 19, "func(seed Seed, b []byte) uint64"}, - {"Comparable", Func, 24, "func[T comparable](seed Seed, v T) uint64"}, - {"Hash", Type, 14, ""}, - {"MakeSeed", Func, 14, "func() Seed"}, - {"Seed", Type, 14, ""}, - {"String", Func, 19, "func(seed Seed, s string) uint64"}, - {"WriteComparable", Func, 24, "func[T comparable](h *Hash, x T)"}, - }, - "html": { - {"EscapeString", Func, 0, "func(s string) string"}, - {"UnescapeString", Func, 0, "func(s string) string"}, - }, - "html/template": { - {"(*Error).Error", Method, 0, ""}, - {"(*Template).AddParseTree", Method, 0, ""}, - {"(*Template).Clone", Method, 0, ""}, - {"(*Template).DefinedTemplates", Method, 6, ""}, - {"(*Template).Delims", Method, 0, ""}, - {"(*Template).Execute", Method, 0, ""}, - {"(*Template).ExecuteTemplate", Method, 0, ""}, - {"(*Template).Funcs", Method, 0, ""}, - {"(*Template).Lookup", Method, 0, ""}, - {"(*Template).Name", Method, 0, ""}, - {"(*Template).New", Method, 0, ""}, - {"(*Template).Option", Method, 5, ""}, - {"(*Template).Parse", Method, 0, ""}, - {"(*Template).ParseFS", Method, 16, ""}, - {"(*Template).ParseFiles", Method, 0, ""}, - {"(*Template).ParseGlob", Method, 0, ""}, - {"(*Template).Templates", Method, 0, ""}, - {"CSS", Type, 0, ""}, - {"ErrAmbigContext", Const, 0, ""}, - {"ErrBadHTML", Const, 0, ""}, - {"ErrBranchEnd", Const, 0, ""}, - {"ErrEndContext", Const, 0, ""}, - {"ErrJSTemplate", Const, 21, ""}, - {"ErrNoSuchTemplate", Const, 0, ""}, - {"ErrOutputContext", Const, 0, ""}, - {"ErrPartialCharset", Const, 0, ""}, - {"ErrPartialEscape", Const, 0, ""}, - {"ErrPredefinedEscaper", Const, 9, ""}, - {"ErrRangeLoopReentry", Const, 0, ""}, - {"ErrSlashAmbig", Const, 0, ""}, - {"Error", Type, 0, ""}, - {"Error.Description", Field, 0, ""}, - {"Error.ErrorCode", Field, 0, ""}, - {"Error.Line", Field, 0, ""}, - {"Error.Name", Field, 0, ""}, - {"Error.Node", Field, 4, ""}, - {"ErrorCode", Type, 0, ""}, - {"FuncMap", Type, 0, ""}, - {"HTML", Type, 0, ""}, - {"HTMLAttr", Type, 0, ""}, - {"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"}, - {"HTMLEscapeString", Func, 0, "func(s string) string"}, - {"HTMLEscaper", Func, 0, "func(args ...any) string"}, - {"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"}, - {"JS", Type, 0, ""}, - {"JSEscape", Func, 0, "func(w io.Writer, b []byte)"}, - {"JSEscapeString", Func, 0, "func(s string) string"}, - {"JSEscaper", Func, 0, "func(args ...any) string"}, - {"JSStr", Type, 0, ""}, - {"Must", Func, 0, "func(t *Template, err error) *Template"}, - {"New", Func, 0, "func(name string) *Template"}, - {"OK", Const, 0, ""}, - {"ParseFS", Func, 16, "func(fs fs.FS, patterns ...string) (*Template, error)"}, - {"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"}, - {"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"}, - {"Srcset", Type, 10, ""}, - {"Template", Type, 0, ""}, - {"Template.Tree", Field, 2, ""}, - {"URL", Type, 0, ""}, - {"URLQueryEscaper", Func, 0, "func(args ...any) string"}, - }, - "image": { - {"(*Alpha).AlphaAt", Method, 4, ""}, - {"(*Alpha).At", Method, 0, ""}, - {"(*Alpha).Bounds", Method, 0, ""}, - {"(*Alpha).ColorModel", Method, 0, ""}, - {"(*Alpha).Opaque", Method, 0, ""}, - {"(*Alpha).PixOffset", Method, 0, ""}, - {"(*Alpha).RGBA64At", Method, 17, ""}, - {"(*Alpha).Set", Method, 0, ""}, - {"(*Alpha).SetAlpha", Method, 0, ""}, - {"(*Alpha).SetRGBA64", Method, 17, ""}, - {"(*Alpha).SubImage", Method, 0, ""}, - {"(*Alpha16).Alpha16At", Method, 4, ""}, - {"(*Alpha16).At", Method, 0, ""}, - {"(*Alpha16).Bounds", Method, 0, ""}, - {"(*Alpha16).ColorModel", Method, 0, ""}, - {"(*Alpha16).Opaque", Method, 0, ""}, - {"(*Alpha16).PixOffset", Method, 0, ""}, - {"(*Alpha16).RGBA64At", Method, 17, ""}, - {"(*Alpha16).Set", Method, 0, ""}, - {"(*Alpha16).SetAlpha16", Method, 0, ""}, - {"(*Alpha16).SetRGBA64", Method, 17, ""}, - {"(*Alpha16).SubImage", Method, 0, ""}, - {"(*CMYK).At", Method, 5, ""}, - {"(*CMYK).Bounds", Method, 5, ""}, - {"(*CMYK).CMYKAt", Method, 5, ""}, - {"(*CMYK).ColorModel", Method, 5, ""}, - {"(*CMYK).Opaque", Method, 5, ""}, - {"(*CMYK).PixOffset", Method, 5, ""}, - {"(*CMYK).RGBA64At", Method, 17, ""}, - {"(*CMYK).Set", Method, 5, ""}, - {"(*CMYK).SetCMYK", Method, 5, ""}, - {"(*CMYK).SetRGBA64", Method, 17, ""}, - {"(*CMYK).SubImage", Method, 5, ""}, - {"(*Gray).At", Method, 0, ""}, - {"(*Gray).Bounds", Method, 0, ""}, - {"(*Gray).ColorModel", Method, 0, ""}, - {"(*Gray).GrayAt", Method, 4, ""}, - {"(*Gray).Opaque", Method, 0, ""}, - {"(*Gray).PixOffset", Method, 0, ""}, - {"(*Gray).RGBA64At", Method, 17, ""}, - {"(*Gray).Set", Method, 0, ""}, - {"(*Gray).SetGray", Method, 0, ""}, - {"(*Gray).SetRGBA64", Method, 17, ""}, - {"(*Gray).SubImage", Method, 0, ""}, - {"(*Gray16).At", Method, 0, ""}, - {"(*Gray16).Bounds", Method, 0, ""}, - {"(*Gray16).ColorModel", Method, 0, ""}, - {"(*Gray16).Gray16At", Method, 4, ""}, - {"(*Gray16).Opaque", Method, 0, ""}, - {"(*Gray16).PixOffset", Method, 0, ""}, - {"(*Gray16).RGBA64At", Method, 17, ""}, - {"(*Gray16).Set", Method, 0, ""}, - {"(*Gray16).SetGray16", Method, 0, ""}, - {"(*Gray16).SetRGBA64", Method, 17, ""}, - {"(*Gray16).SubImage", Method, 0, ""}, - {"(*NRGBA).At", Method, 0, ""}, - {"(*NRGBA).Bounds", Method, 0, ""}, - {"(*NRGBA).ColorModel", Method, 0, ""}, - {"(*NRGBA).NRGBAAt", Method, 4, ""}, - {"(*NRGBA).Opaque", Method, 0, ""}, - {"(*NRGBA).PixOffset", Method, 0, ""}, - {"(*NRGBA).RGBA64At", Method, 17, ""}, - {"(*NRGBA).Set", Method, 0, ""}, - {"(*NRGBA).SetNRGBA", Method, 0, ""}, - {"(*NRGBA).SetRGBA64", Method, 17, ""}, - {"(*NRGBA).SubImage", Method, 0, ""}, - {"(*NRGBA64).At", Method, 0, ""}, - {"(*NRGBA64).Bounds", Method, 0, ""}, - {"(*NRGBA64).ColorModel", Method, 0, ""}, - {"(*NRGBA64).NRGBA64At", Method, 4, ""}, - {"(*NRGBA64).Opaque", Method, 0, ""}, - {"(*NRGBA64).PixOffset", Method, 0, ""}, - {"(*NRGBA64).RGBA64At", Method, 17, ""}, - {"(*NRGBA64).Set", Method, 0, ""}, - {"(*NRGBA64).SetNRGBA64", Method, 0, ""}, - {"(*NRGBA64).SetRGBA64", Method, 17, ""}, - {"(*NRGBA64).SubImage", Method, 0, ""}, - {"(*NYCbCrA).AOffset", Method, 6, ""}, - {"(*NYCbCrA).At", Method, 6, ""}, - {"(*NYCbCrA).Bounds", Method, 6, ""}, - {"(*NYCbCrA).COffset", Method, 6, ""}, - {"(*NYCbCrA).ColorModel", Method, 6, ""}, - {"(*NYCbCrA).NYCbCrAAt", Method, 6, ""}, - {"(*NYCbCrA).Opaque", Method, 6, ""}, - {"(*NYCbCrA).RGBA64At", Method, 17, ""}, - {"(*NYCbCrA).SubImage", Method, 6, ""}, - {"(*NYCbCrA).YCbCrAt", Method, 6, ""}, - {"(*NYCbCrA).YOffset", Method, 6, ""}, - {"(*Paletted).At", Method, 0, ""}, - {"(*Paletted).Bounds", Method, 0, ""}, - {"(*Paletted).ColorIndexAt", Method, 0, ""}, - {"(*Paletted).ColorModel", Method, 0, ""}, - {"(*Paletted).Opaque", Method, 0, ""}, - {"(*Paletted).PixOffset", Method, 0, ""}, - {"(*Paletted).RGBA64At", Method, 17, ""}, - {"(*Paletted).Set", Method, 0, ""}, - {"(*Paletted).SetColorIndex", Method, 0, ""}, - {"(*Paletted).SetRGBA64", Method, 17, ""}, - {"(*Paletted).SubImage", Method, 0, ""}, - {"(*RGBA).At", Method, 0, ""}, - {"(*RGBA).Bounds", Method, 0, ""}, - {"(*RGBA).ColorModel", Method, 0, ""}, - {"(*RGBA).Opaque", Method, 0, ""}, - {"(*RGBA).PixOffset", Method, 0, ""}, - {"(*RGBA).RGBA64At", Method, 17, ""}, - {"(*RGBA).RGBAAt", Method, 4, ""}, - {"(*RGBA).Set", Method, 0, ""}, - {"(*RGBA).SetRGBA", Method, 0, ""}, - {"(*RGBA).SetRGBA64", Method, 17, ""}, - {"(*RGBA).SubImage", Method, 0, ""}, - {"(*RGBA64).At", Method, 0, ""}, - {"(*RGBA64).Bounds", Method, 0, ""}, - {"(*RGBA64).ColorModel", Method, 0, ""}, - {"(*RGBA64).Opaque", Method, 0, ""}, - {"(*RGBA64).PixOffset", Method, 0, ""}, - {"(*RGBA64).RGBA64At", Method, 4, ""}, - {"(*RGBA64).Set", Method, 0, ""}, - {"(*RGBA64).SetRGBA64", Method, 0, ""}, - {"(*RGBA64).SubImage", Method, 0, ""}, - {"(*Uniform).At", Method, 0, ""}, - {"(*Uniform).Bounds", Method, 0, ""}, - {"(*Uniform).ColorModel", Method, 0, ""}, - {"(*Uniform).Convert", Method, 0, ""}, - {"(*Uniform).Opaque", Method, 0, ""}, - {"(*Uniform).RGBA", Method, 0, ""}, - {"(*Uniform).RGBA64At", Method, 17, ""}, - {"(*YCbCr).At", Method, 0, ""}, - {"(*YCbCr).Bounds", Method, 0, ""}, - {"(*YCbCr).COffset", Method, 0, ""}, - {"(*YCbCr).ColorModel", Method, 0, ""}, - {"(*YCbCr).Opaque", Method, 0, ""}, - {"(*YCbCr).RGBA64At", Method, 17, ""}, - {"(*YCbCr).SubImage", Method, 0, ""}, - {"(*YCbCr).YCbCrAt", Method, 4, ""}, - {"(*YCbCr).YOffset", Method, 0, ""}, - {"(Point).Add", Method, 0, ""}, - {"(Point).Div", Method, 0, ""}, - {"(Point).Eq", Method, 0, ""}, - {"(Point).In", Method, 0, ""}, - {"(Point).Mod", Method, 0, ""}, - {"(Point).Mul", Method, 0, ""}, - {"(Point).String", Method, 0, ""}, - {"(Point).Sub", Method, 0, ""}, - {"(Rectangle).Add", Method, 0, ""}, - {"(Rectangle).At", Method, 5, ""}, - {"(Rectangle).Bounds", Method, 5, ""}, - {"(Rectangle).Canon", Method, 0, ""}, - {"(Rectangle).ColorModel", Method, 5, ""}, - {"(Rectangle).Dx", Method, 0, ""}, - {"(Rectangle).Dy", Method, 0, ""}, - {"(Rectangle).Empty", Method, 0, ""}, - {"(Rectangle).Eq", Method, 0, ""}, - {"(Rectangle).In", Method, 0, ""}, - {"(Rectangle).Inset", Method, 0, ""}, - {"(Rectangle).Intersect", Method, 0, ""}, - {"(Rectangle).Overlaps", Method, 0, ""}, - {"(Rectangle).RGBA64At", Method, 17, ""}, - {"(Rectangle).Size", Method, 0, ""}, - {"(Rectangle).String", Method, 0, ""}, - {"(Rectangle).Sub", Method, 0, ""}, - {"(Rectangle).Union", Method, 0, ""}, - {"(YCbCrSubsampleRatio).String", Method, 0, ""}, - {"Alpha", Type, 0, ""}, - {"Alpha.Pix", Field, 0, ""}, - {"Alpha.Rect", Field, 0, ""}, - {"Alpha.Stride", Field, 0, ""}, - {"Alpha16", Type, 0, ""}, - {"Alpha16.Pix", Field, 0, ""}, - {"Alpha16.Rect", Field, 0, ""}, - {"Alpha16.Stride", Field, 0, ""}, - {"Black", Var, 0, ""}, - {"CMYK", Type, 5, ""}, - {"CMYK.Pix", Field, 5, ""}, - {"CMYK.Rect", Field, 5, ""}, - {"CMYK.Stride", Field, 5, ""}, - {"Config", Type, 0, ""}, - {"Config.ColorModel", Field, 0, ""}, - {"Config.Height", Field, 0, ""}, - {"Config.Width", Field, 0, ""}, - {"Decode", Func, 0, "func(r io.Reader) (Image, string, error)"}, - {"DecodeConfig", Func, 0, "func(r io.Reader) (Config, string, error)"}, - {"ErrFormat", Var, 0, ""}, - {"Gray", Type, 0, ""}, - {"Gray.Pix", Field, 0, ""}, - {"Gray.Rect", Field, 0, ""}, - {"Gray.Stride", Field, 0, ""}, - {"Gray16", Type, 0, ""}, - {"Gray16.Pix", Field, 0, ""}, - {"Gray16.Rect", Field, 0, ""}, - {"Gray16.Stride", Field, 0, ""}, - {"Image", Type, 0, ""}, - {"NRGBA", Type, 0, ""}, - {"NRGBA.Pix", Field, 0, ""}, - {"NRGBA.Rect", Field, 0, ""}, - {"NRGBA.Stride", Field, 0, ""}, - {"NRGBA64", Type, 0, ""}, - {"NRGBA64.Pix", Field, 0, ""}, - {"NRGBA64.Rect", Field, 0, ""}, - {"NRGBA64.Stride", Field, 0, ""}, - {"NYCbCrA", Type, 6, ""}, - {"NYCbCrA.A", Field, 6, ""}, - {"NYCbCrA.AStride", Field, 6, ""}, - {"NYCbCrA.YCbCr", Field, 6, ""}, - {"NewAlpha", Func, 0, "func(r Rectangle) *Alpha"}, - {"NewAlpha16", Func, 0, "func(r Rectangle) *Alpha16"}, - {"NewCMYK", Func, 5, "func(r Rectangle) *CMYK"}, - {"NewGray", Func, 0, "func(r Rectangle) *Gray"}, - {"NewGray16", Func, 0, "func(r Rectangle) *Gray16"}, - {"NewNRGBA", Func, 0, "func(r Rectangle) *NRGBA"}, - {"NewNRGBA64", Func, 0, "func(r Rectangle) *NRGBA64"}, - {"NewNYCbCrA", Func, 6, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA"}, - {"NewPaletted", Func, 0, "func(r Rectangle, p color.Palette) *Paletted"}, - {"NewRGBA", Func, 0, "func(r Rectangle) *RGBA"}, - {"NewRGBA64", Func, 0, "func(r Rectangle) *RGBA64"}, - {"NewUniform", Func, 0, "func(c color.Color) *Uniform"}, - {"NewYCbCr", Func, 0, "func(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr"}, - {"Opaque", Var, 0, ""}, - {"Paletted", Type, 0, ""}, - {"Paletted.Palette", Field, 0, ""}, - {"Paletted.Pix", Field, 0, ""}, - {"Paletted.Rect", Field, 0, ""}, - {"Paletted.Stride", Field, 0, ""}, - {"PalettedImage", Type, 0, ""}, - {"Point", Type, 0, ""}, - {"Point.X", Field, 0, ""}, - {"Point.Y", Field, 0, ""}, - {"Pt", Func, 0, "func(X int, Y int) Point"}, - {"RGBA", Type, 0, ""}, - {"RGBA.Pix", Field, 0, ""}, - {"RGBA.Rect", Field, 0, ""}, - {"RGBA.Stride", Field, 0, ""}, - {"RGBA64", Type, 0, ""}, - {"RGBA64.Pix", Field, 0, ""}, - {"RGBA64.Rect", Field, 0, ""}, - {"RGBA64.Stride", Field, 0, ""}, - {"RGBA64Image", Type, 17, ""}, - {"Rect", Func, 0, "func(x0 int, y0 int, x1 int, y1 int) Rectangle"}, - {"Rectangle", Type, 0, ""}, - {"Rectangle.Max", Field, 0, ""}, - {"Rectangle.Min", Field, 0, ""}, - {"RegisterFormat", Func, 0, "func(name string, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))"}, - {"Transparent", Var, 0, ""}, - {"Uniform", Type, 0, ""}, - {"Uniform.C", Field, 0, ""}, - {"White", Var, 0, ""}, - {"YCbCr", Type, 0, ""}, - {"YCbCr.CStride", Field, 0, ""}, - {"YCbCr.Cb", Field, 0, ""}, - {"YCbCr.Cr", Field, 0, ""}, - {"YCbCr.Rect", Field, 0, ""}, - {"YCbCr.SubsampleRatio", Field, 0, ""}, - {"YCbCr.Y", Field, 0, ""}, - {"YCbCr.YStride", Field, 0, ""}, - {"YCbCrSubsampleRatio", Type, 0, ""}, - {"YCbCrSubsampleRatio410", Const, 5, ""}, - {"YCbCrSubsampleRatio411", Const, 5, ""}, - {"YCbCrSubsampleRatio420", Const, 0, ""}, - {"YCbCrSubsampleRatio422", Const, 0, ""}, - {"YCbCrSubsampleRatio440", Const, 1, ""}, - {"YCbCrSubsampleRatio444", Const, 0, ""}, - {"ZP", Var, 0, ""}, - {"ZR", Var, 0, ""}, - }, - "image/color": { - {"(Alpha).RGBA", Method, 0, ""}, - {"(Alpha16).RGBA", Method, 0, ""}, - {"(CMYK).RGBA", Method, 5, ""}, - {"(Gray).RGBA", Method, 0, ""}, - {"(Gray16).RGBA", Method, 0, ""}, - {"(NRGBA).RGBA", Method, 0, ""}, - {"(NRGBA64).RGBA", Method, 0, ""}, - {"(NYCbCrA).RGBA", Method, 6, ""}, - {"(Palette).Convert", Method, 0, ""}, - {"(Palette).Index", Method, 0, ""}, - {"(RGBA).RGBA", Method, 0, ""}, - {"(RGBA64).RGBA", Method, 0, ""}, - {"(YCbCr).RGBA", Method, 0, ""}, - {"Alpha", Type, 0, ""}, - {"Alpha.A", Field, 0, ""}, - {"Alpha16", Type, 0, ""}, - {"Alpha16.A", Field, 0, ""}, - {"Alpha16Model", Var, 0, ""}, - {"AlphaModel", Var, 0, ""}, - {"Black", Var, 0, ""}, - {"CMYK", Type, 5, ""}, - {"CMYK.C", Field, 5, ""}, - {"CMYK.K", Field, 5, ""}, - {"CMYK.M", Field, 5, ""}, - {"CMYK.Y", Field, 5, ""}, - {"CMYKModel", Var, 5, ""}, - {"CMYKToRGB", Func, 5, "func(c uint8, m uint8, y uint8, k uint8) (uint8, uint8, uint8)"}, - {"Color", Type, 0, ""}, - {"Gray", Type, 0, ""}, - {"Gray.Y", Field, 0, ""}, - {"Gray16", Type, 0, ""}, - {"Gray16.Y", Field, 0, ""}, - {"Gray16Model", Var, 0, ""}, - {"GrayModel", Var, 0, ""}, - {"Model", Type, 0, ""}, - {"ModelFunc", Func, 0, "func(f func(Color) Color) Model"}, - {"NRGBA", Type, 0, ""}, - {"NRGBA.A", Field, 0, ""}, - {"NRGBA.B", Field, 0, ""}, - {"NRGBA.G", Field, 0, ""}, - {"NRGBA.R", Field, 0, ""}, - {"NRGBA64", Type, 0, ""}, - {"NRGBA64.A", Field, 0, ""}, - {"NRGBA64.B", Field, 0, ""}, - {"NRGBA64.G", Field, 0, ""}, - {"NRGBA64.R", Field, 0, ""}, - {"NRGBA64Model", Var, 0, ""}, - {"NRGBAModel", Var, 0, ""}, - {"NYCbCrA", Type, 6, ""}, - {"NYCbCrA.A", Field, 6, ""}, - {"NYCbCrA.YCbCr", Field, 6, ""}, - {"NYCbCrAModel", Var, 6, ""}, - {"Opaque", Var, 0, ""}, - {"Palette", Type, 0, ""}, - {"RGBA", Type, 0, ""}, - {"RGBA.A", Field, 0, ""}, - {"RGBA.B", Field, 0, ""}, - {"RGBA.G", Field, 0, ""}, - {"RGBA.R", Field, 0, ""}, - {"RGBA64", Type, 0, ""}, - {"RGBA64.A", Field, 0, ""}, - {"RGBA64.B", Field, 0, ""}, - {"RGBA64.G", Field, 0, ""}, - {"RGBA64.R", Field, 0, ""}, - {"RGBA64Model", Var, 0, ""}, - {"RGBAModel", Var, 0, ""}, - {"RGBToCMYK", Func, 5, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8, uint8)"}, - {"RGBToYCbCr", Func, 0, "func(r uint8, g uint8, b uint8) (uint8, uint8, uint8)"}, - {"Transparent", Var, 0, ""}, - {"White", Var, 0, ""}, - {"YCbCr", Type, 0, ""}, - {"YCbCr.Cb", Field, 0, ""}, - {"YCbCr.Cr", Field, 0, ""}, - {"YCbCr.Y", Field, 0, ""}, - {"YCbCrModel", Var, 0, ""}, - {"YCbCrToRGB", Func, 0, "func(y uint8, cb uint8, cr uint8) (uint8, uint8, uint8)"}, - }, - "image/color/palette": { - {"Plan9", Var, 2, ""}, - {"WebSafe", Var, 2, ""}, - }, - "image/draw": { - {"(Op).Draw", Method, 2, ""}, - {"Draw", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)"}, - {"DrawMask", Func, 0, "func(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op)"}, - {"Drawer", Type, 2, ""}, - {"FloydSteinberg", Var, 2, ""}, - {"Image", Type, 0, ""}, - {"Op", Type, 0, ""}, - {"Over", Const, 0, ""}, - {"Quantizer", Type, 2, ""}, - {"RGBA64Image", Type, 17, ""}, - {"Src", Const, 0, ""}, - }, - "image/gif": { - {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, - {"DecodeAll", Func, 0, "func(r io.Reader) (*GIF, error)"}, - {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, - {"DisposalBackground", Const, 5, ""}, - {"DisposalNone", Const, 5, ""}, - {"DisposalPrevious", Const, 5, ""}, - {"Encode", Func, 2, "func(w io.Writer, m image.Image, o *Options) error"}, - {"EncodeAll", Func, 2, "func(w io.Writer, g *GIF) error"}, - {"GIF", Type, 0, ""}, - {"GIF.BackgroundIndex", Field, 5, ""}, - {"GIF.Config", Field, 5, ""}, - {"GIF.Delay", Field, 0, ""}, - {"GIF.Disposal", Field, 5, ""}, - {"GIF.Image", Field, 0, ""}, - {"GIF.LoopCount", Field, 0, ""}, - {"Options", Type, 2, ""}, - {"Options.Drawer", Field, 2, ""}, - {"Options.NumColors", Field, 2, ""}, - {"Options.Quantizer", Field, 2, ""}, - }, - "image/jpeg": { - {"(FormatError).Error", Method, 0, ""}, - {"(UnsupportedError).Error", Method, 0, ""}, - {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, - {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, - {"DefaultQuality", Const, 0, ""}, - {"Encode", Func, 0, "func(w io.Writer, m image.Image, o *Options) error"}, - {"FormatError", Type, 0, ""}, - {"Options", Type, 0, ""}, - {"Options.Quality", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"UnsupportedError", Type, 0, ""}, - }, - "image/png": { - {"(*Encoder).Encode", Method, 4, ""}, - {"(FormatError).Error", Method, 0, ""}, - {"(UnsupportedError).Error", Method, 0, ""}, - {"BestCompression", Const, 4, ""}, - {"BestSpeed", Const, 4, ""}, - {"CompressionLevel", Type, 4, ""}, - {"Decode", Func, 0, "func(r io.Reader) (image.Image, error)"}, - {"DecodeConfig", Func, 0, "func(r io.Reader) (image.Config, error)"}, - {"DefaultCompression", Const, 4, ""}, - {"Encode", Func, 0, "func(w io.Writer, m image.Image) error"}, - {"Encoder", Type, 4, ""}, - {"Encoder.BufferPool", Field, 9, ""}, - {"Encoder.CompressionLevel", Field, 4, ""}, - {"EncoderBuffer", Type, 9, ""}, - {"EncoderBufferPool", Type, 9, ""}, - {"FormatError", Type, 0, ""}, - {"NoCompression", Const, 4, ""}, - {"UnsupportedError", Type, 0, ""}, - }, - "index/suffixarray": { - {"(*Index).Bytes", Method, 0, ""}, - {"(*Index).FindAllIndex", Method, 0, ""}, - {"(*Index).Lookup", Method, 0, ""}, - {"(*Index).Read", Method, 0, ""}, - {"(*Index).Write", Method, 0, ""}, - {"Index", Type, 0, ""}, - {"New", Func, 0, "func(data []byte) *Index"}, - }, - "io": { - {"(*LimitedReader).Read", Method, 0, ""}, - {"(*OffsetWriter).Seek", Method, 20, ""}, - {"(*OffsetWriter).Write", Method, 20, ""}, - {"(*OffsetWriter).WriteAt", Method, 20, ""}, - {"(*PipeReader).Close", Method, 0, ""}, - {"(*PipeReader).CloseWithError", Method, 0, ""}, - {"(*PipeReader).Read", Method, 0, ""}, - {"(*PipeWriter).Close", Method, 0, ""}, - {"(*PipeWriter).CloseWithError", Method, 0, ""}, - {"(*PipeWriter).Write", Method, 0, ""}, - {"(*SectionReader).Outer", Method, 22, ""}, - {"(*SectionReader).Read", Method, 0, ""}, - {"(*SectionReader).ReadAt", Method, 0, ""}, - {"(*SectionReader).Seek", Method, 0, ""}, - {"(*SectionReader).Size", Method, 0, ""}, - {"ByteReader", Type, 0, ""}, - {"ByteScanner", Type, 0, ""}, - {"ByteWriter", Type, 1, ""}, - {"Closer", Type, 0, ""}, - {"Copy", Func, 0, "func(dst Writer, src Reader) (written int64, err error)"}, - {"CopyBuffer", Func, 5, "func(dst Writer, src Reader, buf []byte) (written int64, err error)"}, - {"CopyN", Func, 0, "func(dst Writer, src Reader, n int64) (written int64, err error)"}, - {"Discard", Var, 16, ""}, - {"EOF", Var, 0, ""}, - {"ErrClosedPipe", Var, 0, ""}, - {"ErrNoProgress", Var, 1, ""}, - {"ErrShortBuffer", Var, 0, ""}, - {"ErrShortWrite", Var, 0, ""}, - {"ErrUnexpectedEOF", Var, 0, ""}, - {"LimitReader", Func, 0, "func(r Reader, n int64) Reader"}, - {"LimitedReader", Type, 0, ""}, - {"LimitedReader.N", Field, 0, ""}, - {"LimitedReader.R", Field, 0, ""}, - {"MultiReader", Func, 0, "func(readers ...Reader) Reader"}, - {"MultiWriter", Func, 0, "func(writers ...Writer) Writer"}, - {"NewOffsetWriter", Func, 20, "func(w WriterAt, off int64) *OffsetWriter"}, - {"NewSectionReader", Func, 0, "func(r ReaderAt, off int64, n int64) *SectionReader"}, - {"NopCloser", Func, 16, "func(r Reader) ReadCloser"}, - {"OffsetWriter", Type, 20, ""}, - {"Pipe", Func, 0, "func() (*PipeReader, *PipeWriter)"}, - {"PipeReader", Type, 0, ""}, - {"PipeWriter", Type, 0, ""}, - {"ReadAll", Func, 16, "func(r Reader) ([]byte, error)"}, - {"ReadAtLeast", Func, 0, "func(r Reader, buf []byte, min int) (n int, err error)"}, - {"ReadCloser", Type, 0, ""}, - {"ReadFull", Func, 0, "func(r Reader, buf []byte) (n int, err error)"}, - {"ReadSeekCloser", Type, 16, ""}, - {"ReadSeeker", Type, 0, ""}, - {"ReadWriteCloser", Type, 0, ""}, - {"ReadWriteSeeker", Type, 0, ""}, - {"ReadWriter", Type, 0, ""}, - {"Reader", Type, 0, ""}, - {"ReaderAt", Type, 0, ""}, - {"ReaderFrom", Type, 0, ""}, - {"RuneReader", Type, 0, ""}, - {"RuneScanner", Type, 0, ""}, - {"SectionReader", Type, 0, ""}, - {"SeekCurrent", Const, 7, ""}, - {"SeekEnd", Const, 7, ""}, - {"SeekStart", Const, 7, ""}, - {"Seeker", Type, 0, ""}, - {"StringWriter", Type, 12, ""}, - {"TeeReader", Func, 0, "func(r Reader, w Writer) Reader"}, - {"WriteCloser", Type, 0, ""}, - {"WriteSeeker", Type, 0, ""}, - {"WriteString", Func, 0, "func(w Writer, s string) (n int, err error)"}, - {"Writer", Type, 0, ""}, - {"WriterAt", Type, 0, ""}, - {"WriterTo", Type, 0, ""}, - }, - "io/fs": { - {"(*PathError).Error", Method, 16, ""}, - {"(*PathError).Timeout", Method, 16, ""}, - {"(*PathError).Unwrap", Method, 16, ""}, - {"(FileMode).IsDir", Method, 16, ""}, - {"(FileMode).IsRegular", Method, 16, ""}, - {"(FileMode).Perm", Method, 16, ""}, - {"(FileMode).String", Method, 16, ""}, - {"(FileMode).Type", Method, 16, ""}, - {"DirEntry", Type, 16, ""}, - {"ErrClosed", Var, 16, ""}, - {"ErrExist", Var, 16, ""}, - {"ErrInvalid", Var, 16, ""}, - {"ErrNotExist", Var, 16, ""}, - {"ErrPermission", Var, 16, ""}, - {"FS", Type, 16, ""}, - {"File", Type, 16, ""}, - {"FileInfo", Type, 16, ""}, - {"FileInfoToDirEntry", Func, 17, "func(info FileInfo) DirEntry"}, - {"FileMode", Type, 16, ""}, - {"FormatDirEntry", Func, 21, "func(dir DirEntry) string"}, - {"FormatFileInfo", Func, 21, "func(info FileInfo) string"}, - {"Glob", Func, 16, "func(fsys FS, pattern string) (matches []string, err error)"}, - {"GlobFS", Type, 16, ""}, - {"Lstat", Func, 25, ""}, - {"ModeAppend", Const, 16, ""}, - {"ModeCharDevice", Const, 16, ""}, - {"ModeDevice", Const, 16, ""}, - {"ModeDir", Const, 16, ""}, - {"ModeExclusive", Const, 16, ""}, - {"ModeIrregular", Const, 16, ""}, - {"ModeNamedPipe", Const, 16, ""}, - {"ModePerm", Const, 16, ""}, - {"ModeSetgid", Const, 16, ""}, - {"ModeSetuid", Const, 16, ""}, - {"ModeSocket", Const, 16, ""}, - {"ModeSticky", Const, 16, ""}, - {"ModeSymlink", Const, 16, ""}, - {"ModeTemporary", Const, 16, ""}, - {"ModeType", Const, 16, ""}, - {"PathError", Type, 16, ""}, - {"PathError.Err", Field, 16, ""}, - {"PathError.Op", Field, 16, ""}, - {"PathError.Path", Field, 16, ""}, - {"ReadDir", Func, 16, "func(fsys FS, name string) ([]DirEntry, error)"}, - {"ReadDirFS", Type, 16, ""}, - {"ReadDirFile", Type, 16, ""}, - {"ReadFile", Func, 16, "func(fsys FS, name string) ([]byte, error)"}, - {"ReadFileFS", Type, 16, ""}, - {"ReadLink", Func, 25, ""}, - {"ReadLinkFS", Type, 25, ""}, - {"SkipAll", Var, 20, ""}, - {"SkipDir", Var, 16, ""}, - {"Stat", Func, 16, "func(fsys FS, name string) (FileInfo, error)"}, - {"StatFS", Type, 16, ""}, - {"Sub", Func, 16, "func(fsys FS, dir string) (FS, error)"}, - {"SubFS", Type, 16, ""}, - {"ValidPath", Func, 16, "func(name string) bool"}, - {"WalkDir", Func, 16, "func(fsys FS, root string, fn WalkDirFunc) error"}, - {"WalkDirFunc", Type, 16, ""}, - }, - "io/ioutil": { - {"Discard", Var, 0, ""}, - {"NopCloser", Func, 0, "func(r io.Reader) io.ReadCloser"}, - {"ReadAll", Func, 0, "func(r io.Reader) ([]byte, error)"}, - {"ReadDir", Func, 0, "func(dirname string) ([]fs.FileInfo, error)"}, - {"ReadFile", Func, 0, "func(filename string) ([]byte, error)"}, - {"TempDir", Func, 0, "func(dir string, pattern string) (name string, err error)"}, - {"TempFile", Func, 0, "func(dir string, pattern string) (f *os.File, err error)"}, - {"WriteFile", Func, 0, "func(filename string, data []byte, perm fs.FileMode) error"}, - }, - "iter": { - {"Pull", Func, 23, "func[V any](seq Seq[V]) (next func() (V, bool), stop func())"}, - {"Pull2", Func, 23, "func[K, V any](seq Seq2[K, V]) (next func() (K, V, bool), stop func())"}, - {"Seq", Type, 23, ""}, - {"Seq2", Type, 23, ""}, - }, - "log": { - {"(*Logger).Fatal", Method, 0, ""}, - {"(*Logger).Fatalf", Method, 0, ""}, - {"(*Logger).Fatalln", Method, 0, ""}, - {"(*Logger).Flags", Method, 0, ""}, - {"(*Logger).Output", Method, 0, ""}, - {"(*Logger).Panic", Method, 0, ""}, - {"(*Logger).Panicf", Method, 0, ""}, - {"(*Logger).Panicln", Method, 0, ""}, - {"(*Logger).Prefix", Method, 0, ""}, - {"(*Logger).Print", Method, 0, ""}, - {"(*Logger).Printf", Method, 0, ""}, - {"(*Logger).Println", Method, 0, ""}, - {"(*Logger).SetFlags", Method, 0, ""}, - {"(*Logger).SetOutput", Method, 5, ""}, - {"(*Logger).SetPrefix", Method, 0, ""}, - {"(*Logger).Writer", Method, 12, ""}, - {"Default", Func, 16, "func() *Logger"}, - {"Fatal", Func, 0, "func(v ...any)"}, - {"Fatalf", Func, 0, "func(format string, v ...any)"}, - {"Fatalln", Func, 0, "func(v ...any)"}, - {"Flags", Func, 0, "func() int"}, - {"LUTC", Const, 5, ""}, - {"Ldate", Const, 0, ""}, - {"Llongfile", Const, 0, ""}, - {"Lmicroseconds", Const, 0, ""}, - {"Lmsgprefix", Const, 14, ""}, - {"Logger", Type, 0, ""}, - {"Lshortfile", Const, 0, ""}, - {"LstdFlags", Const, 0, ""}, - {"Ltime", Const, 0, ""}, - {"New", Func, 0, "func(out io.Writer, prefix string, flag int) *Logger"}, - {"Output", Func, 5, "func(calldepth int, s string) error"}, - {"Panic", Func, 0, "func(v ...any)"}, - {"Panicf", Func, 0, "func(format string, v ...any)"}, - {"Panicln", Func, 0, "func(v ...any)"}, - {"Prefix", Func, 0, "func() string"}, - {"Print", Func, 0, "func(v ...any)"}, - {"Printf", Func, 0, "func(format string, v ...any)"}, - {"Println", Func, 0, "func(v ...any)"}, - {"SetFlags", Func, 0, "func(flag int)"}, - {"SetOutput", Func, 0, "func(w io.Writer)"}, - {"SetPrefix", Func, 0, "func(prefix string)"}, - {"Writer", Func, 13, "func() io.Writer"}, - }, - "log/slog": { - {"(*JSONHandler).Enabled", Method, 21, ""}, - {"(*JSONHandler).Handle", Method, 21, ""}, - {"(*JSONHandler).WithAttrs", Method, 21, ""}, - {"(*JSONHandler).WithGroup", Method, 21, ""}, - {"(*Level).UnmarshalJSON", Method, 21, ""}, - {"(*Level).UnmarshalText", Method, 21, ""}, - {"(*LevelVar).AppendText", Method, 24, ""}, - {"(*LevelVar).Level", Method, 21, ""}, - {"(*LevelVar).MarshalText", Method, 21, ""}, - {"(*LevelVar).Set", Method, 21, ""}, - {"(*LevelVar).String", Method, 21, ""}, - {"(*LevelVar).UnmarshalText", Method, 21, ""}, - {"(*Logger).Debug", Method, 21, ""}, - {"(*Logger).DebugContext", Method, 21, ""}, - {"(*Logger).Enabled", Method, 21, ""}, - {"(*Logger).Error", Method, 21, ""}, - {"(*Logger).ErrorContext", Method, 21, ""}, - {"(*Logger).Handler", Method, 21, ""}, - {"(*Logger).Info", Method, 21, ""}, - {"(*Logger).InfoContext", Method, 21, ""}, - {"(*Logger).Log", Method, 21, ""}, - {"(*Logger).LogAttrs", Method, 21, ""}, - {"(*Logger).Warn", Method, 21, ""}, - {"(*Logger).WarnContext", Method, 21, ""}, - {"(*Logger).With", Method, 21, ""}, - {"(*Logger).WithGroup", Method, 21, ""}, - {"(*Record).Add", Method, 21, ""}, - {"(*Record).AddAttrs", Method, 21, ""}, - {"(*TextHandler).Enabled", Method, 21, ""}, - {"(*TextHandler).Handle", Method, 21, ""}, - {"(*TextHandler).WithAttrs", Method, 21, ""}, - {"(*TextHandler).WithGroup", Method, 21, ""}, - {"(Attr).Equal", Method, 21, ""}, - {"(Attr).String", Method, 21, ""}, - {"(Kind).String", Method, 21, ""}, - {"(Level).AppendText", Method, 24, ""}, - {"(Level).Level", Method, 21, ""}, - {"(Level).MarshalJSON", Method, 21, ""}, - {"(Level).MarshalText", Method, 21, ""}, - {"(Level).String", Method, 21, ""}, - {"(Record).Attrs", Method, 21, ""}, - {"(Record).Clone", Method, 21, ""}, - {"(Record).NumAttrs", Method, 21, ""}, - {"(Value).Any", Method, 21, ""}, - {"(Value).Bool", Method, 21, ""}, - {"(Value).Duration", Method, 21, ""}, - {"(Value).Equal", Method, 21, ""}, - {"(Value).Float64", Method, 21, ""}, - {"(Value).Group", Method, 21, ""}, - {"(Value).Int64", Method, 21, ""}, - {"(Value).Kind", Method, 21, ""}, - {"(Value).LogValuer", Method, 21, ""}, - {"(Value).Resolve", Method, 21, ""}, - {"(Value).String", Method, 21, ""}, - {"(Value).Time", Method, 21, ""}, - {"(Value).Uint64", Method, 21, ""}, - {"Any", Func, 21, "func(key string, value any) Attr"}, - {"AnyValue", Func, 21, "func(v any) Value"}, - {"Attr", Type, 21, ""}, - {"Attr.Key", Field, 21, ""}, - {"Attr.Value", Field, 21, ""}, - {"Bool", Func, 21, "func(key string, v bool) Attr"}, - {"BoolValue", Func, 21, "func(v bool) Value"}, - {"Debug", Func, 21, "func(msg string, args ...any)"}, - {"DebugContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, - {"Default", Func, 21, "func() *Logger"}, - {"DiscardHandler", Var, 24, ""}, - {"Duration", Func, 21, "func(key string, v time.Duration) Attr"}, - {"DurationValue", Func, 21, "func(v time.Duration) Value"}, - {"Error", Func, 21, "func(msg string, args ...any)"}, - {"ErrorContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, - {"Float64", Func, 21, "func(key string, v float64) Attr"}, - {"Float64Value", Func, 21, "func(v float64) Value"}, - {"Group", Func, 21, "func(key string, args ...any) Attr"}, - {"GroupValue", Func, 21, "func(as ...Attr) Value"}, - {"Handler", Type, 21, ""}, - {"HandlerOptions", Type, 21, ""}, - {"HandlerOptions.AddSource", Field, 21, ""}, - {"HandlerOptions.Level", Field, 21, ""}, - {"HandlerOptions.ReplaceAttr", Field, 21, ""}, - {"Info", Func, 21, "func(msg string, args ...any)"}, - {"InfoContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, - {"Int", Func, 21, "func(key string, value int) Attr"}, - {"Int64", Func, 21, "func(key string, value int64) Attr"}, - {"Int64Value", Func, 21, "func(v int64) Value"}, - {"IntValue", Func, 21, "func(v int) Value"}, - {"JSONHandler", Type, 21, ""}, - {"Kind", Type, 21, ""}, - {"KindAny", Const, 21, ""}, - {"KindBool", Const, 21, ""}, - {"KindDuration", Const, 21, ""}, - {"KindFloat64", Const, 21, ""}, - {"KindGroup", Const, 21, ""}, - {"KindInt64", Const, 21, ""}, - {"KindLogValuer", Const, 21, ""}, - {"KindString", Const, 21, ""}, - {"KindTime", Const, 21, ""}, - {"KindUint64", Const, 21, ""}, - {"Level", Type, 21, ""}, - {"LevelDebug", Const, 21, ""}, - {"LevelError", Const, 21, ""}, - {"LevelInfo", Const, 21, ""}, - {"LevelKey", Const, 21, ""}, - {"LevelVar", Type, 21, ""}, - {"LevelWarn", Const, 21, ""}, - {"Leveler", Type, 21, ""}, - {"Log", Func, 21, "func(ctx context.Context, level Level, msg string, args ...any)"}, - {"LogAttrs", Func, 21, "func(ctx context.Context, level Level, msg string, attrs ...Attr)"}, - {"LogValuer", Type, 21, ""}, - {"Logger", Type, 21, ""}, - {"MessageKey", Const, 21, ""}, - {"New", Func, 21, "func(h Handler) *Logger"}, - {"NewJSONHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *JSONHandler"}, - {"NewLogLogger", Func, 21, "func(h Handler, level Level) *log.Logger"}, - {"NewRecord", Func, 21, "func(t time.Time, level Level, msg string, pc uintptr) Record"}, - {"NewTextHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *TextHandler"}, - {"Record", Type, 21, ""}, - {"Record.Level", Field, 21, ""}, - {"Record.Message", Field, 21, ""}, - {"Record.PC", Field, 21, ""}, - {"Record.Time", Field, 21, ""}, - {"SetDefault", Func, 21, "func(l *Logger)"}, - {"SetLogLoggerLevel", Func, 22, "func(level Level) (oldLevel Level)"}, - {"Source", Type, 21, ""}, - {"Source.File", Field, 21, ""}, - {"Source.Function", Field, 21, ""}, - {"Source.Line", Field, 21, ""}, - {"SourceKey", Const, 21, ""}, - {"String", Func, 21, "func(key string, value string) Attr"}, - {"StringValue", Func, 21, "func(value string) Value"}, - {"TextHandler", Type, 21, ""}, - {"Time", Func, 21, "func(key string, v time.Time) Attr"}, - {"TimeKey", Const, 21, ""}, - {"TimeValue", Func, 21, "func(v time.Time) Value"}, - {"Uint64", Func, 21, "func(key string, v uint64) Attr"}, - {"Uint64Value", Func, 21, "func(v uint64) Value"}, - {"Value", Type, 21, ""}, - {"Warn", Func, 21, "func(msg string, args ...any)"}, - {"WarnContext", Func, 21, "func(ctx context.Context, msg string, args ...any)"}, - {"With", Func, 21, "func(args ...any) *Logger"}, - }, - "log/syslog": { - {"(*Writer).Alert", Method, 0, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).Crit", Method, 0, ""}, - {"(*Writer).Debug", Method, 0, ""}, - {"(*Writer).Emerg", Method, 0, ""}, - {"(*Writer).Err", Method, 0, ""}, - {"(*Writer).Info", Method, 0, ""}, - {"(*Writer).Notice", Method, 0, ""}, - {"(*Writer).Warning", Method, 0, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"Dial", Func, 0, "func(network string, raddr string, priority Priority, tag string) (*Writer, error)"}, - {"LOG_ALERT", Const, 0, ""}, - {"LOG_AUTH", Const, 1, ""}, - {"LOG_AUTHPRIV", Const, 1, ""}, - {"LOG_CRIT", Const, 0, ""}, - {"LOG_CRON", Const, 1, ""}, - {"LOG_DAEMON", Const, 1, ""}, - {"LOG_DEBUG", Const, 0, ""}, - {"LOG_EMERG", Const, 0, ""}, - {"LOG_ERR", Const, 0, ""}, - {"LOG_FTP", Const, 1, ""}, - {"LOG_INFO", Const, 0, ""}, - {"LOG_KERN", Const, 1, ""}, - {"LOG_LOCAL0", Const, 1, ""}, - {"LOG_LOCAL1", Const, 1, ""}, - {"LOG_LOCAL2", Const, 1, ""}, - {"LOG_LOCAL3", Const, 1, ""}, - {"LOG_LOCAL4", Const, 1, ""}, - {"LOG_LOCAL5", Const, 1, ""}, - {"LOG_LOCAL6", Const, 1, ""}, - {"LOG_LOCAL7", Const, 1, ""}, - {"LOG_LPR", Const, 1, ""}, - {"LOG_MAIL", Const, 1, ""}, - {"LOG_NEWS", Const, 1, ""}, - {"LOG_NOTICE", Const, 0, ""}, - {"LOG_SYSLOG", Const, 1, ""}, - {"LOG_USER", Const, 1, ""}, - {"LOG_UUCP", Const, 1, ""}, - {"LOG_WARNING", Const, 0, ""}, - {"New", Func, 0, "func(priority Priority, tag string) (*Writer, error)"}, - {"NewLogger", Func, 0, "func(p Priority, logFlag int) (*log.Logger, error)"}, - {"Priority", Type, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "maps": { - {"All", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq2[K, V]"}, - {"Clone", Func, 21, "func[M ~map[K]V, K comparable, V any](m M) M"}, - {"Collect", Func, 23, "func[K comparable, V any](seq iter.Seq2[K, V]) map[K]V"}, - {"Copy", Func, 21, "func[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)"}, - {"DeleteFunc", Func, 21, "func[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)"}, - {"Equal", Func, 21, "func[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool"}, - {"EqualFunc", Func, 21, "func[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool"}, - {"Insert", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map, seq iter.Seq2[K, V])"}, - {"Keys", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[K]"}, - {"Values", Func, 23, "func[Map ~map[K]V, K comparable, V any](m Map) iter.Seq[V]"}, - }, - "math": { - {"Abs", Func, 0, "func(x float64) float64"}, - {"Acos", Func, 0, "func(x float64) float64"}, - {"Acosh", Func, 0, "func(x float64) float64"}, - {"Asin", Func, 0, "func(x float64) float64"}, - {"Asinh", Func, 0, "func(x float64) float64"}, - {"Atan", Func, 0, "func(x float64) float64"}, - {"Atan2", Func, 0, "func(y float64, x float64) float64"}, - {"Atanh", Func, 0, "func(x float64) float64"}, - {"Cbrt", Func, 0, "func(x float64) float64"}, - {"Ceil", Func, 0, "func(x float64) float64"}, - {"Copysign", Func, 0, "func(f float64, sign float64) float64"}, - {"Cos", Func, 0, "func(x float64) float64"}, - {"Cosh", Func, 0, "func(x float64) float64"}, - {"Dim", Func, 0, "func(x float64, y float64) float64"}, - {"E", Const, 0, ""}, - {"Erf", Func, 0, "func(x float64) float64"}, - {"Erfc", Func, 0, "func(x float64) float64"}, - {"Erfcinv", Func, 10, "func(x float64) float64"}, - {"Erfinv", Func, 10, "func(x float64) float64"}, - {"Exp", Func, 0, "func(x float64) float64"}, - {"Exp2", Func, 0, "func(x float64) float64"}, - {"Expm1", Func, 0, "func(x float64) float64"}, - {"FMA", Func, 14, "func(x float64, y float64, z float64) float64"}, - {"Float32bits", Func, 0, "func(f float32) uint32"}, - {"Float32frombits", Func, 0, "func(b uint32) float32"}, - {"Float64bits", Func, 0, "func(f float64) uint64"}, - {"Float64frombits", Func, 0, "func(b uint64) float64"}, - {"Floor", Func, 0, "func(x float64) float64"}, - {"Frexp", Func, 0, "func(f float64) (frac float64, exp int)"}, - {"Gamma", Func, 0, "func(x float64) float64"}, - {"Hypot", Func, 0, "func(p float64, q float64) float64"}, - {"Ilogb", Func, 0, "func(x float64) int"}, - {"Inf", Func, 0, "func(sign int) float64"}, - {"IsInf", Func, 0, "func(f float64, sign int) bool"}, - {"IsNaN", Func, 0, "func(f float64) (is bool)"}, - {"J0", Func, 0, "func(x float64) float64"}, - {"J1", Func, 0, "func(x float64) float64"}, - {"Jn", Func, 0, "func(n int, x float64) float64"}, - {"Ldexp", Func, 0, "func(frac float64, exp int) float64"}, - {"Lgamma", Func, 0, "func(x float64) (lgamma float64, sign int)"}, - {"Ln10", Const, 0, ""}, - {"Ln2", Const, 0, ""}, - {"Log", Func, 0, "func(x float64) float64"}, - {"Log10", Func, 0, "func(x float64) float64"}, - {"Log10E", Const, 0, ""}, - {"Log1p", Func, 0, "func(x float64) float64"}, - {"Log2", Func, 0, "func(x float64) float64"}, - {"Log2E", Const, 0, ""}, - {"Logb", Func, 0, "func(x float64) float64"}, - {"Max", Func, 0, "func(x float64, y float64) float64"}, - {"MaxFloat32", Const, 0, ""}, - {"MaxFloat64", Const, 0, ""}, - {"MaxInt", Const, 17, ""}, - {"MaxInt16", Const, 0, ""}, - {"MaxInt32", Const, 0, ""}, - {"MaxInt64", Const, 0, ""}, - {"MaxInt8", Const, 0, ""}, - {"MaxUint", Const, 17, ""}, - {"MaxUint16", Const, 0, ""}, - {"MaxUint32", Const, 0, ""}, - {"MaxUint64", Const, 0, ""}, - {"MaxUint8", Const, 0, ""}, - {"Min", Func, 0, "func(x float64, y float64) float64"}, - {"MinInt", Const, 17, ""}, - {"MinInt16", Const, 0, ""}, - {"MinInt32", Const, 0, ""}, - {"MinInt64", Const, 0, ""}, - {"MinInt8", Const, 0, ""}, - {"Mod", Func, 0, "func(x float64, y float64) float64"}, - {"Modf", Func, 0, "func(f float64) (int float64, frac float64)"}, - {"NaN", Func, 0, "func() float64"}, - {"Nextafter", Func, 0, "func(x float64, y float64) (r float64)"}, - {"Nextafter32", Func, 4, "func(x float32, y float32) (r float32)"}, - {"Phi", Const, 0, ""}, - {"Pi", Const, 0, ""}, - {"Pow", Func, 0, "func(x float64, y float64) float64"}, - {"Pow10", Func, 0, "func(n int) float64"}, - {"Remainder", Func, 0, "func(x float64, y float64) float64"}, - {"Round", Func, 10, "func(x float64) float64"}, - {"RoundToEven", Func, 10, "func(x float64) float64"}, - {"Signbit", Func, 0, "func(x float64) bool"}, - {"Sin", Func, 0, "func(x float64) float64"}, - {"Sincos", Func, 0, "func(x float64) (sin float64, cos float64)"}, - {"Sinh", Func, 0, "func(x float64) float64"}, - {"SmallestNonzeroFloat32", Const, 0, ""}, - {"SmallestNonzeroFloat64", Const, 0, ""}, - {"Sqrt", Func, 0, "func(x float64) float64"}, - {"Sqrt2", Const, 0, ""}, - {"SqrtE", Const, 0, ""}, - {"SqrtPhi", Const, 0, ""}, - {"SqrtPi", Const, 0, ""}, - {"Tan", Func, 0, "func(x float64) float64"}, - {"Tanh", Func, 0, "func(x float64) float64"}, - {"Trunc", Func, 0, "func(x float64) float64"}, - {"Y0", Func, 0, "func(x float64) float64"}, - {"Y1", Func, 0, "func(x float64) float64"}, - {"Yn", Func, 0, "func(n int, x float64) float64"}, - }, - "math/big": { - {"(*Float).Abs", Method, 5, ""}, - {"(*Float).Acc", Method, 5, ""}, - {"(*Float).Add", Method, 5, ""}, - {"(*Float).Append", Method, 5, ""}, - {"(*Float).AppendText", Method, 24, ""}, - {"(*Float).Cmp", Method, 5, ""}, - {"(*Float).Copy", Method, 5, ""}, - {"(*Float).Float32", Method, 5, ""}, - {"(*Float).Float64", Method, 5, ""}, - {"(*Float).Format", Method, 5, ""}, - {"(*Float).GobDecode", Method, 7, ""}, - {"(*Float).GobEncode", Method, 7, ""}, - {"(*Float).Int", Method, 5, ""}, - {"(*Float).Int64", Method, 5, ""}, - {"(*Float).IsInf", Method, 5, ""}, - {"(*Float).IsInt", Method, 5, ""}, - {"(*Float).MantExp", Method, 5, ""}, - {"(*Float).MarshalText", Method, 6, ""}, - {"(*Float).MinPrec", Method, 5, ""}, - {"(*Float).Mode", Method, 5, ""}, - {"(*Float).Mul", Method, 5, ""}, - {"(*Float).Neg", Method, 5, ""}, - {"(*Float).Parse", Method, 5, ""}, - {"(*Float).Prec", Method, 5, ""}, - {"(*Float).Quo", Method, 5, ""}, - {"(*Float).Rat", Method, 5, ""}, - {"(*Float).Scan", Method, 8, ""}, - {"(*Float).Set", Method, 5, ""}, - {"(*Float).SetFloat64", Method, 5, ""}, - {"(*Float).SetInf", Method, 5, ""}, - {"(*Float).SetInt", Method, 5, ""}, - {"(*Float).SetInt64", Method, 5, ""}, - {"(*Float).SetMantExp", Method, 5, ""}, - {"(*Float).SetMode", Method, 5, ""}, - {"(*Float).SetPrec", Method, 5, ""}, - {"(*Float).SetRat", Method, 5, ""}, - {"(*Float).SetString", Method, 5, ""}, - {"(*Float).SetUint64", Method, 5, ""}, - {"(*Float).Sign", Method, 5, ""}, - {"(*Float).Signbit", Method, 5, ""}, - {"(*Float).Sqrt", Method, 10, ""}, - {"(*Float).String", Method, 5, ""}, - {"(*Float).Sub", Method, 5, ""}, - {"(*Float).Text", Method, 5, ""}, - {"(*Float).Uint64", Method, 5, ""}, - {"(*Float).UnmarshalText", Method, 6, ""}, - {"(*Int).Abs", Method, 0, ""}, - {"(*Int).Add", Method, 0, ""}, - {"(*Int).And", Method, 0, ""}, - {"(*Int).AndNot", Method, 0, ""}, - {"(*Int).Append", Method, 6, ""}, - {"(*Int).AppendText", Method, 24, ""}, - {"(*Int).Binomial", Method, 0, ""}, - {"(*Int).Bit", Method, 0, ""}, - {"(*Int).BitLen", Method, 0, ""}, - {"(*Int).Bits", Method, 0, ""}, - {"(*Int).Bytes", Method, 0, ""}, - {"(*Int).Cmp", Method, 0, ""}, - {"(*Int).CmpAbs", Method, 10, ""}, - {"(*Int).Div", Method, 0, ""}, - {"(*Int).DivMod", Method, 0, ""}, - {"(*Int).Exp", Method, 0, ""}, - {"(*Int).FillBytes", Method, 15, ""}, - {"(*Int).Float64", Method, 21, ""}, - {"(*Int).Format", Method, 0, ""}, - {"(*Int).GCD", Method, 0, ""}, - {"(*Int).GobDecode", Method, 0, ""}, - {"(*Int).GobEncode", Method, 0, ""}, - {"(*Int).Int64", Method, 0, ""}, - {"(*Int).IsInt64", Method, 9, ""}, - {"(*Int).IsUint64", Method, 9, ""}, - {"(*Int).Lsh", Method, 0, ""}, - {"(*Int).MarshalJSON", Method, 1, ""}, - {"(*Int).MarshalText", Method, 3, ""}, - {"(*Int).Mod", Method, 0, ""}, - {"(*Int).ModInverse", Method, 0, ""}, - {"(*Int).ModSqrt", Method, 5, ""}, - {"(*Int).Mul", Method, 0, ""}, - {"(*Int).MulRange", Method, 0, ""}, - {"(*Int).Neg", Method, 0, ""}, - {"(*Int).Not", Method, 0, ""}, - {"(*Int).Or", Method, 0, ""}, - {"(*Int).ProbablyPrime", Method, 0, ""}, - {"(*Int).Quo", Method, 0, ""}, - {"(*Int).QuoRem", Method, 0, ""}, - {"(*Int).Rand", Method, 0, ""}, - {"(*Int).Rem", Method, 0, ""}, - {"(*Int).Rsh", Method, 0, ""}, - {"(*Int).Scan", Method, 0, ""}, - {"(*Int).Set", Method, 0, ""}, - {"(*Int).SetBit", Method, 0, ""}, - {"(*Int).SetBits", Method, 0, ""}, - {"(*Int).SetBytes", Method, 0, ""}, - {"(*Int).SetInt64", Method, 0, ""}, - {"(*Int).SetString", Method, 0, ""}, - {"(*Int).SetUint64", Method, 1, ""}, - {"(*Int).Sign", Method, 0, ""}, - {"(*Int).Sqrt", Method, 8, ""}, - {"(*Int).String", Method, 0, ""}, - {"(*Int).Sub", Method, 0, ""}, - {"(*Int).Text", Method, 6, ""}, - {"(*Int).TrailingZeroBits", Method, 13, ""}, - {"(*Int).Uint64", Method, 1, ""}, - {"(*Int).UnmarshalJSON", Method, 1, ""}, - {"(*Int).UnmarshalText", Method, 3, ""}, - {"(*Int).Xor", Method, 0, ""}, - {"(*Rat).Abs", Method, 0, ""}, - {"(*Rat).Add", Method, 0, ""}, - {"(*Rat).AppendText", Method, 24, ""}, - {"(*Rat).Cmp", Method, 0, ""}, - {"(*Rat).Denom", Method, 0, ""}, - {"(*Rat).Float32", Method, 4, ""}, - {"(*Rat).Float64", Method, 1, ""}, - {"(*Rat).FloatPrec", Method, 22, ""}, - {"(*Rat).FloatString", Method, 0, ""}, - {"(*Rat).GobDecode", Method, 0, ""}, - {"(*Rat).GobEncode", Method, 0, ""}, - {"(*Rat).Inv", Method, 0, ""}, - {"(*Rat).IsInt", Method, 0, ""}, - {"(*Rat).MarshalText", Method, 3, ""}, - {"(*Rat).Mul", Method, 0, ""}, - {"(*Rat).Neg", Method, 0, ""}, - {"(*Rat).Num", Method, 0, ""}, - {"(*Rat).Quo", Method, 0, ""}, - {"(*Rat).RatString", Method, 0, ""}, - {"(*Rat).Scan", Method, 0, ""}, - {"(*Rat).Set", Method, 0, ""}, - {"(*Rat).SetFloat64", Method, 1, ""}, - {"(*Rat).SetFrac", Method, 0, ""}, - {"(*Rat).SetFrac64", Method, 0, ""}, - {"(*Rat).SetInt", Method, 0, ""}, - {"(*Rat).SetInt64", Method, 0, ""}, - {"(*Rat).SetString", Method, 0, ""}, - {"(*Rat).SetUint64", Method, 13, ""}, - {"(*Rat).Sign", Method, 0, ""}, - {"(*Rat).String", Method, 0, ""}, - {"(*Rat).Sub", Method, 0, ""}, - {"(*Rat).UnmarshalText", Method, 3, ""}, - {"(Accuracy).String", Method, 5, ""}, - {"(ErrNaN).Error", Method, 5, ""}, - {"(RoundingMode).String", Method, 5, ""}, - {"Above", Const, 5, ""}, - {"Accuracy", Type, 5, ""}, - {"AwayFromZero", Const, 5, ""}, - {"Below", Const, 5, ""}, - {"ErrNaN", Type, 5, ""}, - {"Exact", Const, 5, ""}, - {"Float", Type, 5, ""}, - {"Int", Type, 0, ""}, - {"Jacobi", Func, 5, "func(x *Int, y *Int) int"}, - {"MaxBase", Const, 0, ""}, - {"MaxExp", Const, 5, ""}, - {"MaxPrec", Const, 5, ""}, - {"MinExp", Const, 5, ""}, - {"NewFloat", Func, 5, "func(x float64) *Float"}, - {"NewInt", Func, 0, "func(x int64) *Int"}, - {"NewRat", Func, 0, "func(a int64, b int64) *Rat"}, - {"ParseFloat", Func, 5, "func(s string, base int, prec uint, mode RoundingMode) (f *Float, b int, err error)"}, - {"Rat", Type, 0, ""}, - {"RoundingMode", Type, 5, ""}, - {"ToNearestAway", Const, 5, ""}, - {"ToNearestEven", Const, 5, ""}, - {"ToNegativeInf", Const, 5, ""}, - {"ToPositiveInf", Const, 5, ""}, - {"ToZero", Const, 5, ""}, - {"Word", Type, 0, ""}, - }, - "math/bits": { - {"Add", Func, 12, "func(x uint, y uint, carry uint) (sum uint, carryOut uint)"}, - {"Add32", Func, 12, "func(x uint32, y uint32, carry uint32) (sum uint32, carryOut uint32)"}, - {"Add64", Func, 12, "func(x uint64, y uint64, carry uint64) (sum uint64, carryOut uint64)"}, - {"Div", Func, 12, "func(hi uint, lo uint, y uint) (quo uint, rem uint)"}, - {"Div32", Func, 12, "func(hi uint32, lo uint32, y uint32) (quo uint32, rem uint32)"}, - {"Div64", Func, 12, "func(hi uint64, lo uint64, y uint64) (quo uint64, rem uint64)"}, - {"LeadingZeros", Func, 9, "func(x uint) int"}, - {"LeadingZeros16", Func, 9, "func(x uint16) int"}, - {"LeadingZeros32", Func, 9, "func(x uint32) int"}, - {"LeadingZeros64", Func, 9, "func(x uint64) int"}, - {"LeadingZeros8", Func, 9, "func(x uint8) int"}, - {"Len", Func, 9, "func(x uint) int"}, - {"Len16", Func, 9, "func(x uint16) (n int)"}, - {"Len32", Func, 9, "func(x uint32) (n int)"}, - {"Len64", Func, 9, "func(x uint64) (n int)"}, - {"Len8", Func, 9, "func(x uint8) int"}, - {"Mul", Func, 12, "func(x uint, y uint) (hi uint, lo uint)"}, - {"Mul32", Func, 12, "func(x uint32, y uint32) (hi uint32, lo uint32)"}, - {"Mul64", Func, 12, "func(x uint64, y uint64) (hi uint64, lo uint64)"}, - {"OnesCount", Func, 9, "func(x uint) int"}, - {"OnesCount16", Func, 9, "func(x uint16) int"}, - {"OnesCount32", Func, 9, "func(x uint32) int"}, - {"OnesCount64", Func, 9, "func(x uint64) int"}, - {"OnesCount8", Func, 9, "func(x uint8) int"}, - {"Rem", Func, 14, "func(hi uint, lo uint, y uint) uint"}, - {"Rem32", Func, 14, "func(hi uint32, lo uint32, y uint32) uint32"}, - {"Rem64", Func, 14, "func(hi uint64, lo uint64, y uint64) uint64"}, - {"Reverse", Func, 9, "func(x uint) uint"}, - {"Reverse16", Func, 9, "func(x uint16) uint16"}, - {"Reverse32", Func, 9, "func(x uint32) uint32"}, - {"Reverse64", Func, 9, "func(x uint64) uint64"}, - {"Reverse8", Func, 9, "func(x uint8) uint8"}, - {"ReverseBytes", Func, 9, "func(x uint) uint"}, - {"ReverseBytes16", Func, 9, "func(x uint16) uint16"}, - {"ReverseBytes32", Func, 9, "func(x uint32) uint32"}, - {"ReverseBytes64", Func, 9, "func(x uint64) uint64"}, - {"RotateLeft", Func, 9, "func(x uint, k int) uint"}, - {"RotateLeft16", Func, 9, "func(x uint16, k int) uint16"}, - {"RotateLeft32", Func, 9, "func(x uint32, k int) uint32"}, - {"RotateLeft64", Func, 9, "func(x uint64, k int) uint64"}, - {"RotateLeft8", Func, 9, "func(x uint8, k int) uint8"}, - {"Sub", Func, 12, "func(x uint, y uint, borrow uint) (diff uint, borrowOut uint)"}, - {"Sub32", Func, 12, "func(x uint32, y uint32, borrow uint32) (diff uint32, borrowOut uint32)"}, - {"Sub64", Func, 12, "func(x uint64, y uint64, borrow uint64) (diff uint64, borrowOut uint64)"}, - {"TrailingZeros", Func, 9, "func(x uint) int"}, - {"TrailingZeros16", Func, 9, "func(x uint16) int"}, - {"TrailingZeros32", Func, 9, "func(x uint32) int"}, - {"TrailingZeros64", Func, 9, "func(x uint64) int"}, - {"TrailingZeros8", Func, 9, "func(x uint8) int"}, - {"UintSize", Const, 9, ""}, - }, - "math/cmplx": { - {"Abs", Func, 0, "func(x complex128) float64"}, - {"Acos", Func, 0, "func(x complex128) complex128"}, - {"Acosh", Func, 0, "func(x complex128) complex128"}, - {"Asin", Func, 0, "func(x complex128) complex128"}, - {"Asinh", Func, 0, "func(x complex128) complex128"}, - {"Atan", Func, 0, "func(x complex128) complex128"}, - {"Atanh", Func, 0, "func(x complex128) complex128"}, - {"Conj", Func, 0, "func(x complex128) complex128"}, - {"Cos", Func, 0, "func(x complex128) complex128"}, - {"Cosh", Func, 0, "func(x complex128) complex128"}, - {"Cot", Func, 0, "func(x complex128) complex128"}, - {"Exp", Func, 0, "func(x complex128) complex128"}, - {"Inf", Func, 0, "func() complex128"}, - {"IsInf", Func, 0, "func(x complex128) bool"}, - {"IsNaN", Func, 0, "func(x complex128) bool"}, - {"Log", Func, 0, "func(x complex128) complex128"}, - {"Log10", Func, 0, "func(x complex128) complex128"}, - {"NaN", Func, 0, "func() complex128"}, - {"Phase", Func, 0, "func(x complex128) float64"}, - {"Polar", Func, 0, "func(x complex128) (r float64, θ float64)"}, - {"Pow", Func, 0, "func(x complex128, y complex128) complex128"}, - {"Rect", Func, 0, "func(r float64, θ float64) complex128"}, - {"Sin", Func, 0, "func(x complex128) complex128"}, - {"Sinh", Func, 0, "func(x complex128) complex128"}, - {"Sqrt", Func, 0, "func(x complex128) complex128"}, - {"Tan", Func, 0, "func(x complex128) complex128"}, - {"Tanh", Func, 0, "func(x complex128) complex128"}, - }, - "math/rand": { - {"(*Rand).ExpFloat64", Method, 0, ""}, - {"(*Rand).Float32", Method, 0, ""}, - {"(*Rand).Float64", Method, 0, ""}, - {"(*Rand).Int", Method, 0, ""}, - {"(*Rand).Int31", Method, 0, ""}, - {"(*Rand).Int31n", Method, 0, ""}, - {"(*Rand).Int63", Method, 0, ""}, - {"(*Rand).Int63n", Method, 0, ""}, - {"(*Rand).Intn", Method, 0, ""}, - {"(*Rand).NormFloat64", Method, 0, ""}, - {"(*Rand).Perm", Method, 0, ""}, - {"(*Rand).Read", Method, 6, ""}, - {"(*Rand).Seed", Method, 0, ""}, - {"(*Rand).Shuffle", Method, 10, ""}, - {"(*Rand).Uint32", Method, 0, ""}, - {"(*Rand).Uint64", Method, 8, ""}, - {"(*Zipf).Uint64", Method, 0, ""}, - {"ExpFloat64", Func, 0, "func() float64"}, - {"Float32", Func, 0, "func() float32"}, - {"Float64", Func, 0, "func() float64"}, - {"Int", Func, 0, "func() int"}, - {"Int31", Func, 0, "func() int32"}, - {"Int31n", Func, 0, "func(n int32) int32"}, - {"Int63", Func, 0, "func() int64"}, - {"Int63n", Func, 0, "func(n int64) int64"}, - {"Intn", Func, 0, "func(n int) int"}, - {"New", Func, 0, "func(src Source) *Rand"}, - {"NewSource", Func, 0, "func(seed int64) Source"}, - {"NewZipf", Func, 0, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"}, - {"NormFloat64", Func, 0, "func() float64"}, - {"Perm", Func, 0, "func(n int) []int"}, - {"Rand", Type, 0, ""}, - {"Read", Func, 6, "func(p []byte) (n int, err error)"}, - {"Seed", Func, 0, "func(seed int64)"}, - {"Shuffle", Func, 10, "func(n int, swap func(i int, j int))"}, - {"Source", Type, 0, ""}, - {"Source64", Type, 8, ""}, - {"Uint32", Func, 0, "func() uint32"}, - {"Uint64", Func, 8, "func() uint64"}, - {"Zipf", Type, 0, ""}, - }, - "math/rand/v2": { - {"(*ChaCha8).AppendBinary", Method, 24, ""}, - {"(*ChaCha8).MarshalBinary", Method, 22, ""}, - {"(*ChaCha8).Read", Method, 23, ""}, - {"(*ChaCha8).Seed", Method, 22, ""}, - {"(*ChaCha8).Uint64", Method, 22, ""}, - {"(*ChaCha8).UnmarshalBinary", Method, 22, ""}, - {"(*PCG).AppendBinary", Method, 24, ""}, - {"(*PCG).MarshalBinary", Method, 22, ""}, - {"(*PCG).Seed", Method, 22, ""}, - {"(*PCG).Uint64", Method, 22, ""}, - {"(*PCG).UnmarshalBinary", Method, 22, ""}, - {"(*Rand).ExpFloat64", Method, 22, ""}, - {"(*Rand).Float32", Method, 22, ""}, - {"(*Rand).Float64", Method, 22, ""}, - {"(*Rand).Int", Method, 22, ""}, - {"(*Rand).Int32", Method, 22, ""}, - {"(*Rand).Int32N", Method, 22, ""}, - {"(*Rand).Int64", Method, 22, ""}, - {"(*Rand).Int64N", Method, 22, ""}, - {"(*Rand).IntN", Method, 22, ""}, - {"(*Rand).NormFloat64", Method, 22, ""}, - {"(*Rand).Perm", Method, 22, ""}, - {"(*Rand).Shuffle", Method, 22, ""}, - {"(*Rand).Uint", Method, 23, ""}, - {"(*Rand).Uint32", Method, 22, ""}, - {"(*Rand).Uint32N", Method, 22, ""}, - {"(*Rand).Uint64", Method, 22, ""}, - {"(*Rand).Uint64N", Method, 22, ""}, - {"(*Rand).UintN", Method, 22, ""}, - {"(*Zipf).Uint64", Method, 22, ""}, - {"ChaCha8", Type, 22, ""}, - {"ExpFloat64", Func, 22, "func() float64"}, - {"Float32", Func, 22, "func() float32"}, - {"Float64", Func, 22, "func() float64"}, - {"Int", Func, 22, "func() int"}, - {"Int32", Func, 22, "func() int32"}, - {"Int32N", Func, 22, "func(n int32) int32"}, - {"Int64", Func, 22, "func() int64"}, - {"Int64N", Func, 22, "func(n int64) int64"}, - {"IntN", Func, 22, "func(n int) int"}, - {"N", Func, 22, "func[Int intType](n Int) Int"}, - {"New", Func, 22, "func(src Source) *Rand"}, - {"NewChaCha8", Func, 22, "func(seed [32]byte) *ChaCha8"}, - {"NewPCG", Func, 22, "func(seed1 uint64, seed2 uint64) *PCG"}, - {"NewZipf", Func, 22, "func(r *Rand, s float64, v float64, imax uint64) *Zipf"}, - {"NormFloat64", Func, 22, "func() float64"}, - {"PCG", Type, 22, ""}, - {"Perm", Func, 22, "func(n int) []int"}, - {"Rand", Type, 22, ""}, - {"Shuffle", Func, 22, "func(n int, swap func(i int, j int))"}, - {"Source", Type, 22, ""}, - {"Uint", Func, 23, "func() uint"}, - {"Uint32", Func, 22, "func() uint32"}, - {"Uint32N", Func, 22, "func(n uint32) uint32"}, - {"Uint64", Func, 22, "func() uint64"}, - {"Uint64N", Func, 22, "func(n uint64) uint64"}, - {"UintN", Func, 22, "func(n uint) uint"}, - {"Zipf", Type, 22, ""}, - }, - "mime": { - {"(*WordDecoder).Decode", Method, 5, ""}, - {"(*WordDecoder).DecodeHeader", Method, 5, ""}, - {"(WordEncoder).Encode", Method, 5, ""}, - {"AddExtensionType", Func, 0, "func(ext string, typ string) error"}, - {"BEncoding", Const, 5, ""}, - {"ErrInvalidMediaParameter", Var, 9, ""}, - {"ExtensionsByType", Func, 5, "func(typ string) ([]string, error)"}, - {"FormatMediaType", Func, 0, "func(t string, param map[string]string) string"}, - {"ParseMediaType", Func, 0, "func(v string) (mediatype string, params map[string]string, err error)"}, - {"QEncoding", Const, 5, ""}, - {"TypeByExtension", Func, 0, "func(ext string) string"}, - {"WordDecoder", Type, 5, ""}, - {"WordDecoder.CharsetReader", Field, 5, ""}, - {"WordEncoder", Type, 5, ""}, - }, - "mime/multipart": { - {"(*FileHeader).Open", Method, 0, ""}, - {"(*Form).RemoveAll", Method, 0, ""}, - {"(*Part).Close", Method, 0, ""}, - {"(*Part).FileName", Method, 0, ""}, - {"(*Part).FormName", Method, 0, ""}, - {"(*Part).Read", Method, 0, ""}, - {"(*Reader).NextPart", Method, 0, ""}, - {"(*Reader).NextRawPart", Method, 14, ""}, - {"(*Reader).ReadForm", Method, 0, ""}, - {"(*Writer).Boundary", Method, 0, ""}, - {"(*Writer).Close", Method, 0, ""}, - {"(*Writer).CreateFormField", Method, 0, ""}, - {"(*Writer).CreateFormFile", Method, 0, ""}, - {"(*Writer).CreatePart", Method, 0, ""}, - {"(*Writer).FormDataContentType", Method, 0, ""}, - {"(*Writer).SetBoundary", Method, 1, ""}, - {"(*Writer).WriteField", Method, 0, ""}, - {"ErrMessageTooLarge", Var, 9, ""}, - {"File", Type, 0, ""}, - {"FileContentDisposition", Func, 25, ""}, - {"FileHeader", Type, 0, ""}, - {"FileHeader.Filename", Field, 0, ""}, - {"FileHeader.Header", Field, 0, ""}, - {"FileHeader.Size", Field, 9, ""}, - {"Form", Type, 0, ""}, - {"Form.File", Field, 0, ""}, - {"Form.Value", Field, 0, ""}, - {"NewReader", Func, 0, "func(r io.Reader, boundary string) *Reader"}, - {"NewWriter", Func, 0, "func(w io.Writer) *Writer"}, - {"Part", Type, 0, ""}, - {"Part.Header", Field, 0, ""}, - {"Reader", Type, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "mime/quotedprintable": { - {"(*Reader).Read", Method, 5, ""}, - {"(*Writer).Close", Method, 5, ""}, - {"(*Writer).Write", Method, 5, ""}, - {"NewReader", Func, 5, "func(r io.Reader) *Reader"}, - {"NewWriter", Func, 5, "func(w io.Writer) *Writer"}, - {"Reader", Type, 5, ""}, - {"Writer", Type, 5, ""}, - {"Writer.Binary", Field, 5, ""}, - }, - "net": { - {"(*AddrError).Error", Method, 0, ""}, - {"(*AddrError).Temporary", Method, 0, ""}, - {"(*AddrError).Timeout", Method, 0, ""}, - {"(*Buffers).Read", Method, 8, ""}, - {"(*Buffers).WriteTo", Method, 8, ""}, - {"(*DNSConfigError).Error", Method, 0, ""}, - {"(*DNSConfigError).Temporary", Method, 0, ""}, - {"(*DNSConfigError).Timeout", Method, 0, ""}, - {"(*DNSConfigError).Unwrap", Method, 13, ""}, - {"(*DNSError).Error", Method, 0, ""}, - {"(*DNSError).Temporary", Method, 0, ""}, - {"(*DNSError).Timeout", Method, 0, ""}, - {"(*DNSError).Unwrap", Method, 23, ""}, - {"(*Dialer).Dial", Method, 1, ""}, - {"(*Dialer).DialContext", Method, 7, ""}, - {"(*Dialer).MultipathTCP", Method, 21, ""}, - {"(*Dialer).SetMultipathTCP", Method, 21, ""}, - {"(*IP).UnmarshalText", Method, 2, ""}, - {"(*IPAddr).Network", Method, 0, ""}, - {"(*IPAddr).String", Method, 0, ""}, - {"(*IPConn).Close", Method, 0, ""}, - {"(*IPConn).File", Method, 0, ""}, - {"(*IPConn).LocalAddr", Method, 0, ""}, - {"(*IPConn).Read", Method, 0, ""}, - {"(*IPConn).ReadFrom", Method, 0, ""}, - {"(*IPConn).ReadFromIP", Method, 0, ""}, - {"(*IPConn).ReadMsgIP", Method, 1, ""}, - {"(*IPConn).RemoteAddr", Method, 0, ""}, - {"(*IPConn).SetDeadline", Method, 0, ""}, - {"(*IPConn).SetReadBuffer", Method, 0, ""}, - {"(*IPConn).SetReadDeadline", Method, 0, ""}, - {"(*IPConn).SetWriteBuffer", Method, 0, ""}, - {"(*IPConn).SetWriteDeadline", Method, 0, ""}, - {"(*IPConn).SyscallConn", Method, 9, ""}, - {"(*IPConn).Write", Method, 0, ""}, - {"(*IPConn).WriteMsgIP", Method, 1, ""}, - {"(*IPConn).WriteTo", Method, 0, ""}, - {"(*IPConn).WriteToIP", Method, 0, ""}, - {"(*IPNet).Contains", Method, 0, ""}, - {"(*IPNet).Network", Method, 0, ""}, - {"(*IPNet).String", Method, 0, ""}, - {"(*Interface).Addrs", Method, 0, ""}, - {"(*Interface).MulticastAddrs", Method, 0, ""}, - {"(*ListenConfig).Listen", Method, 11, ""}, - {"(*ListenConfig).ListenPacket", Method, 11, ""}, - {"(*ListenConfig).MultipathTCP", Method, 21, ""}, - {"(*ListenConfig).SetMultipathTCP", Method, 21, ""}, - {"(*OpError).Error", Method, 0, ""}, - {"(*OpError).Temporary", Method, 0, ""}, - {"(*OpError).Timeout", Method, 0, ""}, - {"(*OpError).Unwrap", Method, 13, ""}, - {"(*ParseError).Error", Method, 0, ""}, - {"(*ParseError).Temporary", Method, 17, ""}, - {"(*ParseError).Timeout", Method, 17, ""}, - {"(*Resolver).LookupAddr", Method, 8, ""}, - {"(*Resolver).LookupCNAME", Method, 8, ""}, - {"(*Resolver).LookupHost", Method, 8, ""}, - {"(*Resolver).LookupIP", Method, 15, ""}, - {"(*Resolver).LookupIPAddr", Method, 8, ""}, - {"(*Resolver).LookupMX", Method, 8, ""}, - {"(*Resolver).LookupNS", Method, 8, ""}, - {"(*Resolver).LookupNetIP", Method, 18, ""}, - {"(*Resolver).LookupPort", Method, 8, ""}, - {"(*Resolver).LookupSRV", Method, 8, ""}, - {"(*Resolver).LookupTXT", Method, 8, ""}, - {"(*TCPAddr).AddrPort", Method, 18, ""}, - {"(*TCPAddr).Network", Method, 0, ""}, - {"(*TCPAddr).String", Method, 0, ""}, - {"(*TCPConn).Close", Method, 0, ""}, - {"(*TCPConn).CloseRead", Method, 0, ""}, - {"(*TCPConn).CloseWrite", Method, 0, ""}, - {"(*TCPConn).File", Method, 0, ""}, - {"(*TCPConn).LocalAddr", Method, 0, ""}, - {"(*TCPConn).MultipathTCP", Method, 21, ""}, - {"(*TCPConn).Read", Method, 0, ""}, - {"(*TCPConn).ReadFrom", Method, 0, ""}, - {"(*TCPConn).RemoteAddr", Method, 0, ""}, - {"(*TCPConn).SetDeadline", Method, 0, ""}, - {"(*TCPConn).SetKeepAlive", Method, 0, ""}, - {"(*TCPConn).SetKeepAliveConfig", Method, 23, ""}, - {"(*TCPConn).SetKeepAlivePeriod", Method, 2, ""}, - {"(*TCPConn).SetLinger", Method, 0, ""}, - {"(*TCPConn).SetNoDelay", Method, 0, ""}, - {"(*TCPConn).SetReadBuffer", Method, 0, ""}, - {"(*TCPConn).SetReadDeadline", Method, 0, ""}, - {"(*TCPConn).SetWriteBuffer", Method, 0, ""}, - {"(*TCPConn).SetWriteDeadline", Method, 0, ""}, - {"(*TCPConn).SyscallConn", Method, 9, ""}, - {"(*TCPConn).Write", Method, 0, ""}, - {"(*TCPConn).WriteTo", Method, 22, ""}, - {"(*TCPListener).Accept", Method, 0, ""}, - {"(*TCPListener).AcceptTCP", Method, 0, ""}, - {"(*TCPListener).Addr", Method, 0, ""}, - {"(*TCPListener).Close", Method, 0, ""}, - {"(*TCPListener).File", Method, 0, ""}, - {"(*TCPListener).SetDeadline", Method, 0, ""}, - {"(*TCPListener).SyscallConn", Method, 10, ""}, - {"(*UDPAddr).AddrPort", Method, 18, ""}, - {"(*UDPAddr).Network", Method, 0, ""}, - {"(*UDPAddr).String", Method, 0, ""}, - {"(*UDPConn).Close", Method, 0, ""}, - {"(*UDPConn).File", Method, 0, ""}, - {"(*UDPConn).LocalAddr", Method, 0, ""}, - {"(*UDPConn).Read", Method, 0, ""}, - {"(*UDPConn).ReadFrom", Method, 0, ""}, - {"(*UDPConn).ReadFromUDP", Method, 0, ""}, - {"(*UDPConn).ReadFromUDPAddrPort", Method, 18, ""}, - {"(*UDPConn).ReadMsgUDP", Method, 1, ""}, - {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18, ""}, - {"(*UDPConn).RemoteAddr", Method, 0, ""}, - {"(*UDPConn).SetDeadline", Method, 0, ""}, - {"(*UDPConn).SetReadBuffer", Method, 0, ""}, - {"(*UDPConn).SetReadDeadline", Method, 0, ""}, - {"(*UDPConn).SetWriteBuffer", Method, 0, ""}, - {"(*UDPConn).SetWriteDeadline", Method, 0, ""}, - {"(*UDPConn).SyscallConn", Method, 9, ""}, - {"(*UDPConn).Write", Method, 0, ""}, - {"(*UDPConn).WriteMsgUDP", Method, 1, ""}, - {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18, ""}, - {"(*UDPConn).WriteTo", Method, 0, ""}, - {"(*UDPConn).WriteToUDP", Method, 0, ""}, - {"(*UDPConn).WriteToUDPAddrPort", Method, 18, ""}, - {"(*UnixAddr).Network", Method, 0, ""}, - {"(*UnixAddr).String", Method, 0, ""}, - {"(*UnixConn).Close", Method, 0, ""}, - {"(*UnixConn).CloseRead", Method, 1, ""}, - {"(*UnixConn).CloseWrite", Method, 1, ""}, - {"(*UnixConn).File", Method, 0, ""}, - {"(*UnixConn).LocalAddr", Method, 0, ""}, - {"(*UnixConn).Read", Method, 0, ""}, - {"(*UnixConn).ReadFrom", Method, 0, ""}, - {"(*UnixConn).ReadFromUnix", Method, 0, ""}, - {"(*UnixConn).ReadMsgUnix", Method, 0, ""}, - {"(*UnixConn).RemoteAddr", Method, 0, ""}, - {"(*UnixConn).SetDeadline", Method, 0, ""}, - {"(*UnixConn).SetReadBuffer", Method, 0, ""}, - {"(*UnixConn).SetReadDeadline", Method, 0, ""}, - {"(*UnixConn).SetWriteBuffer", Method, 0, ""}, - {"(*UnixConn).SetWriteDeadline", Method, 0, ""}, - {"(*UnixConn).SyscallConn", Method, 9, ""}, - {"(*UnixConn).Write", Method, 0, ""}, - {"(*UnixConn).WriteMsgUnix", Method, 0, ""}, - {"(*UnixConn).WriteTo", Method, 0, ""}, - {"(*UnixConn).WriteToUnix", Method, 0, ""}, - {"(*UnixListener).Accept", Method, 0, ""}, - {"(*UnixListener).AcceptUnix", Method, 0, ""}, - {"(*UnixListener).Addr", Method, 0, ""}, - {"(*UnixListener).Close", Method, 0, ""}, - {"(*UnixListener).File", Method, 0, ""}, - {"(*UnixListener).SetDeadline", Method, 0, ""}, - {"(*UnixListener).SetUnlinkOnClose", Method, 8, ""}, - {"(*UnixListener).SyscallConn", Method, 10, ""}, - {"(Flags).String", Method, 0, ""}, - {"(HardwareAddr).String", Method, 0, ""}, - {"(IP).AppendText", Method, 24, ""}, - {"(IP).DefaultMask", Method, 0, ""}, - {"(IP).Equal", Method, 0, ""}, - {"(IP).IsGlobalUnicast", Method, 0, ""}, - {"(IP).IsInterfaceLocalMulticast", Method, 0, ""}, - {"(IP).IsLinkLocalMulticast", Method, 0, ""}, - {"(IP).IsLinkLocalUnicast", Method, 0, ""}, - {"(IP).IsLoopback", Method, 0, ""}, - {"(IP).IsMulticast", Method, 0, ""}, - {"(IP).IsPrivate", Method, 17, ""}, - {"(IP).IsUnspecified", Method, 0, ""}, - {"(IP).MarshalText", Method, 2, ""}, - {"(IP).Mask", Method, 0, ""}, - {"(IP).String", Method, 0, ""}, - {"(IP).To16", Method, 0, ""}, - {"(IP).To4", Method, 0, ""}, - {"(IPMask).Size", Method, 0, ""}, - {"(IPMask).String", Method, 0, ""}, - {"(InvalidAddrError).Error", Method, 0, ""}, - {"(InvalidAddrError).Temporary", Method, 0, ""}, - {"(InvalidAddrError).Timeout", Method, 0, ""}, - {"(UnknownNetworkError).Error", Method, 0, ""}, - {"(UnknownNetworkError).Temporary", Method, 0, ""}, - {"(UnknownNetworkError).Timeout", Method, 0, ""}, - {"Addr", Type, 0, ""}, - {"AddrError", Type, 0, ""}, - {"AddrError.Addr", Field, 0, ""}, - {"AddrError.Err", Field, 0, ""}, - {"Buffers", Type, 8, ""}, - {"CIDRMask", Func, 0, "func(ones int, bits int) IPMask"}, - {"Conn", Type, 0, ""}, - {"DNSConfigError", Type, 0, ""}, - {"DNSConfigError.Err", Field, 0, ""}, - {"DNSError", Type, 0, ""}, - {"DNSError.Err", Field, 0, ""}, - {"DNSError.IsNotFound", Field, 13, ""}, - {"DNSError.IsTemporary", Field, 6, ""}, - {"DNSError.IsTimeout", Field, 0, ""}, - {"DNSError.Name", Field, 0, ""}, - {"DNSError.Server", Field, 0, ""}, - {"DNSError.UnwrapErr", Field, 23, ""}, - {"DefaultResolver", Var, 8, ""}, - {"Dial", Func, 0, "func(network string, address string) (Conn, error)"}, - {"DialIP", Func, 0, "func(network string, laddr *IPAddr, raddr *IPAddr) (*IPConn, error)"}, - {"DialTCP", Func, 0, "func(network string, laddr *TCPAddr, raddr *TCPAddr) (*TCPConn, error)"}, - {"DialTimeout", Func, 0, "func(network string, address string, timeout time.Duration) (Conn, error)"}, - {"DialUDP", Func, 0, "func(network string, laddr *UDPAddr, raddr *UDPAddr) (*UDPConn, error)"}, - {"DialUnix", Func, 0, "func(network string, laddr *UnixAddr, raddr *UnixAddr) (*UnixConn, error)"}, - {"Dialer", Type, 1, ""}, - {"Dialer.Cancel", Field, 6, ""}, - {"Dialer.Control", Field, 11, ""}, - {"Dialer.ControlContext", Field, 20, ""}, - {"Dialer.Deadline", Field, 1, ""}, - {"Dialer.DualStack", Field, 2, ""}, - {"Dialer.FallbackDelay", Field, 5, ""}, - {"Dialer.KeepAlive", Field, 3, ""}, - {"Dialer.KeepAliveConfig", Field, 23, ""}, - {"Dialer.LocalAddr", Field, 1, ""}, - {"Dialer.Resolver", Field, 8, ""}, - {"Dialer.Timeout", Field, 1, ""}, - {"ErrClosed", Var, 16, ""}, - {"ErrWriteToConnected", Var, 0, ""}, - {"Error", Type, 0, ""}, - {"FileConn", Func, 0, "func(f *os.File) (c Conn, err error)"}, - {"FileListener", Func, 0, "func(f *os.File) (ln Listener, err error)"}, - {"FilePacketConn", Func, 0, "func(f *os.File) (c PacketConn, err error)"}, - {"FlagBroadcast", Const, 0, ""}, - {"FlagLoopback", Const, 0, ""}, - {"FlagMulticast", Const, 0, ""}, - {"FlagPointToPoint", Const, 0, ""}, - {"FlagRunning", Const, 20, ""}, - {"FlagUp", Const, 0, ""}, - {"Flags", Type, 0, ""}, - {"HardwareAddr", Type, 0, ""}, - {"IP", Type, 0, ""}, - {"IPAddr", Type, 0, ""}, - {"IPAddr.IP", Field, 0, ""}, - {"IPAddr.Zone", Field, 1, ""}, - {"IPConn", Type, 0, ""}, - {"IPMask", Type, 0, ""}, - {"IPNet", Type, 0, ""}, - {"IPNet.IP", Field, 0, ""}, - {"IPNet.Mask", Field, 0, ""}, - {"IPv4", Func, 0, "func(a byte, b byte, c byte, d byte) IP"}, - {"IPv4Mask", Func, 0, "func(a byte, b byte, c byte, d byte) IPMask"}, - {"IPv4allrouter", Var, 0, ""}, - {"IPv4allsys", Var, 0, ""}, - {"IPv4bcast", Var, 0, ""}, - {"IPv4len", Const, 0, ""}, - {"IPv4zero", Var, 0, ""}, - {"IPv6interfacelocalallnodes", Var, 0, ""}, - {"IPv6len", Const, 0, ""}, - {"IPv6linklocalallnodes", Var, 0, ""}, - {"IPv6linklocalallrouters", Var, 0, ""}, - {"IPv6loopback", Var, 0, ""}, - {"IPv6unspecified", Var, 0, ""}, - {"IPv6zero", Var, 0, ""}, - {"Interface", Type, 0, ""}, - {"Interface.Flags", Field, 0, ""}, - {"Interface.HardwareAddr", Field, 0, ""}, - {"Interface.Index", Field, 0, ""}, - {"Interface.MTU", Field, 0, ""}, - {"Interface.Name", Field, 0, ""}, - {"InterfaceAddrs", Func, 0, "func() ([]Addr, error)"}, - {"InterfaceByIndex", Func, 0, "func(index int) (*Interface, error)"}, - {"InterfaceByName", Func, 0, "func(name string) (*Interface, error)"}, - {"Interfaces", Func, 0, "func() ([]Interface, error)"}, - {"InvalidAddrError", Type, 0, ""}, - {"JoinHostPort", Func, 0, "func(host string, port string) string"}, - {"KeepAliveConfig", Type, 23, ""}, - {"KeepAliveConfig.Count", Field, 23, ""}, - {"KeepAliveConfig.Enable", Field, 23, ""}, - {"KeepAliveConfig.Idle", Field, 23, ""}, - {"KeepAliveConfig.Interval", Field, 23, ""}, - {"Listen", Func, 0, "func(network string, address string) (Listener, error)"}, - {"ListenConfig", Type, 11, ""}, - {"ListenConfig.Control", Field, 11, ""}, - {"ListenConfig.KeepAlive", Field, 13, ""}, - {"ListenConfig.KeepAliveConfig", Field, 23, ""}, - {"ListenIP", Func, 0, "func(network string, laddr *IPAddr) (*IPConn, error)"}, - {"ListenMulticastUDP", Func, 0, "func(network string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error)"}, - {"ListenPacket", Func, 0, "func(network string, address string) (PacketConn, error)"}, - {"ListenTCP", Func, 0, "func(network string, laddr *TCPAddr) (*TCPListener, error)"}, - {"ListenUDP", Func, 0, "func(network string, laddr *UDPAddr) (*UDPConn, error)"}, - {"ListenUnix", Func, 0, "func(network string, laddr *UnixAddr) (*UnixListener, error)"}, - {"ListenUnixgram", Func, 0, "func(network string, laddr *UnixAddr) (*UnixConn, error)"}, - {"Listener", Type, 0, ""}, - {"LookupAddr", Func, 0, "func(addr string) (names []string, err error)"}, - {"LookupCNAME", Func, 0, "func(host string) (cname string, err error)"}, - {"LookupHost", Func, 0, "func(host string) (addrs []string, err error)"}, - {"LookupIP", Func, 0, "func(host string) ([]IP, error)"}, - {"LookupMX", Func, 0, "func(name string) ([]*MX, error)"}, - {"LookupNS", Func, 1, "func(name string) ([]*NS, error)"}, - {"LookupPort", Func, 0, "func(network string, service string) (port int, err error)"}, - {"LookupSRV", Func, 0, "func(service string, proto string, name string) (cname string, addrs []*SRV, err error)"}, - {"LookupTXT", Func, 0, "func(name string) ([]string, error)"}, - {"MX", Type, 0, ""}, - {"MX.Host", Field, 0, ""}, - {"MX.Pref", Field, 0, ""}, - {"NS", Type, 1, ""}, - {"NS.Host", Field, 1, ""}, - {"OpError", Type, 0, ""}, - {"OpError.Addr", Field, 0, ""}, - {"OpError.Err", Field, 0, ""}, - {"OpError.Net", Field, 0, ""}, - {"OpError.Op", Field, 0, ""}, - {"OpError.Source", Field, 5, ""}, - {"PacketConn", Type, 0, ""}, - {"ParseCIDR", Func, 0, "func(s string) (IP, *IPNet, error)"}, - {"ParseError", Type, 0, ""}, - {"ParseError.Text", Field, 0, ""}, - {"ParseError.Type", Field, 0, ""}, - {"ParseIP", Func, 0, "func(s string) IP"}, - {"ParseMAC", Func, 0, "func(s string) (hw HardwareAddr, err error)"}, - {"Pipe", Func, 0, "func() (Conn, Conn)"}, - {"ResolveIPAddr", Func, 0, "func(network string, address string) (*IPAddr, error)"}, - {"ResolveTCPAddr", Func, 0, "func(network string, address string) (*TCPAddr, error)"}, - {"ResolveUDPAddr", Func, 0, "func(network string, address string) (*UDPAddr, error)"}, - {"ResolveUnixAddr", Func, 0, "func(network string, address string) (*UnixAddr, error)"}, - {"Resolver", Type, 8, ""}, - {"Resolver.Dial", Field, 9, ""}, - {"Resolver.PreferGo", Field, 8, ""}, - {"Resolver.StrictErrors", Field, 9, ""}, - {"SRV", Type, 0, ""}, - {"SRV.Port", Field, 0, ""}, - {"SRV.Priority", Field, 0, ""}, - {"SRV.Target", Field, 0, ""}, - {"SRV.Weight", Field, 0, ""}, - {"SplitHostPort", Func, 0, "func(hostport string) (host string, port string, err error)"}, - {"TCPAddr", Type, 0, ""}, - {"TCPAddr.IP", Field, 0, ""}, - {"TCPAddr.Port", Field, 0, ""}, - {"TCPAddr.Zone", Field, 1, ""}, - {"TCPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *TCPAddr"}, - {"TCPConn", Type, 0, ""}, - {"TCPListener", Type, 0, ""}, - {"UDPAddr", Type, 0, ""}, - {"UDPAddr.IP", Field, 0, ""}, - {"UDPAddr.Port", Field, 0, ""}, - {"UDPAddr.Zone", Field, 1, ""}, - {"UDPAddrFromAddrPort", Func, 18, "func(addr netip.AddrPort) *UDPAddr"}, - {"UDPConn", Type, 0, ""}, - {"UnixAddr", Type, 0, ""}, - {"UnixAddr.Name", Field, 0, ""}, - {"UnixAddr.Net", Field, 0, ""}, - {"UnixConn", Type, 0, ""}, - {"UnixListener", Type, 0, ""}, - {"UnknownNetworkError", Type, 0, ""}, - }, - "net/http": { - {"(*Client).CloseIdleConnections", Method, 12, ""}, - {"(*Client).Do", Method, 0, ""}, - {"(*Client).Get", Method, 0, ""}, - {"(*Client).Head", Method, 0, ""}, - {"(*Client).Post", Method, 0, ""}, - {"(*Client).PostForm", Method, 0, ""}, - {"(*Cookie).String", Method, 0, ""}, - {"(*Cookie).Valid", Method, 18, ""}, - {"(*MaxBytesError).Error", Method, 19, ""}, - {"(*ProtocolError).Error", Method, 0, ""}, - {"(*ProtocolError).Is", Method, 21, ""}, - {"(*Protocols).SetHTTP1", Method, 24, ""}, - {"(*Protocols).SetHTTP2", Method, 24, ""}, - {"(*Protocols).SetUnencryptedHTTP2", Method, 24, ""}, - {"(*Request).AddCookie", Method, 0, ""}, - {"(*Request).BasicAuth", Method, 4, ""}, - {"(*Request).Clone", Method, 13, ""}, - {"(*Request).Context", Method, 7, ""}, - {"(*Request).Cookie", Method, 0, ""}, - {"(*Request).Cookies", Method, 0, ""}, - {"(*Request).CookiesNamed", Method, 23, ""}, - {"(*Request).FormFile", Method, 0, ""}, - {"(*Request).FormValue", Method, 0, ""}, - {"(*Request).MultipartReader", Method, 0, ""}, - {"(*Request).ParseForm", Method, 0, ""}, - {"(*Request).ParseMultipartForm", Method, 0, ""}, - {"(*Request).PathValue", Method, 22, ""}, - {"(*Request).PostFormValue", Method, 1, ""}, - {"(*Request).ProtoAtLeast", Method, 0, ""}, - {"(*Request).Referer", Method, 0, ""}, - {"(*Request).SetBasicAuth", Method, 0, ""}, - {"(*Request).SetPathValue", Method, 22, ""}, - {"(*Request).UserAgent", Method, 0, ""}, - {"(*Request).WithContext", Method, 7, ""}, - {"(*Request).Write", Method, 0, ""}, - {"(*Request).WriteProxy", Method, 0, ""}, - {"(*Response).Cookies", Method, 0, ""}, - {"(*Response).Location", Method, 0, ""}, - {"(*Response).ProtoAtLeast", Method, 0, ""}, - {"(*Response).Write", Method, 0, ""}, - {"(*ResponseController).EnableFullDuplex", Method, 21, ""}, - {"(*ResponseController).Flush", Method, 20, ""}, - {"(*ResponseController).Hijack", Method, 20, ""}, - {"(*ResponseController).SetReadDeadline", Method, 20, ""}, - {"(*ResponseController).SetWriteDeadline", Method, 20, ""}, - {"(*ServeMux).Handle", Method, 0, ""}, - {"(*ServeMux).HandleFunc", Method, 0, ""}, - {"(*ServeMux).Handler", Method, 1, ""}, - {"(*ServeMux).ServeHTTP", Method, 0, ""}, - {"(*Server).Close", Method, 8, ""}, - {"(*Server).ListenAndServe", Method, 0, ""}, - {"(*Server).ListenAndServeTLS", Method, 0, ""}, - {"(*Server).RegisterOnShutdown", Method, 9, ""}, - {"(*Server).Serve", Method, 0, ""}, - {"(*Server).ServeTLS", Method, 9, ""}, - {"(*Server).SetKeepAlivesEnabled", Method, 3, ""}, - {"(*Server).Shutdown", Method, 8, ""}, - {"(*Transport).CancelRequest", Method, 1, ""}, - {"(*Transport).Clone", Method, 13, ""}, - {"(*Transport).CloseIdleConnections", Method, 0, ""}, - {"(*Transport).RegisterProtocol", Method, 0, ""}, - {"(*Transport).RoundTrip", Method, 0, ""}, - {"(ConnState).String", Method, 3, ""}, - {"(Dir).Open", Method, 0, ""}, - {"(HandlerFunc).ServeHTTP", Method, 0, ""}, - {"(Header).Add", Method, 0, ""}, - {"(Header).Clone", Method, 13, ""}, - {"(Header).Del", Method, 0, ""}, - {"(Header).Get", Method, 0, ""}, - {"(Header).Set", Method, 0, ""}, - {"(Header).Values", Method, 14, ""}, - {"(Header).Write", Method, 0, ""}, - {"(Header).WriteSubset", Method, 0, ""}, - {"(Protocols).HTTP1", Method, 24, ""}, - {"(Protocols).HTTP2", Method, 24, ""}, - {"(Protocols).String", Method, 24, ""}, - {"(Protocols).UnencryptedHTTP2", Method, 24, ""}, - {"AllowQuerySemicolons", Func, 17, "func(h Handler) Handler"}, - {"CanonicalHeaderKey", Func, 0, "func(s string) string"}, - {"Client", Type, 0, ""}, - {"Client.CheckRedirect", Field, 0, ""}, - {"Client.Jar", Field, 0, ""}, - {"Client.Timeout", Field, 3, ""}, - {"Client.Transport", Field, 0, ""}, - {"CloseNotifier", Type, 1, ""}, - {"ConnState", Type, 3, ""}, - {"Cookie", Type, 0, ""}, - {"Cookie.Domain", Field, 0, ""}, - {"Cookie.Expires", Field, 0, ""}, - {"Cookie.HttpOnly", Field, 0, ""}, - {"Cookie.MaxAge", Field, 0, ""}, - {"Cookie.Name", Field, 0, ""}, - {"Cookie.Partitioned", Field, 23, ""}, - {"Cookie.Path", Field, 0, ""}, - {"Cookie.Quoted", Field, 23, ""}, - {"Cookie.Raw", Field, 0, ""}, - {"Cookie.RawExpires", Field, 0, ""}, - {"Cookie.SameSite", Field, 11, ""}, - {"Cookie.Secure", Field, 0, ""}, - {"Cookie.Unparsed", Field, 0, ""}, - {"Cookie.Value", Field, 0, ""}, - {"CookieJar", Type, 0, ""}, - {"DefaultClient", Var, 0, ""}, - {"DefaultMaxHeaderBytes", Const, 0, ""}, - {"DefaultMaxIdleConnsPerHost", Const, 0, ""}, - {"DefaultServeMux", Var, 0, ""}, - {"DefaultTransport", Var, 0, ""}, - {"DetectContentType", Func, 0, "func(data []byte) string"}, - {"Dir", Type, 0, ""}, - {"ErrAbortHandler", Var, 8, ""}, - {"ErrBodyNotAllowed", Var, 0, ""}, - {"ErrBodyReadAfterClose", Var, 0, ""}, - {"ErrContentLength", Var, 0, ""}, - {"ErrHandlerTimeout", Var, 0, ""}, - {"ErrHeaderTooLong", Var, 0, ""}, - {"ErrHijacked", Var, 0, ""}, - {"ErrLineTooLong", Var, 0, ""}, - {"ErrMissingBoundary", Var, 0, ""}, - {"ErrMissingContentLength", Var, 0, ""}, - {"ErrMissingFile", Var, 0, ""}, - {"ErrNoCookie", Var, 0, ""}, - {"ErrNoLocation", Var, 0, ""}, - {"ErrNotMultipart", Var, 0, ""}, - {"ErrNotSupported", Var, 0, ""}, - {"ErrSchemeMismatch", Var, 21, ""}, - {"ErrServerClosed", Var, 8, ""}, - {"ErrShortBody", Var, 0, ""}, - {"ErrSkipAltProtocol", Var, 6, ""}, - {"ErrUnexpectedTrailer", Var, 0, ""}, - {"ErrUseLastResponse", Var, 7, ""}, - {"ErrWriteAfterFlush", Var, 0, ""}, - {"Error", Func, 0, "func(w ResponseWriter, error string, code int)"}, - {"FS", Func, 16, "func(fsys fs.FS) FileSystem"}, - {"File", Type, 0, ""}, - {"FileServer", Func, 0, "func(root FileSystem) Handler"}, - {"FileServerFS", Func, 22, "func(root fs.FS) Handler"}, - {"FileSystem", Type, 0, ""}, - {"Flusher", Type, 0, ""}, - {"Get", Func, 0, "func(url string) (resp *Response, err error)"}, - {"HTTP2Config", Type, 24, ""}, - {"HTTP2Config.CountError", Field, 24, ""}, - {"HTTP2Config.MaxConcurrentStreams", Field, 24, ""}, - {"HTTP2Config.MaxDecoderHeaderTableSize", Field, 24, ""}, - {"HTTP2Config.MaxEncoderHeaderTableSize", Field, 24, ""}, - {"HTTP2Config.MaxReadFrameSize", Field, 24, ""}, - {"HTTP2Config.MaxReceiveBufferPerConnection", Field, 24, ""}, - {"HTTP2Config.MaxReceiveBufferPerStream", Field, 24, ""}, - {"HTTP2Config.PermitProhibitedCipherSuites", Field, 24, ""}, - {"HTTP2Config.PingTimeout", Field, 24, ""}, - {"HTTP2Config.SendPingTimeout", Field, 24, ""}, - {"HTTP2Config.WriteByteTimeout", Field, 24, ""}, - {"Handle", Func, 0, "func(pattern string, handler Handler)"}, - {"HandleFunc", Func, 0, "func(pattern string, handler func(ResponseWriter, *Request))"}, - {"Handler", Type, 0, ""}, - {"HandlerFunc", Type, 0, ""}, - {"Head", Func, 0, "func(url string) (resp *Response, err error)"}, - {"Header", Type, 0, ""}, - {"Hijacker", Type, 0, ""}, - {"ListenAndServe", Func, 0, "func(addr string, handler Handler) error"}, - {"ListenAndServeTLS", Func, 0, "func(addr string, certFile string, keyFile string, handler Handler) error"}, - {"LocalAddrContextKey", Var, 7, ""}, - {"MaxBytesError", Type, 19, ""}, - {"MaxBytesError.Limit", Field, 19, ""}, - {"MaxBytesHandler", Func, 18, "func(h Handler, n int64) Handler"}, - {"MaxBytesReader", Func, 0, "func(w ResponseWriter, r io.ReadCloser, n int64) io.ReadCloser"}, - {"MethodConnect", Const, 6, ""}, - {"MethodDelete", Const, 6, ""}, - {"MethodGet", Const, 6, ""}, - {"MethodHead", Const, 6, ""}, - {"MethodOptions", Const, 6, ""}, - {"MethodPatch", Const, 6, ""}, - {"MethodPost", Const, 6, ""}, - {"MethodPut", Const, 6, ""}, - {"MethodTrace", Const, 6, ""}, - {"NewFileTransport", Func, 0, "func(fs FileSystem) RoundTripper"}, - {"NewFileTransportFS", Func, 22, "func(fsys fs.FS) RoundTripper"}, - {"NewRequest", Func, 0, "func(method string, url string, body io.Reader) (*Request, error)"}, - {"NewRequestWithContext", Func, 13, "func(ctx context.Context, method string, url string, body io.Reader) (*Request, error)"}, - {"NewResponseController", Func, 20, "func(rw ResponseWriter) *ResponseController"}, - {"NewServeMux", Func, 0, "func() *ServeMux"}, - {"NoBody", Var, 8, ""}, - {"NotFound", Func, 0, "func(w ResponseWriter, r *Request)"}, - {"NotFoundHandler", Func, 0, "func() Handler"}, - {"ParseCookie", Func, 23, "func(line string) ([]*Cookie, error)"}, - {"ParseHTTPVersion", Func, 0, "func(vers string) (major int, minor int, ok bool)"}, - {"ParseSetCookie", Func, 23, "func(line string) (*Cookie, error)"}, - {"ParseTime", Func, 1, "func(text string) (t time.Time, err error)"}, - {"Post", Func, 0, "func(url string, contentType string, body io.Reader) (resp *Response, err error)"}, - {"PostForm", Func, 0, "func(url string, data url.Values) (resp *Response, err error)"}, - {"ProtocolError", Type, 0, ""}, - {"ProtocolError.ErrorString", Field, 0, ""}, - {"Protocols", Type, 24, ""}, - {"ProxyFromEnvironment", Func, 0, "func(req *Request) (*url.URL, error)"}, - {"ProxyURL", Func, 0, "func(fixedURL *url.URL) func(*Request) (*url.URL, error)"}, - {"PushOptions", Type, 8, ""}, - {"PushOptions.Header", Field, 8, ""}, - {"PushOptions.Method", Field, 8, ""}, - {"Pusher", Type, 8, ""}, - {"ReadRequest", Func, 0, "func(b *bufio.Reader) (*Request, error)"}, - {"ReadResponse", Func, 0, "func(r *bufio.Reader, req *Request) (*Response, error)"}, - {"Redirect", Func, 0, "func(w ResponseWriter, r *Request, url string, code int)"}, - {"RedirectHandler", Func, 0, "func(url string, code int) Handler"}, - {"Request", Type, 0, ""}, - {"Request.Body", Field, 0, ""}, - {"Request.Cancel", Field, 5, ""}, - {"Request.Close", Field, 0, ""}, - {"Request.ContentLength", Field, 0, ""}, - {"Request.Form", Field, 0, ""}, - {"Request.GetBody", Field, 8, ""}, - {"Request.Header", Field, 0, ""}, - {"Request.Host", Field, 0, ""}, - {"Request.Method", Field, 0, ""}, - {"Request.MultipartForm", Field, 0, ""}, - {"Request.Pattern", Field, 23, ""}, - {"Request.PostForm", Field, 1, ""}, - {"Request.Proto", Field, 0, ""}, - {"Request.ProtoMajor", Field, 0, ""}, - {"Request.ProtoMinor", Field, 0, ""}, - {"Request.RemoteAddr", Field, 0, ""}, - {"Request.RequestURI", Field, 0, ""}, - {"Request.Response", Field, 7, ""}, - {"Request.TLS", Field, 0, ""}, - {"Request.Trailer", Field, 0, ""}, - {"Request.TransferEncoding", Field, 0, ""}, - {"Request.URL", Field, 0, ""}, - {"Response", Type, 0, ""}, - {"Response.Body", Field, 0, ""}, - {"Response.Close", Field, 0, ""}, - {"Response.ContentLength", Field, 0, ""}, - {"Response.Header", Field, 0, ""}, - {"Response.Proto", Field, 0, ""}, - {"Response.ProtoMajor", Field, 0, ""}, - {"Response.ProtoMinor", Field, 0, ""}, - {"Response.Request", Field, 0, ""}, - {"Response.Status", Field, 0, ""}, - {"Response.StatusCode", Field, 0, ""}, - {"Response.TLS", Field, 3, ""}, - {"Response.Trailer", Field, 0, ""}, - {"Response.TransferEncoding", Field, 0, ""}, - {"Response.Uncompressed", Field, 7, ""}, - {"ResponseController", Type, 20, ""}, - {"ResponseWriter", Type, 0, ""}, - {"RoundTripper", Type, 0, ""}, - {"SameSite", Type, 11, ""}, - {"SameSiteDefaultMode", Const, 11, ""}, - {"SameSiteLaxMode", Const, 11, ""}, - {"SameSiteNoneMode", Const, 13, ""}, - {"SameSiteStrictMode", Const, 11, ""}, - {"Serve", Func, 0, "func(l net.Listener, handler Handler) error"}, - {"ServeContent", Func, 0, "func(w ResponseWriter, req *Request, name string, modtime time.Time, content io.ReadSeeker)"}, - {"ServeFile", Func, 0, "func(w ResponseWriter, r *Request, name string)"}, - {"ServeFileFS", Func, 22, "func(w ResponseWriter, r *Request, fsys fs.FS, name string)"}, - {"ServeMux", Type, 0, ""}, - {"ServeTLS", Func, 9, "func(l net.Listener, handler Handler, certFile string, keyFile string) error"}, - {"Server", Type, 0, ""}, - {"Server.Addr", Field, 0, ""}, - {"Server.BaseContext", Field, 13, ""}, - {"Server.ConnContext", Field, 13, ""}, - {"Server.ConnState", Field, 3, ""}, - {"Server.DisableGeneralOptionsHandler", Field, 20, ""}, - {"Server.ErrorLog", Field, 3, ""}, - {"Server.HTTP2", Field, 24, ""}, - {"Server.Handler", Field, 0, ""}, - {"Server.IdleTimeout", Field, 8, ""}, - {"Server.MaxHeaderBytes", Field, 0, ""}, - {"Server.Protocols", Field, 24, ""}, - {"Server.ReadHeaderTimeout", Field, 8, ""}, - {"Server.ReadTimeout", Field, 0, ""}, - {"Server.TLSConfig", Field, 0, ""}, - {"Server.TLSNextProto", Field, 1, ""}, - {"Server.WriteTimeout", Field, 0, ""}, - {"ServerContextKey", Var, 7, ""}, - {"SetCookie", Func, 0, "func(w ResponseWriter, cookie *Cookie)"}, - {"StateActive", Const, 3, ""}, - {"StateClosed", Const, 3, ""}, - {"StateHijacked", Const, 3, ""}, - {"StateIdle", Const, 3, ""}, - {"StateNew", Const, 3, ""}, - {"StatusAccepted", Const, 0, ""}, - {"StatusAlreadyReported", Const, 7, ""}, - {"StatusBadGateway", Const, 0, ""}, - {"StatusBadRequest", Const, 0, ""}, - {"StatusConflict", Const, 0, ""}, - {"StatusContinue", Const, 0, ""}, - {"StatusCreated", Const, 0, ""}, - {"StatusEarlyHints", Const, 13, ""}, - {"StatusExpectationFailed", Const, 0, ""}, - {"StatusFailedDependency", Const, 7, ""}, - {"StatusForbidden", Const, 0, ""}, - {"StatusFound", Const, 0, ""}, - {"StatusGatewayTimeout", Const, 0, ""}, - {"StatusGone", Const, 0, ""}, - {"StatusHTTPVersionNotSupported", Const, 0, ""}, - {"StatusIMUsed", Const, 7, ""}, - {"StatusInsufficientStorage", Const, 7, ""}, - {"StatusInternalServerError", Const, 0, ""}, - {"StatusLengthRequired", Const, 0, ""}, - {"StatusLocked", Const, 7, ""}, - {"StatusLoopDetected", Const, 7, ""}, - {"StatusMethodNotAllowed", Const, 0, ""}, - {"StatusMisdirectedRequest", Const, 11, ""}, - {"StatusMovedPermanently", Const, 0, ""}, - {"StatusMultiStatus", Const, 7, ""}, - {"StatusMultipleChoices", Const, 0, ""}, - {"StatusNetworkAuthenticationRequired", Const, 6, ""}, - {"StatusNoContent", Const, 0, ""}, - {"StatusNonAuthoritativeInfo", Const, 0, ""}, - {"StatusNotAcceptable", Const, 0, ""}, - {"StatusNotExtended", Const, 7, ""}, - {"StatusNotFound", Const, 0, ""}, - {"StatusNotImplemented", Const, 0, ""}, - {"StatusNotModified", Const, 0, ""}, - {"StatusOK", Const, 0, ""}, - {"StatusPartialContent", Const, 0, ""}, - {"StatusPaymentRequired", Const, 0, ""}, - {"StatusPermanentRedirect", Const, 7, ""}, - {"StatusPreconditionFailed", Const, 0, ""}, - {"StatusPreconditionRequired", Const, 6, ""}, - {"StatusProcessing", Const, 7, ""}, - {"StatusProxyAuthRequired", Const, 0, ""}, - {"StatusRequestEntityTooLarge", Const, 0, ""}, - {"StatusRequestHeaderFieldsTooLarge", Const, 6, ""}, - {"StatusRequestTimeout", Const, 0, ""}, - {"StatusRequestURITooLong", Const, 0, ""}, - {"StatusRequestedRangeNotSatisfiable", Const, 0, ""}, - {"StatusResetContent", Const, 0, ""}, - {"StatusSeeOther", Const, 0, ""}, - {"StatusServiceUnavailable", Const, 0, ""}, - {"StatusSwitchingProtocols", Const, 0, ""}, - {"StatusTeapot", Const, 0, ""}, - {"StatusTemporaryRedirect", Const, 0, ""}, - {"StatusText", Func, 0, "func(code int) string"}, - {"StatusTooEarly", Const, 12, ""}, - {"StatusTooManyRequests", Const, 6, ""}, - {"StatusUnauthorized", Const, 0, ""}, - {"StatusUnavailableForLegalReasons", Const, 6, ""}, - {"StatusUnprocessableEntity", Const, 7, ""}, - {"StatusUnsupportedMediaType", Const, 0, ""}, - {"StatusUpgradeRequired", Const, 7, ""}, - {"StatusUseProxy", Const, 0, ""}, - {"StatusVariantAlsoNegotiates", Const, 7, ""}, - {"StripPrefix", Func, 0, "func(prefix string, h Handler) Handler"}, - {"TimeFormat", Const, 0, ""}, - {"TimeoutHandler", Func, 0, "func(h Handler, dt time.Duration, msg string) Handler"}, - {"TrailerPrefix", Const, 8, ""}, - {"Transport", Type, 0, ""}, - {"Transport.Dial", Field, 0, ""}, - {"Transport.DialContext", Field, 7, ""}, - {"Transport.DialTLS", Field, 4, ""}, - {"Transport.DialTLSContext", Field, 14, ""}, - {"Transport.DisableCompression", Field, 0, ""}, - {"Transport.DisableKeepAlives", Field, 0, ""}, - {"Transport.ExpectContinueTimeout", Field, 6, ""}, - {"Transport.ForceAttemptHTTP2", Field, 13, ""}, - {"Transport.GetProxyConnectHeader", Field, 16, ""}, - {"Transport.HTTP2", Field, 24, ""}, - {"Transport.IdleConnTimeout", Field, 7, ""}, - {"Transport.MaxConnsPerHost", Field, 11, ""}, - {"Transport.MaxIdleConns", Field, 7, ""}, - {"Transport.MaxIdleConnsPerHost", Field, 0, ""}, - {"Transport.MaxResponseHeaderBytes", Field, 7, ""}, - {"Transport.OnProxyConnectResponse", Field, 20, ""}, - {"Transport.Protocols", Field, 24, ""}, - {"Transport.Proxy", Field, 0, ""}, - {"Transport.ProxyConnectHeader", Field, 8, ""}, - {"Transport.ReadBufferSize", Field, 13, ""}, - {"Transport.ResponseHeaderTimeout", Field, 1, ""}, - {"Transport.TLSClientConfig", Field, 0, ""}, - {"Transport.TLSHandshakeTimeout", Field, 3, ""}, - {"Transport.TLSNextProto", Field, 6, ""}, - {"Transport.WriteBufferSize", Field, 13, ""}, - }, - "net/http/cgi": { - {"(*Handler).ServeHTTP", Method, 0, ""}, - {"Handler", Type, 0, ""}, - {"Handler.Args", Field, 0, ""}, - {"Handler.Dir", Field, 0, ""}, - {"Handler.Env", Field, 0, ""}, - {"Handler.InheritEnv", Field, 0, ""}, - {"Handler.Logger", Field, 0, ""}, - {"Handler.Path", Field, 0, ""}, - {"Handler.PathLocationHandler", Field, 0, ""}, - {"Handler.Root", Field, 0, ""}, - {"Handler.Stderr", Field, 7, ""}, - {"Request", Func, 0, "func() (*http.Request, error)"}, - {"RequestFromMap", Func, 0, "func(params map[string]string) (*http.Request, error)"}, - {"Serve", Func, 0, "func(handler http.Handler) error"}, - }, - "net/http/cookiejar": { - {"(*Jar).Cookies", Method, 1, ""}, - {"(*Jar).SetCookies", Method, 1, ""}, - {"Jar", Type, 1, ""}, - {"New", Func, 1, "func(o *Options) (*Jar, error)"}, - {"Options", Type, 1, ""}, - {"Options.PublicSuffixList", Field, 1, ""}, - {"PublicSuffixList", Type, 1, ""}, - }, - "net/http/fcgi": { - {"ErrConnClosed", Var, 5, ""}, - {"ErrRequestAborted", Var, 5, ""}, - {"ProcessEnv", Func, 9, "func(r *http.Request) map[string]string"}, - {"Serve", Func, 0, "func(l net.Listener, handler http.Handler) error"}, - }, - "net/http/httptest": { - {"(*ResponseRecorder).Flush", Method, 0, ""}, - {"(*ResponseRecorder).Header", Method, 0, ""}, - {"(*ResponseRecorder).Result", Method, 7, ""}, - {"(*ResponseRecorder).Write", Method, 0, ""}, - {"(*ResponseRecorder).WriteHeader", Method, 0, ""}, - {"(*ResponseRecorder).WriteString", Method, 6, ""}, - {"(*Server).Certificate", Method, 9, ""}, - {"(*Server).Client", Method, 9, ""}, - {"(*Server).Close", Method, 0, ""}, - {"(*Server).CloseClientConnections", Method, 0, ""}, - {"(*Server).Start", Method, 0, ""}, - {"(*Server).StartTLS", Method, 0, ""}, - {"DefaultRemoteAddr", Const, 0, ""}, - {"NewRecorder", Func, 0, "func() *ResponseRecorder"}, - {"NewRequest", Func, 7, "func(method string, target string, body io.Reader) *http.Request"}, - {"NewRequestWithContext", Func, 23, "func(ctx context.Context, method string, target string, body io.Reader) *http.Request"}, - {"NewServer", Func, 0, "func(handler http.Handler) *Server"}, - {"NewTLSServer", Func, 0, "func(handler http.Handler) *Server"}, - {"NewUnstartedServer", Func, 0, "func(handler http.Handler) *Server"}, - {"ResponseRecorder", Type, 0, ""}, - {"ResponseRecorder.Body", Field, 0, ""}, - {"ResponseRecorder.Code", Field, 0, ""}, - {"ResponseRecorder.Flushed", Field, 0, ""}, - {"ResponseRecorder.HeaderMap", Field, 0, ""}, - {"Server", Type, 0, ""}, - {"Server.Config", Field, 0, ""}, - {"Server.EnableHTTP2", Field, 14, ""}, - {"Server.Listener", Field, 0, ""}, - {"Server.TLS", Field, 0, ""}, - {"Server.URL", Field, 0, ""}, - }, - "net/http/httptrace": { - {"ClientTrace", Type, 7, ""}, - {"ClientTrace.ConnectDone", Field, 7, ""}, - {"ClientTrace.ConnectStart", Field, 7, ""}, - {"ClientTrace.DNSDone", Field, 7, ""}, - {"ClientTrace.DNSStart", Field, 7, ""}, - {"ClientTrace.GetConn", Field, 7, ""}, - {"ClientTrace.Got100Continue", Field, 7, ""}, - {"ClientTrace.Got1xxResponse", Field, 11, ""}, - {"ClientTrace.GotConn", Field, 7, ""}, - {"ClientTrace.GotFirstResponseByte", Field, 7, ""}, - {"ClientTrace.PutIdleConn", Field, 7, ""}, - {"ClientTrace.TLSHandshakeDone", Field, 8, ""}, - {"ClientTrace.TLSHandshakeStart", Field, 8, ""}, - {"ClientTrace.Wait100Continue", Field, 7, ""}, - {"ClientTrace.WroteHeaderField", Field, 11, ""}, - {"ClientTrace.WroteHeaders", Field, 7, ""}, - {"ClientTrace.WroteRequest", Field, 7, ""}, - {"ContextClientTrace", Func, 7, "func(ctx context.Context) *ClientTrace"}, - {"DNSDoneInfo", Type, 7, ""}, - {"DNSDoneInfo.Addrs", Field, 7, ""}, - {"DNSDoneInfo.Coalesced", Field, 7, ""}, - {"DNSDoneInfo.Err", Field, 7, ""}, - {"DNSStartInfo", Type, 7, ""}, - {"DNSStartInfo.Host", Field, 7, ""}, - {"GotConnInfo", Type, 7, ""}, - {"GotConnInfo.Conn", Field, 7, ""}, - {"GotConnInfo.IdleTime", Field, 7, ""}, - {"GotConnInfo.Reused", Field, 7, ""}, - {"GotConnInfo.WasIdle", Field, 7, ""}, - {"WithClientTrace", Func, 7, "func(ctx context.Context, trace *ClientTrace) context.Context"}, - {"WroteRequestInfo", Type, 7, ""}, - {"WroteRequestInfo.Err", Field, 7, ""}, - }, - "net/http/httputil": { - {"(*ClientConn).Close", Method, 0, ""}, - {"(*ClientConn).Do", Method, 0, ""}, - {"(*ClientConn).Hijack", Method, 0, ""}, - {"(*ClientConn).Pending", Method, 0, ""}, - {"(*ClientConn).Read", Method, 0, ""}, - {"(*ClientConn).Write", Method, 0, ""}, - {"(*ProxyRequest).SetURL", Method, 20, ""}, - {"(*ProxyRequest).SetXForwarded", Method, 20, ""}, - {"(*ReverseProxy).ServeHTTP", Method, 0, ""}, - {"(*ServerConn).Close", Method, 0, ""}, - {"(*ServerConn).Hijack", Method, 0, ""}, - {"(*ServerConn).Pending", Method, 0, ""}, - {"(*ServerConn).Read", Method, 0, ""}, - {"(*ServerConn).Write", Method, 0, ""}, - {"BufferPool", Type, 6, ""}, - {"ClientConn", Type, 0, ""}, - {"DumpRequest", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"}, - {"DumpRequestOut", Func, 0, "func(req *http.Request, body bool) ([]byte, error)"}, - {"DumpResponse", Func, 0, "func(resp *http.Response, body bool) ([]byte, error)"}, - {"ErrClosed", Var, 0, ""}, - {"ErrLineTooLong", Var, 0, ""}, - {"ErrPersistEOF", Var, 0, ""}, - {"ErrPipeline", Var, 0, ""}, - {"NewChunkedReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"NewChunkedWriter", Func, 0, "func(w io.Writer) io.WriteCloser"}, - {"NewClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"}, - {"NewProxyClientConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ClientConn"}, - {"NewServerConn", Func, 0, "func(c net.Conn, r *bufio.Reader) *ServerConn"}, - {"NewSingleHostReverseProxy", Func, 0, "func(target *url.URL) *ReverseProxy"}, - {"ProxyRequest", Type, 20, ""}, - {"ProxyRequest.In", Field, 20, ""}, - {"ProxyRequest.Out", Field, 20, ""}, - {"ReverseProxy", Type, 0, ""}, - {"ReverseProxy.BufferPool", Field, 6, ""}, - {"ReverseProxy.Director", Field, 0, ""}, - {"ReverseProxy.ErrorHandler", Field, 11, ""}, - {"ReverseProxy.ErrorLog", Field, 4, ""}, - {"ReverseProxy.FlushInterval", Field, 0, ""}, - {"ReverseProxy.ModifyResponse", Field, 8, ""}, - {"ReverseProxy.Rewrite", Field, 20, ""}, - {"ReverseProxy.Transport", Field, 0, ""}, - {"ServerConn", Type, 0, ""}, - }, - "net/http/pprof": { - {"Cmdline", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, - {"Handler", Func, 0, "func(name string) http.Handler"}, - {"Index", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, - {"Profile", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, - {"Symbol", Func, 0, "func(w http.ResponseWriter, r *http.Request)"}, - {"Trace", Func, 5, "func(w http.ResponseWriter, r *http.Request)"}, - }, - "net/mail": { - {"(*Address).String", Method, 0, ""}, - {"(*AddressParser).Parse", Method, 5, ""}, - {"(*AddressParser).ParseList", Method, 5, ""}, - {"(Header).AddressList", Method, 0, ""}, - {"(Header).Date", Method, 0, ""}, - {"(Header).Get", Method, 0, ""}, - {"Address", Type, 0, ""}, - {"Address.Address", Field, 0, ""}, - {"Address.Name", Field, 0, ""}, - {"AddressParser", Type, 5, ""}, - {"AddressParser.WordDecoder", Field, 5, ""}, - {"ErrHeaderNotPresent", Var, 0, ""}, - {"Header", Type, 0, ""}, - {"Message", Type, 0, ""}, - {"Message.Body", Field, 0, ""}, - {"Message.Header", Field, 0, ""}, - {"ParseAddress", Func, 1, "func(address string) (*Address, error)"}, - {"ParseAddressList", Func, 1, "func(list string) ([]*Address, error)"}, - {"ParseDate", Func, 8, "func(date string) (time.Time, error)"}, - {"ReadMessage", Func, 0, "func(r io.Reader) (msg *Message, err error)"}, - }, - "net/netip": { - {"(*Addr).UnmarshalBinary", Method, 18, ""}, - {"(*Addr).UnmarshalText", Method, 18, ""}, - {"(*AddrPort).UnmarshalBinary", Method, 18, ""}, - {"(*AddrPort).UnmarshalText", Method, 18, ""}, - {"(*Prefix).UnmarshalBinary", Method, 18, ""}, - {"(*Prefix).UnmarshalText", Method, 18, ""}, - {"(Addr).AppendBinary", Method, 24, ""}, - {"(Addr).AppendText", Method, 24, ""}, - {"(Addr).AppendTo", Method, 18, ""}, - {"(Addr).As16", Method, 18, ""}, - {"(Addr).As4", Method, 18, ""}, - {"(Addr).AsSlice", Method, 18, ""}, - {"(Addr).BitLen", Method, 18, ""}, - {"(Addr).Compare", Method, 18, ""}, - {"(Addr).Is4", Method, 18, ""}, - {"(Addr).Is4In6", Method, 18, ""}, - {"(Addr).Is6", Method, 18, ""}, - {"(Addr).IsGlobalUnicast", Method, 18, ""}, - {"(Addr).IsInterfaceLocalMulticast", Method, 18, ""}, - {"(Addr).IsLinkLocalMulticast", Method, 18, ""}, - {"(Addr).IsLinkLocalUnicast", Method, 18, ""}, - {"(Addr).IsLoopback", Method, 18, ""}, - {"(Addr).IsMulticast", Method, 18, ""}, - {"(Addr).IsPrivate", Method, 18, ""}, - {"(Addr).IsUnspecified", Method, 18, ""}, - {"(Addr).IsValid", Method, 18, ""}, - {"(Addr).Less", Method, 18, ""}, - {"(Addr).MarshalBinary", Method, 18, ""}, - {"(Addr).MarshalText", Method, 18, ""}, - {"(Addr).Next", Method, 18, ""}, - {"(Addr).Prefix", Method, 18, ""}, - {"(Addr).Prev", Method, 18, ""}, - {"(Addr).String", Method, 18, ""}, - {"(Addr).StringExpanded", Method, 18, ""}, - {"(Addr).Unmap", Method, 18, ""}, - {"(Addr).WithZone", Method, 18, ""}, - {"(Addr).Zone", Method, 18, ""}, - {"(AddrPort).Addr", Method, 18, ""}, - {"(AddrPort).AppendBinary", Method, 24, ""}, - {"(AddrPort).AppendText", Method, 24, ""}, - {"(AddrPort).AppendTo", Method, 18, ""}, - {"(AddrPort).Compare", Method, 22, ""}, - {"(AddrPort).IsValid", Method, 18, ""}, - {"(AddrPort).MarshalBinary", Method, 18, ""}, - {"(AddrPort).MarshalText", Method, 18, ""}, - {"(AddrPort).Port", Method, 18, ""}, - {"(AddrPort).String", Method, 18, ""}, - {"(Prefix).Addr", Method, 18, ""}, - {"(Prefix).AppendBinary", Method, 24, ""}, - {"(Prefix).AppendText", Method, 24, ""}, - {"(Prefix).AppendTo", Method, 18, ""}, - {"(Prefix).Bits", Method, 18, ""}, - {"(Prefix).Contains", Method, 18, ""}, - {"(Prefix).IsSingleIP", Method, 18, ""}, - {"(Prefix).IsValid", Method, 18, ""}, - {"(Prefix).MarshalBinary", Method, 18, ""}, - {"(Prefix).MarshalText", Method, 18, ""}, - {"(Prefix).Masked", Method, 18, ""}, - {"(Prefix).Overlaps", Method, 18, ""}, - {"(Prefix).String", Method, 18, ""}, - {"Addr", Type, 18, ""}, - {"AddrFrom16", Func, 18, "func(addr [16]byte) Addr"}, - {"AddrFrom4", Func, 18, "func(addr [4]byte) Addr"}, - {"AddrFromSlice", Func, 18, "func(slice []byte) (ip Addr, ok bool)"}, - {"AddrPort", Type, 18, ""}, - {"AddrPortFrom", Func, 18, "func(ip Addr, port uint16) AddrPort"}, - {"IPv4Unspecified", Func, 18, "func() Addr"}, - {"IPv6LinkLocalAllNodes", Func, 18, "func() Addr"}, - {"IPv6LinkLocalAllRouters", Func, 20, "func() Addr"}, - {"IPv6Loopback", Func, 20, "func() Addr"}, - {"IPv6Unspecified", Func, 18, "func() Addr"}, - {"MustParseAddr", Func, 18, "func(s string) Addr"}, - {"MustParseAddrPort", Func, 18, "func(s string) AddrPort"}, - {"MustParsePrefix", Func, 18, "func(s string) Prefix"}, - {"ParseAddr", Func, 18, "func(s string) (Addr, error)"}, - {"ParseAddrPort", Func, 18, "func(s string) (AddrPort, error)"}, - {"ParsePrefix", Func, 18, "func(s string) (Prefix, error)"}, - {"Prefix", Type, 18, ""}, - {"PrefixFrom", Func, 18, "func(ip Addr, bits int) Prefix"}, - }, - "net/rpc": { - {"(*Client).Call", Method, 0, ""}, - {"(*Client).Close", Method, 0, ""}, - {"(*Client).Go", Method, 0, ""}, - {"(*Server).Accept", Method, 0, ""}, - {"(*Server).HandleHTTP", Method, 0, ""}, - {"(*Server).Register", Method, 0, ""}, - {"(*Server).RegisterName", Method, 0, ""}, - {"(*Server).ServeCodec", Method, 0, ""}, - {"(*Server).ServeConn", Method, 0, ""}, - {"(*Server).ServeHTTP", Method, 0, ""}, - {"(*Server).ServeRequest", Method, 0, ""}, - {"(ServerError).Error", Method, 0, ""}, - {"Accept", Func, 0, "func(lis net.Listener)"}, - {"Call", Type, 0, ""}, - {"Call.Args", Field, 0, ""}, - {"Call.Done", Field, 0, ""}, - {"Call.Error", Field, 0, ""}, - {"Call.Reply", Field, 0, ""}, - {"Call.ServiceMethod", Field, 0, ""}, - {"Client", Type, 0, ""}, - {"ClientCodec", Type, 0, ""}, - {"DefaultDebugPath", Const, 0, ""}, - {"DefaultRPCPath", Const, 0, ""}, - {"DefaultServer", Var, 0, ""}, - {"Dial", Func, 0, "func(network string, address string) (*Client, error)"}, - {"DialHTTP", Func, 0, "func(network string, address string) (*Client, error)"}, - {"DialHTTPPath", Func, 0, "func(network string, address string, path string) (*Client, error)"}, - {"ErrShutdown", Var, 0, ""}, - {"HandleHTTP", Func, 0, "func()"}, - {"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *Client"}, - {"NewClientWithCodec", Func, 0, "func(codec ClientCodec) *Client"}, - {"NewServer", Func, 0, "func() *Server"}, - {"Register", Func, 0, "func(rcvr any) error"}, - {"RegisterName", Func, 0, "func(name string, rcvr any) error"}, - {"Request", Type, 0, ""}, - {"Request.Seq", Field, 0, ""}, - {"Request.ServiceMethod", Field, 0, ""}, - {"Response", Type, 0, ""}, - {"Response.Error", Field, 0, ""}, - {"Response.Seq", Field, 0, ""}, - {"Response.ServiceMethod", Field, 0, ""}, - {"ServeCodec", Func, 0, "func(codec ServerCodec)"}, - {"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"}, - {"ServeRequest", Func, 0, "func(codec ServerCodec) error"}, - {"Server", Type, 0, ""}, - {"ServerCodec", Type, 0, ""}, - {"ServerError", Type, 0, ""}, - }, - "net/rpc/jsonrpc": { - {"Dial", Func, 0, "func(network string, address string) (*rpc.Client, error)"}, - {"NewClient", Func, 0, "func(conn io.ReadWriteCloser) *rpc.Client"}, - {"NewClientCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ClientCodec"}, - {"NewServerCodec", Func, 0, "func(conn io.ReadWriteCloser) rpc.ServerCodec"}, - {"ServeConn", Func, 0, "func(conn io.ReadWriteCloser)"}, - }, - "net/smtp": { - {"(*Client).Auth", Method, 0, ""}, - {"(*Client).Close", Method, 2, ""}, - {"(*Client).Data", Method, 0, ""}, - {"(*Client).Extension", Method, 0, ""}, - {"(*Client).Hello", Method, 1, ""}, - {"(*Client).Mail", Method, 0, ""}, - {"(*Client).Noop", Method, 10, ""}, - {"(*Client).Quit", Method, 0, ""}, - {"(*Client).Rcpt", Method, 0, ""}, - {"(*Client).Reset", Method, 0, ""}, - {"(*Client).StartTLS", Method, 0, ""}, - {"(*Client).TLSConnectionState", Method, 5, ""}, - {"(*Client).Verify", Method, 0, ""}, - {"Auth", Type, 0, ""}, - {"CRAMMD5Auth", Func, 0, "func(username string, secret string) Auth"}, - {"Client", Type, 0, ""}, - {"Client.Text", Field, 0, ""}, - {"Dial", Func, 0, "func(addr string) (*Client, error)"}, - {"NewClient", Func, 0, "func(conn net.Conn, host string) (*Client, error)"}, - {"PlainAuth", Func, 0, "func(identity string, username string, password string, host string) Auth"}, - {"SendMail", Func, 0, "func(addr string, a Auth, from string, to []string, msg []byte) error"}, - {"ServerInfo", Type, 0, ""}, - {"ServerInfo.Auth", Field, 0, ""}, - {"ServerInfo.Name", Field, 0, ""}, - {"ServerInfo.TLS", Field, 0, ""}, - }, - "net/textproto": { - {"(*Conn).Close", Method, 0, ""}, - {"(*Conn).Cmd", Method, 0, ""}, - {"(*Conn).DotReader", Method, 0, ""}, - {"(*Conn).DotWriter", Method, 0, ""}, - {"(*Conn).EndRequest", Method, 0, ""}, - {"(*Conn).EndResponse", Method, 0, ""}, - {"(*Conn).Next", Method, 0, ""}, - {"(*Conn).PrintfLine", Method, 0, ""}, - {"(*Conn).ReadCodeLine", Method, 0, ""}, - {"(*Conn).ReadContinuedLine", Method, 0, ""}, - {"(*Conn).ReadContinuedLineBytes", Method, 0, ""}, - {"(*Conn).ReadDotBytes", Method, 0, ""}, - {"(*Conn).ReadDotLines", Method, 0, ""}, - {"(*Conn).ReadLine", Method, 0, ""}, - {"(*Conn).ReadLineBytes", Method, 0, ""}, - {"(*Conn).ReadMIMEHeader", Method, 0, ""}, - {"(*Conn).ReadResponse", Method, 0, ""}, - {"(*Conn).StartRequest", Method, 0, ""}, - {"(*Conn).StartResponse", Method, 0, ""}, - {"(*Error).Error", Method, 0, ""}, - {"(*Pipeline).EndRequest", Method, 0, ""}, - {"(*Pipeline).EndResponse", Method, 0, ""}, - {"(*Pipeline).Next", Method, 0, ""}, - {"(*Pipeline).StartRequest", Method, 0, ""}, - {"(*Pipeline).StartResponse", Method, 0, ""}, - {"(*Reader).DotReader", Method, 0, ""}, - {"(*Reader).ReadCodeLine", Method, 0, ""}, - {"(*Reader).ReadContinuedLine", Method, 0, ""}, - {"(*Reader).ReadContinuedLineBytes", Method, 0, ""}, - {"(*Reader).ReadDotBytes", Method, 0, ""}, - {"(*Reader).ReadDotLines", Method, 0, ""}, - {"(*Reader).ReadLine", Method, 0, ""}, - {"(*Reader).ReadLineBytes", Method, 0, ""}, - {"(*Reader).ReadMIMEHeader", Method, 0, ""}, - {"(*Reader).ReadResponse", Method, 0, ""}, - {"(*Writer).DotWriter", Method, 0, ""}, - {"(*Writer).PrintfLine", Method, 0, ""}, - {"(MIMEHeader).Add", Method, 0, ""}, - {"(MIMEHeader).Del", Method, 0, ""}, - {"(MIMEHeader).Get", Method, 0, ""}, - {"(MIMEHeader).Set", Method, 0, ""}, - {"(MIMEHeader).Values", Method, 14, ""}, - {"(ProtocolError).Error", Method, 0, ""}, - {"CanonicalMIMEHeaderKey", Func, 0, "func(s string) string"}, - {"Conn", Type, 0, ""}, - {"Conn.Pipeline", Field, 0, ""}, - {"Conn.Reader", Field, 0, ""}, - {"Conn.Writer", Field, 0, ""}, - {"Dial", Func, 0, "func(network string, addr string) (*Conn, error)"}, - {"Error", Type, 0, ""}, - {"Error.Code", Field, 0, ""}, - {"Error.Msg", Field, 0, ""}, - {"MIMEHeader", Type, 0, ""}, - {"NewConn", Func, 0, "func(conn io.ReadWriteCloser) *Conn"}, - {"NewReader", Func, 0, "func(r *bufio.Reader) *Reader"}, - {"NewWriter", Func, 0, "func(w *bufio.Writer) *Writer"}, - {"Pipeline", Type, 0, ""}, - {"ProtocolError", Type, 0, ""}, - {"Reader", Type, 0, ""}, - {"Reader.R", Field, 0, ""}, - {"TrimBytes", Func, 1, "func(b []byte) []byte"}, - {"TrimString", Func, 1, "func(s string) string"}, - {"Writer", Type, 0, ""}, - {"Writer.W", Field, 0, ""}, - }, - "net/url": { - {"(*Error).Error", Method, 0, ""}, - {"(*Error).Temporary", Method, 6, ""}, - {"(*Error).Timeout", Method, 6, ""}, - {"(*Error).Unwrap", Method, 13, ""}, - {"(*URL).AppendBinary", Method, 24, ""}, - {"(*URL).EscapedFragment", Method, 15, ""}, - {"(*URL).EscapedPath", Method, 5, ""}, - {"(*URL).Hostname", Method, 8, ""}, - {"(*URL).IsAbs", Method, 0, ""}, - {"(*URL).JoinPath", Method, 19, ""}, - {"(*URL).MarshalBinary", Method, 8, ""}, - {"(*URL).Parse", Method, 0, ""}, - {"(*URL).Port", Method, 8, ""}, - {"(*URL).Query", Method, 0, ""}, - {"(*URL).Redacted", Method, 15, ""}, - {"(*URL).RequestURI", Method, 0, ""}, - {"(*URL).ResolveReference", Method, 0, ""}, - {"(*URL).String", Method, 0, ""}, - {"(*URL).UnmarshalBinary", Method, 8, ""}, - {"(*Userinfo).Password", Method, 0, ""}, - {"(*Userinfo).String", Method, 0, ""}, - {"(*Userinfo).Username", Method, 0, ""}, - {"(EscapeError).Error", Method, 0, ""}, - {"(InvalidHostError).Error", Method, 6, ""}, - {"(Values).Add", Method, 0, ""}, - {"(Values).Del", Method, 0, ""}, - {"(Values).Encode", Method, 0, ""}, - {"(Values).Get", Method, 0, ""}, - {"(Values).Has", Method, 17, ""}, - {"(Values).Set", Method, 0, ""}, - {"Error", Type, 0, ""}, - {"Error.Err", Field, 0, ""}, - {"Error.Op", Field, 0, ""}, - {"Error.URL", Field, 0, ""}, - {"EscapeError", Type, 0, ""}, - {"InvalidHostError", Type, 6, ""}, - {"JoinPath", Func, 19, "func(base string, elem ...string) (result string, err error)"}, - {"Parse", Func, 0, "func(rawURL string) (*URL, error)"}, - {"ParseQuery", Func, 0, "func(query string) (Values, error)"}, - {"ParseRequestURI", Func, 0, "func(rawURL string) (*URL, error)"}, - {"PathEscape", Func, 8, "func(s string) string"}, - {"PathUnescape", Func, 8, "func(s string) (string, error)"}, - {"QueryEscape", Func, 0, "func(s string) string"}, - {"QueryUnescape", Func, 0, "func(s string) (string, error)"}, - {"URL", Type, 0, ""}, - {"URL.ForceQuery", Field, 7, ""}, - {"URL.Fragment", Field, 0, ""}, - {"URL.Host", Field, 0, ""}, - {"URL.OmitHost", Field, 19, ""}, - {"URL.Opaque", Field, 0, ""}, - {"URL.Path", Field, 0, ""}, - {"URL.RawFragment", Field, 15, ""}, - {"URL.RawPath", Field, 5, ""}, - {"URL.RawQuery", Field, 0, ""}, - {"URL.Scheme", Field, 0, ""}, - {"URL.User", Field, 0, ""}, - {"User", Func, 0, "func(username string) *Userinfo"}, - {"UserPassword", Func, 0, "func(username string, password string) *Userinfo"}, - {"Userinfo", Type, 0, ""}, - {"Values", Type, 0, ""}, - }, - "os": { - {"(*File).Chdir", Method, 0, ""}, - {"(*File).Chmod", Method, 0, ""}, - {"(*File).Chown", Method, 0, ""}, - {"(*File).Close", Method, 0, ""}, - {"(*File).Fd", Method, 0, ""}, - {"(*File).Name", Method, 0, ""}, - {"(*File).Read", Method, 0, ""}, - {"(*File).ReadAt", Method, 0, ""}, - {"(*File).ReadDir", Method, 16, ""}, - {"(*File).ReadFrom", Method, 15, ""}, - {"(*File).Readdir", Method, 0, ""}, - {"(*File).Readdirnames", Method, 0, ""}, - {"(*File).Seek", Method, 0, ""}, - {"(*File).SetDeadline", Method, 10, ""}, - {"(*File).SetReadDeadline", Method, 10, ""}, - {"(*File).SetWriteDeadline", Method, 10, ""}, - {"(*File).Stat", Method, 0, ""}, - {"(*File).Sync", Method, 0, ""}, - {"(*File).SyscallConn", Method, 12, ""}, - {"(*File).Truncate", Method, 0, ""}, - {"(*File).Write", Method, 0, ""}, - {"(*File).WriteAt", Method, 0, ""}, - {"(*File).WriteString", Method, 0, ""}, - {"(*File).WriteTo", Method, 22, ""}, - {"(*LinkError).Error", Method, 0, ""}, - {"(*LinkError).Unwrap", Method, 13, ""}, - {"(*PathError).Error", Method, 0, ""}, - {"(*PathError).Timeout", Method, 10, ""}, - {"(*PathError).Unwrap", Method, 13, ""}, - {"(*Process).Kill", Method, 0, ""}, - {"(*Process).Release", Method, 0, ""}, - {"(*Process).Signal", Method, 0, ""}, - {"(*Process).Wait", Method, 0, ""}, - {"(*ProcessState).ExitCode", Method, 12, ""}, - {"(*ProcessState).Exited", Method, 0, ""}, - {"(*ProcessState).Pid", Method, 0, ""}, - {"(*ProcessState).String", Method, 0, ""}, - {"(*ProcessState).Success", Method, 0, ""}, - {"(*ProcessState).Sys", Method, 0, ""}, - {"(*ProcessState).SysUsage", Method, 0, ""}, - {"(*ProcessState).SystemTime", Method, 0, ""}, - {"(*ProcessState).UserTime", Method, 0, ""}, - {"(*Root).Chmod", Method, 25, ""}, - {"(*Root).Chown", Method, 25, ""}, - {"(*Root).Chtimes", Method, 25, ""}, - {"(*Root).Close", Method, 24, ""}, - {"(*Root).Create", Method, 24, ""}, - {"(*Root).FS", Method, 24, ""}, - {"(*Root).Lchown", Method, 25, ""}, - {"(*Root).Link", Method, 25, ""}, - {"(*Root).Lstat", Method, 24, ""}, - {"(*Root).Mkdir", Method, 24, ""}, - {"(*Root).Name", Method, 24, ""}, - {"(*Root).Open", Method, 24, ""}, - {"(*Root).OpenFile", Method, 24, ""}, - {"(*Root).OpenRoot", Method, 24, ""}, - {"(*Root).Readlink", Method, 25, ""}, - {"(*Root).Remove", Method, 24, ""}, - {"(*Root).Rename", Method, 25, ""}, - {"(*Root).Stat", Method, 24, ""}, - {"(*Root).Symlink", Method, 25, ""}, - {"(*SyscallError).Error", Method, 0, ""}, - {"(*SyscallError).Timeout", Method, 10, ""}, - {"(*SyscallError).Unwrap", Method, 13, ""}, - {"(FileMode).IsDir", Method, 0, ""}, - {"(FileMode).IsRegular", Method, 1, ""}, - {"(FileMode).Perm", Method, 0, ""}, - {"(FileMode).String", Method, 0, ""}, - {"Args", Var, 0, ""}, - {"Chdir", Func, 0, "func(dir string) error"}, - {"Chmod", Func, 0, "func(name string, mode FileMode) error"}, - {"Chown", Func, 0, "func(name string, uid int, gid int) error"}, - {"Chtimes", Func, 0, "func(name string, atime time.Time, mtime time.Time) error"}, - {"Clearenv", Func, 0, "func()"}, - {"CopyFS", Func, 23, "func(dir string, fsys fs.FS) error"}, - {"Create", Func, 0, "func(name string) (*File, error)"}, - {"CreateTemp", Func, 16, "func(dir string, pattern string) (*File, error)"}, - {"DevNull", Const, 0, ""}, - {"DirEntry", Type, 16, ""}, - {"DirFS", Func, 16, "func(dir string) fs.FS"}, - {"Environ", Func, 0, "func() []string"}, - {"ErrClosed", Var, 8, ""}, - {"ErrDeadlineExceeded", Var, 15, ""}, - {"ErrExist", Var, 0, ""}, - {"ErrInvalid", Var, 0, ""}, - {"ErrNoDeadline", Var, 10, ""}, - {"ErrNotExist", Var, 0, ""}, - {"ErrPermission", Var, 0, ""}, - {"ErrProcessDone", Var, 16, ""}, - {"Executable", Func, 8, "func() (string, error)"}, - {"Exit", Func, 0, "func(code int)"}, - {"Expand", Func, 0, "func(s string, mapping func(string) string) string"}, - {"ExpandEnv", Func, 0, "func(s string) string"}, - {"File", Type, 0, ""}, - {"FileInfo", Type, 0, ""}, - {"FileMode", Type, 0, ""}, - {"FindProcess", Func, 0, "func(pid int) (*Process, error)"}, - {"Getegid", Func, 0, "func() int"}, - {"Getenv", Func, 0, "func(key string) string"}, - {"Geteuid", Func, 0, "func() int"}, - {"Getgid", Func, 0, "func() int"}, - {"Getgroups", Func, 0, "func() ([]int, error)"}, - {"Getpagesize", Func, 0, "func() int"}, - {"Getpid", Func, 0, "func() int"}, - {"Getppid", Func, 0, "func() int"}, - {"Getuid", Func, 0, "func() int"}, - {"Getwd", Func, 0, "func() (dir string, err error)"}, - {"Hostname", Func, 0, "func() (name string, err error)"}, - {"Interrupt", Var, 0, ""}, - {"IsExist", Func, 0, "func(err error) bool"}, - {"IsNotExist", Func, 0, "func(err error) bool"}, - {"IsPathSeparator", Func, 0, "func(c uint8) bool"}, - {"IsPermission", Func, 0, "func(err error) bool"}, - {"IsTimeout", Func, 10, "func(err error) bool"}, - {"Kill", Var, 0, ""}, - {"Lchown", Func, 0, "func(name string, uid int, gid int) error"}, - {"Link", Func, 0, "func(oldname string, newname string) error"}, - {"LinkError", Type, 0, ""}, - {"LinkError.Err", Field, 0, ""}, - {"LinkError.New", Field, 0, ""}, - {"LinkError.Old", Field, 0, ""}, - {"LinkError.Op", Field, 0, ""}, - {"LookupEnv", Func, 5, "func(key string) (string, bool)"}, - {"Lstat", Func, 0, "func(name string) (FileInfo, error)"}, - {"Mkdir", Func, 0, "func(name string, perm FileMode) error"}, - {"MkdirAll", Func, 0, "func(path string, perm FileMode) error"}, - {"MkdirTemp", Func, 16, "func(dir string, pattern string) (string, error)"}, - {"ModeAppend", Const, 0, ""}, - {"ModeCharDevice", Const, 0, ""}, - {"ModeDevice", Const, 0, ""}, - {"ModeDir", Const, 0, ""}, - {"ModeExclusive", Const, 0, ""}, - {"ModeIrregular", Const, 11, ""}, - {"ModeNamedPipe", Const, 0, ""}, - {"ModePerm", Const, 0, ""}, - {"ModeSetgid", Const, 0, ""}, - {"ModeSetuid", Const, 0, ""}, - {"ModeSocket", Const, 0, ""}, - {"ModeSticky", Const, 0, ""}, - {"ModeSymlink", Const, 0, ""}, - {"ModeTemporary", Const, 0, ""}, - {"ModeType", Const, 0, ""}, - {"NewFile", Func, 0, "func(fd uintptr, name string) *File"}, - {"NewSyscallError", Func, 0, "func(syscall string, err error) error"}, - {"O_APPEND", Const, 0, ""}, - {"O_CREATE", Const, 0, ""}, - {"O_EXCL", Const, 0, ""}, - {"O_RDONLY", Const, 0, ""}, - {"O_RDWR", Const, 0, ""}, - {"O_SYNC", Const, 0, ""}, - {"O_TRUNC", Const, 0, ""}, - {"O_WRONLY", Const, 0, ""}, - {"Open", Func, 0, "func(name string) (*File, error)"}, - {"OpenFile", Func, 0, "func(name string, flag int, perm FileMode) (*File, error)"}, - {"OpenInRoot", Func, 24, "func(dir string, name string) (*File, error)"}, - {"OpenRoot", Func, 24, "func(name string) (*Root, error)"}, - {"PathError", Type, 0, ""}, - {"PathError.Err", Field, 0, ""}, - {"PathError.Op", Field, 0, ""}, - {"PathError.Path", Field, 0, ""}, - {"PathListSeparator", Const, 0, ""}, - {"PathSeparator", Const, 0, ""}, - {"Pipe", Func, 0, "func() (r *File, w *File, err error)"}, - {"ProcAttr", Type, 0, ""}, - {"ProcAttr.Dir", Field, 0, ""}, - {"ProcAttr.Env", Field, 0, ""}, - {"ProcAttr.Files", Field, 0, ""}, - {"ProcAttr.Sys", Field, 0, ""}, - {"Process", Type, 0, ""}, - {"Process.Pid", Field, 0, ""}, - {"ProcessState", Type, 0, ""}, - {"ReadDir", Func, 16, "func(name string) ([]DirEntry, error)"}, - {"ReadFile", Func, 16, "func(name string) ([]byte, error)"}, - {"Readlink", Func, 0, "func(name string) (string, error)"}, - {"Remove", Func, 0, "func(name string) error"}, - {"RemoveAll", Func, 0, "func(path string) error"}, - {"Rename", Func, 0, "func(oldpath string, newpath string) error"}, - {"Root", Type, 24, ""}, - {"SEEK_CUR", Const, 0, ""}, - {"SEEK_END", Const, 0, ""}, - {"SEEK_SET", Const, 0, ""}, - {"SameFile", Func, 0, "func(fi1 FileInfo, fi2 FileInfo) bool"}, - {"Setenv", Func, 0, "func(key string, value string) error"}, - {"Signal", Type, 0, ""}, - {"StartProcess", Func, 0, "func(name string, argv []string, attr *ProcAttr) (*Process, error)"}, - {"Stat", Func, 0, "func(name string) (FileInfo, error)"}, - {"Stderr", Var, 0, ""}, - {"Stdin", Var, 0, ""}, - {"Stdout", Var, 0, ""}, - {"Symlink", Func, 0, "func(oldname string, newname string) error"}, - {"SyscallError", Type, 0, ""}, - {"SyscallError.Err", Field, 0, ""}, - {"SyscallError.Syscall", Field, 0, ""}, - {"TempDir", Func, 0, "func() string"}, - {"Truncate", Func, 0, "func(name string, size int64) error"}, - {"Unsetenv", Func, 4, "func(key string) error"}, - {"UserCacheDir", Func, 11, "func() (string, error)"}, - {"UserConfigDir", Func, 13, "func() (string, error)"}, - {"UserHomeDir", Func, 12, "func() (string, error)"}, - {"WriteFile", Func, 16, "func(name string, data []byte, perm FileMode) error"}, - }, - "os/exec": { - {"(*Cmd).CombinedOutput", Method, 0, ""}, - {"(*Cmd).Environ", Method, 19, ""}, - {"(*Cmd).Output", Method, 0, ""}, - {"(*Cmd).Run", Method, 0, ""}, - {"(*Cmd).Start", Method, 0, ""}, - {"(*Cmd).StderrPipe", Method, 0, ""}, - {"(*Cmd).StdinPipe", Method, 0, ""}, - {"(*Cmd).StdoutPipe", Method, 0, ""}, - {"(*Cmd).String", Method, 13, ""}, - {"(*Cmd).Wait", Method, 0, ""}, - {"(*Error).Error", Method, 0, ""}, - {"(*Error).Unwrap", Method, 13, ""}, - {"(*ExitError).Error", Method, 0, ""}, - {"(ExitError).ExitCode", Method, 12, ""}, - {"(ExitError).Exited", Method, 0, ""}, - {"(ExitError).Pid", Method, 0, ""}, - {"(ExitError).String", Method, 0, ""}, - {"(ExitError).Success", Method, 0, ""}, - {"(ExitError).Sys", Method, 0, ""}, - {"(ExitError).SysUsage", Method, 0, ""}, - {"(ExitError).SystemTime", Method, 0, ""}, - {"(ExitError).UserTime", Method, 0, ""}, - {"Cmd", Type, 0, ""}, - {"Cmd.Args", Field, 0, ""}, - {"Cmd.Cancel", Field, 20, ""}, - {"Cmd.Dir", Field, 0, ""}, - {"Cmd.Env", Field, 0, ""}, - {"Cmd.Err", Field, 19, ""}, - {"Cmd.ExtraFiles", Field, 0, ""}, - {"Cmd.Path", Field, 0, ""}, - {"Cmd.Process", Field, 0, ""}, - {"Cmd.ProcessState", Field, 0, ""}, - {"Cmd.Stderr", Field, 0, ""}, - {"Cmd.Stdin", Field, 0, ""}, - {"Cmd.Stdout", Field, 0, ""}, - {"Cmd.SysProcAttr", Field, 0, ""}, - {"Cmd.WaitDelay", Field, 20, ""}, - {"Command", Func, 0, "func(name string, arg ...string) *Cmd"}, - {"CommandContext", Func, 7, "func(ctx context.Context, name string, arg ...string) *Cmd"}, - {"ErrDot", Var, 19, ""}, - {"ErrNotFound", Var, 0, ""}, - {"ErrWaitDelay", Var, 20, ""}, - {"Error", Type, 0, ""}, - {"Error.Err", Field, 0, ""}, - {"Error.Name", Field, 0, ""}, - {"ExitError", Type, 0, ""}, - {"ExitError.ProcessState", Field, 0, ""}, - {"ExitError.Stderr", Field, 6, ""}, - {"LookPath", Func, 0, "func(file string) (string, error)"}, - }, - "os/signal": { - {"Ignore", Func, 5, "func(sig ...os.Signal)"}, - {"Ignored", Func, 11, "func(sig os.Signal) bool"}, - {"Notify", Func, 0, "func(c chan<- os.Signal, sig ...os.Signal)"}, - {"NotifyContext", Func, 16, "func(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc)"}, - {"Reset", Func, 5, "func(sig ...os.Signal)"}, - {"Stop", Func, 1, "func(c chan<- os.Signal)"}, - }, - "os/user": { - {"(*User).GroupIds", Method, 7, ""}, - {"(UnknownGroupError).Error", Method, 7, ""}, - {"(UnknownGroupIdError).Error", Method, 7, ""}, - {"(UnknownUserError).Error", Method, 0, ""}, - {"(UnknownUserIdError).Error", Method, 0, ""}, - {"Current", Func, 0, "func() (*User, error)"}, - {"Group", Type, 7, ""}, - {"Group.Gid", Field, 7, ""}, - {"Group.Name", Field, 7, ""}, - {"Lookup", Func, 0, "func(username string) (*User, error)"}, - {"LookupGroup", Func, 7, "func(name string) (*Group, error)"}, - {"LookupGroupId", Func, 7, "func(gid string) (*Group, error)"}, - {"LookupId", Func, 0, "func(uid string) (*User, error)"}, - {"UnknownGroupError", Type, 7, ""}, - {"UnknownGroupIdError", Type, 7, ""}, - {"UnknownUserError", Type, 0, ""}, - {"UnknownUserIdError", Type, 0, ""}, - {"User", Type, 0, ""}, - {"User.Gid", Field, 0, ""}, - {"User.HomeDir", Field, 0, ""}, - {"User.Name", Field, 0, ""}, - {"User.Uid", Field, 0, ""}, - {"User.Username", Field, 0, ""}, - }, - "path": { - {"Base", Func, 0, "func(path string) string"}, - {"Clean", Func, 0, "func(path string) string"}, - {"Dir", Func, 0, "func(path string) string"}, - {"ErrBadPattern", Var, 0, ""}, - {"Ext", Func, 0, "func(path string) string"}, - {"IsAbs", Func, 0, "func(path string) bool"}, - {"Join", Func, 0, "func(elem ...string) string"}, - {"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"}, - {"Split", Func, 0, "func(path string) (dir string, file string)"}, - }, - "path/filepath": { - {"Abs", Func, 0, "func(path string) (string, error)"}, - {"Base", Func, 0, "func(path string) string"}, - {"Clean", Func, 0, "func(path string) string"}, - {"Dir", Func, 0, "func(path string) string"}, - {"ErrBadPattern", Var, 0, ""}, - {"EvalSymlinks", Func, 0, "func(path string) (string, error)"}, - {"Ext", Func, 0, "func(path string) string"}, - {"FromSlash", Func, 0, "func(path string) string"}, - {"Glob", Func, 0, "func(pattern string) (matches []string, err error)"}, - {"HasPrefix", Func, 0, "func(p string, prefix string) bool"}, - {"IsAbs", Func, 0, "func(path string) bool"}, - {"IsLocal", Func, 20, "func(path string) bool"}, - {"Join", Func, 0, "func(elem ...string) string"}, - {"ListSeparator", Const, 0, ""}, - {"Localize", Func, 23, "func(path string) (string, error)"}, - {"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"}, - {"Rel", Func, 0, "func(basepath string, targpath string) (string, error)"}, - {"Separator", Const, 0, ""}, - {"SkipAll", Var, 20, ""}, - {"SkipDir", Var, 0, ""}, - {"Split", Func, 0, "func(path string) (dir string, file string)"}, - {"SplitList", Func, 0, "func(path string) []string"}, - {"ToSlash", Func, 0, "func(path string) string"}, - {"VolumeName", Func, 0, "func(path string) string"}, - {"Walk", Func, 0, "func(root string, fn WalkFunc) error"}, - {"WalkDir", Func, 16, "func(root string, fn fs.WalkDirFunc) error"}, - {"WalkFunc", Type, 0, ""}, - }, - "plugin": { - {"(*Plugin).Lookup", Method, 8, ""}, - {"Open", Func, 8, "func(path string) (*Plugin, error)"}, - {"Plugin", Type, 8, ""}, - {"Symbol", Type, 8, ""}, - }, - "reflect": { - {"(*MapIter).Key", Method, 12, ""}, - {"(*MapIter).Next", Method, 12, ""}, - {"(*MapIter).Reset", Method, 18, ""}, - {"(*MapIter).Value", Method, 12, ""}, - {"(*ValueError).Error", Method, 0, ""}, - {"(ChanDir).String", Method, 0, ""}, - {"(Kind).String", Method, 0, ""}, - {"(Method).IsExported", Method, 17, ""}, - {"(StructField).IsExported", Method, 17, ""}, - {"(StructTag).Get", Method, 0, ""}, - {"(StructTag).Lookup", Method, 7, ""}, - {"(Value).Addr", Method, 0, ""}, - {"(Value).Bool", Method, 0, ""}, - {"(Value).Bytes", Method, 0, ""}, - {"(Value).Call", Method, 0, ""}, - {"(Value).CallSlice", Method, 0, ""}, - {"(Value).CanAddr", Method, 0, ""}, - {"(Value).CanComplex", Method, 18, ""}, - {"(Value).CanConvert", Method, 17, ""}, - {"(Value).CanFloat", Method, 18, ""}, - {"(Value).CanInt", Method, 18, ""}, - {"(Value).CanInterface", Method, 0, ""}, - {"(Value).CanSet", Method, 0, ""}, - {"(Value).CanUint", Method, 18, ""}, - {"(Value).Cap", Method, 0, ""}, - {"(Value).Clear", Method, 21, ""}, - {"(Value).Close", Method, 0, ""}, - {"(Value).Comparable", Method, 20, ""}, - {"(Value).Complex", Method, 0, ""}, - {"(Value).Convert", Method, 1, ""}, - {"(Value).Elem", Method, 0, ""}, - {"(Value).Equal", Method, 20, ""}, - {"(Value).Field", Method, 0, ""}, - {"(Value).FieldByIndex", Method, 0, ""}, - {"(Value).FieldByIndexErr", Method, 18, ""}, - {"(Value).FieldByName", Method, 0, ""}, - {"(Value).FieldByNameFunc", Method, 0, ""}, - {"(Value).Float", Method, 0, ""}, - {"(Value).Grow", Method, 20, ""}, - {"(Value).Index", Method, 0, ""}, - {"(Value).Int", Method, 0, ""}, - {"(Value).Interface", Method, 0, ""}, - {"(Value).InterfaceData", Method, 0, ""}, - {"(Value).IsNil", Method, 0, ""}, - {"(Value).IsValid", Method, 0, ""}, - {"(Value).IsZero", Method, 13, ""}, - {"(Value).Kind", Method, 0, ""}, - {"(Value).Len", Method, 0, ""}, - {"(Value).MapIndex", Method, 0, ""}, - {"(Value).MapKeys", Method, 0, ""}, - {"(Value).MapRange", Method, 12, ""}, - {"(Value).Method", Method, 0, ""}, - {"(Value).MethodByName", Method, 0, ""}, - {"(Value).NumField", Method, 0, ""}, - {"(Value).NumMethod", Method, 0, ""}, - {"(Value).OverflowComplex", Method, 0, ""}, - {"(Value).OverflowFloat", Method, 0, ""}, - {"(Value).OverflowInt", Method, 0, ""}, - {"(Value).OverflowUint", Method, 0, ""}, - {"(Value).Pointer", Method, 0, ""}, - {"(Value).Recv", Method, 0, ""}, - {"(Value).Send", Method, 0, ""}, - {"(Value).Seq", Method, 23, ""}, - {"(Value).Seq2", Method, 23, ""}, - {"(Value).Set", Method, 0, ""}, - {"(Value).SetBool", Method, 0, ""}, - {"(Value).SetBytes", Method, 0, ""}, - {"(Value).SetCap", Method, 2, ""}, - {"(Value).SetComplex", Method, 0, ""}, - {"(Value).SetFloat", Method, 0, ""}, - {"(Value).SetInt", Method, 0, ""}, - {"(Value).SetIterKey", Method, 18, ""}, - {"(Value).SetIterValue", Method, 18, ""}, - {"(Value).SetLen", Method, 0, ""}, - {"(Value).SetMapIndex", Method, 0, ""}, - {"(Value).SetPointer", Method, 0, ""}, - {"(Value).SetString", Method, 0, ""}, - {"(Value).SetUint", Method, 0, ""}, - {"(Value).SetZero", Method, 20, ""}, - {"(Value).Slice", Method, 0, ""}, - {"(Value).Slice3", Method, 2, ""}, - {"(Value).String", Method, 0, ""}, - {"(Value).TryRecv", Method, 0, ""}, - {"(Value).TrySend", Method, 0, ""}, - {"(Value).Type", Method, 0, ""}, - {"(Value).Uint", Method, 0, ""}, - {"(Value).UnsafeAddr", Method, 0, ""}, - {"(Value).UnsafePointer", Method, 18, ""}, - {"Append", Func, 0, "func(s Value, x ...Value) Value"}, - {"AppendSlice", Func, 0, "func(s Value, t Value) Value"}, - {"Array", Const, 0, ""}, - {"ArrayOf", Func, 5, "func(length int, elem Type) Type"}, - {"Bool", Const, 0, ""}, - {"BothDir", Const, 0, ""}, - {"Chan", Const, 0, ""}, - {"ChanDir", Type, 0, ""}, - {"ChanOf", Func, 1, "func(dir ChanDir, t Type) Type"}, - {"Complex128", Const, 0, ""}, - {"Complex64", Const, 0, ""}, - {"Copy", Func, 0, "func(dst Value, src Value) int"}, - {"DeepEqual", Func, 0, "func(x any, y any) bool"}, - {"Float32", Const, 0, ""}, - {"Float64", Const, 0, ""}, - {"Func", Const, 0, ""}, - {"FuncOf", Func, 5, "func(in []Type, out []Type, variadic bool) Type"}, - {"Indirect", Func, 0, "func(v Value) Value"}, - {"Int", Const, 0, ""}, - {"Int16", Const, 0, ""}, - {"Int32", Const, 0, ""}, - {"Int64", Const, 0, ""}, - {"Int8", Const, 0, ""}, - {"Interface", Const, 0, ""}, - {"Invalid", Const, 0, ""}, - {"Kind", Type, 0, ""}, - {"MakeChan", Func, 0, "func(typ Type, buffer int) Value"}, - {"MakeFunc", Func, 1, "func(typ Type, fn func(args []Value) (results []Value)) Value"}, - {"MakeMap", Func, 0, "func(typ Type) Value"}, - {"MakeMapWithSize", Func, 9, "func(typ Type, n int) Value"}, - {"MakeSlice", Func, 0, "func(typ Type, len int, cap int) Value"}, - {"Map", Const, 0, ""}, - {"MapIter", Type, 12, ""}, - {"MapOf", Func, 1, "func(key Type, elem Type) Type"}, - {"Method", Type, 0, ""}, - {"Method.Func", Field, 0, ""}, - {"Method.Index", Field, 0, ""}, - {"Method.Name", Field, 0, ""}, - {"Method.PkgPath", Field, 0, ""}, - {"Method.Type", Field, 0, ""}, - {"New", Func, 0, "func(typ Type) Value"}, - {"NewAt", Func, 0, "func(typ Type, p unsafe.Pointer) Value"}, - {"Pointer", Const, 18, ""}, - {"PointerTo", Func, 18, "func(t Type) Type"}, - {"Ptr", Const, 0, ""}, - {"PtrTo", Func, 0, "func(t Type) Type"}, - {"RecvDir", Const, 0, ""}, - {"Select", Func, 1, "func(cases []SelectCase) (chosen int, recv Value, recvOK bool)"}, - {"SelectCase", Type, 1, ""}, - {"SelectCase.Chan", Field, 1, ""}, - {"SelectCase.Dir", Field, 1, ""}, - {"SelectCase.Send", Field, 1, ""}, - {"SelectDefault", Const, 1, ""}, - {"SelectDir", Type, 1, ""}, - {"SelectRecv", Const, 1, ""}, - {"SelectSend", Const, 1, ""}, - {"SendDir", Const, 0, ""}, - {"Slice", Const, 0, ""}, - {"SliceAt", Func, 23, "func(typ Type, p unsafe.Pointer, n int) Value"}, - {"SliceHeader", Type, 0, ""}, - {"SliceHeader.Cap", Field, 0, ""}, - {"SliceHeader.Data", Field, 0, ""}, - {"SliceHeader.Len", Field, 0, ""}, - {"SliceOf", Func, 1, "func(t Type) Type"}, - {"String", Const, 0, ""}, - {"StringHeader", Type, 0, ""}, - {"StringHeader.Data", Field, 0, ""}, - {"StringHeader.Len", Field, 0, ""}, - {"Struct", Const, 0, ""}, - {"StructField", Type, 0, ""}, - {"StructField.Anonymous", Field, 0, ""}, - {"StructField.Index", Field, 0, ""}, - {"StructField.Name", Field, 0, ""}, - {"StructField.Offset", Field, 0, ""}, - {"StructField.PkgPath", Field, 0, ""}, - {"StructField.Tag", Field, 0, ""}, - {"StructField.Type", Field, 0, ""}, - {"StructOf", Func, 7, "func(fields []StructField) Type"}, - {"StructTag", Type, 0, ""}, - {"Swapper", Func, 8, "func(slice any) func(i int, j int)"}, - {"Type", Type, 0, ""}, - {"TypeFor", Func, 22, "func[T any]() Type"}, - {"TypeOf", Func, 0, "func(i any) Type"}, - {"Uint", Const, 0, ""}, - {"Uint16", Const, 0, ""}, - {"Uint32", Const, 0, ""}, - {"Uint64", Const, 0, ""}, - {"Uint8", Const, 0, ""}, - {"Uintptr", Const, 0, ""}, - {"UnsafePointer", Const, 0, ""}, - {"Value", Type, 0, ""}, - {"ValueError", Type, 0, ""}, - {"ValueError.Kind", Field, 0, ""}, - {"ValueError.Method", Field, 0, ""}, - {"ValueOf", Func, 0, "func(i any) Value"}, - {"VisibleFields", Func, 17, "func(t Type) []StructField"}, - {"Zero", Func, 0, "func(typ Type) Value"}, - }, - "regexp": { - {"(*Regexp).AppendText", Method, 24, ""}, - {"(*Regexp).Copy", Method, 6, ""}, - {"(*Regexp).Expand", Method, 0, ""}, - {"(*Regexp).ExpandString", Method, 0, ""}, - {"(*Regexp).Find", Method, 0, ""}, - {"(*Regexp).FindAll", Method, 0, ""}, - {"(*Regexp).FindAllIndex", Method, 0, ""}, - {"(*Regexp).FindAllString", Method, 0, ""}, - {"(*Regexp).FindAllStringIndex", Method, 0, ""}, - {"(*Regexp).FindAllStringSubmatch", Method, 0, ""}, - {"(*Regexp).FindAllStringSubmatchIndex", Method, 0, ""}, - {"(*Regexp).FindAllSubmatch", Method, 0, ""}, - {"(*Regexp).FindAllSubmatchIndex", Method, 0, ""}, - {"(*Regexp).FindIndex", Method, 0, ""}, - {"(*Regexp).FindReaderIndex", Method, 0, ""}, - {"(*Regexp).FindReaderSubmatchIndex", Method, 0, ""}, - {"(*Regexp).FindString", Method, 0, ""}, - {"(*Regexp).FindStringIndex", Method, 0, ""}, - {"(*Regexp).FindStringSubmatch", Method, 0, ""}, - {"(*Regexp).FindStringSubmatchIndex", Method, 0, ""}, - {"(*Regexp).FindSubmatch", Method, 0, ""}, - {"(*Regexp).FindSubmatchIndex", Method, 0, ""}, - {"(*Regexp).LiteralPrefix", Method, 0, ""}, - {"(*Regexp).Longest", Method, 1, ""}, - {"(*Regexp).MarshalText", Method, 21, ""}, - {"(*Regexp).Match", Method, 0, ""}, - {"(*Regexp).MatchReader", Method, 0, ""}, - {"(*Regexp).MatchString", Method, 0, ""}, - {"(*Regexp).NumSubexp", Method, 0, ""}, - {"(*Regexp).ReplaceAll", Method, 0, ""}, - {"(*Regexp).ReplaceAllFunc", Method, 0, ""}, - {"(*Regexp).ReplaceAllLiteral", Method, 0, ""}, - {"(*Regexp).ReplaceAllLiteralString", Method, 0, ""}, - {"(*Regexp).ReplaceAllString", Method, 0, ""}, - {"(*Regexp).ReplaceAllStringFunc", Method, 0, ""}, - {"(*Regexp).Split", Method, 1, ""}, - {"(*Regexp).String", Method, 0, ""}, - {"(*Regexp).SubexpIndex", Method, 15, ""}, - {"(*Regexp).SubexpNames", Method, 0, ""}, - {"(*Regexp).UnmarshalText", Method, 21, ""}, - {"Compile", Func, 0, "func(expr string) (*Regexp, error)"}, - {"CompilePOSIX", Func, 0, "func(expr string) (*Regexp, error)"}, - {"Match", Func, 0, "func(pattern string, b []byte) (matched bool, err error)"}, - {"MatchReader", Func, 0, "func(pattern string, r io.RuneReader) (matched bool, err error)"}, - {"MatchString", Func, 0, "func(pattern string, s string) (matched bool, err error)"}, - {"MustCompile", Func, 0, "func(str string) *Regexp"}, - {"MustCompilePOSIX", Func, 0, "func(str string) *Regexp"}, - {"QuoteMeta", Func, 0, "func(s string) string"}, - {"Regexp", Type, 0, ""}, - }, - "regexp/syntax": { - {"(*Error).Error", Method, 0, ""}, - {"(*Inst).MatchEmptyWidth", Method, 0, ""}, - {"(*Inst).MatchRune", Method, 0, ""}, - {"(*Inst).MatchRunePos", Method, 3, ""}, - {"(*Inst).String", Method, 0, ""}, - {"(*Prog).Prefix", Method, 0, ""}, - {"(*Prog).StartCond", Method, 0, ""}, - {"(*Prog).String", Method, 0, ""}, - {"(*Regexp).CapNames", Method, 0, ""}, - {"(*Regexp).Equal", Method, 0, ""}, - {"(*Regexp).MaxCap", Method, 0, ""}, - {"(*Regexp).Simplify", Method, 0, ""}, - {"(*Regexp).String", Method, 0, ""}, - {"(ErrorCode).String", Method, 0, ""}, - {"(InstOp).String", Method, 3, ""}, - {"(Op).String", Method, 11, ""}, - {"ClassNL", Const, 0, ""}, - {"Compile", Func, 0, "func(re *Regexp) (*Prog, error)"}, - {"DotNL", Const, 0, ""}, - {"EmptyBeginLine", Const, 0, ""}, - {"EmptyBeginText", Const, 0, ""}, - {"EmptyEndLine", Const, 0, ""}, - {"EmptyEndText", Const, 0, ""}, - {"EmptyNoWordBoundary", Const, 0, ""}, - {"EmptyOp", Type, 0, ""}, - {"EmptyOpContext", Func, 0, "func(r1 rune, r2 rune) EmptyOp"}, - {"EmptyWordBoundary", Const, 0, ""}, - {"ErrInternalError", Const, 0, ""}, - {"ErrInvalidCharClass", Const, 0, ""}, - {"ErrInvalidCharRange", Const, 0, ""}, - {"ErrInvalidEscape", Const, 0, ""}, - {"ErrInvalidNamedCapture", Const, 0, ""}, - {"ErrInvalidPerlOp", Const, 0, ""}, - {"ErrInvalidRepeatOp", Const, 0, ""}, - {"ErrInvalidRepeatSize", Const, 0, ""}, - {"ErrInvalidUTF8", Const, 0, ""}, - {"ErrLarge", Const, 20, ""}, - {"ErrMissingBracket", Const, 0, ""}, - {"ErrMissingParen", Const, 0, ""}, - {"ErrMissingRepeatArgument", Const, 0, ""}, - {"ErrNestingDepth", Const, 19, ""}, - {"ErrTrailingBackslash", Const, 0, ""}, - {"ErrUnexpectedParen", Const, 1, ""}, - {"Error", Type, 0, ""}, - {"Error.Code", Field, 0, ""}, - {"Error.Expr", Field, 0, ""}, - {"ErrorCode", Type, 0, ""}, - {"Flags", Type, 0, ""}, - {"FoldCase", Const, 0, ""}, - {"Inst", Type, 0, ""}, - {"Inst.Arg", Field, 0, ""}, - {"Inst.Op", Field, 0, ""}, - {"Inst.Out", Field, 0, ""}, - {"Inst.Rune", Field, 0, ""}, - {"InstAlt", Const, 0, ""}, - {"InstAltMatch", Const, 0, ""}, - {"InstCapture", Const, 0, ""}, - {"InstEmptyWidth", Const, 0, ""}, - {"InstFail", Const, 0, ""}, - {"InstMatch", Const, 0, ""}, - {"InstNop", Const, 0, ""}, - {"InstOp", Type, 0, ""}, - {"InstRune", Const, 0, ""}, - {"InstRune1", Const, 0, ""}, - {"InstRuneAny", Const, 0, ""}, - {"InstRuneAnyNotNL", Const, 0, ""}, - {"IsWordChar", Func, 0, "func(r rune) bool"}, - {"Literal", Const, 0, ""}, - {"MatchNL", Const, 0, ""}, - {"NonGreedy", Const, 0, ""}, - {"OneLine", Const, 0, ""}, - {"Op", Type, 0, ""}, - {"OpAlternate", Const, 0, ""}, - {"OpAnyChar", Const, 0, ""}, - {"OpAnyCharNotNL", Const, 0, ""}, - {"OpBeginLine", Const, 0, ""}, - {"OpBeginText", Const, 0, ""}, - {"OpCapture", Const, 0, ""}, - {"OpCharClass", Const, 0, ""}, - {"OpConcat", Const, 0, ""}, - {"OpEmptyMatch", Const, 0, ""}, - {"OpEndLine", Const, 0, ""}, - {"OpEndText", Const, 0, ""}, - {"OpLiteral", Const, 0, ""}, - {"OpNoMatch", Const, 0, ""}, - {"OpNoWordBoundary", Const, 0, ""}, - {"OpPlus", Const, 0, ""}, - {"OpQuest", Const, 0, ""}, - {"OpRepeat", Const, 0, ""}, - {"OpStar", Const, 0, ""}, - {"OpWordBoundary", Const, 0, ""}, - {"POSIX", Const, 0, ""}, - {"Parse", Func, 0, "func(s string, flags Flags) (*Regexp, error)"}, - {"Perl", Const, 0, ""}, - {"PerlX", Const, 0, ""}, - {"Prog", Type, 0, ""}, - {"Prog.Inst", Field, 0, ""}, - {"Prog.NumCap", Field, 0, ""}, - {"Prog.Start", Field, 0, ""}, - {"Regexp", Type, 0, ""}, - {"Regexp.Cap", Field, 0, ""}, - {"Regexp.Flags", Field, 0, ""}, - {"Regexp.Max", Field, 0, ""}, - {"Regexp.Min", Field, 0, ""}, - {"Regexp.Name", Field, 0, ""}, - {"Regexp.Op", Field, 0, ""}, - {"Regexp.Rune", Field, 0, ""}, - {"Regexp.Rune0", Field, 0, ""}, - {"Regexp.Sub", Field, 0, ""}, - {"Regexp.Sub0", Field, 0, ""}, - {"Simple", Const, 0, ""}, - {"UnicodeGroups", Const, 0, ""}, - {"WasDollar", Const, 0, ""}, - }, - "runtime": { - {"(*BlockProfileRecord).Stack", Method, 1, ""}, - {"(*Frames).Next", Method, 7, ""}, - {"(*Func).Entry", Method, 0, ""}, - {"(*Func).FileLine", Method, 0, ""}, - {"(*Func).Name", Method, 0, ""}, - {"(*MemProfileRecord).InUseBytes", Method, 0, ""}, - {"(*MemProfileRecord).InUseObjects", Method, 0, ""}, - {"(*MemProfileRecord).Stack", Method, 0, ""}, - {"(*PanicNilError).Error", Method, 21, ""}, - {"(*PanicNilError).RuntimeError", Method, 21, ""}, - {"(*Pinner).Pin", Method, 21, ""}, - {"(*Pinner).Unpin", Method, 21, ""}, - {"(*StackRecord).Stack", Method, 0, ""}, - {"(*TypeAssertionError).Error", Method, 0, ""}, - {"(*TypeAssertionError).RuntimeError", Method, 0, ""}, - {"(Cleanup).Stop", Method, 24, ""}, - {"AddCleanup", Func, 24, "func[T, S any](ptr *T, cleanup func(S), arg S) Cleanup"}, - {"BlockProfile", Func, 1, "func(p []BlockProfileRecord) (n int, ok bool)"}, - {"BlockProfileRecord", Type, 1, ""}, - {"BlockProfileRecord.Count", Field, 1, ""}, - {"BlockProfileRecord.Cycles", Field, 1, ""}, - {"BlockProfileRecord.StackRecord", Field, 1, ""}, - {"Breakpoint", Func, 0, "func()"}, - {"CPUProfile", Func, 0, "func() []byte"}, - {"Caller", Func, 0, "func(skip int) (pc uintptr, file string, line int, ok bool)"}, - {"Callers", Func, 0, "func(skip int, pc []uintptr) int"}, - {"CallersFrames", Func, 7, "func(callers []uintptr) *Frames"}, - {"Cleanup", Type, 24, ""}, - {"Compiler", Const, 0, ""}, - {"Error", Type, 0, ""}, - {"Frame", Type, 7, ""}, - {"Frame.Entry", Field, 7, ""}, - {"Frame.File", Field, 7, ""}, - {"Frame.Func", Field, 7, ""}, - {"Frame.Function", Field, 7, ""}, - {"Frame.Line", Field, 7, ""}, - {"Frame.PC", Field, 7, ""}, - {"Frames", Type, 7, ""}, - {"Func", Type, 0, ""}, - {"FuncForPC", Func, 0, "func(pc uintptr) *Func"}, - {"GC", Func, 0, "func()"}, - {"GOARCH", Const, 0, ""}, - {"GOMAXPROCS", Func, 0, "func(n int) int"}, - {"GOOS", Const, 0, ""}, - {"GOROOT", Func, 0, "func() string"}, - {"Goexit", Func, 0, "func()"}, - {"GoroutineProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"}, - {"Gosched", Func, 0, "func()"}, - {"KeepAlive", Func, 7, "func(x any)"}, - {"LockOSThread", Func, 0, "func()"}, - {"MemProfile", Func, 0, "func(p []MemProfileRecord, inuseZero bool) (n int, ok bool)"}, - {"MemProfileRate", Var, 0, ""}, - {"MemProfileRecord", Type, 0, ""}, - {"MemProfileRecord.AllocBytes", Field, 0, ""}, - {"MemProfileRecord.AllocObjects", Field, 0, ""}, - {"MemProfileRecord.FreeBytes", Field, 0, ""}, - {"MemProfileRecord.FreeObjects", Field, 0, ""}, - {"MemProfileRecord.Stack0", Field, 0, ""}, - {"MemStats", Type, 0, ""}, - {"MemStats.Alloc", Field, 0, ""}, - {"MemStats.BuckHashSys", Field, 0, ""}, - {"MemStats.BySize", Field, 0, ""}, - {"MemStats.DebugGC", Field, 0, ""}, - {"MemStats.EnableGC", Field, 0, ""}, - {"MemStats.Frees", Field, 0, ""}, - {"MemStats.GCCPUFraction", Field, 5, ""}, - {"MemStats.GCSys", Field, 2, ""}, - {"MemStats.HeapAlloc", Field, 0, ""}, - {"MemStats.HeapIdle", Field, 0, ""}, - {"MemStats.HeapInuse", Field, 0, ""}, - {"MemStats.HeapObjects", Field, 0, ""}, - {"MemStats.HeapReleased", Field, 0, ""}, - {"MemStats.HeapSys", Field, 0, ""}, - {"MemStats.LastGC", Field, 0, ""}, - {"MemStats.Lookups", Field, 0, ""}, - {"MemStats.MCacheInuse", Field, 0, ""}, - {"MemStats.MCacheSys", Field, 0, ""}, - {"MemStats.MSpanInuse", Field, 0, ""}, - {"MemStats.MSpanSys", Field, 0, ""}, - {"MemStats.Mallocs", Field, 0, ""}, - {"MemStats.NextGC", Field, 0, ""}, - {"MemStats.NumForcedGC", Field, 8, ""}, - {"MemStats.NumGC", Field, 0, ""}, - {"MemStats.OtherSys", Field, 2, ""}, - {"MemStats.PauseEnd", Field, 4, ""}, - {"MemStats.PauseNs", Field, 0, ""}, - {"MemStats.PauseTotalNs", Field, 0, ""}, - {"MemStats.StackInuse", Field, 0, ""}, - {"MemStats.StackSys", Field, 0, ""}, - {"MemStats.Sys", Field, 0, ""}, - {"MemStats.TotalAlloc", Field, 0, ""}, - {"MutexProfile", Func, 8, "func(p []BlockProfileRecord) (n int, ok bool)"}, - {"NumCPU", Func, 0, "func() int"}, - {"NumCgoCall", Func, 0, "func() int64"}, - {"NumGoroutine", Func, 0, "func() int"}, - {"PanicNilError", Type, 21, ""}, - {"Pinner", Type, 21, ""}, - {"ReadMemStats", Func, 0, "func(m *MemStats)"}, - {"ReadTrace", Func, 5, "func() []byte"}, - {"SetBlockProfileRate", Func, 1, "func(rate int)"}, - {"SetCPUProfileRate", Func, 0, "func(hz int)"}, - {"SetCgoTraceback", Func, 7, "func(version int, traceback unsafe.Pointer, context unsafe.Pointer, symbolizer unsafe.Pointer)"}, - {"SetFinalizer", Func, 0, "func(obj any, finalizer any)"}, - {"SetMutexProfileFraction", Func, 8, "func(rate int) int"}, - {"Stack", Func, 0, "func(buf []byte, all bool) int"}, - {"StackRecord", Type, 0, ""}, - {"StackRecord.Stack0", Field, 0, ""}, - {"StartTrace", Func, 5, "func() error"}, - {"StopTrace", Func, 5, "func()"}, - {"ThreadCreateProfile", Func, 0, "func(p []StackRecord) (n int, ok bool)"}, - {"TypeAssertionError", Type, 0, ""}, - {"UnlockOSThread", Func, 0, "func()"}, - {"Version", Func, 0, "func() string"}, - }, - "runtime/cgo": { - {"(Handle).Delete", Method, 17, ""}, - {"(Handle).Value", Method, 17, ""}, - {"Handle", Type, 17, ""}, - {"Incomplete", Type, 20, ""}, - {"NewHandle", Func, 17, ""}, - }, - "runtime/coverage": { - {"ClearCounters", Func, 20, "func() error"}, - {"WriteCounters", Func, 20, "func(w io.Writer) error"}, - {"WriteCountersDir", Func, 20, "func(dir string) error"}, - {"WriteMeta", Func, 20, "func(w io.Writer) error"}, - {"WriteMetaDir", Func, 20, "func(dir string) error"}, - }, - "runtime/debug": { - {"(*BuildInfo).String", Method, 18, ""}, - {"BuildInfo", Type, 12, ""}, - {"BuildInfo.Deps", Field, 12, ""}, - {"BuildInfo.GoVersion", Field, 18, ""}, - {"BuildInfo.Main", Field, 12, ""}, - {"BuildInfo.Path", Field, 12, ""}, - {"BuildInfo.Settings", Field, 18, ""}, - {"BuildSetting", Type, 18, ""}, - {"BuildSetting.Key", Field, 18, ""}, - {"BuildSetting.Value", Field, 18, ""}, - {"CrashOptions", Type, 23, ""}, - {"FreeOSMemory", Func, 1, "func()"}, - {"GCStats", Type, 1, ""}, - {"GCStats.LastGC", Field, 1, ""}, - {"GCStats.NumGC", Field, 1, ""}, - {"GCStats.Pause", Field, 1, ""}, - {"GCStats.PauseEnd", Field, 4, ""}, - {"GCStats.PauseQuantiles", Field, 1, ""}, - {"GCStats.PauseTotal", Field, 1, ""}, - {"Module", Type, 12, ""}, - {"Module.Path", Field, 12, ""}, - {"Module.Replace", Field, 12, ""}, - {"Module.Sum", Field, 12, ""}, - {"Module.Version", Field, 12, ""}, - {"ParseBuildInfo", Func, 18, "func(data string) (bi *BuildInfo, err error)"}, - {"PrintStack", Func, 0, "func()"}, - {"ReadBuildInfo", Func, 12, "func() (info *BuildInfo, ok bool)"}, - {"ReadGCStats", Func, 1, "func(stats *GCStats)"}, - {"SetCrashOutput", Func, 23, "func(f *os.File, opts CrashOptions) error"}, - {"SetGCPercent", Func, 1, "func(percent int) int"}, - {"SetMaxStack", Func, 2, "func(bytes int) int"}, - {"SetMaxThreads", Func, 2, "func(threads int) int"}, - {"SetMemoryLimit", Func, 19, "func(limit int64) int64"}, - {"SetPanicOnFault", Func, 3, "func(enabled bool) bool"}, - {"SetTraceback", Func, 6, "func(level string)"}, - {"Stack", Func, 0, "func() []byte"}, - {"WriteHeapDump", Func, 3, "func(fd uintptr)"}, - }, - "runtime/metrics": { - {"(Value).Float64", Method, 16, ""}, - {"(Value).Float64Histogram", Method, 16, ""}, - {"(Value).Kind", Method, 16, ""}, - {"(Value).Uint64", Method, 16, ""}, - {"All", Func, 16, "func() []Description"}, - {"Description", Type, 16, ""}, - {"Description.Cumulative", Field, 16, ""}, - {"Description.Description", Field, 16, ""}, - {"Description.Kind", Field, 16, ""}, - {"Description.Name", Field, 16, ""}, - {"Float64Histogram", Type, 16, ""}, - {"Float64Histogram.Buckets", Field, 16, ""}, - {"Float64Histogram.Counts", Field, 16, ""}, - {"KindBad", Const, 16, ""}, - {"KindFloat64", Const, 16, ""}, - {"KindFloat64Histogram", Const, 16, ""}, - {"KindUint64", Const, 16, ""}, - {"Read", Func, 16, "func(m []Sample)"}, - {"Sample", Type, 16, ""}, - {"Sample.Name", Field, 16, ""}, - {"Sample.Value", Field, 16, ""}, - {"Value", Type, 16, ""}, - {"ValueKind", Type, 16, ""}, - }, - "runtime/pprof": { - {"(*Profile).Add", Method, 0, ""}, - {"(*Profile).Count", Method, 0, ""}, - {"(*Profile).Name", Method, 0, ""}, - {"(*Profile).Remove", Method, 0, ""}, - {"(*Profile).WriteTo", Method, 0, ""}, - {"Do", Func, 9, "func(ctx context.Context, labels LabelSet, f func(context.Context))"}, - {"ForLabels", Func, 9, "func(ctx context.Context, f func(key string, value string) bool)"}, - {"Label", Func, 9, "func(ctx context.Context, key string) (string, bool)"}, - {"LabelSet", Type, 9, ""}, - {"Labels", Func, 9, "func(args ...string) LabelSet"}, - {"Lookup", Func, 0, "func(name string) *Profile"}, - {"NewProfile", Func, 0, "func(name string) *Profile"}, - {"Profile", Type, 0, ""}, - {"Profiles", Func, 0, "func() []*Profile"}, - {"SetGoroutineLabels", Func, 9, "func(ctx context.Context)"}, - {"StartCPUProfile", Func, 0, "func(w io.Writer) error"}, - {"StopCPUProfile", Func, 0, "func()"}, - {"WithLabels", Func, 9, "func(ctx context.Context, labels LabelSet) context.Context"}, - {"WriteHeapProfile", Func, 0, "func(w io.Writer) error"}, - }, - "runtime/trace": { - {"(*Region).End", Method, 11, ""}, - {"(*Task).End", Method, 11, ""}, - {"IsEnabled", Func, 11, "func() bool"}, - {"Log", Func, 11, "func(ctx context.Context, category string, message string)"}, - {"Logf", Func, 11, "func(ctx context.Context, category string, format string, args ...any)"}, - {"NewTask", Func, 11, "func(pctx context.Context, taskType string) (ctx context.Context, task *Task)"}, - {"Region", Type, 11, ""}, - {"Start", Func, 5, "func(w io.Writer) error"}, - {"StartRegion", Func, 11, "func(ctx context.Context, regionType string) *Region"}, - {"Stop", Func, 5, "func()"}, - {"Task", Type, 11, ""}, - {"WithRegion", Func, 11, "func(ctx context.Context, regionType string, fn func())"}, - }, - "slices": { - {"All", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"}, - {"AppendSeq", Func, 23, "func[Slice ~[]E, E any](s Slice, seq iter.Seq[E]) Slice"}, - {"Backward", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq2[int, E]"}, - {"BinarySearch", Func, 21, "func[S ~[]E, E cmp.Ordered](x S, target E) (int, bool)"}, - {"BinarySearchFunc", Func, 21, "func[S ~[]E, E, T any](x S, target T, cmp func(E, T) int) (int, bool)"}, - {"Chunk", Func, 23, "func[Slice ~[]E, E any](s Slice, n int) iter.Seq[Slice]"}, - {"Clip", Func, 21, "func[S ~[]E, E any](s S) S"}, - {"Clone", Func, 21, "func[S ~[]E, E any](s S) S"}, - {"Collect", Func, 23, "func[E any](seq iter.Seq[E]) []E"}, - {"Compact", Func, 21, "func[S ~[]E, E comparable](s S) S"}, - {"CompactFunc", Func, 21, "func[S ~[]E, E any](s S, eq func(E, E) bool) S"}, - {"Compare", Func, 21, "func[S ~[]E, E cmp.Ordered](s1 S, s2 S) int"}, - {"CompareFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, cmp func(E1, E2) int) int"}, - {"Concat", Func, 22, "func[S ~[]E, E any](slices ...S) S"}, - {"Contains", Func, 21, "func[S ~[]E, E comparable](s S, v E) bool"}, - {"ContainsFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) bool"}, - {"Delete", Func, 21, "func[S ~[]E, E any](s S, i int, j int) S"}, - {"DeleteFunc", Func, 21, "func[S ~[]E, E any](s S, del func(E) bool) S"}, - {"Equal", Func, 21, "func[S ~[]E, E comparable](s1 S, s2 S) bool"}, - {"EqualFunc", Func, 21, "func[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, eq func(E1, E2) bool) bool"}, - {"Grow", Func, 21, "func[S ~[]E, E any](s S, n int) S"}, - {"Index", Func, 21, "func[S ~[]E, E comparable](s S, v E) int"}, - {"IndexFunc", Func, 21, "func[S ~[]E, E any](s S, f func(E) bool) int"}, - {"Insert", Func, 21, "func[S ~[]E, E any](s S, i int, v ...E) S"}, - {"IsSorted", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) bool"}, - {"IsSortedFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) bool"}, - {"Max", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"}, - {"MaxFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"}, - {"Min", Func, 21, "func[S ~[]E, E cmp.Ordered](x S) E"}, - {"MinFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int) E"}, - {"Repeat", Func, 23, "func[S ~[]E, E any](x S, count int) S"}, - {"Replace", Func, 21, "func[S ~[]E, E any](s S, i int, j int, v ...E) S"}, - {"Reverse", Func, 21, "func[S ~[]E, E any](s S)"}, - {"Sort", Func, 21, "func[S ~[]E, E cmp.Ordered](x S)"}, - {"SortFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"}, - {"SortStableFunc", Func, 21, "func[S ~[]E, E any](x S, cmp func(a E, b E) int)"}, - {"Sorted", Func, 23, "func[E cmp.Ordered](seq iter.Seq[E]) []E"}, - {"SortedFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"}, - {"SortedStableFunc", Func, 23, "func[E any](seq iter.Seq[E], cmp func(E, E) int) []E"}, - {"Values", Func, 23, "func[Slice ~[]E, E any](s Slice) iter.Seq[E]"}, - }, - "sort": { - {"(Float64Slice).Len", Method, 0, ""}, - {"(Float64Slice).Less", Method, 0, ""}, - {"(Float64Slice).Search", Method, 0, ""}, - {"(Float64Slice).Sort", Method, 0, ""}, - {"(Float64Slice).Swap", Method, 0, ""}, - {"(IntSlice).Len", Method, 0, ""}, - {"(IntSlice).Less", Method, 0, ""}, - {"(IntSlice).Search", Method, 0, ""}, - {"(IntSlice).Sort", Method, 0, ""}, - {"(IntSlice).Swap", Method, 0, ""}, - {"(StringSlice).Len", Method, 0, ""}, - {"(StringSlice).Less", Method, 0, ""}, - {"(StringSlice).Search", Method, 0, ""}, - {"(StringSlice).Sort", Method, 0, ""}, - {"(StringSlice).Swap", Method, 0, ""}, - {"Find", Func, 19, "func(n int, cmp func(int) int) (i int, found bool)"}, - {"Float64Slice", Type, 0, ""}, - {"Float64s", Func, 0, "func(x []float64)"}, - {"Float64sAreSorted", Func, 0, "func(x []float64) bool"}, - {"IntSlice", Type, 0, ""}, - {"Interface", Type, 0, ""}, - {"Ints", Func, 0, "func(x []int)"}, - {"IntsAreSorted", Func, 0, "func(x []int) bool"}, - {"IsSorted", Func, 0, "func(data Interface) bool"}, - {"Reverse", Func, 1, "func(data Interface) Interface"}, - {"Search", Func, 0, "func(n int, f func(int) bool) int"}, - {"SearchFloat64s", Func, 0, "func(a []float64, x float64) int"}, - {"SearchInts", Func, 0, "func(a []int, x int) int"}, - {"SearchStrings", Func, 0, "func(a []string, x string) int"}, - {"Slice", Func, 8, "func(x any, less func(i int, j int) bool)"}, - {"SliceIsSorted", Func, 8, "func(x any, less func(i int, j int) bool) bool"}, - {"SliceStable", Func, 8, "func(x any, less func(i int, j int) bool)"}, - {"Sort", Func, 0, "func(data Interface)"}, - {"Stable", Func, 2, "func(data Interface)"}, - {"StringSlice", Type, 0, ""}, - {"Strings", Func, 0, "func(x []string)"}, - {"StringsAreSorted", Func, 0, "func(x []string) bool"}, - }, - "strconv": { - {"(*NumError).Error", Method, 0, ""}, - {"(*NumError).Unwrap", Method, 14, ""}, - {"AppendBool", Func, 0, "func(dst []byte, b bool) []byte"}, - {"AppendFloat", Func, 0, "func(dst []byte, f float64, fmt byte, prec int, bitSize int) []byte"}, - {"AppendInt", Func, 0, "func(dst []byte, i int64, base int) []byte"}, - {"AppendQuote", Func, 0, "func(dst []byte, s string) []byte"}, - {"AppendQuoteRune", Func, 0, "func(dst []byte, r rune) []byte"}, - {"AppendQuoteRuneToASCII", Func, 0, "func(dst []byte, r rune) []byte"}, - {"AppendQuoteRuneToGraphic", Func, 6, "func(dst []byte, r rune) []byte"}, - {"AppendQuoteToASCII", Func, 0, "func(dst []byte, s string) []byte"}, - {"AppendQuoteToGraphic", Func, 6, "func(dst []byte, s string) []byte"}, - {"AppendUint", Func, 0, "func(dst []byte, i uint64, base int) []byte"}, - {"Atoi", Func, 0, "func(s string) (int, error)"}, - {"CanBackquote", Func, 0, "func(s string) bool"}, - {"ErrRange", Var, 0, ""}, - {"ErrSyntax", Var, 0, ""}, - {"FormatBool", Func, 0, "func(b bool) string"}, - {"FormatComplex", Func, 15, "func(c complex128, fmt byte, prec int, bitSize int) string"}, - {"FormatFloat", Func, 0, "func(f float64, fmt byte, prec int, bitSize int) string"}, - {"FormatInt", Func, 0, "func(i int64, base int) string"}, - {"FormatUint", Func, 0, "func(i uint64, base int) string"}, - {"IntSize", Const, 0, ""}, - {"IsGraphic", Func, 6, "func(r rune) bool"}, - {"IsPrint", Func, 0, "func(r rune) bool"}, - {"Itoa", Func, 0, "func(i int) string"}, - {"NumError", Type, 0, ""}, - {"NumError.Err", Field, 0, ""}, - {"NumError.Func", Field, 0, ""}, - {"NumError.Num", Field, 0, ""}, - {"ParseBool", Func, 0, "func(str string) (bool, error)"}, - {"ParseComplex", Func, 15, "func(s string, bitSize int) (complex128, error)"}, - {"ParseFloat", Func, 0, "func(s string, bitSize int) (float64, error)"}, - {"ParseInt", Func, 0, "func(s string, base int, bitSize int) (i int64, err error)"}, - {"ParseUint", Func, 0, "func(s string, base int, bitSize int) (uint64, error)"}, - {"Quote", Func, 0, "func(s string) string"}, - {"QuoteRune", Func, 0, "func(r rune) string"}, - {"QuoteRuneToASCII", Func, 0, "func(r rune) string"}, - {"QuoteRuneToGraphic", Func, 6, "func(r rune) string"}, - {"QuoteToASCII", Func, 0, "func(s string) string"}, - {"QuoteToGraphic", Func, 6, "func(s string) string"}, - {"QuotedPrefix", Func, 17, "func(s string) (string, error)"}, - {"Unquote", Func, 0, "func(s string) (string, error)"}, - {"UnquoteChar", Func, 0, "func(s string, quote byte) (value rune, multibyte bool, tail string, err error)"}, - }, - "strings": { - {"(*Builder).Cap", Method, 12, ""}, - {"(*Builder).Grow", Method, 10, ""}, - {"(*Builder).Len", Method, 10, ""}, - {"(*Builder).Reset", Method, 10, ""}, - {"(*Builder).String", Method, 10, ""}, - {"(*Builder).Write", Method, 10, ""}, - {"(*Builder).WriteByte", Method, 10, ""}, - {"(*Builder).WriteRune", Method, 10, ""}, - {"(*Builder).WriteString", Method, 10, ""}, - {"(*Reader).Len", Method, 0, ""}, - {"(*Reader).Read", Method, 0, ""}, - {"(*Reader).ReadAt", Method, 0, ""}, - {"(*Reader).ReadByte", Method, 0, ""}, - {"(*Reader).ReadRune", Method, 0, ""}, - {"(*Reader).Reset", Method, 7, ""}, - {"(*Reader).Seek", Method, 0, ""}, - {"(*Reader).Size", Method, 5, ""}, - {"(*Reader).UnreadByte", Method, 0, ""}, - {"(*Reader).UnreadRune", Method, 0, ""}, - {"(*Reader).WriteTo", Method, 1, ""}, - {"(*Replacer).Replace", Method, 0, ""}, - {"(*Replacer).WriteString", Method, 0, ""}, - {"Builder", Type, 10, ""}, - {"Clone", Func, 18, "func(s string) string"}, - {"Compare", Func, 5, "func(a string, b string) int"}, - {"Contains", Func, 0, "func(s string, substr string) bool"}, - {"ContainsAny", Func, 0, "func(s string, chars string) bool"}, - {"ContainsFunc", Func, 21, "func(s string, f func(rune) bool) bool"}, - {"ContainsRune", Func, 0, "func(s string, r rune) bool"}, - {"Count", Func, 0, "func(s string, substr string) int"}, - {"Cut", Func, 18, "func(s string, sep string) (before string, after string, found bool)"}, - {"CutPrefix", Func, 20, "func(s string, prefix string) (after string, found bool)"}, - {"CutSuffix", Func, 20, "func(s string, suffix string) (before string, found bool)"}, - {"EqualFold", Func, 0, "func(s string, t string) bool"}, - {"Fields", Func, 0, "func(s string) []string"}, - {"FieldsFunc", Func, 0, "func(s string, f func(rune) bool) []string"}, - {"FieldsFuncSeq", Func, 24, "func(s string, f func(rune) bool) iter.Seq[string]"}, - {"FieldsSeq", Func, 24, "func(s string) iter.Seq[string]"}, - {"HasPrefix", Func, 0, "func(s string, prefix string) bool"}, - {"HasSuffix", Func, 0, "func(s string, suffix string) bool"}, - {"Index", Func, 0, "func(s string, substr string) int"}, - {"IndexAny", Func, 0, "func(s string, chars string) int"}, - {"IndexByte", Func, 2, "func(s string, c byte) int"}, - {"IndexFunc", Func, 0, "func(s string, f func(rune) bool) int"}, - {"IndexRune", Func, 0, "func(s string, r rune) int"}, - {"Join", Func, 0, "func(elems []string, sep string) string"}, - {"LastIndex", Func, 0, "func(s string, substr string) int"}, - {"LastIndexAny", Func, 0, "func(s string, chars string) int"}, - {"LastIndexByte", Func, 5, "func(s string, c byte) int"}, - {"LastIndexFunc", Func, 0, "func(s string, f func(rune) bool) int"}, - {"Lines", Func, 24, "func(s string) iter.Seq[string]"}, - {"Map", Func, 0, "func(mapping func(rune) rune, s string) string"}, - {"NewReader", Func, 0, "func(s string) *Reader"}, - {"NewReplacer", Func, 0, "func(oldnew ...string) *Replacer"}, - {"Reader", Type, 0, ""}, - {"Repeat", Func, 0, "func(s string, count int) string"}, - {"Replace", Func, 0, "func(s string, old string, new string, n int) string"}, - {"ReplaceAll", Func, 12, "func(s string, old string, new string) string"}, - {"Replacer", Type, 0, ""}, - {"Split", Func, 0, "func(s string, sep string) []string"}, - {"SplitAfter", Func, 0, "func(s string, sep string) []string"}, - {"SplitAfterN", Func, 0, "func(s string, sep string, n int) []string"}, - {"SplitAfterSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"}, - {"SplitN", Func, 0, "func(s string, sep string, n int) []string"}, - {"SplitSeq", Func, 24, "func(s string, sep string) iter.Seq[string]"}, - {"Title", Func, 0, "func(s string) string"}, - {"ToLower", Func, 0, "func(s string) string"}, - {"ToLowerSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, - {"ToTitle", Func, 0, "func(s string) string"}, - {"ToTitleSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, - {"ToUpper", Func, 0, "func(s string) string"}, - {"ToUpperSpecial", Func, 0, "func(c unicode.SpecialCase, s string) string"}, - {"ToValidUTF8", Func, 13, "func(s string, replacement string) string"}, - {"Trim", Func, 0, "func(s string, cutset string) string"}, - {"TrimFunc", Func, 0, "func(s string, f func(rune) bool) string"}, - {"TrimLeft", Func, 0, "func(s string, cutset string) string"}, - {"TrimLeftFunc", Func, 0, "func(s string, f func(rune) bool) string"}, - {"TrimPrefix", Func, 1, "func(s string, prefix string) string"}, - {"TrimRight", Func, 0, "func(s string, cutset string) string"}, - {"TrimRightFunc", Func, 0, "func(s string, f func(rune) bool) string"}, - {"TrimSpace", Func, 0, "func(s string) string"}, - {"TrimSuffix", Func, 1, "func(s string, suffix string) string"}, - }, - "structs": { - {"HostLayout", Type, 23, ""}, - }, - "sync": { - {"(*Cond).Broadcast", Method, 0, ""}, - {"(*Cond).Signal", Method, 0, ""}, - {"(*Cond).Wait", Method, 0, ""}, - {"(*Map).Clear", Method, 23, ""}, - {"(*Map).CompareAndDelete", Method, 20, ""}, - {"(*Map).CompareAndSwap", Method, 20, ""}, - {"(*Map).Delete", Method, 9, ""}, - {"(*Map).Load", Method, 9, ""}, - {"(*Map).LoadAndDelete", Method, 15, ""}, - {"(*Map).LoadOrStore", Method, 9, ""}, - {"(*Map).Range", Method, 9, ""}, - {"(*Map).Store", Method, 9, ""}, - {"(*Map).Swap", Method, 20, ""}, - {"(*Mutex).Lock", Method, 0, ""}, - {"(*Mutex).TryLock", Method, 18, ""}, - {"(*Mutex).Unlock", Method, 0, ""}, - {"(*Once).Do", Method, 0, ""}, - {"(*Pool).Get", Method, 3, ""}, - {"(*Pool).Put", Method, 3, ""}, - {"(*RWMutex).Lock", Method, 0, ""}, - {"(*RWMutex).RLock", Method, 0, ""}, - {"(*RWMutex).RLocker", Method, 0, ""}, - {"(*RWMutex).RUnlock", Method, 0, ""}, - {"(*RWMutex).TryLock", Method, 18, ""}, - {"(*RWMutex).TryRLock", Method, 18, ""}, - {"(*RWMutex).Unlock", Method, 0, ""}, - {"(*WaitGroup).Add", Method, 0, ""}, - {"(*WaitGroup).Done", Method, 0, ""}, - {"(*WaitGroup).Go", Method, 25, ""}, - {"(*WaitGroup).Wait", Method, 0, ""}, - {"Cond", Type, 0, ""}, - {"Cond.L", Field, 0, ""}, - {"Locker", Type, 0, ""}, - {"Map", Type, 9, ""}, - {"Mutex", Type, 0, ""}, - {"NewCond", Func, 0, "func(l Locker) *Cond"}, - {"Once", Type, 0, ""}, - {"OnceFunc", Func, 21, "func(f func()) func()"}, - {"OnceValue", Func, 21, "func[T any](f func() T) func() T"}, - {"OnceValues", Func, 21, "func[T1, T2 any](f func() (T1, T2)) func() (T1, T2)"}, - {"Pool", Type, 3, ""}, - {"Pool.New", Field, 3, ""}, - {"RWMutex", Type, 0, ""}, - {"WaitGroup", Type, 0, ""}, - }, - "sync/atomic": { - {"(*Bool).CompareAndSwap", Method, 19, ""}, - {"(*Bool).Load", Method, 19, ""}, - {"(*Bool).Store", Method, 19, ""}, - {"(*Bool).Swap", Method, 19, ""}, - {"(*Int32).Add", Method, 19, ""}, - {"(*Int32).And", Method, 23, ""}, - {"(*Int32).CompareAndSwap", Method, 19, ""}, - {"(*Int32).Load", Method, 19, ""}, - {"(*Int32).Or", Method, 23, ""}, - {"(*Int32).Store", Method, 19, ""}, - {"(*Int32).Swap", Method, 19, ""}, - {"(*Int64).Add", Method, 19, ""}, - {"(*Int64).And", Method, 23, ""}, - {"(*Int64).CompareAndSwap", Method, 19, ""}, - {"(*Int64).Load", Method, 19, ""}, - {"(*Int64).Or", Method, 23, ""}, - {"(*Int64).Store", Method, 19, ""}, - {"(*Int64).Swap", Method, 19, ""}, - {"(*Pointer).CompareAndSwap", Method, 19, ""}, - {"(*Pointer).Load", Method, 19, ""}, - {"(*Pointer).Store", Method, 19, ""}, - {"(*Pointer).Swap", Method, 19, ""}, - {"(*Uint32).Add", Method, 19, ""}, - {"(*Uint32).And", Method, 23, ""}, - {"(*Uint32).CompareAndSwap", Method, 19, ""}, - {"(*Uint32).Load", Method, 19, ""}, - {"(*Uint32).Or", Method, 23, ""}, - {"(*Uint32).Store", Method, 19, ""}, - {"(*Uint32).Swap", Method, 19, ""}, - {"(*Uint64).Add", Method, 19, ""}, - {"(*Uint64).And", Method, 23, ""}, - {"(*Uint64).CompareAndSwap", Method, 19, ""}, - {"(*Uint64).Load", Method, 19, ""}, - {"(*Uint64).Or", Method, 23, ""}, - {"(*Uint64).Store", Method, 19, ""}, - {"(*Uint64).Swap", Method, 19, ""}, - {"(*Uintptr).Add", Method, 19, ""}, - {"(*Uintptr).And", Method, 23, ""}, - {"(*Uintptr).CompareAndSwap", Method, 19, ""}, - {"(*Uintptr).Load", Method, 19, ""}, - {"(*Uintptr).Or", Method, 23, ""}, - {"(*Uintptr).Store", Method, 19, ""}, - {"(*Uintptr).Swap", Method, 19, ""}, - {"(*Value).CompareAndSwap", Method, 17, ""}, - {"(*Value).Load", Method, 4, ""}, - {"(*Value).Store", Method, 4, ""}, - {"(*Value).Swap", Method, 17, ""}, - {"AddInt32", Func, 0, "func(addr *int32, delta int32) (new int32)"}, - {"AddInt64", Func, 0, "func(addr *int64, delta int64) (new int64)"}, - {"AddUint32", Func, 0, "func(addr *uint32, delta uint32) (new uint32)"}, - {"AddUint64", Func, 0, "func(addr *uint64, delta uint64) (new uint64)"}, - {"AddUintptr", Func, 0, "func(addr *uintptr, delta uintptr) (new uintptr)"}, - {"AndInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"}, - {"AndInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"}, - {"AndUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"}, - {"AndUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"}, - {"AndUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"}, - {"Bool", Type, 19, ""}, - {"CompareAndSwapInt32", Func, 0, "func(addr *int32, old int32, new int32) (swapped bool)"}, - {"CompareAndSwapInt64", Func, 0, "func(addr *int64, old int64, new int64) (swapped bool)"}, - {"CompareAndSwapPointer", Func, 0, "func(addr *unsafe.Pointer, old unsafe.Pointer, new unsafe.Pointer) (swapped bool)"}, - {"CompareAndSwapUint32", Func, 0, "func(addr *uint32, old uint32, new uint32) (swapped bool)"}, - {"CompareAndSwapUint64", Func, 0, "func(addr *uint64, old uint64, new uint64) (swapped bool)"}, - {"CompareAndSwapUintptr", Func, 0, "func(addr *uintptr, old uintptr, new uintptr) (swapped bool)"}, - {"Int32", Type, 19, ""}, - {"Int64", Type, 19, ""}, - {"LoadInt32", Func, 0, "func(addr *int32) (val int32)"}, - {"LoadInt64", Func, 0, "func(addr *int64) (val int64)"}, - {"LoadPointer", Func, 0, "func(addr *unsafe.Pointer) (val unsafe.Pointer)"}, - {"LoadUint32", Func, 0, "func(addr *uint32) (val uint32)"}, - {"LoadUint64", Func, 0, "func(addr *uint64) (val uint64)"}, - {"LoadUintptr", Func, 0, "func(addr *uintptr) (val uintptr)"}, - {"OrInt32", Func, 23, "func(addr *int32, mask int32) (old int32)"}, - {"OrInt64", Func, 23, "func(addr *int64, mask int64) (old int64)"}, - {"OrUint32", Func, 23, "func(addr *uint32, mask uint32) (old uint32)"}, - {"OrUint64", Func, 23, "func(addr *uint64, mask uint64) (old uint64)"}, - {"OrUintptr", Func, 23, "func(addr *uintptr, mask uintptr) (old uintptr)"}, - {"Pointer", Type, 19, ""}, - {"StoreInt32", Func, 0, "func(addr *int32, val int32)"}, - {"StoreInt64", Func, 0, "func(addr *int64, val int64)"}, - {"StorePointer", Func, 0, "func(addr *unsafe.Pointer, val unsafe.Pointer)"}, - {"StoreUint32", Func, 0, "func(addr *uint32, val uint32)"}, - {"StoreUint64", Func, 0, "func(addr *uint64, val uint64)"}, - {"StoreUintptr", Func, 0, "func(addr *uintptr, val uintptr)"}, - {"SwapInt32", Func, 2, "func(addr *int32, new int32) (old int32)"}, - {"SwapInt64", Func, 2, "func(addr *int64, new int64) (old int64)"}, - {"SwapPointer", Func, 2, "func(addr *unsafe.Pointer, new unsafe.Pointer) (old unsafe.Pointer)"}, - {"SwapUint32", Func, 2, "func(addr *uint32, new uint32) (old uint32)"}, - {"SwapUint64", Func, 2, "func(addr *uint64, new uint64) (old uint64)"}, - {"SwapUintptr", Func, 2, "func(addr *uintptr, new uintptr) (old uintptr)"}, - {"Uint32", Type, 19, ""}, - {"Uint64", Type, 19, ""}, - {"Uintptr", Type, 19, ""}, - {"Value", Type, 4, ""}, - }, - "syscall": { - {"(*Cmsghdr).SetLen", Method, 0, ""}, - {"(*DLL).FindProc", Method, 0, ""}, - {"(*DLL).MustFindProc", Method, 0, ""}, - {"(*DLL).Release", Method, 0, ""}, - {"(*DLLError).Error", Method, 0, ""}, - {"(*DLLError).Unwrap", Method, 16, ""}, - {"(*Filetime).Nanoseconds", Method, 0, ""}, - {"(*Iovec).SetLen", Method, 0, ""}, - {"(*LazyDLL).Handle", Method, 0, ""}, - {"(*LazyDLL).Load", Method, 0, ""}, - {"(*LazyDLL).NewProc", Method, 0, ""}, - {"(*LazyProc).Addr", Method, 0, ""}, - {"(*LazyProc).Call", Method, 0, ""}, - {"(*LazyProc).Find", Method, 0, ""}, - {"(*Msghdr).SetControllen", Method, 0, ""}, - {"(*Proc).Addr", Method, 0, ""}, - {"(*Proc).Call", Method, 0, ""}, - {"(*PtraceRegs).PC", Method, 0, ""}, - {"(*PtraceRegs).SetPC", Method, 0, ""}, - {"(*RawSockaddrAny).Sockaddr", Method, 0, ""}, - {"(*SID).Copy", Method, 0, ""}, - {"(*SID).Len", Method, 0, ""}, - {"(*SID).LookupAccount", Method, 0, ""}, - {"(*SID).String", Method, 0, ""}, - {"(*Timespec).Nano", Method, 0, ""}, - {"(*Timespec).Unix", Method, 0, ""}, - {"(*Timeval).Nano", Method, 0, ""}, - {"(*Timeval).Nanoseconds", Method, 0, ""}, - {"(*Timeval).Unix", Method, 0, ""}, - {"(Errno).Error", Method, 0, ""}, - {"(Errno).Is", Method, 13, ""}, - {"(Errno).Temporary", Method, 0, ""}, - {"(Errno).Timeout", Method, 0, ""}, - {"(Signal).Signal", Method, 0, ""}, - {"(Signal).String", Method, 0, ""}, - {"(Token).Close", Method, 0, ""}, - {"(Token).GetTokenPrimaryGroup", Method, 0, ""}, - {"(Token).GetTokenUser", Method, 0, ""}, - {"(Token).GetUserProfileDirectory", Method, 0, ""}, - {"(WaitStatus).Continued", Method, 0, ""}, - {"(WaitStatus).CoreDump", Method, 0, ""}, - {"(WaitStatus).ExitStatus", Method, 0, ""}, - {"(WaitStatus).Exited", Method, 0, ""}, - {"(WaitStatus).Signal", Method, 0, ""}, - {"(WaitStatus).Signaled", Method, 0, ""}, - {"(WaitStatus).StopSignal", Method, 0, ""}, - {"(WaitStatus).Stopped", Method, 0, ""}, - {"(WaitStatus).TrapCause", Method, 0, ""}, - {"AF_ALG", Const, 0, ""}, - {"AF_APPLETALK", Const, 0, ""}, - {"AF_ARP", Const, 0, ""}, - {"AF_ASH", Const, 0, ""}, - {"AF_ATM", Const, 0, ""}, - {"AF_ATMPVC", Const, 0, ""}, - {"AF_ATMSVC", Const, 0, ""}, - {"AF_AX25", Const, 0, ""}, - {"AF_BLUETOOTH", Const, 0, ""}, - {"AF_BRIDGE", Const, 0, ""}, - {"AF_CAIF", Const, 0, ""}, - {"AF_CAN", Const, 0, ""}, - {"AF_CCITT", Const, 0, ""}, - {"AF_CHAOS", Const, 0, ""}, - {"AF_CNT", Const, 0, ""}, - {"AF_COIP", Const, 0, ""}, - {"AF_DATAKIT", Const, 0, ""}, - {"AF_DECnet", Const, 0, ""}, - {"AF_DLI", Const, 0, ""}, - {"AF_E164", Const, 0, ""}, - {"AF_ECMA", Const, 0, ""}, - {"AF_ECONET", Const, 0, ""}, - {"AF_ENCAP", Const, 1, ""}, - {"AF_FILE", Const, 0, ""}, - {"AF_HYLINK", Const, 0, ""}, - {"AF_IEEE80211", Const, 0, ""}, - {"AF_IEEE802154", Const, 0, ""}, - {"AF_IMPLINK", Const, 0, ""}, - {"AF_INET", Const, 0, ""}, - {"AF_INET6", Const, 0, ""}, - {"AF_INET6_SDP", Const, 3, ""}, - {"AF_INET_SDP", Const, 3, ""}, - {"AF_IPX", Const, 0, ""}, - {"AF_IRDA", Const, 0, ""}, - {"AF_ISDN", Const, 0, ""}, - {"AF_ISO", Const, 0, ""}, - {"AF_IUCV", Const, 0, ""}, - {"AF_KEY", Const, 0, ""}, - {"AF_LAT", Const, 0, ""}, - {"AF_LINK", Const, 0, ""}, - {"AF_LLC", Const, 0, ""}, - {"AF_LOCAL", Const, 0, ""}, - {"AF_MAX", Const, 0, ""}, - {"AF_MPLS", Const, 1, ""}, - {"AF_NATM", Const, 0, ""}, - {"AF_NDRV", Const, 0, ""}, - {"AF_NETBEUI", Const, 0, ""}, - {"AF_NETBIOS", Const, 0, ""}, - {"AF_NETGRAPH", Const, 0, ""}, - {"AF_NETLINK", Const, 0, ""}, - {"AF_NETROM", Const, 0, ""}, - {"AF_NS", Const, 0, ""}, - {"AF_OROUTE", Const, 1, ""}, - {"AF_OSI", Const, 0, ""}, - {"AF_PACKET", Const, 0, ""}, - {"AF_PHONET", Const, 0, ""}, - {"AF_PPP", Const, 0, ""}, - {"AF_PPPOX", Const, 0, ""}, - {"AF_PUP", Const, 0, ""}, - {"AF_RDS", Const, 0, ""}, - {"AF_RESERVED_36", Const, 0, ""}, - {"AF_ROSE", Const, 0, ""}, - {"AF_ROUTE", Const, 0, ""}, - {"AF_RXRPC", Const, 0, ""}, - {"AF_SCLUSTER", Const, 0, ""}, - {"AF_SECURITY", Const, 0, ""}, - {"AF_SIP", Const, 0, ""}, - {"AF_SLOW", Const, 0, ""}, - {"AF_SNA", Const, 0, ""}, - {"AF_SYSTEM", Const, 0, ""}, - {"AF_TIPC", Const, 0, ""}, - {"AF_UNIX", Const, 0, ""}, - {"AF_UNSPEC", Const, 0, ""}, - {"AF_UTUN", Const, 16, ""}, - {"AF_VENDOR00", Const, 0, ""}, - {"AF_VENDOR01", Const, 0, ""}, - {"AF_VENDOR02", Const, 0, ""}, - {"AF_VENDOR03", Const, 0, ""}, - {"AF_VENDOR04", Const, 0, ""}, - {"AF_VENDOR05", Const, 0, ""}, - {"AF_VENDOR06", Const, 0, ""}, - {"AF_VENDOR07", Const, 0, ""}, - {"AF_VENDOR08", Const, 0, ""}, - {"AF_VENDOR09", Const, 0, ""}, - {"AF_VENDOR10", Const, 0, ""}, - {"AF_VENDOR11", Const, 0, ""}, - {"AF_VENDOR12", Const, 0, ""}, - {"AF_VENDOR13", Const, 0, ""}, - {"AF_VENDOR14", Const, 0, ""}, - {"AF_VENDOR15", Const, 0, ""}, - {"AF_VENDOR16", Const, 0, ""}, - {"AF_VENDOR17", Const, 0, ""}, - {"AF_VENDOR18", Const, 0, ""}, - {"AF_VENDOR19", Const, 0, ""}, - {"AF_VENDOR20", Const, 0, ""}, - {"AF_VENDOR21", Const, 0, ""}, - {"AF_VENDOR22", Const, 0, ""}, - {"AF_VENDOR23", Const, 0, ""}, - {"AF_VENDOR24", Const, 0, ""}, - {"AF_VENDOR25", Const, 0, ""}, - {"AF_VENDOR26", Const, 0, ""}, - {"AF_VENDOR27", Const, 0, ""}, - {"AF_VENDOR28", Const, 0, ""}, - {"AF_VENDOR29", Const, 0, ""}, - {"AF_VENDOR30", Const, 0, ""}, - {"AF_VENDOR31", Const, 0, ""}, - {"AF_VENDOR32", Const, 0, ""}, - {"AF_VENDOR33", Const, 0, ""}, - {"AF_VENDOR34", Const, 0, ""}, - {"AF_VENDOR35", Const, 0, ""}, - {"AF_VENDOR36", Const, 0, ""}, - {"AF_VENDOR37", Const, 0, ""}, - {"AF_VENDOR38", Const, 0, ""}, - {"AF_VENDOR39", Const, 0, ""}, - {"AF_VENDOR40", Const, 0, ""}, - {"AF_VENDOR41", Const, 0, ""}, - {"AF_VENDOR42", Const, 0, ""}, - {"AF_VENDOR43", Const, 0, ""}, - {"AF_VENDOR44", Const, 0, ""}, - {"AF_VENDOR45", Const, 0, ""}, - {"AF_VENDOR46", Const, 0, ""}, - {"AF_VENDOR47", Const, 0, ""}, - {"AF_WANPIPE", Const, 0, ""}, - {"AF_X25", Const, 0, ""}, - {"AI_CANONNAME", Const, 1, ""}, - {"AI_NUMERICHOST", Const, 1, ""}, - {"AI_PASSIVE", Const, 1, ""}, - {"APPLICATION_ERROR", Const, 0, ""}, - {"ARPHRD_ADAPT", Const, 0, ""}, - {"ARPHRD_APPLETLK", Const, 0, ""}, - {"ARPHRD_ARCNET", Const, 0, ""}, - {"ARPHRD_ASH", Const, 0, ""}, - {"ARPHRD_ATM", Const, 0, ""}, - {"ARPHRD_AX25", Const, 0, ""}, - {"ARPHRD_BIF", Const, 0, ""}, - {"ARPHRD_CHAOS", Const, 0, ""}, - {"ARPHRD_CISCO", Const, 0, ""}, - {"ARPHRD_CSLIP", Const, 0, ""}, - {"ARPHRD_CSLIP6", Const, 0, ""}, - {"ARPHRD_DDCMP", Const, 0, ""}, - {"ARPHRD_DLCI", Const, 0, ""}, - {"ARPHRD_ECONET", Const, 0, ""}, - {"ARPHRD_EETHER", Const, 0, ""}, - {"ARPHRD_ETHER", Const, 0, ""}, - {"ARPHRD_EUI64", Const, 0, ""}, - {"ARPHRD_FCAL", Const, 0, ""}, - {"ARPHRD_FCFABRIC", Const, 0, ""}, - {"ARPHRD_FCPL", Const, 0, ""}, - {"ARPHRD_FCPP", Const, 0, ""}, - {"ARPHRD_FDDI", Const, 0, ""}, - {"ARPHRD_FRAD", Const, 0, ""}, - {"ARPHRD_FRELAY", Const, 1, ""}, - {"ARPHRD_HDLC", Const, 0, ""}, - {"ARPHRD_HIPPI", Const, 0, ""}, - {"ARPHRD_HWX25", Const, 0, ""}, - {"ARPHRD_IEEE1394", Const, 0, ""}, - {"ARPHRD_IEEE802", Const, 0, ""}, - {"ARPHRD_IEEE80211", Const, 0, ""}, - {"ARPHRD_IEEE80211_PRISM", Const, 0, ""}, - {"ARPHRD_IEEE80211_RADIOTAP", Const, 0, ""}, - {"ARPHRD_IEEE802154", Const, 0, ""}, - {"ARPHRD_IEEE802154_PHY", Const, 0, ""}, - {"ARPHRD_IEEE802_TR", Const, 0, ""}, - {"ARPHRD_INFINIBAND", Const, 0, ""}, - {"ARPHRD_IPDDP", Const, 0, ""}, - {"ARPHRD_IPGRE", Const, 0, ""}, - {"ARPHRD_IRDA", Const, 0, ""}, - {"ARPHRD_LAPB", Const, 0, ""}, - {"ARPHRD_LOCALTLK", Const, 0, ""}, - {"ARPHRD_LOOPBACK", Const, 0, ""}, - {"ARPHRD_METRICOM", Const, 0, ""}, - {"ARPHRD_NETROM", Const, 0, ""}, - {"ARPHRD_NONE", Const, 0, ""}, - {"ARPHRD_PIMREG", Const, 0, ""}, - {"ARPHRD_PPP", Const, 0, ""}, - {"ARPHRD_PRONET", Const, 0, ""}, - {"ARPHRD_RAWHDLC", Const, 0, ""}, - {"ARPHRD_ROSE", Const, 0, ""}, - {"ARPHRD_RSRVD", Const, 0, ""}, - {"ARPHRD_SIT", Const, 0, ""}, - {"ARPHRD_SKIP", Const, 0, ""}, - {"ARPHRD_SLIP", Const, 0, ""}, - {"ARPHRD_SLIP6", Const, 0, ""}, - {"ARPHRD_STRIP", Const, 1, ""}, - {"ARPHRD_TUNNEL", Const, 0, ""}, - {"ARPHRD_TUNNEL6", Const, 0, ""}, - {"ARPHRD_VOID", Const, 0, ""}, - {"ARPHRD_X25", Const, 0, ""}, - {"AUTHTYPE_CLIENT", Const, 0, ""}, - {"AUTHTYPE_SERVER", Const, 0, ""}, - {"Accept", Func, 0, "func(fd int) (nfd int, sa Sockaddr, err error)"}, - {"Accept4", Func, 1, "func(fd int, flags int) (nfd int, sa Sockaddr, err error)"}, - {"AcceptEx", Func, 0, ""}, - {"Access", Func, 0, "func(path string, mode uint32) (err error)"}, - {"Acct", Func, 0, "func(path string) (err error)"}, - {"AddrinfoW", Type, 1, ""}, - {"AddrinfoW.Addr", Field, 1, ""}, - {"AddrinfoW.Addrlen", Field, 1, ""}, - {"AddrinfoW.Canonname", Field, 1, ""}, - {"AddrinfoW.Family", Field, 1, ""}, - {"AddrinfoW.Flags", Field, 1, ""}, - {"AddrinfoW.Next", Field, 1, ""}, - {"AddrinfoW.Protocol", Field, 1, ""}, - {"AddrinfoW.Socktype", Field, 1, ""}, - {"Adjtime", Func, 0, ""}, - {"Adjtimex", Func, 0, "func(buf *Timex) (state int, err error)"}, - {"AllThreadsSyscall", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"AllThreadsSyscall6", Func, 16, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"AttachLsf", Func, 0, "func(fd int, i []SockFilter) error"}, - {"B0", Const, 0, ""}, - {"B1000000", Const, 0, ""}, - {"B110", Const, 0, ""}, - {"B115200", Const, 0, ""}, - {"B1152000", Const, 0, ""}, - {"B1200", Const, 0, ""}, - {"B134", Const, 0, ""}, - {"B14400", Const, 1, ""}, - {"B150", Const, 0, ""}, - {"B1500000", Const, 0, ""}, - {"B1800", Const, 0, ""}, - {"B19200", Const, 0, ""}, - {"B200", Const, 0, ""}, - {"B2000000", Const, 0, ""}, - {"B230400", Const, 0, ""}, - {"B2400", Const, 0, ""}, - {"B2500000", Const, 0, ""}, - {"B28800", Const, 1, ""}, - {"B300", Const, 0, ""}, - {"B3000000", Const, 0, ""}, - {"B3500000", Const, 0, ""}, - {"B38400", Const, 0, ""}, - {"B4000000", Const, 0, ""}, - {"B460800", Const, 0, ""}, - {"B4800", Const, 0, ""}, - {"B50", Const, 0, ""}, - {"B500000", Const, 0, ""}, - {"B57600", Const, 0, ""}, - {"B576000", Const, 0, ""}, - {"B600", Const, 0, ""}, - {"B7200", Const, 1, ""}, - {"B75", Const, 0, ""}, - {"B76800", Const, 1, ""}, - {"B921600", Const, 0, ""}, - {"B9600", Const, 0, ""}, - {"BASE_PROTOCOL", Const, 2, ""}, - {"BIOCFEEDBACK", Const, 0, ""}, - {"BIOCFLUSH", Const, 0, ""}, - {"BIOCGBLEN", Const, 0, ""}, - {"BIOCGDIRECTION", Const, 0, ""}, - {"BIOCGDIRFILT", Const, 1, ""}, - {"BIOCGDLT", Const, 0, ""}, - {"BIOCGDLTLIST", Const, 0, ""}, - {"BIOCGETBUFMODE", Const, 0, ""}, - {"BIOCGETIF", Const, 0, ""}, - {"BIOCGETZMAX", Const, 0, ""}, - {"BIOCGFEEDBACK", Const, 1, ""}, - {"BIOCGFILDROP", Const, 1, ""}, - {"BIOCGHDRCMPLT", Const, 0, ""}, - {"BIOCGRSIG", Const, 0, ""}, - {"BIOCGRTIMEOUT", Const, 0, ""}, - {"BIOCGSEESENT", Const, 0, ""}, - {"BIOCGSTATS", Const, 0, ""}, - {"BIOCGSTATSOLD", Const, 1, ""}, - {"BIOCGTSTAMP", Const, 1, ""}, - {"BIOCIMMEDIATE", Const, 0, ""}, - {"BIOCLOCK", Const, 0, ""}, - {"BIOCPROMISC", Const, 0, ""}, - {"BIOCROTZBUF", Const, 0, ""}, - {"BIOCSBLEN", Const, 0, ""}, - {"BIOCSDIRECTION", Const, 0, ""}, - {"BIOCSDIRFILT", Const, 1, ""}, - {"BIOCSDLT", Const, 0, ""}, - {"BIOCSETBUFMODE", Const, 0, ""}, - {"BIOCSETF", Const, 0, ""}, - {"BIOCSETFNR", Const, 0, ""}, - {"BIOCSETIF", Const, 0, ""}, - {"BIOCSETWF", Const, 0, ""}, - {"BIOCSETZBUF", Const, 0, ""}, - {"BIOCSFEEDBACK", Const, 1, ""}, - {"BIOCSFILDROP", Const, 1, ""}, - {"BIOCSHDRCMPLT", Const, 0, ""}, - {"BIOCSRSIG", Const, 0, ""}, - {"BIOCSRTIMEOUT", Const, 0, ""}, - {"BIOCSSEESENT", Const, 0, ""}, - {"BIOCSTCPF", Const, 1, ""}, - {"BIOCSTSTAMP", Const, 1, ""}, - {"BIOCSUDPF", Const, 1, ""}, - {"BIOCVERSION", Const, 0, ""}, - {"BPF_A", Const, 0, ""}, - {"BPF_ABS", Const, 0, ""}, - {"BPF_ADD", Const, 0, ""}, - {"BPF_ALIGNMENT", Const, 0, ""}, - {"BPF_ALIGNMENT32", Const, 1, ""}, - {"BPF_ALU", Const, 0, ""}, - {"BPF_AND", Const, 0, ""}, - {"BPF_B", Const, 0, ""}, - {"BPF_BUFMODE_BUFFER", Const, 0, ""}, - {"BPF_BUFMODE_ZBUF", Const, 0, ""}, - {"BPF_DFLTBUFSIZE", Const, 1, ""}, - {"BPF_DIRECTION_IN", Const, 1, ""}, - {"BPF_DIRECTION_OUT", Const, 1, ""}, - {"BPF_DIV", Const, 0, ""}, - {"BPF_H", Const, 0, ""}, - {"BPF_IMM", Const, 0, ""}, - {"BPF_IND", Const, 0, ""}, - {"BPF_JA", Const, 0, ""}, - {"BPF_JEQ", Const, 0, ""}, - {"BPF_JGE", Const, 0, ""}, - {"BPF_JGT", Const, 0, ""}, - {"BPF_JMP", Const, 0, ""}, - {"BPF_JSET", Const, 0, ""}, - {"BPF_K", Const, 0, ""}, - {"BPF_LD", Const, 0, ""}, - {"BPF_LDX", Const, 0, ""}, - {"BPF_LEN", Const, 0, ""}, - {"BPF_LSH", Const, 0, ""}, - {"BPF_MAJOR_VERSION", Const, 0, ""}, - {"BPF_MAXBUFSIZE", Const, 0, ""}, - {"BPF_MAXINSNS", Const, 0, ""}, - {"BPF_MEM", Const, 0, ""}, - {"BPF_MEMWORDS", Const, 0, ""}, - {"BPF_MINBUFSIZE", Const, 0, ""}, - {"BPF_MINOR_VERSION", Const, 0, ""}, - {"BPF_MISC", Const, 0, ""}, - {"BPF_MSH", Const, 0, ""}, - {"BPF_MUL", Const, 0, ""}, - {"BPF_NEG", Const, 0, ""}, - {"BPF_OR", Const, 0, ""}, - {"BPF_RELEASE", Const, 0, ""}, - {"BPF_RET", Const, 0, ""}, - {"BPF_RSH", Const, 0, ""}, - {"BPF_ST", Const, 0, ""}, - {"BPF_STX", Const, 0, ""}, - {"BPF_SUB", Const, 0, ""}, - {"BPF_TAX", Const, 0, ""}, - {"BPF_TXA", Const, 0, ""}, - {"BPF_T_BINTIME", Const, 1, ""}, - {"BPF_T_BINTIME_FAST", Const, 1, ""}, - {"BPF_T_BINTIME_MONOTONIC", Const, 1, ""}, - {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1, ""}, - {"BPF_T_FAST", Const, 1, ""}, - {"BPF_T_FLAG_MASK", Const, 1, ""}, - {"BPF_T_FORMAT_MASK", Const, 1, ""}, - {"BPF_T_MICROTIME", Const, 1, ""}, - {"BPF_T_MICROTIME_FAST", Const, 1, ""}, - {"BPF_T_MICROTIME_MONOTONIC", Const, 1, ""}, - {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1, ""}, - {"BPF_T_MONOTONIC", Const, 1, ""}, - {"BPF_T_MONOTONIC_FAST", Const, 1, ""}, - {"BPF_T_NANOTIME", Const, 1, ""}, - {"BPF_T_NANOTIME_FAST", Const, 1, ""}, - {"BPF_T_NANOTIME_MONOTONIC", Const, 1, ""}, - {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1, ""}, - {"BPF_T_NONE", Const, 1, ""}, - {"BPF_T_NORMAL", Const, 1, ""}, - {"BPF_W", Const, 0, ""}, - {"BPF_X", Const, 0, ""}, - {"BRKINT", Const, 0, ""}, - {"Bind", Func, 0, "func(fd int, sa Sockaddr) (err error)"}, - {"BindToDevice", Func, 0, "func(fd int, device string) (err error)"}, - {"BpfBuflen", Func, 0, ""}, - {"BpfDatalink", Func, 0, ""}, - {"BpfHdr", Type, 0, ""}, - {"BpfHdr.Caplen", Field, 0, ""}, - {"BpfHdr.Datalen", Field, 0, ""}, - {"BpfHdr.Hdrlen", Field, 0, ""}, - {"BpfHdr.Pad_cgo_0", Field, 0, ""}, - {"BpfHdr.Tstamp", Field, 0, ""}, - {"BpfHeadercmpl", Func, 0, ""}, - {"BpfInsn", Type, 0, ""}, - {"BpfInsn.Code", Field, 0, ""}, - {"BpfInsn.Jf", Field, 0, ""}, - {"BpfInsn.Jt", Field, 0, ""}, - {"BpfInsn.K", Field, 0, ""}, - {"BpfInterface", Func, 0, ""}, - {"BpfJump", Func, 0, ""}, - {"BpfProgram", Type, 0, ""}, - {"BpfProgram.Insns", Field, 0, ""}, - {"BpfProgram.Len", Field, 0, ""}, - {"BpfProgram.Pad_cgo_0", Field, 0, ""}, - {"BpfStat", Type, 0, ""}, - {"BpfStat.Capt", Field, 2, ""}, - {"BpfStat.Drop", Field, 0, ""}, - {"BpfStat.Padding", Field, 2, ""}, - {"BpfStat.Recv", Field, 0, ""}, - {"BpfStats", Func, 0, ""}, - {"BpfStmt", Func, 0, ""}, - {"BpfTimeout", Func, 0, ""}, - {"BpfTimeval", Type, 2, ""}, - {"BpfTimeval.Sec", Field, 2, ""}, - {"BpfTimeval.Usec", Field, 2, ""}, - {"BpfVersion", Type, 0, ""}, - {"BpfVersion.Major", Field, 0, ""}, - {"BpfVersion.Minor", Field, 0, ""}, - {"BpfZbuf", Type, 0, ""}, - {"BpfZbuf.Bufa", Field, 0, ""}, - {"BpfZbuf.Bufb", Field, 0, ""}, - {"BpfZbuf.Buflen", Field, 0, ""}, - {"BpfZbufHeader", Type, 0, ""}, - {"BpfZbufHeader.Kernel_gen", Field, 0, ""}, - {"BpfZbufHeader.Kernel_len", Field, 0, ""}, - {"BpfZbufHeader.User_gen", Field, 0, ""}, - {"BpfZbufHeader.X_bzh_pad", Field, 0, ""}, - {"ByHandleFileInformation", Type, 0, ""}, - {"ByHandleFileInformation.CreationTime", Field, 0, ""}, - {"ByHandleFileInformation.FileAttributes", Field, 0, ""}, - {"ByHandleFileInformation.FileIndexHigh", Field, 0, ""}, - {"ByHandleFileInformation.FileIndexLow", Field, 0, ""}, - {"ByHandleFileInformation.FileSizeHigh", Field, 0, ""}, - {"ByHandleFileInformation.FileSizeLow", Field, 0, ""}, - {"ByHandleFileInformation.LastAccessTime", Field, 0, ""}, - {"ByHandleFileInformation.LastWriteTime", Field, 0, ""}, - {"ByHandleFileInformation.NumberOfLinks", Field, 0, ""}, - {"ByHandleFileInformation.VolumeSerialNumber", Field, 0, ""}, - {"BytePtrFromString", Func, 1, "func(s string) (*byte, error)"}, - {"ByteSliceFromString", Func, 1, "func(s string) ([]byte, error)"}, - {"CCR0_FLUSH", Const, 1, ""}, - {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0, ""}, - {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0, ""}, - {"CERT_CHAIN_POLICY_BASE", Const, 0, ""}, - {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0, ""}, - {"CERT_CHAIN_POLICY_EV", Const, 0, ""}, - {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0, ""}, - {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0, ""}, - {"CERT_CHAIN_POLICY_SSL", Const, 0, ""}, - {"CERT_E_CN_NO_MATCH", Const, 0, ""}, - {"CERT_E_EXPIRED", Const, 0, ""}, - {"CERT_E_PURPOSE", Const, 0, ""}, - {"CERT_E_ROLE", Const, 0, ""}, - {"CERT_E_UNTRUSTEDROOT", Const, 0, ""}, - {"CERT_STORE_ADD_ALWAYS", Const, 0, ""}, - {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0, ""}, - {"CERT_STORE_PROV_MEMORY", Const, 0, ""}, - {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0, ""}, - {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0, ""}, - {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0, ""}, - {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0, ""}, - {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0, ""}, - {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0, ""}, - {"CERT_TRUST_INVALID_EXTENSION", Const, 0, ""}, - {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0, ""}, - {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0, ""}, - {"CERT_TRUST_IS_CYCLIC", Const, 0, ""}, - {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0, ""}, - {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0, ""}, - {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0, ""}, - {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0, ""}, - {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0, ""}, - {"CERT_TRUST_IS_REVOKED", Const, 0, ""}, - {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0, ""}, - {"CERT_TRUST_NO_ERROR", Const, 0, ""}, - {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0, ""}, - {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0, ""}, - {"CFLUSH", Const, 1, ""}, - {"CLOCAL", Const, 0, ""}, - {"CLONE_CHILD_CLEARTID", Const, 2, ""}, - {"CLONE_CHILD_SETTID", Const, 2, ""}, - {"CLONE_CLEAR_SIGHAND", Const, 20, ""}, - {"CLONE_CSIGNAL", Const, 3, ""}, - {"CLONE_DETACHED", Const, 2, ""}, - {"CLONE_FILES", Const, 2, ""}, - {"CLONE_FS", Const, 2, ""}, - {"CLONE_INTO_CGROUP", Const, 20, ""}, - {"CLONE_IO", Const, 2, ""}, - {"CLONE_NEWCGROUP", Const, 20, ""}, - {"CLONE_NEWIPC", Const, 2, ""}, - {"CLONE_NEWNET", Const, 2, ""}, - {"CLONE_NEWNS", Const, 2, ""}, - {"CLONE_NEWPID", Const, 2, ""}, - {"CLONE_NEWTIME", Const, 20, ""}, - {"CLONE_NEWUSER", Const, 2, ""}, - {"CLONE_NEWUTS", Const, 2, ""}, - {"CLONE_PARENT", Const, 2, ""}, - {"CLONE_PARENT_SETTID", Const, 2, ""}, - {"CLONE_PID", Const, 3, ""}, - {"CLONE_PIDFD", Const, 20, ""}, - {"CLONE_PTRACE", Const, 2, ""}, - {"CLONE_SETTLS", Const, 2, ""}, - {"CLONE_SIGHAND", Const, 2, ""}, - {"CLONE_SYSVSEM", Const, 2, ""}, - {"CLONE_THREAD", Const, 2, ""}, - {"CLONE_UNTRACED", Const, 2, ""}, - {"CLONE_VFORK", Const, 2, ""}, - {"CLONE_VM", Const, 2, ""}, - {"CPUID_CFLUSH", Const, 1, ""}, - {"CREAD", Const, 0, ""}, - {"CREATE_ALWAYS", Const, 0, ""}, - {"CREATE_NEW", Const, 0, ""}, - {"CREATE_NEW_PROCESS_GROUP", Const, 1, ""}, - {"CREATE_UNICODE_ENVIRONMENT", Const, 0, ""}, - {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0, ""}, - {"CRYPT_DELETEKEYSET", Const, 0, ""}, - {"CRYPT_MACHINE_KEYSET", Const, 0, ""}, - {"CRYPT_NEWKEYSET", Const, 0, ""}, - {"CRYPT_SILENT", Const, 0, ""}, - {"CRYPT_VERIFYCONTEXT", Const, 0, ""}, - {"CS5", Const, 0, ""}, - {"CS6", Const, 0, ""}, - {"CS7", Const, 0, ""}, - {"CS8", Const, 0, ""}, - {"CSIZE", Const, 0, ""}, - {"CSTART", Const, 1, ""}, - {"CSTATUS", Const, 1, ""}, - {"CSTOP", Const, 1, ""}, - {"CSTOPB", Const, 0, ""}, - {"CSUSP", Const, 1, ""}, - {"CTL_MAXNAME", Const, 0, ""}, - {"CTL_NET", Const, 0, ""}, - {"CTL_QUERY", Const, 1, ""}, - {"CTRL_BREAK_EVENT", Const, 1, ""}, - {"CTRL_CLOSE_EVENT", Const, 14, ""}, - {"CTRL_C_EVENT", Const, 1, ""}, - {"CTRL_LOGOFF_EVENT", Const, 14, ""}, - {"CTRL_SHUTDOWN_EVENT", Const, 14, ""}, - {"CancelIo", Func, 0, ""}, - {"CancelIoEx", Func, 1, ""}, - {"CertAddCertificateContextToStore", Func, 0, ""}, - {"CertChainContext", Type, 0, ""}, - {"CertChainContext.ChainCount", Field, 0, ""}, - {"CertChainContext.Chains", Field, 0, ""}, - {"CertChainContext.HasRevocationFreshnessTime", Field, 0, ""}, - {"CertChainContext.LowerQualityChainCount", Field, 0, ""}, - {"CertChainContext.LowerQualityChains", Field, 0, ""}, - {"CertChainContext.RevocationFreshnessTime", Field, 0, ""}, - {"CertChainContext.Size", Field, 0, ""}, - {"CertChainContext.TrustStatus", Field, 0, ""}, - {"CertChainElement", Type, 0, ""}, - {"CertChainElement.ApplicationUsage", Field, 0, ""}, - {"CertChainElement.CertContext", Field, 0, ""}, - {"CertChainElement.ExtendedErrorInfo", Field, 0, ""}, - {"CertChainElement.IssuanceUsage", Field, 0, ""}, - {"CertChainElement.RevocationInfo", Field, 0, ""}, - {"CertChainElement.Size", Field, 0, ""}, - {"CertChainElement.TrustStatus", Field, 0, ""}, - {"CertChainPara", Type, 0, ""}, - {"CertChainPara.CacheResync", Field, 0, ""}, - {"CertChainPara.CheckRevocationFreshnessTime", Field, 0, ""}, - {"CertChainPara.RequestedUsage", Field, 0, ""}, - {"CertChainPara.RequstedIssuancePolicy", Field, 0, ""}, - {"CertChainPara.RevocationFreshnessTime", Field, 0, ""}, - {"CertChainPara.Size", Field, 0, ""}, - {"CertChainPara.URLRetrievalTimeout", Field, 0, ""}, - {"CertChainPolicyPara", Type, 0, ""}, - {"CertChainPolicyPara.ExtraPolicyPara", Field, 0, ""}, - {"CertChainPolicyPara.Flags", Field, 0, ""}, - {"CertChainPolicyPara.Size", Field, 0, ""}, - {"CertChainPolicyStatus", Type, 0, ""}, - {"CertChainPolicyStatus.ChainIndex", Field, 0, ""}, - {"CertChainPolicyStatus.ElementIndex", Field, 0, ""}, - {"CertChainPolicyStatus.Error", Field, 0, ""}, - {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0, ""}, - {"CertChainPolicyStatus.Size", Field, 0, ""}, - {"CertCloseStore", Func, 0, ""}, - {"CertContext", Type, 0, ""}, - {"CertContext.CertInfo", Field, 0, ""}, - {"CertContext.EncodedCert", Field, 0, ""}, - {"CertContext.EncodingType", Field, 0, ""}, - {"CertContext.Length", Field, 0, ""}, - {"CertContext.Store", Field, 0, ""}, - {"CertCreateCertificateContext", Func, 0, ""}, - {"CertEnhKeyUsage", Type, 0, ""}, - {"CertEnhKeyUsage.Length", Field, 0, ""}, - {"CertEnhKeyUsage.UsageIdentifiers", Field, 0, ""}, - {"CertEnumCertificatesInStore", Func, 0, ""}, - {"CertFreeCertificateChain", Func, 0, ""}, - {"CertFreeCertificateContext", Func, 0, ""}, - {"CertGetCertificateChain", Func, 0, ""}, - {"CertInfo", Type, 11, ""}, - {"CertOpenStore", Func, 0, ""}, - {"CertOpenSystemStore", Func, 0, ""}, - {"CertRevocationCrlInfo", Type, 11, ""}, - {"CertRevocationInfo", Type, 0, ""}, - {"CertRevocationInfo.CrlInfo", Field, 0, ""}, - {"CertRevocationInfo.FreshnessTime", Field, 0, ""}, - {"CertRevocationInfo.HasFreshnessTime", Field, 0, ""}, - {"CertRevocationInfo.OidSpecificInfo", Field, 0, ""}, - {"CertRevocationInfo.RevocationOid", Field, 0, ""}, - {"CertRevocationInfo.RevocationResult", Field, 0, ""}, - {"CertRevocationInfo.Size", Field, 0, ""}, - {"CertSimpleChain", Type, 0, ""}, - {"CertSimpleChain.Elements", Field, 0, ""}, - {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0, ""}, - {"CertSimpleChain.NumElements", Field, 0, ""}, - {"CertSimpleChain.RevocationFreshnessTime", Field, 0, ""}, - {"CertSimpleChain.Size", Field, 0, ""}, - {"CertSimpleChain.TrustListInfo", Field, 0, ""}, - {"CertSimpleChain.TrustStatus", Field, 0, ""}, - {"CertTrustListInfo", Type, 11, ""}, - {"CertTrustStatus", Type, 0, ""}, - {"CertTrustStatus.ErrorStatus", Field, 0, ""}, - {"CertTrustStatus.InfoStatus", Field, 0, ""}, - {"CertUsageMatch", Type, 0, ""}, - {"CertUsageMatch.Type", Field, 0, ""}, - {"CertUsageMatch.Usage", Field, 0, ""}, - {"CertVerifyCertificateChainPolicy", Func, 0, ""}, - {"Chdir", Func, 0, "func(path string) (err error)"}, - {"CheckBpfVersion", Func, 0, ""}, - {"Chflags", Func, 0, ""}, - {"Chmod", Func, 0, "func(path string, mode uint32) (err error)"}, - {"Chown", Func, 0, "func(path string, uid int, gid int) (err error)"}, - {"Chroot", Func, 0, "func(path string) (err error)"}, - {"Clearenv", Func, 0, "func()"}, - {"Close", Func, 0, "func(fd int) (err error)"}, - {"CloseHandle", Func, 0, ""}, - {"CloseOnExec", Func, 0, "func(fd int)"}, - {"Closesocket", Func, 0, ""}, - {"CmsgLen", Func, 0, "func(datalen int) int"}, - {"CmsgSpace", Func, 0, "func(datalen int) int"}, - {"Cmsghdr", Type, 0, ""}, - {"Cmsghdr.Len", Field, 0, ""}, - {"Cmsghdr.Level", Field, 0, ""}, - {"Cmsghdr.Type", Field, 0, ""}, - {"Cmsghdr.X__cmsg_data", Field, 0, ""}, - {"CommandLineToArgv", Func, 0, ""}, - {"ComputerName", Func, 0, ""}, - {"Conn", Type, 9, ""}, - {"Connect", Func, 0, "func(fd int, sa Sockaddr) (err error)"}, - {"ConnectEx", Func, 1, ""}, - {"ConvertSidToStringSid", Func, 0, ""}, - {"ConvertStringSidToSid", Func, 0, ""}, - {"CopySid", Func, 0, ""}, - {"Creat", Func, 0, "func(path string, mode uint32) (fd int, err error)"}, - {"CreateDirectory", Func, 0, ""}, - {"CreateFile", Func, 0, ""}, - {"CreateFileMapping", Func, 0, ""}, - {"CreateHardLink", Func, 4, ""}, - {"CreateIoCompletionPort", Func, 0, ""}, - {"CreatePipe", Func, 0, ""}, - {"CreateProcess", Func, 0, ""}, - {"CreateProcessAsUser", Func, 10, ""}, - {"CreateSymbolicLink", Func, 4, ""}, - {"CreateToolhelp32Snapshot", Func, 4, ""}, - {"Credential", Type, 0, ""}, - {"Credential.Gid", Field, 0, ""}, - {"Credential.Groups", Field, 0, ""}, - {"Credential.NoSetGroups", Field, 9, ""}, - {"Credential.Uid", Field, 0, ""}, - {"CryptAcquireContext", Func, 0, ""}, - {"CryptGenRandom", Func, 0, ""}, - {"CryptReleaseContext", Func, 0, ""}, - {"DIOCBSFLUSH", Const, 1, ""}, - {"DIOCOSFPFLUSH", Const, 1, ""}, - {"DLL", Type, 0, ""}, - {"DLL.Handle", Field, 0, ""}, - {"DLL.Name", Field, 0, ""}, - {"DLLError", Type, 0, ""}, - {"DLLError.Err", Field, 0, ""}, - {"DLLError.Msg", Field, 0, ""}, - {"DLLError.ObjName", Field, 0, ""}, - {"DLT_A429", Const, 0, ""}, - {"DLT_A653_ICM", Const, 0, ""}, - {"DLT_AIRONET_HEADER", Const, 0, ""}, - {"DLT_AOS", Const, 1, ""}, - {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0, ""}, - {"DLT_ARCNET", Const, 0, ""}, - {"DLT_ARCNET_LINUX", Const, 0, ""}, - {"DLT_ATM_CLIP", Const, 0, ""}, - {"DLT_ATM_RFC1483", Const, 0, ""}, - {"DLT_AURORA", Const, 0, ""}, - {"DLT_AX25", Const, 0, ""}, - {"DLT_AX25_KISS", Const, 0, ""}, - {"DLT_BACNET_MS_TP", Const, 0, ""}, - {"DLT_BLUETOOTH_HCI_H4", Const, 0, ""}, - {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0, ""}, - {"DLT_CAN20B", Const, 0, ""}, - {"DLT_CAN_SOCKETCAN", Const, 1, ""}, - {"DLT_CHAOS", Const, 0, ""}, - {"DLT_CHDLC", Const, 0, ""}, - {"DLT_CISCO_IOS", Const, 0, ""}, - {"DLT_C_HDLC", Const, 0, ""}, - {"DLT_C_HDLC_WITH_DIR", Const, 0, ""}, - {"DLT_DBUS", Const, 1, ""}, - {"DLT_DECT", Const, 1, ""}, - {"DLT_DOCSIS", Const, 0, ""}, - {"DLT_DVB_CI", Const, 1, ""}, - {"DLT_ECONET", Const, 0, ""}, - {"DLT_EN10MB", Const, 0, ""}, - {"DLT_EN3MB", Const, 0, ""}, - {"DLT_ENC", Const, 0, ""}, - {"DLT_ERF", Const, 0, ""}, - {"DLT_ERF_ETH", Const, 0, ""}, - {"DLT_ERF_POS", Const, 0, ""}, - {"DLT_FC_2", Const, 1, ""}, - {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1, ""}, - {"DLT_FDDI", Const, 0, ""}, - {"DLT_FLEXRAY", Const, 0, ""}, - {"DLT_FRELAY", Const, 0, ""}, - {"DLT_FRELAY_WITH_DIR", Const, 0, ""}, - {"DLT_GCOM_SERIAL", Const, 0, ""}, - {"DLT_GCOM_T1E1", Const, 0, ""}, - {"DLT_GPF_F", Const, 0, ""}, - {"DLT_GPF_T", Const, 0, ""}, - {"DLT_GPRS_LLC", Const, 0, ""}, - {"DLT_GSMTAP_ABIS", Const, 1, ""}, - {"DLT_GSMTAP_UM", Const, 1, ""}, - {"DLT_HDLC", Const, 1, ""}, - {"DLT_HHDLC", Const, 0, ""}, - {"DLT_HIPPI", Const, 1, ""}, - {"DLT_IBM_SN", Const, 0, ""}, - {"DLT_IBM_SP", Const, 0, ""}, - {"DLT_IEEE802", Const, 0, ""}, - {"DLT_IEEE802_11", Const, 0, ""}, - {"DLT_IEEE802_11_RADIO", Const, 0, ""}, - {"DLT_IEEE802_11_RADIO_AVS", Const, 0, ""}, - {"DLT_IEEE802_15_4", Const, 0, ""}, - {"DLT_IEEE802_15_4_LINUX", Const, 0, ""}, - {"DLT_IEEE802_15_4_NOFCS", Const, 1, ""}, - {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0, ""}, - {"DLT_IEEE802_16_MAC_CPS", Const, 0, ""}, - {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0, ""}, - {"DLT_IPFILTER", Const, 0, ""}, - {"DLT_IPMB", Const, 0, ""}, - {"DLT_IPMB_LINUX", Const, 0, ""}, - {"DLT_IPNET", Const, 1, ""}, - {"DLT_IPOIB", Const, 1, ""}, - {"DLT_IPV4", Const, 1, ""}, - {"DLT_IPV6", Const, 1, ""}, - {"DLT_IP_OVER_FC", Const, 0, ""}, - {"DLT_JUNIPER_ATM1", Const, 0, ""}, - {"DLT_JUNIPER_ATM2", Const, 0, ""}, - {"DLT_JUNIPER_ATM_CEMIC", Const, 1, ""}, - {"DLT_JUNIPER_CHDLC", Const, 0, ""}, - {"DLT_JUNIPER_ES", Const, 0, ""}, - {"DLT_JUNIPER_ETHER", Const, 0, ""}, - {"DLT_JUNIPER_FIBRECHANNEL", Const, 1, ""}, - {"DLT_JUNIPER_FRELAY", Const, 0, ""}, - {"DLT_JUNIPER_GGSN", Const, 0, ""}, - {"DLT_JUNIPER_ISM", Const, 0, ""}, - {"DLT_JUNIPER_MFR", Const, 0, ""}, - {"DLT_JUNIPER_MLFR", Const, 0, ""}, - {"DLT_JUNIPER_MLPPP", Const, 0, ""}, - {"DLT_JUNIPER_MONITOR", Const, 0, ""}, - {"DLT_JUNIPER_PIC_PEER", Const, 0, ""}, - {"DLT_JUNIPER_PPP", Const, 0, ""}, - {"DLT_JUNIPER_PPPOE", Const, 0, ""}, - {"DLT_JUNIPER_PPPOE_ATM", Const, 0, ""}, - {"DLT_JUNIPER_SERVICES", Const, 0, ""}, - {"DLT_JUNIPER_SRX_E2E", Const, 1, ""}, - {"DLT_JUNIPER_ST", Const, 0, ""}, - {"DLT_JUNIPER_VP", Const, 0, ""}, - {"DLT_JUNIPER_VS", Const, 1, ""}, - {"DLT_LAPB_WITH_DIR", Const, 0, ""}, - {"DLT_LAPD", Const, 0, ""}, - {"DLT_LIN", Const, 0, ""}, - {"DLT_LINUX_EVDEV", Const, 1, ""}, - {"DLT_LINUX_IRDA", Const, 0, ""}, - {"DLT_LINUX_LAPD", Const, 0, ""}, - {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0, ""}, - {"DLT_LINUX_SLL", Const, 0, ""}, - {"DLT_LOOP", Const, 0, ""}, - {"DLT_LTALK", Const, 0, ""}, - {"DLT_MATCHING_MAX", Const, 1, ""}, - {"DLT_MATCHING_MIN", Const, 1, ""}, - {"DLT_MFR", Const, 0, ""}, - {"DLT_MOST", Const, 0, ""}, - {"DLT_MPEG_2_TS", Const, 1, ""}, - {"DLT_MPLS", Const, 1, ""}, - {"DLT_MTP2", Const, 0, ""}, - {"DLT_MTP2_WITH_PHDR", Const, 0, ""}, - {"DLT_MTP3", Const, 0, ""}, - {"DLT_MUX27010", Const, 1, ""}, - {"DLT_NETANALYZER", Const, 1, ""}, - {"DLT_NETANALYZER_TRANSPARENT", Const, 1, ""}, - {"DLT_NFC_LLCP", Const, 1, ""}, - {"DLT_NFLOG", Const, 1, ""}, - {"DLT_NG40", Const, 1, ""}, - {"DLT_NULL", Const, 0, ""}, - {"DLT_PCI_EXP", Const, 0, ""}, - {"DLT_PFLOG", Const, 0, ""}, - {"DLT_PFSYNC", Const, 0, ""}, - {"DLT_PPI", Const, 0, ""}, - {"DLT_PPP", Const, 0, ""}, - {"DLT_PPP_BSDOS", Const, 0, ""}, - {"DLT_PPP_ETHER", Const, 0, ""}, - {"DLT_PPP_PPPD", Const, 0, ""}, - {"DLT_PPP_SERIAL", Const, 0, ""}, - {"DLT_PPP_WITH_DIR", Const, 0, ""}, - {"DLT_PPP_WITH_DIRECTION", Const, 0, ""}, - {"DLT_PRISM_HEADER", Const, 0, ""}, - {"DLT_PRONET", Const, 0, ""}, - {"DLT_RAIF1", Const, 0, ""}, - {"DLT_RAW", Const, 0, ""}, - {"DLT_RAWAF_MASK", Const, 1, ""}, - {"DLT_RIO", Const, 0, ""}, - {"DLT_SCCP", Const, 0, ""}, - {"DLT_SITA", Const, 0, ""}, - {"DLT_SLIP", Const, 0, ""}, - {"DLT_SLIP_BSDOS", Const, 0, ""}, - {"DLT_STANAG_5066_D_PDU", Const, 1, ""}, - {"DLT_SUNATM", Const, 0, ""}, - {"DLT_SYMANTEC_FIREWALL", Const, 0, ""}, - {"DLT_TZSP", Const, 0, ""}, - {"DLT_USB", Const, 0, ""}, - {"DLT_USB_LINUX", Const, 0, ""}, - {"DLT_USB_LINUX_MMAPPED", Const, 1, ""}, - {"DLT_USER0", Const, 0, ""}, - {"DLT_USER1", Const, 0, ""}, - {"DLT_USER10", Const, 0, ""}, - {"DLT_USER11", Const, 0, ""}, - {"DLT_USER12", Const, 0, ""}, - {"DLT_USER13", Const, 0, ""}, - {"DLT_USER14", Const, 0, ""}, - {"DLT_USER15", Const, 0, ""}, - {"DLT_USER2", Const, 0, ""}, - {"DLT_USER3", Const, 0, ""}, - {"DLT_USER4", Const, 0, ""}, - {"DLT_USER5", Const, 0, ""}, - {"DLT_USER6", Const, 0, ""}, - {"DLT_USER7", Const, 0, ""}, - {"DLT_USER8", Const, 0, ""}, - {"DLT_USER9", Const, 0, ""}, - {"DLT_WIHART", Const, 1, ""}, - {"DLT_X2E_SERIAL", Const, 0, ""}, - {"DLT_X2E_XORAYA", Const, 0, ""}, - {"DNSMXData", Type, 0, ""}, - {"DNSMXData.NameExchange", Field, 0, ""}, - {"DNSMXData.Pad", Field, 0, ""}, - {"DNSMXData.Preference", Field, 0, ""}, - {"DNSPTRData", Type, 0, ""}, - {"DNSPTRData.Host", Field, 0, ""}, - {"DNSRecord", Type, 0, ""}, - {"DNSRecord.Data", Field, 0, ""}, - {"DNSRecord.Dw", Field, 0, ""}, - {"DNSRecord.Length", Field, 0, ""}, - {"DNSRecord.Name", Field, 0, ""}, - {"DNSRecord.Next", Field, 0, ""}, - {"DNSRecord.Reserved", Field, 0, ""}, - {"DNSRecord.Ttl", Field, 0, ""}, - {"DNSRecord.Type", Field, 0, ""}, - {"DNSSRVData", Type, 0, ""}, - {"DNSSRVData.Pad", Field, 0, ""}, - {"DNSSRVData.Port", Field, 0, ""}, - {"DNSSRVData.Priority", Field, 0, ""}, - {"DNSSRVData.Target", Field, 0, ""}, - {"DNSSRVData.Weight", Field, 0, ""}, - {"DNSTXTData", Type, 0, ""}, - {"DNSTXTData.StringArray", Field, 0, ""}, - {"DNSTXTData.StringCount", Field, 0, ""}, - {"DNS_INFO_NO_RECORDS", Const, 4, ""}, - {"DNS_TYPE_A", Const, 0, ""}, - {"DNS_TYPE_A6", Const, 0, ""}, - {"DNS_TYPE_AAAA", Const, 0, ""}, - {"DNS_TYPE_ADDRS", Const, 0, ""}, - {"DNS_TYPE_AFSDB", Const, 0, ""}, - {"DNS_TYPE_ALL", Const, 0, ""}, - {"DNS_TYPE_ANY", Const, 0, ""}, - {"DNS_TYPE_ATMA", Const, 0, ""}, - {"DNS_TYPE_AXFR", Const, 0, ""}, - {"DNS_TYPE_CERT", Const, 0, ""}, - {"DNS_TYPE_CNAME", Const, 0, ""}, - {"DNS_TYPE_DHCID", Const, 0, ""}, - {"DNS_TYPE_DNAME", Const, 0, ""}, - {"DNS_TYPE_DNSKEY", Const, 0, ""}, - {"DNS_TYPE_DS", Const, 0, ""}, - {"DNS_TYPE_EID", Const, 0, ""}, - {"DNS_TYPE_GID", Const, 0, ""}, - {"DNS_TYPE_GPOS", Const, 0, ""}, - {"DNS_TYPE_HINFO", Const, 0, ""}, - {"DNS_TYPE_ISDN", Const, 0, ""}, - {"DNS_TYPE_IXFR", Const, 0, ""}, - {"DNS_TYPE_KEY", Const, 0, ""}, - {"DNS_TYPE_KX", Const, 0, ""}, - {"DNS_TYPE_LOC", Const, 0, ""}, - {"DNS_TYPE_MAILA", Const, 0, ""}, - {"DNS_TYPE_MAILB", Const, 0, ""}, - {"DNS_TYPE_MB", Const, 0, ""}, - {"DNS_TYPE_MD", Const, 0, ""}, - {"DNS_TYPE_MF", Const, 0, ""}, - {"DNS_TYPE_MG", Const, 0, ""}, - {"DNS_TYPE_MINFO", Const, 0, ""}, - {"DNS_TYPE_MR", Const, 0, ""}, - {"DNS_TYPE_MX", Const, 0, ""}, - {"DNS_TYPE_NAPTR", Const, 0, ""}, - {"DNS_TYPE_NBSTAT", Const, 0, ""}, - {"DNS_TYPE_NIMLOC", Const, 0, ""}, - {"DNS_TYPE_NS", Const, 0, ""}, - {"DNS_TYPE_NSAP", Const, 0, ""}, - {"DNS_TYPE_NSAPPTR", Const, 0, ""}, - {"DNS_TYPE_NSEC", Const, 0, ""}, - {"DNS_TYPE_NULL", Const, 0, ""}, - {"DNS_TYPE_NXT", Const, 0, ""}, - {"DNS_TYPE_OPT", Const, 0, ""}, - {"DNS_TYPE_PTR", Const, 0, ""}, - {"DNS_TYPE_PX", Const, 0, ""}, - {"DNS_TYPE_RP", Const, 0, ""}, - {"DNS_TYPE_RRSIG", Const, 0, ""}, - {"DNS_TYPE_RT", Const, 0, ""}, - {"DNS_TYPE_SIG", Const, 0, ""}, - {"DNS_TYPE_SINK", Const, 0, ""}, - {"DNS_TYPE_SOA", Const, 0, ""}, - {"DNS_TYPE_SRV", Const, 0, ""}, - {"DNS_TYPE_TEXT", Const, 0, ""}, - {"DNS_TYPE_TKEY", Const, 0, ""}, - {"DNS_TYPE_TSIG", Const, 0, ""}, - {"DNS_TYPE_UID", Const, 0, ""}, - {"DNS_TYPE_UINFO", Const, 0, ""}, - {"DNS_TYPE_UNSPEC", Const, 0, ""}, - {"DNS_TYPE_WINS", Const, 0, ""}, - {"DNS_TYPE_WINSR", Const, 0, ""}, - {"DNS_TYPE_WKS", Const, 0, ""}, - {"DNS_TYPE_X25", Const, 0, ""}, - {"DT_BLK", Const, 0, ""}, - {"DT_CHR", Const, 0, ""}, - {"DT_DIR", Const, 0, ""}, - {"DT_FIFO", Const, 0, ""}, - {"DT_LNK", Const, 0, ""}, - {"DT_REG", Const, 0, ""}, - {"DT_SOCK", Const, 0, ""}, - {"DT_UNKNOWN", Const, 0, ""}, - {"DT_WHT", Const, 0, ""}, - {"DUPLICATE_CLOSE_SOURCE", Const, 0, ""}, - {"DUPLICATE_SAME_ACCESS", Const, 0, ""}, - {"DeleteFile", Func, 0, ""}, - {"DetachLsf", Func, 0, "func(fd int) error"}, - {"DeviceIoControl", Func, 4, ""}, - {"Dirent", Type, 0, ""}, - {"Dirent.Fileno", Field, 0, ""}, - {"Dirent.Ino", Field, 0, ""}, - {"Dirent.Name", Field, 0, ""}, - {"Dirent.Namlen", Field, 0, ""}, - {"Dirent.Off", Field, 0, ""}, - {"Dirent.Pad0", Field, 12, ""}, - {"Dirent.Pad1", Field, 12, ""}, - {"Dirent.Pad_cgo_0", Field, 0, ""}, - {"Dirent.Reclen", Field, 0, ""}, - {"Dirent.Seekoff", Field, 0, ""}, - {"Dirent.Type", Field, 0, ""}, - {"Dirent.X__d_padding", Field, 3, ""}, - {"DnsNameCompare", Func, 4, ""}, - {"DnsQuery", Func, 0, ""}, - {"DnsRecordListFree", Func, 0, ""}, - {"DnsSectionAdditional", Const, 4, ""}, - {"DnsSectionAnswer", Const, 4, ""}, - {"DnsSectionAuthority", Const, 4, ""}, - {"DnsSectionQuestion", Const, 4, ""}, - {"Dup", Func, 0, "func(oldfd int) (fd int, err error)"}, - {"Dup2", Func, 0, "func(oldfd int, newfd int) (err error)"}, - {"Dup3", Func, 2, "func(oldfd int, newfd int, flags int) (err error)"}, - {"DuplicateHandle", Func, 0, ""}, - {"E2BIG", Const, 0, ""}, - {"EACCES", Const, 0, ""}, - {"EADDRINUSE", Const, 0, ""}, - {"EADDRNOTAVAIL", Const, 0, ""}, - {"EADV", Const, 0, ""}, - {"EAFNOSUPPORT", Const, 0, ""}, - {"EAGAIN", Const, 0, ""}, - {"EALREADY", Const, 0, ""}, - {"EAUTH", Const, 0, ""}, - {"EBADARCH", Const, 0, ""}, - {"EBADE", Const, 0, ""}, - {"EBADEXEC", Const, 0, ""}, - {"EBADF", Const, 0, ""}, - {"EBADFD", Const, 0, ""}, - {"EBADMACHO", Const, 0, ""}, - {"EBADMSG", Const, 0, ""}, - {"EBADR", Const, 0, ""}, - {"EBADRPC", Const, 0, ""}, - {"EBADRQC", Const, 0, ""}, - {"EBADSLT", Const, 0, ""}, - {"EBFONT", Const, 0, ""}, - {"EBUSY", Const, 0, ""}, - {"ECANCELED", Const, 0, ""}, - {"ECAPMODE", Const, 1, ""}, - {"ECHILD", Const, 0, ""}, - {"ECHO", Const, 0, ""}, - {"ECHOCTL", Const, 0, ""}, - {"ECHOE", Const, 0, ""}, - {"ECHOK", Const, 0, ""}, - {"ECHOKE", Const, 0, ""}, - {"ECHONL", Const, 0, ""}, - {"ECHOPRT", Const, 0, ""}, - {"ECHRNG", Const, 0, ""}, - {"ECOMM", Const, 0, ""}, - {"ECONNABORTED", Const, 0, ""}, - {"ECONNREFUSED", Const, 0, ""}, - {"ECONNRESET", Const, 0, ""}, - {"EDEADLK", Const, 0, ""}, - {"EDEADLOCK", Const, 0, ""}, - {"EDESTADDRREQ", Const, 0, ""}, - {"EDEVERR", Const, 0, ""}, - {"EDOM", Const, 0, ""}, - {"EDOOFUS", Const, 0, ""}, - {"EDOTDOT", Const, 0, ""}, - {"EDQUOT", Const, 0, ""}, - {"EEXIST", Const, 0, ""}, - {"EFAULT", Const, 0, ""}, - {"EFBIG", Const, 0, ""}, - {"EFER_LMA", Const, 1, ""}, - {"EFER_LME", Const, 1, ""}, - {"EFER_NXE", Const, 1, ""}, - {"EFER_SCE", Const, 1, ""}, - {"EFTYPE", Const, 0, ""}, - {"EHOSTDOWN", Const, 0, ""}, - {"EHOSTUNREACH", Const, 0, ""}, - {"EHWPOISON", Const, 0, ""}, - {"EIDRM", Const, 0, ""}, - {"EILSEQ", Const, 0, ""}, - {"EINPROGRESS", Const, 0, ""}, - {"EINTR", Const, 0, ""}, - {"EINVAL", Const, 0, ""}, - {"EIO", Const, 0, ""}, - {"EIPSEC", Const, 1, ""}, - {"EISCONN", Const, 0, ""}, - {"EISDIR", Const, 0, ""}, - {"EISNAM", Const, 0, ""}, - {"EKEYEXPIRED", Const, 0, ""}, - {"EKEYREJECTED", Const, 0, ""}, - {"EKEYREVOKED", Const, 0, ""}, - {"EL2HLT", Const, 0, ""}, - {"EL2NSYNC", Const, 0, ""}, - {"EL3HLT", Const, 0, ""}, - {"EL3RST", Const, 0, ""}, - {"ELAST", Const, 0, ""}, - {"ELF_NGREG", Const, 0, ""}, - {"ELF_PRARGSZ", Const, 0, ""}, - {"ELIBACC", Const, 0, ""}, - {"ELIBBAD", Const, 0, ""}, - {"ELIBEXEC", Const, 0, ""}, - {"ELIBMAX", Const, 0, ""}, - {"ELIBSCN", Const, 0, ""}, - {"ELNRNG", Const, 0, ""}, - {"ELOOP", Const, 0, ""}, - {"EMEDIUMTYPE", Const, 0, ""}, - {"EMFILE", Const, 0, ""}, - {"EMLINK", Const, 0, ""}, - {"EMSGSIZE", Const, 0, ""}, - {"EMT_TAGOVF", Const, 1, ""}, - {"EMULTIHOP", Const, 0, ""}, - {"EMUL_ENABLED", Const, 1, ""}, - {"EMUL_LINUX", Const, 1, ""}, - {"EMUL_LINUX32", Const, 1, ""}, - {"EMUL_MAXID", Const, 1, ""}, - {"EMUL_NATIVE", Const, 1, ""}, - {"ENAMETOOLONG", Const, 0, ""}, - {"ENAVAIL", Const, 0, ""}, - {"ENDRUNDISC", Const, 1, ""}, - {"ENEEDAUTH", Const, 0, ""}, - {"ENETDOWN", Const, 0, ""}, - {"ENETRESET", Const, 0, ""}, - {"ENETUNREACH", Const, 0, ""}, - {"ENFILE", Const, 0, ""}, - {"ENOANO", Const, 0, ""}, - {"ENOATTR", Const, 0, ""}, - {"ENOBUFS", Const, 0, ""}, - {"ENOCSI", Const, 0, ""}, - {"ENODATA", Const, 0, ""}, - {"ENODEV", Const, 0, ""}, - {"ENOENT", Const, 0, ""}, - {"ENOEXEC", Const, 0, ""}, - {"ENOKEY", Const, 0, ""}, - {"ENOLCK", Const, 0, ""}, - {"ENOLINK", Const, 0, ""}, - {"ENOMEDIUM", Const, 0, ""}, - {"ENOMEM", Const, 0, ""}, - {"ENOMSG", Const, 0, ""}, - {"ENONET", Const, 0, ""}, - {"ENOPKG", Const, 0, ""}, - {"ENOPOLICY", Const, 0, ""}, - {"ENOPROTOOPT", Const, 0, ""}, - {"ENOSPC", Const, 0, ""}, - {"ENOSR", Const, 0, ""}, - {"ENOSTR", Const, 0, ""}, - {"ENOSYS", Const, 0, ""}, - {"ENOTBLK", Const, 0, ""}, - {"ENOTCAPABLE", Const, 0, ""}, - {"ENOTCONN", Const, 0, ""}, - {"ENOTDIR", Const, 0, ""}, - {"ENOTEMPTY", Const, 0, ""}, - {"ENOTNAM", Const, 0, ""}, - {"ENOTRECOVERABLE", Const, 0, ""}, - {"ENOTSOCK", Const, 0, ""}, - {"ENOTSUP", Const, 0, ""}, - {"ENOTTY", Const, 0, ""}, - {"ENOTUNIQ", Const, 0, ""}, - {"ENXIO", Const, 0, ""}, - {"EN_SW_CTL_INF", Const, 1, ""}, - {"EN_SW_CTL_PREC", Const, 1, ""}, - {"EN_SW_CTL_ROUND", Const, 1, ""}, - {"EN_SW_DATACHAIN", Const, 1, ""}, - {"EN_SW_DENORM", Const, 1, ""}, - {"EN_SW_INVOP", Const, 1, ""}, - {"EN_SW_OVERFLOW", Const, 1, ""}, - {"EN_SW_PRECLOSS", Const, 1, ""}, - {"EN_SW_UNDERFLOW", Const, 1, ""}, - {"EN_SW_ZERODIV", Const, 1, ""}, - {"EOPNOTSUPP", Const, 0, ""}, - {"EOVERFLOW", Const, 0, ""}, - {"EOWNERDEAD", Const, 0, ""}, - {"EPERM", Const, 0, ""}, - {"EPFNOSUPPORT", Const, 0, ""}, - {"EPIPE", Const, 0, ""}, - {"EPOLLERR", Const, 0, ""}, - {"EPOLLET", Const, 0, ""}, - {"EPOLLHUP", Const, 0, ""}, - {"EPOLLIN", Const, 0, ""}, - {"EPOLLMSG", Const, 0, ""}, - {"EPOLLONESHOT", Const, 0, ""}, - {"EPOLLOUT", Const, 0, ""}, - {"EPOLLPRI", Const, 0, ""}, - {"EPOLLRDBAND", Const, 0, ""}, - {"EPOLLRDHUP", Const, 0, ""}, - {"EPOLLRDNORM", Const, 0, ""}, - {"EPOLLWRBAND", Const, 0, ""}, - {"EPOLLWRNORM", Const, 0, ""}, - {"EPOLL_CLOEXEC", Const, 0, ""}, - {"EPOLL_CTL_ADD", Const, 0, ""}, - {"EPOLL_CTL_DEL", Const, 0, ""}, - {"EPOLL_CTL_MOD", Const, 0, ""}, - {"EPOLL_NONBLOCK", Const, 0, ""}, - {"EPROCLIM", Const, 0, ""}, - {"EPROCUNAVAIL", Const, 0, ""}, - {"EPROGMISMATCH", Const, 0, ""}, - {"EPROGUNAVAIL", Const, 0, ""}, - {"EPROTO", Const, 0, ""}, - {"EPROTONOSUPPORT", Const, 0, ""}, - {"EPROTOTYPE", Const, 0, ""}, - {"EPWROFF", Const, 0, ""}, - {"EQFULL", Const, 16, ""}, - {"ERANGE", Const, 0, ""}, - {"EREMCHG", Const, 0, ""}, - {"EREMOTE", Const, 0, ""}, - {"EREMOTEIO", Const, 0, ""}, - {"ERESTART", Const, 0, ""}, - {"ERFKILL", Const, 0, ""}, - {"EROFS", Const, 0, ""}, - {"ERPCMISMATCH", Const, 0, ""}, - {"ERROR_ACCESS_DENIED", Const, 0, ""}, - {"ERROR_ALREADY_EXISTS", Const, 0, ""}, - {"ERROR_BROKEN_PIPE", Const, 0, ""}, - {"ERROR_BUFFER_OVERFLOW", Const, 0, ""}, - {"ERROR_DIR_NOT_EMPTY", Const, 8, ""}, - {"ERROR_ENVVAR_NOT_FOUND", Const, 0, ""}, - {"ERROR_FILE_EXISTS", Const, 0, ""}, - {"ERROR_FILE_NOT_FOUND", Const, 0, ""}, - {"ERROR_HANDLE_EOF", Const, 2, ""}, - {"ERROR_INSUFFICIENT_BUFFER", Const, 0, ""}, - {"ERROR_IO_PENDING", Const, 0, ""}, - {"ERROR_MOD_NOT_FOUND", Const, 0, ""}, - {"ERROR_MORE_DATA", Const, 3, ""}, - {"ERROR_NETNAME_DELETED", Const, 3, ""}, - {"ERROR_NOT_FOUND", Const, 1, ""}, - {"ERROR_NO_MORE_FILES", Const, 0, ""}, - {"ERROR_OPERATION_ABORTED", Const, 0, ""}, - {"ERROR_PATH_NOT_FOUND", Const, 0, ""}, - {"ERROR_PRIVILEGE_NOT_HELD", Const, 4, ""}, - {"ERROR_PROC_NOT_FOUND", Const, 0, ""}, - {"ESHLIBVERS", Const, 0, ""}, - {"ESHUTDOWN", Const, 0, ""}, - {"ESOCKTNOSUPPORT", Const, 0, ""}, - {"ESPIPE", Const, 0, ""}, - {"ESRCH", Const, 0, ""}, - {"ESRMNT", Const, 0, ""}, - {"ESTALE", Const, 0, ""}, - {"ESTRPIPE", Const, 0, ""}, - {"ETHERCAP_JUMBO_MTU", Const, 1, ""}, - {"ETHERCAP_VLAN_HWTAGGING", Const, 1, ""}, - {"ETHERCAP_VLAN_MTU", Const, 1, ""}, - {"ETHERMIN", Const, 1, ""}, - {"ETHERMTU", Const, 1, ""}, - {"ETHERMTU_JUMBO", Const, 1, ""}, - {"ETHERTYPE_8023", Const, 1, ""}, - {"ETHERTYPE_AARP", Const, 1, ""}, - {"ETHERTYPE_ACCTON", Const, 1, ""}, - {"ETHERTYPE_AEONIC", Const, 1, ""}, - {"ETHERTYPE_ALPHA", Const, 1, ""}, - {"ETHERTYPE_AMBER", Const, 1, ""}, - {"ETHERTYPE_AMOEBA", Const, 1, ""}, - {"ETHERTYPE_AOE", Const, 1, ""}, - {"ETHERTYPE_APOLLO", Const, 1, ""}, - {"ETHERTYPE_APOLLODOMAIN", Const, 1, ""}, - {"ETHERTYPE_APPLETALK", Const, 1, ""}, - {"ETHERTYPE_APPLITEK", Const, 1, ""}, - {"ETHERTYPE_ARGONAUT", Const, 1, ""}, - {"ETHERTYPE_ARP", Const, 1, ""}, - {"ETHERTYPE_AT", Const, 1, ""}, - {"ETHERTYPE_ATALK", Const, 1, ""}, - {"ETHERTYPE_ATOMIC", Const, 1, ""}, - {"ETHERTYPE_ATT", Const, 1, ""}, - {"ETHERTYPE_ATTSTANFORD", Const, 1, ""}, - {"ETHERTYPE_AUTOPHON", Const, 1, ""}, - {"ETHERTYPE_AXIS", Const, 1, ""}, - {"ETHERTYPE_BCLOOP", Const, 1, ""}, - {"ETHERTYPE_BOFL", Const, 1, ""}, - {"ETHERTYPE_CABLETRON", Const, 1, ""}, - {"ETHERTYPE_CHAOS", Const, 1, ""}, - {"ETHERTYPE_COMDESIGN", Const, 1, ""}, - {"ETHERTYPE_COMPUGRAPHIC", Const, 1, ""}, - {"ETHERTYPE_COUNTERPOINT", Const, 1, ""}, - {"ETHERTYPE_CRONUS", Const, 1, ""}, - {"ETHERTYPE_CRONUSVLN", Const, 1, ""}, - {"ETHERTYPE_DCA", Const, 1, ""}, - {"ETHERTYPE_DDE", Const, 1, ""}, - {"ETHERTYPE_DEBNI", Const, 1, ""}, - {"ETHERTYPE_DECAM", Const, 1, ""}, - {"ETHERTYPE_DECCUST", Const, 1, ""}, - {"ETHERTYPE_DECDIAG", Const, 1, ""}, - {"ETHERTYPE_DECDNS", Const, 1, ""}, - {"ETHERTYPE_DECDTS", Const, 1, ""}, - {"ETHERTYPE_DECEXPER", Const, 1, ""}, - {"ETHERTYPE_DECLAST", Const, 1, ""}, - {"ETHERTYPE_DECLTM", Const, 1, ""}, - {"ETHERTYPE_DECMUMPS", Const, 1, ""}, - {"ETHERTYPE_DECNETBIOS", Const, 1, ""}, - {"ETHERTYPE_DELTACON", Const, 1, ""}, - {"ETHERTYPE_DIDDLE", Const, 1, ""}, - {"ETHERTYPE_DLOG1", Const, 1, ""}, - {"ETHERTYPE_DLOG2", Const, 1, ""}, - {"ETHERTYPE_DN", Const, 1, ""}, - {"ETHERTYPE_DOGFIGHT", Const, 1, ""}, - {"ETHERTYPE_DSMD", Const, 1, ""}, - {"ETHERTYPE_ECMA", Const, 1, ""}, - {"ETHERTYPE_ENCRYPT", Const, 1, ""}, - {"ETHERTYPE_ES", Const, 1, ""}, - {"ETHERTYPE_EXCELAN", Const, 1, ""}, - {"ETHERTYPE_EXPERDATA", Const, 1, ""}, - {"ETHERTYPE_FLIP", Const, 1, ""}, - {"ETHERTYPE_FLOWCONTROL", Const, 1, ""}, - {"ETHERTYPE_FRARP", Const, 1, ""}, - {"ETHERTYPE_GENDYN", Const, 1, ""}, - {"ETHERTYPE_HAYES", Const, 1, ""}, - {"ETHERTYPE_HIPPI_FP", Const, 1, ""}, - {"ETHERTYPE_HITACHI", Const, 1, ""}, - {"ETHERTYPE_HP", Const, 1, ""}, - {"ETHERTYPE_IEEEPUP", Const, 1, ""}, - {"ETHERTYPE_IEEEPUPAT", Const, 1, ""}, - {"ETHERTYPE_IMLBL", Const, 1, ""}, - {"ETHERTYPE_IMLBLDIAG", Const, 1, ""}, - {"ETHERTYPE_IP", Const, 1, ""}, - {"ETHERTYPE_IPAS", Const, 1, ""}, - {"ETHERTYPE_IPV6", Const, 1, ""}, - {"ETHERTYPE_IPX", Const, 1, ""}, - {"ETHERTYPE_IPXNEW", Const, 1, ""}, - {"ETHERTYPE_KALPANA", Const, 1, ""}, - {"ETHERTYPE_LANBRIDGE", Const, 1, ""}, - {"ETHERTYPE_LANPROBE", Const, 1, ""}, - {"ETHERTYPE_LAT", Const, 1, ""}, - {"ETHERTYPE_LBACK", Const, 1, ""}, - {"ETHERTYPE_LITTLE", Const, 1, ""}, - {"ETHERTYPE_LLDP", Const, 1, ""}, - {"ETHERTYPE_LOGICRAFT", Const, 1, ""}, - {"ETHERTYPE_LOOPBACK", Const, 1, ""}, - {"ETHERTYPE_MATRA", Const, 1, ""}, - {"ETHERTYPE_MAX", Const, 1, ""}, - {"ETHERTYPE_MERIT", Const, 1, ""}, - {"ETHERTYPE_MICP", Const, 1, ""}, - {"ETHERTYPE_MOPDL", Const, 1, ""}, - {"ETHERTYPE_MOPRC", Const, 1, ""}, - {"ETHERTYPE_MOTOROLA", Const, 1, ""}, - {"ETHERTYPE_MPLS", Const, 1, ""}, - {"ETHERTYPE_MPLS_MCAST", Const, 1, ""}, - {"ETHERTYPE_MUMPS", Const, 1, ""}, - {"ETHERTYPE_NBPCC", Const, 1, ""}, - {"ETHERTYPE_NBPCLAIM", Const, 1, ""}, - {"ETHERTYPE_NBPCLREQ", Const, 1, ""}, - {"ETHERTYPE_NBPCLRSP", Const, 1, ""}, - {"ETHERTYPE_NBPCREQ", Const, 1, ""}, - {"ETHERTYPE_NBPCRSP", Const, 1, ""}, - {"ETHERTYPE_NBPDG", Const, 1, ""}, - {"ETHERTYPE_NBPDGB", Const, 1, ""}, - {"ETHERTYPE_NBPDLTE", Const, 1, ""}, - {"ETHERTYPE_NBPRAR", Const, 1, ""}, - {"ETHERTYPE_NBPRAS", Const, 1, ""}, - {"ETHERTYPE_NBPRST", Const, 1, ""}, - {"ETHERTYPE_NBPSCD", Const, 1, ""}, - {"ETHERTYPE_NBPVCD", Const, 1, ""}, - {"ETHERTYPE_NBS", Const, 1, ""}, - {"ETHERTYPE_NCD", Const, 1, ""}, - {"ETHERTYPE_NESTAR", Const, 1, ""}, - {"ETHERTYPE_NETBEUI", Const, 1, ""}, - {"ETHERTYPE_NOVELL", Const, 1, ""}, - {"ETHERTYPE_NS", Const, 1, ""}, - {"ETHERTYPE_NSAT", Const, 1, ""}, - {"ETHERTYPE_NSCOMPAT", Const, 1, ""}, - {"ETHERTYPE_NTRAILER", Const, 1, ""}, - {"ETHERTYPE_OS9", Const, 1, ""}, - {"ETHERTYPE_OS9NET", Const, 1, ""}, - {"ETHERTYPE_PACER", Const, 1, ""}, - {"ETHERTYPE_PAE", Const, 1, ""}, - {"ETHERTYPE_PCS", Const, 1, ""}, - {"ETHERTYPE_PLANNING", Const, 1, ""}, - {"ETHERTYPE_PPP", Const, 1, ""}, - {"ETHERTYPE_PPPOE", Const, 1, ""}, - {"ETHERTYPE_PPPOEDISC", Const, 1, ""}, - {"ETHERTYPE_PRIMENTS", Const, 1, ""}, - {"ETHERTYPE_PUP", Const, 1, ""}, - {"ETHERTYPE_PUPAT", Const, 1, ""}, - {"ETHERTYPE_QINQ", Const, 1, ""}, - {"ETHERTYPE_RACAL", Const, 1, ""}, - {"ETHERTYPE_RATIONAL", Const, 1, ""}, - {"ETHERTYPE_RAWFR", Const, 1, ""}, - {"ETHERTYPE_RCL", Const, 1, ""}, - {"ETHERTYPE_RDP", Const, 1, ""}, - {"ETHERTYPE_RETIX", Const, 1, ""}, - {"ETHERTYPE_REVARP", Const, 1, ""}, - {"ETHERTYPE_SCA", Const, 1, ""}, - {"ETHERTYPE_SECTRA", Const, 1, ""}, - {"ETHERTYPE_SECUREDATA", Const, 1, ""}, - {"ETHERTYPE_SGITW", Const, 1, ""}, - {"ETHERTYPE_SG_BOUNCE", Const, 1, ""}, - {"ETHERTYPE_SG_DIAG", Const, 1, ""}, - {"ETHERTYPE_SG_NETGAMES", Const, 1, ""}, - {"ETHERTYPE_SG_RESV", Const, 1, ""}, - {"ETHERTYPE_SIMNET", Const, 1, ""}, - {"ETHERTYPE_SLOW", Const, 1, ""}, - {"ETHERTYPE_SLOWPROTOCOLS", Const, 1, ""}, - {"ETHERTYPE_SNA", Const, 1, ""}, - {"ETHERTYPE_SNMP", Const, 1, ""}, - {"ETHERTYPE_SONIX", Const, 1, ""}, - {"ETHERTYPE_SPIDER", Const, 1, ""}, - {"ETHERTYPE_SPRITE", Const, 1, ""}, - {"ETHERTYPE_STP", Const, 1, ""}, - {"ETHERTYPE_TALARIS", Const, 1, ""}, - {"ETHERTYPE_TALARISMC", Const, 1, ""}, - {"ETHERTYPE_TCPCOMP", Const, 1, ""}, - {"ETHERTYPE_TCPSM", Const, 1, ""}, - {"ETHERTYPE_TEC", Const, 1, ""}, - {"ETHERTYPE_TIGAN", Const, 1, ""}, - {"ETHERTYPE_TRAIL", Const, 1, ""}, - {"ETHERTYPE_TRANSETHER", Const, 1, ""}, - {"ETHERTYPE_TYMSHARE", Const, 1, ""}, - {"ETHERTYPE_UBBST", Const, 1, ""}, - {"ETHERTYPE_UBDEBUG", Const, 1, ""}, - {"ETHERTYPE_UBDIAGLOOP", Const, 1, ""}, - {"ETHERTYPE_UBDL", Const, 1, ""}, - {"ETHERTYPE_UBNIU", Const, 1, ""}, - {"ETHERTYPE_UBNMC", Const, 1, ""}, - {"ETHERTYPE_VALID", Const, 1, ""}, - {"ETHERTYPE_VARIAN", Const, 1, ""}, - {"ETHERTYPE_VAXELN", Const, 1, ""}, - {"ETHERTYPE_VEECO", Const, 1, ""}, - {"ETHERTYPE_VEXP", Const, 1, ""}, - {"ETHERTYPE_VGLAB", Const, 1, ""}, - {"ETHERTYPE_VINES", Const, 1, ""}, - {"ETHERTYPE_VINESECHO", Const, 1, ""}, - {"ETHERTYPE_VINESLOOP", Const, 1, ""}, - {"ETHERTYPE_VITAL", Const, 1, ""}, - {"ETHERTYPE_VLAN", Const, 1, ""}, - {"ETHERTYPE_VLTLMAN", Const, 1, ""}, - {"ETHERTYPE_VPROD", Const, 1, ""}, - {"ETHERTYPE_VURESERVED", Const, 1, ""}, - {"ETHERTYPE_WATERLOO", Const, 1, ""}, - {"ETHERTYPE_WELLFLEET", Const, 1, ""}, - {"ETHERTYPE_X25", Const, 1, ""}, - {"ETHERTYPE_X75", Const, 1, ""}, - {"ETHERTYPE_XNSSM", Const, 1, ""}, - {"ETHERTYPE_XTP", Const, 1, ""}, - {"ETHER_ADDR_LEN", Const, 1, ""}, - {"ETHER_ALIGN", Const, 1, ""}, - {"ETHER_CRC_LEN", Const, 1, ""}, - {"ETHER_CRC_POLY_BE", Const, 1, ""}, - {"ETHER_CRC_POLY_LE", Const, 1, ""}, - {"ETHER_HDR_LEN", Const, 1, ""}, - {"ETHER_MAX_DIX_LEN", Const, 1, ""}, - {"ETHER_MAX_LEN", Const, 1, ""}, - {"ETHER_MAX_LEN_JUMBO", Const, 1, ""}, - {"ETHER_MIN_LEN", Const, 1, ""}, - {"ETHER_PPPOE_ENCAP_LEN", Const, 1, ""}, - {"ETHER_TYPE_LEN", Const, 1, ""}, - {"ETHER_VLAN_ENCAP_LEN", Const, 1, ""}, - {"ETH_P_1588", Const, 0, ""}, - {"ETH_P_8021Q", Const, 0, ""}, - {"ETH_P_802_2", Const, 0, ""}, - {"ETH_P_802_3", Const, 0, ""}, - {"ETH_P_AARP", Const, 0, ""}, - {"ETH_P_ALL", Const, 0, ""}, - {"ETH_P_AOE", Const, 0, ""}, - {"ETH_P_ARCNET", Const, 0, ""}, - {"ETH_P_ARP", Const, 0, ""}, - {"ETH_P_ATALK", Const, 0, ""}, - {"ETH_P_ATMFATE", Const, 0, ""}, - {"ETH_P_ATMMPOA", Const, 0, ""}, - {"ETH_P_AX25", Const, 0, ""}, - {"ETH_P_BPQ", Const, 0, ""}, - {"ETH_P_CAIF", Const, 0, ""}, - {"ETH_P_CAN", Const, 0, ""}, - {"ETH_P_CONTROL", Const, 0, ""}, - {"ETH_P_CUST", Const, 0, ""}, - {"ETH_P_DDCMP", Const, 0, ""}, - {"ETH_P_DEC", Const, 0, ""}, - {"ETH_P_DIAG", Const, 0, ""}, - {"ETH_P_DNA_DL", Const, 0, ""}, - {"ETH_P_DNA_RC", Const, 0, ""}, - {"ETH_P_DNA_RT", Const, 0, ""}, - {"ETH_P_DSA", Const, 0, ""}, - {"ETH_P_ECONET", Const, 0, ""}, - {"ETH_P_EDSA", Const, 0, ""}, - {"ETH_P_FCOE", Const, 0, ""}, - {"ETH_P_FIP", Const, 0, ""}, - {"ETH_P_HDLC", Const, 0, ""}, - {"ETH_P_IEEE802154", Const, 0, ""}, - {"ETH_P_IEEEPUP", Const, 0, ""}, - {"ETH_P_IEEEPUPAT", Const, 0, ""}, - {"ETH_P_IP", Const, 0, ""}, - {"ETH_P_IPV6", Const, 0, ""}, - {"ETH_P_IPX", Const, 0, ""}, - {"ETH_P_IRDA", Const, 0, ""}, - {"ETH_P_LAT", Const, 0, ""}, - {"ETH_P_LINK_CTL", Const, 0, ""}, - {"ETH_P_LOCALTALK", Const, 0, ""}, - {"ETH_P_LOOP", Const, 0, ""}, - {"ETH_P_MOBITEX", Const, 0, ""}, - {"ETH_P_MPLS_MC", Const, 0, ""}, - {"ETH_P_MPLS_UC", Const, 0, ""}, - {"ETH_P_PAE", Const, 0, ""}, - {"ETH_P_PAUSE", Const, 0, ""}, - {"ETH_P_PHONET", Const, 0, ""}, - {"ETH_P_PPPTALK", Const, 0, ""}, - {"ETH_P_PPP_DISC", Const, 0, ""}, - {"ETH_P_PPP_MP", Const, 0, ""}, - {"ETH_P_PPP_SES", Const, 0, ""}, - {"ETH_P_PUP", Const, 0, ""}, - {"ETH_P_PUPAT", Const, 0, ""}, - {"ETH_P_RARP", Const, 0, ""}, - {"ETH_P_SCA", Const, 0, ""}, - {"ETH_P_SLOW", Const, 0, ""}, - {"ETH_P_SNAP", Const, 0, ""}, - {"ETH_P_TEB", Const, 0, ""}, - {"ETH_P_TIPC", Const, 0, ""}, - {"ETH_P_TRAILER", Const, 0, ""}, - {"ETH_P_TR_802_2", Const, 0, ""}, - {"ETH_P_WAN_PPP", Const, 0, ""}, - {"ETH_P_WCCP", Const, 0, ""}, - {"ETH_P_X25", Const, 0, ""}, - {"ETIME", Const, 0, ""}, - {"ETIMEDOUT", Const, 0, ""}, - {"ETOOMANYREFS", Const, 0, ""}, - {"ETXTBSY", Const, 0, ""}, - {"EUCLEAN", Const, 0, ""}, - {"EUNATCH", Const, 0, ""}, - {"EUSERS", Const, 0, ""}, - {"EVFILT_AIO", Const, 0, ""}, - {"EVFILT_FS", Const, 0, ""}, - {"EVFILT_LIO", Const, 0, ""}, - {"EVFILT_MACHPORT", Const, 0, ""}, - {"EVFILT_PROC", Const, 0, ""}, - {"EVFILT_READ", Const, 0, ""}, - {"EVFILT_SIGNAL", Const, 0, ""}, - {"EVFILT_SYSCOUNT", Const, 0, ""}, - {"EVFILT_THREADMARKER", Const, 0, ""}, - {"EVFILT_TIMER", Const, 0, ""}, - {"EVFILT_USER", Const, 0, ""}, - {"EVFILT_VM", Const, 0, ""}, - {"EVFILT_VNODE", Const, 0, ""}, - {"EVFILT_WRITE", Const, 0, ""}, - {"EV_ADD", Const, 0, ""}, - {"EV_CLEAR", Const, 0, ""}, - {"EV_DELETE", Const, 0, ""}, - {"EV_DISABLE", Const, 0, ""}, - {"EV_DISPATCH", Const, 0, ""}, - {"EV_DROP", Const, 3, ""}, - {"EV_ENABLE", Const, 0, ""}, - {"EV_EOF", Const, 0, ""}, - {"EV_ERROR", Const, 0, ""}, - {"EV_FLAG0", Const, 0, ""}, - {"EV_FLAG1", Const, 0, ""}, - {"EV_ONESHOT", Const, 0, ""}, - {"EV_OOBAND", Const, 0, ""}, - {"EV_POLL", Const, 0, ""}, - {"EV_RECEIPT", Const, 0, ""}, - {"EV_SYSFLAGS", Const, 0, ""}, - {"EWINDOWS", Const, 0, ""}, - {"EWOULDBLOCK", Const, 0, ""}, - {"EXDEV", Const, 0, ""}, - {"EXFULL", Const, 0, ""}, - {"EXTA", Const, 0, ""}, - {"EXTB", Const, 0, ""}, - {"EXTPROC", Const, 0, ""}, - {"Environ", Func, 0, "func() []string"}, - {"EpollCreate", Func, 0, "func(size int) (fd int, err error)"}, - {"EpollCreate1", Func, 0, "func(flag int) (fd int, err error)"}, - {"EpollCtl", Func, 0, "func(epfd int, op int, fd int, event *EpollEvent) (err error)"}, - {"EpollEvent", Type, 0, ""}, - {"EpollEvent.Events", Field, 0, ""}, - {"EpollEvent.Fd", Field, 0, ""}, - {"EpollEvent.Pad", Field, 0, ""}, - {"EpollEvent.PadFd", Field, 0, ""}, - {"EpollWait", Func, 0, "func(epfd int, events []EpollEvent, msec int) (n int, err error)"}, - {"Errno", Type, 0, ""}, - {"EscapeArg", Func, 0, ""}, - {"Exchangedata", Func, 0, ""}, - {"Exec", Func, 0, "func(argv0 string, argv []string, envv []string) (err error)"}, - {"Exit", Func, 0, "func(code int)"}, - {"ExitProcess", Func, 0, ""}, - {"FD_CLOEXEC", Const, 0, ""}, - {"FD_SETSIZE", Const, 0, ""}, - {"FILE_ACTION_ADDED", Const, 0, ""}, - {"FILE_ACTION_MODIFIED", Const, 0, ""}, - {"FILE_ACTION_REMOVED", Const, 0, ""}, - {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0, ""}, - {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0, ""}, - {"FILE_APPEND_DATA", Const, 0, ""}, - {"FILE_ATTRIBUTE_ARCHIVE", Const, 0, ""}, - {"FILE_ATTRIBUTE_DIRECTORY", Const, 0, ""}, - {"FILE_ATTRIBUTE_HIDDEN", Const, 0, ""}, - {"FILE_ATTRIBUTE_NORMAL", Const, 0, ""}, - {"FILE_ATTRIBUTE_READONLY", Const, 0, ""}, - {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4, ""}, - {"FILE_ATTRIBUTE_SYSTEM", Const, 0, ""}, - {"FILE_BEGIN", Const, 0, ""}, - {"FILE_CURRENT", Const, 0, ""}, - {"FILE_END", Const, 0, ""}, - {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0, ""}, - {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4, ""}, - {"FILE_FLAG_OVERLAPPED", Const, 0, ""}, - {"FILE_LIST_DIRECTORY", Const, 0, ""}, - {"FILE_MAP_COPY", Const, 0, ""}, - {"FILE_MAP_EXECUTE", Const, 0, ""}, - {"FILE_MAP_READ", Const, 0, ""}, - {"FILE_MAP_WRITE", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_CREATION", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0, ""}, - {"FILE_NOTIFY_CHANGE_SIZE", Const, 0, ""}, - {"FILE_SHARE_DELETE", Const, 0, ""}, - {"FILE_SHARE_READ", Const, 0, ""}, - {"FILE_SHARE_WRITE", Const, 0, ""}, - {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2, ""}, - {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2, ""}, - {"FILE_TYPE_CHAR", Const, 0, ""}, - {"FILE_TYPE_DISK", Const, 0, ""}, - {"FILE_TYPE_PIPE", Const, 0, ""}, - {"FILE_TYPE_REMOTE", Const, 0, ""}, - {"FILE_TYPE_UNKNOWN", Const, 0, ""}, - {"FILE_WRITE_ATTRIBUTES", Const, 0, ""}, - {"FLUSHO", Const, 0, ""}, - {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0, ""}, - {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0, ""}, - {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0, ""}, - {"FORMAT_MESSAGE_FROM_STRING", Const, 0, ""}, - {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0, ""}, - {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0, ""}, - {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0, ""}, - {"FSCTL_GET_REPARSE_POINT", Const, 4, ""}, - {"F_ADDFILESIGS", Const, 0, ""}, - {"F_ADDSIGS", Const, 0, ""}, - {"F_ALLOCATEALL", Const, 0, ""}, - {"F_ALLOCATECONTIG", Const, 0, ""}, - {"F_CANCEL", Const, 0, ""}, - {"F_CHKCLEAN", Const, 0, ""}, - {"F_CLOSEM", Const, 1, ""}, - {"F_DUP2FD", Const, 0, ""}, - {"F_DUP2FD_CLOEXEC", Const, 1, ""}, - {"F_DUPFD", Const, 0, ""}, - {"F_DUPFD_CLOEXEC", Const, 0, ""}, - {"F_EXLCK", Const, 0, ""}, - {"F_FINDSIGS", Const, 16, ""}, - {"F_FLUSH_DATA", Const, 0, ""}, - {"F_FREEZE_FS", Const, 0, ""}, - {"F_FSCTL", Const, 1, ""}, - {"F_FSDIRMASK", Const, 1, ""}, - {"F_FSIN", Const, 1, ""}, - {"F_FSINOUT", Const, 1, ""}, - {"F_FSOUT", Const, 1, ""}, - {"F_FSPRIV", Const, 1, ""}, - {"F_FSVOID", Const, 1, ""}, - {"F_FULLFSYNC", Const, 0, ""}, - {"F_GETCODEDIR", Const, 16, ""}, - {"F_GETFD", Const, 0, ""}, - {"F_GETFL", Const, 0, ""}, - {"F_GETLEASE", Const, 0, ""}, - {"F_GETLK", Const, 0, ""}, - {"F_GETLK64", Const, 0, ""}, - {"F_GETLKPID", Const, 0, ""}, - {"F_GETNOSIGPIPE", Const, 0, ""}, - {"F_GETOWN", Const, 0, ""}, - {"F_GETOWN_EX", Const, 0, ""}, - {"F_GETPATH", Const, 0, ""}, - {"F_GETPATH_MTMINFO", Const, 0, ""}, - {"F_GETPIPE_SZ", Const, 0, ""}, - {"F_GETPROTECTIONCLASS", Const, 0, ""}, - {"F_GETPROTECTIONLEVEL", Const, 16, ""}, - {"F_GETSIG", Const, 0, ""}, - {"F_GLOBAL_NOCACHE", Const, 0, ""}, - {"F_LOCK", Const, 0, ""}, - {"F_LOG2PHYS", Const, 0, ""}, - {"F_LOG2PHYS_EXT", Const, 0, ""}, - {"F_MARKDEPENDENCY", Const, 0, ""}, - {"F_MAXFD", Const, 1, ""}, - {"F_NOCACHE", Const, 0, ""}, - {"F_NODIRECT", Const, 0, ""}, - {"F_NOTIFY", Const, 0, ""}, - {"F_OGETLK", Const, 0, ""}, - {"F_OK", Const, 0, ""}, - {"F_OSETLK", Const, 0, ""}, - {"F_OSETLKW", Const, 0, ""}, - {"F_PARAM_MASK", Const, 1, ""}, - {"F_PARAM_MAX", Const, 1, ""}, - {"F_PATHPKG_CHECK", Const, 0, ""}, - {"F_PEOFPOSMODE", Const, 0, ""}, - {"F_PREALLOCATE", Const, 0, ""}, - {"F_RDADVISE", Const, 0, ""}, - {"F_RDAHEAD", Const, 0, ""}, - {"F_RDLCK", Const, 0, ""}, - {"F_READAHEAD", Const, 0, ""}, - {"F_READBOOTSTRAP", Const, 0, ""}, - {"F_SETBACKINGSTORE", Const, 0, ""}, - {"F_SETFD", Const, 0, ""}, - {"F_SETFL", Const, 0, ""}, - {"F_SETLEASE", Const, 0, ""}, - {"F_SETLK", Const, 0, ""}, - {"F_SETLK64", Const, 0, ""}, - {"F_SETLKW", Const, 0, ""}, - {"F_SETLKW64", Const, 0, ""}, - {"F_SETLKWTIMEOUT", Const, 16, ""}, - {"F_SETLK_REMOTE", Const, 0, ""}, - {"F_SETNOSIGPIPE", Const, 0, ""}, - {"F_SETOWN", Const, 0, ""}, - {"F_SETOWN_EX", Const, 0, ""}, - {"F_SETPIPE_SZ", Const, 0, ""}, - {"F_SETPROTECTIONCLASS", Const, 0, ""}, - {"F_SETSIG", Const, 0, ""}, - {"F_SETSIZE", Const, 0, ""}, - {"F_SHLCK", Const, 0, ""}, - {"F_SINGLE_WRITER", Const, 16, ""}, - {"F_TEST", Const, 0, ""}, - {"F_THAW_FS", Const, 0, ""}, - {"F_TLOCK", Const, 0, ""}, - {"F_TRANSCODEKEY", Const, 16, ""}, - {"F_ULOCK", Const, 0, ""}, - {"F_UNLCK", Const, 0, ""}, - {"F_UNLCKSYS", Const, 0, ""}, - {"F_VOLPOSMODE", Const, 0, ""}, - {"F_WRITEBOOTSTRAP", Const, 0, ""}, - {"F_WRLCK", Const, 0, ""}, - {"Faccessat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) (err error)"}, - {"Fallocate", Func, 0, "func(fd int, mode uint32, off int64, len int64) (err error)"}, - {"Fbootstraptransfer_t", Type, 0, ""}, - {"Fbootstraptransfer_t.Buffer", Field, 0, ""}, - {"Fbootstraptransfer_t.Length", Field, 0, ""}, - {"Fbootstraptransfer_t.Offset", Field, 0, ""}, - {"Fchdir", Func, 0, "func(fd int) (err error)"}, - {"Fchflags", Func, 0, ""}, - {"Fchmod", Func, 0, "func(fd int, mode uint32) (err error)"}, - {"Fchmodat", Func, 0, "func(dirfd int, path string, mode uint32, flags int) error"}, - {"Fchown", Func, 0, "func(fd int, uid int, gid int) (err error)"}, - {"Fchownat", Func, 0, "func(dirfd int, path string, uid int, gid int, flags int) (err error)"}, - {"FcntlFlock", Func, 3, "func(fd uintptr, cmd int, lk *Flock_t) error"}, - {"FdSet", Type, 0, ""}, - {"FdSet.Bits", Field, 0, ""}, - {"FdSet.X__fds_bits", Field, 0, ""}, - {"Fdatasync", Func, 0, "func(fd int) (err error)"}, - {"FileNotifyInformation", Type, 0, ""}, - {"FileNotifyInformation.Action", Field, 0, ""}, - {"FileNotifyInformation.FileName", Field, 0, ""}, - {"FileNotifyInformation.FileNameLength", Field, 0, ""}, - {"FileNotifyInformation.NextEntryOffset", Field, 0, ""}, - {"Filetime", Type, 0, ""}, - {"Filetime.HighDateTime", Field, 0, ""}, - {"Filetime.LowDateTime", Field, 0, ""}, - {"FindClose", Func, 0, ""}, - {"FindFirstFile", Func, 0, ""}, - {"FindNextFile", Func, 0, ""}, - {"Flock", Func, 0, "func(fd int, how int) (err error)"}, - {"Flock_t", Type, 0, ""}, - {"Flock_t.Len", Field, 0, ""}, - {"Flock_t.Pad_cgo_0", Field, 0, ""}, - {"Flock_t.Pad_cgo_1", Field, 3, ""}, - {"Flock_t.Pid", Field, 0, ""}, - {"Flock_t.Start", Field, 0, ""}, - {"Flock_t.Sysid", Field, 0, ""}, - {"Flock_t.Type", Field, 0, ""}, - {"Flock_t.Whence", Field, 0, ""}, - {"FlushBpf", Func, 0, ""}, - {"FlushFileBuffers", Func, 0, ""}, - {"FlushViewOfFile", Func, 0, ""}, - {"ForkExec", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, err error)"}, - {"ForkLock", Var, 0, ""}, - {"FormatMessage", Func, 0, ""}, - {"Fpathconf", Func, 0, ""}, - {"FreeAddrInfoW", Func, 1, ""}, - {"FreeEnvironmentStrings", Func, 0, ""}, - {"FreeLibrary", Func, 0, ""}, - {"Fsid", Type, 0, ""}, - {"Fsid.Val", Field, 0, ""}, - {"Fsid.X__fsid_val", Field, 2, ""}, - {"Fsid.X__val", Field, 0, ""}, - {"Fstat", Func, 0, "func(fd int, stat *Stat_t) (err error)"}, - {"Fstatat", Func, 12, ""}, - {"Fstatfs", Func, 0, "func(fd int, buf *Statfs_t) (err error)"}, - {"Fstore_t", Type, 0, ""}, - {"Fstore_t.Bytesalloc", Field, 0, ""}, - {"Fstore_t.Flags", Field, 0, ""}, - {"Fstore_t.Length", Field, 0, ""}, - {"Fstore_t.Offset", Field, 0, ""}, - {"Fstore_t.Posmode", Field, 0, ""}, - {"Fsync", Func, 0, "func(fd int) (err error)"}, - {"Ftruncate", Func, 0, "func(fd int, length int64) (err error)"}, - {"FullPath", Func, 4, ""}, - {"Futimes", Func, 0, "func(fd int, tv []Timeval) (err error)"}, - {"Futimesat", Func, 0, "func(dirfd int, path string, tv []Timeval) (err error)"}, - {"GENERIC_ALL", Const, 0, ""}, - {"GENERIC_EXECUTE", Const, 0, ""}, - {"GENERIC_READ", Const, 0, ""}, - {"GENERIC_WRITE", Const, 0, ""}, - {"GUID", Type, 1, ""}, - {"GUID.Data1", Field, 1, ""}, - {"GUID.Data2", Field, 1, ""}, - {"GUID.Data3", Field, 1, ""}, - {"GUID.Data4", Field, 1, ""}, - {"GetAcceptExSockaddrs", Func, 0, ""}, - {"GetAdaptersInfo", Func, 0, ""}, - {"GetAddrInfoW", Func, 1, ""}, - {"GetCommandLine", Func, 0, ""}, - {"GetComputerName", Func, 0, ""}, - {"GetConsoleMode", Func, 1, ""}, - {"GetCurrentDirectory", Func, 0, ""}, - {"GetCurrentProcess", Func, 0, ""}, - {"GetEnvironmentStrings", Func, 0, ""}, - {"GetEnvironmentVariable", Func, 0, ""}, - {"GetExitCodeProcess", Func, 0, ""}, - {"GetFileAttributes", Func, 0, ""}, - {"GetFileAttributesEx", Func, 0, ""}, - {"GetFileExInfoStandard", Const, 0, ""}, - {"GetFileExMaxInfoLevel", Const, 0, ""}, - {"GetFileInformationByHandle", Func, 0, ""}, - {"GetFileType", Func, 0, ""}, - {"GetFullPathName", Func, 0, ""}, - {"GetHostByName", Func, 0, ""}, - {"GetIfEntry", Func, 0, ""}, - {"GetLastError", Func, 0, ""}, - {"GetLengthSid", Func, 0, ""}, - {"GetLongPathName", Func, 0, ""}, - {"GetProcAddress", Func, 0, ""}, - {"GetProcessTimes", Func, 0, ""}, - {"GetProtoByName", Func, 0, ""}, - {"GetQueuedCompletionStatus", Func, 0, ""}, - {"GetServByName", Func, 0, ""}, - {"GetShortPathName", Func, 0, ""}, - {"GetStartupInfo", Func, 0, ""}, - {"GetStdHandle", Func, 0, ""}, - {"GetSystemTimeAsFileTime", Func, 0, ""}, - {"GetTempPath", Func, 0, ""}, - {"GetTimeZoneInformation", Func, 0, ""}, - {"GetTokenInformation", Func, 0, ""}, - {"GetUserNameEx", Func, 0, ""}, - {"GetUserProfileDirectory", Func, 0, ""}, - {"GetVersion", Func, 0, ""}, - {"Getcwd", Func, 0, "func(buf []byte) (n int, err error)"}, - {"Getdents", Func, 0, "func(fd int, buf []byte) (n int, err error)"}, - {"Getdirentries", Func, 0, ""}, - {"Getdtablesize", Func, 0, ""}, - {"Getegid", Func, 0, "func() (egid int)"}, - {"Getenv", Func, 0, "func(key string) (value string, found bool)"}, - {"Geteuid", Func, 0, "func() (euid int)"}, - {"Getfsstat", Func, 0, ""}, - {"Getgid", Func, 0, "func() (gid int)"}, - {"Getgroups", Func, 0, "func() (gids []int, err error)"}, - {"Getpagesize", Func, 0, "func() int"}, - {"Getpeername", Func, 0, "func(fd int) (sa Sockaddr, err error)"}, - {"Getpgid", Func, 0, "func(pid int) (pgid int, err error)"}, - {"Getpgrp", Func, 0, "func() (pid int)"}, - {"Getpid", Func, 0, "func() (pid int)"}, - {"Getppid", Func, 0, "func() (ppid int)"}, - {"Getpriority", Func, 0, "func(which int, who int) (prio int, err error)"}, - {"Getrlimit", Func, 0, "func(resource int, rlim *Rlimit) (err error)"}, - {"Getrusage", Func, 0, "func(who int, rusage *Rusage) (err error)"}, - {"Getsid", Func, 0, ""}, - {"Getsockname", Func, 0, "func(fd int) (sa Sockaddr, err error)"}, - {"Getsockopt", Func, 1, ""}, - {"GetsockoptByte", Func, 0, ""}, - {"GetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int) (*ICMPv6Filter, error)"}, - {"GetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int) (*IPMreq, error)"}, - {"GetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int) (*IPMreqn, error)"}, - {"GetsockoptIPv6MTUInfo", Func, 2, "func(fd int, level int, opt int) (*IPv6MTUInfo, error)"}, - {"GetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int) (*IPv6Mreq, error)"}, - {"GetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int) (value [4]byte, err error)"}, - {"GetsockoptInt", Func, 0, "func(fd int, level int, opt int) (value int, err error)"}, - {"GetsockoptUcred", Func, 1, "func(fd int, level int, opt int) (*Ucred, error)"}, - {"Gettid", Func, 0, "func() (tid int)"}, - {"Gettimeofday", Func, 0, "func(tv *Timeval) (err error)"}, - {"Getuid", Func, 0, "func() (uid int)"}, - {"Getwd", Func, 0, "func() (wd string, err error)"}, - {"Getxattr", Func, 1, "func(path string, attr string, dest []byte) (sz int, err error)"}, - {"HANDLE_FLAG_INHERIT", Const, 0, ""}, - {"HKEY_CLASSES_ROOT", Const, 0, ""}, - {"HKEY_CURRENT_CONFIG", Const, 0, ""}, - {"HKEY_CURRENT_USER", Const, 0, ""}, - {"HKEY_DYN_DATA", Const, 0, ""}, - {"HKEY_LOCAL_MACHINE", Const, 0, ""}, - {"HKEY_PERFORMANCE_DATA", Const, 0, ""}, - {"HKEY_USERS", Const, 0, ""}, - {"HUPCL", Const, 0, ""}, - {"Handle", Type, 0, ""}, - {"Hostent", Type, 0, ""}, - {"Hostent.AddrList", Field, 0, ""}, - {"Hostent.AddrType", Field, 0, ""}, - {"Hostent.Aliases", Field, 0, ""}, - {"Hostent.Length", Field, 0, ""}, - {"Hostent.Name", Field, 0, ""}, - {"ICANON", Const, 0, ""}, - {"ICMP6_FILTER", Const, 2, ""}, - {"ICMPV6_FILTER", Const, 2, ""}, - {"ICMPv6Filter", Type, 2, ""}, - {"ICMPv6Filter.Data", Field, 2, ""}, - {"ICMPv6Filter.Filt", Field, 2, ""}, - {"ICRNL", Const, 0, ""}, - {"IEXTEN", Const, 0, ""}, - {"IFAN_ARRIVAL", Const, 1, ""}, - {"IFAN_DEPARTURE", Const, 1, ""}, - {"IFA_ADDRESS", Const, 0, ""}, - {"IFA_ANYCAST", Const, 0, ""}, - {"IFA_BROADCAST", Const, 0, ""}, - {"IFA_CACHEINFO", Const, 0, ""}, - {"IFA_F_DADFAILED", Const, 0, ""}, - {"IFA_F_DEPRECATED", Const, 0, ""}, - {"IFA_F_HOMEADDRESS", Const, 0, ""}, - {"IFA_F_NODAD", Const, 0, ""}, - {"IFA_F_OPTIMISTIC", Const, 0, ""}, - {"IFA_F_PERMANENT", Const, 0, ""}, - {"IFA_F_SECONDARY", Const, 0, ""}, - {"IFA_F_TEMPORARY", Const, 0, ""}, - {"IFA_F_TENTATIVE", Const, 0, ""}, - {"IFA_LABEL", Const, 0, ""}, - {"IFA_LOCAL", Const, 0, ""}, - {"IFA_MAX", Const, 0, ""}, - {"IFA_MULTICAST", Const, 0, ""}, - {"IFA_ROUTE", Const, 1, ""}, - {"IFA_UNSPEC", Const, 0, ""}, - {"IFF_ALLMULTI", Const, 0, ""}, - {"IFF_ALTPHYS", Const, 0, ""}, - {"IFF_AUTOMEDIA", Const, 0, ""}, - {"IFF_BROADCAST", Const, 0, ""}, - {"IFF_CANTCHANGE", Const, 0, ""}, - {"IFF_CANTCONFIG", Const, 1, ""}, - {"IFF_DEBUG", Const, 0, ""}, - {"IFF_DRV_OACTIVE", Const, 0, ""}, - {"IFF_DRV_RUNNING", Const, 0, ""}, - {"IFF_DYING", Const, 0, ""}, - {"IFF_DYNAMIC", Const, 0, ""}, - {"IFF_LINK0", Const, 0, ""}, - {"IFF_LINK1", Const, 0, ""}, - {"IFF_LINK2", Const, 0, ""}, - {"IFF_LOOPBACK", Const, 0, ""}, - {"IFF_MASTER", Const, 0, ""}, - {"IFF_MONITOR", Const, 0, ""}, - {"IFF_MULTICAST", Const, 0, ""}, - {"IFF_NOARP", Const, 0, ""}, - {"IFF_NOTRAILERS", Const, 0, ""}, - {"IFF_NO_PI", Const, 0, ""}, - {"IFF_OACTIVE", Const, 0, ""}, - {"IFF_ONE_QUEUE", Const, 0, ""}, - {"IFF_POINTOPOINT", Const, 0, ""}, - {"IFF_POINTTOPOINT", Const, 0, ""}, - {"IFF_PORTSEL", Const, 0, ""}, - {"IFF_PPROMISC", Const, 0, ""}, - {"IFF_PROMISC", Const, 0, ""}, - {"IFF_RENAMING", Const, 0, ""}, - {"IFF_RUNNING", Const, 0, ""}, - {"IFF_SIMPLEX", Const, 0, ""}, - {"IFF_SLAVE", Const, 0, ""}, - {"IFF_SMART", Const, 0, ""}, - {"IFF_STATICARP", Const, 0, ""}, - {"IFF_TAP", Const, 0, ""}, - {"IFF_TUN", Const, 0, ""}, - {"IFF_TUN_EXCL", Const, 0, ""}, - {"IFF_UP", Const, 0, ""}, - {"IFF_VNET_HDR", Const, 0, ""}, - {"IFLA_ADDRESS", Const, 0, ""}, - {"IFLA_BROADCAST", Const, 0, ""}, - {"IFLA_COST", Const, 0, ""}, - {"IFLA_IFALIAS", Const, 0, ""}, - {"IFLA_IFNAME", Const, 0, ""}, - {"IFLA_LINK", Const, 0, ""}, - {"IFLA_LINKINFO", Const, 0, ""}, - {"IFLA_LINKMODE", Const, 0, ""}, - {"IFLA_MAP", Const, 0, ""}, - {"IFLA_MASTER", Const, 0, ""}, - {"IFLA_MAX", Const, 0, ""}, - {"IFLA_MTU", Const, 0, ""}, - {"IFLA_NET_NS_PID", Const, 0, ""}, - {"IFLA_OPERSTATE", Const, 0, ""}, - {"IFLA_PRIORITY", Const, 0, ""}, - {"IFLA_PROTINFO", Const, 0, ""}, - {"IFLA_QDISC", Const, 0, ""}, - {"IFLA_STATS", Const, 0, ""}, - {"IFLA_TXQLEN", Const, 0, ""}, - {"IFLA_UNSPEC", Const, 0, ""}, - {"IFLA_WEIGHT", Const, 0, ""}, - {"IFLA_WIRELESS", Const, 0, ""}, - {"IFNAMSIZ", Const, 0, ""}, - {"IFT_1822", Const, 0, ""}, - {"IFT_A12MPPSWITCH", Const, 0, ""}, - {"IFT_AAL2", Const, 0, ""}, - {"IFT_AAL5", Const, 0, ""}, - {"IFT_ADSL", Const, 0, ""}, - {"IFT_AFLANE8023", Const, 0, ""}, - {"IFT_AFLANE8025", Const, 0, ""}, - {"IFT_ARAP", Const, 0, ""}, - {"IFT_ARCNET", Const, 0, ""}, - {"IFT_ARCNETPLUS", Const, 0, ""}, - {"IFT_ASYNC", Const, 0, ""}, - {"IFT_ATM", Const, 0, ""}, - {"IFT_ATMDXI", Const, 0, ""}, - {"IFT_ATMFUNI", Const, 0, ""}, - {"IFT_ATMIMA", Const, 0, ""}, - {"IFT_ATMLOGICAL", Const, 0, ""}, - {"IFT_ATMRADIO", Const, 0, ""}, - {"IFT_ATMSUBINTERFACE", Const, 0, ""}, - {"IFT_ATMVCIENDPT", Const, 0, ""}, - {"IFT_ATMVIRTUAL", Const, 0, ""}, - {"IFT_BGPPOLICYACCOUNTING", Const, 0, ""}, - {"IFT_BLUETOOTH", Const, 1, ""}, - {"IFT_BRIDGE", Const, 0, ""}, - {"IFT_BSC", Const, 0, ""}, - {"IFT_CARP", Const, 0, ""}, - {"IFT_CCTEMUL", Const, 0, ""}, - {"IFT_CELLULAR", Const, 0, ""}, - {"IFT_CEPT", Const, 0, ""}, - {"IFT_CES", Const, 0, ""}, - {"IFT_CHANNEL", Const, 0, ""}, - {"IFT_CNR", Const, 0, ""}, - {"IFT_COFFEE", Const, 0, ""}, - {"IFT_COMPOSITELINK", Const, 0, ""}, - {"IFT_DCN", Const, 0, ""}, - {"IFT_DIGITALPOWERLINE", Const, 0, ""}, - {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0, ""}, - {"IFT_DLSW", Const, 0, ""}, - {"IFT_DOCSCABLEDOWNSTREAM", Const, 0, ""}, - {"IFT_DOCSCABLEMACLAYER", Const, 0, ""}, - {"IFT_DOCSCABLEUPSTREAM", Const, 0, ""}, - {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1, ""}, - {"IFT_DS0", Const, 0, ""}, - {"IFT_DS0BUNDLE", Const, 0, ""}, - {"IFT_DS1FDL", Const, 0, ""}, - {"IFT_DS3", Const, 0, ""}, - {"IFT_DTM", Const, 0, ""}, - {"IFT_DUMMY", Const, 1, ""}, - {"IFT_DVBASILN", Const, 0, ""}, - {"IFT_DVBASIOUT", Const, 0, ""}, - {"IFT_DVBRCCDOWNSTREAM", Const, 0, ""}, - {"IFT_DVBRCCMACLAYER", Const, 0, ""}, - {"IFT_DVBRCCUPSTREAM", Const, 0, ""}, - {"IFT_ECONET", Const, 1, ""}, - {"IFT_ENC", Const, 0, ""}, - {"IFT_EON", Const, 0, ""}, - {"IFT_EPLRS", Const, 0, ""}, - {"IFT_ESCON", Const, 0, ""}, - {"IFT_ETHER", Const, 0, ""}, - {"IFT_FAITH", Const, 0, ""}, - {"IFT_FAST", Const, 0, ""}, - {"IFT_FASTETHER", Const, 0, ""}, - {"IFT_FASTETHERFX", Const, 0, ""}, - {"IFT_FDDI", Const, 0, ""}, - {"IFT_FIBRECHANNEL", Const, 0, ""}, - {"IFT_FRAMERELAYINTERCONNECT", Const, 0, ""}, - {"IFT_FRAMERELAYMPI", Const, 0, ""}, - {"IFT_FRDLCIENDPT", Const, 0, ""}, - {"IFT_FRELAY", Const, 0, ""}, - {"IFT_FRELAYDCE", Const, 0, ""}, - {"IFT_FRF16MFRBUNDLE", Const, 0, ""}, - {"IFT_FRFORWARD", Const, 0, ""}, - {"IFT_G703AT2MB", Const, 0, ""}, - {"IFT_G703AT64K", Const, 0, ""}, - {"IFT_GIF", Const, 0, ""}, - {"IFT_GIGABITETHERNET", Const, 0, ""}, - {"IFT_GR303IDT", Const, 0, ""}, - {"IFT_GR303RDT", Const, 0, ""}, - {"IFT_H323GATEKEEPER", Const, 0, ""}, - {"IFT_H323PROXY", Const, 0, ""}, - {"IFT_HDH1822", Const, 0, ""}, - {"IFT_HDLC", Const, 0, ""}, - {"IFT_HDSL2", Const, 0, ""}, - {"IFT_HIPERLAN2", Const, 0, ""}, - {"IFT_HIPPI", Const, 0, ""}, - {"IFT_HIPPIINTERFACE", Const, 0, ""}, - {"IFT_HOSTPAD", Const, 0, ""}, - {"IFT_HSSI", Const, 0, ""}, - {"IFT_HY", Const, 0, ""}, - {"IFT_IBM370PARCHAN", Const, 0, ""}, - {"IFT_IDSL", Const, 0, ""}, - {"IFT_IEEE1394", Const, 0, ""}, - {"IFT_IEEE80211", Const, 0, ""}, - {"IFT_IEEE80212", Const, 0, ""}, - {"IFT_IEEE8023ADLAG", Const, 0, ""}, - {"IFT_IFGSN", Const, 0, ""}, - {"IFT_IMT", Const, 0, ""}, - {"IFT_INFINIBAND", Const, 1, ""}, - {"IFT_INTERLEAVE", Const, 0, ""}, - {"IFT_IP", Const, 0, ""}, - {"IFT_IPFORWARD", Const, 0, ""}, - {"IFT_IPOVERATM", Const, 0, ""}, - {"IFT_IPOVERCDLC", Const, 0, ""}, - {"IFT_IPOVERCLAW", Const, 0, ""}, - {"IFT_IPSWITCH", Const, 0, ""}, - {"IFT_IPXIP", Const, 0, ""}, - {"IFT_ISDN", Const, 0, ""}, - {"IFT_ISDNBASIC", Const, 0, ""}, - {"IFT_ISDNPRIMARY", Const, 0, ""}, - {"IFT_ISDNS", Const, 0, ""}, - {"IFT_ISDNU", Const, 0, ""}, - {"IFT_ISO88022LLC", Const, 0, ""}, - {"IFT_ISO88023", Const, 0, ""}, - {"IFT_ISO88024", Const, 0, ""}, - {"IFT_ISO88025", Const, 0, ""}, - {"IFT_ISO88025CRFPINT", Const, 0, ""}, - {"IFT_ISO88025DTR", Const, 0, ""}, - {"IFT_ISO88025FIBER", Const, 0, ""}, - {"IFT_ISO88026", Const, 0, ""}, - {"IFT_ISUP", Const, 0, ""}, - {"IFT_L2VLAN", Const, 0, ""}, - {"IFT_L3IPVLAN", Const, 0, ""}, - {"IFT_L3IPXVLAN", Const, 0, ""}, - {"IFT_LAPB", Const, 0, ""}, - {"IFT_LAPD", Const, 0, ""}, - {"IFT_LAPF", Const, 0, ""}, - {"IFT_LINEGROUP", Const, 1, ""}, - {"IFT_LOCALTALK", Const, 0, ""}, - {"IFT_LOOP", Const, 0, ""}, - {"IFT_MEDIAMAILOVERIP", Const, 0, ""}, - {"IFT_MFSIGLINK", Const, 0, ""}, - {"IFT_MIOX25", Const, 0, ""}, - {"IFT_MODEM", Const, 0, ""}, - {"IFT_MPC", Const, 0, ""}, - {"IFT_MPLS", Const, 0, ""}, - {"IFT_MPLSTUNNEL", Const, 0, ""}, - {"IFT_MSDSL", Const, 0, ""}, - {"IFT_MVL", Const, 0, ""}, - {"IFT_MYRINET", Const, 0, ""}, - {"IFT_NFAS", Const, 0, ""}, - {"IFT_NSIP", Const, 0, ""}, - {"IFT_OPTICALCHANNEL", Const, 0, ""}, - {"IFT_OPTICALTRANSPORT", Const, 0, ""}, - {"IFT_OTHER", Const, 0, ""}, - {"IFT_P10", Const, 0, ""}, - {"IFT_P80", Const, 0, ""}, - {"IFT_PARA", Const, 0, ""}, - {"IFT_PDP", Const, 0, ""}, - {"IFT_PFLOG", Const, 0, ""}, - {"IFT_PFLOW", Const, 1, ""}, - {"IFT_PFSYNC", Const, 0, ""}, - {"IFT_PLC", Const, 0, ""}, - {"IFT_PON155", Const, 1, ""}, - {"IFT_PON622", Const, 1, ""}, - {"IFT_POS", Const, 0, ""}, - {"IFT_PPP", Const, 0, ""}, - {"IFT_PPPMULTILINKBUNDLE", Const, 0, ""}, - {"IFT_PROPATM", Const, 1, ""}, - {"IFT_PROPBWAP2MP", Const, 0, ""}, - {"IFT_PROPCNLS", Const, 0, ""}, - {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0, ""}, - {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0, ""}, - {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0, ""}, - {"IFT_PROPMUX", Const, 0, ""}, - {"IFT_PROPVIRTUAL", Const, 0, ""}, - {"IFT_PROPWIRELESSP2P", Const, 0, ""}, - {"IFT_PTPSERIAL", Const, 0, ""}, - {"IFT_PVC", Const, 0, ""}, - {"IFT_Q2931", Const, 1, ""}, - {"IFT_QLLC", Const, 0, ""}, - {"IFT_RADIOMAC", Const, 0, ""}, - {"IFT_RADSL", Const, 0, ""}, - {"IFT_REACHDSL", Const, 0, ""}, - {"IFT_RFC1483", Const, 0, ""}, - {"IFT_RS232", Const, 0, ""}, - {"IFT_RSRB", Const, 0, ""}, - {"IFT_SDLC", Const, 0, ""}, - {"IFT_SDSL", Const, 0, ""}, - {"IFT_SHDSL", Const, 0, ""}, - {"IFT_SIP", Const, 0, ""}, - {"IFT_SIPSIG", Const, 1, ""}, - {"IFT_SIPTG", Const, 1, ""}, - {"IFT_SLIP", Const, 0, ""}, - {"IFT_SMDSDXI", Const, 0, ""}, - {"IFT_SMDSICIP", Const, 0, ""}, - {"IFT_SONET", Const, 0, ""}, - {"IFT_SONETOVERHEADCHANNEL", Const, 0, ""}, - {"IFT_SONETPATH", Const, 0, ""}, - {"IFT_SONETVT", Const, 0, ""}, - {"IFT_SRP", Const, 0, ""}, - {"IFT_SS7SIGLINK", Const, 0, ""}, - {"IFT_STACKTOSTACK", Const, 0, ""}, - {"IFT_STARLAN", Const, 0, ""}, - {"IFT_STF", Const, 0, ""}, - {"IFT_T1", Const, 0, ""}, - {"IFT_TDLC", Const, 0, ""}, - {"IFT_TELINK", Const, 1, ""}, - {"IFT_TERMPAD", Const, 0, ""}, - {"IFT_TR008", Const, 0, ""}, - {"IFT_TRANSPHDLC", Const, 0, ""}, - {"IFT_TUNNEL", Const, 0, ""}, - {"IFT_ULTRA", Const, 0, ""}, - {"IFT_USB", Const, 0, ""}, - {"IFT_V11", Const, 0, ""}, - {"IFT_V35", Const, 0, ""}, - {"IFT_V36", Const, 0, ""}, - {"IFT_V37", Const, 0, ""}, - {"IFT_VDSL", Const, 0, ""}, - {"IFT_VIRTUALIPADDRESS", Const, 0, ""}, - {"IFT_VIRTUALTG", Const, 1, ""}, - {"IFT_VOICEDID", Const, 1, ""}, - {"IFT_VOICEEM", Const, 0, ""}, - {"IFT_VOICEEMFGD", Const, 1, ""}, - {"IFT_VOICEENCAP", Const, 0, ""}, - {"IFT_VOICEFGDEANA", Const, 1, ""}, - {"IFT_VOICEFXO", Const, 0, ""}, - {"IFT_VOICEFXS", Const, 0, ""}, - {"IFT_VOICEOVERATM", Const, 0, ""}, - {"IFT_VOICEOVERCABLE", Const, 1, ""}, - {"IFT_VOICEOVERFRAMERELAY", Const, 0, ""}, - {"IFT_VOICEOVERIP", Const, 0, ""}, - {"IFT_X213", Const, 0, ""}, - {"IFT_X25", Const, 0, ""}, - {"IFT_X25DDN", Const, 0, ""}, - {"IFT_X25HUNTGROUP", Const, 0, ""}, - {"IFT_X25MLP", Const, 0, ""}, - {"IFT_X25PLE", Const, 0, ""}, - {"IFT_XETHER", Const, 0, ""}, - {"IGNBRK", Const, 0, ""}, - {"IGNCR", Const, 0, ""}, - {"IGNORE", Const, 0, ""}, - {"IGNPAR", Const, 0, ""}, - {"IMAXBEL", Const, 0, ""}, - {"INFINITE", Const, 0, ""}, - {"INLCR", Const, 0, ""}, - {"INPCK", Const, 0, ""}, - {"INVALID_FILE_ATTRIBUTES", Const, 0, ""}, - {"IN_ACCESS", Const, 0, ""}, - {"IN_ALL_EVENTS", Const, 0, ""}, - {"IN_ATTRIB", Const, 0, ""}, - {"IN_CLASSA_HOST", Const, 0, ""}, - {"IN_CLASSA_MAX", Const, 0, ""}, - {"IN_CLASSA_NET", Const, 0, ""}, - {"IN_CLASSA_NSHIFT", Const, 0, ""}, - {"IN_CLASSB_HOST", Const, 0, ""}, - {"IN_CLASSB_MAX", Const, 0, ""}, - {"IN_CLASSB_NET", Const, 0, ""}, - {"IN_CLASSB_NSHIFT", Const, 0, ""}, - {"IN_CLASSC_HOST", Const, 0, ""}, - {"IN_CLASSC_NET", Const, 0, ""}, - {"IN_CLASSC_NSHIFT", Const, 0, ""}, - {"IN_CLASSD_HOST", Const, 0, ""}, - {"IN_CLASSD_NET", Const, 0, ""}, - {"IN_CLASSD_NSHIFT", Const, 0, ""}, - {"IN_CLOEXEC", Const, 0, ""}, - {"IN_CLOSE", Const, 0, ""}, - {"IN_CLOSE_NOWRITE", Const, 0, ""}, - {"IN_CLOSE_WRITE", Const, 0, ""}, - {"IN_CREATE", Const, 0, ""}, - {"IN_DELETE", Const, 0, ""}, - {"IN_DELETE_SELF", Const, 0, ""}, - {"IN_DONT_FOLLOW", Const, 0, ""}, - {"IN_EXCL_UNLINK", Const, 0, ""}, - {"IN_IGNORED", Const, 0, ""}, - {"IN_ISDIR", Const, 0, ""}, - {"IN_LINKLOCALNETNUM", Const, 0, ""}, - {"IN_LOOPBACKNET", Const, 0, ""}, - {"IN_MASK_ADD", Const, 0, ""}, - {"IN_MODIFY", Const, 0, ""}, - {"IN_MOVE", Const, 0, ""}, - {"IN_MOVED_FROM", Const, 0, ""}, - {"IN_MOVED_TO", Const, 0, ""}, - {"IN_MOVE_SELF", Const, 0, ""}, - {"IN_NONBLOCK", Const, 0, ""}, - {"IN_ONESHOT", Const, 0, ""}, - {"IN_ONLYDIR", Const, 0, ""}, - {"IN_OPEN", Const, 0, ""}, - {"IN_Q_OVERFLOW", Const, 0, ""}, - {"IN_RFC3021_HOST", Const, 1, ""}, - {"IN_RFC3021_MASK", Const, 1, ""}, - {"IN_RFC3021_NET", Const, 1, ""}, - {"IN_RFC3021_NSHIFT", Const, 1, ""}, - {"IN_UNMOUNT", Const, 0, ""}, - {"IOC_IN", Const, 1, ""}, - {"IOC_INOUT", Const, 1, ""}, - {"IOC_OUT", Const, 1, ""}, - {"IOC_VENDOR", Const, 3, ""}, - {"IOC_WS2", Const, 1, ""}, - {"IO_REPARSE_TAG_SYMLINK", Const, 4, ""}, - {"IPMreq", Type, 0, ""}, - {"IPMreq.Interface", Field, 0, ""}, - {"IPMreq.Multiaddr", Field, 0, ""}, - {"IPMreqn", Type, 0, ""}, - {"IPMreqn.Address", Field, 0, ""}, - {"IPMreqn.Ifindex", Field, 0, ""}, - {"IPMreqn.Multiaddr", Field, 0, ""}, - {"IPPROTO_3PC", Const, 0, ""}, - {"IPPROTO_ADFS", Const, 0, ""}, - {"IPPROTO_AH", Const, 0, ""}, - {"IPPROTO_AHIP", Const, 0, ""}, - {"IPPROTO_APES", Const, 0, ""}, - {"IPPROTO_ARGUS", Const, 0, ""}, - {"IPPROTO_AX25", Const, 0, ""}, - {"IPPROTO_BHA", Const, 0, ""}, - {"IPPROTO_BLT", Const, 0, ""}, - {"IPPROTO_BRSATMON", Const, 0, ""}, - {"IPPROTO_CARP", Const, 0, ""}, - {"IPPROTO_CFTP", Const, 0, ""}, - {"IPPROTO_CHAOS", Const, 0, ""}, - {"IPPROTO_CMTP", Const, 0, ""}, - {"IPPROTO_COMP", Const, 0, ""}, - {"IPPROTO_CPHB", Const, 0, ""}, - {"IPPROTO_CPNX", Const, 0, ""}, - {"IPPROTO_DCCP", Const, 0, ""}, - {"IPPROTO_DDP", Const, 0, ""}, - {"IPPROTO_DGP", Const, 0, ""}, - {"IPPROTO_DIVERT", Const, 0, ""}, - {"IPPROTO_DIVERT_INIT", Const, 3, ""}, - {"IPPROTO_DIVERT_RESP", Const, 3, ""}, - {"IPPROTO_DONE", Const, 0, ""}, - {"IPPROTO_DSTOPTS", Const, 0, ""}, - {"IPPROTO_EGP", Const, 0, ""}, - {"IPPROTO_EMCON", Const, 0, ""}, - {"IPPROTO_ENCAP", Const, 0, ""}, - {"IPPROTO_EON", Const, 0, ""}, - {"IPPROTO_ESP", Const, 0, ""}, - {"IPPROTO_ETHERIP", Const, 0, ""}, - {"IPPROTO_FRAGMENT", Const, 0, ""}, - {"IPPROTO_GGP", Const, 0, ""}, - {"IPPROTO_GMTP", Const, 0, ""}, - {"IPPROTO_GRE", Const, 0, ""}, - {"IPPROTO_HELLO", Const, 0, ""}, - {"IPPROTO_HMP", Const, 0, ""}, - {"IPPROTO_HOPOPTS", Const, 0, ""}, - {"IPPROTO_ICMP", Const, 0, ""}, - {"IPPROTO_ICMPV6", Const, 0, ""}, - {"IPPROTO_IDP", Const, 0, ""}, - {"IPPROTO_IDPR", Const, 0, ""}, - {"IPPROTO_IDRP", Const, 0, ""}, - {"IPPROTO_IGMP", Const, 0, ""}, - {"IPPROTO_IGP", Const, 0, ""}, - {"IPPROTO_IGRP", Const, 0, ""}, - {"IPPROTO_IL", Const, 0, ""}, - {"IPPROTO_INLSP", Const, 0, ""}, - {"IPPROTO_INP", Const, 0, ""}, - {"IPPROTO_IP", Const, 0, ""}, - {"IPPROTO_IPCOMP", Const, 0, ""}, - {"IPPROTO_IPCV", Const, 0, ""}, - {"IPPROTO_IPEIP", Const, 0, ""}, - {"IPPROTO_IPIP", Const, 0, ""}, - {"IPPROTO_IPPC", Const, 0, ""}, - {"IPPROTO_IPV4", Const, 0, ""}, - {"IPPROTO_IPV6", Const, 0, ""}, - {"IPPROTO_IPV6_ICMP", Const, 1, ""}, - {"IPPROTO_IRTP", Const, 0, ""}, - {"IPPROTO_KRYPTOLAN", Const, 0, ""}, - {"IPPROTO_LARP", Const, 0, ""}, - {"IPPROTO_LEAF1", Const, 0, ""}, - {"IPPROTO_LEAF2", Const, 0, ""}, - {"IPPROTO_MAX", Const, 0, ""}, - {"IPPROTO_MAXID", Const, 0, ""}, - {"IPPROTO_MEAS", Const, 0, ""}, - {"IPPROTO_MH", Const, 1, ""}, - {"IPPROTO_MHRP", Const, 0, ""}, - {"IPPROTO_MICP", Const, 0, ""}, - {"IPPROTO_MOBILE", Const, 0, ""}, - {"IPPROTO_MPLS", Const, 1, ""}, - {"IPPROTO_MTP", Const, 0, ""}, - {"IPPROTO_MUX", Const, 0, ""}, - {"IPPROTO_ND", Const, 0, ""}, - {"IPPROTO_NHRP", Const, 0, ""}, - {"IPPROTO_NONE", Const, 0, ""}, - {"IPPROTO_NSP", Const, 0, ""}, - {"IPPROTO_NVPII", Const, 0, ""}, - {"IPPROTO_OLD_DIVERT", Const, 0, ""}, - {"IPPROTO_OSPFIGP", Const, 0, ""}, - {"IPPROTO_PFSYNC", Const, 0, ""}, - {"IPPROTO_PGM", Const, 0, ""}, - {"IPPROTO_PIGP", Const, 0, ""}, - {"IPPROTO_PIM", Const, 0, ""}, - {"IPPROTO_PRM", Const, 0, ""}, - {"IPPROTO_PUP", Const, 0, ""}, - {"IPPROTO_PVP", Const, 0, ""}, - {"IPPROTO_RAW", Const, 0, ""}, - {"IPPROTO_RCCMON", Const, 0, ""}, - {"IPPROTO_RDP", Const, 0, ""}, - {"IPPROTO_ROUTING", Const, 0, ""}, - {"IPPROTO_RSVP", Const, 0, ""}, - {"IPPROTO_RVD", Const, 0, ""}, - {"IPPROTO_SATEXPAK", Const, 0, ""}, - {"IPPROTO_SATMON", Const, 0, ""}, - {"IPPROTO_SCCSP", Const, 0, ""}, - {"IPPROTO_SCTP", Const, 0, ""}, - {"IPPROTO_SDRP", Const, 0, ""}, - {"IPPROTO_SEND", Const, 1, ""}, - {"IPPROTO_SEP", Const, 0, ""}, - {"IPPROTO_SKIP", Const, 0, ""}, - {"IPPROTO_SPACER", Const, 0, ""}, - {"IPPROTO_SRPC", Const, 0, ""}, - {"IPPROTO_ST", Const, 0, ""}, - {"IPPROTO_SVMTP", Const, 0, ""}, - {"IPPROTO_SWIPE", Const, 0, ""}, - {"IPPROTO_TCF", Const, 0, ""}, - {"IPPROTO_TCP", Const, 0, ""}, - {"IPPROTO_TLSP", Const, 0, ""}, - {"IPPROTO_TP", Const, 0, ""}, - {"IPPROTO_TPXX", Const, 0, ""}, - {"IPPROTO_TRUNK1", Const, 0, ""}, - {"IPPROTO_TRUNK2", Const, 0, ""}, - {"IPPROTO_TTP", Const, 0, ""}, - {"IPPROTO_UDP", Const, 0, ""}, - {"IPPROTO_UDPLITE", Const, 0, ""}, - {"IPPROTO_VINES", Const, 0, ""}, - {"IPPROTO_VISA", Const, 0, ""}, - {"IPPROTO_VMTP", Const, 0, ""}, - {"IPPROTO_VRRP", Const, 1, ""}, - {"IPPROTO_WBEXPAK", Const, 0, ""}, - {"IPPROTO_WBMON", Const, 0, ""}, - {"IPPROTO_WSN", Const, 0, ""}, - {"IPPROTO_XNET", Const, 0, ""}, - {"IPPROTO_XTP", Const, 0, ""}, - {"IPV6_2292DSTOPTS", Const, 0, ""}, - {"IPV6_2292HOPLIMIT", Const, 0, ""}, - {"IPV6_2292HOPOPTS", Const, 0, ""}, - {"IPV6_2292NEXTHOP", Const, 0, ""}, - {"IPV6_2292PKTINFO", Const, 0, ""}, - {"IPV6_2292PKTOPTIONS", Const, 0, ""}, - {"IPV6_2292RTHDR", Const, 0, ""}, - {"IPV6_ADDRFORM", Const, 0, ""}, - {"IPV6_ADD_MEMBERSHIP", Const, 0, ""}, - {"IPV6_AUTHHDR", Const, 0, ""}, - {"IPV6_AUTH_LEVEL", Const, 1, ""}, - {"IPV6_AUTOFLOWLABEL", Const, 0, ""}, - {"IPV6_BINDANY", Const, 0, ""}, - {"IPV6_BINDV6ONLY", Const, 0, ""}, - {"IPV6_BOUND_IF", Const, 0, ""}, - {"IPV6_CHECKSUM", Const, 0, ""}, - {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0, ""}, - {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0, ""}, - {"IPV6_DEFHLIM", Const, 0, ""}, - {"IPV6_DONTFRAG", Const, 0, ""}, - {"IPV6_DROP_MEMBERSHIP", Const, 0, ""}, - {"IPV6_DSTOPTS", Const, 0, ""}, - {"IPV6_ESP_NETWORK_LEVEL", Const, 1, ""}, - {"IPV6_ESP_TRANS_LEVEL", Const, 1, ""}, - {"IPV6_FAITH", Const, 0, ""}, - {"IPV6_FLOWINFO_MASK", Const, 0, ""}, - {"IPV6_FLOWLABEL_MASK", Const, 0, ""}, - {"IPV6_FRAGTTL", Const, 0, ""}, - {"IPV6_FW_ADD", Const, 0, ""}, - {"IPV6_FW_DEL", Const, 0, ""}, - {"IPV6_FW_FLUSH", Const, 0, ""}, - {"IPV6_FW_GET", Const, 0, ""}, - {"IPV6_FW_ZERO", Const, 0, ""}, - {"IPV6_HLIMDEC", Const, 0, ""}, - {"IPV6_HOPLIMIT", Const, 0, ""}, - {"IPV6_HOPOPTS", Const, 0, ""}, - {"IPV6_IPCOMP_LEVEL", Const, 1, ""}, - {"IPV6_IPSEC_POLICY", Const, 0, ""}, - {"IPV6_JOIN_ANYCAST", Const, 0, ""}, - {"IPV6_JOIN_GROUP", Const, 0, ""}, - {"IPV6_LEAVE_ANYCAST", Const, 0, ""}, - {"IPV6_LEAVE_GROUP", Const, 0, ""}, - {"IPV6_MAXHLIM", Const, 0, ""}, - {"IPV6_MAXOPTHDR", Const, 0, ""}, - {"IPV6_MAXPACKET", Const, 0, ""}, - {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0, ""}, - {"IPV6_MAX_MEMBERSHIPS", Const, 0, ""}, - {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0, ""}, - {"IPV6_MIN_MEMBERSHIPS", Const, 0, ""}, - {"IPV6_MMTU", Const, 0, ""}, - {"IPV6_MSFILTER", Const, 0, ""}, - {"IPV6_MTU", Const, 0, ""}, - {"IPV6_MTU_DISCOVER", Const, 0, ""}, - {"IPV6_MULTICAST_HOPS", Const, 0, ""}, - {"IPV6_MULTICAST_IF", Const, 0, ""}, - {"IPV6_MULTICAST_LOOP", Const, 0, ""}, - {"IPV6_NEXTHOP", Const, 0, ""}, - {"IPV6_OPTIONS", Const, 1, ""}, - {"IPV6_PATHMTU", Const, 0, ""}, - {"IPV6_PIPEX", Const, 1, ""}, - {"IPV6_PKTINFO", Const, 0, ""}, - {"IPV6_PMTUDISC_DO", Const, 0, ""}, - {"IPV6_PMTUDISC_DONT", Const, 0, ""}, - {"IPV6_PMTUDISC_PROBE", Const, 0, ""}, - {"IPV6_PMTUDISC_WANT", Const, 0, ""}, - {"IPV6_PORTRANGE", Const, 0, ""}, - {"IPV6_PORTRANGE_DEFAULT", Const, 0, ""}, - {"IPV6_PORTRANGE_HIGH", Const, 0, ""}, - {"IPV6_PORTRANGE_LOW", Const, 0, ""}, - {"IPV6_PREFER_TEMPADDR", Const, 0, ""}, - {"IPV6_RECVDSTOPTS", Const, 0, ""}, - {"IPV6_RECVDSTPORT", Const, 3, ""}, - {"IPV6_RECVERR", Const, 0, ""}, - {"IPV6_RECVHOPLIMIT", Const, 0, ""}, - {"IPV6_RECVHOPOPTS", Const, 0, ""}, - {"IPV6_RECVPATHMTU", Const, 0, ""}, - {"IPV6_RECVPKTINFO", Const, 0, ""}, - {"IPV6_RECVRTHDR", Const, 0, ""}, - {"IPV6_RECVTCLASS", Const, 0, ""}, - {"IPV6_ROUTER_ALERT", Const, 0, ""}, - {"IPV6_RTABLE", Const, 1, ""}, - {"IPV6_RTHDR", Const, 0, ""}, - {"IPV6_RTHDRDSTOPTS", Const, 0, ""}, - {"IPV6_RTHDR_LOOSE", Const, 0, ""}, - {"IPV6_RTHDR_STRICT", Const, 0, ""}, - {"IPV6_RTHDR_TYPE_0", Const, 0, ""}, - {"IPV6_RXDSTOPTS", Const, 0, ""}, - {"IPV6_RXHOPOPTS", Const, 0, ""}, - {"IPV6_SOCKOPT_RESERVED1", Const, 0, ""}, - {"IPV6_TCLASS", Const, 0, ""}, - {"IPV6_UNICAST_HOPS", Const, 0, ""}, - {"IPV6_USE_MIN_MTU", Const, 0, ""}, - {"IPV6_V6ONLY", Const, 0, ""}, - {"IPV6_VERSION", Const, 0, ""}, - {"IPV6_VERSION_MASK", Const, 0, ""}, - {"IPV6_XFRM_POLICY", Const, 0, ""}, - {"IP_ADD_MEMBERSHIP", Const, 0, ""}, - {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0, ""}, - {"IP_AUTH_LEVEL", Const, 1, ""}, - {"IP_BINDANY", Const, 0, ""}, - {"IP_BLOCK_SOURCE", Const, 0, ""}, - {"IP_BOUND_IF", Const, 0, ""}, - {"IP_DEFAULT_MULTICAST_LOOP", Const, 0, ""}, - {"IP_DEFAULT_MULTICAST_TTL", Const, 0, ""}, - {"IP_DF", Const, 0, ""}, - {"IP_DIVERTFL", Const, 3, ""}, - {"IP_DONTFRAG", Const, 0, ""}, - {"IP_DROP_MEMBERSHIP", Const, 0, ""}, - {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0, ""}, - {"IP_DUMMYNET3", Const, 0, ""}, - {"IP_DUMMYNET_CONFIGURE", Const, 0, ""}, - {"IP_DUMMYNET_DEL", Const, 0, ""}, - {"IP_DUMMYNET_FLUSH", Const, 0, ""}, - {"IP_DUMMYNET_GET", Const, 0, ""}, - {"IP_EF", Const, 1, ""}, - {"IP_ERRORMTU", Const, 1, ""}, - {"IP_ESP_NETWORK_LEVEL", Const, 1, ""}, - {"IP_ESP_TRANS_LEVEL", Const, 1, ""}, - {"IP_FAITH", Const, 0, ""}, - {"IP_FREEBIND", Const, 0, ""}, - {"IP_FW3", Const, 0, ""}, - {"IP_FW_ADD", Const, 0, ""}, - {"IP_FW_DEL", Const, 0, ""}, - {"IP_FW_FLUSH", Const, 0, ""}, - {"IP_FW_GET", Const, 0, ""}, - {"IP_FW_NAT_CFG", Const, 0, ""}, - {"IP_FW_NAT_DEL", Const, 0, ""}, - {"IP_FW_NAT_GET_CONFIG", Const, 0, ""}, - {"IP_FW_NAT_GET_LOG", Const, 0, ""}, - {"IP_FW_RESETLOG", Const, 0, ""}, - {"IP_FW_TABLE_ADD", Const, 0, ""}, - {"IP_FW_TABLE_DEL", Const, 0, ""}, - {"IP_FW_TABLE_FLUSH", Const, 0, ""}, - {"IP_FW_TABLE_GETSIZE", Const, 0, ""}, - {"IP_FW_TABLE_LIST", Const, 0, ""}, - {"IP_FW_ZERO", Const, 0, ""}, - {"IP_HDRINCL", Const, 0, ""}, - {"IP_IPCOMP_LEVEL", Const, 1, ""}, - {"IP_IPSECFLOWINFO", Const, 1, ""}, - {"IP_IPSEC_LOCAL_AUTH", Const, 1, ""}, - {"IP_IPSEC_LOCAL_CRED", Const, 1, ""}, - {"IP_IPSEC_LOCAL_ID", Const, 1, ""}, - {"IP_IPSEC_POLICY", Const, 0, ""}, - {"IP_IPSEC_REMOTE_AUTH", Const, 1, ""}, - {"IP_IPSEC_REMOTE_CRED", Const, 1, ""}, - {"IP_IPSEC_REMOTE_ID", Const, 1, ""}, - {"IP_MAXPACKET", Const, 0, ""}, - {"IP_MAX_GROUP_SRC_FILTER", Const, 0, ""}, - {"IP_MAX_MEMBERSHIPS", Const, 0, ""}, - {"IP_MAX_SOCK_MUTE_FILTER", Const, 0, ""}, - {"IP_MAX_SOCK_SRC_FILTER", Const, 0, ""}, - {"IP_MAX_SOURCE_FILTER", Const, 0, ""}, - {"IP_MF", Const, 0, ""}, - {"IP_MINFRAGSIZE", Const, 1, ""}, - {"IP_MINTTL", Const, 0, ""}, - {"IP_MIN_MEMBERSHIPS", Const, 0, ""}, - {"IP_MSFILTER", Const, 0, ""}, - {"IP_MSS", Const, 0, ""}, - {"IP_MTU", Const, 0, ""}, - {"IP_MTU_DISCOVER", Const, 0, ""}, - {"IP_MULTICAST_IF", Const, 0, ""}, - {"IP_MULTICAST_IFINDEX", Const, 0, ""}, - {"IP_MULTICAST_LOOP", Const, 0, ""}, - {"IP_MULTICAST_TTL", Const, 0, ""}, - {"IP_MULTICAST_VIF", Const, 0, ""}, - {"IP_NAT__XXX", Const, 0, ""}, - {"IP_OFFMASK", Const, 0, ""}, - {"IP_OLD_FW_ADD", Const, 0, ""}, - {"IP_OLD_FW_DEL", Const, 0, ""}, - {"IP_OLD_FW_FLUSH", Const, 0, ""}, - {"IP_OLD_FW_GET", Const, 0, ""}, - {"IP_OLD_FW_RESETLOG", Const, 0, ""}, - {"IP_OLD_FW_ZERO", Const, 0, ""}, - {"IP_ONESBCAST", Const, 0, ""}, - {"IP_OPTIONS", Const, 0, ""}, - {"IP_ORIGDSTADDR", Const, 0, ""}, - {"IP_PASSSEC", Const, 0, ""}, - {"IP_PIPEX", Const, 1, ""}, - {"IP_PKTINFO", Const, 0, ""}, - {"IP_PKTOPTIONS", Const, 0, ""}, - {"IP_PMTUDISC", Const, 0, ""}, - {"IP_PMTUDISC_DO", Const, 0, ""}, - {"IP_PMTUDISC_DONT", Const, 0, ""}, - {"IP_PMTUDISC_PROBE", Const, 0, ""}, - {"IP_PMTUDISC_WANT", Const, 0, ""}, - {"IP_PORTRANGE", Const, 0, ""}, - {"IP_PORTRANGE_DEFAULT", Const, 0, ""}, - {"IP_PORTRANGE_HIGH", Const, 0, ""}, - {"IP_PORTRANGE_LOW", Const, 0, ""}, - {"IP_RECVDSTADDR", Const, 0, ""}, - {"IP_RECVDSTPORT", Const, 1, ""}, - {"IP_RECVERR", Const, 0, ""}, - {"IP_RECVIF", Const, 0, ""}, - {"IP_RECVOPTS", Const, 0, ""}, - {"IP_RECVORIGDSTADDR", Const, 0, ""}, - {"IP_RECVPKTINFO", Const, 0, ""}, - {"IP_RECVRETOPTS", Const, 0, ""}, - {"IP_RECVRTABLE", Const, 1, ""}, - {"IP_RECVTOS", Const, 0, ""}, - {"IP_RECVTTL", Const, 0, ""}, - {"IP_RETOPTS", Const, 0, ""}, - {"IP_RF", Const, 0, ""}, - {"IP_ROUTER_ALERT", Const, 0, ""}, - {"IP_RSVP_OFF", Const, 0, ""}, - {"IP_RSVP_ON", Const, 0, ""}, - {"IP_RSVP_VIF_OFF", Const, 0, ""}, - {"IP_RSVP_VIF_ON", Const, 0, ""}, - {"IP_RTABLE", Const, 1, ""}, - {"IP_SENDSRCADDR", Const, 0, ""}, - {"IP_STRIPHDR", Const, 0, ""}, - {"IP_TOS", Const, 0, ""}, - {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0, ""}, - {"IP_TRANSPARENT", Const, 0, ""}, - {"IP_TTL", Const, 0, ""}, - {"IP_UNBLOCK_SOURCE", Const, 0, ""}, - {"IP_XFRM_POLICY", Const, 0, ""}, - {"IPv6MTUInfo", Type, 2, ""}, - {"IPv6MTUInfo.Addr", Field, 2, ""}, - {"IPv6MTUInfo.Mtu", Field, 2, ""}, - {"IPv6Mreq", Type, 0, ""}, - {"IPv6Mreq.Interface", Field, 0, ""}, - {"IPv6Mreq.Multiaddr", Field, 0, ""}, - {"ISIG", Const, 0, ""}, - {"ISTRIP", Const, 0, ""}, - {"IUCLC", Const, 0, ""}, - {"IUTF8", Const, 0, ""}, - {"IXANY", Const, 0, ""}, - {"IXOFF", Const, 0, ""}, - {"IXON", Const, 0, ""}, - {"IfAddrmsg", Type, 0, ""}, - {"IfAddrmsg.Family", Field, 0, ""}, - {"IfAddrmsg.Flags", Field, 0, ""}, - {"IfAddrmsg.Index", Field, 0, ""}, - {"IfAddrmsg.Prefixlen", Field, 0, ""}, - {"IfAddrmsg.Scope", Field, 0, ""}, - {"IfAnnounceMsghdr", Type, 1, ""}, - {"IfAnnounceMsghdr.Hdrlen", Field, 2, ""}, - {"IfAnnounceMsghdr.Index", Field, 1, ""}, - {"IfAnnounceMsghdr.Msglen", Field, 1, ""}, - {"IfAnnounceMsghdr.Name", Field, 1, ""}, - {"IfAnnounceMsghdr.Type", Field, 1, ""}, - {"IfAnnounceMsghdr.Version", Field, 1, ""}, - {"IfAnnounceMsghdr.What", Field, 1, ""}, - {"IfData", Type, 0, ""}, - {"IfData.Addrlen", Field, 0, ""}, - {"IfData.Baudrate", Field, 0, ""}, - {"IfData.Capabilities", Field, 2, ""}, - {"IfData.Collisions", Field, 0, ""}, - {"IfData.Datalen", Field, 0, ""}, - {"IfData.Epoch", Field, 0, ""}, - {"IfData.Hdrlen", Field, 0, ""}, - {"IfData.Hwassist", Field, 0, ""}, - {"IfData.Ibytes", Field, 0, ""}, - {"IfData.Ierrors", Field, 0, ""}, - {"IfData.Imcasts", Field, 0, ""}, - {"IfData.Ipackets", Field, 0, ""}, - {"IfData.Iqdrops", Field, 0, ""}, - {"IfData.Lastchange", Field, 0, ""}, - {"IfData.Link_state", Field, 0, ""}, - {"IfData.Mclpool", Field, 2, ""}, - {"IfData.Metric", Field, 0, ""}, - {"IfData.Mtu", Field, 0, ""}, - {"IfData.Noproto", Field, 0, ""}, - {"IfData.Obytes", Field, 0, ""}, - {"IfData.Oerrors", Field, 0, ""}, - {"IfData.Omcasts", Field, 0, ""}, - {"IfData.Opackets", Field, 0, ""}, - {"IfData.Pad", Field, 2, ""}, - {"IfData.Pad_cgo_0", Field, 2, ""}, - {"IfData.Pad_cgo_1", Field, 2, ""}, - {"IfData.Physical", Field, 0, ""}, - {"IfData.Recvquota", Field, 0, ""}, - {"IfData.Recvtiming", Field, 0, ""}, - {"IfData.Reserved1", Field, 0, ""}, - {"IfData.Reserved2", Field, 0, ""}, - {"IfData.Spare_char1", Field, 0, ""}, - {"IfData.Spare_char2", Field, 0, ""}, - {"IfData.Type", Field, 0, ""}, - {"IfData.Typelen", Field, 0, ""}, - {"IfData.Unused1", Field, 0, ""}, - {"IfData.Unused2", Field, 0, ""}, - {"IfData.Xmitquota", Field, 0, ""}, - {"IfData.Xmittiming", Field, 0, ""}, - {"IfInfomsg", Type, 0, ""}, - {"IfInfomsg.Change", Field, 0, ""}, - {"IfInfomsg.Family", Field, 0, ""}, - {"IfInfomsg.Flags", Field, 0, ""}, - {"IfInfomsg.Index", Field, 0, ""}, - {"IfInfomsg.Type", Field, 0, ""}, - {"IfInfomsg.X__ifi_pad", Field, 0, ""}, - {"IfMsghdr", Type, 0, ""}, - {"IfMsghdr.Addrs", Field, 0, ""}, - {"IfMsghdr.Data", Field, 0, ""}, - {"IfMsghdr.Flags", Field, 0, ""}, - {"IfMsghdr.Hdrlen", Field, 2, ""}, - {"IfMsghdr.Index", Field, 0, ""}, - {"IfMsghdr.Msglen", Field, 0, ""}, - {"IfMsghdr.Pad1", Field, 2, ""}, - {"IfMsghdr.Pad2", Field, 2, ""}, - {"IfMsghdr.Pad_cgo_0", Field, 0, ""}, - {"IfMsghdr.Pad_cgo_1", Field, 2, ""}, - {"IfMsghdr.Tableid", Field, 2, ""}, - {"IfMsghdr.Type", Field, 0, ""}, - {"IfMsghdr.Version", Field, 0, ""}, - {"IfMsghdr.Xflags", Field, 2, ""}, - {"IfaMsghdr", Type, 0, ""}, - {"IfaMsghdr.Addrs", Field, 0, ""}, - {"IfaMsghdr.Flags", Field, 0, ""}, - {"IfaMsghdr.Hdrlen", Field, 2, ""}, - {"IfaMsghdr.Index", Field, 0, ""}, - {"IfaMsghdr.Metric", Field, 0, ""}, - {"IfaMsghdr.Msglen", Field, 0, ""}, - {"IfaMsghdr.Pad1", Field, 2, ""}, - {"IfaMsghdr.Pad2", Field, 2, ""}, - {"IfaMsghdr.Pad_cgo_0", Field, 0, ""}, - {"IfaMsghdr.Tableid", Field, 2, ""}, - {"IfaMsghdr.Type", Field, 0, ""}, - {"IfaMsghdr.Version", Field, 0, ""}, - {"IfmaMsghdr", Type, 0, ""}, - {"IfmaMsghdr.Addrs", Field, 0, ""}, - {"IfmaMsghdr.Flags", Field, 0, ""}, - {"IfmaMsghdr.Index", Field, 0, ""}, - {"IfmaMsghdr.Msglen", Field, 0, ""}, - {"IfmaMsghdr.Pad_cgo_0", Field, 0, ""}, - {"IfmaMsghdr.Type", Field, 0, ""}, - {"IfmaMsghdr.Version", Field, 0, ""}, - {"IfmaMsghdr2", Type, 0, ""}, - {"IfmaMsghdr2.Addrs", Field, 0, ""}, - {"IfmaMsghdr2.Flags", Field, 0, ""}, - {"IfmaMsghdr2.Index", Field, 0, ""}, - {"IfmaMsghdr2.Msglen", Field, 0, ""}, - {"IfmaMsghdr2.Pad_cgo_0", Field, 0, ""}, - {"IfmaMsghdr2.Refcount", Field, 0, ""}, - {"IfmaMsghdr2.Type", Field, 0, ""}, - {"IfmaMsghdr2.Version", Field, 0, ""}, - {"ImplementsGetwd", Const, 0, ""}, - {"Inet4Pktinfo", Type, 0, ""}, - {"Inet4Pktinfo.Addr", Field, 0, ""}, - {"Inet4Pktinfo.Ifindex", Field, 0, ""}, - {"Inet4Pktinfo.Spec_dst", Field, 0, ""}, - {"Inet6Pktinfo", Type, 0, ""}, - {"Inet6Pktinfo.Addr", Field, 0, ""}, - {"Inet6Pktinfo.Ifindex", Field, 0, ""}, - {"InotifyAddWatch", Func, 0, "func(fd int, pathname string, mask uint32) (watchdesc int, err error)"}, - {"InotifyEvent", Type, 0, ""}, - {"InotifyEvent.Cookie", Field, 0, ""}, - {"InotifyEvent.Len", Field, 0, ""}, - {"InotifyEvent.Mask", Field, 0, ""}, - {"InotifyEvent.Name", Field, 0, ""}, - {"InotifyEvent.Wd", Field, 0, ""}, - {"InotifyInit", Func, 0, "func() (fd int, err error)"}, - {"InotifyInit1", Func, 0, "func(flags int) (fd int, err error)"}, - {"InotifyRmWatch", Func, 0, "func(fd int, watchdesc uint32) (success int, err error)"}, - {"InterfaceAddrMessage", Type, 0, ""}, - {"InterfaceAddrMessage.Data", Field, 0, ""}, - {"InterfaceAddrMessage.Header", Field, 0, ""}, - {"InterfaceAnnounceMessage", Type, 1, ""}, - {"InterfaceAnnounceMessage.Header", Field, 1, ""}, - {"InterfaceInfo", Type, 0, ""}, - {"InterfaceInfo.Address", Field, 0, ""}, - {"InterfaceInfo.BroadcastAddress", Field, 0, ""}, - {"InterfaceInfo.Flags", Field, 0, ""}, - {"InterfaceInfo.Netmask", Field, 0, ""}, - {"InterfaceMessage", Type, 0, ""}, - {"InterfaceMessage.Data", Field, 0, ""}, - {"InterfaceMessage.Header", Field, 0, ""}, - {"InterfaceMulticastAddrMessage", Type, 0, ""}, - {"InterfaceMulticastAddrMessage.Data", Field, 0, ""}, - {"InterfaceMulticastAddrMessage.Header", Field, 0, ""}, - {"InvalidHandle", Const, 0, ""}, - {"Ioperm", Func, 0, "func(from int, num int, on int) (err error)"}, - {"Iopl", Func, 0, "func(level int) (err error)"}, - {"Iovec", Type, 0, ""}, - {"Iovec.Base", Field, 0, ""}, - {"Iovec.Len", Field, 0, ""}, - {"IpAdapterInfo", Type, 0, ""}, - {"IpAdapterInfo.AdapterName", Field, 0, ""}, - {"IpAdapterInfo.Address", Field, 0, ""}, - {"IpAdapterInfo.AddressLength", Field, 0, ""}, - {"IpAdapterInfo.ComboIndex", Field, 0, ""}, - {"IpAdapterInfo.CurrentIpAddress", Field, 0, ""}, - {"IpAdapterInfo.Description", Field, 0, ""}, - {"IpAdapterInfo.DhcpEnabled", Field, 0, ""}, - {"IpAdapterInfo.DhcpServer", Field, 0, ""}, - {"IpAdapterInfo.GatewayList", Field, 0, ""}, - {"IpAdapterInfo.HaveWins", Field, 0, ""}, - {"IpAdapterInfo.Index", Field, 0, ""}, - {"IpAdapterInfo.IpAddressList", Field, 0, ""}, - {"IpAdapterInfo.LeaseExpires", Field, 0, ""}, - {"IpAdapterInfo.LeaseObtained", Field, 0, ""}, - {"IpAdapterInfo.Next", Field, 0, ""}, - {"IpAdapterInfo.PrimaryWinsServer", Field, 0, ""}, - {"IpAdapterInfo.SecondaryWinsServer", Field, 0, ""}, - {"IpAdapterInfo.Type", Field, 0, ""}, - {"IpAddrString", Type, 0, ""}, - {"IpAddrString.Context", Field, 0, ""}, - {"IpAddrString.IpAddress", Field, 0, ""}, - {"IpAddrString.IpMask", Field, 0, ""}, - {"IpAddrString.Next", Field, 0, ""}, - {"IpAddressString", Type, 0, ""}, - {"IpAddressString.String", Field, 0, ""}, - {"IpMaskString", Type, 0, ""}, - {"IpMaskString.String", Field, 2, ""}, - {"Issetugid", Func, 0, ""}, - {"KEY_ALL_ACCESS", Const, 0, ""}, - {"KEY_CREATE_LINK", Const, 0, ""}, - {"KEY_CREATE_SUB_KEY", Const, 0, ""}, - {"KEY_ENUMERATE_SUB_KEYS", Const, 0, ""}, - {"KEY_EXECUTE", Const, 0, ""}, - {"KEY_NOTIFY", Const, 0, ""}, - {"KEY_QUERY_VALUE", Const, 0, ""}, - {"KEY_READ", Const, 0, ""}, - {"KEY_SET_VALUE", Const, 0, ""}, - {"KEY_WOW64_32KEY", Const, 0, ""}, - {"KEY_WOW64_64KEY", Const, 0, ""}, - {"KEY_WRITE", Const, 0, ""}, - {"Kevent", Func, 0, ""}, - {"Kevent_t", Type, 0, ""}, - {"Kevent_t.Data", Field, 0, ""}, - {"Kevent_t.Fflags", Field, 0, ""}, - {"Kevent_t.Filter", Field, 0, ""}, - {"Kevent_t.Flags", Field, 0, ""}, - {"Kevent_t.Ident", Field, 0, ""}, - {"Kevent_t.Pad_cgo_0", Field, 2, ""}, - {"Kevent_t.Udata", Field, 0, ""}, - {"Kill", Func, 0, "func(pid int, sig Signal) (err error)"}, - {"Klogctl", Func, 0, "func(typ int, buf []byte) (n int, err error)"}, - {"Kqueue", Func, 0, ""}, - {"LANG_ENGLISH", Const, 0, ""}, - {"LAYERED_PROTOCOL", Const, 2, ""}, - {"LCNT_OVERLOAD_FLUSH", Const, 1, ""}, - {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0, ""}, - {"LINUX_REBOOT_CMD_CAD_ON", Const, 0, ""}, - {"LINUX_REBOOT_CMD_HALT", Const, 0, ""}, - {"LINUX_REBOOT_CMD_KEXEC", Const, 0, ""}, - {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0, ""}, - {"LINUX_REBOOT_CMD_RESTART", Const, 0, ""}, - {"LINUX_REBOOT_CMD_RESTART2", Const, 0, ""}, - {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0, ""}, - {"LINUX_REBOOT_MAGIC1", Const, 0, ""}, - {"LINUX_REBOOT_MAGIC2", Const, 0, ""}, - {"LOCK_EX", Const, 0, ""}, - {"LOCK_NB", Const, 0, ""}, - {"LOCK_SH", Const, 0, ""}, - {"LOCK_UN", Const, 0, ""}, - {"LazyDLL", Type, 0, ""}, - {"LazyDLL.Name", Field, 0, ""}, - {"LazyProc", Type, 0, ""}, - {"LazyProc.Name", Field, 0, ""}, - {"Lchown", Func, 0, "func(path string, uid int, gid int) (err error)"}, - {"Linger", Type, 0, ""}, - {"Linger.Linger", Field, 0, ""}, - {"Linger.Onoff", Field, 0, ""}, - {"Link", Func, 0, "func(oldpath string, newpath string) (err error)"}, - {"Listen", Func, 0, "func(s int, n int) (err error)"}, - {"Listxattr", Func, 1, "func(path string, dest []byte) (sz int, err error)"}, - {"LoadCancelIoEx", Func, 1, ""}, - {"LoadConnectEx", Func, 1, ""}, - {"LoadCreateSymbolicLink", Func, 4, ""}, - {"LoadDLL", Func, 0, ""}, - {"LoadGetAddrInfo", Func, 1, ""}, - {"LoadLibrary", Func, 0, ""}, - {"LoadSetFileCompletionNotificationModes", Func, 2, ""}, - {"LocalFree", Func, 0, ""}, - {"Log2phys_t", Type, 0, ""}, - {"Log2phys_t.Contigbytes", Field, 0, ""}, - {"Log2phys_t.Devoffset", Field, 0, ""}, - {"Log2phys_t.Flags", Field, 0, ""}, - {"LookupAccountName", Func, 0, ""}, - {"LookupAccountSid", Func, 0, ""}, - {"LookupSID", Func, 0, ""}, - {"LsfJump", Func, 0, "func(code int, k int, jt int, jf int) *SockFilter"}, - {"LsfSocket", Func, 0, "func(ifindex int, proto int) (int, error)"}, - {"LsfStmt", Func, 0, "func(code int, k int) *SockFilter"}, - {"Lstat", Func, 0, "func(path string, stat *Stat_t) (err error)"}, - {"MADV_AUTOSYNC", Const, 1, ""}, - {"MADV_CAN_REUSE", Const, 0, ""}, - {"MADV_CORE", Const, 1, ""}, - {"MADV_DOFORK", Const, 0, ""}, - {"MADV_DONTFORK", Const, 0, ""}, - {"MADV_DONTNEED", Const, 0, ""}, - {"MADV_FREE", Const, 0, ""}, - {"MADV_FREE_REUSABLE", Const, 0, ""}, - {"MADV_FREE_REUSE", Const, 0, ""}, - {"MADV_HUGEPAGE", Const, 0, ""}, - {"MADV_HWPOISON", Const, 0, ""}, - {"MADV_MERGEABLE", Const, 0, ""}, - {"MADV_NOCORE", Const, 1, ""}, - {"MADV_NOHUGEPAGE", Const, 0, ""}, - {"MADV_NORMAL", Const, 0, ""}, - {"MADV_NOSYNC", Const, 1, ""}, - {"MADV_PROTECT", Const, 1, ""}, - {"MADV_RANDOM", Const, 0, ""}, - {"MADV_REMOVE", Const, 0, ""}, - {"MADV_SEQUENTIAL", Const, 0, ""}, - {"MADV_SPACEAVAIL", Const, 3, ""}, - {"MADV_UNMERGEABLE", Const, 0, ""}, - {"MADV_WILLNEED", Const, 0, ""}, - {"MADV_ZERO_WIRED_PAGES", Const, 0, ""}, - {"MAP_32BIT", Const, 0, ""}, - {"MAP_ALIGNED_SUPER", Const, 3, ""}, - {"MAP_ALIGNMENT_16MB", Const, 3, ""}, - {"MAP_ALIGNMENT_1TB", Const, 3, ""}, - {"MAP_ALIGNMENT_256TB", Const, 3, ""}, - {"MAP_ALIGNMENT_4GB", Const, 3, ""}, - {"MAP_ALIGNMENT_64KB", Const, 3, ""}, - {"MAP_ALIGNMENT_64PB", Const, 3, ""}, - {"MAP_ALIGNMENT_MASK", Const, 3, ""}, - {"MAP_ALIGNMENT_SHIFT", Const, 3, ""}, - {"MAP_ANON", Const, 0, ""}, - {"MAP_ANONYMOUS", Const, 0, ""}, - {"MAP_COPY", Const, 0, ""}, - {"MAP_DENYWRITE", Const, 0, ""}, - {"MAP_EXECUTABLE", Const, 0, ""}, - {"MAP_FILE", Const, 0, ""}, - {"MAP_FIXED", Const, 0, ""}, - {"MAP_FLAGMASK", Const, 3, ""}, - {"MAP_GROWSDOWN", Const, 0, ""}, - {"MAP_HASSEMAPHORE", Const, 0, ""}, - {"MAP_HUGETLB", Const, 0, ""}, - {"MAP_INHERIT", Const, 3, ""}, - {"MAP_INHERIT_COPY", Const, 3, ""}, - {"MAP_INHERIT_DEFAULT", Const, 3, ""}, - {"MAP_INHERIT_DONATE_COPY", Const, 3, ""}, - {"MAP_INHERIT_NONE", Const, 3, ""}, - {"MAP_INHERIT_SHARE", Const, 3, ""}, - {"MAP_JIT", Const, 0, ""}, - {"MAP_LOCKED", Const, 0, ""}, - {"MAP_NOCACHE", Const, 0, ""}, - {"MAP_NOCORE", Const, 1, ""}, - {"MAP_NOEXTEND", Const, 0, ""}, - {"MAP_NONBLOCK", Const, 0, ""}, - {"MAP_NORESERVE", Const, 0, ""}, - {"MAP_NOSYNC", Const, 1, ""}, - {"MAP_POPULATE", Const, 0, ""}, - {"MAP_PREFAULT_READ", Const, 1, ""}, - {"MAP_PRIVATE", Const, 0, ""}, - {"MAP_RENAME", Const, 0, ""}, - {"MAP_RESERVED0080", Const, 0, ""}, - {"MAP_RESERVED0100", Const, 1, ""}, - {"MAP_SHARED", Const, 0, ""}, - {"MAP_STACK", Const, 0, ""}, - {"MAP_TRYFIXED", Const, 3, ""}, - {"MAP_TYPE", Const, 0, ""}, - {"MAP_WIRED", Const, 3, ""}, - {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4, ""}, - {"MAXLEN_IFDESCR", Const, 0, ""}, - {"MAXLEN_PHYSADDR", Const, 0, ""}, - {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0, ""}, - {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0, ""}, - {"MAX_ADAPTER_NAME_LENGTH", Const, 0, ""}, - {"MAX_COMPUTERNAME_LENGTH", Const, 0, ""}, - {"MAX_INTERFACE_NAME_LEN", Const, 0, ""}, - {"MAX_LONG_PATH", Const, 0, ""}, - {"MAX_PATH", Const, 0, ""}, - {"MAX_PROTOCOL_CHAIN", Const, 2, ""}, - {"MCL_CURRENT", Const, 0, ""}, - {"MCL_FUTURE", Const, 0, ""}, - {"MNT_DETACH", Const, 0, ""}, - {"MNT_EXPIRE", Const, 0, ""}, - {"MNT_FORCE", Const, 0, ""}, - {"MSG_BCAST", Const, 1, ""}, - {"MSG_CMSG_CLOEXEC", Const, 0, ""}, - {"MSG_COMPAT", Const, 0, ""}, - {"MSG_CONFIRM", Const, 0, ""}, - {"MSG_CONTROLMBUF", Const, 1, ""}, - {"MSG_CTRUNC", Const, 0, ""}, - {"MSG_DONTROUTE", Const, 0, ""}, - {"MSG_DONTWAIT", Const, 0, ""}, - {"MSG_EOF", Const, 0, ""}, - {"MSG_EOR", Const, 0, ""}, - {"MSG_ERRQUEUE", Const, 0, ""}, - {"MSG_FASTOPEN", Const, 1, ""}, - {"MSG_FIN", Const, 0, ""}, - {"MSG_FLUSH", Const, 0, ""}, - {"MSG_HAVEMORE", Const, 0, ""}, - {"MSG_HOLD", Const, 0, ""}, - {"MSG_IOVUSRSPACE", Const, 1, ""}, - {"MSG_LENUSRSPACE", Const, 1, ""}, - {"MSG_MCAST", Const, 1, ""}, - {"MSG_MORE", Const, 0, ""}, - {"MSG_NAMEMBUF", Const, 1, ""}, - {"MSG_NBIO", Const, 0, ""}, - {"MSG_NEEDSA", Const, 0, ""}, - {"MSG_NOSIGNAL", Const, 0, ""}, - {"MSG_NOTIFICATION", Const, 0, ""}, - {"MSG_OOB", Const, 0, ""}, - {"MSG_PEEK", Const, 0, ""}, - {"MSG_PROXY", Const, 0, ""}, - {"MSG_RCVMORE", Const, 0, ""}, - {"MSG_RST", Const, 0, ""}, - {"MSG_SEND", Const, 0, ""}, - {"MSG_SYN", Const, 0, ""}, - {"MSG_TRUNC", Const, 0, ""}, - {"MSG_TRYHARD", Const, 0, ""}, - {"MSG_USERFLAGS", Const, 1, ""}, - {"MSG_WAITALL", Const, 0, ""}, - {"MSG_WAITFORONE", Const, 0, ""}, - {"MSG_WAITSTREAM", Const, 0, ""}, - {"MS_ACTIVE", Const, 0, ""}, - {"MS_ASYNC", Const, 0, ""}, - {"MS_BIND", Const, 0, ""}, - {"MS_DEACTIVATE", Const, 0, ""}, - {"MS_DIRSYNC", Const, 0, ""}, - {"MS_INVALIDATE", Const, 0, ""}, - {"MS_I_VERSION", Const, 0, ""}, - {"MS_KERNMOUNT", Const, 0, ""}, - {"MS_KILLPAGES", Const, 0, ""}, - {"MS_MANDLOCK", Const, 0, ""}, - {"MS_MGC_MSK", Const, 0, ""}, - {"MS_MGC_VAL", Const, 0, ""}, - {"MS_MOVE", Const, 0, ""}, - {"MS_NOATIME", Const, 0, ""}, - {"MS_NODEV", Const, 0, ""}, - {"MS_NODIRATIME", Const, 0, ""}, - {"MS_NOEXEC", Const, 0, ""}, - {"MS_NOSUID", Const, 0, ""}, - {"MS_NOUSER", Const, 0, ""}, - {"MS_POSIXACL", Const, 0, ""}, - {"MS_PRIVATE", Const, 0, ""}, - {"MS_RDONLY", Const, 0, ""}, - {"MS_REC", Const, 0, ""}, - {"MS_RELATIME", Const, 0, ""}, - {"MS_REMOUNT", Const, 0, ""}, - {"MS_RMT_MASK", Const, 0, ""}, - {"MS_SHARED", Const, 0, ""}, - {"MS_SILENT", Const, 0, ""}, - {"MS_SLAVE", Const, 0, ""}, - {"MS_STRICTATIME", Const, 0, ""}, - {"MS_SYNC", Const, 0, ""}, - {"MS_SYNCHRONOUS", Const, 0, ""}, - {"MS_UNBINDABLE", Const, 0, ""}, - {"Madvise", Func, 0, "func(b []byte, advice int) (err error)"}, - {"MapViewOfFile", Func, 0, ""}, - {"MaxTokenInfoClass", Const, 0, ""}, - {"Mclpool", Type, 2, ""}, - {"Mclpool.Alive", Field, 2, ""}, - {"Mclpool.Cwm", Field, 2, ""}, - {"Mclpool.Grown", Field, 2, ""}, - {"Mclpool.Hwm", Field, 2, ""}, - {"Mclpool.Lwm", Field, 2, ""}, - {"MibIfRow", Type, 0, ""}, - {"MibIfRow.AdminStatus", Field, 0, ""}, - {"MibIfRow.Descr", Field, 0, ""}, - {"MibIfRow.DescrLen", Field, 0, ""}, - {"MibIfRow.InDiscards", Field, 0, ""}, - {"MibIfRow.InErrors", Field, 0, ""}, - {"MibIfRow.InNUcastPkts", Field, 0, ""}, - {"MibIfRow.InOctets", Field, 0, ""}, - {"MibIfRow.InUcastPkts", Field, 0, ""}, - {"MibIfRow.InUnknownProtos", Field, 0, ""}, - {"MibIfRow.Index", Field, 0, ""}, - {"MibIfRow.LastChange", Field, 0, ""}, - {"MibIfRow.Mtu", Field, 0, ""}, - {"MibIfRow.Name", Field, 0, ""}, - {"MibIfRow.OperStatus", Field, 0, ""}, - {"MibIfRow.OutDiscards", Field, 0, ""}, - {"MibIfRow.OutErrors", Field, 0, ""}, - {"MibIfRow.OutNUcastPkts", Field, 0, ""}, - {"MibIfRow.OutOctets", Field, 0, ""}, - {"MibIfRow.OutQLen", Field, 0, ""}, - {"MibIfRow.OutUcastPkts", Field, 0, ""}, - {"MibIfRow.PhysAddr", Field, 0, ""}, - {"MibIfRow.PhysAddrLen", Field, 0, ""}, - {"MibIfRow.Speed", Field, 0, ""}, - {"MibIfRow.Type", Field, 0, ""}, - {"Mkdir", Func, 0, "func(path string, mode uint32) (err error)"}, - {"Mkdirat", Func, 0, "func(dirfd int, path string, mode uint32) (err error)"}, - {"Mkfifo", Func, 0, "func(path string, mode uint32) (err error)"}, - {"Mknod", Func, 0, "func(path string, mode uint32, dev int) (err error)"}, - {"Mknodat", Func, 0, "func(dirfd int, path string, mode uint32, dev int) (err error)"}, - {"Mlock", Func, 0, "func(b []byte) (err error)"}, - {"Mlockall", Func, 0, "func(flags int) (err error)"}, - {"Mmap", Func, 0, "func(fd int, offset int64, length int, prot int, flags int) (data []byte, err error)"}, - {"Mount", Func, 0, "func(source string, target string, fstype string, flags uintptr, data string) (err error)"}, - {"MoveFile", Func, 0, ""}, - {"Mprotect", Func, 0, "func(b []byte, prot int) (err error)"}, - {"Msghdr", Type, 0, ""}, - {"Msghdr.Control", Field, 0, ""}, - {"Msghdr.Controllen", Field, 0, ""}, - {"Msghdr.Flags", Field, 0, ""}, - {"Msghdr.Iov", Field, 0, ""}, - {"Msghdr.Iovlen", Field, 0, ""}, - {"Msghdr.Name", Field, 0, ""}, - {"Msghdr.Namelen", Field, 0, ""}, - {"Msghdr.Pad_cgo_0", Field, 0, ""}, - {"Msghdr.Pad_cgo_1", Field, 0, ""}, - {"Munlock", Func, 0, "func(b []byte) (err error)"}, - {"Munlockall", Func, 0, "func() (err error)"}, - {"Munmap", Func, 0, "func(b []byte) (err error)"}, - {"MustLoadDLL", Func, 0, ""}, - {"NAME_MAX", Const, 0, ""}, - {"NETLINK_ADD_MEMBERSHIP", Const, 0, ""}, - {"NETLINK_AUDIT", Const, 0, ""}, - {"NETLINK_BROADCAST_ERROR", Const, 0, ""}, - {"NETLINK_CONNECTOR", Const, 0, ""}, - {"NETLINK_DNRTMSG", Const, 0, ""}, - {"NETLINK_DROP_MEMBERSHIP", Const, 0, ""}, - {"NETLINK_ECRYPTFS", Const, 0, ""}, - {"NETLINK_FIB_LOOKUP", Const, 0, ""}, - {"NETLINK_FIREWALL", Const, 0, ""}, - {"NETLINK_GENERIC", Const, 0, ""}, - {"NETLINK_INET_DIAG", Const, 0, ""}, - {"NETLINK_IP6_FW", Const, 0, ""}, - {"NETLINK_ISCSI", Const, 0, ""}, - {"NETLINK_KOBJECT_UEVENT", Const, 0, ""}, - {"NETLINK_NETFILTER", Const, 0, ""}, - {"NETLINK_NFLOG", Const, 0, ""}, - {"NETLINK_NO_ENOBUFS", Const, 0, ""}, - {"NETLINK_PKTINFO", Const, 0, ""}, - {"NETLINK_RDMA", Const, 0, ""}, - {"NETLINK_ROUTE", Const, 0, ""}, - {"NETLINK_SCSITRANSPORT", Const, 0, ""}, - {"NETLINK_SELINUX", Const, 0, ""}, - {"NETLINK_UNUSED", Const, 0, ""}, - {"NETLINK_USERSOCK", Const, 0, ""}, - {"NETLINK_XFRM", Const, 0, ""}, - {"NET_RT_DUMP", Const, 0, ""}, - {"NET_RT_DUMP2", Const, 0, ""}, - {"NET_RT_FLAGS", Const, 0, ""}, - {"NET_RT_IFLIST", Const, 0, ""}, - {"NET_RT_IFLIST2", Const, 0, ""}, - {"NET_RT_IFLISTL", Const, 1, ""}, - {"NET_RT_IFMALIST", Const, 0, ""}, - {"NET_RT_MAXID", Const, 0, ""}, - {"NET_RT_OIFLIST", Const, 1, ""}, - {"NET_RT_OOIFLIST", Const, 1, ""}, - {"NET_RT_STAT", Const, 0, ""}, - {"NET_RT_STATS", Const, 1, ""}, - {"NET_RT_TABLE", Const, 1, ""}, - {"NET_RT_TRASH", Const, 0, ""}, - {"NLA_ALIGNTO", Const, 0, ""}, - {"NLA_F_NESTED", Const, 0, ""}, - {"NLA_F_NET_BYTEORDER", Const, 0, ""}, - {"NLA_HDRLEN", Const, 0, ""}, - {"NLMSG_ALIGNTO", Const, 0, ""}, - {"NLMSG_DONE", Const, 0, ""}, - {"NLMSG_ERROR", Const, 0, ""}, - {"NLMSG_HDRLEN", Const, 0, ""}, - {"NLMSG_MIN_TYPE", Const, 0, ""}, - {"NLMSG_NOOP", Const, 0, ""}, - {"NLMSG_OVERRUN", Const, 0, ""}, - {"NLM_F_ACK", Const, 0, ""}, - {"NLM_F_APPEND", Const, 0, ""}, - {"NLM_F_ATOMIC", Const, 0, ""}, - {"NLM_F_CREATE", Const, 0, ""}, - {"NLM_F_DUMP", Const, 0, ""}, - {"NLM_F_ECHO", Const, 0, ""}, - {"NLM_F_EXCL", Const, 0, ""}, - {"NLM_F_MATCH", Const, 0, ""}, - {"NLM_F_MULTI", Const, 0, ""}, - {"NLM_F_REPLACE", Const, 0, ""}, - {"NLM_F_REQUEST", Const, 0, ""}, - {"NLM_F_ROOT", Const, 0, ""}, - {"NOFLSH", Const, 0, ""}, - {"NOTE_ABSOLUTE", Const, 0, ""}, - {"NOTE_ATTRIB", Const, 0, ""}, - {"NOTE_BACKGROUND", Const, 16, ""}, - {"NOTE_CHILD", Const, 0, ""}, - {"NOTE_CRITICAL", Const, 16, ""}, - {"NOTE_DELETE", Const, 0, ""}, - {"NOTE_EOF", Const, 1, ""}, - {"NOTE_EXEC", Const, 0, ""}, - {"NOTE_EXIT", Const, 0, ""}, - {"NOTE_EXITSTATUS", Const, 0, ""}, - {"NOTE_EXIT_CSERROR", Const, 16, ""}, - {"NOTE_EXIT_DECRYPTFAIL", Const, 16, ""}, - {"NOTE_EXIT_DETAIL", Const, 16, ""}, - {"NOTE_EXIT_DETAIL_MASK", Const, 16, ""}, - {"NOTE_EXIT_MEMORY", Const, 16, ""}, - {"NOTE_EXIT_REPARENTED", Const, 16, ""}, - {"NOTE_EXTEND", Const, 0, ""}, - {"NOTE_FFAND", Const, 0, ""}, - {"NOTE_FFCOPY", Const, 0, ""}, - {"NOTE_FFCTRLMASK", Const, 0, ""}, - {"NOTE_FFLAGSMASK", Const, 0, ""}, - {"NOTE_FFNOP", Const, 0, ""}, - {"NOTE_FFOR", Const, 0, ""}, - {"NOTE_FORK", Const, 0, ""}, - {"NOTE_LEEWAY", Const, 16, ""}, - {"NOTE_LINK", Const, 0, ""}, - {"NOTE_LOWAT", Const, 0, ""}, - {"NOTE_NONE", Const, 0, ""}, - {"NOTE_NSECONDS", Const, 0, ""}, - {"NOTE_PCTRLMASK", Const, 0, ""}, - {"NOTE_PDATAMASK", Const, 0, ""}, - {"NOTE_REAP", Const, 0, ""}, - {"NOTE_RENAME", Const, 0, ""}, - {"NOTE_RESOURCEEND", Const, 0, ""}, - {"NOTE_REVOKE", Const, 0, ""}, - {"NOTE_SECONDS", Const, 0, ""}, - {"NOTE_SIGNAL", Const, 0, ""}, - {"NOTE_TRACK", Const, 0, ""}, - {"NOTE_TRACKERR", Const, 0, ""}, - {"NOTE_TRIGGER", Const, 0, ""}, - {"NOTE_TRUNCATE", Const, 1, ""}, - {"NOTE_USECONDS", Const, 0, ""}, - {"NOTE_VM_ERROR", Const, 0, ""}, - {"NOTE_VM_PRESSURE", Const, 0, ""}, - {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0, ""}, - {"NOTE_VM_PRESSURE_TERMINATE", Const, 0, ""}, - {"NOTE_WRITE", Const, 0, ""}, - {"NameCanonical", Const, 0, ""}, - {"NameCanonicalEx", Const, 0, ""}, - {"NameDisplay", Const, 0, ""}, - {"NameDnsDomain", Const, 0, ""}, - {"NameFullyQualifiedDN", Const, 0, ""}, - {"NameSamCompatible", Const, 0, ""}, - {"NameServicePrincipal", Const, 0, ""}, - {"NameUniqueId", Const, 0, ""}, - {"NameUnknown", Const, 0, ""}, - {"NameUserPrincipal", Const, 0, ""}, - {"Nanosleep", Func, 0, "func(time *Timespec, leftover *Timespec) (err error)"}, - {"NetApiBufferFree", Func, 0, ""}, - {"NetGetJoinInformation", Func, 2, ""}, - {"NetSetupDomainName", Const, 2, ""}, - {"NetSetupUnjoined", Const, 2, ""}, - {"NetSetupUnknownStatus", Const, 2, ""}, - {"NetSetupWorkgroupName", Const, 2, ""}, - {"NetUserGetInfo", Func, 0, ""}, - {"NetlinkMessage", Type, 0, ""}, - {"NetlinkMessage.Data", Field, 0, ""}, - {"NetlinkMessage.Header", Field, 0, ""}, - {"NetlinkRIB", Func, 0, "func(proto int, family int) ([]byte, error)"}, - {"NetlinkRouteAttr", Type, 0, ""}, - {"NetlinkRouteAttr.Attr", Field, 0, ""}, - {"NetlinkRouteAttr.Value", Field, 0, ""}, - {"NetlinkRouteRequest", Type, 0, ""}, - {"NetlinkRouteRequest.Data", Field, 0, ""}, - {"NetlinkRouteRequest.Header", Field, 0, ""}, - {"NewCallback", Func, 0, ""}, - {"NewCallbackCDecl", Func, 3, ""}, - {"NewLazyDLL", Func, 0, ""}, - {"NlAttr", Type, 0, ""}, - {"NlAttr.Len", Field, 0, ""}, - {"NlAttr.Type", Field, 0, ""}, - {"NlMsgerr", Type, 0, ""}, - {"NlMsgerr.Error", Field, 0, ""}, - {"NlMsgerr.Msg", Field, 0, ""}, - {"NlMsghdr", Type, 0, ""}, - {"NlMsghdr.Flags", Field, 0, ""}, - {"NlMsghdr.Len", Field, 0, ""}, - {"NlMsghdr.Pid", Field, 0, ""}, - {"NlMsghdr.Seq", Field, 0, ""}, - {"NlMsghdr.Type", Field, 0, ""}, - {"NsecToFiletime", Func, 0, ""}, - {"NsecToTimespec", Func, 0, "func(nsec int64) Timespec"}, - {"NsecToTimeval", Func, 0, "func(nsec int64) Timeval"}, - {"Ntohs", Func, 0, ""}, - {"OCRNL", Const, 0, ""}, - {"OFDEL", Const, 0, ""}, - {"OFILL", Const, 0, ""}, - {"OFIOGETBMAP", Const, 1, ""}, - {"OID_PKIX_KP_SERVER_AUTH", Var, 0, ""}, - {"OID_SERVER_GATED_CRYPTO", Var, 0, ""}, - {"OID_SGC_NETSCAPE", Var, 0, ""}, - {"OLCUC", Const, 0, ""}, - {"ONLCR", Const, 0, ""}, - {"ONLRET", Const, 0, ""}, - {"ONOCR", Const, 0, ""}, - {"ONOEOT", Const, 1, ""}, - {"OPEN_ALWAYS", Const, 0, ""}, - {"OPEN_EXISTING", Const, 0, ""}, - {"OPOST", Const, 0, ""}, - {"O_ACCMODE", Const, 0, ""}, - {"O_ALERT", Const, 0, ""}, - {"O_ALT_IO", Const, 1, ""}, - {"O_APPEND", Const, 0, ""}, - {"O_ASYNC", Const, 0, ""}, - {"O_CLOEXEC", Const, 0, ""}, - {"O_CREAT", Const, 0, ""}, - {"O_DIRECT", Const, 0, ""}, - {"O_DIRECTORY", Const, 0, ""}, - {"O_DP_GETRAWENCRYPTED", Const, 16, ""}, - {"O_DSYNC", Const, 0, ""}, - {"O_EVTONLY", Const, 0, ""}, - {"O_EXCL", Const, 0, ""}, - {"O_EXEC", Const, 0, ""}, - {"O_EXLOCK", Const, 0, ""}, - {"O_FSYNC", Const, 0, ""}, - {"O_LARGEFILE", Const, 0, ""}, - {"O_NDELAY", Const, 0, ""}, - {"O_NOATIME", Const, 0, ""}, - {"O_NOCTTY", Const, 0, ""}, - {"O_NOFOLLOW", Const, 0, ""}, - {"O_NONBLOCK", Const, 0, ""}, - {"O_NOSIGPIPE", Const, 1, ""}, - {"O_POPUP", Const, 0, ""}, - {"O_RDONLY", Const, 0, ""}, - {"O_RDWR", Const, 0, ""}, - {"O_RSYNC", Const, 0, ""}, - {"O_SHLOCK", Const, 0, ""}, - {"O_SYMLINK", Const, 0, ""}, - {"O_SYNC", Const, 0, ""}, - {"O_TRUNC", Const, 0, ""}, - {"O_TTY_INIT", Const, 0, ""}, - {"O_WRONLY", Const, 0, ""}, - {"Open", Func, 0, "func(path string, mode int, perm uint32) (fd int, err error)"}, - {"OpenCurrentProcessToken", Func, 0, ""}, - {"OpenProcess", Func, 0, ""}, - {"OpenProcessToken", Func, 0, ""}, - {"Openat", Func, 0, "func(dirfd int, path string, flags int, mode uint32) (fd int, err error)"}, - {"Overlapped", Type, 0, ""}, - {"Overlapped.HEvent", Field, 0, ""}, - {"Overlapped.Internal", Field, 0, ""}, - {"Overlapped.InternalHigh", Field, 0, ""}, - {"Overlapped.Offset", Field, 0, ""}, - {"Overlapped.OffsetHigh", Field, 0, ""}, - {"PACKET_ADD_MEMBERSHIP", Const, 0, ""}, - {"PACKET_BROADCAST", Const, 0, ""}, - {"PACKET_DROP_MEMBERSHIP", Const, 0, ""}, - {"PACKET_FASTROUTE", Const, 0, ""}, - {"PACKET_HOST", Const, 0, ""}, - {"PACKET_LOOPBACK", Const, 0, ""}, - {"PACKET_MR_ALLMULTI", Const, 0, ""}, - {"PACKET_MR_MULTICAST", Const, 0, ""}, - {"PACKET_MR_PROMISC", Const, 0, ""}, - {"PACKET_MULTICAST", Const, 0, ""}, - {"PACKET_OTHERHOST", Const, 0, ""}, - {"PACKET_OUTGOING", Const, 0, ""}, - {"PACKET_RECV_OUTPUT", Const, 0, ""}, - {"PACKET_RX_RING", Const, 0, ""}, - {"PACKET_STATISTICS", Const, 0, ""}, - {"PAGE_EXECUTE_READ", Const, 0, ""}, - {"PAGE_EXECUTE_READWRITE", Const, 0, ""}, - {"PAGE_EXECUTE_WRITECOPY", Const, 0, ""}, - {"PAGE_READONLY", Const, 0, ""}, - {"PAGE_READWRITE", Const, 0, ""}, - {"PAGE_WRITECOPY", Const, 0, ""}, - {"PARENB", Const, 0, ""}, - {"PARMRK", Const, 0, ""}, - {"PARODD", Const, 0, ""}, - {"PENDIN", Const, 0, ""}, - {"PFL_HIDDEN", Const, 2, ""}, - {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2, ""}, - {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2, ""}, - {"PFL_NETWORKDIRECT_PROVIDER", Const, 2, ""}, - {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2, ""}, - {"PF_FLUSH", Const, 1, ""}, - {"PKCS_7_ASN_ENCODING", Const, 0, ""}, - {"PMC5_PIPELINE_FLUSH", Const, 1, ""}, - {"PRIO_PGRP", Const, 2, ""}, - {"PRIO_PROCESS", Const, 2, ""}, - {"PRIO_USER", Const, 2, ""}, - {"PRI_IOFLUSH", Const, 1, ""}, - {"PROCESS_QUERY_INFORMATION", Const, 0, ""}, - {"PROCESS_TERMINATE", Const, 2, ""}, - {"PROT_EXEC", Const, 0, ""}, - {"PROT_GROWSDOWN", Const, 0, ""}, - {"PROT_GROWSUP", Const, 0, ""}, - {"PROT_NONE", Const, 0, ""}, - {"PROT_READ", Const, 0, ""}, - {"PROT_WRITE", Const, 0, ""}, - {"PROV_DH_SCHANNEL", Const, 0, ""}, - {"PROV_DSS", Const, 0, ""}, - {"PROV_DSS_DH", Const, 0, ""}, - {"PROV_EC_ECDSA_FULL", Const, 0, ""}, - {"PROV_EC_ECDSA_SIG", Const, 0, ""}, - {"PROV_EC_ECNRA_FULL", Const, 0, ""}, - {"PROV_EC_ECNRA_SIG", Const, 0, ""}, - {"PROV_FORTEZZA", Const, 0, ""}, - {"PROV_INTEL_SEC", Const, 0, ""}, - {"PROV_MS_EXCHANGE", Const, 0, ""}, - {"PROV_REPLACE_OWF", Const, 0, ""}, - {"PROV_RNG", Const, 0, ""}, - {"PROV_RSA_AES", Const, 0, ""}, - {"PROV_RSA_FULL", Const, 0, ""}, - {"PROV_RSA_SCHANNEL", Const, 0, ""}, - {"PROV_RSA_SIG", Const, 0, ""}, - {"PROV_SPYRUS_LYNKS", Const, 0, ""}, - {"PROV_SSL", Const, 0, ""}, - {"PR_CAPBSET_DROP", Const, 0, ""}, - {"PR_CAPBSET_READ", Const, 0, ""}, - {"PR_CLEAR_SECCOMP_FILTER", Const, 0, ""}, - {"PR_ENDIAN_BIG", Const, 0, ""}, - {"PR_ENDIAN_LITTLE", Const, 0, ""}, - {"PR_ENDIAN_PPC_LITTLE", Const, 0, ""}, - {"PR_FPEMU_NOPRINT", Const, 0, ""}, - {"PR_FPEMU_SIGFPE", Const, 0, ""}, - {"PR_FP_EXC_ASYNC", Const, 0, ""}, - {"PR_FP_EXC_DISABLED", Const, 0, ""}, - {"PR_FP_EXC_DIV", Const, 0, ""}, - {"PR_FP_EXC_INV", Const, 0, ""}, - {"PR_FP_EXC_NONRECOV", Const, 0, ""}, - {"PR_FP_EXC_OVF", Const, 0, ""}, - {"PR_FP_EXC_PRECISE", Const, 0, ""}, - {"PR_FP_EXC_RES", Const, 0, ""}, - {"PR_FP_EXC_SW_ENABLE", Const, 0, ""}, - {"PR_FP_EXC_UND", Const, 0, ""}, - {"PR_GET_DUMPABLE", Const, 0, ""}, - {"PR_GET_ENDIAN", Const, 0, ""}, - {"PR_GET_FPEMU", Const, 0, ""}, - {"PR_GET_FPEXC", Const, 0, ""}, - {"PR_GET_KEEPCAPS", Const, 0, ""}, - {"PR_GET_NAME", Const, 0, ""}, - {"PR_GET_PDEATHSIG", Const, 0, ""}, - {"PR_GET_SECCOMP", Const, 0, ""}, - {"PR_GET_SECCOMP_FILTER", Const, 0, ""}, - {"PR_GET_SECUREBITS", Const, 0, ""}, - {"PR_GET_TIMERSLACK", Const, 0, ""}, - {"PR_GET_TIMING", Const, 0, ""}, - {"PR_GET_TSC", Const, 0, ""}, - {"PR_GET_UNALIGN", Const, 0, ""}, - {"PR_MCE_KILL", Const, 0, ""}, - {"PR_MCE_KILL_CLEAR", Const, 0, ""}, - {"PR_MCE_KILL_DEFAULT", Const, 0, ""}, - {"PR_MCE_KILL_EARLY", Const, 0, ""}, - {"PR_MCE_KILL_GET", Const, 0, ""}, - {"PR_MCE_KILL_LATE", Const, 0, ""}, - {"PR_MCE_KILL_SET", Const, 0, ""}, - {"PR_SECCOMP_FILTER_EVENT", Const, 0, ""}, - {"PR_SECCOMP_FILTER_SYSCALL", Const, 0, ""}, - {"PR_SET_DUMPABLE", Const, 0, ""}, - {"PR_SET_ENDIAN", Const, 0, ""}, - {"PR_SET_FPEMU", Const, 0, ""}, - {"PR_SET_FPEXC", Const, 0, ""}, - {"PR_SET_KEEPCAPS", Const, 0, ""}, - {"PR_SET_NAME", Const, 0, ""}, - {"PR_SET_PDEATHSIG", Const, 0, ""}, - {"PR_SET_PTRACER", Const, 0, ""}, - {"PR_SET_SECCOMP", Const, 0, ""}, - {"PR_SET_SECCOMP_FILTER", Const, 0, ""}, - {"PR_SET_SECUREBITS", Const, 0, ""}, - {"PR_SET_TIMERSLACK", Const, 0, ""}, - {"PR_SET_TIMING", Const, 0, ""}, - {"PR_SET_TSC", Const, 0, ""}, - {"PR_SET_UNALIGN", Const, 0, ""}, - {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0, ""}, - {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0, ""}, - {"PR_TIMING_STATISTICAL", Const, 0, ""}, - {"PR_TIMING_TIMESTAMP", Const, 0, ""}, - {"PR_TSC_ENABLE", Const, 0, ""}, - {"PR_TSC_SIGSEGV", Const, 0, ""}, - {"PR_UNALIGN_NOPRINT", Const, 0, ""}, - {"PR_UNALIGN_SIGBUS", Const, 0, ""}, - {"PTRACE_ARCH_PRCTL", Const, 0, ""}, - {"PTRACE_ATTACH", Const, 0, ""}, - {"PTRACE_CONT", Const, 0, ""}, - {"PTRACE_DETACH", Const, 0, ""}, - {"PTRACE_EVENT_CLONE", Const, 0, ""}, - {"PTRACE_EVENT_EXEC", Const, 0, ""}, - {"PTRACE_EVENT_EXIT", Const, 0, ""}, - {"PTRACE_EVENT_FORK", Const, 0, ""}, - {"PTRACE_EVENT_VFORK", Const, 0, ""}, - {"PTRACE_EVENT_VFORK_DONE", Const, 0, ""}, - {"PTRACE_GETCRUNCHREGS", Const, 0, ""}, - {"PTRACE_GETEVENTMSG", Const, 0, ""}, - {"PTRACE_GETFPREGS", Const, 0, ""}, - {"PTRACE_GETFPXREGS", Const, 0, ""}, - {"PTRACE_GETHBPREGS", Const, 0, ""}, - {"PTRACE_GETREGS", Const, 0, ""}, - {"PTRACE_GETREGSET", Const, 0, ""}, - {"PTRACE_GETSIGINFO", Const, 0, ""}, - {"PTRACE_GETVFPREGS", Const, 0, ""}, - {"PTRACE_GETWMMXREGS", Const, 0, ""}, - {"PTRACE_GET_THREAD_AREA", Const, 0, ""}, - {"PTRACE_KILL", Const, 0, ""}, - {"PTRACE_OLDSETOPTIONS", Const, 0, ""}, - {"PTRACE_O_MASK", Const, 0, ""}, - {"PTRACE_O_TRACECLONE", Const, 0, ""}, - {"PTRACE_O_TRACEEXEC", Const, 0, ""}, - {"PTRACE_O_TRACEEXIT", Const, 0, ""}, - {"PTRACE_O_TRACEFORK", Const, 0, ""}, - {"PTRACE_O_TRACESYSGOOD", Const, 0, ""}, - {"PTRACE_O_TRACEVFORK", Const, 0, ""}, - {"PTRACE_O_TRACEVFORKDONE", Const, 0, ""}, - {"PTRACE_PEEKDATA", Const, 0, ""}, - {"PTRACE_PEEKTEXT", Const, 0, ""}, - {"PTRACE_PEEKUSR", Const, 0, ""}, - {"PTRACE_POKEDATA", Const, 0, ""}, - {"PTRACE_POKETEXT", Const, 0, ""}, - {"PTRACE_POKEUSR", Const, 0, ""}, - {"PTRACE_SETCRUNCHREGS", Const, 0, ""}, - {"PTRACE_SETFPREGS", Const, 0, ""}, - {"PTRACE_SETFPXREGS", Const, 0, ""}, - {"PTRACE_SETHBPREGS", Const, 0, ""}, - {"PTRACE_SETOPTIONS", Const, 0, ""}, - {"PTRACE_SETREGS", Const, 0, ""}, - {"PTRACE_SETREGSET", Const, 0, ""}, - {"PTRACE_SETSIGINFO", Const, 0, ""}, - {"PTRACE_SETVFPREGS", Const, 0, ""}, - {"PTRACE_SETWMMXREGS", Const, 0, ""}, - {"PTRACE_SET_SYSCALL", Const, 0, ""}, - {"PTRACE_SET_THREAD_AREA", Const, 0, ""}, - {"PTRACE_SINGLEBLOCK", Const, 0, ""}, - {"PTRACE_SINGLESTEP", Const, 0, ""}, - {"PTRACE_SYSCALL", Const, 0, ""}, - {"PTRACE_SYSEMU", Const, 0, ""}, - {"PTRACE_SYSEMU_SINGLESTEP", Const, 0, ""}, - {"PTRACE_TRACEME", Const, 0, ""}, - {"PT_ATTACH", Const, 0, ""}, - {"PT_ATTACHEXC", Const, 0, ""}, - {"PT_CONTINUE", Const, 0, ""}, - {"PT_DATA_ADDR", Const, 0, ""}, - {"PT_DENY_ATTACH", Const, 0, ""}, - {"PT_DETACH", Const, 0, ""}, - {"PT_FIRSTMACH", Const, 0, ""}, - {"PT_FORCEQUOTA", Const, 0, ""}, - {"PT_KILL", Const, 0, ""}, - {"PT_MASK", Const, 1, ""}, - {"PT_READ_D", Const, 0, ""}, - {"PT_READ_I", Const, 0, ""}, - {"PT_READ_U", Const, 0, ""}, - {"PT_SIGEXC", Const, 0, ""}, - {"PT_STEP", Const, 0, ""}, - {"PT_TEXT_ADDR", Const, 0, ""}, - {"PT_TEXT_END_ADDR", Const, 0, ""}, - {"PT_THUPDATE", Const, 0, ""}, - {"PT_TRACE_ME", Const, 0, ""}, - {"PT_WRITE_D", Const, 0, ""}, - {"PT_WRITE_I", Const, 0, ""}, - {"PT_WRITE_U", Const, 0, ""}, - {"ParseDirent", Func, 0, "func(buf []byte, max int, names []string) (consumed int, count int, newnames []string)"}, - {"ParseNetlinkMessage", Func, 0, "func(b []byte) ([]NetlinkMessage, error)"}, - {"ParseNetlinkRouteAttr", Func, 0, "func(m *NetlinkMessage) ([]NetlinkRouteAttr, error)"}, - {"ParseRoutingMessage", Func, 0, ""}, - {"ParseRoutingSockaddr", Func, 0, ""}, - {"ParseSocketControlMessage", Func, 0, "func(b []byte) ([]SocketControlMessage, error)"}, - {"ParseUnixCredentials", Func, 0, "func(m *SocketControlMessage) (*Ucred, error)"}, - {"ParseUnixRights", Func, 0, "func(m *SocketControlMessage) ([]int, error)"}, - {"PathMax", Const, 0, ""}, - {"Pathconf", Func, 0, ""}, - {"Pause", Func, 0, "func() (err error)"}, - {"Pipe", Func, 0, "func(p []int) error"}, - {"Pipe2", Func, 1, "func(p []int, flags int) error"}, - {"PivotRoot", Func, 0, "func(newroot string, putold string) (err error)"}, - {"Pointer", Type, 11, ""}, - {"PostQueuedCompletionStatus", Func, 0, ""}, - {"Pread", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"}, - {"Proc", Type, 0, ""}, - {"Proc.Dll", Field, 0, ""}, - {"Proc.Name", Field, 0, ""}, - {"ProcAttr", Type, 0, ""}, - {"ProcAttr.Dir", Field, 0, ""}, - {"ProcAttr.Env", Field, 0, ""}, - {"ProcAttr.Files", Field, 0, ""}, - {"ProcAttr.Sys", Field, 0, ""}, - {"Process32First", Func, 4, ""}, - {"Process32Next", Func, 4, ""}, - {"ProcessEntry32", Type, 4, ""}, - {"ProcessEntry32.DefaultHeapID", Field, 4, ""}, - {"ProcessEntry32.ExeFile", Field, 4, ""}, - {"ProcessEntry32.Flags", Field, 4, ""}, - {"ProcessEntry32.ModuleID", Field, 4, ""}, - {"ProcessEntry32.ParentProcessID", Field, 4, ""}, - {"ProcessEntry32.PriClassBase", Field, 4, ""}, - {"ProcessEntry32.ProcessID", Field, 4, ""}, - {"ProcessEntry32.Size", Field, 4, ""}, - {"ProcessEntry32.Threads", Field, 4, ""}, - {"ProcessEntry32.Usage", Field, 4, ""}, - {"ProcessInformation", Type, 0, ""}, - {"ProcessInformation.Process", Field, 0, ""}, - {"ProcessInformation.ProcessId", Field, 0, ""}, - {"ProcessInformation.Thread", Field, 0, ""}, - {"ProcessInformation.ThreadId", Field, 0, ""}, - {"Protoent", Type, 0, ""}, - {"Protoent.Aliases", Field, 0, ""}, - {"Protoent.Name", Field, 0, ""}, - {"Protoent.Proto", Field, 0, ""}, - {"PtraceAttach", Func, 0, "func(pid int) (err error)"}, - {"PtraceCont", Func, 0, "func(pid int, signal int) (err error)"}, - {"PtraceDetach", Func, 0, "func(pid int) (err error)"}, - {"PtraceGetEventMsg", Func, 0, "func(pid int) (msg uint, err error)"}, - {"PtraceGetRegs", Func, 0, "func(pid int, regsout *PtraceRegs) (err error)"}, - {"PtracePeekData", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"}, - {"PtracePeekText", Func, 0, "func(pid int, addr uintptr, out []byte) (count int, err error)"}, - {"PtracePokeData", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"}, - {"PtracePokeText", Func, 0, "func(pid int, addr uintptr, data []byte) (count int, err error)"}, - {"PtraceRegs", Type, 0, ""}, - {"PtraceRegs.Cs", Field, 0, ""}, - {"PtraceRegs.Ds", Field, 0, ""}, - {"PtraceRegs.Eax", Field, 0, ""}, - {"PtraceRegs.Ebp", Field, 0, ""}, - {"PtraceRegs.Ebx", Field, 0, ""}, - {"PtraceRegs.Ecx", Field, 0, ""}, - {"PtraceRegs.Edi", Field, 0, ""}, - {"PtraceRegs.Edx", Field, 0, ""}, - {"PtraceRegs.Eflags", Field, 0, ""}, - {"PtraceRegs.Eip", Field, 0, ""}, - {"PtraceRegs.Es", Field, 0, ""}, - {"PtraceRegs.Esi", Field, 0, ""}, - {"PtraceRegs.Esp", Field, 0, ""}, - {"PtraceRegs.Fs", Field, 0, ""}, - {"PtraceRegs.Fs_base", Field, 0, ""}, - {"PtraceRegs.Gs", Field, 0, ""}, - {"PtraceRegs.Gs_base", Field, 0, ""}, - {"PtraceRegs.Orig_eax", Field, 0, ""}, - {"PtraceRegs.Orig_rax", Field, 0, ""}, - {"PtraceRegs.R10", Field, 0, ""}, - {"PtraceRegs.R11", Field, 0, ""}, - {"PtraceRegs.R12", Field, 0, ""}, - {"PtraceRegs.R13", Field, 0, ""}, - {"PtraceRegs.R14", Field, 0, ""}, - {"PtraceRegs.R15", Field, 0, ""}, - {"PtraceRegs.R8", Field, 0, ""}, - {"PtraceRegs.R9", Field, 0, ""}, - {"PtraceRegs.Rax", Field, 0, ""}, - {"PtraceRegs.Rbp", Field, 0, ""}, - {"PtraceRegs.Rbx", Field, 0, ""}, - {"PtraceRegs.Rcx", Field, 0, ""}, - {"PtraceRegs.Rdi", Field, 0, ""}, - {"PtraceRegs.Rdx", Field, 0, ""}, - {"PtraceRegs.Rip", Field, 0, ""}, - {"PtraceRegs.Rsi", Field, 0, ""}, - {"PtraceRegs.Rsp", Field, 0, ""}, - {"PtraceRegs.Ss", Field, 0, ""}, - {"PtraceRegs.Uregs", Field, 0, ""}, - {"PtraceRegs.Xcs", Field, 0, ""}, - {"PtraceRegs.Xds", Field, 0, ""}, - {"PtraceRegs.Xes", Field, 0, ""}, - {"PtraceRegs.Xfs", Field, 0, ""}, - {"PtraceRegs.Xgs", Field, 0, ""}, - {"PtraceRegs.Xss", Field, 0, ""}, - {"PtraceSetOptions", Func, 0, "func(pid int, options int) (err error)"}, - {"PtraceSetRegs", Func, 0, "func(pid int, regs *PtraceRegs) (err error)"}, - {"PtraceSingleStep", Func, 0, "func(pid int) (err error)"}, - {"PtraceSyscall", Func, 1, "func(pid int, signal int) (err error)"}, - {"Pwrite", Func, 0, "func(fd int, p []byte, offset int64) (n int, err error)"}, - {"REG_BINARY", Const, 0, ""}, - {"REG_DWORD", Const, 0, ""}, - {"REG_DWORD_BIG_ENDIAN", Const, 0, ""}, - {"REG_DWORD_LITTLE_ENDIAN", Const, 0, ""}, - {"REG_EXPAND_SZ", Const, 0, ""}, - {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0, ""}, - {"REG_LINK", Const, 0, ""}, - {"REG_MULTI_SZ", Const, 0, ""}, - {"REG_NONE", Const, 0, ""}, - {"REG_QWORD", Const, 0, ""}, - {"REG_QWORD_LITTLE_ENDIAN", Const, 0, ""}, - {"REG_RESOURCE_LIST", Const, 0, ""}, - {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0, ""}, - {"REG_SZ", Const, 0, ""}, - {"RLIMIT_AS", Const, 0, ""}, - {"RLIMIT_CORE", Const, 0, ""}, - {"RLIMIT_CPU", Const, 0, ""}, - {"RLIMIT_CPU_USAGE_MONITOR", Const, 16, ""}, - {"RLIMIT_DATA", Const, 0, ""}, - {"RLIMIT_FSIZE", Const, 0, ""}, - {"RLIMIT_NOFILE", Const, 0, ""}, - {"RLIMIT_STACK", Const, 0, ""}, - {"RLIM_INFINITY", Const, 0, ""}, - {"RTAX_ADVMSS", Const, 0, ""}, - {"RTAX_AUTHOR", Const, 0, ""}, - {"RTAX_BRD", Const, 0, ""}, - {"RTAX_CWND", Const, 0, ""}, - {"RTAX_DST", Const, 0, ""}, - {"RTAX_FEATURES", Const, 0, ""}, - {"RTAX_FEATURE_ALLFRAG", Const, 0, ""}, - {"RTAX_FEATURE_ECN", Const, 0, ""}, - {"RTAX_FEATURE_SACK", Const, 0, ""}, - {"RTAX_FEATURE_TIMESTAMP", Const, 0, ""}, - {"RTAX_GATEWAY", Const, 0, ""}, - {"RTAX_GENMASK", Const, 0, ""}, - {"RTAX_HOPLIMIT", Const, 0, ""}, - {"RTAX_IFA", Const, 0, ""}, - {"RTAX_IFP", Const, 0, ""}, - {"RTAX_INITCWND", Const, 0, ""}, - {"RTAX_INITRWND", Const, 0, ""}, - {"RTAX_LABEL", Const, 1, ""}, - {"RTAX_LOCK", Const, 0, ""}, - {"RTAX_MAX", Const, 0, ""}, - {"RTAX_MTU", Const, 0, ""}, - {"RTAX_NETMASK", Const, 0, ""}, - {"RTAX_REORDERING", Const, 0, ""}, - {"RTAX_RTO_MIN", Const, 0, ""}, - {"RTAX_RTT", Const, 0, ""}, - {"RTAX_RTTVAR", Const, 0, ""}, - {"RTAX_SRC", Const, 1, ""}, - {"RTAX_SRCMASK", Const, 1, ""}, - {"RTAX_SSTHRESH", Const, 0, ""}, - {"RTAX_TAG", Const, 1, ""}, - {"RTAX_UNSPEC", Const, 0, ""}, - {"RTAX_WINDOW", Const, 0, ""}, - {"RTA_ALIGNTO", Const, 0, ""}, - {"RTA_AUTHOR", Const, 0, ""}, - {"RTA_BRD", Const, 0, ""}, - {"RTA_CACHEINFO", Const, 0, ""}, - {"RTA_DST", Const, 0, ""}, - {"RTA_FLOW", Const, 0, ""}, - {"RTA_GATEWAY", Const, 0, ""}, - {"RTA_GENMASK", Const, 0, ""}, - {"RTA_IFA", Const, 0, ""}, - {"RTA_IFP", Const, 0, ""}, - {"RTA_IIF", Const, 0, ""}, - {"RTA_LABEL", Const, 1, ""}, - {"RTA_MAX", Const, 0, ""}, - {"RTA_METRICS", Const, 0, ""}, - {"RTA_MULTIPATH", Const, 0, ""}, - {"RTA_NETMASK", Const, 0, ""}, - {"RTA_OIF", Const, 0, ""}, - {"RTA_PREFSRC", Const, 0, ""}, - {"RTA_PRIORITY", Const, 0, ""}, - {"RTA_SRC", Const, 0, ""}, - {"RTA_SRCMASK", Const, 1, ""}, - {"RTA_TABLE", Const, 0, ""}, - {"RTA_TAG", Const, 1, ""}, - {"RTA_UNSPEC", Const, 0, ""}, - {"RTCF_DIRECTSRC", Const, 0, ""}, - {"RTCF_DOREDIRECT", Const, 0, ""}, - {"RTCF_LOG", Const, 0, ""}, - {"RTCF_MASQ", Const, 0, ""}, - {"RTCF_NAT", Const, 0, ""}, - {"RTCF_VALVE", Const, 0, ""}, - {"RTF_ADDRCLASSMASK", Const, 0, ""}, - {"RTF_ADDRCONF", Const, 0, ""}, - {"RTF_ALLONLINK", Const, 0, ""}, - {"RTF_ANNOUNCE", Const, 1, ""}, - {"RTF_BLACKHOLE", Const, 0, ""}, - {"RTF_BROADCAST", Const, 0, ""}, - {"RTF_CACHE", Const, 0, ""}, - {"RTF_CLONED", Const, 1, ""}, - {"RTF_CLONING", Const, 0, ""}, - {"RTF_CONDEMNED", Const, 0, ""}, - {"RTF_DEFAULT", Const, 0, ""}, - {"RTF_DELCLONE", Const, 0, ""}, - {"RTF_DONE", Const, 0, ""}, - {"RTF_DYNAMIC", Const, 0, ""}, - {"RTF_FLOW", Const, 0, ""}, - {"RTF_FMASK", Const, 0, ""}, - {"RTF_GATEWAY", Const, 0, ""}, - {"RTF_GWFLAG_COMPAT", Const, 3, ""}, - {"RTF_HOST", Const, 0, ""}, - {"RTF_IFREF", Const, 0, ""}, - {"RTF_IFSCOPE", Const, 0, ""}, - {"RTF_INTERFACE", Const, 0, ""}, - {"RTF_IRTT", Const, 0, ""}, - {"RTF_LINKRT", Const, 0, ""}, - {"RTF_LLDATA", Const, 0, ""}, - {"RTF_LLINFO", Const, 0, ""}, - {"RTF_LOCAL", Const, 0, ""}, - {"RTF_MASK", Const, 1, ""}, - {"RTF_MODIFIED", Const, 0, ""}, - {"RTF_MPATH", Const, 1, ""}, - {"RTF_MPLS", Const, 1, ""}, - {"RTF_MSS", Const, 0, ""}, - {"RTF_MTU", Const, 0, ""}, - {"RTF_MULTICAST", Const, 0, ""}, - {"RTF_NAT", Const, 0, ""}, - {"RTF_NOFORWARD", Const, 0, ""}, - {"RTF_NONEXTHOP", Const, 0, ""}, - {"RTF_NOPMTUDISC", Const, 0, ""}, - {"RTF_PERMANENT_ARP", Const, 1, ""}, - {"RTF_PINNED", Const, 0, ""}, - {"RTF_POLICY", Const, 0, ""}, - {"RTF_PRCLONING", Const, 0, ""}, - {"RTF_PROTO1", Const, 0, ""}, - {"RTF_PROTO2", Const, 0, ""}, - {"RTF_PROTO3", Const, 0, ""}, - {"RTF_PROXY", Const, 16, ""}, - {"RTF_REINSTATE", Const, 0, ""}, - {"RTF_REJECT", Const, 0, ""}, - {"RTF_RNH_LOCKED", Const, 0, ""}, - {"RTF_ROUTER", Const, 16, ""}, - {"RTF_SOURCE", Const, 1, ""}, - {"RTF_SRC", Const, 1, ""}, - {"RTF_STATIC", Const, 0, ""}, - {"RTF_STICKY", Const, 0, ""}, - {"RTF_THROW", Const, 0, ""}, - {"RTF_TUNNEL", Const, 1, ""}, - {"RTF_UP", Const, 0, ""}, - {"RTF_USETRAILERS", Const, 1, ""}, - {"RTF_WASCLONED", Const, 0, ""}, - {"RTF_WINDOW", Const, 0, ""}, - {"RTF_XRESOLVE", Const, 0, ""}, - {"RTM_ADD", Const, 0, ""}, - {"RTM_BASE", Const, 0, ""}, - {"RTM_CHANGE", Const, 0, ""}, - {"RTM_CHGADDR", Const, 1, ""}, - {"RTM_DELACTION", Const, 0, ""}, - {"RTM_DELADDR", Const, 0, ""}, - {"RTM_DELADDRLABEL", Const, 0, ""}, - {"RTM_DELETE", Const, 0, ""}, - {"RTM_DELLINK", Const, 0, ""}, - {"RTM_DELMADDR", Const, 0, ""}, - {"RTM_DELNEIGH", Const, 0, ""}, - {"RTM_DELQDISC", Const, 0, ""}, - {"RTM_DELROUTE", Const, 0, ""}, - {"RTM_DELRULE", Const, 0, ""}, - {"RTM_DELTCLASS", Const, 0, ""}, - {"RTM_DELTFILTER", Const, 0, ""}, - {"RTM_DESYNC", Const, 1, ""}, - {"RTM_F_CLONED", Const, 0, ""}, - {"RTM_F_EQUALIZE", Const, 0, ""}, - {"RTM_F_NOTIFY", Const, 0, ""}, - {"RTM_F_PREFIX", Const, 0, ""}, - {"RTM_GET", Const, 0, ""}, - {"RTM_GET2", Const, 0, ""}, - {"RTM_GETACTION", Const, 0, ""}, - {"RTM_GETADDR", Const, 0, ""}, - {"RTM_GETADDRLABEL", Const, 0, ""}, - {"RTM_GETANYCAST", Const, 0, ""}, - {"RTM_GETDCB", Const, 0, ""}, - {"RTM_GETLINK", Const, 0, ""}, - {"RTM_GETMULTICAST", Const, 0, ""}, - {"RTM_GETNEIGH", Const, 0, ""}, - {"RTM_GETNEIGHTBL", Const, 0, ""}, - {"RTM_GETQDISC", Const, 0, ""}, - {"RTM_GETROUTE", Const, 0, ""}, - {"RTM_GETRULE", Const, 0, ""}, - {"RTM_GETTCLASS", Const, 0, ""}, - {"RTM_GETTFILTER", Const, 0, ""}, - {"RTM_IEEE80211", Const, 0, ""}, - {"RTM_IFANNOUNCE", Const, 0, ""}, - {"RTM_IFINFO", Const, 0, ""}, - {"RTM_IFINFO2", Const, 0, ""}, - {"RTM_LLINFO_UPD", Const, 1, ""}, - {"RTM_LOCK", Const, 0, ""}, - {"RTM_LOSING", Const, 0, ""}, - {"RTM_MAX", Const, 0, ""}, - {"RTM_MAXSIZE", Const, 1, ""}, - {"RTM_MISS", Const, 0, ""}, - {"RTM_NEWACTION", Const, 0, ""}, - {"RTM_NEWADDR", Const, 0, ""}, - {"RTM_NEWADDRLABEL", Const, 0, ""}, - {"RTM_NEWLINK", Const, 0, ""}, - {"RTM_NEWMADDR", Const, 0, ""}, - {"RTM_NEWMADDR2", Const, 0, ""}, - {"RTM_NEWNDUSEROPT", Const, 0, ""}, - {"RTM_NEWNEIGH", Const, 0, ""}, - {"RTM_NEWNEIGHTBL", Const, 0, ""}, - {"RTM_NEWPREFIX", Const, 0, ""}, - {"RTM_NEWQDISC", Const, 0, ""}, - {"RTM_NEWROUTE", Const, 0, ""}, - {"RTM_NEWRULE", Const, 0, ""}, - {"RTM_NEWTCLASS", Const, 0, ""}, - {"RTM_NEWTFILTER", Const, 0, ""}, - {"RTM_NR_FAMILIES", Const, 0, ""}, - {"RTM_NR_MSGTYPES", Const, 0, ""}, - {"RTM_OIFINFO", Const, 1, ""}, - {"RTM_OLDADD", Const, 0, ""}, - {"RTM_OLDDEL", Const, 0, ""}, - {"RTM_OOIFINFO", Const, 1, ""}, - {"RTM_REDIRECT", Const, 0, ""}, - {"RTM_RESOLVE", Const, 0, ""}, - {"RTM_RTTUNIT", Const, 0, ""}, - {"RTM_SETDCB", Const, 0, ""}, - {"RTM_SETGATE", Const, 1, ""}, - {"RTM_SETLINK", Const, 0, ""}, - {"RTM_SETNEIGHTBL", Const, 0, ""}, - {"RTM_VERSION", Const, 0, ""}, - {"RTNH_ALIGNTO", Const, 0, ""}, - {"RTNH_F_DEAD", Const, 0, ""}, - {"RTNH_F_ONLINK", Const, 0, ""}, - {"RTNH_F_PERVASIVE", Const, 0, ""}, - {"RTNLGRP_IPV4_IFADDR", Const, 1, ""}, - {"RTNLGRP_IPV4_MROUTE", Const, 1, ""}, - {"RTNLGRP_IPV4_ROUTE", Const, 1, ""}, - {"RTNLGRP_IPV4_RULE", Const, 1, ""}, - {"RTNLGRP_IPV6_IFADDR", Const, 1, ""}, - {"RTNLGRP_IPV6_IFINFO", Const, 1, ""}, - {"RTNLGRP_IPV6_MROUTE", Const, 1, ""}, - {"RTNLGRP_IPV6_PREFIX", Const, 1, ""}, - {"RTNLGRP_IPV6_ROUTE", Const, 1, ""}, - {"RTNLGRP_IPV6_RULE", Const, 1, ""}, - {"RTNLGRP_LINK", Const, 1, ""}, - {"RTNLGRP_ND_USEROPT", Const, 1, ""}, - {"RTNLGRP_NEIGH", Const, 1, ""}, - {"RTNLGRP_NONE", Const, 1, ""}, - {"RTNLGRP_NOTIFY", Const, 1, ""}, - {"RTNLGRP_TC", Const, 1, ""}, - {"RTN_ANYCAST", Const, 0, ""}, - {"RTN_BLACKHOLE", Const, 0, ""}, - {"RTN_BROADCAST", Const, 0, ""}, - {"RTN_LOCAL", Const, 0, ""}, - {"RTN_MAX", Const, 0, ""}, - {"RTN_MULTICAST", Const, 0, ""}, - {"RTN_NAT", Const, 0, ""}, - {"RTN_PROHIBIT", Const, 0, ""}, - {"RTN_THROW", Const, 0, ""}, - {"RTN_UNICAST", Const, 0, ""}, - {"RTN_UNREACHABLE", Const, 0, ""}, - {"RTN_UNSPEC", Const, 0, ""}, - {"RTN_XRESOLVE", Const, 0, ""}, - {"RTPROT_BIRD", Const, 0, ""}, - {"RTPROT_BOOT", Const, 0, ""}, - {"RTPROT_DHCP", Const, 0, ""}, - {"RTPROT_DNROUTED", Const, 0, ""}, - {"RTPROT_GATED", Const, 0, ""}, - {"RTPROT_KERNEL", Const, 0, ""}, - {"RTPROT_MRT", Const, 0, ""}, - {"RTPROT_NTK", Const, 0, ""}, - {"RTPROT_RA", Const, 0, ""}, - {"RTPROT_REDIRECT", Const, 0, ""}, - {"RTPROT_STATIC", Const, 0, ""}, - {"RTPROT_UNSPEC", Const, 0, ""}, - {"RTPROT_XORP", Const, 0, ""}, - {"RTPROT_ZEBRA", Const, 0, ""}, - {"RTV_EXPIRE", Const, 0, ""}, - {"RTV_HOPCOUNT", Const, 0, ""}, - {"RTV_MTU", Const, 0, ""}, - {"RTV_RPIPE", Const, 0, ""}, - {"RTV_RTT", Const, 0, ""}, - {"RTV_RTTVAR", Const, 0, ""}, - {"RTV_SPIPE", Const, 0, ""}, - {"RTV_SSTHRESH", Const, 0, ""}, - {"RTV_WEIGHT", Const, 0, ""}, - {"RT_CACHING_CONTEXT", Const, 1, ""}, - {"RT_CLASS_DEFAULT", Const, 0, ""}, - {"RT_CLASS_LOCAL", Const, 0, ""}, - {"RT_CLASS_MAIN", Const, 0, ""}, - {"RT_CLASS_MAX", Const, 0, ""}, - {"RT_CLASS_UNSPEC", Const, 0, ""}, - {"RT_DEFAULT_FIB", Const, 1, ""}, - {"RT_NORTREF", Const, 1, ""}, - {"RT_SCOPE_HOST", Const, 0, ""}, - {"RT_SCOPE_LINK", Const, 0, ""}, - {"RT_SCOPE_NOWHERE", Const, 0, ""}, - {"RT_SCOPE_SITE", Const, 0, ""}, - {"RT_SCOPE_UNIVERSE", Const, 0, ""}, - {"RT_TABLEID_MAX", Const, 1, ""}, - {"RT_TABLE_COMPAT", Const, 0, ""}, - {"RT_TABLE_DEFAULT", Const, 0, ""}, - {"RT_TABLE_LOCAL", Const, 0, ""}, - {"RT_TABLE_MAIN", Const, 0, ""}, - {"RT_TABLE_MAX", Const, 0, ""}, - {"RT_TABLE_UNSPEC", Const, 0, ""}, - {"RUSAGE_CHILDREN", Const, 0, ""}, - {"RUSAGE_SELF", Const, 0, ""}, - {"RUSAGE_THREAD", Const, 0, ""}, - {"Radvisory_t", Type, 0, ""}, - {"Radvisory_t.Count", Field, 0, ""}, - {"Radvisory_t.Offset", Field, 0, ""}, - {"Radvisory_t.Pad_cgo_0", Field, 0, ""}, - {"RawConn", Type, 9, ""}, - {"RawSockaddr", Type, 0, ""}, - {"RawSockaddr.Data", Field, 0, ""}, - {"RawSockaddr.Family", Field, 0, ""}, - {"RawSockaddr.Len", Field, 0, ""}, - {"RawSockaddrAny", Type, 0, ""}, - {"RawSockaddrAny.Addr", Field, 0, ""}, - {"RawSockaddrAny.Pad", Field, 0, ""}, - {"RawSockaddrDatalink", Type, 0, ""}, - {"RawSockaddrDatalink.Alen", Field, 0, ""}, - {"RawSockaddrDatalink.Data", Field, 0, ""}, - {"RawSockaddrDatalink.Family", Field, 0, ""}, - {"RawSockaddrDatalink.Index", Field, 0, ""}, - {"RawSockaddrDatalink.Len", Field, 0, ""}, - {"RawSockaddrDatalink.Nlen", Field, 0, ""}, - {"RawSockaddrDatalink.Pad_cgo_0", Field, 2, ""}, - {"RawSockaddrDatalink.Slen", Field, 0, ""}, - {"RawSockaddrDatalink.Type", Field, 0, ""}, - {"RawSockaddrInet4", Type, 0, ""}, - {"RawSockaddrInet4.Addr", Field, 0, ""}, - {"RawSockaddrInet4.Family", Field, 0, ""}, - {"RawSockaddrInet4.Len", Field, 0, ""}, - {"RawSockaddrInet4.Port", Field, 0, ""}, - {"RawSockaddrInet4.Zero", Field, 0, ""}, - {"RawSockaddrInet6", Type, 0, ""}, - {"RawSockaddrInet6.Addr", Field, 0, ""}, - {"RawSockaddrInet6.Family", Field, 0, ""}, - {"RawSockaddrInet6.Flowinfo", Field, 0, ""}, - {"RawSockaddrInet6.Len", Field, 0, ""}, - {"RawSockaddrInet6.Port", Field, 0, ""}, - {"RawSockaddrInet6.Scope_id", Field, 0, ""}, - {"RawSockaddrLinklayer", Type, 0, ""}, - {"RawSockaddrLinklayer.Addr", Field, 0, ""}, - {"RawSockaddrLinklayer.Family", Field, 0, ""}, - {"RawSockaddrLinklayer.Halen", Field, 0, ""}, - {"RawSockaddrLinklayer.Hatype", Field, 0, ""}, - {"RawSockaddrLinklayer.Ifindex", Field, 0, ""}, - {"RawSockaddrLinklayer.Pkttype", Field, 0, ""}, - {"RawSockaddrLinklayer.Protocol", Field, 0, ""}, - {"RawSockaddrNetlink", Type, 0, ""}, - {"RawSockaddrNetlink.Family", Field, 0, ""}, - {"RawSockaddrNetlink.Groups", Field, 0, ""}, - {"RawSockaddrNetlink.Pad", Field, 0, ""}, - {"RawSockaddrNetlink.Pid", Field, 0, ""}, - {"RawSockaddrUnix", Type, 0, ""}, - {"RawSockaddrUnix.Family", Field, 0, ""}, - {"RawSockaddrUnix.Len", Field, 0, ""}, - {"RawSockaddrUnix.Pad_cgo_0", Field, 2, ""}, - {"RawSockaddrUnix.Path", Field, 0, ""}, - {"RawSyscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"RawSyscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"Read", Func, 0, "func(fd int, p []byte) (n int, err error)"}, - {"ReadConsole", Func, 1, ""}, - {"ReadDirectoryChanges", Func, 0, ""}, - {"ReadDirent", Func, 0, "func(fd int, buf []byte) (n int, err error)"}, - {"ReadFile", Func, 0, ""}, - {"Readlink", Func, 0, "func(path string, buf []byte) (n int, err error)"}, - {"Reboot", Func, 0, "func(cmd int) (err error)"}, - {"Recvfrom", Func, 0, "func(fd int, p []byte, flags int) (n int, from Sockaddr, err error)"}, - {"Recvmsg", Func, 0, "func(fd int, p []byte, oob []byte, flags int) (n int, oobn int, recvflags int, from Sockaddr, err error)"}, - {"RegCloseKey", Func, 0, ""}, - {"RegEnumKeyEx", Func, 0, ""}, - {"RegOpenKeyEx", Func, 0, ""}, - {"RegQueryInfoKey", Func, 0, ""}, - {"RegQueryValueEx", Func, 0, ""}, - {"RemoveDirectory", Func, 0, ""}, - {"Removexattr", Func, 1, "func(path string, attr string) (err error)"}, - {"Rename", Func, 0, "func(oldpath string, newpath string) (err error)"}, - {"Renameat", Func, 0, "func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)"}, - {"Revoke", Func, 0, ""}, - {"Rlimit", Type, 0, ""}, - {"Rlimit.Cur", Field, 0, ""}, - {"Rlimit.Max", Field, 0, ""}, - {"Rmdir", Func, 0, "func(path string) error"}, - {"RouteMessage", Type, 0, ""}, - {"RouteMessage.Data", Field, 0, ""}, - {"RouteMessage.Header", Field, 0, ""}, - {"RouteRIB", Func, 0, ""}, - {"RoutingMessage", Type, 0, ""}, - {"RtAttr", Type, 0, ""}, - {"RtAttr.Len", Field, 0, ""}, - {"RtAttr.Type", Field, 0, ""}, - {"RtGenmsg", Type, 0, ""}, - {"RtGenmsg.Family", Field, 0, ""}, - {"RtMetrics", Type, 0, ""}, - {"RtMetrics.Expire", Field, 0, ""}, - {"RtMetrics.Filler", Field, 0, ""}, - {"RtMetrics.Hopcount", Field, 0, ""}, - {"RtMetrics.Locks", Field, 0, ""}, - {"RtMetrics.Mtu", Field, 0, ""}, - {"RtMetrics.Pad", Field, 3, ""}, - {"RtMetrics.Pksent", Field, 0, ""}, - {"RtMetrics.Recvpipe", Field, 0, ""}, - {"RtMetrics.Refcnt", Field, 2, ""}, - {"RtMetrics.Rtt", Field, 0, ""}, - {"RtMetrics.Rttvar", Field, 0, ""}, - {"RtMetrics.Sendpipe", Field, 0, ""}, - {"RtMetrics.Ssthresh", Field, 0, ""}, - {"RtMetrics.Weight", Field, 0, ""}, - {"RtMsg", Type, 0, ""}, - {"RtMsg.Dst_len", Field, 0, ""}, - {"RtMsg.Family", Field, 0, ""}, - {"RtMsg.Flags", Field, 0, ""}, - {"RtMsg.Protocol", Field, 0, ""}, - {"RtMsg.Scope", Field, 0, ""}, - {"RtMsg.Src_len", Field, 0, ""}, - {"RtMsg.Table", Field, 0, ""}, - {"RtMsg.Tos", Field, 0, ""}, - {"RtMsg.Type", Field, 0, ""}, - {"RtMsghdr", Type, 0, ""}, - {"RtMsghdr.Addrs", Field, 0, ""}, - {"RtMsghdr.Errno", Field, 0, ""}, - {"RtMsghdr.Flags", Field, 0, ""}, - {"RtMsghdr.Fmask", Field, 0, ""}, - {"RtMsghdr.Hdrlen", Field, 2, ""}, - {"RtMsghdr.Index", Field, 0, ""}, - {"RtMsghdr.Inits", Field, 0, ""}, - {"RtMsghdr.Mpls", Field, 2, ""}, - {"RtMsghdr.Msglen", Field, 0, ""}, - {"RtMsghdr.Pad_cgo_0", Field, 0, ""}, - {"RtMsghdr.Pad_cgo_1", Field, 2, ""}, - {"RtMsghdr.Pid", Field, 0, ""}, - {"RtMsghdr.Priority", Field, 2, ""}, - {"RtMsghdr.Rmx", Field, 0, ""}, - {"RtMsghdr.Seq", Field, 0, ""}, - {"RtMsghdr.Tableid", Field, 2, ""}, - {"RtMsghdr.Type", Field, 0, ""}, - {"RtMsghdr.Use", Field, 0, ""}, - {"RtMsghdr.Version", Field, 0, ""}, - {"RtNexthop", Type, 0, ""}, - {"RtNexthop.Flags", Field, 0, ""}, - {"RtNexthop.Hops", Field, 0, ""}, - {"RtNexthop.Ifindex", Field, 0, ""}, - {"RtNexthop.Len", Field, 0, ""}, - {"Rusage", Type, 0, ""}, - {"Rusage.CreationTime", Field, 0, ""}, - {"Rusage.ExitTime", Field, 0, ""}, - {"Rusage.Idrss", Field, 0, ""}, - {"Rusage.Inblock", Field, 0, ""}, - {"Rusage.Isrss", Field, 0, ""}, - {"Rusage.Ixrss", Field, 0, ""}, - {"Rusage.KernelTime", Field, 0, ""}, - {"Rusage.Majflt", Field, 0, ""}, - {"Rusage.Maxrss", Field, 0, ""}, - {"Rusage.Minflt", Field, 0, ""}, - {"Rusage.Msgrcv", Field, 0, ""}, - {"Rusage.Msgsnd", Field, 0, ""}, - {"Rusage.Nivcsw", Field, 0, ""}, - {"Rusage.Nsignals", Field, 0, ""}, - {"Rusage.Nswap", Field, 0, ""}, - {"Rusage.Nvcsw", Field, 0, ""}, - {"Rusage.Oublock", Field, 0, ""}, - {"Rusage.Stime", Field, 0, ""}, - {"Rusage.UserTime", Field, 0, ""}, - {"Rusage.Utime", Field, 0, ""}, - {"SCM_BINTIME", Const, 0, ""}, - {"SCM_CREDENTIALS", Const, 0, ""}, - {"SCM_CREDS", Const, 0, ""}, - {"SCM_RIGHTS", Const, 0, ""}, - {"SCM_TIMESTAMP", Const, 0, ""}, - {"SCM_TIMESTAMPING", Const, 0, ""}, - {"SCM_TIMESTAMPNS", Const, 0, ""}, - {"SCM_TIMESTAMP_MONOTONIC", Const, 0, ""}, - {"SHUT_RD", Const, 0, ""}, - {"SHUT_RDWR", Const, 0, ""}, - {"SHUT_WR", Const, 0, ""}, - {"SID", Type, 0, ""}, - {"SIDAndAttributes", Type, 0, ""}, - {"SIDAndAttributes.Attributes", Field, 0, ""}, - {"SIDAndAttributes.Sid", Field, 0, ""}, - {"SIGABRT", Const, 0, ""}, - {"SIGALRM", Const, 0, ""}, - {"SIGBUS", Const, 0, ""}, - {"SIGCHLD", Const, 0, ""}, - {"SIGCLD", Const, 0, ""}, - {"SIGCONT", Const, 0, ""}, - {"SIGEMT", Const, 0, ""}, - {"SIGFPE", Const, 0, ""}, - {"SIGHUP", Const, 0, ""}, - {"SIGILL", Const, 0, ""}, - {"SIGINFO", Const, 0, ""}, - {"SIGINT", Const, 0, ""}, - {"SIGIO", Const, 0, ""}, - {"SIGIOT", Const, 0, ""}, - {"SIGKILL", Const, 0, ""}, - {"SIGLIBRT", Const, 1, ""}, - {"SIGLWP", Const, 0, ""}, - {"SIGPIPE", Const, 0, ""}, - {"SIGPOLL", Const, 0, ""}, - {"SIGPROF", Const, 0, ""}, - {"SIGPWR", Const, 0, ""}, - {"SIGQUIT", Const, 0, ""}, - {"SIGSEGV", Const, 0, ""}, - {"SIGSTKFLT", Const, 0, ""}, - {"SIGSTOP", Const, 0, ""}, - {"SIGSYS", Const, 0, ""}, - {"SIGTERM", Const, 0, ""}, - {"SIGTHR", Const, 0, ""}, - {"SIGTRAP", Const, 0, ""}, - {"SIGTSTP", Const, 0, ""}, - {"SIGTTIN", Const, 0, ""}, - {"SIGTTOU", Const, 0, ""}, - {"SIGUNUSED", Const, 0, ""}, - {"SIGURG", Const, 0, ""}, - {"SIGUSR1", Const, 0, ""}, - {"SIGUSR2", Const, 0, ""}, - {"SIGVTALRM", Const, 0, ""}, - {"SIGWINCH", Const, 0, ""}, - {"SIGXCPU", Const, 0, ""}, - {"SIGXFSZ", Const, 0, ""}, - {"SIOCADDDLCI", Const, 0, ""}, - {"SIOCADDMULTI", Const, 0, ""}, - {"SIOCADDRT", Const, 0, ""}, - {"SIOCAIFADDR", Const, 0, ""}, - {"SIOCAIFGROUP", Const, 0, ""}, - {"SIOCALIFADDR", Const, 0, ""}, - {"SIOCARPIPLL", Const, 0, ""}, - {"SIOCATMARK", Const, 0, ""}, - {"SIOCAUTOADDR", Const, 0, ""}, - {"SIOCAUTONETMASK", Const, 0, ""}, - {"SIOCBRDGADD", Const, 1, ""}, - {"SIOCBRDGADDS", Const, 1, ""}, - {"SIOCBRDGARL", Const, 1, ""}, - {"SIOCBRDGDADDR", Const, 1, ""}, - {"SIOCBRDGDEL", Const, 1, ""}, - {"SIOCBRDGDELS", Const, 1, ""}, - {"SIOCBRDGFLUSH", Const, 1, ""}, - {"SIOCBRDGFRL", Const, 1, ""}, - {"SIOCBRDGGCACHE", Const, 1, ""}, - {"SIOCBRDGGFD", Const, 1, ""}, - {"SIOCBRDGGHT", Const, 1, ""}, - {"SIOCBRDGGIFFLGS", Const, 1, ""}, - {"SIOCBRDGGMA", Const, 1, ""}, - {"SIOCBRDGGPARAM", Const, 1, ""}, - {"SIOCBRDGGPRI", Const, 1, ""}, - {"SIOCBRDGGRL", Const, 1, ""}, - {"SIOCBRDGGSIFS", Const, 1, ""}, - {"SIOCBRDGGTO", Const, 1, ""}, - {"SIOCBRDGIFS", Const, 1, ""}, - {"SIOCBRDGRTS", Const, 1, ""}, - {"SIOCBRDGSADDR", Const, 1, ""}, - {"SIOCBRDGSCACHE", Const, 1, ""}, - {"SIOCBRDGSFD", Const, 1, ""}, - {"SIOCBRDGSHT", Const, 1, ""}, - {"SIOCBRDGSIFCOST", Const, 1, ""}, - {"SIOCBRDGSIFFLGS", Const, 1, ""}, - {"SIOCBRDGSIFPRIO", Const, 1, ""}, - {"SIOCBRDGSMA", Const, 1, ""}, - {"SIOCBRDGSPRI", Const, 1, ""}, - {"SIOCBRDGSPROTO", Const, 1, ""}, - {"SIOCBRDGSTO", Const, 1, ""}, - {"SIOCBRDGSTXHC", Const, 1, ""}, - {"SIOCDARP", Const, 0, ""}, - {"SIOCDELDLCI", Const, 0, ""}, - {"SIOCDELMULTI", Const, 0, ""}, - {"SIOCDELRT", Const, 0, ""}, - {"SIOCDEVPRIVATE", Const, 0, ""}, - {"SIOCDIFADDR", Const, 0, ""}, - {"SIOCDIFGROUP", Const, 0, ""}, - {"SIOCDIFPHYADDR", Const, 0, ""}, - {"SIOCDLIFADDR", Const, 0, ""}, - {"SIOCDRARP", Const, 0, ""}, - {"SIOCGARP", Const, 0, ""}, - {"SIOCGDRVSPEC", Const, 0, ""}, - {"SIOCGETKALIVE", Const, 1, ""}, - {"SIOCGETLABEL", Const, 1, ""}, - {"SIOCGETPFLOW", Const, 1, ""}, - {"SIOCGETPFSYNC", Const, 1, ""}, - {"SIOCGETSGCNT", Const, 0, ""}, - {"SIOCGETVIFCNT", Const, 0, ""}, - {"SIOCGETVLAN", Const, 0, ""}, - {"SIOCGHIWAT", Const, 0, ""}, - {"SIOCGIFADDR", Const, 0, ""}, - {"SIOCGIFADDRPREF", Const, 1, ""}, - {"SIOCGIFALIAS", Const, 1, ""}, - {"SIOCGIFALTMTU", Const, 0, ""}, - {"SIOCGIFASYNCMAP", Const, 0, ""}, - {"SIOCGIFBOND", Const, 0, ""}, - {"SIOCGIFBR", Const, 0, ""}, - {"SIOCGIFBRDADDR", Const, 0, ""}, - {"SIOCGIFCAP", Const, 0, ""}, - {"SIOCGIFCONF", Const, 0, ""}, - {"SIOCGIFCOUNT", Const, 0, ""}, - {"SIOCGIFDATA", Const, 1, ""}, - {"SIOCGIFDESCR", Const, 0, ""}, - {"SIOCGIFDEVMTU", Const, 0, ""}, - {"SIOCGIFDLT", Const, 1, ""}, - {"SIOCGIFDSTADDR", Const, 0, ""}, - {"SIOCGIFENCAP", Const, 0, ""}, - {"SIOCGIFFIB", Const, 1, ""}, - {"SIOCGIFFLAGS", Const, 0, ""}, - {"SIOCGIFGATTR", Const, 1, ""}, - {"SIOCGIFGENERIC", Const, 0, ""}, - {"SIOCGIFGMEMB", Const, 0, ""}, - {"SIOCGIFGROUP", Const, 0, ""}, - {"SIOCGIFHARDMTU", Const, 3, ""}, - {"SIOCGIFHWADDR", Const, 0, ""}, - {"SIOCGIFINDEX", Const, 0, ""}, - {"SIOCGIFKPI", Const, 0, ""}, - {"SIOCGIFMAC", Const, 0, ""}, - {"SIOCGIFMAP", Const, 0, ""}, - {"SIOCGIFMEDIA", Const, 0, ""}, - {"SIOCGIFMEM", Const, 0, ""}, - {"SIOCGIFMETRIC", Const, 0, ""}, - {"SIOCGIFMTU", Const, 0, ""}, - {"SIOCGIFNAME", Const, 0, ""}, - {"SIOCGIFNETMASK", Const, 0, ""}, - {"SIOCGIFPDSTADDR", Const, 0, ""}, - {"SIOCGIFPFLAGS", Const, 0, ""}, - {"SIOCGIFPHYS", Const, 0, ""}, - {"SIOCGIFPRIORITY", Const, 1, ""}, - {"SIOCGIFPSRCADDR", Const, 0, ""}, - {"SIOCGIFRDOMAIN", Const, 1, ""}, - {"SIOCGIFRTLABEL", Const, 1, ""}, - {"SIOCGIFSLAVE", Const, 0, ""}, - {"SIOCGIFSTATUS", Const, 0, ""}, - {"SIOCGIFTIMESLOT", Const, 1, ""}, - {"SIOCGIFTXQLEN", Const, 0, ""}, - {"SIOCGIFVLAN", Const, 0, ""}, - {"SIOCGIFWAKEFLAGS", Const, 0, ""}, - {"SIOCGIFXFLAGS", Const, 1, ""}, - {"SIOCGLIFADDR", Const, 0, ""}, - {"SIOCGLIFPHYADDR", Const, 0, ""}, - {"SIOCGLIFPHYRTABLE", Const, 1, ""}, - {"SIOCGLIFPHYTTL", Const, 3, ""}, - {"SIOCGLINKSTR", Const, 1, ""}, - {"SIOCGLOWAT", Const, 0, ""}, - {"SIOCGPGRP", Const, 0, ""}, - {"SIOCGPRIVATE_0", Const, 0, ""}, - {"SIOCGPRIVATE_1", Const, 0, ""}, - {"SIOCGRARP", Const, 0, ""}, - {"SIOCGSPPPPARAMS", Const, 3, ""}, - {"SIOCGSTAMP", Const, 0, ""}, - {"SIOCGSTAMPNS", Const, 0, ""}, - {"SIOCGVH", Const, 1, ""}, - {"SIOCGVNETID", Const, 3, ""}, - {"SIOCIFCREATE", Const, 0, ""}, - {"SIOCIFCREATE2", Const, 0, ""}, - {"SIOCIFDESTROY", Const, 0, ""}, - {"SIOCIFGCLONERS", Const, 0, ""}, - {"SIOCINITIFADDR", Const, 1, ""}, - {"SIOCPROTOPRIVATE", Const, 0, ""}, - {"SIOCRSLVMULTI", Const, 0, ""}, - {"SIOCRTMSG", Const, 0, ""}, - {"SIOCSARP", Const, 0, ""}, - {"SIOCSDRVSPEC", Const, 0, ""}, - {"SIOCSETKALIVE", Const, 1, ""}, - {"SIOCSETLABEL", Const, 1, ""}, - {"SIOCSETPFLOW", Const, 1, ""}, - {"SIOCSETPFSYNC", Const, 1, ""}, - {"SIOCSETVLAN", Const, 0, ""}, - {"SIOCSHIWAT", Const, 0, ""}, - {"SIOCSIFADDR", Const, 0, ""}, - {"SIOCSIFADDRPREF", Const, 1, ""}, - {"SIOCSIFALTMTU", Const, 0, ""}, - {"SIOCSIFASYNCMAP", Const, 0, ""}, - {"SIOCSIFBOND", Const, 0, ""}, - {"SIOCSIFBR", Const, 0, ""}, - {"SIOCSIFBRDADDR", Const, 0, ""}, - {"SIOCSIFCAP", Const, 0, ""}, - {"SIOCSIFDESCR", Const, 0, ""}, - {"SIOCSIFDSTADDR", Const, 0, ""}, - {"SIOCSIFENCAP", Const, 0, ""}, - {"SIOCSIFFIB", Const, 1, ""}, - {"SIOCSIFFLAGS", Const, 0, ""}, - {"SIOCSIFGATTR", Const, 1, ""}, - {"SIOCSIFGENERIC", Const, 0, ""}, - {"SIOCSIFHWADDR", Const, 0, ""}, - {"SIOCSIFHWBROADCAST", Const, 0, ""}, - {"SIOCSIFKPI", Const, 0, ""}, - {"SIOCSIFLINK", Const, 0, ""}, - {"SIOCSIFLLADDR", Const, 0, ""}, - {"SIOCSIFMAC", Const, 0, ""}, - {"SIOCSIFMAP", Const, 0, ""}, - {"SIOCSIFMEDIA", Const, 0, ""}, - {"SIOCSIFMEM", Const, 0, ""}, - {"SIOCSIFMETRIC", Const, 0, ""}, - {"SIOCSIFMTU", Const, 0, ""}, - {"SIOCSIFNAME", Const, 0, ""}, - {"SIOCSIFNETMASK", Const, 0, ""}, - {"SIOCSIFPFLAGS", Const, 0, ""}, - {"SIOCSIFPHYADDR", Const, 0, ""}, - {"SIOCSIFPHYS", Const, 0, ""}, - {"SIOCSIFPRIORITY", Const, 1, ""}, - {"SIOCSIFRDOMAIN", Const, 1, ""}, - {"SIOCSIFRTLABEL", Const, 1, ""}, - {"SIOCSIFRVNET", Const, 0, ""}, - {"SIOCSIFSLAVE", Const, 0, ""}, - {"SIOCSIFTIMESLOT", Const, 1, ""}, - {"SIOCSIFTXQLEN", Const, 0, ""}, - {"SIOCSIFVLAN", Const, 0, ""}, - {"SIOCSIFVNET", Const, 0, ""}, - {"SIOCSIFXFLAGS", Const, 1, ""}, - {"SIOCSLIFPHYADDR", Const, 0, ""}, - {"SIOCSLIFPHYRTABLE", Const, 1, ""}, - {"SIOCSLIFPHYTTL", Const, 3, ""}, - {"SIOCSLINKSTR", Const, 1, ""}, - {"SIOCSLOWAT", Const, 0, ""}, - {"SIOCSPGRP", Const, 0, ""}, - {"SIOCSRARP", Const, 0, ""}, - {"SIOCSSPPPPARAMS", Const, 3, ""}, - {"SIOCSVH", Const, 1, ""}, - {"SIOCSVNETID", Const, 3, ""}, - {"SIOCZIFDATA", Const, 1, ""}, - {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1, ""}, - {"SIO_GET_INTERFACE_LIST", Const, 0, ""}, - {"SIO_KEEPALIVE_VALS", Const, 3, ""}, - {"SIO_UDP_CONNRESET", Const, 4, ""}, - {"SOCK_CLOEXEC", Const, 0, ""}, - {"SOCK_DCCP", Const, 0, ""}, - {"SOCK_DGRAM", Const, 0, ""}, - {"SOCK_FLAGS_MASK", Const, 1, ""}, - {"SOCK_MAXADDRLEN", Const, 0, ""}, - {"SOCK_NONBLOCK", Const, 0, ""}, - {"SOCK_NOSIGPIPE", Const, 1, ""}, - {"SOCK_PACKET", Const, 0, ""}, - {"SOCK_RAW", Const, 0, ""}, - {"SOCK_RDM", Const, 0, ""}, - {"SOCK_SEQPACKET", Const, 0, ""}, - {"SOCK_STREAM", Const, 0, ""}, - {"SOL_AAL", Const, 0, ""}, - {"SOL_ATM", Const, 0, ""}, - {"SOL_DECNET", Const, 0, ""}, - {"SOL_ICMPV6", Const, 0, ""}, - {"SOL_IP", Const, 0, ""}, - {"SOL_IPV6", Const, 0, ""}, - {"SOL_IRDA", Const, 0, ""}, - {"SOL_PACKET", Const, 0, ""}, - {"SOL_RAW", Const, 0, ""}, - {"SOL_SOCKET", Const, 0, ""}, - {"SOL_TCP", Const, 0, ""}, - {"SOL_X25", Const, 0, ""}, - {"SOMAXCONN", Const, 0, ""}, - {"SO_ACCEPTCONN", Const, 0, ""}, - {"SO_ACCEPTFILTER", Const, 0, ""}, - {"SO_ATTACH_FILTER", Const, 0, ""}, - {"SO_BINDANY", Const, 1, ""}, - {"SO_BINDTODEVICE", Const, 0, ""}, - {"SO_BINTIME", Const, 0, ""}, - {"SO_BROADCAST", Const, 0, ""}, - {"SO_BSDCOMPAT", Const, 0, ""}, - {"SO_DEBUG", Const, 0, ""}, - {"SO_DETACH_FILTER", Const, 0, ""}, - {"SO_DOMAIN", Const, 0, ""}, - {"SO_DONTROUTE", Const, 0, ""}, - {"SO_DONTTRUNC", Const, 0, ""}, - {"SO_ERROR", Const, 0, ""}, - {"SO_KEEPALIVE", Const, 0, ""}, - {"SO_LABEL", Const, 0, ""}, - {"SO_LINGER", Const, 0, ""}, - {"SO_LINGER_SEC", Const, 0, ""}, - {"SO_LISTENINCQLEN", Const, 0, ""}, - {"SO_LISTENQLEN", Const, 0, ""}, - {"SO_LISTENQLIMIT", Const, 0, ""}, - {"SO_MARK", Const, 0, ""}, - {"SO_NETPROC", Const, 1, ""}, - {"SO_NKE", Const, 0, ""}, - {"SO_NOADDRERR", Const, 0, ""}, - {"SO_NOHEADER", Const, 1, ""}, - {"SO_NOSIGPIPE", Const, 0, ""}, - {"SO_NOTIFYCONFLICT", Const, 0, ""}, - {"SO_NO_CHECK", Const, 0, ""}, - {"SO_NO_DDP", Const, 0, ""}, - {"SO_NO_OFFLOAD", Const, 0, ""}, - {"SO_NP_EXTENSIONS", Const, 0, ""}, - {"SO_NREAD", Const, 0, ""}, - {"SO_NUMRCVPKT", Const, 16, ""}, - {"SO_NWRITE", Const, 0, ""}, - {"SO_OOBINLINE", Const, 0, ""}, - {"SO_OVERFLOWED", Const, 1, ""}, - {"SO_PASSCRED", Const, 0, ""}, - {"SO_PASSSEC", Const, 0, ""}, - {"SO_PEERCRED", Const, 0, ""}, - {"SO_PEERLABEL", Const, 0, ""}, - {"SO_PEERNAME", Const, 0, ""}, - {"SO_PEERSEC", Const, 0, ""}, - {"SO_PRIORITY", Const, 0, ""}, - {"SO_PROTOCOL", Const, 0, ""}, - {"SO_PROTOTYPE", Const, 1, ""}, - {"SO_RANDOMPORT", Const, 0, ""}, - {"SO_RCVBUF", Const, 0, ""}, - {"SO_RCVBUFFORCE", Const, 0, ""}, - {"SO_RCVLOWAT", Const, 0, ""}, - {"SO_RCVTIMEO", Const, 0, ""}, - {"SO_RESTRICTIONS", Const, 0, ""}, - {"SO_RESTRICT_DENYIN", Const, 0, ""}, - {"SO_RESTRICT_DENYOUT", Const, 0, ""}, - {"SO_RESTRICT_DENYSET", Const, 0, ""}, - {"SO_REUSEADDR", Const, 0, ""}, - {"SO_REUSEPORT", Const, 0, ""}, - {"SO_REUSESHAREUID", Const, 0, ""}, - {"SO_RTABLE", Const, 1, ""}, - {"SO_RXQ_OVFL", Const, 0, ""}, - {"SO_SECURITY_AUTHENTICATION", Const, 0, ""}, - {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0, ""}, - {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0, ""}, - {"SO_SETFIB", Const, 0, ""}, - {"SO_SNDBUF", Const, 0, ""}, - {"SO_SNDBUFFORCE", Const, 0, ""}, - {"SO_SNDLOWAT", Const, 0, ""}, - {"SO_SNDTIMEO", Const, 0, ""}, - {"SO_SPLICE", Const, 1, ""}, - {"SO_TIMESTAMP", Const, 0, ""}, - {"SO_TIMESTAMPING", Const, 0, ""}, - {"SO_TIMESTAMPNS", Const, 0, ""}, - {"SO_TIMESTAMP_MONOTONIC", Const, 0, ""}, - {"SO_TYPE", Const, 0, ""}, - {"SO_UPCALLCLOSEWAIT", Const, 0, ""}, - {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0, ""}, - {"SO_UPDATE_CONNECT_CONTEXT", Const, 1, ""}, - {"SO_USELOOPBACK", Const, 0, ""}, - {"SO_USER_COOKIE", Const, 1, ""}, - {"SO_VENDOR", Const, 3, ""}, - {"SO_WANTMORE", Const, 0, ""}, - {"SO_WANTOOBFLAG", Const, 0, ""}, - {"SSLExtraCertChainPolicyPara", Type, 0, ""}, - {"SSLExtraCertChainPolicyPara.AuthType", Field, 0, ""}, - {"SSLExtraCertChainPolicyPara.Checks", Field, 0, ""}, - {"SSLExtraCertChainPolicyPara.ServerName", Field, 0, ""}, - {"SSLExtraCertChainPolicyPara.Size", Field, 0, ""}, - {"STANDARD_RIGHTS_ALL", Const, 0, ""}, - {"STANDARD_RIGHTS_EXECUTE", Const, 0, ""}, - {"STANDARD_RIGHTS_READ", Const, 0, ""}, - {"STANDARD_RIGHTS_REQUIRED", Const, 0, ""}, - {"STANDARD_RIGHTS_WRITE", Const, 0, ""}, - {"STARTF_USESHOWWINDOW", Const, 0, ""}, - {"STARTF_USESTDHANDLES", Const, 0, ""}, - {"STD_ERROR_HANDLE", Const, 0, ""}, - {"STD_INPUT_HANDLE", Const, 0, ""}, - {"STD_OUTPUT_HANDLE", Const, 0, ""}, - {"SUBLANG_ENGLISH_US", Const, 0, ""}, - {"SW_FORCEMINIMIZE", Const, 0, ""}, - {"SW_HIDE", Const, 0, ""}, - {"SW_MAXIMIZE", Const, 0, ""}, - {"SW_MINIMIZE", Const, 0, ""}, - {"SW_NORMAL", Const, 0, ""}, - {"SW_RESTORE", Const, 0, ""}, - {"SW_SHOW", Const, 0, ""}, - {"SW_SHOWDEFAULT", Const, 0, ""}, - {"SW_SHOWMAXIMIZED", Const, 0, ""}, - {"SW_SHOWMINIMIZED", Const, 0, ""}, - {"SW_SHOWMINNOACTIVE", Const, 0, ""}, - {"SW_SHOWNA", Const, 0, ""}, - {"SW_SHOWNOACTIVATE", Const, 0, ""}, - {"SW_SHOWNORMAL", Const, 0, ""}, - {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4, ""}, - {"SYNCHRONIZE", Const, 0, ""}, - {"SYSCTL_VERSION", Const, 1, ""}, - {"SYSCTL_VERS_0", Const, 1, ""}, - {"SYSCTL_VERS_1", Const, 1, ""}, - {"SYSCTL_VERS_MASK", Const, 1, ""}, - {"SYS_ABORT2", Const, 0, ""}, - {"SYS_ACCEPT", Const, 0, ""}, - {"SYS_ACCEPT4", Const, 0, ""}, - {"SYS_ACCEPT_NOCANCEL", Const, 0, ""}, - {"SYS_ACCESS", Const, 0, ""}, - {"SYS_ACCESS_EXTENDED", Const, 0, ""}, - {"SYS_ACCT", Const, 0, ""}, - {"SYS_ADD_KEY", Const, 0, ""}, - {"SYS_ADD_PROFIL", Const, 0, ""}, - {"SYS_ADJFREQ", Const, 1, ""}, - {"SYS_ADJTIME", Const, 0, ""}, - {"SYS_ADJTIMEX", Const, 0, ""}, - {"SYS_AFS_SYSCALL", Const, 0, ""}, - {"SYS_AIO_CANCEL", Const, 0, ""}, - {"SYS_AIO_ERROR", Const, 0, ""}, - {"SYS_AIO_FSYNC", Const, 0, ""}, - {"SYS_AIO_MLOCK", Const, 14, ""}, - {"SYS_AIO_READ", Const, 0, ""}, - {"SYS_AIO_RETURN", Const, 0, ""}, - {"SYS_AIO_SUSPEND", Const, 0, ""}, - {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0, ""}, - {"SYS_AIO_WAITCOMPLETE", Const, 14, ""}, - {"SYS_AIO_WRITE", Const, 0, ""}, - {"SYS_ALARM", Const, 0, ""}, - {"SYS_ARCH_PRCTL", Const, 0, ""}, - {"SYS_ARM_FADVISE64_64", Const, 0, ""}, - {"SYS_ARM_SYNC_FILE_RANGE", Const, 0, ""}, - {"SYS_ATGETMSG", Const, 0, ""}, - {"SYS_ATPGETREQ", Const, 0, ""}, - {"SYS_ATPGETRSP", Const, 0, ""}, - {"SYS_ATPSNDREQ", Const, 0, ""}, - {"SYS_ATPSNDRSP", Const, 0, ""}, - {"SYS_ATPUTMSG", Const, 0, ""}, - {"SYS_ATSOCKET", Const, 0, ""}, - {"SYS_AUDIT", Const, 0, ""}, - {"SYS_AUDITCTL", Const, 0, ""}, - {"SYS_AUDITON", Const, 0, ""}, - {"SYS_AUDIT_SESSION_JOIN", Const, 0, ""}, - {"SYS_AUDIT_SESSION_PORT", Const, 0, ""}, - {"SYS_AUDIT_SESSION_SELF", Const, 0, ""}, - {"SYS_BDFLUSH", Const, 0, ""}, - {"SYS_BIND", Const, 0, ""}, - {"SYS_BINDAT", Const, 3, ""}, - {"SYS_BREAK", Const, 0, ""}, - {"SYS_BRK", Const, 0, ""}, - {"SYS_BSDTHREAD_CREATE", Const, 0, ""}, - {"SYS_BSDTHREAD_REGISTER", Const, 0, ""}, - {"SYS_BSDTHREAD_TERMINATE", Const, 0, ""}, - {"SYS_CAPGET", Const, 0, ""}, - {"SYS_CAPSET", Const, 0, ""}, - {"SYS_CAP_ENTER", Const, 0, ""}, - {"SYS_CAP_FCNTLS_GET", Const, 1, ""}, - {"SYS_CAP_FCNTLS_LIMIT", Const, 1, ""}, - {"SYS_CAP_GETMODE", Const, 0, ""}, - {"SYS_CAP_GETRIGHTS", Const, 0, ""}, - {"SYS_CAP_IOCTLS_GET", Const, 1, ""}, - {"SYS_CAP_IOCTLS_LIMIT", Const, 1, ""}, - {"SYS_CAP_NEW", Const, 0, ""}, - {"SYS_CAP_RIGHTS_GET", Const, 1, ""}, - {"SYS_CAP_RIGHTS_LIMIT", Const, 1, ""}, - {"SYS_CHDIR", Const, 0, ""}, - {"SYS_CHFLAGS", Const, 0, ""}, - {"SYS_CHFLAGSAT", Const, 3, ""}, - {"SYS_CHMOD", Const, 0, ""}, - {"SYS_CHMOD_EXTENDED", Const, 0, ""}, - {"SYS_CHOWN", Const, 0, ""}, - {"SYS_CHOWN32", Const, 0, ""}, - {"SYS_CHROOT", Const, 0, ""}, - {"SYS_CHUD", Const, 0, ""}, - {"SYS_CLOCK_ADJTIME", Const, 0, ""}, - {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1, ""}, - {"SYS_CLOCK_GETRES", Const, 0, ""}, - {"SYS_CLOCK_GETTIME", Const, 0, ""}, - {"SYS_CLOCK_NANOSLEEP", Const, 0, ""}, - {"SYS_CLOCK_SETTIME", Const, 0, ""}, - {"SYS_CLONE", Const, 0, ""}, - {"SYS_CLOSE", Const, 0, ""}, - {"SYS_CLOSEFROM", Const, 0, ""}, - {"SYS_CLOSE_NOCANCEL", Const, 0, ""}, - {"SYS_CONNECT", Const, 0, ""}, - {"SYS_CONNECTAT", Const, 3, ""}, - {"SYS_CONNECT_NOCANCEL", Const, 0, ""}, - {"SYS_COPYFILE", Const, 0, ""}, - {"SYS_CPUSET", Const, 0, ""}, - {"SYS_CPUSET_GETAFFINITY", Const, 0, ""}, - {"SYS_CPUSET_GETID", Const, 0, ""}, - {"SYS_CPUSET_SETAFFINITY", Const, 0, ""}, - {"SYS_CPUSET_SETID", Const, 0, ""}, - {"SYS_CREAT", Const, 0, ""}, - {"SYS_CREATE_MODULE", Const, 0, ""}, - {"SYS_CSOPS", Const, 0, ""}, - {"SYS_CSOPS_AUDITTOKEN", Const, 16, ""}, - {"SYS_DELETE", Const, 0, ""}, - {"SYS_DELETE_MODULE", Const, 0, ""}, - {"SYS_DUP", Const, 0, ""}, - {"SYS_DUP2", Const, 0, ""}, - {"SYS_DUP3", Const, 0, ""}, - {"SYS_EACCESS", Const, 0, ""}, - {"SYS_EPOLL_CREATE", Const, 0, ""}, - {"SYS_EPOLL_CREATE1", Const, 0, ""}, - {"SYS_EPOLL_CTL", Const, 0, ""}, - {"SYS_EPOLL_CTL_OLD", Const, 0, ""}, - {"SYS_EPOLL_PWAIT", Const, 0, ""}, - {"SYS_EPOLL_WAIT", Const, 0, ""}, - {"SYS_EPOLL_WAIT_OLD", Const, 0, ""}, - {"SYS_EVENTFD", Const, 0, ""}, - {"SYS_EVENTFD2", Const, 0, ""}, - {"SYS_EXCHANGEDATA", Const, 0, ""}, - {"SYS_EXECVE", Const, 0, ""}, - {"SYS_EXIT", Const, 0, ""}, - {"SYS_EXIT_GROUP", Const, 0, ""}, - {"SYS_EXTATTRCTL", Const, 0, ""}, - {"SYS_EXTATTR_DELETE_FD", Const, 0, ""}, - {"SYS_EXTATTR_DELETE_FILE", Const, 0, ""}, - {"SYS_EXTATTR_DELETE_LINK", Const, 0, ""}, - {"SYS_EXTATTR_GET_FD", Const, 0, ""}, - {"SYS_EXTATTR_GET_FILE", Const, 0, ""}, - {"SYS_EXTATTR_GET_LINK", Const, 0, ""}, - {"SYS_EXTATTR_LIST_FD", Const, 0, ""}, - {"SYS_EXTATTR_LIST_FILE", Const, 0, ""}, - {"SYS_EXTATTR_LIST_LINK", Const, 0, ""}, - {"SYS_EXTATTR_SET_FD", Const, 0, ""}, - {"SYS_EXTATTR_SET_FILE", Const, 0, ""}, - {"SYS_EXTATTR_SET_LINK", Const, 0, ""}, - {"SYS_FACCESSAT", Const, 0, ""}, - {"SYS_FADVISE64", Const, 0, ""}, - {"SYS_FADVISE64_64", Const, 0, ""}, - {"SYS_FALLOCATE", Const, 0, ""}, - {"SYS_FANOTIFY_INIT", Const, 0, ""}, - {"SYS_FANOTIFY_MARK", Const, 0, ""}, - {"SYS_FCHDIR", Const, 0, ""}, - {"SYS_FCHFLAGS", Const, 0, ""}, - {"SYS_FCHMOD", Const, 0, ""}, - {"SYS_FCHMODAT", Const, 0, ""}, - {"SYS_FCHMOD_EXTENDED", Const, 0, ""}, - {"SYS_FCHOWN", Const, 0, ""}, - {"SYS_FCHOWN32", Const, 0, ""}, - {"SYS_FCHOWNAT", Const, 0, ""}, - {"SYS_FCHROOT", Const, 1, ""}, - {"SYS_FCNTL", Const, 0, ""}, - {"SYS_FCNTL64", Const, 0, ""}, - {"SYS_FCNTL_NOCANCEL", Const, 0, ""}, - {"SYS_FDATASYNC", Const, 0, ""}, - {"SYS_FEXECVE", Const, 0, ""}, - {"SYS_FFCLOCK_GETCOUNTER", Const, 0, ""}, - {"SYS_FFCLOCK_GETESTIMATE", Const, 0, ""}, - {"SYS_FFCLOCK_SETESTIMATE", Const, 0, ""}, - {"SYS_FFSCTL", Const, 0, ""}, - {"SYS_FGETATTRLIST", Const, 0, ""}, - {"SYS_FGETXATTR", Const, 0, ""}, - {"SYS_FHOPEN", Const, 0, ""}, - {"SYS_FHSTAT", Const, 0, ""}, - {"SYS_FHSTATFS", Const, 0, ""}, - {"SYS_FILEPORT_MAKEFD", Const, 0, ""}, - {"SYS_FILEPORT_MAKEPORT", Const, 0, ""}, - {"SYS_FKTRACE", Const, 1, ""}, - {"SYS_FLISTXATTR", Const, 0, ""}, - {"SYS_FLOCK", Const, 0, ""}, - {"SYS_FORK", Const, 0, ""}, - {"SYS_FPATHCONF", Const, 0, ""}, - {"SYS_FREEBSD6_FTRUNCATE", Const, 0, ""}, - {"SYS_FREEBSD6_LSEEK", Const, 0, ""}, - {"SYS_FREEBSD6_MMAP", Const, 0, ""}, - {"SYS_FREEBSD6_PREAD", Const, 0, ""}, - {"SYS_FREEBSD6_PWRITE", Const, 0, ""}, - {"SYS_FREEBSD6_TRUNCATE", Const, 0, ""}, - {"SYS_FREMOVEXATTR", Const, 0, ""}, - {"SYS_FSCTL", Const, 0, ""}, - {"SYS_FSETATTRLIST", Const, 0, ""}, - {"SYS_FSETXATTR", Const, 0, ""}, - {"SYS_FSGETPATH", Const, 0, ""}, - {"SYS_FSTAT", Const, 0, ""}, - {"SYS_FSTAT64", Const, 0, ""}, - {"SYS_FSTAT64_EXTENDED", Const, 0, ""}, - {"SYS_FSTATAT", Const, 0, ""}, - {"SYS_FSTATAT64", Const, 0, ""}, - {"SYS_FSTATFS", Const, 0, ""}, - {"SYS_FSTATFS64", Const, 0, ""}, - {"SYS_FSTATV", Const, 0, ""}, - {"SYS_FSTATVFS1", Const, 1, ""}, - {"SYS_FSTAT_EXTENDED", Const, 0, ""}, - {"SYS_FSYNC", Const, 0, ""}, - {"SYS_FSYNC_NOCANCEL", Const, 0, ""}, - {"SYS_FSYNC_RANGE", Const, 1, ""}, - {"SYS_FTIME", Const, 0, ""}, - {"SYS_FTRUNCATE", Const, 0, ""}, - {"SYS_FTRUNCATE64", Const, 0, ""}, - {"SYS_FUTEX", Const, 0, ""}, - {"SYS_FUTIMENS", Const, 1, ""}, - {"SYS_FUTIMES", Const, 0, ""}, - {"SYS_FUTIMESAT", Const, 0, ""}, - {"SYS_GETATTRLIST", Const, 0, ""}, - {"SYS_GETAUDIT", Const, 0, ""}, - {"SYS_GETAUDIT_ADDR", Const, 0, ""}, - {"SYS_GETAUID", Const, 0, ""}, - {"SYS_GETCONTEXT", Const, 0, ""}, - {"SYS_GETCPU", Const, 0, ""}, - {"SYS_GETCWD", Const, 0, ""}, - {"SYS_GETDENTS", Const, 0, ""}, - {"SYS_GETDENTS64", Const, 0, ""}, - {"SYS_GETDIRENTRIES", Const, 0, ""}, - {"SYS_GETDIRENTRIES64", Const, 0, ""}, - {"SYS_GETDIRENTRIESATTR", Const, 0, ""}, - {"SYS_GETDTABLECOUNT", Const, 1, ""}, - {"SYS_GETDTABLESIZE", Const, 0, ""}, - {"SYS_GETEGID", Const, 0, ""}, - {"SYS_GETEGID32", Const, 0, ""}, - {"SYS_GETEUID", Const, 0, ""}, - {"SYS_GETEUID32", Const, 0, ""}, - {"SYS_GETFH", Const, 0, ""}, - {"SYS_GETFSSTAT", Const, 0, ""}, - {"SYS_GETFSSTAT64", Const, 0, ""}, - {"SYS_GETGID", Const, 0, ""}, - {"SYS_GETGID32", Const, 0, ""}, - {"SYS_GETGROUPS", Const, 0, ""}, - {"SYS_GETGROUPS32", Const, 0, ""}, - {"SYS_GETHOSTUUID", Const, 0, ""}, - {"SYS_GETITIMER", Const, 0, ""}, - {"SYS_GETLCID", Const, 0, ""}, - {"SYS_GETLOGIN", Const, 0, ""}, - {"SYS_GETLOGINCLASS", Const, 0, ""}, - {"SYS_GETPEERNAME", Const, 0, ""}, - {"SYS_GETPGID", Const, 0, ""}, - {"SYS_GETPGRP", Const, 0, ""}, - {"SYS_GETPID", Const, 0, ""}, - {"SYS_GETPMSG", Const, 0, ""}, - {"SYS_GETPPID", Const, 0, ""}, - {"SYS_GETPRIORITY", Const, 0, ""}, - {"SYS_GETRESGID", Const, 0, ""}, - {"SYS_GETRESGID32", Const, 0, ""}, - {"SYS_GETRESUID", Const, 0, ""}, - {"SYS_GETRESUID32", Const, 0, ""}, - {"SYS_GETRLIMIT", Const, 0, ""}, - {"SYS_GETRTABLE", Const, 1, ""}, - {"SYS_GETRUSAGE", Const, 0, ""}, - {"SYS_GETSGROUPS", Const, 0, ""}, - {"SYS_GETSID", Const, 0, ""}, - {"SYS_GETSOCKNAME", Const, 0, ""}, - {"SYS_GETSOCKOPT", Const, 0, ""}, - {"SYS_GETTHRID", Const, 1, ""}, - {"SYS_GETTID", Const, 0, ""}, - {"SYS_GETTIMEOFDAY", Const, 0, ""}, - {"SYS_GETUID", Const, 0, ""}, - {"SYS_GETUID32", Const, 0, ""}, - {"SYS_GETVFSSTAT", Const, 1, ""}, - {"SYS_GETWGROUPS", Const, 0, ""}, - {"SYS_GETXATTR", Const, 0, ""}, - {"SYS_GET_KERNEL_SYMS", Const, 0, ""}, - {"SYS_GET_MEMPOLICY", Const, 0, ""}, - {"SYS_GET_ROBUST_LIST", Const, 0, ""}, - {"SYS_GET_THREAD_AREA", Const, 0, ""}, - {"SYS_GSSD_SYSCALL", Const, 14, ""}, - {"SYS_GTTY", Const, 0, ""}, - {"SYS_IDENTITYSVC", Const, 0, ""}, - {"SYS_IDLE", Const, 0, ""}, - {"SYS_INITGROUPS", Const, 0, ""}, - {"SYS_INIT_MODULE", Const, 0, ""}, - {"SYS_INOTIFY_ADD_WATCH", Const, 0, ""}, - {"SYS_INOTIFY_INIT", Const, 0, ""}, - {"SYS_INOTIFY_INIT1", Const, 0, ""}, - {"SYS_INOTIFY_RM_WATCH", Const, 0, ""}, - {"SYS_IOCTL", Const, 0, ""}, - {"SYS_IOPERM", Const, 0, ""}, - {"SYS_IOPL", Const, 0, ""}, - {"SYS_IOPOLICYSYS", Const, 0, ""}, - {"SYS_IOPRIO_GET", Const, 0, ""}, - {"SYS_IOPRIO_SET", Const, 0, ""}, - {"SYS_IO_CANCEL", Const, 0, ""}, - {"SYS_IO_DESTROY", Const, 0, ""}, - {"SYS_IO_GETEVENTS", Const, 0, ""}, - {"SYS_IO_SETUP", Const, 0, ""}, - {"SYS_IO_SUBMIT", Const, 0, ""}, - {"SYS_IPC", Const, 0, ""}, - {"SYS_ISSETUGID", Const, 0, ""}, - {"SYS_JAIL", Const, 0, ""}, - {"SYS_JAIL_ATTACH", Const, 0, ""}, - {"SYS_JAIL_GET", Const, 0, ""}, - {"SYS_JAIL_REMOVE", Const, 0, ""}, - {"SYS_JAIL_SET", Const, 0, ""}, - {"SYS_KAS_INFO", Const, 16, ""}, - {"SYS_KDEBUG_TRACE", Const, 0, ""}, - {"SYS_KENV", Const, 0, ""}, - {"SYS_KEVENT", Const, 0, ""}, - {"SYS_KEVENT64", Const, 0, ""}, - {"SYS_KEXEC_LOAD", Const, 0, ""}, - {"SYS_KEYCTL", Const, 0, ""}, - {"SYS_KILL", Const, 0, ""}, - {"SYS_KLDFIND", Const, 0, ""}, - {"SYS_KLDFIRSTMOD", Const, 0, ""}, - {"SYS_KLDLOAD", Const, 0, ""}, - {"SYS_KLDNEXT", Const, 0, ""}, - {"SYS_KLDSTAT", Const, 0, ""}, - {"SYS_KLDSYM", Const, 0, ""}, - {"SYS_KLDUNLOAD", Const, 0, ""}, - {"SYS_KLDUNLOADF", Const, 0, ""}, - {"SYS_KMQ_NOTIFY", Const, 14, ""}, - {"SYS_KMQ_OPEN", Const, 14, ""}, - {"SYS_KMQ_SETATTR", Const, 14, ""}, - {"SYS_KMQ_TIMEDRECEIVE", Const, 14, ""}, - {"SYS_KMQ_TIMEDSEND", Const, 14, ""}, - {"SYS_KMQ_UNLINK", Const, 14, ""}, - {"SYS_KQUEUE", Const, 0, ""}, - {"SYS_KQUEUE1", Const, 1, ""}, - {"SYS_KSEM_CLOSE", Const, 14, ""}, - {"SYS_KSEM_DESTROY", Const, 14, ""}, - {"SYS_KSEM_GETVALUE", Const, 14, ""}, - {"SYS_KSEM_INIT", Const, 14, ""}, - {"SYS_KSEM_OPEN", Const, 14, ""}, - {"SYS_KSEM_POST", Const, 14, ""}, - {"SYS_KSEM_TIMEDWAIT", Const, 14, ""}, - {"SYS_KSEM_TRYWAIT", Const, 14, ""}, - {"SYS_KSEM_UNLINK", Const, 14, ""}, - {"SYS_KSEM_WAIT", Const, 14, ""}, - {"SYS_KTIMER_CREATE", Const, 0, ""}, - {"SYS_KTIMER_DELETE", Const, 0, ""}, - {"SYS_KTIMER_GETOVERRUN", Const, 0, ""}, - {"SYS_KTIMER_GETTIME", Const, 0, ""}, - {"SYS_KTIMER_SETTIME", Const, 0, ""}, - {"SYS_KTRACE", Const, 0, ""}, - {"SYS_LCHFLAGS", Const, 0, ""}, - {"SYS_LCHMOD", Const, 0, ""}, - {"SYS_LCHOWN", Const, 0, ""}, - {"SYS_LCHOWN32", Const, 0, ""}, - {"SYS_LEDGER", Const, 16, ""}, - {"SYS_LGETFH", Const, 0, ""}, - {"SYS_LGETXATTR", Const, 0, ""}, - {"SYS_LINK", Const, 0, ""}, - {"SYS_LINKAT", Const, 0, ""}, - {"SYS_LIO_LISTIO", Const, 0, ""}, - {"SYS_LISTEN", Const, 0, ""}, - {"SYS_LISTXATTR", Const, 0, ""}, - {"SYS_LLISTXATTR", Const, 0, ""}, - {"SYS_LOCK", Const, 0, ""}, - {"SYS_LOOKUP_DCOOKIE", Const, 0, ""}, - {"SYS_LPATHCONF", Const, 0, ""}, - {"SYS_LREMOVEXATTR", Const, 0, ""}, - {"SYS_LSEEK", Const, 0, ""}, - {"SYS_LSETXATTR", Const, 0, ""}, - {"SYS_LSTAT", Const, 0, ""}, - {"SYS_LSTAT64", Const, 0, ""}, - {"SYS_LSTAT64_EXTENDED", Const, 0, ""}, - {"SYS_LSTATV", Const, 0, ""}, - {"SYS_LSTAT_EXTENDED", Const, 0, ""}, - {"SYS_LUTIMES", Const, 0, ""}, - {"SYS_MAC_SYSCALL", Const, 0, ""}, - {"SYS_MADVISE", Const, 0, ""}, - {"SYS_MADVISE1", Const, 0, ""}, - {"SYS_MAXSYSCALL", Const, 0, ""}, - {"SYS_MBIND", Const, 0, ""}, - {"SYS_MIGRATE_PAGES", Const, 0, ""}, - {"SYS_MINCORE", Const, 0, ""}, - {"SYS_MINHERIT", Const, 0, ""}, - {"SYS_MKCOMPLEX", Const, 0, ""}, - {"SYS_MKDIR", Const, 0, ""}, - {"SYS_MKDIRAT", Const, 0, ""}, - {"SYS_MKDIR_EXTENDED", Const, 0, ""}, - {"SYS_MKFIFO", Const, 0, ""}, - {"SYS_MKFIFOAT", Const, 0, ""}, - {"SYS_MKFIFO_EXTENDED", Const, 0, ""}, - {"SYS_MKNOD", Const, 0, ""}, - {"SYS_MKNODAT", Const, 0, ""}, - {"SYS_MLOCK", Const, 0, ""}, - {"SYS_MLOCKALL", Const, 0, ""}, - {"SYS_MMAP", Const, 0, ""}, - {"SYS_MMAP2", Const, 0, ""}, - {"SYS_MODCTL", Const, 1, ""}, - {"SYS_MODFIND", Const, 0, ""}, - {"SYS_MODFNEXT", Const, 0, ""}, - {"SYS_MODIFY_LDT", Const, 0, ""}, - {"SYS_MODNEXT", Const, 0, ""}, - {"SYS_MODSTAT", Const, 0, ""}, - {"SYS_MODWATCH", Const, 0, ""}, - {"SYS_MOUNT", Const, 0, ""}, - {"SYS_MOVE_PAGES", Const, 0, ""}, - {"SYS_MPROTECT", Const, 0, ""}, - {"SYS_MPX", Const, 0, ""}, - {"SYS_MQUERY", Const, 1, ""}, - {"SYS_MQ_GETSETATTR", Const, 0, ""}, - {"SYS_MQ_NOTIFY", Const, 0, ""}, - {"SYS_MQ_OPEN", Const, 0, ""}, - {"SYS_MQ_TIMEDRECEIVE", Const, 0, ""}, - {"SYS_MQ_TIMEDSEND", Const, 0, ""}, - {"SYS_MQ_UNLINK", Const, 0, ""}, - {"SYS_MREMAP", Const, 0, ""}, - {"SYS_MSGCTL", Const, 0, ""}, - {"SYS_MSGGET", Const, 0, ""}, - {"SYS_MSGRCV", Const, 0, ""}, - {"SYS_MSGRCV_NOCANCEL", Const, 0, ""}, - {"SYS_MSGSND", Const, 0, ""}, - {"SYS_MSGSND_NOCANCEL", Const, 0, ""}, - {"SYS_MSGSYS", Const, 0, ""}, - {"SYS_MSYNC", Const, 0, ""}, - {"SYS_MSYNC_NOCANCEL", Const, 0, ""}, - {"SYS_MUNLOCK", Const, 0, ""}, - {"SYS_MUNLOCKALL", Const, 0, ""}, - {"SYS_MUNMAP", Const, 0, ""}, - {"SYS_NAME_TO_HANDLE_AT", Const, 0, ""}, - {"SYS_NANOSLEEP", Const, 0, ""}, - {"SYS_NEWFSTATAT", Const, 0, ""}, - {"SYS_NFSCLNT", Const, 0, ""}, - {"SYS_NFSSERVCTL", Const, 0, ""}, - {"SYS_NFSSVC", Const, 0, ""}, - {"SYS_NFSTAT", Const, 0, ""}, - {"SYS_NICE", Const, 0, ""}, - {"SYS_NLM_SYSCALL", Const, 14, ""}, - {"SYS_NLSTAT", Const, 0, ""}, - {"SYS_NMOUNT", Const, 0, ""}, - {"SYS_NSTAT", Const, 0, ""}, - {"SYS_NTP_ADJTIME", Const, 0, ""}, - {"SYS_NTP_GETTIME", Const, 0, ""}, - {"SYS_NUMA_GETAFFINITY", Const, 14, ""}, - {"SYS_NUMA_SETAFFINITY", Const, 14, ""}, - {"SYS_OABI_SYSCALL_BASE", Const, 0, ""}, - {"SYS_OBREAK", Const, 0, ""}, - {"SYS_OLDFSTAT", Const, 0, ""}, - {"SYS_OLDLSTAT", Const, 0, ""}, - {"SYS_OLDOLDUNAME", Const, 0, ""}, - {"SYS_OLDSTAT", Const, 0, ""}, - {"SYS_OLDUNAME", Const, 0, ""}, - {"SYS_OPEN", Const, 0, ""}, - {"SYS_OPENAT", Const, 0, ""}, - {"SYS_OPENBSD_POLL", Const, 0, ""}, - {"SYS_OPEN_BY_HANDLE_AT", Const, 0, ""}, - {"SYS_OPEN_DPROTECTED_NP", Const, 16, ""}, - {"SYS_OPEN_EXTENDED", Const, 0, ""}, - {"SYS_OPEN_NOCANCEL", Const, 0, ""}, - {"SYS_OVADVISE", Const, 0, ""}, - {"SYS_PACCEPT", Const, 1, ""}, - {"SYS_PATHCONF", Const, 0, ""}, - {"SYS_PAUSE", Const, 0, ""}, - {"SYS_PCICONFIG_IOBASE", Const, 0, ""}, - {"SYS_PCICONFIG_READ", Const, 0, ""}, - {"SYS_PCICONFIG_WRITE", Const, 0, ""}, - {"SYS_PDFORK", Const, 0, ""}, - {"SYS_PDGETPID", Const, 0, ""}, - {"SYS_PDKILL", Const, 0, ""}, - {"SYS_PERF_EVENT_OPEN", Const, 0, ""}, - {"SYS_PERSONALITY", Const, 0, ""}, - {"SYS_PID_HIBERNATE", Const, 0, ""}, - {"SYS_PID_RESUME", Const, 0, ""}, - {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0, ""}, - {"SYS_PID_SUSPEND", Const, 0, ""}, - {"SYS_PIPE", Const, 0, ""}, - {"SYS_PIPE2", Const, 0, ""}, - {"SYS_PIVOT_ROOT", Const, 0, ""}, - {"SYS_PMC_CONTROL", Const, 1, ""}, - {"SYS_PMC_GET_INFO", Const, 1, ""}, - {"SYS_POLL", Const, 0, ""}, - {"SYS_POLLTS", Const, 1, ""}, - {"SYS_POLL_NOCANCEL", Const, 0, ""}, - {"SYS_POSIX_FADVISE", Const, 0, ""}, - {"SYS_POSIX_FALLOCATE", Const, 0, ""}, - {"SYS_POSIX_OPENPT", Const, 0, ""}, - {"SYS_POSIX_SPAWN", Const, 0, ""}, - {"SYS_PPOLL", Const, 0, ""}, - {"SYS_PRCTL", Const, 0, ""}, - {"SYS_PREAD", Const, 0, ""}, - {"SYS_PREAD64", Const, 0, ""}, - {"SYS_PREADV", Const, 0, ""}, - {"SYS_PREAD_NOCANCEL", Const, 0, ""}, - {"SYS_PRLIMIT64", Const, 0, ""}, - {"SYS_PROCCTL", Const, 3, ""}, - {"SYS_PROCESS_POLICY", Const, 0, ""}, - {"SYS_PROCESS_VM_READV", Const, 0, ""}, - {"SYS_PROCESS_VM_WRITEV", Const, 0, ""}, - {"SYS_PROC_INFO", Const, 0, ""}, - {"SYS_PROF", Const, 0, ""}, - {"SYS_PROFIL", Const, 0, ""}, - {"SYS_PSELECT", Const, 0, ""}, - {"SYS_PSELECT6", Const, 0, ""}, - {"SYS_PSET_ASSIGN", Const, 1, ""}, - {"SYS_PSET_CREATE", Const, 1, ""}, - {"SYS_PSET_DESTROY", Const, 1, ""}, - {"SYS_PSYNCH_CVBROAD", Const, 0, ""}, - {"SYS_PSYNCH_CVCLRPREPOST", Const, 0, ""}, - {"SYS_PSYNCH_CVSIGNAL", Const, 0, ""}, - {"SYS_PSYNCH_CVWAIT", Const, 0, ""}, - {"SYS_PSYNCH_MUTEXDROP", Const, 0, ""}, - {"SYS_PSYNCH_MUTEXWAIT", Const, 0, ""}, - {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0, ""}, - {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0, ""}, - {"SYS_PSYNCH_RW_RDLOCK", Const, 0, ""}, - {"SYS_PSYNCH_RW_UNLOCK", Const, 0, ""}, - {"SYS_PSYNCH_RW_UNLOCK2", Const, 0, ""}, - {"SYS_PSYNCH_RW_UPGRADE", Const, 0, ""}, - {"SYS_PSYNCH_RW_WRLOCK", Const, 0, ""}, - {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0, ""}, - {"SYS_PTRACE", Const, 0, ""}, - {"SYS_PUTPMSG", Const, 0, ""}, - {"SYS_PWRITE", Const, 0, ""}, - {"SYS_PWRITE64", Const, 0, ""}, - {"SYS_PWRITEV", Const, 0, ""}, - {"SYS_PWRITE_NOCANCEL", Const, 0, ""}, - {"SYS_QUERY_MODULE", Const, 0, ""}, - {"SYS_QUOTACTL", Const, 0, ""}, - {"SYS_RASCTL", Const, 1, ""}, - {"SYS_RCTL_ADD_RULE", Const, 0, ""}, - {"SYS_RCTL_GET_LIMITS", Const, 0, ""}, - {"SYS_RCTL_GET_RACCT", Const, 0, ""}, - {"SYS_RCTL_GET_RULES", Const, 0, ""}, - {"SYS_RCTL_REMOVE_RULE", Const, 0, ""}, - {"SYS_READ", Const, 0, ""}, - {"SYS_READAHEAD", Const, 0, ""}, - {"SYS_READDIR", Const, 0, ""}, - {"SYS_READLINK", Const, 0, ""}, - {"SYS_READLINKAT", Const, 0, ""}, - {"SYS_READV", Const, 0, ""}, - {"SYS_READV_NOCANCEL", Const, 0, ""}, - {"SYS_READ_NOCANCEL", Const, 0, ""}, - {"SYS_REBOOT", Const, 0, ""}, - {"SYS_RECV", Const, 0, ""}, - {"SYS_RECVFROM", Const, 0, ""}, - {"SYS_RECVFROM_NOCANCEL", Const, 0, ""}, - {"SYS_RECVMMSG", Const, 0, ""}, - {"SYS_RECVMSG", Const, 0, ""}, - {"SYS_RECVMSG_NOCANCEL", Const, 0, ""}, - {"SYS_REMAP_FILE_PAGES", Const, 0, ""}, - {"SYS_REMOVEXATTR", Const, 0, ""}, - {"SYS_RENAME", Const, 0, ""}, - {"SYS_RENAMEAT", Const, 0, ""}, - {"SYS_REQUEST_KEY", Const, 0, ""}, - {"SYS_RESTART_SYSCALL", Const, 0, ""}, - {"SYS_REVOKE", Const, 0, ""}, - {"SYS_RFORK", Const, 0, ""}, - {"SYS_RMDIR", Const, 0, ""}, - {"SYS_RTPRIO", Const, 0, ""}, - {"SYS_RTPRIO_THREAD", Const, 0, ""}, - {"SYS_RT_SIGACTION", Const, 0, ""}, - {"SYS_RT_SIGPENDING", Const, 0, ""}, - {"SYS_RT_SIGPROCMASK", Const, 0, ""}, - {"SYS_RT_SIGQUEUEINFO", Const, 0, ""}, - {"SYS_RT_SIGRETURN", Const, 0, ""}, - {"SYS_RT_SIGSUSPEND", Const, 0, ""}, - {"SYS_RT_SIGTIMEDWAIT", Const, 0, ""}, - {"SYS_RT_TGSIGQUEUEINFO", Const, 0, ""}, - {"SYS_SBRK", Const, 0, ""}, - {"SYS_SCHED_GETAFFINITY", Const, 0, ""}, - {"SYS_SCHED_GETPARAM", Const, 0, ""}, - {"SYS_SCHED_GETSCHEDULER", Const, 0, ""}, - {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0, ""}, - {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0, ""}, - {"SYS_SCHED_RR_GET_INTERVAL", Const, 0, ""}, - {"SYS_SCHED_SETAFFINITY", Const, 0, ""}, - {"SYS_SCHED_SETPARAM", Const, 0, ""}, - {"SYS_SCHED_SETSCHEDULER", Const, 0, ""}, - {"SYS_SCHED_YIELD", Const, 0, ""}, - {"SYS_SCTP_GENERIC_RECVMSG", Const, 0, ""}, - {"SYS_SCTP_GENERIC_SENDMSG", Const, 0, ""}, - {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0, ""}, - {"SYS_SCTP_PEELOFF", Const, 0, ""}, - {"SYS_SEARCHFS", Const, 0, ""}, - {"SYS_SECURITY", Const, 0, ""}, - {"SYS_SELECT", Const, 0, ""}, - {"SYS_SELECT_NOCANCEL", Const, 0, ""}, - {"SYS_SEMCONFIG", Const, 1, ""}, - {"SYS_SEMCTL", Const, 0, ""}, - {"SYS_SEMGET", Const, 0, ""}, - {"SYS_SEMOP", Const, 0, ""}, - {"SYS_SEMSYS", Const, 0, ""}, - {"SYS_SEMTIMEDOP", Const, 0, ""}, - {"SYS_SEM_CLOSE", Const, 0, ""}, - {"SYS_SEM_DESTROY", Const, 0, ""}, - {"SYS_SEM_GETVALUE", Const, 0, ""}, - {"SYS_SEM_INIT", Const, 0, ""}, - {"SYS_SEM_OPEN", Const, 0, ""}, - {"SYS_SEM_POST", Const, 0, ""}, - {"SYS_SEM_TRYWAIT", Const, 0, ""}, - {"SYS_SEM_UNLINK", Const, 0, ""}, - {"SYS_SEM_WAIT", Const, 0, ""}, - {"SYS_SEM_WAIT_NOCANCEL", Const, 0, ""}, - {"SYS_SEND", Const, 0, ""}, - {"SYS_SENDFILE", Const, 0, ""}, - {"SYS_SENDFILE64", Const, 0, ""}, - {"SYS_SENDMMSG", Const, 0, ""}, - {"SYS_SENDMSG", Const, 0, ""}, - {"SYS_SENDMSG_NOCANCEL", Const, 0, ""}, - {"SYS_SENDTO", Const, 0, ""}, - {"SYS_SENDTO_NOCANCEL", Const, 0, ""}, - {"SYS_SETATTRLIST", Const, 0, ""}, - {"SYS_SETAUDIT", Const, 0, ""}, - {"SYS_SETAUDIT_ADDR", Const, 0, ""}, - {"SYS_SETAUID", Const, 0, ""}, - {"SYS_SETCONTEXT", Const, 0, ""}, - {"SYS_SETDOMAINNAME", Const, 0, ""}, - {"SYS_SETEGID", Const, 0, ""}, - {"SYS_SETEUID", Const, 0, ""}, - {"SYS_SETFIB", Const, 0, ""}, - {"SYS_SETFSGID", Const, 0, ""}, - {"SYS_SETFSGID32", Const, 0, ""}, - {"SYS_SETFSUID", Const, 0, ""}, - {"SYS_SETFSUID32", Const, 0, ""}, - {"SYS_SETGID", Const, 0, ""}, - {"SYS_SETGID32", Const, 0, ""}, - {"SYS_SETGROUPS", Const, 0, ""}, - {"SYS_SETGROUPS32", Const, 0, ""}, - {"SYS_SETHOSTNAME", Const, 0, ""}, - {"SYS_SETITIMER", Const, 0, ""}, - {"SYS_SETLCID", Const, 0, ""}, - {"SYS_SETLOGIN", Const, 0, ""}, - {"SYS_SETLOGINCLASS", Const, 0, ""}, - {"SYS_SETNS", Const, 0, ""}, - {"SYS_SETPGID", Const, 0, ""}, - {"SYS_SETPRIORITY", Const, 0, ""}, - {"SYS_SETPRIVEXEC", Const, 0, ""}, - {"SYS_SETREGID", Const, 0, ""}, - {"SYS_SETREGID32", Const, 0, ""}, - {"SYS_SETRESGID", Const, 0, ""}, - {"SYS_SETRESGID32", Const, 0, ""}, - {"SYS_SETRESUID", Const, 0, ""}, - {"SYS_SETRESUID32", Const, 0, ""}, - {"SYS_SETREUID", Const, 0, ""}, - {"SYS_SETREUID32", Const, 0, ""}, - {"SYS_SETRLIMIT", Const, 0, ""}, - {"SYS_SETRTABLE", Const, 1, ""}, - {"SYS_SETSGROUPS", Const, 0, ""}, - {"SYS_SETSID", Const, 0, ""}, - {"SYS_SETSOCKOPT", Const, 0, ""}, - {"SYS_SETTID", Const, 0, ""}, - {"SYS_SETTID_WITH_PID", Const, 0, ""}, - {"SYS_SETTIMEOFDAY", Const, 0, ""}, - {"SYS_SETUID", Const, 0, ""}, - {"SYS_SETUID32", Const, 0, ""}, - {"SYS_SETWGROUPS", Const, 0, ""}, - {"SYS_SETXATTR", Const, 0, ""}, - {"SYS_SET_MEMPOLICY", Const, 0, ""}, - {"SYS_SET_ROBUST_LIST", Const, 0, ""}, - {"SYS_SET_THREAD_AREA", Const, 0, ""}, - {"SYS_SET_TID_ADDRESS", Const, 0, ""}, - {"SYS_SGETMASK", Const, 0, ""}, - {"SYS_SHARED_REGION_CHECK_NP", Const, 0, ""}, - {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0, ""}, - {"SYS_SHMAT", Const, 0, ""}, - {"SYS_SHMCTL", Const, 0, ""}, - {"SYS_SHMDT", Const, 0, ""}, - {"SYS_SHMGET", Const, 0, ""}, - {"SYS_SHMSYS", Const, 0, ""}, - {"SYS_SHM_OPEN", Const, 0, ""}, - {"SYS_SHM_UNLINK", Const, 0, ""}, - {"SYS_SHUTDOWN", Const, 0, ""}, - {"SYS_SIGACTION", Const, 0, ""}, - {"SYS_SIGALTSTACK", Const, 0, ""}, - {"SYS_SIGNAL", Const, 0, ""}, - {"SYS_SIGNALFD", Const, 0, ""}, - {"SYS_SIGNALFD4", Const, 0, ""}, - {"SYS_SIGPENDING", Const, 0, ""}, - {"SYS_SIGPROCMASK", Const, 0, ""}, - {"SYS_SIGQUEUE", Const, 0, ""}, - {"SYS_SIGQUEUEINFO", Const, 1, ""}, - {"SYS_SIGRETURN", Const, 0, ""}, - {"SYS_SIGSUSPEND", Const, 0, ""}, - {"SYS_SIGSUSPEND_NOCANCEL", Const, 0, ""}, - {"SYS_SIGTIMEDWAIT", Const, 0, ""}, - {"SYS_SIGWAIT", Const, 0, ""}, - {"SYS_SIGWAITINFO", Const, 0, ""}, - {"SYS_SOCKET", Const, 0, ""}, - {"SYS_SOCKETCALL", Const, 0, ""}, - {"SYS_SOCKETPAIR", Const, 0, ""}, - {"SYS_SPLICE", Const, 0, ""}, - {"SYS_SSETMASK", Const, 0, ""}, - {"SYS_SSTK", Const, 0, ""}, - {"SYS_STACK_SNAPSHOT", Const, 0, ""}, - {"SYS_STAT", Const, 0, ""}, - {"SYS_STAT64", Const, 0, ""}, - {"SYS_STAT64_EXTENDED", Const, 0, ""}, - {"SYS_STATFS", Const, 0, ""}, - {"SYS_STATFS64", Const, 0, ""}, - {"SYS_STATV", Const, 0, ""}, - {"SYS_STATVFS1", Const, 1, ""}, - {"SYS_STAT_EXTENDED", Const, 0, ""}, - {"SYS_STIME", Const, 0, ""}, - {"SYS_STTY", Const, 0, ""}, - {"SYS_SWAPCONTEXT", Const, 0, ""}, - {"SYS_SWAPCTL", Const, 1, ""}, - {"SYS_SWAPOFF", Const, 0, ""}, - {"SYS_SWAPON", Const, 0, ""}, - {"SYS_SYMLINK", Const, 0, ""}, - {"SYS_SYMLINKAT", Const, 0, ""}, - {"SYS_SYNC", Const, 0, ""}, - {"SYS_SYNCFS", Const, 0, ""}, - {"SYS_SYNC_FILE_RANGE", Const, 0, ""}, - {"SYS_SYSARCH", Const, 0, ""}, - {"SYS_SYSCALL", Const, 0, ""}, - {"SYS_SYSCALL_BASE", Const, 0, ""}, - {"SYS_SYSFS", Const, 0, ""}, - {"SYS_SYSINFO", Const, 0, ""}, - {"SYS_SYSLOG", Const, 0, ""}, - {"SYS_TEE", Const, 0, ""}, - {"SYS_TGKILL", Const, 0, ""}, - {"SYS_THREAD_SELFID", Const, 0, ""}, - {"SYS_THR_CREATE", Const, 0, ""}, - {"SYS_THR_EXIT", Const, 0, ""}, - {"SYS_THR_KILL", Const, 0, ""}, - {"SYS_THR_KILL2", Const, 0, ""}, - {"SYS_THR_NEW", Const, 0, ""}, - {"SYS_THR_SELF", Const, 0, ""}, - {"SYS_THR_SET_NAME", Const, 0, ""}, - {"SYS_THR_SUSPEND", Const, 0, ""}, - {"SYS_THR_WAKE", Const, 0, ""}, - {"SYS_TIME", Const, 0, ""}, - {"SYS_TIMERFD_CREATE", Const, 0, ""}, - {"SYS_TIMERFD_GETTIME", Const, 0, ""}, - {"SYS_TIMERFD_SETTIME", Const, 0, ""}, - {"SYS_TIMER_CREATE", Const, 0, ""}, - {"SYS_TIMER_DELETE", Const, 0, ""}, - {"SYS_TIMER_GETOVERRUN", Const, 0, ""}, - {"SYS_TIMER_GETTIME", Const, 0, ""}, - {"SYS_TIMER_SETTIME", Const, 0, ""}, - {"SYS_TIMES", Const, 0, ""}, - {"SYS_TKILL", Const, 0, ""}, - {"SYS_TRUNCATE", Const, 0, ""}, - {"SYS_TRUNCATE64", Const, 0, ""}, - {"SYS_TUXCALL", Const, 0, ""}, - {"SYS_UGETRLIMIT", Const, 0, ""}, - {"SYS_ULIMIT", Const, 0, ""}, - {"SYS_UMASK", Const, 0, ""}, - {"SYS_UMASK_EXTENDED", Const, 0, ""}, - {"SYS_UMOUNT", Const, 0, ""}, - {"SYS_UMOUNT2", Const, 0, ""}, - {"SYS_UNAME", Const, 0, ""}, - {"SYS_UNDELETE", Const, 0, ""}, - {"SYS_UNLINK", Const, 0, ""}, - {"SYS_UNLINKAT", Const, 0, ""}, - {"SYS_UNMOUNT", Const, 0, ""}, - {"SYS_UNSHARE", Const, 0, ""}, - {"SYS_USELIB", Const, 0, ""}, - {"SYS_USTAT", Const, 0, ""}, - {"SYS_UTIME", Const, 0, ""}, - {"SYS_UTIMENSAT", Const, 0, ""}, - {"SYS_UTIMES", Const, 0, ""}, - {"SYS_UTRACE", Const, 0, ""}, - {"SYS_UUIDGEN", Const, 0, ""}, - {"SYS_VADVISE", Const, 1, ""}, - {"SYS_VFORK", Const, 0, ""}, - {"SYS_VHANGUP", Const, 0, ""}, - {"SYS_VM86", Const, 0, ""}, - {"SYS_VM86OLD", Const, 0, ""}, - {"SYS_VMSPLICE", Const, 0, ""}, - {"SYS_VM_PRESSURE_MONITOR", Const, 0, ""}, - {"SYS_VSERVER", Const, 0, ""}, - {"SYS_WAIT4", Const, 0, ""}, - {"SYS_WAIT4_NOCANCEL", Const, 0, ""}, - {"SYS_WAIT6", Const, 1, ""}, - {"SYS_WAITEVENT", Const, 0, ""}, - {"SYS_WAITID", Const, 0, ""}, - {"SYS_WAITID_NOCANCEL", Const, 0, ""}, - {"SYS_WAITPID", Const, 0, ""}, - {"SYS_WATCHEVENT", Const, 0, ""}, - {"SYS_WORKQ_KERNRETURN", Const, 0, ""}, - {"SYS_WORKQ_OPEN", Const, 0, ""}, - {"SYS_WRITE", Const, 0, ""}, - {"SYS_WRITEV", Const, 0, ""}, - {"SYS_WRITEV_NOCANCEL", Const, 0, ""}, - {"SYS_WRITE_NOCANCEL", Const, 0, ""}, - {"SYS_YIELD", Const, 0, ""}, - {"SYS__LLSEEK", Const, 0, ""}, - {"SYS__LWP_CONTINUE", Const, 1, ""}, - {"SYS__LWP_CREATE", Const, 1, ""}, - {"SYS__LWP_CTL", Const, 1, ""}, - {"SYS__LWP_DETACH", Const, 1, ""}, - {"SYS__LWP_EXIT", Const, 1, ""}, - {"SYS__LWP_GETNAME", Const, 1, ""}, - {"SYS__LWP_GETPRIVATE", Const, 1, ""}, - {"SYS__LWP_KILL", Const, 1, ""}, - {"SYS__LWP_PARK", Const, 1, ""}, - {"SYS__LWP_SELF", Const, 1, ""}, - {"SYS__LWP_SETNAME", Const, 1, ""}, - {"SYS__LWP_SETPRIVATE", Const, 1, ""}, - {"SYS__LWP_SUSPEND", Const, 1, ""}, - {"SYS__LWP_UNPARK", Const, 1, ""}, - {"SYS__LWP_UNPARK_ALL", Const, 1, ""}, - {"SYS__LWP_WAIT", Const, 1, ""}, - {"SYS__LWP_WAKEUP", Const, 1, ""}, - {"SYS__NEWSELECT", Const, 0, ""}, - {"SYS__PSET_BIND", Const, 1, ""}, - {"SYS__SCHED_GETAFFINITY", Const, 1, ""}, - {"SYS__SCHED_GETPARAM", Const, 1, ""}, - {"SYS__SCHED_SETAFFINITY", Const, 1, ""}, - {"SYS__SCHED_SETPARAM", Const, 1, ""}, - {"SYS__SYSCTL", Const, 0, ""}, - {"SYS__UMTX_LOCK", Const, 0, ""}, - {"SYS__UMTX_OP", Const, 0, ""}, - {"SYS__UMTX_UNLOCK", Const, 0, ""}, - {"SYS___ACL_ACLCHECK_FD", Const, 0, ""}, - {"SYS___ACL_ACLCHECK_FILE", Const, 0, ""}, - {"SYS___ACL_ACLCHECK_LINK", Const, 0, ""}, - {"SYS___ACL_DELETE_FD", Const, 0, ""}, - {"SYS___ACL_DELETE_FILE", Const, 0, ""}, - {"SYS___ACL_DELETE_LINK", Const, 0, ""}, - {"SYS___ACL_GET_FD", Const, 0, ""}, - {"SYS___ACL_GET_FILE", Const, 0, ""}, - {"SYS___ACL_GET_LINK", Const, 0, ""}, - {"SYS___ACL_SET_FD", Const, 0, ""}, - {"SYS___ACL_SET_FILE", Const, 0, ""}, - {"SYS___ACL_SET_LINK", Const, 0, ""}, - {"SYS___CAP_RIGHTS_GET", Const, 14, ""}, - {"SYS___CLONE", Const, 1, ""}, - {"SYS___DISABLE_THREADSIGNAL", Const, 0, ""}, - {"SYS___GETCWD", Const, 0, ""}, - {"SYS___GETLOGIN", Const, 1, ""}, - {"SYS___GET_TCB", Const, 1, ""}, - {"SYS___MAC_EXECVE", Const, 0, ""}, - {"SYS___MAC_GETFSSTAT", Const, 0, ""}, - {"SYS___MAC_GET_FD", Const, 0, ""}, - {"SYS___MAC_GET_FILE", Const, 0, ""}, - {"SYS___MAC_GET_LCID", Const, 0, ""}, - {"SYS___MAC_GET_LCTX", Const, 0, ""}, - {"SYS___MAC_GET_LINK", Const, 0, ""}, - {"SYS___MAC_GET_MOUNT", Const, 0, ""}, - {"SYS___MAC_GET_PID", Const, 0, ""}, - {"SYS___MAC_GET_PROC", Const, 0, ""}, - {"SYS___MAC_MOUNT", Const, 0, ""}, - {"SYS___MAC_SET_FD", Const, 0, ""}, - {"SYS___MAC_SET_FILE", Const, 0, ""}, - {"SYS___MAC_SET_LCTX", Const, 0, ""}, - {"SYS___MAC_SET_LINK", Const, 0, ""}, - {"SYS___MAC_SET_PROC", Const, 0, ""}, - {"SYS___MAC_SYSCALL", Const, 0, ""}, - {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0, ""}, - {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""}, - {"SYS___POSIX_CHOWN", Const, 1, ""}, - {"SYS___POSIX_FCHOWN", Const, 1, ""}, - {"SYS___POSIX_LCHOWN", Const, 1, ""}, - {"SYS___POSIX_RENAME", Const, 1, ""}, - {"SYS___PTHREAD_CANCELED", Const, 0, ""}, - {"SYS___PTHREAD_CHDIR", Const, 0, ""}, - {"SYS___PTHREAD_FCHDIR", Const, 0, ""}, - {"SYS___PTHREAD_KILL", Const, 0, ""}, - {"SYS___PTHREAD_MARKCANCEL", Const, 0, ""}, - {"SYS___PTHREAD_SIGMASK", Const, 0, ""}, - {"SYS___QUOTACTL", Const, 1, ""}, - {"SYS___SEMCTL", Const, 1, ""}, - {"SYS___SEMWAIT_SIGNAL", Const, 0, ""}, - {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0, ""}, - {"SYS___SETLOGIN", Const, 1, ""}, - {"SYS___SETUGID", Const, 0, ""}, - {"SYS___SET_TCB", Const, 1, ""}, - {"SYS___SIGACTION_SIGTRAMP", Const, 1, ""}, - {"SYS___SIGTIMEDWAIT", Const, 1, ""}, - {"SYS___SIGWAIT", Const, 0, ""}, - {"SYS___SIGWAIT_NOCANCEL", Const, 0, ""}, - {"SYS___SYSCTL", Const, 0, ""}, - {"SYS___TFORK", Const, 1, ""}, - {"SYS___THREXIT", Const, 1, ""}, - {"SYS___THRSIGDIVERT", Const, 1, ""}, - {"SYS___THRSLEEP", Const, 1, ""}, - {"SYS___THRWAKEUP", Const, 1, ""}, - {"S_ARCH1", Const, 1, ""}, - {"S_ARCH2", Const, 1, ""}, - {"S_BLKSIZE", Const, 0, ""}, - {"S_IEXEC", Const, 0, ""}, - {"S_IFBLK", Const, 0, ""}, - {"S_IFCHR", Const, 0, ""}, - {"S_IFDIR", Const, 0, ""}, - {"S_IFIFO", Const, 0, ""}, - {"S_IFLNK", Const, 0, ""}, - {"S_IFMT", Const, 0, ""}, - {"S_IFREG", Const, 0, ""}, - {"S_IFSOCK", Const, 0, ""}, - {"S_IFWHT", Const, 0, ""}, - {"S_IREAD", Const, 0, ""}, - {"S_IRGRP", Const, 0, ""}, - {"S_IROTH", Const, 0, ""}, - {"S_IRUSR", Const, 0, ""}, - {"S_IRWXG", Const, 0, ""}, - {"S_IRWXO", Const, 0, ""}, - {"S_IRWXU", Const, 0, ""}, - {"S_ISGID", Const, 0, ""}, - {"S_ISTXT", Const, 0, ""}, - {"S_ISUID", Const, 0, ""}, - {"S_ISVTX", Const, 0, ""}, - {"S_IWGRP", Const, 0, ""}, - {"S_IWOTH", Const, 0, ""}, - {"S_IWRITE", Const, 0, ""}, - {"S_IWUSR", Const, 0, ""}, - {"S_IXGRP", Const, 0, ""}, - {"S_IXOTH", Const, 0, ""}, - {"S_IXUSR", Const, 0, ""}, - {"S_LOGIN_SET", Const, 1, ""}, - {"SecurityAttributes", Type, 0, ""}, - {"SecurityAttributes.InheritHandle", Field, 0, ""}, - {"SecurityAttributes.Length", Field, 0, ""}, - {"SecurityAttributes.SecurityDescriptor", Field, 0, ""}, - {"Seek", Func, 0, "func(fd int, offset int64, whence int) (off int64, err error)"}, - {"Select", Func, 0, "func(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)"}, - {"Sendfile", Func, 0, "func(outfd int, infd int, offset *int64, count int) (written int, err error)"}, - {"Sendmsg", Func, 0, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (err error)"}, - {"SendmsgN", Func, 3, "func(fd int, p []byte, oob []byte, to Sockaddr, flags int) (n int, err error)"}, - {"Sendto", Func, 0, "func(fd int, p []byte, flags int, to Sockaddr) (err error)"}, - {"Servent", Type, 0, ""}, - {"Servent.Aliases", Field, 0, ""}, - {"Servent.Name", Field, 0, ""}, - {"Servent.Port", Field, 0, ""}, - {"Servent.Proto", Field, 0, ""}, - {"SetBpf", Func, 0, ""}, - {"SetBpfBuflen", Func, 0, ""}, - {"SetBpfDatalink", Func, 0, ""}, - {"SetBpfHeadercmpl", Func, 0, ""}, - {"SetBpfImmediate", Func, 0, ""}, - {"SetBpfInterface", Func, 0, ""}, - {"SetBpfPromisc", Func, 0, ""}, - {"SetBpfTimeout", Func, 0, ""}, - {"SetCurrentDirectory", Func, 0, ""}, - {"SetEndOfFile", Func, 0, ""}, - {"SetEnvironmentVariable", Func, 0, ""}, - {"SetFileAttributes", Func, 0, ""}, - {"SetFileCompletionNotificationModes", Func, 2, ""}, - {"SetFilePointer", Func, 0, ""}, - {"SetFileTime", Func, 0, ""}, - {"SetHandleInformation", Func, 0, ""}, - {"SetKevent", Func, 0, ""}, - {"SetLsfPromisc", Func, 0, "func(name string, m bool) error"}, - {"SetNonblock", Func, 0, "func(fd int, nonblocking bool) (err error)"}, - {"Setdomainname", Func, 0, "func(p []byte) (err error)"}, - {"Setegid", Func, 0, "func(egid int) (err error)"}, - {"Setenv", Func, 0, "func(key string, value string) error"}, - {"Seteuid", Func, 0, "func(euid int) (err error)"}, - {"Setfsgid", Func, 0, "func(gid int) (err error)"}, - {"Setfsuid", Func, 0, "func(uid int) (err error)"}, - {"Setgid", Func, 0, "func(gid int) (err error)"}, - {"Setgroups", Func, 0, "func(gids []int) (err error)"}, - {"Sethostname", Func, 0, "func(p []byte) (err error)"}, - {"Setlogin", Func, 0, ""}, - {"Setpgid", Func, 0, "func(pid int, pgid int) (err error)"}, - {"Setpriority", Func, 0, "func(which int, who int, prio int) (err error)"}, - {"Setprivexec", Func, 0, ""}, - {"Setregid", Func, 0, "func(rgid int, egid int) (err error)"}, - {"Setresgid", Func, 0, "func(rgid int, egid int, sgid int) (err error)"}, - {"Setresuid", Func, 0, "func(ruid int, euid int, suid int) (err error)"}, - {"Setreuid", Func, 0, "func(ruid int, euid int) (err error)"}, - {"Setrlimit", Func, 0, "func(resource int, rlim *Rlimit) error"}, - {"Setsid", Func, 0, "func() (pid int, err error)"}, - {"Setsockopt", Func, 0, ""}, - {"SetsockoptByte", Func, 0, "func(fd int, level int, opt int, value byte) (err error)"}, - {"SetsockoptICMPv6Filter", Func, 2, "func(fd int, level int, opt int, filter *ICMPv6Filter) error"}, - {"SetsockoptIPMreq", Func, 0, "func(fd int, level int, opt int, mreq *IPMreq) (err error)"}, - {"SetsockoptIPMreqn", Func, 0, "func(fd int, level int, opt int, mreq *IPMreqn) (err error)"}, - {"SetsockoptIPv6Mreq", Func, 0, "func(fd int, level int, opt int, mreq *IPv6Mreq) (err error)"}, - {"SetsockoptInet4Addr", Func, 0, "func(fd int, level int, opt int, value [4]byte) (err error)"}, - {"SetsockoptInt", Func, 0, "func(fd int, level int, opt int, value int) (err error)"}, - {"SetsockoptLinger", Func, 0, "func(fd int, level int, opt int, l *Linger) (err error)"}, - {"SetsockoptString", Func, 0, "func(fd int, level int, opt int, s string) (err error)"}, - {"SetsockoptTimeval", Func, 0, "func(fd int, level int, opt int, tv *Timeval) (err error)"}, - {"Settimeofday", Func, 0, "func(tv *Timeval) (err error)"}, - {"Setuid", Func, 0, "func(uid int) (err error)"}, - {"Setxattr", Func, 1, "func(path string, attr string, data []byte, flags int) (err error)"}, - {"Shutdown", Func, 0, "func(fd int, how int) (err error)"}, - {"SidTypeAlias", Const, 0, ""}, - {"SidTypeComputer", Const, 0, ""}, - {"SidTypeDeletedAccount", Const, 0, ""}, - {"SidTypeDomain", Const, 0, ""}, - {"SidTypeGroup", Const, 0, ""}, - {"SidTypeInvalid", Const, 0, ""}, - {"SidTypeLabel", Const, 0, ""}, - {"SidTypeUnknown", Const, 0, ""}, - {"SidTypeUser", Const, 0, ""}, - {"SidTypeWellKnownGroup", Const, 0, ""}, - {"Signal", Type, 0, ""}, - {"SizeofBpfHdr", Const, 0, ""}, - {"SizeofBpfInsn", Const, 0, ""}, - {"SizeofBpfProgram", Const, 0, ""}, - {"SizeofBpfStat", Const, 0, ""}, - {"SizeofBpfVersion", Const, 0, ""}, - {"SizeofBpfZbuf", Const, 0, ""}, - {"SizeofBpfZbufHeader", Const, 0, ""}, - {"SizeofCmsghdr", Const, 0, ""}, - {"SizeofICMPv6Filter", Const, 2, ""}, - {"SizeofIPMreq", Const, 0, ""}, - {"SizeofIPMreqn", Const, 0, ""}, - {"SizeofIPv6MTUInfo", Const, 2, ""}, - {"SizeofIPv6Mreq", Const, 0, ""}, - {"SizeofIfAddrmsg", Const, 0, ""}, - {"SizeofIfAnnounceMsghdr", Const, 1, ""}, - {"SizeofIfData", Const, 0, ""}, - {"SizeofIfInfomsg", Const, 0, ""}, - {"SizeofIfMsghdr", Const, 0, ""}, - {"SizeofIfaMsghdr", Const, 0, ""}, - {"SizeofIfmaMsghdr", Const, 0, ""}, - {"SizeofIfmaMsghdr2", Const, 0, ""}, - {"SizeofInet4Pktinfo", Const, 0, ""}, - {"SizeofInet6Pktinfo", Const, 0, ""}, - {"SizeofInotifyEvent", Const, 0, ""}, - {"SizeofLinger", Const, 0, ""}, - {"SizeofMsghdr", Const, 0, ""}, - {"SizeofNlAttr", Const, 0, ""}, - {"SizeofNlMsgerr", Const, 0, ""}, - {"SizeofNlMsghdr", Const, 0, ""}, - {"SizeofRtAttr", Const, 0, ""}, - {"SizeofRtGenmsg", Const, 0, ""}, - {"SizeofRtMetrics", Const, 0, ""}, - {"SizeofRtMsg", Const, 0, ""}, - {"SizeofRtMsghdr", Const, 0, ""}, - {"SizeofRtNexthop", Const, 0, ""}, - {"SizeofSockFilter", Const, 0, ""}, - {"SizeofSockFprog", Const, 0, ""}, - {"SizeofSockaddrAny", Const, 0, ""}, - {"SizeofSockaddrDatalink", Const, 0, ""}, - {"SizeofSockaddrInet4", Const, 0, ""}, - {"SizeofSockaddrInet6", Const, 0, ""}, - {"SizeofSockaddrLinklayer", Const, 0, ""}, - {"SizeofSockaddrNetlink", Const, 0, ""}, - {"SizeofSockaddrUnix", Const, 0, ""}, - {"SizeofTCPInfo", Const, 1, ""}, - {"SizeofUcred", Const, 0, ""}, - {"SlicePtrFromStrings", Func, 1, "func(ss []string) ([]*byte, error)"}, - {"SockFilter", Type, 0, ""}, - {"SockFilter.Code", Field, 0, ""}, - {"SockFilter.Jf", Field, 0, ""}, - {"SockFilter.Jt", Field, 0, ""}, - {"SockFilter.K", Field, 0, ""}, - {"SockFprog", Type, 0, ""}, - {"SockFprog.Filter", Field, 0, ""}, - {"SockFprog.Len", Field, 0, ""}, - {"SockFprog.Pad_cgo_0", Field, 0, ""}, - {"Sockaddr", Type, 0, ""}, - {"SockaddrDatalink", Type, 0, ""}, - {"SockaddrDatalink.Alen", Field, 0, ""}, - {"SockaddrDatalink.Data", Field, 0, ""}, - {"SockaddrDatalink.Family", Field, 0, ""}, - {"SockaddrDatalink.Index", Field, 0, ""}, - {"SockaddrDatalink.Len", Field, 0, ""}, - {"SockaddrDatalink.Nlen", Field, 0, ""}, - {"SockaddrDatalink.Slen", Field, 0, ""}, - {"SockaddrDatalink.Type", Field, 0, ""}, - {"SockaddrGen", Type, 0, ""}, - {"SockaddrInet4", Type, 0, ""}, - {"SockaddrInet4.Addr", Field, 0, ""}, - {"SockaddrInet4.Port", Field, 0, ""}, - {"SockaddrInet6", Type, 0, ""}, - {"SockaddrInet6.Addr", Field, 0, ""}, - {"SockaddrInet6.Port", Field, 0, ""}, - {"SockaddrInet6.ZoneId", Field, 0, ""}, - {"SockaddrLinklayer", Type, 0, ""}, - {"SockaddrLinklayer.Addr", Field, 0, ""}, - {"SockaddrLinklayer.Halen", Field, 0, ""}, - {"SockaddrLinklayer.Hatype", Field, 0, ""}, - {"SockaddrLinklayer.Ifindex", Field, 0, ""}, - {"SockaddrLinklayer.Pkttype", Field, 0, ""}, - {"SockaddrLinklayer.Protocol", Field, 0, ""}, - {"SockaddrNetlink", Type, 0, ""}, - {"SockaddrNetlink.Family", Field, 0, ""}, - {"SockaddrNetlink.Groups", Field, 0, ""}, - {"SockaddrNetlink.Pad", Field, 0, ""}, - {"SockaddrNetlink.Pid", Field, 0, ""}, - {"SockaddrUnix", Type, 0, ""}, - {"SockaddrUnix.Name", Field, 0, ""}, - {"Socket", Func, 0, "func(domain int, typ int, proto int) (fd int, err error)"}, - {"SocketControlMessage", Type, 0, ""}, - {"SocketControlMessage.Data", Field, 0, ""}, - {"SocketControlMessage.Header", Field, 0, ""}, - {"SocketDisableIPv6", Var, 0, ""}, - {"Socketpair", Func, 0, "func(domain int, typ int, proto int) (fd [2]int, err error)"}, - {"Splice", Func, 0, "func(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)"}, - {"StartProcess", Func, 0, "func(argv0 string, argv []string, attr *ProcAttr) (pid int, handle uintptr, err error)"}, - {"StartupInfo", Type, 0, ""}, - {"StartupInfo.Cb", Field, 0, ""}, - {"StartupInfo.Desktop", Field, 0, ""}, - {"StartupInfo.FillAttribute", Field, 0, ""}, - {"StartupInfo.Flags", Field, 0, ""}, - {"StartupInfo.ShowWindow", Field, 0, ""}, - {"StartupInfo.StdErr", Field, 0, ""}, - {"StartupInfo.StdInput", Field, 0, ""}, - {"StartupInfo.StdOutput", Field, 0, ""}, - {"StartupInfo.Title", Field, 0, ""}, - {"StartupInfo.X", Field, 0, ""}, - {"StartupInfo.XCountChars", Field, 0, ""}, - {"StartupInfo.XSize", Field, 0, ""}, - {"StartupInfo.Y", Field, 0, ""}, - {"StartupInfo.YCountChars", Field, 0, ""}, - {"StartupInfo.YSize", Field, 0, ""}, - {"Stat", Func, 0, "func(path string, stat *Stat_t) (err error)"}, - {"Stat_t", Type, 0, ""}, - {"Stat_t.Atim", Field, 0, ""}, - {"Stat_t.Atim_ext", Field, 12, ""}, - {"Stat_t.Atimespec", Field, 0, ""}, - {"Stat_t.Birthtimespec", Field, 0, ""}, - {"Stat_t.Blksize", Field, 0, ""}, - {"Stat_t.Blocks", Field, 0, ""}, - {"Stat_t.Btim_ext", Field, 12, ""}, - {"Stat_t.Ctim", Field, 0, ""}, - {"Stat_t.Ctim_ext", Field, 12, ""}, - {"Stat_t.Ctimespec", Field, 0, ""}, - {"Stat_t.Dev", Field, 0, ""}, - {"Stat_t.Flags", Field, 0, ""}, - {"Stat_t.Gen", Field, 0, ""}, - {"Stat_t.Gid", Field, 0, ""}, - {"Stat_t.Ino", Field, 0, ""}, - {"Stat_t.Lspare", Field, 0, ""}, - {"Stat_t.Lspare0", Field, 2, ""}, - {"Stat_t.Lspare1", Field, 2, ""}, - {"Stat_t.Mode", Field, 0, ""}, - {"Stat_t.Mtim", Field, 0, ""}, - {"Stat_t.Mtim_ext", Field, 12, ""}, - {"Stat_t.Mtimespec", Field, 0, ""}, - {"Stat_t.Nlink", Field, 0, ""}, - {"Stat_t.Pad_cgo_0", Field, 0, ""}, - {"Stat_t.Pad_cgo_1", Field, 0, ""}, - {"Stat_t.Pad_cgo_2", Field, 0, ""}, - {"Stat_t.Padding0", Field, 12, ""}, - {"Stat_t.Padding1", Field, 12, ""}, - {"Stat_t.Qspare", Field, 0, ""}, - {"Stat_t.Rdev", Field, 0, ""}, - {"Stat_t.Size", Field, 0, ""}, - {"Stat_t.Spare", Field, 2, ""}, - {"Stat_t.Uid", Field, 0, ""}, - {"Stat_t.X__pad0", Field, 0, ""}, - {"Stat_t.X__pad1", Field, 0, ""}, - {"Stat_t.X__pad2", Field, 0, ""}, - {"Stat_t.X__st_birthtim", Field, 2, ""}, - {"Stat_t.X__st_ino", Field, 0, ""}, - {"Stat_t.X__unused", Field, 0, ""}, - {"Statfs", Func, 0, "func(path string, buf *Statfs_t) (err error)"}, - {"Statfs_t", Type, 0, ""}, - {"Statfs_t.Asyncreads", Field, 0, ""}, - {"Statfs_t.Asyncwrites", Field, 0, ""}, - {"Statfs_t.Bavail", Field, 0, ""}, - {"Statfs_t.Bfree", Field, 0, ""}, - {"Statfs_t.Blocks", Field, 0, ""}, - {"Statfs_t.Bsize", Field, 0, ""}, - {"Statfs_t.Charspare", Field, 0, ""}, - {"Statfs_t.F_asyncreads", Field, 2, ""}, - {"Statfs_t.F_asyncwrites", Field, 2, ""}, - {"Statfs_t.F_bavail", Field, 2, ""}, - {"Statfs_t.F_bfree", Field, 2, ""}, - {"Statfs_t.F_blocks", Field, 2, ""}, - {"Statfs_t.F_bsize", Field, 2, ""}, - {"Statfs_t.F_ctime", Field, 2, ""}, - {"Statfs_t.F_favail", Field, 2, ""}, - {"Statfs_t.F_ffree", Field, 2, ""}, - {"Statfs_t.F_files", Field, 2, ""}, - {"Statfs_t.F_flags", Field, 2, ""}, - {"Statfs_t.F_fsid", Field, 2, ""}, - {"Statfs_t.F_fstypename", Field, 2, ""}, - {"Statfs_t.F_iosize", Field, 2, ""}, - {"Statfs_t.F_mntfromname", Field, 2, ""}, - {"Statfs_t.F_mntfromspec", Field, 3, ""}, - {"Statfs_t.F_mntonname", Field, 2, ""}, - {"Statfs_t.F_namemax", Field, 2, ""}, - {"Statfs_t.F_owner", Field, 2, ""}, - {"Statfs_t.F_spare", Field, 2, ""}, - {"Statfs_t.F_syncreads", Field, 2, ""}, - {"Statfs_t.F_syncwrites", Field, 2, ""}, - {"Statfs_t.Ffree", Field, 0, ""}, - {"Statfs_t.Files", Field, 0, ""}, - {"Statfs_t.Flags", Field, 0, ""}, - {"Statfs_t.Frsize", Field, 0, ""}, - {"Statfs_t.Fsid", Field, 0, ""}, - {"Statfs_t.Fssubtype", Field, 0, ""}, - {"Statfs_t.Fstypename", Field, 0, ""}, - {"Statfs_t.Iosize", Field, 0, ""}, - {"Statfs_t.Mntfromname", Field, 0, ""}, - {"Statfs_t.Mntonname", Field, 0, ""}, - {"Statfs_t.Mount_info", Field, 2, ""}, - {"Statfs_t.Namelen", Field, 0, ""}, - {"Statfs_t.Namemax", Field, 0, ""}, - {"Statfs_t.Owner", Field, 0, ""}, - {"Statfs_t.Pad_cgo_0", Field, 0, ""}, - {"Statfs_t.Pad_cgo_1", Field, 2, ""}, - {"Statfs_t.Reserved", Field, 0, ""}, - {"Statfs_t.Spare", Field, 0, ""}, - {"Statfs_t.Syncreads", Field, 0, ""}, - {"Statfs_t.Syncwrites", Field, 0, ""}, - {"Statfs_t.Type", Field, 0, ""}, - {"Statfs_t.Version", Field, 0, ""}, - {"Stderr", Var, 0, ""}, - {"Stdin", Var, 0, ""}, - {"Stdout", Var, 0, ""}, - {"StringBytePtr", Func, 0, "func(s string) *byte"}, - {"StringByteSlice", Func, 0, "func(s string) []byte"}, - {"StringSlicePtr", Func, 0, "func(ss []string) []*byte"}, - {"StringToSid", Func, 0, ""}, - {"StringToUTF16", Func, 0, ""}, - {"StringToUTF16Ptr", Func, 0, ""}, - {"Symlink", Func, 0, "func(oldpath string, newpath string) (err error)"}, - {"Sync", Func, 0, "func()"}, - {"SyncFileRange", Func, 0, "func(fd int, off int64, n int64, flags int) (err error)"}, - {"SysProcAttr", Type, 0, ""}, - {"SysProcAttr.AdditionalInheritedHandles", Field, 17, ""}, - {"SysProcAttr.AmbientCaps", Field, 9, ""}, - {"SysProcAttr.CgroupFD", Field, 20, ""}, - {"SysProcAttr.Chroot", Field, 0, ""}, - {"SysProcAttr.Cloneflags", Field, 2, ""}, - {"SysProcAttr.CmdLine", Field, 0, ""}, - {"SysProcAttr.CreationFlags", Field, 1, ""}, - {"SysProcAttr.Credential", Field, 0, ""}, - {"SysProcAttr.Ctty", Field, 1, ""}, - {"SysProcAttr.Foreground", Field, 5, ""}, - {"SysProcAttr.GidMappings", Field, 4, ""}, - {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5, ""}, - {"SysProcAttr.HideWindow", Field, 0, ""}, - {"SysProcAttr.Jail", Field, 21, ""}, - {"SysProcAttr.NoInheritHandles", Field, 16, ""}, - {"SysProcAttr.Noctty", Field, 0, ""}, - {"SysProcAttr.ParentProcess", Field, 17, ""}, - {"SysProcAttr.Pdeathsig", Field, 0, ""}, - {"SysProcAttr.Pgid", Field, 5, ""}, - {"SysProcAttr.PidFD", Field, 22, ""}, - {"SysProcAttr.ProcessAttributes", Field, 13, ""}, - {"SysProcAttr.Ptrace", Field, 0, ""}, - {"SysProcAttr.Setctty", Field, 0, ""}, - {"SysProcAttr.Setpgid", Field, 0, ""}, - {"SysProcAttr.Setsid", Field, 0, ""}, - {"SysProcAttr.ThreadAttributes", Field, 13, ""}, - {"SysProcAttr.Token", Field, 10, ""}, - {"SysProcAttr.UidMappings", Field, 4, ""}, - {"SysProcAttr.Unshareflags", Field, 7, ""}, - {"SysProcAttr.UseCgroupFD", Field, 20, ""}, - {"SysProcIDMap", Type, 4, ""}, - {"SysProcIDMap.ContainerID", Field, 4, ""}, - {"SysProcIDMap.HostID", Field, 4, ""}, - {"SysProcIDMap.Size", Field, 4, ""}, - {"Syscall", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"Syscall12", Func, 0, ""}, - {"Syscall15", Func, 0, ""}, - {"Syscall18", Func, 12, ""}, - {"Syscall6", Func, 0, "func(trap uintptr, a1 uintptr, a2 uintptr, a3 uintptr, a4 uintptr, a5 uintptr, a6 uintptr) (r1 uintptr, r2 uintptr, err Errno)"}, - {"Syscall9", Func, 0, ""}, - {"SyscallN", Func, 18, ""}, - {"Sysctl", Func, 0, ""}, - {"SysctlUint32", Func, 0, ""}, - {"Sysctlnode", Type, 2, ""}, - {"Sysctlnode.Flags", Field, 2, ""}, - {"Sysctlnode.Name", Field, 2, ""}, - {"Sysctlnode.Num", Field, 2, ""}, - {"Sysctlnode.Un", Field, 2, ""}, - {"Sysctlnode.Ver", Field, 2, ""}, - {"Sysctlnode.X__rsvd", Field, 2, ""}, - {"Sysctlnode.X_sysctl_desc", Field, 2, ""}, - {"Sysctlnode.X_sysctl_func", Field, 2, ""}, - {"Sysctlnode.X_sysctl_parent", Field, 2, ""}, - {"Sysctlnode.X_sysctl_size", Field, 2, ""}, - {"Sysinfo", Func, 0, "func(info *Sysinfo_t) (err error)"}, - {"Sysinfo_t", Type, 0, ""}, - {"Sysinfo_t.Bufferram", Field, 0, ""}, - {"Sysinfo_t.Freehigh", Field, 0, ""}, - {"Sysinfo_t.Freeram", Field, 0, ""}, - {"Sysinfo_t.Freeswap", Field, 0, ""}, - {"Sysinfo_t.Loads", Field, 0, ""}, - {"Sysinfo_t.Pad", Field, 0, ""}, - {"Sysinfo_t.Pad_cgo_0", Field, 0, ""}, - {"Sysinfo_t.Pad_cgo_1", Field, 0, ""}, - {"Sysinfo_t.Procs", Field, 0, ""}, - {"Sysinfo_t.Sharedram", Field, 0, ""}, - {"Sysinfo_t.Totalhigh", Field, 0, ""}, - {"Sysinfo_t.Totalram", Field, 0, ""}, - {"Sysinfo_t.Totalswap", Field, 0, ""}, - {"Sysinfo_t.Unit", Field, 0, ""}, - {"Sysinfo_t.Uptime", Field, 0, ""}, - {"Sysinfo_t.X_f", Field, 0, ""}, - {"Systemtime", Type, 0, ""}, - {"Systemtime.Day", Field, 0, ""}, - {"Systemtime.DayOfWeek", Field, 0, ""}, - {"Systemtime.Hour", Field, 0, ""}, - {"Systemtime.Milliseconds", Field, 0, ""}, - {"Systemtime.Minute", Field, 0, ""}, - {"Systemtime.Month", Field, 0, ""}, - {"Systemtime.Second", Field, 0, ""}, - {"Systemtime.Year", Field, 0, ""}, - {"TCGETS", Const, 0, ""}, - {"TCIFLUSH", Const, 1, ""}, - {"TCIOFLUSH", Const, 1, ""}, - {"TCOFLUSH", Const, 1, ""}, - {"TCPInfo", Type, 1, ""}, - {"TCPInfo.Advmss", Field, 1, ""}, - {"TCPInfo.Ato", Field, 1, ""}, - {"TCPInfo.Backoff", Field, 1, ""}, - {"TCPInfo.Ca_state", Field, 1, ""}, - {"TCPInfo.Fackets", Field, 1, ""}, - {"TCPInfo.Last_ack_recv", Field, 1, ""}, - {"TCPInfo.Last_ack_sent", Field, 1, ""}, - {"TCPInfo.Last_data_recv", Field, 1, ""}, - {"TCPInfo.Last_data_sent", Field, 1, ""}, - {"TCPInfo.Lost", Field, 1, ""}, - {"TCPInfo.Options", Field, 1, ""}, - {"TCPInfo.Pad_cgo_0", Field, 1, ""}, - {"TCPInfo.Pmtu", Field, 1, ""}, - {"TCPInfo.Probes", Field, 1, ""}, - {"TCPInfo.Rcv_mss", Field, 1, ""}, - {"TCPInfo.Rcv_rtt", Field, 1, ""}, - {"TCPInfo.Rcv_space", Field, 1, ""}, - {"TCPInfo.Rcv_ssthresh", Field, 1, ""}, - {"TCPInfo.Reordering", Field, 1, ""}, - {"TCPInfo.Retrans", Field, 1, ""}, - {"TCPInfo.Retransmits", Field, 1, ""}, - {"TCPInfo.Rto", Field, 1, ""}, - {"TCPInfo.Rtt", Field, 1, ""}, - {"TCPInfo.Rttvar", Field, 1, ""}, - {"TCPInfo.Sacked", Field, 1, ""}, - {"TCPInfo.Snd_cwnd", Field, 1, ""}, - {"TCPInfo.Snd_mss", Field, 1, ""}, - {"TCPInfo.Snd_ssthresh", Field, 1, ""}, - {"TCPInfo.State", Field, 1, ""}, - {"TCPInfo.Total_retrans", Field, 1, ""}, - {"TCPInfo.Unacked", Field, 1, ""}, - {"TCPKeepalive", Type, 3, ""}, - {"TCPKeepalive.Interval", Field, 3, ""}, - {"TCPKeepalive.OnOff", Field, 3, ""}, - {"TCPKeepalive.Time", Field, 3, ""}, - {"TCP_CA_NAME_MAX", Const, 0, ""}, - {"TCP_CONGCTL", Const, 1, ""}, - {"TCP_CONGESTION", Const, 0, ""}, - {"TCP_CONNECTIONTIMEOUT", Const, 0, ""}, - {"TCP_CORK", Const, 0, ""}, - {"TCP_DEFER_ACCEPT", Const, 0, ""}, - {"TCP_ENABLE_ECN", Const, 16, ""}, - {"TCP_INFO", Const, 0, ""}, - {"TCP_KEEPALIVE", Const, 0, ""}, - {"TCP_KEEPCNT", Const, 0, ""}, - {"TCP_KEEPIDLE", Const, 0, ""}, - {"TCP_KEEPINIT", Const, 1, ""}, - {"TCP_KEEPINTVL", Const, 0, ""}, - {"TCP_LINGER2", Const, 0, ""}, - {"TCP_MAXBURST", Const, 0, ""}, - {"TCP_MAXHLEN", Const, 0, ""}, - {"TCP_MAXOLEN", Const, 0, ""}, - {"TCP_MAXSEG", Const, 0, ""}, - {"TCP_MAXWIN", Const, 0, ""}, - {"TCP_MAX_SACK", Const, 0, ""}, - {"TCP_MAX_WINSHIFT", Const, 0, ""}, - {"TCP_MD5SIG", Const, 0, ""}, - {"TCP_MD5SIG_MAXKEYLEN", Const, 0, ""}, - {"TCP_MINMSS", Const, 0, ""}, - {"TCP_MINMSSOVERLOAD", Const, 0, ""}, - {"TCP_MSS", Const, 0, ""}, - {"TCP_NODELAY", Const, 0, ""}, - {"TCP_NOOPT", Const, 0, ""}, - {"TCP_NOPUSH", Const, 0, ""}, - {"TCP_NOTSENT_LOWAT", Const, 16, ""}, - {"TCP_NSTATES", Const, 1, ""}, - {"TCP_QUICKACK", Const, 0, ""}, - {"TCP_RXT_CONNDROPTIME", Const, 0, ""}, - {"TCP_RXT_FINDROP", Const, 0, ""}, - {"TCP_SACK_ENABLE", Const, 1, ""}, - {"TCP_SENDMOREACKS", Const, 16, ""}, - {"TCP_SYNCNT", Const, 0, ""}, - {"TCP_VENDOR", Const, 3, ""}, - {"TCP_WINDOW_CLAMP", Const, 0, ""}, - {"TCSAFLUSH", Const, 1, ""}, - {"TCSETS", Const, 0, ""}, - {"TF_DISCONNECT", Const, 0, ""}, - {"TF_REUSE_SOCKET", Const, 0, ""}, - {"TF_USE_DEFAULT_WORKER", Const, 0, ""}, - {"TF_USE_KERNEL_APC", Const, 0, ""}, - {"TF_USE_SYSTEM_THREAD", Const, 0, ""}, - {"TF_WRITE_BEHIND", Const, 0, ""}, - {"TH32CS_INHERIT", Const, 4, ""}, - {"TH32CS_SNAPALL", Const, 4, ""}, - {"TH32CS_SNAPHEAPLIST", Const, 4, ""}, - {"TH32CS_SNAPMODULE", Const, 4, ""}, - {"TH32CS_SNAPMODULE32", Const, 4, ""}, - {"TH32CS_SNAPPROCESS", Const, 4, ""}, - {"TH32CS_SNAPTHREAD", Const, 4, ""}, - {"TIME_ZONE_ID_DAYLIGHT", Const, 0, ""}, - {"TIME_ZONE_ID_STANDARD", Const, 0, ""}, - {"TIME_ZONE_ID_UNKNOWN", Const, 0, ""}, - {"TIOCCBRK", Const, 0, ""}, - {"TIOCCDTR", Const, 0, ""}, - {"TIOCCONS", Const, 0, ""}, - {"TIOCDCDTIMESTAMP", Const, 0, ""}, - {"TIOCDRAIN", Const, 0, ""}, - {"TIOCDSIMICROCODE", Const, 0, ""}, - {"TIOCEXCL", Const, 0, ""}, - {"TIOCEXT", Const, 0, ""}, - {"TIOCFLAG_CDTRCTS", Const, 1, ""}, - {"TIOCFLAG_CLOCAL", Const, 1, ""}, - {"TIOCFLAG_CRTSCTS", Const, 1, ""}, - {"TIOCFLAG_MDMBUF", Const, 1, ""}, - {"TIOCFLAG_PPS", Const, 1, ""}, - {"TIOCFLAG_SOFTCAR", Const, 1, ""}, - {"TIOCFLUSH", Const, 0, ""}, - {"TIOCGDEV", Const, 0, ""}, - {"TIOCGDRAINWAIT", Const, 0, ""}, - {"TIOCGETA", Const, 0, ""}, - {"TIOCGETD", Const, 0, ""}, - {"TIOCGFLAGS", Const, 1, ""}, - {"TIOCGICOUNT", Const, 0, ""}, - {"TIOCGLCKTRMIOS", Const, 0, ""}, - {"TIOCGLINED", Const, 1, ""}, - {"TIOCGPGRP", Const, 0, ""}, - {"TIOCGPTN", Const, 0, ""}, - {"TIOCGQSIZE", Const, 1, ""}, - {"TIOCGRANTPT", Const, 1, ""}, - {"TIOCGRS485", Const, 0, ""}, - {"TIOCGSERIAL", Const, 0, ""}, - {"TIOCGSID", Const, 0, ""}, - {"TIOCGSIZE", Const, 1, ""}, - {"TIOCGSOFTCAR", Const, 0, ""}, - {"TIOCGTSTAMP", Const, 1, ""}, - {"TIOCGWINSZ", Const, 0, ""}, - {"TIOCINQ", Const, 0, ""}, - {"TIOCIXOFF", Const, 0, ""}, - {"TIOCIXON", Const, 0, ""}, - {"TIOCLINUX", Const, 0, ""}, - {"TIOCMBIC", Const, 0, ""}, - {"TIOCMBIS", Const, 0, ""}, - {"TIOCMGDTRWAIT", Const, 0, ""}, - {"TIOCMGET", Const, 0, ""}, - {"TIOCMIWAIT", Const, 0, ""}, - {"TIOCMODG", Const, 0, ""}, - {"TIOCMODS", Const, 0, ""}, - {"TIOCMSDTRWAIT", Const, 0, ""}, - {"TIOCMSET", Const, 0, ""}, - {"TIOCM_CAR", Const, 0, ""}, - {"TIOCM_CD", Const, 0, ""}, - {"TIOCM_CTS", Const, 0, ""}, - {"TIOCM_DCD", Const, 0, ""}, - {"TIOCM_DSR", Const, 0, ""}, - {"TIOCM_DTR", Const, 0, ""}, - {"TIOCM_LE", Const, 0, ""}, - {"TIOCM_RI", Const, 0, ""}, - {"TIOCM_RNG", Const, 0, ""}, - {"TIOCM_RTS", Const, 0, ""}, - {"TIOCM_SR", Const, 0, ""}, - {"TIOCM_ST", Const, 0, ""}, - {"TIOCNOTTY", Const, 0, ""}, - {"TIOCNXCL", Const, 0, ""}, - {"TIOCOUTQ", Const, 0, ""}, - {"TIOCPKT", Const, 0, ""}, - {"TIOCPKT_DATA", Const, 0, ""}, - {"TIOCPKT_DOSTOP", Const, 0, ""}, - {"TIOCPKT_FLUSHREAD", Const, 0, ""}, - {"TIOCPKT_FLUSHWRITE", Const, 0, ""}, - {"TIOCPKT_IOCTL", Const, 0, ""}, - {"TIOCPKT_NOSTOP", Const, 0, ""}, - {"TIOCPKT_START", Const, 0, ""}, - {"TIOCPKT_STOP", Const, 0, ""}, - {"TIOCPTMASTER", Const, 0, ""}, - {"TIOCPTMGET", Const, 1, ""}, - {"TIOCPTSNAME", Const, 1, ""}, - {"TIOCPTYGNAME", Const, 0, ""}, - {"TIOCPTYGRANT", Const, 0, ""}, - {"TIOCPTYUNLK", Const, 0, ""}, - {"TIOCRCVFRAME", Const, 1, ""}, - {"TIOCREMOTE", Const, 0, ""}, - {"TIOCSBRK", Const, 0, ""}, - {"TIOCSCONS", Const, 0, ""}, - {"TIOCSCTTY", Const, 0, ""}, - {"TIOCSDRAINWAIT", Const, 0, ""}, - {"TIOCSDTR", Const, 0, ""}, - {"TIOCSERCONFIG", Const, 0, ""}, - {"TIOCSERGETLSR", Const, 0, ""}, - {"TIOCSERGETMULTI", Const, 0, ""}, - {"TIOCSERGSTRUCT", Const, 0, ""}, - {"TIOCSERGWILD", Const, 0, ""}, - {"TIOCSERSETMULTI", Const, 0, ""}, - {"TIOCSERSWILD", Const, 0, ""}, - {"TIOCSER_TEMT", Const, 0, ""}, - {"TIOCSETA", Const, 0, ""}, - {"TIOCSETAF", Const, 0, ""}, - {"TIOCSETAW", Const, 0, ""}, - {"TIOCSETD", Const, 0, ""}, - {"TIOCSFLAGS", Const, 1, ""}, - {"TIOCSIG", Const, 0, ""}, - {"TIOCSLCKTRMIOS", Const, 0, ""}, - {"TIOCSLINED", Const, 1, ""}, - {"TIOCSPGRP", Const, 0, ""}, - {"TIOCSPTLCK", Const, 0, ""}, - {"TIOCSQSIZE", Const, 1, ""}, - {"TIOCSRS485", Const, 0, ""}, - {"TIOCSSERIAL", Const, 0, ""}, - {"TIOCSSIZE", Const, 1, ""}, - {"TIOCSSOFTCAR", Const, 0, ""}, - {"TIOCSTART", Const, 0, ""}, - {"TIOCSTAT", Const, 0, ""}, - {"TIOCSTI", Const, 0, ""}, - {"TIOCSTOP", Const, 0, ""}, - {"TIOCSTSTAMP", Const, 1, ""}, - {"TIOCSWINSZ", Const, 0, ""}, - {"TIOCTIMESTAMP", Const, 0, ""}, - {"TIOCUCNTL", Const, 0, ""}, - {"TIOCVHANGUP", Const, 0, ""}, - {"TIOCXMTFRAME", Const, 1, ""}, - {"TOKEN_ADJUST_DEFAULT", Const, 0, ""}, - {"TOKEN_ADJUST_GROUPS", Const, 0, ""}, - {"TOKEN_ADJUST_PRIVILEGES", Const, 0, ""}, - {"TOKEN_ADJUST_SESSIONID", Const, 11, ""}, - {"TOKEN_ALL_ACCESS", Const, 0, ""}, - {"TOKEN_ASSIGN_PRIMARY", Const, 0, ""}, - {"TOKEN_DUPLICATE", Const, 0, ""}, - {"TOKEN_EXECUTE", Const, 0, ""}, - {"TOKEN_IMPERSONATE", Const, 0, ""}, - {"TOKEN_QUERY", Const, 0, ""}, - {"TOKEN_QUERY_SOURCE", Const, 0, ""}, - {"TOKEN_READ", Const, 0, ""}, - {"TOKEN_WRITE", Const, 0, ""}, - {"TOSTOP", Const, 0, ""}, - {"TRUNCATE_EXISTING", Const, 0, ""}, - {"TUNATTACHFILTER", Const, 0, ""}, - {"TUNDETACHFILTER", Const, 0, ""}, - {"TUNGETFEATURES", Const, 0, ""}, - {"TUNGETIFF", Const, 0, ""}, - {"TUNGETSNDBUF", Const, 0, ""}, - {"TUNGETVNETHDRSZ", Const, 0, ""}, - {"TUNSETDEBUG", Const, 0, ""}, - {"TUNSETGROUP", Const, 0, ""}, - {"TUNSETIFF", Const, 0, ""}, - {"TUNSETLINK", Const, 0, ""}, - {"TUNSETNOCSUM", Const, 0, ""}, - {"TUNSETOFFLOAD", Const, 0, ""}, - {"TUNSETOWNER", Const, 0, ""}, - {"TUNSETPERSIST", Const, 0, ""}, - {"TUNSETSNDBUF", Const, 0, ""}, - {"TUNSETTXFILTER", Const, 0, ""}, - {"TUNSETVNETHDRSZ", Const, 0, ""}, - {"Tee", Func, 0, "func(rfd int, wfd int, len int, flags int) (n int64, err error)"}, - {"TerminateProcess", Func, 0, ""}, - {"Termios", Type, 0, ""}, - {"Termios.Cc", Field, 0, ""}, - {"Termios.Cflag", Field, 0, ""}, - {"Termios.Iflag", Field, 0, ""}, - {"Termios.Ispeed", Field, 0, ""}, - {"Termios.Lflag", Field, 0, ""}, - {"Termios.Line", Field, 0, ""}, - {"Termios.Oflag", Field, 0, ""}, - {"Termios.Ospeed", Field, 0, ""}, - {"Termios.Pad_cgo_0", Field, 0, ""}, - {"Tgkill", Func, 0, "func(tgid int, tid int, sig Signal) (err error)"}, - {"Time", Func, 0, "func(t *Time_t) (tt Time_t, err error)"}, - {"Time_t", Type, 0, ""}, - {"Times", Func, 0, "func(tms *Tms) (ticks uintptr, err error)"}, - {"Timespec", Type, 0, ""}, - {"Timespec.Nsec", Field, 0, ""}, - {"Timespec.Pad_cgo_0", Field, 2, ""}, - {"Timespec.Sec", Field, 0, ""}, - {"TimespecToNsec", Func, 0, "func(ts Timespec) int64"}, - {"Timeval", Type, 0, ""}, - {"Timeval.Pad_cgo_0", Field, 0, ""}, - {"Timeval.Sec", Field, 0, ""}, - {"Timeval.Usec", Field, 0, ""}, - {"Timeval32", Type, 0, ""}, - {"Timeval32.Sec", Field, 0, ""}, - {"Timeval32.Usec", Field, 0, ""}, - {"TimevalToNsec", Func, 0, "func(tv Timeval) int64"}, - {"Timex", Type, 0, ""}, - {"Timex.Calcnt", Field, 0, ""}, - {"Timex.Constant", Field, 0, ""}, - {"Timex.Errcnt", Field, 0, ""}, - {"Timex.Esterror", Field, 0, ""}, - {"Timex.Freq", Field, 0, ""}, - {"Timex.Jitcnt", Field, 0, ""}, - {"Timex.Jitter", Field, 0, ""}, - {"Timex.Maxerror", Field, 0, ""}, - {"Timex.Modes", Field, 0, ""}, - {"Timex.Offset", Field, 0, ""}, - {"Timex.Pad_cgo_0", Field, 0, ""}, - {"Timex.Pad_cgo_1", Field, 0, ""}, - {"Timex.Pad_cgo_2", Field, 0, ""}, - {"Timex.Pad_cgo_3", Field, 0, ""}, - {"Timex.Ppsfreq", Field, 0, ""}, - {"Timex.Precision", Field, 0, ""}, - {"Timex.Shift", Field, 0, ""}, - {"Timex.Stabil", Field, 0, ""}, - {"Timex.Status", Field, 0, ""}, - {"Timex.Stbcnt", Field, 0, ""}, - {"Timex.Tai", Field, 0, ""}, - {"Timex.Tick", Field, 0, ""}, - {"Timex.Time", Field, 0, ""}, - {"Timex.Tolerance", Field, 0, ""}, - {"Timezoneinformation", Type, 0, ""}, - {"Timezoneinformation.Bias", Field, 0, ""}, - {"Timezoneinformation.DaylightBias", Field, 0, ""}, - {"Timezoneinformation.DaylightDate", Field, 0, ""}, - {"Timezoneinformation.DaylightName", Field, 0, ""}, - {"Timezoneinformation.StandardBias", Field, 0, ""}, - {"Timezoneinformation.StandardDate", Field, 0, ""}, - {"Timezoneinformation.StandardName", Field, 0, ""}, - {"Tms", Type, 0, ""}, - {"Tms.Cstime", Field, 0, ""}, - {"Tms.Cutime", Field, 0, ""}, - {"Tms.Stime", Field, 0, ""}, - {"Tms.Utime", Field, 0, ""}, - {"Token", Type, 0, ""}, - {"TokenAccessInformation", Const, 0, ""}, - {"TokenAuditPolicy", Const, 0, ""}, - {"TokenDefaultDacl", Const, 0, ""}, - {"TokenElevation", Const, 0, ""}, - {"TokenElevationType", Const, 0, ""}, - {"TokenGroups", Const, 0, ""}, - {"TokenGroupsAndPrivileges", Const, 0, ""}, - {"TokenHasRestrictions", Const, 0, ""}, - {"TokenImpersonationLevel", Const, 0, ""}, - {"TokenIntegrityLevel", Const, 0, ""}, - {"TokenLinkedToken", Const, 0, ""}, - {"TokenLogonSid", Const, 0, ""}, - {"TokenMandatoryPolicy", Const, 0, ""}, - {"TokenOrigin", Const, 0, ""}, - {"TokenOwner", Const, 0, ""}, - {"TokenPrimaryGroup", Const, 0, ""}, - {"TokenPrivileges", Const, 0, ""}, - {"TokenRestrictedSids", Const, 0, ""}, - {"TokenSandBoxInert", Const, 0, ""}, - {"TokenSessionId", Const, 0, ""}, - {"TokenSessionReference", Const, 0, ""}, - {"TokenSource", Const, 0, ""}, - {"TokenStatistics", Const, 0, ""}, - {"TokenType", Const, 0, ""}, - {"TokenUIAccess", Const, 0, ""}, - {"TokenUser", Const, 0, ""}, - {"TokenVirtualizationAllowed", Const, 0, ""}, - {"TokenVirtualizationEnabled", Const, 0, ""}, - {"Tokenprimarygroup", Type, 0, ""}, - {"Tokenprimarygroup.PrimaryGroup", Field, 0, ""}, - {"Tokenuser", Type, 0, ""}, - {"Tokenuser.User", Field, 0, ""}, - {"TranslateAccountName", Func, 0, ""}, - {"TranslateName", Func, 0, ""}, - {"TransmitFile", Func, 0, ""}, - {"TransmitFileBuffers", Type, 0, ""}, - {"TransmitFileBuffers.Head", Field, 0, ""}, - {"TransmitFileBuffers.HeadLength", Field, 0, ""}, - {"TransmitFileBuffers.Tail", Field, 0, ""}, - {"TransmitFileBuffers.TailLength", Field, 0, ""}, - {"Truncate", Func, 0, "func(path string, length int64) (err error)"}, - {"UNIX_PATH_MAX", Const, 12, ""}, - {"USAGE_MATCH_TYPE_AND", Const, 0, ""}, - {"USAGE_MATCH_TYPE_OR", Const, 0, ""}, - {"UTF16FromString", Func, 1, ""}, - {"UTF16PtrFromString", Func, 1, ""}, - {"UTF16ToString", Func, 0, ""}, - {"Ucred", Type, 0, ""}, - {"Ucred.Gid", Field, 0, ""}, - {"Ucred.Pid", Field, 0, ""}, - {"Ucred.Uid", Field, 0, ""}, - {"Umask", Func, 0, "func(mask int) (oldmask int)"}, - {"Uname", Func, 0, "func(buf *Utsname) (err error)"}, - {"Undelete", Func, 0, ""}, - {"UnixCredentials", Func, 0, "func(ucred *Ucred) []byte"}, - {"UnixRights", Func, 0, "func(fds ...int) []byte"}, - {"Unlink", Func, 0, "func(path string) error"}, - {"Unlinkat", Func, 0, "func(dirfd int, path string) error"}, - {"UnmapViewOfFile", Func, 0, ""}, - {"Unmount", Func, 0, "func(target string, flags int) (err error)"}, - {"Unsetenv", Func, 4, "func(key string) error"}, - {"Unshare", Func, 0, "func(flags int) (err error)"}, - {"UserInfo10", Type, 0, ""}, - {"UserInfo10.Comment", Field, 0, ""}, - {"UserInfo10.FullName", Field, 0, ""}, - {"UserInfo10.Name", Field, 0, ""}, - {"UserInfo10.UsrComment", Field, 0, ""}, - {"Ustat", Func, 0, "func(dev int, ubuf *Ustat_t) (err error)"}, - {"Ustat_t", Type, 0, ""}, - {"Ustat_t.Fname", Field, 0, ""}, - {"Ustat_t.Fpack", Field, 0, ""}, - {"Ustat_t.Pad_cgo_0", Field, 0, ""}, - {"Ustat_t.Pad_cgo_1", Field, 0, ""}, - {"Ustat_t.Tfree", Field, 0, ""}, - {"Ustat_t.Tinode", Field, 0, ""}, - {"Utimbuf", Type, 0, ""}, - {"Utimbuf.Actime", Field, 0, ""}, - {"Utimbuf.Modtime", Field, 0, ""}, - {"Utime", Func, 0, "func(path string, buf *Utimbuf) (err error)"}, - {"Utimes", Func, 0, "func(path string, tv []Timeval) (err error)"}, - {"UtimesNano", Func, 1, "func(path string, ts []Timespec) (err error)"}, - {"Utsname", Type, 0, ""}, - {"Utsname.Domainname", Field, 0, ""}, - {"Utsname.Machine", Field, 0, ""}, - {"Utsname.Nodename", Field, 0, ""}, - {"Utsname.Release", Field, 0, ""}, - {"Utsname.Sysname", Field, 0, ""}, - {"Utsname.Version", Field, 0, ""}, - {"VDISCARD", Const, 0, ""}, - {"VDSUSP", Const, 1, ""}, - {"VEOF", Const, 0, ""}, - {"VEOL", Const, 0, ""}, - {"VEOL2", Const, 0, ""}, - {"VERASE", Const, 0, ""}, - {"VERASE2", Const, 1, ""}, - {"VINTR", Const, 0, ""}, - {"VKILL", Const, 0, ""}, - {"VLNEXT", Const, 0, ""}, - {"VMIN", Const, 0, ""}, - {"VQUIT", Const, 0, ""}, - {"VREPRINT", Const, 0, ""}, - {"VSTART", Const, 0, ""}, - {"VSTATUS", Const, 1, ""}, - {"VSTOP", Const, 0, ""}, - {"VSUSP", Const, 0, ""}, - {"VSWTC", Const, 0, ""}, - {"VT0", Const, 1, ""}, - {"VT1", Const, 1, ""}, - {"VTDLY", Const, 1, ""}, - {"VTIME", Const, 0, ""}, - {"VWERASE", Const, 0, ""}, - {"VirtualLock", Func, 0, ""}, - {"VirtualUnlock", Func, 0, ""}, - {"WAIT_ABANDONED", Const, 0, ""}, - {"WAIT_FAILED", Const, 0, ""}, - {"WAIT_OBJECT_0", Const, 0, ""}, - {"WAIT_TIMEOUT", Const, 0, ""}, - {"WALL", Const, 0, ""}, - {"WALLSIG", Const, 1, ""}, - {"WALTSIG", Const, 1, ""}, - {"WCLONE", Const, 0, ""}, - {"WCONTINUED", Const, 0, ""}, - {"WCOREFLAG", Const, 0, ""}, - {"WEXITED", Const, 0, ""}, - {"WLINUXCLONE", Const, 0, ""}, - {"WNOHANG", Const, 0, ""}, - {"WNOTHREAD", Const, 0, ""}, - {"WNOWAIT", Const, 0, ""}, - {"WNOZOMBIE", Const, 1, ""}, - {"WOPTSCHECKED", Const, 1, ""}, - {"WORDSIZE", Const, 0, ""}, - {"WSABuf", Type, 0, ""}, - {"WSABuf.Buf", Field, 0, ""}, - {"WSABuf.Len", Field, 0, ""}, - {"WSACleanup", Func, 0, ""}, - {"WSADESCRIPTION_LEN", Const, 0, ""}, - {"WSAData", Type, 0, ""}, - {"WSAData.Description", Field, 0, ""}, - {"WSAData.HighVersion", Field, 0, ""}, - {"WSAData.MaxSockets", Field, 0, ""}, - {"WSAData.MaxUdpDg", Field, 0, ""}, - {"WSAData.SystemStatus", Field, 0, ""}, - {"WSAData.VendorInfo", Field, 0, ""}, - {"WSAData.Version", Field, 0, ""}, - {"WSAEACCES", Const, 2, ""}, - {"WSAECONNABORTED", Const, 9, ""}, - {"WSAECONNRESET", Const, 3, ""}, - {"WSAENOPROTOOPT", Const, 23, ""}, - {"WSAEnumProtocols", Func, 2, ""}, - {"WSAID_CONNECTEX", Var, 1, ""}, - {"WSAIoctl", Func, 0, ""}, - {"WSAPROTOCOL_LEN", Const, 2, ""}, - {"WSAProtocolChain", Type, 2, ""}, - {"WSAProtocolChain.ChainEntries", Field, 2, ""}, - {"WSAProtocolChain.ChainLen", Field, 2, ""}, - {"WSAProtocolInfo", Type, 2, ""}, - {"WSAProtocolInfo.AddressFamily", Field, 2, ""}, - {"WSAProtocolInfo.CatalogEntryId", Field, 2, ""}, - {"WSAProtocolInfo.MaxSockAddr", Field, 2, ""}, - {"WSAProtocolInfo.MessageSize", Field, 2, ""}, - {"WSAProtocolInfo.MinSockAddr", Field, 2, ""}, - {"WSAProtocolInfo.NetworkByteOrder", Field, 2, ""}, - {"WSAProtocolInfo.Protocol", Field, 2, ""}, - {"WSAProtocolInfo.ProtocolChain", Field, 2, ""}, - {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2, ""}, - {"WSAProtocolInfo.ProtocolName", Field, 2, ""}, - {"WSAProtocolInfo.ProviderFlags", Field, 2, ""}, - {"WSAProtocolInfo.ProviderId", Field, 2, ""}, - {"WSAProtocolInfo.ProviderReserved", Field, 2, ""}, - {"WSAProtocolInfo.SecurityScheme", Field, 2, ""}, - {"WSAProtocolInfo.ServiceFlags1", Field, 2, ""}, - {"WSAProtocolInfo.ServiceFlags2", Field, 2, ""}, - {"WSAProtocolInfo.ServiceFlags3", Field, 2, ""}, - {"WSAProtocolInfo.ServiceFlags4", Field, 2, ""}, - {"WSAProtocolInfo.SocketType", Field, 2, ""}, - {"WSAProtocolInfo.Version", Field, 2, ""}, - {"WSARecv", Func, 0, ""}, - {"WSARecvFrom", Func, 0, ""}, - {"WSASYS_STATUS_LEN", Const, 0, ""}, - {"WSASend", Func, 0, ""}, - {"WSASendTo", Func, 0, ""}, - {"WSASendto", Func, 0, ""}, - {"WSAStartup", Func, 0, ""}, - {"WSTOPPED", Const, 0, ""}, - {"WTRAPPED", Const, 1, ""}, - {"WUNTRACED", Const, 0, ""}, - {"Wait4", Func, 0, "func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error)"}, - {"WaitForSingleObject", Func, 0, ""}, - {"WaitStatus", Type, 0, ""}, - {"WaitStatus.ExitCode", Field, 0, ""}, - {"Win32FileAttributeData", Type, 0, ""}, - {"Win32FileAttributeData.CreationTime", Field, 0, ""}, - {"Win32FileAttributeData.FileAttributes", Field, 0, ""}, - {"Win32FileAttributeData.FileSizeHigh", Field, 0, ""}, - {"Win32FileAttributeData.FileSizeLow", Field, 0, ""}, - {"Win32FileAttributeData.LastAccessTime", Field, 0, ""}, - {"Win32FileAttributeData.LastWriteTime", Field, 0, ""}, - {"Win32finddata", Type, 0, ""}, - {"Win32finddata.AlternateFileName", Field, 0, ""}, - {"Win32finddata.CreationTime", Field, 0, ""}, - {"Win32finddata.FileAttributes", Field, 0, ""}, - {"Win32finddata.FileName", Field, 0, ""}, - {"Win32finddata.FileSizeHigh", Field, 0, ""}, - {"Win32finddata.FileSizeLow", Field, 0, ""}, - {"Win32finddata.LastAccessTime", Field, 0, ""}, - {"Win32finddata.LastWriteTime", Field, 0, ""}, - {"Win32finddata.Reserved0", Field, 0, ""}, - {"Win32finddata.Reserved1", Field, 0, ""}, - {"Write", Func, 0, "func(fd int, p []byte) (n int, err error)"}, - {"WriteConsole", Func, 1, ""}, - {"WriteFile", Func, 0, ""}, - {"X509_ASN_ENCODING", Const, 0, ""}, - {"XCASE", Const, 0, ""}, - {"XP1_CONNECTIONLESS", Const, 2, ""}, - {"XP1_CONNECT_DATA", Const, 2, ""}, - {"XP1_DISCONNECT_DATA", Const, 2, ""}, - {"XP1_EXPEDITED_DATA", Const, 2, ""}, - {"XP1_GRACEFUL_CLOSE", Const, 2, ""}, - {"XP1_GUARANTEED_DELIVERY", Const, 2, ""}, - {"XP1_GUARANTEED_ORDER", Const, 2, ""}, - {"XP1_IFS_HANDLES", Const, 2, ""}, - {"XP1_MESSAGE_ORIENTED", Const, 2, ""}, - {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2, ""}, - {"XP1_MULTIPOINT_DATA_PLANE", Const, 2, ""}, - {"XP1_PARTIAL_MESSAGE", Const, 2, ""}, - {"XP1_PSEUDO_STREAM", Const, 2, ""}, - {"XP1_QOS_SUPPORTED", Const, 2, ""}, - {"XP1_SAN_SUPPORT_SDP", Const, 2, ""}, - {"XP1_SUPPORT_BROADCAST", Const, 2, ""}, - {"XP1_SUPPORT_MULTIPOINT", Const, 2, ""}, - {"XP1_UNI_RECV", Const, 2, ""}, - {"XP1_UNI_SEND", Const, 2, ""}, - }, - "syscall/js": { - {"CopyBytesToGo", Func, 0, ""}, - {"CopyBytesToJS", Func, 0, ""}, - {"Error", Type, 0, ""}, - {"Func", Type, 0, ""}, - {"FuncOf", Func, 0, ""}, - {"Global", Func, 0, ""}, - {"Null", Func, 0, ""}, - {"Type", Type, 0, ""}, - {"TypeBoolean", Const, 0, ""}, - {"TypeFunction", Const, 0, ""}, - {"TypeNull", Const, 0, ""}, - {"TypeNumber", Const, 0, ""}, - {"TypeObject", Const, 0, ""}, - {"TypeString", Const, 0, ""}, - {"TypeSymbol", Const, 0, ""}, - {"TypeUndefined", Const, 0, ""}, - {"Undefined", Func, 0, ""}, - {"Value", Type, 0, ""}, - {"ValueError", Type, 0, ""}, - {"ValueOf", Func, 0, ""}, - }, - "testing": { - {"(*B).Chdir", Method, 24, ""}, - {"(*B).Cleanup", Method, 14, ""}, - {"(*B).Context", Method, 24, ""}, - {"(*B).Elapsed", Method, 20, ""}, - {"(*B).Error", Method, 0, ""}, - {"(*B).Errorf", Method, 0, ""}, - {"(*B).Fail", Method, 0, ""}, - {"(*B).FailNow", Method, 0, ""}, - {"(*B).Failed", Method, 0, ""}, - {"(*B).Fatal", Method, 0, ""}, - {"(*B).Fatalf", Method, 0, ""}, - {"(*B).Helper", Method, 9, ""}, - {"(*B).Log", Method, 0, ""}, - {"(*B).Logf", Method, 0, ""}, - {"(*B).Loop", Method, 24, ""}, - {"(*B).Name", Method, 8, ""}, - {"(*B).ReportAllocs", Method, 1, ""}, - {"(*B).ReportMetric", Method, 13, ""}, - {"(*B).ResetTimer", Method, 0, ""}, - {"(*B).Run", Method, 7, ""}, - {"(*B).RunParallel", Method, 3, ""}, - {"(*B).SetBytes", Method, 0, ""}, - {"(*B).SetParallelism", Method, 3, ""}, - {"(*B).Setenv", Method, 17, ""}, - {"(*B).Skip", Method, 1, ""}, - {"(*B).SkipNow", Method, 1, ""}, - {"(*B).Skipf", Method, 1, ""}, - {"(*B).Skipped", Method, 1, ""}, - {"(*B).StartTimer", Method, 0, ""}, - {"(*B).StopTimer", Method, 0, ""}, - {"(*B).TempDir", Method, 15, ""}, - {"(*F).Add", Method, 18, ""}, - {"(*F).Chdir", Method, 24, ""}, - {"(*F).Cleanup", Method, 18, ""}, - {"(*F).Context", Method, 24, ""}, - {"(*F).Error", Method, 18, ""}, - {"(*F).Errorf", Method, 18, ""}, - {"(*F).Fail", Method, 18, ""}, - {"(*F).FailNow", Method, 18, ""}, - {"(*F).Failed", Method, 18, ""}, - {"(*F).Fatal", Method, 18, ""}, - {"(*F).Fatalf", Method, 18, ""}, - {"(*F).Fuzz", Method, 18, ""}, - {"(*F).Helper", Method, 18, ""}, - {"(*F).Log", Method, 18, ""}, - {"(*F).Logf", Method, 18, ""}, - {"(*F).Name", Method, 18, ""}, - {"(*F).Setenv", Method, 18, ""}, - {"(*F).Skip", Method, 18, ""}, - {"(*F).SkipNow", Method, 18, ""}, - {"(*F).Skipf", Method, 18, ""}, - {"(*F).Skipped", Method, 18, ""}, - {"(*F).TempDir", Method, 18, ""}, - {"(*M).Run", Method, 4, ""}, - {"(*PB).Next", Method, 3, ""}, - {"(*T).Chdir", Method, 24, ""}, - {"(*T).Cleanup", Method, 14, ""}, - {"(*T).Context", Method, 24, ""}, - {"(*T).Deadline", Method, 15, ""}, - {"(*T).Error", Method, 0, ""}, - {"(*T).Errorf", Method, 0, ""}, - {"(*T).Fail", Method, 0, ""}, - {"(*T).FailNow", Method, 0, ""}, - {"(*T).Failed", Method, 0, ""}, - {"(*T).Fatal", Method, 0, ""}, - {"(*T).Fatalf", Method, 0, ""}, - {"(*T).Helper", Method, 9, ""}, - {"(*T).Log", Method, 0, ""}, - {"(*T).Logf", Method, 0, ""}, - {"(*T).Name", Method, 8, ""}, - {"(*T).Parallel", Method, 0, ""}, - {"(*T).Run", Method, 7, ""}, - {"(*T).Setenv", Method, 17, ""}, - {"(*T).Skip", Method, 1, ""}, - {"(*T).SkipNow", Method, 1, ""}, - {"(*T).Skipf", Method, 1, ""}, - {"(*T).Skipped", Method, 1, ""}, - {"(*T).TempDir", Method, 15, ""}, - {"(BenchmarkResult).AllocedBytesPerOp", Method, 1, ""}, - {"(BenchmarkResult).AllocsPerOp", Method, 1, ""}, - {"(BenchmarkResult).MemString", Method, 1, ""}, - {"(BenchmarkResult).NsPerOp", Method, 0, ""}, - {"(BenchmarkResult).String", Method, 0, ""}, - {"AllocsPerRun", Func, 1, "func(runs int, f func()) (avg float64)"}, - {"B", Type, 0, ""}, - {"B.N", Field, 0, ""}, - {"Benchmark", Func, 0, "func(f func(b *B)) BenchmarkResult"}, - {"BenchmarkResult", Type, 0, ""}, - {"BenchmarkResult.Bytes", Field, 0, ""}, - {"BenchmarkResult.Extra", Field, 13, ""}, - {"BenchmarkResult.MemAllocs", Field, 1, ""}, - {"BenchmarkResult.MemBytes", Field, 1, ""}, - {"BenchmarkResult.N", Field, 0, ""}, - {"BenchmarkResult.T", Field, 0, ""}, - {"Cover", Type, 2, ""}, - {"Cover.Blocks", Field, 2, ""}, - {"Cover.Counters", Field, 2, ""}, - {"Cover.CoveredPackages", Field, 2, ""}, - {"Cover.Mode", Field, 2, ""}, - {"CoverBlock", Type, 2, ""}, - {"CoverBlock.Col0", Field, 2, ""}, - {"CoverBlock.Col1", Field, 2, ""}, - {"CoverBlock.Line0", Field, 2, ""}, - {"CoverBlock.Line1", Field, 2, ""}, - {"CoverBlock.Stmts", Field, 2, ""}, - {"CoverMode", Func, 8, "func() string"}, - {"Coverage", Func, 4, "func() float64"}, - {"F", Type, 18, ""}, - {"Init", Func, 13, "func()"}, - {"InternalBenchmark", Type, 0, ""}, - {"InternalBenchmark.F", Field, 0, ""}, - {"InternalBenchmark.Name", Field, 0, ""}, - {"InternalExample", Type, 0, ""}, - {"InternalExample.F", Field, 0, ""}, - {"InternalExample.Name", Field, 0, ""}, - {"InternalExample.Output", Field, 0, ""}, - {"InternalExample.Unordered", Field, 7, ""}, - {"InternalFuzzTarget", Type, 18, ""}, - {"InternalFuzzTarget.Fn", Field, 18, ""}, - {"InternalFuzzTarget.Name", Field, 18, ""}, - {"InternalTest", Type, 0, ""}, - {"InternalTest.F", Field, 0, ""}, - {"InternalTest.Name", Field, 0, ""}, - {"M", Type, 4, ""}, - {"Main", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest, benchmarks []InternalBenchmark, examples []InternalExample)"}, - {"MainStart", Func, 4, "func(deps testDeps, tests []InternalTest, benchmarks []InternalBenchmark, fuzzTargets []InternalFuzzTarget, examples []InternalExample) *M"}, - {"PB", Type, 3, ""}, - {"RegisterCover", Func, 2, "func(c Cover)"}, - {"RunBenchmarks", Func, 0, "func(matchString func(pat string, str string) (bool, error), benchmarks []InternalBenchmark)"}, - {"RunExamples", Func, 0, "func(matchString func(pat string, str string) (bool, error), examples []InternalExample) (ok bool)"}, - {"RunTests", Func, 0, "func(matchString func(pat string, str string) (bool, error), tests []InternalTest) (ok bool)"}, - {"Short", Func, 0, "func() bool"}, - {"T", Type, 0, ""}, - {"TB", Type, 2, ""}, - {"Testing", Func, 21, "func() bool"}, - {"Verbose", Func, 1, "func() bool"}, - }, - "testing/fstest": { - {"(MapFS).Glob", Method, 16, ""}, - {"(MapFS).Lstat", Method, 25, ""}, - {"(MapFS).Open", Method, 16, ""}, - {"(MapFS).ReadDir", Method, 16, ""}, - {"(MapFS).ReadFile", Method, 16, ""}, - {"(MapFS).ReadLink", Method, 25, ""}, - {"(MapFS).Stat", Method, 16, ""}, - {"(MapFS).Sub", Method, 16, ""}, - {"MapFS", Type, 16, ""}, - {"MapFile", Type, 16, ""}, - {"MapFile.Data", Field, 16, ""}, - {"MapFile.ModTime", Field, 16, ""}, - {"MapFile.Mode", Field, 16, ""}, - {"MapFile.Sys", Field, 16, ""}, - {"TestFS", Func, 16, "func(fsys fs.FS, expected ...string) error"}, - }, - "testing/iotest": { - {"DataErrReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"ErrReader", Func, 16, "func(err error) io.Reader"}, - {"ErrTimeout", Var, 0, ""}, - {"HalfReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"NewReadLogger", Func, 0, "func(prefix string, r io.Reader) io.Reader"}, - {"NewWriteLogger", Func, 0, "func(prefix string, w io.Writer) io.Writer"}, - {"OneByteReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"TestReader", Func, 16, "func(r io.Reader, content []byte) error"}, - {"TimeoutReader", Func, 0, "func(r io.Reader) io.Reader"}, - {"TruncateWriter", Func, 0, "func(w io.Writer, n int64) io.Writer"}, - }, - "testing/quick": { - {"(*CheckEqualError).Error", Method, 0, ""}, - {"(*CheckError).Error", Method, 0, ""}, - {"(SetupError).Error", Method, 0, ""}, - {"Check", Func, 0, "func(f any, config *Config) error"}, - {"CheckEqual", Func, 0, "func(f any, g any, config *Config) error"}, - {"CheckEqualError", Type, 0, ""}, - {"CheckEqualError.CheckError", Field, 0, ""}, - {"CheckEqualError.Out1", Field, 0, ""}, - {"CheckEqualError.Out2", Field, 0, ""}, - {"CheckError", Type, 0, ""}, - {"CheckError.Count", Field, 0, ""}, - {"CheckError.In", Field, 0, ""}, - {"Config", Type, 0, ""}, - {"Config.MaxCount", Field, 0, ""}, - {"Config.MaxCountScale", Field, 0, ""}, - {"Config.Rand", Field, 0, ""}, - {"Config.Values", Field, 0, ""}, - {"Generator", Type, 0, ""}, - {"SetupError", Type, 0, ""}, - {"Value", Func, 0, "func(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)"}, - }, - "testing/slogtest": { - {"Run", Func, 22, "func(t *testing.T, newHandler func(*testing.T) slog.Handler, result func(*testing.T) map[string]any)"}, - {"TestHandler", Func, 21, "func(h slog.Handler, results func() []map[string]any) error"}, - }, - "text/scanner": { - {"(*Position).IsValid", Method, 0, ""}, - {"(*Scanner).Init", Method, 0, ""}, - {"(*Scanner).IsValid", Method, 0, ""}, - {"(*Scanner).Next", Method, 0, ""}, - {"(*Scanner).Peek", Method, 0, ""}, - {"(*Scanner).Pos", Method, 0, ""}, - {"(*Scanner).Scan", Method, 0, ""}, - {"(*Scanner).TokenText", Method, 0, ""}, - {"(Position).String", Method, 0, ""}, - {"(Scanner).String", Method, 0, ""}, - {"Char", Const, 0, ""}, - {"Comment", Const, 0, ""}, - {"EOF", Const, 0, ""}, - {"Float", Const, 0, ""}, - {"GoTokens", Const, 0, ""}, - {"GoWhitespace", Const, 0, ""}, - {"Ident", Const, 0, ""}, - {"Int", Const, 0, ""}, - {"Position", Type, 0, ""}, - {"Position.Column", Field, 0, ""}, - {"Position.Filename", Field, 0, ""}, - {"Position.Line", Field, 0, ""}, - {"Position.Offset", Field, 0, ""}, - {"RawString", Const, 0, ""}, - {"ScanChars", Const, 0, ""}, - {"ScanComments", Const, 0, ""}, - {"ScanFloats", Const, 0, ""}, - {"ScanIdents", Const, 0, ""}, - {"ScanInts", Const, 0, ""}, - {"ScanRawStrings", Const, 0, ""}, - {"ScanStrings", Const, 0, ""}, - {"Scanner", Type, 0, ""}, - {"Scanner.Error", Field, 0, ""}, - {"Scanner.ErrorCount", Field, 0, ""}, - {"Scanner.IsIdentRune", Field, 4, ""}, - {"Scanner.Mode", Field, 0, ""}, - {"Scanner.Position", Field, 0, ""}, - {"Scanner.Whitespace", Field, 0, ""}, - {"SkipComments", Const, 0, ""}, - {"String", Const, 0, ""}, - {"TokenString", Func, 0, "func(tok rune) string"}, - }, - "text/tabwriter": { - {"(*Writer).Flush", Method, 0, ""}, - {"(*Writer).Init", Method, 0, ""}, - {"(*Writer).Write", Method, 0, ""}, - {"AlignRight", Const, 0, ""}, - {"Debug", Const, 0, ""}, - {"DiscardEmptyColumns", Const, 0, ""}, - {"Escape", Const, 0, ""}, - {"FilterHTML", Const, 0, ""}, - {"NewWriter", Func, 0, "func(output io.Writer, minwidth int, tabwidth int, padding int, padchar byte, flags uint) *Writer"}, - {"StripEscape", Const, 0, ""}, - {"TabIndent", Const, 0, ""}, - {"Writer", Type, 0, ""}, - }, - "text/template": { - {"(*Template).AddParseTree", Method, 0, ""}, - {"(*Template).Clone", Method, 0, ""}, - {"(*Template).DefinedTemplates", Method, 5, ""}, - {"(*Template).Delims", Method, 0, ""}, - {"(*Template).Execute", Method, 0, ""}, - {"(*Template).ExecuteTemplate", Method, 0, ""}, - {"(*Template).Funcs", Method, 0, ""}, - {"(*Template).Lookup", Method, 0, ""}, - {"(*Template).Name", Method, 0, ""}, - {"(*Template).New", Method, 0, ""}, - {"(*Template).Option", Method, 5, ""}, - {"(*Template).Parse", Method, 0, ""}, - {"(*Template).ParseFS", Method, 16, ""}, - {"(*Template).ParseFiles", Method, 0, ""}, - {"(*Template).ParseGlob", Method, 0, ""}, - {"(*Template).Templates", Method, 0, ""}, - {"(ExecError).Error", Method, 6, ""}, - {"(ExecError).Unwrap", Method, 13, ""}, - {"(Template).Copy", Method, 2, ""}, - {"(Template).ErrorContext", Method, 1, ""}, - {"ExecError", Type, 6, ""}, - {"ExecError.Err", Field, 6, ""}, - {"ExecError.Name", Field, 6, ""}, - {"FuncMap", Type, 0, ""}, - {"HTMLEscape", Func, 0, "func(w io.Writer, b []byte)"}, - {"HTMLEscapeString", Func, 0, "func(s string) string"}, - {"HTMLEscaper", Func, 0, "func(args ...any) string"}, - {"IsTrue", Func, 6, "func(val any) (truth bool, ok bool)"}, - {"JSEscape", Func, 0, "func(w io.Writer, b []byte)"}, - {"JSEscapeString", Func, 0, "func(s string) string"}, - {"JSEscaper", Func, 0, "func(args ...any) string"}, - {"Must", Func, 0, "func(t *Template, err error) *Template"}, - {"New", Func, 0, "func(name string) *Template"}, - {"ParseFS", Func, 16, "func(fsys fs.FS, patterns ...string) (*Template, error)"}, - {"ParseFiles", Func, 0, "func(filenames ...string) (*Template, error)"}, - {"ParseGlob", Func, 0, "func(pattern string) (*Template, error)"}, - {"Template", Type, 0, ""}, - {"Template.Tree", Field, 0, ""}, - {"URLQueryEscaper", Func, 0, "func(args ...any) string"}, - }, - "text/template/parse": { - {"(*ActionNode).Copy", Method, 0, ""}, - {"(*ActionNode).String", Method, 0, ""}, - {"(*BoolNode).Copy", Method, 0, ""}, - {"(*BoolNode).String", Method, 0, ""}, - {"(*BranchNode).Copy", Method, 4, ""}, - {"(*BranchNode).String", Method, 0, ""}, - {"(*BreakNode).Copy", Method, 18, ""}, - {"(*BreakNode).String", Method, 18, ""}, - {"(*ChainNode).Add", Method, 1, ""}, - {"(*ChainNode).Copy", Method, 1, ""}, - {"(*ChainNode).String", Method, 1, ""}, - {"(*CommandNode).Copy", Method, 0, ""}, - {"(*CommandNode).String", Method, 0, ""}, - {"(*CommentNode).Copy", Method, 16, ""}, - {"(*CommentNode).String", Method, 16, ""}, - {"(*ContinueNode).Copy", Method, 18, ""}, - {"(*ContinueNode).String", Method, 18, ""}, - {"(*DotNode).Copy", Method, 0, ""}, - {"(*DotNode).String", Method, 0, ""}, - {"(*DotNode).Type", Method, 0, ""}, - {"(*FieldNode).Copy", Method, 0, ""}, - {"(*FieldNode).String", Method, 0, ""}, - {"(*IdentifierNode).Copy", Method, 0, ""}, - {"(*IdentifierNode).SetPos", Method, 1, ""}, - {"(*IdentifierNode).SetTree", Method, 4, ""}, - {"(*IdentifierNode).String", Method, 0, ""}, - {"(*IfNode).Copy", Method, 0, ""}, - {"(*IfNode).String", Method, 0, ""}, - {"(*ListNode).Copy", Method, 0, ""}, - {"(*ListNode).CopyList", Method, 0, ""}, - {"(*ListNode).String", Method, 0, ""}, - {"(*NilNode).Copy", Method, 1, ""}, - {"(*NilNode).String", Method, 1, ""}, - {"(*NilNode).Type", Method, 1, ""}, - {"(*NumberNode).Copy", Method, 0, ""}, - {"(*NumberNode).String", Method, 0, ""}, - {"(*PipeNode).Copy", Method, 0, ""}, - {"(*PipeNode).CopyPipe", Method, 0, ""}, - {"(*PipeNode).String", Method, 0, ""}, - {"(*RangeNode).Copy", Method, 0, ""}, - {"(*RangeNode).String", Method, 0, ""}, - {"(*StringNode).Copy", Method, 0, ""}, - {"(*StringNode).String", Method, 0, ""}, - {"(*TemplateNode).Copy", Method, 0, ""}, - {"(*TemplateNode).String", Method, 0, ""}, - {"(*TextNode).Copy", Method, 0, ""}, - {"(*TextNode).String", Method, 0, ""}, - {"(*Tree).Copy", Method, 2, ""}, - {"(*Tree).ErrorContext", Method, 1, ""}, - {"(*Tree).Parse", Method, 0, ""}, - {"(*VariableNode).Copy", Method, 0, ""}, - {"(*VariableNode).String", Method, 0, ""}, - {"(*WithNode).Copy", Method, 0, ""}, - {"(*WithNode).String", Method, 0, ""}, - {"(ActionNode).Position", Method, 1, ""}, - {"(ActionNode).Type", Method, 0, ""}, - {"(BoolNode).Position", Method, 1, ""}, - {"(BoolNode).Type", Method, 0, ""}, - {"(BranchNode).Position", Method, 1, ""}, - {"(BranchNode).Type", Method, 0, ""}, - {"(BreakNode).Position", Method, 18, ""}, - {"(BreakNode).Type", Method, 18, ""}, - {"(ChainNode).Position", Method, 1, ""}, - {"(ChainNode).Type", Method, 1, ""}, - {"(CommandNode).Position", Method, 1, ""}, - {"(CommandNode).Type", Method, 0, ""}, - {"(CommentNode).Position", Method, 16, ""}, - {"(CommentNode).Type", Method, 16, ""}, - {"(ContinueNode).Position", Method, 18, ""}, - {"(ContinueNode).Type", Method, 18, ""}, - {"(DotNode).Position", Method, 1, ""}, - {"(FieldNode).Position", Method, 1, ""}, - {"(FieldNode).Type", Method, 0, ""}, - {"(IdentifierNode).Position", Method, 1, ""}, - {"(IdentifierNode).Type", Method, 0, ""}, - {"(IfNode).Position", Method, 1, ""}, - {"(IfNode).Type", Method, 0, ""}, - {"(ListNode).Position", Method, 1, ""}, - {"(ListNode).Type", Method, 0, ""}, - {"(NilNode).Position", Method, 1, ""}, - {"(NodeType).Type", Method, 0, ""}, - {"(NumberNode).Position", Method, 1, ""}, - {"(NumberNode).Type", Method, 0, ""}, - {"(PipeNode).Position", Method, 1, ""}, - {"(PipeNode).Type", Method, 0, ""}, - {"(Pos).Position", Method, 1, ""}, - {"(RangeNode).Position", Method, 1, ""}, - {"(RangeNode).Type", Method, 0, ""}, - {"(StringNode).Position", Method, 1, ""}, - {"(StringNode).Type", Method, 0, ""}, - {"(TemplateNode).Position", Method, 1, ""}, - {"(TemplateNode).Type", Method, 0, ""}, - {"(TextNode).Position", Method, 1, ""}, - {"(TextNode).Type", Method, 0, ""}, - {"(VariableNode).Position", Method, 1, ""}, - {"(VariableNode).Type", Method, 0, ""}, - {"(WithNode).Position", Method, 1, ""}, - {"(WithNode).Type", Method, 0, ""}, - {"ActionNode", Type, 0, ""}, - {"ActionNode.Line", Field, 0, ""}, - {"ActionNode.NodeType", Field, 0, ""}, - {"ActionNode.Pipe", Field, 0, ""}, - {"ActionNode.Pos", Field, 1, ""}, - {"BoolNode", Type, 0, ""}, - {"BoolNode.NodeType", Field, 0, ""}, - {"BoolNode.Pos", Field, 1, ""}, - {"BoolNode.True", Field, 0, ""}, - {"BranchNode", Type, 0, ""}, - {"BranchNode.ElseList", Field, 0, ""}, - {"BranchNode.Line", Field, 0, ""}, - {"BranchNode.List", Field, 0, ""}, - {"BranchNode.NodeType", Field, 0, ""}, - {"BranchNode.Pipe", Field, 0, ""}, - {"BranchNode.Pos", Field, 1, ""}, - {"BreakNode", Type, 18, ""}, - {"BreakNode.Line", Field, 18, ""}, - {"BreakNode.NodeType", Field, 18, ""}, - {"BreakNode.Pos", Field, 18, ""}, - {"ChainNode", Type, 1, ""}, - {"ChainNode.Field", Field, 1, ""}, - {"ChainNode.Node", Field, 1, ""}, - {"ChainNode.NodeType", Field, 1, ""}, - {"ChainNode.Pos", Field, 1, ""}, - {"CommandNode", Type, 0, ""}, - {"CommandNode.Args", Field, 0, ""}, - {"CommandNode.NodeType", Field, 0, ""}, - {"CommandNode.Pos", Field, 1, ""}, - {"CommentNode", Type, 16, ""}, - {"CommentNode.NodeType", Field, 16, ""}, - {"CommentNode.Pos", Field, 16, ""}, - {"CommentNode.Text", Field, 16, ""}, - {"ContinueNode", Type, 18, ""}, - {"ContinueNode.Line", Field, 18, ""}, - {"ContinueNode.NodeType", Field, 18, ""}, - {"ContinueNode.Pos", Field, 18, ""}, - {"DotNode", Type, 0, ""}, - {"DotNode.NodeType", Field, 4, ""}, - {"DotNode.Pos", Field, 1, ""}, - {"FieldNode", Type, 0, ""}, - {"FieldNode.Ident", Field, 0, ""}, - {"FieldNode.NodeType", Field, 0, ""}, - {"FieldNode.Pos", Field, 1, ""}, - {"IdentifierNode", Type, 0, ""}, - {"IdentifierNode.Ident", Field, 0, ""}, - {"IdentifierNode.NodeType", Field, 0, ""}, - {"IdentifierNode.Pos", Field, 1, ""}, - {"IfNode", Type, 0, ""}, - {"IfNode.BranchNode", Field, 0, ""}, - {"IsEmptyTree", Func, 0, "func(n Node) bool"}, - {"ListNode", Type, 0, ""}, - {"ListNode.NodeType", Field, 0, ""}, - {"ListNode.Nodes", Field, 0, ""}, - {"ListNode.Pos", Field, 1, ""}, - {"Mode", Type, 16, ""}, - {"New", Func, 0, "func(name string, funcs ...map[string]any) *Tree"}, - {"NewIdentifier", Func, 0, "func(ident string) *IdentifierNode"}, - {"NilNode", Type, 1, ""}, - {"NilNode.NodeType", Field, 4, ""}, - {"NilNode.Pos", Field, 1, ""}, - {"Node", Type, 0, ""}, - {"NodeAction", Const, 0, ""}, - {"NodeBool", Const, 0, ""}, - {"NodeBreak", Const, 18, ""}, - {"NodeChain", Const, 1, ""}, - {"NodeCommand", Const, 0, ""}, - {"NodeComment", Const, 16, ""}, - {"NodeContinue", Const, 18, ""}, - {"NodeDot", Const, 0, ""}, - {"NodeField", Const, 0, ""}, - {"NodeIdentifier", Const, 0, ""}, - {"NodeIf", Const, 0, ""}, - {"NodeList", Const, 0, ""}, - {"NodeNil", Const, 1, ""}, - {"NodeNumber", Const, 0, ""}, - {"NodePipe", Const, 0, ""}, - {"NodeRange", Const, 0, ""}, - {"NodeString", Const, 0, ""}, - {"NodeTemplate", Const, 0, ""}, - {"NodeText", Const, 0, ""}, - {"NodeType", Type, 0, ""}, - {"NodeVariable", Const, 0, ""}, - {"NodeWith", Const, 0, ""}, - {"NumberNode", Type, 0, ""}, - {"NumberNode.Complex128", Field, 0, ""}, - {"NumberNode.Float64", Field, 0, ""}, - {"NumberNode.Int64", Field, 0, ""}, - {"NumberNode.IsComplex", Field, 0, ""}, - {"NumberNode.IsFloat", Field, 0, ""}, - {"NumberNode.IsInt", Field, 0, ""}, - {"NumberNode.IsUint", Field, 0, ""}, - {"NumberNode.NodeType", Field, 0, ""}, - {"NumberNode.Pos", Field, 1, ""}, - {"NumberNode.Text", Field, 0, ""}, - {"NumberNode.Uint64", Field, 0, ""}, - {"Parse", Func, 0, "func(name string, text string, leftDelim string, rightDelim string, funcs ...map[string]any) (map[string]*Tree, error)"}, - {"ParseComments", Const, 16, ""}, - {"PipeNode", Type, 0, ""}, - {"PipeNode.Cmds", Field, 0, ""}, - {"PipeNode.Decl", Field, 0, ""}, - {"PipeNode.IsAssign", Field, 11, ""}, - {"PipeNode.Line", Field, 0, ""}, - {"PipeNode.NodeType", Field, 0, ""}, - {"PipeNode.Pos", Field, 1, ""}, - {"Pos", Type, 1, ""}, - {"RangeNode", Type, 0, ""}, - {"RangeNode.BranchNode", Field, 0, ""}, - {"SkipFuncCheck", Const, 17, ""}, - {"StringNode", Type, 0, ""}, - {"StringNode.NodeType", Field, 0, ""}, - {"StringNode.Pos", Field, 1, ""}, - {"StringNode.Quoted", Field, 0, ""}, - {"StringNode.Text", Field, 0, ""}, - {"TemplateNode", Type, 0, ""}, - {"TemplateNode.Line", Field, 0, ""}, - {"TemplateNode.Name", Field, 0, ""}, - {"TemplateNode.NodeType", Field, 0, ""}, - {"TemplateNode.Pipe", Field, 0, ""}, - {"TemplateNode.Pos", Field, 1, ""}, - {"TextNode", Type, 0, ""}, - {"TextNode.NodeType", Field, 0, ""}, - {"TextNode.Pos", Field, 1, ""}, - {"TextNode.Text", Field, 0, ""}, - {"Tree", Type, 0, ""}, - {"Tree.Mode", Field, 16, ""}, - {"Tree.Name", Field, 0, ""}, - {"Tree.ParseName", Field, 1, ""}, - {"Tree.Root", Field, 0, ""}, - {"VariableNode", Type, 0, ""}, - {"VariableNode.Ident", Field, 0, ""}, - {"VariableNode.NodeType", Field, 0, ""}, - {"VariableNode.Pos", Field, 1, ""}, - {"WithNode", Type, 0, ""}, - {"WithNode.BranchNode", Field, 0, ""}, - }, - "time": { - {"(*Location).String", Method, 0, ""}, - {"(*ParseError).Error", Method, 0, ""}, - {"(*Ticker).Reset", Method, 15, ""}, - {"(*Ticker).Stop", Method, 0, ""}, - {"(*Time).GobDecode", Method, 0, ""}, - {"(*Time).UnmarshalBinary", Method, 2, ""}, - {"(*Time).UnmarshalJSON", Method, 0, ""}, - {"(*Time).UnmarshalText", Method, 2, ""}, - {"(*Timer).Reset", Method, 1, ""}, - {"(*Timer).Stop", Method, 0, ""}, - {"(Duration).Abs", Method, 19, ""}, - {"(Duration).Hours", Method, 0, ""}, - {"(Duration).Microseconds", Method, 13, ""}, - {"(Duration).Milliseconds", Method, 13, ""}, - {"(Duration).Minutes", Method, 0, ""}, - {"(Duration).Nanoseconds", Method, 0, ""}, - {"(Duration).Round", Method, 9, ""}, - {"(Duration).Seconds", Method, 0, ""}, - {"(Duration).String", Method, 0, ""}, - {"(Duration).Truncate", Method, 9, ""}, - {"(Month).String", Method, 0, ""}, - {"(Time).Add", Method, 0, ""}, - {"(Time).AddDate", Method, 0, ""}, - {"(Time).After", Method, 0, ""}, - {"(Time).AppendBinary", Method, 24, ""}, - {"(Time).AppendFormat", Method, 5, ""}, - {"(Time).AppendText", Method, 24, ""}, - {"(Time).Before", Method, 0, ""}, - {"(Time).Clock", Method, 0, ""}, - {"(Time).Compare", Method, 20, ""}, - {"(Time).Date", Method, 0, ""}, - {"(Time).Day", Method, 0, ""}, - {"(Time).Equal", Method, 0, ""}, - {"(Time).Format", Method, 0, ""}, - {"(Time).GoString", Method, 17, ""}, - {"(Time).GobEncode", Method, 0, ""}, - {"(Time).Hour", Method, 0, ""}, - {"(Time).ISOWeek", Method, 0, ""}, - {"(Time).In", Method, 0, ""}, - {"(Time).IsDST", Method, 17, ""}, - {"(Time).IsZero", Method, 0, ""}, - {"(Time).Local", Method, 0, ""}, - {"(Time).Location", Method, 0, ""}, - {"(Time).MarshalBinary", Method, 2, ""}, - {"(Time).MarshalJSON", Method, 0, ""}, - {"(Time).MarshalText", Method, 2, ""}, - {"(Time).Minute", Method, 0, ""}, - {"(Time).Month", Method, 0, ""}, - {"(Time).Nanosecond", Method, 0, ""}, - {"(Time).Round", Method, 1, ""}, - {"(Time).Second", Method, 0, ""}, - {"(Time).String", Method, 0, ""}, - {"(Time).Sub", Method, 0, ""}, - {"(Time).Truncate", Method, 1, ""}, - {"(Time).UTC", Method, 0, ""}, - {"(Time).Unix", Method, 0, ""}, - {"(Time).UnixMicro", Method, 17, ""}, - {"(Time).UnixMilli", Method, 17, ""}, - {"(Time).UnixNano", Method, 0, ""}, - {"(Time).Weekday", Method, 0, ""}, - {"(Time).Year", Method, 0, ""}, - {"(Time).YearDay", Method, 1, ""}, - {"(Time).Zone", Method, 0, ""}, - {"(Time).ZoneBounds", Method, 19, ""}, - {"(Weekday).String", Method, 0, ""}, - {"ANSIC", Const, 0, ""}, - {"After", Func, 0, "func(d Duration) <-chan Time"}, - {"AfterFunc", Func, 0, "func(d Duration, f func()) *Timer"}, - {"April", Const, 0, ""}, - {"August", Const, 0, ""}, - {"Date", Func, 0, "func(year int, month Month, day int, hour int, min int, sec int, nsec int, loc *Location) Time"}, - {"DateOnly", Const, 20, ""}, - {"DateTime", Const, 20, ""}, - {"December", Const, 0, ""}, - {"Duration", Type, 0, ""}, - {"February", Const, 0, ""}, - {"FixedZone", Func, 0, "func(name string, offset int) *Location"}, - {"Friday", Const, 0, ""}, - {"Hour", Const, 0, ""}, - {"January", Const, 0, ""}, - {"July", Const, 0, ""}, - {"June", Const, 0, ""}, - {"Kitchen", Const, 0, ""}, - {"Layout", Const, 17, ""}, - {"LoadLocation", Func, 0, "func(name string) (*Location, error)"}, - {"LoadLocationFromTZData", Func, 10, "func(name string, data []byte) (*Location, error)"}, - {"Local", Var, 0, ""}, - {"Location", Type, 0, ""}, - {"March", Const, 0, ""}, - {"May", Const, 0, ""}, - {"Microsecond", Const, 0, ""}, - {"Millisecond", Const, 0, ""}, - {"Minute", Const, 0, ""}, - {"Monday", Const, 0, ""}, - {"Month", Type, 0, ""}, - {"Nanosecond", Const, 0, ""}, - {"NewTicker", Func, 0, "func(d Duration) *Ticker"}, - {"NewTimer", Func, 0, "func(d Duration) *Timer"}, - {"November", Const, 0, ""}, - {"Now", Func, 0, "func() Time"}, - {"October", Const, 0, ""}, - {"Parse", Func, 0, "func(layout string, value string) (Time, error)"}, - {"ParseDuration", Func, 0, "func(s string) (Duration, error)"}, - {"ParseError", Type, 0, ""}, - {"ParseError.Layout", Field, 0, ""}, - {"ParseError.LayoutElem", Field, 0, ""}, - {"ParseError.Message", Field, 0, ""}, - {"ParseError.Value", Field, 0, ""}, - {"ParseError.ValueElem", Field, 0, ""}, - {"ParseInLocation", Func, 1, "func(layout string, value string, loc *Location) (Time, error)"}, - {"RFC1123", Const, 0, ""}, - {"RFC1123Z", Const, 0, ""}, - {"RFC3339", Const, 0, ""}, - {"RFC3339Nano", Const, 0, ""}, - {"RFC822", Const, 0, ""}, - {"RFC822Z", Const, 0, ""}, - {"RFC850", Const, 0, ""}, - {"RubyDate", Const, 0, ""}, - {"Saturday", Const, 0, ""}, - {"Second", Const, 0, ""}, - {"September", Const, 0, ""}, - {"Since", Func, 0, "func(t Time) Duration"}, - {"Sleep", Func, 0, "func(d Duration)"}, - {"Stamp", Const, 0, ""}, - {"StampMicro", Const, 0, ""}, - {"StampMilli", Const, 0, ""}, - {"StampNano", Const, 0, ""}, - {"Sunday", Const, 0, ""}, - {"Thursday", Const, 0, ""}, - {"Tick", Func, 0, "func(d Duration) <-chan Time"}, - {"Ticker", Type, 0, ""}, - {"Ticker.C", Field, 0, ""}, - {"Time", Type, 0, ""}, - {"TimeOnly", Const, 20, ""}, - {"Timer", Type, 0, ""}, - {"Timer.C", Field, 0, ""}, - {"Tuesday", Const, 0, ""}, - {"UTC", Var, 0, ""}, - {"Unix", Func, 0, "func(sec int64, nsec int64) Time"}, - {"UnixDate", Const, 0, ""}, - {"UnixMicro", Func, 17, "func(usec int64) Time"}, - {"UnixMilli", Func, 17, "func(msec int64) Time"}, - {"Until", Func, 8, "func(t Time) Duration"}, - {"Wednesday", Const, 0, ""}, - {"Weekday", Type, 0, ""}, - }, - "unicode": { - {"(SpecialCase).ToLower", Method, 0, ""}, - {"(SpecialCase).ToTitle", Method, 0, ""}, - {"(SpecialCase).ToUpper", Method, 0, ""}, - {"ASCII_Hex_Digit", Var, 0, ""}, - {"Adlam", Var, 7, ""}, - {"Ahom", Var, 5, ""}, - {"Anatolian_Hieroglyphs", Var, 5, ""}, - {"Arabic", Var, 0, ""}, - {"Armenian", Var, 0, ""}, - {"Avestan", Var, 0, ""}, - {"AzeriCase", Var, 0, ""}, - {"Balinese", Var, 0, ""}, - {"Bamum", Var, 0, ""}, - {"Bassa_Vah", Var, 4, ""}, - {"Batak", Var, 0, ""}, - {"Bengali", Var, 0, ""}, - {"Bhaiksuki", Var, 7, ""}, - {"Bidi_Control", Var, 0, ""}, - {"Bopomofo", Var, 0, ""}, - {"Brahmi", Var, 0, ""}, - {"Braille", Var, 0, ""}, - {"Buginese", Var, 0, ""}, - {"Buhid", Var, 0, ""}, - {"C", Var, 0, ""}, - {"Canadian_Aboriginal", Var, 0, ""}, - {"Carian", Var, 0, ""}, - {"CaseRange", Type, 0, ""}, - {"CaseRange.Delta", Field, 0, ""}, - {"CaseRange.Hi", Field, 0, ""}, - {"CaseRange.Lo", Field, 0, ""}, - {"CaseRanges", Var, 0, ""}, - {"Categories", Var, 0, ""}, - {"Caucasian_Albanian", Var, 4, ""}, - {"Cc", Var, 0, ""}, - {"Cf", Var, 0, ""}, - {"Chakma", Var, 1, ""}, - {"Cham", Var, 0, ""}, - {"Cherokee", Var, 0, ""}, - {"Chorasmian", Var, 16, ""}, - {"Co", Var, 0, ""}, - {"Common", Var, 0, ""}, - {"Coptic", Var, 0, ""}, - {"Cs", Var, 0, ""}, - {"Cuneiform", Var, 0, ""}, - {"Cypriot", Var, 0, ""}, - {"Cypro_Minoan", Var, 21, ""}, - {"Cyrillic", Var, 0, ""}, - {"Dash", Var, 0, ""}, - {"Deprecated", Var, 0, ""}, - {"Deseret", Var, 0, ""}, - {"Devanagari", Var, 0, ""}, - {"Diacritic", Var, 0, ""}, - {"Digit", Var, 0, ""}, - {"Dives_Akuru", Var, 16, ""}, - {"Dogra", Var, 13, ""}, - {"Duployan", Var, 4, ""}, - {"Egyptian_Hieroglyphs", Var, 0, ""}, - {"Elbasan", Var, 4, ""}, - {"Elymaic", Var, 14, ""}, - {"Ethiopic", Var, 0, ""}, - {"Extender", Var, 0, ""}, - {"FoldCategory", Var, 0, ""}, - {"FoldScript", Var, 0, ""}, - {"Georgian", Var, 0, ""}, - {"Glagolitic", Var, 0, ""}, - {"Gothic", Var, 0, ""}, - {"Grantha", Var, 4, ""}, - {"GraphicRanges", Var, 0, ""}, - {"Greek", Var, 0, ""}, - {"Gujarati", Var, 0, ""}, - {"Gunjala_Gondi", Var, 13, ""}, - {"Gurmukhi", Var, 0, ""}, - {"Han", Var, 0, ""}, - {"Hangul", Var, 0, ""}, - {"Hanifi_Rohingya", Var, 13, ""}, - {"Hanunoo", Var, 0, ""}, - {"Hatran", Var, 5, ""}, - {"Hebrew", Var, 0, ""}, - {"Hex_Digit", Var, 0, ""}, - {"Hiragana", Var, 0, ""}, - {"Hyphen", Var, 0, ""}, - {"IDS_Binary_Operator", Var, 0, ""}, - {"IDS_Trinary_Operator", Var, 0, ""}, - {"Ideographic", Var, 0, ""}, - {"Imperial_Aramaic", Var, 0, ""}, - {"In", Func, 2, "func(r rune, ranges ...*RangeTable) bool"}, - {"Inherited", Var, 0, ""}, - {"Inscriptional_Pahlavi", Var, 0, ""}, - {"Inscriptional_Parthian", Var, 0, ""}, - {"Is", Func, 0, "func(rangeTab *RangeTable, r rune) bool"}, - {"IsControl", Func, 0, "func(r rune) bool"}, - {"IsDigit", Func, 0, "func(r rune) bool"}, - {"IsGraphic", Func, 0, "func(r rune) bool"}, - {"IsLetter", Func, 0, "func(r rune) bool"}, - {"IsLower", Func, 0, "func(r rune) bool"}, - {"IsMark", Func, 0, "func(r rune) bool"}, - {"IsNumber", Func, 0, "func(r rune) bool"}, - {"IsOneOf", Func, 0, "func(ranges []*RangeTable, r rune) bool"}, - {"IsPrint", Func, 0, "func(r rune) bool"}, - {"IsPunct", Func, 0, "func(r rune) bool"}, - {"IsSpace", Func, 0, "func(r rune) bool"}, - {"IsSymbol", Func, 0, "func(r rune) bool"}, - {"IsTitle", Func, 0, "func(r rune) bool"}, - {"IsUpper", Func, 0, "func(r rune) bool"}, - {"Javanese", Var, 0, ""}, - {"Join_Control", Var, 0, ""}, - {"Kaithi", Var, 0, ""}, - {"Kannada", Var, 0, ""}, - {"Katakana", Var, 0, ""}, - {"Kawi", Var, 21, ""}, - {"Kayah_Li", Var, 0, ""}, - {"Kharoshthi", Var, 0, ""}, - {"Khitan_Small_Script", Var, 16, ""}, - {"Khmer", Var, 0, ""}, - {"Khojki", Var, 4, ""}, - {"Khudawadi", Var, 4, ""}, - {"L", Var, 0, ""}, - {"Lao", Var, 0, ""}, - {"Latin", Var, 0, ""}, - {"Lepcha", Var, 0, ""}, - {"Letter", Var, 0, ""}, - {"Limbu", Var, 0, ""}, - {"Linear_A", Var, 4, ""}, - {"Linear_B", Var, 0, ""}, - {"Lisu", Var, 0, ""}, - {"Ll", Var, 0, ""}, - {"Lm", Var, 0, ""}, - {"Lo", Var, 0, ""}, - {"Logical_Order_Exception", Var, 0, ""}, - {"Lower", Var, 0, ""}, - {"LowerCase", Const, 0, ""}, - {"Lt", Var, 0, ""}, - {"Lu", Var, 0, ""}, - {"Lycian", Var, 0, ""}, - {"Lydian", Var, 0, ""}, - {"M", Var, 0, ""}, - {"Mahajani", Var, 4, ""}, - {"Makasar", Var, 13, ""}, - {"Malayalam", Var, 0, ""}, - {"Mandaic", Var, 0, ""}, - {"Manichaean", Var, 4, ""}, - {"Marchen", Var, 7, ""}, - {"Mark", Var, 0, ""}, - {"Masaram_Gondi", Var, 10, ""}, - {"MaxASCII", Const, 0, ""}, - {"MaxCase", Const, 0, ""}, - {"MaxLatin1", Const, 0, ""}, - {"MaxRune", Const, 0, ""}, - {"Mc", Var, 0, ""}, - {"Me", Var, 0, ""}, - {"Medefaidrin", Var, 13, ""}, - {"Meetei_Mayek", Var, 0, ""}, - {"Mende_Kikakui", Var, 4, ""}, - {"Meroitic_Cursive", Var, 1, ""}, - {"Meroitic_Hieroglyphs", Var, 1, ""}, - {"Miao", Var, 1, ""}, - {"Mn", Var, 0, ""}, - {"Modi", Var, 4, ""}, - {"Mongolian", Var, 0, ""}, - {"Mro", Var, 4, ""}, - {"Multani", Var, 5, ""}, - {"Myanmar", Var, 0, ""}, - {"N", Var, 0, ""}, - {"Nabataean", Var, 4, ""}, - {"Nag_Mundari", Var, 21, ""}, - {"Nandinagari", Var, 14, ""}, - {"Nd", Var, 0, ""}, - {"New_Tai_Lue", Var, 0, ""}, - {"Newa", Var, 7, ""}, - {"Nko", Var, 0, ""}, - {"Nl", Var, 0, ""}, - {"No", Var, 0, ""}, - {"Noncharacter_Code_Point", Var, 0, ""}, - {"Number", Var, 0, ""}, - {"Nushu", Var, 10, ""}, - {"Nyiakeng_Puachue_Hmong", Var, 14, ""}, - {"Ogham", Var, 0, ""}, - {"Ol_Chiki", Var, 0, ""}, - {"Old_Hungarian", Var, 5, ""}, - {"Old_Italic", Var, 0, ""}, - {"Old_North_Arabian", Var, 4, ""}, - {"Old_Permic", Var, 4, ""}, - {"Old_Persian", Var, 0, ""}, - {"Old_Sogdian", Var, 13, ""}, - {"Old_South_Arabian", Var, 0, ""}, - {"Old_Turkic", Var, 0, ""}, - {"Old_Uyghur", Var, 21, ""}, - {"Oriya", Var, 0, ""}, - {"Osage", Var, 7, ""}, - {"Osmanya", Var, 0, ""}, - {"Other", Var, 0, ""}, - {"Other_Alphabetic", Var, 0, ""}, - {"Other_Default_Ignorable_Code_Point", Var, 0, ""}, - {"Other_Grapheme_Extend", Var, 0, ""}, - {"Other_ID_Continue", Var, 0, ""}, - {"Other_ID_Start", Var, 0, ""}, - {"Other_Lowercase", Var, 0, ""}, - {"Other_Math", Var, 0, ""}, - {"Other_Uppercase", Var, 0, ""}, - {"P", Var, 0, ""}, - {"Pahawh_Hmong", Var, 4, ""}, - {"Palmyrene", Var, 4, ""}, - {"Pattern_Syntax", Var, 0, ""}, - {"Pattern_White_Space", Var, 0, ""}, - {"Pau_Cin_Hau", Var, 4, ""}, - {"Pc", Var, 0, ""}, - {"Pd", Var, 0, ""}, - {"Pe", Var, 0, ""}, - {"Pf", Var, 0, ""}, - {"Phags_Pa", Var, 0, ""}, - {"Phoenician", Var, 0, ""}, - {"Pi", Var, 0, ""}, - {"Po", Var, 0, ""}, - {"Prepended_Concatenation_Mark", Var, 7, ""}, - {"PrintRanges", Var, 0, ""}, - {"Properties", Var, 0, ""}, - {"Ps", Var, 0, ""}, - {"Psalter_Pahlavi", Var, 4, ""}, - {"Punct", Var, 0, ""}, - {"Quotation_Mark", Var, 0, ""}, - {"Radical", Var, 0, ""}, - {"Range16", Type, 0, ""}, - {"Range16.Hi", Field, 0, ""}, - {"Range16.Lo", Field, 0, ""}, - {"Range16.Stride", Field, 0, ""}, - {"Range32", Type, 0, ""}, - {"Range32.Hi", Field, 0, ""}, - {"Range32.Lo", Field, 0, ""}, - {"Range32.Stride", Field, 0, ""}, - {"RangeTable", Type, 0, ""}, - {"RangeTable.LatinOffset", Field, 1, ""}, - {"RangeTable.R16", Field, 0, ""}, - {"RangeTable.R32", Field, 0, ""}, - {"Regional_Indicator", Var, 10, ""}, - {"Rejang", Var, 0, ""}, - {"ReplacementChar", Const, 0, ""}, - {"Runic", Var, 0, ""}, - {"S", Var, 0, ""}, - {"STerm", Var, 0, ""}, - {"Samaritan", Var, 0, ""}, - {"Saurashtra", Var, 0, ""}, - {"Sc", Var, 0, ""}, - {"Scripts", Var, 0, ""}, - {"Sentence_Terminal", Var, 7, ""}, - {"Sharada", Var, 1, ""}, - {"Shavian", Var, 0, ""}, - {"Siddham", Var, 4, ""}, - {"SignWriting", Var, 5, ""}, - {"SimpleFold", Func, 0, "func(r rune) rune"}, - {"Sinhala", Var, 0, ""}, - {"Sk", Var, 0, ""}, - {"Sm", Var, 0, ""}, - {"So", Var, 0, ""}, - {"Soft_Dotted", Var, 0, ""}, - {"Sogdian", Var, 13, ""}, - {"Sora_Sompeng", Var, 1, ""}, - {"Soyombo", Var, 10, ""}, - {"Space", Var, 0, ""}, - {"SpecialCase", Type, 0, ""}, - {"Sundanese", Var, 0, ""}, - {"Syloti_Nagri", Var, 0, ""}, - {"Symbol", Var, 0, ""}, - {"Syriac", Var, 0, ""}, - {"Tagalog", Var, 0, ""}, - {"Tagbanwa", Var, 0, ""}, - {"Tai_Le", Var, 0, ""}, - {"Tai_Tham", Var, 0, ""}, - {"Tai_Viet", Var, 0, ""}, - {"Takri", Var, 1, ""}, - {"Tamil", Var, 0, ""}, - {"Tangsa", Var, 21, ""}, - {"Tangut", Var, 7, ""}, - {"Telugu", Var, 0, ""}, - {"Terminal_Punctuation", Var, 0, ""}, - {"Thaana", Var, 0, ""}, - {"Thai", Var, 0, ""}, - {"Tibetan", Var, 0, ""}, - {"Tifinagh", Var, 0, ""}, - {"Tirhuta", Var, 4, ""}, - {"Title", Var, 0, ""}, - {"TitleCase", Const, 0, ""}, - {"To", Func, 0, "func(_case int, r rune) rune"}, - {"ToLower", Func, 0, "func(r rune) rune"}, - {"ToTitle", Func, 0, "func(r rune) rune"}, - {"ToUpper", Func, 0, "func(r rune) rune"}, - {"Toto", Var, 21, ""}, - {"TurkishCase", Var, 0, ""}, - {"Ugaritic", Var, 0, ""}, - {"Unified_Ideograph", Var, 0, ""}, - {"Upper", Var, 0, ""}, - {"UpperCase", Const, 0, ""}, - {"UpperLower", Const, 0, ""}, - {"Vai", Var, 0, ""}, - {"Variation_Selector", Var, 0, ""}, - {"Version", Const, 0, ""}, - {"Vithkuqi", Var, 21, ""}, - {"Wancho", Var, 14, ""}, - {"Warang_Citi", Var, 4, ""}, - {"White_Space", Var, 0, ""}, - {"Yezidi", Var, 16, ""}, - {"Yi", Var, 0, ""}, - {"Z", Var, 0, ""}, - {"Zanabazar_Square", Var, 10, ""}, - {"Zl", Var, 0, ""}, - {"Zp", Var, 0, ""}, - {"Zs", Var, 0, ""}, - }, - "unicode/utf16": { - {"AppendRune", Func, 20, "func(a []uint16, r rune) []uint16"}, - {"Decode", Func, 0, "func(s []uint16) []rune"}, - {"DecodeRune", Func, 0, "func(r1 rune, r2 rune) rune"}, - {"Encode", Func, 0, "func(s []rune) []uint16"}, - {"EncodeRune", Func, 0, "func(r rune) (r1 rune, r2 rune)"}, - {"IsSurrogate", Func, 0, "func(r rune) bool"}, - {"RuneLen", Func, 23, "func(r rune) int"}, - }, - "unicode/utf8": { - {"AppendRune", Func, 18, "func(p []byte, r rune) []byte"}, - {"DecodeLastRune", Func, 0, "func(p []byte) (r rune, size int)"}, - {"DecodeLastRuneInString", Func, 0, "func(s string) (r rune, size int)"}, - {"DecodeRune", Func, 0, "func(p []byte) (r rune, size int)"}, - {"DecodeRuneInString", Func, 0, "func(s string) (r rune, size int)"}, - {"EncodeRune", Func, 0, "func(p []byte, r rune) int"}, - {"FullRune", Func, 0, "func(p []byte) bool"}, - {"FullRuneInString", Func, 0, "func(s string) bool"}, - {"MaxRune", Const, 0, ""}, - {"RuneCount", Func, 0, "func(p []byte) int"}, - {"RuneCountInString", Func, 0, "func(s string) (n int)"}, - {"RuneError", Const, 0, ""}, - {"RuneLen", Func, 0, "func(r rune) int"}, - {"RuneSelf", Const, 0, ""}, - {"RuneStart", Func, 0, "func(b byte) bool"}, - {"UTFMax", Const, 0, ""}, - {"Valid", Func, 0, "func(p []byte) bool"}, - {"ValidRune", Func, 1, "func(r rune) bool"}, - {"ValidString", Func, 0, "func(s string) bool"}, - }, - "unique": { - {"(Handle).Value", Method, 23, ""}, - {"Handle", Type, 23, ""}, - {"Make", Func, 23, "func[T comparable](value T) Handle[T]"}, - }, - "unsafe": { - {"Add", Func, 0, ""}, - {"Alignof", Func, 0, ""}, - {"Offsetof", Func, 0, ""}, - {"Pointer", Type, 0, ""}, - {"Sizeof", Func, 0, ""}, - {"Slice", Func, 0, ""}, - {"SliceData", Func, 0, ""}, - {"String", Func, 0, ""}, - {"StringData", Func, 0, ""}, - }, - "weak": { - {"(Pointer).Value", Method, 24, ""}, - {"Make", Func, 24, "func[T any](ptr *T) Pointer[T]"}, - {"Pointer", Type, 24, ""}, - }, -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go deleted file mode 100644 index e223e0f..0000000 --- a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run generate.go - -// Package stdlib provides a table of all exported symbols in the -// standard library, along with the version at which they first -// appeared. It also provides the import graph of std packages. -package stdlib - -import ( - "fmt" - "strings" -) - -type Symbol struct { - Name string - Kind Kind - Version Version // Go version that first included the symbol - // Signature provides the type of a function (defined only for Kind=Func). - // Imported types are denoted as pkg.T; pkg is not fully qualified. - // TODO(adonovan): use an unambiguous encoding that is parseable. - // - // Example2: - // func[M ~map[K]V, K comparable, V any](m M) M - // func(fi fs.FileInfo, link string) (*Header, error) - Signature string // if Kind == stdlib.Func -} - -// A Kind indicates the kind of a symbol: -// function, variable, constant, type, and so on. -type Kind int8 - -const ( - Invalid Kind = iota // Example name: - Type // "Buffer" - Func // "Println" - Var // "EOF" - Const // "Pi" - Field // "Point.X" - Method // "(*Buffer).Grow" -) - -func (kind Kind) String() string { - return [...]string{ - Invalid: "invalid", - Type: "type", - Func: "func", - Var: "var", - Const: "const", - Field: "field", - Method: "method", - }[kind] -} - -// A Version represents a version of Go of the form "go1.%d". -type Version int8 - -// String returns a version string of the form "go1.23", without allocating. -func (v Version) String() string { return versions[v] } - -var versions [30]string // (increase constant as needed) - -func init() { - for i := range versions { - versions[i] = fmt.Sprintf("go1.%d", i) - } -} - -// HasPackage reports whether the specified package path is part of -// the standard library's public API. -func HasPackage(path string) bool { - _, ok := PackageSymbols[path] - return ok -} - -// SplitField splits the field symbol name into type and field -// components. It must be called only on Field symbols. -// -// Example: "File.Package" -> ("File", "Package") -func (sym *Symbol) SplitField() (typename, name string) { - if sym.Kind != Field { - panic("not a field") - } - typename, name, _ = strings.Cut(sym.Name, ".") - return -} - -// SplitMethod splits the method symbol name into pointer, receiver, -// and method components. It must be called only on Method symbols. -// -// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow") -func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) { - if sym.Kind != Method { - panic("not a method") - } - recv, name, _ = strings.Cut(sym.Name, ".") - recv = recv[len("(") : len(recv)-len(")")] - ptr = recv[0] == '*' - if ptr { - recv = recv[len("*"):] - } - return -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go deleted file mode 100644 index cdae2b8..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/common.go +++ /dev/null @@ -1,68 +0,0 @@ -// 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. - -// Package typeparams contains common utilities for writing tools that -// interact with generic Go code, as introduced with Go 1.18. It -// supplements the standard library APIs. Notably, the StructuralTerms -// API computes a minimal representation of the structural -// restrictions on a type parameter. -// -// An external version of these APIs is available in the -// golang.org/x/exp/typeparams module. -package typeparams - -import ( - "go/ast" - "go/token" - "go/types" -) - -// UnpackIndexExpr extracts data from AST nodes that represent index -// expressions. -// -// For an ast.IndexExpr, the resulting indices slice will contain exactly one -// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable -// number of index expressions. -// -// For nodes that don't represent index expressions, the first return value of -// UnpackIndexExpr will be nil. -func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { - switch e := n.(type) { - case *ast.IndexExpr: - return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack - case *ast.IndexListExpr: - return e.X, e.Lbrack, e.Indices, e.Rbrack - } - return nil, token.NoPos, nil, token.NoPos -} - -// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on -// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 -// will panic. -func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { - switch len(indices) { - case 0: - panic("empty indices") - case 1: - return &ast.IndexExpr{ - X: x, - Lbrack: lbrack, - Index: indices[0], - Rbrack: rbrack, - } - default: - return &ast.IndexListExpr{ - X: x, - Lbrack: lbrack, - Indices: indices, - Rbrack: rbrack, - } - } -} - -// IsTypeParam reports whether t is a type parameter (or an alias of one). -func IsTypeParam(t types.Type) bool { - _, ok := types.Unalias(t).(*types.TypeParam) - return ok -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go deleted file mode 100644 index 27a2b17..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "fmt" - "go/types" -) - -// CoreType returns the core type of T or nil if T does not have a core type. -// -// See https://go.dev/ref/spec#Core_types for the definition of a core type. -func CoreType(T types.Type) types.Type { - U := T.Underlying() - if _, ok := U.(*types.Interface); !ok { - return U // for non-interface types, - } - - terms, err := NormalTerms(U) - if len(terms) == 0 || err != nil { - // len(terms) -> empty type set of interface. - // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. - return nil // no core type. - } - - U = terms[0].Type().Underlying() - var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) - for identical = 1; identical < len(terms); identical++ { - if !types.Identical(U, terms[identical].Type().Underlying()) { - break - } - } - - if identical == len(terms) { - // https://go.dev/ref/spec#Core_types - // "There is a single type U which is the underlying type of all types in the type set of T" - return U - } - ch, ok := U.(*types.Chan) - if !ok { - return nil // no core type as identical < len(terms) and U is not a channel. - } - // https://go.dev/ref/spec#Core_types - // "the type chan E if T contains only bidirectional channels, or the type chan<- E or - // <-chan E depending on the direction of the directional channels present." - for chans := identical; chans < len(terms); chans++ { - curr, ok := terms[chans].Type().Underlying().(*types.Chan) - if !ok { - return nil - } - if !types.Identical(ch.Elem(), curr.Elem()) { - return nil // channel elements are not identical. - } - if ch.Dir() == types.SendRecv { - // ch is bidirectional. We can safely always use curr's direction. - ch = curr - } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { - // ch and curr are not bidirectional and not the same direction. - return nil - } - } - return ch -} - -// NormalTerms returns a slice of terms representing the normalized structural -// type restrictions of a type, if any. -// -// For all types other than *types.TypeParam, *types.Interface, and -// *types.Union, this is just a single term with Tilde() == false and -// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see -// below. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration type -// T[P interface{~int; m()}] int the structural restriction of the type -// parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// NormalTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, NormalTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the type is -// invalid, exceeds complexity bounds, or has an empty type set. In the latter -// case, NormalTerms returns ErrEmptyTypeSet. -// -// NormalTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func NormalTerms(T types.Type) ([]*types.Term, error) { - // typeSetOf(T) == typeSetOf(Unalias(T)) - typ := types.Unalias(T) - if named, ok := typ.(*types.Named); ok { - typ = named.Underlying() - } - switch typ := typ.(type) { - case *types.TypeParam: - return StructuralTerms(typ) - case *types.Union: - return UnionTermSet(typ) - case *types.Interface: - return InterfaceTermSet(typ) - default: - return []*types.Term{types.NewTerm(false, T)}, nil - } -} - -// Deref returns the type of the variable pointed to by t, -// if t's core type is a pointer; otherwise it returns t. -// -// Do not assume that Deref(T)==T implies T is not a pointer: -// consider "type T *T", for example. -// -// TODO(adonovan): ideally this would live in typesinternal, but that -// creates an import cycle. Move there when we melt this package down. -func Deref(t types.Type) types.Type { - if ptr, ok := CoreType(t).(*types.Pointer); ok { - return ptr.Elem() - } - return t -} - -// MustDeref returns the type of the variable pointed to by t. -// It panics if t's core type is not a pointer. -// -// TODO(adonovan): ideally this would live in typesinternal, but that -// creates an import cycle. Move there when we melt this package down. -func MustDeref(t types.Type) types.Type { - if ptr, ok := CoreType(t).(*types.Pointer); ok { - return ptr.Elem() - } - panic(fmt.Sprintf("%v is not a pointer", t)) -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/free.go b/vendor/golang.org/x/tools/internal/typeparams/free.go deleted file mode 100644 index 709d2fc..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/free.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "go/types" - - "golang.org/x/tools/internal/aliases" -) - -// Free is a memoization of the set of free type parameters within a -// type. It makes a sequence of calls to [Free.Has] for overlapping -// types more efficient. The zero value is ready for use. -// -// NOTE: Adapted from go/types/infer.go. If it is later exported, factor. -type Free struct { - seen map[types.Type]bool -} - -// Has reports whether the specified type has a free type parameter. -func (w *Free) Has(typ types.Type) (res bool) { - // detect cycles - if x, ok := w.seen[typ]; ok { - return x - } - if w.seen == nil { - w.seen = make(map[types.Type]bool) - } - w.seen[typ] = false - defer func() { - w.seen[typ] = res - }() - - switch t := typ.(type) { - case nil, *types.Basic: // TODO(gri) should nil be handled here? - break - - case *types.Alias: - if aliases.TypeParams(t).Len() > aliases.TypeArgs(t).Len() { - return true // This is an uninstantiated Alias. - } - // The expansion of an alias can have free type parameters, - // whether or not the alias itself has type parameters: - // - // func _[K comparable]() { - // type Set = map[K]bool // free(Set) = {K} - // type MapTo[V] = map[K]V // free(Map[foo]) = {V} - // } - // - // So, we must Unalias. - return w.Has(types.Unalias(t)) - - case *types.Array: - return w.Has(t.Elem()) - - case *types.Slice: - return w.Has(t.Elem()) - - case *types.Struct: - for i, n := 0, t.NumFields(); i < n; i++ { - if w.Has(t.Field(i).Type()) { - return true - } - } - - case *types.Pointer: - return w.Has(t.Elem()) - - case *types.Tuple: - n := t.Len() - for i := range n { - if w.Has(t.At(i).Type()) { - return true - } - } - - case *types.Signature: - // t.tparams may not be nil if we are looking at a signature - // of a generic function type (or an interface method) that is - // part of the type we're testing. We don't care about these type - // parameters. - // Similarly, the receiver of a method may declare (rather than - // use) type parameters, we don't care about those either. - // Thus, we only need to look at the input and result parameters. - return w.Has(t.Params()) || w.Has(t.Results()) - - case *types.Interface: - for i, n := 0, t.NumMethods(); i < n; i++ { - if w.Has(t.Method(i).Type()) { - return true - } - } - terms, err := InterfaceTermSet(t) - if err != nil { - return false // ill typed - } - for _, term := range terms { - if w.Has(term.Type()) { - return true - } - } - - case *types.Map: - return w.Has(t.Key()) || w.Has(t.Elem()) - - case *types.Chan: - return w.Has(t.Elem()) - - case *types.Named: - args := t.TypeArgs() - if params := t.TypeParams(); params.Len() > args.Len() { - return true // this is an uninstantiated named type. - } - for i, n := 0, args.Len(); i < n; i++ { - if w.Has(args.At(i)) { - return true - } - } - return w.Has(t.Underlying()) // recurse for types local to parameterized functions - - case *types.TypeParam: - return true - - default: - panic(t) // unreachable - } - - return false -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go deleted file mode 100644 index f49802b..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/normalize.go +++ /dev/null @@ -1,218 +0,0 @@ -// 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. - -package typeparams - -import ( - "errors" - "fmt" - "go/types" - "os" - "strings" -) - -//go:generate go run copytermlist.go - -const debug = false - -var ErrEmptyTypeSet = errors.New("empty type set") - -// StructuralTerms returns a slice of terms representing the normalized -// structural type restrictions of a type parameter, if any. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration -// -// type T[P interface{~int; m()}] int -// -// the structural restriction of the type parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// StructuralTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, StructuralTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the -// constraint interface is invalid, exceeds complexity bounds, or has an empty -// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. -// -// StructuralTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func StructuralTerms(tparam *types.TypeParam) ([]*types.Term, error) { - constraint := tparam.Constraint() - if constraint == nil { - return nil, fmt.Errorf("%s has nil constraint", tparam) - } - iface, _ := constraint.Underlying().(*types.Interface) - if iface == nil { - return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) - } - return InterfaceTermSet(iface) -} - -// InterfaceTermSet computes the normalized terms for a constraint interface, -// returning an error if the term set cannot be computed or is empty. In the -// latter case, the error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func InterfaceTermSet(iface *types.Interface) ([]*types.Term, error) { - return computeTermSet(iface) -} - -// UnionTermSet computes the normalized terms for a union, returning an error -// if the term set cannot be computed or is empty. In the latter case, the -// error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func UnionTermSet(union *types.Union) ([]*types.Term, error) { - return computeTermSet(union) -} - -func computeTermSet(typ types.Type) ([]*types.Term, error) { - tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) - if err != nil { - return nil, err - } - if tset.terms.isEmpty() { - return nil, ErrEmptyTypeSet - } - if tset.terms.isAll() { - return nil, nil - } - var terms []*types.Term - for _, term := range tset.terms { - terms = append(terms, types.NewTerm(term.tilde, term.typ)) - } - return terms, nil -} - -// A termSet holds the normalized set of terms for a given type. -// -// The name termSet is intentionally distinct from 'type set': a type set is -// all types that implement a type (and includes method restrictions), whereas -// a term set just represents the structural restrictions on a type. -type termSet struct { - complete bool - terms termlist -} - -func indentf(depth int, format string, args ...any) { - fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) -} - -func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { - if t == nil { - panic("nil type") - } - - if debug { - indentf(depth, "%s", t.String()) - defer func() { - if err != nil { - indentf(depth, "=> %s", err) - } else { - indentf(depth, "=> %s", res.terms.String()) - } - }() - } - - const maxTermCount = 100 - if tset, ok := seen[t]; ok { - if !tset.complete { - return nil, fmt.Errorf("cycle detected in the declaration of %s", t) - } - return tset, nil - } - - // Mark the current type as seen to avoid infinite recursion. - tset := new(termSet) - defer func() { - tset.complete = true - }() - seen[t] = tset - - switch u := t.Underlying().(type) { - case *types.Interface: - // The term set of an interface is the intersection of the term sets of its - // embedded types. - tset.terms = allTermlist - for i := 0; i < u.NumEmbeddeds(); i++ { - embedded := u.EmbeddedType(i) - if _, ok := embedded.Underlying().(*types.TypeParam); ok { - return nil, fmt.Errorf("invalid embedded type %T", embedded) - } - tset2, err := computeTermSetInternal(embedded, seen, depth+1) - if err != nil { - return nil, err - } - tset.terms = tset.terms.intersect(tset2.terms) - } - case *types.Union: - // The term set of a union is the union of term sets of its terms. - tset.terms = nil - for i := 0; i < u.Len(); i++ { - t := u.Term(i) - var terms termlist - switch t.Type().Underlying().(type) { - case *types.Interface: - tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) - if err != nil { - return nil, err - } - terms = tset2.terms - case *types.TypeParam, *types.Union: - // A stand-alone type parameter or union is not permitted as union - // term. - return nil, fmt.Errorf("invalid union term %T", t) - default: - if t.Type() == types.Typ[types.Invalid] { - continue - } - terms = termlist{{t.Tilde(), t.Type()}} - } - tset.terms = tset.terms.union(terms) - if len(tset.terms) > maxTermCount { - return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) - } - } - case *types.TypeParam: - panic("unreachable") - default: - // For all other types, the term set is just a single non-tilde term - // holding the type itself. - if u != types.Typ[types.Invalid] { - tset.terms = termlist{{false, t}} - } - } - return tset, nil -} - -// under is a facade for the go/types internal function of the same name. It is -// used by typeterm.go. -func under(t types.Type) types.Type { - return t.Underlying() -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go deleted file mode 100644 index 9bc2914..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ /dev/null @@ -1,169 +0,0 @@ -// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. -// Source: ../../cmd/compile/internal/types2/termlist.go - -// 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. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import ( - "go/types" - "strings" -) - -// A termlist represents the type set represented by the union -// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. -// A termlist is in normal form if all terms are disjoint. -// termlist operations don't require the operands to be in -// normal form. -type termlist []*term - -// allTermlist represents the set of all types. -// It is in normal form. -var allTermlist = termlist{new(term)} - -// termSep is the separator used between individual terms. -const termSep = " | " - -// String prints the termlist exactly (without normalization). -func (xl termlist) String() string { - if len(xl) == 0 { - return "∅" - } - var buf strings.Builder - for i, x := range xl { - if i > 0 { - buf.WriteString(termSep) - } - buf.WriteString(x.String()) - } - return buf.String() -} - -// isEmpty reports whether the termlist xl represents the empty set of types. -func (xl termlist) isEmpty() bool { - // If there's a non-nil term, the entire list is not empty. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil { - return false - } - } - return true -} - -// isAll reports whether the termlist xl represents the set of all types. -func (xl termlist) isAll() bool { - // If there's a 𝓤 term, the entire list is 𝓤. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil && x.typ == nil { - return true - } - } - return false -} - -// norm returns the normal form of xl. -func (xl termlist) norm() termlist { - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - used := make([]bool, len(xl)) - var rl termlist - for i, xi := range xl { - if xi == nil || used[i] { - continue - } - for j := i + 1; j < len(xl); j++ { - xj := xl[j] - if xj == nil || used[j] { - continue - } - if u1, u2 := xi.union(xj); u2 == nil { - // If we encounter a 𝓤 term, the entire list is 𝓤. - // Exit early. - // (Note that this is not just an optimization; - // if we continue, we may end up with a 𝓤 term - // and other terms and the result would not be - // in normal form.) - if u1.typ == nil { - return allTermlist - } - xi = u1 - used[j] = true // xj is now unioned into xi - ignore it in future iterations - } - } - rl = append(rl, xi) - } - return rl -} - -// union returns the union xl ∪ yl. -func (xl termlist) union(yl termlist) termlist { - return append(xl, yl...).norm() -} - -// intersect returns the intersection xl ∩ yl. -func (xl termlist) intersect(yl termlist) termlist { - if xl.isEmpty() || yl.isEmpty() { - return nil - } - - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - var rl termlist - for _, x := range xl { - for _, y := range yl { - if r := x.intersect(y); r != nil { - rl = append(rl, r) - } - } - } - return rl.norm() -} - -// equal reports whether xl and yl represent the same type set. -func (xl termlist) equal(yl termlist) bool { - // TODO(gri) this should be more efficient - return xl.subsetOf(yl) && yl.subsetOf(xl) -} - -// includes reports whether t ∈ xl. -func (xl termlist) includes(t types.Type) bool { - for _, x := range xl { - if x.includes(t) { - return true - } - } - return false -} - -// supersetOf reports whether y ⊆ xl. -func (xl termlist) supersetOf(y *term) bool { - for _, x := range xl { - if y.subsetOf(x) { - return true - } - } - return false -} - -// subsetOf reports whether xl ⊆ yl. -func (xl termlist) subsetOf(yl termlist) bool { - if yl.isEmpty() { - return xl.isEmpty() - } - - // each term x of xl must be a subset of yl - for _, x := range xl { - if !yl.supersetOf(x) { - return false // x is not a subset yl - } - } - return true -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go deleted file mode 100644 index fa758cd..0000000 --- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ /dev/null @@ -1,172 +0,0 @@ -// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. -// Source: ../../cmd/compile/internal/types2/typeterm.go - -// 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. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import "go/types" - -// A term describes elementary type sets: -// -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -type term struct { - tilde bool // valid if typ != nil - typ types.Type -} - -func (x *term) String() string { - switch { - case x == nil: - return "∅" - case x.typ == nil: - return "𝓤" - case x.tilde: - return "~" + x.typ.String() - default: - return x.typ.String() - } -} - -// equal reports whether x and y represent the same type set. -func (x *term) equal(y *term) bool { - // easy cases - switch { - case x == nil || y == nil: - return x == y - case x.typ == nil || y.typ == nil: - return x.typ == y.typ - } - // ∅ ⊂ x, y ⊂ 𝓤 - - return x.tilde == y.tilde && types.Identical(x.typ, y.typ) -} - -// union returns the union x ∪ y: zero, one, or two non-nil terms. -func (x *term) union(y *term) (_, _ *term) { - // easy cases - switch { - case x == nil && y == nil: - return nil, nil // ∅ ∪ ∅ == ∅ - case x == nil: - return y, nil // ∅ ∪ y == y - case y == nil: - return x, nil // x ∪ ∅ == x - case x.typ == nil: - return x, nil // 𝓤 ∪ y == 𝓤 - case y.typ == nil: - return y, nil // x ∪ 𝓤 == 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return x, y // x ∪ y == (x, y) if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∪ ~t == ~t - // ~t ∪ T == ~t - // T ∪ ~t == ~t - // T ∪ T == T - if x.tilde || !y.tilde { - return x, nil - } - return y, nil -} - -// intersect returns the intersection x ∩ y. -func (x *term) intersect(y *term) *term { - // easy cases - switch { - case x == nil || y == nil: - return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ - case x.typ == nil: - return y // 𝓤 ∩ y == y - case y.typ == nil: - return x // x ∩ 𝓤 == x - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return nil // x ∩ y == ∅ if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∩ ~t == ~t - // ~t ∩ T == T - // T ∩ ~t == T - // T ∩ T == T - if !x.tilde || y.tilde { - return x - } - return y -} - -// includes reports whether t ∈ x. -func (x *term) includes(t types.Type) bool { - // easy cases - switch { - case x == nil: - return false // t ∈ ∅ == false - case x.typ == nil: - return true // t ∈ 𝓤 == true - } - // ∅ ⊂ x ⊂ 𝓤 - - u := t - if x.tilde { - u = under(u) - } - return types.Identical(x.typ, u) -} - -// subsetOf reports whether x ⊆ y. -func (x *term) subsetOf(y *term) bool { - // easy cases - switch { - case x == nil: - return true // ∅ ⊆ y == true - case y == nil: - return false // x ⊆ ∅ == false since x != ∅ - case y.typ == nil: - return true // x ⊆ 𝓤 == true - case x.typ == nil: - return false // 𝓤 ⊆ y == false since y != 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return false // x ⊆ y == false if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ⊆ ~t == true - // ~t ⊆ T == false - // T ⊆ ~t == true - // T ⊆ T == true - return !x.tilde || y.tilde -} - -// disjoint reports whether x ∩ y == ∅. -// x.typ and y.typ must not be nil. -func (x *term) disjoint(y *term) bool { - if debug && (x.typ == nil || y.typ == nil) { - panic("invalid argument(s)") - } - ux := x.typ - if y.tilde { - ux = under(ux) - } - uy := y.typ - if x.tilde { - uy = under(uy) - } - return !types.Identical(ux, uy) -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go deleted file mode 100644 index 3db2a13..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go +++ /dev/null @@ -1,137 +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. - -package typesinternal - -import ( - "fmt" - "go/ast" - "go/types" - _ "unsafe" -) - -// CallKind describes the function position of an [*ast.CallExpr]. -type CallKind int - -const ( - CallStatic CallKind = iota // static call to known function - CallInterface // dynamic call through an interface method - CallDynamic // dynamic call of a func value - CallBuiltin // call to a builtin function - CallConversion // a conversion (not a call) -) - -var callKindNames = []string{ - "CallStatic", - "CallInterface", - "CallDynamic", - "CallBuiltin", - "CallConversion", -} - -func (k CallKind) String() string { - if i := int(k); i >= 0 && i < len(callKindNames) { - return callKindNames[i] - } - return fmt.Sprintf("typeutil.CallKind(%d)", k) -} - -// ClassifyCall classifies the function position of a call expression ([*ast.CallExpr]). -// It distinguishes among true function calls, calls to builtins, and type conversions, -// and further classifies function calls as static calls (where the function is known), -// dynamic interface calls, and other dynamic calls. -// -// For the declarations: -// -// func f() {} -// func g[T any]() {} -// var v func() -// var s []func() -// type I interface { M() } -// var i I -// -// ClassifyCall returns the following: -// -// f() CallStatic -// g[int]() CallStatic -// i.M() CallInterface -// min(1, 2) CallBuiltin -// v() CallDynamic -// s[0]() CallDynamic -// int(x) CallConversion -// []byte("") CallConversion -func ClassifyCall(info *types.Info, call *ast.CallExpr) CallKind { - if info.Types == nil { - panic("ClassifyCall: info.Types is nil") - } - tv := info.Types[call.Fun] - if tv.IsType() { - return CallConversion - } - if tv.IsBuiltin() { - return CallBuiltin - } - obj := info.Uses[UsedIdent(info, call.Fun)] - // Classify the call by the type of the object, if any. - switch obj := obj.(type) { - case *types.Func: - if interfaceMethod(obj) { - return CallInterface - } - return CallStatic - default: - return CallDynamic - } -} - -// UsedIdent returns the identifier such that info.Uses[UsedIdent(info, e)] -// is the [types.Object] used by e, if any. -// -// If e is one of various forms of reference: -// -// f, c, v, T lexical reference -// pkg.X qualified identifier -// f[T] or pkg.F[K,V] instantiations of the above kinds -// expr.f field or method value selector -// T.f method expression selector -// -// UsedIdent returns the identifier whose is associated value in [types.Info.Uses] -// is the object to which it refers. -// -// For the declarations: -// -// func F[T any] {...} -// type I interface { M() } -// var ( -// x int -// s struct { f int } -// a []int -// i I -// ) -// -// UsedIdent returns the following: -// -// Expr UsedIdent -// x x -// s.f f -// F[int] F -// i.M M -// I.M M -// min min -// int int -// 1 nil -// a[0] nil -// []byte nil -// -// Note: if e is an instantiated function or method, UsedIdent returns -// the corresponding generic function or method on the generic type. -func UsedIdent(info *types.Info, e ast.Expr) *ast.Ident { - return usedIdent(info, e) -} - -//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent -func usedIdent(info *types.Info, e ast.Expr) *ast.Ident - -//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod -func interfaceMethod(f *types.Func) bool diff --git a/vendor/golang.org/x/tools/internal/typesinternal/element.go b/vendor/golang.org/x/tools/internal/typesinternal/element.go deleted file mode 100644 index 4957f02..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/element.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "fmt" - "go/types" - - "golang.org/x/tools/go/types/typeutil" -) - -// ForEachElement calls f for type T and each type reachable from its -// type through reflection. It does this by recursively stripping off -// type constructors; in addition, for each named type N, the type *N -// is added to the result as it may have additional methods. -// -// The caller must provide an initially empty set used to de-duplicate -// identical types, potentially across multiple calls to ForEachElement. -// (Its final value holds all the elements seen, matching the arguments -// passed to f.) -// -// TODO(adonovan): share/harmonize with go/callgraph/rta. -func ForEachElement(rtypes *typeutil.Map, msets *typeutil.MethodSetCache, T types.Type, f func(types.Type)) { - var visit func(T types.Type, skip bool) - visit = func(T types.Type, skip bool) { - if !skip { - if seen, _ := rtypes.Set(T, true).(bool); seen { - return // de-dup - } - - f(T) // notify caller of new element type - } - - // Recursion over signatures of each method. - tmset := msets.MethodSet(T) - for i := 0; i < tmset.Len(); i++ { - sig := tmset.At(i).Type().(*types.Signature) - // It is tempting to call visit(sig, false) - // but, as noted in golang.org/cl/65450043, - // the Signature.Recv field is ignored by - // types.Identical and typeutil.Map, which - // is confusing at best. - // - // More importantly, the true signature rtype - // reachable from a method using reflection - // has no receiver but an extra ordinary parameter. - // For the Read method of io.Reader we want: - // func(Reader, []byte) (int, error) - // but here sig is: - // func([]byte) (int, error) - // with .Recv = Reader (though it is hard to - // notice because it doesn't affect Signature.String - // or types.Identical). - // - // TODO(adonovan): construct and visit the correct - // non-method signature with an extra parameter - // (though since unnamed func types have no methods - // there is essentially no actual demand for this). - // - // TODO(adonovan): document whether or not it is - // safe to skip non-exported methods (as RTA does). - visit(sig.Params(), true) // skip the Tuple - visit(sig.Results(), true) // skip the Tuple - } - - switch T := T.(type) { - case *types.Alias: - visit(types.Unalias(T), skip) // emulates the pre-Alias behavior - - case *types.Basic: - // nop - - case *types.Interface: - // nop---handled by recursion over method set. - - case *types.Pointer: - visit(T.Elem(), false) - - case *types.Slice: - visit(T.Elem(), false) - - case *types.Chan: - visit(T.Elem(), false) - - case *types.Map: - visit(T.Key(), false) - visit(T.Elem(), false) - - case *types.Signature: - if T.Recv() != nil { - panic(fmt.Sprintf("Signature %s has Recv %s", T, T.Recv())) - } - visit(T.Params(), true) // skip the Tuple - visit(T.Results(), true) // skip the Tuple - - case *types.Named: - // A pointer-to-named type can be derived from a named - // type via reflection. It may have methods too. - visit(types.NewPointer(T), false) - - // Consider 'type T struct{S}' where S has methods. - // Reflection provides no way to get from T to struct{S}, - // only to S, so the method set of struct{S} is unwanted, - // so set 'skip' flag during recursion. - visit(T.Underlying(), true) // skip the unnamed type - - case *types.Array: - visit(T.Elem(), false) - - case *types.Struct: - for i, n := 0, T.NumFields(); i < n; i++ { - // TODO(adonovan): document whether or not - // it is safe to skip non-exported fields. - visit(T.Field(i).Type(), false) - } - - case *types.Tuple: - for i, n := 0, T.Len(); i < n; i++ { - visit(T.At(i).Type(), false) - } - - case *types.TypeParam, *types.Union: - // forEachReachable must not be called on parameterized types. - panic(T) - - default: - panic(T) - } - } - visit(T, false) -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go deleted file mode 100644 index 235a6de..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +++ /dev/null @@ -1,1560 +0,0 @@ -// 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 typesinternal - -//go:generate stringer -type=ErrorCode - -type ErrorCode int - -// This file defines the error codes that can be produced during type-checking. -// Collectively, these codes provide an identifier that may be used to -// implement special handling for certain types of errors. -// -// Error codes should be fine-grained enough that the exact nature of the error -// can be easily determined, but coarse enough that they are not an -// implementation detail of the type checking algorithm. As a rule-of-thumb, -// errors should be considered equivalent if there is a theoretical refactoring -// of the type checker in which they are emitted in exactly one place. For -// example, the type checker emits different error messages for "too many -// arguments" and "too few arguments", but one can imagine an alternative type -// checker where this check instead just emits a single "wrong number of -// arguments", so these errors should have the same code. -// -// Error code names should be as brief as possible while retaining accuracy and -// distinctiveness. In most cases names should start with an adjective -// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), -// and end with a noun identifying the relevant language object. For example, -// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the -// convention that "bad" implies a problem with syntax, and "invalid" implies a -// problem with types. - -const ( - // InvalidSyntaxTree occurs if an invalid syntax tree is provided - // to the type checker. It should never happen. - InvalidSyntaxTree ErrorCode = -1 -) - -const ( - _ ErrorCode = iota - - // Test is reserved for errors that only apply while in self-test mode. - Test - - /* package names */ - - // BlankPkgName occurs when a package name is the blank identifier "_". - // - // Per the spec: - // "The PackageName must not be the blank identifier." - BlankPkgName - - // MismatchedPkgName occurs when a file's package name doesn't match the - // package name already established by other files. - MismatchedPkgName - - // InvalidPkgUse occurs when a package identifier is used outside of a - // selector expression. - // - // Example: - // import "fmt" - // - // var _ = fmt - InvalidPkgUse - - /* imports */ - - // BadImportPath occurs when an import path is not valid. - BadImportPath - - // BrokenImport occurs when importing a package fails. - // - // Example: - // import "amissingpackage" - BrokenImport - - // ImportCRenamed occurs when the special import "C" is renamed. "C" is a - // pseudo-package, and must not be renamed. - // - // Example: - // import _ "C" - ImportCRenamed - - // UnusedImport occurs when an import is unused. - // - // Example: - // import "fmt" - // - // func main() {} - UnusedImport - - /* initialization */ - - // InvalidInitCycle occurs when an invalid cycle is detected within the - // initialization graph. - // - // Example: - // var x int = f() - // - // func f() int { return x } - InvalidInitCycle - - /* decls */ - - // DuplicateDecl occurs when an identifier is declared multiple times. - // - // Example: - // var x = 1 - // var x = 2 - DuplicateDecl - - // InvalidDeclCycle occurs when a declaration cycle is not valid. - // - // Example: - // import "unsafe" - // - // type T struct { - // a [n]int - // } - // - // var n = unsafe.Sizeof(T{}) - InvalidDeclCycle - - // InvalidTypeCycle occurs when a cycle in type definitions results in a - // type that is not well-defined. - // - // Example: - // import "unsafe" - // - // type T [unsafe.Sizeof(T{})]int - InvalidTypeCycle - - /* decls > const */ - - // InvalidConstInit occurs when a const declaration has a non-constant - // initializer. - // - // Example: - // var x int - // const _ = x - InvalidConstInit - - // InvalidConstVal occurs when a const value cannot be converted to its - // target type. - // - // TODO(findleyr): this error code and example are not very clear. Consider - // removing it. - // - // Example: - // const _ = 1 << "hello" - InvalidConstVal - - // InvalidConstType occurs when the underlying type in a const declaration - // is not a valid constant type. - // - // Example: - // const c *int = 4 - InvalidConstType - - /* decls > var (+ other variable assignment codes) */ - - // UntypedNilUse occurs when the predeclared (untyped) value nil is used to - // initialize a variable declared without an explicit type. - // - // Example: - // var x = nil - UntypedNilUse - - // WrongAssignCount occurs when the number of values on the right-hand side - // of an assignment or initialization expression does not match the number - // of variables on the left-hand side. - // - // Example: - // var x = 1, 2 - WrongAssignCount - - // UnassignableOperand occurs when the left-hand side of an assignment is - // not assignable. - // - // Example: - // func f() { - // const c = 1 - // c = 2 - // } - UnassignableOperand - - // NoNewVar occurs when a short variable declaration (':=') does not declare - // new variables. - // - // Example: - // func f() { - // x := 1 - // x := 2 - // } - NoNewVar - - // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does - // not have single-valued left-hand or right-hand side. - // - // Per the spec: - // "In assignment operations, both the left- and right-hand expression lists - // must contain exactly one single-valued expression" - // - // Example: - // func f() int { - // x, y := 1, 2 - // x, y += 1 - // return x + y - // } - MultiValAssignOp - - // InvalidIfaceAssign occurs when a value of type T is used as an - // interface, but T does not implement a method of the expected interface. - // - // Example: - // type I interface { - // f() - // } - // - // type T int - // - // var x I = T(1) - InvalidIfaceAssign - - // InvalidChanAssign occurs when a chan assignment is invalid. - // - // Per the spec, a value x is assignable to a channel type T if: - // "x is a bidirectional channel value, T is a channel type, x's type V and - // T have identical element types, and at least one of V or T is not a - // defined type." - // - // Example: - // type T1 chan int - // type T2 chan int - // - // var x T1 - // // Invalid assignment because both types are named - // var _ T2 = x - InvalidChanAssign - - // IncompatibleAssign occurs when the type of the right-hand side expression - // in an assignment cannot be assigned to the type of the variable being - // assigned. - // - // Example: - // var x []int - // var _ int = x - IncompatibleAssign - - // UnaddressableFieldAssign occurs when trying to assign to a struct field - // in a map value. - // - // Example: - // func f() { - // m := make(map[string]struct{i int}) - // m["foo"].i = 42 - // } - UnaddressableFieldAssign - - /* decls > type (+ other type expression codes) */ - - // NotAType occurs when the identifier used as the underlying type in a type - // declaration or the right-hand side of a type alias does not denote a type. - // - // Example: - // var S = 2 - // - // type T S - NotAType - - // InvalidArrayLen occurs when an array length is not a constant value. - // - // Example: - // var n = 3 - // var _ = [n]int{} - InvalidArrayLen - - // BlankIfaceMethod occurs when a method name is '_'. - // - // Per the spec: - // "The name of each explicitly specified method must be unique and not - // blank." - // - // Example: - // type T interface { - // _(int) - // } - BlankIfaceMethod - - // IncomparableMapKey occurs when a map key type does not support the == and - // != operators. - // - // Per the spec: - // "The comparison operators == and != must be fully defined for operands of - // the key type; thus the key type must not be a function, map, or slice." - // - // Example: - // var x map[T]int - // - // type T []int - IncomparableMapKey - - // InvalidIfaceEmbed occurs when a non-interface type is embedded in an - // interface. - // - // Example: - // type T struct {} - // - // func (T) m() - // - // type I interface { - // T - // } - InvalidIfaceEmbed - - // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, - // and T itself is itself a pointer, an unsafe.Pointer, or an interface. - // - // Per the spec: - // "An embedded field must be specified as a type name T or as a pointer to - // a non-interface type name *T, and T itself may not be a pointer type." - // - // Example: - // type T *int - // - // type S struct { - // *T - // } - InvalidPtrEmbed - - /* decls > func and method */ - - // BadRecv occurs when a method declaration does not have exactly one - // receiver parameter. - // - // Example: - // func () _() {} - BadRecv - - // InvalidRecv occurs when a receiver type expression is not of the form T - // or *T, or T is a pointer type. - // - // Example: - // type T struct {} - // - // func (**T) m() {} - InvalidRecv - - // DuplicateFieldAndMethod occurs when an identifier appears as both a field - // and method name. - // - // Example: - // type T struct { - // m int - // } - // - // func (T) m() {} - DuplicateFieldAndMethod - - // DuplicateMethod occurs when two methods on the same receiver type have - // the same name. - // - // Example: - // type T struct {} - // func (T) m() {} - // func (T) m(i int) int { return i } - DuplicateMethod - - /* decls > special */ - - // InvalidBlank occurs when a blank identifier is used as a value or type. - // - // Per the spec: - // "The blank identifier may appear as an operand only on the left-hand side - // of an assignment." - // - // Example: - // var x = _ - InvalidBlank - - // InvalidIota occurs when the predeclared identifier iota is used outside - // of a constant declaration. - // - // Example: - // var x = iota - InvalidIota - - // MissingInitBody occurs when an init function is missing its body. - // - // Example: - // func init() - MissingInitBody - - // InvalidInitSig occurs when an init function declares parameters or - // results. - // - // Example: - // func init() int { return 1 } - InvalidInitSig - - // InvalidInitDecl occurs when init is declared as anything other than a - // function. - // - // Example: - // var init = 1 - InvalidInitDecl - - // InvalidMainDecl occurs when main is declared as anything other than a - // function, in a main package. - InvalidMainDecl - - /* exprs */ - - // TooManyValues occurs when a function returns too many values for the - // expression context in which it is used. - // - // Example: - // func ReturnTwo() (int, int) { - // return 1, 2 - // } - // - // var x = ReturnTwo() - TooManyValues - - // NotAnExpr occurs when a type expression is used where a value expression - // is expected. - // - // Example: - // type T struct {} - // - // func f() { - // T - // } - NotAnExpr - - /* exprs > const */ - - // TruncatedFloat occurs when a float constant is truncated to an integer - // value. - // - // Example: - // var _ int = 98.6 - TruncatedFloat - - // NumericOverflow occurs when a numeric constant overflows its target type. - // - // Example: - // var x int8 = 1000 - NumericOverflow - - /* exprs > operation */ - - // UndefinedOp occurs when an operator is not defined for the type(s) used - // in an operation. - // - // Example: - // var c = "a" - "b" - UndefinedOp - - // MismatchedTypes occurs when operand types are incompatible in a binary - // operation. - // - // Example: - // var a = "hello" - // var b = 1 - // var c = a - b - MismatchedTypes - - // DivByZero occurs when a division operation is provable at compile - // time to be a division by zero. - // - // Example: - // const divisor = 0 - // var x int = 1/divisor - DivByZero - - // NonNumericIncDec occurs when an increment or decrement operator is - // applied to a non-numeric value. - // - // Example: - // func f() { - // var c = "c" - // c++ - // } - NonNumericIncDec - - /* exprs > ptr */ - - // UnaddressableOperand occurs when the & operator is applied to an - // unaddressable expression. - // - // Example: - // var x = &1 - UnaddressableOperand - - // InvalidIndirection occurs when a non-pointer value is indirected via the - // '*' operator. - // - // Example: - // var x int - // var y = *x - InvalidIndirection - - /* exprs > [] */ - - // NonIndexableOperand occurs when an index operation is applied to a value - // that cannot be indexed. - // - // Example: - // var x = 1 - // var y = x[1] - NonIndexableOperand - - // InvalidIndex occurs when an index argument is not of integer type, - // negative, or out-of-bounds. - // - // Example: - // var s = [...]int{1,2,3} - // var x = s[5] - // - // Example: - // var s = []int{1,2,3} - // var _ = s[-1] - // - // Example: - // var s = []int{1,2,3} - // var i string - // var _ = s[i] - InvalidIndex - - // SwappedSliceIndices occurs when constant indices in a slice expression - // are decreasing in value. - // - // Example: - // var _ = []int{1,2,3}[2:1] - SwappedSliceIndices - - /* operators > slice */ - - // NonSliceableOperand occurs when a slice operation is applied to a value - // whose type is not sliceable, or is unaddressable. - // - // Example: - // var x = [...]int{1, 2, 3}[:1] - // - // Example: - // var x = 1 - // var y = 1[:1] - NonSliceableOperand - - // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is - // applied to a string. - // - // Example: - // var s = "hello" - // var x = s[1:2:3] - InvalidSliceExpr - - /* exprs > shift */ - - // InvalidShiftCount occurs when the right-hand side of a shift operation is - // either non-integer, negative, or too large. - // - // Example: - // var ( - // x string - // y int = 1 << x - // ) - InvalidShiftCount - - // InvalidShiftOperand occurs when the shifted operand is not an integer. - // - // Example: - // var s = "hello" - // var x = s << 2 - InvalidShiftOperand - - /* exprs > chan */ - - // InvalidReceive occurs when there is a channel receive from a value that - // is either not a channel, or is a send-only channel. - // - // Example: - // func f() { - // var x = 1 - // <-x - // } - InvalidReceive - - // InvalidSend occurs when there is a channel send to a value that is not a - // channel, or is a receive-only channel. - // - // Example: - // func f() { - // var x = 1 - // x <- "hello!" - // } - InvalidSend - - /* exprs > literal */ - - // DuplicateLitKey occurs when an index is duplicated in a slice, array, or - // map literal. - // - // Example: - // var _ = []int{0:1, 0:2} - // - // Example: - // var _ = map[string]int{"a": 1, "a": 2} - DuplicateLitKey - - // MissingLitKey occurs when a map literal is missing a key expression. - // - // Example: - // var _ = map[string]int{1} - MissingLitKey - - // InvalidLitIndex occurs when the key in a key-value element of a slice or - // array literal is not an integer constant. - // - // Example: - // var i = 0 - // var x = []string{i: "world"} - InvalidLitIndex - - // OversizeArrayLit occurs when an array literal exceeds its length. - // - // Example: - // var _ = [2]int{1,2,3} - OversizeArrayLit - - // MixedStructLit occurs when a struct literal contains a mix of positional - // and named elements. - // - // Example: - // var _ = struct{i, j int}{i: 1, 2} - MixedStructLit - - // InvalidStructLit occurs when a positional struct literal has an incorrect - // number of values. - // - // Example: - // var _ = struct{i, j int}{1,2,3} - InvalidStructLit - - // MissingLitField occurs when a struct literal refers to a field that does - // not exist on the struct type. - // - // Example: - // var _ = struct{i int}{j: 2} - MissingLitField - - // DuplicateLitField occurs when a struct literal contains duplicated - // fields. - // - // Example: - // var _ = struct{i int}{i: 1, i: 2} - DuplicateLitField - - // UnexportedLitField occurs when a positional struct literal implicitly - // assigns an unexported field of an imported type. - UnexportedLitField - - // InvalidLitField occurs when a field name is not a valid identifier. - // - // Example: - // var _ = struct{i int}{1: 1} - InvalidLitField - - // UntypedLit occurs when a composite literal omits a required type - // identifier. - // - // Example: - // type outer struct{ - // inner struct { i int } - // } - // - // var _ = outer{inner: {1}} - UntypedLit - - // InvalidLit occurs when a composite literal expression does not match its - // type. - // - // Example: - // type P *struct{ - // x int - // } - // var _ = P {} - InvalidLit - - /* exprs > selector */ - - // AmbiguousSelector occurs when a selector is ambiguous. - // - // Example: - // type E1 struct { i int } - // type E2 struct { i int } - // type T struct { E1; E2 } - // - // var x T - // var _ = x.i - AmbiguousSelector - - // UndeclaredImportedName occurs when a package-qualified identifier is - // undeclared by the imported package. - // - // Example: - // import "go/types" - // - // var _ = types.NotAnActualIdentifier - UndeclaredImportedName - - // UnexportedName occurs when a selector refers to an unexported identifier - // of an imported package. - // - // Example: - // import "reflect" - // - // type _ reflect.flag - UnexportedName - - // UndeclaredName occurs when an identifier is not declared in the current - // scope. - // - // Example: - // var x T - UndeclaredName - - // MissingFieldOrMethod occurs when a selector references a field or method - // that does not exist. - // - // Example: - // type T struct {} - // - // var x = T{}.f - MissingFieldOrMethod - - /* exprs > ... */ - - // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is - // not valid. - // - // Example: - // var _ = map[int][...]int{0: {}} - BadDotDotDotSyntax - - // NonVariadicDotDotDot occurs when a "..." is used on the final argument to - // a non-variadic function. - // - // Example: - // func printArgs(s []string) { - // for _, a := range s { - // println(a) - // } - // } - // - // func f() { - // s := []string{"a", "b", "c"} - // printArgs(s...) - // } - NonVariadicDotDotDot - - // MisplacedDotDotDot occurs when a "..." is used somewhere other than the - // final argument to a function call. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := []int{1,2,3} - // printArgs(0, a...) - // } - MisplacedDotDotDot - - // InvalidDotDotDotOperand occurs when a "..." operator is applied to a - // single-valued operand. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := 1 - // printArgs(a...) - // } - // - // Example: - // func args() (int, int) { - // return 1, 2 - // } - // - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func g() { - // printArgs(args()...) - // } - InvalidDotDotDotOperand - - // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in - // function. - // - // Example: - // var s = []int{1, 2, 3} - // var l = len(s...) - InvalidDotDotDot - - /* exprs > built-in */ - - // UncalledBuiltin occurs when a built-in function is used as a - // function-valued expression, instead of being called. - // - // Per the spec: - // "The built-in functions do not have standard Go types, so they can only - // appear in call expressions; they cannot be used as function values." - // - // Example: - // var _ = copy - UncalledBuiltin - - // InvalidAppend occurs when append is called with a first argument that is - // not a slice. - // - // Example: - // var _ = append(1, 2) - InvalidAppend - - // InvalidCap occurs when an argument to the cap built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Length_and_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = cap(s) - InvalidCap - - // InvalidClose occurs when close(...) is called with an argument that is - // not of channel type, or that is a receive-only channel. - // - // Example: - // func f() { - // var x int - // close(x) - // } - InvalidClose - - // InvalidCopy occurs when the arguments are not of slice type or do not - // have compatible type. - // - // See https://golang.org/ref/spec#Appending_and_copying_slices for more - // information on the type requirements for the copy built-in. - // - // Example: - // func f() { - // var x []int - // y := []int64{1,2,3} - // copy(x, y) - // } - InvalidCopy - - // InvalidComplex occurs when the complex built-in function is called with - // arguments with incompatible types. - // - // Example: - // var _ = complex(float32(1), float64(2)) - InvalidComplex - - // InvalidDelete occurs when the delete built-in function is called with a - // first argument that is not a map. - // - // Example: - // func f() { - // m := "hello" - // delete(m, "e") - // } - InvalidDelete - - // InvalidImag occurs when the imag built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = imag(int(1)) - InvalidImag - - // InvalidLen occurs when an argument to the len built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Length_and_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = len(s) - InvalidLen - - // SwappedMakeArgs occurs when make is called with three arguments, and its - // length argument is larger than its capacity argument. - // - // Example: - // var x = make([]int, 3, 2) - SwappedMakeArgs - - // InvalidMake occurs when make is called with an unsupported type argument. - // - // See https://golang.org/ref/spec#Making_slices_maps_and_channels for - // information on the types that may be created using make. - // - // Example: - // var x = make(int) - InvalidMake - - // InvalidReal occurs when the real built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = real(int(1)) - InvalidReal - - /* exprs > assertion */ - - // InvalidAssert occurs when a type assertion is applied to a - // value that is not of interface type. - // - // Example: - // var x = 1 - // var _ = x.(float64) - InvalidAssert - - // ImpossibleAssert occurs for a type assertion x.(T) when the value x of - // interface cannot have dynamic type T, due to a missing or mismatching - // method on T. - // - // Example: - // type T int - // - // func (t *T) m() int { return int(*t) } - // - // type I interface { m() int } - // - // var x I - // var _ = x.(T) - ImpossibleAssert - - /* exprs > conversion */ - - // InvalidConversion occurs when the argument type cannot be converted to the - // target. - // - // See https://golang.org/ref/spec#Conversions for the rules of - // convertibility. - // - // Example: - // var x float64 - // var _ = string(x) - InvalidConversion - - // InvalidUntypedConversion occurs when there is no valid implicit - // conversion from an untyped value satisfying the type constraints of the - // context in which it is used. - // - // Example: - // var _ = 1 + "" - InvalidUntypedConversion - - /* offsetof */ - - // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument - // that is not a selector expression. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Offsetof(x) - BadOffsetofSyntax - - // InvalidOffsetof occurs when unsafe.Offsetof is called with a method - // selector, rather than a field selector, or when the field is embedded via - // a pointer. - // - // Per the spec: - // - // "If f is an embedded field, it must be reachable without pointer - // indirections through fields of the struct. " - // - // Example: - // import "unsafe" - // - // type T struct { f int } - // type S struct { *T } - // var s S - // var _ = unsafe.Offsetof(s.f) - // - // Example: - // import "unsafe" - // - // type S struct{} - // - // func (S) m() {} - // - // var s S - // var _ = unsafe.Offsetof(s.m) - InvalidOffsetof - - /* control flow > scope */ - - // UnusedExpr occurs when a side-effect free expression is used as a - // statement. Such a statement has no effect. - // - // Example: - // func f(i int) { - // i*i - // } - UnusedExpr - - // UnusedVar occurs when a variable is declared but unused. - // - // Example: - // func f() { - // x := 1 - // } - UnusedVar - - // MissingReturn occurs when a function with results is missing a return - // statement. - // - // Example: - // func f() int {} - MissingReturn - - // WrongResultCount occurs when a return statement returns an incorrect - // number of values. - // - // Example: - // func ReturnOne() int { - // return 1, 2 - // } - WrongResultCount - - // OutOfScopeResult occurs when the name of a value implicitly returned by - // an empty return statement is shadowed in a nested scope. - // - // Example: - // func factor(n int) (i int) { - // for i := 2; i < n; i++ { - // if n%i == 0 { - // return - // } - // } - // return 0 - // } - OutOfScopeResult - - /* control flow > if */ - - // InvalidCond occurs when an if condition is not a boolean expression. - // - // Example: - // func checkReturn(i int) { - // if i { - // panic("non-zero return") - // } - // } - InvalidCond - - /* control flow > for */ - - // InvalidPostDecl occurs when there is a declaration in a for-loop post - // statement. - // - // Example: - // func f() { - // for i := 0; i < 10; j := 0 {} - // } - InvalidPostDecl - - // InvalidChanRange occurs when a send-only channel used in a range - // expression. - // - // Example: - // func sum(c chan<- int) { - // s := 0 - // for i := range c { - // s += i - // } - // } - InvalidChanRange - - // InvalidIterVar occurs when two iteration variables are used while ranging - // over a channel. - // - // Example: - // func f(c chan int) { - // for k, v := range c { - // println(k, v) - // } - // } - InvalidIterVar - - // InvalidRangeExpr occurs when the type of a range expression is not array, - // slice, string, map, or channel. - // - // Example: - // func f(i int) { - // for j := range i { - // println(j) - // } - // } - InvalidRangeExpr - - /* control flow > switch */ - - // MisplacedBreak occurs when a break statement is not within a for, switch, - // or select statement of the innermost function definition. - // - // Example: - // func f() { - // break - // } - MisplacedBreak - - // MisplacedContinue occurs when a continue statement is not within a for - // loop of the innermost function definition. - // - // Example: - // func sumeven(n int) int { - // proceed := func() { - // continue - // } - // sum := 0 - // for i := 1; i <= n; i++ { - // if i % 2 != 0 { - // proceed() - // } - // sum += i - // } - // return sum - // } - MisplacedContinue - - // MisplacedFallthrough occurs when a fallthrough statement is not within an - // expression switch. - // - // Example: - // func typename(i interface{}) string { - // switch i.(type) { - // case int64: - // fallthrough - // case int: - // return "int" - // } - // return "unsupported" - // } - MisplacedFallthrough - - // DuplicateCase occurs when a type or expression switch has duplicate - // cases. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // case 1: - // println("One") - // } - // } - DuplicateCase - - // DuplicateDefault occurs when a type or expression switch has multiple - // default clauses. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // default: - // println("One") - // default: - // println("1") - // } - // } - DuplicateDefault - - // BadTypeKeyword occurs when a .(type) expression is used anywhere other - // than a type switch. - // - // Example: - // type I interface { - // m() - // } - // var t I - // var _ = t.(type) - BadTypeKeyword - - // InvalidTypeSwitch occurs when .(type) is used on an expression that is - // not of interface type. - // - // Example: - // func f(i int) { - // switch x := i.(type) {} - // } - InvalidTypeSwitch - - // InvalidExprSwitch occurs when a switch expression is not comparable. - // - // Example: - // func _() { - // var a struct{ _ func() } - // switch a /* ERROR cannot switch on a */ { - // } - // } - InvalidExprSwitch - - /* control flow > select */ - - // InvalidSelectCase occurs when a select case is not a channel send or - // receive. - // - // Example: - // func checkChan(c <-chan int) bool { - // select { - // case c: - // return true - // default: - // return false - // } - // } - InvalidSelectCase - - /* control flow > labels and jumps */ - - // UndeclaredLabel occurs when an undeclared label is jumped to. - // - // Example: - // func f() { - // goto L - // } - UndeclaredLabel - - // DuplicateLabel occurs when a label is declared more than once. - // - // Example: - // func f() int { - // L: - // L: - // return 1 - // } - DuplicateLabel - - // MisplacedLabel occurs when a break or continue label is not on a for, - // switch, or select statement. - // - // Example: - // func f() { - // L: - // a := []int{1,2,3} - // for _, e := range a { - // if e > 10 { - // break L - // } - // println(a) - // } - // } - MisplacedLabel - - // UnusedLabel occurs when a label is declared but not used. - // - // Example: - // func f() { - // L: - // } - UnusedLabel - - // JumpOverDecl occurs when a label jumps over a variable declaration. - // - // Example: - // func f() int { - // goto L - // x := 2 - // L: - // x++ - // return x - // } - JumpOverDecl - - // JumpIntoBlock occurs when a forward jump goes to a label inside a nested - // block. - // - // Example: - // func f(x int) { - // goto L - // if x > 0 { - // L: - // print("inside block") - // } - // } - JumpIntoBlock - - /* control flow > calls */ - - // InvalidMethodExpr occurs when a pointer method is called but the argument - // is not addressable. - // - // Example: - // type T struct {} - // - // func (*T) m() int { return 1 } - // - // var _ = T.m(T{}) - InvalidMethodExpr - - // WrongArgCount occurs when too few or too many arguments are passed by a - // function call. - // - // Example: - // func f(i int) {} - // var x = f() - WrongArgCount - - // InvalidCall occurs when an expression is called that is not of function - // type. - // - // Example: - // var x = "x" - // var y = x() - InvalidCall - - /* control flow > suspended */ - - // UnusedResults occurs when a restricted expression-only built-in function - // is suspended via go or defer. Such a suspension discards the results of - // these side-effect free built-in functions, and therefore is ineffectual. - // - // Example: - // func f(a []int) int { - // defer len(a) - // return i - // } - UnusedResults - - // InvalidDefer occurs when a deferred expression is not a function call, - // for example if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // defer int32(i) - // return i - // } - InvalidDefer - - // InvalidGo occurs when a go expression is not a function call, for example - // if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // go int32(i) - // return i - // } - InvalidGo - - // All codes below were added in Go 1.17. - - /* decl */ - - // BadDecl occurs when a declaration has invalid syntax. - BadDecl - - // RepeatedDecl occurs when an identifier occurs more than once on the left - // hand side of a short variable declaration. - // - // Example: - // func _() { - // x, y, y := 1, 2, 3 - // } - RepeatedDecl - - /* unsafe */ - - // InvalidUnsafeAdd occurs when unsafe.Add is called with a - // length argument that is not of integer type. - // - // Example: - // import "unsafe" - // - // var p unsafe.Pointer - // var _ = unsafe.Add(p, float64(1)) - InvalidUnsafeAdd - - // InvalidUnsafeSlice occurs when unsafe.Slice is called with a - // pointer argument that is not of pointer type or a length argument - // that is not of integer type, negative, or out of bounds. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(x, 1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, float64(1)) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, -1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, uint64(1) << 63) - InvalidUnsafeSlice - - // All codes below were added in Go 1.18. - - /* features */ - - // UnsupportedFeature occurs when a language feature is used that is not - // supported at this Go version. - UnsupportedFeature - - /* type params */ - - // NotAGenericType occurs when a non-generic type is used where a generic - // type is expected: in type or function instantiation. - // - // Example: - // type T int - // - // var _ T[int] - NotAGenericType - - // WrongTypeArgCount occurs when a type or function is instantiated with an - // incorrect number of type arguments, including when a generic type or - // function is used without instantiation. - // - // Errors involving failed type inference are assigned other error codes. - // - // Example: - // type T[p any] int - // - // var _ T[int, string] - // - // Example: - // func f[T any]() {} - // - // var x = f - WrongTypeArgCount - - // CannotInferTypeArgs occurs when type or function type argument inference - // fails to infer all type arguments. - // - // Example: - // func f[T any]() {} - // - // func _() { - // f() - // } - // - // Example: - // type N[P, Q any] struct{} - // - // var _ N[int] - CannotInferTypeArgs - - // InvalidTypeArg occurs when a type argument does not satisfy its - // corresponding type parameter constraints. - // - // Example: - // type T[P ~int] struct{} - // - // var _ T[string] - InvalidTypeArg // arguments? InferenceFailed - - // InvalidInstanceCycle occurs when an invalid cycle is detected - // within the instantiation graph. - // - // Example: - // func f[T any]() { f[*T]() } - InvalidInstanceCycle - - // InvalidUnion occurs when an embedded union or approximation element is - // not valid. - // - // Example: - // type _ interface { - // ~int | interface{ m() } - // } - InvalidUnion - - // MisplacedConstraintIface occurs when a constraint-type interface is used - // outside of constraint position. - // - // Example: - // type I interface { ~int } - // - // var _ I - MisplacedConstraintIface - - // InvalidMethodTypeParams occurs when methods have type parameters. - // - // It cannot be encountered with an AST parsed using go/parser. - InvalidMethodTypeParams - - // MisplacedTypeParam occurs when a type parameter is used in a place where - // it is not permitted. - // - // Example: - // type T[P any] P - // - // Example: - // type T[P any] struct{ *P } - MisplacedTypeParam - - // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with - // an argument that is not of slice type. It also occurs if it is used - // in a package compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.SliceData(x) - InvalidUnsafeSliceData - - // InvalidUnsafeString occurs when unsafe.String is called with - // a length argument that is not of integer type, negative, or - // out of bounds. It also occurs if it is used in a package - // compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var b [10]byte - // var _ = unsafe.String(&b[0], -1) - InvalidUnsafeString - - // InvalidUnsafeStringData occurs if it is used in a package - // compiled for a language version before go1.20. - _ // not used anymore - -) diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go deleted file mode 100644 index 15ecf7c..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. - -package typesinternal - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[InvalidSyntaxTree - -1] - _ = x[Test-1] - _ = x[BlankPkgName-2] - _ = x[MismatchedPkgName-3] - _ = x[InvalidPkgUse-4] - _ = x[BadImportPath-5] - _ = x[BrokenImport-6] - _ = x[ImportCRenamed-7] - _ = x[UnusedImport-8] - _ = x[InvalidInitCycle-9] - _ = x[DuplicateDecl-10] - _ = x[InvalidDeclCycle-11] - _ = x[InvalidTypeCycle-12] - _ = x[InvalidConstInit-13] - _ = x[InvalidConstVal-14] - _ = x[InvalidConstType-15] - _ = x[UntypedNilUse-16] - _ = x[WrongAssignCount-17] - _ = x[UnassignableOperand-18] - _ = x[NoNewVar-19] - _ = x[MultiValAssignOp-20] - _ = x[InvalidIfaceAssign-21] - _ = x[InvalidChanAssign-22] - _ = x[IncompatibleAssign-23] - _ = x[UnaddressableFieldAssign-24] - _ = x[NotAType-25] - _ = x[InvalidArrayLen-26] - _ = x[BlankIfaceMethod-27] - _ = x[IncomparableMapKey-28] - _ = x[InvalidIfaceEmbed-29] - _ = x[InvalidPtrEmbed-30] - _ = x[BadRecv-31] - _ = x[InvalidRecv-32] - _ = x[DuplicateFieldAndMethod-33] - _ = x[DuplicateMethod-34] - _ = x[InvalidBlank-35] - _ = x[InvalidIota-36] - _ = x[MissingInitBody-37] - _ = x[InvalidInitSig-38] - _ = x[InvalidInitDecl-39] - _ = x[InvalidMainDecl-40] - _ = x[TooManyValues-41] - _ = x[NotAnExpr-42] - _ = x[TruncatedFloat-43] - _ = x[NumericOverflow-44] - _ = x[UndefinedOp-45] - _ = x[MismatchedTypes-46] - _ = x[DivByZero-47] - _ = x[NonNumericIncDec-48] - _ = x[UnaddressableOperand-49] - _ = x[InvalidIndirection-50] - _ = x[NonIndexableOperand-51] - _ = x[InvalidIndex-52] - _ = x[SwappedSliceIndices-53] - _ = x[NonSliceableOperand-54] - _ = x[InvalidSliceExpr-55] - _ = x[InvalidShiftCount-56] - _ = x[InvalidShiftOperand-57] - _ = x[InvalidReceive-58] - _ = x[InvalidSend-59] - _ = x[DuplicateLitKey-60] - _ = x[MissingLitKey-61] - _ = x[InvalidLitIndex-62] - _ = x[OversizeArrayLit-63] - _ = x[MixedStructLit-64] - _ = x[InvalidStructLit-65] - _ = x[MissingLitField-66] - _ = x[DuplicateLitField-67] - _ = x[UnexportedLitField-68] - _ = x[InvalidLitField-69] - _ = x[UntypedLit-70] - _ = x[InvalidLit-71] - _ = x[AmbiguousSelector-72] - _ = x[UndeclaredImportedName-73] - _ = x[UnexportedName-74] - _ = x[UndeclaredName-75] - _ = x[MissingFieldOrMethod-76] - _ = x[BadDotDotDotSyntax-77] - _ = x[NonVariadicDotDotDot-78] - _ = x[MisplacedDotDotDot-79] - _ = x[InvalidDotDotDotOperand-80] - _ = x[InvalidDotDotDot-81] - _ = x[UncalledBuiltin-82] - _ = x[InvalidAppend-83] - _ = x[InvalidCap-84] - _ = x[InvalidClose-85] - _ = x[InvalidCopy-86] - _ = x[InvalidComplex-87] - _ = x[InvalidDelete-88] - _ = x[InvalidImag-89] - _ = x[InvalidLen-90] - _ = x[SwappedMakeArgs-91] - _ = x[InvalidMake-92] - _ = x[InvalidReal-93] - _ = x[InvalidAssert-94] - _ = x[ImpossibleAssert-95] - _ = x[InvalidConversion-96] - _ = x[InvalidUntypedConversion-97] - _ = x[BadOffsetofSyntax-98] - _ = x[InvalidOffsetof-99] - _ = x[UnusedExpr-100] - _ = x[UnusedVar-101] - _ = x[MissingReturn-102] - _ = x[WrongResultCount-103] - _ = x[OutOfScopeResult-104] - _ = x[InvalidCond-105] - _ = x[InvalidPostDecl-106] - _ = x[InvalidChanRange-107] - _ = x[InvalidIterVar-108] - _ = x[InvalidRangeExpr-109] - _ = x[MisplacedBreak-110] - _ = x[MisplacedContinue-111] - _ = x[MisplacedFallthrough-112] - _ = x[DuplicateCase-113] - _ = x[DuplicateDefault-114] - _ = x[BadTypeKeyword-115] - _ = x[InvalidTypeSwitch-116] - _ = x[InvalidExprSwitch-117] - _ = x[InvalidSelectCase-118] - _ = x[UndeclaredLabel-119] - _ = x[DuplicateLabel-120] - _ = x[MisplacedLabel-121] - _ = x[UnusedLabel-122] - _ = x[JumpOverDecl-123] - _ = x[JumpIntoBlock-124] - _ = x[InvalidMethodExpr-125] - _ = x[WrongArgCount-126] - _ = x[InvalidCall-127] - _ = x[UnusedResults-128] - _ = x[InvalidDefer-129] - _ = x[InvalidGo-130] - _ = x[BadDecl-131] - _ = x[RepeatedDecl-132] - _ = x[InvalidUnsafeAdd-133] - _ = x[InvalidUnsafeSlice-134] - _ = x[UnsupportedFeature-135] - _ = x[NotAGenericType-136] - _ = x[WrongTypeArgCount-137] - _ = x[CannotInferTypeArgs-138] - _ = x[InvalidTypeArg-139] - _ = x[InvalidInstanceCycle-140] - _ = x[InvalidUnion-141] - _ = x[MisplacedConstraintIface-142] - _ = x[InvalidMethodTypeParams-143] - _ = x[MisplacedTypeParam-144] - _ = x[InvalidUnsafeSliceData-145] - _ = x[InvalidUnsafeString-146] -} - -const ( - _ErrorCode_name_0 = "InvalidSyntaxTree" - _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" -) - -var ( - _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} -) - -func (i ErrorCode) String() string { - switch { - case i == -1: - return _ErrorCode_name_0 - case 1 <= i && i <= 146: - i -= 1 - return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] - default: - return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" - } -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go deleted file mode 100644 index b64f714..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/ast" - "go/types" - "strconv" -) - -// FileQualifier returns a [types.Qualifier] function that qualifies -// imported symbols appropriately based on the import environment of a given -// file. -// If the same package is imported multiple times, the last appearance is -// recorded. -func FileQualifier(f *ast.File, pkg *types.Package) types.Qualifier { - // Construct mapping of import paths to their defined names. - // It is only necessary to look at renaming imports. - imports := make(map[string]string) - for _, imp := range f.Imports { - if imp.Name != nil && imp.Name.Name != "_" { - path, _ := strconv.Unquote(imp.Path.Value) - imports[path] = imp.Name.Name - } - } - - // Define qualifier to replace full package paths with names of the imports. - return func(p *types.Package) string { - if p == nil || p == pkg { - return "" - } - - if name, ok := imports[p.Path()]; ok { - if name == "." { - return "" - } else { - return name - } - } - - // If there is no local renaming, fall back to the package name. - return p.Name() - } -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go deleted file mode 100644 index 8352ea7..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/recv.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/types" -) - -// ReceiverNamed returns the named type (if any) associated with the -// type of recv, which may be of the form N or *N, or aliases thereof. -// It also reports whether a Pointer was present. -// -// The named result may be nil if recv is from a method on an -// anonymous interface or struct types or in ill-typed code. -func ReceiverNamed(recv *types.Var) (isPtr bool, named *types.Named) { - t := recv.Type() - if ptr, ok := types.Unalias(t).(*types.Pointer); ok { - isPtr = true - t = ptr.Elem() - } - named, _ = types.Unalias(t).(*types.Named) - return -} - -// Unpointer returns T given *T or an alias thereof. -// For all other types it is the identity function. -// It does not look at underlying types. -// The result may be an alias. -// -// Use this function to strip off the optional pointer on a receiver -// in a field or method selection, without losing the named type -// (which is needed to compute the method set). -// -// See also [typeparams.MustDeref], which removes one level of -// indirection from the type, regardless of named types (analogous to -// a LOAD instruction). -func Unpointer(t types.Type) types.Type { - if ptr, ok := types.Unalias(t).(*types.Pointer); ok { - return ptr.Elem() - } - return t -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go deleted file mode 100644 index cc86487..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/types" - - "golang.org/x/tools/internal/stdlib" - "golang.org/x/tools/internal/versions" -) - -// TooNewStdSymbols computes the set of package-level symbols -// exported by pkg that are not available at the specified version. -// The result maps each symbol to its minimum version. -// -// The pkg is allowed to contain type errors. -func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string { - disallowed := make(map[types.Object]string) - - // Pass 1: package-level symbols. - symbols := stdlib.PackageSymbols[pkg.Path()] - for _, sym := range symbols { - symver := sym.Version.String() - if versions.Before(version, symver) { - switch sym.Kind { - case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type: - disallowed[pkg.Scope().Lookup(sym.Name)] = symver - } - } - } - - // Pass 2: fields and methods. - // - // We allow fields and methods if their associated type is - // disallowed, as otherwise we would report false positives - // for compatibility shims. Consider: - // - // //go:build go1.22 - // type T struct { F std.Real } // correct new API - // - // //go:build !go1.22 - // type T struct { F fake } // shim - // type fake struct { ... } - // func (fake) M () {} - // - // These alternative declarations of T use either the std.Real - // type, introduced in go1.22, or a fake type, for the field - // F. (The fakery could be arbitrarily deep, involving more - // nested fields and methods than are shown here.) Clients - // that use the compatibility shim T will compile with any - // version of go, whether older or newer than go1.22, but only - // the newer version will use the std.Real implementation. - // - // Now consider a reference to method M in new(T).F.M() in a - // module that requires a minimum of go1.21. The analysis may - // occur using a version of Go higher than 1.21, selecting the - // first version of T, so the method M is Real.M. This would - // spuriously cause the analyzer to report a reference to a - // too-new symbol even though this expression compiles just - // fine (with the fake implementation) using go1.21. - for _, sym := range symbols { - symVersion := sym.Version.String() - if !versions.Before(version, symVersion) { - continue // allowed - } - - var obj types.Object - switch sym.Kind { - case stdlib.Field: - typename, name := sym.SplitField() - if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" { - obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name) - } - - case stdlib.Method: - ptr, recvname, name := sym.SplitMethod() - if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" { - obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name) - } - } - if obj != nil { - disallowed[obj] = symVersion - } - } - - return disallowed -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go deleted file mode 100644 index a5cd7e8..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ /dev/null @@ -1,155 +0,0 @@ -// 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 typesinternal provides access to internal go/types APIs that are not -// yet exported. -package typesinternal - -import ( - "go/ast" - "go/token" - "go/types" - "reflect" - "unsafe" - - "golang.org/x/tools/internal/aliases" -) - -func SetUsesCgo(conf *types.Config) bool { - v := reflect.ValueOf(conf).Elem() - - f := v.FieldByName("go115UsesCgo") - if !f.IsValid() { - f = v.FieldByName("UsesCgo") - if !f.IsValid() { - return false - } - } - - addr := unsafe.Pointer(f.UnsafeAddr()) - *(*bool)(addr) = true - - return true -} - -// ErrorCodeStartEnd extracts additional information from types.Error values -// generated by Go version 1.16 and later: the error code, start position, and -// end position. If all positions are valid, start <= err.Pos <= end. -// -// If the data could not be read, the final result parameter will be false. -// -// TODO(adonovan): eliminate start/end when proposal #71803 is accepted. -func ErrorCodeStartEnd(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { - var data [3]int - // By coincidence all of these fields are ints, which simplifies things. - v := reflect.ValueOf(err) - for i, name := range []string{"go116code", "go116start", "go116end"} { - f := v.FieldByName(name) - if !f.IsValid() { - return 0, 0, 0, false - } - data[i] = int(f.Int()) - } - return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true -} - -// NameRelativeTo returns a types.Qualifier that qualifies members of -// all packages other than pkg, using only the package name. -// (By contrast, [types.RelativeTo] uses the complete package path, -// which is often excessive.) -// -// If pkg is nil, it is equivalent to [*types.Package.Name]. -func NameRelativeTo(pkg *types.Package) types.Qualifier { - return func(other *types.Package) string { - if pkg != nil && pkg == other { - return "" // same package; unqualified - } - return other.Name() - } -} - -// TypeNameFor returns the type name symbol for the specified type, if -// it is a [*types.Alias], [*types.Named], [*types.TypeParam], or a -// [*types.Basic] representing a type. -// -// For all other types, and for Basic types representing a builtin, -// constant, or nil, it returns nil. Be careful not to convert the -// resulting nil pointer to a [types.Object]! -// -// If t is the type of a constant, it may be an "untyped" type, which -// has no TypeName. To access the name of such types (e.g. "untyped -// int"), use [types.Basic.Name]. -func TypeNameFor(t types.Type) *types.TypeName { - switch t := t.(type) { - case *types.Alias: - return t.Obj() - case *types.Named: - return t.Obj() - case *types.TypeParam: - return t.Obj() - case *types.Basic: - // See issues #71886 and #66890 for some history. - if tname, ok := types.Universe.Lookup(t.Name()).(*types.TypeName); ok { - return tname - } - } - return nil -} - -// A NamedOrAlias is a [types.Type] that is named (as -// defined by the spec) and capable of bearing type parameters: it -// abstracts aliases ([types.Alias]) and defined types -// ([types.Named]). -// -// Every type declared by an explicit "type" declaration is a -// NamedOrAlias. (Built-in type symbols may additionally -// have type [types.Basic], which is not a NamedOrAlias, -// though the spec regards them as "named"; see [TypeNameFor].) -// -// NamedOrAlias cannot expose the Origin method, because -// [types.Alias.Origin] and [types.Named.Origin] have different -// (covariant) result types; use [Origin] instead. -type NamedOrAlias interface { - types.Type - Obj() *types.TypeName - TypeArgs() *types.TypeList - TypeParams() *types.TypeParamList - SetTypeParams(tparams []*types.TypeParam) -} - -var ( - _ NamedOrAlias = (*types.Alias)(nil) - _ NamedOrAlias = (*types.Named)(nil) -) - -// Origin returns the generic type of the Named or Alias type t if it -// is instantiated, otherwise it returns t. -func Origin(t NamedOrAlias) NamedOrAlias { - switch t := t.(type) { - case *types.Alias: - return aliases.Origin(t) - case *types.Named: - return t.Origin() - } - return t -} - -// IsPackageLevel reports whether obj is a package-level symbol. -func IsPackageLevel(obj types.Object) bool { - return obj.Pkg() != nil && obj.Parent() == obj.Pkg().Scope() -} - -// NewTypesInfo returns a *types.Info with all maps populated. -func NewTypesInfo() *types.Info { - return &types.Info{ - Types: map[ast.Expr]types.TypeAndValue{}, - Instances: map[*ast.Ident]types.Instance{}, - Defs: map[*ast.Ident]types.Object{}, - Uses: map[*ast.Ident]types.Object{}, - Implicits: map[ast.Node]types.Object{}, - Selections: map[*ast.SelectorExpr]*types.Selection{}, - Scopes: map[ast.Node]*types.Scope{}, - FileVersions: map[*ast.File]string{}, - } -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/varkind.go b/vendor/golang.org/x/tools/internal/typesinternal/varkind.go deleted file mode 100644 index e5da049..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/varkind.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -// TODO(adonovan): when CL 645115 lands, define the go1.25 version of -// this API that actually does something. - -import "go/types" - -type VarKind uint8 - -const ( - _ VarKind = iota // (not meaningful) - PackageVar // a package-level variable - LocalVar // a local variable - RecvVar // a method receiver variable - ParamVar // a function parameter variable - ResultVar // a function result variable - FieldVar // a struct field -) - -func (kind VarKind) String() string { - return [...]string{ - 0: "VarKind(0)", - PackageVar: "PackageVar", - LocalVar: "LocalVar", - RecvVar: "RecvVar", - ParamVar: "ParamVar", - ResultVar: "ResultVar", - FieldVar: "FieldVar", - }[kind] -} - -// GetVarKind returns an invalid VarKind. -func GetVarKind(v *types.Var) VarKind { return 0 } - -// SetVarKind has no effect. -func SetVarKind(v *types.Var, kind VarKind) {} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go deleted file mode 100644 index d272949..0000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "fmt" - "go/ast" - "go/token" - "go/types" - "strings" -) - -// ZeroString returns the string representation of the zero value for any type t. -// The boolean result indicates whether the type is or contains an invalid type -// or a non-basic (constraint) interface type. -// -// Even for invalid input types, ZeroString may return a partially correct -// string representation. The caller should use the returned isValid boolean -// to determine the validity of the expression. -// -// When assigning to a wider type (such as 'any'), it's the caller's -// responsibility to handle any necessary type conversions. -// -// This string can be used on the right-hand side of an assignment where the -// left-hand side has that explicit type. -// References to named types are qualified by an appropriate (optional) -// qualifier function. -// Exception: This does not apply to tuples. Their string representation is -// informational only and cannot be used in an assignment. -// -// See [ZeroExpr] for a variant that returns an [ast.Expr]. -func ZeroString(t types.Type, qual types.Qualifier) (_ string, isValid bool) { - switch t := t.(type) { - case *types.Basic: - switch { - case t.Info()&types.IsBoolean != 0: - return "false", true - case t.Info()&types.IsNumeric != 0: - return "0", true - case t.Info()&types.IsString != 0: - return `""`, true - case t.Kind() == types.UnsafePointer: - fallthrough - case t.Kind() == types.UntypedNil: - return "nil", true - case t.Kind() == types.Invalid: - return "invalid", false - default: - panic(fmt.Sprintf("ZeroString for unexpected type %v", t)) - } - - case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: - return "nil", true - - case *types.Interface: - if !t.IsMethodSet() { - return "invalid", false - } - return "nil", true - - case *types.Named: - switch under := t.Underlying().(type) { - case *types.Struct, *types.Array: - return types.TypeString(t, qual) + "{}", true - default: - return ZeroString(under, qual) - } - - case *types.Alias: - switch t.Underlying().(type) { - case *types.Struct, *types.Array: - return types.TypeString(t, qual) + "{}", true - default: - // A type parameter can have alias but alias type's underlying type - // can never be a type parameter. - // Use types.Unalias to preserve the info of type parameter instead - // of call Underlying() going right through and get the underlying - // type of the type parameter which is always an interface. - return ZeroString(types.Unalias(t), qual) - } - - case *types.Array, *types.Struct: - return types.TypeString(t, qual) + "{}", true - - case *types.TypeParam: - // Assumes func new is not shadowed. - return "*new(" + types.TypeString(t, qual) + ")", true - - case *types.Tuple: - // Tuples are not normal values. - // We are currently format as "(t[0], ..., t[n])". Could be something else. - isValid := true - components := make([]string, t.Len()) - for i := 0; i < t.Len(); i++ { - comp, ok := ZeroString(t.At(i).Type(), qual) - - components[i] = comp - isValid = isValid && ok - } - return "(" + strings.Join(components, ", ") + ")", isValid - - case *types.Union: - // Variables of these types cannot be created, so it makes - // no sense to ask for their zero value. - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - default: - panic(t) // unreachable. - } -} - -// ZeroExpr returns the ast.Expr representation of the zero value for any type t. -// The boolean result indicates whether the type is or contains an invalid type -// or a non-basic (constraint) interface type. -// -// Even for invalid input types, ZeroExpr may return a partially correct ast.Expr -// representation. The caller should use the returned isValid boolean to determine -// the validity of the expression. -// -// This function is designed for types suitable for variables and should not be -// used with Tuple or Union types.References to named types are qualified by an -// appropriate (optional) qualifier function. -// -// See [ZeroString] for a variant that returns a string. -func ZeroExpr(t types.Type, qual types.Qualifier) (_ ast.Expr, isValid bool) { - switch t := t.(type) { - case *types.Basic: - switch { - case t.Info()&types.IsBoolean != 0: - return &ast.Ident{Name: "false"}, true - case t.Info()&types.IsNumeric != 0: - return &ast.BasicLit{Kind: token.INT, Value: "0"}, true - case t.Info()&types.IsString != 0: - return &ast.BasicLit{Kind: token.STRING, Value: `""`}, true - case t.Kind() == types.UnsafePointer: - fallthrough - case t.Kind() == types.UntypedNil: - return ast.NewIdent("nil"), true - case t.Kind() == types.Invalid: - return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false - default: - panic(fmt.Sprintf("ZeroExpr for unexpected type %v", t)) - } - - case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: - return ast.NewIdent("nil"), true - - case *types.Interface: - if !t.IsMethodSet() { - return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false - } - return ast.NewIdent("nil"), true - - case *types.Named: - switch under := t.Underlying().(type) { - case *types.Struct, *types.Array: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - default: - return ZeroExpr(under, qual) - } - - case *types.Alias: - switch t.Underlying().(type) { - case *types.Struct, *types.Array: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - default: - return ZeroExpr(types.Unalias(t), qual) - } - - case *types.Array, *types.Struct: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - - case *types.TypeParam: - return &ast.StarExpr{ // *new(T) - X: &ast.CallExpr{ - // Assumes func new is not shadowed. - Fun: ast.NewIdent("new"), - Args: []ast.Expr{ - ast.NewIdent(t.Obj().Name()), - }, - }, - }, true - - case *types.Tuple: - // Unlike ZeroString, there is no ast.Expr can express tuple by - // "(t[0], ..., t[n])". - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - case *types.Union: - // Variables of these types cannot be created, so it makes - // no sense to ask for their zero value. - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - default: - panic(t) // unreachable. - } -} - -// IsZeroExpr uses simple syntactic heuristics to report whether expr -// is a obvious zero value, such as 0, "", nil, or false. -// It cannot do better without type information. -func IsZeroExpr(expr ast.Expr) bool { - switch e := expr.(type) { - case *ast.BasicLit: - return e.Value == "0" || e.Value == `""` - case *ast.Ident: - return e.Name == "nil" || e.Name == "false" - default: - return false - } -} - -// TypeExpr returns syntax for the specified type. References to named types -// are qualified by an appropriate (optional) qualifier function. -// It may panic for types such as Tuple or Union. -func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { - switch t := t.(type) { - case *types.Basic: - switch t.Kind() { - case types.UnsafePointer: - return &ast.SelectorExpr{X: ast.NewIdent(qual(types.NewPackage("unsafe", "unsafe"))), Sel: ast.NewIdent("Pointer")} - default: - return ast.NewIdent(t.Name()) - } - - case *types.Pointer: - return &ast.UnaryExpr{ - Op: token.MUL, - X: TypeExpr(t.Elem(), qual), - } - - case *types.Array: - return &ast.ArrayType{ - Len: &ast.BasicLit{ - Kind: token.INT, - Value: fmt.Sprintf("%d", t.Len()), - }, - Elt: TypeExpr(t.Elem(), qual), - } - - case *types.Slice: - return &ast.ArrayType{ - Elt: TypeExpr(t.Elem(), qual), - } - - case *types.Map: - return &ast.MapType{ - Key: TypeExpr(t.Key(), qual), - Value: TypeExpr(t.Elem(), qual), - } - - case *types.Chan: - dir := ast.ChanDir(t.Dir()) - if t.Dir() == types.SendRecv { - dir = ast.SEND | ast.RECV - } - return &ast.ChanType{ - Dir: dir, - Value: TypeExpr(t.Elem(), qual), - } - - case *types.Signature: - var params []*ast.Field - for i := 0; i < t.Params().Len(); i++ { - params = append(params, &ast.Field{ - Type: TypeExpr(t.Params().At(i).Type(), qual), - Names: []*ast.Ident{ - { - Name: t.Params().At(i).Name(), - }, - }, - }) - } - if t.Variadic() { - last := params[len(params)-1] - last.Type = &ast.Ellipsis{Elt: last.Type.(*ast.ArrayType).Elt} - } - var returns []*ast.Field - for i := 0; i < t.Results().Len(); i++ { - returns = append(returns, &ast.Field{ - Type: TypeExpr(t.Results().At(i).Type(), qual), - }) - } - return &ast.FuncType{ - Params: &ast.FieldList{ - List: params, - }, - Results: &ast.FieldList{ - List: returns, - }, - } - - case *types.TypeParam: - pkgName := qual(t.Obj().Pkg()) - if pkgName == "" || t.Obj().Pkg() == nil { - return ast.NewIdent(t.Obj().Name()) - } - return &ast.SelectorExpr{ - X: ast.NewIdent(pkgName), - Sel: ast.NewIdent(t.Obj().Name()), - } - - // types.TypeParam also implements interface NamedOrAlias. To differentiate, - // case TypeParam need to be present before case NamedOrAlias. - // TODO(hxjiang): remove this comment once TypeArgs() is added to interface - // NamedOrAlias. - case NamedOrAlias: - var expr ast.Expr = ast.NewIdent(t.Obj().Name()) - if pkgName := qual(t.Obj().Pkg()); pkgName != "." && pkgName != "" { - expr = &ast.SelectorExpr{ - X: ast.NewIdent(pkgName), - Sel: expr.(*ast.Ident), - } - } - - // TODO(hxjiang): call t.TypeArgs after adding method TypeArgs() to - // typesinternal.NamedOrAlias. - if hasTypeArgs, ok := t.(interface{ TypeArgs() *types.TypeList }); ok { - if typeArgs := hasTypeArgs.TypeArgs(); typeArgs != nil && typeArgs.Len() > 0 { - var indices []ast.Expr - for i := range typeArgs.Len() { - indices = append(indices, TypeExpr(typeArgs.At(i), qual)) - } - expr = &ast.IndexListExpr{ - X: expr, - Indices: indices, - } - } - } - - return expr - - case *types.Struct: - return ast.NewIdent(t.String()) - - case *types.Interface: - return ast.NewIdent(t.String()) - - case *types.Union: - if t.Len() == 0 { - panic("Union type should have at least one term") - } - // Same as go/ast, the return expression will put last term in the - // Y field at topmost level of BinaryExpr. - // For union of type "float32 | float64 | int64", the structure looks - // similar to: - // { - // X: { - // X: float32, - // Op: | - // Y: float64, - // } - // Op: |, - // Y: int64, - // } - var union ast.Expr - for i := range t.Len() { - term := t.Term(i) - termExpr := TypeExpr(term.Type(), qual) - if term.Tilde() { - termExpr = &ast.UnaryExpr{ - Op: token.TILDE, - X: termExpr, - } - } - if i == 0 { - union = termExpr - } else { - union = &ast.BinaryExpr{ - X: union, - Op: token.OR, - Y: termExpr, - } - } - } - return union - - case *types.Tuple: - panic("invalid input type types.Tuple") - - default: - panic("unreachable") - } -} diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go deleted file mode 100644 index b53f178..0000000 --- a/vendor/golang.org/x/tools/internal/versions/features.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -// This file contains predicates for working with file versions to -// decide when a tool should consider a language feature enabled. - -// GoVersions that features in x/tools can be gated to. -const ( - Go1_18 = "go1.18" - Go1_19 = "go1.19" - Go1_20 = "go1.20" - Go1_21 = "go1.21" - Go1_22 = "go1.22" -) - -// Future is an invalid unknown Go version sometime in the future. -// Do not use directly with Compare. -const Future = "" - -// AtLeast reports whether the file version v comes after a Go release. -// -// Use this predicate to enable a behavior once a certain Go release -// has happened (and stays enabled in the future). -func AtLeast(v, release string) bool { - if v == Future { - return true // an unknown future version is always after y. - } - return Compare(Lang(v), Lang(release)) >= 0 -} - -// Before reports whether the file version v is strictly before a Go release. -// -// Use this predicate to disable a behavior once a certain Go release -// has happened (and stays enabled in the future). -func Before(v, release string) bool { - if v == Future { - return false // an unknown future version happens after y. - } - return Compare(Lang(v), Lang(release)) < 0 -} diff --git a/vendor/golang.org/x/tools/internal/versions/gover.go b/vendor/golang.org/x/tools/internal/versions/gover.go deleted file mode 100644 index bbabcd2..0000000 --- a/vendor/golang.org/x/tools/internal/versions/gover.go +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This is a fork of internal/gover for use by x/tools until -// go1.21 and earlier are no longer supported by x/tools. - -package versions - -import "strings" - -// A gover is a parsed Go gover: major[.Minor[.Patch]][kind[pre]] -// The numbers are the original decimal strings to avoid integer overflows -// and since there is very little actual math. (Probably overflow doesn't matter in practice, -// but at the time this code was written, there was an existing test that used -// go1.99999999999, which does not fit in an int on 32-bit platforms. -// The "big decimal" representation avoids the problem entirely.) -type gover struct { - major string // decimal - minor string // decimal or "" - patch string // decimal or "" - kind string // "", "alpha", "beta", "rc" - pre string // decimal or "" -} - -// compare returns -1, 0, or +1 depending on whether -// x < y, x == y, or x > y, interpreted as toolchain versions. -// The versions x and y must not begin with a "go" prefix: just "1.21" not "go1.21". -// Malformed versions compare less than well-formed versions and equal to each other. -// The language version "1.21" compares less than the release candidate and eventual releases "1.21rc1" and "1.21.0". -func compare(x, y string) int { - vx := parse(x) - vy := parse(y) - - if c := cmpInt(vx.major, vy.major); c != 0 { - return c - } - if c := cmpInt(vx.minor, vy.minor); c != 0 { - return c - } - if c := cmpInt(vx.patch, vy.patch); c != 0 { - return c - } - if c := strings.Compare(vx.kind, vy.kind); c != 0 { // "" < alpha < beta < rc - return c - } - if c := cmpInt(vx.pre, vy.pre); c != 0 { - return c - } - return 0 -} - -// lang returns the Go language version. For example, lang("1.2.3") == "1.2". -func lang(x string) string { - v := parse(x) - if v.minor == "" || v.major == "1" && v.minor == "0" { - return v.major - } - return v.major + "." + v.minor -} - -// isValid reports whether the version x is valid. -func isValid(x string) bool { - return parse(x) != gover{} -} - -// parse parses the Go version string x into a version. -// It returns the zero version if x is malformed. -func parse(x string) gover { - var v gover - - // Parse major version. - var ok bool - v.major, x, ok = cutInt(x) - if !ok { - return gover{} - } - if x == "" { - // Interpret "1" as "1.0.0". - v.minor = "0" - v.patch = "0" - return v - } - - // Parse . before minor version. - if x[0] != '.' { - return gover{} - } - - // Parse minor version. - v.minor, x, ok = cutInt(x[1:]) - if !ok { - return gover{} - } - if x == "" { - // Patch missing is same as "0" for older versions. - // Starting in Go 1.21, patch missing is different from explicit .0. - if cmpInt(v.minor, "21") < 0 { - v.patch = "0" - } - return v - } - - // Parse patch if present. - if x[0] == '.' { - v.patch, x, ok = cutInt(x[1:]) - if !ok || x != "" { - // Note that we are disallowing prereleases (alpha, beta, rc) for patch releases here (x != ""). - // Allowing them would be a bit confusing because we already have: - // 1.21 < 1.21rc1 - // But a prerelease of a patch would have the opposite effect: - // 1.21.3rc1 < 1.21.3 - // We've never needed them before, so let's not start now. - return gover{} - } - return v - } - - // Parse prerelease. - i := 0 - for i < len(x) && (x[i] < '0' || '9' < x[i]) { - if x[i] < 'a' || 'z' < x[i] { - return gover{} - } - i++ - } - if i == 0 { - return gover{} - } - v.kind, x = x[:i], x[i:] - if x == "" { - return v - } - v.pre, x, ok = cutInt(x) - if !ok || x != "" { - return gover{} - } - - return v -} - -// cutInt scans the leading decimal number at the start of x to an integer -// and returns that value and the rest of the string. -func cutInt(x string) (n, rest string, ok bool) { - i := 0 - for i < len(x) && '0' <= x[i] && x[i] <= '9' { - i++ - } - if i == 0 || x[0] == '0' && i != 1 { // no digits or unnecessary leading zero - return "", "", false - } - return x[:i], x[i:], true -} - -// cmpInt returns cmp.Compare(x, y) interpreting x and y as decimal numbers. -// (Copied from golang.org/x/mod/semver's compareInt.) -func cmpInt(x, y string) int { - if x == y { - return 0 - } - if len(x) < len(y) { - return -1 - } - if len(x) > len(y) { - return +1 - } - if x < y { - return -1 - } else { - return +1 - } -} diff --git a/vendor/golang.org/x/tools/internal/versions/types.go b/vendor/golang.org/x/tools/internal/versions/types.go deleted file mode 100644 index 0fc10ce..0000000 --- a/vendor/golang.org/x/tools/internal/versions/types.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -import ( - "go/ast" - "go/types" -) - -// FileVersion returns a file's Go version. -// The reported version is an unknown Future version if a -// version cannot be determined. -func FileVersion(info *types.Info, file *ast.File) string { - // In tools built with Go >= 1.22, the Go version of a file - // follow a cascades of sources: - // 1) types.Info.FileVersion, which follows the cascade: - // 1.a) file version (ast.File.GoVersion), - // 1.b) the package version (types.Config.GoVersion), or - // 2) is some unknown Future version. - // - // File versions require a valid package version to be provided to types - // in Config.GoVersion. Config.GoVersion is either from the package's module - // or the toolchain (go run). This value should be provided by go/packages - // or unitchecker.Config.GoVersion. - if v := info.FileVersions[file]; IsValid(v) { - return v - } - // Note: we could instead return runtime.Version() [if valid]. - // This would act as a max version on what a tool can support. - return Future -} diff --git a/vendor/golang.org/x/tools/internal/versions/versions.go b/vendor/golang.org/x/tools/internal/versions/versions.go deleted file mode 100644 index 8d1f745..0000000 --- a/vendor/golang.org/x/tools/internal/versions/versions.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -import ( - "strings" -) - -// Note: If we use build tags to use go/versions when go >=1.22, -// we run into go.dev/issue/53737. Under some operations users would see an -// import of "go/versions" even if they would not compile the file. -// For example, during `go get -u ./...` (go.dev/issue/64490) we do not try to include -// For this reason, this library just a clone of go/versions for the moment. - -// Lang returns the Go language version for version x. -// If x is not a valid version, Lang returns the empty string. -// For example: -// -// Lang("go1.21rc2") = "go1.21" -// Lang("go1.21.2") = "go1.21" -// Lang("go1.21") = "go1.21" -// Lang("go1") = "go1" -// Lang("bad") = "" -// Lang("1.21") = "" -func Lang(x string) string { - v := lang(stripGo(x)) - if v == "" { - return "" - } - return x[:2+len(v)] // "go"+v without allocation -} - -// Compare returns -1, 0, or +1 depending on whether -// x < y, x == y, or x > y, interpreted as Go versions. -// The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". -// Invalid versions, including the empty string, compare less than -// valid versions and equal to each other. -// The language version "go1.21" compares less than the -// release candidate and eventual releases "go1.21rc1" and "go1.21.0". -// Custom toolchain suffixes are ignored during comparison: -// "go1.21.0" and "go1.21.0-bigcorp" are equal. -func Compare(x, y string) int { return compare(stripGo(x), stripGo(y)) } - -// IsValid reports whether the version x is valid. -func IsValid(x string) bool { return isValid(stripGo(x)) } - -// stripGo converts from a "go1.21" version to a "1.21" version. -// If v does not start with "go", stripGo returns the empty string (a known invalid version). -func stripGo(v string) string { - v, _, _ = strings.Cut(v, "-") // strip -bigcorp suffix. - if len(v) < 2 || v[:2] != "go" { - return "" - } - return v[2:] -} diff --git a/vendor/modules.txt b/vendor/modules.txt index e75d8e4..22f070a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,77 +1,14 @@ ## workspace -# github.com/a-h/parse v0.0.0-20250122154542-74294addb73e -## explicit; go 1.18 -github.com/a-h/parse -# github.com/a-h/templ v0.3.960 -## explicit; go 1.23.0 -github.com/a-h/templ -github.com/a-h/templ/cmd/templ -github.com/a-h/templ/cmd/templ/fmtcmd -github.com/a-h/templ/cmd/templ/generatecmd -github.com/a-h/templ/cmd/templ/generatecmd/modcheck -github.com/a-h/templ/cmd/templ/generatecmd/proxy -github.com/a-h/templ/cmd/templ/generatecmd/run -github.com/a-h/templ/cmd/templ/generatecmd/sse -github.com/a-h/templ/cmd/templ/generatecmd/watcher -github.com/a-h/templ/cmd/templ/infocmd -github.com/a-h/templ/cmd/templ/lspcmd -github.com/a-h/templ/cmd/templ/lspcmd/httpdebug -github.com/a-h/templ/cmd/templ/lspcmd/pls -github.com/a-h/templ/cmd/templ/lspcmd/proxy -github.com/a-h/templ/cmd/templ/processor -github.com/a-h/templ/cmd/templ/sloghandler -github.com/a-h/templ/cmd/templ/visualize -github.com/a-h/templ/generator -github.com/a-h/templ/internal/format -github.com/a-h/templ/internal/htmlfind -github.com/a-h/templ/internal/imports -github.com/a-h/templ/internal/lazyloader -github.com/a-h/templ/internal/prettier -github.com/a-h/templ/internal/skipdir -github.com/a-h/templ/internal/syncmap -github.com/a-h/templ/internal/syncset -github.com/a-h/templ/lsp/jsonrpc2 -github.com/a-h/templ/lsp/protocol -github.com/a-h/templ/lsp/uri -github.com/a-h/templ/lsp/xcontext -github.com/a-h/templ/parser/v2 -github.com/a-h/templ/parser/v2/goexpression -github.com/a-h/templ/parser/v2/visitor -github.com/a-h/templ/runtime -github.com/a-h/templ/safehtml -# github.com/andybalholm/brotli v1.1.0 -## explicit; go 1.13 -github.com/andybalholm/brotli -github.com/andybalholm/brotli/matchfinder -# github.com/cenkalti/backoff/v4 v4.3.0 -## explicit; go 1.18 -github.com/cenkalti/backoff/v4 -# github.com/cli/browser v1.3.0 -## explicit; go 1.21 -github.com/cli/browser -# github.com/fatih/color v1.16.0 -## explicit; go 1.17 -github.com/fatih/color -# github.com/fsnotify/fsnotify v1.7.0 -## explicit; go 1.17 -github.com/fsnotify/fsnotify # github.com/hack-pad/safejs v0.1.1 ## explicit; go 1.18 github.com/hack-pad/safejs github.com/hack-pad/safejs/internal/catch github.com/hack-pad/safejs/internal/stackerr -# github.com/mattn/go-colorable v0.1.13 -## explicit; go 1.15 -github.com/mattn/go-colorable -# github.com/mattn/go-isatty v0.0.20 -## explicit; go 1.15 -github.com/mattn/go-isatty # github.com/mdm-code/scanner v1.2.1 ## explicit; go 1.21 github.com/mdm-code/scanner -# github.com/natefinch/atomic v1.0.1 -## explicit; go 1.12 -github.com/natefinch/atomic +# github.com/mdm-code/tq/v2 v2.4.0 +## explicit; go 1.24 # github.com/nlepage/go-js-promise v1.0.0 ## explicit; go 1.12 github.com/nlepage/go-js-promise @@ -88,58 +25,5 @@ github.com/pelletier/go-toml/v2/internal/characters github.com/pelletier/go-toml/v2/internal/danger github.com/pelletier/go-toml/v2/internal/tracker github.com/pelletier/go-toml/v2/unstable -# github.com/shurcooL/go v0.0.0-20200502201357-93f07166e636 -## explicit -github.com/shurcooL/go/parserutil -github.com/shurcooL/go/printerutil -github.com/shurcooL/go/reflectfind -github.com/shurcooL/go/reflectsource -# github.com/shurcooL/go-goon v1.0.0 -## explicit; go 1.17 -github.com/shurcooL/go-goon -# github.com/shurcooL/goexec v0.0.0-20230709021537-96bada04ea2b -## explicit; go 1.19 -github.com/shurcooL/goexec # github.com/stretchr/testify v1.10.0 ## explicit; go 1.17 -# golang.org/x/mod v0.26.0 -## explicit; go 1.23.0 -golang.org/x/mod/internal/lazyregexp -golang.org/x/mod/modfile -golang.org/x/mod/module -golang.org/x/mod/semver -# golang.org/x/net v0.42.0 -## explicit; go 1.23.0 -golang.org/x/net/html -golang.org/x/net/html/atom -# golang.org/x/sync v0.16.0 -## explicit; go 1.23.0 -golang.org/x/sync/errgroup -# golang.org/x/sys v0.34.0 -## explicit; go 1.23.0 -golang.org/x/sys/unix -golang.org/x/sys/windows -# golang.org/x/tools v0.35.0 -## explicit; go 1.23.0 -golang.org/x/tools/go/ast/astutil -golang.org/x/tools/go/gcexportdata -golang.org/x/tools/go/packages -golang.org/x/tools/go/types/objectpath -golang.org/x/tools/go/types/typeutil -golang.org/x/tools/imports -golang.org/x/tools/internal/aliases -golang.org/x/tools/internal/event -golang.org/x/tools/internal/event/core -golang.org/x/tools/internal/event/keys -golang.org/x/tools/internal/event/label -golang.org/x/tools/internal/gcimporter -golang.org/x/tools/internal/gocommand -golang.org/x/tools/internal/gopathwalk -golang.org/x/tools/internal/imports -golang.org/x/tools/internal/modindex -golang.org/x/tools/internal/packagesinternal -golang.org/x/tools/internal/pkgbits -golang.org/x/tools/internal/stdlib -golang.org/x/tools/internal/typeparams -golang.org/x/tools/internal/typesinternal -golang.org/x/tools/internal/versions From ccdd9284b795e3ed98e28e93db11d6c99946712e Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Mon, 16 Feb 2026 22:00:39 +0100 Subject: [PATCH 15/23] Wrapped up the playground frontend --- tqweb/api.wasm | Bin 0 -> 12076211 bytes tqweb/copy.js | 14 +++++++++++ tqweb/copy.svg | 4 ++++ tqweb/github.svg | 19 +++++++++++++++ tqweb/index.html | 53 +++++++++++++++++++++++++++++++++++------ tqweb/tq.svg | 9 +++++++ tqweb/views/index.html | 3 ++- 7 files changed, 94 insertions(+), 8 deletions(-) create mode 100755 tqweb/api.wasm create mode 100644 tqweb/copy.js create mode 100644 tqweb/copy.svg create mode 100644 tqweb/github.svg create mode 100644 tqweb/tq.svg diff --git a/tqweb/api.wasm b/tqweb/api.wasm new file mode 100755 index 0000000000000000000000000000000000000000..9cc3fef585fe42a342e9ea5149e44b5263a2874f GIT binary patch literal 12076211 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%0A-MGmGFg!`%ldOw|WVTYD4!pxnqG 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%0A9t_(7Z(PsoQY4qv#mTxzO40H$>?N#gr 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%0A<>WhIfvE?@4X;>@LOLMNae7{ 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%0DaTg)_plM?9$YUf<CQY}AW-0fg%(9+e|``#TesS; zdp$mfR;yKnQ{jeNcHBoFbIh^F9Zz{j&9=3Iz=Bhm4fTo0T?>H)84-v3uc(|Ex6{j8 z&HDtAB4E8lICglS@O!G%3(Zz<7yfn2HD_#|zIIe>X%+-6!6q8fq+1b78t;ml=&5#8 zJJ0RwNf!JGmdH0?LLHAau^o2d+A<`LldWHm`bglg$sb}Ph_feugs)Bwx<WsSIv#RO zrH=eqDFNjTLbA1G%*z+l0~Tz0Q!YZJYAEb%_e9!kqH+t`A!v=*y6m?4@muLS(*H%V znM+htbd2C;qy!bDVzCGn0ewJK-LQ-^<kUn{8HG3)+5T*b4OxGV_Wq=|se9U=i(@kv zYk!VHGmXkbh^v%3pdd)p)ta_j$ZjR}sxBQD@^Z3*4iJ`cx)t_y;+A*W4;+D7PiXn0 zK9z_LK?O%}Fi&Xt!@f2Vl3s^LhvN}0?GhUW(}&4;gH_U}1{F$Nu>RC&;#qKB6WN_K zZttlJ#QWe=!jToAQlpEs`4Pksz9wR1vtneaU<6p8NDESYGeBEH(BSbwZ72FgzX0?F z+D*dUt35*~7?^>jO}SCLAFrxfZiraZ04@_HQM;Uimxt=h@e;AHp1!rHon4X~Z$S=; z0c40+mYD(Xi+~%&;0j<<O|u$QTVb`LtcE(ZTy1Am6hcK=HDY-AD}rHBMCbH0TO!b# z6x+O}*Xa*IfJD)QDPwpBp%Krmay_90C_>MKF5I(>vs`*>z1TClD2Do$2=zvVT0<H^ zTal8_SF4NiP)Uq>BsJRiKq+b#r|^$?!f;GreQ<wCDjUc_$Pmt^0YQj{_b<vNzeF8f z%)Gz4Ne+(4do&Mx{|g#t{pvfD+F;)n`)m4f?iApM%>T~%lQCUhR?`|1#!K!rrP%B? zg}nhd=7oxZ;zr5VgC9^c*vE3P6DWgyrNd5U%%`gvBP&H>kP)+-`6IDHn`e}PWu@_z zV{fc9cgAKeRT`ssi)Fn)p3H)HS1fBF(qUIXY)MV-JzYE|Vl$U3h+;o41hEO^qWhKA z*5+-_`S|YGh~4x+Q#qzmsv{V<T)BI5<!CEpcqQ<_zAoW{-MF5YraMR~TdJaw>Dp55 z;oe9rdpHKmRUMvT_$9OP0d5N@@pe|*gek*Br3SuM76H$O@*S_hS5L(YoPv3f8Pw&! zj?Pxw&po%VgSCPeLmj}Sl)mr{-BAHNE=dpPx}x5MX>!Y!`E0IC6o#K!^lKJ|%LC~@ zh{k{10?}9nW5&?tu@p+i{6y(k1mgn_JV-tVAM!ec8kCR38;lkyNXIA83iU?nyqowo zel8;+(->eeBRK2DTeDvVRJ2CRNnuA;s`Ad3Vx(6vt=YD5Sl^V&wnE6NBIM*2VIHrp zwvwD+idJ1M+9H>fb$x(jfaL%Usle2)0_0-&fYY=M<uix`nduqQD%ar9%k5;e+L2lN zH`GH9ZNfuY3}TZmi3aW@mg4G^DS1(@<Vm!sM@fNa!8u2|AeL9VNZG9b;>4aBVL5>p zX|op*#Mk5TvH}n<%{7Ew1un(@<FUR@kpMqOlyZkq1m=~w(opfrZQiNLtbjr;?XLDn z&*?79Z3ev98C8;?aS!2$adoHn7kofLky(8-a`s5qJMkUZL#K?V4x;wGb_D7@QaeKh zcvX@vdsPCMZBkh~*l@MNN<bX#{DwRr2WOle%Ykz>3>Ad~0kiO&<e6Dp_DvB}#xE&p z&%Yy(b`4#ppdSdr8PIh<2Z(~Nk%yoQ{q4i!z8;nH@hnTTC*n25-Ym`D5&<=uMVw3@ znupjH<>4Y?7|WGBGyr7-mZjOlQQhl%YJ>%jt67?5PwA|h1@X>YLy%6>H2WEXNw?M_ zFeh@Q58esQ0+~xt;XysM6YvFfFWVwXaWN6^Sn1wwl9ZlI-wl%bbnJ+c6g_e0Cd2!3 zWyCwzHUKKNW=Z#fTp2pu&fU&~xib4onY4l}+s?zeGNNFcb6R~iS4OYQo2#8ib7e%q zHfKAZ&y^7c+njj&Vy=uG$9Gd&*d^%ZIZ75^%9RY~6f(QOY{|!SC8K=t10H+dJIXf5 z3dfkNAZJ&3%?3YEq46L*KZ|hhTvVcgUYf`N+cGi$ct#T$fQ|{a)1E^F2peY;6n0wz zki{OXL1j`bvL=IeLlwpKK^babT2WqDtnxxX<ON<jB>X}aIz~DryQtt|HnI<LXgbq7 z<L<&bhsRvV59pEg3VWg~-==8FIZK5dFctjIHr4|sjc>!i;4P8Q(#^iTK-3t{6%=a# zg$sz&DUl<J8iZlL9*HH79ZZ&OvzwglSqQJnHH3XhD{$eW21BUQg|`UGYjcGc`BL5$ zmhx`l!;mz(AZY-TJiV|_PmKqT=>lmBy7Gp3Fx;$`@umoaG2A?}$(Fe}R|eB0!#uNP zK9DPuXExa~TXJRQ%WQ7Rm7FiLxh+>RGMgWFgW2@#b<I8)&zsYXM_uJo90!Vf`H1#j z_b3Nplah&so^yWta)t{Xmf=DaEJd3-pqqrM?hqD-9Rdu{9X0w;E`ij+-0=SFNZKgh z@{9`vG5V`Q4ukfP-romGiZc|9WBIwsiOk8PE0oEo10;hu3291Ovfu5*Tu}ui_=IJk zJVKUe+uS~z0LHTxq<Pi?@T>$8r?fq){*6=OA#}*+%0{M)`t*1ZdeABNZ>S25N6M2q zBo%6axFbhhvLh!C6V{gDQWw_)rj1L{T5Y{~6AI~JqSAWs9_ckq8P!heuevPL8<2@7 zjA%m0?wT&o)eZ*QX|iW)6_yjzvqn}%Kwr}%b`0u^^r+cfJ@qVe>;$k<5ZhsU0u=;$ zK<$Jghgc?q%<6}(&w&pH=|g=O3XwS$_4}q=K`=+B3D>DGt^U}3y6srN9oYi%Ngizm zpCnx5lfl$dw2}E>Y%8Vs$#j_-_D&%LMj;}{%l7rwSd9@vlfI1=Wz6=CJp+yS<81%9 z6YSRYiYFfC?B7RXd)7Z?zG=l)R&u>FS4Np{S4tU{Epu0{jI!Oi+L_3ei46B+Jz%&U z^J2JQqWxr|;e)Wu@)4J0@k&<Z54AqPmzg*VE&!d*uuYyc!xf3|?kg?D2Ab+W{yz>? zJNS;zEg}VsD0$n4<kX>alJW+e2E>HN_BN@Urwo-w5vpTE4TEEucqz6k{=^*&)v|Ca zZpxr_Oir{k1rJ@3u@k3p3fecg%~NxpVMA-{0dk{0_LCXORdR=9Hxy;}LlhO#Uc1U^ z9V!e#XH6QbV~@nCk6v(dakku+;Hk5aito+@q8gNq0A|E(W@alH^|aa0Lcj>x(3HGX z|L&U~>fTjO5X+5?fY4-=8#l$i4Xd`8XYiY%VmM|u%ptp>0)1#WTFBke>OJfiAPKgF zezk+FvRP%Og|jUQD^GC`uZSR955a1h_i!X;kDO_a9+J?~lXh1}4*C5|wRKQ@s)0)D z;F&w?;Pnw=>mWl_#-Wg@0}~26y~@IV=cdGHti-x4tkUrWa>k4fJJwyIO{Yh8&vj(% zn|ri09l7^Kn5<)ZNNf_)2rYVyOdbx0%d8cpAJ5E`lLcb1=FUeLE6|ZX_|3RZetmUO zG-SbFu7H|pz~Kt4Jw$k}fE~^)DxgPJE+*S<ofq3K4>bP+OJC9AALHy~>3YDVjn`q~ zgB!-w+l7Zr_*sAtyk2Cpt|v_B^8&0k*{naE;rDXdT!TE5xE5#F?3#KgU^K-7$XCc^ z*A?WJ^#l7{SMZAhk`gMORQcb4*a1|Ej@iT@B<I=-q{NN6cF<!r5r}jw^}-%tvSJ0( zyIK)>T(94e##d&#dP%NQ3eGrjC8pbz1Ox0|CJ}(vy#ylYh^0xbwg?U)9THQg<ES;$ z%vHH&7OTTY$_R2FwV$F2Oshb!unLycP(sZmrRdfI{M?Xh15&hV$<-{9(h0O-Wiy)_ zXPPJz(di7-H|J`kuVfSCAQ*|fR3gbDU~8_b{egf~&!{vO{Uke2!2%Kk1`w@j&*>(@ z@Bl?Uzav*U)Ef;wmkpR~C{jJ=zD3lV`JUgItC6<Yf}YowqY{Wu74D+IN@#7cWu=Lx zBD3aXHGy}>mYXUoh!i2oC=T44D+V@!70!7$w*&>nCUeD9YDU%-jVnjC!TWP1gW_T* zy3Pl4C4=H3<8_j4^Wj{{C`V7U&RcN-rh7n3ONk$~nlj9ogz`&?%{f)WOooSw%)B^= z%rcP&ATS3pw*!<R#&vbmmT`yA*9J3J8j)B0NM<Vriy|q+%W5mdY7UpGB$ug|-~hJv z+?P?%L*Q!_)@z;eqt*g=+I6dJ=J=kfsudRCTg~vk+Y<>Ec5=}Yo+C0jfyLsYa&Q+Z zd6Bw`cP9(iSG(8sbtfG|@?Gst_Fa#3wQG=8OwC#CCbg8ST~ZmNiI9#E@cP_dh$C&L zIHmrPR02iFIdFD_?M~)7szL_rXFKs;56-4{U|E&f<@GQWHbaztTr44}XUklfD-$WF z-T}&)zkVImv%gS}yQ2C{ei)S|%kQ%p(jhO2M>Of$$HA`ac8lC&1>_)*0@x!b@JbNI z+lCM=4A1(oGuZ%#E$T)|ffUSSoz2D*8mxy_Z4HNRLE2%QskGk;nm*I!I>wxkxLj)+ z7MIkyUvW8*GNE%alXp$tk34Bz1mQB>q7Y)P{pg#}H)GP_ft)<VC3@6uQJEo|K_Wz7 zpRJkC(mm#xIww{`Z$~dy=W@$IPEgpueyxfl5S40`sZ0}RlunxkS+nE?5lq7rCz#qG zQ#{ajYQ&L~8WH3e0d^WrNIT~xb`(<)GZ)1s4KwTpy%}`WciwkuYAQ0>XqD$=qoWL! zkFQ3WXXK$Aq;3U%#WKmLd=yU_PBM7X(BFWLG@!!*PSU7r(e6g@FNxqc%s?jy&cJM$ z%W`Gn4BXMaOEWMnPGdGM#cae}#G!0)egP-v<(gUV7j(7B?3~TaPM(xWd9zfN2pMY) zBed8Vvuw@=lopqp4jIxBJfGC#X-l<>y2Nf(D3{jvi8hf;uZv{vv6wq?EE>GDU6gJd zO3FZ4;c0z6z-SZ-=QU_0LF*7s`@mp>U5X+Sjz+DgHvy^!0hFsf=P+fNs%V2kPmvsT zQLY_uDpksnzGQl-R<;D^f=;q*k`dLLUA@@5X5qdhS05Na2jT88Xy`-2HInDNvB-5( zeMFEu==$X#AA(F|2}K}ZnQH<XA$3E;>eIjxqJ4=xMi@u2h*tcxLHn4c?&~8M4cbRn z;}p$^8*^n;g6d2$ooqWd<;v*V2fzOoF2zOd+?*>DXWlLImzv7FQ0TQf*JNWFwxrmK zHlJP3XJ!{yq15aW|1IA@ae|qJX1Ox^lufoGq{0zxuvpNwi^Kun<{E_<{6zf)EX{=< zb3UR}qF#uk1~SmB-SdKafZb*tL>Z7~*iw?qlDR^ZQO`!~sk$iGcqX!9j%kr$baSqD zSe~NJUzm1I;m=jST^0U0H^;2Vb6ISlDU;5Yxgu94lFEnDH%wIqGEBJL2%|Y6Y|jt^ z!>rU)eg<R4!0Ul$QgQVhRZYU+Mz^lg7^s`$icA(nhUOoY6#0-miOe=-Rv)Z~_BN>O zL4?T!p#};R=MpaYy6Rtj`QnPLt9PN4ooZ!WY~@)ETd?==_2RD?U!lFBR}x>Ll^nhv zX+~dQJD@IE<C|00jtsU$w3*a+ipfOk)L~LTKYj5>5Mm+L1@R4HUHDD0&WIuSYz)>z zb5}dEQimRux*#Ew(jbP(Iezk~RuVBuYk4v>+Zdi>Sz~w(*+P@_ajm_D=YZC!M~gXe zB7{_K52)J7kCq@%`K3xaQ-Q?_k=PuCFJ(|jbxz>a$>^j7G7DH(Qx7F9NC_*KU^1Lh zMB>a(HCmor_3Bb^0dtn1obTsaG*=WLbm7&;W<vZOC`X(3s6NRljce(i*MK*26V$SI zE7Fqs3%#;xM!9xPJ(NgY1eInQ?89P=p|c9Ex9GBKJh(SNQq>r--oaS!HA*i8I$Yfv zGp>yp4FGaU2LRVmv38glI#bjp)TIjp@)ENC#`_XiNH3{O!1!nt{%A2q$>drvU5d8c z&Qwb!CDR~MXm=x=8zY=g`n|ML2;fzvITb~aTy<)>fiVxqqT64!q@}mCkaT7dJ&}L0 zj>)oSq&>vF!d&-y26BgvhaXk)h$db1=+tsF+X}4B5Dcx0F@Pa?!T@1Cg8V_Q5yEI> zbf#<Sp%RlC7E;q|1J{6x^)c(O6cyZfiv0+eQVt0$OfOfea`O_cD4NYMO>oq$0pJLU ztSTT8x9F3Cz?l}2ODVN9gdtnaN|j3bQ40X_O7Uh<GXB6rZb0SWR?8j|5fT)9Y0Ba? z(}93YseG&g5TWmZDx?)8Ibrg|6)-rVi>ginFcgjOP(`fB(x7h3Rwhe9!8v-(5Zxsa z(=RBdRT_u`8LVzOBl2ajtPLp27T#`oh2_jgL#DwCbd;y*w8(N*Z0IUIs7`)bSWNik z_Y0YP7ik_JkUdH_+43rFWiI_x#-5eM78S~3OG<JzX#OtHL8IIBU7#GD>>zK5`Oe=* z*no6am6^nf;EGyJ>Fa}kiCN#d$L2QW4gdfD|F$rIb^YlwDOS|+=9tX0OJeBc>3&Aj z6Sw5o`ssc-+ixfP`;R>8sH2XSgZ((Vbka#DpNt@S2&4DLHzJPSTM$L>)Kd{eFG+s$ zwBP#e-&wKZcYp8q|KLCH^M`-5a^=dmzy0n15ubOw;~jtefBc_+vg%L&^iTh<Kl@Mr z`Sky?`p?fe<BWH{^PPWz&%56BuK)UfpZS;n?cMKw_h0?>-~8=a|IdH_yTAYYzyF7S z_=o?2&wJkUp0oe)fBw@s=brc8dWnDMm)4X9OKVH(O6$YlhSE^!0{OeJ#J`K|Z)1sn zn@XEY7ng=hmy|A*zspLOm#!#XS-Pq;Qo6cyP3c<syRO8)>+SD`68~;2jh1dIy{~k0 z>HYHefzk&{TS{9?x0G%z-B!B2G*<eM{M}K~zwr|PK3w`p>7%7POCKxURr+}9Z=y6& z`b6oIrMpY_l<qBk3V)w2O_uH}-Cug3^qJCwrH4unm!?Xe#or_Nd$jbq(&tNGz~2{3 z+e%+5J%+!>OJ6R1rSt^;zFL|tJz07Re_ty-UHW?I8T@^tG*kL!>09{wcInyDcS_$a z1r}ACE$8E*Zj>c3%5SsGUz@F%1cwVgT46mI1k08)vy5c)99WH<f1=ywb0yt1ZqHtl zGFT5)8&5}8E>qiiKZjg+Y`;7EL{UA`N^_)VXo1=fwv$!Re^KRtZlEwFryX2VT~Qo$ zF}lvVLKy29YZ^%_jwkQQ#wA@JLA1D}-yw+M!jpEB40Mly=h(IKw?Mh0EIt<8C^$$n zG$ufuv|T`~w)(+elVFD(8WUj+x+wAuMR@E2g>MIx31YzE;Xfs4<JS(P7iGm%`qh6c z42r;OQpjw%aRW3X*it!UmR0-kux@>cbH&fWLLe_d2pxkf$8Z}CRp4|e`-U}xH&wim z=XBnEMxKu)^@<L|4j+~wdr)^w4BLYteSj`iAePzZy{Hp%2ZUa2k^%X@ZcQTJ%lK3V zRkTJD(Jv1jO6o5^c<<NgJB9@jmq)UCZ%d#dBr?QoIcz|gFAOsCG0_THt4;hrpVCp- zQBlQoy;U0>YDK&RCCV9~Sf)ye7-|<x+|N**PYS#wifIxDnxE!qI83ArM-HhXtBbrY zQpC`HvV>17g@V8dBkBs&iuz>_D6mWSAEP4=1Zt5ApGYVC&4L7dNcKa_i|@Ap+9$N5 z7|+E%o;-Mf$4&u@{P_|*|B5{ymtziSAAt>8VL1CX>v~-48aHIgi{tV9F+A7p`f-|) zs&nk)gR$qvK3EVf82b=}%kNIT(S+<n_=r5@B!y2n*$2<Yd`X7^sFt~^XjVztha!r} zvae=SJ7FKUL=cUAY$J$aK)@zEEQAh}u@8X~?1P&!j<~Q5%s&AQ;0XHw@7q=Oaa)AP z*vA(F$^>)sVIRC8=<_zNhDj1Eital5K>x6k6iMV9#>}Q}JVI{+{z!nH>qT4|I{V;K zO5=r715e|?+QGp-8Q_1maj>yg2u6Wf!E{>p@3w<D_jK@mPEs?KUpGD)LA8OOY8ZI% z=rHg?1UB#jF$bQI&loq^UhbtLjiwI)4<I>>3fM3&rU@ZUt_o!>Xp24;;W7evD4>u{ za=l2eAKQ^muOGVI+X20}X)FLh<&VcOt#rcDndiZP+-<_hPHFirc#Ta<VMz0$6&Beh zm^c9ynByhrO)*23)w%`4Nspul*rFi|NUPM|iih{HV=*)Eon@tj3H=k^2X5IIqC6)G zd@`cWhE!Sz!<b{V>A6g}GpLjmfc{pKiZ2Y?6!C>2+a|+5_uSehLz`Nf1z+eqzo%64 z5S+{E0aR!Lt-xeiB|Aos-vafCtOE~0n-SK5N74y@vw$^BwD!Wr(p$lL&|15XJp3Ld zYvh73gFZq4qDn@5XtWv7MjPaV1oy4e<oW<h-Hk58!A1{s$a&*W5((v`d(rh0jU96t zmh`0iJo>)3Ci~OKImwcrDD~97!5<T7m@g=4JZ%rq%dsR2igw&oEk=c05L(Yo_NSlE z{`dt+5^Fi)Sir4*uwjkBg!C%e5nV6jDE-HE*f0z-8M8dZ`9@a$Oc7j=QHy!V!#RSx zOOf5LE4zTUJhjRj!MW^N$V0H02)F>x7Zpt5HX5moiOZy=dDvzKJCJ56Dp=P7OL;Vc zX)NVVf~n+&ulcbQwu&O<RgmY5mpsl<{itDix0#4A5A}&`U>+6OpGW}I4@(=uZ-G-n zp=^%a2aXwl;tuwRuV$2?1`XOaA5Jb0QZ&U+{9W<zel_CF_=&U<WP@hID>4D9#;_@~ z;I|K_z`sL+!;^3^cFAMwk2IJ7qdRSf(R(sNVWT(JFna9ZTnmD5F^T_ryJ2x|wxtM6 zv8^<z7<P3>QKMXWiy+>~kKNf{Iupt7nb-j{u%Zk{Ypy~wxk6i5NVyg?sK%MT%dvky z-{5$S=slC;#V`Jwd~vh1g9AEvc`jXsC{JRSaSqD2={;GXpXZqMCdDZvUF4xu$Hl4* zZz=BH$d_XY1a7S3k%hKtmF@g$uXdzZ=<}@d2DA<q+9ob5Kjf3^2~UcJcF+QDEVNx& z=q&SH2NwEN89%N?!+b#&`c->inA;9&=fY73apgfHp=X7&7a~ecIAisa6Z;U+a|=s= zWvZ`@oEFTt1I)MmT)IaAWu3}=v7@$p2+tB5CkmAL{tNqXjo_XVkuzW6X5elzE%J_w zX(hJ`a4zH(&(0TPcWicEt;1x@S3oOZzRo~|2}2f<?m(d9&Y81Rzy)|I=G!5@6nKrP zHp$71BiU)@>zWL*7zMf(rtgjjrcK|g0@jJh`7vMO3{eHk5agWs*10vkQn8E()4M6b zHD|scxj{B@xirDXb=ej1Z3Ew2%8n4OEYF>EzFNd{{ghYnsIEOfXq;?RrIkIC;now{ zOB7XLIujg1Or5ED2ys)goTRuR`#WVq+{8SExZ_=j`&4@Wet$aQZ$yaO4q-aM5(go! zQoD%2Z&K1mF0wg@LMp_WJB`V5Z4kjB#EE<8CYIWWE`tN9`_5)Qxrj(;O$%}0a>9Yg z7)6M?kohhI2l@&b&IM?gFUWx&vj-UUu_Ox$&?4(fBOejQYeHOwLR=*ZacS(!QmR#g zz)gs|l#mSRuwjbH#KdsO#KbTPAK7yu?vfnEZBS$z9}&<B_=xil?S@Sb@DbSv`fBgO zoJs?5;|@Zc@R5#2{i4tsaLZ|v72>XlU>YA;M=%BJ{Mv0kay_xUR<ZmF@sUwBu|}H6 z@R9fPO`RRt%Y5Xfh%VzJ(#oFkk(&wadohDVb{RJ|GMOf1KEq&V^(>P`Y-G~d$oQ_Z zkz3Q8<3s6$zY#W4hjeUgq_wt{u>X@xU1XB2V5O0ZXq*!YJ>()4ZUt{;q5qj;BDe9u zKLP`lG!May6&}Lvr0|d}%yxE94f1)*g7?I2;O8}62t_di*`-~eb}a4!?;sfeL&nSb z2l$5Y4~)lN;vXN%QQAL9|K`I!u#XYq!J6s{MPVPHAmMf?HUel1*vGv0fFFra8vFP= zKpD6PwJhmP1i49(R*6L#q>xV%#s6JU{0cFTd)dNSY$3xt?&FKU!SngB4t8jsYNSs^ zR2l1FBYVa<CJF0b3z|TITa9x}%!6}G6mgCT;~ZP($vLXxgrmDQVr$yz&X%od+>j>- z9&Jt9-8w+)&|f;pf;;T)C^yM(u2ERs@Vgdd-OohKZB|RinSwc}?t-BMVjq8_=V2eM zcAhKKeC(QZ!rv?aGgCvy6w&!#rEa{O=ceot7J64|PxdGu`~`YA_m=EoW_xE(?NKtX zGvbB}Dm<nE1(C7?WXK)uEWXE*EL1YnGRpEVMr_%B43$g9J=>0H+i^SgIN|?uf%BEy zjXf4SW0PjJ49~x<&DawWO5=j3JIaaq-Ik%AA&URAlEN#q75gSz_%pVU;ey}ci$BG4 zzM1ja$(brSQ?nK6T~MZfE27E<l#T2e7krkmt`an1ri>aF9G?dl953R6<HiL?=g9?w zE`3d!yR1(q{Ef&@I}rap$WPxR?0+mMK&E-hPd{LxcckQ}=lS420t0i)PqWPS_MX~9 zWHBqF{PcjP3!&ifs#gZ^YQJ|;i>@7u@)P!<Eerlg#_N@npMIPpv_F*o?TP%9lAA=1 z!s5S&^3zWul*T#!08j?`X}3AYFNosb7Zkrj^3$)_!tb($4Ch!wV)`9C=bOFAIbM#a zGS0z9_Kb6!Pgs9j&;-sgVw_{^JUGYJBF?eZILFAYa*iLhq^xlNoKE-~;T)L1QGv6b zuqT27WSXb`W{8DqDb8^L9}EBkb8BzbG27dEYWMN`)Tq1pl%@-zaBi^&svGTCRNZW1 zbGXhG#O0g=<FJ=CHyhVvb%m!$|K`IvsKu1|YZCC>iW?|~=dY>R9KkYH@fLu!i>v~I zc<UfQRHOZsMCY3Yoj@a1N5<fH%~%f=ZjqhMyuRMgMl86z`VVM3h-F6O?lpY<M!;Yg zBL-_X@F9Y}=Xr?lw{~3xd~L*^@eekzXZ+)O!g-P)5d34<_{Zox_{V4w{}?su8J;Kq zI8OFo;Ii<@7mv53x<09H=q<x9uAIzvxJ|t*n}?^;eC3&R!rv@N+Rem2#*Q8D^p!E= zB*6!Sf&skYsvha*RxQSX13n5jcRqmFyzRvAVoPqoj@#n_yM+KA>jO4q12!^`0UIeA zun`+Du+>&a7I$s1Bhr0=6Rq(DgDq06j?Sky&*Cz9r1TDBAyVMZ9V+f%UwFSLHi}{l zgu+j6qDpN%3*0GgW46P4YWMK_uqXw7Leqs%IAdt!<-4Rs(~d<c@J=?zi2RY4gJ$-! z7VV=s8d@U#n-4GFnHJ4$jxH7Mg6qV`B3Q=DdjVG9<vUZGiS7O4#2>@n`q<2$X?qzK z6$z~-Oqx-~((^WFa=$x*Z6<fUYb!O^b7k($m0^G}(QP<?$d#GQm0|qvxy#(2E0YWB zpKIsATp11PKUaSq&Xtj{S;3_TTjX3jkL1co+^adud@ffe7uG-5&KGlKcr<_RG5u1m zOfGU&uAMLE%J2aH+~e~^u8f9TP=l0utYlq0p3Ifea0_#l`C6__JQF^{GtPc4w=z&} z_`@+6IlQH(V9=c=hqs2s3>{BJ(7<1-hBFcU8Fk#6dMIG(xXvE<v5Q{5pBgz~-8{!2 z_`o?)@y8Rbx&BNm%w^_>)27U98c<q?7B?O|<xx(+<~8znGJ5aBz5tU@;{jolr}|~p zj;hz82>oU~Cq_vR*LL=m7^*gPPD~GqU3VZb-1dqe6vJ4(qeVX@jF&~>Wf(Dy*N8xk z3l=Vvqf0!v#A`|MIp6@hn^eM@_w_BoXX(<VhaHCNN&9(<>1gy#N4+*va31FJ%*Y>0 zRLuBs7<y6Cf0N&I=pRddATpN7XgF^GFUjC&=?NL-*{ny+ntEu-NQNyPS(&Zyv?YZ( zj<%rR4^#iY?7az?Tt{^_+_z_y#>N5y2n@Jq<Yi>Q9upf6!NJp=07}9lmVm;N3|mmx zqL6&~Ok(4<){z%1Yy<KF9>5@h5tcEF00V>B1U4Ynh$UnKB*-BFL0H5W2mSB+o>Nt~ z@4Y>XEa&;3|NGUCJ$-NATXpKx+3VD)E$NjX*$&Hx<CU}OgD}EjWPgFFGY=z=rm4L+ zz4AGWs`Ic+^@3f=ve6Y!r#*wh!Wa)I#$)Wfw^R2(H@SQJXnB^Q+m^cei9u(!jy1^r zL!xWeiG)3a9Yoe7{|*k@v0`>+I<{Sq{y2P|9tbF`R5CDw{nOQ*Uz0ljH|rcWkB#Qc zy6eox)?ePJr;QCO0f;OUYGi@NMT-@Zalnx8SxKmTbL!$>Y|HG3x)}8>v+S-B5v7HA zju0|H8A<rwf~C0QcqEDSAd!LJxaN7|r7QIv)-}y0-ovhwQGn7w^R1a*-@8Bs(+LjW zzs?8a#L?OX=8$Y`i6;kXsbaob)Bn~ewDh)8OFUpCw1my4wB1oDNPqJJiY701Oaop+ z+)02|r;n&-5(kv)OkuatUXil_HG}VB3oOQn2xnwM+mGQvGSVn}$HQYB4H|6_K4d`d zXx5OsdDjs5gMD_e$&NIv4=h<x!|r!Gpp&op@c8c18s5UO7YO0TM$_$sxXtMUbm-77 zu=9zz@VL=NQ~b3LQ;G@WRN6%9dtH96_MJSC8@BsM(fE(v1J}LI!yn8_J0Obel!SJo zxLs)=mz!K>HPkdel<Z1a)NyIDgd*8F8SDWW6m->1sZ|#|b`CwTjVamHI)Jf3cU{Lh z5{3>EZ{cDeQ;6&-|5*aiw#LV&!1I(c#S=bbRc`o&{GI8i>H>VjYd;ZDi+j8dHS)&z z^O^OR`_o9M;jc3x8_YKAv!0tjz!Mqx#Cf_-2z_rF`gK+#!VcDK7mI4$k{)y%g$Dys z0N5bG2)Icx>3e<Gb`?&thDUS+bCWvQ);<An?};Gayu5zDcU<1y&Z@9cz=$d#cu0fN zLcU5G0N_N3zW@xO$TP1*9d~l@&>IorGzk%J;EZZ<?rt<6$A?rU!n-Z&+&j2iQ)djz z!&lYYcIW149e#`X4~{Xx5CTYy+SH*kvydY6l2LJ>we)Gs5<3@Q(Q2+U`T&WD=n-$T zA}<S|br`vk*oe`9>G=Z=A4yZ|5h4~$Tv&vN!@#&p*yM&3RUzddS!j~*aG^e85#RY{ z5sN#ku!x0ug({}Pwius8Y>6RGJl5c_*vTh~HQ+$<S}22Yzz~v1|F$%2uY+NA(Dxg+ zZ=Vq)z{4!L9e{fasJ81Ik0+g+#qn5i0B!R*P+_@7!KYGx&Oz+YALr&@a?ElQ{ul}g zIS?=H0VT-k{xT-n#`&%0Bun{~!vI95L4T$zH=)WH#_Ak|cjDGwaT6`KNM5=CIwc%) z!p<-Qz)RIEK3f_)i<*(uInF$QpX&-B9gc!=Nzq%?-RDc);pNKi?&#VbtAD`CEnEDA zA{ergW#Izo=<-6u944#N`DnE-EqZ_Z67WAYs|p32z(HveznY%Nm+Ytl_U@MKFfO=f zN_NDyogI3_s>XF`uv^;kxrLPMxT0r{LOt-Gj;q<f49A(U-hDr&xr@hZ`aX?a9`C4J zk7Bu!vBj1viEaDXNuMBPh=ELAvPCvoX_oFWEI!#H_O~Q#S#-e4(gAr5<0%SE%7_Z* zm_nz)9qiWJ{0?$)N-lF#2&l<>$D?IlG4J@pS!MhIv(a0t!H?}e1=AA3Dd^BgrnCg9 z+$MjB8|uU!paHDX+Vi8%B4@SE_y90j^M_h{x1!FO<WD!)KasBwSD)YqaL-fI?1lo^ z3LfmUvT!b0IiV=&70NE{)Em4GrrTOqEx~f@u>4l`OiKL5f^PmWl>ufqls$qS5PfeM znC#9699-!2?Fj9g%>o2v01kKDqzPOrND~~QB^gv>o34T@)_oO)h9rLelPuXSI09r2 zhzL+ew>upedJ3#~z!18^iUN80jPtM}482Kaf)9;l2cV;!tqJtu!6q;2+|IDgpC$50 zR~!^iXTfkL@CWY&loP9YV^vK$#)(!#fKXPkHF{$^Lht4kd#hBnfHs<4um|WD+lHDo zW)@6X7y!oSBp?JxIIoD&)K&N+`{2A_kPzfBNy!>aQgw3z$|LclQ7AU~ej+dFwrzgB z+K0Q{uU8or9jKUd<N2?1(&s9x=bSVYCSR5CyUOBsi$9VeV9Byv^l@y5$21uA!&j{f z9=D-k3xvmQkWZK^MK-qMthz{JlwabnD$-`rMc8j7ficoi{9WN*yXoYnP$uoPi0vY= zICsRX&Q0w&7OyjAh7AY_R=+lB63`eGg-sX$SsnqAw70P~!dM0Ene}iTpH=Lb&z@C3 z(OSZnr=oO?&KpH`I$V0q{WxhxHf;Am=eb#S;R*y0eD<=MZSIh80j6k;v5#f^^3+|{ zSiY#%R+7bB2iQO!98<$Tg`;^s0zm7cpWj!Y3DsG&h_u*u%$R1>A`RkmwAM>U3ULR> z2!)_o9EQk7&_XjX(${L_P6cTF2Adn@a<TZUa48mza+UHrUgQrxtOyo^OoFUP44Rno zl6D-@oxepadyzsgFwn`-gt(cxxSB9$OsS2~xWMou2P?oZ4t-&6DuYtfbYdP00g{W_ zdjhWAUNMTHWWj86+K~&3na>5rCHjBSw*V>Nv}8p#c?gl$Qb!%GIQeL}bTr1T0Vc1r zc`wQYKTfW-=hvSVC2r5e2%J1E3h}5i!aSYsTk+<qLznnq>FBFX?bxv+gMN580u8lp z<k8b6lQ@YQK~bt!yWtZ?-Ru{M0;W>iGgds*+%oW&Q-J!>i;6Gc2s&MqY(kPXD@98% zwKZfrt}Ymcjn3$WMT#tX0T9)A8^Mb(G|9Jck%t9S&nA8R%Z7W=my}zIM_TkMsH3r* z#v}y?%^D1!cvx7le5OMX>mXU}LdPHN5MAU9L79Q94KF@z&3<WxKTK{Dhza=yrLGhH zFHiV?d#^YU2Bi-!3@b!LE6?>Z*81rX$iDxmF9$(3jzTn=Y*fKI9?8Y!o{rPA=R3W2 zrocBRVT1_(#-+UCnI7xg@eL<<z5yEnG>Pi2jNC^_>dOcG$u%Uuj-i}ck8H4$F*#gN zfMup@?s*?E6!Sq3bMPyxok2!lfLHsTz6)EYkz9gHZkle?t@s*5Hq4#@#F~3~;Dq91 zA^|GUVG)0B$y5}~Nu<;=qDvD$mB#4ykf#_-if}ZDIOYo&eHQ{K_(vl$#58)8yS+vL zgz^M{DPZXbh)b$WDGyA`pSgh_(++&r3VRUoBV?EzJBIz^hOGvEjVS@+dT2R9@Vyh1 zyuqN~mWJZfg)_z3UIQ3qXlgn5mDf0fSbvq=VvF+F6{P|s{3BzOjDtEtoMYSJpJSlF zxK#dPZis;d#uW}mIc{qq`$iOLxkwX;i6<NL=mihnkJ@80)-V?`%7kKAx??!{LF;@h zgNF0TA|=vqR!RfNy6o85)R6?ni?V}9DqCIyR4J@#Bk~EVUJh}hQ)bEtHjz2uA~PIE z22jxg=cNjQRy)+GMQu0xIw+@wFO`7ep&c>SyINBQM*tA9hfauOrguUF^5QsF)8@f1 z7<E^uW<GCKcH_z<&&i<HbZ=^?<xfcBM}8uW02HX(H2c>lBD~TRnWa})oL{Q2#Di~1 z?_6S)Xk~B5g4L!#58nP+FkMGyZ%Z$FXR@9<04y^6+tWMVndMjnqOKa$j`Yq}12E-S zT)h+`e_;pe(%zZt12Ml6LO!#M3_l?ZtNQwf!^=CRJ)}t&`}k8c<jUkTaVfJI>X7q1 zB=H*EU#(O^CKV*fhIVYiCCNigc1iJyJ;wD_$L5Ml&<MmF5BquWP;0l-6QrMi72)Jh z_Jug!mp7n!kX^K<XK@iH@c=KJ%qq%s8#{E6#g+vAJ1w$dqBj8ws~>W346Mh$qbybe z$%k5M^{4L|8HfcvDRND8+9}nv?RZ={UmEvCd?u$*WbxkM2$qPY5_z-^4^HG=idhJB zsl8Khp8_ffb}kol@rlntPqd~3=6b`|K?-Y=&cK;Wqn;p@8+{vs-%n)5{HolkfL`f5 zP`8kY1U}-c3Yj+chX5+9N<q*7EMkp+$AvA<QAtqoVDOmX)xeCPyJh$TG92|beC@1D zR1(&NbfX!RuqAl~wME3R$B7{DDVUHK7LbFLlJJ#@6DGDAC>{XcmNhG3#o7!Ypn@Tc z;vk@YoMMFfc#ng&S%Jpr1K{W%T@T}$(u$8_GH7C4z~z@5+EwnRF)#<(gP;=)cc5LW zvKsBGn1VSm`50WPpxED<=s7PR=R6_khV+h$EEA0ZJc>DkF3Ik9q<6ZCMju2pI(DXa zN}}=3{zX{B5Pl6>xE7rcnN2)c3sZuBGI+boyuAgPr*nTwGH<}hhtxH}<ySJVRx8Ug zaAP|*=`xURCZ3x|27>x}B?sxlE>PlCv0{*%AmZ?~n-GnnQhYy$s3c*J87F|S5jvF7 z%;OW~v9cYQvO(C!IleTZ!sRKQQ=)=0)Hs*ig*6O_D%2-YNRm-lK4d&SAu~i4y-Czj zlWRDvNNGT_HX+QA<w8j;SDHykiqN3(@sU1coY<=qc-894Qr|EnMt@-#iDD)#O7e;F z%(OhnpYjP3aMa|}a-jpz;gV9TbID+tBxPKk^|3T;fEYoNPeDi+f0%Of<OV;bbq=W; zUJl}-n`W${6LUQO;{jl`ZlU(MY>uP#8`$?xWV>Wy;cz~l4#!)vL~NW~*83tw@qYJX zj-nD2k3asw4}Qo)9%An6iA+vhnd+;bc^1m5cjx;%3VhE!Ld|v-ecJ6=j16ex4^O`= zSUVfru@UF=M~l3tGO-J2Sl>oTVbr{IRH)y_wL0s+QcH#>olNjnrM5g4@16~!m3~}@ zKj2u|RO%*@;$$Z&PC6;BvyN8z79{Uvg0f~OV)W65+RcEy$%0+2J-l$y-R^QKdFk!g z6yNp>ptjntDq;0?C9HD$QNU#mTVoIqkQ$2Csq&@v7x{zZbV*EtMC@3i9d-R9(+pH% zn(pKo0n?Ml;mA0PQ|7+ZnodmHBAT3cK8xc(1K{kW3#J3#3)8MxyW<Lk<?9UFGo7kA z21rjMqz>D1NkEWt6vERbd~$b?Ki(h?(WtUW;;d80;|b;@)kq&6wT*E$`tSJN!fYVl z)Y)6Tv$7A*%-sAMA*l*pKwQ-VN~2pZD-P2}fbue#z`_UF1u<%K$zagKHBZ1CCaBSO zPVL+{xajjvcKW<ZX)~V}%mKwkXIEUP6I{=zo$J*&2m%_OX!Pv>>wdk4-cHR04MuUj z61_763*}PL%=S!yf7Rt=f-Y{c4g5h28L1~&uSqP+SmbJEF!)>~?x*b>a8OB~tonVj z#tjUCun6Va*w6&k40T8sN#KJOdT^$07czCW-_<G$g!##oP(x8_Wc)rBfh!Z}%_Rao zF<_3ie2zdJQMHJi82=NG-<>q4Te=eNiUQ&0DV78Z@sKB6PDKzECHloCGtn=OWsr6` z3-hR8rgKB1zmtA_9@liGUx=JM{Z5+1i)7p%5NTxGPcr@z$(XT9%Yk6J;0g1HL+0kW z$1g-nXA$JC0#MwrFag-1YUZb`NJvO$W<)QH(A?#~OJm?ibDWjY&j4xoX*7nGZzm=c z9gTzq!NOw4bm4lbvT@;cN}*}k#P*C@Tm_lw(CdzCRIqqm8JM4CyL95Ep&{h>SQMrd zu0iNiu-f>O2>ncA2M;VWZIvPl3+{qJb1>>#4=7*ITwpeG1dLirBmggI^f`i~7^Q~E zw$uWKS0#~1&Q$3RnDIY(SgK%tl^zFI<tctX4bC^lnfq_^ZeDB=A$O#A+`F_5UV(5D zLK70dnBH;k5>d$zjI70Q<(G*X_=rakul!2t!9$3ptzAYPLR^CEYw11506dj4WdA_O z=z1(ZlDa?j;E<)D<A3w)!nsz{>l5~YS&lPw=~px7O(#}k$B>SY2Q_wyAMTqWVW;?^ z)>lWPNj+AupVznJ3mu;FSPBusOO&ropV$d2p>k7t-`z_-CfCyNHcBZ#TU<6GPr0SL z$~)t}4}ssQE_)@8x#o*mL{HTQI2Q_Si4?SlBn#@;hT4n9cNaep;~-?qO+Ld9Bp75W zC~waWQ0jwca|O~?)XpL=&5C3>bxnSU&=RY2V^AO(tbU2TDGtEQNMewaEQ@B9_uA;q z^%{Acz4}FEuM%sL230Kn`ZOy};EDV$CiyMsP{eyh;<IJT?nL*s0@3L##AT7_mY0Yw zzTia17ce!TgjE*cW^jk$J-<5&alxn`V?dA<Pz(OUSlp2avTC(M1hyW&df26r6ZoT1 zu2!A>OpT*9xg04%BU}wibIhHxZ~7f9ZYwg~N5DN~!mpxv5d+t>6uhv(i5>#zt2FQY zfmSHUA$*ld4u~T$0OCLk6$he%2Li2DiQ&uI5!oeL`0z1{2=bXwTI~NJ#LkomQ;tZ# zFMwlR1S=vqsO>)YMLgkt@uapB8u6UA?$oxwKy44hqd0dVlG`c>EQ*npxL*=j8`|-8 z7g&4@bjNseagWia^so~u){QBzFvBgK(<9NwrC!m@{n6_wF5Vaj4=V+a#C`e-uxS*m zrpI`aKj#O8A@By$gBY>JavlhUEJ5Z);w6SV?~8Y^P~U357Mr1Z=*C#)6Hl|^8JCSd zu3r-ZEY-K#um2!yk5=y#f5Mqk$eu#!1*^l(mT2+zvJr*l&ZuRKt}}y*4GjB_h_!`V zFjiX#?rD^KALgonr~?u0EIb7Rwe@k3W4Pu@x<q|i@qI9E!2~D6(2A?0E$*?0B&I87 z$i<L_SCgtz91JJIg2a5{O?pjgR&tfBk@rv~C>S-&ExOA)<0d>)HPRYmosokv83`f; z(t~?~qqYLeKBOirx~C&UEi@RJw7h0uTnWmoh`JCG=1pL7B`D}k(p=^J8tBROMn8~? zy7Q`(qF4jhoVW(X=jdx8he8zfaNO5glqVhVuqfJ_pdiZ)z#q7?DJh`Q6W2kK2C*=M zS;k4n-;lWAb<0-Nkl}V8u#B?Wn81mBEg`5d;#+>mflL}%hI$`nG80~y%hH1|G;Jz~ z09M>(wurDWig##OLRktCp4~_3Nd4*23R^DA%|VoZoP#(aTrTsA>NyZmK$Dos>nc9R zY~Gnh?Q&D8XtA$^wS=h~(>rb^)3ELA$C6vpJG;_5ZYGzF*dlB<rFW76i+=KYp!m+s z>79-RB74qo;I3c9!7b^X(gM-ue2#t3MA8e8__;IKLFNVRe^L88L4dnZHHFHA#ML8p z)Blv;t~hyL8dbuFE8pBNuq~;2|LUrq{#@|w7$kEpO!=(j?m^tgvV;3<gGmG1S7~50 z6ln<!1yV{4S@ixDi^<5GEsVUBkvV42VZ;Cqv{}r}{312>(LLPOHMGb6-PKU+AB72! zsm9s_Qr9|FHCL4Yl-<P%`9T<_CwVe{)AY=L4sab!@iS`Y4fk-ZS1WF;DZ>Z}oM=7a zqj#m=+SHD1y4toPG^r)NWzxDpZ(Gx=PH)&~Zt~L<(I`Y1ug9=71$nB2Ok7b@aZ}ad zT#u-@ZHG8O<z{X!HbXD+fRJ9SMdOdu_yt-Z!&^M6iJSc~sz8(!9D(Ubtj2V<_s@1C zCgE^-g8kEViC)&d3F3Ab%+k<#RU?3tnw7W(Ow4a^U9JK)cGoRbKET+FKZ~UiWPid~ zkba>)_DIb-@s5HTe1+rmSHx-7Caj#Wh+o6dJq2QLxW7qF#iX(DTzoslg{bsAg2NtC zREXM4sbuytTDEq`%v@wdc!<^w1|N=Ni6J9QACp<_MY@&#b)0&Ncge>kbD@C_JEBFH zELh~6n@RkE%pS)d%-WjJ9@jCo7CF&rMoe^?5r`P^jY%qBZ1FL80E;7rz)UpiBs`30 z08jM|<DeNl7EpL!J;^{@!oMeJ3TITQP?K;iX*GyQgYHLTx~5j;K4r%QGYIvS<3WlC zv5D=sz@{H=vjl{^M7o+;_xK$>!@~uug0_{{0iCVf&H>R3^J0|hM)U%jfqX~{2v>}q zRI80gfeo~2B`7TISP6`<osqA=A=A8YomsVU#U^PEEgt2DYdzEAp?NZ6&=5h^+?bfo zwO(0^7vI^H-tm6QTHHpSnER&mj`w3}9{KcFUwDoh`R4RahZeWzsx6sY(mN$B{^2D@ z!2^T_d5C;G>;gz0UOwdw#Mebt94M#?*0^ZS24{|hx>g*ep|!X-oJuiF)%tdP|Gg<& zEG`e!gFvd04P#LW@M7GP0Ra)ksVvzs%UvA+A=|npmy0D5nRx*Iry!?nz%)(Z4=9PU z0mQpH^d|Y(A@9TVP~I0wXJZ<J?=3>=uK^hL7TpUVxS$NFYm6+oh#V(7O1#2<67RLF zo(5CiB-Mb#f>NAHow`!A$`ETMhnbz+WCpA9aq%{w_5cVMz)dEN57(6%O=p1qlG!o` zVRiF5>^)<~e?)}@0Dd$fX&cvCw&i74i!vY@T$BO9;+m~;pwJ4u4E1EPb=+j@gvt3e z%<quj%<N$L6p)4(f}v-rd`h~yNFa)SF(Y@B4t(-8{-hz2zaZ|!LfFmw;rmkhH5f1K z2c)~e1p~Ssfcr~^n#={qh9w>*$w?GCf?zA-BCtAzVXNkWz{Meg1&OfA4)G27&wLzw zW2(*Z=9m!x++nih@y<vBBM3lENmnr9%t<D@Fsh!9_$WoHHJJGHnnZ3cf@ItmvV_}r zl(K}cOD~oJ>A&KJjk}Y*3%PYdkXv4hOU1bI)-GnzBv*59t-PD*-)AV)Q?&g-c)YpS zGFYH1VV`kkOm{YWKpL=!=zDM`P`(so0`(2T<-vI-OH{lBzt7NQ1mSSw6H%*j93c9A zAt8Whh7G;ncZ@}mxUn69a*>F-IH1H)$+eJ@u>e_U%lizZK!ya-=7KaYB%cQ2XF`W$ z1;rt}Cqg`lKcE9jOpJpSxF|q(qePIoZi|zWThg#xO8%CH1<x!<NoI`r8r#kcJOQg) zsc4j*uz&LNp)eQI3?Zl#FJc}YY?#*c5BGt|ead<ibmIz&?k7Ez7jO{iQEGWoMv#3C z{8T=5`HD0W-&)Kb!UR#K<+c;!yW^UPEJW+H69#n;=!BYxG|0C^5;(g&kO;L6N2s3@ zGhUSd@YPLQvzah?I_*_&Rw*fgeXvWep3)qYK@DQ;V~mfoRoREEVq}6B)m{d4*gS-w zAS0ZZf5M4IW&&)4HOL@`b1M8sZ##S^4yR}CRT#q6X$X!(b{BCdW$$>Cf*+6jR;V^0 z3;`^yZa|b9HT}H4*7Dc1)}D_<W2vn{vMa#PZ`Ct>14fliZp&8mo3y`|B+oi;99)}! zLG$O~5AuR%c!{}Mhc@X?_2LpuukFk%@QfbK988}<!YD77$v!k=xHaCUVUOedJR8YO zHaw_+s^vUQ+H~$j`5nHr+TK}X)3lq@M6R{1#31+qAdqY8IM$K9AorY>H*Uo#JK#6s zGWtQk5hv~tZ(vBG#x^VPgejilMNl)_cp({xZnpCxQ1CP_T+QsQ$X2tE%LfM`_?Iqn zryhj;eQUOs8W$mGqGH%C;K$1H{oo8COY)sEr@1?1C=xrd)|boUnW8*i-;RyE&rDP^ zpG0>YI0R&#aETZy0ZTt7onSV26I2wXw%?+1hyudzt>Z0lQ0~pOyv3+#?%p(Bjl#)9 zN0<b%qkT^@V?!E+?{PJ=&yv>gH03)CMI+E{PIK^gL0L@bA80ag2Z@Ul?s?>WKV=EL zU|1>&>v88Rt+WC6St*a1+^sbJK{}N%V$451A1AINOaneWe`KkKG}PeV!I7nC9sfQ3 zc=)qJjU`G1VIa|5K2YBzFbPJKE(Mjf0dpgN3hR)QE-`@TK*k9JTN4I4q$c=FW@vfn zM98GETN~`gOGw8-txaLudl)MH3kp#U6_W^d2U2uey+(~=dlf{2ccP!LZo`s`xB!{- zYmn4%=5GcTb5#)21vw()xHO{6N+Y5WrT(xHVfJthIwV&I;@HQFz}5Tn7eQVqwGXca zabW_DY*VogBKatBkrYCLa9e_K!QSo_rFYWW_m+Dd#po#n%6N?e1^LoS&XDV?bZP8+ zK;%@reB}jmkrPSNTIPHZ6Q;Q(%cTyi=_mD0<SDJ){&_*{urg+IHZOJ#1pVk@=U`dv z#711~SW!$60;K>*mQzXr;wrEtZzM=YJA{VGrLm5C;Hjd#kwh!V8_I|7c}(e-W%<XJ z14?_#8Iz+ei>5fzTde?tZFqwa5@W6z4tv|s8kAETZIZhoPs#lIcv(2i*ffx>h8agC zn%tab$K`;P<(wfe0GWaO#WlEYhnd>r54Z)76X-I?X@hYpqYqDA?DCMivKVxLF&Yqp zX&b@TS*US_oe>}O@bdubZdxiMb7QpVDRee^X_+&<arsb_^3?o*-2y{T0I47>$^}V8 zAa;MiH+oo3yTK*~YmJC5BD4x?#1hg;LrWlTd+GX8##;0g$bz!T+dk7mZ*KZbt{QHG zsX)6qNUmz5`RasqH~6fOq|@gT!sSMupmrLS_0)EAX|2iPX_`I+nR+;kPx)wAatAi# z4=^AsU&2sXCn~uZaG#;(F#g;-zUoaFDno11is53J#o8wsQO#iwOP_XBI0NOjQ#edS z5U-^6fFcU;AcKi6P}ZblwHjkLlrUxmA{}D|vp8B2fKh6Sm4!HuVh?mI3JKi9_37M{ z;*AbP6JbkS^Ns|Ka}85|kZR>j5xFF=O|&UH*arN8#`k5~FeL7_<O41kC|$^k+}cA9 zq3lq+6}ylviW}?v0hyz?-f5f)L0hG$*sX6HW%`EPo;1Fj()bQ7UBNYS>Erak&FO(( z+XD*r79t?CH<ltG?@KRw1f(i-Qt{#kOD`rx_>pB$gbT?*tWPZV1GNZ;yhg>SqA(Uw zId0i9*xE?<DJ1)_usO?`gBZF5hz}KX;VF1@?!p)G4UcT{4RA|Z<h8E|Q}8ZV4Mj;R zPyoXUabISp&|XE(4nqM-J7Yq;-smL!wSGzdj5L*|eRDfPv&XD|wi6=GDH`JjJ3P}6 zdPNowIt0hTHZVAuw(t9C2x|kHz=RczXG>uR!!lKZ>H%YF?QZ8Q=$AC-)&$(49uX}U zRil$3tW22qxJv1gwyelVCl^Hl)>`KX8law?&Iq#gzHjc{FDvzKYn#BNTPU<ldbM54 z_JFTtl#KCCOb?Tge4$bk7mzf1LHK6dzUkvyA`r2t$x5?xMFPQBm2Jh6-SS1m#EU6m zSEW~+yi|6Y>M~N1r<mF#L7)<%AZ#ep%@EJ2K)jiNdV}{+-oL{TeYCakP9P(C1JQ+) zl2M2ky<%-K2<kQ^ZRmN57p7V&Yh9Fvy}dMS=wA|=Ie>YMMY5=1ijFZ}({+q7s^>It z4~{Y6O!yPdg1Qy9g1!~D40YAmk_`nu73mdd>`e)CPGdA4MB4b<!Qi8TbS<lO1Qcj# z_INxfd(uxA4CiQQI(6z|$6|~y6(U|;<Urs-sz~imSh}G_v=~j5<6J>mfsD#nnv145 z3Uoh?`0DI!R<y*#tyW`JqCc&(+EWw5J>e;=Jp)l;GAbD;H}o5FLpPyj6{0cR5GWo+ zS5nXHiox4bJ^+`rJ^7a)$5_pH=VJdj=30|!%}7#Hc5p28oo$wlEJ8B@3G(2(bbmVD zR}CvN?3fKcsw*Wm&@`(6hFz{ULBy?@4gmi~2w@>15)|#qvRE)gR}#8~-~N&H;TE=E z8O8uA#MNL7s5C$bya6>`wEbNLZBLuEIUZAcx$!?QE7!N<3oecM0?-a@FEc#wYf3qx zi{wQE_(MuLp#~GVBS2i}WOJz#OIKfo29{e?m2Dx=g_+_6Py%?8isz+3)R1nGuL%pb zT$CyB6AgQzAJ%zN2vgpFSs_@N0%PhCtXj}+p)nvnihL{S<_?kZxkQM@FZ}?y<NMqL zlPQ@sK&84P&e-E+)3~+IQ}Jk?$a&)0H2KR7k)iNJdBw-NNJG6Wq1ugIONj_#IWd2F z=koMUN02Ch&v%@r<09GX(mSP;h!-v<p|AZ3HjMzWlb@~nx-rNw|8iFc!dtU;oUzc) z7qbb2A*N_ccW0fA0TfTV(<TgKo!0h4pRJKJS4q^;`IWZ>MiIfryCR%s#UzWV3VgAt z9lP|=TWx$2*0Ov_MakOEU~_A}l8Uiu4>#NTj_WL0S`$0e2x3I!cYSXZOM{UajDj#t z5TrpefF&qeM?05Z#>BW{j!|EE8PmcnUn33KiXl3K&ZrgpVrGPdwsj&Km@i4I6DLY3 zXSa=ImmN!U8%NU+B=iNLpsx@e2zKjhqqDm~A0~SC26<yu92Kwd_Bh35nMaN4-mnyc z`|d25n=c5V-hfP3=rht~v7%vjI-M%eDXspw9lH32lNsMIHEP=kA@!Jc;R%qFKsEOZ z;V#!FJpqz;8)j}ODURlS-hV)7ty8sZX&1ZY;(pNHh~A(<g~;rdZG6t#!6BeUVL&0_ zw!7Kjki$uWZS}6o0^Tx#lGSE?jg}357w?D-a_wNGUuCc;hnY6y1@}B<sI@y7U%lZg z67lua$bjTG9lVa!e2Cu(DlRS6Fd2qh4Xh7d`J%g_7%Mu=iop_(@Jut3$%j3D9m`Dx zwBczqjbNtj@*U}iH9E-0nTI<lc-V(U$bd&sxS=rUR7Wk*>??;+%wL)2(4$Uf9>4_U zRJw1Al~JGBFu%w#4Y}cyW-1k#ow-A9E^ye9*;jQ+6f*_H&tO&KVY9V!oq}la3l>cB zc9{}~jGQV>F$0x?2;#urjcEv$^CP@;d3Vt-*lbCGJD`E21*q%ss<Mfd)0Jrd+B8KS zNsu7~FSE&p5~uY|rFRq(i(FP^C0t*6Cq=^+mBN2%5MNz2KBtDNze@`L3^z_x6<LQ| zMOA&tRj%N7v5>cg{$0&8mAE<AUd#A`18lj++^6Uvi@0S`49mEe@4Vm-ZbkEJgS+;< z#3)1(MGZK&x1+@9Xf7KDGAYCu7QbzAb34NAR$ZE}MOkQ91$=dzFR5Qh<4z0h6GND# z#pW1P$4W7;r(#y=1L+@irl-lGG+L<=aQCU-9){vmuiB8gdP!JamRy_mJdv;rkMpdw z4zHM|D^JekfF^Lja_A+T*6=o*4=iIf2DxA{K$U6hCTtzBaiL~yDL#Y)UjlGRNn3nq zKz_g|ggR>VT`;@^uDs}Kss1()a>VMJGz)XhsKohu&BA=V70=+EMDGxZYw!me2@q1p zQxa2=qxqQaZUH|m?u|1a07QzPLlKDqth)?o)tqWYS+%Y=%ts5Z2K9;M1|(s1Wg4aH z6RxRgy+nu~A4YLCm~Trogi-DG#&8Sb>-DLXk629Ds!PB=R1saQOA!NOP=%c)$s5y) zj$}m3_$c*RKmIP43mPOd#bACk!8oCpDS-`tHI40RZ@g@T*g6?FJBE(jASpSPUI?RP z8Z(txI}q6KDx1D_hB!1DmFMbC<++Y{%h|<1^eS3D2&SfbIUJ#-Ev#kq3Nncgtl_d` z9lahmq>YG(eu=19a)3m$0zWYf5QyePTvMI*HI^XrqNj>#@RPD?;n6$&jNm1?Q5+Q< zsjg(?+A->{x1@P=GD6omGD7T&msqb9HGu<xC8s7Y3<4`F1a`Tg8&yA7%lx8QS;C4< z3E`n35vQ$HM!QODZcet9t!M#V7A=XaXm-6ljn8Gb`Cx{Jn5Vd=z!y78ubEmObP%h$ zdS~gKq$WPQ5GNbLS*J^7kk8SX>8gCM3qsB%Fat2n<uN?fC@}2$c6`AZ)-o*{WF>`5 zK#MfXJ@Co<@@M%)HS1^`Ym*Jj5opbklmXum$WOdGmHKgs!Xl4Cbd;pr4B#P6bz`bR z9kE1*_TSQl)l{JiK(Gu%2HW+F+NhT*Xqab8;E=!NrYF>VB){?ay}7*Xg$i`MTuXhs zMM+a3h%L0?gg93lNAO}KZxT{bD8DwLuv8}D8v4ygvRZ1MGD#~}8Fdi<!lEdT0KiOj zG4-Yk)W-FnSPS~h`h*`MGg5EaDmZ;B-?34y3LP7BN_3sW=?IiaCt9azLZjfmD3M<R zC0daK+W`VlIGv1u=P7Y(JNDz0=-Wf`{m?B}&7rRSfGxPs!grMk7^4}1Lwb!)yjDo8 zA+J5mXBuY6Kppt@cNhVx|BKz2D6G)wLI%pC%FioFoYgv^ZRUy7UYExA`elsa9Lt3j z>wc6V=GUuun^tn*6c%-fM9BQ8$T$1bMOB?pEak${i}IFmSxtZf_TP}8yUC6Wwg@o> z=3Ez-520bw{FzA3qoJs>-k4gx&1@E`tk_y%;4$=!Fo)%pMegRXBMvz1;38C2w06Wg zuM>R{4{9estacpad$gS*$~Y5+Eos*#OwAakm{}bb)x~O$19{W1Rl<10A!fvIb%bN| zmqWVQ;^-?*NtJB8J`Jhli~aOi$i`z9nTuWRCl&8PdOori{U%q=$ghO5<gWDU6I61k zBq;Aw%B;MhAX1f0vMpp*GLOmR%(S~u$c61~x%<R4X8boOH;Nf6FwrPqw5Edms2<1| z_l9Y}ol!g6Tq)mr+-44N9c~cbV>f7kX^0aQzEp(LWi>jZ-L@PlcQOTsm%<obdciR2 zp&)K2--%gdC=X+1t{J(!WmzO(jgY^!wy`wE)R;4Za2pL``a;9F>{H;7S1M14PH~V4 zB65~&IL^#%y&h`7$mm^%*W9XX9h^JqV_Q3p%~MX8tQok&@D=6&4kyq^J6ITAXDQSZ z!!Y*&5`co=2*8#od`Ba+4UtColp#V?AwAoX1&?!yfM(2>&ZG@8M1YH4*3}6_M?V6; z=3PO|br|`<przuFr-cWSuDI44DtlDLux_Ue7&U3FL2tLxf+dfN;=_Dbz<{M;c7L8x zR+tKk+=WzK6^=ulNcKmMs!5M1rg(_lq;Z-0MiYZ%NY|Zzmkl2ShiS<LpvvCHQut5D zHjZg50W-j}4_-G@_Lnw}Mdtca0K1e<e2-`7(~XkV(UFRuM=c)jFf!hfX2|^~+foq- zXU#AcqTo1MgrS=o{<hSLn<|!=fqY@{wz47IpIn>sCr<;s(VrwCf_)yQd)SB2SRyn% z9M|+GdmBS4l`AwgmI5b29C$Y-_2Ur`Bu_&^%v*7ZQ}MF-m6!>7%V8yfvN?|zkz9`8 z-kC<!;a3K{aOV^FNgM?9uozFyuT)|%GJ1nwnR6vAPt)~Mb6Zt@B%5--(i(DmMXqEp zs%DsWWJ<fb6_G}?bBf`YU1@xC`IT!6<Z@H#HS;U2d9!_rBzAM@o#a>k_}=%J$}<%R z#rNnM{+UM_wiQV2LFqA(($XlGFMl9*6FlUh4^{PbW>T{LI*8Z&iDsj$|8^Gi->G=I zIi2($HcocNoYuGFD=rQB3X^3q;qn}GmQ`~QM7t6cAATC6rDO72kB*b}OiEeO;s9P4 zbx9(^X>Ge`&TK`Tej0#x)j{PQRR=_GsP|10!&U_Vpc0c1a19hzQBi8>bA>mt{|(VE zZr?JU4!sVEH4F|N9%|CpW}2pt(#=m2Z#2!6rX0-AeI#pROyIK0@1>$QEx8=RlG<`~ z_}HugL8+y8X6Kux22GOVL5^$j2m6t@L&Ketq**RYsBqCWB2+*?<lH&dOruW6I7|Yt zs&<g}Ho7u0cz>N4DXXAhakZ8ro7+FxR*&oh`ew`kwSgRyHIAVWr2EJUaJAuMnoN@C zzKGam9^tt@CV-AQ`sqa{eOA&ZNGqr$KFApxY8->3*q(|$9))&Ig)?eQJj%IR3R;8C zVa$5afEmSu53;F*wk>9HUXu`*bUa0vmPAaKgS04cgYcz}SD>py$6x0S-5nhd{*X}2 ztuflXU>_LwV%p{onk%O9L3Y&mAUMQO32PfP5@{9WO?oNpDz)Ty3#LLo$_VvDv2{ih zZCJX2=4Aqqw<NHG$|=*lE1+tckDLjTONssp>f*ZG*qjUmt;HRK$IL@f3ne9)%v|Q? z(lyD5rnSfkn+Q#XpN(HFW_=8e^rDq`Ly3YA=m=IKTVjzO{%uI`iE>~9!CR1*fC-ib z4<Te^#+Y-THu|~ZB)tXNW5iy#?x4MQbfrDpp3;cYfHU0blaHB=$qaIE)%`J6##(YG z^C58Fz+D(ROG6%JO|ps`ij+Y|=_IcL!fFyk2NAa>JSu@sDHe5keru&$05Kl^u7pe9 z+i#mgFzk@B`P=B#Q<kJoeCbl(M;XyUNQm-*nUheIkU<EX4)-+Az%^r`#vld5V0Y@b zB5Z2W983d4CuS0^fpn=uQuRPd5D&JL%DdpdNt2WCT7bzw@j!}DAaW1*kiIa4RO*Xx zydVb=PZ~^I)Y0Z5bWrG?QmtrO?MbL8x%i(x1NP3*tvOe8_5Z(k4J+>3Sq=Ya#&L_N z)ztGdv9RuoG9x?~(D%h~e<=T<z}^EN_#phl$vQe%=Y&RMI9A0ioUQZd-+9bA=lm}J zJ@(v*iHT<G_kRCzkAM6V@Nd;0{NW$|;U7KmNl$*tYW{ob)1LnHr$6J5pZTmcf5Lyy ze$I2B``qXK>7PwL{{=62;fr4U=Pz0N7cYI;%U|)zzg)NOulVm(fBiTA>u>+}d9VJv zzx(_1FL=#`7hc%TF3Q$t8?uerrfhSzC7a5&W*29dWS3@_Wv|UH&$eZ+%dW_-%s}~W zd}7_G6n%MjFyMUo<n?^M*{;V0l&PYkUf+)IxT4lOSaPjHHoSTVSe^+BS7qcm-DN!? zdBRim;kwMyE7%L_3!%1v*VsXqRaP3`*A^47JiI`;N2{6iz`R<npKN0{G!rJ__A!cg zM-6u`4|lOi26D)Xu6;AZFR$e<cwau@Kk&|F;n`)S)!o;YhKh%!QdqH#y^cfBAn}YV z^qyDDwQW1rt`~uAbLb{1xH?Rjpunk8f-6Rq!hBsF_uhYEhQ;}uC%MgGDVsHy8Zu`P zi*-}8s9f0f9thmHrO+)B*er36Ce$948-f5-Kkp)DE+J;{glR2}0kUl;c4R`5OJCE; zzF1FbqA?3H?+023LqQqHVXC16S-1tO9wXCKF`%&(ZwD2HowigMT$-NZZEA}ZxY*1A zQa*CCvv;%>g4nk#*k*))QHs(afr(u=h@xhDbDC4vY-(Qd9;h~pHNppxrQ2Dd;{Zwp z5CE9Ni24!9vV{>gG#i|I3^pcg5aP+41*tL92;PvMp)HSgXgTiAI@j85Ke^e5yAeWG z*D$^1Rdojts1k~Z^|gjWoxE{j_`w({;Bhqwxd#U`dM2Tc@VGE?Zko{c?b;qPNDQ#) z*{tQaaufQy7~E@0^LZxjUf|Pt4!-}r&!+8khtwbvj&L?VSei|?zL3eB^~r=2RXLfr zQI5PiVxn>~Kf!0ti_gq4nX_60Skz<^z%XaU$^4u618Y07&K&}?fehbC-u>$c73Irl zAPR8!Sdk<@&r!T8K2Q6&3rSjKl{rQc!2;Jcg6(<(;aL~j57M0S8qEGS{`gA#NHSPG z+ym)p<ww3js9xbetZ_lgjW(zSM=7z7zrP&6_qDRA{5vo6cUB>s5NdIMoxQviKR`%J z@_&^#{=%PR44rv&EP9RDASF1GITQ~>O>RjvHiZhH3JQW@=mT2RUB_RoMMDs3Iomo& zqbdpXwM4TX6MTu|&2S@BtTBWj=at_W<XCMu3R;kvvKWmVfbS6(FY?jgB=bfu3(sG{ zF}@Itci8`(i-n1B{{;j&Yyjv*IeHql4J?h;S04`%15L~SP`8De3-WZ5Tve2<CTE*b zwtg#(%=ZX9KTre{g(SJe?`z_E@s|nYB!O|kF72*4`VxQoGyW8V@vgTHB|X5E9BN)P zh!!R>eOM2%Jw3SVAzcp{PwI?&m;-(y(LWJwf65M`4la(+<}r=%yJ>_zch3{(hZGWV z$xA@!pmtoYDze=_v-juZM$VKm;ku{^4pj+{jvm3{SYa`_Z+{@=6G}xzc3+fazku4L zVn0PZKP%0^q{Ru7pW|V|8HoH(`X)h~c4{%hgB-=P@-kme-;a3vnG*W-=1+L>3`a8p zBvFO;bgJ;6wmAuNG0>0GB)AG^<DEi(#x?jlhN|ick?{bNr$u~o%1he$XN2^r@fj(m z>N%OIniF;!@JPdBtxoBAa=1m@uhXq35g8aFOF1|;4D0a}*)}KTNhQ4g7Xf^t<Ml8v z{*X<fuXbt*CdH8<_BSQOvh_~H?(-!;0En?B%&v-9BQzz<uIG535TBU?vsR3ypk&x< zKqC=nnEm~5i*|~F+pTTEPI02$n}u7bl^lrnasu=FCFEYr+rQ_?eJwAV=zxUc-is`i zBgE}x7e%+piI$Cb;&!hS?RlL<du~KqCDFc)kUlm(GY4w-RuL^b4R}mM`xw(UX3zJw zW`jNN5*USY{1*0Dg8pRNzL|hLCXZIx^H=ls?+C3u%{TFa2hh^lK&<L+S%24+aLSfD zak}4^7pAzp;6}UolxDQQg#bMY*aO7@q!Qsy^Y^p#`yBS&{wmC}8}c_nQ2U^ywE}Qn z$JbRpfTGZVC|{_v3=$2V@D4&gM!Z9jL+|VQ^c<b6WBfKKWh(h~2<h9ipWwTv4K?9! z)Q)*XAP)(!GypGfRqeSi1Yq_#jY^)zvvBt~PUaLbz6bA@Ce=YOEdq&j?QbD4r(!_< zf>wc|vq!BFOfZ^VMb-W860z`@p+GFs5Lgkh6)+RZoI7k6ipDc8ksw>LpKsz@r{wV3 z=%&a^_H#fid*Y7`R|kxkygE#}{TKoR49-+XN<gWa%!61!3k_2+BEfnX1^A6eZzZr; z*a`~5eeMtOHj+<d5PXCeSOYgKNS=hp7w2n#xP)@H8c?2~4SdNF1TW^}1OjVU4ux#c zq6zgeKEo4@a*%>*KvhK(>R=Ur<`G5GSs-u1Z2rh`$<}XeE7wTAEe+f^O>_T4hxDP~ zE4VeXdcVLiS?Mn7ISI%b=CE@O_%o>k55lo93YugQGM-Dn9L&UP`ZoM4>)Tc@d>_1r ztuP(poG$y|A+l;dWyWdX(PR$qbuh|7Ddw`~BS$gx1h8yZ{00uxb6e#U_})Kr5X{kI zSOSc%N4@sfs7VKfXYeTels-7XYl5@+3))0jBnm?BKY8t$t!pLkqKx|ie_A%w{3HS4 zE<|cS4VDP8fv2H<F=5=p@m2^V|4vcl>?^&)3=~;@u^%&fQ$Jrx@A&RJES?nJu|Cr~ zUrX;eY}()5F&^kP^qJoIMtY}Xm)~6D*`MC=ek^Un#%+XD#M`&hJEeX7w+>(#qiWw> zePXT;!uZ3rTBbetR_76Md{%i>iAOug?mo;v>XO90yAbmxtu{wJ;(bPK6*hrW-EdES z$i0?*!y8V8-BLMGqZjIndQub2{iE^XVE%#?Km3=f(<C#@IE30*jv#Sqsoh$|<*yU| zD+0%@;xP<c+HsVAOig|T63#vpy>>B#q;9E>35g(PDUi5jQ3snjlz-*1i&WGA4sj5! z2Kvzke1PQLgTMqO9nL6G4kH_q@ooig8$H^mAoM6nI5$kyxG;wBEv>mxE(U#ElMd6! zReG@l@CQw(66Bm-hM9f$MLMp5r@Hu<@CZ}-eDejIb5My70Z@ghxCe(|okj9tPx0dD zP#K6UV4ET@B0EWm=|n~)?)`cnxOcui7~s`o$*Z|yGhO-eeFeVMR-TT7M?$KCLwjC9 zrmb(sCcd0f;#<>q40rO;+QNGq(t8_HfufZ?4LFsZdUs=b()I3A)4R+qkp88Pu~i>9 zoD5BA8xN~qm`n!3Va~gHF_9TWZn9csB6Sp84<<*Nnk@;Gj)LpsrXa!3F~2}|^;k}E zuF)DvzJj_09J8!M?=+sVI79`qie#|{7KD~YNG}te>lCn%Axi@F4DxZrarp<yjo=x+ z?Z!AQ9>n6@8$#n+JcB@K^=`(=+-ieWCI^d#9yesEkO%w6ktzZQeX!jEIQg_12uOzq z%xlft&pgkjY(!g0j&IDjM-3!BB=w^spa&SF@1kh-6bKr$k|A*Inue&EoSQJ$w__7d z(6);Vl#-tiH_&po;Ip)5-*E2|oyX>`?bTKp0xu%Wy*uux0(X@rf-AeAkj|Q0#+9@+ zBbx12ne*28cuDFQeolk&a<l;N<}`fgOZd^ztSm9-mh`wYr`&Gx5t2l9@NbFa$(WI{ zR&`R=SSO)N<Qo-@Ibp%74uqv&IlJBHYF7`$W%pB_K~;lJRsD3|x{%bZ1(G5?MB4>A zSw()R-k8iO^+v=Ra3*ac+LI{R(2mVInGu5W>|xj)Hsr?i-bE%inSK+@elRrr5eXKC zUS%p)Y^RyS3bN@?I}8q}J$jASiVGFj$)?DvY^m^kRGvBGt?GFb1BbiSgs4wos&Jep z?9X13W0#4VDNGbG+Bs3e3>nH!saVJ~#YTOa*#APNDZb~^M7i8CO$oiGyHsPM3e7=R z$?iEaoOhhk+kFDQopn_GqC)`0_X_dd(f+9d+Bwo@BPVf<h9fID+r}lV_3hY#<Ct;h zGLDO)YD0Q&qp<?*MdW*rWG9Me^d(js`|(l;gZ?AlqXk631JXa4R&kqjtX;vPz7b2! zLlqV6_ZBe49Wc#9Det^pw0$<T<0~#+`3kBy8=vP)>p>8;5@U^mnzd#-yKAVX^u_x# z#sv2RYZNuqW#raX+xI$~SwM)Pel~l+;?lH14rC2ks(bktDxb?HvFBPrD7`j;d5al= z+|L_qAubbe-8r626mw$f5~15EbBpNBDA$yCcprV&&u1`#In^FeIKVTFWL!1mHNfyg zM=(yQO+As5+p?6%DW8%~hsO=hsXZaKYpa+0GPz&$$h;sTaDcoV*11N3bSB5rB&H3t zpBR9vjp(Q_VaX!ad6bK;WWBn*Y|3cw1K_awn+poOA>qz#O53eE8g0j190$E6TXQ8q zVa!HB_5s3-s5e=FF(=I*=53bHBG9J!)4-5~=@tP^`Ved);4WJtV{T8N`N}J;sWWO% zfO^2JFc%DGy>Y+w;81JkbG}Yl4__544l!x(lIPq+r7)ep*oljXs@=Q*^km~hm3s-S zT@E_VgU-;wjae8ScyU*Y?b}rP4fYXxXCFZkcIyLfKIuyI#s!3kuJU<31}*AIq-If1 zB3*PH$5^3{2;fn}RYa?NI0*<x2xh(I=DGPl!B&qnaDAeIFB)shbPFOV@HXA{`cRWn zC>t_ue%A`f+q++9k4otOogZj~?ODx?5|lFHzX8O={O~-cwfZI{9eILuR_;<dp)ss~ zBdqyuTa{Mk(pk?u^Q^PZdeoyHb@sUbd-S83-KxaaW{Y{P%xP6d>r<G{`iwvJY*ys5 zDw8#)vVv31Ou|<BQVQxF1x55yJdLAiTxV1AMx%BZQ_8Fz$dTeXPw`Z&yjdHYzTL>h zBK#)J0<|>I=1bV7h|c|>s1<^A=Y5z)R2>YD{kedEYN9U>QAKANOlJv-d$kb@(opxr z{UmmiXcoOQGm2wFo+lnmKyPjv(B+W&i*qm%cr6MjM)e{>LxdEf6;s|;Du((Ze~^*{ zZFB}VE~$E)${kTL{2w(ZdNLf%Y57@{v`8+p;fFD{ic<UX)a1Kt3SLkcg{)vU_I#TI zNCCpu!zkQHZ>zDfb^V1nNV#=5+rS0<zSaZ7(Vom2>TNA$G8k1OGll9cTPb9FOzi3P z*d(u?hikT);T1Yay!YH8?AHe7eBaG>m>#l9)^kbV+4dW5$^cMu8Z4HR@YA1Y5YV9{ z3y}yn5JX|QKYuZszc|2sX@L+9^1>BM^-)alZPGKaoAYn8-5B9#yRmz=>lfgovIR;~ z&kOo{2KLrBzxr^O?4bVELvvEzOg0np;X4hIqAB;*L_NQH(25#LdpuK!HwHFO@E#vX zuOfO%8duKqDCYm^q&4iz6_NI}8l=G$xX<*WzSfd($xI?dyPDj4{1haPGYrn$b&?;q zZ9kd6Bm6ajLk<-t{0*0+koAMc`>pW-Yn+MJNc+L*V``k2f5ewbylZ4N-o;n{5cfiI z`>%Q94{$@00hHRXcqF*kEM2UbU2p;HHJ;pt<IHHhQikA3R!-&cfZ>ol{}?pJ6dy$Q zo9E*D<Iyf@7vVwD^ER-NtuBJLDC~j-0(Ope3JjQdzuNx%SekIRKiN;P-DwL)n-fAa zPsQ2|DL%ERBRg#qC;)Pv!M3vqW8g!=XaYHj;h6-9o14EMFiA9>ced5y0lIieOQn$u zTEf8zNtcHq8>yS@|5*AwUhiWT47hbrDx`<oI9*6S;;%jl7!Gk;*f+RS7Ny0Z5Xe@5 zbDd{LIXHY|SyQ>(6QM!2tNXZNeTX5`h(Dc1`~?%$=W-R*<`Z&GRC|C>dajY6Y?yG= z_vPdik)#g*3bWB8!oHpF{VqorMOKkY!fb#_IwRk=+G2ZxbZ>&xspK3q94P~6ixeZ- z>>?u2H*uPuETLaX(8ygf04MPWgfs1!5=&Ii#&pGOOuGj=>G5yQ3R*+$E+DHH7^-*v zu$(*#F@S+LysVeu({Kw4VLI;*iNbL~C=yAsmD7obkmZT#N@)5*LX(?6XA4axJ<Sc) zd@}n9C<7Z%oe6!x*FcpcFubxk&oo)4WX|8#3$Fjt4jV1L|2A3+GDxfMk7V;s)D7~m ze_xK&1g7o+A^5^=!rX|-v;-@E8Rm=fh*gv&j|S~%Z>`;*A!NXxY-65?;R*b~<WBK2 z_>v^E!K8blkeXi@eLvyP$!si#Kbm)u<S?ixjKq-0HUl0J;5L3}TS^W)7pwq?LJ2TR zDB+yRyc--ifpQ6>>X_7jNkF+=IxS$A{mmnnMCzX;Aw42DDGK&2K+-hz=ELT2ukRU4 zA}<gl?IbzVu&|3PrGPqFN`^Z>HrE6^mX(ungtOq&MYW~WTTuRAChkUoyQ22LlRun- zA6)(G`sAUeUO1_s`@hDAPsGC=%Kulqi_|Q%-KqS4%pX`8$hE(&hliSKh8a~AGBt^T zpC^j(q>Toe62E}5Oj{eXq<4Oq-tlE$Wnx9<AyXCKIh5Y<a($})J|}GdmELjKQ~=(o zJ_c#m6qw+@(`yc%ZNs-5m+B!MPVYE)OtMPzYn9YD(eP)E2Lw}xbq5Z%fS}K>t{Dcz zS@F%S{1F*M{fu})=}A>y#+!`eF=HZHcyHicrAZVf84|<xQ~M<AnyEjMBWB}W#b;1# zi+#xGQ|hlLH_)78QDN*pH1myR_AtNV3k=7sydY=Fu0#-+i(`;Z+B5b`badrK(F6DS zwdLi&rlccCt>XN?KE3AiYk5X<&F>r2JEdxoI@@D$c}9q*9AB%2yoC@?L5302i*SN0 zIH=3Q&%Q!9gNaDK@B?L9Z}wmgt*lXl!bLGs;G;oAj1@fcjqTW)hurz5o}{iWu*K%| z^e(gDcsfQ<?56PPDJuXiE}@TIZ#7iosE%KZT<w@<UXxG>7CWm57Zia*jQ|D;R%!RY zW%*gq+U}1cVnI`vv2{>3NL9fF2G#i(2phM|J7UzFbPY3?G7?F+$|b@gnyuqP6Z2h0 zbrqW6mS7p0EM&>`G~Pw+H_#Wqt)f|lH!q~aVt=un3aA-30&Ey2N2`40IR)4?3FRfK zyXii6YmKKqanF80;m@t<pH?!%K~S-VU)cI?^^6cIM3fN!LYOcYCp-%gLT!6jXb_P> zga#2C1cJM;$kz%i@&|Y{<wZaq6xd*WJHFv;z&G$5C%HtI8>^lcJy0Oh&KcLsW}2;K z`H$S8=v+4^=xCk91yS0|RCHxG@DHBHuhf2Hv{fbQKSu@qcu*ZPZwFg_;wRmF92tmR zb{KINCkUNU>0Aaz#ejTO$*pkEHV|UgmwSjDxi4uzhH~FBtngN*j6SkJi@=E4?t`l) zuKHT1DeT3w%_j&I(Pya<_&NqH#zp$a^1);EAi2~%Jv<0oN``HCkRF#>fL%4%`~(qz zEh7Ly@A`FWjB8rh0^;ugA03Th*G8X5<tPZ`<fw6Ax#Ph{g%(n;XR%j{`mstIcWQ*T zxY%}P?6la{Bh^;1D({=p)Htcp*TL*lisa-P_j<cy!=Hj^TY=kfOCZPmoiR!`K5QE? zOu8|Ic)9_Ga<oCfos7G-)nZ%|LvO=6)=b;iQJng0lJ1+t`NKmily-e4%mk|Yk!VRW zPYv-a#a^7Z*0Gp&&DBa`u}5>qE!rz{SbPMoY4O@?&^bQcCmVPLR=uf&zf<Bc^7vys z>Er}_z#mJvoK(UeABMRcwZqxCrlG7+Mf{E9?y%n^Vb6m<Z7`N8Y?!@U_`?wnJuTae zD|~WOLSQ6@%lsgu3PwUD%RsMsQwFeRh^W?Z#yHTmQg1T(W$Yq%jJFZnU|~(s+ZgQ$ z<72F{hXWmb^UPk7i|s1_^Q<zdG#Z`~g}IzE`#JbaRZi%q(<J*|HcR)1yn-mwLbqxT zAbYxXFdS`E4_^lnQ4lm%hkDdJWeeM3;3k$KXM*sBU2V3DN_%iE-NmfPRX1VLgppuB zTKGE1eK35NM#on<ei`0i*Rs<1Vj7b3y&E$)_(=WeeV8q|D4*K>3fr|5eMBN0uM<Eo zjMY&YABI~9&_-w4oEaUA5y-^nh%up~79m+h*kP$S5%>|2!A5VxZ;j5_6fe*>XrMCv z46u+;^gwi}5IN-YacTAIY5Z=;n57<iq@`YrMeHxVV`lnX?|i%TP7l^#Y?1b-b7x+{ zU_ss`jB>YEz#Coci~R-rLP>IaE$<S@AUaleqQg88TbskLlm06Ry7fEau7s(L?by6$ z)*F{Lye0}W3WYmam%gSEzeAlZwENWMmel3H4rv|4^6cC`kefFSP^V|^<$$vojI(p= zsvkZg4YoDv-^tf9fOA7tEE6{woVV`@hN%R@6~_w(CZEMXt6+dI0&kIlJ48v5ZnmbT z{>6qvlPZ`$=Cx|)#O%~w&_C!Dk(x9h2#+c|eU1aPs$MXX`+WZq*ytd{2Z9bki1?R| zsPNpY?qvC$0$DOIsd>=Il0<P{L6@#?$2VLi@eMsmJm)60I9VIho4)KyFBCmg%D&C% zY3~P5(_qf6`<e;LEE{D-%{jjpr}n&e+j|0%BYB8aJa(-3ypyr)a3zFsGuEyag<Mz? zJlJK*!)8&n$-GW>fWWck7>XDXEpZh<!<ZVNuXSKRb~|rCb_1snS!-Jde-o-3gs<35 z7rrjjhE%iUyJ<*Eu?pf3LyR(d6yIG$N0GZNp=tjzaTGxbF=e?m!7t|R$Xs<dvV)JT zrE(bUP;#`M2c;n0v*%6P-V{i6tQ}Gl-XGU=kwFh@VJ=v1y{^oD;0@bskDudAgm_=o zOc*b{kGr`RlVbxux-YmWf0n9v2z_=D?6U<9q6LxXpmt`u^t|C7E?l&blBRgeGS~sF zM?7^GR4i^{gGLI|(LZ89Bn130<IvrkM+RVR_P1tg&p5u-#=q(7zkRr818AVXHF3U@ z5pYluo*dka=LYS$-yA;t@w>3@_YbuV8{xtYggRIBq!?MTBInc(q{4nCHn1hjXdr8m z7W<gZR>uWxivHHe^Uv@^<fTLUl`4%?0h&*8AjVB8+>1`<rR|8lciTx6Y@;*jCC`;0 zS!bpSW;ab~He%8dm!&SgVgV@IUy#>R`7UI+1eV%HGsaa#6_MF^#}+!=%M&a<+_KK} zAxa22T#y|d!=1|v-j=%X;TpRfrQz;s2|tDsq!<!EKB?9CS>y}GwYM=7`Dm1q1UH`` zZuV_4`2%&7bcR4uch3GnfwOrAfk#a#n&_sBlYO`MnDP1ei0w8^XXza;nx<NamRBy_ zKct?UNmmu_gK$;a1A>lNQ;!}e)0DM^Td@{0{=nuD7K$1ui3rLC7ZIp_j3<{+L@cQk z5rYsQ92s|((yL>(2Sqf6!2{rHApKXr(Y=b}p(zfO1cRQuUSz~e+Yz7dGG31kTBQai zz9QKZUs00SuEXy5>ZiD3Oi3GK0hJ^#un5R0TB-RL1NpWR<Yqf`<EeQd_YxIVGmYRL z#yP;D^<nLKKtdhoAxa72lIj9!Fro)2PY?Am`&+Vnq|ZnJ<sdm@)V!4H139T4lr6>j zKx-0<K*-{zGC=0C@MhonV-oXxiT4@(205JXufQ8b-GTqu7o;VKptXOi(LfTw*Cgy+ ze4I>*0XVD&?ugOP*397t<n%>ojWm=aDIi-+rzcbE*QVAl>bBj7)h6T@GYOaOVC>p= zlY}nIR5r(4%}GKO4+TiyoFH}jr$N(Q*BvnxnGAhhA7to!>r0T2+6k+@8UskqW&XO^ zIn8~&<+RuX1&OHLu>1NvEjG={`gVNsr{+y{1Sw2V(kZh%BZ?X>A!cOpy?q_jK@l+C zx#?}MtXV9>7?u@{-P=deD6)!jLK64D6`!l^XddjnYbgU#ns8)7q3<SR%L-_)oe9kr zlA`*Mb7Jr*bcH$UX`Ld=oHnRzRCWM2gijH=8AOF-mOy9orwLsShMz~%aG=Nw#9mhA zX0IDXCWKBUgf3*);nwuHdrz<e3}NuKD|b*TYn{W{Qy5MG`9f4D?)UT!*HvGa>xRvJ zePvJBNb=m=<|$BKR?7kda0ZZnq6vc0!^>sPK5ESND1Gq6BXErC6ZiB7LwTYb8J6L$ z6<Msu`uQ6%uN~`DC+h5tm0YNL#3N2See8@!{`Q%+RP{Ta#g3(_#DhC4sv{pP@ZjT! z^qrwNGEuj?NImP@@uhuc19NSMt2N*RD`!F$#5xWcgI<c5gT=tSt_-|Ws2%<<m0x6H zxp|$|pV{BVzBi@5z5ZgXG3IJt#cR2&g*7ExdInb<K;vYlHvSfNy5)LvEuQ#fOX}@s zCV0-(NOu?W%BRwU&LQE!6c2Fy?rc5n>@Fgusw)OKE>2B)hyg2Cz>rz=7B1$ISxPw! za^E$RQvJ@M2n-=7YVr}RgVS54kHtK|;4QNitz6}1TQdRItDto*Pe6IX-J^3raam8A zk=k8LTsfbf!jk3)2xU6pd>?Owi~YR7904OBz%tjT!B7^45i=B*x4v3e><+O&sQlK6 zE(WOYLq`+|-cO8FT#*KLgPD_Dhzr=Z4#yT2`@1qV<*`33;KhlsrYbSf$^`?33<J0e zGLR;Q^@j6ZyUcjyC2XgIT387}M_hnm5Uc^Z1Hs#SJ$k?$hyaRc&`ve<w3jRrSOqGP ztWqS1h(e-vwq%>VF^&8V6AWi)<Un||$rBPo7zhAs)5&82EtU`ss%iEPsHPmMc45j1 zId=xe8R~8AOR+8g%Gj2Fwb+);dRfW@y-6xrXl(21G+2*qovy*sOo*eU3CIf&X^Ph= zc*pW4VI_%+f2V2W0EAhSfODOVe^z63qzMO%d&efn?fYU}`fC&1?$UEbR(K5XaGCMp zgom5^NU%u0r5oCu;Y!e{`e9$joG%D`uKp?!;8cwOb4H4a?1{HIkE~}KwqvtJ-cv@s z`fw(t+ZUz+6vlqfOZ?mV#^#lN)d2aS0ZNL<!Plp8ec57-Sn;)S#py`Imlqj%sxAqJ z>C~*-*`sO}Ab7KUeJx=n2Qf+ig4Ukbh%NccOa(HywY8vy@Zz+M$n+krttPHv(i$#| z_$>)EcUDfxfo3%Y<gB1LUV;w*_3luH{@M$$=}7aZwMwm3ll(D`Ui!S;(}9(0zS_nH zHA!~fV_GNf9k7i7SZ0&S+$KSUsl^2>0VX-OmTiCyF#VH#^&Mx`Yls;Nlmnn~CDIe$ z+u?btai$0OqBj~RdP&%zh&_eE@%dVmEGlTrQx1^*cr*~aBO%z$WG=o3GFJFHPk}qr z<8B1taZBdvTAYL1T(m+@TG@u$)Pc8&nBuT)>#bSK8n(y+o<p$4?E%e~vF&!Kg(h<e zuzJs?c~~+3Dg*$u`w`qcz(!#wC;vGmq+2SshE^`x^PYqS&nah2EXrv~!X&n$fgmXZ z^~Ct16NQAtZtx08U?=W2m}ja&I{gw3B)uGIiH6R=P%Oh1tJB!m&eM@%rOhHjOLRnp zqNXY0sMf>LqowyIv^Xs-pNp1mNsl`%;c=UJJ1N1wYr9Jk1&;y>5LyG?7C=+mC3WVY zDSIGCQ!p`TJ3wGjC_qklB7|09xCob*t*xKEH*ArEL~lJfiF3AKH7kvyg!-Zp{Go&f zH_O;TBqk6|Bp}+=L4s0|n66Ly;lrsZH_N!R66|BLOBVxmac0?39Q>^bVjnyfd5&!G zA5Bg9;B5gCa}t%~QLst7U@%G*S+%C&tF2m#MIuJh8JlLLO^M<PNcJJ(+_!n8A1bEL zV$O&E>+s>@HXxSS7vj==SXkmy=@~9@>EDGLHV$)}ElHP&O9~Yo#cBI=!nIGEtwNdO zW`vdukvVDhGpQ+`Hd}4_ADTAtxO1$gj#9vQtaAE7C5jpX0bZX%nL*viBCzXxo?mFJ zy4^T+i}WVrdyp3XJxPn(6Xr`<&)?`r;Ap<8fb|J}5X|BFZ<b#HW;_Rc+-3du=Y@C- z`Lub!GAQuM%AN-74n)u?2oBcHH-iCQy_CZ)OqLmE>vEnrgZY@bb%E7Ma;vFUaWmN0 zl$e~|q5$61jsSVFAi`cYUM<-u;cs(#&()okSuwM@WIAn0kGs0V<7Tix>jQ8ZEM~hX z5!j0ka?#2%(=et<3@LbT98cbrFl`{OWFGtF;slD@FN|VGXH|N_Sy{G>v$D+ENd*~7 z71$W+)fN^C!Zm;rkgX!RC-YNMsPd<LEz`>glFG#P#KDk9h~8{iXb56u?xKU+XeJje z1+HpY3>xUO^H}7ovfTnWQ=*I_Jkj#BpGm1zfty4ZS0wEIz!q3ia@@CAk1Xp_F$$c7 zkh^gbD&k^Fx-ih80s~QE`Z8;gf5y794~opmnj8dzl<9_Lzx-U0c{qW#Dr4p{E-mbz zM!TsUp>ggZ;AQS<6g<1l={+yCMYFi7kXYXT*qYud;r5HfZFOlrV0QjmZ+8{2%Eh`P z#ww%3Ms~oN@ajs&rBJ{s)Etpq#Oj82gl4aWnTVZy#38t77I*2k^fezoH>G|``1}gj z!>aLVl0VA-dpp&tj5Dh^%iichyzSel6H&~>&nl#_ZSJp@{)ixTlm6j+1oAhRW`V>G zQ8Vu33kM1@lt{ko3S_vc9pQ2EWm|cZS*oNH_q>I4?uy!+n^SXMo6{sKW<3{5;qD~@ zOjT48SmZ}Y(#|Yn(_!4a5XF(*Dl=MvvP^4<a@gfqVf<SYz^=qd_JO!cO6=nFxGOQO z2U6d3_5Z2Bq6DTACno61Kmw0;u2ZfebcUNzR|pen#QK%AGPnHQmS8N=^w)Yo({r!! zLRKsjJ!hzP%w=BgsRB;Akn_d@Ig@;vV_M%W%Hr{^#Eg>GlEs!9h8BD?1MrVcM8Fgc zc_$2|#L-Ly5|wAk2_r?0n!Gkq5((as7GsDPw<E+(@O-~aM!<hZ?D3NHUbnOX&Z-O< zkHBC@I-2&%o~FhvLLAK&Mu-VIdm5X2RxeNemuB^&Sr<u#x$LdMFzp>G&c$HYxft}h zsDo^k2@lH*B&*eF`zq?S7-kq%T6<{@Y8+gD#h@bEH?*e$p_IVC^pyaAX&0j)FKYk) z@BepW0OUN?Tf;v%Tlm+*e>?%Xk3z}{#X<AppY3nfg8F^&k7Y!c>mOFub^P%|^^cX~ zMo==2i|i+zbn?lk@ZadlQ%`-^!?4_b+G(eqe)<^yVa*+j?yMqrw*FzCD9=ac0m+Yj z>|@V8mq#Q|@Q`FxlS4T<{zFN*CqC&(Iw$$5`1dp%l&o`-aZvKJpYt4?lg#3Blh1$t z3ts34CI1DEO6ETtm;B0C{^ei(<+{Im760MHWFDDp|6cuffB*OApO2%H?VpZM<^jt5 z@DODlqihE$+fmAPn6e$GYzHdak;-<c@|D?D+3WFnL-s~}wrAV3tK;XI?Aq))eBPA3 z8K3L*na;xJE!kVMx8ZX`_V(-@*$#Ym;`7ezUHIIXy*t~Ly(haVes*U!XYbYLmW-eG zW$({E5I-Nx_GBNz=fl}YvRm=_X!f!A`FJ*yeFC4`^!a4=sqEA7^O@|k*<O4;mwi6F z9iKb!`9k(Ze7=<J!{^J{SMd32_BDLIo_zzKf5`UZ^UdsA_<TG24nF^weHWj9%4YHT z=j?m<d_VgEKL3*aD?UHO=RkI+KL3{4=SNxi{CoBv*^l-4Nyg8?`1xt}v+O_d`MEy7 z$bOmqDt-=Szs~*-KL3^7mHjt9zlop2S-XA_KI`?_P~TYJgwJMtw$!Ka*;>CCpG)eO zQm>dkZXT#e__#EPS~oFY%jcU1LdM5j1w>hrlaZ2TR9xX=x!aNlO;ttRdMI4Oif<j- z6qfFw3`(gE8`}}6ZRQkSMxf59O(^k@RxCz^J1Ov+*_!c3dhpvN{+q`Ze7U>%asIZo zZYAyxX^ENp1aJo}A@;0{D=f3swY15s$1SFkr*P;;3=VBe7eG>l8lEF$xrtrz$Z+ny zF2*bwi}aNHeB81SwG0XOhie-e{Y<$JkxOP{ZbS)C4rv47wlT?EusQHJYt*vWCoJFj zTPtcPHK+G%CSi64dkR?g_#$E&(W^qgw%eLJd)GV0K?68w6z10+;`$<h!zH}7p^*gQ zgaW8Ed%VSin-oN`i)ACIzji)%1nz2W*Uwz7K~^ejAab?waK`zfJv>87Lx4x?#uyz| zcaWr<8*wO}LBBCjAB~R?6as-%R0O^;;l%?!zsUrxM|lPa+L-w$0@GKo&^xQ1(OTD{ zks?6bd<6^L3tWJ-hhPKDy#g2Oo;ir~Au5A1Sw*`NTwVw1E`ux7+2s<T+&9+1HDLS( z5y=~Si3KtM>`dIkHji!Me%^=y-C(B8@`;%}z8|gCzBcYmlUuGP)P4f-mIUICVUg7T zF%X@AG|!j;IW<l0d_KhAfwp?gi=5HAaV`;EXW;!RKkF$s(iTYLc2g`0n#V-cVywII zw~!Kv&e~ywMY^#2X*eHD!*MhImo^-eEP1l6abZ0yrg9^%##qk~+mo}xWR_oO4C1dw z54q(1<dUCfLt1wDPiwlwB^(D<;6>@HIZ=UW6m4{-(GDN}7+6L}1Z)5FXPBe$Gecis z2u@(0)B-}1F!t5lQX#reCX_gH{M6uf<|r^kWE3!i)n<;2D4H~YQXbN3-+m>M7KA+6 zSasqaqm2A8e8+dhul7X$q=?}662U(Pg1<l{{6`lIhc=g6cxZl<YGd@jA1##bE1~p9 z|3fHc={-;ut0dBA*7<{XYFNzjWU>W+f;#NC6XSkJxOmf3KuxdM95$m~`F0wQ>lM8h zu)I*c^3R;If6dLP6w6JV(SN~=evd!@VBQ&(#PJ!OOS7md;P-7x!3~nppudC8cuc~& z`<ms42{X<--|LuZX_ll-BJ+T$SOm^A3yRKbVsv7zq?~}oEbJz*N1#~lOklZUnKiJ2 zVqu0shhmAErbDraG`y}bGB<h{d})3*!#sT#?b%j9m3zgd6spY&Y92#$_Jft}eEFYq zX8$og(&(kEd^aclJD7M?T>SRD6EA_2V`T}ZARPx-8%)wsHDteK^WJTOgQT2aIvz@x z^a=jvLMOONIvPN+Rx@!*EBJ|dAt~<T9!&|!Q^C=5pmrlC;~PcPzLTi^I#9cbKY#6L zq4rX?_SK_>+Nq18PvEHi%Kt2Ce^=Y4c7POBlWrdd2JWNW`~ah0U*bT6s{!FzJLU@s zk+h~s<b5FWKG_4;5IJ}vOqLP(jePG8%*3_)`S#R+>wQ{pc@rQ{<jCC{sIZ%RX*XZb z=00yz0kbk#pyFxT0w%&ON|&ehz!BAk@|#Oj^0}^4B1n_bEODmPE_ByLe({jg0AcHf z9|wmKMqA6^YDSeaogi@u_F02ukrIq@wjjVD#QK_FCH_8*CSlmA3gOk9DBOTM$Kr$d zUkkDLSj08yx;}|Eq^hBmD`L|o;oiySK9!sNK1#SZu+2|m^54auZ(HQ#H|pIce>a=^ zMCatgrd$hU0ZljSN+V#p8!be;t(q2YN;BZ>IkRwDSW8P<xyACGpy?Jt8XSaxPu6@Q zjGGf!P8c6MBEo2%2^`*PuLdQ8MFmWGhs`+L3!EYq0kiobVjXXYUl~D&2xJ7ot?w=o z1P`izludkCO{5XsnnrYJsa&iN6`uH5dg9mi#0PU=EIg3WYfeQm_ew>$ZefePiewBR zLa~sY!S)<*=KF{9k&MAuJOG&c1c&`z@PX{nn}KxXc|4tk3?MwusXfsxiGQb=fL~J` z17v_THn$pET8C?@3U@mj+AT;ml;)Rs<2{_kNHmmwbc!ieNkAt3no+Xck&yWtL#EzW z805@4DlhRxcLyQkI>blR)&1BBJ3P?(F2~Ly>Bnu5?IF|X-Gr~-Z?~3E5NKpK0s(s9 zT||K3PZb>A%7MJIF!n!7ePkOb^}o%hc3S(Va-)xK?64cB#2fFh8z;pZZ^sQxYX4@{ zen35lUD_;+q7OTcS7nHq*&EvDcUFeL^ZB|E7q#0nJsTPWabA(3)ci8xxq-c*CWXZ4 zPKvy@@lG$r=zzrNfQeB|cM_vmXBu8Y-a=>yk*6inq2FVBZ{^$eWMh!ndpp~F3$XWn z{yc3wOGD6~G9Ai^o~G#QKd1Jj)YEc|G<LgeWC^NN4=?4N!1P0nrHw%%_utt1_3FH_ zB&pPOBvRjBHk9;NV`+}Y2K_ti$>>y6OVv9Q^|@4ivyI2SZH?R=1_ACG79i_1G2jq+ zUcf8<K&o<OmX*P!Z~>hnP=HL1!%$;MPT|HF8JVJ}Zhw@(a;bWqfwgFLn`YP+Z!yK1 z+Mg1;*XE{H&fi-(wbx*3f5xA$?lQHZ&CakQISAS%%_M}1mlgaaTib3^8LS`5g|cE1 z+jr)Rl_Dg+NXYRydt=9($r7q?@&ueBcR?P>xgtQCX5p3~wcd63REm}-wR)$xgP)r$ zu(#11fRietBp!6GhiKGqIO5mm(5rCN^+fMgK<{DxeC5386~s9gOCt-6!V>v*5b!28 zdxfF5eopNv#v#$(2pA`!1&q({X>D9zbO&D7fn`aL3M>o8GL|jYdPeOjz6vj76S9Qt z<2D$wA%i?5)xc;pjNr$ThG_vvFT&ch(BEYo|K&Mki<YnB-PZ!yujQA^=0$cskYS2B zN6Rov9obj0wMz}zJ?GS(JO{D^naz*vD@(|}<Y*xK$=WyI=fsH&B4z<PFv~3k9IM1w z&MvoK5L}Q(nIbH{k(dk))@{w+_*tw=p^0YH<lECAt~^GD6JDf1w7Iufmf<A5bZvUc zt9ftMOY?X4=Jcj_w{d}QzNPf$`USpuL+Q=-0^i(Gdh<0U+!&)aBSPPm-f`TV&v)iW z&93yKqvr4MVy{s(xAcGsX<Mr-!ly~l|C_&ys}@?S%AP|j{k9_@Z*9sd>8CRWJ^miH z|F>u#RR$zy12cE}>$mc;zv1|#Ud&y8M-OiP^-%Mp{P9)cw@yPNX(NfAoVb*T3gVJy z64`-BpJZcy#h#)oMr9PJG#RN2QARTf)vk=z2~4*iWW82MNr6_Dk`^ZDuyNIzq@@7l z%B2EPBVb_0|KvXJ=a60z@e|e-dt>zec6%T^VQYwA<;|B5HSgfxmxbTDVK*-yQ5wDL z65>9#_EMo21U+XYBqtyv`m61<FO|^z7lPN(4Ew7yU);?!pkGTLP^7ZYKp{k~oL|^n zGS7f>0SRC%zKckLB%2AWpfO1nMk0wpznq|QGwmgUDp+YTiW}AoW1Lr(2Vo-$<omuD zZ_dxzUr#+cXTKPjHqNGvZ!CR?Q}6=(5DL)2aT}5M!5^NFANpJ0si`W|H+W|fcY??8 zHnJSgy_3U0as!K3I1B?&#e>OVurs;8$JYK7FFO+t&|jEli_e3*z#pF*e(NMNdJEg( zEhJ{vlsYqy;Dny@hnMi@z|Kn>a2@0(u+`_V%V>CGMkh_}?56_~JOeU090?f|oXrq> zgL;mFpql#bOjvg&f3}9<)F=PNnOtBy^#NcVSu5>2Nl#Wp$ozN$CF;w0HljW_KY8lQ z3ndc{iTZw&pmOS4Bd8WheF^Dd;VAkDMD4TEY|5;96KC_8@DTXpAFD&olD7i%##_a_ zgSi|8HuelnqA9^L@8x90eEvbgi_g~61(VN~v_yqSUa)(Re1Y%O+=?ogPTRAQUIaD8 zTdPw{^BSUVHAZ<PA<e@?(Nof7D5CjBw)o_sW}APX6fxgrGV=NnCEvToGdHufCu%l8 ze?d5M8x4fvzM~V)+_a(SUi?vhlEg+nNdh}B(AQWrlO;8rrH)oKb4!BCS?Ui2RbZ(o zzk@)J623#AcW0@~h}u<Y7R6Fm@#YiYsPOOO=bOd69-f1xu3%%2(<I(~mU>;ni?fs+ zE^+i(ie`=UVH0?mUmw090p|L!$sy1G;?<=W&lRqMz@@S<k&^`Ob?F_q$5jew{?4vX zFFKSu6>$C+-&%U{(IqHtb`z9uPwzOCXD<vTJJX8}B@ez>04{GVy~y+W7VzSGN-yg8 zz4`HSbLqv?7uMtZN-sWQVK08L^y0%7_Tq<2FY+J^STc)CdNdQSQFPuuNiJu}kbB5^ z`zYH#aj2=Z&lQ3@s7_y-^<VUp32Ep)WD^b#G{3-?hiPmg#K5wbosQ?1`EvuX_sj9b zhEqhiN0zi=?c-d+Caa!?8p(x7c;4|`!f-gOQWZeGgYBQ-u(S3nExsA5FR;uWh|w4g zBeNH6`>&;W^CTNK5$w}oD)A0%Nv7LLO)a<YF?aJ@gh7Qq%&V2W-^A^B4<2fMn?G7{ z*#(+Vb0ygPGh4Gl92m=#kF)LLlok&bFUM=vq^-&1Y^!<vu-SwaR|F3fR$LL})wc9h zUTuf`nzkoCP5CNhaKM5?258(7TX5#)_YzpHw;v#|g5Hj5I_T}F$QP)$4-mOJ=_EIg z>p7428*1LkA6Z7<sKfsrp(*?yY)pl3eW~p3n8N>_@Z!^DB{+P#M6!XO3ARty5tzcK z%MzA37O06-29IaPa+{KZ`bh%HIm@bSn6tM~&iV!M#3Jj4b&F^m=FNKzHGj#!+{(G& z8JUZ-?qX}&)k%pV2?7plJBJ;b%ODQ8fLxe|v;He##iz=~wh+#maZC76t`;2zPXk8K z7CCHS;W^R&oxpO=;u@ESl;zL5M;$oJr`tSr&cB5?Snx<&`$GL9k#$uV`J#={GjKCR z`@!co3O1Hr)P}kFU))l9F>R55WA8$?Xx^)af85!}%};Y~(6n@L>^J_Ag~&O{%|pK5 zI8zC+WpHb3<Dx_;NT*qA&erZ4!a;@zsOCfN>pi_3?fC{+wx_d<EIMz(BTykU73Xfb zMHmuCZcNR*wO5gQoCv@}>lCV}dSi2X<8Af^kBHEdREFHypk>Cm+m_pl3&3wpZ8-4Q zt8Z!DIRx;<pkF%_whf9up9qbf$I2z%aBJDrj^SFf)~I1ixQ0bPQ7Vsx_Yj)u!x&XK z7gJEN(}XiqzHP;DKfMHm(SNtMNn#V-*-kv%JxA){za>kSEM1D-bH^NetRD_~?|a`z z^=R*Z{|7u^`2!#Lzz02umP40qz*iNv9HAIl)?B7-z>roRm_cO|Pa!25(3;tpjQrV= za;z9ng91xmejXr9ug*F^ITJ0vr-mk9M=hY7kwy~@_K~UqQGv1qKH`+j^Fc=~5V@j_ zSfkJ}B2eT=`a_hv2mfIKp_gk455{}c#@dO@Bl+$}Fn5gAkOjy^L@W}5CR(S*vq^Aj zm=<u^68d79JUj(35Q;%h3Zkz-JNMz<jaK{i<&tWNL#}Q|l=@D3Q>4&wBKIAwlYP(m ze||AkLxtpS?f-=@lS#J*k8)X=s7RN5A+Rkpv43w?JY5as^(7#!=2Qamz7FJ;_dm?V z_TqrVrYbBJDp;(wBOXFX#YikJZuJO>I!u7UY?RlJNFibMXc#?U3n?h1?*jP`O`gaI z9fSaz5rhcok+?|-6yy$z(m`!h<LRano>(MAqS7Z571UHf;I8XWJ0d(Cg~@z>2}ss} z%LCbPAUFIp6ntCMWSST|bPmMWVh-4;PyFBYfq?!>CJ8P5PVKH;&Bx&1u{^dJb;2o_ z?{_~+W{75;ZF|BAJlvL>nNK>Idzka}!p~&IaQx%>wvTyCINuh>+v4BjpRkJim9<;> z$xm7RRBThmKkQU~=ChvltTlh~>}O-AGXG(>GPWyE+IHm^zxc&}{^u`w$xGJ$#Y<nx z{mR^|{8z8~Yi?E6W@T(sKL3IXuuEARl+)Ja&DrLR8<V3RX&&k+pBb>dpi3_1^UXuO zL7PyYwDVyzTu+5-SRAbb7e^TgTc%<!YV5)HqHbjmG3if65Gb2IHXIY$0Bt(8!Ki_B zbGsmk>&@-hrn?v#W%Sj9VHMh(tF0}mt)JO0&MgKX#>V#@mV<JdFu>3z;M_SMoKvao z?^<CUWIu51*0yaB<+Zm9%}n*j@>ZKNh&zQc4iGCC!8CeHD7ZK^?MFBuJwkJZ$2ddE z4^+bD1~tWd_B+z8A(t)l7ITX%F6c`XmF2IBbI>!LRWog5AtCKc`jh2CE;8`9K^;U@ zwmp9_oxj+Li#U(FdEvp#L%kIm(kij+33lJChY@BnTMob)xFFnaWx3n{RjJGig(|$L zC<qrZI5D8n?L8TaXAbu_Kav6X3xpqpDKs>!W2?Q;58EXMwr6;rr@Wm%)VffGOIsJp z&Y&Ig_bS0pd!na#0<K?;=$2=+-@z_kO&x{xRCLh;%||Q~w?H9v7p7M5G8>~aI%R`S zv-_4byWcay`CGga=>!9a{DVP6#~x;K+|jKRgmI%+z^Kj%;{OVCwVy}=vJ@%<vZkR; zIa~Yr7cS)t{su}Vs`%`oI)B6$t+J9e4RSr#+IGpDlHl!WP%a7nMuYO~Ukxe=f?dcv zNfo^x4aomGpiM40I-YTYa9UvL-&gS&Od=+;`3PJyTO*<M-3bC`8vahI*VND8d;?y> z&!#dq3WB{j{T8zq&D+Y!zBqdDZ%IhKCv~>oHsQY#jfQy(vPJXd?h5M)zk&lu5bsWn zIK(e^h&g+}!9L)i0HDV2Qv^Z75zT}tBcK|geoy_}oci&~OfSm;3qjTCn7%hX?!Mj2 zhKjZDxI5YML;&VqbNQl(-(K&m#k5ZVnh0QlTqNTnw4n1Q?4~_%G=}<t1p7rcFKcr{ zwRsVaK}0=GmXc@g26k6y*R*I$)ZxhIyl>|u%y~>wEZ*P~u)i2JyEQ@O)bb)h1%@DX zF#Y>BChWhE^bv?i@q|IdwgBFArX%E8fEB4BEl4>#rh5|4o7<h^T0HN9R-9X+-I)Z< zZS@r_ZNO$Ee*g{acX(=bdf2y7q$ne#Fn;vlQ)WHjdR`oSGWF_2_`Ht67Krdu>2W7Q zJZ{u74fK|3oiSMPT%wPBGdmAK8hQ!@ISYbR6)ejSnNFoFu=_B75q?=lq=k#+yx0z3 zJH~s8<eV2R_H2Po_og9xB<I;f&D%*A%nkAO3-5eBz2mW*HAX`O1+p&&bN-R-JQKf# zAdMvb!B8R~2pn}Y?eEfE&&#VXq|SU!o(W%0Oa<jc{eOV%U~s6lnj^>{pD3>|J5n!T zmApz}?oN?wzLdK2(!iFo;%Wq4Mcr6tQIO<;&{v_~5<~1u9XWeGL!{~K2~PMrvG;WO zq-n}Ej@^06*pt7AGy{XejEa9^D^Km9dLb_tF>~1Rp}!=@zmedaHNzn`7Q~3omSCC+ za03)m`}x!!)Wn!=8t!eY#M^8hZ@^=$Rpa7qUvZ-LC%BxopVBeN0vUZXJ?><L$Bh{e zR<ZVXh_)v$l()B4DI4;3=tB?KAsl}sFlq2o$Q}%IN~4!Ib_PVy@HH*r)GOl`PfUj= zWB}vF0c!&;R)rCa-}h#W!qg$brDl-H&5VDv!Xg$p)ICo?;X->?!i9uRxPZ_R-~oz3 z1G6+ivkBu~8QW505;b_&DZt-`3~**;7ki6y{?Dn&AJ}0}tAtE|;6#U2a<tKE&m8AS z+m@PaUGbi<V-+v73ZfCi%SnkaIEo1So;c!r2?{@i{0V{roSP$kChO%z1(}Silx3~9 zV3G0t)Uk^U%l$EP*Hky`YA<xc?g3I@QtjbadXEVc%IVI8>VG52|Gu#?G>j!wzmMwp z_lBB3;*TwjliG)k<1a84Z!t(LcY(j-91A3j!PD#KlaxwC4K~GNn;AsgPuW^i+y%7k z1X?)lGn5*b796snrFY3XOjXCyvpIYcG*NDGmS#%Zehwyd`2yKQex3#h*|-5FxX0`} zAZGO&Gu(IjLfN)@%mLmH`9-xODB;yi30lN6oqPyzARj6LXU>?U|FZ;^FOb=(VHE1@ zdMdoU$8T&4H;6_)v7b#gze^mRgAs8YIK?Q}J$Wa*L=bQt*RL0#1AmbqbREcUq90fw z?7KnGzf2uDK|dyR6v*~E(%<hGQRe8JW`A7rqNLE`(Zzh&5}pj})hg}RsascR<LWjq znOu)yu4NhraD;TFM|I<(Heq;Ffs1bD&9jD@7xC|z>g*_R(H6F*%qbGw6zLMfK0t0d zdR(;mq8J%-E_!5`BV*|~xM<4V-vb3MDsc~D1cZKI;aoJ8z;Z4c6Ie&YMW^A_C`=On zCXs(h>h1ex1o4$b0@^Cc8%{!!Cr(1FFkxFLui$(seN1m!2Eu!I^Wj6yEBW_fu~l!q zC}72VLBOW6Y<U5zvTRqgwNoWvK?<`Z2_U`gBr>Of4T1yUlZ+&Us|D=#gcT=^m4Y8y zr$`!knIQoSfeK&{EM$QW{GClz**XPlB#o$_IYB`SP`VkAX|k?KU^!`=BCw8#G)}^+ z*n|k>N{3mNF0<z_)dA-)vt!W#pBbzsHoWKn6o?<kC7r>E0D^Y|A7!~Y8&K~udtMv( zZE2)#1FsNhK~NTK;2YB8ZUf_Svw^o&*}yvp`-q4Lkj)0m!ilIDaIp$h75;7LLk}1V zPryBovAvs}oWM@f4BnUk^@<7)?R;QYdcX@RJeUv6pSiI+z390jN`RaH#al`*@~HF$ z^!S0&i^>Yq#tu*cf*M`I#^4aFG9u8bg;N%jv?MQ>9NS4={j%*wa6EUu!otUh&ieo~ z<xmbbXL!wYsS5dKaTK%%9#6>scmmk#EAVw0Tr963v&jf-SlJ%fy}k`6#s2r{(fS>D zY`w-CNVC8QQ_G+5mdj}t_fijFZ0cF?*#`;ru|v)K;?FT%7G*!3;Pe%CJHG_2(6+^? zZV&bK&R=~stamPAnIXRtFGtImvx}1z1rmi*5u<w(q`n|zRrO6lv@$IQ+|D8E2$G;h zh>X@_(vM1*@kq3y{{2I(+0T8(&HeDzkMmiWe;Jot$_p!QwpRO;(IV$?9Wl|s{bCxf z=aVa~O42?^IKBtk_hr9CB3~}On=-3@HZX5yRehrRgEiUXYxtLCtUIlw87#_jIo1ws z2KjYKjJd9`n8`HJ<~~cmqA<rG)^u9llYR*y-rBvjV*Nq}WyJg_9&=nr3~p@4Zog+M zi1!zRjEl5eDh==;kPDMoz?oyFZ^3Jv3!ctE^_w%0D|kPld~52=mp&~s)u>Z}`X)>7 zO8NxaWb3U##fQ1J2!Yc=Dxo5okQO}zp!JJ?egD=E{CNNS?yNlxoA4R5qY7m;TxMa` zTiTGslZ|=$k#^{}eo^E8Ki)gm?`5r@$9qg1;dAxYzs7q?^}xNJ)+55JSZ&v1y{&Np z$R3@s4%C3{kTHXJVY)b^3+1F@daL6ot1zsF`Gx#CN(;uR-yDtNJiZ~J*3Cv{G=^Ba zD?qLc>U@b^t-AwWoEeZo48s9HYc+z&K}T}XptHFKeRp9x@)23K$ye_Uo*%s1Nptmy zg?}I`o&`yv0`);sAg?Z^Z!EjFr`92bLzU^3T!+f^4}J*#J@la`G#bd{KuLNOq#s?0 zR1VAK;NkC>{VsB5x*%tM8;^!GPf1GE1LYYSj|6!`>LAGx`eCHr8WEBA;}`6Okw8M8 zyex}0+%Cj{dz)WksNi&w-u^t%&*m?}FADaB3k3ThrSt8P&6lD%bAYyGIUd@cznIQn z>`WJx8IoqLP)4}9^SkKb;TR~cRhUV~rE>#K+@RcN8<e@iNk6AA>`z{S8{9C{i<sv~ zu%38xRBxNrgwjv&HaCw9!glxKS4>RwDoTU6=X*z%;JGDCI$MIp<7XV-@+wNIjy1?_ zBNS<D{S>qgUL)RUeRM|F$l@o*2Q08A4Sv#)MC*z1U2g*_B;JZ~HEVmBGV1soXODt@ z5LmK81;glP1^c0XUX4Ek=hU8nKcT!4wQg|f=wk#g3Zj0VEwXQJM*?+MZ$tn>dl?9T z$FvhkFRCP^3`pbz#ZRCeo=(Cdp{-`P@Qm6Mh9M>gt!{yZ6e&jjANJk_&aSGuAHR=z zW<Ul-oeIj$fHFbAp#>eS!rbG7sI3Okl4>96udirdX|-)yK`wa?5FosxppLH+k=WE~ zO)KgMD5*sot*xo$-;Nb){1t0#wT-Qo-}n1nYwvyTIp@wy0;vD~ev=Q}d(J(3pS9Os z@4fcg26-R0VROgdFop^*qCY#D+thiUDt(ClY+1OJ$B-su085O6@Wcl-V_ewxO*X)4 zYk;cbZZZir*|4Iy?Xe-kdrS!641H@tWEH0g8E6fPY+0kucGv*bD=`zOmiB_egoHgd zoDj1dCB7G#kUuI-NY}m^h3_jSL~t&BLU4{9C*%bTev&ItNW#i-X+i|~5GIBi1betN zDQ2lGEEl2zqFe~}V^!vKp3GTS02Rsdn8%F5K^kOnKUVX0bBOPbWKNl68~2ebYzd+4 zl+vjM;b`eJ5*8an1a&DuJzV2MF-j5Sog_ZGZFzSoO|g5y$96w(S9-v`U~O+%+?oAE zYUo}t&8;OkvwvP{Nc&5%r5LO)x&!y7HhxYgjj=w8v7EryVkga@AmAVV^B7cdoURBd z0b&Yo3Iu?BD(t@J9I(p0X-{Z9W|4#PK`){yGw-nCPT~o&Q<M~h>SCm0M$P;Q-*cm8 z>E_SjJPA{2hf-Z@G1ZlB74{$?&y|13bv0utoZ`a+d`_T^glt#*!AwHJt1@0!z*3T_ zL^}xw_Ta=Gp4T(=O#R`&9;UwX$e!n%b1u*7Vfw2jzrN_jFa9x}(}UdCmn-pgwdK8H z;{1>m81z5homJ53yt80%{R|#&@2gvqDs%iAZQ4{UKe7VnS!gMjU+3$J$MD1xD<T4V zU(Fwo<%Y5rw8@&?AsMQwSCZ^R@@;OCu-po^>GmDx!!?ybk&!M>FneIe%6C9}GcY4t zzh(LujAd(7^{&87vqxZNoA+D}%plhS)DOGC12f$C@d}Iu<3&-0_9!kdU{)g+x;?9r zF`JhutC7ZMqs_?GDl(mrrzFxF80%2N0Pz_UNB0Bmwwa^V07s%vo!|hiZDrfW(TYp* zxqTZRAK@=QPOzw1rXkp|aTuD5Ou80*ru`cLgWEUo6R^9pu4K;s_5_;0SR*|E)=my$ z{^C&nqQiqYf*(1fY9_hKw7t0;nr0VNRqanAHY}`6bM96&*IFbTv<8`j>N=t`?n`)~ zMg|$PO5lse3WZf^(5%E`+HWzaL`AL*N4JlbUyxX&tzyjl_7ZK`(z4T*l&;ejU07<= z?cKCB(1W(#+mp7QCyXcBIvHblE{Dn^4yrJNI!tZu+h~*Gh$E*s<^@jYD2}O}SW^uJ zinQ!<4mu87LKwRUgw`)YBfs~x>2zQLGN~rp)pQs20+%2kxou6)#v8b936-R6O%c34 zX(pMb&%n=dUlX+wX?;CDFqeDa_f^bw3i5nB&94V}o-XWTerdnUW(QsHJFtUwgSI@b zvpF5?cspN!_w6;7>1%(QNTHL82tl4R4(2Z&0iK~GCWY+vB}Hm!x{0{8UJSFJfT=13 z2_7~#BkjH)4F%b|g5{s#vy&L3rhK5SQ$(~Fs8-#wdA(nfeT<b7dOw@c>!R7*V`m?^ zLC!vi>B~Kv>1Ln)9_;hEp6qj)ke}E`=dI912JA&F!H#dMO7se{4iV<8qckUY#-M-h zj_Sj<QJ~~00i%-ES5sQceFct5pcoF33L?c8t8=%uNTle~3aevqvS^hsax!ttU3T1K zmpw<ZZ2e$fDkyh~T&y$^IzMaBr)r0Bv)v%36~%sCj?Wt94Yrj#vi$o`d9$EAB4Wz$ z;pMtOj}VYZbP+NB7qO|uElSJ|=nx~4{2uD2L}lmDWkp~Dh0EIi&W0zDRD#r|1P|^Z zNzmNJM1tQckszDLWg9t!PJ-N!&BA5{5*+G5g8$Kz1fQTcBoh1@q2~6?3KFbFR|n{7 z>%@=8lQM}qr_2Z07naH*Wo{%HA~X%$iY#@Q1-EJTw@{xNG{jP+fg}fwBqbat4U1Sb z>&9kL2X4AF+Js-UMSk0|nU|4{LD^a^FF^z`H3l`ZMEq9}R(WeUvbfdHn8a4z8r66P z+L!Tyi(VAo>+k{5%H%ML+8Kv)j-R++a|?_}-I2Esi}24R_&vp%Zx98*dNZ-P+r{Rb z6Yn};4eN~T8<Y!+Yd}GI!Ow8}_g1`{E+H_U`iG=m=o2F+#{_jsWD440QSZqP3kZ`9 z<`}BBznp_Ca&MfKxaq2dOJBp%3POA_xe;KRPDstJDK%3mf*6fpv!d>}zSPE+%gp>Y z@bIc&OvXi`n@a7{QrT^fhKKosb|h~ItZV&kkO#hU!@8gLYU^+~=QVDJq=z^@jvbLW z*%fEIPB4_tZIR|5a!VxlL;7w=P->6B`p$x%N2{}a&=&ACg~k{ikCjv0Q2Uwb_e8L1 z1~$O8;(3Zvv~eStg4vT}^c@zcn~v=Un!y0=%TzHBOZ68*05AwlE0ngz_@H+vi-SeM z8bL7(W~(kjT$+2*8DP$anJ>wma?i$7gV|dzxro2viT>~dOM?w&AGIHFn;~hwj3(=V zzeko1EllhsGX*q&_vkH%p$*zw9*0I#Y!u%zXm8;UOnMurcneeAY?n7i)`Ys&=#k?V zY+2mSZPCw~j#{o?o&|A;Ein=^44y`pDqKKoMfN7|7<VUrySWpm*K>?5In710%v$x8 za*P$ZG~UW~zBO#UN9Wl|IRg)J5AFO06hK!r*4?_uiMJ#u{^JQJ)v&jP3q4UO2#U#I zT;u*s-bOA(661g^MkyFTuoW((HnN`tJhGM<oSUq^<zkdGXo&(^xPJ!j<9%~^)P@Tg z1mQw!KH&muK57GRi+(ljObV?j1_(XL)}&G}O=yl3rP|vPPUfs|iP@`3nQ{rs9N#Gz zQpm4$ZluP?Mn~8MbO<e@j2Me}DaGO<+2q!osxbz3kX`n18W&s;3jCoJGOpo7{us)h zEOS-fAFW>|)S#}c2?E6unF!WE`BgXQz_-KVsAZ_uY8=J*KW*Tl$Wg=2pe%1gBX}r# zH%ymdRWO86J5=DXAHieG_1Fu;QzsHZFyRIuT_QZ%u|xZ@8=hr?2djc32G7ShZZ3Qz zfR;HxbU~R!WdJR+tzIzjiV)4Q3$AGlWdO;a8zW3eY8lS@wzQUQ!WsdLcS%fT%sn2D z!%D*(4soeKHZIIKii-iw@?&Y%Sp%($F_K@^0JgC;cnpX#PCF%osd~$3D$?R75-r{~ zEdFHkxJWMk%o}zO7qux&63w?FRC^Ot9v7Fv*kzU!+kCRrMiKw61-_z;ytmXw!Ttr? ze7e*IdKzLNI3QKBcwecFnM@0{`E03;*-Pf!n3O4w=X0etW-l48s@wccsZFw#{`Lv5 zmA)SZEnpA5vQ}fFf$BgF3|OfMD-%I`h=0c&hcXfPW2FfEv5XHw=!~JmK2nxJtQUa; z@6W)I_c-)k2i{}8Jp2viQ3`+GUNDOo4r(8?@VBuR^T>B)e<|Ie6cMY?6}gUu@OVKT zP4}T-ullZqq^mb{;yeGr+^e(2g%i?@p>n~BW{Ylh%w|#O#FYkwH6v5cf&hZ$U|LDu z5}02BDv;VLgmk4zwl`>WF<}B3@{mqe9Egg!2yJ##+!q8*=KF#Y+?OS|-K{e14xpl2 z#V8cJW$c!pSjdJbW+o%o38<d=qbGXKU~h?*{ZGg3LKbi!VgmB!&xY+vG(d{}{`Lfx zZ#rgoA-4#TJe9P3G+xg<imKP2T7Eqqo5{JDi-2%l0>RUd*<}Esw8i`S^th)V<8h>E zV)jZqYq@B!LURnVnuihSp-Fkfo%-k%M^la?$&(}N7|8UIv=DJ?cBRiKf9*k-rYh2a z(}eFxaNcKxdWwdXOqVc3-%n>@SOAJ8AW_$$fJ4ej0%*LEUh$^%3J=FVS+BsfdpMTX z&MZ31YboAayTmu#oZjG;@yQi$*yjKj*P)7j?JcF=EYUo`izR0$`X*LtumSn1PuXzu zqFC6@EldNKM2v456h3pmLL|7gmr(Y$1i~L4BPGrZ6m~LO!1h`*nWK6Bj?~goVbQ|? zJbD4ZOGU*yOTD$a5SvHE{3C;kcP9`W6(=f3diJaP4D$(Vx2H${`%%K$lLYM^x*(m- zZfOBh*&J`g4niPiSB3}O3z8<VWI=3xpg|7YbKih0oN!|mm|0YCb)E`@6n~PUExBVN z1oc;#wcQEw_uG84CY>^ixE4t#cM3v6dH;bQkqtNh@khyQ*JA$hlpw(m)BZ>;Z%{bW z<-q4CL@}3(euyeU>y`LKEL$Y81|JZ}Sly-LiTI%xbXkjlSs(lpn#@)<b~5MPsX%Pt z09~Lllq9rkl@Et4LyBB-#S%dHvY#9jS;6D|0v88bw1zY?){kJ=Q?U8^kBFBKhBZkS zJdrhkbT{}CZG1Fg*cDqei+#0M?t-#XRy5aGoCL*ev{<>`6y82pcti=vVKuNq_-w~O zun<Hb;X;0AmsN29v;@dY`r^(6pX-Zbp)a_pfR6*Ak;CuyC(G;C1f&}Aaza1^?sn{@ zTf;<T&9xvV4s-h0C6WYkS2!RLbAsod1i5F+S!r3wHHvpdkEf!jkJ)lEA%IB-VxGbo z0C0{$PwN;_L7W>d)<qx++Tta(sYN?8)uC1QBD|~@Vs7|2^yap_-Zbh+Iuui*g*7g% zio2bBx)|Ll3w+)+1%Hu->_V2S4AG2(kChj)^FeHQZ~3(~z_6~+`Ms(0f3khw+<B5z zV_xRYb_t#sK(CNG1@!~T;Svhd<ddDI^fL(rm$_K000@DsMKP=%9qr>K(fD7bZk@)_ zZ6%HWwLe*=anegQjSJ_2mMI#2fJ8=T+i?Xfe?GzT4J%`VN~fT~goH1oCvF;)Ho=NP z^}A~$?fS_7uEVved-ir?n*ZSR4A<<hUT5nbVO!Hosq8I-gboN=z)OI*fDSMcGl_sz z7JR`SjB8}%BwB|M^d+&f(Y0PGf!pLLOEbPTJ$I=oAPsh?EW|a|Kg*A`iIK+f_SN9z z5&j-SeSg6f<J!ItHCF-2#@lW}OkrBGxdZn~3{ol!^lp=wdcYsb4qZ0sGhGJV64LH{ z6y~Y<uw~g}j-Ok@A0}9TO%$r_hkHA~puZ~Ba_bHMm?4G~F_c5ZA9Cs8<C=%79I=S9 z_V#+&gWXd=8;!d5_J$I;V1@z%+?ikSU|DoJa%i}q!9p3gBWP`xO0(gb{1P-P43?~h zmC`szc-N**1m?3pB)%}45Q4-M+b;U8+$f{9U{Eio4dpM)3cDj(VdeEKdrI@?L!k)< zaM2pBIST)D>MZo^*V%k$Z-BHz8!ZfhF|F*NQ-b9)!v3RrlZzT{tEiudoY-0yZpLhH zl*x$r6F^RAVG_0{#N2JJlr2gF!NG`QAk^(N4v5=ogqs~^74V4m?ns}-gUo%i(Io+O zLwcV_`fQ0Blg5Fm;}GdXzj1t=@La#y{;CR;=A{JeVs5ib3d7xzUhn(1EGgS`eb&6d z0|MGQ8q~gtDG~@{1q_vvu_us47@y~kQE@x5mYu}qWIjv#khfdoI?N+Gm1*q!f#xA^ z)w46gE!#T^e67|3R1h0$T6UN?aDnl!S_mh1ZOexv3|k5Fe~^a$MccCWXj-$N3d1*p zF$7I9PTN&PmRsYLtyLLZNB5!2b6V7WK=Z;>yeGlq?t|H+lSX+CjiRS8TY*G)0tAR( z$7rGDp(A-1a2gTBL8Kf|mQzl`#e37c?>DN)2?HFwZBX6slnrO)PT#!=B1b;5%zJKV z@s)SuhqcR_;X!&WJ&D$B)da@-6Bv6;pMxwgApkirA76$wScb>w|0uL(rd0$oNEYTN zLWyzPHju}na0=DJb*mJqY}RD~&EPQ;hTWOCcO)nmv4B3}Pxi2YddMX*NPhoIk#OhI z`#l%FX!YEcp2%B0RqvA}@MT&8jS6iVZ6BBeO*)x93<A>!$@Y<fHzt`{w0&9^nPBK? z`|P3swek~;g?efMXQIF`TRQQzUo#yBJV42fm8HEI4Ierh!+hxV>>JbR9}r}<?StVE z%m$WFP8;yJ{Z6IrW41u6MeT3s<OZ`+xO=W(EHHf4K9mo49|Xtm%Fd;BHw8<M?*#Sf z5+KGB7q<xF8{Hycv?_!mjE86sEGLemJuput-RayN?E$*RQPfx}3>KziNQTfxb6~z; z4)8i}4&)ZTRVy!V4p7nrbAUw+v9pTkDNjA+Vp<wcvgWEz9Iq>Si!%XlLDp~&vG2Je zXi?GAOp(=ruA`MjeCHIh;~>57y7WF*^fBA5r06R}X6ovO)YX?vbJ^}Mvl$Rls#A9n zD_r%&=rQ*cWZdLD#EpK+_~Jq>GvBoJ8SZ&h)NCkyPx-tOu)r~24Xul?5A%=__Gz@w zz%#aQYHmT@uw2gx2t(l!>xQ?aLA!3i5-i4+(+zwX42h^4xEgN>aS=$T1t21?8(8Dt z)qG$lK1lK<-ino9{~&>~NSJ4*KUr1)3iI@!*TodTZR!2404xjy)}O|7(JbmF%xp*6 z)lWGPVi`0A!op<>-)-SD5!&tPMP63R?12fRe;KEf&I^?^Yc?;96t|lAMqI8ei1J<O zMQ(qXlv!m&hZfVKJGHeq-fCn$!CbRiBP3a_-8P-Zv3F85&b<gjk;VtRX?$>`%}of@ zRe3J<?+FX<OThWEH+Ow4+~)nIHbou%!SqC4M^}-=!=s~3Mt{$BbbRg7bo7^+Jxr0L zbNLN=_oy0!6mh?MP^KkCy0@T68Q5%3$~MUkK4|9bI2Jg=#SpAY#w?5iCrE*^vs<J< zZnpD`oIyOp!VO}$Rtr5C3rv`OLs?0AtJ^^_P)QU$z|EZq;aAM|&c`85@iv@}0eD%% zW!pRV@KrR4{VT`7E$<A>P#!!4@GeW>ebvBYr_hC!h=Jar(S}?FBDoB!8Dh87-YiAg zFrneEjzC*>;42m|D#_oCoqNNay8OkoJS{sN2tTVa*T^2k-!U8Q<NV{7H?Y9I0}D-M z)L))D+HWaexqw-_c8o#$k31i%$~q1tX;yL|MvT0NmAo%N{eZm;=|}bU-jLXNW^EM{ zDFHr`C7YK0L|iH-g+F?}B%V+rCFzf{4ZEFJg=8(yjN+a*_jUHeaIr^_wdF|>va>=| zfJRmjd3&pJ_Mix-@JLFen`4W)8$JoolCS1IiRKpbX0v<0p3hI5aH$WSLw!0G7UrM@ zq7H)I@$X6EZs|l+d3qvgF4&^vs1S;<l?e_~MlgTi=%NKG6VkX3m@d;J8zdCH@Q5*_ zJ{m`YU!$=vkj55{XM)O><wRa@GW%SC%*2Zm9^k_6kF3F{4)=JP_yRLeQZowrGzl9! zv7@h*<r0_@jvCQt1~ZhhQe8-~qRLj^vume7`greNvn4KoZ7%h0s}pXjhFWVRa%tPR zbfS0e%}@Bg{Df;Fe8MNH=i31m6|p0d@hMCLY;5ugWRKA#Fyb<UrALpTXNup423mG7 z#8#k+>?_1LF?__MHQJg@(zZDrWR@$@e$$~Krn4GD+3!mHnDneOS(|!L=;yB{Rv~^= zz=A)~H*aJuMS=QoE&p3KpPW2MH(Pt4DCIzCdj>Mo-0%kg`K8lA{lgXUhdi|Z^S*<l zch$+#l@-3Uv%pj5P^8C>TN=k7ccAmoC2TQJxt<l+g#OgiPQyL}B-2e!#=YqI-3Gq- z{JisU_!9nf{t`E#<L@OedFe}SEBY&bg6A*2iYG7e*ri|i#b3gCORs*-ui(HXJ8|i^ zUK^!O<pRfj1<CW<cswm|aJj-vsokDeHtXlx>_jd#yf#?kp}NGI>L91rQgYD=Rl#B~ zHMT`+S$H=;;g#;JYv(8FEX40Obs`XM8vtfnN3HQeh5?zx|63$m+!`AnqTE9c^m7=X zW_05>@zZcN%u8+|Sf@+TJ1>7jmnzu8%U_4D*{Qd*-+|Y^hU>p);hi<wr@$f~H*y@m zI-<^g#ojt0PX=bBoj!yrB|Liw+XsVoq>;$NB{}6;v>C5Vqx=_>&FCBq)(Q@*%Vr2B z3{bKeOOI{l*1ZNm%AVaJtX#<ZNRg-=^=b?b!dkb-(5wz4<Y?^`(a&q~b2D3(Zv1k1 z-sW_Vr&%CZ5FuY}h*n}D_HPYj&q2O8G4zY+6)jk+I95TK|L@`Ze=+pOnW5lwSSGSJ zAm0S|($-DO+5nKP2JX|cwdY6<6S>7l0EJyF8F%Hw5SKH^s%pQ$mrymGhYwIxC!u1D z<DlU%TSz+S2>X_F!2ALw9dty(to*~Us6b_ZWA?opB|AOkgs4Co&M==Lnz-cA8m7*% zB@K+Rc`?dk+R2TBPPRi(w8PlXqm8A*8VNeA9rbe<il`XdPWdUi;?d&6;q1p{xR0cF zQW6{hysCgA=DaVv2+gf16vJI>gdYqf>^(e0Rzr*cENCyo=$V&OM3TiB3rGt59#U`) zdD3YYLJS#9B2X}5%(mC|Yxe?j=jr<BOcTbg2F)FMBgg;K0+m1oQx=SqEh|_tw<Jz^ zpK;1hVZH*VaGts?3$s5+!qMCW8Ao$dIYXpApeT|a=p#>hnxYmUv}zknV<BaMKxc_e zJiVQtkZX+KI+gQ8Tv6mqx;KWY5%N3r(W~-lFb5UDF=Tf{k^UWhj}ni>Dej9Jk>M*M zKj_Gxb!r3!GxTAk3t*gdwJ|{?&S3)h(QMB<+`mjr*;?KYXj}afAE#lgKZ)5u`TUDf zz|8h@y^C|ST6b|482Oinf@$~lz()9FplIwhBbREk=>(p>&|-HAF1}(U+nsxDH0UWD zfqVEK7Fz;V@jc1^_oVsu6tP!mzFiVF)Hw=(z*)xq7EJaRWZUgUvbKCWkkZZZ^=W)u zIzoLAK#cKW&#q+F+d01TNrT>GEQ%%uim^F_wV$|?Y!F{G?*5I$8W6<%Ido1f!&E-h z6#+a=+raXYkpK@s1cWv~%S@FZ@_}Q<x(0qnY2Yu(4IBXuOdjiE`H@IJrdJXLI9%iT zaS)Ko#EO?8FkKKRb1qTl1Q~=Bj6h?Y4o*!OLa|pib3@4J2#Wfy1n;Ltm4WbL!8=hI zTZ{}V-6HXyV?Yo@i2=1M=S7?!0w|6HaO(~1F0l{(Hs<WkHS1_B#!OM{uQy%-Pl*@6 zLrMIThqC>FXfe~+s4V)?mdTX>1*KfbAg1)*N&-4hcX?PI2n7l&G6>edKyFlC=!Jx$ z{a!C{4$-d8=Z$3h!rM3<fh{->Mjgf?HYbTiKASM_Eb_b@rGP-xd*(c%Jpo^4u3?+V z1PNjJpGJd9;&2No?mge{>FAzwdC!?bsS$yvu>H%>=5)neM%$dGLkhUnR73^3E@fgz z%3|ywP#Mgf7?()n`@1wg&t-fLI_|Fa=TwGCjG{eHStV-Hxlr8CDgf6RwhttR=xID0 z$cgGmMF*UG*5#-Nvp0rxU1WCxM|rZs4=vIH%pJIAw`NCE!{HN}u5OdSvmh$*jm>8w z(-OY#=X`SG?9%Y9F#uE5`2J!E-zfa@5b^yb0?3WJ0&uP2dwvP{p0C39yyJWAVc{F4 z1I?Z=EOVc3pyY9B)Rj^MZzdoAFc@?0^C34Pd{y=XQbcI#%NRzbW7Pv>Pjis7V0u}# zUADii!sOMPWN74X%!2cGqWQ0+Irxl8Q*QaGBnn2cbJGLLa)ER+2g2Gi!ugsUYq(BW z&0EenE;RRsDIs*Npt7M!A&wyZASNE*OkzKgG@OcroSswdI!m*ciZg+h26-?I(gl}o zAPTyj172g^$6gva?q#Cv7gsqcv%XDWp6bAC;doJACaM1j^mq9jcJm16O?>W@_#D(S z2HjIH7lFR?(&&&n(5C>yno+uDBBY)`GsYHRm%Ke0(_`MuRfLNBal<UPe9h}h{-84u zeEM-XVo1lSQIn`t#&RE=O673z+#g0#QFz#LcWgY1+aKG~IDLJVy)I>(ZNczFL$<!3 zpzj=b&@-NIw+}0_DKM8Vdd^1CO1dUN>3P}ZbUVFdb}pnIGq1?CPj=rG;jnZl+3eJu z9g2~no!_92%F9gqo(TEc1ck@9yGo&gCZbjf@|zG0<@{SY8P{{FZK)p9lrw6S8pb9? zH?1SpSuko~#W2}d6hJ=a+B7eWID@lRbnxlT$~&{->%v-EBp}vokzhEj4*dPM^XPl} zk)rRW68a1T7fl89VMh=XLouS=VNT}qnWB4n;applA(az)lA8~)H#)4E9)~MPd%+YI z;{}shIf$QChp`1mzI9{_whl`=)vcp00U0}OC+fT<q4zS&nOD-GKWCBv*etH$za=&E z0yMU3JAhdAs<)Ne#H}FF2rRPjJ4<b}LgvW}242xCytULu%VUvA$<4*|vfD~+l!_LO z&#Lj<UTTweZQnbvlqH_W)M_=XBw7MGvd@)&4u14ZvB`3x*nA=AN|n&wU3Wh#P3y)^ zeA16mUN({wD8}qu#4!EBHAF)!cw=q0y^y`Xs@qvwOI|jy!h~3I+gdJ`t68KrmT_*^ z+H<vh{&!$X{+M;%9gm+-{<rbKu8b*H+4e0VpLYi@L&NR7*qJh1cJewjoaM!xY6z_z zS%edw^O53xO73u9*6xSwSjL3L%Mu#hyRe0;iRibIQS#Okqy{mtl7eK)o}#;k*GvPV zuotVWVNE8P?T4noj|)r!R^*Dy6IdH<by;~Wb2s5g8L(1<|BCdWA3|emtH6kIog^v2 z+e~BNG)_OGIhi99>78Ri8(Qn(P*-O=0&Vz6SB+kok5;Wow1G6Bp+qL5>|fTIy$TPu ztg|4Kc2^|y*`n5gdXAeK)BK0!lqQ)ca!V-{<o*JyQ0ukB$|!-cAVm~$Qw7{@=)@lW z&4P)1nPy1o7wkfTynMLAs@X&y(28TAPA)VCTfSm#QHeiu=VPSb+XE#Gpa0YU4|=(} zA!!?uh|=*os$Rj;&#L|WB>Y+N3Y31v!W);}x(j<f1Ai?1jH=J9_?$2JeBR0zz9^M@ z<{BIRe$xM5`AV+0{WMnG@V7>PY31$J_V=3Ca0w27ScUub-}sGnzxi9QeeG*s_qx~p z_V4`e`rrHg*I#teMHj!}4R5%lQ|G@+>l^fMV||nUZLV+8zpeEd{JRYQF2}zs^lw|; z{#{wWO8>5|Z?9jYf7jNp)4%KMH|XDu^_%o>NBxcZ_on*I_;*YF&G`40`djgDw*EH! zdwcyI`1j6wWWn~KW?5q$D6rul@Od0l6+(m1#0McEcV(ZaO0WfEYyiUP!ck81?BRGZ zn=X=^+t7)xadr1DzQ*~K0_FhTk)GdJdS1iGJwK1<v-#UkC<uj3si6zhchrlDRT70= zxrE${)f7om7VLg|ePpCtn;wvKH=#I>@6xAxWu-SIl<fig?hhc3C7FF)6}u23v%o|F z@U02(2Q6kWOAIOS09eOyT#{DynMn3lz{sCWOHfl}_kZ?N@3`qxfA>e<ti`9^f~Oc+ zSH<vKfCVf)pc$j=KLOnBt%hS;367h);aIh6T)8EzDfcG6;=mx@!R5Rid@#YK0p=BH zJFW{~onCUyV-;>z+aSB$ccx;ysp}0l<UvuCR#6R>498D7P_7dwAgfv089j!2eS+e< zhH^DyMF_`~wNG&0m|AQ+Q*d9y7h!#;UkMpZ%6PDL{w_1$a1)2Z^j`#zzjh&xu*y)z zHvGW~P^;Pn$6GK83+_bS49@6<Q8wu|886Yv1L9HszFlYdio6`ZJNyoq(C_dRNydSH z!V_qC(xm#1E^#=@a&J(52YJl3z1}+!w<}Lbt0T7_zr30KcL91B4@l_aNPsa6Pk94_ z_#9GwnyU>rvvsbq54Q$U)~g>&F#`$)aqYFy8deODOPceTC<YD=p+7EZGL}WTpezG$ z-7K%+y(rrN#@J3?<ISC1yedj3rnuz|HuHMYJl>q<af{94RYqCCZVXWuPa}ejM|lB} zL;GMZ@6#f%<vXvIg9@(%72+Ylbdci!{3uHA+qATz<+hZuMF2g4n?QVX0?{Kl+YCgD zuic7R%-=BJaE0E;>hU%cbH3t#P$y3NcB{|w$;<pn%t!4)H2*Yj&hTa*axwDK_g(4T zp0<I<uspt^iLe#}ZmRIjbnUI`GZ;;gzi&$&{HK{_TZ|S6o%J-94RdcHbHX=yC+L4P z361Py*XKey8J5ezGwt|_UFj7b$=g`O5BF4TP~SR`o8>VmGqASDeQTG9apxETXc2XV zN=kt<m?d@dRl(Is9!Y}a0|}B#ZJ!*w4o0W8XUdVoi<E!tz_`xglH<iB8b(BH3K8Rh zX3`0tpg5H!LV$M#Si=@I5l$V{u?VjxtpQMv$nPP^Nm=Fa^k)gWZ`)L`6*EHk|FsuG zvFt%g2VNNT3CJ7*i&=@EB!&FGC>n1O$D#XuB7a|+cPgJlZ&~N^qI+{kdbw-k-^0t} zi@b41qn)!exV5&kp6|@|d@H)2oQ1iqaceTBfzZ!|NdkY`n6f`*8cG+Td?dke(Dvc~ zu3(sS7b|2=I_m@D(J_SNlU;BZ1JJ(%m|`@xrp%j<@&0c^?_k30{3oVlaSD{M0ro!N zL)>?SQsB-6yh{PTA;fXXj2t&IIz%W3SOwGL?E64W2Gehn?iIMklzxI!%0wz70i0}s z*#`}1zVGCZOsf)A8HIFshK43+ud+L|6fdl(CM>e9*i}cnnd~`zAH&joQ!6r;H_$1P zu?#UZ^ZaozWBfkK0hkGiHCCQsU{nI(%47wu-gD7DuFQZQT)-zj{L6$Z-_!N0cxkXH z__Dy02Iql3Qo3QR{aH@sYeuqveA5ajx_%b%l^9=x4``CzXr0Y<#*%n)Mze(>3~5iG zMW;>0U~+u;R|z^VcJ^vPXR4)?RsXs4xQk#sZqZ7_geXdM8jQX|?_zz&%3pqg<6w4} zrf@&7+7*pA>0m(T6l9Fv0Gb#BNtpe70>+~(zbx3NOf3qt&OVwrV=be}{e6mQjuxX9 zI!@r10$J=pAH?%Mkq6pP-SQr=y1mhDkMGkU%pPZzK-uH_xKN8}K%Cri0Qg=TA#@{6 z4a_t#$a#Yul1kxNM~HTm0{S}K;O7G__hNxuVBtONxd@hyr{)U)MFeXv-mJIcraizf zhb!mT0Na#yh82ifWFf<*gPk~U!Mkks-sL&c45Uadv1bc1aXwAx+xuk4u0eDV>)q{t zpa}RGy$}4~pnBMbmF}hqh%ec%q%L4U3IXq8LTCc-p+k3n2|A>lIo{e25QJCZI-C2{ zNrhqkQ)=kyh7T6i%{-Im1TkWkrAa?P26`oYz^)R3`wXSf#aM?46RMjzx;6^*X@Y2x zl>Fc9kC|6yI`(z<J7)}O{R$=sr9h^L$mMk)ygfeAF{&01FF_~boDDbo6F>iR!jr2+ zJE!R|RN_Gn>lGMQK_&hR@4wttqK?{l8He6w5F09R{?8E^#$QjsyGrC6iYjrtt3;Z? zK_${eZVRSWd6oEGQq)U1Lw3{)EuW3N_Y%A3x=loGy3H5VrQSACz5RIZNlIf)6S#F0 z1{)*~Pm9B?d5|6GXaY%RxTWMp-hy+IkLkig0=L;QCL4{U-~-{<6g2>^;Vbl^r6bvK zlp6@`j}Zp;kHi3S=PcgIzB~K`nHiVjg|v48BIl$i!)8V11sR5zFrlAy!y=><cS6P@ z$AI^>azh-0c!k(7=;vMB!F-i;XEs3lPYCi0HF1oTK-^n0>5SdiWOP`dyp_|Tn=g$~ zBv*>;fj%HQaNAnnEq~K^)?BST)BN|lf@48*epx|?Y|XvIs<E#Wn87t9t+_u4O$_4* zgNh5pz^jFRh!NN=OmhD=hs4w}{KRFH@X4@^vt~4)gy}MoT}mQDx>@MmozZAWbyJ+C z8x%w;W6GmwCy=3`g9gJu(Vz<Wq6K4eDT$106IMQH<sF`%!wUBwaj4(oP@iYaa475= zQmVvr?PiV^`r9}0={CBFX=4Ho@s0oq6j;1Uu-uqn@!Ih0BpQ1CY!U-F2cRxV>WnL3 zkr!$+Mk>Pv3<#SvH#+>W&ZW`c;FDx6Jeke^;qjsvL!|XtAfX)zz;BvIc&-4%aQqe7 zd~#+e*Yg8j+|M}_9tTa5{w=Kypg@4<t`o-Im;m~Q`9L^c0?%{vARtQH$K0Z$^1^g} zgA??eF0v~bs<))BohOmsCrhRD=v#U{x{?BwZKji;1piFubgOjf9}u3H_t)Xf0uwvM zG!kr6lsII)qF~!8j1>giPEd)&2XqC{5e4*=Zpx#H-^MP+8DI>3q{qg>cih?wQv&H^ zyt5a1e)xj$8@9g#iSH-S&+0~^9q)|&HTeC#{2fPYWb^;(CE5DI*C7bX_wi?@@NuZh z|Ce!Gpt#)$wZ604vi?9@E-OMH*|gIk$z;Gt$B;EB0La()rn3{E;uGN|7m$z=k|d{M z#c&UxCx=d~2EjpABg^gO1VIBSgojC?y$Jkpq9v@exy^ZpDiAfegwHMJQ0+-Wc87{N zfk8Hxi0@C+<4&h|oS;xw2&8I<>Z8QUnZybwV9yabRGS}Ln65h#Fz!%I3ihQqRC{_j zR39OrNbLilm;-KRAS3LS%0(L&JRC%kId)6f7nozWJ5&b)bMU?Bu%@{wI#iKULHa5( z+T234DnQ|;iY>8xj8LkgI6K=3L9-BK^P-6YWIF*Fv(X5MJ%BI0d@7Kq$g~tYL#pBI zpL>dEBYahewqkLMSi`_kt`mz}1Y9bkYe9?=bQ7iBHp^XUs-5mwwY;hd?Z^Gea(R*! zm{hFDRc9WRR^qyW1s^UQ*n3LAPV@lw&wB#Pgvv@_1Crs`hp&$SzW<^$gs1cv!l!x; z;mP0MA^c@&2q*U#!e@F8;iO(eAQeBHB=c7#V8?p^``0~zUA`EwrZ;jt7;U()^t^N$ z|9lBx6x*z1$iM9gFq3I3Y238LdVB!Qh|v_}{(b4)@36Sb6VVgSfs+oks1Ah)Vy-fH zzDRGH*|ssfio{mfqI{;fX!FI?w+ou%ZKZ_{DXf25B~%0CxkhGIN<WU<x{SUB>X&~{ zq~VuKKqBL}68T^0iF{_~_CS8ZPO(bVS4%G*!;6IuS}Tz6+(uG4Y5$y>`lLNxlg5=u z)S8BKk4yHz8*vWJrh@umoz1qk>{woGnfc7ua^-SZ^7>yAXg=pC!&QmSgFVqnsCuH4 z`BAhSU{)_GHV#WI{%Z;H$Mk^wn>`_a^g@us6?#Mf|MwE$y{gI|>It}&8~YyU^ZzUX zi_#C3^zogZ!155#p7c>B<}OR=u!#A;OTeNyR3)&T4HgF~TS}~m)&p2KUd?ScD3gP{ z(R)NeE>D+^#iV5SB_BPt*-~mV1WD~eR??P5nPA~E{lQCB!OhxAdD}nI{sKh<{Z6_{ z@g-(qr<ZIiy#%SAkTdCttJ4!*rOPVFOBsxB9YzM@LpiSsnR=(!P@KDtQW?yQ?qk9p zkK-I>l}#_qt@AkT@Ttc`($+m=da9g%X1Oh?5*oLFwD(xX^hsWXo$^Qi0{&07X4yn) zHGF4?H6(`cnwx#KO?wJIpIIA2(g|<3p#A!#Q<+u7N{h%cv6?ubg<1Ga>{kxH+s_HZ zTRi^;FuHTi5z*&h8x!;_&&%4&5R>k6L#;%g8{q44bsc>rSMp4xVufana58o*7nuzv zx|hF{6>Bchglu~x%F-e7H&6=eV%Ed1!Fh*=B<FpK2ttjW<#=pJ`>=S}Cr;_epu{*J zop8u|EW*e#9eHZIA>qO`4#eLenh9KsDCO3r7Vz-(Y{5RdDfRB_Qllg7lK~2Z(10VG zJI9vm7Exw<G}2tXDfRFzOLt&}Ii@?XIRjlH0(QWfavE?cR`BN3i4PKTg^y0tcEaaM zBNSuSYKbzN`uMs9OtqN;lwIY<kya3lE1=^YsSme2C}Hf;95%RHUv+_Ce8hlW_q6>% z>d8lhgmewwN5tuCE^oG3J-~ut6?CIxVd;CLU^uZ^jL+XzdJDSh$KHTv*H$4cFvJA` zD_M&57Zi)cOtRQ#W28Nfk2;GF;nauw1|gu1q%bf9(+M^FVaG;ae?Np$6iLVEI6PW9 zz2(rsLLMv&ss=ek3POHLH%>QnViU(HoA5y($Jv4Nu~c@zvxWKJl-}U%@K`QfAzK48 zH3*c!W~!4O%1yVVrcOG1mf{g|Nra5cNH5M6Bj}P$j~|!|&nYf?8JDGg6aSm+#G1MW zj>Rd&Em;KA>P*4aNC9qcOmj_K%?kY_6I-5FRF)4z0!a{ZEkn|Y+hMq$sb8lX)y4-3 zQ*(6*N=N|;kZBbyp$K7pAyt)Rv<wknYGLIT@-f?LV2oXqFxRHOBV!X|7Tl+Vp|*;v z5gtlE4zGhrp_yat9m;6FnK4n0Z8F>bZyx?_hOY?!+K<sX2%Z8%q(S&_wZ<%nBn59s zFy8Sft?%=Fij88MtD<rs0&qBT8VD^_2)r2EmdnaB5+|S*Ck)nU(tfKP0rjbRlPR7^ zRVF&1YA}P=F%IVyt^;@PXW8$CYwI<ptNwwzPp#n(RtL-uSRH0}*nuEC3EU38#E~E< z@BNq@uTPY1j&D}+`p&RRi>kUnP#Ze2Nf)on1ZZ*6Eh(A@e)CubU=%;0AY)XpI&#Zx zhACr0HHJ!Y5{R=LW)`y?;~bdf(y<{k2`DcTP96`N!lmm#=*-N9c6X4ZyNs$<##?q^ z0bYx}@%a?x=EY1~#?vU#bS_p5RU$^@IxVr&G9N2B&{^j`%R@<|cy$8Ob24Bs07$cv zSVCcTM(b=jv&blCIu8mgmUEG8Ol~6g(uf=7pvXIG2_d9JcWT8t2~+NTbBPDqG_wi6 zgndugS`|w4;OiJ4Ku;}ya1|Hp0W0^k@kN>;?RJ|pnE503v=Ni`zHIi}<NhFh25Vdp z>(?ce`0^lqtRO)ME><AXYqsZuaRqWN4+14>qzrBK#U>2^*WOuaT*TFB$tCq{&%@@( z_taBRS9kmH67$UoDNf9s-ayQT6sI>0!~J_urz7iN0a<~I%A+zV+5=gf=NVA9k4}<} z_twN)5S2!EtMOPicSSMjbvBK}DSkLd@u6`Cq$|2%=9zz8&H7HWUq^A=vm5j)Na?hU zVD)v=Hp@w2zOnufBR`O}-2_8na!JWNUIu_7FSo>$?<#@F{fT*|?39>N(3}EjqzH(T z_1!>q0#J%(+TeJPqa#dYv;Z4n$G`)l;cE{@LpyPuc8=P`QdsQWX@JgRR8)@?i<#Z} z=>{}gRb^smuE81|X4s{GqDMXALj|408EM<89mG~p#oVJ5RB=H`ZS2H8TuCvD6-{B$ zjEU}WF-e4ifRlvY?9Iy26ha$_!Z^^395ZmRSQ&*P6A6M@S8?J8yTRj8X7O>q=zT!Q zn-{C}-0;HVz-=f!-W$E&DWI3qCGIu_S_-(_(1{Hkm!?7|fy)+H6P(GJuqaVLYZp>u zd*1<}?b~<}Cu6)}yB}EgS9{+%P5fol$sM|5k^K)d2|(ZfU@Qzn0Vdw9fX_;fYYKbe zzG9bafTYC<KjJ+RS0v~zwG0^JKa=3)JrN?0Xwr(BAYiD{DnK-L>nuhdV7o`v@Mpxq z)8l9a_u#(HU3?!RJo#$iVKZ_SdBg@z9xNYjbC@F!+p=Ft9<jZXhdg`lU=h@Rd_z8e zZOHHxH^yx3#I7CnMi@ENqXvznImu75q&Ig~pdVr!o?$*zW{#36+$2}FB|!dqOioBy z27_AJmoz$vv{If_fM67GTR#MD|AK{zK?5pezXSoXsXze|5c4(P1`9i~Bq3spoP;0| ztmT+;jQq{_Kh>{j(LbgzUz<9ypS>2bA}K}xQP!Z%9nlmqMC-DM@y)5Lf3U91@^CDx ztGopFZe>GF*i0x{Vyz}(tZ0fb;vh1mjl3GL$YYS_3<uiA9c$glyC5c7AwWCbT{aWO zH58FdAei2H6UgsQ(~Lp4tIQo(O-}@_xwdBTWqdtSr1e!sdni}TFa{jh9Qey|7DFnF zV3{aUJhC5*#^9IOBa&BkM_pl>bwP{AS9{deAmNFPNXIV+_l#DrJL(AC-o|wJ2U<SS zq!~S5$TNhu6mVB`i^pG%acR^eTvex7%@jx+3&dD032txH&Qw0{*b%n8k!H<e7EKaS z+}<Fo3<SjM9pM^8l+Db9mXo-$Uy@MR(1}32dssrjN<MkuQdSDutZ|D$g2t%6Q|CRZ zhTKieTh@8+2?dtgm|o%*xK(t*z;bPO1Pi=FAoJAH%)lxzP*+Fq_d@qO8F)g8r*6a7 zPxaD1tYnR&(;<MI&Hv>|1@LA{;Mw6#-QcZ9+f>1cbJA%!+BqeDkuZB%>eaJi<B?1n zw9rR08u7^eq2>#(qe$6FXE45Gch{A?#@Up#O2<)CZ$`fz`0fW<+F4Dy$YE6)hie^* zghaHM?f|yer@?We0a*cUSEd2J%aSK_C?#3~67$13FdWOk^^FT*WYB+NL`E@9Ff58T zj{D5=r{nPxf(SO*tCh{q*q7=nVfI<+8WNXI76Ok=)p2G8>pnEFqM?t+)A6t;<_|!U zcrao+r+#kR$%QdopT^*nd33j&;z*nh5N{FA7%sF(CAy!fcb9V!*1CNyg1jBmBH1{D zt%)I7PR};Qlaro5w}!D#OQoZ$HsRk9%UGG7Se1KXIz6$*zpmw=tq;Byhm(miR%aJs z2G^&Dz`*G#U<*^0EA~}&)Dlo=^23P4z9)*`k&x+&wz9Xn+5i_4-8s|zO{HdLg6Cg_ zW<U+?&uCZOlA3uTE}2fnw-uYcrPM4Hp*lnpwy%c)193l6!=L$${WRiw*sj|OVx49# zI3ZdtYf6?&Y~hv*TVTYHj-w%LNcAYZ*!>|&X8T%Gs56h6&7ES0sKUgBS_>=|5DR*d z@_-a$m!LIW!bstz5ox~nt=@atKQ+U4B1-j;{A>0k)DH!ptcEp`a;4x(G=Ryu(_mnL zI)xADyH#PhV~WBf!d|cliuMa&_qZ-s330W`v&!*q^fyL=?@(&uRT}UNF9L29Vl*|2 zsViF%2^!hT>?rE%a!2-x%8tw&*~SyQdr@96IF|kiT74!cHF)7VY||0}a6~uG=sp&I zcIM_|X{O+iZdLO^Js%v@&15<^T5u>(sZ7-N0(C1{aBnbL5`S*!#3#MP3{A3}zK3Ma z=H643$Qx5Lm&hkBAdw~FSG!=QG4P~fwHQ&i3FLi{hC>8FmZHf%{cK<T=SU9_`+RsF zt@8Zgn>*4#w<L)F+pPTj*_DBRrvRMlbmH|m$8!rK$)!Tdq<@`C$%o*42J>sOr|~<9 zAqlOk1uSIiB(?2+CTc*Xvao`cz~r#We?A!6FL!S_Ee$REA$?E7x*`qB{UD~<9flvI z=w5c)=HP5Wpk$+kmuyQf`Ia5lX{HwpSw>B06>tc?grfljoUEcoPeb5<ibL3*djE{g z440t_n{$B}iH@9VxhA#S)Ra+di?w_|0?>GIn4e}HGAi5i?R!vU28-~7muque-@*Q7 z89PWW!&fde;@y-l6ZnAmT7%_TK7SIPr-{QIK6x?wwgiN0g=27_N=tHli1k8FM?+aV z(RNFd_s-Nf+BG>-2D*cgtRx5CVKw}u(v!7WY0|zc_39?Aop>4iSs+H0__|D5RxXTU z^$;%7OC&X;fh(~I%uYB_N(AHDG`O!S*b(i%P{NC%MSCi+qRftnm1xnf^p2(IQpv!C zwRflSxkamZBG%}@Tt2d3(Q@HVGYZ)b6_s_~cVdCI|1kCDb1=AoBs1IcY(THIURQvD z&V0fqyN%5$zR_gcbaL4t5@c#Z?NRHKSoNTYHtWb|01dKhzQuOB9CZHy0z|^@P+p;R zQthnv-X2R@;8@CbX+w4vwIO?o^Ut1Kz*hET+VHQKak6kAsWDyr2c4&ElN$b@`TXq5 zoJ$V&>tV26Ur=dE!99=+wsi&8+|Y?FoHf}3rV~&w1cBep$eSvj2KxzJKCdutvd&kE z3s*C#p%c(!79}8>iCSGImRENB#U|#QaE&nRmd{9Jl=XQ=Spk2mK-t?8V1I3Ll^L|r z+Vepn;V<M~xJd}pkERzK6|T=yKaB!h2)`T?)4GdF2B(3@<zhCUId<5-wi><QSdM1| zjBA58CF*ofEh+9GA5eLmS$l>VgkD&DwV(8|&W`vc&rmMY8>JvAPUp30@F~v7*|a4c z*^GEgk}B7GgR;GBfklWTa1NFrjtvKE!EJ)RXehml^;3xv=(ld|ebtRYu~JqaTbQDo z5|q9i!H$Gj6;|gWWzbgeo3g6i27ST-g<LeHfiiVdHgVlnK2TvR8&m%$m*YaBi7_u& z77KCwt21Z62Y2o$a3=w3PepHPy1;H5I<bMzkBwj&_?xI;&fZTWjZ<uD6Kghn<dH6A z5=@8~k&_thqJk|BR+$Po^!&OyL$ng3lhI-Fb2|eF2l6Ua`qi;NRd!UA!uR=Ofcv9* zIJQMWy3jRdY=zHQo$iIQek`@G82Ws|@ic?ok*LV|xur0zJYXI<0C8R`a(-eHpIA2W zynrgPTk&|8)J4Ei&5^uE!<*n*%rM-hC;;g*yBUdXWS4O~7xw?GM4Fox9$UCctGy^G zuIv;c;N}|iIH~_npsW%gh`JFR9#mrta%@js+-8#2BBv%ZD9xg*1j(@ZdfswnELU4u zO+%&J&}&l9j!pE;x((~FKETiQ$V=vDr;e0uewkiAtk0Fpm+5mAMYW@UnqHuPU%mXO z_<hatqbo-!-+;P6#s)(T5bXL6&^?J*Ji*d~x({aH5pDWDh3{4-!UE8qZ)fR~tr34p z<%5s%3!Qv=v@VilzAoY5QY$;iL~>&`8Z$yKnJrm1ei1Os$%FN$kxS#|G?_FPv%Qpu z&L<g!<e+EyiMh(<wFsFUN2hSU-mH|b8F^I1a$vXD2^)_wGfg%dHU(p{`2ysP>Frz+ zr|-o5YoK0UD%#7oJAz+Jy2JJQQ2Zj{XGg-1Q(r!z&CugQ3e;yvz%W-Akq}%W4O)Z8 zQ@O!Q5fknu4IYEm;4x^E>>M<(xu%tB->B#+hs${KfpByz?GL<JG?ch4Pm5{nx1_Oq zSsTlq1+50pl>Ngh3Fpy*Ucy)HqwS546VcGh{{w8|!#QUS2Sx}HRo<2_5}qdlrWJ_@ zO5^to2ry?5Rdin{!dBT_?aSNc`)QX4uA5IrdUYO_2!0OKOJL{f7aTvXZ+q(s)1QI? z*-B&{y?Am@ATkK7E_TOnd+oP`@^>bb-)_RrY!;Vhnsm-}K-V-9AQdKb^ugd%r8+}A zP>WEy*x)Gu&ogKx4dJ=PP7oC&%M&$`HiR0q7oi9>CaJ1XQ`I_pKWyz6Jz7V!I3JeK zvNNH@1KlZNefQYI8aHfAe?R}hxVVld{?f9b{|38)tExl8$R=j-aRx3Q{g}rb$CxG7 zR$*W~k)_8^Jh9bUu5*8%tn%X%_*=0;$Nrvv`Wa7q8jt)v>#VcSe)=<}rc{Fb*<OJh z$Ns(mNB+K0707YauTJ_s|NQe`_Oc5uxZve>-meb)g;MBYo6Z)D7*>YE2@cVS*=|KN z8N>Qn?GwYQHc4+412~i)KjWr8*T{d08_D=<uq~Y;LI8w3gkRSdwAf{x2!)&aKP4?@ zlFITCDG<)UD^N&HZ!jPvC7B7&^C{8uj=Co~vVb#cq-Bt_+7a>-=8vqvZ5|jI2Jv!s zdre(;b$g|LlZ1pn)1p5^*^l~TEo4}Q%L{a=bA$Qo%XGO+z?^{V^K&nLDI1=ypSY{$ zr3U9(mIjeHfTGin45GcnevE?{$2}AR%P#Rjyf_WwMd+5GuF?o}Sk#NG^-9PT3i#Yh zUzmgEJatE)F5zexf_nkMmzd#Ro#(TgUD?jW_Pes(`HMa20)$ew*FzCDYLk3Dwu(NZ zykei!fRI;}eFlg$J1*7^3n<YHf)to|o!LlwZi|$7FVLrxYoJ~y*J5z>{Uvgp7Rqvp zmEG%{#HvB#h0%1;z;VO$W3Ryz#sHMVXh50f$FCvk1sM2nh=0%)#U;%yse%c+rUoXe zqm{lV4e9fviWl3Nif$WWe^5(x(f8IcFw{#*=<L*m&yVqkAB_kN?_U~1Kbqd|{Qs;x zLP4gVVD~6#WP@=Y-$uTja$wez<~_2#O8aAlH0%}mCfh!}nyC5A;mw6{oot4$vtyMv z0w0>@CZaeSxKedl*0#m<N|t)UP6K}L)Wz@n*!V0PQDk@>0{SE3)~4<7Ka(u)-x=p* zdp}h3YwTeXJ;;vffP;X6@qQCpf5RW2h9CP)YU%n6T}y1~`gC2J+}h6ur{!OLDjS>R z(s`1n;%U8~vWw;3`ZW-p3A)05iv!VtpA+cqk^uZuasxp%6ttJ*QZdUXqc!$;<;9lX zh|};Oz<u=N>I~MP39hda-sNa$29k<wwg`oBT$C(_B_)Eq0?NZzosw74r%Njf>bnKB zsOZAn(clv+9u{EGs_?ATjx6PpGP3UjiGeoTkzOYd6*gT9wELG*JFVSC<aNoKBrU#? znt7T8SLkxP(j^jf7$ki+5Wc1snhvadh!c0*Nc&&;iEuC|1f<bws?B9&X{|jG_EloD z%X!ZeZjd;_(wEJ^W=&@^oW@H60*{G5A(Zf@2l)oNPml}kE$oH6Vu-vcpoTBVizzdZ zO`w_&kOsW*(xQQ4`)h)M!oH^H%UMWLqfmm46Hc(i4|C4FH8GJR8ouoCWR}Jpi6?fK z#&<;;Usv8sEzwSJ0V2&^nc6tbRVKX@mFM<SGbO!nP-Yg!_++u=wWXHHi?}|&Q=&1= zf3U>|YWS-!6q$Wz!TMEXcAr_l+3veyH81}Pub7mRcM-$X!d9rLog36L^l)^jpo8Og z=+_crH+3RZ|7xWbExtOB$W3g>m`-T9ufhmZ(DYB6@U7|#1WkdXVPMF!EWjK+oP?bP zG%@U-oP=y&^}#P2I<cJ}Kx4_nK$VsYT#eI-FxMNh8xp5$ks#ul_ze*=upQDiMVpC+ zH>J02w-aE@_XfJrV+tS1jgA4vXxR(`3Q?lP;Ii$X_7_x{xJCn9H0?3;nFNd<1VhU5 z@E%Bg%7Cxx+twOxE3Y+(r28~oy=Ut7!c1|oBQ7;0WNqlg2mRO?3q(OuVr&3#I?wrj z>I<iU$ItjrG&M_tGWF}npe$)^fVsL+p(^SbSWHn*k6rXy8#q#2?OrOb;)9FhO6S{P zqL+lL*zflaSD$3K<w!~)m{2{k|3l223rWnl2&8dX*e))&SO(V#PelHfq9IRyO8ywO zNb>DgIiu_Sg_%5yR6m<mVs@5yU&kiCcEBcH)B~HTwELQ|0Y)`wkVjq63}0awB6X%) zwdQPyqA~~seK?xnvQC83HNg+ltaC8eBS2xX1Fk{S5eUDmL+VtD0Pt6O0=!pugP!;3 z4b-#0d0$AOg6PdoaNZ{Q2IWs_8@?y#lPtM9LFuO*+p*mycr9)_nOlL_o8kw(qn4Px zipT=Q6JT!Pys-=M5r!Lp;{cXPRwdxBO~Ad+BC>F6z@GuQVCH+?2gc2n5_nWJ>9rDt z;qw+&ifDqbW@BK1w+3(v;pa8H<pUgq{n?aT#Jq2LMO+K&kWfGYYs2dlUXQvBfX5Xh zKu|L8uTO*UNdANd0njkb%tByB_bEmJzB_$A2LVsimblhfrJhb5=ll>d)}u81B{|RQ zU=R}uw$6!qT&~e&LhelouC2EE#D0YzhwB`?3tk-iS`046pmv3<if5sn&NwdtnPai& z5>XS`IzWQ$<^<b}!Nvu?JZxv-9r74U?>KBkyg9wh5y2GH{L6T96f!%RyTN?~n6jtg z&JztaDkaoX1a3L*!grI)!jc5s%i{cwTuRLuf(!Jco~&Q(NrpA8f|R;KhM!Gum`)N{ z5I|j1oA9+W4Z&kDwvuQxmSV6B5u&z~0;>d&c|%suAPR}?&fr63ATX9dQw~RwrgkMb z`~-J<gR>z9=5I?UxbI-_(1w>i@K2{Fiq0ndyWXXCiJ-eqs42$7-kYFsnYPfnA?&&% zmT7T3L5k(D7ct8D>qV4l3U?=<{kS44jFCs3i!MZ>B0;e8VnE@KQdeIdQ9RJ{qku?C zzBCKzc;oym?0akeAo!qQ4to~fm!R-juocXS92ArG9RqqOvk>Gmh8Dg`L_d^1opB@o zwzNFmsuH|s)^_I%N4AK|j+AY<o-0!52NG_+Yl_V>Sq(QKXZxApP^5t6ma}c{A{kiR zpQ+tS6eS_pvbF??<qd(g)^)GuTKw3S^w;@fuI&o~sA$P<#=?v^aha}<B)vazOr@@8 z>xXA<7vM0<lY2HsPp^=PEkm*}Dhjl?g3kWofsnKYzR4bcqypx{Y5JVBEiLW;AEa$Q z>eU1AB@Q>ql^z8Afr*;_<Pazei%X^0f69f@qg3({dr+~(BUg5*w2xy?!Rlw?eY+J` zE+<N9b+Lil{A^&wEY?uBLaM<tR~(Y|v8U{_)&;g((1OFylS#Wox~5z+^^;`r<(>F4 zSEo^p(KMoK!FTw6L%w5;Z6ush%#-W=N`i$au9XEwNG~4m!vQO;#zr&klq?{aC$+p# zZ*w8k<TM>>Kf4tE(s=!3ME}}D`qHjJh+3=`74+CGI?d|bhS>5_dbGrlZbcx+(IqlO zkm(Pw#|Lb2;nBFs?2iFkTi_+5otCx11yPEe`tpVfEi&d~NJcgy+$FPKo`k1Dk|@hD zGFD?xO)#~gE2SV8Vk_bKZ6!Q+XNd}genEpbcmM|e1MyLXm~OR5deDTYiM=(w&_ksu z3VC4J!|GgvO{NxL6K;p%UMSlK6)K~8RzcbVRbrbv3T&h8Pq`KUl_kE3Eu3#GRc<AS zc75cV)sb&xQ)A5wKd*~?W5HaD?JhK*mv`dJoNvsMHZwHxjZA5K2i#zij_tO6I!MWl z>NSaPNZFuuoc8EW5r0xE6p;ko8|QHEI(8lBIHxK+w*=M^<2)XauqdoCj<3p*Q@B*( zi*meFYMqV5JOE}1uy|`DvxP!lYZXN<y)D-9p3>l~;UxA?28N|qBdJ0bngl07GQsAs z2Pe!M<kU=YjdTF~Kj8e&BCdQ&15{I8!LORin-5s_YYl4sFUkiADmr5bh=%u&hcVBE zO0!}nGaF!<!#`MoOkopYF4Mdg1HeFk6QRGA9H8F!!x$cxbixnQX+T=^U0^^ftqmQ; zRSOJ=iD1a*2l)8`O-m>}<N+~Hz%Z1Tg><PPGUfA4;ya`3c{~P}7Y4_II_D2dyu+UI z8S_rx44_Z|R?;_4_e(m?&9x-{{y4qE#h+Gv7Hso@QX5<HF`XILd(1IRuliuAS(3CL z;L1iw#cxhGD*i!wV&i^T+n^TevA8i;kcXW7ycq#zk;h}DbQmZKF`gk!mS&5kmgF&* z64R=2mxmQ5k;Z}vz%<g0od|=+cVd;5U@Y)eS|qXlv8kFgq5@A025=1p6Cn~}Cb*U9 z;?LSJZH>mrV@n2VYY8ZJny5(`=UlpVi+PGxP*25b7UP}yRgLnrVakT$l=Ysly9*OW zWaTD|qxK1-T~!;W$w6BtE;RWZB^(YBhkZF5+G<clF}dFne^@x&+=;OI#1?SK_Z%h; z-%Zl5Dhd~v09bqsu*gt5V(t7xA|h<--U!`WK&Y1YtWX?y1~MA%BoN5iZ(SresRo4M z3+_Nxm^fyUDq@*IAy{@qSPN~rtpW9Gp$(Y7?PN@%!GBHJz}RzN+;?z!CxYZAhuMeh zaFh&)&)l9C@IqpytGsP_n~H7jhZKz=3@{_V+u9slugDzmJOh_j7N1M6yEcJ(fAgf; z^7_$9O8speQx*2ab9yi}T9d}~j1)0DREgO-@i<hl$ToKF4KwEGVOSi`g^}4;mq)y- z)3EI>Yyfns*kl|ohaRjl4m}7f@-);SbwzR>w6y$R6+;`W+22yfRyDLsJNtSM4WvXW zOvv9<^)!h?QW~F>!@M4aoxo2-Mm6{(g>A!A7%<`@K49Cs5!|}yIce~_@?y-`4l~=t zta2WDsF}}&ad|yBr5e~Kup%kU)hcNL!W)x3owPGAE5oTaDEw+E6$xP*IuVR-=5q@` z0L~QPT1vYZe1XcaeZ!GJxC1&;4%5z@T-v?XXSa}6LK=dz0gweAsHTAZ0aH2Rrj>xW zxf&2uBEc?4X-L}FF)Inmhgt|gq4u5)@)*-TA32g~yDtEfpEmcFit`4qTU1t(j)Z7s z_q?s~OHyK-s5oy3s)6Z@N%8A?UFN4Tg7xqDX$0@aX_OzWGJL$HY1Cu|KJU2!vdStH z*&psa&Ii;z^m(*V`aJ#_i`*=1{5h44k;<S4O$RC&AKCbbGL0OL_??hmqxHZj2d1Ma zk2iJhFASBjSP-Ee#+2aHmPVVEs?4;XaMzAoofUR1cR5q)(wb73BeIIVLzh-OW5Sn$ zxe(}fViC%1r7o>0yA-7CvT}S^ms&y{%K(*bQ2~7>+#`sZ&E6H0ru-|^5OjTCn;tQP zoK!=U9~wqbPVmolw6NO+d=_@m_SBhw_0G_ZBvhBC3jPGdXHaK3wPiA3-;!zP2~uVc ziF!2Fg37wIbD%&gcAN+i0jo$NeoO>MTZsf$RC-%VJs7o(O7?)%%&anc8FNzO;RGbL zVrQ3^Izu~|R|GzGW|T7KM8>0BNMyy%t}1ngcI-^##m>rYt|_$vZJC8PD#GIa!-WZp z3)&zo=m5yJF~b4`UbCB|_|&2#Mg1Rafgbi?GK7qx-cq669v&m_fdZi<BQFUS#IZm! zd2235@{-!0sDSU`vD6Osgb%d<3S^IiN6JqdY4HD}VH{M4)kfEU<h6Hm+RUzKd;#Nf z^&uE~*k9ia?{`H`kHRzKih8`K{RQjGy&O7=$|NM4aAUqK5=_L9>GPoNUA>3!r?2J} zLmeAC5xR~gE0~`Ma&&zjGgeBr*?is{WAri_YK!cv&l}R4696SI=7BuoBf|SB9v8BA z4;AozB=#=x-EHx2=)`{As$jo11?CarA|T)AA|T)AB3R5m7c#`UJjhM{j<N?y4vaG) z1z2G$m**fTCRxrVUV0kKZ_7uvBDS4j7sB^<9wB_keoOeS;_}{4(;JmyVZb-i=+fDx zYl^mX>_ta7MdF!Y2y4E=6fMFtlBoAAUL`t6C%A<_BtEe)3@e7~&o+ei7FM0R2~a8? z&b$YNYkh4qIRYCy@yVM_a6GEG*iQih%*&);eYv=8dn!Bh&wfA<X9O>7b+7VI(d#hJ z3htDm_1xrO%`}5dfXwDEeWH6Sn9R&d09gWTu^iB430kkdMSEIKkBd1%fklg~bLDu! z<+(hy^-@AKa3pVYZ6^RPL7+#-&r*Fx+Chj;b(a;I)VmZNkQo6H5^f<*FXNR<tB4=L zrpOvw>^P~BEm%L<@b#x*8T7#in;WyC8GYI=rrM_E1Heu{64Rbjui-Q6e@>l?P}n;K zTct0163;55OMqB-ZaD%A9Sow;!osnPS?7Upgp=`1VTLBkGlU3-Hw${S%AYgSW&1(} z??Jku*u97s6`~`(LVA^!6*m<~mL_95?Mza$UBm95?~K%3h-US38nwftAe1%_uW<^Z z8ZS~1Pu;2@ArvzYjh%$@5kW*37Ni_z0>^cWo%QTsU>;~>GQ(`4j_z(PqZs?_#P<-S z;7-p`s;r%Lx?A>u9=0xh+Wf-}3Zl=M3|cHQ8B|#O4qG8R1_;fo^()he-(uoHTDa=O zK%<CnP_!NHQJ$cb6KeRQ0mhR%>0kS)omip9`gEk564A_r32~#0NfPZziMcXiyoEB6 zvrQEEMG}RZI<Ye+4NKVrj=BUyHD$!MP8ozb2p3WYUnil$FD0om2-?sNHO^YATeyfv zG2N{++u;^MG!ib117Jg0vo%QJGCqhHB!vb(Aw2RzgK`EtJm1pL-bs2il;-_7PD(d; zLLNQFK4eazVB^s8fi{<zAt?K^j<sPOGWvmixWQ+J{TXm;f40M(VFaJ<9iBnK>i%rd zp8>b@WjnEKtgd-Mcvxg78|5<cgY}JD@Eb*9e_13h9}2(JH|7N85Sl<xqCn3k#ApXO zHpo9)!_wA!%Zr*ye!*l#K1)63Pg4h#XyfKY8@^X91?lg597ulI0-L0QF8}_2g3(qP zn<XyGmFibH3GSU3M=go&-4j1@7K=wb^I1O{Do3zz#7dQoh|JmUEGtX(Z3PBJIfHt; zGvbEGS&f||S!+wy+KRXh;t$+)`DyOD43!L!cyp0GfK@m!!R(0Ao9^W^KMoSZtsUM2 z%CXp%;7{_$AG05~lggUli9Q@YMV`RtgZLXfr-6v38ef7R?G<+ZC*yQ4W@`fH#oizr zp?l^Uu6yoBg#=u8hIEbE<|6<fCk$$NY9%>=JDmC1f{q6S_!xwmZ*2vEwzewMg{u2J zXlTfO@t$_ZzW_I|IIJ7mvi^Jk!glDTaqC%)qs9mIiKLSu+#l70cXPbYBg9%>8_13W z*A45r<4~w-*mqypXP;jmh0j($#XUZS4SX&;r!mCqp>rB2V6`j5IPsQ&E&M+O3+lA9 z0eSPm2ann4ks->i=i=??-!XesoA=r{g_n?H<Ad;ACn~_{g85Fu+$PLaeFvA}6YE3= z_}O<(V;=UT#?sHRK#HMo`#FtK9N;JsB7zwo^seUEmDftZ>f#`qj1LJ}!w%{AG6PMk zxQqv#gE#Y$p)eFd9)Et0e&*?hcqisE5J-F{w<Vy8fkUZR=0?xNJQN_%3orrv>_f^E zrXn6>{48rs1P=<qL2{qfsA299;KW>Du1HA36y(F2Drbd3ClMx|vZw*$q38#6&R1a) z+f0vphJHZ9KD`6|^dV=*x&T-{zr%dNGRGyiO*|ukwv3>Wgj&m9Myv7!{QPwO%$j6} zI9Vg-G)}NNyPub#JQ=;Ru-TGcGe;-go7C;iohTY^RH3J%&ql|_OZ+^z3|<F#@cw07 zdsqS5ASImz+OVxChn9f_aDBpZApm%bgNxI|v}A0)>YgUhFmfC@DWhOYpl%QiIn#rI z7*gKUnW1m7uaSLxj%)tocmsD%4MsVoJ~0ce5%OptQs$L$50#O%5sa}J=?lSa(u{3; zB2DxY@klS|7u#`c{%&I>yLcJi&up#J*)J-gjTAy1?@SnW*BdVwh=7havtuPpnG$tc z=)*KWim9ox%c&Tdxf_s@;ATqd@gXOcQ_&7PlrouA;JhI*E6_^M<P`ikF`{9e0`N#M zdXDOKv_J~)Nr1X`<yIt~xJ#i!=>)kgG)Wjjmg1e1En+9`gW(n-azJZqK$s?s8EP#^ zOpIEfhaWG-uhbTRletqTjkK9IHLmH|J%U%-nl)-O@FMv6bGQgqMmr;wMnnkxlK!n( zBKSWljgpkx70C#_$360YoZ4))x(p|>O_p{|5TBj@?;eXDrk8ynHN5VqlbBVYti~=Y zr#KBCOl^D`RIPo%Hh)@b!<@x>Wd5q@{!ponl?SwAjm=>xBJabcHp;GE5Vnt&+E`v= z?mZ<^{8*`tndN~Xs>X9ysg33T*^V-er}UnWm)a<-l0Uk`zo$99r__eUdFx%NbC!CS z+WdK`jZ$mk8buYM{za*cQuHDpunpwRtW}vz@A_0~*L568H?bbPuSBeWnHoB=ChPj| zSqOXhu&rxYx~*X8qJ$cK%Dhu4uafRvk68cqg4N1%i`sib_>B4duuzb4PZh-^X5_)c zalwwxb`ydG9XB$VXq4Y>2)3G%RrHLQ?b^U^ki@cxAhp{K+$W*Y#;ZZlnt%_#Fkclq z{9+h?eUjMJ?lH#{%b@fcr||)A?{WA5fg=Wnq8|l?Fw=?Sa)p4fAUmdpB}uf{s)G(L zmg;J5foXs{>tKh}T0<&GL~Ef=J<k#-c!id`(8Rt&%Fonu(I~~D=v8tHfF2>Xptq?H z7SHXST5iezcnjXR9<)BYJDxx6WVk9rRJ@>2u1W*l`Xos|Tj89tY4emu)jj-?`s2(( z#i4L*u0b;@h~)rIo*5dGTne;jFyERgB@E(Zkn+9=ojVUj<Zk$|yWvf`;SH?qXx^ok zoHT&g0g(m`0P<M_(SjeT*QlWocNl`#JIXB<@Qs1_{?_mov=~P9ikBacYf?%R9<)4T zTDyfX;__wTm!i)+44)Z>-6nR@8lonor*A7#IRWW<J2Cm26KY*aSWGM5##bn!7JF-I zQ`++IcRYpek@21(1J0=7PwRRysuZ>b@pL-;h3yXTdg1f-mI&7uBm#|^_QD17Lks6M zwg4|-Qpb>N&-G2Yi%%hEWOJQ-4E(L&XIV=ORQW}kg3X->j0dU+cRq&6*QlKs+P{~M zTA`Dsz10*SYa(!zX_WP=x`X+)%q7Xc%7gi97?IML*n{mK=J>RIn1Te-kIA!=Sv0hk zn-mZZ%&K2+jMb?dudSnL2a<;mq{<1{yU|Zc+7IIrk`zHExV=%5auY{C%2HEinumAH zMqgfKn2Hw9uzO0hRaw%CE)~N8BXDxboA}H*S~{Q>JEjN4dGOp?%jB(2pfw9y@je8h z%*d<;o>l`49NxAD`4l|J{TahqLry-U{xoj-5FfxQN_#o3sY`;u2B)mX6@=SLNL@*} z9r^-%&XxozgZeak2nOmOSI?7HCoL!(=E={g1ajGyf}UlVvx9%wB})f+sC+??zA=%S z3sNdg&AC&kOX094N@ougvC@C_CDLiXL>PrG+jhq7!9Gzy+?-x>i-nmjd^!<BuQ3k| zgU+WG7D34|PPB0dM6lrnK}veW3-aJj+NFV;z`G@Z_hti+`=Y`96$-#e#1?r_yAR=} zI%R(!Kp?%j4rr2^5lU}*NZ=&QELCI>{!q#yLHa<7*`hcZWi*ctJbFZX(x}m@LFnH6 z7SeA$;+DND4aNnytjI3c-LRMtaBFJgmYrFVIj7Do{?z8(sg1wKtjK(bplId4r_{!j zOPD<pTM@QhsZFUi@MOJy3DtjNTB*}@WsJt8$l(8I7P+gjHu4#!DuhhaCR%m>gGO1( z{(@VA<o87hnG2&n0azL&$+aX{7;E%wJ7u#?QaHgzzynk1Dc@K?%2#Td3<UnHHdBiG zz+`y&F55jZT0xfLS*^#S6X)4hf!Q~ABH&%B9WR>f=JsOCt)-U9fY+fHy$c2{5v8+_ z6iV|*#DOfdykPDzj0UA+mY9WJ`(TkltoDhE6*}c}wmOSX3n;gb9QSdAhmHGU%Y^&G zrvKec9$9!tHYRLo+oE<BrVQe(-mc_=A#j1Gu`a*`<Q0k?`bd2UUYU<%W<+8HnFELu zL(_9vopEY~b(y&!PV3^Keopv;eB+NdVRk%3_S)Ks7&*)-zO2+TP4UCSUbh$K>S2>u zKQQbSM|haH-`Xj*Ot`<P4sNlXR7qEWKbmwoK<!La27U3%D8Gmh>FOgh!+xchk+dI` z#F24BbEV;=+X`fUz7t<c9(9X9Y|>9ZK#jeffK{n60M{pfXo>0Tg3?WD0xorIB~CRu zjL?-xRHAviZe!>Dfv`$hfgh%*Su6=3@IJbx418`yv*Z9~2lNcw><RC4)hjE>gibL@ zbF9Z+3;AaXT+oS-afDkk$1J<L)v{%7#x;W2qGMnylr5=nEm<I$NLrrD^D>w`<y=I8 zxrV2-WZgZH)4)X&Xj>-^+o{`3Exf=qwW<7Kv#UzYG`-1$yCywQn!c}a`g*H%vzrck z`tJBap1w3=9-?7Bq8SQ(oKh+sT{CoJ<~}~L#>y>ZW+>ouF+*YDiH-<5yooM0D@}BK zpfu4xII?6e5Jw5dtC)wju-Os}d64AeqeOu~VbvHV93kVVw^+G5yxPTz(kYKrtS~6x z@z5%<@@V|5#Q>8!y~PT}ld^SW5CxS1vo%MkX31jRz1tdME*d49=oV%ysQ2Z&mfIF1 z=zavJFTf@6VG_%?W%o307oyo~IuUt?L$lYFniXjF#`Hjm9v&Itw6{P6KTx_QH|OTH zd>@2UM9|?(G`3p@yn3_3L|>C0C{6T@!%JrTAOMP=5D1es{3%L|19!N|4<f;30!m38 zjdOQYBj?dPd52-+F`huzW98`HFc_B<EDGbhMBsyGbC(u<=S`j1#8U@ZvQZivHU+Ii zhCC*rLfW<V1QL#l%PaJYxai8<cxGxVcstsiLujE6`0<uQm~FqoJo>EjpT!fSx0c|s zL$47uppAo6#!lxx4KfFaXC2cbV(A%y+{$JP$;YGJXZH#Oi&O$BA-xr#D!a9n(jD>O zkaec$5Ais=`>}=S#Wf|ktzeeHy}VIZ0G7!=h%GWFQn>}qm|MVTT-IqQxXj&yT#jqn z!k&@@aP;)-*Y`DUJ-dNg;6C0H@SLr~VT#7Gou%=19bq;`h;6(Wq|)KB<7C8|#gUaM z<gKNVQBxHu1jc4B3Srclief1g!t`%En9cU4khhoMp+O$tF$&q&gF+Zdx7Z;t*2?Be z7`rlm=$rJ)QYZuu4q0a*K3K7rJgvrNLz-qPVhWoks+Wz2Xn}h>%qpRq796mwK9kLE z`NyxlVKc(`TulI)a=-b_`iP}L&oPczU1J0CX7RmdhCXcH_-9MrK;XXKo=^nwB%W)} zg+Z4L@J6_<2)++R!#^k7^IEQ?_#_6v75n3p1@_s{iSNAJc7!vx9S#JlMjfZJS&TxO zXr8DFF!E7YEauMgYfG}ooDOq9is9bP>7Au@|G%Su5nR|Lvw=MvIA8``lbO9e#IWHY zA&}eQ9D$G?HPGHkb%MGp8^jV@je*lHtRkQ!m?7-;M|5&=BaBB234BC&v~E;_Q%qLc zzKFUB>IM+`av&gToD4xpshanhH~Ew0ok<)nZNd!iIj#$IzzTRIo(oI<n@jISFO~1z z+Vj0i`LCSw<SJg4-gA>BDzP|2yWC0}pk$vd?E7P)mlkHU=}9vUo(&3@Q=AjppvSH` zp7f)Cnjma#Z6*eT0xcxro7PSW6cmJ6<0K#=Utpz8PBMV$ZH5bOWeM`ps1Bs$FGHWA zs<9lTiat=Un;%b6iI;(WCP)FSPt;=ElPg?f-K(@Yi3xQh9Ro$GP=l(}=xyi-{qbwy zZAM^?x2xo))H#M*&Bd3c;g-1gp~^usG}7cAmK>aqjC)veFuwD9C<o&^OBj5Ja?o&) z5cm+};QbMu4@nM2h!&ND_T<AQ2aE6REeCtOcWH7kzUO-^2W@)NO#dLr!3fj;9da-Z zx5UL?=s#>f6$<c)Fm$Z^jN(*EVM2Xl6gZYk3Z>G+`Z*A64R=DBw2|8tS9YE@bz+m; z{xw;d<~LD6AZvaRzlniv`a{8QvJGZA#pZq!BUcJ>(VS{!GX*c8pwpy#%?rrsv=M9O z23dCK-}m3NzK~Y3J&o#vmbZay_2k5vCU*Z2wt=)Rqi+i8OWkJM18C5peAQUCBiwNX zTyScO3OM?Ea%!<*4@GI%gA8)(EZZSpi*D_n1N(x33AnVsHE$c<kOuUPM=`PCXj&HS zsts*1^VEGECVTbrb?C+xeI4PGz7BoilCQ&?!PogpezD0cb<pl2#mpWkP^e_<q#T@X zoY&88Olexp_z2jc3W5bQ?bbIHJT6!IrDyr9Di~%PI`Or8j2<k+sWYPRq6wp)3Utb9 z{b0V1MRVGQ%Ku}ysAj<cQg4<#SQs$9tK^W#vn){WhE8nb)Qd9Ii%>6pG%YTYyjt1r zK&z2@_k=su)LUe=Zt8_chl7j~^{TUMr$-7ZjD7cpkBCCPSwL8xLb}HF@KQ*8?U7K( zo45|K*rHgX8>gMeMImn$>=&2shYGlnd=IG=S?7<6u`v`q2`x(Ey#@RsAsW%KJ{35X zl(&6H+=|ETe#lh=Wpl@`!Y0%Ol=8@sK`YxLeDnyuHkGr9us8xLmfjYcFfhpVh9;tJ z@LZrqE<&OPLTTs%sh@2s1m+xAZk925WiCzJdpI<MUT~$nX6;5~JP$o?X5J1~JC<SB zVjskU_Be9a6ZZ}dKpG;Aj(aZ$N3=;;H`9;Y<;GMIipoBQg<>wg6(?o<P@+<adA193 zX0z|#f;3^ep5OJGK}>#@CcwxNHZnk(JWj%-4}W&50X8pa`@#rv!6D{a$}Q!3yp-tK z*v5FtX7ln`+!Rl!QZK#4e%18HVA#waQT999a88wl%)QdSjy+lmAABbej+^VtaC9@a z5n{;D@_H9aW41ZJ=HyNS<szGW#m|HmOdE0<vEqcf#G5sHaoTWKWYh9P1TutVI9Xh) zQeL{Rp5x^%DO1h?Ys2Oh<u#om+;DtQdjqdkZaxVGuj`;@D(~6uRuT_yj@nJ*fp8Pq z0({cK#v-!;K8uofgZ!M}W<Pvl-#k)|v(6N^O)~BC%vv)W+oCV^Y{<UUHt8BWp0{k; zv>E3T8_g^~s>R)EM`dFy1ky#*$V5I0j!+f3Blq|yl@6)kgaM@ZqxaG;%LkEU+!`Rw z^f7pd?9yyKcPwYvMo*k`GXnBlI2D_*tliHCG1~*6=_Y;(G(Fy(U)g{lqgqS3D7BG) z>!mb<7zDW^qNmjt7`SNO!=~Nzaf$`_H*V81=A0|qJYnH4(mCTJmTN<!N6}_vTHq!t z2>I{j`q~zpwA_~B28NBD_;xSDY{U+;Bh=UCs}!xVu!>oG_;plCKm1iROhC@89cy6V zOZ-*Q7X#CB-~jK~`COBwxP{)WF)$ASIRyq=tW5TUi|5t=?W6E6sCtlE<7GE`V}GWA zeM%JfC<xSP45ErF&uUBsaz?fc7Nu)Sj3)vlWArSOz^4#%h3s#Lzll!k$1ONozcvdN z)ehff=%I1JR=TVc0ldMEpSKCJsHm1SGTS;u(Qmt41a^8|jO@a+^jD|w=9Q`cJIr!q zAVmRo5CG+Bh`^G>c4a>#!eERpq#G(VcUShY8s(#3pxmqZ0mNlhOg+Ms(2-!eI>F?7 zLsMqj-y92Nvv7bl@ZZDt36gq#;AE|#dL0*>F>=f(R!|>fYo|{*9)BmC5Kietp$VPS zdFoS7JMHu{&Uo77<e5L*n+~@X=<qDkVX%Cl;<U4dO8m|mCR%&H88XKtjW@DRojLT} z>dRv=8`+(@=1LFuc{j3otAavf#81O)Wl}*Tny2XzY}r#Zm0i}6gxXQ{2yV{m%jUlF zA#CzO`Zi+1*r<nBQ7xW<b__ft#e$o<yO?9{QhVdMc<yvO2Wo--%sT)65q3nVol?#u zfBAO^fUq^RG9knI2u~MV`UcS>XlWtuN~^4q9khXPf5Hk51XGbUsY&QtP8<R1jz_yw zx>1K2G_}a7JX)D`&&E^SK-J)0$~Z9%n;0s-%4y*VLr?DRyK-8diRVtna|=yNtC^b? z(;<~8@;)B^X?cVu^pH*H89;%yoO43^IH9NG4mVzPqkM5*;QlY}$jb3T#e_ZsPjR1C zckhc$=u^>(d)0G&mq>+`61az}yXWR2q{5Y6CRdbuUM}?(IQUFF$BkbLkxCZ_yNPiG ze0by&{{3jVfYkUtvc%#Nb|GAKsbx?=A<TrL4M9tJMpMiY35#fuUxh}0Qfd?fq`e#M zDK)aaTp>zEv!M(h>Ms=Fiy0ZcU-gkvqqsI18<k&$atei4$<FmtffUm7@5!#YyVU0Y z0=s5=K$Ckn|KseMiAuX>Mb56F<+DKK2hxIl1O-}bxe&iD+;Ra4^*`UP={YUYuHm#S zY}Y(8)A9&S=>M~8<e40SUDK0PB2SW37Pf1C&`9MGA+kqIQY{W`*{(SpIk~7^6SdUg z*fqsQOR{T<jh1HD6k9FHt|>NJnq5<DwG_Li*e2OEf6j%Y!;9BwnIObXm9K6Ej*zPk zH>5`p_4<ODp@k#ME2Yow^>ISYYKD5*8A6%}Yc&|o(lc1*Kxm#(78cC0>O@xmf*G}D z>_QH-7y#Efsc@foQgFj62$f=P$@bgQi4cC+;%q2u3w}b_&$1i&QU*jtMD$6qbkk5x z9&^4%6*YlVhw_wk|C>mg%O0gDtFJ+2ov(dR@w#L6s6VKEc*@9wuZO~xcnvcFNI=c( z=y1sm#LcWfT#`~0bkJEkT#vD+AUElIRj#T<Q4UCtxaCn!lEj!}^@<_JdkfCO4GB%9 zf;tb@dy*1JX7SYH9R(6m%3aG=<`L=CDTf>;fkLFZrIMhzS{@rav4;=kL!}r;43!Ss z_hvT#-F+6dLHvd_S}n4TPefG^5Ju=u6HKqYQ)l#nNan%>LjUD}spVdObf6~!8q@aA zgWp(m2$jjP-2<KW;F?<sD6#h&O6K;*<BIl%ugz@tHJ`%LIj1eRVz2xXuF%K)lCf+L zA0*uY4Sas6JDoGPWnd_78NgzInpq0TzVOyYwm*DrW^+{lAS;>t!z>+bg=YsyJKbIY zA=?{(@+5&;_r8rBP@v$jZv*gY(F4niBi4h#x0BsxUtk%MY<KRvUYpH-@I%7Vo_F2j zc*y3$SD-O`MR1i(4WoPYl{RS+xnyw*?nC^HW_$Qx9=X|kxPvIY!0R3vwq-y{DV0R% zwyzkZMusyGfqA{0R!(++U$dK7`6@e@`>vP3@4iDL+aJb&_;UE#%=U$^SXEC`HKVUp zBV$b35<4`qLtz}%WK$dm7)ijZnM;=54D^lOOLkx!o+P5xy59UUTi_Ro5DU_02d*a4 zHXSRZ<-VuH7N=4&3g$AK=R>(ktaa~fq73ziviUE3SSUZVArez(qknB?2g6;UT$8A0 zXY{oS<;=g1C?CoWmEh>w+yi<Eq$8#P%DKXB%>v3RqJ1W_4ie>Izer9>^$FL#G5yX0 zrkQ}0>J)0RFveQAZeXBMuv%`EB~{^aHNnqG@eQ5W^_NGKX~z5;k`XA*`b}jWsm#Qh z$Y6Wd{ZCa_7TbB8e}`JOW_}HQ9?Mp?;`d|+Y)r4e_ISPC7C+%XI4NkAgWt8@rc+lq zpL~l>$>EF&7iBe}WUiT~0po{zP(hfP|MzJafH?SM9rC~gLM*Xohc<-ez9&3^b>+iy zU%9OO)1RKJEI-}Oo{PWdJs*EBz~6c2tz7v+m6?CZOIMx$vI}1Ril4Y}_3G6>`N~(m z@>Q?;sh|FtpI!5F|Lf;};TM1Dm+`mu)vx)LU;VXT|BZFO`J2D>+Sk4Aw}0n%*RTJ* z-}}AafBoxUf6>MGd&4E2`la;^^^NsS_09Dy^{x0fQ@^Z!dHss|HvGF1|E{WEUEf~6 z2LG<DUsu1regpp9Sih;hqyEPFo0!~SCPI6*UM_XNv%rkEC>dh5Awz-8v$J@p*@jMR z<LNbO!zV%KV~~X0X$Y0gl%$*MthKznf&T{B+nxq8o$$FEhB@vv+gxLRBi?D^k{V9$ zbgrNssi*x~EXiJY%^g8#kQi`_Lsrhd=NrIe@bx1nf-7m-i4)CIx0P>jHlG2Mv3#3t zD#P&3to7fDf$gmW=$kMyKnoLLJwBk|c3}AvLm%YOsrhcy140W@aI_nZw{PI>e%Um< zyxzKj>3ALlQRhESG!YQ1%xz29_AI#TY%D+x;N-?d%EzKn!NuQet!v<Fd!t+b>@cZ= zf_$jyO5794b`$;KN1i8`{mIM<84+jJ&Lf)mgn3h}e~5zS+1%x*|8Fu5Rrqdg*Kk;q zA2z`2=nd!sh#Jx{*;f(%uFi-@)E(ZBxu-;4L)7m<2b_mNUa$kIrXe1gG05{4be6)E zdEEJP1@zsJ(08{P_S+17pd_JB6LBK2b%i=Zd0gL1$-0G?hkG{u{q^My6{(-GA&4US zND*9|#Z3)tP2u4!e7Is}Z%&~3%<4($Ae&jDX??}ya>07DjUDKk={31Ci%+giA+#jx z(>JLmHQ8;h?O$q$GCG4#TF>A>D~a!9`xR~_ia3NS@7baIKJe8Bl7ITzPsZ<;knNd( zN%U|T^$m_4NAC*Ux;P*V?_GiEM@}UdMPE;Pz>S?orR~TIw<U~y!X}fC21nbJyt6M^ zHVtL{2w_)F&)wwR^>}du$1})*X$B`h>)RMMMpEt+-~Qh8_IvE@zpJ;~8!7fgOU%^x z9S%$Ze3Gyt5G1QzCi~XF|L(u__&_FzOW<m}Vg_EPUW`%&DrXz0i6f@Cgw3!@V}&P5 zN9l+0{?|e1vKl^@kADlD_*l$vaw8*R^^eoIK4Rly6J;;~dV#I^Sp|Sy0L*|9*e!B` zAhq}~IMhXSLY<|h6<_y(^tzAR>(-&G#CKdw|BW(X{3ve!njVyz85O=UT&6qxTJ__< zvWQlhvCyP}2?%6emXyk$IlN`1g8tJ~$ihs-M`{3cJaXgJgf2(V(R{6Ze@>l!IAO}k zeeD8oG;-GidrfvS3el(8;f*MbXYJSVekWL+;qr?FG6>qS@xfLfrR+V-NBRZ)#KSl) zxkwQyW?BBc-BLEoon)y0g&QpU*@tvy2x>6`AN)D%mcl%BPp?DCnm?;|&gG!xLwcCL zYOV#2f4T&@tPy~p6#)GL;G+cKXY56$D3HixVX`w~gP+a;La$!$e-$MddFFE*=d1XL zTQNw<(irr^EAfNRr>=i;1nI;MXmnIKig-bM>!ST;0(T)gKC?E5gb=;$Z~3+h52KTB zu)!;YtT1_f6eh4fNM!$DKkIi#fSEEuZT7dn#78c`6V$UE&?+Uux`bfufDhB(qGXEX zQq9j2LD`PWyez&F2}ATSN|rAs0{-%GCvoQwLCDL+Xp+e&TxSYsu3@6F1CbbJ=<6K7 z`EiDVL8aTP(){T9rML!h!wBWv9$?Ft@D@l2<^)JN5C?w!Du4ZP{>nPTGUry>;5!hl z)Ls9~CteJJ`dy?SD}Jn(ya;WowE6>S%&yg6s4<%wg}Fu=TUnvh|Ap^a$zC}(hw9xH zTgPP83jB~PHoIA2v9XM`shyQ&Q*AGj^y2L9;{_Rl^Rk~8ruKGa^SrRrAlkEyvO^lo z1<sa67%VoZyFf`pqEVA2qWb5C@vX%$(fL6zl0PmOlCJ+&!lN5*Sq_h;>s>Q8x!bR= zeLY!i8V_anyb*@0Mg*+qGjikLVDKxF*2;<7|4eV(Yl?}T#S~d*ntg)T9SPUJYxvlN z*{gnQHE$t!;rgHWmU(NaNzg@zFqRTT|CJzeRe3HTTG3palrr!L)d_3e%?Tourj+i; z<62Ezt!VC}J@8%9*mG#@$tF3-0_L*%(5Ggx%Ujt@gz~_srYSRB|7e&&jF6)OKC~a> zQa+3WqOx;+l|@fKlTTOJz8fx$KBRNWlyKd}B?#}7{F+UCjShPv<_;9NWMANt1350S zn<XxB(-*j)t+*@8DNR;Pv>S1Ha&lKv<toB)7DpFoeQX>~5tZhZ{E11t-0I^>^B@tg z{9Tm9rc`<(A7TP8?9wi+sV9}l>zXjWKx$JzpP|?0^rnmt>CM2sF8Xl>81!aCYS5b! zu0FwVBVjl_KL+^JK{gUdwK&Zlh+5h1o(jliUvLC=OvraQ#ucD|4oJc^F!PBI@jgyf zx|Xjy1)xWyVzylnCBEO0D8tulnNZu^#^hCM^QKZ8Cd!gAjP~<>tGL6bJV-3?Y?#F% z+hx+^M1GI}kL&IBdqG6KExp!7)N;L525JiiYTtBTzPvp>?r{@59>X5N?K92ok_}oh zN@^lY120*q@AQt#7HSLd$h<|QL#D_3I3%UUE|uWP`=o{UvL#b!BdW&6=?~(kUHpkz zvY7Qi@Hg|Ga$=p>KFk}Q?%GB0dXhP==vYJ+Um$|l&pf38%a6%W>`m~^MDX5}aM|I6 ze?}N|Y*U!-0>P_=YJoW{bY9xJ%eq_@g6#ciQeBYo!7!Pw?yG$GKOro3v=exCz97hA zfMz}?$YOv7QceMyz1PwF8g)sAV~5ctcS6E^8jzJ>;@!+!u1R-sUePhTBMrqlPxT(V z+L&3MIPW8+HZ0jyL9{tN`>|3RTUrbzKMCCqW=Ze4tJFqofl;@!jfuY0<`b!nuQzj* zO;#XX73>k^%09MBYNKfIhHT>!q#C1x*%@3lzlV5jjA#kJ?z@8z3?LHUw}g$6jp_6c zk>}%U_~S~Hwn<{6q)PT#X#|vbtM^#Uy}b~nC6VR#krhPEhE8nYqJ|A@qn12pw~e`4 zBpUQRTxNH3*Vz=9+n9#s5On&JxpyFG+B8fpXGBhn2y4h~7uh^vCMp)Y0}yIxFP(^o zt#E%n^D-Pz22Q}a$i+~A28Jwm{GGeC)x?Z7aT1VXAHmFvWD3!louTawi4?9#`1nLa zjtFa^`ulAR9s-6c;BCGb0Sy#e$}WjMq}V~fdQ%9f$=FYBNRx3$+<7aG2xCRR3PUjm zMd?BI1IG%KUd#!QPb31x2}&4lBSxiQPX-&Y61NctWQQVqU!QQ`>|lvT_M8PJiY#<v zYV&{CdlN9Zj_Pc<yJw%#<^VxpmY%VJ5#B~%!vJ2UZ&(z-Ai#hikO;z;h$V><2$)2+ zTdPN2Wn+Wb?7=Kn0D;&A7<;gdEx>>RPGZ6)z<}5VVNt^3?|t8Ms_ORb+q1|rkpKTi zkKKK5-&=L+oKt73Q>T2lmgO1E^v?G5j`yQ1qZU0@gza_d9Tz<*%jm;Bvt~wchGA~q zO>?VS#nwQS-S(*k`gE96y9#rP^$8pMDskasP1~f3Z}_C*8?c-)5te8R7i0w&^PS+l z?@Yn3m@_l6Y|fPiE4HjNLdJ{BM{)n0f(>$RGXnJubFod6y6d6o$(2r<v&LKQlMr%p z%u*W!83xraW3@<W{RJ3Kl+Fk<`e-?2`09$*#19LgMGu#c<G3<M5*Yx>$(!(!dqm7Q zXNwF{9yBKg^KLNv5Kx*yi891wsS^NZRWhbHmI7>RiMZr_6ApMrG{E>(zmobTer}nV zNuuS_M1VHdy=5s_cmBr!CWZ04`G%?Ud?+PM9L*Z5BI_zi>!IPqG3<Z5@BQv~zx(sF zZJaxXzXv|>K@S=oU50It$6*uX@`v!m?Utp{MuufkJ9Hbg?=TbJUzmxf<I%?6{7j?; z$_$_<ntE7On3^crADZx~`9yKrDkyP_inCk*f;go%+?MpV+i;J^gE<?nbcKzE!k@B5 zn+WIUOMtG{EJd6rahPtkIic)^X#g_ee3~m0z$NkCQik+*f?VJW9(n}U$~YLjUclJ- zY0QqX$3~3R<SKAU>oM@=6e(B}OOHO<D6krst!2kaH!^=xfgLzpxZRbzopnI@C8>Ky zd7~BOk`pEVKlSFsp<{iwFKHeM)@^iHamDz+j(-eDPH|)iS~wo&JR4SsKL$_AyoT4b z4gXPd8$OLO1X&K1={|C&hR@k#5p1q;DF_3`3R;fS0RApNqD=<LYEvPuv8>UrNqoK` zVd9e(bbFXE0Ue0F$H4W*`bH$i>cB|ZM!v*?b&am9Sr`9tIr5|qn0`}g-x=-1xncS! zG^(B0hc>;hxf7VK*G{P(4@^Q~j?rYuVUdO%E)9!9YIf0uA=pW~p=eoMoyLE0mn>ge ztRblB#x3{Do}l%JS^BzU#=hR!)|UmUjAZBwv*rYJrH~T_Vcy1STNLGirPYU4kEgYd z)B-I0Hy(;-j}f#Ik#iS!^Olc1M{XRL?mfA3oFROIe2RnalnHLeG3o|cGI)I;TI7t{ zx~Pt;9`8+PaF$+{V`=j?0vC&zEqEAbp3GR~I4(!jvMwZq<9Jjo_VmNyv2``Bcp@eS z6!kZ_mHYvGFdU-Vw~^;f;!KZqBPi)2S7RUJZ%1Q(^wtM-<Ey-J6kA}X`ylQQ!q3=< zj&a}u4<GN&x}LJrmy@+R$RJoRW`8C7MisvdN<rMfW`_M2NI5%zUU%z$x0YR)yNkF} z)&ro`<bCO4Q?2{eP~BS9B?Cw7FSe??j2`iBExW*4)m?;+vR({2+iR(kERxcfjc>`u z&mF-~WLSQgpkk+Uc!p^uy~v)&So=-3Ag#p4-k<gBmH*@`j1}P#;slat%!mOB_Fg@P z)S=!g?l#9HgZA=qMvg+4xABI~y;M)@@J1iQj-ZNO;NEMx-l*VR-3U3S{QNKQB{|!f zt#$qfZ?LF)nHIS<F`COZ+SfU|#YIJ15dGiTs_l3H^R8%JX)=LbYP*EE({DCgV$h*z z(fQ9!TZ6JWSd2e?F`>Y%Z`*Uj(4nIuv+qgee5vgnbA)H==PPaRm?NBj2QmbGrhdMb z-f3}!?KvAyQCxpLz0+16<x9)pO)Qyb$f-8*zw;k_lD8sB(_Ip)$)YnYc&G(Vw9q-o zI0l(%n)<tMTe9Y{D9ys!EG*7K&jf!b;g5Nn_<Q6dANi=0PdVk(Q%^l@qS44Q`YBA_ zd>k`3AOH9#Jn{6?pM>nqmCWC?1Wu%H{@HW#*_)oai8<%_l?N*A`IWnaW8!<H*W&TU zfohC0G_`uhIFXWGIAssoDwc5wuA9N6Vrc7sIQPWcDNK-fZeug{_caR#{H;WS=^HIc zsE*v<K%}6i1P?k^2UN`rUA%;%h8hjada$r`&@TbV`lUITtodR-V)65s@4(e2IZ63n zmgFxGWY9ZUgrqC>LbQ=JuU(v*ra`?^rKUlrp-rZt`2o^wB&I?kB0-NHp#&NdTJNNH zpPlnmDjCKx{+eU9rZt#1Gpzep9F11hvDU(oj`XI}oS|X|8(JlMfu3q2p$_+YWc&Z6 zdY|Mfxf<}HZ1Wqy**PI4YCG;lTur45@Ikw`2E>=FGvHLSz(_9ZpRfL55F(u8Ardl5 zo3N+H^t?dU;)1EO+A^%9CRf#N=6uy_qcO|j#*uKS@j_!{La5_`!wjZT*)U1ESz60C z<^7am%m@b^ZG`NjWt71-7=TRz0@4wC4izss3+HCz{A`rH8z7sUSX((ffc0%Zo_icm zDhr6FH`dVmhnYsVAUk?^VT1W+&%)X!YRz%Y>zh=eNCaY~I#s=6rd5A^=qyyy>sIJ& z7!Rz%0|QxoOIAM@E3sF7_E%pVIy+l-E)1;G&OHlLVFb@SgO6An+5IQ$1MBShta>g( zXRKq1<R>-3rtMpO;2f+ScGrinbb-+hHP(}t&%mt!%>sNq`t0F_D6{vUgio{JVtWeb zkvmL4!#VZAb@3c>6!Tl?J#=RebV$wtrtsi;AkBNc<Bl6D^#v?TwSg@@P22@xv4=tf zbrcaOB%)Vfy6FIDx{FWcLrU@-P>SM8T-N(ftvwMRx}QWr%tuMqwWS*cxd>?%g+~$) z?@3eS<8}ZE`-q7dAa_37C}w9!Bp{>PC1GMCvd0rKXnd@ImD~;Vi(x>O0WBl>iR$F2 zev)a(vAUq%BLSmCfG1(xwfcgyL<-aqT?DIp;aMXK8QEX75qF&y=%|N}EkNT7*YUo$ zaz0UfI$FVT@@I`KsxQDHXN&O`+FAn6flq?_S}0h8b&(_Lc%r@-=^!9w{Rokr8I=m0 z(aqUM8etuIH9jCNn1?fTYV8bsz)q6XU-Iy-X+C7dUQ7#d=M(WqiY!3ax=g75U_$+? z6$e}R1W|hpy`5#?3u2d(O`_R7K1kCzW%(2`RDkSdfY2~aq~oPCY*Br>It=R;NFm!X zH~UYA8e55)73e8SA^OK=BO0tBvkAH~2&3qyeK-OAt^v8mY$~|M=BFX#9wX-x^+6R& z%$xPLGn<!u#|%4~^z8<P#Q2=%kU&(yN|iv+jo0!*lrzDQTOZb==zxtZ%2uu$S*&fs zi>vj;nYncGx)_67l)Y#jp5ZRyMUY*KEm0o9wME%=sQRWCN0wyw5`!wevw^p)z1$1P zGg_2gi5JwAKmKXTywlW4q5V_nje@g>v8=XOUY$}F8U9*ilVTWb>E9NRMb92apZMzw z{D0Q)l4^ZPeKGgTevch7(a2>d7~RDZ_<JFpa!RDdtX_IVeTh=i<<c<yh-pspn#PB+ zdqZFiWcPMCRzKpIM=B%T;aH3a5;A1F0FHWP(KiIOvZLV@+am<CyXtUuD+KyTJoGSy zN=lUU*Ahp$l0HcsHM^4jI!CN@BC_cpj+TZTC>iIs+s3(kj^o_VaVop%f5SL`*f!4N z<~UBJh#m_LmXQ5Jr{~Yw#%U3&+4=Str03}WmT~^7ZJdamLE_IoP9;t<hV}<WPYBiT zfBYkR7oD9w;M}Z2xd{2SZWw^Nr3mZw<}TO_kg9i(R`nt6&bdD`*h^;i=JiE4<NkBR z(7Dvb$`AX)n%SUOE*RvdWwKn(O9S=*5~GYWzjHx)#{)Yowpgt%Xft6`KNq#Vqdc_q zz$NK{OZ#MvFnA~*T$UGjG-P8(3+A%)jswq#VmFxLoOLozY1&ol3x-j48Wj(uz^)>l zlx0&NIJxpCv?|T8aO)MdkEKwRpvo8_O<M$Ql?2Cxhx(w~hvp+Gje9q^DO&A>G?+=W z7mM+?*CnWbJE)PeSy}klO-5@k+F-H=VHe7Zq;u~E6F-p%FP9xzZ!#lcPWEw|#h=i6 zTm}=CqaGyitWdr{=G5gJyhR9snMVU?0JjU2%lb9wDgMrUhXH2(>x!|#K{<4~RN7e~ zh8b2T0B!n3(U0(pq93?`x7Lrv4H&o$fx^t=Xs;4)frW^-5L--f9^s|L^LbOksCzza zxYhF+H%k_%ie8ZH&jNM>Rt=ljrz@lU#M+}t7a`Xmhs}x<!}_2HL%0JV5}gA91)9bL ziN)WNz-$X{e&y)@&j&XV(tK4hq^U!C!=7_&IQQg=k&%(3kYJ$_)5jd6<O+l_mp?@L z6^LIVbcsJkFHf7m=5ybDj(z8hUZ(h^Z9YHaj5D78^k;AfdVT{scA#SmI`*KiVHnK= zm}MKpuL*G{4`99+k7Gkf3}8+pj<|*N-c?)2*@n4FPJl?LWp%k3-I!D_!Zgw>-c_Rm zcL^uj3vmzJxG!v$%3o+Mg<mw6!iDA%F0gl;>5G4jHnQn!a*;%XCFigf`EYYHj>#j5 zY$QYyu@O^p266=fM19>+lON5%<^Lhf42(88&fow#$NPrWxY)g`*z;uS+5O}fpgHVk zcM*qK$C;#U@^Y1@({_2SiNeL|$A5795!m7x6VDrhc$XMKz(oS>)Y=Q+E%r#*GxW7u z5KGpFtxq9R5oA3#i*rX^AL-Ypt#QxgFadtEicd(QGi|ik<K8N;f`d(gRZQBwIE~f? zJzFgm^pM;T7>)&`>l+0;lpBz6CI$V8wHGi<;BuaV31U9zE|gnhw3k^DjN?JlQu-tO zBI(bl!Lx-82>%rr2mqGwx1&jz(7}kFWIrz$z3Y|e=hZX$rX``raKm&y?j0_~t>Hr4 zii_c{td8I@B|pL7X1*5g$qRntn)Z-a;PNC<Uz0HGg5P!tj^@G^F8D#XR>6--46Q6y zrT%pE3a`9c5#>JT0u2igdWh+@ZWk~s>#442v6MW#KzUkEi7`e-(|z9@ciD3bpUBb+ zvRI7cez?7o$ZbJL(0*jBxg+F_Z3ua?s5T2iz*ogNmq&!+F&cVy9EOguVN~E&PD7N9 zs$kGZVGvJXzyhRZ&;uU`EDw4(*7s0wbNk~pQlG5t6HH=d!KpQd=LRe~iXbV&bKu$M zpudF{ju>9lVAcjAR*Mi1@o)u6Vqeb&Y!+Vese$+-B6{@!Isy!HuK*YWj2~+Z+VB5Z zU@CGpC0dYf$rwqT_s)dqw_EUxuLl`QB@m4`%w=pgNy`B{v%S0st#i|1?3SAj{i1x+ z;o@QKV_0-*?PVB_Nja7qVC<_Kfm6lE78??Rc;iw#6VVouDhnGY;gUQ1S`4qe94l72 zes3D9%Q4#+2*Zp9>*Cy47v|*{rFlDJp`=5QW14SgP@FN+tnf0#8LythX?J36HDiP) z)?UUz`=Caagpis<9b>zvl9tW_OSm|39Bwi-Z4u&s{Qjs8-rh&kz&u`6l7==7CT&|( zIt8u9JhWnUk=-_5TdRxM&C*3B@<!wU@<zN6Z{!x0$Q~{Y%Gm=^a-n4y@FA85B4ehl z#Rn$QOYni2wFV!US*yS<L&h#1TMX=SJ^f_F_@GrdnHx9qnptD)d57!6DSm>5CudTK zLxnK;4GG`QNS2J|j0EP1lLp;kFQzL*6!Iu#q$#;RlvLuRml!9lGEQ1+oU|s#LLnBr zID}J279#XXjd>Ht$o+{FU?a{<S%uQ#Tl{JHkVM27*s#8kcUd6B;&>S3c3>2O>1eRq z5BW6GzQU5$@B(^Q_m=+sto_CxzYbq$pz(R$IF{Fc6^<Cm2KDG9?L)@T2C_evBrWI+ zMR*@90>iRt7%d8ZvYBDVi*r$?w<hYiGPNjJUU!V;yr`sD%XCMg$nr`fM-ddhsoLaT zH4MKOfqv7e7zTAJh4$i&cs?BAMg-!pEaeP+iTFb5S0vwp+?wJ7ttl>ODAx&bEmIVz zD2heJg}FsVoOI{Jkx{#am}X?l^f`#7wMJa(^BjPJB`MPr3mO~w^hj)h>sJF@XIzBt z(mLZNdnyM1@l0AwTnMd*jrfBQ-wSA+nS6t08xT{~JIJd2i8?N;Y;z+N6;^0`0lZXJ zX*EH69yx*kfP__~{UXvH>(fN`V#e>FQe5hXMH8%y7(uWCvY6|Hi{jFUV$FzJWmOmj z+Om5uE`4yprDf>@IwWWb7X+Nh%AsRw+|l(#XJKW?7!V1EM*yNlT+Tj1Ca^X<GiJ5K z;o#z<t!xAG_4P$sD>CjqqFO(~=e$<5m>0K5bAC}nyM*t~>*Ac(Lg(G}DCRt%EzJ2J zko%b&SFHnK89uO_xs7rdE0!#aQ(tUL&%v^w4RdH_<ZlzRxhP;o;TTYXFwQR@N4vU% z8JR=@R3fZK5?9hW$pV+s5D9c`GEf)KtRx>S!_bD8G&Fdut}Seh_wpD$@QdcO<p?Zf zyjLQ6J!j#fA#7^FCqrz>dfU7{dcYoRTu8j82hMGKKvA<Sl}`k6v*zc#{6~86y!4`< zC#~eV*<ZY{?L}qSrIxp)2OMVYD@zYtnjY9{CTSNI>a0}dXBW?D6IpHI&i+G?=eSCx zC2g%O#^c*(EV={r=h2tbTepiho708J3)E`0u`~u=#<b^*+M9mGaU>u&6LOIlX{kCT z>}dQzEn3U$)G&G}$LQKm4PyvFY82J7?bI;(bIbHdIGl=2ww;vJ{1^}Wf=4^eQ^N=Z z_rqu<NK+%LoKlrOR?TQj+-NLq&vwH8E9ChrXawl%xd^(IXx^DEpszpynPbnb2{)gz zT>}rq=xy^UKH#vR(L4ZV1(X6{ueHK!nMb9M$I~^KvWFyUB7MwG4dXr-W=b<4#t|7c zW<eb=#|*7uyocPi!hvfb<n-NS5V2euv#ML$E*vq{P89B_lj<uW$_zL;B%)l}Mik_D z&qNfH)1_E0Bgza+RQC9cH1q>Cn17|U8`4k*g$?5lv|$0yv(vDS_oy9nGz9TXnI<Ye z2v1QN&V!2J55`Tn7?f+ft!4Va)Say@7Y+(*=MPpA<eE_#0%su4A@Ro*ZTw+M6?QcH zZ=bZD>|G``%HW-WpUWOUeC%`>TAv-5>0e$4iOY)fMcFpfyY4J&i5sG%;E%p7QN-5| zrL1RuX-C^jmI`m^@6glR+g_6Lj*dR937@cWb@QEV?<9SGZWr`<wPP+kv~Yja!r<-> z`%Z5xC|E@7l7c;{HtMr1+ib@QavekKf6FV!GQ*08kdNk$$K*V}p(1h3l?kCmwqaI6 zymGOp!r?h3s2+ZG_Bt-(g3YK4VILk_P=}kFaU`EMb;z?0)OBHImG|08@EeMRI5#!# zY?27^l^zgcup=RAr3MwqbB_xC+RdcSwAxdk6<mn?8LCSQ`&&0O;|spOl`rsARahBR z&L`FCL5M=GifGis5{C8|DjC<2A!ZZK^f}+=dCd4hZ&1C;Be6Fstcb&fcN`OsZAu99 z@l1Dciftf5G>O;vfTOUya<pyn;?6BTg%7pK#Tc&7<K?q-H>={*_;n+;QHi^{^cZUg zb9tT_ZtQVDJq|K%fZRWXp6f$0%b5Aj!WD4-@I+TQ;Fb119^zUYpTMHH1psPVRAasX zim{T5IVa@!U{Prh0D<j$D1pvKd-zx<E34Dtp`)DEGdw{LPK-@g&Gk*3|JxD?o$cBL zP1`${w!I@c6NAm{$Mr<)=d!kU5_|8YoSEr}8?f>~V&u;3drN_Rf#G}s7oPr|D<I-L zrl1e^Tu3Zir4TGA!C1lLOXIJSNp>?@(xZ67=CLL42I<ULei6}|ni0C|tvU+!9)joy zOTw8@Iwyfpp#=j%1@*1RB^H`we@nTbl$RwD?d;XHc|`k`wq8wWS+B!~bcFa%NUm@q zL03WcfK-DZRTWZ)bq+eyYHxv7*iaeICx9k_0KrBYxIDzs-U`aA5!XoHRV|5~;Al)H z5NV~a`p_{F=i(NhG*QB@Aaj+CzygYz(7$6%pahf2+1=cXQ2J2^9FVLi@4}i*4*TIh z?_f)U!OuG|3S!nr7{+odk+)Ui?8B-*FPszilol;WgWZ}sy4^N0rx|+VAV_`)g_s@y z{UZg`-Gjg0-aeGQ;2+MT8d`wj7x3D7{C8(AxwXJ0Qb<kP*afO8ZX+iUA)hXUH@h3G zhmQuksR58b6YA#CNyipXxa?3DR=75%O<1B<n7n0Da%(dJvgvqbQ?ayB3`qfkxTb)x z6)}$GkjN*BWMRgUUYNWw!iCH#+a$ocw>!zP_1ejmzu>SCaf6n_1_P}gBko4G<VZvU z4qoGj3e8mKCN8?6)2v#sV=hc%xxwrhL;>SiSn-*dBoM2qK>vb3*fqvv*F7j!37tka zP9d#0cp<_$69;?oA^L1oe8LKsg@9+~Ibbc2OGXe_t3k+;X(;q%k1Rm{ngqQUnF3J( zZCDglh8a%?2Zyz;v}U`nj&*b)Dr4~<;E01o`8YL$Z7;lB<Chpr_Sr3AHy|dOA4KY5 zkWkddj_nfC^kSM;uT22I%>rho?Dt@5#t94or;9GRp;Qb}RFNHX;8Douz$1ZgJ1>q4 zz{ha`az1HAcic=3l_C;&Z%p95)xa~gG@gTwLXDtW1={UM$B5*b;)MyAo!O3jj?u1k z(P)<Jz$3{HV^a>VrW%`#_#=ezf)Ga731JY9cQJ$(AANkadJct0ZNmORS9Vn(9zpIz zkPXe-g3P<kHdxv3it05gi>;}T_03BlyDvbc9BOtA4i2&U5c=-mw|zN);VEg1Bcysk z+4R<>K1INx*@^z06RYUiY;4A+erg8>VUH0wQ`M<RjTI2wT?%bd5|Je1*{+?RL}`c& zm8l>CyI4g4@<d$NlQq}#H|I%vVN5^LqC=iq9<oSnPMnZ`z$x!qF<MHS6O<cG{h3(A zlmhR!)fwHA9(UIVk6W3mG2sFwx2S>ukni&E%1-1`5dB-o!(0t8FB8ZpG2;JO^9$iz zDjV8pYx%DgY~4B<Mb1EI-d^+3W>Y)z#5rXK;#`o%;lwfV1QfY+Vw)495FIf}2T{m~ zLfZ6zHd*sx&;)vwFVR4STpt51S^&w@B5Qs}L=<R=`!7o1oNH8wR&p5?E>4d-74Uc` zDoiNVFgt}*;5KYHE$vibc)1%tOwLS&iFPWmd3(*rSz0E_rte|%c=i=0=^vKI6QTQ^ zdOXEm@4UxzkOyZ5k0&R+yD7b?6+4K~+Y8izJ(@yaoVj(MnXcq9p<#oh*|4D*Te#hH zfhDfi5yv$LM~-2fS8S#z*EY7bL46YK0j%n>%aZVKWvEdd`YjFrnOyULjr=FH&Ao^j zl!#;jR#jhhbu*)}zrTPk8T<PyaV@S{r9sKePLHP3*NM74T+pclYQ2_!LgvP1Z2xvs zL-aesz9ga(wfWg#b2{WX%Y8Dx0ESc{__Zmu=dy?G;kh6<?W=TB35CqOebvRmw1mKo zg?6EH92(~j*mBXXqYdiO=%~E5Bv>x7L-8!?@0J^ldZI2@`;}07EJOf93DMV1=$cGT z`tYE&yYLoH@dSnqD;D;^po8`7=BXoJMmcd}hp^zi)c$$ietSJ_bFDCBllX8)hz!%i zGzK^l<_a_5CikdWeJXBosZibsb<fIqQ{vWW<dYIMyaerq2^&9JOdD<?vH<{95lRrp zG@ziQGSQO0b47OBf8ShDM2S&Qc__{#ZT7{s)S;uFq8+*o%@?G^rRmX+jtMqX;gAM| zMT`x)2rdE5LL$V^O6RV2Gu*>S`%6OxR+i+D8_0HDAJ4`0ubLy?taaVlH^5ONB@5gj zg`-}~q7fc)OTjgZO+^{gjwu(noq!@BEpNw*oL^EpBr_Ctw4eS7>Dp7lpZtanisuIf zNlLZR7>|N<qA=GtG~)}-Y^G->0s}4U;@6o)+1Iz`MOje|ZAxAE1Tr;b6Udk}PeIZk z3K_b`L9vauQ(v0u3hL;vSVe6FJoOS!z|>GNpx9p;Pn6#1FW_cl^FTnR<A#6(89<1_ z#QZXf3U+u~GTotW^tXC!H<iH019SN|R{+&-0lxLkpLK+<-EG-a_B4eGOWn_D96FD- z%pw537us+zASnMXT00&1^I!nkeM^Q_8+HtEkyJ}Nld8BJwW%4~byBfijE&<ndx>91 z84yN1P4Pcw;%N249`l&H7O+^Hotu44`EWT3fhJTfKo!4Ga|qlUCp5U%<8I{(HO|2K zm4c*SE=ZvJZr2oiy|mNv2r#}VV0>1T|N73NT$n5{--c#vwhiO$%(uDhX)zyEyx5QR zeSmdQhW;=q!yjno^0SWBLR3?fN~4j4m;h*kCA=AE;;OvlfaSW}R7L%uD}#WEM%9H0 z+%}qARx+CpkF;stM1UKWC2i7XbXFO2T?tf&N5*XG2vs|oH#JM1HuBCUB)`i6v^rW~ z@(?8JAWS9$Y%WZs>@0(?C`{_5!UTK(DPg`?nvxruv0*o>Ok<UpRWcMH3!=iJEN~6j z$+LQ1OEAzz2}MvY;x7n8%rQl@y{Uj`6M|<9P>&J5k+wsS)aIYfj?8VLr#v#pWH}U( zIX(k2$KAB#yaH|~{Bnt1Du$Kw1vWHew>OvtYp8acAJd%zJYZRdETwYJEHKwC;$M!N z8?j>@42FMhw->-@9Z7ImKum!Io)jO505L^q;Z~y-fW9IUw*;iIfjMcm_T>1yYr=@r z{(q3`2!Q0Sv>a)!oOM*I+XIYFJmn*s*;gbUJVQy;!jft=+kWt7NJPXe<)?5pO{+Jc zA@8na0VN&?;BHOPlHAgaFgTtFu9=VV_=b4iLF<;{tZ7rwJY&B|^Kolx+BXyzBbDq% zjmR$Z?`@|oP_Jk)pWK2Nr2|Ly;+!pnTNTW04Y!Ulj;Pnzg2l4Y8K+<_o~V3&rkS{P zVFol<nJ<loZpTBn^(7aorkAsmB0<(IytKedz)!wA1%It)Z;;Jma`~uug|~U=TcgBm zHV@;&WW^vQW@JTW6B#qox|^LH-%!Sm(-zMu@+0j1GJe#6+Ki6au=5!C90R8ugpQ0X zyfP+lkcA~hR*`?BTW%asJVNZeX0iQXh3L3Tp8&SL7<LOw7|+7M7p8VQGVoZAf&F_M z12ZWpGVnM@KISG;83Riaw=(d!Gw_%c))KYATi7>P#>9W*OiUGSE+D6gs5Ks9{hir& zRV(`zIwNPZQ#Qw+z^-Hd6)%c&r%U{OW8J&X2%8F=n-li#^8Fr-u(x!Cs>}#0d72c2 zBLs72CQo(eq1X*O0&ID^VP2{Sk`W9r(P}uDrC`t+d&pep0v;~GBDhQ{VnZ{6ab4by zfN3Vtz<26qM|iA3-kq!kGuL)z`}2W^1H5oMqC|o!@UVq8Ya#G3lOgfWfT<jBQGCqF zknp(yMX(e$g$>eeivK1Y^R=CK1z_@ItCyO4qa6e^kt%fsrjoh0yfRiu+St&H{Y>ZS z0&~#m64Ez}IOD)Ny&&=_L)gKVu6Hoy=4DI2KMc8me{obW<A7X))RBA9q0EWhp{G1@ zM@x}AHUn~Hf&}EASQ}TGa-Qj9KOfH{7jq;sy_Sh`G4xivqHsW->19?s(~lkwj3Z?U z!~{xb!MK5cXS|o`&{H1ccfI!#yS+Y7fO?Jqzi;p5#(<at3FahpKsg(jlV&}WPv&GY z^02t7)&ZIR$K1ae{g*ufN++NEmpx$tFtPl`W_<D|wv@-!80U6M4)`kB^d0xi>5?E$ zAab(*xF{c~c219BpG~Q8PXwV06DCjFLe1v%xZ_sVB3F>w3Oe+|l9Js>7{?*Y39|bg zW32~7*rZ1ii5q6O`0`X?SQvEBm>k&!Z^)0#(p?hTwkA-0WK6p4II{E7<32Jx4s#8f zvTbC{r-+H;^BdW}`MSZ(Bis48{K#y>aT?i02~;1ME&AIOY@^x5>2V(!9>>VQ3i*+F zVh-(Jq=cB~hRmez-O@@pr=w@RjCOS7K&arzfx0rg19e}oWngQXjBGT;w()lHYo_n} zibjXlJ7x)#-BOrd3Y1yY9rLAm{n9pbD!$>>0L<~#y0J8Nw(pCfrV>!?I=d|VElcT; zfZjVJ(9;)L(d@(u8=CQrPC!p>UF4Es4nTjdJ7-pP_K#zHZ80TYNU~#!9T*4B?r3dE z+t%Y-3qzxC-!N@O`SmVaCT$~1eC>`UTJ5#<@?=Xf^KAD$pUHJ|9ecqb1lP*p9iCjl zkyo8s-qb9%O!+ILE?Q~c3uRW2sI>XacuqvvoSM4i9s<&q%grXSWCV%~MUiCPqX$e= z<ohcR5JEDm4%c*w1!WY5gj2AQB8~6MF$OCY$2gJ;os%mkbRO9G37X#+%D67HymErt za}yJp*YqVyqJ_~4W!JMm<=d!B8nUUo=`=9Zd^dBo#|Ho3ox_6x#8@w=!A!wlNRMU0 z(f|w<>`=gIII1jw<8bbNk9*)eoTWGp=g1?yh~)k2_#4I_D@mf3Bu?wZQJoLMQJp-i z6X)XSR2-g*gM)E!CJz2oR`L{9l(YkJG8~EXXda4#qLMrh2dClSESxi*j!Kfx!bv#K z{qw(AjUtjSPzlKwz4#@6^S6Ju_V54Ur7!!(m%rl7SN_vKuRH7PbDGul)eY5+)lJpS z)h*R?tCQ8O)$^+7S1+huSiPuvadlhulH9*btNiyW{kyDsdG*!R*HpJxUt4`$_4U;^ zRNq*=qIzX@s`{qtRn<3F-%@>R^=;Lwt2?UyQhj^%9o2VMcUIq3eK-E?s=i16-dlZN z_5Jwwf$9gVAJV_w)el!cf`1>yziX-=t6p2Zj*A*50daVG``JCW6{O(D`Fvxy)xNB9 z?(eDD;_WmmG_jyw*Kkjx50jrw^8^_D+!fXVb<{XC8&jSrP8h7dwhHmr#eG)8I8LlL zt1}A7eRm(@553tyxW2}&2gCJ8?RsIj{z!F54SpCM+u`rt3zO1z^I?J0i-pNv?duxu zLjgqVk72tH@sU33kJlfxYxT$L57@Q(<MsP-4HUS1HUB!uUD|v5Q|doNYfKS?T2myC zk_)kqw)2c%-;7B2^Nim|q-#$@6!l}~z5wHy9R$Z6^6w>p%mTAh@_6e#xRo`pi#a|1 z)pL5<Dvd?Gp)zBxICj_C4V_5A^J?hj-NFQW)+yeE08GGLJv#yVZ0F6hKHED9x(=Mr zF~L#z;T`<JnSj@Cw`&oF*Z*SIA_}i}fC<>()nWozj^R{$*1UTg9~L+`qpqC^j>RKy z<s;4nync&at3O`9*{;<eudm{Dm3UietbnSoT}o!p8>?b=R*ZX-Jq}y;AX!KIYz%MM z5X(|MyQ-}j<>4eEPPJXgEYz|Bilsuys{pie?A8urpy-v}5}P%z$v85k)srJ{yD)A> zNgUaT&ee3{yls}>eWh_8!#rUhr0S$yfnlJd;GNi-zX$TV8lS3Qq;IGWW!n<t`PVzo zcsP!piTkw-y9}6GAdv#oqsu3|4iJ1D(Oi>EVbX%lan*TxEr02@Nv<2)?S=@f8?Uh& zqOfkf8Z4z&FDEl|qYe5R=@v~@kL)tOA-H<5kkMnZCCM_?czYF}aX!|KOYMgG)s0K+ zhWgcwZMabd^jAY3?juSs#tm(wyPa1T0>M)W!T$BmBe=V;Iq%!-?0k0JylgiLF!%;N z;|PHE4gP)}a3mPFl4B?mxs437;(*x1#T8b0q8KZ;Qf+y$xGU~^i7|g|yW-T1<R|rp z+J#)D{6V`rvt@~2RU2%QxCJ~XSDs|ht>RND2uDb#0cqB}{DB3N{s*aVcUjK0NdeQ^ z#WCMT6+~MkIkVMG6_@;oDB1!TTHVhB$`rQOrZu<yJKB>6imHcN`Qcp8Ka9{iQ^I(g z?=8{y<&`I$T&er*J!k?o2~&Hl5{4BVlN*p9pfW_X&ZyZ4M%tAa$-mxtM&iL;6inEV zs0xe!RRtE-lM>w!!rVN>IU*$D<WVV&{>Cr(&^aU)1eZ#hQ7H1fQ5LFilc}nuc8-XP z@_|prYp7_vA7kayYrJ*T6J^Q%qG;WpLw^*lM0o*IyhH^uYzSqAZ&ohQVR3!@T*HEs z%PUW2sat@k`p>GKtSWS8nSo$cp-mhEEO;`;=Cg?7=K5#|xHw)1yp+pa-uFr7p^k0& z$rkPrG2jeAQ05wLNL{|oqNV?=E}=Z4>EW|R^9*y2dI3^E1rPs;gaEQS<It+}ok{va zMl>CsCSc`@+w!pSS`>0@RSN4Cn-i=q6xeLb-2XnA=@kU3INA50zlcc;g<BG`-gE-O z%WWjMX{XTY+_-=An^G(|v|cON-(Vjv%l%T#zMlK#rMX{f+0Syn{6p@SF05>&*8bjp znZ)b`lE#X83#vo7Ha?@ANyBH6!}pYN_#XJ~P9_C~l$|gu$^J&K5J?HnzsZdNg+H>} zZ49p^MqZNpt(yHf_sffOztplH=6-om?w78BMYZ<A+%MhPcXRKo$^Fuk{V4a#U)wK^ z#fc&oQG+y|eTion%mp71;fI99@i{U6U()vYF9TAH^OrgBt0T4STe;t!pZl$reKYsV z^K!p*Wk1jTqEh!@X0m8^_S4)itZq*>=Px}i{rtK80wi!d`k8YY2u_o<Inzh)>*K`b zbG(CU)-M+M7;mx$z4Z$D0T$W6|6e!$@-wgh;C~xrZ{ag4NKdJu{$Dw#{#OZ+*MHz0 zAAHyAK9WZoE7s2}<KC9!hRe8T;uQ&lVB=mxu%5w|@^T}D!eo8g5!UbIgHOkU@?Wzb z*r-0jyJz^_C=PV@X?_>A0&>qjm0cMIAOV}z#z)!0N;<42e%@=>p&w^+wfN-Nk54k) zeNyZv|Lp00w=2+J&pt8r4#y$%{&@ColU+|e-rubR{?*+-^}E#|+H`k?->n4>)ZNGV z-L5c!b@#D;w>xmS?mouv_O!J7Xxw!?NqZQcvUn5Xu1Vu;4l0QC%bn*;56$5n90`bb zAOnYz3_Oh>>2^+cW#4|+gL8VmSOojJ#DTu|@>Db;Rtp>`;lKjs0mzdpG=}B?B<q(` zimfgI>)J1bbsBnuW|lOf`*(dCSXK)i3O|7LCGw%Fo(p#bXf^DtqHO&HAA3ZE9uLu| zqUABGYz-r3(^Ov=M)tPpW0TF2-8W%2JS2MtU^+awOryFfjp~Pgq-giUh3s*eG*;Oo zZwZ8LW45=zZ7TS6GUPwQfjx`^%Wk+cK<#M*%8p44K&i7^*x88@iwqjA;0P%w@qJ|x z>!0TH4~@_BEa-&w^YaOew00{2(`;*1Lku@2%;X&@_vv9jM*9*LJudd9`V2_#<wXcO z?Bj)^4%m1e{?6G*OjqH~8Y2Ilu$}-|yHtX#Ya>AILZva3>du;XeBxtY;qH9dXlfh$ zEE=m<PBg*5o?<AC&$*52ylFt<Ucwt$unlkjNm!0MG`tx-I=T#I?migM^1)_aM0{e# zx%lP8ATA=<NV|wwMzGnonR<AFW<9P~3u9>-d^I)bi$0^FL14%heZ&I~Vv9l5Vb#Y1 zwcjI-9%wjP?f1@Q=<fk`Z%>snA{&!n)Wa;OZp_NSm0?JB){bf{y`bwUIHP=Wmo41F z%_8^g0PFfa)L}!^!D_yJhj1LlrWq{TfuTpfOa6?YkA4p1LQCv5)PqX6xjo^=Yh90^ zgBYm*BvB}I@q2Q#jMF67inH<CgmhStVrEPcQgHE<h84!0rsoCu={Y4nG2cBprc-_b z0?`#Ps}|8R&Pni7l6LSsgf3van^sEelfV|D^9Y~O_hxPhFxci$f0tm#Lk!_~w=Aa@ z#kU>zRDcvdvPMam7=<%oAYPbdq8u3pmYoBNBgFU2BUOlqXrATOdxuvKC$}9SGVXnt zx$TE-+;*=!&uu>@q^#Pj`GClexQ%C3iA9%z0f|6PiXsiSmvLJ-fC^sHUCC`fCD?Y# zBO&|Ua+_5c&`CT(0cLi`lXyzkK>8Vq?#F5Yj;)BHXw*3AcL8|^N5}eQeH4zv167_E zK!53H{DGw_2P_b+Yi0oqWQqstn%m_EGKGV6y<n)J2620E80+rnWn@5x!p|9AWa^Rt zLIF%1Xs;d-qaU&!f6E?OLvhG@)HU<ehpb0kbGd%Vden9AP(w{q<3~LUG3(!x0NuJF zMyk9{rS?_K_|Exl@1#wYZyUraeD6F<s@5j#AJ&ZTS*f(9c`Qb03!X8Ef%szQ()P8^ zFBjH2m*VNhb}MHG1T_EcXtzRK#ZD=@0<NJkeZdvM;-|hrw6Vnq-O!AUueX(zd!ljV zJ2UF33@Bw&urRjfDC|7fUkS;ZQX4;7E<^Sncv=cSnCDDkV+m|zk?j8C1Z<=O0A;T$ z3ecfkQW(1LeYl%i#z@?vA~1{~-zg-Vo4Ro%*bFp#6AFo)L2D5wChb?4Wq|U5Jy`eX z)p38!!|`fnQ{UMeCho4hDY!dbfPN*5mv_Da#wJ<k1@-`fz?1`hP`ADHKE&1_4(y;= z*1_N`7A@D{19r_?d_eC`-~(pC3h8S74)nHRfcjl_FFDSJn)u<ugw7uuKeVRt5QV{x zBU&XYxNaSGhqd4sONctQj@!1_t-?SPwA7?SR-iyI1Q&};QHo&DctN~0+^y>UtOTXo zZ4jF^7THcVY^y=$yqbn~X&RavWNbbfVdyv-XL-*AsGs`r-rChC)x<}%bWoZM_7JNk zVi}^BWrw?j2i7Bzj3Q0wSrfghjVP<|0TMOC;sj_+jI3;3n8i8|=&bpKeKGwUyS!Yw zU9xAxl0g$DnHC4|1YZ)G8G$t}cI#+oMiyqjA~;#tE!$ESwrr(OKj%)!$=byK`}h06 z0QA$(kkbTTSjpF@!i41OeC1VE{)58eACy+iY`Pcz?tSEaa6)d(Y#JUOQC^dd$z8^@ zrsGfGAJ56vLAejZAF`TwS}u;tJ?*s9kk`~`WI8SPPagf4$11Vu@%nqh6Q1zICqD6X z{vpk2<x`%bOedV0i$A10Dc|Y2f6hN7Jw5OF&u88f5})|D=7le^?5Dq5%Ri(*Sq{{h zujC&Rp+Y89$c5U3d?^02oT!u)WqDB-A~%ZvEI*1FQp}0E4F8xB75-UfR6aL~*-_!2 zWl81pq^?G;6#wl|##BCMidj>;@b5j<_u^m5nPS$|Zu|>5Q`dOT6tkwL@$ci+>+$b~ z>W%pKiRw-GcXM?Q{(Z9gDg66%^%ng5O!c$)_qpm`{QKAH=NX)I17v?mw$;9%hCRjp zRzBa@pH3P+0Ds&wF?kg47pf+U54g@$cm-mbzo9R@jCEtzDo~)^s;sxymah-yPZ?~Y zU}LcA_LrsmbjPFsQ*G2EpG6Or6M#w&GC1REAh+>;1}Omq<QD6%neT5he-VDclK0Lm zTr7>SOSEbfs5TM?G~s$l_s6J){pFncfzDfp6(K7Jl9bCO&4}h}?k+nj2O&%l#yk{z za@_TsICnhuKo>}Zuw2)tg<}DYtXClZCpFyt6b8<evrndhC*UOaIY_U1Vk5?$^bsNv z`UyB7c4!M>RUCy-&@9h~-J`y!h;~t3!FZ6`g8JIW>--vXP$D$<f`J5EE=EdVaK+8t z2`_I<cyXnBvkhQ0K$EntObZW#0A%^xGKHY@r2O{5WW!L|y}$)X3f2HjhCtw=bcHf4 zv~4g7sXaoBk>PuS>&gU|pBViKgKHbm#J+a~JAAv}P<S&Sl21$-77`Ws4gF@P6t-)< zDfM-o@y3np%Q?a8&loS7>4)#jD|L=JVw&R#cALgiShv0^_3=xy+ipmVlIOp;_9Pp} zqq33zM!^%;7y0i;<UizSHh5UlbZRz@d?x<u>BN60pf#j(lAt;MyN!GY$~EW8e}T&7 z{P(Ve7w11@h7$1k@ZW9Df6e*vpYfboss?4^zg-C~=RYK(60UjkpR-XqwM<!MN@GQH zCKQ7B31WsP6(g}Vkj=!*_eo}?xi%hwPh_?_c`+N*3?@*#)h=eTK346;lR?b%AS@^` z!vsYo!6q^Xl98$NNXm&7Uq{j!N{LvxCZW&Cio9BO?_|vz^Leo%F@nG`_rb7hi4k-w zF#@n8Mvz*R6C>FzGse`fO^`Stk-<wy0wJT^2!bR^7NROANSu(U`4eRWbP%RN_LI2q z2aIL5@Mi&nsr6y2C`EC=AEtr}i^Oo(CpiDd1cWC5w{l1hha#to<0v3L$*7Q0f{iPT zb@r2WkQHo6n!D!7J4kNqprZD&H|7E7WCW-LH<HBLeRxE~=MrX|m)_OFOMS#iQcKZE z6q(3NB-d^i5ofk)sGymmrfOlW7UnNXh<{CBIb$K6InP*;j{;*wPHSN-yyKiT5f@(m zhj>-eGf?Qij^~UVW2D49|CV6+xiJqiqzMaDQ3w<LjBO%Ox~#u%kw1_;oqii1vE+v1 zwYKv`zN<XyPPzTYZ8TtzBfE3B2S#a+ET*sVRpnDVLw3_-`UX2hR<)&%BAuGRlGFXu zgc&Ey6qyM6=O8|VxYU6w;bO^1Plj`P+ia+A+E6;g+0(B<K#7x1MpKY<4CM_tvdfj$ z?Frq^kyGs)Ic^42ewGHKNk&qTZjtq(k<^oyZg1KeLX4oL!<7jC?F5N4A(FI-s36_u z$b<>EMOCB&Sl=kt5XMcQe2w%&vbUXk{rV2{3nW@<Q7MyTw0XhPD7M)_At^mox!m*8 zNY?0#bUTo+<#a=0IEOwTtpuJ7w)hNMiO^UUKbi;Sa?mB}{WQVj)I%EjAyBU&dBH?= zbhZPtD8_!nMRKRGzm>4aoSl#h6|@qyy_v8H!k;Gy{kR?P1w*2<BHgV{!U8KoTAapg zR5Nxrt{Rob*sq5y#6{?u&D-Vk65Kt!5z66D^Wx_1CpZ;v<7Ke(_vJ74;=%{3XS2!u zwguSVq#i~FKyWYO2_e+N=oCQd$28D`X`okF4y^L~@$8o>xwcrBBsLr_fZX)hJtB5j z<}ke~It~cLv!tRFq`)KE0}03|MH2ibLALd7@?5crfIVU?B0=`?1=xwnja66&t}M`w z0{m>VtvH=G^AYYbU<-J}rt_CMow3oNv4uZhWbLy7e+tM7FQCujbj}7lP38009JVar zWsXbp#`LJAECi9uaR(ew{Mt%NC*yMK`smC1G`_$fKK#=-dv#pl0gP=cJm)7!d;()j z1aUTR@#`~k2A*NF(<wlVnZt{KwUn9D-8ui}a*_j^D40gcBU+V!(_NZ?qsEODy<7IA zv9YT-2l$)|f&d^cedZNdJHF(z5Hrgkq?!#cfrv5NYYg9ia9zj)8;`%FdAmJP;5(M+ z<r_6x*<Y|>?h;gKWR_RqMKqkRAa1x@gOA3E@kLII&6pTh^5;$SoEV)A=eM#sY{B5f zz=Y7!Jto5eH+E*UQv%6}#W0zOz)<)sA?Ga#IX+P~v`myfjulvS0_Lsg6x=~N1Tdx} z+vgM9$xm&AGQst>1eZ@6C2-Dr+5me#Z`KZTYnVkTZzgWfj)dgsJh}%VB%Aczd;;4v zT1frxB=x$X20Vt!0^0y_7$o5P*_w7p97X~7zJx!g>nk;u`N%)eM9wt0snwim@qn_a z8Rg#x5+F{<R|t?p6@MTjCIpx=i3Z4!C>kh&Ln0`-Kg<Mje{u2sLkYBZS-pdo2YTl? zf_*vGBo-iWTBL%~*|h^CCltOwPI=i-<66@8rLk4#rXVIw02Os*XOVCtThsQCJg01P zQ(-?pJ9#bv53@^z8xmHWbN)WhIdc*S`&}SxD@5DwgfIPx1eWvB-yI4cHI!hAO)C%v z+I;5MkwopH;IqWKwyop{yq5%i@lfM){P9Kc?Ku%R8|q{XeSxjLP$GXmwonKsm5cb# zC(JoP*W?L0r#M@i2yoF*h_n4VM!7f-i|OsRCP18oe|0D%#5)q{%PX(c0j%F5(q0fn zb#CegVg409p&d0j3VwzZeEv}5tNihK^Q2%$bM_l-O`C1<Q#4xfd6k!&lCxN|Ur&g0 z3jW1iMZvevD9pc^0C5UF_s&u9Oi@s2Y}yed`jk-c2Sls(1LY|ADN^uR2r%$RZ2U2+ zY>o~|f2TS46SnrudC$SHf3tiJ9!Q9D3O?hmqTtVep5M!1U?scirwI_J;2C#@g532o zf^)s)TW%&jxMhj8C*W(onb%Lzbxkos-B>x(O#Ka!&z(y~OLIMMW;;(BYAE;c^zhpp z>Aa{Doj0&mZE>2{OwARcDlw<mZz%emPq?e-{M#?(qkaZfqVvWCh|~E`4~5P~!^e@N zwz2IpVvQTNe6qEx%M17fH*e)hcq4B<W~gx?KOY@_n<EL2=tROx*xH}4t9g;oijQ>) z9c)XO^Qp>xWYGpZoa*vx7arr@E!AbQCfcP55GUb;0GX%dY$U`+van}Rv+&eNpb}~O zdg4`^%yQE9<GgwDP~#2!v<+Z$cYYRkBH<KU)5fuRkuaR~RxWL?Oqg>LKH{z-;hTPt zpM?finuTvlfH(<lkJ&s)2;kk~nXF1-zL!`#X(kfBolj_wSdN6(^5#Q_8t>reLxhsK zlW<`t626<QEuZ%+T$l^&w8tghl`!Wdv^{9^@n3_{8vIxoUlxvU^<VdXCQm{GE0J(l z0>nvp{GrT3y)%h$DSbx;BF<vGH`qH%81O}+4|8dE6Q9Q#aSt-U8VtoIlCgZf5xHL_ z>C0hL)-`P5!E7Oo<D+RD2L}}+))uk!z{k=9|7{Ow$5)o3_Vly&y~8U7r5C5ui?6ct zF17b-_7`txdr=#>W`FUfwikyv*x6tFWZR4PpWBPKw7q!WxxM(gwil0_+l!xXd+}a# zd-31eUcBerUc9aCMQy;D9jjkzdr>ES&i>+8+g?0kZlHd>?L}^ynF9md-u9yM@MHKW zg_06~e<!`;n^=@6Kl|{$mtORVp%nSqU;JU)i`;=Thv6M)d(rmW%sPkvtL??K>E=7E zqTb`1ZfX<!hg9WRs@B@-9coa2KOKSFxUFJk)ZsEf4ziFCKOy_{xfB}*cwNUrJwKI2 zL(OMfR^txVHOXe;uWS91k*%;A0ka?`W<X=a7&u~gF_RuaZI`Tx)Hu2~WZJ&UPGq%w zeAYRW;HJb5>jDzrEW6HM6dF8;izKbN_7VV^<b^r^z(Tv|R;AsYOMa(W`yk@8Dk<HZ z`Q|A1&6M+jLHiqGC0vx!MAkX>Nuio1w@Tsfo=cT+&V+L%nuiLSD4}@_{*Gn3Irz0h z0p0xp#h%Q(9FL-CvRH!zUD=Y#JVwsPO<)<De?lTNtK*)Ke!;d5r7?5&#&Ik_mo-1V zRD6+WdqFdH?De{iL(AeSIWbpfOSoMFd+0y)>tGP*WZ~O>9*g5~IX5s(S()eZo-b+Z z`Ith__wt^<yCE!O&9`SP*D+gyCA4gbgK5a49rLhxlI??r8bsp*BYs!FlMnmyo7$MK zGz_ACCG3+BO{?oAdHJo|@*BhW<!FFlrSQ1i`~cjcQm^@9qCOUHWKNvU+I=v7A4zn? z8aPlGrx2uZoW}5wd^RPL?nsFBb?@OJE_H*dkOrWt!V<@zkGl6k(`&e^u^hMV*MU#o zl^S(ExnF@=_i<`{@7;$?EtE9C9x+roFv+J#^vM8<#(`uaOjM?2jdW+L*CBi9j_O9P zL-u4}tDHf+J`&Gz|8aLV^3-rm`=C2}RJ`V{-|p<o6(&=S;dz+>TFi@q3#+1>O<(>g zoRNt=QMTBcec+?VxlpA(d_Z2_^8F-mW9CI2&si2mqRvMXB7b>rS)ANv869cmg+L%v zdP<a%<s<1e(@c7n7E~9O#!&0s$`G82@o|Hr=?xq&iCt^TJj6~y-kXR|Ue9E+Kf<G6 zGyITGne*;q-IM7w08g2-^SQx_A!AMzExD7IBFbv=Ew8wfraVh--eoHInOB1fx&wow zTuj`Yx^u>}eS4sR3#jGJcsK1m-f1vzF#-JRov@T15>ybOF2!>>sGn&A)lPLwpkjZ% zWa-zgJmfjj!#RTW<WMG%H0}jDQ6$jjMla_^pXP=N_WIoT4^o(RPcJ3|u>Lt->nMQE z%-@@s{}=DbGyl<t$o#h@3_0^NU->XGzisk+_kCb43>@NSXj*Z<|9>z+Caaa=o@_Ta zu*D7L#yw$d-22|x-*(^o-cK9chVd6FcdK^y10OUxD$4_A$MGoMjmq8F<7TD1QMmh& zw#V(%Q&GOVfemgf-2K?cJ+7p3Hwff=u(p-#!TLeLZ22=h-q;qlV6|_6w(<!eImAVF z-TOmO9*QZmeK<){;w10TxNm@dwj@g3>}1F;uyHrI_*s-RRD-J}yp&u=k-4{8_X^vP ze7y};*?uOTv_!isw;h_PcG20HP8S$RyHRRgDMcF)H<6E~wRiNVqNXOeDMYm^JKDO` z+971Yv6q&+PJ`c)2LDytTEnH0RM`XlVjxg3=+6rLVtX~~l|VWuTXuJq+pJ}(?5$ct z-D=1U)&YJR@W#V1&k){<Xy2N8_KovT6Vfn%Am4f1ffr%hTO|b6zP_svY8)v?9jyI1 zjQaf4w~zWM>f6T2UP`y>!x^gAw8f1bBZ=NJM-ANxrx&Ewed9iA#^G7BiozHSXJ=aO z4p1iE;Re1Z>ET^uk3;62F53lfHNHuV9vL~b(7EW+h2(Lfv(M_15BFEKH4eq)l<g#@ z13D*b4VrJZc0qt5zRAhamm?<!_o|eWXRF9T%ayAd#ey8%sn4|xugAg5$LLb!IC#m@ zb6$;umwz(UU|U!+81PygN++Vd-N2KAV*tC{2E=2-gD602g*a$cPvD6`tHZ%dmXI5? zG90{Q$bQhOaPab!A?>d}843}#Mry<)D2e*^C`GM#fzmjd6xi1QEgEW%(Byv<TGCc_ z799ZZ?86iz`gXy_Z%rWytD1A*=yxZc^QyFuq@fct#$@j~d&}N~15OT*=R9iPdm10F z0KRc<i^tUEzN2x$3gFflthWiqFw;2eEOpG}>@1aYKimf6!w&(*TL~lUvZV|-FM6;K zTl%%d?nEyq58H*TAB(`i2ncoOWjeAdTk(j4)6n`uaNmo9^ODi^UgHE_(kJdUPT=JU zzG(-6={^}uaG-m|c0}NDcv!O#3{vkiw(Cb3WMey-qzpFq8{g^r7+s6Sb<I$6zxAi< zWkZdJqGc2c^Ai3Y2l*AEigD!PAXUhmb;I(d&lxxNVd{653iEO5`lz9X8XRdGs5Ws7 z<MGZT{W3wJALt|1HN(IChFD#*z?F|w*NF0h-^7eR<oowgq4nOz_j!TRQoYhb_;m56 zqT+DG!uDr7Pr~#G82WpBP1Tr|bzw&$rUWZRV+M5QB>GHbaTcEd*YClUVpT8qdk(Te zRfpltdXJnxZR0`gHX}FwH=khH7EbU<&TmZk{rp5bQ>Hj9v=-(R=DPJE(>E!VU#7|9 zrRUhJlnT@(%lPrNJ-(Z2(o?`zF{)<*30Yw^gXah+1S@_)=k-?v(VeI{Vuj~3MO8o{ zfWaxrhJvbCCH~h5a4!hW*JX<XaDpA|3ku9wC>oIcmXIkzJZE}=fkdd41W;w=5uzlQ zpc_KG1BlNnV&0p^y^;#^cO<yoA!OqrVig)}vN#qozX~o_taGBuCb-GOP40v~V<*_m zQd`$oF(_7r0!yGYdTaHPJ@VqMK`T9v*PAM`#%ksWFxhYU=TPRPW7T;bQm~OdvZ$0m zF|D-E*&n&I-HpwB0L4%Q?7py_gLKs!iMG6sd*o<Jhi9Q!qQR6{cGLQ3So<m>J8AX8 z@@i<z)KFKhUJNC8s22m#O>VY&F}8Q@TtY7Al7!?AG|ti~eu5>Hv<<WKKqwi5>;X>Z zZH2=;nwp1(*=-n-_Tn6L3{Clr+U_&zK(20#y@-=_!W`55VU0f^3X(<2s5)d0<Cl0S z+RP_F!Xf*kN~OxfAG;6`W=NRlDgkL7g1HBR<Kn?w5;+BP2?e-AGt;RFF2!Xc(S~Mh z;up3raS%-`uPnJ5^Uuo)5u3BOv?aB)@%W=E!_|c-h6Z9oB)H-3-~9vwuneca><=&j z=_f$>9W>OIozZnr-`!UqY0@ob!YBJhMIgjb(fS`XaRi%8I+zAEmTzRXbQ**kFJ<Qf zB}`qI#&@yR3hSj^jS-qvrC=uyPSTps&dfqPR%D<oSj{)}jLXYIea4t;OD~wKU(txJ ziQ1k12SywLAL2+pE=lkJQdYn5YHbV&@G!6Y*Fj(`AkjT$MUi3XygS4yOX&I04feoq zKS`b0PE|V6TK2`8^c<zO`hm$>GSlQW-q%|92N14>((2BRH%AHI`&4&~wJ9agvv3fB zJn2ToPWYpcYX6~|8UcYUC`O!!#F&;v?OD)+_CY9|GSZ)2dCt0#0S3A7|9f%6DlK@% za{IIEAeit2Zc~kt(P#?DCPDBF@D1YD-TCB7dvHJxa#k@|Y7gomgh~6e<CLU#cl^ru zsDjQw8Ct$KZgFKc_W}mj@A$kge&zD3UO=o`uiOVW8T;%(t7w6j(4*OD^<GluNL(&p zgQOfUu%Zftrb=V;M(F%WVB-^XbwGegBj||9VO)E_u$+9>TfNUKctnC@D(vXNJO~GR zm(K+7_QHw_S=M-(NxmK|ldryx3Zr4mwPC3W;x${46lJ!frK|vENmxaNu#j?Slf$tq zFD^hi-0HnSvQd&^(Smea04!-io04+{L^OovO3c0}2r2P{P^DeA$4|pG;@U4sylrVl z0KRT<p#E0zhAuhDwG_U*vKFy1(ux&@7!__UM7d*YT(gr!=!gL|^NPe#vBH1F@Uq;C zFb3MzG|o#vzI8x4h8v!uUXUp{T?uHy4+n7(k<d&_!lkRgY)LQV^n~8QwE;QvYr%ro zJC5J7)n=2}S5(2N)l!KK4(&DROM7W~rJs>@tl>cj)xr`K#i-Mw-+!^SDE>f-)O;<9 z*HlS0u0_F1kZhGOwZ(N1h?cUfg8WSS$5QYBTDL&!2w2Vg6WkP!k5aE)xIKqn|8pU_ zJ=7ATt$Gij9>sZ1QwmzlR@O`O7)Ii8=gE?|^QN0gNn}#Eg>`>C-k7wwGh}A1!GW2o zS}8vRm?o3&GL6D>km0prTA~>^C3N~Qd-EpP=4R}}4_3Ypp67!;-SHjHWr{n}sem5< zl`69F$)hpt^KG8%ZDva*uO0^U^~w>IiYAQdOUMSiP8*Np;!-9-R<UsETkOBaT#1qD za3Py4Tr9~yhO%J(PRJ#+J*l>~iR@)x+hjMz(}X-ypG48tgb?4-Zk3q9snL?;uGU;8 zk2cqmP(Y2<y>Fx)?YHsSW^+=M<nQ}=<KZrL_VMDf{|QTa2YG3e*RliS#R2@{!_=$u z+|dpw^jaF{1!<hVqn)K~$vRm*niRfl%nX)Dk8mM+gbUFlT!<dH0DsclU`5*8sxzn` z+v4<Bp9SEyCEz@UZDnmC!$kxd3}87z3#$yq1ODr6nDrtoF(!<ktrR(st{`!)r^(VK z4@g?hqCVMXES}Dy>3z0Vua_0ZriGx01!omqdMZ8Yz}}N9kHZIizt#A#xQ%9yt>=@s zDeN9g$kP0B`ByfPUfppbnSJRKiK>uh3~eqny~-mFS}$Ny>Amoq2QqfJKe?K&&+^LS zV0PUfze+;a<wVe;Q;r*cMVub5^NvCWXj)zkZ%FxrnW5q$HN%BCBV33x!i6{k7sFjy z-A|ii_n}T~tVV)?MaAhn5=<BxWi5{XHO0j1D-!d#<KI#!RuX0`r>4j4dq7B?5i1hD z*ON5hCy<+#R~`$Ar?@*JA;7b62%M0vLZvtk2-Y)P@{O1&j>p2*X)<1wKz_TK7Pev> z_?<irgT)LmeAfa<kQ3r<Q~%Hn?Mr#4@ee7J&!pD>zD&Ld_wON-?_G?vm=RI#0<;<m zyn?Z?)J-lp1jxX{LDo3RS`}Ye4tsfJsaw1(=8Xi~3{nRkti%yLUFEc3EmofHh+H`y zmaL3g+}6WlV|v2&JC{a1?z$v98?rh}PO!<=e&iuxqB2HD+naGyCTxP+x$4^mk!wFJ z?DPXuSW4e8In~;f`G8z=MZ_tkf24#q#t>1kS+>JShx8Aw!qG16_0%X{(;Q_s2&E*i zX^!@KY7`v^clI#7;&dI&eTSrAsI<Z<xSaQk)~e6V==tE~D7%U;hv;<P)V-bjGPBbd zd8AUsAL4T%I@iY<!HACl(H&xR+X@yWiPaeQe9P>|u{ItgRNL848=CR$>+dD|&61KJ zk=+#HK*xvx7gW&6#KWipUO_%l_yz9-uV$A<zm>Aw{MIB2x1>%z(#7xq8Oih$SrG%y z{snd3p$R~Z7+xE5qlz8k`BA@QpI6M-=Y?&37Tizr4x?+}tz5_1+anCwJL1>5fU_&^ z93l#e3hc5raFo#yb%69Vb3DPi*}iXmkViie52S1-@&84JCc0-y7=j#HQo)~Mz!seV zb9Lmc%L=?j?m)#hF&E7u&|qyVNzN?Td7GNCjeoVWN@V41>XzZw_tq5N+nnCpXyH(T z2^K*mk5>O?OM24%8$3zhW(h+X`0Tf6oVh!&_^=O$)NToIaQ)3xwyl=s7MvnylaMWT z$w!N1-I_pgyToGD<8eC0#R<%#7=3|V0wY5*Wl3&{N0u1nm;7*ou@X=MGFYN~J~u-r zT9<hgl(+SU314pTBY;tQN@zrHHet=W!4d;;#>V@Rk=M;Nk#0LJ2whEb&7uex<CJk_ zWTg--i=FKjz-bC=MR*V%uv_*s`Kl9Z|L1H16l}c+Tx}YbiyD1Id<TKKy};CDETog> znL3!FE@z6&xv3f3aHh5d$yTumGDWc|$3T)a+xP0?R?y9<IbR7hwn6WC8aui$!`g^J z3jtiRq~*9bo0-UtO{YoQt@hbx%Qjl4Aa7YTO2G4StS~nx6TCh*Elg(iYug0fnjZHF zDrVzcQW7aX+t{9yGji8>D|d~yGCMdNc1_R+vV>6LE-;sVC3!pX);Fs;<!pu<xM`OC zFK;NY5N-L!sO#K>GLt31;J6DrFbIEjpkgZWhGuMVj|oYOok8L_1GG8^d*G8r3xs=A zd@?si+efLrC*R^GpH6FoVe(-5$nwDa={$L+3L__{`pBgYP~~{IR<#f^O<C$wn34Do z<|iB{nt$XLq9I_#XIT*|=QU$zKFj!GJM$LV^ZfLl=UY<d1q>?bQc-TI1~|#4Dh%O5 zY_Md6*q{iQR_!P+!?Jl`UxV#-4$UazBRA^$OfuETBppQ3TMAeuz>RudBH17d43%uE zP0iSZ<4WFXo0>I?DZRHjy|>BKED_PDci^KtN+(ON23X~r9mcn#Fh0!}vr)kbX-dTL z1qtL6W~I*`s^E%$hqUqUX*ipjv8Tz0$euO2j^-xPn0=Q5&QaA?OT$Dev9dIgKD7uF zsc#k|D^Y*8Z<u<c6=^LU2jUB%*pp=&vXmelmqR0Z8wV@x$5_3yfZ}1&@nAT{idi0> zRK$S2)=hV2+Y$9^RG@fOo3lO1xfu+6kwMQ3`3d10o3Y=kx`pujbH3N)Pcm$6^~M9C z4t6+}X$pWq(zU6MEvb1|9cWWF9i3Fp$8oYx8Dx{`)i)bt7WRe>1<3<%7{IXsTpJ?L zKQIKtkbbj5*0}&MMN}Rc_C4X@{M4I=GZ|AR){_KxY3?4>Ho#rLc&>whu&5#~NFDri zNQh=Iw`gBX24vhxvR;^abF$jOW!MD6QK9fxm%Js$Y>5|`I-EIcI}zjJ)SeTAZ?Y1q z+FQ#wTp|MtNXz&=3Y5@hWA-r-``DQUe(5Rr0+*(KoL`W{)+5&Hg<|SMvIiAvzdkAa z`(n6L0hSQi?PvBi-%|oefe(Uy;G_s718rlvG6WObfk&J8<MIU9M%yxLn~h8`jR*@9 zt9BwBOV{Lq7<Y_6(>3Wjx$^Kfb^-oqnWLX*xWP8mCBebZs|!%PCI^K{dy6sy;<DMd zJw5K&#N%dZ!C<8A#!m3H&3xmczhc!yP!lX7v^(doX|><h5=d)m4O>N%&1y2>^fTgP z5BK=k(P)~{Y&-^zK=)@k59tD4ONer9L}*Ld6twRPGY#*xpbqqocq@|biiCxnCz{NO z0t;T59(Sb49p!|UwTsU-bd6w4ajm@_T`g8Ua0E~jj$Bg6%;$Z~C5_rr;aHP`cYU-_ z2<@63{Dmh#MxmgCG4|Fptn>RMf0Tz5CqReSu1>FAWUr;2=R3M`0gKv%{ewn?IZ=fr zI)k~itDx&-F2#^nFc2K1U^}=eVdG3Qb3-$>_RbWT2RaLM-I$(px)MM<2iEo)k4eA> z?%*0sborSbh!<Am5S<q#!P4a1RVV^NA%VHsyKi4{Em}B;kubWOk1n*>HnyY_33q^o zt@C^*tLKy4x*lo-bUCF0#SZ-wv_28EW;&vUqGB2tHlx$_u|zO#4ddVa`B$%FPdX59 zhGt`T$&&i}3*7MlJdUy}?ww`(cIx*$ayK;NI~Ok&b03X&WQ<BKX8XRlKq2>sV4|vu ziRT)&TP&MWQ_d!Yc3Ian%rEXzbqP<0-FHS$n{e!I^y3~5VuiPaH%K3>Jn}c3Z&2^n zLI4Al%xyC*!O##h+SR%VSOvB2!#2pARLN&T_D%m7`!&Plc6nhc!}u?8*@X#uH)CS{ z8}+8t)Q+m`ZV769XZL58$Ta4w$%^7gro{Ppnyt7RSlg-wrgA|d$b2<FB|U%+*pI1N zemCWiYYK_DLKFeya~O17rSE9mPFsVnJN3M<l(2D0!bXb~bf)>T967UgwJI%32-8S8 z!G?E2vIYPdEQPjTmD+Bxh}IaA&m@+td1nTUiS%TH-i-~B3>r3_P>;}FlEo8{0h`b) z8OOT}US=im&F+GfdvyZK*%t<s8BLzt+(iF)6?u(-1afLZm#p#;Vw2hQFYlT7jl<ZJ zM|Jp4IalPr?Wucr-MKgxq^WXBXdi`)MKry}5CxJ1d^MO8V|L9hjFPvbt`9e$6U1O^ zd?DQ{oa0dsM*6v&xG}->cYqLHh4`+s%`@$2RHi;MJ<@k$g)DBsqvPAS7-N9tFcL7} z8VR#UlM@JOjW7GOO$_<QgdUGCv;C-Gq-@5`y#+d=2FNA6E5)7LD@V`HR;}X}OG|WT z#)EPK$Xs+yNSf970IaL<fh>1&cB?3f7O%U9Kv99qrxL(#H7AV5n8lp&vD%0ScS0d> zAP-hcFGyzSZjAnV5bN=zC)f8)3;-^X&P77rmO_%qG`5Al@~k+lWA!R&fB|4QYJ!5p znYSQ=wwK5t=Pc*5K;PAb)FGns%%;Aw2dxrub67?oRz>m@!)Q%19|PaoepcJm-t=_O z#0t9-W-orIR2G9{JF~rR@Yzss<2Juxb|WkSzYbit->-L=D*;7WY9R)QVN_8YI{YAf z*1X{E1**R<!S)k#Gm_Ew+tLWqEaBGO1&vPS7MD0l224`n(@nl$V)+CM79b@K9ySY5 zLZ!{k-q4JF%_)GikJeMb4Rc_ENb6)uz2_b<rGDSr`eArIxdOv0nO(?5Scqako`O%) zi?-L1e(o&G0P(O{?8ARBkDEmSps_KWHv3R)#6QW-ntdcl;x^g75}WLr0tK<J6$?JW zCS&=-SQd!!DQ#g@QABDQ$g*tjH<c<)7AKJn<!L%>Y{niA8p{!&V5JRPRw_20g8T<+ zvL8IeKtt@|Nq!&1kBVKLq}Ri2IuJ-4ZXCo7h@q^xJ!e|^{430c$pqTZ3^Z#S%t=X9 z%WnJi&2F!u(O^GJK#~C1{h?#$>}FA8o|jtRViC`WwhWvwjapBx|EJJ!j2j{REn`OM zbub(IWI>{4Qw?tc@mvXnJqn-NEKnwzjR{>+Fj9)Ot4&a|S>7PY`mqHSriJpiRmmy* zR2d#XH-kz!I}VUWeS?8cs?BLLO%SAs?JXT1Xi!5PD*{f2vM@A&j|DKm(<JwsuO128 zp!v%&_@&=aoLZ9g8DLRx$0w|@6-7B8rr-#*_9-=jOozNSx!jM8SU{T?aJ$o?-9LM< z0SG)3&?!&Pqs{{&dhs7|Z<|d<@o4f-1X8Q84bmls1z(rQf021EYy;<Lq?3IS-Aosl zb0y+^kY*4x^I*MSeg^lmKL86i&C7Pz>I3ybW#q(^UIurL9ujHIw`tZ`4M19XQq>v; zM3Vf7yQy&%I21Dts2f%bkP}qLX=@B!61TKAfNof+q`+<9BO;CyzR9hSoHD+wFS#)J z?c%Xdk)R}^O`k-jHz$03#<n3aP9CR&7!X8OFV)6L0FVjUY;uJG0iTTMh0;XeeA)u% zfuG>H@yG4bsNrV6vlL%(KiiM!3R8Ouzhs|}yC;<SXVV;Q@U8HmPRa@wY%jZ&Z;d%b zmM4qtd4QTltvD-O%F%CiSJ7sQ-)E&PmAb@6KFgB8TdS;4DQzdEmTPltAKP1n6x`!+ z8(X7+2Hwx<-Td6)v;I??Roj*|u`|)cty;Dp#TI&wmTca_?Ii?s2Kl*y4llyHA#tHc zinwi^oQ1NqL7TjFfE)*?=~;pC7`z7K?Z^L}%go_wbyLkuY7JKgAiUPbepF;2Olx6= z;sYBxVZ8z%Qck(J7W)P=`7>&-@#8i;r5~}O3zr>!gfqtds+<83$z5?r8)86#)U2b# zShf=Qhf#O7+e!g&OFy#(yR8xcFBxL)w(aq}q#M(1bpUv|XsE%q;9+>hH;c(LHqH2} z;DGw5+Zo`reS55@Q}6_R37pEv&0)M`{#uXq#7o9Hd#op3_75rIZ8rYFDusz~(yWpv zh0B0q(YYrxWi*O+wK<4%Yl<U_QM*qi-g18yc6%&za}aW+C{bWc;+77WBq5?5O$8ig zWt1!cGs%`)ysvf@V5Ygr6|8X?B5&e6jX4gha~$vTZXZT8vo-*H7B<O2@!2$D*9f$h zO(SqXt9@QlDe!uq+x=yV!B(|z8i2{V;IOTE)+X}*V2X}cDtS{>H7Qw<@@_0hDN~dM zDX}Hg{tynd!junqAO_Z9!Fjr1Z&EAzf;tBckqJ6;uVO!l@F1`wuW7LG`hk9}Cu6ED z6e1)9o*T^xJzS3aC7A-3W4cUSvAG#x@wy5YTZCNnEiyDg6;uQWCe6mpFCMjNFy@;d zxZTsV71I<#9fXpldXig@cqVJvBiigqZyV`ewX>9OID+=6BydX!au35bl>^Go2v*jh zA<WS9ef552+cF7^I-)PDZ{jX7+y)Mrz==|akWjr*&#RmvvT~Ve&o)%jtxowsD}cof z`?6!hB}H@}qz7X?Y>b;!dh0cmgYy~~+(^sKu(%eeC*qprjIp3+&C~ugX>?!w#O<*C z);up6B4e45&^*N@TGE~vYD#T}t@r7g8iR5YhMMgl-bm2d&u|~?wth)2D>yM5%KItJ zkS~K}Afbhtl#&$4G@u8No9JH$QFX}o|AOQL*cvdr0Of(gt%daku*-(9HTX!PeHb<x z9)bO~Fy0zOhAwUgdJGLUxN^qui!+C3Dwi>b^q~x4N<A}#6Gy)%akMW5+1gbwnE8$w z%;}x?rFYJ?bs$S>oavnpq<6eBvn@G=z(`p?A8LCig&y9?Rg9s#NR9=W26=W&QJ%GL zY!43gGCBwDHe-YS>D_Sq64IK@8w+BL4p3uHO6q{sAoFK0yb5rmRmSWBozZSj*0m1* ztFFtS8pDqBRYyXfcFWY`Y^hNM*6{o?@F4^NCm_WPO3UI^+a*TvBnb%}0@p0AAA}3} zY2jjtRE<BTxG8?|T?AZ*A!ERjo?)|Ck#i;!5`0O5?c^=?Whjtm0&@ih$4Yq+!^8~N zLFiy<qT+Kv&h3a^X8=6v^ZmRq!y4Evagc(v#FV0k0$HRPOfke%nl9E186=(uDcmGD z=z^*a0d32b82O-8f~og&4_RMMG*af`T5m1GTa>xI^}e$>@#{EDYysNG5b8rT_pqwn zhsoc=QUQ0v!?yVoXK}4T7nn`Ep`xOj!5NYZ)%mOx?&>q2Dt2kYy4&Qo5HxDO5l|d= zMZ-Re_Bo34>ZJ8Pey)O8!pE9nj7NlrjYDwg;lb?QB}h>!EvHU{IG`>qo-cM;0?ChR zuoRp89AJMdX;*W%78n!jZq?yIey%n<(qY;K@0(&3ya~Zy?~@W?D4&`J%1ru@s|-{! z{Z|9myr6~|P{IhWs8ld=uAjy^5iT?*!iDBUxX_%y1?FlUdc6t_!hX5T(L%O7CTvQG zY^@6fZ5!iWpK#=4v-Oia*~W~7AW@!#0aHR8fdQL7mU>PaJ9_~4#E7{maOMJO^jcx| zvi3IANs?@DOmO<yj7x;fJe=bOXP&*pPjXbnU>zv`Sm2bi4_dj;C+Y)qscTKM2jQCg zC9(ID=_3QMEx<K4%~U6Z$s;s`IL(g2!_?Do7Hpcq4VW%Yv!Im7xjA~ZU?J>XPI$N~ z;lb%;OqIuj(@V~xuMUE#wLA!JCRpfuhB?*dwB+dUmejw`DK;3Vu1%BHO^$gtAHuMO ztZz%r`6fr(mkC=}p-!@#c|n99YY|EA+OBDr$mK#<@(ul!M}T*vzFQJh!bIu^VT?!# z{cmr3Cs_;6g|QI!Y}L4buUe^MFV6Khna5ZQU;Aw+<noYs0_sJ&gL+|5{ZcHf98(#3 zL@rU-+xCIQR=`RAy^(+OG39SE%o6%9z*5#qv$zZcAg~C7A(H$I-R7t3`sS^{5OFV> zNhf$Nkk!6ADmVo~lnP*#4Zl$x`q2}B;KP?m8|<(D|9*mk>uaE3%c@Sxx(+KYv*a=t zclf8e%h8#Bke%;vEdEq!`GgZ#Y#G&-S#SBIhdmsB<0!cNDEys#@+nqsnYETz{ORML z@I?Nde){Q8deW1h{N$A@pYoKaJoTwhecBmMfBMs(@yu1vdiJxQ{b$d4?w|j~>gPTG zFJJI~{_3ySyzoUYe({T6g1^7{+rRzWzr)|!zyF7qzVxLp`^T5R;uWtr^OdiB<v-!? zpVzHhcNYH6KIfcsnpOL^zPh2hvAU_cxw@r#ZgsM{wR)cZonO76dSUgV>c!P<)k~_E zR$o=U4F4{#zPkDv{M%lAt^U2P`uge{s&A}bQN0rXrpW7Vd++LMx4mx*Ebo;$uHy5J zUELv%2(xWRHz)1Q70x|v8ii|xa9Es(d&@4&EMek>R<_?%HIdJi#P}iwBT7nqSs<_v zS*Z9#i*7C*pzOpQyytgzpf}y|Wq60o{5($A-9dI!7UFt3TvOEidkjERl(;b**BLf8 zBRaf%kI)yzd5!MzGj~!J){(6G7(@y%K4wy1sqwKhEi{>nLZ|+Xz^9y->2B#{9S(_` zTzjgn8v$zhl79MC70<sx4N<Z*p?vup9dfJiWut>*6P)yb6OJ^<qS;3|nMU~|TOD{k ziJnHu?~v|LW+N=e%K{QGH6O!ahm6dWoAp{B`R;Cn&AFlJHBcb%NDNqWRd7vFN|Rw4 zqav(p@c~7Jl@HljtFV`5=SZKjm!Sb^mGvn}nA<~NjV_QYiB|d>KP8ebt9Cek;PNyy z-(!YHIUHb!!@&+yoQ<Xo)hj+5s!p{tbMCYhGB@D`KVw#uI8E59^M&Dpg|NL1j7#%i z$hbtCdw_|^qHR%pTHlvo<gJl;<8FJ63lo}Wd*}vwTlojprlOX77A88#=(%~c$1fJ` zJZ}=TWsOe^CGPy4wy3F@BKSS5c96$TkSJ)xxigi<d{a%S8W-A_%`8IAr3&3}9b|9; z`_-&iCC>j5iF&?(A+A@DclKB^+-Pn`rZFH`<t%!?G|yoWVu}Ebm=fLYID%QpXgg|N zDwNLVd1_mYF6*k>{H1T!id!45;g$tDh1(TkU4uuRAu~$b!u_IPs%cd<`&HOoAH?X+ zHtbC1u|uH&$pZXfk-W0tT!EYD0)*HFc-ZDVig<XY_@nUr79ZZ)tWN<;hW9q(UIxBs zFlxAwoe@|0wXEzHao0QvY9?eO67+ouWDn`86**{d|G5K>JO`K=LS4`9FwGk$<Ki6e zEtaiuQEdE^y7*A);#OPM=bPX&j@S4`<9P(yJlluE_Sb1n18BFm`A$n;U?R~4kEp%E z{QOAj*N0{;qDvo{hVf4tkq?qZs$XeJ>>w5uur4~L{Y18UiOW6J+;!GmzhTqlwyEjn zIS$IC>n*Hx7NEH{LGw1-HF2iK*VG#rqMkS1Vk7m5fQZv=WS5tBkcQW%hFu!ITn#5- zc#;dl+kX%$H_cTT77PMvWeM1VO?_hm!EI`Qz(QN{FY?y+P5xy2y3#)a=nk^irwBwz z%lrVVmmHq;sRWCo<D~_3V9i6i;r4HY<5LbZI&MiII644ADLOve5gq@~2_5C5{(S1v zN4>T%>bv=<x9<!m`5xv`-<m-1Q3Hh1QU80#QU6`1QFBJn>e4*7sOS!)sUq&{E0DKS zxx553S6MztLy4vAX{1CBg8DFvQejR+lI{HOFZ1mebKbkYk#3>YqWFk3L5Mw2%7v&% znTq^s!h@^G7l{-(4avotuX9enkX_o!KX7GVr7Lxc{9g+oNVzjLY-&W=q{^oEwR1t3 zSCCprSI9>{?WoOPjeWaq1b<aFf}d~%|3@&AIt44@%!2&;Zff*W(*iHh*kJ+0wL*O# zXCxEjj0taU1uz;M^o0dL_4pX*3nM^L&mR$@zZ68E5ChdAltrQi0#aQB)d8Zkh9NJy zUjgp#C%8SV^?V^?JnE%jMjOy$b{{}T>t-Tn-6-U$0{zbuoG@>uoX@7j06r*uCy+(s zWlDe-jF%}-*q%}(*!#t3#|Xnp;HnEa@=Dvg3(t%rGT4<ZJv&>o4s|od*|xRo<jN9= zZ~B5q6v010H2-;E&h06cNgP)MdAAs&0P=QEs4{TyBi*-#&cpgM%mhqoOp#kTEB}oB zAVnSC(TEUqrbzug{`PG9Z5pVOPS1X$Bjj%3Z#;k~q$lj>ja8wc((+Mgqf2bZuIvE$ zUvikw#9LY^&W`4S(v@uK8ElE{v={zLHA4c6V(jPgx2NkjP-%@p{m;xi6e%Y~W<V+i zvxK-WZAH#guwgP|&}2B>kyy_Sm@~wBX28gC+QdGeW+MwLN0YDzVH0*Y&f||ftcMF1 z!W|!>xq}6RZoPjYA9=F9zXK^MTw+C}ln3h&eYm=jSEq+j?cg9#VCvC^0D;cAW%DV4 ze#!diV_#yk{fPn{a}Tzcy1teTKY<MwH(8*xY*)Y%CoACJ8>9=y&g+oj9qrgxr4H9y zX6obBA>xOySkx&719syPJ%_2!%Tu4en{q|2&$bQVuTGD<g2dxq6^di(C<*<iF?#7P z>E6JBJWf;zfsaEMaj#8)xrlqL#&Ksv-0KP8V*-F-7Y4Ip<7j+d6y?QanTQJ~1Z^vb zuQA9rq-{a;VyzTFo6N;T8n1I_NRn&LGm>qHB2l){PkwZXc)Nn2X969d%qHH9GfTu9 zX-k0gfQh!#1YwwGJJ`=@>}P(oe=FZRHJ~<5L6aVq?`zYsWR<N=y<OEt`%~^T?cYKG zPYwWXclEYy4z#y=w*_Qw%k4)B$fER}EA3-(9_X@;I_+x0{D?qwsN#@J7j#<7#%0D0 zfOu9xHUBs}xS5i?Av5%09Xz#nBwV|Z{xIPhGgn^K)!8C9(qH%G`G&3L=&9{YAh-+y z2&G2)yZy;_PmL-6rJfoHUE+|vFLmjowygd%>Tss;hK<L%HayI($p;b$K5BqaI_eK~ z9Q8vwjha@eDj|m@t8jt9Qk?&MhyvQh5O^o)$`2>#yoU3b*aE5#Y(d5C9i+3-n<<q# zyYSM0HFS{OJJ}Qdp5K7tY_W8WgA)`VNl^GPpeG25(Hs<R+sZg^BT=-e6->qa#Q5jP zl^;!gJAKf1DSbZHkv_-YW%Ri&LFe>g>QZ!1W~0xKuMG}2>0|rLOiCMF=SZLF1clS* znBN(FKA!q^`k?Pp`rOcwKFkiAht#+^b?H)rX|MSZe~^_s?kZXN$pnIr8X%O8`qLdp z{h;}c`g5sEAGIZjfpc6#gy7W$-@J>0SO1zo@KFPV(ouh*<EW3G->Cm1b?KuXDbO0) zP?p<OzrBk_{lx@=j~XD9j`~X-M?KtW)blm)zD`@j^6l=tasSmcGB@t+koY@e-0vfR z+G|6<{r7L+LG$Jfd#01O1uecwm{Splc^i1t?&3-+KBK5h?oKP?b5wrcN(6G&Lp7{Y z*85IJ)?-DhQsD}VEO^e;K4zjMrT^X3w<j7gFHqr%=vTmGDaP`?pI-B9=2+P(|5}@q z{=@X1XHKi;ceES;A~9QBK>BgpYuw&bOhM-wGE&=YqaO~dQl!Dc4e<OAko?@qV@fxm zBAITq*7DK9VnpK?2?)0W2G!Uct+Y!o%3A?eHT4jzfL|sk+zPO2t)ssKEA3$F+Zh#o zmon=A_>=9vLw{#RRS3{kJh@=nWM5*|U#I?^S#85qaCV)0+TQzZde6BIJC$IXr<T`m zh|#LoSVlh<J<BIlWeE9RU!ARnZ;eTIsP_;Pn9y8@-945UlMXE)i#85e1>d8p2+1NJ z4U73u|Gv_}d=u4Brw_bFeyVEIhkY_Gm23xxTjAjXxdG|1rJU$&SZ^e3Z1h|mz;wHn z=QADyexpC42Ak7XG#aTqNciztj94Qdi(A8(H^XB18i=p5^9fI|>r}Ne``)jE3ygj} z={8OnbnnBYTN4-nvA(uspDk%HK4Gv?2uLWOFa%!XD2BYbmCAN(0O=ECPa6Y_e?C9n znqn|P;4F$UE(&mkgIm|sK3yXta(kkQ?NZy-cUbZX!GohY9vskF4dJkcB}d>-rKzko z6(H)sq5BHSV=RT44$g$QW|+7O2=X1aURZIJZR1ellx>2wv@pvkDLulmSApqzmo_9Y zui5suLJ*80@(I0**zpMVa%{=!=Vo_Q6m=(MnCaflWusp0_~4$@7M%i&OD{2)T$CzX zn{j-<9aKgOUsvet#2PlV^ScF+E!!!Lj^sp4mYqRyOkk7A9r#<UO;vr^%A|!nmbrp* z%$nP<{agq6X%t9x+lWUtVovWwzSAG$DHc(z_ncZg79Ysc7>DZK{cg+9b?_<R@BoIA zChMgM{I@O<_*RS&Lj|&I-#{D4_3DYWV{Hv>!bUaDeZAToz>*bIuYEW@O=%gt!TN{Y zakl`n&9%P3OmzI<1R2);+&ikG%CLSK%Es#5x~}7zLaRG_1TyQo8{EIeQw#hnQ>(M7 z*++X-+h{E*+efQKx7N{Od;}eR;zR2W9FMlD+M;kcBBPWcL3=T+?=LHR#%AotSd==X zSa(g-;y=>^n1xUUI9v_m>@dr2FU&HEDX$9yT}57#Q~^X}16;01Ox-5+HZ@~&&0%px z51I>7&lO2uLWJaZt_w-!*hkqp4L(JpLhvb~&`?erpk@zMgH6D)b_{*r<hI<qswiK@ z{zw3w63mMF>6q3da`pM_q}F^<zP4R#`wL{Ee~#J-o&g4`6jEb0Hsc$~od#xC7M|PO z;kgx1l}l~$Zl%6<LA2Fvfs*ydkH(}Tq3|2eh+xb5imBjOH-<5>X9~1v+MbvC_I1Xi z#4XURVX=-~p}a*lh^57AuXylqmue^2p|%1M`kq-0JV6b+$g&|k_r`aJ=d6N*;78p+ zKF5u+*ejMTz;hqGHavHq+*oWbYb@9Z=S#8_E7UUG1PsZ_+V;wu*rKbORh+f+iF8{# zb@6O1yEWb92Hmc#JHAUL)1wCWq=%?dc(a;sjytG$vzC24JxPy=H@mVM(@kusD&PQ{ zm%4lu#{ppO)3r{06ue1qNS%&!g>HG9dv>i`9|dnxM%R24yq1X0kAgS3FNnB`qu@=- zY~GBc;7z(lyctKqn>@Lul|qo&s9}<A{>3ucGh{I+Dk@uO=&WBjWg!mkh?UWr-TwK{ zeBl>6U-zM(8FKie%yyFuY{})A1Z}@AFrnH_BXkobQWSz#4lAj{_a;`p%+{TypYb9L zvAl0u+}i%W^y20AqLmtOxuzhm+l-QNo$S_9&`rqw=57#j3-97RyS0hA|ATINNkxCm zW6(kBl#n{aTBmxcjMie*FJJ)!Y`DOF3zjcXB`uaPtq((19%c2kmZ_K)%4wmVmTk1q zP77|cc%(L2V3!4^cL(kFgMwJi@Mxo%HV02u3-WS9Grr<-m9MZWPvOB$9Uh!y-qE;8 z)@}A(;#2pz)UL+x3`!PI;>s4{F4YEDyT)AoUf6vooJeu@U8agma0=lkTXe=;I^t^l z#8<e;t9&iJV!2A+<||yqMS4!jE2rQWC~Q`>&&`o3UiutqmTm3@&>Dc7bsE?NHVqFB z_e*XMNb<6t7<7gP!EfXI)`y(A-m|dvw_^Ks2eCspTe=ZjPI26{zUi$sD4}H7S<MZ- zu#aJx@O^Df9pg9P2Zm=Cck%<jLzEQE`yZ6#|1`(Vh1O8y<x{*d&f!vwOyC2$3fVJE zvRjQ0vxO;Xkk3R*dj)<XcF`jx))6B^vg@b@9*$-Pb;a5U4}<s`#DJ)<h8j1rpA(1b z>FE<Cqz9#_{CBMK+55C@A0qKLC<W!eV`a`N>I~|$A7dpfOR%w-uq+u_sNN~%SXyj> zt{#l56WU=x$*}bFad;Y5wFD^ZG#smuP|KYV?;V3S`Y|3#Ux#NI)lAC>uts4uO&993 zGQ7y47)Ptz3%}5Nc{r}Q7k&}o4!!UmDuxt$Ihtyq1rIO~7S@LZ+4aP$YJPA-`C8Bj z47w5@SfGg#chJAn1H;}7+)pz5V`+xE`GMFwct2-;OtX(+01IYYX->^r6kjV4m*uVK zX+v0Z+G;wlab7h>T@k&V)|PT3CLdxP5ptVtW;oe4Zb8N^@GYbGL>h%F5IZs=A83e1 za!{2#1J-uEgY}WcNiILrJ^}!_*$?D}$shBcZcg1g@?w=^+HMd)pCs-S_=c-)xIsl; z75cSf7bs(h4vX^IfdstvFl?!uu}N|Zo2I4I1)<yc8n0*~L0Za#|2N)HK-s0z_=sia zVgmcYW#8l@+I{Yiz+ucwLkd?lV*%z4gy9T!k})1+WJ(NnYr>I}2F4f|tdnjRLd-~Z zY`FhYiVCD2X|!MEP-v<Fb*50T8wS!420I>+n%KujXt;$(Xf);21xKr9Xv|eRu_5JA zZnRbuA&vGcZKJiqx`$`9hoX~Ajm6<miBU#y`jld{)pIdIr15<tjn5Y!tYk~b$)<Z; z4Dx)d?HwAZtpR_hahzHE+ums}*;0h<`)%)}P1wKUaXV!pg4)F4`v;S548exnzFC~h z%KB3<-u_sDK2$=zPp<3~cgg}29n7)=1+z>wTl{!AGV$tcP~jccPJ(u_Tjm9@^vZ+n zmX7zsWXQP!V06Z@S*oR${rCr$zv||l+jsw$xd_ML2P!JGzt&v}2KlI~aEo!*O1>#h z8vd?IS6I)fv{+2doW)dja2n-+Uir<>gCjEMSCa2C`zykg^d*O9l_D`3ld*DVXr}nI zrl2qCmkXMa7%u3!-rS-k*|ML8#32b=-XZ}MLT%cWV}dXaJq0_yFf(xS_h|@W1Gg+$ z4Og9Sug>h~0Cr@{zl9+r$;2TPCDSEsL!iSShk(AQ504ybu>DY%F^{1n=GlBv%)hFw zc?&z|><BhY_a9)dMF~H$4wnrr%#53B99@thvykJ}ZJluqHa`|xeb9#RT9;Q&!#WQ7 z;_2b84+AP02$lXLO!=|SjLJ8(b$_>f_Z%2oMwB5JhM-Nm1dkQFni;KcYU_$^#F2)s zpw@D+0(M2U1D-LH1FHeLTwAXR?W1^rfd~PULwgKbfx;q_F>I8|SGPgKMj|vAH+O<+ zeat2{8wu^tX%-x^JjkOp^t5`W`G!jU|ChZt0h8;h&PA)bHM(uwW)y)ywLG=4vD;y4 z0tsCO#0sM@gGF)^np~17$<23_o4k8<-^EE;mTh^!G#=Z=;KpMITSg2aG8og?*vMc& zOhHURgh^pYL;^%%^85dPt-aT&b53=)21D|`Tl(y-bLyPE*Ix5ld+oictZe=*F1&8A zzzo7;2@$sjB78pDCbodLoRn4b-R)_Xj+1siFVgw?p5lCTI^#e{7bGqSbf;1QK`Va` zW4tw>xa2XFL^DaB_fvv9UNb2ZP2Cnv`GA<Zk>l+HDxF<bHok9*1}?P~mSKFq`}hYX z!F=cpcW+BD<CBf_*`LI<wl-HPMrjyJ!C<3{$|e^te9?=6T{HXKqNbAQ{(i~ya~(;0 zN9=OGvwU{(+1>n#XJl;Y$*%H)=k$3HCuHYb_b&ThN_MX`)vX6T+pPzO8RTWn5e{I# zbaw{SEh$lvRR|T@5zrwof<o&}cXJ5~>iGp)A>aLi9wp125V`aOtFZ0CNO(W5M@90% zHPNER;4cj`<y1&{ufe#PUg$}ApXN79DevF#+dV07F2pFNyq|+><}Di7TT|+o$&+XM z&73UeO|FBm+;bu2-S(R~S<EMq{wmlSj_%jlsZCWdo2+D4aTL7CJQv$<_NKhKdce9Z zq`bM4elg|!tGG6__$b&QQ%k&=N5Pv+FY#ti%A3g|-pr%mlgt_Qro5kAO?fjr1?|Jk zw-~~eB^gh2FRALc1;cw%+A82fRkJn3{o+AacD%L5I!NZr+aE7Azb%^g@RqgeX|m6B zFmyNDMIh>K5BCc=6$sEkCh!O04|6vb1ue!QeMfZbVq|6O?ruSfzQ}MFi7z6>vobi* zjWpEOs)}@(_tHcG;)7Bgpx>DX!|Q825Ktn>BaMxU1WGUI0mU7QBF*hFh-pjvpCH`z zl7`Ed%Cwm@+UztdlqV#1*>#w;_e2j@Sr5q2p|#!~xHz!f1M@+_PPqr~F?x7!r3Y3W zmwV{e^nfg#9lV5%4R)se-*+)$>Q31@Sj>NW<d6r-?RyHp+ul7?Tw+T?Je52KXIOWF zvJZDh0PL3jxDvqd!Praff(Q1nrPPD@N`aF1ReG>G>Oi`m<r+O`Px}}{x70&<qUp{` z564u-z|HduW0)x{+PLmpr-ahzye)MG_?#sEEB&vO*r5Mq-(#Tf4=~*SLS`039W8i) zV@dXLe|NxujhJ}hX^$OsXDI;F<A?|$%1ZK%KsPo<1}vk<WGhKgP)>z390pQ}&+ZOb zU16||9=q%N{o^)8{&4oJt;G>+M$b%e@_~&749*`deW=oNF-e+6^l0?~^~6x^^VD66 z3yA|klCqtG<Wu}zg+?VD%n!*&E0E-BBc^NVdwh~DdrEYTVSguYv5JV;SI;UID&b)M zFzyqTo~=;G)OBk2$czJm@^|c4xkx|eA=H8na{vHYE%2y^f?Aj(Z{c@W3!N>u7a9JZ z6!SR4&*oLpWcZ{~$?#=$`k5GpGrVOt4-vy#suJojABVwYaA90CWpy~)`};Qky`T;Y z5<-lW&G%<xM6L~K@`~zvYiGMU$${J)I|*G?5CjR1<RWy$u1W{h%H<us9qfz_IyZl` zNV%OQ$^ktERh6ntNV#$j_HzM-Q*Qp!<^5Du2hE{(Z!eDXz&Z2_m2p~)+9Bgm2uqP8 z_g50netlX)1M}Qj?bO?ELHtr>n8gyaa^%0?mZxAh3FgjQKV*y-Z2jc`pc3wHJp$qW zp*@)lA^C4Mm|2exN+tM7<z$EB!;{BQFoBQGd{ET{kA2VqWIBQjCq6vB#ni3G-Ycr1 z_r6l-O_Sc<62%bHP0OiaF}&tDXSmq|3vfB}j%ic;T0ZOQ1JvZo4cqKGC+v!Iu;+Gj zryjhcwo7|-P|v`3G#?#@b7BUSaqS9hHr?dh{G={bY060*93_d6>L_lP-CBv=!JF8A zW|=1bSqaNUO@lc1AldcD4YgO{_Ad{W>#doUWrkVZa_*MZ0PA|Itj*0FkePu4h_spQ zTgbl&HF^3M(86Qj)G>F3hUOVG*T=e8g)Z3Du!@NF6%*~4rCg?YyQ2Y(EgiC~y!qm3 zwFpHg`Dip>$(f@PtZtM1#=x|%$KuxCdHd>0q0yLmZ>b)I<XBb47K<G$hYh6*r{04( zpNB-j7H;9a68^AnU<1@5ViNigp7C<6@1=lgOg7bn*+~+<h)V3ffGuRK{G)(&VHhYH z#z_u#REBLPxRT!0003qpe7Ws7!cuQ~JS)IDC`C}I4Ikm8Z-MbLD=|=K0iCnb-DK{g zhIGW$aD|l^>2g~3kh79TNcY*=&OEdl8{WSb0>BQ*MJsLVZEkPJdOWLP!Ji^8rHSnl zFHyi6<c@k?+Fs$M!^KN(YEY4r`AT){&P$L@xYt$+5#%If0Ey)X;O0sE0Z`09fPTrw zLlslV1rk9u@IoiQCjjz2xan$$57no3r_7g#3oES5jsG;Cy8!db=LzO5_JW^!IJUr) zVmwt=Z>g=GDp{S~w^XdoJuyPJI+_(;_{ANS7b81;*`r~u9;{P|1|}B&4@U0K8~SJp zc_}|A2Sm9v*N$LTW$17oX{5t7HK~j}nDt>@AogIkV>Ta48>jNX)jDkRxZ{r3hRir@ zQ}ux?5VX@awF@({(;%Ol!?CJ4{7K0iBCUwES;-tCkf-mO+|sGyMfzo!f{-p&krTI< z%LF%db2n}P*$uZfD_P3TeIDG-8p1I%%=+#JAL;vqRUysUGpd=>_i+<KeMgyIn<e=` zhFNdea^LS1Wq35|JimZvJg7p?YVufs=R3hs$#Ss+>*}_yUZGf08%Hv2y3A|-KTTE1 zys2zAO$7_;@CPDK$%i^)+R1FbD)G#|uYl!DhMndg$6o4sSlyh0MwxeYEaPXMUOBQ7 z&AJY>qB+ay9yM|}G`Sr<!Fq8fXYEZpa!K2ZJ#9!6&$dAdN#~D9-AYky0GyZt=8jZG zTuvT9@Y98CIaHk;^+J%3Xsu|iltJgVxK9xl4(ACbO|MBayI$1AN!cxI*QbLo+^(b6 z5S_a&K7!xJt63QVsGt%!mtG|YJ3QgfVEUBYIB9&ekseW2;cLwzZ!i-)+oW?zC&z37 z<5w%aIRb}-@W?8&!-vxjF9RM><%koPwDVUBmrM!|73?q{VJTzAYocu;ArH}0l2?c~ z5^96HlZV<g>?m{ecm1!CFp;U3W~+HZCyFWY2Jv82JG`}mXIF6YUg=;CXMKriR%>7r zJ_Vv>BU^7k-&!HsiT#Ks&T<2)qhZ$DkuU|c<5ivsL&ijnBN>y%Qjqo@4P%uH25h;` z<JJJlO{it0MMn@_UK`Mp5)tc*Y=hr@(e<KPM?7E&V~QDNcL=fz5yfESxIYzmSMiMz zc!=Knx2Q*s8)~y))KaUpGMaDzlmxvqKe)eLqBg2#C8G*iw7f-u#60v)=v-Jx-xtVr zA?-<*_7hS;c!-1)e54430t{KTRE&r#7RG641tFEQObJBll?&d9`g@3ahH^T>#=T`e zqa7m>nj5QEf{NVZdnn4TRmNjfT*;=s$)<jJsIAPV)#6mhm>R^n#X-bjROqg#k<*ow zQ)Mf;AV>OnK0!^I7KF=gWxb$&yh1pu?WxhO0<$Qn8)y{_+5GEgIF$r7sT9<-yFk&` zO)ffpUDGPz>wY3YazX7ar+rWa^^pvcn3|PkXR&QEe+8(MB_Y(7-dB>nQWg2x7{Qe` zHT8(0_7}(#C?-lCgJ0Knl%igCl%iqMvK$tCzS0q+w}OtRr(?U@CU(PgIJ^-%z4t2w zNtLx&yiRkL2B<Wp=NY%vIrM1*(66%vC9;ElUkjl2*}`8%XYs%{;(>p+2jKs<uv?{{ z`YUgtQxhZnW4!1wf+CuQU;IwxMU|;8{Ng`XUR-2U@-LMaBPw~vIz%P^k=83MK92dn zPX-1M)1AfRknmAZ=gYeo&LLg-kRy*|z7nfo@$oZi{Wu*RQETbSk&)F3<&MSYxZ_88 zx(<)ld7>2=A(qpJ2kVSK{pncn#eyS#u;y!`-FfzNp7WgN@`D3*c*2e!v4it<*5Z7f z(_gB?b?kf{J7DLxdBhGsIA%xZ?EL=k{{fHM(dUnG+RmTiq#c~I!w*i{!BIOK?U<ea zgU@Tv{L8;A9I|s(Gaa<E8HergpB=c9j@-Gh$pd%NKRbA*_vjrSzrzD~cmz-Smk#2w zV|cE?Q9L}1$ByHfX}+a-UGw_p4gT-O=8esp@bBj4Z1b<1Z*AU!f44Tb;@@q}x8dKm z=G&X^Xuh-guIAt1-@BWCi+|gjx8vV?n(xKGJDTsqzdM`n$G^Ge2k`H%=H2-B!R9^q zcW?7U__w2ZAO3x~`H|-R&5t%ehJPP#?!>=OG(Xw=RP)o#&*0zRH9w1gyPBWFzt1<n z(1b4YpnIyO{;Ru#S{8eN_>n<h;`8mPQ~-t|L1^L}c2h0qi}cGdReZWo*gajY1>4lk z{dm}|ez>t_CGPI?<TT?^54`o=18;rzz<b7?QPiaG9(e0}3cQJtLl$|zjrq&ZH(@Z6 zA-$D%KF2$Xy%{CIe#%3J?WCIogzF$l*lfn)Fl=4iR0ItVh7QP#UE}yqT*GDA6A`vz zVr<35s;Q$80$Rik&y^v`ZobE*a<<@%<@&n_$q<9UHxjVV@-lw?JNuQM#y6Vy`7`!2 zF1a}E)A1`WKgCNYHRFfF%=1jHCpWkFWIST$_<n<(exf;~`s<zKEn^k`3)aiG7}qP6 zNmlZhK|hk|7$M>`;nt911|DMiadpK}E1aeqmjVR(DaoZ<I9Rwkc+-Q0j~SfqbSf$s zHxP=2u7YhBV9S1roE8J<1d!O0L>n!n?_%=C-BYpWdP@myu%LbhhidZIJxv{th@E!W zuEv8Hpb#l|aKJ*m`-y;+r4arjK>*?`(a56%#_1o9CyYd2C5i3>iCC+>W4}mL2oDmG zc+B%*3=d91YacQiVI0~#&Q=6k_9fA+M5_hjgIg-Jy0?c`#mG*)G?rKg$Soq7$j1B{ z8Jesz(=-7}U_#&!-1i0vDT*P)<se~ez~w>02MsRKQGGd|ieUtd-w@N_#vYqb+7HH2 zNPidmX&u4z7FELV2n$=dLiHhvAGFCeo=NLrwaD%R!2(4lNrL>Vpxj(MVqCJDT=IT! z36Chc(*{RDJvc$Wiw^ty)Yl=9<U4~3F3EQopuZqVwiJLBuJjY=BT|0uJ;Z{Gw~C=| z=Z&&_Zx6Z@N$2vd0RL~}5hLA~NV<1}bRQ+Q|7O2vH=l%mg3Y~4y-`&q*~#koz(jm! zg^2I$A>uDe#6KBuxro2r;Cj$S{B7u`AkDZ;()>A6;5J@AglzNyn((b4w50x4ytcwP zKudOUO;wT97!78TLS>cqg&41w@!ewMg+*lz8~Qto{k>Jq?uXi<>g`p<Oq7|FnCZ`E zD`_NcqA;tD<UZJ_K2N^B8N*e6>n4Nl;B}Htm$}i9l@N5`-o>{9jjoe!FhKt^=p>vU znsw5@kk{VA8)cn@V>Q88=GRqyj(vR3PSh;W?z5!bn?bvO=g)82FWSwglYYwP{MgMy zr;~nCA)+6$=|ucR>7<_pT&|OFfG0`upz9=@3tA*O5^z`mk4&DD(C1Mv;ED7|Yk*nk zPm|<0{Szfl_;PtP(8q<4uU&`*Ff(R(LB;}cM9M{M4F`jwGtYdQgPAg-bk|ZMap7R# z!n1Pt>Ee2+0qT^74_`aKC*Z2V0F#zM5P`(=N@98rex`QnEJQI-kGoTC5rN0`bh_pM zeyk%X_#SiU_Dee#-CrC7xMAhdjgjUNIChi|C)H}C;+^7<+)rMbNO&2sI#nj&CrCn^ zGupnKKVKXTdk1N>)|d7(OC1ldMimcFtmk+=pj*z3br>t?6q(l<4S}Q?dfy0|x9~4e zxSfAfiOdS1BqgCswB<YUKI$hIt`5{VZ7=Gf?Q+8Ah!C6+^vPmrYL+KiktASZ7DAG> zW*j^P4FFA!&~ltJRUoQmuWc&OpbU~-6L7f{<AhVf@}Nuc7W8BL<j8fvWe=;A0{oju z^mLjjNNiU4W8?{(S=zptKjWZM=Y^a7Z<!|+8RFl@);1eU9K02NYoORk@5i6I4E(%f z{QZgy&LS2(GI$5k(&de^75=MQ+Ie801F`-xKVg*n2q|~wQ2Tba`P%)V+k6)IeQfRj zu&YBD6x>mv-~TIkoqV#tF1bZgg4fEv<{=IH?+mb9a_z9!2VHRgXLjvBNFx4Ep?k5O z{RabT_w4^4A=4duCIi*#Uu1q!sOdI7S%~{d=RePnn2rAcq4^((H2LG7EyPlbwD6x` zV;eNYq(*534$Q#sjKRAm`0qtdI^^~pv5jpC@l}rEPdN&*q|NbvhWGxP-P_YFr1JFe zpJe0~@$Wv?7x?NQ=O+yPcM|=7G}P8Pr|b6z{jko0OMAYBg~t9(W}$bpyFX-i#Jen9 zGPa~eqD$EztIc_h@|P?0_=6%nkSneAw`7Bnz{4_AxeB}8RS;yb$vTM+HFHH93}8IT zW_CD$YiIZAD*=v6^lJo8Uy06(AX6Ssz8l`zkBC@_yjQEAUN0@l+INWkSC@$WGZK4p zsQq33_^SMNAG5niS^EJS`(4pF(e%J&ZEqmcW$kwarfcm3khMPgTzVcXYNc?ZRgJHW z>NhQdznqBsZH)17leoC~TeyjeMhjy2)GIU2Yeet?;%Z%f!bI@LeC>>(c9(x&u|HIS z2%^?TNJ$QI7QfAG?d9xhzr@dSI{nJZ&)!syb?n?xC(nYSS0)CbgHn(i4Ca}kNJ11% zS@eoxGF8+U<;2rD0hWv4=|W=?!I=~crBr&3j*<vU%G)CI+DrjvCVIov*Ab~}OZ3~v zn=c+}U(CNR%5N`1s<5*Gwx+MA-z9AAg^7N`%p%n10!vKZ5QuW|;?5O0uA7&BGp;%l zof6&Z=~ak1L9t5Ad1(OR6yweq5x*>wVtOaBez8=@lwz?|=wFCWZkK^xxK1ud_*x}r znhTTIb-N3vfV9jFZ()<%RRc{jxKYmHpLz4SL+$JM_c`geexc1Gb?i-SjJt3giiE|D zfqQ3yj=(%{9gEp<OHpwC(upW-iZg6a(WwsMAIwjsf8;>1U&#Jb$%@}Jxz6oGph-lO zLO=~hRj5x5k~~2;u<nV3LBB2V<Hc{kHq?Fx0eeQw+52^EM@dfEQOY~8qjK@v+bbQZ z{(iBz+D?$XM1KD`8cIzD>khVneN9llk=>d122fu7rgHdr;C=Cc7r#A;Ei7D$HWx2? z@td|8S@^}fD=&Ig`Cep&a&1Yvz^wSzPP$N`NxDFx2@O#8=;)@@d35(if4=V8D%C+x zCKAQtYBTEn_Hka*7>rHkY@B!D_9l?{p-LAg0f%xja~EB%=8Z14gwpEVJm1Nl0L?ia zOgHb6`5gg;FT6fcP`D=0K*wy*aQ3st<e*G|VnFvrQ;xGIlm=873L7wFMFSs>2An&% z1>_>w>Z6qxRg&J@U0pHe&dQ6&F0RK<RbD)LaWDQ|<;9W3z4*Dxiz?|}c#L1Hyr|t7 z7k=@}l^0dFz3_|wP<c_?DlYuu*DEh_|KLS1z@EyBTtJ$1+;^$txLmZL<GvGbxQ<iR zaWLaQ#RIP6RAjvHAiftbIv2CHIKlEm!g6>oEI)`h92V6Q2Q2><4>&A~tQr1Myy&nj zvS#?Fl@}LTGu%BphX>wc)C_l<s2NV1+zw0(OrZLd#iz{vVl`~3rthro=2T_q)qex_ zT++aJ1z-KBFdEuq-Dzl(a*{LGZX9W+ENtURJk7qREC8Mr0LM1SMQ2t4S=s$=OM=U* zAGuXUyY(llo5x_wwA<`drq$4#Ck&1%O62;B6(l)I5j#_N*#q3ZhNlgIAlkWwtNWG? zrJrqCHeV=sFSr~pI51`Pc}_P2wtY~OIJW5m(1EG<kpV3r9P~Y0=o&SMGdppsRdsp| zV;?NiY!EcFf56mIQf`2$lsej7lyKy<BPd3&eN9GGaz65DOZE$*U(JXuNJ}@9o$lLr zq@|s-b2Hz}+h1j}+bDiISm3-EMH-DbafrjgITt$P0?_s${!|*66Q65z+M^;qM>y_7 z;|9h_NRJoMLY&X;=0^NT+ZDpjSV;ml$8(NFoUk(U&)8$|DFZn0&%6*AQo0M+yiF+O zX2+6oN<d4?%z;)gBc)?i?;Z&gglj+!&?+s9hH^7lZ88+YX%+Ylm&T1TlJf$>8<&XX zxPBV1F~x>W6!^-`?QH`;!EuLv4G!Lie1v`j09|<)+I-YScC^Zh6%#O5-SOjs0HvaM zZhaESzr3&52OIqV^BaWq)@J5zuG;3dBr93suL^&ja)r%Ev|1a7xL`jLtkvc^?G{dO zIp!E`8){|!T%vu-7*}ZHgR*`r>aW>B^aU??!3$sbq8Gh*?MqO?|FW08{1y0|f%<*c z?!Rhsa*~DnuX)YyTiw2j_EELJ;m`ieEB3SawWkNFYrZcliQxaH2u=@X8Jxu`XWxSJ zubFMzNZp%xJGl4kZf?ot@PCPWXUZF(Y>o$A5dYUaf~aiUE(lx}NY1oy!-tT>>1MAe zZWHsHEHY9+1d{>I!niBtu&5v*S~JPW`N%ux1)MI9oTI@$Tguy*%*_mz1acOwWQimk z6iGG?fQOa*;@N#rO>I_&W9~-gY6RaoRYSEh*95fP&BvD1+*Cm0=>4;Wu(my6jR)gs z@+P-it<M0EbLB#YOQKK504Hj=q(3wg7Sy+=no>z>0^@AC*5)4Enr-QHzhZkF2De-u zP5W^E+d{+HhJ&QV1l+Mk6ElQ_{UwcD;R6}<9zMX70PLcVLXJ(VWCVx@HoBTrf+*xb zemX#QzWrl*qMWPaBKJR{Trl@B3yS9vR}t-*vE1w%qgh8XXN?R_{+%7*7BOJAB{#Q6 z6P}F%_?67)BpE0oP+%PmuwEmufCzAdn2_mFf>}n^c2U2CEc7G(Wj6u>4Iu^K3_ae% z(A*9D_ne_s1v^QE;04G793<{q*KV|T+vb;@?q`m1YZ$?+&k5<-68qm0Sh~(^<D`iW zS4I3TI)Vp=4lKjmOSi4@s?!ZKHMZ6RV<UhdvqM<w^=<L$_0}u9!pd;|Zvq=d_y}=r z14RE|esBa!@BfQy$|L&>6g?w<77X@|=xxq+)&6buwvYViX%cv5=AcL~&WP3eVbU`> z(ZM^TgMYE(hJQ<#^F|#T)A+jpxiI>DJ?gWLWbcaJoMf*w<QYrNKn}I2{R~IqT2KKB zb0=s~PmOm+gH8>;$~}|-G4@9kj|L$iz~&h1*ejd40m=*A1kWrj$@=ZlmGjKYeVxy0 zEHc7^5gz=+ow)1(s3ooC5;z@v^|GW0Gy#gK70kxi<{Xf`-iX%&E8}}(2U|a!vYe=* zs-#oz2-waxHhHP2IO^;#l&sr|ldP$lR1$Q0QUYBfckr2wr%^@q@C^_+ogi?FnDctz z4>s!atiexr79g=0=_P^$Py;(q4!wf-{&?JxipNdibiqyB_JrN=`*1-i3$u5zs8kb0 z6xb=4f}$Lhb=l53T{Z>JJ@sb~V0(b4p)!DIx`D0@_8}MY42m-oTWQ5KHi5C*oh9dD zi<m)efyK$51@M^W|A@n~>c1xta<<{mW{>*d@7{Ra@rTDTBY>!lxZ~dn-gG3@^Aq`N z@OI%5j5L4+j*iX}R1!$-xN;TJBV!u*8eu9~pJ_f`CfUbGveQ!6SZ+u2Gv3eqY^x(# zTEJB_KjVZ?{?x2uUmb=l9?>4E&rKcfO<Lq2tj=cw<F3M<V^-&EvP(zbE92IFw(SJQ ztc`nCHH&q2ceZZecw9QIIB>L-Mm|Zy3;jmU)xv^ju{%f0dU^!ZER*x98$19~o4PT< z55fLojQawsVC5D~#bdnad5C2uwV<+ixuMJm+FhKx&&$}-X6bS6vEz`I<#$E^1y5>W z9t?)%tk^Rikb98^UC~XuV+h?RDVYA%BBh94`DSKK&5ip9a;$b&BKo!jpxD<87wohQ z>6SW3w<H&nkfJ3Sf&{6{SRnhW6-b}9Af(!5K@&|SNT&}D(rMa<1nG=vgMjoK0qI$W zQ|#EkKni6KajFR|LTb?v&;nlV3u(6wr`-}xX9CWt0g8i!LAxPo7R-eKn#p-=-2qF( zw_?~X4YvKhsp%xBl7@BQki<5`Bd%u#3Mdkg-yupg<3^4u$OE+Q!3e~ZiHGS%;RFi; zP^$(d@vrO>J31-a)N&BcCUxc>NXOBH6CULLL5%xn<}UV5LGg6}oX*JpG5gRQlavYt zt7;T}#D|X0x<Et}J0Q&IH}*OON$!!#b7jDw3r^^uc`Cb{bEgOE(qF{7R38VO)F6DG zPWPgRmt69n1`57s7FydRh2vQEak^*aEQs6aqf5aC?3Y0GeYgYNo8nb>Z&z!C>&Zyt z5p3YP6m0yANY$3JCHFE7G;+Yv-8s>nM;qKD{)EB3hbr1QH#+cW<8kO9c*7N{5pKTV zP(V4!<eJt+8|OuDZmM}GDEA<eJSy6_fL2?3+5<6b&_9U31JtOe$NABs(}S;aFF3Wh zqhGl3CibE^Ix<?Jo8X#qxN%W*<y?cEYPGGvyy3=`>}i#R32x?Yjsz~|mO~qEygp#_ zaKnyYD~20ua=39FL3(78?~TOqBBPDnCbQ;{0L@#<*5?fcKui{GL;pVB@+I-O;}nmZ zOR+J64ScQm%vxEaV*yCO8lU;1qR+gePCX_6nfzi86k?5Qi6c#rf|>ZlMh`W1G>f6e z#uRC6;qyER?jS;q>A;4E8f-9mbd^x;s(9RyhsPHPHLf9;M<&wOply+%MnS%8o!a3N zyJD<idvd8OqOYLNak-|X!`~8Pxp28WK}`tvSb>_?u8-F)w%0TRMS3wp%?1S5YfC-e z6t8-ZHi?wfG3`#xYqRm1_gFVgTr*p9OT1W_t@$vg9Q#eu+7xZW=4gfG>b&uEnjdgR zu-P?E7LS@D9QIRr)BGzevnEF|Nhw7+oTqIy9PBZ|!Lxy}GcfH|o=Al_r+L&BrHRMO zIN@BJ@*d!%_lkx-%_bd!KJ$#%q(S&RBQwB-dB*Zw;ihhW!AET=<1t0B15~sHT6Xrm z=?Tsd^dfBAlQ6XBMq@k1#D4^|Xa|!R(gRYdeQsT|%I2c9Yo_uVL+$3!4aCZz&&Lf+ z@Sjg8gRuQkGE;|=u{`ZFUP|6<>gE>;C?O@siIflsPZ=nu<=+Dro1>NQpSlQKn31uH zUYlX}jtX;}sE=%bXFRzwR`vLVrOlkQPFN~VS_4<h8^9DNtNUZ?h7z_oGusYqt&w9t z2n8q}H;`fq9Y;R_#EhBUanY`US4b_Pe{(lO;OHl?HR$Ip%mhn4$yur@#B-x9Cjz;< zmmwYTVn|3Noq1$09o32VIVi_FPMzR|vue$ttaRXC=PMlmC02qG5M-7O^ryvai5ApI zJ+wf;lV|S1n<Z49-OUX+DtT(ifuZu8Xv<MaxRX44P-?{}x^J0wp;LaZIJbz-#qvmJ z_xr8#Wn>_I_1YaanOhNsQu_-~D7AyIEqy)MCXMJf9R<-_a!>^WV2!6V>;wJ~gJ{Ea zOuci@ben$H7JGgm$ip9j{n9c0&J!Pe>$M$?>g4yWC03$`-`<fnJZGA!#5|k2`4wj# z3knp&0&`>|eFy3~JHLLvrKvIJE7v?b4T&U_P?woJA$VSN@zIA%M{)yJZ+5uQ#VXnh z-9NR_GV%18oTcavMbny=a_RM33`bJubVICjn}Aqi)k_(W3j>gUGi6O|7WD+1n!(r- z!xK2(ThCjw#bV-gv7-3PaPb0O0Y{Vea&;f6?95#hFnL)lw}QpoI=l8hqr`VxZxyj8 zv~mf+dg;lqPOqyp&QK>ezMTV##<?WIaoKt6H767-V6k4^fbt(fo_XtsFAe~_ei*yZ z0)U-mHhg_N=xmrCG!KQi2o+8$cSWYLp6SDNWXl3Kbl(52Gz>a2HVGBzximU;N2U~j zVa`c*ko%M?e#*QeM%~HGLSX^`0S%@svP=|NF#$z{-Ft2V3ap&bhtUx;*%imgc)hMf z(&>QtM$2T|>D_cDl%X;VtQB^~d+u$-y#hwSkQIzv6Rm&3T)T%#LV&$O<1=d9MKdI% zv-^spO3=P3+ViT2qtqVyF0_Yqvc<88J64pFi!8c8ZS8PRuw@YvXYiOc%Rw+u-<i38 zq(B2;(DTzi7tcJc|Be9=!)2kF379>ye28E+y;F%S-x7~I=i+fhmgq&3Som8B$dAF8 zv|})t73qzhxxdNY+8>(;upwe@0{TW9MdV@Y_cl+eVXYxWOHAoxnTBy$km_%ZAvo39 zln_>+(&DLpOSI=yx8vISP#r8@p*oN0K~Zck)m=7v$?i7~p6<5=)K2%J>r<io+v0Jj zJ04$v?!SUj$)7${bO)JW-K!CT`6&k;UT!P75etTw`31+tyy4~Fekv(IYUT2xr*pfx zu?Ho*+_kh%;50B1|KOiJtbvcY?siZcPO_m~^ohvdRYDn)Jniuueoj>UuKa?d%(6lg zklq<+wa#uY7551Vga9nCW2T35L%3uOF^<(K>q|Q4me_&)8KXu>O}3zDo;Enzt6o&I zYuaVhwab{-lTFB*nt}dME1^|8&5~oarJDzHv+V|N=N5*E$jYP=fK>zEWGf5NSbMz6 z<AAEu{m814#knXzaouBO?xuTC7SO>FhEmMmyZK}v5<$q8Tj9p8ANc7_7U;T9v3Mxn zP=UfC(tu*MLvdq1Qt@D*FnRx*!@=204=OI{k$~eN0QgvVqP@RW6U_4oQ4Z`U6FwHD z!2P9Sdr2x<l!`r#EEXFoVv*l)vEUo<qRpt07ZZB`mz^KIub8N^J$=HzJGYw~b4_BW z1{W-Oo35SCwy-`XJj5NrZ7qbN9W*u${!i?X1B(lyqc5A=^jJWhJl0f;Z{1R!DZV_s z&`!F5oFa-z-I(9+4i|RH=sb*TL5{%FI7SfDolDzC;yZ%`W-3_x1%z-8&hkZy1v<BE zJ<-9XhJ9E`MlKF;eX|xjegfmvQV=41jm2U(&aX9KM+S}4)mp0JA|AbjIgt+Zlr~|0 zIG{PTv2nHi%1xW;Ee~{#B<K&vC6-rdrk0hi^Z<K+{n&SkM6}|<AmZf}V9kXr0V_D- z2x9d6X!M1(Rh?Z)kt(3-7K6Agyx8~SEbCJd0f9-YDhC>;cZRv(;&)#6!(`O}T4zNG z=U2xtHrZqk^?iynp_k}sfi>`Vg|Wb>?TN{fm==bj9KSOuD*=rtlnWlmw^VTo_ppXZ z0Db}3I%ACq{6XL|>6LvzLTB$+?=1*Xg`3|LpzbqJ&3(%}Nt;3#5uF&9O!Dxs9-`)D z&3Gxt<iJa%vumTXADify>2P7mH1ikjjE}6WNie^tC0J+Yp(B31y}2RacYDJ;W~#)Y zy+KSQdvpE8NhYg2Sg<z>@!+B4XEPh;*Umy<>D_$U_B%?7T^{0GQtZ+o1%(M#u{ot2 zg;`uHrPpcr4gjEerYyKW5jLyYP2Jq<Tg}bjbU@x;PrNd2k)_-W<p&d|?`dRC#0lM1 z*;Z2hfKV}a2vK34mDIulsK~uONT|5ud56%M7?}9K|9-w0Kmc>oK*K(C;Pm0*#k{o3 z+&G@XDNl}m9FLbC8L^W$aa4=WYSBS0r}ETIF6Y7_Em+U>OdQdI^I3R2%X5DNpVM$O z%k!T1{1?2?&t-Xuuj_hwTGjPCSl9I`tn7OA@BJQ^cHu~tKlno&%7Ud`TG)kkU4MbI zSo|~=9>aoDSkl=mcIL{K=K0MF{2$L<;mIqn!@rB0#S>R}&dQbgH{HCdX(z1M$tu@2 zuWiQZDm+ys&Q#%vDm+i6c$x~&QsGG|JV%A6sNAVjROXueS3E`KUYw$GZ{ZY`I7fx2 zsPGIG{<Cvbc!~-XmZ$G$Yu2uPu%t?G<_G-c*|c~KlTs)M%ZedgC?~Y7ye#ePZf?z8 zX|;xhIILT?b+%SdM;C+9q|Wt#s@4Nt)UUM<!(E)`p{2BlNx6iU!C|>b?4n9ncuBqt z4p*Vip8O>G?A?nVS@2EMs$3}V@cE{^z0UBKn@1Y$MyqjDqoJ7t946A4`_?1FUDjOu zLjk4^7Re4398)e5!`UJ9JAp*{4_LRu*csaj6QpN0UWE#7j-9SJ&J!_+H+lrXn>buV z24*L!xjNnM{h|*0-h~_4BiYRh+yps%VBBzsckrI>@H<lX`W~aaGO%{J6=Zze`}=#? zs%#ax{SZ3ekvr$YBesaAyg#lKqRF*&g7|4i1*B;Q39V(2;D?kzx~c-wM+K7e1PXWL z_8EhqUJUpo0_mUHDIxx#RtD-Po-eNBLFn0zx`zv{&^tI8q_a2X{rsy>(viCZ$GiX+ zX=*e(1lI<*R~iO!I*0_OYTtXg&>Ie7yd|3Yn9U8{!={pho?UWx)4@cVK6alNlTkT- zTgLD8z}rH}V}TMJ<uQcW0^s3fT<I{40{_njFg`9EuhC~*yq^(rOXWo!s{svCgOCC4 zEyg@@YuQUlMV`^|UclAqUa@@u2iSv$5Dr=tf}gnpOb1FJ)Y~x#&ldNdgnK+w0wY<5 z|CXu^92QaUE5AFSb6**c5?fFUz$=~QN4vB9#<Ndy-j<Rp_{Ryey_|4+H0>DEnH2Q{ z*IZ)5JN8H=aQNP6YO8sfIxHe_wsC^fU5Z2{bwPi>x6yPCx{0Rmh^F5(B7OFbA_B@y z3(rfWqV8rzEDnbNx)LCj^_+J`>#p#5nuHc~tzPO{P3>%BJG{S2BC2~j0m2r6aaC7w z9xEjl7|NxYK!&(~e|`#h>9{8q567J_P9?v4%&u+5rhhR|X5qVH6gSxf7Y?H!t(YJ4 z=?E*^a8ZOH4gzyaV6Jq0D9@-!NLtZZ&J@Hw#2(M80FN$de~4E&V!|{6=9H-nxHuxe zRv3Nfhw~<@?+s`@m7<2F400}I1Jxe&1!iuv=EG?Eal&CIQ1qqgebK(t6fcN&6QZ5g zB;mXYr)OR_pkrBZe1+W~PPoxI5hySur)g1?<Lr7gN(g%piIW<NH>IzZv~>(Pj%UDm zXWW_)f4y8zt73F01J2%*)>yr?(|Q@u|5*+c2Qwgj)OnyGi~T9y!VwL9G{xs**sdvX z{z9*&c&clPneV4G?&37Xm!fIc6j!t9ewqTTK@I_TlS8mTn`fj`TYiNjnC75#7p$qg zO=s$B^CnkzNB5pw!J!5mnQIhv!u2+ZV>ZA>`~&;a=>`NqNYBfqzQ*6|tOEOy@XQU4 z;HdYJW$l0Cua`g}H#^h&J_KdNXI_G(R?;f}=)Y<Ve5b9$nXyMdl{tBbBh}$0*r6Zf zD`jiH6N7Q?#ABUqOQqhc&cM4rU=P^TA3b#D?kFrA##64~G4OQJ&RXD~qh&AV$5#GC z6BLgt0ZQ#G(AC-fIcqB3-WzW_`}nT>VQAR>D$dvOOL57(h^vE1E)>}8W_M{nhFRQe z;AKNK84-Bh4d;k1B){_kl#%NDcJR(v;bG)zr3Xl1_zg(u;XP3Y0=U#NX-L>{*-dfl z(@8!m$4h+X-<30zPs>y>1n=g@K(+@v_n&`)zGJ-%khY~5HKYpw9ls10FIE}DgIlb! zM58U3u^$I|y=DbF`19f5VQ)E#OQyn`v++CiK@s6VmqEdwRJy=%0Oc;GIjrbnrnig9 z-X8X(X@BzDkA9L;&NO7h{v^zpqrq>$mgV}4vHU%t{Aob>hR4XBr?U!*wkjDe%Si>0 z?j_QzRa^pbc}o-GVkZ=A?d*dCmJM;b0M&@EY+fCIW?lobv(C!FpOeTBCn%CgZ3h0j z0UEoQ4}Uw}T*TjDz4$}31^gwn6MyzSpxhKtI{r2pl?&A@VfYt;Kb7q3Yy&u{uYyBK z{iV}fbiM&bwU6Zyldi+{iw-%csa-iYfO94Cm*T*zLx?2cy;8fN<qc<2<xzLc4D=Q; zIOQ<QD_6jDM80X@q3meM1Z+}Phvx?@u4rFtd&a1Wwey9GlP3n?Iz@lYMAy=+i4yeI z^nLIc<m`*xT<G0Y<8B?k;5r8rLEypC+Kto^r7OzEDP6`LF_zaC#$wY8|66#4u)$-x z83en8Qh;rFIu9Kg>|Av1i6aATtqj5m1wgrUpus@=CM{Lyl`xchy*zsLxj?p7v?n># zLxLk2`RfVEU&wlG`G(a#Mvu97^ye9l80A&bpBFv;dEfq;?Q;gu&!4fMXyMvu!5x(i z{Jk!e>v`|G%6os>?>$g)=B(15UY<h;IBtmc{@LQ8KS6u-n4=z}qnk~E0^=02iB!6f z&eN_zXK~~@bAZN<Yus~;;i@g^Az~Ti&w3oZ#p``#rE*ii`vZgbj|4B+K8FwBHH#hq zX&>mk%Hn6_fc2zIa9(H1c>!LUWIXX8ADRzb3|o)N(A0oF8=!A7(Em`NJGk%&@?^&% zl;MvF`X3nRI}=C0oi~49em9}rnLt_?+1V8JgMMoT`qvboXJ|rv<q?QYs>p}-T48H^ z_Yu_pO8AR-bwD#4P}o16D=MjQOeq8dza!xKrz2&hf3E<S1>IwdW(b{T@M=O87UpjW z>7-#=8hkx8xP=M&=~eiN%9e>&FhGFzZU?QZaDUf2Q0@{X(P++VQ9sSTuoF-A=O^LL zTORX0{E3GUfUtY8KSTSyyzxp!y)+jzhVSRCb$rI>-~*WV1)kn(Q?cBRCS_*~Pr&vf z1?Q9O=oRb;crwqJ{ol>oFEbd0stq}2)lV<QPXj=eCd7-Vx~ng$v>6O>gx4_gT@@^U zu<xsD1)hwK@cLo`rpzi#q-G^u>L-kSK|%|=ISTHsQqF{bIB@8On*05GBdn?5xK<ID zW-;(32ylO2IJM2csj4i76dhjlCc<_G0B$v&2LKkf8lS4XcUr&qdN|KqtiK~Zo@-PE z=MA<$%Nx%o=W)6~oVS~|I`+)oa{c$`qI<_%M|i{H?Nb|Dn$bX;4OFb{7vptj-3dIF zST}Q+K+x7A*+9*sM>+oNfqgl8aJ>E+f3LH~B@QC__a@(KUNsxNeI<JPp&5c_XgpAF z*@n42n`Z!uDkyY1>qT3~6O@u~`PJylQU9yx%h%0sT#dL=8JlmBeA-LIf9h&7pjgQ> zuS4{W=*IV-9Zy4|+ea|f#nVXOt(`r^;3r)uWF_BcB-n+|81S(SgD&J}AVYA)V+wAY zwXPe1@jU_F_suJPs^D;i2RU`|oBl~I7fQxUyZ1&@-;So7Ri1>V`mhRjsd7{CJz`jU zeGvV=c~vy~PtmON_?RFBOJ#H{tey!;X6n7sq(gdge@GXle*U%6;)(rQ?1AKmmG?#$ z_1?c%-aB?t@BO6m-s(lY_dw-6mK4^~miIHJH*L!CxMP|Xg0=4<d-GS=j|=G>Y>Im( zw(06Lu|F45OUb3sF*4kbfrqjq0E8v)w3y~To4z!+Pgv4fnXkD=`jXCJ`I>tfEa@DP zuOH#((x8S9DfH;&3O0tiJp%_?z>~ToIL{M#UB0iwZn*A$sr9GpqjatQbj^Lyms)?i z&I{_hZUom;v{HIQ?s2+cuA>m)RkZ$eAk~u`wo;=gvj?8zxZtP797icfwD=syRRN^u zIQ&@ZMnP`(BSmyQ>7p&-!~eXVn!^hOdlDS_K^1{D363`fWS-zCF4I8rglY(@V=4)b zYYBps9?4TqaCD7iy$OzdvrmF!CSY+Rgfc)mattR6u|2e%$M!PenLp_GCnF2X*eAhp zop)39w^_g_N3|`SEdkdS#P`Mk&&3y#QZK$%Q}^B_i(Dd#I-N%~8clt$VjG_&+G3ph zFQbb-iw&$8pxqe$wr!Y5zV{WwM|1BxPDUhO6SF!gvBJt+TX%#gYgE1{XX<-%O`E;c z0IfSIz_4s`f<cYMA8)8M1Uv^14~hyN-!R(7@`!Tg>Y_?(z${x^!#p+qYSE{W5w1*V z%!~cSDyeL7QoY$@jREGQl1Y7pGpZ&wVP*k0Z*ljECFUxWmrt--c^QdMZPUV2KCeRv zOB<xO=t7v3tYXj#X=yRSbr{eA-49WwX7(NQs@^r`xrqgtX?^j)1pk3eu&AG(CM-ce zwy*+~U<)znu!`-SEie-(?60VheUq2B1li@eBgI*HbaTH)nT<4|#W9J(9MI8|&r!O8 z@m){e@mz1PN^1_bJzPbUsx_yV15auDjKK-R)cpT9aT6YGX-}aXu0LLPs`dt$@!dAK z<Pt@sc@@K2$i)B_+F3OWtC7-fI5&?q8l4B4XLr6}^Pc>T7P3h;SyOaMdn#l*J71T* z%+PEh9Orj4NME)k)!5DkX4GPW)sV=Sg4J23Pjd@Hi`LiC#U}Ujz!AV|s|HG7nC_Np z?aa;(!$lPs%&_&sK(#<?Re*toSu$2Rl=Y}6;RE*D^*X>N?Bm)`NGV6*P50m)4bVM0 zJIywrV}C6W_4)wv2CF78?J-&~zGL=XfmGl91?ozMiE+J9K%#1niEfK8{v*8RNU^!R z04@8bmj#Z_vnr~*MzNUK^bzIPuBf~gXSrNK^H;wT2@;62H27&s0>O)YjNGS7Qpbe> z^RB4NFN6z$;d1#~&2+)tA5HEZ*sXI!DI7evn;Y}#0y+pGV9ElqW>ToKIjYRgl^rYc zFXWDV!HRUR@~c}})`E^mS@wdWFbNF~zaStz+xD=e)>oF*3s8D<9VVWZr1x}!lJqVS zs$Qcz>fW~Rkdo?t3TyHZ5Aw0JvolB2^7CS9R_mE%yKe>fqHfcgUabutd9*kLo7mtZ zuLz~f+80CKte4P^RyV-dRbm?Ir1q?BfB}ROGZ<X~pWu+~$#JCO!S!6ars~~wLDs}T zUG_17E<Wmep$Xl*-f6D}c{X=5M800%*8PkZ6wn+{=ULUxo^MvCnN)WxpC+X-2&hb{ zafpA9UeAeM?^vyrH+4SJkmcmhdGVkN4IfN=ZaH7)40$%&dbT{k()FHFvCi!^`z@H- zPKE_ItU!BV0MVnQT`|LSP=&1*@j`L)URSHzLzGv5LS<2YeYEbY+k2KXdFwN3-37w$ zp@gp{Y?_MpJZz$mmvW6t?E*4vJlj8jq89)kw0B}SuWsj-xAc)ou)eF?w<I2Qo}Ee8 z7y@4`7X(}yQ2Xk3TNev@fb}Xa-evK)^93G9wG4XEVkZ2p>}tTpeTth%8SUxdOihAs z=v{Vfn=;rKH@Nd$+|0o@ZGhxfeLqtr+lTv_m|kUaAXiX8<5EDdQGVu=9f<Rgha5S4 zl&^o~Zag{+r{^@BV~+zjxPEF?_0tzi`blZ7nb@Fbwk)BWy7?8S1Ybdk5hW4JRY5vB zcC5tJHnjdrjm4XPvFv%#k6SzrBpD#n1kNlB1DAAGwXEC-dZBa2z7v@sx;g15$YDjw z&yNm#kt|bny&Z(A;p^-8Gx(cqq}f7O2(VWSDkx%|5hbTto2-p&nU03ok^|v67L(JR zn;u9d#b~lKQZo1#26SG?d31s<rKe9sC#y}58uEd9O=&vH*D(4KF}Ol^gijKHNej4$ z!Oph%ivuqXAiOw`tDiFt&;sU{8Q*65Tf8Z7)}Z8X>Z%<`8VV(J{;{yR^FaDANPi4& zGVw_Ct<MQX#=MUOxE8Vz&Yknad1(bsZW@*0qys|wO-Vb?{mi%`tkae8x@%C|hY4IG zT_gpjeND>IIoI^s{;(kMmS(R4MXCz^YVYnSOkYuNoz?AP$SBDJ<96|VWUw>+?<fRj zd`VE(;18P2{x0Z-?*Z~P0rCSjhiqE~8N-qhM0hU1^^Jm@SHZVfCX1i9VwEnxLQa;U zNKe)j9K1wVEY=)o{|er={dU3*AxcDjEd-nk)fH6+nn5Vc|7Dml41EWC`&a`0nSlST z76;{3)RZnacpFGW6Y_LxBH-6U&ulykmNFW?J{ta>?WxU3w9sZ(hLs8dccJPth`5|6 zVflt=?D7%0Ek}y40v#DV;g85f*6vv<dPIA`C+^z~tY0uBcVSM2+9UcD8~=6m>g;HN zY-Yy}cF`6Wo&El_gcqxM!jacLT7@MFb6jg<+|-__F<`{RS|T_vpx#LRM)+BE%O(F* z>8FC?wwl|xQ7*;;OZ#t&vA7yDX9pNeYK#XADS4ZFXSbOF8Rzu;q7<LVz(Hpz;h<f| zV;^W<Sd36RV(>uCULEfaU>)%mx&-2@Yo`wi@#Z;P{<sIxa~PO7)c@d%{BZ-HO1>&~ z;mD`)9ebQD+kC=_C!X}glTSYRlv7UOaePmH%2S^D)Tcged>pGc?Kr+?Vf7}LZ({xC zX{VjGW(^i_a``6C<O8MMd%?y+mBUSUm)w_^;PLj3ft(53S<WVJ>gHG6ec>wzl$Zma zZf5^wDYz2H;eZX7;J>Bqqj7De6ME8Xp7kAu3^KArGQtIltiw=>8~di_o2;1N&1UE0 zaq|U!bD;C7xcPj)IoSDhgR@$+hR?%2lvArUZoBiF{!Alv!JBLRX0!7dYmGNg^P2;O z)_y~+Emdn=5641@9)Nk=+H-PiAF$SFtDjwLjXL3%aFaC@e0{KUw>?R#*!G)C5Z<aI zu3wzMO^6<`UDC9d2U)gRfx)wiI|)%a<%k9<HQOAyVXls$VP*8__y4+jf(6=*{-_DI z@vpp}Aa=4TFx)*mj_+3NV!;688l}>Ab9o`&g}=i;I5~#_ix`J$XS&&@v3*8x3@>pc zN@5^hKE3yHy!R5Pk`y0)YQ9YU7=v=sfZV84?m4twKC~|Wh9R5@jJhGLoFzi52-X$S zR-?syipWm1ltrQ+mMpbU!qQG)DS>NfVM|>d&cmHF18Lkf&1OJOLDyrXSMHMji<g(t z%{T==QatIC9FOZK5;O9YKu~(uK!R=Uu62WVbB)JIY%s9#*A;A>SmrOohP*F~->^a# z`w0cm7!smCbM|_8W>MHc5E_G2)iMf8V5-`2Y~S3D)$WtfMKLiEx0C7dY)Nizi*fm> z45LHZe9wZVU93P!)>`X=-6-xDsK&8`4M#Kbk7uCj`+R5g>E|{aOBC5qfW_>6&XEvD zXX5!xkIC|044coE4}pAlH17HtagWV<Ej3E7)g>eamlzs+EG*^e!5VQa5jH)My#nZo z<Ob!e@%HG?^AM{wmR_%OjttQ|EqQyq=z!uya%r0B9A@}MWUhTJ*3}sQVq=`vl64T^ zUjt@Fh&2KSH#es(Np+)<Q9Tilu(K^^4uF?engo~M5iotgCSomK8?~4f4!;&WlGCL) zBYx$oAB9Qi&%xOa#1fSC#P55xR0^|bKJ!5^vBDPN!r+;l^k@z0Fa?J$Jbp{I0dP;C z$X||u1n74L=za<Yck#*$skkXF;kQ@PJ#<gCMV4OT82gB-F?T_6$+NX>hTZYq(W9ue zdK~%)bi0=<Z5v+=v~>t4wyGj+Cuto>%vrDsuGgpD*I|)0qb&jR%*JWJYK;267_}>D z?tE2%otijLl*|^H8c(e&DT5D3YaXuHNg{3^Wka2>#h4o{TsaNlifq~r41nPZZ$Q{6 zMW$xK1>49CU=CytOlxbk=p)F&F`SPD06rY<#O1@OHJ!8qoW_?8(o#;vltkoiM(YQw zA3qfkxqduqsQm>J5qopR$y(}O%R+NG&<uKag9NSb#4URYmgOw465pATk*FOm)z4J3 zO^avSD=tRgem=(F`j!)zjv630>)UT~T#V36*(^%mekmGvHHHbv9(}u}SKrcxRrRg8 zOn`}^58^4RuG6<)j{aQVT0pp<zTF)!I-q!w1Fh)WH8uKHt5U5*X#W&$nggy^xL*yR zT;Xz3Fm1HQ3`<^K0D&qh->h&kUnNcJiuaHyT;;3SCm<(R+CV~9zaF5w!Zm-^IdTyS zcNf`B3HJThxO$f^T#uMYFq%Ua7C-QapF>!TV7A@BCk3<E=^mfM4vW*~m0f>0w!7!H zM3!H-@OFg9%`?C~;RzUr$EaIsV$`pdV$_rHcza94s8eOvVpBK2;;hbBxX2RhK7%<R z-$ahlA^r9fsSf;SI@M4JjLnweCpfS4mGR%8j%;AA-kvSlj`O0=w_5<lM{~?2+X308 zE;k3?fiYt+g07Au6qNlgdZ40X4pU&cI)KlRrkAt(bwPCNJGB;*@E!+XEG=}PgnEwr zw2x2nkLiw}t4fXX#nJq~+7c3YlNgm*L^e;&p4();9Gx*HR$`q758jZY*0Te6fC26Z zha2K_MfBvRuT?ZKH2=b#2NsNmAD<95<9GsgIoD>`Ti+X#7A;MZ&6yNzffhtOU191K zZh}zqR<925oTYGjo2t;*pY7{kj6%AoAd?O!W)qgF+wIvB^IQ|HyOn+HQ2PW7kq0Xj zQ>0rvGsT+tSzeg6fI!qmBnSC2d&@a#_U0G0y#aeQNx>UqY@QS}rwWLX?Y+5!x(#Jx z@BbOL@)gq5Z6N`xaT*qDdlv6n<mGC+9?!D@i+cicz>IuFPvF;qd)7)PM?i9k*>SU% z&S7iW3G<hHv&=BJL|4u*C^GBu3nsE)z&}D*Bi-OZ8E2|{W3pmQV-&a0z_F4Q!q({5 z{R5kU==Bf4>1CyPTfFE1<HcJ40O!hA;xSHjSREXIn}h_WG7|EC5q4+<k=Wxgn=ufV zrXZ=H6y6>%xqDz`aifKJY|Oq_+yev@)Te-h9v5LCSm++Jkf|$=#~6e$*hC06GRUBe zSD-CnUxwm(hG)4djY6CR+6Q5C^Vw4<&w{)&M&X_U%X_J-q;w}eLFShTN-Ck*Q-EF7 z`RXO=!FnZU%x~^Am0YnK7mTcn*+hxQ(y*kbIPca=D~p{&Wxu;HE?Z(lg`72xgIL3A ze;Y44tGTFET+upKdj^m}CtWgm$XM+?0h6<u`PD^M8#h*~g#P=%YKg1%C-h%{z3vFe zoxSKo?+<%1C#V|f{bVmC6PFatwEQNet=zA5FQ*T`YWlFmuC&Fp!s*~189dxD{~M~B zHV@Zb<IY-pU=Hx7<~z%4U;?h|VGVrTbp_7M2d&JJ>?!%5WQ=*w=F2ZQck=}tCI|(e zQnqw0Et=vFE@n_SoXZ~8Wr*21-Q3<g%(G;<dv0)HIUes7<Fa}>FWNuL#F&9h5@TC@ z;0Xp6NRqHJi~0rLY#2o=o6O;B;q0)wvjN!$3lp<{Q7E&ld;ZW8^*j4Z)cit)sPt>; z_U<21b9+^yniD&}a$b<Ax&8kHM7@w@r1j;+0~6(cklTkB<W@(k9ey~@Rs+}ek>I^0 zV$+K#9LQHbfNxVbzu?5S8VDXFIfDQr2asfbl;?o<tPoOZzOlk`Tv}N^<TR10k9?mS zy*VpbxdN<ka!Jtv=OUH1LVE%uXRUaY0L$;?tM%NKmF&!&vnmu!c3s@YC;!Vm8B?;M zdoBproQ=#Xnm5^_8wdtfnsh_b_oFTInHwdYc2TtZ!{RRS0K>hT969&Kmsu}af^}4n zD@`PAlRV>v%9<S^d!c^ZJFQ#2)7cq&nfh0HD1f1$s`?+DiQFsOPhOQe^I)xJsSum> z;Xhbi)CXvn1TFehZBzra{TP3z5XT7x9<kJ*z%=|1m+gl#=v59-4K1n$d|=giNGF#A zMK0>055qwx{nf<xOKO6FYH?Z6no?5W>~4O;^#tF5s{*dvGGN&ec&T!VRzN(sRF~p0 zwtCRbCaOC5!a6UK;7Xc@4|V<uvj%Vw2hLy?igLwJ)Z3lbR)Vd;m+?1hoxC!Mo_z~- z6z9IS&N8dEKZ!?yFEPHlynzj3cEG%g2Oia5gRJ$RT!XADN&3ZsBiA4n!WA?~$%oia zNV9w~T66Kr(ePCCevU1Lp;jJ*ppgJvmu;BVyf;s#qaq!|_A940hP8zOt1hWVRZ7XT z?nO-A<(W(<_ET*J>pje!19OkH6q$_U4}#87y=nm)NSLriV3T5?Dz>mV6z|mmxYvDI zVjNgz-4|%jB%3?!*nXMpF;3kiX5ybwmI^H8o}Np!aLlrfqay=a>4{;3%k;JB`QneS zJYc!&l|s9MES^L`#HS#OJa9-g*C=+fGl!58M!hxms_!qC`$}>-Lb==(%k?HJa+%+7 zx#Szjl=qR#7D!numq-O7^SiW7&Ujo&E-8CHUCMTQ<kHG=bDssdBp8fbDr>N5-|hGy zu*F)pqM#>Pdb~H4xsf7fQ4(AW71yBpkV9bW{8eQ|HWNzNW_`+$l~Ag-4L*BAH>1ka zu8%6lbH-Q_P%%Cg6t$SZLVntCYHEV~T!K{YL@%UkJpDZ>VV(6U3<0^Yu0c+t;dYXJ zZz$=S%VRK}`{KgRh-6A^az#AuY=XxP+FBAZYi+Zuhk!%?3@luydb3`rQ)t%&%nK_t zR^OBr8r4Qsq491}p^f6Ytk5Pv^{PTkBw0wI-4uZLQE1F}_bRjrQ)rMvQoE?o2=9Ul z?Scb4cm5|OZNq-rty~c~TH>Nj-TZ=ck@AiN7+ehj1;>WGZH}k++P3tRfb8r-kLSr0 zd4cW`rj%3Wjqz;kP^?QY(+x<g%28Tcea})T_p}6kaH5aGKB}Ql6N_ZhDj7i6C#dS) zM*|j%sHqm_4XW}Bjwilg(M-+amhb)`ZGj2%SUG*`+-`2n7q{3l;N(?+M%utY2Paw| zUDZigV%M>Xq`R~lbuYP{Mt(R~Q}C`bEjgh<9xvvyIsPJXUl&kaZRPGPzE1jw>aEws zA1&k)Ma1NvF)flwO<y~ax5jBUsgzm_84QMdeZX|C!Nlbz8IB6W83qka2MklEJ9n?g zf$6IUPHZwKe5%8A|E*@278`uH2{vx_IS~;a#|rQ-ybU=1;;j`WSv{+}IWevCpry!H zfbj5)$c|W2B4==kQNPn18E7+_hcjir%i&|HM=OP~-v!@d17l~PNJ-BQrus^ezU7N( zS4cG54WtPqlJ7iWL6NKz)Bg<jK#7?qRS7*mZGhq@uBto$0of1}Hb-#nor>Pmkwx$V zTdfxA0$3PuoJs?pz`}PHz2ozwC!_G)OW$#9(KB>vQ5;)@x_2I1^t|UkAEoavRPp=T zwJ$mSr7yz=Cl{Tu?v=mw+y4az7frtU)vv~>MZXUg@v4J8HAnYsNu1()MEoHhZ|_Mb z_h8So^3Eumy7?7nF22GC!5rM5gAv=|V4OdY1C@TMrh9WU-?4Nr0nJuH0t-QBngk(? z8s+5vYfPJ}vtgCSW(9($E8FLuAHd%Fh@%@L%_IJ6r5D$dutQm5+0<Qk78lyv8J)$s zNMrhPBz9qR=xc(1PaTe?p<sw(p8Zj^!X$p?5HJ<$IK;5>cMe`o=q#(;<{j$mqh}u~ zo9;zu43)nidnC<nGk~V$^?bGjc)l}pam_;VP`q!5ZhgS7QnzW4O#rU(Y*d&}kLGv9 z80fEyG36pC4iqTJ#fzXphJ&GF*$Q119lNLXJL(uPrzJz|3|o$}S)sSvR9PxJ;k_;h zp7!EE-3!_4x9nk~z^v6xICTgN-?J^^Q3Ns9_{k9LQKr>s$xL1s0DjGun7vW}VqiJ> zr%mm<bLoJA(r)wO^0890*H@ZdS7}x|%tx~`y*s3v@RXXpq0;Obm1bwTb!RlYt+&}8 z$`R$I9&U^teA}~Es0R=?<6}E}h^^h{dVAQH90&3S37BTt(M0FUyvU7Qi=}V!6=3I` zWPSsJn0FcnkNWrE=bHjb-}mh0f|3>;U@Gwp1$S)|+@k$pAxB(A25^Aa_EhsHm~CU1 zoWQdes1QHW!1FI9FK+Ej+b^DE(J!a-mri#x7LMWNfaa|MjVCR+3@JAOXnL#7Z;9t! zIotCD5xFj^Qv7Y1kLHXBr<;D)Zr3ydo(L^Wi`#dIaX_}!d#dhzv{n!T&yFstu<RVN zbc*<RGSKm26rJt9%RMMP1cHziP<GK8Je`km(I3`Hbs&ja3;6=HO?gbU4yoLD3##3$ zB{^V4McL!Zmeuv!17E(oCwq{ZhZ3=JY^}^yXts?7EWSJw#ViPEY;$4`=6OcjEjU6Z z_ddl7^Q2)?t09Z~<xj=yYl1a8d!~2TM1qw;X&Vjjh4IjD2tL&){S|IP{dDFod|Zib zZjWI(+t_PHapX<s-4KD52VCnVOi!0qEAKWGatb|?F?JKp0&bm70?=B-qn4Pa!K4eM za^jca;su;c|7AN)ebJzNk)~;Xw~!N*Lb8=##|rjm0dy`t6G!hdZr2*T&ffW#hTj<& z^Cj#ZAsT`}j+6!4r6X(rq0Y%Oh%iS&>8BzRDeg;$1OnCh3=T?DdK}8h2U()oT>-%b zw$yn-5O|~l2*_7EG3rkD{#B)y?~a$9;Lp;_L2$gQ>NEVU)ZOTuDO(DMpLY!Qu21*9 z*0E^}j#)~Xqr3sTHmXdd>Qa5Di#@EP+ZWr;?qx*-+J}N!kdF6JT|TpxkW*iu_n@L3 zfe9z1Z9!a1NP<X^#Duy4A;E;5xt~2=fSPLrlH<n`%0C<(`OdpfFL8{i>CSd+Zs3jO zszyCIYj$8Y67-6;zRp4WKEgZjTXJJ`Sk_amLbt8r{U_`FuDuU0xC7qcV*Agqg(m}T z1D&Rt{3>r?y&fDL3}TDDpuq1R_{*;l!)Cyc;-tDmL(<P*=Fi&H7qx#0PKbh^O!g)I zjKz3J8xOR1^WtQ*B;%6CN&)!kyoZqeePGZ%I5v`$Z)*4?k1{Fp12+68SieHW35D;Y z=~3I3nP6#ek*%Hk9G$?Cj*2?Y22Lz%!*ul9nY*;rOLG{_63xFI5c`=D$0Uf|*xB-* zH`6=diZ+ZU7>}Gb11;e~;Jk(N6p~wmM|<2FIx>dNu)E(45d4^k)#}F7L~>8wL;ywz zfQuSZPo3#}{KI|%k^OLVQUU0D0gxa5P+Uxw0J@q0StT<-n(?BhJc0H7Xyp4A4RTpm zcA~Ps0+FB(BNjcEO=@bQmV?jc&)gma&D3!4Pstsai4X^G=Cj<)gU73$vEPi`JuAnu z&d9bgh=n2q{?x`9@L<#pCLSO(5K-~-dF=TS>6ZBRQr_Zj9D_H5U3KLXqvp6nUtGhT zmH}+%s|~Ia)H6)k4|MKtvP?raSf@IGq30Xi(ioI4FdSsGhv8_b?%bL-iy-?wtRw+% zh@twS6t>mHXm<BR8v&rokR0yH!K=DQ?vd5HM+*Zx{|OqGRe(KQ>`(v}$hwO7=KO)W zbJko)I71+>h)#UZd&|)Rd#)3N5x7e>_W*WulYSr=ff9#PnQbgR%p{TZC_E_qALPr1 zXY>E}lkx|NB&J;Hx9vZQJ!$z%NLmi{Nx%+F{38A#*?6{+jg1C!DoQvmwao>&zaUp5 zA={_|v4<RaWXd@5h;)1&!>zvXv9#lAEJ!-$SbmN>{&=iQI^l%8@5Y!ur{dgnW+9P> zwEZ`*{RWRu$KmNnLqbqIpIEnw>7r6T@!5DB#jAN<sb&>Ze#JvpzT)-U@ZBYqs;|{1 zz_4R!_XCz`5*j1|22jNA8x`3u^h*?}p>P4J7S7M0d>(G<YI{pS>#XC8GvxsK!fqKF zc;PA!q1Eo9@+9Jc8T$?%bBoUQutzX%gnD?LH&~66dp&duXtKMI;$&vv>6tU?#F$j# z@JyKtZhKEu;5RGA<HX`KsKz);U&;$yRv8w(Vm^rBjMD?fnWzYwS_3M$=~7wg;0=ba zlNcZn)@luOR{dpXy(3z$j;&taTK3x2%h1Y-)hpcTJPt4O#0}nU(2MPyB4?EM#|fa> zYw9gI-n$V&b@rW;Cc>DjV0^0Ic;T}`&Jr-5bk;Um2vp5oTI(gV_2wA=Iad7pG>yMi z^m&f~d~magmzG6*lfd``bQH|tPAXk205^oA#)GJGvI9$>gm=jb>srfIQL(JJi`jAz zYX$yWiT@76e<b4JZO&c)icrF6AbW;%SbW&EmETycf!ZFhHw#}l3Dg>54NkL#JoS1k z=CH|~r=fA~n6U)srk>h3itYq&ox)qVG0YoJz>SkRXf7d{z#l|FVDn~crERo)m@V{Q z&Vrw`5X{#1NVkeUX%P$wnTMcXz&0S`!BFmP70NwP=qk{{Qa<P^)sql>kYOKGM`Y(F z+_@LGnOEJzhX(`XwhEA3iJ4{}t$viY2!&Ct!Pnw!8hjg*O5%c|6M=qHC5P(~<Gp=I zHfejr6VMbMx9R||q}$+iq1Nd75&AXQmkcU!$;k3fa|EIO$V!~bdKj2fKdrMyTlPZN zk98)0lL3w&YONqMF!Q5`sfY}masg|Kg!gVsc+W3;c(x>a?+N7is=wm|(u~w97xoG> zEgbx%s1qR-cWP893Ye51<(kgJ5dPgwVPwEl)%h!VbJRu)gd~lbEWk>kTa76$B7fJL zfO`U7H%MsoU`)V=yuqpout*7BxO<AkM8yQmam)&x>c-cLtk3gV#zcn$SvsuR_N(ZY z3}iMa2|YtXk6y>N6_6k3lX~=grh*=<-aHuee6}xoEQ(qHJvuy{<z8+g0lcrCfktTX zLdw+Bu=UGFsq|3hMJu-#N`o&|`S^=5@Vu&$JU8Qf%q%1>_u8zHNe$@gY5s4MGK%B2 zcDm4$q<HyU>aRo(&Usu+30YVM?aW#a?MT5uZ>dZWwuzAmS_&#IYwu+bs5*sT09-6d z+gD_CFh`luVYsQcEj7Z05)x}Q4VX^VQt^yn(yBfB3fS7P<a+!|Wl*U5Uq((Rx?yTK zZ>*?Ze>oc=;3}sre7`TBSX4I;p8$0_Gkj>M{T*V75n9q9Qa<ZSHL^eBQ>v;ldoD7U z2KMijfnm`APokIcIRIDj$9)IL@(p=9t|t^x>Wp$#?qrqW-pW!ri105^&5?uw_Ascw zpfKoBAk?jSxU-wi%Kotz<_+RdP79j8J6Ndn7??=^5V$OF;KPCyz|*J9YN`}B5cI;X z`Q@7QP2K#0iwa+`a&C9tSe`yAKEwTF{bNi*nz35JUEdt-zTXm2gxSwNwB{Lxcu%V+ z^4a5I+a_1mwh3I|?wm^7ETQXZdo0=>H+8~MOwigd(2bQQ7-6k6fiODJM*$fwQ&sku zU9Quw0pGa+-<>vgq^UrJ>co`_d+s|N<X(7F{KN+H{{@qr3>MLcg-u%0z?c>v)KV7$ zT1K>wc`V{tz}APCE-Ud8&1`#T6jHC3{BXsAo7HtC(caw6O*nV4Y#TM_R8a-rgx>q( zXfExi6&8r`E^Kgl-=HDfRzA|(Nt$9Jy)MQg2aOM3e8ka>5uS*|-!zeKU%|$l#o=8p zTSgU^zK>(p!lB472qs>s$d_N%72YF0s&wU3lL{3$`O5MMp4Wz(>pRWUafkJ?s;tH- z+9M_InF^fw6qKzJDdYAH@totfQi`2aT{04DU{nYY3%ga8Z5Wg<OtF~gEgTou7w`r6 zG4q}9L;RY}DG>5lv}`F?gmgwl-h#a@Q;{|Aw7_PyT-i_Pa#-2`Qhz}7Bbo)~U=ZED z8UgLQsNQCz%Dk&l%a(AA=pJtJwu!dzm~(|p?poXvB7bcV!_^&^7t&~0d?gyA0$t|O z7(s{pnKcpsa0GOoO=nfl-T_GwqMfX{koV*(;%BtrT8YDxy>Yd~A>ulKoCzRZFC8%? z6c}%^^j~wl#D=*NWgPUVWwV6Q{B_a1<ACk{2gAYj0i@%A)$RSHxKKg^qtw}bt52rK zpl^=$F10NH<w=xY+*^I|t(6y5AX<8{rpK+77sGS-$irbu7P~NZenYbOUtw}y)Nqs2 zq;mqRV|Irt>FkqBH<?J4)p^|GAOHB)$cQ#|VgeQ0I(h9TiZ?+KPmQjs?m;|VvP#S; zwWs3<1s!st1+bW~rJT%^&s5ml&26~qWX6dPg73$yC<5hn+MI~iM$^0g^QzSzrs!eM z1E8Q~Nn3jrj-jE>+*zw!6zR$&j}dx<o#gT^N;IywmBsX;0(6#RW1}gNFUcHebJJbU z^45%Qs_?!oVml>9H(^SdCjly3RbzlIjrZLEVFTFMyN~9!U|7te@LaKzB<|2xEGlwr zO(f&IuGh2_cOHR`MI{R|C24ylV3vvo3FDq-tfIxy34+&{UC-d23}{9PP0i@8s*Dav zn>sXJ9S=H_qzB0)w0S*v0J|W=+hh_M?gor3?TDtw9TlzBOFG-W{ca_w(uV%r$W;$> zGfn1Z3flVm=--!G9bG1a$9uBrG_$se7U00vLkV?S>_?=PC}7sXtb3xsmJ$WVax1Gi z+BA@nK_$4%m6I5Z;^!qyp(=9MtyP>jXf071oQ@nk#7_4uzbscIdDoPV6irh)lB7T~ ztWwUn-mOk3-Pu5mZ@yx)+~YP`CBnccx(&;dZwWZ|Gg{zi;g9J%O@gzxF7QXl*5*MA z0X1kequYzdF3`vq*ZNT%&d)e7#j=e^)FswtCoOJLYcm2|ipw{t6Dmvoo(Kpnrv&%` zp`|(*IH3{b3ozbc1vo(OnqJS>bWQ<E`#Kq(FMPdK>>03&(t^>R$}a;k!>S~tL%IlQ zOwZsw`XRLvo0v*$dXS3qoxv8qp3e^HuxVnb_1+rKcg5o_;HV!6JtwYUnxFnGu+7qP zLpg{`CMgLNkO>b?<V*6jG3vbZD+UX^3WY~e@QLvCLJnO+OhgFvYc=!6#E{LleZcZj z1OmMxH_yii&xQ;S;aX7;zA+r=03(DnwsD2OupaNFIR?sJl0(X#5y_%olgW^`_XVaL zu~w|m2eEg?<Br(s=C8jB#Hy}gVZ;hU6~wmLf~D&rUv$V@M5lkRh_@2ns7~-_JXv4@ zePJ<31nnB>DYm*wyA>lNg-JUS$WG@D>U@;c;c74};1?Baud`uJA+&7I{}1vJxrM~? zL?WJOL6V58#0Ijf1Ti}aB#n_N$Z=ob*UMx$b0yNT)D5;r>3Lspw86M)!gP{66#-;A zX#I%!5}e)juT5WYv}b>ISs9qHe{cp{je2L$_Ei|h8XiE~C*yEU$+zQv#+Wb3v)&u? zZkt?g=jA->OM<<*o11a|L;9DZ2Kv-^cZ@>)*X-Q!(UxHhTU58XeIzo%3wU<6zSu+v z4Q>=kgKQTSz%sv%O_uyRu9#-%2xv>Anku|*ZXJa%K|ayTKRFh3r_-#x@d#h>-Q9A6 zE1kEN3&}2t-acSCEJBqRnLwdrvkG-s+-cVqn9}xYkG+}VT;?n<lBVHSh}rya=Y=!+ z?%IqBWwpVssJSqNgC62#l_6UG+dKyq+%Z`~Mnm%K=RV**`i6T8)T<kK5h@R$Z=bad zXJddkOhHle!=I_sHi>cTl+7ChOMR3L(_5}<)|swB`h^st<PaFsG;5(=$lb1K_%&&o z4<7lThpo^{&yZfyfuhWdYOfc|iCUeHc6-sT!`xv4@o8(sw;V=r3i|g^Su-V-bs`>Z z?+KN)A*(EI0r3Q6`Hg!a-rB6?1XDj73d+eM&%^Mzq8K;__|aW(es#^%Wz_j3JjHq7 z`F$tTMOihu?1XN*u$zam$#fIjEa@he{a{iVlqC=d?X+h4XgxR$`OO(J%6z_{%;yWr zyk7uEH4&V+wJ7FUbGatVnu|dK?6aPQBa**Ed{Yluo4p~1cb921EA}1BGsaeL+`<S) zj2_*lA2GBV_qgK+8Cpd+e!vdzd)k}#o1J^?;2qxgTsH3ybo@LY-dBKO?F@E47|(k; zyT}7@_Q)X=F75MC#{}B*my^5wiQl>Z{8SG_gqiLQy1zLP<8-&VV)N`kWjY1SlA6o! z0hTm=Dh)&cQd0Tkg{-Zm|C7p>{!d<KLI3yTg~V#Tn*Wfn#Pu<9XNgCOk&Pv&$FfoT zxed2u;SR|-Z>)@yK2<W_*~*bSeOA3lWM8ev&;rYK8WvN_t}j4j3n6U3<7C%s1-_4& z<AOETStqX=6?Nc7#<xrST(0Bs1h>%hs7Q)q5?5d^TDy`{U62DPl8PMMTENl(r;Ls; zcLy@#E;VyXzNhY_S-G_c<p_l72ADnx%3<b6Q)c=H4UAptjd+R~m=MZFTxL7(lUy@8 zDJK^a>dA7%@b1d+$`Qjj`g0>5!!tt#BSUD+igTE>18&9nHCgeWJQ7xX#V?@N7q)#3 zY`gYx;Kl*VZ5KD$cHc2TY3IlA!x>Ll_H>rO2`t&QEd#7r7Yya8XH4u>_IACYWbB`c z$J;w2_q;2P1K=c^&I~(Ya8Fao1lFK(Q4zG-E@qljNy}2)SE|}p7TNDk%_$Zz;)T6w za)*mvd1GI?kv6>Tn)U!Rb!OF?&PI~W<_k8NFW6kNpY=_#_uZ*?cgFYFbr_cOx*1h> zo5i&xHUvsWg%T=%G}l}}%Q7@z>N5EqR6C3im{8842dD5U<7j{el4ohN5HlfljJvLl zEN`}!^H;iD%5yu)SFJ{cPky#Fvb@c$+fTylB@=3Ck{HiajK>WnUrK<wp`=*za0>4X zWrS@e#_2pBO8gg7I7!cj)MqCzvkZ(mVagl>4~f@_VX~KWMU2r+qMb=$CXuGXyridM zOvf9_*V=qGx4QCN_m-xdq*Ju)m{x^3ZuQRmFw81DMtL-d!zo}Ty{*{GeuB24&qM!= zH}W9JXvscuurUA)xR@`_b7(=nYhq}gF*XMfsBm`dwe~h-@ZSI}4#38eRg{532cjkn z`8jQyxKvP}7^IS_WsoMHksQ4P10m>L{sp}@;tv>j4*yr@;77)0r4!Q4_*>cw@tI~w zx}KcHaak$AA|B>+dX_=sJ_Bz{$CUB{*?V>rGTTMwgjnXdoa~Y?O;#}$3tY|wE}cy* z`yOl}ZI}JsUd;CQD7dOJcPzb^+(zlV#Ocy^Zs6(_ln)){_+B%}{qX5T%O?;ILu+TY zzcI$+=_1s6vMga7Gd7r|UkXC`L<ZBrIR%fM>iHDPxjlK03$J<LdE{R4f%0R~s_Uh~ zC~F+hs(q{K*oQTz5{twkv=&|^KqBtWduw!>xh^1NAx5z^MsbNLTyxn$=z_xC4jvS> zdCxU2_)#*+|2HX@rvQ2{4*|ysdO~fFxi>&3k~ezfQ!NzS5Vac|wt$RoixIetnx|Tn zQI|`=l(`CZWtNpK$RxtuicB(4R;rJf)_w<IFQ#9?Sd;hzmV%_tCz8d3?2<?#pDM(x zH#|+!WMPGOK_c~5wgCKfIvGzfc@i}-dE$66xeH!BlOIBZl2IwN{u~6<{ZmWjmDS7b z!3JI#=^pl!pK7`eDtW+7D_rbl%*!upEvL{dhx6T9u5wx&?ruKzGFw%HQhu(Z8Adrj zD!-H{dnTSR9~-MOx?pFj;aUDgP5X?lDLc-<6uLwnYR?tA9|HJ+fV)qkOxpvvlZ|W` zS%EXI{97CwE@zwOrF5I{Pza_u-!s%5bTZug=GUfY>+fF*?|Wbo-Z#AEqZ$p>X|Phm z(_moGKKZTLlFQ4$s8~?yi<OoD7LSi6%mWaPd0X`JO|T2glMqd2jj)>+3DbMxqONF? z_*&DGR8t8LZYI46k!pbv2F^6(qN)sMvQU5WnnWB!b%(yl_=P%^Guk=jnGM_z%AViN zIJnn>L$F<_Q4z8QC4?1qFMZ5vyIjZAaoXct=6@7D0`jo}JDKQ5M;Ap$uEUqBqtM|+ z-EA1n78AQrB?bj5*wyHnj*zV#;#a-vzHkGSWP?JCdqedY&%F>=Xu4Hm{)+?h^K5cL ze4gox*HTcC?e0{(bD_Nxg-l;Kkh!OU3H}3r9}E8WPq7?HOFPpxa`W!&eQSy5X-eBW zBBwi<*^jdWZY$R!;3%@q=5B7r{R(E7P!<5CQZo&uqowTEJPpN1J=qJ(BFC6hS*2Jd zSrBR^v|se;a5-5b)kOucEY-^<OOXs6dQ4Fh+R~_|3a=a0IGvZqHBsPhylj)(R>h4= z7)=Qry-i$NQaafGl4$xKb72TVXYSvM+llA*OjhSlZ(bTLo>epD#?%hwl+$}kCC%U0 zH!m)xQp<Mh^61Ma$t{J{k^=@`w3j=sh{v5f@HjUVg7U$r!EJS6d|3|n55ZSQpN?QG z<RAz4&r~swRiCL!(@l)xa;9nwtN?a|9MG1I^QvS*LBGVH<X3m(vr?D|5c^nB#uaWv zF$F<B@?w8V2!SzMIX*I=a|7K}lA)8SyoEcLA4tJHRLgOuTCB95wll97hhjmMBd50? zhGPRjLQf-MHnWmO+E&spR1EFikw!wo$aaqB(ri}@dy2)0HaV~yzp6TgK?CsYQ$+d> zwIO{$>9mzn#g&Ks3l#NiNo8#5W`KR=;X{pYIDrkgYdO_=Ew%KzXvx=pN$z4PR|?rk zFS!%&b1|I&H>?u3O+{NSL0Aw~T?7R=T`w+FZ8N!ZE!0(Z<=mj<IL4J|PL@DdWyb`f zoWGCe@1ejh3y3^2wi)Fy4Zumtf>O;VSCvh-q{)+XyS`joLgp3Gook%RuEs@sbY(p5 z_`>6^aoU86tE2i*6UsW*Cr#3;;GVT!pF~nEW0HqBoowauBrBKVVhrhkl+3fLrA!Ru z@g5vvyd{R~#IRLdJ;b2CSVGtrCPvA4nGy@yUmx8$F{p=<S*@u58{%;%1|CnuAXG_N zT{6&Y{uO5=1||k4%)?3lhdRQ7Fw1+RuRi|!yGpu7R9@v3HJv?vwrz>EHg)rB4-9KQ zr09vd%g=na2%pM<<@cW|zn{NBOLuPj=1w0KaNMV}bE31KT4y3jdsS7h*aEpXv0h;Q z-N_S<7V{T)JidXCVUm*vzF10=2Y&8^Y61$UP5`=!THjtmH5XB%>@ndQ@r`A&KMQx; zkLG2?TFEom)XnWUYp@*}x|wp8eRDiIbEL?`C0eFUaW>o?f`>P#Lklfz?M&%LDEqA) z0Y&eF&sh!q(IBEvac@r+X$1FtdfV%KVS_t!XRi_mSx8?}W3wsW;d*Rac^K!#Fg&@A z({cedbga+5F(vGi<kqVka1XIGKOT~JLA2(D)4w!SsOvPJf!QxBUFR0d%GFVQDHj&w zqP3Xptz4JWYH3+`)=JB6EY$O&4O>ALjT|I$E{@^2VzG(pK7Qrv<8kL6JZ|t7^H-$7 zsv=gDhG6o8#D|7wEw^nk${7~<AjHN7aALutdOQuS4-=iMkJt59AJ2*21)SMevc<52 z25q{EU3;<OdTqxdj^)c~sh+*TEjO@#tZ#<Gg%Dl`D3rI1zWP3D@xQ)n-v^FB5eTh5 zNTu(z_~y)89vom8rc8SiEE|DwB(F0^!<ZPxO8WD%pu&9?%9tOPrqCfXQ8WQ0<`kUL zhX9z+A!DF|Rzf{ipq0|=EUdB<bOAf4q9++GqUjp8mGvr+0MBnIl&7N&Y7UOfk~f;Z zp=DQ*t{P`(GA_9+=r7YGbkE8G&eeeeXGFMXT#PPnpy-%f<4;!ib)fsyr*1quVjyMb zLl2x3#O#dtcUL!=Sdf@nV!b&a^{uzfkAnJPnq0IpuR-~vDi4M3xi*^ey_qdl1RnFI z^5j%eRYn6d(SWZfWAp_D``)y-HOD)(wXzWHy2^_(&7~K+)faE5ya?+HJrFS698X+n zA-~o$*VXfDLGztWnCEorf*D|#*g+at45g2oVzvs$gM8bT(b0Qy5by>V8w`e6ouV@Q zTH_&X$S3u&74#k&I=X4Bk7vuN*-dT<(fV~}CN%&%VS(Mq(cn=Fg8wSI7l$n(mAV+` zBAx*bPJx$!4;&3Y=0MIy;f$+Cu>R1>4_hNBQporMj1_lduH<eUOO$OfcSDMNPAIXJ zRpk8X=4$MH)oCDk&d?F9V}B)N&|6ECGG``$ONem&+D>zeCed3<wStEeS|j*r5P9~c z=aQLM*-okS^ElJFTpK81s&sjqw=g4!O*P~RQbE&U(Ai?H-Y}g8+fBpb6>&4%q=yv~ z+-4<fW@_oAnW?3v<U+V}c9C(}%)ZCymtfmVyBR?~pTx#<9YIm70ant$IBPHOO-=l9 z%$x?~urZThI+8u%J2XMjhGxB--H9&9z!A`DBGa)Re~=d0sF{cy0ZsbE#B%(KiHMT% zG-s)xx$P@0RM~iTeKG-xonWrVK=5ZH_q8&>*%qfkc-tDluy@cCOtx?*FA~ak@xl`{ z*rINA^BCC6g0R?V*3?jz0gPuwMOnIUnlViM92{k@sZh4>Oksht<_xUC%u0pCV!3Xa zSOvl__rTx&7KzSzCGh_0m8~V~wql>C72*OG0N7+BC<>>NGfHdm=dfosPHQcvio$zM z&LK_ea#$`t_X_IuHkG_Jio->cw>jrRT~BQePecbdA$g10uI8zY(?(#>4D=QLcer(! zQlDJ*#yUG}eRJl>^43bQIUv(y8a7yKtvqw}N}gxG;%wZ-Hfd*~!NC^x2*ju{U?xww zmw_culL(q+GbL=f-<1#`$qbu!2L<Txx&!pH{7m*TkS8Q)s(~``TMD193#$9U<xH^p zT*n5fsp9~PPePHJKtNhiXHI}&lHOdAgrXSNPimryQf;Y=6*Bi=+2r1WnJ63wE}<J^ zL72&6QJ9k~0_-jz#MpgPblgbE2Z<!EEi(jVUn`Y(V2w9GLCf!lZoD~g>65IsNe{G> z`VIMvcm6uw@%b7{`x>2$=%za2om(pJD0NFcm-{KFfNzU;DqG`RwF;*BP%dzXQAWty zph;eW=}=Y=di;+qK)GE?O6We~k@!67QMM5%PoTsZl-vjuEa-_|%+ps)^ao2OdNm$z z?~GkMcbC29P2K#8d(C_Wbs+SCa4Jw|c}}m4Ky1b2`VGm2gwf6q=iM&+oan++?3Ofu zyX?_6m4e6pY8$EsLhC@-lr^O!_2<?jsD57b@EMDKtU@TfV7|^^GtXzbQh<f@ZiXuX z#g=H*QG-^A79M2EzY|g|MH6E{24ELN6Q4G~EYZ*l*h~?y9N}ibl*q)@t|AI>o#PC5 zRZK=r$E8Q9*AjrE_+FNm3j@H98i0=lk>#5>ZMa0i7X*klRXn{e+HgGC-gTzMCb<6$ z52R%slVOjz2mCWh=}`C+z&;k)q2!Mv9GQwfoQH}#b>ECGc*d=^xM9=#gQ_AV9<h~s zza)D9h+(N`d4ltj)jFke7QYEk%ud3<YzWSn84?e7S$T$jtsm?-r{q}1NMDY;G~jSd z0}kSJl9t1F&*ODs1(o#}{T&WTQ84J`(c;A;O6Xa#r<Xz3h(SRnk15S$AxQjw*$1AE z_Ixh~TM}*W`f797ib}QAFM)h{;q$iA*(J(>0beYB;(&=e&x>`of^&vBxIHW+p8jz@ zeq?X4yl<alJSSRs;su*ALkAUEXW04@;!QD3Cj`<h#@t2KfcE!?6O*8l3r!w^P}fF} z&Vrn)?hP)+jX+|B#D?-m$Lt5V=Z2;%ZNib+LvSH+lwc5kTwBy5CoSnn{uNWr6|mnD zU^{==O733%;slxOd4a#WxL3nqH$;QZU^eUB!(eM`7%aPLgt5$E?*H_1nBBx|g0mRo z+EVI#HlT4nU<Qc~LR9>`Yki-f5?>6DE*}4Vne&zkP_B8Io+OhpHEGOhYsb0$EU;Z- z)&vPPvN3|0mc%aP(&WC4)^P0B0K-j-Wx2qmG%a-Hxd=plV40Ut>RRQcw?%`_OSZjY zFE4R^ugptZ>UrrM(V+8^O*-}P62qW!E|lj+*$iY2FKsci*2_zFv&c)+WnOxBK;yh* zJ0ngPcuC(MJYMQn{jSVqOG>PNdj(u%cDTXxI4jukS727S%JiB=X^F#_H!X5i*-3eC zbmh8_$+};h?z61j+lLVvJUGjb5G0)5z(;vIo)*g>!A=TLIT>RF9#GGZ;sgc?j1^X` z;&JsJEpWpteMXSk<N6~Y%|i#A>|F^Rc9cQ~?mpDsRh&%R2{GE*c^1rUL(_Jpl3>=; zGfR%FfuEp+3;8=NHTGY?Pi4m6)XiNx<FjjW&TbQ>u!5W8(Q7QRYRiVXI1uxX_viUX ztpbe}QeX?X{A?f_N1A@z%~^<X=_Ib;Io2W_&6pIz4z#x?`K;86xZazt$-}tbm#*ED z?3V5LxiJFI{d0wLk(X(oY}$4#+jE-bNy7*v3%i#BJ*8>Bq@oE}5;6j1LKY~zAOP^W zPbPf@fP4I$pw!MzBmlbe87_VI87`JSu}s(kIgAyCTicOnniE&t9EK)_Q*```N+I>4 zH5W<lbpg0D!(=U>+H{P<6g;0p2ey+K=ZJhhSP-G*Dl!rRoJyH0PNfP}E~_A=JR!{K zFP{+Zhm<ZiZ{~D0_SFVLf38?z0#wnD%jCWvWj|PAx#g^}0-p0+Ru)V_T$F4kW<}JJ z+P|iNDVv*N2vRr8_GW*wI?JZ&vt4zmqyb<J{$zR2o2O%RoO89sx!UPVyk*-BHIPRn zk0Hg0GHV#0GvHeAPz@wRG54^t&E+_(9HYCk1I)rS=p6qdD@50TY}e&qFeY=S;2y?u zJ@O2nAbUIHDzjH1R<{LSJV3S0R={x(D@$i!-kxoePxKda5d6Eti|>)>SkCLYbPNE# zZ&$>#Qksc5Ue1m#MQh8^)H1vdIa4+1;T$RI!AA!1A7@<bHgQ&uQtiIZI`;j*>0J## z0Dle5uWaAX3;IiCtO2>(h&^Bk!7p))Bnxpj>o}cCI&vYL-c!M;`DZmag+e0gHW)@{ z9i!_Fp$Ho>qtDcIFG9JTf$70ALOCzRdb1Kjd7D}+i2lg{usBg!$J(0cJD`b5Gindk zL}hOM&5M|*{F@`-@*GGZ>%c_sKR7s}4SbqSuYp?5qmXd$I&+}PfWohlJA=7NpxoUS z)F@ZnmYpTHg_*zhj^wtSFu1eoZsb?o-QX+ajh)7rLEp{Y{HVJdzs#9xBwFZiB=06& z$c&{6r6ke?N=<xc0`!ty2L8%!-KXF)ST@n?Z|q94;+D)kB8$Z0U0EBp<&DP>&Wj<q zzhMbJL~I^xTY8GUkLjKRu$|B)I|@)u7}_ilrhQ|w3KQd|*t%L&2&a6oV+Yt!REm?5 zxkhsa+EpD}B&s<{A|ChP)wJewYLeGL8*XsLC@+jrx>LiVsO;1*)?5LQ9wps1pj;vI zQpA@gW4z>uBCj89g+h#)tEyR0GykY*gsnsduy!$0Vu!FUG-}4z3V8uC5;p}FNP{N% z6ET2*!l_GeGkjh;&~as;!-;Ojs7Q1pHZ4-gk;EXUi(FUew&F}qM@No#OYfkg6ytM} z-D`UGNXquA+Kaz;PC1=NgEDh#_6rzp4Lq~)Ec^i!6>)r1^yb<M${W*-&w}eo5+9F- zv@|P=CM^tFn$K%r0F~E9pN>i^uyOP`fxFTQfnL&zK0HnaKUUNX+RQ|Qo^&uL7ofU8 z@@2RsmgZy<YNDKfSdD>VF0A*s-zg)S*7)TtDQ}Jw1^dcs@cMwm)gZU%;Ddl;y?HA7 zPSXllz=`Y2a4@H4^J`$>sZ!Fm2OhS}HHYvwlube~gIZ7~920xVO|^Io>bou*>n{jK z7ZJT=!D#JE7O8I;=u^@RGqkM1D0>N0EoNjY2IkWx14AFAo$8sf=nZk_0OvTk^3Y14 zW^VgX8WpJ8nK}O<4lbn_;I~RFadtQNaj{upf>T$HOkwRQ%$ljzSDh2Bc|}(&bNjd2 zN~xs{e42D^`k-J}2?b2Q6j0DA#R!|a`2}Y!zJPIO4#&l)<HSW2;You$;V2r{C0=1< zfzI-Joz32MHL8$nR#U<)&+9yTE{j>MIxtcG2PVNH93V)}3Ja;Qmm5~%@bpG2+@{Zh zRX7i)N$G>ZFP1Q<1%BP|Qnr-Eb5l3J;yC0h6mFSH>K$B}jFk{%FIEv`GdsO{W-S+{ zcJ_YZ2|<mHaciJ_OMvo;G0hQipq-ifN8%*{gRDD981J1Q?`^ila1S3+cRzYxu{)f6 z*Yn!z;x+HitT8yFpdb-bl;?8S0I1zp993%W;%LtGtyRYM;(>FOokuf7#^0Trth%$` z5HpvqcLdNS0Rq;Px_*6h?UmFvXOl7mC9#=`$DQPO9N<8O3oQJtoB+>V4efYfXq<I; znka%zr@Ahkt}#jI%&1H#7l4IvF`dR=MVxPbE*&FG-Sx=Qkgg0Eoj5lAa)88{j^>;= zsM!T!Ylwq5Qdqd;)3zw`V2N{8bnV2kwNrhFb9FrK#KGeW5QkN0T6skycd*3C!apjn zG7G<9i@(l-K|tZ62wv+@SCs+17-|z=B(@r$s_@q}j2!dMwy)n?Fl273L%`n>IN4_c zZt;0yhBnu8*dzvW8`RHiLXx|;0p@CmxwdxF1p+7nmAy}J0k3B?u7YB@A^P>AXZRIn zJ912;Hp5o(Bt(awO(wzh9^6%NxfVbU8hvf+ULjV+)4nl4x$-g6jk1m18VAOFkq^O& z`0^?<G%zm<R4VT-*$(wE>Q!nSO|qRn8nc}mOlQxVlQeTA5A{)j$2*r<Xc5%h)Xg33 zv?2#t)X}OdCX4#DqhV1G-I}Pf)qSw9f%Yq!FzVQzm4#R;#ga+qam+YFL`!SUsy_m$ zh?I-aUTz~J+|KQoV~#xz=P=tb%qKk&pOa5M1!svo35PE~ZG3$E=}*Ve%fH4CPG5f3 z#Kc4!pU$)SdCqg6``q8a=d{yKTl1UGd;SYv_@WoRc<oD0KmDaIec8)j{)#ie%%1R= ztts*PT8SNAiO1Wssl<!?u%jrnxZY{kMN;QR&K(igu9E<PM<76HsS^vS&tQawG=8Nx zYI8R?;rb9@D+`;el3&5>A{rdi9fr^^x7Oy$MQB?pjlEpm&hhnX-xt(9&POL;`uKMo zD$>>xaYu}oA?in^G6Ov+AtD5(S9`UcZV>Gl@OYGAByH+Tup|LSlq*k{v@dMp&Wi=n zPQ~;@@yK9Xr*6KedY{YtUs!+p1(n;lL1WFiH7cmCRN%HUhOVj%*;?Ah;bIEJH0O2^ zy2k>%(O;}ufajy<vZdXN-f@P>F|H?|$UEVzQG=A7wQCA+nF)BFnjQWB$om#JyQ=E$ zJ9lQ1Nd_c{NEDSjiNXMa6I2)haqdASKB}?SI#sK&FVlxM+E$|lz2wCZUL((df&&5> zl|ZUkqoR!BV^qYbsPR!8t3YV6M(ZOg>i7Szwf0{7o^$TpJ0aM9-#7d;_q_IAd+qh! zYp)%{-gM|+r{L`flGFqhecL9}?@DiNlZv3{NNY-$A)2xVK#Fur%)x1~U4Hm8wGCug zSzoU8tG#uzU6xDhL0#ztOaOg(%aW@BC8p&y-k@18r<LGzGtV9;6Cq=%kV(LD2hYxX z^3#eJXhKjMc}SRAZx+p--2tl@2Va~B+z+hrdV3zr*E!f``8-p=ZejUc@2?xD<MlR{ z4_9AKC2NtS$HU?4W|t!Q=G^oIgw0B|0_-*b3o`(oO)_+S0fC;^A<zQ`{Unzj>Mdl+ z4Fz!PfCH;4<P^!Uw%=GI0fTo-dMoRVj-Wx=>X&_13nlaBGwf!pw#=KS*v)EoX9atL z>c`{W({ZocDmV*#C&%WjezV*?Dc_#lJux<DwVUPc)9h}n+$?v8MKX0Id<kwU@a0Dw z3r6cF$Q<uAt$)-TG+IAi8bs#_8w#ywi_KKOc8?k#`+#O|@$QXgpDNwApxKZ4>qfJ9 zy$#Jyk*cIz>b@gdp*)e%(P~#2t&*2?xw9y<KV{GtW%e>O7}?;P1enLf3w7t5$<Gup zFk~;14UFui1uJGM{J}+h24;-|<T=Zk@@`}SxqFP=6&|40l)Fz<XrR92xGKv2zt1M_ zxt+X+*gC{0aVvoy(*aQ@nDi>>gfIC(zW4~SRgT6$@)CMVbb?Yt&=XvJj0jHLhcA1J z_p6pUN?LSMj@pIM@!+M9%|3m0h+F{NENnzDK|2)$F~DHQt8Ju%cy;H-pqYkn6>u;d zof3)rhhz<{e4X8QbNFUQ1s`dyof~mq@nLLPAc#3qhQYdA#*$ixix(KkvdZ6!A@((r z%^)X=c84s=0-imBD<M_&{dUam``ziio9}mo^zH(N4k_(1U71B$%4+@V?3!svNRGpO zf`GuWYFq|`Bd)^*J;H!25=`D_`G!Mbp5WtiP-xINiJCHGY;6*biL`lKNA?tYl&@_X zG0U^Mf;$}+a|M?Y$uP}}9+VDCmV7Xz85%D(HZfh|m`P<*=f_kI2f@kU-@Mxk)B<Zx z%E{g)TdTiE)N_vo%p1DcvX$yA8n%{917Je^x*660?G8JnU;zI+Kjyk2ztn}m4C<5f z2k<8dJ?0V1JLLObjD`oKqsBhI!qx%2+FSn-FPO8>v2kgHjm_YSTmM}oB&#tTd){>U zPakZ_HUONIC<zr<Xpmq-@5z<dhK{@oL#|`+C*J6VDq$FEjWQs$2ZfDZyQD{!n>G-8 z+;!NEQTJffOp&brk^@Eg0wSn>CSPIrl6b<Jj*Nb%{0nPgE+c=yfwYlpR1_o;^Ggt9 ziTt)xaL_|@N#K-q$;e;ir9k*3bmc1%s>uvMjumEL{h874YrC|Fad*-qDIu=Vnd~gY zd^Q&P)xaZ!tI4;pehoQ82aM6YI7W_Fh*!wKr+&;^wK9U-k|$ModoY7YC8BCOkF&@; zWt=Z4=te0B+`fRf`}*r=^Iuc~eH%HVhkG+&SPFk##3#BYlxUF%6)_LK5p{@pB!tm* zH#`(v_X{0j!#@LTF@F#Qn&3ekRECRUH)TTf5^vIw;0s0*)g<GiI>P@DIcd9Kv?~{* zkdW1og{<J8=ZuxLjrf6?Yy1H31x2Pm&3fnEMbs*MWh7y2Txtkjc$ZIgNkZs4Vx5=` z^bYDV)HqG7cVNDf#KDG&Qe5I-znPz4s9P|kc<TKBfzc(Eie<v+qLRj-upiJ?mbgtH zC~2{}bbk)r+<#TyS&8`O(Oz|?k4Y_QY!{-;Sb~ZsVck-4HR7`GO0W<&)l&?n44jAt z7tV@Y;CiLagi)@BSRJh!8WBn(T$QrMz#?UbjG56drw9wzoVDfpkFZG@{hsA5oBZbb z6i5aFc8RFFVcD!(!;q|c-SQf&0F#?h&<pQ?4=GQu<Zbm{7{q7pAsCz3V%;)swC?8T zKp^D<6BsC8@yhAavG|nS(S)TL>IJ#UtVHgE!`@}+20aCjs~sf35gqUf{F4x|4^|0U zWrd^kVjsBa1YJEzbpj3zVUr`e^iF6Am#j(vL;7$zpm`kba!nwe@5m-OL6y(}CcB^_ z-r-<1rA(B~wDgNrgKik@JqW204CEo$CE(H3fylfP$5-wJffrdae2{?1PXdhPpTyRQ za1u^VOI+;(Dr^w`cK56c%V6#OD*Wp*_QsG}F!Amj6LU7|Q_933q5@?A&>-H(jXO8Z zY9?-I#P-ch?4yE1BQ?=+q-)(?jaxyA8a}ier@Jw4YyGj}c`$V(=p9>8;%Q=%8?rT{ zN0QR@j9pv1Q!VBZql$ivv8Ax6G#9KFY0C(rRYQBxzb@9C)6;T|0~6cFS#6U%^3&X; za)GSALnl>h)j^DiHA#UhrUI5_bLw$jBQ|5|k@zM?N3%xU&tQ|KV%R5ZgMa*aRcC52 zq}T-)M<dF(6f!IN*f6TGb&Zo2u+G)Bn5<6*i=qPXM3ssIZOUqR5bkEJorn1>hxr={ zGwp#Ws6|)&9${8uc=ur-hKFXqPqV22(!%-n{7Xy%soC=|{7Hp?1DS3jTYq2|*dMF- zphf`p{9tuzDYpB_8TUu??}@;kttf4;7E@^V<cRcG66yBtXg*ByWH{W4NjPg8@e?CR zegf;Yo2FUGT2aaC3<=3@5|R$054@Jby1W(#QHjla-RQk;8W6E_jQ1)*i@2NtIl*Qc zLMcY+G#H^l>E~Ke1Lm?y#45sGak^|%)L_hkG2MGKfDx7<M?=r@{D-4p6$HFA;E}}( zan%5c_h%gB!`<XPSWyFw?>OV~b70OH747q0aIYI_^8mvZ*1d~!ybCK&Ferm)?qVkG zB48HxY`$qMh2MR)qe18(>?)m7@vM;zytyaD$<PhI91qv@fr38-_KpGuA}L~O2){#n z!}y(#ik<62`lgBwjZ0BaK*oVKx6<g*c$->!LKa;4%AGhzwZS*$@d-n4yqK?*kXgOu zaGl(SpklLFhs-0^&0~OTJ05WR!#4hl-4GL;9*lP;jMpS~oF>CZAq0AXkI86Fqg-m| ziT0pjDd8rjH0y*kjNT9p!GPH<c0maGbtl9&+irp_CKw?jVF=Sm5S+Dvv>n*Arp{?K zvhEglb`p!t0^t&e&;&vaiSiot)g@W*rxeS6oEX0_fW<AvOd@I|M9b)iRxn5_CG29f z4!{^r5YV(6hQyXK=bZ(Jta!&to&Is||0jUzr(oL@ZzyFMAUP}WDsR!YAD7kgSS7>2 z%#v7)AE$7yWGnmC-k>e1XllNGj7U5O4)6+#hD@uGk{slU&DG{K;3=i9=EXz3i3N~Y zEnx?Sn^sHMDflpPG{XyY9-}h5?8aCi-QD~=NXtFxMFSy{_+-p4pioM!0hLiMldgBH z7@9SezgZ@&E<y8jIhx<&4H}x&@oYl#>Jl^`4Kzzpu`)EzvPSD@mi-0IoU+xSF-}ou zbvN@mD}|cl+sa<2bfwhgzlezlD%#IykgPJ7L4@wJd5p@yb)1E3)F_}#B1z3j83g@B zWe^}9RMLz>lL`Ut#-uSSg}kGDvt!Yef(B0$r65ZqPsfaF6*cs{6Yz58;UqbA{;RiS z)Tt?*&D6O@rleU2?7+PeA@E^u(5O?lYBW)2S?0h=fK|$%l~Jdysx=D%y_r(yP7<93 z0pvHr1fuN7&`BwkqHqYaA;c6YYhM#nqi8WjGRxT<1=0$nL!BCcoz1=g3C%`QCefS_ zKJN2oB*lPplUdQ3IU%&GmSND;jjC&E)xa<(KgV?i+1*kYYgmWOkG0RlIoT&q$hSHC z-%&e>@rK~T(@cUaVz_9U{Yq*m+n5l_29G7`ZBp)mFOz#?5Cd7`*T|@DVxLcYuSV^3 zh=bV<m50p~4~RDc-OO=LK;eY4lau&eD5EFGZi(Ma@Wyk>a7>5YoKC`<u!LaKk<62w z(giY)dW>WqFZLOkmqU=rUTvTa#!lMpLjnWMIl4~#mnSEvd6%#C@dckYQ(Caz<W&%= zHnBj6fEYDWL)eEGf%n9u2m~ooBTy~T8O?s064CCbDM15Ta6wZdSo>wBggWV;<~dHC z?DK$=eQ*VTT}S}s{vR#G$K+2Cr1{E=imtK}r*FpPB2;}`_i-#WaaE}7vesxCpBeh_ z8EsF|kVKK5QNalizjZ{OYFZzN6#;N6ID8N@{m2&;tVboPX}$GQ%o@?CaI-pEg`UtV z>>j}`9`bU;E-6WHx!f)xIJ0lX3<ii3%V2PExWR{bx2~b8I2>w{3d1FmVkPcnH@!2Y zIslL?zqkHuZ`_iZ=y|2#Akv&V5CAn1L!)TBxFuwhw`WpFD-$(is6hvYSU@<qV1lzo z237={O>Yfj(OL1dJ-t`VfP!5wh&N0}!<sq@eQJQr@q3<wZ23<rI58I(ZowZr-(NS1 z!|RZ)pqiFjN$5gGL8=8wC2xfExuQ8^uc6c@kRpgHZsi&uvp(+1E>Y(9QC#F;S>_FM z2!i;h5{#2dP5>UFS!V>Qbg!>PK|`DcIYZ(s^n0=QYpLz@KEby|k3_}D^non{ztxdW z|AUCpjboHA{FCFGY>&I_7n96#R`>)oCUb_0GN<u*YB30p`?XRzy~O&quy>4VNj30y zD;RsI%)^p`QDcR48lkvwAu2Fj$aeKm4Fs<-Z8YcOuWdv?jHU>PzAD7*^Ss_)wSDti z3ERr_td{|CvO}4k?Lttvp?l)fGCeY?P^V{mmz@eE${w9Z8Zi2p3Jn=wnVS|DDPy`B z=!Br}4DS!>^-Q>i;NtULdhJ8o;6s~IyGeJ$4+m#|4aYTwsh}8=NK*(MiD?}UWRRFT zu^%Z{E+G2iyih4(Uh+eXAleWMAZ~OJzpWs0>3CUXF{6?L;BqMxBfhB~`o(+L8n5GJ z<{p-tBtxFt_~8M|a^)iYmXg}Q%8X3AoEzME?#=}cmPN6&h&H%aR$?ij3_$V0BK6wT zwivfeZL-`)0g#`xi@a-FkyNh@lb$FGRUnvnn>o&msmU0k+!tg<ZYGhC#PSmIVu#eo zOWncYCP<mt7+Nuiq5?6hQ2pX`dx<w}M4>zN75frHBpKLFeTha0Ns~-~kP$IW(mwN$ zU*;WHELqJCz*E36I!*2Y$0hsZH+y@gq}8Ipc$04%pu{|(l%t{(I=S5YG&)g3!)QYE zlhF(~n~Gkn-NOES7J^V$4Ok*s$*Xj=(FA8McgBxGtkwn$21o$e#ZM)rouC=n#V>QQ zimlkZNHjA7QrMu+<OTKJngLn)AOKlO+NF9S5W#*7dPE3YcjX(E^UUcuLsHjE#$->M zbQXm_=C)wXT;<b}STkicrzY&pq7BRyQz*@%!cRwoIExG*QG{EwjzGMo03uddOUq(i z+Y&_DLM=daKEB>NN=puvjZD&$_NwHNDrom|#9GqTKbR><8Nd`FHbB(v#n~va^-f9- zeTz%*os=Acwe`pf7v%8=k50Dfv$T5Z(G_YtjO9!#ap%%JwXHf*IXc7&{Yz3>fkxLi zVp~R|5P!tg@Dklc#x$UA$wT7)GNu{w=}@gZTm05+)#+4%2gaow-8BrJ9VC<C@M#If zur#5F706?`&kWKe4~fsMoT_AuTVafn%r!_Mv^!$tZYm^rdyv?PK836<=+ki@>|N^Z zsW-x2*)X6E_3vJ^RZ2zHOM%d3H93M7q(9p$vkoQ1A2|--3@q&Ya*2al$lck#utVCC zq{l~B@P`$7{@FR^EXhd%qoy<aeRs)@&2w{9M$KE_9d>L|IPMbFlGfjwKp-TF&2Rz5 z0GrvKz%;~KYJMedZ6o$(bjaTH)f{Tp`>ST9ll&34p~P-9E{<0EjIFut3Ho1G<>XBx zA%d<(dR)UBvSQ~9vSUeaIut+Wb=Ej@?fS9tiK)ihtby&)hgZPz8QkDtUat<28W!6O zDxeQDPE;hm0r(?tAvKgV#KYwKW8oSU&g=1T4GWUjo5M9UKG8B+Ra@5~+vt#eN)2tA zDEu-S(U6jI;IT5a^rCOfDf#<c@5oGN4Op1*hCb-L3+qRkF{X~AGP^L2ihPY7v4(z( zxxnQYc&}y+X{93I!z{26E*9eugUbn&Suq}HiP&z7>2U|eFpXR_P_^xpX*9+ov8oL6 z>C*JGtnvP7C6ui34*O*Z3DSn3!Dsdo?{AByn#`Uw1!NK>;^C1$Bkjor<WuBaj#ZrP zl-bEoWrokC4u&yvE30C&y;(GT#H!d`x(CI_dxdwDS`}rViB)k~d#wz8{4kT4jD9fo z0p?ICS<u5eeQt2j?5^+8G`Xc+SQpUfH2<|kA7C6pWu`(QQ%p~a?HStGo*va~^iJ*w z6eyfQ_aH|E>y4@amYqVqu)jVZj7Byf?G?V*=wH}r(_(y!>!I_jik!RBE!VG+53`)@ zZ5Z${T{&<@6Cwi4p%9Xb?Bj#tW7x-_N1x+!tl=VwMB28@rCxxiC*tlY&EUh#6zymY zob8plshY-Tf8Uy$vGq>O&CfgxCc)kx#RsC7Bllo|N?i#Oz7&g+;@$oG;g5&>u*78y z07kB;4;N#9n{%cEBRTc$A@;}kRUt|jKQZ#*CwvhkG!0g=vy^L?V~YdHqbWUy^C(GO z=R*q!$-_Z}gfb}97emu9^3AM>&=7rH+3pm38Ir^Oc;B+^r}IFb*T@6OP!Qn*kc-7P z#g(mBr!;(leORPnUC;*ykWtLb-Ue3y;eo5J44XFbI9r(G@{1f6TU^lkP>>2qQyO74 zF>lQy(pR#$aIv>%aSM$#HG?(*Y|281gyY{~%OAyMf^8ulY3h42TmuwhOg&a-@=LsT zTPM)?5wxrdpyq6pOZ|1D7QEhOoqz?nJ@J6!P}u|li-oM_g@OqIR|6YNu_4IZLC8+{ zTb|q0=Lq@A0%$b*j7C6^6v2T;Ad5M*YU|*M<Ktb{N|9h_s)3V=f~+|$n<Wm-=bFls z@iheyX_gVJDMYmLiP;uvcG#}<&n+`sm*Ac9g5sd$N0MGQ$}Tf0iO!bxl4vvZTIgZY zd$2re_0t9;Z3j1v7F@LE#Eco%cO*`25X}n)7bko^FG8GK%p2p51q2OZgZdS<J|}*J z1KFQiW%YI%!#wIsSDCP|3l8F`dku_+HMv*e9|XY1d5QeV75E3H6XRzjEwZ4=v0We` z+(ZY6gxbBaDh@-$frnNoU*r~wNDx(W%;9)iazfcCp-cVAI9$j!SjiKj^){owHT#W) zxk2_hX<3y><ORBz#Hy*UD>RvMjaHssrHLGkt^rQ1q6I_Q6^0_?!%*}IP=Epob^-J- zVN{<GD`1*=IUc#e=hxU5*4{kuqsq{*!VcbGL(@Tam@HBGDt3%KSMouhPNFwj2SxS~ z9bLvgY6tvc_H8lZP#;jy{S)d=!$1UzTG)s0%&9^0S$$X%)SKCryC}pDf-{ms*1AS) z#gN50A!0^~%$meP_y!g^;bRIr@={l4g?D%fQfZ1gZ1A2wt9~JNiE=;8Jo+rsV>9DE zsNT-@-oCHB>24flas;Zj0uiFNWjhY6jFL?mk@q17M52QhWyGW%P;Arq&i5V*6-K{K z&!Bw*1`MS`WcnGc0|Bu9mY#AV!nOq&OytOb8ljX7xSNR~HcoDV3}P!r2I{nriqDR9 zFG?vEEsiexoX8{1C$d0-Qj0Uy*^LN+kq7(=#_sy&OdcKdcE0y!<dJ&ufjk&LknLal zfIKep9*sPN@RAw~AgZz>#V;*<=o^v0_fXQ+wR5DaZ1;_y5woWd242^QZ8cHX3T``q z8p}~vwJ3Q)48??W5DieSC6ldkDJ8AgeV();%&_Ij;|YJ0OYCy5dOhC<{d*&^IL^6} zSpGvNvHO-lbp7wFXb5rnR}hymQH`6#<){RBkq4phFt>;E<fq3x<}tDZtj50qRw=Yy zU{5>-wF&XJ?6~8Od-9W?@|34M^{K}n&oYH5Qg{-|6rS>ok$RS$`pjoO3qsRE*_%s3 z*^@a=IgJu{a~jG<wJ#{j&sIRMAs1yD;jI{#3>V@HNS(X-7b=iG&sK50otdX9gg?XE z&kDDN`d@@+vPi-Z#WVHM6ie|@?`KR@fL)?*Fve2H8;HeH|M3zPzCij};|q&(3hkUm z9GCfQ&%n4sUJ}z%QB_zxwVTfm^)zK1JAW28-SV1Tg>eBPWjdDHXfnrl+w|Hw_<RTD z0@dbE7f{r=rnpv9T^%~uo*3VfZovsFEVAkt#LUT+XX76j&kf`CQ4VK1%?Sz@fY+Z$ zWHLNij3zn(dE7y^B0MJv$mTT&JxH5gj#Z9**P$<~Jlp1!o2OU_4SkNnhDD%HN-+-W z9VzL8U@jM)0}^L!6}q98ZT6|}q@I3L)pZ%82|3Er&;;;UNM^j)2lR_aFRcu8?SFy{ zNG&S59;vy6mTl_AV3G@1Os(l4=D49D4ux@qyoq(GgK)Q2_0f7~0KtNEEIJ_7$`Ay| znK+yMV^cy;5ge}Bk}ZN;m3PS)sd=*EeGTxwJor{Ci`k8#nJaz+L@%$idf||u#>mk| zw44}9r{7#daWVsWDYlFxXQ#q2S!KrPl|ERbK7}alzBToc*i^+j3tr_d{-9r`|4A}N z^llL$CBv*Sb%0Tn5TZhv-CUB(YKu;DA;Nb#6c=h`;bRs1xyhdJ_iVEHUL;T<RwG== zSy?0OQy>EFDPv7H2#=7mk|TzunvL|7k$)_HBitWMUy`wcF3`ww0e2$5KzUsO-lN$o zzMoJ8`b2E;S10sbgrj6=<0P6!W1HwAj+J?ZNef#uCY|sB-n1DKg%r{VC#pPYM;Up$ zHg-d7Y|0v2BVR^YL)rt7dN<A|zLwV<=t&3q78T$}3eYaVsg6ED-KIs@WaMEj!Pca5 z{Ul|{&<w$t%H!(2-tEV<+am=3dD(D-zh~rP?}4_55gkUs+ipZn5pa@Rh3^s0!(BKG z)v(Gc`3ex)%viu!csiSGdgT<NnU$(>dARH2`K9CLgWma%m9v)iC(?)$qOn9Z08T&) zauA`=q&(CPTtYPyr646ol&}s25%`kLtW>N3%psHulQv1`vI&aMSHp(r(L!}R7RrXS zM&Fd)SEI@cb+A2J1s#lP!-B0-0I-x(qv{p;<`PRuMyE{z3AWxUQG~29{<s_+ebjOF z30?Nq?WV(t6mq_f{4T*LjukzvNpLHU2luzhA%=txp)(G+;douu0<Vn{yf%PW;$XFu zffHP?wN;^XOHJ$h#Rsb+Ea-$8F<JLUv_N|XyH9G}M5)fYY(e(JqwqH7C&u)1nRCL9 z%`;BOSf7W`@iEG6VAy*2g{djkLoKv+&UmFLLH`9$?>3(wV<c=VEzS7)w7ppjqRBys zWyWH;nff{J(#%xNpaqc$g!{rwE${h`LeJ?T8Z?j(HUs%%x9`1ytd>-nr_kY?eA&UY zIl<aX>70DE<(zQ6q}+gak|JsC390Ca4pJfr<E<v?ftqCnOz2LM#>j3fz!6|I^5q`< zKZGZ@`{?3{o{<WJH{+h3?k$JPuU`2jv^qhZ6lBUIFTiUeVB`tfgyn7mX(hYKrq(V_ zM36AB+GJFV_$ViBb~@(HQhQUgZKKv|UN`!tzix=e>l{lMQ=g(F3=bR2L_mI*tf+xC zfV3OL7B_oQQic&S3K0ef2--->?>I0fDK$H$6G@4LTFyw}T$Q^Bs05M;)T&feN)B!- zc{H1-gr*RU!aj9$OyZ?D9AH|94Bs~zQ7q=fBnZOA<eh|2S5nXzRutwaCb5RnU6)1( zRYW(ZL8-;n_V*pZmP3c^0L-1gagV=|=8u$#Hpw43yT9YiyXr{ue+Y%3SYG_=V*Hrf z_cSC@Jc<cvg@tqzHTFE=fCT}Nc`NG)OJ!}TWdF;$M*J)h_@Mc|f^Img)vHqQhHc}s zL7w6a#$Z)Bx?r)?03-z-*T}~9YK_vxrbR8pBB%IdobSC`wirtch|NLYk@4-gIL|J^ z;s&Q)dd$g&ac}P;H7#T5QB%y(*@HmK7P2-beR=HS5MzqLbV^kYU>N^^T;U+56qkMc zs^GYT^-GrMBj#;DY%UB)@wA-6RE03I?72IY<9sB##+HT*b6V%RHKkP6CpivUBb0^$ z29f>f{!1?U?AFcO|GV-c9!bb|7ZQ3|sYXNewk@@m{(<W#zW@QXiu$y}@Rg3?OBKVq zPU}7_aVIex704VjZ;cQQmSDL<a-r-x8kAPJD^4?}8v_;}Uw^Iu;-oE6C!_(DO-@f& zIdtY>>jINQXGi#Wd`C)xsTe^CW#T9pxG1zj_2qPCByJE1XS4_DT?LS04pSsa@e&;* z@evgy_CA_uM_g+B+s8an=zvl((mBwto7a*>4N=S5LH4UpKgrwA?x@%W^_otQ-Jo*Q z-LC2e=x+z(Y6rt2QFLZvwO0XSNF4&P6G)p;PB7{bCbNt-A4JBMy525836(*O;4y@k zhHw>QYUDsFP{(y`#nAivmx`2?C%V$;V_s{HJ=5+wIFop~7pkQ9t&G!DN4iI<ZU2J; zc~qsMtBx@{3*mH0&7xpwvG{m%F7!<cI22jU8e;yf61%S(vI6BmaSxKD2N%r1W^q*r z6a0%UJ0ceQ@B|B(Jz^=*YSg21xe&;uOK1j(^)2bm-gNqsdD-u})(y-<UPRV43VFnM zH|?n2>>p3(Bfrb_)84E`AsiROX~R(Rf;yLH+wQWpt6m%wZWnz6^F(A*?9iUY!M;fR z09!B~Fps~CKW)F!FiaWPs`F&Ll%#5iAZcR+r)lF;nsqB`y_Bs>@>vTPHzF!ckwTvE zRaOtv>;-h$WEiSQD!9-DY_+ixTsyTN@vRfnrPf!`_fmnO%)_v{ILKTEmCVP;V!~F% z3Wv()ElZH{gX|VN{=y`n+T*34C?}rPI%fhjE6KE=TN*sHcra5f2z7goP&ujfniw}k z*kCSzxV8~Lu<1}L7?c^oVj-jq0whu;l*xZG)o6xuE5(QSc*thK^+!5cJ|COBGgIX{ z4-kYF*XBZvO@VG=v6fkl&D3taR;FkbB*}cypEYVW-C`1DB3lVEv7{B9h%fGiNI9s2 zza~=@l^R>m(Ji?-5@E6^&e7t+9K{c8j`#uce1Nqfv2@7mQsW&{C9^CA$Vty~JS6Ud zUpZ0yzu_}j+<%=~PJ?=f$b#UmRS_4JEN5;80V3_b39rSNb+Ja-w{mPxtv3`#rn3vV z#WYc-yHJdw3BI^ko8eEK1^|zz8!~X7tjejg#!ND|s{Eq9sBEq^^Q`0dyESA7*$HWe z3@Ly}>yTTTne<St%@gvgLHx*%brh+v3_+4o;5m~09Q(Dw!ypZK7$F|Cl}MA^5*}!> zbhP|<IAJhOi(EQiUD${Oa?X6}!u@?+`{H@fkb6_O6jEn#O4Quy6jq%Xd1@hlrgF3` zQ7)%#*!~!fkSEP^<POUX{@?O5%$QeN9npJAt4f|4R=}&+I48caQX93bB^%2z@+8t; zp)m4=#;RIMlQNw5Xh%*ly+SdhYVy-O3y;&aVJ@tk8^zj?MnFjWo1fhZ-MOGPzt)$% zYF(|bwm|gsqec(qzd}}A#Fh=$whu0tiK(b70}kOLiKfuWQd6N<$d;KMRaO18B4{5} zvs1*|p&*dVD(fm7&1Ab{OgEKvW)d{=T07vH6}RchSUL8hMx+i4C1}xUE#s-aZT_1} z3g1XRkq}2SS16M>S6t>_7P#UXRtlOo2fML4lK&6<@dRpQB(O;aTZ}?ziofOf&tAI! zQ#odl(*3>zbtK!5(v*_QYWELQDrJi|3e(^>{Mq=sdwsaul`Y!1etq^k{2c%}-^Kf| zzu6W^gW>gR*1b+wYIp~G0kR!x8KNptS1p`n#u5;+6@cPuFuYO`2b6rA^@J5Rj~t2W z&oo5glW|TXj@4AZ#^g=)Qy{Z5lLvz;31Wr%o($HZ*r*zONXSq<;9wgJmFtU#^!;97 zfiXNVrih6e#zC>ro9#zCoXkf)@6Ebl$=7;B_ASLt>PzSxxn}hRuxz$FOu{?}LFiUd z)wSMr1M@K{wfUz*%FMIlyV$M<Q(<k_!k0QXp=?%uR`SmMI}5X-`q&LJo*Q8)wS`F` zSwYgu2sLCOc)lYZlf~GCos-pSfA8F8rpYZ(so^AcjSt57T_r^-UGijkt$%ZNUUS|~ zi@cMJFi3*^Q%#vv5i0~Ar*j-nJFD*MQ4F-2kOZ?>W&Hs56EQucYEcZfAvNJ}z=bkO zO<p)-pj$jnVQ&~ay3~e634E!G64YQ+1ai*X5^xp0NfyH96!&EPq*q>Y<62MlhSTAG z(!Ja-yhd@|ll_G{oqEbmH(nQ~U~4v<7;%Y3*UE_F>*26<Gp(#*V5ugOAvR0=TFwqS zw-M1>koZ3zu%nkdi4x>x{r}6?px%vL1?NRJs8M;busq7j=d%gJNyl=`vE&cpT;pel z1C4o}F-|l7<Cl*9$;)2;ia&kjt5&}H&;I-`{_?M0v+A$^=5PP*wXgg8)vtfUKm6lA zz41+J-u#w-KK+chzOB)9X4l%TbzSSbHgs+55}U9u+uSW~=WP{`*jZg5J#ax^c0*O} zF2PN_X*WOLB{yjkZHPDTsmM(d{rY(G2Xbg9iF{qWcemVQNM>!kcaI(ex~>a%&y>5W z*uE2k)ew>~SS@O&USX_9U;Dw<uoBAG4l+V5ymsBs!yatD7J^~PYaH>k4vvcYj4<GP z1!Sts)5ERlE;055;(z8%12~rMV;8}^O1jY3CT|Ksc)o^BGZjWslGg~y=d=r|o;BXX z<#(ooP~Fq?srIn7ld;~RV`ahde+mP;UGMQk>VFLPzMzoMhxiAFWM=A#CLuV8#})^n zklfR54ms8@Y7bltSnWN$?~W8r`?u=h-|kOe(?qc*l(2^#Ixe1i^V%@3FKMqV-Sc<e z>m46Yn+wM<CzGS&dM^|6FmIY+vZx3gd;Rw=N_iR_e;qo#q3V>g%6t7tyXLgliFVV^ zUdNS}pMq}xGIYC5IhmW<{vzDFQSS}n-k*niTNS(`aPQ9?x=+VsT+TI8bn^tO(0w>2 z<ngr-Voy*<=x)*;jzSNw@*chs4H<r_`>C2HQG57SyUAe>AJB0Pp@&z5as5k`Gw~$c zdU?3@fn+9L=8#<Vu2h;lywzA|+5t>RZkAqoK7}3c&dKrl|6}j<1MNhDj(=M_;MnWM zI{zo5+ZTtyUa0q&LH38?-rE%vrjNbIA-Sg=iWQR2w<B0Wa*_6M5_))n_i$f3)M*bt zY4;j?xKzg_sZ7rc1G_}KeFnOHu6O&%cDU1SzY<fMNr{@;+(e1&_A>3^lT??dc^ALw zOeWsniNt!3j_lvr#WTam-laFc!kedtoA1z@lH8w#o0oT!;6Kk7>*3xN3bhot<{{js zwJy6L)hWSjPuNxw^Xqm{>uVqEMD<*$Ab*MANhUp!`c4J!4&FS;!TUvL>iy2R2*7!> zI7?osUZq`pnOzKf7w@|@<@ran;`!fvGkxum#n(8B>vU+}W*1Kln7>+YeuFnHmmCQw z3XGi9D{0}1z=^w3#d=t=7k%x{cH~T8t`RDb(<z4nEZ1qbV!J%aaj@yebZ{-LsGqbG z5A1e}4p)+po*4SQUi+1VpQF9sTRX%3kK!54oZjG%CPd19C$)?35zUhGtEl>VXX@+M zod}$t>(GA2E-V)pI!$l>kT)M6#(RU_ypK1RhMVt|36TSPCE=D(-;hkmfFtHBF~N@` zM%rJw(*0H^f_STRdp|+3Q-}$)Yof<`x3_jie)qP+DM$8GMZr(luSM1RvfBifAM>7_ zhRGKl7AcmY6L)WCD7fMiDaVwUqJ-sV+Qm=VuY|s|i%maF?YI)_QD6IbJN?Wqex<|x z4ZD!as=T>JZ~lrmZQZCZ`-K7{M;Obpk@j+BXFPa$JDAz;FSUyY*ssJkw2Mz%nBwZu zt*Gjv`%-CeNbxmx@qiBPO!{pS^XAQ8YrhTNv_u|cV`N|LjLo;Vv-#P@Z-s(3um@Ws z?aO{A_tx{Cgran`A<$0_(%((0Twl7YGm8K1?2->Fn$Nee2SXTe^}8zct|ehS2K9%r z0!7za5NgX)xGwk)mHw~sK;ZKI-DrD$SOi56XfC&kd1m9z5c_IcY3@T9yK4*V0xs4V z>K4m-JXc5zZ-Wt61<=cIh~BrbBArCO7wPC2IY%|ZZ03`i0WnYwKN0dKO4vszl7P&B zxI#ztgurQ(?crO*Tf@(!nJ~p|o6#lb?T2?5Y5adV4khGyW0wX}SrNdJI<b--f>DbX zYdnf49X?KjQrzQucs%P+Ho77-g*~oM#r{?aPCfnUvcI)nmkq9nQI!U%UjFizzv2~) zRK05D$`Gu2&1+t>Y84|^e~Xxv1g&2G`q#hV4UAm<(;MHY!7Gq@i-pjgf!eKb`x$t( z-q1AD8up=n^9d%vY~4Rw+lZf7g8%8lNMl{HO@b^%LM1J(vfUD*#3a_k4Ol3&g5wvn zYrb>ighmnQZN3Go3R4%=$dO}uSG3%lp<KI#M^^LEc)q&LMhC{Y_00mzIFnZ!s3c`M zGmKI*6vVu*K5mAQHGZbCGattjn(cMQ;@(8PPVOq%Vn|q4YD{~TZRB9Y%DWz6&zk8e zpezshMk{exU06k8lt=->(tEb;p3i91t9*g+JRj*EO@99ebSF~SvI&!;v9Zj9k)gRl z&Nvt8UN1;xz61K@Tf@x-kydiXb-xN0EBiQDj8ey}Eh9c5!G0NA+p)5i?B6$yb;s;u zy|6IW*L5(~THL*3v&g;1j7~9oR#t`fcC3TMrjQ?6TER56c)hH$`sB(;d}u@=c;Tk2 z@X;vqNn}P=@L$l}XdYU|4gUtv%G&fO-m-kQ5}-$0P7wN$smBB@PdZRi6{wIEXI#mU zp@h*04#6^-F6j_sZb1<%xL-g=w6eUzHL*h`bpMr%Fm|}A1qpW4;i`yU%x+f(QjQCo z2-Ia=1J(LcbopmoMpl`!L@v3|6eecq#Z0B<Yb$Y^2}HyLL<DxGXFXzBAA^SsxA8$` ziDXe^(;9Z?qgUb)Z+2y$_M3ldH>=qv{3au6e6u_I6f?Mc>c`^qm$6&J;mMVu`hU~t z93{xRKlru(>=g(^6pms@6K5Vl$WsYv(XoPL{DAY2NyeADctRZ+O@5VqkrGRzaK!*e zbhVwqu9pB@2$<cT=j0a<3K4}ujY&G=hrDOon*2x75LS6jQdv8VTf^4mJ<Kjr>6cyn zj$=t}=ouem!QzG;Y{1w<nx(-Es>R>+n8dN&p|Gsv7Yh_HpCS~nd-z+-DyCjXQxkiS z0z7uyhgnvQ()4-5U0=dxm{YLXRwx0iw`bi*9mRerkksvGA1S}NtwOpe=pOFRl$avf za-?~C`-luaisO+$IJ}MKl&F_g)}$gySj-^AM#wmAE8B}C2@SrGWWW{e(Pmh5+9ND; zkvtOn`vYm0lAyU=VSS9mR8D&VgDPi1q<xCaBe6`8X`MFgf~2i3lK|jz0J<yg-FMHb zxTl>EO>uM6`J5GZtUp3A^!w7>5>I3V)kix%yXyX8VYH`qFxrCZmTid)zH+pX?t5>i z3`T;txrJaC3rr$=&wx<fwRsxKjUitNC!T^^Py}^}LY@rZjdzw43VAsZPZRg<2u2$v zl>T-h^bN<xb~W1AVDqLR(7E<?qNpt5ng*i8`krR6{5$EI^*s!hQ88@smObdt-lnQc zbT<S}MKs}m@-qffiNzH%YPlt0)aWb*!~SjucDHWud9nZtF>Gni_p-g?(4MkqT^bw0 zWl4$AUEZ3x34Bq6I@Kt4<6;F?%GLbls~STG%Zo@~A<fIrf|2wegg_#%9O-g>lZKLc z963vNIj5@GlEpMC{4!hGf|~G16f?tdH+y05m3Ui(c~_oeA7QqElmY^O=tKUEBJgM# zGAM%x<gEUPEg$6=l%56+Acg{1NK#~<+Am@a9IgZ@zn>7Tl#o;{u^dKD;U~eNFIfCP zXO|43>L4O3os-s@gq<%o5r{D~v{*i1O)zF`3h}&?AtHuZ+0=5(AuJ^vQ;%`|mYv|} zZQ-1?e2s+(L~Mj01GRaWY7HKRCHO#qzjORq@*Nu~a7*A2f#xwfa8&3YuFDOabfpY* z7NKC|R3=f)noYdN$f@FrMlW$zAhWai9)qbeP!~V#a0bcFFPe~cDcfSyw1Bh=`Q#CX zw99zGB;YwB?V>ZIJ8nqROk&taAUc9B<W!gT7a8>^hOS_j2Pifif!OYoU`%kz7^q?j zb&d)Hd@q|}ieF)X*YXLXn?e;((^i$7bkjLiTvr%iUn{BrA#P<a2+t+Hh>-3Lyw4~d zffSQSL}jyuP{IYPq%YZ*rzW6nsSEIPLtO~%l^KT`Is5JcM9w-nAf`Gp_x}*md}0NE zvav&p*n8nMExQ)7qclAVLuwHW`c5twM9DPkuAKOR`562F3L7}aege2z)t6#Um^pC- zP;XBbnUv-2!~HgPC_|P|NHW7o)`!9u0ofEGKR0brE<(;~M2L(V9*=&52x0h^$rHAu z6gLkUVDtp4S&w96F=?KwOt9SrCT2CM<O5fsa-7^e5;r0AKvRkP$D4=Q&1!b1BtRXG zdyng{^AQT9ppW=DSC3>5M{p_mjtaG0n}^0W&86g<D&Ned#OT=3qqHNONMFt7Nk;>? ztI`a>1I=(hiD&xbOq&+)k!ETBD{ph3H*Z(7+x=Y?V(ct=6Y@*m?BP&Ds|VT5UcPBy zaaE_9ebq6?6`ca+xT2#SC!<su#g4z?pEFsRZ}w!j`AwBn%PPG@r**ua;zPO@WyOkM zlviPwH4(`*7>b5Uw&U85t-X8l!Yx3OHLyS%px7~;ufFM5XC=k!3Z%#eA}JD8>{z!J zkOD;oyX`pX-~U*x3Ej~Qr#0{eImwPLD%mH-&hWAwc~ib0&6X+j_@i0cu%nGi-cSMe z`Ny<eajEWwNSn(y5PvU$@aszUwe_R!<o^3V>|xmA5QFlPA&P+fVKx2@KoTz1pgh9z zM+_c$)X`5o<`}C#IkZe-^DJhka<aa&q{`$>PFB)9ukVaiCL8yK;0C3ZMk;)A*EZtk zA6LiVczljSEAy4e*7=JjVvkRC8})m1B_X{;*Kvi4R=-dy3zf57&^F3{oAo!^9PnlB z@L(syt?%O(Jm=j&5=)ouWQ||u4@*DG;WINoIt>i1Sbwl;VemH^y98%>-Mj$s!mDW3 z#WQMYOT{)=>}tgGra&j-iC%ES$4F}(ok<~rZ0f$SpdC!iO$BiCUP+_zgHj;5y)HT) zYnt(w7Mf$3M*(pS9SsGW&*|zAufXpj`^i@kMkll|zMVMEb0D|%$v(MbFcUa_@}}>q zCiGX&_g8=MaC!BKcr|!g0T(M%5|C&YPqK>9uBr4wN`?l7yF;E(I^^l{0`J)95*>?S z$4*f|A#F2U05ASzQF;M1ph6zLi2`<l7q|&X1wHzq;mSU>2lU18CblTr4LDqJaEud% z;V@39$hKuvm3uK}_;w%E1B&>g1)GqfAZGa7klCN6rz0Mmzy<{bG8Fn-iQj$V<w=g& zk-~x1lPjm$FxW<z5%{?JIb+REvEg2%Vp29IZ)J`|HanzW(ZXwLd8w1nR9!Q;M#HkN zXfsv_fypKIIJe9^zCS!xD3m@yj6y-|*s7L_j42T6l@5i4H&SbBpju}iOPYKRM%o96 z8IehxnS#T*1h3Gl(pQpTS4jXeyv2rOMQR3e2ET{vlBdRMbSxF1(SHeNO1ci%Fh;<c zVoHMxr$GGop*b{P?*laHre{Qh;)EbTcgrfL2^Hy)a_kNqE*K1FzeN<X)<vYna3MSq zE`%q-h46%2Z2ncO;F}bs)gFzgwr1>(7s}sh09y)fsP~dhT&!cX2?oIx%4}`%LH|^B z6HkwhT1MD=Cx^1#!I}yEfm*Yv&uM<2T1kQ7$dutXn364Ga5;p(*ZbbIK;#)u28suO z7^keJG`xLr?%VhIw>DWYft8YVve>;uobYdf>Xv~FXbg)uUX>6Zqdq|1=%Vw|fXQlh zt`dD!PPl^v;9v&XFE1)7XL}ytJYtfC_{mO-l}@=)xrF>~E{rHwOD`qArUi^}A=DKv zgu23oN?cB3LS4zahuI7wiR`!RkGJ)ZFq7Lj@uaOeO+0|eP2Pums5bEjbv*Ig{ac%O z4S_^1ops{5-Xh6moR8o4#B2Qm2qQ7vL}t;i0o6{5{%a{sij0g8ayb2@<HZ=6XHle# ztU_4%xWEyzm;y&hSpqzll7X^BQ)SbHC4v#T+Jdc+$_cgW2|~L_dte8VmEl6@HCzb2 zh6|xrx!CDqXE&)&;F5M))9fC;7-+T;?2I|lEc(vjciQo5G^-<nnPF0yT>^0>!s>JW zt<kJ{hn>-^B!8>t_<JQ<qX7+6gD~LlNU9mF*O+rg4e-&_`Pp`ZsV}!%@ATmpPG`A{ z*?VC_YjuSG!N=>Z;IE6Z`xdb)HQRILo^;D9zBn>1_q6zQHC5r@iwqCto+P3jszb6y z1HUU)&Rc6P0{SxB7oL*ZzN{(~;)FCyvAhX2@p!DCrUw4{;A1Qr+cHq8S8A05D;3dp z9ADW+)JlK7t6z?p4v6UnTJrw^P2AzDuCPP`Tcb-|F-I47RM&S^#8I--ETd&QOcGun z_AUiqYOT3*Xv0XD<d0%Uxs1wn{+^-B-UD*Qg`*8@T6QJyhbGpTSfI@yzA2<uT=0hx z;Dodx_>=`ylAmPO&H9@UIWH^&YZ{h13?&IP_R>71ryHv&VToMABIIFATUj9#nbz<G zOXDJ`xJSH(Qw<={xReCiO5i-ZfCMD!$XJJg26e#EAZbS1&B>Z`{QFzgC_~Oj{(DEu zx&HcR^>q#r^IK$B4d8rWVZwA}w3Vl|y}t&Po>bAlK&mB4lsqcr(Gs`LZ|lWCT8M!A zb0Ha)#Gf^M9X~L_<OdqQZd$@&(%i9Bg!-&$<%^kx$CyjSvQS6kH5CR%!<f=G>t5$J zA{-X9W+Nd|sHP;tg#<&q%JxyarWia6YMh8~=@N2j7?;fNNn`KyLG>F8g5wYqtxn0b zGzQ}tYDI8VL#@22OODGbUD=oXrmizGZft>GzR5T`Kkv3^IK$EO0U2B0x};ZJW(J)@ zC_Q$=n<13mm3>XS;Z1JD&?vFS*V!T+yK1HhQ%i6ig6Od|-V8zXu8^0-n<0oU(Rw19 zH+7YeKwEg3H$xD;Cq(OcQ@n=up;n_SSxq&O#I*<p)pK;EwLcjgW^i2;3uHtkyKnlE z|NhL4SA67`TK|*lCl43rT2@#Nl%IT`L*ULt#?lqLbZ$ZrJ+5BxW(cCk<Tc(5LG-YC zaXjwP4pf3T0av=(M}n|KINsC{Itjv-2Y8d)7<8sAp3j?oc2g4J2rX}lY;I54?GfE+ z8?9s7rT}J%oU73M#2|#`gDcNd9r>UC4+8m3l*e6m9&nV#2%sZ=j=ykzlhs+Uq;@~I zNh0U5*22@CcH)WQxF#>R@cifh!3$pS!WH;?QBrjQ#BVY7$&wiR?wmmXQ@mcE3^Dd2 zyX9ym+=>yrwT<|RiFAI#7a@N}wt&>QTjLcbuUVJiW#PGGze1yCjjui4MR#->Xo~nD zy);G^=2Y~U_kE`7T(%uz7n&_$jvkf9pMVL3xAh6v9?9hcRXGOnrDB#aP=_`m5Ht^h zc}al6nY?Np!4QG%;mA180Xkb(kp4IT1lDC@N01h*j`>G`M+}PX!A}xnBp%}-eq(l9 z={Boi5{`S1|D|P7)1=FgwDehqQ2&tK;k?g~p-&Jb?UDC@2p-Tu(ZKsF_-;v#(Z$}K zS)ebJ0RnJf5_siCdWrZ1M1{te<d0*&#G5k0K~u6I$dt)s=Bdtg=F^yHVxH=ZtJ&HO z%O9Wnlw4-r6ia=+AfUf++ScU`+D~;FpC3kvX(UZkXiL_k5PB~EgsYv;Rb+z;a(O${ zU&v;ZfbbLW`!uwybm%P5#(H_TgJ;$Y8*%HU&UT;Gq?|rM0$^HUdwScrEo1<b<sOrx z@Ja96=<QVLd(a2~Gz9c;e~E4Gj^rjF)D<mF^d=8R_@IQ~Zt(t$;PPj%6_eVu^#Z|d z^`?yA(3BJ09p{Bjgd{k1z4nISZnAEQ1b0e*UB;>zi9<>7n5#Zf<m?Q=5|O+`_o0J1 z{EyOYwn1jR-w|PRs3)^E&!L>NcVZwJA>`qNMDw!vW^eR{gT=Fcnh*wrrpQ<$Q2vJJ z8N*P(bsRWejk1=scV{e6<I70S*dO!`uhqacQl-EJItrTCVwPBklzg*^*$4zWHXyvK zfAy{mVO)9+T?HX4>r}@F0ykkQ6D~``K@g@7p3*UTKjI)5dUe$o;2L^40t8djU?XpB zrh=WhG#^U%sJCZ)b({<d^MUpt$cZq<+4D=sJS=FLfQ`n-yPB7fH*4rX*0M#_v6XnU z1z&#LK{39>3bFI$?r(=Z&w$NJT<i^BPFXiazLZ5~6XdI8HmL?>(>(mlU?fmXV{00) z*&J&N0aa2jUTCrhZu6l{>7pSQi$hmRqc(#Uj$t+`;vWc})+_ZHt=-?+KC*Xny?)Aj zy{1Q4@n}&7?0F@*PnP(5wBE*%GVKpS7^Pf>GNN;nWDn-!`GHZ(vG6&^!n+j<hYRkP ztLH7J2_Wvp4IOeO<{F*g<@g5%--<8|<c413S;@wx7cLdd(T<iUM_tS^gVE*39S+Ku zhh##Q3f7yMca&Y4xHM{Lpj}P(-AM(m>2VKZmekjHJwWQr4wNJ?NuHNQ+$clIFRs<l zax8`vG{ILLFta2M3xJuS^F8)sRTxGUa}6F5Bi%iQs0-FHdvji8Z=oDb=<Vx;-q=8} zTWD5EZ;Tj#L<_xfU9zdS_sp6N_RT_Xy08hPr(<J)p}9A?ULH#dufQQi0PWw12qx*_ z<u!~_!stV(YN;B+HA1=X`cdQ1I-&BeJwop>zDlhYWQh~YT@JUMTck^ngDUAIRywS| zK_!uau+@p%i?l31r>JJ<o&b*o4|X{z9C1`qI7*VB4nKBB;l#C`ji)aGFF|${g#9!J z%{0QU8qBPTYHfb1ZB{qu<mjrqY7VSSVPT2M3@UFXssr=u(%K>(5tK{m<sv980(|06 zB*Gh>ERIhC!gN(Mo7!qC9okzm0i4vFVEloj){ZP$grP;I6O)0<t8rFju|A0P?7CPn zjI^%4pK2lnJDFlt1bTW$UMbw|P}n}X0|W}2;GE$ySCJaLJ5gVVD`ivP0p5GFDXfaT z`3#;FA+!KBrLpf2SO>$J`VxkWj7B02Dh?3FcZTpg6t)Qre!q|Gs>g|(+mEC}j%l74 z*(IWg&ojsFO)>L=U8_Oi-0@%D#odpPE=Zlh6jO}~(9G(KkaNP;ZwiJ4g_Blo)3GMA z6~~RSCI%>)v{VWQ<wp+6b!vbX4;W*$Q-g&A-D?YUxA$chs4jde%>)ZnHl8rlhpwXE zC4^whFlK=@(Fjua&BTE?$y}xqWx8L)XxwKJLX2I6S;RcWS>(za+HoxX)F3aKT~@(^ z7DJpT`aX7ns8gBm69t|Kzd4y38bbW^5eOm9<z$%Z$p60o5I`J9MT`m}h&c3vfAi)s zh`0bJz{extxf9_KR%+#<j{G%;5s#7-T$}*UIAT&5<CIhM-1jUy^;AX^`FGm#<<EI8 z{+{<d1QlP%KLiyKReUk3xxNJTTwltHt{^-MEn;Ivp~CS`bD_mo;PrYVgcdpLH~|r? z+;m7hlM*9!gbUFVp8;#dv*gDqwHu8+(ghn~(hdK`TPAv_N=T+-f!inT6|`!vNX`O2 zLTh%X>3ra^d`jlpMjVrQE*ulPfQg|8a4`7!atZf9al<dFstvW7r_;*@(?1DcVBebt zPq=J~P$eQnEk5D4@?<2=Yhw=2uQYDOR|OsmQ4u9z>>!e0yTPG}3K0F#Kp5-lvb<*2 zbFjVY7*j5ibs!$TMBuE-iE0cy&M}g8p#yC8r$#T;MpIO!9t*3wzNjg%^;FzJurk}c z=d)00L@*Y(bU}utVqd7j5a{le%@=>bkFgG{Z!i}3e0@WvY_%-pFqhL}d&zY5O38xf zaE#FW4NO4RxK_i~J^}CY@t9ZroMP^H#J}c_b0uv#fuQQyopY!ylTl8D#Co#sIG3B* z&R-&`i;a>P8B;u;B{Q7@Y@nK7vqB(l<g>}IFF^cEd>4rX#t1b&&XH8RZUy)v9}!?l z)>HGz<f`zG#FrZL=G@>OI5*qfw4WJAl7@m^!HjsX!({un>jD$hHVKz72~iu50-w<; z!7F^WD@kGC^-6oyG?iwLCravlNsr1nBhn+(zV#?Y%#Ceeqo!W2<c*0JM7;`EfwgS0 z%~=7-WhLC`J$VpPAPzkddi+L$28J02#z6*83xmwQcXnC^Q=d2;zTbN>bKw*j&tNhh z8=I)nrt!!HTI`D=XoYg(8ptfE(aCV3NfkL9TpUmqFg+<U69%A;E0;wjir6Ildh3iM zF<=*43PvVI+GfkyhkbM=H8k?4QiFcvNof28g(VRm>?&mtfq{EYU}Kwd7!S%J+}Mm8 zB-+MBxh!71AVlRzzs13_<Ueg2(`7`|6n=q!)|>4SCXQ%mLD9k0pxqUSfTXOpyF>7C zhhUGAu?7iSk+G43xRm82P?zcp%LpJ4v5GQe>bLov?N55QCiVD1kRcXJBn##xhvYjB ziR?q`GdbC3T#6LKM24grI}o0Plc)rgU`}S)u7P_#=PZiH0}N)Hfpfbg67`WI@iRUe zL*lVAno=Z!<Ef>i|ADwbOX<)<*>Fx5NRv@TQ6r<-w%cOSIs2)ZS;Ak*puzw+pg;m7 z2fWu#xJ?%Z#2{n@x!`XOE4?~Zg#Ls?Ky%;+_|`QX3C7r26HhVcNf7{&S7|7_!gXr~ z8d|NCv>gASC4{_8j?^r~CJDKN#E;l+Z~!g6OYDytJe}q&uP^%GOrGkt40(N!Q4lbn z<h&``Fj}ALFWJXM-{c4Z0HO%P2;S8?PMxLjSP*fwMmI(c5n@CPS$@q|89PC+kak>M zimfgYYzbt;IJ)s|a@x~(_!<LyJ+*m$V?Z&m4Pq%;zu^Mt$KC^bB2kiXfhb8t=&%rv zkM--0D60`vOU6h6Z;g75pzRcjN_aBkxfZ`sXi<ZQiZyMKf$Yp%oc0#8pa1q4r|&Fr z%?%QJNRAD}4|Xkh;X54)i>7D^1Cwn9>Moaa?6b-5pevwr-%M}c^zMw_&|T?S^53>M zi^Rn}GH`rKyj#s3l0qbif;#0ea+#R%JzySLs+StM%$o{Nmm`NPs@{7@T8M9YJ3Lwm zNkte~g8JD@MBM8GHf5Wh&!mO{*}$TWU<@VpM@Y9Jh3R($g?p3(psSYj7{~vDj}T*o z(;+fJ<TPj~nm##^7x{tIpyO~V|EWVerW)`-^ciGb;AF343zsGifw&2j#{PrYL;p!6 z$m!90-Q&HQxy4-up;zSuQy;UKTXjJaBWBGpjt5Dx4>)i}vDlMPO0mDSH;WWYpvoz> zQ@&}OnRk^z45d)4wKt1UNWyd}-vA2C63CkJIH!OGeV9uTn;r4^`U0#7ww1!Vu_dg` zg??}t8!JFDzXcSVT0+77>kkf!a|=+=dq$9tdKIkdOmKcnC}<_LfWki?_l_>p1Gl(r zQTmyr=3m-_FkZU?9|)5jP|@^!oW*CAV?&Ut5TMfNktgU2)$5^qF+V>T6g}|8Z5fFn z9;Rm!BPg?)Gf>u9P|CM1*sC=psEE7B&Ew4E>?%JBjdl{sVdk1WtI#ZI6c7wT+;H(+ zwvMSh15Y@f&$bVX?A5#-#-uY7_AGcTNBb(syvw+86W=l2Ryxd^`ApK5U@t{#jVi$E zfT+M-+`NobqiWJ<!(y{FYql{S?URvPpi0BLcg(%;3#jC=75sG}8<XMG5J;7?zmbr+ zh&sdqn~REZ%?EOE&4UQvc&z6O6{U;%->6Vw+16DtjDi-XSrpY;xafmE%qDL9tg0lR z!1ayT;RTxU*Sz;Gn>hPn;*c|sPqx_w;aH%}joy^02Gy3k1X9`GyET)GMx*hCpc`2_ z60z2B*$@*iUb1+lk{yU+jP@S>MH^;t2olt$Cm~FPKn)cxt|!Aal|HVwg=_P5wukFl z(hE$z1Rf~bc;#3-+lTsN#hNbtg#{Y16V3Ax9fG~>lyK_Zakip8kQlMDp;ikTBVwxQ zlXm!P*yc@@1dfac1|$DFgFh>WTJD!@21ln6ZA6Cp_PX?<mWU7LJRgkh0#~a6NP<jC z(@Y7B$QGvI<V480w_>xe>sK5fM=mJQ3-L+WgiP(4JcF~`Fw@Q@gt?OQhBsyL7j1A< zx#|}yoyA9u#Sx~#_u2)9+t6b4O)NuV0$c?uzN9dYR*Ld6d$TC}L{W~HmKsfGg}h~i z3<Av>=Z4c)Lg?}ehvmm%(-0TDeeSOGH&Q)U*0<=n+h(n-zaPYw=(j5MTNG0T)u!C* zstp+GsxKC(A=r*gx9Zi}Y}LaglfQVlH_M2G<-<PGi_0sC{xqY@5b3Bm%Y+KRI$wE` zBd9Mfag6dwR}*2`-&;G!TPtjEysy2n044A+K_)P1I-oT=*NZR&+*ZO}wYL#LaVy%| zM*P4yjUV7WVBWTS^Jk*6Av4_t@iDIVh8|G&hAg|RQe)7QYF4<gwBc&D2TLTP7+6?E zHiYB^!dc$BfeBTMDs&Lni^QgoPzWR<?F)(obwZh1FD3#d<e(TKN(|%o&RV8*lXquf zel53TmORLb){I7!D5fJLQZ$=1E;pIVHV~Q&ZE+5;_bC|x6n~-x=F+d)AHU?`u(R2v zAhdqvStYa9R5q5QGVy=Z9wly;WBTf>n=g|tnj#tz^iqR$K}m(*5-FmpR1>5~rRy58 zLz{l)7z8@aZ<t(^4}Wj)&p)rCPYudesFnMRKuy)+cF_^B8UQTR84M;+q1v4kIItuW z-5P$PemH>DbIT*4%s8Q_9TOtvEvTT?nZsrTDMHIgPN)9g=Rc^-0uTm<iv@l83kO{+ zTnPQ$4^veBP-6=fwqTKRlh8q2;BQSn=jO<VL8SVW?l)HYK`k>|EA0kiEfa3JGPfKU z%uo+QBseK}V)yOh@{#>98K|<2m4N9=RzVWvp-e04wx3wGLMSr|8tk?U-}cqy*c&<z z*k+e)vli{;V{sc1qHvopKMMrT+sr`I6<cn|6q^=M37l0qWSR+763W4Q01Y4j#wFdd zoXbUC7+ts}mo;2+yB(M44_VTk9kz}q8KV|oqia1A=(3vJkX8_*$5^^CJ_rNm`}Ned zk{u#y814YJcG|6ljCRFafF{ylxh*GB#yHf)`*n>tXCHgy(#k;B{^Y>0pGgg}p(M@$ z1`!h#OxjU@YIl2oliuH_50U<qWoyCEQj3-cQQBTX>ygGP1nMv}{<hhL{8sOxg^(}f zSs+{E*T#7U_*BVe>cI3-+>z<yg*Y#^?XdjoSUbnjvdv-s@357-ze{=i>+{-(_v%R5 zf8gy$3U7xXglFkshSj$$7;WP@20j?C)?NOG+Q}4(+_p-j*-0<AOx(X)4-D<WLvqzl z%a0gl@-WMNKD=MdH#mIN?A%{}>VwL$j75OIvhDfT7wPL@v}$(W?)Q9N>xQyx>~hUE z|4g$lhJ|H$7aYf#p{fp>I!lGFKy4;9Sp|a_kxQSBO^t{MGkVn90hL+=hF%VYq*yr8 zpnyTI#C)HToTYP~H<`FT=$ib*D6uj;FL`!Nw*=dn@1kCgL}Vxp)y~;5I}40^XT}0~ z#Yj7c>Z^o_9Ss+HGgj+b%_XshfNJPd)s`fZG85Wn!?>ZvE9Kg{2{5yy;ttSD3V^B2 z)*)cZSNGCF?=&k9+;mU{f0Fzb_Rc~z0);JD>EawK(fP0Ma9uc>BapR?_=OP&zrd;| zCS6w(aj~+QZm}GVfT()xc&cTnG{F>?Yxop4txxEB>!aw6syZ8$q^6k8MAj6pk}QHc zv&0ZTfYuSfY9LeeZSq-`p-ofFgI?~D;`Ah74OCLG@=Dl)M$rg}4_O8f=uGP6>TG_N zH#tT=s(TnzH-Tx5XM{<p+${q&$S3+G7D61R4x^%;S7&)&x_g2zYB9Z~E6V<!3~q#0 zBGb0;Hp5LZIKq$s;TF7)^TJY+ca&%fCA0^+Kxm<)i;8NH6HllEJ#{hW+=7HQ=SYZn zuMe8f7guaBKKm^(6IE`ar1^jbCZ$HNEOvzm8s(m%TZt!xei-x8!8y@vXhb-ss-m(9 zvY`d2tqC&fgGB)#(S$EQ45Od_R(@C==^oMX@BRM+bH@^GG+KM`=V!BpjqGBhS`sR< zP#?!7VnuL$Po)@3eP<5I14Qzk5KBc!DMZ=G4cP6{#j!Kjv*m6n;G_`{4dG_*E0&@N z+t7#|+m5Nj$XZqLskvP1MKnQb0H}ywzB2(plo^^AjW>DoCQZ<0)E^YCWIP>74zhFo zQ`^PFJu|RHMbDkCdppnot`!mJUwtJidDhv;g-)U<Co&W<PF)vxZ?<1eSDqVc`U`P` zDoM{~0&0=kmizb3Wr~O%_YQv2FXXEg1FcbXK$tXM{@|ze?cSSBE8Qg;@*;*<aJNp| zfrb_PHMzIC)nr`c?b&4TOL08-50=4k8K)txa36s#WbK=MP|||g(TCGZZ%+GM>irnK zU`;{xoGqCL+ho2j;Sco5zcf(hi|l14sczQki<^B`+8#A%hh$evUg9VnsIF28Do#gm zm*ezZ?trb+{fy1a>%_vyXz;wA2zXc#MQ}UHai3f{0dO>zd%!1_=@nI{=t|&+0uYZ? z&pMU9BY{HgbKO7#gRqSI-s!I!HfhC5%MyK#KMVEvSWHz^E+?*mVWgD5s(INesl^9F z0E^9#J6)dps@A}=$_eIhABm=+j0Iu*ztJ<4CP5dtz@98<?dloXGtOFfI*9b)c$?9m zHmJk2izX!AREap!u5m1^Q>1CMzXj6X?XMfs@VZudmGTZ?>;k$D2b5|cm!hlbC=WH3 z97pD{fqV=PHfptTS<aY<F+yn}fCY7i0#Z0W7|Ds#_xZ5S(N$($m<$Zi;<K&(+4=fe zH*}906f=+7rz*8NGWY+WhF>UZ7%P|zUUM@@FpIf<DJ9t-p$Ai-$k(Bdp(3v7(G*7v z4zd>e(Wu65J3*c*C!~VfOi!1UVxP$AX=Vg_DRx$cwAC;Mhb{egM%YKaE64&yFR7!R z2FH!6mVurV&<uHPw`fD=V71iiVa80S<K5g;Z)!v!P57Un9g&$dGk2G7E@@F$5r!4s zDU&J}c=N^}XtPPDQ_@3-6(M`Oe`;#vDHylu^pTuSClaDgrzw5h9CiA|-ka(4WzySj zF3|z;gt1wt?*iO8Nt0mPIMpS~CEkJQ^dWQ*8#SFi6Ohq*N`ZpiVSTsdv|j4H*|a`M zk*9J4`whD5JZF;y+!LKnJEeR!HhY6M8~ijXb*suR^C*N6^46%`jt<(*EC=@DB$HR` z@9>_CWRC7cty8QXB^^Pgufi}O<|pB<0UGN5eWBN{a>z`tA1PBfXtXc*h<g2t%-EA0 zT_Sik#Xi$CoyqdPX?E2DPD&FA9IB)=5x0esy4qhigyQw6&Z(yeIFx)rRXrXfkW^ld zU?&Jgc)@Ji+*t#<@}X_PG7;6jGg0lfGUB>j_DHZy0I5hIFy&72DADeR02t;5=XegU zHsNnJ?Y_k^VcMMyhRAVY$$ZjZH^kxfHrk!V?*;<B7g5%v-PM3Q5|~vBC~EiR%B5m? zbJ)z)4GI3jt_`3lo4MgJIbnX218iFi9^0Q}A*d9C@}@+yS=@&9#4KKheo&gQxl)Pj zp<>_LATXLXRtZ2N$f>HN1#U8<E2UHdftF2eSezIdvq{GfIOHZB)uoz=x*|$S1Dq9G zRNN%WuVshjLhWYn)uiO&eyLEX$-7j1A;MEyP*|ybm$Gkp7a#I2qBA5kXBsPF?~@c4 z;{Uj4%%`(`#2Yh$gvX=H%#d(2W_bd1GP`gQn|O9YuO%Q$o?a=FbZ|0BA*w>nk~fZT z@$OAW#v|QKN3u=oMcSYPT<GbkOMxVY1#{GZcdX=1bZBClQwxvg<KDlqFWYU&zPI}8 zhAq6VQ#MQi6@M1w9t%sdET!<;_8bm#a!+Sp+X`}TI~cmoM)ptHPnbkD^KfNNm`aqB zss3EMiX3k@e8CU-Oav_1vQEAex5Fmv$nG6o$cxb6{OVYtL-!bhPOtzXfllr%i;?=( z*dl3w?7##n+2q8_bb`<)OIU&-dU*6%_r`&0Drmr?+@M#(<`*;?_BcTe>l%U7fYM|L z(Ac!}cS85n?1-KgHgklqizy(Q|4!qmT|EJX;ZNQfO=udI%X34y-G?%phm-&84*#s+ z;e7tUhuFh`|8iobBGLS?lf4fc*?FWC*1N-jQW8Zx^iYW+)@pQLmOfqzVgfPdsvwK1 zu!?qV&Q&=Iuh+-JwsVkNkn*wEZ#MPCr8%swYs6+u{|u%K&_oL+#wnqMF&L^mf_xF% zO_O_~jIcdwZVYYkKCep)7*PNPjkUSDrM|QBz`{y}q=73<LB^&u2u<mo0eP`SD8VK{ zLAuQ+Q7z5km_(P^yE#;x=U|y?S*m^&t?mK+$+ZRDUc~JC;4zGsY<Wp|OTgu#9SaZx zc?^<K<}*h`R6zTP3r;^E9wLU&#v+b_Py~Hf1_j^Q-XeH=sgKu$ZHwS7c46gEwb?&4 z6*)`rmYcYsY&3YwsN`IOx9{-Ynu52JEgiiHkVDSsOr}3fTa5m_(>s_Yc&p|MN7ItV zFh!G1o`KM04tZC4Z$@WL!P^Nch#Jt83*N4wlq_rSUEW@_S4b>ol45f+s7{#!(-4EV zJgg`myhR^QFL^KT8t=zVnfAfkW6+NVZ=pC~z0k{R>{~DII)|)-=q)#HcND$N8#`uN zw+!EINx<kJd^_o{8$LS?-_m1=;am7#O$K95n83h6z*YRkRc3;~Nx|A$RLhXC?&8rh zDGT3%GD;jgR+M10HOFgswF!5aade`1%Uh^7Iu<$!-`?b}8`9c`Z;u0%F??G@SCfMW z9ErvWIEoIQg>P9ZfTL#kR^>7O-AwC|x}k+FlaJPZ$VV}oEtCK3!~R*pmU(;M9Bdib zC5Kf!y_#iq7+cjkJCc?+Th75`&hVf~j~Zw(OL#P!$Aba5eF!Ewq?Rm9!L{g?%p5&A zs3e=osDv9W4DIk1(+e(<Tb3vKD_N@Srs+%@0uY2$07(p}bxRV-Ku`AJn~w|^EE9Jt z>ck;U4%Ov)vfAlbf$EL7`f6B@s?EzDHF~JL(t~HnA@8mA#amqN#%-pIbF>TlC3}JS z1KF;7HLcL-X*7F_nD=TS@jT;hE`nt9)~Rk)Ybl?ba8V=T`qm|4zH4s6P@+*ujgpuU z-EFboHL^sHBI1&30Erq5c0*Kymw0dQ)w*BIrY~<6vl`oCyU8+tw$m$}!7VIQI@|2s zjH{T`wGgHxGw+EL_gLX2>D>k*gVJ$xP_b+YOsMAU5Xp@V!(^IV%%hMUJONM=mU&;A zWDv5sN(l>nJR}7B5VfldIA3@!M8a$t+trc(-~NN(yT7Z#KRRWS*<rG8-h4>ER)?K0 z!TG-UI~=F`^6x15<I)n=mX1C4Nl$vx&=5}gU3T1Ys5d5yOgy#V<ddKN^ruV7v5|Uq z>NB5-f@7zl*4Xp#$MXyDhf-sI$iGl)Y;+X0#$NvNm%rjqU-`;czG~&GU;XMo`}4o} z%fI5^YhLr3RjdB`Z~pf0{_gKy``XvO?(gxpdiCpH|AsgG!#~R3KfUpdZ+z35HE(|N zTi)`|r_0|NZ++|A8eNU9Gr8l)+{hi>MK|(>oHSp@_v<@)Vgk^3k664@TC*2f0Jx5& zKKU>kJ0}(%nM@x}@Zwh+LP4MH>9cLT*zS^II(<0hA41Ti0xVPeLBwUePbm}bLtMms zfYjxT!?fC?Yjq=*E(FlKqBukR103m6hGGrN0I9H{%vb@Kyj*9wST!pVHP?EAgePcu z^Jilt0%oSG%vUyb+2cfW_z=$WH_cPGy=3U0cD>qj2%>POis;-Ex`*;!DA(EE7QE2S zUD=MiE&1Ji`{m6?Q>KwJjbLfh%f<avyC+zZe7B|zie~6S3iU0q2F%ni(UDA8HZ4CJ z|Ml5h?xnAk2l0^r@r(fC>TCz!W~?$o*y^M}03{JN_{#nInQ17;;bzC-PEGUpXApZf zbxV52-0u<(4vIfF4VQZp=8V2Y)D&otP*$^DGCcV%+nxNL_|c9kvY6=yQ^WD>p*M$N z&R}U^_HpWhNyNSkbcS}kepndkI~`0L>6<vxFMl&V3qa3Sb@W{6AARysVs5-K8QYSu zpM}{Y|3uJ*3o&Y{?QGeLa0-YxuKyshlKyP+UW~YgV~b%?dnZ?WCkELY2-(zjodbXI z8h_CU{`IqjrZgnQ<*(I(RdDXku54$ZZ)5P~&ABZ*Wp<mfilrUw3Xu=Zswsi(x&myk zYYQ8*rCyuBHnX>|$%n0Bn=HWgw{2nL@lk)1z_x2|VUrJA!}h)cY^&PB#sI==64-X{ zEo|~(YuIiq!1kAIVdHrqf04kpXK!JX4_m|bF9q2CtSxK|@Vq*Kt#OY@(z)`2d?>JG zGq*>HzAOCf&UXI@EsF@s3v-4OUKL=#8pj^KDRNR3ZjK*!l<?yY;Yaz<@Pn#$aOV(& zizdlVTt}0H4^xw5SNd><7Zc}4du31ha5pa!n`A7tNgBMcFZYd6@?oD;GfMtcgz7_Y zlK@4c)?^{BV3T~r;WC?q)n7|Yl8^d}CZS(01DK0N@(C`YzD!622H1F4HWtV<D*UF? zvQv|U2?}9RFqkAEa6=17O%iFa#3X6_3bd#u$(Z~+vz19Ac@Luj##PxkUvF)bNDQf2 zsjQ-=md^^B`gTX+k2Q1nkAcL5N4VIQP5nZPiCX-?W)Dlg*|*OR_O+YAu0+4+ty_5Q zB{D^@MbSkef8q{*-NI{l9az$RYB?wX<g}VcYL4%@G88)_Bnxwf(++RiAo-)&Ao;St zZjj*hP9gE*8VE`LxQ4HK(+0_lXM^NUf88L#>zzX4$5arK{9!d;_ofY!Kb#GcZ}{s5 z3106M5-)&GNVEXD)5$lzX@lfNvqADLf88L#>jp`p13+K2b>)bO6-b9154>Hjf|Qz^ zbL<0hgAtkoe3wIDZ1aM=MpO<}5N0T5{vc?gDR@3%+iy82Qze>cN;HvtXqw2u`Cb8> z=gkJr_X*B(1324ZsLl?~_7ZTAvOq(X9~Qv5y8zB|OlRjpWp)O-$6GgIIc+v#xz}Ge zV!`X3lI`pabe}hEkUV=fNdCiLH%Rb$r;yCfK=*so2FbH#gXD+)x<P{1TQbmYlFKu} zK%3{vK=MIkpsew;V1H#};V1QMh?g>!5hA2iE^DuvO{D+C2eIWq@fWjX%$hr3#tcfU z2%)m0L_mmm_$fzM56rL)Ccx~>u&sm{wh1%HhcbXUkM!;F3>1pT{O+`$6-J69_Tc}j z8f7NUPZhB>lxZKRc4aq2-*?WCY>TJ=lnLrR1xU04c7TLX1)P^otjnxldQ;cy^gUe$ zg^7ox$mVfJ^{+WMCxh}3+NiJZ!o`XG`*=hTI2cAnCpO`>?TFO+xOCPD{7s>gr_HSs zN84|`saq9ou}ZfHSOmVXtMjE)eCvoXsn;DtB~PhVvfttFfOXk_-SzhO&6B8!Aoi&i zHrX0Uha=yH3=g<E6I~DVBaDL8dFGu2tBVh_ZCj!@GtKL;ZFGtk_g@jLLpgyYd?;s= zOu8E+8wNrMb%q~)_q_1o9$tnIck^PKe>g^$DSX)A#rNZfn^WIvoEMX4M^Gnu9YCGn z#k~>K?dgZxc(KhtoK8QS;>C~U!@N(X_NUSYHuVVd$WY-vqp=}~>yvx-nK2$~J{h+# zM3ypR;h~5VV=fI!LYB9lH#uD9lRX)5mH1@m_>1O~9VY{ri%<4;l5IQ-aSYY3g4${C zlZ}B=@;({TmSV!eE<CSkg9TUUB8S~<I^6;R*`uP2X<pgX`o)GQYOA2RsI7FGeKIfh z_I|5-inZc7$N-#LaDFcF*G(tmb?9U$#KHk$Sn&_#&H(}FA?FY_B^AIo1^Lk*RXk*$ zvqKJYW5Fwvfzdb~{q5tq+yS)l94&L(Vmw#)>oy*|j`3h4WMMp4ay+^jV=u<D^=1_o zZN{T><>R@^0krW9&NiNR`Rg_wypHie{1nD>4aXzNiKLLZ&d+zvr*1PIwUm53?{)xf zJWrTyJlFc`HXgi=@${99XA8#@(;eqJp1Xh6(fs5WrzRah8xM9<Kp3{5xA*w#HXgiQ zq&Jj@rEa`|BN`B^Pi82a%nKQOONDAlk|WJaQ<58_t|ECRFLENQeLzT48z&DMgZZRw zb*N3~V2ivj)@b4-m!H&;yoq4TxskLpC$PvBz%F+rCxnUJrzH#%Vyw!CVyreVl}&hD zYI63t)Q1QQc7UjGT$yc~JubD9VyGFCm5fWtXCg?m#*P@@9Sc9Zv+<Uu`$q_Y<a2T$ z2=H#6-E?mq;FS*r8|h-vM+=j~ZS`Vi>7b`YBeV>T&F;tE;;oy{#!Sp$)fe=`$NY7p zZ@dor?kG4myB~Y2H*JvUeipUr3y@6t>jnv4H%JoNweZVroFtYj+dey~PUlF~J|Mp3 zQ6?2wq3VQxKgU*W_e+uttvSh5#eLb#<v5|STECrd>VEohnvbfcu`+HKec9L*d=W#i z#nC(X1#>hh0kHK&pP+bAD9y&wWyl1VJSzNz!zE?hB%vokfB^b6HWt$*8(rCCpwVc} zG%YDNa%kZA8?w|Y9}1(8>b8A9tpb@fesh?pd6z6ZeU_{~lGb-p|H_8?Z9>N!HPBsy z2-)+CXd}z@#JOLFe2mDvi|=a|*lwo7C9lhMcs-BO8Ggq+vCdH{b?iz}dM_K3I@!d= znr!>*7)^3eVG7CG^%@Eu`Ah}R)U8qQOoyMC?UsV)KL|mOh&~lO(*cBXG2B}4$cI7j z?C2?G6>2ioj@IRBt0UDBBo_5mDpt1%lc@<eg*_YFa>+KF$a*biP7W!#lj5Y3_!4Lx zDfz{%7Lw$5WcLtO+mZXvH}E4qmAyH7^FTi3YkGh(zm>V-%^*6hhro(COFEz<rUq_k zM94p>mUORBEGz-6{e#C@wF%Kk;bKtoFfDUk_^-9X=m*;s6cwyu2Z&*{kH~6)*PC;A zC1E6ZB{Bh;;)Oq@bhY4)JN1$A8Xie;Bg4K}9-wb=9f_gf=YoL?7+TkeFl^VXMrBgP zkR&y-E1N_Dgp&H9*F_AqaGo%W5@}(jIbv9+OzP(<P>bgT)L8|fa?{3s<~VI%AtSWT zD(sLEw&x}+#|ScEjvp=W+r$La3y|M?H&wBBo2r=S8uCw@c&3!!q`XFf-<Sfk7p!p8 zY{CT?MHMe)g4P^xOAevj=a+CmOUc5#<tRHql!4|{vheAHl^yFF5w>#KL1fR72=@WP zrv4WrEW)<W5ca+YPhp>$9bv+<fqIl-^R(p*T}oZT(2=DRxvPG*g!05%NIiu0jR@C1 zL)Q8fS=8>P;d_J)Tl3&_4nuN2OwjH!uw+n_?RLpn51fAJ88;r+Hezev*HlGr<AT89 zK4DQD?W?M<^EQ5<ZNQQ??Tn@tX_qAmT1x6&(@sA_Ff9mzX+Gsm3*~%!4lUd<l!&HM zSx+G<dv=0=7g?`Ti~)gEEvMv>4`Hlp#NJKT6Hp0Z1X<6n5(&82sdTYe2z+ibP}H`n z9fG18I79b&3qe8j8Qtihlv670gE`8<b9!f0#({Pt1@q9La1x9pySJXT9l2SPT|R-B zbyixKR7^6Kz4&UqJP17<VX(Q=)5j8%ie1^(e3=`cJC!heZrj;7VS8;zZEWO0p~=`p zM(oNANrF-fqOc}J#HR^84~D0M@o8ci4*4*KXc^i;1Y#L-+p}AS!)^l&&&e`8w=kfb zWypT!NR0c^puaOmeg6{%eT3nElR=*cDmQI=VbI^X1Tv(5pOsE+mN^f_74*&<D97YX zE9_gG&#gQB!-)d>g}Mq>6%IAwSQ4%_fWIY6`Nzr%s10}IQ78;|Oe_s|{0YNP!=4@N z*Lena>zrzvb)JhqY}dhlofoc%qOv|!QjK9}j$oO{RiE-|3_Gi;wRcpNWgFe(S47rO z|Cj&HRIvvU|L&<`6C(cIT}2s8{JX0<upsLiScw1i%h3gdBllUizKTrQ`L*i6!defj z%c4k8Ntbv~TW~@*Dx}CpY}69!t1UQV$$r^>FNL6Cy6y|XYV%pcj=9Y*Am7#Y)2f^O zCs$sHtA!_5UR7JT1#j@Y70szaI@wO_>CTn=Ji8IGVqwZZU~}9vuC_<9UPRFAknvXX zSi-S{8Rn6!!*T<;{2q!fxhvUoyvs|p;K}n97hT!gxV^IlS_&w|dq^pf89<&Dz0(@T zh&n6zF`nlg+8Cb~#+WWs1|xx?g9kgt3%tvVbd1kMmwGmg#W~`RB?LM$4Iv$j$$E}V zCtz8H`R53U6fq`2D?*MSPa((cT}u`W%&SY<9Fw~k@0h|z%POzJNvvGIc?{Y+jqNR~ zywXkv=B~|W<5t)x!s};Am*{MofyY6cI@(IOw<Dl}Xu<W)aLwt*^-Q=%9Gush24`e| zYt010HAw;24Mnq)!xfII3l&w*6jTlCR#OaPClg#wC6H2^24*IPNL*l81HG~lwXTCi zoo;N~6)0qLG54B`=!Zz)d)w)%w0Bnjh}e<SkDtM(*f58%F2CC$n8v$<Z_P$eM_R|A z)He~!);{|dp*clAV>s77>&7SXeHmwt)2{Y$8Wl1thzJ4F#Z23ZwiFcWHehjU#*V^G ze!@dAA-rPn@7>mTv7Y<W1tZAEugHq}OA-EHuTxmx%Hi<|7}rS>+hPQo7#hT#6FE|T zA;b~fp@)Jv0{>y+6))=h#4&Dh1ioDfMe~EEbYx2)h4~%R%yeWJC@G|;Ud1?0NQW`} z5Yl+NVZ6tOF|NZPXicJl;%7A{nCx_hDkG?Y>KP<@JxYNgT}XjiuLyjU_|Lk}qIRN0 zo`fi{vimF)dA!UZz-nL~<4lh1LlguNU@WeId;r>NCg0~MxIj^W`lT2w0LT9~x&o0( znXNdfQl*tCH4O5u+($!!91J-<gGzUKfz@_2TMMHhkYO|{!(gbRcv~xVJ7Er?4rfkO zyx&_iQNgmQT6Hs-wm@n7LSfzPU0$kF0=Q@$6_*AI;Qp(BYv4W!B_&`Ioet@I5-1Qw zP3OrKhFa^3WzwD~goy;R35*SzO!k=^)w0`#C=(EbU~gVj&gT&g3u?WrYH=GS^q_?4 z=hr{Si^JKmO8u|vHEuv))7miM-(8y@MQkrs#X|ewPJZx&04i#e;0uxa_#)L2J-JEz zOaUuT;ECjOlJz}#IX`WU7Ulfofww5-v&xH2&gX5}@h&wUCc4y?O)V%Groe|9r7$o> z1)PY%FTvmg`o2PJ4Df~;Yl1}_T~+Hn9ae2X=E5*fFm^@P?%-!QGa*^{g#nDOh(SQq zFU!Esz)M<y3%PZ>fN2_Z)BG1iGJ}7!sdqm%VStb)NCwb6Mc0UTIQp%E8S8!K8o*#@ zWGNYdvk`?~dhnLMRA>oBxC~AFH;>|(9EzuD^W(iHRO5OVT!uP_d?=dZNX25NW>tCW z5PaDo*q|lA4-NF#@|&*~zIl{<6L416&({jy9MZO*Zxp^k8bd3|AvS6RS#X#`_O}bo zX<@3MV$AR`E7Vc+Z-wuen=pS1ydbliAU=#d?S=@b1+au^U{iQhMKb*-NtFSs1+^Zb zUCHccgsK-Z4MtufH0FoKtM={>`7u%jQabM=^T>w_YkflJckwL=MA2zt(K1f?82<$s z2;pOzN(ep>329X)(lKziW55WWF45i){5^%17?71xN@A0&Qj4VMkEloiT?@S<|56kl z_+epPhRh-|<O4ANyfe;NGM||5&bkJwb$UJwlNjl%)0qzx|H$DoHqZk4!SN(*<iGiG z;Tx}>f6HNrs?7VpD5_E&Y5osUmRDEOXmLE*%?@Z>%!2!Ay?qI(NUi-?2jyuRRFRlU zsDC2Clo$Qsi~r~)fBe!>OiQRuQgUj}cXC0Mm*MsL4nH+#52%{5PFU%?B>X?2e4yav z|L>uzW%W!a=}n=ir21TVI40y~-^vcPxWiM5osE&LKtV|=APi(_x|^k(v<f8`2VTlP z=^(Ezutbn7<SDhNoToN4;_!^8xbd^dQ>#sQn-0N1a$;>`p&{<^gxRj%nAn6!`|A#a z?-pT2gg7>UDwfXTXAKcr7%S<0R7!Rsm<3kCa~tSN`Tz_VF*5xkF@}2UEHnB->Rq&9 zX#F;)gaIW8N0|V_AEzaDuH~1S=4QN_vv<z(A(|D4p3vC1rifxH)xS*#rNJWf%(7uV z((!8E?zzAkFWNmX5XjBDb-QP!B5D*KlZ8u|&IAJz7~vw$^ZVssljp%CqZHyYpx`oK zjYTk@Ygl7((dBqC!P+;8wdDn@^~@P-mlm*wp7s^iHn+suY2{IY*|5gid5jdH+%S#o zCAh?Pw<cQp2C-s+8nCy7L}+drWku^f#pKucP1dY2CCZ8h1f5VO^F(V7;Ke#oPFoLr zOkKIEz>R7LsyV0X(%Jc4j%;J+5j0n1=T+_4d7{t|_nJj^PSA*(tJUIOHGmWr_$|?9 zfN^4&G0Io|HG-_Og5=4~RL6J>HhQtAh#l~<p*IMRL>vm<j=)zZ3EoQOU(t(ngk4t{ zC-;375hmG#fTN}SyS~s6V>c0Dkbk@aw}PM&9l%Uz9bFI(=B=rkw?tMup>;=BiLWYL zom!l`)ZX_ozQ;i`tAYWO&L;}vP$~Qr;29fvj6b9rH_uB+h3%I}?6PY|m6YhdHVh&s zUJP}@AgmDcB$?>FWsrYyTo{9JH%@WB+cL=e3k~VPCZ_LNF-V<5I2t%B)nu&wew4{% zh7|^zk^5C57jAzb8Do>?z-%X)Y`X(*nhZUGJokwv`-nAO)MQ5p<a5$wtRM4){yJ;U z!~ZYWWb`nX8rGyvJ{<2<0DqZi8z`V{?yBq)1+?iJ*FHhpZ7tDOo4YDI86$pNf1SZm zxbi77zCdI=mdKcsh?VLiy31qEGIrY0W<1AuK#}L#%Gl2p8hW&h!)?q5A!F_2-o2Eu zw>xMiV>Pf4#JG9&1=)N@;X4T~n4PX(B4(=a-HyU{T1LBFe_ttlhXbi0--C{91?QcG z?<Bd#ywTQhe!cLWWXiPdZ)f2<*`Cn0zi$=3)1u4m#`m4Vcan`odKwG<Q!CuuRrprD zc6_@h#NJwcJ5%`9z4xmR_`P`V@Ue%QeC%TSf*lJH&a{J%4Vsz7WuD2o%v6mnU1lCl zCxLPiNP;x68t6}{!`9McrhGeE=ofP|M~4}DR_T7O4s#rw39}>7PEnY3;4tSKQXTBV zjEj_Wb(qCdMi_oCtUI3Ew=`OJOXaHB{x}@>7%Imc!8-5A`QiFBRBvLjYX}YBH~T(x zSrI<Rl<ci(cR?eMP#%X|oSC+!-FTrPJxHsaX~!Yp2#Rvkj_x*M+DM=4l@s)MPF0?~ zQ$w0|qQtY!o=b4v6i3L#C@yu_&9Y-h`^d7}Y>gK!yTx-iQRr<yvR_J&9^A^ZWA4Ty z3~6-7A6|mA)VQJhDADvLq%|9Q#6=Ei?<ydT9ql8eUELCCx*Ks$=J2C2zytd03-OPp zp-NhZDmMt&y>bt)^U<5>(wU0hQuwYj75$#Vcb%!|_Z7bDTt#m!eA~H-zNzr7tLRT2 z3>Dq?KNetz>OQ4hbsv22!H+ydgX51)!{e577!IR7o|ze@$aj^*zJHKY<cw+5cX{l4 zoY@5$;oXd!LP)osdN+s@&GzsKq8&Y1udF&TGOLLiuu)e_Y!X#Xs<mz=7c-CRDUkjm z0mpGP^Kp#8u{`mUaaV%m4P9sD!6^(nNPJkAom8VB3_s6SuBI4fk5MQ@9~e)T@H`!C zL?=>p)Q6S((bLg}^n$*1O-GxXmsM*Ekl(Pt*0q>HjYtKw6e4e2DW|q-@Ly!5$nw?# zCMM>!PP(dv7ZI)T=*&5dh-5P;SZ}1Lw#I@fX(1>KGS||%g_aoGh#@FW5HDA2l3l|V zamQ?(9P8%uHLD1#YKYv;3u<Pbgs6y93sEg#h?%ArtTx~W*?nh7p`j{n(Haw)5UlU9 zwkK@ey@7mEIk|*36SSY~z1AI?yUK)@QWw!J_8s~nSx}W8VOoI#5#~-xA@qHpAYfqW zL_$wO4;VS-v^S1|1hhorutpn91d!quh`^D6?1MA|0=Fje%HuM}x@lYlD&)oHOo#-5 z82TVP(2hdjk8S5y1unP7iyC)nxyDT=xv(rim5T&k?ugR!!`e<jm?R58mQE7JI^HGd z8tV!qf_u2&2-9KXuz3mvAq_L8Qh4!E8NtAq#k@0Hj|9fh1yXE;n|aK;#w5UnD>dJx zS_3D`A`*Q}O=gk#55Z$Tmz)gHOjwk*8IOJjQ;$;~y}B^Ru=D26ZGPwH=l0z#=a%7- zG}9$yDoTwDMJXu^SXbIf#F@myX*P-NSd=2;O;UujloKM?`%q0BvDihiq4wfvOQEGh z`X!YW<{qH$oB(9rAAyf71xBL{eL2A2>)n|d1Iy9S#DCfo=PIs~wIEJ%o9Z#{Nzs@I zh;CINI-%V*glF%xBR;%V5HdIV;7rKSc;t(7BSQHkPl(&B@uHAfgii8=$n<=P{d7Qx z@r<w{{j?>-5BQLc5cdZ(#fI7w;?0GY_Uo6$C+-0(Bg8uAn7JiQ1cz4}8VYjd{ULAK zh)!+UT*#>K-G>X`sV%F<K@6uAzWZq5JGEom_4l#DcW%S}x*s;|{Elo`*qej2H{)No z{q@)%Hp0jWUfcr%{F!CBsCeMZuAE_c0N$>TyJ0y6n@V$oA*PiCwPZ^b(i=xsoicWM zRy}J8eC>@eXS%a)QT6<yril^yIV@0U3uy_gouNRJSSk!|pcqSboLwJ=Yjt{Ho37M( z$B`>MTO_9m);A*L#)upzUnC<IYUG?%_IlviZpxc^8ZW>pU%bLz5AH01CD|k9GcEy9 z1BA$@aCLdP23NGL^=dV(&)ob^<fQy$xV9|~F$0)e8UoGHBne^CA^Z+TtK>M#6o|yt zJZ_G8I<Gs<^U+?cDYmRN(-Jx3{<`53uN!hOC`|)rHYv<jLWZUA2Q^SY5`~4>U$94P zNE|O7Hv*nIAM+(X2ph9%ofZVK*<ZIY(^6F-UN&YD<Aa%83@R+E*pNq?haBRRosalR zAA*gTa@1!__{}otR!ZJU2_H>(BZdc&w}DtxxkouTCwdMv%<+O-;B4vE9H?vg-T6qb zaUgA^eN7{UcWbgK@P3`C2;8S#&GwT`wG5exhz0}EsR#h=#6_kP3$a%gw<-HTE9K1L z1LM%L9<-v+nfpWdS345^)sgo9K|$cGY5wWXNT>zX2z@x$41fLm?T6KchvC?1{2lo4 zgARHG!W0sxkSspn(^SS(NigF6oX+6lYkkUf#&lj-uWiInjK~J`B*@)hHDrNn${r&M z5_xvNZ-+eJEtz|XOT)a?_!;dWN##beJoe}CiGH>#|JhjHWgIKO#Yi=zQ_u{SNJcj_ zc!$wtWM|<fKgnBjo2>DoHODBns#1_E63OUR9Dq^SYH%YD=D7thH7&fsq!k)N6kE_l z!dKWV+NFUYWXE<(9v<BoNdgz|9FMyd`*6c?->}aGe)DUB*R5#OyvZ<BiCowx+!Ly) z-e4dq1#r9^ke19tb56uQLhWTOQA-~wk6OmGWD%IC%9#<D7f^eMAgcvx;TBgD*J%`q zeozYu7P*Ed?oJa8OHOvcAW#lmMZD8Ak0&of%jBteRa2thK0@HNEfJ`ZeUF8cHtF7r zr&WT$>k9}}ho}VtarB8~-q6g1)@Pz5M$FoOrd=UN%7ifA4(mmI%H(=nR}#S6>Yy~m z&vR<K@ZC*??=*fM^jE9?-e34meGY({Uv4h+d2`|07(?F`Y@b&BeyH$mjG^yt_w9!Z z-@5<t<9Sd)3+JSQpk@xORJ!=bLLz#4W^!~UW>@t{q4wSGoDMk%uh#ceV)464kxdiW zlUR-30@JJG9*sc~4$WqrUbx`kM7SbwL}JuwIGaL^(>G%?BV>~V6*3s^bX3HCUref+ zXbQW6zp&9;7H{cu1ELaYT)3sSAaL^nh+q{srVGR+zy<@v${>=(%OTt>IVqk6HY&uL zq6@SAH`W$zSh6siKPLay7G?)-#C2`Kx`742fR0f1UoienW@PM;E)q78AVSW5=1UBY zsl%k(1&qEUOfCTt+bKnM_U$PP?2AM21-6DHK`SWo|HIw8h1qpgXQI1yT_s^$+zZ>l zuCk3wT+3iUBm`=&5Kt!}T>-kI?w3;!`M#s`rtduI!6XYwmdZCQj19suq%a1lX#^ro zh#(;pgakoI5D5?^fuN)z@d>13E=f!`3FrU+G3K0W&9!#bu2Kp3A}7?|Yp;15b6oy0 z=9qKh001re@9>RMTuU{!25egZ-O!o6_=BAgi;XCNZ4|NOOxr4vJoJ0ZIOQHjAckv( z5yEa!kFKNZGHa=#H#aKcfo<4LZdT6^LDA88IC93~NNtnMGK;pxuov4#I8f~isqXQ} z(|S*&wq3=T=mkhik<H88*C>-j?oW1XTI7iRAa*kyik%4^uj)>RU4R&l-DaBZ{&zF6 zV+gQ+q6*zemNkkUCK;l&1fhb*>z>~}F!jq;5MINxxv^s87?zoMU>l{EkQ$spiOP)Z z;W9Ss@J~TRy-Mif{($Sd=p%~*D%<*JOz)o!I*!60VEjBj2R-jT<XU)7eg;8d#z?oM zZoS34WDaBZ=w5g6bx}DV?Bmrsou2kMF!b%V@I1hPQHu(NArE7=Gp<oi`R*hz-;_?r zfYEEJ4q_!&9a9<IZcQC@x=|<frZSp^_yFk@VhE&FU`o&_p0Z0i1-nK%1^SUjM!zIz zx2NWvK4!HSogqll;VD20j!J_)4kV-o!*%M?T)g8IstfB^W7J%e(39M#qdlIaPE~VR z2`)TE8@*UpV3REh3|bC!gLVS&qUHk3$`sFfn(K{;4z9WAB4-s~{zD8yd@C52G2Gpa zil_n;85eC`aBXB`eqym@Q(pUBd2!1dM7hOYY0Mp36N*^A?s;$ORZXV_)@Up9mPVPR z(>}RtOFE5ut^Oah+$^-5PACh(OnR+X(qW~)s%3SI+ST3p7FYF=OyAM<>R0xRt@x=p z$9+xqqSGF}lfoxuIEV+btOa$fH-YpAVfC?q8w6LMN#E*@BSLi(kButVevL^0m$@m% z6Jfz&>tX6=z~<b3J5_YKNqj<%B3HiYry+!Tv)-Qr29O*vcuIF{3gSbT+_Rd-khVOZ z4j55oKnE(q1*#bdhe<_{5vUY7a-~8gr~qa-s;SXTO|6uX%C4s1g=I&LR0$J3Xx8qk zuW`)CZC+{9d!~byyLgYnIG)IH3{UiZwsmy>?2bN3N{h7V!jM2LKXM`_ouJH=pf@*$ z9s6+uuQt2IGzb7UOq{<@)Mk(tBtK}{X+KJH4wcVAt&GG-&!dV9qxl>hZ_EK4xl5gc zy9dreo-svWN;t`#(1Gtj&VxR^6%DO*Q5sP#T{V?x2$D*PLc}r^dT$!1>td!~HLD5H zRM*9rfvlo8H!8Yfm)18q0%(XfH9FvNJc5dv(u{60qW7hCY70}rXt$NQzfs1V!)h=# zZ|CieGKNfdY22py^D?WAGD(YHn1B`^8_F4ko_;*^wBYC{yg<Rx+QL)A`}=;TmbL2i zka>U5=DSCGc3T0N2@s&C2p95`@Bxo7B$M?6er!H7W_6}Nbus{D1g|3_5GgWZg$nrU z%L{3ij+U`UpI^APGdpsH);L!`J6kWfq_3&mu~g1)YOq870lCnP#wyfGdfhdpFSJa< z@^g&R|JX;WLGY{#I~Rb<poVv#4FFyuv?KQfJ55#(&<^k~UeZPQ*Sy;5_S6->+R7FW z00f<YQq%kl?61H*KMUwC3oB0NQXNmV^f+L22$n;YRA!6yOV_muVsT7(ep8$*z-|87 z>q{1B&4#6TQE!yTub=>i4J9g{x)?i(^R{G?xtiU${)ZWFI<uAS?{n(9N0W8O)}`|P zAWCJAeA%jx6ur5T>j0_xQ~J>Fh=bz+Qg2Gs{o1JbDM{7`xtn0PW!^d-TK^lQ@P#gg zb`&BOfGdunqWq8da}b}*&HC3^J|gxKK;t=tLb#(LtL0}wwNAe?{Y^VH7+GG3i<rxp z%WByjD60s)o|f`wpjqi%j3$yZASSrX0}&ei%#_+|Dc+ncSVYgw>frP_U3yoPU%aj& zl<XT{az&5Obta;>mT>?NjA<(7;EK$4mH5aVT^@s6sl*^3X;uH&0}8-m9fm5ZL>})- zZMa-x9YOLOG|?XFAq^$#-WyZVcUt!>$6cQE9vv4VO5nRu0_}s4u(uR9C0#}7HZ5PJ zh<#4_>Ymivn$4!I4IB&-8m@Dq2vY2hquYZi?rvqO|K3#px9$3BZVZc+dQ1VU>OPqM zplPk>?13};=G2(atfkoRb=1w}58^8VMrj@!5`DndsW_49^Qo}4fJLhhE2$a_S4YSM zW6sY^z_h($pf=coWJ4Q?Tk<ovel4}*+=3_!kHPHBO+XUh|7td-^mhs>cT$4E6-+HH zQ1t<w6LuU>Ilco7^xIcf<RVxCQZH}>g90Hy0IT4ZBhB91Q^)*TK?X#E9k3G(7x$f> z8`XJDH=;i=8oR`Czohe`2De}$U1_?E223ZWkh;$#Vztr>)18Jk2iVkiq}QFAc-^!$ ztaZ2v3?Cczid$j?SV^D~EF!Wy<1g3El-3@sR=D|7?01RaM`+2GCT{G!2xf>_n9D#8 zNWc*YBq^Te3qMP+R|tk6x%y?t4kNTC<V@U<30h9N0RK3RX7tn4olI0128f(WuUCNx z<(U-Y-v+t3P!&N)lU%hs4nd<%l}4^87;sg{46>wATl@nd_pSnD4CIPj6-EXX7Bdbx zlX`!<9a3fZIPf`9QA@GkNX6b@#RQQP5q~qi(6HKH<}Cmt1Mo0x@2*ZjzyQD)h8fg` zF+GwQQxc#*uT_uSmM#o5r3<ckc)YVlZbz%bl7W06LNCDHJ?qo)Xc@cXsFyu28mPCI z(f?Q~cf=%=f%E?S`k3gpRH{MUFOj<K*$<%Y4$)SqW-w(}GRl&dwoF;B*!U^`JSiTO z1z$!z>iiX`D+AT!(p$>drE}&}kV;is7}kLdVV~=OZ37D<-V$K%Ms!_C?KJ561>OkI zPS@^Y`VTaIY~bIJCxR7)!Nk5JBR0Jy9G=_C#}^0tZ_Cce1n7(aLuhNh!k)m$re9+k zl6m(@aF3R;L(a&oOa@1jXLAP|Ri!>@jRmdZ;+r4S;O|(S-<oT_5$3&8-CnmcbS4`v z2SpRhX45sTXkI8in`k)fQB&kH-ZH;4n#_f)!?&gJyY?sd2li^Xp|_{kUHjv8UKr@w zAAcL#pDt+hq3DN`5^gK!>$Y+)duO(C-fbn+elV5#mCUlfws>ReV}q+NY;+fiR>&S_ z9F6=Z<i<KzGjKmZGat`bnjF+$XyxcV12yv=XJ{_cN`7{a?jfbz#Q{bla(Cw7CM~)j z`2SJm|H%A-E9b$l(SAjycfv&<^Nuoh*_oc@o2-O6fGtkKa%U>{deh$2`iWV5X3c%E zSj4pZNENMgy0}0UWjN$?0U-~{tG}@R%-)^aZ_Mns*0lq?{SE&%Fa-Bx6G^J{_q0wV z&T}?SZibc?eI~gq?3Q5Bq+dEI=xH|vHa8LBR>akjkI3tv(^MQSV`o>MC*Rae#C%jV zG4KLWbCQRqMRJ4r{XOfG{MOV?gXG^{m*hj4-V@tO@rvyY6mQzz!33w|>=Vnk)BKh) zc6TV6S2+80@leGqZ$R^v)J}uuCr1W=Nf_cWt$6Lq(csiTPMva2?SfMUXvKz+?-&XM zoR<m^m*lak!{z;9{u&+qG&|acAGV>R#l=tPmd`0@K>z5mMzDYE{zAk-evjn(Ls=a- zl>c#=Y2K@JIvc=7^nY+*r$5Lj{H1Jb#yrhSYw~^+nn7d%Gg}14$ufYE0BozNSWbna z9AF$zg&ukgkWrofbgNFC8OW$J&Zs>7AM2E|afpi{b7voY=4<g-YmvB_37Qscq2KsF zd;DbjJ#d@x6{wBR<Ub?yk+!+^m_dMDD0VpaE>!4wpRBMmH;$br9i0A6xcLM{{%Cq- z{9p+J-nImKN8<hI7R_oYUUtwpZ0Cd@=gX6284$rv5-qOI;yY7C#&s(y!aB&z(#I(* z4t@+tHOzIGD*ms-O1k>N$l>D2`>rnV_thi^0T-eZ5g;(!hqW$jy;bE;)mJVwB5tW$ zSK*%&J?`P=8YJ^8y2VSC`p!jOpzC4=g7)Ae&ji?DT|4Vl6B$MCgI3KgON1M%Wn_Zd zLRJVUwUv3GQ6^?N27t?AWPuE%JeW$li=X-GC({cJt@Y>YnzRYX19J)nbNhQUZWn^s zDij<8tqnM1m=?*%AYB`5AWh7QCA4t3j2-*?Dq4W%aknId>dc`WXt_23Xt$(x8l-(- z3<_zuWx?(u|APX0qA4I>8Dyp!w;o){T&4l)=1evLOiJFex?#Ez#4uMkR04|r?H=t( zpEPv~7L_t3r0ZNMh0N1{C@K>Qg5>+6DYKG1N+j~*ruIP`nVUf8cC6S%>Eu_2(Z-7Z z_vX2AihJ>>@ETo)vEr9+*3(gGMP}E*k&J49`vfL;6;FmNpFi}ht!OVJgd?N@;&*o$ zr=VT@?oBT=c;uTDzi=mT<bv@I{*Ay595m@4%qE?Rc`LZRzBF^FjP<&&%X%S+kQpe% zo~RMfq*G(riQ|Et{r;74SCmxn0R@v_9`QDsxhfoP6iV5%p2;R)4P_Q_`_siERokPC zn*i}wlzwBXu?24GV$OF|o#9Ar+!4%w>(Tq{WukYiw?S{Z!S&fWQVxE53Y4M~YO@s9 zGkl7|jQJE*9ImK2Yg2U88`|O&ReUXX0>Ts_J0W<%ZC;qBNU`J13&iiVP0(h|(B6#V zhss!OZGQGfN`u7%Ii1+SopNGJJZjWE;*}1fZn98*>t>V*2|&fG^4%|ix)Kdv>u9lB zqVAnr6@azvpzodrePgvX`Z5fJJKnRmkCZKMC#J_#u-r^tSqBi|(;-o)O~+BMb&J!{ zjPiu(kQi(*9shG(@bxI@B>meUi1W#8ZUn(*S{;twK!>B}4hK^TJciQ)Ios4wY|keR zu--$QFc4HJ^YuAc@UK1xLbKcfh%imE3oE5n+nfijm&~-d7M0Ssdue1|G)(N;dN2%- z>k1>YoW6C}qt0b?)_T;r_CP-PVo<bf$tg{j%U7h9NNE{ZaF5(PK9N^PKVuP8jZXeL zdZt2<qh;*vdv_>W#=s>+BonG*>Af_YL6q2|xC)@4+I+<nyP`tsFDnj$#_k3C!wC<G z^>HD#CVjVh^X;=9;;hyWZ(IFXsPsb`F-V<EOlZHV5zlQ9L%$;tqQOC@s$v>p!-gR3 zvl+h#q-|a<>nPw*8LO@7ObTnnXcE90p^td6CZP>>VcMc!glXgFK<Mb{?uk>|ZxKh? zm#?%^Y6yUJ{_@Z&R@<Oen_?UMb_>3$kr%gIYXF-iFL*kV7d#yT34_RcIYW#TV(yml zSduo*7!RP6QTwD$4i#ejLYUTuOnr=6IpDm}MU$%L|3W|8+LS_a<`#1U7nIomfA~UZ z(!+0BZrv;rtgcPL1C@r`tIQ%s+~JZ29}|Dav>wHnkRcE$@<DOs_<Y)(okB-==U4~# z|At{W=W<n57KK@xi0pY>g!SorvZS}CvY)XvEA~wdM-hiMjv_8`pSIXwey92(yg1=c z_~<zD4r%f*UU1CmSpy|hV$tCv@~hOER=k2%Zn^}6fl(C{+?|HfV4!=dP`1uMV495s zS6>bUc0LhmT5GrFNH-W{&G))BkD)6pSqD{WAE`Sqb(L8Q_6d|H(*zH~edgdnz`pWV zbFkC&9xh|g|E(I?a`PyY4JnP&3$4x1$$1Dp8E7hTjK#VMySRQS(5^8n?`bsv8=A_C zp+cXGEt$%N4BH$kW3@H)&n%T_Dh-WRneK=e+pI2MqjwvK3y#@Po7Y0Grux9SLm11i zZ3ne_4Qj<|Yt$mJXmiF|-mW=g0wiSm%urgn%@TK$hH{HxwTIdWyM^WO9J0lFYm{BA z@?i+lOjV^`N}EbxziSUy5eFJ{#SvfX`yjd|?SK$&gmzIe{D{J8-@Hupj`cR^-3I#x zzuf}+g5ia3_c>Wdi)XBF4Q+9Xnl?1(8Yyx&sDmP(N)}n~QblMU<}YXi=_Ebd0r2YK zY|4mBJate2h`t(+5*QUS8U;?Uywx680bqoHk>V>1;M?t<%p9RFJce{%Y$omU-dZdT z;?JBVdr#tMUvR7N317BVA`H5x9|&6cqS@N&ezB^pHG(BmdbEtA`K^?jDUTO;=Ol0r z^905SHYqg*Y^df7TrB!ar|k^jmP}4NrRseXLoEM*?97IBvIE!#!uNa4-6h}6XwN+8 z{%Sgq;MB;{X@t$VBFZq1B_N~g@st2pE@uovCPLuQfl&1iu2i(ZlK4z(Fd>Ve&r`AL zSdtcRFCRIi#PstKf*4irosSj~#3<kRG)YZr8V3u6raga<{33Kq?S$(5#E?$^95=NT z#~(i5J$X|X{%LW7AEm>J)$kGF2;cuX`qHj&a%Euvr{{2$AjBjPq!Gjlk}S+h4t2?v z$l*I<8~FyVz_A+b2{;IGY=+E@*Ia>X2-(1orGfkIOpDN*7zz1*K5z^h$y^-PS#~~D zyoN8)EjyRKfFau8TRl07HO0cLDOSsxf*aaaQ?YtpnJAc=@KHi%z1v!yCNIA*GV-hB zJt859#YksFi~t_&joj3o^4SEmr8G|a6an4x>x>guBWKc1XV)Y24?;SQp)31e)V;BH z@cqD)4oEpS*vY1#DyIVN_B;Ir?XqI`4yb#Htq+y4hJQ(_#l344FUsEydr&IKk%Kvy zamwLT*Vk;L5H(S(i%_#D*Ft4tYGV?<)Y!gxq*0qK^2zVFw7E)c5&^5N_~Xw!!>JBE zQas8(%lvUf{vCRt2uimXKPSrElG?xfYU!GM;jhlB65qh|5?`ymbzh-^P=7XsnI9jp z{h-PT_0Ql7tiIQjaX3H$<Q`xS%Rge*(uO~s5pyx{34mJzWycbZP3&Ol{m^5JW*GT# zY7XmpJl22<^4!Q2QdxMKhfY94)l_|RA*Th)<GrIr@7U}_QQ}~KmSv~{IW`6Nc5&A) zlL)NXG|xj~;FbwNI3wD2*QCjX<?X(%GQas|=#?^#;*HaqL)I-D0L?ttEq;K1R~|0@ z^#`M}*i7-&9(HSfJ`Gf`0RFN4z=MdwNSPm?Z9y?_mewn97P&4k1vxGRMaXe$-*}?> zo_Ox|)L-Ag%czjVFd7-NbvZO<zu3@xuK$@91Pe<V+96Nq88(`Qakv@GcFgW$zbxAu zHbpz5vJJdw4HeB`=Pn=yI@9%yz4p9UoQc}EX9*RU!cp$&g*iMMe#0Z9PTpzeao7P> z)?4;{Nk<<@`Z>_7$BIp~_IQasLp!Jf1F^M83ucXA`)Rug!t9XV92Qq~j98KFd*d(d zDqYP;u5}QO8(CXI58j3!>p!RsqT%)X5g8{jRALqE$_ygysat6`@*AjFhTV+}b#fK7 ziD5e&_BJs&siUWW%9zuG;hRc9Ed5n=f3Yl&gf6)Cp>$PGo@$&Lbtn~awPM1)$`hVN z;9~6&gI-N|Vsey7a3odc8(-}#BgIU3WEJb28};L?AW2iQ!K;wLnck!^ZEr$p@FaB! za8wbJC49ro^KF2d)G9Vgg;9Svox`l&5{whnQW*-=!ue8Ck=KO&_(^6yUilgLd{fuY zG{ebUuSErx%O}n&{otu3oK-{hMAXS%9>gCA#{v8SJHFgH>qfLmIt-)|y{l^>r*|6R z@iao$LI!nR^9bq!SD1uAq5yUH8H2g0`*M0kbcyUF7T(M|W?J+h<q&C=NUti!v9}+S zfsS`LDHz8T|6*8;Ju19U!<;B2C35F7r)od`z<FB6pD7*aJ%t|3pe@m4Uw!L}&7kQ9 zC^l)c{nn@BPTXbdE%q!<=>iYKEt({(H_u|Dn0YJQc`P@}kKqAXBgxMYkm5lA=>owO zx*HBQU#$H^r>$1%il(hnL#*%GXvY|IfGy(FzvEdSQR-ini~LGpeiwQ9)qch!6b1ZG z^X#Z<k@qwx99_Z%j1HhwJxM8l3H+tc!Ak~rEXGGXR6~=z2drROy$RoTGjNODdZD)t zZks-vq0$I(GgNA;#Yr@drWzgMG8`{?iw2tBSvxZ2DE2heN$jK7NC;oA@u7N+v>a|5 z*2lUSn_3g#Sr_bLzhR)1gWdHvtqcUat!HaiwCC-qp+-#pJhS<OCsbW20eg<gK3&QV z3a}HnQ~1F?ij`vIa*Dj?z8ipAw7ori1_#OnM6a!C4-S`i1kyD|^iD1wh7ola(|;Hd zqF5abYQ3!G<Du#n_b!(<utl4+Nlu`ylbE!)fk(>N(j~irx1_qZ!3{jxsO^XA1|Cc8 z59J2R^E0GkXL|(hX**s<Zr~5rVG_jLhGCO?+Sp`EO1ZA?50$ZIhiex5*>+8hO><!g zZTz=6C4DSa*2aLF)6Xl7%4+;~`BgLa`32Gp#ekbq&0@eWQt#R^2vx1C=+?OT1u#j7 zWhL`0ZRy@~FSyZip)2dl(zjL+8aMu`O&_j;!>`lvSBF<r!Dv#rF1$4Jiyq3Zp3h{q z&F>daKLGfAuzgs`m{`3G(F$@59@8jbU!~VVkkd3K>NS6@_nN;UZ^Fm8xn4h<dL7IK zdc5Jn^lIP{Hx!kHX?A435#EUfYD-V^=(*f57Fuxd0Qa+4`?pVZ{Hp?Kz<K-%!X<EY zq_j%g7mfzzV*O-$JQd9ppF6SJ8wEcUa1ZKcxU*}E)H=0UYQ+K#YH5|IL9IK^4M8od zbo;3FmHVpH3bC*VTDDBBGn=JWEYP4<OlPR_*6L8yvP!p)TL1d_Dz(A^x|dF^vzw(> zEYP4<kBTYht<^h+;Vr9l`>6G{f38vsPWLuR;@W1Z6$><|wYQC0<xsq3m2MxkzJ4sM zKu~XOAGOYHmRhkugIY^%)Vg^4FuY}zZjxHR!5G9wn+##;kmYV}ksUcYI1usKj22pC zjw@f-($z3|v4j(YCH!zvE*;O=S%nNZF?i=&1@sqQqmIPiu?yJ(Sc%XUJu5mD&y1Tw z!6_89liqNOrQFRiEk{qVAP)wiTg`RdMf`z1)AF;>ZLk;Ni(=K`3&4cMI=F5*gQDh< zR^xoh4BuA9fqvbV;mntZL5(pARh$l&YmItX?VwN|vbep`0OMu##7%+h)IfE4?(RPd z!a-n>EzhB26^kGIC^+HaKCifU`Hs{J$Hl}vaT5|WXN*iDWaK;YLWPJ-MYq1qF|)YY zx3`AH&S#t{EY|ZS*)}W|3pAuu(3D&{?^NMZKp2DrF*BuU{*RQgzRy{J+7>Pm17J-v zrn`I1l@B=sTO9KjHaq56pfP5JXf{3OSl<@L{E2EZXx#-O28UL9G<A~gyitG@oHk&g z^+HAn<}_FHjx0rmJ_B_H<^ynB`-jc5=GHJxI>b);181m?#2M%8hhUWRQ*o?}O}_C7 zTH~|;A}kN8vgWv+kd6^i3z8M80k6FML^3}&f!#E=8JI=1MI`>^j9eS~EwMm@Zx-4t z+S*VS%_`lbMO(*jdD|^P#ci+s|Jr7$6$><|wXcm@t3y%CD%~Wt-qV)m0?9&(i|qYi ziFzm-G>r{%tg0z4F`WlGj-TbBFEs!_tjVci%RJn|<|4<BgVNxu3N}{c29{h4m!BlH zoS9_#DmgR7Cr$*mpyk`)DqU(kOH8Sz3FHfqx0JE@p#nn677I2*hS*g|+g3B#fGx`M zH?xV_P?lqX26xW4ap%R`hC!!R=?{%NAI=87b?%HcT`G6RiZ;icXWvuh&YfH4&e;5A z;?8%_T8AB379$%bLiXKkqQsqcN-Kr8xhW$SsBz~)(iZ$UjJAjsxqUV`X7-tUPR${R z3Ybe(goSizk%;muI>ZgKhr(K{u>|<Ng8>alHRURIy@jVoGHPkp(Rvs*7I12@0AMQy zgau&{m<Of!YCgRvrG1$O=3Dbx*bQnb0iC!&mwO>c%h=>u%Uon-3I`((Ls=bun|9Y0 z-CGc^!Thpq0cI%E^!<!V68`9eY7+Y)`?Ad=jpb`1e?VLyqVc1rt-`cL94Lk`E$$Ai z@loaV3beEQT<0cxU#7}FTG~XD@Kt*k``M;Z)^YXzdF8pTMriO}ypBo<4lO;s9N{7p zGthY`mGVeJwIRh?Ef3DbymzAn33mf<C5k%&;rvmhN)2=d%0DJuQ`V(o6cM^0C#L~X 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%0DeEdVaoJ&9#Yura8t;mu{L?sQEC20 zLEuoSYi>^hXBCwJ=&dlP!RqioJ4q25)ew)M!*=3%IGmnma-ozo4i4f!2tI)+O4p{Y z%&=KqiuTG=QI&htT8d}XeQl{3TKjqJbXdu833=5RIE^4^nW2051y0M3KX+Z8xrLxU z`D%~~R60I!$Dz4JVm?ceLR^-;B-pvFh@WXL66)cxd+Ff;A~6rs(1GA87O**!79SEc z**bQ`)`5Xkw<hzKh^FOXA5Gl-{4@|hdO5|fFMA{?YGg0P-s&sDf1t_3+Gw)vv^*Un zq+JM$Z3Ds~hk_E#(rZpu>=)QkAl%22a3{ll0g}t6fO#SW*H!}@?9k=!)*_P5Y{gEu zo8Ui8Y@f5zCi!<bkBnv*^#EkS#$$Dv<%UA`{@O4vc1Tu8Ho{c?4QuG*u1OGk8g55* z;!rG{Axd2)!ZAsZr)@E0_Z``x)a#aTZDqeQJCt56ZX_I(WKN4EtF1#aD3%=r_CU7j zMt52cYCi$OnM2tSg(_vcG77UpB|vHS9tZ&ndqBr0A#PaD9;-)`iHq^*bP7sB)t?>3 zE*RP$2L#G3WS%sMawC^7aJ@~}U=WE;+f*Wgtw)J$-;-v<RWTIK2HF~NLJ*e1cPZa> z4t>-;>e(Y2^%vq%1CL_puSF0*3L9~3Q716)czZ27wFt^3B~UD%E`dTosB|1a1mplY z+5n->;yODqu>>_%vJD5k8#q1Y-KW0W-AeTAK!s0}RM*i;)SDwKpeh+O;l%P1(ymC5 zettjsNKNf_eboXZ7~)@&8{>=w^3!Z+9Z!!SX1Ikz%)Y_h#6y~44>IsnC)06*r-4f= z@SOyU2A}=ptD*WaaFiY7vp$i7z8CwwDviY1uc^bGb(E=;7mO_K`~~;?MYO37LSPR& z@gx`!lO2+exlXyrr4>=l<ApR9&p0=i4Ane7(emHq7h3*X`~p_?=4`89ps0EjSj1$& zDlr+bidl=5fq+Mz?;*|sJjRSx;IUza_N42TGOMmmc-(3fVY+>1JZ|r^fr!HqsS!>h zH3F)QlmXJ*#&9sggl=%<Drslbmg5C^F|I}E&nU`2`@@jpM_LLgelww^4<sBoE!o-0 zopG?YXbDh9>e)Nrm=S8faAzL1p}_o1Q2U`0YWEQb{Jli&K-Qm^9C@N0%uWlBNV8x4 zL0<iQcv`oS4fW!GA1NW$Jel`4Vk0ve!LZs!oLi!s&&#v>@mUP_qov`RJM_LBZsfh> z$w4#c?0)_I`DL^JEQY(OG~8Ym_}<|baL6TQJu|84r-@fH_!t_p?3mqODV@*#iG+cY zU-oxnuu6ueZI!^fSkTvJIesC%??K=~Zb86gdd|QKSO_syrq%jx!Gd5Uxw*aO*|IRk zAf=mq)XK*sahaQwu9x)htYu@=Fd6=_U^1lEj<7tqRIsx~ElE3gw#%L+7}g~i?lOae zApigDy$hUORe3gk&Y79aB*P^XgdkqdOi;o_NW2C`&Do%&)mp5r(C_zsm0qQ-ZRt(v z*C2-k!f+24AzYLZ&;%ivDr!_L!$paTIw)dP)KO7VwUT;`it;_r^S*1XefHjGZW$2& z|DO3l&faJ5wchpK*Sp^Ju5cETBHw7A=@$x=C7+TH<;@6;B27x1k3?&&31u+QnvR-} zK|tZQFTiBtzM7)MoO3hk*2tRinjyAE_M`Lw;%PRJ?2Vl5%Z=Su&lUu=SJV%|#iGFc z==1q_^0HY7%t%6)oA9aBAxTJFiF9e!mD@cAXDrYBB}s^wl&ce_@AWE&h6K+3C65;m zR%C<ua0L+v*7=u!GcreUCVEa9>Am@dA)k1rKyXlvqI_`LG!qS>JGr70?#{^-rC&;< zfGDjcnuyw_LN0(R>SC-vmw0nMF<yzc5LdMw+zt}pn}m4LAdz@cMU!|@M|X4nA>mcT zlj9uSvPrs*#(U2Ah76Hc8^$1&s>3E$XWtW+-RKN|Cd>t)5F&6>c@`HY26ItjhTUXK zGmj%mEYP{*=`a9~@2RLTBF`-uk#eDoAtr*WO2#2NI&|qW;LZ)rwhBWtQ7|;m!Q-uM z$<XXHL$k!~4Apct{zaa(I35E<lx-Lvdq$dOfVSspklANbDR(dp)o@U~ZhLl=ZBGQt zLn|Cbr-=c3K_o2mm%q8mk$xdSrnh)_n^t6&B5>hR7e)$>Fk>-6L(_nvQG|$9Fb)qt zz?GI20jvrZ1(*~32lwo#!>bNYF>qq>yQ0QCt6dxp1A@~Z4mE3TIEw)0VHl3bZg?mt zqj6H*7*3xJW*^*UT+TH5ya?uGgF)0K7Z0l*%(<n(96Y1JP~GPS!(1iA1+$|p5XFUb zY&;;;K<+7kM^Sa`e0k|v_}{=91~zD;lt9j}uxoe>HpUoF{sGTmXS9&#vDLD}6&B<@ zL=2k<A9?F<TBYa`0+7RfRwn>$y-9(mp?<6;4B)@{ts%T;yAmi0B%9dXj1#U#sn|ns zMBDCyOG8WU*0Z}Mhpbhpe1d3&8qh^zxfmbb8eBPgFCY3~-rax7EWDSC6H#5|4vVP4 zge$ZZthPc+-H{RXJdqJEN^VWWj4Y!&FV)DfV^^zDA3K<$w?Lts9i9aB@PRs3#{;&b z!V1gdX7s*!S>AmNGizw12;EdR?=2+)*jAD!1_5Tojc?m!ZoIsN3=3yJF_7_V;l@~k zm%5<Ljc*PPJJrF+FY>{TaDvTDxbeyo0c>OX6N3Qc#)*J~3f<`Lgo$SRyu5DQe-^s& z>Jl=h$`tzlx^8qN0`(+?M-HNC>OlWJzszgK7t8|v*ObuDjbW3`1|CQB_c5gag~j*} z4!7=a&QoRq*F>4F+b93yxK+aon2#`o9HYT({t3)`^IRn)9P}TLOD+U5Orz(T^Od(S zAE)`D*#Z5C%-eqLkYUpbxI~|$s1bsrN>wm%T^{{G5@w<bZYZIDs`&Zih<<J4<aTAo zeg?7y%G=;RKV{o{7BYARvlje}0_~hKH0QtB*>DG4QSD?Q0f&*}A=+@ywYF1NYkGR7 z&Hht^%gL{(O-IL3fe!Nr;bivGyKFXMctyTpAD;8x<sJrKvD<{bn~xIQnaPO%@U?k6 zuy_`-_wEw$!Q@XA+3Q@MG(@KG<-aG;J*h-nvf{EN5oaOL^v-+JJHA6PC8BJ6T2KA7 z{x{cGEv^mK8!LKNG@ihJh!y-%h!u2fDvy;lv3-31{VVcXP)hUgP)rlGG>?4Yi%>nY zaO@RWzyk^c<-qlWg?Pg6;px^$h$mnTzn=AKKE}xLt01<pAnP~_XYR<M+|s~I;orp% zA)kW}zB2b<J^Q|;l<<dF<bG&mUr#^$PVR@E{2RaR<r^vd+39V49(gpxsd)ELM62g( zGOuXl{39(;z8TZM=+AFS7Z_c)8Qi*@m%@Rr57$1A7`5xfffuwR{<c|c^;iiUrVk8u zAjj5nO1Ky1<s4xl-Grv)3*74cGW!uWKtU4Ww-+;E{LVCvWAJkiFnro7mA)A6v!6H_ zKbk+Gq9YOo@Lzw6K@lGRYlLzo0_mA#Jmz`bcSEo@O(5=oS*V{&6E=KSN<bzv{Uq2i zHUH%37AKpen_JFZr<;xQfn8pszN|FPmp=C6><lXJI^x_Fnn#}nYlZU=&mlK11N*!P zEM=~cg<=@MV#&n*4S3*LxL{>NW`GU%Hyg6ysv*d-hCM8o${-G$r~x@q19g~kbE25m z&LW5GGrsycvj6itU)78Ku-g72Q^ZjD5ZPn>$}>aIb6(b<2LK@*wT;R5vYqF!bx-{K z3~wl&$!Cz76c(A*;X+ZWV(w?~#3=3IJH4`p@63B;AznTcuWVz9V=O@0eS)^@1QwR_ z7}BA245Wf;a-3AL*8`}+5P5+CMd|o}qGo?|iD-laVv0x_+hru(R6>%4T_0B@eVkmw z@N8fsl``?b?DW_uZ!`k7$VT7$Zr;DszGNuJnXu935{4|6`&eSA*R1?=fEEUNu{}uc zz;khpkS#>AxAi=HKTuVrnXGLZK?O{Z)(MT!YZ}3JM!p!&vM@|9bpRfg(&5da{Ik#= zy;1_)$l*$W4>j@7%q`nPH|6Cw5Md^WzqN$;slt7`F2C|<5WCKq@Gy%=vX@+u|41Nu z2|WwKnM*;j4!#FN@=?D*q~pvK&1PffS*3PwOYNThBs$Z(b01k~E3F;_op4<+r$TL) z;T{#|x{I=;G*wOMk~gMRDReY|h(C?a9egkpvkCk0_)r8>3GX&%n6YDXMYoU=hk;%k z!AmjvAiB%r_k@T$6C&KZnJTU{2RtB`MGh{3WrNLG`nPdxptyfeWBXVdo6n>yH8&jE zL@qH^mfqQ#-tifm?Hda!kMGDl3%}{TPo($G?iWK@slkwpTGiJ*=^gLO_DE0F*Qe8a z-WStSRDNE`G*x|#r+2(BMk_icrfOWDP49VM3QEKz+p50qOYh`s>`eO3{iSy_Q;t&| z^yA+X&bO7`Ni*eN_G4{)x;yGIQ{A&xNR0w=Y<^kFirQY7T&gNf+a{NpT$6R?ym4wM zifY1%O+dDcXp4vI>KX1JSVMLi!Ac@?%u}3(cnx8hD#f^_9l`j5&CzUIJmlTyXk2rS z#VsUp)MQ1C3Hj^P#)0|RscGhf@H11Vu8k+#;U3i-$C6X>*+SP%bRSBZd2Q-rooQzB zX;@iLn%M^0p_vDPZ;!cYUY(y#lX-$-W+E54IKNMtFGPT)q?2AA2?~@0kr(L$AdYYy zC)6C!=DUI^=7jSZ{^SxqsohI{1K>y9Ri&5DNoa7rJXO$(ne|azq*DVa88Zm9Y*&T} zg5fjvU`r7fY$-OIi$1ivwS>`-(X>9hD=<Z$yc6q*8!t#Ga+UVDi2wJV7~&tncs#{F zcDgI#uUI#Pp^Ny(K7J#`|BKzWVa!zgBO3lk{PRjTFa8llkEi(Wcw&fu1mp1(|JdoS zh<~t3UBo~3@f#`rcm6aVZf?%r`bRYUkN9^J|A?ZJ_<vvlod4cw?~G`y$p2w7@MKK} zP~xvpS&PTPb)OgfsGu1*k%pJ#yCuxccZTS6X=2iXJCaGqt!~FgUC!;WOmluaS7K0p zoHhntr%wQ|NW(A$<J_9}hB*M@7>H%7nutZg=nu1!ZHR(#TQg?8ih|Ln-YZ1G7~Mi4 z14Xy?#1BjsC`7_|+h(zv)=X=><_c^X$;Y!o@eVl7(fg#&9DI8E%=SHD>w<(Wml~TB zbq^%&ihoLEcTSyhbDUCKVO@f4SCnViFH@;JFG_vPRCzLecREui=JP&gQ>RaN+aEVG z-{~z04gY^to<T~WXG&6XMM6(0zu>?3g5rE47rH0~V|EslE*DpDY@#b&l&(@SdFnyt zEFoc?didnxN<WuI!b*Q1p2Nxrv|mGo!In__p(KDJJEw5%n%mhtJ^bV*(u<ik(35>l zB_|khVbV8xIfd0E^j7I9YS?G^Q~t;hQo^z7zyxt7db9X}8ab8ASBz~FZmeGQ6cTz! z;t-!;JR&F|YKVus2~<?0Q>oN*+Y!MoOO}P+U8RoX;|1&T7whvEr5Hm9P;9R({33KT zPK}5FwHy^4%Xr-oaq)Hepv>armQ5QG=a&#M1S(CI1@PD)A{0bPwXcX{af*+MXg2=w z8zmzbR6-@Hd&zIAPh@tUm8+i$R*iNZd`@wqp=TWrtaec*=w)b8gi%XWSj!bgq_Z<w zDD%>UT0g+R@_fO;9<hWhaYSe~e0$9SU<H#c?X_Sk3JU#0OfbDT(f*0Ca7vEjB1uSc z8!k)zU#3E8yVG-HMJFo+a)L`B`nC-keyZmQ2tM}N9u1u-YZ;*=dlW*^CQNvCkudY2 zVSaxTPFwF0JjzOtC&oMiE>a*%L1_ytcE`NWdDxvI-NZLVGwy}rvcv#W9+*<IaIiIu zf3T<4$c_Ugd({T_o0uC1eZqoy^N*?>UqEY~rulu}K?oWD4COHswnr1T{R~ob(%|UD z_%yT<zblgwjvl{bM->==@(*I#5qYPu9?P=Y@k2NzfOWN)MnpJk8X6H|3Rw68n|fj; zPj%4Rhja?mDfO$giK6jXAxB$<`dNX5iG9pxUGuBF&pMmL;_DMST)|GYWA`!DD`B8w z+(2M4ZlLhYw29;~3ZgZbcws{tywBmZyEcjsHHUAEjl0rsNbk7&GW9~yjiq-|r1*ko zJnow)8!H~GKg?ZUr@3pz#1*-g@f`EQ=1d-1-Yw7aRlj%KtAGDBfAEK|J^ln9QT~5; zgm{;Qu}2EN*ok<w+86r@m&RWQ5v4S{GiLr1D|G#_{V<9DL?7+{_)|eASm`}_RybcA z?Y5r?{?poaM2d?yfqVSj1|iyQV9{d~uKYK8jl1qFjg&_HN576yTQVTB{=C#8ee>6X zYhbo5dB@En;~#&B`*@D73_Y7aAal7d5sjGbfedr2WDAl)yC4nRU76Qt;CWXDg(67} zKOFjGrtMpjEBt@k?8)t?uhx5VCW0E4P7dz<E;<waw0ix`0h}s3A1=iL+R(6XWGjX9 z_k;i_UmE`b8h@T#Pf^7yI1%@#+H0{-<Zxx&EynXqqF!L(B&PN<b$Wp(RngI4>hyf} zIRNYr$i<+?_zLwBj1JX(SR5jD!@$XulRFicC%n5;@jJp_-l=d$LQaJ{7%J%P^dKQb z7L<dary<|swL`GR4WxR?x4@ulAkutI(vT93@yo4Z7TK{FNx$<M>)0_bnn)gA(442? zewkQ(8SeHqafUIINloGL5GW)<!vX1+H^=&TN9$$G9v2j!=4tR5eibg~1DEsFIGwl_ zZg-m7Q1EPKxO{sFmn)`&OH^u85mf$DiOb`McpeTQCoZ$YflINTd2mAMi;2>YY8rhQ z2J~VKXhCpY55*0hhd!Xxs@sW7CiDiBb8@d_UZQ-!QLg-5X7%<p!CIW9FUY>7=9zWJ z#NN;yubIOOS%?J2!Qy(HlO0kRsk*VdBXEtw#f`%7v_%AEqB2*vuQ`~fuoA|YvRfb; zw+Jo6?YSV@zn6%%bgqa-AKT@?Xh-2M(GGE!f_y(8!+Ta~c(ar5_mzfcbw~5^on$&D zl|$Ai=gA8BuDg6A2em(DW4A4#=Zj>!gE6KBo@=aK4lF2&e%joRWit*G_XO{FZJVwE zilFwW-oCNR!S4?x6uGBykT~Gi5~=Aw75iwQ?J+~2F)A*&JU^$J%{KO1OQ?9puLBh& z_R*$*#o(3!XCGzv>p;m8`#=xPppNrfKAVqk&8Cp(SP5spmiSh`36R_q26%epU})2W zs@DcQan3H@s*VE&(W2!G9uviE*XQeZmhfa}*FVl;R^lz~dSE;bHdZ)O%D*CV0cRGC zrgfSTZ+*U7Lff=sr+1fdHq}P{$1lbad?fkP!Qq@~jAJm(tV#=ipGbrE7{`9J7yg{4 z6lOitMw&|8liu^hTT5Qf_hpI9>77rfcRV&yPF^-~NbiiNcN{)TTn>hsPPvIwdgrsH zcPv&I#E$RCA{NGUUwW@2aXH^taZLB8cYI8ixExkOtKi#~-tjS6((+XBeJQ=?@L4=6 z-&Ya72huy!jz@j9^iGOL9aXQNwphD+8$1QHUaQM?L6c<<zc1|4qAt5DEPwy?aQ(nq ztF|YKg6-H1!L0eSOnhjp==?+PN7nGE*Kz1NPVK}8=Ryz6U%*p4?PCY`gkzy`CNzUg zh%!Cpsnm+TKNqKYl$Pzz_$+DBsxAE9ZXE3HELz^02)PoQvd#ImqAmH0@XJDmQNqO{ zvfK7LQl8OF3>B_!$8P)}MRvmn8B!i@*vgx(aBL)G60&ikR^fOk14qyV<yEQ*YJwAC z1VMRl4d!%Ve+AhuurIAmF<iMe!QhJvZZCY5CLD~i)vu3pRl+e7RxiKA`ga*h9~sCi z>01TomhlWbN`mDaR9c-g=ao&3kFvWBk+5(W+6J7q&5DLF0lk`U#)TWhCK1zzLv-fV zv7bQsBV3W>E*3*~vyWBm>D%vb=cwCu5fZ|mzyQL-K=UF_t3%TZhv%W95vSHDMTIvQ z*dM^8s_z7}$*_T`Mu?cA4vq?<*wAW;G9eO8Aqd~A*BUNO$oH^-ol~?VbPYI`$MuC! zRg~~C0>E0cq`1Q(J^&nK0L(CR43K^7-J!k>#nfO*Y<O9M!dbv;v=>MoSRk-O1q&GY zJz}wv%XAU9iEOyVYMux8tQf*>Q(V!U8LEw<O<<Y}ME0&xlr!AD23uVBv8vzGrYNi7 zWAdLUija~~lzZsSFgQhlJqRe}Maayn)nJDyLxHFua3p*+f!~=>TeX;kNL3|)6{`S& zNoOF*<P0@V2(ayF2;52c(w3bg4>NHJi=lr2mgTNttR=CR9VBM3FFSc*&O~dXD&Zbm z=p|d+m#nm##4VfCkajMRZj|jx54<Nm@H2ZrMygOtc;d!VE#dd27xU)>PyOPS(u>Jl z-O_-?3Fiiz{ea!znZdO>mruJa6^s=0KWl5YmdC7(6(vm`UvN#%7eGAmwbp_8Ra!i{ zrO+GMdq0zxOtalux{I^|WBC*zq4<n;?C$#cq5+2z_MlJ*qppD2KtX7TTWk<HVX?*K zvdy$fIU|k3v)lCo)_^md_bpqGVH8Gxdi%V9E+4%uOb=kl%S|Ql>k8U1Q;~rYDM7*E z+cgN*b%kJIf?&~1Ah?`32s^aMIaA=^(ykCR69h{L0Wb)3EVcDxDwHxhlqVTPv_PC2 zUq6RVRHsYzKUa?*2Eb11DO2!Y>A~XDqr>NQY<GXZl|aW4lsse!=TEYTEk8){r5B5` zG*3Q&AGoqQbZHnLESo;#na_OYK}!xk_>e>SVWFBMjyPiJvS;&yRa7pcE?<7+kuT&2 zRcl`S5`Iv+rj_w?^f51c*~?%4@?%%7T>0C-{X6`;;+4PqyRUkc7Fn^%$`4jrk3WGQ zEVuH5CD%WG-HCtlr+@lqf6mWe{N?Lkf6_@O{ncOp%^TkExBUFw-=BQ)Km5Z#{Nq3U z(?9+5KmQ9qZ+z1!r~K>x{kK*8ociX|PHWdsudlAJsh^?0GwWy8*VfOfkJQhOf9KTC zt)GX#^YwQ@{lfaX_;*qL;`$}{yR`n6`epjNyncCoef+zker5eC{9RptYyEBYYvSK% z{q6N@@pqm6uCKqN{!aXD@V|}qjrAMq@2cNezp1{delz~wUEf^)_xgM4@5SFO_4ncL z{q+yvZ%h4y`1?@(!}z<k{t^8BNBuVZjn!|*-yQWk@po7Kqxkz+{cikit$!SUpQwKl zfA`csg}+bNKZC#V`n~x3Z2fciyRZIv{M}#w0{*tuzlgst)xXS%R+zFh%2Ss0LI3!a z<tu!?HPI7|R-0vhsq6htwz?hPalNf~5Rd7FeyW+)(svmyzrRpvC{SYCL*$AMFs^rm zYpOI{?+n+}@<GKVb0%{YRa}7Sj0DrUwr}(Sj)UqFCspEK!P7J~s_%;ck1Xs?3&y>r z2Tlu+WoK1xN0pvt0}GgSWJ1;9LvgzBMKo!pRu;T^6P!bZ^A=>RnNnZXoWJ1!E;+*Q z=Qnu&oXwySh5i(qV%=tLp52CCn(($>zzwoGDQhz$%J3iC{1@)zSb`Zl>?8aObMPyV zh`-DTpCJ@Pd<NWN+Thky=08?d#}pznS|r+En(+K}!}Ax2=XCxV2Y`mx;a_tg$PqAJ z8m&fxu{Botf<np|@JBY|UmS`CUnBS47TsKjw6Ev{t<PVCUo>|P7mJA6Fhu%H=9Z_S zT%Lw<lkLd8-&khENJc=wf;l+abyd5*kB{+Jbd~0E*@BleYI!laI<<e>KJvEoA{e~x zqh|zjsK;1?%W+zV`K&PqAm7OmfWSo9si~vr`2^m-CUrDnG`ZJkLR0{J+gvP&Az~a4 z=Gbv;eISjTcIMlSt8<O4+2D-$VoJql>Vqw&mwh@ln}#pyTThF~s(Kl{EFA7ZK7t*H zMQX8MEX5;?i)OhF`Y9VIIBb+mgW1s*4j3Fd!Rs(Jrj`f}ZqexpGb(U%%w|XgzA@p& zXHoaq0Ko7D4S)rc^Sc0FYTq?~8f}=YO*DwDg8|!6AIT272wZ@q<Lv<EHu7#ivJ!JN z3UWq>ixcNf2`-;Ff5PAz1)A8``oOju{l;jxK}7P2Z9zwNk~ol(v)+#vNqHejxfP^j zHJH0+NJ@{);BZ?fCDJ>Ll*`fD$4aDxBv=eMkBBe|NYxaH4<AS<a?*XYgLDeMRFF=j zBI!sfbS+Y$TagNMAgOR3r2Y>vT*Tr9M$~Z<5t%YMB4(@C=4V-!s*%|1!wE(w<DH#k zj8qF`jC3uK5#g{NaN$7iu)RAH^~j$t!hybba>4fY^oYsoc_i={2&|R)+vbeIN}TzR zxhC=534KoDkIbCJAZ<_{l0uN&NZm=u(F;6kplPJ@UZUj36DUr}4|h^B5-w0OlD0s} zp!@>C$ZbYj(<1tgtlvOLtpI+gNXWBE$Pa>$<D~PJ84?mDoVsY;``O$FItdAkZKv9W zaEwTg<&;=AwHsu*TJ3&5Vbclw{tm+SQ#B-2n^(c8{pM<SJ4#g%c_Z+{W}tS1L7>_- zC=->xkl=DE-!dyIw|K<Gd-y5=919s-v{OZI=}W0gx6FF4%q8MW+93?OY?&uWw|_5k z$y##BW^l>Z`SZJH$|YTG^FwUz=1wjFUN^gO-ZnSJ`P&IK&Lx}5TvDOoJB;%-H_n^q z&Ny#Ra5<OUI4dqmj!@7ALFT_t{JyJ5%{8Rv4WQ=3{CVRHsfmmpW1W(D{vn&&P@?9P z_Bq(<Y8n4Q!je<(ogLJhmVNG`ydm_6Bb!}5s`jR`Ssok7n`HyE6=$bENuW6aub(9W zm(|{shohksy>sfo=XHsCvd*ZY#_&1R!Dbn9%emBdRC<LcA_x0dB*nGq)n*Sp>^2Gi zb`bti{yaJ*;i061{#b~bd|}-w5T5H!J#?|pBB0k8;i1UeRPIoT!CX#IoWlwqbyx7W zsXBvq2}doiT2wQ_+S6k!z!~9f9gLt;Z(WQ9xhsAc0V#Va`3Z<GuYn3JPK7A}K$0~F zn6mCjvdy_?9kT*c{D})j5?sy&SI?dcv|%bB-A_dlwLQpTz+3PmQhOcoe`S%{zii;{ z6`=M-{CWMHQTuW>cezm;xZu(#@w1c4I#7MrseM_(s#E*2nNxe4Q+p@ED>R~AsEx|i zIW_P`a_jWTe`NyH$$#mr$^S+P?@dJTC5fClubiyA#pGV>tnWD|?^?ckaeCFf^`Day zE&?Z9$Dh|t$qArjU_nl;yE=I{u(=D369Q_%5j&g{!g6mk0JC%QHYNl+CtT3M33BqL zGT-Cw<n6$D<8$QXy(_`xgg<XqgqL?Gd?$an6ye#FI`at6IqWRUO*f!f<5ZWLm0GSi zk-RxI^N<CK&Q9ErCVx54P+lSwGCjsPm$-$5A1SigPswIyfz95>pVy{_ot-c|fE+k$ z`VpLuu(>mh&7fe$$zC~j+eifzObX3QH#RfHt#zx45YDX$HO^*d*a())AcQmSUgE~N z^Ai6f!R2hW+TfbA5YAo1@99Nq{)p6UgPI@Z&!<JoO^cY_oy3o`wKs>LbZ`-(im;hf zX$dw~va5Ctwk8}o?M@ZEPP!Snh=9Q6_3jB20yUF+gr7)&II;dsfXtXya0rLZ3;YTZ z_J4`6=<-1TCKLRkoBF8)lned8Mrux9=08U`PO(%CgaXa7{5P58O@pob_~RR6tJC6< z?jhSRv9*5@k3eQeDc_*V*1X*By1aieVa0jop9TL+#C@xa`{>+>`<D|~&O!euux7|X zc*hr_w5XG9O<^gh$PPPEWS6fd2%KF`j)a{)yF5r5{(XU6zE5`fyTR7C_~YNkR(FwI zzRT9$Aa==_h4s!hV`Q6MXP56JtT?;;jo_aNyNo%zte>1+Sj;v*8=O(Z|N99}=byh4 zoHOJfZdrPhywP(=vy&nrbIxdpGW>-2e|>zyG{blK+FuT~e##&JVrHc7z5?(Iw)W>m zQcr0;Lg1|0di*@0%t`xadD70M^~kwvaM4Q9;YSiAPP{*v9r1#bRSXENCRI)>kZL<` zzHYF!hX4NY%t%EwgRKT#B0^`eMeQ=rJ8V;t%i45jxSC{ZR~KUe|NAi_nar-KNb^cG zU;)>PfuNBDj??Xb&4zAPG3f##?RdPeqjP~<q^d!OagwTZ<4^K;Zo<|I;SQ=fbE+qq zKCDXs`t;!s`M$c~|Htb2Xa{bTW)2sn7CgTE2O47Msvsc&V{@{gi36fK9TSJk3Hxgb z{P!*1{Qbe!dj4y>w%KYLRj#Ay&l=vw){ZNxigj)kw#<!Hcx%Fns}7!%71JE2H8tJh zRsm6*nM_Udp0dqs5<gy(z;b^4U4b=YBhXEcyo1Q)j&$QZQ~BTE%~uSz-pPM$_xQBw z*j?qni>>{3k&aX8km%u5>yH}}f}CzE^K_HS_wb?kIE5E%-3SlI<#`}KzaYo}jmz#X zt@&<BAUX|SK06wQWkFx^J&*Y0E_x$fg*|^CpWw-2dE$PJH;*1{y`TSP;kW4tX?Nm& zh^@8en7AKIm~-N;5WKUQ4Hk%7T(+OWo_{z&;xv4TAlYR(B!f-1*n2zi%H98Y5<bA2 zM-8^_;J+^lzfF&X-GhLb16kn!o1{^{0%_Z4I#~<qtXf|0PKb1p9+@ZUwDjy&4*|m6 znTeh?-D<YqfJ}P!;|VOM?+a!_-<D(&)e=Chu(*=nHeogvS&i_xZQI2CL^{hUNDXZy zvH{yEhzm@#hYQZhy$Q&xdKcHQRqVOy3G+bOX1)vmW-ImzgB9q_;h2YP^x^TwhUYbE zt~5T!{!o}<;khdBhR_5b-E4l*!FX9tO75mTz!mF--fkNYFXCHT$yl08FI-Mv!S63& z8lzT)mhfK;YH1Oc&l47_`T*LD^(;Iu57QW?fY@*%P&T4VtO^-?{C7-C{P+<sHvOSf zxT7XLznnxE!O>Ji3am_PqNltAp&53ce2K8=q_o5oUrhM+?I)_?kRJGQdce1zuy`iw z{e5`PoC{a6{p73ZMc;nHN($3>@$01*51QVK50+k3&CRJneW>&zckNFD)bEsD9Gc#X z|5bWX+uf%Ibw}yNr%tcOAC_L!X7Q<e{7LCW6<(bB#h;a4)ONqAUwowWqP9X${o<pg z7quUH>K9k9i8D0kRc(r%`o%L#FKPqa)Gv;dUeuXRQ@?m_=|%02p8CZLN-t`o+0-vy zRC;lm8_+H-y{OWCuB+l!c+YE3D(CX_o^Q)e`_CTgE$pOftgt_9|CnFH2YWxTc^T5{ zsr?nF1z%mr?B{B0I4zhS0d#LX;)n6aVuJJ;?bw1RNVC5<mxPUqsY*;Pz!f%(<&@>d z^DDCM^h!hx918{^G;x3@n2lc?UxBAz3dO8V5WT}Tu-R78G!tOUCli!h;R@b6iT8N^ zQOqC@7qCUdgr6pysB>28>%l=;Xxp2o(5<)C9t*~yo%TtxwNRH8XyxTeK19sI9S*;N zsd&evsJJvZl7P7Q00A-ijy-OPjmX`|3&U>ZalExbY}xzheqgjc=4fkuVA7fW3zq(S za5OhGk*Bd4fBu36+>OsIOxVAK5B4wVgH25P?uX;Gxsi!mnPTNf?qXVeAV1IGKBhzP z!8Rs+o~2W_k65~N>9S>EFB2VA7aSZgUE0P!T96$2<*kv167Iz<j9+uosgflB#l#&} z>B6nCuy=rwA#<m~dISQ^n8IqRIxiI1WmPWxx1cqECYB?lG=v={@cstj4QKF}j_0<3 z!|@xdcr9r5>Y6pfcm^-_vnv?91lM#s8_hly?D`JjVHq!Yk5;g2f$F)jm@wQ$@H+(J zL{xG@7z<neS&s)bR9IKG)*Q4l-1uqDs-fNR=x*AS0{`z+K#%P$>Vd_Rby#l`Wjn@z z5&CY*-Vgho$@pO(G`T+Ho)j5=bZifaLXx`++Y$RdtFY5|p&sZN&!+&nyhC(jCMotr ztF$ryDPo?v`w{aZl5LJ2t7Fu-Za0RoJ$gPcvgpm(Nvl>3?+#}aIH9A8uNdRPqQAQ@ zFmQx$i4iNO0;7eJ;Xt8(n!9WJ#_kqqGyH6>cRIyw`LgEZZl-@f$p}V~E5o0`L;d{s zWb8D;KS-beKA>M%ywJwMe|Of0b{{0<ARd^A)a`5a17cJcYhW{%3JD)ZjxoYJ$LWzn zSRRh?O%U4-hi&3T6ppt+ti(Tg8fy%o!pvxVRf)zZONLgaps|FmNZgfW+LD%yK+6T1 zSb%etgHR$Qi%ZDw=CBmE#gLS}07{OMwL#dO`2S?2TvtWPjdf1r%G_9_<tVn7@wpvN zOi&Ni838U;w~qKe5SK#@eO;Ws4(lt6_u=KuNB~79h}e9+sio~y1M<^3H1Vi2C!jqE za^H6<3v}YF?cshDhHmz)G2X&LJAT0mJ1ZbSC#V!S%DxRjBMt4=IufnoJl%dMx7~+u zcwc|BPZ4k>DL)N-vYV?Z6~m?1jwhrwzD0nnkO#6sjx&Z@fqyX2t(-;sY2>D@RQZX% z`)*{%-Jtz;Q!Cospu!zoKx7e%eCZ%@yz^twKU3?R+e-Ynf1V%p-F1#?FTgjUE`olf z?1{<<WGKQIwEYTW%i~OLRd=&PY+2E2x4@$iRg6W-2AIk7=+GV@l-1ueT9H!yRL?_u zg4+E?s6APHWDgmGPY}sgZv=Qz9w2anAO!iiO@21jr1U^7$D-%317HllYGixhIVk3$ z%GxUbq@c38AOOnMxUp_1*p8i)#8*LewZZMYz0Gy;DTdXk!sNeD84vY={dRA0yAkS) zfTwVeWo=cSlE?fID?__CdxrY;&~G{C^wMsMbM7N*R3M~-WkQgPDs1{J^O+LM>@^*h zQBb9Tu})UW;fFlZ8+fFD1C1=wd#m->100-HB>~+hNN5a9D=Qe(2(LkCD6;;^6xnnL zj3p6`0wk&;=!g?^0t5w7T#bE`;K9i5Hq_hFcM7%_dKrh85{=3>UIeQ$!HeKJZ0ALg z^&Pwjl-tP*BOSc7ipWrBt^v@<7*bp)d?=C9OI>NkNOWsr;!eD80!r`wXL_%r%zJ>I z?-l#{UV0~AR*MoamVXb|qjsJ8`+j=2G+!KJy^?&@iH6smn5<gK^#wPV6P(tzaL5c{ zI<XT4C;25s1;2(_4i#)DAI(s4_zrU(ze8ol?@*<D9YMYhI;?I-fVS+tm@!eC?Bu3$ z9b1ZZPL;SB{J1I0O~L#$5u5v9xhz+=W?RKMESd=I?CCz^o>xQFm;7|QG-KFUK&9r| z@w^^+tgTvW=_7*}aY9|9?do=H!DpMCYqRtVtczaH(qxkeaT%$?<C;=ioF&J$Sk)!h znCiM1tMQ@I8uJ;Y);i|F+^U^xZ6bk|ZQXuIVxP?XeDf4FBL9ud6A0Ce-xFreO#M%5 z3XH^ufE=g1wT_DYWz8VUpWRoIoyH3L!_*W-#f<uxnF5Vn3jf?xpg&JF4rc^_;8Qce z8SU7FGXQ&wM1#oWusj6=oLOqCgPCT?0BcLFb+FT8&H!hn{+$8HfN`=Q`EZ8}9#~W| z)V@KZQeQb2M6G{zYW60JC7HGXKl%zx>;lb(0|+gHqReB#6s=D&7b{Q};bAn!FS@hh z)l@=3jrTYck`=*-{bEDZdg;!En+sehEi{%_=%Egu+q6)V%@w+-`y_j-+p)z@S!Dr> z02;cvDOo-z>x=cmpc|VLd&1cEqziOJc%;Etg(Q;KR~8D5oSC}MmB)%fM^PRsBX$UT z!|(D=RtD;$S#_*A7QTW~3kfNqi^SnE>47*^(4ht;Vr4%Y>_VNOE~@_p?e;MhVzI43 zk8AB635hydC5v)PftEamDMW7xKjkiGQcTxj_$8wn8*;q@?>Xs}?$XOX$j#*@*R+dG zawJhz39-po5w+1+#iD%$D9<Q03HLoUxs&8cP3A0pcK>8X2BVv{m5F0=C1dV9%LS6B z#B0u9U~X!Y6~vG$9<Ur4YdK?ftn$JmIdF<7F7XT{A8lxs%rh|LrJE-c8BjVIv;&vs zUMXN{q=Y3qV+z6?VN^p2RXOXPeKMAF#0#;+q(na-x~D<5IJE7`D8{7EPEa_i5NyIQ z9Xkbm9Ca}IbR8@oAbaG@gLAYgc5+VY<iBiBj1@3!=7#DW7L`8OW`(!xYHfMyD1w8A zN+#jl)T!6UGo_X~N(66_k~m!i0}r$lvBSlrggifW<U(mJ0Y{G`AumW!I3aP8MdE1@ z()k}#YwS6*xDtcES{cieJTfxLJbMbPOCUJ~Xu@JgGAlvk^aBf8Mz$K`g<0at1rL*3 zk%?dy=U11c&d=)C{3ET$eW^UZl2PuJVh1Q){K72-El%Sd3qo!Js%)jIwS>iM@l$k9 zR=4A;-!{`bCtlB*)NEI;$7M{&cGlMfYdf@Xlpm?};I~sh$Jscwb7Tj4O2M#ps~UL$ z{qK2`EJ4A54n_lt3U?9Rt>tCAd20dVh^5wBTS5tD@}>njfO+RtuSM)r6NaJ+dUtg@ zHhQno!o-!v6Y^@sSpq33z(N-_0WS~*OXaZ;#ZS}LeqLyDihrSY0~dHvWB<|b_Aqci z53)A^r4*Kacr96s*yor+;DYK8K_4+ZwfdLNIn=M3xLWAnLE=a*$X5KmJbq7Hd1k_d zpT=SGSvf_=Pr*av@|Jsu6BN?mm~ZEWZ4CsC%JValYphuR`s@Tm&MoAFk|(lh!X&$k zLt=M<8>_lAH}4WU;r-5!aUO`8i<8At#tLlL8B0kFAgxLe$r=(dN>XGRN>XGRN)j)` zG?XM>M5f^dtxUirDIWxqln+x9P(E@*Goo8MHF5{&9^-7FJJCK`mV!9O*@R~{0{#dq z%}NATI^5NE*YM1>^FWl&g1pJwHU(iSf(yt=K`bgOh`S1uqB?1<4+<iBsOIt!Y9bnx zBD`2`2nCblz2oY<DXxnVo}y_vqaAy7gHITz<uapWcR?MUS!#?z7#kxCRXfXk$R>bE zqSuxh>xdPQ>vD}rS=rzw5AOgSImHv$66{y1D0o%^z`YRK$Y}B*FXWmNc?(=hTKKJ% zxFvxn{{(?g13NplJ5vJ+G}%lznuL|P!K}Y1=BRKyCMG6MK@=%YHs%D+ISC%mU9orr z#LWkll2)V_%8JsPTwkFmH9!5@ES;3C1&NT8G9JPPhGg2h)|hJSce*L@<?rO(luCnu zVMSF;Z57Z(ZB<0qns#h>#*PZ7t+DY@UIYe|5(<iuN+`lZCJLruydpj!1YbORPo-Uv zW^zvf?{ZbzmSzIB2OHYLGFYGJ!gVY}MwH=t)KHkXY;`*}I-Yk`+{h$X#eElZRT#A; z6UtQyCP-E%SgL-?-xyJee_>G~D|p=9e+{>vAkIp}#cZ9Gja*p@Y>GAZ=&ZCWmzh+$ zsIyq^*@++>&dLZ^Q4M(kX}Dy6ktNw*V9Bcf%v-r(0Ssf`B;Io}llBe9^1vECNVmdA z6{J-~y0;gmbDpxVEJ6h}>^V}KE0}k@z`P9Dv^EFk#jF_2g80<7n$|q90f(6<ovI@? z;h13)o3bB@%lHD$HeARv`M~I7@Fc;!FM|&}3||sytFpRs9rUv+=x}2zhz92<p59=L z4;!u~_C^y3&mhBmS#7`Jp6uysAO}5Ja}Df#Z}w<?&2VqluAc#U=;0Oi{r2G85SF~` zL1|y8F-#(`K}=_R?7_5%9{kt9f7G1(bxYtG$Ze!2WHx?>2*vNPB7{^31G+R3v;@P* zdh`UNLr0rj(wCRFBR0Qpf^Sh7YCMQG$Il7G5Jv7tJJ6O#%R`mP3t1kjOkQ9bBQnsn zfNJpXwc&XMN?wurc1j{xGY?HHqU#!+&uW!#38B)-csOaYtGv-{;mC%eTC3Kq?NzHS zu3=R$ACyT74K~+cMlr789@Xk<Vz4@f0#03$rF4Na=k*-VkLQwa11(^|O<c$qBKoBU z%xq*2Js2iYr0u@WchbjdIp-+^*C4qGX?WKpoc;948WugmyxSA~9nnOK<bkWSNbVMM zbEPK2Br`u^z7SMNw-;y*BMZ#1yX<|}g_HV-mBk4wk;@AlAE1c=kLyYZnJnO8<BJ5E z3L&N{fAYp2PV5@1i0{UV{Q62!N&e6EZyE+*)*fk?UE`SuJlKo23?Ha~xa5Lk5OkIo zQio&iu$>yeWC_!TdG-N5hg-TZ5{94soaa0j=O6F{gcmG7l4l>h<fZtmz|jXd{NU)L zk2wY>9~`@qryjiG6|a0Hjy?EYJ6irV_~6h3e!>y+Jnn#}9sI>#;`4fbaNq$xfBn~g zgU=iAv11QT{)d0Whvy!IlMmkbCVWo8=U;gM0uDcD*VA7(1tFb(VCNp3U$+wv?4*OL za}IdM0Z%!&I`?O%9oQ)c*VXNOgAMi0Qw`qjXBxaGo@;Q6&Ng_z&Nkr51|N!lcDe!2 zHsHwyclaOAHsBvmH{kgOJl)_E`m^&5c*4P_{m;%g;0Xsj-+-qZ@N5H~Z16z+EA_8- z{C%xHQU7}V8})DE@4@=F>d>jdhp9OG;J$(n^AMkJZML%yV906nHizi~%@=K8xONwO zEL>B;)#a`vEq_KkcJa~uq~*WOF2ZWEtTKI?7s3JoSel^cHB{w4S^_#I<LBP@UOTFn zMcN<agK$hvzxLv~61$&*o8QFEY;5&#v!PpT@Ed%NRSA_uLS2bt26(NbZFr46ihg7R zh6-mC8~oFfq8Xc3RL~csv3LyQ>oyi3hIT`dEjE#h7mToEfHfps7TdhA)aFFFP42YJ zwaLwxxi-0<5H4bZb6u&;ua(>6X5U<!s_SeGO&-_4_;Ln5Oe<;N-5f`BU6jD^xW-ov z40lw3F7AOuioQ8rOQQe6AI9xa3Z|Lka1F2wTwoqap`V84wVsS0bg~CAF+o-Z8>)VS zo^%+=vH?bC*YR)-c6BUvE53F`8i8lxtH;QhBKY#0)8HfPZE~jrYIzdci8>gg*L-Fc zRlrc_5N>4<2cUo>m5B;Y^z7xW5yON&2p6F*68fqHpKtW#0Uh+Dxl<H<a}og7fUn>; zd~Ylk&;5oo55lv!5nYw-=>p22A}Z|?86^#8U<_uX?_Hb|KAa^XShmBff{=yylm%0G zGu%mxdrcaTN31?SbB>{dk8>u<9J3fd;A{z?8CVh8fm@Mb?l|V!Gy>-s^*A$*+1yAR z!&w$V4xAD=2TKOC;h5_ae9kdA@ZxdenEyQUGgtPDV|Y3qj?#d-{>4E#j?sA-QpdxM z>`{Dr)@04KS@SFik7;pCK&8EV>xiTI;h0CDF&t~*bQQN#Zt_b&L53*td0K1UNgd=; z0u5yP#jhdG*@mlwUk^cdzdmv7%?Y0m{g%wzCk>w+;Xmde#EHdLzrftm1+_y+1FRCz z0NBigQw%=mh`43VVU89eVt;*4h}c|01diX}2!EZ3=*f26eDke?QA^>>4``_$Hgh~@ z2X|og!nITg@aEK1xRnNbOB$@leEo2aKwIeY4$~Hp09VEsOxxz356-;{AQ?~QY#USj zasI_)s;NGZ#^9PtJ?^@u3K}YCtXXQR4<`6rQ;j`Nnu;2tmzC}yM+%nR&eVN7{)0bd z?cO!%KF;ib9{UxJ2ocdY!_v1t$`^Ek21z?j|2eVOooVPl+*eA)Pve08ihd?^msARu zm^;IYA4{)$Fbd~uWD`HWhtVCxw8B@0w0H~q73g~eT~l;Aq)72Vf^VyLP!3Gt$PUUp z;9OQi#7(g!?Z?3p9xNl))6ym>9fx74Y*=j3!;)Vk;_$0j|ESt+ntvF^5rFiEKF5dN z#|DLVNfglD+xh~3c(3GUHfaBR!keRAZD}|Kv=8?nG^pLJ%K#(-W(bb<2ps8}pEUr8 z9arK0TSDFgsh8VqLWC160!bJ{bwb&})j%fbf!<y9k~qO!&?7XWrPjZiS|794{aB1Z z68fPAvylR4PB40l>6D0dP92cnL;@J`zDbng{09((^fE6N$QG|}A=0&{4aYWsgJy&D z2NS>>jn~yyC(>b;#p~oP=X*Lu@M1BEQEV2jvqbXegx3yxz-$g)EckE(rkA>p6B;m1 zNH+Hg>hT}&@ptHUlxp3>i3vc#kkNFg(fSD=yjG(O=r77ikrY2lBXf4r`<)|8QjF2; zNHNNEfla8MWW19wj0!Lf+QPJaDYAt20U03KwtK>%@_;n^OyD4LjrHX$1<r^|xB$n$ zx8gMJXK5TBr|mr80Ibj%sO97%&LlYTh!^x};st%02skGkftjl&9Gu@xj(Fj<6n^++ z0^Y+9ehPviK87DuB>XDk7K2IbMv%DEJ=?M7?tJ(5J>h8e=`qT&vqu^m=N_;rU>lr^ zZaP);n)JM@Xg*J6tV)6sHuce=chB^<%6b>)DX_P~pw6N&<AjC6pv>!xbeJOwQU0|+ zDz-|f8A(HZ*L<PIPfVyXW^BS_`Z!ycT@Sv12-7#(lwIK$m{xDfuJnt3UX0>`8iLtC z&_Y{G1mdFcShyDR=Nx{(z~^H~00@k11}<=p6ni)O6xrI8EyMkJ{{7kb-tXU+<9pbt zM}M!R`Oi+6_@OOOy~W6u^BOTz$E#7<b*xcqQXjZb6Z$YL%@xALfpQgzJLN=PYMsk} z4VbV-wwD~!572(;sE0;2s5{uZ>L)lfG7Gs~%R4x|0nEjaV1dCeNn>>e$D>A@Ug>1U z{H|sbIQKzKZ0*T<R}IUqc<5(6f7Uq;UPoe_R+j*yu2<_y{(3$UXt%l;$UJqa=>nEO z>56LmS0u3ADOL|rC6sg>h)!Z@iVo5!ngFVV=z^x`8dFD5C;R4wA@v&^=`bacxhg^7 zuJ5@VC-=CU;oX=ktkL=jiKX)r$k<t5ClcRAG~riTGa(O1l*c3_j`CNWjW9zbhPib$ z60b?%I}+7HClVcT03{la4kUt3LL!ja4T&FpYaWRPQ$pg~6BLfbGp9o08a&X*-i$== ztXEurC((nu;M_)L@yN}*wOaVhEYN%-@0`v%Rf4cFf#HIHN9{>*PNQ`@-{(OF6=Jlh z^maSGy%cKE-+nXU?v?BLezvBA3@Vy?Z>c%FseU&+yB=Fx#n$@N+O2GDRhOZCu+$pf zwAP;6h^_tK>XH3N>17^CK$s0JxZq{f-1N3^9YZy)$)o0mY)8#aw)D-=(Tlkw^>?$K zb!(>$xUE+(rh+Ho`BA*yG??{!^8bI@wOC@lxa12&(i<sZnT5CR;SC)WP(g!_CqSGb z{-tB!t#9z{e`0F`qQPhFx*Cn2DYb?-4UIIL4QuTms$agZ^zuK3m!Bhc5GW|K-^i>Y zg${i<xeGgdsni+^^oydX*cd?hyJ}FrR(kpG!^_mKjX}i&854Z8hN>(u9^WEb{+6)J zDW5!;0C~6Z$s5o`)Lm2X$zSW)j>Lm-p<JABq5XH^ViAT=bSS@_!0@FeYZ_u8d=MnP zKXzLvz@-d;;2yAUK-P}Gv2sAR{svFm%pN%-KQ#!OgCtUFHa9Z}4N|6xKt7a!^qIk5 z<#AOqmXF260KB=o#N<NC<?Flf=64gME_AO4q~gs(8nq7(&4=?dzd8R;>6QGLjP;k+ z5bSABr#<~|{`wdAwaT3SkU#zzS}w6<Kx2j4>e%}|cB_#y*|8ra(A}D{gUFCVa)siW zsWH9%oV+nL$1(x&qXdK-(?1dZ;E>3ffI}kZ0;?5`mMX=+Zt$2|tv2!KqYoe3od0LU z>mx+Y>$>3;wKQ1ezZ$PU=a2t;Zt?oFG$h9>JD794UVi>$c>P5J!tu%q{c`lW;PnKQ zb_$riTX@y^2q#3m7M$ouiMr#v;PrIMOeneEVQMGi*U4Sz_UbqlcD%BKImheguE^un zKuY|&IsxH$ea#ejeKqj<Rutkv4YWTYx1LSZyjn??C1D1ECiO$+AK6pmkf}4jUGwQ7 z9E})eS&Hw?!aVt`1oBm8c#ad^T(%|WVHp9ufk}ML=N=|-uj2G-?m#`wZ9o;M=aoQx z)ign+cynRg7R37yK9qa)3c473nEy(=zrwh=G^@Ngb?j;!Z<-oE6kbAJi(k!le#hD= zYjK_F@Z0#ca%Ra_k43{JY)&Q>VJ=Rhm$mp6338VTcF-vmKy{q>JJmb1_%!B~lWXy- z5)dvGFBAGIwYbXdA3b=Ce6B|yKFziGbwtk5-SB!1f6cn!_3iwTHSgyTucK*5j@OQ& z`Xv`+mUx|9i(i|7aJ;gfeitn+ydFg@?wEa4T3qKz92N0e(Be9~;zeEX3gcVbjrBZd zgxATn_=Yqj$16LSbAFv%i{FrdaJ;gP{bYE3UO|h4vsD=ss3{?5PPF)#h1HYgxjDh? zYTU}&PeYB1GoJm}sqqr5?=8XlY!P{CSi9))BdEvsVof?7o^!-tOS9#}d3#^Yl^-NQ zSed?&?IV4ECvT_{eZ^e)!wEpw_s<doSdgG&iI&Z<pr`0O;}zH2Qb)J$ySRoF`$L6^ zMY-vgM+#(nq2v|zv+i~&+zg>&#GBhhX1DKQEWz&k9u5)gzVCq%!&n-H-a4Y?p69N~ zY}ogp2z$tYSA<>h=3v$oZw_(4QoK2aUKno<+nKA@aj=x~w!02@-vX1_EKEc(F^WNJ zU_E}PIW5ZA9cjcq?_8o0JB3P0|1p|(K8cL3(}kWXhTc~UEsoc51Y9uHs-mY7;OTL) z>49WZ`;j|qv=I3z{-Co6D#YNEX}m55i`9b1%6eL#=G#MlPm8(UtPaR%&RQ()O&z;f zpzbLc=r=(uKAT{7v3Qzbe?p2y-Iv?9k&q}5TTCd?897e|{4#&RbVGi4-6bD8*`zNe zRQO6Xo9ZN^YcwPR6xS-hlHPXiLuptpRh~fAVoPNBlDhkvzffMLT%>LRc8p;`?A_;$ zDukmd#vdjU3~MZ{VLvtHuS?>?2y!EXf)j#*5_5#bnJ!-E?{P8*zUFldDx*oZwrl$N z>j`#e#C-+(6Os`hJA?tR(JX5-U!HSEn0<#EW5tR5Hxu%9+L|egcg2cQPcY-w$o7*B zc!*+bb#^(*$AJB2hs|#%Y@YEvxj9zjt2-+O??A3X@EfM%Dg+%RS0VTf<&+Pvd{XHu zpny3otWM`;#jr-UKd-+><nBS6mXc%?ZrS1KGfV;~hN{1lM(*)++Z>wLMS6ei#=YG; zQ7(<OldXM!NCL(S*@6Cq)Q5oZ8+2SI+w%C`1cf^;R?}-qP9rXj8u78q(|98B<bNfc zJYo{gA^=ZR3766;<T~s~BX9%h#gUYpcAV*`^`5RG2RtOQNUB02i=-+fvcLhSVV802 zkKYG|24K*1xhpy)R73*X#f%lOU9%^b;nJJSa0!_&%khi}tfh6Ar0mBD6Q1E>_0&SB zQg*r{rzK^(6as_d0nI>yCeaKeMBt=W0uE-F@sf>Qw4Vevxhy+#fLs2S9bgoCpwzeT zJ}Ak3*8cc23T^x%webUMBNb2E!MY@&c2D<Rx7fk?l$w3&brmK+u~Y2hw4wyu#wp@2 zLcR`mNW202rj&PTRp}0ZTExb7=)P<p&9(Qy4Q%`*yDTiQ?78i2VdI~(tUpJF<Gfni ztH{R4NV7SNrYWp^hkfG67_}$3V_Q$ei42ceQ9Z75r*A2BYOgOecd)exuUhFHY|o<~ z3OK|Dbi*3rN0bR2t{;fK@Oy?IGK;V0ez2X+ckh!cVbvYujTO`X19g_yY9tGY!Xiuk z0|VGzi*tH#O3$7=r)Tedp7bOg(6b09^Bi!%Q=anFr#|&*PkY+an@vv6d>ba}vzJPp zJ`kw!z1?J%IlpU-*e*;e!!JXXcqS{WE)JXZn~;J5Elek@%W-S;rrpI|7o^Bt-1XsF zE-uQdgm<YEK+@50O}&8Yjdq<RW=%W7{7X~Y9AZ3}Mv@-HUOF$VUG##5vE9N4#HAMU zDd(uYS!2~ORtHYNy+Pd5L3zxg(-{sy@*#>HdwT+)w7uaO45}gqe@+6~W12Q2#E|2B z1S-zwBQY%rdRd1vgjoCt(G8Dg3kJf8${7E}f=1XDNnLTrNPcz7z)H9~F9G6l&8Gl& z(D#0>z?h$;F@n`pN<22_Ii>q_6cXlNA`uBs(%2g8dSu6m1V}a0Ak0nEMN?%c@Nfr@ z1Rfxd1k{l~0!qmn!F3~FxU&{>YA#LV_=)j=P4EJ##RP^?q*V3zaqQqIqL{Tr8YDF} zh8@>|e%p>*Idmj-7Z|5lG`}oC=A^bcmy=qUaX4gyo$SJA8*4(qBS+o_=Mn-z1q|Wv z2;6Vx_h)7gOuBHsJ^|vSw)x9CW^IG8n?asj=<kDcVY!7`ROds>YD<)ue;}}=GY%2U z!)@Qf94-cU@`uFCepKZWE2d+()^K);Aoc_~qS5Tpu^_DeVY3xbcn8NAuucjDZYXd` zhoc+L2u(cx)--UZfK4@=0tKu`Vbd5oDvuCchX?06`3Yh;DF_wcdUz;`#<ZRf2~aRq z*1Hxt8)DbeiLp%#)y@b3Id?P^$B1?8winK)+9{#1!(O(-ugAm!hZK1ZCP85wL=qx$ zZ3YlAZrM@CXp4RUStXz21QwexMuLxZuirR3-1w~DI49gtZV$yb5Jp(R4eD{8BUBV^ zT(|Rt<8@xdalJD)Qz0v|$s8-P2$s}L=rT;&H-;Nw((cpxMEiFp+Iz&qra3;%j7j%A zwoML7M@2zYEXrpvkL52)k=&@aat<L3XT^?Xj?m-YVwo_R6~}c<bJ=}tm)%EkkUtvG z+AVLsOZRMXJ9=itN$C@`GeKGFG#$|)r??dr?u`ktu1)A)BY;)c@j(1K;kE->3^H~w zx@7WP&5x+!j>CC$9>}#gaS9KtW2Lfu_-=FR#C=06uDGrTT8C<*w>gieE$Lm{T7<0o zezV#Kqj__j!6V}w91`NCL@|<}M5AgC(-4j{AeH9FM%`^s{`(Smu2{_KxndD*U7d@x zuI2^rxEoj?M-!}e&(J`NK-1l%MS?bAQUa@E)d$Uy+_^VO=G5O@e?pbafh&4hy`~S3 zWwE+ta7gi?OA4oyC0}@e<Zip~zK1@0E?k&DNfM4KT~!<<>1Ro*9?Svmu|DnT_`qu& zW@Q+Bc%bB=_#Ac^j*>h=rD0eWhDBlUVO<z24D*tg!gULtZpq7?D0sO?<I&a<oheCf zT2b7F@J()bQZ_+0Pcs^x1K9%mHn0Z)o&)vA3d}~J#`W`s%yoKcK3kjBBVM8xELWS( zv(BGCxMz8R?JsCY@SN>mEZJHvZ>7;X2(R)K%<`L;l-|VhKA+oQDcXGVg#_9%v{|df z&&n*qa7C#lyr-5dJ)14@j7-nY9@b?gOxKiJ!h34TQnT68^DE!HzVxOox;q~5j-?)P zer9vBB~{wCjHY*$8pdk9K*G$%)^cOh-5YLXyNT91$_!_DLVsqKhJ6RQg=cbxH0&4P zS_iV1VY#IQ%QA;WGl7=2m})iKa<E^FrjDTAEI0L`Qd4*@3=7j_HD$}zMRMO(dKD|> zdezde_3B|9kfmQ^kFhUum%;dGsV%&ywk-KtZDC;;8+sI?{xsV<q<To7EVacIW%TKy zptiW=S_Wgh^y<O+SMhy1+|$VZX;o(Be!f9CvA$Xd<d*2GbKZP`wTRI#mb!n2cds<x zp4Qjd9B0>M(7#%G_dtJ_xn-OZIOsjhztrbXCXoP7gjh|TG&I<fZo+AHjqFL{-)|ET z&U%>$0bTYGuQ}tz1H9IIPxJSl%G<WQd^+3HN$_+insvUf26YB6&z5XtdvjX#V>Zas zBfW!%dHv+U*2QdqD|pDr2#@ic_lB=s{E*Kr!i@?P?I@v$6Fz4Qg^k*59doTl_GGb{ zdfV4pTagPSX)h}ddsie$FWCtycqWFDeo06)=P48G7bQsS{lKEX;=7!2;MLAx5`z*U znpCB^u<9UuUcixHnV}vrb2jg&_F@^HwWk-Y2iF%2GbldQI-l<n4ZOM3<A|JH@tG7> z<mHM&T=Cr0^u7BkI>dI;>a8wpRFi3BUp>Lug;qe{xjDqos!%ZtU@uC*{=h;4bRJ!B z3}|Tk?&`gsO<eGl0s<~gZC=$Y1enJM^g&x=rk7#K2HT`JWcS>p%9J)^LxL@~S!827 z_Hq0Y-8KhGQ<b-*wlA^JTMF9VJb(~l)lpQ96_fqJH+#CY10sb8-y(WTugq%jmCrre zSt~~aA1wGuPXY>CJ41bT)<iaQY1JtPKv16k3D#NHkccs;#=DT6Tp|IS-X0yxL$Tn~ z?Jyy9J{$?xbja0Ofe`1kBV?XOU~_sn?J}DrG-5{lt_TX+<FTvo?MG0q2YxjpeR~Mf zcAXIm%}`FUFczv%=q1b?+K{<|cXnaw+PyQh!z2W_^qf>_{(vuuvKRRq<tzk~OmqTp zjfZqF5u+dyQJl+&hEG(xK*LCwCp((#e87&rF6r8ri7F?a><x&;$!8(Y%ci4?tSs&B z=p8;gpBl?gQ|+PUtbPHk<TyFZn9yeSg_sNvQk1rnUY>B*-dFNt>r+caD&Nk_a%wzR zBa)Eu=ImKCMFh=`*qA=kNIi+k410+#S0!jZV$hg|aK_R6&F5^IzZsNdm5$+uAOv~U zP?5U0I(6~iri8exAdozW&LR0}91I-=CAhPqt~_7VGhW%S>KU6UZl4c*(K~}W)Ojre ztub8FN9SyE#V6G63`zrw3yflRIcH~kL21x3=gwb*a*(7TWK?JMl2$)ZAVUo~L?Dm> zgdPS8dg3WvFwYP%U~ITAJBW-x@ujBegD2*fG|zo-PyG^6#H>AvDtvu*7`GNJsE&9{ z3rbdlh~S}<b8L(_*r;JP9yM@^|IAnbIWEW_IE2?x9>E#BUKf4`*Lb8RvBJ7`#LJJ2 z6&8vWJVGFD3*l<9TUfIIzgg+*$aNG;XEoR}UKkHno@Ho&Q^%o-kbt&bi=2=$cfq4G zRC@dwI#A1BjFag)hoK<!<n;XTDe7V9KuyJh$K`489xAaooQsqO?}*UYUF=|85t9N# zpwWY9s->n8A`6Q%Txpc9A_f?J3?L2w#IRtH1T*S_^^=2pWeME8o}xOAVPXaF6X-b9 zBUZ`70VRaN!8(!9b*#-0hmmC*rw&+Ro2wHj9%!?r%Hu>)HgST{lSYF9HK(VH1~cP& zT21^yKZOsU*qxkqw24qO1vRfpFwG?JRib7kUk7z6zIJ_DbzH1zx`z*hrW=^0rps%+ zU)OhN+drz+Ow-CYOFCB7kr4;Os;z~;6#GKl>xiYxo{f;#^J5X@6{voU+Q%$?{EAn4 z&12L%KK=wyy^E6mUO`F!FFe|6n`f8xWMGzMwRLq=*ax#ys#cPFM)4KOIlJ=wgR_li z-(8CjK`tqQCs|RsjW%KK0pI-*H7zwgVw(7OBUVdVeYk(T^J5f53T)1iu!nQ%HwbpM zemSEZ$KxEy4mvl9Bq5E$%gR|+9o6eet>kbI?m5Y17~x+^Eo9i8M@cjvK*&BPNP%T3 z!v<%P-?a%cmtSr|ByPPZ8IPy@1H;k@zIFyN#d;WQ)qMQ+8vE@OL*R+PA6KMb?f458 zssepM)Th?Y=Oh>%du%>pFR$Vdtd7`&lMLjUc3uGOEcfhHcvEVJ{{UM41K4$UbDikr z*v;R@Dsz8pPmJc3P+O+Y`f2^C;m8ap!U^b?6QCH|D~Jg$T0r9kwmjMWf`M#-=E@Aj z{tliSK*<6ia4{~qxo#kv&r9mamAbSr7UOcq;<{H0oBQMH<+uX(a|v^vuSqf)<Yl-m zMgYrOEuTEEhGl}OF@1Rn)5oCUsWD9~p4^GN6Nsix{L?E!(7T7(3j@u045~21+bRJc ziUW~h^T1CoWLK4d@7UqijZL&xd7@3JT$Ip11q)r%I2M+%FI_uX#==_@5H3%)!>x=R zV?a4I$3;Gr=ZK(q9!EpKk@mYqkAc!OI~<KB@LZG_sh^U-GsV%xlj7*w1cc*=Tjr`b zh<6=1pb)PhtHKdN?RgwM6F7Ro9P!aR5_pay#{cIWNAEdnGCtanfN&gfcihZyggt5l z+3wOi&jWrK@gK-`qoP@gO9uS$vx1LQG)r-vM=6((6v>|hw%e3O<0xhPe$G+4ep0r3 zcLKsuYJvZ1(X3`Wg!l6}dJb@;rGYuX(R&hjjw3DzbmC~K#f%`1F@H=JYzFG<vPp4t zO9H}ibkL014hsnb*)ZAcGmI^B0b(F~pvD`jaH?Hh&4Ht8FUS1>T7j3~F>dJ^$lkb$ zhbSTP?{}HMH;_H5m-*C?n6$(Gam9(t19M^jZcW2?8rU|jC5CsI5T}9Wf$p=3232gd ztoHIDBpw7a$U)bnzL3VIDsJ=54Bk#eaY>?c5cA!ME84-}&{aE|W2HeH(2bGiPtHi_ zzq=j$atx&byizFbjs%1=lI7x^C_gHD*Q1Bf(|UQ<J3@k6=|Z5iiOlL_rS)yrcoz}l zYb-e{`7z#Rh({(N=jsLzff%FhNFMqWbH<M*c%AZWzEk=VwWE)TbO@9NmXFEt9Lpep zxr%9sd#=e3aUKT7IM2s91Vy8L%pEEuKaRWyG<jTLYiST%>zR5G0-YXE9E&BmCs!EW z9GqHNVDPzE7~!G3D*P13!-LW~S$KAC$~~olSQ>L)4lAfJQ#WPZq`L6a2?%Fli-%VU zdN(&k>MFUrpCyu%$kjpZ*&*rP1fR34?FX4-B;7G7l0KJ!a3oox)l86NSyL;KEsCm^ znii-&bxgmClbSA4K}lcfl3uM6?@v%Vsw~c(N0sY!1<w+1agwOj7Dyp=q0bNiiA}ci z8Loumq@2o*V5RBywgiZyi;de#MqZaGx`g*b&}&@lA|XD8Ku9^0!~#y2&wVz3V@3Ew zFz5vg1{L%A5#nU}6!WK$Jf-aZQg8^v^tAr5iiNx#g>VmZCR$@*ArGb2w9+%6^1v<T zCLKgggTmEVlZY#7_Rw)uQ??SpUl{rUB0COp&+}2RrHf!O!lW5Y#CPI}FJKd1$0K3D zD!lfS8xwWcwBtBD)&H4-(%DI@6~g8MG6d8u)qezo;j&9e^{3}lO!YVC2|zRC6UH$B zc)*yF6I#A74vcBaO#cY63&vtW?1GUO1_A6sqF~u6v6$<6pqKz~wv4_h8J(fzDbxHT z6fPCqBB59{|3Q$L{~$=`N&bQAeOd~zy$NGL9-oRt+v+zW)hwGhk`23+@kC5Ro=6v9 zys~&1x;Jv92=Sb3BW?4tbEp*)^TZ%;NetoxMZyYzK8ax^A+_!69Ed~$`JC_drliy+ z7@vtMLiS1gd28{&`zuoqzWht)j}JmlI&)HWE0>eXT+Sz}b+8u)2(zTE8&G}gG*D+T zvfJ!ZQm;wSIlIv-j1EdScI$Uc@E-){<ZdH4H=y*>{U{`u5%9#2Ub$A>0bu(i@&XbB zy(l1)yHwYeAnx!B1+fbSG)<h9L954=p)ZHRX0F7%;smGU^8bQ%!|I`Q*}NwI)iJ6@ zxg6TVfH;USprYmq{vx%OX@$gq?@Yt-jVR_JCjDwvHaM}>Mu!L-Vx1VCJ+~0-dTRF4 zv$BP2d^1HJ1wpBG2Hd#!hK}-3qjd-xhxdr=XgSW=;q;opU<EB5#>cUSF>$Ox(@{$Y zHsn~%i%Mg?p)^*mXhMzGkzQa%A`iAJX)u@V*`)E1NUl@PxN^fAiuN)xqHWbwz>o}W zE284tjF=%=5usU8vS0sVFDe}Cd16h*f0Y<T$VVwufcixI69!A!3WMdq!(ge(C+E~n zX}B(19c!3*?i6Kw>=LF?M7oKZ6CqOs5su_MMrpA;&6zk)p|WMnpbGNf=6Ny?Zn$6V zl5H-5+p&fza2>?FT5yVRQ;U!$1!ZKARvaNtnRlOrCVSVUd(7UG0CAnn_&#{R?Z=jY z_Fz!rnrJX6ah-jJ1|<>{L@$-@xg~*hZohI-`ly?uy{dZW{pp=E?VXgP^^3i+650Q2 zSc!zwxUvSP5eZ(o1H<Vg@`FqbW!CSXj#yoMAU@AvCOuN=nMaTHL_1yeIgEk27uhUl zgZ-%BL^5pK8Vyb)GoX+w)#9?>^N32S8#A)wFuF{;!he1EZ=M#mo})*$)J+cX^q4Ih za(VDM_Wl?bihNqk#UrJPEW>-IW)cfVPmLn2ru;XG_2hE0wjGD%V$BXZO{U9<JTzBh zT2P0SwkZ!#P3|trQ<Gz{CBH<N-8HF*j3gLbM3}h^2g+w9ag}t!Z-iyP?SAc<DIi9L zV+F%4wYm=w%lc;Yr<6?7Z)e&e{C7NEVy;9UhTqNFD+a-A>n4tvI3E9C@BM4>PrxP> zY4C%Ib<<eMI-H-z^s5DuFE*z10w(@L9mW(r=%P+uVZ7wEG!DyZ$5RvaXSbb(B`sCn z-g6DU>`$%9)zKw@w?Dh)G=w$rK_n>t!U;@&c3k{nes~2b-1xyBAMUrrGB(B8K!5f% zg+h7FnLt0%jW!MUH|L!(1jB=+5&kfYIF9BJ%v3`F6*!@Dgtg40a08ju^ELoFo}9+8 zsXa=Qrd`C`TPtr$JUj+n%7tF;pLiM`7VDZ-1i#N~(bGaGv&`?oK2-60(5KaQ;krZ@ z=XZ9{$?wkN`56fZi0GC1hIzTha63|T;3TdB#$?yHw<CJI@Ta5YCG!N=f<wrewa8S} z;J>p3eusxE@504ZEapRzS<8b>RQobNI;S@dcpOAI;}})W#znR#w8r*{)i)-XTzug( zvwg*4`3=j|Br_c|PeBiE_Q_zX!*H9MartC4ene4_HK%gOR-;mzoX9sOh@8l_*>{P} z=7pt%nS8Vr;Zt)Om2VYvQ1F<fe*#oeK1R7}#iLmz^xzPt-;#0H@N|Baf=6G`xP6S= zPLG{&NaA607$EU53AazdF1M5r(Glp(dp@1q9uh+UN}g>99gyK3r9xE9DaKuKSclT@ zAYYMZ-k$(-o?-Aasr=~k1eG5mRYB!jdPg<lg~5$E3}#`9<eU_-3sxewqYp-(AJ=2y zT`)`>2E?kw`X5Zg@T^8^u{cc=e#3l42oB*H@PiLFu#*NFEQ&_yCZ*b_`IMA1o?N!5 z&O2oGu+H{@rBJ%)oeT>zahU6|kV9QF{E4)Ycn$Z@GDZhh4Gm!45JN>gzndw#{m7-G zR>ztIzf$|xeQV}V_L^0Keq%-VKe%--s_BDxptAQZe_ypeRP2M*J`fPpcFMg<K|zqg zJ-J0?Pi|+ylVeb-wLW-qmTrpq8TUuqL~f(vgK**C?5O^V8A9gmw0rFgO5PcYdHzZU zvc<j4{x0YrC7DtkXic6pCP*sv+;#-f6a35d9>J>$KmvBYzrvb7u9UHVL2AoGHi&33 zV}GOEQ-cYdntEU7Z<I6k8BPkh`Y3#}NUQr#$H=v~m_r<Qkc#2M=y6bRv&UZ`>oCq# zJge&R5~K(&`7t#57e_HFiHSCkfH+xlj&NR87Lj^&YX0GU<&v50gc2YkC9ICrT+}?s z=T`cffo6<T#HkY9)G)tVU*Um<gCx;K_^LA{5AIokjz^RYMy(T86UiK*S2Bk>g~CV# z8tqCTiymP_A<#>s!u)Yy3)(piG;nl*NWg0tW6|;ikkEMPbieBpYW;LSGq{G%SZCl! z0K-Ie00YfRq*Ex+AuLI@?u<!K_PZf<;V1k3mKp+vOjLUz0SQI#N{>6&<MEDj{bW%( z`2MD@Xx&R)rO_B~`xxLG9=B=Oj_ssvw^d4@Yb6JFRPCks2Yd;mxhZ2YhsZeLVj%y^ z!u-V|;AP^cOL7cuT(28xus5f{{>Um`nVC1-7-y@q)K;79Y$RP)d#NX5GH*wbCoFgY ztK2Wg*bD<bxWnyx=zb)<X_XxKqnYFEyzBENg~Kt`WMUh;4}>ff*a=AW?`b^mN#pVI zd>u?9NnIKl$d<PvRw=0Qf`S@_iGu3v4Q*dBRSe;e1j#K45<fK2!bnv*gJT@a_cwc$ zL6lNCxQY(Sp@UoB-<4Y}zy$e?YHfR-?ZO4v&QX)b`++oGFVDzGSWx-KNqRq(XWW6d zy`AiXm*?rPJ%D)G>5unv^bal;>2Kc?6k8G$PXCVe)W?wi<%)D4O0fLUWGe-|#-9wo zr|)qMdciL`wx*BjO{AEYe4$YM4D}=yEn@96R6j%UGgdxh4!woF5cOivYbgUg?jvpO zDLYAz6r3amtXf-pW0i<)eJT?nm4H}gtJYfj$Y2d-9vi2Bp8=Hts17Ct${pY4Go@Iw z>a2F^z>Zl_i2xKuXC<auYiA9uv2j*rqC9vD_5g2e4b$e0{=_(Ms6RbaP?G1S4!2u} zmLv!{3C8jnfLJB)*)QNIv~YfE;oH^%GyL+xK{?na_H+f|_N}dZu8v{KX%EJ6FRCU0 z5uHPdiy7f05f`McAGYmNhpKCIL*Rk!1%Tah1uJ1+ml}A`U}yRt(Kzn&j7XV_(xX4M zzPMZ-X2~+<=#Q}(UnPeKyQblIu;~mByKVF_j?-O}5!iv?Tdug#HYyJiH<*J7zcC(e zP}}f{w%tf5xg>$P=6Q1GY&D$vC=is%>kMoWCE!s(38b4I<9aw3EkPq~U+ryis$&b( z_8UC5!qe`!jl*ec(bgjvhPJu53zi)VEX!*)>MQv60O>1Bzr%lxW8UdE;+Wgc&^~6^ zTs#pgjoC%2G!|e*tk`q*>5;26VdN?DS8(jeUje(c#Cc8JzVzt@rhi*Pv&T}bzMvCW z6WQgF0RoqpgT(Ecu`7Zpc$nCQh~>PsMh2F<5^UM%!{dz&sFI;s7e=G~keY5WKxkD6 z0r(d5nFT;?J3<(aTN>cMFp9UQQM|*pu5(!*6hfsT`h}5-pdn6wkTh9ZqmNB~@<d<G zwb-7&*pa{3iHkVw_B<b+v}cvm5y-142;bW(334(A7kNT69=o|vX(!;P9Z<KON+eI@ zqF`@KNci@kB&J+`em&%q-V;1eB)RaS-9F=U0lyn@gJ_!wJhRzv><Bmb3ZK}DSHSJr z=)@i(MJ1i^aDh%YBoNm=O(5DFZBzmfF*KILkOY_vv@M6BB>_X*XM~|mse8u|cke1{ zAAPAR47E!b+7=KJFtk0~2pAfh9fodBAUcK^Z6(TGksGFQz0K$!xARVfYY07`-yW`; zyhizKkS?d1Ibq;!vK&mi&O}MtcXI-xZQ9qSo^*gCs;VcMY&6V85jM0vynIJ-S;|;c zRg|%)!zg1hR9==b3(~?vsgSWohA14=O>uWM_Xlx8>J~wIyRm_a+>e0a9ZQzzZQ4n^ zoDeB>fk5tb@f)K}$4KmPh>tuMDqY|?S^;XOq8s%7gvUD?VtAWtf<`&Rt|=v}@>6B9 zVqnf_5g^uJ=rY8Y;%BA=%wUL&@>z|PIT_+dN<%b@+&M%g0CX850b<_g<7R1>ba)7i zwMzd7EtD+n9Sp59;5t=oue`B1Sg<5hw<kooskNEhbWH7LTG61U31^k5-N^g25R;f% zg^-mCz~*LSYwt?Ka9hjO;>m4o-6P4j^<YLdS?LDMf9BU}VYwge+6<;t;?6X3tG4jF zR!xSv%PlK$x0riR=}pP;Tk1X&%P^p#wqis`1SP;r;iGtMl;!>uSLZFhPKAZVK4}N? z1D;>b=hZe-d)NmeDBuiYoXkso5Oi+R1>y`RUE+l^+HnM9rWZVI#I-VXHXz7qubHIs zm8`<@T;~Qz>SS%|#1lG<@ErRjuZ@&mOH<-GBcM4QzsUrQBX}$c7(1C60gJCC0)DCq z37q%1#xxo$CjW!X|9Op{uoP5L$cec=N(xuKcNTj`>CC1+L;9$KCQAs!q@QOOstDvN zW}?VbIUq73Cl4Iywc(GZO4-?n0g)XD18c&lDGQ??ESU*e+R>A>eU*rJTXB_$KTaUM zPq`;A#j|!JCwh2bdr%*m+^{wMo}~Dkc7)6qi`Z1B(`xF%wi@95t>}p=r=7|{9VJlL zr*cs3x;YzI|K)NBH5bx*%JraP=N@NALsWg3B1heaFA3a>9NhBi(u*7f*Okz3O5FJ* zZLAmSY%|aJM70dmYz;oOds>z#)Y01|U3)uHNSa{47RUl}a}}X@7X@`wMX2TGvT&|S z#g8uFi|C<UtOymc*WOp&A2uGNX}9?5CXlY#$W@4XKH%x0hnOluDe0`k)|fkxFn?8I zlt(SF!-O}D-3LXUuxS*WGv0%VWRpw@QN9v-w3*dWwbOWOSZ->#^=95$+;Qtv-Wuw- zwaR!en#3YMU!B1Gm4V67qrhbMKuQybQ2ZPIk@!qYTFl7edCw(FNO^1O?IT74p1sLT z6s9CEtNoi50g2gKjuDhB2S`f|OZ5IB9%I6i(+)EmI{U0N%~K0fV@NTPg5aKV4|$G( zt=!vh;x4yJqjBS}Ff9_ZaYcsjS>&>9+=z%==i1lX(~w*yEuYRBTmqs}Kz(gN*awga zBiH%sWdV%=Q?LfkfMSrB1-uk8weTJzSGhT44DT6@F($b$EZ**93*o)(;f9tIfHKd) zNMOAqjp`T17KaV0du8e2b<11wQz}A-)C?g`Oa*HGS88=bYSja)F;CAa!Vw-kTk-$I zj<5?K0+m_LSL*!6)VYhlMOt0t#pzbRJE{a{Kjz#ltF0Qg(j82%Lo7C9RPwp_jxEw2 zZtX&ki2gv2i2gv268hhrVD)gTddWQ8O4CP9$8t8<iweO^02lDdCock6i-|=DL$T2L z2U63{uMEQSLFphQUG!Rmx}lv5wo#+?d71{>%u{OhBc)auto2qGDJd)0YSR+2n3vX4 zNnRu}x(s$ib|HppBv>BG6jP!svg^M_^zQT<5xo>yz8^D;7+oPLPtzuaP1)Ig{bs*D z$FEQIYeh?gtf+Hv`tmp~O<aA9O`o@>A;$o*HaOd^_Anu#pah|zpoBiiw_&j0%NTe~ zTzqFjv`<?tS!H?7R=QFI_vV$RAY)HUauZT1N6kW&5=x2P3~ncITv~~vap~AtI4i=U z>Q;G_Iba|RUP)QhHWvjavB5>n9<VK|AAw~9ckqX11PH%}a5bJ1n`6PB0RdCv+GuUN zrtlsYbs~yv#)rEybwsLhlx`&aZB6*|`7*<@5FY?dD<ApLW7AYfjQPR$tO#}WDh`Bb z6;s3d(&nz)DJskakt~^Yfo$euU0_yDS&{GC?3Z%Chws=Xa_G=4qynfhLCh!n<ijKX z5YvHIINYMXyEl#0gI%^g2t1Zkwu-I=2huePTApyNf}L5gt*!tBAvgPU8TFSq0-iH6 zgHfxhwr#+flTmLgjoNY@J4fvmPt9$fV$_0=5e*~bZ<2yqXlBARd8dM+XBk$ozDBy) zo}gV<P!A*mxPr1Iju|MZg;5{)_PVbUz!>-&bp^$h8&^<qt)i%)xH5t&4w9Crptib# z8ifhZ>mif@tyWO!K%J=+)HevJ#dT(>puV2)*AdX0OhMH>ptrg=mm<+vVSkv=_tr3* z=e*K05U}OE6vI2OFySU<TJ135w%vl@eWo2i6r?8^;Vk)|deYTYaCq85EeD5ZB-{uN zsGrc4^z`a>1jrpw&5J?skzg!c39bv*()pNlglmXA8DunE!=O@#3s8rZ7bY*2S6<d6 zFns03^0LOHzI|>wo0XUKTy+ju80AF}JtbHKFIxE+VE|kBn6JFFE6h=CuvH)Y#U9{+ z1#=uy0uMb`Jk+D38M*h%&s*szA-QOO%YwlnfSv}Ec&=iP*SZ4B9Y~hT?eQA(pa_f* zd>NX%=<3QSAy_i6#Vug)HBkxO_7bo<ARk`Om*!E+!GaCgUJ?|XMZCn7$`D>0qLWOY zXa)WOHQIIj3ql}8k`tNZ@DK1kQrEg>pceTqkOVxJS&xZzN7`{<AG2t(xwqg)&HOPt zZD<n|eG46aKzLWEw%4<9i=G(5537bXXuE#|?(6&mJlJfUN_RtEKLGAQd%fJj%l*6B zNp%1m5p96829!z|28qF)f>B{C>p7^jE8+x0(Q&qU6f=tf9sYt9;ePI#!=_hmYT6HQ z@Z1FLb(N<@Yy@tl1R8(Z3QWKfUD>f)_bj+#mnA&8rLgtiC59(C`EE6|Sh>{hi}V1K zK%isa+#cqmClRz}zb$pkC!C^Q!TJP+Z;s&FD!0*)DBL!Se@_x|m`bhmUT)_BNOFq? zRQHgsmEFjBXkqxSm`?JaTraKg%WC9YmB4c3nD>@Pjw1vR#!V2~N{fDlhBQk*QCQ)q za)=?k?YswxYXd6r@>>%ajvcO;=C>Q2XxojL1>*~+nAT|?a3Z9$f!kOwof0=ECfsyP zfXZAmnjmt-u>Ck?@5VI^fnvL;!!%O-yPdPfz`#3rVTu@vsKVhF-)j#J_?%i|foX|O zmTM0Ba7cM8{FP98eHwtHl=6g>U(F%-ZH2jQ(qOnmZ4TZo3n=jlum3nGfIbCp_Xf7P ztR}%&$(J@3Yf9XhdiUu+-7`K2<<uOW578M~5N|BPbbo<K{xI4$7Yu`wv|(T_d{Geq z8~V<1=M;hCKw-TKMR0S1$w}I=6f2TCuLHEi>jcyF)yYHic?H%RY!OnXutxJr6@?#* zy#4Q~+x)KVsN1`|_TKc`S;dXnkIaMdo%+OMbIhv$4^w+kjqaLlu}+7Yp(Ky?-*`<P zuD@WAT~=f-EtpoOSGAVM)svNB^E7r$!d5g|TxvD#J6?mb_OnWsS4jYtD`iHB(v@O6 z21&zdH%<72m|hO|bnf>Zz#~+hv}@>&`IA9q20iHLUYTPdQ=mz7&ThwX`99w`rR6?f z1w5cmWo5+xFKHYGK0q@|p@Fj1?+Hor=qr0luA`opG{Cp1qw`Zo6Z>eXU@uPY!Fy)J zkB2Gj#TcaVp4&LgxA+b*gAoPdWG$YA-!U1^+UuC4sfWBc9s;u}BL_!>hfcE=Fej<m zmUn-QvErHoCWPR<0&JHj*xs>Fu-Ob3G6%$4hMj|_>SXM>xi)K_6`+&vLGK4szHF)c zB28RtMLs+7cml<Y(|+R(ex+T>MyCbewI%p0tGxm~?sNlAr(`*Q#LuFr;7Y5Pb>Hrg zzQ?jG0%Q{?hIB$axlK+>qderM!wb%pKTr-h#@Izl*B7Le(Qr(tB&J|kN?0(AE*-&# z05Y>3=iD7w1zcIm>p!C%o4?R<>6wH~B@a)TI}s^_OI#++*EBbWzNV6mB{+QLq~LPO z)r3FYgNPR#PIJpqKpdVY)QIXW;NO1yH=t$K6t&Ke#im?n))~DGs~dNXo}Ry0oxfO< zE`X#8)ijUAS>Tw_;|J7IQ@!r(AA&(CBu=XU(?~0iNG>Z49D#pOcYvCr|ESut@DECR z9!~t{J$~~Fv@kXm=GT=l&tQ05)M@~WHUXfD7$OA-?s933XW<rO#c2Xy_YcK=-_*Z6 zP=jxw(w>MC{C^&`VRfi*0vPDPIvAKaH?nyOGO{YUwh!V>s*CJDYr20h?klcp_v_jB z(|zr#xBHFkd+EOB0d~J9-;S5~Wc$7Oc2vg6p6|=PmD-W%SXMiNUeB`HVPGT7>-hCq zD09F9^w{2p;|?R779#~cRv3vmOCu(d+RQ$={*a{Iv!Vw!n&?v%8RZHJeFzVYss<gM zvR=RyKqPpFcS6a6L`696n-q@gN^r0Z*%**UD>>XG!H6oxm*8OM30n>dfHQ2-8WiDp z>!p+7<DDfqI%1~8#}dHdLDLc(=o#`>!Usd9d8lz&0XA<2I$PFZ2nhwvCv6d?QdAX` zQrTjv3YFm{(x@sZ#`=Y-f})L!YE{uG+kn$Dw~_~NQ^JWmhuqU$FFJ?C*KSU)xpNqU zfdZ^Uji=r=r`No<lq2-3VOX`@<~X3!Sh1^ru!VnC!^b?;ba0ay!?-spY>h%l2z#UO z={R9T`9X(03&-nr9yIcz7rp4H7xP%%>}Vj}qn2Zha@6wbf(3mU9&e5H1Ph8ilgP6U z!o+yXF{I+AY&$|}agT>x4A3?0Nk1||jwjn_fDR>CoYTZDxhI;mHMxw&qs1YZ_b5|2 z7z~m;7!sK6$U(_w`@HDG#Q@3Lb{wA1i!uSf#2^xQ%iY~2s7vj;Al%7VVUQXQ(5JP? z3}tZ@aQseaS=${#t%i(rJ|sX9Gn?!*d2YU65rkngmga;X^vbt)6jlhgs6`9FbKe3c zbBH-H&W?Wx3Us^8zoE2{{|;=&{iH;FydWXvBnSl;;fiF1YNF?=(~UP}m-t<3EZSC` zv=E4mbPkBG7CiaNi;NKhe|SU6eA<*<oNI_7uOs;|*BYqul}08Mj`K({np7qd@rSK} z(2{fOITs-h@$m8RScr#j3paxDo3I;6L#$7{@MBBJu;it6&~#u=ZWJ@-rMe`)iaSQ^ zR}vhY>=&qL$LSv<Hq2}i*oCB)D^qVCC1Cw6jt^L0BFn^KD+?;(*F7!%@LWT#?Y^+B zEr1CE2CIyQ48hUm8w0jA24h6K#O5!$lC8yPj+-aZio-Ad=KhJu8$0tCZR}i#zl?Aj zLlA>?yl}*h^;9^J6*R=sXrK*+7dVKtf&lZ{NhKjBm=v}g&BOWvM^#>5czZ(h>9(_D zsm40yW0hpiW_^M9@v&kfJTHPiB7S1PtBfBD+dzj_;HR+d0Xz>=d_U8ztm+rb_uH0E z;0#Jo+aQSkjiQ<IG2)I7$@>i!E}$IK#Xw0g%^jFy!^seV9;IdhRNL_a;hxZoqj-^Q zE(C>4LG{9Ya4rB50TjnD{-lGGblsT9;AbbY_uz?{vVy)u`&dtc(2MTAG``)v)%)Rq zVZ>5!8=>H^Cc$CRljJN5t#SN>tUp~0u>1>tqTchOmu7Ne$tvl+a8}?LTHxaa9(xyV z2P4NC6qcUU-+Dg2+Z2qu9`S^t=HLf56TB#Y*)Zw!FjZpkE;o3&Y{nK8jpGIgjs!us zwAoX!xj+gHIFMpDP)^z-x#%6_$cG9;C>C)XHqH?jrHLmm@VB2q)itfU{if{ayg;g= zevzAKZa;7fSxV^SMF`JQqcnGOphkIN0nEf0A4rU`!_+PpsjTz>5D@m~vKX6Ymua(= z7;`h)#ADI32$G!E-kGX3yWOMZ(D;WEu<kFEcaP?Mgy1_MVFR;BoqWi(tc;9IOXu@w zGBe3X0T4S|k>;&7He;2?MjfMS6XZg8Huf~r(1dB=`V@CtJ%w|_vC92s->BjDm@Fip z44m@?su5EsGg41Fy~4t!^IJOmgz-|c@p`BQDyD6ZfnvHlk<=Aa+#^Y0jC3J=*1KZb zR;8FQ&H4h@Wf~SJHw87H3hE`m5~tt;GV98AVWhTSmpbHt6K=1C8*1O)OWdluOcZ45 z*dWN%u|beaer{<Ya6Apt`PQn<RQS1aWSocPishM;b4hAp^0SvCCO?}=*+z)5RK$T` znL{-L@3(tS$2dU?ieqM@_<U&;HjAEO6k4~S4RI(q!QgsH-rR9KxrMuI<lGqf1B|7} z-xm@j9V<*#xFXKP7+@f?WbkO5f#9Aq3xrc_N=-6gQu}5d28I^sCmFD?{L`j23s~$h zV8M#0g<yGPID+LthbTkg_63F`^tya#cV1{y^n6$IH?W^UzjzlfY%LxQ@FHk-O@DUR zLY)~DHdHX7ZXm_<Um;r{7!D;fzopzGTaRK7lsZdjk`WD%j5@&G-4Pi5xwL`7DV3$O z)IYa$=ItgE_O-+f-!~Ix@p!jI!GwLCgI2J@3JuY`YYsuX$P0;H@WH#vUf?IG6{hTf z7LSLapaF`iNd9inMJ0bXP7XL9@QX@+*H#rSScv$`;GD%@5H~rb=24S=JMDS_7GmNO z!rpuD?VGD~94j#B;g9i(q^;3H_=EPoH6D_-AkhpXo0Y&G3e^Se0htwGb}v>&kb4AR z+_?%!<4#7M2(u>Y_3)h<5x>Qh>#2478SMz8>vr=VTq{am+z)}`i!lu7omg}K7oni! zIA&IK2KtN_?GmXykkfvZYsM;PpPT`hDXyjmow|cllzCdKq&u#FcAQec4~BMAo3vS0 z4??-*eIa328t&~7aY#Q+CaV`C`mL$TZ{a%=go&du42N@$3B3@!UyX6Z6@&&EoMgz? zw5KQ+CPca?z+OA2C=)(K+2M&&NOXkM2E{H#AEzi|AiPge=3xlQ<Z}f97GINZo_P&h ztb<Dinmx<_;%cRB$q!6H1{p}<_BbLkM|cL_e8s~5`ZOkI4%?4E1#@VM#W6bCxxPvW zb^z_{osJmUCvP&pH0jAlS0+H*VzQ<i7~K&GmkNYqbpZ;KA(EXN?|=&Am#8G|0*q;F zz_?maM(cPHJR_$4d3C={*|o-A#@aL|v@}q&n=)s-G!0`%nub|N%WWDK*iF_nu$x#U zu$xcAVkw-WWQQ3t2p5Uy(=Zyl;xsG-+cgafvq??EEb<P^4Xi}g&@?PM1^i|D)39q2 zeS8{bzSWqaJ=m}z@TOKNVzo+}HUtYKd$z?%C4yE-NQ?5o)r(XtLsCnxCfbgUK&4!q zuok<XmMHN3C@;)bLoZi^RM3g(u_nT25HChSxDMY-Hx&!56glQsSn5q^mXr%zM4cSG zfvNTJI}#>c<T`R~q^m0QvD8RT<fQ2UK@d54s|At!(K{#gQa2<>T;>o920G+CLe|E@ zVC7m$7+uK_-KN(322ma<LzD-rUXAi>%tP&#AJ`suIFrwGLxSxRD`}9{W4^Z^{DH}; zCNx(3`u^ZuoKdggQ^!ZOe0zIY%Xh%4`08jc*74=hUVHr(KlC?rbc3DUfJ$~OWp@BS zIu5?s92y!PUd)3WbdCdebcb^smT6b_^LRS^@*`j9OEy@uIR*#BgO={N43w8`t}pm4 zEAez|B-8|EsDYU=P~r;LKSI~^SO^7}U?+C`^scerv<r?gpVP30z?eTX8gQz1HukHn z$_A3<>uoK>?PKtE2hUK1@=WEf%}z^*OssHTI|Az)zS&er1Ty^sB}u=8^KWe}zz#DQ z*KGX9_t@Hq5+;~(L1zK`)L~nDTC}q(;zN@cuP{+aKwXl6+G4pKD*{k38^bvuu%(HZ zVQsdTpksz`SSkM~o+O}Oo~o-7&ZtUXI9r@ulfZMFv8l;$hJ~oY62!Hs4PSydaxhf% zMc^ZR<pxFWTpW>wjx&IwX_K;q7EdU=-rFy4yj>n(Eu#{c)CPH9HvuzR>18V5HY5&V zw0%{MQ5)5?JYp={SObRcMYu=|4erz$NuU8^wm62w_*TJXOvU?j!~>T;X2rK3NceLa z*eVK41pNmodgEKTHg>24l)N~X{k4J5K@13cy&z1=y*RxNF!QHKCuH89I=gMZ#kHaO z?uS<s3nU;TfII-gwRe$LZZ2bq#5+^tW7hbyauni73|x)EMqmNDLn&yz_Wcljhg}uZ zYbV>m)F>8S@TDlIpt6Y$L{i9$k#%X8L?vyDWt4qZWcpkhoRi4{_LGqbqbLZ={izif zmIFD|xbIx-4@4!3ZSyzE?7vu8F$xW%yr|NW6a`_Nx{>WeMfPQK@Q|*b#Ot5)x;fbT z1^?xa)L9|pfi#R;_Z1u2=GHtimKguaBXj<xTL)!saf_Unx~&EsAG`>yy#^0g>#jvU z`%3D4wXMb3RF#1)w$8O#s04+ZDmewn*;kVCGhzX0R>DHNp6w$XKFGVCWQCi5w<@dC zyZat*dyW;KB|5*&d;1Tze#w6s@g;|6`^LvT#R~WKQ-|N-bDm$dqnPsjP;Ok7u*{hw zCpQ#APeT0>TX<6F>B(wUy>ntnp`vs8V?LzxE7NLqXf-Lc|K<-02ea7%b3R<^pIN)1 z|Di_f2Yj0|Ki*RUs{zH-02;5I{9Rd4d?eQPqu$Ufu1C6A@SmjqovUoez~jSJKTW+m zSJ~8M`dl>)9R<#_3K5b&ZRIq@M!x+pCOqKV<GgrPm5$?M1ZXlnIK5}Gi3=>TI;omR z69%rba-bG~3@T<rwm0)a8XK~EZaS2-Y>2MhnzFE2&&GD_Q!*5(@%HJ_J#$ap60U-z zqm!(C_d$t8vi8THp{vx!n$*S*%$rKy{%w20+kY%7G{IAE)yz%*f9!n;oLp6vcXjoW z?j%4^iBV9i14wYeATYFok}5YobujKxM<?zXM;&HoW>AZSr9r@mAOQp$WoeaYqX=<O zX-CvnQR7N<P}>>MC_2VvoXj^keE<Jh?z#0|Rd-jXgU<ZE$`88UtM~3b_w4uFbI;X1 zbpyzul3e1Ya{eyP+Ym1uXRArAr3c}|3e)t<kw|4}R1g~TvfG@zF<$VpAC9N%*~uH9 zSH@sOi|Mh4QqsA<GWWfi?8DQk<OjOmBJaG5^-eW~Vt{3FkO@`{LGo#Hq;*?9uA8oi zO-yYYXHem-%>=JmLS4Pg#nc@Z_JQ`A=!vcuwxblwvYa2SnMK4VycsL8Y_>Pb7Ez6m zv#V-oI?;BDmXt{vhvL$KZ<ZNEi?O|+W7CB*J|0Nr&&(yu(Ve~N3p+Ng6?GNr#{Qzv znN4bzX0$2=#o^&qVM9tYDb5NkzqeUL?WHBuaw7^U410pKojPNz5)z#c8@xMO|LSt_ z0aBckek<(0&aO0xiF*^oLXmGZM%T2`1>i_M0FVbQ=spn!!d%6*Ka)WH2rhXP{fK-l z;!ET_?Ri`!roJXdW7=PrHVH||r)Uq-yo6~y`Zb%EQj3%KziI|gsvQPgfM@rl-WR=F z`5HYUql;0)nVXeZob_>iV<4NiwBrJ53j|=XjTah#4#lzH2=0w3y3scT+@>`6kZ|=P zDXPPjzZ7_bXr=jP1mQxVeJoltPS%A(Q)r83fm&3qtP7(;h^$>q(ht%!WO3+WwA;fV zGi{4G2Rxq$cy3k6Qafx)6&foozle8j{E@utJ>!W_M(-vG8tyZ%nns9w9BfO_?8G+) zu{}ZUL`RqJrk22fcXw<AO!I>){9s1UAR0nw`Dv%%0bi1<ltWwB6^t%5PknoYwx(MY zFS(J%)b<+eDC*iXo2fnHNa_zHA*!yeN=+``d9d9jlw2VXh1<jHY5hGo;;qrTacHZS zfW;JZ&(l2ZsG6NU4LM5~&F#{CZj7#J&10Dp!-EI+pfeamiFeU?&>IE~p>s&h8Auh) zAse%-8NEGVwg5IeNc(?<i$^lewpzdYTG13;1~`Y4{0rA%8~@@Z&MWfuqUo~^59F23 z%y~xuVX<o!?VY05vs#I}?8c;q6)p7+y>0UwO)dg?C}cD)z%%7o1O_T*g9|@x3{+wO zH&AJ*#|>181ulw_n5x$G02fO#D1(PQ!A{7SY7QBbP5VHMlxcbfQWC9+v`{moQvq~M zk7fNOLw6HH<9i8oSvSIs66hBP=x6ABT{Vg&HfV^;@}tR<$W%nzG=EfSDV-QmugFn= zDM4xoiKfv3%=&rZ>Q-_-d}=|;B}OLYT;sN<oD9m5^*cx2C4sy%6?vMh(HVJLa^yKC z=Yl-PmmtqE*%k6slYil%(BunU*`&Ir+kdbQFR0)X8()~lkxoh6&-Q0ydv<mV_Q8i7 zdg#OPIgFoG_~1NjI~wT7sEi8{Gt082&0d#@f@OIE9<Oi7_PQ{o2@`#BaX1yT?GKZ< zo%XuuMeKFaYZHkb@?_fUvRQ;ipD6Bik?j*?cv%T_5|gc6aHtPlsHxVS^`QsS0$iA) zGn;96rq*@IU{xlurq)Z23KvjQR|MDGGSmaGy)KhDOgP``GR21kP^{R@w%0|<(X#!~ z!d{nc)n(`I!zl{NkW;#~h>?EZhUX<uVbro`2?}SRqD!DjQB4d$B+XCMrwbBN<|$&? zCaLW0z#DmydwWP{sAg7tz%m2k+*PT~a+GLk$xjYzJ4*$Wivsm#%#K>pknE5uZGA5? zY9xNi%nz@j3a^`0;IK%+6cJWDC4!nD4MzruqxYO4@QVFFj&SY}jwoe?UK(H-N3fgO z4Lwqq`%!^T7d1c?%m<O^B1WI}VTu1y{ss93UT{DLZR4{uo}T`$0LpNsYY`?!Sa}of z)Jr+Pi2Y2;PF%7GrYBID0u)RQoQ|sPmga7pM-ogVTYeHq<d0)6N)#*4@uOII;si~s zD^!|S&#r*blrq_`2*`h<X@Kkwko2M)vqEjI(jp;YMFme3ya}E_JSHh+;_5-FpdpR~ zyu;YKi5zm7r7)BvODmMZF=U-dV1(S^;xi<H7-WtjE2~f5IUMhBlZ0d$BZ;fF<au;F zm<)jx7sbjg#0o~pV!#~T=4x$8qb9`+m>|KU)@8#5FBr-i5Z9Gg62C$+2P}CKF~5*J z8oxleF&<lC7a&kg_9PDqJSz!~6N7|tVvsOS403mizAJI}wLuQ!ZZ@2_TWDZt7ZMn4 zjATS9GbGg29<zuCa`=!}3q4e236~=)w+LMp0Zo$Ie*{)8>J024o;83vDg25Rj)6um zs~kx}^rPh#M+nV6K}6>xb$Kn0)Y-JX9A8%&sRq4Fv&%?rbTX<5(bb_(0D;KuqShSf z%g@UlbOj;I$p@oTlT!_c{e+s;chl^`MT&-~$jats-Hv09A`#jmh&dMA?okjkEbyIi zzoszadcv<UR$lAI$ZSRKLjm${RY0{e=~!`Pd?FsSIUyfRWpRK+FtLfRT5!7%p&g4Y zd^}T4f_%356Ym*H5LJPm7G{HnYSCEZeN03HPWpxiVRnY(95+3V$bD^rpsl+Ia9E&^ zK^x)JnHnb-0>9#4K<u|vQHTty?TZn`S!~N*|HOa@!+(Q?C8t|TD8ka#pagOj*QFjW zr{yHsIGG$I-OaxQ&Phtq&a)a-5Q4*QjV^5NtT9Hg0yzf)h#0u&KJbDGDg;(&Fw?LV zL(DNBsx21fC=1Ly!+ywC+rGqMv-C_Klf)Kll9=Qr=pvbOD2L!F`IK4bz}dCa7h-Ux zomz@)34u*J35S{d%Ah$&L$1&c5QruLRCFk7g)FgI_A=ZSkeDFr0l9NQAyMf%5?V!2 z4>t_n0QXZk;<gi;srspaJO>2YT(46}tFHvuhCmGvn9`dSfdoAt;@lCMY!E4~X{W)o zUk$Jfo1E<n%jJBJ&d2<k&ER_6uc_*Ay+v^pO@A$#zI8dB;(g{CU1W1D8Wz{;N<$%8 z_Y+PM>weO&VRNYOsJ*j*h(s0qktQPw4!%SaR1gC8uLtb5MWQ8=AnB#_N0_H$0ZLCP z753+DljK=!%P%JLiz!@C*Hj4cc3v1DTiR{5#WQR-y})+UFxYOAXSSQVXS;TR$zeH! zq;u)X12LE0cfmF_RM&L#4>RajRWN^MXf;JvvEIoKQWKGz=-G+B6$0y?Qa(agJ(-Kh z`7{og;VfDb5>Z3qF+64$A0#Cnb=1*EAAJn>tlNBgbDR0}4TbqM^S<hvbv{iB`811^ z=dOukG0$R9a{%9u!L!_PSFk&$H&df#nswj&78>3CbsmCzMLPKO5NHR%Ky(gJMgrXo zqG{PXPl-?`Zvt6`lGylIlhhVbah2|3;@7jQ__G64(@^XnIiRAUR;w)&9yfIl)sB)E z>QMf(Z_Hq{p6_mJmBQ`faNG8*ujUtD%P)4wg^2~5BKxAK4<{BY`z4yOAMnD1It*i& zYRLRxU)<J&G?yxxJjVfX;$lBLKF%xQ<A@SI90we0;6^4uoZCBId=uIv#==MW7e0YH zRgJ09!%-NMQS(PGX<%D|?oxrKrk6{e3ja#3`-X?$XDtTnEs;p<;R04$UrPw(p*b;k z+hu`FW&@a|i6aNIA``iG9oeh_n3gHlcJL|p*U8iiXvMsFkUrQ__+U%T2diNqoVpDa zMB(zlr-=fN+ZYlTY^h|lGaG@*4N(<w^qLqx2fW#7Mq2uemb6rFEVTA}q6hQ9*ksBw z#cl`8w@r#hTNa0vV*Gt(WJq0npGskji)%~8BjXW?oK!9m=H%p+$q*F~h-=MATj*ur zWNEFB30senTQ*ox{T!I@O)N60GjjX6)CXe7CbY<Ez>wRx6(E0NQbmQKfI~KDFe3*c zEgk~2%N}X4aTX6rehvUFErV<gaLk=x#@zg{E7UR&v2-uo+Z1QbSx{90k6h8zx+GY` zOY3*giQ_bg93{h2b`{Q&Va?82x@xKpb8y*>F-G%ibhZTorMYA1f<y|y&k=2LWkj0e zy6M-XJFZhPb0{cYr>q(CYp4$A@7LTEu$y1QOpUZT#<$JLp6?Y)WVH^-7K-Oj5u;2g zEa+U{E-si(?3@qF<#%?Sdvm~N?92?rgu{+DNHNQe-Yq&87}tHhBuu|%YGb*yFaSC2 zq`ZS|ej~WGG=h#h*m8lyT1$fbyKY6t>C?IVi|gkwm0Z8%?PabXT$i%9rvf1%GpJAK zZ;gXeuNUMz*R;iH!&HpY<ebw%Os;yk%Tlb0TN5O%i|D$-MNA4iA-q7bFqQ1k;xuIv z;iZDr_)_#_Rs++$MUXVEKcJrbso40&%N2+p461&W={&PJWIiu@|1cJ@Dj0_h*^x>i z%;)qOrzSnuUh#e{;4)6t4Pv?CH7y_!#qbocl4&dAK#3S$*rXv1LTJIemZ=1pAW@f0 zkS<E|io`2q0`q!iU;>G7;Cygr0@=D%U;?c`rn4?=n1^_WBD_6Nkj)*r)=egWiJ8CN z_idKWG>n^&Y1G<M<7-kUOcmDei#+qa0L*v>&Y1GdKH!;sP95IYcxJ!azREKaQjwV) z@it9yz|h5RVAv&|@l(~Qv~!+O6m^OL{A<8vJflmjZFpv1YOb7Trh{it_JDR{ct1UW ztH;jzxOfONxZXL=;4tGlpn?zQT&?*m5F48!O}0s9*;be$F+HR{8ObbD#a!==&Gd@V zg0GNC(#j;0Nm4TRc8!t;mz@y}oTKZ~8hL`~nz<$0GixI`dQ@t-x1P5^q3kgfXqT>S z^^;Gn!JBFMQS+x<JCM5iJ-|6Tz?syIfSSDx+m`h+fkv$(S@TJqLKV)?8QxiA(;l>! z<}Eb+%4Gq^IRVEeg+oi(dtOIMC-EEWWcd;1u!7dm(RxXyMwT~%A&uL1Ji_|r&ke9~ zjmYDig3nI)(uKbaC|C1=>>9OmZImdpo4&6~Gg=UwO1qC{M&@dq@Tit{38FT33m3Q- zvbHXseC%NbRdilpqeUB=1c~2ZQYKTP)k-ZfOaP2jUR^w6h*L~%ycGk9*(X6854zTT z73;*-HD4Yo<QeNH+LAAFfzd5%pE3|CXku%%8Yd(9`DcU$Kg5A-_?>fWyq*p}lVh=Y z%`gO)do>fspleJTa+H;E7dqRbW<sw5<}L`#+37-zbRiZ2kl`tT{7U6?QW>PZombKJ zwuYAO6UFrL?iEvdWxk3jHSqhPm=ZX@W5tx<SOCTJ?f>zLDPiOPD<;+2b5=|Vb9+lM z-L$w1kEyyQ{=s{CPz4{&_>xUJQLhKZ$=!o$cdXiEK~Zs~w4RPtV*sEq1KQY3ub86Z zD||3{P~7I8Ha)=1uEInf#(}qGa~|y*ELdZ@xzg+bOl_J+gsBbp;>_sOv`Ncirg>O& za~jQ!4=UJ{v*Kmj-^Cndp?l^dtz+&JjUpV8qU~h{G!{6Qy*1CKGB1P&-(bZ~UrzUc z4Y(KBaW95eu2vyV&cZzEFOFLrS<K-?TmbiN?3o(AZA`S9s@$`<g16`fAzjG=^lNFA z#eX0)n3`zb3NvGMIt!;}t=M<*MTsdb1qr~DE%g(b^_O&;eQj39Q-uZBw!D_szsCG` zI*Mo-3BCm?oF7#9zNQb*nUT2(s307Y&*t71j~kom<HP}B4m7L-rtKg}e)ZHr&;?ga z9CQzl`<Bu=s^ERD9-cF5FysXRo+(mYKb?z*w@w_q5|eS>p;c7OccPPhB9X5HF(zNr z*}sDuEGd2N-<@dw9Xb@ptLWb8{Wv_5`|6k`h3t$sH?|=sNBlhcbv)%jr?_ZnjAG^} zX{$a#qyqIX4t%wo8aW2PPFjZuff+<9rq7$Im|mb@_?)MmV5mp;&P7n1gL9l}hT8OR zP@l(ExR-)+Pdz}eA2mr>lmuzBtbK;EBun?f$Cv-4GKsAH0cxF|md>lZwV+rT*+iuD zPgnLF0^TE8G3CLx;Hizx^v*>pAzDil3eohGARC#L)GC@oQ}gn&+c}S-5Mp8=QGc=% z!=qAo8#l#2rwFi?CbiS5;a<PZbt))qtPoVig@<zOZH&B`4=?~j{f7Qh7qSCT<A_t7 zpD|x4J)y#kV&C347p0jD!akRgqwp6eZp+^q5)zpViP#xRq#cAOp&gkA!w3175ArXj zH{7kRgZ3O^R$=DO4ug$74}yn>da&3-uH`{7)P8JWRorIQ9%zcu4%V4a##9!L7Viz# zh7iF^ElMy>n$b-M?MIvXM3+2*PbWZmVw%P)Ras^!cq)~Ez6RR)tP}G>=lE1%;)dXi zbCol6{om$|GM|Jgz%Y$9Obx*x*reFiGq+8ot|SXVr)1#FHfE;~9B6DVS0cJGKr2-u z`t@KJ4h^L6K=?5DKoYaubxB;u`9&Z~2T7YMNSXwJnh^vVEeC<pD=l-aQ7JgUi8S09 zen+qbOlRcCHC+hpna$MJz57X8iEbs-={;94R9Mp#zjy7{l`5f>I@z_Pb~iad+#JIT z6tojbrqduBm;@q~MLv_@lCX#JPvhz{Jaj^zDi0=u72GP9V;IFS*Lg9l|9G$rOXW<5 zMHHpQJJCg4)J^bkkB0Gf9X_XOy!xPgsaF&~@Dog_@wGK<uhw!4mak2?tTFb(g9~c& z?E$K}cWR0;{;Y?SLB?wvZ{eXz>Z*yc)USw(l&mo|C9H9)%ZH#9G&WAD43AH4r4~=L z#?j(h`-%tFuxk*ME++r3=U*tz4X~qQ-z|>k;?j6DQ7OhF+<9b0m1(_#`V%<xxahMo z8(vK|@Ouil7?$D$bWEH;FHi}rZFMD1=IC@NaDv5?z=5=ko1Y*@G>Loc51}=L*b>PB z91*kGBXe}(alNI;SC_`%&d;~?1Un=?=$^0C8@Rg{TF1{gtgi8Y&@cVaEr>36)+DzT zGzqmVJk88z12N!$<OVB4BrkZq{fg0W^c(CFj4fOvm!Uc~HdBA+DJ}@wjH`=DM?k@= zifAQ)Df47FHbobAEfFzhh~NBWiRfqHUs@0&Xk+V4YGlOM-!aaXNNADTr$_guMO1rr z(jw)wI2+JZ8|zfzY0}@~oVn}Wv&$>^h`Sg0UHf8VRN{>KjyA<?w->mBQ_%X3C}uld zo+_tT%+Bx??i7R+o=n@YQr$Afp1I;H(usRow1#(?Rx2dl4o9po6F;+AY#sw(6N3<N z)*L(8ysc&Mv3P$4{4D;3GlfRo;h^ZcQ$n$IXN62GZUY1{n0C}UEmxt?t+|rFsLH&) z)26Dr6&i|al8Opl0|z_ZBQedfORuA&vtx9|x@tH8qN#P;VI9R1x5R9L8#ehIku1I- zXD~FjiXXC}Jt7MtdPqdlW}Jp3=ZqstJ?e$Llb+@Xih_4;33^=*$)T57e?Y%2pl{89 zpesvXfvXb%zE;x~H=asEa=9F*+%IAvHEuZLF`=^>BlcbNvmnrJP?Vh`ps(zEkmGGJ zpbHKZO`=w|lPJr6Q-^0W^6nf(JKDuJFo0b^b5d`90V5Q@EXyxe%#n@W9&j5QsVkoo zLV62A><(XsDe}fZX=#J^zz`^iSmzu|mr!IynD8}oDvt63jMh~4XngaFM`W~E-AW5U zk<r3YM_Lp`<DwXo(W2wRtr*d+XrV^*oclqqE@Tl=nBNyx_z~}(%e?&XkW%@exRA`Z zhfr%AlWm)C^F(3&_@Tnf`N7sz{n!Rp2(zsbw<+cMje^!*iKkH=&1^bdl)Rh}DLPD@ zYtw5G&wQA;F$OayjLGSs>6n=AvV^A8FGo1^fh&8Nj>wQojfau;;q2W_EBhMFp3|X{ zdwIqA0kRb_35Lo(kaGp3)*?qm%5OfDlhj`PSH*vN>mh!N2WLW!NeBIG0hJx0D89k8 zC|2j`Z8ZDXdOv<*^pzXUSlkWwQ(3fwagX(OigiY=Y$mLk;X+Os>x?jMi6w0inCRnn z(S8#SIfg^(yR~RVS18mrMGbjv^kEfX7)N&RXQfo35blL$V#hL<g)|5d7;i7?98oj! zXd4EbImp~leJI+uF(7xVpRWtb#hS{?8j^+uq>~JYPsSfeTuWmgiN=1Rew12rQs(xv zRxt7{qz?K@9Id9uD1)rzdbA7TiUW;tn%z4kR{|~T?TyK^R@jdicET$ZZV8t+2YA!V z53XQu10&pMjfS3n0FcLX+Ud{oTXNG0L{2341Cs5}EdM8>leek6suo{ql6f<7_)OaA zgIR(TRoo7sb{*zDlOH}n1{W6QmT2GRaqTiInubO<WQN9dfyT!4_dOq`-7qGjn@{d5 zxYCRX48!9}QXEyn=0sJ2ul_0CH@?yhKT-+{{Gj+HpTUu9Wy#O9dzFqFxto8zSS)6C z9Hvu-V|2=dC}}!q(Kbv)A8o?y1W%od#$*;{4TA^G*nYk)b9%6j<9&kf;93#i;k7pC z`(nUn=%XLO2a#ViBlf=B?#&snr<hSeb4(I@j!7~{Q7L^j`Z!y8T!Vq8cLaM7KvGO} zlVHU=5|mhr?a|n{^WxkAkYa+M2cSxx51>ll(W`wADfxOpXj3YU4j5Dd;p+KA*fA6( z`_kdN2PEGNNbXdfsMA+)EAb<cNGNOa1E`;fS6f1njj6Zie(7-`zkG1+fvRr>6o!wP zeW9)>roPa%1Mr3BdTcxVoWm<{a@@UPb#orWo<6>$z*6Tk1T}XQ+!hIHjwG)It9+E2 zwdycnp@&y%V4eG54%w_MOSXNaY%0%arrt~@_eHS1ANo+w+~VAc0my!^<MEZjsG20^ zw4lb%i^eX?*ZIH}u3v}Io-D-82qd{^<v>A&UKFi|`WV2YJOz+{YdEkFpW33@prm!t z?cu5#f8+eu`B?P=DwiSh?|wJ6gKLV=4jP^>>e+V(Ae&WF=)6MZFiktF=w8+XTEnH3 zi)7Iyd~14Rq@DH!Wd#|<_`-Vw215o6Jm)6sz!v<wei$|CRh(ScwFqIoZFenu>NSEK zQa>Jjo}tBhqZaAUmqAeWMlI4ThF7oP0|GNklye789Bk&`t8_AJXsL38f~488&XA4{ zD+zZLgpP-7BD$KSu32;jHa62MMghKp2_Mr*ha`Hx2pk~gCK$CXaPt|Z*AJK1bs?hB z&uW{@J>dQ&5R&aSRyemppm=Mv7<3zrM*m3#@G!jXv2@`~H2Zio%aRn*LIJFEq6Hfj zH!j(l2tq22Uh%xS*2O{=0+*-;tf1+|k(Ch{{Bk@Z)hz^c1Q@}P{tQjqi5Qlf&rajH zFrfK_jt85W6dk3pZ;5AZ3DwKJvRbd$APP2sOfE2tEU(in4+6|<PV!pJ-6hfVJ5}Iy zYm-d^)!yZn7o(-r>coX>r@X*kgp^1<Aghnqk%S6Af>3VMikhv|wIzhILh3^t=aT-> zJwo3bBQb<ZHCK+hgwSi_SwpC7V#1?)jL`9D`t6EP-Tbqs2*nPeDny5KLmpl#v(hAy zxcNBT<Qll~p|M3P_oaw_ViRMV#3sfzB{sP(Ms=-@O1BI-H<Vn+k&H`x=)xt&OTHHl zlP0>Z>q(|ey*w79vBKu6H82nDrQYC9KgN`Mjk&ldP@~Dx0KDzCBM(h~eT?KR9SMDq zWU|-8*<hP+HW(s9k9x&u!q(wMu)q>`<xN?m=c@^uhV6t+T3-Ba*wmSgT12(J9+ReU zs)Y_XZwfeV@~aavbCCciz}87m(lz3$>qG$hy`9aqSrT-VXbryLzIdk>z#<g!nI{IF zUZxX}9Dlz+l!<6j!WQ(=$79&$eyall)DjBeGihh~7I(j8@n6+#<EvNa?)M2cOre9g z2zCQwnsJ5a69Gk==}2;ecoHrbBlGZe=*mPEvPE%9HW@vX5)3{vFvry&c;yFG@S)?N zVMp;E#4(qe=3tQyKEZUsC!llfc|4$w`cv-NGDvJ0DMU61K@>!Akl{rJ7Kn!||Axiz zG$Tbzl445SCjTapPvXu>ZJ}_=ziHcNN=Zqel10f^zFaA2w{7s`0Jq4d^G-2dFqM}S zKZQ}av%r~`G!xD)QpKSXIHeewkEJA@H#6ekN?{8xTq{WOfjjQy37*M$`wW*N9xxyu zuPLQ8UPDL8MqU=<y;#SqQ_zu25`nv<8;tQKpy_5oG(Hf@hX(f6XmvU}_LRNsrMtKO zyZH-IpX{NmL)v8$o{D%Z#z#{5B$qFe`S!;dW7(0W4}Ivv<Ws|Ec$i0vp`Hhdd7v)l z;V9-|A3b6$N@E`XgeT&2!U=2E)EoFb=}Av|@>BSE>QkR~;{SR2GoJZ}_?+}CeAYhu z+0S{-bD#IT=fB{E_^iX{MK5~si(m3b_`LLGf4u(XuXyFFUj3TaCVhnS5Xv>2?=0w~ zKcP<A5-ZVDSq*1B+eMBr*+9)>rS|Csy%yKt_p#!<^6X~n!2Ey0!w12i%b?HX<TF_O z{n5y4*hpC8^W$BMl)rjOmYSkr3mQq?FvK<PSFr_3_Ab#%+6y0~B5L-uCaLTazg)9a zD48&kaw?1FHQ-$~q=9Kk6~?bDbty)C(qfjAeq+jROz90DA^UEOZCzonQ9b$_q7x)P zx}fwfh;g5(XLP(AqY_UBGA(i~CK-yrjRiAw)^qHZiQNULRqkUm48bwn6TmMFz|T^^ z|2P92=BqV^eNjAayn)A+92yE12eDqm*j`Gq0&xJa`w{NZm@W$-ZA^s4iBTHUyW(*h z6CT%8E%1#D$cF+B<(<S*<PBUWjxw8J3>9K=Rdn&y<p)==Li3UgBI!gbMg9Ts_F@%F z2ywG-lgb(=Gpy6`BBZU#@m`=kp&0HJKmUaUZ$4msFu<}iP1uwpiX0Z{Sk}jwivot; zXx{AEh8TFmD^1c+`crfoiZ0#t(d)TtFrP2Is{K=si9P3rl8f@mKlTe*h4l+b5Acf> zSl=VkSVHi5z-R7w@|gsmtk<jWAXF%b^$h{4dD+hqP%(I#YC#ZJ`5VniY|s`h!;%=* zeB%d~dW@gg+TWfqB?36?1`yU#Y*vvM-1E_Z!o2KfX9!a$3|TV!*lu|TiA`C;h{Kz7 zvP|0zV^p|?0W~r%cwtmSrRO#YoLz96&gRg$>W3KBO);ulmy1k1OGahBlHfKUm9mG% zQ?}*oK)s%LgF4+V2;`WL7zAJ{<2cG&37Lcl*hJ&M7n#=mN%ZQdNNIK30&)vooFtI% zp@+*sSzk!#;e~s+VyGOV1);7v#cip}GxR7t7xzGVo+;LOKFa0hz>=--KO^JX)``*G z6?FA<3MvyOgo!~AidcEwKRZ(H{|Im(;VDpn7?K?G3p`E3@QC(IyAWhi`b0dA{mrUE z2kKH;@u`3*Mg7SniW!XnDRTtN-WEeLeaY9`>PuOXnYNwQJ6YSx%4;B}mPKth|3(jA zWzxo79Q~7_+wG<vw(7(uP)>VtZ4s!i1yFX_>XRHOcQvE~9PCPoIHfUNRkPA)R)x;D zv-`UJN^K&iV}J-q(_<>iF8+Q(f(~jg0OeHDMTmeFb^VS2?sPpI^8^7714#-rpB&{> z7kTi;MIIatA`jYCOYi<W(Nu)w+X0EO;}ZoRJBv~Ie~t&u9pHmGk=Z8;xfBx{kUEm= zCD6#nP~gldT|gU=3mh<6QxJ{sNYrF_yk$r_3}r_j9(9!oaMDTt5>Pi4(N7Sl=c-Lp zryUUuD0gU7JY}zJ_iNLpp4`%nGX2*8d|J)G@c^7S>83Y4KJCEJ=Ma>dd8G=+wa)89 znD2~^@70cv6NW%`zxGZ&Bqi2N1aQD_2U;fNwG)9KMn5J3j}yw=_agA4fW$<AH6@Fj zJ>7=0p<j!fjgxlfjt$}8WTU|zjb%cdpvKOC&G`3Nfo(zgH?auml(UHOud;}GEUtLS zO)hxkq@rH=aR6@ot2H%c??gLIdbAj!TEA;noMte0L<Yis8vPnu9rZh6tDglV##WF0 zy<w|=3)qaUj{Kj&RzDBGjjdJ#aAxt9473br?|8&+eTqV$!V%2)i-7h5ozfj4P_53) zynDyu-Fe_s+`AEdN`j!<D|#VO(6R^M-dWirc6pV#jz1>z9G701<M@bVj-xIXLT7E} zI6N#FzS&iDf*%FvsA>g8#VdZKdP~JQx*Rk8i1H-;zv)4tzNnbBG%GVDH0h9=5-J4` z?g`|Y*U6@GwViY`!eGUS&Asuqxig39d{`F9RGopPf|jS9rs2Qx77wNYi0wDmjb?8{ zsl$!-e!a5HI@I^f-qB+O5w^h1fy;xv>hzR^DlJf)-VusJGbn7PaxRI4M1w}tylVJb z_LX}$XYi@aCdKH_3FuE#KkDETvS9{@0byjbPr}D#c6HWE4r~2w1l6+=e218Ef~|)J zFy{p@rsMgh7}NXMdp<uPF&(ez4>08kl6GhTxFqg+`~faD8zn}?#n?M4%cZHPvQ+Q` zx0_=`Hi>6(SWWX!Lo)p}gUaIip6Du9T#ML<aDw(|Q+d}&p}6z_m<z}clG1@4_K3SA zCy9D2T~Lpui*l^S4u5E?$FLmFkUbL8VLjGE=nlk;0|Vl^vRw6I_W`az8~&ylV`Gdy zfM60-lM5e=TmZ+mHa$mWrY;o_gV)U~2Yu4gGC0S+2Yucd^!aaf&-I9u+@!b_5&D=F znX4p{OcF|Qh7rTz0xO2Y$4rDL?9*`AMSH^mTuzZIWR-+*lq*PLJFQqPhQuc2_KLEx zcn=@vW(ZPcj`$6<jRo4wSm?frTu@DCam|E%j5!9NhUOX4eQ)$?AzjuT%IC)^oGY}N zH>aBvx8?NtA?)e^-87q)2U2Yo(P%@Uu$Lhaduy2EU;jr^Op<FzdI>xw;(v(0q5efN zZvPS9XEMROsC<0@ZB%Acb9D)Bh_}r`V-EzaaVMAHMth;`66m%@FiujLnVHY{N-ccm zW!w}nm}#R+m76wt7t=sbI5$8R=r428pa#{H#Qo+jE!|D<wgsf-iL<sY$u_s?WXR^n zq9tQBZhlBq6V_6;qf?Z|t?3hc$6C6+qqTGs1rUgPgvkT+n*(%n@HGL&oqB<H?_0}H zP--lpdfqx@CTl4iMy?}U<x%Cib5|hklYum&w{DThb+OS~w4$k%xmz$JQ+bn%TQ2m} z!l)!OMzYgGWh6DOi=nYw0&rt_+6uFmIVR?|urz1esTnF?dBpEYh6-{?{<I<=B#vq7 z7|RpunJ`Qy;U*5N3$<*2<dLK_5}XDjN#_rHSZ#QCcqNWk#c42dtg0Oe^JsjIc+6@Z zuF8{Ojvaa2<Bwz9(>AhhZ&U1eXCdo@QR#X*xf@G(@Y$e+OUv7vn(57mXH(m+N{Jjl z=KS;tI;U-B$s_yA`T!SE<*ZhQWDEHK=am}gDEJ^c$a6(lP(==94e_`j-nCqj$Ip~2 z!sNNf5k?w;DN(@Mi_9RQuug7G6`2wy*W3gIrX^EkO6tfed~8NDMZ~AYO-(KVpO4f1 z#f{xACz3FV8%@=VK0fw5bEb&<yD{o_#;7e*gz-W*0&Yhs+3U;(a1{q$22V0QMvdfs z3h<Ty*s>`Q!At;`*zJ;d+}I6|TQ&u2coDA&(Srp%!+GHEhUP%p715~WPvjv+zOqj8 zCz$noWa8syo<G5zKsci(^TT))e4WREGFCM&u*L%{bHg<3l`D8t>h5gkiyHHEwm%TP znzQ{VA&8oi@L0_pi#ch6qmvr;3(24G3z_Qqh38MOJ{n_PdHw{SNrq>X7wSX^6$);{ z2Ln{gpWqIcJcgu+omu|GmS}$F{0YEeQ%RtE#{7v71r(M)p#e0ry(Qme6jQtwe%Nd` zl0MjCH;hp`*AIb$ZWCMVhTGIxC5IPqdwq=R*5#5vp>Z~2xYDR>w89Q!IXh6>CEmy~ z-LVf7zd-xwwiUB4vWX7h<cwVF&$23f-I~6Ks!Q=?jZ0)sSegxdIL2bZ7>)AH&As%{ z3*s2DyN2I6OzX>(x&tQ)-JRbBp|^U^?dff?WZ78G-Ah%AC4Y`~cctp9-9^)SQ{coD zDQj2ID8Wb!vfwLYH7$HPvpUVEJ)v4}j&6*NG{zWgL@G|AqkIZatZv|~;3^VW4?g&P z<F1d#5RJRK*}FBOlUpQkv<>x@dCccg!DHOUit0xo_QRCeB|qwu0iqEbryz@zrJaPI z;`_2c47GnE2xVoEe5VREQxfJeswtPjabDQmr>$1v#+?Bitt`<gIkrYOhT$E~gwPJd zxBzO>-6G?+ZGLU$+r!$_06r7p%)=1_o-u6@Z1|Z#z_e;JhWik)q>sgAFP(2Lh^Wql z1k)M`g|jP1QM9fcF^^NSnQ0=1@{}`22T_AzB}a(p!F4h)L=mo=O1wbRRG`UNS&PJ) ztru8aY08|^L!_ei6Dwnst~4chElivkg<8{T6-<nG1pEG&7)5_f45I5(VLKnGu$?Wm zwPm|*R9GP53xNomTWg#Xh|@`s72X7*8Jd#en@aPr-S;U_R;V1ao)&LW>gb>}OwnE3 z!FL!SY@r^hoKvrp8~d#Q+WbY0H5!mYJp&T{VsRz!+wr#P2rKy3DQx%8_Ch&qr}G|w z-EG+Jj)1|!cEz%6VJ&<lK$csJpoUwEF7TM!ui0IS?*^o%P(0c?H}w^)_PuDySgqxd z9bqkHyEb9FE^VR6tSb|UCehR4X?ekCvY0zFz-scYs7PEW0hDR~7|e7G<{i3HPm8ob z%U*M~g*z!m2%yMj(G)BH5$~o$Zs1;!Zzh2Qj)<;B7t9hPzAHv-<kO-qxzHK;N>RA7 zUUVHNdQo+p;ds_4T;e;@2y{(mlXSwhn#}<GhXJ^8@FJzvJdI%3wD1wy`>Uqv(+gDf z>0%E&47A&&Jlv<o^(TRF3vz4N^M9^!)qv_p8wjWl&AUK;b<O{le+cOQJZ%p2TK`g? zhqeA$nuk$c3F@NsAVRvR^v}(K_^|BY3M)MLV4U|YpMxIq5N;Q&)oL2!efYz5pP(H3 z{m4h97%vX|KI-UWj`29}6R=V61l=guc+!)fj7@^FOYrIZ$X3CVuubqe_&k>z1)u+d z7rcNQ1z+^ym%QX9+$8wN+$Q)6Y!rMIw+e39u;EW$_qx~pDL$`%{Ttr!#y`X7<Ujw5 zzx=De{+qu&<?sIfA5MjOx2Q6XP$->K@Y6z6`OSE|-t<$(5698p%*bbziE873bzIJV zC)Z%!1Wm+!0=VA9>r>_W0Erj>m^c1`s!Co@eigG2(9H3bKSMl;EwQTU-@A_m-HWAY zo+i!`il^Xhy^%T6cwpS!N^`L$^g5L0=4Kj^xmaw<!>hT0#_23Lg@C24#m-1>3bZ?R zAr=d_y(8K*$LnvgLmR%+m}W1DO~BX!ii_-xvgh?T0?igwL~R$V-%{!c&olU@#lEwX z6Vl{=)G<OYz`xVNxTR|61zZ;WyidJ=zZSS`>d-!h=u?T-FpI2!ZzRe8iX^A0o~EgW zbF!241{l)}R2*6PGnrTp<H^5t=Fk*tP#sT_xWkJYIF<qb$(iC(QsU3isPa*&Tgg!F zpKBB2MOs}IBQsiQ1LImMu3A3~FaMdeiSDo!1G9R8i-F)bb^+Jx8O+9@Rw^&^u!+|@ zFUx2!s$SWE_Bx_Pn7d0}zCOlcyv(NB@iMrWIQOa9V8#j%6f@nyo;OCrmgKgf)Np&3 zh>P9~2eN`QB7uD<yVZ*`Z>u=(cF{17BFFDlId+Ceqi-htQ9){)u;Jk9Exg9$yUD+R zbvN&WWswWm3cF6wb<=~hbkWIm=a=lQ4sVR_V==zz10*#18X2E)u(CJhoLcBkdY!KZ z<zw%W8T^(xGc+J;j^c%H^9Al&#+<RL6<jqB<X8ORmE@rs-1Il%514<44R!|y2|!WF z8(5OEvnkl}Wxn_dWxg#q!>VtSKqj|e?o5T*00RU#C`HPxa+|K+Y2~V>Gl6NyEgGB& z<ZKV*7+0~W_FM(R%GoT~u~b<2`+Brua`rN<vZj+!p&&*Y-G0+vD62%>oC}`qb~5^{ zfWaoCe<UNp$Wv1>2~8seSz9E<6(td-+!j#Z9$nbvA>X*G1`Vr`7-<TH!jQ3<?VwId z;b52OX3}^8sTH%%7IrutZMLx8ugUP>1e+BGs5=5wn=ZT<*f_HC#<Y(`IByE_$@eF5 z^iEwkb{#p%kpME7IH~w)uhGkQq8CF5U-!X>;jr12h>+31<1YU~ZhxV2`(#mne?Qtc zzT%c-fZKbBu=}Lw@tm=KU~iNe>jm<r1%Gm;Fkb6l(%=%HAmO?4>}JN+m4nfzM(0|% z_=g=kV*~lZ7Flczj8>4FAC<<ZFB*8pJUHT+R=;C*^p87&@th0{%Z~mx;``Yh@O^g) zo@WatI^+9i9s6D@Z(@HSF%bhwSm~?(f}os)$4JsK)l4c0xE?L?+Rp<vlW)G7nwD<% zP`-CX7sk$iC|%4J9N-=vZs|lSEpp8@tAKJd0iY;L<NS;9Ok$)o25;biw-uTF-=lY9 z_GbtRx2dxNW<Ycwt|HgqBu;C7BdjhQEL(G<#O4OmC7A|O4WkCj6uX21l7yy1rvIZO zMV~In$jl}eGESqjCtGiQwXM~l-a{gDuPva5vZ5*$HLzO0_t#}R#8dJ6k(D=?`_yEc zPc<GDuNvHMnrZ@?3J(*5y9+GS!Ptqa=kwD#Xhi_7cltHplHa{Oz?M|tNQO8Lopgl8 z4t(7kWV>743vAwHbC6f8sUw$~{t*6dsSYo$f0;w83pQFJ^HU&f3aV_+FLvY?)3`7Q zkmJJ(vr*07b}P#f*ca~EJDqTBWA2!d|2THPhT!wMG&4K>v@|m_QPZu!$|8Bf^x4GN z6N%D!bu?P)NVmeyCe!uJ?Dx1OzI6nO%)fTKi{$(O!5nPvElnPXXf6{CA(Lq_rU#O| z)6^P}W0^pK`=;du*936Cw>Df8Sd2K$0!fYet;WmpE)l-XDM>-V^`u@0|Gzy(ccIQ6 zbw}$C2#d~Yr6Ax%MCXX=0iQd{Kz!**IaFVwCY7BE@DlJ4MYq<E{Rl(4R{<E|)u3); z0A6@yvh@do+G%TN@3FnD;(v|9Vj@<x@t}xz9IfN*G_k)dP-dE5vZC^dy{_h?`i7mI zs&>(7L8&V0p(~=%_YcW5hg(4BB{T1irnV|cHNnc5RLBN)pe`2#n=Ti<PTG2<fv*rb zl7U4&mY6;Gc!K;4=*NVzqeU}#Wpr-HITGW5LqIclGLA`-6D+P})5zdL%3X8%pn^)i zDw?p<10GY%B}{IJ7oWO@4IaS;1y+NNT_(T2P<={wV`xet(+fq}vkZ@e%Z5+|0NSyt zA&qTt4R}3)LJIN_;%UvkO?oT`XP;XM1X8SYp;2bmW4*%z_3L?`$x`zo=Z69vHpkPv zt6T-v5;+w-cr!SZgnmXV_&zq^W#yuRH~Zn}$0&!)szvH|WM#i(Hv3VI=rBPy+?8!W zx5S7L5dg}0^npx|rwS<7ROJH7+hLbr@9a_VK@y}301gBRght9q!biCwzp(^9QmFdH z6Ij8&pk}Q&jE`{`QumnN6^6ko=*!qIdn<xJCNeum@Bua)9rTNrkdD^{<<;R){V@B| z=s(7=uTx<^ScqKmPj8L~jl6s?<pGg|=u@qeYk06b@iq<c-94oH=jM#&1qid8GB;_! zUYN8+c)F8w>q7)1Cw~o$%pT#QnR5$P3S;#N8$)?|$aE^~&QrTV7naWLEhO(Sxm5Iz zm+_wDZJz6cH|`TJPL*w|WBnNdVHrTV_YlgMP)|FK=n7CM{MsC|Y4>@FL&aN}W%QlE z;;q36)62!wSQ%=Qtl~8Hv+=xf&OtDk;_t4oza`1~Jcq|KiiE2mSswTnhJs|ZoWHK= z-6T0wt+x%SakBx`wU(~?LJ1_)vbMzJqL6=ypvaazGPr@F$G!n$a{`4?>=emXzM=Du zu&6|T=<qWpDi?J4<*;G07ajgIFQCKk;oJ5OKgU}b>Gsk{mpec6+)+$Tz{JrorVRN- zY4*_tFhu{D^OW)5tP_K;2e>vd$TtuA!~nASLsG@6U7H<ExdV6bHx#_i5_Vumd+XD@ z&vci0f%d%s&FrXV&a|_mV5R~ceh_b)5FlBGOx-DA=U?rGvaVw8N^)SJcT*6A>edCE z2v_8X;NBT9SPVszSD*~2g{7(R1kwzJ8hh@v?9Tk$6(E@|LG|OV`itTHDB3dK;pV)E zn#lNku0&jkelW2kzS<?{L7(!uS?57JqjQ@F>3%+&2PtwhyBKqG@tddB^3d}Mqav1& z!kJXFXbNBL5KZ9`o^ohF<308EnnDZvC28JeNgZ&IjDrHLKZ%ibtS&C^$KgJ^nO>@# z*tqoldELYN8M?*(2oQDyQk1rUg9l4n!0!$yW~wg!Gm7{;%ZvY8bWtiVep+8vUc9=7 z|Byg1SkX@pjE*g=mloA`6&BSwKZt`wbjyQIlv_>Ire=E66h<#*F&C_EY`I{yD2`QY zeTV)|Fi)e|Y<|;)AJazR+NPWLQA^$j*QXxE69a3fheTy$$@|V)^bPQwEgq%#Sqj;% z(%;9uGZ7i7FmALRN!$=zbyf_|<b^og+Sp@x$&#_G_JYgHBy(APP*c2cd~J^`*S2Q> z$oax=<B>MqoiD76;{ON3oM8OYgHNhRjgxB@NxBI$PV~6Teeprk2|nCPh|dEafXox5 zog_Z1FDvJ7{JOwuJf8!BtaN70WKZO8XywFVNQ+e?*jC(gFxpJ*83XcA4yZycRVUUK zhL|<wQMo{WDHy%;N=;w@)qK0cgfk79Pa4k^M3!DoCRB0-54}B_zje7dq7MWd!k}i) z_zLpX(=5d%BpY}OY|E!?K7yILCZwf3F5_SdKET;r&i;gSeo?i6{DOeoPLQEjmNdUl zKv))9l9F4dCUJ(q3jB`5<kkVU%(MWw7cw&pdtE-!z@BKRM%$e==-(tKz)}hC7YFoa zw8aqv_&`~*DHN)7u_M2j&M$Vx1$cEXVeEJTMl`=Db&>>}owz&HsS~4jX|8a2jMn4; zexFZA_;&?(h<|IEhvQfzzFpf8*{*D8>309<QO4)Abq}-ez;!|xlxX@6{b}EWgT?}? zOZ6xuO}=&)L!6z~*=dfd1;QI7BT0><adCgJoq7@Y%uc;H8o$%SBfhdzFSxf5Tc|Nj zs@8do4Sc6Ir(Uo{L1UfG=q8Xcjw+pc(YDVg;9;v1z^5tTJW~?~H1pkN^PX=wX?VkB zovu((?DK?ce}{?*&m~1h;lcGbS8Nm@Tu=J7Sx0nbR3~*|)8#7Ydvnm&?4y=`*kk)R z#W6aMis5tnNbyM=JIxCp<4#_fKiOV<N~p?FVyY&g#874^i7|gN#=LN+XY7sfYAWr$ zLvRR|be&2IH{j?>g&u&p06h9y&#y}-LoQl`1k|A+xC45Eowxze^On5X=4|WT1>4V~ zrs~<*)>zMiO2CZVg3wzKgyuDtDf=OI1Nd(d{u`_hLR#)GCIy^J`zIj+Fe$$yt1H>k zCAGz}NVBvixnApPOR)^oU&G_{Ddnn<d+T6<<N`7$53ZG~0ex_TTrAS(PL>M@9xG5W zkkiA(Y#3`sQ`h1T^2cDO$)imOCpi-P;>paXl;+##G!sTlYu_JfaaBma9%RYWCU_<m zgFZOOve7d<B<E~Pc!1hTH_-)iUJwo1VU{}mhnlBG5#*kt0sf}pb{(g4Jed<N1S~CA z>banxDROC$dNv?;tM6-yv9fZg;7DB>o!e*-1Q-I8BOnR?)`pjmp@88fa@OUMXpVZA zzpbb(=E;^T`MuKUXO(FlAfOX%#Guv#ht<}@1T``hgTFTVw}S-HHdq0YjW*p~c_dop zMh?)Xe888VFl5Rg%{ojOxR+w;v$(<eeF1=-rKZzsGj{?3mr$wzVNhXfF@6)!V9B0t z%P%JL3sDxX^+Y+Uri3K5_e=mi<wE9Fd!rAsEX|v4Q(+G&zk{PlfkKXgQX(Nljv@_~ zqj2w`{U}oC5v*L(gBybK9|^>l4*5K{3I*6}3b49{|DfCkD)>ORfe$*IqjgU~SILxk zwM<idksSi%U%B3110HN}1k%kHc*%#BieI1JOwHSJyG|^PQsNhxW)rG`;YdM=!a&QV ze#lwL8j_dXe_UPW1eqUR)D|1Pz{L!xXo~NF@|ZtedT<3tfe0$}Y~L;_0gE6eiesdu zlFA#KsVA#_t5~to3szQVylfZ}tOzC?{elU1Yq@yuXlZkPte|D$eqfTpuC1i9(`^3- zyFH8S1{~9h%1m0fZpc)6AF-a;yump%XVBQXfe&|Y*ylmmzwzJ$<xE)Fw}Ik3o%#0k z0<o~Z*;C&cXTsuu_^i|)4XG?~QWrLwmdDGx4{r%gH<@?16t@pC&6!jqSsj{m)LlnY zotyPKWb~Y7g3Kb*Y%0ZXg}6p&#E`cCyPh_{SxZe%8{H4Rqx69PBz5SMAQS}7WFmS$ zKYF(_2efDa*pQh3P|C7@To%j}6_O~OqV)%(bJ+^dv35Q7cSP^w%SD8=bf+>f?Sd+2 z6aPNA3$g;u3OZc2f|@bP@D4V)+oD1JVYp-fC500hJ8;G?;zXq*aB_J-Wfak-42qm0 zNChaa6^zB(De}_T<z(yiuUsdmr!p$8T}Rl&Z%2;--FvM4^3nq1OTsrsxkG>iIW-k4 zvSLRpJUA9crR8)?NJCjW0&nx7?A3t<qpTjEn&VKZtQ0m52ZdXWh0~1E<Awum$fPmH z%6Rnm8LjrKOHbNv@-S{=Mx(_$qI<Rs54ACI`sZ9zl1GYsu{HYGttV`8(>FZig1`5{ zc+NOLH-}>k>Tk8iiYMAVPS#jqeks0k*ARP>yW;xuYmF`{@2_odUK3XVV>$zD;iL~+ z$7N31KNFphLPMD3cdhJ|h{0!wPZY%@5GNPVa6@Ta^ttgIAg`1%IBx3j^eNXKQyo+v zoL`s157#`6!5R*IKecf$KKpHwb82gYvaL-{h}jP?;di+q#aZZ{%Q5%FnMSIU&E>S5 z7lSo4`X;#em{8RQ-_$tatWDew!+Qg$tvhro-qmq`n&YO6PCDU~7r_^sNs4!x7s|ah z`PMWrck{^5m=TG~M~42wnTOjIST+?w0?G|q`*AgS-@cEe@1Y%T4K!M0iNr|}NL|Tl zajr|MAq`<1dcqxq_Nu`Y3nMt}q)WxJhib_&Nm13b=|IEh0}XH0)9q!)b#lM?j$%LF z`C`0tw!XuqsGi2;1rHR2$CF=<Cx4}ipm)iV9*ry9vK$^$-(K>VT0JWGPsdc?JaPXk z{U<C$(0!7y1HGnH#PA^xMfF0fU3mB-u$>jd>fqgv7QCd#;L%nuNtII5A`viOef53_ z1KUg*n&{0ncTtmWYNmcZpm|GtJ^4K1+Jp7!+83=Y7eRQqPQO<5=ai9k&7|)W)p)GI zAN0<c1J#X53t_^gPgM&BC4md+D=GfB2Dq0hxQ`HUA&dz`fNN%#hX5Z=)nNM(xjA-~ zN+BecFUa^PcS+PJIWvn|+048xpfWRa7@$%kfmwZHu@us)p?A2faFrIxHCG*&^j2*Q za0}dWT%z7Sf0h(j?tWxptJzS8eoi#R(zxK#Z4eQN%QXd=xhSB$TyeNkaF~<X@Hrp! zu*(@J-8Hxu2e|K2aJACZ!hl<C3=;Vd1+tk1R&5Lk@(;qbWMeJ#XfBJ<yhlfaBreF? z!i;9YdFAo|_q__PI^e&j;J!P+y+*-RPkdp(tu~g5;Bv3@a$%Mw!YuUeWqEO-ndQAP zoU3&>c@~!{<liGny*j{sw}PwQ_CjHQA4)2hxaj6q8~gH-u~K@N)y95FYtq47a7lQ7 z4DJdYoF;uO%-|Lr-0K3|D-~QK<@Z+4d@#TrQ*bpdy+GLQILi>ca{^afrkDtTI%aFh zWM%r6`<wNZd4~E|jk_*>bT~VWmG+&U4rqY)>;|VBK8N6BqZpC8KA@N>TZ^m3^Gw#d zA$lk!Yu#}K9O(ZIHE!UZ-_%o)kNN0*_#nzTfCWNz)0rqFSwb4(M4pgj3Ngz0K#6lA z!g(M9oOIx8wPE?J#79oDKlD%(sabV6>X1u;8Wti?rO2}aHEZhpH1K)SlTf1uRcctK z=BZD^arXFVp&BbwgDN#R&7SpXxc%OiD|fW1V1904mVk-@J@p-ttJKue<IsoT%nk6? zd0IX6=0m_TFBQEh^%tf%i~b|I){Lg(aQzah3~mrDgcHtbre4k6<pzE}NI_zx5OV;$ zBRNfW^fusVVvmme!Ud-Lqx~0olu#lnyEuP&AZ~MWI-Aq2;*gg?^<&dURS_e^IE!<c zivli-7P6@{m&xWYg*r7dWo9qgOeuvVD5J|nUSrz1C3>=D06lISGMuI%xnVXnhHz0A z0~5g0yoAoYgNNpPijvlAE(wsPmrDTmc}wbaW1rI<I;B?|d<^)qX#Gdp`g4>yHb}&U z#BjQky7Y*ir4K0KC05M4CzWZw3b&ux9gqRoH368>oK4M4^I~rQ`=Slw=VxdwBF!lm ztha>gK434D!*$%;%{@~EiP>7}!5;*_tkzOcf+8m5U>i6x2&(nR;rr9**^IndGNRaS zt%?%GGC;7aO<>6iSikpGWG=yxQ&<6JYh!l>?2DCoVew{6bSYjIKj0oUk>0evE(r{0 z_n`l$$asXfX`$hts4JdQqORP=rtNIE0J`YaRf`7N>4NoxzPASEjJ|BD9euUx6b3Tw z78NLJ{OocM=0R&TH20<~SQ^icUOyMTS~>VN(yPg_Xp&sM%SBwR#T{+eyXS?8&j(DF zmjA>ICXEeK?^6E$lO%cqNEG#VpvK5AvJz=(iou&+E1SKWZyZmeQsb=0AK)t6Yg$m> zQnQt3Ph@9*e~(RY*K*QRAV7+^QfU_z_IF}PMqJ(WY_Mhun{dmPN--7K0g5FXW!LqT zht{*drTECP;6ytEw!5>xrvoTkhtti_0E%HHqE|ZLc4fe{zEM2;`!3=^_AaMV%M%u( z1K@pHs^PH-Ixf*CKry_e@rk`6WBxFJv#lqO6(#_7li@MyO6(@6-qNfa5)!4@#gC#3 z<1^hkTuN;IaXe^hlMm*i$v#=ADxY@n9#WCgav+GzTVoxMK2Dj^!UB>ty(foy?+U2R zbgveu4QnOQHj$@N1+`OhK8b_tG1oQ3B(67vW1kR?mXk!FwGzUA5fGW>W~jH@-q87M zxs#eY6k6_=(XpM@eFQpYh83_NDQzNcV~J@WH9w~Pb@XFQtA}eWAk+SPbYV>U$Tqyl zJ@a$m#cdsVG0`++bM~B(-vn&NaT>Fp8^<N08poyV&pqI{{|JbT;||XWU)EL#XG77; z`Px!w=Hc^Wg#R1;8Y3`EBsng*zMrr5`mgB17~#<08%DS%U^7P0{F2`tBm6cXGDhHL z^rQiDM!<b)vCR-6YOqoMh2FNMo!sYQ13PoQs1`=OF1I{Xig+DvY3QSS0~(9;YX%II zCX8Fk95{`RsqGtIoxI?7mGsTD?XeT4pkr7mg^1we+ER!_r|?==USdQWPfIgp!>?x5 z&|gdw%&ZbLX726sKEhdFr`ZRdb=)lb?krlVZohjgml0pG2V7J2iOV6())phpRlLP_ z@qq`!ondC{s<<!3X0WXZ(}AJ-rF;ncf|vu#M}}&PPaW1EolGl+K+L+dr0FFx@kkpA z_(-YW8`-4nyWtjYW+Y=F_{7>Gb4lONpCv=YOr}Nxl!F4tR|SquspL5xEvuIERVr6U z7p7D+EhGF?@^XuHL05ztj&$;L=t2N^ajL;9MUn9}GwOAfjIzWSL#IjqH38UV8aCBr z>P%wbuFAQn43YzuNlpRLJA8p<`E@cg{s8UFARxxGyIh#f1a%0+n3PB#<_1AbQhXCI zmExP@0lytctedh;ti>QOZIZsN5N|}kn>W@KV2)FYu4^H{RC34O7ciO3GSH7jRwVUr zB1<B{0C@4{h!f9$AnA098SJ?=n)~W<iOVP<ly{`z7lKAo$t5LycQr7=R?wsq(dn() zsY)uwPE-nBbJYnv@V=pSAvp8;fWSCYQ?Ior(d8KR4aBG9gJ2Aeo>Lvgx<@C6u*(^C z+Fc=B)Ah?;>gUdf2enn`nx69R1NLG<Z*@)iAEMy@P>~O^e0k_5Lf}@Yom*t^S*qJ) z_QQv<aF%M9U9;Rd%a2uUN8;~;@L|fY#Kc*y9Z4<x9CFAZhcX(@qV0M(=OZ48&!c!S zC#1*%*{jNXZZ{X=*qqkZ$0LrtJ==3D5o<{$V^u8FP?wdzVX%^vvN{}fVjE3lqgoO% z_-rM9dkp1He@j)bnXr3=-k&PQ?9OW@m~48hv!f}AawD+CtuLI&;DBmO?-4Q7YB%f) zc`(or5-VUt`w=Zsu}Mb7m?g`+XTCmJ(63W|O?@ID7sUIL0L|hiY)bTR5^odr?uuAn z5e-|?KOOXW!8jI8nHoKGiO>NardN667DY*M;T*pZGQBF^H}tD(Dgl5zWXcs_CS5aR z%H2Q64#`5Mu(l~=%I*9q7E1rblsIS3I^`uHb+j6A+Kxa|eVXwc`fYr!0OdzYQ0f_D zrQv+E!-EsTO)HBb>1`bz$LN`a2}Lbo5oTdB5mKvV_0{@Q7A8vm_16X@=~8NIGr0x7 z%Z+bwK$_hGYlUD;t?!A|=iv|R*m`MAtSv3$7>I8hJavUMF6bPn5e#GZ=>XeSO*Oj( zMlvxbUBO1wxERf2(r}lKsXp&bN(=xd7j&gCT!MmY<bzfvAJo@SX@J!)l8Iz8%rLNx z|GvYQVIdBU!$geCS(ky>4H%l_roh7}xhbEGVOc6C4^o>cm2*doN{@VWH)Fi5gReYi z&~QK)@2py2Dxfm2l!XO6z7fg7>S>T?k}K+Eqvc30R2}d=LX1T=e<S-Ex-HN7)quuS zhZYgA-r;hPGP)?CP5`OQd$M+6>dJ1(EE72BS~Gq<pfIhYWtwCqhqX6UbT&h-O|d1% z*U;V)UvWPXgGhmFKw9GaZ$`J4Qa5v=PPgpga1h3#gSjL6wgg-5$CUVeg(T-Y>Y#?4 zekb0s1Y5}*civ%SJ(WLL#P8;c4b~RPUR9=IgFNdnW8_{{*_R2@@~RJ++xQ6-<Q2D^ zse09UDOIq~OMgi<#LR89Pi+hhv2p-Ldl9y)%Dhy<?A%^CfZtZd{h#thxGPZk19d5X z4exdl=cRa+sp!K4sZkla2JCgCyBL8qFKyfJ|7H8K)1An+t+B$ApaVHL>6pN+>K>;P z`Nee-`K3s+-GP7GhN&K}&2>_!<DUshpQ5NGRlG|ELe2@buB-6rxPXsUjyR};x@iCo z>OhD5X*iSnSMWhT1#>Cn(@(T_$Y#E<;NNjJP~YKuzEqVa_&C&b!Od}YfxuM3{%&lh zhRsW0!+1_iBD9HqU7=>3cWcxDEd+Ez(c4l2hM=4t?SDnfLns%8R!g!WGYt^iCQ?b3 zV4uO%C5a-b6By;)fWk3)Z0LY<Bc>TND-Q2wURb(4QbShu90GZ-56YK%CCXUL)(i6L z|I1CIC_$k{!R0(F5b<kGw8w@k2riH&mc4QNe;r22UMXiAVPi_8hHQ^oU*q1MO)L8v z&7RZYe)RGR<(7JT@BtM-9gliQ$E`Wx__gVtFz}s02`r~Utx6aPs%;Kn%?iLh2e3q6 z;wz%hF2IOo^r;a1X6Xz<P+imMAH?GbNC(72XIheLB&kLyOeCLuQfVS7Pjo-l3b5%> ztvo&2QV<_0OE4DGqmpB~v6)^m!Qd-Y#UUB;-9$sacPksIi!Z5csL|VV*`SV21Qti# z6)T-b)uwX(FOxwvLWl?G$ikg~4{2(fJ`_YR<s5NysMtpSATvZR=JM|TK0y=jAFH$j zGP|P;5oyUMFfL7Q2~`GuH&-nf@ch8OP0&;vbJUoskRCUvTf#yItQL&w$82^zmbQH_ zDauNqYPaqTcmN=V-SnSydE2!DLCoV(MHl^o0L_-Smx^ovG#X|gggZ82T@3>M3Gn36 zxsV4+W#h`+p^YNkfu@TBmVZ~JqG75~DjQeMN2$z_UNT|M;G9jZToK@!TA{J&Ts)~h z*2cCrCO-aIsf&?L8`EXkl;-A3$i`b*!9hWF`wc*o8iW2z-&befN0JByzTXoA*mi%3 zMXICZAy(MSR6C0-SSYTTP1UseT{1;mD3&UtnVJ@95v^M=CRYU<W=z!m3A$&-q+mg6 zo61I{J9;N$HygdL3own|YV)#E5G{^XTY5W#BwUH>W@ft`gQ(rPdeN+Q2R7ybFfp(( z+;Qd~B(#Dl&613iEy=qImV|;{-xijn6bIYbOs|+FQQaVMuw@=MfmJa}BKNzsB&mz9 zswG)0g0-Wfvx2ny+!<BovhEP~=Zq?T*0jFILNUgu_zMMBUv<yoicE@j;tBuJ?n=fg z(^7d_ZolmqW0?V|gOZjE$kgi2tIO}Y7R@)_w&e&@d0?%E*Xx`?Lf!vJ3p!^7vMth} z{-zJSETKCodaC51VtJvK05mQ8G_{__*hda-Rm(s{K|Ie6AWSV6#Pg<)96TSjyxqMy zQ4Hz0EyW|u%(VYbTn3!LWf~xG>ElZ{yCA@A5mRC&sYYVPvE3dssI*x^rHN^~7gS8I z*=JTUoxw$Xw280m8D%V9H;smiD5WdSKYRckIFsuwJ!QcjD+o5jFZC_eRJC%vSRP?x zGreMh%~z23L-S;UE#FPB<$Je+ox0erg01x#=|OP1p9I?^oo*1~W%?_eAzV;WIl~aa zw&}VGwyspFU{6+Dvc*Hhd;GO-w?(vBtBJd`DBAFHcs8Z1JtN9QFj9IeH;sx<$sdxJ z$h+_zv*cDBq10R7AGf*WO1w?D6dHT$$rb>`Ecs;76?<C{z`R6Vy#@QroQlH-^YeTA zdLwiMvDqmc!EUCu?}*;b5!4M$=sj};8GeD%_*Jb{X#mRwrEyU-XG()_W)sAlepQ=~ z(wHMw)j<k4fwviz#uWjsDGfC_Q+Z~__PBr~mDOqH%VDTuP{@AHcH}~EufY*+*jV)a zW0eZ^Bi*2hl4saMC{HA|h(|N3LhHg~axIui($NjWYXy>B8E}{zrp9KzZdg~OikQP} zq<UX~X{1uGwJTCVM12lP@$6*5&$unO;H!=4VRe!rDfrlKQ<63MKtO92T%E?w7M$Zq zyh@gH3)hb2$PMKe%ucm?LG9G}bSJ&USnrxnHmSM>PUV4Ol^CM2%~D>{fIFoi(`tiC z1-h>)*dJzcVC^i~pJGvxjm`9inIFEPMM+lRfTF6zfLXd%V#NBxGO7^uIY(th7zYnE zeqDJs^>+{AOFi7%#GUliTRdBqGkmH^hKnaJ`T`b@IDKgJo{4=FjoUxHUs6ePm}Ypv z0@Lp)IA!`hC5O>{nf&yA#yqpJ_d5a)NfXss8^9))&;wa()C7frNI!-iMGfn^n9=6f zx!7#gpa1!Vyq@kug8j*M&`5TJGSFk+N7DCDa2LgpOa^o;on?T*xFiEIn=~(Wx=mzG z&21OdsOgCW0pP^};18DDL|Cj9;YgxRI9$Hl!;u~ZOZbyX6I>ddluG{HxwMz^*mEj7 zudbO%BFnN089hW~l)*(Na%kam);yOFs<mm+k<P+8UJzDs7I%fPHj4}08=L8s7H6@U z#S`Vb@tu613*!Y*PLD3WmOG0OAQ(bf6M-<Z%$aPq=W3qRVJB}w<Q@q(i91@VjeSJw z>6*d8donOJeeb<Le_E~om3W;cKr~_qRg)yvBzm(mwMq0Ay$%r13lQ&8zPX<!HK^k@ zP2uz)jbC6nObvLg|8dNB^-GLNL?~K+TeNPg=h`fwqbDG4fwbC8%0=d}>Q^#aj_1sA zpBF7u3H;Z4^F?!?Ev|xqVj$?>1b;RqusKF!N+6ab(s116kzmtUt^~$;VM<_EJ0)NR z0BRs84Mf$HJvX+B)2hL%4C&@k6_9>mfN4lqztxf6xVSqbF-M+KR0ko!<VpV#)i&~^ zOx_h>hLvEdk!n_FHVJO{1vszddtMRk*l@K0AFk0DHs%AquYGUu*w1$4hUTHhQeE@d zyJIwS43~7rV=}LsBSk}wuMDV6OGx>u8LD!%WpGFv5JFMuUOLq48}8|Oiy9bl?0PCa z^vPm{u(D+HG4KobR#nmJn%|#)u$jAhU<&YIyp$ian(z$e!`w%PTI|EBUGd?WArC^b zqkp8*X)5G}o&WYh0RaCn<?+bJ`sb*lr4Yd5?DP2Jj(@@vPgvuhdgDnb2H+o51i%MH z0iOQ!XFTJXe~6L*{&_Y&&p~Z~=RN=VFTm%8>(;&KMK6BwOJ4GlKYHoQUiPv-Ucdh3 zFMq`=U-_z6zvi_YHvGx!{`B?90jRGo2aF~PKENBv91{@<-jStTO6iqFP&aQ7RlBcP z*dbiMp4yUbdp9w7KA(bt)O@(!QM9$A%><y89{N*sm1IJ!A#6~RkLlccNGQ*A=tSE< zC^h3L?0B;1>YN)Lo2&CWbj%0CyvlcTb>w?@uFm<<#ck^9{E3V$Tph^>tpB73DBhq3 z2`-MAO)Qf)G_~(5%nx}jf9Jhk$?jvE>otC>%J~pY<g5KouaNF?HvB5wLxc-y*Ibyd z^*#^J(tN&B?&~xOv!shZ-fot}rAn;v%VG@ISZz{*X%*&;$UVerKl6VY&5!SgJ+Gf) ze=nCYQUfO^$uHWQs>A?hs<eUJRLT3zTYRo1PJ_BbjjO-wZVX;Xxqsr>i6%Ci!^xVv zeL#OH_wU_7Dl5UVUWQ?+c_G*kMmski#ZkX(N#o*4C4p_{t}?lz3j8y<0x0e|9f4Ds z*lHjXQesGgLyW)&R*tJmj7bm!+xV(V5Y`qU<7o9_p6`JYAgJTXNp%zPA~M9|aaRg~ z)T&SDX@T@Zftlav>g|gG=_eKl(oeKNx~@Ccxj8^H*3ky$$T}bYY0f&Uj8nR1osS0; z#yT%tNY)|c`bC<*L^beyAstGv3h|oFK_Q=%V0|8izgB%>wS|6@8F)&+=YoEpTp;>= zvW0%n?v8$64A6{z+Q1y?cj3a&@3w%#=(lzu=||a{a@B*8@j6*WVYW6_@yh|z50}%o z+vg;KX*$=cw0<6rXm9<<J40eFWIyjS-8yK3$-j`Fo*`DC@?7YEuk-rp;IHOSZ<O4H zTJ^aMtVtp{%9YS8yCw&V#YH={{*4%c(e^}XV2-r?Xo}F{g@#9HyOzyw1{6lyr!6RL zi)%f%M}Iczrz~mQzCdbyvQ@1=2_qqa2SqvTBJrL?<p32xjs7#<Xb5$ajlbP&d><kz zVpRsjsw_eRU$XIiVdKTDpc-?nPt3|BZG4y&t(7uohWNJ<YP5klGQ`#2@{m0l;>h_b z>z@Y{#t<hg97Cv0CG!7^$Y*615TjsEe;E*%Jv|;QlG)ROxle?_(q%`BKiO(WA1`B? zGimM#kc?}!fjN@qE8opY^Vs>4=C=Wbkw(kJtV$knYZ5MXVG5?qJ`<p*EEZ8Yk6tPZ z$4Du2m6mgO?+=t<1p|88X~|Xl4>h32fMA&cofpAc4d+qa5$vr2k`YWBm?Ob1Ul@X& z8&DX*v`Wna5=<+v%6@Zh`l~j?P+dY|$wt3Y;A?ZhWSBVu#JVNCop}-KmKMdw-GE{I zX0?QumO#=5=18o&?^qD&x-6hDVm(rZv4F&q4VyQSHmt@C+f>>fcSQhUbMC|KK~8!R z`)@s{;mQt=V=B(=agseN-<NV?B-3_GS8IJ~dmK);@ZE6#Mz~lN9KVZ4bT@DC#2HJ| z#ALSjO-x4Ns__QQx+=APJ&^!8DRj{=>B7bn%(C9Zo*BAbha+JIFcqejmqXTcLkqSU zY6)<8E#;QT?L(n<CjT3C7?Hz4zYr<NvOAi)9`%l?PjCmXXY~|695}M<5;i4qXNx05 zc1f*@ZjpIxedV#7#`WLIE2!y8v$T>H)EU7k?lAgj^nRXJCdg}f=vv0=6useq(sHT| z&=X(H6ZW)N%-54{XU7`kk+4vTDxl%?eI$L4IrfbKoP~|CX%wiLtYj9YWoe>IlTy+? z+oDI)J`crQYY(*#;vVXDk!-*ND`<e-WQP)x9k64GJ5RV1RF=}gQ*ts7IJk-3(RASD z7E6Ql;q*e`zJdB}e2hB@6Mab#^=CDg$>M5hZQ=_tIO8<kh!_#8#A(9ZC#!&R6CM~( zga{k+Sk{nTN@W?a(|R(63m3MXG3l$e==jPDYl~!K_16if9IC^|(vajfs&ngbFaZ%^ z8miyU$GJg4?{q0l-z*KWyw?HTXu(K1OGt*gUb6WIAzR4G<(7p!)UzWRHKm75Al&O# z6U_l!hzTM32Q%M^l~$l%vY63#tf6u}N-c!~LNKL^6u*OLz;*{>A?P5mk_Ppi{Cz)e z);qHD!j-y({a^H+ypv&CZZrK%7zY3erhDr@<l{^fnHQ$-45Sz{v8ncI%lb&mwx&63 z*)}EK`5vS8sw33GkD}`{_2eSW30tLv1(MRHNa*?Ga|+|i;4^~Zx`T!;>rR&~^ix{* z`*FZz>wdQ27gKyqT%CEopTgz>c(>Zjbu96#Tp39FSpaC;Pi3*IMR{npRlM`_c*nM% z_NG%?K0E)6+Ugqq!%7dzo$@1_uOvl6vLtlPhb5nFBbJ^C%Q_eG;et=g+3=+lryB|@ zCOiwF^+=XD7+!oHmbT@&@HiHffq3RF*ctD|Y^c#@YTR@IPcFdJq@Xj->F}H$<y7>O z&g<~B9_0jHKnHS^)2v<+!@yLw?j#+HYdHf!bY8W^M_LC9)9NG1iGBqiX>E&-wBGjo zvSP8NcVwsi@h);XG6$(i2dReJ)NmX}(S1m(w&p*Wk_aZeB5-4hCMnC={3BN=kcY;% zZ_M4JY&SrXfOhWDmC?DmN1Ezks;022!11kbRW55YgMeS%S!%E1y7P|S6R^!OaYGWe zT#GTd;A*V>Syg4OzACyj?$=yER_3>a7CmqcESo$#Y9sHIL@v4|*F>Z5ACgch6P)M8 zE7wL-cQ2QwmM*FP0l1F_qCA}U#p5;{HMn~;oDW2!HXOB1ZM-aCDPe|KDq`lkXzH#d zG92z1%5t@Dzgg$SU2f)`qYR1#Y)szlt9BF+CnN-*1nx%z+++g<-Yh|{W!l~8_{5p) z*vF!iIoq+D<DHTn`y4ZF`#bEOS4)-u-*ftCwRn!Xe7I{^D>O-crlmZG6$7_TAZ<=B z-&QbCEK^r+Ila7KPBu2vE5@n&)AwWj2DpqP;xclXU&=%1ea@0vb&>g7p<2(1RzIQ3 z+fsdw@0XrEC!W1XpVe|}TguDwMNs`gD2dgQ|Enp(+{1+oum&>bB##zik`)BP?8piN z>2Pc)Ma2nF$9!#uJc;XZzsB^E*Asdj!@e|zGM*n|;;H-=4p`snN0Qx}z<KPvgriC0 zv4QtI^WVY`nBv7W6*DK!yCsW3=%q)Xa|vJftN}<E(UIB6^{#+>RN>}60O0|aOB&+$ z^_-H>%Ie(Bb_Acyun6=YA_qmTp|7K!ptLjxuDLS6_@r_IGw0{fHF2^ntPT*w3pd46 zyzsfyc3!xy*})6*P1_ymtw~hZ56n@JA;Je$@WGNholccv9;J+rc$`UeOOEBo3vx^A z=ehI38oLmg@F^VmTT<eqY)Z@F3ru%s1|-8*t77*%cQ7H*NyOrQ_zsod%bF?J9*<N4 zKURP{tOP-lHLv?Y*ts0@3aC2t`Cv3C6;ouJH$jz97^vrQ8?i%n4gsyT6M=$<$CBxw zF~D_l-%R+@9M6QWq(?4kCM3RJnOHY1X2RDxd-M2?OzSc+YmqNCD`t`Oh~C6l6FFlE z|M{4N|BSKPCysN7Ic9PU5IZ>r3_}S6hM^J$E(;7;$wjSt0SqRG7TB{GMT@~~Ied6) zgCk3BR(WLRPP7}Dip;xL&QWA?3%JnVA&##QakR;w+EShSX@)$D8_F?1mffdGeZ#{% z)ki8B@=zZh>2t(m?1O~9qwFL3d?SzJdRS+BJXw(I<0;o>j~ioJXsaCE-q=j<nNh|< zpgqmtHU(QlM7cu)mNAw{fe*D{P~2goPPewpp`zme+mV$OtN`&<E>b=ox}qb9XO=*G ze0thJTq{wm?m-;w2%;|gK^~|I0jC^@KBB&L$zM391megNKk^%{fq%8tf-Ow$8<p~4 z6uxBpskU6KDVQ=GsEokqxgEhhR`g|ndnB-ml|*D@39V!{E9;KmC%%v2II_N@hYMmP zw`g4I=#C?yh6c<K^2|po4Il&m!f1R_8`l-X0GpHV#}YX8Mv`KXtw`twG1mA+iVFKL zD{=<fDiLRv!<4F>01<^tTA0R~N%&?SyQyCCwr$Dhjxej`DMUjna?sSH0U;lgK(g)| zPA$=bWvFdzy5KQ^p2l(ZT@<ejC7i-^{xh_$eGkH17PzyeGhM*zq;Y8%68h+uqzn2b z=|cPxr`a@qF(g29l=q-2&m_qwzXtyXsFw$*RwerpLQ#y_j02I?6lViNH6y`}*O0v6 z2HrBy^b|anaLXRuy-E_IuawS)9}6h#Y<Mp7`Ragd@nMkqyOakm$>Ar%C8x9i=0wc@ zcg=h@{MFHioeh6jHqz2k;x+NODO)^F4J&896PG6jtMD>S1B6}DG(f|;_<fs93tE)! zxb;z1x(_c5pI%cMGnVAA4^odg=V`!LBIK_wU6uS|PD1EaEm$&@M-B57_CZuabTO6F z-L-?XLso=Pd}#%QC6`ccRZv6$CJ@;U5%vF!AsW}-nJ-ZvHD5XVV9?0qOxNq~dpS#P zs>zveLNs1jBO?r{n+U+IM5osOH*o@!Bw`EUP4dJg6(`cQKzS15c9qH^X$~q2yXc@S zs3AdhJ=rWNiWYADa7S)ENT`jWo61NLquByZ9|=5|_R#{W_pSE1F`zK*!vKCs`$*A6 zM(taOL+!H`+GqRB+UMrz!?cf{K&&GzX`heB<EDM^c#HP&K(8^}Jhaazt&g(y;jYho z_#L&+XQ+@F?#JVMu6{nn))?fUkN){IU*--@V(Gq8K(_{&OabWu5cjPDvcLwUHmM=e z3%KEWNa7o~Rz(D2g+kCe#4~G$q)2Awwoq`N3&dDZnxTv2FNlK6+zD4_Y+e;uG&L1X zSx}nsy`*BWTR#g*OR`p!m9$jIR9P|$F0(7|mRj2NCR8x3d2*ZpWn0H-dw^w&!nz)v zlYS&QOleVgFRJjaiS)G?!k(@id_9_)edS;lA}Kp(q!MO!S_vmRvASjB$qOD>u*7!+ z;J?ybO*wX=QGW7!r6*GuGcgO8s?q%1Vd2j-nx8+k(BluHonLB?vB<soX$X+~Z#Y?b zp@KFD*8IGuA|EX};>R;%v7Voy#fx!51<t475(ugr@MsE)-5hWL!Z$pmnI}>lco053 zqZvV*l?NYks6}ud^(dam{OBVP$XU%84ud!Rj6Cjfk3a4>-HRy)GdFZ2=2Nlz66Y~< z`{gtL5TBDyI_X)@;x<g~zQp!R*?-C1mpGsKrPz1LU6<T;`5JD#l%1EafBhTYh|iy$ zjL)C{`Ct6SU;Y(7fBiRqd&=Ma{XgJy>YLvDmL_-OTI^_hn}S}q7J^3``FwqQRP-8^ z<+&>22{;2oQWvFi^=Un{j@S;5nUtK<iH>+fkIA@)_VX>c0p*7Vntj+wh6cECjFY<K zE3buR<s^)i65i}<?r`vMzB94}>kJ*AinsNKNdT2B9%#C}nmasN)bX2}X;8N2&ZgR# zi^2)bk`#tn=8hiBiCVL$-Vtq@3-u3(Y{NMiLnr`n%G|WY!M(`dC_6-dFVO5n4IX&7 zC1-6*sV6*7H)NRw<yK&V%xeVaI70?TcDOpDxpC~!)cA}UX2i@>Si;MqpZ94f`|kuU zi&%4-te)EHG%JswH5O!2oO?i!Rll7iKZPXctZs^+VM4dfkTXG8kF2~_!ZX8o@^76v z*ojabPm;L9i?Dbwi2sK0-{Lx_q<@V@m5<VyDi4?2a=%%m)m1Svqm?$$B)t%ns~?7! z|I*&&<Pt*_xLB?2FS>y1WUfaEXufD?EV{$5!J_U9r9{T90iK;<a57+NWls={pcbZU zlKLiVVcVF|*oS1r-r>Pobr_ZMhZhqNl#AnX7Bl%IL38o3y}Jn`m_ka+Be8ZTufZ_W z{EIBVU3M)KeZud_w?#k3nTd?$%U)zGTY^aAn~3pEA8;@?kG)aGhZS88N*Rk1M)_yP z4|jWG{4Nkha(*=0GjhH`MGwnPd@tuu^O5}I3AX-vS&izgf06w8I`qUPM=B!fBZ43k zh1V(Bvuq%_{U@%PggK{qrjE=~UP~mSrD-R$5q_s%6M528!Crql24lL3O|=pq2o~a# zF<Z6JXX9-{#cNbI=uBHgzeNd6*$ZVQ^lIrAV2el)1b}Qjmt0wns;FH*A28S~`&H7E zy^ijEvZv&MPGYkR>baU?v(8OKRI!UML>Cs&cx8?x@p@NfkQ>7K8=wy!WZR>FgZ)jA zyTPHGdEI+_<uwFv8miY84-?xlLzomxx>UxVEhRe3Q^(@DT|O9!gAWEknK%er+JHmn z-WCJ1wR_!cZp()h4NzQnJg!%%Xi>*5HL`T_$NGS=yiNsF#D@EIGv!Nxj3X<ru>{+1 zQUG46e2&ckKnQdyQ}W5DIO36*!`C^ow6H9nPxbhS2wbOvltc!ur(7gfXNUsO2~pGw zB}{!IFm<;o5!oItp?5?ff&U(8J^bC>10(S>CIjo{YX%OCjZu}iH|gK4jV<}bSbi~% zi^QB0yfBX3-liNQ8OWD=MgQ!bPGoG(W8_7QwW(mGmA8`T^X<Tz3C;^da6k&+q*e3E z22E_|2G!9G>@{}d!%dSRWikuap2%ey=7*Hq2KA{L{9nmd-20s!(*7gfdk&j+$>0do zP$={|vXG3s0&>%fe7&t+6ozG8RH6iiFs1iT$*K(Yl-iQ#bEw^aOi<QBjbqiVem5^p z!VY6UeTZ7Y1)Cr`xYSBT5PuRNS}D_$97HG+b#280=YR>Y3RoW(69wzf1h#qs&aVm1 z(-SycFHDg2ase+fC1J~mU-Bt_8L*j8@pOmHly3?Fw-A#gQtBI3m1Iis-<g{H_ZW?3 zS?K2Nf|~qKqVH+s;N*+S;5_F-SlPS|s5zdTCmU7p5b1=#;DOK~LM^aAuLiNdN|;Kn zOs_meI@tSqrP^4|$<&vr%btu;@%%bm-^)>AXEjGT3B#2FGkyVeSmM>+1_o^>P(vC3 zACVsfP4a#e;L7TKHZJ^@mlekgjRPVAVL;dosEHY?n*4V_VFAs$K(Q)=0#;$Kt84cx zi|*9M)6zuI+$rn{Z=GuC6iXJLvRP;*iY3&a5sg|Lj9a|PR=ZWBq%#<1Rp)0$Q(JY4 z_QV<SS9ArKz(5`NMY5D`2M6S1rdXQb0xG<50d7YTIiu0JA?FF`oDLEQb~2U>`{}Bj z&!&$jcQ%^S2Nj&%w?-3}^&QNaz;R0&V?W<s#clvon4U)fZLZ$9?2blO2w(%O<07lt zrG^fU?VapdcJ4lG4So#)8W*(c_enS#;vS5{J~+5+2q}%QpH=mG#w@>Z95z87vJi!A zVuOl6-~9|x^b7Vb<Pf=ETeq$$C5IR3S=Gl7(D~5zoq-!Ocx<Yz!4nNdSY-xn_73yp z;*fm2AkWId!pz~a=+3Bl^pe`3PUJF@$b<;!sVqH8NPu}HNx(VbcFZb4d0D-s%`B2( zyZCtpGPJ|Ej{;cR-lL-cwXop`;GiENpHdtLwYAQFt}Kn>vE0i>0<Yj-aC5CVnyWY( zCWDBj$7s0sZ5jJzZ^cnG+c8u7QIPYvnHBxwC8VTu!3XL+yFQ@jj3LMj9J<lGkZ_K! zj$vP?df+j_D``fJ84Wx)NKB(CwYdI~W5$uQ00}V{^Z&Q<=A)gDMX(TS>#bkU`;R1k z=EKJy3fPQ~*;IQzW*<Ig7#16IjPt|MmQ5`+aRc6%SuMWa;*LT#*bMA<^a(j33MKTE zcb7YNitgz8Bhj^a&Z|npFta6Y1xRL&Rm+IVT_~k<%#zx;Zsrunb;+5(AwZg5F4~hR zCVVwbxrjturzscRR$SYZD@OOxXv#*XDIw<PgBOx}SQuSQmZ24Ao-9LU3I`Ji_o>kV z0cx2nJ4u4mb+TL}$&CTDd4Y!tNpdfc)@>X4mx(5TZ|{3)^CQ5=Vk}00m2+e-ox~<4 z<0RJf19EF)s*2oNTqNI+lUSc5w4cPXMU|THz$i&7UExW%B<%%8$OXU!2f)}^gL`id z<XO~26LWG#03UpTeDE;kgSJtVPw@dBQ4B`00SdRr6rmg9s$lyVDAYa%GPW{#jA1gy zV8Sd%BfC3=sd=lV`=@x`>^0J2s!G$Mh5HQ0#r^f7U18zqp-ILm2?`7M*4$m9iv&3p z>&4i&w3!>-A}F6Nfr5k<eQkyPEg9X<6C}xQAtnqYE?|hZo)bvRT9yGM!lTE!+y^pF zvJ?n%TL}w#<}W-ICLnULA{H$KS}z08wcG!d=*pCZmH|-vqfs34uxW3YyA*Miz&DlR zH%I^^umG%H{5OFA7S-?KP3DxeF3R!w@90nF<c4$bJ>KVbFuv6FNbZP{m~)`jxeao$ zJ7!7Ytrt=L{dn7C0BIlO?M~6|AJ_}!XtySLz+9%;FRYZ!J55$~TBh<Ga{Dg<gSjM{ zm|?GD1bn?Kmt^jUR28GDL`dACVv3;tYk+DhMpOd2>)KzqGnz6E#P+rV$0;{zD8Xn5 z7lE9mkvaI52&vQ08D2#G0l2ax1*cn<q~Id>($h9@7o&q?L?^W97GaFvS@`LPF?w@6 zv>HOe-bhIw$?r(!MBtt|{G{<FjF|Bz(}%din}}^|Oo~_l(QyUQ#tL)G-7$?w%tILO zj$s*5F?k813hYMIf)m&xA#UX$0i>z8e2`~_->%KY9dp)2v;19?ma}aEKMjzKWw{E` zKFBYyGS<#TOX*d7A*^u9h4@04uF6H1zR-Q(H|mz9-wq)oXD$ciRM*V(4|yz)sqn)h z<Nf&XP`9BWo}9zn6-i#f*&O)XUusRTs5sEq;YgjSLI%h~@MwJ`ov5?cj=vxitd=a0 z2S^skA{d5)pkb<wH=f$)SqB@kAMVf%v8)j8=zZ{#I@7>WsRz+be@1InJWw{JaKE4x zt2nV>anETc$V~lfv5FI^xFwcbt#hLX>~OX5U}=qgNdoENy=xoIzD>HEb~x@@wFlfy zDFocXh;k3)w_?{9l)9z`#&c>v>IdLe)^Wfc&mX{oGT>l{pWVq$W&n||GxNk-*`e&f z(eCnQYjvA7n38i_EA0$>@FYtZFX_-&oZ^RHHE}oW)s+FcSzNVObF;Wt#oLB*k`sgO zWO1*t7s?h_4F-Vj*5Y0pFqp+{EgO(|JEEq-3z{pox-+Ze0gvgZwC%Y&(!4(!>Qeuz zeo9(+x&qp}8s5nZa|K4)ZQN;0pI?m2ZVgB*F3T{ehhh;fYT#53<dt08xa~Sw2+*kB zYKd|+CU-r+c#tfqDn1zSgVFXomP*tj5)$7<^*1o*Y6aCb@ee9*mFhdIS)f~<q4iSE z9*;Vo?L?y63c5~CB+8BtYx=slMTk$)<?#)=1N~%FgXx869w4H>4qM<fe7UCa7F4%K zX<Fvwa5=IM`8e2hR;l$$1>?i;j%XSZY7Krj3y%VRE*@!dlsNV131!^rOcPtg^%>1H zo=+?nT%)uX=(t*>Zl%?6#|`t(WTvo6MH0nz5iVRVYO@OXcx1V(07GTTS>{kqhvGh~ zc;SB1n%oyo?Z)Uo>_p1?d3(TOsspuVn0k-NhwSo(?+yg9KAGe=ux;62&JkkE0|z&P zKX3z21Y{C<KM>DgH@ODhdqr1Ltt6ZfS2HatUmh@-GHh{U#p6k+kp+Wd?$KDZV58!O z_M{MnIA|u&@E&`itPs_Q1jyYg#P<darV!~*r+l4!6m1k@VP}VLGc)rsVv-!(HTyi{ zs({B7BK^q2dq;F}Wvz<LiJDO2>^mE&u8BrXIjTwu?Vci(`GEWD<Xu=^;A0E-FgiPo z@xtY3oEHiS>K&Aoq&jC;EZb}Q$)UX-Tj8fiDmGAeNv(#oLtNZ6cxjSVT&oQa%c(CI zmSye&>QXs}?FC)N=x}{HPFC67lI6xTrXLQu1)+BLh;KyqgLh@a-{Hs$M5I8A?A4dz z_Q80TPp6bNk`ULsdRje@-Fh7&a85HpW>UwdQn(@~AD8GT_^a_pRAWzL0;w6&K{R+? zH2BZ^ikcgi233}z=EkmDA$p7sXpLhG;ixaeJygNOnz!|}o`Zmsg%wM@XJg^mv|CM2 zF@u_Ew=|~TRs{rl$v!4n%p}y%C$?{#t{olZOgp?IM)C_SiA2BL-X#F**r;sNZ8pCl z^yLk1Ofc~HH0-d<a*QDEg+QcJ{1;-Az5}B4eHCdaJrr<!VL<jFU1H*{HIzkxwkD(S zv`dNS;g$|oeD4Q3W{bFN*wMX$PLD(<bZ&{>eyMoS(4I*<ScJocRVX%VBRB1(BM(No zB$~ZfsYFX1R4SOPOXG1<?g!+{(=u+Bxlz*%fHs)D2JetvM_SjR*AY1Nl%Q56qPjsR z1w^F$3RrekaCC14YUrLNAYx&BM0h?#dAvZWD+22G=%PAK2V4a(S=-Hcs4;d~C(cF} zP3LrKeO!;~b>ML<y4a|jO0;gA+DhYgtq?H?ZBOo(`e~w~J?UU2K*DsVf%>cBNH7G) z-cs+zzNOyZ8@>Pd0U~RBwJ;<!q!<mTuZs5!YMuHh)EcM){{ub<ze=paj?Kww41Mt7 z`Z1<n+#8S-0xZD9X}Pd6yl|^F#tX;hI4^V&3~IP+WsEn}0+TJl3I*C;8$)=n(soGI z8My{(LJ~wNj;n!OhMqFTv)djix-jpLHjT^SK4>Pq@$rf6_|W|ZidvCBu8Ss3&hki7 zX)R-GJZ=ySl;n*0{JH}Qoy{y~g20lT)!72=Nmvk>&}0&3T0=(`d~<z(cZZr6HY0Oh zaXEXIsDE&IKm3F046_$l`F&vGdn_sg8;^E61YK0Q*DK5J)=3f_Q=I56QI~_6*&^Fc zRiI%V3*7H4XCrc_&g8i`z>Q`~(Ay>zXPr^II2Y97rg%JjUd1<*6Q_m5&IU{diwjW$ zAc0Pf0pN%+r!m>8j>>YCDNFc|WN1OX$OXUo&`enrhjv!LYPy1)SilyVSzQpc(Rj~L z!oZ_Xlu8_Yc06t<!Q*p62|cMk$}oj!&rt#vDJvFb&#U)akl12%O}l?!?PDwW2y3hJ zDjVf6=f<qtrrq2khfpK;$I0fnVLiGKgEudBtj+$j9R)9zX&3de*nT!%Tou~bOs^O% z_zIUZAu~uQqVs@DUGu<22>R*vW_fN#*Eth79Qq9#Q71by<v{A&@%%b|9Yqh&pLRCU z(Rf5s59kkUmW~CE^{rrlv&g{WRknaM+7Tr6nYYpN!`l#al$*R~aYY<I+8}c>7Xttm z%D^*x76nCgdfkuv!@Q3Z1*>qzbZ$0<wPBtQL#`A@SrVvwWfvZ6M)2{JOhSkYie}2M z>0kOh0BWSsoYXR#f$Z~wOrKH}r$s4Xfs?PiTE7FCVsWwFq5C(0C)u}w-nPKgs#OtR z;bH2c8&ZX`oibiH_A&SohAw&%)CuQ`!N%>Ecokj3Zxh1gl)gP6ZY~$U1556BGly7J zCjAE-0#8HCATnd#y(CEE(M;GS>L2VPkFtp*`xvZ(eoLOaqY|WTJW5h$0(qAND4$hF zwzbwhB1_d5vU^rdV)z_5!1jCw*y*r7a7q0b{LuyKQ)K3&j*I(dEU&_dIAyC|!-d7c z$1n#J--5wyop)rDlO`}*uoYJZpeBqOfl^+S4O$%jINk)=k;4c;+law?t(mf9Dj*;v z;L!YN4@zOcO=(Zs?UhY^TwUgEJgpIHT#XB#wn*JI9lO)zY3)uK3*;dRWTvVk5&mj} zi}4aJY`MDQu;1Sij(oiuY2YL^*$Tlh;7^7q22IsU8l<v0f1hySG?yUlDF*}d_jC>B z=Jj^v#^Au~VlXxzT(U$!fa{=%y4;v)-l<ZXZZ#m#3)IXoCzZ{UuY@$)iwtyq^kWRf z;1&TAv?F4v?1F|tl_c4q3ZI(eFxlK82pi_c;3FMzKcE9;{0WArY;FOP%Pv6z7^f7x ziyLE5XDt#<5;5>wdpnwG7}=qU_>WxHL-!qg$2$rplNiGuZ1o+9w;CK6unehzwF33S zpqa#D*$P<6MKQHs1VTzx%`~-_U(t?Lt>c7$*>E2iuVvtn22p0Dg-?j6S1Wd(cEP`c z&C>VP+4m7eAe>1w72J15GmUZE{RM&Qo_VI0sQi|7c3Ycg?9qxtIgL0kN<7r0JvGI@ zqm3(-12Gyv+*vHG@X>*eRIIMif1u`mLQS0x$P#U5nobvJN)pv~x2Guv(TS!_uV2S? zRn#&dB}E;InY8aIH4GeLw^C}>2<?;>2}YD+wFD`Q>Or0}n+aUoU7`~Th(ogNq)u`R zbjO^v!%o)}2!2+n#d5fud0$zJvI?d|W{V?*7Dr1hQcOgPBpA7NmbJ)9w!zq#+W81$ zV+^XXuYDJ_BiOMU<ad{YTKXQCIy<1a;6Pzyohd^e5)_aJu`rmoxVWItBx>wayNG7r z8qHoel*tFcNzDQrYc{zsA{?U>0T+(Vyzl{R3E}8mw-rp;P9+9x=Lc*hvAKE<Q|P6t z0-4w_;|%)Fg2c!SdJiOqp0wDrt|ex6fjOg@pf!Ohvv+p_b7rZ<GJAI?FlUuoR94M} zdhZL&Xh2~Cqnf|Hz-(=F;^tY|^sUiRiA}%L*+y5_K(AvOCQ%;nC~?%mOz$i(C`s<+ zw(&}fnFeAzsq_sNf#*_9WSddtZMe3+ic>;rZ1^FPg{F6MGj>KZ0rEpFc)lPi=*(!g zYZa6!TCMb*R8VH0m9|MGQd8MQ+cms=$Y%#^CE9+z+A)d;$_@aVGdo{DEl^dQFUug9 z2UYvr`4Z~oRGpEio0<s@BkIgz(h1|UqVkOBsD#RUiOTlbZ0%54ua(y@ceTUjn66<K zv58gOPBJp?Zcm0z@ed#+<2~0RYG$Dm5flCrw|HhiKA8whwyBxG`>{%nBAJ>xnOS!{ zW$r_b%U{IMaw3!r?PP9fr^3+I5ffY4bBK7q@}*wk95jG9BY-Fo;I8@Tsrs@q8Gc<L zgQ%*_?a2Typ%WQW_2f)f5kF*W6a+P#Cw0Z25*_jpCvbj}D=g9}q1|Z!v?moYo7Z$^ zGd0|`${Ndw2~G^JX(EWJlivgnY3?d(^DJaOJ76o3`5WD-tab$6T_CV%tvw*{|Ksjm z;OxB0df~YxnG#B;+&bmb?j)t1aGi1~!$p|cf<(N9i-&kQe(~t1QIE%XJfHSE7TKNL zrfu2=TG|u}3{Yq+6e3m#P;kIXBUXtD5{`Hr4;+b5G$`^5*rVV7|9_rmt+n6x-7`Cr z1j;x4LH4`%yViQvb6?N%thEX`s}ndhR}cE`=p<;IzRNA{dLe&iIjru=L)EZ)Erlnp z&PhwQVH$wmHvNIXqo-{c)i}we_XZ1s(E%9EOAKz*+*)j)qj}G33<}V8e{7jNS<FGM zJ%8<3z$Z)5Y$w5blO^;yt$h89me6_Wk&pJ0?jq?ZYufaOMLIvPW^?&lv0%{ZA&P8j ztB0ifBraB%16<YB-N4$J!L=(QN9QwK$mA^AgP9x&)*HSX$nlw_OiK~sSnCdx<%D|r z!aIXd_ggN2nfaMksxhCSFp!NW`9a}MR*&N%8GgxM$Kuzq^s9$A`0IH5YIQ(t>q|NQ z+KOLWsckCZoj`cMltO?I-(*?Z-AV9&*obF~EiBC=qRt^bh{id1xP_xDENYWru|)59 zW;Gu%mq-1$B>_xNVv&zg*A2~Z#X1}XIOad%WJS6Xt-6p|lJKj&O-WLLj6u=|UUKz4 zS0SiY-<hD31kq@R4?;V`j7}8(3NL_2!H4v#h+<ztJCPYK9T-Z#YVG69u-<<MU!>m) z>|21#Ij2;zp|}`Ru@Fc}<TR&dbknIhNp#=DlETp?N(MrbR`M@=>}L+>4^@S_2+GO| zu?ytvR0^$(Ec3A!T*%`}aaidSE{0Iql6B@tLs{Y83S}oKsz-8J;nC`qX|tWwq$?qN zlxY~2tS}Ot@w{`X*GV~A#_^mevX~wDVKI^#Bp;qrWg;Yk&#5xeO{7&Of>rY1yM6F_ zqUjP$GXiCRxq9}copnWtQxRn)K1K(Ho*r~q{sk&4Ka97JeC!jP8Pq|1WZjX!k`};) zt+X4Gk`>i*f;s|{qkh+;Vi|er5&UnJGPoCM3Z1ehX^s!BSaAAleWigj^RB?Ps)7uG zhR3oL3fX3$e}q|MBtb^nL$5&ki78_ynsw?6k7r#+<*ah;7CMm_j^k^jm04^#!xW>{ zT{4$0$O?bhPh}R$;`B|H7;;mzJR?t9vPr_gVLq4$w--OZM0^&lT&IIGy7JUjFX`sY zjDA9qT^Z02ZW@ukWgfP@@Rdhrn~~goa;1AYDX08~-2Z}EzV1XWFbF+_BsWTOKRK>W zGqb)iH}-8BcFKQ_$gyz;U5NcRHB{tSHh69K4scKY(P<=_t#!%>f|rf2RQ!Z}Ps8K~ z+{jz-1CmSH=EM{7hjDiZ<s8?3z(wTeQS6FXt?J1OKvHfj&`~Q)g@YBh;U5qYb0(q3 z&_)Dj@2oANgq+n{-5Px*2Vqf{?hz+uH=||j{o`6MG&>O=UTBrzL8^?^w`Z(+VS*Jm zP8F+5C%@M8llDC<w*tdNd9Cn?Icd9m5;J2N2q(JLTX05DLTtFDy9mlk8B)oUJfMBP z^JJ?ZO@!=?^SsfEoo=S$;Dv~5P%)uv-}#73i2yLx4Qz={fu7OUS*=kPPmJuoV*P4k z&uY=u1YozkGH^JDLvlnx3_z4u0M??T8(#8IWpqBGOa|)(!Kf2*c(Bh5+2O3U?Ztn) zR~XTRhE+m=fP=G{6{}zZP&?!R>J*y(V6%}1HsiKGnSY+>v)!-{n?sCeZX40O0BigB zu}|Qa0jg25k$uh#axgQ9U#?+(7uXD>wDOv#V?>p85#3$$-vnh$c(~fyI6Q4XZbw-K zD@6vql<<S+!Y?>eC$qyZm>SSu_6wAK#Np;kc?K7C`v$mGxwhqCUz2ZeEc*t>>%Kv1 z(&ZZ*@8ugT@p||MElE?ja-<*-ZMGg1r82;CM^pu6GF^9ftn*&B-vm9|ey9?PuGYh@ z9AvLuIcPZyPlNBQY1RA#n(Jg5;z9mFJjg$Yhw=7e_7D8yC}bNm;w#BNkU<Q^CxaNQ ze1xyj{y_bxk^2X$V1Gvo|DbRQytElYBVkZ!b12e=(q=PH$C})TQMwVXzU4;Xv$+v; zFt`<HRks@<4N1F4%?(XS$=%Z8sbvzBbut>5=O*Ycb1r!KXE+zEJ*hYsM@xLi1EBEi z3Dro|x!_wa{V0^kSYFz>Kr6>r)z(y<i(8!G5T97ixsX1G0+*H9YN~S!PVAt=xs1zU z%#hjq);#JGE(h!D8eEPy<;F|69I$X^1U5C;LT-CGZ*9fp@IoC{Qf8MURqq^1F2_1F z?(K3=uP*0uu$nEo9582MG_S(Lr2FtWXb?}c&+(3o)|2)*aOX0awB~bM0x*-$fdV^C z6vmG@mQsT9W5aFTK8KgXNl9+=%4-y;$#dB5J_m<1{b~ebr|xsWu6H>d2fZma%ASnV z@k9WhoR0a5(@}wVPI6@o7Z8(;2vspWALrfcAe7ndAWN`7MJ`fB!U|^ueGY4%Q*UR4 zI;eC;==0(PS)h9q=kK2-pO*_Cb4GA9MTc~OQg&}7^Pyczg*mkM{r!^O$on$u^z=q9 z!;tQcpxU#<OI@Y#*G(`81k-$!=6Bq4=>$^3b$NXmK^mIof0pbU7#LV8a(-jQbx^3* zH#`7IT6*&ya9Kr|Si%Wv%P_$*^U)&U_OAcp)<1&bVf?F_cvmM4e@z*EbrTPiMd?2U zVTr1Ort*7*uRqJmmXReQJwVd=z)<mrkPUC|*5MuCP7BG@T(12UyeZJ;`DUu{t1mFK zoR*xkoz%otxbZ$JGQo>b2wMW(sldySf9PNCjrt=ZoPLGggzv-b#5RN$_52)r{)KpE zDvsm{B1Arw<Wd965M4UZ!8uu=XA=QU#({aKpskDw=k2;YtFKy8kU7d?Yo9ii^IQ&( z6K;`EV#+85#>a7OYHtnc=n_U6JY2}%<m1_EW9wJ7hF{Gf2>(HA-&TwbVW_!Y_3HKu z_v{GskA-q}A8K)%n(v31_sF()^WOf_k>MDrCytRGly)SI2qO$=XzU(iBnOfbW6iS5 zus<XBnrgkOlKjoPp1{%!|ML&=$E7M(Z>=z~(vL3u)igiY$-)5jiq%c-%z3cgN)^GL z)EmNs>y6Eh7S|hF^w`99Tm41nI@329FMB!(a90~C0#B|Hd-w`KYU4O1A!t(6og&HI z5PB=P`|3PUEl>IHWu9_)+Ei|-c$X<ynQy}V%BzJ_=9ksN%0p1Z_|ZK9Rtqc9VdcbQ z7OUV3<MeA=mZG>5%L1^h(~V4NQA*PQT*kO`w^sW*Kr}}Ro8Y82n~+Jiqm$<Q`=;rQ zWKl05nt?A!KhX^A;~F5RK()+^6sXpD1u^ezcL;ibJI9BBR|(Nz01C3lr5e+o<=S*t z2D`=p?}dE5X2Za`!5}^4ZkaUoZ55i!*p7R;jaY0sf{A!MPUtaXaki6s_=D13N}w(s z7!yfm#_LQiTet#%51cZ<sfT+`9^liK6?=DO8mBcYhG1z^-YezBAYh~=vu2hCEeiXU zS0%%X+LX|O0V0$_Em$=TyE|!4r!6b?jz<=i7u^~ySp0PS3o*HD0DsVrmd(WZXt8Ng zI~E^dr=!KO8@5~Vl8KE^d{T19nrhY#R*3u*yglPJYrt>2b5qqN+u2EN+$DRmoEJzR zbPqQBk}5~xw2oGTv)qFCB*j8Nm@VC5{3GV&YO7O3@$EZ1oOKLlwEY^Mj6T@jpM5)u ze3i;`8Nl~HgR182jSb!vgYgpr#vC=kUeOy@=YEb`KbBSlXKA9mXq+J)#><sQqmnl) zRC?N*dzv+W?+Jn^_r!iKLO-_svR6OX<$iWpKN}kQ*?@k07o|ZHzVbE^^vd%q(7i7A z>ICJ9B$df%W;jtLdDWCJ5W4DR+?YH2oFUDQH_nR_(rYU@Yp<QWl@;~tb6W@GLIA>| z$4b`qru?D@V)<eqKc=gIoSKtfg^Iv;DO%&xIArW67recA%h~=m&2*K$_UFOxHtk&Q z1!csQ#9R*|=ul)x(76?azajVF^W@%4RTTnI^TeETP;&k~y^vvprYcw5H)$s(L-}<; zIok8fyXDK)GnS-ap9*oHKfI|-&DIKv-;`l=6#Ee>#HBDCiWZQjtR%4MpW!cIlNub9 zOy0M6m-Udfr4c79a<vZA(rJpZFfz;}A9ZNm(9DzZj-9sRu8-WHMLH`+H=Od$2Ll$0 zt#0MXI5xETP$%8kS$kz8f9Dz}JYxPQIp?%)1MQRVNJ+AIdnWmT%td~EjHM^DHYk^i ziDc~7DV8Duzn#1Kr$<Vw+xAurn}nuBCSBPCXFPz_mmK7dJc!@bj9st5PdSMCTKKSS z5l7M?^BU#K4<xr_9G(w{VnG+}FJ4t{*$x5HT0mhM*E$nPio}^NQ5mc6%22-6_F-{{ zEka6`q`;@mI>QgO3w~xFH&CnojA-55g5($?w%g)#J@b%OH^CcGRw?v%DcZ0qZRGZ6 z4UM%A{qI}vIY)I7{GO#xBfN$>eZz7mCR+#CmwL0*D-IEC&wuHNo%%bXea+mlL2yya zj`s__9IKEfPI_OS^G8hU+QyH`q%^2?d4hosUP&qg5z@qBt2MlpZ%i56tW0PrE{V6O zU;Lp_zgVr>v3^gBgrmoESG;D8r{DrzUg0!RPh#Fx@!!a=GY2Ax+3p;x9%V4wNlo1N zl-sj|F_`vmXuPA=*iI#az=m0X+NI%b&wu6OirL#)YfSg6YPILtc;Q-G(`BCDRcp-U zNHm7m+3s`>2^UrCm`e31`P;^>Ew2xlmvoxT$|xO^eq>G7k05pn_a-NJ_-_2pcj=MF zyYNa~uVjelGQ>BXD}}{Ck(dz|Mwu;hyon24$B1EFkzwi1G(adr`#ki5q4DY*nOU<i zJ!A;Zm8u=QF#{Mb?$hb3yhV2Gx)LE<Ni&<*be=9^PBGglx!|zwmfhQ;gAom|a3u&Z zVhCgH&cEDeB``znx%h~wHfUgJ*!G_tFV&+Zax*@!$@sk8@QEZ%7H-8tpgGBh!Y6|y zNk|$0@CO0Qw}5H?tlBmI%o-m1{#irgNDpBIMZ!WkDR>egk`9%BB$;U#T5Db~G{80* zJ!HUl3|m){ie5PIrmhsh2FbO8m8cnly%{Bk3?-)A91TK=DM+Fu<<c~9Y+)f1z+z3M zd10FtIH#EUVLsT@p<?QulxeyTuEv6R>2q<R<G9l=bR5XoBVS+=olD}WFi_{I*iRfR zWffcUj>+l>d1GRv;xG&sBIPo1>58mrJz7O3^uZ>uV@waim||bq1j&-LhDFxQjI*w6 z0NO2vd8(s!=PQq?D7_u|MOU}w?sC&x3({LIc8CFntiflmNjeYCP-!taXo^Ig4wk2F zZ*}W8t<FrGA-JKvpj)Nfrm}Lwi&_Ruhu_>VmEE<em<cu|W>dNQB&ISN#yU-9)9IYb zrdTX}J!zo>@lgr_Qj)|FQsN$GyYnS8T<*d#om8ReRT&XqkFyjgMy|mncGL_-SJDlj z7<2>clxwA{COSvUbYyod2_m!nc22{778hkE4tI$Q6~9Up%>cm-A`eB5A+lXi_ycWJ zHmYnfg5*|h(5s}`CT9_E;9@EgOUvo79i0UA`%RJ<<DNO(fFuYQ?5@-+Wz}?4mdRbY zr(M;=&#7Y8M09D)!t3o9w_agYVwP4b5yt0cEVy#aCaC+s>_EnBc(ZBkwX2hQs$ur8 z8UI`=S3ES`>p$@H1%(-~f<7F;hIr<=yzl`L&14#84i43w-+L;~uMR*zIP9qbPGcUD z&VLU`;y)!Xz*8`X^Q~gA&*j6>@?kMQv=`nywgi@DI|-hTnp&{PL{<w_H`{3@?ysAP z)Yi>}9rjx4)=xLOw=@XpOxFXI>#;1M#HChN_4qC?gR}JP&d|HNYNu7f?{Igu1<&&* zspkwR@GCTgic*v6gJ(f=Iu9Q{t-#=6(5!M%fZQ%h_>rlf&`~V*2*>@1Sq=QYz!Lv( zK8~vRKOCxD{10;RA)GK>mSTN7bwp>&&$kyAW2FwTYn;6&&)R9m8>P~G+;6^|G<%>L zH=WCEon{u?C~0<IBhBcpTeTAyVqb-3u=-GO-Nj}2u8C&XWC)yQwwCLr*_JxZwia`A znz6d9O0$l><B72a&G-nK9Zob;rDf3UASnYzk(O53Ww=*%qO4O$m(*iCbXL+VQmDu2 zX#xipUB<Br{%q?tw9~#2yugK;hEgHu;IoE)(udYP_Syf|?K)_Oj@5vj9}1X3Fg`ED zGX%E1=lXIj5_14zi6wOI!%pDU00BNkgNL5v`Yy9>wqS<c^#yZI)JjElpl*^^GRKF2 z>WJfDs}FtDpHsC7qY|7)Cjeq(q6M66ahx0{<uXoAkW`orI`%F(cmj)q^MPU>CWx2{ zc!;GV?=7(u0_j-7aD8Iw+RVp}C5sFY9v4}}$I6FAP9;p%vGU;{CY^qX2MCX?a`+2; z-~51;yKUbg=1g5;@g~H9%MzX05#KQ3^coek1RR>9cj@yLLut|HUl3OTEghox3{15H zw_+vBMJL01T}I3UqZ^pYvZx1G4Wv<+j^#hvi6~$)`G_H|hlbnp;q{KRlLM?}-(g@h zt$t_$lS-upOhnfMs4gTHs?~1k1RThDbnlAWm%;Yr0Tw+xv`*mwcz0=nuk$zSIRUGP z>ay7LfU0S@8*0O$apQ2W?>U@Y<%7d@&zzL)k_&s#u1s)Bi725k#G}iJh==}Bcynz| zSZp=U>6V^zvSN|GQ22)0aA@2(+^s!_V>o7}8HJhPZ_WeVY)(4sHXEC%{NjPZ!o4&{ z5^m!%6(eSwvbU~^5!=sOEzp{1tj~(rg8Sq+FHo#It|0ldhFS`!1*IwNVIUyrNr)im zZVB`BXWee*xPhkMu*F%k{|lB&HP@>Ru~K!-fJaf1pIj@sG!G=>f^vltE)St_A_(SH zmoCsRNk_p{*=O4oLVr_L8q^Qao>pq8c&2@H$v_uLgP;pH8|}_#E34~CQ=l0|J30wu zUtL?60jP!W+p?8<vvb|yLXC1Px=4U$yju&mssrrI1N^@E=_V))^QBoc%;yh13f|JI zpntrX^xEz`Ms3BkB9=B6Ig|0h#L@{i4}~qs(ki(gY^*KrE5>1~po|D9?y)X*p7hGf zSYDgm87<kOUM04plX~vr3Wh`ysf(C04yLI^acr$Af3%4ycI6>zO!0v-^po@)<ePs> zm7*V&9}ax@VH9GFsE$KzT*Wlw!0~9{rkM@!UZZ8jA>%#YjvZ{p?sh1XEXTXOZQZn! zKhi2v(K459dBE_4lH#BeF*Vz>KCeRq5h{|1GxIPosA+KzRteOVozGV$L}1`2g>JEr zuEPLU0)^V#K^Yb0dA605^fwp*X+Am32ze_1kJ<c)lzfzZ>0(UYi)nv6us)qw|0w%= z^rO!^k7w88q=fXxBNP10go`m_Pbi|4w`MRF13}JE6L@`QAu@{399kS~|2zK9*|C18 z{j~v}5&m45giGMD54HbU&n&HCLDW$D8+Ka8pAO&~znSSswU}pDCynSF`2>;V2on^> zTp$n&%93E&HGU;sapbDNt~1+3=uGQ*l=tc$Hg5Od!1V<W*mq5_7T>94ir-;aWz5>g z@3=RdbJ}?OoEiM;47hJ*v74O2Q0bHbt6(~!_zU2eFIOk=Ag?eUv^t3g+1JBWj9r@t zc8u95hn3PnQJURyWS2!@v#};*Vy;(I&}^`z)!YFtaLkKg(E^$%Md%Bq`9FS?qrWK5 zPohEOlq3QI+E@K~xiX9t8SFNxf$4d75caeHg0TDNjN{klsd}jcOQpb$P0E*mSLFT1 z+}=@TcT|z`a^g_H{VD?QxT~&Y_V;M-cuc`?I39+|E){sIx2|&~i>Z34z)J^SrIp=! zFs0o(552Pu1AqZL@^A_s-S@5~dGxIre&<m;bs>0^Q{P4}*Rr7<@aYWe2ko?duq~Z> z@`Z(m_Lb}#4|KaqISDNpVc6R;3|>@YvCRyFRnf4X#MwgC=GG@6Od*a2P9q)xi8q9n zPVpEpTP+^*jtt9<Ryy;@wKGyrb^~sWfez#b&Op2qz*I*+4D{|E?fYY(gWkH%K;=~e z<`X+QVMBv~xRcKIegc)3gG!*xRs%lixPwdc&+ldMoqsIGnQ6yTfW$wSgMFTjQCWpT z9GwpKIg~+g_OT#m2I1SsJ|E1mIQu-**@tnN2K{q)Zs6>bEl)q}v(Te`f9!LQx305K zSv=E=eLhL6t<Vz18+i-z&z1`R99f!w{wTxm{9|#QOgvV6C;r(E{`q4L%O&6GVxapn z49-Bd-peqY3InyjxTmyqp$Og5Wz9rO7e35n`kXD@pJXWA(rFWHqp35$^Tv_F^X<+S z4^7*D@E+~hejcgi`v!p79@Q3KtayH8)d&?}Y18>wsAs6*cFQ#`u;`!jTxL6|E8n$m z;$hw#P&7sAZsK7I!^v`*JxrD)_p7W#Z48`39^n3^9Y$n3LtE>I+AVF2<gEdzRAPb? zxT~7NxjJ{^DIBZO!UPp)lwUK!$N~z?Fyq?3bsi*Tg;$u>WOvE+lrV%nEIIdPUnw%2 z{K@9+bO{d`*BQUpWw5WRX1c${o3oZKzX|T>?_coHvj_BNdr!2*mvxD{?-iNabCIZh zq*fkWcbqpqe!gu&x!^*U{`*SfP(%9mSP;-x8tch#ha!FJLK!h0x&&z*9{%wFtv_8? z|Ak4MiU&B`NyE4X<}iFQY@lm5|4Mg1@~g|`YUwpao%r2;xOeUOFB|V?df@o*n2NJe zd8e!Cc_jL9UzHe28Cd&>d_u`n)PyLVU@?<iK$ghpYAd>62Zp*2KiCg|qFC<$KEn?~ z)=;&*$oRse!wO8}#fwDJ1UVTmPx3c(+9C#-D?o<ts9odfte2;Eb)Me)?Scl|@vw-{ zh;N#-KHR5eM}E1NmJ2b0eXUDu>BVy#x|J-T>+oMx{LKTwtu?KbcLDeNs>CWwy!tG~ z*{;o?-K09kv)Qw+ZGeuH3)A`rUnEyjE+)R17ZwA=j0E9Q5}XlneICsbVF#?O3=t&H zi?Mv>5gqdLEfHlI4s9ag_2k$A(O$D|xc#Po*a+juJ>m4tYc#qsgZ5#gkrf}9ChIow z!VnX+pn2D&C{}M$_1|yGUAz6np(a3BX+POp;lDG@?;u*P4DmLJ0h%3!xMGfOK1g7r zKt}V;wE^uOu5!SI?g0<y0SVf%VvOAH{@kx$Tv7L;kFejk01m+Be%m|WQ=Za?^Dv}+ z02D_A0{jauK@5ee_4Usgid!-iekp{N9B?`1w3k(k^BcJ`OFL9n!3mRQ;K4M!xnAKj zG<~^Ozn`;qriGtu+XA~}WAj2pG#f>R*c2=`Vh*=fU4ep0yh*755U6{_Np`$}jggUb zvpvt*p%W;ng(z}S8s{yMkg?1sPC~30H!Bju?S;Fm73sHUg!p+fmLs1CPypAIeb#Iz z?K9xj$!u8g=;#!niEG(a0@?iAn9Wcddh*p!u7(TDP&Yu~7(m`1_*6_$$L}_!^DHC+ ztJDy1h~t=eewrMOOyu9mb2{-5C2o~7$uInFe&L(;g7z&GG6aOS7vJUk?Q+BS=Y}_! z-;=N7`W*(5dqpB)#}Q7pqFb;+4<GRUFl26%l`gW>8S$$#fb+&(3-6_r5clgU=Nzvp z(v(<%EMoXHWnNV@xCbIeKV*p+%lv?aB6!E4geU_A!7>|j>}3e&=#I;iJk<8{%&<i| zB0EGt)>#Ai!)|p{DfdR#@c`J-#g)ZOpo{hv5xhIwYe334)dAd_+!+51!!6B=s+zB> zKR#22@Q<g*tO{ALxtd|0R^kLy)O?-<m-{?~3-2KXA4CM4$%^jm*!%T$BB$OBKZs#k zsyncbn;ilbJ|x|brj-Alo`YFVt3l8TP_N44c>b7ye(Y?nCSw$u|0t6K-P8qTm&qO* z4RVG_U>U9;G)R@8-T`*ohy)uBbabEYu>nyuXhv0Yidq@dvrb|3{@J{>f5tKjB#Gvc zQVYx8(rg@yIh`xfwl&_GHETw>J-nxop9oSp*D|1jidzrZabnmnQG-0SdaJEDs#|}O zM*uzBCG&MTPhA}~BoNkU4(#UmwPwN2T71EHFZ}6AFmuhi?&+ky|J?d6>+Pc{h}T|x z%i}9koXc(9jkjP0^cHQRXlnN!Q;N6<XxfJZMc?hGPjVRZ#HZa$pUO)@{2F!n_*DvR zb48r@X1H9oEIhIq2I6KV!K-kblhx#Az^-%_4R__<YAr_%GA(j3D?x^TH_L)c`!|(h zTLj_@s~}#HduxtBkU_zoyaz3|do0D74>WP6pYKAXqf$Zc58V<SxrVP$pE}k)_PdAP z@(}Gt<S7H#>&W7JwMbuTT(}5A2#9GPi`_!R(13G)I572s1>}G$e6y>Q!1js-<2k5s z=NsEYRF*7g8<9J{P1i_(L63B&pE&!<z<ct*-!y}1;R_oWT%;ox6`x2qGFcy1btoLD z&-Rzn)>Qf(fe1H3eHZgzl>zcYA}!Q5QD9=yKFb-?&Z_Vfi(_ee95GXB0N<9?)tDqT z6g8vN$uOXI?6NMm#f<|Nn=-<wO8Ryg8`Akp0#?b&Cq9;IpB7(sU|FZLQ*Fq9@OCq4 zGO40G5f~I_`!raTz-Pn~GWX)y*S_t8N7A7U^uW-6ZAZ&&CjorbWpY<7Ev{fl!n#O? zz$Temi;_96FM<MEYy{(Ib?v@$6D?$&ze($SvX|BvmMYeH((6C42?<^fqbL$`tJ>nB zO?>8wP5iedO&*RYQ4;GDvU{vyU~AIU7|gYqm6kj~@(HW#CCU=*pie=JnaP@8atcf} zw*scxo0zJ?H5DFPhKZ_7*dJ3RfFJBkWmsB@sc1sUJl&;$WF})O3vUGblc|Ei$W*~# zWU62=GL^|r$y5oF!za&F$GDbh4*kLeFTZ_kUxmL^T9uSmyR+}H#?)!uFxyE@++nf> z8>SB(VLJl%tJA83!qP0Q<A{RI-EniXP&}j+5@p^AzS1H|#aNxrjfttnwuZ&_zQwAZ z!|N4@cV&oonWCe2pTaBf3Z#v><3-vI#7o)^62s3bodzNKSuqpWh-=vP*g!#fS+^j! ztXl+2I#istr?lyOPGgrPY|^)=Ib+jRzc$IRR$=l9*PQ0vVp5|OjLkZ>(a!gnn4ZI| zPhuOpFr54=>Yfk}k~GPOkyG0hW+r;5&ONI!_ce_LgoX(@oJf0x%ei`)+p3L2GhUST zIvy3WGAU^X{U)wCI(J+wBw4r=mX^l>$n;Xy^K+K#ot-pDb3zP}v>eRB*}ZlT3SC*a z;A{N)1HV)t9YWq3(WL@BK$6iVzf^z<2?vzpk_1HYEXgs-F35;gF=RN!(pO+PB;`n< zt@sCgibQV<ys#Nfxqtwtvxn*KrOjr}yL)M~jhqBmmGYxaOp41*QEZs%g_KaTM`t)R zqYKCbR+c;0WMp+kFY@kSGzw=&9!>IfENl`U3AJso8Q9f7V?cx@09_`}wLW66_{W4v zyR-w$C?y~5lY2lIs_p@fcnxj(1zU%jqH%?yu3U*o(J-TxI#ja4dpzE-5!QT&k0LmA zl1C}t8Zi07-y$w)-4EZXo3XWYg<5mI)_M_-L@f3dO`D(=<{<UoPbKgR3-Do|234{t z^-HcWJ!E<Vk7EL?D?aj`<@4X65W4@xU>gSTr+g-F=3dQ!2_q&CJ)4(JasMfIpMpDk zL`iR};E}nO87o4Df`F^p9)1;5JLiJQA4Pq_uLkuMGsfDliLX+Q59h$Q&ssOse)Ik( zt{c`>HOvX9k(RFv>7$aTJ%V@s{pOAS4i7-$J9e!Y%l)va5XqvU_S^q5-Z^`1do{ke z@=xLmMs3(=m7qBfjeH$F-X76d+)%{zGn;+x{m~3Jo$!mdek#6TXn_5!R-?zF5kla4 z=U?xOcPvaX-d>X?0cF#MGHvhLg^8jErAU%pfSiR()LdPiE5smk?Sr4HMaSRPNu;So z$KUbr!e|apck{%lKY^>B941HcH%pLn7jwF|j1{=+ac>!JC%O0%Oy85^IF_tdhI^pG zVjJ=L%>0ncDigdO3gKlC6UJi)h8PP$0mPqw^mlJv!}JZA!b)@R_|mO&qpa3tS;WP7 zf2e)iXTJHNhl(^bA*j!7FYH0QntkhA_N)U5v!>kBNpO8_?S=ttNZTMjNYSy)q$%AS zEN>SrpUhsn)yl!p(9$b<-^JUf*PhGcylq6|tY15`9`K-~0A<A=-+zN0Jw*_CkH+FB z9##STLPN<xTM0tnlCviGlD;wx4jsFR2HlS$G=p9OXP@)@_hz`<kXtI;Rk;syIfvP_ zZn%wg@(hpJe;mS5cPJcHp!RW92uskAoMY<Ii~#a-MIN$tKn32cpzrz&rbnbKQC(Ue z=4gu(Dwt3W;hP_-`(8l%zy0e!{qZVs2Cx4?%DO%Ona5Vpt^@mgBJ!HLC$%WY*SUdN zS|73=X2YA6N!?JJ6!-f_*qCldY$#8AjQW_AL?y91ly!Ul*yAgca((TLgMrcn<>cUd zo-`vzNAKvEXl*u*`S}*+AZLfjjzyuiE|18T7Q1ulRA55KYiPK+hK71}T(r$QeV0Xp zW6q}S)KMeN)acO66!NODHuKZxgpVl}b_pAoa|x$U6LM8~XO?YzhhH|;8n#sjiwh~H zl*ufvfh!`SDu%aa9JqI76{ixsDfzx)2j_QrST3TB2}!J~zVP{g%`)8>4gNUY#jOqx zI$)cM_p60!5ASzmhW$~(9r(0Z2p7wJDtpWt<}G<@e`gw&oun9C=5naKl2VSMUQ_~s zY!S`Apr0$U_0~M<+fCp4o?@zUP$ng1cxw$88$mDOWlKRez%j`&7#p;P-HF26@<{I8 zBg_!J^+)}8<}RH27Iw(mjX0m~#u~rE(xz^Vw1xq|PLC~)RQb3_E>{qBdmej7xp@%l zi>BEg$gk(MOk$bZdW?Ra%03D0wiPg+ia%_DE*+3fZ-}!^7oJ32#oMyt5Q_*-Hn#BY zinpSLMan43i$`|*pxz=~rl{ST&mE#Yu0?WcyF_O@X~-Ry$w5eA2`ZAB^ux8}_s~U2 zloZHe=~l9`ir$1;uIDCfE!lW9k>c6^lTn#ShYd~hKRAWUWC{!?Ir>m6$!fchF{=b? zlUkg045PQVm*K-K7-{lSi9kxyPLl}_4as!lj9bd`l78oRR}*LW{$mmYFn}`_KMRH* z@Mm(yCXe_LL}L`BM%(lKq%zWo*JQ@PG5^LBZUr=blUd`5qvV6Q&7sZ|PWq-=U6KBM z%!G!})YleZ17tvb#fb$cBda}@mWL|%Vk&XQqfuB}5*g{x6Y>C_=PTi-1NNM4%Fa&e z)oqHe-iQ<W&W?NbXLQJIcjdOOYzcgLU07?Nd0Inws?m_F$XT}Ok&KaOg4?h_Sg-{` zsE50&>LG$WiV<R>shShz37UBdyeV*qH&S`0NN7~^sBAEpC~eL~dwzLEGneOot?`qk zG@W_+Rx}4o&-V}?LeVVnA)q_V2j{k?&<{8uUIn!Z+Cj$CIwn)^nhgEd%v|Mav3n`b z5lHP<oQ*~mb=7^u-14cCHL`4zxDk>DA0-EvRq5^p-7u$wCEDYNr33e=?vM(ij1^V+ zceay2_OoToP{0BuLqY!HgS3KpD{x#eOK-h@BN2JBdVirJ=hFLyUc`K%7w<_T!8wD$ zp%+Uv8O{r4!(T0Rl7eRD%b3YiyUZA~odm#Vav_qO)PxqGKVe0tF|Z=jXas`{*BuF| z#J^lgj>6_!VK1wvt64)+D0U`CWOe)DqB@79QQwuVW=|{lYaq6jl$ClO8Xnb^7E)X* zEv-e7-CdHhT?lKo5BhODFK5Lfqu@owBAMBYP!Z{b@tq$UCWj4PK~Kj-wIAQ&zGZj} z!-2<6^k;hy)^ue<89^HHdefCAYha`&Rh%#BP1m6kJ4xEebBw#Cy@T7tddqQ}4tNX$ z+^;e_(uALs@C>u`=_G>{DWlq;)NON_4677oD~!^1{oaqUne8Ny+}NzltL3UKX;iMn zk{VT&MqswDDvdoWSq~V_DstRarP13;^lJ_3a-2r>1ETB51IH(oMrsBoL`vteUNsw^ zSP3GIHnEtWU`)k4DG~g9Vlh0ErJ%W?KawJcUWfae9>H*k)Aq+u34l{#s6yjg-Be;I zv09)}tmfWJ(=oR)4F5#KaIytehM@{WMe^EnwABiYr5LHsJZXeGvk^$krJA}TonqEx zB<G!8N$dS*7jrJ{Mkw=M|H7`UgIz%(x|dImGE;@i&u#zR7*kb6rV3`GmPuHwu%MDv zb9SHyEEU-;tsq8?{Tfyfsh4*edbo!lX}R_q?mS_P+YTY^-I<mQ?VE0mO*G@+{Ie=v z$(~Lc=BwtFSZov6hS)L)Wj-1(PBG>-Ib6b|T~y4g>8j+ey1x7{id^`M0V>bl<feEJ zHEAt#f{Hw-DTX#4Zh!cer@C$jV%j=(#Fjo3Mzr!DIh9z0!KT$t9k?b>%gZ9|?h@BV zVlJDaO^<7Zv|&JNg#b=#1?RQ7#zQcaQ6qB5{b)8#P_x=2qq2x0O_vn+4pSoc`V6mA zyWDc$Uj1?+lBpL2IGuy0GoHv7=B8$M6X$RQ7kZBt)f_WI3In7<+8PlL(1H$X?(C-A zneXGOZ)aEg&c`3&U=>>GbP@ID422Wbs(#N5QR!R2SNmcz6i3Okz;s#y%V)wDDLNp( zsgy@4aeU#@-4IQ|C_-4q^(}dp9!|04KUm(GOmfX_ptYEaEqVR8<vJU?ooHg?e$~>O zGIY*Xwm4rATfHTB=4@rVUmziAs!OodJMVvTmVx$#{uz**oUWM9P&iw0Wtc?xH0lZq z>S@nd&2dJt-~eq7hVBukGES@*WcQtmrJ5G@Eoob2$Qaug*Q1hTbR#zFu@wqS+Q~GM z<xHGUl6KnZQh>4V$)-9*_+T3-7cD11IO(xchIsPlasL@=H|s0xVy0C23an?{@`~c1 z$3p*=r8mWTA8<jw_Z|&R?{Gqq$`SNO%z|;yzDl~&h$mBhE430Z2pd5PsS~F~&qe>W zr!5Y8e+6HPgDzTCo~wsgXN?*SQ*=-=mtuigm+kDNPFD~HO>Iwm7}WM)$6DZcQt{5o zvAhgUw&kQBB4Gr<MrARsGqo0;Mz?+z33C}QrxfDU+A`QhYs(06&T|PGTy=mC&Pa<5 z(W7MXCH{ScI1^=RA<kR5WINd%21bC2W}EUl*&a&`+hK6Ji@_5let(0lXQ2v`J%ak; zXPI8{M<BUiftjfu5xVb7ku0u0u+kWj*7xvL3RH1xEhJ8Bq0o)xKE-9aIpXoIQ|u;A zv0kp56)ESALSP{IlFIqE)2N)&h~JgUd1nP*r$srZPFJ9uQ`<AFoaa)k^xLPL)7-u* zm2-mr^eAT|z=J_KCrJG2wbQJeZzzxcrhd*k8lj-xe)-;tXmSmMog_t#ck+|mZ}OaJ z_LF8isS_6`TY|u^N`}YRf3fC6GIz@FbZN<v-IoN#J=aQVs_N8)FXv(vK90;-*fg$z zJyt<;)T*vkcVxKx%4yYO;pV(FZoE<G^4}P`j2%{qB+FEI7%D0(+h;61HkYl@8fo&B zGo^;glGF*h-_C2Pp4%4xxt{3^$6-mPys?QXQxu#Fupqeeq_IN@XX>I~mc(jmf0YTh zbg%k?C!2J6FkRtD^<cULSzk<7M527_mor_@c=?yfbSLY?+SDsd*A*{s!E0m?bOK>i z3x=8#%c~RlJT7Jn51w?1^gGvAfgb1q7fCDSuP)YSod|&By#<5yij(UY^jb7x83DVs z!d*(G*NV>$CGQPRGg%I6=`zOx-r&-Dp;ltlP<xg}+;iCm7QxpOO|C1YA6-|f_6*vP zI<!aaS*+$1sS6Y{=H%&?-Zcm-a(m~S5Lb&yEF{FaDsPTS^i`XcM*KF`X1#Z?*l6Td zbQzAitqC!4s6KfoqD!u>CZtzNb(MPXxTJB2bKaP}KHg(p_Rex+lUW%D`z$Tclnd(Z z0UW3R&yeVh*&FcpfObLL**=fK_P7cU9F`*Qw6f`eVTIa*qy|h44f}45Wr`6(r8tD^ zSTPG1jsDC5<G`Zn%9g*`P69fY$pX#Oc3_dNIK?E25TL!^ykRdnDWFbT9ryAix-kKu z(E^F4?xN*gHTZg;Zqy4hX{CnTayhT7@;K$`M)g+mMpksXkx{H-7!0w9^n$Z7d8Btp z%dsAJ<5;8??~c~kKK0(u=|=xTKJQlcC&T9loA^9wFLLb^XK@KR*crWxof+LsynU>E zp!#hO_^oMFzv;Djh?p!y;I1SBlI}7uD8GWCdlvzM5+YDN<Oj98F`q6G*lZ%eV|-Bf zRf>SU-z)+O*7*MHBmyoDvO{j4WQT~AWW<RTkIs4FWVirklpHH1Rx!<Hp{dTOx6t&O zi-e{r+FYXIs*Ji)Y8slYTx^WWXG&~R@BN6)DVm2v!Db%oI!W_DJxXzq1a!$$JQU{P z?j##6`dlkF4+-cl+30N^?EPlhpgbsz*3&$M&##%3hO(!5sKVEq(|bYIpLs~*l#G5l z&4W?wO!0Z@y&pb*;M9(0TxjBRTLGCH)FMNkLvD8KzyNyE^ugy)x;PiKWO}GhsQr5q zYr_-rcU;XouaAY==NO^(rz)NW>Tm<jF4mqhwLeu?`}Te_Yv*HnAfbZ1oFCw7*3(rG zdUJ2D!Nt7|i@I(#oyIA-x87>yTH1(mrnoot{%zpi!@(7$mhOXln>_jk?!E7Hac_dN zPwut%m*!p+llV0H;@&C<y}7s7;QeuL8s|)LuMy=;ac}CqAMQOxALB?9_nx68=%*7a zyWWK#;>r)^nwq)KC1?V=i<Nu(81{ZMD=+V3aG9N)?!J7CDtx{9yccBs`50-OlFv`4 zk6{!$Q+%F!?}yKKa0%LdK=8>dL60`^`LbI2MU3L`&v!e7e(vRJd_HmbDY_a7+%699 z?P}Qj%^V)C1~zv1H2PB3RS<eJaj(JqQ`Tvml8H~Jt6@YrQ%szC?}v%+rK21L_4VR% z6n2~~b{pg^KqE`;K3xok{z|@6XU6wmRiZ=7-JINBO!tnX2(UHsvOCw0+>W|oJJf7# z`?&wy8rJqvUUkBQ1)#5~wnyXv%+$~Iw#seo=1uAo3%Od6Fm7jzx%4OvWfN|rSUCDP z*^3-oLA`dg^>YourT`4%$br7SjoTl%d9nTHZ&o?G?dTu348r0~aam#$TzhlhwG)co z(3_ATB7(n&WP^qyT(b8n%M8HXZ)CMD_UKvlQiX!hJIeG_jxSd|q#rJ{22|0eUX*lm z?p!$AN9^BGQ4olQ)sW$fIARbiG8c@0MHyNxty0@Ph8vv%c+U=4F)x%}GN)L3HI^Ei zHFd91@vMNMh-WqKRV-I1a~Xm!R(H!DA#Ea9*)3$C&GLt99*en^go%3D3Sj_qFT%tD z*xXX+gxMPC!TwKt<i@JOL;|v4l;i<<q+X=nWlVDBRo+uRSPyjN%c)p^bj5S6SYSsd z&Fo9IWy7dOqn5}9M&M^<!$>MVC=AIZHy;#-TtWR{Q;lv((Ont38b$Y!qOonaM$x{c z?fxdBo=Ir~%^+>ZH7uo#L<>$Q#e&p8IH^_1cO&BoAA{}OCC(~uS0~NI)7VBv@K2&5 z_$N_OVihAF0~LMfK4dHnRHMj>whS9GDu&oi*5ESbn$TtmWt5c2zfw{n>`gJTiDqog zItegpKU;>szzlwPncbY`-sW1Wc5d;Kd9Eg6MtiD*QP<Nvz)e@sK>m$jgU|tFfiYQE z8eJXRld3wk{g~=~)mj`=mJ-;l+V<m8oUZPCJvhEbyxsNM5L1jaTkOAw#X1o^y31ky zU8BL8Y{Wyc+kko$t^ruQi>$$?AZz=}A1XJXt*u!8oxU3yg#A!1SMZIO61VVod!A2w z>u}dz?QU}SYsMc4q?Fd;Oez*A4=5I+#S&(`k4@mX4IzN{P2i1YJZ%Vv3QJl=W;`~5 z*Uh+B$}}W)=;c@v6As;6hM>l!Z$3pc-cd0G*yHpNrZD4m|7vM7ZpvJVzO3pq5_WVF zsJ@lb$N)Q@6ncqzH_?3*sf1!YPOTrJb%GCG{IeW=c4g3N^ttvF>9ezmK3=?E@v`81 z^zyQ%U9A@6Q4NB*zx=qYmxUr3*xHgF3ABGK{Uiupq6bV(5(TG|=;3sdlVqN*I`>^4 zL65pgc6v0_|Cf;M>Lkc&<k&%SG%qdt@_OeUT;xd7V!~5WCqeqPUeo~<(%Pe>j`Y;9 zuRT^ygakm12-mLAvf5^{if3fesj7!@IxOqmSCy8vy0v?!?`>PsvW~r3mw1}!)T1@F zWAQYslJ_;S<(W6Hd3PW9C#g>Q>b^?uV_zR`FbLp%>xk*~u^xKFb%*qbbVq1xV_R1w zV%t8|_gsdc#;Wf*MfH7S%&j!9alBMTe`7Yi^!Mhv{#F5v>F<0cR^WoZe=MDV$ZSuO z!r1DF0y_Dtt)WZ(ks$wisXyGRs@%Xey%xc+JyP`|iz^eUcNx_HMMgE$d%bYj>D6>U zSGRsou+`}G!Cos9X!lXANw_FkTU8g!FG#rH@QWI?Ai+U#aqy9LaA_4vR4=*S*wfh` z4DlTWy=xC!zo6gxpa8vV-(0_-&-VmfOW6pTaPivDIaIcBu40I+oVLnYtwx!yFYy{z zcv&82J88`KmFqYc-(?DLPlJUy5Ev{K*_pR6HtVGpaQ(z#6Y$?L3zHzIiT$Zsn0Gf3 z=DWheB*?$@;Il9Zwi>;zrbiG8qZSNVK5l-niC!xgq+&&PS{B?Ef`vyA4g#!vvxAT( z@<2&GxBYSu+*y!=AU`176Zrvs20wOn(m*v@e6w6gtbi7GHPPZbx42HuS%gAdyIa&d z8-pF41o*#|xG$I9P6y$>zJ_z$FT0RV<J3^UvqXKrcGI>jRqW=<va#}%m(QBccG8%? zU)oK0YK>6}a(i$oQ0Pu{Q`%NVeRnOnJm@Rsa(5FCu3Uc?3C{WoLGBW!g~({$J;vo) zOqp(ctlj$9IJT>kp!bbqwsr&GChR(<#fam@BEgxppMw2>PCCSv4~-kg%0<Fl2Cc@s zEAshl*I0#j&#=#z#{6i>yV43c9>^*RdTqKo4L;vJO{}?cQ&q5L-BgJ+!4qIjoAnYt zUmrX3c6Ac)-?7|#f}qBLI-{zm57C#}INU^=lVL|1^;W$qq7{;hU-8kZB9eX>P3j?A zqg|Z@OIKkERVgyFCjS-zYv9#xnN2;_P_~N)F*T#itk2T_kLCZyft-_Er7O~Ksr*CM zJ`~ql@rtxDT#@$hN8oZR+-}u7xp!X$?dLO5GuD{g8*g0s5$)rS_KOiy@cV_v4ed;F zw(Y95N8rcvc&?-0vxZ|cANpuM>ykB|`pCO|@+E8Q@C^=^#Oq3sZqQ?S!x~?}Eo?)6 zz1qX|SYEHj7tSfKSK}ABhi1s{R^tUQ4--Uou^JCd#04|O#cFKeU)aTJ`~qhg4*9KW zkJn>)s~TUx+5JO)r5d5;wQFbcO0{=%5)r*%NpYRb&<FAhH8%WXx;;IsX8MxcBNY}> zMbpVRL1dwcy5vq|$>m2SbnqfR@{V7&(XCFaplKWAS%RAC1z@OKt17o4?&>7S{We4z z`zF_@Tc%U18Ztk^U|o|;Lt008^!Q2wbwgmGGEiqB($T<(%`-d-&eMJ2QEgtH8Q@8# znHP3+J{{z$f&U>oe{pz5ZS_H3KzSl7AbP8lqtSUoR0WCO&ObcH6lY2W&vsIio;MVK zUY%C2gW^I_cp>qpx^F19+@5YOfGldghp$F6r(}fe$pHMdtvy)Z(0!aE9F%n7Ff0aL z!CG9{-9lW$s#Oo)S;Nl=f=Axf(}8hHgH|zd;jmTc_}<O>+R~lGro^q~Tz-${B<_mn zrrl5k0oRIxC}81zyS-^>=+2HI&u)ziPEwqYg*m|cCJ=T0#0HPO)0#pq(}}0RN%5R< zKHEuS_$7TjpDIqYK)2iYG&jh4G`pe}6)>x2NO35aWp3LIuWSXk?G7iF0=}^~nWD56 z|9l&6+vU(?Jk)MhHlWRAWO-FMYh9z<6By#d<=qrWMS-M1sT(XKQJw^Xj<Ayr-DL7y z?IYIf%Il&rY2u*OQ2h`=S4B<tq!`<Nyy57F<&QR9tY{fkB$>sbhyx!J-T0XFM`y?> zf26i-xF&aJCk^oJxF+}S%U$+$(N&^H#$(CC@M9I6=)|{vj+HV40-U+nW<Hqhq)t!z z#5Yu(20$OVY{LMKV6kI~K>?`7;#MN&q58a)h=h$Oo~s&5^Q9?lFA1Baf(uMzMXz1= z*TB3k9eL6yNDaVGwOm#wY{s|}jz|^igw2pkox<#?!sc?>B*K{Wvd3-i$rGrZ==RRi z+e>y~nX^{z4}7>ym$dn+*`&?PtsMpo8b!3vr7db)C2c{$jPTh`8o=wI(orla<^lrp zv$V`qVSp#>vtlkqjVo^Dq}2^<D>@t4R+e^&M7qLY-=au1SJfn}Jz@ZVD4gUUH*MgK z>ZPpe@d_4YRb4(^X{~^_Ga7ex(g==5Y5)~RO5osMV{Zqq8&(;rOn~E;>@^J-N~ee4 zZKlWe)vCvKO&-WSHj`}drUqif!*?5`dlW~j&KvJImeg~cP2J9$u@CGLi(ah@e8r=m zDsd7cX-2_y88VNN*sc&Tp3hW@BGm{vSILzVTSSeJZppCTam{aW8g8?A>b69VApT@e zX~%lKCpU>rJ()>71HAY3GtPTygfq>1X`r6Gw^x&O#+ioKe|mVYQu$Noy#$%(WR3UC z-f_*AmIdOH8t(<WiDSZOtc>^Ex~+is=DCV!js~n$@0~c~yq88e)4Z1k>dAYD&J6EW zG8c8;OOSci!g$YlOuXlODBg2@D7{x&P}6}W_r!8Rd>9;B930+w5GPsPjdY<9i*C~q z9`$aQ)sC-Ui3jsQg$L!qSX$H^7^n%<0w)J1{26y(%pheuGuufWdZn;=ERM^XtWOpm zi_@e>mMA<H`7(iT`7-XYG$c6Xu)Oy43vTCg1OQ<Gcl+e9_>rLQu!Ls^(_i}LjyChn zGun1`QkRZ4^H2<Jy1=^IL&<iVUc!_-l+4re9C~;tX`ucj73;yJt;BS<hhqGJ)9<o} zg0C75r!*2~6kL~4a7vOYmIxyu_ckO|G8~*E3t&7o({y?%S>BmblFDwAaI)L<Q18|y zwW(Y4W4<4zB(_uy@$h=B>jwq~<M{e|%^nC|FE<=myKGPO61pBeed4q%wf9yeLrd*+ zoM|ZuE*K^Wl~roy3LNJgJ+5G#o!Xw(b#|=bd<G%u6z$+U;yBn2Vo7=I+EB48PwUhQ zqKfL8JKN&K(35o+$Ms}$$*qIf-?bHcGWfN1^dF8b<0qN7bh7^sA(?=HXgRqC$vnG4 zj`znQhc|xyV;=js$6s*41sAqjt##`+V0C93_Gb1C*6)<t7aZl<`w4h`X5WyXGLB2A za8;WUZ;!-E>>_UK=XVHmk0Ca*_sYNd{n0H@#=Ns_gEC~dede1VdT2TaU_DY=xVhdM z>05TQj@@Lo-rY$+d~K~lKrIb}&5W?R;1;Yejh-_DGmCc9G<)r~#q*)eWL5Njh0pfn zao#qfaV}gta{=IaJo9kh`1t-C&PgCX9)ROM><ZwIv-!`nejS-QgKmN^=_@Vl$o7nO zclJKA0I&qE%Kz77xID`JSj;~y1ALgvIn1VY!-#N?%sd)UBLfQx{OwKOw4@|g?B@e& zMA<7)d!{u*U4jcl4HdFF#|Hzj-MQo9Vg@9^ke$bqNq2n){p+^Ro+)H0u(XmsfG&%^ z4(1WSXZ3?~IVrMLA_cR(3!iy>Wm3ANFiiwF^3R_A!(^W|q<gCTdtFk6YoW^fYmV_D zwA67vguXbzhY@92+VjUA-;D<JQQ@o`YG|<A4#A4uXvlpniw0nkn6qg+0BWR}8UW4s zleQgY!|f<Su-wR0d+-WNhF(rz1TH;d->-NvM3*-{o<qK-j-F}_2U~A%k;}=_ncD+b zRQ6Ra-k)*c1_l{)j3U0BYLD!`!WOrVlkNouqBrcjx&nU`U_+waU_-8lgKl+r&;i>_ zkL}e?BkT|7XtJO=oW!rTa$NiZv0;De&VWyT{Dk9Isw0vDnakgpr{;E-os<G<v?@Zb z%aS*N3qrYiGn%H1=bQ4VZ#Q*ymJLhG2Fl10CIv6Sth6QE=_R~uDaeM|PI3%dL2EcN zT`J)DJd$UQ5UD#k>c1^_;nZI(6lDn@?J#PIHGT!E)^&L}6;6+ED(Fanl9Lrgy*-b; z!<0~2j8{7X`nLRfK0PV1OpOO02kedn)2xK~X4r!*{G<xA<qC23bz_q>n~Qv^N0!`J zG4c$=##JKKeH+L&8|_~PCLvnx1iCqYNRqn(Md|fc@tg#VAEkX=HJEgT%5YMKhwG%= z?t(|R5CdH9k67vPF=Zzw?YZH|k~Fj5y-XI}D1R7BlB9U2?6VZk5&uCU4c2_}Ev>N? zVhCW1$i<!QdD?<d7zbn+1ZIzzMphfUItjX33B}t^y?%Co6H(7xkzzstm46`0sT%U? zR5f`m5s_f^(3_D7WKC282k^6~<P@vLom2=BLo4(V_FC)Qpi!~T?c)%W1X_(or@CeO z)+PcyXo~DJd3JOXq`y~65u~srPfCY4*+ibBkfBzjLqwmTg6QL`tcGY*X@7QQ08Tp* z=D%x*kRW}3Nd%V*XxNl>lZ@1e5O}W(Nxwu$0Mv+Zs%LH7)<lGrtE$5OYzh{&I+tbb z&oY{7M<;>$fszWnG?j~pM8UO|tVu5-c)~eoB~9gVx2BS<ZXrpa)#&ruQ@17unn<)_ zWfiqmFyhmhLi`8{!QWlVm~1lZn*3l~*%7ck$j;lC%aGMba;nFlygTMx7D%p`9)-lz z>2Y%8*wIO#eXtaf(pta|NXFb1m_)?INFqX4Ecp>KBc`X~>Sl34*Tof0*PnJvNP?_J zjt?)fJ^n1)9>2n}Te5mtc8joBcfeZ9yD|EZwr{1m-gd5YFev_=1-?5*-Y@WX^#uM@ zxA`85o=ZVk`8Kga66)K;mX?IdGBm1iz~Ef0*vh8#suJXPmvZ7}qGr$+AP*FpnxM$H z4X?Mb7#0#unp7cfH}%a??F`$lPJ*q*Y=2TFPKT$5ivJLHe#n6BC1L0pYeEYw|4?^0 zq0_m$iDoOU^yhi9en2K``V|#sP5)Ar{!5vdP%}_cwNn4x8T6AV^}i~&s-g3{qSSvO z=v4#%gR7CiXxgbz;fse3fH87Dq9<qE6C=4aKa`OO_XOLWf4R@1PDAav_{cC{xJ#9l zXZwrC%5#byR`DBlbkbnA+b%*2pSeNm62SJtH!!pYs>UE!f&Ct$_zz@os(qL*Iv4W& z$?o{$6oIf{(j-q7hGLjnH@w!GS&Z{!XZev`<t#@lv)o;qB`fyJs=d5!Xdmf0%XDZn zVVr6oUD+(vY-O{Ywey!PKFCv<yHbQ#)n-|S_$;vO4#;qOvF9w;f|eG`(=3mzY?f-~ zu1jNp!Gd=8Jqn@|w|#ai(o%R%$7d+!7eD|@34G|;XKQ=kIoRH3X~FUF^Ur_GW0V`T z%;5U<8!mdn#g|NMeBzUy{FJ23XU6JD!owA*eHx{9-(XG>4p#Oe%yv=}kFl}|GKYhZ zoe2xb>+?AC3$0;gB6#%aQz2=1-om){^YQ!?i#+OG-_51ZEky0m^4061A2tpj7<|Q@ zxa@SKJ<!6{r>}l>`-OX2Lpzvo@Sj_&Z-1;MLgt}PUe4ah@lOu9-U=;)e&z?ocNVz} ztwYz%%x^ZJd-D8lQu^WSCux3LA?rR*8`>s}e9;7j@(`nk))!9Q$3v={IGi7trd>aH zk@&yZnkD4%ee~prbW^A?mR$L^KYQ&)pBb!PJ1ihHVFCcslRm>u_s@C8SLYdfsC5D} zwF{M?4x=jP*}&>0#A+(-lAaCcrdgZkQTFChK53h*E>>Trvty9UFvt^Z5D=$O#>h3L z`~rsps^^w)1=`nNUq?#@=DG}w$HguZFs5h-%=%&0N<RzWF!_zK0Vl#_x8uua;!9+| zIXcJ{fo)naJbEBodD8a(cw-5KM+4I8_l69F$4=L2B+#fp`=uDIl|ZOsBs60m7<tE^ zl)%^yw2YDc85j>zU0A^g@i7TtE~o<IEZb@gN!Bgxj>fd1+n58o`<x!KXL6W<cw+{_ z)8&s75WeUHziBM~1E1V#4+g_UZ&l4Zcji8pz!H#-h~>)08EAXAfw!E5S$JeGWZ^r5 z%&GdY=w>V)u$8>jbw2kNhV+~~hT^#6xq(jhaAZ+ATCePAguG<PsHav!r0LY6N$?x^ zk&m^+$=fpyKWB3GXn+t!ULj{s0iejf7cdk~6EyFT)bw-lmS^KR9mrhZ9IAeODDx@2 z^@yUc<&}ABs8Hw2DDx+y_lJv$7=8=zgh}_U%-@xf;mRDl#nHi*GpEdxb_9XVEF|Si zvyjM4vk=Co*(?OjEOSBwv+|y%im=VfdulI!{1f5E`$rk42hTjSK0H;JBA<B5WK0yN zg)k2xYrGF;2EAs@2HPVC4)ym+ZzZ?+aBg#zwMl!R;aQXlB)9oUZsX$&!-APN`|k`f zH!lR?eU1*`PwPLx)gvfyU&V<mlh72mtu-Gqwa8Tod@n4%eO%h{`NCawdnPlTqy)^6 zJ~uf&J39#scYLg}!E?;gmGmdmIhnSVn>JWnp*&cq?IM=bBYm7S!%6u~doqyjH_;Dm zUIp^|lLE>Z;QGgd0h%}c4^5x$|G-kub%w$g^zH)3N2|n<3z^3~?(tUVh$_ce$vg>b znWrWuoLLyIuV#)^7;zG>&n%4iYNp-Ud46T}IonB1yiS~}8Oc!LY8^o2j)iKK#ye__ z30}4FJR8Rb`7Dt;YmK>3t2REUkxx`d#<>+SQwRIWMPn39VFTXh^+wexVodu<;S}v3 z>Gpu;<!hJ+bP%8A0_`8kCGLEIcPde+`2y<QUA^Ur&1Kl$dzn<)M!^P$#V@-~lav&> z%2sgHeST#T-09P43g!~?GzA#{kx--ddFTa0<JDR6D47Y(68rYI14zKS3ID+B-G_l# z3^<2>)j?7332)WE8l!|$3vV5}t}H^ELq`z>f(shB*e6^VUJyK%m$b=>^5#ZZg@Ucs zBUr}b-|g$D9SwAVArx~;0Bx)_f`td~wV!zoCU7w)(7<+kGlHG?Pbi2_uaq=7M9%5_ z&S5Mo!z#4rzjVaZRi@Upxw9`^Bx>18$d+Z%SqE-cS^CKVRJxlzbAEL>hrGU35tHlk z5DqU3mxBq6SwG##tSo%RO3NnH85z5_B*meE6bJA*XhAm~e2E&Pf^qqByug>ooQe4| zs8wU)*JhZViCMTTt$SLS_)x*b{M^LEJT2)$&A!66!Oh0o8$oK=%~Z53Ce~MHo{0&1 zFfl&|6O)CxEI_R_u{J+^#qB8Yo_t`fSdleYc$^z5p4*)(XLru+n_uX>#u@e?8nH3n zt}xW=GjZN&SK!$)@qk)DZ|i-RWRIjk#5}72BhL3s5O5v~AIvRlcfNG74^CeVW8=-r z*f-^|y)4=)x?OX*@STA6sMbCT4c<N8ZhvOU;K0p!9It$QOfVoOC?!!QNcZR0-J`<m zGy|GZRXsiyq(MQs@%?eE_5wFV#I|mma6-5-)h3Mx$vTcwVs=j{<L^>pVmZgQKKs(( zRIq((o>q?{bkeaOY&Us}Sqr`?kK@?3MYCza8n)k@Uw3Td^`6+~d0<*=6V}s#Z7Ad3 z%#|l~TZZzB774J@^)x9R2fz@Q*4I`2j<t4*xH((XX0|&wom-KK-_8TMg6Aqb6nxl_ zW3u+jWrA%Y<Er9JJey(7j*?ol6Evs{cSj!1nSxQ768w$B$A)irpR3CIj3-!8ymO9T zcHPh?|DO>518NLIqK;aUNgiWPBhiDvk70dX$p}sg&M{Lu!f`vI)1Zxi&UCyp&-d=j zWTMa3d~Hn+<`f+nl~e_MN(wpAL`Qd^N;=MeqiU$%n+I|_n)-$^ES%v*>I+VQB&=eW z(MqJ$y7x*tZ8r`t7J7qUN^cybX4Z;|KBY9#2uA>V#;V;v1KsQF3YtLk;0~nbM!cTx z8UknG0W7j_pG5=`2^(hxe+^rwF+N5Z_jgcQhUlgyjb0}B8iq~8Jv>s_lOuRYtInhO z0n3o4*uP!T>j*&1JvV^$Df?wt&O$xAa#vb{c4|G<TLT^9WWfQ?0}nmnSb1w(kY2~F z%&{OHnvValbj0~({2LrpNl(v!gt?RX{4%B#XJWTEsWZ6&fn6$%HKZ1+cftnpU+ymA zzlzw}k~)!;>uWxYwuZ&GNLGnwSL@%gb!+f1_a})6kQ_KV6Yl5W3G1?>a&=u{rEN(d zU2E9SeuGm@PfF;9Lg3kB`V1jvvr$us2K!*ZUiS%RI|&VLrGN%lDKweHN~627V`tOL zBRCdJ;#ImDyZz1j(O`DuKp;pU#{(q2z%@RbLaJHTJvA^Wi~xh=Aj_rf$yGhUV0>h` zg0gG!IOXNj^=f8qt)DFmXN()ci))+}nIPy97&BUDJ``vtQ!SGY+cPJPp><<WBtyYw z$U)$ERV`G7Zg3d&mOjJBOx#6|!V;qkfxDa&0bM^woc(Pnlf%;?llfm@1f?R7OS`{% zse_O#G?CGwa|IR$B1{A6+7j}4UR6G!dpm=h@9dUPdJ#!N<DoAJg?tqfO7n}Oi;{#= zDlKj2SE+}HQWQf(VTY55s@f6k-3l2c{F2cTZM9`;T6?{a$dUShny`<fnvpbo)#{Cu zR&Nu?4X<Le_`o8hux8`kPWvYEfElcDH?y0~ydf$P)=e@Q$P&wNVV2OCFpueQT9Ch* zxbE^O6G)i@xsBqwC*o0KbGNS>m>FmdoI5ZeXNECX?EP&rjtLfOPH;sR|6Y~H-eqBM z)PF!2vWnQ7-*6$Ps5XvuYGQ5-lll3<CFTjbe#HEb*245Ib?jLd`1}c?e*u-Dmx<vJ zH2j@)mIrrn5cRnaPdajDydJjwq67~3^U|?Ll1%$^5z2hM2qiUfzGD-t_y>`spS&H> z2PS`&lx$e9;1cr~(EVJ3S6#1ks94eGLG#TsTkX!xzi6A<tIHj#C@7Kz=Dn-JObsv= zYi|V1^ltCv2mH;D<XC-co3FLA#fPe*=t2&)Q{B@tix10nW6rP)OD;aH%9HiQ2lxI) zDkByj+y|-Myw%0WR=#VtJ|e2yiPt68MF(OnM5C4Quh<)(4^`=LZ3gkLY@N%}!x)wz znllDvP9%-ARNBFlzt@TmFql{)HSo!exnt)O8mcBfu?@I{ZmYDE9~p;d6cRvdrTG66 z%i7oH(R^8JXXC(*i?+@xJ(jiSVLG-l0%}hSTX8(dlY7DbS$=IV>a~v^FH>^iw$g<~ zUy0>Fhs1JVjoNy5e?~-8TF(6TuJo)D>lk8-BVW1oV6h`GYO!$I-&lVY+-z)8E8a@e z?Wd=r9IBxX?Bu#Ctud#R%pm~@d)PE3TSdLGS6(-K*QM7`$3jQCQkI=gr^z-YbyEx1 z$!x()E>-f2p_5r}t5kJmNyXG@OsDBkMC&EahE|v0N~bkkgM?LxO8bqsmOL2F8y!1y zAf%zvXYyawvDn>76LJ2dJx}#;4g9x)oNH&WNV?OKf+#qI6-Og+wxgBR*_EC9gBp%o zt4iV#@K^(=2|i932LlZWB~+poXqw5pQ{?Tuz88B47M#>1YYuRFtZj}5MCI;{w8oxa zs1|L{c2W!1rj~670bRcl=t(Hcu7a^dDiXIdDynB&yd!t&6=POCjA<vOIVlpu+r{|; z)<rF@M9xen0ZiDNY)>l+?6tbR>j?s3-gV2pYZShUaFZGH)CBE?_pA$@ghzF3GpMgL z*P7Js#)|GWbc~0lhrt%{Uw<<D^$JZSv*W3lw^d=Q*-mQEC9*9bZww2e!B<giQ~3k0 zPa!#g%J%%9-5UxP1T5xB<^!gIm@aR9S03uRb2z=Tg>QI+wSri~!+%O>aOqGX3M3?* z9#)ymj?RggeUcHl8W5%cx+(#Gx9m}1*c0P&u$o!h9+L1tjO&u1!@$yV7PX2MNO5>z zv~Wn-0`C#+Ce8dfY8B9z`{^$HiYFQ%0>E>bNEI{qU{K^@(>j$3v5Wx(ncSU{LkVq0 zjTnNK<!M(2?PHc&<Ghnsr^GyTCLuvCAQ?_+pv@|(BOGw22m+zP=$i;!%QI>20EJ_e zqTvQs24qhL#4GnG*u)Y49|2j(vpr$8Ta##3oQuN@t?-Qvn989t@)%5%r_pCIMEDYs zun4^MS}->*D~**;7oT<h2Wgp?Nz3zDYVqLXvjp0An$Hp--&sEE&`kwv2cMDelI<&) zZV5hn?NUdU!+@MMfInNKgVB2^vz-+tqfEqsGK8;Q%a>X>lbIB;md}+LKaTR0Dh0c& z$PZeqHT+7Nm%KkIv=%j(`7EX$3JsPP4!zV@0>;_Oe2l5&4kT3uSYnAtRYpIR%BrSF zSTJSvm9A$2B{Uk}cMpTjDryD#DLe$K6}}Gb$bS@nv(Yp~W}Qax(-7lw>HAS=`Qi3! zt{_WXI<QT<i|v4c#1h;t>JN?ehNgOMVdOe$JI$8>Bdjt;=*<Lk6(&$XYa;m(lQn~u z8aNNI0o^S}k$qIOGEIO~4$9JLFp6gju(Ojoz2hu-40N%|l(dW(M-VMR<J2F0ujp{1 z?qSIP{h6wRv6TD0HxT0UGf>>up%)&GsRrYXOB$m?^v4OPC-2Vfi&4uZnBB}q^p4la zkQz9cwgTftY%Yo|uk24tG4vAt8rT#&#A@ys>?X!Cf6lD8Q7uynr#uFrUXYxNi*Go^ zRmP3cbK@#w@ek{(jMQSeRmO*lZ7GQ>LDJe5#T}j0XP=7<Y;vqAk~6l(Sln+&uobH0 zZkaX4H%OGoua<0CtTtdQJe*5?-osezuTV#coLB=!YFm|Qw&aJLP}jAFaRS-QFf=Q2 zA#M0(ZUiXaT>%s>tlig47NOa{&D^-Nlc4(eko1PRu<(C<1DD@7lLofDr46jrbfwPQ zvmfU18c5uv2w<s%2_GsuZO=X*)<9yyd^H0rC6@9>E$FI<l}+HY#VqoK_T&k@_1T(` z0SrH!2RE52qKDA(V<>vAE#F1D$Jzb`tw%)b-ekVDLS~MS+iKk&1hyP?i;fd1<&_X{ zwv)!Y+2(8Umk9a6laC=~QIbi}iUims5kQ_K)6JH~V&6xvy>~#;Vk@GEJ(CXMjsVX! zn&4oqz{xvG<5W5tU7So#N#;qup4+>o107^L?nIG;2Lh7e?jz+qA8@(Cl<78`!Blbk z@cp$K;9Z^E=wV_o<0)EHsD8OGldrnd&NykX5CZrAJYpH068yIOzwl7L*E|&7tK)wo zxO7nW>sV?j<(7EOscnRQ6t6iw@4RvBhSnAWoc-&1Yi4n%o^-mcf++5HoLL-prY7?o z6$`(Yhuo?}1Z+3II(c3BVU&1H0g)`YJ3DEN>n-MS0mg{@!TKRaO>`FS3!n+TRQ3SM ze8|6Iau_3i1{hQ*3;efgd#}o4eDgBVj<v8G@p8pExF)~o&Vd!p`WRZlFR+wFRm1E6 zpGVijPrqUv@7D~lt%_a0Qq^H$&u9dXUrl>04{@!H?Dzo!3@KXVb7(jUV?<>!cG8qk z&q+QY!ws>C8}kg@xwn#7$f~Q|6ps+$Ah)gwkTe>yxXL2@Y@+AD@H+ZN99_@>qN5Jw zAws>TH4+(o0vxG+0$ioQO&Kg-LE4^Apok;!-U&&NKQH3B^bHKIqqyVN*GGV7_?4<} zP{jbZ)AG(-!Fq%+jy!+hJ^0s2Bvv6%hljeOl!v5XEVgktfH*QlZn_j5_<F;k(#tIN z0WH^KMAoYg8>$WsuN$7Z7~ipal*3xb#t?~o#0-Ap>=5@e-5ScYnVfIWcyn@Ed1|Rb zowOx6MLt4Z!K0A%1b~?~iykB)!F~&UAnRZgvJPVA!gGl%zUUGr6M-rdoKC={TD#@z zw2ow0=Fo}MQ>OO2xWj=+^h`qaG|a|IRl$GroDJrDP%LoTgz7ytDp-EE6sjyprGOzb zUJ<H!7b=Llga|?<;R4D`xcV2WgBdIrD&};BqF}R9s3>HmP>C6y4)iI*n=nh%;mu_w zr5wt+o%OmEje1vx(KRaFUxJ6SU}zqf1nLh#?$3}Es|a!_nZK^V1Ib3@{dttXzf20= z(!$4dg1EvNGgA*BP)(^jjLi&)+aHi=;}<Hv$G>>nhu3}wd)2>@fm4l=)O>zbki)M9 zkIu{w*%%qH4`jfO8DJLp(d0*Kr9y}D>y9nFuBtu?*`4i!E(syuNp(ZkxopT1!Wv5n zwx&!VOM4Qkn)XCChvi5ZAp`y)hooM>XbT1RAi*r%!6MpzvX6#6zy~P}yw&9*5WxVx zhJX*(5P;ztYo$KY6F}v27Ka-b=>ZuK(w&Y;_Z4ImEM!>xVvB0+)F0$Gx@xBy#+Li{ zQRXuv(qS$h+&F|(2I))oSUwt`R_dm#!V@hJbN~_&A|xTk8jr5tFi7)hrEnrlp5m-a z0eb(ku_poX6j1t*A~idgik&JW+Fvf{-4(A=F?v4*i)x^HweM^vwQ#Xu3%yy_Aqp!B z8B!^cq9CiI>#Y?G?95&None3inu2Do45#3`F8r^@Rod>#Z9R;#W^GZ)WbP?AjZ#X( z1WA}|iC8lXnBq{k?kxaQ>K|c1=7`KO;#ZX}<D^$Oozmbbi9<6!(cPnxu$VP^<m4yl z&!A(x2*cn71_wWwwm+8JvzyLiwRqj`v%$qHJ=h8SzF{E!Meu}WaDI!6pVyS+VP>+v zDmhr;ANrCr2XiUhp?WD?YT^uJ?&l$v?j+~%a$uB#l;vYrr``@LPRWw$2uRcIdK8NJ zxJi$jgW}utxWz<JR{*r<Z@8$!Nmu7_oRjPx5oaFf!ma3vWW1aq4Y^TP6+33s<<~5b z)f+4X!Sdc-Xu&X`DSTpW?f{TAKY%ybJX#(!?8E`c7Tx*z!S3CpR&{1T%)@bwts>je zA;;Qke)@qy8+v|_>j%7!F11SpT_U!sIUpSgS%{BQ{t+Eb1kjseRvU+>F)O@F<QBpp z?td8I*6Ax`>H~w_-hB!0HeX?67$FPj6wRi6^l2t#4JLdHY@;FThyyG<Zi~;CXAnDs z3C7E-Fmi{kIot;0HRTRnujDI{mjLTv#r%&)Si?SG^?63l?HFoUvwt{xwmM1lynnD; z`1jk=BK5o<AjXu9XSV`=nvgAaI|@H;2I=6dE9u0mQ63gNk^BgZq|aQ;fFk+~<=UNe z^00B1q?<E``$DGNpJl3YBB{!zq|?>{7n(ea6SbL(VC*By0yJdRF=0)_rDk(CPuT6< zMo*XuImr74jgVWq@=M6f8}5eJX-|lCkJ<t(WO$#;dQ;JdDF{{ASnH`0c85*AE@hLQ zR3KUqo$3&U4Y1#v4A7f1Qu{SPb5LHw9#3JaSs=5HJTNJnAbwX&&qQ2`lgh?ATaV7H zGzin{RQS+q8m(92l(N!ghg7Op*rB70(;9C<t=Annw?h}f4vqd6-Tk4iG9dG;zB~RO z_VAuTvxhK-`eO(Wh2b=aIK}W`jNP64@P|JFrx-r!(LDS^f9La0#~I=j5L|V(Zr%Fz z>o;uJaM49i&|jQu_|&I9E&e9)cj?og@yusE>$1x(d-k)Zo|FHc``qU~?|ILE{`Y*( z3tsTT7rt<MdU^(b?e_P6?~C;J;un9P{$BEuO`A4-|4U!`(jWN2AN-*o{^1|ly!mA> zf5j_*^gq06%a8rok7tX0yy2d;yDBF8Cuy>e$31HdBp!pj-r4>VLcl4IxSuOE{4@aJ z2HV8u!{POax*##JN^TSe9%@hMutNwY__jUZ2P*#Y0NC=!A}lmd4FOBk8Ek1u&Q%Im z-Y7%Xm0Y)D3!1MGc~1>jC##`#*YJ&b`(homMQfCrHk!fxUUwG0Jd3M$I0kDZTRfOz z3&vdy%{{h$P5XVXeea1?IxLJT^;P&~P5aId{o@6SYo3d*{sS*A`<t=WYNmX~@x_m> zo!N+gUdcB<@(0)K8Pcl^Aik2<f&J+@c$IYleCZWR53QMb9zMT}4K!T(`DOUI^QH@n z2AlEC>UGxOhuPpSKY8a4yKwA6^zp-N@WDqE4Som^pGAy#qaP4h2j6)0Lo~`oX!HYU zwD3PUg8=KL_-2(i*u(}42k*M~Vd>{h_<8ZK%LXsOH>2L*#b6J5AXMw^gS*NyI*&7E z)AH_4Vy<u6{YPxAstABAf^bXhi!cdr(W1v==3VE{c?7THP77>-R?)DQvJFRv)}7Tp z%fV`|xC>_Ru#{cX9(_5;#^l;GHsTZ*SQx~2F9eLE?SWU|m5=iI1%$ah;Z_#jAh{0~ zH&6a!dGa5&MBevk^03IB$UDT2o)6rj9V4x;&bWCc#?jBuGu-SS6t)giZk}sj!39Cg zRi0!M<}{P3WwD~yp1l@<@DXzOPJ;Ao8{kCM=l)clk^Ab;UJJ<r>?i1;==4;|ZU?gK z-%W;ht(tzlwmH5!k((wbd^?a@cf$W75A4?TGNH2D2|oz+A!iW7WH(%6x*x6|+!5FJ z?uqMjAFlXki2i30J5*N+3PKW&40ZeB<qg_QR)sI#!Dl(+2es@c#f^N3YWMWUQBM`# zI6j6q&aNgBlHDKIES7M{KTGJJA?V=?9IeFLOQ=t11pyiskR}H;d~&P^!Y9Ya@X6UU zoN@saUb!CJE!Ss=b*vp~e);DJ>ZJv!U5>ed+5<d@Mb$IcaM?BgD|Y_0=p511uFjcj zkUYlR4=a2Q&H~cFo@8+R?xiF!Z~n-*Xr$TbbkjKUHD(X&b5;$1o%z{=qIP)JAr;Y8 zf})3D;Sdx(l!BrQG>YgMZ~GV#OvS7Ijf}MgMeS<IVlh28R9j8|O$Nv%n*g~Clf5Y4 zv3qxPJ<DO&t<K^*4O`4N2B4T%w?>#z`wEf#<Pep4yi2!n8~#C5^Ee+(Um6}EMM4%= zE<m$BGb|LVnC2ABmowD9a(R-}g0EI!BvQa1{(V}x$cSvSb;Z2fmg9pu*UFaG2Asqj zz`!pDu&q^rTI%}92IiGkChq+iDv$kd6fWmXIoawQxb^2b2uy9w{}0681hJ?03gYdn zETl`Z<pRor*xq*`D4@<H!jalbM!A;0j>YOXI2_LFY9GJ)UaTk((Rbq0P~muLU;wfB z?E3rRlo+nX7ttGEq<f*Bcmgs+TUjOi(Eir}`4;-^B2LOWOCmzH=YyS5#SKiDa4i6R zBIDJ0bc4ELYrbF2Z~SZ1`&{i|Es0PY3ai(xg7qTbvcv}lP=4U=(E_GZyXL{RcwuvE z71ot>U-7WDwMqwh<K$PY$MJysJFj6YgP*Rkp-+qqSGvAT0!JBV$#JGifxl}KWU{8B zBO)pbIr%Q+fqZ9rDD&OimC4!q%4J-7oz0Q}x>f0})wx0X;fh0n@rUSmjL@UmP3V!q z2c6~2D<nzxORoIQ{FTQ<Im|GA&mZ_X<X2(l9drO%an<Xv`#a&wXTV>V0l(h>=V0Lv zN^HSJO#A-aP8durDGb6M)484i^MI&Tw_|c|<C9J`wjFIvymD&>Ax9xeYv?@8(OKht z?1{;2OW%&pyoX;rs^CJLDqM+E-d5{bXDv~p6QzOnBn!(?`9SW^%SvthGV24)Y5kjQ zl18=Y+?@p7!gF9Mh80~aOb1!3nx+idNz<?i0*b8AQCo87bbOBPwm|6%K_M2tAGxxg zqy-~ks_1)fo~{!Hdz~AzPQT-C*3)9#-rP$HOJi<^C-dc9d2Fu>wQM$AKX9WNu4<bP z<Tid#t@ahu*Yhh%?<V4v*Uck+IJf%NLnOMo*CW61k^I5~_Ja1#<QINFzu-L}f&}pl z!wR<IipC+QuM)R_=RQ7``{<EXyC=U<X4RTB+{&|R=IETMtXk^5pRC#~7bA{!)`LEd zg-F%C5vf8Bgnz6&vx2iV__K3raqkAN-Z%$;R&w@8{4sFle=I&bUx(M?{95~aJdUxw z5O;E{(;wnkjAU6H>*7l;nV6W^xbcbn!`Zg{dx~OOh-K;T>G*rbGZ58cP-{wmh-*C; z(JX|s^!EY;wWb-(dJ*DS2w{Ey_rLT9z_pfcojKfaLhjv_VAT&%whzY%xf_R%R1XH4 z?W88IK-h#YHtL(5O|R21Pr|>5Q(L&uwewI|qw#|hH0VBV8-qSMBHN_?wbZ25#1Vg0 zz~*Wr{a^-+^|=Ia3=t3hJGvfKHCL<~m6}%9;|OkP3hN#M=X5n)Zl)X%>;V*TPZf2C zrb4KkAuuZVmfc-riYvTtdJ>@|=y8W~YxcNbn}K$Z`=uB!)fqg5pQp_Fz{^e^x572d zUjXs@;A!(;SPrF%0n`Gc?*K?J0~mSS4{5C_J#NfFN|*2&j9GErkfCyq8&NF`al+C7 z$yoVwqsPqv9>QGSjONq58^p}J?r~p`$~Rx0@pE&yy=(h1*vp(aumn#{toQ}{GtADH z-^UD))i25?MeQOw+M@DBa}8HVxgv||UMxxjn7~@HNkKxQDjY_Vmc2O^o2mPz43ks$ zMJ07bQKv3=JW)5uiU@(?A_0)d3IIe-@Nr2_q9|Y^oC&r})wg75oT?V%J6@rxKQ~f! z9S}8RRK;s2O;zu@o2qpu<+co|({j38N+}wJWz<keFB5XDB1)mq9^=IfGD?RqjO{wg zj;sK#s*Gq!#DWpo1hG-piKs1=(Rk{o4)z^2uwOtHjHMiP+xHmmOr>q9F6j6M!k0dT zR&do>@jyinVY=GNV$~IPQ7WqJ%E|zGsOjIWf&Ltmo^2FcRAX_iihp_9-^{$%e&K7Y zZHhObj8Gjs4CfnZ2`Eq=`8yT!VQ^~Q@XSqg*BEVda!~h+L^uz$D$^gTL509-G^{UB zKhpF%xpb2PV^jrL?MVAmde*J6wdk}j92jhYRiNho1lRAEiFu$tC4W#1n*b>IW}d1) z)O|I05xRo<L5dAXYgP__n4xv$@GML&ss1w90)>#2!x|!B-Xr>)7#?8)SP4cwE?8l% zq$2>NnS$2pQdg9E!eGow;@%9ED~V?a<viIGBT*^H`1mtTK`q$wN5tOKjqX<Z7&NYm zT(j=?zPq(Vy@K$*46191OPAt~Pc^+x?pQi}aS!=*Qmg>+2YT6L+3>~Zi2|PfPbL5@ z(%K%!u$%2ki&eZMmM#`SC4n#~3{fV~=khc>D#2lR=yy|80-TYf5=RM?LWnMVbrJfT z+`Hox7YP`WV4=wUWUNMg;M1@eM;jbD^Y<L@iGprxO06*8ZWES5Q0!1p!WOe*(<r(* zO7X3YK>e!rDphHGjI>Y`kF35G0Ih!hz)RSSHL3jf*x(g-d*ZjCrIg|XP)Q6as{U#{ zW^z1F++!w}0Pu*FC=~b4oDPF}aAjt`z=w<Q%B2G@iAN8g*$n8M8J?&WkyQIPwpbsu zLKYV<pvZ**q&5816EV=HYlM%hIsJ8FMMyXjKsNnVAzeJ;-$^r6q<8~2)Zr(Im7P~6 zXWy}6A-PFQxiLVwhd|+2dST@R=g56Fh7~<Nj>%!ZDb4>lfNu_XHN1FT9?Mw|Ey;S& z+6)<4R#~}1?kw?;k@@VkFvpFx&JY5l;2}(H0MyO*&9yc<Gd;}r8#qx0!Pw1K;2aW6 zTk&RoKfZQGaR}D3VfoY$poCumQ$h=~T4ulff0W$duI@6CuP_pKTNsk67V)h$7!j=^ zK*_XG(2z+mB?EKTS}oCeBcV*;DOm|<mPHD6#NH_%v2w|)f_}Dc9LP|)DeHgh#-b6j zW<>5Fz^Rmsc_JtuUVnl(Cb^>LdV=?m3}F6zQ|k$SILJNq_!mhlP)J?4E6>j$CU4^y zHbI0oN*ZcLcsr*TIS%HDJI~_iaU+N8ca@t3IgsY@db1C4cInu0ZY)a+MUo*rhsuhh zyYS4f(aWac0~s18gYDh$C59Zii4@9A9))mvv<DeJNI(^GBT(Cn47~pa5x6DEz*{wH zWH{ht*yd#5sAlZg9c3!lpCLmO8)+meGZH{8al<|mRaN`=k&FZnGFow(y=QB6bJ8;6 z7HVzQKmxl+(yq4ogWSfC8?{p*?7ik-<|lHS+O1pnKLnw%rS@PCO*j9CVAX{K_+yAl zF{;(NM=6SoSx?2oFg*s;s+SlqR6;<Arw`7|M~ShemSzU9sbuW{%xUw+#?*&zY_u3U z=%W~P+StfiK`EgqS)u8&<79n=cqD^afE>Sb3o*Y)p>7?p1|xGQGO{Y?#v2RpM+eG2 z4s&V9FSN(jn1DT3q6d3AX$CIHc7W&s=Ji@0Y37-Vc82KUr@Txj^U&3~2ggBqi0JyE zHn!y}Ysb2%bID%aIMBI589ofll2u^=pCK^mGvhu;xGA~D0xDL;R_(;K8Jcdz#6zU8 z^kI=SjYg!IhmdAoLu<wotrV5#s+nTXm=|P@>z`7LN@Ed5q_*y<mB;SOpmk{}*Gysv z_!rdha1K-WOFohpW^6WWU~SGrplHAdA;57633q$JMuu8{wRI$I(HgeA;~IR;%Y%2s z!icIiCd5gE9Aok3>NwN-b$JRq>{Ki}VU#o!!&kWLhWx%$1Mi!K+C-ngKB7doW(6M& zawxY!#KUTvS*N)GJt~LHl<|vcU#6L7ZT;(a@trcyKrIh4$eYEQzJ(rW@MXGvYSYFU zJGbQ7x&}6FTCfg<!37m~Z%CcIG56uA6Vt9`ANef3=04tB>mwgS@<nd%iF0s<r<*nF z&@^=GV+QcY48S0YR(;R8WdM{?>ammQo{COAn>ux=gZEMcXAm}k=0WgiOwKbmEr1j3 zOUAFO5|7*AW6YArDC8(N7*416u_JO64*o}l0M_zZq04A>?-i?=*K6`Her})8Kv2CP zLcurg17JoikCIfTjnc&cwNb9GjUpDZQR+G2*X7rJ?kfMP&7Inke3YR|yY%~+`^|Zn z{?07C@mz4(O1BR+@g(^1dF01}BXtOZa#A>ATXobA(;t&kxDVbggl86trPJV_-hRO0 z;2%FJf@{_62Q(N>T>TzR9PPHemC>xPuXZ-QZsAcFo)&1c&KO+nQ(O@HH!A9MuGSGQ z%I@;IE!2-v4=o+tmcaX_h2u6FU7$_1zO~hr(oI^Q)*!r0S_8=9p>Qpl!+F<cpxmsL z7iOCUnl!V9g?}<@GVxpG4%7U|;==S0E{x9%SUu36+#o`kA<G*0`V5N)@wg_(>PN3{ zb=zQ1$Y9j04xIol)YYU|YE^b~lm-XJ%Mv%%tNn!bM$4MEx-moOtmEr*7M7BfqdgW* z%+x%FpiyUVITCi7)?G^u^Q%hgEwgOGE#tw)PPy~Zf1=Qm%O)H+2{>v9<Z1J&kReEP zN<d4lxhscHR`AJSYAl(EPre_EQAB!04-9C0NuRLSdg-ayF*n0Z0i9U(l00c*3D3)N z&|5Q3{^7C>1E_r}{NcLs!6oB?LMJC)?~=$K<mA2Ma;b?%Mzl_yoOfhcoSf!}_p=JV zyqTQ5BTOzkaUV`GMAY`ErAS1DoK^AQ`*2wciD&ynP8{RkWBL29u>%sq)R+{S1bo`P z=JGbqWfd{Hxw{k>Of?`b@{TMeBoS3Dqf9q1c{c|^_Op;iedJL}5yf~mUX}UhSjsq@ zH2G@FgS%?v<C4EWX`I8Q^iAS;8Q@fX55;lX#IYm6K#Sh`O(`@?nuH5^>^K2Y7A{P3 z$Ph?Ga2rXe9dy<WjYw?=9rw^A_ZDz<Ir$Z)GRdvMgdC-Pr{4itqvLLy$-eTm)9jTr zc`E;Z{tjN){-FU|6e#FoHyrVb6G#JgvOSDD+0Iqug*(|;2811K=7O!mU#|JN*fy`B z+DD~6DD**z&ojAi4ZGH+o`bz=EbdWJ&-daFThvt8gUTLkOvAo3?o8vxv{(Kpwx+#m z%a$Me@gM(*pZLlD_#c1jr~a?4TYvhe|I^R>%+LPcKlk(7egS{K_=~^zOTY9>|M{2y z%YXS5|J(knzxrSC_iMlQ-|+YU;P2Oe{WpH&^8Z(V|6PB-`J2Ca#jAhoHLvLm^1mww zXN&)K4DQ5#yYS!c!9897%?-{CUWNaz9=rzs?H#;!@Vde4@!!6|*ABjJ@P@$~2VXyU z)8Ng6`+2y%`=hwF;D@?5q<1>^g-vmX^bLG}W`FFYyR&VZ*ILweC`I*+Yg`=TkyZW> zZC_>5?wOb>>Ow6sfWFf0VY7L#x7!(Ww{WoXaD<eZ#Q@el|AljyN6|(C>)L?hm@TT0 z`Kk}QBM;~nQv>o%cDTM;-L$LmeI^N7c=yirtE9V`a0gbQ3{YEztciWgbAxW?w_3L! zpn~CMy;a3#J#H|*iLb26yY;w+dp*9>cD*5PW?}&B#=*5S6ZrQA;Ad5_VegUl-CFI~ zvpsx#?RD$`7E<oWKDEhv_V@z6TdPfbxy|+bYPGkyR&DaOJvxB+4sEb+FSpr?uaqr{ zv931w($2jNXov3rAGYr0c31H$WY7fP9<|Av_Xr=pv)y~S&2D}*>TPzS&0zaT_rAR< zd)<+#=lk~5EFyrS9bKUv=$Y(-TCNf7#51U_<OueiPzmZ{YaKIcB=>8qh1f<$9Cda4 zjrV{47Jdt3!hc6$yZJ8;f1TkyuUD|YRU{Ao7kM!*Rg$bwZo;N>wGqs%HIebS=Tdn$ zAX?5Ok$S(+xn4i~o0yNw2ma-;h>?#?Vp|jGEbIt`CNQdEZ3}=5!v`|nU9A7R#x|+7 zL9m>o3m~bUu+JF6B|PRU$qofVwL?$Ba-rNV5%VeLp->>01i*?O3rvk(PGaF$CW{m1 z?|;L-X9Nzg*afa?@az5qM)b{4(0@%4xupNF)bjg{LOZ6}aGFpG#ve+~|2K9|0xKbi zDedE~2`Y!-LOJ{eLH{+pI-HfmC;8ofg&c4%uav`|@ta>=JM+Kz?{>bNck}+KeOD?6 zz4j~U0I0XkO~1@GSvly1U&agE(QCq|ul_T>S{-eEk!`YaP=&)UvQ1JBYV!*K-ikYY zte+QrNjdyA;rn^C%gRCRehy!)im`r{ZL)IE3qOk&xV5){?`QDUXteoh;ulOr=eT`* zX(jQ+%&e{?*t$zce2H*wCDBwb0K2E+0#H~h#Z}N5KEa>r`HnD-sfhb_GQIbc!36^x zjxrT&Pm!<6)K@c@H<_vY3E*w-d2DNP^|CwH4=HH*j|BI}*?Tgi!!yVE<ras+-V+qu zE6$SOBr)IOi`Xu1>S!JqEY(tbe(#?dm|5IUWYFGep#7-E#xx>}|F7)yl?Kw0Wu<Ck znB%JXejtzJ=KB>?wJ}PEXnnar2W93ha+Klx_uP7~!HLc6hI-1V+!?@})RL>KB*=+A z&1%Uu9sh{BT!c#Dno*>U2SgTZ6C-~aD<8(mNqyh)m1lJ2mC0HA-*yL{4eztij5NAu zWiUQUb%N2-pslJ~mb>+<^{|P*f~e!1q1~;=pHAd%+jphApTN|f!8QNS=I>|$dfUPA z4DMCgYDb3Rb&pjrgeC9EAJpXNZt}ZHk<B|Md8ktSQFa5Jo891#ps?xd(8@6UR&!q0 z!Z-4#mr_Ww7S=Ag?}x%kTKIK*Yt!19xAWhZ@a3$9wT<f~c$<eRn8wm;--oa0HvKl+ zyohbG7S;<mPoU7k`s#b}6<sv7nPHo(g>PX$Gi;Nzu-f1l0HVn4lGxijK%FcAP3l-B zH8>EUP{-;3)wA-|H0bl#CaYt;fXdiH9qTJ>?w7BoHr&47-nYB!jD;$--;t^9YM8CM z)Uc?8P5pAw)bX=~L3w6$lvTy^%yPOe)i!sS2PiX2TCiPJ>6)vN<?CG;D38anEVEyC zY59?)x@)Tb-FeinT_(nV`r4UKlDd-`-C0;Fn|N1#`=%lNUV?}0w+?!^kv~06Y7rBs z&yl!67{RRJfOMY%Q6<j@GE9C71nVCKKeaEAe;r483aA5}NAp-Y1wubRnLyBHdTRfZ zoYa%-%XzuVwUG5k^1!b0pQM4Eq_&*}#vXhPw-59M<Q=TIWM}VX|4(H9F=H{rN%6ov z833>Rw0+PpHbb`46m^DREV%-<)ATbO_F|1HV`t?OJzPkVUm@7%5Bv%ukv;`%ZYQ5f zt0q6a2DiTw{%>a7BN=F~AbbMA;U;V|bI_L{TMM-uztX)IRfUmqY&1U*Q#)(#<BT={ zk*nlk{2xAQb8+C6!Rb4N^H1`(bp=i9<*t8~p>vw9115))9ser3P_l@!O3K#Q;%{qR zK)u@{Yw1kJSJ*cSCyi4MLKxCYi`u~4F0)p#@SveuItz6yL*v13J7Rpwya~~AqVO!t zTv<5<cAb-FYsri+6HpyTPN2LJ&yFO~ws+%Xw4AH#?CD5$EiRb~$2-oWQHjS<ZGKEk zfGL(L0s9(3VRpvJF;Uy3{tp=ePEizbS{12nQb)DLt5I{gKK3B*rM6&Mrxn0i5=*qM zXE6V{*7^9_VvE1|f3YtGeKhV%Il(z_)3Y=Lvk5+#v@xZM$1;(S@R&BHU>uUoJU234 z4&{H6L$R2&n;$Xzs2{qDvu8yXIstJ<O}jH;k{G^Pr`wrLuAXBU#h#8~Ov$%)?`Fp= z-*mK6i7fALb0Sa%wg@o^$f{&65A1a%={&&HrfN5@skKp_WXW-^t+hcugb3Len&owz z974TixZ}0Cm2VhU-C+j*hWvtWIaW<We&O}`1@A#gfhc4$thA3D@#CR$!<%!%8>}2D z7rMNTSA6s;bU`2+H%PFqWfk|2^r&SyQVGLSM9SMfpj*-k!#|G_U0Yla4+B|VzOluO z;|y=GXXzF<Um$gXsi9#a3L`@NZL64}{dfDHn7N`|?pstl|82aY8>?%sU7a)!cjB4A z>2~5>8@hAGY+3MP@Z}gFtMb_H-1G6v<Rx(jKQL5}(^vxL=oo0S=CtgB1_j##`EPL0 zh^Y$DwK!4_sR;h1Vi4|7MoI!X30{h!zsKTKJ;3X6c$|e>i^G4q!T`D%V<8GeHx3`J zR#VP)QWIAZc5=pHX4{f;#6WbVvSZg$4O?(-Op)0hnyzDW)b)6(XH3WDoC8j~fRdW_ z@Pd3>@ra;Thc>s|$QAW}q;l9_@Kp*saB*0_BlEfpwA)<bGjSGVA!RSMf_E-Mur$?p zcJhgAI5|xvDFNIe0tsN~nVrO;Ir}nDUIKyw3k-Mw<`(~?!gzniQCKy*&+X4DweYNR zvh&-!H}Ep28D$IGqYT9RwcjwH=)=k_^UYX^#R3V^6D6s|x3rA>*8O9}hx-)7oAR9f zC=Zr0|9|Yg3A~+EbvAy_xnmNMIG{LGPXg)%L@y2)C%ETeYw8$hv|6K9n`*6T?GP2@ zKoSz>Fh>TxAV@@lK`BN>y)sCgW9tx=YE;xzt>zQ0(dx(dJkMHtulKy~dvb3=+S>oW zH$S-dyyx9}uf6tKYp=bgovc!(Z-%v(Xkc{kZg|{IMR;#(dJoOnZd+NpTo^<D%w)g; z^V*E`Wg<jnq+*YxwYnbP5k0z8QJjQhvZ|Y09Pc~Nv9L$hWDf%@3SsaLs*3EpDjlHC zN3Y_5cq&$J(dtAL026I(Cx(=qBDp4y!QSh!?+IX>r;vjYe6(9V7UnB%B^7$6H^+8= zhydx^V5?<Bz6@Ud$h+uqCwa306jdFxQXT_`v~7W%^;Ke@#JC)K`*|@$--Xy1bN7{W zmY69vswW&HMUrLmP692qFp>8R2a4+h7+;9lhhwbovk(!EQC<kNNSu!qEXkSKECh#4 z3qcLJ&uQYRScq7HDl>gFX6;Kb++Wd$XscE9<-i%z-h;`|1K>-Z75&l#soNI?DH|}R zBtc55hMM1=u8GMu&EnPrpjo5~-3BL{cl%!ioDL}7!9t)%lw#snZsEEu6|z_D6Gl2b z@IeovPQgkiv~;>+0d=UNSZpgP77QP4ZwbX>YgMtxO?+M0gz{PYNLig&)vbBm#8*j` zu+3qLRt_T{6vA~wvi5I%00+TX?xPLB<=z{xaB|&f!&w5;#lC=?%uqNuIiSQSGcV#% z)5v9GVB*}eid$7h&Ik~kTYG{~A+xe7A`$AUh}4ozVL1263!WiY&^P3-fjY}zT&TkQ z_Oi2W`XCEu`hc2W*c3p#Sr(<4QWh0vN96j}Du)q2Z!d4P>tc?(Y^&{2w=^%DCJ2z` zTbyHBQvs6JG!__OVS#%fP0*F3CL!BVQVMpKAw9bSDKc8I0&al0+mH@<P-P0oV|WHr zV`nvk8RY&20lQNY>?pH@U6hoTIHO$6MMc6X3<W_&ZEgw7o$a9j@<AO1TokaaGxr&r z%2bvda7;A2A5Fjunr%jmq(IobX5M#Y%`UC<&8Deux+kd=F~EXBm&#8KGS`Z7!cuAt zcBxG0z#cPt5{%C{bly#tgG%Lp@255;&f!rc@X@cX#1%0EUpeHY#>x%zZ|9Ga43OcN zXICn4(^w1grXchEi{)}szLX;{vnv@SfD7ZqdjcFkh*(mpC;<)DB`y-x;DPOejxlyQ zZEx^ZeuTeI4hR0dwxKLID!0l}<;#q5G3|_dXPaR);)&>~>f=^dE}tCBP8t2Md`(Qt zvCKg-Z}-D;4|c&K)CwqXy8MksoMZ{ZnPeTq6_UL+KyeJ4ik2{(5t=Z}!(T|igctE3 zPoF`npbr8^RWd!yr*|mM>6z}5=8Loq<LQ=x(iHj-Nj_fXDf;oMGR5m+idWe6ss?CL zlDeE{ZB^oNeVU{b>N20RV-cFXP{7p&<ocVVC$WW|J86GAga$6(>kiF-2Z>)F&|P<c z3_!G|C10?q7S3_nk<vx5*cA<h83GAQfDl^}IFRhySH<~IjGZ-AcFV=jTOb#nAM$|w zz)&zwSLufwrd(=>f#6wvl^MdsLQ<gMD1lj`*A`&BY9@c!6fh4a&JYF0niQUXJZx|2 ztHz$ryJPoF-V_wrrw`}{wlSK=QjWClj>Tn6_?c_D()VP{E`N|Pt)N}rKEb;upwjXJ z*@Bhqz^X2Ldr6m-k!*eFvQt%EHaGE=Gb5QDMk{`%Ro$A`<9yG<t?XQWnysGi*H$`! zYiKs-d)k4_{R2jkgV6bfoTa@S^hUNyyaS$^LAy9BU~%bbnvrvf_9f@-k`AYo3BXaI zR^}|3@&homX#uojNp~wm`!35$;q<oq7`-lWdQB-e>580L<!G3!=!^XGV#2=I@M0xK z;_opqr!58nO_(fWI7uo>EzE2~l5s9KH`(WqOc%tkt}9#0hiI%yA{WN%4kcgDf~<Ia zkSOsbno*L_5SBe&+VUVtuto_1n(!=Eh8sHPjTM6TAWM?ISiht)AFmZWlO=`M+tP2Q z?T@=!Kh-QP)XXIR?tsNf-W1E(kUVng>PVg%q$N)Qj4t;*ko;mIX!&kP-gf_9lJB}b zD`lBsK${sWrt~wSkmTE{lt$ZJ4?U7@0Y-%$-y2A9&E3p;kRBeqK^vB*G8vI_#X0+B z6=%UU(V0^#G)v<l_q<ygD0aV^G*H&slg>z_K~Ci4f5M)YyCl^LbLyuTUKc?5GFxc? zXO)oxI~8?Au$Bsu5s~mhNPYnb!i9yvn%1O&X6|>Drh@Gc1}v@^n%xmOgdEMqoqa+b zf{I9Gh`5}XdzQ9{Ij{l$FY#(LLY1g5qizmJeJP>enON*K)ZjcvI!|(tYn51#SV+6k z?&YJj^jT|nHwJ74?XK@sJ|3_8R7@F6N?%2YPMB^cAqx1Vj$uxf)wq?Bt2s?9NztXd z6{7N>_Og1Cp-T%Q6id@a0?xw5!O(;KN>tv2YDUFxjO@mR+?-7RplRKEKtJY#934|a zI{NP8SKeOIm{cQS$G{s547!w;l3SjTHEx|-QOMv9HRN~6Qw&v88az%OqPu*;+3FAS z8Hgn>NQg=Q->%Q>*}LFy7AA$4N*2D8x*29)TPxEbaa*IY)w~@V+ZdKJpG*@tE;!SC zoU`+EoUVN~vCppw!2bP6oj~j~+A`XL2+b$c!S-CSHMppNhP@p3lo<C+v&7iZvu<24 zw7dEC0{{vLC_|9gn$tG6jwzlVL;aggQ3ct1>4U3@vrT0w&Wy&saMT}=u_6tGG@qz$ zoxfSlT4A_Adq<5^zu5eo7^qm#y{_57ymn*Wdq?-;qytVnd|-e_8C|0{lzxU&EeLQP zYC+&sgAf3oY8cPchY5|BqBuO25`^dr9S2F>LP+%hFXphF6?z|~EbmR?y{rC__ZA&8 z*h+i#Bwi}7-$~B480xZ7ktkiGGR4@6dDaTn-j1r4pup5?S=kO5T*Sl{bgbaM`{B7) zQA$j|s3ZhzgOfQzM8V{OoD;`%H99RB>vw--yF7Fy4#b0<)=JEDxN}!yCDP-%ja5j7 z8ssMp%}p3D@d6i8?y(Do+w^1KlV-+2{AVBc%OBA@`yIihC?lQw<?G<c^r*)&#7<GE zZv;X{m)kMv8qYbHrbzXUK}Kai!@C2MPR!WWhlMpz^)Om{hnDgTNGBaL;PTFQFFM3O z0n?SLW*egKoyKJ}w16P0n*$e5(lc?bigMWw-1*$q#h9H`Ctc!9tsI21+FU-rTpi$e z&<>-9vMiHan=pdGl5kN9Q_Wfehb@!i`=V!`s7xKTGqr8-3&S(`*1(qc8qg0mK%@k# zSP+Ay`mo-P(*8%~ti3($e^8++yH9Qr>y9Ze6LnX8Uo~&{?mp7(h_qxI^IafqMp`bM zpJTE3vTsHqGS_tTNWV0i8JpK;@~EkN1h0D3JS7_WWL)E;*M`DmuMWfsa_m0@H9<aZ zA1jcb7C`*MAm1Ixr^nk4vT1gHf|FuLg~Y@csMINQ#^W(#luWU6l^-0nL`aYei?qAA z*USddmK?=U++}6cEr1eA)SPvKF?y<UuF><C$3V}sjY0!$@6RnqcVO7<7c}Gdq3oZO zD4Q0{_O3+PT$!?Ub}CsioaXY`h7w|W)l)@+L2@T`^AI1tk2VuKN7m^blo!4d+^v$d zBCVTHFymF>=+K!u!y>_Az?CuJyKF%7V(gm%3v8ABo>^mc;?+^g=hC_AlEZ}&(})i$ zVP{nU`@?$+J5*B<f9u2vu}RlS=l;0Y8NMhwv#63u8O__J?QwYPz=#%}hqt&(p|3>f z+%!?a7TctCdOSk#kb8hQV2yEnXW4Novj<H9o-f{&HHt?I7@sFE*c^1JNLmKsEyMa? z9cXYtO+RS=Tp^x;(|MeWRt(Zhi%Gp0?R5sglGFt0tqq*`x!g2WV3+)=v$#`<&gjn6 zn#Qq)3q-7QQcE#I{93kvqMeWtTmVJj0S}=DQd*<O1Hb7|LAVovk-`nuAg@ycIzOqK ze<OKpl3cS~;}F=>bjlMZqkvtt+jJh8P#DR_$fw81UXs)#QDP0YF)T-$Goy_MVn@93 z&U?(TOQz#u@9$7)SxduzEX)LYEC@uwtQOBoh4$W59!>hRYmD(bO9F`HNO8h-C7&3} z0)`XBXE&ahEWqc@WmV*)ZtnCHlK}Uf*ID-kkR0@2@eoNF<~XP!o$hB3Eb-*Y(cEub zwW>rIUh3~vy!w`B|IQshG2Uj!SuEnU&bD8A<hKD?UX`^mf*+7P-ml_$I5pn%jm%t3 zeXPP~)V*$}0pF_o6nA1gg4GfQtSgLJ#G=G`ksT7TQP`)Apq`D-3s{_uO%4aUX5~=( zaR~mtjsu<~vLTR63~0>L+~YV{+PedrI5yJ?xKCSfavY?nz<uF3ct=dw*9!8N$gkIv zKr^$XY;(RQ%mdqbMaDDBYvY_@v$;3`^v%YMjD3jdl6c+c!`FLuo!F=#Z;Lw(unl<o z`YU;%x2d!c%Cew>>|iHL*wV_*Vi}W#Y_?v8%PLdC&M+JPVAz7$K>+B!@iJ@(Se!q4 zbW|Ofu)an<KyHyg`gj=*1(dcYfMwkv-PKvE$IDPctm)dl{LytULvpOm+RGr}-A|AG z<f8`}^Vm3!noe_aUqn6j?oIzQKVe7xwB2EsQbKTR9gIS(PsKay7__PKphyNmg(|zL z4ndpzLEz>ByO_=|r91R6)Tes%#1W`XWtY#{y>rDo=Z-;jD%?4@cri;;d2OoaJomX) zp6W&XdGU*1{1OzXVtJ}ppgh&9Uj1qnr($&~RHpjNH?lI-a#W;3Jt~!=T7gnjZ&m#% zD?JrE{&>~>{)^I%ulhRe4Qb0~^a0E*sx6VKQ!sAb3huO;x<-UARf?a`uY6KNrkRZ& z`PoBc#i8jIRe3D!9wK+T!K7~<<GQGh)WYu*Xv&GqdlubAp&ljP+xt|y`65d6(0bIS zEI5vhBK4kMABV45|D?Ck+whbnP}t}#Y!tco+|Ay?Mo7KyZKT>WDSf~j|GmJ>dG`-O zV^o|`+I?^1zr#}&Lg9#SW}`^FCzvP>qrCgxMt_5+tc1cw%dvW$O}&}-db^}2UEa+r z>Dl*eDUAn0OLj3jXHhtYIm5VmMI}!-!W+{QA(Su<zJyp-y^%L)0ULUtVlS`f0~*S7 zS<zqE*OtHDKxfO?KN0A9poNSDz*$e+Qq~hU#RM)gllY&bD=L^JbIx_~qVI(1MTqCB z!Q_KAuiM_1o!PzCSh&iFIOtR<DDtV87%JM}d^U6(uN-F-B7=NhtI3)^X%kK7EuK}9 zia_NoDQ)%2*@pu}-+WLq2O#){BXE4f>F4`&MG<2zF@13{ej!w}aFFVJ@2sK)(?E*D z$wvbSKT5q?_;>rrVmr&Nz!lTC3}Eg{iH_lnj!)V%F8*xrk?>THkLdu#@$t$%#YYJd zrbd_WaqFc;d>BZ9kDCGr$Hyz`@u8<m=tg2)iB@loPMlU>PLs2#WB3hRRs5A(h{`_^ zX#u7wa1%Am6>g~pF|buB140HnQyOsOl~RqBBKu4!<O4%-z1!!LM~~$y?G1~5CT8Om zjM$Y}g^H1bwv_%VQj1J7`~rY*_%0MlRNNa>6!7Oc%a>@DgW5zoTYH6^kx{J2=VI_( zgH&1ed$9%wtNGv*YqF+vQ3Z|@gsZl#3R*9OUP-sD4XuJ(FG#%0AkEIs-m%NHu(dMw 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%0AAJMd-c@Pg>|f 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%0Dcefsqc1A{}q8YJ<& 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%0Aq0@Xq-u z++Rt&Fya+`iswlp<t00wd^F{}Qw_e0C!fy!@z^Ci@!Kxq%fQoiBIBjp|MOVD@W;7Y z!QWYq<LPj&grojiU7zdS`Q7V{UDrB}Lwn8m&W^!jo&Tkc{0{F<!xOuzERXS8kw=2e zFYEzJh_ehSmjrERf52%Rg|pIa8VN`HRaTtcaJs`u@P9HmCnNSeTuEAgV2?Xh5og!X zfi<B$d*BR#WBo0hG*d3N5+%gVCXv=zM$VsbUV@|jQTBE2gmDkjb|9A-3P=7KLuJpe zAMvWQR@3+2RCMh?+SOn1W*WQ7aGa~>i?n~^DhWRCF3#O#b^d8Dyyb?sVA+Z9O%cCa z-b2`(6>lHBZwzm9J&t41_&UM$d>MJYPr};|?>EEiK*2;)q=XVEwAvTVu3kYZ?*N>_ z+rs)R7|-)vk(}F-VC{;=(eqIU;aqGu3(5ZO;TUfzpF*-6;r2gC`3}Lm&hV!4|KsF~ zP^f6U`#Im1m3@cFe;d36`Ei2q?juhV<o8IRREP9QzkU2c|4-#R`)s*duDvCb_HXh( zZR}f)Lxp#j;U!1mt)r7^pJ?KEQWyWgn*&eBpGSuTypDz^<4;EWY?;#x?+Cn<?f>P8 zjauHTqwwsSt&8Kyy5}goZt$w`w*;~8DeCY!Bs{HOwNIW~K8Ek?nxU`b$$Wea-Vk^U z5q^;K_cBJxd170?%9HhEwDBa?FAQx1-c-XARx}>be*Mbx(W3Em+?8i!u7sCB1_@0I zaePjBUdyDstw?ij+KGFULtS~FKcBt`Z@b~$!DK!Y*1Sx3@*KTo$d1Jm9Pb(&6oD7} zb2xq;;3R9b@>>5zTi<_x9TM`uD{Xk$@n1Ba9Q#R#g;xij)~~!5eF<g#G?VgfCVnfj zbuz=1SL!$~yf%hce+c)|lm2)nyn=(d4hvb{BFB?Dj)T_^9@XlHPp6;Uf6XY2_FbLN zwEdj{Z>-^E$A8gy+Wzvvn`g=^>ya{)=MogHzeypg@SW|yYmNW%!&`57@(hlvNPk@x zyz4XYHXHw)32zU)q`-atb0kjI{(405-(FYXv)~orm`r)u@n1BaoWqk)0N!QrlKua2 zO)=N^pUgga=EEwSt92`%>$eAhv*F!fc-gTp8c)vAN+<~LK2u(~zxQPJMLTaaj<H3; zIq;q~yzJN)ji>W@A$V^ZUQX>h7v5^a%c*_m!Am#1oZ43yUZEYQ*8Z~cUlDj$!K)Hf zk0<A$PFBBmuGBWD<Ma9OS{Pn-{1=U<<8x7X4;fx6*LTSL)+CehK<78R-<<Bo1L?!X z;Egi8J_oqY3SP@hcsjpX-Vw)>K3p8$Lc>%0+GN6uW?zAML0=a8E`axw;i-KcGvP(E zFW&LQz7p^X><sHy?dz5aFPeQ7jeRBIRX04fuXiTAX!g}I_Qk`y6P_Mlo$mTT=eG;t zJz{v-X@Aky2ULY0O2Hckk14?qIbHu<1n*tL%Z`0^ZJ_;4?Ms07r77>Uy1b`@x)>9s zKHed2AzF&0%u|r?YPtPp@nLCrhYW8SrT&uizoCrt`TOjJe$Bqf8Bepvoj_kG9q_t1 zp4eChUa4Qh^{MQ~o@{)vYe_Ay&L3srU1xaN@n1Ba&L8FAwS%Ygd3MI<X!E(Q56Z*q zXL#AMFB(tR2NmE=gqMsjCFFE{a522ahL;`tvRWS`!ut_kmB2ht-e(?9dnk`GwiiiK zjrglkf7;$Ew}xplFK9RW+55W$UW7es<&AqK#;ZsACYkVVC%zp@C?8&zljeAG{B|k4 zM8nI@{ARB))AlE}Nw^GNL&M9C|Dy5qI-iR0?ln9;UcE1q@<uye?PAJ%IlKYzaIYV7 zI$l+R_mbgdr@UE>SC!!{f|uazJDuazzOKA-yjlg`Cc`_O<JF;#C&#N-z&i*pr}L4n zhpNIWyes5o$A8i0BV7+wgI5)v*6-;YuTF5~mGQnhyqgT~bdFbNI9^Zcv<AHU;T3ZA zo73afE8#t9c-iq^R>!MX!JBN#dpgIfi;Vx0;4L=1(>Y#UYy4Le-goeFYd*Rf-T}kQ zj{mZnkFJ4NBt7@$qgwE;Fud&8m(_f9ExhLNPQ`!Gj*oP`aUHy_hL;`tqVaUSQ5)WH zcvW2g$mx8P3~!d<Wyij(=A%0B)|>KXXFU|Hyz0NY@OB$scI=DBQ~%Y2SLpZLtKa(Y zsu^BR?YkacD|n|;ztN6=b^d4ouZQ7f$G&Jhoj)4Fd%^JZc<@w?r#HLtO4ht7@ZK>z zJsv!j<LPwAlQr)R@V+rTweM7pr;ix>8o@hmcxvCN98VW`H&~yFeU0HI{t?!%+IK3) z)A5cc{%ZoSso|-8r*b@9(b#t*yx#C~x_;5)>6_q<G`#Gzzi8_hit2}^@aDqP^-E6I zr_JDfYIxbPFRS%wb9lQ<c~9qfdV)Egz8T)xyTkf8o#W}X=6JdVysGeMihjuH@$@b5 znj2nr{Fl}7bW3>M;hoC-8*ROz$J4jM8)kUfu`e1=kEd^gHxpj6^IuMnr&HmrHN5QD zm(}{E6};c!RdM#6&hd0DHy+3_>+SH)*%R_k=Xkn_<H<2=Yk1WSFFWglX!DWWizgus zUPE|=g8zDQyddXRyL0@@;h5Ji*7HUL-^qVHc`mL#M_B%U2l;Q!kbl5WJQL95e<Vgy z`ndn(Z$tjO$*=A85%LW{!;$P?$nO{RvwLx$6ZZ=`j#7T}yoAKyI?V-l1)q;n`FFy5 z5uT23(jMg66}`?!cwDL_A<OH0+QOL~g|jPvkXbmjgFmypex)6pRZ%!?%LGmlPKx8C zVYKea=)Q-J+wI|Ofs+uV_4n|kTyh_~1mQFZzRR*)cfmOfN9$Ye^C>ul=l3D4@4Ak2 z1#wBJT<QPb=cDVv4)D(XGqkG?=^LVMNbBzo$9tE!kI-h+i8j&~NjcN{2iJYc7;!he z#_+WMj{L&-{Y)OOI#OO&$Lm7eBWO6PNCnqI!b@@2kx75K2VNg|THYm`&zw*C_mP%& zfaA%>RKAaP{Ho6@?g($V;e8BeE&2zkeVlTZ0EufKhVpDpBtC4C5ZJfLwO8?BCwQ;J zt0IXBACh(@T7%TSkAkm!Ue{;yc(+^}-XkjImGCUSlyEP+Mewvg^{LN&BIJ1lDX(RW zpVa4#AiixBo{rb|!CMDU>*K*5G2S@xyo9v8oeXaw@hi{?*PEE}t24a6;U)McP<A@^ zm!#i>)V>D{Z~cAjlb88#dDXry@Xq=xoKJp&vlHzyJWQ4lSMxcp)kNL621M?;4?GwA z`%k_g(f#l)gs0_|`#Kww=XRv!U1sbXPyB3TZ9L-E3)21`fR_eO+n>xQpOSvF;cYOy zzlo0-cH;GdU7Y`<y>x}w#qgeK$bF}zFNxGXE^GA5EC19WJ~;#LkZFJ2;JpJ+*Q<?5 zdovn<l*e++=T#Y=$GZllqDeoI4~h3Gasjq{cBUOY2yY*}e0~<L3!O?IApK~hyfMLd zvF{SM7%f9`J*h}I#XH1!55c))Z^#+dn(HpP)@&nbaf3hJy%KQZekE=niq>y+{Ok@d z37*z#H}c9ncbI$<Wc*y<|CRN1mObF4MByAYocFWA=?N#za6aaK&tcpn9`k%?&!Q|i zI{rQkr!$<SAgwpNM8v<At|T1w_h*iCIdRp|H7L1kI3D$N?MwR9|KL3WPsbzWH88v{ zqwo%y{r{n+zsr5D&%<lx?7NI|%C&i^@U$M~9n%DVJi3SYH0Ji9jZf^Kn~w#Fdc%9k zly^2ar9Q(~4;tR@K~kUh81dz<VhpKqB2U%|68gZK4lgzMuQ!<Va;@cahIcUd&gV@a zzQbXB*Y-r-dHI7*@(8?n@RA)*%RAlhVuPgrmUjYW%~)QwuP?l%@U(x<ha=@(Y<S%2 zF5%zuuH|8y8Oy8dy+`4#f#=p7|CV=+;ay~SQr@(-|1Gb)BSu0$cwa>+?>B~5$?&9p zvnuan@U}%M?+(MOZFo|@S(Udxygl%=f5`Z|pFFWIg#E+Lhh>Pr81*k6uEo;a_*OE3 zb35>k!sAarTuItms43F^*4^1RjktwqHJU*kFG4cD6<8XscLu^MywA)JBl36!(X~i< zk2+rbNZu=f($K1goX4e~<U5aRXD^KPxpMyGad=G(PtIpae>+Sb?QbtQo)kdt=ZQ9M z9+1R@LGaqZ!ySIuRTJAWEbpk0_mbfquN$4W(ea*u*Uj+Gfl~w(GrZRfuPO1-?CWxV zV9%5Ao`9DS{MY+u0OvoLCvGvk6^8fV!_nXK)YI{vf;SeP_P0K8?wTI)`tzyv@s;Dv zB<?-54B7Qv67!eT^C#5zV0dpC`_i!Q8`5t_%Hwpu1i$|l9L@EJ$gZDK9q(c0*Qeoa zfT!)b6lu$&tC8}KI^I#@62|25>Y!CWaX$$XyNbsJ?d9lRuC0Z4z?AoO(#}B3k@Ct1 zbr;uYEa!SrU$lv`?R4#V9nXUk?tcFN47{`Uhx5lLq+N&3c`@WQcD&Dt`vaXdPVQ-D zK18$6iSZ6q4ea|JdxyeHfG6$mY&3zilhJEPFfwo7?|A&z+d;gyjbn>BJgbKXVTxT6 zq;E)g7G4rO4YL3LCjU8ee8`(bTCRunmoO)L4@@D4dJb;uDBOaEJMJ{N!{GLd!adJ$ z2cHIaINVpFaElr)x3!<LAD)N10&aqHa0z&&Q5w?rM0b)9*KGpFC1?n$!W`X&`rmns z`giS9+WQOezJ{mkk?%>n9i1~V<Q;RoHj}wF7^S_+acgPbx7IeO|0z!f?@4>AJ9`=M z(&1_US@Rn06BT<s<ngC(pZv3!|13i?2FWo);@L4?x%-0lF7v@ic=@=7O~(se#}%6z z^41!jFzfN19n*Tb{ym;@jDnX4Pv_^GNh|B#+xV1XN_+pw@H!K}rObbik495g38UfF zf>$W`ulEq?d!b=S>tna$eNS9EI*4RE)9Z-_yW?r;Lu24Ii^8ikE#&P#32&9*jfHnN zJgwipa2`jK4DTPu>-`4DTIfgAi#6ET8niR!zXgMW@#4iT?ES#&1uwyscjB8Io1s}q z%R3t%65{p{cMu&zld9n-+TgT;9CK6*=jU<oh8W&OGnk)gz~%W=-Up7?j<_zUCrV;| zj%7ne#-6dRer0_<9^OQF+WzFYW+dsyAg$k9ee=Aysl?4h9mqGb?1}45J^q~lZ$7-_ zAdfds@|1~q3k|Qg<H^TL;)`HcIcJ;LCqdVnFTwlJ*w=tO>&Wvp((=A-co)zg<bH<Y z%%2NLAgl@Icw!>Fb?~%*H2EyX+Xm|wq~)D&c*lqzOj&iWM0gT<25G#P;cbIQSM<XX zepAYu_bst5=pUc>e`S3fHwn&OINC2h`keU%Mj<35>1P`pM?T6Be;G<l;QTwsIx-H- zaOD)+UV(Q$_r<DRvd>h7^wp4-bEkmZJm2t|=+8CNa!!VKDZFGd<U^G{jq$F5b)DfI zB%a`}8|1kMec9KL=bsju7_2|267Q(|IN?=zSHsh=fp)j}C+@{HyhFj4kyPUDM5}Ow zK9_I``J0hn{Uz_Axra3OBK6lL0p7PqP>=DQv<Yn&i=4k6;k(!1-3u>45)!5zkMW)( z{V2n`+VGyh-sya2&wZ>l{(l|bbMUmC%_i-;=u5+EWO$d%WL!ll^!bW4f_A&W^;4;X zsqhxV)B2QkbW75wAuaENhL^;m=2|qH4B|Iwvzv{5)8K7_mn?-P$oqzV!~b32Nfk+Z zd(83r5%(+_#QdjYu<#@dBTm9}c)yzR%6*K#?q|F=JYDC%LEL`kLp$dLwByIm-4^iP zfOiO<v^5E{S8<;i`4%88?-Wzs!^C^DPMjB0+_)+JdlO!nL*cl75oyb#B&570j@OmA zK4<_+tq_iNL%#^xv9#eC@T$Vo`W;8wN$72)ydNF!Fmc}OJl+{d_T_Z!9PI3q_aMCm z?`C)jQdq)Ylj&omzXB<bZAuA#du~De?Wh)ccalK-x5>2^+2@-HuN^$~-<CD(J=6BO z8s1^Udz|<o$ks`^X)m+jJp@nN-zd_KM^lj6S6CVj_QlO%J%maj8J{N5Mr3@Ny*5~< z$h<up-c)!x&lcyJ(dML2Mapa9cmjQt_(7<6iE!Ps%J^>%yhYYN(vC+{kn&nN-V)+g zq7BH}cgXoq_Oj-}`y8Iu?}xW}-uI;6f|S?M*cX|b$IFjwe>-CQ_cpwp@NkD83X!%b zx(q3g$GJ&}dxf~U=u_0CEyoT>o-6v!3xWT3lI|UN1*pITzLIc^w6SmJ@h(8h<5Y@- zxWUA|h~^^YNqxNI){VlO2k#<yTE9P%_Gh#cDQ}763ADpItSito>b5OyP}<+@Qo*`M z`rEtks>4(NEg<a@^dVB-4#PV}{5kXBu})lo{Pw~^TDZcS53h;gEt<!An)KC>^5WzV z%KJQVQ_w6_o%tu7LJ6<S(ty{r48H-di{Wh|?GI=NQr@MGSMXid<ER|kQkCbjF-8kd z-p?TRiT~b%HxOQeZvy+=q`d~!N6Jfbya$QvgPuTx$)Nos-SMP<ybo_2Jgtw>q<sk; zK+0?6c<bh4H~I_7IlF1}5wY)3wXi-G!dnGT=gS)tc{dmnVGpD{9z7$$A754y{~40; zK#wyLj)(QJ2;L53-_i!GdEVoB2S|CN9j`kV8#N{VRwVXmeZ+qm_)qG0F}#0_|GJX) zVN~M%kjH<0`yz{|S2P?=D;48yIV0jFvBrq~Iw)_~vfQ%??`)pYspH=ri|K3Ic=iyV z((Gh@D~$+oj}kW+ZD*gdEp;n(szGd%@BzG1@RIoZ5;TJJFQQ3E%o1KD$K$`=M&f@! zUEuXX39KiYP+plXWv#pvUS)V1<T>?no_a5N)V|8_ie>Y-zlcM92)8j@-0X)1%TB!i zU+i>A{dzvg@7cW_Ew}FHFN4?4@G{=do{@L5``MSn>*f3?1|E^}E@A9M>c`rF>AroP zi0_K5jm7T{+D*rYIJSqk8D2_|#~Vc2r_ltYyr&KCFX9g(%gc9p(5{8|5xmGh;ku~r zYW8A2;8~VPd9w_!9`Py2@{){wAH%yGp0pbYEl8V+IwIwL6ny2E_f_JjA<OIQ`iZ<} zd?ma##=Zv<c)kSb-#5H7f(rI|BVUSm<B{dfFuYap=D<_`{Q_qf`rGho7+&?IdAyoP z-q)e)%C&A>ePS!m(}Q;qp3dtZ^^fuHA$@P8<^9W)cPhsT<M~d;Y2~Fl|4DgQ!z+Cx z<Sk$yZ6@jGAnhk^j`7R8ig;UAZO_7zum)ZOcv>I%|6rac&$meJD;gyAc`X@?_hw-B zGWEL_UT0(989<JaKJSMiuYlndCB7uGHWrv4j5%WCr|?F>)BgJ%c}4D=lt0dB|FsM) zr}o>=;7l`|ll9wV_H?r1eGczEcpAF#hwM|9p)67li^Fk6{_9^?!}Q@FYsvrDk$;29 zpLAx7H|(8=SHa}JNfOfi8W49QlJ*cwyO6M+{C|>P>#gpnh`$eYi^*^6?Ox(%(=dvc z4(3Aj&&53g-UfK*vN5gmp&YMlNM>v@yr+YtemiJZmFE^xDcVMrr}M)`c-0K=1IF{A zRQwRb8)JC#9I32$U%+b#FJF+yQ~O35-bBOe^lH|;FX8oum*9BP9;U#06G^+5`devu zi-|u}KIVk$2;yBkmE()A;JpM-+o|wACeNpax6bgsCw@D!ZLFf<eGP8~JgwgsUyS(Y z6?c(G+t((?+e@50$8-_(JBa$#x{y!VbCa+M-cEQ`g8zDdlV^M#{<AFP{S<r`SAe)K z!?<ow+Dh3Id0M~Uz$<txY%hh$Qv#Jn>OYp~65`$_ZW;O%rI%sd+Ad&vzX$7gVSWp* z3~K^yf0r)L<5fltkn*ZJo<Ii?{|vHirs9X;dh9!R-3@OhY2QJMk@D&}Uhx$?&k!Xd zYhSbKp?#a-jWoO`?&TRVq`wa-FV*pu5%&q&fGlrD|Iohg;eBOzM}_lI9xo0luZQE^ zL0kuPKeD_dhW7)!Lxwkrv{TWWNO?~<-q4Tv4lPA;yt0aRBkSXC_lN7_AK}H*(zHH$ zSLXR$D|u%%Qr;(yH<q}U(d$Up+tT*d8UJm8SJUvmBkfP<7o@x`j@N}j<#F@^YI`H? zWmjO|q>DoPw!&*|cygVzjK6=9NBalvkl>G3Cwq?JPw;vfo;(MxIM;g|gs1l96)?P_ zpYWVBR1VqlZg%SkY0ul>jfJP<K~2)uMs<<$3Oe2x;$BB@qc5lnt&jShgZ3wL*migy z82kPp?Ox=q4tW<lo*0=(d}U<&M}e=x<BOl+{c3piN!tkBh}6Csj@N^@N6<iI%UjFv zeu0-aCTuTqomalm5pRs)vHd0??mOasLHm)k=Pj=N4K@9D2fVU|*RKTc9cS&4uqLcu z-M<iMBjU@I&U{~bC%ndnr{!%)J}s}DPb0)-R^BeAyuZThWO#kyyuh3>(C~QVw$FQw zxEbheWc@e6@P30g*znr3$XP}D?~vN}n&S!dDDe^Yk918T{cY^sLH$0$_q*V|X?Puo z+gBjsolhPKGQVBw|K-J5hHxb4IG+w@Z4^#%!*O#;mYm<={9!oV`0bzb^K4DSY3u9} zAJOejn8(zfKj0LOg#D`WdiH5xR7C10DJ#M6_bJ3TM+vmE6xxTBZGrQXFn7bd8lH}G zGH?Hw#xsh^BkmSIv2>B(^JE{nR=NMSGhJuyf!E&fy2054?_oaGJ}JBK#u4`xdKcwu z$aNQtbz<KpW8a_fzB1*N>%YZspOQ!Illm5(|Iaz>C1&Bjzu^62cpKp~CgV4T_l$rX z??>XrcNy1>S|5AimB|zO?-$aiqr*tc%TmJUC49=B14=?^?bvTZGViQ){Xl%U4_+g~ z({|FFJQAcnM)-euSzbrIA5K>|I{u#DjN__vBVJ25>Nj0~wkEDUYEqWHC)Y-#9wcZv z55OB~c=c;XypH7QfwY`con7)VsA0r=n(xGS>5Olwg?XpFTi*%uAiO1}oTEuQ0nIbK zw;b;Xam7AkeS-Spv!O_AOaCxfPl(?R!TZ(l)Ni+uM}qiG&kJVNzYfDWmlxft-wv@Z zFJ3O<wT7d9qZkt6+7WjL<CL^F*~1c>G^pSHhF8<@TE57*Nxq&){ifGH3Uny(qmcMb z&oMSJe)|VrTX@=ECzEy>`V}ef3jtx@kk9E~XcgMN4Id$~uUU<7UOfVDu;HoSE?g(H zz;D0#e`Vd?j>37%a7vT^Vst4|yEwF#5ce=~&!b6b0(H6haA4OFGanp-cM}T^tq1M* zYsjPZaLn<1=t=thad_PgPwQblJhkuK7$4}5Bhl(1&D4WeioOC*>tQFHKZLbD<P~$g zD~Y=S-HNKD@XSaz&ZS%)w%-_d9~++5Lr?NZkoJ3_<7L%;BXE8<<@}IFf8h3r*Bg$O zv$W$pPTUamJQ|$9yWNnqk1nR1dEi~mJsesO>bJ3mXZM4m`K_<v#lq_VPyIFv&OG#& z;a%hG``-rE6zC;Xgh6_^^IMZ;q2Kbt8)kUwx9)C}Mf|4cRkQM29Gv;4oH}p)#&4_N zZgO_nc`NCLaNas(=B+c}Rbd}m{ib#m+!)s9y^a@czS8+LADlZ3=Rj-LakPgba3s5w zPtWtp`}*v2Ii)To2rECFXADQ}i8uB<?Ci<PPiMke07vUDf&3LvHKcy(<2bhycQ<+f z9jVU7b=9DKRs1?wr-@x>!TZJV)UKz<BSFg7FB^6hfOBrX(BFMmN4)3Dv1b5B?HcGf zuM+nLnuVH_4d=WxXP1oKXTxh_csk#$FuW0tCw4}g?}nOoUl88Y@YHYL!1)ms`69IM zMaO%bxN+!JBz{Xz3j8+Mj2Gv?n`e0Hw-&@n5Wh{%hTjUoImWoH?NrwZJNa!LXJ2=m z?5q>ch4+K8s{^*ky891!YS%o+v(M-bT57o7I1f%Fe`uF-{xY0Jj-&VcDMLPW{w)kA z5sv!(=6fRE0T_9{4E?^;aT18T3{^+*v<sboi{BHr*COzm8lL)H-?t!sU*ULJ^`rCQ zbT{R@<*XQg-F>~Wi=~HzxZT{`CD%cJ-znmc)3O$oGEOk<t0=tpja}-mrtl<)T{LeA zaasAj7@QxBUCL=;I6pW}R(>xICzd_rjDEk(l<z0U$;|Ib#_t!vyUg&^?>&rNJVwzk zUsirE0jDV(ZSU&$UdApS@8fea^ZN|r_mc2N8{R-TgVA)ubKBhhy5b+=W4~hEL%%*m zzb?+AV}_g0q|L^|TVl$24QcD32awdH)FX#4zJ1>iw+9_YcAQvc#)%8z?Jzv`+gG$H z3BsegC1iO#Q3}r4XN7*#aiZ4O;W%-&<78)?xCmY~!|Sp&;vM6dqOReUcD$R3y8}%r z^WW=@Wbau*0=!hi({)M*@~PjrJVZjK>$^p!UQ5I44^P|gBX9<wC5Fc-0H4=#6UQa! zDJ1m}TQlgN>uQAS>@x7C8=ls~FXWLR^^oj%S+(D?a6UKXY&0M^uKNv+WEW0-$FcQL zrF3AEj2jYkd@KiVzv0RCidUS;Jt@YnTe4wSc{uTm^Xjid<UfWAe-rw@wd2TfaBbpK zkoZg21w+lcpaQ)5hNu3zn>^~TJF{We#c=M0qy2r_?ZG&Eud(Yc$H}a}uQlx=5#C&Q z$-Whg;c$AR!G_n{@d|v)aVx5dCb4#%jpRLW`M57y>fkN*JT8HkNXJq8w467RN6Wb- z8|AzdPIEZwe_fX~ha)6u7uy{tvvt`b<NwRxJz{ujS1)7N&TQCK5zb^&K6(CH8QNE0 zIFeoLN_QMNk29`ra6CN)hlr0fXnVaJ-Y15qc0FnAI-U)?D#7{7lu!LN#P};uPz7<B z`77P{t1`TJHni3MYS$cN*BOqNRsXI6ryd+_4|1Mr7vthQW7k=Z^8s<iC$ksEwVHDL zHoRQmv(2WxUIA~o;dQ|0vL5@`*j3W;vYOAU!g<$}PuEeaja?TxPG<9Ys+rHL!Ta9u z)L%P{U1hW3uj+7O&I$dc^Z71g*Ts&LS^rKq{;B~l1)kQU`fI<j>ng{~Y8`bYocoPk z$~kN}*EmjAe!mLNNMn!s{irElZO6&X@4bxQli)2fJoS5t?*fSQ$9j&JRXeQ-XR9fn zj;p2MNOs{gbezome#H3wYIv6x3hPnl??l79)$zbb-6t!sAZY(GR$K$G1w5_C+He}6 z-iDXvc-1#^{SA5&71+*N0?D|u>5Slfn;fUsg7>K5so!>!M}m~Mr{iViw`<`{G3DG# z{>SOxhxwH3!s+ceCBJ9?4Anq`m@C@u3havC6rRVr4&IgLhJMS_g!zsBU7tM48|HX7 z5!Vv6Me_c<%}B}_Z~RspUMs`XdhKX<FFRgl^;*&JlBK+c*MTz1_|p}h1S#(%$IGf8 z)Pb`Wj@GC8zq{eQ;y79Pzb>4=3`hIZ|4jKNJ5FZ(X{_l__288}FZ93qYoy`LcD&5| zRm=FRKD;i5r~aB?$~h++{<<E{7&saIHOX-1X2V|%;4C#9_16?rzPC@}uLZ_m4dJDm z@@aeh(D1k%PeNQ~?X`*VR|>rIxX`?~pN02-xc0xs@HkbNB`?kJZh&`{;psT^rQz|X z&y#<m?RR!DyhiZa!_#_5C-YyZ{10LO+~#=WiCcocM7Q){pA<>|yk$gq9MKrwbB3q= zpv;c}MEcY3j+a$GXaZ-xDd)b9?2E8ZTmg<`7tWuKlX0I|*BO0HId6oQuSl@)62C~h zed;Wp*RUoym=<0&`GUjO1#m?YZX#b<@~MAD*WtE}MiH+Hb_h-KUG1mz;_4CC2&I<^ z_w2+!5_Emo6kdIJ;ui_cNiV$H_|$SW3ciZ#Ox(lhF?57`JJV_e{vPVewSbN7X7C<{ zS0%{fKfj_p`!G+EN9}vi@vbEPo0YVQ;=wi7fn~wJYF~4BV+^m#+c92+yCdF6cxs=X z&wTUdh&Pk?dB`#+7{A{PZ!5ecXWuf?u0m^&+Q%s;3I1{K4&r;zuD-}a*|?WkZPerF z7VyqIKP;~tUrKoo8Qxot7rP~ocQ%^Qjx`0cycf3wiEe>+IXq5#_@M;p3-#eT20qok z_kyo{`)0D1J;eFK*h_-CQ2WlH&Ly;j*9=~>;J;o)IFI7Ls)n~L_|E6$=eG*M%E<ef z`BcKK@Or^Z_W#GT<Kfgt&5_o}n&3O1*NgaP(I9*{67_mH#@pn^w;}msyxZW-fv4@c z{5JO8Z-{u~4DVaVTSD9?=nJ&8I{S@u5Gn5rSHD-_pj3GOz|;2En#OT^O2pe{csm`h z*w#E=8FUGXr_8Bk1KuHL->cZ$3SOh4LI1dje2>&)ZA1DSk(M_SblJF`#0^FxP!HA~ zgV7|)TfAe8_da<yREhC!hc^hG202exn#y^D>-8j7`Y%l_+t;nf2fyvL7C*wx=fE?t zVbjeVd-JJWny-Yo6~wJU<w|obO}XXX7;QJ&@6zC{hey}+!vl-ueURKYYIr3bPZFH{ z6VCwSKFYocC$_`!uBdmw`_tH0g!CoQ<w*UQ<ak4fn~s*Cwe8p+<^<eWjBi5U5<A7l zHt?=07M6DhX@5t1kn(PEyaXnU$|wm*nK#26`x4hmQZLH86W$Z>Fy9Z2N!uKCK+5av zc&`)p9$JAm(Jv-Y&%!CNJhZPZyaVvWfBdBPJ8Ac#V@P>@9k0xG{D7`T>8vql!;?Bm z#lGSEDdlYk@4n(;yWupt-;b{+kMah>E9UNZ;A^ib-|5^T_APS#ME;hLK>GG@C&JZs z(~W%69#hFHLE7U`XQ#b3EFgsQ$X#$&!_oHAhWs5+SETlhah&&w`v`49h1mOxcl&=S zl|uh@fLG*#$iMeL{Z87w=x?OF`HolcXYPMs6Z(8U<yon6|Bl$V)|GcMZo3=awNZHS z<Wb(oC*f^2ynEo?Yj{=QT!n5myp4`m_80E0MbD$Q#~B0fU_9aaj!mh-@lw+=p4SoH zPIw8v*LkKIX=NPrc7*+xZD|SqxLTC>^mg3;fo%WPalaG1^GXEc^iYzNCw)cK6lr<+ zISFxViQA0|>_q*!_Lq5l72{SH+VeCL$Xs_XyldcTD4xdo5w5SRM;_(L*V_JWCB8MX z?JwQ=Puos8{Bs}N5oDy={LqO!51^h%x#9*w+yLSRqhUzSL+ZNfh~r8>=?w3^D7?{z z*Wx6+0!*-Cqwu=G`zZ=<vf;Hk2`}F8?uU0~$*{aL;k<)BFuZP#_cL*?7me}u@G0lK z3oz%2U4u<Oc>rEj!^`_C&tF03A@$$mj@N*=J5V=Nu^;mjZLkXCOcQf_+!bDH!+V^x zPov>Td6OJ(CUNu7QZ$KiaD^KOdzo>y8@#9BF{Jq6!_Q;9t_>sJ=Z5!|<4J-Y#P31z z{h3Rc-{pF*iq3zsUU(4RJa~nC8rMaU_9!a!TWH^hj@O&Gp=dmcZA`m%_BFdQI6jd2 zeF)w+ro3N}_B&K+SIGOx@fH#H9rDt#@i6n@9PS6;c@@n#z|{8A9bUuupngZfZ%o>o z(Gy7hcc%P7d#=HOM>EtNP1whEt#7f{Jt4+h$N!mb{c*nsyiV{m==i*XG!kTdzBu^v zgyV#s<m*biRX;sR+S%+QuOgq&Bwt-;htJ`=Xyd!AsU$oMZy0t|3I6MCfU^m0LxK@r zisKz8F76M`WuOA>8Q+oA<5<@&WQ_VByt&R#g8cprjwg^@LoGikJcb7e{&-gkmc92u z{4GK4>jm#i!+V9?^6rTI^*De6l96{d7m;Pf>kaRq;eG!y=XrkQUB#R%ipDFSiG98N zBJf-~c<~p8{r(8P5*-hGc7lCb+4TsVx`va}a`uJS+3@yqGu=O3X~Qj}m-Cy1tn1-X zcq0sNGydO-<ld2Jeyf;?-?U!)!CPo}NA6?)j<!(~MdMXF3GXp@KO0_7{nsDfxuwE> zX6x13$Gqsb<JHO0`<aYI5(dDl0gvI{59^+Y{CodeG@d-)R`xBvC>hKRL9YncWdq@* z=AwO%!+R87lC!S^pQ0)5|Ju)_yal+1aFw)i6Ry}EBpd|iRb!WoYoa%!aH5S%>aQo@ ztjz^`o`my9F4*%FoWd97+&_ci)P$qs_v!lQX*lh3!JZ*-2IYc1&%l`ur;4lRQ*A$U zdjuJW!r71u_B;#cST5M}9GtQVIj^r_a2mtOY5y7yr)MtM^E{l%xnR!=a8~7lJtN@! znG5!egj1q)&g*LwoCa`mT3@5#bj}5P#=sc?r)@U+S7Ocoj?cprgH_j9IPc|xJukxf zDHrS+2Pd{n&g*MDoJ-(jXZ$H1W&S$M{)~hPaGK|WJukuOn+x_#gfl4@?0Ff^N;nCA zDTBE^v-!Oi`z#sfcYQALBsl50V9zUXij>W{J(J<ogp<?x^i??R;N-NwPk}Qy7wmZr z&fHwE=XE$==7K#_;rs(9B^&LhT$KLx3di^orokywF6Z?%9ZnNCIko2vI9+qWo;Tr) zf|HmH|3vFw)nvb(FayrQT(IXYINNi<o|$ms%ICbkX2H1(PFuf}S&u)}qs(8E*wd0Q z8%~Q{uxAdOez{=JTsV_+!JfC_d;%xgFJ;#LsS>4s^<@89!aH#O%msVq!HKVsb9>%} zlME-P<MVtt9pNPSrOett(fXIpUkl(2%>{ejgY!-<*z-P|FLS}3g>VkTIo<K+Iye3- zf^*TuIj^t9a8lqTXQ#fRwCB2RKVb=+Zn<F32XMycf;~&&e2@$Fd<f^49N069ePs#D z;GCJ5^ZHs2=L$H*1FSc#F3(?Q&#fV1tLNW+Ox^EFBmQobP$s-TXn{FDumaw#@RA)b ztNnmlQR-jI_Ys_jbD?}6!+FtgWIwNF+lbdAlk$n#=g8hQ4$-x6EqA^`_NZ3ETV#0M zh!e>^R|M&P8GriwgUexMwg0;c-cRtd(|@Dwn`!_31Wx`-a^4<R!>I-*r}nIYb89Zx zvldR@T(IX;IIrh|J)gnZm<#rN4(D(#*s~5!nM-rt-`2yq0ZvZm>kV+a!^z2bvdN4m z8{v)5h4Os?XGt!U?@Kt_4d-;mlO|?7`3l~dmqqvc>5L~|!>a}_nE^<`>5jjf;Izub zF5&7pC-XwIaY^^{zkxFlPEOjxA=4hdg*QDH%J&_dHMvl}&2aV@&gry=G}9iwhj)I( z+-na%z`GV+vQ!!&tM-r*Wj<c!)*C;<>6nRK!p&}b*aBx{F4(gb&ilDw&rfi+!KosJ zAY|pAXy?E5{KYmn=Ug7W-h`W7|7?eI9h{un^D~@#a>1To;5-jU!=tR59!Hbi`swr7 zf6wd3eoovE=vTCqbyn=(T<6U3d+|;&-VQhijXf1#=lKv#NwYh+enB`~f+Rtfo!(dN zBK~uhm$E0h4#rOMH{v=O30&IX6(Zl|d=@qN?~pHf3|T4S%A=i-ns9uxll*eZl2fYQ zuW(*=97#Mqnd@`;tY|oG<O`N_e`3QCB<nzZ&%$ryKR|w+C$A=-y#FQH<Uil#mygE8 z4=PQ5cbv70{Bf1T{i|E}zBQVRq~PL*q#(b)e(bl0>&#F-9tK(*NjWAA2(GJZv7J3x zcqQN^1bMtor2PT?iIlg{@M>^TdjnLlJ=eV=;jMDlAC1Sozr(8pPsi&C`(nISr0<4= z_dWKx?|l1SBYq}Ixt8aEBe^alANhs*Y!NvJ%X*vttG_ng5ZwRxIeDZug~wwtB>21) zb7M|;_N{Ovh;0&f!>b1`!T%r6jQN!7KVki7c+x%yK5q~4(bnG^%LIw`z-tXp*Skla zjClLWbI9;0h6JBCKVM8#-r)v8qCeq1VC<9o7tj8S>zR<2w?dHA=anTsEBpR}H^A7J zNcu|X3d6(g5`5l6nef!Uz3@iBb8XD)P5ORlfZ;u5c=J!f+XrtdJRPs5{K~N@c|J0{ zw+wIFNqGC=Ej8s$8$kah&o0ATZg>~%&Dwtl;Qa_MA;{xhdp+;gA<tDv+w&g7YfXIH z49q0PFKL6)W)8wDT_r4UchX9EdmCQf7$4}@$9Uo=XW;d9*XIfE5WHsav_Af~g7;p0 z5b+ipUNytpO8idr#bx+~0*GBR9IxKP98<u12%eT#?l;b}kL$OPw!hkjckIgO?OFTB z-|(I`Jn3&mU}e?c?6a%IJ_*YE2i^pD+TU8e7vmL!SHjq5`&(t=qw%yoAA$FVu}}J2 zb@F7@-=gu<zN7FK82hBZT?H?z{uYg=_8o)w5j?Hmt6|kfb&=MG?Qgw^&x&^(-WTw+ zzdgvq^&ThBlZI#e+vrTjQ?<|ICWxJ;ycg4kroftNc(%WNM|?E<)PFJXB3$gH?Qh&G zypMo9C+lyPnQHo51m5}Zw7h#^9Y!bXZ<e>&^tU|lu7;=ev6{V?Bk)ev-?o_kR^Xdp zJdpkt3-4xAUYXyH!^^6_S=)l%5%!O~@H!a#BKw*9Q4u8Ll{A{#^2vBVjJVP06%<>R zdmy-9LwG5Sck(IE?~jAG9$re2$6HO>^=Lm*-qXQ%aZexMx?eOO^&)Q(Zd?&gw@-uX zVTE@FyuaZkJKo=<^$ubmQr;}bYeU?<=wUPkzZCc_uy5`1(7t@|603&w@giwoMhlVh zxP(zc+!crNc*&>*N@uY*`%u99qH|!MJTE>!yfk>peir891nyNMy}l1X{C9>K|DwGQ zpq8s&;hhO@9z6Bm5Lm;}45aqi=f4#>%-Rzj!M*}*0{g0b7TEX1R-X3-FQ!`9p7V13 zbRW_`hm`kMV0&E3MBWpEZb8y!4iyi0y<Gng`wGCTWO%dTyo=sP6xDApZmf-a3eIy# z)*H%_`jsFo31`E*6`uBw^>DsMyO7$a&y|n=JC9cuRY6j}Ymu-jt_bV5AiRFYz80iy zh3-bm)As>9N!+t&G_vivi>Z%u;Jpb?!_#Em-YMcuCy&Jb%6c-W-k|s$S_k)9F7SVh z;|B6CG5LRgHO8Ao-nk|}ha3_j^N3rAWc?q@b73W%Oa8A-{;&D|2lNxt-|rM8jqD)q z_J2;ye;)bwkUt?v<9#?e;+;jt_M{UN#r}rDcX4kJw-~KPeLGTT|8UJa&p{sS`nT+{ z6o%KnddS;L+P~2;q`X#+SAdI?JE51+&^VrDKRW2&gZNRYH@dY~1m1-;!uo$9Cf2K% z6!FILsk~1d?>FN1qa#S}!}_99Q2%3H`+TGV_wc~G9iEQgl_RlU4U~kG_nqTCN!;^j zEV8@>j(5jSj`!g8F}yXTop)2jThFKR{&2ht^Tc|Is4}v=O@>zt-iwAO_pe82K(~@d zc}E;iKIFX+@*V)Y=hemS--vz1;Vm%!>j39Ibid)bchbhqC+=hPIg<MyyVVW+*Vpkr zY3_L!!222=UDgkOkoI~GaQ5-3?M?fmB)F09?70i6R|&cwR|4KXcnLl&*zb`0ln=v` zAnniHryMt%AC<Nr5Q2a8IIJX`!dHgJb@KkbEBY{(8oMS3zu~Wg&y0<YdYmI|PC`7q zs|>Hy4H2&#I+uJ}&NqUjakYtSfOeK;Er02W_9^c|c&*?i1bMvXq`wW_j+FO><H^S) z$LpJLB5$L!uN1sK#y(lsyw{L%$MB@x5aK>0Zk6L@X5U5dCK~%T+)Up_>kW@bqxn4f z=V#(&Ol*=6-M$2PAHw^$osfPXI%s$_TM2Qs^Tv9OP~S_~i-T$FSN&HS-VcV?g7mFW z8lp+~?WBd{JxSasG!e-=qx#kjm_uDVP9Q@WcnLh8vyg8B|9^&i(thN=P{Zryc<YJV zjDAMaZx59TcoQ7&8tSAhy!M6{TaWiq(f;<3N2*NPvEGj<KiPw{G6#rkc^`51l!Moo zH0r+w>`h7iMtIjTS$y6QXI}zw7o$o@`iQ&_OqesAeYnjl4{r>-ZjN7*w6#%Pq`Z-i zH-Wf?Xf2w;xZI>qz+2>aqZvmlz<bx&x8m9u@A-}q??>`zdG)!A@{@Uac1vQyf7^@J z@5S&oz|;CTlk|m9VWjqb@9evlxcaCmlCee0yVlt!V@o2uKMhZwuP^=gcEkJA@t!2^ zSu_r%mkH~4v*BF=uQ2mYJ}C_0HPXuclW+2=<&}Ap5Vw-JZ;`Z>jQvB$y-VR;3Qy;u zt)!Rw*ukfkm&<2--i`TUy>93+RO?>WSWEy?zZ2X#<ch{z(*&<Eyd*yh*8-7tI(iE! z??%UKb!MzL4Q)k<yu>7}O|U-d&?Q(GR!d<25#Bm@{OO0(vtqqAs2x&XQTc=NzDL|z z^bJ~Y8)GyQ`wqEzjU|P5IlLo=w~w@cqoYW9O&qUhfmq(n6YGsfiH#VC9B-9dXUG^> z30`8&z<>Fu$InRnCHfvI?-9o<Uoh5dhQ^?22e_|uCiCTV_60f4TuK36J)d{I!Rr7| zgFXjh8F?hu@4o>r@)dDgk?ePDVT~c73i<nyKiU5u@Asv@enfvrH~DW0rZj*4Iqw|C z<TBx&iTF!`KKJ1Yc$492eO^HNi%=P)<?HEqvx!@dHlv;R>X7qS@q2^ylrXEp<HZ91 z@;>^NJ>YvH-fr?}`3@WV&MFk^6)E}O`Bv?#2Cp<c?GN()VtMXEA@V7&YF^(NetG4& z4|a_blr~%kREO6Hp7wuve`GwYi;$MLj^o`yTsPDkO~HpcXQaFSDq~6wc#j$05Yi4u zBarg$biCcfMb3@&&O$O@46Ylr-?grPNuRwE-c)!DH-4x<+KQ+$((*p;c+H7xi)1X$ z?7pe1;C&7++3`A){z23OseP|GUXAnU_oy+tg@b`9aK(Qqv|ss@I!S_e1`|;;$BPt* zczsC!C{p__@N2@0tJ$9CFcaT|u|$0*90?C}3jj6YRf3o5crTD%p4&3k@UCz?NivQ2 zG<doP7|_D^JzWj2HM~xaH;eT1&?2Pet?hW<61NqlqZxzPf2B@@cf{52i(9x?9Ny!` zzP+TC^~zyBwY<$8Po76nxNxl3B}#c;<vG6+YQdWdPeUov%Y0joPvt!p@bXk4?iwUz z?F(}__c&im{!hrC-~glKxRx{xP5x($zwRf#N!kC-596H)*TMT4UZUgmB7HwJ!0_HS zyf=xT@F>>;;V<>Qd@8RtJg-*h|0SfC{;<OEzIMFgMOaUuPGxxq)6Nrl;(H0n@Ggay z6#Un_j`a0WL!|Xt_6+~axF3i+jLtltHo{t>i(5|=ct2oE`>g}-MtBL1*X1GJy~SKu znmp?N#~n|SG!z#7Amj0X&aZXh-DB)K^ftUc5$`6$n`?OTt_pd!Lq=X+*8%Fm8)$fM z><QM3sfPEy;XOorG~RiRS0CO4!%N#3<6TaB`=8-`XLzp=KN9C;JRVTq_3#$KOL6|2 zL3(+9!d$~UW_ZhpuT}cL{q>U{13&|KUq#`4Vt8@+{Iq_nIT^1ZyaR?O`|Q%czA?OW z4Da`o*p~vY*tKE%+eiAp(NV*@$nY*IivQ};-`q2Ow2zd;rxI>}cZK04l3vz}mH5>5 zmt=TtPr_>i?`C+qzMIfE#`}Ra!TpBU-te9!UY;qHvHj`w!j0i|ftTQ08|*2`bE;l2 zyvGdhD054+`L;Q09SKd~Jqb_eTN(D{xh&)0Ns#r<la3dS!&Kmh8{xbR2h;sfi<9QV zsn?0dt|7**t1|3WXg#Q1H^F<)l=F=1IiCXSEyH`>@s<-ea|Y+164>XUEh|etb=+$T zZ#}#uXWzZ8gXfB@HoOUrC-1%AaGdu>Qy86Nm8raD@OGN=ir;n@q_4n}Abz{b|I3Su z_WZ<t!FOJBII-7-ev|hZd=KL{q~j;Uqy)czMSGt?yc<7d%)1$0X?O{egK!*9-eRob zkn%<cU-`WD#NUhLcxUh>tOX0lc<JsuzVKSW>j_WW$3fO2n=XiWqsgQFVY=ZhAU;|< z5tf8o;EginmG|R`-xeF*@*t^ipS&M08jm5(4=v%%GrX4n#CXeLeQbDZ4X;S?==Le^ zR(P8X@3n>Ob&)3?ssGN5@qxa5ZHT`s19PxjkIl!%+u#+WPPJcX{SGud_iU|9>$jq* z-&A<j;c0!0fin^9GQ31*-;4`ly*213G-xOHRWpzG;&^ADJHC_kaVvOfhS#D5dr|1? zl3{skIo@X8bNEyO`>JT<3q04V7sq)VH>~KA*Y9(}yB*#*Q{I_ucKokwtoH&^|0SFH zNGJXvicRpmw&jApo8*pHgx4D0?a5(z+uaf46}_70&Xfz=ABPAMeE-RF84_V-cD$Vi zuQxoB_@Nw}+05aW@~QSMcf9(<HAc6fgfd*y!ZDtV1GP+j+#%&PymqARk-$5+_*C8} zjyHn1iRd*{i?SYaye5t($J=e-Ei~m_O4^lZ4N@N6MMB)S<zu}oDsYT}x?RL`yz&Ld z0Ylw+4(W4u!rKQ=+h4}#P{=qHm>2kOIV?F3lX3o$x{%No-nn%`-n)lmyw&9S2C03* zE9UB>#Coog;yb%WOEdm!2d|3ZWqhuM+NZqL$yx6sw}*E#JnbLyY?g!k{;^E#>&W+` zksV{Y82j#m_W-;E$|Rv=TaK?Tj`fP7Xyr}Do0s#Q<@I$u+5hMO?-^6x#0z<EAL$!s z!fQ`_#|*rohIco-Y4C!ni?ORE_a~5kfaAq5Uf1+3_u|G9Hx<o5*1id*y!XJ{Xv#aE zw2ROONSc7~nmOKn;_@Y)c<in7<ZjmT5<0?5hnE!m*E^T=#Zdwh{|S#RdI@o}FQKiY z^{5K{Be87I-}a3N_M<lTV2=-8ox0)v<-kj0y}@V<Qr;D=za1tn_Oe*-0+gO7#@kMQ zv2T?dpJy;o-V5)2c-lXzkhU7Ci<H;jH!tWP@@GH3vwOCwZoHEH)%)PBgO?cO@rIFh z6dG%IvmCEjMfP#f<>-s5j9FBa*muP3H#9B7z54J9*9-lZO4>H)Zlw0by7GQV+-CGU zO1X)-90_lRtKYqpzYDxe;ki2W_L25)bQCF%EnEq4Juhc1ie5rq5uT6LKj1BLydlR~ z$HGg6XWO4#r#72B%6rQ3GHZWpP5XNQ-b3*CDL<@*vk`r3c+WcC#!Bpyq9Z64C&V(~ zNqN^@8MK#G)NfaK9~xfG%IvSAx=8KIFAbaWjwkL7v=9~l8(*~#c(n!w<Erqw!P^Tj z!Oz0?tgn6`{qIP5ETbg&^U;-6V!dmTU0+rFHrS7o@%ce`h3kjyuV91V{pM-p5woO! zu&pb>=RH8Y?YmN53A%oH2wnwvDP)j#)|2#oQGcZNO%$5rRk|Y9tA|o)d$sz@HJ;QZ zgZ*$4^gEw>Cg9x)PeW4%*4CVBTtXhH2C>hb|B9?8PWpwccYBcULGqE@59|4^&4P&c zHJ@6pAA+yqN>+{aDj@MuhwXvSgHnb2f<564GQ7&9uYr<~mP^kgy+hnW^ciZxLVM54 zJm2z%h&Sl|pk0XHABLB9eb`U)RAXNPl|ss^?%G+=8nIqWG!dom;=DfXK<qozDmXv= zR0W<h25&MvEpN>$X=kV|Qr;TJ8%Nx9G#kmhSf9Qxyv?Q`^n&*pJRO(1VY9qn^#k%q z5Wjcy|MIeYKTvNtzZkppJs->AXgzdy9DUD+*p%_OM|>us54<Drw7;ueYm8m521&EL z|Kbri=QjwCi`SF?Yq9C7&|gy>r$2Ec(Ces4f9eg1zfx$Y@;QPI*B9R1@YMgGl6E8d z3TZiaI-Zvl>lH(N+jD+{el83RTFyt|^)b9^)OkhnT!pkgb=<v;xcg97WY<pVu0Cb$ z)DPY;!|OxZ$Iv*WyaKL$h?$3o&tEe*SEhSCM@;*84BljT+CIvWR^F?3DWA&Y5=sgF zxKWq*8&R$5;d^}waBL&xmSfuf@K(S}@Uw8eHP1gyBYj81yTS1K5&s05jRCq=?B(V` z;SGSd-jr9{$qVF>Anmug<3$_Kv>pb+NjG*WXSCsPX@rC<`@!RI^0Ob2;3s8HcsqFi z<~TT*>)Ug;Dc|O&@<e@~vYz)C1h0bOmFXPt-Y~oYhPS`;iPvUmd((CG6Y%Q5)Ari| zo8)~Ai%dE7`M6oV-{eU+_rTG1v0$0!ErszZ(snW2*!2_fJCJR+V_iLpZBM~_(v-6e z`#Sqb|BvD6`C@Tx<40H@UwtAk-nFyI@CL)1Z0!4xb5sRMe-Tpq#v1$T6W<uwHd4{? z#J;EDEj9MZzK%RE|5ozwwO_BZ4ew<2Fa+MW@G{mzCwLO1-7a*ztm@$zILAym<#~r) zVEhkhIX^IVwZgB%_|DeD0#gq|;a#2*w%_T=!Tli<$)n}e<5sbAN(Pp;H>m>&&%#TA zr|m?}+e<x6M{3_nV_&p-sAcNmIe2#)`$pH{UGMAzd}i$1YIr{oZ|hX;)BZ3FUVnHQ z>tP%DBuG8%cD$_WVK|)EOgXh*?J%6ZjuUO4PVIRf&PS$v%GqT&2eaU)-(P^UHHtmE z4Tmi(2~pn%srHP3bKKaY<KkY!i3D|><+wN!j$G4};Qu7Y%H%(aVy_9?K|aTkB(2c7 zwABR{gyVh_*A8TC90l)|D7=D(S1=0Cw)-^08x8M4c!?S8D{gqaW<i2K&#8Tu*TwN< ze`O53!SIs&EL`scClOUPJWfwY@Oih~!+jilcguyr^S+C79JI;xOF2h67T!X5DUNp| zX=R<(f=|InJLT|Kg3puv%q?cl)ON4uTV8~>&Dhrp&YIgI-kpZ$_S}8md@iyR+vGjx z-3kTkQeo=(+i~y;kU{N}_cF-+ZFd`9V`JZ0OJcbGAzUM5v~N7TYv5J!i^TD%v+qH} zyT$OtzP8vW*Y&2H8`>wwwh|`5YiI2HnuGV^FY{h(!)s}Hj}hOA<JyrooVadN|Gfn7 zS$L@d-Wx*t;b?^6wKlvjiH~O?SA+$JmQ_AqJ{|xj!kZ4Snd7CC{x5VG={SkG68!o& zs}{!{!x-x+b2t20d{T_p*R{VV_i>H{-bbdq=aF9CyH}h~!AN^~&GBY2Xp|woTsf`- zWQ}X>)ACM&x5L<X3F)Q%RW`gi#y)9(Vw==QA?}G&rr0Lo6?kXTATqX>8iqI5@J`lV zCc~=+FWIMaeuT+g?7PPB78;(|*9-gPdWkCZHMOrng8=X<ycWhjZ7+2UZ;|1hti4Qu z*V}af`31RdTl!l=coL*OJ_&dyJooxF@;znB)$hqX{_)0*<kNN$BY(JdF^u?eXa@Bt z`&!Agi=nPvymOpqK)_o7FUilsIStajlos(8@+m(rc2qUIPl#`O@qf?T$`~hMD!k7O zZyo82bA0fX;ng<0CH+_nlnBRk^}F(>!TS}Sj>Br-cEi)_w&eH4zFwvOYoD&4r^CzJ zBpgT7zP}8wRR;T-m^nx7Q{Ef!Dn#LV*M|OMD3{>(Qz`G@EO>9iYY0#4qad6;)JGA+ z>+X1!h^v95K9<r~)i(K5|IL7RH@yD73EWFfdTD3%4UcV33BG;n@8h{p?f>gP?~-6~ z@D{vB;mN!&LFb)DhBwaeq+j)AJknz|wQ*0CfHxD~czA;YoYxG_ZRj2(7-@eK4R00k zyHO#=>ncci6I^?qSdDuZ;Jpnm+3^aoHaJH5!q<ho&kgS(;(McR3E{b$LvEgx<H_0Z zmci5dc#gCq(HNxmafz)2-+v2<Uxq4{34J)j*(Y@}2j0){bRN_C{gOQVoL}C8j;Hl2 z?KxxpYWtfDFaM1pPwm@n>?;$+z6E7N`xZI-g!wkSs!@1_Ylr1!OIgAR<xQ;+^41#O zJMdb=OZKyb<M37Rw7hI@N$`2nUV7lW1&mjn7^}3s=r}wNUJrOoBYvn2r}7;U?|Q>? zOVPL%#I;9Ts<QT?4Ju1M^}2?4;f*l%UGQQsPjoiChEeQWfqlcH*f$^E9An?8IeGl? zw7cOoal8S<4M%dF?gSLgz6J2Ugs1IK=h-oa*D8a3x0GXVuRK09_UXFkJ$U<!ed@oL z4X=&kS^tg9#DDL@yWpnKKK0*QhSxcYeHs0y_AP{WEj+DX_1`?h>*jdb@!ukN9pNRr z_M+>6<%aiY2K%yVe~aM_HukN7GoRzl^@cal@qQ)l2$J?UDHH!Kfj7(8r~b>E9QKb< zQS8g;KkXkM!28nJr|)Gy+wjIY-UY;6#{IBawZEnCVw#5atL-n*@TO+4FRS+VA-qI* zTEFVQDuy@X6#TagUQ1)2`Y*-smPWBJqyL&R=15o$Z-B8+{nyO!J~{>et$_Eou`dnI zqB`8GVR%0{-e}@pK@-~Z{8MDd1GVoXc&p**I(atf-$m~sosZ&}GYS59`Z@7mp)UQy zW2?<(KKdBmFYt6e`kA!5&>u*71r0A>omlT2)T=ssJv9Owi{BTF)3SHE5?-EWA@7&+ z-1|#>8S*Hvh~w2Kt}$wcR^flW7C7D5w+dbvcsl+aS)9kai}d-I1o!jF`k*#^f?wWF z#CJvZI6TSOC->`q0&gfh_1_@U-Un}j;XQ45e-VE$18*>!AyPNOTMh3Wc*#K?ukUKs zNAS-7Ahd6m;ngEP1zG!2jeTq2Z8ha>LE6FaIvU<bhW9G*(=zbV+<88^hjlHyBF#hl z<o@3=@bvy)@!!er{~c<0pTg@5PyP1`zda7#-^M<B|8MoBdAyovaD2E1OkWZB?}@D( zE5MrvPut%|{bRi8@OqO++sj|3yi?iK7|(b1p7CDJe^TDh#easkU=G*Q!J9*#2plPI zqT#I~-qwZoIlcdP9lU%uhwU%_ADjz=_bvI<KDHVp`0cOdH4$%b2Ig2(zw6;uhNtB{ z1ITK4d3jEQ^7Q^+ffgmcB(gRhas5MV+yJjNJRMKFkw^5VWF|;?V}d{9EJMqAg*b(< z5zd2#Bj@W@*XNoMzEi&`N7DD=<a$=TFW^0EcyfFz8tMv{UAw-7^NQiv@<p>to-Y|~ ze^;)FlkgS1m4^2Q*Y>Z+|C^BdU&^W1{VZmWWErx|0*iuikE-^*hPT7;PS-wRN!SGM z%obsN?qbh#E4J;)#J;?BW4!_>p$vO*G;Fz!a)E1aG9G^e?_zif0w<LC)bp0|TP4XO zKY0=Dqk{iU(0(7~_k?u_6*BvJ!jkYUylaeouWaF6tFY=I@t^SASRL1uxQEfBs8%^_ zD;xN2ksD7YW59RtZZ*8;NIMd}jg;rcnz%?k#(h)}S>Dir!FVFP&G5RxE96^CKNv`V zBYnxsB0jGy_MJ&Og5O`|*??E0DP_Xrmrc%py-4&uyxD97x-rAsx|I0_UaH~!6?6=r zC(rhK8f~VmdM#kOEAMoE_Xl`$IR4iDdKbslE#bXsc)uIoO5#65D=rAf&v@7VlHvUb z@8wqEzGG)t529m+_lDs$sK~pI(byy0W85yNkIl}13m;*R7+yWjV^t9k5tcT~<Gl!P zC6f9O|8+CG%JsSC2W{WUbrRe7j*ChwKJMnn%V@jsrWoGiBYDm|>0d(1v-5>_J?G?5 z%0c|MFW~icJSp!_@FJ}vUNW{^h3b>G5xN~Iueh=A1>(n}p^Rneti$`i8RH$Ie(B%d zer(<buN^!Mo9^TM(OK-xRSMn@Cgm*ykM#K@O?$>%dkvP3qx$K7+uIIzjkEI(^3BAC zchDb5?W8M8i0jZG*6WN0qQpP(<7F|vokbqV<AL!y;>Vx);{o=8G^m|DD~EO-=F3yH z^B1_E!A*AH-tgYTj?sLool}GF;`T{gm55gqjoro?6-l|9d=%7o^BWlp;q`A5@a`es zcd)jik{m=UFV*p0A#NJ_2+g29CM5;so<g}9mi=<?gtr-<1}%3hCN7DU`gxYmQ!V$e zaO>R}wsScb<)v_aB~m++gCF(#brSJ)Q1yzzI3ex4c;{f<EA8?(cw^zoxFfbVBkirI zA5va<$6G+$2k0}D_#k7gTnNKGTr==vN&b{^XBWIb;c3uvHyXk77>JZ|v+Z}v<xYp& zvTZm%%6m?CV@I8;VSSehe$+2_GvaSUcCN4J#vifscX(%{hT~Z>bL9*4pLXO?JFhl8 zc^<=T2EUB^fx?pT2fR11k0gGO^XiAOud}i5lE5v#eUB19FoS)yjD5S|9fg<dczJH% z+EJ8(v|ipYym7?8iMn*=x-`be!PN6wH~zG{ool+_rM3&#gY%hhzao9nMj>yc;dLUu zC+Z7tD3bmXKPc!g$)x)e-fVcyoPCo>`#L&=)V^Mh*SRtCDS8%7VvI=I71&q3YjAy8 z>w}*67rgxK!}a-U(yl}CY&t2=4R>*ai5r1lNBMr``q6EHeJdPK#+|)VUc>wTW#$~x z??=jGJ4u3HAH{CuS~fJ6@wOS`t@y8rs}J$tK6rEC>HIRCG2?R5UyGE-Wsd*yWIfWF z@3h~E|I!>!{I?%op1Z>9!sLD9GJb!>MX`dBej@Wd<AZOX>@V82obV)^=l>+vaKLK_ zPx`S0xlcrR-x{9G&z5KVMnF4$T-)<Oc+VK#a=y5S@@$2t<(2Cbgtwcxy<ALqfKPiZ zTo+efvGEYR(jCI`jvvoHIBhWYs<6D<;1T@trenYC@1!8L&6f8tyjk#cebbrwS;||$ z@MONX<(&}ae9e{T`@iY^4euB{^<SR@fqjMGX?Z&uo~*Cq`Of;VuPd+k@E>^N?*6ZR z7aRLz{b22jcD_dI;|RQ8;3Wm-^2~*ZU*0PWPv&sTTM_@?@oI;=c=0H_YWMt?SHtjR zp0_+XZ=P}dQ~w=<_b|K!XW#tiId4w=)`X}2TWNUeKU*h5o&SV+9A2T0|F!RWV_&M_ zN&m>oJ~8Zecp2NvuKdAqqV%`q47{xBBL?0}@c8h<RD69O{iBH~Z#}+I|NX(ZlFD~> zJv_mcSH^=#0{7kD8_pln--LIU;U!1mtuyQE8IC7yCJ($DJBRIAp6esLj)r$_6rOF* ziwrLo-i7!7mv^7x$$XiyyfPkWn_264G9KiGx9fqN`ERrFUmUy!U32EYbW`3l;EjQ& z<H70p?}*{$gZFC`-l_Pnz~W#m6#wOicXhX%`7hq_r2U-<Z^eT-^It{BllFI(*w;O0 z{;Oqp1>nu?@n7Dl_^*la-`VgI9}dgg0h>irkOUbI7)~Wb-G7oYN+_7XwaSJg&o8p? zx3(NfFZWN`KBjY<^3H+xf#J!xa-4h-jG>xNu#5kCNsUjOgEI08C9sY(ywfe`xp12O zFZ5SI)<+__w?Tp}XIAAq56<g`bGr5vhI7bpa_Xld@KRW?GF<uLbnQAH&Rd3))Ampl zp4U6)b`^v3VxN$cQ@e`8yRdIi_gLs%lOFNzXMTAIWoW07KE&yByX4wa2^S=AF9G>= zK9>6!pCH{(#Gih9x<?Ya^`QJQn(xZ7Hqd8(CAs6+LbSsY37&Tcyd+6Tc!{*%C-aOV zKGhz#^zql1FE`5L->*K6HQ}aW;raUUu1F;l*jI)J!VmM|EJg>A+BYKj%I78B#5o}p z-<jj!a$NIxZj4vp<KTGdOh%IU1kSs|O9}FL9a8dmeMtW(Qv1dm-dn_Xs?U11`ib@} zJP;(h5Z)W6ymM}icyfQxT=J=XD-3VUIT4Rj0DhTuK2CGvp_I84ybXr849+UF#_&G- zKWk?Kr`7cT@jK5<(_kb^6sf0GTBl7brbUuLNDY-rp+A*Yl4+xoM2iq5MVnufq7ViX zsbo|Vl|marR20e3|NXu9eBE!;(@f#KUY~iMIrp6R^F8}=H^aN-8rFxXKQ`u$3~cOS zc%|WagTwO3AnZxacoqnsY9F^Ii}UkuP?Lx^iDQ+_d?v&3<eG<QlxzOrrAiE(tgqLl zat)5*?KZroJjCj9w5(#dKRVX&YX8PsB+5PtJgtAyXTJn%x#49?!I=8Dg=6;Jbm^}C z^|_Y4HhAseY5B&d#rgH`N5d;C33t5VZ8*R9CC|vGf7kMu>g>CM`ce+wNW&}Cn*DNA z6lwl-GQ2VPPe3UtVS2|O4(gxq%EMb}c&iD!9({$B*T?YAzc#_EjH*(f8zUK4dbst! z@G8LT$~9q{-fIcl4&8#3_o(3=694Pq-Nb(8UanP~$N4S8s|arvJU)EaoUpA>Po%uX z!6CoCe1`u%<n7};ArkxA^bYnDYS&<oDay6i!^8SgD~I*k_1vq9lsCcgCg3+6y@ZlS z5f1t3b?sO72P?rF{y?z)zm0gZKe&_dh1-NYng8Mvhu}97%|tSAFX7(*bkf_pUa&vd zfIPS`%APPhb@#EJl;?qNAddLTcse>bm?$5Io5tS1mARm}%2A%hLVl`~eK&b7$ybJV z7YCW2CrOxs_Jb)R-&Kino)c~*_x}!f-=U-%!gRL^jwRlNUr#gyRjoz;UN^|cmF#&+ zeqKPvSB3Y~$k0wXxAqL-rz1`GtpU#uG#h{2w-)be#4kK5EZ24P1M<ACc_w}%*AKjj z-*PmJK5Aplz!tGXTnoxTT=gj920R`2Zydn6SmJz+w4M-MT;gv0el5yg2cPoH&0Pc# zR;FvW0|`_k%Jt9iXokLfY%}``gg>cm$g2<>^2@a%{xwi*JcU<@v2390SEQb#L|Mx{ z7}__S@vkA_n;2eY)9+o6e>$>ruq<O=O?WpOUMIqKLvxU(_ZGve(k{Wf2&K^nba4Fu z7WwIx^wxqm_@S`f%D&iO!jDGEyTR~uU+iF&F#mF#eSea++VH-Fr{nm|dzdf6df)J_ zFueG5+AL~AUS*~S<uTdhUmbY$#)SE|r5WdT(3B>z=hOGHp0#-=<tt9lH`j%CBRp*n zvhO7AY?s+bXy}FOVA+>QJ~!;+0~+@qy9#m<yhmg3{(Ljs7nAxzyY=f!LA-kKvf%OI zyMMATvBi}~DlM=+pvq&z{QD>S61z?PYXEP=BS){}PGnyq*YFy`+xqCyyc1a$Cchoj z8|h0M!D~4F-{oIP$CLbP3~wF0;;_a2ll-gdcms)lag_7U6OK;riR52n!@C6D6ES!v zl7DF?|1O31so}|ankux<>gezOfOKemmitDxA-hl1!SGVy{RNK?-~E&N+{5vtJeov3 zFZHp1R~{LTC*{!;UN26Z6y>|Pf3i<B*6^A|xo-UNqj@J%9#c*JHHVk;MA%<lLOC=? z15A085yR<UR^Yc9Z9`Q@kxz_8=_rZwRMKxrpLJQ3x%ZQyee#~5lev($1k&=QyAzjq zDSj=`HAqf+SGp)@XDuC1+FOe#&u4lnEMM7E=tlVNNO&G)COoY#;&sJ&kt5E<Wt#L} z9%XzpJek)gmyCFKIiBuQC{Old<asvs++LR9wS@ODJT2dO_p{FpYveI_PvieAvh_K~ z@UDRO8oX35a58@M=IcB}QvcpZQTwF7?_K)n@uLN0A+A-FYXRWtc=S8xUS%zP7{%hr zdCdIAqbuQ^@$`RZUmCp2;Qd$jT?Owxc-o)7NM19=^4Gqx(mRK;m9mg^zK*@}$u!S* zS4WwD8s3aknA>yYOJsTc3yHdQa{lv!YogrWXn5U-BbtfCY5n7CzWa);qg<0<IQBVD zC&IZF&Y3LmHNXDtzRz{=ni}3e-3PoL&M3qAr}@+d&hr0&a|4{hQ^S1vr}ngkbEV-- zOON~e`oUQBsprc4pL5U--kpZ`PwPQCoc9dppQi6dI4RHk`+T|y&S=B=x9zSyymf~6 zZ|ivnc-5wb>HMelyd#`@4CkNb`^|9P`VTmr;MATTrt9D4Q)hUSW`sN)%O;hI^Tgd# zh`llYn-}vvB-#&miL!n(oGtf8{Qbhk^zYJcgj3FO<l{B`cLVNGp7Ro?h5NV4yCq6} zhgUR+<H_?z)}`{!Aj6Y&70&P1UzIU58eaRTV}<g%a%@Ws-us4ERcOb_>lWqN0r2?n zT@IXe=nKTq?WdQivpC<rI-F16!!bKgS>o2YbbsEhQJypK+|j&T!@I@D9h<k&@NR>b z0#C<{bw5S?_wy9FDZ!^md61>z5_Nw@^GrUk!6tFHM;ZU&)c5~m>>&OXXadr7+I{68 z+j9*O>fM<8FHvW%FFRN#cy5%uhqODqzVLKDF|Pyrc4#q@pY-cVQ1$$LOX|p6wh_;u zs&nM{FD!BY7iC}1q*LqfnZy$(yyqOx&gnF*T0ic9GYt+OzEjS5hNIWB=Eu1cz?;UN z@i}pRJ17T7)3?Z^uQvYCvd6BsJ>Y!?FV(jyIH%c|IL(me|5C%-aDK$=%CV9q!#U>` zH-D9S))U??c$)ur5VkkE$MC*#yb1VCMK7SNZmdI)<lAn;>jm#ucqz`lg@k<#oz2aB zYM-BQ>e)X0k~(pnE!x?dYqF5=4vq}!#}}08UGU02AJ#W{uiY5JKZTUnS~3z|a%Y}v zg;G%3aOR0fc)bZJpOW6*@cO`0`)(j?d(;;xZ-C<ow0swy<&ILnW?fU3jG+GJxP4^d z^?|n#p0=yn?eQbn{lpQB)VE!RHwpjz>PugEAHw6qck(>TR?JbS7~Vm{TY!J8>&Ub{ z^aHdNo|bRsws_yZ#fDc@5>EcD#P6-~@&0}AGf9x-nL54Cw?Di;OnT+H)bgI?4TdNC z!orh39d12xFF<+P&IUwT56%qp?`t@_(a2lE@@Qvxjk-}k(UL=)m*W9n(x2@AGpH}Z zyc=GM;SIPo!RypK;@!ummhUvjdltXhXg-oQ*M>5##JvV3H;4C;-2<;BJk7t0%W;hO z?-EDLcd@ar4JW~3U1y~EHxOQX!&@yJ>dSh=<2EmGiCggd7FFfPi<ddFJoNb{_rmLC zc%vCtWH0n5!&~Nfzv35n8+*C*!yRhH<_&^39G=$a<mSOzHi>we-VaQAWjz~fe^t|a zAG}HM`0$;qkLU5NsNt<X0bWLwXFHhm7Kc*`)kK1k_O`?ECgJxidKq=6Y%`G5zp5*O z{SUEmFub)Uz26e{M^yRtke3h)9e#b@fd5{!csK2ednU4<i}Uu90O3mg8v?KStnj+X zcHL>8!y{ftJ~jVXx{C98-SL;}B6B)W#?)ouh?Bh(aYLh=M}w#RRZqhAN1q~1@43dl z75~S5zNpRJ><bhM+DCE5Ut#uX;d#U0t$|lm;JDsM%A?C20YvhTp;uhK&o3MvWehfU zeSQ=5nttF`IGWC`#;z{>;L5V$IRddqoYs^3;r$Lz>)pvOMZEW$M7%zR*T?am#qVvD zaIM@^cw{}UDL;;TAj&lfv%_@i`RWger};L;*tZG)t!Qc;PN=!Ik?Y1aDc2G3n!r>0 z(pJZL-x7YW;XP+~r`^ezhiqSe(9Oq$HxgcZ!;^g;=~qe<NAquq;T81$z)|q}#o%3F zc-bewdl24(@U-3~ofqfTfYlah{;f2;Ec{oX(dELq%T_{48Ou018s0O8_ZMLs5I><u z$ot&zir{|^lKXq3%=d(o{7&#G`S%dKH{iA8ySM`z<NSLBOA$x&Pw!`z<DWN=cq?hM zd7qn9J1R$c26L2om9cNi%wT;{-te|N`)c9Wl5^WqpY>j0u}_@x9)@=So{k$0h;u3G zg*5+ua=caeeTu$8Te@*R9UUyj^Ko21CCstt)Hxwf$MJJ|hUxuC5>C54o^kvUc;(?~ zeU|mqn$#f8ntyRZbN$qG3NcncukG#8DCb&?eO0ilCTfBty;3Mm<r7{<{JNojXmnrh zS3#0@X>QydNT6|1?gugU$@M>D2>&SZlgXdjLW4I2zu8Fo(dp46`-3z5AY7}1f48|| zdh_m2NWUlP)qPssXVhys#6EFS_ry(zGEV-7yovChho|*L-s3c%G%ZG2U(~+0@LP#K zMs_SO>Dq_P4IYE{y0K5rvuq^%S12!!<al$(Q0FQfc`t2M$CEyK61+8rC+|7iOuR3V zl*ftY-{bIhne@v2hr6)tmt)wM*o*g)Av?EfZ0vgi-e2(e@SVIbR?>SmagH~=X@>VC zptD{G%VXomab9Uy6=U#f;MWi}Lz9?Wr8WraU<Xqkli^i{r|oS!<MVZlms~b<ME+sC zKQCwnE5G*k6ue6fFYon|S{}-i_v7Zrdm7%2@YFqn71v@zTO{@F5!XKW8o3!i*&~o^ z|E5IQvmsu67x7k(-HG}l$#;oYH8|#{YZm?s(PaAcEZ46W?-9&<WPUOg-Y~=adOPzX z?xTI3IAWdf+8f@VoLjTkm<6pgeDBRO@Fv64aU#OGvm~_5@G=bVR*qF2?s=UVca$Zc zVw<>WQLZa9_VpRZecbprx+}DAy##dSI3C{K^5K}MOc@i!JsV}e8(ymXgKH0`3(7#6 zf4>EX61U^`9Xf<|cjY=gB)ryf!8j{xzUfispZ|+^orxp;V};&4TLra3%HvWtafuW0 zdkW1(nF(>;GBj)k&+DTf9#4QRe{s)yl<RxosgwQ16@*`hly@UM`pqN>Q;OqR_r(8w zjgQ#Z!?gqXF0KyYpNq2R2Uq*MQEY<jg!zNv5=5L|Z;C(1nxQ-6APq?S<P67^>j|Ha z(ia&!<vN%{uo^IF6gyuD>u<u-ZX)>-pHh#rh%a`Hk8+I{oRj8<^TtuceHi^rSjh$9 zP;JHecFBD&vDV)@F3yTF&cf4q)MWNSBaI^7AI7dGKF&)#y)VzGLuJs~3t5XI*>4!@ z()rX@uAPB*v*Epz9p^PBKPwSO)5(-roNr%a{4YaQ%LZ%6N<8y$s^dw&J}1hW1s)&1 zljjkq5x$e*bqx;rJb6Z6p*lxC2co`fzful!qnv*=_T5PS$h`JGc$$Ah3{U2@MN5Qb zD&-(<MV}zh3-A^j9#bQ4CK?V;oRr7?{x>hNWImk#MR~S_;fy5y!)P|re0$Jw<l{^H z|3ImS_=jf`^~U<$D}r^Sl*7Cz{qKw6I<Hg%-jRsT?H8tV7Ey7D_3>+lDn)6V71&QO z&vn%KL?*}5;kA?)xREP8|M>`M#8dmSf<t~ebin`rP{uI!*%@zAs3)1OT>H{)=SRsG zc-k+QY#prgdJ{*>!S2(_IzA&t{^>r$i|}STUQO({TYeioiPXMz_~Q~c;kOg*Lj$kI zhk5tLb`dXmWW>KGS(po=^n38s$@Pu%_~-2Yp?#n5zxFEyUEj##>3z2_%Dtj+=_b6J z(Yf%V=qjXk?(##j&yC-QXgeA^jQI~Y@XaN6(pCoV!<DjmDN3KV;AlI~8xY$06XA~6 z&Vz&%_i~i|Cb-%!l!jLURYGcKp&(6(qwsqKJ%N@`*8OYI-k;`L4%hBJ+Qze;;AO%~ zg-tPfvj{8oaUP$_tKxVZ_CCaaBN|QloJIL;CEZ!nABp?ve%f4=eG!vxx$b9OD%YPH zUR8LS?zUX)*dEz)2RW`j1}&O>7s9^+_b^;Oe0R#wi1#zhPIrfPHaB)&cMsP;B0G1P zG$|PGq`!F;&{+$EapVBR_X(SWY77i{ogMGid#SVNBedis-uKM;w}W3syy?sZ-XpF& zyX-Z1b>V5d(f!;OgTnIOWbA8$|5=re9^du(v`gT1gvW>P<h}~IZoa+Y<rv<r_$LrJ z4Qal~r=(Tf>rwiK7`z^a_xK6$-hekBp47uO=x#Vt4>S1Gdc(GbxWpX%HlVF&7#XyT zy4ab%Y#{Zp904TFZ$?@7!c(X9=Cu1l-UxX4)tfCb>P;5h3)mA<r`)oJ>+a`Gk}$FA z<L(&Tx1u~x7cNEUyVATzu?X|Ax`wOIRcVjk9cU;jPv=kvC7luH<vOm^pSR)N11~ke zd1DAW9?e0TpQi@NNW36}YjM$KDC-vTpRq>Dx&!^Bd<yR!c(1|J`gs1J;68-W#1V{) zf8`xdesU82TbMVDC_^6+<N3zf@HWFsm%uoAKhqTAyo}Vo%8u7|FmqAV7fl^T|8fx# z7-#A{9<;v?4)Y#~DCcos4)bpTVP8R?BjsJ|c$W`J@UBMfkUaNO_O!*u=|2U$nuL27 zUT1j4`6+SozJ*DIpMsRv+oV^nKR##Lk=I-#X9xKxbL{t`ln1=t0>jOLBlD&ChR2jl zT;dA+R-;eRTIzOpj1c=uW(T~ItWlRmS)&-<R>Ho-HOAlYsrHR>yvR_l6GvyEoLfj& z`G8Z^@ZN{F4BlKXaHR<=`(hRN6pWOweU3v-{0HtldLQ+z+9V3MJjydb;0=?1aP<lQ z5{6yEr`pG572*=x;@1&%N0k@@CNmaDdK+g4cGf4oE20$nBKk-oi0en#L1+h3o||?j z%JFZ9!5YqZ%6{fq!{WWk&v3rCZm|En1shjJxuzbTruRw0PDAnchr9#<W8X~=aQ^|C ziR9U53+b<m&WLzxS^r4;XoGzpz#9Osr5}ZRHAhg#&<9BE%Wymi^2*2rZxz}?`R+o+ z<H!u=;=+@0bQQdJ;c5H0eiYC2LAN92&33#Z4|1I(N<~{J-`yyh&fLMR$JQ{$d<btF zyi|T$oV?$7-1QN!A90lTspHMSZ!UTX?Z-B+VNf1v*+F^8yeTKjKGou*c`FTXYXQ6t zhW8P?a)uZEB;M<Ja>V=9@P2T-@}pTxqB<xU+lo8;dKlhncr9Y^t|X48ms7an5|72p z$PUxHCQ9+d;N5F@akLlQF?nONL*Cjb&xJ9(IdG(X%;%Gu;J3GA$Kzk`9sF%trJjh> zdGW{aUV*3eZzbVZqpy*s_iV@O^AO`IdI0UBk6v3YDBtz2Kb88o4&GPr>dTMgCi2jW zC4~PNDX)&PugDmlDUIy2%QM|Rs>~TaiE=(3o{aC}9%u8UD&ZR;<ux%pc^^)@JiIN2 zw?4`o{gse+8)18(`wZ_Y$6JWsYv^56p1P7bjI}cDEqP0@-y`d&PvO-!yv>B&hEg65 z?Q3uBTa5o(s7-nA@BVZl57L%0k@S8B?*@2DUf`0)CU|F{Vo1yPg5Xf(T>SnI&7_}C zFA;cdh_atW{G!3X-aB`2j*Kw<O#IftF~7f)>;0l-kDjkFHSpcWDEkM7HyF+X=tZRY z-!2H6nD7XDoTwyfE^~|Oao%Y1D<u++kDK7lG5K{3VQ)a`NYmHb@#Lci{&VTqm!Q3j z-I7n@bU*8JcyGfa3w$@EbeuPsI5UyjH#9ipr*|*@2aw(KXza>U#@o$N$`qc|U&-f^ zkMe#8R1GO_yy4w||1Btm`mvIAjm$54z$?aA+0WV%<=F$TO3DH!>%=~U@Apvf98DP? zALEeDCkt999(0^9qC6i9t}9EgKg>bsC8Tyv55oHCE;o*T4`mJG9uRDmac!r&Kd}=T z{w2K5@Fd;h?jh`8l#P^^6&&(;EylAZMY}76^Po&O?>jF_AAs(Gmmb9N#uN4l^f6MN ztdDU%@5Twt(@-7u@Y+y!CUXtlTJBGjvX*)I)+qJR@a7YC5!#NF$8=7d&+9so{6J~& zx}mMpnWwpWD7<Y^_AcS2NDQ2m^L)bRAmvpHrX)VE&q(f%eT;QO@o-)>x>hjHm3F&5 z%9<0N_M>g-r=;CgAdc4SMuyjo<D;o0vfh+5s?&AX4tP26x{GnRDsXC|=1A>p;&_wr zn}U|1B<}4@Tg-WV+TCQ<HNyRdaeQZ#GI9A=7v2WKet~{P%Ij(DYcPr5LOH|O@1edV zv9CIndQG?Quamxp_bWVgy(e;w0O30$O>eJ&7vBrNdlAcPZ$E&!w2^O!f97l9y7KIg z*rOu9?l<v=8GGbCG<FTG`K9a1Z{b}4FK_;jF+3i%D$Xy@g7SYCyaq9N;|=eT6X1OZ zua!w}a`T`cc*5`~I&r>z$GR>>)B8QV4u&@s&J6S}((-)U@CrZ9JOJ4|Txsg>5Ab@M z^j0Hm9dzJ{koTG4t$mtjW1<x5MR(?m-DgC+^|gcdh)W&b4ew>cdwX)6-|v-vCafPt zgX;5ldfQOX<UL3O&Hkdchacg+XLuLDsgAl%3++3{@UEM|oEK%#_9r3PUtIfqFi#fd zPw>_o-dg&uom>F%Ez<hi#PEK>KR^5S!28<pX0d*lS2p4uGCa1P#rf%#>#T&Q=K{1o zYkK#>`!xnHku<1%H=F=(AH2d#!gcPC&&PRZz$#{VcNktX{D;YSR_Dn6X)t4jxSyk} z72xsVyVm#7?+~XW()y?CNC_|m{|C|NXgJqc;`%2UcYneEQe)p6_s0AE!DQlSdg)@s z`S~aPfjyU^`KRq;KfD_aZyKDLXbw{QxV+(S-eLTU%nZ^j=Rai~IW;>-yQKL5yfG%d zB?wy@r6T2RGQ7d~k3u%RNwtIVLel#yyw{C=n%;TD5sb_Wel)y-()$~{j}346DeV2i zT7uNRUkp#4zwvr4&dt!?v<_xw2kDhOJP2=(;SFMrzYNx9!~4teO3X^|qUZvYQ-<@O z%n24Uez$b#72fag5?>GJ7cB^zhT0*uub$_-#2)zFhen{(a^BzXY{|+F?5hpy5NZW4 z)eGD>!aj}`BjsHZ97;TIc7k^ax&bw2pP)DEZmBQ1ZoV?41=oZ|nTNsC`9QP;`{=NS z5J!1TOT-;v-$Bxv&0Jo1IoZLdoR`XtvhQVha=ptWSaS^TKB2k#yaNBVsDIgTKD8w~ z<oy|CjsZ`{w@<j}RqWegcoT(|$G+T~L;H4T2RvD~{1xTer8h#}pTe1w;GK&!y-xze z`R%PW{vA>7Z=CNs$Q)=2*C)94E4;%|_Gk=m8F@R9@b@99CQ_g0^NI6$@_wW(gPB** z$4K6(leXbI>d~!+*Wu=fHxkxZr1s4YLi)VlUgi8tN5&8K({%4SH#=YpGY;Mac$I=U zypxUhdBK`xc$FP58^1MZBkJ6cH3$;>l9vXbQvV|GUWP~W@!bx>euwrWwU4BU^X)4= zmuoUnLb=esl8z_!B_7^B&hIHty4ii>*vlu5ILSX(H}icTWCEN4)RU+mi*oKtn}g8^ zsa=hNV~IE6*Av~1&Z6FVWPqfzs<EpOyw6Cd@J6EHgdL3@L&|H1KQ8e*{EEK7JQZy{ z%)Vep*(akNF%T>#fV7`Pc$Z~qA#+}hdLZe%nmFPs>BQ@V*F%Nj_Kv~5&Tu>Z18x%B zDRAo(w*_houLJ6YH2p*I$0a_C-@E7&lzR(p<Pg5hJ93yem*(p=<nc-H-i=}B_r%fk z-%r?cXc~MJ_*|6z5(sxP-2HH)eCKDppWy9BzZovsEH3f%|FPeKlDo35D#P=aY0FaX z4|34;ao#ELioYcm1y0MU0`b(&$2oMocG6||E*b9SaJ8Sk`?`pCA<U{s^YghNXksh; zI-+hUnYyX{Y~!UtJ(WGIQ{i=oC+$X<cM)~~%0S9n;CM6fdkrl|B}scOX^+bOF8!FC zyOsU>BJiG#k?v24qv?K`u*aKjEuYiiu7VpS?&;{p*W<iRFt-@)8~Ee={^EQ5JCtS3 zgQN~g`4r=;^cCWY!uuhHo%;;$9l{;2omxJp!#(HiuzYf;8wX(KBF)c_d<(q9>hn0S zi>9G&RGdoHsY}>eyk}sq*m?%Mdhnt_9B)2h7ok^?=I1uYTaMpHXdwOV2-oLIy2U*w zfpKTTYY$JIzK3C>;oTDFAN2!$gTKsg65RgSS;W6TM*KY{{>Xgd7bE^W6aSi`JkOB0 zT!8d<daekJi;S+veH#x1YkYmq+}Xt6M0}~Q;__biCjDRV^Fcl63B#`0g4_t7|8fqz zL-2H7@B`yt61JR!w7i5zJxEN!uO7MtZ5hTjr7n-tmIm!<DfdXqIjytb3HJ}>z0y|^ zz5~k38-QO1dH~6F=gRBgc+!`YfL9kDP1SdD9fy3E_NL_@$9J($0?4{|Dt76dRMY#1 zJ3n+Tyc^-wm%un-#p2=Z^W;4yDd!%|({^+oykYRPJc`iCPb59hpuFjo-;?)`XL8J5 z7vE!PkbjcilJI62p1nUhR(e;Z9{H>XO|P)Toe%Fl!+R6RtG~0q!>8pD)KBkg*p^>? zDFttb;mx47$ulYBoPI3csjFk}yGUOtt~9)OjM4o2r@Vmy&WpmUD2a3KZPK$0eSoAq zehAw~!s+wbmq&F`I{u5PTatgHS$C9ylL1HTNe9AoLEVthg)<@e4L{$O;GY|#p6GjZ z%ffpW9zWr`(hK6fw}`V2sa?wr@6;C=V^L~j=6kgRyXw1sQJCf6?SYr#cs;gpuSgtw zPQ+0jSuf7F?|S?@pf;>Ebbgz$G~mj7v^>0XmxkpqTh_<P+!IS2O>YhO%9H)CSno^M zdRGBnQ+S>IDC||ik?Sh%HoW?V_bvXJ-Htx5TiW$z72)-Om+E*ai#RvS_r1i^^v*ZD zA`9rlP_9XDx*1n4fVTmjmPb{>)<Tyd<s}By$j`s`@Lz?}C=cyhR=V}6lt(3a*Ss6% zU*39b>RrIAn14IF5MCd{dx3->;P-QleUe=5_ul6Cd&u@HW0!{gN@aLc;b}iVk8wfH z+ZS3Gq<0_nndOu?-@Xg*uZ}$8?IJ^@T}*X6*<-4L|0;Oub~fVuVuT;$c)yr-_7#4A ziT_LNC%{T57Vw6ZVcrI()%)RiA@2=Xhnf>s=)$=v_!0ld<ot%#JMpeY{I0~024Os^ zkT(;xBEC3@|E~Ydi+R7kt{1Dr849OT5Z2TC^sY8`yze;jA>+(sIxVdWl0V{<R|DQu z!_(^z+Zf)e6X2!5dkvoSN2SnBa5|$tNb0MkQ|DEJeFFdIQPr-TuR(I|D|0F3#xb$6 zCcKZ}sgw6Btayk%kT~Kiyfu6t@BA;<foj412`*XVJ9#g{5}0oq?ytcizn;nU!?w-_ zxftGOQXAg6%R}A|4I<wD@8i5bh^KbO#rZ&=SI~W8b>LlYcuTQs1zKh7JJ0Yw!(X2D zw0jum9n8M6_H%XN^)$TRm?HW3mBhnIK2~%*`>cb!>AVQeBsfWaEXG8BU<Zuvk(O_x zfRhk;nd@rM8E7UM-GgyQcv(v^70yd=WL!88ZD-%S1mRMUa;^$Eetvbv|5h~heA0&w z#$iL9h?Kk64;$*k`wX5sc|N7&*C^s>{$CyNBI)zvy-rBlgq}}sK>Rqa8;&}_t2E9@ z#GQlGp3Xsh-=0nQe~IiIB$xHCq)+w%8^S9IPur>7ce#)7`;pqy%kXmXx9=zrj<|<* z1_m{P*TUHM;^XA~BJP_(YTsbPTTziMZI0Rda0a?@MeJ(~uM0e_|CbZ?Dm23IMmXM9 z{C+_Ri&>v`VO;LYH4$ghPPzV8Y?O9-F}$|?FODkjMUo?4Bf?*TG`$V|qh6s>d*Zzc zNc!uP%AS|)>T3m#Ujk=`<4ABBPlR)s;kbRB$i6N-a|_vWyp;HTKM3=EBmIT6>+4K> zd;V$J%UmnQnkjGpsQI1>Z!`I%^}XtB`ZQP_4UcVfaZ(K4XV@ckJ)62NdDMjX6R}6! zzsZ-Ta86qlaD;WD`O=K|j}l+gk=#6J|9=z-`=@bnLiUTx-;a^CoQ#9wniKy;;z#}e z*oz?jz0iF~f=K@{D~O-CU;JKSj}@)Fnrlhei<WvabyQGa<arU7!8_%{u$<(+TInwv z5J&6Fr;aB-Dg9-veo4!z1-xp8*96YxXdqJiHaXr;`2CK~dX@T4-!Tcvd63rigY)ph zyd2(LhIb`luSG+U^7c61LGgQyy%sbR)?&vi8Xxjn!kcJ#a-Zongdc*G7YT|t@f-a1 zp(JiB?$DKf6N!Dp4DSkfuNYn<!Zty7AmyFuc%S0875$DZFPVBN<s#{A1#gStReYT> z8MQ;oE8}=l9<SoR0&S#xcOl{QFuW__Rm=&?H<z%HH@GehDepqVdldi2QStKOJZ`tE zFJfOByh{ylIbn0q??`!Wt>*X7-QMK>He`8?9}Lrb6}%ha>AGY(VP~Tck@6Zj`x<7^ z|Dfy8LDHIZO;8^F`vm2?Yd`zC@WvVY9wh7|XdP1CEhfEpyv2D!w2Zp4Uh2!!To*u} zsO51Dym^L~$w{(}g#QjH&rNIn^p<*?bqliTo$UI1$-ma{RvBKQaXb%%@RuRwx$Y&g z3x02W74drT*;x8#%0%kl62rR|-X3_mE*VPLk!Uhf-bRz&z4-r$vKa(&kfgKf7r}U0 zoacjF2k(rJg7SEp`c?ED)<viTQeKjLVM<#hn|rTNTeOj}qcgUyME#$L_dX!Nfx}!Y z4)1k%>U7>XgE-<V{Z%n|%pd$f_If0V(}wsviLc|M><`T%?pzbUuCwP2{Fb7Y<W+ej zX;Y{3>>J>DtHbuNituaE0i@|`=6Le^t(VgFkS))a%y)z<<=GZqDR@$U(@_Rt??-cx z^4dDy$?tOh8&yU-scS8($FX4*?~SEBJWE{3uXgZK;i=R7x}G?iU)|vyE5Fi--;?;7 zUpd#sd+mtZ4XHi7oIS(w8;zbs8>tIBU46(|8swei*^TfXcIgwFzJH1J65$si<qdH> zIldYH?I^QkIF@g8^;Ob$6TJDxzJpv3xR3Drk*05q<K^NP|6cy(*&g19&OT`aClkIX zs)^LT#~g1geovwoQSLC-IMmsN>Adrm{C|VEVqXV%KfqI``Tq%V)V}HPj+Or%iGTK* zF#k1u8%%t?9{PCFcQd?N@aj8*<of=vV10u$eG6RrB#2z!|0~B9GdI_{)Rv_|dH#7) zoYx6nJ7Zthk?bcEzWB0`r_a+7-gWr5L-zW`4z9nD`q3F)Z)0Cy!VX0DA<eHf#=eK~ z-%CA99)4u|)ayLDz#C(DlL-Gb`Vnb*zcjoj-)F2xxiFVp6fpO?@mc2Ax4@fYc)t<$ zPn5ho<fYLE;r#x)68<$&8~Tq*<yhaG#`zjoe<i(L;Vp;P(vQM@2mRx{RKj0xcx;7< z^LeB3e;g$-S(f)IO21K@1&4gfzDPHCxrX;5VHcy<kmg@8!&{GkMpyRQkTBHgbv(Di zJ8x~Uk9IThb`btMwA=959u()>S91mDxG&_IMdpTj-lsHQH~b<&c;_L!dhpcAa|f;_ zPDdogApJMlF6|+yH-7h^3?%banYW64yO$nmYf2o?#e+K#?m*&BMGq5aB6<QTcNqRS z-_Bku$w!n_jQdN52iNqCr5@%G;8yz4?(i1GuyZ$Yl=lE(^RqK|>CtxnAKXvjYJb`r zhU_=p&8Ij`KVS1bPkslSgK%`-zg#w7KEO7S<8<N^mrw$~lbC}?`IJ1=d`y0q{Z%+O z8;<N7)*xIhr1j<YfRlI$el;II@?IaUFAP7v>j5w2<8VJs*0YxpuchJ5aJ<g=MSlu- zvbIu|d@8ReysO|<a{Oo5=ewPFcOXsYV#m85zX|ARw6iAnCDKNORg!ed=Rwlm3*IDn zn*V#{qAbGCLdsk1c=E9+8t=W%G235Nb-as+dKbJkhPRBctI$V=x5@D;tfC)4ozVC? z-rvvFsqfma@Os1h(eN(Dn7)J`fYd&Q6>)w&9*6%VWbJEg?CS&X%ynUU<+(7=68<^E zOO6Y8EAiWawj#;DnRSDFOE>oQg;&e)ej)7dC>N=HB^+<;hg?g5_9C0!&fH)m<ss?q z2XBDkmCK?09*OrZ<WqUA9Pe`cu0!pSwQr!YuRpwThS!U*{n0&0dDlDMQ}|_~SCHkU znfx07Z=T_$G3I3x{yn6;u8y}2zy0V>WO*G7?{0Xj3@_;;uG>SWBjxpWybJNGkD4IM z>tT5J!23Q1FU{}<6~N0dyn*me`6R3_YF{_Q)BU4k**Dhk?uAz^1~0?#9xcGWsfITQ zUTedf1m|h=jNwgoyf^V%jW!^gf0>4NAH3TQPy4^^#EH->q(7eRct7EHto~2xvbYR* z8HTrn->UU>#5-Vk3mmWTYU&Hmd$es=+J!jf4Td+t@XjEP^asWH)cW$4<E7wtDQbyq zdb3P=hrpX_cw3sWrXqY>r0HGZc(>u#gY{&7_6>!XZFq7$Ku_ZJHoWzYmx15LQu(KM z7`#snPt*GVaW%bPI^MC;n`6>D9NtfcC(px}0&AMF?>onn@{|3j{L*_ryoB{(`%wGl z8vFJYVBZ#F-vjVU#NcHc-k}0`yA5vyyc#ih8x1dB3YzibSoxQ0cq8Gph{4-yc*zCu zlHUu)5vkLo;I)szOIj0_Z?OV+B@OREczt5<N*Z3N0(eyoZ#2BoF?cD4cR>NX#)kJ0 zyy-D`%?&T50A8Bmje++{3|_k7af&M6^6g-F55xN~2Cs+VH7$VG!|=w!+irN>u;dOj z44ydYPtzPv_o0IxFZiqd-Xn1SFq{#@AA_DTcCpkJ=g)&y;{P#{d&cEjDWOev^MWA+ zdKBK7p9b?t*<1OBu)EQpD4zetE}8q|5^JsHJ@hCIRbo%DK9cj78Ke`me+}C>c(viF zlXZOu-n-M0IN~e3b$rVDK*HF4D4SmWo-2WH<Kf;6S8NpbNlv`i1!i}ocAgm=^3#1I z-%n?aZqEgeb>$)J%L(uXxO7XjO`LP@2WyDooo9Gc@P7_9H|xu(jwkmlPK5U)yl4=| zn@`w9XeUzpSXzto?d$k4wxfh7<06vuu66T2Sx-L(?^VN_Lf9GT4WvA#Q{sHyFZkyo z%gb{62f~{K?^DB*=OY(e$2tQkkLZ8%YT@4qSze|~ukap+x8L&8=?@9t#qd5gyhreV z8ueg)--bD~q<6Qm?+JKke#ZVwoNt4-=YHBV;g=iU0mIvi|8Hm@>uKG8DaimR+y)ck zyeHvxFg$sWy`29|`XsD}6$*vvmFos9OE}_$C2lgj`{0pG-^qO#MPQwSH2*5d7grvc z*T#7-q1MzFwQq@QcQ?U&3f>HOy54&4ZQgYWtCF#g?Xtglcb?APGl7*ASQlQ`@HD)) zB)xtV+6tUo(Ilkyb#(c+Xgza36s3UDXK+8v@9b00h<FKogY}2Bk16ohv!Si_<$W%t zwBxwoxBU87(EDnp!ut(gs<W>V3;g!{{vAl|YhZZt^+Ar=YqzrA3+m11?B_fKuiU1P z_XJ_5qGt{7V#hoCGxpC>RkW}I>)(@uda}`#$H;9wKM!8>FT?%)s|b5NYKx>8B)xJS zH7@Z9{N|%9SjEc*EG-XViF+2_LH6i%|7r>0-$qN3^5zFY6L;YE6UvV_9o|dZ!t@>> z{2%Bqq&%`mTw=owy!!yH#J;L7t!m%xeS<(V;Pu`S+Slosh}V`l-TBn=C=?g)<nJW> zr=Zq!idqNLTzeDdbMU_UCd|JZVRb?)46nA~?ZN*b>cJp1_rf3#GaPRkdt%SSYw~?q zpWkOOeha(-NbTDjBqi~2{O+hv`SZDpfoN*ipq?Cb<tz5hg!lUoA#VX;UqMTd=3hm} zTZ7+cNYbjTy!kf^o}8mf4dQrT5Pk>x1}TqjQe5I;{1P_?<(s!Ww7$%S*J+PwZ?rCZ z{bt_wR?zjEbKs4I*E+DlJB{BjhKeJ#?`O$K*I)I;Ka+gRa(SoeeR^jAm<w+Sywu=d z?;*k;Z+k1r2C49h-xZXzr1=GS-|Y?U8wc-r+FMn}Qu{Rj{s-@>ePMlm9NzJ?w`1|< z!Fv^+rgsXw<7sb=^Vp~DEfZdapF{ipNqfsQ?QK51{qVGWXJFs)wzmx0oaEmY)81Z` z^!^gI4|#sW@wT_-v=iagcjYT-UI4Gu{*X6`d;X87y(vq0;xzvj!W#}x%j3r#@yFHP z@|K6zmzUt}gqQB>^BnSTK3a%kwU3iGvEP2^==Sl){s8bYyweYa?N{~>wxKCa!s|`q zf}s9*Sq7fHmMTbXc>Vt(c=g~#oqhV;;7Y`c$4~nM=FvV+pOb9w`^<SSC>Pl?UJS3D z;SJ=xl{|;I<_Yk&7~U)J2AK5by&gWVeXCOQzn<__c$452b?FseLu_ku4ErS5Y1{)~ z=R~`WeXqfL)1+5<tqS1TYaVkAZwb6zh9}Q?yB=2OWAMKJD9-E2G0RI{7M92B@J{*l z==2Uc1}|26OB&uA@TwZ#4Nvi|0a#;?!JCHvEM)Vqs^it90lW$CYQxj~d+`{&SoSqG z_GQ7l3!a{@h$F&lu(FTATN5AWZRglRGv`fr{fpT57Q6}YbiVuQOxgtDz0YH}kBazL zL*1g`^)|_01>;d|{N9GQ2p(U3_Z#!Qri8!#7`*Q%M7+Knv+b?1<4Jpa2i_)Q-$=qf zj3yp~_YD5CQ3`9L#%_I-=JM|%(why>`z>7m_U2#FJf!_q9N%$%e^Ai<F-zf9gs0_k zJUqLW*8WP*N4*O#&Di(I>Nsyc=~;Y?^y+&pdPl?cZwHg!_u%!1m*gjjwN}YE?;Tjn zkHM2*YdB`>a}UQ88<)X*5}vMS<oy0;gx_%to}Ax5z%ko?GYs#2cyGef{_5-Pl*8r( z?=(c$byWW>&jYW?u_Nqr^+oFQa(LT}eR3~QOTxE122ax4n`5?pj5YSHfOpctFujdQ z&rrgTKL$_E=grH*8|d1b<ljnoHQ{M{JD&Q|-?Uw=FVfb;eE_cwyr}<QP?rm;&$g{8 zPuhmKRq*bE_iyWSBggv?-gEF$0{l_;qv`m@;lJD4uo&sp`_XdXeRzVr{O)i22;N?k zf3klsee_`@Nl^QAejxkz(^(to+D-HC8@EVV4X?=WVSUN_9)-NTR<rXT&)2}K0Z+># z@B4@I@?`%dzw46M!fRuAdG9woQQpV!G7RtE+P4ngv;QIQ6L`!1L*9CL-~ETYPvIpW z3d?r^Cl_P2U#))ymG5WpYQfX~Iq!X1TE5!e3R?eefY;vg*st46<S&tJAIi&Se<8p5 z_(piMEbm{g&o{yQ9iF-@`rdcZZ?1o?MLUiQ4kp~bh4XS~0m{ZdV{kB!oWy?J=Wvq$ z2sv^eLW2b6_JkE*;kbSANP}BgKOyM@<XnKb&BU)@;%_G2Hnh{k9~2l8iF}dZosV`A zU-kpUZQ=706aUcYIIkgLE=KzMcLhNsUGVFU?C*a;{B|b(T^t{P1|p5$#Kq6R?>!{( z^*)v_iQk*}T5ncyd@U;cWiSp)`o{+G{eHST{(VrTDDxF0{h;@9xbOKDyax?$|Lwd( zuu;UDMjW+=IxWuUy*)6z?@jwu`DBUhyRGnMz>B*7Ux2d!eTgv5FQ0zFF`swkS6s`1 zx=}s{Nt9eCz0laV4c-#NdyKG8p^Zp+V+`-=t;`{itp8*VDc3ch^<<dd?f7klr{mmo z!e%w$+&-V0-X|Sz7k+z?jAgQ)Ytt*|1jOyY{~)~9!N1-?!vBThwuQWM!7)F*8`z_p z%Y1h+O2sy1wyYZGhuR6RSZ;W~>dA15qB9MzzTwrvKON3k*G80AEG6K54X+kFP46j; zJ692>HPZY$-SF<ge;AVXFZEt{Q{6mEp0D@~{yh!vVZu&8nMiqDGAYha@A=z#{u-K! zeVNY29Csgq<l(pQ7Q>7BQE0~>$9Z=Wz8BK+=ouXIc_Z+bx?G%iQns32EstIJ=fKl( z_+i3NM4uwHZ<^sv+>zkTLt<ZVc%xD0ML~TL=6CS^GQ6{Pa^DN8fRy)z;q}A+e$=J~ z*I*()|J=M+c;CaT{AbvHrM*p`>3L5PN7Gx(@Cs^gKft>z5AVAJ?Ee~`y>7H1-fnoe z7~UDTMZ5*DUN*e%jeX1UAIn^O{cr3|&~~*vWDYIvM|eZwxjO58LHHf$8^fd7i%UG| zYtGT2sqi+|;d%Ckr_cHQ3EotATD~<2Uk^1znt!z&?+W}{qa2BY)HeCl`mzWAMersE zalCef?}$1h<#8HKT;go}UPrq*ACrlVmUm}`I6u%{c%Q%<@Bha-hwvYvElBIj|AJ$Q z4}8OQN$6|To%TN(N&h#xPH-Q9F!#Z0_*d9I{vvFlZ&^1Z<((G%bYk0G3Ept@GMWo( z<M4QII=uQFg69RwTI6SV@59^b>}&rW=P=PEq`VItuk-gjdk_sonUmtY$qVAVq`!Fn zpu3Ms`j}tf?SnVn@!lcq`)DQ7{L6K`L--Z@foq)#^DM&)!nz{)sQI@a-Z_UO-e||G zNcgI#22x%*`9gVIi(dznoD}C}eRpJeX#aNrUJZC!9{)%9yHH=Gyhe^E(A%Y#*&2?O zTE=SMukfyiH=SVOM!*?^W+2T!y{_RferN2)c9eXGygQkA^e<IMhvoYlyk0!dRqbm< z*w*NJr1sGS#rgeTC;ZEk-nDtstM(m)_XNCbKMMEp5xy51jMTo~j`u!(yU-~=@_YyE zYl(d;sV^%{{rer>8^*pUVJo7VNO_YT?;8BtqONEq^=}tiLV73P6_mBucnID$c-r22 z5w<@Xij?=F<2{Do(`W`dYb*UdS_?1JjYq=!1Kz1zm*3i@H<Pe0qxX^W7MT1yfd3(s zMf+_GPs(?Rv+v?4?~s6ZDLgHYQ-9*OQ5U4V?+mZq9_kXR^CZvfe}z7)4bO;K8;l=f z-=FZd!<+8x`;@So(RQS~i{uOC8{NyZ2T@~`RE@p>?IOKdF1=Ex|AH6CbrahEH6!d5 zC=H2OGXLY&0iTzSUneAelB7$o!<RJ6vjW8(#{WWiQU5>BQ(kw&%Qy~R;j#|E=k+n{ z>u-1?j)SN6#lgE5UXsHPgEI;}f&?S!<uYM$i5u|y868G)-QzCCBzcb0MpwQvCPm;a zGwFTw63TZU*EJyJ&2v0~R>8jxI*WMvZr~hO9<tXFkN-C&z49LECWLQ}BE%Q_m~x5p z+wW^7j(k?7l!Z7Qj}qV&E)<sUYZKzV>tVGuJWfCT&HHEw_jxgZ${Hac1%H)S2woY( z`>A8Z>jJBr;gvT$d7fr|yhL~x8{S=T2B3k4SIzKFU7UY<rQWoImm0+J9)L3jeSow) zTw6@M?`Q7gK#R~$`oD#YA@V%jRN_mjuiDD>F7W#Df7J1c{=z-<=qjYVSAt`HdF;Ud zAnHuqoQ3p(@T#r~`sXPT_7vewH|br}KhCSSpZNyjuwTBIBF^XCg#WH+xW}tyqUCWi zytfRm8xgw@ryCL{^(8sZ|C%W8!;|}6lp&wWIR(z=hSQz+y-**d=_H6a->!A|Z$NfG zc8jaWuSWSz0vAaP^KIhnh_{{aB@TqV5k4;9J%ImMWY<~c`-SVQQ{mNtr~TANgk6u$ z`!(dbF(9$#Z@g;--GbUg7~7a@>}4G4T{f7vNScelyT<SqlS$ta{(BU`F3GpQjC}>w z<I~{XVR-VKp<iMBZg`2V90Xg?b8Cyjd&uw(E{gNw4styiQu|Ibyn@=r>G0;js~@Dv zI|EK}bS2XAEoFG$;-8E9Z{@mG)R}s`koqBYM(%+-1KwNk=qh}7_-x*V_dD;SM9O>L z@Mhw_6jh3bb$Pd|FVZf~gty-CWF51T@E;-$`{hBgiSz4ULF*3bU-#tUeFkfj;Z;8Y zUNLwl7Y@>U4)NqUsXJl)fHb|=8{T336Ay8p1@W3A87p&1Z!x~gxN$aqwcx2+-;#L; z;fo{XrE`$q@`tMaO&Pb4v|nw*$?qT8miJ0{xVORu=R0}sLwT5040lv;$j`@%@o$c{ zFn`hYc}d5W_YD?@Hx6D3ark-fO2S@?(vjLZ!SIIQKMsv;!5RsrPNDyUCwV60TM2ke zW2E~D!+VUd`K7yYjC7w1_b+E>72;R=Io_KM^A*E=!`b;Qem|kZXe@QP2YrN;&q2m@ z+13*~&x2Pg>FDw)@<*8Nl?B+D7Q@bxaIb)??WPpG@~DR4a;i>T;{V|{7Cnoy*iSfE zCz$u<xb?rZoAcqdhZpsuFoqHKRrEg6@~P)|g>v~VR2SvI8%Ua^Jtx%-#wSU4DR`6N zO?SMj3EKwUiIi76IOf-%Y531VxzwMP1Q1^F-T_zUm!;ul8eWYEX(9Z3hIgamo$@E^ z8&n!KW=)bw{gFMH`i2*Ux7qOI`6`tOUkydzNWX3O@0wi0T-Den_KDN=Tp4)37@nNB zz8F?2()2!V(kth!Z{nC`c5vk^%(C#3PYUy|()rAf2;a@{UNpRGrm;57!|P#q<=|al zc=DX6afF|UG`-n|SLPe~nS9b)9^NH}_f3U(_CMIOLYm$UhPML$)yOi_O?gy+*B+jZ zEAsrVF9^TO@V+s;Qhz0Q7osf6HU~*rWVrOoy}=dX4KVg~BW@kS*F)l@eDyv>Ym;!q zX}Mki=OM!>R3qMN1fwa^bSAiVA>3K~_AMN<%z-AImEcV^yyyA958=lfUQx%ZbeQ&x znxb^pfXN+$dYtRpt=M=W@n1B&E`+@u^+Iaj&5kz}zvt1*$nwUTdQutQGQ)dd63??B z{7R&};f{B%SIDb?>Z6vd38&Hr%05xmtzo;Z0`DusTlgi<xFLKi6mjK{ZSt=({x<J| z(g@3=D!kuf@NPFewra&C%AflR;8lZH<m9lO-B0+@=wZYA+3-FpfL9$}8N*vo_|MTc zr1{rK5{`W(;tF|DR2wyaEY9ms8Oy%JR8t-`;MFrct;Y?CBTnjZSI5gQ-%{YD!IAM- zoV>^F5*U{uwd+pD>5AVS=pM9%wzV6{dM4A^bzYQf5a8Wrc>Cwac|!<494YTn$CKZC z6aQ>v=lL0Kze#wt;4Ow%Ndn_!eYu11-yp$AIte1qFV_S3=eM4zP2e1OIzBFWiT;c@ zr$j>gY8YN+{A(jSuk7IJv5b#(;O#W_$$4tIC%!pxIPBYJ&o9V%*8JA1b>aOPgLj4D zH8b`V#JdPyiBrPzmG>cB1FHkl^0>nA`r<zromGpvfTW#ex$+$fs~)NYPs?KrVJD!S zNO|oXZ&Z9C?<w>@RFXcbs_Uo5y7lT9STcXT*6=Qx81J2wP{^x}lsC@tM&dUfJ&!W! zQ?iiQm*eV-th*Y(yW8+q6ZTV7v{1-<-SJl8_ajP5EadHGzLJZCS9Ec(4*8w>-4NbJ zcv@d%-7tXg|MdJvBX|c4@68C;_5L0{S6J$E(5(dZc_6=)-+AxG@XkmM?aO;zi1L{4 z`t4&5f9*9>l3sDLW)OEVyp;ctcL}_!|3luT@Ou4+yi|A(|A)LL@aFx8yr%FzFuVhA z#T{{-#IeeE3k!{)WP`t2zRlo$XLxz9<4_(|!LKj<>*fC(bXj|zbgHz}z{ztZJ2Z)S zL#ekByy`)5_1S+ed$cEG8NuZqN^zGF|7_w%{r@-z$>&TolKA2z{%ig>FL5PtbZx3> zdn7pKwSbcXC&~S<oQDkOO~;9K|E6*-htmR1(L9_-4Cfuk(dX%^E%K?HmT=m~NY@0z zdCzfT?VFuiEI4=toW3#adE9V5aGY4_x-k+QYz1c=9PPIYU&ixlPL6m_!I9FFeBSFg z@3Gf15C6reI}y^$xqjA-12XPi3GWqn>SWxLYh9NTM}AUxKL-cp-y`lLmH*R-zuM%_ zOWASW`@~(3)SjrBU+u^LFe+Y$bzq~wp2=?hEcRRlZ;RpS``3#U4(%CYc;)d=fwdFa z@)MT0tKsc8ya#WO_o@-6F;e@+8D2O1`=B<hsl%w!nbdP<pWJ_X4ZNfxVSdSbJtV(| z5l4Pf^6Q0w=UZU!yA^v{6aO6IYxxcOHIBI`duJy8>&70rZX@~JaLue~lr^}xYvI*` zC-q$R=O4O0;!TA04AS&bB;v4)>!tC}LCIYi$E9&G@7qFsxR9^Xw_FD=&7@EEn>G-B zyWuT|$2gQka4*(=({5M4)K;mF*Td}tSI1v{@5Ik=BOI4}TVw3>l9;DQk3Ju&{a+h+ zV@y7tMEKKCb)@Ou?0EO%_Y}%PMGsI0HMtgM2G3o3DA>=CbNn~JTVT??nXuUywvA7< zk7g#$FZ_LSoNrsH!`+L;d2NaRxrzT5$4_d;^<O82@&5|!@hQpp?;`%j%0AO;NBlyk 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 VTvlF(vOxkj%=y9MU;^Bs0s!h1Hzfc7 literal 0 HcmV?d00001 diff --git a/tqweb/copy.js b/tqweb/copy.js new file mode 100644 index 0000000..099db60 --- /dev/null +++ b/tqweb/copy.js @@ -0,0 +1,14 @@ +/** +* Copy the tq terminal command to the clipboard. +* +* @param {string} query - The query provided by the user. +* @param {string} input - The input provided by the user. +*/ +const onCopyClick = async (query, input) => { + var output = `<<EOF tq -q '${query}'\n${input}\nEOF`; + try { + navigator.clipboard.writeText(output); + } catch (err) { + console.log('Unable to copy the query.'); + }; +}; diff --git a/tqweb/copy.svg b/tqweb/copy.svg new file mode 100644 index 0000000..76c36d7 --- /dev/null +++ b/tqweb/copy.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> +<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16 7H11C10.4239 7 10 7.42386 10 8V10H8C7.42386 10 7 10.4239 7 11V16C7 16.5761 7.42386 17 8 17H13C13.5761 17 14 16.5761 14 16V14H16C16.5761 14 17 13.5761 17 13V8C17 7.42386 16.5761 7 16 7ZM8 11H10V13C10 13.5761 10.4239 14 11 14H13V16H8V11ZM11 13V8H16V13H11Z" fill="#000000"/> +</svg> \ No newline at end of file diff --git a/tqweb/github.svg b/tqweb/github.svg new file mode 100644 index 0000000..2dfec51 --- /dev/null +++ b/tqweb/github.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> +<svg width="800px" height="800px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <title>github [#142]</title> + <desc>Created with Sketch.</desc> + <defs> + +</defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="Dribbble-Light-Preview" transform="translate(-140.000000, -7559.000000)" fill="#000000"> + <g id="icons" transform="translate(56.000000, 160.000000)"> + <path d="M94,7399 C99.523,7399 104,7403.59 104,7409.253 C104,7413.782 101.138,7417.624 97.167,7418.981 C96.66,7419.082 96.48,7418.762 96.48,7418.489 C96.48,7418.151 96.492,7417.047 96.492,7415.675 C96.492,7414.719 96.172,7414.095 95.813,7413.777 C98.04,7413.523 100.38,7412.656 100.38,7408.718 C100.38,7407.598 99.992,7406.684 99.35,7405.966 C99.454,7405.707 99.797,7404.664 99.252,7403.252 C99.252,7403.252 98.414,7402.977 96.505,7404.303 C95.706,7404.076 94.85,7403.962 94,7403.958 C93.15,7403.962 92.295,7404.076 91.497,7404.303 C89.586,7402.977 88.746,7403.252 88.746,7403.252 C88.203,7404.664 88.546,7405.707 88.649,7405.966 C88.01,7406.684 87.619,7407.598 87.619,7408.718 C87.619,7412.646 89.954,7413.526 92.175,7413.785 C91.889,7414.041 91.63,7414.493 91.54,7415.156 C90.97,7415.418 89.522,7415.871 88.63,7414.304 C88.63,7414.304 88.101,7413.319 87.097,7413.247 C87.097,7413.247 86.122,7413.234 87.029,7413.87 C87.029,7413.87 87.684,7414.185 88.139,7415.37 C88.139,7415.37 88.726,7417.2 91.508,7416.58 C91.513,7417.437 91.522,7418.245 91.522,7418.489 C91.522,7418.76 91.338,7419.077 90.839,7418.982 C86.865,7417.627 84,7413.783 84,7409.253 C84,7403.59 88.478,7399 94,7399" id="github-[#142]"> + +</path> + </g> + </g> + </g> +</svg> \ No newline at end of file diff --git a/tqweb/index.html b/tqweb/index.html index 7fb5661..54c7de4 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -5,24 +5,61 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <script src="https://cdn.tailwindcss.com"></script> <script src="htmx.min.js"></script> + <script src="copy.js"></script> <script> navigator.serviceWorker.register("worker.js"); </script> </head> - <body class="bg-[#000000] text-gray-100 min-h-screen"> + <body class="bg-[#000000] text-[#9cd0f4] min-h-screen font-mono"> <div class="flex flex-col min-h-screen"> + <nav class="flex items-center justify-between px-4 py-3 bg-gray-700"> + <div class="flex items-center space-x-2"> + <a href="https://github.com/mdm-code/tq"> + <img class="w-6" src="tq.svg" alt="TQ"> + </a> + <span class="text-base font-bold"> + <h1> + playground + </h1> + </span> + </div> + <div class="flex fill-[#9cd0f4] items-center space-x-4 me-4 text-xl"> + <div class="flex relative group"> + <button + onclick="onCopyClick(document.querySelector('#query').value, document.querySelector('#input').value)" + class="hover:fill-gray-900" + > + <svg class="w-6" viewBox="0 0 24 24"> + <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"/> + </svg> + </button> + <div class="absolute mt-9 text-xs left-1/2 -translate-x-1/2 hidden group-hover:block bg-gray-800 text-sm px-2 py-1 rounded">copy</div> + </div> + <div class="flex relative group"> + <button class="hover:fill-gray-900"> + <a href="https://github.com/mdm-code/tq"> + <svg class="w-6" viewBox="0 0 24 24"> + <path d="M12 1.27a11 11 0 00-3.48 21.46c.55.09.73-.28.73-.55v-1.84c-3.03.64-3.67-1.46-3.67-1.46-.55-1.29-1.28-1.65-1.28-1.65-.92-.65.1-.65.1-.65 1.1 0 1.73 1.1 1.73 1.1.92 1.65 2.57 1.2 3.21.92a2 2 0 01.64-1.47c-2.47-.27-5.04-1.19-5.04-5.5 0-1.1.46-2.1 1.2-2.84a3.76 3.76 0 010-2.93s.91-.28 3.11 1.1c1.8-.49 3.7-.49 5.5 0 2.1-1.38 3.02-1.1 3.02-1.1a3.76 3.76 0 010 2.93c.83.74 1.2 1.74 1.2 2.94 0 4.21-2.57 5.13-5.04 5.4.45.37.82.92.82 2.02v3.03c0 .27.1.64.73.55A11 11 0 0012 1.27"/> + </svg> + </a> + </button> + <div class="absolute mt-9 text-xs left-1/2 -translate-x-1/2 hidden group-hover:block bg-gray-800 text-sm px-2 py-1 rounded">source</div> + </div> + </div> + </nav> <main class="flex flex-1 overflow-hidden"> <form class="flex w-full" id="tq-form"> <section class="w-1/2 border-r border-gray-700 flex flex-col gap-4 p-4"> <div class="border border border-gray-700 bg-[#171717] rounded" id="tq-form-field-query"> <header class="border-b border-gray-700 px-4 py-2"> - <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + <h2 class="text-sm font-bold tracking-widest"> QUERY </h2> </header> <div class="h-32"> <textarea - class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + spellcheck="false" + class="w-full h-full bg-transparent text-sm px-4 py-2 resize-none focus:outline-none" name="query" id="query" hx-post="api/process" @@ -35,13 +72,14 @@ <h2 class="text-sm font-semibold tracking-widest text-gray-200"> </div> <div class="flex-1 border border-gray-700 bg-[#171717] rouded flex flex-col" id="tq-form-field-input"> <header class="border-b border-gray-700 px-4 py-2"> - <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + <h2 class="text-sm font-bold tracking-widest"> TOML </h2> </header> <div class="flex-1"> <textarea - class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + spellcheck="false" + class="w-full h-full bg-transparent text-sm px-4 py-2 resize-none focus:outline-none" name="input" id="input" hx-post="api/process" @@ -56,13 +94,14 @@ <h2 class="text-sm font-semibold tracking-widest text-gray-200"> <section class="w-1/2 flex flex-col p-4"> <div class="flex-1 border border-gray-700 bg-[#171717] rounded flex flex-col" id="tq-form-field-output"> <header class="border-b border-gray-700 px-4 py-2"> - <h2 class="text-sm font-semibold tracking-widest text-gray-200"> + <h2 class="text-sm font-bold tracking-widest"> OUTPUT </h2> </header> <div class="flex-1"> <textarea - class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + spellcheck="false" + class="w-full h-full bg-transparent text-sm px-4 py-2 resize-none focus:outline-none" name="output" id="output" readonly diff --git a/tqweb/tq.svg b/tqweb/tq.svg new file mode 100644 index 0000000..8627225 --- /dev/null +++ b/tqweb/tq.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="640" height="640"> +<path d="M0 0 C3.65292072 0.01068887 7.30534644 0.00007279 10.95825195 -0.01269531 C27.67549151 -0.02362778 43.93945234 0.67144305 60.29614258 4.38574219 C61.71757568 4.70442261 61.71757568 4.70442261 63.16772461 5.02954102 C112.43082649 16.43148155 159.45379399 38.11626116 196.35864258 73.26074219 C199.80075682 76.34616065 203.23298788 79.40963742 206.92114258 82.19824219 C209.72703569 84.57245944 211.96708853 87.20620154 214.34692383 89.99902344 C216.54505319 92.47031839 218.86592375 94.76425747 221.23364258 97.07324219 C226.36826394 102.16132619 230.89814056 107.57955201 235.35864258 113.26074219 C236.5284668 114.72253906 236.5284668 114.72253906 237.72192383 116.21386719 C287.78464903 179.77037319 309.72261589 261.06899789 300.35864258 341.26074219 C296.56836348 370.63066736 289.1725082 399.85220944 277.79614258 427.19824219 C277.34924072 428.28226318 276.90233887 429.36628418 276.44189453 430.4831543 C273.12812405 438.20883172 269.53682831 445.4969191 262.35864258 450.26074219 C258.06875985 451.47485994 256.10607053 451.6248312 252.05981445 449.65380859 C248.07253595 447.23983802 244.79886568 444.25658937 241.45239258 441.03417969 C240.81072144 440.4255307 240.16905029 439.81688171 239.50793457 439.18978882 C232.54906894 432.55561559 225.72743526 425.78074692 218.93969727 418.97216797 C216.8357052 416.86274561 214.72632223 414.7588178 212.61645508 412.65527344 C211.24894636 411.28710484 209.88174738 409.91862657 208.51489258 408.54980469 C207.89811646 407.9350528 207.28134033 407.3203009 206.64587402 406.68692017 C189.26231545 389.21075737 189.26231545 389.21075737 188.35864258 379.26074219 C188.93188477 376.01367188 188.93188477 376.01367188 189.90551758 372.68261719 C190.25477295 371.44801758 190.60402832 370.21341797 190.96386719 368.94140625 C191.15125458 368.29917114 191.33864197 367.65693604 191.53170776 366.99523926 C192.50552963 363.64555989 193.42974684 360.28256171 194.34692383 356.91699219 C194.52739761 356.25475647 194.7078714 355.59252075 194.89381409 354.91021729 C197.06975598 346.79186983 198.41247062 338.60246278 199.35864258 330.26074219 C199.45000488 329.54031738 199.54136719 328.81989258 199.63549805 328.07763672 C200.54187247 320.28217042 200.6010353 312.47391896 200.60864258 304.63574219 C200.60964966 303.91241699 200.61065674 303.1890918 200.61169434 302.44384766 C200.59931887 289.21520735 199.67430859 276.30557671 197.35864258 263.26074219 C197.15779053 262.12741455 197.15779053 262.12741455 196.95288086 260.97119141 C194.52323423 247.99246087 189.92306444 235.61468783 185.35864258 223.26074219 C184.93711914 222.10574219 184.5155957 220.95074219 184.08129883 219.76074219 C177.40193916 202.64636866 166.94173842 186.43327263 155.35864258 172.26074219 C154.55813477 171.27460938 153.75762695 170.28847656 152.93286133 169.27246094 C142.33466991 156.38282156 130.79143428 145.16674784 117.35864258 135.26074219 C116.34543945 134.50277344 115.33223633 133.74480469 114.28833008 132.96386719 C73.6297101 103.6397474 22.94270546 91.58100593 -26.54663086 99.40722656 C-66.71244451 106.31535176 -100.68223349 124.84769457 -130.39135742 152.32324219 C-131.00551514 152.88881836 -131.61967285 153.45439453 -132.25244141 154.03710938 C-147.30880637 168.14141351 -158.91673687 185.17957395 -168.64135742 203.26074219 C-169.01631348 203.95022949 -169.39126953 204.6397168 -169.77758789 205.35009766 C-195.96423107 253.91808186 -200.1704531 313.48703773 -184.90966797 366.14038086 C-172.84588706 406.06857444 -148.82338484 444.49714974 -114.64135742 469.26074219 C-114.01229492 469.72270996 -113.38323242 470.18467773 -112.73510742 470.66064453 C-66.47003588 504.39204894 -12.7946084 515.88479847 43.48291016 507.50854492 C44.49374916 507.36522484 44.49374916 507.36522484 45.52500916 507.2190094 C47.35006448 506.95838918 49.17259778 506.68027591 50.99487305 506.40087891 C56.82923113 506.15781594 60.74824638 507.49137055 65.15185547 511.25195312 C66.5694373 512.57195327 67.97059243 513.90972205 69.35864258 515.26074219 C70.53316483 516.39388855 70.53316483 516.39388855 71.73141479 517.54992676 C74.39540017 520.14880173 77.03400742 522.77134153 79.66723633 525.40136719 C80.64308435 526.37399047 81.61900234 527.34654355 82.59498596 528.31903076 C84.62970841 530.34780583 86.66239514 532.37859549 88.69384766 534.41064453 C91.26812868 536.98502693 93.84921485 539.55246555 96.43214321 542.11816788 C98.44763846 544.12242068 100.4584468 546.13132817 102.46806526 548.14147186 C103.87005346 549.54174213 105.27655699 550.93748702 106.68321228 552.33306885 C125.07136028 570.78591425 125.07136028 570.78591425 125.35864258 579.26074219 C121.51384909 587.27072861 110.81720292 589.67204528 102.90405273 592.49169922 C99.42389262 593.63568954 95.93209449 594.71509324 92.42114258 595.76074219 C91.78978394 595.94984161 91.15842529 596.13894104 90.50793457 596.33377075 C70.04000245 602.41820377 48.68072318 606.82131601 27.35864258 608.26074219 C26.5155957 608.32100586 25.67254883 608.38126953 24.80395508 608.44335938 C-40.90442235 612.89138349 -108.80871394 595.96573142 -162.64135742 557.26074219 C-163.35775391 556.74898437 -164.07415039 556.23722656 -164.81225586 555.70996094 C-181.86074095 543.49406301 -181.86074095 543.49406301 -189.34057617 536.42089844 C-191.2959915 534.58499916 -193.28874508 532.83385426 -195.32104492 531.08496094 C-207.0338701 520.87179108 -218.24010831 509.64786897 -227.64135742 497.26074219 C-228.63844787 496.00165504 -229.63729162 494.74395527 -230.63745117 493.48730469 C-269.42753842 444.33234862 -291.93124061 383.24196627 -294.20385742 320.69824219 C-294.24559082 319.5607251 -294.28732422 318.42320801 -294.33032227 317.2512207 C-294.65317004 307.91564896 -294.85163775 298.60032072 -294.64135742 289.26074219 C-294.61299805 287.95234375 -294.58463867 286.64394531 -294.55541992 285.29589844 C-292.22511669 218.25675388 -262.61889931 148.77774133 -216.64135742 100.26074219 C-215.22812379 98.71822531 -213.82312634 97.16847937 -212.41845703 95.61816406 C-205.54186736 88.04110339 -198.50014747 80.71434959 -190.71557617 74.06152344 C-189.25639203 72.79469879 -187.82347742 71.49729202 -186.41088867 70.17871094 C-146.64724167 33.13949 -91.47761113 11.29229922 -38.64135742 2.26074219 C-37.60696533 2.07092773 -36.57257324 1.88111328 -35.50683594 1.68554688 C-23.72238563 -0.21101441 -11.90677215 -0.04140101 0 0 Z " fill="#8DD1F8" transform="translate(315.641357421875,6.7392578125)"/> +<path d="M0 0 C0.82996343 -0.00226556 1.65992686 -0.00453111 2.5150407 -0.00686532 C5.30624983 -0.01321375 8.09741052 -0.01237541 10.8886261 -0.0115509 C12.88591576 -0.01454194 14.88320485 -0.01794434 16.88049316 -0.02172852 C22.31456675 -0.03058011 27.74862459 -0.03290717 33.18270469 -0.0335443 C37.71782689 -0.0344929 42.25294542 -0.03817078 46.78806621 -0.0417164 C57.48988233 -0.04986598 68.19169004 -0.05230024 78.89350891 -0.05158997 C89.93210029 -0.05098958 100.97064273 -0.06153237 112.00922173 -0.07733363 C121.48449041 -0.09041367 130.95974311 -0.09577364 140.43502074 -0.09513456 C146.09480718 -0.09487963 151.75455018 -0.09772764 157.41432762 -0.10831261 C162.74043396 -0.11800091 168.06645542 -0.11806769 173.39256477 -0.11079597 C175.34524027 -0.10975093 177.29792106 -0.11210828 179.25058746 -0.11815643 C181.92114533 -0.12589087 184.59141117 -0.12122186 187.26196289 -0.11352539 C188.03036725 -0.11866895 188.79877161 -0.12381252 189.59046096 -0.12911195 C195.90966282 -0.0890111 201.77543048 0.42304526 206.88594055 4.44621277 C210.07803917 8.605614 210.07323503 12.60787261 210.10957336 17.73088074 C210.11918091 18.82907135 210.12878845 19.92726196 210.13868713 21.05873108 C210.14506195 22.82447983 210.14506195 22.82447983 210.15156555 24.62590027 C210.15726563 25.84520233 210.1629657 27.06450439 210.1688385 28.320755 C210.17827574 30.89788447 210.18481741 33.47502594 210.18867493 36.0521698 C210.19838725 39.9871173 210.2294265 43.92154387 210.26094055 47.85636902 C210.26747037 50.36287634 210.27272092 52.86938739 210.27656555 55.37590027 C210.28891235 56.54901764 210.30125916 57.72213501 210.3139801 58.93080139 C210.29720181 65.10571865 210.04287915 69.72724151 206.94844055 75.13371277 C202.21029203 79.75037031 198.50747101 80.26097565 192.07832336 80.24723816 C190.88094543 80.24711731 189.6835675 80.24699646 188.4499054 80.24687195 C187.19645325 80.24175598 185.9430011 80.23664001 184.65156555 80.23136902 C183.49575989 80.23036194 182.33995422 80.22935486 181.14912415 80.22831726 C178.54496313 80.22516143 175.94088879 80.21989679 173.33674622 80.21162415 C167.08343167 80.19188062 160.83009996 80.17987981 154.5767684 80.16697967 C151.30732787 80.160198 148.03788791 80.15316153 144.76844788 80.14614868 C143.6477528 80.14375403 142.52705772 80.14135939 141.37240219 80.13889217 C140.17254118 80.13632837 140.17254118 80.13632837 138.94844055 80.13371277 C138.94857934 80.79350191 138.94871813 81.45329105 138.94886112 82.13307381 C138.94951277 85.40428288 138.95008753 88.67549196 138.95063782 91.94670105 C138.95085119 93.21242825 138.95106457 94.47815544 138.95128441 95.78223801 C138.95235241 103.06957289 138.95230641 110.35690652 138.95077515 117.64424133 C138.95031043 120.00216587 138.94985178 122.36009041 138.94939864 124.71801496 C138.94908313 126.33838249 138.94875157 127.95875001 138.94840467 129.57911754 C138.94659805 138.74148808 138.94782094 147.9038416 138.95741272 157.06620789 C138.97647065 175.58022435 138.97447288 194.09386603 138.91997337 212.60783005 C138.89527979 221.28567809 138.88487735 229.9631653 138.90376282 238.64103699 C138.92063455 246.41323992 138.91322292 254.18496805 138.87609297 261.95710766 C138.85751358 266.0159314 138.85068179 270.07394425 138.87374687 274.13276291 C138.89478452 277.89173024 138.8833801 281.64917554 138.84659576 285.40800858 C138.83524937 287.4329546 138.85852218 289.45800211 138.88284302 291.48283386 C138.75372538 300.11482739 138.75372538 300.11482739 136.43651009 303.04668045 C131.85500983 306.44607722 127.50161213 307.26050597 121.8598175 307.31071472 C120.60453751 307.32354996 119.34925751 307.33638519 118.05593872 307.34960938 C116.68287045 307.35777906 115.30979768 307.36522236 113.9367218 307.37199402 C112.89670045 307.37810731 112.89670045 307.37810731 111.83566856 307.3843441 C108.1630572 307.40519205 104.49048302 307.41949709 100.81782532 307.42887878 C97.03953172 307.43991784 93.26183118 307.47429143 89.48374653 307.51405048 C86.56591765 307.54030429 83.64822794 307.54857849 80.73029137 307.55216026 C79.33852844 307.55700666 77.94677091 307.56856477 76.55512428 307.58719826 C68.63098055 307.6866717 62.64924409 307.60693098 55.94844055 303.13371277 C52.25961602 297.19951678 52.79854662 289.09529051 52.79022217 282.28155518 C52.7828152 280.98013939 52.7828152 280.98013939 52.7752586 279.65243238 C52.75995533 276.7582549 52.7515425 273.86409947 52.74311829 270.96989441 C52.73353412 268.89006864 52.72352372 266.8102448 52.71311951 264.73042297 C52.68612275 259.09259989 52.6650849 253.45476848 52.64511752 247.8169167 C52.62322568 241.92188458 52.59585265 236.02687798 52.56906128 230.13186646 C52.51917762 218.97254225 52.47422275 207.81320385 52.43103892 196.65385193 C52.38162955 183.9477476 52.32672514 171.24166888 52.27135932 158.53558934 C52.15760571 132.40165438 52.05075227 106.26769485 51.94844055 80.13371277 C51.30887924 80.13815399 50.66931793 80.14259521 50.01037598 80.14717102 C43.30982209 80.19166928 36.60931069 80.22168847 29.90864563 80.24357605 C27.41318555 80.25358825 24.91773707 80.26720199 22.4223175 80.28459167 C18.82031885 80.30905102 15.21847631 80.32024405 11.6164093 80.32902527 C9.96260506 80.34450912 9.96260506 80.34450912 8.27539062 80.36030579 C-10.34481519 80.3629587 -10.34481519 80.3629587 -15.17655945 75.57121277 C-15.79530945 74.76683777 -16.41405945 73.96246277 -17.05155945 73.13371277 C-17.38155945 72.80371277 -17.71155945 72.47371277 -18.05155945 72.13371277 C-19.67946552 61.91472159 -19.23771624 51.29085608 -19.23686218 40.97892761 C-19.2390598 38.00824377 -19.25730542 35.03792555 -19.27616882 32.06730652 C-19.27910186 30.14933902 -19.28108726 28.23136978 -19.2820282 26.31340027 C-19.28921371 25.44021149 -19.29639923 24.56702271 -19.30380249 23.66737366 C-19.24977931 8.89260897 -19.24977931 8.89260897 -15.70114136 4.43885803 C-10.71796913 0.14468024 -6.26461579 -0.01244474 0 0 Z " fill="#8DD1F8" transform="translate(225.0515594482422,152.8662872314453)"/> +<path d="M0 0 C3.65292072 0.01068887 7.30534644 0.00007279 10.95825195 -0.01269531 C27.67549151 -0.02362778 43.93945234 0.67144305 60.29614258 4.38574219 C61.71757568 4.70442261 61.71757568 4.70442261 63.16772461 5.02954102 C112.43082649 16.43148155 159.45379399 38.11626116 196.35864258 73.26074219 C199.80075682 76.34616065 203.23298788 79.40963742 206.92114258 82.19824219 C209.72703569 84.57245944 211.96708853 87.20620154 214.34692383 89.99902344 C216.54505319 92.47031839 218.86592375 94.76425747 221.23364258 97.07324219 C226.36826394 102.16132619 230.89814056 107.57955201 235.35864258 113.26074219 C236.5284668 114.72253906 236.5284668 114.72253906 237.72192383 116.21386719 C287.78464903 179.77037319 309.72261589 261.06899789 300.35864258 341.26074219 C296.56836348 370.63066736 289.1725082 399.85220944 277.79614258 427.19824219 C277.34924072 428.28226318 276.90233887 429.36628418 276.44189453 430.4831543 C273.12812405 438.20883172 269.53682831 445.4969191 262.35864258 450.26074219 C258.06875985 451.47485994 256.10607053 451.6248312 252.05981445 449.65380859 C248.07253595 447.23983802 244.79886568 444.25658937 241.45239258 441.03417969 C240.81072144 440.4255307 240.16905029 439.81688171 239.50793457 439.18978882 C232.54906894 432.55561559 225.72743526 425.78074692 218.93969727 418.97216797 C216.8357052 416.86274561 214.72632223 414.7588178 212.61645508 412.65527344 C211.24894636 411.28710484 209.88174738 409.91862657 208.51489258 408.54980469 C207.89811646 407.9350528 207.28134033 407.3203009 206.64587402 406.68692017 C189.26231545 389.21075737 189.26231545 389.21075737 188.35864258 379.26074219 C188.93188477 376.01367188 188.93188477 376.01367188 189.90551758 372.68261719 C190.25477295 371.44801758 190.60402832 370.21341797 190.96386719 368.94140625 C191.15125458 368.29917114 191.33864197 367.65693604 191.53170776 366.99523926 C192.50552963 363.64555989 193.42974684 360.28256171 194.34692383 356.91699219 C194.52739761 356.25475647 194.7078714 355.59252075 194.89381409 354.91021729 C197.06975598 346.79186983 198.41247062 338.60246278 199.35864258 330.26074219 C199.45000488 329.54031738 199.54136719 328.81989258 199.63549805 328.07763672 C200.54187247 320.28217042 200.6010353 312.47391896 200.60864258 304.63574219 C200.60964966 303.91241699 200.61065674 303.1890918 200.61169434 302.44384766 C200.59931887 289.21520735 199.67430859 276.30557671 197.35864258 263.26074219 C197.15779053 262.12741455 197.15779053 262.12741455 196.95288086 260.97119141 C194.52323423 247.99246087 189.92306444 235.61468783 185.35864258 223.26074219 C184.93711914 222.10574219 184.5155957 220.95074219 184.08129883 219.76074219 C177.40193916 202.64636866 166.94173842 186.43327263 155.35864258 172.26074219 C154.55813477 171.27460938 153.75762695 170.28847656 152.93286133 169.27246094 C142.33466991 156.38282156 130.79143428 145.16674784 117.35864258 135.26074219 C116.34543945 134.50277344 115.33223633 133.74480469 114.28833008 132.96386719 C73.6297101 103.6397474 22.94270546 91.58100593 -26.54663086 99.40722656 C-66.71244451 106.31535176 -100.68223349 124.84769457 -130.39135742 152.32324219 C-131.00551514 152.88881836 -131.61967285 153.45439453 -132.25244141 154.03710938 C-147.30880637 168.14141351 -158.91673687 185.17957395 -168.64135742 203.26074219 C-169.01631348 203.95022949 -169.39126953 204.6397168 -169.77758789 205.35009766 C-195.96423107 253.91808186 -200.1704531 313.48703773 -184.90966797 366.14038086 C-172.84588706 406.06857444 -148.82338484 444.49714974 -114.64135742 469.26074219 C-114.01229492 469.72270996 -113.38323242 470.18467773 -112.73510742 470.66064453 C-66.47003588 504.39204894 -12.7946084 515.88479847 43.48291016 507.50854492 C44.49374916 507.36522484 44.49374916 507.36522484 45.52500916 507.2190094 C47.35006448 506.95838918 49.17259778 506.68027591 50.99487305 506.40087891 C56.82923113 506.15781594 60.74824638 507.49137055 65.15185547 511.25195312 C66.5694373 512.57195327 67.97059243 513.90972205 69.35864258 515.26074219 C70.53316483 516.39388855 70.53316483 516.39388855 71.73141479 517.54992676 C74.39540017 520.14880173 77.03400742 522.77134153 79.66723633 525.40136719 C80.64308435 526.37399047 81.61900234 527.34654355 82.59498596 528.31903076 C84.62970841 530.34780583 86.66239514 532.37859549 88.69384766 534.41064453 C91.26812868 536.98502693 93.84921485 539.55246555 96.43214321 542.11816788 C98.44763846 544.12242068 100.4584468 546.13132817 102.46806526 548.14147186 C103.87005346 549.54174213 105.27655699 550.93748702 106.68321228 552.33306885 C125.07136028 570.78591425 125.07136028 570.78591425 125.35864258 579.26074219 C121.51384909 587.27072861 110.81720292 589.67204528 102.90405273 592.49169922 C99.42389262 593.63568954 95.93209449 594.71509324 92.42114258 595.76074219 C91.78978394 595.94984161 91.15842529 596.13894104 90.50793457 596.33377075 C70.04000245 602.41820377 48.68072318 606.82131601 27.35864258 608.26074219 C26.5155957 608.32100586 25.67254883 608.38126953 24.80395508 608.44335938 C-40.90442235 612.89138349 -108.80871394 595.96573142 -162.64135742 557.26074219 C-163.35775391 556.74898437 -164.07415039 556.23722656 -164.81225586 555.70996094 C-181.86074095 543.49406301 -181.86074095 543.49406301 -189.34057617 536.42089844 C-191.2959915 534.58499916 -193.28874508 532.83385426 -195.32104492 531.08496094 C-207.0338701 520.87179108 -218.24010831 509.64786897 -227.64135742 497.26074219 C-228.63844787 496.00165504 -229.63729162 494.74395527 -230.63745117 493.48730469 C-269.42753842 444.33234862 -291.93124061 383.24196627 -294.20385742 320.69824219 C-294.24559082 319.5607251 -294.28732422 318.42320801 -294.33032227 317.2512207 C-294.65317004 307.91564896 -294.85163775 298.60032072 -294.64135742 289.26074219 C-294.61299805 287.95234375 -294.58463867 286.64394531 -294.55541992 285.29589844 C-292.22511669 218.25675388 -262.61889931 148.77774133 -216.64135742 100.26074219 C-215.22812379 98.71822531 -213.82312634 97.16847937 -212.41845703 95.61816406 C-205.54186736 88.04110339 -198.50014747 80.71434959 -190.71557617 74.06152344 C-189.25639203 72.79469879 -187.82347742 71.49729202 -186.41088867 70.17871094 C-146.64724167 33.13949 -91.47761113 11.29229922 -38.64135742 2.26074219 C-37.60696533 2.07092773 -36.57257324 1.88111328 -35.50683594 1.68554688 C-23.72238563 -0.21101441 -11.90677215 -0.04140101 0 0 Z M-183.64135742 82.26074219 C-184.76864258 83.25074219 -184.76864258 83.25074219 -185.91870117 84.26074219 C-191.41606805 89.09037565 -196.64652085 94.1605492 -201.82885742 99.32324219 C-202.4941748 99.98396729 -203.15949219 100.64469238 -203.8449707 101.32543945 C-242.01912104 139.61820199 -266.62095475 190.39383833 -278.32885742 242.76074219 C-278.51923584 243.60040527 -278.70961426 244.44006836 -278.90576172 245.30517578 C-279.54382153 248.2820462 -280.10458329 251.26378857 -280.64135742 254.26074219 C-280.83347809 255.32814636 -280.83347809 255.32814636 -281.02947998 256.41711426 C-283.39415714 269.93881575 -284.05856708 283.13338482 -283.92260742 296.84619141 C-283.89124372 300.02225578 -283.88158988 303.19781869 -283.87573242 306.37402344 C-283.81182957 323.96952099 -283.07525839 340.94228025 -279.89135742 358.26074219 C-279.75785889 359.00187256 -279.62436035 359.74300293 -279.48681641 360.5065918 C-277.52870635 371.33975695 -275.20632803 381.82990226 -271.64135742 392.26074219 C-271.19527092 393.68156097 -270.75270679 395.10348931 -270.31323242 396.52636719 C-256.48766561 440.60382109 -231.67423367 480.98242402 -198.64135742 513.26074219 C-193.64135742 518.26074219 -193.64135742 518.26074219 -191.82495117 520.18261719 C-185.81453238 526.42548312 -179.2662662 531.66957209 -172.39379883 536.90966797 C-170.77437264 538.15819186 -169.18114662 539.44050277 -167.59057617 540.72558594 C-111.68904606 585.46131107 -36.38228971 605.04943097 34.31285095 597.26576233 C47.14358276 595.74727055 59.86102324 593.54083822 72.35864258 590.26074219 C73.4042334 589.99656494 73.4042334 589.99656494 74.47094727 589.72705078 C87.70139991 586.37011487 100.51890874 581.867456 113.35864258 577.26074219 C107.73781127 564.26688954 92.64507598 553.10735072 82.76369286 543.06568146 C80.26375041 540.52423344 77.7746617 537.97382107 75.30761719 535.40039062 C72.88556329 532.87441354 70.43960303 530.37404257 67.97509956 527.88948822 C66.60571742 526.49665035 65.26145405 525.0792571 63.91795349 523.66143799 C58.51262913 518.20493724 58.51262913 518.20493724 51.27197266 516.59350586 C49.62749144 516.75921998 47.9875136 516.98045871 46.35864258 517.26074219 C45.62201889 517.36309174 44.8853952 517.46544128 44.12644958 517.57089233 C41.91588151 517.90761918 39.72713484 518.31583733 37.53051758 518.73339844 C27.20325324 520.51323666 17.06774105 520.77019398 6.60864258 520.69824219 C5.69309601 520.69586548 4.77754944 520.69348877 3.83425903 520.69104004 C-9.49399285 520.63703072 -22.32960661 519.9471195 -35.33911133 516.81201172 C-37.59222346 516.27250724 -39.84983769 515.80317927 -42.12182617 515.35058594 C-64.57376357 510.72312614 -86.64403236 501.00065449 -105.64135742 488.26074219 C-106.28782227 487.82922852 -106.93428711 487.39771484 -107.6003418 486.953125 C-138.06758258 466.4753771 -162.71193953 439.95203191 -179.64135742 407.26074219 C-179.98118652 406.61234375 -180.32101563 405.96394531 -180.67114258 405.29589844 C-189.59834639 388.04773803 -195.5259817 369.20776902 -199.64135742 350.26074219 C-199.80780762 349.50092041 -199.97425781 348.74109863 -200.14575195 347.95825195 C-209.19992645 305.02434664 -204.49289679 256.31227281 -186.64135742 216.26074219 C-186.30910156 215.50035645 -185.9768457 214.7399707 -185.63452148 213.95654297 C-176.29444605 192.74769507 -164.09658246 172.70858075 -148.08666992 155.88183594 C-145.62954947 153.31756231 -145.62954947 153.31756231 -143.54370117 150.62011719 C-141.83098899 148.49593205 -140.16014918 146.82188689 -138.07885742 145.07324219 C-134.82414003 142.30314264 -131.69448029 139.43627497 -128.57885742 136.51074219 C-103.06248603 113.34594836 -70.64290608 97.70387663 -37.01977539 90.76464844 C-34.91173316 90.31802565 -32.82840874 89.81746229 -30.73901367 89.29199219 C-20.73716926 87.06247888 -10.7812232 87.00149729 -0.57885742 87.01074219 C0.13781097 87.01133636 0.85447937 87.01193054 1.59286499 87.01254272 C29.19419283 87.09978751 29.19419283 87.09978751 41.85864258 90.01074219 C42.64706543 90.18484619 43.43548828 90.3589502 44.24780273 90.53833008 C52.10264266 92.32968793 59.74465918 94.63913685 67.35864258 97.26074219 C68.39633789 97.61652344 69.4340332 97.97230469 70.50317383 98.33886719 C124.0506703 117.86067591 167.0552804 158.45253181 191.1184082 209.9387207 C205.06187576 240.591682 210.58679383 271.17078606 210.60864258 304.69824219 C210.60931732 305.63105011 210.60999207 306.56385803 210.61068726 307.52493286 C210.58377874 330.95671866 207.76682477 352.92449235 199.74145508 375.05761719 C199.05638027 379.00029262 199.25968843 382.62923248 201.54879761 386.02764893 C203.21718827 387.93917023 204.9584997 389.73671199 206.75708008 391.52636719 C207.75401382 392.55253143 207.75401382 392.55253143 208.77108765 393.59942627 C210.95191199 395.83518917 213.15405786 398.04842375 215.35864258 400.26074219 C216.86880302 401.7945385 218.37823635 403.32905102 219.88696289 404.86425781 C223.77140603 408.80471719 227.67864447 412.72162297 231.59643555 416.62890625 C234.01966845 419.046687 236.43738781 421.46989201 238.85473633 423.89355469 C240.41040468 425.44856362 241.96638247 427.00326306 243.52270508 428.55761719 C244.23729889 429.27423523 244.9518927 429.99085327 245.68814087 430.72918701 C249.1025101 434.12753931 252.50580988 437.35029533 256.35864258 440.26074219 C260.03055519 439.03677132 261.36190773 437.03935655 263.09765625 433.66699219 C263.41065674 433.01730469 263.72365723 432.36761719 264.04614258 431.69824219 C264.38427979 431.00859375 264.72241699 430.31894531 265.07080078 429.60839844 C269.58877982 420.06688892 272.99014871 410.06721412 276.39379883 400.08691406 C277.18876958 397.75832566 278.00357873 395.43856474 278.82739258 393.12011719 C293.16758925 350.6510732 296.09465575 300.40017953 288.35864258 256.26074219 C288.10920898 254.76099854 288.10920898 254.76099854 287.85473633 253.23095703 C282.74979778 223.07873204 272.71700757 194.23966729 258.35864258 167.26074219 C257.80055908 166.19460693 257.80055908 166.19460693 257.23120117 165.10693359 C251.12635653 153.48918306 244.14194216 142.81617586 236.35864258 132.26074219 C235.58649414 131.19210938 234.8143457 130.12347656 234.01879883 129.02246094 C226.49282002 118.74739041 218.30485372 108.90597411 209.14379883 100.04589844 C207.31317543 98.21527504 205.65239819 96.30174361 203.98364258 94.32324219 C199.83166463 89.51814411 195.14447009 85.42118646 190.35864258 81.26074219 C189.31786263 80.33412518 188.27751572 79.40702162 187.23754883 78.47949219 C172.18067983 65.17146312 155.78326379 54.2166402 138.35864258 44.26074219 C137.65980957 43.8537207 136.96097656 43.44669922 136.2409668 43.02734375 C110.5936255 28.17069011 80.42301168 18.6759894 51.35864258 13.26074219 C50.4762793 13.09558105 49.59391602 12.93041992 48.68481445 12.76025391 C-33.32366674 -1.65832815 -122.73098843 26.06666206 -183.64135742 82.26074219 Z " fill="#5EBFF6" transform="translate(315.641357421875,6.7392578125)"/> +<path d="M0 0 C4.33857647 2.63765473 7.85466111 5.60611615 11.43530273 9.19238281 C11.94187408 9.69705582 12.44844543 10.20172882 12.97036743 10.72169495 C14.62969004 12.37733887 16.28174233 14.04002963 17.93359375 15.703125 C19.09615622 16.86688164 20.25909088 18.03026659 21.42237854 19.19329834 C23.85541873 21.6278987 26.28507662 24.06580733 28.7121582 26.50634766 C31.80462995 29.61576084 34.90359473 32.71859945 38.00492764 35.81917191 C40.4066004 38.22111832 42.80564471 40.62567579 45.20384407 43.03108978 C46.34459874 44.17500047 47.48593701 45.31832952 48.62789726 46.46103668 C50.23288218 48.06822087 51.83451553 49.67867509 53.43530273 51.29003906 C54.34320053 52.20174866 55.25109833 53.11345825 56.18650818 54.05279541 C58.30211311 56.22404101 60.29415294 58.47686973 62.27149963 60.7744751 C66.37755991 65.50351069 70.78009986 69.90528201 75.22070312 74.31835938 C76.59738082 75.69279557 77.97405838 77.06723189 79.3507309 78.44167328 C80.81599357 79.90358715 82.28249767 81.36424494 83.74937439 82.82453918 C86.82110493 85.88262865 89.88891148 88.94463495 92.95617676 92.00720215 C99.46781091 98.50778485 105.98367655 105.00411846 112.5 111.5 C119.53747028 118.51539351 126.57418394 125.53153629 133.60600805 132.55258989 C136.64841039 135.59004316 139.6932256 138.62504949 142.7399826 141.65813446 C144.18145315 143.09390824 145.62174755 144.53084977 147.0615387 145.9683075 C148.80740844 147.71133462 150.55505237 149.45258746 152.30491638 151.19160461 C156.51634473 155.40265333 160.57315713 159.67995815 164.43395233 164.21596527 C167.79415315 168.0438915 171.5276117 171.52640339 175.18945312 175.0625 C175.78306641 175.64515625 176.37667969 176.2278125 176.98828125 176.828125 C177.51977783 177.3427832 178.05127441 177.85744141 178.59887695 178.38769531 C181.61500265 181.85842089 182.57371831 185.17855277 182.43762207 189.81048584 C180.84486976 197.77935661 173.07728592 204.34099342 167.53125 209.796875 C166.73271606 210.59353577 165.93418213 211.39019653 165.1114502 212.21099854 C163.43409844 213.88167039 161.75317405 215.54876236 160.06884766 217.21240234 C157.50029006 219.74971347 154.9426392 222.29762163 152.38671875 224.84765625 C150.7480181 226.47718851 149.10871558 228.10611578 147.46875 229.734375 C146.70921021 230.48966492 145.94967041 231.24495483 145.16711426 232.02313232 C133.35612844 243.67672192 133.35612844 243.67672192 126.18041992 244.36791992 C122.4030144 244.30434681 120.36919711 243.31250988 117.5813446 240.6401825 C117.0968837 240.13630508 116.61242279 239.63242767 116.11328125 239.11328125 C115.57222244 238.58309891 115.03116364 238.05291656 114.47370911 237.50666809 C112.62965282 235.68970633 110.81590371 233.84507206 109 232 C107.60375062 230.61205742 106.20573172 229.22589319 104.80615234 227.84130859 C100.24264282 223.31370384 95.71300458 218.75304908 91.1875 214.1875 C88.12148333 211.09466407 85.05199835 208.0053287 81.98046875 204.91796875 C81.29695847 204.22616013 80.61344818 203.5343515 79.90922546 202.82157898 C79.25106339 202.16011368 78.59290131 201.49864838 77.91479492 200.81713867 C77.34999924 200.24710617 76.78520355 199.67707367 76.20329285 199.08976746 C74.34381103 197.32609605 72.44755603 195.66459691 70.50134277 193.99935913 C64.76086719 188.99983217 59.43810232 183.57790863 54.0637207 178.19311523 C52.87875641 177.00950829 51.69357999 175.82611369 50.50820923 174.64291382 C47.30983558 171.44907371 44.11460266 168.25210915 40.92008615 165.05441165 C37.56738258 161.69916452 34.21222642 158.3463713 30.85746765 154.99317932 C25.2279678 149.36549484 19.60057088 143.73571401 13.97436523 138.10473633 C7.47784086 131.60276526 0.97771485 125.10441149 -5.52428311 118.60791439 C-11.11867816 113.01806217 -16.71111607 107.42625753 -22.30193263 101.8328262 C-25.63597754 98.49722564 -28.97068643 95.16229644 -32.30716515 91.82913017 C-35.44245547 88.69673574 -38.57527555 85.56189124 -41.70623398 82.42516708 C-42.85302422 81.27705868 -44.00065869 80.1297928 -45.14921379 78.98344994 C-46.72145232 77.41396 -48.29055299 75.84139609 -49.8589325 74.26805115 C-50.73622859 73.39037803 -51.61352468 72.51270491 -52.51740551 71.60843563 C-57.47056397 66.40420471 -60.84136549 62.79362543 -61.18359375 55.375 C-60.88889259 51.56269562 -59.5117788 49.87060435 -57 47 C-56.45424316 46.3714209 -55.90848633 45.7428418 -55.34619141 45.09521484 C-48.51315859 37.35557155 -41.23257566 30.08066928 -33.92382812 22.79345703 C-31.7371087 20.61214055 -29.55584097 18.42547324 -27.375 16.23828125 C-25.9742792 14.83822058 -24.57324858 13.43846978 -23.171875 12.0390625 C-22.20299347 11.06714462 -22.20299347 11.06714462 -21.21453857 10.07559204 C-9.3018525 -1.77566011 -9.3018525 -1.77566011 0 0 Z " fill="#8DD1F8" transform="translate(432,388)"/> +<path d="M0 0 C0.82996343 -0.00226556 1.65992686 -0.00453111 2.5150407 -0.00686532 C5.30624983 -0.01321375 8.09741052 -0.01237541 10.8886261 -0.0115509 C12.88591576 -0.01454194 14.88320485 -0.01794434 16.88049316 -0.02172852 C22.31456675 -0.03058011 27.74862459 -0.03290717 33.18270469 -0.0335443 C37.71782689 -0.0344929 42.25294542 -0.03817078 46.78806621 -0.0417164 C57.48988233 -0.04986598 68.19169004 -0.05230024 78.89350891 -0.05158997 C89.93210029 -0.05098958 100.97064273 -0.06153237 112.00922173 -0.07733363 C121.48449041 -0.09041367 130.95974311 -0.09577364 140.43502074 -0.09513456 C146.09480718 -0.09487963 151.75455018 -0.09772764 157.41432762 -0.10831261 C162.74043396 -0.11800091 168.06645542 -0.11806769 173.39256477 -0.11079597 C175.34524027 -0.10975093 177.29792106 -0.11210828 179.25058746 -0.11815643 C181.92114533 -0.12589087 184.59141117 -0.12122186 187.26196289 -0.11352539 C188.03036725 -0.11866895 188.79877161 -0.12381252 189.59046096 -0.12911195 C195.90966282 -0.0890111 201.77543048 0.42304526 206.88594055 4.44621277 C210.07803917 8.605614 210.07323503 12.60787261 210.10957336 17.73088074 C210.11918091 18.82907135 210.12878845 19.92726196 210.13868713 21.05873108 C210.14506195 22.82447983 210.14506195 22.82447983 210.15156555 24.62590027 C210.15726563 25.84520233 210.1629657 27.06450439 210.1688385 28.320755 C210.17827574 30.89788447 210.18481741 33.47502594 210.18867493 36.0521698 C210.19838725 39.9871173 210.2294265 43.92154387 210.26094055 47.85636902 C210.26747037 50.36287634 210.27272092 52.86938739 210.27656555 55.37590027 C210.28891235 56.54901764 210.30125916 57.72213501 210.3139801 58.93080139 C210.29720181 65.10571865 210.04287915 69.72724151 206.94844055 75.13371277 C202.21029203 79.75037031 198.50747101 80.26097565 192.07832336 80.24723816 C190.88094543 80.24711731 189.6835675 80.24699646 188.4499054 80.24687195 C187.19645325 80.24175598 185.9430011 80.23664001 184.65156555 80.23136902 C183.49575989 80.23036194 182.33995422 80.22935486 181.14912415 80.22831726 C178.54496313 80.22516143 175.94088879 80.21989679 173.33674622 80.21162415 C167.08343167 80.19188062 160.83009996 80.17987981 154.5767684 80.16697967 C151.30732787 80.160198 148.03788791 80.15316153 144.76844788 80.14614868 C143.6477528 80.14375403 142.52705772 80.14135939 141.37240219 80.13889217 C140.17254118 80.13632837 140.17254118 80.13632837 138.94844055 80.13371277 C138.94857934 80.79350191 138.94871813 81.45329105 138.94886112 82.13307381 C138.94951277 85.40428288 138.95008753 88.67549196 138.95063782 91.94670105 C138.95085119 93.21242825 138.95106457 94.47815544 138.95128441 95.78223801 C138.95235241 103.06957289 138.95230641 110.35690652 138.95077515 117.64424133 C138.95031043 120.00216587 138.94985178 122.36009041 138.94939864 124.71801496 C138.94908313 126.33838249 138.94875157 127.95875001 138.94840467 129.57911754 C138.94659805 138.74148808 138.94782094 147.9038416 138.95741272 157.06620789 C138.97647065 175.58022435 138.97447288 194.09386603 138.91997337 212.60783005 C138.89527979 221.28567809 138.88487735 229.9631653 138.90376282 238.64103699 C138.92063455 246.41323992 138.91322292 254.18496805 138.87609297 261.95710766 C138.85751358 266.0159314 138.85068179 270.07394425 138.87374687 274.13276291 C138.89478452 277.89173024 138.8833801 281.64917554 138.84659576 285.40800858 C138.83524937 287.4329546 138.85852218 289.45800211 138.88284302 291.48283386 C138.75372538 300.11482739 138.75372538 300.11482739 136.43651009 303.04668045 C131.85500983 306.44607722 127.50161213 307.26050597 121.8598175 307.31071472 C120.60453751 307.32354996 119.34925751 307.33638519 118.05593872 307.34960938 C116.68287045 307.35777906 115.30979768 307.36522236 113.9367218 307.37199402 C112.89670045 307.37810731 112.89670045 307.37810731 111.83566856 307.3843441 C108.1630572 307.40519205 104.49048302 307.41949709 100.81782532 307.42887878 C97.03953172 307.43991784 93.26183118 307.47429143 89.48374653 307.51405048 C86.56591765 307.54030429 83.64822794 307.54857849 80.73029137 307.55216026 C79.33852844 307.55700666 77.94677091 307.56856477 76.55512428 307.58719826 C68.63098055 307.6866717 62.64924409 307.60693098 55.94844055 303.13371277 C52.25961602 297.19951678 52.79854662 289.09529051 52.79022217 282.28155518 C52.7828152 280.98013939 52.7828152 280.98013939 52.7752586 279.65243238 C52.75995533 276.7582549 52.7515425 273.86409947 52.74311829 270.96989441 C52.73353412 268.89006864 52.72352372 266.8102448 52.71311951 264.73042297 C52.68612275 259.09259989 52.6650849 253.45476848 52.64511752 247.8169167 C52.62322568 241.92188458 52.59585265 236.02687798 52.56906128 230.13186646 C52.51917762 218.97254225 52.47422275 207.81320385 52.43103892 196.65385193 C52.38162955 183.9477476 52.32672514 171.24166888 52.27135932 158.53558934 C52.15760571 132.40165438 52.05075227 106.26769485 51.94844055 80.13371277 C51.30887924 80.13815399 50.66931793 80.14259521 50.01037598 80.14717102 C43.30982209 80.19166928 36.60931069 80.22168847 29.90864563 80.24357605 C27.41318555 80.25358825 24.91773707 80.26720199 22.4223175 80.28459167 C18.82031885 80.30905102 15.21847631 80.32024405 11.6164093 80.32902527 C9.96260506 80.34450912 9.96260506 80.34450912 8.27539062 80.36030579 C-10.34481519 80.3629587 -10.34481519 80.3629587 -15.17655945 75.57121277 C-15.79530945 74.76683777 -16.41405945 73.96246277 -17.05155945 73.13371277 C-17.38155945 72.80371277 -17.71155945 72.47371277 -18.05155945 72.13371277 C-19.67946552 61.91472159 -19.23771624 51.29085608 -19.23686218 40.97892761 C-19.2390598 38.00824377 -19.25730542 35.03792555 -19.27616882 32.06730652 C-19.27910186 30.14933902 -19.28108726 28.23136978 -19.2820282 26.31340027 C-19.28921371 25.44021149 -19.29639923 24.56702271 -19.30380249 23.66737366 C-19.24977931 8.89260897 -19.24977931 8.89260897 -15.70114136 4.43885803 C-10.71796913 0.14468024 -6.26461579 -0.01244474 0 0 Z M-8.05155945 12.13371277 C-8.05155945 30.61371277 -8.05155945 49.09371277 -8.05155945 68.13371277 C-5.42912643 69.44492928 -3.45646689 69.27997813 -0.51957703 69.30729675 C0.63890244 69.32078659 1.7973819 69.33427643 2.9909668 69.34817505 C4.24923782 69.35861343 5.50750885 69.36905182 6.8039093 69.37980652 C8.77532128 69.40431327 10.74673319 69.42883126 12.71813679 69.45400333 C17.58623955 69.51473693 22.45443882 69.56527686 27.32270813 69.61051941 C30.05019768 69.63625265 32.77754271 69.66710972 35.50491333 69.70330811 C38.07357644 69.73701917 40.64235569 69.76298673 43.21118164 69.78030396 C54.99182695 69.94726593 54.99182695 69.94726593 59.94844055 72.13371277 C62.70216616 75.82186832 62.23449512 80.1750842 62.22018433 84.5712738 C62.22527116 85.43067652 62.230358 86.29007925 62.23559898 87.17552447 C62.25028294 90.06039552 62.25079381 92.94509601 62.25141907 95.83000183 C62.25907899 97.89640638 62.26762511 99.96280781 62.2769928 102.02920532 C62.29528586 106.48229059 62.3073154 110.93533374 62.31453133 115.38845062 C62.3260085 122.43124971 62.3514625 129.47395573 62.37884521 136.51670837 C62.42052081 147.65951761 62.4529202 158.80233133 62.48131937 169.94518161 C62.53224068 189.88940029 62.59452165 209.83357958 62.66665977 229.77773261 C62.69155304 236.776916 62.71099853 243.77608734 62.72604191 250.7752986 C62.73626309 255.13398356 62.75041001 259.49264977 62.76551819 263.85132027 C62.77166192 265.87010568 62.77612782 267.88889702 62.77877617 269.90769005 C62.78260319 272.66790034 62.79243472 275.42802856 62.80368042 278.18821716 C62.80310122 279.38065548 62.80310122 279.38065548 62.80251032 280.59718347 C62.42504947 289.57674324 62.42504947 289.57674324 65.94844055 297.13371277 C68.5236034 297.4337795 68.5236034 297.4337795 71.55976868 297.37663269 C72.7343866 297.37970932 73.90900452 297.38278595 75.11921692 297.38595581 C76.39317322 297.37877029 77.66712952 297.37158478 78.97969055 297.36418152 C80.28168396 297.3637233 81.58367737 297.36326508 82.92512512 297.36279297 C85.6824628 297.36122791 88.43967068 297.35293686 91.19697571 297.33952332 C94.73464199 297.3225334 98.27216556 297.31870898 101.80986786 297.3194685 C105.17899461 297.31913146 108.54807437 297.31029429 111.91719055 297.30168152 C113.19114685 297.3005687 114.46510315 297.29945587 115.77766418 297.29830933 C117.53959106 297.28873955 117.53959106 297.28873955 119.33711243 297.27897644 C120.37476746 297.27516464 121.41242249 297.27135284 122.48152161 297.26742554 C124.95228594 297.29768554 124.95228594 297.29768554 126.94844055 296.13371277 C127.08653104 285.42660654 127.22054689 274.71945266 127.35209656 264.01226425 C127.37460221 262.18120123 127.39716459 260.35013891 127.41978455 258.5190773 C127.73400545 233.05376295 127.99685496 207.58842578 128.2023468 182.12199402 C128.22327772 179.5619963 128.24422803 177.00199874 128.26519775 174.44200134 C128.34760083 164.33106283 128.42997471 154.22012979 128.50260925 144.1091156 C128.87766195 91.95252446 128.87766195 91.95252446 129.94844055 71.13371277 C131.17539642 71.12824432 131.17539642 71.12824432 132.42713928 71.12266541 C140.13741984 71.08479185 147.84721687 71.02794716 155.55718613 70.94981003 C159.5209544 70.91030768 163.48449962 70.87813302 167.44844055 70.86271667 C171.27422874 70.8475678 175.09940381 70.81315502 178.92491913 70.76540375 C180.38408833 70.75057144 181.84334507 70.74267069 183.30258942 70.74182892 C185.34763884 70.73946282 187.39098885 70.71241795 189.43574524 70.67961121 C190.5993457 70.67072876 191.76294617 70.66184631 192.96180725 70.6526947 C196.62436891 70.0162579 197.81437969 69.15256257 199.94844055 66.13371277 C200.53573571 63.6165193 200.53573571 63.6165193 200.4342804 60.84611511 C200.44043365 59.79177277 200.44658691 58.73743042 200.45292664 57.65113831 C200.4385556 56.51874725 200.42418457 55.3863562 200.40937805 54.21965027 C200.40846161 53.05366302 200.40754517 51.88767578 200.40660095 50.68635559 C200.40056145 48.22345403 200.38480518 45.76055994 200.36006165 43.29777527 C200.32351342 39.51625192 200.31904254 35.73570691 200.3195343 31.95402527 C200.30970504 29.56339175 200.29804887 27.1727649 200.28437805 24.78215027 C200.2821524 23.64571075 200.27992676 22.50927124 200.27763367 21.33839417 C200.26487396 20.29035614 200.25211426 19.24231812 200.2389679 18.16252136 C200.2313443 17.2374881 200.2237207 16.31245483 200.21586609 15.35939026 C200.15638884 12.92985995 200.15638884 12.92985995 197.94844055 11.13371277 C193.26062421 10.02892532 188.60354841 9.99000729 183.81291199 10 C183.01023144 9.99773444 182.20755089 9.99546889 181.38054669 9.99313468 C178.69987545 9.9868213 176.01925511 9.98762231 173.33857727 9.9884491 C171.41317174 9.98545606 169.48776681 9.9820532 167.56236267 9.97827148 C162.33947226 9.96944484 157.11659823 9.96709401 151.89370108 9.9664557 C147.53450953 9.96550568 143.17532179 9.96182655 138.81613171 9.9582836 C128.53585118 9.95014513 118.2555794 9.94769892 107.97529602 9.94841003 C97.36315767 9.94901159 86.75107002 9.93844295 76.13894451 9.92266637 C67.02970448 9.90960564 57.92048106 9.90422548 48.81123173 9.90486544 C43.36959304 9.90512074 37.92799947 9.9022517 32.48637009 9.89168739 C27.37281621 9.88203039 22.25935085 9.88191069 17.14579391 9.88920403 C15.26722586 9.89025266 13.38865236 9.88787053 11.51009369 9.88184357 C8.9499579 9.8741604 6.39013067 9.87874384 3.83000183 9.88647461 C3.08312005 9.88133105 2.33623827 9.87618748 1.5667237 9.87088805 C-2.4523487 9.89779146 -4.34105387 10.27845998 -8.05155945 12.13371277 Z " fill="#5EBFF6" transform="translate(225.0515594482422,152.8662872314453)"/> +<path d="M0 0 C4.33857647 2.63765473 7.85466111 5.60611615 11.43530273 9.19238281 C11.94187408 9.69705582 12.44844543 10.20172882 12.97036743 10.72169495 C14.62969004 12.37733887 16.28174233 14.04002963 17.93359375 15.703125 C19.09615622 16.86688164 20.25909088 18.03026659 21.42237854 19.19329834 C23.85541873 21.6278987 26.28507662 24.06580733 28.7121582 26.50634766 C31.80462995 29.61576084 34.90359473 32.71859945 38.00492764 35.81917191 C40.4066004 38.22111832 42.80564471 40.62567579 45.20384407 43.03108978 C46.34459874 44.17500047 47.48593701 45.31832952 48.62789726 46.46103668 C50.23288218 48.06822087 51.83451553 49.67867509 53.43530273 51.29003906 C54.34320053 52.20174866 55.25109833 53.11345825 56.18650818 54.05279541 C58.30211311 56.22404101 60.29415294 58.47686973 62.27149963 60.7744751 C66.37755991 65.50351069 70.78009986 69.90528201 75.22070312 74.31835938 C76.59738082 75.69279557 77.97405838 77.06723189 79.3507309 78.44167328 C80.81599357 79.90358715 82.28249767 81.36424494 83.74937439 82.82453918 C86.82110493 85.88262865 89.88891148 88.94463495 92.95617676 92.00720215 C99.46781091 98.50778485 105.98367655 105.00411846 112.5 111.5 C119.53747028 118.51539351 126.57418394 125.53153629 133.60600805 132.55258989 C136.64841039 135.59004316 139.6932256 138.62504949 142.7399826 141.65813446 C144.18145315 143.09390824 145.62174755 144.53084977 147.0615387 145.9683075 C148.80740844 147.71133462 150.55505237 149.45258746 152.30491638 151.19160461 C156.51634473 155.40265333 160.57315713 159.67995815 164.43395233 164.21596527 C167.79415315 168.0438915 171.5276117 171.52640339 175.18945312 175.0625 C175.78306641 175.64515625 176.37667969 176.2278125 176.98828125 176.828125 C177.51977783 177.3427832 178.05127441 177.85744141 178.59887695 178.38769531 C181.61500265 181.85842089 182.57371831 185.17855277 182.43762207 189.81048584 C180.84486976 197.77935661 173.07728592 204.34099342 167.53125 209.796875 C166.73271606 210.59353577 165.93418213 211.39019653 165.1114502 212.21099854 C163.43409844 213.88167039 161.75317405 215.54876236 160.06884766 217.21240234 C157.50029006 219.74971347 154.9426392 222.29762163 152.38671875 224.84765625 C150.7480181 226.47718851 149.10871558 228.10611578 147.46875 229.734375 C146.70921021 230.48966492 145.94967041 231.24495483 145.16711426 232.02313232 C133.35612844 243.67672192 133.35612844 243.67672192 126.18041992 244.36791992 C122.4030144 244.30434681 120.36919711 243.31250988 117.5813446 240.6401825 C117.0968837 240.13630508 116.61242279 239.63242767 116.11328125 239.11328125 C115.57222244 238.58309891 115.03116364 238.05291656 114.47370911 237.50666809 C112.62965282 235.68970633 110.81590371 233.84507206 109 232 C107.60375062 230.61205742 106.20573172 229.22589319 104.80615234 227.84130859 C100.24264282 223.31370384 95.71300458 218.75304908 91.1875 214.1875 C88.12148333 211.09466407 85.05199835 208.0053287 81.98046875 204.91796875 C81.29695847 204.22616013 80.61344818 203.5343515 79.90922546 202.82157898 C79.25106339 202.16011368 78.59290131 201.49864838 77.91479492 200.81713867 C77.34999924 200.24710617 76.78520355 199.67707367 76.20329285 199.08976746 C74.34381103 197.32609605 72.44755603 195.66459691 70.50134277 193.99935913 C64.76086719 188.99983217 59.43810232 183.57790863 54.0637207 178.19311523 C52.87875641 177.00950829 51.69357999 175.82611369 50.50820923 174.64291382 C47.30983558 171.44907371 44.11460266 168.25210915 40.92008615 165.05441165 C37.56738258 161.69916452 34.21222642 158.3463713 30.85746765 154.99317932 C25.2279678 149.36549484 19.60057088 143.73571401 13.97436523 138.10473633 C7.47784086 131.60276526 0.97771485 125.10441149 -5.52428311 118.60791439 C-11.11867816 113.01806217 -16.71111607 107.42625753 -22.30193263 101.8328262 C-25.63597754 98.49722564 -28.97068643 95.16229644 -32.30716515 91.82913017 C-35.44245547 88.69673574 -38.57527555 85.56189124 -41.70623398 82.42516708 C-42.85302422 81.27705868 -44.00065869 80.1297928 -45.14921379 78.98344994 C-46.72145232 77.41396 -48.29055299 75.84139609 -49.8589325 74.26805115 C-50.73622859 73.39037803 -51.61352468 72.51270491 -52.51740551 71.60843563 C-57.47056397 66.40420471 -60.84136549 62.79362543 -61.18359375 55.375 C-60.88889259 51.56269562 -59.5117788 49.87060435 -57 47 C-56.45424316 46.3714209 -55.90848633 45.7428418 -55.34619141 45.09521484 C-48.51315859 37.35557155 -41.23257566 30.08066928 -33.92382812 22.79345703 C-31.7371087 20.61214055 -29.55584097 18.42547324 -27.375 16.23828125 C-25.9742792 14.83822058 -24.57324858 13.43846978 -23.171875 12.0390625 C-22.20299347 11.06714462 -22.20299347 11.06714462 -21.21453857 10.07559204 C-9.3018525 -1.77566011 -9.3018525 -1.77566011 0 0 Z M-9.74072266 13.99902344 C-10.43820618 14.64125854 -11.1356897 15.28349365 -11.85430908 15.94519043 C-15.32270041 19.26667706 -18.75757116 22.61489878 -22.1484375 26.015625 C-23.2563414 27.12209381 -23.2563414 27.12209381 -24.3866272 28.25091553 C-25.93231932 29.79593226 -27.4767699 31.342192 -29.02001953 32.88964844 C-31.38590849 35.26093337 -33.75714006 37.62678255 -36.12890625 39.9921875 C-37.63573774 41.49967914 -39.14225935 43.00748059 -40.6484375 44.515625 C-41.35672699 45.22189026 -42.06501648 45.92815552 -42.79476929 46.65582275 C-43.44950226 47.31370789 -44.10423523 47.97159302 -44.77880859 48.64941406 C-45.64196182 49.51376068 -45.64196182 49.51376068 -46.52255249 50.39556885 C-49.30910827 53.40821426 -49.30910827 53.40821426 -49.96370792 57.31830788 C-48.64776461 60.98015888 -46.30331599 63.2397114 -43.58067322 65.90707397 C-43.00968244 66.48218802 -42.43869166 67.05730207 -41.85039812 67.64984381 C-39.93301335 69.57616434 -38.0016636 71.4878393 -36.07006836 73.39990234 C-34.6929038 74.77757566 -33.31661247 76.15612237 -31.94113159 77.53547668 C-28.19978863 81.2822471 -24.44613228 85.01645744 -20.69005656 88.74845076 C-16.75913455 92.65808738 -12.83914788 96.57865832 -8.91786194 100.49795532 C-2.32595288 107.08341183 4.27331317 113.6614187 10.87768555 120.234375 C19.34148321 128.65796315 27.79387952 137.0928921 36.24240971 145.53178978 C43.51559349 152.79665101 50.79322675 160.05705005 58.07198405 167.31632662 C59.63139939 168.87169944 61.19066394 170.42722345 62.74977803 171.98289824 C67.2005797 176.42386983 71.65373607 180.8624511 76.1108284 185.2971096 C77.45801446 186.63820801 78.80439347 187.98011772 80.14988136 189.32291985 C89.0503857 198.24097545 89.0503857 198.24097545 98.43135452 206.64566994 C101.14876408 208.99181475 103.59909735 211.59119853 106.07421875 214.1875 C107.16397066 215.30931588 108.25448683 216.43038976 109.34570312 217.55078125 C111.03172822 219.28651898 112.71252308 221.02628199 114.38110352 222.77880859 C116.01519862 224.49134974 117.66755907 226.18431654 119.32421875 227.875 C120.06813118 228.67006958 120.06813118 228.67006958 120.82707214 229.48120117 C122.39595878 231.13031977 122.39595878 231.13031977 125 233 C129.24577868 232.75310452 131.26023453 231.24683876 134.22363281 228.30981445 C135.02085754 227.52842606 135.81808228 226.74703766 136.63946533 225.94197083 C137.48547302 225.09100327 138.33148071 224.24003571 139.203125 223.36328125 C140.08152039 222.49108444 140.95991577 221.61888763 141.8649292 220.72026062 C144.19352753 218.40058258 146.51183538 216.0711415 148.82751465 213.73858643 C150.24798803 212.31451706 151.67689478 210.89953358 153.109375 209.48754883 C155.86220035 206.77155773 158.59743219 204.03900499 161.328125 201.30078125 C162.18222961 200.45993484 163.03633423 199.61908844 163.9163208 198.75276184 C164.70093689 197.95561264 165.48555298 197.15846344 166.29394531 196.3371582 C166.98723938 195.64290237 167.68053345 194.94864655 168.39483643 194.23335266 C170.39716647 191.44740038 170.83595514 189.40917174 171 186 C168.95784464 183.14444406 168.95784464 183.14444406 166 180.625 C162.75818039 177.63864987 159.6982854 174.71291468 156.84082031 171.35620117 C152.89221615 166.8126302 148.69123589 162.56485971 144.421875 158.32421875 C143.59328979 157.49709381 142.76470459 156.66996887 141.91101074 155.81777954 C140.12412327 154.03467697 138.33608217 152.25272985 136.54699707 150.47183228 C133.71089979 147.64857684 130.87792769 144.82220737 128.04589844 141.99487305 C122.03357523 135.9935951 116.01701839 129.99656989 110 124 C103.50144882 117.52353379 97.00365948 111.04631371 90.51076126 104.56417942 C87.25186221 101.31101843 83.98907563 98.06178716 80.72558594 94.81323242 C79.00961673 93.1008979 77.29378897 91.3884216 75.578125 89.67578125 C74.81012573 88.9129483 74.04212646 88.15011536 73.25085449 87.36416626 C69.21787045 83.33157539 65.37663147 79.20380401 61.65350914 74.88424683 C59.07346296 71.94417005 56.33572675 69.172252 53.57739258 66.40039062 C52.97807419 65.79450104 52.3787558 65.18861145 51.76127625 64.56436157 C49.80853044 62.59215433 47.85200325 60.62376586 45.89453125 58.65625 C45.2219245 57.97956772 44.54931774 57.30288544 43.85632896 56.60569763 C40.30795837 53.0366007 36.75641857 49.47069159 33.20239258 45.90722656 C29.53198233 42.22566999 25.87341263 38.53256871 22.21722889 34.83689117 C19.39890422 31.99250323 16.57180755 29.15695977 13.74222374 26.32377625 C12.38844181 24.965116 11.03804702 23.60307211 9.69111061 22.23762512 C7.81478297 20.33708588 5.92637171 18.44942509 4.03442383 16.56445312 C3.48005646 15.9972757 2.92568909 15.43009827 2.35452271 14.84573364 C-2.09356072 10.4573854 -5.0500783 9.64899123 -9.74072266 13.99902344 Z " fill="#5EBFF6" transform="translate(432,388)"/> +</svg> diff --git a/tqweb/views/index.html b/tqweb/views/index.html index b2cc191..e73cb9d 100644 --- a/tqweb/views/index.html +++ b/tqweb/views/index.html @@ -1,6 +1,7 @@ {{ block "output" . }} <textarea - class="w-full h-full bg-transparent text-sm text-gray-100 px-4 py-2 resize-none focus:outline-none" + spellcheck="false" + class="w-full h-full bg-transparent text-sm px-4 py-2 resize-none focus:outline-none" name="output" id="output" readonly From a0cfe1a668f6a4b17237ea23e7cd40c37fed1d61 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Thu, 16 Apr 2026 20:03:53 +0200 Subject: [PATCH 16/23] Update web server for static files --- tqweb/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tqweb/Makefile b/tqweb/Makefile index dab8b2f..f407412 100644 --- a/tqweb/Makefile +++ b/tqweb/Makefile @@ -8,13 +8,14 @@ HTMX_VERSION?=2.0.8 # to revert to the version used in Go code, here is a quick shell script to # pull the version from the go.mod file. # +# GO_WASM_HTTP_SERVER_VERSION?=master +# # #2 The master version seems not to work right with Go 1.24.0. # GO_WASM_HTTP_SERVER_VERSION?=$(shell\ grep go-wasm-http-server go.mod |\ cut -d' ' -f3\ ) -# GO_WASM_HTTP_SERVER_VERSION?=master # ==== # export CGO_ENABLED=0 @@ -39,4 +40,4 @@ build: $(GO) build $(GOFLAGS) -o api.wasm . serve: - $(shell goexec 'http.ListenAndServe(`:18080`, http.FileServer(http.Dir(`.`)))') + python3 -m http.server 8000 From 6b57bb9ab128756ff3f3007ac36732425d0bd8bf Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:17:10 +0200 Subject: [PATCH 17/23] Updated tqweb environment to Go 1,26 --- go.work | 2 +- go.work.sum | 1 + tqweb/Makefile | 6 +++--- tqweb/api.wasm | Bin 12076211 -> 11932505 bytes tqweb/go.mod | 4 ++-- tqweb/go.sum | 4 ++-- vendor/modules.txt | 4 ++-- 7 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 go.work.sum diff --git a/go.work b/go.work index 349edc2..4f0c6eb 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.24.0 +go 1.26.0 use ( . diff --git a/go.work.sum b/go.work.sum new file mode 100644 index 0000000..f60bd75 --- /dev/null +++ b/go.work.sum @@ -0,0 +1 @@ +github.com/mdm-code/tq/v2 v2.5.1/go.mod h1:InmaslI3cLnYkGSxckoxdo+oGf58sT8cBz++ET5CylY= diff --git a/tqweb/Makefile b/tqweb/Makefile index f407412..7f819aa 100644 --- a/tqweb/Makefile +++ b/tqweb/Makefile @@ -1,5 +1,5 @@ GO=go -GOFLAGS=-mod=vendor +GOFLAGS=-mod=vendor -trimpath HTMX_VERSION?=2.0.8 # NOTE # ==== @@ -18,7 +18,7 @@ GO_WASM_HTTP_SERVER_VERSION?=$(shell\ ) # ==== -# export CGO_ENABLED=0 +export CGO_ENABLED=0 export GOOS=js export GOARCH=wasm @@ -37,7 +37,7 @@ assets: curl https://cdn.jsdelivr.net/gh/nlepage/go-wasm-http-server@$(GO_WASM_HTTP_SERVER_VERSION)/sw.js > sw.js build: - $(GO) build $(GOFLAGS) -o api.wasm . + $(GO) build $(GOFLAGS) -ldflags '-s -w' -o api.wasm . serve: python3 -m http.server 8000 diff --git a/tqweb/api.wasm b/tqweb/api.wasm index 9cc3fef585fe42a342e9ea5149e44b5263a2874f..76d918edf9abdd280e3e0e010d30432fa20a9579 100755 GIT binary patch literal 11932505 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%0A5a86<F<1O%8s5ppfQc zjuwSvTQLcmxxuG+pBlP*8NtVPa$B*mgKzd~<}~dI)l@Aj-}tu`sv#^-dm}fsjc+$z zI=#5VtJxtH*eWo>>11>4_Hwp4tQ<FoV$k%0PQ~2g4aHM2a-_3rH*0?O1kjD{pVF1v zwTWZ>2m14t3O?XZkX|JNnwU7uydf#ja04WXkOtl1((d36MItmYZ<r%AT&T4SE>O8s zt39nckkG21C#}kPJ5z__x@N3l%fTABR066E*%xz_jO&hC)z%X;<Bgan<^nV#=oO>| zIRS3YCwgMg^mEbl`D~hKvMS*tTf9lrM&S!$Iizt=ERo^Zo?1Z!O<B<nZ^H2Z#Q~95 z<PkaPd1s;8i=qxHhL$l5q}=cdZ4ZOfaSA%a(Aek_GsK4|p1lyW#RCx<KhFm*Fvy}X zW9dbr$E{$vh-E}CLhea+&rLo!TQ1xU!jKpdv{q5j`YanhN8k#GGyoWo%nAH~RDe=+ zeZmt-8~>?DAl6R$zuh}BDeP>_OO`Yzh0!Fyyl?O}ad8@48M+qglS~>j>av--#++K* z<IS6FHYzPp{h>l&;mv4XRNOPseojlkV+PutAx~QlATbq+X<X19Fr+EK270j&=qY<b z>ydF68FNP0$jeZZ3Qo%`_;5rXu3C`N@Sso2lm@Mx?^#a|5tWG|nCqo$Vlw7Wa_xo{ zn0!s7VE7X_FOh<|V=+EcJH#{~ijwjfIqbk_8bJtF4Y5+N6#)kdipV%R6CH|MXSres zk822qs9It^_#|XX_%RyAV8BTPw##)>js@l~e&}h&N}-&}qc&p{gsv)kKs=Jsi-zeE z@!M!k)TKqo(!nOfYdOfR+zm`Nj;Td?5|5~kLNuq366j_Pgx3xnc`(&BsRWsBMTCml zW=VvWp)t9!?8ycVL_p{m^hq_sHYVVgZj3p{pqzuP1u40;aK2j|QWB4;dKFPBp=FPF zYmcd7BYrn7Tw3%aUesc?s4bP#IT2feBv7Eck9td{0;nJfz_zXPF|T9tzr=?Lx_7Ad zi9$8?s&(q>Q-wN^_rO2qi8cL<S8H*ab=JHdE7VeTNO_fz(}KI^PrXh-7y41Hqp1xt z$FnQ;f!LvPM-Mz#?NpnCiMT*9x#O9XSi#tj%GIMH8VEfge>Sc>RK}HOnz0F!75WH$ z(mJzTK|JU0)S9`aP?7UOJ+VeiQVA0CCWxwOSPYdCaO07wN_->-M?}~}eN79c%hCQY z$v++ku($J6)+V0WKP=jGC90{CC0ByxVBO>gR%3kP@eDbi0Z~yxj!)8$UChb@8px4% z+Gz-%Yro{5OqQIC*Uv%{qAL?BvaT8Hm@Gz%r$U|*08Jd^#Q<irsz-p7y5P<<{ElXZ z?eaqdEy_=Nk(P+UL@`zLwh&?h4oy*Xgt+2j#1%d=JG!L&78a`LFc2!79`M}a6%CPx z2XYY^5SIW3)8~ZYpxXkW+u@B^Tn3Mv$fia}h9=jYprk8o9h?^S1*mK|oZaec-s$bw zVBkKZ>ONa7l*Rq4Vf}Jt%}WQmECXkfLB`nP;0irhleDNZI-Oa)&(WzN??9>5_jYgJ zj<d3&%n4UQWVIQd&^gDvJtlUJiG+IwIw2PowShl`VLD1Er&E;R7{-jQ&xaKtV@eQG zw7k!UYBD4vTl|b7fIx8&K0CUP1P~%JF*k~o%P|&I3*&<ay^!7$7mNm|e_Z+K&nje> zp@V0OJ50cPVdc#H2)H?TSR=+)>lBpiw|2>DtCM|)YePe?pURshajs6)Dm5gHp$9oq zpH;*pbP|!Da`>58`j_CP_|WPB`%-Jrd%PFJD4aH-_5tim%i<ExFrr*p#Xjbhl*vnq zM}f2iX;Ywr!omGSq|<#gZELzbnevCd1KUzcS2W5=YhP3wwc683?T>hELtaMCB*;6; z9VwEh*m(p@9NsucjEtIWMaJ76KkPhy3@ZPacWn5<M)FOwO#lLfh2BeGiTB{->=WLM z`6L-5(tZm~*a*3Wq`UUC75&X4;C$LUFL?O2(**lW_#b%O(h5E_#>%bZa`q6ZU*$r3 z4Gw=coOiT=bUMg?D4?I2V&x#eo-!mr#}dlAt{E#BzCLe2*a~w6u!35&d<8ao1rxvJ zFbP`5h8QGMqW8wa0Qd~jhit}_rq6go)-wX-NYkez`bfnc*)NiFiS$yuEMzitaRXNn z>D*R5-{#GmdQPe)n4YNTlz8lLob19OqCdT7dDlq_hU>if#C4LE+~p-pTqm?3Q93w& zV3Ju!cnU-#I|+Le@Jdd8$;uQg0V8OET0zZoj-Yuy6*_|*to6{cFeDztQFWkXp>OqZ z+d?a;kPPrFkEQA~Ku4ZP&Btvw+9_z=oQ_(v-lIifF+{E9u7R?UtXSkyC3Yp?ntyNK z<$c@U7P)vHx6$50Esx#1;b%Y*`v1j@tF?*R1Zc`{gQTeBEU{zo@xaN0kN_Sx!H0Qw zKvlx|JRV^_g{h<)jp5-DB$GxuX=IZ=17}S}N0**;mY7*zh)+0df^#MpjME<4#xe9* zLXCJ8_~cO!9cZSvB&}=4Dn=Dpg$El9+k4i-Af(a$;!ME{k_;G3NPE6YONE_okT>S! zkneI}LYjhAhOQd>jst7)``B=A{5~-(h8yPSTszzk$w3X3OnmtB*kxS}91<S9S&m4+ zta*uC^&n9$3`}|oz9($N${SCDj6tW>1tJe&GNfFq@CQbu75LL9ry?3iMGU!~hM<-B zgF|?-S21p*cM$|#!SuIpWRZlrF-?crjaj@4ha7mcL1Vs1+{A<|_3<*ETo#ZNj~HB8 zSO6STSlH3!tGue&_RgbhqVUwc8Rdbiy{u71975nWEjb2%otHI{hX!V$D&?n$PFE4T zfw`Z{5g6<=FqKbfW)7>b=brf#w&t9MBU(|jng*Rqw^@2>`&J*KP5m4hA}Ae($iAk? zRV4oW?6yF;-CHq|dzOrI71Z^3(Em(KE?AY9hNe<m)t%mw$w^dVMck4Wx8o!cG$%Pt zL__x(W-MdYZ78auhRraR5`&iO<i%vn5T50!<!=;Kpo3Z!@NPAyw;mzYYn9a?3bIeS zPR}6!&sWSM8NLHrkzuIttErVYHJi<px8CE^d`RVgYPTj;E~}g&D(<q%>F^a0WQ=sQ zxS18h-4d^;r-rc?82E@H)Q2paK`27?ju_M-bol`vhe-pW5{Q!`7=x8s4>fc|ur%1_ zVei2ZjDnp&CXZlpFFVxA?C1l_IBF0WL4E`h@!RMd<gT>tL<szVH*Q21(x09PrZ$3# zfpbI4;Lo6?86zJxzRq+ecq@8q_h}%Tc}v8cb%FrSJ;RmBN~3Z@r6N&Ndfei4b*G8m zVdA4L3ztqFTa-=5rTD1N#iGc?_6uY{`)uh@1uFs3jyy|~FJZ`vpNe>VEJ#Q_cO9_q zNF^a&pUCy0Xs3rWrW3e+(#siKPbh>DNT9OBCcqO6Y(er>(*P%0g9s=s2_{a9y=aEv zp1^dQ)nU#GvR||Xq!i&#eJqBeA`^lcmxNJNvmbT5;`oc+SWCFfgZJc5I+%1AY5tcA zwe(cQ`#PSg_)4J`Br|e~&Y2IsR;cEp*<+n-#1NW*n3dp_X7D|{(t<9f(UFG}5r?!b zciYxbf)lteGE^{}P-4hD#teNSiiQNoK+GZW=3=^LTT}LvBIJxW8Uq=`-m8%VY@4|c z#DHvV*4ZW`kw|V8>s=b(R%lbq!tIm&Hs?!d4amaw4h+SI{(idxwmoRS6d+}~EENzt zv4U?!Wp;ft)-c$r@qNsU?}Q;{9boBmo$-p%<Zf&zZ%3kil_)EM=QtU<+0@x4#-r>h zW_ePg>Ah_8UiNB~iW)CKHldP|`>64KvW9-Rz00+ovZs11<q%h(a~v4fKrZ3MGBDx- zN`W0fZ@&shl2st-v{j(tG28WxLgJ#0%~;8Z&7y(qiNF1v`Xp=ND<XDt^73%kWFIDu z?VusIQ0^Hyj^5}18if2^7p;|1QL+kVSm-uq28C?#ZxF3%A>eA`Pq$d#5)!`IM`#v% zU5gOQ&*g+mME<<-B>RPqPNIN=l_rtKP8!yLG|jA928pY^A7e+Hkor{Eg$}DkWz`k^ zQa@Jor+4QdR)4I5kFLF(BQg)lVs)QHWe|smkksmAB(>r}l{VVlHxkTX$TIkA3=A)Z z{lyx#KQ+kN!u|-+70fh{m($D<&I`yanwg~$3n--}Js?f7NQ0tT3K(cD0vz?LQN;rK z%YYMOVzjLU5mn@`6~jG(b&%J3_UJWlz3|Bc*?I)oXa`~_au0A3w*7du+7djcEx(Sd z)0m=A$!kB<ISi%(#j(55PXfW@AvE*jsCh6e(O#CCjjw8^kbwl&m#~f<WrezMMrIJb z;{OsczyUK;RgVEKSmWxL0tbp&Le(rpI&kx-c@3&3cMTNL3H*U}I&M)C$alr6L#>j% z5IGg>!SDOHDi)+>kq$KH;h`zq6BePNYWDbWpXkO2Ee+$PO^VjIFkT@UjV`$+=oGx8 z<c99BxP>_|w}Ltnu=6KSiYq~aPkPWg>M8EK)=^LBmd0?U14dCQI+w{u7O<g;O3FEB zeVtld^%~?+UgwTN9W~5#x?gX1q0WN*^tePY?AyGbUiOoaqw*2n=hbXh3zEa$;nfO8 z^LyzuKK`G@L<Y*2Rq!#c7f(=zBb1CVq#+CkV>DG&F1+x}Gm&ZKth3KP`y7OlwWEcP z2bh|yaxRgl;~|+?!)PIEfB*t(AqVp7O433G)@W25pXepUd`?yggN2l{t<C_TbM%oM zL{J*JQnq~yjpUg;wL)NLz|O?oMB@_>8KhFjFvN{YG#_fEn$yzbaIc&TUaFHU*&#?i z#U0dGjNLx~TidfFF#?7^(#H@$n5P>3oCeMMj9u%?5WKYrPvyTio;0$k(Ic@(^bXQ> z-rraxzh8{sG)DAeT4<)H(YF>%WD)-?0@0wEZUD4;Ep9Yjzh<N#MHW$vScE%0L3W21 z!^?SGcIoi5MAllub`UY%-#Ct=f?Myn#-eB%=kd}0k>kl-h6fw`TNysS+89()PWSOJ zN^~~{gCt1X!tn{wzP_2RGhE;)`M;s8(D6dqg}w`Ar>sd9*w;924M+Q|29s(X53z}F zaP|fm&XLfB!H}_M8CuW-%eb&Q3V;J(L3-^CLj=j(jEOOZPA1zMm%L35F(y8fcraoP z_$b$!+~Qf}9i38%QHeFW3!_1vTfn(U%$iVcA(8Zyuf#GtreebMu$<*=VDUHraL6zb z3Jhecfg9(U22Zk*A+})}w0McRf!IIQ$~5K=>XSG(o<3@28s!IBXw|I*>sHD%_Bjd| zc_pW_?IYWSXJI-vvA@uShLvGe+IIUup$?1)=tpnHQ%<l*>boBEkk`rGLR)QUIjy6- z&g;C}>v&QzY7d>Y_&@e)DX&`DVOH<=YRAH>KIGL3yz2e58C2WyD)5&@6?{yx1_;~8 z%->G<gv65#MUgo@T)VCrE3~Mz^u94Pwn`$(gEGij487?RM2A959j*y~pw*)6t~so) zl6vmAptRDomm=lm-n(VAqn3o8Nm6T+l56ar9uZhq$~#j<My`xF))TM*>S+R0QC8Jn zU>OkT7LQ5OcoAe9a6gfNn@(U$a=?kCISO!JU#MW<W(AakhOYSrNO{a#oZb?*u~7ME zf?1qxOkl}Yh#bo{!~&Up<|FxQd^A^{Z<-lzu-PZ3QW0-4oVIT7tzO04-Xt5cC+YUK zsBy9DFTp5q?heKn-~;EFZ1bJolqvDYwZ@iR?*%Njj7Q1ICDlL@VMbO7an@V}g@~;i zy&VHOaEXxsa;TFdLreWFW2crN!6|$RJ|S&R@~P|tvlLMG5ffwC^k%(RbGFEKDLwkF z9*Ac1hk_i0r<uAHX8BvjB+I@mw}6vn2h&tbcX-#9YKeBb@>Az!PjySlZDJwhq&C5S z*f8C)VQOfv&5qDHcp4ZnG${c})4&v>n{Z)dvOQ3n%$Al#$_^{YzKx71BY=b{%!jT5 zkqC3ai5tARg(Uv|81D-^RvMy!iQp0QhmdK_sY2T>&OMqH1V|e4Fp5{abEwVH0E>l& z+QbTm=9;96K{8@bBHS8<L+KluCDoY!K<N=}k`hO#5jZPG>bA{<((tXs=gdoKVkbsv zG*S@bG6IpZhV4EqqYip9x`C0Yqm@FL_+BtQ@e4H|&@P7LdQnZ~IPPk)u=PmHtvR_h zaUu11lGxmN7Fxym7*rEX2PA>~PlH&Z)-T=EG>2X&QuJ?M=i|0jfbXW<zn%KvZt|+; zgEPMk=N#x0gGSYgPfHZ&YdT&&78#4<4Y1-7A@RrXp{HA+b_C0575toE`_Y)3o??WY z9ky2X?L1?z57NjQ{R=p9WR4<=!;vPYmGAY+mYz!ts$~{uu#9<Rw|97B1!?Lj-tD@O ztqh8GDk++Ms;0k-6kwq&WIAnV-IK`<Wq4J`;Qd&^a6_~5j^=kLQn@55-o|FJnsU{2 z(`@#Vk);w<haw`J<cKgtM9|QEJ_TvgqQKTmWe;KNNF*sueu(G^4YlqmaVW6_*=5{O z+)sQ+ZYllqRmg=ycTsWUT<v2w;E1KZ?24x}I^ue-Y8xkFAZ&)%&yKz~dQn4PN}Ofq z4(3O|TfMCU0_JX}lpMz#gP1XpbD%Qtsh$O*XKkYOAJBDFP!;R1*HgwzBp7uCD?3lM z;z%ovO_*34yxnjwf+8x;qnSc5q~_wWQ!#*pa0csUBRhQiV>mS?`n_2^N5PnvRm2u6 z<U)Kkb10TTd}A~A)<VdM^c9AkR0ZLM0GTU2&=SgZAk@-%CNgAWEr*cQByl6*K8Vis z6*kc12%bWmm0|6@uQ03~KCE5pEQ=W@WL%*M1Wxk4m1hlPhuFL-@G`}`7=n9@RrpXz z?(w_7kb+^S_qVlMWNp%JX%qcPP67;?u~yiL+4eiomjuDf_z%9_#xF8YAvpd<Z`+ch zVl%f}k6ABl9wSi^OXbq+svqSY?k6Wpd#5***PgSjyCp<J)q?CLNv*pIwP5H4wg0m_ zJJs4#sOA3loASD|Zy0PAz1p0c1s{0Y+i!`PWJ?HHXc1e*yUj%(YzNwn&De^eI_^8i z%x18f0t6LVK@iO^7eg0jyyiZ|MsxX<Y^W_>))tV`c$pq97fkM^i?6fO)<IVG4Pbm> zg@y-4DoB(kt=m+OE%TF{o@Z8ZrWKc1&-P&6l7Lyl$DdG_UQRuz(x(FdC@B%OJ%WAZ zWF5PMkwcVG!cHfrVb(Y?!4(*1?9NyUq)w>_H3FG^#fYI|<w_VQ>uMVuq))iZoW3;Q z300zUK}#eCGJ!D1W)F|=U~!EKIETUIwPB7W*>kK}I^sn`2Pe$-vMsX7DNJ{7&#?M@ zNsjn-re_Vm;NG|OLVgVzE7~C;ZhZ~?8xm?uG}%MCV_W>nY*yHyW6>(3-vM@5P5FJe z24S!+=j|b-M3*@X!vIe`)5IsF&=fXn<|_|i;|W=jH^n!mP+E>Zfk;}MSGo;u^0Dt6 z5F)Aa!wQaiD650?+gY}FwwNw*_SWBl;6;Gs2p;Su3AWtfog2159`;-PT9?RV@H5e~ z$T*y*xGvIG?<%ya@i?^B$Z`;YMrEmW^)0}$F}Nk49DSPfLmi4@*w(L*uf?G<Eny7B zDeWzE&Qmco6>+?x=u8Pj_lg}{$7FW$ns`n@2F2cPcw57Kg<3nl-|v0gDkDCQR2B%U z26t>Mi8m1%^+ZW9m>L@%&xcIaCc;0^p56*R6wBKamF)rH^LLjw#O9gO6iC;QT0m1o zi!Gi6T-S_^84>^jv=!lQdJ}vAaf6<6W4$bRU$&TANzea8y1v1i`*@!qG^ZihoN&dB zUh<1tl7<rjq_d7}LrIY8Ca?LZ))ZJbie59laG3nyST3=^8pw_4SOt6-SQS$_LC}n= zGCBVHuj`rsBZ`x6Hg_fqLqqE1!&O@u-BEMJ5dB!qmH^e16W9u%m!<W&YPKC2ImP*J z-$BB&#tgFc-~0J{KfmY_!~pbU_vzOjywZH0h@F5_&z_?=b2{*r78b@YywckEsTJ1n zaaNtl>X)pAgAqwUu`cjSH9`A<7$yN<P~VT$Y9VmC#T*`+93F?1x}6|Ii?iXy3fPZc z_)0HqC+P@k-fAkw)gf#|@xEv#_Q}fR=#v9zz!S62X^Z=^$19+kdUnN*12>zyWMNob zPp%Q1hGx6uD4VonPiEx_sD}JzB^)YFhP%~=YbHmkw)?Up=p2O3$Oj3v*(Ub$T!lq) z$anGE3hj}f45JCxnVM8w3SNzd3*r^brY-lF&i(kbWT4x9pdUOgvKYAu3*#h8w!g;| z10%IAB&T4?Dp8P07xo$&2sf~)7|)(+4HDTaAXiF`fD!Rl?iDg)9zWm(yA(WP*lzwB zQ+tsQQeg?8`RFCt@-<8Wpk|`yVsNSs+u*VQl%fF@bH@d23B;~-h<%|;AVxzrBo)c1 zQHSZxaB%cVxTti87io`d{NiJ!{y(NZJim+zO7xrxKCb%8Ax0k1Z>#Dmrn{;OAAF3P zFy<hl5TQKYmMO$mj3S|xR;GX?kb=*~y{F};91b%6-i~EtOA0I_c4jOiB+yMAC>w1X zV{%)S@DmQQsu7h>kl0U^^<W~0j|OKIATsArRu9AC2Cy><mZ!_T2b(xUWPzQk2lGx9 zUef~8@JNV~WNfi{PEd-n1IPwR7vV6K%|aE*_TzRRHZuyD7L?(nn6F}@Q6oWWBUxYN zqcM`G(hU01S@V4SQ@^?XqFTcSi9VRmXg^L1pVs>5kMZbqsAd&G_NbQye+#_{sH_yv zi8AgI4;<|grQo_1bOazifV;$oqF<5{o)iH|<4F<W`+-bR`~|>;UiafWPRQW9_k)|r zLqFSeWrNs|SCPwvft_B{gaL{XrI{~v>wRlsTaN-6wjcCqiega!K-+ChOgD!KnDc^e z!VtTe%{}nxn&}rjoXR~Z`>%nghADzp!UO<R>VS2K{{$ve_rWsNo$ZHF2f?@9o7ONh zw~Gc@^Df{RM1o3#NO_Xdv$({|ZN=STq~11N8()L<%{Yb6=vs4_B0B@ya7nhTwczm- zV|*}hI!=Rr)WuL4ipwy?WOI+j`S!{F(D{OBEOfq@$Ue+@_I^xlMy9ssqz?1O%T~l* z=&Ua<%vwX-p)s_d^;n$s37j?E_24+!+=u=otny+!qD6(P48!3u&iV<gbjIrnyZ>n> zjeFh$w%Ss2tn(~2h?l9tbxxXePh%7gwN-Ks<dvNI1oxEx!|od3?ovZlrxPKwVX(Hf zs8CwKJibKndtEaY{F<I3QgT_Lu@Me!T22@#pfT-0|Av?pqODYSOdwg<E=DZ9hs(W( zBUO<M2shbIcHn?ekz*ZVT?h@7grl?Cm=fKF${!_#lw!So0p~#UZgA07XtshEmYE;_ zA9e2n?^jjai~k<yndiZ06s*6K1ULbN6GVv`@SLrbXw?R_HMX^luQvU+w>P)9kMx$v zk30|L!3iV~9+fB{Q3wQ48mqNOMH{QFvBjEJTO+>G`e;;aa~1V|zcaJe?7jB>{Z0b( z-+NC!aL(R)J!Z|CH8X2w)~tSFssq2eJwd9R1yTDS6goHI`RF&aW1V}{W~WOf8mxv` zu^nuGUU74&qM8I`D?h;0F}x@lD@f+!c-f@B%^NTi6UC6s7w~SnHm%l-pd}D-P92Er zybZH|Q^ZIcQF#E9qtvEonpalcSQ;h5q*j#B`TA$r$*v%EIIZ(9(EC6QKO#>$&&%Fq zUL=TONOq81qUGaHv4UwVtRN*L!*(R#0_@QIS9OU9lVZD+I?h7FAmifN=rzBuckBiU z?KQohO<ww#mJXYHmR23aOXDK#0M*wND%sEvm8U>9^k2?fzbm-PDa0~<uo@&Lq3db0 zyF<@ayrq013fJU@3Wjba<xvSBYSl?T!d3zuMFej4nr5a{?j&hG#2rHZ#Q1{9pF~{} z%i+H4+37CjYH#m<D~gTyIrqj=V&~U*;oPa2DmS!}@Xcg7o!rSF<dZ`2{(!MOiq%?0 zSVt1G<hpjOP(blW4#o4h$}3PDYep2844QPq(NyOr0~Oy8)WVPSyJ=+u#UrD-K%_nv z89*0i;Px>m=`B78TLAEk5N0kl<uJL)iD2g^r^244lk;8r`a_&jO8>%VAPs1`ia+8C zf)3l6>%1?SBXN-(Q8$G`y~>#b2eH~7DJIu7E~*#Q`E~8s-i@kC>MB{2O!WpY7pFQq z4BsD_gesV8@F#4TYwaof3hxFYC)Uje&0(}b!PXvh)bMHvhTm#rvnPV`H7XN;c`m?u zjl*EFg=m7w)PezMixCPzwk&L|-jvmG1%@0$>XASa6yBFj!Rliy(;vjI5Wav&^b3&} zHZ>vj3kRu7He5O=K(c7iW6goEB!~7Zudp4J#Lh|U_LWjf$0@cQ``f8=myh`-ogdjW zRb|LilA9nu2qf1S(|_OtvvP#iU>hBjjROgJQFe?kF`>p`jv3@OOjw76`E{VK*ql)p zd&VZcL|w6*Q5VZa%E1zkBm;`#CLg30$!{$wr-vk?ikf<IjOVDT7*H%wCX+E5_9L8& zU}_wRfBRhEg06rZn+p+sOF9U@hx5u{m<d_*RHo&J7VFMa@uAS0abqd~ey)aiSXrEl zu<$#~MQqRJLbWPeoyJC&=TL30a7qSDB!}&$uhXo(H)k|i6^$l&|D(<T+E^pdIzA`b z5u(FR+h%(0umn}-6B;OvJ-^&GBr}YaZG}0-VcWndHWe~5_^TbH{1jImY7hnIb5w9D zR$HIUaJO|fl}zsATxYSl+&b&Beu}e+?0hG-bT%f4J>jLZu^j=-<F(V$In1Tg$><7Z zHn+wf?xDDXVDss`h#pMvO!0>Ma-){MQq~c|%3$t;aZl`w@#06|1?I9Mp^3W_=&D>~ zo7=HJn+V<h_#$&g22mt^|Iu2?LE4UjJYAd3oEXM^ZZ;`!=m?8lLerf5-I2F#?lwW) z2!D$MZWAQjW~#zqfKA&~H|JybM+7Ec*W10VQt;VhUoZ!giF}+3CN_7{3kGv@!V6}i z+kAABH5=Ozz!O<8`{w5OP+8G*>GN3r!h(ANSDS9q)WE6{eR5q+4C+fxkPb85a4y*} z@(7pRu%Aw5b%e|Fh`C`QfZ*M3NTeqZ`kWcF<fd_`>)Wv*Qy|V%$Ls|39GWe7?(+<d z*f>_tu8<~Y<K5}{?s#}dYoMhSo=7{HD0Q+B&=NwZBdZD<!v)%`d|5r*9B1MNJ;^7p z>>3>Td&zJ^KI3d8+B#-Vw&Qhs%^U>9*LXo&<r@6Lie7C38*bKvHS@EM(r#}|Lljq8 z`D#|9cZEp;8l@8slcnJ?LzJmh7-6l@BDQ#VCM;Sce0Mf*owxUw>ds_ls9?q+x`vU7 zMWI>%sN~u+;j7$I$j$-cI<h*5Ya0|Xo+ywvcwaXEr=l;LnnQ9AqY)GP1Q5(c4U`=T zDC0BVqetQq-a<Yd<lBJBLwpE4^dF@B;@YH!RV->AO=AUa?f}wJxJ?59=-zt5lws5a zd5zF!3kZ>8rkVrNzO9bm?A(JASh1QVC6!OB_-XZJkZj|_Xz^(=iXN|z2L1z0KGUSN z`!c$G(nyha`bfU5MjyH4>PWq;_;Nco$sC+G+`w}UG?efVt{odI&D$N`w9Ol@+Om1u zjWwV|j$sHLk}&KQ$lporPH$%C0PT6R8P1U%{E8kc6Pn9rCSq!@SGq$hg)87xkM`!@ z?Iqu?CFwQH4t+F#ubN6`uk;?TWX;PdRvBCZ36fO@Hh7!1&j^L=(^sBjOO7)%JE?TH zSF-lSSB3UdJ$s**e1|qqx2;2ZkAL5--^soFI}%(6@OJ5Ub+rnGsYy9ZS>O=>I4%_^ zO1iRaFwlicHp~6q#U|Yfh@)1BsTnWz<AHdI7pPcn$cG((G)hvV9hRG~^YLn$&3^K? zc|u7K{XXDLn?56PX4wxuo7aMLt{iIzO0_&Hc#5}A^>sW^`&fi@xemnkFV^%2l3Rbo zJ*t_NB}x`zJpAOd;PCL*ym`!nBbQA*8+lPpnj;%35<-AHI+za*g-NhI>p7&Pu2)RO z8a8dL0iH#62pLff+uG2sD9x*qVJ4&~0k`>B4McJ_1sqI3i)cN>?~(aESr51%qp;Sl zpO1(u`s;A^YAw9Ap}SE%anGIy5TC`sD{!+vy7N>t(kGmZ!MtawWM7R|U!M&qX=<u< z%CJS@E4B@YJ19cGwFLbl4PhLepI+sJ6wU#Wh87mpY&0SR*x3j=<1IcD^%&y7*U*wA zxM8%_7mHH$>B(kO6XMwyYCS#KQ{!i9JiVgT67$?-EK{sVL)co6<Q_$wGNe?{*Bob` z^D$`*JX^^KXb4zo2C{OQG%%(nL9~olw85$r^|gY8%VD^tDzL$zDzJ9c3;Mlr5tnEb zxdjmFks$k4Z_+TxCN;o#g^|S~-FTr1$oQ5uY-MtTwl{Iyh;`y{(JipVvA}4;IEfdR zfIw>HFfIc^l|a&%Shj_9xtoaGlAJRnOCaaOh29vaY~`aSB8I9YF5@om>TVU%s!(EZ zs67&sv9jxt%SC$|C4Ik`nihk)L_b=_TqRAIaj;<YTw;$<KGS7bZqU`jy<2j_Dipe= zC)}p6CySPwm=@R8%-36p&c`d!?MM_{HOA0&)v$snI>}cyb^*Ro(b0B3&XsM-O&$oI z5MpH*W(C$4pqORR<jc`)4Kf2H)bXc|Et{CoiUxOp9IVyQHk+}`#6+of2<z~e{vF;7 zS&R)wx*~gutgw#~a61l4h{}BJgC%fqLW+EC7Cfdv1T*273Z)~TH!h88?oGC-fnvI@ z)ZnIStFN)Y@IF4F>Nso1btTiU(530>r@W>iEA)$*0gTB0jDQ0S9PM?w6N(5+6qpCS z*?&`trPfp3fNmCy#mgmjJc<Nm5dX<y#K<udTp{o;_@F=SeVAfM)g}AH*1Y6CGXd<c zy^?8G^s#V;SC|UJMT$o?g?n#*Q>rM|rf6OKjDI&pi#m$eKjhy{(W3Pz`^r>aJJIwc zUg@)5DW{z@kbJpEbmhQIL?ufu4}Hk%zFVh2?e1VaAX9P%w;_&yiey~3`!m-)rHh5G zG4`MH4;sxYYy6=tLQH>*oygtY%e3w|Uns|Yc-cFz%%mDqbz|mv=Z!8tAL#9%$UGDn zw<$6gaHhH{GO>m&64o%j6y%?*Q}BAO>5G8P=YqKj(L#b~(PhexWg!Ol*fJdd!BmjA zSK?PHJSW<*XA_<rRuG=L&(1A$NE_XAGvawM0nnZ)j{>}{rZ6sAEk?b>NKRL3^-`Dk z2uZ^7jHj2_BPDu3p&{fv>5Ea1BT&7b!UpKFV~Ve4)(nr&kw;Zsm_qQJ0DwYA0m9?D zua~or)I<rsfBWP0_?CMs-7T$wD@Zv-p8N?dXCPl&9DC4C_>miwR`DZvy=g)G2-zv0 zogrkk#I=gt?EwL{ZH5llfxk(o7#g<CO&)FaEi_0+QUvfNVxu&XGxzdT^H6PNBH3>A zUJdQAgs~h&Vaeumb5&_x$c$|hB``ZOvspU7$on3KXC0j(9SOos^07K}O)_fCF+;l; z;7f&(1~MHBvx76;7|7CYNLnVAcv~im@Oe1$`W`t@r#7)=k;P$n%Y7nvkyS0vR_}61 zjmxotyyS~q4oJqTLqI#>0j*%h&1YT4^gZ6JAwV;#6Vq<GfK(zufw+Vlqs=9G*!FuP zCZLebY&y%ueO}1~6fJA)D3wUa&K@SoEElwkW%oXmKRbJBBLD99O4dA&LbCZp{-uWh z_mwI>gT4JjS3Ac0OO>ccus5jSg?W6yOPU>nnL1n&{;7XA@hXSMqxeN4`G5=)uX@0e z69x)pm;AGnDkTKNLaN9J&6EroAMifRkioO=5^PO97S#V@5VW1IjC{sh_0fFDTQc>C zT35AtB<M=@E2Op$!?gw^(D`V!OXo)q=8a9KB&bIQ`_Pst8FE&JA_?SdNfaISk9u*V zYA*2X?yg6+KjxK;?5L|%5yFFB(g=YHS~k_y9`|vtWX)4KWAotb1v*0>{V-T-zNn`C zrGGa%qnhTUKj`0$&ge@kGmuYuIb$GJu7Vzwhm43ypfW74<yVoWxe6UDr0x&HGSZ|A zE&J$g`H7#K-~xI4L#2{0?|YB^;xA}&n%e}L9CSH7zio<~rHJ6#?4X++4j`FsCTw6d zx^&B#&0+<^vu5~NB4S=7KGST4jVTQn9&%<o$t9SRWy&M?=Lp4dX;+C{^Z_#K2n>kM zp>~~81*v?o{uwtY>4vM)TY(@=>R@HH@B}4==R)%m1pxb`B2|6p(pDM`=-I^I<+lu} zLGv1~WJ`hOa+2s!GX0ZY(&Pu3Q1*9S4eL9+k~J@fY|wlwY5rO-X)BE^D*M3UykTA4 z-#+B)yplD~eIuctmo&fAOIq_Zk$X$K{JSmWqG9}c|85IebuP&d62v)XiQ$Em8xSF! zzIpjRZtynpJJ8SU%TLfi0{CvPWJ3%)&=i9=dPy51xmtGZy?G3(qsPa6lUK6l$>6Fm zc(a$Z=8LTE7XNM-l(2y)a{t7?8wQ2veEHD1GGgIj*@9&BZ}&<ip7YP0&nbYXoJiF6 z7sGln<{`XYqv?r(R-#X@YsU(<rda{ygk$um0hp>XkCs^UVGGn?3I+e{q)_;TZ1hgd zHlvb&wdEjcP*#z>7G3qDD?7RX!=6GD*KS3yJC$7)q#smqT~SEG2fyBXQh@}KkJl_3 zN8`8|k`uW((A9yDA4#S{6dVmV#_5EI_0EJ4mO~tK%ZkKf+0@s=H?jEfwVXJ{LQJOb z>UQkJrjHy(7i`%Mx3#LYI1n=7-RuataY6&j=fnQQ6E=Krhlj}tmX-26;x2?RRs#c^ zh{rS!VZQ;U(dv;r$4uzP+!XwBuz~qvS_!kn5N4af<yfqc4^UcE3BY(%hlzTCs?KUP z#@BRPaJ_@GRo!hms8N$}!%b}2dc;*g##6k9up-(Sa1HR7Sq~2$VTD83Nh)dP;Gn}! zqJ(9tcsN{EiMAP(l&UtZTN`Or9xP?I5e=ya_U%4OONHwmxC0EBnfagWfoqKMAJ)jr zxjZy{#+C+eBBbw4?joFvA7rYL+q;>jM(tKrhO2xY_VLL^IiBXLfy|7%(dIHf*)-kA zPD9tm+YN+@a9d7N-UIWJu&?K!Fw-B?t)XVaJd27=e@9J)EFG1iV{)gqG`C;peu}ms zI^s}hcWP3;svTRi^>DTo1i9mib}kC_JV-O*bfah`WT5<G($Q`%lPGnM`a2mHiyy%| z?LWU-{3N-omrP}<?&nhZy3GOot`3_<oEXH%_R$X)qzp5WWZS*=F|Ez`reK;AeF4>u zpoK`pcs?4Q>HpEceI9UKMwsGHsu}-GX>wE<1pvw!Gw?Tp260Oo_YE<506d;?0Fqo~ zcT?}A*xwu;&^g707YI6P4A02w!!yN7cREsz<IuEN()MM?8`>SRSt6FEsSjui`4{W~ z?o;@>W~p@^3Mi+{XiKX{4#w*7QVCY)b`q)Vxmo7Luo8~dnz^)gDX}b-bNI^RN_}OH zs~a6x_bd7r2(FT7Ov4Y!v?Ct4hre_f)I2k*(LguY8W0XgXA@u3L4k<P-spisLVVt+ zh`jO-4)@_U0c6gn1fw}iE^~=Er0*6bP(<pEpa4B>y)=^!_ex6p)6kUtN%Kuaa>>K| z9v`qRD;S1)9z@!ac6+KOBIYl-Ea{GeH(3(a;aJ`<w2fZ+`?9Bt-IqQ&`rY~g!wP{u zn?ds|-_rrtr^Z`8%6%)@T&c!f{MasKHM>aQLOgS)qqh)9s(x%vfH?s~+<E5I+RNJu zDC;0dG=Ik+CCQ-FfmWcmeKyb@vp}N-xeq~H{g#LH09xS56E*_?8gdB&o(K3^4BP0V zVMn2tXDw;qBgBO%4sd6a=J5;HmZB)pjD!=CN|q)Y5&NXs!?xyq#U}iO#_UZABlxgS z%&s{LY6wu`PGk`pQ{cK#9<+hhAaTLr(;|Y%crFrS43o{OC@dL@uM%T%zA`@Q@O(v* zK+cwUn?mmUbW`%6*RkC95{uKd&L_N%XQRh5&fNziq?w@Wlcj1dx%WODlKa2*a$%M0 zC;ETL{~h(3{y+(!--?GFdFq!}kl|8dXaV@)mBjE~AzK|Y)zNV!H&Lncs)b-$+(?X{ z)8$5DUP_EW9Q%P<aPE2H&^rJ8=U(u<=j+|XFMQF`i!Qq8;unvNXW2_$ddVf1{OqO6 zUiPw=z5M51@yb{I{BlrI2etfY5HO}gyc$LQ+)3GvwZ0u|7}sG98dDe7&bDxnmD$-m z4c5qdW##d3_hn+$?~&lwpO*@&66JkMsbNBmSX;>bDKXS*H_vOF#@k_@dimvWN7ry2 zmSjh|Y@e{SD=r7C>$!Zr=%sc5nYSsu3Y<jjE6eKuOK)7Ezv-0%RzsBEpQ{Ax`Vv^L z$b$ukO#!TD7+7%Q;AgIbMTWFKx*Dk35NW<@WvKQDRUm8TLP1b+O|ocia<KNRw0pUL z1$PRafaW@)O8znq9jY7V2ToqeE`2F(jxkUA(%RVo1<sfe@*2dNn0#a?$~hE7_^%Io zLH{_jn_hyZDsy<W>K8Q5f!;C5s4L1<$}_l^d$YUhA^@(bqxwr^7W$Uf77?Q5tzJzE zgG<Cj000o^qf3za>e0Fo&JW14GgKPLexxaYDP_iSm>kjyB5D**V{FrT-9E>QSzum_ z@7ebYCX!Umy2mS-iR9u!qxbrEGi+Q`>=n0*gk@yC@;2{m_rr^Qg6*`KgL=PLvR+?U z=oQzGghs7bUO+CZjObf}+kEh}Xt-~D3z2&v(e$XI=@UfUg%M8_Y0oc0{2_1LAbuVp z?v5v1HxeK+h{aJJ4L~3E?*_5>ynV>HcqBAny)I_2kGwZ;z|zgGSNf<|vR+3Ec>0)s zw_dpq>WC-V_Y5qpodt4(?m1?(^bk?@oFbAw<t-byj8~inNuTyg2JYDfaR1uB8@Tjq z8@RG;!eYWCkI@S+lgwXdsm6|(=Y3ALvbJ&Z867A~3L)KG=U9PoBDAniAFSi2H7JIK zL0sae`k34w52tcARl~dHrnU3?$v^RbXpZ}Eixi4dwVH9~sjdDA{e!)tC2@!Q>>Tmo z7>=-c5ayP8TE6Th&AiAH72eXr{@oC>fLUvS8RKThI7Q+;2D5>_%_~{t-7rTF^zeTp z90%=Y@`Z}Iw6Q4b7wg?7A_m+SEwJ<=ks8ej{sQL)>eR+(rxijoqQpC--*iZA%yb54 zyAO6-?%(oCMi+GcdZXX=?>2n;d4(?Iw+u{%DZKIfM25uDaTL&>`^F#PEBaG~VDKCC zlR*t0R0aX}#6b4rI(7Svq!~Ip2C|<h$Joj@(BEw}{De(O6q^J1BL~n%E#8OjEaOqH zWTU3{!5jUtf45On>CY8tUzxHD+VrwVzT6GhS9&GuRie!zqgv<RtygO3aSei}5_wo> zkbF(KZlws+Ca-U(;P>o!SD-d~B?F2IzN2EozZ+0oa0XPK-*bbgP>FrM>bxp|xhsF- z!yde|?cP~IS6Bawn(9lHCQFrEQ@@M0<W8qJ^V%~s<k__v?PI}gj8S$_PQMkTg(;^p zi)u4g9-~1CRff^*3$-L@7FSG#=B6}Hj&955%{Rj?Q-IMRi>V*w#ZRKyjnbL|b1b&x zH2UkFjE6J%(xf|+2}mt_<}oY_7SO~2@d2Am|8m41Dh;0DUSRkVMTep@kx71`VhO9t z{;5VEBM-}Qa|R9bb+kG#*O6IW31^s50aC4|1rzV%fe<QVsf%Ev5hQ##I`<B7umTJ0 z#cPS)u<Hhh*hSYbk2`sFTWHSCu=B078Aq!U!yQwD@K&Ghl0o>LeIVA(mz?FvwLz0E zjv(g=b~fp-1IZo>G-f1AZzyC@^jEj*W<Vjei8+Flqw2jbyU#`+J@)~rkA8hS_V6L4 zVge&(Ku9lY#UvB)Pb3ZVv6S8wcX<VXAJKgTy`s@#Xy%WVd<AIC)5S?y#aC{J<ST^T zMRTN8gsn7MBJCA~Z$8T@D~{#a;3kJC$6E>fDp#iYxLh8crET_#IsVF$$u?_QQW4jW z1sqsK(R5I8MX|@Rq~cYjip3D%tNpuibn!n{WuMMtV5?U%48UYp&%X2dyq2uX+DDHI z(UL*X`Rd=d`*(wd(Z8U~vPDUqgP&zOo9P%j)&{P+$LhdOKCq+X@^~ZwY0HDuhBKIP zd8Elga1&RkVde(bz~qA#_r&~t3`<hJ;{(Q}TcM^!%96DQb9{BAELIPV74X%Fh~=4K zi5miM8PzVv;ND`eHJB}aFNAt79z!vF7z<Kq6!!1T#@%asd8{BiZz=1<iCETKDW-I* zkD#rNI|3u?i8?;k69g5+lbIFAB<@loIhoeq+|xwV?s`@i+a}-3aW+NZZmDUQQ?P@8 zAgE|Q?^;avWs?rxe<<q^H#KIn6G`poJ;<HXR~4D=$v%M)&l4tXY4)P6&0@suLWn|m zIFQ+ai60M?V^m77iyOt9#@4lCNn5E5i_QMIYsAcYuVn0oJ0@=w7ommjZKZObL`xiV zR)El9I1?eiK*<!Os)x$;xY0_XPcmE7$+OHfQg*BNW0A6KAkXI`Hz%tokV#4l*LYh$ zP+HKi-8H!+fO4eBhq=S6815t(_8)iTBh>UtSFd!fS2Em%VA#|^cAb~Z1;ctvJN>(1 zSvFH%02io*X)yTY$V=Qq+~D6W8m1Vay4$~72Mkb^i7ZMLog?q~Mz3h`AsV^5+9!vt ztbVPSJmCjHqaB;oAOYo#GM#q#+q=8PyE~{pMh3BpY^N<yr1r&)rF_*YXaE(my&%Zn z?hP9PWxqK2iEcZ$TfLG^aEMk@aj#qo!%t=Lo>D~#UOV_;x8B}Sszh~-)`6vosDG!I zymdf)I^2dj7H{+KHrrIoI!=pMyxl9>Y;#u<R-sNbwfeKcx@B{60&Tvl)TWBQq6P;= z%)z+RtJq|5r<2`xUtZ@(MJ(>%3ri$XoItBEv#d>!_--$si(hjfa4lbG&yXliCogcf z7ceNP8Tt2p{@vDOQ3<-ozgq{Q1Xb;zRSEjZEJ&>0CoFOVQVN?=(Uq|K6^~GV{zq^6 zW3&iV5JZdU{b^72b4?hnimdVD74aaC2JD&GB0nEL-W263+j!*jR8?xCAn*oR*v2?Z zyVFbB*SBLkrgG`=$lbj7bd-vd_^#Om>|(IPi7K>PFXG`_J3A`nSLI6cvUUas?P(xn z${Ue8+wnRijAaw_SvRs<=)=V#%8Q;Xy>xGzgL}Jfi1fPA2yXFQ_BCGIMu*}CReErA zM^#y@O<X$xMea@p)<{MVBGGVD?CiR#20C=MtGcY24mx&$I|sw8=f+cwx>|Bp<`%DO zsN)e1a-Z_W8n|RI^mCOeqjoyCL_hEFk_M4RVDIkfl2iXquVgv(DJ_NDTQ+^W1qElv z$PUi}kw{>*A!fCz!%B0s+$^r`>A@YT2y7$gq~zfnHReoEe+TKeacI)kfJ|SwJAenE zd1`~V1{~?bd3`0;bMcziNxnYXhYqa+x}hKqnlQogPcVM`$usx$4eUo0_VHZ$8G7{b zyu=dt@DYCTb~M->q{m;XnWAurFM<p|%!lAoKO#jJH7A4Ke$-y<4lj=J1^jz8w#cq* z4{w+E$-9MEVR<%spG`(KG;!x}ZM@d1ol>jCKn9r<E?3S2Pi>1>DmET6%%H=x@%uYA zjtDswnFhS`_4hk<{JW}`+@agl?`3Sh&Jf*$w2(;%;(Q*Y<X?yy8|T3@v6ddM4xs>c zCz_ZyQFktEBEkgd!o5DS&gDW8ypUPpOI&gz3*RC9fJ6AGLP*K92n`_^SE+46?0I^d zJmW~003_H?g++JTG2O~j7blZD1QO=SkT5yxDnbn)N6?K4j*9D%l=S>=5;4)o>yhM2 zHBDfEsC(`=fzy`kd}$Z$!}H?WC|pj4YvtE+3sIn1+UIo3p!#SaPQ+$K`y`ahNY;#B z?k|~dBbeV(3{$})j`!y*-CX8Vf%>5DM9V9>%Fa*pk@dFdF!CR2lf)AS2aE9eoFeAW zQX3scvRgVE2_&*d809D+6%g)ZdMP1_X+dISKscyPuxbfd8%toRiBHw<`5;lq(E8f! zRUj-FO*I0OwhFcS0n|yrMuhVYAg9sI-mYm+w53ereVy=1rsIWGs@DeP+P}(+nvN_w z<RcH|cXUrm279$v%IS~}^cMeaDw|kjusUNtN>W!c?L^UJ9T+kWS~dGyy=9yI{+SYk z#+A$EKV1iV0^L=$zP;4C7+zp{mt<n#U3O68KxJkvE2j$xSCw^Q5O<ve1~KaiQ&1aY z|8M>S+xzQ!O@GMzH1Ha?gHn^$%ZM3sB~e!vcBOZOB544Bp3W3Vh`~k@q|;7&*0X-* zXP(`{&+zd45Qw$#bcSLf3Tx3>5`Tqs0*t-7aLEf8cqL(1FL?>#t{8P?F;|zp`Zce4 z&1-+*7hkvH^}qDXzrvq4yx~`WZRN_9Z^X}=-u&jbyydNL{q<k}jo(=HoB!W${q}$R zo!|ML|GxTv{O<q!z2E<XKV0)ifAqip7({3s`$)4K`n^H41u!mC_1B{K_>rC%`aOZz zn#lVm^ACG_@TJ|Ji0a0Eydb$B?+L5rfW2w=hBs682F==vI%sduw!DE#lx`%}wIh_K z2og#bgaBDa%|04%55vjkYksp={LG-}9hakG&KmJr!rR6|f*K{!?P3r6Unr#QCp_jV zZ_mQnS@eR&Yfb$VfEb7#QxxJzcWu@hayn=Mjy;1thM`kUuy<xD!S#E1R|&;-hr;5+ z|4`Zo`!b!3)%FKDDO`;Tgdv<3Sz`y$26c@$Y4PEIAWcFlS(9$U<4~5w_^#-cDaD5$ z?a}zHV?DzIS$%j=0>Xb!nx*Q=c4x3HYN>n>O^F&RANpD|G-Bmai5AgPQS`G^l<}g+ ziWg&$UMrpz`JW<M24nCyy0F0$89I1VAd;QT4UPy4{{CHo7@RpG0^&0Uf9D5D*&*OE ztedgPi1|izx8}{*NkUjH+gyAL;oT~78Q%Thl|~F1^9Rwy4A^KjhMD2rzoP{Lf)H6F z_E`k*i2q;~elzH2P-4G-n|=oXFgy$Y@$VV(`nU4fM<2ya=6ihXw#<H8;=pHk9Qa>x z6u$*X1`(g#gR3KFa|Ruz*#;AT&l;Z9noUE2#`{o<AVp)xv4_7A7x)VN!eqb$$Rh%m zTIBd_9vQ&gt!NF1iGi7*eiMiz2`$CnzkxxtW?tNY*{Ovi0^%$rm$LccJK3Xfs!>e- zrt@T0&Uu37<vpgAYvpjzBdI%L_U!90o@OW7<Nb~#^Q91;qAz7HHw<74ui!3`G$GmI z_Fyxo>)F=@pI2}hT+mnsBTIv!crdn;oeaw0hcMu`>db?!$`}XhtwGr`Jy^rXx9CT3 zSbp^PZx);WAh0$|bMU-Tz$Bswt|1KGa>Evx6F=}b8uAaZTWE-bavI?v`+cJW1xl9_ zf`R0;zh9I72p5|*_^cqNlC+7F9$c|ElBj-_L=}hp20YEc5|FW?$ltNcU$G&Pn*V_> zeu<P&o^I#=pYzEw&jhOkn<y3Vz}B$G8wC0>6NY|ic#4FIK(&=DSjne)z@j5tBE<zt zaxSaZ@-&F#pByx^mah=dz;Sc(NlfFau7~Zy5x^9guI)0{00;m+6<EBne05hlI=<w6 znseoK=+nO+@$aVB|02F;Hx*)DP1}s3<I7&j^zL6MH2ScAH@*9{jK;%tn-~a>k-ZMy zD8P^Wu`k8WkG6n+<>bDG1m>`P!<#YKUQO7#M|>XjN(S3yg+~9yzZ-1JXO4fHy}t_O zOdyX1%pWB+$Xi)64%;`q8578?9?Tn39o4!DWHuXSk4z~Q(BJYdzOOq>M4adG^Bpf> z`1v_}&+hGNcmFr9WcYb`q0wXh-SG3W!uRj`ck6T+JMHe7`JPv@PA^3zBKAnYfYER2 ziu-=4=FhUb?yi|fN|i2=?k;GgaUVbMlD6%9DN6b@|GR%TY`g^D7uQ}2!v?5!JJ}e6 z%w;ScX4_jk?yZ@>W*k)mZ;I46BoSLbB~40%IzLR?_76*KGkD$TS&oL2z;+8K0iz0% z6YnPR&SCtKw`23mc=l<WIgffJo8OBJC+ra0>1OKA`LWk9cg|AOa4>%2-wp9EBAO|; z6BVX?<%Y1IF%{;8RuF@9m%|25)e9g_a9SFNKOWRm0`hiAXj!aK6CUM?DEO@LplJIN z9VgQ*!SIGxIR+i@YVV?vhj>l#4?AIQkeeKI!?gs`f4XaWn$2FxaLqt^cC}mAk|S}# ziyD%ji=xw{zq!gQS^MW(`;%$=S9?)wUqbS4=?ecAuVn3yTKf}e`&+%Jwa@5$AKy0r zZbWh}r_u{t;{^=C=M=tA`gimBon838!@pYxXW_f33uR?5zb_D5&<M)L6s^MFWaDYt z7ZzdH1I4?%Z#z)T_S}&U-AvtP10ZaK<MZ1wY?6X^pkZeh50dcD(C^sx((E_fga3NR zZ{`=qhZOdyumqG1MnG!i>n4x$!%{9Wnb>p~NFQa(!|aobqfO&D2%k#Rp`L8Q^EDv9 zvT&mQaHw@JD>Cr@U@>unyq8G&6rnIlI6@5viLAceF?qGRpBQp4IvTbr%E_nLF`bN< z-9r+h1tir~i*LiUKYkMn=%L!69`m%WXy5nhH)%AlmCJjCh5*|<2Q@JM01Gk{M78no zyP$ketCjZw&3&Sk->=O{djtySZG%>hLZLr(hIP`)r67X&Db7B^_UIYw6P-+kEP?z) zI^6Ot-1mG5eqrbKv-xHA0Y|VcGl|wXygi>h?rF)a{FzrWK0wz2@xMAL`9UvfY=G8# zU*#Y2@3x9*iudn-?%!<{GyVcDJaO6Bd_$;TqI<WW#nO<W&*lcScl=|-3N|iq`03w3 zkU0N(1xugcXSmz}JM`I0jRb=M%^s5xecU11q7<p&`j>JSs0uMxwMH;hE<9OSHMS1M zQaZK!NpIgy?TP_8zj3NMP5WuDRtkH*w*h0ZhIBT^8iju_p!S*DXy$^txO@hXz>zA3 zI(&w(jx<R_(?&%%sP0_(#v;x+65TV&^%61KNZ8SM4U<MMk$aKgM8)QdE!oz!0VO*3 zs30^VS7NX`!wj1!rVAzDFW+m}wRx|-a5PD?mJ~;E9vnqDHDyqb55zi%0J&}E6CM6> zR?VGrNXifUbUx05mT1kz&m^`W#}4s{TZ6Wg5A=xnYBfNCQ)l~3*jjugt!u~Hw$K^g zk?r_uexaY15c_(sWDA|paRF+Gv^T%OOIqBWoQ+!lKt7NtRT4IOC2O9sfZpgP|8A@Q zG<=7wtceypU+l=?Q8O^1i{+G(<6MN#L}>(2YTg?BCD)_NxsK&Lr5ZBWJPk$Vt`(XC zmb9XEdZm(NK<6mgM1r8J9YTvXRuO^qkei5Qk~#unH0&41t=QQZY=&xZWQZ>FEL4XX z_lZmLsVa^1bgt+EoQz<?pqA1p`WR<#h2fY1ZArA5JtMaQ%!!a)=VQ83Ih;lY!mttI zi24Doq;(*EHLhM(79TZ2PwlmM98EB`%Ul1kZjGNbbDZsw@yEH$&X;hHQ{_EAI8E&K z`bNi;2-$r*^V!CpopgGmS29AQYt<XQ$-f(+*+~khS8z9ADw76p@d_ssWj>7YgeddV z@wfOiF@YmWTA&lL$UYHK=B2Rm+Z|+^R`xDRDXqTX8FcG|>r>woM-AC64Lme>8=q$g zlrU|HE9VDuZyK6JSJXwK1QDo{1~y&(W?)MYy4RsAM3q-%GSwKptLB_!j6_lLb$*J` zdX~pQGC4@xUO#VDL9ia#cb<Re^N-^`G@!Ku1D{M7_!*?aw%&vW5&+sKf^(V68PAj9 znFz#la34p5-nw>d)O<mw%e3ZQAfw8SgaIvy?hxAaUuqOUW(A%UEtN2V7Y<_W%Z`HQ zMqWb(ED;=<{zgtzuK@hUAE%l6#74i#M_{(qg)}+(c8UA7QBqa}51?K^*dd2Rn`Vk} zgvAG-F`6Xf4kJ3`2(b=?!$r0pS!})HgJRAf&3Yh@6mx+Yv8|%(Wv4@Ib_>c<K;*6$ z<_zMd2Z-c*I$!$PB+;n7_iOK{NVYwOUsx;jl3@9)!R}<=Ft%3x4EkqeB=$EEzy)~b zb|(7NNGp2S#97)q97Z#y>kbHX#Qw3|bH;QWXJP1C(qghiZ}%3>9?h^p@9_@*Zk(C2 zFuUz|UIowyHm~$9uVkFL7*2nue>cv|J(1Vn>))+YM$J!S(|osAvQ8=CNKR_QjIt~} zGWMQQMcFNNH)-Bgs-(N63mPgaeK2=>Ni%5{cT4;HyCH)@lW=!n8{YIiUe)ZE6q`XG zQO+W^OD25MJV+<f?EX@-`7rjNIl(XDklg20Y{sxbo6bu4Uaw>`#?`K1^Z(0JBjx>G z!8V=@N^&UP=id#Lk{rnkJm3Wk%>F_Hf9l_D=gI}-^$+-W>wxh^<L!!&9u5RdLYAA5 zUeyNggWg_ggZHWYRk}g2L5%g(xa&Z-onruZ28r~qdI&@U=ckVW6poKrKknJ&$_PpW zgrD(wl%^LxBMgntOTsfE>G(Vrp7-dpgjLAF6WG5HO*a#&DoL{thZS^+YCS?^MU+k> zP-@fr4cE2fNG*(zcqw%QQc5MR#k&c&RD!dKf<DY=3kUO=U+-OgPc>YPHr~%mA;anM z%GfTsZu)4WUcX{NZMfbT3;!^c{Wbj53$r;?4iDNLX45u^GMke@zbN1sV^2q)U11{w zlH=ddBjVpSV$(rH8kZ2gp&fyk2GKE&j&lmcq==63o!0Gv)R(!*yUHON5y?<ebC{m2 zSaO2t`?+j79|s54X9?EB3D>xgURhKJ+U;8sywfB!J|Y_`EIsvQ6zi<>I;KJlCjJec z=VwqeFoWz)VyxsV8kX4P1f~yPnAU@5SE--#^<-TFtn?d|ch)f-U9u3U?PGjI>>XrS z(eOcn2>UgYfEP5D<U%sQq?YEQGGKNa%kL`}*OuEOc9rzBU6v?%TYSv61K}Ffe5L%2 zdB#peD^<X!YX8*?jeepIlVXa`t&vAca(X7F2<pAxlqh!$F;N?X1fNB#MhE47PeKIL z3CBamdS?&o+OeQTxl!4aD1xm1;C$@;7=p}e2<1S{;@UE1sX=J6=56HV#bWFRe)&PB zTT?gk6HnDNG<72%^+3&BQVAdBtfL}47`{fU2!Wl}H?aBa$*g-0>e{&v*bbyiDyCGs zVYGl^N^3+zQY2ITA{{MpamLY&3E?;vb~zSIJ!Qq9kL1-;%~*!LV+##K42-mzmP&z{ zl+_9mqyrS;ta~1X8@*r4qd;XWI22^N%j{{AjRpj*9tOUV9F&GSTSJwoqdb(objwn$ z<?s+Tz~ryzCX3_k4p>Z60`sSW28~_3nA~vV*hM`XAc|Y^?o7OsBNXTv44{^M?_WP~ z+YS4^@ZNJdbF?zh;sCZFCt}3nfVv|&u-KG5`t-cZp;@OkAT<^MaxoT2TYcVaFNuI+ z&Q`OD-%1Rf01~GyqP*bm`oRmP%T*AB=*j#BUw95#zpw^mar7I=%4hRh!-y8{vgf}& zVGFY79}?M6FH9u!%$%+ae_k??SaM<`TVQBbKLfAs!lu@ULDEB=g;&GcMhll24vPhS z?fho;;?20oR4qHL><^K^n*=nk)r1RB9G<%2rRHP|c&LIe^w3w>0~lI8uiH0YeJC{1 zksl#SQnS;X%j7h3@s_Me%P_+)IT4IY0_6yv$%=Yl{GX4#r@TA^FU1NAYHanaC6K%p ztEPEgTfOTq$Nn6>2+?yzk|8xoj@gJ93;B*FRKBZcXT^6+c!hd^T>)GaztCUSldUB- z*bzDfni}Y+InKtOOl;$m*ah^}lM1iEYE3dPL~%VMCd(uH2*8$6@dH^$Bm2i%e8ICN z>QtdY5W6i|o?NQf3dxW#aj}U7^4^*tCFq(Kj>|uxIE1x_`Lj$D<5lw~TDkBPFv^lG z`_6VG)k5yqV8W}a^KP$`_f};C-Pz0CUd_6~iKx0R>Zt|)Np`)HVF3SiWx;xO;YdS0 z{2-I8WX#H&9hpg9GsxyGj|(JiZ26$V3t#x67cE^XrxlPTwscrQk1D+W^}i&i6?jwu zrxf1u)?W_?6zq5c&L@Dq+eUJvy!F_du(>}%>G8c`>*11RT|1UE^=A!A@-$asWZU2c zO+yX^^*pKSOt1>le6|pdlzNGxw|EnFx|CyhUSj~-RJ%oXh#TyGjk=X&ZN;fk@B#ai z9AlPPM960U0BiKf-+YGGHRyL*^u%2XtDz{~*u@Ih`@NYNeAC&1_n*a#+j1rK{62c< z>EU6ddk>T~D&}O0zl&!XJ6P8K`uu+5Cj9h2DCW;=^$XMB-4l#Pe==I$`tUjMY_rJk zAdlm}0;c{dV9;<2Zl4ACg$2wA0B9ep6iM`CVSf%QBLO3;`)>l6p0Opr`Rxc8_hkSJ z<(N<x!Q@~znicjpX{GgveTO6acHQ>=rVI}JhO-Nawzs|(sBUdmyaSJOc?I#*_CNn& z^KHOlGrQ@h_y1MT+jz7Pj2PU%C%oajXgTDJZA~z41@R|n>T){qY)UTYb2fi71O_~V z3gd4GxWom*AmC*&Nc`%)mH8pu;X^Q+&#$9uc5T;-mfq!+%rx~@_J^)kCQ8+vUebJ| zZ$U}N;9mc3CZjjwyMgTCa6H)jCd@-28jdgD7$(g&h(U8-$-)nEy(|>rxfEr8jb**- zecrW={8#ZkJJdBC>>jUVBYy)bDa6Up@Aaa$4bZqT`&SD6@AvOE^k2sJ($IN!_Lm4b zm--(3A5?XqPJNp%3jXf*dW$xq*P~wc+57X>XjRA^4flH`8_^1O20&7O_xrr0nQ9rF zojueQVej`!);uG&*?h@}^ne#Ng#7}FI;4N<-wk1}ohj!nUR@~m0WW4);P>p^U2XDz z=9LW0VjT7d{k!$Oyhu%d?ggw@Mp$Pzca3iTuvfBPUx`XYPGXc#J<5Mks`!cm4yOFO zf%|j#j#wpQ#Bxc&%ZnrUsMoO(FqAs`R@YmaKjxKe1j`D5Jm}vIkW1MsViJw-{}tng zFDXLumtM&rc_|^e`NsU+V(CRL2fdO(@{$51pY-nri9|x%dYj-au6jG(KgCGq#kB>H zcNARm?!^i@_&Oz*8X?XTad~YWgSZ$hXKKfX!J<Ux_IejltjV#NQReae9NS+iLZvbO zc|I@#SSFqS8^tal#0WzD%zhB@&n+~LdO*1Nn)rJkmF?}>SlHWZd{%&80*AfoKYCTe z@`c3mEnPYP7rc^T`S}Gbf6>1imY>Iwa$qCkw)`pw{M_Pvf5|HuB<B;7?&)@qcqM~` z(Y(@8f}<~cN#k1#;mtnZ^{Tpuy^=M5USXhL@$WWJ3Fb9&It2Z}$mw4=;B$%t{<>GT z0iR8XHhr$!@$qkXC4-33y*{5u{kuW5C=x7er_Go;;@=1nLvSfdmIX-yb;;ZMrnhAP zatojB?h4?yypjQUIx2BS(h$jSdr8v@XiV_#zvJI+DB|fh<R0M;6h!@9j$_ys(!cZJ z*;LQ6z2E)38ppiBN4&v%HFJ(`{;|Mdg$(*_{W5Gdi54z-$qOx3$Ji|}ShQ##_hwCB zM=%$$ihx4nZ_*6S0-}r}(h6U(b;ToKYy(^e@<-m9A)W5)>?e@{kR7B9;8Cw+NM{6? zH~M4$Zm6UOTdwYep#;1B_2gYoFVy*|*D*l&J?kFW*1j@satx57*ZNBTZh+AGiS1H_ z(FO1!kz-2|=fZgglL-xr*!RH3DqKX4Hpp$mRPo1JF@DYbZE{wZpUgk!fpRhdOz|P} z0gnPFWL}sM#3DHAHaf(H2D+vRMD&-@K7i-t3CG#wHQ%YKAD!0OHw(wqQX1Xtl?;J& zSF`!l)1A8LC%mS0R}A&K%D)@xH68SrAQVO-!Ra~@0?ev;6m0RDh5~+{hBI&VN;Z(9 zA9|aAH*f}Lj!W-Fck?w~&N}D!X;P0*dL`?;=%e1@->viBnYz~Ln6d4&dZf=wW_71m zExDtwJF)vEVd*%fMni{MIB-i2ugO8j9sDbICl&_I8~nu<w&<j~t{qF7g<;mr4qmwR zUetIN3~*co6NrU|qXR2L&yH)5Casz@wTpd!m4v|Yl>jX_rzp~}y>@6edlxow;v9_e zTND1>;s|JI_xe})cbg+lJc%{cgRl0I>(yr8Cn6wtb;&Wq-&CJ8rZM`pwK?&^1siY# za+^1OT=({{Z4d<V3b_IXkCJC#yoMx6Goj<i69O6b%dGKvs-_HLm5>rn=<-<?z9u7Q ziz*$>i=cPCX<G^XO*%w>rd)+23vwuPP&F&=obd$v3P8T+gM7tzDE>p5>B3b{>Ly^W z5nS`6Mmi)IVSW)n*@3<lQ=X1#J_j_V^c`aJX*v-e&FK6K8ZDYlh&J&9H$jWTBu|tW z(zg`eJ$Q|CInr1eJD?@lhr}X;tAC_cBG@<C90D?1B-9tsXRyO@5|>mO;I?{IGr;Nb z9grd~al(~Mv{7&kQMqVjGsQB-Q}m)GVDwc0gYFU#cX&SrBDDpS1140#AiP3Cc$uaq zyUuEt^PW+C5dH_Nz9>SA0h)%2#|D)@hNB0@jj~-1(S$BW2E&PeGqlCj7xY(f0l_{a za)<Beui(U24c+;|joyLr6~?gn_nZ8?@fC)u`S+XsyYUq|LS<f)rFM&#G`>R74}1c- zuu3UwrPGH7LijqwF+sn_oS8xtD5}n2@BE$Kq|pV1v|utx``5^;p)nb%cD_o2BKT7L zpWghP-n`+4LO1)^?SaRU6+S;1=3cL4!m`My-|gQGVZoQ0svz(2l9sj(8K#&bu=iy6 zv9?;xkMHpwB0t6mI}uG4Eh$&LlhG89#e)j&_w*WmOnB=Bcjg=gBpq1X`w|f@TJfPE z!f6O8?kU!_V+~u^tbuY$dMcsyk)i9fTWH8SeW~>B!G<hG2|n{UTmz=_e*6tu$Deu@ zOc-Dbv=5Uw`5?F%9HX+_8CgTOUQer+cMCC=hR(bmn)anUOv+AnTO3*=J5qJF_2c=S z>?sM^ZS_h<cGPP)$kZpl%}ZKHqXbTVEZ((2s>T=~d>y9kUdfsV{L*}?K3wA^a}kr- z=8xnJP3ewn(ktZ_4WUmBraQc(HP7Xf9qF2=`C6}J%?ITtwXI+0C9Qd?y3-_7*y)w5 zdCsdNZ<l|!CEtVZ*dk@^x7mJdBx@sEt;pb3)?R)2d<bTtx>KndVG^_U5MRQb)M~z# zw~i7wQigxvjTBp{VjRC-dn)`FEEW`~1KkxUw4ypwRHZ-$-0g`D20c$(O331RAKA4% zVviT~=}?8xQAY9hJ}`>rNhh2Gn|N9cKNV~OnC!qMbi}R*$=<jnk~Qc-rOVgXwPP*g z6sW~hgmO~?e#bltLzoF5O=AYQ!1b6cFgCAxVQloKZ%|wnCFv&rZp)sMG~3km=-Xzm zWTZ!->ZCW}-;MORYqnu<lTI4|h9y2N9ShZ{7`dIU?k(P)4MMh0QN!Qr-)#`WT(0Um zh;3fU20`ZHgV^rhZ4i{hG6=HfI15h&<Pz%0S1IH>yb*)ExHG=izZ>MT@(*|Q#9Zf< zDp&qa{~lL9ht?`9Wx77LG8E~th9zQ^ERt0c_QE(~WJg3bd7)k$PnSQo6M&<`!ue1l zUa4}9>%tLam!xZ~U~7gIq$DV7e`=H2(2m9J%o{CXqO?KF*8Otbjx#dChkC5sl7jG~ zQ>f=td{QVkv)=H?wbwMYe<nUlIG=Jp)2J&jjv7yrjRNBjEm9APs7P!&>nWm*eRggH z<IE<J8$Dr+JA9A@%@oI`Y^+pJ8@Mh|{MUAnvWhMM<&y<UhAE0E3F&eTN}f0sopsuw za*bqPgw3x}xxu>G!983TK2D`oS~YO7+vo-)%0fnPm&BbVueg!S>p^}{mZTSmyu<sn z&`mB#u_MTCi$QIAB^jfW?BJkw!j5wBi4109*cU^}EP9Z5w&204nV)uAbv1tSF-xn{ zxDFX;&l{Zmt~$%fk8yTbdQ-{L6PacAf92C=F#BbU<p%Yq*)q6BY!QrlLJ&~Fnq=`# zv}2dHcqx@o4k02mWpgK~`?R#?mQqd1E3e5_CFhDj1Q0LOD^}qbtOQV!^UOU0V0>5X zy4^EJT;qKk-wk%%RNI~OlBUoV?YKMqyX|j_0_|G=ZXBEf4SR)n8hj*}(zBNAy(xug z%4=v`&wP#0V}fNp8dP;>7VuKSk|<u(#gBX-TtZ@Mn4M^G9NyqST6z;MrEWkn?uX(0 zMIgyf<Q675;$fCOuE|o5H+zqkzCskgs<G)(+Qq9dIv<i~j6K$W5PINETx+Tv`aS8k zjbz~cQ-k#kc@bK;9-XeS4lD4%WChYmXJ;^o(y?UytZT;#wtiRv<;00WB}5*VB-J*S zs?o0p3kQr!{6!9zUnQHZeA%|dq3i<*!htUL_t8Kgp1oinqTNo;tO{6(oVwcKuzBRI z9|RxDVf1eDu5&T{aS?-7Wic1v+wSeWQ!TsE87RzLt3We$qMh_Aw(x1xW9PbtMI+$j zyaeVQUeOkRG2O$p{@s=|(>-{{*ZFr_(x=W8K36=4y330heEgp6eP4bXK9s<Ay;m~W zM0tw(@eTgn`WDlj19zhruwE$wra6dulUK4{i$=Vg{k!$5OrEohAVzbm@>GEO|2oa` zt=^8!vWf<_liL`99>KRd&HHWMNRHv3z`Wn?6?05~nnZwilq!+`v$u5W-sL6DfnJmZ zcl!4m21G}qB=DKr>)#E@i8=8-Ucd%UB`e$7b#HW+SF%9|b78u{x!X&cq$_T4_W5^P z7Tn-C{P*~GgI}F9oZJ!7HONU!JjnH|rWIG5u_8;7BAt(ksaW_ra|(6d?|`}Ew%?j5 zQuK@f<PMDcV8Xb?>^e`j`<U<S?y{1;p&jd(l1|(ru2*9rxT(i6Idmrm>V$)D_R7Zi z0bB6-Eog{Wk6IWM*KFec#lsD`SrsbkUOs41aj8euO;}0fdcp(|kW7n?PtsQFwJZlj z{?6;Pulz30D0arP3SVG*sEBRaV>=@J(+R?5IV|ap@L0zX&Mj5};n18qB0N?$gaft; zghR{9A-q2#97}$=aXRkqY(s%_sbmIYhJ2hIj1J8a{S*x7(4$#$IZLuzoxCZ_QkS1R z?qQ@<I(ysNI)w7<iNSD5dG<iKHE-Jfc5=AJ8ibLn<UZd!15-YD(x$dfdKicUN6nyR zaZh7E^jC(>4JHn`Oz<;jF3uIGjX|_7xinMrQTa{A#AFhW*-lcF#0U+Wq8K28Ib!v_ z^=!u5vY8s!=O|g%J{0J3yL!y%D^<5~P9&}5JIrwI6?P}G<ITN7D6pu)xmU}%f%fh; zd3P4Bu3pWR3A>o^az?#Y4iNAh0mE@Psv3;EJv=}3!imeXzRmPTz|hDOPiFL8DOTA5 zmR*UuLs9~!UhD{avLiojil2gML+l>4m5BMlX;8UuVR3D@GGwcZuzB>0WA=Qe-vUNW zV04&i4cV3)8sM!+bgTBZ`sA5+HqouxZ1tifHi`YBJi*7=*XqaA;7r678+a<Qk@Zi& zEZxsOz#IFs8L~g(NiX_7QLZk)@>Bv3VfCOoMq{n8g`NyXag{;=K7hKXZpLmD#v>9# z_KvsE1{5V^gF|MJA+(L8lnn&=<DePO6t;S$Yo3OssfZclhUWKWGXNMu`r}ZUbe_9r zfFMIX56{$yY?p-8D>yK4IW9Ipc6+%)3|rNK7Sg|=4I6Yn2i=e4=omC4(4Y;P#v2~j zLOC5Yl`UFX2if3^&<Y1VgH`*+)!ak+J7DL~R~aJ+=hB4};d{6eMqMR{fna$(ZB=<e zGt{4O0T|RYo@gkj^7lEV+Mz1ZW2~IWCn7AVb-&lL6I`;}B~hVum1=3ymIu5};iOm& zx{96-c&+?dF&l9w_&(^hN}TfAeBO)ZSflh0ybpIX*#@(pN<#k9X@p%vhrR@sNh(Mb zKR^#DlkUZ#wft-KYha_QkN4s`1QO^MO=zx2Ng_>GqR1nxLv!sYZ7)|!Uj+)MHbS=% zn+r3~>BD1~crg#42}8N@O(h%WSQG7s0)yP443f=?gV@+yWO*1xWRh5Gkvnop;>MSJ z;0>=+iBrJzUeR~NlwOexcJl#e`Y$D=6N_b$r;6dX>yTc-QKU11S!iMwh`Vvs>j(vK zfbgI%%8>YMHj<Xg1uc=#>bmyffPpV*x)Qc&HdI3%gv_+qkVqu8{8|{2t~v`t3dT># zm!ML7yh1^f91<VtrUzr-b8Gw&3gqoXy;R*h=)sB#cY6uBD!zi-i&Vv}{19bXHua8& zbP!G>8x5go<-O{wqT&r|22$KCK$0}F<p&K24fr5!rc7eOo876T2OCr;7`A!g_vL(x z6&O^C`Qej5F#}JSzEkD`)o(C4zt5S;>qQcY$O~F|kGT9WStov|B=Luel9;ESBtK8q z=&onT&oh}GLN1VM$<HwDRd#<AZ;yJ;x#yiXx)>KobtZu$fxIn$%kxk)I&fr(V99(n zE*W7IT<Ajkx`;|kCbnry<^q{GCz(y{Si%$`0vPo!aL8gz#)OwQg$U)TS0m1w5>RA2 za;8CuyEcSS3+N#TRugRq$zDNWP=z}8vaPz8s8n+aQ|U^fyQXtJgv14=7)>Y43wJ&h z1vEA`+>neGqcgKB+#4a9od^k@lROV)b5N%V?XNHOj)M}Sv<%~Fp<c=t(VV_lLt8u} z(E}w9>e!u{Fc(^o6b2fx#wEwXIbHjEd#S(YRQ4yQ9L~x2w^-D)LVw)`c1Nir09G-u zZ*gE}=Q?7eOJu6b9d;eszEY28S&#F3ss9yJUAcl}5xNb!?l%a>h{3^&e4=RVhmvUe z@4)!;Q3__?zLw}yi7GfiY6cS?FjbJcIrB3_RgkID7UIPK8-zZnt#F*8MMBtOLPa_6 zLNXsJjdMZgaej@%qD?rA^I^UiwsFpnBkLdk7(ZaAa$>6eCs>;Mj;PyzlyA6u=;z=D zLOUFs;H7$S>1zCBX>hRUa;*(v2ZKori$aw4BkWSsMD)rFIcUZ_5e;sIz(P;~8hqdQ zA(n)F7FeLL3iH;a3J*nJ^l%K_=1p!RlEe@}hyM)g(>>kCHZekNhl7(%5A-UqDCh*j zGCHxEzb_3A8yOv3lY{H2pGYfTsBVP}5?1%HcqsTI3751xgOD4->GYWxC3J*Jphb&S zdRn7W$hBbwqdELb4z=w7#AzATMJjjYy~dZlmhAw<d!MgmI~*5JU-dfH6Srf9olr$j zU-w$plP2`-wyXIUuT$7Rb>G!|(`$9wKUKi@9j|4(8s_zqkixL*s;KqdQZ2dyr>pfy zsg@_(IM#Cl=EcSs|3P1RW{p3(onlTL#=GmO4ctN7QLj~f#r0Zxd@V0ls@INm(kVBZ z*5i6Dy#cUqgO?QbTA644a3Xqb1kUtYgk@xhpjVr6p?TLBkWSCAbjTGnPs_+^=LVq@ z*xMa!Q-yK5hh~%hj@t9iQWa|OQ2W9bg-h$`yZ#}l>)1ABAO3!b(S$~r%}P|j>%GOT zz2g7iCM3UaB)Vi+F`o^i2ZXl9D^oaSN57wUradL;@kZ})x9-!N;%*?t^`3;b54w9Q zh|X?z1<l1+V~k>46De_K<lGv3kh%{?I50#-?>Nsyz}VA6(Et^cqJfzv@C$Z#C=y~` zqK}_kr8m<n^SD2vjVBdno7zW%f^MoWsIZ6P2P#IB3s$r{22hX;DYlSd38pPbmhlGO zR<wC_sZE&Uy)9-9!M?-W!aW|^7K~Iq>hECSpBQbblm29%XzS@M-E*IjOxC0WV3Vb+ zDC~l(S^2eI%NUrlqVBbJmTEa+?4F(#ffVK`2a@<4Y^b@T=57r~$3P7oHrC$?lV-ar zpwkTzpqONXv#uR0*etUG%8}QoU59__xk<hkgsP=1w<=+BY^=@xAT@Ju@Yb)>t@MnU z*<o-T;Vv06?)4y7G=s3%qwaTv8<`7)t|?A7-|=K^x;aZ>2VQV#hJh)rEOB>*H*CoM z9uO{eylhms#zD3qGi4y442doS48qhv0mUYi;LMd6b%$Nv+?O<FO?;D8CKfdi{Nst8 zCp00&c;m3Ek4_G3+&k09v4lQEK#izBEZct%gn@-<Fq{H>K?nIBGrs5`%}f*rxw#!% zeQ1_2-Pu~NeOK3dTT1oloy(4(H;SZW?QZkZAJZF?Nvhe=>eAawrRgNhCIC@I+t+yM zuWDonmsmELFI_$MNw4|+ri^_6*&x30d0yUzU_{wWbK?y@6PpW`tyUZ=`M7AoaX2(B zh*mzdbq<?FoK_%XqhdsyAoft+4ncdj=4BCSyZWc#N0(N|;a}&2_?jPitj?R7{p5i> zht&)-uEOr}rb^=Q=2IaKhfYEqlFI*Y{s$htsjl*x`BY&!n`Ob1Vk_f)>vG}xY5Mal z{8(t$!i6D$+1Y1@%hu07Kis$ef)|7<*OA0bvY5%8>vHM(tA2j@Wv_lUFI~s2>$rBE znar5T4D_lZVf@fQIb+!)$+CYFijN-}lyy)2h-UKf+IV|F&a>kBLhS0-2Rhx4`)9M} zrtr8IDNTgJnD8X5Q)7S0nqAk99e-TctlsqtMGh6&V6akg1t7<+lKs-!>vBq)?DU}Q zv4&VT)W(9nENYMH`vGxl{2C1y@TS3#fjb3c?fo;izrPAj(U<iw*Q`9h!DI?NWY`uD z^0<?{{}sF+%zEPUFXK7nbD%6@I;H_i04e?YnId9V<ln8ZmWSrULpFghHT+r+Q1;=* zX^~>MmKr8E+%9}7F29B!QIx0+bu|7uaERX4pjZR0<cnWKTfNyIU(TDdTeH^ApG6zv z$a-sO-tZi0u{Aum)o9H^DS+N5LD<xzegT#BhHgH+7Ef~oAAEWZp5_9i8FJIkWiz2X zf;pn^wa^y_G1K%#GC$<{;UO3afY5%t>6eU=NUV7Z`WvF>5~y2CWw3P${lYWu1Y)Ry zN`j=;Y{^m8nsZ@u0`$_Fi=-F)jSc1`e`9mHo4=t%Oz}4yd<?vWN_Bvb19G!*Yo=s# zQ}WdF+=E02h!emwhV@mTWBCk3H#b53oYfkVKa4KLPf5<tJH?I<pj5jqYA`n@uOyBz zy!k`8J{rJN<h=s3up4Zj%y#b}M=3BK#1aT3Ys^$Ap2ZI9K`}L1tJKni=0QP%n<l#; zSsA;1Wmp8j&&g1Nc|(>4qmx2}<S>AHIRH-e^qajQ)8JmN3KMiT;4>=fKjA`n85=N7 zJ(G))AV4^<A?y+;L^z(~13;3H;g4A7Qq&O~?7_rjd*1m_BioOF50>1IyWp3fs#>3+ zLngzNMDcR5J$vSc%>pP~VBF^LKd3t5&k7WK(mUYq@PanbP>}E|F9D{>B{1+t9Qbh# z;t~!5Uim><*AS=xNcw34lXtAI(G3!1uxC(gKy=WjVFr?H=A~#W*d)Kt#$SRL*l)p3 z%l1|b&&Go4A76|wxHngglCy)|ZZ<b(xJRD5vRu3Y;}yox49cnNoe{FkJB82$U22S4 zkQ?6{9&ZpK6)Q2r?Kx_hI?0i9kwB`+S-(R_mj+0MzT1Pta{+4K_>1rf>7%fs(aGEZ z>Rf_4w`5|x7=>Sec2G`1eIZ^j#gtfN`$H?yz^I`ST|gB(`tx(3O6DY_k5Z%xsH?#( z38~~SqYp+vof$x#Nl?k-fmP`1!5S*p!PDh|f(ol#Ousk<cIJr#E5>$uMnWoI$!jI< z4N`yrJ25ysN1zqkE1U-k?VJGZ96~#%1nu8)hUiZ~L522j_~xt>T820&0ZohAhuHvK z0|DAE@x_^VA@te+ls$T3{po~~@i(c3xraD~kr*~?VVqxN3-kn_ph9_=Zx)0$k<e1x zA(S#936xkO2eHCr<q2cJ?eK$&xC4W#2E2}H08#-BYS_=@psuV{6#0xk7!Wz5AyY>f z*#hGLyQ4}|_SJ)X<xQc=m7M{7+4+i@LV1@F){=3pYMa1Uyq1|l=|Je-)7QO@^+XTA zbUhvQTGo>$W#~4hZ+ac;Ng}wX8Pm7Dmi5FFY~9Cn%<EWBY8>y5z3+J~>uGx9_z%2} z^>iY}@&E8z){_`br@_Pzy_Q*gXqOT@MU-Zwi;^_^u~)S2#8^eW2IQ$qa@kkVzA~!G zc?-E6aMxNED-}20>%ESlLyS^c-gKJQ+30nwA2&&Tr;g28)!7$pa(Z=-0}OPqIvr28 z7qpp}FF$HiBeeHWM}vfpK4}Ic3EVo!cKcCjiKwFX5U2>616TftU{UcXfBGt3-;OYt z?_Uiq749B2wER^*n58im{$aEd%uUNbeqdDTJZgp2js0YFb_&Og{W0GdlnIO*d6RXy z&r_^44JF}qORO!Gp)Rp63w0q_L<y__fw1@pO90tmq>{~sPylI0|7J&P{1z{327E>w zxn&MxD>GLK4Enp-Cu!#n*e?DC?#FBTBgiNA<vIclP|?s73E!PP2Z1Tf3;v`hA@2}Q z3S+<hw5RLEC7tK1eK(_bfeN#Y%8491x5$B}hX>cSV-3?dSp(%Tm3!)8(pJ%tAi6ep zh65mI1fD{$HYL{&B2F9G;RU7{w2|Cy0-+=C`P_RxH{)%Pa?R{6{S(_?=H|1bws8Af z5pJ(~t&nAdR^1KOA=E~GXy{$Jtk4L^txsglx2??@Vp;`}*eY_O*yiK12=|!#M~qg; zC@tWuVq}OW2Weqg41Y~`A3MA$Ly;V-mLV4@v&1T|^Qxaw#b1wDW8H^64|}ES8mL*t ze2qjo|6E+Va-o8_CY$J^La)eEgEAQm9n!Ks)>J}K-m3++i5*1bIwRydi)&Y@QFmXq z2+vK`GvWff!AJ4eItm_z3U&$dIVFutKpPwmBYW{VZ1Z3@=Lq;pts3MAVid=uHpDnU zeVa0s7evSw7iGCI)E#al$ccI&$dx2W(&Bv7gj^L`WGF9ey^U<L`F|BH-s$)=TBJo< zq(OleS2`_nzacIsj4{va?((LL7HJ39Ay-m?uZVqK)o78HXrYooi|kdD0EVG6O{Eee zdBK>{;!4ovpVd`$Rl1bzBo=j!E)fNCQgj)#yp%43LIL|1X>=mc=wdw6ZDtf@whABV zeLm7p1(yuV8bKBbmSYzEMT13UYwZMUL|CR+ZYP=IB2Tf5FO3wdHw|;qhUKXtx8#5_ zQ=LM>!>FlyrF#6I`^X;dUjUQ&Y*8!<s#jWPs#M1nqK(~sbP!f>)#^_jKU5aPMMoEQ z2Q_I!B7o>*2w5G4D$<-#8{4spku<CD%rx1aaKqJk>Y^)6z8C3zwLOBhM&lJ#s-Rwx zxIjc}jBbSQ#kmk(#zx~=7jP;*+gTT<tqF&Ao6;7;dOOe-4Uyt}JvrK<FNNW}9cimF zEh4bejdXT8;6^%52K%e@L`;59tp-1R=eeFp=9&uIxE?&yInwxe$KJYjtnyciz2?lK zxosJyS`2Q=dL-mS?B_AnCAk5VO0~$v>BVZ{G+5}Y%Dyo5AcN9MTJMmUNlru0xrRCM z>I5FII0+`&;3I?3274Zdn+Mo^F0m^LIM)=FK=H54(95V1mn;XkhE6#}u7=^sd1!x~ zCu3_e8Ps>e!sCdj`HAWl^BsmILrxQHx>!C^SXoq50oJ!;^ABqT2qD2DP2|%CFPGDm zJeLT_0<*GAstz~BG{bxBm;+~D#-j@n5FT9!c}tH}oKC>%K>uUe#n1$y1&SCNgF*<p zX+l2r#@pH;Kj~y-COE7Qxz$?NiIe4|L%mxwX!F>%2x##0xRGNVi0u5Cg{mo;PW0II zC@7Z753TjG$(J-$auEw9J$V@f$*^#)K$Jv!dI2V`wGWeci^8Fb0w#rW2_u%qIx;?f z4bq0Z50A^Nu*+5-_RZeipXh325LWb7$@YtwL$7RVh4&k0iR6;*z;E?tkJLp-siFah z%<oRaFZ7H;yABpEwhvga*`RYH%!cv>;2-=kA-+4kqDvC)Nn3&m@f$G|NK#V)Q?g%O z5?>3aCV4JVQdy2)tUc=EW;<ckbXX~OIS_Vf0SyJR0&Mg=%qC(R=_PbD%Rx;9jI36d z0Xt&u3AG07%cfloD4!-#z0V;rbQIfXGSx!+7T8g>+SH!#1)k3e_LIg~_y=A#Si=uw zMORzGWSCalo91i@9B&H$x^}E!@T-+|G@qvyQ(Ke);0ZEcPEQ-Wom-X6N!jL4VP(YS zrfn>-Ik!npo80J4?vl`j*+eZHRk@*-o`cF%9g<C6%^*?h13WVcDR1_YHg=TMK!|zd zW%?(;V$yx~i$BNgPYB%+`xC1l2nu&NDqcDnIKDt7pmK86ScLhd2H4G5w6ki0yX7m3 z6$%qPlAmBq4#-sbr_R%m@r^*cF1{Soo7=Hz3)krh>}JT9v#~L+cC}Y~monfmufTdO zzY*K&CEuY$#i^{y8z%a~y(gbe4y)?S8h(Iv{gDh-qJLYct_NeF>kjJp?qo`yOehcM zGPGv>muG7b22szB;jm<baRE&874we>{?kL$o7=Hnn>kH6wNj4z(!ys8%2B(`t60z( zWv46@@I~FsFF?nV><#-**hcdL(;K?Z8#3__che>$MS>{+A*IT*(XvE<Du59_>7Nvq z&hL%h%bzGEaHB1HrKkkNmN+5VGK3kwji}u>jp4h+n=)iU9*XudkN2mcA+doBqaoRR z@5_!+32g!caN;W69j?-V&?Urrl*Oa?8&_A$gcBUw!mKoU=k8abv=`jl`q1sHq_imo zShkdIYLAb_Owin{8N^Z-LdDo#HOzTV%dzYDqN4du@4&VxB9^mnZ_P(!otf0S-D_Dy zmO2Xdef2puSTc#zl3MR7)$%RTXQ<$ZW3N?5k%RCn{>GwxJ{PV0VA<x@EQ4Bk=_7xj z<0Jlj7Jf8Q1Jg7Bj~&*qPO01AX?+W8I5omA2j>qbK!MvOi0vs_kZ@6XU<pQzXpXc- zqYiaBiV+6J+9O2?#F{9dRNZB9r?YmIH)^)~rv!Ej!IUu0*uO1bj@<kPI8kjo_ONgn z!y+gDJ1tz50?r<;bx>^KDxZNQ_k{~4M`NM!n&tW>LDVj9$Pk6l5f!%7%#>kJOC$8s z1T+Z@rF&@qpTy+R+?A%uqj!6s7TT{GIhMKcwlanoRw1Us6UES<cqjXmwNXE}F_bis zTfMY%FO*(}i2~Kg>{?yr*Z8J$uDn(EJ3c?Rd3z?AH2{|oEJ<kPPA_ZT8tw!@`eh%D zGSm^I-vAY(&rzY%iZ=I^+N1%e)9CN@(l&Z6JsR0IQ&k9yiYQ@gfpJ!X3h`LjRaCIS z`@P@1p)b4P6M2UA%miQW_gbaE)Qt?f4(eSuh6Wba6844vslpd*6THvGI2TaXfm!Vd z+{Ki95^yeUUs=hI6%4_w0Q3ko>s+>S3WaLcX$bm6JGNpW=(A^z^ArdLGa3V}asic8 z{oGmwfAC{CPOe+M<!yS{#th`#J?Tj$Fq06(FMvzjpb+7_Dn;m8Z_yZ_S`Z<jgh81t z;hBN13IfxQ4RwHbm$z>4%B3;Hf^sZHpo!=xc6WO<Ta^%?VF|T_%&cPK8^SgBVZsgb z)R?QhsJew5uGg=iO@Lw(lvc0RS$sei^muJ93SCfDLOZ|DV)qS(T&2&~LETkpwa`Z& z30e0ocD$(WrvPZSVKxxa7kt_`wC@hXx+A}5tdYM6FyzPZAeN#a%?Mk4bVo`@h0T?> zs?v(D1AQF^Mg->nVW4MYpoJeUU(rC+z^Hi;5W~$NZlc|Cuybu7lW`*d*0=Wu6!^+y zO5wwB_8=IxPGN|vnxW07RX0~u1-n2mfjuKuAnESviaISEUq)6QW9jp9Y`|w~((Bp2 zf{Oa$n&pl=3v&xD5J)+{22v(+y|-kfEGDY#0H`iuw79G#;N~6`p?MP(P)V|)h5^q~ zRoCh5GPinr*0qY6Awf4b35ZX|=FB|jB4=U0F!bYnU5r>~D$6KM$L-#_&164wyDhHW zSC<^ytOtJsUS<FM`x+rDo0&+c+*ugMsE9QoZvia8(E$lv$2Le_8P`B%V_{XhW2-Dp zJg>2z!E_hnm%hejz<s*lPO42^IUV?j*+qxIW-XpB&wL)qdqS$DB$k<7fMAw;IkU!_ zqBvvu<BJJ><3fW#GByb$8E|DBqS@aEl2H>fd6Bpy`2{n3g`i`cMshmc@K%>ZZY@+Z z=BvFwBPr8T=5?bf^eIa^(iG#x!5d37g)IKbaC!?g#d?TN%F|S5CU>}-U6IC*?q;VC z1xWIC#c1Oo(pI_z<KrrOqzqlxxTs#(psZ`h_HK06pSmz$9L}G(C56MQaY1ACgMnR* z6&+iv+_43%z)b%(bq-EgDN!(Qa%euL&``dD40K&^ap7sqTHuync@^Kn5QvdUAAE!{ zP#!tzL34x3YKZ%MwI^r;$^rCm=e83L&P_S9SCyJ8cCYK`U=Dt=#+d%Y8qzdMR50bI zo0D-WnO$)*=I$6;QCeuRhAlKT_pX5a*@H7?VSdC3wUVA?KlW4M>LBI<`4DsKdlGut z+>ZSjz32=rOW>ODat0U6<>@LCltd;i%Z@HU&<unof`6zQQtBeKq9<f;5DQP_(U^Mv zJ-{YO2Apul6WOGT^+y9Oj6#$ybSJO=(iugfSfZP|>4{>yk1S6VRhQ2QQS8ez*&I<! z=Wc$miV{Zcd>03-`^QM|VO7Yqm6v&JE;ntRrlTXyB&=R%F;0c+b$K!Bi)ej2cAdvp z#mRg@*Vi5+x(-&MEAO2T_`%LY$R)=gD!5{7?gY>!@e~msU{cv3s_wD{0}twm&C`k$ zXuD{oz>t*`szAwcy1pHuix|}|W5*$4prcFwhmTJPeLBImIJY93B7RpC+40Km=#K4m z5kg>Lk!P5aoJbw=H)s~8sx3VWs~s~QX9ugp=EEs;Q#*FwLF&ZnoLn#&;X9>?R#xN^ zDTpAWxIlmaA$wMrsqZe4BB;|&eMgS;SeMwLWYR@8J@zFQoBK~(Vn5Rb&)t_;gl<|q zcZ!<%B5hDX8|a{2BOwG;0&3UtLzgo0jl+5lX$f_5q%ri$qD8yiekhp+u@W8$PA;y! zpz#^u<$U;63Sex{=7ByAgpOrDt<zD~YGkK~$A;k^5=#)J1_ZYRndH``y;_p(`P<Jl zP!)l%dLIclbl`{*FOR4KEL7Z3!c(+JKyn8TAWrcBV$Ypey1h9~QeK#8emNA$!m%F= zG&iys4n`#}RphR5q<vNuIc_gfZbE&?LZ`~ADtc25)A`1=-m3A982mtciP%om4+XWx z_@B6;oJAyDGKh4th-Vf_7Y$hx6u8}Z#7+mxXjiy%RiHyrIF$_aH+V~>(<P5ptvQ@f zuP~7lRBI~abZqVfm`F!Ke5#{5a{B4jn%H&Z5ZDrTQfuB%wWi7-jqSm#TKF-;U5ADL z#RPS7CMTCdC{e-JwPOWS!C8SjZQU9q#Wz(H$LfdSq`mM?v-;9*2)hYvN$rLF1EO#u z{4u$Z7J&+1MLqk}yYqJZc|ym&jJ9~kB|H9=<e^n)YmDi?V4)BUl8;JmcwX7ig@YbR z5GfoqYA?`T64b0~#~KA|M%ZK}#Wz(HkC+URb2NL9BTg(7^BFA&!d*$E&~#2#h1%wQ z+DcFk2X1J*hz*ZbFufeR1#u)QRFIL=sZcw-`vNPJy;%?#GVdH%(1c7r1>Q)m*Yc%E zSPQ$d0L%!=>EBL7*Es+=rpH|&sr5?GCjRD$1DJ6Y?R>KeJau9rRt1tWmMK>)Yv1S| zH7<tzCxrzJ(>tv<-O2B(RpfUt2yn=mgr3&5V~qm&(G9x?d;FyMri$VP@?%0cB|jd! z5u+%Ra7FS1l@K{9?&AJ3h$_xfi4kw}K0A<K6t?0<7)2vs9%7-fzk^OK1R@K=zT5tO z4DTivDh&nkM*<33KH(ZJQcqz=73z?B^lzsgWV#D;V$`Foatu%g>KRk&;R`Uo>LlXO zA9g;F=XK8zc)g<?-cgCyJ@ELpWJkjY@^-;URVO>4>)NqBn@|esu#$sSse+$C^~)!e zSW(=Pg(ZxMi}R0(D=BQqRTqYn+mgkD3o1f{QjADQ382}$0=1wEF$6eB3@Iy_@V@hs zy(($^<1+AkD~!-4>~U&BvAM^i2`zM-#rc_D6N+8u@zqHa`YC;UA%&s}@$i2L^BgDD z09)`<5MBq3=vab6$~?dAg$G;`-ngzEs~9WA#R%tRbGYN#T}KKZF)S>tT}Wb@K)$fY zaJJ6Qe<FECIP!^{jYyn;lbzfJvE{a(^<+Lry^Zy9mMEO{EH0%s?C56Rux-|=l3%2L zaRWTn`OQ^6-rLo6M{E*=HN}Nv$F$TmT4L|W>lQF=)Wt1D$_-YQwF@waX*%QQ(z&Cp z-rvogy%I~%cH9Z290kqlHrSDYoN!?j1*YOUlAgnil+Vo?A4D{T2g#}&q6sJJkV?A) zH#vmz98cgva=b=m4PUP;qC99p<bNQ)3w`MkkLbaQbNvM&M}DP$`>=NSu=4A#>QYSM zSNj>A+s!T^D$O%$_M<KfwN8j)L;FC7_4r7@udy@+q=fZ|DpihmBoqskY()mexE`d; z%98thL#Ik*$Nr{HMfb$^c~}P1(``junHtn5yjfcj>JxWbqD)(rTM@Qqu_CBt?*U_h zVS}sytC|OTXxmuAEG|6Z)5!-y3X9|!9)vst?defgBOM{YY5X8VMY=;fIlAknG;MPf z7~Sbn#_}9YdP$pOlq5M!EnJ>EP5rc>gcg<|mQ&Wd$?Qi{3x|=cirKt?KgJ03h;2%f z5(`U`mB}xbm_i0aL?=eE-0I8DETW*e^upq<QWbXjzzhX)F-fPxt^u3mRp~h*qz?=0 z;0d#}91kr%F&ai}?(t|Cr#P-7A(O*_%|dc@av{a8^Bk^|hSBZ?gX<j4tPWXWYwByq zZmly*do;lzY1|JQRuI-|8wmF!B|*Bb9osV`(o7Mpt>6Nn5uC_U6R8+T8`(UVMjOyg znmK&{&k`yWWiXft<C$0FIF7wS^k!TzVz8wpHR3y!n@XcDU9NJ7O=uEX(Irp&W^5}w zfFW_!YNS5{6J=HCv0;8fIDvfE)G>xHS-9FeKd-RYfRB%P8^M#EggDw0w~TJ}u^1h7 zvy2i(2cjf)w|iry1^a|jV0#}~kS95Lyc8JQ>r8>mh;ka~jRK(wKQ0o4pYHC!vm*(z zkEnJ|PlgffDl#0+QK9`UM7YeH7daxtXZ9>KxU3*0QvY2-f_aJYlp+b9u%TgVI}YQ- zC@|+kEScxGdt)UE{CJ)RhW!<P8}}1^j{jpup3dBFLqdDpJ)9`_BbI|s1+_>>O4gGz zmv!yf!3R~(CoC+PNb9alb-lM@B+acfI!`u#8@!yUAyqbwJO?#5voPc}qO-~NjVnX8 za!t|IsL9kAuM!!qn?RcCkJk86%6yEDuyrK-RJ-5mK<73s)AC<sw&cvRUm<4}l;pQ7 z!f^ph;H{!UcI3c;7gDZ0wMhO&4%}_8vfW3Mm*iExDcP%hC2uTff_$t0fv8(G`+-b{ z4^@6Nl%GeD<PNls+m?xh${ADZR9+?|Bz6cjjF4CZ<sOs0;6E`h)Pw_Sxp)`}9dAD7 zonR8+AAxsymm^YNuUou5%c`Th9?(R{s>3!dq%%#Iu-$9>Hh^doqU3Ime@n_8Y?i<S zJQY+SCrXd4p)NckXp`hSs%eY;+3bv}WnN)}rMw6Uc9?8O6GDkFFwMphaGejqlI>7` z>yQwIsE{z!lS_!gD_EcKgebQ<;H88p*HBgjgMcqEEUKr3MTOt0Fn5nl-5Qof-UfZt zJsYbNj=ZiNYZyh4|3mcvMeLFNx&F<3OpOXhM@8)h0||9&y+(J|wxtf-8GG+&pzc-f z9CYV8y+dGM#}~AONe8K8I%p7P<bWm3ev1z!CxoJUZjuCAM|6bPD-kZ-wTlR`mkdRK znLrKW_`72SElR1H;xxL$A?YMB*m&UjiQc`u$O7_Q|7qR0zRHd2INIwRqCD3>TH$jO zuK(pG2(s#Y3yBkCIj2^OAv1Kgfo3`wq$U%B<Z6vMdluK0BRGW)*`}`43~|O;eYh!E z;FS``5{gB7h0vr?EPIDbQz*7Xq7xOxNoCCMb9_PeboAG>+$~~smZpj`5HvtiU0_Y8 zL^kEqzSX<xK!B0*Xo?E+McNJ$8(k!p$hfteZi~Lnd$%c;lTj71QR-Fw@(fII@B(xe z?3{4_hp9ie7Je$_JP+;h$_D-*pX4b#sNaD!c7}O0Ud1Fh!B)v>sPG-cDmL}3B5s2J zx^$2V0EqAS0`N%PTiH9Mv7C#*Y2~VR9E#}$JeC~w0!koFi4ccZq{)!fEe7r*K}0~O zDF*Qza!?G|s2xF074vJnwqaKD*2B6Ub423r|NoLiMtz_vLF7({))GW&N(Sf=VB$R6 z;t3)-Xl7z?6+x_)(<F#I8@1$+b4xZDSd?lJMe~>kA-WWWZ+D;!g?h}Hy43_@1oq*! zC9=8&Xq!48H!ZkAT;9#cJDku5D}q54>~A5Sap?^X4+uBpBiv;6i0(;XK^U5BjQbh# zkcJ70DmHb818QuF3^Xq%^K431mz@k~(^B5eI8JMKWLV)rjN{=!_CjJ57sAe+7&yWW zQb^5s)OJfM3p=sOY*tYoqFq}hWR`)aj>Nxx`Mt++khcO<d2Dn^i)9p;E(I>^^Oj0# z-BcqdMFSHB3!U!Z!S1k<^H$@>9_AaHv+3@34kSAGr@{Q`Ma&n>FWv0*>)R2UydqK| zr9=;r^E{pO5XC6)DK2YTlFgce{U%Lx9mLKp33kOrX0c~f^rn9Lc@@o0E*sjh(#?I6 zVvM^k1k=vPiMh+LrfJ=hJ(pOIvznjE>d@jAZ}DDr3+pxpBnF1dw#VdZfH|`AXCiZ5 zLvkOhPJ}#OWC8$lRC$4FpfOTtr7Z($EG0d8(z`wZHAVRz0aA6f<61nUND)wKb8E31 zN$hZV@`_96c(8ABS%r|qu&hKa9je)n5<}PQV0#iWAZEKK4hR*Dz3Wtr=8p^y<z&4E zFsFxpkvSkVW5*<;1q{gnZkKPiL&@P>xU-<sY4Yk^OW~4C=^j%xWT+>@O3(go&(+g( zd6G%0Q<|<XGWf3V1Ts%z9U_(<Kg2!lKMcVOnP)n$Mjf&zo00qt7BpqaW@3tWNwSeu z=5mkCSUwmv2jTp;WNK!zJ1p}iO@!cn&8#7di-}Jmbz7pem5+#TvH1XSHsx6Lnp?Ul z38ih<I)<=$C<bsL^Y;KR)=*nVkY<oZyrfA4VT<wgymo~v8*9Foi6?ON4MBq(?laK( zb=|jm=l8Ph`TeFSL^C=YoCnCoXDxR<1rcSN38$1DJ`PJ*Z#yee*gP@7o6yE0S0j)l z*#{5OZTu2VcR3GGv;WTN?yvWrEP;ybL8=0`bQAKExhF_nzRVxnU!YF#ClDuNLoLAw z&QOy+nHMQuF~_v0xL@wn)55KCr=M}=$fC2(KBqGU?+pvur1iOEB*)d{(lO*BRx-+B zCE4*nbrsF<P%m&V9{OHjpMM<e1!buU$y3|UA>p#ha8sm1AKsm<S|#7%qh?nU5`jsb zWU(r1e;3y%Lc+}Nx0olWrTwCUJ_Gf6FAnYHR8#r9NEQbu4JHyY{*_odlOWVaj?X!r zZEMF-*`8(uPzWDH-f@V^c58j;l|3+K;7sYEadG1U4u)yy_XBwLCUI2zGPyrTM2mNH zt#|Y{>a;i`bcDT5_O{D;awgOJw$4Q-r?V5ZzMw%_&2D+w4&J1B=5~3*HZKdcrWD2; zOlal<HoCwXCA4v+tk9LRM3yp8tC<<jLGfV}?-i><t<_XOT6o>UYhYZ=7UMsI7q}<~ zDt}{~I|5#f5KRN%<?Kk+{2pd#0B_?Ju`k{X5c>E6{7Ayba5Ygg8(1F%aJ326(Rr(n z`lotTB|8>F5?BuzlNg3qr6Uy>PbG{37Yb7BbODV+D1yelO0W(S%vAAuhlBPx6>{t^ z>`yv_Mm`PXyk;LM0ZE$Vfi%b56HG{)rYXDKJF=O71`1)ucVo{Jvt7t_4T5@f(CU$d ze9ZVE7b*}77DuOwSYZFMAv1~WbK&@ZxA$$iq4mB4P2e5|tK$E7g~d+SW@P`0PjCJ% zZ~kkV#9fjK$9<Y83EFzJChYS%=Gc@x!_RA6kj;{KAEvRFyMnlAL+XA`-}3Cp-+Tu2 z!lL=JXF|xUg^@*h4kx#Rx!=3oIUqVVRe|h>$HLv@gfqRH{64RAhgPEC=S-+;!kd4u zm%L3&a(kXlek9+#-a6=&?)OU8JQqEi*X@y)e4m$myEe}qLiVM7`Q`@_EWh6?S@Ybs zu=&+SF1F~^0_nXyP^u_q)i`~B>fd)OG!mB^zaQ}LyYxFv0NIEBUUhs`U8mHA<Gp^s zYvr>Z%3M3Vr8)YbS1UQm?|~$-{7lWUM*Ih9-Cu*O?(XZjI}yAbLr#Mq6EW5Vp-QqP zbpaXGS0#)h-qUnp$jcNuF}6T;T}t|h`IxiP^KlGXRWjL|ys2AMXz4y&!v=%-MJrV( z<Ek(Hc^~wp;3&#t%yH*`0gI;si~J!Xp^xK-IUz;ona$<ZVT-&!4BAv08Ux3p7b$E1 z7*~%5ev{=5PvOCdW?efr_F?7VnxZ^)L?QiC=+rQ+<s|Wl=pH~jQL9VCJ3#WMP|@<6 zabU7Hhb9A-&tz$^<v~djNxcRKUTc&H!@c87b0aHS<&M&Q@LZB@qn%)81Luw`ljfyR zY($HNE%zusMT{)*2M2hI1N;dk1cDGfm=v~ocO@R^AX<bChRAms&-g$c-sGi<n;=IC zcd&g?+^87x{<nGm*J%IbIzh}7t*5zwPz;RSLOTt&>tN(~Lz5sFJ-}|-?K<;-ReD|X z_elT~C=03~)D^RMg9G(;1xohgRSqgN5QayQkg5zfc}pdO+&$02@|k-An^|8(|8M+- zrG9h0h9BAAaO16cUtwqFk7RxohYS+G@^Y`I+CJx*r=E(fj$Weu>}R)z=P$r5+Fh^F ze&LIjE?s)jMHjz#nrpPfE!wz7`;BjU^II_O%4?96t8||JePIC`yZLpL9^X^9Oe?rF zxO|8tRxxJ5Dl7;pTcRW!pGUE7blY@e9hCW2S@2jayFrMVh-A0`C%EjmoZ5J+>nSCy zjqTX!18TD4sDyFT!vaoo1KWQySq(eiU0=)3SdO54=DC*7Z<6lu`B1QlnT$Uip1FSU z{YZG`8kXja=hB*h=g4G?0ok*!^9hIdle(ndDDdh+)|+mQ=q70=0bdy)I}my{$RebK zEO1JL%AoXKul8R5QhUV>;y?qSB>ONd<AS$r<Zap0WNQ&v5BW2f_5`MYBix_B5#cfn zO@;3U%fawW45hQT#o@Bcp?@`j%Q-OMkl+&nEIe0H#=V^~<KR)_nPFahp6({LduK+U zZ_wSu&~P8_>yGy*?;zfJLwb`JNaLp9OdK~&FmPaNNOn|^y=n8;mzw|O%I3GTd0w#2 z=I8fI2jak%*5`}OX#icdunL9%7OrL<tmC%wBbIA?E9<`=^#|+@^{e=T_pxJkWUY<h zw)g%PELbxjPiKm2>lbkWcxxtRU@+XxJIK3v2XSFAc9N(&({8;z18wn2b(GUfZ@J~= zt?GTK4pWD<!o5GNVsZn00Cganff9yE*@bN;WUof$fmWZq*uWQ;;e~+LM~GL=A2c|5 zCC1NdN7KW}jJvPO!^z$MEAaxI@rrnYi&hBdEDjN>cz_d~!WPpvej#eS++X7)nhcOT z$r<DpdJXVbYAE(HG~7o+4+&tt40N#7hlc@P#>|)O62IpS&(6=)I*xZ4Du=oHDO<ag zt)Xx&%o8tBo;&_ge!B#>BDdyNOw?SC0@~MHn<%*;`lV<o&eTU(|0Q@cmnawt?GObd z+B^z$1bIk*%*x|ANPox|V|XD`H3$gjjDMQ%E=HHFIe>6xASJt$dJa2*nm5NFluMy` zGdBt<Eq#jhc{TSOLO3_HLkMMfxk)NRDA$|6FbCle*xC#75Y8O`d%nAn5OVrw1qf%6 z*kRTogaVMx?LV+IFXTo+h46EH!yCDUjOK)P2%!wGD}-`K`g2h^%=R(1c0OK29L_}i zB;Jh%2-EA*QwT3WVP3)=uS=JEt$7Q#(YX#(?n_rXA7_<ws95)nf1Q1uEsS9$hmO5i zU)Cd5_J89iS{AWhX+jh+J4qf7UcUyvAd6Sy7xdJ&@cq49*t}#ZcY%=$n16NVXZrpk zVdM~2pmWN8D*fMPrz7kXI|edw3QRT5P1Y%epx6&L$G^s6XAra?*G%R`LypOsC~ZyF zgblh0<FHA9lw;FTVnT56Im-4W`dpHl-|<1&o`68PL@MkFL?nehfykt=C$It0Xt^&t ziW{xsu#WK|7^IH#A#4}g4LqnqJ-(-2&cOiOsNF)fqSQq4J%`-xOcujvOUvnw3i3qv zwb20ah}W_^ow-=L_w*lL$9mFB#k=?PzrB|Aq?d|!8`Gm+$9mFB#k=?P6R%}G>CI=| zdb;w;s8d=`dZ~E#p4NLU>q##a&-a9-1})T=%_gs7J&6^NOET`{%kwnhwX7$x19qi| zEndfZ(o4m=k7=9NvYxPK2Ss#;Z_;a-Z3(-bX=`0qsug|r0T*1grB!;p*E3711Q$D! zcYA?<3A<Q;6Kw@xF2Mj5m%>e6r(_=6IEek~zzObGu?Kv5jpiQpz9NU2Uhv0gJOE+a zugOMv|8*eQe~GzgvT6ITZ0bLTb3_vC9>y5=rb`=%heLBYgHNz;g$=-d^7d@%huX4Z zaHH4$OwWQEZX6}-!bWo2hbi!DVXW+Z!2aHkzlXA^Z@|GN*W8M!VhOz>y8EL`RcQ*W zZ*OC0%N(|k_*2gH9vOx;3RwVOEe^+;q}baShS{%Jkn_m9N@#x=<u^3iVx_$ZCxu89 zk+Z)6BNJVw8ZIL3@rubleC}5Z4tVlGpn}z9-vc-(8~0@gz?a8sxP0Q#nIOv2erD1U zb%#1_XvLwvN%3pjtOL>#Bdf4u(U(hWn`85aSoSdkY6m(!M9C0353kwmZo!XEL?{^R z`Sc-8bC~>tx&UaH-j@*so4<Y8aeI($)-ih!p~kQ;7K2cuFNOa<Q0LZ}S0Tz;;|n_2 z;SQ}2_iM4?0l5iL3}OItKk5;kP$NXC*u&qLCGPjNqEoZ>V9!R;QS?L9$EfcX{toNF zhr82<`xk25BoJ}4E3z3XKpZ*5KmW$Sxqku?G%%K4jH5X$1Q%{VRv##+5-JN-I(qkT z1pD&&gC^1O8-xSpPv~xlzcKQ8j2+%gk_O6X_H2?Ff|Qz=)qWf06dwXtJ;(<Y8{?DB zvhY`{^Aux1I$NE=cm`@Uvpk{04o2k<1<Eih59xJ0rpM7s<Kn5RsL^1~FfxQWL7@qx zlC`nsMYp7NpIMU{S$hq`C~(pM3m)GQAeBpN2y`!pof4`c&g=sFY;sJ03E7*{w>(D( zARzffeNS~mpY{#yI2KE02z3_#D$pbUhrM@!v#YA|gzvfaNRgl^FhY2!Hx-paR4M`* zTg9s5D{a4`cDM9Qf76-QH+<hWJs;CEJ?(shddZ6l1PJm9FDWEI5CY*PQ9(<M8Wc4= z)SxIqXpKsDr(3#>BQ5j)ueJ7G=k9Y()x9Cu^!&bCKghl3?8n+`uf1M-?X|hk3RLdU za*JLPxCyl2ORau@qtLPnh>YZcr9k=}<s)9iSa`;LcnoITfUAHTBddk`%o5zX1!4UP z*jt4IglI3&j{P3BcBlDU5dvR`z0}<gOlBPgUCTI+Ib8~}=J<j616}@Mq)UdS$1AW9 znT}g-52Y`3fdqUUam11Mz!`ef(TMzb=}TYMYAwQNWU>2083gj`*Sz+%$B&IId0nLP ziG^ixI-L;ui6r!m?#`U1J5#R4r3HuS+(x%0Oc#wM><5+5l9LzeO5Blw0dS|EyZR## zFnl@9hq9TW0YzN!W9EB|6-bL#bi~-s`;hWe8^^LidnjUW5Wj>o?tC|uwVLncemRBa z7=huEp_L{t3*;9_fy}e7YS$}b!)~rTUPgABM5vg+QJMvc%H+c}K%o@Wrs^^j7L213 zfp8kpGSun^JLm&@or4h#L4E_1YLAL*K<!biGP68S!O$?2W%y_C&5d`VrioBUAvs+d zelG{o(7wH0q1CYBoI9*<$02`Ng+gkeYIHiVI|A&Qk-7{)>&*2ko0i;mIYvofne~QK zM$jdA``;@BfdH5?M7SVBbu7lk9?Ks6gEVd}(q&3!?i303VoharXq4K*fLt9sqV0-W zVyXH>4qGRJHioM}#=HwSMSPN6BKuN230`gzPh<{cPJtVlXk8(M<EXmEQFX7PN?QZd zCDRjzG#X`QkwHqFGRugJg<Rz^1?UCJcOwkE;+ecuSR#3;K_ue~BLO;2!C>f*JQ{;x z`BQZqBnNG>K=Hwf=9mVPY){wvfNoc<j4ejxSAYe#HDDtY@6=UyD%DJ!h+8xV0ewOU z3|u@CI3L`;Xbz)_hw!2`B$H0(ix`+u)G$a8C16EM-4jrN0V{K${EaS}Gx0|JK8)TP z{i-o0CSOpsf4oS<cltoggN-}02e-o^*=|oaguHf=yl8j=BJKc+j>$NK)|@vt-q}Kc z8FmH_m)M!lu_*0LWZL4vZE%x(E@QFe1rNIP<qP6(nwWk0e5uKk4?MHdai-%-Y>q~y zF2#v^`5S>B!q$vj?OA*%Ab*VoWye=oT)!@d0jvSeZ$H-pW*{^J_}Km2dFqX%zG4hZ zNuZixf$vPnS`kzP+A~SLS+^*B1$@KtY}TKsxkUq8FrF-&2TIi>#(^vQlme*=i%6<| zvs4vYVy24TPk9ctTYIxPu741-xHvY;5M-e7_l*4&>r*XIk-QdR2^7|7huagODTl!p z7A{+8CF5Axj#Z4!@&r||6g#)E!*MF+(mjrAEix>eWbVu7$c_Pn0YG|KAkB$G@EsoT z{$y30>wVg)fT`TfkE2q_*xzZ`dl05HK##`V@cBzlKb^KH7#Tu1al5KUKfXtz(!keO zNkU7Dw>%16@}N@M=Y^#{VG)aoi)PuW7z_Ne3%z4F=xI@34%0{21Y-(m^|HXu=19LN z41*Jk@EA{l2=G^ujiGm8wFvII5N`Hds}oh#Qh&aX_IM0-F2G2#?;n{1C>s#o{C5a@ z7SQu$ZnzHhMD{^62g#~Q@B=_%Yfu;kB_l2Xf*ZXVf7AS7O9<^gy*2c~MST)snaxvT zzmd+B-VQ*5)N$4%?y<{3N2rp(<3!x9UedsYW#Dqu@#X<2ayQ_2cP31kk-OqTQ=6D? z;<hF28$O8MW7@_PQre)PmG6y-s6Q6Jw}yRBld^H2l(q}r$9+;rp8N=IFobCrAf#Qr zK_iH3$kS4`oz?9fVTqojraj$6H7;sdV!=fXej02e2HjAlRHu$eX8;&6AQBo6A_g{y zfzg41ExE=;M*rNiM#)$wN&r;>C4qqxCHmc&_u3LlbX?Pzx2V4`zKcI*Knd`;r15Yz zGAKu(smI&eq^E?#GXzDohSDSeCW^NK%n1+b2`77`b7W|)FtR{399b%s)|Ey^D(-!< zrP3ZwVz3kT7Bw>2hzLX{8xba1t2ZJX^XnZx3l^oHDc^Jct8IY5Q2s*s?v>8*N)~P@ zBHHomMbGu37S2fv-`}6-?=8TRjvs%&!QWeeCG?6c-|~0GTc!28S32J-l~NPmKYPl^ zAdk!cf^Cg7@KMjOoXpWsKs~Ar4t6N*V2+@WgFQXqy0U#=U;rlkc>OTR^8-1KUpwOY zDAn{=du2PGd^jpEX$%X=lX*)FHQIu}?1%IQ_oP`v{jzBh*o-S%pxpG7L@-Z!^9Gxq z4A=bdVps{FA{uxAKsG<1EMaNt;aqmeBROE#c?JzY4@;wOuprdOIE{pTzAo@i?Yx6> zM9?0De*Vm#gwqarpY%(s4q9st+ftf;f%kN<f0Y4ig%&DsKLhbe(g4$$z>7h=wdv)f zfo|DeBFuVB7-fh`+8N+G{3=Jc!HM}RQ4w{n^yC2Eo@z5mW`du^ozAdSsSboA#yp^{ z$y*#VA9c*w0c~}VjTQJ}V3NWY!Gp*nMN$N@F+heR5+U#okp_Y9i4+I`O_8e@@2EOB z7@I1LUS&%lRTnE^{L*GbKxKY<Ea_W+QC!kv3Cp?K5m8#wdj`AKKd^u$<AwzBQlF-^ z6Au}Y9yUjvL&YmzyM{3pSiNc(p|rrtDQ<`Nlq>i>8Gf5WQS^xO{l@T~GDZRd&>3k$ z`!xE&WXIgVlrcJsP9&?^I|Dy4g@S|XUB+<uHw58H7pn<R)t+eR=|BS&agc$CW)hw+ z>lB`7t}w8Gfhys-rZh0F+1>{xm9`dzr#NE+?9+S`7Ql|e0;oPC;)tJg_=>{whi4Rp z=L=-8UTK|IN`$B3*NdLzMJt8p+5Wy#c&_*NMd7*muHs62RRZ5RUa7Rw{+jz2;lS{0 zQS;65sz0p2mI_ck)`}H~4^y1LkNlzq>P5zc#T!{qYA!5D0Qh$Gw9pXflMbC`u7(Zi zm0p}6<7gkiX(Q~M@&ZB`Md=!$Epga9v0&i32_k`;i;$5bQ&=80Fr2#4o~4*;=7X$H zK|xytuSJ;9Fr>MQq!JS<neb|^)Z|^@vS%-YKyLK;t2h9u#!ILqpT?5L(c;XZ(=tC^ z+$$8Uur>4c`JchnQ=XBGb+9O7SBQD*mlN#b(KAU>eRECJ8?kEhRAIWb{ZQZ_<~-58 zpm}kClJ+#e_wS20LcAoQoGZPR;<1+e>3fu$YYfYql3G`lYPlQbGG<SzPJatJn%9sI z{3T%LB$?plfDxXkH7nb@!T?RJp~iY_-zXB*V@51*9W4IbQr?TVf7A|HLY%@wV6P<k zy}WKo3-lB48474K_*s_)-<2Q5MH`>t1RrZ1)Ehj{eNgad(?k!Ix*DSSsyj>0KGu0l zJJryn?yLr?9jCAIEm#RV?p{$st^OZ33sSc!YaMg)0-cjEG3c+xP4!5a58K3)^UZn# zl&Dq<lNnsojx}rsS%b%}hoM&HP<Sxw@H^_iAAS$_UwCc;u2YGC!`Id%CNf-6z&%cz zQFuRe)@5pCPkbR}HO{BpcYs1Ry@PerE15B6e}(fL1Pa$%Bk^wIo~ST<yURdQ2UJ`+ zCCNK(opBjp%h(udJ+^m;?hM<cencI_g8}LJU0f3tYILlZ6@qON5tV{yjnlj~wX?`) zA`Yk>sI+zJT<u-hF)pgMwr{<p(GsPcI+&6>ln&X)r83lRKOxW&4(JW66;y93!~7j| zPwK!CBzh1Gc3E_~7)t9e4*gNxO5v&jt1w0juSRGQ7%Y4Fbanh)R<%0%I8pVpq@(f_ z4zeajWs)p|LyJ@mR1cFS;opTIWB!Y6dI@yq)(r!m85@(uai@w}@N6u^NJ0QZ3*VJw zeTr~fQ=ozem4VEd;o|leV9dQby_IwH@_%rd_X)xCel)#f(){B%lE?h0%#bQ>@?oY; zqgH{f>BEtY0Grd?nda6svJ%KCoy9z(gTw^bl&+tbJpl{0dR~K~;S?W(5<ndrbOVuL z6tAY>#)M38|M^uyJB*aY7f#4>mQK&?t!c+DY`LLc(@u4;)(WwkSu>&5v%IDy?BE_L z${A5~gv{|p2(ZPHw5?#-RExAiIzX}1?Xceau~Q$T=qFLdx!A&q4yr2Lc}=hMI?o%j zp&o-mfEJlDxP^ewN#7KErKnjr(Shh1O=O1nFexlMP24j`#Ka|~=CR9L(Y$P6aZ4An z8&_0F2LrTIr0fXf2BTom8`jD&z~Vs)MpFYk(d=YnYBA~~<A^-i!5y&?Jdns45hCr3 zdyNRH;_ftpzXuUPkMN-o;68@|?%eW2S8%!^dS3P!UV*}l$3;1fZ|4rfOYs1^@7x}- zRtPK32?9!vPr)4EX^wzJfl4;`jutQ#?k^Bb2H^^r;?h_?GH7t}JO)qe3!H-i&OyS7 zUK2Q%pfGnuQBL7}4IVJ)c8H-v2ZdG$=Rtza2q$(_A|9s+5A|*!wl#pA1#E)$A+TbQ z03y<$kHH!Utw5L`S{#(H3X%1bnS@nvFIHSxBw)rKfQPNXKf$&m#zD><hIq>6wmHpM zXazUGxR)(z-U>!o0L8|6VZ09W?P($fxJ!(`^1}R#H)<JNWOt+H9A@CiR2G1VWRZW~ z+v*4eF4QXV?k|?=Xvn6vt?FmFr!RXg3m(=m;9^fIF<eS~#p@V!8U!39OZAxU^IF!E z?$^!?-#5IL87itB%v|e%QY|+zz66(K#liXJIK)ghn$?quY!J<=6&0(|gg>op#|j;a z)hPM3ZD7)r6?-cf345cqLq!V2rkcJoZv0g9itKnuT`N90YrH?xW@ss)1>yem^~*1) zbqUR#=@so9v1lW$I)&$3GzUV0ITz=^;`|0b*w&VP?HN;v=|Eip601&;X$p|!QzEfr zD>8^UF8zgEht(OaVxuM?Rh>)ii!<A?oJ|bN5jhLlk6<TSTB*&3yU79>SYoL9)K2Gk zSz`>MR8=5WbpHnz0Izd@%>jQte=~i<-2R15tj?{dW0Ddo<}1@cK{+)oZXVqsSzvA+ zjT6)aQ6nQbGA%ixpo$%b_`u_jM|j`~C!BcF>)-H(rEmO=H@(RYOHbr)d)wRJfw{3b z{OLwHaPX-x8>X<m3&kg<L*QW4drUaQUDHG-ishga<tHWU1DAb;PD~+sCpw7=k!-x6 z(|9@o_k4x&MqemziV5qDMhhyQm=(W0>>XNGP(EBYdWu5x9T2smyg)DlzSl+Ng~FDy zN>)j++TXGoj~{A{p;$xJ9fSy6&u|%2cMi%Rw}ZMPN6+3S!u=poES_XrIUXQL$pY>n za@$xiv?xA+e;_hWV?+~m0j#2(nH?FWi)=icrJEa+jJZ@Y=9W(Tap&r-=mq6e$)H+! zG9L8tXltLH^_v@&Az^4>2dBod6sF)xpMnR~vU{^k8OVV9I}r9vmi7CD)_&O~M4*ep zBhkfuVz2gAH)*8Wo6ssOP_m5?xFZQCn}n9x&&bo?z}1L@XF{WaivfSlQ!G^URGBfc zCRmpy9;OjFm!QpXB1A3zG4ak5m1uDiFEH~baP-#Uuui3DNN5jJVzY^O7FW7{#71}u z6FQd6<`aCdw9u-h)}xO1deLzqcbZ|Ynw+bq2cMYY$~d}{&<4usT#ezuiFg3LjW~d& z%vR!DDIX3{_EUEi7igfl9}uY536$#Mm2;F!ickt-SHS(laELddIAUVaQ3bFJO{1y| z6<M_GlTnyQG9$3e!}J<FfLn-1imep_D?v810sB1ydt3q7@9=>H$J#_G6+ovHVC5(< zOsMXl72`szses$<Y@X)Pe!{zp^=bc*0J;4sr)X)=1i~V`CpLfI;FW{HI5^!MybrK- zhPX!bew|Nf)^r6g_#rnH;po{XOp^>U>>>sOb~F7j09GyHExGLPa2c4W4#6#PPfqrH zP$0yBXeS9<f5=y}=}S!E2H8>8d%!M=RtC5ZmZ9^7Z+lCo7VFtZEmx<2KkT(kE!MM- zGxhX{*Rh`T?BmQmecx+YPYe;5c}$Oa9qUQ9|D*GuTGfBtYgtbcxYdC@H831|KlD1* zlb(Gn7$Oyh(jKp6J*m-Cz+OeIpL#7bD%9vHDt&t9(&77SuVe73(KGYe%)MUA;OoZd z`I*=1!RYyiQY|-nHrFca>c8(oRo8_%ld4W%rP$*OMbCl%lmZqKsa{o&jTTgOuJMJo zrcGf>)$cQnO#qr%)$g;tY&YsRj#pNhhfsZ)R}FaTqhzSr<9Iq~e5Qud!9Ah=TyiwH zuAvqbj6Sht%em85wPQo3I?^s8Uexe2vxE&Ao~Xzw^*Y6_@m9>=PRLbZ<-c$S0~%#w z6=~B#QB#Vm^1i9(`yPfq_jhHm0E<U9<RggGgSJd2%Oge-nNfq-_RS0%z;qj85n)_7 z0f$2wC96BuFbvM0M^zOlT&^RIdivUSELxofjVB4fRdUI$N+*$LLF3M{@X#XXRg}h{ zpb#<yba$MIG|Wdh&T=@uqrP{x9PI?Gr9ePjX7Ln<1pb7GAR&_iERo}aKFndHK7^F} z;%>iy;aM}AQ6uMWvBLnZb+*iA+~6kb;|?8fxAoCrI?z_t%v|h16*HSvos~laMURl8 zz?Z_M-cl*E+1(34zVo^w-{$!9;SY;web&H-yh!hg<8}x>nxfDGEauOTwl~ag?1&tu z`I)&Lg0y8gsJ93vxTGypE1YIH4(j3a8W`haIIIVA9M<^j->{VCIC7UEbs2J(z3uI9 zf5$uDwQSjMzWcX+`?r7RcYpWymSg_RHm^9-w>l7(E#3E`bn#5zR5?XitYT}IRTzx~ zezi2F240teq~1e1v{z$fXF=xh2()P_P6lh*vE}dT5+msGM1zSdo>Mzf&Z!BXWuqq7 z+H4fvZ4NO^CZ2i;BQF89)`2p=!tV)CqtOP9J_cR*Dn(!{`T`WkL2)x?K5+B9z)hO} zYMpmxxcyxe0^*YNT5E~i-(dsTEuk5gOLPFTGf83CRuJpu=FcxR|J&9)Qf9&2<LRvE zVpz>SehYozq@h?OXYj$hty4XbD04o_V+}MZnc!&d1Y>NL(Vs9EYy_vOKD?Sn+YoKk zA@~ho_917$Tr>L^jQTD#iE?VA(!uafJebP{V=HU{9A2{TV36==Fsm0J#<8)X2(cuF zqCW+jBLeZ$G;-)A0a0MfuLDe;w3vt;%mU`ID9k)g5ln6hi63NEFs186{M}fZ2PA~D z@e~In`J<TqDGcc691xQ~NvpD;ItKN6y#9@D2gR)#IvwJmPQn8^9rg$Jl1PeapaQ6W zM^Nd02%rvi;{Wq}e?qsgig`}oLj?A7tWW2|{y-~9rH(H^D_NE3e-J_zpU?7`R84GU z<jEh>d}x7IYO=rGPr&GTh)Km{Z<DSEV263ttQ``y<eP#TYD8V!(fkS98MU3b!4Gor z;DF>7$#*u0owy;}iDN!F=1VvVOLCCdZtG5*ctGf*5ZOx)AgnGs6nrXvK?uWPCGJ9Q z&=q!vv=Pz6R87(h3(lx_IsMuO-796DkrEC}8hhI0gzyBA3Bmz@ja&S)ViC4tFito- z$<WB5z%K?hnb%^eFK2dvjgVkVoNL^}74U2~v34YsGpJgdU+W2n+B8Wp7%*u_2?&vp zUrT&(avC@tKw)$f;`-u|UXvH5@+TXc9K4|s>ZPE>e%h|S`c53NdmKblGWFPSQP|YU zm!M?!DR6o`SE6Tw#<|l&X>n|cKY|^;n?F=Tt3LbLK_3++`;!j1ncwPMDN<Ex0R2s= zj=EL~W`0Faf9ti(WLM|POg%m2bqqRnt<2ohKX@(cNu4V*_4Es`V?C*BW#*oK>9wpU zb*{|R)33aa^`x$qnR{xV5mhYfNnI<&p3>F6%IjE9>RJhTSFnC6=4p-BvYynnQs}9o z)}+@ex>n-O5Bo|jv$IQe+_CaheWYG<oPW^PaR7lIGkNE5%c922olJCPCO?`n$Te0l zZH^TX7K!Z*cwbCgZ5d0z(Clsy=Lc)sv4zJ}Bj#Cc*NLU77ss8<0mAzliyO!>#lf({ zC5;7n6Q_2VDuz5da6MI7Z9fIBXF1AAvze3CZ>|uYALjnIUVy>M;73qB8+u6xLOO$= zV~k@^peo{2V@(?|ODhLLvXPPO<>IcDFB1)V5TZR^HS6d2SdA)u)*l@z?0xr*>rC(e z|3M=;DMUY@6G=J`?+BC5!#9Gg^EB$1hME_HGHxD$^Dz}Q!rLUi4I`?dtMy^l%m$-e zGP=TKm!qfGv||k;EY=9~j0juiB7mdJ=9BXWi3VxgoZt=;Wr`NYC9x=!FA!~+ar2C8 zYUYQ^Z~6q7Qm~mHB4OuDRmIRH)@9~)Ywbv>Ate~E#4`X=0`ka8;51z`f02~nS#Sm^ zNeQGdQ-F9tkBuT8)Sk#efWrg~D(Ym{&HTmE#A5um!*VS~y;==k$I3QhqX_S5T9$@a zp^EU~jshUDW`0BjTv%==6g;-WCu8UYg<;#$V4HX|niIbg-eF}0B=Rf*cdf`#L&Mau zK^-lfM(7#pA@n7?&8O0qtY%{X$(y+x?O$;#apeVh&h=wLyK?==I*qIor334%EG<K= zfbi2L2<bMB3`Cg8utM7_gmPh1SB&tp4umm6I!g(LcAYT7&v|jfDuZPX1k44WYPaWZ zz&`XIM;?oi4E7QZ3xGUHSe1)(L*NRw#$nKd8kb{=T4doQgV6~dtKr$~5Dy*LZ}eNP zZO3*@>(#?(N?_Ozf9%n3YhnR9QiZIYI&sHz0OF&PR1i9bgwcXXEgvltN~k_S7>u(! z!<Gq>K9VUq+ne5<MOh{8&k(Z8cwJE%bky9u@8ju^w_?A35_-N;PFM}>GbleGihR#? z51S~8xH#AQd_Z$BDk(!bFZiZfq!g}}cKbpZJ%2;%7VO&qscajnwRAGN^Sq}*n3qhG zqliCM`a8xqc*WcGw2AHtFaukme6^ERlMw_Gs4Ao6`-!X|ADiR+1Ch=W46nHG4JHXc z(-S@&v0xGgRv2V({BllG)orC=7_IIu1hiN1CyBkfg4$f&m5ms|iyQc06Nn$kXa=J* zVT&w}VY><ere{6}nR;@V#cP>@N^Dfb+MJGa$4n-P$P9#GtkUN#wOx5ZplU&_!Nixd zroAyN5nHD)bCC&zZJ~$NbgCha2bqH!aIOvE$O|JsB&VNd3u#G63bOhkPM0Y_NcG%! zN;^8Y)X@N3VyyuVLc3dq{w!1idL3X`jlB@0!Iwal1!%UPk_kE&VZj?cegjYtqHI9m zwctRogSJqbQNQ#z^yNs8bkqk|wfe=Ohn@APswq`{Y%XT!Kt#r2CQs6NY*N$W9FlL! z1?&*6;y@2~e#rU6h5YbtL(FuIigiVpBvY}d1BD|4Tvw;5=c0{WqzT4*qNzEg7^cyY zWQIs>Dmp-CHmNh)v0<BiRFoAk!gMziOjSiom}p&)532@_=TvG$Q{rM>Ca(`?U;U<Q zk*m@gPQ&TXE%k@^aP~KDsRZblq=Lm~xbjlQ0`;oj6dgJ;^-eb|%h6Kv7nGXkF-<hJ zl=*eEBMn7@GC4<1S0WvOCBI?L8Y~xH6FLvR9*~SC>S2l-TF(6=Ow}_qGL)>KOG}+1 z+<S;cVXH9eO^gz%eLUsK7fkw3s2X|3AT>5S3=Md0OLFLN15B-MY@?00#P78N|G@I3 z3khcHQp_n%mQF&ggATzMyM}28B!v*r0)`b>X_O#S4y!RNmCDPMd`8vrwL+Q4xH6BW zs+^yKg9ii+(s~Y_4BAgf<3ZS2pou14zF^+ODE`3>ZaRTrPBf901Kk4?ysyEgRyBYE zu#kRni_HPo-9%&qn@r@>^*)YAeK!*eqRI}dd7SUQrg*M;e$vIqy$d^iD!Y=5Lu_GG zpuaI4TpjLBwT-yH$s07>D`!tPm$!I1Ta#8!D25l}fZcJTq1KC^vL&%-d}7nMT+-Dk zxsxRy2gLX5%uwp(+wLe1JdJ+1!}~8C*#7AY!6UodjBk!Vn?LZ-rQo4a<>VnO7$U+x z{ZiPTuY{dS*ywA?M&r4~6Pu^nSxnM%AF%cs&@1q|0#R#IU%aOY=1PV2I6Tx7i$No( zI=Cl(;vM~Rud#U|c-r<@G)WKgX5{>`SUHMJc*^B5GgD)F2Sn)c1zq4+Mu2TQ);r?e znw(M|j$ybS4v7a?!eXz41tbH$0lfm#-~Pu3Q_b?ccEpT@%DjADz5(S(bL=9YKI4c2 zo6-8}T_<SCdDQd0xqnbCkPh+?6B61aNXrEzIc`qDEq1}18^>2ed5Je`u{I-Uc1h!S zO{}~KI9UXo6oTe1^BR^>0h<_Ee)AWL3*eAs<zMcVETh89P)VmCDSCw$y?RKj01D>( zmVKH9K`gdhU52hBU+I;seYsB-bhb2U{-a*fnx~48@0fA@Ugednd0x%x-B0;@%i?h4 zJf-gD1U(H*9;DPw(zke)dZHQ=K7&l`;6>z$)CQ3HObC-RJYMYk8t>cYgV~1ik6l{4 zjWc!NZt_YtAUa%x-zE6E)=L_`m`pSO(TtaUUgwppd8R00^W#bL*Lz88o(H=evzz_B z<<Fp3$KT)J?+x=j!v#hTgn?10kA|#=2mHjJlV7x_m|Nqu2|zb_gT|^~NcyM9U50;D zfAIcq_Tq+pxoUOh)o_bfGW19n!jKYhwt7*+4;{w&Kg^i?>sGI1?W>O%(kyBIHZN(- z(><I&b!Tz0rBe5HuVl^hL{-)7-r*&!dCFbK-ktuwGCRsA{CzPy%J=TnSyNuHC>hgT zUa2H(cML<=R%fetHllUrx)8i?X}I9klg|kD5zp`;;vCkTDiv3;Gp?tQg1dB`;HE_S zo=E&wNMFq|M&Wk?MV!iHx+nRFyXaUm1(8g9XABSbOC-~4#Eo+m$tI8~<SF{~5d2n= zxRl+mo@eqO`Ybdl-Vfd{+WjzIa);dXLN+#y1r6$)ZucNJ*S8~z{$Azgu`(`o@KA1s zZC*y;P-QUg0c8T6sg58zAz8{+Y8ZXg7N~hskLc@GTQL4_YC=8puh%Fp@}V3Ejp7n- z&M;G}QP8s&6p3SMHJ&TH!46&G81i45w~L5fU;S5k`JyKA*%>v7DX(PAr&g1=+KU?Z z=|YqEm{+p)>okdLyrebXg(k7dD_QfMn#8sKzNAU;Cchpv3E1<X+AcMT&E9wSn#2uW z$p%!XNqpQ(8os*FByRLd)_k2Nag&#{<~ucsE&jezlepR6cW4r$KwyU^aSWzGHHk0G zs7c)F4R&Y}-~iMlpip$^akqQ%q9!r(YPiEI8G3|cR%sG<dQrnq7n;N;yppwFr%Bx9 zC9U}`G>L6q$(pazBtGdSt@%z(;#2;<Qj_?!zb|SMznW2#xZ5k0G>Kmw3{B$Kl1b%F z1>Hdsrv#JTv$EOE9tHg&+-nSmTjT!RoM;Y`F(sx%J+ZmM>~>cbXuZE$1tibN6|DDH ziAddp4GHX!Y_}AO)mbDd$2%=}rilxt`ex)(lP%t0rWe%(>J_il&8Antmss=yP<HdE z90)(a4SB`BkTDz*8(%bIIQ#?f@6$;xXACLD7o#2vAY(Xg8$r8+6DQ#@U34_I#%kr= zMeT?~lgEpCvG7+U7XBsPoXKMv)>Rfh?7{BjafHw0F-7H)MwG|g+V7CZvAl60ioSg3 zEb=&3vL#F@C=;<gQOvLQ0ood-?3=~1|Cm>@_7Pnm#zwktevOy3=HUpR&9dL*m8^M6 zSl3am_4md%4v&^S<uOH=-qu9D(afvrtgIxaR348fmi^LV-<!Q}n-9vqSuFb-ypj!w zVzA0M`?!}he9^R?#j?NAD_Qfjx7mE^Xt~KtTJ!XaJ7%}|d*j%0L@4@pZ}#_wdE3-h z2I7`I<*{s1=YKnkJdTuV+#HM)I~Bv&HI9>L>Urf1_A#SBPD)$UIc_tHJcN7FeYF|= zmjXgYOEq;jf)OFy&MRc}=cbTs#kCHS=o9`%@KQ%c|9-JKGRx@yIVQ>8|68VDlfJeA zo0NN^vYUqOG}%vMZZ1pC1^ZO8bMfLRr02ry)rgXt5>di+H&INmvIRC4PcYN0v{;`} z?kZyEzJC?Y!`l@Ce2vgeAt&scfEDxL)_`2^rVEXG@Va9x`|rV5T#=ar6N|$E*eUPN z=X^-EK>0wDUyb0pmc}YQD8R6&A!Oic4ZfcM(yh;pDcr2Rc4UZ;Ws4K_=OD&gqo^2D zjr2(ac5MyC7k8oL)HK9PF{rLzvOj@avu$p-ViO9TL3nalbgq)-x8z52SQH05yN%5V zV1N(pUMglY)#y)oDqK}uALJ;qRl<#Q=#%*F>+AA%oED474nZN@u#i4ON(FWBSd)oV zy3(7mFdI6!*Z?|(^_=wjQ7>*`Hb4yuYix-wG_6SIrUX^QQ81vwd`(po8up__gkv9? z^Ew9@<Av!uuSok?n%6lpuiQc7UK5T+ti`O((OJbz##zM->#PpSWHC!S7d7?<kT&%6 zyblvDGspvbj^vN~aQ|wKIIHD=s2A8$D&R4RpFRpp_(1HAH^-m-9~i>&hB&F1GoLX@ z^iv^(F`P-0yW>>Dl)QW~84T}=<7IK;sgh(cOW*iL9zT1_$-tGejET(y<rFYm6Sgr< z)NUS>#7y~~d+(8*65Hlsx_X?h5v3Dkx7Rjl_92nPL}Ox%_l6?bugo=7N9G>^b?rsk z6}+Bo%DtlcJ8z${a`ohfsp<BIZS_nt>4lcY6I9HnSJ!%&a0AtV#<uz-uW84j>^)eh z;LXx~XAsc_*(uuhSZSwd(yLoM7Sof2H6!jR@(;$~GOdViAoa<=L$(D!yr?PBC`+jq zlWCH9LPUmmT{*Av22{p#Aj&V;GcB11=7>^>=aujm9F7{8pbzdOz=Bz+*aZf{xqW7J zaQ7TH`1Rg7Ip0E0qu9A}s6_TL($j4p@uAzs><Jhk*#x=5Uikhn*?V|%sE&FLUSKby zjjem~bfpB{L|=l=P&UgYIS9UffWZfHZf9@C7P*%zjy#;&h(qM#Hj)4mbiHfr)flth z0*D}h4@f@}D6mI?neHDs2+B8(7)eGNgc#7f#p@c5$8gn>*bE!vAUX9$qbl)NhV%pA zf~|Q8v%S>OVI}|@=r92!Qx7MHxJ6r=@qa*oIf|Oo<=%=R6(^Mr!aWV3k`i(2xnkXR zL~5N55ptzBWZ)cE00%pS+{tu8?9<?e&Aha>AF&|hp>VbikW3&QIUR+o2`T+(_6@KV zTx?_#@)%9~{Ys^CLOe$VIh3b<*}#1{>T#PE(_!nEfetGDY#8<&%P+=@<8)2F`|@Mt zjbrK>AK+&--Owv!fTM-rRY)ZcQ&hw;{VvqQVHy<EkcWhTu_Ped<?&+XFl>kx&<wB3 zLIlxT-rYDLQie`Znx8_{xWHJigu>Y<?lYa*d26#CVMX*6DE3slv{_J%-?%3jj*~gp z>yfR&nyE&?c)J0qFP-k|9UDJaS2=CqKz-mton*GziyN7txWade-&Bpw&f-PYGHhyD za-NFV+6tT*A<2{`!=9FtyPd;^O;7b-P$BO{GQ(I+Z}!_#0udfyB6*sO5fn$i0R!6k zOl3;4T8kQ1s_Sg^){X5SJulz+bJ^hs;fAl0l~a@*lLsIlQp-k|)>;_KAooRtyy<$- zgHmB-&Jf4bLEd3o#L4?M2hhlywsTBMAS7KR^+4YFZo(ycStMnX!|^6Yj(|r8u?Tk; z27)$OFPX&M6_dEzvNPaFpkYlHG`R>OJV@raA{q*O9~g&(_U5|;EH3*3SSU&*4GUDS zK7RucsPSxoV^>OCY_`o~>DWuMb+%%7y#z9YpJ}IL5(R?OuPb=K7?pRKEK%6-PC1XX z%J0*{9Ha}#Euh2t19kOD{wtW{sTBOA&y%er82UIDiMmsIa6Je%X-@>32-`j}K=0$R zP?{hz8y|4_36W*-^qiHGn{Nk|1$Zc<Y_fLZWwN&KDM19^059UJ5+P`EM!xb{Z_LC9 zeFn}~Z1s~13_*|i9EU@@2#!Lz=~igr6p9ao#A0e>(2_P+x8^a=r|3Q$NpDA(avR+g zm^04ft0pLlB7W|}=|(7qJ2F!Y`Mazb?nEV4#@j@2e8GpbNd*Uj_E1vp7zg0WDma9l zI)Q3j;kQkw#rX(eN!#1K?H_6&9xX0G7ffc!xjs!4(R(2c0%u?51G?rViyxRHknjfd z#Rq}hfscCTMu*+o6Y;;p0Wo<nG_Sbu&|sKEY5~I9>FS`}B&0Zv|0jg?6>rl>9fFH` zoJiOT)}i<+EJuuJnjyLDiAoR{w=K!Z3cXG^Jmcl7RoIT)+rgU<6{&AHuy*v&jkkN= z{jB^i&GG;L@1Fw(U=}~oY%~xxDMtq+c}omG=Q%$f^gEd0lbz@Mkj<U}=(uX#a@pge zb>_2gwe+I(SG?ktOlm(WY3;>;=5_15Z+*$@B!|lzkWy9bXfdSUDp_3Kfe-Sy{N``I z``z#UEq;ER>0EyA_m(eT{+{=|_kF+r2Y>kfQ~u~*{L4T7KmOI9toYae=HLFifB%2} zhg1Kr|NH;>kAM1~{@>I7^Pl~f|N7_u?Jqv?-~Ye=ary^8^x<}PMz%6rm95U!WNWiC zv&n2-c2;(Fwmv&2J2yKo+mM}~eI&aeyD+;byEwZf+n8ONU6x&*U6EaxeKfl&o2vP{ zI{R35O|~h!HoGpnKHHq#kbOM6F}o?-lHHu$l5Ndy&2GzX&+f?X%s!Fbm2JyDnSCnz zbar=kPxhJYv)Od^x$N`V7qacy7qc&AU(R-9_hw(ozM9>aeJ%cdJ^On04gBqtzx%TX z?C-(sp~Bxcvu|eK!r!;$Z&&uP{e36<F8&_LzL$MJdo<gfJ(m3-dpvt0`%C=&F#8ey z_GCZC-%qliX5bp;y_n3(-itdD@5NuSJX{UpzA&i)=>gdYP7JeZOWwvcL42@LALP?3 zi(Ur2m<lDSoufio?yPLbZhxjK`jhOIcX2?Q{Z0m+2)OY?McjezezkZ1ly?6Ub|0ib z!t2*~Y2)=$nix?u(B^xXF#lL!=8L3>b)_ayR4XSX*VmQYz=IYzkg2ugdmlV8P#52e z?xD^#4&Ec(w~+S~QL+V`xh8#)w{Cfeexw7(Oci8T8?}SqCTLf1Vn~}d>)z(Yr8a+9 zY?E*xZwFxfHevirg%J<;28}|fgoP3XVxu>Fx6aZNah8GxA#FY`Z4&Kr7A0FXg1|61 z#2F1Ay`VopAv%*LB%kSSMSnml3ffU&o+8FeXo+@Km~pR<>H|G2Ok?-^u}3>DER8;b zMo~?6K1BP&1DWLwO*m?y_G#bWkz#sknCFV|JCu?mzS7pN0H7TmmWSV#ntFJc=Wp?w zJ?iOUX2|)LH>Kx?rP@QWEpPupX-cnpe+z2jcNvKLrH~#ZmI2{GD5WQwrTuTj_VqZi z@CKU-nFwAKArtWx>UUp9BXsReNUG=iwDLwJZ<e%~c!Xu~mX?zq+m^(!U)3i%7m|_Y zD+biYrc8#ly94c_qD+RQkj4Xn9mO~qR_sesOef=E_J{|e7_eofwg(_(HtgXSq^i!w z6Re5{>{F-XF+TacH^%v}iqo+*@8Pr3n9j!@R>gxd9QQ~moe&um9)wby5bNO6u>&3i z0f|U7A|evWT_t_drvy|phR@)_{3M_Bi(39O_P;HZKo!XXewTE$C5Od@T^=5^qnN1h zr(z1lpVxT?I*Jea0aBOE&wZ)e?#!JW0=bZKri3;8!pqzC%pEKrN(Y{`oXlr)7IJP! zmIh0VFz%u!TluMpwkp`3_Pz|Z+h>IBS6<#=yR8Tt`&&+S_$^}nRzWJC?Mm38Mb}3q zzI{d%nZ^ybYP0ah1a2rz-Xcxn=tE3c_g(gMb9kH&pMu`M$!A;QvlmOW%IEp;rugts z7W@RC-58(gO1X{?KQ0f2?VgamPVsm>zHxBZvcL_+0%K8hosf-<z|M-rHhVE1CDbGj z@H6(qy(C=Y95!}6N@0C3>Yq55Kd;T^<xA;SQ4W7TpKW3huz38}KXDPCd@R#lSV(HP z(`i3ZZ7HxOx-;RWly0tIjjOGjfr%^m^D5~E_L=gpDL(tCcGHJ$1|~M~$raYkMjXO{ zkC>DT7s?c=3#t&K<UnoX_y@i)xXT!tb6pelF4GyDeMMn5^991n;4^F-d?_G6YZwd! zSUK~;W+xS+z>P%;46CDUw9gj!EL|QV@l}<Zh-7#}sqIUOZ4)My_O}qwizA@3O8XnV zVWaPhO7tylUMOwa(8n3vEOUx88KkJ2+3f||EnsgG+kF#f5!>f?i|uZBTtI!KY9f(* zCFs7XyAx2FUhK%c)yHfulJh#ojPcyg@tlkCU>wbfJNaup%UJ(Q3;i$cx&J##{Y%@y zM?>#4sDk84rLvyklROWh7JLukTPN7(GnKx=ekSE%fI80EQr7wuYn>U!csGBoDU8uM z$Nu2>)1@&=+dYr*fK2#jO2Dk_m~ifoPILTc6ww9F5lH+!h+m)h97}vyD58f6I$T)% z4%Yo3*#{@+FySd*;<M9Lkx+(GpsL=f`irGO{tpKe^rQl7CVDy`xc+hpjQ`#v7{t&* z66ixj&|d_ksrvOGpZ&K2(h9RgM)UyR|2f~s#hOO?-RBS*pZ>1`Vc8h7>F=IRf34K? ze<?Igh?Gm;PbmK^KshUu{)RVeO!_}dvjrVQT0E_Y7ZMZMqVeL#+2wzdYO@QzZdfs= z=|~}D;WYn|eOo=dd$w9l?V-$!>TWkM_E6?o!#oj%^&>uA7J2#afSdeltBdE(UYh9E z-}6cq8u@QgN%%!l^7~%WE)D-TDCyll>hCQy@?Uqn-|g=$G;#&O`{9gNKR@P`Ed23L zl-MN2rtGn_GfFO~n6ksNnzH|oI|x!P#F1^vGx_pg7G6T9gbBCsL)=vhOqX#0RP0!7 zP^ztAwSU2C)a<xl4t)>%Poc_EiGNeF$9_0o)4h_Q??*loTmFB922&g618j5~xB6sj zp(`bAPpRco3N5q250FKz;wauPqrjtd@oTaOpUt0mqqg?{P#P_)eQEFy6q`E<GWNkD z_~naYfx3nbn59bU(UabzsYkz`_PCNmcwZQT^qHdhuf3J8H5NCJI`F*(WCZ54KWP4& zQp@itv>efV24P$tV4Mxjf9s7Jntv}Hv^4m;1vC#wBoA|5+wAan3hxo1nz$MN-g_~h z=I@}FKxmQ-uDFtaQB|CFR3jhK%r9GDN%5pY@+i0{so4C0jQ_U@RuA0p*U5Ri>1#&r zOlBYyP31p5+rM^YG~jI)?j1rC#X7nP?`v+dROf9vtt%KzRKe_~IQ8RNMpU_R;aVDU zbPZoJw>KtQUMjOgYNZ*O-PNonk%%1M3T1ZF)y!@ySzU<7)zJvYDtUa)EsRWehu<QE z(W(2;1m)S6*rfa_AUSm;omXmBLl`@oML>ZxY-`c+y}_#+OV$v^&g$S5kqw(}v)fwS zlRB}_FSUp)=8?&Bbi#_SB957|T;STB_<~Yae1SJ=JYuOdT42S}AR{HK2YQjW@PwlO z^#!mBOfem(I0XQ8X`mOET4cm!kY;h9ALT%KRa+4*DJ4Y`5xLPDwSgk85{(uHDh=An z?`aZ>9Ij?#(*cWBUcJk_<sT>l7<d`L4G2IGhEQCw*{w4*dwHo@J$_ywAT+q6qlsCh z;1%AaNx|cbH~?c^N1XDcI^aJrDs>O->_0>Nm=DYtA`{?<MirT8$`Ch|>hSP7P<k2} z;vm0SrlWCXk5d**fjB4l<q&@>I^m7P7!TSpsXD?KapyB*Y!Qkp>fK{}tpSbT;-^_= zE@s%76C)~na`fEbVA~vyBy)HzyIj=m918!2s}+YDb+_x8J|zBwJ6qk9x3RI8MQ3Q= z#Ao<`r{JVw(aS2H&%5-s_*eTTw(-|dbg%M+g>^LsIYK8YdPG;)S(6vI4-{y|8}TiC zpB0(=4Fz$TB=l%RIWd<%f@b^H;%aSe4-VJ}dcU?e0MOM5`$e{avo&yc>7kkX`G9A! zMH?@H{uO;Kpbt!ZmA@7cbPcJIuEs=vA2iV6RhFjgltimvK>sc)^27{s3w{toWop2F z0i6^A(1TNV3<L@<?j%|v1uRv1-Jnk02ic0IO*=Kxqq*o1>n!q`hy(x#@+r_G4t46; z7^6o7*eX4$;C`5|HAoEfc<QsK$8VMBQRBXhuY#vMz%J!D+5zJQst~C<kgn_RI6%e= zH1q0Ab-w3yeyWF7G-9hm?MMX5?ou5&=+bdVgeqjN6g=*AO5syyW%1Is<~aWlXw%nd zWb~ZYoHE;%1YB@YOblDNMc#h$FjsH#t!rPG3}9tD)<0h(_L?}0B{@X*1D3mcfMvP@ zmRLW9<^109GF=5raAk1G;2Z<wg3rs!cC7Lf72(9XCGU)1m~dUtbAJkwOjbW9i&IcD zTiX+;BnD4&!(!<Js#amTei|JskoS4&SXtSQjXkRL%6^j>-&w-)DzA0`u)HG~k5J#t zSdLYme9o|ZUjo&PSibs!kobyN)^u$}s)&u%V|jN4mSeRP%g-Ey5Xl3d*$|xK<wAU# zI$P5z4Igr7DG5S7aqdje_6pK}U?m_;(&y;=!OeMuMe+*Zw-Buey%9VWEhiME&}Nk& zx1m!oc0eW8LKF6)F|<&X*Vl-_4@o@@yHDC=s(q?4xJO#Az2b2%rs#*b6xE9bpqfa{ z412Y0yofb5N&jcF_<)BR`tz5Gk0Bpi+d_(L`Mw%8pJ{AwHMhq`ErI_i&#FSw+L=s= z1=b|j#@B}{LKgb-y$UT4w?c!-k-s4}%xtwBX9-%#Mw=I)J={tnMxNv9i^E_be_ydA z)BgA8^O=j8LjvBR31R2^U=ERA2G_1ejly8(cMO)-1ORtCPp4M%%ro<Wl=<APCw8gE z$SjI-)+-|RDI(YqPWk4+i^|`_97Po(c&fKq93FKQmPE!%B0{hJW)m;Ki-BTEsu(QE zlocH)V_0|x%6QoT4nY@CHbBhbG!p-T7Akl<G$8O`AaJ07N+5Oh2vF88pzN8q#u*ZI zgQSl*fnKRcQJnwdGkpbWlNksB_f<5vpS9w-aagsbNbjrLktLX_qUsHSaXBR%AQ7h5 zc+JwKBj@pqesjMsssy83Sj*_@ncG7NbCc8ffw`U795celoIcZ#Y2<-fJC)zE$fm>a zh>H^AUwA#w28_wJqaM0fBYdK2ZqVj@X>$%5z*+_OLK7`94#^_ymJYPpWWxS&%^My& z;kuRE0Z~o+(x`x{zA%h0z)WH;HYSFV^Di7-vbO0!Wu7^%Nf6p1JtvFfB>?pqWi&in zEa&S{okvWBmn+PN;uV)(b32J!;Oxr}J~LlY0K6|BJhKS6loEa`LqTgglzKJ_W)ZQ( zBe!<4L$Gw{WPVzqvu1wqWT7)+QDu)54(O8+*u=%svO1T7_|1l>n!hYpDAm{?Pzkx8 z-;U%}v^Vl%^hQOs3rf|*<cR0j=xM5`c2TLCEXx^}@+GA@erV&31)~G2D{E*F0Xc%Y zW47c6kvr%fyJxd+%=`HumhwQCOBqeSvVl*A{2EMFFCQeVmm6Q_Xr2um9N@8m`epn` zvWz8r%I=2PJ6V=*z4;;8M_^<k^Jaj68L=bLE~IzbrLNpfwqtYGsxr#=rL8eMqpNy3 z{=tNv!V;$@8z5(UOSS>R(@7|o?^-N}@bcE=NPqtEZ+`rnbGaGVpWmooxjm>NSKSKs z9L2do2&V_UME(2)-;&m*WD*&DIv*pkd*1h<59UprpKVG2qVa~Hgy-iwXqRZ*GdY-$ z@<~lz;tf<S0%|A_0r4rx$S(5gHZr}N>lEIUtl?728D!Uw%a8?gU{cafr-0D-Lve^k zI)!^6y1j4`S@31GMho;7Y}t(t$$dIoJlYj5kY+*v_^ixj#Q`z11zsaMR{(?R5iWPe zatEjewRo1A!iyK97FQsBP2qB9-bRbUfD5hF4$NulV-Dr@3MG9#xV*7KPZY9(5h{~m z%)(o`)>|rF_WX6s^@q9p*c>nZVTs8NI#^>|Wjvn4JT?HJ#va|BEGJ1Hr&5u`luuv% zP)bj0+Od-5_ZpZdWp`lh`J@}`@ZqfUdXHwZaoW#l%6waAwRFFAy;s|!<lCp+Re-j^ z%UWtL$Sq+Bfq7MMcd_Qb$Gmm>uagw#p!^-P^2SE^=*;M`DY@h*wbYKl@hIGEE%#b4 zM#8%K$$KK1yipR`Qd=$vU`$r>s&=ekE14BgF5duWcQx}^=XH#E9HVuhWAnUumLG5S z7SD_$0YUyEm{RM1@ajc<6Vwur+<p2d-+=i;{*a_bpnHXUl|E1q&O(6&YYo12NNPTU zad}cxHvPHbx1h+nFLJ;v7G*J-%g_77OevZ#_DU9uLccltRdv>h^%5^>u_%k!{N>Zd z^x>Mb!Ygg`O4d9wU!eJunhRuIc*#q>q&3eRbophs6rneTGBWbZyplD~#I1y0Bf+9} zvM}lG@=`^~VE4%9i@l{T)GJDrn8D76aHYSuXd9-j12tg=$H<Ja>rX9{UIB69<N3BY zv+yN&Q&)LYHkVY+*;uM)O?k<yhJ=T7=B2yZ-^aXk6FgzVJXzl1HD1g*<oo=g+lvS> z#WbRSlUFkIGw+-?dab{=zQuC(0@r&1>y-z-^GiQB6HRUQO4e&<zPKCwz4fYR#5oN+ zvreJN!$>rx8RT6v6*qfx1|v11s;RieOWIUW<MGjM_4fuCZbV}m2MTR3cAFQo4*7nT zskq%M8B&;4)f>IT-&^0JS9^g^cmeBGgmj$iyZpU{nu!ZBzTf8Wtpjm<E-lM=brw&8 z>vxE2h=f`E`g;=QE*%7WHGleN#d{@E_Oh}aYg<rT^y=T6LLzSKc@2I{Gy#=0+QO3w zOa-Kf2C(_@Z<n=&Sjn^n6W<kO*R|8KGkV~!>D7+_q`wZM6s?Gw5kE}p1>1v3{&;T| zll<X>v&%fb%sgN7x!!8<u{XhoT*5GF0$9xEi9S#~TR5?KbV$_@J#S-pCl)rP+tKJl zIcH}+nYHcMi%D%->4+fMg==5oT!NrPez=qIb8#A#byh`H4ux^=CSkd@^XdCbO5O&q zYSTuW%rtjjM<4NG+YS<btQ&tY9icOm`$QQan}1Q=r)}A8z9ob5>#bert^G*3JNBY# z0Nm(hP1RGgq?IT=mwCAk^MzLn?*f11q|h=j8%%eiTZU0Q&m<DKDST^Q3By;FT0aPd zpc~zq$<a5~gBgNH`S<@EsZu8RV6b*j*Lia`DC*-7gUO&adpR4FmFsCxBtJL~N`u-` zYJH$%P^^cnoN-V9abolUa=xdMRn^J)o>^7UcJd{Os<W~kYp0y=bp;j-PEhc2$dcF? z)GZl_Zu8yjR#xA5v*Qmf91NDJ+{ErqL_4F+;nHOkPbcFMSrs@r++xY(u58B&Ho2@o z_Zdy9JFp)3eM#dsB{6zAbfcQj6LhTcww~4%H8@W)=85SgElCYEKrQwrO1X7j`xjc9 z$yl)^R5#h@rov@*G1tC@c*nJtcHN*%c7z~}$6MKs<uBK3R%etD|8oFVT{rid0L~Z4 zT*l2aj8mr*H*S|^baetWdE>;!%ox8jw3Y2x@*j1J*8EGt8KE50$1IEywaZ8aXJ=|5 z@lYy9g-fU}-}aYRY@aV|i5_0MZEytn=l+Cy4-y~_CNCEWvIROBkcqr7+jngWVf)<o zR83n#;qsqGGlco!f=v&XOl03<_@3&=XZm0-oGY?`bSq9?$N~zSqAw<kZDC}kwkEwT zTgF1-Tk=U{B#JfV2kaJPGi2lZiJp=raF#b^ISQ!i3BgCOfB=3sG{NK36`F2{cS#XV zdY6>m_#RMJg{HF|9zzqgsQp9JdT-0n<WAjtGthpxd0BZEsC*827AYNl*08I|gt!YU zQWzzTyG|8lWjod}j)gi@Go~_l2wGvPeO;{e3cGY&%(#rN>MspN2NZ{Oq>f5_UQqAg zS>{cs_&~9%AL;sJq+*$<|3uV|sWsm!tFy6^=|w~0#F{#@RCKZ(i{7k`E8gN@hZso1 zE!h_jn%Ec+m2WOLv%b`f%6fB)h~I?Gh6T*U96a^Gb9%0~ar>YwP27kJ)e8bc_UH-C zDEp7Yh`xmMklFd()Rj6a_2NayW6jj1a$%{aSppSk-sokcBM&UL!oCvk-T!pC(<!Gx z@q-P@=$U+=8xk_$G);t<93VE|y={@OTXJhAEC;5_9-~$5*v?G>$84v9txNqdU(|%r zfpHwp-qd5MJ-5c&p3>{MeVzZfudp~eN6+N}3>?D6VeVjE7aU>D>c22ShOCKc+h4(W zqG(>-jzu>)yEm391VwrdD=1RMvcf=>RjbTNNp`I_f2*QXS5K?BUL2ZrUfiJ3RRSAC zCQDKv^I~e*Dci!l8?xUJbV=SC9;}<`Dp$QW6IaVp%wfLqCuZ*I=u%#Bp2Kuo@LZGA zSM^OGm#XBd>fXEvGf#DxY%B)dU=toV69e3sOg2rZn4#X0yRsb%Zq~UVRTQRrA+ga8 z*zk(D@;mf!nPR|HS=Jt6fXNW11fo4}ENV(xWo#v&seNbcN|AYXsi{<qljeq5d$J4& zt^`j2q0q%;$gT;Tf&)i*W&&KdIxF(6>r9+jYfI$QyT2`&N-S$&!J0U=P)X(r9w6Cj z1uhbadPaLHz-tnfu%Vpr_D^7x`W<;<p|lh(7#DW9igZ$^_JSek77_XuO5t9tT>W0d z5jF)#Ohe}s7Nf!v&{wu&g%0zj1$|&)r$3Tg2Gr}+n=!(SrlR1QEv~MOe!4cG^{OGx zDqz7Sn-%xj1u(7G!48|1^~BaSLmXqsr=I9ozCfw+WT)Trz1157-!&2m+gr7^&~J9k zw#;`^^)7G!jP~XL^}_=qmkWAOj5OUqE2g_mc1-Szh1*l&Q3FE4dS<Mbeeat2y(xfT z^GpBnL~vrkRaBbaSivyO3M5G01ZX_0ASGhyrxb&<m00$qre<SdNDO01u=21UjDV`G z0uO&ft(LOF7qx)0$k_bac5MDp4PS;em1o=Y`}XQ8l&Cw#48lxOAhA8g6dt@cz9Vm^ zII0-)BHP9~nw^V-v>6^gtC$UU7;xA)C^dF2Cdw)#eP2HMA&JS`dJ^wT7?G^riw5(l zFF(xF56GZ|Ln30UiOGSVEHR{J8y@kSJQ|iq!+6AR@@SzvT8KydCO=y8qJ>8-t{8Z> z81%Ni@jh@`t^hILTg@EM2qHyp<x?+CuzG=G^+L6>`_yZY*)1zyZWeS7SH(en^GSVy zu}~8SmTKru=NXp&Pju$Q1Fve=VmRiAhlu@pbv(9W>bUXsglNw+szPr@v@A#BLKf~0 zb1!NvzDn15<*P%Wbsa$Gc-f-jTA>9Br{0ga_B)d0S}@PZ(}Kd~;3GL=sIpy`V1db$ zg~$Cf`n(R3$t8E8epNHG+d_Xui4hcPB0c4^IE4_Zm_2C9UNViVyqrxV%Sns*u9quK z`@q+D=|@y;30~4Ajm;;Cf0pWp#!g)Uv0YdbS(5bkOmFM*VD?DAB9J%BZ4ecctlC0% zqTud;g8LNM!YoBm@D)hxbRTIzRvb&$OviL+xXQ%_p`0KY=O97_Lo!JW<=}rz7{zKY z`b=MxUo6TBV2tq0)E=NXquECXMRqzXMoWG!N24D`q16m&dw|e}q_~Qa59J}n3N|EG zkRj=$gAXKFSlzC!G7P>nHTRQmCy4+4YhRnVhC49X7Pzq9*awSx3tmH)6`Ex1;d6(A z9lfF;R_GoD)m4as&CdrE+}A4#VukKeP+f&6*!p}x!OmV$5G!<#g6b+n!M5iE3Lfee z1+hZ+D5$PN6ih!KP_V046vPVMqoBG9QLy{@fPzPQMM134JqoI;5CuD)4=C8(D+*$T z?om)(g(%qhd_chyy`msi=pF^tRfvLJ&j%Fj=@kXBLiZ@Bu0j;-eLkSz$zD+qD|C;7 z>MBIRo&$w~jh)IqtZPyA&1IM>tY@_MhGBP%VmPSnu%{CpcU5f_D#t?@%hq{C1vZ)? zy+Za>?~v7136O2BhU}Uiakj5_$m*&D$TrLk-!{(u-~mD3)4c;(SH(d)Ads~sdyRWl z)U2A3<m##f$TrM9Ads!@9kRMA0kWxTlIwLbO!f|0U6laY#sdS{`raX{s}dlaJTQ=L z=pC}UDgm;62Zqir>>aYYDgm<gfx+3v-XW{25+K`94cYzAE~5bi8!{KjM|SENwjuZI zG5|MTwL9Zg+gF6Knm<Sm_wLeNYXYAh*IU(&HB4Bt2FgL^(S4Ked`j*s)R-VdIxP!N zc(tsg=WK;1!%TO_BtE#sKJSx20lF3K=rCIx4&h$hfVT6)r(SPoO7p4dmn3erbq?J( z)MI;C`GzqI2t(|u>|Ah<gINGF#!`)ku?z<f`qIu@GsoE@;)XF~?AX9dhjSa2PU%#M z#=^!Z+_W4kA{}@ro(;)WvFrkFt#S0*83lBXLv1+4oqp&80a`8oOAHn6NfW4ftd~cW z>Fr+_@R-0V5d$f#0U85SI>NvgN=r-)YS-`L%X@hW<#2Swd;>CdIB=9t|8l;&dkG_* zcf1|KzPlUwBR;Or=uQPUykxh^w!neBuu-L`48KZOeDbijCSC#xmlJrN(}+}-jC^@{ zmX^yVwR9Lfm*e(mMKT|kI@~rNIG`chDzei$f>1&^^f&^Tc(j_Ykfq8FJ|5e*0>6b$ z0Obk>EsQX!0`Ee232Gn$fLBs>RFd5-!Yp^&at^Qsg^iZ}{0j})h-2OmZm$UxsEx!} zJgCl_+~>@jU=k2|=qGkn1z^a`$s{pg5X6M<K1o;mU^_Augo&*RGQ6f#$D?X`73x!g z0d=o?*Hs}^Q1{-9<7MtY-*4S}Q}2+~RSA%7tA^}>e{wOfIgGVyF%WA!FU3HF?w^$y zh*1A;CI;fT{+Wq^2={)AfxXH`DF@mE&vQ8tN85uONbBss9JncPpzh^BU6sIXw^no8 zUM1Al-XW{25+IvCFp%BRJ7jfL0%Vib#@((??~nv#4K?JG%@h*9EkIb@LH83p>G3Rt zGlU982D*dZQdb-{hw~lJluk;n^;%ms#6Z0%IE+S(K$U@ta5D)c+24`f9RTfiWU)fs z$fm1C7Hi#-j_kzdEF=5Vj)(`?iXJstc7aZZ;nXcZxTbcscZt?|K(wpvvvpYZxz<$) zv^!P3sxIlI-C4cCJ9>w#u1bIm!O|59>Hd=5eF4C3NiSBYCB46@SX8l=<*)EXh13!= zFRH0dl!utznK;GHnFf__{#h|Y3ej4Qgo-U(S_syvTlPIIj)wwlGc1lBU%iKi&N@PO zqUmvGCq8B+!CkX;SY8};RRRf$eNF3V;RnN`R{S=4VBGDG^bU4il>p<$1GA=g_YPTI zl>iwcSu56bugvC&-T|wt5&*->r~vF^J(A#_-T|wt5&)AtH6+1}2UXKsuX|8W_6}oR zl>p=JgTl8xH9+>NKJM)u$hs;HTICe?ioU0MhpetjfNW<(->w6MzJ0v|Syv?hxvQF| z^twWx?j5qaDgm<5@MYgYh{>&3#k~?=`&K(7UMIQAf~2lW0BuJ#_IibEb?=bXRSA%_ zt8JHFA)D+Svbrh(vc1(fd%Q=UyuNqH>Z%0D+Huc)UtGF-<2O*Cx>Scx58rki6u<8D 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%0DR!E1~7T&)BwybtO4HNqczt6EHSJB)~m#k8i3E< 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%0DM=n=TM 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%0Aq`Cqo?u(efS6l{& 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%0DrPseIEq zrt<n&^*>DU7q(6Dwup+mY{WAzQUBw+;Kj+kw2Wk-z@6NDeSFy#HB%LEOTehmzmvZS zzf{ibN}4CZ#;HN!JwCHDza3_FP9|C`J)2z+--d;p1sDFt)QQUlg9CVuIV~tcuA$;~ z`r75#62%v=s1@@CCwKh*`Uy@P4Q}KOD-H8I&k^LVAKK~MdSbSB=l&04_U}7td=Hls z-S)s*z>fH~#u=ODpbuD_J=v382Z#IM`>Upq>yNobIi~y9e;6GM_p?;9_aGO)z|ObF zxm;os@~#7jDc24j!fykb&};Y(kM;uCK3Nt#kcFF@^JkbF7!Bal1L*kD{ni=?joZO3 zO&AJS)vmz@c8hzF-bZtse#LHDw>c#mV+s&ffSxl3{3eau-HGTqM}9WDEDqFc_R`$7 ze~&3YI1eOim`wB?p&G4SgNO;Xt<)KhF!SoeJ*tJm?s!@K2rMMDzl<fcm>97HecQxA zHvsr0m(AJtL+#(!!}tB|-#7R@3?y~Z!#(qOTqn=@#FFN$hx^KK3AUS;i2IN^Uxc9` zgm&&q?s*P*PZ)9@3CjEsHe3=5aLphsBfdbx#Nnu+qu%l7;3sJR^oxyXcYZ`Uo_wx9 z#9#L2ypf!aU1iwbS{gP>iJCvR%8>8~N~{j+I3&aU<UQ~$PO3Q!X6}a_YGc&gbf_>) zcve4Rpzs`;wLO6G3J+k!DjvYV4fk>A1`c8m_Rzd~1kVT9n)*#^83#qygHl_A9aA<F zW)dY!X2N%=&8wFDRqO2VEp+#}HT;DLLU6$lWbLe|KM@qDhr$`zOXa(>^lj$Nx54fY z1<iS&6<fRJw7B4|RDQ@yU;M|*ehahl(ii{n5{EZY;qIY$GCZmh@4Yw^m}ejZ_D!e| z$C+f<x{}@xSo9#)pVd*M4uQgES&W2XX%{Qbc`7iRqFyW)L7)B2Evz_afjM@uN4sX9 zwnbnp6m=sIo&hb?hMpLpb^z+EbB8;`|AQ--`ogvJ0&lUUj_#=sc#jQ^bWc4%CSrzT zfbx%U%s@6o`R~KKDE~cR=x)5Bjy=&DSajCA{cOB{i>3*L^^gzXx*oB9vj-~;o81Qw zaa99B+LCQK2>AAcRJHxtec!(EvpxH<HVs=cKOb$dpl}P{36g*iJ;1vgB-jdSpzw<8 zFa!tVDVqn!c|r`J*^<3}KRV^w#o6Xi=-b}4kH3Vk4%>JCN85L3))8JnlY<z*V3{W2 zK8%wN2rO^8T(X9hX;`PQZe-3OQF-phz@R2gD84g?j8=qdG08g7c<2jX`<LGJjL8Vm z-~`)m=T>8H{?kT-Yy!CB(13-=M~A>qVkJu1Y;!Az7LN@zx3-VVRv#A(+5YT{-}@HU z(yYd0tn34$5%#Ny&=3%^&BalzGp0>S^kZPQE!h3efZURar5LgZoS!4U0BvJSK`nTR zLtkW1<KQ45tD^P!gExN$OXDkK2a0Em&{T`iVvXo=$D78W7OGh8br)<v&uZc_tW&{d zSf_$ZTc-l$iRp%mmaBKYwuszeuE7ZT%*I$y?CBFKep6ELowfR6L8~h~Y<tI3#f~rw z#fwp1Xp0-_DS6WN>z?rIp7^V3LDV{DI<ODFrO_Aik0FhQGcW=qkJXh%;~^Bvc|u=m zha$e%c!q$%nl1F6zR6jY$&fr!dV>XQQI3Z<xM$g*uIG>`c<XVVs`WEA4BvbyhGDH+ z6{f*?I<LSOuk)#2iPqfQ-?nEtmTPFY@(V9|@x_;1dfDjZFL~+9uK0;7cl_i}z5J@5 zzWNno<JmRWzVcPC-uW{>`*T14nqT<EU9auTW1kHp>z2bW<I!X}Wb+Rd&jUQzicLIY z^Gg~MgkQXHLxw07f@f}ioaYVTzR3ko_=HQ*Y<5LAgK?XXKqGV5b>fXf>4i6riu;I8 z`+9<=1@`3zfoHf+M0YmzJshu~QuJ(Emjo<#u!7DaWH@6N=2E#pW7#Ah^lc^x;b{B8 zcw=O1JA?-UBMWB?n$w!eiONnr`AP2~Yqk7r<3@Hee2Wc`{%sLG2$lt1GU!zVixd4X z1h95wb9}HfSUZYfWvz$L<98qv$-9W=eoG23f9TV8n}~d4BC;PI^%~HGdno}sz1^^5 zPu4-$>?E5CSk|-YaM{Qv!)152`2C3Rk}j(drb+X23E>4kxN(G+(R^iuZz&=Cvk76n z-4JF^MT8Ieuma(5353ICceeb4i0}zrRw2w;c4tC(i4SfZ;ge{-GQw{xA^hruu-<M6 zv!?>Wb73q|1rRP9+3|4Mot^w)MEI00s}SbA`^tpy2|l=Sgj-LphVUIFgs)8q>+Oax zdnzEj6i};Y%i*$-Er!c(NcNux8J^H(6~gBN;VdD1itpJt!jpK<$|HPt3E}aCu-<M6 zv!?>WrvhsAtaU?DTH)L7Z1RSP@RTmA5av;KuSf__@WG8EJdNfnBRo|?`09kP-fjr9 zrvk!L0ZYhmxP%Oc%kFIYKty;(msJR}?&qq6@Dv~1IKs!#Jcsc7V<jzpe+l82CxrEO zLzq1wc83n4mX27~vxs{e!p9F1VPQF^OTto|mKe|a$%OC>AKW;?^Jtz!c>0e@2*0_6 z@Q#GA-fjr9r(+pASUbY=ha$oYx~xKY7zqDFLU@i3ZXDr7G|wU2D$m0Yl@PunA*{C> z!t4ntYIG10o(s$iEgdeQrNbrW;lo5&ST5<ZilrIeduc*=fe&sR;bk<>Av}N6XYDo_ z9&axp{E~#Q-fjr9C$Ka+hzKtQ)S#uqCA4(7#5{Z?B78!ZRS2`rYBV9d#0NKy@JTdZ z8R26kgfB}7>+OaxdnzD&Dxd}}eIRM+@Ga)yqY>d#x~xK&B?^}$gir9njU(KeSPkJv zN(f(^5Z2obVfIu&cq(8CEgdeQw8ACk;Tt2u6S}NIn8lbEC4^7$JsU@O67N}ggl9_# zUziZq+YMp%R6uwxpavNZmyqFbiFx>@i13sys}Q~%2x}QQ-?Jl|;DZ}ScpA-DM)-IM z;TI)@^>#y;JrxjM3aCMb!zE-mTw)%+IU+ox%PNFl284C~lOa6C2RDxJaWr2U;rEsh zJ})7xw;RIjsetgQfEr}@V3OhRZFhG3mWc42E~^l}5(sZkEIq>qH;(W;ny-xT@0Sqf z1~Kj)>g|RwdnzJ)BzjA&qY2^gEm-=?n8a*an$l$z!dz7R{DklXA6y5*4yl?Mq*DPF zsFrXE)e<f-4hgKej$pkUV5v&o7;k1{V5ymbH5UMY0tlB-0O1mocmivwBUnETuxtso z6u`p9z)~{<YbgK#F%6dx({PEICxLaUBUn7D#*PgaSSL0HmYNw@rvd;FrisK`;al+5 zR}ydOvWmC<gsWAps^0V^pWFa*=>_PamQ4j<z+B-H%oQ%dTnVnZj&Oa1a52TN*wl_} zW@B)vnR8cw0NfQW!Cm1J+?C*3>Ij!sS#!m<!?mz6xYW$qD?kAD3YTE7a0&KGaGmN1 zmllp|SvY&$k)7BWTx#b06(9hA-I(|*d<*{iYT_?lR`Hh(!AeUHvI#!90shhpjK2af z;ID8A{tB1iuLRdzN4RvP8S{vNzcvQfOoD4JKmh&<m*B5(3I0lOEp>$JljM6_%%E{x z*ce=D=KK{P0Dpx`@K?A5e<iq1b%g8Fgv;_L#$OwQ>x5pQaXb|u0Ds+-_$z!1{`$Mb zU%IT~uRkYTmV6Oh6MS+5{G}HNuBiYF_$yq3zrrQ>E5S9_5w6b=uI?OvZ49oN2-k{P zw-Z~C?&&@Q#dAymArW&y4S%H~jICVjc8(=uo^40SLVkRS$3$1TIDV;+U!mPJK2i77 z8ukvTm&!3>6EDXwQ)^OVI$Ym1JKRv_f@Kvi0Cjz=b;#9^hZI>h|NU)l(jfsL>x#($ zM*pp%D|z5YTk(Y_?dTDf-w`q}5p%;z)$C<+Ppu%$!a&h93dgePS)_GBq9OktzfSL& zNbm8D;jBVW?`aY-p~cJxZI^(SRp7<UUpolgI|2!nwW4}U0>M#z7Eq0NIjY=<BAdTu zSa>D)Z%vIo@pUe$QND(AT~HXYOUGP<Mf^xVi$eSSxNg=3qVjL(7M<qjOMR^dAEqy8 z&3)Xt<X?2hH4@A`%9eGA`p%xUYt(!(^UWu4$-}=>4|Y9?9-96=sC#*B<f__;x^|)x zXRf_KS<teT1$E{Zf3`r3$wZ9LcPlCPj6r4Aw{qkHK;Vn&=69s#U$Ev{?O{+sbwzHl zwS9pboUAQyBzP0+cF{jP7bL-Fv*W<WT6T{?#NryzyVI*&p0N7EntOLRA||gcuS5Bc zcHCFrd+Zf~!(+9pBuV9L=~efpSDi3PvaMm9XB}GYcM|+93MU5gI+r2z%G*5!YEPw( zz4+MH5bg_buQYr(Ksv1U03ht%R&6G@?@Qgc8X8Ql>Cob;DvG`-J?<36<2LBK5*y=k zC?_70?X8dlEezqPVV@VHyAQ*j_Ef7KZD8Gk9?G?1gO&O?J7Jl;Yp5o<pv=ylbV4;h zzB!@f?7V4koF#)+=<qVC&|~Az3v1j+cfGf>?%{i0R$NFoonG^uLLo&Jp&v?*JD~v% z{Od09T{R|eOKn`TWEr$e7OG$v$=BQrJp*hcOLjR#?G@F(7Su{b_oE(dC4EoRgfNlG zLOvgPd0Ak2fqXbYc!M3UV2k2(;w4_Z&zOIrUarWr!jAi1w4uVv`q;nsKUfjh*SH!~ zi$QI7PVCRAv*{rQ_NUY7c|3hsM!)UZ`g;!k?1cJI?J>f?3-On#K3>Ydm*KCf`a|U( z5EQpgrt4+v<ckIC<QMSx_;e#$Co?#=7rOYBU>FukyoSacPJU?=Y?gzq*pV};RS(QG zf`VcrT>HvwU88cI^K2(OMX9L3Pqa$&Jajm{@P{TyKM%-~#^P&-8(?IgCtyBUnLaA5 zaovai`tcvCQMV7^KUz(j@!wha&k8#Gfh`LHX0ti05r|rUK7X^2Za}j#w~|ydSj5Ik zHBzlByPhR`-6&>lpgy{nm98wU1ekqX1Bk-4t*US0A-b5;nrB^!6~Oq!CRsc2arTv1 zBa2T|<-r<jZn+X`Xfu?fXbXa`(b#4^L1Wm6u6JqxhPH3T*%r;MszCn%pL;dOkvjM| z`-9-laBdn(NA~W)EsmLgB|fmW?pl0cW3FBJK)L!g_`vpD*9kqoi@IYd8+k*pdS=iy zS5`nrf_K_y<H<B|&MBxusGpA(9J2fn-{DVUE#R^3weecBwzXE%<n$^rp`!-Cp{vkd z*!?T9Q;|V1#mq3nKnPO7EJI-%nL~`d4Na~kK`yVolEsym*REv=^W|8C0EI`M)#hHi z$*w#*PjBBzWO-1VmM`w*9K_|?C<(?VmO7u!PppmFqSE1v<OZ2rdQ99u)n{$MnD`C+ zJ&DTy0<j(}5$hVPNC2T);1`Tcv;JBL<}lz#nE_b0u9IQM?3q)&_5!_avQLAPw>pBl zrpZw(xq3%>u^0TIQ&a6K$0Kqr7FptR5(j5-R-%qz-0^DD5qnw8EOf8K*x)yAMD^45 z8|lKPqMqnH{u2C(Ty{OHtG1iR%)i{m<QlB~Ky!ZcQ{J_PjbA7gje>see{OC~x`Dxv zZXgWlW}Dw^-;$w@JL}rsqt{=_LDH!CL{@N|1aX?<vS3tUj>}r#K#^M;`@ScU(ATZ8 z|5&vK{NuKBpi*3pE_TY3))_H*8eq{n6-i&S7rfnzP5Aq=Zqx$vo@2lR)UP0+s34}% zH|2bqat@)D?Fs!c#qS~68P-ie?#T8$$$J^f1^4~XP&&zbscY!gyvs5v1~Qv$8Tbd6 zrG@WV;zts3n?+EV>u+uRi`Zl)R#Vh>cx(!r<>~SIb{OVZ&LLfoPcSIJi1ODic#_6; zflYEpIh5QXm2Bd|Sxg){PX+N3<0F?tTeGYn@a6cyl!Es1R9e_)uBkpzSKnV|?RQ2N zhX+9x{|Gz3)P4*)Kwwj)^o%PGh}>sja>Xkz=HvL?xLjYo*t^#Y^^LNZI2bR_=ix?t z9&W_v;YNIp8%$|+OmXCMfiU8XzS0U!SnptG8FQ;J`a+4(*?(koD8k6x`hL{PGo>1e ztN|)@X7sZQjIOZPi%2WZj8jlX<n%>yIwmXa;gI9>S3iZEzSx1&U)|2>*!cp$g5w+8 z;TKkLy3Zz@a9p|O*u1B0QVJ?GOgWf=#PODg+#NY{k8$Sb$(h>OI?Ym=*C;|g<6q>@ zT-M_1_b=@p(BgOFOns$Ipy5A?GxZGvP#ECjdCm+s;>>U(&I~u=Ox(cWs>1*yX9@&v z2t^95v<tlX#%tlszbbJi`;VN7sk%}HYql?PCaBbzGtVk;=2u8Qty!fBH|d-?PtL?X zr*r(waptR@Le8A;z?rXV=gc|Zz;qI8npWb>oDSx3nY3O@=2GCypa27BZbQd7vI@t< z$S55D9*JbxK#1)=xB_7kwVLHHpVL0kw3CbJd_9e<hZ2i%JjBMxNc*%@_8<5vCHU~Q z%{qv!jenD0pF@_j{`FqA3actT8e<NrIkvf9tLOc1B+z``=Nlr^<>z|vMPxw6893u1 zC?e))@e^Q8pg}ufBCv!GY!uWq0gqec(C?0*ra;fP5^(N%bFUT#i1`1VelY5U?cH;d z<Y8FOPez^amHrcT=$e1xkK9Iu4JY#S3)fD(iC`vq>}jV%Tur_IngDd_@g1vD4+dzW z9_$CXH3jO)dT({{AZrkwIKO^-1MX7;A9fEjieh1GfQ`VK4V~ER023c`Ln9}|3Dn7L zxFvFbJ7MGGwy+(+gBEQk_dk=O%Ep19By}J=$^Bja$mKulCAWq8<QPXbN&x;#0?^6L zcdVP-WS=6lirmLV?nqG}4JWw!2&qm)@Uv}%)0xC^CU6oLLzkx#22NsI%1p1ljaKyB z`9+L{(tFnv#-JTM_|x<M**}BvlF{T&qyhMT0{@BJ_9S%0W1FqIPHlczYLm7mdC%4} zm;_TAY_wL(hp%ks$GD4xGGW;E5iu)7s}QdG@#pi%29G%56zkHK63c~%6HTJ=#jsh_ zg>XS)#EE-4xy7-}t(xHAlAyZQ(XW0zBo{j99g;ck+nUTK@*QkN5aupbJi!i`U_OMr z4?PtEy<w9Ak1ogXuOQf!gGSMS=z$g?Fvt=FhY|$$4G046tD!eLk`yKiRS0PDRs3!b zCWGm3KDWRShf{x^m@+#DaOC=%Mh|dQTVK%t6eIIozlTDmp_}sV9$h@Jp}BIH2P7}< z_rdqXVZ@e+ya<g|Zba{|5W~170p|gq=Kxtg2;iDTY~>g__9Q5vdt2)9pDgxg+j(H% zfG*byGG4%qw|wJ{jlXI#y~^YDc{`&N+`2tI?zrOd7_V>R4^SX#BA+SEuuW`oXX@>K zW0P|WY!Vf<ED2~x4mT8U%!Z8kc4p%3ARxMdRLDHn4a7y}`GQ0s?hfXIq!Z2jdWepN zbhn7gjQ|kpQ|OIhH12MqU{+LKc}WZaV4&K3%8)`%sNbDXZ!@BHM2>DpeKevjI4LUI ziX6@@Jg{-8!3T4bN`m1K$BaQt$=G$B(@@uWL;@iT(O@4VU)F&|D;ns;&Ma#CA)g21 z6EG}B-jMCa66O$t<Srssx#Un4^6Ggq+VB>H;!TNSzJ8B}lcFo0M0Tba2{|kcpsQ3} zEAK-*Xp46a%jY>4BgvN(Iro7CjOP<+_XK5D5}OCp<1RLMobg~nqyRp-4xA?bhFR9^ z7ROxxqFMP8#(R=BNJu+T0|#4;(iO;8<h<7R5hDYyCeE8qusG+LgS!^ao9vROk{@k3 z%FH9iawfPX1c!D$Z3CfH&3R@yo6-%O7i@6kPBgrHr6I@8z*`OOJA^ipZ|)R({eC2~ zZJ74q2I!(8CfurYMPb{v#mV9c=Z_}ptZ*{=e5u{LOYM@$@>*CdVX?d{j;>nQ;CWq$ z*Lhab?QsoMzJf&)rYqI9Eya)X^u3-lR0&icTl+uc`(9OZa|vla-#gQG$M(&(o(m)C zdC!BD^nw>OLtf7^dKX`E$t9OwdKnjUV>LGh$&IL)ilU+u1taPwIHohHsAwKO1M&e< zQVZ@!%+(QPX@C{cx9yK06CG|kc3NTDDHPy*n7)QB0m7D1zf%yapv03ql!WJSD+2aG zGp)FmCm1%6d)N#~57<oQs#|{7h^cXG#U#0jAzA5V`E(F)g|HE;mcWC}PvBRwN;as2 z7MQq0+%|)X9%m`hrGUURhcgg#LpJxN7w6as(ZV(zaAQKlvmfk4Xu!A#2_+Ct1jJ+j z;3a;D%p1**LljxM13QGJKaBAb#vxR0S&<W0J2T8{sk(;t5V?>k94c#nh6{v8sC_Q4 z{m%CKcpbM~R*|*7hj3>bz_%xW-2mi+lAF8%2sJ~W3xG5On7AG>H1s`Bjfe7pMp0xR z)GaA9uHt<mp`x-~rqXq7MwQd*>SREIA^G;8zgkYbWe`vL$~1SI0yn)TiFak5IPI>4 z@waRbLk2#>4C4gk`rBcGs?0!nuyTZDiCy4RLP`r_2FPX8-zr+$_oi1nvDui10~IXa zsq~;vYvDmq-6!4|j)wa(x|S~!M-Gfdk|<jf1dnsuN~C#HdTpD3gRP6p{>?{f_9cG| zUJp?LR6A|NbiIrG(q_K~XwvMO2Iu|+!3zG(G{_qUERcK;-ZKBs&o8j|1F63i{F^0; zIsBV%RQfmEc#Zze&1ci$@(R2uVPP}uG_GM0(;AdAlwrdMLXL|MAjg&Wdp<%<>5k9w zVy63T3F<b-=QuUN8XO-CO@R*YNIkCL_$b5Wp3lbLbu7JWEuPOzdVCF@&vXchkb6M# zqW$<t>TTVgk2twD9y}j$y@nagrW;vC;Rb>v&u0?(3mbgV9BPuI<erbNljoz`yytTn zxZq5AK945U*X{WLuu9K|>mQ4r&myGHvFzmeENYZYI)eR)OqYy`;Q8>Cpdkxd+C3lt zAx$6non8-`Q-sV3%6mX80EiyYf>du?WpQ5R+2|Fd<2{LTZ6449K;}eCZ6oH09*_po z6|t_P2Sn?9Wfv&2a0eIYy$PDNxIphqkFU!G;^~sn1)2xcZ8IoX9d?4vpn-m?yFedE zu&mn!n(yEOah+Vz1!5lT!UkI8Y?OlYJy*ekbIyXn1>!3WId(=iTfqgIU=0?i($Oe@ z-B_2Y#r>yfc!767!A0r^Si>~CW-1C3$u8eDUs98IR`#9#G?BHmRpcFYcr11ISn6Z^ z2VbI5t95a^D{}-&kyM-L#%n`=pQ<RwM^(D#?o;%iK^2)aBhC$&CQoXb<UKh!Xh=rc zjhOK(+8g4bg1jB@nHB)Nafp-ZS%lU09n-1--=)iWa2}RMv>@^)hK-gz(b^zRg}RTs zs8y}!0A+eenFd|p4zw}s5^Z|%==hRtT%040jMrUmg>%b%8e<4B;Il-#ogiTlDAL3% z*1T{f3+RB87XY|<n#&%W0}-vw5CZCkh}dEo48RyExl>^H(Cy$iyCf^HWC_V=`*MOY z656!&j%2lrYJ%ggcw}Vu$??UU$Idt&vU%(>_bvGx+m#P@ozJU&UGN|(E5JR}i=kQD zKGhhkb87tS;(*!lQF4sq*rE3lYk#NU-!hgpK9Q0HlSmS5uY;xKCo*=e<#irV0rzP` z(9LwH$du&eCPXxNPNj%~GkY4q8(R?sPcWMwffsj=ks@9po86Qibj2MW6fa@$asw@P zYXKa}V+7WRQv=+@PSV^AnEoMZ+)*Qff&mO`Ho{`MUdF+|%GeuJHJ_}6=Xx~tXNU5E z17Q0MKvDHJdlV((uG8EoUmGRAfpua4iPA`3$LNQfA(W)Xn;J?`@N(3lV&he8Fb$R| z##6a_r!6{zGY-W<8ZxYkl=OA@0Ni`MumLY&Plc`2_9lJ>lZp-Z8C_bg;dhv43Yw5w zBP=#x%^(n98h=3hhf)X3W>fTSOmEF*)4U1Nsra_tfPu;k4bT8SnA~{6pNzwMXBuA5 z&!xcCO_YL-?Jo$az#hMrS1SaHl3X;)a&f947tBVCPbay64{GrR?n&we56AQ0$xM}l zhebg~Z8-kCh8n_Al?Ygn^|a{N{XnhE@+D`i0jDKN;~23DRUB>gumuLiVhh9F4#Xxr zO_Po#c*sjA9CJ3G#-JgF8(!weqmU)@>ycJkz=3BqXh{xlX+_%j0uF4GOZl*b_8fR3 ztJ(ZLUC9PW^pbCY1^s^F^4i&zo_AR(fH9fC@YNTT&m>lifk|g^^I~6^aXwy~UtHo5 z8mNesGh^o$X>ezHx%-E46HN?2NQ^NcrFq6MUJF%x!3j96EI>9Ry!S^w@BICO=sXR1 z=LkYuTt*rS90D^eL|~q>ymN$Lg}6)$>|Yg^smeRY{#J;~Ok-wXT&DF$G%|~`$Wxei zj=;5rUpAf$zO5B|Tp|2&hVstwRcnd9+@2s?L-b|!ymNf{x}z^*=HN`|CWKpbW2Wb9 zw&1EZdeQU#g;!L0PWEZZJV)f$9e)99(FpqQF7q5I))seRl03v+IQVXsVrqR#GtUv2 zwS-+BED6rjnR$+&uRH8A*&*!m|EJ7zq|Q1s&&77hfIst@=cPWl1brLIJi{f}R>R-Q zPC?02KBQR{aR%SMTONTQsZ29=Pr+Y3(26b6RKe$DqsuMjrKhBLY1MUjB$Sde_z_fm zO8;0K$pR$FEI*W9_k~LpBw`KI<+Y|3<1jz#9*JH$T+f;+*rrt=A4Fw7F>EwqAtX7i zey!-eUvHz~0!O(qPS1mt&4hC&?dVgv*jyX%hDZW<A_44<Kl=$j{IKVDksHIeMm1&v zc<G)y-D0a*KB0)0`4FgtEX7jjk%N>tyb;cN!Lw)Xmwr)?#sW*bntgKSnbKsum)~O< zt3I3X;_-x5fHnK|*g1F%tBc`(BVnzFw((uK!I?aV&<>gEaJm&v;9!V=E9!|yew2ep z%~1{`o}z_`XtyV#`6#ou*^Cr$V-l}kffDUbcyUbbOx?Q^ZU_J69e2bR;KV18?k=^_ z;XiH8z7@}>Husj=BwcZWXa4n8N;V{Sh?2`cM!6b@bJ6kY5SpAQNGvP=$9H%<34ywj zz{UnHuxx-pUg5bzt?K8-#3>SNUb<lOQi5$!MjT+KKJ|dYEEaq0153n_r`+c`A_POp z5h2{t#B~@JNTsh&NF<&}Q2v3{ZZa~9(<h>1%<Wz@R0z70eViF~RLBq75f8T#dFgcx zy!5gL;=!s0QcMp->_)bqaqMm@VdvQcmxEE&w-~2ZAY`ue`<M#|VWs*Q|AE8$!Cd$Q ze|6@pTMC@Tm#@fKv4L}zg@{Q##7#*uUbb`0S{Z`$7NT+`+1D<=C0pROSjc~*6`^s? zAf~g~vS=61CmF9Go3aI;>gwvco)e5wOf*|1e==D`t`QeRf{3tW3=HBHQFYyV(pvF$ zn;H19VVgMpKr8m|I??bEQ*#D1bvRPyYs-ENfeQvJ^-aKVW1rw9oc=5;gQq_C_s5F< zv(Mf#G?X@>$Zb9mS&qk~l}wPk3Up-c(fD!-N}goQT$N|48&WZjxC?6+8;l0xKSjOq z*@yqMF@p{bJ5L<I!?L3Zz=N{=2Ja{nuc`eOm}|xoY4S7G5hHqxK#$=AS_>8d6_X0e z5ZT^^Tj;OdT$Q4*I`<sf&afTT9a6yxuTv4J#Dv0uC4vlaPviduHGH%c$>BnUK+^!l zDC^c4JglGMqJ~YJ@i$?S(I(B<4A^QdrK?N}M+3UZazVvH-L_XxfBe~cDzV<p2?qBh zY<&SF&#VS;t*Igl`R}mrr6gJXLUs;?T070Und!3V`xr9@S`RRgTMkKVKyKiLv<#Q| zZD!4>?ztkJ=7nvN3aYd4fcb<LKY<fd23VNBfd30Rk{tzkg+#Cg3fgNCI)J**w0(dW z6$^a?*&%Or5og1Ip9@%hK8RN<&!RJ-u$Z8qW7Cg1ZL_9W+5T+tLzvn)6`IA7FHe(| zxXRevT^bv#i^O>N*kE>wtEFL9#&HtWiwN&FOi^qo40k2W+QtT_jHa>aEsPCMFtDvp zf!n;x$zF^B<Ydno8=5`FMGo-1GgAP3uQ62){_2t88G>3I1fJsdMaV=zUDUNt6Sf^g zvEH%g6hvV<k=sL*d{DyWlN{xG3Nn6-@5CGx%Dpf@l~P{AcqtMZ?KO_a!y*|3JfPyO zBmXjQJ7ul=Uz)@@TX^hpzoS4e`dt#@w<XBmVW%Ep%{V};7D#(H&=4~HNHTy%F9Nu5 z13;t3I5&M~Dx`u&$I_deMwT-HljmqO8EAxgFVF~cUWrDGf8qqPb{fqD8cpVC<X@f! zjUGvmJB`dX##^NNp}qk&+`q3EcjtICwRD^-67)`hkf3K7RZP&&brnhpbCoJw@h5?u ziy<)E;SUpx*vuc8%`~-5|CyE9&t{z5+{7NQn%vAl{0<8vLa|6=tX}ws34U`8hGJK} zu5G7Ck`AuORAJ_(*Ot!yf=}yn7I&Id9t#punC}j@VkbV|as4HW3&cCh!<&g;Y<Z;A z(gu$$QIZBp@>E&$2s(2L-xwTMx+A#V<I+Ws1h;$r7J4?Di=u~F5T~S=ASThfDM9u& z6Fti^GeZeKmJ?)D(x`?*Ss88A;2NFcP2H@!g(|n-8$^?a4MG;Ks)3FAR4+z-V8aF> zxB}s&%HYzuj2U&{kOvAJ!j*R8L(y3sC25;HRFMk{yy&#a`9?-WlRuC8`s!^q2aMRH zHHsn!vXw1qg9Q>OFjQ&Nu}3JfrtJ<yj$n8QX5Q;D_hDs_4v1~`#uy2c)OHSWKTIr~ z6U}k!!zr(Q+%buzHr&4&U%YM>vnGGobnLmq1KA&6zkhg;Co{v0VN?a*qS;{fY=xy5 zui}FEfvl-hwz2I49t}OJdQptA5-uc|Gd80%tXt_;VCGUSUtr2w32{8u?2T0(jQPlO zZN47V9Y!gLP^D$XI1j4!ExMCBQMKLb(AX2Uq2PEG?KP*!2!%Ry-#&@Tovp|r`Or+{ zZL|s2daS9qyVS-)GZv09!`BS0^qzZ5ZBl6F4G;`lK$KU8VEAtFJJ<#`LLHRCNp{o! z@`XBS)kLImKlrE45$7Ocgr7^9t<&_Q@_}w9Uw5G$UX^_c4I_`X)kA%P>UeE2U%+&B zK?pmG-rEbJry8gvdP&MgDQ~LEEsGe%k|_-nNq35(9QET@83@gWcHQDV*vY6wsUl-C zu82sb_{~o2^|&IOHIWnba`vEvj8fB2ks!r&6sfV;^%<Nl$eS;xsA4sUvlyOYh6rDF zJ;u$HKLDuz@~q_2yl5y4pA9-NZP3P5OnYl9(zaC8Gj%3+k*=4gW)L(eVY=R%2Czu1 zeKq|y?kcS%Voh5h7Fh&GotB*MnF5z^@1^lvMG&fgTsvO?Jpttdzeu|Ico+6Z?3NCG zA%3u&Y?RwYB<zCVR#km~qlT#D6Gz$5G4OsKUc>^Seigb<*J=??*1CCElW>yiiB<&P ztuR()1nV4&G`#S{fonxWiQt9tuLMtsh8jT-fJHBGuc-=X4&%RWoomd6^4a{Cz5u&9 z>bMZsM4TtmgGNR8zKQQcv2ViV_JoT&-EEr<f#w8wFI!Srqi5&Ue`EX#TurM9jyOHz zo%qPJae$HWrvMA#60QzEVB@{J9|^iU5_G;zhVAi<L<XN9GySnwt4ax{zZ+2TRqzKZ zM(^&_r;i?2_J`49$LtCIeK!4Y(J#BF)YjJULtH@tU!Jpyr$M(o?jHmf4tUs3wjeJF zx2L^6Ru-UnXWUvi_%N^&kwel#>FB+gvB>U-flPT^B4{^{i4rg3w}D-<={M!wy6I?J zVra6Nl5KfkLVU(-OG}8&b4?N$mFtw05=&!ue`@lNwyQLE6mn!si>V(-PrE^mr@dZ} zt-$#}0E3Ect}*Ho)a~{0Cf;kAF4ksb1ySSMOm;g-+hi9Nf@Y!J(f+#*{KUydTKyut z!4`Ocdb_n?M1+)MNw^{~fUnH=i5_oF82<e;&#R&E-12RZ3wGmt*TOi3v>oAMmyGn~ zhR)xTdVX8#`4hIPkUn?lg^HA62bpKt{1e*}6Ogdi8G)ji^N!S+mm(n0gw7zMV)23_ z^>BLJ#|@9Cs6?@Dif%S7KOw{zrErg&-?q%n3Vy6Fu)Fwq0@Fa~U%v}A_->(iliPLD z=d<F?`ZzaZ>6HRaLrP|a?N)?s6kp3xHXe;f2oyH>7Qxz~BEuMKlS79j4P9Pzew4ZO z&TemgEdLLd*47&S!dz=>vC(%2Kj+cHG&+Pw^PX_gc|FjIEqt`tf^IJ+c*-#oxG0y$ z_~={AhKXC+RR$mE?7L=3p^Q{2l*0*<hf|!$in<*ZPJZrF5WX(L$9OXsh%evc?g+mU zO939DkzJ&KHNUo{J2^mUR<UV;=Wj~DxM*4;IEiKuCW+)qvUqdq%4IPH7Q|5n3ADbF zEZ>saKbhZZ9aJP)7?&nyUV|Hi(xu3?BE?lX?4XY1=m)6fx4Y+5<+q2{(THH{c(a<< z&(@<+qea^Q67DbsFiOFPP_4T`m{!2ZA`!=!n(E(hBqA@S=^6q%62!H)mz$)w?Vg}5 zrea14Y-@7NlKzrOe7qpb=i~AGi7QiFsjC<OE!AAjz`<5*>J#m-1SHNW(6eBAY<R4B z4jb5(Qdi@wkhjI;VXsRW3UlzKf<0Zeu|4~p*A%MkL`z$RV?h#Z!A+bPE&F0hTd6GC zJM_kBsKIgGg=yB-gm8w62j#W+6t?+&b((JHyV~c9X}d?n4UdAScC$&~cZzx7GsrNO zja*#^K1s@MN+f&2=3<^eLmq|sgK6&9KxuBgqx27g*Yd83tnZjh5!6PRGQc!5?Sj7v zQ|r|TS~EZbyRh!Nk}}$%JPdxtCg<py-+0t%r@Re*@hpyN!Jm;)Q`6j+eu3SWZd5#k z$B=%+#>5#Sw|f0E(HG&R$tb)EBoQwD6D_{*7!*o{lW=DumpcjUKW2Y`e-v~OA+G>L z5XPkF%4gW`dAM5|7&AwIasFkIkgfN{q%+6y#27Nq21dCKADCK?Ym~35y~^izcRBX9 z2etEAH`v4)9<9;2y!I-S0i<wXPR3O^2zb+k5M*jB|B_Q9lvZ*n(~U4bRrL$TgB=?P zXznwP&6J4&rxHbfU?!WrEkENx<(qwpZj3Dnbg;zeZi&*E7AR&0Tx5HKO^QWGW37vR zfux|cioEz7P+c>=hKjJeb0vm0{uVj77ZQ8igAWYM42L2lcZsD5UqbQzgrZNX>_Le~ zw|662Haievyx#LGjt{;t+ix}_z1#5<7I1{`uvBuS_C#Q3kkctsnDHM-z<H&*S-D2% zf{puNdN|p*ChIHE%hFaSiYc7w)LBeh<s^anEc&9L3&~1XLuz6eV^vC0IkMWx1?eM8 z)$mK`2@IxNNf)50m7n3uHm$&iToZ^~P;yBzP^HayRv@|vZ%-(E#F&?<lE|3CATh5N z3~JnRXbK%B`YeVDB*{;{wlFI7f?OMC)Ws!1t`Qev&dgqdZY1oUNb~)jmp>j7Rh-TO zpH@w0W+?o1KMaMc6}<Ja@;?{=&#2+gE%s;u0HzK$`}+#>yli$~<4Z)!rLVC?o6Wul z+F^+GXSs9LD9G+oX-Yqfo=<~QTZ(hZd@jgLZnBiTl-8+Dv?37SHnY@bE6f);YhCs> zFreOwm2sRa8Bi^5G;(w5(($6vZLL|nMLbj^2TcGAls8g;v_PpqsQWSCadr#3h)fJM z1^+!i<KOCUD<8{2`&?5Q6{&dFm94ZA5ai4B<_RjG@XAS7uzLTLRFfsos@5O#4Qw6F zXts_wY#nkhom%h6J@402?S3trz^`Qz7|9$VyHQ14RG?KVdom5lmn~#tEAjHP5?>O+ zh+*xnk3twG5RnM`K;?$W*ep#Ex0l{$8O!|p7BJko7cSz~amar6FE2`+XZi8R+jrP9 zL(MT+;BSnkUnd~$NI-o5xr)nBp+w_G95I@kip2$?LvcZ135}!sAywmO>gC|`)}da? z3TNZrKvn&s6cs9cSwaU_WpI!|e4gR7^~ZjUCqzE;+-D(>ZzniC|M@RyHn(p_H2=Kw zU-+U6c!U#AaKd(P*zIk!xZm4}3YTWCpz5^W+lkzMZ`^(bBENu;o>H;gKMuR&)?x41 zFVpfU3L5OC)IAi$Y490#-7jjE!>#yY*DNoE`eBFUoMoiXB-0^qXFD|d-Vfn4uaj8X zI%<1PVgu?hflz3`8hj}HD$6%&1?JjK``|IMZj?7MZs3%q{A0`MvBZ@}6AtgU_=xRE zXEK(wYaQB^$A92;^r)$;q_>v1O?2SWW!~7k$4^vl1A;x+MIdbN%CTVjikru2ER-?9 zWoaxJe7z($7F8tHIALy&p$P&-hcuFmG!1}4@Pi_Z*2b-g68~t{#>GN+TZ)LVIPt{< zq=FgVn3_8?yjacCKr>zuMl+jVeXQ{ovqV61jW@n<Bh1G<|AfXpJ&{KE_5|4bY=kco zVC0Sb{K>T9g*L+El#PzCmFdJeClsV&5+T_lLgMg<PlEQY1g%dE7YN$Cs#c$AZqVjb z99g^}`|znta=O}#Vk<%f717Xt#GtnMqGre^Fz!uYJYmY3WxGLHN1KCAjjDE|FWOL` z_`E^FGW|%g^z^~htsCX%sasHkL(w>v0b=YHb<FX|mS$hVKs4UGZb8Fg6;gUQPNgwU zi=O*<udMX0#8Va=F{M`&G@IG++mh)vTl)kf2;mmfb*}ps`5BZDhgyabu&5Hew<n^w z;8|)gCwNSbc#Nc^g&$7MUGSK@Gv#TLsv`L)d981*s%1f@rJyQ;<V9ab+7?eNh9`pL z#U|3ac*2_`u9``pzSl&NNBmk5e_j-~16}Q#7fjNPDO+=8qbSm^<&EsQW!#WD5evEN zdBnpL!~$ktwtV;nNwNfWS8<1hcP0GZX2;fA^=@8x1x4zsMOP^Z?+xF-EWIKd^=q`| z>(FqG!uz`k3>RLOaFvAja!^^dy*c6i34C`>2jP8R>ehvqiN@eWQ+NTfgxBym9pRmE z;XO{_{Ye02`4d<y%}y4}r)qf2aw^r*8@F$B>6M>D$&AwLVXg&}?&uz~NOaB8{J}&e zm*$ux42gw5A*7yhDT(tRrS>k)7S74dqcn!2IM1(1oEL(y261MMsa&cc&QW@UI7fjG z;vD<n^hnu>eb89q7qJhTNc^It0sc5)_j{%REFN^qX52Wj>;Q$7Y(fz%u-*7%yy!wN zT*Hktz;V|A5v}k=EWZuA4n(xV6GRK%Up9TPpc3$a$eL8%hZDlC63QvBMZ%c+S|VUU zCEPo6sSgyUk*w+0t`gADzgTTP|I-A9tAyx|=N0b)IaA@QoKE;8zwGIt6#n1Tu`300 zWz&ofn57g9lZ`6{GXbJDr>*TbmA1Ayf$toK6S(CJC!^|PXXYOq#s8(oh?f1qS+p~N z<uS&pFLM>cQNM5!;U&KCg)gF`c+rdP?_%r>&b`68Ik?XIEgbiI%{AA)@>S5)o)yCm zg{7?6V+9v-CmtW4Nhke65zCsIgF<F`6#lcV$Qob{^zG}ax|zX2Z~?g~RdrB~UkRhS zj`9^UT3;dLd!!X#?Aq>?EFZ)ou%7MxU0vDa&7U&EYE!uE*VbcjKzdk%yS-oAd|iV} zL?W<I1Z9Eyx3iL~Irz)7!<&`J{r}i|6FAF?>VEva*XyhdaT^2b>tSoqz>I>726Wzw z3UNW)2XGmqCZjQNOpIc}@)!naK%iNKkwsboX^j)xmBA>sfYP`&L8aZ>2-5Ct+}gPP zzu)gURdwIJ_f5}0gZ|C0-)H8%x=YomQ)jDFr%rK&2`8ZPY3eJ5(f425SZmWxyTG9G zWmRn0sxM>WDNf89HW}dKls|UxFB3C8aY=nQ_7ia>yVaMepKO9Bo9@P=;aAj`*G=Wu z7x|A+=iy7VY;+j+6mgB2)5^ox4)u`q3>bfe{%G!nq7?~u%N+F&_utfnnpr9);%JWc zD1WpT(Qy`McQiPI@kvQx#%GdAmnNj&U^6`&tqR0Ih_It>!%m}B+DEuHyvPP$g{@q1 z40ndqa&$?%0@Y!Q!Q>@0LHiIIgDgRFSpk~I0~&96TuRsr6SBX(FxhX;LI>Jgo&wN$ zXu<(|QUT?-G4GYTl;Vu|@&uXt-yfGCo6bTulZ9-`A*&lY9kNM5HrRG;hy%T2JQ-xZ zIX*&mMFFz439`xTXia5DYr1r_CQ2Y{5wb99yMnW~79cw`K{lI(Y%UAgOetjJC6LXL zJnsq4t}H-CH<?q@NEWiuEM#M)kZmu4Y}OfPm+5RILG}sb$3qfi<5|civXE^rg>0+@ zvYC5|v$qu>qvtR(n0J^<N?~>pr3dacN3PsEXAZqRRp{mdT!wfVB$g39GSHjYLCYx2 z=2@TDX$-a=HO<*reu0a5Y;b6A`|9*o2^xEA7{4L=X`!aLHa@Tt4d^<mt^032JjjNz zJieCS*Np*y)qZypPp-=Yz!kRDc>sno0JO>g-~&f`wG*foK@S3k53gs#_}<9x?|ujl z_ziw{98Ye_126~xaI$ba2Ij=TR_82!7cjsFj`wP}quLgDUJ&qUI1kY@4k*?1sQK?( z9%U<}dSDDsk6=akZftuvq=rK;w9rU5#iR02%w(XLE`x#(fP}1NI><o6R^a2{G%L_7 zr$9g?OxXH$FxoqS+LK3HIt<LV4mVyNv;%Q@Fgyxco4|S|1PL%ao!hEs*1iLPHZxdL zJJMzoRh<dW(0H~j9~A+^Y?V`Jc(w3TH?c+v$2V5dx-3X%Bx6WP{lkpGN!^(F&>mnS zY?v>sl@^x*(RpgRok7Pl38Mi#nF=t}O1DMzbFQ2>$#mB5!_Y>s$$D}&*?8hnx5?m- zVn!L*WPPy7X3uh)tUvth$0jL00GkYXVF&sepX8JQzMVcAWqsHX1)~f*!YlQ~Fv^z5 z^3n0kbn@VNN&s19eI-`eQdnh+>Pu-seS+00#3vYS6&w)^)2#7%-hr26Iqfn`xR=+L z$}UqYbaE`GVFqihzMCWsB4zAHtoA`m8uB2(r(pmdh8mS*h}s6s06LUu)|*4u7YgV? z6}`X)h_(9#fLh1>K43}X4#Ma`)M@OH$0QZX2U12LoD#tZB&tVfe(=XAO%MJUli4wk z(oSaAR08``rgUuU^J?LT6LB&~Gzzsan=G0r?s*sw`uKJB&BC`~urinkNSh(jV7Io! zwG*@?XZy^ORAH{qEJ+nwy9WMO68N7s@GZ(aflsh>YP51c$BwwpYT-L}!X?27;EcMB z1~vKs;Rjv>WA`+^$v&F9Vy&qwAxH;>f;7y-fUyh~ZYfiufqU^X5XgM^5MHn<VfV{H z%@rd<B(`~D?$zUx@Y{r!5dor~*)#}KeI|;8_i6DT>g4du^l^&hg(0$aC=7Gn6$)GX zxe=!=D#>=_*-As$sRz?Mra=Jd@bwu8R3Qq6Fw4h#5yQq}E8GT-A|=aZg`v=Ua#ulW z8@Ay!VzLMo<feknpn_af`GcFjm1yP`qZxC8(0#?pX;3TQAmZE$LQfVglY27M7?_N( zXa9yg9uD->+n|8KaOLI6T?tATzwoF;c|s*2LBa@nUY)3}g8Cq_OU__3B8hmHG=;fJ zZmz;r5(4OJ>-d3#VxA;9<2knhbzWm-CP|KYtdiK-+={Qv4eV9%V*#=TV2oT7$_s>G zW8YX=RCpC03-CQ2?pB_N%ldSG{SVx|w4!h&X0?}N2Rr&w-16@DQzXEH9z+k1w)NrM zw>rZB=;7Iy9v-@Qa*+Us90KRgp=;N!eca<8|CjJ1RCf^Sd~<Gep1{!=3ULALD;m+R z;2a&Ky46HlcI0App8D=^R2TDWrLgB!-R>IV-adF1EZ&pm8-kEkH={NsXIgR_^%-l> zNMKAelG#}-l|?L1lN%o|F%}fD2Q~vjif76p9MTYG9+2$jGIB{jTrGq|o!*LFaTbHi zfiDe$&-uMtl?5@w`EMQ@L#Yanx}<L)Xc>qSFywy`^0k5-udnBAAlIb{wZupjwoUue zg0*7{g%dYtbAXs=OyhA*g5bI?anhl*u+Ru(EgI35U9Q+amJm=$@PF>UI^o*Y*uKGC z&0nuPYn!$~R^^sD7!}z32+%W3SP>vezpNjqH6Dt~Yg8e!iV|Z$v&R#zrj(3gJ9!Nf z%$FpXzj~lxW>vx0oQw`vk)Q^K-CYZ4ZX_--#cD@lz_;vgwhSa2VoTAQ0J$^)a)pT@ zhG7JQz!fO>I4SM|XfrH<l3=OJe&re^<~oMih|sSBp_l`#!p#GSOvuA7J<h2SrX?6} zdz~A!d_K}?V1R7ys@hkBqM!SupL_ENLv7IlaySptW(9<p=0oVY+lm`(!>$CpMVOC< zLGx(b;${Sv<7!VLc2nkj)|D#sd0WsxSj9|eeQ!dm2e8{_2WWeey=*QYTNp55+=(Ub z6<&E#bK?n_$o0ZJzY74{`aFhu&RM6$?__ks&apjdh}EX?xk<%-PBQ3I-MHeM<s>}c zLuyjVCVQJGl<X%36b^H{mY6{VEY^B#mdEdw8(Xuk%aKq@F;!f3=Y6X(vkBsZ2`R4f z_-JR9$5o~%jY9$Aa)+Gtq11@Sjo8w<3mjoyb)~qG?b&svyRHe#%^-m0V|~P>3lQGB z)9XyvCop`S$u|8O0YnRnrjO6#R=Y%Oe4HHqkPgdCA4~PR-^iA<0W1iMYtH~#%S_gh z%res`{Pzi+*~0d0VH|~s;RzPp(kKgH#$e#Irz7wMl?2~~#%2Qtm1~BvwNSv|r8^2C z4R=IY_dt-|l<?uhZENw_;Z_@IxF^DJYx|5#G0mv886*S**BY9<b25la60De_rgyOn z#{zCDmI-}t{`NcBn4>-0X$Meb#79tXP*H^d(OXlWoOW!lMvitqLpsqqf07>!&GVOa zAfC^sik*0DNj(t{U>5OMPwso-DH9X7Cn#M^<nwH0%?AX{WGO8a<`WZNNR2q%6qln_ zSE3sQ#&Fy?)aQLRD<+=MKGb+IGt_3U$Qp62k@UnJ35*>rM}LJwonMaDG`!Pt^w(3x z9hRd3vxeGwa-R=1j#bYJ7Vi3^R+61Y`4cD6ls{2$Q2uxU_Ih!uV>7n5EyY}C=Tghm z*0p~yJK3|M*@;IeW4T!gJ~b<OzyrDO%qJFzur90?Pvj;R6vmCIkkd00%K#ROosu$% zE`US~n_ICupI9*GL7Z4jyS|;NwoNP`?{M-I9;4&B!rzeB+KMxtat-J_KTIm%xWpmW zNQ0!wg;GV?<YEsHnC*oNa|=*9W(+bN*5M0=#gS=lF%Cg5ONNH740x5b6qqqTHM;1! z>yy;g(^FS{JDT|evtk=omQN8R-$Kw3w|6kPlvE9z;%dKz?_jiQ%7T(v|4w3MKnx`y zeClGsRqNbz%!(Oyl5?zRXu~ZABh%7@Gh$YPm`0Czq>hANgIR#WCbpviXA*X@d7_ea zdI+1M^44Vth)LKxI|1(2rOENZd8|u9aI~m^CvejfFB2HvG8mp93QUQbJ=ij7^h6&N zvJ`3Ayl_?rEl|ZJkub(M3ZR$c@g+-B7ADLAuF1zl8XHwyLB|@sVH?^FP@~>xX$Aw7 z=6EnbH@E?+t(COY&Dl5RDBonxywNKB?gY;SI<<Y|yigzrzy+<_NTMj`H%*?G@Z3>J zsLG@yqJe-0ns?ulwFfM>i%%xBq1Ic^54b^<hWmm9#*UN(BQo+jf^o^6RK(U)Z3h(r zh@~Q|9~l*a5X^*BMs7w74`mB6Ae(%nxIH%|r^+%C;~CZ)*+LPaK}E3Ms3KTzY?1YP z0g|_qia32|l0jA~m8$Qni(<bZ@;{Rk`6RPOU7kKUF+fLy?PL`!1@L+EK-;qw0~k(g z#rno=pBr7Vkol{y=EcNn%oN2@6{oI_>GhP40sfhKO=$ydQwW;|7i06?iOnaTacVF^ z<TrNA*NX_^;9xEq5z5B{LQ5ZyBSfK!Hm!e&Ue8W_y1P%#4LD<~rmAmc-mrU~p0T#B z^9QQ@Nf<yoJ`<is+Zu@-M@yG2)21V&?bfy<cpHPKagRNaL+oJ>dpQ1r$8m42WxC2Q zIdXF{H~id{(8wIQxwYC<LOiOeea$VRX$>a*O*rIungnlgvj8qATO9K{?v0h&K_XKR z_pkTI=*+;OmM5h<Sjnuy`$G3O)ebxw^nd6yLd1NHSL(Glp4jX~>ceJzXjND9Q&(Sb zYxhZXCpIs*_38^2>0s&R@A0?Wsd&b(^)NT2Ka2OcS_=Oke@QLa<0r7(tPN=@MB&-Q zDVfm!ggMY$bH%AAFkc$40uv{lu&M`&kV#%1zN9&J(`Vfw8Gb5S2$o@1oM>`haSr0t zJP~GAI#BM$nP~~zBZ(feU2@eIi@z{@=u}1STAcEs^-y~6xRJnIBsk%qPbj6Y4|x`V z(mv%vd#F&_XDIC>O8Wy!7a`Kl(FZLVP}&!6WBoVWMtV%9!US6J4pM*<t+?i|M6_Cq z43rN_6g=C49wEQMpVxjmOT-GT2hK`BhEb|q+KOcAmL#hU#1(&4Kv|@xKu~q`9$6vK z`>w`b`2C<PL3OeB-JyG+n9x1amJ?JYG90Rkt44h4InJ@f1@;^ZrTLz7v4nkqk(9Bo zEN32pMLuk}5PKWkQ;y`;-8cq@&RaVYCX-rEp58~|Ato*DYWAH3YZnoMLm2fwu*P%u zScP$_oC*sB?o>E3k<ql-I$7tu(By-^o#Ufarahj?kpV4cZDKGs0!$o3a|FJ^G8{!< z&`}%-SVOWX@;W`7tdqv*U1^Nmh|A9M$wG03H0vUSH;+b~)WJrwAJZuGDTg)V>*bcy z%}p3Y27ACXY|r&iUKJ0>l?*Gc?g0=CYH&U{1TVt8110n~7`nPB%Lo0Wghhc87K4(V z56BWu36VFD1r}E`lmHCl0x5y9syWd@<wvgGWCTHj628hK@gUf@Un_;kejEv45w)q^ zBWw4I04xI+D+d8EY3(8sz#=06a2*H$Ac+8&ke>vw$PX4Gqax~I4_pWYz(5qs89<vA z@Sx47;OpKKz{d&%V4IQMir*mtxCx9g=8zvrr!JjTuxpueWRb#WY`Yj`YXp|EHIgf3 zYoyn46rxCxO=}_;s;y`-m?|IVQ9nH$L&~9!{X}ad*w!Dn0b`bpAvX0|Fs;6j)2%YC z?8qO8L5T+6t*N<Qgm-lYb~@AybfRQk))Hd{IYD_^E4Deizf2V~zgBSBifcwPs8J8f zSphqg-t&bsb_>s8!n1<33ZV+3voy?9e{QeopcwEYj(y<NXjK=)RCQ<z6m@N=-o@{3 z|L*ti75pCPqGqT3MB$AmqJmzW8&T82z1><1A(NZdKLeFq1BR@b)`!xk0YG*B#4|Ya z4;)%+`YoK2jjQ$w`I555_m#>BID;}fyasJ`#tF^p8TFnM4V5Ja&4ky3x2xn4qoCg{ z+93ti)^+-Tw(1rBxwURv%VFv954N68XNh#y7%Vz&rgEf4PfKIe95<r1Au)ukbvrjZ zQrk$DRfbc6<Im_t$$y!~2+nd(U=sVMwPMpwada_(YDjVYpcD(WN_C}I&q%L+&cZgJ z3^7z_i?rm)i}B`oni<Oy+m0EstWI-gZ?DF+vGHp1U{K8=RTqK5lv+B370Hdkm?FE8 z>7Q90adm7w^nHHacXsND>plxwa?vLO#FQlK{*faA0K)E|?vHXHPPmDQDU3!Gc68qc z3vskWiizxHM^J}qq`7Pe<~8p~FAUwt!#wN8{2l1^kw6BN6l^j!Mx_9?kDyg599ZW7 zgpo86MDFQ|)YD1?V>{@hw9;D{^d=H86z7e+3lkF0IY6?@{NzBt$RQ`P-kctHk%h-; zkFQ{a8#*Kdn5iliDg{(XMM}XOO@e`xz|;L!In^dQ3}uRS-91Pxb!6><Wdv)j-pyGK zJ&OIbu#J>97-g*oLGk2tCh+0I8!{aZDwTE=>+xIjlhfs?YfetAKKcW*niSoMt0gvT zGNmgr3IK?Vf+aUE89~sePWbP{v{xqB3Q4r@oL7VPSAvK`hdOA@ujNFUv}VljlSeWT zyV1dQJa1AlLA<#YYy5IHIt-eXOen$7!f<Qym$lc~)KFC}3P!xR>cq0J-GBk#i^~Y& z!pp`)K)5?bL;M@%CRj@{)ZrV-$Q7UI*kVf2ramo!?u5YBA|Z5?E0B9JF8N6Gu-oh^ z_(}<^m|GlA#)q}Pju+V}FmoFED0m2Wo>|XGkiA*!?#npo+18}~U`<DRJzKqeq?bp$ z91IznbCKT0QlZf~|H~)lrLrXz{Fy4<k$E;<Mrbn?bA16N=!Vgfxwlaaqv|6`k1|F! zk=mA4tg{2DMf!p%A^}Ab0%c)7n6}<gZHlZwIh4jgKFBJfi8N*7Awe3iL$Ji_G#iWb zbVh=27wC!0Gw`izrnZ5Wmx(@1+DJ{Hc`6PN70C$HM4}3kCr|!)GCDH>)J8_MR*3%~ zGXq%#vMD30h=&YKHD*dqVliXwqcs?7?O~C%buh%bMLOtN2k~@gj%vtKjX{r$j4-g{ zfPbx%y%UUqpXg<CE7taw#qL=o7n#bVXbQ_dWMEckzRBWxi^-T&^Qo!k+fC@%^r^h& zwlg<jc0j=gOQX|4g>Suo;xREGM+II+#w8t`0K3I3W0}S}yHLrO5O66!=t=}#@-PLD zy4-tj?yE)MCBiNlcNvGaF;=o)b|yExf5G7$>+<o1Mcic?W8C-4a`tYC&gs5<Bn$+& zhLl-nRnN_^CvMgpo-R>tXz7;W(cn49gQz&Fh8#;f|D@qOy%pj5;Sv!FUl*YqTvIBy zNGLLRvru9wta<bat9pH+)LcYoYz+|5o!b+x+6gke3|DUOXVS^*UQTyya!*4PGD_Xz zlsDE@oL7TlJN2+RbkmMwAY*^GTMXo0>MwoyVd0dX44p6$yDqEEmhX~LL^KUX+new} zTt!zD3`NOTh;d^o>y8Q59m9BG8WV?cfN?68)5vq-(TIE|uO(xH*kfc-7D8T|&^3qD zdm;zo+GwZnF}RSRWwo=!Cvzidn+aUc*}~RPP}Q?qSn`)z;TEeK$`<C*`ja>1GR#HV zSTJ8)rUelV$-<p|ZTj%igrZ-XJ0gY+hEaSxM$rzy1Rwyhy)lI%5e#oEm=$G>U0!G` z9)B4cW5N;akP<p*iNw5ilUdwMvk-bYlPyf4Kxpu;;4DE9M5%Woaqrs_WIjjUlQS{v z7Hm+ii_t3yPrX2+c8j2mWkDOyLZe`k0OxiG4exda4Rz&4=p6;nEUpju24J>iHwe%W z)CUvA0#_BwXQo~=EDa84p&ZFVIhrkSaZ^akKsnn!=%}~=<+}?|KBNtSFW5#~L<eaQ zk2pv}c%&5(A)IBw_FMY_d;xV_i;d$whsOvZ-UX^qO<|0qju%ae8HH3yV?K?Ra#((U zg8y#g14i`~YHq*a)d%z>a{6GZ?M|zWev@eKNseWK^z0(3f)Aw%GKbx>bu$mVJ7D;d zYGOAbgmT@yF4g;aGdk#?$qK)$D2@UU8f#7EnKrFD-povFgz9TN0YkalLg}KQ$L^&{ z`{Syn9l5j*E$jq1cWJ%B$I|6zm?~qOU5h8G_-JADU?1$-=y}M>I7W~34RwWprXIz~ z-^!3b+q8zs!A9JLrriJ@;DSihzL}+`c`Sq*6SS^<>FF+~HF27o4xGExyIm`<Hr1+2 zwh1{J27V0-Hx?xuMaQ({h{HUSElj0?zm@43a1kVaw28{J*e$7Ft}=;A@eQ>YGzDX< z;eKBrN)*v>t7mo|`>6y(+NwtCLUL>jTfe;|*JL4<Us;9x7#KWH7YpYuc&(M&kev;Y z;#AtIg{u}FwzdM&GCOJ8vIW5~FIt^8y}O$MGF=^3b1<vutGI^%jdhsm{UA3LAc4Uz z5vKwz&=tH-JeCpP?kVcR=qSF$TrOc_AQre9oCIiEkEeqtfovLj={(xzA7TSeIptIO zEv*P<$0@y&xqO9do#fFMHcWRFhQ{aYAOd)#(Pqn4*pB5$k{zcfDB9-nVcs6>Hd;2U ze*xV=pPFZ&7gz8nXHXBls2#?7b_Zi^!z^zNhtRw=2uqU3rc0AK4r|nvE_%bbVOZlW z%H4T~^z>GQrsI(MFlODq^6mMMLd0?`ePjcH?MNr2u^dXxw~Zy;{scaZC1^zD;FF=X zl^t7-ee5^~-U~Z$?frmfJ>9dw=h`}XZ}#D6GwRLGK<@LMnHDm|a4Ez}!Aa1W5Pp^; z1fEX^FH&Us<F#Q7&O1nAPUCS52@PZX>mo%c%ErQ+TUC(^-2zBdpwk93&oP*mMqvIF zLNQ;`6%m0>Iqq_lo{JV=8oRSw5q>8f+deWF=a5ms6-Xy12BPb+LiOXM6U3H_s)7Ub zoYcP44&$J)j%-d7dJj=L5`Jh18lsR#y)eB1S7y0(1s#W_m{V85FHt=e3pV};qmgka z4lvw{e|>%)8-7N_<2RVl_TcS_N*M=&rZ(j?+tvi2Yc_8D$8!oDkOsm}uunm+as9_u z%z!Ak5crO-A4rh4r)bfv*rI>IFRB+yMWHFwAgp#|kutYsXN4~*8<<=o)*2}Fej<(p z2sZR0z@ir(sa1*;vN$0+sDMZ;87iiR8F;wX-@}pN<2Xr~v3guTWEcr5tHuk^`uQQz zZd1<9FnG}HDpvhuw_jJm?RJ81ZCw}mH+`U>7m1M>{Yc^3L2S?ExRth22wvq7t>%A6 z@>p6*Zdy$s8S$;8C2kJ-P&k1HVdezBT6YtFo!*Kqe#F9CS&ybf#E<z{<v#T@KS}~l z%|6+>1f5^#)3g!-^S^-5!zmXj7%h9foT*A*ujm5voCddPePF;2p;a<M>{LJSpw5Hv zo7^C9>u=_;@U<2|$^pPWUn$d-CJyQYl9^;(jfrj5WhMx>wo4EBMc|!Cli@7f#oOKN z;Q;dps7IlQ)h@1h_cZ%X$CR>Hbc>J>$zlp!x@dbzwRndsw{*+GH(C)(a63t04^~p| z+k#5EZMm2U9VFlPUm|b^Nlhf{UWu{&aDX`e`Vf)1%`a(-Z+b%8d{tzM2UJEbLZmE! zovg$#PR7XgAS?wQ+t0k^{ogr(QGdP7&*JCOlhiSbF%vWP`*p>+2wpsjh!*grz00oQ zZ?{tw=z{GKh;%{V%!#OckQI|hB*t`J`iaC?y`Q;rRsuA7SG6w4NBVV6Ii=tLE`#Rh z8>dipv&Q-;lj-N{X^x$ILTFYk@eVfs;`pr|$#vUAJ8$jt0{~1*mIZ=g5Fq?mFw|U& zP`JSqpa>j*Z5W>8&T6I>>NUb*;wc`@+DD4&<5P-qrsL8Mqc?Xy$3sNM9pK!0B+-bT zAAm9gI1wD^M8<$Ym%(@o0euYF>^36nCy{Z3`tC~<v$}#r)+ZukUT642IG%m=J`ou& zEpLB9N7m>CCo(2KcWt<~-owO2kHr<LGL7w8^@eUU9A^PwIBXatkLcpi@$p4VbSS6I zu{k#W^0T(dp<K$SJ3}M$kD`_qr7c}Vug%Hi>swI(c|?N6Hx}0*lN|p@;hhxHf7f3@ zGB58ibIi-t|LbMwm5XaoEHby14Mm5WgOqHe0%O;BGz$M{dTWJ_2c+nT6s*ua0%xR1 z+pOYWOpt=3QV#GexJ-g;DR3W+zsDTRJSj+%f<!6$L$Z{^4nO?xCp>Z8x<;eX)F0B~ zKKUt6dCCz-{`FIz`ZWK0`qQ8O4E`N;)KSko`dQC<_H&;5JpMiZ1?$(ZKjzruUWmUJ zy%>Kl+3?c8dD+Wf{)$)p?cZ&D<*WYw?_bTofB47Oyyi8VHf?(CKmGGRzwTe~_xjhr z;SI;X@n8S#gcD9Y>7<ie)mHVC>SlaSt!}~RwCd^joKYRZ=gjI^_?%sR6F%ou&#gv1 z+L$U?er(-9JFZb#@%?35<{Reojj1l5e`s|fOr+onq362d7R;m<R!}&H!pb@nZd#Kt z-*7$0L7Q8#*^k<3j_0x2ZOyMr6?^^D*+RIpjPhdI*F<M>IfNy-U^O-$gaBl#ZeVeP zu{7tP{u%`y<KOTFD=J9eA6IezO|TIGIaqiK@G}+EIKQ#JG|r_l1RH3N9^8dkN~_VD zpbd_Mur=!YRZBF7SV|*z0GTi-cn4VDlEW(N>q{|%TZ+Qc!z$1BY`xr8b~c*~DYkgw zEWu!?grUD`8Qxoti1Ou<@-!XJOix&L;R|cHI#gYv;KVZwha8DC1VSq>aT_d<7ph-D zEG%c4W6F62bJ{JJY^Ewc-4Fs_=>$95e^})O_}a~fhLUl)|EA@N<c^Y<m^8+PjXHi8 zBSJ1rL+=yD(+upv00lsDX9F6JK6`=6wXx{EBHRuTHfCfff)q04IW@xGMr>+SILQRg z+@$ya1<-?dY`jWBQCc=6C0kQj&rw@bdHw(<X}clSA7+S#G%nFukC)jVG^ke^RE(A1 z3{*);Qc)rzML6V*Q;5Spn^X><+!9Wk(?81}G5FSm6yHgBvc?T)=Ez7#vIit7j0m#* z=F?wam1^*5=1JVv%w*J-;+ba_u#B?`NZ4WW#(@lzLk?unVVwP&Z@dvV#ax@(xYpt& zPZX4^4N8rck0NH>(K8OmHk_5_$c3n|-)O(EC6;!~34sk;s6vlg7X)#u);{NL338kC zwos#nw1wSM0Lz*|cXScWyM@2=q|%u-tacemv`>6UL=RU`n7k34=!Nk{K~Oz)3n<TW zbkkLPygCSWIu^XoiR}>Ic!RD2;d7uL*yfD?{2~`HUe6nWXDh29F0kegxuRETX#Gok zpx#5<3E8tMOJBD{%e(&^-}O4crSTF;0rps^dj(_|A`&5|l0;ZmUs~^B@CFyg{z)Jr z6CU#7R3pQaewJngK?wS!AP6*8E(rcJQIiXT*9tbLAc-oM0|L{j3;-&Fj<|WYIv}Xf zs-OZSGY%cHJNMG^52BjU4iIolYzfiS(y!i&Y`BtJApJrXk&h<;-L>=@0Vq)bAZEgH zuA~w!%!Uh+Oazk{V7vG|9<Tw7MGZ=h<Gt`Axen!tP$uT`Ar3buu-<2pD*u=nQ$(?Y zL>OceS3bdiQHu7!MJv+zG>PjU676WpbPj3f)k_*mjPm!fRwt4?@rd6|v#h{Aj2=#c zGsJ^AWW7e>QS!1^g>gbS35CoE-lpKuuyt6Fi$aQM34~QnOt&SZI5E94OH2@;5d{L$ z2@61Q*vv^d;$en}x5c|;YGnuqQwm6opJ=PE?#s~TqYMI*LuoK3fq8p^$|>mY1XZA* zNHBqdB1yGTP~&onh*waiVBc6x6K%}Q>B00#I%%EC2U}9R!)@$TfvIB;_^uSb!F^+C z6N~Mg?7@~)^cX#yglv)36Xri{q#6=ray$Y#myzgH>bH|9fX4_JvFt2~Dm}}~b0m5e zN%Un)8q=iTzlpVa?e~;Kzr)&I8c1}AIKa4$Ei8@Rm9XM8x<T-}z!Qxoy3EpRqR}y@ zQ78=&DMmrW2_iM(bfVn_BE36-<wW}8HX@BQ8HhAeZ5xpm$2W+Y9}>AQ%8lb09LE<f zY5a&ckK2`Tq}?j>g3Z%9LO7&*NdAYF9jjpsY)So;wQmC1f`sQWRDY82;=^@JcDN)} zONL9J741~QlhA4qQI9nT8JC5#1DJJuj}yU%n3mWE9cDTpB~n2Iu;)`A;kh!d{AKEp zbL9&n-Z|aaImPii;`sTw(cHq(eBP4A?|JjNvDSOZm8VhcJtuHw%eiuNVYzb4DRC<5 z!~E>*Fz*ysjyhMi7LF@VPhdG$9-YVs6tR<BX{zHWI>9-YomZ-x$#08&dBfxE1d`Lw zQE{Yqo_;Ripgto<Kc|p>p1!1UA#Xk{)_O1L=Pj)5seyhr0R`Z~tqV&&TN6^8eExcu z$!DvR&!%>no-sgn)$q79LFLqQ#66)Nyu+C^C9XWTohI2sT{fvcwm7M#>$|~u&yzS4 zZV&poGC}Ec)+ZxnzI-Tdj*P$zyLWTgj6jTf017wGb1|!En)#W`wrdhx@3VO>fQR`) zFEkYnfU}ru79{Uo4?ri(JJaRc%KcG+KOF{{tnqE6)V~s?A{*o}MydC32E3+n41q#O zO@1OQRWf2h0`FyujktW;-FP1_;5;gHZJ53e0SSrG#3HI+)Vz9Ib31~!>i|>2q?ofl zV0@g9nHn~<B=OT$)*MK+>VY&2A4tP+feiz*PKS_DLIp>S<@Eg!fj^x1)7D$AcmcJx zYiQg(KjZTJFxlilt??tifQ-_5UPExJT~Q0cPDPRncuOEQ^u$N`gwjXLlC5`fy8Sy| zeB6@84gBWONoM8xH+qCiw3T_JPcVR28qtKQQ#a?`n&JkFM#(=ob-IbQ9xA#3CWECH zq<EYY5rx6Xp<xq-pnR@$W5TP8EFNDJr;FM7k%${CLPD1Wz+8#W6}B9p(Ig42OGaVc zbLS`6Hzz<`N*ydfc5!+HvPSeYXcm4Gr!m`y;3TRY3SmY)#+?VDz>N(4vR))P@W7gg z;B49H6jkeiM5hy}8+TcB^kdWwjD(~G@r6p^v~vqf=UjY&LyL33o5Jh3?fU#YFDf^+ zxg?uCCN4n3iyF7_CReNpW}8JA=EefC-JQ@3_sVHuGQsY&U`ygYCxK5iI%5~{x6=Z{ z4%nw*z(TuXJE)sJb0+v}vop@P`2a^JU~^a!=Kd?S?ga2CR16QDWDX)SQ>y9i#@E?> z9JsAL)MRg9m&Ydao1QE=;)$-v3bg%A0NHkqfC>x@x5;Rf%M9f&C9pnef(OlJI?vyZ zAb_FKu;GK#*-rirqNip@U1<2e!kha!;--lxFpZceH=IPQU@IBUc&~goznmcV;bemm z+K$7?KHxZcsf}r8@yu{)cr(Kt`6CD&LTZ>!gZtG4ix2KT9S2uH2B}LQXD_6#EpC6C zXk&x|x`8Lm$@yzuT(zWeC%@^kFO#|eZk*%*z{Y{@Bz+}ogY<=yiU$kfc96bYAeYzk z`>ee#>5I-Iuw1)MCHML>LLzvth=ev0^JmJ3>U#-2K2&xxlM@!a){*lB?`o4KfRr)! zE*5;qAeFT=fYt>aAd)l&lp-($3S^{m<PQRDw3bHg2MH`6H9JB)$mE@zcMwW99AN<} zW{#I&D9T0}&*)^v*#SVT!}J-qa8VD+8>++>K7!TBB^{ZPwqYm?7b=fA{CrTk#DPtb zbfW*9W5~myfX+FJ`@mc+1W^Q<ohk|Hrm&XU{}pRM&}BWd?RqX@>2BK{iL77Q2mUub zFk=repaZd&zs#(lH7D<~Er|*JzfJF*Z|kwjDLe0bt<7;3>+dP&*1YeXT6j-sSm%B3 z^ul|~cB+487T#l6$ozPDQ{g@B?3fqM^9t`NslvSPT~K&WAs+L-_vXTTDa_+$CRtvz zAYmQ|f_QkPlF8i@bM`Q*PBC@BYKIWUEx8qc%AFK&+-&_OOQL2`Vfz3lft04;pCidk zWx``~E7tAXytpBf>RDRSlWiSuGT_KebS+ot5rx%dzC9+Wftd-uw$#cDT4PQ@IJmK> zz`cu%;389Z!Tk3yQN~Ikl1wY_9_|FOf^212kylzZd^4I9p-*^BoXu&e&JLg)SdYFz zV{9-Xzs}RRaV4C*&ow#4%P|!dd7VLTNQUR}a?D@ou6TydxhsBAxQ$eXfF$FJ=h_J0 zVc;C|9NG&hVy>4FbC7<vLdYOOhKFfQ;%FO#pn{_<i}8rQdd>lYjZ5tlhBV2Uv(req z_F)pGXeeN~vf784(PSH}x1n3dl^!P1>!Uel`>7D8ivYh9ai_<#a_$DOEh9F(N_nt@ z7$zBIl;%8OpIZRivR=E=oCoZqsU-m~!0B)BoMq%pG7K}aQ-Uw52iT4gmR&>b1qB$F z?;2_eqfOxgCLav&6j0X&-aSL%n+xEPvUXwQ4TW4<1sWL%*o#0)OBfAu=pze*aO-`F zf?)KfByJXRBN&$<J3siB79gk5(+To8SCPe3pkMR?up(VI!wwbc5It3vS4LZT!+f$+ z*t|Aohsc8R;CBG1eJWwJ6gnSFMupA?42*Ecik}=^7LM=R%=+(97&kP=Lkb#WHzxG` zGw$UzRne#y^Slk^v<2lvV<aT#r@N)ut&ByKrb@jAL#u+G1l)y!EZR_5!GQ~fm0lRI z9cyIi=J>CRS}1PH_ly8ZoNZ}EFf;p$ldA|d%JCy1HU>KqgN-O_kILn)8i;}#WON`1 z+4o({d<#2L>Zra5(k`kbrV8h2kW@gJ<RhuA_S925&=3+AASY&hk+^^<cZ`3bXebGx zXf#zuGf<}W9wz=;)a+K~4kkCIQPguS6denSl9j?@Np=q=D_InWf>0a^LUAYv#VEiO zXRonNp;S^}SZVa2P2v%V6w6^PAg@ir&?NMqm(cIpgcY}Q=4zY2$cwPneoKjL_0@N# z)yE(m2_+4`-VqL9r_}2grWVUmuS0<D&&VHq|MFc2`8;eq?FfS}H(Qv@7N%I3+V*IF zYZ^rtULgD8=Fc1g17{}$CNy1~fc~uQRyR@OsFC&pvZGfSs++%omxxMD1rz%0ETA}{ zW2byhgV`<%LAJ0{Q3R_?HoB!<GC}k6!38r{YwP~_J`ji(R<jauG5D-#Ml-Lu0)`PP zY^Nz=g9>AXahl?R2d!Si@L)s-BQO|;DE=iQgAo_3py0oH(vzO_WJUzz@2QLmMmVqn zfh`mmVZg^6d+c$?ArAOO76SY-1_A%=-+^;n8V`3B#qpbR;+SDBjp1&O)?HKC+D(gh zRjv5|31teTjSwca=2C7yp``me75_|osJKPuZ&3#0jd+^D(Qc+6Z=A_l@5}k(1N7v6 zDwaK|MR!JGSS=aH2xYE$g_7j9a^i`hR_xK`yYE%ODV`S80X~3XuZ{dm(DX|QWK=0I z&e|Fyv!%vT<!7bJJ=>K<TsV`7;hf2!8L$RHpFmL5<17RR*8~c&`N>oO>Wd-)m}ri? z>!HF#0_NNVjEgLbvp{F4K_IFg=pyT)U*LdriDUv4n<YT8Ab^sTB1l0>m4SqDe4xgW zrsNB4#7DcEbrA`z-{W}A)^=hWT<BpzY9$n;Rzg8)1qEnsYD5M|#E@SLu?to}ry;s1 zVZ}AKMOlO)LXDzLY3|YPoaWZ~wa+J&KA7bF7{I{Lgj)0Ak!YV6I~%rluEJB##dH$G zPXd+F<%Cj^25ii(L+gtMrFnV(*|8?(d^fn@JS3fR3k_$f&kBzyI}8#Nuj*>95RM;# zyU*lZ<id5dYJ@{UI1UBjI243q6u^`NsN@-_gJd}kjBv!K@ZB8$RVQo72slyUNCDrh zFj-3M*0ed`goi1_RfjQv@`1hQRue3!{>I?|=&1}YD53XjQcF(nPgP5a-gkF;-*(Hw z(>uB}OFWOC_7LZ#ITi0XnC68^N!tFnN$`LArR+g7d-y9NT2<s1K$US;2*KgM6L#N~ z`s@eI9H~AJI*+?ck+I=N7%{l+@6r*PPws%qu~e<25)0+%p`#M9&49Qcd1SpGnS*9_ zEJ32Mll*X6DU~0)E_^?bfOg^A6wraQjeKV$c#{w&X-|T=B4p^JOW}m(52mWGSS_W| zP}LYOh*C!~v$d_$_RkXHygt?77`3JEB5~eu-w>x%4cKYMkPbtR5*!yMgZ|kim4m3U z#hkoUIh$Q{c(npA6r>cLG5E>DY?`%GxyoGQ<yw9500P&8hx>Dk+WJe-qxM`k`%fQO z)WiU2>hcBN<Dxeb`a{xT>o)FfS+y80t1fI{{e2hZu2Sthjt@1*x=*lMkKp>XZmiXf z)?~%+{C>B1i%Z-6^cXCLzkabAJPhqU7MH8+#!>jfc@fXR7wpxn$fIRD#7?h}{Jw=? z9)j2UIBQbrVAd_+t>R-?r!DeC1;-_XsNh1u=1qRb=1o{3>TY5KMUzRQ2p~5cM?;$w z8e*#`F~W%Eg+&n3iH;`{75co16-Q%VhQAAl?9v@r2CFN+;bn-qQc;G`#(e5A)uXtf zWliN74(UN1M9ODU)6M|gZyiMntdaXrIz!@Oeo{H%+D4_(s{LjOG+`Sy!|GZNoBo!| zV#?oOT@2#)xD^t1Z%bW#_g<0`OsyIHLJ%_1$0;Gid`&*ziWPHg14HJa$(ypbr}nN` ztoFE?9k;=#Jpjrk)ZPMFo6ugt*9&M1D(Q;}D&MSn063w|)86jd_%T^&KXMDlL_7!o z#51r;2dGKhEkvl&=z-J2{MG}Dz^rh*%h35gU*8w6=X@aF<#lBGL><`t@^rjV7w3MP z*R>^`oU0O7d+jtK6+PwVoU^3NrcjXC6bj<pP!Q*$0FOuAJstv~P6)z~a(F{fJBPQU z%VW;$t3+IPCbT;1vf{|PS>jSajk7U$6M<Qt9UCkQ7GG0&y7@ew!SFwGLID&YsnYlo zk;4VpHi(Np2H9`*{wLIcoCM<!6O5PH+{)H+UE2yqhf6RzahAde;0zib2HlZ846+2l zY=XdT06R-M*#MC}7L+Awwpx`r*+`2wr-!9n+qBu!yb>yt3q-x#b@foHrJoSvT;S<x ze#~xWu5%HFscrd=Wwq7gT-xnv9%Gla<wck24DD$?&n|bz%DE(hYzx$zdW<{udzz1r zWiH&p@xMilJTYEo&YGU)0kO>Gik{}au?%lyxgEaclsLn7Nxw{#3flL1CoE*S%C=k? zjNlzxjT!IQyz|a>S^@EoWIY0T5qd^~)#(Mj1Xulm=;eIU3y)w3^pYL=A>QQLh7YF7 zNcd7d3g@Ms`6z(d(X%uP5AspCW%D0;6fQ`x`Y4#6@;)8~b30!1=WsjrF32i*ZQZVZ z;1qmTMeFKF0)&&6kN|u!k3UpW0b~`ha}Pt#8YZk^s&C}^R`P&HA#Dwuf(NZ$y?V_W zW)67F!3Q&W00!DUdfTf-kKS<3qsJi9#`c<f^hhJ)`FyqM0+d#BwL;mF(B0gMRlemf z_M%JeP*l05vQpkOy8L8cH^;AfuuQ4+=9cuP6X_utA`Q#`W3>ida*ydi=|hD|EF3aX zIy_^NH$T2UQ2JC>w=>izBVsapX@HiZw+-_WH@V@QsCh;tU<lF;Da2v1&^hyH0Iax5 zWa5P@JSwnIkR1^Uup>&*j{C_m&|H&4`?;y#j&`%C!8O5?$$9^QG3L4pE|hMaKm|Lo z7n48p<~Ig^gA9Uo9;iW=Y>x%p!tT<F5hUi3W)2+97YH)@iG7_t>?cp#d!)(CnQT8p zLH!H`?`P^3hKQBoex{#!^17(dPm7Ms^i%ss_ct)c0S3(cL9_DPYWL>wM2-$GPEEYo zD0onG2x<?g)SOOMYFLAHkVm}R>S-vTr`wvJgnh3~;27QZZaN@%I`!M%@C)c%SelL7 z;V(^4zSW@IS5U&d3Q*n{jb3XW*U3c&a-0YdN)DptdsbM%NnH$5C46C42^_?^5}@)G zp2WjfB&fb-i%fe9DmV1dI&I1I1j6k=Szd#(1^@zMl=YAfBZ@O5e@{V>0ThCj*WhnW z&HIVZdxfE6f7N-du%$@2ade+B)hVQoIC>jg;h<#ta%K5rP0*}47!Noiia~t?xHmxZ zN@rMO`LMAUE;E?PuKUOl$YAahcdR8lsQw$cXpWryaFr4=-=2EoR(@NMrZATf8<B<B zrSZG(s9k$V4bCWxB*GaH8`E5mWD@Ym$S1*t86<`Wu;gsV?(rxBp_}l9naD7%MwnzN z#QBLjB5{!e_?iUpm%AnVncNEDTf{uD<pHCcNNb3*MwF$_mSsdGr6<Txl;^+Yn$aq) zZZQ!>IMtDdget5u26GV6Vg5w;!qTHyCxhkjYvEaFo2QH>pdHK1ff=zWnsNHfVq9GS zU>x2;@<isqQqU&xJ4E~fu^VGAMTvZILwiPvA(0B|1UfcQP2qdUk+xBiSg45#hv$gG zAzs%8s6>s-H|cE=CyXfWZLU12x$y*?=PRZ`_Oo)pnY~l7qC{W|@*iW;30j`*4o%Sp zZCFolF}oQndq4+0J(jTU%ASEBS&MXm^)%|Ho{!upJs&(c)bg&C%e6e-9!bxn0xb!q z(O|AM&XF)+>m^NVN+ZVDD_n82fHlPSM_Is4Wrc>&XkPXX%f2WaG#~3U>%4|n{X(9g z&HIvs#`OuYz6f9wE+b)Xvy}v(A5lRe(IeH>_&D{&;tm7$u~e@Q*y8Mf!TS%8wF+Pz z$*ckt?5l_bSyv{|OYu&;6xT98Q2@mPJ|F{pPKodd*?2#BQ^08fhF!4n%AxpF0gC*b z3gOj);%BGbcTjx30ENw#5-za1B`B`BJ%pm%8(i2l>AF5llR9M^PtzVuXdYa_ga$b{ znb#Eg(m1EFLyh9Bq~vtZi*l0^QgFjh_oR@RFsp95BD2o6M#9STGM^ZW#uN~tS1Nfk zZ*wa)<7OVRF2M#^A%@-^tf1g<)nzOV+l5vxl_#U3&<wP1H0J%cEI<D(!|xzI18W^r zR0`SZz}e2~2Zb^@-45_b+&z?lcB_xa1<IHTRv%|a^cvvm3~Ww*0|eZ40Rq^fEu`Om z)RBI3OA}sDm|(D5l>QJ*dNl8-0A(f<j^hw668oGv;2Daxh?cQbzz`NEP(Vrvi=UhN z>C(ocEfZP)xs&xN6JZ*+BWO~r0^xD_QwopzbD#C=qC&s&?D_!j*W^rCmR^{C8RNc% zNA`B_w0{E(JW$bJ6<o|zy5^Z+nsNFjmMvShd^v&_s~v*<x8@jmcRboy?al=`)*_wI z1P&xR7=PnPIj|gFiu0b$tyrmV+h(PB&UiHZ#3~2b)y;XHFi7>Rm4oI(=(c<)F2Re5 zhiLCFLrD>pWR&JgKEMRKh^8#3&*21x(<g;T)_g&dHHqDC&IS4`o$%lt@HrV0Q!d!l z<k(=l2F4RpaltB1y%boPXnLCWj9nY6i!4ULlg{RIfmk?8`@+<vi)}(_3LavKq6HXX zI5h%5%Q13EdfhR?<YZZlJR&HfOAd5V^hb`7OH-FFF^rfHa*WXK+Y>0!-kdm})qKH+ zw0&+HhS%&J7o|bS7Kb-50|(bRqik@?N8`!_x{pR)&IGsnWzp^a2OA9&O|v}^O*=e~ zzP}>p=nl`IzdR>#s2&>=;XDHpBrq-V%Zilv);G;*VWevavCK4ylubi|1|rk?Xk#8m z^MFx~bj)kcw-#TRf<c0jt5=f~%OKd&%0pn3mLQPP&PZ;jHi$^JFAAfYkFs+%TbRoh zTF`3ov7u~%>OS7lu7E(6^auHL6Id)0ErG+$x#DOMSdJDM6a+CVga{?e!7wJEEU$CP zKv?4}fv`FdZkm|ir}M$?9bx?=L7P$hhq;+zek(fI(@@5Hk^`iN!34pQ<`Tg?dUzzq z71G1Afh!EDFre4EJ-t>=Q!9~RF*-gjt~}NjStvH)#`FqsKrp6lx0BQX2U<Bb-I%72 zfQr{zAx%pI+aU|QshyprKolAI%vOZr923~4l`{gHTHWpXdWPuzw~TlH4dcDE*?PbQ zYHi|VEokQ?O3qFYxEtP-D0m^*=QK5Z8wFY-6H8_2x0~Yn?WXutCBq3A7&5{j0poA* z0c46Zg<ZoSx*1NpF>*EI@x9QPEn#HzwZse`PTg@elAmes<4XO#KMzV>bB9t`lEFe~ zg2A%$(7d?-O@78b=+NAHMVRZ}chFo~fF`eE_i|{?|KdX8#$?Cu9tYWR|DC51WYGVA zz9B8oL#B2JO#De^>Ku?h{Au<=F9i2oP<V2I)zh^jVf%w0@(`S;><22>>jMK!)b4Ao z`|i7+j#aiT7+7#cvUaYyY9|I3TOWJqp-9$_?HJgLfj=f{XQp<fYHw;s2GX?Ko{X?5 z14-JIq5Wv)XjhVUZOu3?Y|G%DjE%3<->a0JU8&iXo&B}1{ilDj?ChSOoeA3Yhb--u zru`J8Y0oBVXR3Bf*3NY8OxO;|>#M^vC9A_%=kx}0ghSfRgymu8t0_#+;yXS)(>r_; zvaU{9N5+Ri#7l6X@QUA6W+KWrrjM{yD$LHH%T1#BQ@)s>`dYqyO9g~L$SJP^lDKFM zE2Fo9-3_@NCsL5hKHW+(d`l~K;k}RAtAZ75BtCCWZuuO0z=YO-%_TSN9Kt)IYi?Tr z23CJ0A6p%*M7DA?(u%0J>vXmV9W@vLV3Y?&X`y3=A)a(SA^&-3QTn0n2?f7%e=~EJ zYn24{Dt4F0BUQGr)_w$-BN`JST>=7&0QN&|b1&bic&a&kTIiO5>t$A{Z_p2{wBmjj zAgIl+@dna}H-|3>Z-s%v{8DjD^_uoRaF+w~jfW@I2|i2751p48mSAdfSZoES5hwd2 zX(;^sp_64QxH<)_+!=IIr#b00>2+6MmNFbx3}E1<m!Q7B6xG*U@>gMjJG)sz$3`a| zhVx*f4x1^93_x#(=xoC9j)YEz3rA8lWF9ygi%8JG#oX+pg)aP?FkoFUVr*N=pmWz% zt2dCrwYBIMXusr_*Wa0%bNl6Avk2#uSBb%yV;q&SF}Gj}jWwq~j9rkhj>@w&{CjHY zT(i}V&$l#5a(e??Dpo#z>#|JcXah*lg+x5t3N5@o--7Z`|4Un6Fx_i+IE|%hT%!F8 zL$bJ5srU}!<gozsbrxFDVC4TldC-<z$vim+>C2lZ57cyX(~@S@cIZ@iI?X59%hwnT z97*7_sT&{Xjeq2g=JZ|poc%W>sGPL_L7j`FO_X_cptbCZuqJ0=<Pc4(spU8ud$n*4 zTHR<eY<q3RS<5K_!73!<?MB8pqtm1|GGt+;5%<D;Ow7~zMcDL0_HkMSFJyU%%oEJf zGUmaEmzbkB7dp)ih+zgwehv#iSDh1QmOyE=g6|DKmxFX`0VHmr%z}gzWO4+4?)qSp z3QIu*E<8w|D}eNh97qEW(hsi>hUt9_((MJ1UX}wXto9ClIJisiW00l_AiXpP(w>f` zx7@wpAQiN>Qh>i0?6*U${S`7Pa#=SgOSJZ{c@vu}!_A<yf5q#^s&B4*O>5A#L#-`w zV1;$&+mgQ}YAjCGVB?s&Vgbw!U8TUl#98CcW_m0Xd<u>FTvkIm`I|XeJ(EVm{Rajy zbX1r(Yp3rqCMVf|>m7rGhM78IcQkj7l83DpjlZNQzLy%mz&3QP7rJ0&$V~7hb7c~L zfdP=Q{{o`&tz^|c%}kV`^`#H-Hj7aDC?+_5kl=W`sYGlp1)|-G%o>^M>smvC9Bks2 zkt_D{79@E?pDB4GGGw-xyoMoP^yrm~x!DAos~gL+9o0><?%Z<S==~&9eqI2{QfDWS z5Kkq^d;1v+4pM=EPpyK>xW#sd4E#&-;!)tyu@VNpm{mL@-3$zT5wAZ@l;AuIf`s94 zj$P-8kaZdLXY;~SI~l`go)V`uK7@a*IupJ?Ji^xpqQ7FnWU$SXMEvBFU@y?-$Hb_O z3*MCAymP6hUq@uP(PWq4YW)sD>#B00?Tq0Bf}`rmIaGzvj%!X|a66+wT5sjBHs>QP zWj1esdS>H9HO=VW$ttiNHQWrOg=939rIyz?kroZwYwSjcwZ5wg_&Gd>A7DkK^xoer zxY5%b8~rTJZ}b7OD#|sIRS<Y2t3YBDy?GKFP4Hi8IdhqexqbUolJHRgX9Vr9Ex&@z z5M#RwAZXv6Ky%W2Tn@FX9JRMi-1kyVX}KA%-%+Z8RzzHfENT1)X~uFW&$`hd?o<K8 zA=5wwj7Rxw_XCCATYV;@$om{`#GY`pP?hsPZqGB@{9vlsXPYrga<DISw#%c@*RpB& zb?JQ{7TYV^4j41lmdxR|7hYbS8Pm|KvGSL%FT9-HDjQzru@ueLS@{U!4;NlOuq`+k zZ-uD}%_kD_21HFz0(^v{`4>x;tT-n-1I(QB&B-8noR-WOey{M~qxij&7m@Xh5f}W4 z*H-#Zn?u@VzQ&M2KEl^zR!+(;1$PrR25XbmW$#RTL42qcM7$#s)AC{9{uYVP*k5Fl zU%bMb{u<;&!2|NqgfjPlJW_)NIpSduA0uY4jkSqceB)*oxIX~>4JK)!)p>|>JT>XW z$qE%1;!WPjR<Pe7HMvi0QXa`&ZStl<ldLc_$sl~r>p=#m)zGpMAX^7lh~n^M!s7hg z_sK$Qt1_+0NuqWJ$bHt%%7P!})>Mi6VFn6*7-cX=&SZEiYYpW%M+#7FpHm~Z6OBB3 znXVY!-m~2o^LsvkWS;>F_y}{}pgRgsU{7hz8>C#}2u~Lj|II2_W}*0&T`?$h`@tnp zC<@zf(O-b#t^yQDjF*E#`J=H5R8Y*aO{BI<xcISMF(`B!M=xjnQo;rIdHRT~C_wSk z0u%@Z%R%ugHiHFTL80Rcuq2zH_$_Z^K~^K8+lw<$P!8#EpN>&Sn>Xi;S_|DUxlE7H z-mWgc{+)$amtX_4L`RlqEm0!O%M0N28Y*<LN6eGD7#tP1Exe<md^UJa0i^uWX8`Gg z3lEa5f4+Oi(L%L#*$>tNS5^=?;bF*H0#p<-7XKKc-ywQ&G`IT2kcP(E(&$BK2Ra#L z;`nbVGfdsx`AF%C=su?l44#Qwm6Ho#b1OEw)m#9Kt_*P$OjPW=1b*t$28*Q~Z1giy zO>VK|BNRgf*!yAx7-J2huT*hoX}LoYJf?3OYm07!dKZ(noW2FSjk+;C-2)oiw!wqj zn~StE^*})Hfe%0nwK@`|W6PHkF)*kaQOoF7cViKLTl^DHX<O53&8{J2Z0^Hy7SC!w zQJH>`W1SL$xxcXU+0_^7#bJ=t)%D&X?PA9cd#jVXVqj9BlhI<&1lL)(w0FO>i;Cf@ zunrENSr}>PE=dUYR2M1v_7559Q`_mV+eEvd+`UP;9`j=X^bEXRj<{RoPqov=AMk(& zqH7(f_}w`welQ-*#Nh77Ay*U&JLZ8s*28SM%v9RkigmlG#PqCTt1okoF$sZc(J*4Z zrT}`|7nJVgLw=Z(Ko));n*EG@63)*|5O}~3Bb&6~6wG=aZLOU-zM~7~62Tzha0wL( zPP&K0X&YtMiZ)3=%^Kr?xg3iir1+F|X)tn19&OFmr*cbEgL$woNMO6c7s)q(O``Tq z253sNUFADr&XeC`*A+J+@)>6+j3VANGZ}GFAaD(-Q+qIzJ5qZ|&~Ulr-<lwIsge%} z3Q@i{$0%RI<0NMA?2L%nX^5^UK$KUH_cuguFF=&nj`tlzrW~iZJ*RUhZ4xiFbr3Lr z9t8}t4q%fG)uRW;kRv*Xm9d;yp`L0?hLA!s1q5xowo4bvrAe&Pr3qCtr3px#0sLUX za-uxF72oWj>h^OZ@H6K{cNB>-X*bOoUAs+|gvWV*+Qb-l5IBoMW<;X)-!cXKw@iUU zoeR*1QtU)w2juX9Lj(3!;zdu)9RnlINnP%=4~P;?`+)ZE+LW8b45zn!Dn+Xq&zYdH z)+GU3C!eMiHC?=h-bic5-`M#df3IK!OVq1LLE7rSdEhj^^dJwkwl@TEcKzc52dlYa z=-Powqf)QzUa80fY(l24_Aw2yEsUfI*ZVFa1?3#YUyyhjS91)2IE!XWIYC{L@Z$t! zrUQBf1aMZduM^ZSHs1?^BBYUQ2x%}r${;n){?MXb4H<q|#SC9<z}uCW;Sb~(TrtCu z!Q}uTiI6*aPKE1O_DR}`gaL*}VbIi)6;|64V?8rQ{EZ<J!|*o@D=~~Sj|?vVontDt zQ4efFk`s}-&?%EKr?z6RT*gpr1-FNM1WZQ@8{4V^^t2Z;b_;}1yk&Mvt4b?@!CaWf z^4@S7$<7h#*d>>JY%CQ@>9pJ)%8HC;>*QQ4@|y~sEyN;cQo1{H%j>4!zM!h#W!nO^ zPayc*MgV_wx$jcX$~o}-1bYWNBXHp5rv?t(6}%_OPt3cxD8+m^d>0qs%Ud0PSokh0 zz?Zi{9`6$D2iJ!ctosIkCbxe3K*+6yIejQ=y>$K!yXNUG`Ly#`l23aU74d5!zbT{A z9((Nhu!ldQZaI~hRcW7n73#acWm-psFId|HWm_eIvfFdQ^3iy_(F$?0lnRLaYqy5d zg)&LCxfQE)NyP<+Ft?&3V6|q;49x7}tQr51ZPm_{z&DPBz@d$tX&u<XYC0pe;4F5a z#8*;sAx!8!9}cdwk!&#4Xtt2q=8HVu**hT^L~?v0dxz(xWo)o16ay!=N+J{LJkPKf z{%7VI?SWER1oLC@0C#v%^o)U1X<Kl02$=vkIMOA;7vo$=E}7rR^><|`s^bX8Bk&~V zNl(ES?2}Qxk93Sj;tMH2kLLT^lUPm#DWPx&nyPekaX;tUIVa)ULtG9JzA^e?(#M3> z`(s$g&Qf@-uYs_s7~f(AxlWL6Dm)28tU-HkKYCm0jH&M7u^~P1r__6%vu#zcR2ygH z%#B%F#bb?E4D>^>b=CVB@=LA9^q6+uu@Mhbitoj&y2y|VBrmFW$&I6|y3CEUhylin znfq5N9}&p*Bh)vrMB5{ArZPIh98;WgGYQors3)-~#EN0E!CPAI;(T^*+=F+XSFkXR zRUX{oA$)5pPeK0<z+I-3A&G2+yU9|g59%r|<DpgEG)8#EUHI!Y&F2Lri?OqCqQ%89 zCl)lGp&-j66tIk?cfegZ4G`XOg96@s3_5|#aCFdwvfh&ecqQ5hkHNTUwtkmSd-l#m z7oLBH^~c3%Eq1Loqbh5K11}zjDfA!;1ULx?$e8)d^Gu-6c~lnq$YV_uWIoE{T<K$@ zx27b&(LuVUdw3KUex`!1#=*FYR4s7s$#2KhW;$jI)!S*vydn>dQh5cNHWh^K8OOcQ zjRIs>6*3Fq{Az%nR<=7DP)Fk~*z}HJi=LA0){fz~t;})W`wJLm{Sm`y4g;~t>yB-p zjyN;LIW8sy-|>M7FF*_d5tdnpglaN^<}Z$uls$ypJBn&AWC&tVu*^(~o@t66bg#v4 z$e!cz1ravIA_UZv@dd#&iHqP{!9anxsXcknq;OTcmU!DFsz$EYDhXgs<;lip(>|Oy z%TnZXJo}5J-yjIGz9*wKu2Vv1XT%<6b!HwL5TG$5$*0qFd_1As6$^PftTS`=G~l+! zAB$oEaL~qp@kB~aey@W2TF&K9P-Do+)@(UpnR7JEXi1Hh#5cJmZ%!Ea<swaBZB+`w zfa52E8?@gdI0yzK8X!4HzV*he5P)QDfJ78Jl!9!6kZJx~uDzNdq@1(b=Hk$ixSpWB zB|$r9(3&ml(2C+6TG6;e8)ON3;{t;6hT7QDBc<s8^}02RWGXCJqF%ETJUGX~I31JV zFg_MKAUgqqTD_r_5a!9HR)X<JtuX-fRG0X)`N1$h@2}l*Fg>4K;iTJ>Wzd^uXZyfk z4~IQ7d0HyZxXUc&@{C3&vw6}UbDMLzR!rUbk(|v*6SXnj71yW65cb)qG*<hjUW!~4 zC#sopvvtbmEkna2<E@h&z2l4(#R%f*9GPrx#RjilCZaw_W4&E(fPVG7-t|Mu<0`^T zyZ~+~L|mMjDt1$s9S^21Glu>}(bUz1`;i??+o4pWOQ1&z)MVPOatZX)7(~^|o^Lah zEevN1TUki6#}O2R%{tvx^e@#H`C3yiWM?0=2NP?;r66#C7Vv$)_D#_`WlpX^%1ZJC z%~;qJLsfi3*u$K4lQrjH2(vZ`l2DLZ9d#Wmwh0A277A{>rs1KQ#o(hFCx^1}IyYh0 z#|vgB-h#XchU}r}2`x<kpRLWSNAsELdvk7!;X?KMlvU59?Wmkxq3o33!U}R+G{?Ve zW<VrDutRD!8WRB8ot8-;UXUR8T}_k@GZ<}|;0sPK+Bu#az9SGpXtCp2^TmwC)Z#^{ zMbCMR*cL-+?3{~TsNj3kw>PJjT3za!WsbMn3n3mCr^nq>jK`tD%^w}m?`vuxVa^$3 z-iKQiYSM6+5qwmquF?@<?!x7agz-2SKm6;$Kh0xh!^74`hI(Amw6?Jdk0R8jk9E)` zjTogq%yMuf2$Dj=c-aH`vYRssxN2dQX{y4_fwcU)Ic9vk-mBe-R1G|O7nNC}0bW49 z#!@)AUK)C{VinK3z^*4)s)~@}lxCcY*pen<Tw9=dpWDdx-e7BW%vh<_P-JxU<Hvn& za|BK@T8+Di&Iubw$^S?;>L&Jqx{13qv3ohi;T4^*ZTl(XjAqg~UQ8Yek_9N}7y?dW ztT{S93F*)dOzaKLFkq546MN+Ly>%xM@Ou)S_$0<0tAoa!AlmljgJfdUc0i6&jvkFt zTHF9%rYqi}Nr3_F1u{H=B?KzOA<kA-SZ~3uPAMZ`aZFHng74g(-h>iNwQ*j>0S8Y( z9po+;IIMDGyE)y;nA02Goc689E#GxK;RCtJ0Dp=BKF;YC!RTZke=y;ygMEB|X(u3} zWS8BC3-Fmy2O$P@(SE<b;DdL<4PU4z{*>YSMBr8lcA9|>O~z+u;AWjC`n)0a$u06s zfQhf0JFUvzbzy6UFinHFvPIJ%+N?AUqMa+#AV_=~2Ej}%GYra6e^Ua}Nh9yJy}wXz zcJrkVh26a39>lHG)|Gu=89%B5%b2Ed$ZzkbUcxGl>Fwc+-Sc4&dl=5Xgp3MK*AfGG zJZAt?XEs{N0G@z-6$1}w4M$zdO;B-R$_l<PwUrYOhzuD`DuApcPgQ`NkUX8q+E$^U z$3j7mwbEn-TLrwJ$3j7mwK-2iL63!k9y?c!dSJ(SsX*Zh=p1O;8n^&B{6d)xx49LO z=QbS8fM9boMU885_SzP~EOv(}sHm}_|8zX?o;1PR+j9WW!vp}I0Qi1^`eY=(Ts4$H zy39h~=<So$<;#o|s_^W^wjbKDZJ@2aZD1?Y_S^Dpzp2o+<$#75K-&z5R%ag)VpFMv zX<YC~7Q=Ny5={c$lSQCj2aAzTR*#6{=mle$mW^C!Mk2tr+?I^)aX%WVfR|A-A9mG0 zOL}UxZWb31j5%E3H|X9wODc;*59fgj6spZ(FHrdfa_7Khg(!$!Y=DOL#_j^P1O|&S z2p2ojip%wMufeilI<)Kymn1B^F=>7{7q&9tT?h-tu$C-|>=uK3CyZlax8Q=XG<qz+ zc+eb#zr{O<P}fuNU4b3Epp(pODY{}dHp7$n&Qd<M)_yPJ?{UAeoP`z!j8E-mJ(G-> zKr`&7ur`_9W3K^Z<eB29sUfDxCNMta)5CdfaOP>XVg|jgFL6_4sT(J|;dx$%7MtQX z;>ncy9)1&@P6)@y1g|6Nn5!OwVgIginBlmH(d1HwU!2u!h{HOPE{-f3fIz9Quu~oU z$;m|nyW=9#qYqbCoS)tFF(Cpm&mujtVb{kLu7_P8Be=d2GXplvLj>#on@Pe4{r3#6 zulC==xW1MTPrIjoiZf%BXOI=%D&dIkkB*vI1)rsykZ@LF3~{~6;X|*h969FE9>A!{ ze}(}=y|n?Fpf)~0*mxW)U~?`OfWnsQ<uC%@v+)iFV>I5u2#v)8hG8TYFqTuXfB~M4 z1sI@{ixdqDzU2(VV+Y8$Bqa=%`NLQc!H?;VAH`q=JBlH2B{?*3CB%BPL&Tx&!8Dh5 z<W7qNc19BrbpvR}Ob4M&K*e)`0Wm^}0fD*1G{Axq9qJu1owJq%W?(?^TwqNxU0~XB zrUM?P;{bu0W(rLAaNt?_-6HeknJ&+4fw?eTV#dIHfoYw|=(Nl-pL5Mr8Pg3d;&|qm zZhINi&2(fsGE2poWoMX<Oj^ctWX3-X(*dDVaj<~(;m8>nlC7}-rW=X{aMO4!fCDFD z0W7>d7BFVBv48=Ziv^6*j4>Vca2?d(5wdN@;3Vw7$VgKxVAP@OU_F-j@LY(1phxj2 z)b?SO?ILzo6DQxSCRqIC)krfZi*%QOfbcGvs$G*bs?QfXg`wOS!(<AG$hb3w3K3p8 zD$1dFR{@IrtYtq_8qJ@^_{)0(h0RUQe$|4`P0Hpg|L@waU;wkbv0BBZcOlomEqv^T zKdgNGnH^!q1bdkbdszFx-`@D+QD*qt--B)}sU9=xA*CLY>LI7z;Yg;(OnOg#$`SZG z5`W60_jF{@d&W`Ed?s?}J?q)edCqg6``qU}A8GW~uRrG4V~;xyx%6K2;upX8B^x$u zc<JA~>}4;1#Ve3g@9#El-1tgl)O+=-U;PjN_>at|$8>tgr}w(o{mbj$@P^~x_(mqv zI{}&WPCDu2lTU6bksed&om$<357X!|k)9>d8>$Xf&#az>&)L;CRnMuOTRpEjTs^;f zLG{AwMb$S~FRorv-CBJMK9^Q6t6pBcqWaeAmDQ2z+p2G`URAxidQJ5m)oZJx)pu6k zRsDB--mTBJ>VM$#9(~5D@5SeR)%RCFQ2k)_L)Gi5+pE`CKV1FK>PM;{t=^FNe5`7p z@hUW}Po9T*imOL9ZD>?he9snhZshZgp<XQ??Zu2wn)X4BK_0Yvv+h~^X1Ndl6e)u5 z#rQ|}=~Db#hJVZPZ#Vo~fq%Q>pR2=hxp^C15X*v(Dsr4>*f5x<yS_W~)zJ!t`;UP> zJ@~go4p+eD*LZyytdN?SdwQ-9*OtRvtPRNY(>3bl-C#Px3=Hq05-z8|1Ygi5IKNqz zH#cq9p=!AQno7RK>rgPGEJL@9@EaOyj(vcd&~ZsHoriH9^Qc~$MKH2aHRosAb@{O> z=Y@47hkY@=aDMHJ@P&1b7vc*VZk9E{&K^<?oV7(I5(-i;p`gh>S487up`gb?L65~_ z#?XX;=aV>^j<|q2{X&^r;B=o&f-KxEa0AIAuI-?MjJp0P`q!iffR2LytcGcLs@od_ zWT`P$1L*t$T>$x@_Ony#9@LJy`5Np~pN4bs0YH4SiiWQjmgCW8t7^^73dL2Hr0u*} zYo1~LeTM2^=Z_OzPTEk&D!BP=1;)D8n*CZRV7A~7@jZkaF{-M&i9@t{5De6-aH|gh zyc!NurKvH?RRCPzvn%Y`O?(z{@xV_F)Y<DndA}y`@71fP2w<-Jq0G8Y*99(%j0s#4 zeLxiRuh|?42Mub@GwO4t5mpZd!2w$`xNx!-hyfNVLd5tzt}~?8R9-?~_nOL!Ig?sb zdC>rnyQcC&XQXap9-QbchMDU!Mx5;$Slp-qp#QM32pALX23&%mBW-f*&4jRU1Dm@v zqT663jk2$GdCfk-K*fB21a*cbw;(>Yf~I5LY$sp$+fv<ESSF`!1~rHslNW6rz*t?v z5qLKc%=&<z5v#|S3VD#0s5HTRO{(`R2kwQ0c+37hTQ9M!&Poy_iY2;{g%5s&2(=1m zPMmuS4yCVPb!rcKn8KrRHfWP9pAF*C(A{lK6)-=6bfe5Ui`{vb=w%1J5r74rdsph& zk1hB8JFRCJjo_gAElGP+^^>N!$OdRhR<^dqn7(WMHpwMNaym@!8q`{A+Fs8!cpha@ z-%BiLjF+yCEy#VsOIPU<q-^r0r-D!z?nwBB!b;*21*j!ZJ|tDQV0asQM&M?%<DI2d zbt)^N{5J$pGaMP%h?M-kggamKQVTJ#EIaMh@VXBRlx@67cJ2Z$5zM-zz8LsH{9gCz zI;0JdkO~X)+s6SbR|+fCBr~Xrq}4+8WQI8sG$vHjybkqqT-^?E!=#-NIJ4FEH7=uj zbK1<ZH6o|wLSs&=Tx%-Fk&59@>2m)J1{f=>P$rRYc2zL#f&`M}x!fr7UQ3>jrtxyg z<2AQSo-rUVFL@Lk94Mts^4yT>cFA*@LESESlvU+Yj2}X8MT%otQUpq4#3R-7@C5Qq z$ptHQnG;Gkr6#YlrTn)bHLo5Ay+VvAKvPGRZZ(QQ{T<p%ME%KB>u*gUTw)yo@lqf_ z-Y5e2;_8yd+bMY79Js1O)#Y+$A~oZ3NA*NYgDUksto|Z_PTdye4lFP2e^vI@3;jOy zm7D;k`$%G4joT==&If!!@_gPeNc6neM31fw$5teJbnQG{gNrUJd_qCOCln-nLP5d@ zg@Hv7J}a6GX%!sj1U$`Uhdj^}hMOEU9Lj0HMT#ZTXEI^XrH@*O(g)ax{%iq=0i<q$ zs1SA-(H$jDw_2B<DU&KzxVVEjJ6pJ*89YhR0w`xlz%YZS`3+qp^BC6kvCwC12F_gh zQ*$E6h$JU+W?)Mas$;3>_eWJGawdI9r>g^4C@>J6$mS6_ZU>qD6YZWI7(8;rQ87S! zd8;&<Bz}}6J(-G<<oCqz`Dz+47e8KeyZ9Le4)Wq>gh&pgQ6_%Amg;u#bB1v(=nA6| z3?JpZL2hx^gQHnW1mfw$m;At61xw)@sR`#;rXL5W06$m?w~%9%eH^uIPaKQ6l{ofW zq$TDZ=P<+4l)^D<mWF6o<8D51N`_<a@(beF7aGUvTFYzMZhQH4?POMrorzh74Fxf5 zD2N|IK@5um%yZb)VpxH}T;T?%V<m6dq7Teql@rjN`1Lypf6lL#jC|18Qt+*{-*Ss* z*%hck4z@hIa<~cxg0htUn?{(+M9!^RcETiA%TC}{O@6_x$LyF}jX-kTij^2~>oLZy z7)BWg6J0i(SfIfQg9{W9n9o}Bvz7K)O61ba?4&C*HR&%-OE@@T$`iTuc#*&~Qh>x6 zNhkot&P0u9!~G<U%70t7Nvi;3?ZOfUJS%Jc#$3c$N<>lhfI6Dz|Ms9n9nIB=e@KXU zu>*M+qa`qYmcZ~+Ti>957;%VwsS%Yw^z}yNP9I&3-;hOK$GJ?2hxmU}#qJ?~ohr8e zfu9Joj%~G`&>8IEsiSahL>!J~3){1W@oZrtTbRrirm}_UY+)u_n9UaEvV~S(2Am-j zqCgyG!9*DxSY-};%m%Uq5eg&-(9pcozuzS!`my4#6%tLjk{i5%Fh@W<MwUn}9nKO7 zoZ&&p`inbBB&VDbopw$no63k}3x)7&azt__FaARZA~_>f>_pO*Oddoc2R^>7Cx5C$ zGLj{dP}o@_IXfZIiR4uUB2k@*NJg_na`!DkdVn{Zhqn_6Uff9{IX8jfMDofqA~~P* zurWs@%0T?L9f;(jRIwAu->TvyNdU7XiS^`9l1TFD0JkQjcu333g%mgG5c>=@vXT<Q z1QdQGp?|5rTnwOjSq8HvUR=~bokx*OGPxsW+r|UT!5xf|C>${r46-pQy~`5R7cQ1N z>u=Pcs}w>DyJi!FW1LO+wP}2pXqmUB3Y|7yn&|=75-4Ujl~^kyB*P7|R?y;9SNnMr z(`H@mj~f<l&1(E27Gty8;g3*1W!6=tp{z3<HPm=k_=JKBpAJ*&L`qks0dV2-A`L)R zL#fUrd?vEO=d<6<YN!L-g%4g#gw+-Zo;PFOk-%`_^Fo0!m}Vg~W8TS8KQ1SHls@>F z4#MZ%sbVLvW3mJW%><Ywe5@yblEMevIF==nP}o@_8B0iXBC+!YvP7af6OnA+X(GXk zJ4qz(PhdEaJg<yMK13pUZjMO)lNX=efk>`T6+4l%oe1!MgGllk>Z1uMuAz<=ws%TH zeav4jYN%&s*zZ2jP~!<|*HA~P!FCOGe2Io)3|EPUx+zuYwDF8g4_reXU!tKtL5h2N zCk<s$TF^>a4doaA<TTW5R``U13!e_Iq@<xH(g3*d`D+b8R`{sSBz)$w!sqr|vKs1< z?HUR%?xgVfbOOVL&yfNnr=dQ_Q9mLle3U-=$sL5xZK+}>uqS5;48jL6OG8;t{v<V2 zUif@5A;pEyUkNEYC4BDimy5!unZfLRAbh40)GmA)YOr1Sw77(mw~uGbrO#JWjZPfv zGF@=#!yRV@ciz`Yh)?V!erC%IWWV?)C4PYFOz<FQJ{d1coDqSn;%_e5+GeaIgZ?`W zgERkO8ipM6-$k7NWsdp3$BU2a!2C0*VjthOQ#-)?!GU5CkbjcQPbXM!$fCiuZ_A<q zd;f>T9gh)#qJ*Qi*7z|m@Mw>?u4S<oSkjKJF$75AcN)AOB^>(}K06!4Wr-HsZ6Hk~ z*czxulWA{hT5<@Bg$Sq-P__iYLnzGSJmQgL@GdJDhOTNnm<`@S@PlT_2;$;Oo6>W5 z_q9v$f7nGkP9$kG5H8oyVjp+Q_3<Z#J~Hc9+}5HcJ@2EIFuad~(H6U~exK`Wh{%|) zuNWAnc<d1B)>qcYpR<n#aa@}tw}umO*vGz19}!B|HjY0l^wIK;`8cwnruR{s0KAXd z+!6X1mX5+WcIsnx{G9mEN0=<d@j|#mW$B|NXaRi)0#tAyf&j6Am8Vs#uEcRfbbDJL ze_80`BeUa3074(N*5iG|Gbv~*jAKb3ZKF#Gjix@L0s2Q`4i)-GxX(x+(|^y9M-}M5 zj{`>kJ%b;0XOabUUIqH^Bkj_E?;-P84`E@2KQ_xkU}O648R)1A=)aF%Df;iDsHS%$ z$m&x6eIJ+p5kSYBX1xq?u%nJItzpP;DhhW0V*wH?w~LfwOvgwt`@~{9C+$sqY@a2K zUvY%@#^vU8bv@k>I$DBxBo;SYc4adk<!L9%7I!8~O!2_`O!BD<14|mJ5gR5KH^<X; z96O?_<Aaaz2XO?+;^v$+a0aVnj<dzh+4SnebYU)C*wbG{!h^-l-=yo<{fG;{v!F&D zSj1ySxZzx#L*lT-$c><QM8Rk|4g9VpGMLO7@u5H?-b@LT!&%x!I1$D#$>DQ1$5jYF zpUo<E{sp68;}08Y{VLK<){sB*>sdqoFPu6s4e%HJ0(H5$mux{b?`k?ff#JHG>C6IK z#TB!Qh;ZL@>GoS!<1M`SXB~9;C8=W9<;=_=yl^EQx*Raekhh-vY3g#4!!Q?*xrhww zi?JL-{Kh)lR$j*<@-VHk=}YrR6JJ(9pl!q(4e<a0mm#ckyvxsknxF;jzqvs$o87?{ znMW8%unoZ_-HJ`Qf&*!3)Bx|e;5@9dzCFrqt1Uu<z7Su7-yn8v8w91|yNgh)sjNq` zL~q%iw^OMIQQfZ(;rC#G4)v@=6dZ)Ym4pF%&RAQJ*=9d5#J0O}4eujluI3pFud*_p z$9+p#s7u<XL=!|k)1`ja3U12AGlYV4NGQk{2nEG6pnw2<#PmWsI1J2qU_d&HQBw!5 z7yn@?G?eq~7xa6Q16QYE_IL(Mso=W1kC3mmRdng`G<!-|2Y!~scq5D|<B<^C--CGA z9voQTiwu)irnufl#B~!TR9D+cgn)KC2b~(4--vOP=0@n_3y^Sf2XRQ_8KQ`xkJv-n zMiehFqQj_aOX~J6C?SmUSao1I^I7`3N-h@3W3pj-h|t=j9Ay8B;27r6P3tp8V3$Q+ z^ERWlb2}Vp2PrnG>Iu%i^RNGJGt|1;|KSfdUws#wuPPPhokMO7<($LuM)>1VG1z>? z^cvWD)s}M(JFfQIZ!ovtD!<bTd#s-Jbo_CP)zQy-HvX{1>Ur2-bqxNF#SW_%Vtds~ zu(#@Ou(t|3tFX1|m9P4H{Aq91Yc}!kwcK6x&)iydJoZ&#Q<Zj9*={P^N5wr<+(l*k zsJN4gd#U(2C$ppKeC?{TeN`7}Z<Xz?x<osyY>yRpS#h5gKbLE_)fL)t#XVR2jNrqa zSNvS1{a06O4;FV}@pG;AVvTA)7I$Rv6Lw{BPZoD%aX(h)-B=&1j#ocky|H>z_2%j) zs-MK?mg+?H*6OFKpRRtU`q}E|s-Le;R&T5RSM~Pl7ph;ZeyMtgK2z1H>X)lu!RM>h zuT{T}&o`>ytWH<IRsHYkxAD2tKX+BXQ@y)7Q~hrBd)4n(e^C8l^+(ko>oZ%Ot^P!x z|Ec~@^{4v$topO+&#S-C=a<!AR_CgaI=(Y(xUaY~Y$BId<$w8nV>qlHBj$>kD6%Hu z=2m>i-F$k7PeKOI^sIuoqTp0<7SZkvX7wW+HK+*OW9C|fxWTfw9K+wIss2j{x4H}t z2K=%H%KI@XmSI_x*EZJvW^qNc3tr&vi*BkND=-EXiF;)Y|CljSzhH$5h{wr3)F`_8 z^KiAl*^{pREL>gDd|0~r({Obq(wIF$@zo5-{~uoNZtkuNkHUqY*oEbs3+#*Xtd)0T zc`uZI>@TQh1snf}R{;8$`r*j|tRI84P(r6XO$}Y+asJf8G%FT{vW2;<<<QE$Gn6e% zWgnZ)7G|;q?tYH#jAaYV0jWDs!k7?pKG$k}CMG7C<<t*10FIj;bKy#K+_z|r;2AXH z&kXq$K&LCwR^fH2Z#+)B1*WKI05*#^uM3SpvCRt-ecoj;?LQ<<BcCde6~p|9Mizu^ zc8>+o6Fcs<1P-+TN?3qNpdP6pqU50Pj!ZLRjs^K_h*K8iq$28B5Cj|)7UTvX8d*># z1osKZc5<6aejYFpdq0gP#Zg4dOkcF3JhL8my!}8l#YsDN8gf>yeIhWDM)5Me0opGD zN5CwNCpe>K(Onu-vh-nOjqo|R0~G9ynZQ<-f$nKOj~T&m00IkOG*QH%j5Q6s-WP2A z$#ik3KV%=_#KNB(=?~dQ#&g+6w#u1gAtY0pAlUB_To2htCUHGv9~s5<kO+b1d&oXA zjO!s0!Z@z4W!ux9ePp-~!UE;dJ~Q=3`pneZ+GkcA3@!|$HpgHL5u)zdM`k_y$c$$n z8G>oZ`?J_Zhw-%m0^+6uqUd&+iv<ipOI9KW74Xf*I~c6tcn2f6H5M>@L$QFd7>xxC z)L1NFbVmB?%gqI%bDX~?a&UZ4_i38Jord4dUY|?XXR_CaEh!P7znj->{>9>VP;A0* zR<eaVxdTP<quk4Y!AGt{qG1fw(HNyv|8L{Gosx6&aC{>&_|=KQzikZe%{UW*GNTg} zFkyNjzIL|K$OpFK)Dlwq{e<;fjsZf?Ua&{#Ubpq+o7NKs@%hG>>-iEc?}{X!#tzij zPZhx27)3-6^9}~sg4KhB<(*kC=&?}1WB!(lLl>X8?-w8|o0u6vRwm4iCd~Pc-)~sA zAWTD4{|DHuuY0%HT--iug%u_;tss$UbPvJQiUf^b4HcvmvtoWt6|<v5;bHI>w|ToX zX`jsxflWeQ6cYy+m?5OrjqHY+<}_a`AGR-}f8EUoP!&HG&7;Wj!&&B*!zn92BB|y( zyyrVbve45&P#jPd!hot^1Im#?v3;b{1&-9}+(?ZTM(Rs#BL(=c=M4Fa*qC(#N9+r{ zZ89j=4k$KQPL0Sz?@RT6*LX-3#QZ*C56Mle`*z34ctvEA*rUksw;7Z>g}sQkauuI| zy)FTJrvdBDWEtMsTl(C{8EoGr-vZF@{s>VDnID|-tyrK=r5^%Fy_x-;RDVU*+!!;R z9z1&6VU^h(klW`(ZhOfz{0yy7Tp+>KNpLsw!e{Nm059Cg3!kwIdnFS5w3^>`t;nWy z^lnH9`HmsvQ-=2mj1X-Ki9ik)3qnaqd?r!oo*Ib4aBP<>9Ajh<Fg1VV>X8B?j}z`& z1*JF{bSIA?-qOZXDFI*^GBjf+><nkSf(D06Ohd8K&19gM1;X=Yfx1s{oNf^arf-T8 z`xCoBinie^5+pZ#(d?4QRUt7litP-RE|f9yO=+lH<T_j~a?zK!k&$l(BY%>ex@i}{ zjsVZcL7zxa%oxFVGl_#(m*uF)a+33ns0I*|oJ2KFL5VZqo0F~NnspqjC3oLZyY`S8 z5-Q60(AHGs9if=w?qpP%C7!4|Fr14?vc&&XZa-nGR2}$y6V{jruhoHg#&CL#5znWI zXQU(nDDCGw#Q6?J(sA2}BJ<XS!y7D%3Nn9?gB&k18qj@KG7@n?eFe;p7Vx3{tVp;) zeBc37Vq%)D9s55A#1+&bwI?cx{JJ%?EldWe;I~Az4Xuzc(MET3Z;GHPvNFoNun#ZX z&I=#53y<Z6NnT*~4VZmy3n94%`@K^_9*<>h9u)#-sgO7e#l%_7@mpcxYNp4*Q1_Y> zi|vU<9F*JAp!ngs4xF<WC;p$|a4WHgBgwvyRS;{2hgBwpuX6L@1G~`Eoo2=_B$)3u zX7py9@g%&RF(tc$R4;I$b0@ek<>G@7j;?sguORss1sVbRw`Uo5yf@FQU*ed*pF|+< zyC#&F*MtcrH6R5(lxCF^&MYsB3_*Drlg`@(zIiT!7<;n1;+*AsRR)-Oh_`17gl*Sn zalL)ohlc~B&-A*M=(TAarfulFrfulBre(}!9ks_;>@@l^84HjpQ?Y>dCVGRMxQ&GK zUZJ6rl6lWA5Qyh&1+$B+neZnn85I&M6q4(t3*d%=wfN;kQLbbht_&A^hn+$46|pXx zlU*N9yS$SlzOC(UJn)h{r29;wLh54LMi-SVCfKNk?0#b1;!%~~O3+?txqm&sN(S0* z5n9V~V(qzA6Q$e?xHjIY*LV!s*Z2++n#3{3)DPwwR^trF_8$L;J+?$9HZW*`lb|Nj z^svXe{|@glvsUh?$GD&A@hSO?!{0CT_!^^|Opos%^p+JRC9n<Bo3dp}Jtic8)O!41 zeCMiskEhw=P6RuGIs4ezI&qF?kw6#MyNSGC5goW0?|RxV+lBg8fNOCX_^x;ByoF!$ zjVsuAAJ2yC$AJqNf5O)5Kb}oI{(_Go^+ra2ASDKeBr})(2|I$zy1tWoWouTis1Wpu z3W=Fe^uclZOc%<S>9=XHoSBemgYaes>j#9_@@yy@x09A-=((0RFY(SGN-R(gCV^g% zTn+`F$|s;4O5D%TRDObZ$|=zc?@%H~M-IwX4S*oihGDzSx$6Z1GU^2fB(>{+;JyH9 zM6G*jYTQpZyvP~{K7$`YiLWeQhjrZKjiKmwB#H|%C<@GnlvpGh-9KOV*{1?X=>kXa z^gO?vmEd#aAmv96Iltg2g{&V$f#7RS2Hue7wd?S5fKlK|BBQ*S@0|<K!lRgA!A;cD zxR5vAgm!pN2?GqU!YxL*f;W^?qlb*ri<->&jHABnhZyAoK6Vx>o{cc1W`&V6Gj~I? z3NrHi4?qhU(58P@u=8=kK?NMqpnrfls-HFo(Ulp**<L}_>`HyRd&Xp?j!7N>OMVm1 z)SP`1=7cf7MQ<I8KZ=*Untk=u6i~S`Fu<_Vi-ghOGKYVF7wp#-BNPHH8<8yEmZ0|_ zh0|=<*JjW%XumbQtL?X@4V<{3sqKZ??p1`<(p+%DqR<1t7Yzvcks+uhqjM9M$%0)2 zbWO?(f`EoW4XQMih8pRomv>8ZUsyAs6bvQvCBm_qeR2#kSj%WiAO%wi%@l&k-$A&M zT>~!?G<f&9Jyq_2vbj~Ms|}uUsUS|sv3_ScsEs>M5<q#g85fgaCnxjp+7kgox1#k} zI)M-cqUp6cn<#3eSBw*HZk1gJ?)Oy_poeaAx?{q{ep`OACsr`XqTV9{dk;Hri7~>8 zNXCGTbOs|<zsU=M{_=DdP6AAH_U;0m{j2)D3uHE0u(|((5Wi8Q1xOU=0-A`HDG-)1 zsoQ-iQ)N^(<y3|+mp0njDqA;<+jMWc&8(#l9(&{`LedEyhKu|>(hKe06OQNUR>)~T z^M3%#*#It0`QOVfDS-u%i&;ZkvY`Cre!8p|0ZuJ1fNEx)U<fyfiUd&+k^QrVV1&{m zL?Vu|;8EAZ{pG15^g<9ZdckM{OW?&9;OHvZZFXHE2ah4Ngb`>R{Dv7$b8otm@O{nQ z2RgyAS;i82Q4JduyU_4Q3Jt$TNJtH@^@e}(fsk%sK^p#eq2aa^66onZ-tez~eh+(0 z9uG5D$?D=jnUW~Q7vI(k_6$T4NkIh0;D+MJ#utJVnD2#hQn<B%n2os++0PO4@t7rK z7e{1)ApLv+(pTglJ-{J-`-eja?}9)IK|zzFY!J$E`o#jImcJlT`Nv`2h`)aS<pm}4 zuM}F|&;dtt*WW`Nm3R4@g@#|8Yxu^{<xhQMLA!isp=I0CpO78MVu8E--9p31=DK{Z z8xEY~6L}K~Uf2bC{BZ%&7vvz_%gOPMFWy7pS56f_D>Q6d>C@O8>J8ud?+Z#4zbZ8R zocpK8zbiEStox_oQ#Z%iwX5{(7I>=kdp*X5X`=R<aPN7?Sz?$NKW$0lv>HsSrwSSO zdeV1x>a3?KWW{cwPiE(Q6S+Cx_^!<PV8T_F{<RETDB=a0@|}}l_bH$4@ZJSee6ld( zJCBfRKRE5yQE($COz;Z_q@dp&CVUfRMy&b0F;C2y;^R9#;hWf*3Eu?-`$<CZeK6l^ zh$iNG;Rf?Lq2l*5ah%#4u}<v+T^QgP#yN+Xzt27S&A?55uMigTY@Ck;>x=U-H;3cw z{^B&$U$JGACyM?tUyDAE!OY~|S5V}Xz(hazr7k3vo)EDV=KdI+#kQPabJ4||i>49B znp_`Gl-1<&a#nG8=xB@d0l<&9>1phXS)1m=2=mPO=az3ty>x=MUCX;b(8aaJ%LuUc zI1|tjC+P9E?sXvO@iKxQ_qpXrj-YMnaikmL%3Tz`gQDdps2-o0h@w`kk#f_ApY+<J z2{@d{a{d&il5b@X)(YjoC8m;=>KZeHGGE4s=*X6kV%U(tvMD5;b4Fkdk;5UP?d)7L z1%6@QF?R>y{CY&O;(T?4AdBo67LavmV#jS|>0<~XB2BZt)=-eIH5A}$#gbk2u~5)s zp`gbyXAL1-BO47C3hud0kq9se91dqLFjQgH=;}mj?j?P6U??&Rw9Px%r!{ijBcP9k zgYZOq&E6Cs&NP)j=KI=0Q>-Ys)R_>U-X*m7el~&=;5)Q}4)36qcNJQBRHhX<pj7`O zZIm>i6%6ST@hov31&I~pJhgG6w2~;{TP~Z7CP;u9G~EH^#X*a;ahymin#fwgYnv>q ztxnX0+6JT68Cqh3R|2Yq^%O+W$D4DDDOBCPIz}uWAS{X#P#uRUNZKS_H3Ds3)#>l$ zcld2fSapfCzp%Os5@{&y`|@az_YlIt0O3}bNZXS{LVr3)r0r!AX}e3LtvQJ_#|+P< zK2#tuMX2x*I8;}k)I1tzelTd1zRM8;xsQMZ>c#+EGoYu4P#ZE)XYv%jFX8UX-CXZp zwl{F6<?$}7epQE!sUJ#jx&^vQSjRZJQ)vM_37r-Rc@!^PtReUl{$s{meVgd;lVYdg zla2GJP!Jb{g3F{7=IDX~_cJV<U)K6a>bA=yY^Vk-P@F-5e}iCf6E!YRWWfjpfe{K~ z#=EtAix5lF8D2{;I8b;x0mUcqhF_q{E*xL`u>@w>@wFtLFB42|;kMc$_zK(PIrV}h zHCzTsvEdt2!;T+2yVmi8c5i08E0;9B!0(4dr+q|MR%ZzoKh~BA17#7;ff~aCcsva| zqKEu^+i}-ECNQ(ADBKCEC?eGRh5HG^#TC0x7y9);L7W-)JJ}&WI+v|Q>1u^tTj=_1 zrafEe;=XU6^9)P&cwtDEU=p+~3R;XQAR`1=tJ%Ri*MAXao#0F7;{wfjKA&KBfy{Iz zG3W<kGi;1Eg#+W4kOoVa%4@g~j&>U%jR)8clTje^Mw38BzdH!z(K3NN>H>K<Cy-l; zwh95BJ6hx#LcHF*i(EGmZ0*NhkTtG`>Ra4FCf|_|?=sn9OF-g4aMsa(%ECJOzgB3t zUn72>H~g(a!?x{v0UMS&bSDE>d6MPb)nOR!E&#<Ps*q=3L59H&oxEai?6dAZiF&)X zu4`TGkMx7xz(-Xo*{#6K;vV3_4&coG-$y_CF$W*=*h9;900W=lG{I_d&#3M7OQ#7k zxng6emOV_6yF@s}UrDPJ-~BeX9u8--@Z?_lx*&3KO*v0?$EBymOSWh8M#hOeRmu|5 zi1CNf=#XB4j5arcO|wzkNZxI5nr}_yDR(C6|3CKL1x~K2$``Iv)k$}!LkNnBidr2& z6A(;vl#I_*3Chgqm{Dhpj*f90?=Um!aA%x5%v{hS388s6AP|v9Bd;h#TLozmp#_A9 zpsgsx2ihP?qoPp}T1EK&|NmNh?^EYgb<&XN{l4#}e$aJJowN7aYp?fSdu=O4=<?fT z8u!4(JO%eES3(Ac*4dkx&&jx3pIY`~I4t%A^BUs7QjK>7{E8$oEfKdB^6>9{(Sp}c zl+eL|pO4pGrD4z3elKT59Gk#&b#buRWx1(^8Px><BMM6H_yFLuND~cXDht4Q7-!Rm z;%GgzeW7|3JMlvP@}csYlm#K>dYDHC*rhOCwA=j$tTwl41@yTRP34Sv+3pJfVM7=M z{D6?ikGT&8uvqJ(16cA&IVSyXyER@8)HQ!`Oo;1)ESk@hU6aUSIN|&AyHa-S!k0v# z1VQ+A;={lT`O#yZ6bb_i9Mx%^lGX-ya?Y9&PEBw*BUogqoe}7Y6&YdmHW=Zw)Uq?e zOL8MNM%WYc@nYld=`1mVz9&Y|Wu6hZv-MAR5F?zCz;s4fzTJ!fz&bL*9)Rz_03R5D zq)UF_rcqJcV`l_**^v?ahYpOex&tFT9T5J>b}|AFp__>j^t&;_GBUzRSLGRDu)qlC zBz!v~@TDEb2+|yLxkcds3{i#YbgNfhi!{dpMsOpj#>3|p;W@>Ys3w{V_1wO=_gp+i z`A~=LKoM=KOH^svi)MbU-lO2}bMS%!NTi3Y6n!DMOC1r!HA5_#Jd76%)*fQH_}K+a zU6?TCl)3MAQ|8t#l*vj2OEm9*Lu(j8MB@z?L>xjv7H;f70$8_b6VdF_28V>43=$2e z1<KJx4@?8@2|-<ma&W>3dg1aszi-6%k~UcaP+7uF>K35RB&$u|TVp|m0KO=z^}CVi zUTo3(r#y`-36~~xKl&s|Xg(SYNR!Z}#5wM~pl$x*oUqW32bzmDkD6hkQeH8Z9UM8S z!^={KUSrmRIg4{Dc&U9yhq0+nM#rYqlrz<!V0U;Qw|2o4P62EAK@*4DG_yXD;BxI^ zL8Nx=f;Ez&ayeuh10GEcyK=FJkPX<Bi?&)SBt%$I*jqC}^x^W50<(Q8HTa7`&HkRk zph3!wublM=CajH>o9rmE8)=PtNGIW&)78SHAw-rZvddF9UM2<g{YcqM7qLO@J3kQZ zv8EpklLkwRproHse;}+x0TP?dN@1JuSn9-&X=4*1T!wDAD<3#$i9>3aKnPyXK`7>f zZ8xTg^@zT^%)=YH%*(x3;59{oW-sqXit_I21h&gNi}ozf@q_b*rowqc5exuEjF*JS z%K@LFLvD(a2}i{LK9tUy*iOM~mnS0ydB-k;ydx$}-WihETQWX@?H*RQ5z*j+vXE8H zc+FVa7l{0Y5_NbF;8{i_2FVTzqL?M3i`rP-qi2AKtWM-VQtW8TxtT6<EzL;3=we1< zfgy{}qzlAOw}XXlNb~3A-EjyU$SyI3w-~$;tf8Pc7i`UuOM?&veK(glyW(ZG0kHf= zQEv(zIWhjl1jXdj#mGc#jD1NII^~FpwB0a>>FqGIF+;<^22YWHHU8kuRcwB99&h2o zV$S{xVxZ}<J+=#@H>I&SM!9vZ9i!?iVRRy4bXn!qFkMJsI;~Ze1eerSLD=*SRvR~y z=xiVLDs2_TDq?yU(QsaXrdWg#g0uPXG-_T33EH&fAVK28%1uweCX`;&z9*&k<uoLp z9vBHbZhD$`J)EZ^OL$7X-<o=NJ!wIrJc+t)nmut?c&PO*gopb6j}H%3SNwnVgTU9> zD1+A)`3j-0-FM&pNhpE$6c2zs;~CF<=CkU9i}u=kA63Cyym-lyefQmWzx|%O{{hci zx~zL7>@`*gk2Ua61aH-w-}1MtfQJHj?|8@G|NT4P`Obg%hj+c}UH>B#!uw~G!h837 z-t(UKzV~1M6}9lZ5Z?RV_aCT*_n-fHILhJu_kaIyRKz>-$oIeh10O(HyjFIUK5H_T z$Kz)mK1b`bK3kt1qfaQ7XXWx(EYHg2u~^=T*-7}Etj};ZoGY1U#qwAtFBQl;Cu3ne zD~Wdj3gKBXyif@5l5Au4QGBcf-lf@P_*fCVd<ncOvMaLB;B#d*#_cs8C>-l62MQ+& z#pSTC9469O|GzBC_NJs6xyyuqV%s&X_>PCzvGtt734+XI@DNs9pe3+a&)egcPMmIR z#tjMM@WcdeKp^`|NwBrwfLJKyN32b-oMrn|HQr^FJtS)H;_e3QHkVLiZw{ovVt%AU zN_R`f%aEm=06;{Qx}>_yMYFbBowmg&hO1|DE*pww9lwAI4?>^6j>-eI?<{tu=11pv zK#l#NA>g}x$TE)wtRtlp4vtAU@byODs}9*27G$;W)^>|y=c?;K>5p)s2?-b7CIi3E z0LZZk5TA@skuZX(s~OQ2THCK}fW#SL-*HClqJ2i{xfxkpj3qJ}JF1B;%!r-!2gUc8 zW<-{O0BxtrnGtbfLWIu<Hgy*ep?$%&o13)L97U=~m8J~vm0G9q)m~*GsB>CgzUD1I zD0dz%%<^XIZab+yvF&gI>KtPg>=kEku)hMC+)94IPH)_If*u6{H!E*|*|M3xX}dQT z144eG@yck{L_CHMUC)PXe|K~8fnu7<2NMV`IW`&y7-o)lHg`nB<W(k!%*-iTGN-4e zy~qUijTca^B22bj9EA?duL8;~k%Yld?D$r-w8kJVuxFcCz;gjRb-O#z{J>yUkDQN< z+7{Pnen62bmYU=SZOF}`jkhXBBDzVla6y9es3*uEKF{DZqo<j1|LQ(y2HUv>zoCXO zG?!@)Dx+cC(hVea*yyw|weKj#zHZ{d+TqIEo)+q9-hXefA-D8{V#5B@NnWIFPgA&b zrvO@^Q?$F=P%llOJi42P%H88d#${m8c4<4sS<Pp5S>#w24-C$hWT+;HvQzV9JMvI) zAURf6H6RYHl~N;0Y{naSa|ZGDi8LPP>hgB(&yxPbcJ5X_cQ9N?&W4L_au&bO0LUjx zfcVz#oWNI!xUjXG-9<S|^zfnv%CFZ%wl4<IVW+n}t7RBNr7K4Ft}Us`bX8|g981t$ zUDdQ>lX#93LEns1V7GS{68?N@z)2Wez}rbU?j{=lcGyMn_-GjJ78s;aX-rl;)zHx7 zYe5lbP9;)Quoj##3@H|VFr*lQ8Zn$Xp2qY&ON>6z#x#wzCtx^*v|3Vw(tHM#qmGcV zv~G=QUMhx&ee6UFsNbRYCvxuhb*bCorJ4)uaSv(~uT5I-=0syVUY=mXg$OoWIKj3l zDE5!vXCT<?6Buq7U=O{ID+pKZt>xx<Z!Qrm`;LZzU9=kphlUYh1`aFA7X<`|)Na8t zSRKsOqMX?-TWxiM(}^S$A~0W7Knu?8CX$;Hn(j0r!S;K01J~VY1aV1B|0YTq?3)ib z47yWFn_(QE3y^dW-H{T%lsY-qI>EkqcEVUil$7B@lOHa+O+J2~Ve)TI9lF?DTbg{V z4pio^@d2?rACW;NX%#>uCCrBNZb{uw+IX?wo{f2AK_MtZu*H<yDmlS6A}I1_7Tb5E zTWxP8CwC>He?S>JHm69TUt#R0WfY1ut&Ql6l&XYVI7TgAV+-{N|H6wHgW~5QAhv{w zF5qF!Nu=z&fcn2E>y0PT<;FrKr;R0F#Qc&G+z*wUxW)wI7pn@0V)8H4G62Bp&>Y)x zF)|0cEpUwr2_O=LujdR}B_|FV!x-1oyg;j);{^bph!+^u7M6Eaxxh<E1MfGQZsk>Y zxDYLdi*B@t-)Er3i9`%8h>i@j5aiHD2!`q(Y-+Nzs5kAxORL&NyBJzYG;qK``Ksb1 zt7e-OJHXsVionuGn!3l}F&;u<48Vw#hXk|h?_s}~4a0mR;mD=Xe+frP2vG!`Pc$9g zMFNe*MAA+Y==RisOQ8Q$2dJ)-1W>rpq=$=claAkKnDjeRe?IB|t2pUrb2R^9qhV)p z((S@0-7eZEeR*!uR}?4x+vM!`vDt#^S^BspeJR?*w5L%M%WXG0g$cfs(BN|T-->8B zlW6##hK8YJD`T@vK8-kB_-vHG!0$86#+@ZF4l9D8Dm(vbU=+<Vb{>_3UHG02yO^DF z_<jP$&9e6jm|0t8!2Spz<17f`$(*rv3bFbg8x9|e;M;|RZx^!z|E>i7DQ4ci8{nG| z0wkv4Op{m+Q`GOH&TC??aDfTMnn>cpcA9b`!^4{0MzkpIPEc&Hz{0->i6FutR8JrZ z{+TFnCvQW>g-@-wO_53d$<Q;-{acmBhRludE!=wJxD5ud!x*th=y@TtYuqm&@Svm} z<T1PHM7f!Fg99_cix5&7;{}9w#rO-r6h`{PG}61xmdKZmAWsLR8#LzAQ-1~<&U7f1 z1UenT35M+jSnnk+{*kz#)|BQ4JhBAZwFc8E@K6UQxufw4B@Xm33Tet5%9;y3Mk#0+ z2_0DQrd&UsGxe_AOhLaR-s5Gmv_JSC<hXH6ZEirbLrJ|DC_dW=<DEsqSkLbMzDt8^ ziZ#Q2mhkTlzN6USQEYH^8~jakas~U_jn2Z!T$pK?nC|t67s7>j;bfV_X-`Vqc>PtU zDoizR;0?dQ_}m4>0sJxz!1tv5ody8i8d&9FlEB*xO!gn{3;eg*eV)$<HVM1pxGe;i zn*-PIy4gBv&AOrCk@40C9H0^BCHz_->t83RF5E?4;@=9Y4SEB-rRUqn>#PNIdGnoA z&V#98S2<QN!s8Smw|hBVZ|)We_-%UMBLS-f7&-@3jAcE|V_6^Gydz>+okMDmmZ12X zKLQl%j*86WxOig$if1`4)@%qFe~%|7(is=WmY{fj0Sctrs?N*FLpuTr5?yH&E~6oT z7@L$c!xgJ?Y_jthPA-k1SU95YV|Zxe&KpBeIvRtiqgjmM^wJn!Q<w)VylWmdJP?-P zOL&|`l(#b`&niJ-<t`F`?(R@*eDJw0Cw4p(=arza9RHmK1!;0|&gLkMC>j)+TQewT zF}D|$#$%fS(s-WiSUusC9U=8P^H{KuGzNqrpekoEhD%FhXcp*m4<EyAm+q)B?94g& zWNAEB*y0a6Cy!5NTv-}}Z7xV-*xTpiOL1#liMAiN%(%J)#fuA+0huew^}G9ap5*#M z2@2b1kZ^&uOF{9W-|Ptb>?}WTEJ5+20xq89P<(gI&V%C1B`8o&12Qh*;wgbH&f9rV zOq8IoN*8}vD85;OVrc;v!OHr<nLENZ=u8*iE<tg?9|4N*m!Pmx9cf0M?sRd|9XpRM z?kPcG`!04C6kbV&;TSuTNtmZwsGuM`VY<mDRpGbrq<iqml>3izCc}lC$#CJ3vg9lQ zcz<&S@9D>B<nBE^Tm8BB#8gt%BUAMYk2_TWvz1C=-!VpF7anP{i`hk*ewtvp%OW2v zk`c>)rsc~m73)?p4~D|{6d(@ATNUDDc3h|ywXn~;GJh{a>5dJP{VW0h>F3J7wXGch z%P~ZYZ9_gx<0~i3EpCo~3$}_T*M|f5J55_O_RyL;CMh)b^VIVrwiZ4pv{@`&zCC79 zW!UQ+`L_B(#AZV<%-A2UJtH{v`HR$NtESP~E{_<$Z{Gv)%k;SKfxzSNtZ}Fo#_Zv` zX)Q4M#a0zhS3C)UENnwyP$}$+ou)(oOpYbS*oZYVg7XOjqKdXXS0i7B-$gSsMizga zVDmi)&k*{S$BApV#Fs|ev&a@^b-J|N_7EZ5Ge9_k876ca!lIPM(<QdHLB3`oiEo3} z*+RO%$JEf`6bm%Bm$mW5As{ft{rE_|)?EJn<{`PVHa{YePZf}8Y8b#Z1A5BI2H-F- zOaXVlO}O*2Hr#dsdf{omYW~T><ygKvOSpja;<J&~MED(O?cvmkr^H*M9{5y1RBfh| z_;K_no*`>pd{s!_Ko89q=eP=E!i#<bq~1m;mIR;Z<k1AiUAD{MNgCT?(F28(BF$?k zVRk1{<6(2PhHCRap-U>t(QAr97nUH2rcq5W_d#X&NN630^!;K^RTLE4@(S5O$?k4{ zd)D!S6G{VFkRJ&6{i&|Y&%bI%=yIc<A&<>OhCVrg@e@-cwkZX(uYjJ#pj8TQz~*Tp zEk{7x_=QDk{X&u2sq`4phg4rD9Z{~{EbzxE2^3$outFgq-4Jp;gY?pGaIk}@P6-Du zwB%qHe$cgDEM%BJ$~=M)gf?3DfR*H*&uXIN(-KslG*x9)M2wPcg~6qqIya$iL499U zXo+=Q)C`rD7*6M)dL>x^RBj>q@L8=W6jPTE4^(S9!?CYi!jM=<y7vXBSws>(lrZ9P zPnOD$ESRI*t9B6ON=wD*-3BL`V(T~_+kx_-9_&D=cHM!3{SmuVDp|E!t<`EhJ#*%w zWPWDp`mb$Q)UDPx3aR?cw`eT&M1A5NrR0;HvZS`cFG+OxwYbT0O=|FdV@9L3XeeMy zC2d`%R*PUzDg?5$9jbMy5jP(=0Q9YWlzqxrWhIKa-D3R5rUra|Z3|Km370gV=#uFN zQz3@PqVsVnlNM(#D#4Vtz*bAkAz_jZUyt%suLlz4%Yj6@yzHE4te+l-$j-MaD4aGr zG-RZ4?Oc$?oUWu%U9tTikWrmvR3ioT_0JoaA2!)M30rJ@gH3nJ+ESn_T8xc_PFdJ= zPcoQ?S(IUiYwn+fatA@wAqpWc7uA{vaQl8g9?~Y?WtGL)kV_w>7q?_?;b}gK2YH)Y zD6~%(x0}f7J+k?VW187oRQ7B1;U|_%Lr30=-!uy*-DI*h_HyE2AJV9q9*~Y<3+}?s z)6XZ&x@~lNLe?$L!GH|MK^EA+S+DA>SQcsE=2cwl$RO6jd4gT5=m5**u#6bCml{gu zHV5B`fwDXXwv#p=!J%8>nnk?O4l%YneqNAkhI#0_<eG7GJsG!ILkowe90}}W&uXPU z=S@%N#5@f@QCkAy23ZYafjL?}0Npai-agd${^d@n0q<-BdF@ue#VeC`JEs*1?XF(A zCUXGy%<r66dZz|aVhnU&4Gfey1Lc_o?9k^@wTI%Qi$MKuf$X^fGYVA7fyERTPl*(z z`fV;Bnynw*5#q6sRn5_>iyJQ1v|{@wFZ9vE<{iGz-%EH|o1Q%1o-`dtySLSv6qJOd zj_dfkTp!-uBiK3wl!V=E-FutWXOIC7Zz)Q<{8&tqb&%*0Y?tT&rn)x*AGCS$?%8?= zySZ@alEF%&Qm^b*sc4|w$Jyv0_wsKKr9uD7h=F;T9p0)8G_rvWS!t><$u&-L_xUx< zr6O1Y%Z$;zGBbBDCZr^`4Qq{K9PeFVv%xMJ9Zn<>WS0-@NGbm8ycD08m*Y>yPRTv? z*yE{Bd)m{Uz9;?QE<}A#fv6?Rrz&ATAE<gYspeTA7Gw29Qi&qhv|=+C84j$XgEVie zH5Exx>N7`^QhaD054!cij!INXf<)?E>Tqr9@BuSMo{`@w!pRCYpQW-W4KJE%ILA#c z-W<rk=-VFx(E<--1^z%4FKtfWpV)!`EKZDqq+TYi*4vLfmBnQ4e%*`^nKmg)cCjbP zE;X1AF++R>l54DK+5OF}>{sr9fnXj06K<#osWMq$B83EW+mxWU<DLhBUb^tO1>`Z` zS4jWaACh1KUBC|XrU%h9%1Fdv(i4VF$6goWCzgsJQzN|*#YE~gsWnzZgOA(<e>6<R z;TdRizub*Fw>r?g=leK0T8jS?S7I!gp!(3yKnqlGrv9ITE9y7f`_3zBH;BQ``=icC zbl{tYpxcVLp-P>H+r<f88b`|cAjTIjJRy%Q8OS!Fm^!ZS5M99G!Z2aP9#Cp?CX8Ay zF7@+#6Sq&4MCe&*5H3QYlRJvgv;E1k2&KwyOjSCYFo}7)195H%2w3JFff(rugcRcA z0pcSiAfS#r0&!tiAgBwwU?Rzni&ICgO(e8C!T#9wiHW`0>y!B2CEKA-?tK#U$=n^{ z7358#?fnj|`uYm~$(P7E6T9xZ5dU`D?FmnK!V{nP#NFjoJoTwhdpdNHcI_`(v}iBw z+{do{CHvZ*{iREnF7ti+m_y%$K3OSmLjP$&XZ<Osd@_^H%JOPrT`NBN^Z7D0xNe&h zk6YRvKf3hzf$fh^;PK}835yCQ!20x_JEbqm3!$PmqNHiTK#GF<g#!ca$^1Ow08Wm? z%>=$9f~AT-ut<1v0d{NX0sGDe>dmo7Z3C&<DF@b8Hb)D0v^p`iE_lVXLU$<)<hV4D zk3CKJdI1oi*b|UOeIS_WK0TjeIVx27x1-2EjHcs8UYJXZW0|-E7&@ZX*afe0jg--0 zf{Id)JdUu6pXr=o?@WU#g$tP6OpE$6wtwVs`jEYN4$*J8TD_3iI6M(gQD?g5M)WGE zrM=O{{)CVq9M0zP73vUsh0WCUf^fPYpae!7{3Iw&Nf^1oFk-8k(Hb_4EJA-OA&0n$ zBZ)4U3ikV^4XiN`0jy%Vn1BJA!-zq+NF+$tK;v0+^gg#cdcs$fS_R=n)Dq4B^Fn+N z(L&h&A-yezP|r&6Uuy8PbNL2P$MU$J1&FjZSq5|;JiDZJm`&7p0Do__fS#R^)S8bW z&<af(zH1ea&|yNZE$ifgw!tK%Uyy+Qv{`q1Lw!#a=y^jHZpBIxtH7QYKe(T$T3t5h z7byIq)U;FhB8>*P3lt6m<vBpfAjwA?nnb3nFn8RqZL4EGcx;Llg;j{s!U&t2Z!i~6 zC}~@e2=OBjQPc8m)7U?j0Q`Yfva=qYOk~)?MH9NkHw4lxNf6i^l}=>&v+ZG@$S*fB zjacy&W0-cf>c~GD_=xdSoPgCG@sUP1nnw3)o7txc{lG*(Kh4dT02(c4C3boNZtY=H zqCHT~PW$6FBRPK{cDgdb@9bn@B)Hmvowz$%Rn^+riGV&)(~@T=-nBKNJUbaNLL@+L zHC~2CcGHVv5{IJ3Ln#h(2Q_Kis#PHaGaZ^H4BP)C@D!V^=RBxu(@5OtM9FzR%DJrJ z?_!B0NGZtF{EJ`k7t1#2u9`})0f|$D8rTGE8EBqd0@@sr0t46J5niu$p2g6c!=J#x zfMO{|Fv5c%kthMd3@!l^X<e5F^g*i%ZEIG}EP`hoL055(5lm#;q5!%+wdGQO7mdxx z6apSJ`cljbLu@vNIAnnAJ?s!s_{9W?i^72cb#1#Ri>yF5fI^q&?_lPot#2i7djYYQ zm$7JQ7wKI0&R}Y=8pi}5WQfhTSbmMyJvKz_WzalDdA=1l;-pTei^gQu*$H6_@ddse z^%ma_imTJx7QNflH)}%|#_5wQW||_*-RFVs1uUfwJh_2cFWZ+}3-%@XwlQM%B`60N zwwkIg^l?3ERGO%9O)EBXq3K;?bE6>ltby|$pjf9#L{mzH+L4N?gL7aY&22CiZoCFQ zh{T2}dkMeT)SWIi=P$TjI`WZ<#yRnibeuOTKpJ7ncR0+9FdhVkV*)`u^&SNQo&<p8 zrgKVR)UbW5@G(TP0)NoKA&4<!VEh5wlT6IG#nZBDNeuqJ(jF`DW)u_=^N<vri4x|A z66PN?6=RFWKxq)sv|qJgjD;tQ!5l(ihdQH!)dpii##}36;hID0RmS3JyK#Y+R;WGA zKX_O15w2wEwhJ#xI*HFD<rE>pC8b=DYk;dcGK!rk7;&PXlhY_Xmxay8{1p+2OEy3r ztw_dRRj*RV$Yb9a;9H5Niy;v%BUmsU5YjQ=%pHn9n5)(JgE-g_{txQvqy5d9T-ENP zm>@70WtDp<!K7bp*gVwGM5{!nvjG;q)h86wcE`$lo*GHC>`7BkqIDUM@E|Ut>>$zl z1(>odY)o7nGZ*5b`$B4Ug?%6*_Nd?={8uih_RN6~%YPCU0I^Hd^nrqepn8D(j7wmv z3hSP0TJa6nwtT}1I@<1DTu29EW)l^x^ViC{mNfmsY9HeLt?|m*=A-zx>sm#Y8Vs5_ zb+caNVliIF=GS*^-jW+Y!BMXzRjy?X0)LoK6}2%g4-GR{$;})!uDF0SCOY+}(6-l? z6l<4iO&*&tcEKXKqGZabQ`@8@+YX#Yt}CkZ6H;4SOc+y72DioiHM*Txw`RPuLEnuF zLG3~rTq|jdqm(-JXX8l5OJedgp&v|;Txr>M)(wOJnnvX;otuY#r-e7G4Ls2$tjA}< z;$^32j1f*)uw9H07-HLh!7_uDs8!n*kHgY2LOj4;7v7mJ@D3fY#+Jl8hc<h(f=X#S zNb3Wn)y#B@QEp{E;udW%E*9(fGCiV&VlIek-8sq&QrZ=#GV<*c+I)e3#|-7^7?Z%u z!}V*Lv-PbAv6uR`w8F(X?#L@*mgI@#IF!T~##k0s1c@&+Z@o1@$XA*#Hy}E{!qI9q zn2JmXkMWM}Tji3jTqke$!<V(Si}R#`hM7S*_uRHuUO3Y$ZCJjv6+B)@i{{sZ$-jMQ zKCy&mbFFp|nu(#gBBCb%LrUx8tvMnZu3Y#zWSWelzSD*Q){ojI*1qu5ws&rt@f~*E z%k_K)U*xy(PCxI2^$?N$yhzhr6d`eHBRn4SrIF^-2W!ob-myP~7BddaSYHn82ju&A zL=fY0v{K;w{vL46@Vdrl5ffzTbF49fv?0xlCv93Mt`LGH(#+*-N_MH4JbO_xcVMp% zmD-P)by4}S$WE?<Tt-gwl-~tsk$fJk2LNXS_JM%}qqYH?m$c1U35bU+CDgP{C*s3A z7;nv<$sde4Nn&!ODs?BTID;J5*7bSLx;;!ThLy)~7Xfx|8k`F-Q#zdn_ZY_32Izxp z@_^npJ3vQDfN}}G-ROPHlGe20@AiT=?Ej-Jmu#1IZDlY>^-or*%u@QV{ry<s9~hWF zfBr5pT}zAnT;|8h%AQ<Xv69Gp@4XNIJ^R_u!RcVOyn>p@%XmK6pS+O&a7fs49TWD_ zm%W_-Ua_LlXf~U#Jm{c<U-hb29|E+ydpyzMw6KQ@8vM`kcw@p&3nM*lDW?6cZN*pI z{N*cr5M~cH1XQ!Ex%IfOC{hJ^=3kX0>kn;335q(yVO;+Pc-7`|=9JB$M~dZhWH-qZ zrC;-E$R`E-RdE8UIJcW*3c6K34Qx2%Jh6HvZ3-RCWsg(l^uh@2Yfw)dG*IuO7YKW? zuRd2@Fn{Wm=%NqD01Womd+W$k#Y+g1*_Y5}b3hB?jWp1$JViT<db%gY*FfT6^62eI zcrB?-29wsge9EqqWIiKdb^TJA$n2~wwohPne!JJXy!gjKNlh~a`bJk$6CKZ`LJ=66 zB7uk70u137>5_1<2MuEkFhb5z;kpF*ISKM_A0Wuf2Wm;b_#Pw(Hu&yzCoxIT1yS<q z0_MKd8<I;HlDOpQjDCejIiK>7`6#DejW7=-;#(K+f3d)?fEi1szKlxFX>YjC9IM5+ z|5A7e_aI*OCQuF+nO>56Zm4fj4Y2@~apICB_E`|g0e|5_u!alaFI+$w`^eHHUzAXF zw=H2>(?D%hk9xoL@UE`xHlkN=XS-(O;?#v}c-!5o8Bkot%K;@7&l)-2Mf3Qt1eyX& zZn%25Mi|&m6?{p8!c{OAU%LzctqBCH+Zx=y&cqz2fj~~J4SR(##^$pVgl+f&)#a#H zkTj=;!<$R-CJt<Fvz0!Y#^5n%o<rY$j%zLkZA=-7nJhW;Ae<m4akyrrLdKzAkfXva zTpJCfJB2tMh{_z|(h^mSz|uVWRa?}(C~GcDBm0ppOWA%~vOegL0Zo>OP4gu-1CB_f zSiQ6~qUQtFWrS6trCz11RH?hA0}U?l*b(w<(;oqT!_#O<#kox?Aq{B}4r9^ku!WJ> zQ7?pgbrl-r(K|XS%p+NfZ*8G?0xD3xNF@?6b%v6>)tDE$wjV_TwK+a*?3FlkETP0h zbo=KCwwJ9h&vB_E1K~8rkA0H7T%yIu#QlN}5REvLn<2`eWnz^y%G9uU3hE7k^JuSM zmB2cEfn@7`0!z^~bUhLRkDG<&Tr69`I6SeLIB1MB`oBc42Kgj}g^SsVvCk){T#Q-M zJ5Y>Wle%y*wph>uNl{Xcg2i%<L|%+tb3<N?z0_p_F^qY{p#26}CC~^2M9Gu5HbLQH z>^XU=kX~|1kXo9h7>m?z>pLLzFLR!JQ!i(bW36#v_sGE>kiA8&wFZPmba;C~9Z?RR zA8Y?$oK5Ui*9_C%2oi%bFbsDwo;mTM;BH|M(cJ=>w@FS#{Xj`2#eZ|c&gr&Dx0kR( z2QN+%-8+qfn4cwn+J<++_rsKOc-MuIb9?}9GK`C3>;&vB30U`=Y&$OS5Mh1nQyCIE zwaTU-RuU}}spoqK#KQ_{r3b#A9+<KRl*XDPZBFmR56u}%?|n19cZ${SQuv5dEO`UD zgY_9n$JxrAEvadjJKTTa$3y|Wb`m9S1i2FhQJdW1OpI5tLSh1PV@3-f8KhjJWNLuK zk`6l~&=8g|xd1TebzHn<3TYwK5i*4|PuN(Czg)-Q--Uy{;0oD!KPBgAsXlO31&6q8 z8tj8}(5EMUz$bhQC>l10;rG1x#DT^={A;UvC5^>p46cAdgD_`|1$kTe8~WiH%JE|1 zqP}MJ2)Gis6Bu}2y}#Z=MRp%M(E=fh_>QoxdCsPo;ks4YF>5O*g`$KiYp$s@Rj#?P z_K)73uyLMy)LeNr4hX3}=nP4p3K~EliUCxjn0fWSASy|M$*Ld=8pkDa{BZ)rX~x#< zgRYtd%}jW~;lnLotd$LFJuawlA}g=vF(GZ1+x-cWub4+-tA<8SdHV+FCHD(4kR1FT z?VDe5wzT%5nKlFGx4b!Tpz#3zT3D$>FNrYnL_Cv)b30qpsy=C7Q-QIDrMyWJijDE{ zm^i;lSn0G1*_$Jjyke7y145A<I_V}376<1v1T~{i+muufr><R6X}xlr?>$<2FKqz& zZ9jrPkL~n#U-ZbB=gNOrC$x}E+xiCv=3$c#M<=zeCHW&A_$MZLpMs|wLm{hx0#dPE z6grJ*d48zl#;mZMxV9A=^LPql<uv6$j}}?*3&b44Nrj9Udt#EF+Y&SoS5Z75t{*09 z*o$YbvPsZdgNGth)YYpxInNs(%aB$CK?`}Q!!NmFgFS9d)C_1IbHl!aJ=(4Y*<#IE zUJ)ya@OlpfbZT<zDZfoJ7_A0D28rR;t(N`jIJHmq3AnClLNG~^;e?SJ_m#$M6KQ$s zWOop7FgbF9H1y9t&Gt!cpOV`4gHSE|!X<&)c1ggLEheD1nIWg29WoLr0|Qsm3JD{n z1ybzwjMS@JANd?4@>W{)uV*+faImUrf|19)d^MmM^8i>ZWD+4_9E2CL-@}E%5a9y5 zG(~|79wFdJ!rDN>LS~p287TjGOZm5jfXr63ZfZiv^-<;LHR1K_G(tDnEyn>^iuRS( zI8)q#t20h3%`dGDp=K(Y7;5GW+L(QMi~6vrgw9D|xW&$W3{e{vNGIZvoqp!d5DnnW zhE){KY@nx3Gkb38aGUY?MjexYM8EyPQs~W5F8vX@kon})Gt@O7;z!*4*f}2pvaPRD z$t2q-o4c&rt}DndPF7=cTDM&pYcx}!U<WtpU}Z^i#b#V`5!rZ75&^j81@cK??xFSQ z)E?ck*UE_ywv>U%h$Q3W0|sfEtFOm}P|lUDgIXre_d7&BH2rZFmtsbX{JGvif<X6J z4;eoiP9mGOSkEL`BTO23Ei}2g%epXMXeO}5p1ywD=@nbxctw_dfby@pqPhYTn^m|? z(&Q&F3mY<sP$GJvE`6_Jqp~ZSxHnHHY{WijY7S@w+7HcjA&?Ua1j4CF3;V)MoRQ@i zS`b41y|64v_*Of(wBB%O877G;*0f@mE<gw!ZG2&$?IzK|xp4IJnZw$fE-w17Ej3M1 z8k^qCsYz|;7bHLa?cgC(LInF0G-t%&-9kpp7)Dr^`gfsZ2~&%6gbu1C(MuEL1S9J2 zQ%X9$cFG{omZtNb34!qc?z2uol>cNzncI1^aJMJ;ej{#t4M&8AwXk$LDAvJVbl`yp zY7y*ZSpQnFqJibFgR%JaXMg?|en#l)U;p|y;2%y3ebcHpN5XF`FQ<$S7iga)u^VH_ zxZ6w<PK#G>F~NwvE!ohbYO}tIUM<r=QP-Lz!kLV05-y~y!-W_nTwu*W?_lA9d7*DY z8>I48kbc4OllF~Gk`he{B}O{B72&_ej8nD~lC8p#<Ex~7;GXM@yG1?CMaoX#0@`24 zLBU&Rv4I{h&|rz9<M4#BPRHz3{MXxHj{F<Y1NSJ<lVY2m+{*lw*Q@i1JR-K_FDCOB zT+)k!+o}son;Pq&3t4Uf0R^C7E+6W(gjN7n?~N5DaKwx!xGE8v)3X<VT8Safp}o4O zxB1<QMoxS8b-1kq!h3U#;EbC&@Pje<o@U0RjzxI#F9#Yd`taHTbi48hIQ@@iYn%Oa z@|p7STC~&KJnsWX@HT#YYWU$b`r%spA>IB9-L9_l$M*`UBY&>@nceSi?i23+8SeKt zpA#+*(dB;Ol53`Y&F6(nu7~zDUlA@3*2CYggzJNF-P@du*IW+mZT>D^H}(AQ<8?#7 zKN7FGBH8PeDu~)w;JSzYdavi=y$CnC0ymdyudrj~CLpw5?@{dx))v7+94H;eG$@^3 z!YC{UPU^w<W1=r_bXtTYC|?TS5CyN}dtj8r5a%a`aL4y0qDdFO61h+>(dKYbEK(j- zBw|_RV2ebo0=*MpTejONL_L?Xg<DCM6DgaptcyW?{JWKxWe5X1$*SJUet70UJcG@1 z;sQ{!6=LBJFA_!(Bsl~qglDqSFgZfR0>K;M<+Y<WA5Y1l)**03NBo8#fxS`)=%WeK z-?C#LZOP0q+Wde@0&(NjpV-)T3IZX3R@&P9Mvq$fj;av`Ee=5M%XXefQiaf^=wm5o zhSSv?uV~oIaPxUPbJ(0_&NikO(_B@k6_=Q=RrMO=S+2~E&AqrR&t5jQiE%!art=ZY zzK@Gy7?|A37h+V;<*1_6hM`0q5Cg(gQMf)tB$V2|Jhkn9_<ouduybTYkXy8gNGh)C zP;ZGB0dgu3_TZZbEc1gm<avODq({8!Pe(n1XLb%H=8@vx69%qK81RZXi-E}gLHJM# z!02!st_7LI>@&^Ok2IM|y+5bm`k=ZYGIV~7R)wMj?R{zGAc%ffa9W$#3+?ro8v7xG zj*CM3&{6|zMw<r*aksBIKVCCUx6j47BIR7-=ret%7qFtyTu|?m`J)F|2ntHElJ0O# zLn@#jqQ76FUwf2nqhg;4dyw!dXtug?JGHHeOB%hG05DxK8FsFs`MT5|LMww1Q7uO+ zcq8FLR#v!>m4yp<;dQLNBe-n4rL^@hP!-8IACM1XZ`<nTt7%?c-L&Ptc2hSB$geU3 zDrp_qipweoQJo?s$&4MK3MN_e{Zgi&g<ze*LTN0=lwyOE&!v)Am<sE2scY7)LK>88 zism4vShu+>!3m2un8+ID{0@=|>w5Gx`)JDO4JNVnHUCXEPII?-n|p`)ns2k)%j0ck zv-aUs9J@a#y7&>BWrW>LgJ2Te#rq0Y)iKytLRw)aT!YEu<>Z8LTQY$y05G#H@ZHkn zwB?3&o18XV0Mo%)c_j=(NST#9`!HIfHaRdB`Z1Gp2m3W67J}M2B4%fauAS6wKQuE+ zt0AJ<%ZMhno|#HEhj?e8$Ra5>KJkx|Dhj9ewG~BL=HQ>o^Lb&XUGY!e?e3_j!GA2& zXNjMCKI0kBMDC|&f9|8S&*<txN&2b;>YJ3xM1HW~xzhY<Oa;%C<hnKRhwJI-a1B0c z4qYFjuu04%g|(&?oBzJ04e_vmB{c|9I;am>PEF21g=|%=K<aI-E9MRN)a=^Stoy4k zP_s%9!U~8RaR^b13%3U6l6(7L$st1u{O8Jvz9=j&ShqEKgQ|ds`V;0Ga^bmGs$~~E zw?70AiccsT(F|wq8hY-44E+6g(mR8qZcd>Ad5O%+-#17sB%PwJAAL%usxHB8+0-<` zg1R7<^QLu>S_!|Nk>uD*XgMvR#np&qz%0%gNM={lHHo20;mCJD(%|JDLiz{VL)a^; zsjs+!kZS|a7W4pHOWXi?2opvj+u~oiW}ET<V2;uDI=p=gq1k)3g%I&KiN=Y{?C_RP z9pNFt3}xm`AznZ~(H4dnOTd3~6h1*BNiT?J5$Y>TQz$Qnwu?YnVG08|0QB^^d7d6R zCbvej2z4aUJ6G7pF#w;SK@5?$jwVQJ+>d{T&MnPQ*OZdd41t=VYqSC{l&qjmQRD;* zGPxP+?>u9yX`wU|651GN2s3sV{$Rom#UJQP%vb*m^EEEMZ=bI*pD*9*8K&zno2?v( z1QnA9#RvElhVGS7_9p;~mY?)FbYi_G?w~iTl$JKO2$mKV`1Z5K$4W?lI%c)o0#7?z zgaKhBL^4H$*kZ0?P9?Tr5~Frs5$xbBtu`bxPyv(!$#aEdr?|u0E3{c4ny!g4g72ku zD=&ZpOlpx`U>Pix#)0S@cH>-0x52sMirs1ahAM6>CBcPW?Y|cGc_(aqVrm?WU|CB; z`HSKF#Rgqigl(!*giV5M(&<ZVgP9t}T~O~_@aikjC6|P`tK8xca9_ZPmR<j)U^e<1 z^rBwIHa7FFc0dt>5;Gu$E$jqhW~J7Xk+P3VP!>{#Dx$M`uQG;Sj(25BGC`m5yLmUj zXuUx~{fohz?5E!8H&=${oslSrgwi-H*^=zcz)v#w#zb8ATPBuShmh8PQmqUsm&Tpa ze)7Pi&+8WF=3y6f;O;g-x6-(KBhzh~cUJ22ns0|4tZlyBiheTz?;U7d$G>JQw(`^T zcqS0>WHc2Sk4;gfi7-eDk@Z9i?j?7o1#4=@kd=gn&xi?vGz+(+S-97#gQl#HNA`pr z_lK*H2K%j1!9N!1PG!1LeL@>}Vx?siMYF1C`BjQ!w}AxRX6vxnu%TeGF*uc9Y#1-* zi>ztISA5l#uPBlaeF6bNCR1h|V^H{Eiz<kK4Uq5g3f~sN{V<9~Es?_KLzITK^|CHX z1!mTl`b2g&6F*#4U=@L$5OSvw;FY1oB9lzo=0mGZ`spE=CXpP;kYzoPNa4iP@6~pQ zibbHnkRbxajue4fR(Zu>RU3Ww#jtTkw#S7`)8WPlZp1abjl2jFl8^ENk%8vO^@GkH z1kTzi#I8<BP+icY{1odEA|=MI6m%ND=K0>%G=VXb1C!fn>o5{*i!*&%>c?k#i6(T4 z*shxaq3?^$G}iZ}oCV9!r?JYIl4VHpN~OUPde2H7e0g^b<k{-L*CBxbjt3^CEO&nA zGB8EPA^3xdTY*22CaWX;jrnOYnrj>sAjPJO@i`QNakh!vp!F$=gG|EAMuQomHd4xB zd^gdZz&|^I|L7A1{@$ATrA8fK18yCV+34&skq2)x9nioyTXZ}!FIVKJKLjq#b-}Nz z{a3;nD7OfwjVr-<Zi4d>gOl6jmGMI=2AteWF=*V%wZy+--WYDvYV|GhxLp-vMbi)T z?q$|_3lTVI(B{a;aF_>#d+Pk6)VbF)v>op@x#*|4T)U;P$Z$o-uom&+Jd^DuUQ01z zVBgESW5$<NCg&<d%pF+1uU)tAn#-Z_Vc*)`nNb68J|0HBG>zRE)zX+BC!^*^$FRO< z_KD1=P{|MmkkyUnkId48f9w)gMhtIzB68=k2f}(hV;?Pzot2LwBP*$5)<VjI>0xdt z)m(^nk!rJIsODuK4{29mDIQDHM#-N}Bf8hvsF)T=X#p=N=F(x1yai+3`5!E=xzJQW z7?k+mM6_9oVHPN!f~W%9Zv)E9OHf*ZAq1E!2Z97Atq3IooK`9%swL&i0oSmF(=QA2 z7f@InTOt3&7Cw>)xFUh%sWq0Foo9pYxq0m1P?rRh+PGX<n3>O%I<WM{d<R3Ml@ufz zP71MkLx-9LE^sw&@0_>~^F#Wu?`fD<CMZ13#?rnM<|E26@7)Z95Dz2oMeQRt1wCx1 zfiRXJak)d;{y2G$h+ok@4~O_ADHOl1&LL`MR=O$y=&WRpPD0f-SqaKLu@cmNVkKyL zm<$njq?yOYN}nr1$!yiUum1;UrK=N2k0H%<J6P%Sr4Gy?+)h?Hb}C3vpuM?go<3&7 zO4lSPoRus!GttK%ij}TSkT@$@W@a8Ak5!GezMQvkn&YTzFNAf}Wwwqmx<CBS-v5J3 zPE=QH>jR(me^>C&cRy%Z!adr4RHaZ&3RI;)VMWyZ_KM%}9HD389~LI+gR$bb*ZcNb z-!TKPoPUSRyF%*S)@peL<LrVvtlYb;wOEX8n&(pG?b|i2_=-D8d<E+U+NWTf{kc?t zR6T@}swy+JYM?oOeJHUVzIu6r>HLwdt^5gzL-~v0aF(Go2`@~>HMZ6|dv}OraWzB& zY}gKH^$i#9pK(p%Z=fd#H}+MiK;at+GYB3lqtSAF1D`1%;gk{*kdfyNK@xka)o&PI zdOcMUft`lwK>4{5SLhN26Pk<PPa~x+q~&qEq0~IG`Z|{KKg*vi=XU><%?e#tPw90Q zmf`>qRmF-QB#bLfT|$JxWa4&oL_K@xHSC2SnWTsL<^6U_7%4&dx_o$)8I^wtBKQN( zJT^_{V|n2M=^XNo_5oC{!HBGkrjZAqiRyDRFGyQ-@4j|h*rP!49;&}f{i~mx0TApM zT1xgkSxOrdru@)MmT(D*RS4&*78A*sYKUK!n)O<1Ft_Q|U0ltNr)J&Ne6?QodBjnf zfLKRn+BkAYX6_uWgN<jLrrit}5f><!@R;+DKb?TyYDrG7#P4pZTLU&1p<w<uNTJM% zl<7SkOdC!}@QW}Z@jI>7aG!G#zAwhK0<kSWt};!|6$zk64IrxoV^g5X!AMkT!K=Zb z4Kgr)f=J=aG48=cOzVJLMElIdqSFZAZ8OV?*7R5c;}|PQV`W`1p1_po=<7s=>Z?Rt z6AYG*&;f#6AV7AfB<~G;_Qk{-`r7Ky2sRm#Ca}$p)c4sPQ~iYm@0e}+WLKM-4_6G) zfV;8h!}E|kgPTkR3O|OsTpI^8zMB2JJ#u(5+(efIZ|lc2XV<09e`#?_%MdkWF;+>* zZ($Ne`<b|jXw7+EH7xFpxiK{qPoE&5#zM5XiM%OHW^?@9;>$OcUVb6O-Mu)i=Y`b@ zCIxTDmaw@^l%h2nrDKvBCMArgs1E?Kcb2suq+=9cmB%rOcc3`*eF{<r&M8(!u#218 zCr54wZi4&q09@JlT@T~F$gqhe6#S><>nR+bY$;icY<C#wmrDa(w#|X6YJwu-HqiE! zI%ngKz~{zM3JkbtEvFuBlg+=9#<14-3wa8dAMQrUF_^OUn5uxETnK9#m%Bjb{c(Fm zn-z5cuBHzwP!cb=Sg~mCU~fZNTo$QrtIDvmWN$qO;?C+LkA|Jq$5<^Vw!=lA9TO!! z318iU<Reji>q1<TH79R-W=^PJcJO0CkbE;yg}Xb?(bPkuI7`Bf+kOkRIeBw%aW*7_ zwX=;n2SNtRmP{52i@2K>^~p&279}@xOIbv^BDtZ>-wdtW%Kvxyge6!Y1@7%8IW|y& zVC>_N^^BllwH(}h^%DwX{!SXR%RI}YFqy{)b+Bc|F!G35YCZk}Z@}oB7g(3TZdO%{ zQ#OU<85Y<fSC&=Yu4)Gs_=$R0t3rWW+g4h`g~D$wOlqUjSpM*U6bLU-uX#k?3IQ16 zq#GbU$HRUHu_M2;fp?T4hzD_OyIw&5{_{q^gMR(asP530(T(P0bXcjq^IFLsu&se1 zRtf$SL?t4-Ga>wQCVKM6l0bjcg!naQRFz6FIM|>$nWW+e%=6$d5GFGwK+s!0in2PD z?qQfF#h^W<1#5W#sfBrqI9veDxdt`hq+st(AbZInJ8LBAMQ=4#PTP{K=;loi<n8A0 z9Zba@0f6Hh>N?UIu;<?s6hBB%cv$4ALc-!4ce;=U;i=M4GWbS(&?2XBp=fTnKy(qu zD-rB4o%}`f+!RTxMbnd(@6ECUux9ua=swz_Q|u~`!B$=b0_UT==orYvj|H^<Fb&wn zk@fgk#Zg)i-Ih3_#fblE_)muuV3-WTf|x{PzaVvL4TZRBxv7FosGeNT;iL#E(3ki& zTsX0LlZ8>=mqzWxW=kjANo-%bG!PhGXfAQunl-WgI6>jWX7y<jv5_*ih|m(z5gp8> zS)#Ns*fSY3OjI35m1lUz0=F$D@#r}O8-7N7a-o8ET0yb^eqK)o`KvLo<u3dZ!uyG1 z?oWg8EXKCgkUa2tvj!m#7^opX%Z@(Sf?i8GT3ZP>Q_iJmCeR*{qGT=5{{)7^mF3My z5R{a{ax_<$r?U3s#Vz8uWX6IzQqtChiV`tT!mQKHIJ1nJkk8nQEYZMYBoGmIKtyZA zUSL9EE?|{XCY92moUvaL)_$3=<^}rZiP6*4M`KVJ>?{C6Z6OMP*ts6XaJN$c{3=1> z0>BmuFdj*Lil5ooBik<k*s|%Jof?=6K@ajmK3mX+6$LQ^ff0uc1jd<VATWwoN;SXe zY-EYQ;;|>BkmB4=CyciplpUxiQB|Us-<IA<8B;g1PEKuB5o<(<cdsZu%#`(T)K1$$ zJJTJK&&?Q0M`TiHHl{84d@mka%c>*fP!mzSR^kd#iEsd~&E?1Sq+Qp^a{PUY*UKuZ zwN>wVY2`fo-HzJ;Y7jpZYFl|UfkB7DwTrIda1ADei`tm3SV$n@a*Z2x7{~Eu98v5p zs|;r{g`Ws{BSE?hFj$rb1B(kOg1E+yK`b}<s_!dI#_Iba8VsJA6_5d7T5}RpAXCTz zr@sXE(FyJ$gWDwS(v&L2q%TXn+<qWZ2gjriHd|cE7I}e5hyul>XgBVLPMD#IE)-8e z;DP2J)3mtNrx>(7F1706d%mlrcnTP30kp2I05*DPi3HLK{&G3mZ1NJk5~Y+&EV210 z*LDG5WW+Jth-=H^{57C`GcOG9<<u~=Q!pJ)OvC9SFNKz-$-!K3Mm9G$AXphNbWi2w zIE-vFQczqI(!{2?MyMb83e)Zb{y7d?G|lICPIt^egM}sQ(DH#hKf^3Fp-#DG6&PD? z3T(T1+7WI}a8|beRa<$xf8if(<qh)i%@zFPikTfL6ojI!l4+d`N8|2}EYK%msq85@ zto^AxAUA(Lt{sqz3hw(o_qosAfB*dtH~>Z5QNo>DbUZtBVR<?1!oqUcfq1$x95(c* z&RF{*$eLDs#rcV^c+sb+IVk@C4)V*bShd&rO@x8lGOP|ezAk1EAa^7o_qW6#;bIs& zZg3BQMlECoK816v@M?49%k=_V9Fw4O7yktVIpSw?rN|`r+3R3hvLBrM*lZ~X=P(rd zJT~?DEz8ohJXwfji%uHg4z-rR;Brid%Jn_iM1+E?tZK}H9!!?CuxL*xX^(73cqem} za*DK6ZF<0BJxUwMMcG2rl$oh>SzNvsjbX152;Vjx;Y(<GKPxW3ucG9b3Gyt)tIZ)0 zSDY+r4vH(J+_QQcb^_HHt$|s~iOSW?=K_b4JZbhW#x^_Gx0on{-Ywwe*h$b%IA<kv zIpHAk)B}K-yv|JyD^W`mwTt_>LzE|-V8;-K-`n5{7V<9nC{Hltqlc*5AVO)e1kFV? zTukHqNb1>>e9;`}0g6R|bE8c*nNYFV66}{F!L(}0^(!d!dZnXT9FMUmg0$SBU!H@W z>so^jJ#+C8{otcCCJ6n~Swa8t67&{Kd0fzI6AeJYaSDcfu<G2#ivX+bc9FiSn4li+ zD9m|08`-&+SgR|h$8W$=7j$AWecOiiQP{>8_)2x`uyby2Z6~*nC6qX~@3Bp8e+kC+ z6smrb%F@|$`&Fq==XR^2h{>EKx3i=HBMV)){d%%BOu{0&E4oh0a3*$V+Y5c8$F5`_ z$O~KE)*g2)4behl7C((CMOo?I8exBvebcxKzw3s~DiF(Jr<KKl)Y$@gfm^9*M%A6b z>$4*8uO-Ynd&W&Mp1rIUQQ0js5tu-+WG0cX?=|U6zE(Xq9EdjKGc&dm0SYpdf}>_> z=|fm@vQ0ve99(jGGH{g*n7Q%cB``M@&dP17uK2@zV2-TID)?vi2+laP^qqP72Wr5n zGP~fPGI)^01M`Gsw6sM9rU{Ri!TB=SWXvtb{5QC0Q7)Zlzx`;T&_vn)fag8$c}vYo zc~M(^EoAq+67{vfu5P-F)ylTZ#)9p_WPrw4PfX>RVwnrvii@9XTJaTEL41YsYKrnX zzaoo!;}%;<udhq5kD7z>D!iW0x};_um#qPB$~^<#qxUF%le;&9d$H?<Zsk&yb?W-) zQrE;yzU!Pvle&Udx9Dy3Jrt`!4>aa0{B@ea8{CMl3S+y1A*fd^MTEz-=wOI}InU*T zpn0`G5#B)*$P~dOPOgC%LY1#n(F@<PnRc)r|INdH6jSr@-!4j>LUKg4S?Ak5jI<(9 z*V8n6N7+S|7Xbi((r6`)RV9A<1{dgWWpG!Zc2_G?gK1bexUjxpa6y9y;H?;_FW_dv z1@(p0Sz027*(393Bpam6tS^*#MXy^a4s}dUi<7kr0)Gq_!1B?`(*U+AQga~=b{PJk zo)p)maESay-o@TO7)7vX@R!%vk%llb;K26<c!rgBHx2GqUm!vW5clZ1Po6wRxdB!A zccXjDEz~cEn9Z7D0V2`mX^A*o9llJ&;ohn2nz3M)v&1i^8%tPoY{?1+8^ai;$Xiuz zjMNV5e*Qg-dlHvmm|QUfkyHog^Y3WS;4ZrE;c!4rJw!Q8f<dOtlO~2azIOKeaDvm> z@1?E<In%pAA=Y;TRW|Rb)OXVq&<ezvIn9ZXOV=O1_6^Rr1tg?F>{{sN{8Bea)YuhR z9>G2};*v-4{3)8v26t1rCOR-A7x9C0;O0Q%9@m)&*Np36q+9GdO~OT~*EJR%VYA}O zXk-rS7$+cqr%wWSV>g1yX&<QXb_qtU^|lw1g!qFCH*<At>}f2cX)I^jSXhW5NShdm zp)a7rWTI#jsU5~D&+KEwDGkQ&(;30$y~A`d57BpAfP458+BQga&vCTTNsA=K`%tE! zNUpJpU;`x<373><L!~pu7e~U(`OHSi=QA5;+GjS-Gy`II-)Gu_Vz{0v&ioY#Tb@tF zu0sIbvXywf+*AVjf`$`QsC)w@F(!mWjMefO<HbC<cjz1#<CQQLsHqK8)r6%U<JC?W zVpAjy!xZyE815TF7t~fv+$52@jd&f6LT<Ix&8XIJ6;bD?ji__fI_lWg-e@_mia+N_ zD@WGi22AM6NNP;;qN{5RMJ>7$No~5F)P`n2q#=+wFIXK#Sd4%1JhT?RjBuwNX8JB7 zP}MthPlvIpsulN6iljBSxrx%?&<;ej3EPGa3wXAgZB;2QsZuakh->4Ki5}j<Ta>(q z`W*xXIH8!>DLn)&RDGk8w760C?{Kd<e$GBQu@^LX7m??)oy5c~iSQrj->Wj1?Lq*f zA>t6Wdh&r7#9Im86ji%3f~s`sOd7&Ejj|4+F(1ujAtGt)Y!OMW8%kZZ{II-f6f&o; z%`WUgp!e^vixIP+ght=1xz+d62R&w}r*P>(4PwleaoAQ&pmzStO&avsvgUM4dnXa* zQCQP487=@=`b8qldezOrU78unk-+e<{+<cM5$I79E+&?79jod1oW$h@2&=YCg4Qo# zQ$T^G*|{Ulj<1ZeleioO{T)S8FTXF9c(U@X!UW+VVh8HGAR4sC`<sUzal|59mc(`~ z6fG5+@pWNtf+gC%M-*B?4%kdveI~hTOlv4Cnlj0dOD%6hOXO(Cb*`NjC%h$;beZri zn#g69x0%L4VxL$B5o(MH=&KE44FQ0fUE0Q@bBw2$U=bL|DR#Br0RuVcTM?@(a!W9E zx0hRfnC8Q|#d14>r;tM;x)qmT-$~>Wo$aD}bR0~}IeSNQ3rFsZV>DP8<!UE#*OlSY zRpoG?-o>UmORDlG2?w5&Xr=31HEPf;h$+c33!joQe6W+4gg~d9XJpn?Os59YshM3d zR8>)*`$>j=h(!>tvJZaFAGmr*Q+~u}{cv1j^lcnikcfHibCQy@YnHk1XKAF)eU{<@ z%y2~FKI1sjSe_GcY_sW+5t!(N5iCO~Pti_6PB%pPx!x&W=ZfEv)($nXOmk=nuq^6P z`Oj9l$fu7q8^*?|1R7-gavp8QlN{NaMsk#ud)^IDMF|0+rY@#jq)xgPoOD(MOL7?x zzC+%iqnX0O$#Y<%)Xe25xEjG>304jrmgEW4`?Xh{=eyd1BapP2$bpwN?nq+h3P+}- z4LE0S#U-3G<Z5Je&XCKK)#1X8^BOMPXqKD{l7!W6F)qMs!VmFQ#Lq(sKX=un1v%aj zU8d$)n*mHl)qsWKu#o%#N?ulZtC_W%9h>8*<f6xAihwFJbHv7LrkRi<B1dcsu*>K2 z$W`HRtWTo2q8Xo{f_|BethEh%!+_+nCyh`YPsQ*ZjlFQ)Pf$sA8yus<j?q!zB_tN+ zTnObAhGY<>9RjV;c*;Kw#MPYq!k}YO)}q?cjYMh>Csg|4rY$W3?a|~zoK5sL>=+uY zLYIzQ^L#3Pa@CRScf98ae$|GbqlkSSFhP=+YYs6**F3VVO)~f@PBO>{-xFkyCdeK# zQ-`b>{T{Ki3v%gwXLCWi(et3-!O$+m7I$WuhTfRm66*&k3j~N49HlG}XIX@}I`050 z5=|fyqcJ8E8L<Q+%M(>Y(Ur`Dlh-h(W8MxAP9m`Q{0gFq`d7o*NM5s$XH|RI!cGPG zfi#N(mdX)cR)_%ZgGZ5a;SoUQR3L+bbY24usCKO!$(r`QEyBaRr1O<Q!JAt)fG3q_ z%%8MM$){TQ`G`xFqS`X+u&X>a>$wjaQ)6bi2tWp6oQ8$du-8Bmis>9ma%CG_Zffou z?|X(Ta|A;m8fh<!vb{xm`od#2$b169>4NMNgf}>&V^Kv@OUT0%C4m~7A1F}t8Lf!C zA6T(PTlraPye3X}wM+qt4iBN60^2E;*Vq#SGXrK@@YkyhxbgUHm@{A-#K#rg;Z85E z$W$$JXORk%KMyxq?t;q+Sp2KoCbmVmOGQ3M<|VJVfPxhg;gZ*^OV;c7#Wb)M4GYmq z0j$O!NNvUFtj;S~>`+7;`xFX7#A;st%x=ERTC`Y-)B@q6{!{|&IrxnV2L*1A7@XHw zf=ku_AOo+$pTN4DBABv5K6OS>oNP?U_c~x!NdUT-b-?;5C0v{+{&tvI1X}jAIUq%> zHe+|Csg6TUF0SHG`gu0Mq5&@fhA%oGU@t&RS>KNn1^g!~vCJPR^!uASIY4#8(kone z=?_iyH}@CLS?0W#h%mju7ARx;n^yRr*K-CMT>Lbdw@o6!i1m!Gwsc|yVr5(H*y73! zyFh;Z;i`C5SA-8FT!Rvhc^o+N4GSl2N4}{DD^^D=af1sZmbI~jSsNi^;{^=1`Lf4& zhcvj+g3x;r9&e1Nl#L0U9>VMfMf;eq<BY;Q17%sTx}umxl8lckj>ild3bB|O!5jW= zFCJQk83x@U*^GiLzKbZ9Boy=t#D?;NYT&LO1>9}Z5&Zoq<HkF!CnFdjp}-|F?nXjn z(3o#dV!lv`tB1_j6Dx5=OS~W$>*kFlC4NdPqRzRFfg34ta-BR1=Q?;Csz4dX1KAT; z=J$`*7}a?aAY}k&PCL_3+i;-)NfN>V*GKnBU-xF%SuqMc$MQ>xNDzwQnCirF<ozxa z_Gug+O5^yjor_CV7L5^!ZXXBiJeSv$YIQEA5O*b6%(F(QwtBD)nsb{@5aD>J)TqQD z!;e@r7otti)Q>=ZfPUK(-4g(u=a$n^GY#RqGz72C&o(*_fsLar+3P^XD1C7frn&rx z04Pfa>cID~Q-v_Q09%cWgnAPRQGU~jw#9XAK&A&89U!7UII$GmCd3o!Hzv59gv^0; z!3}#a3U2tMF!!A$U}`~&wnGgKQy?h{RVudLGD&gG0y+*PHCJ1tcS~OvlBBTit+H3F zDN5y~`G9+zn~&h+aa={#_*5E~lay8P!MLc0JChVsDxkN(y5t8YkHE<RgjE$KXNF`X zW8yX6f03lGO#OQf0ACk9X!S%F6e0{=LajpHl?|nC#Lb$XR8F0Vn{jxa7TSrp`5P=d zA#-USmow4!wP`F)+iW7zc1g_SX+#IxXKsaG_JluLMq<!s=`S?fTPyhIIf`w14NL!A z{YRZ~q$XMhz@GS*&eKAv%EgP9;NQOca`hkU{=Vpc;BqVI@v@h3^S3KKoI+Nz^e-<c zJ*?y6xHwaKm>zMKg!L3Sje=KnDV4&y7hF2+q*AEWxVzlMqCDr9aK6L*ZcC*MwIX0H z5BR#~x}!>&ba_B1%PNI>0}GR#R0>r$4(yRiq37|U^c8!slS*Oso>V-cz#)J+{tsg! z{}=ghIE};k{{>+j-T9yC-dO7DqEe_IxxUqz>zKvOl*dk7$KSXL6n8yrOCg?-pm&br z>yhKyq!)f*7?^96bo#7xWgR{42Wa#Yoj&P*MBQM7v^jmWYxfNg%AF@FM?irj8AYHV zS~r-A+FDXgl+Mha?4+9Z#cxP?462D*Y;Qmm#pbqD)1?UsPKtazl440U1#4}@RTBa$ zK59B?Mb*Rtl5~qZs3z*vL03&&5`LDcCVqWpUNy1ev|L_7g<a@5(#)%dqH6j~8kdu1 zcT*u+JIY(b4o>;xFGj~K5NUHwt)=9{P;S^1%9c(FMXP6uegVR9&T2Qw@EE=DYtrD{ z3xA3x%{^~WE;}4z&oT1tH)RijV8=sh4haO;!{Hiy{urUUt^^gW90o)PhQY?<Vl85N zfZeoM1QON`Ib#%WDCA;60~Ld?KzJ*+6`&*TOHl)>P^5w&OoQ~W0i53uE3oK*>M(G- zOb8F?h8%jCt^3kgi8aER;oP&H75(Sd`(W$zaa^j2V4MCh?;CyEC*bA>YpBiB&kNR~ z!T8mLN;hnxrw_wMu_^V2q&i}1qF^r$Ia6+AX10K~+{kTW5A&pF+@0=-;Vyz(3!vTY zC9R`&Gnn)v&7JL*-QP+G+AeD;FSb;~K3Ge~J?W3+^H*0?SHL=2SqZjL$d_ynYqlRW z8d4)I1kirqsM$s@q+jnAQKzF=#tIhEay;Jfqga}9Hd<CBmNt&c!BFps1-@e^QZmC$ z=lJmlQeTTZV&yZTh`ho)bMS~q5vCCd@T5LGhtr{IjXwNJJArSSe=`mG)$QkZzRk>- z_NQ@!B5s^a27w{f*+IxA7wq^}9Qn5o(0a>Kv=Ne%%vFKt^Syv_$LK;px5+_Gt~I<> z8A1x!qr^!QM_pa=^pvl|-)a2FV7H4thT5ziO4Q3NjzT}Nues1#Kvz;b4E@5y5oU>( zFml;&bhv4x&=aFr<&aHSZY@^nK0OWC)8-gcVQv7x8|qu++lO^I+~+$uo~uVt)OioB zr7H1+J306woKXQo;R0P<pCdDw0bSWZ9N7pagEPu0fmLIv>ImEltvDA2e;4ZaAp45e ziD_|J9}!cCNyMn=V#7UMxtN}NRvPGSHnSF=St^o@J1>+;V|#a_lo?JL7~p{pt|4Y^ zg6^a6=9b46zY#TPcwz%oDAuo<<LjQ4Gg7Px-AFK>lVJ8Gt8zUR?lNwU$3iKD)hWC) ztRWV*7&F4Wm`;uhW8PfQFd42mHiJMNI7ggOa`-PuaJ#h_V@MqxmplQN9T%E_%!TO? z3-id5h@Ro{XPD!{uY2Yl7uM^xqxy*FHtR6ZSSQEj(lidY4y|s-jDZVngJ7j@qD$%> zWZs(5yz{*<kyb}jzw0bTlI@Wx5kSoo^{3K<&b{G5@X!`*eQ{Qv#7R?>E&$yH7PDhs z5l(7B<6vj4q~PmFSexRh1ma?gpWYaA9^5fe-Y>@qHa0^EnV8PTDtSoj7(pjYP_K?# z;cjHItn5q3wPE1}H^8g5P--@g=&I@VMa0YJ({LRxY%dN<a%V&yhX5zaU^z-G4fB{9 z&qJn`hqED`zm7wqLD%jJ<)C0IF@GKC<8{l-;KZq4NRX}1?_Y*gq9q2iPxa##3@DPt zHT)>JDBNb--Sw%vqpdqO8PpNG(>AF2)*VOp7(|*ROIYQ5Trw~o(-vf43na6hGVrD} z)Gm9HeQ2|hft};jvgNzmrm~Q`*{1q&R<`L^(!e^|rXXg`Cyj(!g90q`$lYzdutf)U z(E2%S%fU(|A9us{8|=MlKe`?S)Mb(U>Vlz&Re%h>MBFBGShGjzQZ)>KYXCN=s9M1v z{4OiWzbm)HzoX6vkpQ!gwjz&yXto}Ca!y)+7eo1Y3h;QDICEVqg6IeI*$EOshEoIL zwL^8xF>OxM6ChAX+BS{Hr@ZUX7xu;$RQ55cyVDoQfTYUMMlStb6_&u1ZHHriV-~<+ z79qhoG)!L7GLMD-Te;<}%^jBT>pCsa_B$(~lsg+3>4!-b&&1*3Re8;EQi9Vp2hQi> z5qV>C7xif&oPjc1_=e}G<#T2)aNV1ajq-R<8lhO=?&ogaek@zV2E-9jm3p6SKE~+i z8S5Z74x8^o0y44(afQtwPz(LqSO>QihqKaA?k8))4ej^soP3AwYafcaffW|b!%>E4 ziYs|sZFW!s=-9Zyr6?>?53sp``h3DPpD@iAOg!J7E6elh18godHFrQuO$bflbYJ1j zQW|=&K8fBK!6W1Mu(cj_Zc%qljccinQv>qd*7Vt;^5^G*skdF|1nfG$ja@-hT{v^R zz?sw#DSaiU#Z2#lMu&329scgYp2SOQTCvevZI7D88(>3oZd5vz9J}0n8@ei}=}L9P z2(zLPQr47dl5a57`CXO?Sf1bIN^v1R^4<t9g2}&;7ci(`FJLg8Z1H;SrIlBMb@9eZ z<6z{L;MDDki5k3^E+lutFA_ZA0+Q!3q3Gy@qI>3x|KonsIBNCLdf0NRy__rL4Io=q zd9~*hk?xrrfoV7dc<H0X0>BY;Pl%C^i3jXJi{}0J9^m2$CPi~^|1MFb5&I1YzPMqJ zV%B<2lRT70;FY_u{D-c6t~75p;Uyo<=Ox-}$EK$Iya8|+ngUFYjNF+Tw1bMU9G4n6 z#nMB294CX-215@)Cw}G+x0(eO{HqH7MV*Pd^ZW;KgsrREyz2VX_pEBs3I#RzFJxyh zH)HR;_j&fS!#Qifi-%*zI@FcFp}@<}!{d#yTGX=R#ocggTJaSZ?|cRETsqfvREhx8 z;lH?ZQu=j&JtB?N3lE+4GS4`MhX}#UV=>_WQ<PfdN2i)T*QP_w_8~{8TJKd}<X34{ zo5PPeW%g3yO8G>vc*&ix{K1_LS7i}03WCNm0kH+{EDBdnR#dsNIexkwt79U|sKs1R zGIgl{;84QC?dhm9FqwrYR+4~O?*TH0Ha?;oWINQS0JwG(DTK&s15+Lg)`uxtI(Bwk z>g*2dj19%k4z<o!TW54j@T-6(FZgaKib*chsQ(dkL@Bm`e}O23h+&YtwDKyxHwnbx zJ>|8579z`?n4s{9$F><e<rC2*IvNNB6{}~Q-0dYyX><5Dx0y@V2VbqP-b;l@)sEl+ zD5$qVmAY5xqZ%HUP>&*<yluk4X3J9964V<K03OIjix?$j6}?qiXd{KCBt)}Az{x$k zWtCT%V+RPCygdj^sw4)E?zD;o%!y$r!OjBiYcSA(Wh5l)DeF#ANxtdHlhaT(dFuOM zp87&Mo(ot!D*>AZbzvHmQy<rs1SILL(|DBgM}v{`OiIhS%7@|-I3zg&Gv)3!rtX~n z*ifXu)kc4Z7U+*dG&(X2arC|s<fWB^jdDsvc4_J=g&m0LZuG)bJ!E47(Q_LN2|S5I z#9)R=(jf66{>4}kMlf1^jC6E)0?g@%J+;#jA^~E11}HfXhz76#BDiB&<zUi}9sDMT zj`nX4EmEG=Y=>oEPsv6rcy6;t*7g^8Lu*Dfbacgdf~^PYl14Cq*aB2X$0uBv1>(P$ z1>zU-eef7Ekhsk~gT_<ewBv}Y3fm-O<%0)-$*AOmHAf{sK3v?vbzMT0?;&BsQOzqZ z?RK2ZGgtW$O>svNu&5)ttxS-%=kj23rq{}k&^n%MKSDjunFhoy{spv$;}19~NY{g$ zH8C@!i^JM0U5;u<)k`>SaQlF}WtD?WIvj43I_^TD<);!u&i0bs`G($B!5?rtU95dD zarhN|d18MpCH8-Xvr10^fm+9%VH;2h^JIIQg~ai<CY*XAznM;$4ca^GC}iFWziv|5 zLz`LeAhbTgi!jMscww^)rQgx!4XTjzP!z5c2`aD2nCdHDJC?!k*zw8u)fNBu^M5h$ z|1S){F}Qe6rIKaQGnmISmKQA8byvpIY>74|uswq%Z0h_sr~)>7?PVUpbC}8&kEMD( z{-Mg=iw=yLY_C|s@-+t?bkM;Ezv|VmKIG5-{4ZYfTK)UW*S+p_EC1@RUXOooc*7gt z_}72)H*dnfRjc0o=C{1%Eq{xDZ++|A{_gE>fBWip{QW!s;a&gZ9}oSffBu(uzx&<q zdCz;^``-8d>tXo!KmYCD-}k=v{RjU2um3#!zyAAwA8{o9y&wNR(8`X=*7#>_wl-Ub z&(Zp<&+KzdHk2Kk9hV*NpA)hZvJ>$+DLXkE&Q8fr%}&cc7(b_HXJlt)8?p~&XX*3d z?Ck8E?A+|UY$Q7$pO0i0WEW-^#m~hVKbK@1vyWyU%P!3>%Qj^n&pwfjW}nPHm3=z9 zT%Rj4em;|3nT_f5+3c$9bMbR^7CxWPKA&Bq&$Zcj_J!=a?E376?2Flr`rMRl#^+1; z+?;(`pIfq9{qvRVE7@25Gm%YXU&H6?*=_iIBl~7{dv-^*CHq$P?d&_*ce6XQ?`7Z5 zCbPS;yR#o;_hdiJew5vtO=b6GKhA!V{WQBDpP%9LbA7gEzsP=x&#$rv@cDK2AU+Re z)7fvb-)6t_&%@d8^?4+-&!ZVXt*U*Fs;<#zZPh;Os{9;XU0*$>I#fNjdR+DR>Iu~o z^*O0}a&_20r&RelwR&3hgVodZIiq@Jbwl+-)w8M}*5~Z%In{Hk=T%3l=i~E{>IMF} zuzFGT;_4;Ujn$7<KUTf8dRhEzs(!rsiRx(elhse@^Xcm4)hnu>sa{zft9}-rtE!)? zUS0is^_tx0+NyoVtK-!#RIk(L`sxk-`C^ry8}YeGpUqW%zEr)r`sL~^)my7yseZLO zQT<x=>($$;->805pWCba+@a5w>bLOucJ({{`EK>j>i4SO*JrY7pS!Ae<MV^+J^1{v z`XhYqtxn-{U-ie;pHzQ}&;8Y(RexUHiq9{qzpVbM`at~ry82-CA$_K+{QRc++v@MC z4_AL*eWdzmwN*Q+wx+hWwyt)xKI?1z9HY-r?O6XDS3ACTLhVF-PO6<$I~kwh+9~*) zT00G&57th{=ZxB!_-v?s2%ocRAI9hG+BpnIdi-E|mvVyZ=0g17JU-u;UJwHaL%Uj} zlk4>7(ma6O(>iHU!J|346&vzeK<ZeA5e*#pX>|FfP__r5s`+xB#_75@N6d-DBh3xr ztISG16@5lGt+wJ`bQh<2VdhP<HBvk@XnhHyvk?gI+8fLx8Dg<V2HVvaPc&mUrE&vY z68JDMVg~6D>^9nEtvT%{@U+ZULkv~Nhhl|r4jp{78H~8rE*M8J?}l&@?epPukxa>B z)4+aial{XC&aknS?ZBF~g}L;?aiteF*b5tSFGQnVyLY+!g89p5YIt$J&CW#^Qz1g> zE-vP(KoBRSPQ7m78ET8~0!k+Wkbp|7CSXrW@A>FHNMLg`G~JU3rQI2fE);Fu;O`JZ zBa+m~$*B`xU^~q);^w#_nQ)HSD`>G0TmmrDVY*W5awWaj)YEY4sb#ygPX!eg&#sDH z*%2kX1M{aCVPO<oEw3jZ$~iT)>RvV;S9VO~v<=mE2gzp49Hb4v2RtOK|HFN>WYv7@ zr<YnER_lBtPW-s>@M4R;O_td2%+!brgp)fA+_?_HJvoF=#lTOB1E1<?=OjlufH1H{ z>~SUt5E(~qbGVS(%!^14$6>}iaO9DcP0eH5@4brTIn;jdVBQ<HF)#JAayHMC7~7oX zuA8l+)~p*E9vN@h##eA9d&kRoy1*hIPAIz2Lf9u56>iWgfsv6uwyTjMVzZosA=ErW z@J8F|<tdLN?J@oED*WJ1@?_f&2jd49Qi!f7K?BhuZ+mWo5wGJ6fME<iq*zQZ=;&6$ z=|oW|HA429?D6al?(lbJZDU7cL5uMjYbGW+HzC5=@mPbS8#{ihtz@Dm#uWqrcW&>@ zkLRVXoF9j*D`P<{RJAXLj-=<E)A&4(Zc_R-_J8y+)lFf@VWu%MTEygN3pz}CBngov z#mDEq0fLob(e<KoBPpOu)X&_cqj5i}peWu{D1E!}c~Jt|@wski;q&6umE&{mjQG4H zJ@5GB^ErHW#GDZ~vFmmOBGqC9=7S31tz8jS0+)f;vAueKV6ugF?aZ$_5AkMEt9iC_ z0=uHOl9lEvNVlnqhaas<jf1GSpk)e+asGvd4spmy1f$SiZN0H#KYm4}4irS`FHp=U zN+U$$TIoI%wKTZmy>bvn6c(BpF6VBAN6<OqpYs|o!^Ok?@M;W|56@h3+Nxh9PP#I6 z?om#*2fTojVz|5$iiyrG9vL%SLOWm`p7&8or5~KG9pR%0Hri;$=80&>84dfbjR3(j zlr(v1<skeKk`d>_7_Z|a)5Ngv+E%dgq3S^6Oyd4QG{_%lb6n;(Xl15R-Izw@Ho>o} zMI~yg+SG^wv=7*nVk);l8gewirX9EdSyWVyRx+-j9=Ax(*t?_&#9h4|EV{<;b*@cm zY3l-}qWn_*`g4_(XTdk1Ru;6c8_cw7g=Y&I<K~12UpM##u&CsupL3qQhr(O8q_;f$ zkB3DSgoe_`kbf8F>3;ud*nTPr#IL5toPqI1lKB+AD11{CqhIU#)*j$Z&P*NI6RNlT z6E!F7nvoS`EDSLgB2=OUzoNVdr~t{+O5f0$<Bx65@g55n24Ug4$=01PjjfQ0=)z<g zc#HG_T4|1-kzdWpn|gR#AzrXk$*8<NjqwpXEA>9kNr>yJ+60rAwPa>#W<ga#Jc)pG z9^sS?A}CDSvRy!kenRIs{+0xg$MNqqfEK$sLEx6#_k189dl==c!SGb5eJk)o@}B}` z{Loc8N0<nRLx|rwi0lKU*!HXo^6_^_N<XxLK&ZB`5I{l;=0}nHCWO}l_q7m+=aP%f zwGba?$!Ct7-KG^WkM3{z+Ap^l6xiXr2`#Q2e_&|oW^J@l19~u70o-lN*tj$G<jV2x zc8Vydj_;-CowxYBp=GN~Tl+qR?<H?kTVU>rw1Wz5MqQX$PF@k^TSZd^l%tMe)e07V zpMVP8kvHm~S(eSu3Ff;Kz%H26dwv|cPnimrh=V1Ewc?Q@h-sLQ^_qC#CnTNkMMf68 zb@u0^)!KQ$#c5I<_aq3N2kx{faJrXJc7AB%fiQZoVF}e!1o68O#1^R$C>~FGrmGt^ z-U;pF&@=3>g`x=&?P3YsoTlYMS;mJ759E)H;}g&}VoL74FjaUzLH(A2iWbN4h#1is zs7Mv&O%<qO%)uih^fF`MVuLwA!5^ByG+|9V`a`@f`$HS?5(N)_EimTK(_FbfbcfB= zh+YA?xDe1e&ZF}v-)Ws-Kx6X;YYm;9_)R0+l38v^kWv*lX28ieB2GHEF=bWZq7bTr zT(vN$7K+9;0c5jgqQRtgqQzgO@wwo+&BoVF@D$w~;9D5jw&Zyrb>))h>(*5lH|N*s zd6ztV-p%shkHF|bo`;Y=t>nkwk+{AFM8bNlHXh~GSD}(UEyQ?$WE}!sWaFULC_72r zMd|!Vg2XLYG)Z~^l4QXWENGam?Cn-fqKlY1z;miUhBJJN0|ww~jpKReX10{qAq7oe zfGxs}t~<hd>`^i3=^9@>v}t^jk~BW;X5-0o3Creo&{1#Q*2GWck2e|UJ&m(@^~D_6 z$g`5>U4&XH5|<;iIq?KWM%*4^qG&|3WTF<&2d^dilYlBrlWM*fB3yYy1d1jSiWGfj z2?00QWEq(SNrQ|Q=8N$tNuVEx=`aVvY);|gI)RT62?>OKG~s1%&T)eQDxM@lt3q== z9>+T3c1f#7E^L)z(jQ6Cc?jxSgAUzL_n-@+422m@;E@)?q3=|;CAohgXX6_5-yWB8 zIzhe&EmCjHZ*~YwUsM9?>O5Gm69ci$2+Sn}=5rAl3_lYBjEp9A(D^4Q)7;xMn5_LF zFlA_;@jyh%6rwH;Ky6aVLh;A%i~T#%2d5~BxQ%ISZV-HSMo;Zy9K@In0))n64tx+g zY>@32Rg@J<wL!!{Cd#Wa?4Wn4ikIhsy0iq;XJ!Oy6M?#-6HxJ3#>WKIQUciWZIdG) z@y3<x=~JA2jugrz`Yfo49-IUHHbRBo9-8_@8kWoKPiyl0pvLBSTTU9<mnr3PceAl| znz>J=)*d$RMQ};(f>}y_;HT2_-aDVq1#(1+LfFiZj1(ccJhkkQe3BUI3dt4ed5470 z=O7vCVaC5KENmub5Q%PMm7%zga{@l0sSbv!SrrnUbrfhsc9%K#=TOjoJpX9Hxz`jX z0+xJnVxC?2?(=CtZYONYBfvzXNm!1mAiF_hF($q(2j!a7lbZ>bl{h14GYW7?;p>RA zOCx)9Se_V9&H9Ys@tF-zqsIbQcV3>jzSR21)Vi@h$lUbAMvNp`BH^pe#Q0;ktZquZ zyUs^Pq)u0Puu-&o@W;f`CBPC$4O23nk=$<K&5NCe7{+JN?MRR$zl~-V$lx;<=^3Q3 zL2`%pE<~v3C;agOcBu3=yZ#8T6DQxAAaoh52ew7uXOX_oci7x=sL^sThM*lIrGoOt zZIWp-)M$spVZNE5aOFE<cxqR^TX}Sj`*6*X^9CiQ(pYXUwQ^p*6=0{?YE5VfJH{s5 zSU@xr3)UJBIdfyr!ZuyFRV$cAaGUXa(1kqtTDlOWjnS1oz=y*Fe0ZVX=ff!|XyQUV z@;!EbHaeH_c@MA7BH(cn%vD3=&;mba68U%{J(3qLv~M;wM}awv_7;tnH^yi#ne;^9 zTfaW^d>8Y0xYN?!4--C}Gd~2d%q4{ABBIbS4$Z(tnuUA)t@5E68+=eYOsJ_7CO*ia zoEe6);F4y5uo(I*g;m0XQc(((7O3IA1ignp&j3$gHLx=Og9Jo8kx*#!L4jXu{E|~} zszHmol)M+72ZP!k<`WovJ|#eIMmy%or)ZMh4C_}SeFAghvq?!$P6-@BhmvJ`-Nt;p zLEm4OMtw3yJ<S1~$N`ZQ%Aw+i(pw(%#lv{opaE#kCO>C8$NNv+g1)~^jXBxi4HE+; z!{Fhr&n{ntO<!V<N7?Cd?9@oF)@Tv;LsZO0wlw!2<Wt8O#zB~4CU|60Y-(;q?gD}h zar;MiV@J;xC~3`_=(#y1tp`p~tiLjUUDuJVOD{PVjy8fCqfJM8k<mJXxnmTb7;AlM z@%LtQv3JcV##ey(nDnsE=vtpP;=*h+6;of!VH~C3qP&qm2%0rp=1$UbEB}O)6nAnv z(ITYcQ$sS>_s8QX9-m-8%F-Yn%?50Of1inCxA2fG&iW~Y9yfJY!JXDX{-=la6E;sm z;DG=_@M#Pu)Z=n<)feM=T@F4CQ)E(f&M9JdI6>&ar{57Uu!~*+S~MLVZ<@{rpIQSD zFsIc3_HS$~;~iFiiN@_;U<>D9ew4_V=7{If4)`!HAHpSMR?izY@fbT)QQ3sutn*kP z97}Yly^O!$D@nCYyy6KBJ@t7<!uy_6A2^aRJT5Fw&C~1iXqTMBc7M%o`VnN=I!_kN zxxD#+`bKAX>O9`~6>szmqD&?m*@7ii!GfR9=g+?gjZ9i2AK}fddIyl=sS9}H=e&V* zC~IW%JZxm(K=AWL{Q3US$b>a=F>n4<??6=JDeigy39oUAfiCU?;{D(UEVauBpTyAx z`fZAnf|Yitm00e)Lr#N+A%vO1GqfuUv;%WE;sWAaw0Uw39pB52wM_`}tl*L*B610V zhauyLQ?!LuPN56UAr-^J50i}iU`(IlAb*6mAp%)hw$_;7oqGs<sgU=lQ%A>Hl?Of7 z&hEj7;pjcYh%gf*l>$d6a4bLIShUD<c(9P6&B9l4d{A<Wa(l)x7PJY*ptSIml1Yq5 zfyvyx!%E&sUdPMWFxX0wrO&4Ux|w~qO=F5ILGzfzxRrRi%SM7WdDH?nfpCQlVB%O4 zEGz)O*Yl}KJ%trToazBtfji&h1o?iQ8~p}Qf(A6>x^<`C0tr#3m>ftK$~OwXz;aB# zz%tZD=;}L~N;EwgMo!U^#|WX7n9+o_FKv{z>D-i1<VzdspnadtQkx?o0tZ6mygP7- zuNGj{4&gY72QA@QAo3O><6DMR#EK?p9s<@Ok}a0>;P%;)9`7S&SB!{k)ELctj$s-? zK-@yn3Ze-=Y7CB^E%oswqx;*5EX;yE$oV3n0szod9q^Fc8gXyq*Agz==lQ0+AESIc z4NCK_zo@9t_znkno8|=YcUmwm**3SOZk)frf%nZFG7CV70g*<E^K0{-!2V`xFRTa< zp2)5kV{j~qhi1WV1#9N1Cr}k5wRS)CbbIP4EC^Un#!sb@-jSa7k$znx&F4LZph|8{ z9tU61hBJNfbs~6z6r}C{m_5q5yLtDkxGNcVFRyMTD22flQFTuO=wZux)mu^GRQW!T z1lg*+n#WSS-NMczI_-=xB8{G%h-ovZ7d(o5J4mf&rb-|85u}?5AT&wiC%oF6%_5e7 z)|`j86@K|~8j}k-bd;u?>mA@ram;34{UZ?@{B}ac&j{X)KFp$r)fVN*Qwqjh_89I@ z(6~+fMc8N$v4iUg7Pu#qOnks^L2$YR{sr$`M<~o_tTukhJL5nb7?AT%%TDiI>#%N1 z9cx~wvb}~zmo&tVBY7~5#4Y8ka~Q%*N7eB#!Mut;1|~Kkmt$rH4`7lP=+nq1H_-vV z<h~;D{w4wB6aCrZMAN+cHK7?3sKwq8NVLTlTl>Rg4COn-wHKmlM49-z)T!ItS7JWZ z#}(U8&$Ey*zfT?dDA7+lIm@s_2)r`?^4yH%{kS%oEg`w%bU&K<b;A8L20FxEK52wY z?rDfsMsXudHUFBtF3Ht4WaklGoY{42qa*2Zl|2B=E^_tg^t{VegUHF8Z<aapnDmm< z^CxoH3-k;ETEj7K!r+DC%Ls|nqGj%fk&v%O?%G|{n+WFk)Xj*MDL@NsBD_X*Rz$!_ z=_TJn`Z2wf*Ma^$^>j+<rHy(CBBloiLYl}kwUS%6zmuc8D1ua2w+H69V+6AcpAef0 zn&#44P<5QIUZ_{?G0uEXvUBHPVH@rdGcwQOqZi;&h_0T-M|gF<O(~nFaU1Pp80p;+ zTrz3TNrU#4ZEqJ6Bj#q}#B0bN_h1x(RI$A85{&cO;77t-JN#G}Cj1}eqvr<rKgp}J z4Sw!3c^vRxR)XK#-Cp?5YJ*>vS(*%)H)rPa?l7V7@pBT^NKeL5$-cQf0q3&kL+yNs zk#|YHV?T}=cV&<u=+v~NR%d>30CO>tj6*!|N@8|{hQxi<Od^zB%)bFrGE81<2Sx(M z+Kl^=+x9N-;%Cx$+_*o}#<SSxkU%ZB??7Fwe=XOSJB(x~ctS5?h1kq4utwZm7q|ci z2`tDP3a700X)}2r>P>S<rS<R6a>%FKkdfcJ0cBrAP{0s}UUUKS%gxaR2(WEH<rw7s zrevbXT^tSfd685}6~W<3(#Le5A+r(n-Bk%?ZcLwMC<C@d_H5Y1vf3Sg?9}$T)Rjy9 zQ`@Pn5Er;QJ?~PV&zp0!&8&lKiS<(q>maP*urf^90~{2wJ|coEI9|iK#SA^rIF+rQ zM5v+RO%sZCJZLZnPL>D0zr$c5p2VYp529C<=M*ii5hBu-H;SlEOg=&Lg{8_oYXp|T zWR;lvri4Cc?i2Iq=Ilm`PUAWuVr$eaIS(2a4dj`E#$`49r38lC8OKA_ewBzkR?}&4 zw1<SgoL=&&KhBUo`dEX;x26_7Xw2S$^G>G2SJK07It=+t5*Gn+P#ZUM80+;LmLh4! zE10b|8Ccz}KzkWyUrYTv&W;Ao?qFwYyW;G&^pfLjT>)p?$}1?!hHs`89cS#l3(js& z4?E7*bjI1&IgFO$%$Z2unlVw_7qEpK^Z_zZWDBjV2C-CNi@*wWAMu8XQOqt`1J|XL zxo;<U-OzvkfbsVc;@NGxS`JoykQsE!kZ9b^vHiC|M)}{AG(ku1VgB}Cx$%(o;dm>q zcsmDsxa>v@1Z8{Tp!pD&$$%niNJd=hX~m&TX|vlK@xz1#r?mgX+8`nQkFGO)Z+gdP z`aev}Idiysdly^zcl)K=64{SaQ%<x0?w&>|w(`?%kER8(pR>n*Lyuv73_gEl{$Yxl z(Cy|d{D`;yH6VIpo1lAqt7E@R06Hq)iv>q^_wH_EdLX^x!+(!xXX9g)au22konz6r z7`D7J_E37(r}1BGvI+}hzv2-7i9bc1XTcTFqiFXw((a+T2g=K08*|HI`u=#9#eSCn zch3FC0h`x%0mw2(%xtlAQ~-~pE_^QEHPASU<9w&%vn;e*>!MTZ_<X0~Gp{p9f?r}g z@4#=tr3MIrLAa=q57DkojXH(A!vaX$Jd!2^wq%q>Ft(fH-@gNAHF4*vHsEQR5H_yN zUrmr`Doh&X%af;E8Ow<roEsE!UtzaP-ny|m1+y2|I$43nYYPq_t{2kvqRq~_V+FZv zO2v%NkkU+<Z1TDh4bc<QNZnj{yJoY)(#2^U$=?Zq95;)H*WE5;$<@Whq?S|p{M$5g z^g5121Hhcm_dI^VUX{Vj^F5~oS-}(>=PH2r!3XweJW95B3qWk=3bzDvDR8&4_qV_^ z?vz)RtjD(0l^L;Um^000#$dwYStTsKxf>QWfK>r2W8mpFrvc-d%+DRJ$ADb$cIxfC z)SK7yf0KGk?iQzcb<TxwEw+-kl83>kCh!x|b+A}Ol#X$bB&Jq5K{<8mIZ}V4PT}de z!@}l9Im>Jb#au%Y(&`T0*@c{)zb+;xPq2HwjRVW$y!*{g$;l;<-jD;y>1rE*TtYxz zAEv_+lShk$+LnxE@YpD~nV6g#k-X@-jZWW{n2f%NxAw&3G%jBtS~-woE{izP-?UKm z$2f%7X$YX4QPH-B@EFsQ2@)D=PfIR=^xBy~+C-3E(*Y#e!W?kX6P!6y+Cf_Cw2G(} z*PO3pFMoz9C%A<On+bWR`(dK0UBZ7N4ag<@pPOdbR$7dxv%rv_OpSRKFrf;pR<fx+ zl^*xL@pvu=Sd+IcuK{ojo1jR7;quh5!*R$=a9oidcR28P4i3aOv1|q$YAY+3sG$U# zl{Z0|ew?U(6(^X?YNo&RLAvg!6F$fH4vz25u*tck5AuCU7qIWGoM&m%sEBhq;AZyr zO6yHe=B2&U#{Wazn?~7HUFV{wt6oiEV^j2}N;C!7P;y5(#!zS5iItm?T=^z1*8BDJ z=Z>K<@`v&ML~lF^4r)t6NJV2P44A?OtBg@7_lo1DFkly$*hOO_cX45pYbCa?l^3q9 z+)KjyzB%VwYoERLK2;@&=9UJWv-jD1t-0o!{hVtptmadgO^V5Q*yeJ=IkN$i7S2gh zh$jkLqd6_!0=i#v5%eRWBMas<vV558N#(=i#KM?kM&!b?l^~CXMvV?|a;PQ8z+8FU zDuP<)-ABui7$<>b80}k8<JYipMLPIMHTwI3F0B%llB%n4Nv4J}&}4x0mr{XGg;p(+ zf0Y|x;XB`p-uVN0M>m?(eqdbT{lHPrMDL8sJD9UMRm=JCeLs3n4iO_RJ$za2eLi|e z4=HVjhaW}nyhGq~CLiOFS!3lV(K|eXR1DGic4PWk^xoz2UK+k^UoS-OaI5Vsjl3A1 zG6KBJ(a5Z}PCAHf|6hjp%=VXaN7WZ`@gmy(2UzFJgUD4aq>S)lAK;%u;|A0)cfz8W zu+aN)XO^28K1s_d9RYTj3Ayz^S-%d=n-QmnVznA^n^Ka)1l9)h;#7+ZPaMH-IX2sG zLmy_dT_j?u)n=O|I>?V3g3X2#LZXQJzfg`~yX@8lWk-~xx%YXn+3aSH&G!FAAgxJ( zWH#F(fV@ONhJ^Oex!P>AlviozqQz!YcyyGD+H9#21)B}+GYcX%8@@+2+y4mTGMf$M zjcx}5R~Qj&w%>CIa*zzgoZ4(MgcG#c2of4<vDuDCAmLoGVvznPK{`jU+6vMM+H3|A zY&PgO*z^3HM6qdO2bu9qlkn}#w#nFRdpV5Bm=e2#lc|?rwwWjiEchRxF*BD4mE*0* zY<nd<ZhhnNl({7Hw*<3oQpG}m<A$9+gkf;-__IPdwuQ$H4m_TMqt$HV>H&n}v=;S$ zagN{0IbO_kx|x$?$JVwton+W%g30$d6Q%>!U_@4v?+v3d(+MZ|_`#n-)9J?0k(o|! z&ay*fI{lpZ;x6f8jpUe4H-$!RE^w4vThmFYFvoOiNM|^QD7{>2wRP={hAjGS4FH%S zB-^wnSw(z%c<#4d47;q<vwPjt<QWQghIg!O-TyrOP8OcKqj!27`U=NzZ}g7rSZ;=k z8dz%31fKas^bSupYHu_?5WRy9%*uLj(dTN|K)llSG%{?A++V_9xl*ll@UOG0o2TLw z99*PppBkn9f7bo-2%bB*Xbq!YsU*LWIU+MYd6hMhw%J-Lv}c5-!=*ivvMF^stnP{u zBxBF+2+df8wYRU)1tLd&+w6+W8@s|AW@E{DK2ADW)?qc8;E{8XE6wcbj(b822D<JP zUr=>)W8ULxw}}pE@<>;aF=kD(ORNHezZS^jCTk>K1;)}`At^3?glR}QC#UfgoWqoR zTWRKrUeHWOTbiki<^2OCoe4TB3nh_?+z#7vUL63mJ#dHPEpT=HV4y0Vt=5<>|J6|W zf|5}cPP-KhY3_Xh)~eDPEBW=9q#CM6G4wMqbP@419i}k-M5vW4!|;SBoSn+;wtg{C zArGeDgXnQ!sHU|*a)nxy1`ki>N#<1iphf+4BNKF;ym_q}1yi;HWfRJ#p{P1#WhqZa zQ^5<DY@_TaBg_pO+l@{_-xGT6^Z6TK2p1o(qf$|5mt$^m^~S^4EE0YiKzAyE7zM2x z!N^IQnGHEGAXv>J<SZFF;k+qJhQh3E>2Yt=BgMVzu~kCk@4>}wZ&!&RaEu@1c)IXJ zM%+@x<4%JJEVC~_V^usYCuxB9@{4!?GU-OnJ^_9aV<u|Xc}o-Y$L+UdyDi&$i+K*Y zrf){kp?XC#8!ek}jkRtJJ0loX<vB)g1xRnAaL8@FrN6g2VR*z(giTC#A|}Gn%?6=d zcOovfL9(ks)AQ~of^(iFv719bW`a=ch6&GvPHqX0o8ZLbI`~vndtHvJ#)FMihXS0< z!v88U0Z|5}4AYgYRfp2e!IP7pO-NFHIFdfh<6W%Wc{=wn=_u|n8HQsfNKn7i)wbsb zLSVY{0;zX9Ss`XJawL|K&t<j==VUf!R7NH<JH9K*1O@gLcOlY)i53)5GQWi8Q8$Tz zCqyPmH&xe3kw!%)4vowlaMze9>(<b2DpB1?(yriPF-!b97vUmNd@S(8)XxHsrpK^_ z3@?mmW^#~<!cP%;&XP*9TWaoY`mxXG(nUn%&<p6EI#YVL{Lk`xSEV;wDKL~UM?EDN zNBFB&xiwgUU34TfJ2VCwbx~ks=V2f`(S_!m3ZO5U{l@o1^A9JrU0XyfiX)97iQ6Id zgoZW|QHIY(J>CphFvwm^QbSxuNZj4@AT9}sBdHl24HKBtyJGMwX8?m;Ctx<@nG&z< zJ<RbZ$|e4p@d921H+FS(ck|>xp1I3&Li$fTO%4j-$$@Wu>lp(BXP$NTIrzg_A?KZU z{`vJmIXCb^{Ndohi*Z!QrI%gywzt3i?U!G1#T6rK*Yc<k{JrNr@452IQJxs`zN_%} z{`bHC>Z`Bexgp61@RvF|glC8R8UEzt5S|+He|YL^G|RDk_(_HWnLTYZD@KBd9!jAP zXe&9kO@xKW2X`Np)}SJUCTK!Y0skdP)E)#~A~V$?$F}_ik9z01S3JSCB1R35<@<98 z57rq%|KThy;Y(C=>lfGJf9Y#*zy1#cF4yaNH9ol8`iGg+zQF+&U^xrFtq;FBSO#$W z&!nZJ7?;H-G2ECrB6xX>0<(C9@KVUpQu`Bh>jZ0ySZ&<Kb@51V!74j2l(B#AY5JM4 z@FX7;<J_bbIT=;IxHoUbS0c7_g4WZXbokl8nhQ)z;A`(bQt7*RID}u)yxAQH072|! z@36;>$P<SrUnnsZfSrAtIMC|^*!hyop-#^u-01B?G{}<KedlF{`^nIP4fl_7hI<^t zKyZcz^|Tqra)Hf^B~v9A&{Rtv?(BUhGTcuEU~Ra67!UUvjP`>ZtpU8Am91E4OtN?< zenaXlnYhJMDw&2=|J?C9!B0>~4IZh7Y?EtY9T>>o0H3v)P&KoH^*R&a{i^Oxz*fbC zll2PF*o?x;9@g)du4zgU(DwiWB#)9Ze*HP;?+*evn<xXe`vEB1^QEigxztOe;iZij zgS~_?h&*_V?OrJWEy{!ddeLXHf<-owX12&U)d>_YVq~%4Hwnc%(?eY=P#-6;Sp-kW z3-Zpy3dbsE$gNGkriZY~YmhR2^4w^jVLz7>m{#%k1Kxl8Vo*NKr;sHI6LM*QQYcL5 z>jgfBbdMt!!t4l4cJ#djzmdXz#s`^OVKpiSdcq|34-tuJ#s)H_g~Wu2F7Px449YgK zYf_AYDpm2o<p;@R7za`5On8DzV>Zb7f8~G%IdXl_3Hsmi{`pHIvh38zcBDKmv{2Mz z7}D`MeGS>C^=!eYkjrd2sgtk&Cjr2@^T~`KL4bN26~S5IM+fzP@Fk6R3)!z!sktQm z)MT3sXSah|I(|!E<7IZl*s`G-P>&GmJ!}N$%qR0XP|H@FI6l+;=%C)umoz>gP^*Z| z*QzJN(AXG4J^OYe6W~_%HTLmg9$_9vHd_)0M4o_mO-U$lu5N?fBA4f0HqR)o`8*5I zc&$#)xEV~MkNNW@)jAZEEX$xxb1Pf0u%SLHIaD0zp~`cx6P()BxQCCy9q6LmfDhJX z+oj*f`}Ct&AjvbF>oD74A=EqVi|?b>r@N4<*CQj==xE!SA$An%HV>=q{!bk~<X0U# zG20t9^dG>077H4#QcX<gv<+>CZ;KuMCjPzo&2JV<`iub_zYS7U4;G>V7{;7qgD(;9 z4C8|P<d#Zhl>3T>dZvE~0<raXAYPA)1`7tEpnFU)ih$#89d~ilbV0k*F4Ai+9s&y{ z$I?)lb$m8{Lx9o!hR&rso}9z5pm@s`QD}6FJ=!QC1eS$k4W8%8w8jhha4?vOuv{{+ z)6_MwV{q`W5~M}kZw`)&aa&_tbr^rnq9}%gwhALvZQ-~O58({;WIhKD+C*R^_nU)* z76{1Q@Zo|+0S^1Yh_el%M$r&s*@Xat7YRePPwXI+SX$FATjcu$wST3@lX_+BM2X$8 z2#EeeB>Ft6r|ZZ7IREUJNjQ)=XOe$!d5gG^Li+R};X(rHg3!W?8ON@UM;ra(*Cof& z^8v1@8`sd$l0-aZme?`_;F?vqi)^{QWLy(|7cyRfXU>VKmHrUfuy7J+Q_&NoGMv~I zQ|tNo?ac6-qY|FPbB3H~ckCaZS7H@cDVhE3+Ki`hXVYWiK)?7ZXY?ft2mjt@QPjnm zo_MFc*b+497a9QG+Rzyp2O6{e5Xt=1oHIE?9Kmmh?z`XI5HH8={-q7^!Dxv6eaX>i zi1YhTaEN3jW=Px4BDZ#eL`ddyhRE}AAS~Q(ZiutALVA`q#=nck*aMP`#yELkiDLw_ zBUa@rln|?OUhYyR{hNfGTDTA;plgmAO89DgRF^i$$D=_a+Il=1<iZjMscQO8W^-$c zhS(sLP7|plIbCRCNyQb*m!lc^LgmqzEs20BCo_A6mod|2no8~(jtN!nI!G02XdtkH zmAyHkWhO$PIq)trCRj!S3rCDNhMZ}B@eaK-elmK@Pspk|dNVd=^2bF$81-;s-6C7b zjZHs-A73GILGurw3UsC+3`Vphb<mprKzM{P84Sh6xHbC1@Q3gJ2rpcYP0U17X0xRn zse%~E@6{evId*J9Hv|n%{r&*&&6-4)XnN+oh3LJB=)I6>cp)9XPN}CFbW??PV}Wk@ zb!P4v;cm?7+!HB*oBVgAr#SP-)s*n8k0fnt`nG<qy92RXAIxS$vriA$l+FhHCdVd6 z!bB(UvhSQ|>EEv5j`}PO?HbM4gzmS8?q5Dzh(PTCn_<ZjC_(6K%cMFAOHb-t&ZL(5 z8s)yL%H`|XFtH03E0?%@Rp<E5e|JLw*vWik(v<pM;`~(Gur69$#kr#GT%+~eMItVk zwU;uphOGcwk`17Fs$&v8Sq!r<lDZ`>3z7vOeG89_$X7%fkQt)$NR9@#z#gcGPG@z2 zz977U=7epQ6Uo}!^gvrAOG_3ouNG!dYO7b|RKL6|htZ>eB4hgSp~7cXU@mk5>pg9- zp5hb{nW1!nwp;N89M4R^Do((HV;k;VR~u_(4*!PbJoyHm10H8kHIwL$S*+TS0w(^l zwzSYGp*+q81*|;p@6y7P1hYQ-LMO{Uc$2~wxTF)B%s%0EBW^OY$(4M<Pk=Q~bSXd! z9SnF11<{}*xj?pW_cu(Ao_Gh7x``FZlZmi}N1X}hzKU|uA$Tdw0k|w;5%ilfXy4z= zqFoR7*#xvB79ma}ze|NJ3LWsZuJLGo9cD$e-rcOF9lYBt^O!@uJzm!1`8bVJWgO9G zQ;HCG@1hD!G?5SCL#A;JBt)uYRk`_xe22`kttZu<#fgV<UnHm|N|9mZT$hv?yg;4^ zga4RrP^s|)3+;3ChZ2fGuK_uuOUAcy*aS1&uE0#W36iX%gugNcaDf1OIm17MEX_aJ ziQLxoZy5ima^Zvk@qQvTw;<DCc%t!uS=nrtqE<MGb`9~vpS4^7_~10)+Lu;9eeinH zJ<sXD^_07YTJso_DRG91Oo>$z_$k>DhGA2pN~(BDrqhY^nMGJY)YJ=$mHc6TR&#bl z(@4EvJ5|%1rNlsG)UVW35mj@<Njl<Uqo6Wq;%!a;&H<%6Ejz(XkkW+gFb$sSfWoZt z4im$h8~v&8SWoD&&53nE1!oCv4_*I4Z4fF^+Lh8PdkV&xOqa6&I9+_w)x3xSi0f-H zxN^Om+`U7+QPua)sfPCjiKA|hB#@IuTr>(~($*8et^nW*YNcp|1Y`z$c(L09$tZP) z;@SwN#CNZW^D*_H?$H!bzArRuIXKEWftAgoz=aTZv(iNek{mho4pzh9nL?&NlA|J& z>Gz)lrhg-)`a#kgNYV^Dy1K*FlCYO3BZDmnwfJm3QuRY?F1X+VB<h)^zm$3Uw;@x1 zInwmZ(j!AZ`d%dHuVQMR2{)Bujl(%v_Z=DjNbq>$ux8zT@;Ij|XBIn*NmUNoFA7o9 zMY@LCSIHNpI}kSMvK-#Q1gGk9u2$ur+D6=^l3}@tU3Zn3bujHHLCHZIZNV*d{rm7b zw&G>vnGsM~Np=ZVQ>!LCQc*QHS3y|&Jp4Y|MtM(Q`+d)>le{o)J)D=Lujt7IPtY5` zQVb5Yi28B;9*${kX}mhrK^up+-pyN)BY2?cXTw~Oci}O|28KjHl1zECNB}b~%>xYb zCOKVpJdk80mZ2rbjz7zY6ORFd*DAk#pI|eWXup;4mTh`qhLpUm3)0ZrCNIYV58n}h zzu_WrV3?0g15a#T8!h>r4DXq0)c1mjCE`)XNT78cj!uL$O_?{R<2Px>>26hyw#*20 z?d90Vtkbv<83|H~P4uM;Y;fU~D@3-J^Z?I)r_>aQ3Mn1>xT~;_w+mvRswo*ovO_J4 zlqAATmg<>}onW3W5$t>r%1Xl)v+fkf<Id9kHmC41k`>qW9DH}Bf2cdT|I3sACJxb+ z_z_vzdUtZu4=3*KqK|YLZe1d`e){rb_w`9kLmC+d9W;M;hBg##UyNs~njam;s~6!Z zUt7W)?_kwkcjNeMIZ*flKx14Zlf`CjYJfg=&@`U%6Z2r8hC5aHvXR!Hhapaa9?Rm= zWa^$Z*<mrwTTQBz81Kfg25|{}=^;}hbH*&8PSvb<gV(IC1xI+8Lbjocr2##rm)FPi z_dp_l6Gr=~w+qiOHZG<EoJw(?7?YJiIF>|`^_}J><J$$qb?gjL>Boxp^PxjiwC75P zplm8yELW=QYQyA?PhW0RCEY^b+T~&rCo|<h`65&Pr2vynIg{9@YRa4c@s{kABZ{vx z?D&tfjqkDzkA3flV`Pd%sze5`B!xiDgkmim3X;B<3Kw2&0IfdoM%w8%R6t;O2Z^-f zXo_^>oG7CiPg5}dT4+klzd%&#L=i*)BHaWs`)a`O?UxIgogo-Dv)x4eqm&@X8Rk>Y zBcTnW9Ii2N;+>Q;WR&yKCr+4hmPzAY3n`bn5NE)2K*8ey{1?@-#)_~OA|rA)+WcVN z5)e*`aI>8It<atkt(F~NX1!29aXD2OQCOb1J2lM!%h`zalVS8`sA$4g#mEU6D&RJj zcH@K#mUef;$g6itb*3Cj&6p6k0mF=m6<IB|BELg2mZ;&OWD-2-1gW%R)eaI&a*|Zy zK-bG$t5^s`;2D`D<&*%K*D)-a*D)-a7c}G<))?3;0b^iO0;n-B@da^Uq{l$4&jj>7 zr2ML07M(m#UC!rTz8cI?a87ZZ`f-L)Jr_oGNJpg+RN}#p$_?>^M&(8UGPD^Ay+0p% z|GBQT49SNdv3#W4!mO1s_fG>2r4mC8@|P~4Z_JnC66Wz)f)IiY9AIN!mpBM*WLIu& zYx-Br_*I-76WRbVm6PM}k+^jx_M-;12*vPMe=7`eM`&z9Z6}QuZX`pJlwr2BNnjhE zkeHKlv0z7O$i-2&b2J}2CXSQm0^-%#-lP;Ka05pKV0H#zKC6Yf8u7v*O|7Bj-QmHO z(3n7D@qPI&OEV09sX~<y1t|w%PG>gL!Sg|fE{^vI2Qp=WPPssktp`euKe})UN9IPu zkvU4@$lQqQ`0n_gyzcm(eC}iedE6;^;cpl2%nhgA6o$UUaN1FEp-n&?<AoW}^EvBM zB%JoX;;he?y`sjDslGvAsrrIa-@Z=p#nM+&f?wWBZqX<P)*c`S(Z>psRj3}a7{s5p zPJXjFkzpCCQSg>U#OUw{p>BYCfl0?!A6B%_Dk!e0#-4ndf$2zIDLsbi?|7`<`4MK1 zn2g{myqYZ1lh^?>BAhpD$l#}yQ}3ob5OpBrT>-@3^ojArR>VAgSH)-#q(M4FJ}C__ zuSR7R9DovCRsl$s-XL{&W8PgbHR;GLz!hNG6JW9UpoS&^x0j&OR)`WxV36Yjy(dq7 z<qD%6w4PjQ-#Kaw2rt?VP<`86<-P!hMFBNo4XywfJ_^Xpx#e0$6u@eOD<wJ#Ow3zC zvu0wdFa)e@7QsJ2EI~jWM=A(-6xj5$D8ke6MNSZqgXIez{d~dsQV{E0wA;c78a3Q; zI=Er+>IJ7gPWBVr^pO(&96y1Z@CSbK%X#{_E?J5Y5g^2J9@ZhAg&^U%Sj=;Ny*@ZN zID{}EV}!%Qmt2A%A)<s_&T}~fEEW=+$_WYHmSIVjqc^6)LYz5RRSmzLGfu*zhVs`~ zAd%hGZClefX(FCY@<B}OfM_RN%?KBQ+XKDtuovSn&4}=zQASwaz(SWR!1EdasagPp z(tw#oY>Y&+9?KnghtHzyJwb3i;o%;PkzB@LfDe(dl#C&jY7#;ueCtw+kc4&+NI@Hw zgd3@_os0V<)({?G^aNz5j0z5E6@&XD1YOKAkf&h?Q6$vmQq&>od=kYh<z&%{vs*&D zR&jPwUxNBFBEK$3;4-8O0erd)O@0k>f|rwN38~-1EZq@$c|n&q`j`!kZ=iY*y`a#3 zNig3PS~Hl3P_DH<1@jPE8wAYhy0YcMJQaE|m^JbO(dQfnc7w=Ef^!;WHOje5ga3ih zvcZpvMHGVtoU=X+JNmTLj4c=b2SYCgzYm%?_}LAM8T$<Wfu+I!aA?`!9{_oz;b##Z z3XogM!IlgE7eX%vKetQ}t?J-sH!M?LfkaON=TAh&VXhadxkw|`ub2neu(c-VA>u?x z_ag$_jYsJWo>ri5{w}~^`bK?tCsjf)?90<Gq(Rw7I7Q}pt2~(v!5@T$7@7+Kvl(2P zZh{nzwF|i-j?~RYz|n|G$6HXc!@XRSNB-R@^;ZEnSWk4zQTRr;Ty}!!5K~506S1m8 zc9+ncf6aU4m=tG`i<tQ)=K;nbZ%;v8K(f^(<|=VwGl`fh#t+D(P&_|netbT9o{Z3= zCP<jOiw!*oZhke<gYjh5Aq_B-+=c_G$*}KIl%X$qQ%~j%?uVp}<pO?&<c$}M+*sy- zvNpGzo#f`t9U(Ut%pkEjQ)cPJHXmWL#qt7?eG?rBwSD(zu2k$*ptk(E{(b}<WkH%1 z>IU4GebD+<08XvI=~buH3WSvhd1q!Gv%mb~&NJ|vR$;|9*O_3s_8DhLsXeVbns*q! z*>Bj7AabcDGxpmc9&gNKQo4h#9M&xmfuX_R6|%Za+oFr2tS%F)=Yf?agkbTwHd$S| zVO+w73G-Q9Dat!r61n(+l-$JBJ0a<lLHnA1C>CbKIvbyK5*efX&P9d*$Ngr3d<>?e z@g{W7jo3tt@th)vu^OX`H4$T6^uon7iw>qkgwknvoGaTf7#CZFsNy0QYN~~=p(vrj z1>amplgz$&u2@mQQko0{GL54PZcJ*y!;v_o?!(F&pYEjjb=T%;)&Vhwsq$G)yv%Fc zAJJz)ecX{T4E*lnj&;30>`c00y%wV3z~HO#d7o8fOv61(*=AxZjOwm1s_mNj<#uU) z@fQ6-Ip(;*T$b#EM(8sp@I9ds^AS|v(SM~h#cUG_?q`E#=dCxfIZ~(uvj;aTj_|H` zFmm$1_gb&9gTeYnCt}#Sv)#oY2YMD9N(}uTo#IVjQuXLG^m}v~`h8N_(9c30_F~v~ z^<D+Yx01PReb!V!q6L&RE^qkaOlT0D`h-~JuEUrd$uwSp*^x3$Ng+8c5-#X@Q!%f> zb5!M8M4&}D$T<ZfndSwfX%y!_*yZ#E5S6$hBtcS0Rf*l#HstWBFft1{XygOf!#I4% zflJCP#t%e_7H)9)N@sxy_)uup7?S&*xOr#D0T4^bLC28_IUL6*P1EA^x1e@Wuadqf z%-GE2n1bw@?UHsqfv|1fa1_GkdF@DqJ$OLUY2l(C82b>^xbFPhr)U_eDPO2VQ@&PJ zR?wsWSE(gdA{rD6*SPb^>V6+9NiAQ)CMc+@f@bATC{V5VqjIhL;wo%|k}9uaWr%6r zBR#R!y<0dw#QqtfXdLPFfz0E*;56O(o7-11N>NTG_I)=aM~-JV58B@JEl=x_ngqm) zql&~i--cVL`+%zozVw?tup)}_3z3}jsOUwI4@XLbSPdnrNF5Vm%|5#Ze;QE)F~2(i z@^MWsa0dX;zMAbpxIp5mY{8G?`lE*E**V{U2=wU-s0jpcJ!s}qai2x0;9`Y}?kEQt zoGd&AOD_%ZL<(SHz^(((djim3*8<RC0oq_RWibcbfaCfo9NCEN4?%5zkvu-%=Me%; zlfGC;UmV4S$LTR%Xu<$=uvEWqe*oAd(uD#6W=I6x!Q^T)cAxmJldQ{tF6EaBd`bYh z@ZoTFKP{u;c~r5S1}F*(fz^hp15Hv!qq;?A83|f_2h%-=X(vHQYG&Rpy4dy+yHLl6 zbl{RI^Sp3bl_R{6v`S~vbbr@xhcfFbV>xk`RQ7XW;~=P|GkFDn)$J&o>P*VJlJm!t z<|~hX?Wgc!JJond_cQ1E5hU}9bT7UaFFe?K(al;cWg<c<V9Rg;sl3ArHZTArjb4WZ z^r?-VyAZ1A<OX{RFUtU>u!l4<NkT-JZ<b~EX!$TcGt}-dW2zH92`dCrzc*0M4^>cb zO)d;MNCke*_6G9i^`uor9_}6Nl%hnen#Jvf-i&2-Uuf4XGu908!Q^mN4x%uOzzI0+ zc3caj<8B2&KN%XlQP;a^&r^ubx<8p+fDL_U5(KOXSp(%5WQ$!$`fr9438<!=L^y0W zrrnKMyD`HXq#G5+-1f%S=K}zv9YGi_^XNw!cC#Vfl8J<V*oDbW>|2*R9KP+Tif{8m zsA|&SJL~|SvKzDR#<bm-YaIatWmeOKKGP$>W$OsKg#)Bvm!_0%{Rr5FjR58uE(o5? z1E1rC5Iya^Wag{yOwG8&z&J+>crYd2r)aLYq?Xu;Fb&m=mn%>|b_>OOAf~|bv%GLf zo=aOe^ZdmDe}orKi7libJIY@`4|8sfiFAe=R1x!v2D7wy=LqhQq%p*1msiwJG6qHW z5a5xup*cri?kgqpeod+SiWNWZtDOJkSi;nm2niq|NDLqW62rPY-l;5V{VSi!#dsI9 zihhXH(+-yu1hleYW_XYJtAVww%*lsUWg;=kWa{_nBa$8Rg2q>4973$6<!^+Rf2R3- zt^b09f|i5whi+$20NSVFqx8IskO|o@0IxpxE_lMU4?B!gIF8846per2WN>{uTIOWJ zr7bII>eW%~-b3|-pPNRjNEX|XlHcOXSof~Rgf}75xOA9+Y0%<|Onpa<j)3LI11@Y& zRxKt|XGF)Ycv1L96ej}O1VHoCNjPQf%rT8#m#i~!I?nrqEv-M0>8@8~g|g^7DK(cJ zZ`s@o6^4UU{1@Lzp~9F8!!U(Gmm7&VH6y`3M)jh}@l!JOjSG#S#b68$T)@qDLZhEl zEu`skKoKagr5T6!#VGK*p=F~$rG-F&G#X`-DGMkYEsFR`&p~>gL@YQE<N`e9WgI5~ zZ0d2zVJpvRoW;=(Xoi@Zcftle^V-|f=#keGt|LIh>!a>@jDgq3vc~_jVa)fY*CLt! z?)_dV;5Wy2p_C%GWtfJ3kYX6>$np(C(uH**xOFiaA#fL)5eaa(ON8d}3Zy2<iPw&Q zgRzjz^yux3>X_)oZHF>>6;LfmmvV)fz!{8acA5`Xv1CE0Gnx9Xa;)-!cAF7rKM065 zGF8XFg-lzTad0d~raufV8<}b>JuMK7Fa=*}Vl*NZf$1=;Rx^DGM{M*zJQdRaFfRjD z4ZLuG$~3A9U340C=J2-H{mXH37NM0Bra`s;bAi_o!^gN8j$6H19jlzcKLifWEu{hn zQeUB=cL}@?@bD3J`=dbn)GTowTz;lt!{!6nVgSKrtc@;jVAzataHeCw_2kz;v-nZV zma2L~1$#0mkJ6Q)L04fedI%~^?lM%3GIZ{qv{ls{r9d+OmCNhcz^Pu{nq0GcyDQ<L z5HNxPM6vTJ5F|A&1Yrq)#Iy-;H}6<HTc7FY9qyhZs+Z5mu5zru5`D@$*w+jXv9?Dx zhv%(knYZ4ITihdx<4u~H*yFNk(OVj`O`iPSWu{aJbh1J@H4kW5FVd1d4q+Va5<JoL zlVZCBYarM0HKhfFHB}L4-cvi9`kTib9At4<xJSwEI0|g*nGkH7%s=MhnPA*#M~7Pi zD7W>lDaqL$>^?0B9Fq(GaXNipi%+1T@9RrOA3GP4x%+N6Qo*>fSsupyE1&;wEwA(y zPm+J-bIS+p=$GD>CWZbb^zyR@T3*qeOA1KdBNx-{n8TaS9}Cm<ODzzVT}}LilSBp; zApg$Y;hkS(i;8b#QSsuk3Gzo)Gs~_Si*9vue@5cSRyVfYNwP|qV*}WZvIa5wWd6q{ zYhW3xxT%DDw3RE#ohqHklnm-uMdaWI5jhMX(w2e<+N!3k(9c(HUkhzpf*guOj<QNF z{+GbL<4r$6<6h0`FM)f1;Hiz=t3pIr-B0@RxOZ;=#kf~%@J|)@rs>K+3`X?6(0L0j zIzdEQyi=F(hnMz;mm*@EqM~fKeM@`Q2_ikGguilFq3jdXq9u!U<aCB&sZJYy{XNQM zGts7PP5*{PoA?HvgUs%Ry$kB5>Y*aEyCTW;0X=#f_qnfvixC87SDW1-k&@ln@}v#C z=29%fdg(GOkna4|Z@K^);I(CF!VK&Tu-~uNx~{WwQr;WOuEdE&iKcpGeB?-TSeZpe zPT3C<tm=*-mu4mr7W1Udk{WmHL*BA?8VG-G8k$O5BVR0UG<_|-+d44X1E#ZiyCll8 zBJ20nKlGrAd1LU>La^Mfyp@I*qadj3IhcuT{r`c0G@Ed0Y(6L*Lo@neawhSMn<X$h zFWoG0K5=QY#0D-vOf?-Hx!Jmkv%Q)o1r@lNq2Xf5P{A}BUT>;tQDj5S@*Qtn$P2c+ zN$%{t1~0VW(Cl@u#_kAHU?+-6*|r}5#Z5LIbZ7LAs!PXRf$IW)+!ehO*5Lf0bJ-FK zQt2#_Nm!R7=Z|pj1Uc|P>~~O6f!+SlETIf`JBu*fhH+SBAm%w192nV-kSC>BgxgP& zGjP2nDUT0Hz5fPTK~JX9U<{Cp=oKXkRvC~SGXidB(|2$5&T0uhsEmepNo=T8F@86) zGveQ5mqz@K7mWCo7uXnRAL9tP-)-H-w6Ap*pndQ<#Ka#$PEha50Y+HBz@VC7WEi#0 z6=4ekI7<6j7Rk#^!3wT7$oupJq(p#^D1s;-BrKDIlA9xxaF-U35{dv^tq&sQgi+EW z4sI<(iPjb<N*D|dW2NrtV&RgOpfSDaSxZ+Y>Mln4TkH8pZ8A5=K*A*55fEXFs7&S5 zRKaU^Mz00F`gkw+YUyiuDr5Qoz-z-L{2_0GKiweNxUJO^;5H?gyaLXf$#5PsNsVJ+ zwa?}ZvutbnH(GK}n?bCw29gT38rf1#NQEwNIzzvTJ>ckQs3X((uBdV3p=5){!49~z z^~(RVRZ@mNyb@$uTT8;r&EXVr(1vjNj3WDCZvg05x<Znu)S-0iSZSv-iclWZ#RkkG za+`J_G0({_xQ%@;g{?#D2wI~!PMDV)qtNo;8B0Uh^HSv7MYt&e0Fv-JFeJp>7-5U_ z`K@6PHf6fIdunP-wWIh*b}dzRyhGTVqJ~{;z;Bk`;~iuHe9T@ojOllX;J`i~wXS0s zr)74KnNGhmm}0ii*kDyoJ5w<%l%)c1UA-b>zW~pQY&ZHE63Ms04$d31r-ty989-wY z-I$+L?zcmRgJ$)lYK&WA_~+ssk+VeSCLQ@kDXfwV3YEzE)}z)${HG2Z!whUxXg5(L z;TKizmsH0j8)E0UIV$2tQb4RYcXf15AuR;P*AVqCpciX2omU80zb{PqKdKWftFPJa zSTt?nwNHlE(nbegTi52b2cp+hM5ZZ3#bxN~VDwIqk1xG$p3xUFvT$+F$iHEX^+xlI z0>*bXJ*)@Qo)9FTWPunYqF3bDae0nVE&seR)xSnNubqFCJ^JhfJS7guNd|smofr6$ zTnC@YBrg5Ui~>6luxu2euG6@hl8}u#jH{{(TvlK@j?;8(5vw;_H?df4=Qhb~pd05l zIXB8N_fp&_w&AtuvVE%8?`=+**H<c#18>|BW-TrF{5WA{<ak@2pIQvVcKzHH^%JDt ze|rtRt-~2P_iB1uS^IHk)Aw#1612QIdi1o&fA0KR-3f?3N80MvN%XwqyfAaSl$Br} z#9o*7AG6MD?sa8Rb900mb-Ge^8a=KcYhfX(Xv(0*(V%&xZBUc(zKT$@Wbdn)_P)dw ztDc<q<%y+*$<lNHftGdJ?hJ^u*8-nC^M>-izMA30#l0{8hH;Np{)vrz^4?dr@z>q^ z@&J8WZI=Hny)Qoqo3i%a7uj1~UhJG9>`gzc2KPk`5B0;cCJugczASxWXM0luI6+Ct z*v?Z^Fk`u>o?0pr`|5dW;>L|p!kJ^nZM)SBqpaglx>HVE#$$t2$arkj8F*(I9vk*E zK|d;AUQ>_F6Up*CHvd}Ma9P}A%f7Z0k1hL7kf|TX(#7jnE@4yr%Gm4s4>7a<yM#Z+ z%j{SLoRTe3Gdo*JR(SG6CGOwB{e92HK}y`aqdtg5C~I`{4(!~)-F<a)-*>(X+xud7 zUu^D+-F<QFZX@}?2mkPo`1hd?ty}lUICK}DgDq1T&siKgo6!M(hQ}M@ZgUUr!lB`W z!xr?M#fs1b=bGZbPT4~T?RTJvoyFr-@{PtukKi0sx-4M%8ANNz2h;dJQp7`D$%>C4 zO7}j58~z00h8moh21}Oz6Jrmo@xK-yomZ9q5+5B`l|BMFgeSOe^N-~Tu*U+MgzBB3 z1=63gt#NNMV}DG!YqQO!-8E#2NhDpZ?j#i>b7;pF=mk6d=BCHh!>SL~0bo?@mSqho zzvA>)35|2xb`A!hvXIz=I`A5SdTRjnkb?S004GzWXTCS)#8%i-vi_l<7^v7NP)~=k zP1*7QEEDL|u_6xMrDw5zfP=+Lhw;+d(nsLCGHbwq(g)by+R|S_sqhvz{=k{C=&~&9 zXL;R_E`dFn&Eb<kk<5U-&sZz2r`^W(MYH<xfU1WSRoK89r~-Bvi~!6(Dgj7tTaD&$ zqA#R6hRC8`3=0d2IfVD?Aay?kfkGmu!}tkj)+)9%If@^rG>RzY%iNzDx3JtpENf5? zn)i?Vggx7y)pOYevJV8nO|$EXxO2Ksj9TZiA%?Tkr5|i!>YW>$Z7si{Pp`A7za58A ze>=TS?okdQYh*(L2Mw55f4`S&tAS5Vo_qv{`xfAlOEs^wCE$AGFE=cCPYZF3yo$u( z*dG&52qX6YOu+YNlu+J{x$`{bl0sm8A&rl4ph_WJ-uF&C%VvefM_<Qb916pDP=`U# z{4fYL=YJEkg%oH~T1Y-(l_5r^D~-V#T*62B3^9$^QBobJSRlDfQO;}X;2jt_wiw5K zU>7T}JqFT&V7$I8nJr+YxZF{zarhC(@kJB)aKM1s^}72M;6~G%9f@v|csXxzN@d5N zD>xF!^bMzIB#?rxKC?hvEjpObM}r}dkRURc4Q?<{Od?n|iB=9|$#tTBQo2uqEZrn< z9FCKUMDAAt%ri=Y1OrA#oUsDcaT-8(6pAD{5(_L3o@suGok1(R0BT15dz6^NLUEX< zNz4{hlx#M05iE^^bvd@U_h22>oZWSNN?jPXhk!-`$wJu6=FS%)p@xM`4O#B91~1yS z_($0K8nn&`5f(nl<`F$|zAdhL>?t`vTTY86t#D-%rAa1K`|W@OliouzZzjDf^=?RJ zRx<IE`&V?<dqi?)oikxAA6rC+@;xiL)gv>>4bBc$%@YPlEV;Q&h?Co>12D-=(}p7& z7dh8DD>6G}tX`{dRhXJX*kfKaKhGNE@<xZt=ZH&g8zM;T#`rYsrs3|MI?fN4WSg8b z&iz7gim)JnOR~BFn>uDIFpEUgO3p5-P$LKJ5%we5V9rL9;th1p1z&Y6t~kz55Wz8i zf+!aF2_iWP%8_=-A82+CPs=rGD(g5!dbZqu(<;{R!V~65kBZRI?{oOht#Nq&7{2%0 z_gQ=&aA@JDLuJ#pSWOc+f1e~O@i}jsl`hzcOvmLkCRy&Zg1;Xv53X#;IL|8LBS4+z zZY7661kVO)G*3>}4-#XZw6gDfKYB+N#u1B!?>ry9BPDHZ`}tw?j+B|_iVF<W2_M=q zz>Qh|VW>Zin)7R>JlJ{f{VaNqiQ4W0ks?wHB1Jp{6)rS?<sf-2gi-1~M(Si43>+w- zZe{l#&n9w+JM*WGKOFh1d<f(ZNb<;kfgQ*~Ad<C^IYjjY$(-!KPY{N%MT#9j{$)-i z?0M~HiEKb}FB!R~*?{a3vB88nOB+?7Gz$a@RF`l8xI}~sOz<Agtm6Vuzi`1Za)At& zD|f_Vsn)x;ZXJ?Is3z#GK@X>cV`)d&zl~;E;}cHBk+QPP@GsFjAwF^I`G`;S{%;VU zsEk#35aj<^D*3uzUp*)LWrVN<cEvzUg1d>@nM0|NgbzqaJR)H@;zJUM_*2Ff3JQT9 zn<aWf3Ep}<+BhBxfu=x_Eb$PX@H~n7KZ7Z7OZDqiS-3|N5~81G(l5wzxIg0yv~3Yz zaPQ6Nd#ZF$+afX^yeOa0V=~i`PGLFypGs?>BL@8-bk^Ymv5SrPfDOFCni3nCl`+~P z2$<|P+NwMxfuQ;Vo`F*x8w1P0S{B7|tvXNZye-FpY*2T6;~?tM(TMnK(1idA28vri zO@lCH&sxBOY%nZAod3k~9<G)pits9y*w$+wfyCm;T?o6t9O{rf_J_FMD9nUxqW>YC ziNo1+^o>nFt7hZiZM=Kfr=w*W(jF;dNI*T~u8J_73f<;Zc}{CioRrVnIm)B#BI}{v zWWdCBj)q3mKMi)yh$49yrkB~Bz&^{tfD~?s_Q5{cBLR^QC*(z{3_HXzUWG`9Adc&& z5LFN>)<{^)ny~`J-4-E^F$s@2v%gXX6P+=oVdwT2A<hZDwunOqL1Errh`4Jox?mzY zSEC)`xC8Y2F=$kJ(b#5X8RH{qiV_Rn!Xn^pB@WF*Kn12qPj-s5;0PX6>#<9yr@PM2 z67+;x%f0v{-$jhfdaL(x5-8Bg$lzdBSU~j|Ba^M67&ll;#=v9N0pEny&G0ig*C|18 zuH$ELxl@7Q@-#oEFosFqq+ZTCW$X2-{5Go2+c1cnEXE=>R+lh4$4UsX;7=J`$+2-E zhW4ITnj4Z^loHBf=*%GweL99yly%8~adH#8qb$iLJ{b0TcN%pNJj5B$Oq>Cc4riEM zw%}wSlsDl&Nt}@{1F|+MvNkBP*5SAif-RyDB9Svs(FmA?UT2vmc8oB`k`miD?Raj@ zq<_>*N;^w4aL6YEyPEaPm<IrmX-Q3!Ok2w|k$^-9Gx~LTkr3w5TyHm7!aegYYh@WZ z;p8&T1w};0(L5A@Ga-z(<w0Q)!J_9gt$BF$gz&?KvgA?#6+4?L&WMCCgR8@R4ThL5 zE)v4;!jC+djN0qH_<lhvL&%m17Zf1wOA+Gmc0k-~D})ahB5uvHh45M+Vi1EiA<Rfh z9hYe#Ea$$-W<)6sohO7JrzJ)&9*A+WWXK6&l_WhTD+`4%%V}jp(2Uq^70DumRjhj< ztR0~993i}1qbfye7|S9;xIvgv4UpDHj}jH!IOvp!*Ke{l6n0~5L86*YV)#*zqaxeO zSBLL%j(lA%I$GsxurWE&%a^aV*y#l2>tlfvO}=WR!HMu9x%{o@J&iUv<FV+yx#+!k zqZpte(gROM@5!<`DnHRXMg2V$y(e|!i|U>4M(?c@f?2G;`RF|<`(CuaXQKDCuzRuo zo{Qd-<zytK83`Cb@)zOe2hqFgjN{#@#oj#<y&IhJovU9}ryOqd<<5=n)FXWTvKZUJ zS@Zk0z2t=#L5CIj#&a3p7;*1n-<U}=34n`07BsbWjW5OXau~%a^NgWz)vDQq53>qE zBHk)gCwobramtd0&75ONxAlyJRk%#gSX^Sn{g-FLagiM2()oTg*XcmZiX}qV5L@x3 z6)ue#Q=^duccAGBz$`f3$IrXbss_}8w*#^=7Tt*^dSf^GW&<X6qj9Q*NV(QTZ%VC3 z792MYKf6!12|?gG-;L%nLByg3Z`=k23#ijdm&=eu8RS^LlM&vy`a0!B=i@D;A-F@O z^QxDYAXkmVE)age{01N4V}*Fr4cV3xe&AYUuDvn?j-D75RGOY>pV)FHPYQYV8(l(M z+kK+u8-pPlLWhZF77BU2)qI2Nv%w6(C7Ex_<@^+#VTyCjw+-q;ZyfBE01lT%Ani?G zP!$-$jd21}C0Seb{mDRQW}Ylf4L=aQw=^|;FnVukYWUO9drMctpNZaGx*9$dy&Kf< zy>EdUUh$g7#-W-=ooa4bAFc;0P%XFa`z)J2U#10jpc$*B>yLMQek!A<Sy<7S2&X+B zmJqDeRm>ub3Yk`GRKYzcKd4ETo1c1`3YU+MI6XQl^or<!W|hz?bv5EC8b#~Ivo1Qo zrLULaLCU#l4VJ%0Zt-R0tXa&90}rHtYYIGyBV3SK3J=p^zLfnURh*3^+}QL3G(AM8 zoexSR0cXd{C)P4bd`ZMK`sft%Lw^f3#S#+oY~?KZY*Z351kbRG>_Up0447CCU6QMZ zh;X(v8sfQQKAy{XK5ZZ%l$%s>s|^}4^1|Wr*5n-wRx)>l!hjasGWfvwfglwY4UJMk z^p>GcK?1^PylYdz*bU1E^tlc}j7#{*l%cc1UY~Mf6D1_Ku<tU&XF38m*ppQ1y@<H> z)_bH3naj|%<NyX2B)J#Aa2}hy?7gaV1wN4K-i!~#ELmhJ`3mjDqH-Io^Og7&`NH+B zi3(ZPf<PMJhd=4evCSc{x!wYsKrJ6iBOR9}mB&#z%3qPO;73!k+iOc#U@*A6mSqPh z!x>zGoTub8aqzFi?z;IY1slB#!qa4;Ma7c2%2qkyv4UHSS_q$XG|s^#7bxI-2nPAg z37yC}8FN|BSg<g^9a`NkJtzy!=~Y4F>33B$*d>ANE|d{t3TCHmFTvq351%F>hIM7H z8|v2)wj1&3y%C>sL3oN!@qG#eLh>V1Q2o(J5Nd->A%rWmFHc>+MIHnY?6Qgf%Y$iF zcI-<hPKT%qqa*+e^s{!bn3eA<WM$ng$D2mXpwqCi9dcxY3~%oWPy)5Ac4WznBAq-W z805r2Zl?K2c!y@C1_l5lxdTHWcVJX7XJkUz1}K`ZBlzMr5Fi=T!O3t5_`!w$Q(OYx zap8Z*CD*D*+NhvzMvRi6aKXbR)tD}1TMh0jYpC=-^R)WG!Pfj#AOJH+yeSyw0ocnW z&A4NNvoU?t7j1G|*&Y$!gQ0Iz5?t7}Y~s_?#dNGP2~&<>Up+c}sE`iTRBWL`9*!br zo)N<-pu>yNq--(72__wa0BJ}oIllUIxGvBkK|!V|pAI?wT#~ma9ey^@g3+NGs+y!N zrr*y;@2R2c#EHd<BD()#^j=)JfgwfjeK~qB7^n~Q!9ZQwp(QXZFDR8{ZHKJysOn$M z{&cBFFV67-?uw1b`HT@s_DLI&v(V;rFm3-m?yjq=gIPj;&F<vt@hwSZ_Yk5GyD*>F z1NS<WekkR^=KRR&>+5oapZnU8K$nXKJs)$6x~AkEcFhE-dNV2wIp-n)C&lQK{nyfN z?#`x%-`F3cRX-bgT1`(0kaVfPZ@!@To?7Qgs&A6nc`g@-440d66@I)H2%sSL#v{<- zLxD6P!xXFL!L<)Ff`>IN2(2`n(pDq*?$U!&H!NpLSts0>fUVAD1?`Ptw11<8tT0;e zU;%RWhsO;$c-)YKL1|?*RgEd-O(!`}Kr-%Pq#P`+#jQq994{`L?&qbC`PMK98?zd; z1!KNFJZ@vAeJ0A9N7hDThOj@W$;F^V|JwZG5;|B&#fB_4EPh@3i0=wRun|)<2FS&@ zz-}voUtRTtZUrB(zE7A;ogu}U0~7c$s3EnS0en0ffbOE{w&_OoGlmn+1cRBi27KQs zmh=i)r!$0W5vFQOdw`D6uvTV-kje|6<h@Xm;Vk0?W4yc`bmQl5uYj07`CY9lWBN~H z1SJvX+=vwiF*1rTN7&=cZFl50PLYx$x8*=a2^_Q>#`veLhdMW#&t+sgT^+a29GC&l z5C5n8qtR_=S{66f%THp3i(3V`;GTLXp7MFxOy+-A=+9V>=R|rt!j)KQ#gN%A($yw$ zOxv6JP5@KjI=!4W^JUi%utcy*#|@m=V`n%!mHVfe&v3cqgejvk<JudIOIM-OqQ&rZ z-#jP`Au>9YinPJ16tL+U?oE0V7B~-rgUkphWqMo^uZH-|f_SLX@CZ+k(*kLrVH6Sz zygJOE#r2@8;Bp*3e9Xqug>FR=dB^Elys9){57|h_M+@;vw=aWNhBho-9^v(l2(KD1 zFTm^O!HW1RJoe*~>M(*SklX=B%tN^y!t1)YO)v;_IpSr_i)L1V#*r5M<v624nxjh~ zO(!_BC{)3jhr&-3qEOHAXtDfh8(YXcLgD=p3VDLG(4>7py$8}91qvC)P#0-LHu-S} zsH%u8*ftPNj+#m^V_3CZ;I_{MNLqr@j&BQII~2X9F=>a>g4brE*VNJnoK71Ty!pB4 zO&^rr)P96tjNbGiX{X~0`uuYAX0Z2VBb-%B4oE{$oC!6-KW>FAf12*)alM%Pf^z30 z8BIVkN$-0&B~odUR=&5*yFe*^twNowO@XTuN_zubRvCxc?}Iw)l34^IuxVip5{mXT z%;-9Tz-CtWE5~Utu36S-9M+t4OVKZV-u&I)uxtt|U`q8KU2(uqSym-RI;!gtz5<Dh zJ3)}?(n@X*Aw~fiEHKoYtlU-a-HFexarvzGCa3Mfb-ic%U=IebgOdWfO1(!K<LP^( z#vZOjgaeAmwN!(%x|ZaIHA7pF;z7t&goIltf%RGP7(=972+?H=sd^;N6&6tNx-_`T zR)s}TB1YMjG$BVI>={EH!v{d5osIzQMtlGfaF2+e^}q`o#M%S~Ek|wr&}v*_Px_J8 zz$zj_E@U(k0;}L@7cv634{*Bbs<*5H+_tkEcJZxvD*2Apj&9QU>X^n?H(<pSep^4d zs=<-Tq6jHZ1m?*$s?&o!xxML0*5rwDo3lpq-kFTv34HcoHw?D!CG%Njtiq)UZvwA{ zEywjlY|mtkoRrK@GJMA1TA?>hURn<>0;fP#QK@fYN+7ugE;Y8ktR>~$$k^0?F0w0a z;C1)_7S;D@6<5o0NuAao_6+S^w8JefT8<OCz3B(}S#?5H=d3dinv?7-Af`s7tiOUm zAcQA#4-dU&C#WH|j|r8)zIwx_Vsw5ZGmg$F67$9u9o_C|bPS&$J}R@s@l-`Pxbq6| z6Cxe>zolHbA1c>ZiS2P1Q3OH7lstlb9M{6DjfTuv>NV!kd{z}~o=WV{dF=+Lsfoum zB4l$}YXPQ-<Ob8@y8a3nO=o5>=S_e?qT7rQxQf?WTb;N>QyZ-dmzrr68KUE&Tnznv zCo|ydi_CzbCKyu>wQ0+&LNca{zg`QmPf$CRLGnB~Q#HkLy8~gaT4aRGNh^0mF}Rzf zcZ00BgE6?1b?zWNE-c{>idrNH96D3fD^!m7^e-?_ptTn=(uBuUwk}c{tVrz;*I@#u zA=<tv1l#ddnLrp*l2yAHuCrCn(-16Nc*EoseT-^S;jX)AZn`X+O0fDvkNv^DnKCx2 z!@EPE8NWP=&O42KW?n(4Y(eK9<R=G?3NzS3ltDZ!2^GpS7~vEEFts_^;?hLrNc)=} z4dzy|g2k8B;7n6t2&`BZMzPcjpvd2M!ihdA5T{JCmb=53l+}QkgIby}U}C3IPa|xx z+*x;JE(zQf!n_{xocN@fFFp)EMsztiz7f0foZ*VmQQ7aEh=r5Kr}2zOt{&RNyY>RZ zr`}|{7Ffk-fm|Xh<J8_BVO2LKJnYs=shG(v@(S8Y-KHYnQccA;HP?b(3@V^^vJkzr zZ8N?llUH05i{WjOsTb5;E7Twq$FG)`;{%qK1D61>NN!TiYUCMILDLFQ(zF5wp>?$j zdfGy%BB8Y>6Q0G(OJGX5%yr7Z8Z%*uZT{K1<wB755`E866_f`R-1dr&bd3h1V&RX6 z32&DiiQb!v-czeoC(#S%=)F%w@2LUjf;UBQ-XFae1oP}F2<F9)G^&gh{ew`xgd&+n z9fNGB$LW>$+RBx1pH?Hd#$wsi-|`mhhjj+S8J0Jx$Hg}<W@NK0g`aZ8H(KZgn&SzH zLsiN9Qr%I)X18Y8-t=vmfaAW(hZ1l)sCEDZLS7sY+RI>l!5M3mV3_rz?wXz&u8+BE z<{@x>T&_XHf#r5u@3BPFa1P?uZj)rKhZNZ61vVL-jE%LZl<L{BjYnhC@<Scl@T)ww zy@g}*XUE!}OFW83M7196>P^ULo-=IW<EespGt5j17ZVK-7XIMbAT2c9-6%Ci>>x@- zfV|~qnyXMnx|G-i`9o(r%+*Z+o4;7Gri2sSG+u<+Hwd(!WcK%Z4w;^}MtO%eNdVIn z@BL}p=upzEWKZ(mANsMwDQV)1Aou<7<hH2Aqr4e<TbJ$#Hnd!Z;T#Cv*l?(WTDv)x z?q<N+JMOx{n35kpae3$_8M5!f5P}W60ggx<_tgFO0L(1`m>13#+^Wja*(DqM!Y5HW zev+$FzqNvK-DK)PJ=!=lI~kh&Uivs%OfRKF^&lbcMiGpSBRO*D9Tt~sIT@CO=;)z{ z5V;+#r(Ac@O^mvW{`3Wmbw_&3q{F+zplsrppKqNw=`zq^>Y$Q{YDnq?GNQwKLO(`_ z@o{Vu7<AO4?Db7L<fPpB@hegUGTcfa05e4(O1ffaxGa-Dq-ZJtV+7JAgU%3$%Vc3d zBg&RliMiGa2;@_tStAflj|Bn&#6loCjuRyi&095JFAX{nYtW;48gw#fP<YS6BTLbs zzO5DwIxQ`<)u4XEE7PE=Q8OA+TQAa(Ab=bV$#uTua3?s5HDnfc)sPB%TMfAc*!MPz zU{?)ju*3gLX+SVykR#*aqA^*Z0U=vWFHrcyIChr0Q;MU!#q@7V1L^=x^614<G@!>; zp$23>DGkUxb4n*o<!Hd8CIo`m-fwur1|fwSP>xH5PHkyX)S`+JN+nf!-b#iq07V?S zIS{%j)PSN>T{lhxidu96uB`?HHc|qvy$1BSJ+&IpH@jR7NJ6x!JCu+Rodzr-L>dNO z1G)>*fbK#xpt}$actUh|cQkRa29#cc2Bbn<HXYs*`YF_a<80Uwh_mfPEjj{es{sLK zia?Zfi!`90$y2KVeY4BefXgBf)quZS`8xTKIU4ZSvqX2;gh+hI6V!mdtye_@YU{6- z2F${KYBgXH>}@pQaj=w^BPn(GhR}c>TPLUieUJbqCgp|&34&JI-^_LqyMIThRkK28 zxymowP3-=?hRV+ab83~JZ+5xLk2L6&p9ne&2fP84pC44A``2FiElPs-L?jq{ey^e4 z^W#0Wde1kzT)np}+EBgs4=1Ph5IG$#wMI_4SD%$8B651#X>WS7o+R*AmT?sqoFB_5 zJvnyHuUhmGiA>;>8K`V<aeLFZWlB#&mQ&!IMFOYuE--3tpLeA!aGL7|YHzU;)MY~{ zH;`3tlH+O#1N%TJ7yo3(G9HaZ)sv2;ts8g(W7%uH#be=VEmEqU3XDq4oWy5>QcSyr zd1bN%J|IimQ$C=M&U`?<Sc(tmr`^O)te)6U$_J!Nn6kYK#E)jGpwu)>p7PW7huL{i z1Fx#8g5#@!S87Bl&TwY9s7Ys2i+XfVI8V-LIJ$<5hBGm&l&#**nY%ea+)khIpyX^g zlM7Fa!kKr3W|yna3T^cw@}ZCGjWBm1&YZgtXU<)SGj~D+bypZvp+1vdf-^_;b}|HY zcj(dxO7&Zspql2_wGfmjy(Rf|fH*}fjt1+%seTXk-n{{scKU4ybio?^bYzposYQ{^ z2ST&U)o;t971eK_uEMXYwkhy}2J3+avvMx4qN1YtmooZ^i!U1WzZxoEfY1$+_E0TW zygtIO^@=Q5VCA6{@aPjDMkMyBh5WBll%qFw#f>$l*`;*CN99m<mUc8fWM8dFf<oiZ zAQ=~aBoHz~3PeA{Z`xzOrkM%+fYf6;dY}*B<Op@4mPZ8I*cJ84(mkn`M6ZJtspzVr zF3OS?qvQ)c1g{<!_2^U`FQ;5^m#W3|)MR>!XXbcjW*8`M4A{(Yq;(^Bb8Ix!AI7q+ z>09{4O2HtvpT%oQztw38nvAd0GZNa^9<{-fQhoKD%KgSbJoHjuqulqIN^0cQF*kPo z1O~bsffgg-<qQ%iH!|cYbV}kY3Gs2a0m<1LRcMI`fA9Cd8`TI!OB&LMvpa>+G?~Q2 z>ESZs%#aC_-^(PEXNas~jt08A9lFQ~1vOO7M+j?(u`o{89$&tK&X_&mt6T8J-wmIF z#K2loAKOAcuG)yKW$v3#DD7x^*j}g#IkFhev6dWSz^<fhB9baN9YHF;mWk8(Q-aeS zCyi4lmm-XcgbEl}@kuna$Tg{%QRK6@+)*a^K8^7#mF{eM$n&X`0(6-eUFZds*4pTu zRwiHU3RH~>6`|`Y3;bPiztpF&K;_NpP0@?VempZpvh-`AB*L;xY2Bb$&;?p`76U?z ziMH4*MSsi&$^KxZ<~nC9I{bNe)AwQCmu?egYm&4At6oV4u0v59g%R`)Kf6&q&QH-! ze!4hy>2f@sI$J!0wt@uSWBtayi|)OV(ub_+lA|~v<1u2^?4H$^TrXoyuIJV(+#p(N za)^RzgC+m!&AGJlwI%>3%^2Hk*EBSVmZmzAI0zsX`TTuU8pb>kkz-mGtSIJY)bs=e zQJZDS0IeyhLLo&XXO@HY+aj#%`I^_F;4xqtZL$dzmkYve0mg6&?|^1RJCLd2E(h(o z$fg1hhN-x{a4J~$-Xh8965Fm2W0(q-No&F37@^SNbFUGpUbKaYV>Ti_AxZFxpnL=+ z$JyPXS@@`%SYlusWSo9k^Sb^US5ds$(JAXWgWA$MX4cX82B8RPTz<u^G2sb;lZ&PW z$PHX6$o#(Sn!rVTI9;&1{tyi+f=pUZO8nl$bZ^~?<?-9O?Mh8Nf11y_xXIDE*j{)? zNGf3UzA(kR)lBhQBM4S=NmKa+)k{mF%N894c$KOH2=@mNe%U3eNsIo77-Imlv9fP| zD!kcJlbt56oDQd>*Fx3bPiv5{?aQ$tHBW=g<X;85AaMCCO8bhX<Gze^q*v28s?t&B z(yDzZ9$3u}h_4k+5<=kYS`jYqLa>2(_{?}&NTeHYnJ<7%R`drPAw`)=LxnPLBR()? z>+#{Skv2GeC}P|Nsvy?<tkH>^J+38QVbX4F`eA)T=|&xdVV|9sMcf1!(E9QeJ#V0@ zYk9bI!%o!1HZcSi#JT|=m_KkTmkF%nO+pR-G(`*T^zKaovX2TYu2k#LQSt_B#|c?S zV~&`?r(ml?2~)K`A}|v!Fm-v-H=t%B0C1C5VFmK~ddH&VRpDBoRYG9uKC*5U$SE*6 zCo<H<O&ap3iv%GOL8%K$nP^o)6MEuT*p#3VKlLIr3>|s?+Rmo${fAcw=j!GGAQ?`4 zEB%UuR?VEI-;^(#re7Y-@oLiVcmVwkM!$OlWUmkX-V^|c==U+2^yM}NC}?-33P%zz zEy`ljy)8q!+2DuCMHVxqq8*5bltH4T-cedrBp`%4#LOhs(68Z-H15;k4%~t=7uF^% zs}2iXJKpr*n7N*IkSyS!q20oWL)u)~7ut)k_*AiD1pIXZe?(p};wCeQBcn7%ebi{o z5J!vDJeje;ko+ofZ>U#%jonD6Jp;!J>k_9<HiE%<srHL*HiJu*tO2Fln;y_3Djrl4 zYiL?@0>V0q&C&KUb!TWQ!sg#DNoDsts$7D`zB_~8B8|<3bg{-(HC-i<iY;am4g^}m ze;xR*vq72`@djiE_3YIR1+O!*Fb)3x;(B>+(*wT@xi(aT>0nxUBNVos*#`wpW`ee* zR)%s;X=SH^vpOQnSNj4$E#gdq+MZ~%YM3<T)UivrI+COM_IRM~wu?p8@qqw9L^^jb zQ5~;##KUDA?e+0ghIWedacWJc5=@akhA{KAkVUpmLg2VvP2YWiLiSo1lPuI}_G1fm za_?%PPO}=7NImvXoI3Xe_}&=Qd1C<R^`XxF0f2})|L!E!#Qhmk6g4sI)x=1wCPspq z;8#-<{JIo15$JGx)Awz3=p(dd82X}J@eU-AZ^{{IM<2c%UQ8?aZX)E36M6Z|x0a-1 zr}L2K;{OQoWRXYNRVVsn7->}amJa9&c0~o4$fE)xp5Fx(!zs}}5-^by<WE~0JDa|j zQ;vy;P8lYAOZ#6<O!!_ROx$;p3^kL7iBz^Ok0yc{nx+Zg(yc|9fU5U2Vf2B>kLG@y zX+XAddN|ECImxhAV)5NaC^}iT`9dCwPKa%MOP?r0(Wzh?-^(e-#Nkth3E$FvuO=pZ zFA*k=(ZFt-8|xGM2u=&_qhi11s~MC?dMqarMmNqf*lleiwM}6^Yam0D&0vU8*i5K~ zf+F!Yi@T7L4tF6X9qs~I^c*`YFzwE!2j2=eIMUX2Xwp_F+{jb{Z8Qx>`w1YAW;DgF zr~~ytjm%*mwp(zS{LPOp4eci`?2DHT7xp9Miq&M~*WK?9P`s>56IEY9FL`}6l9ElS z;uJID)qh;nF5eqEiYRWPt@37N1!Ax5edO5;t%>my3nDsa<|B*tMsUH?L3-|ebH@iI z(DiC4@$shbCBn$F#7KVTZ%O9NV|nNp@wVV-R&{|q-F)j;vjurqY(c#{z>sqe+h|DH z=_b&e<=X;Ew>LdVzfT7TLhMlD3SI}2wR}gySVm_fi`j_2p9rZZYhcgiA@wyfuzlah z)7UesL1cwt^5hI`-%W(PlcmU~@{srXQltmz-_kfe^%Uv*iI6%;Rh#d%RL1ll*!^@7 zfRuppw`c}xK7(qBXU&BS)OzE7?jd9Gto7u6mPHR%k&nTCE>e4iFl=(=U^RK>p^?Fg zB(Nb?v(?3Wo4!BG)iVZ+Xd#-U6k(b;wZQ~vHAn^QA}z4S`F2&d`CgOP^7xssnW}^C zORh|*y`MeoG$f|fD?unWFIS-0EHfQIIuM3)Td&A|Rm(8Gy+WjL5=kW%L0pGxqH1oD z%n`Pqb~6=G#vSQ8wsbWY=%FS7V?lDaO=SgBX~jI<f_Dio@vHfnGz=6hjqbX*ok-J0 ziTe=*9BgksR|weWSqoW2vH-4EwY7v@(P%*$>xgUrSDH<fO0ygiWw^@fp@c+5UrVad z69FcM-(l(5yoPb?Z2EqFuBFvFmua%%>$6V}7~Q1QPI7G0Q5Na!U4hDIVU4={Bt&rH z@~EUUtJ(0CSi1rYOER!dn40#4jv{K>1_SDP5_4s28MGu?J-PGW9U3^)c^B{~Ae^7L ziH%^m;Ur-Avfqb;Fbv65G`b5wSSSSH@%EmL6S<O-Wm=0Srxi&Rlk$tMJ0oS;Y%~=m z2<$i_Um+23G!x4`m=&;dH~5oqDkW!#A;f8W$G2w6CD`D{^>2ABMxceqUF9yju~aZy z?hh4kTBFI|O$`tXZfRgZ#O1us#0%miaNDi`iq#zIx@AmR8Wi*N2ueMGQfF>Yv%s3$ zV*;C2x7HXB2cU+d8sm0AVVfR@9|KBFc?Akujr}aMEbmnzqoWSY*NKdL|F1t8c~IU+ zWRwN!4N6A8ex1q4_y78nkq70CL`GSlPM(ZTLEZnc4AHz%>i#`kMobxGv2=TxqWd5% zfOZ8f&IW)byJQRCr40JS0&uY>YOuQ5j<6#|wVM6nbojQWZ{ZmY`Ep<2wWWTk)2Dit zqEKlG8$V?lb9aIw#%dl1(R11!JwUPM(u!DgzBanx*K;`#6L%{#i{(0*W>vq#7DzWM z`dynv5<d&9yA_%p56wQS(E31Yy4h6JZWb{+wUTDb-jFiyhf%#b|NC6|!(7ae(eZTq zY#mWfo=w*g{V@1nX^UA*!wz4t0}uD$yDKGv)6XvgO{xy3`{27OH7$(mm#;AXl2`Dz zdV9TUU;H~Z0yZR-!)#jDFtEj%&LQj;_D0VR;cRw`|2}+3t7_5~v6z7FoXGG4M)!Hf z7TfUvX#cbl{w(6ax~{f`T`xPbFw;c}yZVK?%gHZ)_I!o(feLAN7z)D*|75r2CJSpw zHsKNYd?=_XCr1{ZciAsGVdbld>_9s=Hhtf}TW!udNFBSU>yo+_A0f47mu=15`i=}A zPK4HOc5Ar$%1RFp2Jb~h1dvoEiqKtwkK6nvK@Y2gxFF0gDN7FRd|Tj+L=GKL7EQ*# zxi$mXwx(}u??p09c3Zd-?2}z>TyzgTE2OlbSq=nB*EBaq;~mv@WJV)FrNeGVwPg0t zX%W!=6<eZ7x?oHQu?f2BGx-0(<c1ylrsiiK+1}09alPlZhZg1^d31Nbxb%90i1+nf zRgk20+=Zld+y&A)_Rg0Mmfv3nwH!)rW%<yLwesvxavQIn{?VZ)wg@pDN~F5z$+=%1 z_~L*6_TfRB6qW}kpW6PvZhvXdcb-~Mr`L*vU;NTt|N7`p|LLyl<xzGJmcvqfI)a5< zOfZTTg5BQqNV!v^OWsHF(IpE&!V60l9#R?=KQNj3ni7Ua+kwg%7kHpotX*lA$9*4G zY2lxP<nzysroN}b9=eyBj}^@$)Rn0I3T(F{jN->CvS~3KqRxOgLM1R}HmQqX)7m2Z z%HJ8=!0(1);tDsNM$l+OwyW{bl^Fr)I?aP{8d*mV(Mf3$Z;^RZcs*~OFz5|r%Po|X z?|s|x<1D8hTV)!UbGUSorNafA)X6JuTztVOwvqRO3X}usSVUz^|3RoMwor9E!-uj^ z^@t1ZlEF4+af}V7Z7d*3K5?yGnljmJmmoa;YRis%ou^+WK)s3ICmhv*f_Ocd4S8*A zdLVzQ<U!G=8Cp-}%<1q#@)e{qUT`rHTI2{s9^fURlGYJ81|#?`rb*ac9Kfi4%E4)H zPrGY_+qfc-_4WYwPZVy7*(Jh#C^;MmMfc|LzzGQ{bd4i9L19_H`}5V1+RHmd#F33B zo+~NS_0MlY-GjYU^iOtF;dyT>SIM7jO08@DFizECP%6=?^?ezVYu!rBuNF}u<+#8| z%{D&?NZ!`;&3#>!EH`Pfoem*7_+3I!#NGtR!OK&l1V4?|gBNZ_&4=AI8#&Kr$#Z*v z;Cre~xwQ)nN~f5b=rgmW{m$@?-wp;(!6Lb;^kEcJR#{NVMvjzqRn7zs2FJZF{MU{D zdgQz|?mfn%IXB}2<ZvxMK;|sA?c%%Z)7El2qi^{HA5+F^95*Fa#>ke*xr#qIjCpP8 zLkiLcg=n*`!r7!}BjMn3F*0$Wjx7^BqDM0D6h5vKtR=6Mx8py?<=%yRdbk<Z=n!}S zv>qR}eg|W~X$&&5O?XdFf2h~4Dt(A&G_f6jwvjB;a|aA59|zL7B@F9Hoftj+#SLq{ z1_AR%AegULxAF->w+?fI;$p0ztBs`%#ydk7Hjh{-$Vb-!b3AcilnJm_nsbtf^yZEg zBCW}(GUzW1;2vu|PG>Q{;;k4X<T*#EM#%G7LcKQtdzTsu^elZzFIc6utP*n1geXZt z#@~?{|9zoJ8$X-0$Jc>Ecv9l%U<YxK-c8?$T!O09sA(h-YN!baIC!8C2Xtza=95`F z@n8TcXWJKO7!b0!H-1oA=KOSM!3M<`xF3|JAV(#2<blUPeA)(+so#OoFpxuq1EJ}w z?VIAX3H6GSjXODLQfZSs8d`ri!2B(xbzMtkb7&^=MqT&<YG!}y{`_p^035$4C#?AC zXH^E6kzDB4-gW8}f+P9v23bAG^C11|L6JEda8{15{}#rPp*fR)BXeri$aF)>cyOcu zQR~$}7~|){81u@%0ia(rhyi%O1>SWSX(vQghl(kPs}6xvLqH2uwT?cI^1?xKj29|9 z3pP|t9^3QwFmK6QGZXX00JPP8>7Lmbz1c3Uexx%Ey>R|gXdv<;e@M@)xU{Y^7XHB$ zJg=miqH$%F=AlfH^IVDa+1ruEo^a~HJaS3zrqZjMl2x)4pXE^4q6t$@Mb_e}V6mTT z<O`~&EmgG{hfe5P0;X#$vD7RpWn!LW`Zf<%#4x9K1LDg_A*^|GZ5zX?Yq;S8A-)a7 zbea|S+4Hen)%Mrxd+W3BVQHK66Thea3aH!Wl(RSrEVz}g>SART)cyds*)AHY0*_le z5S~L-e{M1Xa@xaWgySAElM|{G5srR?9UJ&)B6Mp8i*iA$tQd=omRrJmhUN}TwHYl1 z3i6JecNSBSnBk4aQ6?i)+Np}bui|gCXv({+n|NkqVKCkqOYx|arD#1ZSDlmPS?`_z zya`oxJb+Z2A1`FY?Jxv_Vp~os)sTRfdkh8G{50}PI@F(gvRz$-gblH(2n@}fGXD@# z18)?Bj&5`8Vf;%nZwzZh4OF_Ye=sApb~ODfrbP27ypEY{lp4c0CnUScf!lb7wvZ;G zL6QCadsnSN)qw48piu>cvvo^@WXb|n$<)u!%D}Tbf=5YKIS%b5&E}-?=Ik#KAVloc zpJl_PQWEVXgA63c{_)uiQ2WwA)!DOdxiFxvJS7f5mGCGEk7(cV79Q-@#+=B`S#F|p zIoq}#bqNbL-SqvlN>0wSP2U<KGZh5Gl)%NM@YMK6vw63?%xlU8l@VS%h!o+I8GLUu zY$Dotpr2E=l3@}I8ll(ICC17avP760Im6aRtxk(?agqU(7g6k2MN|+=SfuI387aCS zlN(%&xkag=nipJ9CLa{jzv2LcF$9u$41pkjh=ckXadi$QT@(paT`gE0Ao>6^sBFrk zGc9t(H{>INM{PzlppY8$TdUi!&1MA<c}ZHYK<mikX;rnup3E0)z_7TCrxQL8I=-uf ziu&Cd^$Vos_Pe{VUkN+s&Uu*1J)xg})jc`Ng7GMfE|H2KaB|yQF|b}(2<8fCif3A< zC(N{jm9;FCQ=Af0pvRUu9!8xaGYVA@Hd9$L6+*Ni)PYvX1<3$|LR@@47%7e&Mkavc z-*x;HpI&FE)MDFAJE>R-VoRWK@>5s_<VS9)>+|F#s2J*#{?_ecQnCvIOZ;&NEWQQq z69CX#XvncLi{g}(bBm$dGA)*57BcM#<T&nkjhUhnVsoj_<YUiYX8c87lmn1K>(t`Y zIXMpB)>3jD5B7ovi^>p#z|n7@#&bpJfFMzrh-E91^56k&vdQpDI>8qII{Ld(908lo z43panHIDw?MO_aiM|&`+mQ)4?dW<(y`3#WYq2xGk-hBU4Q%`^M@f(#cv5=w{H}Cwy zuNR(v^xFr7D)8hSpS<s}efK@{*b}!78zSd<^V82g^ujZbf9H-7yLp5+Kl|cS_dWZq zzrSnLZZ7cV-@f$g7oPq0_wJpA%#`k@dH0bWH+|x{xu-ul=kCt%?i05i`uTHDJbTbe z{1DLO-KX#W`%irT$?t#Wh<kRHcYpYW-~9ah-+BIFpBWkF-S2NZcE=ZY|McNU+_MwB z`@82Bj?Vq$nTP&X6DF{(cz5dPqxapn?}p!h*F8JMyZ`pz=bm`>H(&d{hivW-WK-Yf z`{isiA`o|MEL2Lk0o>aSu|5THawEvMZB0LeJJyPNTurA32Y&$Zu!v^e(P_Mv`|rd3 z`pb}EyqdPV(=B)B?Cu=zHb>mU3~aN>?f`LXc3paHg&4Dvfp}Mdcw8aY*iSHJ$>wu^ zP4I&I!Fxw=k9Q+H0kBLbyF(}Yv=hc?ghRdTv&I<}LuUQ2Ev+*E5u`;45Kr^$5j`(R z&xnEkwT;du2(%G~8zqx&3P4zfhdMw;<?{dR4I*AZm?sDj`#kEDiR98?rNQISX=4$@ zg=KYqThzJt=+L<uk5n>*KtwLM`uCV%(;#5y)D<N{q%p<0juTUNg^tZ&S64+<4GrWt zF{M3+%#`$P(mua$HD~{&6SA`XCRbUBDGtjyCH|=rmoiv}9}ss~wThbs0^bGR%R?Dy z$z9~&Ia#?2!T~UMT&#T<l*4J;C?{Vt9>GAf-ja}2YIC=Zs)4ahg;a`C2&Wu&5}R7f zLcnZvgOME#X<V+)kpFnoL;6yWNCh_Oj4@TjC_KeIG{yf73q)rCNZHq#s(A!dhhE1N z<P8bV@RrBj4s93-e@AS=0|!7OCfFB1xlO#Am3lNdqL!fWs$>rYFEt#GjL;V=DzH;l z72);juC2Rv&;qX7c7WBSS&`@tH{hmaR86Ymv_K##OI!HZt}O@OSuWvosKbg-l7}z8 zE*ThS02oIt-*DD-Tah&AOqwg}9b4Ta=Z`1l?OT!?E{^UoUfh8n@lGwN{{{GkK3q?q zFs3@9M{7C<V>Ttn?AqzI<94koE!WQm3SB5N4~4e}6x!}^eqT992P6?rV}=gy3~$<w zbi(TC3FB)UGq2qhUi(Ki8pFn4I~nL(UNTPuex)?SA$7+;@*Iwk?PoTmfaPW~EXO?( z8)0?TSkmM+oJxd_<<@zYV^&63Zk-S~kL%{q&=@nru=oHO3d>0vBgDvZSkBF_v78zs zK@pEPJ*38RY%-ta#$>JpB5oUR;m0w@Vq?l;AZ%<ahj2Lfq(kTqkmJB^Om!EzqJt-f z!+-2>T=7=p3J@&m9i1clO!8H(V0z5o+T!na*SmO7c2~WdAH32sF2^`MNa6J;<8+Zl zx?0(WoRqm$@7b~?S-oAF%(m6-+UjOo-Emu)Th^9<#$;mmj=?S@a4_p+MwY*U87a4v z8RyAtPF5btaN+{5A=yf#pje%OhFsvCT<G>F^)a}~FvD3kbhJ^xhIfTG+p*!g3>)4P zUW?f97J90kIs2D^+4{g~`j-wxG@8}e{Qp9RyBJ$(G;5~N5IY3QVDdF<dH`?gJN9iv z{hx?%M$75FXF?0xo4)lBS|}e<F)hRmfjz!usDmP(^g@yqSx?#o^>i}9I)wkfQr%7h zl&`EX#Fr{XHlC=BZyD@__=M(QO_a7(8`l)Cy=MeH1dSqZ)#R-j$O$PRzEveBK^s=d zNg%5V1_X&mb|C`r2{X8+W-z|Qq@&izy(=&$D{|(fGPc}*n8kNOVCINS6`UqJ#aywy zjn6#m>~px6Z-E>=oSA8EV%#D}XMux4Im%s)Q*xBqwsUjk=-Fttz3Jk3rBIG~NKKBi z$wlSp<$#D=5{pnD+e)EXuWf}DaLsNC+c9eJO1%RD6C~T2%vJ`wM5JQh;*Nv$?yE{Q zDER-Exko&JH}PK5A^XsR#z0~ai})2LG(?ZuAZySgkE`jVang+s;ID^}Qt0BQ3Ef_I ztJ~j_8b3bO<8P&2tOn8CSMS2Q)fM&Lq<7a~F9b9`C_wSiQ}5$PAAV~Uu`BDn^_42F zdnsajV-cIVRbL5l{Yn=~BET=wO}52u*WyxzcDhA?S?}E;aJRPGTkiq%Vv#|=TwL#o zA<f*X_og6CPTxgs&<#YiwhPoaC9_lvP+>U?B<BIU5TAgK&6n#dBn<X8OgA^4R%$6> zGP=hHF@g0iDFL|@KeM<5KlfZ!LiG#6r1-gFKM&()n*aK91wX?i?MbTk^F{cXri%Vt z#n1I|RM*t-vuU~0`WhGDAvNPqPRk`}TT{OWGv<M&XFpSNvO%;z1e}`DRH#>s2cvhy zqDh<{<~#a5^z-TH9m%))$_2iYts41E^p0fwy~oOTN*Nt`D0;`+&Q1{FHL=GsZ_b1_ zm!q^l7ha2$wj{~>maQP1{cK8IG7N6@rdZE!qET#7zKI+y|J97_=OI~*iJ;}DTC_as z9%~s@zOCt-FjcPSY#}TatOLHM76HX;O~fkzV~sp~r(O7hT-XjeW?j_vQ2tc%9Z4^= zHSUO1>^Cn?B`L1D%oc!LmES5N9U-MUlGF7)(GK#PN>0ejj^sT3jh>#f9!yHWcIX|) z?H-x}6ztv66OgmxxNT3UfKdy?wE@{X4!L7bfN!HVI4s<@C*Vc)sD%P~0d)hTqg?Mj zSnrcBD^S-#GsF}SjH;9ZLh%+Akh4x0vSEOT(xPTd<j=u1yc(9Ii7aAZ0XxD&_~<o5 zJm6wT8@;BV05>1vrAF~m!{y4p27PK>VM}tL*5d4Xvu7g5?18FpCrdsWsK#W8^0>+m zO=D$c$sN%<%H!>1$(_+V!sBga$z9Pq;u*J<CHF+{1h@F6Uf6!Cm(AM2E(DXGFXkS1 z!tjf;!QOebtWjCaY=*<7koC9=Osy?Vc4*M2nW<($F{c_t>4MHGC;^3|V%WeT@D>l< ztTRA&ZbNgaCg5Y<)WH%U#7g)?AL}T4>wUCa`jXkwU#J~Zs;@YB_E0;U1*Qf(%8ZF3 zv6<|>!Cp{&-!5<q+DxwBGPnY|y536@2F!JJ<%6*FR!C_TgjLtzN^H^IRbR;xmKEYy ztgQD5yU^OF>Lygx?e&%8XmKS$J{#}A8^(xM)mPS6v8PpbKY^dTb!e6RxEhA#imgNa z^;PwL-l(s}o2%+w^;KJj^!3$sSWq-oR@GMk%=+p?S3i;EXcg2<6q+^Q_#0NlRiy-j zS#edVfe#oK9{@mgiEi-F4Tds$xKe-@JOe_{OyHGhZC#h(X_|`^cp;M3U7(mCJSN#? z{4!Wg>L83Vs(T3xBX;IE3)gCas7eScNt39y=Qzajy%P|0{w+;UrdBnlLHS`VVu9)I zi&(n&eN^wGf-Vp+D>-qQP+h#c@<Glu!k;9$wWS77i;oXz;cpj60&)x}EP)UhMCq1D z4+^qsoLHFpE8zstc|{S5OcdlPkV$b$p+k7K5)MR|_*IDIZ2Tze0R32LJ~)ZSG)>l` z`dAqCagD|LK)e;C`2C@zR?zYwtRcX`6dkG7r+MK7?hG%i9PoHfa2~RGX7?3h)2O7q zC}ZE;6W}_ra=?#=2BIp7FLgp3u3WM>gz$S4gkRRO0Se5jnar_j9?Qr)1`!*R!K#^U zv1)`sgR!!<bl8?JPTR>1Gc`~Ih-nI2NQ;jMk=WpIKN`myFsBZL*W<N4%#>agZge@+ z4H?2cijcm8XM;K`phA%nkT38k`s5c8B4U2@fXCr6Q2R&Xmdj(QrmfB%mXtI^Kag<| zH0Z?_6IM7<MI03#5<@*Jp%8F{ilCJcjVs3oS3qRKZCnLVR(LTdLQ4dxNb0k9U|6g0 zs|-yfYp=>Xcv=vKD<JQ>w+=ykLQGQLt$@4(2i5zWyjwxfZaaO{Ix2v=(Ur<OCP5gs zuTfg7hfY5mZNi>|a|a*2%AcwjbC>OhFXIANGVU&nhZQJhpCEz|?32lS`{c|2c6o{i zF3j-2{-!4);{jcR1wOVk;UXom2SNkJ1B;sxH-~r3EDC1C?k@06Zz11+PtGdIAAJFC z92ox68&)>vI^$U1T!vqy^lq-}uXI5v(tjx1aST$X@R@~(!Hw~X2LF-?*7f*O@F`yT z?E56I&WEhUoAz$NJK1Vp78RgX%1B%van}|HTF~pDEp|0Mz|&est|8uUuxJrt{wRas z`Mn)V@Q`(n?!2f*SN1)0vp4ES#q%|ajIz&l0~_fP9ZIfo*X+VCEn^>1=y+e~<nuZf zrL$R##i1NDUy*FAO8#rMfZq`wWpH$;nshPGRZTj_g-1H*yoe7~lW$%4Nn)E|HUu-} zUJt&N<r|$PJWl4qhp1U}%;phhrJe)lRT=IeuX5h?NA<MW47r{`34X%xK?*{?GNo42 zuYip*p^9)0xww<Dx0+nwq2!hSs;qs(S&%B`E3Jly26GES>ugweXQ3H9#H^n@1h?(K z;uZtAxewM5pXr0%h2UhQ#^SgY#^6{MX>nZ242$EExNU4Hp)uE06w7_OR=|kLg5DKx z`LbxZ{izHKX2b2{D*`<L+FaVev=LF9Jt{2JT-3H;8kqOgDc*%&?RHgfOD<@<+dtMN zzvJ3|=d7a%h~%j~->3-Pd83|@NiNE$Vp6-W6G7c|9jK-QSGd)69jCTejAw@CEo+2X zM52`h!s(8F5WgJrjm#4Cp3FGZR5aU;2Ck!O>BN(9Q*h_o5)7$|B<M&lm#X+sht8zS zB;X3GrqnObl2s}_zzG9_QY2NJ9=MCLefiO!${7EF>@J45b7hCnqM1JwFSvsaz1bAG ziSrry<MP0U?q@)fm`qtr5Ml`Cz+G%q!9`ewhl_DA7orLkaX{=OK8USagEfK-^?+)G zjwoqBGSu`IEho+xvp|ZaEM^Ojt)u^fCwGB@kn6-mB~v$o{yId2;7!SpuEB%i+tfSd zdJxz2ZfblHvWPE=*n)-DMUv`vZ=R1QS<XNYl|*1Hf`QVQV|VlkcnBWi9^HHh)QE)R zP_H~mlLi+(a)F>yz3)00U72XJ5c*J`(ieWqqc3pFihAGHp%wZRKfK7xq59OXaB2C+ zP|*t7h;;YB=YUX~>P`ORPx8bh?hf{<VC?047#xs<LDnU|#k6T(pBT5gHj5Ka0%)<Q za<`h`vQFer)um`=qq<W~Phr2%!U2iic&CNFlIB>00{%pJr{&bVmRxMMqx-{4){z!A zI7bW}fzSlh(9@^FOOfIAlWs8QsmR@dQAb)B70Z&tpTu(z(n$q%n71qD*yl1F%hN)O zIJN?YeT6kO<XE&RDniv^Sy-0N>)GN_D9d7fa++mnd1qL5AkDJOu`&L$D9bWe!qgaw z6@+D(9AWNcah7GCgs~Xt8hMk65k^SJ!bu5?UGKEwh(dm5^b@Y2@w2e7<7YCrcqPU~ zhyy|L!!=TFf;W?=g2;rP13Q!h!Op_PeBrvGeDxQYG*>D}-(XTPU-Gz=)=R%~>1wS8 zya0E!SP}w^Gq+`^N_mj{^33aon83`@kGM(gh98{@%pD^PDp7cn4@c82cGNlOS5i8v zB9<sAQVeWTBe3GZrYCG;db+H#XuMdud^)_eWa;vm@Xpeu%c1bn(xuD8;iX8r{Gu1q zWw~{V6;b^8|A&;pjtKn2yon>I3n{z1yLD3puA=k?!5ISsXPyNybI!Tvop(Nzh>NNm z?TEd^BN>4Mm4|}x&cAYABAvj7RfLpD2@7g8crS4V1xh$`($vH(uj+Pjm=`H05w8Yq zLZ|SUqZxA&kGpGg5}UD;=;1Xd5y}=o{Q#j(I*H>_DTN!)+l@UbuQAiTyk+pvrE@6< zdURR+v$vV;muS^Ms>2Siug1HYlJwujR<Zm2306hG3aLtX1G2r6z|@A3HDE^8o4|Qe zXu%NU5w5jBqY>O!J2VpP0UH9r*6)GsZVq6ZA4=5&XB;sw`kw?~Km;#0MmP(q0)V(; z3J4L{W;~u3#<C7hOtrF4Jh3dqp9_sj3Xx5(oUhfB+AehnluB|2+l8A5hp<zQ{FMVc ziKIFm5w_VWcH(7tfl5c+M!q7g*60t@_Lqlf6H?*8x~#~JOK^i4N2f$I76?MJY|viR zbJQi(k07w*R1Br3Wcj>#YWAwOcrjX((m|PI*P@jVrCMZyj`o!W;K?oqMaoGy+8O(u znA;ZXB};PCVeU-6h)8b#(u2`UB4>R>B+no_6uqM<xHAK<MuasJ-bstumVUB<@y~~M zY(P<QYShn{!aLSah@CxAg^+Excnd;POXJLo0(le^OZ_Ax1ZgEV>Lvq|sTZ<4J#1_G zH>~Demv0Ye^61;cbCyTf=lsrLNWh?qw_f=#BqN4Pb<aU3ia1?-ASI<#wgwj86}qq; zR2a{a1(4)!)TbjlfF|$_CPP&^;x-A9{p^i)3YBaxd!k+#wX$BobRz)N0X>TMeVlL> za@bup>M<8+CEWooQ*B*jiOK5_Z3iJ$G;Ir+X@fNzjOAqN>Fg-BHT@elZEPH)h^Eay zXVa$7b=&gc0gMP*QCHOv$1+O;$wK-rACblr<dYx^=1W>oD5Y(Nti0|0WMSg>h!98H z&LjXzYCuVa!z>`=7c&^)EcpXgeTq)KIj5&M-%~4u!~$7uYx<^ag8=p_6HcXs3cDa3 z{LHf@*DBRf)GGG)b^!isdS5DF&@a;&j<bUj_Tp+J-xIgl@{*9LO_zqtIgV8j+Ux{E z^N*oPq1T^YE$2a{&PHz>>55IKqi!s=WRUu&aYW0cs9lMs<K4=C$GSD!bhI0_-3*^l z5O6q$VIN?vPj^IuzI7u(_1q7O=gt>MgJAF;B;$QnB$<72ZE9XLU8o^=mq*0Bc*Fti z)KzTLHxWo+XVZglK-W|eX5=XGIA=?;m(zA3Q#4~2B5@AGBQvj}=89~kP9tZu<Dn}X zErb|~h_(ztX>TwMEBmH$p67rvpN6K0bdm@3=f_6+Q~no*^RyqvcVp<(($g)QQONKh z*F0fDuJOAJZVuDQ2?U1c2@N0+sG!kj1v*$Ysfmyowretp0v15IDS%=^oZN;?G*%Ll zJmy^#hKmz<W6s^+x<uZX)f*tcA{qN>s!Jzht7DGp^%J7Sj=K<DiOvfI%&#*v&m4{4 z3KTosgDSl)!)!xT<m_d*v+0{LIjrds%q1|)C1coy0kNxt$*-PpJKRv5df`G@klNT# zq=6Da-d3WRA7IE4L#$KzEA^vHP?(hQ0OkKsVI|VkmqG3czu%-u9-TBN_+5trY{_Py zpxQ9<Kvi}4cV}X%dJ40Gty6a*SD5ZUE``4kX4X}4E?jl`>2G=K8FVFCYJM)9N&cN* zx4*%`p*0s=c+thfo?05sJ>^(T9?Ou-r6if=Ubo>Y78dL+XQbb@rhm!g0bjy~jnR`k z3Z6up!WVeMDQdhw8NI)&_<g6>@sc$GI)XQ_Ta$RlG*yT-wR><Q@#}mK%cVDfX5_My z3wZqNt&#yCMxsH>YqDbE#sI8&zn1_lhmv1X*kPBtf-dBNR2Qy0zLkxc?u)wM^d3qM z;$b+tvn8J&B_7fPk!Mo9IErU4hK;~mH-&CKqr7vmbmQc0Qm<<^;M*nW%8S&qbCv;q ztcuh6IDfp5KT-fM>;!@-|BvvCUqL`88cJhf4<1T3GBhS)duAuL-{AT`6eQGTEs78# zwJLH7DBHZUdK|BC$%rE$uEl~wD&=r<_zeUFGE17LNkW1#ucLd=D2k|9k+p^;BG7<P znkW@P0Y`5V$}@)qXcTzuL|MjQudHZdM4{e$RcQyRn!GU%Y30=z)tggwz$%}W;Mtk@ zj;8QEAo#X`;NPn7V)K^}LdHqZZDkj~>{uZQU78UzSU}A;fSL_`&M4rvGxm$SC9iUL zQji7ItGNTztAYf&)!+f1iE^kc+yU}n65$IlEU++>LuiO4)Z<~FMk!Hc5!!iu4VJcG ziA$B!2H-gOY0j<T{b@`Uw6RRNAf82EJq;$R80H`j=Y=MKoLxk!i!M<GI7AYu&Q2my zvxxjyK;*9!krqNx0zd~2cWm+)@8%;BSwsJm$6}bUyFx#|(SCFtjGvEY+Db#{Y!3xo zc2;0203b{YsD3R5Ed)q}0dF=#z`mF;i%kp-FfrV?WRX!GcJ?n&UyOJ4Lks}fwFc9A zSW_d&o;zt|-xrWz$Y$HxFGqnMP7Ss{5jrw#bKlX_#4Qoq1nAUayAFghBjSi0tsCjj zD~&gpGr^kmnsltQ#OT3$aa#gbr2AP+MGdIZ7@n6}Bu^~5b{J*7PgB;pVJ<rwZ$}F( zek&%f!#Z5yXMmHTD0Hekk8bi<ok6{ttmkHMO&6Yn_0VWQeK%`NAe**uo*i`Z^KU?U zs5(K7eajCyOaQwXyy9QVVYY|E^#59!O)FCavq41o_dpiXxgjQX|0pGfBb(HHX~)Hd zsS+xUQ4AT=DmgmvpOTv2{gNG6bq0S!yLN?)k0x}A(m8le9;hOpQv-sS{>|od-hsY* z`x;Ek(S=j-xd7>Dlto3CqBri40T^~>?3}|id_q0goLo91cUG=w=IG1kh@6;3(4$Xu z)KT1kGHv*sNXE~_4Q%4(Z%p$>6<F6mi8QlY>tm)?c&h{Lv>F|Fq`>Hiq7RRRS-0o| zvEdB`QGaHD$PAgi0a5Dkk?K0FKfrJ@NK%8wbc0-fG<2FOYs+a66M%Ur7)#a?d@QtT z_7kIiw5ntG4=$LSB`UrwfZqyDS%_6agDvmqV8fv1!aLETr{@{Eax0Z9WBP9ip{tiN zZh|;lvu;U4GJEjNf|~#Y4x4eWq&6NQA+O6kxjj7jdu4aV^CT|fy?dK%nfU*oy?24L zw5skz>zu0Us_urS!B-=or@8?P<WV4MYlznQLSoOIWTuUoN#{<++XIuioi}%qOqdza zV?T?h1)`J)S_(=DG!*hGA87FqTR<%F)xNMml#U@uClc*sQ0M<&kG=QzIH#(*3&pvq z{z27u&bRkod%gBrYp=aF=*Z7O_`n=#G(gg;*6KTbd?)cgbxSCiZxFI*UZ7@$qhD@X z@Z1R0Ug0;k*EL;{+^sP|rl=JWOY{P{{ayGGHx3hP<GSy2Y+1NUlF{}kf<tY>QsK7E zt<cU~F|?~J+_u%;EEkN^xJu3s_6OL1DDZ>n(<zp-3I2f4xP50b0p<-%39HTij{LAK zLb~~7Yr0T5Fz>H#kKZT$I{D?CI07Hfwnv(V3SEJpcEq0kDdi{Qo01}dPf^WK#zewU z#(=_5j2H(Cb%YOYqVjeS;}kiL6B%lp-?)W4!3R}KmG_woLrH1FGDCr#`kbBGbJH^g zZj!==RvM=hH-&b_O=#DKoAk{xH<79p>R?+dbX`yf9xJ2v19`Q0PDo7NP$2I1*w4I( z+em0@G!$i#($*P3h$}k5mybP^d|yBI^1&%BIzg4S97&196^1ZvQB}rOi2FFR4}Axr z818emEV|=)BsPASSP)L41;RIXRfKd}_Y!{87&KKv>#4b`E*oYdwbY2Pe?p98ybgg4 zA(BZxg$T(6pEN*%&~UM;#I{x#%s56)C#lvoK{dk8I#Q!{sE(uTh<)0ctYy}B7Y84S zFWTUI(NunZ@ZH=8vXAB(|AN@9jW6MV;+#Ubll?(Gx{cxS!w`wQF!pEGfNmBHDQf~U zi>5FxA)CA52vT<lrttQeu=}`<bBvrVE(MK6h|i2*xvoCBxaQ2_hS6!E6!AUv*cjdh zTEP4fFYF=E3HmbdJ_a+>M6YX6T1M@DNu1;VQk_eSCmbLXo$F#Ii@3?3EaH2>VjOwe zIb<(+&aI+-_N|%?5H_SqNA1f87tm2Ym;tq`zF<>pG|pk(rq*S#P07^S%>pEyH?^Xq zclrw|{}@pKNG*a6kg}4vMoUVhd6qE)!Aa&~bJxM;Q18})UXbj?T`O!O9h6^zJ;C3E zv&tQ4<hiIQsgWOb#R||S96OohlT&Jf4>6WH6KsFe0J~QdIL)8QX`ufeeU4nUy%j(< zNz~}h%!)!pdPjWGG=YSeD6&N$W>(}iK`OaAkvRVOv0IbeBP8`t#AJmAYWA#9uX^_i z_~;CY9o}YJ1y@8l{%r;1g)}0Hwyp9q+g5qxGCwJ}ml$;j_wgZC<!c=h<e<50MHROr zB6CpII!{C%(#1n$T1utWEwxmD@+pZyK|JxjzKdOwy2Sx_G97t5khn&VM0D5S1Igo| z{7qRPbQga^>ZbV{%j5J47ywi4b~@2nRFx*V5#jHMIJ!hPHCfXST8$@taqLq74#CiI z-O$A4D?8O2@a;}n;irV_L{BEZzwXdtR~6s-#~MIQ_gPtSL5j*D+m+K7^l+z>YWT3_ z%>n%40Y^9rMG6HqDfCfup_)FT+_MHQ+dv|h&Qdn#7|~;jz3Ow95zfYq53D$*0VC?h zBI<0DQgWV%y8%sVW4<vK$ZkfaKxH{dgkwP(_GVy9lRmpo@4Azr+MXse_UVH+uz7I@ z{cP9IfF%fhVKwEuvJx`vjjr%_gz>!*Mhkmuz=PyP%?QLqF|tO!@8~H+zAMOSbW13S z9`5L|ke|+6JJn3;5WwakgTCcW<|gabCaD-^CvxUOM=JV?UM*#jqe&v+6yfkV?GMCh z=N6VA3T$ZZK(HFFjg3kx%h!*<%CeXVtesY$Iz8Aw!1@!-Pf2E7x$@9M4?RqNo`<c- z7rfww@`LQwRfivr#R!{{+>d;z?MM!+UcF|`nxp0Cm}BwtGWi)i4nM~qfBehwbHa%y zo_NwpCxheEM{e%=d_|4q5!a$--JXK?o4aN_6oC_1gJRuE6r3VDg5@QNimNd2C^1JO z)hE{DH+XdiH5drE$9)hZ=w5%O+~NCu{>*i&$m6)&EdZ#N5Qh<{*mh!l8X}*@$oT4X z_FK?Y@(I6jEtSa8);Na6$4}BRtRn_kLo;ah_2te45{+J;f{B|>pyr2`s{=VFK=Uy& z$`kqA-X)^O7ZXt<aT2zhz+r@3MAUddR3(B`_H+1=HtnXw?7cx(ss}{i3rle8=IDrU zM}dmj2(8|f`y{vc7@aBCG_h`ViV4Za){`QLgZWy_=<v}3Kj<)~Z1a5WnbiP6s&279 zR%_4r$~i0PbwqlV<!lVqZMg<$#GjjT1JXNI=MnS{*I<3Y#=0!d+iWZ*ck{)pwURal zYvW*RfMIJR89poQ2V^5K{N?*W))uPREXa{G?iH|Im`PNvmq(y%t3WfqU8GtN;m{0F z`RGJl%W4SX<0^C+O+2|?gn<i(<b~sOnz%6-2O)m7KG2J83&;f5`cv2>z=S)V`slPt zz-li?Ef@QPrmgN)67DdKh?Mb&l)qIKq-Hai3VTjU9v)ed{aGUwNS4zYhAT$=7mB9t zCiA^f^9GiNABqK<kVr0e8PNp&go84UCVfHztZbDq4c!lswmTeyWOlC=>BfxKill{l z_;N}4UZwtv@RJdd>^cj^7ik&7tJuFR1{H3K$TK#_vCQsJ*;ok9vpy)pe=z-O&V@yi z>1Lxu@(2!f%T77d*Lj?pJ3i6mQYg8V#{_xGi5^*%HK2fMY7LX^x?GJ&TNo{>m=(!4 zMU8P!7e?V}Em7U0)k1woX|{53G_Z**D3o#PsT4jJB#3eDo3h%OQ--G^3?{>@`JM3P z;>z&d#0x6-#l60tnGpXHMm}VD^A-3d2gejy)k1t<#EJ>Ao;4#s6FXJXYDi1zWN&kE zN<Ze9InDMtVg=qof)!C`rrJc!r828$)fYvzNfMFx9+Bob&4!Pi-589>E2R81c5@nV zD%wmV=w#zB)7OhKjYl}N)kJYyAU6#-B*iuL8<EJSY?!f$`A&2Dmud<T8L5_}4&wTO zCCw)|4&4@dnv)PrYIIs>Q)(5E;@G)Ou;j?YH})~i+^`uzBR6#{J({-47HYIkIvaz! z%a#}Xy4g65ztRPV@WEM!X#lk^E6z9?a@$UJQ#=(}!hea^j;qGiL{ZZOrs%ggTe+nx zVUEbm3z<lqK2a<a=`BoTPiZ2WH0r?1OdNPI033LkNeeko(T^OFCr9U~JZbQQ?n*ge zquHf5aUZeW&Hy~IgSzk|fk5sC0L^Xo6E6y0h~5n*slbC0>+7@u6q-eTY_kERZ<aTJ z82H5j1cnls_`+Bsa>GHWid5r~Rv6D>V!9a#p0t=4LUNL7{M8#yvba%_qpRDwAwV_@ z?1u+#-6YX6*}Q>}Fdk8PNfm(}vLPrEcwAfX<8d9bBlXA1=E@ylM{>3>M??P>-hc%0 zb72ia9U=_LkqEuaJ_L;fYL7h-W{*8oz^wdoDX;VPZNl#1`T_g{cdZ3)VWUan%qU^R z9~@%UbF91_fOm2*<cy!^;RhMWl7gJpx^B*{EQg*)9dYKgOTFvaLoM_iP1nt>@TTno zGe`}W{Lq3ovL(J~oXQvV)r@kOC*|Ja88KWt>LC3@X~}BcY0`nH)I<20(GfHim3uHh zGdhE|1TF*X(YmD~ojC+xplr{<vc!hC`6vTPVUKN`PhpR3j88Fej;0Cp%Cx#6+9`H= zew<MfEH_Y+{s8dIA@&T;4S_t&(*BO*zy+#~CF@hu9{1>`z;w(v&clrP<CSC(XK4;n zN;keRj$&bU7R-#BM`45PRnR4t>o{m~7B<LuM3(gtgho>-jf`&7s0^8=s*3gQ3C56J zp<{!-9Lo8~qD2mvRBG-9g<xrfW7QLfVj^J|WQtFLnv;A=&Q+srf_`5Q=0ZI#RV|>N z$(Bg|D@wxU@kNt_7g5_1f%%c8aY7Tzz|u|FQaaXH?AA!n9L#V~M-Qn%JBt?=Clh(+ z%GiOOQPV2LCQZON@w*EWRt7cU`HuXF>s=j5c7j@cBxb3AT#}gv4#CVP50)Ja=Gv)G z1oYr7fggs-!NwV3XB0Bs3K{g69{ZSbvB4CiPk)9o2)Z4N$?ql(maZc@aA&N8YCELr z<*c>E1K98-b2WfOuBb#Dc;K2@pHUjv``$xg8DeF@f4!3A3*SI)=}}+QoziVvp_DWp z&P>$tgBaX98a?u?GLCT9;GquGIWqo4Jcxg3!9Sh{7nztogzFb}k`B>2jLnnL9Q)U( z8HM_S2!A4N5bp05I>Pu!{+3&UP$LA1t*jN&;HW%lZhPDNARocvY#jz+aW)!>56#&_ z%N7#&&tJ7Ada{V-TO*pE(wa9~eK>7rMpy{7-yYlK;`3=6<;Y0RJ7b$tc>X;H@7KmJ zmS5JY;g8o6)a$sVh6EfW{P2PvF2Vdk{5>r-KK}CZvU|C+oGrUjYJB_zTXx|@f|Kb$ zS;DwRds)7m>^yRUF!>3kl{fTi`bPKYCQktO%+^tXOpG6Njc41dV|QaGP%HTg2KwRU zM16z@fK+lYaLupJ<omi>6G*@>(pHSQwk$%zZ-eWC<3%SxGSMdWw~=gnLK0~Oqt?Nw zlBf-xQJngP5e%C;Hv#!#)>@7wgA?>Qaf0J%!f1Hl1dEQx+hfl*LA_g`%>*rIl$#)C z20cY;hM*DaRcO?JUpc}Ol(f>x(^?-u3oT@Td9+AT4Fz#pqu_^#a-na6UyVrSAd1p* zd7PeYSTIv3=?u<c0@g$k@$Zc74e{1qC=G2ZtU7u^(u={95*y=T93MA~7s0$D4r7rh z4bnLk3en`iXT*E-w<~e2b9L%y(s@I4B5>@{WQ-G{$>=<ZCZo^Aj8$;wvwyi9gpxcR zMM^r2h?Hw0QY;XqsXYNHDeW*#7ruO`X5L6)wJK&EE(j@B>r!*^5pHc8W)Gz;JLKcD z1c^l)!emlS5?oA*cvqsr{BH=jFj>lb5uZ0ld_IwSkqk%#H`2ojqDnpbAdch|m^>(% zX+F3`xr-0BwvC@qUOm-c{45U|w~H^-hh?{SxhzAr-wQ!)6Ji*1oouTM)7m=M<p?dz z+t=;?a$Sz_o=LmDx2SbF!Vu4DU5?@?%#K~Ox*V76UtNx?3S?stBNVaAW*<?rCo(K9 zCHEFaHs<G7)#V898QJu`1FFjruDgvk_M(^N829NJA4_8TS~HRg9*@g7bY(Wav|!_J zZiTK6pe#qR*DbNv&6*TNyoL~jgq@(Ds5?Ym4C&vZE$9dZZ6PrzH^7n@RP$$9mgCw2 zvbn-8URjRNyKx{@l9tdQ$No&pas&_#uq;QnXJWK3%MpgM*<xXS_RDgFL4W>bIRYrp z@v<Bf1)i5!yx(3w|FRsR8&kuK{-^n)&yBJi0ZO|8J%7yS{8sorIp%|KDHRn&R2QFk z=t#m#R9qeiU)9dA`N1j}HouT%IUcXba=Wp>GR%!?w!Y(8Ztz>rD){A_TcM4q1GYh8 zK=H+`ZC)HXODHgURyg(vpSjq0d)vkgiF3R$Zx3%6AxK2V>6C^z_{8HRW(b5&$zzP2 z%3}<Lv$<K=u(owNiN)>QLYKN|wp<t?wE*UEA}>$A055CSo&%VUfN~r!@FBU#y9>`D z%H=o$%54ZM$AKX*=OjE{oCnHr<VJC`f}@n;;}^%7SbY3tG80?q;{lR|l;e1_24i;P zcQ7SjGSHitJrnNN#;~C=`DWy~6iRWNMS%^KIL>Teh~rGsY~(E5A{EPUoQbey+bSI0 zQt*+Nr2P!4a0K$@t8f5lDZ<hH7XDE#!tr&mu%XTUek;PkZ~P-^%HWa~;drwKRCm9b zRvK)PGc~X}`DSh$A;5a39m+q`%5R)muD;RD3*tId-vBKY*{8(P8$@<R<qeYmzzS~! z+~o^z2*GFGoJRik;xnA6ufUpD-N>OWdLFp>+|^*d>V|j4cuqh!!s2HNS!AT-V?YBc zfVuNEH=H16DnU9Cf_9bIV`;UGhgGw+c>JA6&R5$wPz1j}&OKjj1H%fxEDnl45QoW^ z+E^HhcP$=@85Q#q8_*k|TphfM_~VSQa=E}pw-l|&7ua|+2v)AIai*8oAP(D?*Qn;A zDVd_?;hbr*Y^*c=W|if=6*A0?7KJchRs;OuGNDy9y5CZ+s__67O}nZZIiZQM%?UON z+#iMM=1A#$RgFMttgxXSV3Wb2P#{&w$9u501<;evRp@d#W#yt87%Buf*?$t@M8Cxd zXS*;S-rJ9&8fVESz46jMQBz!(z+YBT<5898V5v;ebcvh1yX4U=j%j(Kp(19^9vpY! zia+E9HF*3bS5V`{_#jtMgC8)xRw5kIiPzIu8tZ8s?xu)XKRdGy^)!lMgS#WWEo{Ij zT3G9Wh_I(9VFL>x&<4Oadw`9^Eb?6qSVSS-$S`MdEA8Gms98kxbt*apU+p_HvE)(% zsA$RE7dtikhY@I6!)0Hfutive@BY};ytn#x#Wtm_zWptyG3o1C8gh!|G-f|kE~gQi znD@u99T$RfIgRk<_B31s(uMG{(OT#ZGKMUrhW-sD7kJ|rw4BCm1q9PqMy-W8^WQ={ z^P$kLP5zs{S<Zjc3^oSd!sdWKENVH80BM_Y8sYoI&nCYtyqrepX(Z(*<C~Hmfn!k3 zP;2$`U&L}6Qw44!jhpi*rxDs2H*sU@Xc#j@5PAq12wPkFW|^C$oJLt4Y_kR^@=#C* z3oWM+K%5tGO+iR(*_4PVi<Gv`0DaUVTqZ*RdJi9byNcP3Ar0iYTu$Q?1>!%e<ut-z z#xaXgP9yYbOEUM)S^J?7KpJU<7j1C9NFpNsme>N)Hh+lTts>}zQXJ-j*sYB(S$f58 zgR*4MCA9|h?<gx5#{SG2&>(*)8uANWP9u=w0@b;?=k9YPQC!Sq5jXi0xqQx)(+G2z zx2bhmq;1L6dd`*8m@eprs&X1jpIhZL0>~zbZOdtd7fll^QaO##tx4_ymD32F*$VjF zEvKRW|2)cRAbp(WGq^^kWi|G{oJPRWzm(GuXK7~s<un577FJF}<JSygAzc%s#7@Jr zS570qSSqJ+keAcY81}POPD3KnKl5@LVcNNcrRAv&jFqUB8LftETcJ^DW%=;Wyqw0F zT{yxOs<|zCISo|O$d%E!w_=0wzQXFIWi;;d4Mv={gR#MUMXm0N=cD5@!rgWJ*DaTp zhB6vwD7%L;8fWB<#=ZUw3y%iqK7WSQNHNKIL|a-BK+Te~G8#h?{hl}@-C&r;$a-i} zLX&V(Vqj7}(JBlrJINloVrv{FUr2+-75gk~Fif9O(H+uH&yXBqZZIUJG(rMLWhsrt zMAk^0M!uBB(Soe;fUIgHSuG9DIp7V&G}=!pUrfWvNU;N17ewX@OOWf<rXQfqkup?r zu^pFsT1!I;8dOqeOeeyeQeBAiwKSA>n5!96rz>k|6!0@5-O66x*cn<(L%Yux(?Iv| zwazH`T9?Inn}ub?G|tFc2YE3K><Dn5!HHH?O~a3OLn^APY2<*8n*>r7p;eNH%OhC% zavJPL<N-tuJOaRc{4~`SA6pJ^UhHfhj%Lk)E?3mRP+^Y%9VJ@?dQP9G&==*v_QFbP z1a*`zsX@^)B0<<fNsWN7bc53HRb5kqEmF+NbF!UMRaJwiYExE23T`N>o}IE9DSTw{ zS;&Aa32p0Y1PmI-=j&>4F5S;YVGRMal`CT6EXZZ7s<K9|2{LGk3gjLhN{^*Aszv;c zC`&fsd}$31qPihpK_dzkgu0@(Mh>_+C3-4CkuR>H!=wFTOZ44DPQJbd#`@Wa^uh{k z1cuBP*a(=ZkX={CMM)Jc4Z9}&JXumy*UeF5L$MT!Y=n{<i=ymuMK*kfx$+c=HqRg3 zkhc;|RBz5vWg|fDYnSQpMVUyh%tqDngX7J`)%F`v2uu{YD~SoO!U9XBl}+QuIQ*fz z`)8oa#<$7E+%)1A=j0iUSY<=)1wmm_W@FyvG}th3Nwh>CjUYa$_AUp<nNt`9UP8l9 zh{z6#pAhNcM8?6Y+{6?3C)F^KszuBpjwLka4P;s>Bf|Jtgz>v=Pp&v95|+#X+4?j! zp6?`&$dkKlqw>@v4nuR-eH9zKi(4IISHb&{jNG}aV}xdrjoR$z=$qyJ9L8~39b>wG zKGiY8coyQ)y+vqj5SthAA@2Shs*Vw$y+~u$&w=U~qtChO7_ExJ%nuc~QL1CKyfAYV zz|F1jX0AHMNU<LBmiVG^s#nJtS&_9)DeUHq7V9o=i_I@qQdSkm*eyB~&O0>^#GRUQ zW+~NCLqCIRLOSA#v^d6ImL|ZiAnwJ45f)NyCYNK=C*%ZA^C_eRPw^>c1fyvZR&Z^? zkb>(Hh7(Magbmj7<BXEfw}F!M2Y~l3w`cSjj+>*;ijA#64eL{jWAGMGOl~?B$H>FX zg(pmcgQUA%rR3iWBjgq|KhWYByHgq&-Dc?>Bjp$FCN=b~r7UfiD~<s=mWpG{C^h$i zLYQzUj<E}+Ph#HGZaxKS&hRNIj)Arb`ju=_>!c&<FN;Vq)N65!(V`$+9$z#;2*ok- zBZKfJ20FUk*s8@b{QB0wPGhlK8-KyYF#_*&D2}m*_6OJ{4{E~m9g*~&2xL`pjOl*n ztu`p5GfO)a$Jo8JSR8{&q*xqdw~GzMkA3<xltEbZ2lcyM#ay+kBdE6DSuT!YE9TtA zF-B3D9k$#8i(^dpFT6O$>~hWf+_QYqierqi61A6O8)tEGtnrA9A|Eq8G+UMR-ovXf z5R|OaG_D`FMl>&=I7Z;qT(sT6;#kU&ahyBjIHh3w`TKV(0*YfCkDz&tVRO6wdwyjx z#$Hw~i!oDJZ>228n3{h?wU@;RaYkMV9?D`261NlOL(8F8(=;rLp|3)>PNOhJfg0Od zp~W6Gr>&?3LYWw0WY9z000^;n0tRHe@1Q|je&L^J8|F)Es1v4t9dKJQixR*iad-om z#Vi!yY`U)q?FI4m?<urap#sig0W@NezHp4E)}<nAp%g_P^wyxn&|{RA<?3T8ib3Eo zDMbMqM69$aMUnO&dGnGuk9;W#LovLq6r<xsI=?-(H?-wTQH%?Fj6%}|x^yl@Q4Qv$ zahQB53I{V`1){<tu7dYg2zG_43+W(=IH!(=CRh*x>A^|W1w=Ewu<^56isJbg8Ko$e z<Co;P2s7oT5ovdIL`uFCg(IaW#d<_aKAtgeq_7YKGxlOBig_SqQA<&98@X7DA|+)o z9l;IZ?}AAwl9I;fBR)SI@wq>xC?>(=VQHV@gWGS@d{BG5Io7sx;q+3R*z8+`i`20= zoP@=JRSRuXbtxAIDOkvgg?du~>lNCS>FG^5quu2N;!A}ELQ;E1dqUl$DKeU=H_@0q zS*x3=KHVS~Zq6aj6Ah@Z=$Vo69y@N-V-^Yv>>oixx}rYj_EvzzA^_@QfZP@Vc!@;- zuD-zQW9DJgn@*BKnA2$M3-)MFMFM?KCO5{wgtFUWcv%e3pkQ;O7s7yVvB30ZC}qux zK|IyMx_fmLyXG_Nx4a0&%W93foaEzX8!wTm+cWRS<sCBJ66owk!LWL^a{JcROR}H7 zbj#|#jCHdI`fE7*(dZYel;_=W9taj)AEz<U-=xYoj2~ze52bN>W#gdH$70+400eND zorwBlKgG`>Te5>jI0k#~livHJcdjzHYz3Vyk>2~7N8*zeGMtf-y`QTCEa3osHq(B* zhy|*ea^oe+=`s;1x7sMT<-tXwTs0scECHhFlFuR_<bHCYOF>+Zc!^8UQ{+T@XjXD! zEpu0gZx)Tr566i;mR5T61G{WfJg|F1sg2&I>K=FkQSkM4mfCcK=o*fk>N}t_=g?b6 zb@4}&L6+n$^<r^VdbMqe@9Zw9C}zJkhfG7^R0tGOaOVdhjMPEvf147@-FuN(`6x&M zgjPOK^)!r~F={57#`zK`LE}Tgv4P*qW`5sr!O9(J1xTM>x~2>Ferg#=ixCN2gS?-I zUGaZ|0uc`YbB9g#*Vmm#T?uuxx;K0M4taA6brH_+spEyo4)jSj0Bl&?4bXpj7wQqJ zBJ0g5GSn@kB3shv<F~LlmbfBgy0BckBvpm+Ig9*bubIbi!$+zI@M(6?_JO5T1vuT? z-&nd8Z!Hu3$1FeIyrfV-9hv@F-JkW33@n9S>=V66CB{p(@gC0M*6`lSk%4}w$vz(P zJqX_(yu8T*ZmKtSQ=VKLW<|JwDsv6@@Y$Bzp$e7WS&-flDP)2qnQP(XdzB!)v(!e4 zI|kXV5~M3iZKSeE%0p--EKuN~D`U&l2MzeJW_m48G;gko%}Q?QRV=ez?_hgCHdm@> z!l)3d0;Q0_rESFVn+0*ClJyfJqL@E;bYW6kTcM4u?L42y>Cfi~hXkhh^2S29+hVs{ zG<K`2<e-@hx;h>V#<IFH4G;RQr3v!W!wdag5c@MQmn_ewpZse5x>we_SU!}}0Rm_c zxGpk4?iIyKrW{^*!3xSf_A3al7S+ZUh}=Pze1tQH+#m8NE{}%<cH;36Un;8ZR3!{U z4g>yXPoc3KG;z^M4w`^GWm!?Zeo?0)?Db(Ol6Dxm1FBm>61_`UEV~1L%vSM-M;uTB zrjQ@BxfL3imq~`gdxB?+(ykK5daPL5dV6e}Fjl!<*N*s}jX?$k`#D2MY;aYhE<06p z(82|z5|A>fTO|yW#%!YmUJ!@Km01JN(XT>4S@ioV{Iwc&mt`Q{p%|Da4CI~#of{23 z#ZfLUjiP1NWE612+C+77`!z<R<zSwN+}rvof6F>+e%%_WFZAyf>a!GA8<p@xf#gzW z%?^zb&&A6iHn&0xqlX{yTu-VSnhon4BG%cLYJs2>HWh?;YwY?$RSJY#FhjW&8Ez!< zqsoH8%^+8D%!}A#1KEKVxpHw8xpE>QI2?nRav!pbpInfw*I-wQpInao1WOcF>t<-> zgNb*MJF%MD<9|;9{|qlQJBeIqVCdJq+Oo)%OXO{Dg|<OSk}RtVV!b22XJc@eKj=@B z>y<blD6Qp;PqXpNGUUcmTI|zVP$7IulIY9Cx*aE{CjW6+lNW*PotGw;00i}NBd^I< z3X>hz-H4i8KT?TP&ZxR<L3QkpI#OBI-h|FQ-1=@KXiqJS&|6xeL3=_sP$0BcQ4Db; zHqKGHQK0ns@x6Iax=~5#hMb-(QM!@MMd^#;;0EN}lwJX~8z{Z1n$oK(DV>dc`&83L z!i;kfez8rjy#?|YO|P=JZf%7&$qGp+IzZDabbJ1Om|hhE8~O{p_J6$Tb!l3kRu@}Y zZkLMIXONGpVjE5Hbb%G5_FO2d00*-mrJGx!g-NMe4(n1gYb`aw^gb{4j|DiGmb6An zRY14LPOGbcstGJwKe#aL$(ML08<cw85qn*56;Pbtjn3n4KKQcDrNomZrYp>0S&y$E zN&JeLg_2}n6-hc;L7_#CBw_=(WjZX%xl|-$dn>dxfpH6JxL^?Nh;PoTNJc~L9x;eO z9@;=+5Si0aDv}{ccB4m-?0dT9Gw@CeF`?8p!WIops6K_d%1;r(EVd?nra-HrCLO<~ z?8JsPi>paPw@>S4<AR*npOj6X(BJ=mH0k0yv90^a(x^F+7X0pHQHKU5$_sH~L)(P0 zsx0d8o{jM=II&@fXVr-<j`EyvVz(AZKDQGaS{OZC1uudV8@hf*mBMq`iT!Rz_h#Ns z>_`Fsb2_o1fuX;h6FdHeMqy3d-U@AllB{-O!+SQyqC2rOUE=e?i+!f7%ERae<=nmv z<B`F)SzIr6Uq>=8#EZRXVU*s|3Juy*TD{mZsd4Y3kCr2K*^3SD&4bkY<;8X&^+hEp z=O*<5xUrKzUpIEtDUvR(W+>C#EmLu8E3`@0$VG5tL%09DAI4XO#D@L?v;B)3+sTc+ zyub=`yRo5#iRpg0u?LlwgV5;#xUt1vag&!%?g!~2ZVr}2qAmK2t$`4I7RT%7>Bf#Z z)M>%Sj&5vdkt0djjh()(SnF|nE3`F%aT}`a#)db4lwuRngb>$HvH9F|W8cdxit2d3 zM;p@L*aP6+n-|dNU&=(U6}%*|O;qTr0_~XR+SKb8a(XBmoA{iR=EJU(Ze;eraFCn; z2256Fvp0WUzqder*UAgitxbu3Yv>-K9Hb2#*S!)EQ*9<8m;7+!#o?G{%$$Il4mUoz zU&BeWis2@T!!dygRcd^=+5H<%npF%pSsacxK`-;+`m^y{I?hfav3X?n6PeO%KErW~ zTQ@90yZ&r?dcTH~W);JgSmh85hkLFand5hN9IhR!NVAIJO02?cm0;4Y%v$&C*KpEI zhNDEZ+YR5&{ZGF#OeGOA*i8|{eA@`!ctPmIarFEoibfg*#iOb=*+%BK>k6w8u2%96 z-<j@U#&rX+0q!R6%+k$EE*Z)GL^<~9F}fry*Q`jPk#O67;o({b+ZK)k#zW|EbfI{d zderx6ehzq;SZq9m4u7%u;l{<rL+J1qiytNz8xNtws~0L4(ee8^$i;1ojfc?T*h29z zyGZ)stXl1@Ymo7kE)`uhEEU*aEo{KOtu^KIH#1pddN5$+btGW+Gv^w$l4W&jb{(SG z1CR4ycYlZcz0_i?`Wq|QtGR;dPjaXX2M6Q_mo3YW+_)^4F0aIW%W{Aqta?~8f1_uZ z&{^Vb)@psiCu9nr$90=yHGiS)Mk43CyO^-NId*4G81sBloU7&rzAbxP#77Y(2pfvn zrsRtgo(^poo%Cl**PZfbETnvYx(LCR2*Ld)lBx%zZVz4@^u4$i#w<{ETWn)gU4=Ax z)GMf+-t|VL+IQnWcyyevmaG`9A^n~S{>Zk)e@mMT<M2o=x4_Q9FJu;-jbAVdH}FHY zU7sEt_T4qkQuos$Nl-A@Nn-JP_IzA-tHvoD*L^n4hEuxUpdf8fh|ba5csA)}JR>z` z0VB<70J{s4vbMV>rypJcIC)tKYAn^Z;J-H_clR`Wrp1A<nMdFO(0cp=j07HY7$KoB zvrTBHH`6qFPVagHa)YHG$q#0As>8&d#9`Tucwa4*I4#u5^=UnDtPqBNO`O(xPV2bt zsu|$p-2m%6zCq~LNk#JE)!hX;zB>+KbYxv0aNas#t{cDC%H0_`o)fzrRv0Ov$9y#_ zP4+S|UYx+y)_b`~27S4(8*Yre%Nf-ed8Wvy?~A~`XPMwb&l}oytwa{gS_BxWnMj;r zGQ+ET3-f<}?9%4XF75So;E-OyK`+Va8@B}4jmpT4iUY}y!@hCE!3W#ofQ7%a)&s@l z&g&vb78^*<l|Y2S$Wlr%OsXiHAC5iPq}W546kK1KRGpJjQPSK_$3L?Z<Zoa!PGo1> zi3kr%|6<Z>+5?_PyhC6q5ZkoUrh@f<bA<VR<#p~P1{#_>z7Zz^&@s4Ke!b}km4Nl( zAfu5V6reCt3PXSiJNP6aB$916$QguFAcB(Cj!P3%4{X5cBf7ENR8he}ANea4JO|R) z)blhsF~=sr2>B!tgCB`=w3{_KN|<AsVvwdD2)yes(<K10SJf2MRj<IQ^<rk3OW^#u zhYt?PUOuSq#1d8Z|G<LxoquAaTlT^NVQ!B=f9D_(Iz}FaVJrZZP5&s#oGEFsJ7Ncy z9xNTi(=}gXT*&>-?%{fee^||5(xtiB$kp%dm7_GakmDEDa>`R1S9RL;sIAykKc2f! z@@~pjh_dIw8H8s*axP?Il=!N?tra@CO{XD8m%$qAcdpi05>L~}!3v6+awg~`<U41e z-emkhx2`u7w9o~yZxdMEM&EF>Fy97<YYvu+?ESJ{)&AFOJBdW5B7AY%cA9(vjy9T- zife&|oGnu#?IjUzvt5*-qe8|4vbuYK978k{AYVO9>AUn$m|UqAB+0Xvf(14jhc$ym zrC=}z{&2}?xh%FbH1|fMrOg6)MMayr7D&u=qe+zM2-S8WdHZaBn_DU0W5bjw>bUdh z3GfzlDS8io18MemR5({h;7zGAHW8}#K#2zJSXeN3W|GJ46d9uyalJPl^-E=jx0>(Q z<Jd&vBS?nd908^K3Q{V86u(3_+jqwaiJI~}WTIf|u2Tw1YjZ2~b%CxXbULcyUlR8D z>Jq4-o(`@Cl+W@m{CGqfovEgQ(^7H|b`_=}IaVX?9-s<MtswrJTcJr#{6}fCtWpzJ z{+1$4?0|BlibeijNsBg{{iFwf=Cn|h2SODR2u^nWRWCR64&h1j(j?70a2Qj6ODwiE z!hVx_qf|k9yKmT_V2q9r!esQo`5=1HrbzI|KbV4_n){HaF*hZs8}K~t&sb^s9GoCb zCFl`MB&>sL@wYN?6pw8Y_DO|Z)gaG|BzkZY=i^fdh6p|*LX!7d&~e%H-yT)q#qDtv zv*%Pvf=Ef@bD&gYCDJp){1ZB4WwM<h=dKvgM+`cjyxme{(1rn<Yd`W?(pr}zLpKiM zNN+TBG{g+loSpAfbQGXKp9JP?Dsgm;7grG<lT-q#9-1Q+c7-Z|2NzYa9$L6yg(km% zf)!wYwgf9kc3eATZ3v$)Oqc?^izZC7e^(Z!Fv|Zy!X(S<oWgVmi)nOPrK0(a_3B7j zt$3~#Cl~p{(~DM6DKV9sjq(CEQ;;*UmdAYo)6C`UZCfuIpP9aUi`#QN1eTqD`HizP zci+3iS7+u$XZxn_yWzU)e|pW6UADk*CnkIB?R&4>_3(q&-s_+4<)=UT%r!F~`tC;_ ze1pBZj~`z1sf*tC_yg~`;2ZjCHvLetQe>01`l}D?y;ZYx)cu=VVV1Y3?x*8VO*d#m zLq7*Wn9I=G5_`Krd(&IJaCEA$8f=Yk-l%V?Zyt_hj_R?b>(&$+?uZSI^XYce4zML@ z4A8qq4yH0nKshnr5#4IG3o9z-NrjGdbelLQ>jWek_3wx})QR#wuh2f#>nPbZ7sVG% z{rZbo`Q~ZYa7{fh!>0B5)Ua7*lY~8xwSMe;#FacjN}TIxoPud#H4%b20F-BqH?rsg z%L3SO_hA0mV1{ByLxSQWXIvhK`b1s)WKFsR2~O$ix(*|-k_pbu5+&o;7qcec9h)0} zsGp9pVP>$DECNkZO7`=gaYK57GK-2U235MIk5{beWD{xPLdFIrBh9J?Y6N^~K2AO~ z)*)RItmjF5Xe%at1S`8D2>&JLL38OTMu>2P@))~o!7uLy-pnsYI9kk^S@`8r{X#i% zqG*zDZH4}Gmcv9%UF!*n&ZoXL3i${`We-k=010rGUMyfG2@GJh!WcHtGzJ(~i10Hy zCsLh_Ui`3oU}Pa%Arj#ZKu+`s$Ealq0XEB$zJhw+XiNK)_8W&Ncpw*)rVHL997CdA z&<ODdiR*P%iNI}?or~IHMBVj90FyJz#p+C@A+#Q%WA+jD2rQ5}D4^kKRLtMp&=<EI znnICou7s1hpo}3n#4m$W0fe&EJa<+EWWFB)+C$pj0@`|b7T<^XsH-2fxmA0xgL4e; z)HdeHMD$(~X?C-&B<kF|e+7i-<(%XN;XAIoe1PYL0t(T9-<j>@gNF?F@j*#m88TF< zo<4Nm)<}JL{{Nr{UQRurF+Q<d`aS<E?9Ltj;v<ec>Lo9246I%gb;O>EE0A^<l*BPq z5__VO7_VnbP(ugXI*mGugAPIzk4CL1Jd@txvo#Xp2A6UJ4(tQm^6PW6WvqDLkXUjr z+OFn%D2){LVtkMyGycuW^fhs)@QtaY2Kpc|C=vMpTq=Aee%Rg$v$bFxJCc}F&;|%c zBKq&HH@!v7V;b{k(X3ur9=$AK)7$9Iw6qsPmM_scjiqz)2bq&U$ejEE1s{~@@BuYY z52DbFsN%N_$$~iDnOrW$5;#W!>D>rvvt|yrQ;q*r<v3$f4E=8!CP@q+;3>)nirzT& zE!wVSl?M|cfE5s=144?wSJ%USC9u;2guL}!3|lAcy<nEr*cRIWPT}SqODxGg1N2l1 zaL^+~fIUJF%~t{NyGj7FI8;!8BDH0Jbv-+0fI5`}8!XuU6DDf$H>Tm12iB47(?2{u zu|pK7h_|r_hHa*@oD-B0|2JMI2JlC#CQQ$&lH47YPe^dt@$HckYb@}qAH?M&hZ<>Q z-+`WdcN{a2rKTE1?}@M(O|^<}XPOG1lXC<aCdDL}AW7r%34RF2n8QI5Mz|uDu8xox zmRKy6i;-OvMiikS9$4k2z!B?3;oFvN3&0HNX%66XcM~ivK$o7v*cRRqNuGn}$0JmR z9}X}#3z5_7%ISb|Qn=l9+-j%;a{SQ%S1&vSd_|5=!*z*>a?X=JoobR^Qvx}+@h4ob zqUqcA)LIN(rkoD&3lyC2VU2<YMx@{e<G@Bin)av;FQ%Os7wBS^@&gQFRZX}UuLX)( z|GHMk?mrZ}f46Q{7xzX&9G<2JdYpBAMq3Zh`~2BPX!(pxR!008h~@jE{tRgdat71| zoeAZ^_onr|2<mka)CsjD)bpTOVoOI1fQlvI5mKSfE?i+0#+%`T+l#yTpzMHEw{r9G zM^}4oL~5p@PxRpk+5T-lULQLsZ9b0l&awHZQU4l?j>0GDRQu_hzS5X8A|d}-ziAP= z(+Wz`6S4i~R>ck>JppnF!mR}Z9i_y42=hmjS<hB?<ZRL@wY|67`(<xL``@JPHWl0L zXxmO%0<35pL5goE8YspFk+nu5+-8)h?GF~Vey|mv><|(lk0_ZKxKT_ga1N&gxSApN zJHwIlDG4q)<bFJdScgf#xPBkOL<uxU?}t-cIwt|n^dbQs01yeFQygFuFWP~dN^I%b zis}n$OW#9I>~uT=oQUce^V)ry^@*gc7<Qi&JH&lnn*|IJ%fOgnDC}4USIBftaD{;J zV3h*f;csBt{*G8i$ukG;R>d-1;}9%ymAjFjIexJU8K+h6x3vDg7$V*hN3lSNhHSu2 z3G4cP%f`6hg01M%ehZCy1a<OTBeo#R-bil0g|Vt1qF!%76vM0y9u)zFhk=<^>j}Y2 zvRxB4dvtpSd@qjgIhcavz?1tot-Lrro1!Gt-5&}7V?87#<j2cRVH<jtd=&SI*vj8z zD;V*ZmvA#)RqsVU(pk0N>e<O71kS_tVg3Wx_I2Th1@u7ZHn|x(ca$9XzGsI(k*$<C z&Ki~!lp{6`F=h!U^aCO(`IJo5RddEN?Fd)6&9zO2>Xjqc4WQ0JqwCPFE(x8eFI3E4 z-B#*Z-|JGdyWi=dg5pw7A+bevWqH+;E$2mCeD?U<Q;A>P#U~6g&&5aIU-;tFuAMGE zc?r%hK5=!3`evjR;C^l|J^{>c=@CB-<ot{lpZ!SGc&fm0gx8MSK?RQ7>G5R{EbJtJ zK-u^w%ZVDHulXcuj4gqZsdY}&2w`N&5=+gts$A~9g{g?;7Q)Ec^v+^>=H^ytV(MJu zyU<G4<u}Ffoa~25sAPmeluNIDX#5NJeEPywwgivz!*}2I)a)1T{mk3d0v3Pcy6mDK z-}b2ozO(&9!}jJZ4DxLJ{JU@5@#SkCea4q?*-m?O>c)Tg`@h;Z>mi1{eD$wCy5(=T zjeX>Ye`f7vH|_Bs-2dL$2XCDGmbYgiqU^GnyB>J@<KKVy*X7l0_6gq<APsX{Y{Afh z5f-QmjTinNqzQo=u)>BC?E>9I(u5NIJId*nh|)XMF3=U*4K5_A*0UkmWKjzl?8XsH zKx}dVlpjV%jT|>5U&f(!#G%@3vM?{b?Iz1bvH83=S(q-BY_cS_Vr6udbC4!Z9yV}O zsw#t1O~{Y*&*9AIl3e~j7U>4o=wMtT+N#HGajU{1D_0`siX##2SMR3_^25aY=Dz6p zj1+fPP>{`=*kYo&`XjcpGE&-E*=jAy%ZUc2B(-~$Z?DkC^PQE$K}$xbSjl)L0=0L& z^YL4j2_LZpEi(AC>3>|)sLLmOSF`cqOo*}7GKi%AoJlv*79u9-`<6m>l2p6pW#Mwd z*!C^NbTGpVz4B8yW3Y20mtN4ee{RKx{-?Xb0Bw?1FNw$wNvll)1f+Cl_kaAF?;ji{ zkJwH&{eu)8a+KHL6F6b*<nZv0ws5Lp50ONRtP#M(HWwtflv{g63CzCb0w(h_%dcNm zdR?mtJB$SfGHkQZM!-A4JERwh=ivL$Y{PT#eW1v)n?iClwU{PHhYg(I6;TthX>g0E zy7<AAdYbCbl(f<N;zaID-Ok(=4%IuETHH>q0LtNDgK21nppAF&!TsPFKBzScVJw@V zsxz+QYU(C?yX<QZf@laN*_18iJ??Y4PIqMYx+(|(Zzk(0YQpUWFy$&Ep8>x{sgmEm zxfKSrs|PgBsv~HQKbH*S<c7PLoAdy|1kRu+D7*-93-)r9h{CTtsxPsc5NVJVCLyx% zlhHVe@3sh4h%7>G0|s=i;Er9+9oCaQ$DUBc(2;5utXjgr2f4tU<BePn>9ygrbTOpp z+A{}8gD2_W4SbhAgYEe|;%&kBd=6r>R-c2|IP=511UBRDCH!f5rYp}5^f^v$Bu;Kh zxnCV)VP3qy(c14OGvhg6Yc~Hub8iKQD@rDO4o12n2p2>Up41yg;@O1pgCQMW6SJLk z<kwTk$_ZU`cjZUIhB&Ff!wT`V0@N&i4q`ovm0T^_c*V~+-A$Nyaa>$ii4I+s3`aJ< zKr>^gFn<%Epr4H9CDz^C3Il&$b9=bKlAHzHSjrvP8k^XHjwbZehfAl;wzqqA9ay=| zX)_Ey?NrQ*NeE8O$oG)l$XgfKNM)OWIOmL<yMVb6v_k*kZ(z)=u8?qXQH0;}>Gg&@ zVAI60T|PZmnXs|AgyWCbaGwe9K=HgY1t?D8k~o;1{?nsr>)Cqkc`p3=2t6j3xo+Xd zm|P|LM`MphDeaMOucOg~-#G8b4$j7YijN@15L9$J>IUF2tTx7cF8@ZQVPj2Wy>)!d z(deCRY2>?N`$MBE;v|hmdVFp^G_sSSXY0w(^}IZ$*CO{X_f>?)tbh@2KmjK_;|U5- zw<1lP7#YSdti0>+i-Zs)M5109p);bY_oxIb#<i}BZyUkl+dL3PDO)>`JI6PFTI4Lw z@wT+keTHiIK2U-$zTFwV`H6H6#1FLvky{!O*|NF@F`i4LC*l;0U37&_*=10~TaAMa zdN_E49z7(b*P6VD(ZG^4!5Bs4RTe<f#1~%*hZ$x;ty~{rFnghAxm<O`SYrqK?MvNQ zp-Q(_NXWGd{u~;&SzKD5COEOmtHf`1yQK!MEyY(u3*$q!P&G4&7;WM8t*wgJ$*W?- zvZ1RA<5owMX^wLYZ>Bkd5o3#1SmZz#cBY02!@W86vfZF4F9F0%Zr35Nwb!O5c9%Z% zvW4$SK!5MdnCKELLptn19g2tV8{)DX<iwZVAj`MdU179HWcVjc^PbBp&)XeUPq0N^ zN-hX?J4zj(&;g7ND{+7%s`ebRwZI{~9X=kId_`@&qztXDXK(A_fq15YAcdz<&$h@j zo#`Xw`EC9Dp6lF;^?P|{_RQh>{W5;f+*!G>EZZW_FTgWzD?|SW@q4BP;fg`_FVDO& zkXH=W2+1>likuXM2N^|@mO?QU$6qs>>e)9Rx(mvLZ~ypD&y^1)t9GDUzmdhRJ3C1l zABDy|-Ct+kt>pVKy_d<ij1NHT%Bgw_(f!SLP6kw1+0=tD&ZV2?VqR6-TS1YmE79K0 zAdrVlGnC_!G1>~mnCxEDh4Kt)bU;{w(E&*@=?aRET}|EWkyxrh4ZEq;<O5QqR2@l@ zNH%kyMrcJMEZHQ2a#;lBa?NSbc!Ws|FdTw%>aNm}4XST$q!>=eg3rw+ej>RVkJjY- z@Aa8V6FrYyc{-6W60B_V!bkbW!bf>(#1B``doB+xe3WlK<2mj!%E7{hou~i#1vCjH zq`oe$UROn?Fds@6KxZp5qULx+MtW~-^PQsKbqgbz`=|e)^A1mRp4|}ZI<LL98!2cz z=H2DB-R~zVrXJEgRVAqyXOj=Qiur@QhLJB!!yF-Pss5<G@*0Lpk4mecVYWSdqU)DN zeT!!yk<LzvYRPaVogGCD%7CYYH~H~9f7hpz>122ikhh3iCTKmoEllQJznh<pd}FgY zMP@@~%m8P8HY{Jqthd5!e$*N|pxLOk>*}jYUtZh_<TQP$IdJpPmp9+wVnlt}pO_&& zU?X6CKKk<Q5fsyx>WeJ0zWiv&=M?ET1EZQNI*RgT5ndDJQUEL~?%-V>+n6ZpAsEM4 zmCATmY|~a{9HBZa7|CO?O-W_k{8Ffl`IV8V5C81`K^<+cbwMHFM~YD4nn@hU<Bvs! z^jIDa=1Gpb+-5CxsAS{iP;9-Zt@ff9ty;AzNqRr}m}6fyc--+XKjFj^Pdw?QlTJSQ z<e{OVQ%*VM)KgD=#c8j6<*Q!(>b0+V&1-+@mrnoXUw+-|Uq9SzX1~&2`CU{{e!oiP z7o35pvr&%R-~6g(YMik=+xru#r;6h$wG7v_N?oHZHHiMNU^ijnflp!&)L!X=HPwq7 zS8+EhDC?g}!zI?R#fBLgP8A#Ss@95zeb(^DU1-=u!(GLOebo&e)PH8fVKm%bY}lK< zq%E93VyoAq)t+LjB^9k4$fw!rb!fG(*s8Ch71X96^Y7W}m(gnE!2&Y7vlr`Pkd5D0 zJPbAwX=VGAr_Xs2-0>Lbm!PmEe6c<o`}P;rWrI~mr7@hZgu9;NsR>31^k8!v)je3e zRhs$26omK22+!YX5t-LuATwXtJHjP9v)4iCUekK3RD;W=f4s`{FExm36X<1qv!ESz z#sQwz!*gpffY`birR1UB6kj)o7O#U>wdl*v>~uhKT{R?tT0&Xq+<-Y<$q*%FGWKr3 zyt)%Gx5U>C7`&bU^I8CNdKFU2puDyS%B`_)1LaknK)EfxZlK`x1QaY>*^c?*Wo;3d zJ7Vt!%qu$qb7y?rfWhktFs}kIm(CZMR~3QzXzbm9Ijs{gAB(RWFnB!y<}?7)J3k_w zRs`h}v2O$A6`er2E52@^;B^BfNg)K&({G)o0yz~5WW2LL3sXmdw)ZKd%I=Z9?~dc! zLNEky<M;Q(?@icG#`i^GKNSeOteScSVL!EquY2PFhOd)4;p@Kmy5S42C!`w!B+KSU zx}hQ{_s6~sloLCF@|pO$fr8iDlI{VL?gWr-Vu7TS_nmav_z!TEGmj9H9Uf+%$D_}W zl|DTVpH7!P9mJ=fvQG!<&Cj#_vCC1yvA#U}!ne_LgQrEZ>Ay<``2t@$1`Y4FPY1f2 zkMOfKY=~9j5oy@XhCBWtY4~NnghO=M`K3<>@acv2DGtwkg>Sx;-SsTbz9`+Hz#^9< zO!8~|lIPaC!_!fC>JbclonP|2Sq;<q1|MF$Jo^%R0FF4TFNayBT>Z^RI^$}s(}^a! zK*|z!5_sw6d2#hgMOOM&9KcwKWjNa|VUNbwjg|0v!qq1LlF4dFf=q`c?1UmPv$1yr zM$e*YpsBQ;J{Dg$VDNeZ%<%x`hWP?>d=Z%M#NG`UrVO>k%oFi-0|u`rzzhPI8|Mqm zU=f(_#oi4VW+Al&=E?ZF0fW~QV2%YaZ##B=+UM9JEPoX{H&~dd)fSfT$JY%Oyq>^v zG+^00PgssF!tzw?++g9Bbz4~eCcbX4;B|wgyol|km?C_UO)gLq%KNSf#jhzR!yq#w ziB*}Y8JDvkL`WakSd|>+3nj9mc^cdNu+&D11!kU|S=HvBN^OuQ0N8vdp{mU@r8eTQ zcZBVyr8eTQcZ6;8+k)?BIFJ}$N7%NN+Qi(7k@T=Y_i*Zx!)ab(F+9w^%?8$}d!m*d z!5zSmfQ+ImwrR`DJ@m!~sJsR$O?Qc)MLKP1g`Pf^rl0`VX0L=om)Kj9kWX+$U^cj) zQ*p0Cx^!%dqg<?Y8Ws-|moFM7LQfxmHZc)KDPiKX?RY{tLbkHnbHrEy58TCt?JLJf zvR0xsvhj~5sm+0!@a4kR2^P8VHv)d99a63dquuSeN^}+tf^g&(e!Q6BJV+F7^H`hh zP9P!-LwWCdZS<~(%)3Tn2Er6<=3G~Go3AGJ-C9FD%+usmxPZhtsxMwuz@Tgj>p2`~ zq1HdGD7f64TcL%;81!fiLOQ1Rv(`>+Bqv>6v9>!Ab8XKYK|D+Ww*twIW(c1lbk?3H z#tSo&+<w2HB%9s3rZl6_B1!G{bX&LcR;jrccJ`rKgj}Gx1O$-yROok0EA)Gh@(Y0u zWpg8AZH+G)090%a01g;%B}3!|cilV*d-av|E>m>ORa8X>UK-4wR#W#)Qn<Ln#>Egv z$+A`FYQ7K3HK0rbW`+!w2I@da5GYJh9kK}LMG?-gcuinwL^Ugu4=IitUROsqvFT`R z`j3amZYKFm3zZNw4f<4F(4wq8vSePnL*SJcb;%Dxud)Ts@@E!iZM&>oTVNP&9K?Mf z>V#p!`ZDSVIvb=$A@^Z(D|BLZ&B4rJHp1mlu|2-JWu>4(cL(T?wptSc3x`9{B{tU$ zR(@>0sDh(`D^}R$s~aj<glVv1Q1B(5sWZ1_Ft2$wl6=Y~gXjea@J{i~%53~5yFUx9 zF%EL);chKQ*RVV26H3}jA3WCNJ%b2y4_qOm;E@7TX0Cw2$8^72g#cPv9kd4PwOFFt z`s`?MaEV_FOm}I-^beKkG}AN^GVEKIT$^{qwnk92tvp-!PJ6SQaKfTPZFXa$WLyyk z`hnV+lKxY*jU#y?_f;zSrONf#bLf!&qr6o(a;d>uJ91e*W4XmR60Hmm-NM*K^6iN4 zZC9?AY3Su1)C6LHhg&}G{S(OZ(heuOQrqxf{{F?n0JQM8>RsSP)4?d@WEZdS<`pI* z;e3(iBfap2FR~r3muO)p+v7T(yId!oJao#buXx2PPCE^|TiD-v)vK_<^;&Fiz3z3` z-O93GIpbG<?G5YJ{j2}$U;p}V@aNzB+x6?$zwwQ4{7wA4=}m9?t$+9Le|y94{Lb(E z-~Zuv|KpqgpN;?N%rnnC>#Vc>Gk$*W_kQoc{J)!i{}2A~5C8Cw{`gP+^z8rdzy8^u z|M{Q)#b5lzf5XpT{^ehu^WXo+|2+4+x4gAg<G;7nHrKY)w$`@QwugT^Y9qDt<=+K0 z{=3lrT~y=0i))wE-d-E6U0S<L{=K7idF`FGch#<_jn&>=yR!Bk`FB-~|E{)w@2&CQ z`)cF0_t!p9yQX%n{QF?-L$&K_6SWW5uCLutyRo*jc9Z<Oxu*XnYy5Xh?IX2YYq!;I zuia6*Gxu+*HdXs*?PIl%*FI6ZtM*C!`&4bZc6aTb+P$^=YM-v%U;9jLSM9U-_W=Gq zSbM1Ux!S|{_xajP?F+R>@b8PYFV((W`wISjwYIzVwc6M5?;Evm*1lDH6#u?mo2@-o zdmR71Q+uNJ-P-qf8<2W$%{}#UjnNwmOYI)M-`vw3>i3QJ;C$Z}sN<cwQk~xQWDN@w zW0+iTo~+S1MzxmWjV4=Kp=;Aqcvat&We?^JTjB5i)i8LFnB8-(W@gKWUA*%{3*PWD z089goX%+3`dYSs~?w4~7^Y{VQDDBdWAbJm8LO*Ky?GZ$)((_${7<>lFFT|=(7gXF% zSOokVNr<QlgYsPj382j4OXeX9XaHfafY|8K&`eltNBvX~A(aUi?9-75kL90!C!kD+ zG#>;Q;`3hU{8FU^rjR@yh$8Tsg|VleH!)@fTWVwML04*ISl{|(?G#WOu~?1<M(Epu zT8>&Qk;Rn0ZNuQ32EGyhiW!HG%I7F$+N~4a=VTeN4_c0iQTt#-KLA#{VRG5eThS+M z3K+CHB$E@rWkce<pW+AA(u9xjh>hu&j%2N$e)_I&vC<h#5gdJG_db?DLr8?g9630b zd@m50@A07rc2uuqRDNBlun!j~5D~2&9dx8ei+y2$Suw+ahZ-@oL@;p=chSEl@RB)p zlSwfAZc@WxVl2s#L#|L>ZifBZt0G67|NJ#w$T{4t90~>}jOZ(HEBX(WjCA^sAR9K! z@hj<re{)dwyn)`VXJAS5`;6>;MJI}Rta5s?+7v!^4p`}*ufgYEw$CSfP_jyKGSP!Q zf$y-dFKS<thAjEwWPJVzK37-#Bz=;uOX}l8aptBz*pN(5l_6GhP#?kqR3AbfQy;x7 zrNw$#+)w|4k^!g|8FiIG^gAhtezl<_R?4Bq{JU!P@!<%fsgD_g7ziS{%BDVqP^LZv zN~jMyTpUtB!cd|%0Gg^3T%}{mi%<fZIn~Dv5gt<?4+oS9<|yNaLjKx^=aTw35!m{i z(bX_XhQ+H3S09)kR+6efFG*K$*d`<NM(_s$^dz__U4f{7^%5XwpwFg4Iq1hlWxXUe zZv^|S5*rv5Oghn_s0G9Q30nPng(!PUe3!{;!rvM}HNx-85gteuZ;_A*6BywIViKN^ z&zd&bTOVMIEUX^@$-xxx`x{GAMsSuS#0q6IXp7q;T*d(R2NVjj=3oG-6Rs+(oF_1X zGrNClC&Wqx_SHb{r-LNTkT0;;_dRi{7sx9dXhtw`3ObOLRK!^^Lkjg=2Xej!Bi_pq z4Ou{1ck`F=;oY2Ad>QyIs#0Tc@phpt=P20sv4}b&sf-ZFDDpd)tP-g#W9}4?k}RDL zK&JyU?jpWGvKc{bXMD{FX_KW{@P*0q_b#<O6kmK1sL%&6M}MQcL3NB7zZRhpSqAU# zO4fk~(g*+MAoeiTGf>BR(4D;%I{a?x@J}dP<1Gjr=7?Aa!!4rjaZF9MelPcGmo@6Y z4SL<nRv*WdGq8r-<a8fD`52K<&l)>c_ht{h`_}KB`xaVv+2`=*L2rSGFx~a1KRsm2 z>OTJr0_|@?vK#$bV}#aWy}@>k9p_Tst<kxBJ~!*$fo@*E<2-q*H(T}=p3Ljcp3lmU z(*)w9wdKuk^N%UaieJ!#{ic0D@P_21-Ofy>yBZZzrT(Jgwz%f>@}$A@&(#xZM$EqK z`FhnK66vUncCqt2l>wmFMbCp?BHpf@TmzAP-KwQ*gP)vrgN0D7jXqOi-8+<Q#;(vh zc{VoIg>_3|&ub%SCx&EroKCb4z!0!ic`iZjpLzjcW3n@-Fkj{LU<A{Y(`^JZNIi|& zPOFnDCyvUMYXeJot5*6Vv3#py8JP_Gsg6VqaYYUQ&58_mi>D)54!6h{qPbm@3pCVY zNYn%rH*-epLfe{F!t;!ilcbdiMDk|-T{U^X8u4bDNk$1)MmzH6tP4y<>1AXU`1huz zI<vpNIW0!3Fg3%{^0f$sQEz9CdYoV<>WM`xNgg*E7CS3IMPQ-;%ak$SMCze_SP(A+ zQ>16l7X-%%JQ^qPm`3%`hSciRXtvboIyO?phd67aTXfv_Nc(H~4V0opN3)ZqoX2DQ z;u;wT<qGiSc~qISOyRGbi}t;GS_%B~Bwu~M;uJPB-l2WSWv>_C(r|tszucL@bcfJI zWxRx4QY%W&eTg!Die0`JqeB@l5kUWjpIl9NL>UJaOKoe)xGyT>rLKXOLC%-j3!;ee zQiE-%i1B3`Ma;MQOcD30BHlv)u7V=|Mjd~=2Q%UqRK&aO1Cj)~aWBM(q-oU?#jI0b zy#$lDsDH_d{QF2Tvm!YNBu>~Z?>0bri3)eVrMb2gD!i9#2uj>hh5sV~zEUU{EHwA{ z-BR<rSE<6?xGbu0_c*F${OJg_$@sgK*rvjlwo%~%IaRjm99xX)JTF}fo&~^DLsC|r zek+U2ucxWPmp1xR6`rm^3Uo6lfqfB7Qvz26<O+`GPy(vLxt_52EeuOn;Vrt#?@}y3 z8!8-x+`=I)mmxT~x{6{>?%+3<aUzOE)6Ar%z-iA_n%nCkR8w{9+d>4)s4Ao67h|I^ z47+gn)xFqCn{qp$y;M;JIhi5}At$@$VN~uCRhQ^g&Tp3)l~eOHDo=K!@{?&i;hyxt zzY(KyFN}K_mGz8^<b?$OVr6Z-h1v%2zs;yLYm(Kk!6&^;CtTL(p;37;TU~@HLyxJ# zy@a1!NF*Tg)Xu2H1<zts!cpuE`pxXfo@hs!lB+N$d(50<@p+n)aD!BfUBKZlfEN1- zmDc%~55J%m`=Wh7z+g@aRdu2?Cz)qSoSQC+B<n|QZ<LLwFeh=wl{T*w{=SUEjwtCN zX=0bT83|Dpv$CBz>8l((p<r58bM2)iuHB&oGfqwIjg)J}oP;hC>4sn_7n?Z=ts>yM zSqX3eE>4pOj>y2Gi#nK-m@shH47%u@5lquX+X!Z`-Wc3)#V#M?Id#w!PU5Vfi>@Y? zw<?yOC0#VmAvVhp1zmJ4ziDwIglpER)<zf6WOgTE4*&N35nZN>WRwHbMb{A8w?YbK z$(}S-G#&X`0+i&pV(e&IW>!!|)250h7pjV`PqoiY>4SeGs;C7OWU8pAIYHR}CqUns z;U&>T-Ff#mXd>kMENgUA6J5_n|0D5kZ{P?29T@0tuZJ{JEzYg^zWrr|giEENWoS>~ z%aT3SZJMatG!fQK)kN2E{BxE!zd*h7mr)Nrtj~nY)sW6|5!BGl9P_^k)j`>3NekUn z;@7_rS{;ZIN|cX4?LO`PE1{1>C`}3d8K4Y0Xnrm&VJYaKj}gWHRZ#pasi3<!!r2_5 zpn>k@7k`4!=c9nAWap`XJ{eJE3W$RonEsh2tbZ(M!a6u%`e$k$`e&+2|4f<wnV6^k zX~=S}J7mNbTo@U8)~w6jxJXA3Jl>Nn@qH8SoBh6nEV!d`cSTPlvuJhS7cuvC-2>Vr zm`k^Su$0q#k@eU_M7Mz6m1@H)(+B@Xw}23YZtfyF|BLjEFX!oGKEOu5m-v_u@`L}3 z8P=&1fA%isXE^>@%bO2T1)dol%+KmGrble=1Ao)c+*1Rb9{AH)cl0kmABkc9C5BLm zFGdLG<6eG|!2Ty;2aw&hlDKP&=UqM$VK&j*C`2|!d5$=jUx`qfE`76ORuBwTliG8| z%`3I%Ds<_iMDc$V6hBM4^f8X`A2>ommwuOD{0=_nH**<t3(%#HM^qU>Imm(O(kBS( z20;_VV%&7;<UDlgWR)(RG+jDAPhA@JDmJG&YJ2+N--s=@54W}iTkfw2`)>&f@X|bO zxxZ$kHzl^*Q~cmJfq|csEw_i`zj1l<GgMUTqb+xzJ}1)?BhHM~sCy!*=I2hrGw(X+ z-#W!}(f-BrCjYL)s{ckNav*lx;yaT+h)|mD`E@`U?702*CI1&u{I3PY&yw!>2}k%> z9HF3lHj``KfY0ZndlukG{xqV>bPoqPFx~Su!uo5@iDRaFCL%+(^&=;$bkBt8p0S1M zp1<u%_DTOCeeiEY_drl%NNYP`&jbZ{X`T_S5jJWj0j=}-0qS4OC!UqsR2>3aReogK zh}Jfa|N7<4d-(fxQTKdGpVM%b&T<j_$cx!GDr$g5pFKbFqRqt^?CC<Q1JOV3N4g#Y z4{GeK{bs28NzD+wx+H>S3g@)|Yk>*}Zbi?Q5JP_#(fJxdCjeqNO}e97K!E}T#UPAY zB*h>MoR}08eW}~B`##7)Ud=(c3Cr-Ej)Pqq?z3OXuV00)%>zOhu)FzQeuyFsWlf}5 z3CDF7poQKO@n>3y100wZx|(plLJ$ZGXw<aO_&l`Gc$F3!H!U<ePc3wk1&3!f8KQg3 zeXHR?jgY<;55n^&KKZHd_rC?P)$Z(yZ+&(Qe=>Q({$#p?zCbmCd<le$Xv~a2E#bFD z!;vk4Z|X>@tY=F{@CVWM^;FkAnm+h9^b)(XB}fdpiD=S766HNLazu(Sgv^ma#K`y! z+Kg-f>{dFy&JJ^D>r9l$k4h2;NdD^y;E7KD5hMRtI-53fG*(6aF(W@zy<T+<WHsc) zZpaLiA`4&i%dW5_?xcYQxwZ5-nH^{`&omrFP`eId!3ZE*Hhyp62QQ;w!YLP?vAq#S z9W5%^hj@GpP}+7cKGTh1VH+mkz^!c?r)-;mb0fz;c6swI{yv5#w(ggFOrHstJK;J@ zt}k(ux0LY-zOLLZ>1Ih#%f7jted7{oa2)V1zBM>c?A*ER+k_L9X5g&`Y=d$N`E4am zTqCrqSYN<BVT;c<ON6_iC3Bl47~LZQx~_zzjd>^A+!4XD^<@BHh4p2wz@%hrU`Md) zpa$``;DyB7u<0zBz9|a_i`NEx_5+{AB#lo*uq{c0<w82Q`DCdL3*JJ#MJ-br=k8J) z7QyY@=H5~p7RK$|=KfL}DVEz2wq2z*tbr@}p{_Mc^Len;hD9VhxA|PDjg(X92-{4l zjg(X9*yfQ^8#(>hvCWrDZKRw+$2MOrwbA;A8cvn`&=TIhUTUKyQ#-Z!W~ogqA~4IN z^M2ktUrwPuj6+y*C{WK}fjn($Dohqm<nUNVvk}hY3>NaHH@89qi%9k_#~BLID1%g- zvH<W5jo<_4kL65&#M1Q7bX!y;Kb&Ib%ZUNGDu1AvM}z^J_sGAq*7Xmkf)@{-Tlxgf zvVx1FAv_YHe}|q@r1jZsl#|Bw*zxG$z_6EEFJibpyjcH0t2cG&PYv|4dXcz41gDpI zepznjk}BR(#{2otf58j!^CHxTjMX7muU><nqmMrNm}8DXnMl-$JpSdFo1Mj)tvHKy zTY>T{Vbz@VqgXu2!Q5f~=3$bZ*<XvLCUzsvy7VN@t3L>p_Y_m@H@Ct_#xfk~xb8jO zJjF|s&?GI=X-90bS5NMqfF`f3_ro!Ob@w@@NxhspCpNhtHhEC@Espn5aM~TKq3u|3 zMVJ&b6iY(#8Sf5CtA6mk85*u-=tkpEPb+k4F=>Z9yC!_i>gBMCaC%LL;crw)XtLn1 zmeRtJAMziEnzDi9)(v0==kluuzcLQ~cRDx>96*l2Ppg~r^}6~WHR|zD&2bn|EEBG* z0vfl4)`-pqTI{@3MCE(q5SM7-lGQTApdH2LaIjAdc>!tA0bchfgS~m(5wQHak#)$w zm?b`S`|<L3y*Y^C8|X4?ee$q^gpS9ttrh}bl<9Fivx$-1u8!nhF84rPHvP{7g`Tb{ z_4LxDCtll#d@5co%ipO|qOpwA_jG#%S;qicRuvOQ*hM<Qu$wNNZrde#NP(Kh-y#aw z;u6N27UNsL^cN{tgB%?%4{<i=w85F~Lz+^v3mLx8EQjtYiN<wtS|8M6>_^J9*vt^c zw#&NE7<U&Sq#ZhqAMeG-hE5Eq4>)OuvlpNoXhqs7z2t990>|qxfRJ4LZ8_(3I1m4W z#CVwn*#Iq;vX*0rzd@dJNS>gmBbV)r6S-V<u@*jaDPkEBNo$qbbz=PlRx>u30vi<8 zr<-H1rfjq%8L$nK?9BFH7Fe%75y~teEji{W&G6iTz9rmbN>9ryr1k*SNw`(X7MtR& zOEbPSL00&FxD*a@#OJeZh#@|nR{tY=T&v%Pt5T++cKLd^55q5+JEy?#ABj`H@02xN zIK9VuX*@t!z|pPoMZ=N5=u81%U273=)m*a1%inT5inJ9T1Hpom9e0#D?$Kc1R7c-# z1D8uBXfZWYD#C6+Qcy6q_v`?W5F%dyhESx!D-z3-LoBH-{5MWMM2j)w%Sm(}=7&^P z^6Y3We^zx;NT&kJdq!k5T;(K9$FUj2E<)lE!H_5enNbcAp=KHUYo_#Qe)clCCFb=2 zOUtcGBnxUrVim8$$8u9-z#=i~%tMSirsob-d_0oYB30$98dA)H_lV^bvn6cu02D5o zRBTGx1138HYz8a>Erhp-#fd5`BHcl-H{!>zjEFer1N6c-6`tjXXw4{vVli6=!^2Ce z>`{b7U2;#Hw$)T&(I4FSpwd1Sq<xms4#2GkykQcLH;tXe%)$N%c$@D5Kjo?z_r>u{ zf;gVNzLE<FnypfH!BkQd(*}?PYWaL6lc)oIt0hU#2qOH8r8JeM``bzruZs#NHqa&n z0>qA^wHDY*9)M0!jxu#GhD^)=@KR-z&y?nl;VLVme6}rsbTSGCB~@?La1WG*L*vTf z9%?%r6VzeZmaTk3;l``zGJgO%+B6851F@1yR}j-|{IOz$VI~4Uu9g&vfkAR2=YBE1 zk(Pg{0`@@5zo--}wERnGWsKgg{7ZOmKILDYYFG5FJ}jOqF7uWj*3U;7r(PaeZR5Y{ zN*-q={_CLluWM?s@~Xsli>?2$s111vuR?TTtH7Jp#P5Tk`RK;NN)!7*f0q;_3sZzL zTn*_+lA|cs6;3P_MT1oiw7a<-SzQVu&s-eAPrcZ|GJmTV`>|SOoB&>DPgfWG&GyKh zF1UzHFf%xkT4YcWjJbCM4PftV^gH<y@?Cj99+>R1m$E&#_`MSCV81=(6mo~~#~d~7 z?kj*TPX3HvbSBymRNfU<1vjxa*%IIumRo3Ml5Lc)LlHlFnMxZJMe!}sAXEgLB2^34 zYgNAT90|C&6(GD{Ej4fh-fw6B?4t>&TmU<qCcQ0yGwp5@`$2j~TrqF~!uJW`dpZf0 zqNgBOdlZQ#SzPHb^>cVW9t$;P4Qrkl6RnzD5<{M_K+xH`?6qph{bN}~@)9S->l87a zVf;d0j`HGCh_8YHOtdNj+QrGY8gT)=nL!+_a!CZVVIvRgHhoq-*t9{H?_qV(VI*z@ zgs^;g?;{rDb@(Og_&IJk5M(D(wAv!ow@08XN>0AS0wg{fuGKTH8MS9r{1YycE9Wr( zb;?D1Drl~9{$&z<uKQ3x{N+ykK1P<>YSxDeQp7TKNn~)y;|+|+A@pE7ehuG06yGf= zKR1NJg~A$x{3Cp8cQiBd2Rn-_FvLH@_Y#WL4~^X<%t(_pV7tgHCLLk_ds{2a<uR=- zrv?ZZ$qS?t&=9eN?dE{23V?`)*SR))t^)08b$<@;N?e!kzOsI__Jlv)h>}K4*2_VL zKOz}IdukTlcxoSne0{C<R=RVh`)XZ!Kt_}cFa>OZO|W+Hk2mfV!!=iK?R>IDPlsA- zV2Oje@FSsO1RaT-HmmKI3OqsfF`f|d9a5ngl&C<D$T@oJ;YKYCd*}!W4-*MQHX;o| z0i4rsa6`Wzp99U=PjFOKTq9QU6<msl2E9ss9UiExtuA8~4#6g_E24l#p}eparu6+6 zh|{b>2>}K=IUA2@QP&9=f$e13@XiGcwVkWLPzgONA*C;5LQc@J;H1B;wcBxRmX~r2 zH4CUsvg_&39IczR<xls{Lkk!$X<=1dPDHBPWkiAa=(u#*`!^jXtH8X1^dG5-xs^@b zaw<U^tBD+tcCuf?t2+7lc>EkCDWzR`)#r<&wE`}-wZgcD3%2KrBoay>iQ`Q(OteYZ zIMr>KR>Kr2mu7p23@{S=w!7BVdxCfw1IReiP{IHhR31uZAi27qfRRC3GGzsjoI@sT z<bw>lo@tN)AWG*g#29>P!e{=F!UD?c!Ykdc9MIhR!8B|rOI={pp=80N#*ttJnAz=~ zaHqQ)KI4da$l9})!u3{rpcx_$iR~wrA8(lxG0j>}9c?dD*n~t8`IMhhVg0v9{C_RD zNJd<3a9xOJg44<zqmuQ*<>2~-UE59>nCl-@<6swlL^aB7?q0$$xli@TqqKG*Xw^n- z&KAUmA$!a!?6Q?_-VH5`;n_lO-W?pMGpHUEsYUjARkJOS{BsCZ?(|aBV?i9o`eB%f zNyZXexNF0^vuFg{um~Ph^m%C7`=*@(eHaE7(RnNyfGY?gWIRHR?;3rG5A#f`-Ulcw z!1Z%Lm|p@Fpmfx>nsTK~mkM5(qnSgt`@c~bM<(Gw4xYy#xgdage=tJtZw&Fk+-d-U zE&S{WC~hf9%d2itr&$j9vVekOjYZ>lEv+Hcgei};2Hpv~^m5lTzh5Pq2DA&N#b_(c z!YHNpgYfMJj7b{B76{@;M6nIK5+{Xi&%CeE!y*7cuH7+9+<_K=*h)4eLgWh$*MHeL z&IN@oGkD4&R*kMVf?7+0LSU#j0ewee&K75fG9j>HuYn$7mkEMk><%@0bQ_Kp@^BYs zz$@Kl$v6OOm*rIFP2ID$s6Tj5u%;bgaxkow(TBPEQim1pAQL-S)#k9N&2^SV2vE_( zun1Qff^6?jFJtU~2HJC+5?s9eS0l6N6?T7TxWr!1!?k{XaLwMSa8blWnqGo|xptaM zwLG&o1l*w3$tB7Skssd|`SDV{u21tHT;*4_d4Ft^-v1aXmFqG(y+sS?$FZ)7?QATu zpmXpQrT&AlP3{iJPVik9+k97xsl*(Jo0ct_-d9~;tEIaBVC=f{=a55kH)tQp+@dzR z{)vLF=dNSZ%g>`qyviCqVA)iJdMa2uTUwzDQz<V|H71L%h{sy_bG;bMM=sB1jDN5) z*q_2Edf9m}lzESNc#yl0p-N?ypT#$UYJ2!#Y&BFCB8Vj9V6C)_tgs`(`~{6@NLmzL zgdQ=cfPW5R1woXbOALA$e$&p?y`i=%)vbKY7yD&>qe;gL!Z{*7Tx;UNj1f^(`Y|i? zNpHUjC3XnD;|0Cegj-dp?;tB5S3>G1fDl$f*(TC%uxMn{j>#qdXTKD5K&Bs@eMM*k z>QeP`qdQ#8OXLQ-ipaHtl~&^37ezrXGP;5Gs$%yI#Re5IwvZIln73#`LxEa;U;q%W zq_DWMX)YGzsR2@fjw@A(4mw7LITJ$HCNv5Ag0Gq_(Xb5}9dH<1;*x>E%hHj+<w)W# zu%V6_4*Zry^a(lZns%GNt5dMzioy<{T+g|yk>n`^;rdP2U`eA-p1BB%`f>u{#m179 z6tq!fiEJ#HFDaC@u@fAbzLFIAvcE>Nu<pM<GJL8tS;<U9ih5R7=fqaHCbls>ruxz$ zVjB%0MZx-DY?ITM`kq=@#c{5SZA$v`$t4TWm(Yj}+P)fu?+w@1vYt2SqNXtD+(r}b zDQH4oU|-gR%oUSdKyVB9Pbu88-3X!=G~?D*=+ZPJ{ZBFn-I7!@%BRZ6!>h5WD4J65 zS)h*-)L=WESj7>pTd61JP_sdqiYDlwOu4`_`vaO0Yz?uL<)2q;iziF@?N|Aw#t7VZ zNkoLHTRN>OC3$TN1ByigB~rOo5n?tEM3btJmOd<bLI6$29R4MexdTH6(gt&HkRP6h z>=4j~c|+t`zP@&KFB}4GI*g`ThPWSZFj5BZ1GX$iuU1sl5Ssi5fq`nGteC!9CA|YW zd<reLGQWGUQsfJx>s(f;I;5qI>0<`It1=w4wM&<1XcZM~`%?Hj=wVm&Zk8;BPt+m( zn-@XQp8eFp`f$5{5Z>Q`@bZTO%nPVRf*I$*4@KCj@xzsU-t&-D_yVRCN>1SsM;v+N zQAe3u8?T+#g8Zl9rs=iqrT(dc)bprOv!x*-5^1a!Vg_=4=s4sOl;k{gVsic(Veb*f zd&CcvzaTQWf0|yMt@~?j&6ID4l|$rj+@i#x@pt92c`&%~)nHn%>#MuZ#xL-UXcOzm zSaD;X6*n3yo~;9|Gh5#V5eA$<C_m_$$+&T|Gn?XrDf?DMRD<kWY8|>_YkL4{tBkY? ztX|qGVwI<u1S=FBS@mVYL%<fahD7nCmZ=<5vKQA{9Kah=P&H4EPRps00+pDiWpj#P z8j^L6B79>20(&ir{0(_b>)sl?F9q@(vq?H*+E+-yw90V@T!FD{`(dp1+q5Hx0O?7D z)aG4w{l`oA<gp-oy+ItJQ}O-HoYvJEZ!o2(ixjqCZiv5GOkcxqAV}2sAF#p7em#?E z)2%~t6@1mO*(G6XL;!<753~`W)OaMY@Jn_=jVdh}BsxLp)O&i@>p>JHmrX9vX=6U3 zDH&<%0Yf;jaN!c6K(YoZXujS`ln?~;I1GCisFv$rk52*#gBbldjLy`b)grlLH7$77 zg>RTst7zsg#Fmjcf^D2AvNQ(PtMx4W9Hn0jQfpkvpDYr8tjrr2f(R4JP1b;o&2(;~ z32d^0p5wYVwPDj>9F!Hp+-ypyv0e%x_;=KXWd^;a#Gpqz<`|qx7}V(6r2!v7n#Bd> z?*qwFy0tCit|>5X%CTfn=!FoYG7SukA)uD{m**16zc^qftII1vM+tJ8G&Gh78wdV1 zI&Nsozfd_T|8Asa!cI34L^ftZib5i6yo78lcO)~0sp$~R_Iv3Z>X4~*76lMQ%bG=y z+bTc@!^bBNfKMwHi=cGosQ_(4VvjP)=OfS+Ox6a-qk7Mhgl}O~0e&!qoFAl^O7t`^ zR)}t*)GU{5ggUJlEmj&1Jyzo?F7><3<43+F_u@pv>ykkE8TKpAJtqexr{5+nmn(fL zR=ffw8&&B2Q5-Db%&b$YC=4So=rruK03JvQ7dCFXXfh&pse42leU{)z+)`OVIRbi? z=km)M$*B|wL-{BD0HqoP_RwaT3VMTnqG^iY5j+qlXJ^?$96-9Siu*kj+n8^uXR;J= zX#_ta@!{CUd`rYBJv`YJ0+@0YI9+$Hfd~nNSH$_q&7?@CN8$(;Rn*g1DOAEQ1@e9= zwlfUCQz=9CRT7P^$HF1o9Y-+8VjS|K1?;-MunRxB*-nd`r+nmy54f?7C%v~|Q_HsN zVAwtyD%j7PTcJVDPad+cAzf@b!{q*<0vfl)w&q&OW-VR>B?n`M#*mnYhoL9&RQ3DB zIOOZmHsoe7$fzS$8{ynU4BMy3zaWb@1VZTv0!qPY;||&uOT(62Ow{!v_B$;*!1g;` zMKBKFVpNej=OdG0p`t|Kd7?+WR-LWOxvmXEP#4H^FpYsHK)a5T%^g?GCsqi8$S0AA zW+en2<>Z}_P{!|(8!zCcs`U;jAN67WgNwML3qMK3yFCv+UEo0m_?muEEDYTe4~7QD zgBlTB1!}I-7`U<_x<PAYE?K)75Q6H!Dq&v?g)@a<wQSr&v~~Yebc&e30bzqt|5sc* zD?THQeC}Eb&k+KU@2w=C<ml)Eze)}V=~74#p~)PmK`w;C72NhRuHZY^G{xWs`Z~)a zM@Jr^(m%yQZzTF35WD)XfVd&dA2hl0aMa2dw*s<Dyl~?|&uSn7JhWCgNU}(v%=EM( zwoGux-=T*|XhDxFu3B|Cjw>GFyX6ckwCA>c1#UZz+-4U$H>pk7mRPo|xUdjzX@#by zzg|Xr9xoOcbX$DU81z_uPgya;1y5oWti!YHrVAIo5JMkh9pVc{$$g{!RrrdV@xIZ{ z%YnG@&aufCa2~k3&WJe7jj*qd7zToFvX#z*I!y-uV7g}GKlmh1xxtRm9I0;HhsGOF zwMsSN7~uN$Pj^8(Wj!PO3b&F0=un1%J<%TRW+xb(oz)O=?`5tPJAipAUn11)AHf>U zFaen>+w(*`+tpXsvsTUDIudVvs-{&~*pY4aaGKnsvF>Rc!d}+t_tU(q<6W~0*Xdg1 zUt9b^kgXb5))xjGVGb&#(Ypn8WFRLG#U^!TMTs!LC|g8S!?59~8DtxuO}Q?~`ZAP{ zGw50vf{TM@e*#orO*9TD_snV#F(`A{LvtG?-CLM$vlmW4kh=p`(7cRO0Wo)@Ku+2G zU;x65OTJ11l52$FjEj0KH3M3Shxe8QM$%a9AbQ|QBw-@t*nxgjdi)s1VOATcH&4Ld zJRuYmXS5Tmvo@}eQuD4u*L2~KnI14g<buaf;aA021m|MZ9}L1|^f0F2{ME@<lbZgw zC5^2UB`Q<Td-(VQ#1sXpG2Mh5VICw$pbg1k56~f1;W9!Mv}@6}zB$g>v@0#!Dx5`) zd`oPT+aKyQ&aJUcZhy!v7Sg5&+wHMUZhuJMQyX5#jIiAq+m!Z)wx{{_-NW_p4|;w{ zmzoNq(#rXY&$!Aqb*f8fKX`XNl!s)PP;uK*$<JjC6;;FSaGo8QjElSdX^T4@I>!T} zWIiV$Ca)DHr}g7=h=`eB{c+9JKZRw`QQ!-7<ZKb|C)V)&A1@?Rvvof~i>FCSnVLfi z9cB#Rz-Psr&HK4V_s?msMQY6b7wGjWkgJB^KkEtL5Dk8~JZm`t+{3H64TZc0X0id7 zZTyg}K2b~mWC*8eX9Bp#E8A>rPd=sA1yRl}IT)cATcEXA3|0Uk;@O3D`utXS-x!N0 z!qKnjPg$b*=OA^uemcap4*SaZ1UgfcDc54IcKAe|scgfUZlMnQzznF4sbjHLW7mu; z^?BUmLc=9UgWHm;SCH<$s<w3LCWj(UbdDuso1>Op8mIE9x+qWPkwk?_yOeosjJ{%t z_4(M6$}A~cXbG&@qWp76gQS86*cZ@DFcPThx!zic=4_D}iDvjz4P7E(j?W(7$A>QW zKl=xkG+&0Em_g?6iDvh)H6X+V%R)B-NeBl~sav{+4lSE?4iI4FtrHRzl8_Ma9f+_5 zL{u)qG>5soC;)5mlKe^eEiL}5F`$Ntu-~@<Y>4y=EdEp)&;isVaLmY}8@)enV9GUQ z!+DEfSeO@!l^XsC6|u!e<+Tk84`4CG5SZZxF2s?utbOFa0bHnv*Bph<lQ*&BYe6RB zgEpj1i%bkuoC`k^cXTN0a*3uL;H-N*p1G=9lP*F|q;LzBd$qtOj?IFV`W2hFai_6V z&gW>kG#;}>C=24sQ~Lm2u0rWUgFfMz<Iuk(y-BC2z?H_b&Q_}pquW6w*U55-#o1p@ zu=olz#+@$TcOB=0Cc{8)RIbF{j;ozEi!0X+QGjf<6JsHCAFY?zW@l_;tDUai={UZc zxS-w~+q7N1b>?xLTVk8s>Ya{LoX@SXO>XsebXCpg_SmMhdVh2&){z6vg2u{mlrHqT zUo6#U=*}JXJQSYc{xHbjW`P(fED)?s(VX=}XEN$0ktk7}a;BS$p`(3sE42T*XOWT9 z1}$mT6;c-^Ml>#UHuQctqmkO5&=6t&pbuiD8=A}y6O~B$r*1$NK%x}Do5T1J1b|ji zV?^|0Fg{2UPx7gXGH;D@cudb4F(Ft0gcl~sZYuzSDN4_1V+_GF+9X?<sM=t0<m_Pa zg_sOynQfa2Yvf2A)YeF?=&%Xu1x6MfGUl>MaxO@KrNBZR-1%0WgoFx7nLZ5AiU%Z6 z?}g<opcvKm@!4fwP9oxERg!v;E%W2!)B(ZJq7HCNYqnDCgNogtx^=DU)?wB2>zUZm z%V}^CWRx1(5K|D<lr0nV&<{o45WL@BF)10Wqjun%Z?QKOk^BY`CfpIF#dwy9FN6VL zJ0ifjgg3Fh2=6Ri-ef`@4lwc3Q4&$m;R0R8g=hIu8HS+a!Vtj>V5HeY8$<s~8I~@j z!|^X+X99rl;5A)$L`o7@7($Y^U<AsEPPX)yYI=lM$?vAHgPdL&+09gt81;pO;h9px z@Kv#0DS-aIL!i2rE}97pC3X_cU!=b91i4hwV&V&uUXalnlo@Jhg(6y@uxhpD-mdb= zr;7@jjYey8ubq5?;fS>qREz6slP(Q%f0vrC(g&S|YsRqjg3Sh&!YZgYmfBs+r+2*p zItN%Dhpj`*&+s?+Olp>3apD0gis3#_93WL-V7Bb+V4%!ME5K<Ql)1yMK|OUNRh=AW z5}l_il<E(vF&L&`Jwmt9k^>k(;4zDkEGyc0NR_l`+TVl((T)%!mJ`~99>8x?DAcq+ zO7+4xEmNvI*^yJKG*HddovcBG5LJ^?VcelW$O)tgBx=4GpP?)eRjdSySdk0bH=F+U zSD_P(iru0ExJ4+R$7L(khXrpk{i*>;Em!b-SDcBROxDsjzQl1>YZa3zR#_E=cx06_ zQjGR%v}U{5N?4*?l}K}E;u<>^0kB<A)&FMUPFQi9^|F(~F*qc*XK6i({S9W62qJTN zWRnpW&f-uv-x{sa8a<`!4Fmnn0etPDB{R3zLltXw4dZ&U*@$;>0}9xMpGev#;%afV zh!6doqkpr~9tLoy8_p@!Y&hT3nn}gPRU;Q`0nsQ)=ilEWty=%ILcWQp8jq+lT4@I9 z9JCT70e=v4XzqXz4xS*HS<b!Ls<&jD&OLWElmv*|Ph|n(rY8$^H5>===`r*OyV9%E z^iT-pE^-9sIKtl$u@-;h5>8Pe==2;s_MhJMYv|jIB@S_RKJh_ISJeeU@YjKB<~oRv z=L~^*Ju<OfM(UQ4`q$uX;B9cgQgJtVc$m2_(s&X@e)wpf(njTyDKr)J(C1=_)m{1k zS?vVWKHRLq2kCqqGdveMv%AsH2=vP_e>;uM904{3<2e}1nkV9W5g4EWO+|3d#xG!J z8jpd}L1qHK7>`&!R^)^mBPaZ5sW|TJKd4O1HRwvQMvX%RwEWzs1#LVG%lQE4`oJ<y zfJuZb(~LifH0gbW#fp|0yN>cf{gj>A7$5Zb@6K$T51^@NfeAi1%TMw_7jGmO@WC&S zo#q3$L)z@(gINQ6E3yeSB6ep#7U*RQT%fTGKd-AR*<Zx!%f%P-v$b}pywr{smfGjz z?dGIskP<~xF1VufPU)JqgV$jl+}sMCd{aFM)pEn+OHN#tw@4;pmW!>P@Svc86#Nk4 z6IM(6h>LM>EbKF|SKtQwXcIqTfI8`I98JTbpzP;FAnWPhk?pp`S=iZRwazuE5O1q) z-V|iOg$+yC68zUEMhMdGaeMN)P(*SACOm$qB{7kCVwqaF&!S?7;+Z-aCp;;6yieJ~ z2oyiYz*fEG+||ouO3NGk-M@MnddGinIsz?V?nt5z<Gkvbi`f7TR8~-7(OPb7NDL@X zM+}@FF<`3|Rq%0`xGI?P)cLLHnU={KR9C<38KPQ&PnB*Ub*M}g6oUi;DJXzwvqr&h z3HQmehOZi|i74-ZO_s<c>Beblii?<VBiG7gMk=y#Mi-Z6q#Dy_1a%?8zYB|CkkA=E zxKwiy3=gw>0Q8c235MHa&vt?vVpADpQE68W)P5s`qY=VfP@+?t%SvrxGQyS>ix}Lt zu(ss0OY)5DIEQq0gtc*2kD&@nX_t7#i<!<&L)df<T%O<P8HQ2``l8jkyr6U#WNyx; zN@tIg)s)WOveF5in9|XTqhM_60Mk5FAB<(nqQMl9L_dfcsnSYAxz{$9wT<Yrg0`V{ z*qKd&BZ4D7l|J}4VomwOD(F3JWlYT3mK9T&>0MeiLyst88OF4@-gnDZ0K-4Q7{L<N zLf@2eXjR+<o~tkK+(j**@)W7FJyOTCfYv;nE-=5y42Ewxr8r%}V+%YkO{}3PlfpPs zW1xk#SWFu-v_KC6E`Z|=q*;x_&UD$R>tMd{Hxw)C0&AivvzBB>TM*soq381oe70(N zliHMChLRv6l{kS`5Q7bf-R<~B&#P!I>HCNaBLs~2H|!eC4&=Z~p=^5?pP+^fA#On{ zkcK6P>-ada>?=LV=avF->xKfiC|qw<yDC>itXH`zO9_{`Dgw3fsMujGvlch0#Wzli zk05gu_W4P+AkGK@8)DY-{D5qDD=O<mCHE8#TQ1JQp`odD0sagh5p@aGR_cbxMuxo; z>`4L!v9|`@hJ)Qg2v@E|m!pX2QqGsPos6{6grXW_A1Gl=H^)t)B{*pq6JQNvvT9?I zVzw&>6o6b>0GOEa2nQiKDJ+_RCAZ83*rL>28=*0&VFng*&`c<Tl(^W8REiDcLnMfY zZLm1vZ_NYYK7^zOY6W3^$slaeqLer712JXsfo=xw%*2|-v(?OnqODq{D7bdymwQO! z^The>jPrYP`I;`IBFJhSU${BGut#5z^OnUh)pxxHorj@665CmrsxrJ)YIl37U0eh| zz7mUIry@-C;r;!GB@vP3u9B6#63Za+uPkQoc~`6x&nod?g*Gw#vBFBoOsmetN<s?@ zKC=a6CGNlLpX>Eg?$rt(NkIu1RS3;9Ifwx>oV{T9rO6z?qtT1B$g}+>d!%#*j*3Lz z-U`sns^!mq+&zmCFz7!jR76reIxe|d6n<C+gdRG@U)RS5)&W&jG@SK#0mO5iEe@Dd zHuKk?bB$58Zk`{3o6ur63?l{yL$ESToyAZA>_A3?ff)v)xqFR|H<>)p__UJ)4D$CA zquJihqhDMaUALcsNut6>mm~CAIR$Qf0D{?I7GM*?Ig$p?^S|`WKGnFai1M)zD^lmO z2!d_?>!va$-DE>-TNEpLUmlwndr3ua)A&XxHO&cEgXrVXu4+gJHNpkYs@*Zy2-Lf5 zg!0)c?xF<04sD!`IGhJnb%~M90E~+5Usux-i}#U7sC0E<sjiMvoc360+6WZV`cUUD zU9ZR%6+)4l<CSgaNbmY*G{=ZD!JpvF7hA!W%Z^~nJg4efG9)SFw2H^Bj+iqZqv=4C zn_-olfDcN0AXQV0SAzrf2n1gDrJnrL2Ez#tjmJSv?J!3_@Qd({sT?Rgn3N*q!&ub8 zOB&W=JXM_L3eIviDr2b=PjMEQ+*-u6XT0={s9V`EV}M?^!u74;fo^|`Ctbu63Fd~6 zPo--k2H)x0ICTrovnrsll<#<Q$3PZm4n=3Al(NC_y=7t(WO0vZ3$4xPW2^<A3o*4D z(bUu(oD2PCrLwYxcjHJ9@4e0NC!;;`&oFDubVw&3mMh6Sp~qbT42QI1e?zK-l+Api zfDrZ(ygWl&u70c4{#357R0|q<`xXzE%<n8Yi~$t&>w+<0`(B!kjhX##_TB`}uByrx zu5)Wl3NYAq8yj106(9wI1Vo66QuinjoQUl}+SWGCaqM*W>lR;wTv8zv0i+y&AR=X} zBnZ)nsBvg51~no=WRNI4Ega(<8@1z@@Bja=wf8>voO`P(5Pk1`-&gksx#!$-_FjAK zHSe|8?x5}8UDEcnSR0Go6aqS-e~PklRWrWe(%4e(MuBbLC&sVLNV2RTI!KD^qb>Z9 zHi=P#iQJ*<N}a5!bYgo4mY{)!7KUb92y$VjI02M?h@Uc#$Ww=abuz9M(W+T6rywH( zJ%c69#D{I36vDXoUsVXU008SBy$@rhh;|E&0r64fTS>Q~aX%^%qVY>VK<-%jaP%*# z>BG)ui>rolzQeO5X`aY+V)_92EADCXC#tCnHt;mm3lgf`)|HJMsWoZO^v;Fpot6Mm zKq}vHnvO!^ZRwp#*2>FwC)aW^(5sVQCD(GHrn#J9dH?S0h(WyCYhq%(xHId#KY-%d zklGPrtdp<Xq*|CuBx&jS%2fgnh+gAe(M_Yx97~jy*y8MF?9m5LL2G=qpjZV{qP8{8 zoX=JTGdAs!W=188W&yiVBM1=1@AYyeH}ZlJ5C{Nr)PbX9q+}gwU3OX|z7=nb_^Q() z&jJO<paoWpQD;yYUFE)*yCRuwoyY{{OH%6OHSPOmxAg_*?{fegM3jSPd*}<|LSG>{ z5a-s{dTVzIV_?YW*&F1mOX8?_g|`<|T2@)q<o3n$A-DT?bIGLY212ISA=2sKC9?E| zl<3}dCesZiGNsW!vp*N#a5Cc?rbQLAp-aNV7*A1M4pd`fAnz7ZRC%|Kd51(+#x1S; zqWgfjTB~L`r&;cnd1gU*BXolX6(6%(wkN%428U=CZ4?tfqF)jKGiD0%{ao*=D&H+v z%jA1<Qb$O?QM#k4xcq~_AeRlWgna^rPch8IF0YU1NnQD5u)TW1S0sVxso{Q!Z~Aw3 zR3pX%vqLs2;x1OMlIcp^7-D_!%D06WikU5oyd|ve2+v+S3^(nXxemTc&*zzJ3cUrz zXd95mhWlWQ4)F2Qp-u+`5Bsq281M)RHxy#jQmI5Iz7x$Bv`w1f9cd0d<Yd+XEKp7* zOe3+4SAkeAz7zSRtbN?1<|{Khv%B0{;0ux2m$XV0vjo&GSk-vA(kYOPU%UdCsaa3$ zGIDBbi5V%nIIwqlAyimamM%KHyW1}qkxPF&pn;^>nNLWE&e}{@nxf0n6t$$OhWLA$ z;`Gktm3I^ni(J;uNVuZ%P6~$Y*5-<9g81sF@HsWwPSSpJ#T2)+v@44bxr%cTBv<Jf zb}*1Ph5lX3GueB_eXsEa2iUU1xiwU-JO05}ZG92LGVJAhV)%m_(fnFx20ilmNvjY^ z6gA*nZTgDE?nVlWJFqz2ZforR7Sc7%2)7$`X})&LK)WvBtJ8c*{X!Z`YjW#O*C5K4 z-!q6=+B5lonAZ{WfI{}4Z%akRI!ix@T63mCo}0r!eBxEev!#&L5F{y8gYr)#+9t8? z(dfpEn#x>ewbwXpR>;?uLy$;!hNbPFMzPCGq3(LWEFbdj3bt4&igk7~0@R|GRkUKE zHEabexYDl`{LC5>Rbjcti*eMEaRQ@9834=*b~UbdQB0kBoVVk-#>-71am^0$aap~e zPf$frod>nU+L{*i8=%U-rUQ(5KA?!}=*S+>vN;p-l>Ho+pC~?p7^YT13lOVG{JbrV z+_j1&?=2p(rE^y5kf^ue+ZKEqZmFerq?W#8!C@-_0!vXzftDnqX5hh=43vw~%RT`N zojFpuA%$m!EhIg399fXzbUUSM@NgRECEh{REU{%X@VduoV_Zpg3HYA(MS#QwdnxNr z+H2Z1LQJm&h@i725&Ec3m$s_YmBe4cQpRYP7{RafN(<}{Eqc}$!&!8}@!WE*v(?b+ zLk6{<$tpDpwOy<nNFrj2AY%i8h=y@ZC65g%szud?ittmt7pWNV_MM*UcuCF`$2~eL z@)NqRNb~7rg{}d)VoywAv+6U#Xv7rj*N;#jZ(u+dwp57rhV^q91chbxM(6r$m^C3j zG$vy8)nc<m=29oljj*C|md5zLG)9-|=AFqV#wf^ooU9U`e4z50Dg2p?g!Pqok^=eS zT)c0HZJqm-WrcjPj%xWcCF#t_Ok-h;Th&X<yQ&#qaOSl{qB>beaTL%a4R()+^1eJ> zeo>)8n$6lEH4jf&`Xw+2udzi|ji-KG!q{;VKr}isvgbw)k9DdWGmh0!EGj|gR#Sy8 z@a6(=7G~<mt`RRNQP;fboltZ{PD!*$7e~XOv9Ri&a?<&7SL)ksO&SqFOrecnY0l8b z19-8;Lbcu!&Av6Euu{z8B6`#hWEs_bXp)xVqIR}6_QHC#3fm9>66#<CPL-&Q3q!G# z?a{SSKM-iRmfPYuy)NHvQ!ZjV){KogCAtpcbOcJIxGt2Y79}pm1A!8)K!fex0VteK zhQ^E9<lNMcQ=)I}DfUB$-MvFL-=-h11=HhwN1z@unh`iL%uDxPOD6yX4Y9BRVZztC z*+5VW+U6-6)=xD+@`q_62~EnPKzTF+f(WFt#QC_R+UB3g<ZWqu@7kBqoxM%P2rhzH zRFVXR_H&Tl%)5$2$h4`*H`~%hyCT3?Wer}RWGCRdsf7586JYPL6Phh*j4?UG#kd+Y zWtuvZ#zhR6lukpwB(?k_Ghe8&Vr!)_w+1XU;?Oup9EZ;l2fv|h!FQWSXLGg_QJ{80 zqiV-N{*$&-Mj45twA1>sgsJU@DW;f*g?4cn12(J@qD=CLLm5;LVvJsMKV;JE9%;oX zNvx12|B5uEii36$Q!ED`bfB>sdaSWV6gN`Qld_Fel$dm+a56&NMuk10A;08+LTU-z z&`O@=O(jXH?2?I)XK9(eIdY+x2EvJ+ghz$%md;GiikU00&L~dY=$A;b-Ok#ga%9)B zFj8^mx(LNQqb75KVQo=Z!d@NaPpCxP8iG8#8KHC0Y@MxR-Qk7SoxYDK5pUiZL-R8@ zIp#{ym}U7NHB3%VHm+rsK%Rx1zZLa)3bb)?jCmx8!O<S(<q$5r6;0%oABm$*>5;I) zW$0ir{X8|pWM<`u&=y3pGJ2O`nNR#=#&ndortx|@itQG2Nd;b@8C(qAAxllWKvr@? zCeH#;><~afIuNz!zX_2>2WT<=LD{ooBfKL+14#Z9z*LX)FKwW_qA%H3nvRPScs?D7 z2={3!C^(D8XwVhZ8<IzOAhFIR-cZ%CD#v?U<-kb6vBDIn<#vvhxw9av(>P{@a7kTZ z8u;E^D&-2_C@~snNRCy5{*74(YH^{Fo<c{5>8J2GRITkL(Q^xsS%hrSGw?Vz8p53d zE!79)ln(@_oGJeE>U+VRLUe!`qsx#FKOiri`dkJ`Odh37Dx%pEOcRnXPqXFjlzG$3 zhO9O{5vU-9z;i#!h@+%HuShMq<zfjO$ST%Yl{MjR=8A%w$&5s^0n|ko`GstCu<i>T zLfZ(g&CQ$-ya?-tvidyWC$Lw&J}=;j1wiJ5Sm|~mCszn!z$3by@T6OO{vw`CJtjPT zAdRlY?OYNWElenS4ZuXVlWrzl-{^K0JWb2&blu#T=#WvVkxDwarwOu^`K4Ux;1^D@ z8;87oOKlR2(-^NxW1PwDTv3|%t1GXW+i3wIvyaMTx3Th0ayx&rFVx~*e-gE5suIc( zh6mLn_ZZ_(r98RI*h7uX!DO(}>*`|{!lQIn9Fs5)di22~m}>Jl8uhBG+)`4NhvMnR zWKmU?1m>z{e8mMOU!hK=KBCp5pq5he4}ri9KP}=<#t3?JF;yp}4^H-#yzU3FkKhH* zFMtueX=crWvu*?Mu34z(gZ*WcZjz2vhAlM)n}DF!K*@2L0#Y{EFDR{tjd6%74nc?w zfl-I%<G(?baAbz3kJ7DF(r>g<mEUZ{j2&5u+Zf?Zw&f8@yp;$tQRVNYe@BM)&gy&D z_tLUGBcG<wv2lr;Ik-h{1^xkLQVtmJCtjFHsBmdEEL1?A792jxt|6Ne>}dq!v&wW( z2%V6@`zy^XSway`ZLQse*oT3(OuN#>qjA6ijSTIT)%T)IJP>zT>#u8QFGW7Np#q^V zZt~r$(0LK{p*QYc??FGkR=3H(_1f4rX@m8>a0Z_O%na#K(;GUm=YvpS&)7Uk;wR!) zEehB7qD{uga#3$zo=}$zfPPI31Tp^QY9{}!i(s_?+*6-#B^Ft~2?_^SARdz)-H_tF z+SlbWkLE&HHl~{?SqS8(*}K9)nAvm){L|`kEi&_gNyET6?ZdD*Oy7epzDj<?nQn({ zP6}pZt~h@V8h!#AX6&Jt`d0Xs*E=69z8CHca7&43fct14W*h`nT~0v#Kn3{-cc%o@ zpf+e01WPQUvjv6gJEG9S+V!@6aS@f`?XvadhNxvw+GZSP0a}n7dW=DC0NEsmg88wm z9z_JC3fXi;Yp~n)Ls+yMnn})ur}nKhR&3hNTmuJf;}PFZ5%gwN)EJ&1w%Y~aqCf<v zr;Qnky5qXqn03>>vH2l;vrA%XF>s;0JBqXA7%-&NGW-Lfg`H2H4k|k!ZZYOm7B^$M z{*O6a8xuv`XQgdyLkT!1Bzhi$UOm%En#5N;^?iil9{6RXQPy9Bj)eF@RCTDkaWt-J zCfX#G%z}@me%r)UDJ&BnCB~M6!nv=y8~TBGuoYO|1r01S5eZKQJQA=TEDWJMY`K=I zFod*4c{oIpgYcsz3+g8t&bv2_nkX4$oQ|@!^XY_&N)X`NN5b0Kvqc2k1qA-za}U<r z*RwAC`FaD(uxlqNk4Ey7AGw(nWsJiCNjM_u;R{*F7^RH4tJDm-{p<CiVKe9sIrK4y z9bPym=?PDK(sBHI@>7l<ZRGrW>eEg*;e-=UT5|H!pYe=m;_q3{KIN2CmOkfipZmP$ z^X~<xE?c(j?_T)#FM9Dm@b4wdU;5IQzU<|%c;%~J{puC3dF|_7|AsgI<H~>f=YRPh z|N5{0#=ke6_U8Zj@28*fmNU<6W@lxqvaxJ+c6PQVJ0}~@&dt_l=Vj+-7i4eEF3ct} zkh>e3Sd*#*W^M@vn=g02ozFL#wYa1*Ue*w+n(-Z1&w2+dqO3Uk=JnunCO5n-Bctgq zt3#cp6W%Ul>$VRp9NylnwG)wgk6a5j_wP#?b!O)609t=*Y8~rXaQLWOZ|=e`7ZiV4 z0t*3ahO#>D&hYE`{1xr!&Rx87Uh#QszAPCd=T%0F7o=a6hwQL1DC1ch9`T0BYB?J` zEz<M|@B>)!B;=u6B4qYpqEd|p^-8OxpK%rjIC~F-n_09@E^wHt*2!AK?-Zi7Ze_CT zqEclSn;~%HCQjFiP!ch{4V}?GT51-|wZzi7!cvT_V^#?F2JGU5B$vrYEj(Vt<#GkC z`tym+I_7qOa+uO_dlqiNpwBQ&PTdgRJ_m0H71f2hZMaP<b`5V+TQDTDnggVKg!2#x z1F@>`nr&g28M}?B*)B_S>zYl?D;fmVX0!+MOc6yd=&{tClI>o31ZFTIEjGU!V8I9T zn{k3w2^)lXc{zr35S}?JJ)^Z}3=Yt5%35s{+k<X4$|eMvrP0_OanKpSz<<R03d7+S z$RcNiAGBpV;t}Q6z#9E$cx3ZNdo(>8CUmkiq0?FJw+a*bB=mE7Wj<*D{JT#ly?{6S zY})R4F~|d+&5u=PldaEXGN*kq;Xk#V%qe2xO;Mb+oy_C$$iKx$W|+%qEfVb3ToS%8 z4duD~=lBC_c7kbh?I<=U@FQg1e~M6%sYiUeX$dbXQ>2czSs9<FhXwJ`jv}oT%M7E4 zU_sv0Lu%|bgy)Tg_9?l+=2!Fn8w&SffJ1&-g#Aup|Mi6*5fF?t%iL1z{h+M4mCwBn z&-LWlc=6rW7T(4FN<44XfbU?hufdNH+0qAJ<&71Er<LBrG+T6mm?334Qhya6tk=fm z{;|29dcVqqAYjNu81qW*AULmPW6{?vOMAELqddAjQLx7dUloCgBZi<33K5Bq;fhg@ zr2*%ydUF)$!U*LaOcSV=$3_wBK;^@379V~W$Nn;~<}Uv`-nQrJ{!95r*ja#+2G(Gq zrim3^C<vBEK@<EBwP0K?!11UqYnJ_rZE3W=`Cxe(z!H;fk_gM<a`SBj@+AfEm&R(t zU*S*xz@K6;-!<FLq$zAZdpMs!;&M)D*ee8O?Kx{44S)4X#e^&J`@e{~7qf#H51(y5 z?@c50`FxQ^xD(4MVW{fLSEevpzg$x0%x|&x7ZygY+-mCJvaZ<KPQJAC2+m*3e!M%w zvERV%h6+{DT?^ncE|IuzSw#PriT)P|JAi3LY>nZ^*67an5>niJd_ihlWfEb!xC1HB zIB9|8m&kfjtPKViLp|U=uN}tOu#I1yXHbat1dD)nmEH!SCOhB<4pP;gdOkoa8a>fO z0>Rrhu=6<Z=M^S~5-EU7n*oJLsZqgVdi1$`v}lmoJV0tdcrOcr@(-NuzonwISAWOr z=U6W*7_F-z(&jSmKK{0}0KsyLOC{&j!@5)0DjxPE;Lu@<@$Tf?rxX>nJoWo|``Oae zwZ?z*;+cS(xI=)&<<AO8ff!L>AI9MxbSq%rgCSAQ{W_6=+g)tDRZ~y7*|ky|;<Yl$ zgM*$P$4OW!Ce?2V>B;dKU&n06CR6R$gq;Esn-W01LQczx;TDDLO5Hkv$N*8XMu%g= zupSR{Mxdc<uM;YG9pmk%IbP4<Mb4(sS2H#BfDyaqtmv9KV%d5tVz+wjyr#xli<lja zSR*tQ%&sM@$H!-8z^ql>DVYZB6`&YqfjGnLap4xktrP90U|c%UZo#61-9qK^K(v<- znBywQeLHVI$&q_8FP?x7NGPYpX?no8y{Lj)Hr|TcEl#wjwG!>I5p8XW_EJK6Onhbr z)NW}<wCptCkyB@=eO$PeP}?k_7FCh_RspqF5}3zTQ2SoqKFU%10bcNUEDnds4G&fz zyuX55w%&@{ZH`+o7L=#a?NtQiu@Q4^vAcoK93G#U0lVAUVVB(oR0_KSjD>9G5WtXC z=IG&fSZlix{0L!<4|4=qhYQL;*9R9yv{D)&a2KTTO4AO|IbY(tj~+xpIQ(mAEl{cw zWN9E?(X4$WW-b6zz)r$I42%j3A(d2QyaP)GJHWh%0@K<5G=bq^SN?*+r!Cr}xU^8V zlCP@}%TR$>B+oXp15cuHD+gP|qU!^CUDn3?`2^omLXFdNJ=n8l8>`~|L<&LE{IMP; z9jJYCm~`IT%*sZJ>M+RGKJqo`j{OcSe1?X}#moc3u^3i1;wA!%CAOe}Jz#P@Z)0su z0h1efVU<>7Nj+fK`i2V1*=j3)650?6;Rr$`<ckDCHOox+gH$TY<qLeq6K4aYpc*_{ z#{7<UJX%B)No|FIo1I5XC84G(mCJ8V<MwUx%9^Dd=;HWka+b;Smh_It>aDiOOz+%U zd54KAvM^#lKnA`iqjhU~$9ME$WyO#d-zmd(dwR!V)1Gl3gN+9wy``T!(>pCY2d(X* zo0nkwT6)L(v5XEIgS}(;NbhV*?^H?!e5N039PRe<)kbIfAksh7)s<=gv?pq)7(C+q z_zMN$fwT_k-&;$uapq$+Mm#cpWY-dGET=f*KL3!ltzf2=yu-s*36|1UQ&LDW-k5hf zs?7GJ#&>q6#M^eKg+lpKtSl-JBrYu}T+3tpb<}@__mj^rrOckwjHC3!iLByYSe~WQ z(f)^!4i3)=Eh=6T%6Th|B-m!5nk<jiG*@vEcQGKI>IYiz0g`t&WAk_dC(~$O8E)Y+ zVy%ui16-nrxZ*HXHX{(zc3`MD${h(~R)fWH*$#coc?i?U+&8fU@CQk&O7fgu?ur{A zYvDe}Bn0p*A0HDQVM4KQ+kju5hESLarAgyD%+wwn!k?bXN@9fspqWYBJDJF+!o7E~ zj?HYlH^8fVlUEDr#vS?c&JtfT(Z2P#nXr~l0S#zRD?z)e8JqY`%Batq)5A`1{@#kx zdt>RnrY(hADUNz2%CR~<=}`_m$@L%Y#K*q_wAsJ_T&J-xhE8c@B@L6wAa9t9G-<^G zgea&Gt`r6FOP-cags=h6MwOPP=9~nI7xZK>Ij;YJoMSjbcAMv~!2g1oq~)n%WqJuX z?u8P)6AYwS5V9rqJcolOsk=v87cpRgL6!to9pK|jO+a9kPV9x=Y*-e+>^4K6jbry8 z!n$Xkp7*Rd-OG8fY~?^XOvbHTR?rFkFLmr<RBX2dPBHHT)a>wpc@0GSnPgQp(roMU z*Jj(@29h3>`r#>jID!vj?4W42l?a+t)!14*KWTY^41l;YVXkV%CY+#c{~0KyI3b*B z5KQ3~Y~s9m@4gi}kImg?1q+R2K!k;N7dxuJU6qO83NR?7wTzc>CB!IYq@mevRXGp# zxyYWRj`0>W7%xXk@UBV2cfMqNH3aS|%y~|F+?i7zCHV*$B;uzE$&)c7Wi7!|M1)h; zqE<qe_O;<Ha>7D5JB(Pra&|k>)y8g!%g(2GgQ^Ccs`}_2bRemFOC&{lh_(yVkO~J; zy)nsC>Wzps;LJdaXiuVKtQnhiG9v`l*~73gd+EK^>AgSN35d+iN%I3_+71DR_+%>j zhMF!XgTjWIwrX6{0l{FC!hZ)Sg{+k*D+~LU+P31)N84+bUQG<_>QrZ<Hj1gj;i<4c zdq|EQCThAgQN(ELL`me5p|oddPSX?{^=V@NbD5_2o=+3ya?3Q4<_*23yHvNL9h!r# zlHCJgOnPX0+I{DlwpwX3SZ`iJB5NrmMuz~1?-AlVqy4)jv~#45y4&`|vC(j31!vnB z!(P>lEjW&8x>j*q7FA>Ey|c`OpuLDZ@Zs!0@r=I2`WQRrLl`{pqy2!01G?-FrWMLa z;g71w4#cvJT&xrv@zmJarbzzw60ROWh<B!p^k#XDXRH}taRJL$P(oUyQ#7szK-Stv zV`R|iYBaOo4|X+%asRIv#lSKPmKm@sOvlvOj+p7pjPR`<%HD1<IvNVwGbnqI+ZO%{ zrOyC;?AfGA5=#>a%zMlXw5q5hF?)uK)AS3xKzUH7aEdURadV7VAy?_Ayu<tGyLLJk zeCRp&HrwqyoJ!^uj5Ow!z`PP|QDS+jaPY8t<W<tA@W_D<3iEbt>2hl(2aFY@l<j#4 z25!q_z)8Q7jA;}T6WfRZSdoao2@{q}Vx33H=xWvr=F3RnyBMapKP>$gMEbgfyLP7} zX?TmwT+px=N7LaDfWmb#z{@jJfiT2a$pl;{*Zg7LrU@-VIhsGM{~@2!0ir1!%whuW z(j~IyyAo)=>`HrzM^4q&V^++>Zm?q3078%-Q+5&w&A%!d8KR!vB~RXoYGJZ?p_6w4 zs&w*>nXurGDoYccp$2-K2c7BzEKCP8p6wGYaW>dT?45lCnb@fhxABB{^%u~kz5=xB z$Dl<miqtH22&IdT<0wup`-lMUF<eCo<b(rr*q`gufmzSpKo_lsi^SURO*HUpV{I94 zK?HHJiM-7SMr}|Th1sB~lV1%#D2Yq;^MB$8n&6zQ%Zw3jS;C*?z3OB{oSyO!ZCd&Z zY+JH@OUQOD?Cw4Apo0#2^rNwL>5$e;*JF=e%v@K?bA9SlpZ2t;#Uxi|xH7>N8Lr4~ z_1xB%AhY#lF9$oCHH5wPm5kJ%l(fw&@if*iTs2b+M%#4=)AtHRJ;5#(ly|{~>nY=> zL=$7p*!2BI69gnUzkwv`XcKub{2{qYDbt+yA;KxPVF3jidZ~bb{-Mhb{-RF|&ax!M zE!u|#k*9l-sif$@h7@6DEpcqf^~8e-=rs;>H8+9TG66;cZ=1ZRHatTHYYnZb7vl*5 zu9jbdHi$Wnr{X4^*Y0s@a0I{be-x$Y#_@p2`=J}b-MmV_iQ~c;a~oqC&4sDS+ieP7 zTpERpT{iY2n*(5nuys>u4)^5s)%g`?;*{)sS2o7=;NJWZ+zLuX`1g3B2dBdNC6i@p zxh*)cy}#4Xb`&hHm*JYNW`2+?@0~h0C>`nhKi0v%km>PjrWHKD{co%x{X7lA$wE?> zn+T#r+*Z7pE?#WswzNP9J9y#Rqx}I+E&JH)T*UY`+jTlZ>A+$qY&U3(PVE+@`JV!I zpf$gH*WpQn=Z`AL^5Euy;Udx)%qkmf?@#1&-+l*lq4>vhg!vI85(;(F;=z~_CB&q3 zod!2eKbtd{Pk!(b>N-*72UD{i?s&GE1qB=J5m*$<T<=53w{1Ksgn1Kg(>ax5@dq)_ zJ&Fy2nmxmZS+h)hL9ATHBgnr_GUthhOm^wb=Y`89q;gMh|1VPQNw@(PM`jVSrC_)A za${U7nvJvFbl@5DnHbw{JRa|yK+fTnmYfy+=YE=}2?VHmXGQkO9XwBEp9TUib6nOi z0%R6ip5@O8N5kNdsHxNXb+NMmaxrA+KLyW?^6jC%#tnSwDS(|EF@bp_p(Dl^Ex-06 zbS|dr^=Z1@bY(w54^U3W;Aqi|m2E%aF2@o(!xwV9>9Cz<ux;RFFt-R}Ft8}*ZPQ^Q zyc-iFZmC*E46sB5op!91=J88fJoQ4v6DDg&*4zb>qsFuUBQtG3y|2tTLa-95ik$Iz zVig%O{8dvS|DC8U?TXtV<!M1I1RE6{#df&xBH!mD3mRW!i;FAwal`s3vD%h2;$N8p zIF>{Pj2p8_m;8`zdP0m7jF7MI3&|Xiv2g$(_j<R2=gI(nJVzG=VR;6Etfize`=FD9 z^W_AoQ_0b2I8uh9OCx3oNaDK$4U|os7AH&S{|X0&<QfBTIsU=iOgg3@YdX!wWSiNT zbV^+A!E+J`T0_Y&ILACw6qQiWk<i2+7D6uY{C5nzt~EeMpr=}bLYM};oe(Y(gnBgz zY&M05La|jh$MUTSO>R^jAv76k%*xh$DorQaQ9@sEQ&3z9{{3C-`Y?(Tu8dHOnPst! z_a6h0Fsv5wr^N6>@q^1hT_1vLyeaqir+jmSg9$cUixl+KQ8XK*AP9+aue)&%-+VMA zt}aQT-4cV}<o$yLi>+zWB%vJq27fq^eVZWEHTR2i6%$#qCJBGUr;zv(skcsP6DNW- zo%>EN(|14a_R`4t9^W3~+a#`WkPXRv6#qc3G<g})X3A6_<Pi`aIfMGOdQkOu({wu3 zqkag`=ak-G-~h?VWH%uCky%(~)Wmxe5edSI&IKH3kTMc5N=72{I=FKLH!vo}q*=pB zOnyHB<zmv#9VE#Ed$Wj1ah~?Q;Pmo{?M|##7JLo8x!(+df<J}1)Cy)KkR<k`Lfsq; zsH2%lPM0`+Fy>&S5l)QJPMVCLq{;A=UMm1=lV<T!10uciv-FPVgJ=tUob-16{35;M z{U|}G1vVRb>gWFSj`zdBT@om^q2xE@qXqb(Y)}1?KQQLz0!7!1uLX<hZ00E`HD@<0 zs^7C!G*ULHcJcmvfzfJHDcPHgz%EO4%_W)^t7;Wt(IV`uUO{00-Si4(oSxNZMQ7Tl z$5MQXWKf=-HR&Cno^Ci?7IyhHS5tQ{#Rnmczv=2?%77&egrEku@$RGZV8QMkR$X?K zf()!l;HxfBMzuyakZa|K>XgR{PhvQAGUlR^TfL?kTXVOXZ|X_<4<!p|JUxAvSwKAQ zA}B^vm@E>Z*ss`$=5{TwYZpolzmOtpxgEL8YbVG>a#qTr_zO~Z4jgvx(|uo}efhSD zf&Ga@aUUhhB{3P+)?R%*y@>H_J_drNHk6&lfHmn9W+D|OGAtW^g<Dv`vPD!R@had? zV?-@OG0RY+ug%3Q-o-Xqihn{xvjlIRNkiZMT`JTp#sk26-7wj96{$rml*P}x6Amh+ zMK60O=x%O@EY(K;{2$Qxi@NluWyI3b4I_2<d$<?kvl>Ig_zSzzTZ459)rC#zPvwsE z6HfwyJFv(vODu9S9!*IJ5P&5%Sk;VgIHmCoJjY3{1eaE~ds_5BBZ8u5F&I(d7yR3+ zWoiK1LwC{a3(K^k!b5@?J6a*4)E>qYL0sPTK;A3P(ft#6-{o3T8*39R&XP~VV}T_Z zTcg7fVr}SMm0fP6{HE_4I<kkL%ecOSHJv<@&B#5>^ofnFSO>j<tKR&v%7tbTKl;3C z#4-@@brEb(u7$%f?JcCuJtaPfQOhR_51QY&Y<&*-JJ7hEpgl>(r#kWL)EGJUiLo&t zyQML>bG;rFV_<D@d=QGH<-ubD+^N^cvsa6{vA7YvvCtNm!;bFQ)=_G!TsHUeG&N3C zwy}ZbUW*cpyU(#bfoN1ESQlak;P#P{SpI|L7$1g@6Xn=JxIQAh97Wlqarba<krTr$ z3D&w+h(br0Xvws%6X%D8Rw&ncO>7BN_qZ0P!%^)k1sqvK^Oo-oLf2d!LM+;r&EwE4 zotl6}27Tny=rw2;pKf?71h2%DAFkl<;5dvT{<vNH(FypV1Q-p1y8}!W@yCbZ>qPt= zi);EidM4tJAtPqy6H#-(-`9x0dT8ZA;t%IAbmu*Z_G$SCM&eFwKl}iAFEbKqO$JPB zCXh?dA>c`(THhD(#tKckTu!ZDbHgZZ!yl^m`eZMXCnr9}Qnv4ugN74WTR2>$#Zw%O zKq`TUmV~E7VJ-Gou&d}FmG#@_(<I+#IR#uNm%M@~(rU88G)Pj;r^61wTKI~Z2@OGG zg`!8yi3>S-5HLaLLi(C{atmRn0WHKZm$6r4(tX%1VHEJ{!`E>1kxUD1jSgmXTkUXb z8d0m&BJs0Ky{Q$LD20faTECspSuQ-})e^%j5ez(!%Fy76?sA&zt@&wYU?AJfP{5&M zgd?VIuyb5?jgx^N?`Tuu$2*2O8mA-Xep9<VFLX{)X^pLvQ~K^oC~%|2GA@HLPoJqw z2-_;}m{C5{JNH!HNk;jOnNu8LoFKswCb-)sAczjO#Lki}p=`7*mf#3v5FJZf(Xq@g zN$>b|xnDAF_eAkmQs1kav3XBnH$JU<WfCs<yQ2h4GA=OqcTm(^yH8!7le+xwURsE- zgf@T&$wl%}pfGR#W*-NfC0U%I^RHigL>g>v8A7r)?6tyBiy=z;o?sYHF#O&YLzv|i zLp6c{;)w8oj$4FDnQqQaO?}6P!_Z+cfNVHSv(Kk)ILe`8mc6$L>CrybL9c*cpgmf4 zHMD)f+`yar9>D55=<pFBL(n1qQn_kB^`|pc{=P(&%>HTYFsdX?oK{k%tD5l*mr8s? zPZG_AIW5oC>hz|sd(z=V4{fF2n)I~ygQsa57ZzU42IZL&$~~HKde^4*ym#B<0p5z# z>Xa)x7okDk?~&on(*}5)o5{GaB)6l(lp{wYwaMH+HN>}>OvwwZA+SI%S0iW{Qw{Xy z+xum^^9DpWa0-dFBH!^N&&}x#Um>}}*99sC0GTf8O4866DTrbW%O$Zwz_Ap^2<}_7 zG%?gfLen?)J)jG#iv%S^{N=%Dp_wro+>X43u#6NEJ!ZPYTC0ZDjuFy)X5_|}ui?b= zCXH{(Blz%ok3O?fJGnQtSI3c9<bDMW2)kh`FZemmL{Kp8X2N*sI_{d<opUI`M}Gk> zs+>28K0C<u<`+2ujjjb=J&Yzqk%O9<snXMix<O1mITF7VT3LXK-udCr*$6iYH$B{M z(K$LujD3XQ9A+H4dd+Y@%+0=hs_S|C<xTueUUAQ^?lI6nUp{)evH=Eg_!J6Et-*6h zN9S{Y+_md-zsC~U-Cbj=;luSK_$;~$Ta<cb8c{uPru&##z?LkffUHGY>}Aea4Hq;i z`tr{epW$J~^9S`SHJX!o2a+^WP2_fdGh**DJ1~N6L@!hF8)Pb;;r+ms=%+~afzqic z%X0mK)WvTt)?|77MK$Hkit%N*gvKXQI2lvgPQn`(%yGCECRlv9Rh3zU#fOgdw3gup zgNwtpp(l(^q%M58#x8qkxPESTfI#^1No|jx-F(5g_6BDB?umMi;O70s&A$DlnDfhe zhD`73%-O3;oXr&%50FxE(a#ho`<luk<MYMCwyRHPH>eEYexhlrg=lyc(&|Hsw^?-U zB72N^qwT^%oHPZs64xDAa<B`9nZVj>hFRynzak<i7hFW33@)CWM-efvt%w-lQ3V(o zcW~0J>xaaqrlK&wk_F^fpMIl%6~{x}1C#`Nz8z(r-;DUY)ObC5XykA4dXe~vuSoX9 zm$UZl`0As$Vo*sb%YaIf7gz-36s^?!y94<|1#+_;I`Pyjkb9|tb~BA2F~-?XQs^Dx zq%p+{r*}vR;*#nDsVkxfOgt)bab_5kW<b1mxYtO*56q?JrBv@PNOe9>WlOQ%pD#as zxDUC~R0hZo7T)YTe@tSYFY!J#JILX5e+5DAET8_~-9cJ{2=eB&M@kqbiS(|7y$ct} zr05^a$EWXzfzEvDzJ&z=8d@U_6-bI!44JOf`emv0j@xQjH9$&_iGlP6W7ocGBXn7% zvKi)TMiOcR>3b5SPX9D$T6NuS(0^yhOomSMLWa(^m<0K#9jC0}uLAze5;r@iv9+g~ zmpWdOh}w0!wfA+yzH!69<g1$T$)B4u)e@sHK}ny?QgSG2WKojExAeA92Svc**3D&G z<jZ5l#jvb+$d+DM)%IeP6Oy<azVW#AjU7F|pAVh_ws8+RL+HA}*fJ>Cni&;YA$_P9 zr#l;X7P^8FmLDuG<GxCnsB9lz2%jQwQ;5a~3xz+0_=^8Ll12kPUZVA?;Uao)v6pyg zJmGULoBPg9kGu1vxDD|IPrL0##U8MQhO@aeoD%MZs8-Z(?j5R0&uJIW*50a_WE6RP zVUH3BFYB^Gt<Km3E&{*;gmZ!Oxf-*rKvM@k0Kd34`ltS2D9>{n!xGB1_G-nGSv@(O zxXYT!``5i*^1+rze%RrxnY?Jxkw-o5=*J(^l1ZLeaYLJ;#S<k~JOPh4HiVkRMByeA zYl(_hHRDS=%@pPukM;?|8c=;Uaw67q$RKo9#3T(o<a?^&q}FTtUn+FS1aC`u2x63y zyWIELsc)}z$YzVukLLzaB5-ZV7MsBx+tE0gs)>I~8_Np4xiU{9Jty_H!{pEL8tJC; z((rhC&^aYMD3+E{;%Xk=0U?=mz78(8r_iOo*QO>t(ojsTwCFKU(s(jCE+D`al;XB1 z>ct;`Mc743G<Bz$t`-v)gVW4bw1QQbZOsG%4J9>sVFJoi)U0xsc^F*Yi(a9Yx(cp6 zK-og81cWjfaK4o{!o@aT05iY{2(ZfiX)tEwC43f*u>7oVKGsD5MxGz&-zgnJM-&a- zPu%GA_B60}m{rLIxd#*hd`D`^BY;@QixXk6x5Y#uBq&@Myd7|XL?+bCKi!oKwyc4! zuqDSUdrj349bjqzmI8f^7rWV%Ah!i^1i-_XhjxUamo3g6;u3HRxui@B5qreyc*Q!q zJPrDnCKHa-pxqJ?11u_d;EU}$vVrI$e3|PEmMTfsVD|*WS!5j7fxtOTP9C@5#o58q zND6QHSBAIztA)30#;Xzr9f=1?AtAU=3b6!Z^-&3LU6DrX;VsM5q@@s@5L$sT;?NSm zW5JTJnxy3-C3JGg%<2Q6EAbEJWm<!Dv<ZcdHXs3qU3mMu<JP}70q$-+mt{4`0Fd&U z52NhhK032uR?-)39EeFelwzZ;8##hsxwvX>WG|e<-ZjHGbPyp)MUZy=Zr84djKS^b z4K5@O0@G9J8AhY@cjnmYA#O<_aU6h#M+O^O5wjK7tr=2ehGBj&ljf_Wor4K4QAU!E zwBq!`s<koZ<M)&XuMzt6)AJ0Z021fukqj9qBmen_5A~}$=-)XrN{<gFwBBLiPA(xw z`qb1V>Mx3`B3o62($%S1H}wxvvjD-VjIXaCtYqOsklcSpzWFVZ3H)WM4KlcgwWI;@ z;-rnpS56M;-WgU)$Q5c>qfgrDngp8rO9vJ}v+@D-mu$h0fC$E(^~$DSaR&BXX!f>p z_O#$l=EEp@IOSXg_uSqltGv;1<h>yy%k7q|ie*08>`jtGFr#q+8-(?T^95tDKBj(f zcWwRSYdA~NK!J?I5$i5R*1`2v<42-#Uoc1GL@v1s^su>9K7N}JV}>ht$=ULl17tt$ z3G`l@(CdaegGPafD;Yo^O^>_zfyXUztYa09V=!bzoJc7XwN~e&JZ#%xTNt*80=^5o z;dgrgUz#p5)}a7Z<0j57(g5h#@IYh!s~`ju#cNvjXHJF^1DyJ26wq!Y2@h?`^L#R) z!85M8S3a_#q-In+xSu2|iBk&#gaT9{S+WUKOB&b!l7ZCok~w`EFKMqpTOuOvxv^wi z=nm{(=RunYsG$)okCZW5AtYjP9NTpmKjHU1M@*kfXmMh)h?$9z3NcNk$DNq)xXtn= zQoMiHo|Q5RZsdfkfZJTCYMrFc3{+(g6sU@J4yKfc+L{G?8#~;0P^&{&326zYz!VI- z<RH=WM<#L37OecC@sx0HA}@)!FC;v;NyrW&HI;-q#~W<<iXi`DYRXMQTLuJJF339= z$Gc?`7WK-59Q&6Nz&>_6sLJeovtg4$n{n(nr>1=DjP?Y-WKWsH9q<>0iVSMg?;Q;4 zJ&3)pq#--@Y&q%yVDHw{lw;49o%Sr{bi$q(&FNYgBr6)Bx5Z+p`+zWf_^R})PVEPt zna%YJjkRw#&fIRglkq*+e*Qgi{~ZbOl|<){_922aTNS?AC_jkmJiLq96uuIy@F;4= zFt`IY=&%<2&Qef@(gOR*JS>XMV{Q|1`I`}YOv}n3Nyv;#skv}7Sg<s1Idx?bcXl)O z<dt^_RMkARgrbC;HR(OqD8|zrG|D;Yan~q#+-w3U)?gEud7yOPdXH=at`%7J8OF36 zLkj*G$5S-cgKr0Gbrut0Z34wj1cs_ZVuDE{XH%IAF63YhB5_I~gi1LxhEuqrA<vCP z3jo;?d%j?$mrCX>BUhQ`Lnu^cte?davIWtb4GSFuu9++NO;9nHl`)ejEYb}0Efb;{ zD;Jz4aK=R$Wq6`>XFrn!+l6HkU0j^7dw~_ZO9^n-)xb1ahogkSCJ3w>n_vwA$n3xw z>q?wKX;@fGMJ+a&VyuOvJT<J^6&VAA7h~A+kJ*}-Sqs~zah%<Z{WxC`q$*$3B^%Rw zYtnmXS@tMb&D$62N^hN;-l|}21F_b=f*o)+dr7o+m+-~4wl?@;yw*qs*bv4F)(mb1 zd_nDyvdj1yYsP+dSoDYEF8blYbs_yh8+4(aAp8rfWwT-G?9@*MQ&)4Lsy(Jm6i0!) zuTz@p826)$vDS<_5Zq)5ffSI9ZAlb|%JN(%=3*$Yv%E-gi=E=&FhuhZ&#Wv_&e_e_ zky9MoDq2aB>#a!TEo4x)sXDnPHRoj*Ow2)W7Gx5)1`%NDg^Khb3qh>4ruCXa;eLTA z8|+q<H%cU9Dnul~E*F)?e{KTUH3}&;P))^0S(_erjiMzu3jdA{FY_FtI2>&iha;^k zgG&gV;bz38^Jp5eekBpiEDR?Sj1^-25DQbzys8TJULZont~^wm!{O*CG6bA-pwsu4 z=#=EsSQIS=lwp=&v@|RH#;pV(1%~XkdyQcipK_&_(bVGdCb7n;Agzs<@HFm^!qd?a zgJEl%5f&$9zF#E}U=|#a#Nc`9y-rK;R9~_eJeGi+$7tFTB9p04;S#I^hFV?Hpg>Ys zU)C3{1{V9jF!f)VuS>EH!UeO`)5SztG=<oPW4Q*TDP0`5fMpfXw69XY7G^6LEdj!T zwt$T_H-yQp0Cqq1!%Tz(0Ox^>Je3zvcA%eYLKmKXNO=*9IAXomh()Z+uS(@%y;E5} z_Pg)pq58l^2qT#&^TKGULEI0E6f@S0z29eQGv?NXs5HBZ3jN5g1q5USLG%R?5V5x1 z+}FT7vTNV?tIr09u`mo`A+lg<B6=+OgWfS>8G`ki<xthD^kOT}x4r>LpWnfhDJq-) z|NH-!F#y(E)6<2&3?iID9DghtiVD_n1MQ?_xHp5o$66&s<3c~qNX9A2f4$#+`#th+ z{^n8o!<s)9{SP=0e=H$)@W{x>A%`5wKb)9+_+uZ-Lz9oR1b|~$OzsI!<R2=^p`_gL z$B&LS^p~Tu+zBV1c;ZPXowQ`hl9Nw9`RV+7#xtLVB6CZhqf?Y$aO$b3GRHrhqWq#4 zz4*m1#wp7DL%lg3q-=jUP5CvieJu`Dwm%%J{EsVF;$&qUt<1lF{kJ#0>9o^$xbnZB zj=wX`c*|Sj3ClcV*-lxubC&I-WjkxxPFuF~mM5~eWpBsl9oakaxhT6>pG&e!vUTxu zY4)z{GJM{hU5?Lt^tmDnpULdK*?-{kzU=+k2eK>iS&z?#>?(Xdm|dM+lWojC6h9x% zHf0~t=h}>)k7n0pAB&%lXP?M6<MYYvQ`x8e^O@{F<L9&4=dvk$uGi;=?8fY-`1ySH zh3t#?Y{|Zq-Hgwd@wp}Y3O=`Hx8buj`zk)SXLsOpXLc7pU(4>sXIu7le7=$0gU`L$ z|H9{+*|+eS&hEqK+u3*U`EK?-e7=v*53=q0{4lf6kFxOjarTq!r~3RX<LBq`vm^UO z_Fwqiug@>DUuD0Jpa0HwX1~Gbx7qKq-{bR#`1xbDD{I!8wX^hDRU50V#^-E&*3{0y zXS{YUK5J{|QL38CX>4zkezK{gb}r!ajqM@-WTx7op;9JvL3(VVo7+2rcj2Lro#7h# zC!dImc`0C!?2y&X2-IfNM&}c#BfCbG<4!{#qmr`lNI@;LW$aIO<F~c`o5w;tiMR2e z{B68uh3|H1)tk{9+(Ao-Mk@~t3vabyF10chbB!saaa6~Nk*bMw0VGxRQ@z9DEHf5Y zv#U<4vs`uceE`K3+S2-L*afhwYpmYKeE?yNmMNlRsQ$?zts>kuCRuo9D3*2p6$#5f z`b(vA>OGsuf?<le#gx%$fkhELO7v@cz`5V}EXOzq0tbx3j{P`s-2^z?cf8Be!$>Vo zD1b_{$6J0rX6SYSY6AD3&OMDA^L6@}3phxXWzitkz58Rv`C=eSE65lX3l-D$oFe5F zs|JMx0$MzQ`na4Lf><DsHdTYJPI&PE)gNpCPHX)H%@?tXOAr8=Rm<pKYaI#L;(D+x zY5|l0-WFfn+AMIf7FwAjvrY}l#1$J8TwXZncLrA|u{)&@5`bg*TXxRnQJH^4ByVgX z7RUfF*l`PcPp%X9^G1v=2Rm_^PfY#F_Q>VacZSV!;%7CW))RmqO#ohelnClK2B4FV zkOlmcl)6=$@4xvwkXDPinp0XyrZwngIabq>|FzAz&2h@tv?Wv9UX0(cN=VlPb|mNk zBi)35OKF<utQp2vrV6{ChVzLu9QTHPWy3MKVv$Ot;4WWiH_s^KUDh&0BICN`FEs{{ zdA*xF@=@~0{n=oHd$|A0ny&B&X?3X$2TSvqrob|a;@HIkrh|am62q|emIZKC@aY$Z zzQ7Kgz~G$`2>~HV6#Me-&WDs{_{M}1XN?^Ox3h-0whe0tI8kL_Ls6swq?KPx6;Dt> z(2A$tqOhBVsYKd>74<5gB&Q&tz;PaNtn8GZm65!ONd761tZH>X>44?X=0fXrcC>1{ z_K)`zTDMlv`lCILR!~PmrsLR(=YgzP|B&H_2{PMu4U1W)Br5&{h1h3B;l2;JdW_u4 zn^;s$?t6T<$M!BjbIoNNOTV52zx!sFqJ|rYJKX@BYEpa`Qz<CFLktl-PmVPmXB5?l ze(iL^tm`<v7v?(#Uw|DKQX*9sQc=f!pKILT7GCtKDY=cLt@{Ab5BT%+th6Qh=d?AG zmQ$s_Z>cx(rt}1OU<Zavao~05qF*1_x-8FT)^a~dm~mGAW(&>DsO2`hmfPXUjyfV% zGFQL?qD=%Ax>(Atf9^`|X9+A<a`zfoLCG-zLPMWf$%!<WXlZh#n-MioCX@=dX#$VO zbv?6gTPAhP@;8WX<iuD_#=e{KU0pY+;El?reVxA=-Q!FNO!nQPz97sfP=gTVESPX@ zL@NAM8q`k*r5N?TY^kGbU1sdKRuRh;0H@jeOvy#;@xk7(Z<0}1DfJ;^TA}*|!MTg@ z_4#ctrllY5<PSE?^D{hn2d|?RK@DnHkbMxLeNt1a_{i<)k$MmH)CWoCUj><u@#n3x zlDRmjAVN!~9O_dF@U?91Hg(p~XbW0ucFnZrtmra0Io~>0a&~(uOr|uGS&>D}1byoh z5hSVjj$3wBhV)P<rx{SI)11FtM(ui{_GX~=9Yn^L_7rO0#n!g$Db!wELG2g+yr_M$ zcG0Z|DgFls_IV79&IhiqrM|j}1GUWty^U*l=Z1tx`Y|N(UJ!Y&h<pRvz!PDzjL6sX zz3VX(SMlem)PQpf?dHTd3(edLvb;C%Z{xA_&|}%i=00ar0fB5bze_NRjiT@_QhRV? z+Pf&%RHo#!9j8R>xX7$-xhN3cTpNti86X4|V^SObSAsBKcgbV?3ZgAHxEfKkeJDZV z^7=CdNs!mk2MO{z3h)-EgkriN^(e0KUvJ|h#NVgTWRI*46X8roy`MjPQd1wLcK(ti zA+s@}A7ky>Ycrqf%MWF_0^Rt8-KeeB2Kj^I{g2~5tdYLT{`{%w_cu>(-Jg%=io5gA zYBs03$LjsjU?Gf~*!#!W87c#)i0}JJX4ml!s_32p#}-Mr^?v5c;sAg|UtPmk#~7Li zjY?k_X2?8|?&sLvNBOpi@cIDd^LyFmwIJOo{``>+q)VkVNu}I(T-UQwPYba*HR^)} z!}IE(<oUeA*`Y5rSf5`XAS%De);FnhlFmvhQQy`x&najykxhMmBAWVue}@>4qP{(0 ze<6{Ri}4TJc-+Cz$lbvZ;7-^8S*Hd8hgjKV#wWesA=NQJ@1k!&Cu;<diOvV>^9pnx zg923GWh&p2z;Y_zXkY~@k3=1)Jd%Bh%FC8#h@#v|>|RrtT7^;G!>PR*Q+peK{$Pix z4Q;CUb-0jIC?_$@B(i(Fy4xLW?JAqfAau$$Oi+ijtKQoaa(vD<w9J_Vkk6S+V4pJq zS9J;rkfvF<rCF74`S4-XzR${g#>uhFG>0W;diS8VPN7HHYQX`&ha<kSfL?jvml3@m z0DAA`&+nfVy@I%4*=S?|y(pdMKKHlT+WQQ>SjalXI3?Qa0pldJU^UK;<@+jF{*M+c zOM0}yvS6%Y*_?wTyH4>%HzAvlC1gKj%#e+E9HcLe9AB0TBxc@I4@g)JUw1(Ek2wCx z0<uNRNJsD5>k1(I$Nc#{vm(3bEmZ;>2(dV_f5Fx+H)MAo*Y)ffkUe*j-cdpJyY~dL zpRLsCq9YzL3(!Fz%&O*CCB_Qs(0)NwS{mh2zyfNMLb-@o#SNC2fkMImpisI^p=j!j zT)T#QW$DYs83J3F!T(z#Z(U)gdZ|#}&NeT>O#O~OUp(tf75Z5)48S_sLT9nvi+rlI zYlcy}X)2}NFpVP5wAUcbRb@xuoh?&W^lJsUOCy;^)9x^?U>ryqM3z#pkf0W%LBJ<% zETtG?PK@1%cG9W@mTQo=8(2YuM1>JFNK`2;8boK5OxUYI@*qtF`)yi6S3~4Va0q5| zEwPR_BvZMR5#i)gM(|bJFJ*W##ar3LTh&Aw(FJKlKQO2Eg3=QgrYE-B6XzAcnEQ%K z*t1Nt1ZpbZ`n_^xig%`--nO?K>~ZxJm3q={X#kg`m%M=Y8od;^wRGz3UFk*dZS~w< zyu9+_s=2*5S$VNJw-?`6dGReIgciJ*K59f#y)wPycsZT#%!-z)(tD1U|B3f{+D8ko zCrQ1Dze{&;8)DV$u9n5J=Rog$wxzKcER^ltN6`kV{~+7{H?+@c63N0XJA<3~*#F@0 zq}0q8e1A7?{>xzFll<|Y!*A>TnP8rnU~TmTU3Mqy8G+V%ufiRlV`Klso}$l3qBK2h z3qHXxnB5roOhUDrTq_0UNObesu29KFsM-SNgSPlzYE7a^0CGW6QI27#spy;C$sxTV z;)kxb_8Z2K{1@$k@PsXU+{T-)A8c&lzpo3wb;54Z<l@OAZFEaFy^~wm+G~Ygpm9bw zyI^xg^taa~U#_6}HG<dCTvR23v#3gf_J$V%HREd=n)?8pR0)7_Rnk**MuMqARbnKP z`130XDpw`17E}*Jle`jd&dS(dO&vO8zY>Tx#-<}{_49wt8F(3fNKw>$n6CBR{Nbhe zp)bGJves_ro#nU_+~W6=<9N`Yykb%tIJ}Kl+z%sWAbG`h%=S0gnojF89`2_N^B%VN z;=#tZ_~VP(QyF#NI#?gUo?S@4F<dMd9>AF{L-TkiDBAgT_{XHS@3U1N(WePrZUS{1 z4VmC<2KSdd4)<8bKPS^XOH0BHv7h$D_q~L5=kXV67*2e0(%s${*iL)^SZC16gj~+h zvg{b9^RaUg9{>{30Z8+R>jOpNE6OB;F%jPn5>!rn%LG**zG$@sGbY+KEoMx@b6A22 zj_^;3+Ea;In@#x+mvJ^<FxdDRe|&!Ut&_|sdk*5wFo($t{x3H6JWXPdyqv8d9ynWp z4QH3gzesrT*?O+P^x2Z7*~U8)XjO?!coJF#QFM6k?Q&NkNSLK&tgg$3ah^a!ytOnr z2<wQtr5NP{@elq$6rGYLL+-&vZ1LHHjX(0oXU#Slb9D|@v(;y6HZWdp;sNrv?pfbp zY^>}XJfk>CMR{Iv4Ys;#;CqB1)^{U_8VQL+WdxR3>g)uSv((9H?!~<>KLSfd9-AXe zok!FzNwX-HdOL5PG}t(w|DHJ8EY6XoCfL{sn#2dsQWqw?I7_j}QQZBz2U&_%jU1~6 zI+#@*zB9q)>af8P&-&gamG_Pprh>Rl!Y9$jyV5&ui>uhstbJXc-g6jrPU5WZO;+A} zLIp;f*#zVJ(mM|0v2()5mFYc)QKucw3gcCk_jCy1tnXb@c@Kwa%wgU>TzT(^IlXsn z<-Nn_^xnrR?>%Nt?`^KU$6_#GnBB`?G`p@|IN(b~^R6drAA|<~L=M}h+5UlWy7=z_ zf;;F-r~<ll{)>JxV+RTkiGf4?jW6@1AzGLSp5Ydp6~r}jghd4VZTy+VMf&7y4ruLW zcpiSoo~u#~W>!@VHJJ5WdaCGb&f`K4Oi>kBy_xOr@36B>2raEC>MrogX2{NHRFKEZ z_WbQ>-aJReDvgB5o$n9AL_&LTNk)<nCJDdC6qRj+LDfVGcGDPl6+UvX@pb-a#cSEB z+g8EI2%c<F$j_9Y@-4O&D~8CT#F)l?yiJZbn7JHpFmp==)hxc(HxpJ|`nOaPDe7v$ zZ4?phT^LqK_45p-aaY!`C<HB_lidr*-1(Yw66SOQ%a!%RMUZ>U{{23YtD{s3^VsA( z{v{HP_#?~oo0l?&c_c%0uz!Ed##C6>gMgMo^}y`kA0@o_bg_E+pF&w5A@f&mO)$?% zWteWye@&X{rwJ(MEUO=~dz^JY@x&tThIPyR`U7w7GuZeg|K*O<InT&Uob_9_rai2b z7?L31tfq6;PX7DgIqNqGD?U{=wh@ykGji6HCw}eps75n!mY@YkwQyMf+%vy^m%wt) z;_9t0mb5d2W4d#T8QeGmDAabxssFb0)lOmDU8zI2KeWAVRy$(V>gYxId)nGI>w9Nc z-b-8aFX@?O6Jc!>dztp>!e7RXgxJ6|<6cxt>&8(AKeBK*XBe4lujBU112Po{TL8IW z`O1=?&?k+q#&p;32eEzxb&Ka?M0k~_iK9K=>&y1A><10xz6n_{up<RMCT^j{6jC#* zQ!`()+5|XmfZGZcoM`vPn)Jrq_6E<N(39+&TW6IR5jPfdCv^$<b5k1*JSquTo_GNP zd@(537Hw^V;?D;{ofolko;RE?7+*is)#$2sVOzTvALtoMTXXLuESFx4QDu2C1+V24 zuo->v9kA_g+eXL#>H}f)X`^HJXl*w?Aej-P7;bwb$?$I;{#5;BZyYQ7kOd3&eW(iC z+P)ayC=23Xn72W_0|nQkAbyJV@stVbs1WKKsummUu$_e_8p;ypu_$4|sG>;)dqyP( zDF}H)E*7!4vW1TDimhwHv{MOt93z8`IslWPV#kZ>)^Xbo&yZ1i7*Al?mtd}6gs?R$ zu=k+A1)4fSyHZ&_od<s@lbP-JsAwG?0~E@<!O9v!Dv!i-`wZqgKIR9wpz5c6^~yS6 zok;tL<wXa-FvAM?#T73G{ETr5WROp%_WkRe+XwowXsmdu4BlZt%#sQm#O|%HAh{GV zP0mksg@yAI)>l~BlpBv3Rg$&cH~@DbcM*fK>CiMDjGNpR92k|`fgmmOiH}EI`qw#+ z)wq8aTsBkt{&lYHgYE7;4m`IzN6qXmU;f|yJfzC)8N>=V)vDaQ%6DK7?OuLH)n7ae ze>jxm;oLrpb2<Ko+h_ORKNif^uGvEleavGHJB%f>wO{t}p=7pBbmeB*M*h^N;#AiY zwMSOFW1poBve+TZEwayh{tK`}_Jx1XzZbpuAO7JbFL?<z$G+_4uh8EsU-jx&uUN6- zHLrc$>t6o`{JjxdWB<{1#%fpWo3$wxJ7QZl#Gaj<opC!X#J6vl+}T|%o&TBAhRJjJ zd}C*ilxtSU2il?-)WP+5xQ1@bx7}px*CrG!pS`FhV+X$Z5o_7hCy*NS_@u4fR)b|v zY15?36|^rkaXG}erWxCGLs)~19%Zlq*go5wsjYKTTld?xK`fiQzH|8a{tkH^?xi}M z8)k!ZJhgp}?I1h5*tV6*Nctb1u;e@o`r8sbJ(=x3f=Tq2(7HA??FSi*v1v>d9^(Wl zokn?fwkXeg_WKzu#NinhdcIrvn&^h(g-yU-r`1eT=`U1By$u%nz%o6-oq!mQ5^G)Y zVzPL#0T&VXn|R@|ww*m~%m%BDvN;$i)9&m}d7v7Bf5E>EWk8bv*2X2v0l<s0)j=#< zIWZv7b=?{2H)697RpaSG4+7m9*;X{e0f%lv^Vp07dkQfZDV`y`_wSJRS{GXf;=~#n z70_^h+EGCj&CCD=YX%xTNcS|pVMJ?AXdpnElI10+ccq#1-4uLX%*4$U@?V@+WLRQJ zZlab?UU_6-pL+jOYF)emiw<K;H1ck5xoXk<n|c6ixkbmqUjNE*YH@8w1g+y?HB`v| zGMJw!T;*rV{NTpfe^!Nlni<^<9^{K<e4tXKcng!SR#JCjDHL-6REi2od+_Nwr7$fu zpKlb#tN2SJyE@_QJYy_dw|D-;0HS=sEXTU6pzWAQpyUCUJAjd$e~}=*UY&z@rYQSB zu-niYCvB3~07?NcOz1XTM~Ooo#cw-n{*V?(DY^<XpEo~0lc4-?8j}mk*J+m8%So%& z&FN!iwn}VUx&Wad5a@VH6uvGTGV^$h?ll}84m1EWss1sS+7ntoo<MM+!rv(s#ClUW z{(zV8mYIZN9L9+Au7w4+sh}F-=xI{ge5TGer_OfO4(P&(eq6l|^A?C(As4688@V^= z6&yio<x{B@2l?d=GN%nl*a{?+AQS=|VmWt+wHS2bIvb*XPyKv4_2cEFURFHZ*3_6! z73_Ptaoh;|Qjrr{-_l+2L;o|i>8{*MVS$E`6Zmzt)-qCC1*S<#ma;|8IPzS&IUQvu zcdF9(ayHHvtd%{1l^aqgzNh#ll{wUOfZ)0tI_H?l3lh5`CEmx4Fi|9ub(*l5PF{+o z7f4oUY+Kpp*pk3<()xRW1$GY{b1P}-g`Au~af%`gAe@C3Co>&OuTup6j+-dpqiM(O zsREW$RG@gg;A%_qphD@lByc`sl+I>EYXApc2)w--9qZ3i06m{TRrh)Oq*)K>aaJVU zmU?xHeO}9GOL2v*>2W7UJZ_XW3H(;7xiLoZToE_uaN0r-W^Hi}OLS}KDbejT#EGhb zJx6d&rb-mp!dAQpzbqiq!Uc*hA(I6g9AlWLOwdI^WY3m(`pz_D58ym!uyHpD;}k&T z?U&y9T6)JrIG#^HP(T(jhVw(V^DH1J#Ac)*c7#3tK{~0MNq?6ve^I!7J$2@Dg8YOY z2?#gSwzC}!Zbw%!<3&;ecPZR3J5omAm4X6-r1H9^NyOcgdh;T~&(y@Yl0;8Ykycq0 z6uCWgRqD3F5BH{yoIRfrI&w*WACdQT?u$d8Va7F#O+~`kT)c=R1M9;qkRP*^C2HCv zvsj!&8Uuw6ThU5O2>Et`^IWqsVq-y!+{G?VA{&UEsVaSDcL;W%qHu4bE#9V!cmp0| zr5P7*Tg&3@y9qAmY)g0ugDg?e_tN7|MR?qJaYsAO-p(;u*25fFd!n66B5Q{}^gu(1 z%7rI-4-~RH0-4f-;EfFd5%eN>BVtCL1a3@*C*)1w#&&B1?rIy40>5w3{(~9>xYP`` zC2;!+TG^uM*;yo@aG{M@;X*PeTtMas@Bjr3Jakf-pr0j-dyVZ;jXY5UPN-+sDW>0q z2q0V_ayGf8Jm)`8O@2Ea93{GS0>i>M+Q^%~56c7-smXl9-G{my0L*zwG6Ix>kO+gL zh_LU8BX%Sx{8;m+XkbZ12)89sK_=tEWL2rnS!Dbob?hSJ$?7<eJh+SzF_X3G9v}rK zT}8F(hgVUUP)zqIILqiP?PqO*S4xS*jpa?>z}KEQ*!T_k!A_;(+b)uTF+pGrdfv2M z6nBkKDsh6au^M|O(bX=trlYKgmJL7)Q8q=XfoYlGzn#{^%zHK)HSi8+X{u7#<c|qm zz9x2Tai01)hQ$V$e4<76y^o|fRWmDp19*nl@Q9TfhTa7oT%mD?avL6~W7B6KAM!&W zA1VQ7&baW>JS)a+d`-*_vZ7FDSL5O3&3<Dd+#nkH#5OkB_z`jVIE;wnK(*gQ+I(h9 zc!?n3I_8(nt^&srfUW}BOI-F9VL7fa^anxDt5Zi#&p21hIto<#L6V<RdRi>h7WG9z zAp(Y1UO4YcnlepB;@@*px31BSP`AKTlp??qzhivrH-ICY>sTq%$W<nKD`8MhP=SfG z$M>+o#)bUxG3sm&FwsS9?NF*+(%5!qqH&Vro@1hSCS*Ai9U}N$*v-g9<L)YNFEJ5V zTTD}7rnxiG#R)8DqJst217f0s9EBYz=F-&L`DO$0l|%x{=HU$|A&C<wAr>jHqH2?z zuLI3Y!t`6t!Do2$fWgLl`R{OS)mtyiSMgquuUMw>ofAd*s+wx++1iju1Eerb(g3oX zBn^<tjPf<e4S-KF5>DF7*DDiNoHXi!zepM`Cm>U!ti>24PXP=9uUPHlztbt_po4sk z>X|GZlmPJUKqmIykic@%u+*yuL>iC8h_Im+HZwJ(?6*hS3<jLT%8ncLd}gpBS@(^4 zALm5ur->l7JCAMx4ytl<I-s7T0#0T%fj^Q)>LxG_g))If!NhQ0(UH0~J?<v3&XCe{ zv@?M}M%a0Txs>yCFf5#i%HFM&Y-;1(1`}8h7z+Oi_k5NAQ|v^kQE3K0nE>@&h+H); z#JfJ79`H?wN_i?+k|2^cTM9p$-t#OEt|VhBX2~kKzVe<@hh}~6rpkMJBaX5utz-IE zU&nmFD++F6w735wvygF&qZ6vPBnW-s$12*J@X9j<wZF_cQbp<@;b>LnPf9;3gTo`L zieC2(=96id{<Sbn(YJw(07g64CoZj27f@y%t}QLJcV=%*!}YXgrTGw=X5c=e3D>^5 zmr(W9%DXAm=YoM*Q+;Zq<qy_eAK8UJEV-(VF^d>811OwO%w)R`WyPmT%au$Y3@6!8 z#sGdh3c=8TOFK_M^OsNFI8z9Ibu+f^A$TNZM5$si-jQe?h5D^r@nMdJ6wDI*19W1; zM+}xob1nAQTnt8i8wde{Zx-OzR)E`Az`34j>4m*dbtMmo=?zQ`5p2s1(xvzZ*jd(U zJTK8@n)(Y<ufEjE8u!IuM_>%PUwN+>Bb*|nLJIk>Y?mC@$shw%T_MYVnQk&ckWbd~ z@28t6Vy&Cq`Qd7kZ!-mi5BB7Xxe<>gV&@I2vMm<IYWYBXkUXh4dj6~Lf9%|k|7_cJ zKTItvD~=;y-a2wSPa=(cT^hMtK3EtuVt@!RV!*6LTiJ~s89>bpoD`;ZoEJfDPw>La z!M8vBW@FB`qYU8N@q%yXwqdHn(K-M7-nIm<ukH(RFz{!sWDj9-YF8H}iB7eU7*YC$ z5;%|%wqW0V_kAd{!ua=BOyhV25;;%_ov9qm<*3(n_Bkq`<Lq-~avaX`=g8&2jCYVj zH<jcN9mSB6C?To}lso|AC{QEF4GDRmo8ekMthI$c`~vSzJcxvDnTAbx3y5C!G;|1| zxn?})H_rcb@gn@95LLK9hzbI{*d9__8%%I}tf<#0$SHqak+vp_7aP(=`y@ZDcB=%T zt&~3*JsgICVn3qxhu=&Wof|!14N49T_uBSZp1MlUtvBqRWug^#cJv_WYd9>t^X7=& zwgq=o3Phw~&F}zBPA{y<j65%7HGq4*$zdLzo5y^wc@Til+b{P*R;s)?!2Jz0X4(3| zXdT?_$0(QLLCmy!bbP?VL0Y{!$mGp|@m+5N2#vQ`0a{YP+E(Qvtu}M^C@u!LFIZR_ zLO*s^EmSuJa{qB%C*dEg@kb32JQ144L5e`uv>r=Vi2%K)841)q6!WlLeJRH2I!T(t zwTR%vVnT}J5NL;|m9R)?OSwVe$gY!ykSRA{o9b=o+xeCt@4+Tv?nj%4q3+LV-<z_V zXT|Oh1o!6i!{wtQzKNvaJ_P9c;Xw9l#vX&`eK!cOTJPhYXq^R%-5{)@ZJR-e@D39q zH>@xr{d_J>NMF5Q6LK`#vaKLMHFY@(Yo1t|kPx2ZganIg_6hk&WkOmufOMJ=!8!K{ z!C7ydkP{iQBUiBUu$tC{2=W0;4EG#hvymnR9tlt}vs{R}jB>$4eC_2z0ju2gjv78i z%wt9o2kmDa7oKe^-^Tim4mV|zML>}xYq^+&kJ70Q;b<o@OIVDBxZhlW+Ee30-60X= z4U})P`jW+PeVSr--sEGY2X0IcxbrqQXX*>-J$K${NX_oNeW~&u%_;>%qIfaeKf!oQ zddH8cr2EqoGp0@4D;&T~*dX5Lo-z#q-63JR^#lN|x6?-<9Y8;#r!f6U80u|&jWb~9 z?6}Tj@-#!$PEo=B5=8~cDLM)wbvD8=ljb9j`m>ufwb4J<2gcJi%6{#N*{}4%_S#$7 z^hl`ZAu_O?><{J>{vOU_WF9HQX=rG8*v^lE?S%7VU_2d$KewKadfd^EKjxTY?Btjy z9cO<$JH}6rY2^7+@u#fVlb`;KXW-13XFvOtbZ86`VtHN+(_wj346|Wh`6^7XXR~hY zs%EopDVb#}@OWcuX34Bf2COw`d9f9Q;$SC{zVLNAQ^Ft5;&`Qa1bhKUiOD5(Y%!$e z)}3<xsLYs%goQ<vs#p5{%g~}dU(nrZ*srNB%FMR58R7NZKQ<%pin)J?H-*?g%RP&6 zC$g5@zwQpXf9HG4)!e`3>H)4k#<U)Sn7cVxs|2tv2X+?V^2JQ;BW66ckLiIgQfeQ~ z)0#XlRPS)aDZTG121=AqLtMt}(rrMw?Q^KtSm+P}1A5)IEiBzQ+@sjyqwwl7Vl(V( zKzs#TCmQ?X{tI}J7MR+KJ~O9~`7!q1mF&|hUVzs}p&qbL7W$87Qj;C`oB^xz_;d1% zTOa@wqs9Q5)3BMe(5u~5e=CG+PZlrIDT)_6ix*9vA`y~*#<lr0CLlrX_>E~_zTKL& zUzQG8sH2=>x&{PW^vI#sdqj(iF*;Vd(3%ELTLtu@!@fj^N8u6XpJ>BGzxMpIf`!wW zML>e&BmI?QU>~i}A7793C)HgyqZJk&j4=jsTj;N^1O0uhBmF%?JtX?0X@^t~j=uw1 zmSLivfTxy_EQuf|%j0klxfhs7Bg-jjgcF27(d7F`A53HjyE+)52;|r+awHY>m?fDP zwVc%ek`vQF1An@WK{pcSQNd_CgCc-E(sD{c!y<dy8UzF=(zMbDBdj2Iao&Jc_YsN; zJ<1r5;Mmf+$1A`O#Rv`p=Z&utCasr~kQBKGe{IQ>Ox<H~>?dj#|Ex?yX-z8G;%jQ~ za^-;H)=DwVw+Oc_t%K;{PVumZ=zb=y*~aHs)InB_9|ggcXnUhoeurQp*~eHZq4w() z_ObPBpqAoW&XltcV@LEB##`B^w*&j!(~*5_K{~OIV$L37C}U_TXnUH2T|~|yvYd0i z!<$Elb-2B$$BukB91jo$E5$vN<etNUCElS4hT#yQAW-a)I{utG2^4KwB~FM}cx=Oc z66il;^K|}uqC|f(Bzk}2=ltOiaxBD2zn)cg1zml6^>X$q-<-l~F?n4peZ<{q=vrm8 zDA4H}_S8|{*#-V4vU0zrR~+=epEx(UNMCGdJI!|TgJe1IdY|a^T#nV;e+bqk8jd9V zK%&)Ed}bKv>8GhNud$lfTx^W70P=irLrJ9Oo+ct4J1g?P+ZeW1=|n2;(20~glv&=Z zM5F^9i1ci4xoTtBvST9B-*MjMznjrTN(yY;9#cy&muorJ{Ybh*nv?DYya^W_vu&jN zHr`k$tcq@RTEIeJte2I@K|L%=8)&xQXja(6eh#VDMI~gGmE_wK0@vCSxVg+l0qO{p z!G=j-lm~Pf6GwVIBm7drDz6s@7T0?j`cNvv!!(}0#wGlniytKZ75E2ocamU24v+I+ zNT4bH8+;p1K5)6t><tO>iju!L!SCtE>_JN21KCV?HcMp6$#w;>hMh2M8#D{E&A3zW zYawA{{%4f^)|nBFOJ`bWyfG0*PAe_)1g*4a1j$MZ2$O~8Gu+-fYm<JJnCaaKm%fT- zo_K%)^WoNEdgqGDJ5?_nBQZsjUi**AYg&i&>20s;KTvr`s~s^`*bcl6m3M4m(0rA+ ziWW@Tn9Ox`<-N2hc;`dlGXI})o-JJ5=XQ0ud)v=*Qn6hef7sr+kB&&?=1w~q)s9Bh z*3Mx$wm20P$D-1!jaxhE&hiXYW<GXU8@Q$9gpT6T#@2Mi`!X|RmdkGSs0H@^Nhxrl z>nT*7Uff>B7^`Fj8#F&Ct{>1wlMU0;sNpr(WIcI}>Jpo)PK9h?82gF-%y7RqsI>)_ z!Ky)fO5OD5OHW5+og2y-BG2bBPm$aGXiN3ySDbk|f5Q{K;RhN|{rTtY2i#^*ot+(n z`{-SvRK;%|uYP>fTp#*TFNgy6TQA(0cQjv$z4Tiz{DF0_`r7nDYsa>TW4zsTz&ZLw z5^9WdM*oa)(|EB{7pk^`xoG2;X@@s`P8ddX8S-q+8N)q!U8CcsdCz`ZRA|({ONsjT z1(dD+9jh_?4*!Kd?qPtCB5I_L(49x@i+pV2yKH1$-i+k*S*w1*c8V*obll}fjzH-k zTa$7TBt{j9J$6u}b#!jIYYGDg&Q@4C2u7hNn*lwTR}tv-)a5eRe4^!|&}75TJ|n1s z{2;Bxasw2XQMg!y`lCh{U*h`*>2Wg<Kv<x^d7_N@S$)1y#v(k$jIn`88S|Xb=rGc1 z8pyALcAwYalS900rAHP{8Pa1Xho|-@N?_#lflDGhTG!#?Lk(p^&HN%f^92vq=LQWP zE^yI;N$|{fc<84yGs@tZ-{6x-FDk=BZ<R|613BQarxp?(WSz{*d)CzFuSTT4-;V*% zhQ5d6X&5n3WdocSS%9z|N%DP~)4!zEV+SM3kECVM?gdzm_5#xxB12%bQJE}=$}=gT z8xrANI{$z!Y|yi8h)#CTgP<)%7CL&cHzhzkB(1o5i=r-b%@-=~DAeAvvSy^82E3*6 zj+Fb1@7!E@$CP`p$cf}~KetrgG0i^HJGWNek!EkfLAjr;m3K_D8?H?9l;63%@=ns~ z7ymW1`k%j$L|WfhsUXV}lKNI``k@F<hqZmgrtudS_z|PFDh&r7$kWZG#<8-`lg(AA z;V3%O9!%cRCYZdnq{r#qH+EPs*%)a%jPZ^6ZArCQb>+xotmVWDC<xioLG+R=XuaBX zBEeP7*yp(U8b?dmkI1J;1p~mZ(Z_Ip#8!O<Z@9h=#feyr^uR<-$Nm-a5XNf^PWa(^ z1{A#X9*VoXzGij)%bV|e-+%YQU9V|*5TOHvd;tVy1!5{xU<e6mzak42P+4jurh>+? zdqCUm5lq1CdWg5udnx6823%k)`Imkd_NQPpl~cJcNLcZ0rffZg#(@cyEoAJTDG2SL zITW``-Q%(GV7AW=!bAeW6HeJ=0HKm_`nL4AC!FH(ns(k)c2YhJa5DiyUfwiO%c+Gz zr{HL23)b#K;fp+6j;v`QD{UCFf+pYRTYLCx+(6MvUuIaO0VjI9D8YHQ(c8fqRy!F_ z2m#S)1}L|`v&)?Uhu&qgOwyO6E<FBd;Tb1kkH=4<v7${w?~M-dTzXiSdhqR52Wk+l zJ#2M=eYbFQY%D!6q2$s^YX`KnmQVfRaYNmRK4tmz*qwohIeL?&LUtiP7O3PXe3O_c zrtm8m+a1*e!Fv(}*Da9Z9VYJ42zTN}HHqsLx=e3QrZ*iEFpPlL2Zo9FR$8;jQE07z ziOJP}5=>l~AaG3V&x|Q>^4(=JyDB|8W=OLj)Ml>UG@ExyloJ<Iyb&7+p@oe(9(3eN zoSP|(oyg@tL%4x_L3m3bf|j8ZC*BOuRG4UyftoAL*~SF;Ck^nw(VQ)kF{&6TD>u-> zEXbRD>W}-###a1SY4#!7RNCbVmjD7~0mL$sZXQ8#-c6B?{}8>E&{>XuAl8@RAJ8!3 zVqR-y1zgD<_zzrsLD@8P51?E)nWBq978NbT%TRRCknOxH5TQbGT%!XJzQ}b0y#d*+ z!@U&buz~yPmdQ!G8i6r`jZy~+NKDKJ!xEfJoyZtKy4!1sD?XDj>;bT7$od*6lTnn+ zp*2u)8a7nPr8>=4=C)#!25%E1_-7fALh!8qW>E6t%y0ojlnes~%m8>rS9~sk=eh!k zy|n{f5dfbt<Z`_~Sq-=nkoI_&*8mzQIu`o~t3g~5g~22w`hrNKCJyqZUZCX!&rJz( zPcqwER05$EsbsNz*D{k+j}{q#Nlq<*m<AUS09Pz4;d}FZHuyxRgC-c;uBc4;Y-VVK zD7Jt!)FI}Ek3(mkSJatC97%s-Y7~CPN*db7cc&hHjqyY$ta4WHmNaCSund}alCaYO zf8JUl6`h@xLw;XMjeplR`696yjbkQ=&sss?wo0AdQ9Xa$$K?}dsiJyrO%S-iMd%$6 z1gaK^vp8_Ha9eEOP9(lHHR~jfX4{hZ?fzty#7QpgNnA2akO9pUj0FKadEdiI^7hUI z%cK?I>`@wSBI~=;6ZiK^|I+?#+jrMsBOAOagI|<+&U0;)ANVZuy6i8@_;!a#p{b=* z*p$1}9T2Z;I#7`pW3J3n`O<DG#mZcslb%~+ibcb)N}cRRQko?@HHuFaN70Qj#F6xL zF?!m05Zg*_5?82w5c$*(?yjwWd<|7jFb;+ZyCF7#@O)zWj<{P}ptst&l<)pfzV6y^ zKw4F=80=r#2Q$#U$Fj~bdr#%$Ve0hPt;F)azCK2eS#VVQRQACi3yvba+!Ca`Mxb)b zl^zvQ)|kkusY>^j&_+|OF;P>h66^|KfcvaVN`!}IMBWP*v_mLQ)&<e+;$|{jL#)S_ zDAv2Mq8H}~eXVXrU_SNNqIk3PAR<g-ZKP{ScaKTC=&4S>4n+*ixSEc}RdwOTo^p<i zmKDIo+i;svy``D4NUvY#%}*ZX4>xIfg%OOirwJznPgiX=skR#Q`=ZGd^$u|p-`0g& zClj?Q6%l=cM_ngLFp==`lOu%}?uwM_K+A#j%rK*yUmVXN-6MvYb*Am%DcD>F`BW6u z4qxi;qST*<+z?1ae?bB8J5;d-iFV`oINw2?bFR0vDamM_N3fePv-z2&(XLCqf5%E8 zT8gr%@VxuE7%q{`#Z>@e+FaIV^uHOhBwLRRcc<r7T9-gGx|$!rRZliUtB=ptkp{*e z4rNj|f1uIFTUq|ta7&vUIoxHi4G_+BuW@-@IbZH8FP#Y`cYLfEVK8JR#9x_){%srj zLusQ%baOR@pegVOp8+#XHdyYY8m^;H(Bc@*<`dxU(o9^Pz;U0zEKQ)?Emi`fh$f6t z;1K3L;o;YX3LO-Hb75eXjD-RMSAnjaZW1a!l={BFLIS7@&+hiptZ#F=uH{=ddeK{u zIMQ?FjWGJe{aiqtal?wC?(pD%QZ+)?C6aXuG=Xtl0^`1Jv7R*xkOS+nGpyvfGt=F8 zBCgF~ia@pi0&+w4HfECR5(=NfA8RX5`C5x%Gmghh61HwE{!D^$7Q^PV{$vNkrh`-> ze-t-^l<9UV_3xSCWn<>X^hD8^Y1g03fX~qksI^h0(WHSb&`r;=gGpn`Ael6>+ZGl} zwbP{8NWo~u0T`R~C1>Ke#0qPgvBA4cHDQF%T??yH+-!kQ?u`LhiSgQKvSWfh^FaQ^ z(2s>Vkn92MR+TkS*s;nmG<KLV0=<xhf|($_f4xqn?h$5GMSoT+^)#E`E!hAJH8pk? zBg{J>)HdeFQ)y!nh!PI0-7Inuu4CM9c10h1bVbk5QivQFcTmj_5yw%@PgD6eo7<zB zr=1^_kELQ@H%$zn5L(7h0IO}XDQbCcx+!S+%BoR8%WF;2wLI(1VgC@ZQ=NHYMLm^> z=dB6BuD@F{lc>MB;Oje!Y&($aZ(1Kg&qmv+EVOJIlF)ib>d*DJ*$eITH()N#Vwtlq zN=<#&G?MLcvZk<&Fr!W)R=B8$(PQc<p}6mLfZN$*Z9fjbvyOpw!@`@63YafSk29*m zzz<BRCD5h_(lARFL7JKh#WU53aE{_1fQSWvA~N#vxSyJo7rb4n6-z^t(c$T72~F=x zWAidQmQe+xgeaG32~{Wbw?&g_F%W3jz04kQS>C;TS?b7j8J0}(+)^7SzKv?Ade<U7 zNH(VCw{0%O5>1b8M=Mesh1Mf+pYb9?Ykw<R_q9EOrm?4HRF?;%9Z#n+;(NgA^8IO~ zt}f#~?Vv8%86rPXT^@>S)9De&z^@E+!Qpdtc?2F*uqDYMK1jYN#g&U~T$4a?od`^| zb@o5xPgZpz7R5Vq`fNIJQ|jM!;s5|>rQ5QWxi-DyOU&HdH1j*xRo*G<-cO__in_O* z1lu#Z*Cg~F)V;C6x#`|-b$2ixTD30p>0Zzdg>w5rNmdl(Pf7}s0mjB6SrhrhkIeub z#+qZeK%otV7&v=yL&)c{jO*lc?iTYbmVVGQY)6x7^*UNGK{Fzkgv)OtGu<}PYzszZ ziGOx8LO5a8axorg3YFPOBEiO@s_M!&`6w_3|H?6N$2Q|A6uK4g@BpDD_qhX-6jPG2 z=O)nJZlJNjPDp_=p&^FVej>OErx{n*&^oMyx-gmH4<VDmeDk*~wo?%eW6d35K3z0m zN{+}6$5@W8P1Sr++WvXYenT~^VsFM$Pp~!8*w&_o?zW_;LToFBw7%aDXnWh(vK4ZC z6yeYK7mg!Bs7HT{_lQtBn7h9W1NyPSAp-TIiHL1KhsVil84Q(t>Kpr(?3C5b*vxGf zlcZpVdV{xu>4*yeXQ$^JfBsz1n^e_wgGH>aOL-4Vsj)I-YVO?BoOjFFFTcAIv*W5g zpS)nG1p3-a8<gFl4MYcEIPMgV3b8;bQQDc7_yPczFF3y#vR7o>BKBD08~_AF2V7WW z*J+K0p#y%!gW*>^xF9{akiU+XPfxlaLF)*l!^j6q)&_532?l(Y&~>4|Tvb;Lk^>gD zk=GdCU`-fl5Z=vAfH*Bw1G?|107ah(IvDL4tD}L%;f^xP&0O<m7I1BfcHAh2uSw6R zAm`qUz1JXx7Av#3&J)BMZ6~}Oq8-t`gEba|O0dQ%R@|it?D75Op;Ny2=39Vf#u(NP z=q%uRvG+0Q*P}*B?GB3qwHl-e`Io2Oer`eel$dmX@0?sds2v<R#+Yt8=cS|KF`7-P zRD8X?<;XD<3m3Y>3M*3PalH^aquWcT_T(8OSfq4CMTpPkTC7?CYf}rJjAr44cr}D% zzIvaMXSu;Nu5V%QUr7$Ec9u#@0ASqEc@}MNYK4$g2K(G&ED9$^TOHv<r;vo}HK}=D z*E618T(HmGRtJNGNTA!#YHmT9*{NHM+2v?RufdtHkd;h+LNVI9aHo)!@i~Y^%XWS` zIO-gTMV18;MMGR&X6`eO%%F^b0qe_$$dc>}D~i?}7UC+4ii3e?3CU7tC9G8vZ6&}8 z;wb?pJ44+@(F86GqSFiWc!q8J(my^yX(BF26Hy`hyGZoy0yVA5O>0qqL9*8>1_Kvd z!@vp#5ZFPd{l28r_Q9i#Eg^sX$gZVKkcGBJQh2vz$37IeQ?ev~^gLWVp@i{$@tdfh zzj-pb{ldM*?pT1d3OUhJj1f%TeKc!XELCP&_Zr4XA<pt2zUK%RBp~m6#J`igL5Yh) z4hMu<k;MIb!t6QCILQ0<lkhSUH?n4cN;-;Wn8-E~dADMr{Ypcb{NN)@hD8N^L2A}D zs;!>_R0w9s3j&Nx==DB~eA~vOlwD_)XuP(Q1x=#hR*1x;HD;k|nsMOU6p<#jkQA*f zZfhh;b2j1^b7<t`2iJxbxY|t!%)<Oe56F7vr98;-`66g58rPYQn<@niA?dc6Y}*lE zV1q)+Yh2QxtTk5vVq+0~dEqb7%2+ctw61F7TQHMzfJw&75Q9p@q{NfeU++1t>tKix zZ`~z8B$=}-tsBXJqDeA=66vtWqKK<O61`hAtv=yfNdypHQstrur<#%WMB@NMaBa-l z5ZUcu=AzeD7g~%Y#1;byb!ZW6M+4-+ftF8)m4#aPDl^D{j6AYCqcz%^Ox{cPXi-dp zqI%6A1u-368_3@z`L=7<u7`}}8F#&O2lVq-+{X`)Z>nX)pBTTc<#nxr@Q_Kxs1>DB zAe2_5roax!v>yVQ#UB9VU5A7E=gsP|6k-3r{X1}fT}E~;m}T+gJ?+f$YHcdl#+W+( zhWIypzyV%+<k86PM)48UZaY*3NU&M!2tSE0Zr4)L5vw=yH2j@#0?y()>7*qm<L~KS zdjyq7a1<X-;yV>*@uBvJ6(2$E5fvYK`O9DNN*u(;Q}|y0hBxB)y(oAZ8`>=IkC%kc zzfg&82+RA2bZ=73LG{+bE<8fU45%&G!GjnbT!3(J)72R$>YpgQXs2(^@Gtm!6aR&2 zGD+7GR^EoJjhPsMaBl}N(@d-n_j4VLd(Bn`%W-&s(hK`=o=gXZ#?U|FCu~hwJ=`x9 zEMjMA$2aP}3U~4H4Tvc=v$}ST@%r_+{w52sE!S=@7JJgJ?$-@A`15NGgb@W^5s#_y zKvZlytMeE-?CcI29Ks1(Ud{}cRPZL+l3+f+8OL|231&17Syqpt(<Bk3QV`4x`O_eI z4S<xvwn_L<lKfS~^9tgbvja3O#A_K$oV~T<PCvgIKX>Qz(~Vb!=Pk~J-OQTJNuN!W zv{2&U1{|A~KN-7~h=Nz7F6u)yz+p$EUCaJo5!z$_)|Oxy$=`zfN#IMH?=1}xKh$fu z&k&KpOad7x*xvL-xZMfco)OWKNyBvWm$MV<rIYXvXlY$S1>F}=66mUwMQ6z+X4*1g zPUiSJ9iztzaAuDaBD5#xI}mt4Nf8yW)aMaoqKS+B^?6h{+U##*1kG9DmVPJL0W2BL z(-wKK$vlk&4R`Ie978eB$DR~j%>$n1h0|~6<9F=3A|=)N6&u`JP{dtV^G}D@V8sEs zk5Tn-h)d+cipfIVa4?&7hS4+6w2Y)lk!T4?Wklda1-KQ;F^#n0$Y5HW)=n0J${4Z4 z<Z1U7V~999i=7XEd9{rFL5}}Lno8a;!~*mAB@^bd#3|pfL>4;{%Q%Ho-fC8u@j)=d z+91g|8o^3}^|_9uhoKkoswv{?+6x6CBowKPNS!27@$`fvmuXJUaXiIa6giIH0vFPu zqfgt+7F<va64|P!A-gGxwC|+U5DDTI4^iVpW(<lADnkCGGbSk5qAeT_#Ho|6LLwq@ z-Usjt^350CDl`|EvOa{Pm9bS+;)Clc%P>}K#9`IDUY>JEV&;K|DwxqXhKMFe7+ZA7 zmfHT$6NFE-MHv+`eEwj*snCy$JlU3HELnCGg+L>|CsBA+nqbdyem+=SlS<K7Q{&Io z;tyFL2KtHlgmom_%5hysZ6<)$qXBUv<KJ@f;zWpCfe>anAvK%>Wz3@g3?5vK#O;0? zX#W@^Pe1@OzR?;L$}wo{IT~oU@-I#q4E>w;Zv(P{iirR`2Z||a8R#b~13jfMP%H(2 zfLH*rre2=K5i@nMj-!80h$Dg2B@$HPF%HftZz@q9_tT2~5vhpSr(UW8XhD??pADIc zA&c+&1nzD7%FleJz#TC|S&X-+U^F{JibP3y=&9~t6M_nZX`|>f#9{bZ9EDd-Gq794 zI_A!puQkTfR;-_9yaJw)G6Rn!@lGDew*?vn{Uhupa@pF2DLxsXpi&hXzz+HZT|kIM z20+#a$cBOquaPcp;af|b18(QViG%sp&^+-U$exHdYB0*MNk}YkTSB$7z=;LQ070nr zr#TO31KYRR-&2V_kPKqgv<}`)shZop6a3!2e6GQJPAy6j@b7i(CN9VX7JmhMD~xv! z-(z(rQ4#34%E*C~7_bQ6K?E@vlE$|!jnAWU$7_6x3#8;^g;|TTx=2bD^7#e<WVrzW zxYDrQO!By+HP95SCU2uP(DXxfR~E<xvj<%Udg=j=igbh@>ZAqOFBt9x4|{UfWw>W) zskUf_A{04F02R@EA4kDL2XjL+RD!0WJ(|B+L9?Cx^kC3DO#oR<K>)5WH1AA;rX!kd zcU=k1JDn|8>=v3)3U<Bh0>d)*l?DPH)`Txnp@R>R{85r2-*i(*?+ag*z=u^Bn(Wd9 zOZW}809%@ZJO!`II&HDxivj2$<U#C_tuYG~A^+Vp2X~m%<WAkTL?I&y)b7&*f^uv6 z8V-b|B82nh1&(mpzl^t>VO%(3CyDh!=;}ceLqSq0)=q_V(6Nq3x*ofq(|SZfV?(`5 z$VN^N98FDTaxC%lPtzb>URlL&AV(^jpe#3I1+|hOE{*z^F<#g$QT1!~f4BoP#_>L8 zFlf~x(7)w#kMZZu;&Z6M<=P+GcXxpPV+Cj{EHNjbne`W7mzaGtrpLUJ^9U8ILWEha zdjxhZe>kx416Ex^Mrjun2<j859t0JA<9uE)=gw&bd9mSPQE#L=DwE>ml+BED&x)?) zeU^S|J1J)$r@^376AsU#+z9DjAJmH{oH30qM%TgxJ&V96vqAaR1f_2ns^*)i-R5t? zrWj@GapaiweDc%9Sb9j1Cb5Dw@S+P!40^_3`r8s19!$4fHDj(A!h9zu$FtRf&C|G) zHy3sYr(cp9_Ha51eE~G!#lz`<S>bdWNeriJ`Z>V^1!q_u$z|+Mr|yszwg!gx6l%Uw z_UUZrZb=4jg$xd4#)g>f#ZJv|qPMSWm(;=aorD5x)Bu20;9{C`RP>0J>k_LT^YXOZ z@zpCA`7B`2`7!?8rw9$qaf&7rCVh$wgwhnfkJ#}f_c%ou4U^49FqIXLD^tThMV5G$ zrU)==ifkltig0otw`c%s8-haKR@}2O%?p>A8`|#Kh|*i;&Vy`?PK~nY9j>6Z1XD<6 z6ig;I5Xx&GR2Lk@w<Cx1?GQh2|8^Vkl=Q{Mgz4|u3b-w(8a!rM0-Lt%o?iQKdd*9g zDfK-vG|9?B2kD)URNhg7b~I4&j!Vz<&POZnqy_qmn20m;S|!53Sf%XJGNqR1nSFzW zO7NBEPh-urk{)(`DacAa(b%53_mzMfYsM%2nE3gF1<7Ds%XJIWMy!c!$OQo|&v$x0 z6CdNam$bT2%gKW#AAo!X4VFVX*lTf0Rg5Z7x>n;hd?y@6)FkJJc~sW(RUZ!0c!Ix$ z_r`g#E+*YFl_I{!Jd6CE_}-@CdmDJMA?^yA;-&GHHomXVZ;snzwie&p!i$~pJxQqW zo}|}T^d3b+G5mzcm`osusd%4CB;1$f?I(|=Njf)8k~=uI5@s?gAYW$N;^;CHzoY2B z<sdUBPFrUQodN)<wRm3W|HIy!z}IzE=i<6ok|kRnlmbDJ09T5WC?SIk0R$vL_b{2+ z3?+t^*0i(@ZQpx&Ep6T6B-gVtJ0T$kLJ(8q6#Otli}{yQ5kxVR!A!+aXhp){G8&pv zw}s~aecxJp?{m*NSA*jK?R)Ysx%ZrV_C9N`z2?34+JwS>OfX!TVAyO4U5pN8vo}3V zLrM=`l^%4tXW1_<_mKC5u9;0p2{-YW?y(%XNf9v$tz{wtyDn>m{g4o59MjtNgeWCC zTW83M2q{l%8R$a)>u3|&uXwOwodpg(T#+zu>tTm$xwY2%1pk2zyUB%-?Mf`StH5$p zgUzt0N?>yOikFu5lMuJ16??eVg7$n_3_pU!D2OG}F+p5Sga>QKSw&vbVrAeLtpmFK zR<SIp%-VN7_y4+eHJi`-`v0JpU3H1=!U=Au$;1Pfydo3!!|=GJhw9I3GM%d8ilyp` zkHO#gV;}q2$Fa!b1vo8WqM6}{04~?9#Y)}NaY(?kp8cG4>%v+c4hi@r91-xV8(xaP zU-Q3T|8*?Z{pN3CwGMwT*I!t*`@Qh@`@jGDuXx2D;O`Ir@Q?mz<HkS!lUHuqwCU1I zFTL#YR&8@_OKodyTW!1k?Wpb4zscGa`gdjRD*d~<c8&gBTf0vGcGa%ezZ+_=(!U#P zH|gK2Yd7oP?%Heg@3pnp>EA82*W=%<wKw43RPBxU_omvL@$W6Q$bQWu-DRzJV}S+# zl+QPh^n{=zMDbxU%@?{TfPF2067}PwH12fZVxCXqYg}c%m9HT~x*D9tJJR!8TgB%! zjNJ2w@O;*~<sk)0x-B(yN&4nmQ8@>bpK^gxU>fT%lA=7!;Z3!Hfp(2ND{)`~@esaC zCr`tHruWG)*aP<6A27QwB1oFnbXs=gPc0Nu0DNZxeDg0TwmU@(N$b!(2}jZ~iRcZ0 zkw2MwpjgYk_L)z-`Q}gj{X6|AJU(?Ro`N4+*YfKvzycO6(2U{w7Xo)jtKqo11jp;z z;lSp5rKGT?=WF?j!+m(i197#R4<@)=ZC9Ch*QJ;Ir|m~l+aR~yTc=XHx$O-%<w1cr z4oit~6doyopK_qQN}xcfPtls_Fw`3p6!%zQNX=Nn!!c#;n=!p+cWUu}Ox;}17a<w9 zS9u)F<+!Jd<<9&jjuq?Ogcw8DML4J;vqEY1kU!A%{F5yFg++Rzu7$J7n_bN@-^I>L z<UH>dkMj3Pon0>Sa{TV{J77Y;vs-u8biL4db;_Rr75Wq51oY{k_73A*HGjQ7B5r4T zQTCq#m;*DIVH+Tu9wB!u#^4(U$Dt|DppQ=gd;Ka=dY$2Bs>a1fl;XjXYcEFGhXF6e zQcw5rvJl5@EHi||HJZhQF=TOsask}NC>o6qWh%f5n&LG)B4sRqd6B7re<&ShN?S}3 zr4&6|JOjW*T5N~!X+GbW=JTC4pVu0N1uHScduYw0k7Pp-wEX}vM#d3R^KHxA8g&h* z5pZD~hh4tm@DktStR*tHr_9j`5t;;U0`biWM2{U^Z6Lw|MP%<bh7svfU!^zl_z)w$ zkO6WS86b>{X_5EqeDVr^67$kU?)fTjPV#0?Av5@G>D`|4fyXfEXLKW=#!w$qiJNQC ze5d*(QrhslFLm%%!|x8G2|{N*4P{H2)y(bJ+q@Gx&pv4o9@&Tg>fwGx4*(19ZLfHD zdW8o*w-)ikic?#B(0VbYBL3@Eb=Awo!29X4H;B4IWxv27eE0tM20x1aM{%%!nIQ4P zg6ujFjY=EHDa4EV(;S7E<r4tpr6d|v69ODM!30#tkcI_rk)ohT`K$+oj?_^(ikkyo zNm>J)?{iwa7?(xprW15;v8iAy9cqF9UwkPP%zh+=h|Eo|;HBVgCN+MA6!IscXrMzJ zhwcyHZ9zS8JS6F9@M1PKS@du2NH2G-{KrC#zsMUO#V2F`(#3Z%%)F8B%=YgMRXjKe zQy&ah^1+zv<m3VFv=L?RV;V~vnam^z{>AFo{E;9Sv)~{2!-npR591=P0<ab)*YZ?r z_zwY5i~@Hlb4T@~{s7ts@wui>d0}=ICqM}wVD4ET;K5^*0S6NBE(7=mi8P1+vLeU5 z+sR~>RhvD&kH})(VEW(rxbYV`p-k2?0>IIDn0ruwX8ZH}k?C5RQO-7`t0RaRW}sh4 zd=Q+l@&(QlleqMhXj?>kl+O)~0C`#ox~h)Hklba6p|QtK)s=wPckW|w-yci5O64*E z32g&ik4+9*`i(0>AO{!k&8VV3pK#^7rhgYN4VDEl6*!U;PUDSqZWwFoFqhvR$ac=0 z3BA@!$tfYe0Uy*gXq`>pIpp*P>UB1=HDvT=r?=bd*!#r=GW=qK&MSYuT+o?fL2$c$ zi`JLY<1T>lII%{bmY@Ah=)n@P5GjqUrD81+D*22|c@S7_TLm!LU_j^8V+;%dniv8} znEgru#v>}fCD_N!u@+{XeI!MUwK%0HSlOc(Uuh?YPT5h`8}WO9fC9K(A_=s~+540A zcB}k=24PnDBnBy~`~cU5@j50&0XBQDjga3l`<Q8BkZ-{mqp3EWb+iF@i=mY}N#K^_ zMgbR)jrS1bB3OGQj0#{)<IQ?2AhHMW<v>u>9@d{%%5Tt!q^O|3z?O((z_Nq2INK$2 z5s{ja9BB#?JVY+BXA8vmjWnTuXB!1K3}m~oylxAVzk>IXd^X~vvi;%I{tMQgO>joK zj5&jju1iQg)qy=sF;iIqleY&j0zOkTJ-(g#cFIS>nh}I7EoMFOlEzd$Lu3)xy;u*? zX+bXrvh7zr#(lfgWogqcr1^I_tuGp|!;01mZiu=%_2AW;WU^E9eV4M3d058(Km;+; z5`Bi5xc3wB!!%f*h>HXe6n?$=uLRWcuL81)V&d-9-jVe}6BDvC2r-i}D(CP=sj1H) zUj;#i=ds-oXJvBi=z%xll$tfE73=2{Ioa$#tu7GPzom{{<v$M(2A`F3n7tli3MAh& zji7Xi^>oq?^1Rxsxw$U{Qx^+lfvt2i$GRp5e2Osn(p5hpDxVXS(EgtGe)mhF02cO3 znD#?8sDJ!`$Y{<Eq2$K{M=^pf4hk$bzg>b;0^I>iGW9<bmfS3Pmat^9lZ&0kCUcl2 zTS=nN#Gndh$!6Y1GFL{kWE(G@#;L?uc9D#agKM&7a}3hBS;99I&5~Vime3IiW(l1X zgXyVxvt%=kgr{(RX#Aq6D>(4gg#5{NPey{<&iam=W-zAbXdoH0Yx$FMPwLP#H!}v| zctZN~>{rdO)X^xi43%E#x8NS;BkS~0VRq=0u&qu|fJ#{^EStlxut^%qK(nKzbpVrc zz)0O#U7(I&<{Vv5=I9XrCO!^PX(Q*;=Ax)a@|kp#=t}Ah*&2j?w;OjYXgQG~`~l$% zUGja6+z^ML;vmlq`k-=VeM;a!^fo_A1oKcCi&;S!8+U7MTj^#%VNpEqPE+p^hduB? z$z*}4@0Nob_=J38>ezVZ#!m&;jt<qbf(UtSddat~T9f6dIWyoTIa7|T0&L{`aUYPq zkOOG`ghN$=8UiU;jN;?`#FztXI=OTtvh5_Y3rJ)UT|NoH1|t^uofN0(W-cqJj7hDc zoj``}`-6U$AU(a!s15j{hhtJHiHx@<th~#xa=xH3tSCPML;W`n_3_3GM}Qm2KbRPv z+6KE9EXWxX4g48@7)Lj`1Om(zB2NJlO1N;9V7WcP;>XFblW1)BvWaOBh#N(8(BCZB zU~je$ia*9j!v&~3p;hy%U#4OiM_!V%@L)Fmx|3b}lB}%D0tLM-!S`mfP#!J#FdED` z5s*zscapv2hdZyMc_cgy)DxAnVPO^0J9nMX_4WkLkIV^ul)&K*RT@E2+`CCly@k2_ z7tRh3HcH4Tc?$1HT{}Y}Cr>0<di0&09$iam$~F^8N`hM_a%xp%^ghCaV<B9cQK|tG zQz9oxwQ-6Y@?BA?O$lQK>v+o5Z3|KfeNz8wBF6b$tR&&5Z$p>j2u>Nl@v))M1WzBp z3?Pq?cg!S2D((xhQ5H!22!TefT^@-jY{i^=oz?U~{yqkE+4?81CEF9e_Crd3m_MJx zA!7(fIAj^41$z5XLao=hVUuX|NIp63LGFY3#Dsv6iwP{V1wenmH=UIL6_W@rNc>SE z5ZG8=&TLMM6EaAOSwfcMwFA6{>QVF*6Jp-{G$&ai4pW==W&=S3MuIn=H~Y6~xbDrK zq2YG$W<Q=DcN)dxCMxIjW<NuWjEdd>;67k+(cbLTKR%!^Ri8@0xHo&cU|)zgyRU;c z`)LBoG(^qCVd9=R2f)CkIWM41Qc#gG_DISX7-Nrnvxfs?@V)4;%lZS8=Dpd-rMS<M z=b#bF69wv-0;X%mu|7vAPZ5;pYzjgq2*WDK4v8iTkWB%yu=-^Wh~rFbfJ{Z6AX6K8 zr?4eX!<zbY&kL@HuZoUCEf?1p2^$8EiXixfSdgx0Ta)A>hKbSkD9YcZsdl;>2Hl|` zi{xV?w;piFpDY(;VF}~rk)G--t$Bb2KQ0{DFO`6OSO;Lg+!0vTC9DKCAQ`GJe7z6w z{ST!fprUdmzGpiQfvKlI!y(*R8Um6~D~Is4jzeIz<;o$DijODBe4_*`N-b9cd$=R8 zOog2jSjwE~JP$_WEv)`8oW{RZ0vHE^R08~+jsUaBV<o_Wu<u(M|6XYb59lz2BOQlu z|4u`wCJ=K3TmUXgru?u3?EN|bdv`}*nc-WBZvx8{DjL*~`}30aqD1$PN|1Lt&g5uE z$n7|j4x$^T`h5cUzn1_<CUYf;|F|RIs+9B7&^iBE0u}|TDuHcnv5-$$L9zl+NBTIP z(r$}`&|a>pN}F%%2rSF<bO6>3EMIpj7>zsAyFLB6KiE;SO_B?loW3hdZI-AFI5@U3 zqb{|%rql+>oiHcU6T8wA`D&n5)S{flH!MZY;=MU;5xIG1cXie9hte9T+1<kwJ)VD@ zKfq$p4zFOU-UF#oJlT4@oONayEttb^Sz@e|<$lYxKBcC`a#<!apkYSKu#>;$9s`3b zaBL8krWH4eSe>?YkK=Mp*AUW8c)LOKS3WCqiCDWB8||%t4piBcJ8|+S-M&m1-r-p{ zfYE(9j);+Q!eYJ}E7|ju0!TefJp~Eudxf@KsOWKZ9nEu(#V~y;?i?A59mk0MX!~-P z@?gyhAN6S97;SI^NcONUraY_@d_*iE$Y&fUf>4lW7$pk(wcm@S2~c)8b2C`S@$w!w zY_On5p4x6oxNr*^Vz>_j7PyvAn_GvP!>QD>1+Ka|_3q0bg9FXg00jbYi6fhi%dl=? zm|l}E&DCpD4^x)hzzTazZeVl8#6kzC5hl{$-S$DgK6T=QgiIq9P0)41=UO8aW7cW` zF_rrGf(7RWNFL4o6=~BL2WSPcp8`7Goa@7aRuVFXWg|Tf<}6@Ck|e6%(un>v_2eT$ zoR}lY=b>~DcQ<(oGGZ^?I6Q;+Vn8H6{kNC;!6IreHWHlQwGO^!zkEx&oIEBP)vf{E zD0=K3XpZ26D@aOWkyn@_NS*Rs8?f~8Z*o`1u~gcJU^=}Ef3;9-wcjezt-v48WY>{8 zD5%eaT>(jFk#vjJkWzs!S(q-8I07W5w4-H9D>iZTvI!pq7M(L_87-7E@N9t;wxu^X zXFP!GC6>I@2i(Gr6BU)4?nq62VUN#JQYt(Kn#N@$9T!TcqD$Yf#YA}0LQi4PSEPQE zD6rTDmeVzGtcf6E#yXX-d3s46w$QHd9z_+1i!yPP5pl^KZjnJX@kX!C?duv@Qh4dL zrI)&Bm{9o=vIA=jtst*442IAlLquG&lmxMD1IDtp{VK_h>r>y(vNUCa5U1=gvlg*< zGLFY&nQ{u&#$<G>^3hVh8DoMZCjfhD*}f1*><(WMN3@5c-VY`{<848#Fy?QzL4xtd z1mg!+ozjKVv-v))e&iB>6mapip)rQtZDTJ_i`OnKOuo-EC8=abjvjiNylWBINF;U% zp2ZAWRA(HE?8G&>8sx)Ol;9O|vyTs>Qs5b*zl%p|%w3bOK2h}#jDBVp{$POc&=CI7 z1Od0h1X+fnd&`%z)E7?CI)TS$06ypSM%nzBs^ayju+@vwsz8BTTCqtRuS>%;NF|mP z{ScsrXAw!_!4g>)b*)aHbd@x2OsK}-M3QMhB2CCZ3LuN<WrHkACv8n8p!@(1@_5+E zNT4tZ6^Y{c0tS-Qn7t2d=<wJvKX@&I=ea~?EL$;enJcUcy0`tt++UAog5BauoZq?_ zODnVAA1TPQ>k`186aYH{ZOwRs)t9yIV0K^8Sfcf&qYa3r4eiVJmSWXb#~HV1|8aQO zEETHv;Omgzg*<5Z*R|YO1rW3z7$!m6<fa4)f8%C2c4n_a-RjjEm&p@rTNvo8(m;LT ziOyUQDrO~WPu;=0LpJ07JS%BWooyH}CUZJyPE{Hban(}}xH=Av*=-~ub{i>8ylbS^ zq1)q2t*=WsacU(|25L2&*vf$kTzAb8L&j<$M=|*?ZMX_tQXZ6v)eeK=_*>vOADl!T z@2!uwAUlmg*5R>i_KIRQ>r@(uQ?W_o<N~n2jZR?e6ER}5T`2>O782~ccA9S4N}{Jy z87132un1<Bbj%ai0A>}Ny|n}&^8@m1Hmg<7BAcBKShP2n@L$pn(ne7@Qi4*>4Q`Rm z2oQNJ07g7w(1F45wF83%5+!>%i7te<Zcn3g-ZE1L(vk`qbLaGOJb24=)+g)GSyfw( zp_BT$=oQ2G1d2`Jly*73rJ!v%8%;aKipUCDncI(qe%@*~HMh26AFh6wnu_Nz<ROtO zF3d;F8}8e^Svg!oXahkQ${c-?AXo$=3CK?2;&jmJ73XBJ8$9mwXHJS=bUs$=^{mTV zh0mn-fmxjdA+sJ;rpaO*(7UIAUW%2ti4<rl;BreVHgH^;avTFLv9EzDlQWU3_!eaQ z_SD`tHE4G?%l$Irxo#U8SO{2F7pIB8EPPADWO{*bX)yMM3E(?ExV=l1(i!&^n^yxQ z4NmwmZ*#aRLFd~XjQvb>m$x|x#AwopnvArX6(AbBwdNxa5C@9ygYi^+pGT?k<b@98 z@%93FDEJrl7*~-;Y~bX<1~!K|@~|EKf$MUSx$Ujk-pNDmyLT`T>Ob|id_q)zf%0~y zt{wG87&+9VppD{PB)?;z5DN}4xj6EFGDwp@a&-dauO1|Sq%49#trW*|%9D;1@Mpac z5OW{4vIqgOuRsA35VKvr!xeU2NkYUHISD}`;3*nGZ2>Xamf5phOwv}rUtzwswPHU< z)(A}`rI;QiO_eO3IWfLHbv0=bF0(lt%jzmG!M$4<Pop*ya6UNzzGkSX`58;FP&RBQ zSVH92b@+fI3gh0!Jt#ec)@#F^hEm)Rg`H@xr3pI+VIY~zFt39t4nv^L6i2t~%%@y$ zi2~!=Zy^}*`auU505uTAwG1|To^V`q;3F6kD{3&~fw6!n9ytuzb(}YeJ&wLmaRYF* zK?}InduSEdLJwN|pRK5sZ_?_z<;UpIwkf-ZnKYwM%R?1Bs!m@PCqW{b&eL<<pRGFk z@jV3+XU(K$+u4sH=#U-wVA#b*nl)QlG)aW-GTAJ5j@Ool3YrBGWp8|EXgP)}dol@y zEv*Q|?q#BO2K8fzDNxS_w;0@3<Ak&zZ(?{eJcoJ9re0s%-@P@x#BFaPCU42GLu|Zq zqnSYFsioTrHE&q2Y*AJ%zQ~iq8G{-s8sd{SNNui)x#qmt50JCgcUBiTezF7}LxM%{ zHlpqH(N$`z-?CQ2FE}NBkuZBj>ebUMvDl1W1M>@gQ?Q~DX*^_mLH1_6CN4DZduU?E zm&lunSMm^BF%44g6lXqUGahDJI2-EdNVv!$RXoS_423u%Rx~ow(8e@2LJh!lBaQEx zG`=rd#9K!+qa|dBjfCUEISpLHxCk}|xtyUE1uMa?sQYMj2RCT988<~DUSM;*Ubk4D z+|M}P!0Ok~OFTmfA;@mkc4k%U9yGA(+1$>~fTYymB_<CM(qL$B7iWI<ou?MYaAO*S z6XuF`F_j~OAg4~mTeuz}aXVRSFVZ5cCD$)V(OsApiN;B!S%n-dJ!|I#jUnpCp>3e# zwy*RYNB#RH6yNcQb-5=d(i0o}E8-m&`&Yhpy?<YyZNdz0Ob@j%0KJq?0b7`|T)nNT z6AFRCK$^5K?0X`J-3gh#&MI>&-^Mqqr8ciEwK4NM{~p5&s3<kNB{lOxSTdXPuX1#@ zHM_OcEET9aO7pd+!?_DETL!xDXFg*u4Y&?=>;8gBr-=(Th*rynlGPGhxYc6Ek!_&! z5rTnKjUEi<eXUY}SZLNLfSE_l_ExdOJ`$Xll8>^569~jwa7-aCUV_jhFd(CNX%w38 zeW&+c_D#*Gb*rUdB*jP<EE~d2C`vJvX#A32*MYt85X>0ra@j5%?oilyQ8<k$XS+<$ zcEMXbT8s2(Uaj*iWxN}`50Tni6t(DF11<#;`50;EP=y6ygK&)csZPPZEO%tDsO-p0 zkt<ftL3zpCSm-y<>SIBv>4Y;y*jMt8VfMij@aIQW(?l715DwQsX&w~k;d#}OvUx;M zDJJs%0(B!L6URb@2z=ttEv@*ZSB{}MmNOn8mb2-DMRB|}HFI%{BAV0R#PN@hs$=n< zMn=@im{v0sQ@yr_7K^}$x=k9hgrn#}R-y?${cK<T=SUCE9&vL3G(6!yj9%I#%8mr_ z?PlRK2Qn!6z`x_*-;*p}u^yXrrx6h?)nO+2t1>1OBPczFGsoIf3f2<<8`2m?B&^~H zG{A;m#;9ozF%birmc<!h8UaoGk+Q;R9b?Nr|IV}hindGf46CcssN4lYs$U$HO~afn zkOWG0_#MH|f;`Cv3#hv~z2rw$PR6V*bj*MWjRg+D*JU(-U}Y-An})yv6^F1Z_5N?> z#c^$^u-O)fk>to}mg`fy&E2wxZ3UL^N7OkY6L}mph^TD;J0J1fy;y-KxDN)nT(d!f zx9l9`u;D9L8#xOQXQTLlbG89Xu6+I!JWuO}`$h6X_KgV!*9ohz!=WK5-p}G6XQQDE zooKct)_Y5898H=W+kk}#$y)N?B8=I$re58cwe{9EW0v&|^TsT%`7%jZ)ijLeD}`?| zZ6!1@8KeH}E{bMc!yHmu8N0!lrKu~+HYXWm%$^CXC~+fVB^tA9y(6(P&aE!3+25YV z=f<oeiCA|7AZl=1G-kONrx}H0hl0wc{-UAo(;U1b_2zTXH-{WE0rn_BZ#ib@7UWP8 z18t|Hj`NKs1|}%jqC}9DiPcH!e0HJ-)mb(xxnn(3(2a?w=^N;tqv$Bn8$?AbSFiLy zhefO;2<$-c*qA-V>1R(aU7;|_8TqCPKfAEwdg~MUe^7WQcljUGo}cWQ^TjdF4%XUq zL7yqP*N^xlQZ6ZQ=9X4$;hf19cn;E`e5&iVil@PS6va`Jk$w&r*QzE{L#Lnn%}YPD z5w&1UEU#@}1~MV%bZc~Bw~G31W1dgwX%z_j>IB$NOsX<Zx44XqbiR;(;r1ZxJ{nYT zQMlwz?Zks0A^UPXOw%qXPK2l|1CY6T=F%ZxwI03T5Rb<MjBBef1!}<>geGib4zd9e zzNYIjW({tz(A9e1fqRLakxG`KSf(FJIZ{kDyCDre1sFM-ww5D<5pPLi;6`syHkK`- z2x&wMzMh@HD(3Vn;V>~%NI6z8+o5fOz2g%@Rrj6gpjN57iw8;HoS^h|2zDgILao|5 zAV*1M1*fSp@xDhmpp1)lG*G5)%J!`r%2nr?8dLu}*Wp6$h%qi$7AtW4t1%^|19#38 zxRU@i$D=DXQDV;6z~{$CFaa!&!W3&)vfEmnpN4W5o7%*JpQMF=dm^MwmjnYs_~oxg zdwD9@;V&vvfo0=3i-2+%?NsD_%woTa1J6>41`rPCHLBFBV}HCXQI$db*;T;(@(x~Y zUWm^39W!=@&lpm9JdvjtsXRJJ78yJ#=K0{0XajrLbF}P494JhyHa_hMP6U&03sbeF z6`T0PvWX}4R*Bt;$J?at?wXGLB$y#c7`hvWLmlk75wM7x?aCisiyTX>G&b-9ZS^8e zT~h)S!BoC^O#dH6aU`&G)QKc0o7p5YcBL*pV-nUvr6w!P^me1mJ)n&_0WAMou=bbo zL9b6eI~LJ1Po2Jm(iWc^k!{S+7D@r?%LHrx;l^6j{Nv|3ifBjs1YJM>zJ7Rl{Jvp$ zMdb)B#9-8F%mRTfwu1fOslkd@^Gr3}2NUq1Hhmw*cPlht5ogb}voLjIz@Iuu?pW>@ zI{b8nE)sTMm2mKObJv(2Zl~0`R>r9Z=!O?!MKT#L0%kdRF#0rdY1*6ylNHL-{ghqK zUm12}i%EWB@KgA7qzRcEN2_qk-jtNC8FW;@@>&r$lz`af+cc-*?$Vkf8tZ%!g=^sS zm{`3BLY|k3@A9=VHtd3IV<?}H@UuJN$Eh!$n`YGK!U@<hBw%>!i%1Bb5cIVTnn)lr zeDG4hM96{$k3nnj7_>=rP&hl@&`8x&bnYsL%LwwJaC$854!k*vZ{xN+EvB*GlE(g3 z^Ze`>18`gLN7+BDk#Hm}v}yRNZ4aIC!9(yY&(-k}@qmFDZra`aJP|NHD<UY3-%}pk zogBeS+-s2tSZDKfFmKQwqD>B>6Gmo}fzI<wM{28aJAX{A=6D*D$cdY-J^!Q;eLGN7 zaQ<|>&z2waD8`ff&1^I@2b2Si?1h{C^%hs-*;^9YKW75Z>=lRw=SV|qAe{-MHM)bO zQNq|%%{hAtZ$kiGjCdNr^K@A~=#fB24JZReD-r^5el{-xv_g&R)=Jb=wT_+-TZeR- z>elf^&Wk0q>`7?x2zLrq?;Sd>0mJ&l&*~qHitBmsZ;fsn{5IGVel|T0r{_KZ&kDv` zDi>2>SUlt*tRVg{)eqOvzo;O7I{t9<uO0k*_BrS9*xyGy@{#8~>d`p)cigIovxayx zV-ay2`HLdr&v*ulh@*-){!mB!xqj;JdX*A~O6Xvbe!O71uyk5;Iz{()SsBbngY;ga zy<dp1lj_$oYD4LPLTWPbxg`E#ZVuzG!J>3p2vHBHeExcIfnly_MJU|Bf3b9!$*E-E zGf0FYXnKPIAsNZTUvb<dd){611$ySizYvf?&T0?H3k*nZ2YJ4pwDzh}cwJ3*b$hMg zlYE31)1Vi_6}#urG|GCmr89$h_qn>eOhC}ZT9<p_v)SNm{Y0tqY=iG&)=8A)hkDbG z6micg06&a-&qQCBJMd3Wz&{P$62x_aTqi?4&04R86rotpy>x939vnc3?g-T7929r$ zJelB2usj@Bs#vu*+mjgG(-%YJWPkbv1X7l*p{_7>NWR2yMW0cFu}>Eqm3>mA5u!vj ziv&uvf~6M_oz8P49iy0(lWCw!C(}T+PNu~`>bpy1YIUG;>XhAkVW$!z2}CqlG;rK7 ztw@e5Beas03@B4XXfNjsNOD~iq8(5*d>xG~s3x;QaXnd7Rqsth`r-+va6`xW;ykyA zu)(LH%I2yqi!x3LovoViIo*X3KQ1CPynkT`{XlxV^ZjG>c1I}4R40Ls8-ce1Z(m7% zeT)OMku>j7>~&Ud1Or`*-620DXja(hILw7{ovZ|vY*Za2@S*8yB8sztE3V>iWnEf= z!74%Aw}9`hn)v-wgi1w=a?<LPy!i-mYj^W5UW}3D{rkC+Of48KV)}3M_j7?08SpJ| z2QV<wYr^Vt{P7(8*xM$pbo*@GHgWZLeD19L8_#4L6Igfh$1?-gDY977wO8<eg}<F) zzeQ=QqeMp~u^i^pa`2yuo*nkXY<((PV{cYoTIr3e^Wcn7Ucoj-xlGEdZ?fSq8k!~a z4PG_~h0BLvukA}h$`1iD@m0xSK}-SD;j0eRtLQUYH)32jqpF!UNi0kmEjw}Gq5uQu z2aA@RWF}m)>%W!w=BsvS*2zRg8^>3*`%bBymgk~0cCIbTz3-=Ho&~{0xLh4mNrJmM zC3Mt4@0waDI82<5bG-jR^9X-N%$JkOWEZvBNlw=K5@BB_?t)(!^J$P5!b*wVfxEh$ zyHG5P1O(O+TS6A$O{%I%UkT#CiaK(y3z0YO;yy2(Yzj?|8u29jZr)t9M{L(jutx|i zYKuX8D!QssAif%jF__$oobyCDLCCWMzHG5-BLL80La#{UYfEbhnjX!9tsm=IUzOT8 z%~htg6lv$$QZuEsa8PCi#s#fn%Uz|G$z6C=ejh}Ag8yK6FX_TxZLaX^!Gf_%-@AFx zjNNSN|D+mF_7yHLDJRI5#8M)ga;4RvjG=v_<20K44y{_k>$X+|>R+uEpT$raB#oUg zeiK?AtgsXm7=2$ie5l$Sfl;7nDG=mo6c~C3m*8^+EHShX`5D~X)@_vs$82fEc7AY- zWd_5Tg4e6O0S4*mGMI}E(G85^H<yq^Z$LE~c^OWbHrSnBa2d9xxBbMH+ReuXy3u0_ z70F#rt2x1*=>rrZM2oj&yFNLGnlKXJx@d=?PbOge02dOLhw>;Z4EQQ_Ve1KhR$fmK zMfYgBI?vRh!c1{NBQ7T-dA6k$AN1p52%pCy_+=tZLH^7Vl+A1fJwyYuC?~h3e*M^z z1;zidNj&H@1T1(Frd<(ESFWAn|Hq1}FE12V@xl3V#dB#m(InS-aTWXh>EUYc$q)(0 zQp~_)>V5Nnh@qF8q_!xDXPR3D7X(RAE}?ztg%Og6F+egra?0w}t4}?R@sZIp&N%bo zXPtExqa)`cKC<Q!43FTDwZ}dF@jPSg!V3`~!6|Ezd1wKavcF~vMDZjt&~#e3IZ$4> ziA{XTflU|$gxtZVEA79goMSlTi7-Z@R_P93VPYcBMuv%qhjK4xjTF>MV2wu90G0zE zq-K>)xuO+;be)pXI&mmBBCuhx2gbC$va;a61Zh?&g1}#&fOfoBbI*YH;NJrL?CW0% z`BoS}cCt$lazX$NA|rlJ;3u(keFD>u@4Wy}YIu2#!SK%cW?f;hlv-Bm;Bf+Ds&sho z&8b^YHF%u51(@s>>B#_AhxghLa)<XG&U+6>XnY0qALWJH;nNj?Wg4A$O9O|RU4)N- z>wpTPXqkjX8vd;b&M#S*_|duHryz<i+W@m1JLCVL7A=th!MuefEV>Kpi96t#x0c`* zR--oXmLshXwsN;zI9Atq6cNfrsuoERqr5nIKyX*%xJjJhpkP1{P!P?+sWb>*VmMEO zFjJXn5e#s-zk9KTzBby@(|TKb+dyEoMAz3OWNQeR@RyVluY>VUC~z5UE$Ss)ZZH)a z;d*m|>s_`i#(sq#P&na|D>`O;F&|)zlkE+89$%s-Ll?UYW{!=c14jUDVK7boZ3((} z8+2zEpp(N6|GeTQi^j$6>1~dShZo-VSq@1Kzin#(dK7taKVQP3p-3S^uypk4V=?4; z8hUcMg8WWl1VIowemsurG=GwrV5`%U$U3xfg*hda1x{<5--NRFq(OMBh#ks0Q~)SA zV@ymP!E0*{AhUE)t1!>l;iA6`M2@f=jv`^bFTvrb)7u-I7cnq@TRNS7cMv2%Pxj7N z=TD~}O=8m<`VDl~b_`B2aQFTMhRaUoIhSN7PxC?!F@G5|$<W=L;bfoOL3rMg`gP%H z*}qA60%QqK8_01Ho&;|yKSSXHGZZxlX`~bBCo=h)1iv4<WXT5k>2VoZ6mu@!qX_v( z>gulLr!Y2ZE9)Q(idfCG08OVfD^yKF=1l+9C-XC%OK|exE^wwlmca0tw#?;Gff4<x zPjFUM$SpV3pW)5>cbMvfsbimNX8r}IjCv9<YpQJ|$7QO6mI404S1mLnM<GuDi_*O= zfubO4C<~xbB|6u19n9J6Y;h=r$SJ3BJzM0o&nGnPF<EU1f;s#{+I^9jE@c0SLL#x* zN{deR!h$=11HCbcBG`_SiJ+ZJ+Lz5OWN*0>m-wo=ZMm|R>}H75M*O*YuE<&q(Ss`6 zg{^~h2t7r%TjWd>mS^_)q>_wi6)RB86@8`<^~+?k7E$~wzDkROEcAh!^ET!Kons`K z)og(*^p9x@orSo|pd>66gjQ55;ll#Yy&YKS>#1XBA(q3)vk+hw3)x71Zdu5}5Z5h% zyEyl5_xeQDKe%+GUHXGd=gD+j`DQ8|*1cH|izV>5O($0ntK^M+t>BGu_e8T1vm=Ye zNVc?M1NX()z>1M<pfLglMDRtCW+vzQz6;hW!Il}&7k?ge8lrkJ4Nx5uzB0Yc?GKZd z5F0coN!)ygZy4n}HjLQ&71d_yhH{w^Y|)YtW8jyL^kA{5QO9zTAmtBgGp2Q;T9dAi zNgKvYJT%j6R4f%*G#*6|*)2NFYTQTKz-lk6A<}$B_8ftvIZpZ0qgA6NwrcbXxXEOm zCD~G%ZoFhXyH~@a&&LvTw5V7OlVLqWGIxw%VMyj4tGk6<Up~cfoIN$lw6o~p&WGnW zmhjx3>?;s@1r6TdF*bNzT_lwX#DEHNGfaBWWwID<OE2_bc#1P0UUppLCt#EDIoL!@ zVhJK(6Pz@EB6CD6NhG(8t;9Bm3v8n;Y%yMoRmf8EX>8$qW0{X@L9`nq->i>(qjffP zgP$*nd}HByi{8)8H}Pf8H)g07_(n#my#w(Hl8$Yc=7Rb|K#I7rA@L0<8?>&4Ry`Xz z2X#O}_r^J_Jz%+yfpe-Nu#NdyM~uU**sR=ZjN{9#<P<K3^(MwqrlgI;Tqfq6&@iiK zwgSv+t&=I%V#~3-=Y{!*<}s!08pEE4pCnaC$TVu;WMWsGy<yaRXto(At1kin>zpv~ zKP&C>DGe~Tp)Wd~OKt>n_BQ&o!W-p-1Qi`v#Jt0M$itZDLOEbDlNl%S3-EZuMVQMp zucZMn(BEk2Z!HI?_dNo`!=hdIVImDktNC*bNU1vL7Xw;1$AFl9!!2p4hzPMYA)$1y z2Q(1@&&xt4*Fa>-Ngl&@E}-P`7{Ube$-;NEio9dHER1*Ddg9s;!%h@{mGq6{{*nX? zc3|{!-ksjz;!hUPoNfNR)W#O|3X;}BG)dCFx6~|2+CS&wRoGF{JyEat2kD8*3t{<+ zTByVN)prW=kdvP`BQX7NKR6|<hsE$(h>Z1XvNT)#NuG%*G35ocsgf{>v_?$;rjc%K zMHoCPW@}+Np~qKg9nAX2#`plxAXPAz$uJQjA=^eCejXy_TB9NI*n)xDSpv$8)j&<! zK)}U$C#>;AR~3rYEXF(X3s>c7!<6;MDeF98M+y^0WaTEzW=Z%N<%A(+*W%Z4Ez##F z;jo`L?8)KK7W@JZ2NMo;*7JgKxV;r&^@%OukndR}4!4r@=PE)6EZz@TG|L)UrOGRX zZQU86cNY+<72H(lkLAN?3$mOkY&K%0L2_p>K_(p&?VUhL4*0KI)-5U`6gP-m*@`c7 zW5O&yc1Sd*-DF}C%wl4bYrSoGACZ+_fP9RR7LU5v!s;kV(}fy5*T8?3WdYOcZb+bB zW940v{CRf`lMrfUQ2GGr$|nHg>HGmZ1uJT6>uA8T51b1CcrL(fUtNaqu1L-9LT{r} zg`?v@I4Bb&azCTROg^+#*jysJR{TF-0d!xN{nZSZ0??aVKkf`ProU$*KR?^5p0;gA zHnEh7ydH$s<|hKX8dj2tmYEo2C4wO_E}rJFIIJCcp<<c<v(b&2Aci{#{nkfG5UFaq zQai%VI?l^PQi8lR<z&7dE-lO(^C&GhC6UgSR_y=Z@>v=fL{ugX3Y8c+fMm8!)^Sd` zT|7=U)AoFZo1Ip=cW`<`LWk2NumFOrqQ}jxZ2<*2dZdAlRlP`<M1oxoGBRObhf+nf z2BJwoq78DD3Hh6kWj-bYFyFR=H8da5DIq*-+b1N<0BHxm+6=@ALFfwxjxh{=-Kfj_ z{KWVDM}B@F9OC@Q4^<UN-qQSN76Q*ra!P_!;Tl1hpDL?L{I}Q%x;o(G-cOK?(kJLf z7W$dncyjU?BKg!{L#4e5C|u4Bk0#_sr5C7I>Hh=KMX9%~wW}})R!xBZ(8Cl3h&MD@ zgv*THQFnT{mz#0FiY_NhU0PF$Ohh)(cj(e;gN*v>^@-@xEvO=tSC_i9rtDIXvdc<f zt}C^KI+N)k39eHDxVHd#McJ;DFy>z&?4c`rn)DTWtbdV|h7nYNo!1=oDxZbL&`O>8 zSMLnnl=VR%(`m|-V0|k3(d>e=BkKIK1yjX?r7}9uMb(sTZrxa*0z2n~LxjBm9e}A5 zDbb1`DHT=Aj#3XsM}wwMP!~-Ghf%_i6A_PcQ1G~*r>-n@hITSM2nZ<BIx`v=a`NFB zGbEoPWY?BDLpydR!eM9SHrJQhfND%d4vJ*Bg>r6^;eHa33<NT!bI7m&A=RzJy(6*k zsd<ToS~h6hq-BkWI?&3-vZk5O`q^EefMoq7S%7dRXd!Rr6m|Vng^ruggt?{To0(=< zG+`>9w%O$W2LpuEI>uB*2oL79U%QKAHX@{H550g6hRIZb))gVm<Cvodv&3z2Ix9+6 zB*}7re^<MD4BFDwV+g;&d1Hg3tG%@qU;8#&v@$;hq~ZE7tbUY@7G|DCJ*enH(2(<N z&(E8V+Y<mKTl>R#j7IyemqKVR3-2ujM7CLYL}dHSZ)wE_u5Q`DaBEc%a1pTDZ)gly zbtDHH(UB|*rOkoa=I<ywFyw}aV(E_x^RSHEAlGFp8V`3g50AMB#h%3?GBzk7vWnq4 zKTTgqVp(gQfvOz$VJhYz@HX7<XxWR75%;3<0D{HPoZ;r7a_QEO%wHGU2wRTigGAZp zxa*`Cm|V6pMzz^NZoIuPOWeAR0H3dhCDV6nD?a%*#_B8EYS4)I6y%aZW_j7TZ+kqO zn)Or0@fexD(Z2dTPMnyN0M7vF7>F}-1BaT)@L(!q)_SAW$JKH`_E1M8X41bWXs<}n zdeto&g);M9FcAvGx3lRTr>LLQ_R7@OS6gWwgw<Bj6xxmgUcQ#j4L?g&8EHiz>d{_L zXiV>t2P-9vfreX%?8>O)VjSWU(8yUG$5`_$sev7cxPSN7HCQ;i=brAZS^uOyZD&*0 zw&5kfPA?+V7u34&ne|>!<FW<zQ$f@BWDn&5Wi*u$J<SEM5gKQ3hV}_gTg>)^8S)5x zVTMM_GXyW(n+26t<-wSdxNEKw_t0;lyuFAQnYxi)A(l!DQTqxcOM?q1FgeLe95%a} zM?+;`*d|%+!g|-@C<w*O!)u&^s8Nd)w2z&ZNeJc3Lt`hQe547E@|={zoZcAe#?e~4 z3sW;yD4n}cfp=q{J@_8{ZEpG;Brol$(G9T&^ssg5)8-$x#wKl2Vk`~YnM`I@wh9Q% zE8=U?h(BuLL3*?5AV8ytA5gR{_JmGQ%E=IN(BG(|lS=5QM5nU3Bi)pU<~?CT+&<#6 zdUH%PQzndCgMy@N@rxuNwzXnsP8wG01Nu8BT(AgLNg1)NQwC2O4#I_$!PiNs@JmUm zFz~A?(44hKyKoVYV!9h?w!<w1B_v$vA7hhQccYKOWuy;rG71fRLU`nb2IUMkd)`{t zUQqf2l;*w2aMX<zxIurb2N^vm)Yw0~M63A_l)YKY+OPl_y{I1C;4@488E|WFw%eXz zWSGtoo<WW3-mK4`0k`yId$7=`u6aRtSY;<0<ig`UwXHkw8%1JoStJhkhhJ)2bAqxT zO&};yp=TSUY9Gf2`Dd#hD(Xd7+K%tA>2HozF7$^yWf&A?+IU@}4d1_(g1@a3LGsJy z*f|w+`Op3njP^WZv&3b&-4ZN(%bK?hZk0Hdl_XF_;^EjN!3q*_gT(n4uy_P(M?6K9 zBcA!J$ezvCva(#?UtrPakVRVqF4xbi?-`gGu4jWYT$tfb%!5pZdp5`iG`}0E8k_hF zzE2G(7e>3CpA~+d8G)B8+Wk12J=5;*B5iep6M9e?lbnFhd+^tHVO_a0==O5_IAf=L zGGO%#HY6-w)(x%>l+ASg#{-aud$X^hIs&d+{kp~h0|NjV=Lu?^V=YOa+nn(^)99H| z>H{_NQ=x!s4&KKI-cxV`tA&F10B<}QukD>d4txE!^Xkh-`t*q$gnrlrgL>?5_?TB$ zXl%mm`-7#H>bd))4AoNKBw?RDe!U!@jb6%fd}`46Ty|l-pV$2t)={2HV?uXJcCb@O z4IG8Q24uW@?pd|fgC-PAPXv(Y-x0XH$$L#;c*a)SIY+Q$$i#wJ8NyBClP2DgW%$Gb z#9@B+Tv(rlsYqRe$1xHJD3oEpus(=`87UoRM*6&$J2-A`AhD<W`1DA>u(Z@c99d>C zX<GtgB&?mlNBYAU1akcO0{zVM2k|;g7ziM~Zkn(2eIfu(ugeXY$ywM3qRxSJe)b^k z1^ACA4x@}gz-phc8f5W#^)5_Uza{_^L`qpo(Y#di0}z}bF2p+?D-aPf>?8T|Ets@s z1HU|mZ)ckx{I+BVy66E7&j1*o%BAdfnPcyKwTJ*MBS55<#<J(pI%K-lqX{pIiyh_6 z3|v@0*(T^~ybN{5=v{?6V|1-Jrh;Al`c`D{n^vCEg+ymoO)wVW=aFR$5}a56+A>DX zQ8IcN$>ux|f^FS6x(w8g>yw8yc3_L+iWBoVfT|53A{w6;P%0AJI17W&9>7Z<+HhL? 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%0A)8Ns?3A#vc9SU_sv|?c6=#>Iw~qS89pNc? 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%0Dljy|5ERVmD(e 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%0DbrFh&iK{-!w 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 O1FtN*Y(U>?t^WrP{9y3_ literal 12076211 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%0A-MGmGFg!`%ldOw|WVTYD4!pxnqG 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%0A9t_(7Z(PsoQY4qv#mTxzO40H$>?N#gr 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%0A<>WhIfvE?@4X;>@LOLMNae7{ zCdxbU29s$TK)p#k)L~cfa`4d0ljoU+R&kX#*$qhOiq0bifc9<$&=&}hIFi}Z*%2O* zz~ty0Ja9ne!8zM*8HXHUA6ViJ&7%cq_Gkr-l*E)Xx$J3aghr%O2{a`>tfg6K2Gh`d zsQ}H)R?vKzxKVE!pji^3k(F5jjd;JZ%Nvf!u%bC5MDU;om$}rk?x&=2+dm+Nh)9T| z@+%I!SsCKV&Aqto*20TlE4=8gtFL#%JgKyF=faG5QAhY!K~3CH7I#K3y_jYO^cJmv z;hYsfQCS~$D_|sV1*~YqS4>jy6;>1EYA>iW=an_53<`=X6pgg@&`NI|%-aj+d*>!N zHDC~x7w$#8*;8Eiq2NgY#x>rJO-Wq2Wz$(#))boxCNx`EA!ZPc2B#?%2jIujT%A=$ zysL55ytGn_nj}F5*cZ@C5Wz4kDtGI8h;d}9DP<#H;v=7{#qn5-B-BF`p{=Lb$D!DB z36aHz+gTAMjD3X<R<OIpC)+xI4vdYUDPj~_!Xff<AwY3q86!`I00r?Ny9TC7tqxyh zpT}3D&sn*Zyu1;6{DoFvR^HO28sQ-^O@*~$31KB3)bq|n(|=|}=@b-64sSS(8`OC| z*mbHrqB6<mZ^n~U_K_#4>?2J81)h7X<kr~O2-ihLm1AiVWZEnivzL+%bk!^E18i70 zq1r%%ZI#0|rm!iu%#U9A4aoxiEV)!XC}$J2G7&lwVyQ)$noNXA;*6MnggPER&Sti2 z)W98aI+-v5vU$+VL7h0^vdIh=CZi#S-7*<sQ;rGV7!T_5AYeGDTQ+~K-|zqheDigH zHP9Q^K=Tzal3M{3{6M;e=yqlW#2#%0P(YE@p#??PiO^gZ1+7wJd)5@w*k_;;si$n_ zB5-9Rj$mxx)0d0{j;Mx@WP5x1{IR_i;)ra2p2KEruW_y2!YRo%KP71&$@cb9*}jOl z;u>zo_W8-IE=)#C`s|j;C=Wlyi)NegFgSQd;Na#Ad|8fx$!@#Gz_CYTV3vn!kAdlu zLmjBVcOCsHZtM<EcR!(4HX_LX|8w1{!en+k*Zp&6Q?3Kg^%&1JXSvZF%aK8LjpbsG z#&X;&+he&du$)*6E$&1q+e3obAdmh!gvoi0I7j2r-A>l6HIQ{?ON*yE^qc%2m~R+m zhiHk#;$wT@AL<VApIl_jtBm)xYf28lKPf-NtBe`W!N0=~$8E+(N)@6Q)!_xka)t4N zm%scJmL6i^A(S4fCug4d%2&PG%MQKi&5IVj<*jek%0rR=>)T2KL09M2z;AO6Yzrn} zGWM+HU&pO+c_Y4JDY&To0F4?Z9n>}Gwmj@M4@tdD@R5x1u2}hpiorX1-iHk|D_o9y zNk&lm4LJhzHX3l^etrk6On8(ew{#Ux0kK$uD7p;{MxF00becX?$8=7-kxSDqsNU!M zWG>OuR&PhgvelkY#gfXZI@FpMYcBstRiJx_{)e{#7@5IHRZ?145<)AJFq}Tq(u@0N zH$Yt%FC02&8eg4tcThTkD1jTR{s4PqtpMsvaP|;n92n%U;+~>G`(~Lv9&HL{CiN@g zG;dm5<nz04KZ#epNk+nvDuH;h66tJ7-Nz707{T+ooW&ayFk%_MO6d`5+v4^)3%QVb z%3Y78ZBie=3{0_C+T(;wj~rPefhJJjqgQ6Yl5$eDfbiF5u!!uhIO*5*)epm;*QWhF z^1^^T6}WW_9^S0YU`?lNzLcUv-8;0nC1a{MRnBE8ttP1nO%Y8<1cA~+c)*H#7)gGF zg+G9Un#=m-1fqb^+dr!|vo?cCi*(gXL4;bbmQt<FO8En3+UMCI5}+2lD`&POllSc{ zzqopQlaua#&8&D80E?+rv-sI8F8~?b8wy`)c7%Tv$6WC)2Os5n0YD@C3m_-uZ>={Z ze36mTHlym84%N6rb%orbvFDiqT^wlySf6bu(~;r(%zNco-API=7-pm7$kTID*gHkf z^icd!2yA?Zs0og_!qYE2GaqBf-QB`uRWjKx$Yf_|wBz&wlkv(MDSco-$>QhY%L7$l zvNTWy{*hHC5YE<vDrZY2t~hfP^g-baK*zk-Q)OL4$Ox5!dhfPV(F6d>#oY_~!wM_m zqE9-#jEl6u!l2sh;yN%c5@BaH0o)71Hr(5Z1OW&FN!SK}3EM!vrr8E>*hy@KGs5QF zv(ce3?qOvFK?eWqh<i+Cu_<>CghPealO*iP0e8b9du)YbPGvMKFc!NU4nBLl%kRoy zol#H%(&IbEs<d-){<srkGWO3$16^`X>K_OPkA>mov#iPS*cy_FmCK}p(sR!}xA%(V zP?B3})yv7SWTdeSwa@goz2k3|5fJ*}p{!c<^y=HCbD8!(aySXd^O>?G_@LQV@TlY7 zwgTR%bVBv*ae`rfIstat(5h!rf5xKZo8c9-Lj^ceVqdTh{R`H=e?j1b-3ZiDBZZ%^ zG2s8Xe^fJ7QV4o}2m6wPZK*#;13uv}`o4r|1q`pOy~Q1uGQrcU5V_8To4v<p)B&pD zdyF1?oZ`e9pHZ0%N0#@Pj6QAd`-tj@dI<RB)6x3_5pT{Pb+ai}O#Wm2#gkK5bA^*r zUv?lbo+}&oppa#;;?quo%l55IDGYfeivxkXo*-+m#zK!NO;VNT2t2@1Yt|f)fanq_ zv=fgrXlxM0h5BcR_7qD7jzg->5SIG}`(+IVRP3QhmFhW%_0|84&ofswN%P0_v4tJE z<5GFpp+MynQ3F6kC!#a_I*#*(>_*r_`<r8m)a(IFav3&ijVtuB5(8J!zjJUNOcMQ2 z1Q<4F*?h@oVI$_I93(9_<=}WJ7pLEGvY0s4dznB^@{X(n6Q?3tO`KwbwyZ{-3cq4g zrs~1L1vmgC()IsQ_a<O=9@Uxf?R&e`Ewz{SE>_=`WZd3m19k%jcYhENS%`oTJ0T<@ zWYNrI(adE2c>agP*V-)avW>C8EDgq3#umuI7=;*Uz!<@pAeMj<Od^N@g=J8TNd&QB z-uFGHs=l=sOLCI-^H}%$zFJP5I(4=>bqYXEQz#EXdCI{XoV0}3U`!PKP=d<YD!0_< z%vLp5O82C_a@EV}^X2)fFwcBnVwzak=zW?=5W%$gdvo8fU`oEvDbXP!9C+n%LzVJD z@;IUu)eG1lRfjPbzA6T6sFI_jz5?O!ke+{L_s5eW66*FP)a_rSb*6(ysldajz>lqf zP8gN;^!8Nu^nR2o`qqbSDhKU~L|C54{i#kN*8=clI~0-U^rRZ)2J(|iRh=iA9nQy6 zMTb+nyR%p9T^bERuV`mv<^b%vRMp2>dsIfIX@0ggq<Vhr#g58^1zd;I%TgWhEA6fR z^eO*IJq_?M{Amjg2D%sUhkah=HHL?Q&V{4n?WaokaH8ilhEL(7XPnHxF<gME8&J<e zu&CuTW-ep?Sw7<zz_9?YLiWNJ$*u5G<}&`Jm%*#>a`+UmenMbrO>&5-l0V^Bx!m@q z<Pbdm74?Tr`G@dD`a^ht{t!!Zc0pYG0*fXq#Pk00Dq7o%K=}FpR{@B)XW=^GUNG6P z>lq~CR=sm(-VY`WKC@l#@+bJ@&R`B2`s`kbre#M`ErdpFw(wpTUyxf+q48Q7N@>W- zFF>Xb+ZU3_G5~DLJ_hc`W3eV@nb}r8fo<8>?E|GU;UyeQr~@%4w#^$0R)VDsnb@|M zbScnBFqHLE60*$8^f<_Df_(fXIJXzjC<JJ-_J2g)D61SCmS-PB8n+>43Pj&Zg^Ytu zNQu<y4w>2pV^dz2McqL^$S8#XX$LVh7@0_!tYf`{@!(=PH1hg1RlfQD^FdpH+_!^^ z`GbPQ05;XwxFoqwH3eH+M|vgW+c>z0`iYCb!TYHmTzsiWqj1!j<0r23N1gH5lYnyc zOvmHAVMbt$kP>#nFu_4)YGKTqumZRU8J3wP{w2hXwS{SPx?s8vx(|?g#1kw-{Q>z& zS&*Ls^t52|JDj5zp%}uP6o&Icrkw9g$`HuXTq<CQ2DZ;xnz1xt?e0SQG6p>h%ct4& zWXQsTx3yVV0@k?@1Jbz&gI-nApDMciThnZN=9LMp9xjF8*g*CdL*pxf!BIek+%Wv= z3j{eO=oReZ1Fdx?fZ&NZ6!3+@rR;}G0}1<c%rwE0-Hy)VE0aY>x-&DW@DQr$om{wl z-tH5D3Bg3DIJC9}w*dx5nkmUjT$M|td^2+RIe=|}C)Q?yVCGv1OYMH*n&v9!g;Qkb zi80@H>==q98j=>S)kVVU$0&mm&PzIVC$Wl~BK`@s`Rw6Io~F0hb}~?J5o<*l;w!)G zIrKEL1W?JCKxm>qx3Jb1Ah9(D$gohEv(!^|kX^wz+sA*wzV`6nphS}(f?h*{2<lmh zAZq**f00PS73y;YtMg#-JXffNpyj4$FW}rD_mgM^9zM<09?TIc6OsVk6h07|-GUbW zJLek&*ep%+Rg^`@-3ct$s1b3G`LU}^m~zY;Vjf4rvOByW7Wra|O{z}7Ya7$8L*#Lu zv7b#o)lc1+Ii_XIV`}m#B9tND@Ch+muM(>Q5n{u@R4Vg85{<PL8D`A2^fA(otoy_- zr_=adEmn5GRN&*OfUCtyvogEZ_{mh!wMN>hBB^Mbm1kpTs^co0<pIo*U*&}KXHp$k z6)gwgOse7osgC#4C2Y37wV1#;utCU74&oWeK_Lp<Zhn$)6O&8^h`9hyvxK<Hud7Ue zVbQg08vq5Ypv<HJ&Bd45f~+uG-2Jq&zs{FW9-jOP|7G~GHRS&qnQ@7d=tCb0o(&IN z<?W_bE+c)h<^U^VnhOOuvIUb{EltZitfG2*`D+QIzPu6D3?TE%J1yzx(3b3*_T{}h zE$aYPSk}90mNjs{KP*P_A_Fi{?mr}ud}({Ib9p6)r5)367M3=rZjT^z86qis3`RHm z8u-Tqg0BJDltv9XoR>lWR;uUpX(nZu19CNhwY_W`?oIVP!vItGg>-xfS5rDZS?9ct z2U17-So=tCGzRHl@!Xam$N$UMi-sqa2AZ*wRB=0Wz<>=8j<!uV;a<Aiw`R23!b|h; za0053E+N0DpDJXeI*(N9%x?evOR7_`|K2*-7(mdTX#Nk@*Ricu3`?|YENORP%w`%@ z0u<j>GK)xa2Nr4&Tl7$aW6|Plp#~l5|4cwYdgFyJ3SvAO55>81c@y`1H}qm}|76>U zya+Szgyk|D=PQVOdcr7o!IGBapFDMzIs3-c@V{D|B~nyc!%&ay9Lx~lRm#azI^!nr zmydR!`1UL90}`E}{5%8i4xmb;X$JSXqJxR75zJUu+9PHVFOySHi<6Bvkaag^-OI9{ z*{vMR$4AdeKXuvu$q_ti@l^3<x=ML+u1z@nsd=baT{FQw>;e7;cjl~!uO=i?1zq|2 zB@4pt!$N9(%%#CqHITjilDIGNr0}JmwDP#|9ce+xb7H7No<)^Cr?2l4`sBD0vF7?( zc0Ue9jfLJzkofP(A<e;L>qu1o(BW9vga2+JBmfrXMGb>E)-Ib0XLsR|!Jl0<m5cH? zmq%+G7|ER_M#607^JgTYj_d<BpXJhqD1AYR*{<!yzP@O&5thc><h8{>F9oq^=PinK zSSz$*LHvo_&y<UScL33D8OTo6Gx^Z7_52JybDc9s_dqsEHbvVH)<<@dx$}9^-Z{fE z{II7skd3hn4QFnmp-Dcn%yKJ(6RZQ->1vnP7oDX-r?C(>TF)F-S!{p}WM_nzXP^x1 zN!gc2q0s4g=4k%>_2zPEXUkos<5w!o?d&<~fzQ&9E#x^|>sCkDTs#U3ZrO!9wPgmf zzi+8wdJIk$=ojdj9tEn)1KEqibx9b})9@C1JK6aOQ_BnsOIh@*x<i7f;yFXM9dNb8 zN{wns&jG4O4XUT3DJsST*}thN_Ro!$f$UMcQm=~_el~E{R_BI~$J7!1XH<>{vY+ai zB!X1dP(1o|H<6{BJ}6x}SQM$NW|}EDA86Kz(Vq!$c$7^G0Cu%!1dsfc`)Y&PGGc!j zic$tI0RJs;Uw)uGUXXn>a^EFGnfNciQQ;fR{z1d%^N7lpIW@mfWJ2VKZk~nbBk+t- zxiLME?FeVyVM~|pkd&?uf2L=}rWOr>3kOD9zKU*pU9h8R;FsmmU5Rg8YWu4uqfG`; z0&2IM-UVu#b0L6G#v_|+7foLjE>wfdKz$$q<ys&`E|Ot$`ua6}&jCOS@KV>DLFL8% z8-eZW0y8>sC>4RxKg;^ox#|2oymg5<XR4cF3?}uiTL{_p`14Uf_PhYHM}ImAW~ae; z>F}W6ypFvBY!)2OYY_Q2f<NY$IEI%Y9(VllG|?KQ&-Rk^p*31e1ZF;k<A500lzp7t zoh{4<%#u|uYr^wt#qZd6`n)WF2d+~(CCE~Fn6-^5I04BbPh3Zll6BWXv+So!dP#rQ z>swEcJD=b#>tL6f(KJlaEO*dqa0N2Z<K!iU!q}$LIIMTn)VF2(09n)|_NRx2oLU^j zxDUcjtqFhR62aHyB@ud4FCy&T<EhCU&ZDVONrwHOlbiT$OGLqVL3;)vPnZ%t4%8re z5Tg`^$o#naJMb5+i*K;%v+1AW4C{b6B3E9`x~O-0-IAdFp+Rd4*HwB!>kvXNYO@2b z*K#hxcc)g|rH}KZyMFM11wG;jll>gRd@@7fCOK9MFq&SNQ+A=kCL3_8w_kPT0~v-} zvKY`17c>=bP7DdC4GL*z$18&~ziGRY--tk5<BG4rZLcGx`V`kXIe>O4s|g|Qt_+zP zxMgjiokEp^o=Lpn+%iEVz@sn+^S~P6m$?v@X>H}>9rvc*KY4<Pj8R*Wm?}g@s*m_4 z)w@YkOZCQ*zVqz=r2C|8SPqBgKd{-)_JPmlBD}fzN=|CquZ!`Aux^j*<|b@+bd<5( z9@wp2*wgrj`(@8KlQ+yV5&tulia(c&A2-YL4*}jk_j50PF@n5b%0KML>U!CgFUOWF z|8U9duU>fJg%|zWumAe1`S%;I`OV+_tyQo6ZT`LPb-(kwzh`&O{<lB)!$16^KmKFf zH~T;SC-0lhUpI^EKm+5SoUXZ*{_Ya<$0e&+nA71}dR(jn^_kjD2b7JwOhxfKks%p; zw=;QvAKv1EQ4;&k5CI*2<B(U0QI$Of>wB^LTkRmC+6q1hlO8$V3PB*I$W?X;L7_^3 z9Ifr!p4~<$X13)UcU>S(z~udZPOkZZBfEBLlLo_|p$hN0h1Af$0x-%7aQ|%U<uMKn z+&^YXq(&4hcQDK7E*L9Tfe}?nrno6LM9W+MdcYl3HZ5fCe!71JRya4ZLT7umt7QTR zw>B*4Th=1mj7Bj8#aC{*y?3Mr%_08(7<8{N=>J_e==pZjM~Jv-&J*$hIEqXAof!Gm zX}CW&J@HR9Twv4G0qOzVtp5LulCTvA6d;y}>OQCSPpE2(;HWM9Nkggsp+-%H$!N_B zlj{=<F0B41bq?;5p)c!=D8)kp{0&~IDuJvo4Auw-b7zB@mAY?CaCnsCf6w6p_a-8` zQTv>6x{1-Ul6zBX<<oYk{EyWNXwNXZO?kB^AD{>KkBG0JikLO8pwvI)dv-I0@fQYw zC5ht<cn7-X0O3s{2n?EtWS%BEC%<#JdvgNuI&&)gK>))KTrkS@chDkcx_tB6RNk+T z?_0}`?weEVH(2Zc4Xr<`{X1@BaZ)v8_63e(k)3f_@AGh0ES&U3;V29MWwFJ;3@kWO zCXLbmiX{Z9g#QH(tG%me(LqI(M~$ZgRuiiPBxlz3n_0)tzmLytH|zNPd!cy2vSYWr z1NnFJ-M)@0poI@hg>mrCLb=!F%e|K6B5Z(+t<ea3ZNAiRu~dQ)5V9B*nBU45!<DfD zmmg^ay(a(h)oh~z_ys8T>U^<Zqh8Lv`)>RE)~m4U*qE}fTm-F1#HYAhn+q|vI8z|A z$Z^SigF6t*JiZ5&)@(T6pGd@aq%H&qQ4JS?fH{-Cq2yv9m*84oP&)R~$YAmBxV{P= zm=Gy4cw4rg4-#DcxA~RRXSZIZF)EZpW(lqgkQ;UiiZ2j=yDmouCv}ZEBdd(tX6x=g z#XBHd&usGzqPB*umqThkn+E7C&Du?a!r+X(3Dg2>`<z#<vbI+OI7f5hgu7B-9%=Oo zjlsCBtu|vmw%QWo*p_`6k}P|0-)G-+-$Q@D<*_h<dVAMTK6~@K-}~krkKnDm6Yi>T zl+^PWt?S5#&=Zk~=DZTX$ii)lK!yKKL-~9fieD4^at+01+lG=8zLDa}z?AitFQj(; zs+N@%6ggUONgLKeZjjcN7-{yAje#Oa<DnF4W*@#heBl^F9ggu5wUx&BHwl(UY#WCM z%>qT2#yAr&pSmV=NnlJ2Ni1YHe=&R^FkvsR4w&5)V0bjG0T_PR!j%x{Bs?JEx&~!w z$bXl5al!ga>Se^1xR$%xO2-GLxXum1**Cs=YMPHoKd9^g`A1?Q$R<unSuTAwLE))T ze^F2XM^RG%j*RJGsPj|oU>-BVS{wZ0H+&8OOnG+0o!kNWy4Fz{e<_3vUWmhgf-e}X zrtq1~oP12)YI?zVYy)?!+dVk&38Fi=Sx~WjxH6C)(PQ{a^ROpjz~%l+gaKd<ve@O< zl6JOr+FZ!rphSH!#KnTqPImd-r$EU5BVRH6ExR3sV6SJqC%8>_Pj>Cyr}%FO6uL>o zv3*^^D@1$yo2>sr4w13=gOd;PdD0#YgTll#F)``I(5P^!I{82?N+wKK2-MO9SRuPn z5{eRHwh-Q95t%xWq4Q``EG%g2!|VwM(zNkzcaRkY9%lpF=9@ShK<*m+1H3Zm!PFD- zaq!3RFtTJ22l;pc(Bu-yiANL{aP#gFj`sPQV1(=S*d*5N9{!7oW&~ag=_5;9=#<U5 z451&Gs~GA>DzBbd{9&497p~`PmYvS?XBGvw(>x$nFoope&OU?^;JN3A7SX$)14Ppf z<qj;{E`m-2ZzsTk2@zn6M@+=`qXd?ReApp4$!m1QLkrUROvE#I$6rXiqr{HDaKpS8 zPaEoJA!Gh*F1k8zsM`$3hbJE;=DDM1^W^`cgZRqjahgXd3Ts^NAPk(!cvKLW@d!Xt zg^-hvYRY3GfX%7HFqDi9aMaJ<&k~w^_MV-eJ*@j8clOx}vqrBI=`#SNSpqPcHHH~F zPB~kEC5F{-#v*KK(k{I;8vH(K&lEKCo;3Ox*#SAEC~FfmFI)ZCN%UF4`Cf311>k=2 z8r)74b7zr<iKv(Au1cQCLx>9xPz{1J_{phgM+AN_L`O7A$s3J;-f-~wDmKcUNbA#> zz}<X_{m85N?-}76Fd}LwQweaLs01unBTB2Cho2O>c>`PH2Bz3~n30R|2#Qe@RfyT; zYy>gQnF!QFiV0LzPcGM|3375dP2l@t&!2@7*iJ5*0>pHQ#xJHc;d-;PQ0QE+0w7Th zfD{##&O+q{O*yRS4GAhI8#~=MZ?b_T#eHI&`&)=ig*OJ=hs_G0Q{?g%mf%LM&#cz} zU3`grwz_fmr0}h2X2H@z>mv*V5mkkykG;5VM=@FNV51iO7-otyn8!$N%@>rCD!ZOa zxbhjqhB3hK8Pu$eH>fCLm7y!KNy4M*IWx%YCo_ihEsO|0!59o{JT)H-dk079v6od{ z$Oc|-4Fwy;V$K4JNZ4gUc~2U=E9Q2T4}?!{tNCyRLUU1t!;oGNM+mOfb;OGPOq}h# zsb>$aRm5j1uss#<;94D;n?11b{i&h{7IF`54iSm>R4VEiT;vR-u`&YxGS%@dRYft* z4&}Y6qC=@L#@Q==v{I3q++yyli^7E`$sy4bN<W^eI<SYUYS3-!26$hk4uc_a2o+=n z?uJ0iHvD^}6rSePqNRMm(=H1L_zcNdTS;7?TOb`-m@;xZ9nmB+_!#i7Wk3jvn6TK& zO7QPYu(<o%wwQK?-f?2XXcn|?4PzlYErWd+izsJe_#^@3p0|M7O5iXyuv`NQV<F%> zN@+Gs8A6j7DNp<h7h5$pYD)0Vs$J}KX=-)`F2QjLIX+ihm3ZD=9_#-}W4+PNKC`Jf z8bBFckc2Sbyf4WZxcES7%FRF98*?PNUsc}ZzG2(z`r89fWwxWVQNrXKljFHmd=o`# zT~S1c<)%z?zqS_}oJS_J0eLAyCbL}+rgW0_lPTx??SW)6OJJ@~V7|w8Xt?JYrHQ6( zd5$=Fyedu}12|oZO^#Q+T-oLXzyBos{`26#zp(<p(aKm(AUt09jkNxyoeMW^PuPFh zNbGO5u#X62HAG$9TcRf}hXbOg*r3ys4YW@3W!nSd`@>JA=(M+n`04`8`~J-@ms2I( zo=k+Zt{35P!m$%w2Lth~;mN+?4<BHjxaku9$$Ae6|FOYbnz(xYmhDUU_n*oYd2sO` z;VCR!BX(>JQ3)m^@lYo&-0c5E7a*5zIDS*JbaN~~dX$!Z5OrGi&i`xb+OqlZ3I743 z53p>1SIgE?6UQ?EjH5yz75)(Fdjews;%z;a-HoTP`FHZzDL94AW7zoP_CI(3pY^O~ zpL_0k<2;Q0yz`acZ8D2|fnnyAg9Z1MXcG=H?8%4xZFVJR^qNk=l@K4c_=7gM!h`a) z?CLY624-0Y+Y`#)rcHgo0;2%#Gr1;c!>5A$WNHsDIG==4foIvy|40XjoL|%~RzqZi z8%!va4o*DT0rV*%u&e4*Eb9gvdvU;?u<Zg2So}u&huOZ6M_9y`6d(lSgNnJGtaGCr z#hyO-LK%lF#~4rXb=x}os>=+P40xCyOPr4Z*_8%u1*gG-)GoR$(L6)>c_h?alz73D z*zyZ8^k-nQjmPuo(;T43a@1Nn*It;DlRMe)x&(9Y>qH%bq{Fa)tOy@%6uWdmryhaY z6^7bX_y>5S6PK|{T)m9`MKCo!09TmnqW<Bon8cB9NLcn<LFb?@T_`r+D{KpEmCjqD z57C6?TBphACn1%nf2Es2ndC5$>yHFShe=8o2g{%7;)1v2M1bth5|p((abG1m;4JCl zAM=&4nKUMmg0-yFZQ({*=5E6=*M%&}H9!S9CU1KN8Z%c3xY9*H5p04@Kos4G^q7Q` z&QxFXZqeX10gXlbyIboPy)~h;&Qp?iiw+V**D?Su6G?%P6($F?A=_8X<VMf{4xPe) za0dZi)SSnytQg;xKq|ONwhEugQ@GuqLzXdOk8s3HUtu1L4pE*%c8>`sPyUeIoIG44 z#4u?jDl$TBnmlQX*0v{3TjlQ1Fn`e<%FJyDf5-SSNMa@E8k{h!3fO_Bj|4r16NVwI z@=x`1c2`1>&)G7;>`KXu&QQB<gKLoB00d4Fpwc8&J)v%_8jumNv>M-^K=HX+B2eZz zSIB|SVS{(e=Y};be$-_MCwT-n`Q7Ite@>9m`#I&#hY=Q54J<-jxYqvPaDo~4kNqNT z8i}`am&mqb0;zzla+!nQ%Q<QuSKgNWG|r;dY<GYMUzPjwsdgFkQ^KbvijlV}P)s`S z8ptJ{YS&#jJT;&x;RIo9EAbD;+v6$<>zd>f+yf&yQX=^TQmUt&`_hCt?bxYZr=39# za@@F(p!W5y1-{ZaY%e)T2`OlZkOCZ%5+D>Q!8x7h<YB@Htj||8gzrxvISnz&8_6u@ zv)(bETKXxk(;6OKS2&UKDtSDF3i;|1_27kVJxtaTkjlHP-9;kOg+OTmd@cd+4l{Y0 zQi0E>0`4%IqetmWsiM20%%hZNA!Ss4CDqBhl4f^b{avc)ozb5(2k+e1DisyF%*iNu z63h*j5VI%MbXXO_9O;)dZe)|{d?VE<Bv}fqly%BDc_`KKeo~U9hmV2!KHGid?TJJE z9~AZrTKMZLhwO%cT}#1yVs~_j5+xx=QsGD*baJK$X)w`umela)qv+%=yMBR81yfbZ z;1$FVR%^ERiWo}@?otUKSl^4yZ?;HD+g1hlp(Z0)>AYn&huFr{l%M3~pd@-?QviX# zXKU)R)YQWkO=7#MUR_XOaG@!X*@`Y4raEiRBV*Ky+u31y<{4S$NWq@I+*UjU%X5Vt zp1{ezZ!rNB5j;T1mwnj}(o3Eq<jZ#UP<qLugnZe_ew1EP2j<KE?0f0uIsS4W`=-uS zF%`$zb_W~p*~|_TNbFsTZB+KK5V9|SI0T4r9uE`KOH1kcgrbkPm$q>J1LqQfZJ@}{ zD6lUmv}_y-Z96-X@zW>hiH{?(>!_hhonhBkJeu!%q}25rD_x&f)Agy=HMhtL!`kuP zeB0&J#9JzD+a6nSSknJU_`$tNpg%QZ!*8xMd~yxY&%k_XMdcg*@{A3?rP8o%$Q2>R zsYy=6QeysS(IwLe^VDQJJBkx?Iv$xuq;uQy)=}9xDnj#NR1gLE%W>ZS*3(=7k}i%e zP0l+i;6Mwj&;`#_R>rw|#)faHG#odzas($mt2{H`nX%zpD-A!j2I8j}0-sE{^VoQF z#<p*(w9N*}t3+F1WuUKl+e~P_z0$Cq5G~HSw#dp2PtDly9hHWUuYveD!v+&G6tHpU z)p?+gD$&NaO51Fpj14J3WuQMiW5e&OG<<YT!$%p=NW;+1jv>u6yqD+9cybDlv=XQz zwX?;MH|c0;VTh0XYkr7}OGCW70?FYukmzt|d5Bl-pQ+({Dh+c9m2rpMC0yo6T~eHv zYyURi_VFd4cU0PD1Ld}Dx39$XZk@5=4^<kbf4SW70s~sEp8V3<uq_YtF(shyt+Z`> zGQI+6_7N5NGpv5RY*$@M3qX}W=UP|BT()l;n3K*2o$RnyE2ofQ;0+4a10@BE6oY7S z-&8xhwNiNs+Zi@g8SX}RwFoGE+4`+}pp)>qPlxC2RDUPad!$EVu=l78S^E2Is~1dj z3Eu1N5Z>}QA$pKc%Mt`;8-8{=7DI>z3ieojKWk?#Dh(8zUDcE+ULk`c2jV^H4;y=N z*moW${efGFP1;)Y>{0;T7$e9jfPx*1d5^k3w8yw+$53WZQbL#GvAlzRS%T%(g@VP% zbUdeoPPd}IXV{6I%>f_5rUvv5S3<<)sdKk4co@65d`C;jyE4_eY)}9vo8;XGoj!NX zkv^YRPoG)eM)<<_eB^@#62;rs-}cNt=;HRtsq`W9w<Iz}k=e*}?GMj7gk%~=KVLGv z`QVdjgyr9ZOk?MbWcpCqcD}L~D^=+93rtWoo9zrPx)@xPe|F%%)6diXmKL~~qkgGG zv4@eP?hYK4%miMsZP^9j1(vKNFn?!QCJ8+JW0kvacrH&~4ft1K`gJQO?$-5UzkWQ$ zjzE{Oa#<?((<8Kcc>`xttCy$J-m2Z#Nrsg5db>4Ljz-A`0;f^JSiD3j9}@>_0<fv4 zE9-h<mVyz*3Np!!oHN<qKYWHaN_KpT|0XjAW@W^I8OPsX#{N4oy=zie|N7({_Xo3% zwmLYq8`w5Gk>PT7$VP|CbI3uXN@ZfMO}#k^A#0dOSAj}-sdSx}tR525#`x}9ao0>d zMG|WQ?}iF^$irF--i?jmQTM4m<xU(0a@N#@2Vk$ELYk&639_3^&M<tTwwj_5zSD;_ z9WHckPw+pi;Ds&w!x~2I1|`Voc(OI}UAqy8aT^W@YS?mvPRHSlVAqB744s|PUwzv^ zbi>0-`w-KLc(cmvuk$s6wte<H%1lsQmJx<aj}%R6uy)Ltz{K;$8tWcLUexn1jCokP zUk88SSIwh-u*9fDWiy0R1xFj!nmC4*Tbi%6z1ZMg7N-PC0>-ceZCzLjlYXpZDH$<> zNju6)m=G99kKS|B#_OV%*!$uNsyC$m9o2~E;jG|xXPEnO1yc{o84^Ak3l5WYz^~@; z74Up?FMD+RU!MB<)Trw~9BUH`na}7<(|_PN%y8!*W?BPXywKNz$ux?!aE;y~{0$?^ zJucDX-^fw8Mi1#0khSIn{#mevvfk67(y)s5l<0}OX_I^Nf^QXZlox!PFwv1$Z?1a) zrvUnK&M2<PZeO;x7yI(5W?v|W*{+Jl^);mvK_mj+l*+ki9G#)nD^h8Pfu(Un599zu z<3mw2DljKdw)Ax?<<crI8tdV|s;;ND1nNlhsIRH7<w3F8bn~6?>Fz6<H9%|SQjE>1 z?MuyZPO<>*xzf#V&Y86(7ecm~8iuYnu}>VB--dL(G?b~@aCZ~BxM#CbsyJTA2ZvhL zH`<ot78{jfu~g?%s+)qT5|=pFv~8=T*}XBryu)C&txt>*)+qDTsGBDZBQgiPw|yHx z<1ucf@I~rpjHgb#zbQ5AWB^~7xK4#Z-8@rKV~*V4xAaUvrmKE@r(M7>*XELrSC)hj z0%v5E$$ES0cB^GCu*AF=I0odM@D#ar2b)Lwj?|8i6b>{^CfWe9c!HkpGaEcJ_2-xD zyDGJjD~e$@2tz0peRosQZh7w{+x+pJLF?o2g9FFuHed!4sFsYkrj9n6#4^ua6Bj3g ziZrGNDuP<|d8WoSUPmhLN!>XDj{>&pG{HN)WK|Pn8dvbtnrHzq6=~%GAK?KEl!Fhr zaOqc}lJ_RyJfiyu4Gd_FYg$dF1HCz&KU;tGna<D9L6&o!ktL#@f5gPN14N>=;tY9T zg2GjE^I$g3NJV~Br>87(_B71S_SCh{4!W+Loxf<D9hrJfv(v;u?yhtkm?X&ESsn*b z9cv)>K$jJpq-m`8)OJ}%i8~s{N<;9FP~wLYa88L;=iCgG_~Xx=o}<L4`)@JF`B36t zB`BN{%`Nu?P~yF*Yo|nXT}z1{X`CIZ-VL);3aHq8r|*#`Q8}Fe@PG=-r<O{5B9+M7 zW_6^0pthMQQisMii)}len{2aKZZ5XjUo%JY<JH`urJqjgjW=BLZvcO~h6>If`{P|y z)X)(Q&4g%}XH&-~7gvLr_m(trZqrR}2|>(Mycx{8Ejy1|xYDt1%XZ|o@aeh-mnc(Z zPxjhg?C-rMPAwJ+62Ziwr%9qOM+yyY^XMzd{`IL1pA(Ld0&I%cAeU4hPgE2m{I-`t z+L)SqPhR(dM&KY(b763>D?g?bQH7->SsgpBS{0j8(+=sewU+%=shnFCP<+C8s?A=L zihHvxjx0HxiC*t}(X602C`vmk<qVHgY92RsR*qlVoO-#%@M4;eO_gczF8Mo?)WoTG zMDtb#dxcISFeDmxk%8FiRh7^<TRni5;DLdjznDY37&o*MaKuIEx+m!Io+$ogz;CA# zAutgu6K3~f(_X{lMM_hN1rn|Nn-Z3ME~t$-DRwJ*>znI}TO_#&@|fCdWs>W}+BgWj zWRL~XPPr8V#HiJp9hpFUTk6v-G3p?}>5?b%QD6ZaBrK*RBRQhr{g9XpNi$O~Q>mAG zY-O7pIII@73dmMfF!;_?(J{DixO`ahBml<kUD*xN@G<y_;tk|-J=w{~iQpMGD~-_O z>qxFuwt<&q7YLBGljID9vICjG<{I_2xS=okdMbUf$u$V=WkWnCW@O8^&Ih4fG%(8| zf2FckXB}*<pbD<LTB-jYFIlw?2w20COOttL>L@R}>sIQ4%5LLUhemeCww<t=WOpn# z7ukLPkq02V>2a?A4^sUsN_E>n@>?a9C)#pEr;8=&W9xRih?T@tx?smXcjb7}zLI1= zi8H@5NcJ?@YkRTeKM%`M$#8qO=(uL5$$R$P*A+iV_12|&H}|XF()_|T3E|QL%Z=<F zXFJl7HbircT&auf;TUI!(<YjA;sWmVPJD?IB#7G!On8SSsH1*AnZIWa&%q%a+4H6Z zqmRv^y=0eijHNMMUMYVfaA6)h;iOdlib{D4`jSJhru{1`<#CS{+NTv(*Zx(N@)rBW zO_I9uS69lL2WwxUJksUiSx(g)Pn4&PdX6IWvppM@6$L;%cOnUp45dU7n^W(%8bv5_ zj7L@gt!jijyhKv(8!Msn4XFVqsl0j^2w)t%nS<XAdKoGYfUZJljz!AyQ&zgghEjyJ z?Hwh`VtDqDDMlAZQqoAz%cg#~qy*i~73fUwN*WPY3)SU>lDDKfPJl<37YSDygul@L zbab!yc~bIrw8Vp7lm%hz%ZozKv{@U_a+i8Y*2>K()vPRtw^!gfawd4F5yTL)tqGoq z26#-{F2b|51W&=|_s$ADNLfDhgI&xOERQP(lJLXZ6-+|`ex?#UD<V8BKh8<z!58X9 zV<Xq(nT(0z9EA3BGiYhVDFaj~b#bZ$_zG*=P>V7^ayE5;nJwOyM&vX+R34H1vNkNS z#a>{G^pE0{Kyi-8NrndHCQ>~6?+G;HkoZ0VX36Ee*qJ8Fby;o`iAO0eO3EV$wZ$dr z+MF+txVOcnh3|=u-;+kQ&RpZ%H4I8*#gBbQD(<p(AddvmIuD~M`i-k*3s4|BcS%vA z^Pb?z%^JprTioS@H+=Yb_Rz2pf@}agYm5uqJ-g%RLn6m1-66{-Tk(%F-3|2IEzx!x z5p$Hszo$Kol6`b^bO~~mFQd42={{B!?vIp&`^hLhxituPUPM>2n%DMX6`v7SVL_lB z+n-%bfJ~oKy$yBs64!LL$x9~`8(zaUuS_lYg5c2N8c23@qPDA2m8g=;z!iA*m!aZX zOjF_tt3^!S_IPnY<yin0j}}y1>#M6u#I+S@M)Sl>+~s)`MW_z*k@<qI@sZF(mRW*k zOOCVyG$3tb;Rek_ekERCf#&HmLF0R5h8sJVOlTs*94CA$@Fp_M<wb@`&KUTQ;ImZ- zcR}En5Io|SIHH_~TI_O#RwD|FTkfey{F~BfoH#51y(m*@3=>Xjh!u&?i$<Vl6eYeZ zD==FVlhC_78OaC?V>cu4DQL{1(jhuF^%WZ>TLo8Cqx@$RZYY*IfwIB?+Zr?5l0UnU zK>!?NFqZ39%#WvVEYB0__DcO2w@dx>a{Y9}e2u4mmdAd^%l+^uw*{=vv!CU)!tEWE z={l-Rd~snrC!cWDW+@;+FnbZB=2YO~hzdVmMRArJjjb|qE1^|bq_$@22}XBuvFVF_ zuFy15b}^?40uu$hN=lkvQ}0g0a^?sx4(}kCgXnZhi=vY>3L;6&Y-_G@6P@ON8MBi} z+~4NDx73;-P|<Z%`KnH*J8~^r*i-P0R0Q#Rn~F-OvJujraz)X0j7>R6BY1ym<O6x% z4wMJLS?TlcRNS$-C{HAsxp9oxPEw+?RXJKS2ryw635}+qlmYr+>cI^S?*AZekc*vl z;RU;Ga_muD7Odw9z*+U9ekir#a5ApVZ~};C41bt)*6&S?&qZPSa4PPwR28Oap3jXM zlX<8(jheiYRGA?5jA;g;vL<mteT4|#>DrP#Lw~4xVoh24$S{<pfrA!ml-t5E-DqfN zA;XLCcUVqGI$lvl^mkwu8zPGKmlPpJ*rZTebHN2Sfro97Lblqq(We5VcGe3dCQ%5Z z%gz|E41Xd83(}3+!F}i!IAE{j%hiA}a2Bk4BUrF}{pM!&`F4q2^hs>&MVLQnCll#2 zfYp-p>DMojPBG5BDdd|xHHP~(l$ug-={8w@VSYp8C3*c4SUdcpb8%0`2j(@@JHH@% z4DV>zhkNOGb`DZA+x#_UCqrf<v;&x_5n|YXrrZHY6@V8QHM4_Y;Qc&?!~>#;cmXm8 zl-xwSFF@af5h5a&$z&n@L)$P+gbc{^{HgwsxF{m#hJ+YDvY9{HWddNOOFc?Fn-l0& zNTYBY0P6xU+V0}_Tl<u>lLn*YpN8RgDW8QD*0K)IZ=DA=PYz6Z%*+4UnF9TVOWa9= zFEoL1GK-cub~rlXFjSQ}Tp=enI#tV&0iMl52U*m)=HH%1{261cM}icB5HKQ`U^<2+ z=>3RcC5^CX2X2T2vStl!kPP_#+<q==BgfiU*ieE0(({DuMr4&UyjF{8bd9Z=Oye9C zS6+Db{U(PO3yVi_&b#d?=eI^#MBO;EZ;EB+NLlt^0$z}QxnV}qyfsafAIy)!E0VS& zJl44_)hQ$Z2z-LeArVNDwzsExer32FxG}s$`Dm_|oStz<s#i$_@J$-K2akWZC+71X zxc&26_%lP;wyL>B9q;QZ9sfTW`MFNT-CSp!X^FX>eQsp`lOt7A_|cLC7^ei-986)$ zixHNJmMk(Li@olFy#g-QuM=zNqn{iWS|T=tl%0y#Q}KK|^T{&+aLGXSr@FGaZ(Y{M zlWzSe@GKM<$o?dECoJDSQ*XQEAAH2^xxCvMIj=k30l)BSP#$YXf8td<?#Z-Ep}*_} z@j(8WcnzBWOVGZ~#btI)JoUyi?9)Dc%65Jm=j?EY0?IfmxQ;g}q?-PAJKu7+;#ELa zRqlhkflx2PKY6+fa?RaFdrj9h=2oWv>w0l!K5fkHGz|hg!n8);>t_VzsWynNf8x5h zh$y0bJ_X-2Uwchv^BAlSxTB1xzhT-l<$xxztE}`z%!7k=c5BWrGTFA*9!$JRoDw<X zA@+<*GCxFTMR7^LF%8KR7e7No3Y(m4%*G(Ktctm`%5O?dc{T|1iue>0cBvBPS-@}a z19A@+Z&74XA}s@M`XQFXGrb^8ve3#Nu_OyDWXI;uZuMn9PA^BjWE)p;#_DuiSmFkx zV+d_RKgzHnuHa4XRzwUDTjfcAdm5JCDsLMcAQ&TDyA^jCz%tdv#zOf9jU|J4RX<4D z1Fc3NP;sH6f<>!O*bxY+DyYN2SkL<X6M|OT*<h>%`#Kx&PsdPSp>a^;2PBYH{NJ8F z=medNhgkg<Q%|VV@g)=H1$sldiBd_f#BRS!G(F&wr7o*!*|Eo&mYv6On9_7gCs1se znA_6OTqE4$WKFH65CvE>SM?Uv9ckXaWt)HqJVjf1%2s^I)O5JYCq|c`^X#f`=Yu<+ zmDhnZAb)}8W(@9pZvw+_Yq6-3<zfuP0ay5HLS}3vyt)`LOn-jV5F6L)`%-i6T{8U& zlq(kGxA`DY9_Su|y~Ka%*5bci|97$fJBEKrDsX01+$?8<63r0-@Yd8jB69W@d=v1m z)YDN0WvIoEThnDYiFEe3ccGqT&(fk1qYRz-wMcNbfUI+hqS~sy7Ks}RZ4xU$VX*DV zLCQS#o-}8!##B`;G~uErG1MKYo~uojd`p?-mP&O#l<G9*Tk^p~n!2}AC!KA6C(m4k z^JSfhcHuv$L4z$<g0Qw4?AhLRL<r&`zGvsm=-8NC?q}_{Wt%w*ao3yV2wD=k5SMs# z-=VE?JiE_QE16V{vT6Kld$Btg(Tre)4--Be1?(>XT`ML={u66oM=yBD-;ZdGV@;Dw zieC^uQVU+@h^7ARE|&G_UtXtyl!t52ae=5+)R*C`#?tsFYZ^3H#>Rnpslu4GV_Ntt zE3eHnxV|)lWTcZLaR#{+A7)T&dzG<vWSfl2D7X~0Gt(6<vn!QRau}xWlPIlIMj66Z zRYu`j#M`Kh4x2KH@GRtur}il`msUL&8Xl#Lau<UkSE0Y``I>iTan-sqg0k>IupJDF z(+>WgoA&y*+d1v7H;mLzJH-SfsOY-Bk@~mRbku7bTCcBL|5hzJjn+2jBdK?sUf+wv z;QS@=iocy79p-rnX!1#QG-(D^Gi7cnQ6_^c=1G}QvFa$(+%7XvCVenf%B067N11T5 z&`g5J&r>FMu$cBHP$pA!6;?t!TOys0w8<4<07_wG95LRsvy)YVL`^@tm!MW_r^cyx z0vY04)Kfdz0<8k>YjPDBX=nTP!oD&ml2hlC$if~sr5Zb~rK`uWre-A5VAeoPggY&x zNPA;1QbwZ~^u}YIEtNWnwBJH8SQp+7!W}SH+DxQZm55Zw6vB~XS3_I?X4}nq3C%wI z#AVUpCnGz>V53NM5gA3ITd}soX;bX-NM>AAp2rfyisN6~i-3N`?z?3`1n#Y0(#|ds ztEAyCZ+#JH($a28zRd6Csz1MMwOD$Z5+k|jsEF0PR+~xS*EMPaa32{@-R$I9O!$o% zJB~BP(*`&zj?@+mP2@S?<{8{vnn9}YF=u}j8DGcnWE<kRr)|P=O<JNWvktkxFYVfJ zVGHzs!RM{SL;dhnWF7irc(pbd04&sOfZhW>bNP3&|8D-7Sc*)bll^}1+R)TxC(JPf zgg0Qg;q@F44+dlo8-@mhpTJbX?J>yX_2=;P(-eWbz&4)1<nV0q7)hInPQMvRH!SgP zBv)BULB)!sySW!<=p*Ksq1G32Uq|}oEJ*jOPML=69HHj!fJ1}BzPL8Y!^*1s8`7XE zqV^q&K=FeIw0nhh@O0x`A(RKPxi}1;b7IB?G1;v;Dc?|96Aa6ooH8e6wkzzxxP99b z+hQCaIm!;~{_|hN(dpLW$qpul4ie^7A2gjDDr7%O51=G6+;<0gryGt>Ypa#<5jvqv zRRwl3+1eWX0}L`cg<CS?0R(c=2+e}<bA;U#a(f3-BL_8APP$*5A(CK7d`0eQiJg<- zv7r|c;@r~$J<ZN133B~1bv{o4$&Ux`!xG_RjZ%U=72hm?0(3ZGqk>-m5%}D#6T&Xm zz8xHYNQu3GpD^47*w^ZI*6G4lUVhi@zYrZ!xrPb@{d-Uv2v53jT&rx@^nzkEjGkdL zzQZ3E<<8&*b$PNYJVT9*SRh7FH<l$<$~1gM!pfITrr41iU<EwS%!JiO6sv5A7ug;d zB5xKzXA&_?P?H(drWRvinLkkd;&wu^IqnUbHl?>jm2#5r?86?Xa77I1+d4GZkJwmT z0f-Af(Zi7Fi8_(_I)EYW_F)*<?c+!{;r|9|wl9e0PWU;5tyF(IGCDw91}egOj#NY( z8eW{Dq+BJ+xjx~@cTa6Y4EO~fh3Lf?sUec@V-$|Am4>brhAzbIP^-|EE2jjZ<=R?f zRzbxG>&cFk2JQ|c6JaXuFrTV*n44S=S3f`gGVCeRNy1IS!OaN=O}Vbv#+s6~|JF*i zq_VxHukVtjt<gTpeek-zRv&N?;?hOwISqtcZ~O|_a&M=kmxO~tg>*FUp6OyQcA5VV z-Jj6HUmvv&>Kw*#XHh!dQev=DI_mu<zKrMNIGK)DfP>Eb3h*=^>wB^HPusdhP<4w_ zFc!EA7L0hu#kPujVe5%nhlK+@mkop1h4;;_<IUNPg1%hMt@C{3Y&P54GOLH2wZUei z>O{k*XtVJxt$(-K_=x0~G|-^@YHJJb0x7?=<6Qa0z`(u4I`|eeN7~_V={*p??eh!Z zKL0cb>iz=~)Okw!_xlYR{v%LuF7h|-cUr<6Tu$_)(zd5IJ+<rU_Yv_zqI1u~l|;;c z?l%&>@I^oO;+L#=>CgYdFaFZYetG4~U-8OcdDX98c+s!@`m28fSZ#1APL-C%Z=z^Q zx?@p5!6VfbmBye2avzXZjCOJf7bPGaHQ(425>|6<*flL_ZLICZ?tN{%2HnfWXhL3h zf&T`GLQ;O(_V{#Z_p3=MR4L@(`yrSPr66<w)-Ql)s%Z3i=E3XQ22KKKLjvesrv3gp zx{<->LUvomzTB*LA+f{4Nxstp1^*i1Qk)F_j}?k)a2T8+@ydwAi}1aZE!8vKY8UF+ zd=yL^`KzpN_I)<&z618?=c`Qu{VjX?6*VN+#U6WB&*SiLS#Zb>yGMzhk5@*hYy&tO zRXsA8SL8Yz;hIz9E3GZaK0W?&@$qHs+Po%Y7B9;+aoCJ7{~{}%kzoEsgKHdtH3gWt z1^5f$TgP=fpZ>iZ?9cm0&jI@_zI!Q@wCzD#mNqzUjCNW?F&^%TcM<`2gW&IE3YVhh zvqDN<XR?dmFUEjLT@%<k@;1#sZi-z{YeDjvDJqGE-kNC0BbC^g6c!Rg+jKN(VjXE> zOVQtpawt4H&O%m1`(*KPg2+5yl=Rme{{-6TWM>Jx3>UZ{ATTJ$AP6K)QlCr;#0$5K zRLyIJ5C*HvjrHf}01{bn7wdWOj>YQFLy3XxRCUMZc)?bn+#@*z)<C?49bP(152?fv zq7#yHM+FgL(e}OTb5QhLYpg{1i~|lN`AoINvvj_5VG4;qP!Z?g#<kI(Talm$-yJP( zjqLE^{+7JV7)P4e_os>VZBT;&e2!K+Sd^z8PTQbThS&~T&)zpvjvEZbyC&NVMnX6K zPGH=V!0>I*bA*cJ5ez5X@-`^c@tSSW52ogP8x)Z!7zwz$Z-XlP@%*+yCulaNlUkDR zj7MQai`LbO;x=dq^~T8q(1FAXUTGVYVW>#}nLvuWJiYuj=q5g3&RrnYr!T>ZN$f}A zF(48++Y0RGvs_N66IOmi0HwHz^Ph+K@ihPF{O22dhd7lG)d)|c)s><bNYUaZ;gYgd z=ln-;lb>J%2xftm*_r$_A9w;MaG=d@FXc!!&w=cBqLBO3lsX4uV>56d-4t|^Ejey= zWJg67wA7FgR^5`~BLZqW2(}YObwki-u93sF#7$sU#TUYMJK4Wk)h}_t3bi%K2Pc;T z$0xtY4@~X`=y@y^6bUwQ$?LPuMobFgab(wds1lip%PTtwYZ1)WWX=|8cpb=x0#t}@ zBA~|%XbD|L(gHRjEds6E@N`bL251nsoO&39&t|NPS0FUoVbgtmjBEh`rB)!Uka!wM zpylv)#EoZ{WAsI|m^Fije4#`THVnGqwQvD`JQE@SS3~WF*K<VhA#69OiD1>X26GE4 zF^+mw(Kd3@BKuleWUeaOfnTYI7z0>0#Jw+p28=Yk4v3nOkrh28Wm)wP2|D+9*4?}{ zRn6V>^;EHN^A<T_4qIiV=O0rw_d0O1tq3EUaOFE;@tdih2WHUwZnAiW?!KL>72-hh zPNTZ+{wdWf#DSDXhsS{X=otTQs#@3wGt8S>Sl8wEQ$6o8IaanGaZpWK7?w+0t*T*( zt8bC%X)XsQ-c_;&bzov&NWqF!2RUI3QPq~a8JwJ~LZX|?%H`x}VBIdo<WUXBC#E6W z<cVbk=w59wx{gJy<)%F+<RW*YdNh4`$lHxoR#Ct=^x`nws$`fU9CT!*W8$AK?k9ML zg3e-v8yf7|+U3bOv33J4m~qP_=;)}>X$e{_t{LcPMH?T$vxN;ib1`j}ArBCUQ>!`i zs!;Z!cbZ@)Snxg$G<32DO}HG6*Ya*hYi_!a#c6Kg{u=g#?3t3ic*}!{$J$$CLMAI0 zn@(yEBb=gsqJYAJ3M&qEbo*mGhYmsz%XHTUCo4_-{3HZoFYBni>GEAvo6{utU5n<f zHvH4o8t+<^;_TY10F;9(bS2Sd@bF|ROn`poXHun26nlb?2UI8<qb<NeXN#Qul5B$< z%_#y6uQyYVbOyJtAyp<7``A~=N)B0V<eVen#1f)darbRvf;S{wxnW_Eh<U?89VWv< zIX;LY^qBqKOojz2IymJ?^Ju}y;og|QaKpk<coq!{kVjZWoCGdzY=P7m7B{8l+^{fb zd@?MC2-y4#ixoA71^2Mz(I+e`i-v^-6BbVT;*|`GJTK#z_#6!jQ-B<CB8W7RlTAc% zpfr~huBILuD7NAC+~AH2oQpj-%19S)OB3mmuM#|2TW_jTulB4;MJIS?s^`KzNz7Z0 zhs0d)AHWF=S-ZkzZ7%L1<yEw#=Ss(97gy?L`BQaw<(WFWf?MUEjXUM(zJ+-5Yz{TM z!&^%-`2{E)c85u~w1M*m@>bBX98G>fVh76u-W-PMXZLM91@<KaH{r@@XGch$F<cYQ z97f7#pSva$c#hThIBQTN!`gxXC0|?v$!~Yh(_wj@OMh@~h*+?Mj_sqZ5v%6Qede~k zpZ1FUI$fMay8vy0bAy|l(%Fxneu#3PelCDEfPL9Pl)-02x%YPmb+FPGBq=rQAk$M5 z#1%MP)Dxf?5N7b?#AvVTMP#~WfIHpMLyo7pX0U>q0Z)$b2oKmCM<G#pA4kCxJO&tW zZyw&Sw&aMT<5Krlx+`r7p3jyUXOWsbazQ5ujv~13u&<BC9AiIlyhr9gm5(zZ+}Xu` z!`;W(E4>voexX{}%~#WWD>sEWpOvS3i^^ES9gtaZd1d0gpdO;HjHWjxG(BKjR;OXS zGHIwc;5LMIHbiZNUQ>EKs0mVy8Y7{gpb4%tS=lFl6cje}=Y6MXxjFUc{t7k}{1wtG z&7XpN4U@#qNkSA*BxfWQO`dfzC6tE-F94Ab;Vr!tc!H+@z}gF)8j{=MtEOo&t<EUM zfK4|Qkzc~KFlK(FTOzbfDzJ#y)9^)piPRZ<4xQ|4sZr>Znojo1ycGpNo;<7*UUvU9 zS8UW(?%+cRot1wJm|%&V;?nSXnu<#jB2Amjo7qF~W;1TdAB?2atnqnY@I;bMM31E< zb!VD8*Ik&*BancpY3eZPF6>e?H>>V~iVn_fy36|#7_PhIV@7g{N?CWgxK?-Bo|<#r z1<E-_bwIic6pxBil)mm5sj|ALyIicXGfW{mMe$0y3ke|4^Z6WgmmMMlN1SLPO(X<I zeN^=mN`qVqZLQr4Fn)O^3MZS2$CLp5-av+~qs&T{A50VIWXV1MB3aV1$P!s@%9G_S z-_K_O?>aKI2<CHS=|c$&Cri`pmzxEa^yj&e<zJ=doGeX4Ph_cBs`;tZb!7Q`Op7^i zARAWIljW)>f-FhcoVR%}z*&jCpzyk#7nR+QB^1x(S=wJVo<5Q46+BBOTcdl(2{*~U zPo{bWw^FdWiv*wQeJa(fD9K-(YY;D#*u!0k_0U}`l7>KmJ4<RPDX$@LH{1O8${PW- zApFFJNcefEL$4#C9y~~^(?hSRvrrt%TFl1_9~l*4xgYJ5MDpYy$|LrxlRZgg7!9a1 zXI|zQxERD)B-KEv)9?)BM0LaK-C{OyAc?co#bcA|8!9)vR+|{=Ca2BX;M;CF<l%~5 zMA$Y9d0?!15OpTN!S|^6K_hit(dfCncCJiK`OOPBLWHKgI=Ef&?tqHoc~xq_ozKbg z+kPmBdi&gongik7nrXGhqQmXNPg+>ume~;K{R2OOy_7BT!~xPBpBxDX#KprT*(WY% zp<{T$3bqXsjmXgH*~F1tIfp~`b~ApC;3u%X82^Bwbn`aN#$FtR+cXxbh+}$)p<z@f zDc;YiG*C{%>p2mWVTJ1LdG2j%XszM3I&ll6o?^>8FIS`yA2`KE<UL-BjSW;N_7Nt7 zKGXqgVBx0~S$GU4OAi08xgeN20~FW5;O{Q2h0{@Va#!;GZwJc?I;Si?l0Dip;|Twf zZl}y%rBQ|5Y$MkRe%K1i)%DEEwL{-O%u-98#LtMn4#|^T*P`GHLXdiwF&k-c*%z+~ z<|M5AN~)j@y*LzK5i}=H=>U$PX660=G|^AyLN)kh<<sy}%1VPQ82Km5#;4bVo8=uG zEyMC+gd@#QMnvI}mi$ul#l!sUWMh2E7%XL4aJN7k&oDZLJKI8-vS2NKP<}{t>~T3A zMA@JbMr_j>WsDCV8EXA>>qwawu!i8rFl6R%7!(lVQ1js5Xi;7EmOLKKi;`4~%?XcR zG&g{yYZ!~lYjoj5GK3={++!$6iKa>X(2Scn*QL&Xx^!u4wC`}+(?{pvz_jNX$nASH zE8rI(=FFVl4KAG>=gf#yOW^o2Czcyt?=!I+_Py&aQV)$~#~$(?o_ruZ1l3~3F+Aze z^`IpWf?MIKR;EOnctVJSHgK^1<(2}$boheWg>eG85?8>BwJw<dWCno&kdOmW&rZZ! z5*>Zsh?uw6i3vrL{WA;xnd*B54w=a;?ShziY&GzN5H`mMPHmLs`NDu7F{KBLhgO~1 zvg3(d<BpT`QNaRDt@G%G#nLUsCmy;O@Q6zGts@j3O?E=58H)%PkuSz4_18eo4X=&L zP4jFbkA|uZuhpWkI#a80+BluL($V;OSDGw0hNNoGTJPPJdbK+gQ?3}t{<c=?)$UMK z>b)n`s~BHO9epUXX+h$j*=ogIe&j~viAz6g#sG3ek0W!m(nT{>^fOMT`1Ab*WO1zA z1+k+f_^BgIZf(b;1e+j+g5W1{GmVF7!N*A+_Jd$4?AzI~luO)B7}Mi%e5Cz!^03^l z&tRG3rIT_C0s>Z>653*zq*PtT0w+YJ6;d^~Yrz7Ls5ls@0;lS6I2(jM{mw7?CIxuJ zPH+(t%+@|ADg8=F$PAHu#TZZ0-M+v+NQdFK%g3IvnIr|T=|%kf%mfjeD|(V3l-xdw zPI7Hz@6D-9s3So{?BxUzO^OJEZk`D8au>gpp}96eGi}zI-6_GI0^`ZG&d&H+fP_=R zIxQ&9wljB%5bTJ!*>5Jz7_iHr2$(15b*6;19*%ElmxkLdL?sLJ6^_qwHwLL8g<I^; zbN5F3HBtu9!Y+J^+8nX|cy@2DPh)qzjt3<JE4Mjt#SYpONRLd{(pm~uX?9Et#TX3( z)hIaxU6AuKOoKezhDQRXo}oKc8SWvp_2N<C<A*1g;WI^wAMgr(^*xx7oL{{_a)QRy zuqLwGk_PJzOzXt9R?IA?>6CL|vP+Q?ke%&)b3W%%aAvAEL7LM7jVp?BD;H|soWO7g zCc;iI*5y$L3=1o$*1^}#DX)nNcuQ)~U6>ZJ0;0eYf>+pfhvw(PWUyAnwa%?JiDN=I zUCN@p%LdJ0rR2usOS#v}9FNb@y*`bHv|{;?<`ZnQ-o4I+n9)~6<gq#aTVe$buXn0H zkfe#$`W^^_k16^Zw}**!8mok~y)(^)vo>=l=V|PTV{Nx2Xq>fKya@dU+IA$$8u(m5 zU4hRfM3-I*qd*w=TF{akuo{E|Sr#f(gu|@~=0f;lsos8jPD16jRIi}u1m5rcRqEZI z>bc_KijF8NwSPw{cc3nkJ5y7S&qcB=HBfPp9NLqm*YjxqfvaLrxK3;(g)69Ae#O0c zS-=z<+$z&0?TR)uB8XhOV(xj9DK3g}TDyO;1J(uE*3XT6Wnr>|ncQxtJPSEN8CIxx z!*o!yD~*g!Y6`M)8Yl}k<okS1Qod!Zp&#7jV+t{ZRiY+&oRbz2jU5O@Iy7hq(P;6< zqs<qAj8+3UW8p8kw>OZzFrQ0<hPn=(yMH^-{8W;d^$}J=#{fn@Acz?B=ynoSB^S1K z9Ty+qK1~mBpr!}7QR!i&?$Uv-;$A4|G6400%koBNJcvUUTGqv`>&3Zs5p4`B&priN z+GC{E=CXq@*bZ-G*zW(0fr7!2AMKUvD?OSqnC}tsetD&!5GZ*2+k+wi29rG{uYw3W zIi(<Qur3Ogxz~*e3|9&;%fN3@DH!J~7at&T4jcZd8kOLUsX12(kbVqx0i&w~0$_eB z!FY{Ez?2cupqwb~Y9g=@vKdaoqz>Sfv;hhrKe)dwBbE9L)>A0}X9cGgtKhWRP@$k0 zmz{8LNyu@IZzgJ3HIx)(!hBn*<I*K<qx|E-gTfQr6X`$j$8*RZ{X{-?68X0<7^b*w z_{fnF<Cb}sbTiAmuf#HW1}S->nZ*MWwTdjpY(jhvFQwxz$2^acB$))5pMt&mQJ%0- zULaoSmOY7ifygWAacyUB$GM`PA${|c#9r96jwGQz`LMV&^6;r|@MuPXn?H0v7d5-_ z<<k=*Gl^X5UIC|34r!VW7I|)A*k|II9!+@24B~+d5DVS~eXy|%V7h@R1qN~eV;p=< zVK9)bRFx$QvV|H5?U!KHz)woJ5zI1>J(mb%?5y#AJC$qJjF~`7z-uF%<o(DYGXq@o zW0^=uh(r&3O*K5g<xsIB3J1%nFQ^b2AtbLB*r%fa-C~+rGfHXli{l$FQQ<XoFKSW{ zmdL`ZRil)|d2D7!Vp5!L>qX-8B+gZy4wmTFzB7XQ-O#P6DNo{z+v|3I^8w501mLsj zM^A8);VLe3+1pe7OFQy_6C1(7Ko1OQ(hi4l%*Meij;8B-X0_x8!z>YNUC(!<o}K4J zt||M4b%<#JpK!M=Rcj1^Ft(NIyf4)$gg=xZ#N(<`Z+BH{CMNgSO*!U_X@Ox4MTHJH zZP46yme>&YRpDE4%`J~|M~Izbjp7@DH9%Jy>)Kvy@!!moG=vt<ZjISIx)28~hdGA# zgxRdIi0DK!O&<t^P$J8Re2qee0F+U?K6Uqixr&(AM$mBwg*(Ia!bzNjWG?BDm-Ggp zeYp){dZu#_-;GHgSSw_Cn5jwxT-`Y2bro`1>DqIM`o_#6BOT^e(ntwnW({n4pft@2 zY}swojHSYPHrk7Nni0M*neD#fQ^Dnf39R@}*7subn{5%3pPb#A5dOJW=&>lyRIsAS z2v%~U#uA^wbgzH}(6_h*P3#*O`!|H0ygDeZOi)}KSP8jhAhZyHtQ2<~aG+!-?7&)} z1!rH0d#~)NOmx?zo_=(!m=;%!`tfZ$&vIvoouQwr;@%|tDXT@BEB#oSI-oJvk22KF zGM;zboyVN{CDWR{zS56H$9O+nMBM-FH`c6^w-&qGcngZk*tyW!GDh(~=!2RTC_Zwn z4k#P3piK;GSBa7tw;$6(XW=ZW&nXmSQ2;F)%=m;q0@-}D8Bcgv+l!5V&X@_|2=rqN zEYYi(T2VU6>TxA?dDTCrTf!gLfWI{3fI|@V;~a2o{Ll>e`gz1N9nE>?<=@J8Wl1)h z$zXR0D`IFdkb|?^%+L6BO+{|S7F}+Ybt2C6L=<IIJ`mBACk_^Xyvn8?Gov#R*1BG7 z+>Jk)v<N1G;M-<&h4~Bm7WtrYjzF(9lM5btcI%?`?rbGNJMBd~dVT72mr-+6t%7Kz znk;sRwSexGbklw^lu=Ft<`%_qeXsyJN2DUTHWoNDEdgHzuwSZ_Pb3BFAq+@$FblRm z>#K$AjZ7dU9+&WWZ5rDCMPk4b@TtIcslbn|K+>DGKM7oCcn)&bIMTo0{~_luu{9Ag zZt7|{?1JL&C_C>Q?}zi~r)T&dqM-PPqgcqNb;cQI;xyJ-XD!Fy*=L`PGg;veXS0}I z>p7lY>w<}i$t-)}i;!Z=b8N*0IJvV`-Bf+Bv<P2@;*&eW#Y0?X<(T%}eF&7SEWOyy zy(Uh7NvmT|AD0GQ{$`Nk)*_wA!j|U(T`KeoG`L{3LRtkY?r&P4mY)ZqM>B3PJ4>b( z_sL$04};lBdS)O4k|E)Fl*%Xf0$-xX*SvnokW6IVaK!g7wrbju<(ZhD!?Q*9)0lk` zo(8yWHsqEhU%pT;k&|elpFVz!fMs~w=`J+;a-rL>ql@~wi(oLil$}JGg~94wvM3t} zADH=QVX&3)nqrw<U4ZxKT26s~V=qj3)aim}V3}hmW+{&@>_ct!(m@$!J{pR>EVN$u z;e35?i#)x4-mv<5F7b7`y5<q3=c4dn_KbkP=U^-Q)b1bwCfde_Cy6bbog2)~<V&`H zo~kIei)GHWGB}|&h`>`d%<vOlIyIQRICxaOK^{{Z%$^^*!vVGIg47+Zm|}NG>@$cH zN@|J`dN`Pd7dQvyjqqR^3&h#Pi8RcngLkHl^9+{x2h}0aJd`$={WL!FINBhwXOx2f z%ge%|r|DC`Uwn-NWT;_Nk!Il(yv418f^|Qqjv)m)m=5nxckukyg|>!DH&Wl#iwnlD z%0%$PKzG5Pjlvz=9pd#cJX|<rsd$w5buTZuZY^1eWTqguj$LP{9qlQo+>2uFqLT@L zP9rX49?>5WsAmjMevJR(Kw2r=k<R9w6skyoEd&G$nJKn-<FxUCw$!f8*s=qlXSeDW zID21XhbyO;(-p-ow6w0PM`=kCHnpM_!wX*CjGpz8DQXsh{F&ClUkr`H`_&cke~Kev zlp;p0bgg~e!(1z*lpXfpR2VS~DUTGcKx!~0vgv!vc>wN96XJOQ*m*Q=4&(1}6YzjC z`j7=+b(92qQ{O24!-N4o{650f<G+9vAqay=13=zLv3oJ!b{FM+Kl!)=13XE_&m>Ua zc(_C-BRwKk>75_RJ<~hCI5+KxLz%wuGe8CW`iy3?yk}n^Qgu?0TF6!a8WHbMmg&K^ zZ430Ehz)A<5f~N%q4-^i0quyzPOj%{%fCd^)U~82a%jliR%7@`XY*!#TE|cnooR}f z$KMHSUrJcJ?kU0=12sXZ6h9);JvG8gC2&V5`2r3{F7O1z4-;E-ZfgC>dAqlKS^e(R zp)YYXfYjEO=?&AqN=w|1yfOgA5soYRu*3(s#F2RmZWd0+7A)~WE%80<+9N~ug3)k| z|A6ln4^Jw+;0cvA{!M;nXh`fL#JiN|v}TP%3pW|g``p>WMV@!KX%VN9jKDLCn@9&^ zzeC_|gFqobRuW1&YsD+IK*9ng5m>Hmb5WV?u1F?VQZ@ZGi};@s%6$=A&<1FOnz;zk z7croWi&y}bMv2u+3!2_40SAD3T)hC20Ynhj1NrqDG-)y&Of9G|QQmhGRK8w$n@(IJ zv#nRn`u917+Krs|vds4tmtzQoya@T#x7ilJ&e{`~#gj1Eo;!T4rs4f_8lLZ)+ljou z!Z@8}_sb)xj(cu(o@w^Z{xwzf&dlYT@2u>D`AMo%2u8@$TN%JdQ=NjpHwcuvLH)E+ zCs{0aj2!gsta_^k7Dv{S6)uZop|-bpBQ+BJGxpL_EFJGzmOT6t$1d=<Y}rW+!lcE) zGZh|*S#w$Go|4UQCQ9R?w4B3vOW?%B6G+`7Q*Axtd8>U-M6|XS8+F?q`WqC7iqDzM z5Smpq+OdvFT`Rgd4>WZ<-k}IKL(ehwxjK`6L+aB_dPbCn{oEj&x$0q18}D0_GhZ0h zz=&1EM<roqf-cZ|{RMY5-i1vSP%IN7&_~AQ5?G7~z?kDBx_MW))T6Krz9cF<Wj=Iy z>cqVX2y`_}25-U<7?Uf5o2YKOJ3+r|{0ThTv20ketK9n}nq=-Vrv{m1;EJRIgT}nT z`|6z0#?<eRr!B@XoX`LT`Xwc{dP5q{BW80V>K4Os1`j~&$d~(Me3}9nJJOtibZcB5 z!FR!(N1b#@#JVN*?7j<az@`FkP6ga|!OPE+p=)6>JX3FBGPYfroi2lh@gkD%j9-O= z-H9o`d1vb=@I217@jO$D%JV*zp!tG%k(l~`xz<Tsyd`h61NFkLtzq1$qDZX-wF{no zM*t};vEwSb1uZ}&1_<p1VqIOd9xP_Ww8hoX2?GSy4W>4{pdBD05_lun2WN0mgqL@` z!<$7Fg2{X>a1vy)3Wy3wAh{VsH$;Uw2cn{i2*-Gh0&!<Tl`9Yw)zJ!=AsZOgBx=5- zbHalDp%xM(YWD-U=EPSifXj09uSHv;?Dr-pTw&m8d?A?sV82fKJrKl4I7##Bz0?Ip z7H9|BXJx2iRxW1G^^<~6(3h~q;`%XLvWZE&P~V{)lVqjJ1*~%h!rG-ulqc2j9y3s3 zQSVP9cT#1uJ_u(<qKg`4#Js)ogw`=+UlTK~bS4wf`O~zJ?@jRdO4sgYD)5n1z*oB5 zn6oP~A4?T0(S{E$gR-#bKY@F*UIm%kTPP~G^_ixE?E=4&3yO;CDaRaZfBADFC*n^| zQXLivo>90(m!EykIdqBgt^xZ)zAFAb_qos0r2`jSFflnvuPFX-_rOb5tazzkKk&;d zaRGsDAixy_xPt(f5d6k#e)G3hz4o_%`*pwbJHPvTzxVsASO1s)3L<oMs3!5%LnU?S z4^TQKzG9AjTQ|4^Ne0wbI6+C&(=ai*9XLX1T%rqcI`9zqJr&L}jMx7K^bZqVp22tZ z;l*maKwPCfgESHcGYh3;;orwM_!TzM^$Ca8h-$rqwSEtNHkKV+$8Q_6H$Qr+dl&V> z?n!N<;P0|OTp+}}j<2hNM1lX?IgsAQ#$THUX$Yo~gT&p2Rrod(Kw9V^-OO6QC6I;+ zAemb=2NHvYesfs+7O#N-C5Htz<ZOEr8~F`1Kj>MeZsLnq;{^s9?}%E3@`KUhUICYy zPWK{D7tqZZ%3xsk>h+bh(%;mJ^Xy>?zmBdXV1o8UHu!4<Ae~&n+-t5O912q|AJ&B` zy0h#!cx&p(9S0YA!5VqJ6n$Q3eeQ(tp}hV$ZN*<5o}?&$)o{-9Bhf(L?5jeBymq;! zD6n@*MK{?1h0_G~P7^u$mSA#$jgNHPC4sFMIf2c%s8?u$AOj>8lT3V^0{ixaD;L-= z2V8R#*cY3?hRkwUaJXCYdv#S}|2W1i)Cuf65)>}5e>q@>vkp-zf$i9X`co0u)MZ|l zo0TZAOS58zRsF2+n?$zoURLa$i5`A2^k9TS#qJk|C(p${KVP8}CY9qZ4B)r+f(lWB z=m6*h4qh#eGMzjZU2`Kx2E<(HBv|wHirrtP8FD&#@qFn7Dg<Exxrjde;<=J$ck7G^ z<o+r_;dJt%fMDVogpsEckWGb7sH1RWD$L3O&<R9TjoE`}zrQlyxD1XuhtJ2-C|q^n zzSbNn-dCxpeJ(1PIkERSvM=O$1n0ILu{V&hbDxTr1uC9Ua<6BJ4#{+}YgH9|*Rk3- zq)ZZac^R0KGM{9R=M77Z#r+<@tsNV@Sc2vnwxfKITnVLpoG+vyIj^<`Kq+iRnIxzQ zUu4gaKbAe(oT9!^hhTwWZ?DY@>fno{_}UDEY@ztI(&uwCO;g?-B8R_{AU$h%@*4#F znU$scb$gwtM6OS|E@xT0>;u|~%r6fi4gyTd3O=u*uly9iH_AXJ@do<`tUSD+36~hr z2sTi0$>Sm~eM)BtJ1f}Tp$R94HMjHnxJ|<46?SiELFhsc6R~mkhQ@Brf~c|KzL}=P zm-<;~KZ*qXb{_$Nj80&|=Y!_x2=2wBj0z(h1P%D($_IoJ6xfZ**>nYuwE>uPhi@m4 zeBIN#6_Gcye6Z=5hHRoLc@d0t0D<gCFY%q5?{c>3^0EerUrZoPtI}-GL3XeWv($kY zP63`*xR93M%LS{bJAF$7{eBv#yO`)wJG=D~PosA^371=@s0=GP=3w8*_u4t-D}9Yh z+e$r3bEC#)ij=P$-t5R*7)iDyGNFbZdzjo>J=*>B9Z~2<{aiik*co<2e?r7ncSL_| zuM<9TJRA4~-!I{_EcplqGJo<P>>hxl;RoQfe@e?E$vxjB(W-JmIH-LlK>AaHVmqDg zNC^8PoSR@&)4&dfH<yRmx=ni|kEJQ{<x$w^1l>m$8i0(;L-6HB$5CBuTO@!<3&IsC zfW>7pIQI>bpCyoddDw=gBX163@lsByb}xnU16l)*TP|+6G+GEQ7nSyfm?{ObO_$x@ zn^INZqA(92s(RVD9Btb*x4m>ls(aa>Ha4}@H@h6aI#qOd<;WwvI}E_sDL7OszooS~ zRdslkZ6tDOkY_ehs&hlC<6A09s2RCAN!rLb@sl@J>gcFNWVWnRX0}^W9f!^Kqk`06 z9d`%CK)W}mI*vo_N5%Moy79a<)$#GzR@6-WOjYX0pEM)hZmHCfi>ZLO@_61|sgt&% z-o}8=5VG5uXgB-^|IA^nR!rX^&sxI)guNvP$l+jp2sZQmptD;mbu_4*x!;zFH{>o% zUv_=_9`H>*_bFh=)Vxln_t-*)=9fKJ+8B>Jac<fQjlz4q9l~2e2<L!QE>B7G)ho{G zwxiA!q%}_-2C6|w+>*X!qHX<{Y|+(fpukfi5;jHHl#xW58+&oscOIu@M-y580N=8S zxi=t{;;Bzk(r0Uogv$1IoZm6j*poI)mgBL^J}yhJ+`3S(Sd_V|IY4b`D<pTm(~ng6 zDr&$-5Gh<cUNWwo%TwpR-YWE&J-5UQu1s}&y(RiwNBZo{$@>W!J)%IPNN*TCb(Qon z-z!lmCwj6Q&o__J7ed~*oIkV^LkE_7(fM^~iDWy!55@1|Ew~93FGox@;djd&TE&{} zN0hnT`d)->haG!}$7O?SiJ*ujSyx?CGuTzP+m66!ky?qdFqE<QRqV;Wj)$+~@vA)F z_H}U@$YSX}d6pJ54Qd@_wsUzJh$l!lI)qk|ABaMM4bjVOAVlAC>y<ypE4>C(CS513 z#49Vk+Sv!|b+j#KW=GlIwL-Bf!nw0<b@ki1hWEA`nIwpAffHRbvF$4n8}Tr?Si}Y< zidn<98=^nCFuSh@Gb732k&c~hSSzL>cj1?1h-g11UpV8eb%{!g*oaGTT`%^x&UW|= z16Zz+7Xfqp4PGQuC~Aq|Ct*o1u3{rE^f#nl9x^gbi}pbA^~e*9uh`!l(oQ^ne8pZ4 zI==Ql!T5^(tv{6X6?-}8_<HmS##iib|5C~0L$e-ZF9#i8z3a(wCtD-mJ1puGhmwEA z{=Rr9=_~ef(DAkY3C36K@6JPsuh>fkUtgM^e4MO_BHL7lGLIrF%SdFZXcCfJ`pQz$ zPxV1oZt2UVu%l?rnCAp%qaR(=lFskiU$(9np?NgFV5d<$O3<DDAQ3v1j!aqB{~$zb zLkx1}`i9h11*<<KR%cRup?fS$3U9Oeaa9Soi>Q8-bloLUn>B5hXSZ`IA|fn;k~k!F zET~|~2B_C&*Y#rWuFaZZlv4uZF>%v3wdo<XS=uPSx{63;aB%>`@+tDG3=FH=4PU!F zhBrw=aGt8(mL^g*MNcMhGp09}FwL{;lVgFdroWZnOKFv?pmn`i`y-}M4di|KRE?uO z8RGP5JnIxM>8+bhe>>%Aph~y6xQW|kkG5O5*f$5e@Jw2@K(S+0wa=8`m-qEuLher& z0g%zx>cim78n&Sbx@g*Bg5&Qlf4i0%4eQqM8MC!GIg~5?oY_j}`=3kA3WPo(xjvuQ z+~@ahJx%4U*Q2X-Z|TSK?VHhZ1sacR@ehub4#HjraY(kAxVDyvi)KN*%i@&I1iat8 z<Vr>YEkxOW+0>_(I&6UqH}+yn9_ebQ-IIMl+JVU!tpYA`FwluKU_OSe0OE1`yLJX5 zz+`*HWRzW&y8OP0C~|?U_n{}3V7ojOblA*hG}xGEvDdp(cqm6QFyzI|A^^X<m?mjV zz0jz{`EOeQcr_G6K(^=o5qkMTFgUB??hs>k_4i$rJgd95RYKygNn@%6cYUuf$K$!O zw6<nBF>eTfI`&;t$GExRC+3&-0Y`FpXT4ARbtawgv%<M!fG`c|VAf+g;|78juFv{d zT+nG=*ZO1tmWOR#dBA?M>A3tC=Im@d0gJ-ijRX8!fIlvdnf#91OUpxk$9RAofs&=o z+O@q{!#8VL1Lc4}IU@M5$_Een%cgET+@FB1Z1X?u5?O#PCw#2;HnWjUw~az!?zWC< zwWKmf9}X0VZ2IkxPreDpm~{Dav_&JMT!~W_(nW!pwR5RV*C3w^r)eC~x&0IQelM?# z1?#JWlev@{T#YOG?B7<t)-|ctPmhR-Jsd8;z(lCI92`YQ+UX@Zi#Xxu72)#)8^%jx z1_=|_r?xLWQf*Tfp4~bNkSptxOKoC%OpOI>7Z7@5BSLu#iKI`|$nri7WoWTwYxmp- z@z!*pT@?Vra-U)*yx_Qu=hYr)H?jDWxzTi7+sCx<XO46ab3`6&jHSVwes_tgc_CPV z=@$uMZ7)`EqGkmQ18A0;FwRv0&Fj5dm2T-5HGUG53*7wB4u>h|4+VK}PN|8>{b_1- zl>KC=LHIY^lp<kcFvf*v^knMA92VZD#sMJY1IvxH0>%bfky6PEsl`j;qVsh^YA<5+ ziV8-lK6jDO+jbBV$zPR9e$|!})-ZIwM5pSTrz*6Rqc+!8V#)<v@RUzP_}DAx>N^TW zwNB=X(`57nde$^}l9$?Pm|qu0`#+mq#ffyk7*yXUx_6Eac5d1BfX)Wu-%%od<pf#o zdJGs*w&?>qZ9>UK-T6*ZAAv))IF0Liv9ZMM+siPKB#Jy&+~6gvYk@qxPPQ2b98aP` zD^8DzIxb59e9J^7=}1%=yy47wCz~r#1}TkKCzXeDd1}pv10AlNWB6m_%f<i`49E%} zFzO7SY8bu9pg11=knYIEp^eCFdJF6XAV<s4TN7-21p~M=#OqS?KOA<RuaiF{=u+7m zQ(2b}Wa#zSt$S+(cq2$E8YS(CxhPNf1`N0_OUhI9od+gYf_7~$R{NCMX3}%aJR$Mq zY=+6c;VsPMR==qVm48V5p9()l+(7x$B`CFHV3bciL<A;o;=2J-NBDL{e4A$+;DA1n zLBBO>t-~x^885A#4ZR4ElN)EtQ~@xp@KaubNGG%!f>KEZ6Xi{s+U_QSEus0c)XfiV zjc|7IJURw$$?Zb_P3%r1v;OLaWd!pVLpgoB1A>{$f0(nUw(v*p<=Kp+iuw%}M;+Zf zkN1`4k$LD-Qcw!X6&&D+QAV1@;nK5CX^k!VM6gAagE$H*+4636<*)C>dM=xa3G7$m z4jC<eig6yJLRx@t+5LjdKdab`JXb0jM)gV+p-LL4wjk|A9c#KW0qCrWnumgqVDjx0 z8u?5g90zRtL|h2ZEawDHRGOS)F%y4@174lFaXe6_1U=GDzwz01Nt~^qZbLaN=|ZG< zKePxieFf2RZED?JIHvY{Yp!EJ8A+g-h7+1ifNoArJ!r}V6`5}xX^XAP1lwtfcrd~R z#~$J*?8@fJ%KeoU!FWUJC?`qk1mlffvMLxUMQT;#NQuQ^3cp$Js$)y|yD7o)&&Fn> zMIWS4ZU%tWnl|24X#);2AUvV=Evdv!79u5PUPr`A^7b9t=)sX=`~n;So>%=rr@`nO z*tpSc$x=6AgBlRLm<}j<MscQ!6gPf@Jztr&b-pIhwojWKvMr1J%ThU)volJrFH)nM z$>+@RWAwOy)%c-jvTDS@10@D%I#g2ON`hu>FIMnju>zONI1+W2$OUOCL+ien=@Of9 zF^8+N7&s&YfNO=WE`-pYh<~JPS%0O@Hm1(LW3oxnz_B|OH!?4?h09Xa&lp*A!JOSX z(Om#^U75nQ`LX+L0@V<Q-7SG}d1`BaSRy%w1s3BxGPJ{W&xTw9t8vYQD$dS~rv~0u zTRxlq?(rqKu1awI(BMkp0Jkp&Q61_lC2e8m{|_>KC8!i)yA8n|Qm!42zayCZz;8l0 z4#^KrIAQT(zkQ0Q3Qz2I!_|{xOn`t42&W_I+L_F^hGc7Txlh&{|JxNP($z~O!YUm9 z+gd&|fE<;fic>tRFoaptrU1{fuaj<n=FYNWGS7{6mlqxW7Px5+Pe?*j_Pt?#g9nsR z<fS#Zu>ui?%!1@t!B^vL=NaoJuUHij=b(YGF5SvdiXrCm3ej+hL0^#o_`K25a@7aJ zr>O*i`~X9tndeJO)q`N;n(=tm)ZkUALASk_q$1j0Xpl#w&oGPvA7%$JPvPm|9fqz* z`fOKmiI(~8wW%v#pQi=b<*1S_aSC49Nl-{}@9iY?rkHo~pq|Es%fOQUbTMAJuA2t- z#?+f@O(&!2Z2E^!D=p70si6DSE!zXM7=UGd_1&UFaRY2;5?U$QJN*Iin$qWo%GAgU zK2FkH0P;0}5-hcJ-hVa0F*=NNx5iYN)ly}ovy6BV&gbG>aVShYh)^Qao70ed;Vctc zbs}6rYpmw9V6>sh!k`iY-|CH2Np@*r+K81++~n1~3Ax*{&Hf_xp(_-OBC_evjCwKJ zK~}vqDQ`<7c*N*@NvTt@0eLx4wT$;J@ID&wzKW1xX_HJbLK<ErX0VFACtkqvtLSgC zdL*qOk{BK@F2Q+Ag41;fM&#E<#-o0=_uJ+fw-ulDy`T-{EunmCYVF&m+44eyZ0g}M z&AulUbegrxRE=hXwQ~{11PkFyM!YsY5>SOqPY1dXf?wPj@~MNVlD3BU4x7-Bqcbgo z%3(aFZnQXk(0{LVbC(~ZQ9nd+4<~`K_C@v}@5;h{UmE-NA-PgcXhJz5EgBf(6?f5H zsX1ROxJ;o9jVjQ}N<7WNYwk&HIIrQ|ZXC?Y620t5C0#GG>(^}J!0*6tKTZy=V*=(y z7_-+ez*}YUNc8eoskMJLuhLQFeR1Pew)4p|kxGrlB>>~vn-AntS`_j?6c@z`Kddt@ zZa0Q8=9-w<B?f{iq2i+n_{(gGbCW6fqDvfYIu-U=I(&FiXT!P5%d<RzMYBB!qlB(c zq()o-S!E~YiXm}dD({`<%afVNP%&n0J3~6IWV=8E#%i#@#bIN*Zf+t1Zxcd?95~S^ z9m6N(W`VAnz`ozXs4`-x>7X*UR_05eNuWDlk|A1ulGXK>xYuMWzW~E$8)4wyRnT7| zB~_=S=YY<tko<Lm{F`P>SV&;gBz-QG_esi^FHBM-6P?$xJrAbejIKDW!Z=Of8$@i_ zB=A{_Xa2hQ9DE7&)AspBl+i(0D<T?Rn}6=k!C6fOsPzc*Z-w0i-jsl@%mA;`$W1aN z8=T|~z+{33^E$A>6_uUUwJuqbosIfj5f;=B?5xt`V&NEc4Ni)$rY1wCuEy=j;Zdk8 zP~3WNy^iWRF)K?PVnYQQZX)Ci03N+VHFT*o416%%E5Ft*YwVSn^ww<KG}?rA0f0<~ z^hHuKd_iQEU*m!%wm^o8DQF+nR3d)IqkjMy@&){P{(|ltvz)~q<8Kh5-{mFeuRHe= z=h&2R@~DYQvvZbH%rJ9_Olvrsft0xVO&Q7~<%&k6)Ghvts*8WKFMf#>;}%4wdde}n zD-*c6rEha4s)-9&+P5!YEao_u)^>RfU*u@?HM}`Y0M~Hv!gCE*iSVk%kt?*Ub`jfZ zy({l6YEOj!f_Kae@3=TCXK>8mNGp>(ZE}yD6!Vp7dOVfcnw1&rC!WZ)XJIZFC-fk# zJt7Z}$O?$Zk-)!KYGoQlRFQ&Y`_d?@E0c_^EDIou<FsLcQ=J2aaK-{_6}eY;JT`bY zK!Q^PcRZkQlotNRRL%$M<upKa8N08c8q?2;0@^u$5YSFFfrw@&noW)Pk$-Vd%}F{r zQ$ITQ^IRk+kkXS|9xf4YXhXORGeaSTWixF(7@R8ZhhgTne9S90JYadd1CE<$rZXbO z1#Unv3egepn(YfJmhe|m)YtW5Pp)p+zJ+PzOWKqy@brzgb;Gzt7>!ZGL`K0S{bW&e z-Xj7C#K|rHAv`G@D8it--i$GWSWyn)IGsMobM4pANr7mBZ0cJ(VXw=(pg@9-1rwA5 zg>FdTIvs(#Q9>!#fsGCjC+>QqSE#N7(?CGi)V?beI1W~0Y~THn#)BZBt0yeWK;BdV z5^Ih?MwzBng+3FUZ)${-3njl^iz{Uwa2n5Bo8Q~baXg#?6QMSf<em~qN<$ituJDP{ zl1CEMP{F5)6)a3f2)Cb9{={&C4({AOp=Nz*XkUI;)kxH)4(s2HsNjvuQ@b!0g$Rmf zSKo80iyKO3%hHiLL@Lz)`Mc}@DtSWOx)rS~j~)6RULclTtthbS0xrcw-hcQUb}7Q# z%;#UQn`dGc^;d8jD_ia{#~yc_yNl&5e%jNX{&Y)07bhL3397ehJQT3uyoj#1$?1?G z_ms|VdK?2UIvWexy=l6ThA9k6l(DWCTXf1eNtCfy?U;N!zjZE&WoI9ad|=!~lHMdk ze<fs8g{5su&AXw$49&AO6Ax*kuSg}`&|iv@VX;}*;3=Jbs=EjOKf87AZBHS+GHo^g zzdOE!cahAHmv~r;3y5S$RZ<;{c-*YxteOhlC{=h?2F(tEvofN}azx-p5t3ShwMxdQ zxW{y(G>&W2IDE79>FU8#PC!Ubl$~$f5@s4#G>1|U>;cK+MHhU|!7vW(IaFXhe3E|x zbCfpksW#YBNZ?(cz;iS|r7p0HF`~*sA30omk}3KY51T9qo@Q?7D=9>!qnlDk9_E5f zuXOJoi~jOw3jlpk6(9hLd$N^Qkt;7O0LQK}y*uKhfLS=fWDDBgqr+fiGrL)^$1U!Y zFm!Y3;+_3+m*HM#X1p5-z5~;NQjNE#8tyw#WaV^S7A&fbEyPC@Bg)>HTJTi}$#426 z5)q&Z&Q`?96djgT_T5282TLVEI9-~%1kXV^quOrtf`n0dq4zEap(>mi)xeclMb)hd z>{|>~9<|BH0gjVof|WQ5>_HJJ(>?S4YU4CNeVp>r&BTN~5Iapd#iL;m<$1U>fs^y$ zoZZ^RKz1rb+?jC;P7BRNpME#VJ}rR!nFL3$<><+24ev|6f7?W(0uI2OYt$4_Wg!{b zzMYj&|G!A>RYLtgI1Hh6;P<*$#TkUwSuN9%5h<@Id4v=*z56l8KxE<eV&C0_yrQ^T zvScY4dPB&<-mq5l!YajFiqByhjf+q4EEud6-Pi=W;e?%r30nrvIB?su+atKo_p3j7 z?4v`<%fZ0HrTBt(Z(H})enqO0pM&9NTX6)VJD^u=U=+ou9p|YXc`X8LzTl9ns2?<o zeIr%mp_eXsGOfKaeX@)NLARh07HnY}Kr;Js<Zwmm;e+O_rC7=D6LQbRGYb_lF{Uf; zxqz6G8vnuyoou7@Q#jtg`M`ZYw!tmYtKn?NU4`+IZ?_rQr-4woa4Vssus#M`b2aih zWNR50k9bcDycf9h7i3!>`QF2pi^4BR&bHiL=!F@5QZF<-$ca-gyxy2T`7-8jN_cV1 zBYG@=kRL3ptOePpH@*EY7it`1Xb+)dI$x8UT$)-53}((}9-jop$#}!a@-i52tAGJE zR|f`TM$CSaN5y`^>f&4~OfV1xd0x<$Ya<;zbqp97q*5U^uP(-rluc@nWDHK3^=zgw ziOhJq&@Q!tB2XUPt(DQy=yL#40H;89!mR^&K(r?vyE@bv>Mh6~{rjJ6vXDQnKrq5= zSCM=?qLj@>?;OGLhgysblos)wl~KZ~A<WC=Ks5lXTANnwK%N`C*Bh$JJ~Q~-q7fpx zIb)-W6t_%kkZBg*r}JK}&P0^~hc{rvh>Nnb9ma++femc-dx4cXo29_c`zN%%0Xz_+ zpV)@!c0^Z<7V=Pcev%9f&H{S60&SDo1$2_x`7mRs^SWMyVTUn03swZ;LO?pZ$~hwt zRUZHviJ-VLKu|nWjE?D64hhc$%EknW^IaqT5-2(~;p;kq(j|Xf2uPtNP|;O>XgVhh zbz1g;1I!0MS5$y9kB0%}{mk=p@kjHagn3c|>GX?ohRbn*Lyc$MktkFGmr}-;CgwS= zOu!j`V*$k9&?a3G&4sP!R~GWe1mdimNx%6C8$cs)k2C^z+Y<&{euttF(Ea~zfL5m4 z&82usp*Y=-HUj#;p|YmPR}g6*PJPdnLfz(Z(K#b&R?miS&CewnEIP-r*m-mh)>x7~ zm-g1*K<=3K^2{$aBWMnO?W&P8>Qx5|M>#@j4X-~W<G*T_@fSeAL6+AZtg)FzW@=QS zlg)=@oNt(AoDJ(&^Lcw7qC>=^Q}O_E=}Pi|;_}=Q22<h22RJ?T65<J%o~bY*w<c^E z&dRkkJr6NKM+hc1%?qqy0IUJ>vsvGISLo99Eh>qgnWN0lmN!V;ko~q2LbJ9PTlWE( z3c8$XC-pOWg>3IaN*J`L<cM1Dm8*KJVFhX&jY`xxyCsiO^zK2K5gnV&iQhfOBL?+P z(TYLoQlz4SZct27iimfIMKf8G?L%0;lDixgEDsXPGvj&df#Vr^TZwV6?Zswu2zJ%D zG9Bw@C_US3AUB2va1dr=JU1EBt(-Ehi2N`aw%sxFWPIiEk^G&9W-4N{m8po^bMSPx zc#b(w<yP$=;8o}gR4()dDwk;&5NoFW%!qy5RKEStpf)yJK`q^~MQ<2VO#~n+rDvyd zt9uY;<KR*Gm89~dY`V@jD`USqU?I=gM=ZLFe76hC!7XXLQk=LZx8~v!a*;+MG+RLK zVm7Fq9$1&%8Y;JH^?0Q$z@m^C37aG%RX?-%?{q#5Rg`jb;J-Tp+y@sOvDpeb>L|0h zbf8Q_VpSS$>{;DeFbGv)HVocgi@{mR>E1g0%|BIZajoL`cxbkOKb^Y|<TO@8PFAfR z88WY2HHbQaT%46P>8_uejIJWKuhpVz4#YMcMwKVF14mYDwt}oWVrwoPh;2+Lt|K<9 zJ74_57K~~ZbiCkMYeMhNTJ+9JiTBkZ*K*0tRb#Ewq++uL<kEc?bFWBzgHJ*Aq!%p& zG{Q{gqjvC0!rdBe!XxaANT*o2{5`WPzDX;6tQM1VAk>|Q2A8qf3NGsiwYhX4RGR@? ztr7iUHXQvE6*jT4XD!bc{Z&QE`9u@?FC+TrFQFf(L;itF=-6xl`IOMM-Ww#eRcpc( zmo_R65y^eXQ(6gD6T`eGPlqKJ0pq~91<-7Y?keGf@x`9Ljgb%6kEnC=p4ka`^PZGX z%dhLjmZmKcTy#)txn+CTeHLe<SS{O^eop;hR~uWiE%zR$6q3-X$Fe;v=qr?rty>Id zF(D-!LH*JBQD7T8e5@8ka^p_Q@?5qScP3IFa>{n3=X0ripMhTWiBwD}IvD>4Bxl;3 zm3GgyckbtcyF3xREZm9SJh{6|lY2TRHy7lWE!0*xV|7l$7AI(JBJ0;HZnm5nUfHdd zLwI#cc-6;!jzPT9DN)w5U2h&7J(-34;P%I^KE(-$#*tr|T^C9hYkXwxHQ23fL-7PX zxA{Z2KiXdC*37UOyZy$)g&KC5QGE?|yFgev65TR5K!~#~b%uXw+usrJPjheAYwVkQ z4ML*3<c~qG9so9x*^V#c8=jg&$zvNsl%!_D>ANBO7P)cufA1{R@LNV^s`0P$1N{gg z@#z4R(F8)`uwF4@KtW*~;3DnrF;49G+;BErRse1e!?}9yHQ4Q8q;Q4<__@G|%)%iU z6sSXiK3#8}d$V5S^Y<1&_kh)z@OtCi`yl8eLgEqt>Q{tJWVV&gzzq+u(hNU1Z%Dp9 z_Zo!cC?b&;i2BCtM0Paa@bs(abDqeK;Tvx9V@I{Gi~mqDCv=?b;!g3_UgT<ixs4@d z1>cT(o$Gke>*7Wu)W_`d59hPw9^;*$a8#ga%DLVVJA6;-&;y9=3=X7o>~MKbk!;jt zW}4wmAD%BwJT~{4aJqYVt~D&u;KO+ZE3a2X4}j$kV=@b@UYG%6?UBl{ng>fFh<oXi zrf+ek7iX8eK08LYK{IO}4-ag<;Zq@Skp=vQX`YHu<edT%Lm}uzD54kv&1RjFWF)mX zkyOwO;tX%-MJP8~4j%1bmm=(XpRPpMU6v|VBJAdvURHaFBQEioTXwcsjXfoVDpn)j zXa$Q17+uoN;S>u#C{l9ypors?vI-#;;j56jGV5#<F~d`3JNh9fY(suRgQu#(+F3yD z6-4L2%!XFo1y9ZpEKt+5&@w}~ycbb2-`lRfeB~KV7T_M)=!^`(&ilRN-@-b@lFuyt zR&p#~nLwG#Wml2y(6%kJovTt?-wgQ+T|afUQ>4!dRbQPNaN-nIbH(J)S*dnys^*I! z<<3z)`e1WCZkF&+iGnLE;aKqlu6XhTHv*h?13w^DGR7vD2*ymDc0sw!xKC>WY3o6Q zU^*7aj3ZSIw$$uw;<8?Zyn>nc9R}NAe(|)>^uuW~kCa`s$WM|TiFny&mb$luKPJzc z+;1lpi3TJm;dwHKzY>R1R`?d;N=VGMgTv0i4%hW!4}OY_z(lW};gtu=*eG!ePN9Hw zogQ<QV@LU%2m)pU+-@V2b1^3h;EJ0y(~3ebICOA{n<`dWjAbvt;=zKzlw-U!TfouS zE-niOyHR2rg#}Lm)JaRVJEv~1YV1}icYzP<Scpt4;OaEY>rPVezeSH(Vfp@m`_+}C z7}unFjvlM$Y7K@$4zWgi2II+vXkc(aQz3pIHEjGjb|yUVxq#WtjYG7fA*+Gd=!aXA zC?+aZ<eIJ2jr}fkab05<rnR{T4t3&*EC~s4S8_QzE=15p7xoPmWKkt^8t*E06Hl80 zM#x_A98V!ThT^gCdJRwj#h^t1#5OEZ1Ara3XQS6bEa;7mLpF~HHwL5P$h}xTXwWpw zG-_glY9t@fwuSogVS&DIXWhgF@+9*iY%}iWL)d`aliz^f%Llua7p$V{NvhBzqO42H z6>~wo3?3F^mGeR`P!|cb3sCU9HB8T#J;yv1GordcU2kecwZ%OAheWk$*S-A7&8jGk zIyP0qK1K0LH)N{UMqT@RVa9w1gdw!9YnPq$iyOj9z=~b%<5>s~x1}2sLbR{j&P+7Z z@xy5HD4G=zEU8UT3{1Q52^=RVlrEHqP+)K#LOCy~syb2}a$a#y-1ypFEb#x>dlxW0 zt13<Oum7)WDwR|aHA<AfDqIRLSg1(Uh*e+PZF<_ClWu*U&UvPvbLx4<>B;n&>61Bq z=1h8~()^^Vk_y*=T*6HvqKQb_cn_j&K-35bK~WG;gCayljDi{!<-G5@?7jc*`~FI$ zEE;B>DIW5F`}_7~?X}lld+oK>Uc2D0bltP>T17JNCh~+wCcaD<m$3VQhpUfU0meW0 z?n1BGD1uCPzV1qk-Lg}|xT@+YZ_m~~<#=)J3qpkOJ5GEbUQT)&-lZk%DZ$rNY^8v& zowJ-(xCn#CYI)I(#A2LrS{?RI&BwIjo-3VJ*s7g{z*kt^ZOdkt<@gR)tTFYP%q{wr zTV!4EP|txWcEk;^W0@;qeiEJA2pzOZB>U{<-9=Wi`#nDvOg9*jvbV+zg^~J0Df{W% zpgh}@9ooB4rMhQ_vO_BceEp=Al}8i^5&;(^jbq|7hjMRRLQ;Uwamo;eWCA0K0}MX5 zzub70PwJ^gC}V-|RQ;usn!y@z5luHlgY4T6=-#-nrQ95=c&2}OWuUE3u?IO!78VLM z#v^Lk!C&FpFsUMc+LJRwg20f3>)8QjwDQb9%lpNom`{Qd<DxFlzvO=INTG*ykv{Uj z*y){8!JjZ34gT5<j>Fxa9pyhZvF@~9-zRf}S0^_=s2e{F9#@-0N@sGt3Fp9ccI}mJ z;efoGsgxM!>SQC-{_wFfM#p23W*zmv!p4er9UL{xzJPFw;Y1Eq;bwIx1jL+<_1S)g zffXsDBbvATa_rJ|@Ej{q+~+NWIH7}WN&u6Wjb>zfx89Cj(h`Eeiogblgy+}M(J?O$ zA*P5X=Z(NoL|H`4d9fpQar8@3dwL9$EL~zPTHq3fvTPqEATOpuJ8Rsb%EwseMX^qs zQw*r+lVGrYM}~;T-8fB{{q#|)th4)nfyjH1X&I+QLKDz1fdiD;ZRvO%hnI4iJ+^dN zZ0QrK+N8E1`^HyaWt0INX8Bl`m&Zc4XdzxIK;)E?S8Q!tp`b*%38Kyw@%tXFSkAeJ z?^nj}pVaR>i%A+U6$wgT=TFAJH`Zx{2(dWEZ;^S>w5ix`1&Va2<|m^%lu4zTun#6e z_XPBE;wgHCVp1I1Hpr*w5ORKPlTXoMq?|Ch)%0ia-OaDy?~7ghpoTc%CLwMi1ytW$ zQj_4d0aoXPVGOQ|m0hNWd@3TcFaDD&KH0&1kd^nxLZ+;w1|i@F05ppe20^5p>th8b zOQ;ay+66ZHk%ydUiB(;vX2xo)|AVo9GveqH1gwW82sr2Skr1>aR%Lyqmf|S-x-(W# zuo^t|d|Y>?pVf6I)ILw^PN;9z>yDNv&iChd-3c9;$8{&v*<#&!p{+Z=y)VD+P`x_) zRVTEQt~zJ`!tJk|&M(dhnwK|1p`%@O@&)s&PWawp)d}C{an%WR&UV$&0!1o({;oQq zi}SJSgvyR))d_{>y6S`qo~2bM)c=RCI-#n$t~#ND!m9H<2D+V}-46CT%Paho&1k&n z!ef>p0E{@XVaaUaF>qdPwUO}d>a^B!iyF!pThoYH-Q1nRGe~x)-!LDVg6Ofi5lY+c zlslDlJ$JzzqCqvQ{uK>t)Q-}-N`!HGFmca;kK(IzJkpGzQsYi3`>9?E$d?jE1uxsO zCwT5d>}5-PNBIdG0BB03I0LTG`>9Zz{!e__HrSp$8f#@B6~3<WC2A!&$7-z*_N$r3 zw&8t#bY&{kO8cPHN}$*`g2Owuw9d!lONL6}%Ubs9_!1Jj?g}Lqt~3t2Ts2d7IMzjv zBW?AOSd3OWZS@E7B^6`Z>i6PHx(;cpzlblX2II^2?6LTg)?(S93Mjfal1GeZxhr3j z)PCdBsW*U2;xrDaz-<=f+_JSjlFuJH$KMyLn%f+|E>=*O<99;eX}1$Ln;S4=;U+95 zhSrmEYi?4Cy3O|tQOw@h2pK=An+Gb3Fbl*Qt@e1l$jl7y6=ajK+^4jhM*CIwTWSep z12|d%wTaX74Y4=X5&nl>;6(mRhi)&)bwLi@>iG~r^nvMgf1~b%!UGWfZ8$gN8ylgn zD^(jv2ZPZPy|utPNu{*=1}L-wZ@XZ<HO{x?0OmGhG<f=Cdp}#e{Y@c$-0cmn!`s*h zb(wQEJD-@{S4V9?*c@_`<=Zc6j0&|*#9FsUG>B<5?5VKHwLMj^@5)JG+iQt&(`}$) z+>~RJKHucnq}wwORxlIY(s_sp-^Lzh!i<|`PDC;ak1fY2Ec{2RwyGn|Gr-5>U*Z>Z zdX_AYxm%!c4HTA0`IF0_5G@Vy(x?}dKi&%U68U@SOJ922GWmNML#WvmQS|{tQe!Z+ z<;%q_{N$5ySJW$C#cQH)NfiHH|N7UT{)RW4vEq$ydUGJT(fdmRgkGH^ySI?+?vDXN z59B>NHa0>LlXY2y5d^`Y*Gb$wS_M~vW#jFkwyYfvYJ5E0CXT9f<#{tcN_b+v)i`bk z+u*Q4YvCJFj@b{o!5F)TF!rEQt;#4k>NeF;&}T{HQJW*Uw<xb+1A#n6SrSzNft)$} z*y?`3!UbU;e?gmj`77NyWEXCTxR8A~s9QOal!zk`TOtsb^@+Om48hJ`bejFyXWlFO zfs9dxRn~jBipZl<{B*@E5C;JzK^_&8ubW@wogd*g<gtNf<UwB*=DZ<NkmpEqB+h`m zkIaa?3nLJQywe1EK$;*ANQ4sS6bzL)kbn|##ssbuHPD{KtM15_PQ#m`1KX{EF8p*) z4?s#ZI~(24UqhVMJI<_*;ivP=>VL#f*O}F|_~|~g`fmI<Um`U+!y+|0S2{8!Zj1de zWS*KLQy8ToGe?!DSI6iWa(eYY(k0~d>RNOHKkpu3C^z(Se0+Sc2RxD9Zusq5S!v^M z_sU9@za1+pf*`?5`>gS@9C&$^<K?e`f@cXY*A?*c%30&(ujdUf-Lu9E9o$cGywK+G zEaBzG0$zp+cq!prpq<mJYvv6v3uld&Gk}+q953&B_VDtl0$xs>HD2B|Z+PjSHC}Gv zbyJKzDhy`zvxk_y1;h*%5Yvjmte!W-96M{o+(E=>&{S~VcRYKDxxIiGjjd|tfEhXO zJLU~ByryS%E7CWJ7%{bSNkX9RXN$$$TR@CnbC)8f6^mIlZ-`koYs7q)h><wsM9kZs zJ;Z#cfS8vQrcx`!yltKk1H<xQ2QDcRsrh&8xu}Wi9pi(Y_39d^ZXV@JIVMMuWF63f z4U<c%u(pe6YFj1QE2h#)*j!=L7Iv3WWc@(_1H5uCh<>f+4CE8oja49nfJU<$MJExX zv1b$DATsS0ak^gf3z#TXq2PhGtnRNUT-iy^pg4Fe0%f8g?c1{Vpcx*wl2_{04Fff} zGSozI_gi8}R9@!i_*1@+E9EJ5BQuJO5281x04BlokC{VmWD$`Pau+`hbdLUnALzwS zEJ{a!^gZkda_mocD=sUt3sO4nR)XwUj`hc52Tev~gGa=AtxmD7O6gEG6A*26W3UIZ zu?>Mh421en$Pl1Vy?s0z8F#El@ivme6A`FOb@xJ7Q^87c_i~6>($he|TH(7CgdmE$ z!DQBVyMVqz1@vJR(1$3XcVzYHfgb!ocweBxJL2_HcwZQV_g}L)@scC4tjA!0%64;5 zaHe-Bf1%vj&flIha5ETw7n}jtaQwokJ<Z>Rdgbk`1bkN%l@H$Gh$kC7HH)X*w0!-A z>kgTQ9AA(z+}TDEpI+3!1Ae!)0TKA!+6GMEce)Mn$MM@}8^Bm_53nA4fIiy;;8*ql z_?0~XetWnF!0&>Um3IF2uB>$Mcj3xPCx5X=K!b?m2JgavifJZ%v$K^6-|cKeBB+bD z#{@J7rM??s20tBfG_B4HdQ3@Yy6&a-<`r7MkA*g?qewiYbhvkp#tf)t-cf<wLR6u8 z4i8s5!AEP>e{zvG)Hh3xIR@eGdCzDI8^`vXjs+3Z-7lAeIGnY=6WpBpcPjVsrk;xl zHPHxFn9haF82PAjvC9gmbg|1VhVZ(QJz4ontJTgl^EIx>4X^E}5MNibhr?^*j(lCq zs$Pc#PTzqF>FFeXIt*;w+>RXv%C{qDkTrMO4s8PHgSJ!qOWGn>H>?7fmZfe~0SRXJ zQNI_kEGQso{DH%W7=IrB;Hk!OscaN?DoZD)b;}gEIvS4)D&+E0*cb%QSeBHR4P__D z#kC4|d$x3w_W{a<@GNte9qY`xH%(4X4zz>Lq#{f%xszDScPHh0lJWsD3rfq&a>eQw zCguB*@{1j)MWy96b_UA#C*_wU<zL|Ck0~v`&_5rWlz(AT{>7f*MWyBY{qxeK{7aJZ z$9aaAmX<%(KQBwlzbq+l_o$s#d3kC1rCz?ClpjdSFZT?CrRA4#`4NKM%jHLWmjY{y zE2tS1^4#q6aWb0_BNu-tMZ7y(5vb_jWy9h5Z?d8A{O_}RcwU?I;BNt}1O9(a`qO_v zzd(ZcgY)@YC#Vl|QUo`LhKp>3Tpp?~y)P{=cFq<{l+Bj%X?lC?o=sCqAZ}FUG(E|t z=~ef+1@0)PsTzeQ(-Z5}5&j3Bj@VY@>1eVAGrm5@jKwhIN7S>%C4<5$qV$6Zt6swT z!^(MbrumfGM9gPATJzB?E%|rgDAv;pprQjZC_rqzZ=V}nARz?$!L}j{0Hg)Sf2(*v zzps`W`hbZf8W7H<<e)vfvD15H(CV4GZg2%v;`1=6tj#>slHLEg%cjSTb0N9;h9^H> zJF_Z`2+7Mo^Mwf{g|8ra)5mVwbJm$vVG~Gx^s>f3o>`SikJLps9Jm!4GnvCk?zr~R z9Z1TQMDqG;fB38aer9!<oaR-t72ZB}=Z^iz1k?#IQ{R5?gUIBq|NPOLzn`@JnIC=r zhW{2@f9Cp|rm<P{=Fhw5()<4*Hvi#|U-&d`iTCEOxN_pV$jn`^w1fe|wD3nvmV#;W zTj{wXr9z>@Bbobdbo85RzL@)heX@)ULy2Ts0Wz*jBp!6oXeiR|L?aY>e`>P>`LS31 zO6sjFneV|wD%g;9id7&rDUJ$swc9&pbj2+o5t!1In0u8yF0<(tEWVr`*f?eN{0E)& zrv{h=&25Ov?j?fU80xC@K78~iwS5qe^b1U!Ucny)NS-S~Fo*O4B#MN3XCLoCN<%qO zUD<*;?Q!H8Rh*2hqx<7w?=?AeZ)}7ThHjRCXS$5<8g8?gT#N0UJn#+o$=D{plL8l= zPpGry&RKT9ufvNIRp?nmp{HhBYME<m>+SE{HPC_5?HjPyg!u`#&b)Q=gvmzujO$d6 z<Ia;?h+(!oR<FuJ8A3L3rCAk7RW%gMC!;MRZ`+SZ#hYU%ZNXeFom{1AhGDt>NPCTn z3>aVllLF171LEgGv)Vw2IkU#vYq463qcKVv4Z3Chf(XeCI-htbgXkuk7EU41;MF?f zNVdOY^>*TWgJMc7F~HOYSo(NAUC&9Z)$RJ2_GlfB*%R;WqQhXkE;=8zXCo83OI!nO z1f4T+G@;$}8Z=^2G1iW97$a#|1`szwv8pP@1wu=`Lq>z)mE;TqakK)Xk!-)hhL73{ zd<N5vLveXTfDOe`K>*IEJKYiMc;1zXogSE2Yp7<3@UXHmM7S?)`%C@(A(mu~#<&gV zh@%ki+CgxF#ub`DXmd!PWfu+n00MSuNGYw3A5bKF3i2Ca9rX^G04D$w*dECn4SaSQ z-e6}0;U;L#@<f8-)~BT<IJz$4$cSW#)(>2)pxTbN8us^&z6L*ts{j>@%siTvu&<h- z-7rdJt?n$essR^(0XECY&ZtYi7Xv!+9(aM+xj{%%X$C0b8zsjPoHZP%jgkP#66BM0 zoG4+%Ir_LULUFF{)aCSJfSkqhH1$uh%oZ&p`Wz0)%#H1i1+6hXMbKO@-`vMyDQiwO z5Sp)r2I3R3kTn%G5EpeHl?DRK#xYnlQoREYh5^62CX5~`@zVHgZe0+U=R@wL5$7kO z{d&%8ltJ;x4ZSRK3&%vvXbT53YUlwi5XDt{pBw6_Si^_3DfYo`T*fbkdbIBHF5?zJ zS0LUY^kFbf!E`lSX5JxNW7t8X(XDiDFfWltb)Y)RHN@$#kqnnnlrA3V>{kDVd6KDo z(aJkyOYDTH?ASoiw}OrO%?so>1@Dl9oUNeJ1N;SN;hnNr6afQNXDRUtTI>ad8<%=~ zVL3O#VSH8Nfl$xJ>Vh*2b!~hR?(f`bFAk^zdh}4K0*(M-Iafy<LpAkHGGU0Z9IClk zitZjw%^KAzv9&_=g|Ul<YBn%CR2NWuhFs!1D^x2~af)0N;V@KFlEu{&^MYy>Ql}U@ zbipjW&%hAQtl$sFdHF|S@`!&O{PXBxedP4UJnF?Op!YgQFqu*g;ca)`u`Amhm*SY{ zCQAGZwiYoVTcw?OezLI<no0Nx!+waWUnUZEv!fNbG|Dx*GMBQ(S@c;^y+pR6UfTev z0sq!(*@|}^H&_D`Az>n>1XibZ1WA!~Y$b@38c0|@B>g6&g`u!c6s;g5DhUEtHG^>h z%WMYY0xV}4j0;`(fpG!aLK+u(@B`1F1^9t+p%?m*nrOsPi)hp(4UIYkDAB0b_zR6X z^zNcjhh0}R>JW*syon~Ab2NlJk;Rh0MGio&fhAbwOw$8I8a+2+bBFR)20t=vjzQ$Z zYEE|xVTXG8N|3Bv%#soGgp8mkYy{~f1(gu`4?&*&C#KQ=4(f;OMi;%RWmk4KXr$gQ z(X@7D8<~K?K;WNXLLGbszSFDiGgLas++OKaTIr^=(#?fRp+#v4sa!YXm2OEZJtwX7 z+(M-bXQ=c%=Jra@Pb<A3t@Oe|rMRiEC8S%^N-s()y*RD(J%vh-ouSf8(n>E)E4?hO z^zuTbOJ}Gwxu|DXc12q0m1(6{<tpVSAGG-f(58jG00TI^x@?A)u4WaE=xfrJ-kY{` zt+yo1nw-grG)fs|Z%4P6E{NItu1Y<?VH^ZC#|gM6PQbaHHM%KQke)RPn=7&eWdX6# zn`4>tR1j9l)L8|}fV1Tw{ah?GowtpBxChHn|E!iFEJFRd2x-Iu1Rla(AuKC9+luST zZMk)Y;@{}bs);na;Co4S->3?^hiNl^i_FGGsKJ&D*1(M7zA0jqJh$s^Po8nLamYj0 zG|%6!wr|OEtlCcHd8yh@<$0OfQ1?~UhPtP!Hq^b<frX-OM1L1#Bjfx^EAe)!NfvMw z!3KJQt3$nyyU|*G5%-_%^~GGA0K)0j^RQ3qsCU-;#{ouHeaSc=0RKI`3Na7>z;t_h zbrO#~P!}v1N3#prj_60X0~*=vFO<zbgT7$uAc|q1gtx=DemwF35+y=ftG5F)^`0|P zA%5YVI?Z1wEzhggs{?(o{4atxz~Xx6K!3e!U<u<P;yXm*t$-g=G^1G4E-i?zS52!5 z1l3)k%V$`r&;iYZx&>6ehZYuViN1$}tY~rh9&pIA!e_v?Oh}=`6x^3pHvvGbFYV*N zBbH76OEV%YX?V`s#x)6}g`}&Nh8<1PHBC<v?mpxmz^L_Q{WPF*f6&=0amrP+L=%14 zKaQixaarsZWecY3i*{uHX~%!v#ozxMzf)5IoWATohrB?b!bpGtri0v<{X@tzUSFKm zrt6D$WPisB@%s-_;dm&zF6M297fKoctRYUs>m4#^=Z@^Zupa#WH`c?4e=iR`<IuC6 zHC6AP0F8A`Op%Z<23v6gZ4;?TkhxI$SntUi*YBy;H3jVnWSbq?-?Lu){-acfhriW_ zdTjz!-99lzS&H>81g&<EmU~b`Xa!hCE2KTp5E=%}G7Z|<Mw)|@G5+sH_AU^6CuqL| z(?A@JIa^OhF7ZMUh_&b3dsKTRU}c+~@%aUrRqJS@)sZUAJ1?l<k9%hZzHyx^sM*Bd z10{RseK|hG9p31HDF5;dikurGBEQ9iiZi>i2bl1s=|Lu31bT=G7lFRbgg9TLg6}W^ zSy6<e?=k@w3`rbd0#c(S9%cg07?SuN6Y$88#P^wiTZSYaVWQ6xKVV{!B_3sBu_Yd3 zqTdn_v$JnkEb&Gp{<}TD3C|xEfg5nX8HvBM4=eHff7<g~@O+v*pNZ#ly}(<M_<Q@X zm+h^z#4SvCziwsXWc%_3Cf;U=+n9KZCBDeSFCEA)F*R(TzRbjbv4mJ4kF&&A_+_KR zb30QG&>c+N<MrLi)Ki}NDpNj+cQMgs72eIn>6VZ<`FDGvd-&=7-qzQc`YX%$btc9w zaW500;cqat&OUvUi5FPnJ|<2@LS$<mZo=9KdtfhynRJIYxrKeQ5eV08H*|MM^P2Kp zu4%X31a%8))zO`WS$Kl`4eo34*<c$BSyd7MQ~{<^h8kl0nc9@R^szbCw^KJNO)gIo zM6fREcdlS+C`V&;aoI4KOLj-W_!IRb0d5PApkb*16V*!KrPQTETmphhTt~J>FwJ;I zbDMP4Tt}9eO?ubW9<+clG*j1+Ln46cARQ=`DKUyH<M?6$M_5?_RTX@Y#|4kb_Fy&+ zeoBGc6{4@->0@g<ec^O<!y)|(XpaH^=8a2ZGAcZ9Wx@LSb*+D08@`GzR(%uJ=~u}3 z;j8$^@byqSm}nuP$GYMy(BM=fz-eR2<E28ct|BB@;uIlOgIsd8$2TPSf|+J>p#_x( zlv)O=a%KBbUZ4I5{3gs8TIE7i#fbD~w=*D9w)Zgp1?-sK*&XucmgLQy^5zT4o3F~7 z+mbhT$(t`GZ|;^ijbFx^_sg5JlQ;Lso6WzCdA=rZrjs{cmp5CIH}}e$bCNgTkT>s1 z-h5NuoSVG4Pu`rLyt!ZAT$sH1mb|$jdGmn0Iq>TU;e+z#;pELj^5%QVn{UgT?<a4* zBX15SZ@w#Uev-U7Aa4#OZyuI6PbP1^CvScp-#`?Ihm9+}7cDpn#T`Ww{|^-L8kwUI zO!x=kL{xOJ2y5uK)US{MzmJ*8VesDEL>7m^c$3d6PKz;m=G8D!%x7>7<$MHt*Ui$1 z?vv<b%e=ZfS~bvx?LfE4ophYumGNM$^Qf{5E4T&1#%2Q)aoh;i7fg%~_KLU;Hzhtm zo2CynIwkRq_{8x+9OC%UCGX7@ZW3ZV-nGHE2_8wk^`0q8w)ovp@7^#`?`5iIVsfAd z77_@vZ>5rM0ql8McfCt2cJvXHcm?$?f;G?s5PLQZBI{;Kpm2nR0NM@#whLy$9th5O zu>i;53|2k}tb7ny`5>_Jp-XZ`Souz1#iotV75HZnHq_q>AnOb2oiypS11OmE)P`5@ zGNbG(@K#(U>4ZE)d}HAY>w~YSfWHeq>-rh$OYAq%*9~IigoaTJwlwdGijy|UVTb`R zHi&>2^$2SIu$znmv%RblXvwtQs!23z8CJp=!bw6j+PQ%$*I+9Y4G#G-AOs0u_-g`` zJHIj7gDf6R(75r1=3@X0D5Hks>H;(rKd^f6B%`87QOv}EZUpHAw+mjEf_%DL?#fQ| zEg};qOM*`)>1*-0WO})#>)1IWHK?f}kliGwiZ3|gaJMUaiGJ4BmT5v;dzmKa-MK3} zUJ`tIxxNmq9j9q)?WLNM)&^_!s!%z8mC9?R@+znt&Re8&D8NDIVMf-wv$iQkUD>2; z8hu7QX~OZ15yxh#R4o!T8i8W+<ML01GSR#_)d`m9*KyYZ!*j-0_6uhCaxz1SPs*6P zvQukvk3nBsxWL?><9%dQc3V10MMRX<@#&q%X^2DyJTZsn6>x6BoMe1NFp4(j6^=Q~ za4Fn#+v$#BOgf3jD=MW`I0ymVH+I4uG6R^={G7EkzH_S6cLGyUsvTq9Qtb=z*6fze z)x!Iusaj?fwY|$?NwsP##{{ZlhO_2m$k+)>a%LepW=Zf7vw+5lc3C5!akt9l>MQL& z877mJ1VkliGncOlrCG9x-^171$*CZ%UlCh3?Wsz50Gvm~G5L-VAMnapfoV@g8qB`< z?X=l^?AohisksGIxh7Un2&nR%C71@Cv(lxOO^JW0cbIzXIQ3kMi?Fl!!?6a&p6&0K z!wPgvW0(m>nNZKPWy>VGM7=&Rz`F)dJn1BjD1nd?j48pO5*AMa0VUq_=9O<b^Q|MJ z*&n^_kN@QDtN!#~{aNeD{7`N(|2Zdf;?K4&6Ghk)bfbO;w<}qCjtWG+PRJ}0_CzC8 zd2>}FDX?|t<=hDVkahhl)+H;V5u5~T#X1JtV)b2~>rZFX;-*52t8y(q!WQ37rL9cM z4Y6gmBwznzHZ5%_wDiZhmcGN5-p0DX2nQ&fVL=J~WNVV+k2J>`0cWyarRR6o1Qr_v zu%aW-8&ON9dDcOL$q7jgvVz}tQ4*m&=42Q%nVH@{qoR?98{0sKu+_H$0$X@g389OA z9Hz?(U15=Qm>y(T&UB=$$#p}%zC}TVZyAFMolI`6QY}umqc%Dffiu&LG6aYP*g7gj za1j97iT}GshmdBxj~Rizt^llt2#Lyt`w8p{2X-t6tb9GA04&C6Na0-tDcla{jSX~R z=}=%PEh3l)0L4fS)J9*AG~;Wyj0ah6<OraDqyRcANbxLZiC^oWug!rjUr$re6JP<l zNrod3rje2{AkEbPeLG}cQpVSbmDiv!49D_fKVO`xJsOqM-LC>PJP(QyOv5EJg{=wd zg8q2TuE9<jJUMamO4O&x+gRHxq_)n{TbLN4&A$`N9UxFS40{uKn4+4kljZ>Eg<#|7 z`oEV&PG;Z0aY{@PLi4_c6;{wMMa-I;*omyl@|9ElzCxMhC?oC*2tFc^cky5FB<%<u zM9!-ca(GZe7f;B)LdfM{JaC7ZOLPC-e0MxS;Jft`D!8wMU~YVX@;SdvgpX^`7H2ah z4LpgIvzAXCqi;rK^gL~anZ)E+z|7YQy_AbbgGU3mBzXbz-a;8U#T^;OeKEst76@OL zOG0CY2MQVF;B(CI?Lr1S4Y$^IW8WhNMMR8+9xfD;({C}u_hW{q6)uwr>4m{b@EB_q z$uAaqG#0YXh{P8&9E=&PR@p~kide0WvsO{A#X>)hg{)T5r^XCFi5aX`k^EzZpT-PU zLlpDp5Mu2>ZgHm{m0dRiw)N4giw1U8DDN)`u@>r@O^CI_4DMBC*M{_i8`-g=g8Tzu zTI?_$$-zxka<ap~9azGS8NbdW8DXI<I8cUa%zBMANpDO7JH!-cL=FC~$4uq#b{^^F zLpL-U{9Oa}0e>4j)60jQJk-kvY+&$j{}iljd>DgOm%ljH%paUuURdv&g5gp>ua&nW z^6yeHXEGN~3d4k1N6@&se8EBWMfJtuGmb(t*E;!kmHb<0mHjYHw{00%LQCuxuDHll zK~3OW;9#(MBhwUE$&z~e6gt?BT=hkK!HirpVBm&s1iA!f9PDB(-C%ZIQ|LWd;8gai zEy&e{4rH&~Vi?#<4D{C*OrihX_1-Cz=w-zV^~GZL6k~Kstv;2#a0{@}j=b5TEdvX( z#@R4-;!DNv9fCC%Cg?>#k(f+-CZ?3b!Ys{AcOOiscrnaO3t$~SYia^2C^;yA!_ct* z^F<$C;EXu3bOIfGvjA`QD#}*ZyQi`mJHakDAcjn3ulAl`h`Oe-w*WHvx)hzsmTj?t z!VYsPJC^WE&D!`v)V!K6sH*bDQ7hjd4UL-sEMqU=)fXznxEc`<GYk4e_;eJv!zW-W zJI3L|Df%gnfs)z^Lf7fgttE6Xap*u10I%D?gJz3WFPuQds1i-}C8!_)12?e;q}Zk& zkSIwB(j{Wt2yTebo#4=|A#@8IIuJI%TkPP0VgcU@hp$fXj&tl0xE>v;p?p(o_`=7M zgNus!Cczcz#v8(4@0<Xg`7Bva@J?~?cFN#Zx7bXEKgCpb<`$dABZTe@QnyYdKzH&M znFvtdpx*WgWM@c%c59`3N=AW!2vD(5XU7COrDd?<qW*dZGIPX*yts^xK&6S=VEXUi zgagzaelg&XL9*IlSZ`DZPNRH;h`_9rf4eblm0y70^kJ-ohZtRq*(Zb*;PfG@!JOxV zOalmO6snK}e^JmF{XyQ?xUP~!eF{(_M?VH0^A{X!Nxh%s*Ds$LZJ+!B>dkr$`2v4f zf}{bz0<bTZ`P&WzGmr2X;UE2qEnyyDBibE=xacD-P7Ol-+k(lAK9T(ZgV50mm+1z> z0KWn2pl}G11M46v6YkMA?hFL*38i#L&LQL3t8}7MvqKcs6QCBJD#4&IJ_Sdv7cZ2! zoB%uUW}S2&^Js~%4qX`5ket9dlz@P;gmD1vpeJw+9mrMa4><>W3@)lXiB0L$WT*@_ zPC6Fi7l6Sz*fvqGlNmiAyfUP!Xa_5aoMSzq1LIKWh6$Z8Z>0x<mv9b12hO3;)d?LK zhd>8yJ?XWVjAK2U2J05!*bqsv34Ud3Dg0{%T$w@&zb;>^2^{!_0tW&TzM-hY^agN& zZ;TLiU>gb?$Q00lZz%2v8|G5rx*$e@j+kO?q)&N4Oex<GlZ0W4tE`eohmJL>Cw_(q z9{7fWhv^OYz&CWkA0v3+8w%}Gf(O2#OD3idzyssp{7P5_?F9*oAp17P!J&q21H}T5 z7~_nxZU_kE5la&`6j+SS)+2Hb4iqGnCYHfBz=$#e5<Nwfzz#-?a|rP#e4_*60dpy4 z3|%@OR!JQYJAjcX@S6_h6pQ(@M81_X43M=|w+1-v;mQQU2B#3F18IT6gz$j{<SR-C z;AjvDF!0JIgr6)?B*Iru#1huEP#6YtE;3mILXI#Dj#t7ks*zzpXyKS(tpv?fkS#1V zBqEuR;6E}xq&uZ~9@X>ZUZ{#P4_~w+iw)Cyia8K9lvIT11HTZWf}o+j1J*%CiKGE0 z=aNR+w#-Pd!_c(Qyz@6UJx2JQ<O#nFXy_4{j*i<9fdjix;2J{mfnNwW1G`Y@uzDnd z2511#xuBulRzYKkZM&SomQX9+q#Y1$mUdvRz-zOZ9WWBx4j)e87z&@TGe{cjuaL2F z425qg;R}MsI)dkdhAiG-7!(OnC2^CqCH%}8T;v!oX|M}RSw;j62m~B{rTx`}4h%z~ z%Q1`<O$-D48sLFr=*+7VJTMGSsK6rF_G(NZkRh4@Ye*P|bO8**W(|46ioh@u@dND$ zAwVF)?C7kcSrv=?m-;N_Xe}j<VPUh}+vt`BvW5y2V<t~P!r%~!gs}uo!0(0_VsL8F zJL-DHn|Cqne9!Sc1yYd63x=+}O`?Y)luIP}3>**1KWadYun}oON4)~B;^M~=W|r*< zCY(<&;U<d$KQV?PjJBo>r4xMK1eJaeH#Qzi!E3;}OjaQaBlf!ZiLy6_DP=DzkMPhZ zzV{1<S%{7zfvpXs5@Ic3GPTHLbfMz9ilG)JlTK20uxaKH$q-5+*AY6@#aXGjE{Me{ zBP>QSB(nr8Mt3hlhJnS5knR!=1Fq;CraNh8NE_Bwm9u78UXU_P{#d~m4m_m-VSnkI zStX#YCTL(V3Ythu7*PdHxL?9w09x3{;N*2=FAKaSw6mHGr|e}7U!=eb^K+4az^@fp z6OllPZ9PGQG@_t2g!h5DC~R0GQ|5wc1?U2I0c!_%&R%4~K~Q5`>+@})Ucl$<g_uIs zd_!bn(?|A#+Sw_-F|h^>aK>yGu90qKQjui0z!+o_%r?LX786!!!05Xf=PKkes1?l# zM**9l&;-_nHzKNl$B+S|ZoF}cgnK_!&o=}TViR{od)r9!6^YLbrEa#AYR@VZE>K8O z8B<i(s<+&`6DKTj!@?~95&;6UEvKM4yK&I<Jf@)G5q0&FK-;{i*Mjync>s;J^&V9t zj~}TKKbV=i8KIE_&{73|vg(L*2C-|<8-m$Fb9KlYGY3D>xOwcFVn~{ejZnZ)zyid) zUQwvNp8M?NXz&@CjKwV8A3;JPF$y2l3gmeoo=00nrulXov~=#-$R2thsh?}z$ERlM zW48VL<vEMs#zrV{g!numUqTNcgczUaP@A7uhM$h>y<2tf&LcT)LK)eQ@f1IZs<?z9 z%3SMyAI|lg279~CTace4?~RR6z`DZ%93)17gu!oLo7^HyPkZy>#1eoLz~~rVX*BO? zmHXSoc48&>x8Z)`SeQN#76PrQFwSkV6g*e(pHoxRGjEBoeN4R%X#aNtBGJe*=#Iox zMnI_7{fOk$Q=UX|8L^{lDm^MSW1$NRg`)cV90rr}JCOphGK3O(IRmvm?O>!c(ylL3 z<ctWts=)~T&N*?cwy$*Jz*h}R5-~a12o2n%m?SLep=n4Cl$^pbbqEu7ir-zt=xiRa zDK}}Tb*Jo(oJucP(~lX@pnFcP4xss$3C`RBp@;5|$<?=vTiAlRH7@1o#mkC$N$P0B z&uLI-FHC_@#HIj?FeB!`!8X4<mEktTR>UuAi9|R}v5P@TF2dLLHmrQLfzDB0PQgHq z5^)pqwq}!J9T4hxrlpJFW^gmBSbyk@$moh(ard`Dp4_KFWa%VCQxo4~HexXp1L=$K zS`17ymaPYUV2t3<M3H<9Md1Mn`4#fw20Ciev<ERBsx(;ky5V_eX8K^VR9`<`(bV83 zhTkyOWMZCY2+y8p7|(9tTY+aM6rSoJC}<#3;5m(e<c}x?YM=<7%%EvNwC{p(z|U|Y zHUg}bZ<t&wou?y#8_(dkFu<rd?c!EgwYWA?&3?q%l|sxT#n<bRB#89lcTT&E`a*(U z;N!r)z#)u~uXBzxoo5(ZV>gT?sUIYoq^A=g<?Pe;Rx44ggPoLZQ6kxu?WFs^V~__; zgCFOfm;kvJB^Q8}uqEkQ4#$^9;LK%D%z^Y8%?)-Om&*%f)ED0eyp(NT5er!$RrRZS z@-aX4z+$+KxQPU=ilye}S9Nu)px{?^xD(8#=ct(t7|n4N{F$dy7ea6GlI?KEHpZ+4 zo0-h98FHl2=vzHfU^1bAF&PcLI-)#=CSYY6sD@*!>^_duR3nuCw9X%k#=2UGZA53x z8l^e&6p<r=m}dwlz`Kh<on1HrfuDA|3iHq@`GZUz@C69%e2tX>?mNPk$Y*4#ac&GL z0oL(@DKhLevf}-1GNTv;j4qAnfH8vz{{<2Lrin9>%$s^sSIm!O7;pg}tLc%UZAJD- zcV;>}YUcubqz@-4pB!)yng#^2>M^#s0R3IC0XwW3b`}f35z%jORkBA!w(0^#y2Vkt z3ss1?L(Yd2sm9NA`Stlk2TGkMv7eX5eww2+Wi_s@!h>v>3VmairEoN2yLu#v$NU1L z;MyA)#gUxt!T)EN@VIT;DYwb5cg6{iE4IB*A#(D^iXx9l=w?Be0Dmp!(6m=-QV-4K zVGc!{Zft~%7LADRL&-Fmqf|5%>-}sh71hI%6eOf_(a8C+h(^Br%|<kO|Ix*IQbCgc z2Ej<26L3DHa91W!sMsFeS}h*7KQD)IIT5n87S48U%U^`Pu@Q<G-(nHSHJo$J!VwOT zU`#CHhh`a#TcHDpiz5rYgps3<Azhfow?>0KjaJ}lWieeWGj<SrHCBrYNU{bVlBu*4 zUIij2kk>S7LJ-n;Li~UR(ulp_boCK~oLoHbbzbc2XOtdzgFTG%B8=>=iTJ^D?;?9a zH&W9{-KZ(^-HmAZ5(<$42v~5t(*%}7ttbHn-*@|W6Wb3tc%Z<NyA-xY_$>61hRT9a zW+GG&--TWwl<~bgpRgN5z%+ls&<_KRDp>7ozCa<5G(c*Q#W{I#ge5r;vMbwD)2>c? z*Y?_rhQHWnFAi&GN4M6FB<mDM>XO*H@gpt+Rd@k&A*IwT%sYa6c`RV@;&Wb6SHuik zG@!hSG|$|TiZsW{_{D0kilyc%(uC<%5NRIjf=E-Hqeuh(AS@!~5AfW^d9lDC3g<qz z=9q(sG(*N40zIm>2g0t%l$cc6-FYb)7kYYCc5|d|hK6%O5iaobe8yZXA2bX1V~-`1 zC}{MdY0flK6O|FNUCP@0EQaiol1poKd*n1narBNEZ-+ZKf@1WHb6DJJ$W0w-J$KJo z&-sOV7HK`WU!j_H5?mfJ=5C;x9WP=N#TAmT3r&jPFVEP_MTKS-Xfu>HO!(4zzA$4w z?<v${dYZa0ES~V)k7MrG-I9ORvkqsb#?ky}3CW<K0KBwNIYk?IlAzXowuR>NLEA>7 zO@vJNsx}3Yb!Fu)JWGTxY28SU`%9;}U5I3pruH-Cv?&o8G*PAsuH!=GAEnNPi*mF3 ziU|MQX7`n`g2L?n)C(}X|0NEBKxDv?(u!|!(%lWtZ`j4!FF(GnCpPp3(AGTS5}&Xp zvYm>oqX%MS;kCIbzOfNX*c4|8?B!*OV}aKh%{lREnG?E|=tcTfoD*<-gmzy84mMON zLK&Iv-5%4?lrQiOmjl_SpcKpLkq;FOeO;vpfKLr&Sfb{zOEz1D8=Q{t+nUSzgItIu zwDp>cR;gD2^PpY<D=v>2i0raHnMT>n4CR~%fH5Ww&Aduw4?CxeecxyucsY@5MX&CD zl_bkiNCtX>qPIcx87hfFhHM<1R}@|tdtfMJ{j)=%>0}}%%TYKpZ@(x4U?_zB7Gz*s zXN&*rD8w!BWYiQSxW9aP3o4}a%DdI<ED6vkQX)}EhJM_<qVTfV14AL}Z$_a>dm{M_ zCz7Ax&M*mLEJxwY>%_JQfT55VnL!O*N`-PQy)JH~Lf$uqyoHIp4Bx0xEkU8)Mn9hu z`I^`RLm_32c}3yOOZK%907IefE($1wK7;2tgq+sO0xYVTn%H5M17~vXlo|<RD<X(- zL3S~PY|dF8cRJ4Q%C{BQMZgR*P1_2r{jvm?Y%#<;o#%FN5E=2bG?-%zg24D7lu110 zdJ@2uQw<3h4B)DcSQXDHxF$%nV#yyUz{`8Y!bl3dHUXeIN?|9wV!A|Yrt0Nnz|;`^ zZ{Z%fwTX~hkZyKFFl;>4a<(eNwp6%02M=;i7)Z!D01iOt*}+qQ8#AfNJ*$MSQ=)6r z%teG5a3eYo(pdA3E?dwN^H1iV$_M*~2(=Bio~gAxWb46BZiZt}2;2ICcS`7Sghv}6 z>=Ky`VF+LsSXsd$yepfgy4%NjD-#Z$M22)l`1Yv#Ru#F)aF8s@Hit)$+jhl1&P{In zr&vKjZhLYO<TkhP)kdn%+JBJS{-okkn_meb=Wnrzle4#Sxx3u#jw{{k0|NttICOgg zZ*rG|w?jjxobrlSyyBIw<mtH<8n|s`;@rL{&W%CPW`K}eDj-%0XfmopiTFZ-cFF`b z7Va#cXoNOy(2X_0@z_li0RLhatjSz%8IYHP9lnBVf!_?)BwE9h6=Z3bER+jzmJb@= z(<;1!OqOZBJjGsCvxno$A$y5v6d|LW<ik|U$*Ef+m?o#Hn6+BuRNc6d_nw3*BeXor zr+`sGMTx2jFuvr`J-!Tp@#UbstYtj{7~c)x9hpN8u!{<Ssl%87c06~K1dQkWB49k> zr+_hh0cDsb!1$8FOA}yx$s>4tS<4m(V0?ER-jx7$MFB9%B<O%*tla_Q3B3pyuZvK? zINCg%*8~_}%Jrlv#`uzQf&$hnfbpG0tjS~SeFebO)M9|?27~48U|+uc^@Z}Pl~^rn zvCuo9Yv;5$1GShPW)1enCJfnKCFJjNPEfF7O9_{0XMvn9g=J-DY~7X>(>AU_qhD>a zCKMDopZZ!fWA;#Hxyu%u)zS`ZJ#J&>g%q@RLbwnU2h&)ZF`-K$oqZ%iVcsyh#sYlK zOL!N;^@nb2*}Z3bECsPk-2aO&`}SLcL}*_Tt-FkmlUTUU9TcvT*fpACN0b#V2m6x+ zuo)Oe_JH#Sc6rO6DYUHXYDCz8A?%h5{JOHEMOb;upD(n`Q|)P=ms`u*Z<ybfZ!5G+ z;VNzU4<{1!*SohDi*CnJt3t~bXDq7{RK_D)1XFKRhM*HImdmSi%O&ss9u2-Fr7BW! zp#)om@WU`uqH`DNGnIRzMtNf+v|*}K>_<_2sh3>OC76}wlvNY4;4Nyr;K6KZBuMT` zj1WjgJY6mJ47w(e>)R$wE^wFArecf4)j)0JS7Z3WL|vziuP<k2DWAgv9{60jB)Ta9 zc%dBCW@AB&2Z&{wl|h$7O#oe|;`NwXIc!e^fGIjdx?HP2VatI&$TQ_;i2ZnusGp7i z8RykYiBOdcpDLjgYm5<W+uF72X9C1YP#~@~EZ}>G9K+A!NUAoV%JFn=1j{6LHWBay zCzr6rk?qc~?)~ZD<$FXMK*tARSd|murhSh{%tW9fcFvDr7<On$AR(Hwz%rmjmOH0- z&<r2X-k^xv-WH5ASkYjIuS%q9y~POhXVp-7qCN+JdPFI8Y#gz#P?_SM!jd@d0Lc;e z8W5?7`*g%vh2i?h^m$3_u;IOFn<;oVT#L?Sh2mX8iU8A`Drg%>;3#l^$(zmq!N`Uj z>PK>Pcv)=N{AP7yIi_p>8m0Jk(D+e5rS1jx&9s4Q?HiXMblInfZc1gQm?M%-0lkzX zOjkN05p+(Daz~^{6<0-A(|ed>hHGMmi}P{i?`sEFpXquN@ajbsI8O4<JOR<87QA_T zjyH?rt4A%(v1X0aFU&E^$L!zO2sIf8?vcRiz~s<BY{<HBmSQtvg-L)L->AR|4Qvtu zDsD&1AQnj+KIGRMLs(KT4Us3gH$<M~>JWL7+e73@E)bC?yF;X1^eWI&z#W8lhu{}+ zp=<m_Na%L{B5E>@m*JoWZ{fx-VnD;mQ0DQ_$_mcSXFbB}-4C}){SrJCF$p{9IfvU^ z>mBG33PT5iM5nm_kjXJNgx*F1au9}Wq@iXR-`dkAWBdHkdYPyfj56SdzPS&c;^#(` zH@V^Z++~^kFr6RE6t2>G?+c$5+X~3>WRRo#q((2XC_03Fc%W0bB^L~>*XKwTTKl%q zt?r_lHLiYHjwRsoSTADY_z5WDl2#NA;FS&1;hthY=ur|poNz!BG^(z||B(3ieijiO zWJKe5$Z07QhcYHRCP*saW95<xE~<5yY@RF^m~`u|ylTCS^<h~M*9$nX$~3Ck_Mak> zEAEZaS;QuJHxGzU=#C-@cgTQR&Z>xp4l6mt66`(>$p%MwYyWwD6ddS`j*q&8>GK#x zUU{d0fFq(lR=_$B0ieS2zbW>|1Squ<u+0Xe(_8z8rTrjS0ceEYQztb8PnHJYm2y`X zT*^cf${QIZ?hYa6;$T`w_+2#!j;q2@E-1{n76V)vCoWjduFD05>7)ZHP*HSj78Gp3 zD(FQ`j57DZMjOIQ0VcFfNPYcsNSpPf?l?wZ^CHzb5hN2D^h#W%1*nZ?Bn?41R!$*F zl>pYQ*+p}ekO{e&=q8BK)qoR9$G7_^fl5%EJs4}I61Dv`Q;DpQr&Zn_i3DvjBM3#6 z6*QR1O_zMHLWdj6=q%1wwPKx=fkzT4_~y1q4x)6&2DN-3FN|0-$%Ab)52Q&O=wp<U zlOZ#VfT$WmTx@ksPVU&26Zy7lI<DOpML2BqRFR^i2TAJ4qqj#UHZ~kGVwBuO=|cRZ z6MFVT#n55wjKW}JB$5`zm9U~*5<$1gtj3mkn#>eZgNMnpGMO(+I-rwT{pE+0t#oqS zOK1QS8`P!(-+WKzZ4o3R2l~eNP|SWZL%u9dW^Mz5p$I#!xld*>=gv5pxl<8`o94+( zn<Ldl?9)+9<~=@*$|v(R5o<P?RV8(Vfh3hX|DDZb-tABr$1$kljJP(!VWX$JgIP^x znY{zRk2uAJb$E8uHX#z9uUZ3+Xt0Jnx{>x>S_%8q^)UA9y4bJ1s`ubZ@Ad^Y5E&$& z4e#w_izMDC28E?Iu4H-;2KaAcE+2?Z?$IVy?{$D1r%)#Zx}qSg>a6=(xJ>s{bhCqi z$LK?gea=pox{l;D9Wn-|X#$r&m@v@@`ONS!KhD*gW4-1~ON~UpKgQ)*ICA!tnGRDz ze3$z#7)}~)k*zU&V-CaIVyDq&$7DKmV>(FWJP=WMf%yTlDv{tfHA1Z>!RNKKJ28Vr zYG)ke1DO0fvg1`+H#4eHev2TKKqpwRi}b`UWME0!Byxq6$sjJ0fNMpXmEmDB@V{Yf zy$G4qgayZfG^@+D-D4Cd<CfUVThp15obozyXLOF-&np!C*l%s5TJj$T^u;z~EJ%3C zT~39~*Y4cta-)IElFiLkZo!FH`}|LGkJDc=t|=xTuW@>@J@Xo;GwhkSIK9!Hd5hEk zXV1LF>3x2C5wCH2w|(F(PEYtHN8*rqwr7)joc^8VlY5*FdB!hPQ0(8@C%MSU?_`pT zoc!h~xyR{FFC-T^h3lHc-SdyF3c1N?pJ$Ytoct~-xyk8oET3HD<X20{Jx+cxl-%RA z#X*;goWADui7#nL$xTkzdrrB@>4%<Eu5x;pH6~X%t+s^R<P<KblB=8!dMUZf>BpMl z;J{rqPT+9;5@v6BmZ_U&q{z{4g|M*MbDWPG8-dzy)A^{X#9`kYAuvVG-aHwL*m|%) z4%;aA5tTzTusHw=Figh^ZME!?3c+QZC3OSzO5|4I8T~EM6@@O{tX(2|j_V2-XQo$0 z@i>|=XnqE!upN*1<-7DE-9qsB3nSRKYJ_k-mj#$`?0pA}zdRj>$f&~a?^r5TN6cRm ziyOaJu>@T;OJwn?D2bP!7*HG0Uxv5254N3vNt{HPU>~H6_lpG_VPyrBvz|NCBB^}V zmr65|wO%SeQN~PN=?b+cItvpthFX2T#dObw)8f?fJJvk=ZpR4u-Tb14fNScjSe{Rz zym_g!RxFkH&YBLy@3t`WEse|C{=xWN<X9<}k_56PR7f?NAly$tY;J_^8cFCHt|T!q zr~9Dh5HEL64(F5=W4zp5)2T~)ciNwlc)6jj*~H8JFi)+`yd?WF4Fc+~;IBzp+M0|$ zo9hxC5JQ(BC+2w6#zrV$Jc<R7Psj;AMRhSPk&tL8s%FcCaCpF0_L$6>U3b+zx1as% zufF%Zvjj)-?wcQa@~(q7K6>a$%qY<xBHzZFet-G*f3fR#(8=~|BiY@b|L0r2c-=4V zdJNf?+Pj@s-SeHxe{%b$BvP)xlHGdo#UI@L#DhQk6|xOkwtYW&YX7EBK77|(d4yK8 zz3&4LT=1=L+_VJ@VTG6w1!U!6yzb7nssQE2CqDA<-5=YxZ7@Q7>sLN{>t~<3?}ls9 z3y1ig@7?vAPo4k7SC&VJKlhD^+b{k8HCJDTY!31FpSk(A8y>pw627Y&EEhky?dosb zw)rFfjCT(54L`f=ky}6iXafhK9OUc1b;$+$ZocC|oS0CMv8Tno=z?Wh4Q%=X<oiE& z+4Msne(c+S7D3*8!;>F>{|C<b>h}^PU;dddOuYZYdvCl5?K+lk`q)i-F1+fum%lKA z{L#xAzklY=uUtXIJIEK^aNyQo?!Wkf3lflbT>I#bZ{Bk5rhgMbzW&-D{_4SruRTEb z6onc4U!E@%pu@F-LI%?pKY7hFcm8_vN5~5fAn$Iz>xK{BzyHS{zZuOqqCb4->rZ{; ziO+s|Wd!<XKY8l#2X_2!#|Mzj5q;0pl|TK>-Ir{>CxQCf`+xndTQ7QG<5daNKmN_8 z2R{GFU*2+jg!<RF9=__L_kaA*gM`{>oE(0yFg4&8&t$NpOUssr?1rzV%m5d!qBn7k zx*$%Yx%o+67%M3FNltQ=ahHvREwl?$Xw3@t=2!ujO}Gy^4=yuYs2%UlJiFf52z8l( zf}GM_De&N02CT{H-rrVGJsnc0bt2Y!yUHKBuU(;vIng($ut6<ckW0j|7Mm&B1fZnT z{Sy<S$%E+UCRdBP;;Mc*TI^OfIt&F!x$>LUpwzueVz4~*T8zTNd2yWaF?{xZv1nY} zR#-J~;S6uN3rCf3#mviI{&E=F<ZoaA=a%G;p099x72j8!Vv;|)zrITTUd<b5<Zqbw z(8%BGUiZ4!pMLrq&N$-?Tt^dbqxmEJz3pwdlSVJ4dB>ms>p-ld2TSe+zAZ<vt4Xj2 z-IzyvRbllCMQrtA5oT;&zIZ0;e@m7xy1D*q?pCoqhuf?jikj9tGk7TK&zV_uztiT< z17nqnC4Yu;EP2@X@;RdCw`rI0DR(;of|i4|FtU#6M(BfSHQ7L*_JY>UW(OxT3HShD zp$&kt9gRkm0bxIvo~4_hPtSOG@tg>RsWksou%mj#Q&77i;{g2b<#g2B$?<hzy|4`k zdwVNv(%kbWf=$d@B1S6`Z1RBA+vXRW7sielHrYTkHVuQqQ;d%^VG~#sYyzvTuzB;0 z*t{qLVc5)O#^y*|^XZ5((h8aM%z3MR6hx+^Nkht8<`<cl#eNtv*}&|OSs+Ox)e_SD z_>9Qh7J)EizFCk7l9akYqT&n`NE25D1z|*J^Np?0N$Umf5W-9^(k4w9Z<t?nUK4v_ z=wt)4L#NO5S<vR^XGG_<5eP%)>jj-<GhIFiFXc)L*MB&)AS6u(eQ^-AosKv#%4hJx zVZ3m-;NYtI4E{F^y$<Ia9B0Ykd4n+Dbv<!KH}2PRFlYy#CZmE?l`<D&zwG5NHd%Z4 z3m28${9Pd7EOG6C1iF+9@3-;2vsAKPP#R>h)U!h64d1Ypv)!E$4>lO5rGp_tMk<IH zqYzS?W^ghvGn`0*%)!9>zyp5wv;h(L-Q5OE;CCl)(ZKI^hX2R!HblJEGhXX)#-~rb zkScZj!V9U5zwkn;@)ruW8h_!1giy=kh19`cTtbhy`tWL?R}w0evFV<dv3VWF<~2Sx z4dVE@8=H?6#)c=I!$g^JY#Pt2vFV?ev3U!|MvicE-mHI4hvu_|p?T%3hi3irY1S;A zmywYR(s*D>SlYVhbZEX*7@DD356!yg)6mrCWoYi<IlGg5Xx2WbL$kjyH1tz!W@vGN zN!?NCnEgCjYlh}!Xyh(Qp5~KTGxnSg%>#v@87vG<D>-27`7|`c^D;C);H;604ijI+ z=SW0*q%br*Bs9BOW5>Xs9}?P%c^R6Ya%gzeRA$ZU=XBOQQ5YI}qc#sst678NJ(OLa zA49XZZLlM=XgKFnk-;;zaN!>x>{MstUlQx$ugZ<ah$7#WEwb<69>iUa`xC9=Qaro5 zv3w8mivkvTOsW}+wk(KlGh+0VnuWi_E|``xZio(;&@RAXzbLv3o<gww5#f|Q12pyi zj_@jsQ6crK2$k&+HBO;yHuhrI4SdPD44iqWiFN2)B92Fh{ebK<M4Fum1~}CXC^9|> zxt%sjIY04R=CJd=2TWwg7PNEpcl@w~T|yV6D?s~Jb`6COq$)Sx1F{cNvGtR9_dQ`b z-k**=w7nl2EXBL1-wf~YPUl3{J>OQU9ZYdRRRkdhCJzu&P=iy53<AT!wvQu3`?%vh z?pq_?e;=W;!%Aw3W9{0(MA6Y8$~9o}%sY2Xv-#M%Z()0|pJ^{wX(ykfbz%DKyvCGp zl@6ci_|j>^aK0dx=a~8I%C;hgXV7A7W5P*xI}@ON;VnCn2u76MF#)Z3nUyLM(|Hj` zX_UsmkU)T#lhR5obU`fC6pVUi+t=1uYHqf#i(&-@+t(+Kfz@R`V}!sm@^32i4J|!; z^rG4RNx+bo;EzE=j$5{DnOahg=Rubi-lqF<)(y&;iDiB`lbfc$N&YuLf`+X$XYQD2 zggVUJp?alYtXH!!&&P-eM_&$j*kp+M!Jr`F+>E{tK|lE3VskNn2(Q8SB5!E^8sdwf z7KQ|sQ_kiJKn1_WwP<RM@8wGATx-eskEYi6UT&E7);hd3o(^_n1J6C!)d5Yd@x2AH z;QP=wzPE*_sWra0<%jQU8kQtn65z&c*+g2@h^F@BgG7(Ybx%H65Q(N1<%1oz)h4@S zROG$+QVeHzN{pC0Nd&@eK?Gc`bp;s8;OVD}0BdN^R%{}f@EOY3@Z6aVh3BrU9-h0i zrQx|J>krRDYpi5J*1c&`{|4GIMT7>OO=&v|lQ#R3HWwvrE>7C)Pug6PwD|%D{Fs() ziYk?09h<cI!lca?C2hVqX>)1P=1Y<`kMlNP+Okb?m|&aBk~UwKwE6O+&Eu0c>q(mf zNt?^P&B2y!if;qkJRxcG#H7uWk~U9H+8j#SJSA!KmEPtnTDDpDEU!x1e09?1sY#o! zN!lDv+B_|3^L1X~Yg@KC<XK*yw0U~c<{OeW&q&%_k+k{7q|G;bg>P!v=CEg3nY8(q zq|GyvHs6}GIg+$FnzZ>xUSZa<%@wqFNL-jNavF=zQCQHU;HRz@g*EuL$m31=4i0{& zRc>oby79%fq#s{uOFHu9wxlQf+LEq(r7h{p9Wud5dAGO4-oWSUnF@|E$N3LogpwY8 zcPORo#j`oB!(~Rq6mcciM49^x3X}xKxjXjM{5pAz#!uohFwRNz55n&)_j$Ax@sCdY zI@z${cJ>Y5TWC0cfB<oLq~UElPPHD+OT*tPG)y;|w8wvN!|Inh$x|`zURWLBe~^1{ znHl9CG}%HzxicrBh&!ZTW|keebTB6`Zft}SHiE1iZb1dPCFC=?Me`*Wechj4^p)Lz z-##a;p)kO5_$Ua&5bEu@?6xZL*!g~20SkhMBl%73&!K_N0YOkJMMEfIXi)E{Zg&mu zClT*Ok7PHfvVD}gCmNynzSIp0dsiY;ozlywTRM4ESL5C5Jxhi`4X0?RTYP40h-G&% zT3M|0bZT-l9tf#TF8Iqau%yJ->D}rMYvl({lqie;qV{?Pe-zJoBSUAW#_Q|tUAVB% z{g+x(@I&4~JJH3{zUg_RH95-M*a#&IB`ksSKZ5!-z=(3bwb;1p6W{H{jvUI5szhO- zZ@h$F#ePau8}uA7QFM*SZZ&+N!bJ2RYwPW}M5P18+j+GVbO^YrQ7%uBO+G%?I}rN< zdAU85HFM0OpwS&PocZMz+;@pwQ~>mt@hU1rR5=ofY;)|WEh`#x#v=CO78UEaTqBQD z_yP^kfHwA`C3HcgRl4jz9tKAjG+B!+RyDQ57nZmSA}n85g6Dx;BAqiDt>M`L!quU6 z=hPT3xdhH7$cBe><;Ql30<WqN#3m3#sEmwb<-J6GyC|tB+p7WtxLE=Cv6PLV&c<1C z*A;ihb!`HXJfs!*WCJlgbC1Kmn#!mA1i!4%U)|n~5Y}Pq3n0P*i|)Wdz~cA33=q@( z7cjPgW^_b^q7b5l9jh`(3bmCYZP1%VocRd=JLt;C+~^eGyDGwGw4vu&SBO?iCWBA` z21!pz5L7>Kk{p!K^JvbMTO6)a<j9(bF60)JYa=9uNF+~m%t{jg2BLv(;{G0R>w-7h zD7nYwK#paQl13YTk4v0E8yg{~odVS$MvTikS{cOx)(cq(9&Y)2UnXKf<1w+I7TCek zI8cc(1BOvy4lPr$hOg;_ApvQ?ev=<~;fvHj0NnY}ZhT>M2N5DU@_OUTHt-!gI=)>m zV@ZyRY_))3+j$9#My?@bh}`8msys#E+jjpJXF#i{!&_o^O#P~Y-%#TBYijRQf9F1W za@h)6JBSG(dT;*9<k;4%>lOqhJP}Y9E?+q}!eX?qvLNnp*}*Q`)hdYVWG@an0sHkV z2lNF<rc5JelTGQJA^-+C($x8}^}=OPcP#<E&lJ+BIuic_)t_0x9}jQhk89^le;wfu z>#JR35NFABTQSbgBe_{Zjy*bE4M#nx!o(~973wV5nm-J;u@S1US)fdRt6s=R?k09` zRI*j4k|e={dH&D#B-tUD95!T!z`QrqYe>E8xWQW1KMuBEW!M|2*|V*>3a<pwQw>9} zHN;5JyAj@mm!g7U-S|{NZd4W4l&VIV!ubn2xK-)d)`cGlE>)#x8*YE3XB)1Sre_=P zXRC=f7Qhm3E=j|iivg_Y%~j(syt!b85pOQ2;>DW_3qRHg@#2z+<wV7aC3r~4*6kda zSO7OiLFY!a?pM~JE1{ruF9XU!Wyjd6vh-m_D7Q++3CsdfNZE1l1a_RbM8{#YV8@9D zbew2F$FVD7$9t$7(#q<%TLd({EBgwM*dcC=ByMK{UTTuKg9!xOlEj@%07H`aDic7H zB<^CukCxue1Q3KT;5(!dY!>DO<bKxVK;FZI1Nk*39LTRT;XvNYgai2vCLG9bGT}hp z$3zp5{c{BJe%9nbev1hQ@&P6s$OoBlARl7Ff&4ZT4&-;3a3H_SL=%up=LqBh*5p7w z%!C8^JtiE;?=#^*KEi|p`2!{#$VZuQARl9*3CQ{!fjr2X9LOIs;XwX~2?z4WOgNB_ zGvPq~gb4@o2__uKpEA(|<j@>}Jj9wD$e%IcK>nNw2l7cK9LT4ba3Fudgai3YCLG9L zG0_AhZjc@p0r3rB19k#VX4LQ;p+C$f9Qt1~;n4qv35Wi-OgQvUGvUzxjtPhU_e?nS z&oI#h{fapP*`OKCfjpZD2XZ454&($A4&)>g4&)RQ4&){#9LUW~5J(Zi#CT`SFi2s$ zveMUBG0TL6?0r|Ihs*Nu`SwH}Zw59!r;U9ck3C`K%=X@#1feSk_&3E0%)q9Hxm{%A zs*~R^-W<!Em)_^?s}af+SEJ9xLeu#Wm7nf`Jkvj`^HY#!`c;}qLJLRvWOsW}J~^0^ zPvqF^?hcnvD4R4oOg7omQP2W};wGD@<$X_wBN)EjeD2nbr9AiRUQ?dwOp0|%p6ggL z{dvgz!dZ4$eZwWs3iS`)-=Y5Ddpp#Qx36Php<Hl`HGBcx1^8Kf;HfWIKrsb-rU{B4 z^*(OVYxPCkKDO5vQv?ziwjp+U2Lhx*DB{J{OU40$SW>p)LwCK0uubE!2bRhO<7juG zG_;WKcLE;SF)x%IGwpw17+GbYZ<Hsd@U0(@Jm4w8op1<pC)%X5{xpB#aKDwm*mrJ& z^f1r|Ux`KVnOI!!9O%a_-AhoD$m$5C26y&>>L_o3BrOZ-jBNE8q$yAXT_jDh%kUX> zi@k);aI>g;SsWk`T?yX<4$=Gb8L(k1Ji5E1WZv~rWLyN<1z3bsR$r8L;_4L|OuIKp zvcr-vmGNu4C1FKlvSvvb*pSqMFv#&!n|&JIG%4w-rH9nKChxlR-6RFNK1LD6p!a3{ z?}WU@Jy&P%C=a5^ZUpcD5wTJ?$$TFKnA2$EkG9~S|FmUlO1sdP{pXMc7)PhrJ@iXD z*q8l7_&Q!+oOMm(pY>bt&snHpT(hr>S(<^`Um;Z7Mz;6LMaa-^c4mLK1^@g%Tc+^u zU*X@LaXg$gg?rIKeO(h%BryzZqk~umdF`q%6!>v_dSl~FRZERCTQ&PXw&0(4qn2v+ zzw_UEZ36$aPfUTt@$Wb)z}XT~b`J`Mnt?UcTn8b7pp<}_hBUpM1c<AM@qah6cY*Xf zF%vp4Db$Ha6h+%RECwE+)K1b0UF{uh$4^_YDnCEd2gc>f^x8<Z<UcU17gX>^uL4Fy za=m5bSqDn?RFCI)7B}^y2jZSe0#YE%s7S}ZhNUCZm2p@08zy{l`z;f`xIN8;FK)kM z!WXySGvSNdGfep6*1)2h`Qmmq6F7Gwjc#NDA#f!z!30jANMe$SK1)n7vB(mem{@Fy z%}jVO8mjC+;bC7GKj&?hi}7>D?3wX%zT|OTRw5DN)i8pN#dz73F@lbV;$Z}xhrP&N z_H3)SA`x^vf{aAax!gZV1f3UJs}ezH+!7K&=QK-51fBoa5)we?Z!953uN_{U1kf3> zPZB?;ZV8E>bC<&>0d#hGDT$!-7nV^X=p17S37`}DApvwA^g1Mfj*p(i&-tiVDDiXd z@Qe~b=NV5)1Rd|O1kmvTkoY-&Z!Pl#b#{SQC}EpUu}=^1)5rYNgG@Qn9%ABNZ|d7j zon)oH!^8vr>AOsMFAp&BegE`uTIzdD{ION>eI`EV4L`!v-`b}iF!88Y@hDTH_USPu zc6%wF|Bn6oAye=5Z$Dz{%U;Qknfke>9%t&!R^?Bac(o;-U?PNM`YBUB+vGxu(C44= zlSB1$CLA|UGI6Ta_Y@QFu*5Hz@TgM1Wa9G<?XQ@UA(w4<vj!4DjUb<jxd}5Be78iQ zIN1oi$4pKPW|Za?g%w|b2}NB*h>%2Ggc+tnpwLaRQd32Ul#l?RS};|DsrAU8Szlf` zwmH^!kE%9`;feAwCkSy}mKg)OM4{rSiE6lWV@oXp6!8Fg%K$}NWARxBC_2b7N(|YD zWKSVLV+kk`R?smi;}~NBM_E|`UAyKG6X#HFRT3lcQV$yO-Urj2N?$@6drD&Bgt}%E z6X#otvChuTYFM@=S84J-T~=k)h<2!|6PCn2{4H9%7?(IpJcMHz5#hxzUb=MYOI~{1 zGF|`{*6l*byQgy45huR;J*Eb1aD}Z!C}CR*mOwu22-aY0yGU$^6!-?X{PV+UmA_z2 zEWU#mA7*8yGC-u)=|-sZQyS4$!eMKzBaEmoQ50#JlzTN1AG{xW(o4Q_+jl!cj28It zWqUrq54u(Q*)amwalLZoI_?gsWuLqBdmq(%t0<$xk1yNv&uQM5XkPfM*Rn6&{Qe*H zNxf_lK785Xrh4JOSJsP53cWDLKH`SGXdi(*6xhq<F}q<>Lnt#ht(epiYB08RTMLZ3 zrON!o*BQ-%<q+QzwG_LO*w7W$5cHip1}dYKdSywavb-|T)~DB8Du3~v%xbcnA>E0? zTA@}&yfOoZnGeOf$Dv)#p&bC4%=wVeLl2Yd>s5ums<oE6S6E-`0)h0k3H)nXg0FF# z%UgVJp~aZnTZBE(Nw=b#U)I&FdtW~GbL&eCh=>@q3hH9u=13x5&Pz0by}c#aOL|97 z2EuepuF&I#1)=cQ$@?&&1VBpvt6)PXWN0DVz4Obdc3q$2Xum&p{BTW1nW2~kVo{9e zM&|mM-KY@RNqRCIIs+@JB~awZK0}eiy)h_mRe~SK6=~BoE5wiBstG?IY>6K#{C(Av zxep3E4TuqqKSEfu%@OfTcn#i~0#Naor@Idodgn|j(w!n%0moa`zRoV`z<iYi`fTz8 zA_K`gs4rl*p_@ZoF`7DDq~i~_?6BS80;Csb&W(j0#N1BDrCh=z7?pF06$HC!JpQRA zc$9j4JV=3o7l<*_ScRa78!yv(SS(kk0lD8(aXfl|X}m%~YeGpJWJyNS-W_pa)^t(( zHL)wPtR&S~n}O?oEY@MFLx@3CI6nE}Tx*|*IiJ*tR0H2vG2}PJD9u=$ySO-4Dl>Vc z9nLMcB8;psVFW$S&CZRDP{3xVdSZ=$R*Eai<P5oeMM<eW(6rBBqZKC|TTvu-a1*U; zvWAK)3jN^1c%TgVh>%HKJ}ior4h)1q$o_$5B#M>N%;<`u&?pXKml5|>)4QsmG&|fs zU50!21}r-HZES=BO}JlLI!`BO$nEoVsKpAm$;!4uCl+X85^6xKLoK}n=Zu%eWn4o> zEB)qUCNwz{UP6HaUdm{)b#AB0r7iKIW&bd|e3U0{=2Hw8LHxBc)7#oa6mOEm7cCM| zJO(Diff^CQsS`K9osx@xCUc{(9J%2+5Lm;uVyv)G#KwU|7?j1uGD;b8S&qCc;}}zo zd>tyyqmC$qwi3)XTjApHsP<nfDN@9Aq0J<_lZ3D-1AD2;W>OtPDQF+*Qa5+$?3|Xc zbFY-(OYZWr^eO_vRertQMnua2cPg^zh;VjjX5s9-*mo1o^d25CUbB2bfTzoxZ+Uo0 zIu9o~NW+6TlA7RPh2Q|v=Q`Zd#WPXdvFOb=nAFn{UQw~ijaxr7qujW)0Gi&pXrO_K z!_LyiP6~+pSvP>V$9_ciL^LeNohUD(;k+pJo>;$;EB0DMoX&n>`b~?>r7ed@ue{N1 z3$TGwvXT*lvep>LB9dSY<9le&v9yk!03c;k#!;llDdbWJbOgB}vaAqUQ3|`f0K6U{ zmh8^nTg{UzT6RP?d@b6%ve0Id-P=s(Np~_&7^lZ+MgmDT?P6rN0;B;^O+sr?O24`# z?0WI>be=0+Q-InthM^|qa4BmV?Q2^$#GRsxpFY}=D8(h0Bh0IxFv80*!gAGQAPJ#Z z;F$P;pi?)z@CSm<P;%jzOrSwj5bp26Zh*4MTKs@uWIG_ECH7Gg&sYx2!0ej-3(~8{ z)F-qm&5!9Z43=3-8=$_0e6>_w>Ez<jBEyJzFdO8oMshI?aus7Dp8;3D0byd4a4YIq zK-pM9iel8W`#NQwg3)1M)Xw|}^2p<5%8^S1_OyRy&iSE8SH?MYTcVUuP&nKWvm3WT zb~YxH)IeOSm=>Vw$>d>B7~uwbZJctKFoBLdX>M#u%c}5I&gEO%Q-L1Y$Fvx$AWjo& zf-jK+Rd`n^I&P6Z68n9G?afDH&cgQQ&E>}<pa99f_*p+e1UzK=oWz~4^!`PYbPmb9 z4TmeTt+#%OpjQT}{@AU&no1Q_VJJKD4hhxjd5uRGp~}u#Ia*Xlj{F}$ItiP!w)DVs zIE(RuB%18Y8J(rY$)c?}X^kSx=mA%oW_u4VS7ANuJ2y5$5!0!wps_Z$<C}>2jBx9{ z35&`vcBINR;Cx*AyFf^yHx13FG@|HL&Qk%f0kTc8#SgSEr&>_2m0m+rGQ2ujWC!}@ z?$~QFj+E+n+n#)*q{s;ac8K!_0t$7#a;7>=@7*&?A6p_2HocD%wr`AHcsKx3#t0t* zG(V_KQSPwo_XycAUh}q6gKPyIRv3+Og<V`4PGytoR^tjk7mxPO4B+_%096Vx00kAR zm4Qb%2?ZdCCm<+)$Wa=y?bWhkr9-hbHe!R1B|mVj5+&NjR-h<?t7;ds3zJR;3%E<x zN?Fg~VB&f~AHY>6*)lLIHM+uY*sbi)%=oz^f^GvyeQT&*25?9z2GoL2ehgzIp>Cla z#(lMe=scUWimh|7hMO;I6rF`Gpu@Ht7V8H|u9D*?CK=dq_0_pacSQu=@J^j6<O8%X z3x*72L1wwCCH7T?dDPfnZP@3DD{4C<_P5?Jqws!B?0{jPdxlc%BU({{{oy?J>uB0S z^b`9cUzT8BR79oNPwEHuSA@eql&ef#C$?m_`-xMCC&Y7O@8#jJBrU<&_Q&??3IQfm zCd}-D$r{=AeKQneokC%@QcAVnhSaHvnJe@H^9JGbwn9~EZd;fv-L;l0Db~;9spPaj z_y^HN2tGp4f^>CvclY#&u-9VYyd<}9a;6}5x|?J7KGt7YI71OzIC<L0xHc(s4AVp{ ziui>?5rriB5>@#NHzHcn=s|=Hg19qaD=2<LI0zsvLtXrZw~!o=hNBSNx5P&XPKn|k z#A!&+AcXxDr=ULm!XIc6f8h#5-!$I0nXNNN2YLdX@2(AW1qvQN^aToE=nE8XvZ60g zaNeLVQ1GasGtgVCX7L63YfFeLko%p8E6~;6sJH?J4;}FZ3SJ%J4CH<?;tcc>t5BSQ zUSSDw2D;l_M#LG&+Y)D>C;gLn11+~w;tUi%i8IizJfnC61-}+?2Xeoz{hYt<RVB_q zepi<`1KsCUh%-=dnG$E9H(AT#3-oqNh%eBwmJnZ{TeOPoz#(4p0r^KnqipLXSUV&| zsb0B^9`aN&lznHxF=V0<Nb<Y!_!<>bwp39fYadBh_NiFJRv2UNBT(oxXWiT?D_26Q zb5<ahfi8*O56*|N*pZ@F3l{$<@SST76om#gEs^gR)pq9>z>2vOtsNm#8D53YBS8j? zMaV8{37LA{KxRk=&j*ql5r2ld$DK%mfcu^Z`8Qkn-Du>0#;R9Oa?pqF(qel$%@Zuw z<vBusd2FYJ*A3V8mR>hk$Ktd0x{-x1@w$<P&lXEuNHN$}axGY^)t5I|6bk6d@T+6z zU4>r0Ps7^sM%|n7%%7;$xt!QZ`D2cGLG%8sE*E^@ZVz1Qf!jQ=F0@#6w&hkGhTk4N z99Nx^?OG^egYjw<5t5c&tj<5obCEN6UG^GI!h$+%q7mw`dCz*7@dV5i{$jFW8b>Oc zvJ%DF$^OCrIInTrRA|C8qUwIKBtk4(Cq4dNkoo8r|4IssoVn|mze)64-7I*oBiU=e zSDWCCTcrgy)Q=jVG@Ge|=d|qLDb~Rja2Iw8bl@H;z#TRWM+-Of!Rm*r?n#1&=IMWC zYVDV?$gzO)<5(O}R&x^iB(?HpK<?6cXz4@(tynHH+6!YHMlvUc+|FoKXD)m;$3T_b zio|n*z@a-5U#74^h5K7nJz%UOu+EDkEOt*4ZA@VwDYT`bB}PoM8d9lZ)i&<z^ERIR z7c<Jr%3E!_b1YCIb}FvG(6uUNma-J-DL0PLoaX6oZPUSis7aG<QNe^70iUdvT<1eF z&bmtr9i@7vMMp*V8ampa-$HQ%D|(ow?#L9JOLqYFX_dDkd=Q9-3zS8$!`%xqrxCZa zI?7!e6()+gqW$8^*gc~uhPU;3uD)iv)f1XR#|>?EK3Ay&1<2_HkLDY&UD8c7c(t`v zq`{dWyruwQ%ngAD45!2!E-d?{B0v*V*S3U8&0M<Lb7n++Ye11%AjuUamU|t?p6ea& zJPukD9O{s>h_pKd^A|XY?o33@BKRUcUA`m@VsDK1kpQoY{kL=b8n|Ul88{|>fW~~) z2n~JJ0Et0^qa_wug=WK`XDV%9$2qqDfkOKhWl%e<Gku_zq4Cin)Q$kNltq`;aoH4) zG08EbH%w9HZs*}2hW)UBGOs{(Ds-5i=)=LTcY&5^onG8K`g;68+hTS~ssB}Yg?%Ak zp|+&{hbpBFP=ii&iPjMscqLx<_Kv<5KM+;<vB+#c61yGca%QEimo&#&!89#C{N-sl z{tgLuf)+1eS4UK5iW}HCONw0jqb+HXBK59pC*7zxJC#Nbm&j!xuwvVBG(R4@HKpek zHIT|oWj<LbBR8RDAO7TPVlNS}F-N$cj>YB{Ep<<<pb#zfqwNqpTSrTUxVW%_KM$_N zup2ETz^ii-AU6~^-RgP=^a^6juIyy)A8g||gy%+MyA<TN;dE4F%dgDBu*0G%Ie>a{ zd%BH{(7urw+ebc761cTLj)>DS_4qPe`kma*vXUr;vjn1Zc1@O|gByupDmJ=D9oRH1 z35e2#5jG{GOkJmRTnI45!U|U*H}6uXW98N(YULr+a?&($wsS0JaXnxF6pTS}*O4;D z^I}7nD=E{*thAW8hg}TI&RH~L_znX^QX`3=R14bBA%+9gkJb5{tTx0);~3ZT0c<uJ zS)k1O5}-<M+7y^R)CMvxJ8=it+J$<10UDSKH1&`X*<|;)ViLaWc)%M_nM#e_<||yq z*op6=u$;s&hw&{M=2DbSG_LpA@JQaX@pA;#z3XZtjzsZ!`a?mDroUhXj2;`xC((2A zOqWB2G-w5E27hNu@F&PH%E0%I0ONh62KsI34zo2~-001iV;s5js5)zAUw~3trV&=M z8b(5N=4C#Mj4V<TEOK)r)NUJ0ot%&pFn<^<5_jr~O7aKW)XEx=;yi0htm39cVz|?5 z$h8U;Wxy9~_ZMU(e9m@W?WbOlA=C5uDdt7{VIvY5$~m#Y>wBa@ni7J%B(f8jq%|1C z9W+>|>fBh>+*XbAVg-d&<10lEQK4V)&uznE(R#>t=Z0KZlnyz@k$l)U5=0|zb8BLC zlZ{aR#uo~L*p$pqB1I4c@-7>ZtG<d*nZnjNBDhdmp5t67ACXP5K^u|018%dkHnqB8 zT&Q*RfobJzd;iQA!ecfuI2jKKs}Z1ch9&qDIo!$;Tn`S8E3$qb+-Z-iAL8Wt8_~)^ z8nY`px%0PmYbdwWZfb;fY+>s3=zc?nRT3mdGFAN|xgx=N80VDuL%omb)?SHUP>TFs zx#+T0NW#fQpxE`1^|E!2aA?D^rSoGC9_dY}2w(>)67{^dB2DhSIGDfKs&k8yR#m6> znOayUQ#POQ$;B91&K5ZUPF-B<X|pFcw8ANyhnBjJ4ri1=S8muQ8ljFR328`YnFMJd zZIK3+ikL*Lm61ihvdx9cv?waW(fW#1#?gxeMNdvyOpB16Tc}KnqOwJ(4ArnAAO1Pf z)&;SNpD1mK2-0%wULA%`_*z>MzEtfNO&&S-bsk|&^f8aWnAZap{Mqm$^qPbK2+>Pb zA={cB_U7n;K76)v0$YXif0K<+z|Q~aVXd_qK7wj<i&?)~-yDZG*is7SvDt?8gN%Z) zJS|eaC;{<0Lm&}YOR$HN14GPVJ^*7ZwhG_Zpd@2yTFCnR5sZr?Y(|)U&QFr1Kq@l^ z0tU_`l%s)%Bk7ilx_%wAuS1#?r508SET1g9PQFH#a9IT6$4VeHf|iLJ!0zv^^ytzc z#%wTG)fKTSTX}WU38;;`93lA5m9YX_c}4cg9yl*;b|Ba6)v=T{tMbmQo4qDhV9o0G zbmD1WIN95JuGwp2skzA++hYX<IpaB)ShpSR#0mwThZ8Hn_FPV^0L0^e@WcvL&2?gh z3XW=Gg;H~!SfPTWnpmOKTqjnjpfItndJ$Hv*@f1MYu1sTu%^9D*EC2q@z3pyv@#a{ zJV5u0a6OKn;^7II7K(&@x!Fmh%jiresX_sp0Vnika3{eg<6RV&ZmnQhl4~WQf5e&h zZq)_zaiJ=O_-Jvv_;@UolqkJIl(Bj@3ZMOs1U`!{i4TZ-xoL88Qe7qaqTQ}l;4`kf z-sClP`9r6b2rvBp6_)V(SNM!xD-d@73St%6i-k!WeMuYAX%<~%ZAhr4rO<*5EZ|UK z0q>lmCbr%+g`T(9yQiQEL-3@jfe!hO`j-xLLVMhW|GV*j5B~4P{|mErg!rO`3CYHj zh||Oyy|ZW9CbBA`Nu6Fr95Te6vgfI+@mpj;XPUC$^~7fo;R&Ha(~@|7E?&1cy+Z(} zE-Jvg5U&bh#~CxMy}l3wQ$^UOcK8W%6nm)7@2Yol$<59hmzW8(?eLbPzHFt8{$7qg z?MMso%HRVg5jhrrizfzq7{(NOZBH)*&<s!J>BS6e+OK`?O+f_mw4004x7Nr0rguQ4 zbg?6Si$*2B*CNDW>zx8fiwxp30Wj`e(k3y~O~@)i^Wr?3Q8QYS?g3$_h*;;H>uK{- z97y6Fn24hYqykIhKmgQ`BozmWadTlZQ=k?f87SWLo>pvl>1hQ8@Si||Th6nZLQx~7 z5(>;@-p;hFca-6JVb)s6A^@>lerq5%rrWc|wms4-L4YV}Nh$#$`aQs>c+xO!{hL7i zQe3G!)_@5IQpEVnD@+T?6?&6a(v9G8{@HMleg;SAn#BB)3Y_W`%9<DBkV``f7TQL5 zGjE#{Lkfp^l;#CD^2$lcg4Ogpn(vuJbwHZ50J^g-gAL`Iovbe+XS3dR``D%Ru|50l zQ${;u<Ir6Wg!iD>q<#t1ns2K^zw1m)K5|OeJ0~&HU~ZGb+|W;OxO&GVCV_K<6+$}A z%%D@}VV85qE}MsRG2l&Q3xIHE9L$U9(S=sPNzs($rTLBS^ZC3W;x6!6<ZTamX-T7v zvm?z74y<d|kZ>&?_R;&zw2y<GWK&>uK&K2Dm=Y{#Hi*i^76`+|<R@8@OZr#x5O7fA zY$O|SSLYCeoXi9L2>FMam*59q7gO5`J-SCdl}7{?^S6j*CB_zHfTt)lAeI|$pW?xf z_lOQBizpu96e<S^@Cbj>u8<qfpt7RjJ%Yr^QiVrEl0$S$X%Swh45h6J_%%u}N@Q8G zveIX7#eq~azzY)VU)i~CZ06E1sK~BrhPW~OXd{RaX6RG1FHStj=97D(mAO69#|vd7 zb_-8Qv@G+<LK)eRTixO=P-y4Vg)*`^uX~WCGT3e^l#y+DothRkixm5FbD@l0Q8iPU z&lSq(CRTA(-k;AG%BZj4O#Qi~P)4*&`C(N}LLAmF6pF>z6Wjj>6^`#bTH!bpn3ZsR zxD6~6GlX*R)8-q)=Z4*B%je1J|7-#>LRZhPg!~?na|@zduP-DJhps}Fg6Nht-jCO~ zoIqFZC{KSlFR4v|!#7LFl!)80CNXMojge6){LzDCekA0uV6>8u+2^8!%x>l-WcINr zA+w9kV&D-ZWUQZI%fUXoNCP>Fu+&7LiBct`Y{h!XzJw43dCIX)37J4O?M$$c2MM{I z%X&dVX4^-QkckvrP>~;GLJ?%j00qP=Leac=phyGZ0*igU1F{1UKZArUqXNn>37Nn6 zTZ{{ivc{DVmS+%#`PuhMD%e%MjL~Q!gkjf7;ge;2Fif&-5}o-ybTd~RDA&&g$q;*z zC<ALQ-5g0*f~36IKa~r=5NNUC^8WWz_+@*zkF+TK_Come&*il(o)lpoG+?!q;$)J9 z#8zA)3lg$+wX|+6QL+!2)GvWrn-K_MSHGi=ApPWHiG+*}{x1ocN`U_*A?HP@qJ$je zh@+5@^JQiuA?M4?MncY)nT>>;FQXE2?~D?1zRYYS<b0XgNXYpzvyqVVWo9WM=Zi%N z`5p#d?U}cL0o9S&{Rai}J1Q0RMdWcv{K06>KOSMxKVJFBD6KI%l*NV`Tpo_Gy!zDF zyk_{c(_Z_!){5r+Ia&JjW<~Q*R-IO9Slm>p8<p+tu!_I%VTES2OZ=A5NIRX)uo<iO zoC$5Hie{9(;&qU(#ipOCgu!mJqke_D$<y$*R`1>*N|_3@0^NG?6a-R4%*R~}3)(U) z-J%xw5(^BYKzq*ae{Li6#l-w!C?lW=rhZx;YLoIqCAL0Qpwprzh$;-|)~cxaHNB&^ zv4vALiYw08bO^xcR4wgPzV-JMT1QdF1gJoTiw@Iv43&xKXX(cLDnZ0qxPZ&lC%3Xy zo}D2Qf!&%EVt4{*IgsRS7M*geUDUa+VEKCWY^p%0dk$X*P|Yd&vHuzg9|N_p<jT5t z{MTJ*PZvZgWT_=A(Rs-*Kox?EHZ(`+l0Ik^EXc32)W-L~9$??mU~UzrwgkgX6%~{@ zGOASg;s8#z`{_?Xhvkw?otjT^5<jUo!zo+A9(~47LI*pucJba|`b4BD>$>hT>>iTE zA5@_I2~ubJvEM#+rt$*GLj)kAq1caZT<k%Gn`q#x8=#<4eLEG!G`7&6zB6oh&|9N3 z`VI`L4i{n(ytzi{r%rV<_5AR=LSxcZx}#HXk3$O^crofg=P0#eFOxZ1;sn&5VHbxH zrQBTaBDr?bfB<JcAWLebCp&|BfuzQ>@$o@I^v585Dg~+NlNlU!eXxNT)=x(UYWE1D zLC05A;&l=67;H%Bir}vNh&v8sQ{qIGV&4RP*_(JBB_g5k2V{%r`AUe>^Gz{g2IyuS zv??>4VO}+ASN9By+^6GQp7lb1Q=yD3^fRipZZ4FOg<eAd!-b<vt@XJ=8C~f8oB+$X z=Z?E~e!fsf7W$|px+P|~Se=k{Rd=88GC;l%%NUYmRi9D!_r*dPS=F<o9bQWV{al1? zU!jbw>b%Ov^?2@j7!I4=5z7=VOPxd9_j_||q_|XtxbN?I@{|Zl=BiJ4qh$NuGo0(p z#zv@XHgVs-+y(KYeGcLW1c*8X2)pl6#D^aKEeJ<oU%<F7Ev(P?=Q_*~b))<Ihy$Yb zWs4^eHb=sw@hV=s(|L?qv-P|X=cRawQ$M1(Uaz6ns3w0q9MJKVE^;zE;LF4!>*#XD zmlAFbFTpBV6BjO#HgMH3mP9TZ9pZe&yfRf#mO0npJDsmWz?Voq7c@d=>~31RfS*=* zI~=3Q_<|o7`d7kHQF%VZ%SExq;B7)6R%ZvXNLSHkNky6nZnB^Wf!03JB^Tw~f6Lst z*4o!0{i^<3!JTWpeO;kn3)ci+8i6~Mc%hW{E&JV<Qb(&3rS6EjZLzMoxuIMUD`;{< zx$%j#+59%^s#t1nZYWpB3Yy$dZr_tOdqS?a?~SGA=7w@@tf1hA@-trhKHD2>oA(Hq z$}g|rkGlb0o|N;PJO*LLT2JJMaub;+0Y@7#6ztag5pdl4?nR8a_3$9ihLTvfn?8JZ zo6gL=ZMqS_8B#HD?QDaE4*B-9QP%>qX#c<han{v{lWVhev<4!>dPo*sa&24x1jSRl zTFsAQ4jbbWK*jy0Z4gGOYp3r+uki&1Wi4)GtNRfa-a-O~li@No;Sjv>8!QHC<rrj0 z!d<vNt;H0@k^^?drFK1jaN-V}h-(TW9rE}S*h<qftV^mM$#WLZ`Rm8vFnL3)49;9X z!Z(a(Kdgy48}cyz3a_tgTI#k$<bOmbFV02+358ey=f;dSN=w|6v?<Ua@oWr(>ydZD z7>{!rV?3S{;D?+9AC+j%$Qdq-?VA&6KT(aGs|EXXf;IQqH5|$+#Yl^UzYc;lF6-l{ zLl9?~F|uwt>o4k+%QkRe6JsuCVHrG3l@flk1foblXzWu2?UD$ZoqpwcP7-|?cMlz9 zwFD(MBA3V7Ops93g=5l+t<Dv@qEJlboV1uyNCX^L&HK#TqB59jFVZqfd9lnjg)&if z@m$Fc2fP<{)aid{*&%dh-eiYR<MUB=2*CaP50@Q6U2~NkLIp=9JA_hml^sF_M<qLi zQgf9ZLInlcVLyYZ_0C}v&@4yD`HrCq{zQ_{Ex`i)<Hb)o2UYM)-5kK1q;S>KBe^-w zFrR6J`RzrqA`~&Y*T|sz+GKek>)kH#YjlN|=Wa?EyKwm=ShH^sC4n`Uo=zyUPcO7* zi~@^gvA<2<Z$Lz9tS`J<MXTJ4B_Hcfy~=e*+pE`Pjp4~<35?Elg))HvW6LHPyf<F9 z+-z!uj@fdf!6wEmjtDw9W(`6llFf{ZO#4k_g6Jd?5kw~ue)d7+8Rez2h-wZ{))7PE z86;AX^jpLz>BVd+g^H<Om1}FcSEEZ69HV5N_8{i4MM`=Q-?^7Vz=93DN*4v?YTXGj zvf|xBD7<>r<k~4E>L?-M9UOT$6-9vxqD=#stizUo*vuksQR>1fzOLStQ`}w@acIPW zttqrN968?ZE7#-5z{%#y#V-zxn<_9gyy_Ivl%73R$x2T;y7)De<e^-n!x|UU%OV)& z!2beb4nr^|sxzJxvJEP_La~MW$8e&EuVxUw_}O-A3SyeQD1jx}PpK(UuieljM}bly zm~GHW!u}w+SBQ75P<pseh+9P$Q$_4lgv5?t89Q!bXMgW#H+sv^rL6W@>6UG2WrEwt z<ppGu&LX5&7a)bmNJ!-jQ+a@LK~plD(Vx7OcWtcJq&!uBr81}L*CHtIi)Bn)Q}vfq z8>v&v$1?AaWzt)RET8E63ZWN15X+=uVUU5@4!X2Yqv^!9cEoZ871*7vkG5mCsfRV` z3y(i;I>S;>SO*T~)&U;G3gHfR;Wo+f9izBiyxndWAI|#!5>qBQa$C=_f{8|`(pUix zqQhAcW}NN}S4i7)Pc|H$7i2@>xi`a=)0PJY?eHw80$7Qh3h*2}H-Li+_%jn1GE|aQ z+LBhPNh`Ia6+i31%7u;dLC!aLD?9;Vt-$a>XHLZozt?w+9;|6NYy@j*$5=Z3>}JAO zo;^tT;op+T5OD6?|G+CEjc4jd7>VKhh}OBuCl|yD3i8QRYibgiL*uF#Epa$oC><Zq z5fcvy$G9q|lte-aC5%>B0{LKcJ6z+4N-Cm-N!_XGJ|0OwN@+XdIjiFGEETuNdT;)J z_TDr&)2m1ql=Mj@)#j3oZORMytFnz{Fs97rVrxoY+#BJTh>q~RcOu3S6EWk7nIHZ$ z5%uH#a7@^j&m~or?6Qr(3u-Xk0&i-dK+tp}z;uh%0t|><fB~^|x4N5dM6(GR=y{$e zGtYUqPf}F_J@>|Z4wv41-*fV8dGh4RlbPqICQ6&zu+`1Nv>fHxA8rLlHIB9iCMW!1 zVzTq<DXL7Z`XYi28~|aajMGtBzKV@OOF#y9JyCRFyi{$^WN=rm)!C5&Zi9_x)yUw_ zE`yjl@>>v7t77YRVX&?{`}@MtoN<IrTPB4W;t8Aj8wzj=yZ*xw`nmj_7e9*%X;+@& z)>GYkddVf1T<SmEfQnz+e~1}*#T8dvdF7SQ@vxCNZ$E_7_7}h8rPm)$gg)MM!TEah zqwkVmPGV0NoP&TR=S{b$Oh3_&VSkxx)2A8aRV?%{^%_^V)|GOqMIAah>-F*4c-k~* z%mvV?7Eh4}`yo4<_{ZcgwdD9_xLQ)APq4_B@KdIqd%CI8z8ikADzH|KP<wAq=o2#% zVrH&sX5ufS)U3B$7H@S1r%XDYZQ*R;Aa1dQP7q?K`3?+BKr{wKK0Si-M$DQ4%@fQL zFjO3uLdWE%<2>Sf5o=CO-yFFBCg*~<uC8|PbA}KAWbV@)-Mk%N0)XE}dq~>{GU8bu z5gdN{eFdm$+}(&eQxAH&1FSe%HGSqZ`Wq$ym!M%g*t=7<-=N4$GYDxNXIR0)*`1~H zDpIO7$t{n<n{wy+hT}So0yYAw;Ou~P>5LmF&kgVlRHF-O(j8QEL3ph?1TAH4@s%xH ziL;BfScD{8sCROWlFAG`Gd)XyRqH(=gzfYZ!fAS@Fd71UqcHk#Zr{(0bG|_BOWlvN zo7eWEQ`OoP{kv|;!mH4+*Q#St|7kSPNZM=Ug3?N~jh$=HxpN=Og?s11hyx=>?YACg zbP|t$(#RXtcI|{-?}v1or>nyU%z+O$=I}USwCm8Mk+3#>n149p(*6)+gRPHte3;ui zKui)Es8fe+&4B@#06f>LV}m{2vh-8bk^_6UWm@_50iONi#oEAuk?{}rp@YT%bFimL zc+f#k@h?VX7XNleCW00)aRAanL#ewW4XDSp!(vwk&7vDS#eGc%NE5N|AUUK|q=y7- zNf7VLW8wrc29Fqx?KJESg1IfHApvge@zoDgmOx%OD@>rVu>_iuv;8!-8D<yF3#Hm^ zi*nak3^@xv&l)NX3wx8@h&~_zvX#sH3wfVpO0t?qq$a%3uKT0xcUY|G4Rzi0e!6n^ z_#I@j@Y7xF^Ms#g!Yh!FZ?wDoSH6)cN#{tKr{Ebw1ko&xAbP>s5b~t~MAM_Wg|{0V zWe}PVt6Doa(Uu&74^EN(b(y_fI%h8q`eLw4@___Y2R(h@peJC<LH}fJ(CI6Uov_AY z3d@4V7lVR+(3lt}pc6w(7aP!Jyiq0&8c~2TqJ5l?Hty44l-M@-5PX{*4&Pb6&<OmR zFDwQthIgGkg5h4`FrzmXeYn>!OI*?8YsC;jAEB8%LhUp_8aAWH{BnxZ4y`MW&p;X< z2#FL9<LlC<<J0!Z%HfIU>gdFK4o*C8IW}Ldjg9N_)Xmc|HtYTD0gVlN3Ckb8#Mmrp zvaMCeCKj(48!lozSh9Kaj~oi#&5joun}6X8yP^<dv&yl-m@IHiFh=t}HY*$(=+Ii4 zCXl&x`V^fA62d&ecR!1a_n2g|Uo4IU__xoL{_;pHZaNZig2R!B=juqrdyYgrZ#fcw zT^k8Tpam;af6vB9tV+qMkzn6&3gnSk)JUvUM}i{&J)s8({3ScuV$ueWbKZBl^TR$= zxzC9$00~u}D}D)J1a1!)KLp>o1YM0;EDTb_{+OjuJt+=4$Kk}nG{e7^s<8aT!ZM0Q z#&*eh6<^QY;;Xn_u{hUnoFEjg!4W`pJ4IAQ@rb1s*E`ezP4F6^)HF)fQ7u*Vti_<8 z<u>@LcfOyna)qgiK&qSiP$MPV8V+<4b|m~%T2PaIev!-cev`U$e05;Uqf<}?B!fHz zzsjhl?J!fv!HLPRKGi(GspZkhZ(cQ;GIj4rn-VWbsyi&T1!Ad|bgY)iPIWgAcQl!E zo!!~e@r<B!wsh(riktS!DqVRp=Q_Jh`&33y+qBQ@K5M&_fg}76o9>tP_0iBQev04c zrYghu$!gthUZBM~w%X4)|NILO1_krnPnZyvxTaeCNo9jf&NjYbmMavbK;3f#G};cg zbId!Q4pHCO@A}5>fK7NXGcEZG?!dW-Wktrc4CX=m7A_mBobg~QSS}=1E#nXa0&M5- z6odHc@em&U?HC>h>}?y5EqmOL$3c4>#Us4iiD3kfuwus}T)%7gxt!>xruuFfJu`^C zLaaoPIRGY6d=0{{mYdkf<Y`eiPYDjj<;G@#Vr-@@7?vC7a(V9Fn=9nT9cBWwf@o{E z9UOF()fyH<jKO+8B@#YS(1N^kH9C@KZxXMI1HdC4vuZwwUgs$jU@ha<0p=MJtif-m z?;M8XcGwg5nL_|$FTDEX#DSd{7Y%WHC&Y^W&TxBJmdmt}Cc}fy6@CKkov^*}G1H@s znI3J-^k`$IM;kLe+L-Cl#*B{~vt3?OT2GTF?&|b)Heg&GUJ4KuZpEoss-bx-AXo+o zw1rIP?v@q%C~3`FQD9HDerfPB-@>xO&YX==<_Jc@G5a<j-#CgTtdtxgF?ZR4HV^V6 zd63hY56i=j0RK+w-+0DKEf~V7m7<k~yKOT)Muw@V3W>2)6)w>BF&F+=F5DLyMbg9c zZd_<WUqIY;;FnRoEu(TPWIMWv13>1f$_J-&o{~{du^fBO<;>?iUXJ-AfpMfQakZR3 z%Xz#US@dM2f1VTEx%2Wq+?Scncm8q|oVj<ra^t@7FSzh?`|!hgjsGl$D*c9b@Gdp8 z{DtO|k*RpB=bU$HPo48_R5&k*c6@5D8<U^z%<v{X3r~K!^G5_=*{e=?BLOIv1iXm= zIG%uq2w*A+cryXS&k*p(1cn{>69OX+%o0H03?+LD0mRl2@Kyqdt|8!I0*II);1L1{ zsv+P}0tl-i;4uOSl_B790&z>2BCEdck*8)q|B;WM+VA73mw)u$AFO`<qffpTTO$dy zy6^9R<G7PJ4mxlbfw;Qt6oD)J%iRR7bl@HW&vD>h0#`ZkS^{GZOcS`;f!7g;yVPD! z;CcS#J_6S`a6f_PJMaL3YaMuyzzZCB1A#*hY>+kl?+*Nez|SIL{VxecP5*_!r{mMF z2>ln&^=ks}iQD3SL+C&FC#XUTchu?P#KpjI2dnYc$aaj-KgG8RLca`Xl2D*LP9Sof zAn>7pP7-<viWY;N*(pf?XKTAL;N(bnQ<$oJ(H}3GrTIKfC%b7%{Eew3X+j>ss(B?U zRr2JA9uTxmeo3y^MU0lyoi%nu?2rNwL6OSfA;y*7BK-0m4(*8)3piM~0Ei|dYRT-7 z+P0y#Rdw&Da$Q}T;A}tLVI~;g7fu_Alx2&l8!%!OnL_6|&pzD|fQq2Lj;Gv>Yunuv zVe)uREMIB&gr&=$bAR8P+weo{Z;z9zt}GW1680B)6f>sRWlVmL8Vv<xe-ZZ<P#DpY z5d+{oVngFS!u2#(IA2?BEO@^LBu*O(ASTQOw7a+1)yR^1TF;JlT7%;C7mzy|n942P zc1Pzf*{Y-8kh|wc*3rAnjJTnr^YArw^cyoK?`VePE_F0*k8~Hs>CW`t!i1Q~09Kj0 z006RU2zo!83-qA(RCLRP0$t6Z_vgw=4A);i^t|X{mQ=XnjwOd|vi*`Dt(DBk?!VoV zi4QX)u?BWnB0yE!WsRn4TTt#NT96-lU0(os0jKiZNBG?ZXhDxt`CnC}0iDWQ7<=S^ z1w+1Q0+MF0n<kF9B8j(oOK`fnb;RaGbt_Yggny!&s^F3EZKOelX;SS^eU<nu1i#MN zMZ%xT1#aVRg3}%H&NMg$YsKc6%9%Nx%H`DV&iEdNrgZg)@3n_8YB0&^JzU*4kWb+< z5kFU^@lJ{xn#(@cO$py?`WfQvyy0`j3woAq&C0nZa;^_sE_uQwx4X&w{m<<?PtBUb zk@f8!@8A7(I>q!N(GYE${(^ij?ZXe`YZq^rU%X6M<qzMxe<myaBkS~)@N6UXzyaiR zhgaoN0_jJmJhA4NMw>%sAKhw^WDk<`>p6GOWH;gezTKlix0mbsba!GKV)7qgg8WAa z3$$62*<`0X|K^W;yP&M<EIx2Z{3>HTnX&%jJZ%#g1YP^ZGy`mx*PT-H_>nJ2m69_= zmG;tkAsa{;9*DSJ-R!TqT>@zS9?44PXr)4T<_i7V)(!fph}(<#!ZlD<3g@Dgh^^lF zc;SW<zSFkxy1qYvl7pVYl%A3sUhaEhWW^2T;1N(#qO^N*4YHWicxTXSJtZOyJ$?Wa zquqCIU!OYBd|+1^y#8{9IaYKkgwaUnBA8$P<h9r6`m_?8`HPRltl`r5sgU%*l+q@= zomfO}!~MAp&S%J5L##BpEH46y!*Gb4`={=BAftM~E*_$}Q91g0XZ9U_VR5d)gE?P8 zBUzOxXL2g<Y;qMD*OLBlT#Yg6b&up5J#)SPi_4}7p25-;<W#I9weX=_hvMB$O`|8? z@=;#g(sWPK09BT_w?{u;{?M8ptDnuMe4i7$)!Auv_1oXL_+8!)Sp-tOd}WIiJmGT{ zxV=+{A$##6pb>Ehu9PzM@`2BTHkEUJ!3Nuyd|h;^k-&VN1n$n*YTDsv`6ATrAKlL> z!}_Zf+@sXD`z!3?W(@_pcn6s0=EkGb6;`aiHOYcJ=myRJ80?WWAT8jsz(I5gn@aK@ z!yj<BHvV8^bjben;gU623E97<wPK?EBvwuvE{%K!oz<q$L^svvSH{y=6f95q&wh6z zKsf+9VfEvu(5QrxfMR_wIDnc$mBX^Qk4W5NH3Lo3fk|#(E|P9u{?MnmbqEx@>H2?v zrBg*3aeYc>^{wYsSoyJT%2Bu~n%hv{!lLt1zfq>L#mSVF)rAVTnMd)zv_7PKfIb9= zFVg;GPUp1m=|ZAYhpMK?d<7~{%zeUh*Exz<M#EJn;s_5`MJjaY7Pq<0L~C4_DoHze zLLTd;gpb*TWJS{I8B$bzeyUy*#o=xp$pbD<wG%@wDSb0D?1w7#)J!tgS>;lrja-WT zJ?bL*urVG@_6Q(>`~RW{Zz1U_`7!ivVR77W&tD*^$-6(>Vz+XBU*RXQkLI1ILl3?^ z8zuS36?QHCovFY41bK2_jVB-PrhHD9$Y)6@&lDSTvR6`09J}SSmA5uvVVPX+_N;aK z<+x$$K`ipI*cXdH6Sn|&?@nTu3zn9VPv?4-=5zHfn%CuY-c&Bfwkxxx9Ka2kUv@%7 zg;ZnDr8#+D&o*h!G~5YhyzYbjjmtEqCU!bpKza}HBb6Z*r!%52T%&BeQ!O2Xkm0&_ zeMaLM+^ui)ltLt7k!I^j$eyUPkmT_C#I?%*O|kMeZ@1<tbCqhVe}X~#4x`ZR-R?V- zA@LI?N!qwk(-Gz2Kh{n7e`6fjSP?ikMKz3><jYR?%@=tgkT9LUkN4u7ZzhLo+Naqt zZN4G3>SqaxlXiSej3s2F7!0hV9E9qsa?HB`I8Ho=V#r?D1kL^smnI_YmBkiOzqu@` z5LpxzFy252SpiEJJuSQg*xJ$ZJ@iug8wHH2Zz;}lV3;i=g|S{_a25e&=9`Eh1(f;b z$)Ybu9N|J}>C7jZ49<M4n{aI>pv*6adJJV=b}*>mwzlZtzBb+0#bbOb^o-k%FYT_M z8ojsDBzFGz(jKp8kwQ~Sw<5Poqv-FF<fH(!c?|%u0#0`VkW4pQ%oBj}yo+DBzXe5M z7YXu*mbP#jfHzM6lnV`SVb-<%nas|fa|4cdQv>`oz*L=Mu~XG)0Qa+g^KLundjY}Q zaS?^x$e0n{l@T`F-x-+~_n;}H$c6B8^qQmHg_?tYu^wn;uIbfr8(<95kBvE)CT$s= z#XQ)g(pPI2&&c3QxJNJfF}=0-UWCfWxxdvXx97FFn3FMI9U)f^Na!eQ1?rOmHc(1^ zdTHsEAX?Oh7Nyacn`xVPUoN}0oB5lqXdje+VV{1IvPt`PSzY12!tsR$+Fyunb!meX zJ-!gMkHZ)CVc+;6H%nREQxPVPbrS|(jEMnGebt1MjR_0=X!{)WZ<#8Lr5aVlGgT5Q z!-o^}n}mBT3jUmj^+YcFCq_M_dyeIzQ(#VuTN9&8ri=te+&BV6v&Bp-*St6rt>(Fu zyK*T$6DdH20tG9-W+EfQXd?|~en4jIu?_SI6xFvq&1Ms5Iv3~@$i(37PasgmZ-veu z$Tg|a`QOnWFRr{IU(a-H)SdtB7nzMz$nlQu6ES*Djuavwm=@e4`5f+%d=B?WKDXRG zlF#8D$!9u31|E7y#`Ex`{mAO9lyLQAu5k6_bGUl)d3T|daP{Q-y@gWf?HM@tc_}ae zhNTkJ1hA@tp+BHWn)UX}wEDJ#127(<N~?2d3g%2`7B3kY=(KtB$bbSJ;tyhDB0>$X z3E2fK$UuuNWY~j0$gmfGkbyTSAu{4V{6U6M{6U6uv9juC^`bA1*zJf+jl|*c7`Kby z5w;Q1fZ!395n!I|B3>vWV=FwuDniCqc!Y-8?-l_70|~5!N)7V}ng8M~j3acn2p(Y? z;p5tdVT5iL!CRO`=w=Z-;*ybb90LqFc(X`S|Cj{)YwU5FjwyEc>2L{>AtVTt(PNjk z7-UvFtVq$R@<cz@O(|VwFx{cs`vqUE1+$vS`AVCdnQC~7<BbW)OHf2!?h=2bEEar} zYF_m6bZn5oSJSr&Pi4B9NO!o9j>`HP!#$ZR<tADbNr|KEkDn`<du%G_^)=Y0a4nM5 zojGA?u21!Ao5#g^yeV{&R2Sdi0Zy|9Z~%N~^Z&q=4uVXi&ti0An26%X*v7C>lA)-4 zF?&<b$12oAgVOQ!ILgU=ajctCI`upgdpx#`JxK>k#&A$nP=w2>@WRQQ+56{0X6A2E z^Y&KkE4qWU^W&{+9taTx=Ft(;LC@(927Ek(073@_#;N4x{j{t~gx}Jtl;|Wk<IY?Y zA5y#77S`+>TZ%=uSd(0Nz#xe@eKG7Md+1C;8U5WE{R7$(?@h*im6|0~m<1(jY?ulB zp3-ABl+r`WAnY?ISLNPZ6_+#+5sW>AuHI;YL&HI|g^k}Jbidl|U5J*#hy#8Fi1tFx zj))<n?p+NK{2l*_zbC)yTeYtXziLK@GrK_+lP5e&wX?8XyO~@&9|sfGfYIyN9mEO~ zg08IC%$Nzp*|7LiSflNdS=9ANvxQ^#L%B|8XPW-zjG%B3)ZbaVGmf@EmYtWWXL47} z=3HlIn*NrIpeDwAc_*05&>8!agRMN1Y{d?S-R@kmjn3n#sqbKMZuEy`g<iM2RN*H) zx*cDMSc%-5!XzA{bv=551KRnhA8UFf(H$Tno#|GmI!)i0@vto=g-6r(gvgm!mE6S> zxmvDLXDd3ZcYemC*qm}Qr+n=`sY%EmLNkI{1D%iJW%C9>1y7a0ThNM3t9df->~@#c z8$=-LOa+>aQ$c|=&(?)V4I^+hH5=Elw~Vymh3dg0*F6%_DuPEUrUC8gID1xOadalQ z7O=CLb%S%GPv%B@_Yf6Et!bi#A1`=^*ao$$3JxegSX6*VNw?w;bVf(DLbU8(xhm;3 zIPB>T$CKR#sVg;{6^@vXtgM~TnuZ)$u~b+vBC{9H4LFq>aF^|r?AQprk``)MR>;P& zG>W;1A1UMymo7m#j2e`~v0L9C^)xNn7}$yO0xFD_Je7u&FPM(3SNalrp{7AQ#=$t< z!Mn<Qzc*LbwTp(I9pbth#ImphyIX0;$Xa5Exd@u7A?6P8lUC4;*r%0e;&d*>mt1V? z8qfA$?<wn=bZHrzsh~Jy1v2L3>)w5SrN#H>y8Ni6Nd>JUdM6Ly8*+-$!E^%!N@n_a ze?bFh5)xR}76(x_a#@KgrLpM?U5Pr%Jqx-sjvr)GT5Ku@BR12SKyy2eIeDOvJB<)2 zRg5=8n^7~q&t`<^x7}tKPibxjE8hk!z~aK@iXFTlss$eK1_QHuccrnqi^7`iQ;gFv zrXE{qQ?J;{REK+wNp9N8`?gXUrIw%97i$hZp4{9%mYdpA^QFpCL;0o{U;9RhkLU^= zT!=^EB;1F$zq9`ElfiJ=;Oa^+(M|X_jA)IgphLv%6_1z78=kJC{Zy2&EKXDDEcxZ; zLXQI6!XoHoF7lL7kEvo{iyEB4_@=Xo#$el+S0M!@h2E)**sq<Z%0*Q#SMVl*d8F^j z8Sk(f4RYf4%$bgBqv0;iM#EiQcGOD+e<rG`a5$Yy{h`qpr>X=3UuexTi-3&2*+FTV zN>DKJZR{Z1bbtGqn0n2oEr}c%!%LfQ1;GJHq82XtO!e1ApOp$dN`W~w;L3Yw-O1o> z6+hj1H-T{Zcn^Va`S>#e&=hF3doO`-`S^1J;qvhp1j6OxeFVbgLkm^7e7v7u!sX)w z1j6Oxg9O6m;|T)c^6?=8;qvj91j6OxuLy+8$07k}H&oFN6FAR-j}Ul<10N-Dz5^d4 zaDf9KCvc$ypCIr|2c9Ib-+?6p7dh}r0v9{*DFT-`@M!{<I`9;MXF2d00?&5fvji@4 z;By4p4sa>$9B|<C1i~@p3k1S3<%<Na@MK>i5RNHdCJ^o(Um*~VDPJWJjwvey!ZGD* z1i~@p>jc6v<r@UTG399j;h6GG0^ykQEdt?~@@)d)m?DAVI<KgFMPBH@F(!MF1M(Dk zu>*1xp#uo#n;b=6>VO<Yu6ICwB8MG-Q9E`u4#=VB<qpW9=M@gfq34wj$f4&|4#=VB z4;+v~&#N7fLr?N|nPx#Bwr$|)j$C>^5|Dg)J{pjmdOjAAym~$!klcDc5s>_Po(xEi zJxc-2u)I$OBqyy;1tc%6<jo^Dt*7Ff{Iot3kQ}u>8<0G;J{OQ&wUz^#WqF?uNX}Yc z2<WZ+_Qil6CiJC%<gfMRfF9+yuLLBIt*-_om#vk6;2rUJ=W7A|DWR_i^fp4@2<YvE zo(||8guWTjX+qx$=$(YV9niZ7tp-F*W9K^oeV)*F1Ns7??*;TlLf;SQON9P9pf3~p zn}EJT=x+o1DxtN2WHt780ey|%{yw0u6Z(gMzCq{*0X<FV9|QU(q2yQfEkZwxZwhj? z9*_*veiYDmnDU<k`Yxd#2lPEcKMCmjgnk;(UlU3$WPd~G=ke`t32g)fXO_o1zX<5> z2qllNzbEuB@$DZ7{VJdz5c+jM|48UJ0sRx9e+@{HD7xVtw$5*N1oR_9#{&9iLK6Y~ zn9yWEKOuBHpq~;t5zx;Foeb#bgr)+L+;e9@a;>{7Ai36^3P`?ncLyZjx_bhWbKSiG z$+_;e0m-{=I-o-+JPq`9Mc{=15|ellfHy~;7XygJ;3asz)j8Ko@tlZ_8@6DB)L5tS zd>Me$_?H8i3%suY5V&56=U5D1h37<?e*j=6a?lt(O<(E46TA2@yY(+4;YUi)M+yDk zUh9t$_}?7(IDxlEu1^qpeLznViUp0n8=a$`>yrfjs{@}R@Q%pzX+o)kpCS~p#AgWn zRV4f@p^%gm^W;AJ#8nAmR7FZX)=i?9+qRfop3E=1I1@|qA%%UQ!RqKzD7QFx5r-66 z`klyleK%)2^;L2;XtK0O1|SVU0J5?OfX1JYa=XRd2Fk<dT!9qR0|Ik;ZuhF#WUiR& zJ81Td|B6_>ormhB<QAUHh}`4MGz_Rkxb{)IE{|(?oDCG(jqo?o3FA`@u}x5$29L9Q za)EB9VWK@MD=kK&#~Dj1dYl1{?OIdGCgA_5w?(K4_yfs?U8ayaJxKz7ZL|4wMY!i? z(1Y}{rHh|>c7-S>yD5ve)HK{MVu##LjS>DX{PWey7R^aJwi7w`zm7^}V)ik%`}8~e z7~b5S0aO2B*swfFMaj=}6QenNKjvL}$%A~p9Ke#7UUH22vV|4pKOu0c!eF*`Bf`hP z?#?Huq~*aVNWMv%VO{=Xo|!k9xTPJ{Ieqw{yWL@q+uI(enyZ!mX7k<Rt(meWyD5wJ zw@ud6Go35F(^qs~Q)l_-PhkX{t_r4b+Ql<Qti>k4tli&PVOrmAQZ=$2(>HXRviaC{ z7FVif<ELs>HcN<H<=Mlp>K`DXEUx#xsvqYskfxUKgv0d5JKgW}zp7tkH2XC?A<{h3 zy$(-%l<rUQbdJ(>Ue!O!huQz<RsH8F)q7s^s{Zqp>MlH8s8kRCw^#M=SF$(Z>0+h( zBAzZ)x_`javpaK>u>6!sRA)XvW-~&ZC{YJOZL1j$qW9XJStjk>ds3)TJq7b=HynhG z39J*DEoR1V({S+n71}B&0x^}}cDiUd7$Gn)@jA;5H_;_r+c6ycC@08fr!i1shLJYR z8*uzW<0*!o=si)^DvgoWVKEMHn*u(k9IhBPzI20KyoOZ-V|G|p*BFo+e2D@{`bhLL z@G;GNtZ`%Lt~imQSY^+}g(ua*!{hAa3U+ntF#N;z9cY2=4C?v@YON8N_TUf~BpenD zK^@8aI8RKH8SUr{Gvcj9=LN57xBeH9U-J4v{TVvw<ZJ#LQQrU*KW`m>CH^rm$I)d( z=?J5XENBG|HI;?4y^Awa0-cQ(&YM&9=!6FoiZiYrts3RmQm@|0K~(P~bpDN@sg28S z>@6sb%dQTwu+{&9unv&(N}mO?LQE3`HIcmlFD=23cOdtsvL95ajMpBHZv>V3@m7dL zvo0S&B+4UxtebGS0Rhk8c(7eLxtPcaoj}b|Q@h6~A^;S@0~nwf=gFbpEWt>#{D4z^ z4I|D^2FGc_#waW-62oo5%^m0tnj(>C6P*jd@Jq52U{WF}5g}7CQs_`hT|`otCk0t@ z^T|?5xYdk7*zp*HbX%B<t>Ue+N@p#3d?BqUhaojaK(R68$J@_?v92Em{vKODU28of zazMeZn3Q}v8V+T;6ivrwy5J?5b-=K}?r)(hs-0NkU;`(8oZ>fg9P=Kaexw}Cj0)|- zQDkCr7`}970)|&c#ywvk(9W#N4)4#+b1Nmvm(YxNMkSyz#<-3z%Xq<+6J9P*Q3fk1 zsw7W$%EV?OeXr138R?dleXv&9ox3G1l2`jFNE;P4`RQzWHBs%qtyll3R#EP5%B|hH z3&He%>s|Q9TFp%I!~E5-!-5i1_uq%n{Bf?EGa89<njHULoW@qZ-|Q&tFRE)CRyf$) zCrdaCbdR0Ida%)=S6i}|?7fubFWTM5B8T05agj^deUY;hJc>ZEbosMZ6@L~&f0j=M z`FP3@fO1ez%3ui7rXC?NLp@qveV`fl7o$K^^(>g^raF4uINS3}A8S}?aZp*6Cvz@e zm2ECDX}NS%w@`Y4B{}=ay>%kvyx&e2Z5Du4rPWE#zM!qM?IB?bhy_h`x9utC&)HY$ zWUWeOB-^V>RQaYV39u@0T$1JmJccl8T<e(J8B@7r9~N#)m=7yPxrb5CCW!8=A>tBf z)N9pxe7qgE<wz`0UDM0)o|dYA&FxF?GgHh!9pGzoZ*CuyF?-L%pHya|_V}ZIUJ4hs z&VQx2ja@GdL%FAPU!bv0pF+a(s2z(8I;la^govPl-t_@S<`@hR7nLw$t`GQ9x=5Kz zUrbZ<deRQC+X?|{nqsk#?DkjY%$>OkK4(bZu+XTaJJloIey!q#+l^3!UZLh|5^N1T zgplfz_)ve<!>L0}i1tWHYd}-|n>%qj*Q|%S?kexZFRaG3(Eo-`G&cW#mCWHmRj}*n z>*Zvz5rgbKY_tx($Br1mP_JP^QfpN)x<8{rezjF0>&=CHl@8fu`yOc>5rP0M!d|TR z-004b(ZR~cS1Ga~%uG!Vj+HU$%svn`C~~-ohp~?;GfbAk$y6iR((kuUn+<*rp2tp{ z3z)(f;Q4^DU=dyj*r{(ZV3HpbEX4~=A-q_Q7g#EkVkKVi#Ew~3;{{lqUaZ-R+};zp zy>HBxRu(2OEgoDW2xxNfG>HJV2H?fTz0n2%8$p~4P`m6FPdz!|`_I9^?mT0&+N#Xb z3kJ=Pi$rLBVo{*oAd05AX55dvm$YX`Bxqb-j!4iKU3~E+mp<#+&%Uh98<nnn&Q*!H zK>Ia)_GD0t)7RCcuc@%p^*wc2v`JZfsxb=_YLeN8d!Zj!PJ>zh0XXv*70TS0zXHHj zFf3pFSNuS`Bmi>s>+v2JdL$&|VTyokH+x}e;=plWZo$9&HrFq{&)v|K$ms7B{`e($ zcZDIFbHiBd{)e>dKZr88NMo<pS$txjb4RYqG3d@O66yO?@Trlh4snp8-|n(lv&5Z( z_(<t+%R$~B;}-`Vm0Q8pty#1{_2jK3xETXVEVO5~|90BH@&UWo9d_l-Fal?{hk2h0 zHd6;j9!F1IhD^FWgWba}<%?$n%P=!9_4C#$zT)+*!**N5l6N%jtwKQOeq2_%OXV|} z?rCK{<R4%HUZ=tvpX?S0Sm1V%TXwt%-!F~sRrq?bb?+M7GSa(?q7thrZ>?YGr~_sW zU3S3PTrB7se8Bw#EWzRfo4aMmbsUO_2kgT@16#0g(=ejJi32%DN*u^JQsO|)krD$6 zj+7WsaHPb5f+Hmc6dcJJ5DwU!Bdu3C(%Uj^JY*b+VbM-^#9dJ9ZnQ!i1~1I)4Z%Ul zaR8gk1SVl!(*nYM<h?~Ff{*%2o(_yo=hEGafGRpMd1r^^KvpiaX3~CVM&Moqx&Wc` zu1%d6=5sDD)`FN}6t`FGyE6hWHhJ5m*_dZ)uI_ttJ`W46u(4@IGY|T7t~yG8k@NXY zpi%{OewBnk<fLdQnZaez&iivNZzh%IXVAMJ$Oycdc3HwNlGwyzAxxEueIn=bVr@IQ z?cV)RM&QNDiMR7F-@Z0;!OjaS#r{>!<;B`2XxqguW&~br4$1w-^M0pGXI@gVh~ChL zUp_{mNinbLt}da^zzT}r1s7hZWt6KZ7g4REekUPD+busA8=PLIVo~tL^jahzU(Ac? zQgt_dtedj<V#+LJ$%VxfR~Be7{Wx!QdA>1UC0M8X)*kxYeVCuFu}=srKfrff37>~o z1HRx&qcoLnd3bJ4jjNEsgu!@mJB*etSSH4jI|b#g*4I^AbGiMx8d?3F){<A_9ani& zeAU-nT*o~$&V!NX;PvK<ZQ{Ak<((<#DSmJ6BwuWaw7l3(^%qxL_u|8qEwS9b5>=sC zpyhTYmRnrHu-S6UAiI|%lUCR609RMOI>=YHy3(KolC>7k;_Av|2dqbsq_Dca3?I1c z>yiw*2yyM3=U<4Lv;2!ycL9Aq0_Qp?dg!J6nzjY8yApYQ^`8y>D&Hjm0JkimHnX;r zbM56<zsj9AFo6_&k$)*ZX!Xy%{8;W~S6N+Rwj_mh)|sh`LuuzQ9V?oTU|MI}#(dM7 zIcBggnSN(Aj$k6cuhZR-0b-p_7b3(uJsl}xoz}!7QN%hu8!2L)p0gLZ!GBt4u&vX) z6(#K)81cY146%E_`J&{V7oqbg??C(Znu9IH7o;?2H#(t|t`FxN|6)Mqqj}}-%Qbm- zu8Dh#+8rTXKfa<MtE$b@0wy-{3q@eD2rN;Mi1sfN@O{i;qeuZ$DyBhA7ow)bEy|7; z#4qBC7c3)Hg=IJZc2^f$%*H~3Ks>rC@2p$o8|{Dp(zX`K-j|2>>|~>bjG!nRZ6T6< zAm{R8c~o`=vdRZD0xwoUUP%UtXOpCTD3S>JmpPw{WabSVn=GFOE?Vblu$c1|FM;p8 z^~q2vAt$YOO0v;MbFQ<KjXstUoPligiJa@~WTPiDf|_jf<y{4R(bh-%kZ?TIj+9BX z6kz}W9_VAlU0&H=-}~QP5mzX(kI#g-f(?nE-)qkmfKDH%LrJqg0DU3<O<w}Q7c!TM zy7O2!RltRxb8#1`@yx`DL@cU`3#t%4)A=RVoAj);rkHT7@bOT3&g6D77hgC?=L|tp zvsBC%Xkjj$ZCMO9*ki@3$uM{3!v5G6oAA=DwiJDq%Sx?lXlYK^+*0{T6>FcHepjx| zpIB|k8f=h?EvG^vSBBqxAC-btrnSwN`otJeC#LsFo|gI~3TUa%J)7%xs#Z7p^VzbT z2y4x$OoX-StE^;EUP5Mv`j#g*C-r58g32TAWK`;0HY9ZfNU78?HKee}hs=_MoRC>I zqANpYaWN-1{hr+Px7e_l2x$$R>sJG5zTzIt6foGukl$(4U>7d3s`eVPEk0AYR3i6l zM)(|>D(TK=sX)<}x`K+*x;CROEtoo{)Qjjjmn(9mr*ozKyh^7t;3IW8z-TPdgywdl zsf_ZzjIwyuleHrcsI^XT&ig>l>x)R<a-P@&wmNtg+FCH!%lqs{ZN0exauW$2YgSWG z!Qv*q%x%Z&+;+OcZ51qk?svs)8@8IM0?utOOx!jJ>>80G1FX!IG>6WD+os~3+cF|V zdG2}XHE!$NG%=mTWSr?ZL1iMivzrQYZp)z|y;NJ8=lK>b%?ZKTQa6AZr01R-?XFxK z=eB0?hJC$igsuL1>vmIiuiGR)fVn6eHcq!$?8<E}Z{W#q$;1Aef){q|oA5^emZwar zY^Am3ap=VZ6Z1y1)BeKwU*c}T|D3z|fhiiAHgUoKd=r<4?e5%B&i^QpxHbf4ncCi3 zuTf(z6~vl45gvNfwRc97ZX4P|bXL2?QwYB$0k)(q{6D1FLVL}k9eMi2{VuR|Beo~7 ziHk?ysnE|MHF}nS%e`|w8C{v!3Tp&<pY2+R6=A=@ivc@br~U@XF@1FnN`2mw^d8JT z>ZE7-%7W7d3<3(fx5mZ{IUT|NmZnHhqS(XnNd$F6us0}+s1TCYiAHra_!{C}6i_!H zKpc;I_Dysyn>x?}%{q8sK=%^xAUyRd=D!nYrit0yf|GU&ikwi2dDu0++U9(3&G~!{ z$?L#-8HiwHlXU?6ezec5WMv@>8`;fFukWvLc9~wUg;6X|UORhazDGj^EwNDYSA=0i zdk-wmo@oVvbo{4lG&+pzT3q!Z&uUBJFlTnv)CWP{1G%r!vdIH>xmWEQXYdwNF_623 zhQXgDWT6eM6Hqticz&F32+zl`ehAOUuzm>7H;g|B&j)V=hUeQ!ao%LV@M?!U9dB;c zmIB^%yb)B-aHeCNK0U*ij)D603|~6x!1N4XI)>`gGhFG~;WiKQFT?^11~e73DFm?T zc;PIo8!&i#5T2duBsOWRia{{dyAAz*G<Q3j>QRX-IB2L~Fr7R0oayu4JR}dBtS9Tb z@wEo~S~G`ul$*jGn^5h*k>Y=#;pc#cb#lzpV;Xzw_DWtM%%8*;#D^<x5=ZM|%S=#? z>$J5=oX%nkyC_ji03w-1S6?l;_4R`5hM~>^M<F|mL(c=l<1J7iw?uBryTfQY)U&eX z9p<~E$<P-R=~qWoEPaLiR;Hs72ss5N5rx_*P$RiEZGEA3?Gl8#^%nfWN#o7QFqk5? zUp}Z~*5dK^@owr6pQqe9(Zswmp{E)W#_o0|C=VQuRD*8IWR!>xt3rDA6(LDNoSI=$ zht=4hGkM*UOLuXLyC_!FQRJkr%}HmC5_zqk^}p9j)yxN#zI@&6Ur|q{PV>#{8j;^n zRep|%g4&jwjM<o)!ns>(%XF?_GK$7n0p~3|upYo@?b<zl1^$3#hGP7nKn+c83?Ik{ zOT4x=hBFNbe}7~6=3KguA>Du2?%EjsNlxlx$OA$qO-%0JcMNB91$_*4069M0C_E*4 zC{;R>?4uc5ZE^oPV=2WZj|>rv5C*~V>t#RoP_Q|t2(k_uj$PNc-Eg>&gRnlDumh<F ziy<A7uozNC!eZEBpjt!96)+;iVgZZ@u~;J`LM)cHh6u6m8b;fS!HB(m2vC!L^6f$8 zUF~<c&e3P1sYR2rh2ZEq&T5?qVH>MH1Z}PRT<{T=cUy6MTNcN+WpR947RR?`aeUP` z`>byeWYXjKk}0fW`X}jtaTAhwz_1BPK48>@Bp@(oLXr>|Ga-ox44J@qzLFOhF+l<Y z$H25njOnXyjF`}l2sjLwz_`Bp!gvXc>??rb5*XW80HY-^x~~8ROJICo0gRQ<4sj<I zM12VWtD~%dDYY#1DUP``Va7&7YUt7$4K$d}y4H!9Q#w*G4hmna$8v&gkY1#X0hP8) zk#-Vuc#&ooJm@nJ7Qh$-@%1v3_KCO>C20vLnlf{-3I%^VJ?ANVs+-8p<sI53QZZFo zH*uj$(5FwuFknpEBd^R-sWOQxx|*Q4s<J|{T8<T-wH6hWlv^%E_vXqu8zY|>UufWB z3hef+qVqW?tNjO-G{OlhWm1}}HQT&Lq9c5wa<epkXcN=Vl)+6uDbjZq|JItG$Kpgc zB`jF;TDZG@%1dKy{Snc6XCKZ23Wx1TdF{W!L3A{~-Y75^crq90gU@cuhqY#AQ<1%; z<MpZ^s_PQfzf-%n-pO6dp7tMEaN$S)bNSWcN{;wt7u#`!Jgkk$TxCqO*IUWKy|~%H zwC)c0^#p6xfQ-0QCQvwi69uNIx%nJEk${K@uP+f2UH}+rP8LDo^(CUh3m8tQ7$APq ze#Y4KJp#iEh{*5)A~d{!-Nn*kHPn~A9vxl))+=uX1I0&azUtXwL@+Ljd9FTzeuz9O zzAO_UAL$Gn7#P0<LLA0pp!4df_5f80{U@d7fyRNW(7=h#o(cXv*=bEoax)=qliY$k zyC(SeWM>GWiU&{JhOezoiwWTftc;U(x{m?Fm;MvXzycxzPWCY)4i4J=QKzx9#iQ1A zTC|}quRhTpoYWfMKLyajSa-Ys2cqD&hoN3?K?kCm@h@viZHd=#$P2{ZRN#RjP-c6F zcMSew$D)-2TnQz%TgQP?8hdsh-W*5FW^7<Q1O6%lx<eZu?89jV6u}=*Fgagr?ZNr{ z8OsN{nq#*yaG*6#hdn7}FbGSqB;qHI&N9Ofpil|}_{)pc`Pc4ZwN^O~5W`4YW-}6r zl>w_nI$a>Iuwl=P;!pDAc+B=9<|(lZ<pNs8S}xIu1qvr_{vzBsR6G2%TAgce&FBhi zNxswKEVLOc1wF2{-ku@LNvz|02y?0=pP|h#BPl#Xn<2|1zK1qLJ5)YHn*pjdJP`RX zVWll0ft`)2B~=b|lPb3}o>4hnR^XNME>q<sjC$oHje6xIj`G>%(Upb(FQ%P%iatTR zwxONC+IIm~KE+d{?>Ti6c3h1L^>EdDM{rDE2)X4>_b|hc#wY`~Ofg&lRlN9r$2e6A z*vewsLOIO81OJ6aQH%;egM=!v9Pg%LoLHDhw63|IG<ZCHv$-%#CGv>$%h+#K5#C)x zNM7bv&G-w|1IDSz2?vHoh}2r}Cwy%U6^f2<8tt9nCbvEQqW-?lp%d*L$6=ZV4urVw z<a-BqY1Zy;^X~|5*x1?LeH_eisJ-hr_|b4@kV?Ce&fskaP`eR0nW>YwsivZJ2xx$B zh{=Y)P+xiCz^*8G1Q&Gx4cXcbe&0ddH0Vc&0T27Jv%nK}SA>H5bDK`Y{nxwujhf!I zV~cft;7I-t6m^MHlmcZiR)(2C(86;siKPc!%~$A(VF5h23?~g@Q1H(o@I3sv5iAdX zj*yEZVuKTyX@B-p+oaEJ@Fj(imQqSdNBL3HJR{uQ-r?5sR5rn`roX>4+}`m&lR)?5 z4Ue#^^mJD@)z=9W)a`@_>b?~th{8v1KRD8P^~ui21hlX__!gI|V3K2@V7vmz7krRx z!3W6|d}wi%=Y!-4K1i0}gXJyA5XUi;^iCLocLM9ZQ}yN%idp)AvfEfTpj3mJh76za zWK`7=ER9|bKByXeP&N3VYVbkT;Df5chhgO{R|69$2@+g*std~Na-Th73(79uY=8kA z4c!r())~Z|a^HAEbeVR4+B&!>TotG9&t<qaLfUl(cS;hpO@zGAy&>m0UO3h$<uUJv zoac?TJo!lD0kYrTA(sY@V3P3mQ;+1|drG{wG9@J6rZ6(1{6e!hEgaO2@amRD4we>o zg42g1a+u2+mwp?a<iBB#54nNIx~cR>ZLsVN<YpFoSjTicLD3ONS)6gvM$6t!m;^|F zi!$l7lutKLbdFBA2x0hchtNj#!>9$MCqmd+a{@Agh=!2$cGZ8~ImKj}Tzgz)7k!uf zsnO3YJhn$pK&37#lz=Wuv<B(OpK}Q(a|zx*c4h!m^n?9Zpw$KEM&qMD=bbW}kp;P^ z@lOy3o#y%DVF9BJdF<^(EaTIA>KmekXtb}*R348{?{$v}*%IU!eu@ek$2N)z8;TM| zg^hzDMTL!%Aw`9aqaj6wjk6&|g^j}@DnmMPI;5Deq54rs*wFPTB5de-6c9FaJ&Fe# zx*mmt4PB3-!G^9!K_%bvvAf^$g^zvmzSy|x<)cqM^x@Zk{8JBHbA3x<I>R-tzJ96C zJ*q(oxb9(R^~yH9DNd-ZjW04i-~zkoe7~{{tA<FHYd#H_Ax3C9af2ZUO4u<V#q5x( zF*V3tYIU7CmC+V<sFn##oHsw}RzpXm+UH8$lXKsfC-LbHbyMSg<5nc9V7e-=3f?A^ z_>eoK6QLm4!`yy=rJU{<;IVqpqlvNb8S@g|pDToW=AxG#unLjYpYA*jjQopP7k=>m zIv39uuZ-$|!`1Gud|gKVk%7zmaGk1o<^U;{IoXDDagnkcZQctMu?3sW0Om`524kQa z+}R(@1-kCW&TYY3H0Di#6IE;>a3V{Nm9nX1wi+8mb~hv+t9I&QWp>`zl-U^1TZ@XX zss$?;jxJv(mr2Z}rfGR1M$H+E7U;I~72ITw`kC|lAw5Yv9}3P5sSR(<lawjfTj{&T zf?PQ!uXE)?KI|Ok<Sg#Rbtb#1IzG<an2LBX&IbmxW_XlDzCX+!)+Vv(B4F#IuhA<! zPAbZM<f}C~GCHYuA1zk;h{T7GVXCzSYYZx+?EqTdOjO6a36T?(wJsCY4?wjFF*x<@ za6i<kc@Xm|CR3v9H39{Clj7PXv!=Cbt3}f78PwagMG=>?MJK$?rZ@G)Mem?8F^?Hx zi$i0SNaRw>usMmy*_@=PU~`g?skT7A<!am178~08cu><kv|Mq^|6#B%>NC;IgR${w zp3Z4|VO`jJ@IMyq_6efh%ThKwxv{fydI>Q+5#xeVO$!vDTgV`!LD4e^P)1Pbu7St# zot|Bg-^*k}^$}$HX0pL0YEcCz8%m3kl$;lRG05hZUkb8e2PR6{C;~k2D3Xm1FPv<a z8bll;n-Hda7MuK;T$670NezC?DPNU1aZg*c;O)h=p>2er#iqy!onS;fPDmo20)_iY zj**C6(~*crEy8w)#M7fi;H*d3+pFCJmM*zfOy|0KZ<BfE{`Qu7KOAuo+)U!HgFX7; zbs6`A)(^%2tc{W+NJ6|CP9kS{N^L%*X;P{6zH&6TzC3G%cKriO!DC1)37Lo`z7Vt1 zRAax|r2NjVGnkaMDGCE%-#xjyij$KO6A>`+Tn1l&?<h@Ld#D<gg3f%h(!(n_wFamZ z<fd?kBDOP(Wm&in@dno%q$|=GKhjTcI_tBW-ez;Wn=0bB*;r6TkO?{Az&O_lv%0*2 z<};8X5z7_jb8|0`Y!p^ePTiSty1Z!N6<MkM+5=+dX_{g_Wx4E>XRF^gMLVG2BAroM za57Y;EOI*CcU)GP7x(1ieO{Qu049QQA$Bi!VAa^Z`NlHtQAbbdqDBT>i|XPpG&W?9 z{)#IgAHif`L?07Nk-D_zEo5S?afHP43Y6Qpf;98m`)aM^-Z*-RVT`ct&<g#;qv6x7 zI>j8RPtw8)%{uwiYOGUjkMLlwj*mISGwPzs18x=cE(6yq^W_pb%=9D&lc=5DiY0@K zky<63I(rsNcD5~++-uc#{v4_ZwcJ^9(|X=K8V}{>_YjyMTxv9OP^sVEXf)U9EwwtC zAe80-!wRTQIY!fOuTI8d|IafC+4NMfM5iD-6ZQpb1S34^GhKV5@xFa$QO5FCW$bS( z<J}ivso2hGMtPa|w?L2r|EE6ubTZ=l7gNC0WBo8pfra{s7zGOSbJf_@&wbwWu6h2o zFF15vT8TKHYkR9NMYs5B^dhZB*#xM;dn9G?(P9=i%^wZl1+wZTh9Y>OtFOmDLFl?t z&>ssy@KJs^M16%LF~)&u89@jT4uvzE!V?TPrGj6PnZGp3x8h&sUCp6@UI1+VPHq4n zW)as~5vy)<ins(j6btAYlw65RU|b-vsATKnGE>dy4ws@uH+ozGA}z`=G>WvtgIf;{ zVw*8w#{k9f1cRz7<0L&7H3jFQbM5U1hM~k9Hch_0f;Jxtb!yy4a5{AQ;LgX<*9_vr zU<}AKMJ<kAjNye8p%$@#X|Cccoc$nO7YtM;UW^9>xqerBck-Edj-f&llo6o<7&(DK zmim*)?1)DyfPQ)otcd4W(@-nzOu>K{XaR-HhArk*Kyf*%z_+y^1^mj83iho~^2_nz z06#RCu*~JYcLv->!dMPN@w`AzS+{@r(^}@s8Zy&y&P-I&(j8k~HAEpesAU^GQWR_6 zmXZ5RA#x{j`jT*!98(QV7FMO1VxeHql=Q$LzVwXct&|Q+V)}+<(4I?+>N~tLbs6i~ zs8k6VmI=c1g-Q@kmSa8(lC7Cn#!bz#Sa&+Nf8Mqd&nmVb)gxN#Jn>#@f2_x1|LS)C zSm}V&U^L#x#}lR=z^EOL-oW!Bw+*>vxu);THGQ|$^wL~YX&MWo)}MAB?5G$yU#ya2 zj(1Yk6gnB<s?r4uKGd02ORiC<H{oRR*R$^Ls@44x)O|BAS%ifF=C1jd9mdpB7%$J0 z2O{+^nwFluS&2Y3_QgT+cBOvk(XP}F(Jt{%)?vv9X*TF!*<aMccDy^c{LgIEF4Cx3 z`=+dYjBkQ?9Cp$-(+|&BwSJZ^1L_6q^>jKkHGs1r9tYtg*B^PuO1y-Gq%$E#(?PT{ zP;ZPq>A-s2dym9m)z38c-dtNh6uOW|a>$Ljm~Rns<5tHO5jUnS!FW@o3!6)cdQ>B> zIYN;u@xELMKcG}dFYALm^wu+#yzkF>-Je#sU6+H1b!Jzdw0%Y{^n*F0$2XAjsgiNJ zp7BGqjLl&uTxd`Fk;R<PTWN>Uv8;RVtX6yHBRO9w?8M>+3lRc4%k_$WJZJP4+PQBz z<6=GIleLWUX{&V2d_ChQYZ>zi@Eb3J$ojhrMY$c(79#Bb+J_(YBs9W+(_F7eTS<Vu zn9(XPeU?Sqq7;ijTl`%OQPw2c>t6Vx7r*2sFTMWo%P?`=s(raZrd<hP%w^hFAo=)m zmT6b2md3a)EVB4Y%`B9^xc4xbwyVfnU!x@Xa+6W?bwA9r6nN_^{PHsU0?9@$kYuih z@oJzLcxy(1x5$^S&#6=3t!eNa7QIGaO5-tIh*T1K*K^>lmm;gblhF1hmi`jMx9;9m zs}XsN0(wQl4c0|YrP6%zJAbcDjeBzsxr9rkWeK-iio7-5?}0AYP<z$!^Q<Fw04AER zG4vLg@D7N$Rt1<Kz53(?>_{N|mZM!Vh!%GUN;sXuZ&A$m@LSXBw3){6TQ2w`$uLI3 z<6eD^m3clpjK(S0R!FL)q-Sxr@E7c223_AH{?;|j3n?i?TSnM=Ues|;)tR@_s4wML ziuK5WZ-sh%hV_u--XNYnmV4c0+cEVz7?^Z)s3ew|B~-d0^W(M5S2bi_MCQ}Do)c?) z=!XK3Y%3zK%eHeFxz89P_ZhRPY`YZ8Tt%!%B8Ef?%3Ds7V+HX8(uAc$|K<heZC;tW zY|HR)tX4witbZ|(JN>)tYPKmz-wolzE8`1mF7oZU{Vv;HS!_S5mwF?*l|=_y6{~K~ z^RCzd=^2gp@$rPI2QX@o5mUmDqr7Fgrtio#b=md`)zo%h#=|`1z|4T=>8DAO+@*=S z=3G*m1y3_6X<#Ba)2xU`SAs?>0|4=`;sCwkXnv|JnxCGX<D?N%j~BZ}T~LsO(F3U; z(F5$~+345k1(y}GG&vtBLYiE#7rCF_nfuA5$%A=BrILsp>s&+}Fs3srRYXJ_kkaD- zt@yyl6?5Rl=uHIrgMDZV{|}9Sgx&jW!UN+B0{E=mo$gmZVb*&C@yIEJ?xX0J=4G!y zYY@MS5eZfc5eb$X+)<(klpl}3!_vTU&1Id64Mh`XtUNo1d=*~#-lMSH<UGNchP0cc zx+n4gd2Bp{-isFeo*ILCX~x(+q5%c%v*tl(n&E|3IhlK_v~aSOQ^AOus2tzt;(ISj zug&+r%H8Di-GUCsE+TE+6dMplbfXBx2gHk+ctNsC)JL*%0J2owNQD|J&G+rZhFIhr z;MQXs!67(Dcn+1i7TxUJBhTJX<yL!e2yIS^dDz{)%gp(n%K3b&(6l#c*wlPBXLONY zdy|Uf-ms}zu4S~%32L_%9Zy0s2`$(3i#eay)Iv0cB*#3!;aZuT@5?!#Z)%$MCad)= z#!AlUE!^hb<m<JJd2jN~9oU;}7I0(Wh|Cb5(FY?$owC}!bQZ@hr2d)~`{@whUE-JN zVY-ZtBwdKRq5kI7tLW<{x(SWTG$yb?BuB?i<;WYdp)1W^@BB2oxxm#!ZzS}t0Pp}H zQ~e%$g9hL{$+wj~xC&-I=bfoc&o1_cmJ*0~?Xa=r_0R3FvE=Q~$-S1BKPUHEUjCfi zYkB!|a<Apx&&j=(S3kGImXrD$Soa-rXVzG6GgDz=^yh34dnkNT=RwgD6Wp9*ldQ0+ zyzCwc6-1M`mxe$Kz6%^2gW$&CzO}d;_vGPztErFJ_YHJ$Z%*iRVT068Qn*ZzdBj|_ zBi0tcsfHt~*;AvMs3F&j>Xd(7F4!r?tbChp-m??2r)k(Qyba$QPBWismtm^eHXZwP z#Rb{PABfyyn(+wVH`@)jMyyt59&d~sPq#)iY)g)HQx@OTn2|xgnp@Lt(T__IGDIgi z2pOUy5rhoc!A?ZTkYWCv?T6b9Eto81h%Wfkhg)@SLjQ+RX!JCDZc4rxyc)3Lo1uFH zh5AM&)8@KsdsyxWk75DB_}qv;*caY}KREngG!g6`Z^j>(_~U9m+&0SHUNTbf+Zl?R zl@q!BPEF=GqAM$l38#7{)Ug37$o8jsMfxugQ<^g*eLFr)LdSAUy|Kc#L-7p6dG)x< zD^cHC^^78ND%blxHm~;3YK)Z)ji$59oAXTN*IOJ!jR_ug5YvpH%tpW(QD=fMynq5% z)<*;r8z8rg=5jaSKyJ~!xq6itA~(|yqy<t!3=wJ^U{-<iHJxQ$Dp2g97DMFq8KDoT z`6|=~^!}a+e~$zDpjV<kptP!GS2}g%9(zNsw-2b_E&u<G0exexUMZkRk6SZ>I7&2_ z8~eu@n~Palc=<{{xNF#QI`<su^IxxUBHs@N>BK?X2AF8UC_Egf`MlTtr}<2$=}5D0 za&mGT;Y2JsSM;+9Ch~BPU?QW@Hp*g<#tOGn!9S`dgsnwOT?nH&`gjU!$>8n`A);k* zRgX9UrQhxEG@1x`gk+GAc6c#hl6G`=VtAB%kzc~21Xn0#Y3IuX!lUFX1j3`_s{|<e zVCvWraf&7KHGT^JlCKj8|B`PI2>%i}AB2C&H~A&}OTI-QVu?^Gm&7;9L6EUh#1KkM zB!P`!?Cbub8!LiIPHB7K)~Lv`8d+qMi5F=TA|p$@Scw$$(@4A(T8|7^_>mlEgLPSo zY?^3_=#bfc3J}88sVer|*-ez>f*H-18kW+#azdY6b%Sp#7c~Phj1}?Cmugr(b?5iR z_|63>I<n1S@P=?HiZdlFpH@fzwvBZtwXzsMq$%uT-|q4L-Cv*|Mcf=$_7TXeNIRy@ zE?E3QWsY*G8ZWz2K-tTd&}*Vkt`f8^m8YG(l(NXYF6jH;pSp$v9o^9+&f*&HD1D)I zd0&%<42zOih83k#SUPRkoyYttDcVYhwWTH7|DSNGD|^*5^t-sgjnpXdglSpd?o;4( zuVMYzuim#U%y4q<9yYx{iH14rBONBU^omZP`=#0m>9KA?;9KnhXb?5*XHl7re`{qD zf@)>%EB6de`F8Z_*K6_nRa7M{ewukBk1I%qNqAfgJFoE#E*`Ph)wtWEOlnC@7;8w} zkoodZ*`DV~I=l{Ty5}*!3Jf8B;nm0xh!*{@_po;Vh|@k_xk!D$_`3O3pdqI_+#n|n z88@;u02_~-?EJQxUlN1$)f<+5j8e%TG7;L`DZq#d=RP;93h0}{yIWWs_)@CJHT7pz z$<ug^lK9LyEDV(zO?9g^GNa?Dk=k{$-A+WOfAI?$(0S$HcWZm9TMBU*%ps1NaCEFW zh&nexFE^+dci`v{{)+Hqf^yv+jx*W|f~O!342|X#2!v67A+^EheapzR+^O~NHbVLW zy|8+7Sm~t@u%b_zDY|1RxB#OCQFQLX873<vBrodKaLvi2q0P)TC`e;|<^vpit6t+f z*-aI7imQ(AK<82#buwl~WpFWmJlPmj?ARST*wAoF2(fi@e6?vfA^3%|*d|GiCd`0& zJORfRtaB-YyU-_zV>-C?nDR2n7}Gb^IMxtHu;=BmQ!!kLVUh8S)-;99=|;q+Mw1t5 zI!|ooTz3|i^ul5@i24;|?V6x{cT}<{XpaT+m|Z@vGI?>mM&xjn3)d&Do|TjnIi-_< z&CJYX)FjSnolij;;xnWG=`52dz@2vzlStJr7&L`d&@%TU&b?kCZNa|J(V)>Koo<ku zIg3t5Q@wLIH$7AuYl)U5-ssQbhyIL}C#8{makw({$GWKiClT8>GnYCu8F3!2^zCHM zxnxY8?hG7-BgKpfQQngt&pAI`)Kng+)a^u0=XKjb%?l%y3~-Vv1Qd2<1D#9St=n%q zI7m)PV`R*`gF6Hu@`&$_27ND-=ixb=hn)YMhv+7aYskgiV|6a|hR8bBfboWaZN_fb zc5k_E$DGK2K?+x4cIc;-+-!?rT!ef4sIjzb7)D2N3j-?YdP^)OwMle;g-&=c!1#JL z62et(Vt917l93#?H`%!?1EQYzBJv49qRV_SPXNjjfbs;OJk!NI0Vq!Z$`inToHb)O z1TyxRiB;xTPr<4WpP68}=uXcU^XUbs-%(VEcB-5D=}9BK^GH(V6AFemfYhcX%%4?T z?t$=LGDbu3uEo!EekvE{+=r@R%}19alEIO<j|(5%gMi4pL5f=ApvMnbjVl-sAX{Qo zU|?y_f>pJqg1;wM>77?<&q8&0I6Y$ijq{orof)3)P-l=jA}qw!D*>omA{qKcd93oX zEv4il?>7JBo$4)0EhMw@>6MPhr*lpHumA^=u-!N?Fy02%T^zQCC<1TD*?euNdhVhi z`3imZL+~q8YwC9f6dcIrvMmCpQ(cH_uEs;PYLKml6+fNYe#_PH4hAP204HpT`Dq!$ z=(G`GkkO71It+1;?3}FSr(!T?@Su8Phjh=>mefzGVj58PAt`9U1JJAu05hF+09YJk z5rkgkY4LFGo2P6JQnN;FPlf+Kk`p@rXF^L_E+k6Lg*=w?e$omtT?)s#gkd(@0U(G; z1{w$3IQ<g?^$j&b5ZQ0DZS_orM{8TX-vynkTkT5wk9AW9Z$C3YSx`wg*(2SdO1cw` z>4>pi>`oNmpmUl-l>tNm_-M!{tZz-K0)NcN#`o9fibSKc?!AYi(4taev))S?w&=a) zboJhAN|zg)1f?x|FX8be==ailvuE0SDZ>`M*PO22drj%iruPz_kDWQ~O*G8h;jQQG zBTaobn&$2P$~-&PO&LmkSDoLJjp^7Y`^)pure|hu2y+}Y`gpMuxZ<bWP2m?c0iSB< zgl(~}xhS+a0Sn63S~sK&rEaKhK_<J+>FOlZl#UIK8Rv4vkuv+TjZ50Q*11_i`>A4Q zYCDjSkGFfUv(LN`V*fd=uFHb`**{@R@V@?_$q4%xP6yKP#Xs&oi*PE1A8tLtZlUz! z1#Yz;y=*JLi|DXW{n3A6+dst3j6KToV11ABjtT)CMDp?Fp)`?JhiW90vN#Db3l4Rv z2`9VF30H@(p--k5i!!;;I}7g%k$MKAH;#>%E;;HVByhZgyxH!jcs;LoYnBdqlE_V> zs~-8B$kln%sKjjcOrZog5dch;SQRMb9(NeWIU(<}0DI0H;AE`;dWjY=c7-vuXf79! zY&|zEV5(MtIeVrmFQ_k50XMO9HNbid(5CqBtl_8MW}%1Xgn!hOtT$mtud^AP$1Lds z-b|PU4W1P6n#QHXurTB?Ndtrn2HyubX~r{aO5BC?t1!X=PM9-sfRh+E2+dH_y#~>* z5pes}Q`wJY5Mf~vVHPUA*Bmc@T4>SzIDcUItJMF2Za^!uEo}J9B&3ZkW<%Ql+*j)$ z^EORAK3yR~yP%^Ysv#6@%sD4S^8`&;)<xE7RM$xDsO)r{34-`)RePX@lrEYD;#(2Y zRK{u((!8_JZGNzZm=~8jV$z1@s?R~}ZqTW);%CToJX%X&;~VcMphw53d8$btAyqBX zP82gvw&CAm1IgEGKrH(yb~MOmNQsRsr(3r<>iB5r&4+1e2p;I5IT}$dL9x&5-9ZFn z=fe{4_`@VTgsPOYn9`&AmT|H`N2>io3;2P9q_m(nv#s_HZ1b3Yq2=iV%<U!@F;5<* zS9ADKXm>EXS%?Vw88s|M%qOxUI}*)<_GoR;%xyIdzj<aP5}Q^v%e<~sK$X`$Rx4nC zrV6&HD~zeUsa!zfb(<FOc&z}tr9M@8U2`H8upzL_>^3c6u2ukT*sF96v>-W=wKZYA zU$o5kjO}l<OsGW5*1cV$`^c!l4WKZ<K35`-k_9lS`66;*<)%gdAT!V`9)q623;Ajh z<@vXu=Yb}AUh!xai)?~rtkd&ArsrjP%K<-j;!eOoD+U{2nVy$47PAASf6wU64X~Vk zF{M}AnX%A4LH`R*{^HVwXvZ~H_<`EUGE!Dy8JkCWMNy%VOMkG2h1%N!mRZ$0(c=t} z;(O8JqgJ&iYDk}viH=p85{^XG(@jX5xb%l=h^d;cQge|@12rf}!(%OhaSn6vedf}H zN|YUGZKPD&ss6%f5e1BR!hn__xhww6EAi6MWDy|CHtH7PBIHV<>RXLipiwrWUg>wD zUO{<vCVe!LJC9yQsw4y$oh}hO${~-wg|%3OX|0p=QY4S0WfHxa$rscDW(sn49Obk( zmiY8cVb!kj>Ce=L%?y<j0o=fH6OA1qROZqp^i?kX*&2F_m6i}5BEnSI;e<Z%=uOdo zu7=(Wq!apf3H?|?pTyBk(J$A~n-#OrC&^<hF=$o4Eh5It%$)(0NLYP(Na-w#$kQGR zl<bqkQY(o)R#@^8(z=Kj!S5>!`KXibtxmbOHWBW;bMK?hjE~mn_LfYxvqMJaH#^zh zQewonlnHSLS0%8|Z*(?%bC9iO{mtdX(~)?>GZnfbSnw1tjnNO2Xfqc4-P+L6l)FG` zT~uL97W};$7W&*2uxx1cO60Z<kl(un(Wu6Pzh6Vjlg7d%TNTnYDb|{hHnHHpt|8_r z$7U=TsDlMtOI9I}A_w1R7EGu_zmZln89-sQh+-W#Y-sG+(TN2IFv)iTR9NtQK~P?S zDGZa&4mlyuhoC$UHeTn!%PGAx;aMcBFyR^E$9y3ZUK%u7n+ARfh%=Esz%q?4YG|gM zQm2tvyMsVdPP~Boih@?rhGk=prV*~n%RjA+o!QqXDwtQviPGi-mN{{$fGQ{cS*-w` zJr$^KMi^6hv$=r8i#ILc=d}WO@?R)ms$9TyE+BE^O$*ql6=1GRWo`_#AZg*YCQKPg z^L^&Xgi0hmuN*U$HZqF71Ms1?&Ax~-@+esV73MsrX#i@2i7_54?0Gr%e=CC_S`0Rk z^+v0$`Yj`wKh(&2X)u#D0)eZBi@-0kUIN;Jyu376rc?wL*IZpdde7+14X~VkHKli6 zy#V}apB&73g$j+B0Gl!EyY8s!BN&diz-E^@T?^BvQC>b(!(u0hiKLe_3~3525-Cbq zF33kUW_@=JshzeZEOSDd%9w9L+Qh8ysUhZpPnB5%T~M>tey$}3&G(s_36-ch(oPU# z0EH3a>qRKfG}g;%fy>ANOj^$<|4@ZNZ&1_VBF6?4Zo_S1*pS9e<hc&qBSxv~NU$>= zd4HVk!;xTDJWfEJ=5HrKJF3(w66}e`i35A%(QaSDjcDh<@bNXr5A1`cjpgq%0zHT) z++c@q{l~dAK1Z)_mm%&brynN)s>T|P=v#XiOoaGyXL}E7v2&umTT}cX$=TF?E1XTZ zE^lwledIOMUQAkhP+`Mf7&afUB|yanC)zui=l0GWAOZN>?Sw}jQ2DL7m@&FOSDANO zX4`Eu4+aN1#tC#Z6;`OpIjqADT7nMq36;VXdo2_L0LvZ#svZHr)(Jo;Yhnh%^0Wm- z4R6^2*~2%25J_Lq22a3kQ39u`D$?JZiPbgkb~;InGLzFpT7emX%_X9EJPJVqw|n-N zEK4t8Dqtxwwf9Tu-{Uyt!Qa7g%Ae~vC7ePTz{#zw;vj{8|GPU(nGeOTpT=$DFePOv z9j55)!&ZKbj_LLFE^)qT&3e77oQLS0^s<t%Frkag+i4{03Mad%3TJRGQm725XuhyI zcwxDK<Fx{|b1tF+lI*i-0Viq&RL(`P#X=?1DsdB`LeFj0fRi=+m2;6<;cqw>S=5K# z=OPfcO-!HD6oz<B870m|AY}ix&P5=?>;&U#Iv2t6wb{AI%r?$NaPL_VzLQYpTx1Hw zS|q|o3F7rNER}PSH7!$V2CM>PXH9J;LEKkES~(Y47Sco;D@{n7BnaHYR%vt7xron2 zEz3Y1+dXRuf}ybfe2--V%S=EeX(G~2@M{1SX<`+KB|@^JxnEOaBTK9jjygUXdJ`KK z3){UVU;QCr#7CEl7qQi<Z}%2cdaimX7cxk7yEk7u7ny<d>T>aXq{n)V?DKJ$$1wm$ znbTXQS9ADKXm`lDm2;7W!sfrGZ+o~lXxlj#Df7Bg0mk<-uY06cz;@0>%DisV0v@du zu$^;}GPB#XfX8YD{C9gU0`9AcxA^~`i@>I~vrrq^vpE-ee+|oT;aubcHKf0#bCD0$ z5I3ER6uI>8?_6ZjxU`*%ki(J%YDEK62Ftb$k{J5`fafAbYla%1{&a2FwmugrbLkTL zDwlq$hJNdFkus0o6#Zvv=(j!>DRbye(SNpv{=b)VkzmN%Iv0Uehq(8)&P8z4Aqiw# z=OXE-V>{;}p>4j=MGsTe-KfbKB1m_;=OU}Mp{tyWP@TV}p!}U0mdd%vx;ici$~Zv~ zTiGxTgH+%(Roi!KNGs<eI1B)TN`mrg6VfI@`Fl0QP3Iy-77WxOC|gUQyJgvYp9N(? zB|$mTN>~iQM~!+QqF9S_5q31RaK?fInB=<vDlB-eASf^UIS0-%Oi-pFk{I<|qo9m) z4pHX}lKDeTP{tWZIu}{=bCIby7vWJyL4iCCb(5^#Tu@$6W4eAWGKIv2bCIb^;`#Eq z$kJx=@{em{S2-84gOEgNv#Lm$6PF68a^j!V3aFfmObcV8x|v)+(hY1{z)x!hRL(`Z z<pS)Oq|A*sE#POh0-DZ6fHpMA)&$y~f!O#yYmy0-NP13{o3^x((KbW+(jD}n4&5kF zMjj;#V6tpSG@H*wa0o)3gY4p*<KisCsF?>IBI{+8Q{Vrsx7w-&&NJenM%Fk3No2j& zGV13!hqiW$KwBW|#lbRJuVTZ;PMSx0O`CMi5nws}N=om&64^`4dU?C&B2#x%cleca zktOuamdyIj8kWkr$f9~UO`!!MMWdHC(`wvRLs~f(nHADBZRVPgHZki{HN;KlB0v|^ zY_*@Ya}mDJ)J&*E&5?G3?F*nlz<domN;?->QVaZCB!Efl8U0(8k#Xvg&P90aG29l0 z^?WX}md{1j^0~+w5@6mDCyzb+Tx1mq{9I%e30%{$lFvm}kigGHR*(R^7h&IjpXVYt zEBYVeTtp`!>0Cr7A?aLXebaN1_he!%or@6TrspE*2xNq#?&l&b>&(tYR(8P6WM9F} z1a2bN_MOqMAE%BzqI$eH)Qf(Wz==4XUF)h2hsU}pL!mPeyr|;7G1(&>Lm=rO!Qve$ z_=3eiQUoS@J7RNF;gU?@$PiAWrnKhU{id+y+x<Ax6Q9_{Kb%eE2bxJ(a!9;`6FOuZ z<orWW08V`T;k3dZp0welkc$)kOkif=5B1@@IL~m>hBHQ-KLR>_05LH!fk*S<VSALv zko&0j^pm|fgG55+U>uh{ShRNA3UUxnai%y>I8!u*<n0RmB5Pk{9B%K$x)K?2KFEVc zom!@YMpWMlVWlnQfe{=&0*J#$#ErpkU-9G;$C}vm^YHN?PZh<9Mkdf<JS;^Qp+9&Y z$yDqHDD-iLs!kr6h@Qn0y0e8!;t72ivL22hc_2vV(VcPV7(Oig@_0HrtUAQKy^&tB z!@L%&c6h_UZB-|az^%EY38q&D>&y`_b|O4-?B$R8UB+A5Tb^0Z-h5(lCV><y)P6^I zA*NAjR#e>sCwinCso*=_Bi$&Q$L%2KUXNOP_||6+-}>y~+fkc6eCxA^Z+-UgEoTp6 zX50=c0LhYIv4^<b=F4%+5FA6_jyZv-{~!k*JCm&48-^FXoP*qZNl#{^ZhL^+K^d4u zw~IX6!=RA%uqe>!97IOy;xRmu>5GYE2Znfbe*3{4K1nbsoq%yuAh3X1cj8SyXE_d& zXgsi!GjI>F;gyL2ph{YmlPwIP4qyr~=XNq3zGiU&1`ggPJb88;=~I}rBXv<U`V{dG z<zJ&m(6%TJZ?V%5vEdQR35hL*Uo(&KQx}8A_7rGr;K=6xfxF*E8Y~@J>*PBA(H%s^ z18je8JjaHAV1r*^$w{ybPzC0}M&|qLj(kr9q5FEFD9Q5!$&qiddUxQlZpz|w!*rvI zeosWZpPe}6drWAMn-vF>8I2$QRdjXq+uBl0K3>COD!DAeiqRx7d6q~q+fpdWCa0(q zHKY|qoKAvM5jQuWY!Z@B*3dR7;M9#i`w_Lw#acX(iKFIt;%bN|JN&&#`>+IYV&!k- z^ME)QY%|4FJ=jZ5y8<|g>4ynwM~W~;aa94PbX$6XP=?IPP9M{gvu}^mwISeAaMosz zIujgFbE(!Yjj-B*scZX5$2^RQ$wtw<1&4M3!CGue5Bl5%UhEag_gCpn(h^(ZVwZM@ z@JgYS9VH<G2GWB7)A^npKPV{nqQpP0jY~zlw!9rm{F54%igs<OOo@w5i7DcB6D7{p zkXE#7rua{!NLK?6X$ff)Exx6OxJkPvS{&sF$crI}(OQBKJ@I}b9Ydo61#XONkye|x z04kfeMG=&iK6qAI{rT@4c7<w;0dXG9;o!&M`okE0yue`x=mQU{;qkFr_4x2~sIFxw zsvVGVmM86;aGGd@a>EEkffTK93s|OHkY#&#QnZVO6Dy?69jDxx9+W%XgK}rG5g0~u zGs^vo+9+1^Y*VBMQ=S<Ymh`B(kPn~VSHoh;v_w^1b$H^Tw;GL2MGV>|!d<B0tmw~f z;RvJ>jy9ldBHQ=Z&^Bq!M7H~lY>y@uYOT0M^o6&1XaVGrMXfxcXwRQ31Phl9x1@y6 z5*xyPPV^c;&}+a^h|}wI(CbXl>r5lPPUExabvk^F#E8YxXM$cG@<urn1)d?j-bi*@ zXS6po^V#WbQ|o7IgI7_E9RU?=MXaBzA*txa4s#?DtsVkOz!65GiBy+s7%NJ#HZdep z9jjw(qSVjVur_JL;A7-w@2d7TypSxNXwx1mq<M(^OKcGCJ8U`saYpLTL6;5&l{iJ; zm{edlaz`lMe?u}1z9HEK-;mT_^e%Pv*R(e5BEM;gDbjB35og5i!>oSy`sTTXod#$- ztbR?B*wX5E8&<q-89an71Z{)Gj1f7y!L%3q6YNkZ-NXjFXx;0(A4nUwbDu(W0y_zR z*f01){U83|A7DTdY+tl}rm-)cpx@KR32Op7Yl!dID`_X<+v_gXRaupV5PRBIgK`ms zi%^*OE>valUt}sP>{DSTY)UC?dN}+G1BNi3fp!CE^G=%yyez%c4u~%?8~0-iG(XV8 z#P@sGp5bO_;K=6xVYBqkZJ78r?Tl)>qNZ3WwNNQdfl|&WPD-0XwC}H`8Um#(R`yr2 z?VZYjQf8`V+sC>oi;pR@z&*AU|71lIQ|}V9qY<K~OYCYszf1PMwY^!BR4|#V(QMxf z!5gKe!b9{-u?@*<$r*31h#SXih%0uzWzj$)3<|2@wOEo_j5$%mTQTRw@hkA8p7Euj zgjW{-mHM8n;jNhQ+5wxJ@gCw<$OXTymTkQ8@FsX7M_^;rcRWLrs2QM}@doH-yw=gT zcytqoJh+KNo5ePP#W!tuxj~}luef*W(uP+bOxwt+EkGDY9m#<<s0PGiaZP5>PAWxQ zKhSwyt#>LmysIF<5{4#XdwmT{#fI0+Z4<FA5h*IWx>?okt0Aq}@GfX>B!XCMLfW*p z-(N%AWWx(|vAA397tC&#@3A6qIM4z@u>z|)k=E5%ND^->88b16gRk;kob{_C`0vc1 z1Op?;)qz;(SA}@S_tfQ$3vzXbeA_M3><)Q3nk|TqlE`6}awO7EL&YYdamdrF5S*c; z^fO`S%Vm<~L_UYS*=fhV?pkLX+LfZ!NfXVywKfVBqugnglW3+3kku$5Zemam*AQ2X zao2?>(ai?uNE6~JhkB%jxMGC6T1LFqgt&=CJz7KDWPA&BL6EF6H_D<NzRv_n$VbN1 zOxBH%LzpEpX6lSLk;k?w>iTu=T%67WixUe_K}LyP6e5H`eI#Q7@Jx{*MOJE)0`hz! zx!H1%5r0=C%2{uM5uSEQ&eN9AJT_zo_(jAHIeyiCo%&)@3%JW7cHnI($^Fx$@5a^# zotJt-F-uBz)($YqX1(WM)W+&;%xT|O!%{J)ozn;>;-7U=+BD3_LJeufoE91jbX_9+ znI@!74D<ap#7*Y3Ko|6BwdW3*LxuO5J_*@iX^gPBQKh&`)-WMMyzw!`8>%dwu$B$! zymFEC;d21NFawTqT+`FVs>tNa+O-62B4UUr!I)z)SjesMsz{oM7-Gpqcu;*Me(9k| zHk@59qLfUbi=Hi0=31Fu7FWV1cKKv&3@ZBeo7uEPFgJmW0k0I%HZjYk8rq6Y><vVd zNan^KXsfL9lQpyz6}&dT2`#p=wc0i@%1_nMHmTr`BsxTOuWlU{72;(kLI6P<8b<Zq z4N7NOGBFw)sl`Mrb>@u*J6WJWsPug^-UZ!O7-JV?kr`t*s7Xxl)=W%eMtck)LN02b zi<EaXr)?WcgvD&8x1*j`6^8j^Vu(vTQO*o;4N?Vmwy5>m;Mp<6Z`8)5qJCdQ<+qd| zpRQr4sNWaV1&O}ri4?V7EQ%Rb;r5#~q!so1tdJ%$q}f~zX%j>IRt<5J`W@(kAzJNW ze@FCupJ|bh4VE*+NSkRe-uRdT1#IJjA&v<rJK01*b&3JO594DL<NOdtmg0wFMfq{e z3lY9{CbFr)w!JD+WZM&K5*1@1blvoI!<iv%1v7CXFoMxqqRQ10Gc3A&Hu?<ypw|Bt z#rcLBmZ$|LiyGJx;wE<Zk2S;<!_-wFP874&3vrbp{!<NcMWGJ6E{t4445P++jhk5F z4{L~<RO&z%q{u2`4K&j|zR#pcC}>1Ox}mhImNqhGx{NoGM|>pmWd0a$oLEpgjP`;> zPJ@ywEOHvel3C=m6N{1GRKc)xsTJ>vG&vRN)q-vz{UVyDiBTfPZlqW3R|~9ip;cm) zt4L_9a&_?RSY`K)q#AOaOhtn}&rvTf*-etb9W^W!75bb;EfN1Lk)qS*H#03gRzq6R zqE88FqR*Koq)n`HqK3Fhkq&f0pH_Rgud>d3pXrlO(3(av(oSUAQPrGkWm=mBt-0*D zWJuY|iB|>?yfWY@$5-+tD1nCC%D5ygkeJ~ja6>Ikbc;y902g{px^>#Mx^8^|3EZ?4 zfkCl9DeKmW+%)U$5!@PaR=Raa3aEq4LYTIJ+Fg52KD%}N3|`kGv$k^l44ANOqGUIf z)a{!o*<pXMg_2#Wbt&1Y=0~OLN_HA=W+l5UM3cSf8oz~-eY&cUeS4<Bl9HVmX})Dj z_UWO=lQA5hsZX~AZd~LqSyooE^CjjhmF!bPJ(TQs)2c0Q5ga(8%ib>RYy9;mUGyIg zLMF~?x^DMl6+JX(QL+n_U7p_$Q@8y*mNOSR0D^JF%5Abox<l$FO}N9>W1t7n`Pl8y zl!6EAJO#9OkTFo&q;2pUvpOvDG6W=HAQogKLYge{nHXu%XnCM?4*vJJwI^kOooC80 z8W|#W{l<>hZ_*fXF)LaDGm=>&%{s|%pz^gE$*|Fm@V9H@=;YAL#_<tSL*=ID;>B@w zQ^utj`O@H3O%x}(&FRd*P=m)uS99~xjg<JvtGX~2Fq#{}g~RdK8JT)zpOy}Oz_s45 z>=PbA`vHj^3Tgw==m;7Eln{0f0g{?r-wp%9dauH8aq>t!sxVnQA=#h`ld+Q^7N$cK zK`bmTqaN(Au)PTj3p*!4ENq`ctylJq#-j>5H$iOKc?n`+&qxpp!*xokZ%c(;kRTRz zVS-rLGabUc&EN^jG@!yRN)QXXI6*Az63%onkMX{JW~KO^AyCO^!AcPaYlRC@d)SUY z6_ir69nZHyRBghKbyJ2CX;p2^Cwrtjgo}(W>Fn3V+s*|!x3BBF7*~$RA%yyzFE7H~ z<8iX0QRmD3Bs>zGNP=&k**Sc|PE`n9*g159;-TTapfh&D?Bn?D{7(A>mOKCU3|2%G z!*A!Y2BH{3=dx%~453k+WP7H4EKKCW59hEjkqe={EG*T24+|5;@Y`;0wN-1EH`kz@ z-cEy(>3kG9j3VQC2MUbmAru$SgD5PX2mJbW7OR=bhklfCn*=06E!5^V{&coO>wVY( z?`w~?&jokJf{v8Xxazw)9^ZMwO~b(5uxj6f@4NiF+Kcb#A3R>?Gu4XP5Byx{dR@Qq z*nZG#zte2%2v@q__kWlruh;Q&U;LoZ)n$IXy#tp!;%44qyU`C<`q2~@r_TFuOUJqA zo_n6I=D6U33og9yna{+992Z@D@x_;1f@?UQ^{i(-TQ_eUIB?+L!OJhd{E92Ce9m*8 zbJbN>jg4J>_0`XP?(?p>=9=d}|M}Nm`+^s|;LxG#UiiWnzUW0Se({T6@{*TcfBp4` z@q1ZX)_Gg$A6A$4<;t{u1(){KxG(T@2TDd?46&*PfRW4q#wr71JZse(ye7J-7@zE~ zu<Q1SkmJ49U$|U!wpe5UDlz~S832m3d*59K$$;{79h>q5pgg=hKII8Oc>++L0MxYg zYSZp)ZkqRrCWUnQY~{LHy=BSjo}Ae)@Oe4=g_+U1#>^(#SdS|~#x|X?`JG5F3v7#J zY#DvdeP7P)bvfK4cWTHcb$Kvj^SWFg*f0jgmWg&ME%~FI+w1bu-JSje1G@6>#h_4f z{F}U|YWU(sZrdN%@DT}=rRml?U9fx!ZoPXUZWpu>2sA!?xt^)nks=rLNG`~meO;gf z8I_w|&;5AL?ae-9&At{DyVje1qgStnFJ9!@yrYJXND!PkHG2o|KD`>)uj$?FsAp<+ zy`cBxg1p(!+uec5$oR{E`f9KE4ZZp`3dj|IU&iMhK_pkVZb%g$V8vey>{q3V&sOOw zzt9DC;tLf*`%o^(EB>4quc%cT{y>+jxtMc%HLtYsda@5SyWHD-Wc%&@cnu+uzz{FB zTXgynqCb!tzF2K|e$lhxpUx$D!`nR@9_VtzKbv!V!!NUjf0;F-5eFye;q5p4i#3F1 z3350!T-Q=A6a6Kr;V~k$Axfm$^{&ZP|5`4|8-8)mh6nzf`{|t98-9^B{Clh!PvqI~ zL)&locWMajSpQIJ__?I?ZxQ_kso^mqsp0uW&k_IIT#`5Z{GJUDbh+VwpL2V|pJ5IE z5o^ZNKsJ1A`wjnL4WS(=j-`elV#9wx^tgxC5l6+&q~Sl!C3(Zo33T0FGbcBEBj@&p z@3n^iD{ICh9X1^Q;=jycQvITYjPTbrgmx~}P7S||4gV$4?@SG!t=2TZ=sDsOcO<FH z8$M!O`L2H8rly`%-|tn=2&o4tNFcfDQyHQ6g{k}Zr>cLak99vz{DZ0Pi`Ba47hd-$ zI~R3tF3RiP;-E=VblIvPG14N{J{o^tZMdM<_O@?;O#Yh7`wsLE9N~ZEoh`P^6|K}A z-7kfFoOY?I#>nFx6Xv+hHkZQW2go=#kR0{pH&CMQ)7Hg#65je6RNizi6%}>O8yHmf zqCWi4gxFVbS1~M)Kb}GL*qN_H6MSb*dK=&9lNBBsV>g~BL74X)5|AJqfCS+HAPBQ{ z-GUE?W2vmJligJG7wt+#o>b}vMyh?F&mjTcqB?*Q3h$0G*;qk5_h(hgpH(M+_9_+K zN(@7#MpLyKvEOoy)UaFH1OFLRd=7|sgngxv^U7V_x`oPxt6N783_`+z4fuf_<Im7^ zqQIlnFg*#?AiBA(n8gMdCzQ8oPYtEF9*)!Ze2DW1r!qJ(;56c`*}Rh;Zm<0l@IXJ< zazpdZWm8lf2M9T96iNGc8;O6Rg{^RFldUl5=mMuBZcnv09p;b6jXh}S=?V>TAjj8? zhS)<v8_*JDU=tG3n4kFo+sS6)u45)rXSOlfO%-*DtB&tLr_I6LRUcf8Ukm>aj_)fE z=LRMO=@d;viyMZM$IJ--AQg!k?-0fm%3O{qj<Z^wHpg_YkLlpnW4fm>rf;gTt)kkt z&b3x!xDwYQ%~sXB6W!)?BVwkb1qREz<;l<*S=XHd1%flaD$Y9C*9X7l-Zb_7sHF2H zo+OTsg>mrgo6fCF-ecXA!|!w_a@OlmCFMj;>11FtGc%bq<uRF0ciP5$phQ01;qBEn z+Su`N=;P#)B<=@2<70I)(4D$J;@sQOWA0(zouhe&S;u(?=H0t<)+(LDxjBBwJ4YNT zacs0IF>HSpZ}eyBEvm;Y$GWKiClMCF_K%jfsW_;p^zCHM`7LAWG$!CE6da`ri1Oq- zo^yW3a+>&Xq_XIq$mzUpJ8bPga$taybbL2v28d;#a~Yx)AecX=9(1{!g$H*CfGe^e zCk#H`9_Fz^o`<8Hhn)Z9t<J5|h%aN1J8d=jbY~?4<A>@a?(B9qhCEK#niuYv6ZtPl z;VR4y{YVQS2Cd^eckbK;<sh_!QVzly|6E!-x{C-FlbZhS2NgP@Dd+e`=<j%apE10P z(BNlSgI9|BwE)Dc0}%NH0Qx!ISt#ZSKzRaCo&fgKl=XCHhPgsafRL9YB`p(kd|_r& zr#tfmTw3ZwW@cZh3XVYULj&6O0xIM=)lEI}O(U}NNIaU?X~tlVry1kVs=hx<nrJBg zaCNykl?!t|!%a+4UP!z}d}e>*Gn_9)?-9b&!FJR*ni+dzku4EuJ24>%NY0(|B)cb9 z>77?n(A`U$%F~@gDjG9w{CrRXc2s;R0@u-K0WeA+>Enx0f&-!i<gv>C=l=*~lu^zh zGDqh%9^vp5T1Zx8vntngI@k2Uy{hS6Y#As;NzJ#5!`A73+U`Kl+1`+|`6^&SC5nWM zc5vYF&ZQJy@%QgPbd6VM7U$+^@L@3icxUCOPe!}v0mu5j(Xer7uEs;PYLJ0SGWp$9 z!#fx}ZvZ^6B{ru8ivu!n+rc5dfe?vBN(>JNE&Mx>HfLgd&&Gfa+30Whuxc^}pwSON zqaT3J3V_8y77^)19-@bH-+b5Rpcx5ut1gI-<b=-YnUIvz4cZqa!ROFR&4oOc^M2b3 zp)>%^Hixr_LE~K<Y^MZp$zDADiGk8CQPRxLKL7PomgpfSuUEJ+tCS2SaEM=7>5g?% z25&zz;1I2nZn8(Z>Y?h1#&pDJlg|Zb6yQVXoTe&2O=Ub!Ti=@e1pb(j^^Bx+*1h+W zGwr>UVT;~tPFL@}rgXW%+wZ-E$CserOYd!*Y44>BTl8LYx_a+5r8}G6OL)G1=Cn7_ zFms1(;%+u?f7R4?qb_a3GPW`wk9AXqQr}hQ_he%__KB@(iK41&<B6Q{8^un*jydNZ zAFcB*?LwYv=!9*tukIVkcE|fheMcttm2EhxZ0T4xWhiw+b+a+qBVC<@n((o~!LMAd zI8tU`wnfpFj*08sETLU3cBVFT33*S`g5S_j{hWe1OcvwM><L2u+ucB*6weEyfAPmF zsA@mN?JE8DVPjDHJ>z^>5EOnFK6C#?wco|CD%jqSM=-wgm~U`SpR5oIJ)6hpvvc}l z)fVztH)U~hF=yzdYQo7L2^ULV?6b1+(z|4Cye=Cty-U`@^!J5{Eb~IPgm?iOH;=+4 zzO!4aisFWC__L&OB3GyRs-abhEU6Mp0)^b(q4*@*lY*_VT)@d%0p`J+Fy5j`AC;fV z_)|dYP4Q3F@K>Cf5y~EQOg+{nr21QjZB_p}YxvElIU!t?d7hj9wXsbPTPy_J2Xee| zFLykZyxbA(-0ZQe%?M_023Y~Rm%9x>c)2^|UhWQU=H<T9`=%;beeZ&y65U74^Nu}3 zjb6K7Uhd$u7!4m$v2(lmuOboOSL-43H%=qGDk4oCwnjQdQL9A{qb7U&`)i2J-#B5i zxDKhD<tD^c*QEz)NDIEkK4Y9fJW>)$feF0^laJZ`f>1VxUq&K#>_%*R7>KEf6ZQvW zL2omE87A=F(TgdYyFoDOeQ8uMhy~Z)1@$Mpk#_vru`+?@;ah@bPm1|c9@Q!kOt$H@ zmMFkR3pU)zhiFcD<Gr;=uQpI-${RB{;>+0}&u$hD|E;yLF!$^<z%wc)4e*q}GV>`F zP-Q+3*9tJ7;)HQSl$grv<^mG;*|dO1Y6Y0PaVlV~T)?`(GW*%IfJbWu6kLxJxdLr? zc~}z=(vWn(_prJq={Xdnr-oYhZdlsLsPPS;FupzoB9D><Fe!KTL_$-jjJtO%;&B+H zfD3cu0+NNeK57wlYq4UBpd<PvImzN3`OgZ%8}jP{n_v&cX`vQCzmfRWGQ-IsJ@&+H z{}@xk!Sa+?)L6{IU&O=VBXXXRbKohbUr6cIc4jPePmuq-DL##L7Ox3z@-cf~ZFCF% z-(<YAW%8K=s3sO>Rihu@LJe`nsd+|t5}8gnA+EB{_t%gXT$&RtinyJ1q7;n3Mum@= zbrQ;~6NieyI-wRdnkZcXA}Rq_t<gx=$9$#VS?5YA796MnR8gRjTh)7NI}Yjz@OzMn zgXLjATFj!6=O}<^QBq=ld|_h+HEv>@H}mzpQpd-jutNHBaW@(L*f_5jMK@b6vt;#T zZ8*#oJaMxdS$rDe8wizoX9<0kcP`b?7hJ+gn}>-o6?P<{Pn>g8^q;JuH}B?D-?0+< zLkWEn+cri2sTz87dlvdctA`TXRQ1i{7cVo<1W;m`>eFz1NBiO8i+?S5fgYUbEwz%^ zV}(&7eq7z5J^19UJ`?EJt_c92_69bI+n2;0;n8k?YfQ4>(T>}fG#leyr=vmo;*dwn zq}cU<pEqsiUMDyt?_gKl1fOU9E%Zk4#t391v2rWk_;hUqso5<M^op9B2yhJ`zt3&O z8^2jYY(C}*lf}bIgt*j%xXK&9RYS_dd9Q7vw<2#uDZv~0n0X_i%p2kS9lQ}&8l4Gm zT!bM8tAN{$;-N?y_yTGu@J4fnXE)M^(+)zAASlGsmq}z^sUwdFJ%Gaa6XXBO-h041 zdQ|y>SD$VNcd(n>4A@pT!55p*FvHL@&ogviV8#=e=bg8~o4vbl_j%tYZ+yI6_l(^4 zx-EkZ0vlTn7-0-8zzqTnmIENN$Rb(}fXD(2h%CUs{!gm-UESM;VVL=G`QiRf>D2#J z)mL@uRDI`E$=jL*QNSI}Yw5}!va%>jz_~Nlh1yX(`(U1ayf1qt^c5peSuHMrd(TZK zV+|PzNHyfQG66~Gd7TkmziM~^PDjoa@a;^1d{lNtp0ZwW0%lBd4V;#oE8shs0EwH9 zwIpECQ@QX`1w@%sLsGielte|UQku6eM>AMP?jlA6UBs*emQr72HUmhMCIz;eb?IZ= zO>5F+NZbs4fapV++MHBHUG~7nLg_LjzvvQ+F^F*=S7i`&fUiH=$WSsK8AFP3M<cbt zFJ>w5*<LU*<{vnIRiJI-r<3Wd`}eD6UP9Ter$H~g(Cta--i~~#a@|KlvR(J-p}DBY z>uS)$8L)iXaYzzA?&P$~fKv^+l7Z5fg;awA+4>?q`tC=R*P3l?!|17OxTQ$?!MYYD zcLTb~NN3au_G>r|?;b+=b<(5m)6gS=S*eWFa(wiI1ko8uf$PDqs}e>ht&Wg+iK8=; zE^h&|k*f%%W513QxmO~5j!Jcs=)}!%3_&Ow&W$^XdWX9x1uQU;QBr&(rdyu3*b%RG zy99pcoff`}LXU9;JM~K}({Kxnp3#jvC-(BiC?_C}4X3m2ARsDUpX2W7j*2aOwTi%D zjfco(T%oees~lW+ArCA@PW?W_$KrDyw2B@U%g4iRLrrku25*k>4NP=|tOWYgsj>Kt zT6qicNC>;T9g@ZZeHO)Gd`H<?fGM1CAihjY)rk_#jrWx9#&&$C(`{S%oJEMdrOE@M zhwsiF0$(YPEt3#1s9!8GAdzHo;x2yeNQ5ndPs`XjUgK-V`+tr5@2}zg_kRw%?~UW% zeRo-+-FMy?m$?@2Pj-Si&8a5Y1mm=11D(@k109<Ym|n0@)K4?C&z)|huhv}=j$<P| zC=3QyGZY}tez|v1CSU^_>5T7;jk)+oGW=vC9SaSV(dqaas{{Y#VZHKSoZ%-M>0$|% zY^1kY@Y);cu!}`G%g#CM-EbovcYTUh9`jg!z#HkqwKvk6^Ec9`8{9~Lan?e~M*4^+ z8}|mrAn7GU2X~fjq`xEsPBzkM=R8<h4a$Ji`TFt<v}_|?M-fk>km6Q6(MCG`;OFiE zm~=<HZ7ZJ9;)>L?7Hp)C7R}xy`vL>9@3QHNr=4!3<0XbG9<DYuBgUTCw8UU`9a4#m z?KIg)w>(@bBLZ`l3(L4T>%=WyWFuYP;uN+Ey*p(J@{&nGswUn@Zw1R*^VD^R4Y#v* zv5}4RSouT(QswiCOu$Aq(qrv2SHKOKfQ@XVvjDf$nJeIxnSg(?8|l!8vSRt&M!GrF zza@LS8{0?^zrB=hq`x%--q=QZ1e~hQTQbnHjr34;{t6rEZEXKQKVl_H%1|EuNp7UK z#TK`1cdm&h$*Kr-gr~Ks&uAlk5?WU2M*4fR*RlRadaOGm_*8ekFN0ryBR$rfbK&2g z!LPrO9_!7y@PiEgpUg(O>B$Xlq+>Uf)#`>e((A{wkv_A%@r`VxPmS5Oi*#E(+y=5E zjyJTCes}f;lZ|w2IAiE|vl67J3BTMa)s6RLz{y7XfPvjwt6v73>c)FB(6Wv6P&Yz~ znU(bDH`0mnW@X=Rq&Lj0+?a0c=|+0PHqslZS&7~dn3b|AKIY0}!<*WY7y`4B$k?px zFt_Cqvr+-HAJ`6zye({rJ5ASSMoU+Al4?m#Jx=^adMnyU54Zd>>+&1fD@iuen_K|* zo*PWY8Zr`)YRGS90+Nk%>@9~qwC)ACwe4I1_hkZ-jr2(@V9I2yCFctGRwkfqBOS2l zsa$xe0_{zrVwCQ8GKsQ<jVw(#$4q!FBX<!af-a&P>GDcu*dYYI5y?h6j(o+snX8Ij z^VChFYa8jbL#|9^8|h=+NbiD;3))@Op3Xg%Yk*C2=cX~zjda==*B@<UC>f88fo_bq zY$M%mjMsQypuHIL_Z`2D1XiH90wmO+z2n(P|7G@elZ|w2K8O9Y3z8DTE>o&O>ldb* zM#)Bcn}OZPYLx+}8uY>pv}_|C$krF>(RV+hyw-$&84N0ZujAv}NFV!+^s#NE<K06j zzYluUeHwbyjdW@`cqu^WR(dc}H`0yNjdW@CzHOu%sT=7={+4c}%K^5(WgF?dbxu2* z=)SU@&65FBd`_%r?vjo4SNl#EZKUfy`5rojl(J<T>2A-QU$}0h>j|=Y)C482w~>C! zW;n8+6gaZOA^r4)4gbwKANJB@Gnxid5cZVE4Y&+JL%?xA3A0$Om-8*jcL!>%ef-EH zf>QNZQA%}(AJV2B4<}01o6m_?Z$76~y7`=k9p8LTM<wfUgSkse8UN6T!9VoP1;NEM zgW#VPe1O6~ban$iyU_GNUte&jBmSWs)oqBq+lwzoEBG`;Hy-0iM*!Dwn(TH`v=`uF zK^&DxkM8pnekVpc1Y!qtirlS5pR%@#c3i>l{_~VwqK=YDt}XZ$wb|uDG$5WCp7T%% z>5^o?QyB$(56)O7!oEvwF8MA+-?<oPFDgZj)%@XWJ00S<f~(fK`S64Tl=(vxj(euv zMc||Hwh#{*2!z^G_DzbS&v1RZj3jf6r-5`-KON)|b4N?Ngpau8Ayo4t2#*-0!1f=a zI7w*!1_c_cUHSyI*0H%CrL$Rf#slY+`QwHL3wm49p)agAZKOmUKaDS1S%WV<=;5L@ z_;ykCXpxVu&5trg;!y_(rRo47UL7Emssn^lb%0PR4G@IaAHthQ2c`Z4d;gFOiHk4@ z@Tv0<y8RCHBKXnbD<pMde0$}tje?wr+&ifciKDH3RplEl4{?{ow^Bmkuc4NYP7MbP zzHnkZ@h@ti;Mf(2->W^9rpRqn9P-72>`jyjPclPe7~<nC&5rhgmq#noU~g?jbxyE> z#lny-`7k)84)j%b3-kaKfjJg%FT*JrvfqrRJX*ui7_6P~hzWo@79KHAP{&FR*uC*# z=ug{%{!|<&{~r|ezoveM50=3n&I-u?_+(KW9}xX*qhm%l@JG8L8tGH7<Yx?AVVzdP z!f0>iV7+kRam_TY_i){1(S9!5In4rn$$di{p&7&Pg`#(OLG3^3t$HZ^W|(Z<h^MJr znUgCi_4|<>JAkoYYFA#A0VkKf)EURwmFJb<re@`l3^Uk9pi#u*kXu0qB81q&oF3_t zSQMTf)!IWN!Fbz(e#(_v;V#RMq+6ljsgue=nK<z2j!v<c8!UME)$rwyW-#{Kp}q`x zWUT^~zSp7)&mfHwbm>En@p56x{a%<CRG*f<te0f<Pj)-tNsL0eHXZ28nyvS;F3*5v z$HTq$ehl0z15V%86&a|k*|~V}+tPdNA;sPnJ*uifjffJpLG^=wGn$xJUQ_eco|%U# zLJ3%}5aX<(x<)z%`Yt|KXg-=i!7>e<wRPbtt%&0@h=DS#*h8>-r6S;G<7E~jg0(R5 zP(Tx%NyQzlLOxUI5-=&KOK{9V&?V3hNvpLX6)e`N+{(4ZSKbBbC<Kl1NuWB{b;>%L zy%^c+aBsUAzis-aP4!r}8+9^Z+2e4)&m$PuJ<l(JO*_$RGRU%B4Ic99@c%s5hw$XP z5D4Fc&UYOMr>4l*U$+BscWIlGe>?0qcvq-bi`?#+OWKbDVDtwqhEmoknKWMRKt?1T zsB!!q=-l%Da}G_`dG{F~PxrYadnK|J;okDu(OW*N<SmzZ2)r$WO*SIf!`*eB{Uxwz z=XrYuS+)&vfI19sFW|{<LV)lcX1^$Pyk)qpV~o;Z&@HL86b>Vv>pc0+rKJsxXQ%=i z`<rF<;688;I?kf>m2)VAB+?AU%Z@E1j~jK2E=50!Kbxu`{Y67Om7?Vl`|i=bHCTPY z`is^<)D5<nWfpqmNx2STO5}wS3_r|w@PDJJ4aGPMC!xSx+ZL^Q<Q5s4Ds7RoDOlu$ zx5$uviv>;<g~C5nXZ(ZzP`l`I2OBjs@nTV<m&VWnhuQ)~Axo8r(EW}kOq{;MOB$#t zIktzsuQ5UA`Phy@BekQx;QL3gUa-S_bi<$_cdcV$rUQ3)y|WaqcQg%xyx$$A>2^VV zt^3(;dg8Ay?)}CG<ad_@y_dzjCn4`;5$_Ku;JsB6@ZL(yU=Db1`GEIM>N$D1?y~6X zlYsY56vsZ{fyil2dCYi(ahlUw;()|y&V+7)FEXKj4$bv3xLl$)gf_G*N4ekKl&4Q8 z-ORGk7jF6Q63~l$<rFmWwL6zOq$_<JA}ArkBsKevR4E?GfD<RXF*le)hT6@5X@4$k zfr~TD#IX+FuTVI3tUExK5E5u#Ks@@8qUsAz8lg@#q6lr>tTj?MY>iaMI%(l^^&WPm zG(ugec@gT^s67E%jZ|hD0@|4GSl1v`gsO;+Svx}g#aRm_j&)P+lCIV3WC)`EJ@FI} z;Ie7+B^hwySSRkKuJetlOQ*nTAGtgOEpw~`vdx_I=%-Gi{M<R#6%mBG@FDu3!-YUs zK$FXqitq<r7*XZX$KaX9{f5Ga^kLP%A_BmR3%+^|xDBc4psMkyfXNQ#K6<T2nG9+N zytRImhf8Gui4`Vq2p?{F-le=f&THwM*N7l5Efk2mOFo#=TTs49_+m@dN;`WAiAP<B z#k)7#COIi`s#ac+fhJyb4F+}nuvG?Hs#k8vkQ4VgEP7Bnhg>g1P8G{5Gte@ZIY3!Q zr1Fw+CZD{cUP)ZR%SY#7UPOvh7R$(Q(TLzJs%dX|n9Yb_Sx8WA6h=R4j_?Tcjh18< zBnjVA>Fy(pm@4s)in5QI6X-|!bwC449>UJgW$y=_f2?uH6x*&ph8@2j)}6ZJh?bJT z@9I*TV%&L4j+Zb!V|SgsZbp|>2l{_)ZFh6_+7e&5e%u#^AgL@(+3{Oj+r1?NPJH2d zjN`^cw+uMdc5lr<%Y5O0Y@LiAy|yFDYddlO;ul5>Kz_lbzw`mGP%4`HzjgG5Pq4Dk z{NW2n^WYT+FTBN7rKY3pIDP43T9!C%H?9O7o?d!0%CkaQ4It?2lq_!uL71)s&^CZi zSN1T8mA7fTx+pv3A(k0ryB<@j?cSZegv0}`eD5H{O?BOSGRVa1?HnqaQ%Jf485Olu z)4eytP4-N&<PC7KBFmZ})pPI5Aj@3b&UQTzWu>(k{TGS8FM<f(_!Fw!Xb7GLpJd@z zE|0+rSLG($%p#A8V#BtH>a`AbBoe)b?GNeO9a|Z9N`uAsOXqG`FK^{LDL9P5?Rf3O z0u-gk7KmuIX4Ju(X$M~trB+vE*Z{XzY7OIdeR^h}%<zuZi)Fksdq=_UGiy{HwXQ$a z<h`$}(?%I?x~t2$PN%`Aj5|~Woa(f@GSD&~Hh5>5PNPTPkBIU*Z2%)&O|kvQrPBI( zvG{(~X!{d|hNBJqo9=Qo(P}u-KwtL0P?_xudNwt;_^Sy&_gQ%ix-~&bNDqAA+&gcx z97|XBkTud{v6I>`)HkJi?5kPBukWcw!XxBVlYK1%UEez`11;5MlMH!%x3mm7)n;GM zK+865r)0a+IuIXZ_`j3i7FV>scSSR+&AFoW7j-W0FP2$t<7$oT@+-Kag?+x`mP9b= zsM8N=ZwxKgS`@w5Msd7?Ya6@k?C!ja4Jf#uX0I*rG3!@Jv{P^ckdzQ9qOvvW&oba- zYq!V1PQ#ItRR)}Dxcf8Evdvu}TPLGOui=RD8m@~S3Dt08^D$f3YU39@p5tT2X7~sU z*i5DRjIg)C57crP@({X}9*k5UGb7c<Oj;e@w%8#Bvytj!X5_ExV@5@ky<c*hv2Xdu z6|9Y(nM7oZA4?d(y=U7$W|VfDBC$zZp?l%@e4^Y=F~wWc2wR{=Zl`;Vuei|d@kLw3 zgvj6Axx=<Mg%G?~OhR~LnBO!pKr+elyTz2KyTz@wqO^ZK7mZ(+Y_Ud;WZ|tBxwF{e zy2~6i0Pe3yd~jCR;3GdU^_khvk5zO8wDfQJMdRg_rpmAy{71TI{NCffXuNH2K6-hn z!_!K=oKM`9Sas3k?=BiA-=p8Ui^kbes#vC5%^yuei+rW{R`Zh`MYo!t;wZY+{M6ik zs!fip$9+Nhjn>1|i-~nh->$I2IyF%ghwCm!)F;nM_*U28I~x}=oJx0mqg#^R-cQw{ z#8c?1Z?Yhu==WLT$#mm4CT!C8OP2U(y7(K*OVYl)c%bZj>p5(!+Gchx6HLDKTo=5% zEIZ$N4z=!_(<nQ+@>Oal=&k3J!ndCD?d3%At>-+E6ZJ4E79YAo6yJKz7nl>px1RF_ z=0x$W=X`-VQGDyUE66Uny_|mFThDo*62-Tkv#miC-+InQ3sHRQIj^mW;#<$zvLuRc zJx6t=@_g$#Pha%gR;nO2A25;0&vw%}{b)Cx)3e=lPS13Wx$)br=akM<06oa9=X6uK zvC(Dfauo&(BfFX$5b21Rt$d?7)`<9>%Z0*hhj-*oI6|I;o6&da@7wS@H<A=~A3^iW z=a;>kNc`+?LO1br5e<Gl*e|(`j8B07>BBKX{_(Cuhu`9*{Ka>{{;=7`_Z%J9Rp@#b z`Xg~0IvrY0SD~MB>Z!Fod-g<Ep)W1rD)iIOI0ILq%T4I}a1pxRg#L6~gpR*wcn3$c z*>lrN&^w80pgYqK_U#fSzAgKxyFZ5SF_Kel{4aP-p5PZZNN);XsXH;MPxyLn$wsew z5MF{_r~8oPLoQz{$^`n7Cs?GhLFBPzT+HnA7{Pgr;5<ffF^6d}FDWmk*3a*fQi+G+ zx97h!U*<FGy#?+PaWq?LX13}=bdT2bXnGZdyF@%e<3?n7pZjv3Tg&o?bfr)ziudt@ zip(j?l^#vY@^nMPI|yr5R+g)MZY|3n$StxpT*vb?^fsCx&e76kc$VPnc729NAf*?Y z?{oLC8jRN3m(x|-IJ}@6y&$djQ>@zPMsc<C+(&(Gt@e|p+H|4$6SdlBYqc{xOYo(+ zDZ?WWXnA+Xk-O0R^tG#P<#g4~1-;1&(rQ0p`!ZGse4+ViTJW<r{=RPUc-jyIf_cLg zoNxT33(X(r3f^9;U%7%?O?(Tz%?r|kKi1xtF=wye=kEL5TFl3+k=u>^Ic0gbN7J(G zH8g8+R~9RrFU$LUZY|3m={p~xn~_h|cW_|io##UtAc2IJtMdg}1A;%<y#y;*R#I1S ztBWuC$Gs%2_@kxwj0l@NPuL#Zc=!2?2h_F@_Z5FV`bl)D;U@`xw<~)40ra1Hy(BIA zBc$kGB5e8;PetFi@uGjh18ULbdw$sk=eVD+9C#zW?Q33;mi)m|@^4eg>4Pbie5qUj z&#KA%ai0g&lFL`uB{ybYRH0V?I^p9EytR=1Yv9|q%0zw7i_)^=l5tWuKOt=TibG|` zfAK$`KkJgd2maUtYT4yekiTU7DOB_y5d5!p$@tH`BrUpLGQL^?Htp3@(RXXneOpkt zmzYdRvmd_DnMqo7_0e|CUQp5b`gMQDcmkYv7-R5l)bN6|<a)(8>@Y1_a04zrVDo}v zpe9d$&CBDC!PY&lE5>g!>(ebW(OR@R4q_~r)U9h?QOE`4u;=&}7>aDoAr+6jdXPt~ zCR9;@Pg|PLSv<IKlH6Z<$*=9=am3GMmUY+ari*Ush6h_>S#xI|!Dc<UaB$!K+ZU*J zV`npn1);)&A?YEjb%*+OxzCBdN4gt*b-CRjw>Pf4?(0!MB=-V#z>P$95|P=p(v3_a zeXR5nx!`a=n0Ie@qe5$be2l29eRDW`Gi-krjg+5<iRC30ng3unhrj68aC10f-Lg(_ zbJ7XubscQ@<yFuJO5aa&z4x<PcOtY$r0=I#-glhWe#2eBy^BWKyTBJ{I0woe0e4fS zl54;Bk+%8`UHjd$hIX2SdR!WXx>7Ia+sX<K*M9H2e;aLlxC_<RP#h2N+V4B8kg5{s z8=k-Rdwj!#li_~2?sBYq?YHC9Za{l{p$>3E7DLfp&5IqUU-8=SkN?`P{q84?L*M4H z&7+}~TotFfuzX0iA`jPHe(eF2Uz&hhRZRxuOd5IB=lp@_RQiBVz31#OBNZUYd6Ccg zW63G=b-JB;#Pey{^j7b)_Y|;of?K_x@<49&-c7?SxYe6<3Tb@q$1u^4F3Yum$Cf9a zDBVDlY4Q4P*g^ZvT<bk53Auew(hvAr?~xC=ovK0$uJy*9K7J;}jk(ZYuB#kd9(YnF zMoI__jAP3~O7LIDq0%UUR4@7g^&tp|`vOF0f?Bq~<b=S;s=JzeUwVhXj@y;46ujiJ zZ3m^J`*<$fjt+1`x1L(x;Gzc(fX8>)wky*5mu*wOb5-VUNW*JV<o9TUGi+#L^6jks z*f(+0H}Ub^qwUJR&OO>k-fs73*D>F@O-VYoB)msE_&$AbR1#E#K2&m@_jSJXS`1QI ztfyeNh1Yrinu<Z-XyE0ir1xke5gYa!xJR2+O>mDkSqkpO5<C*Z_s8;*aq&uD?U{@V zab+2&Az(LpMpc`{NIhq4okEvVCe`<hSNps_6d~l+f(0brT!g@{(l(pvJ?cv?eUG9a zAMhp5gG94Yk%F^g(kpZi*Ifp!zqsZsB~#z(8hrZ_z9Xf4)Ec$$o#8u-A9D0-eyOZ0 z*Y~7t#n$)-z9Rd>$J=@?!#b^3&X>1d8Q%kGJ%^*y!f&MYhR54_F2g#lSI(EWUK!s5 zX+4KCJ^sG;0I$gYR9V~2yCU0Vh}te4->da9K5CP7ugG>8zZ*6JVqbmkU;h=^qq1h0 zcSW|#5H&;Yl~m4`ccC&qs<7!Ro(-_89jmW(ugG?=KMEUjKvuK^U-OFWPyM^ZA)`3( z+xtI!oW8EQz<+cRNOqVGPSU}-IXl<-JCVYWAF}4(Lmx&l$iKJd-=iLV@+qg**8JPE z_c4!s+~ZGM^KS_sy6G$T8h=lI%D$&Q?f3s+&A+Gr;WPIC(I2n*_b<-;lRtgtfrD%Q zEkEno&-t@IU-R#*zxd0)`s?TZ&9D0RFJTerX++Z<`EJs^$p}1~42bDYT_VF*`^03* zKU{ZNbPQ4!glwdYt7|aUPlQjIyCP-44ltbN9D=9pa>8lO`*_OUDx6j`A0Y7~=CmbC z8?!aXY1s0w@qYP$(;6gqiCu+4TQBuyKjMq6k=WFNfgd#OdXiI|f*+8|16#_4-*i`7 zwg*I(HzP03@c)MK9blhZ#8rI1!<VG>@EaNab7TA-J0LmyI*a4Rks_=o;F3(hU&jI( zv4Ad<EWn+eJGX_Np9%P@SU{6WSAzkQEI?lQdNp`KCg3k)#D>b_EoQ*`0QL#D7A0u} zJ3VR$yHvEfT|?N7)DU(fHH2N8eTT-d8>vC;Mp6_zYQue?2VQPUrRcas|Jy1Ki~}W| zv%m8KoRJuiD>y4LAXni*#^;i7Fm@b;Jvm{`;P~lQcwI#oxVyNm!B)6pkwaD<Qa{*I z+XXKz_X8E=fXmq4!jXeAP<eX^Q!ekM>`E4S*Jf|+FXFd0fr@aORD_bo5L}lboE0N9 zS;@GOI3;I6ly(B&Kv%RB^ko_7pKI??1tBL=xZc{^2<Y`0=%2-)eRk|~pkwlNOiP-E z6}>zIeNF<({oR4q%RuY+J3o0d?F{(YF>oUWwt$bQUHx8}*OjlxfS=`oNhLF`Dt2xW zKqCNz{T!+Iaxeh?p>%&b6j4EV8J#;pynTsCvWzQ~W<(HYrsJDlB=X2{>juDij9BHf z7<G7UA#UklI24@-1K>PHL{UckZPM~En-QxVYr)V2HN~-XCrF6UWT(dLHE^a5erk~V za)&N7wp+cc=rNf4MjARf*{MgQO?HM+d+5XH|0npcy`jdDPq%8&-sA-3m!OvkZqmcy zK`tVxk4Q_x7=WKg*L17J;3*mN_uya4{97)tjK;4xF@Kl)eH(tF7g$E)SDcu?<M_FC zC}Z$yZBlQuQnLTZ*c$BgT7ct7U?{o!kZ#L*>N59KH<(&1*QpkK-lTU!CW$v2LIJ7S zaC;`;pdSjP^`1w7PF&sNOB%g`dH8o^_y=PA^CJB7UGcrqFc1E18T>P2_;Vuoa~-@l z8Ro&iJ%j(#82+pX{%i;D4TgE}@5tc)#KSv1<m0uu_#24V=2nz=ZOOuYQXYd|X$p<s z>3OU>Bqy`WV-UNo`bl~mt|Gy!m+o*L^Xqf2oHPS7>2sisxXBO)PKUe#afC;9eaC5p zJ8P^y@yWw})1b)_g1za+O&x;BC|>%?u3^H%JS4mygoH1NUh7#%c;DDX;q)u<0I!Lf z!N-5gXZnEkbuVG>(V5ezPY3+0kh*}U5KA1PM(N#zzsp8f8(K>B6NSACzv9Hj={SCF zSIQW?S*LGyny#UL(M)uZvu@m%8bfzwJ@QQMkxl`$Aa|}Yba#gEFJgoym)vVC0z`wf zf`O7*SodV0f9wYe6=xc+4Q3$M1-&-|C6Dr82{w*FCuN|iG4$CCbbkywj6p|bpk>C; z=Q3b&mk&zYkAVkez-7kJ=QH3x^uSIDg~kw|%^0HM!&uqD+JMr%F+`LZ1v1?;?@)Lx zBllh-f*!2OX2yBOl4qg-oX3b<-$)0WN*)8?JVpfSM`LF#53?DO7()%Le$*J+ry7Z@ zn<}*cTQ~AhawH2KN)INSLm>ZVme7(ngxWhqLDbX^T8hk|rC1BJc8Heg!8l{JQZuC? zRLtGnA*M_h+^kf3u*m`))7u&I*SWo+Y0L)dI)1i+x(WY``%Rn2H{~*LRGr8ee7ZeR zP2ida>M1jYev<Xmr?Wh#nkK&6l1dme8Jj|pfYcQFX(r$gV#HxAZ{!6yTWGF;pJf7m zKNir71@yfDXAR92aDOI10uG$A?Zg7QUVyWQ<_h?ECg7<I;RLi|0c|h9SwwRM{2~*u z&kJzM2(T88FI8x5X9Yy*J~p4INCEX3sw2FXkw?4{kpkkeDlfSwc?^K_7?E2@(h-M} z#{f8w5xLT`Jj`Z9pr=TGjIjlzW>QBscxXPKsF~D;!mAQnXNM}K&W<uOsZQ4dfUONS zeaQ4tYll}zGdjE#{7vAq9&Z7bcU_E32KF{lMRo9NMpFbz#{3gp)lT>`v=?iwI`9Ka zslFrTALCvN;-7+FGaA2=G5^T%)48vlF?h{pDGj$J>L^e}rIu3bLbqS7`?*hv`~CpI znsY6st22Zr#|V86_jF^cM}R2*U|V3srQ1f=WS~#-1Bi;#VNj<uyBh($HUpK29#^zh z4B9ROO)aJCGSD;Pk~U({W*KOirS!54`1BZf#@_*46V%Iq%PghqGvFt9V5giyO9{|s zDN*s!$uX7UA4>O@5>b(&YBO(R8}nL5)(l1jJ=nH|IZsRS7y#!nB3C+n&eM@RT?ODg zMg$s2EhWptY(^xOQg55Hl<F9zRjTsFOr^0JSaobNv9_ph&y>?_n^#UFTo^*=Q`CW# z(`;L$oMv+7wA(fs(gCeh8t`jIQyxmj%42{qVd5WyUo#rNk}-ducDcbn0>5T7ekEi6 zp5r$*&CYCuG(=mXW;ArWCnP!wKTm@_<jiF1WgT{jJFM&a9hT;Xahu7+WC{hOCey8% z0Ew7$h)qUx@>*Viq@^`T1>BYic)TBS)F$;<K*I}=GOQ=y_DsOzVgVC=Z>|P2Cb@~c z$uzHt?#Ki@HWo071&qA_Z!*mj@U~3AW4r*Tl>lodlT=}ZjRrIhrF)Z!s7Mn@drpMc zGV;(jLi??3&hn6zms}T3X8@eXh}>lA@Ox`Y9s}S!M&#Pd@-Ukbfx@EdwQ=8<noMIn zLP}^djUcbet$^E$^r6gT8g3O!X#_SlnMSrb%?H}E;u!{;+5N4eyavG6A0w?aOx8j@ zy8Q^H?Sr42aNyQXO2%5Fi@RfpzXyKJXzD}Bn7^~N#=WWwe$8n7O2+(c$FC++*UCfn zHFeb5ny91oOr|@tp1PNNsvBHQlya`gG|CX<L#9J$a6O&+sS_X?swu${{N+5`T)Ha* zt@!~&#hG#=IT<sM>w?~$fl3^!E7~{)os@y5Ceu9`s2o-AK!-8ts0_5sWV$y4J~?iJ zUJTqX11>X}KAQmt=g&Lk6q-zcHj{~pk4}y+HZ(Sn?oB45B1J{*hsjcSEhB3NBO*n` z!(_&J#*)VXIFAvz(vc1}l{^N(d5j1&keW=EhuMrsOs4u)XEF_;ZL3t9jhRf{Euu4q ze48IN0(OG^S8>)qeVlc|9xC`U*TL<A+^!I#KSs)_FE?#CtE080#_iMvzh*S$p=7K) znsfp_iqQeTW;A{!WBvx6#RC2|_%);PD;e|G9lx<@c4i}_7TOXuqoF(7oaiY0+!NOv zaifv*)BOjxA7>p_?lo|uf6SG3BW}cGY%)axQj2Dm36Lmphd5wFCvWHlNLpHhRKQO% z0m&T!y;wls3y?CbC*Y@<fZegO=)?lLUVt;1<~GsKG6BK80rXZ|v4FN0;7q2u0`AWQ z$eH+Df2WlIYbKLap|zPc5v6;RiKs{u^|>@1;kArB^o`Jd8<<Q(&eM}T2EciY$W5j( z=NU*I1K>PH<l4*fFq;v9!lKbL!o8_#GIh6PCQ}ERuS#rPTm`8QWhPUDf?&bc0h>N# zTB)_gYo$8*4S~N2eAY^>Es<7g1(y}^z@}52z~2DBW;Au6WUMtNbl(v8>)_Xn#;;_| zKc)+dz&}I#YDVK%GUgvSel?k9n}gSE>S$=E-?LVNidxTPy7F+k%OnRgIQ1|<ZK*xn zSG{yY=&B4sE>v&`eQqzOe!2vRiVwm=^i$AQ1{z$bK*eb@sFTsz2<X)rXmZ>?PSHid z9B8WyG&Py7$w1|(e^=jn4B99IEi;*}&472sT5!tU-j#L+GHcf|lj*t)SdOrdl~ZUk z0oqI^Dn2#^#1V+ny~#vWq^PL<Fd#OuQnQS#8H@;eu<kN-I1gRGf~*F>d5p-Fj&!iL z<S_uwV?>~VY?q1Uv^O!E0VF0<*E=UQFiNXbq>Y(Oqs1EIH#X}oQv-uFF`4R{y>h}i z=By-Ur~@mfy73zsD}%wJ=!^;YHKR7AkuiU7QIyRX{H$Fjn~Yz{m>*}Hv&}OCKWnM6 z<5x1~?>K&g)$Ghh?KVVPs>#&0!|Y8*;pcG}+n<_DZ_PTaT#(?pev3zf8*xo0W0NTo zkXkgiWCD_#5@!7FoxFw@AZck0QUSe8z>at<PhtU6Cb<SutMvrjnhB7TUR;}uVgX|> zz?n>Qo9MPo03F{Dcn1t(0YfjqnM`v9+@1-b!y8n9GnoKuCX-ZQAg+&;?oB45B26^q z(u{=HGOiH35s@a6vCA*nANCGroRLj=3@taAq$AEmj`Wg=<S`=GUY3WUjR+JLNo?X& zZS!BkBL-Kv%QS>GmI^Ma$uwFlGnqP7v6O~j<H`-emS`p1q2LyB?W$<89`IQ!4UFH& zSPQiD(DyF*xe0MoR!u&%DH-!O=~j5ut^<D7VqM3tWXxZ$iZW`0Uo#rMk}>~`?mz~9 z8}-$P;5C~%nik0lZatIf(^*g5%01Pohlwh>HBF|^WC(Q3LST7}xw-w|B|!Y{0>I0h z#P7^N<pc(YGGI_w%Hc*pM;T~vMFQDjy%@A#2AY~ocV(aw_3TP27go8F;_9co`ei25 z-5Ib%2|Hl9Fv|hA%Ye&Frh77A3RF#%6W~laQITQ4$emr3?v)c!k#g!YFOF59ES8bA zfe}HkRhP;k=b<~akjDTxj}f_Y8gm}H*9&<Jfb$rUD<{jtY(^x?i7pS*{p$`iUzOn3 zHIrEXbP$X}7r!Dy2f-+dH7;QrQ7iahNvUlxz{x@$=~4pLBRH!b0VVoK(Iona3s*&t zAa)&5C9Ff5Ksd=BS8*>8Yl=D;cG=?!9ZOt$5IZ{PudBEUfi=bqb<<zRJ1xm&7`Y@4 zj-dmVhdZHBFGT0WB}5WCg0`VL%BELs+XZ|1vfLAD@Lq$<Qf<4e(&<)*t#;9ERUR%P z@An6>PCK+r{e2fTG;%R<K6NP`1<YsH*P_5Du+l{vo`{y&wo=>4B5)z@w&lND!Eb-Z z8RQeeAv#YD4j2%HmfnSy!iUk5B*SJ(6#qDKHibI}zga0TZSwI|w_E{+*$$@dxSgT4 zgIG8T?qdYP9$RP{c(Vaw#08?KDN1`H4%j~tt$}qsryr`Fh%9_@FY;B92OEn!3FSmY z<D7^Yj>49<($gY-q;7Kp5d{-;|1OA4Ol(4NKx}3L|0Nkakb>76>U?`9zttv=Pw`hT zG>CFnFVu-5(+=85PFA54xrLhI^anbMTc`<9a#0gj_&d*zPa3{v#jUwD5>d3tZ0Auc z0^hoT`GazEB9(*_rCUlO6^Ije1)MX;=EU7WA{CDlYe6EFk`tFWbTU6^j1Q51**~$U z-fK9j_jfV9ad_`<T}<z!B&K&<7SlWNF}>MHI$U>IqL^L`njloS&+3QMoFy>f1uCaG zbAaOTc)(d~3&whvr!(f0bqvxZESJ+HEEoIzm>r^RGS(qspv|f;>c+!!Sw@X5Rg`RQ z@aaVveiELGfB|5*%5pGfQ2+Jtk7W2sc&@~WI(%`3W&zUZ>j}6x6Oe@Ginp*6(BYYh z1-K>b+!ktN0+R6DMr?%lnPdTO2|HK7C7FOEJh!e!Blju5!wP}%LlX=v3A7I-X?QL@ zYIv?xv|-`7MrwGjks6*W%?{T{S|p+~b0fjS5p#S%hT*y0C_J|dRxS(okM52rJQrTz zVR$awxx?^WID5|t&mFHFo;z7PJh#7gcy51gcy4RM;kj35Z!HPW9YZb5-2uNQLpUq$ zN%&TQ#`n4h_9`We1FxIRY2exnGzrfgv)$~5gKewN1-&i<O~P|~G3bc8XIj#9Irp** zGzrg@;|^R&X)`SYWkZ&~GWbuW*Jr><crG>sP&fyS{f!*BY&rMx47e;jmq-2*jZj*i z(9(|A8B~1iYReuErTZOlqN1f8wI6*C<|UV9T%j~0qNN>o6MB)zgFO!XV*s4Th<uqQ z9SoPyQyv50JVpd-Hr)ZYJj`Z9vICC&W#|zu(8$7b$#W7?pv!{rTzFCH-b)qlAPCPL z!Q|Kc*<KSIrrchWh3Aqd7_axn<^g47ytmWW@LV_^z`jR$CKjG%WX#{w@Z3H=&+#I! z@A#FB`6WCTt_kpHVw1a%&xNv=rDV)6;km@mtwRsNtF^tRvhdt~5SNxaSY|zSBjLH+ zbDh}`383XmXqMcX3D`h*F5}CvL(9*_zb(T*ppzipGHKQG=;gT~%rT)1?~I1I@V961 z>xbtuyfYc*!rzg>uOFVv@XlbE3;(tZ{&(TIK0FsT5v$LClHs}C;|$M5{2InVd&A+m zZO700hBB7uo7VA$=iZt1$Rs?MLKo*6L!%5K3D0eC$(=D&CqPua8K}X`7`iJ1O~P|0 zZ09;PLeaYGg5I5hCgHiG7<60)ni@m*WT5+FeK&|fDOxuxX_+x}Zw8!%=k{XYei?9? zG4$CCxGX%EwVE13fHq@@iVtH&LSZT08$(2yQ6Muq^A3d9GIH-VBIv>D4lw0BBgr#X z0M27Xi7~_-Y$ACKfb$qpVhm{>W|JN|*^wAS^*lV6teYye0Jb#kArH@OA5VC0>v+O* zn;M==0k>=g%?;0OXn1bN!gGDNE!#kAhTEDA)Ilu+8>o|n=T5n&x40>xpUeQF_8~Gh zm?kCRxs%}2TV@LVIP0fLc<wkJXc7v^{nnX6k$}_`nq>l#@Z13la7t##Bnxo1&|CpO z$pj?fxe_Jn1oXTBXAR92@Y75{5}w<RYtZomoINyGz|S%PNqBBE7SQqnoJBNO!2Owk zeGI|%Cp(cx8(^V;WMRfX<Lol(Wt8qev=J34pdRzKg;(m{l*Nn@kpkjni@fBn<S_u& z5=NAKXk$48$zuSV$B0~MN#`9%af}G`6e}4Yo{Lyq+TbBC05g*iQY$Km;%>Q_+R$M6 zDJBTF<(6xKO&_wA8A5U0%519Pxeeg69&Z9R2+wUM;j;+0WmQDsw%mjb@CRN1jf8)! z;kguUs~L@7$yjk%xa|b|thT0z;1hf$WB#Fr=T6YJymXrwKYgXLmD%8U!*j2^&}}`J zhv!o0;#^DVsth3s&!u?WVB3g7CMlsmFFd!EfhOU(Z3cBZhN5-X1-&{0O~P}VF(^gr zW}vC1bWH}Dgy+^{P>R;gK+7zpYct>^JXenCbWJd$ft0punWc1H23!`N8(K<$HcLr@ zji;DOA&Szyr9@PusHpw0!-5b`{9_qeffx}fDjp^s&eN1U2EciY$dyiy^Ry+80dO88 z0u7|wMwW-!j7Th{t`E;eEUg(v8!?qey4!@XT2US@+?EEb=pTgQI^~3LTdqBY+p=<+ z#^JfsBs_PZ;kguUs~JssC>bk{zJ}*gxGig!G4KOrGfwb(8g7fAT2VG5$IrTFl<;>Q zzrpgh{ZQEG^$&b_Zl@$XH#~|kGnw9+b=W1Inq1d!voyCBYcZLaOu;6#sx!YsdrKxD z3D0dXqLU}lx{1j&Pe3mdkc8(-l&BL>_cib)(>wvUW&)D%+%dm5Cjdu@()jh?7ePhu zAhjxQ%LF9hxrqG)h7&OI0=&sIuLieg0?NX30c$3cRDpuPAeYj;$wXA7iKIQp!fP3M z=o=AfBA)N{B}*Oy;5<g;CR3Z=TSK&?0dO88a_wb#n9YblVNvy3K0Ft(xT(p6kXltv z7M@FSx4FqQQ1>Q;)#{d%ZBBcwgiu_km3kVUOX0Sxl_=acFqsC)TBxhxxfE{8P1tv9 zCnaO8)Y0%<3b$po)pPtx#{6v!x9xymR(g(K$(X<8_|;_U7=LIoHIFwu_tRNVO~P|2 zbaAf9^qCAH3D2$b=y3{dhU!r_Xv_=Gy)y%?v6gfw6K*6oLZ=%69c7?Nc<v|$9hZTo zCevLRXcC?~h(U*Cpk*f0-5GEap4*Lqdu707Ceu9`a9Mb6XfgrXOeQKm#euP+qI7RE z5fv#aYClYt!fP2>GZ+ymDjp_N&NGrc2EciY$d!(Cu!-a`0M27Xpn=q6vOLUYL}D_{ zI1-LWJDoUNrP^$4cd4V{xdRK&9pvG;y&ycdt>L*8Zp+H4XZ%LS%Al#?xfE{8&DOP@ zW+P+%hPqBtxGgtu$MGu}^Vc=p7D2T&9=&bHuVl<W+g#(xqUG3>WHxHIrVr1ZmW1ba z=Y{9~Fzc{Mc<zYX!084Fg^W$6NI+^2{3sKUgy;5IfYUYuCS#Lnu7DqB0+R6DZY-eZ z1vrywu7Fu4V0Wx9+p&O-7vOf8<_h>pCLjsVZN>sxUVt;1<_h>}CZH@l7qDhBNfnwB z3QOtUWFjikL_ID|TX-!a4}BvdO(a8}^K>PT0dO88a+7JqdHRxPpa7i5h+KPF9%eHl zP*^m2hCVzOvAC(p)Q0A(5*x+c>O+~yRM+s_wuR@mE!@_dObEqwCev(_ZWaMwcA1Rd z$XE+Z)zzEAZMg{>?)$uwG5=V@b1B@G+p6yPm5ljE8g4rUKdUVlZfj)BKXm+RGEK|E za|g#8o_odNbeAa!&+VhOb4{j~W(Y}mZjal`DKrY1r1#sO7oK}%2AYKDO0cF=V(pE9 zUX_6+;kgYisRM16fu<%?D+5i!b7#B<>Okvdpk*f0)fw=vSPM>K;3>$gUCT_SYck-n z@Z8X30<@V-RD3K*#Sw_oy~#vWq^PL<u#^>E%gCC+h)7ZKFllq12Esy-)c`n;5xLTl z4%U)92EciY2sDuGGO?VNgy$MSVls8Sa}r`{kH=&hF4h>oZsEBu+}0~6gyK5oG*}d! zf!hj18_hOF>$%ycSQ+#eMM+S&EjQZ~{IYALWX#`P6w8OgZCTm)a9br~{tksa-~}M4 z)-oDCn@ppmJZ;BsY?_^632ETNb6aKMxxvTzY?tZgtivYZxlJAkPQx^qj7_F-C?GYN z-jWGO!gD1c(~n^<K+;gbxdPsr2}r_o$2`+H0TU*<2F_%fE8vz)KoXuij0KFm0B17I z70}BBB;mRJSirywa3<4S0k>uX%EEI2YbKLap)anFl<rL?q9RQ+;nEC+*D|h9zceD! zL^5{yC66VK0dO88a+66q;#Bg~6@c>?k!vr@!)!(b3X4kF@Zq_L#Wj;@to};~sTJi! zako_-w~J*aQ@dK@A`QT%57~z~+}h%_QmZOjjKXc%Wa<Mp*k$T3###g6wyb?9+?Jcr zhubO{^EWg+m%?o|qp1%iV}1*_ZGoTFRvYCB_R0~4OX}5~12EO_+!pG~YO7`Z;V#qU zc*Ao)nf27I@uv3}jWyR~`c#IHgy)X9xt&6z@JV{DV^Lh?hroS015Ltn`wZ%I3`Og% z3;LN1Gzrh`#-J3fn}Mb#)14V;5}w<RK`B}{11&R|Mj3Dtp4*IpDOxuJE;E_#%7Dwl za{*_{Ndk-!>qqdE?v)c!k#g#Bq1wW08Ce?`kt?SG=jlow1K>PH<jQHpdHRya0632k zxpJ~R%w|NQoQ9~h?q9c|`KsKa=C?F9zoqfc$Zv`D4@KW<cy1fPD2t+HDEd~zb6Y+< zw*>|b&!y;F^?0J_TMf@`g29ed0)vL<Ho&0axeYLAcrHcVYIyFfaM8BVr?L_&TzKvj zj2fN`HwacDQ=b6=r<&x#a|iz{!*fx03(v(1WgUC`;kjrU^a_lJp$pHQpm~40!gDzw zm-g?V7;uAm6rM|gudLVkHx9^k;kg`;OJC9Ww=r>Ac<wX}&uy)^HFp%AJKcGdgt|yv z4$sv@DhY?uN{16p7m3T^xytDxaXCC!6I~=Ohv#Y{mC}XhPIj&lo_qTV$)&rv*!JMU zuliTPlqr|5J~xhCuGhbu1Zk40Jvdr$7q6aocAVp|&k;4}`3c|Z8hqzbBaoZU6RPL) zBWo~9-6}3%l)6=7b0~Eew21QVLKr_DDRnn=pr-C715HwE5*9}YHTjZ6yh{@FPN_>A zf=<JrR;iu%jOy9YpHMI-(LbW_VDFI~wn(9H_=nUa#va8A;UCgn_=gl590@L<;!wXk ziztfU!#|{&a5bf~8V?XfdKdq!qIf%Ma63g4*S0?c*J*;H6A_r&N7O3HdZHaTfO{<U z<N)wc6g`TKf>I2;hV<jv4jI^v-+@Nz!ksPvX3DjlYC;DA>|$lI7teO&KoJ}{P}R(6 z9`H*>H0)Wh7LoTsk{8c(>cFC&Iv^`kJuZL`7~tza4?t6+lv^Z^9wTs~l#TE1;$sAu zbw64LtS1O7`E%gIhiBc!-)~WI3iPM<ypI_7?7%4lJJ8<nD-qt>4iuPA8Q9Bi#b>V| zPk}=Y(A5^{A6oO{ADWWz54|h=ga1%HfnD1PdX>A!juq<+ctQ`T;`<?<@Y<;_Ah;2H zn@Bc4MPDT7&a7k0OHfC&0A`{VYO&oQoVwcu!W~9{BVgR=14sGf0jlh|$)I}28iVRw zR%MXO3WhbABtg2@W0Hh2a1v`VNkU0DiFKGHp*)<#8jO>KUSjRAhVr^}ORl_5U)b<p zWo<1rDbrGR>mk%Z(oTo#E<>cG@_Xvb`F16EN7lgGO^qVTtj3S5%qUfr8KtT+qf}L9 zl&Z>%QdOBzswy)|Rb@u0s>~>rm04{EhkfA(PT7f$UOgnr;UXwAY=<2Z^>q<P@NPMT z9=@w~61qAKBGL&6Oy<#uveUsO52C@tW4@*%8oeF|ogCtuL+P9is69Sr#PThYLOaB_ ze^QJbG#~#gYr;dKz87jc58;p!NQ3?WJ98L5YxM>CaVL*!F!S%5xnO&?V1REqw3pNf zMyVa8vKP97)aMD2)<dG0_{2&294?}&;81Zsngz>j3|P~86w2WJLeK^{j7xI;-3oG0 zn^chlhmVl10}(6<(7Ia=$t1Dm5U<aXdvTT4yi$4cWQLYGB+Uue5&q4#@S-mUP!Q+{ zM`<qLF^fld0Q1a-M=U>ijN%bGgU2Qwp)q(&;t}Q$4aco(jK-Uvos7ofz_0&*Fi*M# zjc_@kW6Q?>ww|zU`;MI_Zs_l%T@QNjLmv9D4gEd*5xXDxdyjhbhW<`I<<#1qy^q<@ z-(w&5_|ul2aQd&~k33_=96MOw{BJXp?7l?Vk$3LF`W9!BHMb<{>2Td;QFSK{z0EDq z53(VM&O{%Iqm2?e*C@T+deuXzAGEmfx{VCl?u}5=vtBRC5X4{CAxx#)liDO8I(~!3 zL4)Q(nm#f0WD#RWGSI+Rmr%|j2q&Vx5zLD-OmU}l8$oA9m}i$1Gu>-xWRQsi<(RkT zTsi3za#r`Uy_QQd;KXsV8w1lfmJGOTujTm}aNsaWEy^<*cO;(Doc@6XHWbn9^hlPK zK9V7gNBKNXhpw{KZsdws?nbUcFM}D4iw!sMvJ10PY#O`Y$TS8My;>Nh7s#;|N|CYW ze_NGPEu^2FLwgVSO)0niFyr!SDw%fR!3e=#hVDR2K}aIy(MPfdF%|LwTc|V}tu#+S z`^zz1nnb5l!D@^z-rfZ>^CUh&OSxFnqagTRL=!Nfk;DN^<V75gMWrU2S|{ronupdV zyeCYo-2U)a;L?!oOH&q=j(2I9-i(4Fh0vMaLb9X?MDHcJn78mOEl{Hdz#E}?2nFL# zg*2TlsYIZ(^k@>Am?jv-L8;t+_Ly$yhGF7l>v$hgsDD^SO&?N7Km5Q_{(gnaoTZNv z%bSk<l7c%eQl{YEl681-;B{jXM+>lCaww^SduxUu9=Z;p%U#r|5jsnNTCNuyikm68 zTQX2_rgSKB6S9-h-Uw(f1BLB`k~q)?7tDb+%Ro~dcWVZk_*b4!A{^%PN-AHb;cm-d z6A#OCBiQpwV9WH|?HO#~V;SqWT`~mDb9xO$#}bS;m67N_y@L>YlfQl7!#TI&`OGMJ zRw$=D2BxD1!P2Y4bcc(c@sH-^4Emh!3wJq3OLACt&SJ!BrdBKuvl)?oa_8uL9^}}v z5*;_gNAxO{j67uYA=*n;b~FcZP3#tIR$i?5vC&042&`X6fYn6ZA~#Z%2q`SU(4hdD zK^x3S<s(G~K3vFc8MK*<R6g}S#H9q5L7T=%<s*F!yb)^4I#4Njuh4*tqzEw?)exP< ziVz8_yqLi{DOG_70{ut52hB#BaetuxXb(vh-M&Ek)!>q)$xG$xug!Z+xmp~StG_Uq ztW5oVAsY|k8tlev3$J0WefPx-L41H6g1GZ}9YcU<>Q)f-kg2~fWuW4x=}>0e+nkL0 zMnJ!ufhNA0lNfXgGAn7S{=SldCjOYi7<5zyTBZQMngJ(%nEe=dPzGG40>7342mY6_ z3fwI!5YT4ZQSr%pjFlCodo@T@qz9?}#EXSSmS$xAV??eD=|w_|2)+Su9wTyfC>;zQ zJ(Se|IFAvzI<!2@W<;V6aVr2uK9~EzacRQ?stgZ6W0Lveb>V)m3ULQGYr_4JBHXX~ zNcG^7s=<Ac7Tl*yss!8S#JCjcK)dT(RUjNcMd!7l$Z5Y-Kg+jehlRc(veFwyDsZ^@ zfvLa_IeeO}7wEt?I*CvBO0Y!}gxPd~7HpE^Wr-EopdHt(E{D^ag9oMtFT2pKn01*e zF2i2Ipc~9pgD=bw5?4;~M05&lO6z9ouk#!+UzCB0cc()c^E$<qa<UQ7W(JygcMfAv zI+rXfX{rWaoPj3Zo&6YePzGA2249i^Cmx>N7`RskT&4yu&wv9D&sYuCL=6Jk)F2ff z>qEH0;2%o&YLKW%4UU)>u06zS8CmZbp@UmikD>rM54?>ij{$HVBXTu3<2-sw+(ZF5 zj}f^Vv^>maM4|?#?DNEG5I&h^18&4B>}*m+*x8h6!ZtZzs#QqNqpS<t;M>HiNy%6n zHo?cu(*hqW3nOEN*Z?1!kxlUNV%JFJQ<X@UU$Gh40AHXI8@4;EDsd30#K8kqiHmEf zM0A)^mAJTuO5`PbuKMca23n#L`wvVd-kOaMaa4B7W>#HCCEk`HB%Y(<*y)tngaFas zXY@&It)0KyGtk6aRD23uDaRWDy(0rnJVXaT2^O*B&zY4pRf%uQKohUfUJTkV11(dD zZ_j`eZ_rK*+${qxQ;F}$fXlo<dGl{+4=Wfzn@XhO(@C1FvMAlFM4}><IAmTuIMXt& zP<|tFl{n@+{z4cq_vG>wL(5g-l=F<FOa{PmjL21@<zY4>5|xN+W6UxncT1MCv4wJH z(NyAMt`f=n(^Mj0MF)Z}REdj;N(7&%MDT?w(fHIxtb<QfBKSg;Xnd*?`=%1>;0sh@ z-S|``_9K<pe}F2nT`gCM@O>>+iB0lxEwK_C^mVetN~~AQRbuafsl=~j<0J7so#B<u zwGzLYAtb)1@R~)(_9~G8kubw2jWt!`*D}z=_f%X5y-M5&=p+M8d{4z~(Se$mY*f-z zC4M~vO?*##Tzv=HFDq%8O8iC!ocNx0VqkKd&Dyn0C4MslF7rJF9Mm9dL@F}Wp!j)G zx_(DTB2lYu_#$D*yz{Sl;odHmA)8=h&NC2v17KZcgzAgHnw)YTT;xJUGXPP8idLdJ zHIJx4B?4_pP!m)-^*voz4RR~B@qPUt#rL!h&7EHjgB?9qj&(SxYJ77KYg7N_hpogO zJABDqGOAX4@B+ebbT!Nv--paoYpttcoZ|vmxwo;4Lv{yD*%dN-e}fmp;QJLU_weQy znla>i+f+QJc<^lIKDL*p3Hkgs;i(8MA&zJG3YT9Q14oW^?}MS6Uof2L&KGQlZlZr^ zUc^864@t}KilI+-a#0L@Z<JeN$S+H-h#?ofjoc5@CYMt(KcO9tEw>^ERQQv#6Ndao zexlApYq?I8b3kQRRdYaXq+jP>f7tCcM9xT!Ek{Wx6@gu?pzrZnKoY4WoG8l`Nu&aC zB7e|SPAV5C?hdk3@i?&-Bs%}qC3YuR!)xT4fAbsg8YvDO-~Zrc@&o5(vgrRdZQep| zBy0V_z2v0QKXE5{_*#GDK~nnns7JHM$euO+_CDsZk1PFS&yh2pxYpm3p8S-3rGHO- z+VB6t)Bo@pYyIv2qd)!^rGIDs$)7&+z`^BT{qI?Ur^@!+Q)QZXsyv%LRd#q!l^vO< zip!#7fwJH;*bekpiH##q6`$rTqc)EO=5yu(?Wt+rntetQ+lTp<EUm@U8K*gK7<{&_ zM5Y^=88x=L{DD}jbyr;7CZq-l?6u^ptbOX8gr9l|_}m2eq6~OB2JSHFYI+_D3%MC? zTHqrY?!g#$#ts$^w}oFbVES&97Wm=}_&{7jIXi9_ef#2*J2CI#?U1|3j2R&bHUOJ6 z^r)Aipk6R`aV8p1BueR3C`#!~DAcsDv&6F+4@&AyC`Rf{DDqnHO;hGDBlRv6Bk3{} z@^PT)H~plCv(wlYSvG3KwnEj|;ekE8{SP%9-l;#~q$Rj$15PhLv-AmHUxMtRSzq>f z?((de<p6y5!rHJ~B9zoS;ff4F&bW67n9$LXZd~<1QbJqiuX6XRmu8^B$@Wwn`B>v* zG&TZyWd<sTle?nHHl_pZ)0TW%(sadfRR${Ol{?TL>kJ1vrcRoI(uh4j8L_PlI61R? z%st-$(@sJLT(;u4Is*>QEqD9UfU^|`6&Yr|Y;sV#UvUr>tvIO7Xv11o0-AA!^D7Z; zyf8PtJg6GUV*s4Th>{ft=b?alWHkWJV?@b{L-R13^hye>=S>J2a9na&<+|da18A$9 z2B&|j)HZyg=aDOv)f+rCO55c354IV6kM$wjfWdKcZs;~O+|Aus(!wEWGL(7tXeEcd zH45ks;L|xr+-&~F5+(i0k48vczwpsnQ<^c}z>ymt-G{B2xI;n0#2szIYnI8D7<dYO zK+Uj~y|_?Tk~X$W5cyx}iCu9smJv=}Je@q=l=Z~@@#Hb&9__mL2qZN@2AobFZ_a>| z!|wYr@L(<Aw8S@Oz`<en)DGhK;!4~r11_8H-jV^!>Ex_N+@J)U4N599S_1AV_=nQ{ zpd`vVCwHY0^O7qIcr7FMX(RGMX?d8<h+rHNl)N4sZmrX)(Y65?uy7Z`(iejTs-Ktj zyr{)o&4UF?4f{<${IuaR@4OV<sA-dP9w3@jUwOzz8CEEczgdyNf&~gzd&t-TY%t0i z-lvlLaf6%)!G^VqWwcSlqpY6r*STq@a52<THiLgsuuVFv#Dj-@w8k!z@j@bD#Jr>6 zi2EA1mfN8#o60|wbs;%_-gQR!$x#<|An8p0;S4~|mv;c?Qp>oB?Hs^?mU*ju8vjU! zm>ej779lwNv)4!bXoi@aAiqCCJdh)%6Zpq6#C@?6T8a?&<%ngo_b@|!N{rfO(p9~d z!<Nn6AJ1Ur%<ouD)SQ+;X))X|k>MYtdL02GQW0n<#QHFw=HY>_&$)UyoA~!Lzhq^0 zc?`6KDu#23`z+>`jLa>M`8+M$%p#A;91Ra^+Z4notr9j(y83|OEh&)`Ay3gwRW|L4 zDvx&VOxPr6LLktT-k?B6pp)w)E03n}8yOGSI&Lo}{<<lThEoQL6Z7L}e4b&Sr@Eu= z*cB#bpXf>SBRjeNd8R%DCFUOU!fUkMUF;)YqDR}A%~q<T^xS$Bza5@-S~hQgBkP69 zA@PHF(T5}SSyg1f>Ad~T3|QhyoX(*$>;r|-Ukf;$x9`h<CCbDBw_{*BznmmRB`%w{ zzm)+8hsC>j8*nynQ;~s-^S$v8rTZ~SR5U25-7v=suVq}JG$ZnXX?d8<h+srg?tzqn z4)x@YW^^!bTat7ZowspKhHXaMyp3x`WxUZ%7(DQrxE>*&w_AE^M8mA(2H1EWX3LvL zSDg$A9ePc@H3EmV%UHt=f#JMemu~E=*M{C2K?k|>Sfhj7Wgb>C9vyXVf-wf5j=hQF z=O&pX2d&S<Ul(tPOkcDiWnJY)rl%NuczhH0%7y8skHi|e$zclNb7$_=3_&7`9D-a| z?0Wl{08xo)aA8j7B70E=n#2|jxlNpm(MCXzWS~i0Q9lO7f%|z$(<%Jo3^a%-Vyip` z?UjL+&Eky=SYkI^L$+h!P8o37Jbp<AEFm2X?9~Qe|G;K06&Y#+2XNybhzZq3di?{n z8PtaGT1M`wM&xQ^#Chnzabz_B&SONNLsV@{I1e3yjywjyd5p;CcFV(TMkMq5m=9g& zYPT?)s|3Hn30^<>wXkB>{F#<%2G>6{)cdw!TBZpt5UdWGi595qbrE#6hRo<rYbY5j zf*CmtQ0dV|GNn6yC1ZXZiocckhc?5{?BI06iTTHlUwv(dWp~qz(u39^VHyTMmd)`u zWIZ&A55l4Lz;UC02$B*q;B=0EWd@wY2;ubm5V*e<a5~4|m;vM49FW{##j*DxFiy?S zOI$X`zbXR`B8A*w1)Q7XSr8p~4SAIA=Xj#xIi7iOz&7zxT`|0IAVomrgLSBRn9Yb_ zd{S<CJ#ekGIiB-O7sEMTlekaW+PukwFIt<^wF*24n|94X6WubO<C|)gH|&~&hV5tt zb9}G^hU5Bq)XY$MF#wF;$hf!H^_qhz_%&lR$IsFoEgpLqBR0oR-I3os`lbp0l=(;E z;Ye*rS#^%bQ(TzA@y+qKXMIS*!rb^7L-^b|{*DYG38Wcu@m+5p5+GG#-ah-=GSJ|B zeJW0$L0u^a8v%WL2AagybYoB)#-Eooo#Wq;fhMsvtr)aZ23j`9_cP!mzNQfaH_L#_ z=J<DJz`MOZa%ux`rZ%X^^g*6g0i}DjK~$tRsLik!EWDPH^??z&+8A&ie;)z^a2`Vo zbcm{r5$EZP90TAyM&xt6<zY4>k~w~eI5brkIBx%V=J+~=6r<=(Xi0s@=J-Z%UjYZx zfxm8ArU5Mw%<+vx3rsfa4j}5xTBh!_hLW)&7^`c~6#T4KW^Vgj$(Vnno;`HGA2;sQ z@hchg4;{bG@q@BCJ`PKf@iYoI`^x6{yR#k|1ZuI}%r$VMzYmg{J_AnY_<J(o;DCGr zZpXl#wSdz({@x5&f?%B1YsSE>GT^c~{<9fy5D4Q2E8yH<WkF4Nv(hj^x*x1WMT3>v z4aU3hQeDw|;ogdWjK~M8<zY4>g7HbYy9@=lI~}Y>2Xnk7ai6j|zRrU$n&atQ`zm49 z?Oc93;69(@>v}FfdExQs<EUNw0PW}a$!5QfpXs^$W8m`~KcOgJ;x{tx?GtrRrg&N& zZe#EV>-ez+lL3r6(wLcs7=t?cMvh+^C*haCzyaQnuHz}I%<=RT7p8xFbNu(SJ|uBZ zZu|^USSs|wTCoQ|$PgsR$sr&F67R_M_8tKuVK^_w>xUU=65xbTI$$^%-Hm|$C<6_G zo2ZV6w+lhrWuWOC|KkiaIJ%xd5tJ8#B6csYe%Ty9%YY?N#5JTuCb=f4mjRc}@juCc zgJ2P-HUMX8gNlsxpnU75bgwpuiquA%c`4QiSu7*#10!;^(d9f8?}R)Cz<G=abciht zI1hzhA&&uY9wYKOUOFPhUm=eX$sFIq`5`*T*G;`_Y#l#Z6y;JkEmJqG;k69Haouhq z0t&ef6V!pV%sL0`BQB1$0}g<(jFFa^SbUahnf{_o)g$n0M&nm9RvZW!<h51b=J*l( z3`C3Z9G@Pr-*Nmp$M?(T_;$(3`mIo%l+E!kIh<}TCXq)?R^zVgw?NW6&4AN6{_+es zi9V{wz>T$l(>eZ%3^<8CqA;#NUvZdNTH>-f{-qgkS@aR$Y_L+1;SM2=FO=>FD^by4 zrFO&YDFfRw^5`%kAFP&#*^CIrCn3t~fqSkFR-=PC-jcWv+8jUPGv%W>o}xXu=|+pX zS3g=To8w1S8GUr#JlARnwq&m!htm7eM?p3yDn+33=o=Wnk@4t2tQ(J-F8DR0jSeMa z{yrDFgE6S1&mTOmI5B^Z`P++bj;E}v+{pBlFdyF>|GKOXB@sGZ2%kI0-;^OF5jqlF z=ccAM0it!o8>zCr`ePYr5~0)NHu0l;BcQL(K$8fadJKvnsl24=9RG$4G>OoWSQ1y# z8L8m3`ek!`Hv>*0bjI8_9q^<KxNMGpV+LFnp#wNm8&qWMyGS$)rF*qORHQbj&9G@I zyq0l=(u^ok8=MD$Cd6g{oX3bjhp5`<a2_13PI+1iz<G?w=XlG*Y(}ic{&H=&-Rc}q zQIHJ0?i|lbW#l7tM)1zXXr-dz5)Yh$qmOhRn?AbJ;Srw+A6wQF10d+>@B<*|%ApSi zJsrLe20b0V4+hxxBmz;P7NLXqPK&|82TlFeN9f>lr$y-CGdkzR(aM@MaY;Tx2Y$x? zpb<J)v!HcOMD_83Lr-dl)rg}-c|=e@;|GrVk$sIr%jlN$nS+lOE%X>=@h#+Il<}dJ zV7KGIRz7!GPkIgla;Rl?a3`2?$j${}Kn`zdjkniaK+fh`7Tojeh|xKYs2nPb3(R3+ zW3f3y1hM$ooB>hvl?3YN*m9pJvbC7%5#<ht?-J!=b2>!1*qk&T;d@@0#IZR$j*=KE z0>{x{iHNZ+iBu9!<SwX*R3J{=6>w6yI8kDABs&$46Keq{m68*eC^l!u8nHROO^D4| z{JY02?5Pw7=zoZdsV%JYS3#Fp<LvhzB;gyRNDuDQ=nX!{dU=7D$M6<9J3R*8WsVx| z?1XQ%Ue0$GRhPV8aK0lyRuLx#;=m!O9vD0;@H`;D{Jj`Yu#TW__)X)8Yd4$YY-=eV zYaarX4>g1b9f(dRdF%vkdZ9S{I?1yOqtr^V%jKbiy3Lfw>DWo0-9et+E)SjOZF%Sn zQ*Js}wpx&<=JJ5g@}wD-f(%QR!MNe<l{EDAYc%wJ?#O62?q1x+k`x^cE=keR;F1&_ z4K7J2v+uv0Bs6v1eQWgG4{t`#-5mGaP26#*dtwVEsm+D;nf1-6du>hlR@UI#g(7kI z51{c_LvJD}c+?}V=y8{XqtN44@w}nO1(@vM-3qO7<^s1DJuYu;oVmc34^z89apz@f zHz*dsR1Fk&DW;Y{aVKDEA1F4Gnc5G^gl#@^f%OS~*v!KCYd%vXjQwMnB4ONSOp!1? z7nLazwo^;Ld6|Uqxv2ab2|G!D+jQmv>nZ%OiG}fDqfC*o2OHZm344g6NZ3OiMZzBD zC=&K?N0G2cD7ARz0_#7(FS4*l+7HVl?Drf+!XD))6830Ek+72;MZ!*T6bU<3sp^>v ztXCnd%EI>84=il2qe$3e97Vz&>nIZTI7gAN$2*FIou*WA<^noB_mzT$J;6~_v(p_# z!p?9M345ZWNZ6AcMZ%u!C=&J*3@bU}`{2S!+ZVPUtZaY9wj@Rq^T1}A2E4Y%SbT1* zv+MQyZBX5}gC>!ktnj-P7q8c^B;)I_&k~KpUdp(-24lZ+^r;I^S>AudJRCbbh&cJl z%lnSdz@$kY-pg3A67!RmmyTc#;Lx#sF7=7awIeiK_0V(WJ!5(I5gNHP-ScZ_gwvOI z9ic%?(?0h+PJP1i)+4Zuc?r&)pHr7$j8$qU=osas)2Or<Z*=q{4@pjaJQWt>jt*;Y z`#L<1N{azVNAkCP@?)vE7>RTb1bp7DZjYhzVo1{6BXDiE<h@j2jLq6fh!gS2d#J=H zY7K{UKhH7O#Nt)W!DTx&Xy5Z4<0(P&p660e4x0B|m-^_SdCzvKj|!UiESLIwLGvDP zsgDercfU*J`wXagS?O_MAEC{wukhj8u1Y>k+f&JhYC9_V5N$stAFS=B<b$-ml-xxP zrOzj63n_V`HjR=ywM~@Vp^c&Bc5MYEw`uj2JVEQN<W}lW6ajM7$%Z06;)qQU<%mTH zazqtk98o}sBNp6K1;Q@iKbN!xHM>BKG?H3{IYUb?I^PAKUFi=iVeQGpK*v(!W*MAB z{h-<|W!MG=9urz_?k?OrxHIs($E$v-yha>qNPkp>^O2E<m}YEq@0Ecd{a(5`_3Ed} zT=zVmdn<C+2u5?CL(lu@KTGr<{t4($l?l`ei(fhw<OI*bZe<OF<F${5ima%?Q9U5$ z@^8z3p|0OpSqT3Srd1S0wOU1N`=(8sH*em8!1fbP*tQM9?K^ht*vWzHyLRn*(1RZQ z;0Hg1uR?hE!yoa8N9^WE^+!F5?mIa7<daW1<&;xTJ+)TbvuDp<1fxHe!qFf9_|r~1 zZHaF#IO7b&pg-wJPkJ)Pn?LobPkY+aejfqmPk;I!QjGb2gp>a<0?N-k^UOa%{P;7U zdEmgog9svj*0Z1e?C0R`&!GME)`D>*pIhqJlJR?RVVBM=XMz3TxNxfpTK61WIJocr z?F;mBCq**VtkfNXPBmw3N3S`y%<DPMaTK|?kxeFdg*h}V)Nr|0K(=FYx)A(I+dGNq zOUgy7a2{M7P($UOiiz)I#4q!izx#NeRsWpIJumaIWm+pp)fnBQH9gu?(Ee-<G;WwA z_vJpfmgPB?8!c2?kvV0#(xYivo^5D&Cm|ZYfTS!}``lWVXKi1u>?sb`_AKl;NHZx~ z^1SkvDy!S|86JV);;&_ddBcz?maG42@xZ}H0sWcV*DdFqYTxJuX|?~<;Oc3$tsVRe zJnD06wf{t_{bUr3Vv(uZ=W4YxJWKF+H)VJd(0s0|_GYT~6M+6luG$8pz1BCUtG01? zL2vScwA%Zv+89pp+s<>p#pl*)KSQd0CJIKelT__<wAvY-CHT_Zmf=YN<~gp~JE+>v z0Q&E*U2Q9;t9CA^?*(bKpSFD&I}-=rzW{8CJ)@GJz3~_JUJs}(ApvY>yOQ$@dl$h! z*%jS7(($~p4|z#i^e5RH^A)EZhEh%QQJ-7O`9#ZYt&}P~*Ng`5-`B@InwI4ZLo;Sq zHG}uLKjm|4Sx#Rgw^P7#%5tYi)3Q9l&@dCM*OTw|xwR}y(v!bHZ;Zkts6(8k9U=p? z1Yfz&XMhr8ahB^4r&3qGm*5}kI)pV+)@rWexumanNm}v8tXXlx_vM`U+*<LyQt|Il z$;f$|Dt=(&75`QSNFdnba}|FkRs0(Sf6A{^@$Y*{TJe*QqvAjExwYbtmWuzJN=AOI zRPp^AulUb0Kyi-U?<)R_1*-Xs@OS@8HNWseXEkZfA0g_iQ2{o2<5Ai7Y1!?iXPwIT zf+HSK8$(?B_PMh2G`m9Z4{=3LtP5`sxZY}_y`)RMBrW=brRbLvHu*16(U-L7YfA8d zFZO_1ba8@Oaz)=mt^PuSKhYIEQ%^oYtuzzuC0*quY0-B|(XS_La=f6T<G=VH+p6m+ zo$EZH7G1nIYOd&?;~sN0;h*5j{y=7p8@wnj`&KFYYY2O@mVLLDeN73zF^+mbEjxi= zr`46cpk}|3;1|~_dal<^vKMsB3(}HTX_V7i!sfVOg)qZ<Lw*#)bX??1McGdKC{|y8 zPnLUefc_V6reSw4SuI>xU$v!<+Y{qrY(2`K`|!!HZ=X$&gvYH^4teBNwmkB>SsrVi zfmgng$}3@c-0v9<P?zGK2~4S4vORd|BG$f}=B|BF$44&U4>h-iCoMa-Y^6VP!_kFa ze<5G!HLUi!(4(GuurHg4Xoq9V-<IXpyB2t<M<pKw=V2*_mRy&I%d2$<`%78(ke3mE zu+a}iG@`l{79bxbY)7%jX;0)OULbRr$b6#A{JuLiGLckqFA}hD^T0^{TlC%&(RsI0 zO}Xv0Nc6LOS?E>vEW&Esg#T|o_z)gPWJEGQ?!d9nHfW~26JoOlTQ(P9>vI9$j^*JZ z`aHgg1`vEaaIpdnpa%iAiXv=Y{$*ul`R^~-t7l5CET7ugQ^hW-UWy6Zbr)DG+ogA3 zUPW)H&gl*43lG!2Kzk6p0m0Wek}Hk&gOa`EOOtLu?+g1e`a<JgQ2vI(3$dtSvp2L_ zcS5vNq;IHLe%AuMo^AQ-LHk$n|HXqR#jm3uypFQ%BfN|PCkyfGK%vl?mBKs0r%8Gz z@MNh%FujzW`cf9xe<?eHmvUXEa>B1+xyET)V>^vQoiqJvwo)(W!^aTfK6-GlVEZTZ zffH%v3gnU^=rW=dSuHLuEZ~|?*DJEm3s+bvRWpz)(ZMAf;_c5oI2rVZ>n_K&i@bG0 z;8d=C3FnIE)Se(?%WDERZZYj1Tb7TT^cmsU@_sk`;5Pu(#6AV|!+;10ygay+k4yg4 z@@X19_Te(!N5sfEkw*^34UHVA(6t+<l{5~GE`QNFs}<~E;SI_DSbFvI;kpCRK0p9e zja|`_1~--^ZMW)kzTh-&W%6*NRz8n8oiV6DUPE5wbG}e=%FKRVG9w=Gd|I~6GBKaG zr=VeYa67s_IzzGi&IR05e8JvD8eRCDLj!H^W+t}OHsfO?eQ{mXFRy;6vDrpLoYWs` zjFpdR)MLvt5EzVFl{!YZQE1)#t%_2-Y}>k1r1g9MFJAX)7y<l8?;9_iXH4Fx#Tlf! zPfOdh6enPNrA0o4UYGO*3T`<#uIfmEvl*!u(rb@IrD0`LrCZQRzJrKwN=P?kf0a9s zOp}xnStNMriWI;2q1)C{ix)YQPSmKoGCyCs!h`7*A6q^%o_D#NG5VP))(bqA4rYpg z2q#uIfO#;BTLOO*M5mq7alOROI~&wiN~=v&w@_+Qaj+Sfx8_E=T+c3fd{4j37wPqn z<1s=@hhxk8*w+Ew{oq6KCQgz!@eA}gw7l9H$Cg3UXqs04_BmjrX&S2wX=?lwm)4aY zrFH$(E;3(k`eIzUlZ&wv1~XX_ylc9RntZwbq1}w>OMjKmrg~J2C-KzSTO3_}G#R1z z_lCDWQOna<L;-BnG>I7f@cl-&Kx^BfTjqnPycpMI#UK^MFA4_JKR_`E94$;*rGQqc zvLa!fPp_o7VDBbQfh7e!PpYK~=L-6_a7z<bEvMj>ZIX9O)`1^YBmgPlD`bgD`@hmx z{6#W2#EEuNO%&ygo>3JgF;eH5STEN7I+N;O@~eH`OGOAxmdBRqMMenxGQ&5iuetP1 ziaNZbh*m&6*`KhWe-)Z)MVVzYemhZQRHTEuogS+t^*>y98MOYC0iXL4zSTAO_9c8r zO8E$}7QQnGP*Qb7YF;!v&Lz^eVqTEx;J^;<&Ibb92oJdRZam)Ba~alYy>h<1^~(5s zg`J9BxAh#3&JDkj*6SQ^>$wc;v|c%1-g;$x52W=R&c(;y_f|?q?iLxi^TzE>Wo@_1 zjoaPHI6GW-8KSmJ$M<R}AGL{0S*}OP@bt><h|kyv8(~QXpiX$Z));^vE@^}fsjqHX zGt^u&q-yDK-DQZHA@#*vU4t+0LS=Z=TsGp=#yJqHul-7rg#+eXn>pCa!p7wFjsrhf zTcb7qJxpWsoFL;DW^WZeiag88Hp6bVHq<65u$xGnyAFwaFBYHdDOp2^u?G3VXO?S_ z`n7%e7qsv!0yj}_eE;t0cP;R{7Wn7Y0?;f!Ce=dPg|<)RHV?YBLoeu{i#YVo4Z2%H zuhF3EGW2E)x&cEkyLi^KpYvybe%4?7<zM~vbN}XFp8X&E?Z5gD|D*r-KRM?={m=gM z|Kh*=um0<E|C|5zzx&t!{r~W9&ifz#?f>*Y|1baR|91ZW{(t<R|JVQh|NOh>{rms- z|GVJO-~D~Pa$)6gWu>xOxu|laa&e_mxuo*^$_px&RxYc&u=1ixv-0A~ODdOFuBg1U za%JVJN~>~p<(kU1mFp@mt6X1sd8J)>MdgOdD=RlvUR8N@<!Gf-c}?ZDmDg2nsvN7l zzVe1jxAMlyn<{Uv++2A}<*k)lD!t0BmD?(}SMI31t@8HDJ1YIkJ1g(1yu0$A%6lvC ztGvH5sC=OE!ODj!AFh0)^3lr2D#OahE1#%*vhu0Qrz@YS+*uh_?yB5fxu<e(<+GK~ zRX$%CSH4jBV&zMfFIT=&`D*2Bl}Y96m2XtOS-G$Bt;)A6->FP1->rPF^8LyWDnG3J zsPf~=tn!n}Pb)vG++X>5<rkG-R_eut#o=P5SS>CpjuaOcjpCBx`Na#0ON+~j7Zxun zn#GHYmlT&5R}?QTt}L!9TE*4HHN~~Xb;Zky>x-8c?cx>14aF;q8;e&JuP%-jo#Hjc zYm3(vHx<W<*B5Uny2TrdHx+L#ZZ6(ZytTNc=oPmXw-vV+cNA|c-d?<;=ojxS-c`K2 zcu(=(;(f*Yi$U>$;)BJ9iVqhbDLz_!tQZy_FFsLxviMZ->EbiRoyDlQtGK(kr?|KH zZ1K6`^ToLMLh;4oOU0LquM}S`zE(_%uNU7azFFK?e5?3&@ttB?e7E>s@%`cl#Se=g z6+bR!#ZQW#7C$TQFMeM9qWEP|uU=R^TwSTIRxhd^sa}jQzDuglufCvqY4x(|3#%`x zHmfhLzNC72^@{3Ct5;U9Ldf3L)oZHPR<EnRta^R*<<)le71bN6udLo!eO2|<)uXr; z@io=gR$o`Wsd}vX`sy1HE&9glo2qZF-duf4^{v%g5cGCy^|tEm)jO(htG>PZj%vU9 z&g#3W@2<Y5`rhjMs_(B3svoF+u==6uhpQi{ezf{A#NmCs`ibf%tDmZVy84;woz+qG zuIk;@d#d+VKU@7=_4Bw5;0x6+R=-sJa`h|KuU5Z?<>c3^->81GdSCTh)o)k7!~dJo zT1z*jhNtJ7Qazi<b@%qWyqFuF;mo1&8JSt=^62Exd9a#IIaljzaE{O5=nGf~wBIl| zgDeM5a{;&G$GJ2gELwAEHTw+I<X{2L>n?uja0~*c?K8e1M>lZVeoLEi&;+L)u(TFC z@^TvXU$lJKT%g*a%m>(W-S(HrPD}Tcj`%w3<uUvQDDFhz>Kq~9YSri3GrE)vvIe%B zMG{1sx0)}`Bz#BK(@sL;2~=Pwp~oakkoH(lLL-y#?L<P0KUg{m114F5yoL27T#`xn zRw7~c_^1xU)7(3dcfX#5=Vub`OC&U634JEH4pOi6B)lM#@XbU*hdZ%rr4f@XL0;8* z5-!aod?S%ie{9@JOtOTn+}+lba9Jkd>xqQcV`2$RvIH3)>q&TFCSf8HT(eB}VweF2 z@eaIetE->kW0a;nQ`y+^W8g&|_3B-`W%{)Qb-0HxU0-P#nxQ||qh}+mnW29*K_9a! za_DtKQ}of}=AgegL;p&G-iXmVhNkHK$In53NrwLA1bxaeRIcm|L$j7SZ4Ub78TywJ z^hS(6OV9_l#-%;ERI^=?p?@(!Z*w%5D|^e(wCuen%qjazGxRSc=nbAs9D2jhtliI; zgMMX(K2FfP9OWkHsCgYEb<xRQMTL~*U#8Q^RUTHSlg|q*Wyet`r@O<qyBt#I=70{z z+qpqD0+~rm@1AI7!agU$9BQB4R~+gT<hrO=XQ-b|P}@9VJJk9{P_M~Q?@ds<9GK`( z#~{}&>$Mr`JqhZ7gC8C04CK0~*JY@8C#W3`uym;PjiA0PL%l0O?QsyNL!E(Kx2)G^ zsG|gRz^0T#ZEOVf<r(Uo0V>%l_~u8p)RYc(5WV2G4I2;f<1U*C+8$YFg3k!DD`1@i z!rZ7Hh(Cfup9ScdMtVht{^<n0!@gY(y=Q2uGwKiXWzW!W$k0EPpf@>o*P(YF>U9OZ z$=N*gS7zv+Owc<VC+yG%hNfj7KYUKvZ_Lm?k)Ze4ymshaL$j8#&Ec|{;8hv=#}o7p z$3Hvt_9Nn!na)Fhb%s7n&<DKj>CpRzrez;Ja!$(}&CoxVpyRRvXPcm}<JyF5ToS|d zL0(GM?>m{4kBSsRL#*5*-NYa_1h~2k_rxt#52R#0^fj53k0f=GgTfv9IQazEF{`fZ zEx$HH|8Rod+TvRZwQ3~jO@z*}%~*#1x(xk833`8Xgg!kbZkZ0^b=O3{DMSBYf-a|A zx|V4q=zRnUuZeyvL;pa6-seTBLvNp)lpT@DYofnCLmwpQW2oc6dTzjzfYG%75A0I8 zvUYz%hW`E(9V_7gz5A#beT)$7HOt=3(BGG!Pk1o7mg)Xpj6SsMHp<HW#ti+v33?+y z$JjlaYQoE*18%`(W+F9~Ol5xI@+L1p?YZ}e0B2&=c|X9-UcIvIfq4?%oJn|hBB7UT zKrqR5*telN+?+{xS0bSkOXzwDetTeE9o~{jcxNJ^6-#J)3GT%Y=1F*KCZV55Xv7kl zUV^+Ey!W{hZpkFPBatwTw`pd6n?^drdJ=k>gtsRW#<7Hnm*BSt=C#tTnS{3`5{9va zk(aQrp}urmCgF}iLSPsUfUKj*nQkLnpkXLy6Xfk4Sq;P61=$U)J{Q*Ym!YAllA9P^ zrYP>n&~Ho7yD|FM&=h@UbQ${FGW1&$^iGUEH8e$Uo<2u~zCA<lCFt!Ky<upI-Zr|d z?C;3XZ%NQwF?!3;6uoP78G1iMe`|u?jL|!Wrs#d6%h2DMp}!?TugB;;LsRsgjixg6 zcV*}|C+IWYN0lClnPUo)=9k{qcnTZX+lG{^-@iMP@@A1jXxK40!x@GXPH@9v90&(v zOO8)-gRLJ3&8D^YWJ2GRRBaTa_czB?>dr%dZ-)NH1brBzkAkDPsnVT!=<mzWy9s(f zM(>Ba^FVLULw|pU{)Pm-7o(453&^#5YaaR_Lw|jO-c8WOAaUr;dFUU=(2phPoftj5 zsh&IAJoFD{=r<+k?HIig#r9zJYrB7CgY82Z`s)((W{iGz+#x6Pz(1UUzcvAH1mI}$ zI!J1ev7tg=<ePmT@vv$fzD8i3aX97AAa2OcKxVM%uHHv8)J}prj!`EYLH$^UdNe^D z#Hgc<pbj(CS0|{w7`49<)Q@MVuS!rmF=}@ssGrDCZ%j~IF=~4wsGrPGUzwmbV$|kF zP(PKS-jJY9<F8@$ji7!yLw!Yn8W?XAfTzY=J^0R$O=6$%$ZEW`1=)4|F_+gFZ`0&E zLo-0nW~)0h^p_{-qZqwmXgbZejV{wXqYVA}1brBzw+v0uyGECx-<6@iEI}W{=p92- z^uEz$=yzx6*Cpt^7`<m`ias*B4E>%A{n`Y*8>0^lP0=Stm!aRAp<k1rcVhIhp(*;z z=rZ)rX6RQZ=<NU<D!&CX)y+gttfxXs*6%-;Nok1`Lc@;WY0h|S2Ga1$D41ASY9J-+ z|DVsKT$R+N9-|Kv^wB)@afW_nf<EI9;co2q6ZGLc^e<%SFHO*=F?ugSAIwAlVupT2 zf<B4Sy9s)49{QIu^ve_UVT|5M(7W@{znr1JBtaj<=<Ni(GY|bM8TyM8^nQ%qOwil& z(7&3YHxu+;jNVAloAc1WmZ85WLGKDWjhy<D8)I!wjd%CP;m3F}rv2{T#0ydb?u8=A z8E{R8bhB8?OW1GwC37WwJ(F-*BB35jXm|;3cW<tQZ)6fKO(aZXr<0j?I&r&ub0vH; zlkkE>!Z?;N@e-WUm@DDFOv3XM34>U|$V-rSgN`s)!nZOBmn0H;v4p;t;CA=sO89mr zp^-@F#1gt*g4^AjE8#ntgo_gityn_aOIX-YZ=Gfmjsy|{1F;F@)Ie;TQ%%`K`CX5! z2I576?1ol@3+wtz%g}VP?;2e;*?%uXUro?w><8u0JBFs{eWT0Jzn`J6B<Rx^y=Q2O zJ~Fxt{RbKP;RJmWqYn&C(I-Ziq5m*Lzc4``$LM22Q}mh9W#~W3(CZ2MC`O+enxZ#M zJC~vVI79y>g{)CGG*8bMy>4iV-ZHujeU_pBB0=v5=$JWrAbG;EsY|6atxk}V8Hhj0 zr2Jf@5E?EjdYqfQx}4yu)(M1zab{Jqh6{vd_To=7q4y_MYscu*1bt@ScV!Ltvkd)b z33@X|pCsthdFc0N=s!)+8!`GYL7&V+|9OV~lLWmUqYo1F@jUcjWazU5eFopj;7e*h zK_AUS|7C{$;{<&gqxTZ@!94W(h0ga|74(l1^l^;dP0;)E&@ar;f0&?;V)S-`-kpbj zI79zIf<6q;F_Z@&=|yx56{9NO-dpjoY8`%GV4Zc?V^}w4`(?1{_TFlS`n?3T6Qg!F zf_hPg`rQPz6{EH{f_fxFohGP_7`3?()QdCJ?<A<RJ@j^5yVf^?+Q?A9ouE!))G5fU z6QpnJk_`1*3F;_D9d88n`5Eec32Hw^9c%>k1sUo$1JuBJ>k*o)h1`dQfw>u#&0?2& zWK|B|5M=j?x?EmoU-b=5r>n8iWfRI}8T!`~^iGUEGBib>8eN9|!VG<qptoc6iJ>Wa zeeaxavoFffzm}l4V)R*p-kgWt%+SA@pf_XmhM{TM+eVkQ%!@PhuO#S=7`<g^irzK4 z4E-e;`j->*dW_yNG)3<lU50*nhW@1leOB{RZGmsIAk)!KbkE)gq-56H6`7PTiWEXa z-o4Ix8wJwvOFNiYh_f3=$;`EvW>UV8)MXf>Hxu;EJoGCw^l^edh|wDfdV3!FRT=u{ z6ZC$JUQf_l^Uzxv`sWh#UW`7oKBIl8IS>8n4E?hSdN)R&Cg_cM=+|WE_a^9_7=4_e z*XN;Mo1x#6ptoc6QGz}**UYlfbzO#jcY@xE(T558Xde2@GW5F=^roQG$Qk%CR_D}s zdv9Wb=!F-osQvcd^<Iz~a3c}q47e%ZNaSX*8Ivqw|DHk=##{+6&m`QLNEpWwCSHQu z-kU3-ok{piB4HRy7<mb9dvC6US7Z`Cok-}%5(Zv^oABpKxFM79sYF6ImeBJO<lUen z%$4xUOu{D<3GG-y$4hYAdvhh+m`V6VBB2>eXn6^4dvC6US7j1Do=B+25*l8@!iIY5 zt1}71Ktf<3&JYxq8i<Wky&05Elt(?X8i*egWH+=XahzG*&{R>kj4o40oece>3Hmrj zZyK7ScZ@DWe@%w|kpz7dqqhxB(R)Uhp}#gm|8RmnjM2M>rsxBs%g|q!p?@erAH?W= zLsRsT(Pij2W#}JF(EBm^(9jfpVssh$u?+nK33@L^9~+vY&x|fZe|?5NNYJ|hI%bXz zNSbhl;fw-$W^n+JlJ)yHWK!NQQV0#-e@}G=Vw)4(aA*a>!8k~SP6DCXwARgpzAvd- zGe++x=;L|lZ_Lo&o1oWY^j?BKnuq?T4E;R``Ya9^?I!5MdFXG>(BGY)Ph<2>f<Bms zeshNYt^|D&qqh_E|DV14fWDhZ?}u;cQVgb;t+4fH*j->rVN;#D;7uWA6VgdGg><r; zLOMxcSFVUIy0F0rFj#;M!eCo&AiC(Hi!Qq8qKp2{jAlmjJdZq9&UxSWod5r9_MG6+ zy}!>_Wkxg7y;qaj^wmVa8tE0(L!_rReGSnwq?b?+ke=A|wM4%P=>^n1q(?SACHj>} z&kdb5<%|`1^9z;AP8js|-nyQZqr*)dt4D{4V0D{KhuH6-G3R=sZbWJb)p(4$fv6jh z>O(acqi!VXdZf1E7uI?Ycw^K}L|uo}8mbK|lEa1f>y<=Jky=8v8lzrC)U`;>p<0Yl zGor3RY6{hCjCwUuR~xD^dP}(0T?^^kdzt!0*ibKaO)tyQ+ZCOx4}2`vSC95nrOBSS zQ01YX_*$Z0j`RrXxzeOwsq&D19nn`IJ%oCxG^sbLJfvSw^vjU$LA_R*)IIe(zajkw zq9;gijb{+>u?W%wn|>qFFGYF-bzf<6-D6cATKAmjmms}{dZ;w1r>Z=p-$eA4NUsc? z)%B7U@i~N-6Sc=!3K_lKOj1^KDO_WJ`*}TjD~vSuN?>#>{GG9pLWXO%kd%wjw&YOv zkRI9eTZw)V(le;HYQM|l5Zd(Hh<+i`Q>Zsc_iXy@M30dkL%l|NtA2?(REO>$`f{X4 zP_K~Q*z|(v7a%=^dWrPfrr$~Q^N}7vy+C?p)9)hsGNk)Z&yil(^t*|E9@1O!=o4`_ zFYDV_BbLJ3dx5Gxys~y(T7P@*o<2wp;Lh!W^Z>3Br0&J)K4G@HVPZ|Vmn58n5(=15 z_6hp-o;Be<k`SSU3?}4#g1)_HO}L*VoQ)D<n2`1fy2H07lq6v(N(f;>)F*VuhM!Vx zNBRMha287NVM5R+=-YeNga=8&nJA%!59smw1butYn(z=wSb`F2n9zu#Xb<}Ko;BfN zlCaoFFb0Sff4C4DAU4J$GDt`HNH5C);u)Q+n^qxKR@awWX|j{?)Q|dyPSlSQJw$pA z^%m)YO@EB&rz1Usy00|3?vW}Ft$RiE(~zD*Jye?1Q&k?)A1C^$NKc?1D^2RTDi7&T z5d9RSM^Mj{CiPO4hx8|jelpTSs256;dacSs`cp(d3F(2Mv%2oHA|I;ds_T*|m8wfD zh1C0}Ny>>`3fI^-jz6OZh@M!Wn?oy}yQP~$hC&M?lyqy)kk9~aS`GCS>A6jRmgpxS zy@Gm-^vtH$L_Z$sCDbFNr#AgLq92F!0_q{s6Px}#(T_!X4)p-(kxhSr=*J*Eg}RUQ z(5Amg^rMlUK)qFsOE!bRroTk=qmUj$y+OKX(_bdKkMzjUSyK*KkvG5Ac*+yKz4uDb z%F*GG9jix&zF>8m4Te~J8>%7dBBVC(;dm`8l9k2kt3+Lh)C#Kg81*%xE<kDl)pCsb zI#K5%HG^tCMty^*^N^ZAH65eANz}PW4WJs1QQsn}hg1)${uuRbqJGp(<{;{;F?wtH zgAvi_%~y|88|uZ{UY4V`4?9^`{YE@`QFm9K(&Wh@ROO+b_#L8ufb<&bfzqU&s`8Nj zF45mddI|MJX;RNsc}Rbc=<gxDfO@7hsh6req`yz}cafe$y-=FeYgHc7KOp)$NY9{N zDNX9FDi7%&61_!w3iU>5QV-P0c}V|==x-xEHgs0kBUZ#`QBhV8DP$>R^ybYYUuo}B zxW*n%x2qn#g+>~CrB>@Mx1}*s$Z%~gNqG}(O91r>>9tLtNAx$4?nAvqdTG<=6a96h zdr&WsUfA>nM1KwGjd(b#KJVm6&u#ibqQ8pt8tN(1Gn>AM=nc{<s3%BIZTgW!e+B6! z)MKQ_Hr*%s%SbPv9w9xn=|>U$C8TGa&f8enx3N?#g}3)&^Q6&rY5ncJqx&E^fP1kE z(gV0ykh&L3`h?l)_MSE27?SV;N(f;>)F<paD&bg?@H|TJVM5R+=-YeNZ8(l3Jckk* z_^jeq6vc7S4bPfzJV~fgLIo4*KA}4{tRh$wP9O=-qJ#n_lzl>18Mc%Vkc4MYLIxA^ zK0)8!vu?wQB;je4kidkrPnb5UE}cXYo-z`Q0b;~tJU~p<lZb~p%9DFp4iKO0WZkqv zv9h|pBubMVWUk6Xo&709e*)<N)H9_?y;S8P{Zyhqj&vXDh0>&6tMZV38qq7Hdr+^G zCiPa8hxF5l{ut65@kDUF-y5Y#Jy1`89@0aiKZ^7k>b}yX9;xz>eg@GWL3#!CP-#+6 zRC!2WO!SA5UK%><ISN+f9ZsOSF0~D6kFgXoKwLsn9_muK#?D!v)C0s^EYQs%Gs4*$ zeH0oRp=7*xCJB8IZCV0#59xtTKa1!OAU%e9qYi`IVZKdYO7s%x5!7p>dp7-SqTi47 z5b71u8}%^vp(+&-{XV1zP%n{Q+w^mYelOBJs251DZ2GxGzX$29c*ws#QDjIjZTfjc zzZ>Zd)KjGAHhme<??QTQ=&UJMtjL>Rrc_ol>FvGqdsdDP@9bDTI?M#C+iW?+;u~=n z5Vb&R0@ZYkx}2zYAT@$&JVuR)dOK1BsD@+I3yFFgQaz~pW7La?dMi?EG3$dqS}mVf z0#^cjv@Ry<El4e)T8&Xx5cOuH=1?uhs4Izjlc5@;w~TAuwUGYyUST}*pY&pv^s*ei z<(;f|W-8WKpB!?f$y0u%%0s8kONo9X(i5ncN|So4%0qfW^c#>KL%mj->aNu6AVd0P zM86*C5!5}UNj+5MA$=9muS0qW^+0J-k5zd{zntjTB0Ye5q%^6gsyw7$LG){o?n6CM zn$$~G9@1A6{c5DQ#w;wXt~acRTe~Q$qs>xCy<bC8vMz;dto!(w9=+8@8ha%%Iu`!U z)JP%2wY4PWDzq&X)MKP4Ha#W!l}In49w9xp>FbET3F!sYL!?JGeLc}PB0YzCfb`I& zZy@>xq-Rj~kRI6djYMCM^c3o?s_(M?`!;<O(bpk8fqH}V);0^vl|)aG9znfEdTrCM zBKlgShn>z_PSv-uKrDr~_X;z(>(ct$ds!bO2XJe;AU%Nd1gU#5zfYL0ZkSjTt|keq zQ9>i8Ytjj=D2i>+xA&|G*N}uOP(lS0>OMi=-m@lLOA;<e2?b0j`vl$LTNAD$39C>- z1{3l=q1$t;B3KiyCkdCKgajs}eS*HdXHB?)BqS&yf(db-pl|P46K*64m!bq8CWL*$ zv{AJ+CkdAr3B~}?V=^8fhQ`E7q@%p4m*oI)WheI)A5JXhD@_elRC%bgznSPOklsK& zQkoj5sPd403(+q|dJXkNX;RNsc}TyN=ocZqf_kPjsh6req~AvL3z1$zy-=FeYgHc7 zZzp<;^aARY(xl$1@{oQ9(U&7VhkBzlsr$B0rXczSNY4zN^&BZHiVjDqGR0G=Y#T_u zzmue#-=%PkJverz9v~)Sfo=|w5zgLNqR`eh&)8igbQ#*T5b6ce8=HPN(a%GA0QDT{ zwN1Z==;tEchkAze%BJ5-^mCBzK|Mu!Y18i`dW7@_&2NbG!lvI(^s|v(Lp?%zZqrMm zFGYF<^$_WqO@DysXCb|WdVuuArawsZGm%~xI%~=~EAr+SDU~&4dVBAoo|U7+B^|3r zhlyZyn@xvUe8cErqAo^i1l4$q`Up|aKxzQhaE$sWQA4D9Q1!>Cj}i5Bq&8xrPQ71S zRwRcD@7Ic`ry;e1YCT4MoT#TFwSa0lMty>)ryw<hYCcANlBg#esxf*?xz=3^>Dzm` zG5I6u#h&VAIeI&(ll37=#QN&dex@|pN0zEQ)XzUn^b?UDLA_9#)N559(w`xEfb<aR zmC~f%s`8NjEYVLudI0rCX;SxXQ+n1!KOX5m)IFt1JyhkPb$^cN$06N=dZ09^$ErM} zKTq^yk>0`yb0eimJyqo){RN^QgY?GGSzWJL5uZbNIaSAlrI336B1t*AOW_*3iMOL3 zy;VjUdnGhF7V%Cah1}kIiKHBbwxxu6fb__wzf5!==>^n%q=z>B6`~)B^bG1A(gT~` z5PcESQ>Ztp&ZyR9(_ba}LZl~9uaWNA^w)^K0O>K*E2OtG`iEVSI`cZw=OaCWdWrPL zroTb-c}NeTULd`)>2DH!F4BWe=Pf7i+n6tw!rObT8QgVg{q4QC`XD)g^SU5CfNQts z8M+tq`h?l)hKV)dZIbXkLFj-Q1~j4w@9tRxS`zSG7*N1~vJcQV_pAZ$kbom#Kn4Ty zK0x>O)_`|Oz~L|;fdOeB&>a_cfUE)Uk%0e!0TB#{`v84s&l>PP3HWaq5Ws-2570OE ztN|a8fd7I4?RK!5_5u37o;Bb@5^z`_U<?c!mV*a|-uC@zh;)!2^{^Zm{-=O-i>k$% z_cdiZiK+34fs=EbHy?j@{y!jIK|D~H8lI@~&;VjC!T%lNCB!3zsnLll58?9&{%;V^ zA)Y8q;<+jh;qwXpuMp25o+(V?r792M3kd!%5KkdqC`{swDi7fc3I5LzPas|^OyZuc zS6M{xLm?g;IO{1QR^+X!RH)hlRYlnrkotZk3Hc`x!ZCK5+Fp+b1F=9i1K-GIZ!Az| zZDf*W;FHXMgd65TJVSV8!;d2PKR~>l&bLfA;1uDd4L_RTe-H5n;t9fY8-5JIzXS0a z;xWQA8-6UozYXyU;t|4A8-5(Y{|@3M#6yH9HvD*k9|G|L;sL^A8-4=8{}$po#C?PZ zHasBs-#|PwaMpkmR^)ZlS14=1^d{bky(-6me=Sr!LW_i|TWUO{;(JXe5%jMh8bCB0 zgPu&#zl5j<QGX123PJw@qRqB^AL`9-S&{5iy!odR^v@w$L9`x&o<`7vAzDDR9D|-t z&_9D{2GM*B8WQwRA(}um9fO`h&_C%>V~7@Wth><B_wLedEkm@$JuHW4e=J~q$Rn|~ z`V5~aO!kMlDi8JOO9=ighzAhQ6ejUfm51;%3I0bA_aR;=OyadF58-DK{0|}SLA+9! z#9LJ!!j}^KAc(iyfL^sxn8f|*{Q)K8fwKwz2M}){?kP;-p(+opc|`Evhj<O~Kw%P( zRe1<Mhv2^l@yfti9WPlCpNx1pR=bOZkRjT+B;<ER2*=nbKGXFOtuVsaE1uDfh<6$x z<QSYsLVgEsNe=N=?H0M40vo=J;J*#=6ygoSeH(s0!G8<l3B+rJdp7(6f*%O+7~&Pe z+ifiMemTK^6XFrXON2KzJSO;WKs<zaf$-XfUr6w8LOg(Yj_}HcUqtX<hqw>%4B>?h zznI{^263;$d4oy%rqyoE7r;Apq1nE=4y?aZx1!IHqqJWYIeL^<3sLu3O&>5@-Ket$ ztRw-y0s{&dQ1t=(jtaPh1RMYZG8mBe0s2Orbqg*f0ly3b5*U#70lIIu1|%flmta5y z1L8iQJ1*>yTLUg50lx?X0vHhX0s2OrHDDD9_yri?!2rJx&^PL=0hg12Z@_?ND_-$+ zHEl&vw1a7*YS9%WU``)ki~?&0<56I{Re$m%z2fQ~mZQM^1*})K6053fN~16}BH6mf zNpHA@;QK+mgt(_LH6l^vp+Uo1f`1+21;hh|sS$}P58)}ne;(o~#3O}CJXPf(d>z4m z4&n*K6NO1USLGpmJ;8q#;xWWCg-N_p<sp0n!G8wg5yT6HNxV_zA$%jje;VSUfwPVx zU`5`la@A4EkXlty7DDR#CKB>fB7|eCXWCki0)4SSHv`YeW^YVUW@TiOW^g6RoDDau zo$zqo#u9{=HvB4r|0Kj4h{p&oY<NcSpMZD`@d)9m4ZoV;KMwH{;vvEl8-5MJe+=RU z!~=xKHvC$G|0u+Bi2DeSZ1{Bq{}G615cd!s+VJZM{xyiF5N}n3m2Jzn;WrR`Ux+6L z&KhvcioD``3S}YmM%|6QDu;kSEL1%N427y&YBZ$cJ5@PBe+Z&JM1wKtO$7Zxh_-Cn zHe(dvjX`fF=np`&hG-+Fh66hlZ~iR=-3OutM9VSgtpxolL^FuyW6;|Ox;I1<h^AxE z+X=cCL?ejCW6(PYx@V6XL$r`%-F1$>Q5UQ7P?uHoupFX&MZmho2V!k?_Yo;fw%Jsb zhdSLm3I1h>`w&kQCh=UAhw!@y{w0We5YH4Q@lutC@Vg1V2gF-(a?!h`P?*FURUX3c zA^7ePZy;VPOyb_eGAzEA;IklJLA*tHV8ibt_!PuTi2DkYYaXfc&~CY(;9rDzVc=}7 zb5_J>cwP?G7O@aAL@P<i7eolh*q=`H5G^yp*ek7CbGapf5kkgf50H@0!!1c6-XPq! z;SUo0a}ZA;UL)MI;SUk~vk;FVULw48ELHPif`10$5yT6GH#Yncg6{_L5aKz)D;xeO z!FPpt0Pzgrr44_K;Gc%L2k{i)g$=I={watb#_PR4k0r>?Z1&^C{v@;y?QK@+4(Xa} zsz}z7=5%9+m2-xg>JvS`c;+6{W;r{4Lh#ICcjNn(dN42R{_3DUlPyj*6GocslO*ip za9a)lZamg~int$x?tZ|H#=1`vcNgf+25vakeTKL*p}Q||gR$<j#N8RXdjZ!Q>(<2G z3A)KX06t8fpHSr^_2D_<?g-r&x`!I>N2(DG^>WV>cn1ha5I)#|r&&&}FA#TzaJ#0> znqSD=m2-l9bf+kby)SoyXpMZQ9VB1cl}$mzin8JM_s?JKBNy!{8tC>ca^)N!X0W1> z!Ju#-V>?*+0GK1&Y@hQI$=Ociv|k0=!ix5s{a}u4!+p-nBxkzFX<!a3+H+>Z9NDJ( zoL5NBwj!s7Ijm^U*%#)>Hs0qnBxf6uQ^6cowCC&vb7Y(Eb6zDmTZ^0$=CGnYCsFl6 zRycVQ=!0G(L0gHS0tT_7Jt#&&-ASR(d7b1;L{1KKSkaynp`7j{(dWEDa=OQ<m-`&J z73&xJH@?}wao)C~rKvZvmf1Dxy(it-fql1dAF+_PLa}f<Z@h9LZ!%(`c%+0}$m_RQ z$mRji@8p$HEEKa<$#?RaBNmFYwOq&#vsfs)2Dy+Q60uP9LvkVCe_|ouxMH7g@9unQ z8sALukNv0ZJY(97{hb*rK6G8@d+vAncDnn0|9{`#1K-~R|2OY}scAdCIhn@(&v7SP zZN1I5)3@7x#tu8~wDZheKKAiXeDYJD-gURneD-sn|H2oiX6?Smm%jX!J@?xCtNZ-G z5B|^(@B6hM`OzQy@t^p~*+2EuKl8Ic_w!%hZ~r;p_=R8mrC&baSAO-^e*K%j@tX(! z)^GpL@BZHJ|G`0j_($LR<3IV+KRfu(|KczI>aYLiZx8vqZ-3|S|KT71>Ck`vmw)}Y zfB%pFJnX;z`+p8U;=AAToVm_CXTGz*S?DZsj&ywIDCcPB80T2$IOllh1SfD#bWU<k zc203lbxw0mcS7e3XR))yInz1IS?ZkaM9w+Rxz2gcGUt5f0%y4sI~O_^ITt%CoR!Wc z&ZSP`T;{BDE_beQRy%8)wNC1+bJjZ>oQ=*V=St@)Cv&cLu5qq)u5+$;Zg6gNa_1)J zX6F{?R_8Y7cIOVKaPD;Oa_)BSaqe~QbMALa=K<$I=OO1|=Mm>o=P{>p9(SH_o^+ma zo_3ybo^@*HIp=xj1?NTQCFf=56{m4tbzXB`ciwQ`bl!5_c3S5h=UwML=Y8h`=R@Zs z$8+bp^W6FF0(YUi$UV~a-J{&2-DBKi-Q(Qj-4oovJ<&bMJ=s0QJ=HzUJ>3o6Gu*}Q z68B8^EO)7Uwi~(UxaYd(xy#)1-3#31ZtPy@UgTcvu5eenm$;X@iF=v5%DvpZ!d>mI zao4)3yUtzjZg4lco7^kitK7`J+P%iT*1gWX-o3%S(aqhP+?(B7+*{q-+}qtd+`_%n zz01AZy~n-Rz0bYhE!_v)2i=F<huufqN8QKV%6;5@!hO<x%6-~>#(mbU-RIor-51;! z-Iv^#-B;Ykebs%<ecgS-ebar*ecNr_cieZ~_uTj058Mykk6dpucQS7>f3je*aI$D} z<iwvGH92~6%;ea~ag*aGCrpCLiIbBiCr?h9oH{veayq+NbjD=yWXa^r$yt-7ld~t$ z<ebU5lk+CaCg)Esm@H?Ps25Hynp`|tF<CjeWOC^wnOrtmHMx9p#botl&1CH)ovfRz zpKO?HoNSt0Ik{?*O|G6?Gr4wh-Q@bo4U-!u`Q)a_&68Uuw@z-G+&;NuQcUig+%>s- za?j-6$$gXiC*|aU$%B)JCJ#>@nLIjqY*I}gpFA;na`M#V>B%#bXD9XKxykdB7bY)G zUYfi-c}4uM;RBgH+~s?@GxsmP`t5JRVTR{zT*B`T?LTeii#v#6#;g4OtgHS`*HyCz zU*Vz2y#8<G&_w(Ve<$nfyKgu!GuwxcEyObY*-H6ky-Z)eS7Nv!-lwlzd@<9oSk`@O zg?W*fXhtmSzAD3(<>L9AV%co*#Rs;md-jD`Hcc(d#mB8;*?zP5$0Y1}EobYeuYdSG zzU~^XAA&9Dw^M#nB=+Ur6TLa@-h6ZPmZbd_cWc95%#9DD$R+1OlJE-O`$mEX6B1E0 z_Q94C7LkOPQ9>XFc6u8!Q4|UK`$E=jIFcm1gc6#sfW4IOsp~*@ytlLsK1p~HC3r9) z6-BWP-F9s$;V6>u0!oNP#npSM=<9J;8Mc&gG)Z_KCA53Mz4Rr$m-KgrtjFOPlJFc# z2vCA3ioMjelPzt-u_U4H67+7Vc4tkBG3cQx`5yA3Y3QEcalI-(j(QfU`7Cbgx)LZ& z-j~n6)a#^$9Z&RUkY0+@kJekH7hksMClLK<q<c`0lqT0b{fb2oi2fAP>o0&k<0(z; znLRD~i9~-A=^oS@q-W|T!O%UglZgHV(!<Y#bq|y#*FD+WvhF7n{c)tDsp>tYsr{}l z(}&jm6rxv1H>c`mJr1AanQu(ByIg0MLce%$YR}5<<gt$Bf6hK`+FO4R)lE{Ydzo%# zQr*b-^s^)le<FVx3462)(`q*bqgMGmn_E;*C+Z_e<&(-8Jz^_og9Cd8uWLxuhmqRN zkfqm^PlL9_bv=Wq4<WUiyGN^hf~GC1i;4OmQu&M|<{n_hEvie1`T$b9c@p|{We?cj zqIxD#OQfR5#`DMaZ&5vqsP`Kx-*P#=;!imT<14mX^n+`MdV;0BEPI0cI$3YF`6y+k zW#%(iS=l-#!r4T>7wPCxviQ--*6B?mqThq`?wOgopNZ7$5b}(q=cX7sBb`I^yOE9_ z<45L1Q1faG>E{ytE~N7Zju}0$o{>wgyLEQG^N4;Y($Q0wLUW=l7OQ8d8(Q~eL@$t@ zi2=3V?|5c3>-5Cu6a5aPchAA-bk-Ai?1>4u1@W?el>1P<zksCN-lcGj{gh}o-7%n_ z^XIer{)WHP`Y7e)B;_`=EvdL|toKwo1$F(HzoFw06a7}ChuiX1)Vhas{T$XI{X(MO zg7j<~px0kO>#m*#G^Afd^qY}hZVhw~>8W}+%#eOD(QiU}2EPj&ejcs6?dd-&h@K<8 zVy9zszkd$u`d9oz>%NlcH)0)r;|fopZG8sBB}Bgg>9uG~y3UXp-_=ijhSvR3qF;}6 z-_TjxJ&^AwaXGY~`VB><hKc+{$KE17x{x<U<|KW99M4_X1?VAG`&CZr-mCjuS|rRK zm2eqJxE3WOFd-F1k+AQmgjFQr8k7*hgt$-8w+F0y>2i{AHA)CzLf9wh18+^Zf+S=p z!Gj5YpU@o}c95(It4YFDD4~Y8X`22vO;;JVl(2>*T!|7&m{9cz`u2cz8`hG9O(-FU z2}PeUZB$)KNy0`W!5A23OvVGlLS3M-rcA!Ux2~7vz;Ht+>!y{8mDTknSDGB4RH{65 zqF7J#^+=DQUMfuu-Bfu<-$3+rNROaiD^2SDSLF$NNZ&~G6zL(<J*7!KROKOk6VcZq zJ%D<kG^xj`JfvSq^fgHLp&lts>ZvLZ=~oebHPTygr&HINL}^mjUriX&GooLC^v2Lx z&r!1??+nuEsQXn%o28I?e>F+Dyi4I48}5Bo4-6}@KsSfd2xo5$)o-cQjx$0@w{{H) zU4=HSfO@tK+@#p1UrY4Mke)-mM86n`Z2EOXPmrEMJu~ml^F3wLuP6GYNKc?%b)P8c zujL0e{RX06g7g^a-GD^vzD>W8=qr&PLA^G<jwdRcx<5D69CD(sKzayuAL)%vzlrD< zBi)Dkfv`eWHvDFSUxaYaz}YTu*~b@rhm=ZXjf&pvyQOF4;PAqZ)q}%Yd<>$SY%|2- zJ7u>LHAZR))oP4-8&Q`dHG^s~M!lV=7a%o(YC1-}gQ({tHG*n9MlFcC45<NB!!hce zL_H6w9#s7?>Rm)V7pXP;G^}MsQekn;x|^uy7^*RNtGI^FJgxd<V5k$jr<dj6E$U=l z^-Hn7x+AWYCVMO2_9@1_L_Ztp1=KyINj+5Mq4U~(L|=;Z9O{A6q#mpCkbXbW&q8_z z^+;(_PgQwHFNuC8(i5mBN|Sn_%0v1CL|=mR80wkQq+Y4=kp3Xi7b87_dZ{$2H>y0O zKScC1kRBR3tLp(P;ugfqm8z*Mg$&*vCMjW;!ZmhBa8EsW^Nlq2N?~*?BGpJCqqRp! z%IRoZTJce}Ze2Oj3!DBZ(N9Bq1N9W?xlMnJ=%*sRhI)eZ%%)dFKLzO()MKP4HvMs; zpN#Yz>JidooBjmRPeOVI^$_WiO@ET;Cn7zCx{vhGrawjW0O<+TJ*4|K{b{0~fb_W2 zdCO`0HWrGd@a|q|ei+|%Y5kXfp6P?+0PgrMNDttALF!&C=o4nE`z6+dXGy|wD4`YK z0nrIwpP=vVSrclKa4brwVM5b?=|tb%vnD)85{^L$B}}OL1bs@fCOl6Pjz$R?Oep$< zZqKobU`=>|Bpihj5}1(o3Ht7yHQ_~);G={HCd7S$zPo2lc!?w&i4p>s5cUbvM%C7r zNx~u{!5AR=OvVGm(D;fD=_p_6WjR1x*vWmx7b~mlOQ1B_*~h9p)Y&&gUx4&Rd=E<N zk<z4|s`8NjD$(a7y@q<CG^rP=Jfy!y^m$0Hpq?pB>Xj-F>8}%gF49Y=mr9d*qsl}2 z8$|bzUO>H8n$$gYb{^8-B>G3)&tr6*$)MgMJ+SF-5&c7?r-sgYj)WCOhoe-v4Zccc z+d%65+a%?KE`@9Cal>EM1H@P?(3=(+;p~kK3iXUoGG1&+==*5XLa5hBZ`AkWh7QX+ zM1K$IKGZ9u*EaoKqQ8rD59&G6E1Uiv(ceLO%f8)ce3F_Wy|n4?6TL-x1N9W?g-!o} z=x-yvhI)eZ%%*=x^tX^+LOn)$YSTX=`kP2EpdKPUw&~tn{rz^?xx9h&+|XH5&RCHj z=18fmDbw3~b9+{f4qxwBJvvMTtJ`ck#NwMU^N9KyQX{CwW7PRXeHEzzRKqdq0-`oZ z^`PpHQ5O>R6{I$^_|eh(wPi(exbS{mMAVm&T0ylQqaI1rmylXOwH%}RM12vdDO9sD z>QO{}!BCCSTf(*OT1bDekg2a34fSG2_p)qY&v&vuM6p<3J-$knCi}=zm4`Z%V~GA7 z(j%xBN|So6%0v3GM6Zz^LcLO&)LT^^(vKthvq%r1-Y8A#{_d7fevc>mGf4NL?kP>` zp(+op`w2vU8tER?1EonlR^=f*Ao^2CZ_(H0l_vF6m51~biT)(g8$);5XS1w`&mp{= zsN=y>$ms1PlJZ2C!Zr4{yX(<gVWhEFLZf5h?~IKUGF&^Eq&$wcC5O6?^vI^4Li7sh z8Pq+bhc^9GqCbZ86zZ)ys`4lYHvKfBKZ^7O>J8F;n|?acA3=Hy^&07(O%I9wFw!Ha zmq>5bmnVnn{~1Jo2<aiz3#2zTeKFA=M0x=A9O;EkUqbW;knVRnZ#h}t#@a9P1@QJ> zrGj{Ma>c2%zrA;6A0!8GWf!CeaJ3+HFV^%4v(*g~Yr<J1;eM1*!i1_%(6{%j2}?=B zeJCM^2}PfvZ|_+X&L#=>qJ$JCWPO6}@U00ENw^0k#4sW06S`x=kGt(ipF<MvMhPKI zi24M5d(WD1E=jlxCHOEQ=o9qqJ!`^wB;ih!(2Cz`>Dub`3DZW^)@3B2FcORbV#9*) z0MYwmKTshZ<@voV2Z(ocvR>H={?4pL->wb}owVZ%h<-cLOQ`!wlbuYY%0s8p<wU;? z=>^n7rAa+e<sm&L`mIRMp&lzu>X|AJ=@%0H7NloTPn9P1LY0T~i->+R(o?ACN|Sn} z%0v3aM865?3DiraNxf0!A$<kWbEL<H&U%iB6?y-Xo97u;Zd6TWDWu-7Bq=v`DO_Wp z|9(*q5JRy*H;2FoXK&0<Xk~<w=5PrKy#Z~S5A_u3rA@z-=+`5?g+J;{kY3pIgy`2H zy@7g+^xURjM)YfuUPC=XdS=sC5&asZS5Oa;p4#-wiGDTGOQ;7(Pi*=XM9+|3K;1`r zY|~d0{VJsAP;XV!l}$Oc>1&97CDJoPXH7X}Mc(`ZrLq)ydv9&e%F*Gbj@6^XSg^Xy zCPVD^(3mqN>PDmnP>sf@>xjAmsUB4QG3t7vu19Jk9?_xqK+B3`$KpM(fvD?{T0ylQ zqi!T>iqrzC<rsAnQP(0hgK9oTy^^SFkeWa>9iv`F)YXP+jNW3db=N}r_Fk%f5jNC| zWxXs%Z&!4(KJbxPUp?ASlqQ>RuF69_@zq4X9O)s{Go?wrROKQ48lta4dI0r8X;QCM zc}TyO=$9eA{VZ<~de2l!lX|PlL;7_@Pmta~y-}Lfef2BCA^m!yUyAe^>Ymc19;xz> zegn}jL3#!CKxtA>RC!3hk?1RtUK%>9>jf*~GZQbzYLBrLGJ4BN%8D+9YwT}7uSajW zk;Y!}jgE!CGcr=haP20NaxvPL4C<}gGjdObHvMLzUxf4&>J8EZn|=$?FGP9*^&08z zXZx#0vS)53dW`f4>J`!(n|>S7mm@uddWrPfrr%EV3y>Z_y+C?p)9)bq`AGMno+G`q z=>^f3A>D&|hV<N~-%0fIklu)Ap@@5YY2U_bu@v6k^Ht^KO`+@3`rCVV^+9p~cWxJ? z2XLhzbuU)+3A5D=6KlfVB;g#Cki&$cPtdpbtO@s!ga{?1Fd^#`^zA)s!o4KnY?Khe zgrrZ<-I_JwK9aB$B?K@b>=U|U!%wNUBYi(fI143sFv0H=^zA)sLP-+NL<tRhB9Hl* zv?z+&s&DUE6CNN5OHe`u6Y4%e-`=w(JV+828wth$v1BqHAlAF}Cu-7BKGe%{fOtkH z>!y{9mDTm7Qkv|-T2&tE>>nn2i1ZBVjnbs<f2Ln|a+Y|6=%*t+g}SFS)%~jS(7HcL z^wW@@Ks`{J)Du-6(jO!GsYs8Z9w|-gnJN$I712*YdI<GYX;Lp#c}Rbp=qDpRfO@Vp zsaL8zq(4FQlaTHkI_o(+R^$yhQ(c!#DOFu!DWu*%Nm5SiQn<#xar_xQKy1Y`wsmu8 zL{T?~6ouwSD5<bdk<b8bS_Sn4>6uM`n&>AWy@Yy%^wg$5L-ga3UO+uWdScU`CHiql z&!HY5J+|pJ(T_!X26Z3lp-q2|=*J*Efx3tEz@|S>^rMj;L%mUrOEv@FroTY+qmUj! zy+(SwtK|g!BGG-Mhlb9Ya=?nb`87&q+dyycz0|XEba-UP>d~PmSlwp*Ar{}<dYPz; zkXpls<2CZ(cwl9*`U+7OBDI8SHAZcSx&Wy;REsg{t3;iT)D)`O81*%x&O>Sp)nttN zI#K5$)rV>@Mty^*9#UKO>_TI#=#5d|B<e>_|CnH7^w#hPBX-w9`u3iu9;Y_ci@nv$ za`g6LC+n(Ti}lsrRjVE(Cr=K6p_A_FZK8jG^a|>}(xjfK@=!nD68(Lo7f_FtCiP5} zhxB)d{vOhEsHaMkdZEfg`nyDb7wH+)bEQeWQsp82J)*yZ^c3o)(xl#~@{s;M(OaY^ zP_LCHbzhyFhx8AK{x;GhLuYk8WJP?+7iCpbSqd4weMnN?>QcD2_r%*(kKO_!jlEK- zb(h;x8!4pze?(H=MBCy+y+nFt)4h4*tL;elpk5%ou<3J&{yNfI_PkW%_I8f++@{YX z`fEt9p`IZ<v+47R{wmTds3%BIZTbSDH%Kp`9wR-m=?jVe3epRxM@Wxs`XZvgjPxAp zA<_ezek9RfLVDWiyy66X8%xAeczZ80Pa0j9*5BUq`ye@hd$9}B1Gq?#x)+Q4gxTu$ zo;BeplJEjb2w+0kC+ORI)`X);!t*G>g9(10pl|P46OJJX&!L1GKC8G9MR6Q-hi^?d zmL$|Dp@a!lpU@o}RuQZT$B~3*Q9=$AiatT#-m@kgPZFL%2`Nm-`UHJ@&zf)oNq8D1 z#4sW06Q+%-tpQ1R%1AH<h#`~l05MTdA|C1}PwZtmKzy>3b<+yO%If+OD@}HgnJN!; z_9qej38ec_Pn9P1LY0T~lZpN~(mkl>N|Sn}%0v1oM6ZzEvd3u~9b~CAsW+-Tq@POk z$B<q_y;hpk{ZCr1t4|~Pqe!oy?kP>`p(+op`{_h~1nDKz1EonlR^=f*B>KZhFASaa z962lU1L3Q#OKpSNV=RRX5YHef4|OSAW9O_->H%UV7U<@X8sY4X9tsVNP%>UzOhO+- zn-)X8RXa)@beq0}=no)0f_jZ~&!(SA^b+YI)GMU7AGcK4vxt5_(gUcMNUv@BQlj67 zbRX&k(kq*OHqq}zdMjoz(x=cI>7`ANh<*>!8>pv9FKqfbM86y9HPjQNXEyy@qThw| z%FtO;E?JQ`zf`HL-qYKA=k=@{9p2fodUTiyR=3$=h{ZSJmJzi;Y7Et6jCwv%??7q@ z)o6@*0a0&9st?s*jJlktw;{D<Q$CnCx5lV3QEx?R1=WVnD}gHkK3W$N^%kTSP%X!( z7ZLSlq-Idf$EX(*^(I3#MsF$Cx@#eQdoSOmKW&m;Y(+22(Ocfhy6Pulef6m)Q=05h zN>v`}iB}T+Mx@73FO(+rMwN&3ONf30(j%x>N|U;$W(OJ4FD3f*NDrajB0aF_3DK`Z zdH{7_X>#2oRUTUR%ZPq0(tW6hN|Sn`%0v1pqF;k_59+bfq+Y1<kbXJQuSR+!<|*!K zB&+K+E8^BJ%IbKq6jJZ6ASqdw!Zp@?d`yqtDkF`(5*r;0e`jK(km1^Dl5!Q=mJ;d_ z(qo&xhUix!y?}a%^vI^KCHf|$=THxj9@_Mj=o^uqLET4sVAIzTeFM@{sJE&{${On1 z^z}qvkMsoU4bnZEzJciLkRC(5MtY;>)*EVF8;PDGJ%oCN^vb4hBKlgS2c6DaPT99H zUo3^U_i{71>(ct$dsp^Basaoc3(^C)c4wZUdoiz1n5}M@SQD-y39C^;4HFts6x*P0 z?^zQvl5hn|C}Bd?C+ORI)`Y7`!sRF-hY3ZWpgVkP!Zjpe6-r29Le?jA$A%pwYr?f8 z;WCsE!-S+y(6{%j3D=Q?1SNzpA?g$K?LBM4^(5g^l;FXHpih`Ks<z%h5-u?ki~(Z1 z6CEH1J6i^bH}<j|Ag=6W-Lx7;8aJ^#rKy36Di58Ga-y$5dJXkZX=<RN%0v21M86p6 z71U#;Nj+2LA^m2eUxf4$>Z#JCUa0brehbkrM0x@BTxn9TRC!3hmFO|jbEua}lX|1d zL;7t*Uyk$)>b26O?%6t-+lhVw(o;icJx9WdqQg<DOlgfNzsLab4w7<ym%=sn;Mkq@ z05KK|baM!eaQ4Omg*HYg87~$jbQ#*T0O~o?Yny&2(a%G=5A_V`l}*2k=;tEcgL;be z(x%@{^mCBj!Wjq?q!%{*9->D`uc00zJ-6xi68&tXS5Oa;p4s&Kh`to*CDa3?r#Ah5 zqMwEI0_r}}W1C(Q{Y<3ihR&LD#)`c8g-T^jncm)epl9Xia7oAN(P1oD-DZ;^7T+*> zkf@818bUQ1qdr8`Gmz>-H5j8lOw<sm?GAiD>OJ6%Q6C}d=}4`i+OQ%yTzJ1eO4QSk zT0*rNqdrE|Q<0iOwHTvTL_GzmDO9sD>f=N`*-(wqTf(*OT1emC%Z$k%NiX(9FU!%} zNu8_@d@R;ikM>ig$v(1B<)ME5Nur;K^bqQ~(xhIg@{s-%(F3FhP%o7x^+uJ4^rwk_ z0@8h`*GiMRXPeUV8KNJLbPwt+(gU0REYXicdJCtt^_3>qJyPYNJyR3?Sfn>l50xhM zM3sm1=ZJm`(rZI!b-iLmd=BB|MC~z_LhAkVB<1KXg=_34-i~_oRvKySmB8p&#5;`? zGF*Fsq#T8|rGUDR^w6fiNOT|RIn+I*2R8jBq92L$6zZ)ys`4oNHvMIyFG6|(^&07( zO@D>x3y~f}y+V3Bqrc)MN3|jP0;ES!FOlBZ^jC>KAL${~3#8XJ{WYS`LwW%99O<P^ zf1T)ak?waoZ#h}t#yqhU-rj4>;I2#SZ|}X)2gw1P*9GYTT(dpT(7jkIiXvgQx?y5X zc#|Z2PpqU4s9-?d2kbj4;4KpHT^NwVfT9o3H}|Yt@HPoJ0tTcoAnOBkZ*L7~Nx<PS zAcg@+AJ82ac7Ut_?~s81fdL^5i28u;Fl{N|T@vu$Fu;caK_8%R>{++qJreL=Fre8E zR#Q<F)l}ctvj)6R0uJi~jDcazU_3Bvx9d-Gq=WpRhvmTVKLxB?R3%omuPF+XXa8XP z9w%qe4+;Js5HBI_D@+YfRC#Cs@e#rQ9pVMVLxri)i7F4_-hBLx`G13W2Ju*763<k5 z2%k&ve}#Ao@l;_FFI0I5pGWY2fp`M(TwxNgRe1=XPw;<+cntAMVG?guc?e%X@IxUU z893`HLRRFhs!&~(+5%NYSqQ1`3rWa7i4cyl)718QJQ#=tx*7OJHhW`^GAkpKG=oJX z^B>`cc@R$#UfS>@3H}cdZ>RGu(+xO5cwxhRg8x0l8;HjU&usWn1pf}iYlue(Pi^?o z1phX~D~N{(Pi*)x1phmTmk<vS9^3F^34RE~3yAv&k8JpH1pixz=MeW09@y~X3H~<_ z&kUS3;Di-<-Sid88Zf<ycS5hqG2mYdRgcgjq3V_z52^TGQ$Wzaf@lEIa144PLH`n> z9z^{y=t%_q3y3z`@_nc`zhy<TQ}O1XOwd1vXa&)F40;Md4~A#~(Q*uWDnb7Yq8UW< zG3aRo{Zoi05KYIRrxWx~dej)A#T@G{bo9NublZLuMY^o8hvg9Mj|Hp`c_h}hKf^0b z_J_GD4|Td{5d2#Z4<Mc?OyZ>~58;am{znk^Azmm<_2jBNgfAiZA41%Nc%?9jx2imZ zpGok8Al_~Rdeuf@68ER~2b7El&La39K)ivtr!a|!sywvjO9}q_5U(K~C`{t9Di7gj z6a4oeUKu#6<0UKNlMye+YIm^^Qr{yI^1C90W9;`7)AbOoFv8d?p3#kncN!t&7@R{w zeg|$z4)Ip)7P*@O8-6aqe;eW{#2bYBHvBw-{}#j(h}Q`BZ1^&Q9|-Xn;uXT%Z7lWv ze1iWb#3P882yblo1qA;Mh=&j_5MJBx<plpG!~=-u2(N5-Oz>ZaxDW9R;e`#qkl?=t zaj(O9gGu_P)o#rfz&myMKJwV|CeU?Y{hhjt`W!h*`&E&nM`^VXb)VJr0khS8G;6@c zB;Z$IKmh})K0x27vj(gn0SCZ<3<l(VfWA>@4OmG6ei;TNFd*#%bl+|bxP%1!5)6o7 zK->p($AukoYrv%>;1^*)00Y84K;Njd1|%fl7hr$~1N=Tf->9<&Tt))E0Rx(?c*WP% zv=v2oqs|(ziUiE*1B_8%&0stVY`5x9o}^d2yoco|aDM^oRjtIT>YCChOm<lQ);&&I z?-c~!58@@nJ%vd;ROO*T!)k(m9pVMV1BFRER^=gl4Z(jN;wi)<g-JYB<sp16!G8|o z3B(hHNjz8OAv`7c&q6$gc&0FkSE@XOuOs-+Ks<tYp)iRzsyu|RC-_f8JT!3DQ3R~W zTUD+)Dj8C%D#}7gecwPreoBOJjLnI$wH^ifVu5Z3o{`Pon4-+e$Ry2RBgvc%H>{oT zaNWidgqJpa6TyEH;tj-OgcmmaN`n6c#A}F02v2SJRRsTWh?fu#5uVuajNm^8@dDxj z!ebkLHNk%r;yJ{9ghw{~8iM}_#50I{2oG)ewFLhf#8Zg3s=>;(<=gP<2)-}G69Z=r zIA%p&@jZpI5PGBT`d*boz#kT>9s-6!)h#s|Qt_Rt8wmPC5cMG%j6rWC=nq1)b@}G% zHTA}zIYEB_qBTStRwO$WZ~jdL-3OutM9VSg%>?}_L^FuyW6)a&x;I1<h^AxETM4=s zL?ejCW6;|Ox@V6XL$r`%-F1$>Q5UQ7P?vRk56dCiR|Kr<Q6Sb<cOQ|$WSdP@d8pI9 zgWz9=xDW9}VG_?(c?d5E{w0We5YH4Q@lutC@H+{<2gF;^4)ks*6ejUTm51=V2);YS z8;I8mlejmr42$n3_$-K55N{D4*zkJ@J_Yd-;=aP<nn$WUv|H{a_!l8w7&u$&oE7oO zh?hgPMJ$92(e5K5Ul1W2V}Cl)L$u5YW3RMo&E=K^MhF>`-A_V354R+Rc!O}?hL;5Y z9K;id*9iA)_yYw0EW~4omk4hiOVxak;Gcnb1n~mljSYW@;JZOQgm{kd%7#Bo@LeGu zKs-ZuX~Q2O_@^Q6K|DoxVZ$FK_@^L#7_ayGJeD9kv)PXk`;*W<w6|HMJEUu_sUlfR zn$wLPR?Zn}s#VV~p1H@gS<a515Il3(-T1zx9?Z+SzdESTWQ&u{gpnruI0^eW+?E4? z8;^CLAnwPYyB~0)vF?+^-37X{fg6r>pCax|=<W;LV66Kzad(F9UcmLny3Y`IC+Noe z0QfL@enORx)Q4w@yCZZX=pJggAE`z()XUWb-T}fPgbz00X_k}gbHtq?+^%V}<`*z` z<s5$>-6_gq@5`MaS|i_S2g#RqW%tfmQ8wKE{`vEL<f1)A1KplQuAJk+3|2HU7!;_R z@_hfW@&PbMw%I=C1(LI!$Z5U`wuKe#Is3sJ*@pX^7fH@^kyFDQR<!5LhB>lL_c<?- zoNYx;1#?)@p0h8^k!`%sd70#FBXUZZ!;1Ety<m=P^L@@MBxh@pQ@|WnwCBXCUdRe3 zPXc{VLxQ#vK{*U!MSD<$g1VDJpYtlonTVVW=CGnYCqy~jNutkrjpTHXQ!n>9a4Xg? z^lyB<f8)GuMN3m}WDTfm)O%05vjclJ#Xe#oZ-rvvbl%3~Lf&M=Lh(omxscayv5?IJ zpx?<WqgW_rtCH{JHAgHIXKT5TA7-&obPaMLKO|zI=!fJ&zW>BRzH!Aq-`?H%(loxA z;vf4@+j+*c8T&gkR_)|E-<$bezM1ZR{C`u^cKX(||L^|KVaIk4clloK%>Aor-~J}t z^PZP2;RELVr_FqE2fgR_ubl66E6=`v>7au(um2Npuv+}a1)F(e<M6%2KVf9o9o@gh z4I{C9`Yds?SS+7DOMI3jmd~6eJ`@$pXU^J||E*ZQ>nw5n#qwQeb>A4}=F}|lg>kWb zs=GuK@84^d_;Ht5zSk`A^G&gQ-&x`p&|>+%v&1tV#PZp*SXG*0Kb$>8ukP$w;t@*X z<^9yl2kV#hqG?l;Dfe*o26pMlit|~K{bvE&`mLw7I(!zti^aNAcIn58^I4JoX93#< z+fHqBIN$myb`OzVyRqVYR%HKK!1lv-Q|wb=whN}%*9J0&7w5Ag`_BTlGiFS&FU+$2 zFvY%l!LGwtaXu@u|14m8WQQsC%MVr`re?6O`Z>HfpB34E7O>s2(-iyRJpZjJ`}qgE z4r0amtjPYepxZZxOzm<w-!oI}i2#upv$G}h)spV|gDqLWch3}ij81paAa=|&{fEBz z!)~GeThCayK!JzxJz6?*9R0V4PKo1EI^qw-i{D$=9SpVuUA8h)GZ)PHx_|iY?i}`l zI0vwux7F0l`BRhbg$aK_)UeE%+J^1&sja&gw&pL0D#mu&bhf*vw(VZnmcJnC7~5gn zvt2#4op^!mRF|#KF1&CAU&-y+f!&@R;cgwoqMg~{oUq-<j;VSVKeYT%vm>b%@dL^a zFgt!~5zCumUnw|fYCF9l?1=2ZH)IBX)8V_%;4g@(9PvZ7!+drO`3vlb%@8%hSPfRQ zr`Ye$4xHkz?KFRC2c5%?ybkD&3_EBngzfpz>4J9QZxC(cF#fmf6;Hgv_Q@^`WWi#e zA2Da{;jFIDnZ|bBPV7eX{Ha~o|6j=dn0X>^YC0>-=UceD*q!_^?!@*XtGq7TOYA?q z_Ot)+dai18S9e)y2Fqgq*^z~^|FHkZS4%jDvISE+@j5Dwj%ZtKr?aICy7nagC7P7@ z*Vb(Ju&p>q6t-b|gcS}Hg>Cuvh<|N2HIx09*X8NX!2j`1DWAqhcl=j<tnRLylkpNi zk&4o6R^WqVQP`Ii_)U6I*ozhT#{!}-#R~ib2vOjJ0{%51QQ#v-{?#c_;J0MD@0YL- z+3-pBfz6y`YiGGyOVK5<j)?!YSjbmaEEM}sE@bO0mWfs)m$6kB%S6X1m$5An%ccyF zZHQR5m$8g(k60#pP5HNMv&1sdY0716>%_ACSWj6wo9Q#}-H!H|Uz_&7{Xa+dgrpa| zZm1WWtvkU3NFS*G0Q7+eqW3NEhTpdzdf%eWyzc<MZ@QlHK=Dt}QSzm-pX5trH_4aE zUXm}Bog`l>`$)c2c9DFk>>>G5*+KH9qJNxXzwi{tjlU>+N&cefBzdJ52b#Yqx=P+5 zh-$;%qdQDdLHK(_f5|%pQQi1^bQdWq7JrXkGL4-PCP#F=BtN%rHMR8-tZB1T=0esn zY%{g(5u&H!XC;23;wSp4Nq2%_`)LP$PUfeXsjc`6Tgw;N*=1_GBc`_D%eG}__Ni^e ziAnw4R_x3%;|Os|nc9w>->0UFm$#CCEe0X`PVIQa)b<>h!Op=`+lzN7U-TPdpUgah zH-UZm`*sv3OZIo-t=mX!TmHJ(HPgjg_u_A5i@K9;XNW)8R{nw5X<|Q36Mrxz|A3vI zv?Tt3o$vU`wHpKND&I9tysP_j@viN}yJl_APSo2U!FmyPre-^ICM&RWtIPhwHjb?e z?-uyK7KpbW&W-@<-1uwm0(N@mJDB}bzUH!nBwk}DeQ`Wyu-;a_#!u<uHP++tzL)*k zR_e8_*x?kfZ7mPi4AvRTzvF#?c#U<7TX%oAje2bxb~MFn>`;nBI)nAq^6&UCXotgD z3fn!r=jQ)XuMM5b`99olIUn&%lmBG3TkLYSl%3B-wPychXLGR=*+1F2TpU04Pj)63 zM~wZGoySFsVgF=j@!1k%r|tdNd2RM)PHS(y?6C8iYg`NP>w)k8@B4e;|NlL}u0pSM zd5`M2ldZPiX4~o8Z9ij&9e3J!<}M%m_$NO3sZZ~^+h;!exzB&$i&L|9-{VVP{>q+v z?fun#e&7dx=!f_H+K>F`kNx;h{N(JP`sttf*`NFQukW}2oNxTXFaFXmAMh)``fI=b z&ENRV1Aptcf9H39@Av=Upg;VhZ~gI~{OO+^{O5o1mw)xwfAhD8{N1;|^Y{PokN<S& zKmW_W{@cI*$A2F7U;q6-had6X?|IH#XPz_PS>P;m7CA>czH^jwv~!GetaF@mymNvR zI43$MIVU@(IHx+NIj1|JbB43nS>l}OoaHQa&UPZ_9Oqo;JZG76zH@=I+=-nFor|1{ zofXbX=Mv{qCvh%wRymhDS2(MkHO^Wmb=EoSoej=LXOnZKbCr`hS3B1@*E-iZ*E=^j zH#)g<lXJ6ki*u`Un{&H!hf_FrI(IpDJNG#EI`=vEJEil0^PuyP^RV-X^QiNfQ#p@2 zPdHCHPdQIJ&p6LIwey_wyz_$dqVtmTvh#}5IIlXdIj=i!IBz;{Id40y^N#bb^Pcm* z^MUiB^O57ZbKQCFe0PDn&|Tyn>H6+b?$Pcs?y>H1?(yykZs4Bip5&hFp5mVBp5~tJ zhVB{eVt0vqrhAsV)IHmc+;iM>-SgaK?)mNo?s7MFFLW<*FLqbBE8R=nOWnl1%w6SP z?q1=pcGtLT-PB#@u6H-M8{JLfe^>HbFY<mty(_(6kfV{(Rs8+?*SqPlQo9=(+|2Xz z-^js|_#1ZdzZ>iM#qfroYWXb5`W7u471D3BEa)NmZ5FYze5~Vkf7?A&SAST-Cl2Cg zVsqAF`I$_A^JyVbH+6TPv|5QyTdVvrLR(Z95p^R{8-esH8`^DAJ(8#!ka{3DG|Df^ zw}|=#U60UiGGeWYX{NWdTaO~@I;3{9u4<Lfw7bQ1J({Q~Qqgphd@j%}s>cv@EmFHF z_w>5*c@?*)9!u0UhRTl;Kjds=!RL`PYd)9Fsp-h4{KxgO{8r2APSz{f&7d_U+6B|} zlxX}~l9jz(#ek>#D1=|O^4pZM1<yI2=vN>e&Fh1wX0*-<djiofM>?9w1Wz7kPV6lA zTEFfA(N`fo7jq}*J)>t1mU~8jlE^Q?@t!%6=$9eAo0mZA2g=<nasAQu5PlND6NICO zdN;<0i2R`H=YtLDClmcrq<0TV)~jBr-z3R(w@&MG3ehh?diU7ePG`H7KL!*xAYRtf z{IG2x)&5kHva(ANtbDuvURb0iGa1?)rx9ueTH)@2frGMdn@Z<&B43PT{-ij5&CU8O zvd-#B>O<=s68Rz|$KqzzpsXK)JS3k%<O`A9J+Nj_*7HIP$%}~`Bf07yw1D@9euC<d zyoAWhk!(B&0n64$<eo|73y{ozCcT*>Xg;u+oIlPY^7%;idYS)q_lrj{PSQW70grU+ z&QQZ&Fj-2{mZ3EC`#b&EHrC|z9vj;CXA}86BzxkfiKs7pSD6o?u*wmU&qcENLk1?B z4`Q*(=MecEB%9x`W^!fxcGW7MOXLX2{42n+zVLsTzb&=O=MnjAB%`md>YsjZ=?E?( z@=_$D@2+}AcVJ!T^ND;Gl09Q@u=?Awj)3nK^Ct>)?0-Se%CY~M9ovu6g`!75^$?4{ z%e|baOOVPwSYqp@)pCp)6Lm3CGpMo;sl)=X3-G#LNYpcs%08en*Oh&cwPp1pqJ~I~ zpvpdn+Om2vQBOx|_i2;fuk2%|EvqYtdKyv>13SPQgRUg#sR%s;poflF(MyPVieVZf z|AQH(PT_K#)qRO#_>6vO@5*ui$(^hB<3W5~^=bDIIQ-P#IvYBtC&WGp*#`i-`%;M> zZRu~y4cV6w`$S~3yQIc?`)FjVzm7PBuOfJW@Yw*D-&fLWF2DCRd@Xc2!B0TAxa+I; zxcqXL#&fkLLu-Bo!H-9{xVx<JOkuLBl&U<0uO|3$2rt+T7h|UvN|So6%0v1Zq92R& z+|XGS&-mRP7H6K~cv*e_kA=u?rN5Y4OG1w6Li8T-&`+!mvRu}tL^~R-a%!wHUsdC$ zReV(su;A+meiXtJh~sY}t1s^j?d<gg_YodJT>th%9?IF4HQzw+BM}}#T>msc;`>_g zjRaqW@BrfarvVb*%Yttr_(FvH5ckljw%E<0UrF=@NcW)5$1!X?D!wXF%siYI@@)=B zU!luwkynw(`6#ksce7NJWgAnAqPRThhCzG<R07|FYJ-PbS4Pt2p|r|KV{&51)*;~4 zM4pS}63Wq7`5Gd7NG_lpj+L(^@<;sZ0>;oUhjK7hzK+NrA~}V!KUTh;$R8j%fwDJN zzJbW^BRPh0qi!g&T4${rHxl_hBu9qK>Tk%3{5Vu*g8T}4-&N#2D=!b;?O1(z;0sm{ zl!74^54mq5>N`knJ`L(f%Zg-Wv3fI6TclP{t;eXh5cO@O7Emq6sJ9aJEu>~p&Bv&> z5%o=^CQwbssJ9dK4Wx!pjmD^V5cPGW`cMtVs0C49GgRXW!Q+}bjmu6k_;lZIkwMd) zy)3U0UhQOE^;`CFgX%=sKYXQ0JyPYNp~ziCZ;;+VJye?1Q&k?)?<V>yNUxxtC{60Q zDi7)R5dCGOmr&1?CiPO4hxB`i{u0s)s256;dacSs`h7%y5$QS9E2T-jRplZ5exkpC z^bG2a(xe`!lk<>X68(9kCx*`Idd!OWEXvECN@Xde-akN6p6gQd#X_l8QtgsY_032& zvA#ojkZ?6x>Bv}VwsHm18=L+R(Vs<n2=yH4l}&$`=+7WMfO?Ab(xyK`^rw;TK|Miw zVbdQa`cp`6*@ybZ=_^KhZqpwl`jbd+pdKMTv*{JlpFnyIbw0LXvoVP4h{_R{4E3(~ zk|D80K29PZN0F5g$=X&aisF)?>k!xqL@I$d4As{RwXr8iT7}XIBaO+SAzO!qPZIet zB<D~L#>!6-`B5ZiQ1-^kPZRkOB&Ser)hCi{KU??4GemwE$qAI3vGTJ-ehA4Sl<To_ zP2>lW96-4mD?dl%2axO=GONEHEAoa_m<i;P;rX7Gmkedc>Pv>^6I|)XO{_>*Jh*>> zsP`kaf@(cReUYg5A+>;NIYxbnsP`f@gK9oTeVM5DAT@z%I!1kksCOeZf@(ZQZHRgo zQUj=lW7JoPdM8rbkAs@!jZt4CYGJ6xB}2n-eHxcz9nbj60vS5J-plfm;f_w$RlgSN zt4C6;`kI2&LqjJcsW*szJJKtt2TGHAtja@!%QuOB8`4XtM@o}=s>(z9TSUJV=>^mi zrAa+k<stoTqThn_9O{|Uq+Y7>klqsgW~66OFO(+rT9t?NcZhxy(o?8cN|So4%0v3Q zM9-0)7&^aXU`2dx=H*7!RF*>O{d*+k#x6xy^xWt{I9D4Ssp#($?gq5dp|R3T%aC5# z^bd%BJ<<cHr${et`iDfn4(UGB6Qmb5{Uf4Zi*yg_A<}c3?#<QTFP5jTYmnZ;@B9Tw z&usc!qF;^l2I@Z2Q=2}I=o!*$sPnN6`#z1h!t!?&mki}6$t8m=az2T?3Pn~%B)?=3 zMRCcX8%C%Scx$#@GAtlzSE97SNMoB87_xPcypYJ7keor;A1f~+@<t@5Q1-^kM-q7h zk`pMmACvbe*nYO|4WG#CksL$087m(}<aJ1npj?lYk0x@8<Pgf$Sos(tuSIfT$gKYQ ztSI^qGl5((9NV+<l3`89>Pv=JJQ_fco4g?wUosp=)YV9>q1x~t*t4cmm@A9b<B56& zQcI{-W7HFfdO1=vsODqTfT*jGnm{!jqn=3A%a9sDH6Ej$MAQVS0aU{=>d8dC6saCm z{W0n(M7_jNjZ21hCcR|v*)Mk4?*fLuiF9f&%RYByC+n);Fw(e9=P6AN|3XzB8vdO| z^c6_2p&lqr>ai*h>8BI@Vx(74kCZ0$RF#MHkmwg7y@YzAG^yvRJfxpN^b3)mK|NEN z)GJjU(iamwMtTbMQfX3eRC!2WLiFWGPoQ2aP3oRH-wo+!68!?C$A->M`4KDPvnVgO z>|rmPt@me<l=Hh3Ju=GFN~&FAaO9F<DdCo(l@5)SW-FH>y|(FR6a74-2T)ItUfJ}B z=;tEchkA_k(x#t7^mCBzK|MlxX4B6ldW7^=JZeTC)ez~aO+Sz5XCu9adVuuArY|G< zQlwW<=VKdo$sn$<noo3>3?IXn46!Zpd=hyUiY$#t*0u^!6qgKoB9>4k@P=W#WVnE& zor%(NBaLlZV93@%@^T_CL2?FVf2<r6c`=exD0^e&3yFLNk`pMm>}ee0{KfXOb#Gim z<Pga*l<Tqb#Y8?G$q|&RvGNKcpN8ZR%H>#jC6P}>vTw+&{(7v)8&+;6kV}S3dRAUC zoYJxSlA#gb7}VpYR{k;$uy}BPDN#>GY6aDLjG7SjB%~HlEyt*r5%ol*W>C$?sH=z? zAT@?+GDf|es3#ybglaTKy@II6Bh`m$Fh*TX)Z>uaipSgOn&pjA*AVqsLp3fL8vdj> zbsAR#H2yrS&0R9A?PYn%a7-ub6|BYj>OQyap30)XOCK0I8A+u?KN{&3)P1GNb&phe zXmGiX=tm*FgnFnnsVAyDq^~EskMsiSvC^cTtMZV(f#^pfJ%@UxG^v-WJfv?V`XZ!f zP%o4w^;(sO^i4!xi1ZZdmC~f%s`8M2CD9ikJu!4v*JD=1r+i*+R83_mvditiNpuxS znct=8ik=xg2<K{pBNaU(+&r|>k+ITDOOamL^s9+J7wG}i6Qq|m{TiZsNcW*0BfYTc z*Ao4E@EhD7#3O{~HvBq*e;49y|Eq3(3`2xxHvD>m9|7?O;y%Jt8-4@94~KXSaXzkL z-w6^|SM4t1a-rB6UoIrJ#2ZQC|G>n`NMy~b6h(2hu&;VzMWh0FLss3)Q1i-3*nh*Y z!U$s<78tN~czhFq{|mx7g#EGb%>+IS!Wo3UvG6Sf{!a+U5N_FH{zhFX+)Cj8fN%ui zW-NRgf&U%CA%yF(@a+WtHwXt1uExT55cppq>>Dtvw;n6<_EeYw<SL=)Re6>0FGB4v z5@1NnibTa133n3opCMX7v>t=rMbJYbT0pcMgWgThe}ZTR(R>Vg4?+JCq6tLPG3dPn z{RfDK5RJy5_Yw5(A?iak7=zwV(C<LB6%WYPgKuvPS`zfzJ!)PYFk7Fs<xtFH&z#=u z#lZtTEH4iJPQZHgYO%I@$kcA%pSpNM2n?JInI0tgArP-1?kh~Ld8EoigUE*n{<jb> zAs#AB;;AYR;SUr1Zy;VkJW-g$b5$O~A0hZ(Lp+CgrZ9<@syu{0O7Opecn0x8VG^%Z zc?f@u;C~761mcy#B;Km>5MB}dFCZQpI6K2ftccIWyxgcN%0kFR!Q&+4&qau?;JMLX zaIH2pQo)}f+QD#@Lt~X0mLa^d;ZG9$&mbN^JVtnF!=EDfpF-S+c!co6hCfa4KY_Rh z@etv;4S$B<e+==qf3T4_Lm@n~;m;EMTM%y`?jt<0;Wfek2;w!w`4EPEejqNMnw`4O z4|c#81hFmgIg<E?FtIceS(7S6QCtwrRu=@J3gB(nc0uqw2|Eae<wh9Wu)u(=7X&X5 z_zxhQLD(M)zewQUhj0pEZ!G*0fqxIe3546Rk34#rz`qOO7{bk1_!R>G4um5J*JI&^ zz`qUQ5W?kH_*DY`7K8%>X7$!*Mc$rrGk{zWyw<Dog5W@*>I;H)I!E;I$Qx4e1;OhC z{Y{8g5Up8}tSUy|An0#Ew18+i27QyD--Kue(R>X07D0a<q6tLPG3eU_{WXY25RJ#6 zEkS=3q5(w1G3Yx4{S}CM5cS8P?-KNY9yKlqTJ~H!eb$zvFrPggeX|z?@Aa^}Aoyhg z>l)t}Ps(F0!Bd#TLscFc;=NDsUxIiI@jzh`k5zdH|A64X2=M~qk-{XNs`3#2A;EtE z;yJ_<g-JYD<stkdf`0?z8N@S%NxW3$A>5mXzok6~;wi)ng-N_t<sp17!S{!F0`W>= z68F@}cnF_I@ckej8#uopU`2e|<mFa9LXU-z3xfG1<m)0tUl3$!73C^7hDI(377*>{ z;VOs5DzjBf5nkKyg#`aOhzAf)5MJ2uMFjs@i2D$a5uV%dBMJU95O2jy9(tcg2+wS| zPw=0Hcmwee;i(Njir_y5@fzX*!V?>QG{I*>yn;9%!mv*W#KluHqx*zlJ90r_OFV`o z{v=E+jYNJyAd2FGU_X69paOV<uw4)wOTvBvhGj+=+pxfZtrrBx5%|X;oI=<i3m;G5 zAA@iL;g-)L#XomvyTZE0ClL5YAsj=v84Cvl{t*aA5U$6<CldH;5Dp+*jfGDl@V*fC zAzY4yPbTmWL)bH5R&QJOs9fHjGBbc&5S-Gh@`B)pgsLwHYVpL~et0yb;<5Xw1pPsX zmJqGRpr;Y^2Oye5v>1b)PSAZInnE-igN6kCDnw(5CS%Yu2)Z{!Lx@IW(8UDZ3!*+m zgE8n5g6;{?Mog5bt5nO1q@v;~btXZ-(xb)&LCrCB)|Nw>Ry}ZWXn=H956cUJFAG?& zUM1F6_uY-cBp#?oMGg(|mJ<9+5HBI_D@@{%Di7gj6MPSd7Z48>Ch<g-hwzBtyF)yO zc&spqXR17epF{9j5YHf<Doo;qDi7i35_}5cDa3PyNxV|!A^bdoe-Yvd#7l)qyiw&L zd>O&N0P)zsSsjm95jPxOu2mIfA>@MKd=m0`5uz)2YV;Res|<}?5L`gC&%sp=j8$e> zg7DIYFDLkCA?`ywMtEVvV}gGM;vU2!gy%N=LW1uG@s>@|V*H9JKzL@uFCzG^5N{yv zBRsX?7Zd!`5U(NbAw03+D+vB6h*uEjLl|~JAg;{X>D>hZdGu*)OI%43KM4~{Bat<! zf)#mYpitIs<;+gQKUlk@4_G`?OmzJT5y0CfYl&NTD?K?}TwSn$T;%D_B{SmL`~A(t zl6H3~iTya-t{B4JSU4f@#~>U*xaITFs!N2f(;j}}^<@O!1;QbOo3ZdJ0?&kS0O5Kp zd^v%4hOiIeYAk#Ofp>zi2jOxoyqdr}Lbx@iNMO}1H(_~cFnsjZ5P1hEH@&Q{6nWd3 z*58XIm3S>dX9%?GidbW*8M<;#<!VP3`zoi0db~enTa>9S;?o|pvTVoww`S8mbJ3on zy>8DkSI#M52rC*P4651csGG_hj!}?oxqZ+&611HN%3%;I+Jhn#BwKPHw4MY_7eN^e zVnusUh=OFx?t?avplwA^3WHeD9u%M;+0y%<jU;Fr5tP6nR<sBCC`h*aK4=pO+FAs~ zFo+fHK^_W{XM#THN)oh{2#R13E82rvRSRYHmS=`O=qeI45kVmgVnusUgM#Flq7TYQ zQ1`&>2G7!Xb^k^%rFF9#YoJ}@7V~to#>Kwd(k<kTQ7jan9La^e;fRIe8^m%UujFE( zc;ca4$Sb5+IAxf;@`#0d84LM=77O<^7V?847S1*n@*OA^?k8rY+|0zgi|_yb#Jlc( z-~ZqLJ9~gloxAM&Q|JDlK6UO=F?}vO3(LuG<4@7aZ*N7D--?O8_K!cUC%;WUec)F7 z%%dmMoagDkk*8JhH~fs1e!4qTu`_CS=iU?l*ZnZK7Z&t_yz`4E0prgxHzvX5k8jex z@j>UDVSgd<<y2t$)^hh{v+i1m1({FbF~@b}7RI7pmbdKiRABr*rMkRkJz2uWk$i!E z1UVm>l3U?N_N?3?cq%Y75tf=^46yjdrB75m6&QMY{6PcjiqWG8if01b%*3+RRXv)h zcqXv!F}(Wfl|PV~>{q<5#}F0I1jZk!X@2KOK4#UruE!D;&ji*z<4~_Fe>CP6*Y!A} z;+ep@hn8uTKY4G9>hVOyQ-O8UyK0p`QfrIq2}Iq@WMKRWKe|21`;hvX8AG=SgI<>H z3r`1TKJtVeIz3gV)b&%`hVF8nNOU|Q7<vptiJoH7s;8n2=_e5#PYKrjDqP?0)Q<p^ z>+Y$?><#HB6CKY9hJR73o<^y3^$_SG{S>0(Nx{&M0nG;y^ZH^=?o6(>PbE5@70mpJ z5!3MG&Iid$hM`qIjo^4zu<mCedbi{G8(Q0}V5buu&kELkX`sJxAiuU~o<jHz(oc(G z+d#UNkfh*g!SrW6suih+Z4B*_GYE(01?#@Tr*{eOrPw9VcIeVfKd@maWHAZB^Me`R zt<pDR<m&4mWDm(ph>Rx(GrqlnW$W*0&m=OQ8La!vS?m}r>)#d*t@Bw##?yjT{Y`x= z>+iY`$xDe$<^<cktbbHAB%e)WJRg{GD;KYGq`t8|Bu7NX(|%?BO*?+NNaZj|3?Nn2 zW_4vV1H5y3UyhgLL|=M<7Yo1Z)>zfnUvuL1Pu*Z(Yc98{ADW)q%d!K)6MaR-nlst_ zb_Q=mv7wU_;dw;IlYNCyuhoZkd|%jZXf7i%p6m<FtE)d-+md`fk?~|-XkK0LNrG*i zFCa3W?8}^2m+xD3vujK1yqw5*vad#ra`Xu>Q%7w}a!h1A*%zOs*SG+vSdlL<zY|L@ z050rVS)uV{UxiTgI8Dvk3s^k<y@;rIvabxPYSvz>dNEP)WM6zjU1L<OX6?1AD~O6G z`wF2Nu_D>Acn_>3DxU0XGqd(u*Yy&j;>o@a13SPQv#OU86wmc_2tW@VvH1xx@l0O_ z0`uSz=4Hg(%sgKQFwAIHJm}zl97oQ)t9n<SdGRb?>@I|ASnMAM!rRD)_B1)|UQTE{ z#h19>s?P?8K-xOV@D;?y6MTsqyxKkt+SW;iR}&jg?<MXiYa358tmg$D>Z8{X9MA5> zr+qVac&Nt7>>SBou+B2PmgsnPuWpVxz3zHKWT{)H8BU3gXZPZh%o*$cznW)w9ntaZ zUgmsrtcvpq;&_~S(%|I-`Z`If`+5?BC-;g_<Jqs*NDbdWG(5Lg1!u4d5kA|3ZzMRL z+6&Dx_rIA>cN4+!%wA}cx&O_4x>ph$Pwa)}nDfwXG3O;DJN+u6<B7d8xYHZdg7iFv zL+vvoI-c0eoMVpFHa)wwY(btew;WmbtBH;$_UazUuiIxOYIrTaC!cf^d$A9@&;?^_ zyT@=1iNq6oMaJ%82ZB!+Cr&i{uCg&}*=8;ZuI+s}hLTfx>5GDHjyQc$py!0+J4_w; zp^Jj+dRcZ&cq%X7SaWtL^n7sgQ0S?>h7R=gM90&4q50wTd~i&+UKHFwWIUZ$V@xx} z)?3d7w<Y;TBID`2(7bSZ%C{}aIg#;nUgq>~Y@K6O=e8u@L}WajS2vTKuJYz2a@PHP zGm-IhUglJ9tfuk#*?7&a%ylQ93f$7OvO?qOyt+Bl^hE)moQ<$}NPH_%@pN91s1#a_ z$Eddv6;J2Y&6TEAJ}KK4*Y$Ry;_19vcmtnLo3=&u4x-}ey!Z@e#sv(YHEoM(K~y}Q z7oWk*Q2DHBTU75PDxS`Z&tPV#eAcurs&^3;Pv^yFFf&v>YuXmoyNSA)>Ad)CY5IiA znk|?0L{LK~;Cp&mo`CUmUfon_y6NgEu%xahf*Lvj-%E5nofn@Y%@|GUDX^rjCxRN% z?;|>%&a0b{O|QG20!!+Rx{*Jm-%oTrotF>ST~C1}bv?JwkX{lUPv^zwc{BEmo&rni zde);M{Q;um>Ad*7Z-$O%If`u`m^?^yJe^k!^+;)Q-Suo!L+kz!(eZR%<`i)3lwZn^ z>&#O=-#9(J8cQJ;2@jJLJe`+s^dOvzY?b8^!r|$>(A;k=+9jb)f0XEWIxjRkTZ8n# zrawk>Je^kx4`+>Z-=<eY$J2S4v$L`NY)<vb_q%7)A16AV&Z~QreSZo->u%2ZMuzfF z5FJnF6~R4|Bi%X$+>=Dd(|Msu+W6RpeU>B!#6@?Z5Pk|@C|Ku(dx}Kj>AZYngIL?* zQ?2n(@#(=-e}iQ+7Ya}Jz8qJ{3B2@$LM!GM&=(4NHZ^``uw5uT)624-!V`F*nbq`6 zYVw?;C&wB(=R8YvJc(B=)>~JjM15S%bn5`NCNiGH3r%SjkCmSzGM>aMhwB`Tm7gav zp2Q1HmNt4Cwik$uC-Fj)rH!73?L{KvNxaO-(pXL7^N{hHU6^}?TqwNMv$8_tNxZtb z!TQ1X5Q{GqUM4D@#EZ`bW(*SftQ=%zvHA*8@g!b+E-*vo^N(#&ZHS5|@v5N8=O5dm z`YKWJBwl<jFk@Z${9{{GUn44>#EZ`bW~kX1^>w1+Nxb-6V1~-)AKT)(zClzxi5H&> z%uu5->YGH}%p_iX-Z6c`m8VEOb=A;->8)OtCty5@7oTO!7*gs<yQHqCt{OT4zfE*J zi5H)B%+U3uT~gOmR}JYc(eWf+XaX`lX_wUX)Kx?JJ4DBmc%cc%^rT%<*Hc#w>F*L9 zPvTX<J)<Y>l6tEq#v0P!BRZbM3r#?#C+(8DufE4Mq`yyeJc(BU*IiHAC3QWM(vbcE z(eWf+xuLUDe#VNpUGj2Z>>+ZY@F7XTlX#hvV{*<nI5MRCh;VokFEneKIYB1Z%^Amt z?#<O-AeN03PvV7UO*3bO<a(pNAu_bX=Mo)H;?+F}UXPM;RXJ2ex9RhUjwkW@e~5ec zAkT{`U+`DYuBPbj;$1)kzv|{u&9fQ>8f~TP8!@rOZp>ZgvAe{^#$I=C>@2(c4{`6^ zxW--`e_j2ccv=EB#k)YXOQf|Fl~NH4L@7a`Rlw3grWjFseAf7ya)yyTpYzC*-^}m# z*VQ!66rue)`OQ3e&dHM}^W^I!;my+EX>9|L?Z~jFLA;XiX0r+HZ3B?)%&@0Hypr%{ zY4EiD?Ig1+!=485YDJ1pt%$kJCiaWT3qFo-tG13w9fkRJRqoEJOoMpEG0&)PEop!w zb`*vW>L^^}_;p^TVY`B(aDXEV1V<r6IfE*-a}>rMvvz?rY}X=V4oW&@axf*ecnMWq z;Mxp(8oDbEZbpp|2Qq8xC|s9ePD6J|oU}mqiUXNlpJ7fzcg>Y0vf@ByH)NR8&|Pmd zklBqH<}`HI8x3T3Q-(PW-4zEigQH-Y9qCDa%;^1&Ruwu8-8B&@G@(W4G4#^e7;QSG zpUAMLp}QmiM{qw7cI=>7KagQfLwD7L8EZ@H%^B7-bk|}zaFvA_Ym4=k3~L&?t0v4? zTdcQcSkus5vt?Q>%vf8jAIz|(p}T6rjJ3tOC&QYC?y3nh))wn+8P=N6T^wG_46d5U zIQ&&MVVZQzYJk(wT@t`77_vhOe|39?Jq_K3$YrskU_qUf_O{`#?#QsGp}QnZTA+P4 z!QM9f)twpkG<4TeIq1+Kg}=Hh!=8rjI#9-bNa3&U&akJUyONM;ONnGc7^13S^_~oS z8oDb9nbxvFT3a<lP^!XyZ-zY$-8COchIAcK$Wki`c*1z1S~9(#%4$hNcg2A#fo?oP zmrdpG%h08vyOL;TaqvoDZ?(gIe}+8`-4#bOBW(K<frof|RRaG|hCL14B@e`hZj=T! zTe2udRoEZMuqUCr4ieL>ZN#(>XULP#U6YZjkX+J`W^DteeI!Gkgzie>rKJ(g+Qv)U zn;}m^ca4`R$GnC%huL$OIGUY=r7Uz;+c0O-S&d2Pt~iDobt?oWL!Im+j2zTQ_^6}T zDU}54au<PP4Y-S7N&}l<BUV*Ueb5o>2$cluT4cmQJEvpBME?N`pirfqAIp%xo305* z>v$5tEFh0#m$h{e9?B3W0lSjeWs?!rZ4vLw5GMh<lGtS{4vO~i3~>^$YpyKk6$eH8 zM20vC*fm>5yyBo}Ga2F}VAo89m{bfg(paNoS!bIFpLDFM$VtF130xK?@l#b;Q`g{A z8PX(Rmqg+SND;#<BQ-_(aEA11R^HI%mdd)kOyEJ0emX;%1ngQYBR#MZq@T%<CIP$l zmys^41nFlpq)EW8xiZrEl^}g2Lz)EankgflT?x|J3~3UuYpRTNdL>9dmm#eV*fj}c zW?*#!HXTJt%BDu2cf@LNlYm_lOs(5QL#D{vhQ0bihWx5B@8f0UhZOee(F}PKu&Y%@ zen?@jzL+6T0(LExLk=BM*sI4f<VnD;BuLsJg}wSxhCB(_wOFQnDQVD&b|dIqhCB(_ zl>|v^88X$D5ca8Rcz!%Xo&@ZQgQSs;Bdl3!;Q&t>M^zJyC$dVCfL)6T$rBN_%oF%> zhV5Nt1)nPmdm%v{BGgsM<H-zp60mEwj64oa2|2XdQT~+-c@nTI3B5L-P##A`%f#~4 z40#f;D-OLzl+Go{+XhK{Dnp(G>`H>9%_hj(21%RGkS77Vk|1d_3G%i<(!Q1<PXcx& zLDDdVA>puZFtJYDfGl8F+sJ88XEi1PyIPS7QI|rjGwxEjd|<a@sPERCDSF1y>+I=D zR{t<3S>&4&!3~(T>(ej?HcD0X(yu#W9hH(0U2&i>l2M40rgmo0!X{Mpt8Zk;lQ3Np zwk!;JAtV|E(e7&Rvl-$fOxHY%BOs1Lp|wT)T!uIa)0IRlTX86~{TbpUOji=IY{j9_ zzL_CT!gM7O%T^o;?OPe*Buv+IBx6!B#2MpW6scamMeuFMs)~F?S&=39SD3LQ$XJFo zov}ZkAx*+`A=p>seIgvkL6N?YAx*+`E%lX<BEHx`k-nHAO~Q07mXTUOvAI~NDf{2a zkS1ZeY66P2MY@n7O~Q1|l_|A=Vr`LrH$$3)>8c4R))wjaGNehEE(H6ETHgYSwMF_j z8PdyLPl1dcvTf3P0f;LW46NG3IM`L@2E62m)!-&!x)4PyTDlKmxfFTZU{~MIkSAff zBw|^xi-#2K>g5c15~d3w%Oc9>qL<Y0p>43Mzs-;*VY-&e$PX#l)nbM`3DcECFI!9~ zUpBaEkb5OVo`mUIEK|N@$h1Mn+l`=qmmyEWbS;#Thp=3VJcLZDqWlLL@@?fg_5KJs z+yDa6ka5QWJYgJFO)y@~DoMh0#c?BnZ9Kx3&3Av8VN1evr7_V=xGIlUJLEsgkSAff zW+HhIrEx$?P#%XX%P9YGhCB(=6~{y)WQP>J>_CP*3DYGn&4+$}NYTswK0}^_=}JPQ zrP0e4Er?T<4*n!Vo`mU|D9b#JUbfH<`A;+CTgnQaghs;@hMJXU>XS#Z8?c;(>1rE{ z?PpnyNtmuy#17m5ifn{Bc{jjr;FGS_xB)+R^g4Tzz+Ax%kcer)4G2NZp#JULfL}Ob z9hH*6TuHRFX%oBls}T08s*Qh{Ay0yH#j(ps7*i4QwzKu63~>^iOQN6!wVzxm;(y2x zC&9Vqqli>Q@rnbW{VGG81m{X3tF1Ty+OIRjBV|=jBCEAlDvIA^h?C%4abz`8F~mb- zjgBkGb_0IvSXGge;9Qd|;NS)z7+Qukod^FeLz)EVk^p4^DFUG#6zM-^NR!}P63QbW zMXa)eB3;gqCc(K7H!Pa6E@^bC5b+QuB4z*g8PX&;*Zwlng_R)vrwnNloC|ToB1#de z?4a!bbB1)-C)co3Gi9W+D?$2NhBOJzg}7l6r3h7aP)h$LLs}i2YZA!Jz^Y9QfupLX zMSpO_YH*X_ToRuwn63~nOOc1bQB?-_^$d9uoU6s62*^XcEJYpyM^zzjjitw{li*y4 zdKS9@(HnF45CTV4A>W=MPl9tvgtb6<h?k|5w~azImLX4qb0Nf9M0tpprN~1>peo9D zWXPLk1DpgzTTa9h0wq-;-<cs#f^#JS(bB+3A;eP^@?9D7Bsf<b5RG(vj--@!9Ke&t z5ml18y}PqYlHgo%d`n;(kFaHv>1#4<NpP+t5?UOJ63AQakdJ4`li*xQB((iWpr|+~ zUq<=08S*4JR~!kAD4kD`FIl*ws+PPiL!JcZlGsh5_sk{8541ymeTICntl*R7-jhaK zYa0;lh75TUoa-Rb*7mof{KgD<5}d15rW{ikl047UCsvCakOk+OZ&%|@S&d0>t~g2> zbt%L(L!BXj8CjgR!MWb=6_kQ=p>I-8?3FDH56*Rf<1U3sN)nB1#&}7p&9rwSt2PPF z6$c$7LZ(-W_yZZ@Bsdqsmqn&|YNd#8&JZWTx#r7=Cs&I2mJIPgxjQ5Q&@^6?#4V7i zTXjIHTQkH-aIV=h#VZbg_Q4Es5}a$Mj99}Y9h~Al8R8^3R}xuGqZJ8abq%Uzaa)Et z3C<OTRtugYl(^mI(PV}+3C@MEYWs@uu7F2DKdcv~da%Nzml_snU!l>9v>*Gszqfmx zrQlqxawP;tl@Q_(QA#V)ut=dI?YUmj9a%*ZoNJk){HRpG4T0?|+HY^+Do5Iry`np_ ziuy?Z_Z3U!iU@39k;Y#N9BI$?itfrPlHgni$`ujVzM{E=Bkk#4(cM`^5}a$XToHlo zE1FFz(w^@X-IG-$!MPU76%p9JqM4*3wFF+#y;(&PoC{H?B4r@3eMM7AMQRzmqN%JR z3C@McR#8O+wy$V1sYoq_S9D)ikp$<ONu$Wz?-@(Mxn@qF4lA9TgI-Z68QRpAM07?@ z<Q*7IM91MoJ|nD&P;yQjjEX}cIk6cfLU}lGI7&oAbK*#ph(_T=ek@iif&e*@9;c<K zIW@t#?pf8@@xJcAM$o^`ZTOGkE1laoguf2zx)Q|aPs_o0TCM#_03XPEbiSeSd-fG` zjnKsO0Phv$;$vRC)CyN6`F7Uidl#5TfYD7|SMkrTf*b70_YQS8yPDlQXdAA(c;BuK zJ<ZM?&90q8oivRSnu3YmV)U`k3ygg`3}GLkutJnClo`p&41_WRQ5nh?$_!^^21A*_ zs0`%`Wtv%;=8h&$;lOS)&_?+}88XPyr2;?0QJLXT28P>KBxv+V%8W#1MnV~kGFB!G zqoJNHQJF2F4CS*jX(ijD0^6*B<)$Z=6D@eKMhmXsE(=BDuD}`~Y1C$%#2r?Ws7W}9 zyQ?IT#5svOt0a*?If=WfB$2#0i94z!kvKSsyQw4*x17YCl#>KT|D12s^v}gU>YuC2 z{j-O=CpsPlqDlm@z4g5Hx>C34OY-fg$u~eWZIf<;pIfk5O|{U^5$ZSkb9jgw7OBl4 z_IU7faERR={2Ul!vEpan5buoOXJd%BNBZ_QkJ#GarohjlZ+vTmT^NQ22;yGL&>%rf z0YgoKm<Wc331T`J8X<^DVQ33MObtP+w>Fp>{N&1*Acjzx(X_fiWh_+whRXPC7elCw z&v-F}%J`ZbL#T`|gAmlWwZZCxpIjL~>cJ2y<BR1Cp)!6eiXl|S@6|Dc%J{7+hEN&5 zS;Y`4;}@g}TD7&oiiw|G*@<W&hEUl_0YYUb2MCp|4-hIlB|xa`)BvHf(-i96+F+F@ z^u1i!kbNjn*@gh2vW)>kWv2%Sm7NhFRCZ>7P}x}u^=xf$XQIk_xUx<5fh#*ZK&b4T z0HLyT1BA-X3lJ(hKR~GL0)@J_Hn^KoW!+raX8XXET^Jx#_LcylvbP2Zm0c7dRCaNI zP}wC4b!~010iepdxUx&_16TI80HLzC2MCpI4G=1OM}Sb-I|GEuE>oy;YlEx{t3)SP zHi~e0Y-&au>-ro0qaFQEuO$mJP_{6=G6C?heRR4b574(@mgZ+ia?oHN-={l0K3`{I zbjDhtNXa<Oq#1YCWSs5XySXu1^zF9D;S%zMlefWCHA%c|6FBLzV#{t=ttNTq6KrBQ z`JKhcZdkA;E#<LzIQ1RH@NO8hCar9-?s4kYqPZJ(tx0=Qtp1$(_F`~1Ok9)B1aJ@J z)VCD_yJ78`baH@=0H<CGa>>Xv=^Pf@Ax_;gM3$!6uU3kaE&;W;WkSbQCD;llUkqx= z^fc*?j6_P|<cmNq*`Ov}Q<N|#ocvbMi%aZu-%w(daPnI~FwxYc+wzFeN9#op<%OUa zFB#F3D-w5vlQ%~amY^Y=JYo`NJIhHIL=s+fyyr&}Mm!L$?z~9E5;cU8oEym)aXvKn zIgya(Jo)TM%81{gxi>{(p7G>ilQWMST-{lboFyIzC!ZO~dCC!-5y@HNd~oj5BRNZ; z4o=<}$+_i7HbioMcOZEv67$s|wP{l3agVW{7D@T4knz+=$nOfNr$jQoGNi7LM0`a^ zJvox_<stQ?NWg5Wn1&N0`HqCVgC<@cvN_`kDqd}u<5jE*9;f0|@K_b2g2$-%6g*nR zrr=R3F9io6DE+-oC8Xe56^(*xR3-`@slrgOU!|bn5z4-TG-crKt6(1(CbzG1Z>W0} z)g6FdsyP5XRBr&fsn!5=QJn$kq#6Uz2){b0=J&`SyS`FuceAJ2+g#P`Yp$kUq9Z~E zHZ36Q$mW{n+UC0EK=UZ_bLb&_{!@#jbh8q%&ajHGMz8`<dvBKM*GMQh2#U0z^cU$K z(i=qiMc3br(%dLlhtg~`we%wQ2r&rK|K~YnPI?Oc|7Mxr(KG(?r>0oTi&YdOC^k<_ z+%lJk0oyEdzyn^MbydqxaK3HeXBhv-v@v@FC@K@iP&3IQ@Qrb1bEAjWAgJ`{bZ5<M z{hmP@OFMKd?b;?D^}qiAlMg@H(TM*#IyyQ#JG;8NySsaOdRMJl)z{azdi4=U9MRu@ z<eD{W)~;Q<Zr#AZz)?pXeatb(9DD4s#~pY4@yDNV!r+M~o_NwpC!Kuq`t|EiIpx&T zPCKpHYz_?#ZP>7J<HplZKjX|Z&phj_vxbL<H*Grm?6c1~=iKwoJMaAS&%fY;3r0pZ zZ{B?2g>QN5Ti<%oMHgRu@g<jRx%ARY-$s8pUZzohmm2w`;-zF#fpc`DOC4d+V7lWy zdq*4OFum5_Km#pzB$JFCt$;!&8Sm()cHdW^q?Fi;;zz&*p;+tW8^-ur>0IR6YJ7^Z zyeQQY57-x-ZuG+AXYnLyD~M@VSeCPeUdHa&CLG%}g6-{wjo64uVQ!Psw|Hr#<!${% z$57|!Nkfezak>q@_?1dshR+h5n#l~G9Fe=S=y=Z%%>_G)&cEp1HhLUkzqsG%q(-Qw zGq9akbdOi0Y+q#PEHiHi#8P!K@AJ~i_FIMRVImA?v%vNhD`)#789q7Sbwyyi8*FbR z>?4Q8_CsEgvVFlJu>A=yt!$q!Y+p=-;T#g!zI^3ue>%e_hnX%9Z1;if&4m5z!(#jM zUXilB=@8idqL)^-hlTAY8$=mS;DGOKE9d)(451w3*%tU70N<Ap_R|lG?|H9C`QCU4 zd_Uu*mG2G0_qV_|&Xa)eEi31He}+&FrECd&H^KKefd16OV*Ev~Nf|%o5E%cimsZBt z*OaES8zcfY`dF+K+n?CTmmHhYa&mt`%gCcY0G~J#0WprOT#T<cLM2bmRg45N&NU#% zmx2F;!;<5Vy(*>s_!>!6jSfHY(n{!YHKkV~$DcbkrR7+W<8QzxHs~S8;g!qrSB_B0 zlU@GdAjj<;kmE0bf8em>xa?Ia?dxhJQ6<NJ_R>n|+M3cUk>ej6o6@pI<hZMY_{8Qj z<VgQd|M6U=Jh<BM=%e9|?O}GL<mnD}kmC*>wOhcy`mp49tyiVA_X+J2z>N)3&_1ZN z*G>$a_M04`(helF@EmAo(ys^l?mE(Qsawrn(XC#QQr?9&#AK8024<4c6mpz)+T^QP zlckQ_J&?7w8@tIr=&bb*Xx@Hgqk)+^&DFbUo=)u5?5!;((`0PbkB;apxoCa-#Kf?T zwL*zIyLloid+xF+VasXc6;+hok(HHg^m5sO4r))ieQ-4@r{8o|r4Rqok%|HRm%Oct z8pg94(6T(K!?poAU##XR`}k=IXV+$Bd-{v1U+(YRdr@cOihU>?5RpH8#h;Ls=obwk zw6tqHIB??{NMwWf^ut0t8k82xKtFyq)q$qld;QHWPU4L6lQYUs$+)ke{Uso$;bwHC zP95%C9l490+vGn|f;A2L6E%P))N8@3i56gwessZiShv#V-6QYg&6a(|I|x{-zu!r} zkJR6n(eE!>ra5wlik~+0)8l|XZQq^%^d*D74Cr;s`6QqVwb)kx9HYQj0Zdq_rvQD< zpm{(~8;-95q6J(YqMrsZs=zY<{z8GT19;I2eFIRTpPmJ9lmgEI*r33E0B=>`n*fa1 zZvki-Mc)SWKWe_`0T{X$0K8<?z6j_P&G#JuLkv`HWQSH#e-y0*o#HKOR*~SoY&GwQ zW+=sa{YKl1`rA#^&Q`$s*qPj)<=6yTJTxX+{1T-RE&c<e9!)-OEOV28#vpF;|DuJs z#WyOz4gOyh;P(Ey;o}B3QFDX;d(Fq~{Z|TbbN{IV+}d9@4BXtmHHh1L%1Gh{|DJv0 z2B)1b))H>;r|c8A_^SqSlRs$?xB35|#kkG48-8x{+YRDI-(?WDy5ZnP|ARr?>Y`HC zns!ByEF-MWid%D6)|zrQ1sXE2AzhKU#&d^ll$9FaeZ>J%R;E{s(?Z?O^Q&FaSOwEW zhG`=V(?R|^NV{prDOr`--a25mD$tC4>HhVOntXlOKh7kvyCyg9HgD)kXt=H-Hw`Rg zr}vIFWjzR6W%R$SqKS&4Og`sME4sBJcV$I++ul)8)G8XtIJ&1IcT!O}9Vfb(?*2V? z3bk@q?TiHN{zm>IUAc)?Aj25OQ<}Q}<Ec*H>LdD(Z1=Zj?YaS4o;>zAT9?G%;2^C| z^5W#lb$`*S<<N$WVHh2q=*-t0e`e~bo0+&%Gdj_wGb%cd+*Ne^8RiaHHX=_SjWX3m zduR=wQ6P0A&pG!Mvos%+Gc#lZ4CsSFFo2eu9iS=EzG5;iV*r;ifXf&#Nd4VPwdjv$ zT$C^cG<HOInWm|M4g(mc0gTfCrem4svP_(gJ~-N@b!iHYw<3iKatfUqPkX@itsqbB z?hrpRR`%nYDzdXhLp8HRlJ`%>kay4zR$xG3J(!pEoZBn%Cp|~0&HL!R6=hKu<N_;| z3gbf+`IEYcOBO2XR4LC<LTJ5t2S_RN`6OgZ8hR;f=zjRXL$Qh$-TtA85BrLRSUC(} z<uHJi!vInaEu~F9(^b5WmU)rLqaAt!`C&?YGJV199W&uRb5K6!BGKs!ZYAw2hDCy% zG;b%bc3;tC7$^3~mXAIM#%QsLXrUeb16=uR%!dKe+4PHaHU*Rq%IJLjhm4O?R?5e| zj1SyRiunND&w}ptB6sCTU77{_OKo>R1SGOdh4l%qWREQS<5m$bn9HEJk4+GkUQd!r z<UpE;5Q-J_2uh`mv9EwqnU7MZR9VmdloO*pTNbnqq_dRI)MTtN0iUbL&Ygs%6B&So zw4%o<N(Nh#TZ$(tvRg$9ol!+hXx{thtI7ibU%YSc`W}8a-&c%Cm*DPkIBompVPeyB z3R{?Ku=a8sl+Z@U4YUpPXVeG2jXrQJed#Q^JnJ!{uaj{nHb6$dxD(qK?ZgCnCq4{g z^t`vI8Y8SNrk!{<SUXDSEqCHYHbl!buMYjp02yudi;T7kC=ZlTO(v{p+Vfv@%04JP zA2)@p=i9o-k{T2Ch^o+h$I*O9(BNJWqoMiBUd(E?gS)lD-9pTX0WvhioY)uQgaRL> zz4Cirr`n0I4oU?ho{0`m;Dvc$;|xAtyzJPX5_fkER^;GfxzO2>wd*?uFx{GqPFM=9 z<?7W<^V(kV+P)~Y;qDO6q<J~2IJw#Rmyp^GkXpY;jYy}DG$A~>=-A=<Pr$C?^^P4w zIA5OCZf3vCx6avJFizT!oV2Hfv?GYLiW%4e&#3a3jEiYQ{j?@yjh+5wMRqfvi<$Y% z&F^p9lwZoq=jQjHtIGc?nO|zZqV>#RqMJLnhq-RW(kiVg7H8@@=m%anPc<(y+{MCg zpEA|uaansn^|<_I+3sqFuFDvbOGac`c)qc>I9VC``-jeba~J}~TJv?I)3a-pu66Zy z$cp;Iy%kHSo!jg`@<TT?>`xBC&?y)>2Gi3ke{>jzx=_tJ`%>Z-@;dvL;1zC5mKb)l zLILe{D6pyP@+9A`ihODxwndUaNe0~jT<ayjA_kyO_Lu0~ez~N9YFko7H#njv1(B@k zW3|yVQGc@y)!#gb>2KS+87$dzqghXM80aiac+FpxntN@Ftc(eEP<g6h;+70m&q|~b z5Ia$O9FvYP-M~~V{d~U}Y104Vz-=Q*gWT=~uUn_uSxo-?>z$RJ?p>Z+6@<5zpd;2^ z7{MbDoTtO#lw(l|V!d!*fhA8bJGv!z6#2;audoeOe@u-!%~6d8^%m|hc4n-;kNl>p zk1YBw#Fj{-^fzmi{$`ER-#RPWV$H6yxGItPSS!@2^CEO%+&j^!(3Lt|uUL~&`s$>U z?(|x;t+cBJ^$EVOtiQN6jeAk;rRZF!<jS~{21H)+IxqP->m1Bl(edY)atzRnqlXuo zDu$w)ys!>Ma%<Bq_X%pbzyI5Fl#pf2>7vo6MKf+wxW$UaVMvzCn2|sMmGfv-0Ws9q zc18=0k$LVWO>4KswVWsyZ*dLVI>Ove2|w-f8*7CUDgtbbK!Rz<-QhVWWmYVmh&mk4 z@}e1Ec`bqjK<XOYXv{R#jV7NOfII{+I$YEJ{t-7WdJcKbmAd5?3}qy)@JHu4@z=wD z7|!@$C!Ol#wNyUWNsFdOAC0#b^w8y0#Z8Xa5+UQsiP0&)$uXTy8pm3ph;|JWft06V z_Xd*wy3@0NUX=P+%FYYzw5m#4eGzH3`httDPIRI{0k#(gu)#2Zy$`9BJ3loJeTq6+ zYCCs3E#DAY#M|>`N6X@nG2I4@X)%ClF@R|?V34+#%ePp^y)u=P99v<6^OeFIDzcMQ zm6V7nTO_O+93~uz4(xchg4Tv(W(;6v3}9vqaKYx2_*=XRW$P##!KrverwyH;liGVC zZH(I-k<uzpVPrRgZug8@qh;J%(EY6j%jhMTGBZnyRRFVV+1MTAMvf>ZLD6?kaHDd! z*RBqsIM9PSBgO#~wh^jCv|d?UdL_*D263y4OXbSsOy^MV=$VuThZ1_$Li3Wnz;Sj+ zXvQRlkuPfH;!>rtNi5DiD$&H8zz;itkIQ8&@mPl=TQ(xUnNG4_n96q(RYVagZgrsh z(Bny+L%cstccXAz9yH*HKW;_g_&weID>bl~I+^OFjl0*0+QTO-)*JyXDP8>DSMW}< zHJSm^$Fv2toywXeXp(k%&}-Cok|!*ros>b6d)8X4oE_X^7f|c;!KEjsT4h5AmU>3t zLg{vB>D?p<;vBaRBwwUJQKJdgwhi|wr&t?KPQGZvQPc2Xg8_+dti^ucrmlAjL#@2U zCQB^_GR9ZjYM*wBwAEw|fo+%)vvZcvp&a7Hfrw=qK=J_)-?PsBS+7z%H^ywfd{NkL zyHy`L2&ymQs<n$$Rx5LmM==Mnf%g#RAg#Ng+M|sD-5caNh&h49lm-F!-Z<6@C6YOa z%<(<v4$pZ<JO_#Ut=bgsx2nk9PzACCsamkQ@D#+fkUawHq_oaP_i44YU?0OAh7SeE zlU}u6!-tNDq}Tp(3r$tdY|vjmRiWD_G)W<so3?u~Nx^eJIx(R;@PAq!JzK4viR58+ zN9XM}2!&NlZ-0z=5mhA=fimsysGOLD8gybJ4;#^tCliw)>h)`6fzMW-d7Z)lHdF@i z_-O!-pHit!Oz4veAJ#oJm%E*GotTIX*Y+n{lT5sA7S1#nz%&?8H6aNMt9($2N~dZ< zl4pl)5mF*%Oy7vujIjx4Ob2-}uM278-Rv2aINedVVSz;t{SKqN0W1T{rUM2^A)=5- zrth5K{cn%gr~?L8N#T}p-(s1E{?}Qo=Mmy$(g`{mOCu-sLwc2xMu%cOjq9gTI=gw) zvhN}xkxXV;SjZDmA`Q=DX0cw=sWVp$>-RW$Iy%T2O>7=yD3|HSh>+b)r1dnrN$t91 zaG&kKcRFzv#`ZZ7Muc2V|4_fbivBUf0Nsq6Q>=%}Y|4q!0Ya7s7ioTpO6H8$1DYVt zF}?4kuz2%)e!v^D1#>Rb0P5iRz(Mp@IJ^%yEs>>Vw;b~uT6^874(|{5+S)7V4Eh5a z0{{X8unZvfi!r)spRFSB@Z8+-#L$)9+{K-AL7SA{8)2*!N<@r9{JEPOa^4jWF|k=u zb>|_5G!erJ4>6=$%Cf$UV|u}3j4DQ*oBP0;6^|FuSbSlF{_=4nxVUn6k%kYtyLhBJ zxYT8J3>mL*Zf{6L3txD2+@0Hr)M*=Qg(7N(Pz17_sCI5cb{#{+#|vY~d1M!K<8Xhh zVFs}6GJx&30X&9Cr8b7pr_7YNTI_bxbquN6FkB{P_7yWREe0?x1~4rKRE;Hpag~$! zWK3|?SdwQaLX?z<DO0lQu_PeTu|zzviI^D!m>C0@83SCfRnBdwLfH!UKd5*_XJp5r z9Lr+&yfJR`#!y;iaxs}I-0hxGYqX4e3wpw%!7?(hmB+vpJGW(usnx5T+rY1mftZx} z7#MatM@WzP&Ivpt^#yPM4w=Q8=<erEqZvzM!Jyjc%=r!ACbDcgZqJmYOvvebV*c)T zi7Cx8M-xMa$y?^)6{qmveHJl6Q%^J)xpzIqDKv1OLupt*hEKNym86!1i^qAQ29Ff8 zI7QQ|2kr-*J{`E_y2XkHZVcMpGGMEVx6~m6H;vTnj1wU(&`Co!`=C85cgi1f%5?M= zhjU7ux0Y%3v?bVZKBEcas^{Z1?p>zdANML%y)j{6B?|7HRX-V5AKW`str928olg#E zZqRN6@smzKwt@IhXVWNUS8{9|`s4gdUeT}UP;BW>c3E_*B^;0q>$|*Fi4|V_(IT%p zPjq`<|5p1S-{!}<FJ0)jKf2g&f9v#yKbC`W%O8Jy(_gOo%XwNHsKp<hsO7`6r<{6f zeCuDX{hxlu8S%}3x%z+3x#!~cf5qSV)Yv*aPgV@i6Up#=0c9VZwBb3KCGw<<W{GSz z3}DM{09*Eo_3BWKsvxSVSc=%$s?MkjwyEX5rY8H0?Ea-EL9egKj($uwj_8jpjr9Ty zfns%hSb4uA(P0G=ej_J3b+tYp0&n&zR9vWn7i6$#pR%>5BD=D+uwu6Ea3snWLU7QD zxp-tZfZN{yZhr%`{o(6pr}*#oDwHi$p={-+>+h?`u53|lD{QR~I}&B<TxM%BX3GF( z%K&D}0B0+|1u^YaC|jr^G;Z2j4^?DWwy3rhvNhvKbO-tzX3JI{c#t<hdaKR_q_--- zY-wjn`_{u=g|dYzYL)PjitNf(c_E-(-}-_hQMS&ujg7KwNHIMDy%b$Io2ESG=(O>} zTLzX{w~%84py(E~F}&wL?&y@d;lrWsNk^wg9?pvOCT)+WJiE3>ls)e~&s1bT<o0;Z zktoM!vYIW#6H5bF%?w~QGr-j>w{_q0DwHi$QEL=ltjMlxQEe;iJ>PRA%GMdykjo_` zkyhz(nyN#A-*<GXW~UpvGEIcev?`#R&D3ns(J6J|C5ksf-47g{s@Votv)r2f$g^vE zMA>sS`$<LiLvD{>I1=R;&wTODOK@LkEd;+=$@DktnErMZ%USvdN3Se}SHv((r3U)9 z71@=g(!rQ^hV1u_Lpf^Jt3*&awLDsj8=lu3n=068hOI;q)HMttiY(W!*BzVEc4{3q zSKm6)#<qtEn`)Qbz#vaBG@btDrqkctbozUcgqxo8n%k4EqwV&J^qklF{`zxX*LrSk z^6)IlV4am9>E*(@(GjWWPc~t>aIj>{>Z<lfg{3ulJ5D$<71l|HtV9*za^#B45**tt zj!oO~M8js8!|3J-b+qltuniivjJ8zA47<~IyJJ&MPcUqj*=ajCy1N{mvdV9(q*^nd zY0bS}P_^c`Hd=GP=T@x=kFacMqc!@?x&MgcQKdOHa37der7@LjGa!7_(JA-G7&<Sl z=oSKgZD`Bk)IF4;JKE5dxUA6V9N8xvnKpDdigGYy%Sx(K_NffnfKldr)pWM35kBL{ zRBB-zF{R9rtI#rJvl%kKP7x%olo?;4MJ>S@{X&M0?^EzBHbs{am!o?uLwBUf%`%7H z<_Wb5^0=eZHVv=2I5EcTK?koV9h-IrK86BbXH#A?;<AQ#D#NzgSj}2BC2dgpus6fg z8M1J~G({HRTB&`*k*U6|GRiWOHyIdLbe6+u+wbU9Y~hr)We#oX35HJbJGyT>I&D)u zsU6P125id*mD`JsOljl8+Gx^DK{8gYjh(jdX6W=#c21i%Vdz>`og;h6k!dsFSSekH zOZ};rJ);_X%ZLrQZ1LiiitMyf%>zHlKf1U$g~g}b(fM&31Y5H5`Rd8f+mxr7lwHxL zUZo4gQ!+uN#k_pQmd~LtHvdR#ue8$oDPL*THCA0+Ew8Q0$yqx-OPh;0K#M<GSEU72 zJxNQ;skDq5ub|5MY4rkXSUf#N|0)+zPtX7G=76r0E>|3exiwiSg`YaQY=>c3^?lAu zis}A}0pb+v7xq}jQ>`3pg=$nQ#T_1(70opJu8QpDegzu?Q?0rXZh&9w1@(kHxPN2I zeN0=f@HcoB%1ZFEXWP;?;RThp)0wu(H?U^MwB?=Y7Oz5S3obj=k}V^+dAZFCDs6aK zfft{=@yUXE;~T(@Z-6#_rKP#Ut5DkH@dg!h>aN~XkzG}QYRgy=)0r-6-|tA&qHnOl ztBgcgE&Dl^!=?0LN2f+u9QuVfux?bN`O{v7N=cl0ZSYh|4^?Ehj<RAY%{UU3(jj>D z#5;@4rS!0)Qz^+S3^W=9-&udxE_+n?&igYj=n=0-y`WRuctM}{+$!1X^?`W(gVe(M zjq~@IBT{jNmqo*Ls%AEy3+r)5rV|(hj^%CgAS@aN!y1wPP8S-aNYpC`MIc6JPYOFD zU-7!Np~50SD65PNT92#4HJ{<CT?23{S%>TyN2WpvO8_Zh2S@g-BU3KJ3P6hNpj>{_ zacR>B|38$ikyvg`p3jhlmsKrun7o=6h8dzIcx!&g(J7z7%eTz+=&V9V_q_}qJNxO{ z#6s39zwZULS02-*S1x*P?Ui8>z&eXiopek4=mfv&n6zzz|8JQC|DK>KXcBUCKX!Dg zgJA{0OKV$uf}&f<9F?DB=)xMna>-Cr$Ia1YHumR^P8&O{0(j{<>a0R%b}2&_)&VTD z%PveLYMK3YhAylFm}CMv$6t%?cNw~{4v?YqgxZ$<y`$5XtzQSo(3x~ycCR@))w{3| zklL33*RuM$Bhz-3o8CG}O6SRA+tX=vls(@9*j<s`W(%QJp*3-5OXpPAITGbJtS-2; zO!WfRT8?jYbjor4`hw#(bXmukaCAytSYJ4ph0dGy7DuL<5>^*1bI{|Aw%N=E>~VBT zo3Agt0UL0;qf^O+^@W_efWKC9cV*~g;h>c&-94UBO}1sMocG^Xk=<4pXf|UGK3-6+ zTwvJSraVm}lk&Mww69Hhl2bsiub8m2Y3fxjR~#7U6^2hCys15J=%>19ec+<fF)Rb3 z<5>6^4rIv>I*mnBKJn1At16R;caAe|qs{PA#Bg#mbgUH$Xxqr4xRE5^&YFB%l6<>s z@(ouu^|dv*M>u!tyWCildkg38PAK_6MQ+$GGgWMH{J8_Dxm{2qEz6EOebCYAi#KQl zir`bJgOi?H#VWbMSblKnuA1CntZzfg*i=RC!(i+IN2iR*tv4{1caFWDTN#twU@RX$ zK30<(j16RreWD`wVKDZvqf^FUcJyvMT29>1X3eVLckwEA?+UKRQ!l=>q3={A9XACz z^pURh(H(ibH5z&{-P6xH^Ib`2#(8XtfvCNCb7QVU-gGMHUGppHnlFN?&^0j<8eMaV z*BA_7|JeZc2@Rl?7<srOc#-?#)f)r2i~;)mCxh|xpRkhQ`OlHai`U;wh5lxQ`kQIM z*?6U2-P1`;p?Wlh?%;Bs5lPrY7o3vbe_bocPW2S0$&ry%FJINZu_AkT`Ew~U`idc6 z<-4^41K0rZs4+EWlNI@Sl#5>hW@__Jcuz%H)CI9r)pdVG{))Qf9`6ia(t>Ucbr-mC zjAQ9Isotb$s25Nyx89;_w_MJli#jE9Dl<QEInB(%mQv74I*8{p;AyAlUbzbd{F@sW z;Jm!V&D3k)F){rVgOy$|D+c(@Gu(s5?YC5}`y976Jk4->=#fzFDZLc7uA3i1qm&J+ zir49H-Hzh4@u5`|TT?*_wAov%`%CIiIHlj$Kl)bs2RGgjesn{}>C6lNK=e|Qf!tW- znO%`yiT{k#qldnG!EABsCoWKBrh%w<T(6vkb?HaE*bn>pIUfulELv(|v{W(o1*uDB zlsW|o2xc9@EpipViwuL@4txJaWZEp+diyK1o!jdEBeVBa-`r^YoBh!xEs9aG@;@=V z(KF72C!R#2)eVoCqjD=el~`dcxQ)&n%~qIA?edY4jWd9aoB?d*3}7?25SKB4%NW3A z3{X?cU~Fm^fyQ21o{e!Dz&H(HoCYu*lShjwT|P1xS4~+6Dbt!l1xaU_<;l1z1Gp*! zxGDp<s^$JzObUpY6c8~fpe%E#nB`W?@<NQ$01;!1)4nhrEoFy@(=Iq}Lg=@Y2@?XR zFw3)XRR)N3<Ere7NH;Dssep(nE@NNpJ#Bo8S)M|Iwes>2u^1H)F)AQpRDkI?aFnz% z5vMFKX$n=XDa)Ed_^p)};;IY~>Bd#r7p`hHE@Oa*DK2AQlw}5EmgkV!Se}e=8X#hf zaoQKAW52Sq!0f<wE|?HP%AyIuSzcZpOIHDrt^y)m1-Pn(xQqcJrnroKvA&FNG0Tfc zFqUUyoCb&(W1RLyL~kv)+S+u^gb-5ZO$eMKeL1dbQUQ@}T$O#{s+KWo$)H7>ehP?~ z6c8~fV0{^2%yJ7A7|RQqnGfw7AYzPh+83r{%33fmIBi1cGa<~F5I9Bpa$MD{0wUeG zD*M7!O~z#m5HZDN?2Gkfe2ZD0LV~fpyo!JzMg>HS3WyjLU^>RF1p|W<CWMeOX+l`# zeL1dbA+E{*uF3$eYBnxofQU)Ia2fkzeHq_kmgkUQEKkNb4G=NLIPDA5u{0p&Yk}E8 zUtZRf*^tsQAvnv+y|Hu^5a}u)(p7+~T8PUSz-0^&F<BY%5@1>Y#w;%)!C0P+aT*|E z)Gs1N1%wV|aJkpic+rFqQVy69I7Rw$T-BrkBHg$u`@&T%_rzjSK*Xegh)DtK%K&4R zTd2TTUeL_amlY5(Dj;H1fa#c1c8E9~lIBea2zkt?_L~qmMf!4F)ofgq0V3VFs>!&F z0U{>-!e#7>^<{jES)M|IvAo<(K<LW~h!_<RF)F|;Pg@HH24_qNA!XKt(CvLWu4*B! z$^emWT-9t`#sDVI01=aw5yj?jG0SuKZY)p6I1Lan>K75C;Y3%Nuoh%?kTPjP2q{x0 z1ZR0UjvruvNLRmzbQO?36qi|0fXf&lVzM&YmjT8sFCxKMp4H5(jRuGq^^1s60qJ1t zbdKF+YTPm*gp_d;0;fn{j;oqfK%^U2WnZK!Tu}~6sDOw`0TGh|)|UasEF)e?V0l3^ zOJ7z%#HfIXQ30l7QCTM9wC5f$A#_^GlBN)Tn{eXHULfB9k#1a-ec`Gm<1z+_nBp?_ z#riV7#Vq6McVKy$R#E~T28bB-i-=JHrej{&A>zzfnGizCf(aq)bM0R%x<P)JmRish za#J*AQB!CZuPFyKg(kV0vZN`qA!S)pXo{qHT3S2JAT(uMQ)qzIlnG5)2q}}ALgrcX zOlb;PFHM=&6zbfXGNUQW>nvqfQ%E&5&zz=^<TPb+jYtDh8C}-s==7G)(aG}O%dOy) z>ne|&f<gJJ^}WBV%3pms`iE6nY2|S4XvUnb#{YdqcCsTBg|XXqie#HAU8q{BD2NqG zt|wph|4l{qyqbKi@SiHmg=+E@`#)4<FD(_)l3?fPZUh{_stK0=M(7_}`I}rzOzYYd z+4ME<X?7oEq0koucWw{Od5<gz0=ZxzkswNOz(q@6^k&0auBzPvB#V;O%In$X_1rD> zSQun_i;;E*I*WCG@h7zIHxB+N3^FBj?WQL%I*ZH3o1O0|I<AoiiNIYKp7!XLb;2FU ze|-PwllYfU(a@AIHX#Ox)r?JuePI(a8<#Oa%wJr_zNjf<Fg9g#$ZP}FWQ@}QF^@4$ z`yzCx=~xJ6YR=3{NSW6ZDo9f10c$zlaxg%wrhXBtsQ_2Sdj&RN86aYc%h(rXnZcN4 zeu>6drd{4(y!AI@)Za{m{$?7cl$GVM!7yzC2q`m~qDL}lA0V|!dtABHCLK>ojEt2g z>Gq23WH{s`JyBxT!!YDq4pS8v&}%?^)i%Hb75TZs(v}0L&CSSz6=hKu#8Oq)$1Cz@ zb<H0=)Jb8@yG9>HzrkC~+Ua#PAWs<yvuka5z#OTk=pN_zncl5G?UhYQw-#KGeT*uC zZMLPT9oJ_ZmzoHBb*l!K7yYakRV#)UxI_gi$?&3&WJU2<@`{SiW<~M*)ryLKE-T90 z8De;2iqkfry_&O%bvu$~_`IXjX25=B8%o0AL~CIe$QK-!HiPWnO{~Qp5sv}G_(i+V zGzieckw>%P{xTGaBjI338g6#-du238P0;8>(cI`sLOd0PO(tw-oz?8-m}L*67(d6< zhFT}?OHQ0NG)_^isOVf)lwW+}P994<sH)fccvcj9QY)(UiL7WZ6{SX`?LFpQHkTH8 z(K}R4L0TyxSkfg2X!oOXBg_s^V2LZ;2>XiDkiC9%%eocrwRdjw|7Zj1Pa4>FPmag5 z1?k!iy<mjBce+@Em-`USlVqXWKXVl?13i#z|G>74&e_XA^r&WMvHs6#(tyBs^mshA zNYVO5DO$&3cII_gD`3?#uSZj~aE;bsI@?05CVzaM-LFL*vw1u-fCn@Kcto3v2Ymy$ zi~(H603B5sj7QaZps`VPD#mF5<1~PA8o+eO>s|3%`0{*L{M<SDOKj$;AoT!dxfNGs z09R!IS7iWK#WMh#NEjeuiYF5GMOkJrW*JWq2bSlwB#Yhv5o3(gzAznfD2zgWhM5vP zPj1LCnUH73{6)D<UGwRoxm#UBbT%Q+InGymEw@!<7dM172y*gcZ;T;7gmg~@1|E)y zdW`U?<8yyS{<1?tMvd#ry^QIKvZxDksjBOtiu_q!`#XoaiuH78;S#cHmr`fs1Jf0+ zwSL;M>7%9cIwe^xR8Ft89;dIhKDS`uNe&QYZV3TIZ?Y~EtOp^;FjQJbk_Dc~gD*4w zzW3OCMkhGbOVsvbS|Xw6-R?i)<R-)FydAP&Jdk#ThQw)j9oMYmDh;dS_Eh1ft}O_t z$}b8J7k{nCF<LZ^_7{z2HxIINh@pr<Hr3fLICj-p9MIUn;fXi&(!7mMR`e8G`25C~ zfkcK}8a1}iKt=;Lhac$0xXh0V4pZ*s#$V$NLVO*ef9Ne?lU1egBqF;r{FsxZ!n2_| z2y4Z{`;y~Q;YqlkVGThmlOlE(x8U>$PGha=AAKC0V!WmC6pF&#LK|u+Rx7BH>R6o` zSpyTz#TLfltUlr7=>SUsdPI<HzpBbSnU(QVA|L4P=y)HFo^)<Y&xp{_JD@`^9lnr1 za9DFDbvhYAA-2(lKW=2EQ0D{U5n!(LX5Nx=x$kO)y7Vd}L?N|lGpmZF@uRNsk{V=5 z4&M%Fkfqh6INfMNJIyB(?uE*5Nc60BvPgElqu1`p=e;Q-4@cwy+n}KMJL>Vv!J$`A zjm|NrO5roJf307nh9B-=J)~J6&jWdSCofd;9cq4`nWGTt)#-twj^aQ>a%CDZ+&zH% zdb%gA?@SJD*dUKg@*9(94G#}*lJ_O?xa9ftcfkc0jEszImcI)xe9K$$chN-`UCe)% zTyn{lEtkHH{@%WI>(+O?<DHjLBkB}$v0{q(P|`t0Df{T6O)-m!@^o@33;s6N3K(=c zxsA1E&MgW}HWZNgivltYRDkC%7=yz|X8@NmK&E+K263Yk)!XR=sp^5CiukO%D>72w zLEcg@YA%}?yz9KIcD&2vvTkizbvVO!@5DDcF1>2;&N^I5mzSOJvP#E0>dG#e0q6CH z3Oa6aTuR4Q!Nu)YHYXV&d%Um`^7ejSuRVnf$)(f)n5106;?2-`f-`n!h7U+KbzQ+e zIIoWW1&woqg#D6mC5qInlFZ=jTL!P^KCefazSx*1or|$mQTc$ER<18vnfQ6WndsDB zN2a8_l_oy4<b6Idd7+B%aus1loFzDG4>>+14oD~%We{NxM7W8tkJO3KnGQ0{EBcgI zq=a8^2r~SPmsT>*7tPs9gy9)aXwJ5kv;FxDpS%USEwFtg*uI3YpM6+t&v`}4c6i#- zWE5^(&8aSV>wMWuE8D}u_S2ZNovD0pSvlYH8A2ezq#CPM=rOCn_g8@abY(nP0VOno zb(PXMal)VVdX(*rqNXnZGhP7Totc#r{%uF7l8|Qvu=OH@9|gkq1N~`-)necEnw0c# zt={--(_$}qX{GZNX|W%GvXhnZ;gvJ~N`??f=yph8d<2ZY4D=@+7UMtmnw0TDX|rDd zH}(q9X7vB`U)<$+^5_Y!1V3|xDht_gXa>?x1L=Pc^c3=*5l70UlhQEEs<P$1<X2vg z5{@NtT2_c>3I^~@!2nsMv6+H$MjvC79w>6ge&-b`W8r3YQkaQQY&xXs5bM}}@7R=l zy_g+puIYFc0pMTDaLLlaV!U8w0E@x^7KH&k(VC0P7$B1~{UVby1!Qs-mzh#PCTDRO z`=X0n491IG)5wf<J#CW3uvTTt781+^X@ZM&$M!Ji)Vr?h`isBCP<cC6)3IES3w7@n zb#4WOT7y;T2zNU|^@f0hhdf%Au|?6Vis`zb#@9Fkopcg{&SH_gU-Eh0TlDNEQ${2P z&=wZ1Rx!+#H8WK%nY%f`*L!`cSmBy^qNba=EZC5W)4vbO+MreK*l%*|dVQ_Gzn=FA z&+SVuyx?>-F<s4Hr2il*W$#u;sqE=J^{AZMkP>&%=UV1&bKJ_D+(V~86If^J<aMTd zphv5C4TETV7n__||4FCVQxTIB>%V=$ld7`(Y4%DyUfy(k0O<L8>|*tr9W6Ossgldo z*Al$F?st~dXvvk&D`Aa!kLq1Akn-{x9UXvez85rf_K)tuza9PJWq-Sayljh$-MJ0_ zk*B+=A$JUMiLqv#WhQYWaW!*vfbXd^X;b2{(~`;VSSys!g-{@;JEx>EG#GJQ!zTV! z+d=zjY&J&l?;mh=idXJ<S;f?6AYcCEE6^{l4y#GR5;Ju~gZ^X#2gKI!_34B!2sT|m z`l&@|yp)vU1YXG4SG<jW|C#=NJN^ET`g<$={@?WXJLvbh`um;q`w2sI839ijz)Sq^ z)@+Ys@&D2HDf9%Ozf$1K0R9gJIJ(Ra48>RQ=>aSCRX}t0?I}P;9S4*9NBi_Oe3CWc zeZ|uN{>45$18BQp{5qiXwCZmF_<t057QkB+cn-jn72>;_|5-nM6QAz0Pu~J`sebx4 zfUj7^&jY$rKfM58(n`GusL)T}0kB6t<?B;pt<bP)v(T_?o#P2Y`C+1>so%)9=x^_X zJ00Wm5>y#lB@bvnXT(E6{(}+-1qlrf4f)^o12p8X^*1!+B>fEydEGEUL+&)jSwn6z zh*jkO)IzKw))=fIPa6tWk=G1j6<MdHSVQhHgsdUQ>nGNba};0&`F9Gif>=|tetgG} zvwnnb!V0okOR<8yY#CWY3?VDXf2a9aK|X6Fv4R8@W(_%DI9Nk2(PFG2U$SDXA>Xu& ztRnv}XXKWrc%pBx@pom7-`P)Q3}ZiAvTgcPjoIZ2(lqD_{i!DHN~jF>0XbQ0X4RT2 z+qIv<SleAnHPvfj)%>r6bdZc{vP8DMHEU)~wO@?yK$34qO};*olpKT@z%L$Q`VgZ^ zHg5*_XAkq=$D9o4axW}99o3VOkmhJ~q(%Yo%|kX(D{S|LYp%@fbAx}B^<Ns@{>p}d z^6ovZcFKiK3Mf?mi*9hzDsH@vOAlX0e;hzaq6ZCa*ho#G>#+1#M|R)-QEL&6uzLn& zA6>R}SPHz?Md4U+K=61PuE~E#yN>hr79S%)>PB|7_yPL8qm9wU#%ujFZbP!z1`eU5 zrT~<t<Vdisc5IT{0L#<WR(g8$x>lf7wFj)xCSzAn3;GFd=#oCrq7$h^#4=5jtmWmX z8OX8}$uk>LP-2RXf(vHtm(zOqoCu@yUk;F<^06N!NotQbSZuhoJrs+r=nm;k+327n zhrax50MGCYV6Vsk@`^wPflM8p4DHh0xZu={Q=^$pp?PjRfY_uZ+?u}K#i|2{JViLH zTf=mOh&oybdQ1V<ske?^NNk<T^Hg$p4$!Rojl3VKrJRj_&)qv_V`!yp+?lZ<(FmLk zkc|T?>qY8K=Ffbr1!4gW7nTMv%}?EfyS<JFWs409C+4ovyTSXoPaqoYNm2=!7C3S& zKxkFiWq?L0e$goG_L6$lYE;%8rkoh<4sx(J+nD%JO-AiE%r<uwa39Pf4*4Wz`J)wx z*s_w`7OZ6Gdg%8&{t#~K_B;Rqwh;)w<00s9dtMx-UHb7GmH3;7iLJp9cY0bYz+vgg zh*H4B&Oal?yqG@Ff>o1FUwckES_So*jO~K~Y#$6@`(S|D2LiogkpsqkRGrsDu@8@U ztE+v$shoX9xnuESp@v#5_pC*(7^izfQy9QJ7{ELjpga)BJcva|yW{7avX4r4l$9y6 zc+u*~5_+~2tw!^CNAo2?gCn8btLfb2UW|R;MZ2w))>w!+F+i-fei3V}0C7^W2lz#= zQ#)^XOps7UJQE$Bz$+;gOLUJrw(pA%z;6j2Y7`xzv|PEK{dRxjNw4eMQWxIy;Ykz= zy*RDe$){ajh0OR|su@T+hI(4ju>;k}41xfDm}E#+YXWC+J8|I>WxB#*VsX;G=A<nO zX$UEf2|{AXp7D$-eaX0(TD)g#GFF(*#b5w2*W@<0Ifhx-e*=q1Racw_d&$|-MG%RR zO4fne5U0V;)YD*(ykN1rv(YO)4TdR^jh59@qBqN&Rx|W>8ADj)Vl`5RC`f4^mT-3N zJ69F_Fc~UjWhquw*Tf$>J=wwEhkLW7uFh@#A2|ja8ulkAJm?86I>D<!Nb%|mJ(W-F z)vO%NB@=qAGLCN16)}4JE$It8TA_gU1zDE7Jju7KA|EvdG<{oaGH9QdK^MlgUh;3G zTk2z&SxG~rb}mJ9gCqK$AbOKdI2p~s)}%F0c+D?K%`1E{(=fX<Zpl#TdztN}0Rx-J zb&q3GtItnm7E|S;Gt1f0ncKaf9-ZmxFJ|ht81C}isv!D=W?O>Ov3km}s088q%kyil zL!(=AcZ$96Uv)>FCO?Hmo#v>9tQFJBs&tlKC`U~nd9tdHEdFs%=Y=|Tt|A912h0Jv zQU}p6Ny1_uo$cnCh5qJ=h5qJw#nnkC-PsDYXj_GMXUi|UZtA)^(WY@Ps=d^%T3i`- z?+QJ<&PzULodZp3NBRb69ze%3t1b6UURZ}BEQrRI`vkSzzxk~lOkT#+Dmsgdtq&W0 z7Ap@5(jq`SYqPx)_*+#4WKZJS&S>Sw3^Zw4H)&dDo2C2tM7enBe%Q7o7XL-=XSqcf zYlRXj0w9M3(?EDTJm*6)Q<YBS6W%ZnE4%C@&@Dkmw69LWP=8b3hLl?@^d4jO)*E-f z*|j8!o)tU{X=0LpNmv(RC?j#npT^Rr)3ZE`A=rz?d7*156y}94rci|J&~Ha)D;BK2 zo{0B2%04>l3s!UKByOw~ifE@m5xRBU$%{qm9?ZC#;7zmBi|!ZI#!VQ!P)di#;kI2s zx~*Q?f!IqkfP1e2+<gsD4~M|Gdm;E~(lK{C4L=YX#Q*X}hwe|Zmo*>LU;xu#0MlT= zV0N5++$&RAp)!`0EVx2#rfqYT@RW(4Gd~L>c*@9)j$4OsT==6S`!Uf5Fwq7u(FS0H zQ;U@=pN=ahnl+%kx8?^j0^l!JTtvCWGpZCU<KCj1*6q3e#n_@4z+@Z1WE-IEJzo|X zT@zAw&&j;aYgZ3T{82LeJek$aRr9K7?Hh}YSHe$SFK#M<xb6qehI&Vvln5UU4Kfbl zQD>ikwsVF^hOz?1c<psYUiK^I9!+ny-Rm?yE>A6r7buGYveqyXt$mU80qxyH7LkOS z>ApG9Kx-qNL%apnLpluNh=>XNOAky=fyiE8$;9G?7%G{lr3!YR6SZf}#>P;`8s5DZ zdl$ylIc+y?Dg(Hw4A7<`g^Pqkib~%(!JFy<uTh%{ljmTBg+UTL?^VPN2F@otxXo}5 zvQL(Trc^eQc!TsjO6ODc#AZvIjW3H((J51Ph$Lz@L90|ZX_U-c?ja{xTMm`jat_*t z#|mmKs8H;-kt3~bHlDZHRH@ClVN2p`*KQwolC<4q4zQmV<$)=1yI={lw8%^Gi<&Sg z2{a7k0~j!5SIuU;O6}nobCHoIUAl#5)z6!-QGM9WK-JbuD(jU=#G{x**vKiPBA){2 zZeUcTI%{UA`;$?QClThw6;pQ}m1yEvE0jnk5#m(2&hGG>ACD&yao5$cg(neWcCf=1 z_5fnVV1>cvY|uk&pN4))t2DIPX3Yh_q{+LD@{DZlw10VZB)xpvZ}P;y<~Q4115*w7 z%<L}nej4sX;CPj8hV8G2^Y(lqbr{~!{r31Yt#YStE|0ZB5!E9ULB@D)F^|q6e0w|W z^rAYqz}4|+Zh;f*^s+VNZcDqY^aij2Gk^`40cyYqRKdecK)bb@guS2LPJ_-Z#Ekpg zBAGecG@9!+fa^A(YEF^LD4ZFiLS+gUtY=qEAZ~DKbpjz~b1`j|n>?eoitbRFg=aY$ zaL|Dup|WZqxY=vefdDIt@jwu)Kb}@;vgJR48W`_6lQl)_ERxkPnlxaaOzG@=k;=S_ zG=~iQEHsGoMDntpM6wDye9cOue}|K&MqgG=;yy1!v}{$4$k0ts2hbqUO#^k84BE5& zP&S<|2xIn~s`k}HA9d!d=pXCt>DZ(`Mo_-HoG3N>vS@bz?i}$tXS%SY3F5NKhAuK( zrLt(j6qBpWtvc=i_1t_oAbKlSM5mmV$b80b=tgxz$ER&Y6m*7aL1O@xV}PlPyj2ir z#-NJ8!*f0t5(`##K3lD0SWIq(##*67#5kmzJD(xvOgwJHwnE2>H`n=m<;WEe0yZGf zU~q1O{%kP7ijZE~#Of(W8s&R(=5|tN)nQ?(!sUD^5h^^?(J6O1r*oGx6j1|&BAdu_ ziiZXGY^DjJSL|$sqB<;y2NqmTJkYKiZ40rU8NlYu05;7A=&(RwWJHLn%u(9yH0ZEU zwXxPB^54L&e=4hSuS{hn&KAkaUCs$}IcHPiOI}|(#@^_-b;J-?YBCm_0W3HJ%Ht`F zoD9Qd$xTEi8136i3HU%pfDH08sT6MUj4B1oxVPv$JeQMLim9%4IfK&a@FnNawLf=; zO}(>8`8YBH7An|E(?7IJ3h9U;&`rLbMzf8whc@KSrZnfi*Ih0#rCH`mLNgX<GOw!` z;&FF~nBZ&pV1mZnAsTbfpfs$=V&b}t=BAcxakGad8QJQIysctL<yt-HKHvoEpews< zD;jh$;C9Oix0ZTc%M_gg6w)xu9x_qF?mUgR>=*W|+*AIDlcqzjIDt3@1w9@&y`HlK z8;j>PVL}qf3g$yBFk}io?NzFRW3*>A3LckLuWMj5(W2Ud$Azj@<Tcf{-IM#66Oir6 zjh{|KOsB4I+92}B`Im;K2Rj<!k9PR@EI8Ijb&yhzg#%&7m$|V*T8e~ybh}X4C($1r z3FM=Ibj4dv12%_-hU}X6>3q-o%(KpttKM?g`<!#n#dUB0JD(a!N5-nf*u`XIynwR% zVysNnvS|?;+GRDt;yfroBUFX6KGq7=sOq2^dH^dmqC0Cc&ht>Bqb(MCQC1HPqN7i9 z66GQ*WBV~vmMuz~v{8tNk4-9QR+x;Spl8_US=TvfIub#$hyG+Dn<PK{CpL+@QJDZ8 z7M*~bG6K$H0?5+(#MJ<9Ap^LD46xN#g3A(^N+gg?DsIjQIF|{Sj0rH{4UENU6J!hN zdz=8>f;@)_Fwd1oC<8=CX}tp4D>|xxNg(kGp;8BFf;%z-&bIr?#CI%C_V{CL?1poK zx9HuDPE{)015Rk;epp7gpcOj0DMzQ`89p59KIG_hcls<tmrxfCu-bc6mz=hbI5MRT zcZ~UHlq>IoHV`+R0o-&3Skn<4OB?g@SUMFm;s-MVLO}cFGBR%|S)>*!lcw9}=(OoV z4Elt&xT~{tc*dQen{jk1o{crKUJ-Q<J34K;5D`A1E;oEx(|y*FDQ&oAeP~D1)adD1 zv|#hn4wspn&u4WXLeTc?<l7e=n>N~MCgn0^72Rz%>uz(7P302qgs0eC=&Au3X<v3^ z+G29}ndZV_^wr<oJM=eq4*iY3kscj6kUiq}lvkujN7lDFI`XvV)`5GyNo+9gfu-J8 zrQpvxA{Bjz!tTQ1MNTMI+?OlPD}2+DsjzCpusd><yd}74dfu^VJBB#ymRS{+&DB9@ z`%Z=}1Y$2qOlA&cWLBNi_C3d@oQ6>Bmf2|wBTy}?-*<G%DhFdvwPq>Pnnf?DT60_* zt@(lHR;>v^+C$r-trM-$Z_fRX9givvM`zbrm&#6+#`<Tl*_Pnwe&Xnq`w)fQGS>^! zayYu5XXwI({}PvMD$5O>BU^H0+Rz~o`@xVcXO`*L8L|+DeIY1GO=rs*;dhQqr51v) zr<6JJIy3kC44I#rPAN0KLW^30H^FNex)6fhGS|1L<#2SbXXt#N<Dk^dX3a3RJ$OCZ zruv>mJSEU(SPpZLI??TNY}y$@1a_-B@M^3D(PgbVo?%;UhCOT5l(a#y&n~y?Gi2e= zT8b>d%BGR-$Zm3Es&Dn7(kDZ!)SA2xI64(uIQW@c(3I1KtW9rqblRpNSh|YE8zIG( z$?Y~rrnGse^uU=aNXF`NM%x`3x)3Tor7gfFw+z|cj!c_DZhB^iv+nhbYV0jzxYRc% zet8#7P;d~5{A-!`+YLTR*^*xAqj`<w;QYF5H7A2c<%T_<bo<%*KhjDNt^3>%)_syy zAG{_ht3JFlfn#y>R5Sh2^$EHGx<()JTQ@Ke-tyz6pJR_b_PFDYJO23arr(JNUGzCU z{NbXfuI!9g?0LMJtn9$y8XdPi54J%*w<JwxKwK{c#Pw2uS9T`T1)H%}s76~K)xiIX zR%cqg5<^MRO3X5@nN^JB6|UR3*P#bn!TF(YTxf-}<*rq+=6^$0;pto<^+A`I0W2{C zSYig4vr2G0SJ_0%(+s=Ko5(8M$Q9D4;1wFc6&k=58ekO?T&__4Djg0gIKI^hP)igX z#spb~|7kg#pW7Ur8V_+97h--45S7y}qH+otKa{gQKbb)9bOMy0L+~4|I_KveN2mPA z4O=o<!8_C6%#HqLX7qQJcQ&3K?7!bD(s}l&ZRXh@_T1X}sy)zTo^AT*{C(6Bsklz5 zn+<HSrm&Gi+s2VS<j8c0lrTqwk+AeP3rl~qu=KYzd>E!yI$53Zy0xK#n;8gKTmiQ- zqTij5hcjHYUgm7*;dRJ9>&R3n!O2VsJ2<k>IWpxk_?RiOgL3((<I<)N9%d+8BeCVI z>A#dAWB(Gy+A@dfk!fL=qgsNuz!Q#6`3!!fWv)kO6*{`FWa!wPOugTUtXIx^LG6{t zwCR=4cy8^L!Ob+wB2*{c(mp!D&p9S-o8Vzu=D@!vs0x~d9No7Zo$6rlF}<|5wI^6V z&t`}(WaxsIxm-5b73(I3->F-0blTX#&$P_-%vyzx?r$=5!PB(NjxO!K3mLO7XXt{b zX_*5$$6qVES2A?L)6CF$LT$^w>gcp(>pjg3ok`ba_hUz=dKX;H)V>6`merp)GHuu3 zX*wyabzxo-<|)~@{&PpBlm$;SK^FViwX`icI;E}N*L3`bE;E0>c63Tz@HG!+OY=tf zog>pW4W6cD4jPxyHk&E%?;V}e=Dy||=&i3gI+a}THFN3${#wbso}m*baw7FNwr@}U z4a*q3&579CoDkoV<`oBVHi_!U+nlmP66$S^R~(XHZ}VQ94$q#wTiwvBj2)m(e6;M{ zo&$-0hO^}DAHEAE^q`-xKA2n~+|dg8N)9=lKjWS4LE{rHnxx=|%BKT&tjRywhJVAW zQ}ml3{Gfm1$39SAB~<r>-edGMKq8<w`&b4!=99rO7s=y6COwc5Jaci%^*jc=a{Q5J z&iB^V)wt$|=9|lbj5G0Pr!vkC3NTs~r|D;j5@17{;%MkyLw?NDT?{^mYBx#^;CZtF z?4)O>D#lu&8r29?Q}I5`&YFy+vlg@L%~Jp=I^0J;p#b4TM&#g!J7z>%*?UWO{T5V( z!U@XjoD8*9km8{Sl~RX)F%0iI%*;xKVVKDd8r+l-u!#wnix&V4U?;`^ZVdy>jUl)! z0p+-!fSa8FHLt@=z*J0t0Zf1aOn?DK0KsJf(k4)e_!MAIMnKs7pDQDyGhQJ<?YmXy z=x%p(+M;KggK3$=VCMRw=oS^fqr1z|sd&O>z7wM}Sx=~??p{ZyLv7g1PpHdJI%LOm z?ssI$YS_w8kkRu-Wyw(xyR<8O*s&?68(0xqu_742ieP})1<huPKp)GBkZNMa&PSa9 zWoO7*E<wg`)+%-ubvRJt4fl{^Q+ArtvuX4VD=CW#Fgpe?I|hKA)NNbNHZ5noGIiTd zYvZ;(?77uQhQk3=Z6vkCcw`cL#1W~)P8H)3^EemtXn+_G{bEf<AEV023cA>>e`pRD z^B0^1Rp_vuQ|5)xIetZF36AbDN2je8P61fv(0e_hmb%9?bYYQZF=ci!C~PftPdYkf zHmuV)F=`A}fbJ<rr_Az7O{#9KY?a_?FR1E9PvzG>%JB`)t?CxmaJ+#*bxGa4^}Thz z>6ldC!U~SFt0P}}Oe#~}=N*}HkLUU260u#-X-Z$^?y0|7bM?0=ZZpwaCx)9coY`_t z7P892dQVv<RlPu~b8LU(*i<jV>4Ae|vq8wwy_}&7%R0`Ps+r?gt+fP4_ll!aL5H;+ z%N+WY<F7^cYKAVX?RaUUE=<S_ohCSSKhDsFwH=d88|pH2KgrOAwVe!|Cn$AU!~Wc{ zX~Tx4os8G1)PA%y!FgSBblQKy(oU+v8ErYXUuW3D%8q3Yl5_K<teW|A;(nK*3oAPr zI!~yR-0vNmDqUFEaavSM=2FR74kzw4N2ihtOFNdi4X;^4yzc0<UBlvz2_~SMN~yCP zPTkn{;PohVVR2_Ml&)jeTH4X=%Fu<y9jiM~=Ly!Z8MEV#PMbn*Q)Cz2uk(yLP*}#y z0ZY%nv;PyF@MLD`nrbqn%r(qX(=tir+4l*jLEq)m#iM9GT!Y+|Qjup<+*>l_x|9^X z8&HGX<*dlF@oZ0q9E&DdP|M2DmAt_7`}o}|U%8+)hhxJP5c(mPK<EYtVXs;5SxQ`e zG$X|(3h%mInXKcCwL*zf!>17wch=;)D#5qACf}8j9$k*+zbZ=DhJ<%T30shGWxSI= zB4tR6Y&l?93PmZ{>gR&-RMwub3U07n2iC@X7iab!c!M*LYN0&$ru{F&yG?6VylD*5 z_h)#60?HNII=sVWyv>B(n=`zkd&@M#cVUnU<QK45^?uYxOJ}Pq-fSY}+oUQduQIj! z|27)=n?xgVg)FQ<BAQh5&+#VBD!N%$`~26gR=}dGlBkd+rVlsfaf!D?&K@aA=_xRN zh(f*KiZw;ZEnV;&cM`Ot$WtIqy2&_LY}t)6_<dqA5`Ldl42Rz*7tQc{eK8n*pHd8j z-=`UpQ;WXcJLQjVD1PEIzrJh#-Wxx3<a;*Is{p(3l25a<_~z3${NNJ{zk2CE?JC~4 zYX>E~Z<nX-*jZdQZV#Lf+WcN99EhkrDx&u2h}vT!YLAVmJuag51f%x&h}xcJ*L#cC zp1AL+4?p<$4PS16;+|b}Ns<03c7E~Y+3&sZ*smWYN<nfDNcO~(X1cIQvwxwvFQR#M zMDr05&HWM0M@BTSiD+JD2-ik5uL8{-Aa&KQp*|vY)sE&WqAii(D!$<(^fV%RIwE>H zBYL_bdb%TedLnvO89lubJ*z<vR>cQE)9PJAM-WY`Wu06kw;Gb;b#oRP-gT$2In6Fo zgI#1FN!%n|C<<{yyzHXq83@M?;OfGmG8~H{6?eU$pLC;@#Z5m+^5koA2D&{;%f0e0 z98%O6afdQj4ZTU%RYog%le|>$9lU4STVZE>xRYOGcg|wFBZT_@(^|XT&bQD9VH~7- zv#pQi#PHyz^yq}W(z3ZR-BG;Wv16#S7@((!$pW2D7Kk2FA<^)2M&%F%9PGnxw_+Q| zwk`NN*dh`vL;+r`u?-CRN)wFq;gM@wfi|@zxJQkQItKDjjBM0e@_}r*P}O{mA_H~M zz6laQm2Ejmgo34zBIPhz(rGt-kOM4J5O};Abt3VKd(h3Et&I!lADgUU3e-i9X)QMX z+NNumT-s-hZPX2jD<3fTI5VG-2OofVbK?TstfnV`z)Ma=KlOf+elZZPTH}e6^abWS z9k&XK9?l}O@g8ou-X^^|!Y@Np%7#@1g<X1m-Hzfk3Z~vc9azAjRm9E!+V?oVyFI#r z{=u^*qzd_vNTQIphIni#1`=LB<n-v};9f9Wyzq$&v}2F}!*fqztKq|5?1%ju8}#Cs z3|}N#JfKBQRLp%r-cFNQfDTOo!ABgyE%J_<2P40yhdP!$9aaDM5p}DR8|fcCd|_ck zh>e;l<!eblg08lCDR`_E3Y3&Pe<`>+-?q>PF2^r=B!pg&<*6V)e{(ti?2&%4jd}sS zog4Z9^@^JCErf%5I(385qgD0EkQege8h<0@D+V~Y8iMxX-hUT*0R~$dN}FBpDLSqp zb?$6-zlVl1vf=!CIr<S4w*#;5G(~%8stRLD^V3+DsAP|KEAKuZba8!3x{tj0icpnG z&{3?hs05<G{|ytS_gDv2x5Z|W><s1)3g71Sd{XM^?H>hZQAK`@OVzI8bzQ1Edaozz z7k4=F?9%+d;8D<(82)r1sD??8FC_zry;u6<%kX%#MPuP`=o<twKjv6$s>+#Xihy(C zi6@=B{*+U3pi&PrA2>1}F<N&+0;7!q4RV9?q@xGcgniQ4HPpLp)H8qvO*$p4UwDbq z02(;;n;QqTUTdww+En8PtLrc!u<OWJD^T`XX*=1_7?$S}5m1Ee8x)%Y(4vMWYznOQ z;+pL3&Rvd7`zJ}IlMK<|hR))hG-+&hV(v(fIpGoh&Z1FVMqTbNPY#aP<>-5IFq+25 z){zv(M;R?Ic+e5#HO#0pa-G*bD~!mlg&RT;y|6}zC$zySS`t*ji@Tg(-*e2@JLX3O zGjB%d6@XH-A$UgNwFp`{C=cc1NU))N0)U=HXcT|w80s9wYg`h}WkjquzhX4GmNJ@V zOc4-<%xM7f8VIRU<%mPZf*fA7+k$b)eL6kSCZX<}=UX$LPhukxms8`AdZQooqMsLW zAu0?=2!hs<0cK@&)K118$EB8Kkd^QXM69H@!Tu+>cZjHSJR3@CV6tIts&dS?J7%?w zc#?NTMeoRp;z`~W6}>YnidUIdRP?T_C|+e+QPI1zqImWeL*IW5J?{zx0A+EWOX3_L zadsBH*Km*BwqvN9E85oVelHJN-8?`cj`%vt*bOv18zYm@Rdi9n*IvTb!`LpOObA=j zi|I(SXPgH(>ht@k1X%$L!kl^U$(+#5!{nJ%2=5L8*-#fnK$MD!WYj=q2z@uBM-V8? zHoF*o_ilV(lhW+jIYbLoJ;h}^ID1#oGY;ZuS_cP_l8ej87ixCz*tvn|7#DIVFAcZN z9*{+|Sz>(j7^*?y5iG7jB}K>X4U83J_cGR1gcVMmV(on|d3if26Jf=0PH1{)jBEA+ z>ng`8Z}Fgems$~BJoI;Tar1wwySS_Lr@fg!u!^UG9LCi%d^XEKt0JUBVnSqEN(O^$ zqnDZWGTHDu(M7{=`Ro|Kf_Y>^{>Z<gVU%j9nf>id#zagPM(1ro@zD0{Ai^t>1;epc zs6mG#)Ij-k8VEzWjWio$LAp~CVAv+gR}#uKj#wA^!-Cs39e>rt*~|58;i$*yS00T+ zr7rF39I>tt%8DDDK&D&>nXg-Md!Tp46C#@IG#d?_?8wtU@+LaoMYkzWecO#EZHHIQ zM(3>UHaD(R2e>H?FkTYn=tU%b@z^e>&Ool*mFhL(iGF?}n!Luds7c5b9A<a1m&^&~ z4K!b;Njhe~TgWarG=c_{29gn7oJbkXEgkaKfigHg*R}!=Dr?>7+SDaOT9_c%GO0GA zebp&d`byyq8D4a<&5g5y)0#=ZJXU#>^CY%7WPlTOzS$AG$C|pew^n6(18!{-ZfzG) z($^ne1Euz@oMgmqZ8PaAcR4*JxAxhu#cu7hGQaVTaE}*zV{Yxejv#Yuzt9ocEq80F zM|7h{w6Rz>BwEi~Afi#l)GzmU?!Bn9am79g!-shZq}NU1!)G<FiA|gv1K0E0;Ch@D ztZSxX?hkWjYjR1;V%PiE5%GO1SnTTDR{tNdIvP4ZJ3H|TJh?ou02~^D&zK@C0{>BL z1d5J8cRr6NzXvly^>|vHxyLh+$O@OJMq6FM<KefgrQK=jhnLj|V2{TD_IM0XkB30D zp=x0#Z1mFJIcczV&#AQEkF^42>hZ{&d${EB;00Wcpcr{P%bi)D+~vr$Pm)y3<9Yiy zrWSB?wvLmpvsHYZ4V}C?MaxQEzN};`N@NpZsJ4k8G)Yn!ZBVx(KPafthP2CHUqu6< zDOyuKC1G(iRFxhNYl)+Cqa*r)&D={4*`mi)r4##mgQr8=(PdAEAEq@=haaXjPlv2E zPxM2WR)g^`^UJG{fMlDAyg^7o)+V|1WL))BTJ<y%tm+v6RyB#12LEx>57r;{H6xJ- zahjkSw2eWxO?SAMbX8KElI2cX2Kr~L17W#Wjvb9ej$9VPH4Iy`2wtXo+Um-CK2c6K z_Hz1%M#sxs6VeglZl_GO5meCfP!~<ni{62|+3pnmyW6S-)lr)5-0N6XEyPud)k!;} zY-75pro8B5qET>_HWLq6pv79Nt*crGkoWD<W{P0$=5f_%B{Q08T#65Qy`PqP<@H-M z5znKBDBct~AnZe2O09+GY`cp8FU&FE4vB~HR{9Ees2lDOya#fJdZ~9cd*92md+~)X zqg?QXdVymVFUY|U>LWC(xRQ5J226nZ*il(EPMbliU=Q|DZakYws5vwFK}Zlk=zJ;! zKd1+OP*3qyayU>aE%#A=Lfy-#-$uFM1NAWKUid)0;sdSPIYi6Rv|QaF7le{~ie7Sp zdYf3chPy)P^uK1$dz-!HurM|1u&e@Ay>M81Ij#q}K`?FX0tr%(+{Z{)6H;s)1*CoN zZLTJy<nIWtgau3I%|0Mq?MTH7;$XCK?~FnmQy=xXwKRfM^$%CMN4@E*y`aak4B`dF zi;$@oH0NdBbT8=EWSo5Sy`WITo9zV!#Ba726cE25FX;L;9Ubq31KhdIXLt3JA^Sp; zqKj!##D9GIhPMQ1CWP0z`8f=J41+J+tiyd9S_+mw7_}N7cQR>R8066f^OFwk5jqTt zWbMM@fd1w=lm6x@lm6BjQ@G)%Hu@?b?sNe6&NJ2u^v;Rhlt5MKQJkHgPjxCBbZt`| z=-1C)<+!8LQ*N@F7M@L0H!Kuo&#p)<{&kK<DG#Sx%M_LIh)9zG{zk{8B*{|SK}brC z#`_(Ok`#`#9x_QcJ1!*&Pn1X0S4*ic;p|pNqa=lMtcOg}ZH`Mx!Y=qhNlN!UZ+A3G zQaHVO$Ryq6xRfMbQgF4amQpj3(mjqwNeX9H%OrUK2%VMaXV>og9F<aps2ov8sHSL9 z{36HmA;+U6g_Ej>O43Ihm6C)Z_@E@coRT!{c$B1YJasUcUuI(Yn3vTTad31i*BukE z3u2#_)KHIdn$$u)A{-t$-9Ux&3i_}&S=_2w1Dy;^)>uC2=+&_C${uB;^*6TG;)w+O z9Wq(2!Y}^%@8S!#>2O3t&e09~!)hrGqVzx(HN(kW$#8<E8yyTsFq;WGJ6fTDvV#J& z$(!WcRgsUH16ieWsG3sAq_14-C8MC76uV=nb5z1^5*jkr1J&r#u6I+0&YBnT<NFK3 z^%u0X(od~S#}vSO-mW6|U&f0(GQ^X#dm(HRbiIV95(!7Qnu&#qz%4slp-AakGp;Ka zwCTn{pFjJJvsrL_&?XGvTcW|7j^y~r&c~jjh%NCJdc`p)K5cnlH!Td=3-YO=*}A-} z_wvb%dJ#O3hydFkqa)^9wPsFCbYQF%N~i>6Qcn{OJ%a)b7>4w+vOBV}5*Mgkc7T>4 zNSfQ}T-w#BoPM+CsM4jwQ*_XZ#Ye%P_}`}fTV3mTRxA1(D|tk5lPI2h;<SX@YqPRF z{n6qd9L#`-7Or_I5c<ki310r-z>V?xANMG^*-m34v_-oe&E;t4oIF+9-QrFQLgXiB zl%Ldtc+y9@WJ?Gmb$#NgHPOPS^a)msHQXz(4v4=t>z~t!X0Wevpgfy>@O^9&_Z63t zLSJLR+X(n?^~2lg_XhpFm3}{FnchLb^#;6?09lIIS6oKFFVPa*QEswakE7ds(x4{* z{WqHN%K%PQ;7I`gNrA5bXe#hk0Q(HXQ-FSB0r<Ed{=%TI;oB)%>}ddRSKt`{e`oo= z4k+;P4M2Mh|FeMZH0U`%lLn!e7vD83-vsnuw1RH|c-%gH8_>J-)AInv495$Ap0|uI z0y<kWeh0u71^Ard3zqM@_=F%Y(B1C=_>T(w4S?@kzLx-f$?Ez(pn&6LK%2DK-vaoV z6~p#b@izVR3V=Z2-vN5rGX4ONk@zZrU)iT00{WdnKLT`wV*D|HM}#UmJD-egW38aI zk^hShbv4Wr_wMRh*oc0EKPA6?9<tN1{zPKpqTBEcp}1J-LI*fOe?$NOSN#qBf7&=f z2iRj0MF%)jb3y;l)!)$nUs?(70HH~^1KeW>xB~=*;vNv1i@U(hmXrHHfVdO<FIpS- z0c%O_0`Jx@+ynlz0^9?vJ8%#9q9NxVFs%8w1KeSsxC0!kpIHB2Gsal||1bT->i<70 z!0NwQ0oMLw6kzTDj3H<3zgj=B^3U2Q*8Xk!iM8L<hn0WPh+ypx28GrC-)Sk<eq)%G z{|{D*m4Ca{#oB+jL9G4%WI0*=zibezzoBI957J=upD-k>{{OcU!rH%90oMM%6@;eM z;`bf8R`1HR8Z#y7DFd{v)xC{o0$~UB8qcjgtF!-b25MXKxBD-n2P$UmJlA;@Cl73{ zgMo~ub{jE>9ptZrx#>&z*xq``#<jo)xE@II?WoDeYr2_qcGu({fYr%1ajvV#jX4hv zosQsKHV8sRG_6d?ny4ts<a6$Hx9HZ2+?5sO?R`f@QLAVm<LI7>+(|{eoW+dk9E&F| zqm6Ykg@5Q|YUQrO-0FmOl>Z}Lxv7J^0GaI^<p0AVW`1p_?*I5~C?5<xf&T^vaV(U> zA5jFP%0CW^Br%bOHf$ul)UDL1u6!$X#?(^}kDfu<N2j`j+c(=yvEZ@gJWTV<)8QA< zy~b`tMdR5gQa9@D11zP}mf{GXtlU?OJ4ij3#xErJJev|Gkf4)oo*qmhAzW9G9m;^N zn`WU@h-%TXb3#)Hucl0DitXgmJ^JoMqpxoTj<rKVK*-2_C+z??Rb*#7q@+YWh%w|{ z=z|p)P#Dx#_14=f@+Z2j)aJeD-iorQ3v#Kd>q8a!le+d5^DI=<sZ!og3Bk`?aDdb% z_YNRi(xF!xtVH`8q%T9U78Tw8p(%?i({aOtd`jS|>49uIVaMkRb^L)Y(hiprMk{4H znUdb0F64g9+0}`aJXJd^(xC&%I5@<I!$?{<j!4Qg`W$FJ6{O*W&@$&(rp@1=>L@}9 zPU3%`k+^xKB<{;dlvpQDB1n1`B&`=|HA|lG0qpXV$d}`-=u{4$@JgPNrFc1}K=Ol@ z;9xd-JPyC|IR%y`B*MHyA42m(7s6gMbio|OI$g**<foh%?T|Rr3l5T=`<a@IH9hxp z71>$08F$og52O`6R#7sTh`fV8QIXv$IuH-BOlaO|=c~#Cf!oSMT9Y{Z9?L69Z%TW= zd6?LWY-U?=O$RCFaj_Ahb1$8LMjHEV^owKZOJ~vLS&xy9GN1NYO7K2=7-r>pZ$LFG z*wfipl>6*%P_3bD%YAl<yA_U}luQaGs9mE4tLzxUi(cthr4Ls|vBkMY>HcCdQ&aFA zNAtX(kr=XM3TTMm3p21Cg!2JQdK!S-;Xou^2}wuS?>Rc{%;EVFDjKmv;_(FD;Q%(y z;7-8Hj_udt2=o4ptd-kD13gnqrcQ}tdc`sQy<n11@Z^3&&pV3?=qxFiy#dV9UM$*A z%pu8v?gZ{YH8SrZfN$>&*?E#u?I!FpPdXcQrk%7OIcdKW(y)zFF>^WK8CABDaVfQ5 zKds4FV<>-Fk=^XqQf9w$`}f;6<y+m6p{=oh|6Eo6-_ZWmEX8jR^TvvWXspMdsVm0c zf8jh;^lYRoqIGv3EVVmU50-D1@vLU(x{M)ghj16-Nx<IXWM$~yedoS83>DG2+{~ce z==5agU~cKHSX}N5z88628yfaUXDoQ7nIq211E+lId=)khYPP;Uoj5_fD-muB<fs34 zv_c8(igJx3eWqkrMLuc`bnh!-V@R)tB&P3LFZmB*74*HItfV1QgOeh<!4WM9BH08X z%cq8%34(#DqA1*4OYu%P-d_pc@Z?V!Q-ryO#9J~{`kHflUISvcrF$Hc4jB9vPcie0 z@Tez^rA2EpU2?tM3+nrHbck<G4_9ZaB6oRiZT@ga!&(DFcGSw?JRN$c9E(cu&@N;= zj7>SaB2&33cT~fV9O1SpT{o@o1G80qpk?n4(4;aR`e7(2p{z0E;<<ZsjI{z%oukMW z@qisye>d>BCPHEp>8k@f9f=A%ynIzwG?Yzx(YTk@UIYQ4ns>*fS7_38Uh;>g-Y92h z0c8IfuP#(<+ur1bYu<f1K~3xRzdJ_>!SpX49&q^BRHjvV<)7Sol(Ag~KCLXkXjK7O z_qrBG25jBSEGXH}gWXPeG|>*;og21&+r{0-B$6L%g%T<P>|sEHY1iA~Ilm?|Q0WHL zWq4|)DiYigojcRSmgj+Cc8jeGbv{K|;jPoE(&%u$D8UQ8Ph!XN;4cuEknCR)))tI4 zbeSXkA+|aF(P*Osj^1$K09QxyBieMLkFGa_?l-zz5tV8#5i$<QjV{}R*EG#dXL@6; zP(=HN-860C*5W|YC_6p-k3^|)9*)<2X_1d+zqnDU-co5122}$e_gj*?Eyz^+6uZ5e z-%B;(4|$8C(GKut_HyL)q-$^Ejz_rz9;GE;=DwjKJ82yBglf@l2D@xaBUMIu!jb53 ziTkXiP!XL*LOvC~#Y-#2;aHwIo3Y5k;Cdh(8*Xz%N(Q_;992&iMQ-<uTBBv$TXfSd z4zrKbO2KQ(<w5LGjzm}PcEsv2iDM`p6FJ;`zm|$>tKz|lR~q~*$_DWl38drLOf((x z#=ToUF-NRUqgkkTF5<dBXQ*x+!k{0h(-(7(%3C8ozI@ned|cia5wC7IG94rGn_cWJ z{Ch(;k=02@)v0EBS%weoFLn;WqT#iOSrA7mGJ}8VYQz$Vq?78g28m^n=1ZGyuM@S0 z&tk0McO>~S;c_dKRf0rGCM;=%2OXKV0w$U~W~y-{ue75n4}!#P0p?~qxH)iatxr}< zmXz&TJf`y&O6Q|-#KDxd$bz=Wl5i!;8uu4Q+qO|Y<s@sP$oUs-6cRhzZIDme5&Jm) z<jz9g9CM}S0DE)+CsLbsP4a0cNt*<XE&C6^6u8Cy0}|$J4`NCaW_4z<ToLO61+sqm zS+7$2CB{Ewq!C+pSF!yeY05`w`vX;52cSV9AH-xpe-s0{jbhOlb+7^b$z-hI0ewpt z(C<Gw(ZsP<D3J{4+mf6+Jm)j<fFAcsH5%M2#iHN_ZdiGb6@wK9lh0tcv6rudyWIB* zkGx<zJWL2^eQB>gWiwjwHVn@JKD#=SUOtC5dE#Fh_s?w5Uq0?zc+0-k64DYc4e5^C zawFeyn@=Rq*PEAZqD{kFIu4GtLJ`#^6oKZnaAzhT<wJHI<#BjA8s&$m<KyZN$$K^# z))=3S^7Jw4V5yzk?NsR~FUD7!mJA8)_(kYbuExE*a)t8BQ`P7mxC+@}5~P-h&e&R| zG*5V)I;@Ia98Zb6*)wWwy2puGW@#uT7Ng3En%s!*ab#-5v2Yg~@nE^>P+u{^RvVW@ z@kA3@Lbef|bjxal#?jL#ot+rs?P}tm*ge2<AlnifZTn5l5%$EIm80lAPM#WUSs{q~ ztBjno|Dz)+J&{5NyqlDzOUBXz{8}3wun0rx5(pzgTKJcSQgZh~SM7^BG|_02^>6@W z%BfPDEz46Av^fZYESZVM#ZJ~6OPJCGbMY{f4PMfW1DJwu=r|oNLLdLY;Q*qv!l8S> ziHVF~yjHeR9lDQA+u|Px4b_6k0D!;%Fm=(gAP7_wR!QLDxp7}lY){#Zo4Y1=<3fpu zafmy2<3i4F#8y8x2Wsir>XR;F3UK&t+|T=0Y{Jc)lPSNjL4Ua^4=x;E%)%{o3R7$j z9CcbX>x&i6+x|qf@byL)-FZ8Z+L*CcD55sT9_%?#ZPr6}HS6LHkryJ)+j(Rebbkrz z7Od1Ja<yXTjXp*eOYDTtsdqb7YSydvmG-lFKhV~^2Xd7=aZH$&D)XLaht(i6Nwq}u zwm0tqiJEuuS&~tXNvLw(LTRNqTwtmi31#+AJwcZiU4*x}2$c*OfR|DYxZN{qjh0bP z%rg6#^HwH?1XSg`1y*##!JNcLoUq+BLOR1QYGM*BcC`~5f5<F7SGT`*nlG6RfaT_) za`^ywzw@c&$m~PxLA5WrnMc91h(0`O2!oFia5Ig7=TI8f5iw-U!(Sm4o?=~zX7b7K zQfyWgsvZI#bOLn<lv@TX8Uiu=bz^9B|7BkN7aH@}jU=UIpO@TA_ONg(JJRWPzRN>S znvR3wPAy}cpejR<qLz9S(>4y`xD|5DsPD2^;X{aElQo5pdzGq|a#4mfB={~?eQ=#n zeK@+sC%r`EWCHV1mIm2&TS1?60<x{3Uk;PGkB?`XQGfIQrD5V%beOO7Cs%m&9&b3` z7Zw6}(@7Qs^@gup@ude(<d5$9+8>4%ULZuAJ^fqje|!xXZ=>+LD0&%~o<}(@4ZBBY z0Z*c1fPCohlv7WYbAQdDp`i^MHf-Fu@$}PAKjVxuqNsbD&OZC>bIv*E+;h)8uk!DF z>RUR_O;)_U@_aJRT|n7KC;jb}1Ld)2I$g0EYXuCdUBEzUnr7TtlX03KWXm>XuBpjB zBiU2z*H>g`BSHgC#Q-VRUIrhx^zU~hYUv?7a;s7q(D<7VI5&G~l>|yd5}ZAycuz%k zrI_lA%t<u$SD)D_zQd6y#pf}_;}sO=N0sjO(n>K(E5-RS-TNxCE5%gb3Mu}uBT<Ua zWr`P~$p?{8qZQL$S}8_p&EA(CEPkjWyHZT`t&rjwN1_{h=P<?7Wr|fX(@DX@URo(e z=~}ILq$0agO!cjh;x9N7rTA<MWLIXJblVf)wo!sr<4X3JqthnaWauojtSnM#?`(?B zblK58?&y@dVMFJ{V8CA)bx%4v-6TFMR*AGdp7QM49#QsO=bx#_e#q_doFh?=&twh4 zvqjOoUJXS`@wdFRQjF5Iz4XP3>`F1!w?Ym2-v7_uyMS3<6nlcF9{qp@x_C9k`*b5v z?TbQ1OGT+Vcf7;y&Ycgv_uFOn+uh4Pr{~+<8TQ-RU1kUM&@ZZy#^PNdkAjPKjnY~o zNQqu85Vd@lSHu!g3k50PeHFc>qU`S%8Ike-Xa4`yRo$pe+tnYOlX)^DBQql+BO)U+ z9f)EaU!BaR+%t5_tr?&4Z#g)np!n*f6^;~S1fvQ$yiO`x9Ne6PQ|wMN3UXwWf;^)Z zyYD$TrJxN?L5!a*pJn;J7uWeH6wfK>hZV(_Js&@HAlhTz3Z3lYD@o)S|D)Gdj9I&u zf__<1Trn;O2`siU{n~*j#!Z`}Y|1@D=g6AzDSy_%DFwwRE3I&(piBnk6!e^fQ|wML z>@sjmz;5$pQ3+BC3Sr)`h?KuEeredsX!fk)b_b(jD<>@ywz9)Z>#WA7Doc?R#aRN$ z<b$!(0qNMrM=HJV%1%ByI#t?~&(w%R)3JzeRF=>JDh|DtH?MVQI#KdOC28MlD{h`q zhuaMqwD=Nbid!az47&I9CWodyjjvH!;YgE90C$Un)2^-~O{QcsmXXcvUQx;B*hR?Z zPA{!w6EEcP$>oS9bYnky|KH<~ly2gylippO8>6~Kr22n!aN7TPFOSz&a1LLm+DbTf zcW2<@tCQB1I6IzE3+@9BPAA)A0ZPkikjlEwD!BP<3A-l)7hj$9zG-JO>@34Od!K{T zv5U?wD;zuP@D)2N;ov4Sa53)NYb$ovw>Yzw;ov@+fr}USSmAo?tb~L6cm^)MJ86X@ zIM1k^*#{k*&TPEHC+lpcP2^+uu!B>sh!0N=m#icZN`_qy?lT#<c%6?Gj-7R>qn*u! z^XD>XG5Rip<{7m^_eBS%WEU^?aa@#6T(?(nR>CKC#=+^(#UNBGT;ErlD+l*g2d5LO zfv7P+Fha}bH5<7{9hl;#??Q@uprBS`TC=X&JUedR$iQjLX^vZ5nRMLpjy~?dbQ&0Q z2mfX2bNIFwRM~F@xqFjox=&OThksTqGfYU~EWlXsaips9(~AHAd8Ghy55-Rw0YK$S z&pXR8Qt^(CsZVFL;_gQY5%|R^e;|h=+>7_Pdr=*W>QXE_6eX-M{ExRM>)sR`if|>u zi|B4dcn^ziL%Tw-%4--sh9~P^rRNaN!}N~_gw;JbU$G4~o45yQdJfIoHdy8wTSzHj zb2~y%iVMc;0{5_TirZFETul!n`@pk7IdOj4;T1JBm>m;s*HmzFgfyGG?ymIOie)r+ z%Q8D{cEl@cvoDfnApx>xbLzg<YiqO7EOrq>@tHPzqgT{sdFokwH(9g!Am8k@wb^iH zS_dZ;8n;yx*Ew;q=~z~~R_}BmDn2)u!BqwldQn!Ntb|YZyB(ZLykHNDRBGs%b)D{f z0LHzx4nVMnWdL#u{_cw6IsoNmsi-lhzU2uAq64rDd)S)s0r-%E(*X!)pGB&M0jRJY z#xvXDeutyB!zqi{4i9)~9k?2^xi}Jq1<~>UxI@z6ke8Cwr%_%`GesmHjt3o_F7>=a zUUo>`01p{^fo+XBs-JS$I@HlTw!%@5NY`pB;LxTsXtn0CiymG1b7-G;Xxi^+9$Vpv z+Y-Qi$-!w?qkWu#+k02P;?Q)CqkSAJt8y6A+S8olAIX4;b*xgaJgF``6`W=GG<@B` zX-}gSY=z^%c}6XEk7eM*6i#jTiH!fg<rS6xj$VZS=Df7>Uo?@8CyL8sG|B8o@Bfny zN#`b7$5uG@-!p25^JxdCbQrB;udQ?K84Au;cE|3A8MtU28)ejEXYd`|PaK?1cC?PI za6LF{(82A=z(woW3P*6(w>TA+;oyFefs59$6^`H>e(l)(Dgzg-;|!c<)Xwa$9h}Z= zy>*;{v(fd=KI`C=?xJ;^Nf^(l?d)?7PG>fp+^o^_HeZ%%qlM!6!oR(u_#)b9wdQk$ z1JNEwliSBjS;I4Gd%V-ZX^-no?hIT$A0rM<v5O{ml*u(RItO;G15;Xw2DcTCl$_ya z%ahZ}4GvCmizasl&NFo6EW^Rw<luDVqRDNABX*uq3+|Q-T(G6Hu&~>_pbBj(SZM;? zQBmBC?t;lH5nfec2)h=k4~~j9vjWJilHH2{z_>&JyIU5cq)|h#3-j0@F}m+r1*1DX zrYJG^=aj;6EKvx{;nx_L6TToS2g+SATC?}IA5RQc#ySl(<Na6Zb;g_9v4T!c2#)Gc zHvP8Nlp9FOZLcZUS2@=^YD)J@>C_P0SyOsIN~d>sTwPI`!pl^1;c9<pj&yE;Yap{M z(&Tyvr}tWL5^&2i8qW>tQ7^5-8cMTcd6>p6HKp0H)f>`|ja8K1kB;5t;Iw1mXb(G< zGsiA3tsM)c*|B^9d0$OwcC07s*as>~??=Zz<lwYplskHumNO?x^H8&fXP;XQo?Xg| z$#8t}E##&A@y>FM$+owWBPa9X^^BY65^iQd?a-_pt~tB0r$ZkP#HG#`;>7E#5lo7+ zFc>u)2P^tucJr-j^NrxfH~h{Fzmo|W^UNsTU&mP87zEiLtF!VHfNLXadrWH%z-rEn z=JbaQ1a7B?;jd`N4k|S<u$KivAi3XSXGL-JB{*cIyYc=<fspg%brlfU4I<ALQ;{=T zQC=D>UL+%J<*agBMP0VVVX12C&WiFCZRrV5Ih{fR&{rWDM$E`!zI%0+JO_zamDmnL zc}qescxHmKX2OsXFT4in`og&5GZT(L5WZX=#D|GwnsQ|9fyVGMI}c^@*iSmHyB)Sp zJQUG=czbaz-(F-?HQrw2^HV(P1OCWa8e@RyWeEg_;BTczZ|`$_N^dXTFi{BX#jVmo zWW-ZF_j|Q{dwX%x0c3A4KElx8?)|*e6T<1!?v-!+$^LLQMczu}-8D=3TgB6dIH`i? z6vJhqrAHL!j>|>mlZmL5M-=D6gAXF_MvpE@u=%56GRQ+_l;q(aW)$V&0y8WgebVcT z1R)E7yU~h?Kg|JL&6(94R7H*;HC%==dt`zXGfGI!F{6moJTnZbaj#EgCbU7cq9{yi z4&Z9el;)tSA+-QyD8}VMIC?US6f;Ul%`l^g)GRX$sZp;lBcu(Y6-8l8a{yO!#x)03 z4XOFHC8Q=j8IWQ|38^V&6p@-{h9NcV^@&tl8$>IL!m#E5uI7wr4yqbbvv_p6Fj9Pj z+Wf6Dz49n^e2alI!dI$`NKG=skXkrA)+bW)#|4@~D~iG%%>i7^S<oC*HKeA?P)0o& zMv57wks4!05vg%z7*g|xm5`dz2GNS5FsnI$t2uL;gQ|wqWEsk^Cj(N<C?Pe%j3QE_ z%rK;8*OZW&)CSRtqA;a7fU7yvnuDr_)OZ=n!l4mpK#Cb9q}r%ZLTZ>9hSapz=k$$f zgJ?xj7}p%Y)tm{<K~+O)v<zkbkOV1al#trPjN(WwFvF0V^!h|<SQ|tuio%HI0IueY zY7VLzQp05^vsgq+gwBi-Qgh5GA~nwpLu%aX6RADx0->W7MPWg609SL`iWI6EQVXjh z7KAeG$uND)C?Pe&j3QFA%rK-zy*|OsDhg;tQJB*lz}1|2%|TT|YJO!2sYy=;q?l1c zYKj>}q^6l+NDX^^A~mHAq7_A9T5|wbb7nLLRSl`x6(yv`JsFT<MhU42W)zW{WQHNN zfSYlPVow`HD~iH|<^ZndOll6Q8dAJZumEM$lL0Aal#m)@MiHrTW*AcQII>j$H=+%q z6-8lGa{yO!#xw_24Jq8mU4+7;UnN49vtUJuzN}ln7mf{t?zeuo6$QXmq=q$THbzUe zwbpcWNe*ic7I>{SqB)~6XH;{rv{`pG2kVOFjB5^ry5>x14kW7POll6qndVGs4rGbu zOluApS#xGI2VA5%vzh}E)|@%b8IL*hnuE#HGJ7-!Bd0mj(BsGo9F?JkhTZtTr#Ep$ zeY+i1LbWl%o+#^AS(o3fDj&i$QuF1hs-iH6_Vfzm)MN95isB$~yh;@B6J<NOV`xuB zMH*hxPVO0crlNS>Om3<ErlMYKCim+6zM^=^P;KEFqM_{_u*dlDIgQVLe8BFUJ_enp zO)BTDF%ftqcyTk;&C#uw#p(QVFh>a-QXfz-B>gyp8eswaMl>c(EoT18PzqUjJKMaS zFNJo(1>XHFTuTHGQfF)JU-N3+VfODh*tWQwc{_~k&enOuxVfm+ae24}fOvIXiXXaL zVx?|j`E_fC9_FWPw#vn0CSBN-1$YKZ!iE_o3E0NDwvq(Iu7OKHdNB$TaQ>LUDC1F( z?9m*+Rc2by98^V4u#*xfsozN4L`4ZGZla=Crk6a5<$)4TGuqy0#9&r)09J9D)0}~j z0e4W!+Bf(dDQokwSQZriOM|d(swfWr3w|SD5?%TVA@>`NRY2g35&0@#&RrGdrNNTl zh}h=b_}+@TY>UHE)z<qf%4cmY^x{@%_=1K$M)I?FV?m=j=FrF321rITV6*XY?P0mx z$+_cRZ|p09I|3|@ToF_uO-KdM4(mRLrJNRTjHrg?RX^-iRT%L0h(H3BXn588v#Puj zZ%I`rv#PuVVo6m$l2r|t9*O)aVw}za9ByZ})^16r;Q<Gy(?HMgBACSecbj1!kdHbn zord6qojQh>;)y8j<2N|^<yL_9@gn~|NkWpV#VOhQnw>04Sw96KkEbVap$@NJpr?>N z$upbX@(RO;SWWIgSOi-~?h}rjPBeF{msE8st18zlh?ppjcqCPC^}(zv9g9n9^`Wfl zN>s%p;)*)yJ2!&hoIjpi5u1kJ2pRDfoiR@g%~ibH30!QiidI$X&HR+(kX<<NIIjs^ z%C<)5p#Osx@l6eGaU?sDizX5Di_MOe@Z=$^*L->CyhhuORUF2jPkeZkEkk2=7#~*v zcD4H7g0+`VdEjDC%t&jhd>8U$7Gbol9ieK3(NSw!(|Q-O(d-;AzlV3Gcx)URrYD0% zBFk@a>67KRxb(?2NoJAI(_dJRX*y^tN`K+XJZVUC!j*lpNq`(diZ|gFpcF1p2}sHE zTSQ8h-y%|NK#1!x?lUQYLm!D0T2T}hGzV}sC+u_kRVX}fo+#Vb`6%m(9Io@xbL?sH z8!L(jjX0oESdj%nt{UG~0fGG>_FN@X9sJIU@@3r^+$e433h#JDUADz>scP%)it<@o z6J6^;&Dg#94rJueYeCTx<5h88*S!u-Z><V<7=iWKI<7G}R<G;&@~qvzJPp*MIGJIh za4FX;2{CN_fV(O;OE4I`&Xjuf@Y^pnLQpNiZB?%AUCG*XzoVP1P2;xpByc#~N?@uY z7+e>`lMbu2HqG0GtsA=r_=J*ND%aO~n{G_aVKG|MYBalLrJCY1DqN{jz3`(BU5S=k zRU5jvZf#fz<!AjW=s<G~c}nAxgc24m$ld{nU|`Q%f14}0y2({=eJH-rc$;jw;a6Hc zxKD1;(OZ>_-p3s$9X(s{;%F^-^giLRbo9c7<$e0<R8TF%c0ng~`*_uwp$FMjE?dw} zNGie^I#ohTc8@IyNvW)kkZgw$NMj@gh)?fBj-W17D=-74TlMlv4`-F|zI8{qNbYN0 z9UX5!t+BqNb1=RB5^GqGu3^}U(&Hy_Im&k4f1E5u965L!G>`@ZQxu~zQc+y${8Zc@ zAAx=?=+4wCmJy`w1GlXmLFoYqPFDb?6IF-B<z7{<f)5ctb`|^~n0tK|o?GgAMH0GR zB`0vdWxA*T4u`KyC1GYPDGQAZTs*fVP3X(;RZWCxz3BufE%k2$xT5mM{syADtD|9m zK|vC|2NZ^F&Q(GA(IZW`6bT2KdV0bwNI1=egG}qztvl|x@CIT$!X!tRnoZn!6fZoI z`;PiHZVZ<l$z4Y;KkKZs`uop5`|MY|;+3y@)vL}q=hd%%^=n=;@Y>hD_I0m&{p(+U z?zwMx;~U?2-g$$AgF{2DzxZd7(uZ)Hen#zk5^DcTQhVEvIVGA*y-Gq^kzGH!r5)ib zNf16BI7kKZwu*wF>HxG%*CV=q#l83)URPP-P2q%1a+9dEtFUC<iN8C0UFoni^75b6 z!O~kwz3w}`uHx|*p{^-)<Wgl$?SvX<6^LBpz!Z^IH6jk&F}dC=D<(s0#5H#kSo}Q7 z3yk5Wn(@v0b#n%dAU1Yw5-U;MV1JDz<T${7Lky92tx|gISk`xW%-hi}pKIgi8mU4v z@ZRUY^V-_y*H;f1sjo-{Rre0Q$AKv-uY*<r-zM*-9MA#0NCwcW#~50}){%Rk!&Br4 zWMkJwaR^s%2>A%<tLul*Ivq{=yrB<zLyGu0%NWCZy|$wHsz5id2V$?#ZeO_cZhs_$ zM<944D0cfWcAK$l{rlDJPk2Mx?X$vseVPgl@Ae|aU!a)#IM!0r!wyhKB3ux5LBxC& zF&BO5C3UDrwvH2KEjwj=&Kpw9^~S0~<ytJi=#>>qy`L(roYH*!-4U5_Sc*uzoXW^7 zO0P^reAO!}B4-A|d5q)F1F0PU^OsIJvl&1F+1Pb{9RE`}{$C^b@N6%Is||1DM9)w| z!@A=A{<gQI{f_4|t#Ag;Yd_(&wd3nU$LEO|PbRYCgG=xD_cMS5f@tN~@$=a6?-BgT zb%a+OiQ10;*jv($$6Iuk(D9#nZSDApq2s?IX52Vo#|M_)@n<rCVfSSqcKr7Z_WU0S zAG<Gm<K@V6))}9)-*{8n^L0U5TozsAz`cKOEjYmE9H0(Hc#no#Q(@<*i>N<K)Q^g& zL$xYuHrW#Cv*;~tyDTbHiu#cOb$RbmJj+16Pf@RJ!2w?302OrtL5y@neLYdXoFfzB zi}`EmhW27wsm&Vpc1FA%Mf|XU_>I9W9OwoA$G=+m4(@sfr)Y;aB%2ZKDWR5Y2px}x z)W9uk0<m3h=Uv{8qP;4heJ26aej=Io)_~9C<d}m~w1WxO8__<6qkSuZ!?qPwJh#4r zY4j03n`RftrZ#WqAPkhl8n_vpfAT;(pw*llc_y&|=yw?ESA)0J{^0RKramZ}+p&ha zrNS-4Sf}8YGS6xse6)GpEm_@Q3YY8lz$FOpRy+JniT8k)_NuoFp9p)GbgzCk^%L6> zlHaeN1Nu2wiOq0^O>lmcv1!uV{E1VOQP`2yU9qM$_OqGJUFUQ*unhtSkt`e>5^NI7 z9>^NZtC-kyA@%m`ly`OD#}ket{O}boVXW4#O?DL=(JQ+!UJxM!$d!WOYbY3=5)0n7 zq5eA3nLDyzRd)`Ce;}B{8~BT^exC2Bp_qk)Vz{*d^HND>ck7MfX@02j?3xBg;XHT~ z{!-js;!57t+V*x$J;)8?t1R^pQ*f$DrB5<(zy0(uQ+x=D@IF;ce42@Wt-pMRiNDeW z9S*JA48mubdZYgIIVS!KO?;k-@7rrOUtsDq{ppKLTyG%0#MHf(`Z7}wS+yCaZn59K z!qk)Y+dnXMnf>-vre3QJJi-Ka$)sOjW8yqbJj%p<R_W_Zt=FGsnYcs~-(aFo6OS?R z0ju;)rsfQb$C>((rM|_~7cKQ|rrw}HzQe==21HJa++nFF_}k~L+IN}ywxzzu)IVA3 zNv8g-f_#dJf2E1<Gw}^8_cT+6KVkuPwce)Xe!#@Zn)o3TLz?&z6K87T$4uO52>ygA zOZ=3HaZCM-ssCPUK`q$TdZi}*k%?);=;us*$ZGw9DQox{CL;CzlBpkBwO=t6>EWN4 zdY1u_otb~Ht^Jxm{obnmrj+_EQ)g?zXPIbe;&)8^FPiv06Mt{epJPf17>iiynA_Zr z{Hk6U@~f<~a@?k@g}l+U60GIuj{b-UXiNA)u+;&#gI|*}L)gC+Tzi4{dlhT$Kt;+I z*59bV2<OL<6xLs`0TR}~+4?HH|9Y(^yg#T3;e8Vk!uyXK2;u!J41_TMckDOe{>aqA z{V!FB!u`Lqg2MeL>QBP_|FtHB_eTx9@c#d;KMCtUY#@a7KWi!B{jXa}m_HJXaDS{P z+&^z6h5e7y288`1#|!^Qx)A=ig2MjBGs68Q42Ail{1fiC5fJ9T(RwD#|8KNm;r*W* zPQv>)SwZ3bC>MnJ|D9G7=08Id!uwMOLzw?f`jasKjQu3s{}BT(>~91n?0=rt67Jt^ z<%IoL=}*G_PZ&U9|8w*wVgGYAA>6;m$_e*xH-N(aQPc?g#}N?rH)a*?j~x^4A2uMu z{vWrLu>W<I688U<H7@*ryZt5t;LVDq2!J?eA^>!-B44lGXTIK+@pU-3Jxp<t$1Pp% z#Z|s^uK7bKaN%TQ=%4hB9_{SqBRO~dbXP$+rhWtM<}_+Id->~t{6aitvd4W{`&m<X zVh35SCn>k3rrheVU7M8NUQ@b9N~as=S5%ayl8m^@q3IY4%a-yWwvmdug1?kbTe_~I zbahKPDcoF9*ILTA*KeyRowg*qWHKpX%KeEendrw(#6;Tx``ilR)bGnbkjqsa1zmXY zc$X0Df>4*m{t8Fhj^kh0`;jLvumM#0Cr@F7cQCLc1k%(9nuYFsBd2{E4AI6=qvyxr z1yTCTh89++N)87gp8k9@!&m8Kei3a;XbLO2;VqU4bAuxdkrW{wA5<08_lZIpe2oR3 zIc4h%ne*5aMz~6>Hiv@)EDUfeiRLv2)ir02=Af?RV6$*#!Y1!%$F3>!aU@u<lB=$& zC@#WCQ7LkZfXLb9`U()NP4pRekuuCp73EVhR(x}gxxJz?8{^1SHTHKE<<rLCIl|$Q zFi1Mk<2+ho%G`t}Kq9#aWlhk_wm>j5bX%=2QcSB`C`o>3@&`0nntaXCDIHy@VF&I& zF1$mVs+n}Cz#4Kb^L^f9)iUW4-QDWbC>Yq<2v3Y}ZsGx7P|(nqiS;Q&juCS+2u4KE zZV2mA3e_A(^6wE(Vpe-#j}|mh9l*V!xjREMT!rpv60I*0t&_r-HB0`IDaK1;;Ail- zl30UqLS$p{0dM4+LE}DA#sb)pSUNA*E!@m7xf4PoP~3wDf|KO)ju3Q`NEmA{G!yDJ zsH2FCGw*R^lrw|Nc4kGw!uQn_tYP7gR1_Bym(eLQ@KoB;$1AD^KENpCoc>TnacgO6 zMX@D8HRs;xDgcB~mX7=FyV`$_E<RAaf0Xe2K@utR$%Y6M@h~4tnzeNa@2Pe2G54>M zWsbowIB(%a^?7%OUHYO!mPU@Vbk5Py>AqKne#GZi<qjhoi*knyy}bk2>2rl;hMpFg zqen9eGAEq4Afze|f7DxjEO2<$yM?n97RJ0)V7~5P<^ve|^<`58Oa3k@0+$i<BZ8D@ zhfq_+60fnPjP;nqQ(li(zoBkHVxbMsz!-BrXM;#{k^XImc16HWZhlJ~hlQ$f3r@Wg z4(bU9_1qZ@06RQ9->Y)36L&W>J0*@!wn!vyU4{Wt5!%mCt7D6k91`2Yy($pJS@SmD z<zA_R>fLtSzVEp04BZU76qzKQ_kudQq2P2n4L_<WSR+Y)R#DvK+jK79asm0vMF7m^ z0CEBO+bRGrKmm!_t_Z;0dRf#xD|R{<fP02+No;x4-pkDv*<t{$th1`%RIjtomvpV} z&=pySxB+GR6ztH6+Mx$_zf`$;KRaZXr&No(osLj;V&S@#726b@gZ2+L+J=Vxg$O)c zvxK7u4D!^gMi7UG{?+VaY)woi+4q{WNKXVfC2Gu;cC4XX${KhmIw`lUqMXW;O+`tG znv!&ZvBPT)2Z5niCIXpqO-rgQN&#KzfG!V!iV>$G<^>}PuQK2ONq5h43`ZRBjsSRx z*CytmuFXK{rHPAoHlpmqc7sFG<wWjFY|WI9hzyVRC*yrnq2gLuJi6AjX7q?i_A0<F zURvj0?@?S7VdeH1t~lmUbOgigWONden!?Nu%~gcmipS#t?)%n<#DXi1Z0MzA-1#Lp ztmNdY@1Q?-9Sm3T!G!PT(Ft7Ev5-@yn#pkT#iwL*J3>`8CPbk3*!D2rk(H&>A#d!O zO1CbyIv5@Dc!y|8xKk+#!(LaJiNnAlj!(-{a}q2Py12rt{x&ET+!uz!uhsDus!l!7 zoDi@MU=@qTRbE*ajd1b{jfsu6t96{p*gJm}Pi-*Zx^Pf~VYg=dO;k8Ji8VFLXwtKS zCWfji?B8?iS0)r9`@MY@Au#q&M<(O9xgBfh5O8CNBbajF7BBg&AWs4}K(5hj6?433 z!m5hh%>fvQV-&WP)qo8l`g%@os4sVK2pfHt$Kh5i`;slN*8tZXTx%8o^qpKiS-|LT zK53z^S=giNc>R`#T$KxPVQ3bLJ(3Lau_!(??`Polq<*K(?N~*bgH<@ndwAHsCz+J3 zUi{fW)FDa<T3>j0{TxuWnpN$RJI4SD?_%KbYk~b!0k_@T83|Jw>?WU5QueI)Y$l85 zTN)HT?0~d?1f<C1Zn!HeieofLDQKpEaPV`4B`!sN#DVC-$wR_$$AQ0!l1fH6*O#yL z>WXr_4jd2)ID~fNGCQljm$*vY=ztWD@a+6TN(47~L2c0rhIk3-|Mq~r24v(Tf)1ic zLNB*EWVNh<2^rXtM8iuCP*o=ujyJdr<+<|>!Lmd$+!wfjx5bCfKqhT7&i)K1hJHB! z;FK=doKPa$cfbV%9W*e0YwBa^f!B9Cj{4wvu>SfA;-kOd0fWe(4DJS6op|mXEzfk2 zs`1&iUUtP{s?HHPATi5NTpl<_Bnuu(;%KLEfuqUkICr}oDShf(uKM2H;!ZY*s4xv> zqQF?9NHPuYb!a*b)H-G9R0#<K8-ton275IZ=Ho03J)+<whtIsrFF1V2TN=5tu?y2W zCDS@3b2bghl!VHQ&dNQGvd&5ftI}CP`y#xFzW7LdhH!a@&c}2<AM>U8ARe<No?2{9 z?sb%OPQs$x#!f~U7VXinX3QJmjaUiQFXk)HO_GEYGvLGCq;e(~K^DYHt=qWPe58Li zA5ZMEY2yH_1o=u9R`ri{7M8Mtb=2M9GKDs4?4RqB1xHr(fw-zadQ?J*o7=HQvZ@az zCAWCV?-W<{B3puUNB|;1bcL5yU03)bVF<x6q9ck1MqET5WIROEyyjF^l_RlZ!$i3L zb7&wRK2Zdw4k?V@;yZ{~{Lg6MFJJt{;N*K&y6p2J1zqZ=Do$OECL>S5Iy7acuD}H8 zQn<Mtt0*n83aM$D7YOA`eJrj^J#UE+4|rJW*Msp9&Pzs|Pgb@7(3X1qs*FJ~kgk^7 z9W7nzgZS0C73~c%_`Y(c{Tg-v+AjjoUR5pev0t$`g#x;PW(tU!?5YyaBi^PitwA!* zq{v<41+_I%`FFP%c2t(*<<@}?iX=R7gF{m}P9I-Uj>nZ0;i3q(l9lvCOcd|Y?F=WK zXFAufz)x6BPsI;n&tOi5IR@zR1O}X=HxuTm=y4I)7QrQZWfiOGZH}VK?cg;ivTayF z1KX<H#)Th{<J}+`U0WtP`8y-g;+i^1)PU9~Q3Xei@Y8sfq*a`;AjsXA9CN%>cn7Z) z_w(4!r1f`BGe%8#&uhkrW$ZylG@2GX0q)D?18}Uc@9uJJ3SzM6Lpx3FyDyEKQ;?X( zW{G7?5W|=d><VTe5j3W&LU8}Ax?2({lvs6}k4`9fb34{3bet2ATXnJI6Gi!7lnW~J zMgBL#TCo3C-NKqB3-iK4`HBYqa-pt=#pR_!Sagu>IL~YL9C%j+{7i){H<k=7O~0WT zx8-J2WnptWR#91FS0c?;+j6nE3ix0eMO%&s6?IpNL{&6h0zeb+__ZK610y--ZFjU( zz*p@?P01vV7u!i?>97OR{sl8dkf{>%v462RB?jarnkgV$6dNh>Bi^P8`e4A!6;~us zui#K+%cVHP$CCh|fP+aNE;ax+6>#!FyfMQgtj2RG5!~bjwbxc~SE~~mqx3(w<;vJ# zh^lP4*cV-VsG<1c<GW=2ARM_*9>zmBS%4308M1U>U)?p^Y6#_4O?iq?F}G^&^sXvG zK^qBDq1w3oWLOe;>$_aXK@71Rev-=}Z^5UBkxJnt$dOW0EE-J6oDoT~&Y-5wBIHlS za`;}yQJ2GT&Sgo<A(z7Lund|>GpQyGmOn8qftJ|8SO&%DS^<l?Kvs*HGj}^`x*`S( zi!oTF!D;LA9?h7s1#m$#X4RaTsW2-DAtTQBdy`6>T!e*6qB&#D#}Q}q(VSt^Hs%n9 z`Fe}xR&UxbsxHn*A9NJ5&7$A%(tJA(WwQMb^9eKH=Lilg{bB#f{tB^z(M2fRQtBtv z?J0l#R@N5Wm8E~hhj4Log#6(_T>C3NjC<5#FXNtoKZF%Z5aG#{ui~D5`ss4N#F>44 z@rsF;$Q=_etN434rdyZ1*{<Auc~`RJorU5<v)%Db5RKX5GBlrF)U>%BK`4O{1l)aT z!L2m~=exzZlP*1%*A(9qil;*O9TmlO=|L9?{8<$HsmOn)1JR|2qZe+~DGvfr&X=BR zyt)nrt8*x%c#8536~z_h=?Yh^2y#`pow;syAc``Nyo<9pnKv4o+2+`-UR_ZRC*}p^ zJoNXDisFiLm3O%s<##&}Mfs(I@?=pH!LZd3#<*8klv!Pi=NFINT~S<7MuSTvj0p## zyMHeclr#TwH7$S0t1HT^UP~DFR}@#2%bv%@X!)ZKL{Zi&3R1s1h{Xp&lp*n(%g8vL zecZw6r0JyvUN}g9fOCdZa7NA!?m-8q*u{Gb92qYBOT+GA2d7)fXBKH9l`Ws~;yNFN z;yKlSzM}ZD=i|!`M0<ROkkELd)~c{bQT_+7t|+s*l2DHFqZP#!Wi+@%s(;LZD9Z7f z@iHA^k~~A_+?w$@|CWPO5{l1<Tj5ATMlnHx0KSPA2RG;76uZ;xdI3j9Nysy5vHPBb zQxe+XB*Ylq?m?`Kakt?6UR>v+P&}WHA667!_I&)*foPAzE8^vyex->V<$v_*igI{H zyhhglvZA=6Tn;2yObY$lfhfxH8S!k+JwqqSn(<M8*1;(WooaJ#g(C@NQYa^(=Nz13 z7vBfZz%2p0&6h=0NJ%KflEXSO?EwRr#<xsmSD<b$zzOj!C#|WEZ`t9cbz0+%Af;f7 z;xtt<)J_MagBu?X_s%Or`S9pmX;VH`BMwamqxRu&hhEE_*E%$vsrYcX*H+v-qYk$l zGHCJL@Y0ZBm@+|R(7mTOIW+BQd^g+*N1|K;xLX{Yc2!;uPswIFBb(d3qTZZ)>>^}y zr<Yc;i7$%#<Z?t4y0IU<|L<`~N;mSDxGK(twWdIIi^%o==-{;f@zHSO;QHaT5{}*7 z8MydzxOF9h^9-e&9NY&SoKAKO74X`1OkyI*vAZV&7heu{QmF%H4LZ2{9Gs4wJHN`o zUlo*{gPY92#qjYAJL_AVS<7(jKAM4xFNa&<I28_Gr@~4&xQ}Px;>+PyID+$x+L?XO z!RgG#JAWJ*or+AK$j9zs2d7*SUk*2_s>dz|_n8dbA+;-?OPx9a__+*P4A8TtBXXWm zJ9J-ka7uRZk#EOEhtAb|1!pCEVrLwj4qc2^wZaiQ&ronSR}Sv04o)XFKJ%SQ`)ppb zW$jT1rntpNzOChmTh>*hLdWeJ88{72rIWWTI%B%FqmMf<od!nb!Pl3%V!rJKRrXuK zN>|Ji6~*DI72^!!Up#O%7hD~ww*2%W5I|oUgxpc_lSLp<zd~^Ip~2nFbFiV;!GxXd z&Rv!gLh!p&{y@G*cpC3<Pop{*)xTKwEr#Gj`M+F0i%^8{2d5$&iW-avUn1OyMGxX) z4#em@JX!xLoro{W|9JLTJ%u9`p2G3OQ%L)BXv95*ApfZ5a{R|qs@vR-Ae8EY2|HHp zG}%^BT<woCrv(MYd1{AO)CgksEO&`XySW$dO0TYHMyt0hxYKq=yrQ=IB54<5AQ_lS zSKPH;UE7W3u?rFk(X`zgy`r|uqt<!wW6e0<?A5hhR_FXxdM$6OD6Z4u($mqbb^+e$ zKvatQ^^GO>MCgVJLKS@0jL-PH9h?fjU>J*Vif7xkOSxe@?$vb!f?+HpklXTiR}|L~ z@YQH<BQW7WbOe@R7+W(w0v~d4Is)OewFp-ofePDmCNm=LcR*@HoU(`!@qm}sk*hJF z6C=V1+B@)Zhos|ia;<)oX(ai0Jm}zb%@2>sl}&MSNnBP{KgobwhU5Av2d;x14P`4F zb$|$7iPs7^wCN05t)cAlrxx1h9h!DL8p_sm#BB-SzU1JvtI<-<!0o-OUvX$U$<b1d zm310ox|Zo5$$*KStdg&+I~l!2<HRz28out}w5QP?w!(4XJfjx7$1-qY6sK1FY{r1! z@`}oUM=!#Fb6#2*FdECo6anjm0qsZc|C0_$=O)_8Ryg+GGqnFUAP(+n2d8ux?PRa5 zbL|-l&enGa_rnZaw3BT)sK?IWJGh@XIGyZhCtKlqaMqxM+mnHdcCr<Y;H+<v6fMKS z{UQSw?PMz)!8!cevHMj9F51Z%IM1k^*<U+2o!NRjIRj^->z#ep!71HEJ2{guo>AM` z=Nz2QY&h*%qwH<IEY(R1#q*_qdqwd@bkb_&=L!d+J&wk=kC(EBXVmt1r-RcT*Bjp% zxO_fF9GqeojqfOvYh-i|>{<t=v=U8kD;y~~!_Af_r<EHVoZ=RZ?+l!0=*U@ygS*MW z>BvRn+X_eQJfjxeEg86ARgb2I&~08&g|-!}G{5htC~oF=(e&NeHCk<b?^*-^SjvrO zg^*j{yBC3gk#PtJ^i%VDRKtNs>dfzZR>AzXJHR~T2gdU`r5GJcSfEbXp0=<ZgzCU* z3Fd2dM(^&#bY%$CP%~b#)tBt;ZEnX3IzJ(1sy`{WwWi!aQf_-qxxUKj-ceJ!UrMJz zBs*(L4@l{h@~*BZP5EWofiO0%tuGi{7S9Gs%Ysj?cW`=B1}6d6kfZV3upaf&I;^2I zJC?_7+)`7T9m}6m9;+z5A04~P!D+|BAs}`v=Z;-oT00g>vt#)h^1hnV>{w6s4&DbU zO7BO<KIGuEV-!7l_Legjd}hrWm)Vb2gJ+lW8YQ^+wGBPbo-l5j#F1RN`+;6CzCMXy z?a0YPV-?46CK7IDwC&KC9m6@hG1(a|gK6Qm@e6V6n-7(QOYm{vxD;)HTka_S%s$4r zhMe*>P{{1}QY<qJj}AWpO*v&ma{y0sMm48DWNgGSk3=k7(T+V)vSD;D3xX1IFU8J^ z;_-?+>6iIH6-3T~*HwUEKZre>Oohv6MR{3yx?JLGV>wscR#BOaabT(%yR)KvRb%1c z=eQhJ;bh}UMx0lbP+|rn^YPlV@bc}-_`0~p7027zEXbA%xd}c>w^f1mV~EGNBlKiA z4ng>5H_qY_S{!s^&vRtf;7!5jI<~ZW<n|&S)#O2-bYyosY@K`PohxwRo{;X!CJyGv zl}5<fuqwPDzNK|49ysi1S`v>Pt_)9=Gqig3nxR+WgC~E$3px8@V8V$y(P*+KXzz1; zG)8wNJKOsD#92zuSQ;$M*EOj7z1mZ2PHW&ACyI1YdwEI_r-xco9}TB}gC-Tm+W|~E zfNR4InEp86S5Jqq>0b6(e^({=4T9*??u&2y$^LLo1^10E{Vxc@!tJBI$De?qRsa0> z`aF{N-b5_Y;WaeAL9`r^Y||%|rC7U=h9JSTF(;FKlP8v|jcf?Q58zDHX%4Du&Y0$) zE^-9+o)gMo#tZ4tI&-qt=kT<$3236Yus*a7aN1T|+d_5C8P*)swbuDua}mr;(Ge*4 zF(+$%xKNC(&uQxbr)|w^4ytR;9?d~rYklgta_bB0JRSPZoUHYULNT^Jt&jmu+nUiF zRM(tY%|Tsjeg0T)jbO$K>CifJveswuetmJsCKNKjX<L(;gX)?yr8%f;t&b#N@P>T^ z8(L>h)_S{8j7X0vWPsDQ#xw`jHD_FNP}f?YJjz=mm_0{&I<(H5to89iF;;6UWPsDQ zhBXJ(HD^R~P}f?Y!xB>*!qGxHw9cHY^_jKhYV$bgLM#AI+uEZ!sIEB+nuEI5`fvhf z>IerLT4zqy`oiH}jIGWnWPsDQW;F-ZHD^w9P}f?YNWjb==3qnX%*k3GD->hvlL{H& zw5=)4L3PcU)*RHe)@RpvYXmb=NQc&$leIp5Xt~;$LIyZ(Yg}_sU2`Th2X(FWb^>Pd z5C<DtXHM4o9;~rNav4_00H<w@Xb!4t&Zy>~uC+d%fSFt6U_<N7$yy&R6yuQXIW<rn zz-e0xnuF?^)7I8e*IJ*!owTJ+6w;yfVdP}3PvPR^VzpUq3*fY^In6<J&6(F6)V0>1 zr%SM>6tZ7}J*_zt@i57Z=FG>l8q=qQ5yJ|p7|v)8RxQn$)f}uOnlq<4knWl@uQ`yo znzKi9AO$sNL31FPG^cI&G%aUXbHKq`W<+zqRhl!ZIiPgS8Pgn4pXQ8f4k$u%CNu}L zq&btCgOSsmk(0w{a8&RdaR|@AsqYPm8T9RT)Lc{*4qJ7sUu6e<x2k+FnNltLsj8yT z+b1^&<kUOzgNouHS)8Zrj`j{4%AFN^Dr(X|kcM(^#WNMfE859zs^3&pjP2yEhTm5d zFPl^_ojSv1xYRCb4)GCmSV$wMpx>&)LwufmX|sDT29+!ITQ7?<`n_N{5qN-tLE-y) z5f)4Y+$VgBG_{zaCW9%I<?U?qcD@_h2{&2yw{Wcv{2HCDwep}mE;NwG2a(aW9fvzR zTjveq=ABl@<-DFD;MK*8c)Ei<wT0!^tr>clpRx-GrKuF%QofWth_%_y3b97Zx+vBr zlx+dd7)NtZU2~>12X&DXRQHZDn06r@T4zosR0qnnMiuaMhcz{(IjF6Tk893A$bgNT z^6L#g>dLR{FuN=$OqF^$ZmK8_ltc6wFo~RHAab|GSOo~q8?mqQB-~X|URo@>Er@T< zV(+b}%*Hq{RgJyBqI}-i)Q0t)c#61d=wqZQ-r%N$r^7CeS6t|Rip>L^6DwNX!*b)0 zll;Bj+Ean#11t`I5mX^fNWkAfJFNR0ma>msUQh$etA5z4Du?qTgFpq9Xn588v#PwR zZAn!pv#Pv}U`bU!l2r{i@d)!5G4_Gd4cfCCXSUXENv7ce2dC3OC*&fS#NFO}8b0c< zbQ*#iaQGDZnM6MJ@f&=~5Rf<|zCncACrL<hFE+(B9#CXa3h-e_Zal7l>s@#O03B6y ziJjT(mNy1I#A<R5e-Uhbwm#v==|ppXbV*gGvZ`{@U)a1j;*nIn)d#bx^lL4t)rYdG zD^V4b2p6IBJvgXl#YGUChHZt6c%jR@C*VP;bf($12;E}o^>&|f9I^xNAL0d;OYxw0 z4*EYhvEJ06H{Eu-mhy>6Q~1^CQAaE(FF;w_b0oP`T}TrZA)b?o3yHF2Xu?7~L3-V| zi|8$Isq>`@+&PIUY0Z^y>z&I2TDG+#SPf`7YE5faZ|gOp-O~kF5VFZC%R6^$`3&ov z+`<zc7;T3aMp2C}Wh+K7qp}An;FQwFGzZl+C+t&7UF1mXGlf-^V1^6n&^mLnRd%XT zZav%%S9}<FSX)PRZ5@%|VF#gM>+EEzjb7*Drt56DEM_u<%ci>SjTOa#G%o`YREq1Y zfXKDj+bTfFH~?8LeJO@_R+LZFSa7>Emg}bD6_wc-N2aQ=yDQ4)jZNY54&JoY-P*!U zf!BggB~Ym1La2Kkpx%oVF3AB$vwd8ueym;y_2pT+@OKu-MJX}IMB&<}d8Bni0ZdaV zH831|M2PpdhTndv5rZ!NpjxF4F4<kll5@YKn=Cn#1zAKH8PmG*8(f#KlMbu2<ScZ_ zLPH<}eEbL6G2fJan{IdP>4H|>YBalL0h;0iA6$S^jqjrlT?v;PARFX9nhh(V(_rUf zMQdw^Y>?m@7+a6fjR8n`tY!<e1n{ElnfSmpD}5-w(0CiKW#O;1P;hCP4OZpoh35mk z#~*i`bo6W;i=!oQmNI&ua9BEe;gak=eJ?3!3}R=Xlez)9YR%At>?&6ySPvwX;#3JO z*}XO-B&D)CLJIpRVJ~N^-U$;ot{!p(b^XDu*I_7a6AZ&IwB{r9a8}88V!qkc(eZX} z?{p5PS1n>`>d~bM8yw+}ebiN^FW;y5ShC1)@P@|s_uldd^#?&Mrotc>CE2<F2_JHl z$CPX=q|66mTRXziaC-J9uM1L1$MABmsuz%lz!AHE{16a;JR}`9qV)nEbiPVhKsib8 zRey)WSI&}vC6*L1Ukc{YHo}9Om2HH3=$_#{q;)sbV|tHj*q`Vh&?;8=1ZSZ(Q&qFu z8$)fHiSuVmJ66yhDK91EwpEmq8Qs{`EKX>QV2I4H!)xkv;w^Z3J;H79m|5^rPc^In z+DYT83|5?9bvRt!&6nW$V0d^4zBixQFzQbgqn}cya?P)E5HoO0gV)?qm*Z8X{Ns&w zk;$?-csQ8@36R)hFJ!dZJMt?6V-;Nr58vyf=-ud}+&D&&ys0&wD0CO~Tv>c3U7kmv z&A+khBCe|V+ysjzR3n52tmDq1l>iz7FfSD2hd!LShAcNn<0rWcne%m_zRZ3YGFMTy z?QWe5nHirVeghI~WdRM(8vpP5{XFD9ZMXPRZ}V57A7m=N1}rZd@3J>s<z?e*EXAAC zT8Ak_dD!@C22x%&zQ+p6)5d?J1?6euHJbP=LA*>8^04vG41_#v{2%ludDl2TIx7zw z|D8dXhm9}Pg7UEOztn_0Z2W&|;wx;*;K{qjuhw7WS>sn|LS8lgZ#5y08vnpBl1Gj0 z1!Z~D_!<5br#!nGV@ErZlQOlKZ-q50Oqen*)Rfjq`kkAw;k$F)I~?4{?OBJR6_|OL za-FRe@aQ=zsfxPO>nbYXSX_B7-agbuz{QH~;9c@RsgQ_qWeB)B4p%#zPX!#h*9Z;_ zpBmaz@#;rl^Y5;JaJBo*%4`nCUa5>-&&tyYD@%OGytDHAj~ApJ(ar5xMOis$9Ox9Z zTAEvdRpQgxWEJ=aq~~wM_e1qNStUN1F05iCFPvg8b_=7#SJ#D6-e(jljABn}3!^+} zG$o8;v?qM>sQo02GGi&>l=z~yu*!tN7go97Qo<|$m0~Zf@(KGXXO#!+C*c))Ut4&^ zcvN`hwF*yo<&%b#Fw1HBlQ2t^0KzN=T$n{iT1hI9mrTME$$yK_sFMGRTsSww^uo6- zUY@`mAS)8}MXk|9IA2&6&XC9rama4$x=@AlMHJ3bP1#~-{trguUsyhk$0`SD+-U7T zaT<>^dSKG{%<^eGRyj!H2MCSF89gv*{E_9;c&u`e#t#r0k288;()jH1X*^arNaF_x zjmH^%Vbb_74&BeVd03{WMwgQu$dUVJuzh&+F~=Tz?7DU9j_a*ASszbWgt0%ckktj) z8rzn8pJEkdk>hg%N9|WLaOi#N6{j`~oC{lHiGedvHgI6on1M5(2F`^vaHN_UIMHLc ztsU{XIyjRV;Nm9scK`jF@H-#y6T?nTY}$I~OSlIeR2Efnz8ZYudEVF+k`8v*!QK|Y zF0tZ{tfB>D?4`vkvWgapv6qVP$SQ_sAwrx2oqOjq{;I1rAg;S(FbMKuIfuHhIFwg8 zARTJPKB$eH579fl__bk(4%11L9lOM5JmRI*_d}m4H?)eINv*M;&2;WMr?U}aCg>Ux zCkeb#oJ}0W5sRAc#}I9S4XF!)*LV|*W|qM=86Pl6i0*=%=r$2F0^qolwXy4h_3%Z( zC(8G9#3Q{9ZOCp&l|P9k!$u!m-Z3%+py&h(ac-+nUykjN{+h*c9`&KnaSo2_CIjMt z6DtfxF3KEwH+gmUqUkh+9$m@~HR(?4+Aag9v@Tna`9!|U0p1!WvU`z<yv0jv^Yr}5 zNMf>z6A1CZ>_MGFcoW0?bjchZi}4Y+JO@(e@FJZ<-CNxI99|UW@PhT-Lxk6{COG=8 zUAcdbzPUtdrjEW3<c_{rrB<;({9o%ab6UL?iN92z)$8#69R2=!d^a~To#^kiRhpi` z*J&Yo2Cuar=o<W2`h$1|qyJA_ga4cUB(A}~w@Ts~jBYY<4gShd6W?I;y^C*fyVVot z;KwW_&cUawo;U|j*5<@Fh)rYhWQuDrIts-#_%HM)aSeXeK#1EU78E!7|Dy%PHTZf> zh-=Us?BW_cSAP-L;2Sj|o<Vabif8aG`inRQ=d4-r41PYOQqQ1<UP{PV%XYWu7*DsO zwzMM&JQAGJ%k~UTBn#&fJ%dus7S4Ll;Qlhjlgnp{Smhv7a3TG3WQs@v2PRX@FP|x5 zm4i(2=gJh31P)B5`0?_YB33!b6o0Nv5lP^{WQsk@XNp+mAXEIgGDReT1CuG9Sw2(5 zDhHY3&y^`62^^SAv9Nrmh*b_U#h)uvL=t#mGKGX#??>$AvsFy75I3^g6S+$^R#}uO zqPvtX*|XI@NSEwc`kgM>7<^2h?Ek1g&?RfGM!ICp3rmme|Ey)iBO9Hm;*q_|+^6D_ zwP;WA$o|MYlH!s5pA?2TWG~T#_+u?tS=_P5>o4Ms?bSr?jJ?I06>scMttIiszD;Y1 zH}*0sDBjo@Br4w6qqLxSW5c1S-7WFP9;3gAH+Hoq#2foggD39T7)vVt*rT<e_+u}( zg5r;juJT#NOq;L#8%)IL)W?{zsL*dRvD08Y&eRo_`W90!*T%lh#G5to9VTwIa&t_* zSbutgi5PYJU8c_0pT5V$|DlN|nfPl>JjH}XxPPAs1NSr&|5l1E>SXTM-5NTX!*}17 z+|rIj{lk57GGE-9N}SA_%Db}{`$pL&-JQLdyR%ZwoXiWg;ivn{=Iz@V>^;=z`Ej^_ zPIg`vXY*L)Ae)0?4zl?H!RC>u4@@@Sx_mZ|RSvTGK{m$-91v_CiTc1~^Wo*Qd8~4f z%@4Bqfx_mIs1HmwzjFC(9;+N=^Mh=Dps;x)>K7)PKl7&zMIT9|L>h`doQI;vDk>$G z9g04kI6IPv(z;M|sb<cOLMVE~=b;cMn}(vt-#;0Cf1X0oBiJtouuBd_Pb)4t6g{oD z<WTgqVofNzUL&zsEP8~bW4)JH^jQ4iFh+<)x5>{Us7Knd^ubv4I21b0Rk7%`BY9Ic zlB}+`HiVe)<;J2%e7+PW60zvD&EJwW|H6w!f98;7#i9@O<d-yEmq<==ijLSNO|A9^ z^SzH)rB=Vfjs<RGdZ_X28i~>7ro~rmQ$Thtt~aN+>{{4HhiqDW#D0=pizlp_>{`U_ z4cWFhN!{YIZE>?zlYNU*^(Wc4i1)e3#zibB5wq*Hpln=>84TID_^_p9=OX&*W#?kb z(2|{tf1^NT=i*MQCR-Q(js7HC7eBXJvUl-KOUd5FO;%0zF5<?KY+f9zKxFU2u6vQK zi%F{`dl&Jl581oeVZX`d#nqOQ&5JmYvU%};Dty_zI7Ab&dGSAJLiR4=)`)Cg*w&Ej zUD!T}>|MmEmdy*>uaM1)-&>z$_adG%knM}#+HdpR%vh%_|A2{qu%CX&)S&+KBPQap zgC8?xLHs{q;)B-ZpE4Ei2>BUPs}#l_ChUO3KQi$PYwPDs{jHY!1rx&t@ENAwpg;YR ziI-~PS4_N06aU174K5#`(k+_ZtzR?oDQoFBOr5Hge#?a2CG;#4ap&%LOvO#E-!pZd z)_RVK059DDdZXQ+$Ln_<Y7};WG*R3FioD$p5^|a642C;eGl^Q%?kH~p4a;3>;fAO- zzRML+xVRhpKvLCIqmhcc()1p){g-;9%a?kw%0a2uIw<uHN<9jk14ZgZ-afFU-Yv_Q zda=qusdrH7wGK+X14-&d-afFU-q`Y`UaWFZ>K&AN2c_NtW#LBNKCq?UUCWnxvC2WI zcTnmblzIo0)Qi0RLY8`e+CAj)L}Dg;$n7op9&)Ur5_8#m$m#1yOWZ@2YUU^{>>)>d z9u3~xbPqZH{`K(t^R$N?!G14*UGg4sT5-vH$Z5qT?;)oZYxa=0cI@>&vj|DYdM|s( zvG{BlBkUpD<X7w=$I=J)kmFG3I9Kf<*N)^(?O0t$a=-VGBS3u;2z$u2&EJwW|H9it z{`+HU_mDdW>;K{E$dem(cjQVwK8Lpk@psr^`T!k;KzJJ{d$#26MAA|W4Nb@Mc4IR~ z$tG2CUn*8nNy`W8>>@_K;3YeA;S+b<NxD-%aaEk8`A#Cst<cYv`ngI!SL^2?`gy2+ z^6Ea;J4`<h=O?x&kKiYFd)M;IMdvnp_{kmFBl+dxa~ntT6Pw#d^ApF>j^XEjcW&cY zer`Osv5ueI1w4*l9><qn`*J+L;B?ms{KQV<iLK%7U&L2Fnb8{YuYRZDhH&*A9|XXI zec`6RfmWMEc{QG1d)HImjKd|Fc3)<XZp97o=`X3K8;Py4cO99`$M$wQ9~8jLnGf_; z<^!KHANZ8{z~?^A2S#1y!={7x$jN;CuR0z7pH9ba{2=qeW0x`^$LWOJh76gJt@t7{ zf~|I$5QZekg#70^AuUV@C+5;~8z=GedqDeSemVWz#wq;d7Wk>HahWGx=GL0<ui2EX z#+3Egl=Zj97N0UXwimWfZOZyNWl~M13{RZ2rY=kGkb6fqXM8Ql<}BU~3G5NN(TB*5 z!gY&ssp8>4^KhV<(9=7Lum1oeM10_0M&1gFahMwwbURw@-=uLQS7rEc2n-+cbh|wv zf}((k5;<eL!qcWW(bv}+{^=JIq;?jO8gwG>Baz3!>mjOr0ad{ozXo7N`g3=tqUgp9 zZC>PAL>t6Ho}$S3qlhB3QzCt&h4S$!f(V}?i0~<dk58d{e2O5#r;t59h3fygQay=U zsQ!!iB65hQcZKf%oznell<aY4SjhfwLG|qVENV3Q<%Dw^>-l;3xs46{<cmqC@yj$y zyog_TBjf4(LVi4hUw(t1&g2(Fj^MRh`P|4)M4Y^spM3o3CH(R)&TYJupKm(1@iKlw zq`sV=4B<GdH7zVh`fJVj*Npp)2QA6VQk?T<Yie=s6RwH`B(V!ka-UQ)su_DUrJ9>F zs)>3Cgfod<UT?!EM&Un6ssY|2EAc5rgHNFud<x0nQ$!^`MN;BZNCuxmGWZmVft(hK zp#&9@;r*aOGCaa9B(nuygk%`fBP4_4^g=N=AVWxoAu~cV&*6&@4QNGZ2IDL=Ljn|{ z`G1vY5chNziRayb(a$dzoZC2?pNJ`X1wZe@53l5x|LokxtN6*K{v3W`q}8kWg$HC` z!!Mr!^Z|Z(KXP8nFCWF1*YOMA|9U;Y@I9k*`Q?;z8*ktzL$uz=F9YW`&g18kC_2b5 zz-_2CFGMUcJFPv1?-@m(1d5i&2T6~;t+~Z1y4R(nttY*tXsM<Y4dtxvdAlh-D!3na zF9Z>fL)kwn9LnyKJH$`x0Ap<IT5W3+=mSr7QIiQbrncMn%KE@G4zw$-Y8Hz`4kcwx za%FO}E-PqLpDE_US-8{~uV^2$>rHsok9UsCLz+W<dACE+ja?Wd``Q%kiigW}C8#jX zV?VDA{Vcw@i4nAC89N8<9~A6E8u;U5&|NSa>Xhj)20nlkEJI-cp$9Y|(@w)9h(v6a zg@~0#wO4V*ayuD^lealrf0}&3l*6h0BN&xdBD<2yxHs#p03$cKI$zWQI!5v0UDaE) zWUFU**Ls}GZ#Ir>G)}|gqldG*7-4DWm=fwh1o%|7yDe*%wpLZUm)Ew7E4DFqRdep- zv%}lDag|`(QC+LCW~gJ$(_NU{uD7vV=U`WyT$^NmVxkW<LkeaTfYq2yVS0R~sV@x; zD66bbug5NOPCp)sCt-J~-c-_-nmr{IF6fQCyF93Hpdic|CjpVW2`g<?k^xS4gs~_p zLxJk_dUbFuU<y_B78E)`i;qG25{$;e?eQ!RwzON<d&{N^RJjIdN(e<w7p%lg_VKFp z&>8?W!&l>ND%*j#2dd^dQa$hPN9_{9?(ptrT>M_}slJ>WCKuD%#c8dd&yOW$uuz}9 zpxV0cR(p#YsI-Cw7UbT%D%DPto7)lA&8G`Zve}`EH%Wykr;pq#Q7T~`%O2nl56t6L zQhAnC41J@~q2Z1^q<kvr7d>M`!<|B?5J|Z?xw##ysCggm?~jsy6Bj|#kUCXE!WA)M z;^TorG4XNRjhK|U8C*<Cg!qa{i3?*^=^{$qpYI-uiI3<1#Kb@B+=kdH&{4(2KjPem znD}^BRP^c|weXKry&Ct_h+YkYUi50*P9u6XqO?V?hHF6dYS@*cSL50o(W{}piiQN8 zSTrO&v?&@A!q`Pa!u95&AweAw4e3<XkebwxI$CqTOO?tk*|1R}V8Nt5DbF_IlX_GK zyG{3kj2FBKGG4r<M+S`Mt&A8h1(Fe?8YM%<Uu4VxO~&l6b<EzTV+Mm*#*Au~4B8|3 zBBS<J9ksvGQNt+9s150;{c9by8_|Re8<ja3Hy9N%Zr=hZ88|c|1IMn&$np9f89JzF zGIZ}jT^YN-(6M7Ayr`ET5>YR|gDTJ;g1coszr0%YOFp_P`sM3Xy<~v3sFyJRMZ3fV zp2-^jL6ysYuev2QMbRy(?TK>v4SW&p5;Q8xCEY_}lB`$llE6i~e2Hq8xU@&KOHiLE zmtRK#(Jn7i<?>2^5ap6L*^6>XBTAG@=(M6+f}%yWWPrY?mWVkQ&GL815Y_T_R1wvZ zA@`zNa-s$))#ZppJUJjoBrIfIPDsGV0U@}%B_|~Qr6%NnL_7o`2P9(Lyd03=cuO@2 z6{f~6DLEk#AMceD5|`*tazf(2)Px+6I9n5PKH_DXkmC_A(uACjh}Sa7@d$92v?RwP zV!LuYf-1lKCdVTp_HsNTo^6oh5%EP_IUaF`VK3(+;?Wg3AOUklK*|9L*rAe;^AUEa zKw{>E8!?D-KEj?ZkmC{YeNs6e@hd}7&PULRB>?4ogpK`lhn%jNvePvSNXOR$+MR{O z9{fUqfXkKy%nVEN5fYhqCZ3zvsL3%T)$zk$$BRYzTcPMAlMe>HK;IsZsR{fhYp7@p zJY4~x{dx{ajzC!Za`M94ZxiUqwPLQ1nZ*K~CVXAJzRSM$P#@Uc8ev0Wf!^I3Wg@(p zvb!~GC~&QL&$QtwkMZnop;_&*yjTMI@30Ko5P*!{N(o<HFLyzERi7-cheFWqZVi|w zx*Iz15S>zo1Rqvkc#Z^*4R^MhZ>HvT1bz&UTBBajU=<C;3vB3kWe-4H=@>lJDH!ma zmY6+fHyXRp0H3YFlQ0<eR{Qf}(-j^vy4tJj0-L%YpkIif-+hZ|9V4Wq*<XIf#%~m9 z)sC>3SLsfe6xJzL&_rzo9tMLlA8b0-j{280rwUkAbKxk+jU5F|rZXth(7GB_$*~Y7 zrpaaPhfOt6(}Zdg$^i$s0qv{4+QZy|Kx{>Gh*V;9hly0O8(J+RGSpZb5c}JbHW+ll zTCAokuo6{IFj8VH!(VR4zfjRc=y;EJyqEJ3az*P7IG7!{w2t4u8Z&apq6QD=sp=m_ zX+8DLE~uKTRu}%TwPc%0$8fJG*hetbvYn+F>!x1ub{t9%joWF)ja`%AkBwb39d7~0 zoC1znw+1IbArAS=UnB2C<Q*G$m=YbbYudyty6;KC2;(+^lS`pKNo8Z#bjSJ?co1x* zycy0tu-$mq{?g{kOV=L~7?xiTZFV)m_h8-itDCFjb5-+@T}`>$@X%dNIi0qWZ$H5` zv9j4Mo6)pfjsk9-&6RJ(`%4>EH9P-?qJ<93Baz=7@&R#0bJeBmS2b5RyZ;8icjNb- zHABbYW9=HC)+z6m@kt|W03g8u=zQy2TjyQAB~Ux@?Y<NbVu^s^*Y4&DAi1hFuwA~a zZ1smPD_VWwOINEmeCcfUgf9&#+0k0Pee2e(^1Zv&<oB%`R<z!}Z9RHrAo)c=@{54v z7XisH0+L@EQpG?r$3POnX7^j0U2o;*Ho)J);n=cueK*Xq4m{e`I&T>BB>p3swdgaa z`w$EQw=_6OvYxa$-n?7ZTo6r_h-<DcNbRuT_%botj^wv3Si|8Ru~mgSftkF{%~>5; zLR#PW{>!~q>y;`4%!IndYdy85upFqZ4N2CT`si8*U~)T#irne|)RL9w#9Gh&yx8nH zNwc?mEp3*L8j%td;(Kp)%mHKu^uuc*I9BeH;OL|e<;4*D_=EW95&^P`BE%#|PtTD@ z9(B}FM<0F6F?iUJVKFs6mPZl+!sictYZ}j{CriracC4XG3Ttfax+p2PwWi#KSY*V^ zMHPPC03xMuIvtdG94Qk`B41X>P$axUXDbl32UC1}m2&#J+}l;fft`<v1LX&s5}5}@ zF~NF=*Vf)q{3@zJ{%s=G0p}(F9TRY7UleB+SRT$-daH_akfV^mRCb6no1!dKTzbK` z$ffkAB-BCc$pUNM>5#QQ*tf3q5nin&bKhi$7`h-CscSOGT26W|ss#t4CoC5H+8fpj zer*O>%el09<y_jla^VeHGoBKpLlYz!Ir+L;MAynh_my<i6EH&ZK%*(4oJ2~8K@Qpl z>R!h;V6{3R$f@ijf??YGA-VPI0M;0(EcOJkH&ubyo1RbXSE?wYz9iDH3*EqS>D{=Y zwi_X?s^7c8`R_$P@Jb^od7z*{icMkqr&t@75c9$k1q-2MNK|ffgn{XihX%vI$Rsj* zkliBrKm+iu+*I3@U^QS6R9f1uF^M8dQL%0?Xe=X3aF{_3yI3zyBkW)#5_T|-dEUV= z12rAo-3r4S@c2UvBGj%5v*b2s8Z}FTRRdB&@9D)lOU;rUpSE>r8Q2xA7cm!g@vYj- zsz&hdG6Yk*=@doq7vFrT()b@0!SM`1I+2a8ID&sP1cTl4zzVG5)!TucgZ2-r^<iPD z7EK?EbnSXPo2<ul3=cI;51P7hL!zQ=X~!B$Qqb^yhm_*ZMu+;KY(Fq$Dnye&`u4U) zESf|`V-hk|xnGLQ3#6LL?^cf3_6)J&RtaZH??s@=ET%X<C5{81;{L>Ev(Oa{g`rgt z_fC3SqlP?03Xxd~^4RQ^YAU`fkl&FZpYp-PgAdF+^W=6}zR;IjKlrgHzjH72N9oDj z=rd3K;77kDI`pI7cGG3|K6cL&9Bd|UUAT7YuI=wf_ba-$2Hh*{WsmJ!_oSLB!OdK; z548KWZqV)u)j&zBpwrc$Q~B$lYXys9vhHtbKW-G7xfCG5TF-^Qt}S8VUk$<5Y`t<A zOKT@TI$@b~ZHI}~>frzRCUF<c6*gpYo?oFYpmfM4fCyD~!>w@B3iK2T_ZAC_g$l^f zEU@hxAg?YI?kN_QB_D;ckYn1sc%gC4<;Y4X3^9f6i}jEO84T6d(U$^z`d{nlx4{bD z(8ZQJbzwzA4yD=Uh{zgS#Ie+83E^VhVujVH@59wwYC-#5ZUOx(RA_n&C9suMG3a}7 z)!be|R%?u`@LA`pnyVzNo{Rvi%k?JZwzaFvVeCK%y_`6H>EV~)i4?NZ-(+_A8>0Yp zs;!<(0e|bkZ!sZ*MX(ja&%#2i{Jk*RkO+~68ymWPN}&jGMnPFJPX+4WR23#k7)sb{ zCHZQl@YTvon=9bXh<s(bG`j9B8hs1zbfPCV+k0UX?J{5~b771e@i1DVY)b>WT9tiy zU)e_jd2)#aQe7@5km_=QK!h%A#v5;KJr<<EDs)ij#!CrxaAH@#we@>1RUjIn6@%4N zDpf%~h2Ob)3spi=$n=y6saR5ca-|8TMp;Qx1!@xVdj3c%3QZDKPErMF8~R1kk%A`G zBJD+)i$y{ha4#fv+3{G)ET*Vyu=9`p4@>9!J4DFQ|JI2=xMdhc(7ghGEAh7qe{j&? z?@+jRd29fGM;x&hfAH48Sp#nk{WZtpZ{51%dhvHW{!TdIMEsp}(#fab?^OIXo9pqn zVZ&)J!r$rmJL8Nq@z>Y4@x}Oi3I1OC(wE`y<u5<0AAe`#?-lraCH`K8zjN^SYW%(C zH3Lx#9h&USUCZ;vZR%Qn9W~L(E>%Ub?S$P6IEWcJ%_RXATp=}4{*l`rg<rX$R!GuT zDI|FvS|LeCWg$81kSXBUG%yja6h)VmH4QNbq})W^){ecoqwll^BCcM$#%cp#v9^Qr z>N~RP1NGGno>$+QRew#a-kUUTwc{F__2p`ZHWvEw>Ie<PUhYc-PY*?5s2sWLGjQib zaE=U}9jI>bz4}dFT}Sp+u{vhGjE%!nbQC=YcdLWb&b=~%^V*7y!T0KScy-0*6>GQy zFtibBbw3E0I@g3~oa{~p(J~z3t_&i<Yy=SQR)}l8o1XR4(7?;F9jPP<3g1iDbL8Le zO=;g>7U3CUO5(d))_`Mrk5|{ezclpybwKUK+V}D0^nEgeNH80_#=Y-{u<x%z1AX3i zu=8H}o+JMWZ%X@qW_{nS0q^@Ky}I`OjL`SbH-OuVwDV)j>HKFikOZ@_Ys@=;G&}z( zwy?o_pUsqKDADKW&v;wf`}Os`H+bIrN4&cBz8QM|IB`2gdq29I-anRsB$$m|quzU& z`bXKqN#1+N?q$#Y6W*5g{>1v;TLa$vr@XrM{)Eu`pAa|hPLSzGmeczmWgx>Q$B6g- zY|j1DYyn%U#`RdL_R{+t{hxbV+WTW8Je%ss_11v*{#RaIdw)#m{qKpJoG(W2hnLg) zXETrlvk^d|$orn`CN8iE9OSa@XXtu{l75c=mdoPGtleL`cX;0Y%e}gG|A^52cXj|b zI?p)y?d5cTX9h9^XSTijGWk2$0^Ddz?|nY`*Lhpo`$P5)&wD@W)wTDlms9<gtoo|u zR3FQ#uUt;`yRzylmQ#H^tKO~EH+D@0{V%djMu)i`bGL)jnFx;MnJ#KR5hN7gI&a#K zSJjvxFb$4x$gu{o31}DiA2*b1wq}2vDBwJ`G1Q~_H}<Gn&9`uCXcfp10p3tNDs~*U zwIdXD4~HFW-*Lb`gZM0e@iE(Rzy?!{X`<p@+*X+877RFw+I3Gp5*(@2&K`CY)MFT; z)p`6xA}mmc-z6eKze`YrerL=B;j)axNa%M7lhE%#Clt_N35H#`Q(}E5d6Z5cMLm=~ zoZ%f>?=VJq==U`Y^3d;x78*Z<F&~=0nqeRMeWiU_6@ovc@vh;z_Qf&4&KzB6|ENOy zM;6-eDYU<~(EbsH_7Ai64==R8vbKG(wb}j&h4zmxwBK83|F}Z?>k923TWJ4iYyX%+ z`yI9Iiz9>WpIT`DltTL_7ur9m(Ef>q_D?9Z9|0a;X#cR<_M6oFLF2?a#0|<x52tz3 zxW(~R(0K5jkMd6Do`UaOyyv|Q{LulB{xR-OqqqigQ+rRs>2fe)(xbShIuhsR=60-7 z;HhXcPIc^pU5-OGSpLvi`YFk<aSwf~S04!`WQYr#PTSe$1q<GOG4|<Rf^!mFAk8AV zHEgFg!)9i8>x}Kq&eq|>Tf-hyU&vn3Iv$Sy)(Oa#jo*IBZXJdos@9pvq~min9iLr@ zM8JMKIDQxrUR|x`FapZDT7AO|CTsN%uU~_Yf#LNC$7clu<Ff)n@mT>k6tDu_+^BFQ zh5_-O6CFsRq9(_g1OQErVS}E4G&#y70BUlCNdVU5Fq3FNlWiuwp-YhRb}mNBo7seZ zdMg(p<&9j3l(%sKQr^V*NO=o`NO=nbNU?<=<)%B}=9QQ(2InCbf#)GW>->&5JMq!+ zJ7Vv|X~^$5Zz<kfen)V<?1b<;j*N(O<98frSmiAs;9mq8e?cfeV*Nr3I81V=eaC?k zkbTI<p%Rf(ERU>-4xXRT-|#Vx^bv*h7}9IKHH4Fk*wWgg_!UDRAmd{M>7xqiVWdSW zY56wNI93<SBLx50Lh@oB!0=x;;TVQDjZ-!vU=-9vJd)vMFXX`tPs;fWPoB?H8lD{F zVGU0X@W_THan=TBUUs);7}X$oYDml?BL=%eeYV8VWJSDQIP6sPu2;K4gGLf0Rq#~8 zO9>C9grF{RAn%z(PB9>5NFNjyNmCG=deA~PchNEX1=HvW3@kevZpcTz`gKq?6Iik7 z>w~}wp(PqN0-EN^zDaO^sR3a`p~Jk3*&bw1)M)fOh&Sd7PMWVM@uGf+%!pE7iqUX8 z#fal(k`WpQJGLpriN#oWla#@)zbR~yUc9~=E~*ei8-m*Du@YeL6qw3_VXjcO5LAk- z9;~GZ%h4~}wnBKWprwW_Ye-YtsYgOZ#Q9rnPd?YNg`u=z3t;V*)~SdR#lE@dDr>i_ z?;Pqu(T+7?jr&ybENADStZ;?>VfHZH9=@!-U^G%#FtAmYEMQw|%E^Z629Z&+1G8;? zR}1rimHMq%FR;zJg#m-xbbPVj5p+@R<FQoOwdvX>lgFJC{O8bCZ$tes=-ep*9NpXV z%2;VU6Y#=J5l)XZOaOu%o0hU7mmC0=8~~6^*6Q`vdn;NO$>NoJ1)^lKa?>j}D=Ifb zkFDQLsf^4tH2=LTp{jJ(1e!t=oYdf-Xe?pZB3dUr0|`Q`u}_}0nbr*g#&?)BAS;mN zhxBR{k1+vb=#K>s3$qyY7ZnJuuxx9`#;ytc4@*_ZBJ#OFT|T3yvL|EoE4*nHJsc8a z^b2-NL=8jI<&f>hu6C+JUF86jB^XPxvFqZ5B}Qt>4W|IFsVR6dNJiuyC8~TE-Z7y= zDbWJ^Lj=5a1Hv&#$lZ)ghmdHl*wXBTq866DHr8n4D}D#E0uX`r3^OP00Ka<6R%IWS z5tTto^%TnVu#7N6xlC`NOfSm_&6mqG3uT%t1Jc&$MPQ%;x>_vCH2@GBBEC(PkJ|6M zeEc+Q-R~xNn&Diwk4TZ{|G+5{#UST3uw2$NMth8-hcn{J81lr_Tq9cU>CA6##~Ml@ ztYPDf71X-Y>^P_Mk~elD>8!EUE8iSggP5u4;xt~slw97x)P)YX7}{R}cv}WI(5=Ws zf*LFVKHmZ3T8+gp-kt%bPojWve+lq_12%JQHI<}%C@#+c2Tw!9xLE?+=YX4wV?3Mz z4)#(WKAuiwD5uNFCSj#sMgyU{7X+08T7qO_Vh~`9JW;Dd9>x@R0w7OVDCA){ureU8 zmtR6&AEJtsKiaB5h9i(ea}`>HXo)}S0HNDG4S~o(;Cng1zcnFju~RKLk?8c5$FX1a z3dwbn-Q13V-qmwj1G}+dnDmAbh8q_{T(Iu94yP^oO0y+ty?1L<^iYu+$rKflZqnI* zSXbccYL(de{Q3QcLA|r1!9OmrFW9(%bD}h3$n;-zgSUOY+U?<F;$MT}L(}G<*xj1< zrJhokbD}H1E|r?%`obKPFH*|JuGye(dz;(5%{ziv^IdM+I*r=7f%ED+vg*F8omICC zuf8*@Uc0LuaaZl7>e`U29h^FseOKFX&pNXRyz4V~uZXVmT6o^Oo4mS??b-F!ZEzww z)_}vi)!}LP`XfBAE<)R<-mBl?)fJty*0eg-cgm*y%Rp&l?<sIkpq&h&WjMrL8AO7C z6Tc(wV6C8CbQ;vQm-r5j^(;<>L0+Wq@Asy(?=N0X-|zA2+V_p2@7%OMQ~N%-oW4(H z5DA9oJ!9VwW#74Jf4cYGyQ=f#8M=38qvON;32#dK{-W6T7<iI^^V*;E+S>KgLf1df zZAG~EWZoxY-&2TL?8s*`fCNHcQ|$RM?78gNpSnobV@uj|8w$sL#+%ZfpAvg+r86q> z>W_GJ?fS`~>#|{gqIP{ec6|vTAIm@z3>|B+^D^zSVSl`L-ext!b`hF?!rRi`_ty8` z8t~pf<<+(K$A#X@hCL75k>SUd)B7J~Aj7%6G4K5=IQ6n&kK1DRDoYmW{m;EE?fp>^ zUZk8_s{fVO*3KUpIxqY6Ji^A#kH*fY5HqTOHUmf?h}7_|Kk2*mIQ(1N_t;b|*>AZl zDgxT|!|K5q(fY(+?$x#LIIBWIFPruBpRw;FvF`>UqfH07GXqI5^aw|?mx<re0hxkh zBi4DN$_(@(6MvnzrM>t4?hKw~II5#wU3>5Q-BvoHV;NrkmaMw(ch4l=N~^7%i7JXi z8*^yd7wYnQDjegd5TWDcUdP}Zy!{C1)OPTxb8zqfpa~B)_=ov*O;|%@EkIUW(2SAw zAlW12k72TFdwA=zZljG<gsfgU2Kp%&-i%ur8u5_TagQBkXL)x_qL?D9teB4Hp`@`D zoyKq#G#&K`Ff>;LCJkzauoxrhB<=HZMLR;*dFhEXix!ID7>ZVehC6JuJqLGH1}+?u zomd944((cprd>ZGA_s^?<PcjKGgO@9*xl&xw6o#tD^GJq^MMm(RU>;?YmVDZ4(naP zUU1O_c-6Rh^;^BVq7n|<&bcLHq9a4bz&o@%9hwf*p>d!9v4~8hfhc$kzJq&@gHz<f zUIWZv9j3w=KGl*3imi|<IF3qnN;lrX`@8{luhN%W@EQ$cr%=R0ihKrYw}ZMN%maN{ zW#>*Mq~Vkm-k(8A99w;@!s$41%J<7&GZ&Frab;G}4#U_Aqmedxk2k7AO{Z4{!cLSv zjQ4tF?R&wo1=;H2rhs{iTQ?Y>zO8RHUv{(ENxv+z*_D~t6#yubj@<mTNM9asbhIx) z#*@7^k{}@FJGV&RfSKmN)4E<76zJwzF~4j0ELWZ{RaSgP(MD*1@R>p-v<24{Gxmf! z^y&&>j+KftRVu!a6d#x3n1WES(33X8wY(<+oxhISoU2}zv+O5)utxi$PYMz58vhj` zOlrn#U@9yx`3fmcr{_AVJZ!6M{R3Im?5m6<t61h`8_-dc&giN9g1csOJ3^>)uaVxG zIEg6Ee0+ne9TdlrLSpNdt++jg30$LkDT3T7`NDQi^t#O~!RvN2Z%WQwjEG9XU(f;S z$Kbm9F#s~Sr;4ZD_$de8<O}c&3?md(GdA1W5%QmOY;La{n?sf|G^6!H!x0(8$y$nz z>M_D*Z%4Dp3`)gub7X5f!vB*F(8!4(9^16syK-4o0t)9FIH3H4!ih_A<RlhfZowa3 zZaF+2zT!1GyeH>4Ida8gSN!9HSgLJSIYn<tCV~dHJ4LB<Cp&zb+p&u7^8_1xE-kpV zrr>PY*3*RnAxfBK$-{MlO_^83DOp~)wF7gFU?t0w3(q+JZO;prc_Z%<7Ms(Z!vOB$ zm?f8^ko`BsEV-DFSr^4Dx#NXdvYR2W;&sLspvh(+x1h%bGW6wh*n6#{#|bdi0bh#S zKL$uunh~>r5D~&U7l?>-*jG60+k$vM9<Ym-!bmg-mJS(7gH9<D(2UAc+%VRbE=*c_ zN7fS04(v-yF$P6jx+rPs%B&^c{<beIU7`z$Hl%w;Q6}un8VYwRHD#@(uqg~)dFKX! zarE6b^%(Qv+oOhdKFI+yHEJ`b5<6}DYHwVrBDi+Krrz?X;^JfkuXWhB2C4|pELC=_ zig;_OBBj6Uyd|Z-aK+Q|TS}=SrN8U5mS_b(4^)wo-wjzq!4R(OQh_Qs>E~aX98K=v ztqZuUu$!mep_PzqBwiEO8gTb7lFeWZ*`(Or?AR&Ug!`%Xg=|uiyv1QF*#xV)vggYp zo0LFr%~}d?7%ji0lx$K0z0F%v0u8qK@>@!TNlKr$XASXqO$~h}WHYE5D=4FIvR!U& zB>hOX)6aO7*cqsypA^l%b2OEH=n&Yq#VDoCcROsQpAgNs{IO0Kqm)wLleH8)2g`3M zrJs~icV#Vw>wcEsQbIo|p^ke)N~m-&ERB8!lzu=NRrDj-PCsK+^wVEMKPj4bJDN&A zMeoJ(maUXF-|w)Me(0pA8G>cWpOjKRkhK(!4=sOIQ~F6Mbs}piI4hRlQbIo|p?)xH zC<LF(q)PZbUa%0#S~JRtpz7!P21=5sIM7jv+Pa&r4Q=S8A=@cdZ0DsEFjF0uA~W89 zA+a#wZl6gWIA^RLtE`YJD`1{?i7ibVoo;*6SHpMcv8yc~KTkl{l29U+LwX!(2_s?} zD=vI9l^%cbXMBN=Xe`|#gY|`gL;lhB!XJZ4<r<9g9T;MRiFcn4e$cU6Tosock0k~d z^^Njn$C<$utLPN63irb4Bnnote2?~%ST~YYwr(V=Y~4tfTQ`_g7~ZP7TnwcJDK*N* z#C2S>DZ+O*Pqw!sqRZA+0w+m8D*KiSqG1Ppd(d(BRaptbAvTmsr5#yAi|8sv3fD1% zIqQ7ExuLOWRzl!n_5UO6Em7omdfPgF)LxdhS|{B~$M2mETE}k@eMNAN{-?xp3<Fj> zek0zHE^J{7qEZ4D#*h81)~81(czit@t{UJ$UC)vMP8Wjf9623esw_(z;DkWaxx2wZ z>uR>II!ZFY=}g|}4e3lSqM{@NY?>#=uq4YN;Hh~^wvTkXYNSo`Oh!6oqjx!$I?}}r z6byN<8tb%|O{Un!j@i;R9)nvQwhlFwlA0xLQCbdT8)-Qm>f5{_rR7C5lw_z)Ny8vk z4Yg$ZP+!u_g@);9$w;S2-swo{NEfziNZiX9>2wzFa@ac3`>M_);wfd!cV`U+b!H+} zXWrul_fMVS>Bgv@P@(n-$h8^l{M2YOINP*0ZDyjN&G0*@U9=f~$Mn$n5p71(R53-H zVOq7Bs$1<vo7ve_wK=h}!N0}cFuN<!L1c4gKE(Dzl*-BCA%6h|AuRp^%>cgp12EJ4 zX&Dc|@PVJ`jO4yF`zUKoVKb&R_wMuon79+HLc+L0WyB@PQo5}jyZDu$FOZ<3gHLuA z#AO^WQO5d>&<1YF*@DL%#weRG(T3{Kd|f#D9s4*P<5knKr!XCyfWmypphIBGxXI-B zgm4&_Ga)hu)@6j;ST7O#z(kPEt*L9%2|=@pfX+ymf+$R*sni4%rE}ox+Tyl$?DkA? ziu$8J7W;TqKI3KKGDR{GhOcbU+VUaWuYsC|_B`KHboUE>iuODfAN>(0w1;p<|L*dq zD0chHf4nLB9J#1?p|2d-+`CYlsG6emTyKGkgj0-*gr%H|Nc+p-B4He($~{Fc68=&y zYJW4GA~aj(qR2KX*wi;xWSiK}FBRtmVtHe*2BRh<ywex*g?E&-pzej!4Xm(|iJYlS zDhpHDAW6i6vD*YCqFzv6b*y*47N~ox=5iSe)YcE$3u!X3qv3_JDSx3%zrtj;x5M>? zvL!B1*$ZXMUZ7$Zzfhb;ovs(y0ySAR9m`svd_sinmN6kqTcGCt5DQf7_UDUJ^uk=A zKK6p2qLEDcJr6oW?DpsWcvG~m3)EEA6fJ9kaxRhuY8hO#v;}G`o1%SLpkhC#i*s^d zEl>|v&E+x{s2$}6YAh^JbG|_7S1wTcb$JWau2f-P_5u~V`03&_zAzW4>8j~i)&k`d zA`8?qCS+*~RQtMgLY@cd7rXtb;uO6w7pO11;HPLJlYY;`6vb{o{KuQ3eO;hts-|dJ z3zTz_EKtkfqNOcRQ`r>l%K{bq`A~6AUYHBieT!d&g$+u?BJ(JcJf8?BS4}+jBgx!y zdtzwTuJdS({S)q%EBR;eMxs^GOE<%Diu8@dEnZGtvRV%IsNRJj8<XK7Ixb?Jt!*6_ z^3u<h;W%5f6BkEq>%i-)d=^QLD!}}_peerl^YLMZHT@c9e)hmX-&Wiyupi)WYE6AC zJfrDmGhS4*-aL5NX${=g5PbQ%oE6<n5(%g>6lOE_rLY6u2}8L%?6qF7o*s6ZzQhg9 z4h9s7a1m28p@AuPS4xA6CmIc%8x9wAf@fX008IujzrGxY^q_hP7U)_aN&((%g_}zc zw($xWbE0$&cJB2b2x+|#l9Ez*>w!-_@EP9_WL((U&MsG&wf^XJF>-3nZq+~#eye@+ z@$#njI?S;?_t=;0bmJK?gHqb*9!Sb<t0~t<7f85nYJgw)x+F;ow>!5Q>pO=I#dmJ! z!m)^-l`2^>#047#k<4r&IeF?+jFF^xSIf|x?2^d~d&F?rAXq@I)0gKi`Lwt^cNp4J zW?*}WV8(7b!XWr)=us#pPtJy7`q(6kfmwiexKxd=WF8W_!Dkd#hp&7dI7AL%slxSe z;T7D98$`_I)5MjBq{ONs*!zF;ZVVHFg2eeClwQkb_p>F}vUTz_GH;Dq;<ao<yhE>L zYj=P^izhEZfVjA&_FbjNZO9AzKA1R+5=NX;%C9n|!QE+-iAmAPOm7t1xpGk!0X|0p zAELy_4+MVTx+IQujewmq1eF0qz)qQf1<NKxyty4~XqQ+6te=$IT2t<Pc0CaL1^h}< zBC*SR^=Qt90}$maL|M}YWp5OIxwokl9*8VZI3KP*94*y8T>lQQu1iM{wrEyx-qm_N zH^K0V+^?^}Talp0u-g!?H=Gk<)?X+S<1h5B7O!#^ff%|qG*uxDMOaGzg-F7nbtOZ5 zmE)^Z0rKxct^O>IKFZ$cR2NZ=^~2Yi5e0`!QFpD!LEdHqgj5jny0*wVgApYKXRg|2 z$QM`bK=>}6TB=o1IB}SCX$iO2#LYBuLECK07^$bWYK+2)@q8&7Pge0kLD6{hsIYcL zak{x3tL#P5h~;#a_O56=)W{T#hxp9<G8K)78cK_lCN`{?qDn<0V)?>QG$J|&h@vr{ z&{wW#eBji*D;g1sl2Qn%%N334a(zLLQMmkJ6^+>ZK}F+_rD*)v=u0UhM53$~F}-h! z#=nN1QM`?DFPhGtS_Jy2=@iwQRHeBzZz=4XLapi$B`I0?wzQvFtToh;=BT`95-@Fi zxf<O<ZOi+r(S7UCf=<~rxObz6B`_OjK*v)Pn$f*{;SPUtz><e7X#gF8Yda`uYLvfc ztuLzl@dTFLBHQ}((=(m448$nl)x@~Fhm(OjQK4=_E0fz-xg;HBKY-d+bFy1|?)Z$Y zH&ohG(}`>6<?Yz=LNG<b@g<loR4Y1%4gu6~mCkU7SSGmZ73v$Yz>D&j--_opaM!DK zM;GL9ipJHqPhmY2{q33uOn+l2M%2={Yh2XQ3LD2Ycb!&TIeWFEp{%G+*f8$7XG3Q~ z%GXvE@04MHb`{23X_zC4@eju>vzOqnS3tS?7D8Er%7*r3Bu~dk$}`l$C^G0l(Y^@t zTE2mBG{aCX)F6(17G-@Qv|`gcVT1Nda=?Balw>>;dx0e5ao9ddHc2-mlmSfc)Q$~_ zwspHBp_3Z|Rm0?3-Aw@1n)tA|tP8JK3!$z@k6~o=>=efZ-oWNqhPZ|B9btqd4rU|J zPlDSv1*_Of+Ry!rbqgio;b`ht)bH{7?8e-d^+`AG%(@YRK%GWwuzwM-mrIU0L>CjG zO~vs)zvrEG-GZWTcuThe-WPip;FM_+;KkLQ?emfY-dR8`bhbYrMBMr)dnLe$I4b1| zV}bd^WFl87%hhmIITR#gQ8p7HnU!1>%MmPuYt}%#+S!R^h}Y8^@)zz6mAB&y!Znkv zc#$V_F17C<rhXT(h}RLjxs%6l6IR1z#8yRR2dl6kCL7n8C&h97a9+G5JI2h_sIr5H zPGsolAOc_>N@+ARS%O=F1#m7)iYI3&OUUAM4B?(wAUCuDWGbrxO}e&-ud&i{!Athl zjW*sPd`Xj>o~|)0H|sm$IO?MFXlO06>7SB(MY^IBQFhbB0Vc77)n?9BK4NO-1Rq$R zE<7Y&wOhru4L0wFZr<lFZqf_!0k5dKP{D|i7!|oV;yS{LP|?helcuJPtq&MP^Z;zg zj|;=d!ihUXhuop!IJ42IL8d#Qj~l$VN=_oVyFpChC@#ozQ<KSfMfIR0qcFapQW)Rj za2FBAmp~ZS3FA}HrA!!y)96t?nbe|;?%|MJ;sT0A?RUs8lg1FiCXFHBOh6GpwK%># z>&OztF&C34j&T5i*cIjRMP+$h>=|UDVIF!GI?RYU>jvbsNMzN0gs_V}#-d|IA&0HU z09@>`$mB~z_Y#>r$-p<_smwIxVi@<!cw%Uz;@Ua#h4P5-1%XA@Bc#X%gk&<g3Q~~C z3x_}^+x0YEgH&ku{tqf|vjMjzA4&+1JIk{v^z_S<&U;aIx0<XhD!aPb&ViA;{)f6S zv#RLgN_?olt!{bgP4!$%b%pA=y&ZuoLj-*mGC@6ur-oT?edPx))$z}kwK~nSDkzxv z;;{qO!y$P2%*ooYU!X#wdx)}@DsY7eCAHZ)5a&@vX#A~OgpPP$RfGmL+eIj80dg|N zs8f%HQaD%^uFO&~DwwGJBu^M-VOAvV^7CqMza&2|407}QAU6lYZkM)!#R#n{UKMKD zbq-VKFB}RF^Jm)SMT-bDZVw#-?efZ^8YZk3*c*~*HM?_>%P{<Ef}p_AkY>ivs1xK~ zBGzwoY*nlWk0K>dGgA_7sw!Pl65^2S6hs2hC9KBac$Wgsm4x7R2l)u`2ZQ5O3=ll; z1+ARJDslI;KDyML<iZdHE2eIfj2NKw+Z0?-9$<*PhN|2UgfhUJ)^kgeyS5}S2tn6I zAy$R5YPHd7PAf~kjBTUj6KfG|qK(Qx{vi2&Q5hyKk6Se4uY;bO8hd>>5n*xwW+1+8 zF_;j_=60;0gc8Ok-P74xQ!d@p*<Mp_5L48b5#DfB=}35Ct7jnSJlyK(=Yj3G6F^dw z-RDd<y+Xm}WS5?miKeYAS;78gd(pg*ZHl1cg@E#Wo5FU(Wry1W%4@eN25PROdwoa8 z+qsj%H4dv-hin%H7uD@ww2*Hg*wXEe)dFXzu@*ElvvLVbC4e5yrO|i%=n2BgSW8MH z2`NztwZIB@{piYqecsl>k3SqHkNzEtR0xNH%^st?2;W^?Z)wMtra}Y*RM{dd*1$Rt zC4ssDE&wrrjfKPUqlzYIb!4yTNZRVqFFS)Hd^q0lU8JUrIpIQFh%C@G4^mf>kXiiI zl6}Rbw|cp^`m?ptDh04v4m69zvN;U04A&m>7jAP0F^2><w&J4OE-FvM1?8zKNFwyi z<d}|$bw#DM;a=*Q<G#~z|9GF^UWzCYnH(fH7t*+f3){$!T##^j=*(tb5Z8c%D#WYR zrmGznU3Nn_2|6Y#$FA0Ssy2<h#~gOq;1$&-K|?993XLFwKXcd;II3P91+Q%oUK1S@ z5BJG+$-&in^wGG@?pR!Aw~p6=1t~sMaht+*3HR|rG`mfq#C<1&hI)g0b*dxs4L8jh zm2e#Ra?if;<<@q@LHTlB85a5Sk^*0<7B_~e4EIsC#&CFH*HBa6IyJf=RT^2iK!^wI zCQZLnR-3Z4^4heeA(yo!<;?+bO;f*<pETj5jr%2SSRV|e9d0X|jEXX&x9CGY#zs{5 zbPaN#^1BCu;VWGdD?l~ALVb=%ql1x?mEq!V=wOtSj^vdEB!fH*rUJT80U`W{p7MK% z|9}XGm9{1qNvKBDZ!QkGBD*;7kX><rRURllj=@!qfhy4MX(xb-g9g26eYd<_czDtC zAR%Phu417`RrqYL@rIPW!|e?~RJ+O^@#=|Pt%dt4owjs+VDTwyed@H5-cnZ;y>B$^ z6G$ctm}-p$#B60O9;RBe8g%OlQ{egx>7t_<ZsR&s8Ga-|EbJ6+f51qJ+b;UZ+Z{bu z6|I9}H^vGWQ{65a^1TE#Qqw&c5!O9?weArdx+fSAoj!8X3>O#4Qzn{4Mx@?3Pe2gm zdJH;LVfel)8?7{C=5&?dS5Lo8n<XBxS;1lUm+^oh(ICcL<(H1eScb;l7n1!#BP=A> zuil4+1k1<C4e?@x*jGB0=}kTYm+|!U^c=a^e%+|ax1tL}AGa$l8(bXJi*ZR@A-HPL zC!pJP7n}QlQjz`x^~+u&LXkUgCAVx4ivK@*?*eG&Rh9|wv-i0+y#y!_>FqnGv^{Bo zo<ds=P};LMMWT+F7Dj^C@Oz6h&iwHo=Qlb@yPKROr}y-pwiFJf&>+N#T5A|99uOhi zBuLdLsK*)n&4`XsQS*;T=Xsv@U2A>&yPQj!l#AVgp6}cH`__8byWaczuC*vDYr?Xi zKgppAnHYYm7Kt}?<G7X)lr;w*q(Vy(vS`XAB1}oApMudCO+N!B$-`Sx_dNlHwG_s% z1x*|xprDv^ParmkLw4#Q7(f+*WmoFPrQs3<3kxlyU|H8I3L)K!4lv>%E8Hi>uR#n} zM;Kr_LQGWbHXivi=kB)WD+<-B#lpR%u@=QbIUYvaEq1$$H#xCDFoIZEIv5X@z*t-? zJS{LxEPQ?tVqv)E%vZB3Ap~9kA;1rhrPKb%zCTyA8%yb=w->mdMoe_sx_^C4?isd4 z4y{J_j8tDdU2$7_E~XOrT=6)~?G?{;^009h!7eH$HjV}VS~gQF#q4sG?cT;5XGYf? z9pQ2%&ZPItRine<GQ-*QGKQiRWctGxK3vl}1B>bznx4Uzr`c&<w|t#!$e)1?mJRzg zt<7viH%V;lOe6iUS(|b_;aa-f7;9M_v<yjv#88dTc=9yM@^wH?*1~bn2v>C)c2YF` zMTE$(#~hA{g%?S={Cs?ecvv-?VGG?bc`i~YkR<nDV9{22wQJwMy|vzdYWOIZO!-xw z6}y#ti1`T)sa)HDbGc^WM(iE>&5M|-rd`*rItE>9%(j&Of+4@3T3Lw&I(GI!=`__d zKFTnhf)xd(sGoz+bDs-$&-^_)eE6)w2V0k)apqZPpMy`9Wuv2G=f3#7^Dl^8-QH7i zcFt^=M%U}B$=Q3-**S+mfKfJv8!$ksKb9B|zsO=d*y?0&LV|#7!fR098NAaw{PI9c ziH&|x*f>Rr|K!x*-o%06*3p|VUP>&mts4P%&3OSE@;zAmFH<O+wyAu7Z|9%LN%(<( z`NLC<ZHSFb`>(rk)I{43t>!~VAoO#$v%R+mdT&X5xrcc$M(%blf6KPfRqsIO^8*ET z4u^Yp>yFrc8vOP&_`8k&&s)*i{l7k~AXzCGx-&iP^7A}0wG9$e(;lZAt#3Fm2hqQ- zZ}zsjW{Hm2Z0Bq69^}&=XkfO_<z!<ncgw*9(PaI$1cbHr22vh3$`0}iE`b`_Hsj}5 zla|=ZYzqr6cq+Wz?oy*w)Pim70-4`u2ooUa5Hs7`A)xm!+=<;)#Qr^{#>Sk4G4s8R z0iXHCB&YO6noDeh7eMnfcyt6JKm+0Qwg#f?Z7l$wTEkv<h1N2MExj!E((EtR+V0fa z9fr1ZytUA?8@h3x0JhLpHPZV_t);^g6V@HNgi3EOz@Ns7UG2hH{hXV#;%Q4I_|g~N zUchc@?_H(#&W!CPa2&q!>+eagzsrzyMtnUy9nn=D&HGBP^ArT~L?R;ZJ0Z)*5(byX z^8VDC&m6;iY%M$+L0Lj;A4sh^ji!Si!$@L#X{-)iz+HlFUuw^1jv-4zmtHR5Inq_R zwO>xHIdm_Gh%b#ce35{8JiYGorlTkUOu|eRFrAM)K2$i9eSd1|ej|a?BP69+3|}Nj zo=C4dBrJI%TEd_slG7KC<N#}G?L(<GCxLWcWq3NamvmAsNqr=>=acrFIJkh-*j}2) zS|a#ZsXg1Nf459i*$%TUGf|swp*{LZDiD<5LKU=jVxQ&g&G^y^4cdRm-x%U!WRiM- zSSyicK)Df9QLcX~0pv<T4Wgma@DlzsJjBR~jeWY*Sg><SjfF4L)O{wse3#KtI!CTF zsPskc)O{|s=Tj$tL0O|{+rjJLwM;v|mSyMHFzhOE>YHRF;GayL-DAL8h6>QF4pC+p zHn<+cJRxXIC9c13Is@?zP5eHy4-auxmB!)&`wYiMW5KuLn2Wgog9L%whIDOc)s|z6 z7*+5Lz~rU4{vV~Lwht*~g@v1a<`(>8Ii22|Qj&F~fscxX=oHl?)E^1T%MEXaDR2n8 zGU}a~I%95YH@@e_9NuH1TDBir$mJ*P$#SxqK&9uf@neAGq4Ru*M0Ys@AD_!*^z|es zGjFP(gfMSfsHj=qFXo*uD0GwqVJ3m_TShXLPY3BmlF95^Cf<ZyD=|23*X14BlqnA+ z1BOk0cb8UfnDrUn1ZvvF8&8De=%=y17X$3#s*R7H26u39!59nap!y%2y$eYlqz`7y z;pJ)Zgau+f3QO<K4yLLnpFLsHoP2oNP#_=TcwMO=BfjC&$2TxFh3BTb)z7WNRA_+( z>sxRM=4~>n%W8h)0@bBvOU%qi8Z3Bl<}{`aI49E@$`cvxO#ObODKfOfhCnj#*0d0W zT|M8rD#nOzOmF+>EdM4@=^t2Z2O&wqoS`Al!x^B0nGv7m!F)^V)nT?8<s8iH%7fnQ zY84iY0{|{f_mDU7T3(uQdurLogH&B5o8RG2mf76YX_1ZZEVb;<Y4j0OzNVfy(f0R- zzl^alo6EpioXaq;WN!;@L3~gq<>k!XwSd~j^v1}lU;u_*1PoEvqc`V#G)AJC;#{sp zQHI6F<4SEK%W(_d5!DkGyyN90gLje1Y0L$NC-fm4N9aR14t-iUu7zQMj1!&STRRM^ zMKswI3o)1t(T)b8M1x?%G=V&dnwP>U-cUHjo3e0nT~{TX3^6OYy)sdRaoe&N+)Pm% zm&%#$uN_MHTpA#a+#%qBH0P99IU}-gQH+?W4KVV)q;DV+N#B6;@&Ff*zHHafd*YA? zBc~$Q_>ROh9__R`L&FNAorrNV-_g18V=r^nw~Q&yryHb#TsT(Eay5YOE&*7~dYtV5 z{{0t174S0(;GPnI#eB#!2B2AQJGt_4d1c_x-J@>TS*%w3TS$Mi-p$wLKxWlgd><&N zY$^+EjU8(!Qx&*tj8YXibVl|3@94(Hoj@toC8@!xB+zo!D;NBhi_??!+LO$p%H6vu zVm1{_hZ_?RuC%PWgT=vR6?b#h)0HajR)4ar;+PIDCxUJ(wd~JHY(YAj2E&_O6f4Lu zr5?b2EI+0$z&-0B@H@IFYO`InFy%|qgEpfT;QQM2l+Lqog9VNai;?1QfBQ^)$MkGP z?N0;`;6@$cpvK>zx+-da?oT-JM7O1YU1qy-MLsOArzpUYFw09_egzdA6(}Si@l%7y zq&6Q&{ku<Qh2x&Fnlf#^rYE!RT|sdGh|cUoXK6B0n-8Tno#^vRXiN=~_J*x-Uedlp zRXkcA&Xt2J-Nh>LxUObBhKPO(DQ|f-R#cBf6Fg-Y9oEe{0*+s#<m?IP+)y5~CY8s8 zw0AD6?93NDC~}@pZVl(<=fg_OBQYSBkc=DgFop^Wu58H!;Xj@FG~AiyRQVso<fRRK zLW<dsfI>D4Qqq=&Gm(YW;Y?uh>|M)RF;ZP4IrkMLCj;*7Zd%Q_tGt>qzT%>YuaKcZ z1ewj*EU1{?0Lx8AC0JRsWVABd$Ax#`$3YeCol_%rZ|TNvoB|mj&x_s6)$VV7HK^Tv zX@2*1_VXrJY%rJR592F4pxk20GP$^5CbxxCIgrWiXC}9wn@h2p=1dsQgUsYYKx=qs znAfDyYw@#VVq7j7@M5dPTrdXX%!T5fAS5YijGSbYM;QPa;x0hq&ASt3ZXK69$8feN zH@I`e`?uu)E31fmQzJf$h+<c&h~55VSw)zaE7h7e<L@su9Ud$xiHIA=2P@pbQn9Sm z@k8xV)DjQYf@Mecn)F?}S2?@(%Yl#=6n!2x8@-(wl5cM7wUT%8P;H0whZXmv5DYqy z*D~obwJsdZL7f07@{lD3Gr92_@CSyeY9_FJc<<-{)}u;vuEx_|@`WY0jMcsv-@u5G z4l_OiFAcTN$JaDWDs)@KYK3l#zg6qD_oTUW-Dbv5(rtOA7NsXN0ldYQwkf1JAND6i z83r{RxPV$9FoP?)8e&L<|7Zfn6`dI$Q|6hjajz7}xDd!VnYv$chWH^6=#RYv2=)$d zh`Mj?9Yx*u{?v_29wQup=@ZPk+DM%Q_J%H+@Jr~T$)f6eDIkIUy7K0Hjp+Jd`lO;R zd^H}WsB2Zplm*o4#c10~$e<fH^_GyS9L^v_NKpE8qpR(*K85BC`V@MYH3b9(?<q=6 zsTu{6q-w*tlp;0g(@K#F^#1y3{xHzjnGeT;q)GjygzdY+UYI1~-WLy+U;LHQiz$9A z4<zj8*P1FT(#5`kqV;l4#Sy)jlgBAiwNkSJ#u|<KSV5ywI*097@^W%(H$LgnVHepY zi8`I0bYY#7s8YF{AJBHRPR$HAU)NGHcAfCPBem%zVkS3TTqUd3s4`6=?|WD^^y1bs z7@|RW2!X;!?KbthGxd9$t?jX3q)C)u)ibt(cw`4I8Jc)A<sJij9$8$gme)dC_jNwf z*nUMrkC_DT3~0YCmRGvm)c17MSekOM5r3v9$S?akFOA<Za>(zRoy+2PsF&4ut<KBi zcUY9G@A^BJ#P1YSqfUXC$b7L7_oF-o&teq%ewBc@ZksF!j*4))`;tc0Krsf2XY?AJ zn%<3D?n(%BVqp910X{9f!QPpQzKd&Eu)1bvX_IwN>dQCvw(!-2M4>GKZD9mhBg-kb zIi#2&Jwm#AB~!P%Upx`MFmy;Pc~ub}m#jI2c%2P}BB`(Q8#^yd<LM0hwZ@`1^+h7C z`x3klTEfK=WU}3XAxLPAKIaJR?c}V++MP>mz^2gISo8{V&b+ncW?W56@jXgI6Qc?G z2NLw25tGx@2}Tj#A#REs_4d+hNf16c1P^5KT~Z+K&TQyoo&{qtjKEk1g#nmaX=gKw z-B7-4(wjbdNS2)22d)dTQkb`s;F(;B=#*}UWuf&7#@MJ+I2u($rAMcove19-QQC^= z2vePqyThL>o3Ttq1FHo#+gWPao-6LkcVo?SQv|>??j$a?Uc@%&o1kZ4my=5m`cD-N z;G1g)lxM~uP$@k%jnPM&il#3?UC8piwYDb<bbuXu#tJtG6Ogqe8CmKoBPF<Q2`3gq z59))|?H+YZwBD7F>scTR4num;)q(tEGNX3u*WKxLx8#bU+n2i!`KR+CwtNs0DDO5( zA{mSz>k79KLQd}(H@n1h)~<UYFHZP!G_TZ~W1;Hh<B}eKqF|sbH9a2Rb5^TQkK2=F zRx75*V~dNV$K!L}GXvb@A!cF%-d#E_H$5Jk{=~R^>1Wg9i>1fs3gkmuG)R0-N;y3q z-|*=(>$RL7uYPWw#1o8)6P6y2{T@?#JihItduGz(vDf3C9*-^ic<R&R_GFpOJ?&l4 zsCRaYE&FpxdoU+{BGTh^fPRyu$LogiO_(098_Kik@m{m_9f@h&g!zU`k4LVqv9X@9 z>@!S)iUNZ@B@F)SOOJoFpt6r^dOSAn^KTJim}9Wbp0V_J1j3cp!s+pfrz>+Gw|4Ex zvWlxqj~81$5$W+dn7&cd;}Iucr}TL2|2U?{W1CL&&!)%oS%Pn!^!R~-<Xl2}Jig+h z=me$5V>eEL&!)#!Qr@|{8!_{A(&MoapT+w0xII}`5g|uYaD(no@OjhW!QcnQ8mgW& z3*6tBto7*qg6Z)(uufQdyspD<>GXIclW&Cdcm(FerpIG9E_p28YzALQ{ydu=$BN68 zD5|bFDrUJW)8i4_%T13LUrbq{uWNez(*=!MpB|4-E}9;XPnIQW7ASHG-r>?WxZKf= zZ9c>4@!0RP>G5Mrk4FSLF;F})czhz#<FT(#S@z%<)8hxl6VE_;Ji_};nI4bOFE2e_ zd@TvW6Q3TpnLW<w@z|(S_yXzisz<BS<Mw3PjIB$L7hA4Nk5@nU45Y{F26X(><8?iq z`1E*0?y;rE<Lhq8J)0iybh}R$43wp&$K!j>mG$Xyd$P=G#q@Y=agp?Re9n75j_L8( z^ljhx>G7|_y0b$CS~;$P_1L&`=hr2$9)WP$S~##?@pMgK-JUG-KwV(H*z$=8tk=Qx zjT%^wIQcpS)?@$2F|Z!nbfSMYu>P$XSpQ-{axNjT9$#@$bb<owu^XqrX9MdYupTk< zbOP(K5ue5Sz`8wIRuLgyUJ9%in+^{i-@tkuSSKv7Uf1EbbYMNs<u^iLJpyxL1M9IH zmpsn~)?;Dx30QX)vAx{Ddhx{+Px`tB*5?ZvwLY*OpIkJs9-nk!os+1?99WNSKEr|a z*zdD}^<xXHM+7=CoXEg>?Capu3ao!gJn;+!)+4;%l!5gK{qh3q#n+M`Jn?~bo7v+W zSdWc5g)b0TuX?mPux?M5&DgrYda>oYz<Tv_&p=?kZa~LBuwK{Gi4Uwt<Q`jKJ-+Ui z+_y$x{i)%8t|sl<(%j6oQq8HQEUmXaYqYME|Ix81T3s5Kmtyl8ZeOG07;qMYj$^<| zd!%h^R@fgdSUS(;3M4x)6<6i8oYUR-hBG!#XTx(=qFnGJcP#KUcV@6Ptj#_om2JTy zmL{cjrZ@ZBWq!|xZ#(Dg9BXnBINR$yh0kf*K8URpTYlYX?!Yl4-T(2yCU^0_u-W+a zQS5=|KaMs#-7nZLmo>4+MK+ubJ&c!|*#P%#=2B0tPY-Qjcsf>4>(jH=l})U)&W2va z_0`;h1i<@t8Qm|VQJ^K;9BL*evZ2Sht420B**v{tzhBl|iEVKbobh4oUvW`u)dQnL zL=4*RS$=zOLhAoMT?_3@tW9umW9Z_-=IQKvocGz_U3cF}rHz`Ri&~Axe-I<!4lXNJ zw43;Y9h=)cLD8hZ0j{6)?kY}d4f8x~>rQRTTZJiqXM)ZN1Z}rK9a_qY#jIR6PE5s> zsqe0xW?OM?)leV2x?!IyFh72M<f?4wZ5R+ofDM?dkhLd)^EE@3ML{{#tGE67b*umI z6KA8GCE({>hU;S;{0CBRK6ps01qZ*ccJRz#g@wMk!H=cEbLgbE)(Y)?(9{c>LsC!e zNNnNj7fyx%8d#<PYEBjZK_tDgVVh{VNGeGsZKst#9|n7WaQhFO<Q5Kz!8RcJ@PHT| z0Z=2X{;D9X&cLH#xg;*Jh_yhB)7|)r&j&p@U+h|10l#B`r<WqFtgo`P;)udby0mJT zw8|iwAY8H?oopxN)Iewcv-=@?f}HBif68ttoCdLpR)#I*KR7yqZM2$OAf#~Q+?&pb zq71@o<l)g_@K`oT>BXbMc{FNXdQqZjBjg~xhD~~5L!XJh_D37|`S~k4^Pfkzz|%yO zNK@JH<B*GxMigK6`=utn0`&3ONl7o~(fQweShoVKFGF`d!tDNpa~Ec|=5tEI3>~^K zo0KpcDhsnu6XerZNSZNaNI5*Ny_2cRd`}GTwQ3nShlvfwAP2dd)M*kTMIhgsfOH{Z zs~t_IK5+Gae%n`Xy70c=y$WLl0K_PCC|YB(3!LcV=OJ7puY%~aXL``^i=`ecQRY3c z-HWiB&~P?9`(v2dIS%^d6>aVYNK?@$df4Q$R&tLO<?=759-I}RH5L?2kNX>Cf;Q{4 zESHCqTpp%yB1TVI(LNV{s9=@=<$o(di88PSq5M!Sl%~^4P>v-i2_xrec!lKX5VpAz zIlPJ6$@~^^?59)PUMiT%s}EoFAKtL}rWI4OM#t3@WmFfQozwigW~qK*37Gj<2{VhS zmQU7VrcSl=Vn)IMx`o?Lm~M$^s2{v3msuV<P`zms6b8<5g34%WV|kE8jj%sb5cXWG z*<Ka5q0I`Serq?r;PlNGV1b2<g<VRHce?L6V4D{WVr)8gA#NE6dJzre_s7Aj*pR2N zLC*Hn;s3P23O$qds)~Irngv*QrdJ(S%m{7aOx9x9y)X|-k70bHzhCA|maA}}oyHXn z7?D-b*bLp<%*~J~b<E5VXNGfwW@@J8D}`xckL{IlT2>W?y0sf$@Sz%rt1A74=>?w7 zY2d8NTiD_6mXTt_o7u$L#z*ay<!NfHX!os{t;Ea8LW}+bx2qmGN9&OTsSg{tfSu`X zd}9gN*|EUWIqXosh=h7*<|co6G4#MdvGaoJF!T@oIm#(|t)QV75>50@!QW(YKPPa2 zc6SX;eYJo#+WiZ%dVImLX1nx~)ww<AUTy9;?Bct~eA~Olx09gYuA}6`@x+HcNZje~ zmXT;)#W-m!n0h8Js^o!-CD+%IP$hkRQwhw)<o#{6z~$wA=bRZ0&bA2)LJ_01OB{Do zpwT-@fS|brRq{QxfROjKw;8+BE@h^kVF6FqqRUmv(_+l-!}L25;`DP!a#E{?G2<Ic zV$Axdm%y0za+#)j<rZxJg&FgGPYXlS%f?WAV@VjQe|iZRvX>Xd5Q9JZG`1Nv)yc3g z4nl@4Wm|p7v-2U%;M0arlxW!14F?kQOkz8ryk5M`6i~~0yLJ{;=0vCQ7TBBIjMn!z zoZx23VoB_Wx=kFZ4W8ZBA1`p|_HOLKrve+ccEjg-^4i2!Yj0d?x5(l*Ry4r3_%wGj zb8eTTY50Zv8KlT6>Kiy+g{aPL-e!5y^4`N}vpt4!(^O|<2qFQ!7KV3c2|6wfG3Xj4 zC;sjQo?evFcGm)J&cvkI5IM=^gqD@fi2$NY`D)C+y#y^(*@D7#wid+vZYJCf7bwD3 zwA^i*JG*KBL+vn(@Bn_AxWQPY67s^9v9q84xbMOigLdypfP2nAWvuSxPKit8u8VrP zOHP5C43WXGb>d<ycFRI6c4>3MLM(_Ai`BRjv{;S5@Pz5C4_8@h8_w$^eV>L45MkO; zl(Y#qzD%3jyRqk9)`P>&#;vtQn6KPKqMcsmLtxtZ?#kxrikg=h?{)`iVa9_t0q<Q9 zc+W!F<?-EJ8s9>^ckcpE=XsA3qimr*SPOWL`4DqT78VAv&2(ZV6`P1ykpJFUf;h*2 z1e0b%Z@BuAS}^krDEz{yGs2^+ybN(Oh02U48M7|(<f<DM7)^mE_mz3_7t&x#Jh^RP z5uSvmJEM{N(11_2`w%Vc8tZ*mf%ixu?eV1E3gUcQH@@I3!xt`XP9{_l>zRFL3>0;Z zB$sqp(X8KD*(~IobeNg-t48ZmO}F^lWu_tRK?}kya%Sdjb{#~CfyUca+Ew{9%qX_! zWDE(T*%BlPgbSY7N+H9T>*-k&$ER>JV{;kiv}a`}o3W`MuT~^B3KQIwD*VpU@X>rw zB-Mm`U+tI~$Ov9cap2r>6{L*e^lQuYfQArcX5e`xMhA7kC)&hH-wLzgZ*TSWU0<K> z1PP8%9oRnMfT4!q?ye%Z6d4*fAwPtUwV5)+fPfs*`K$x@+ID*9JW2;@sGOy7n}ew2 zrn|ALFItGlSR8wf5<%Fk_0py*#!5F&q*Ca@v~KKTN9y7WDT<`s|GkUVzAa}}EGH{2 zd!H*yg_+btNh*A{*<zfouObJH$v6d*;h!cZrG7$o7bb+1?J*%-RfRp`8!iG!ad@th zvv+jspU!I)@)xlSE=kG7oBZW6W9OaXe15Gz2C*3)ZaOJrx*0&~x5#IOUtttJ-9lCk z2;EYJ(&m)TU45R=3XJ-P8GK@_hT7j=KrSV5KyF`~R1V|~JU-U{x<;dW)%QEh11s9k z!A~4y8UHtSW1~yJ|IG_Ly(s=~_m`KB|A8L-b9{(FlWUVZ+&|fbkgba0*(}`15Y@t4 zb%VSSh7PiZLcRw5vjz0id+`DZa9?*WcP0Z-9kxY>Y)H3>9Jh93dtS0>_7pS|$QNo4 z&fsXP-H+jNo}s?@pRCi`fzxyB9_LEqW+3awnULfclKg-=Giio**chZ4j-|Fki`OWj zK~&l?#b6VtS3Wbvw{=91_m7~li9;DaIY!!%Apa8+RHnZ$PyjKe9@kL#x6lo!kKs3C zvGT6W=s4hMp6V~&w<{CxW`sFh>DeelZ%m+-jz8W{yQex6L3Ygl14%qrBoPn1)p57= zr140BG?*0Z_3P<;Q5pJq2IkibH7wcSxL7%YA&pBdIOcI;l5P{(Om|~nt|h7~*>Fm7 zfXNw~&*cx)vCYzTo(}t6mG4*Ac;Lklq!>xW?@n*E%)?{`G@@|Diq6+y5y3;@ph*NH zD|E~g>3D&W7F6y{X#{_4WM+I&+$;X(^qh~B&jp=q48YCemp9T|Ye#A^;xJMu8IF=? zL&=73SNb0Xi~V3(H{X#)QPRziFU^Yv)t=hGCyKI#P8iq|sKdjcOft6*rn4Q(`%T9; z9LszI`%=52-b<_2ZWSj|;QeG^g^{Y}qo{8hYjytXC;$1wO>JOLnZSbt_aOb2*;jm6 z5L*Z-G5LC@Oc$gZ{MNVY+UU2Q)L94R?B6H^50J_UJDlAdhJV;d%lyiTxaWTF0Zg>a zNkEXhdpk!dr%Wd9?R2@0P__nsnc<DxaH6upd~bFB?k~IlJSYrsxRAk0K;|%DDM)K1 zTBFAw12-oOeAzHymi~#xfJ9svj%PK)g!=r33FZ6-G;?wTPU5u2i3ZT3z4Aognuhr$ z8>ZzQ5WVAkLRDcyDW6=>@7@k;rjEl*oAL1!`F7|S4_>D}0!NRNqZ3aL<6}p!<3vIp zob()=y>6!xf*orNmk$JDcV5>TmK1d^vwD2NS=~#e3hw)KxB9uM&Y?#<sZK+~&tF;t z50G5{Lb%0>NxCMW%$R6MID0jgnKyniHcrLH^F!^E@G9zo2C^Ycb_?hDz*ZUFiE0=f zC)mn{c(~wD2HCSB8_EV{=8WMT9&QAO6h{lPk|V=6JisVq1{n^u6N@nE5Kugs5WzGY z)g@|UQ59c%9v-tpjL_Df^i#lCmL8|d>m7fC(AXQSl(6HB!W&RZ%qQ}VKkZkPfQQR5 z_Sl5`h%vWd%|VFrp$5m5wHS^Z4o{zprzuP6$>Zom`~c&R*LpVs%us|rtSeL97tKl@ z&!&ia@j#XbOLK@WAjetJX_hE%WTAmqk{y7POhr>=JAl1OZgCV+32KHmD9+rbMT)Xi z?njRjn<0chs5qffTO2Wm>tE5LBxTrC;}YjM1py#K5d(tZzqfN33>(k?Ig)Ow^>8-q zuR-(xvARj4dQU<|e#u6Z@0Bk-T6!skzaNIr>`@M~vlzNXX2$4hcy(WaSCyU&_E!RR zYd1dlUOOVld?Hth4TU+J4t$hleWWsno0kvcV^uJQ!jFQfGha4!a70^Zz)hVdDs~0T zy~_t?e`qV8&#gjOe6SK>3nS^zS;f@nlH8`!rxTG8eh?$28&5Z<W@4Wxz)5|ZKTLaL zLAq}3#y4CF52zv$ykHtK5yOu3=+{m?w=vpx3gI9F>A*tcN8WbBp;xYI<2hy^8<}Fx z9hoWApov}M`r*<Zk&5TlB{*gh96j1LXjpeF*AbM-;O4H)t6hI$J%Hy!#ev?OI=JC9 z4b-T9mWCIeU+eH|r)1oRV{3HSBJR!bs61O(<o9RI0>AnspN1L6N0YqBG|yE{bKs3~ z{AFu5zEGTHbI1~Qcce!Pvz&L`Fv`qn+2ih=ne^gcjtgrPDv-zpin}pA=dk#5sv&Fm zoD{*jHNBOald6b}Q2g2YdceR}uzG}W_%Zaq2ar}@AS(0G0>Y`ka;|rAkXyU)1s|j- zJSDhUF@zjDRX)oB%^L|eD5O8JHc`Ot_SE2C8Ft;<9U{ASx_^n28W^GqBB^s@dcoH* z<+DYBEf@`0r01JbL*DZs4zT^3gY>o<Uix$jh9SQc(+!ob3>e#8*?X|5Ce;ooU5UfH zj65`4{KDHRb!tZLUq5}(c%U$ai;KqiMv-ZX5@Sa<KAK}1NS25UOz9>U8$QDeN=cfw z{y3#%n4+bN$OzAg5|Ock96Q>P?Z-nz&M}}mT;tPN+zj>&<JmEHZ?@cULE7BV{dAai zpF|_O;b6{zS|9EF4iJn4x=O_GAIsjXd`Rd1+Rb%aJOMYf8S#Fk_1|;`*?6?o`S^j~ zyAWTs9zDZ?K!{LxehT&_L#lwOpB@7gWj_o-S^12TlUF=bJ2ud{<IyL+wBowX#XGZs z&Q&|Nz=Fk!jLv~CG_Tvzx&8ldUWc2HzeoVs%7@0AaL6>?r{OiUd2|p<y!ZwI=)h)I z)`{`3{+?dOcW6NetpB0T+#fyBq>DrAc^EFi%FVcgU$b;r2E2E;N&}Wh6-xYibOa!c zbWY!~9es}E1~{Stj^M44`~XL6fYprxtz186sqDe++eZiBI}ITi4F*x%kJ`CCEW@+i zfIB1&@DM3z@tP3O(&<#X{D7ePwXl)CFWRgzu?_};%Ez=!_d*nxmG5*nzTqTjF)dF% zsUE~$^cYXey*oNBUV*g=G9bEy?1O>@6lt|2yr=uXsWiuM1zyz{^pn48lpkJo_mGF! zDm{rO=^?^3q=yI-$$DWp3g59jj3gWr&kXF#iNvq{$w|bcJ_^`_6kV34?eP&Rl3AHo zbeR!Z_L=TTIPCG6f?$M9Ex&YE>80c|DPyxF@>qJX^T~R`sG^Il-S|Q+UDzy`YZ&I1 zsi|Wm3kFJ-Miz`4E|)AAJXtbXn7MKcq;PXW+tNwl*3wIf6dvn~URP_X8UH~t^h+ej zOj*gyy9;<;O8lL+4a`E)K5d(VtrWU$1`WeHQvPfuFXFEh$)IufpNGlCoZ^+dxMnZo zO?gS?k8*8A?+*}hcMxjJGc5x3Sb(t%{utO*ur+HT-#glrkZpy4nnB;J0O=oTqb<f$ zK<kPiYGH9RkW(XP=L_t_%u?RuruMQlAd6LOc@0G-0{+CQ8KQ~}SuqQyBN|e)!9qNp zUTQH$v#lF@-`|omV-Y7z91pLh>CUb~xd-}RnLt@7l=64yAokBne}`%nLytY6gqRaS zF|d*$zoP_-8S({C6w$X)XY7c5W)YBRoKG~yjSMCb4n@M21l+fcQo3*3HJocQac-_B z0g=yjMas!k?LRC%<*C>d+%8kKn*WneVR>>54ScCU16+q67T{)m6OFa7u1Mc~2t#&S zS!<p9R0@iACU<lucXGIVu({dqTb&R5#pAHysM1;;(`a;HkTbPkTAE};P)}ROiKZ@9 z0F_gZS#IgupqzohEu30EJoq>N8O9*2u+|n>I@>~yNU=np*y;s&2BQE@ZbIiIlakS? z+u4l>`M~pYWC^;VDTk4YJ9!O|V!)Ex@reh+Y3z8oGvb|45Ct77ZSCK~(df+I<VCm& z#rR3)i7sanEbkc+ESB8@#Y9*_NG9SZcD4kJ1h^8frp|9lo!>m9&SRkgB&8z59V?Vb z@7$8!*=g^HE211AmWp!Vw)9RZ)Bl+yft#*1AlwEU`1CCldp%sBX~kYGPXaSgLL!lX zSh+w2*b*Z&@!(1go)$1fka4yojTc^fL!5^oSSr|92J^pgI6->bfG`|eI*EAcf<yYN z08c(Ty1XI9CVGbCQGK2(D~oheX$Tmc*KhYPrnmXUw&~7QGvH}fDO<WN5}URt@TsjE z{!S{dlWIIpq65e<!DUrc@DvuRQ9V+?2-Qb!)#4=QE4vobg_6hB2x64EFI{&ap{1|M z(9CPds91%C`&gfk{|`w#!Ot9|)y{kl$e8>$0<`$$NpQD@H{-{lY$Q8r^X9P?L?14J zJN$Rs^ymnXHvDL|g5&}hZ3eF3ApKUho3&VZKyOy;vbQ7FwZuqO{0(wv?$>igN}XMQ zTq@?jtsC)EDnq#C_)f%Ez7Zz^Sl^NjZ5dqwY-1`;+LqxeJ83&^PV{WdR?S94QfW30 zEfk0eVlVuSEF$Kx1aiG@KU$a>>Go7rJ4JdQ4=h53j(hI6p`fW3I5F<3T0LLLw6=5A zHbg<@8qmtT6w{1b@)WO6CRcTAAZyK7vM{q`;iNN@ndn@4?h3TJ5EiUTh$gQM#-PP< z@s&l!V_C(d3t<{}_;nnNS`g?n-G~d{q*M~YO$rMHRsuoC8+<)T_8tLy8^dSV*n>G@ zrkS&mN4dpN8aGBgjqX>#M(HPG)7~Rv4`L%83J$#N@M`frgDj9-mDR=tK0jDRS#e+` z%KDQNM_FHerYLKY7#l-?gxjicZi@uf=^GuEg#LOERYb$`h-w&wL%LE74>Sv{A(fIf zXGmiB$!=S=gm##U0->ehY#>ih1KvuD8bqz&zoM_1Jbk%VUJ8B9SJ77-V~M`*Tg)4U zv|3X2fA`(AMAK4UsdC$~jB~!8|5-yh#pntc7g|{=d(&u3qKWPrO_A{|Mb@V1e$WfV z_)&4oCf4CABFM1=R_3>sX;7JAFyNv$Fx`!yeP!H@VA?(~<k3#i8=y<*77>LICJk1j z0A0g*Yb6Drt2V2yk1a6%k@CdMB+yC|^EFP)qQ%k(yU|JHXOYz0bYXtTYS^$Qt_Rvc zJg(&g#o9mSsC&N6P2281%$tR>!o2kn^^<Y>h($~qGCDqGre@ZMJ0LahRPf1|)TR<J z$0j)@+q-cHOPa?uY!N#p^}FS}894-45%>}?!ltte*~2i0@eoUVKx!5;=g&RUzqVlC zDb4N9>ReTQVbQ>=V9Z<7kV^Ca6^082Yb<RrW!A6{reB|s;X#hpKFsvg#0zE$w4kKo ze4>R-KQ~J2zzhVWbeO?`?Q6+c){V)HT;1A09V+8tqdhxg0v<<WV$&>8!d&Ccd(CVB z5g?_4NCLLLd-RN~e;V(>I_C}E8S<+EuiYi~H<^~$;2khKgju41=wng?g$pDfcmtFU zYeHwFDnw!~kn=<4<||VmV>TI+i4+??cTrB<-i>H+=ZZbXNP%PkdJ9$Co7o_`-Rwk# zOCu^=1SiXSCrdz%08i|5f=;5tvo0saisX(p&taAv9D2ZcZ~`QTAauJ0Iu<~!V{Qz8 z*CM>)K+<H+`bG1QsRHj>gt0O#S3oA>3~ON>Vm5ni0>!t0`%$Ft2s^AmZ+Q^!AjhFJ z9#j^u_{;bVX0Y#)#szH52IwWYHm<#$U8y*?Jzv2u79{&J-RrO}pgF~Vpml^o{j;Ed zeM>-C-oGA~gab2*oB`^@&u!6SU0i`C0k+7L1HFE`V9zv97>)%<uJ=i*l1VpqW1nwN zF$Rk&pey9-(M-Ey@t|S}iUfy3rq+}VH~bgF*0Kj~a6kq(zFvT-cNIo2rcT8!nYJF- zL@7pR8XRo7NzPuTlq(tA<D=ybaboM9gh6$~^&K(QDg^w7NDqET_7nZBdbEQ}R2WwK zzd%nR3w=|!*b9pfm|*MlsUcnp-Yc6KW+`GgIuYZB@W|6xKN_&|HPij%>7~MRTYB3^ zjgW6&M>{txG-@OwYDR5D{tM3ok&o1f_AvinzrUcoA11r?k@P@&S_p@w{=?kE78^#M zaw<xlQRw{q7rb!Qx4r0$GtWBvoNRRL+!vpB{srT!SFgVC!i!$=(wAL4ammYH{_<B` zdfDZ#oP5=*UvtH4ue@q%s@-|r>#n}~^{@Z-H((ZObkp5o!kme}gA<n1O&bbCv$Y%F z@JZqu&`t15oe(#GLJ_E;ZNt46*U<Fg14>7926rHaZRsf!ejAXB;-0hp*#HCOToL{T zyaIi-h1R+~igyNG+p(cx))zo7uG>2{q`U`>sBf2*JFK;~S2IQwGr-V;S8bc=ARbSb zKz|9+MpZkViC15T4q2q3y$(77;7c0)@rgD!Rvmg2kF3J;Q+Q+$`n7*_r2YHcA@539 zt$LO_OI|5JTH2TJ3Xt%qUA{(m*ywk!Hbj>zQ-%MEuTh2(u;IAK`mbzWjZr!_L-oaJ z+obuKeSr2DiuKl$02(-pOS192k_Nxa0lYE{8cdJZp{urxAzFu`4g~7pT|sc85@U-J z2x9}VP#CsrW+%C38lch|5(c<~%jIm11;?-osfB4h4Cb`2Iq>E{(EljNk#{E|b1(5S z;cgu@=Vi^Sjd0d*Hl4B<k`0JJ5XA;|kOO-~7#OV>M05H<f%X>2F5qGmYPZLTVs%Gr z8pDJFrp~fqYJ9)VRxb&yf<|EIT7TS8cmh8R=(&q=cQNjUy&UajxPKY$TYmo%+`kl* zLh|7Dix<Vgtn?>-hdo_{S7Z!{?&(8q!_Tk~_0noOc6K?Ajyruyu3dun#=YzC<oW5z z^Y~;-PhN^A&&vUEE`PGj@a6dFTr?sKL+5xm2oDZ)2K2Hv9UaX*La<C^%YLCC7`pZh zl*U*i*#IR(OAIS4p2K%(F~ZO@34uDLaJe#w2T~+7oLi8le9S{P0t&>$w2@hvzDn5% zZXDl-XC^8<o!>~*w(CN9tY-tPunNlO;<q>#XN9p|+RR|U7~kp7&^3?@AK^1+hG#OG za?+eG{AeEArKep@lDWej3?O&JY-nLP99kGMGh)HY<Iuu07+NVEHkXEWj}48R1?S)a zGv$SB)|9mPBnR@MFc6jlAdk5NIZgCT3e0V*Gz}!%CZTqc3-o|nAyrl<`(CRRFb;!b z_W(P5L9WBG7W4^BY+LfN&E!LMi#-WN4@*Xi<P!-2o+{&_m|j{cx&ogny~AZPMgMa4 z1EmDQXVQ!AU#`@Px#&p<-bMgFo8EB%6-15%OV_Cg;OEjiH(Jh6l{X8%^ZE3S=O!5$ z9>Rv`RAZn4IDEjkRRjJJr-M$Xg0DVDPx4C`tP)t<au>E8>*zf4hTY{6;HIKw=9$q) zG}od_dWJXfCu{(<Cb5C0i6pkw=LK>PGYk_PlGaqS@DH{U(_Q+|SYi|gQ&VHx>@L_g zOa-SrJv=uI+X^JsiR@{pBf*t?m$l$wA0E7zf@4mTLykG;X9_e$+IEq{S;K8`IO)sa zcD?^fZq7YShR!`qp3Xg7C9!Vq#-ZJ9Y)wZ6E0@GtwlFAAO-*J$NRS>#Q}pMy)I%x7 zyzit1LM6o+E8b%UQLx}2xR>T@X#+X#Z-v?$p4)Kp$uxVhIl5cE^>h68!W>fy<(HOh zD%h{vy73LSUrlapqIpU-X!fB*A#18$l|>fXCLG}rTAhg;P@~l9^vz7`Z<BvJ{WGu_ z@ORk%uH@fQasVF9c=L1EtQ^({`cTjhJB&A678V!4+*X3p_5<HYTUpix3w9;SSkKKq zSpVw^i9Ck|<su3E80_+mqN`0T7`dV`M0(MnP2*~O(74<bPdipi=8=dLoY;urLklx1 zl?@0t+`EVC0?`bAghigUkgGZmUvmclswFy&&|2$>Dj5u!e#Ebxx!=tvV{=P$N-FH3 zgbLp)f|WTjFaysIkp)w&>&;@wP)iJ>3jZGvI4sfX?a*{4rVLX77%@mhx!f8xRTJg& z!=>(RF9Gl{!`W5ckHJ(TRLHv!5imU{9e@wy*J%Z>gC&hcn@C}w0oe;TMajAgfg4NK z<qhSa^eI7x%7*fz3A&h0$suIY0GXos1Zl*~xu%Q2tn^EOw<@=C0w@f06mYXPGdJj^ zfKUQ2%(z=FYkJpHNa)#miZx!qUJD0?I&4U3c>Kqv#wWw9wj`B)F%9=Ai!TVn98<60 z4RRQ0D{0*Sni}~RYs3PNN-)HxDi=x_%E(ZdcV7U%@EaC^`0y|!=D;yUARsR<Xy5~t zXW;>6AFLi+1>q(sO-y2TYc%0(K}zyu(e|MffnHyblGvanyx~%kZ$N`3X|h50B3&-# z4aQrcq3xxHUf>P!bwvt1)U;mGNiKs+CyygYa*U#j=bN+%55fj_>w3L}Q?#y8m*Wlx z#Zo^-mWlII(TK}TzA_B9XpIiaq30<HfknY{h~>J-Ivwx0`L|?|b!Qs1i!7cF6h)Rr zi%nKdqF%;iRa0<KbS@^VAXcko)xD*D?SKZCRXzQV4VrAoq=6`;)<6^~FAA~5u(OFJ zhGSI5;HrQ~g0SqdHS<D>6+Z<L`alB9g%m|-l-jKK#N8T6OOjZWPPl|<&Pyk$K57w3 zN<PeKbQwO?D~BL_pcO?`Q!a;cePF;AJy=hb3e)cO(0k{iWtVV)%J3spX`3VtS>rT@ zFJn~2%Js+_Nd%Q-&U+FHVqjDx!ByL0B*WRE+DQE$pN2ikhAQ_cYfhcme-J@G2np0+ z=99UuwArtntcBeeVt{fLPOib{MQ8AH=9y=mb@tik@RMbuqhn*|p6g*t#w;1MoVWyG z%U4_qRMZHrM}ipg@Z{xqG;hKekGk2~jc>T%;u|o`8I!~;W0Dz@ybPiQ?zuz@Is8%+ zEo)IkpUEk}!X7yIIA^BS*}5t2gTPplzHN4XWq31wYcRh5i3VDDxqkZ0&t9_^UNUJ( z!4VG=tp%B`#ICA?JJ|RD!*_^Z_Gg0(cyen%MvVj|$a$=vRskwB<Z!(V5i8Lqm&71^ z1e3A9{TcT75;{_TebI`}Wur~e?}Y@>>gOpmFAOa+Ye2ZT?ZavWGa(}VfDX=WqjBUZ zZR%!~bX0NB$iQ?t5Ltfn`X#;@Cc*$A8=p_;dcbHj9$0c~g%_9nUZGN;!jpeEk&%1y zii9by)NZuLzq$h0u_#khTQ}KVk^ma2@pLpLA4!eguv&2@#M02p`Ks*3oMCn-XEH+y z%VV*ogNd@uB*zvvQ$>su?z#w)@kIsDjJge}7vamZ7oFYfk9l^H7^<U-Tu=xOl=B=j zRZt~?iCzQn&amOZ>kS?k{iB^!+D%_5_DVd4@Dtsm_N#GC7fl=H!{o+8A>x4e!L6H+ zb%g>!Il&C{0KF}wz;O={wD=KiwAvpdzrgTlcD^=5TxwfdpFjtKuUxug6j?QLH5uh2 z_L9XY6s|ly4~8OQ7y{ZyOt-UQM&1`Zu%T^ZEn3llqTl^-I{dITrjfID5;<?PHhzIV zky(H<=}_*<8`Zbrd?eAAidqp)t3!FhG6DV+0hUWvV2mD)T3`l4|5uwtXf$$QbQYi) zSWzZ>u!K-MMoS{nYRHK~UmQk3Y^3@*f~#dQ4sM@y+g)m}j;*Wxy&h;68l?xl2I=i1 zuZp4w&G#X~Qw(}3H)26A7qxH}avRWC)C;K@M7@;4V$^GZR2ZUOUu3fu_3{=J_VVix z_xc#@`|Bwanp3T*X6_%9FOQ><?gjZlKNKwN8@hXfj&zO3h!~zDdr{wUH9tmR--UHT zT(0Mp)AW%n>7HAzN>bnt=9yRgU@^_y59aCo1><*Bo{o=00|6{G>iz>^D6a15ur9na zTYSR@Z!Ye7@GuK5`j{QR%EZxnt%!je48*`KAU=4x67%MltLV<hI6EU_=75^D9o%v< zvn<y2ObZocJobeOL--w&@$^u&R)wNM{Eh&h#0I~Y6y$1Ffe<ZUZ2nVa`En|?SkG#3 z9PDKo!1Q%FaJB%~TbC##xk^IDBZvIf##ObGn@#jbIMHEYMxJDsHqrY6mhuyQAUULE zyDq-bGtsoHG=3^UPNrstm*w?r@LVKS8A}N+3nw!TH>&FCZtSjS8hz?CjT1G~h~1hn zcM7lI5}lSDn4W2zV*ha%e08$dkAd?7r6({aea@y-oyFJUG_I9ruJK80uu+@CDjUw` z@XLcW%$gTK=^8UT3Q6Q2)hf^-z|kLEG6#=LwF>pj{a9hn=@jRK5V?p#20~Zv1a4J9 z-fio~cAOGeqK{ZY;koTK&n-1rz+`~e_veEJFT~eeDbI;zJP(AFf(6_wP0n(!3-402 zSE8y;3eNr=2~H0d^aL1toc3I>fN-$px3?!k#c*>9Y-TRWNm!tc6id6O)GwQ>4pJ;N zSin*Wtq@{wh#M1}Wd;lGPhfelz|@(Cc$Xb4U~)-{?&$^#NMq~8g^WwlKN7l@?7-jG zmlK#|DzH<l0e(U=Ra$+2;1;KHTTMr;?($9w-sBxGCGYZaAx)(bgee*qdO4k~vbfLJ zN%F+`0`@ro*6a|*0PHN1T1EaufZpXhY1+>+>*ILGsR|havTAgYUO!6*K)bTVyl5Si ztmPuC?Qo-?7LDx-%@QFrF{v6BhW0#iQ#=y!rfvkrQE3#Fr9cxd*;0k5rWA1FDHH0^ zCvjTXLr8^iCZkunjK&BxvuGR4AXS?s8BOPoeP+g$l`9S6+<A@;@bz%;t~4-D1E=i+ z9^v+zRd!f@QqwhP@qA71!ovMjgnBTj8slxQFz0#su1U`c_%YzMM!;|H#)cLY@H=as zTdII(+@(UmGp|)E;JLNsas~Wd3C`sRc*60t1pIxaexJU8XYA~03it;TSjR=cj{>9< zC*aHW$0G@TCr=iNQ#W|fY;R}DI^j>3$EC)v;MLVj<W+=a>)G|A1$Je0BbZ}V?8?1k zInI)u6&rGV@cikrJ+`x3{oHccRf!m)no7`;H)InUfE1P`dyMRAB{)mZH{X@ubat&z zqU7wcAU2NK9=os9FQw4av&YD;im)8JJ@#M%%h{Du<k*upWLHU$FpYB3ks|MPdKORK z7|)5)l08-?&qoscPM#hi01cte(i1-y0IDcNVBMjRvDqHSm$XS-k;C}2P~0*Y{GrpJ zhL=-%4(2|K%neJcPca`jSK5%ooGX;X0Q)ui_dtQ6$@}f2$)}#_E3od?ZhXaY!&kU2 ztnlD;&4V+2M16>}{Di%$uN0A0dWB_DUMJEmw!5>`E^P)b91@4iMAWtW^}3d!ySjzG zO$y+7U9Yra3|+H?Sp(5CGQM{4`IT5d8opnJ%H}?Ii>#<r&J$R!7$68yAOve-6*D3M z+*le0ne7QX?AMd{KI~&6Bd@qy%8hBvpS1`Pr_@5AF+_9_=3$Hx<@RM4YGi*pnh1X> zzQD32SvIuzH})cwFKp=LHPud-@w&k+)r}rt0Kz@Oa7p7Qz!FRzS@PD=uPJi$%N%#~ zE1)HmQ&0z#`xNPWP0?{cfAVN=O_=?hVHO8~h6w^TRkp-zpF|>2Ss?S<Qv=Qqrt-d( z$?=Xf=7WYbvl5wyI8NlqsED=>I3eU{;=DAM_oQ+8T$<Onl(}4-Zlm~-XmR?NXmR@g zx`>wh(wKcNiJapqT4?4-Q6As9q`q~@U*O3H)0li7&D^GBf>_aXa=pY}th4kO_HN%1 z+n1k01(uW8765%l)$^y9ub$&8i>c@82SJMqsb|%0Ev%l4?fz>}&vDGps^{aZo+D<D zRXxWB{uQa`IOcCL^&H3buSh+|F@FoG=QyV0ubw{zAJ~f`V(1GglRlaXH9qjcf|8}N z5VvQg!JtSzY$C+ey-L&kJ^VD`E}Z9ti{bXI-PrhTW+@X6-_$R*+|J6zhSDs5J+j15 z073vSl>2W10N-82b|tMJ_>+Z!bCE>5+vizE9$3QB&sxbNH<D2pn|5r$;M&%WP5F#6 z4#frv4{on{P!_P~sN6Cxd4{`l&bzMNGt~9cJwt#M_pqUJ9vpQ#=b>B!X?l0mlc%^d z2fD4FvYc!1wBgkj&PIb<Pj5(WEd~``a9&rr;Bm`e+R2-Uzl0XPu(8(#-$c?g7aZQW zoQh5Eg0ly-5gd(Bnc3|t)0uTsm?rE@9Z19Hlgr>L<`cV7S3WpfocP;o9!w*Q5t(C{ zcoHdaJv^!r>)N9>x?XzJW_iS6n}~!cjv_Z9jH8V@i(#BQ5)z&=X~1&wg0D57595TG zPNX4_fvQ9}!w5Z<!Z`GsmD6+@BHe7rk&>q(7bm3+mTWCiR5%HaVRDatf&t+&uoGY# zSKPLy{Q~@+3xpD0FG{SULUXPDVcE4McIvF{tHqr!xB?I;tr7Hx0<C(2S;@xSz7^uR zjV#aR$+Mnn+=w&LUyrZIod}RwUD&3#;2S2KefLH@q#QJ>bX-VUV_UFs1RYg>4drBZ zwQ&o|uqje4TC~w}^1!z0SNQ`&D#R(mYl=rD<&$L6Og9c`Iv<EZFfztrv_uJ1fJU%K zN3{Ux?VcTDuD(aTmn1{%(IrFLPr>E)2K4O(a=f$xIRn5#ra|H|WEvzc^k-D9l*%Ej zN~sJ<M&M(i)vamNPui#%rb)tAlGueW=sgzFiHSBOIgCqyRbnCLc$L0q$LoXy$rd!r z=hya1;dMz0uXTyL&ZRKg4?-B1D46>m4>p8VV>Y!lvr?S<P*s^~fZ|N}+|zE6VY1}8 zH@5rSsjxEYwlOm!YAOGP4RRR`t#pzNSAN*S59~|BHM%FCatg}<cnT*D;XM8MzC8`# zHjZr{Y5cqI?w`s}cDMV*0@t2}$J<AemD06%vW^vIPR2J=2w!U>DNP&-zQIp3+@C~q z$t}o$FdlXm)3Ez><1A;tNaBXaKrejfVE&y$`FHFWe<$4Non85N7;lOMZ@>6E;YRN; zD;!}vsvC#Re(`t04c_q)`BM-Y9CO$CKeEuagjFXV?(yIw>wR~vA<cIV({G6tr%Ua; zXho;{p^w?2oVMN6QLv4|M%?N|hnsRXq?C>p&4iiMo{N`nLqT{!2HjNk5Jq{FHUPKD zVDH!o1pSI}v6TqcC`*WQLCh)>xq6x_kg;?|>wCD!kk;UO`~lxip?=6LU&b%BRIxWt zyI_Uhy$MFo2y-!Z%*>)@7?Ryo?0QRfOlbu&`b2pXbFj>a_jYK4us>I*H_j$0MvL?N zV5xgHw_x{Jfh+-uYB?eTf|+ZMvF{(2j@X*x0nOsMfK9nM%IHbM70dR5Bqzz`C49vS z<k<wB=ZC!<(-7h-e|?AWumTzLMFhzD;dPbub3R~mjqKCw_RiwVjeRomy<tSMC)rz* zh7H7bn?y_k;shQIYtXB7^ZU{uoyGWCuYBHxjZ(wh9jP?V`3AT<&yo^F{sreAPe5iA z81wz9_ghRyj_`QB8mOZ?>my1G{)?#{cVLI}49*r)_om)^zNjM3eW}fxlm0G()^lGw z&R<Gx-C=E+>h1wTQcyy>fTdqaZ{KHc+p=zS2OSEV4p!cUm~hm{X`Gy{H1AMCWpm0@ z>Msv2=(s~w>M*7TKAy2h2d)Dr$|`WapaQii$-bll_ZQ{p)^2>I$AOzGJ~&<T;DO?U zIJ_kQ(bM97bG)Qlb?s?)U9U2cGMDq*b?u(Ju08F3Am_m8+8sDuFWG^MDit<lydKY8 zPvov)B1TCi=PigZId36Re-K(X9)oNvt(^JjsbxhUZzkdCD@Ic0<55LNyNsHgH?mF- z`;DY8&_;nEDaY$7DM#<Xd^|ikORk1o+#}u=*0moN-`w5TYpd>&yt0tNZd^;c&Gwnp z-GhapAi~uxb}PG;hkM!@XC{2y*~6T<vxk`p&K@gXbIzUy;kNEU7&_Lf@!q~#o_X)_ z<(V%9a&>2K2|N>D>7nono~eGYf@i89^jUfacqZ~d(omB1@%y6RWrl>-O_GA(cUh?l z2twB<h-V_6dU$3Av=e!Tc5&nxdQiOiX5yLArgn9G+I;di+!*BKMK%V3hIt;fi+x<j z<PRz1GVPM9b-2JYs=z;x^vuDcR@mB&uQ<<GrO)BwgE;9YwB7UIq2hx(Y95>~J~&hJ z;K7_i(zPojUAsa$oKr};c7>#CS4f9)3Q5<lkaR7Dw7NBK&q!?QdgbWJ6n45^HF`=0 z7sMHdHb`J7S~G#6iVPS`XDF>`QbTFQx-l}~Vi8A}I#f+M1PA;prFF8yA*FSSZjzOE zQ^KV)pcy<tPeD>y0b>;d+5$lSf}$<kQJOb!acoCv-V6~dm;s_dx{cRBO)2<7O=CM6 zLI3WfZi7;$ZX?3x_!kJ;kH4#1K8bSWO%JLIhJoGchyJ@wC*N`tLTNURJFoxjdJej9 zrGGz*Yq-&?(OHl#=AS`7%4^%#H)>Tu90Gum5(O*-R72x6fL9~DmM*p7=gUXA`oxP` zK~k<$K{!FDS{TYINe6v5yl~<!TC;cHE7GNvOtBglAy&Fq7|L3%hmW`(J}4UiQ*+e6 zIBZ|E57aAWo^MjO2R0)^5H{NWJBXQR%a#PpUj-rHN|`~<P(Mzj7xy&V+Kq3x*sx0C zjYLz3;=GcS2EK@a5*l++!|4Z2jX$KRVQ0C`S9lu&t>jLE;tT@@we|}<Go3)Y%M3kQ z80rJCY1<4MYMSCp8n5&nK742XT#N)HU4|uqMp#UOBxc>2I(GMIaD_t2*o-lSUY6bL zjj37p82yM(3V{S7W~<KW`M}Ablcld8BIQ*713gVOdKZmy11o*Fauj(@tsO<Q9~=H* z$G_)1_qorrfa3FC@B-iRIuarFb}!N4kpdlZ^VasBr0C`}Df{}ky#^W4H*wupR6^Uj zu_dQZMkgse3NfqgH4pBi23Z9&8yisc`RNT4=+J|hbM|xC{`Y10MO$I4hHS)(++0vc z+~}kOJv^Lo{To-lsgj!euW3_O6U>oCXiY^Hp`FDWh_CP%m_#TbBJ`bNKinxq5xj~K z-c=eQLU%$10L6iR-W;L!Z95c^V|6eha*%UOePG{YY_7%KpcRb+>95Iv76#?Q);nD0 zyWD8pI}&VF(Ks36>yetF$ZrA&7ximkvJsYwP@I^unG3~D5KmR?`f#c5o={xqo2Xi2 z-Scunfk_k#U>PI-j}RP>f@o<PRs$vr!9nLt0YOkPjKo13t+hY0)r%%a#irTsO~Ca; z;wDY^tqq|`s|jV$IvOssya^sN$tn8MBqyJFNJ8iz(1B<O=zIl0HxqFVey46}YDnGM ztqFMkitj1>*70pR$&q;JOGo0hUz~Wu4V16H<x-ruKrj1)_H!Xm%`aR@%9E=KQvO#H zf^t%x4;C2w@${fe0!x{LPlGzR3S)PTzpn812TN~TT5Vl?`L%f2oPG?$!Sr}r?%s!` zq*N|r_C#vlWjj;`!J)@byezlD52XfO2f4C1;By}kxu@2uc<hwpq%EjJpfNg)r>il} zq89KV+;CZEe5If>aMEF4dnW0OSz&Tl)EU0dQfXn#wr*_6Ddilr#N>H_D7M!;xT{8I zU=Js2M=B++GhBV?#a^8;YigvVGo*i(&vrrq5usP3&TySo8sS}~5!zPcf-2|?1F@(x zY^$eUoxv@iC^0H^hSEO036%viIPXZXxz6BrmNA7A<aV9TV7jNbH#6jxs52soETpeE z+sn}zT8&vy7Op{p+qop25rK1^VJpC@b%w0R;Or{#9drhzc+?pb+)lhXoq=y%Nw74H zEaJCTUKVdnqwv-#06K%u?+W7G#Xp0d68A1A>FnjjzXeEhg7a4s5xDp_9@|so)yLC= z&eY+-D8WD6fWY-VD9iFc;?!R^HJIf8m3WzFyA>_`;t=C~l`Zl_g3`q{)eJG^Baa#- z-q&c9-$*UFMj2Ys)(8ilCXByXYB}uJ8)5R<jQ2G#&ZU-mmDE00QW01C{R?jqQoYW{ zxrM&)!nG36MLP0NTkkG*<loVPQX$o}(~*o*oSQYW<Xc8P3<xNWXa>SmL1#>NV~agz z$eO})J8GVrBDvcB_G@@a2Z&1pX}8$MY@U7ST<>sTzR8tL0a*TEN+!PKBQHJt#!HXB zt<eKo;m1plz43DCRh&UyWe^)dpp4_%vNp+Cz9o&*7Z6y6Z^9$XsK#nyhjpS^L+6<- zm;#TW$;!uk)KSCVHFMNJJ4BWU_g=$ip_1dT7N%V#$GK@Q%+}U!e8Fecf<47qovwNA z8)`~+Bp`iCau~-vSV?si(p3}v827}fibjPf6wE*!iG^u|uUWw44c+b|oK+lx>X@{( zfWsn0IH{KKVrd@|USc*9yrG*9@&8~!(Fo*Dj(&zE>BHu3BAIpr6@!BMk*5ju^l^nc z#*_+BK1zD7!mZJE_%ASx!b_UlLbS;^*KB2k&lEs6-7SQV!KqgifPqbvRRr`iN`?iu zLO-RCxl(!b6YqMHatFdmGKf{1VLF4;<<)#XPuH+Cm5=e@k~E8%m!=L!d{6{vdKEs+ zZGU9b`M?6xIVj$5nJ_G)<CX$CiU4z?qCk4waWRqJN+1jH2huA8ZLqy>2)jNHJndbd zG088Z7~=;M&0|v#drOCHpp?(HaONR%FMJ{PaDEXWtEs%*6$b5b-!t)O{$$&tAlurF zZ#bLs4X8r0DX0cJJhj3-w`<4rT7egtmEHylzQXQL*gLszCL5T>5nniT3&(EYuqwOf zu^arpgJU-arV;m<<35}?c4L6YZs7Dd9J|qy`ujGL3uZzmU2r)#y@^)mGL`|e5}F5o zwD7u$fIUJ*V#d#m&tn&Qyg#6wdY@;P=i+PH&8BItHay4OQ<<{ya0k#-RzHDJ7(GKI zNQ}Z=*HQf39|TnMzggNvdR*~n?rX;KsG$dx!f+)w<a?(s)~7o^?XZ=x-MazpCfOR@ zCiVNSG>=^ilB0VVoMJ8r(!%2pr^mP2<1~Zy@I(Xr%4?;z@E1K|2izR&fgh^yg>AoZ zGGLsp;T3I867o2p4V*%UzkZ4pBb=-t!oh-(eg-*>j03U+0vmDf$OeBNFZH!Khh)#_ z#SjZ_GsIHMy=hE4?BJ!e<JK;2qgH)#5!i2pL;=nN>!Fhx&bqt6S<Fqj0SP>Jy7!)4 z!0~i9zVcxIxsB1jQ!Ka#*fAlVDPt*f?tl+%CeGS+6@hSw6Dx1dXVz@qwZjYTM6o9O zZ7NR3+#0uwRa6d!mLSp$c8<L7fDu7Hcq%8GZ4~2JGYR&08hsG`s#bu!H~N4@NDU3~ zVB3<%tgBp17xc9j-Tz1XzG{oop!;Ouoy>WG?pw^d-(8p-5`PkV5lcqRyanDHPVi~` z5gqFbQ@OPpJNR&(UCg*u^^TkG+DZY<7p$S_)Ig87V0)p0-69aUPF%giUxVCybhOcK zWR2%E8X_gDb%Np)DRt&QVwJ!=)|2Ze6u^ujlvem%JL@{*m<L+Ul&9Wj643iwIRZuq zmr5U9Q3;4rLjcRMYH?%J=#^3e6A=OtM$wk_=Fzs8mP$#?+2T7f9=%v6rlkL@ZUaT| z{gCrLEr=Sfe|v$j$in$NYH`D@t=;%WkJ-B(6XnY`c<H_xFXgK(GAEHRL+X^?7^pa; zPRH$53)OPuGo64rY-DTu9V1gq&XtsB3OBN`(X*u_xTBIM+HnawDU}dVPQ?w6kq<$l z7forDe6>&tERKs3OUeATUI>TwL+(DeQJZ2|Y}A;sJ{|hRAVkT~B6T`Rtdy@n3Zo(g z7}_DV&b+76p7HdIdLo%E5DD$G_IO;~IZ+S>IKL;n;55P)Ak%?8#A2aL=AO_2T+Ac! zp4iMt|4HrTrFi1l>D01^Gc7g9mYw=owjcXq<vu%D-O9!WkPjq3Blz0n!Gqk^llyzZ z=J7KPSTe$dU=zBFBr^nSXjlj1V0Sts6lIgq4Ztxzvch-`(<`Zd+smCk2(xN16(mWh z^;x9BbzlQHc7uz+X!>!NB%F1lbtSd}5N`mQrp~zyrP?Im$UX<sP1Q-`KxK$$5S13s zNa(vKq0f(D<PtONNIwGuZ<q!Q#O`osSOcY)r7Jc-ED<a_d5yd5QVC!nI)#R&AY(cj zY&Hb>rWJdTBSW31xMWQ#pNsfZPhB|uV*c}`b1dJHfb`QZ%vM-vV6*9+(t&}0H1M>z z2fUM+@x;RdT~UK|xB@AjJX6m)j|5I|e}(kgP6xG*$I4iGYsxH$T3yd@5<$G<1$Dix z8=JjH#?vW&PGIqn_3i0F=R{`1A(M0bBBn&iKwuP;j^pANas+7K`9=HTvO>uB$t6uQ z6VS^q+#4F}Ap^fSGl*Y!4acI$FI;L$Zvv)r<QKZuTK{N_5#s)0h7hI`GmzH}JuA!J zO&x7B6i`9iJU%;5+hM~|0cNyKAFV*!_7(8DIBh?a=3~jU{m%4GiMGGY=s}g)52`(h z5+9UHfv-s~M-cV|;_Ol73aF6jo9Qe{#!<wE7PqQAixMueok6**vnVNMVkK*@)Q>R~ zvviIyrqsWP8pOa~5C$%fhn6+Z_QaarS|jKK0T0fks#Z-*TI8y&-S~nd&eBHYD&-pG zu5)0%*PF3h3p~&-MKD73Vc{1VI?#SJ3ajY1pF$bahtds6Te1q}C{A~YUgZGwODL?@ z0pkPkDw}<ZH^{3D+>_L6UMIxCl)TD$l2?f0HK+Iw_+4ZZjC}=U5`y-G8w(UZlfA+% zIB~G``D-wjy^bRIF~Cy@V?>8|Yd7}wUNirQQ{Ud(t5qGh6J^<;XzJTvh!HMU0&OEd zKK}*&-s<!jygn)uesG?dSE1qLS*~nFEt;)uRV5nEHG2_GHp`uAHaa>wcJ7PMJO6_5 z)jZM+Cz?ePZ_oFY>kb|(%*@L<GxN=8#~mrIkKEdguQ;Le6)aaPJ~&<T;1OFlDGN;3 z?ic9VlQ>7UBJNQdMN}x4fV$B|7gYzjH6s(@Te4W7_lx-@R%>H1RjlYapc|(!`^77I z!i`t-;I@|zj~J<#2oeOwmXX|UOoQBO<c8zX&_5_uPO6(a)GaRsWWHone>rU4W5}uk zyhtzZYDI4k(@>_+OkVTh02jD7o`~af*10vo<ZA;jRMX}-)AU8@G`a~grm`Cps^KNW zxmnAY6B^VgQ>G1xb+?*y;+~N}=Ei2zcdM{jh9x^b&cyTuVXFAjVVx^RoAG@6`f!nS z?o1<a8arRW92UM*&p6VTjmV0eWBccY_KDB25yv{S+Aj`W5cn)#(AaJ1s}X25icO_K zSqJ6ks?FvpXiuJk>=&n?aAO6HT?K~lor+U<w%8c^r>DoVa@N+X+#H^z%FkiHcEtz+ zCe)-DWITSW>Dxna<@u-_jFX@xs3}fXbsKAYIE`~`9J_<e@XTdfSNt-(q9UQ*I*|pd zQr@5N?yeMzmI5^!8K6R4&eZ-sGYY$)6p@0LHO``fo%g6{m%lsH93AQOVQ1SW;O?^( z40C;>R*uKGdoO%Ol=(WA8H}yh1_*?{uLLgJd-~uKe1IsBc|Ak0Poi>eX81BYN%fK| zvJuVltAJ<~!Dd(mu^Yg0)!r`t#S)1l{ujF3JlU{?3pHCs$>gu5A$j?WIkU^f`YwVG z(2w--L_hAWGfH~|t9wDozN~O>XFqSk+6~fpT-8Cc=6fJTguURv>1BM2iTf>boSpvN z<vDA*=U(l6JlwMk)$W0{LM-67(;%I_@w7>o5f_a>Gg%p}9bj+IA<2{U!4RX&*O5#P zI<61!FYvlcoKzAfpD6Wadqzr_3>$iM?aOOS$Y^;@SmQz)DWHiHXDeJpXfZNJqb<0j z<G2n%#tB>pTMIF$SWh6Y#R>}ccI34{I5ap#%0UD=VcsOp*F0~6=x1Dz`zFlTB8+6c zeJTz3znf07{hV1W6+>VQG{q1Yql&!g=bT~u>;vW6c3l+(({Y~+RrGP3hdBXwWuAXA z*4;i4Xj6MF6EBAft3`Kf7#12kghDCFih0Ndb?Y)_chiGqgb58(r&#PjNA>w$I4~R- znx(OzueE|+6_2@R-ReHdio}Mt%|TK8KwGEj$@DgL$BqUVj~!5ZI)RUo4B!F_Fs;3K zET0CeDN9DQNvbgUZm{kObCz++*pyE-2?h5D!+nuh!h0eXYc$RC@1=P@mfia}R5Tgq z8GV(aoqs^)vrtQMUNKRe^Cit|c^-|nWT64MZjb0oGq9>`67%?e|4dlt%h|xbId#1M z!Cv3h*T9F7Qx+-k1ax0R;ycp7x8$BQwkwT{c&sI%0WS;wdHleP#~w9GZ!^EGGm6jD z=PVvleD*n6HaZGp9v|5A=U;#iY<d{=FM(N)&&4{bn1>Z#cG=~xoO~7V=;g&(+05Tx zF!Nu7r`xlsytuTaWNSCR;xd}AP%nak6tMMcu7~4V?*2!?f2?eIb!3<RDRdG|<?W>w zU#%7os72XwxAo!uSDD3xQxcu)dYhRkHN%mUrvw;m5sDiW>H1f)SOqJDgjuRrG_LfY z`4uEjHhe|nwa9H#giHd2NfwK!0sePSpY;4?_~Df{wo-xSZ6%;yDWLWcC}^=h0Ochm z424}Dn!&Hc-@xcdn<n0+c!>%ERs`Z<vPd(1jqiKSqy^2m2NN`I#=Qa!M7s#)8;(~r zVGp|i2K^<CD~Xv)8m~2*ZH-JefH2w=T$hykH&usP2gb}L2v8JTZKXY2f`-j42b!@F zGcngGK0=`d^J)Yb#s6W7orK88pr+_zAWIG)CDSIOgbnx;#4*Km2ozF}p9I6d;LyD< zLF)z>9lF)6O{SS(SLM;Sfq+$DPp@F|i6#kHURMd&O9AmqdZ@wC*)8Zxt0slW1}xp6 zFMFU_2n--V3YK7quHC9@e~AKqHNvl;KwXa;<<E)!o$~)X9~uu(7L2(k62e?ijEB*a z^anxu&1_KBR64TQT|sfiFb=<Hj-J&1JUciKuMtNO8k{ijKyYPbZOFx21`~WD!R1Ww zVssG6ZiILM_2*}EP1S5p!R`bf;QxaL=NOvlg@aHdLz80$BnGRQ;j<;E*xWHdH3ol# zLs*LggMl#mesDa@K@m@k_;N0t_NxQDN%|WN$LsBt2D>Ix1O};Lir-66J5$)AlJ$fk z$`YXu`PnLo0vF24?3@uIQvjxt)$wN}2VYg<bW+0=GcufdxS|)FB2)Ch0i@-*0;(<e zI$#H2m7>2u?SGyy;nZ$vOn~X(CavBIVXFVlk#J3;>6RnBRYHePN%(6Lb?sp=T_Yw0 z1~j^=n4;iMz`S(-BdOWHN)Y-%v9_`Vre!q#VRlB_A0}xu{n0l`L6gJlDv9;KI0h|| zl&LQ{A(&$hyePVCT}00$iS;Z4!G2`g1Kqe57I8oVIx!bAwe2`NMm(8`o$&OP5}w#! z+|Cj663%z0jOaZVnJ_Pgr+?%SbUfGz!IRXE`Q>@FEvm(aP3EcGN_&b~Gz*n&=dC+U z`*Y-{Ye%cDp9cBea6_~ko%}5BuoUt`-x006t|Gr}9D|&>gjT_PjO53D0{P+E$WM5) zB@n4??OjCM7v$jA%fM5S{BA7a$*P;2HAQ}ovl96cX5dC_%4?8fNrv7`JlT>?dTwIV zG#0+TJT_%NIXuZ&3}K;zg#|9N6$@M-%_L9V@ukuc!}~oIkFe_Z?l{jG+QfbQ-5uw| z#kVIkzTaXUv1TtyJAsD*L)*dSDTma}ul%Q>r;+u6M>y8d2QDE#p2ndQs9l4-o(9}m zQ*!l0!9U|-!(2%~IolXta5cmiR=0{L%}#f#pHo&+mCj@E-jqemKrf+UK$^*loI&ll zFdYFGrgPn9sP}=NLmkXq1OLm0wrm;W^_%y?br{HocA#{XdH!q|i(POz=*=^2F0BC| z(LA@i8Dyo;Nof8gS3%a^*a~azWc;#X1}&Y8mK2%di^B-aA@x3uZ<^VNTqI_QPy?Nv z;&1{8>mT1()3KfD(WXkKA?gv7-kden080>9voM&A2o+3CP;!@E_qSIv8rfttyM_N_ zusC(mD}(TN1phxt^)6Ue2q?P<F%D)cu0sqNIoj)RhcCBc7z5eKoAKpPwqi5B97a3} z@hyyN2)G#lVorf|H3*aRWMI4n|7?Y7#IvSqh3s@k6x3kQY;a5bmf<gk$>7V{(PBCy z%}SjiU1Bg1(#5<uC^rTsL&UKnFv);ebuK#R-#?gW?M^F2R$XXxxXAL>M`GWH(mP(q zU?M9xX?({yH^vd(S$f9;RKbR=dgooGcT$=3FY-jhg%{m5r_w*L`US@7_%Evo?4tz? zSivx&k7|Jy+AMso!0!x6V}Ih9cAY62p4+<d73X-1Vt0!VZm)T8Ca3Uq?TSp-P-GMz zU3&&TtzY}<Iem}ibCBUa9c8xx$^k?oPbQKT!<}I&NqQmNP0~Xbz93TMSF&SoOyk&L zCn8uBo6+$o+8H;GmMjT3nz9&Hv?X{ADk|wnW@Rmi4d4+cC?1KhzITJe4IH7Fu_(`! z=di)!)9fK=M_wEL;7w3Z?(e&HuQ;gU9LrnND1BNXH1PJOg5Pm_&2zhQv#M*KRbBh6 zZj#v4r1H||l$XbUN@s(@hD0e%>0N0MKBab`>=LIGV~SJC>#8Yb-Ie11oDNN?FcFQz zrB5k)2vf>yP73|Q!i*Yn<;59tWgQxF`<KcuCgRM>31W==g8s!*&M$F+c@=W+FCo`N z{t}V9Dd85ERj3VxaLRfJwQ=lxe(9J+`-WJu29GbGRJo$@!-nF7=w@UamrKI3uARzV zE*)<??^}q7-&Ml1oe!`?JOkuN#JsM;^tm8n6~;y))<BPeh}lCRVqW*ir5|?u3gb>` zRGy@Czjd?R!Ynym|DJ?|xcD8jsOEcHVysd$>`nQq_+$dSx73u1!?0KXSl^5BW@&Zg z-_<W`qLzk!#&&U1%-GdykdsqmbAPm;gBkMaDN3^iLZ<34v{0kwBMCKX?y7jjel%0I zc4Pa#xdR=%OBx$cNDkACrM<FsxXFeHd+lh;*OpLhpub%AG0W_Iho8J}D~L-t#mVMj zY`(8Hvzu%)RMPo8hufZJQ#&`NcH*vWY-O!MyhfY3r^BZMMwn>kV}_Ewov^4OAW&O4 z1(~PKolNMpD=PBLIooy>Y_wAsDf3J=+PC@@X#BxugCBXDS}2VwbgZG((cGwFPUVBK zf{>|4WF4`Gofgz$MJ?(Ek!57PAV0a9!Hbbwd^s|UuRw0`^2?E2oSb}B{Ji?ruYS#I zUUS83`ML7StN58}cldeT>t1&?KCl1wZ-2uZ-mqrPcYNn}{TqC~`;BjW<M-&ZcJ110 zuDRygH}Ui4H~(9HzV|Kb_<8GF-}-&{eE$#pzz_b=5B<;&`)B?7^>2II+y1W~!RJSR z^vCe|@t@eR;U|CcC;#2Q|EZt)5C8H1-uTo1&wu)v|E$md`?H($`MIC}FaKrpmg}yM zOyAzuUrvS|2+ZN7y*Koc^Y;z7^^I&aYR)~JySKAjH!j8O7sXz}V=yd{;{drIgo&ju zm5ZXo+wFrdre6x?+>UO9!OcEAYEQ~S!&U)$O_m$$@VyR<>(Q@Q9a!3%hzZ3lc$uoC zOI-?Pnt@mE2}D*0Zy^}HIg14oh&X~dpvZG4o6$hbQb=6QwB-H5^-NpZb+KNcO?ZC3 z)E}Yi&5_jCb>XDsLicR1+&yuGE(HRw5!~m28>-X7mxX=p=+$o`BIuGF0)nX-_wg^1 zbn`?U{z_F*I0iF}lCh#r>;43yXGDG$Ei*!Gp47Zo#T^1jf_)ZL#17TL9^M4Ui1Zb^ zCVlzThg^iwRHDZt{W;=1svB?CesSUqH%^>~M4b3i#K}6xpE24z#8UCBN4H1pJ8k}q zhIVKmN1D3n*=q46X!1W5Nb_=h_tV5UCjTfg4Xkz(Y4Ws-pI#<u?n{Vw(%dNgLKC`I z2%4xM&7;g^6Q2Kw$9q|!OqyN5TAjaptkgZ*>m^Ng&pAYwku<vtk|qm9e=3ls%Gy9F zdz>^6Et53&ClH-9|2;rdL8hGiLr$6p18H{iq&br(O;T4RO%fE_!PMtS)5y%-+qnT1 zXe0ZjQi=~V1+oD&fk0XNBfR->L2>|(aZ6I%(D45W62=vcAI(}cj6TZeek>7E`(ym# zM}*~rdD1_WCw=?HNk80pRX1)EW0$I>e><VetEH_kFn$a(?92DNKi{wY;{Apj^ov4E zltyU!IZ8;DS<nOpz+wD_mdLlbJKv)H5;Tneq85*+G+e002Fs~V90r)*AR~}&^bUnf z90rApCooKTF#-UZKx^oSj|Cy2$50r8*7VEq-#Y2z3GKd5&)YP`69UB7Repj~zn+XC zc+KjZb@n>kGS~qj3i&?CM}J69@(ZabJRwHJ8yY3Xuc~(8h;q4DnEE>jC>MP{XoaaL zaqpnSU27o!kUjl?xD{e;k5B77|6-c=@h`;OZvKUc-{s#&#UeeJ6StpBeeSUg#`kL! znGnHRca=t|67Ty$udJ|?fa0Wik9+i;%R!8n#5Sw%5K8dLC4?-KRhkoA%v60gctzvK z@rT+gXgzli_Jn)+2clZ%BzHV^g$Dp_RGH{5YC24(iC1(viR++Z6=X)oKudBrKA%wW zK10P@fr?8SKkD-2_lfy+!U2Gt4}CkZyTkpGfTcjRsj%ZHa6cRF2{i7lMAZSueXQaX z@PO;b3-JG53I4Yj{Hj|*hp3Kb!@F9<J34UsoELo({UGE|bC7Swdy7v<4hKFT5eJ+P zKn`Kz6UIqV*M6@t0=0!997;p@1)BnbqPdImfy3vG=qN;BB`iV=MBK*8Ws#>1>00C} zpdE%p&40l`UW=J58XsRs{W}L<3-y6&T*xhP-=Ff$YeWNqmN@@m>Nxko$|6nzO;q9| zSYS1{_>%;S<6`Z?xTqd}S<K9*hJBFV<6_2{UFdmZ1$zER>CHC+heVFQd4Ch=`EI-! z7VGdwF5YD6<DmXxrpQvmQqfQK;rV|fZ9CjSjSl{Q68_Hw*U9beZ0tKpiWDUjGcMrh z>lCcU!zIYR3ojyL3tewg_@L~DAaQ;qYl#x}5P<LGeDYcT_t1cnau4u_@9;uQSg&@< z-`n}^8a~b`KLlH{0LR~!;8>%!OJ?rhS3PKp4lq)gIn<TRdHBun=rDAEZw2+wq{BBv zM2{eAcT!tP_tz6RWIB$}enU<F(I!?LTQTP}p?^K0@3lY|bjF@afV#zdH5!N}=ZN5Q z$zqz$BnhYaM@-NhZCYLD5u06r1A|P!c1o~Vl4dAZ%(jWWk+F=)lDyt=L-Z6JGB$UN zkfES$h(p<Ab|Er_2f5m2i2wJ3wqf}$cM*wGA^~vs0b<$Lp2ZX<B?2%nolC$g>O5~v zu)CFf6=26qJ0=eRMZB-U=&Y}DI*8RxWHy4JLp}gfDbI92A%1P76*3YY+u!U>FC7$m z(G+^!k835E0ys5b#O_tfX75J(ye($2BI`o~Ry&J!_aL5te`GgD5zti(FdhuQQHYvA zP4oWFggXx}vIHB{=6d>Jju$o5)`<pmK+M0Ec`$rk?49?~_TYpi=u)rmPQ7|C^75Ld z;=sHqH)B#$kEEvVHZ6CVfUUqXzQ3gL6F#s%;J{wtGHGrg>lZ;j$!}kd;r16~(caXJ z%XwQWJ4d06s&G^V${dG$#l<jX4FsA>Wq*}z`m$F&4&jrvP^A0Y{NZ8_93*s@Gf7d? z%utCSvH2nU9S<x+#C$LT>Wus{G!PkClvsfqPScU5vF%|~9xRAx8jvq3!C>0Bl@l!+ z>qN_32_iPPOo&i7E*{=!v=51J05v1PG5!ycGLj8vLz=<Q5NQ`mq<}%@h*e;hMN?6X zP^19UQKXENOUFN+V0MwR8Zc`qq0Bz3Hm(&Z2Oy;F`2pE2D(}MFQ|y*R%I6931;%1d zALxUR7RAZ|d>7KzQLNNVW)BEJmnNPd^hcL}P-cS|!I#$ZcaAd0;bQRp*b!0K{VHMA zI#>v{qTTR?gf!<76hs#v`s1pH(C7ZZNHT%AiMz}l7S9Go`g3+ZYKYR~Tn~b3n)cuG z2d$sQRL^s&A?6MzM*3^}y+p(d>gxZQ0Ch&{SwJhR|1cw#0G`%9|IR~|fNP9%1XabV zSip!KR&tz!1Z=fZ{+kjAJ&R&%K*0IDVwDZXDzJ>_V735@_&-<$wxbI>1hv9)R}vfX z2H3D3L*A~~gRBy4a7y5cGkX6a0qLyrZ6f{skRHT|Eo?|QnrkYIsu^d0R{99StKyA+ zCWv0j=2Kq78*^2>5$2_*Pas6hfc8LRx%k&S<7Fa62?t~m%6Us5ad0c}I|w|&^+P!r ztaXICzD7V<XeRP?3w~=8Up~jb95$iTmP3GDa<KV|%b=vQlUm!hHQHldO~vXKblyd^ z*>HBsb)%<3^x@Ab2GMD-txnyHFHg=+*^Dn&z*GltfN~h+XCtUhI}OZoDm2e2v~nEk zX#!|97C_%YkPT=10RO^hnB!lpm7O8VF;j|zthl1_W4ML<+y|vs(2_F=YL@`07&e6% zHKgvBUTsUV5Gm5_6YGFk#&cvjfonTkwYvD|mIRYms!)R1(%h2kixFeP3HNrz+6P+d zR#eLCDk{B=XykrFLf?Kg0*g#r5|9P>N>P&U*GLKm;(o*q#5(K;^B^kaHO!VDTf5g= z1;NH*irw61HXnA`l?Lk*z)U#96S7Lgkh=D&3tb=Q$v}5AVbTyMDwPi1onZ6{v2y9) zasx<PMXiWKX+i*U6dSy*nvi=rAy$3}Jlce4sIl&1c@x5Z!i4ae6XIx1(_!<Ic)I7_ z%~ucVBtGArkm1!Aws`qq@LfEfH0K&-A8fRCm&0SoeL)fOKx(?QvD7cKLV77%4kA6h zs)3L1Vj7QD<9<tA4Ny~$@#&EC^R(=#c(i>u)kKy`9k+JlD^9q4MWu_t@S~8h+~V37 zJg9_brD6`;@lOJ*d?etGQj-K2&xQP(UAhM1w-v@&ZkMNxfrUtN>w34fWf4bgT%2p? zqp3fU1V&$>O$bhbg>No_Z7iGv+r~eZcDL3SJ=<F|Rm{ciR{3r5XKriV$8D|g_ZYUf zW(D#fqe-MZ;*Nff%pP8PDIzbGVeqO`ZXP3L63vMasgpV3+~Oh6O@2#J4|dZl6!k%x zP}GN503?g6gTzetB-H(x`GRDoBupe(f|x0b`i<&Ik{*|k&?Qry`S7@7==y{Om-6d+ zqX4RzF&Pi~kThTK5+3cFJXsQ%SmDh4bHTI6<J83F)WZM3^KTZ<qap=s;<>Lh%dc3F zLbhi;iZ(~&X^Pmw3d`P6fWp12_`#}ou6aL4OWs+Ia^88YM$r~lm<(Umj<p-5qZSVq zWCs1#_H5d|YJV|4xV0N!ahbta7;&LhC+FroOxR0J-}C5}SO_ww8z(XQ#nW`*#&hla zMKkzP?hiM^d<mOVCnS2S?m&-ZhFo<A7cyLwGN0g@LG3h3H<I+c0e?VYFt(fS?UTJ$ zv+ZR#`*$V`xQ{Z92BK>X*v<a#c={TD<ut%G5H#nPx-(wOuYa9ngJf3Y!o+R&mO5v1 z<<1ENimNlvRZjwh+QJTQO)p=R`L=by5zNpo9TITM8oP~xBp8E&t?a@-kic`l<XnKq z5<S^<U99%t?K&^&(0O!0=xCWy5LBd<nCv2X@HL|`3xQ$t9efLFaI=35gU~8n`vJ7b z%GfqbLC?13CPb53vR%e?gD1|%6ZG)de2noiKM3!sNc@kc;W_c!oBNFTp)fB*YvByg zCW6GQ>Y!_eo%2NfN*7`4bKN*A*e}is;bs*OZ*Tci^a=%&-&aw``xAWkm@KxwA?jh* zjR7Dwf!#z<;)BMI=0WOW$D(N3*e?!JxB*D0=E}b_n;(Y#;_rkT9|oGp4@1qQal~$^ zk^+TM9~G&8ZyMjDHoh0GD4e;aQRVt7Ht~z8iTkVx?%o=5!RA+LIXzcI`FPzJ`Yclx z*rpg0!{n#`DjB71aJU3YzZ8s%$5NM0HMTN$k8jZwy75>hIwf9di09%kSD<gYy6QlJ z59f_SzNxx{D?5m|^~SU_xN!mZ5yH$pl9wal<`Tdz;pjR?AtM%^@j|WjSi2R1FM@?j z5_+YnO=&*(GQrlW2>7F=o^6GL5wHo5*z?$+(es3{Eu_{agjo<KP{;+V>^$W1DdNDE zyn-6m8mgx7C&cK<T0sgCDlV)O2_?CEAOYrrjjID<CGV6$vdK67!_0EfvTAsZZcAp( z?+_|li)ltdQhan{uSFvR%`BRYZqelX!60Piu%AS)kTbS7Qz%@H$$H6=0s|5T&(^0Q ze=ZF<dPyRKIp5pNn}oSgWn_mvBn^>O&zObv$rmqc`B-!68}lFRxBYz$eB`ugO`Gj# zWELDfH`|PqXJTU~BW-2GO^mpMk+v^_F=tjBD~hpa5k9$+VigoyP4O!(y;Nnzm%oyQ z#gngMIq_?*@Q;d$ue@q%YO2km;@4gMdVWw*yyiPpPyF3){GPSfTzf6*hxz%p--`m` zw|*ZhX52_TT45wUSuhe&)YI2KnvBGmVnk$XH@@N$kFOv^!H5X#w|LFXd#GgF?`J5F zML~R`G1ku=#=_U%PbLZE<O+02TarSMN~!rfOW1^x{g@*3cV_ZhF{nuJb$ASnEp^a^ zW)+B12Q)@hYs6a0f;PCZgq!b+!?Uaw5TzX~5iat!CGT^}fD3NlYFHs6s47ewaE%db zW+;6WTZULWnzR93skiXGUID#eNdBG#uPcM^6})+otV&IQjqr2Q284yhFTH)0l>wAi zwKBNB)U(ynRQDXT!Fp<gDm9P+9+u2V#?At>1f|Qr5TWz_w?SZ*pbs8Ou(>|C1}!5u z<pKDvr@!Z6@d{lBDKyccIyl4|vrOP9^CqaGAY0SEkpPU0L%2ZAA}>}Sv%1B;!t^s2 zs;6)rs7AcT@B}oX<wR+Vva|)Skrfivu&npH@IB$%hyJJxQGF3?2$mUt7vJlh$pxuq zU&4=54eMZfO$by|SRyA+HH3u~C%t`@sRn*ZHPt*;>Y2^e^&F^1TVqvG4NHr^orC9m z?Iv=7q)qsP89T(=Fmp>Fn*9khCz{uzVW?gw8kBDE_E4Z1?KK)`MthA0n&JG#o<SCJ z4KU-dR3W%DUVa-q@;TZX9h>?&`<@h&laHP2Q6<*o`I=ThJjJ48zh+^FZ+u!0OmN%` z7!!{MjX9pe-yDv-`q0N{_Nw~LAy~j#|Lue^x7M!|FtF0l1~r6gG*}w~5IHn@g!uYF z>XR!pZ}vm3lb$bV@8Ju8ZH7u*e|8{s?Y<N@@Qa<GuoT_g&u+9~pYbsV)<T3BTT;K1 zKTRSS$Ro+Hc|0PAJh_81-72?!kCUP*51R)<ZndiK<*V8%FLEk}+Zoz6*6Or)=&L*w z?t<6qShd%aZ0s_|K1e}xeOusrs@(Gx09q+@zxN6Xh$s9&TAm{jV_e<dy}LC~M_QGo z{s##?kC`8JiO|FO$4Fw`?IRqEb{dak8Iz9hw6<X^+%Zr)Y-!s$Bb$VXck$(y+2qcs z;f4^=`zm5hY1sYkKPD<J3d3e{hw_ZW43oENbO2E{EO4>YSCkx7^+KA&K}1f5+W)|& z7~LWBPvH;ng<28JqyYaL`x(FYN~;AW<ChcSTrysO2BLgYs0c+Nk_2-uA*Yn#Mz^SM z6-?)q`ZRTtk0HU)sg{s`TY`YiEdl`&+|n^?sn3RhJN(}h+bt=juM!#B`<tL_1hOC! z4wASaArW%x&2I-mLei?pZ~s#Q(Iq9S8bHUWL~(MK=0KWT&gj9g6hm4z2uW$#AfBaV zgOH-2;D|}AE~Na<b!j9-u&W5isSkt`)#(lrr-z&<kIDPcARwDN`3nmdNH2RF1*kO& z3RT-9olUY{2Ho6rL$s-#Zq6#r+MLr1iiw1mJ^9iIL3Ku{Q^MF=8iAN!HR0S|0)fr- z5>6R}P#S?{y4r39loLuKtiI*Lq#SPYCVVkSi+MUgv|%O@%jl(?FrhV+b9aK#DaUs9 zLDWE`v!R!>4uEp(WONGy<&O_ITI1I)^%<j7Q!ABi^%o8z!E{-Wr*sm@L;U4AE36Wn z(ViGGgW2KN$#Z{q!ht6tEdsPq?ZbOY@0=<EUFe-hOYc}&Lx`o&Br;}9u>C@M$B#x) z4&Qx4-*Lk%8A@rR2`DwQ$^&b2@<T5S8fwdFJcFQN$LbPNkH3_9{A<%x!=l=8V_Dfj z6Lt-un@6kzZ_Hp4D>eJeso7r`Ik$n6I&B{V_fFI-z>!5j@aG{SV&mZkk(<~Fu~qEk zvDC?*uTUqbenDdxKO0sjYHRM-b@&^8I!xJSc<Ma$YZto;Cz*US%q6jB5c#iwIqEE; z(DociWBt_x#+_#f3@8D#P>sR`NA!4V%11;EogY!}iBH~Gg5}pz1Ag37+KTAcxV1s= z**eXs<`iNx!;OXoX4qRz{`^oO%)v3HV;jBD#p41jSBbMZY1ax1`1Puip*z_V0f#Dc z+;cLDOtQ5bVaaU|;kt=WPZa1T#}}PqW7|?=ZmG2x!lramvJ}WC>EU)m4kX-8B<kR= z0bmjcy$m2H8p}IUAGuS55Q_(zQb#~$IZ~)2gPuGY6BiD4<&@R^!&IJ&sno~Pq)e2e zLIRo6Vc#?y$x=p*J)kw;C}%ytSeR*5O3a7dykREhlN?M^#i_PmJjoGmJjsDu$C%^u zXm0P0PLZ{@b|Vx%Ed)9@$MSGz^N{SxLt?);B;f{-@XU%r$Z0xt<>5H%>PT+$BVBue zlCG^lDGr<hBqu-OHAF|`cTk2)uu`>HNu<mqnEueDG7ClGLMchMur>-}8U7~*&%a(M z=9u2kZw<BZFL)DJfhaL-<V?ISzKr?k8Qpk8_KTx4+^iCxz!>bESs0G-3(3;7*9g&p zDTp&)#Vog^p*yos)A|uxgkP5XJXj}!%CjmW%Iy~iHQWSHai54VzLJEDtTjhc;@@2f zBwvxh^aj!0(_ZfvK6D>zYV6L`n0wA6CU6R^^+4Ctm9UtwoSMETHSKUxm-m7t=F4|g z2j_jMF^6-goK0M0{6%5AJGJSHEC!Ed>||n1V;cH{spXzMY4Rgo^3Wejjrq{~j}6SV z1t@1z!w#k54504AK^QI>$cIx~4y2{6yR>jpi)|dsR@&-FTIHea8!oj3{k6SM3XC;A z+F(glec^};o^gR)X3`mT$PM9ai(;KmINO3bBGvlfYztNU;A{(hc)kU9p}{sZwh7HE zkt}-EtC1?Y0-MfY*O{p{7{^uQk&2wpd_hIN4v)8wgq#mnfafJC()&p~*)J}h!cEy8 z!Y@fsaXM#$7*E0~QUBI%1jzZS1Aq(+#EV!Gq<|dH)NE6nT6Kf0Z-wLjg-+&Gp%R1w zkntRAArFU|^e?Iaxj6yiYTF``yJX(Gb+|ik>)S7mk8tBA18!62CClxW)R%9q@Y)qR z>h3jVIn~qB|6%W4;OxArvhg`{PtwbP0)cWlGc6_Q1yU#_LZLZFg(xbO7KtJn1u+(Z zAcz4|dfKGzG`&qrkst-82y{SFqIii2G6mF#DEauj1VtQ6!4dd0Dri*xAK&vlYpuQC z+nJfP3Af*W@@vm|-}7G9UiZD$+G}%M`9#w&Zpx2#5A!LSfR}ERq$a{-V$9^5?=suX z^=sk7cdy`v^6az|!ObG8tjLE!p?DFU4CEwZVZS&!;{fQi2z9cU440>S_WOZ6^f=Hx zhl;QrF0!%x67TU}>TH}n0oQApubc3GYet>p{YgL_p|3qCpTL7^{?qI7gPad92o0WZ zbOQE@l2v+@yDLfbn%tFN$!~IZ<%#hopg*%OWw`pLjEt4M>5a8FogZ%k(TZ=XvNr~G zY_Gb#_9_dMZ<@4?^%%@1Rlo)Lz0OZr5Z;=f;sP4?fn?A<`PTBY$Qi)a4ynD?<=8>d zuLPEAl%CBm`5lwC4U#s{N-+SynVeqd!Hg}vsW^<4(Baqe8=c~hYotSxujaSp*Jg~p zGe6q>1D21v^p??88AO8~n#&J!2jSd+vm^smIP;IfMiZRBo*(USp0gr3Ef}&q=zaNN z4(HhcXGwypaONK!&Ok|i^#1&4hx4r9+^WRnr#bt%)aQr&W`3B%$;w$E9<ftC6-E;* zD|CVN)-sZc1L#&-;9(1tQ&*EM5hzC)yw>8fbWKYwtq798vKn>FwkBlmfw8>p_&{tI zabJW*m0tM>P4=;FTQi@>;9>GJ@PcxT+V>(t>{n6p?aHp;t&>9r(iH9}N9HZqI9ymi zxRDPfBC9iiKdb@3$1M#2LgdP4Y-Cn$42Z*jo?NjIxr)V<Yv5#et6>b&L`KS$l#a{> z6~HnP@{eTzJwnb^oNOF`NjG9b79hXaAVO-|B905NfGOm<$b&E{w3>ti0U=`zeS!@v zvjXpH2!S7v(rRVZnY;5hcA~>Bf2Sp3Xi&C>WP5T}lKv{4$o%`4d1NjO%uf`r^-x!q zcz=9@a{250Fc*f02~E>2M(rbeilb^qyJRwI?D47mSkGuPKM}r@)t{=G^dW0(H^v7O zJKP?cS3z?r+4f&VpKk|H+c^3&`4t}SVQzzukkrP5B(<zCvcL(&vQRAYdA>n4uzn+# zov`3kd+@M;l?=dSjU`tjxAi67r%Kqe1i4w$Kx-!M3mIY;+6M|LP<zrPgnr(0TiXgH zMuJ7@koiwW{F@RW)?87+=|9)r%*Q2Zm3~NXj$)BqaEiQUQ_+ZWw9225{#y)JNUJ5$ zB#@E6pb}}QIQ_Q_nTx3f?NF&gbZj;;Wd<~e%VERA6}|Z0TFL2A(nf`_iKciKFRkun z(r>r4{4OXNBroh;#+WYeLLXCP_N$5Lk)~8yHT`uJlU(fETuXncSqyh6h++!N_tfiG zVi<@dQmfi{_myeh=;@}MEqMDXga-!ib5mSQ<sUwPtO9C1*(aGh7nC+Dc?dAkC)03m zWpd3b{my)>)Fa|7u9712T<TVgw_nvukGRWxLd$ZZ?xK4I3q-iR1($GZQp~bHR~8pn zLc>?*2bFZi#iZt)co5g(Ne!$3s_FbN*KOaa%8bx%@&>qRfb@f9>nxL?cyV%nGz;;W zmw#UiJ_Vb#!%-%!3utnWri!LL86el;CA~7(ISIf};8n=2&n*=M-IyQY2(s(9P<?v6 z&cpB&?Sp_gFixvo6f1RD-~tq~r#_Xz5DIv_T!$+KPsS+>3Zm?GE%R@(O4R|~nxWZW zjGDWmlxk;0IOJfyA>ne&FTE|l^f&CK3=St9d17ArEBU4GwU=7f_I{1jIV^h&d-Gd- z0@sjVT^64T!A7(Ja$FBb!k;Wm25VrvDT7g4HT?eJK0!?ApH&0;gAQ6Et+`lHHXLDR zA(RcWeie?ts+aC?j^`c7|5dKr-RHV(6ag=`ppclM;#tq`FSCf%dDnDbIGGgi(DR%O zg^vsMkbKW|_#Q20HsCv8*4l|uo-&Qivre>VDXC-$^-|htqq!h*&$mggWMc6Zpw%oa z!;fjLD(pV68`$8mE-tU^kaXM14(NNC(=EPM70<_TbqZgJ{Yn-~&o--o3}-F=ZEGvu zw+6hk{9e!Cqz96bkX5yfx6}ol>Zy<Y`cj3Z=$RCE-)UHBo^ElTGG_*BsA*?d1xQt_ z@)1z2!f99cs(0I>^0a>jZpoa+ui&)q%-jFiDosb?D_YmYS2U(027L{;@N5gb(bXu< zuSFA&a%iO=H^%yCa${@*MQ)518RW*`STI!L*m<fJW7({euFa$MZOKWAr5032r${jA ziiF3UB-vkcmGN|f8v^FSQ`@y-Iz#q1MMK~+B16C-(Pvj|AS9_ojJ-jZ(e7+~1u>2r z<SRz>b$K|Su;FmgKjwx$1dS(fTOJR2#I|{nHn7cKYTAIVj#hXPv)k+**Nq(Qec17Z zZ|$}`%P_-<Hvw@UyFm@;=ZZAln1@}`?@LM(ALPQKIgty?XgYtqIvlIBE}vTCzMC`L z&V8o4gURabSJd4`qM#PAU!xWm)g;}0{HPTU?h2@7O8ZK-30e7mYJ;0p;53!gH)~<M zZvYzyuyp`B2b^;1!~^;(^dl98&iQ@ON7$~uA7j9fuR*Ok4ZC{j5zbWfw9Wj5n>>o! z*_a6;7Ii_gj?@>Zjqh*F;*Ri}nhYLawjFJ+VM*F}k0#%B-{!g+m@NGvm_FU1uP(>j zK{r2Udv|o2h5P7krfmYrDzH@uZ4GLVK>EXW1DXtC@u*awL3GisX^c(rQy;czUtqUx zwZl5$x$zY%<l-x0tm!otxg`3$2Z;Gs(4!5GrUhNX0bL8N5jv6vD?)cw_bIFd4OSRF z87wms*<k%jMyeYubJYual(Z?Mkh@8sS&&f34i6<+UI7xjt*e(}m~s(exA&Ppw&7=} z@5oTs>IhYiw!Gg&(Ub5!$b^p>eMSP*vE!tZ$y$9Js4rLKjdMzD+MKp8oB<ih%A6<q z%(7ue!}JsvIj+*C;!HjjldvucHJ9v~UiEep1=sS>rmpebf!Fz!`c;5|hE9H!zH`4) zgN@GFH^i@+&I5Kfr4L&1t4iiR7`W<Jg`dPpNk|5zDkO$d71vOz;u`m>d<!qtx)CXR z5m9z#P6d_MWnll-d=o2=3-?OKF5oNsCZR5ngXyls*9u7Q%V<K6P)CFwX>@A$<ng$# zWriSzu#B$-<|B4xzWE&(t=Vr*AXH1vD`CG$g6)Zmp+|8F_f@<uRkhk2Y->!oT<QB% zjPJvv#LI#MQ6JlnQt^1XV7^NmM7XZh4TOplc2mZO3omtM^0E3#AFpxYk{{;6B|l8x zkGmgM=T_6ZiB)IvP@Gk*5WYm(aMHx8!Nf9WPR>MH5U)ns2ZFR|L%$+Tfu{yfx`C$K zn~9mqMUYro0U?*SDz{~1)U3*$2d`*0ZdRrIf6UO&7|<VQ=w3FK;>~I%fbGf9779${ zMO_p1vge}}tHTI&XC}&?xp=w4rC0UREzYI9g<IiNF5KPc!dclOlczcRj@8I*Tle>1 zP?ce6+w5inM+h`$?X`ppgvZkHkp$@bT4a;~m%gJ9^a{P82o_OahbE)G4oyaV9Xfqk zFK9ZWz|G5d0#_yT!iVkPxq@hjeR(b{kF)f)A|jF+AIei^2@h~eJ1a!!yL*HBE>-aL zcL%SlA%e3Bnz;(o?8z58ck#j!#xh!@I0A1P``*IX_1(v=@1_QWsN)5q(#!?nX|w^E zO`t6vf<xE=<+8~NIE+;hRc;8oDSKxoK6{rp<gxv|*>9T<IndJY4m3ta<baU$t`ez7 zGO1J4iknar5CoHyc?tei#@6w4umV|>fIz6mY+{nfd}AK7+j!16Gf)_G23Pb9s}S_0 zeU>2rIw%-5LvSjTgx0drB6De=V=lEAt@O^ZAcC29SOxb--4^gAVc79K#Z~sZE%5Dv zp&^@%dX1rP$p~<UHkVq&^^mx}yGyO_AUcQPsw=BB=Vn)LpgYxW_Nral<yE`1uaxLP z#HA*G5z!>kBcdsyS6A1)E|2-s#^~l%7u4DPC3<O3>f=rH2+ypD=w_+bf(cjAeI?bx zwxP&{Iaj(qB$S=T&rvASgQHT>f4`bh=j?*@2PtZurv2#Q5oc-g7}I7Cc78I7or*eE zr0K)7k@g|j)N^6xsN_tS+4Q8O<cx8$z~7z+;3m&9MK!^AbH30=Y8TcfrEhJ#@Hm=; z<Y9+9Pb5l+dZvLXL?IwcnT-$-A~FPoh%AQu1F00E5+bYC;*LD*&zKNdI3(<yG-pUu zv*yIRlIFzYYnqdd5L0yX8!1E<<h=J`_t_UV&ln!@qpKcq#9b8Zgg1=lTIj6>iFB8E zyzUZzwc--9#;Y@(UE&%mU)4*uI4fIOSj~6d-RD9meZ(3=Kj?dQiK*(i65bRIt=-xc zy2Nf*WIx=l$R*bIZ<tG*aOL`e(}$8YCzm+5JKW!*ui)plh8kpeH2FzYmw0(Yx*|mx zI$$XyS(NWknlh3m>{(G>mwCYvVHJ5Zb(c6{%(=_j5`?2vR|KIV<V4IATw;B9Cqmy> z?h?niIQGz6)NL_F8VOjraGR;#a2Rg0Fo0w8n==w_$VhM{$Jy$N-9wBaxrh7?AZtpF z4S><06Dk~F!{P!84ZWXxXknYOd)PyrA)cT+lY5A#q)>rYnd)~7giQBw4{OAo$p~=b z+MFPR=-|40sPpa~x)^8iu1$853n|McDR9f?F61}FJ-juK*@<p*f?(S^LkFt|LzB?5 zY(NJYphk4|a87fAZz$1CYqO*oDWsyZa;L7I%lT&1+Hc4tb7f`K7Bzm}n=f>JwitC# zuuj{cdeAn-F2w3JWwj!f4n@6`v$hh277pFAGoD|~!}h7Y%>|Yd<7~24I<*g*sHuJ6 zZlz)z<Dn7{r<6)OoK-6Em;rFifyc(F{hRWbeQIwdfB{sU)WHNn>Se{4UC1@7IuW`% zN+wpKyH_N*u3z(X{hJ^H`PNLN(sZmQxU=~}7hF!qN`6^3%k{vUGrGp!PjKB{$ribi z(=1EhEddw|x0K)(nK&4iOdJe-Ofk8)<zaiM!e&_^W@6&t==v-RLtWMZIRi|bW?A1z zTjZrAYwyP_t7(RnYupPt2fC>JlMcOiQ2TZUCVW>K&c~KXI;2~iJFT|8A?eV3A!IYn zun-#K_dLU5(m{psDmrA+0V#-YS&^UaB^0>Gn@=6u7c71JXILJFl>B=bQd3P2Ln2i9 zjhJCo5y9+BW6~jA=-gFH(=4U?T(2$RhbKe2lwJd5F?*tY#$n8!sNHaAlP4>N3-4vw zFwzZ~8(hIf=0!0>FoTE7EAi)VWzXcsJZASyY>CGTl{)B|lsdly*R=@-!!W8_qi1rw zLucWctSJ60`c<OHw`2r3Lt7b;b826rlNsd2c>2&inw&>fyx^NP>5zojU2rB^vfM6X z$yY-3R0wz?h<+cF4&EuTmUOVvk(DML66%~?#tY`}TO#R@2H+;oaxS$<?VD?YVHY+e z9nupWC04*vFrt~Y>h7=$+7c$=xFsFJ5-b&%3zvD>dF&k-KOUNi?9K7E7U5HC9vh1J zzRY9$O#xOsk9}Jnvs;Vfo@gme0ltye!lnSnx#%cTEVhS<npG`RbhNwT|F59vDBa@X z*th7Y`NAdrf9myIbVSqstzC4KP~gh2=FKMmKcvv-1Y0Wxlh=JK7adg*5w35=UE0%2 z7dm%+I~5(Ju`T4Hqg;L=w<z>)J;34q?~-X`W>`*`FMLdHQIjt`QzP!Tzb|}i9<vku zxckD)u-Iz#6EFcfCZb!0h5Zbgd|?*m9E&gf#*DgeO<(v;c>qiM!nfxO3ob7G(u#U~ zOXGzr4h?@Dec|wP=?nMs3&UStHgYnXhwVaiqI}^{zu)+r&K-HoC(0K-p+!f>5;-wn z_<zQi4TmG>Ju!ekUkZ=4lxXad;@dwsya~bUwDO_Xo31#w%mgm85I)`Ff@sOZp5oMs zNpp8~*KYNN@YTC*<>8V`cXM$2TW%qI8m()$<Genby=_jw`s}c1)AwzC_Vt;ooJC9* zeR~r5#yr}R779JNOek;pW!;?OrIg$@Mm-ZEIpwJ=2UFa=x*W{vf$%E0Kgwtp7U8de z$fkU*9f9)czpNXI=cIz-8D$8n&*IS=DoTe^QC_TFR#R8?(jCrFyu(|H+=*4D)HuEq zZFODu)wO%g!P*w}P`>Qh>KSc4GG-Qb)@zrJL%)}lP@=Vu#4%GPQO}&K8M1o5HpBi; zHXX9K9xEK!qC%_{K|W1~;3x10)hwXx3fM!FA$)BrJfiwYtJ023vzNlcc&jaIS|pD2 zTHfsiNv7^heR1>kdFZueXdmY$DZ`Cz&%lJEuzg&{+@JksD(pw3=H_K+XXRb7Mgl!J zl_QG$>ggwbbr#vIEG<H)#JLvVFnbpDh7<S>(bM_0WB_k~L1qA}p?3~`%5>k=OCb7& zKNjQzza+AQU-%tVPpri^#@qQudwYKD?)+Ha@P~S#+y)B}`C~0&oF2FUo{J~WH!c#j z8@l)W>Utk3Z|NGZH};e=wK7egW~7mtRw!NkKj?d^)0cjY+ST<Z^lcSFYmxflyhwfP z#rtd*M0P#$RqETjBiQLsT2`GBhVc_up!<e)J6yIV2RrNr!Fn+%ivrP$B%rd+ba!M} z-?;e?Si{FmpR0Qb;JZ&ceE=IWSvguW+0#xVBqGUlF+M=@&G-PXZQ@CSw!P4Cu0R|x zNYEy^gV$yNyknykNrj0pK1J(l_X{@r(DwTACLK3!l0!(gg0*}R5x=?+@v95b*83ww zv4S~`=DIwZ(zaPHIfk6}AX=eP2pq|1`I~9a_BUwpAOhPG#U1D$%AN$2M`D>c2kMD) z3{bWg&!Qj}MZe4iNu(fa-8vWCkim8?s0+WVc>(Uj83u={zbOIP4AU^oaj`9+_yb~C z;13ub@`o}$MgB-iit5AoIJ4(X88GJ#E)Ck(Jr3Mqnn0UhHS2XXsW@doe=Y2T1^qrk zr?QWOv9}`lH2I<7MJcHG(vAyk<S{ZiMEQVZ2Zc|h-mmTQwx^e%KAuYd`ux~smA=Ty zD0^a2I<ZS>eIwj|oCOs=zCsmVROjF7-(ik!<7Oz{HYK-DeIS>zW9iOAx%0`xAMwaX zwI`=eKjYD7o_XeD@TZMV&gK3l*x`g*oIK(D^Ur_c1>E0+yPIHZlP<Qs=Z^Q^|I8n- z{q8Th<Pz+4|J*J3!*2IK{`{Z7-%oD+sh@tq3t#xcpLx;GZu_~PyX>;dUi|YfdFjhu zw*BS5@QPO^+2|Y?tS=h6y&@m4qI?_}^6o9?4;~)swy){7uSGM~dk56?los+AX$G;( zTPNroy^^|7SAPwEr*d=OPYkeODE;wQ;Kw0c&0|hseql}LyYTVy+Aa4Cs98FDGrb&Q z2t(UpRolyW`@OoI^7t~l{iOuq-wg!z%Xn!WgnzN;QF*@v&qK|+p7&xt@88q&UTn|1 ztOm}1*zL>{T!!0M`|aC!`%(Li<JgAZV8L)ZIy(=+kr-BosVCs47ZE0k(0<q$O3y** zoO$hTtq2Lb;`|IAfR!5E|Gs)XHpOK(p%>_32Zt&V&D(m3Tt54Gp<gJ=$#(#TLt$`W ze7a}T5aWleynn?X(w&&Ta}vdj?STgj49LgeTh(6)WrhNdLFk`$;O1}sV{~B=bX%8u zX}k8)H}-ugA69zlX?W>R`b%eTN-upr`zsCOzc9Ex43_h!gEHSWT)nx5tLHBV_USdS z-`W@KAFqOa7QlWU$-N%L?%rd3`DmQ{u_|9uaKz^fDgG!%I*2u3pPyb2_BtD9o=d)V zNm#FAyW*a7#dGkMqO1*eozWkI%bz3E4R*f@X0iuf!UsCP@`0E5EALGY{9*O30&eYw zi_;-qMDAtkpWJ&$s0Q~Y?@iy`ebaaOZw27!ERjlc*rA##VV|A2aNxOora2aMH>of~ zN^6ziBN4d=tDA}4l?m<E@>xI_FD2OL4Lp}S!N)kdi__~RBRFF}!8MAZ6<j~LbO&&e z$`&~f@^N5poZM~HmvPdrK+IgCs`fYdArKwgLI9=Xom<!o{0GDt;8NQb{Q{lxbAit8 z5%iFh<7^nQ?^$wxJCF3}kR<k*c!GpSlfllD@YL_~hkBc~9=ewo=GfCboQ+9#3I9dS zL8lK7#?1~6rmCsyJ)PAm5e{U~ZnIrgHv<kBlIC^;RFm+!zyQ#2aK`}m)4`S5@A^ZY z`W_8sd3K}Py|43yn)CJHJQ8Oof{|FG$P!?k70<Xok{|2N*LUl&K&)uTR{*h^apMQF z<W^(adAt&AADr_i#7xH&&A}vz-9t;W&cXb8XPr%YJqV3gP7O{DcRt1ka|1BG%%%zu z!~GZ}rg>zW0q2D{K=?5KGEqEO3&^FRo;Em8G(CTsq4-Z@;HL@-7^;K>J-zn_u?50j zcHcKaAY}7J`M|N28fOvtcz%O#$$Md8oYVtobX69Kx$+zK7p$i=MH~ZF-A~*udy0op zARgcdk!BJq`~+r@z5$xlM{P5-Kg&?wV$$*yK-pJXMCP`X7=~=-9V5x3{)9iTZqn0c zX1<D`J$T{3kNA@8zb3(bUo)owh>gDQ*wdU{jJ0*glfY?q_HtMU?S1k@@yHh6+2*hK zlqVWL9vGw;b~nhn>4)=qyWAliK7rRYj#I`*kKaJ+LvM;Qu-#tX13yup@7x)xeAcA` zjI(YD%zUaZW*(<e*kiWnu_Z6$UJmQA1XsFPatS|bh@A{S&EL+2zEaQ)aTWO`gPqUu z{Mm#YT#D^9Gy*h9qCf%8wPiT%!QFGoGbL*NU0;~_Y=n{cznRwMd|V0UzvuhUD#2wi zt#g>Tz0Q)rY^VXV&=(j!wDkJV^7Yyr>AZm-nHpp?UZ>8?5Mc`*x^RxFGc+8W6N8no zczPAN90B-Yo>&ETXZZ>BG{>Eql4hdAOPA5bkP=%pREs_yEaG|3D%sG|mPSA+A8$L< zK#Yy<di7qR+jTU;>U{kXA#@%amvp|!(YFaEyq$TS7u7e&a{$_lZaLop%_#JxNDEX7 zhd97sOqT60^d$ga#=T^)<r?3?{Y%IaSQp_D$|GF<-Np0BwEsl-9!Z8)se}hTDCgSY z<q`a)h)7;{un4B^6WAHJf30DY8zU9t$Q<brVXlnLnFeewqIo1R`DH@NP87uCf#ZkC zfA5P)YkP4ZWAcb&a>g;aSj6PN5kB;?AcoM%w1CO~%U`%6tA@!#6-?GTLjQLSlh!RE z`v=72Vgn|p8!)+GnAAq0tfC|)_a8q@ezh+q`7%s^GA0)tlhcmLg(4=k7Y@2G1F|CP zaqg1kqb9;vUU_>2EnI|c9ex>A3k|61HK6LS&@xBH+f7HERd$-N96xmJa)9gR*-HB6 zGP)KVT|GzF;Uc=OB77=db0v<=n*b~jUeYZ%K2Tw|EsjpA82oIR;i8tgwl9b$)u^+K zhTT&m4+WyC6Al+i0sT+ScL-xij<##qqZ;2V$#Wxz&vY-zGpq9})UeX327+nZl7_vZ z@7OK3Je$dL*vWIqZPw8ud9EjXN)j}BIPEcRwl>xt=g0V(_Bix1)vxA@%<7L#jnRFY zTGf5)6+63MYwhYjRCy=ti#2c(wtB)|dN6S9Ro$&Sku=1*Q=D$CvAFB}@{QIlE02hI zgeZYYU+TK99v7Sq5%Z<4q+w?+nhBAK4wN>*rXi{rhpT$&As=2ZQ)@XSlT)PI_R;X4 zH!y)j8Y5jD#_4?7{DlL*WQwE`0o$FQS<3(Kw{9_DDrz5?ZI4OlyJ8Z_<PwL$5S-^0 zVhyEX$*WJp5?}Ink3X1WZ{;!B9$u5d`;rYAga+gFPt!*wJJ{W}-l4|<_ACY&_H`Er z%oQ2)@o_MiacQg^Ol_SXgS28rUMW`;feOkDhpTW7WC)HV+a{P-=ooZS?6u0<yUdEX zR!qY58s>iVLCxQoh7|C4hq)mTR;|2)W5;~D0g2ax;XV4npfI;U!zd3SVVHEkwqFc- zXqQGnDL-kEc|}_q11@Y1DqsYNC!nD*nd+Bzd19R}Fd+O<wU?yV^Cf=J=OuZL-Uxeo zl3))VEZB|X8Xs#C{Ce(<G_*|S1TuW`0R9STh7jUfJ>T0a63h&8XG3bszOf=%SM|~j zE?K-`{m{nZ%w-dC2qDWHzuRxC+cu+b1Q<-%lNE4@PkpY>8yH8*;OrFshZ@j~(DJT` zx1Xz@Sf;`R9n`P1MZ|*Ffs=vmb^x3v%XNVF^aYp?TR)^*IjQ7Ch0{<g7;X;*KS30e zE>Tj<7`C&ai7V~q6vM1%)cW7-ik)oHFB3Yr2@J8izz_hpPabrx!VNTSokO_*qPkby zRlRgaNzrZrJ0$EX`ch#ByRFU+RD@K^vit6;LD`%?h@Ox{vQMng6tdgWzMxKPn1+2c z4m|V<rKb&E$UCT1lf=aV6jOV+5_Y;akHy1ImPdyrNMR@4pTkZprE)5FKXyX|eQ-l} z!qo^(hXLUyFs3C#q|*f`9wu`*EbdyDW|_rU^ZA1pDh6k|zdh{ScZ6_-^*YJ}(~ux# zo&Ai1t{Maf#nzC6oA?i0Gh$rRpJCopVHk=+XKhj+?V9>XH#ooW2Ji|{yfNI=bq(sn zZmaVPcWF+c7cq^g606bJkjP`bJzc%7ts`MzO{cZyp3wphhJ*vd#B%=!rXFUP@{KXm zwwTE4eg|heedKL_1$~^&A$*qbS1nGws+aC?{P7N}Jxl?v?G5;|+v@mZ^NjNccT}^t zG`(so$KO0xtJDQVj9bBQJIj=Qq8EYb852|;_N_<N6w|;`#aw)dR%OVF+HY8?lhU!w zn6gqz0Hl|Al8Px@Ok$9YwHx(9%f>P}yk?CynWU>&0@0JP%m<^Q9J<-=hFVF<ErNvF zPb6c>JQUwe<RQs2QR#vj$G|4EMR)dtr~41|4DEWI$VTpUnK)mzxHT(INFHfG<J0cJ zcO4w?C;2=})~8@BZ_CfQ+uTD_MBwJ6h&C3~L65#mxDkkchUhoeRRNxE?@!lOK;N5R z`KDoM9kXes`w*q;KA330=hgohYL2h%9{x&-qv_2CM&p}J&-^{7AY;ooFoVm;9^~zG zx;Om8UbMCuEo2Tm(46WkbXiNmfK4C4`>l%LF(6fPdsyhlc^8@cG%~6AII>Jpgf)nb zkEFCP>UCf+%-EoUNQ$;=r9>9m0mn_MH`~=qQ1~9u7Ga_<1-9oSvIUISW5a5nUACu2 zP+Ugeh~0uJhK}5utRDS|bU<e$9W3O7M$cprrD=d<n88B@35PWqrQ~W!F*t)PIR-%+ z?{HIC=(-VX<U`C+Pe6y@rxATemy!{p2+Tav9@Ql*Yv9_-q4tP2Pp1W^=(4%t2;T_| zTatDo=e$VKqH3)@dMO|OU|h!%Of)(IZq4$+A#0CZJ~iA$k)GTI+G}2c@aFL4-HWc> z6`4v&cg!K=Z^gke;YY+C2x4RQg6~-&yde|VH#uckW~@6tU7X-|$At^3TrPsqxPim= zh{|TzTamL}piIM_#4#(^g|hY-r}(VDfTkH^Fu<oyb_#4!Nb1rpS@_?zU7=<(kX|^g zIhT73mSV0B>}~m;+U~7iq<}9sLy>ba0TFI#j$(_BIQo9_dY~e&+JAE~8%iweBU7*@ z$hXw2Zr-}9m!46Yxon3t$Zg{C01Ad?%=Wc5VP*-hZzpaw{x0vEC$2x4Y7_E6O|cn_ zAeCW{f&H)=*d%u>fc1mUVuMe{hwM<82U=wsa~_ZuY~6Y`#z^7wwF}iTURN8V`P18> ze6S~*Gl*^F!{Md^4Sw}l2*0i*6vC*sMAY?^KnB|mQqJ(QkhC@=5TohwVz+znWoydt z`V9J_8NG(33q`Bv)=(h@j1R7z6ONCr5svPJ&kK|?FN~hoZ!X6%WUmt`K|Yvp`PsaU zv61^iQCpQBwgVg?O*8-cj}2hr$~Yc&(G!BYpZmmP9aEH9W!rE$O$a`qto%n9hb5;H zH)oXor%ffys001Uk8mtvie((?blKNciMIR8O&n_0{MKWs#h1`Ocz}NvnHaTQcez<3 zL)?8#^#>}V&oDlOCi%$QBew$CpfyxyTrpe}=1;d2A*FJl#qgkcjz<k@+DMfmCeFA| z*bwf?@deaJ&<PBlh?;f(bT7f}RoS*nL_g#^Yjd*4w{F1)un*6a?6#RFO^Sl}<cz#> z0`S#}^Y>&3y!@K_b^XvLx)v<?2GNnmM@<JkVhds~qY}veED=EDF`)*4q^Ty+6m}Hc zSzNYKtDw0lgXa}A1R+gseYkzf?VY0Z6<ig1R1riS)g(l&H(=Rnpk9m*j5gL*RDs4% zMcSspHPiN%47$^nZ%a7|fS!gS!3x@f^F~nbrLgD4Mg>zVG`0nb!`zbMz%tpmK=FiJ zBD(5MzAi)M^d>Vk&|9!-Nk-60!fwy=9o|gx_jTv8q1xBopAQ<Xmg$6d(E(V=`W$%i z4;j#(2P&ZsutW!Lz#0Y>`>2EYiaKELhq^idf65`?T+wr3Uq{})wwIuE-sXT3Q;0!a z5x_YWpbT7L;P94Jy^7CK&vbwjKpHYIhyr#_P6U}ah(-laoL0v9W(MAq;d2Hy*>jls zF!0nc*mua-cPq39%E8EA;A9MrEKH^a@4C_=LkELZ<;}p$+VX}Bkn^tP1e$dfr^9Kq zcywAORl!0!-;9M@@=N<HoFRHKjFe@8G?NGzXQHK_;+O;HglK8id~1I53Pe=_yuf6? z$^J1qm?o-!IkIfP3ql&X1dnY2`F%w5qZQGly@}{C)NgnG`bWxsX1ee0rF%T?V97tA z5H5;)(}>70^gv!iFlM4V`!9zE?|kCmfX{X4lUqIz1lU-1#O280KExJb_w@+(?Z`iC z8PK>wvvoc^(%+=t-gl=cP1d!Vk2~Y#F-+$%ytU}LuG5q@H8_y>Y0F&`?<$01V%r#+ zC7(sedZ2hP4t4{?Hawf7;V?p1gcyg40~V&E*JnUKzormchNVvapx!n+e~SA#nkE}x zcfWF1(JNI!8o<-L1ZBZB3O9*zXWuirZpcuq$SW21hiHlW%{Db6%-H(+{@D<)^YZI` z4_5e?x+qqI5wTbd=FuT8_7q{it}DNG^%8_`UMxTej!T4epF{q~20O2ah+-XqPR>A* zj%F+<d2)+5NNjo}A2hDZg=o+I=R`%cug*aB2`T>b7k=Zjqe{Zq)F>%XO^ia}5v*<; z91~c^4DaUR??`Mk1@*xas|I{VGRFCGAMN(>3Rh556+(uayTir2B>7|$o#pO7TO^#b z5BF7hzSaFoKCc|ST|e0UQa<mj#p{QP=RGSfJem5is({c<jY&pAw9$nWDoz0Up(_lA zEvRMay5r)DD-@mXB@}$j6rIf{+Xc3B78KiwyMomU+|?9mG+O;@Jqe{r<FM${pEQRm zq@m-R1(supq4~gVXs*4o=EuNO5*DNKEMC@KSM}1HT=15fQ78GqOS@P`laZauzKQ9; z5MJowmtVLmzwqs=q_QpH<!G)sYQl0nkirsAY+8Y@oYy}Q<x7R@ARgZ_fImd)QnZ~D z_x{xQiwZR)C~eKxWwkcR;Z0_n)_I72FX@CNmZop!{%wq@J!5;E+q<AB)usCsE|xzy z|H)VkKy-%%0%zAO&`rGrp~u}#eS#QLpIy`qgtxE>M8mP=U<=mJHCE^)vAWx(c0Idj z+<n~xf$IC4`WW1_l7ArD_ey4v9YJt41zJw=E~eNznY+b3=s^$Gn$w3pOp8vn>U8RK ztUG=5nObvt_BrP!GI!S2%fAj+D9vj5&fX~hVpSArdbq{P;>Uq}s+8wx2Kpb16X#k; z;;>FIXnl^Im`7!5N~ZL<0*DXV-%?1Nk@B-~ou5-|=fkY2J<D$1?`3zhpqrwl>i|}_ z#2+qn1O@FII2GratyF&0g(g8+3~%VAkvhllktsbRKngRWUQ1IVj=Vi2@a75LnFNml ziTBXzs=z8Z$Q9G!0^=rQ?D{yB(os_gudY#`4R~CvIpgu6c-F?s_48B=xL~2`o6Y2L z-g=hQ&7(C=GQN8j8WirGZz*fRMu}$x&G^i%8t>C^`t;)I!&ry_qk!M}KOPO+7pBmd z?HIn?CYA@CWiDq@sXcc2q`SI6)+hqY?U58%CdN$UjA(($ge}ximTn;0;s&BDdMLv^ zs!{xP851*xi78<Ms1zb_5bWJ+DKYaD47qJXCSk=|i0Im*bpo*|p@8hs;kw^PuHm|b zc#d;76Fy#mKc5-dc^wSR)tk&#>IE&i9H;9P&Xt*bNhNqk9-y=IX&NA~my{qCpWgS- z+OzHb;y(d0oP=mwKOuTY?TvhFS%_l9+dSG11tOI3^ODmLeh?lGSn1C>7`DpjN!9Hp zQ#<eh=~XRb*g+SqBtDez5%8U$&qDsL44+TRt+pcS7q=VrcDON6y<WWH2qI&Nw~q3_ zxDm>*ZVfnS-3=OA#UxJf3CUs56Y%SP7trRXkOt{~ALLxfJO`PdkbJtN6Z+^7R|yJl z@cx7}*CF%q{Lmq;bTS(EXEc_!rzq$UOMQ^dKwPt=Jb*@U#FWq)axJ8o{5GR?7+RMJ zC@H2Vf;klISLzyEG|c=8d7HN9Jp9Vi6Vu#MSsQUmkwS+dG=)eT00m)e;@u2}7;u1N zahmwWDewROjG^nsq-B*-EQnOPwO7^9AI$f9=G8(UAXOqwpVxjU-|DZm(qG(~tPXE= z6en=+uH9z|;=qZ&E_gNF_tDyYs7`O0EA*iWxI$l_1|V>So<6|ooeD+J-I77()OdrA zkZQEhedECodB|E6jhuGc!yk?g95rXC=nFOMtNZCDU#PIJ?tZEIgYtzwN_W7Wq5blG z9*-053?0-7_IH3Yq?_#4S@V7vD5m!Vvdy}EfWsqeN=+s2dA)wd`Wmwj%owldEyrLV zZs?@}HM%^o4MVaItoS;!_UwZ0p&ILE`=EGglan=5dm|rPwhvoO2Xnw0BD@82u;l;A z5h4FF^bGc-F@W}9=)A(L$yFjCA?fZoBo*o^GF`jQRBBR*8|*mAovX-neW*y+xmiWt zmPh(Jb1qKTNDC^G-kjl3+KjI8lo8#|U!2{_Njr}*^Cow*4z}o6i7POC`$74n1I~u- zZUtAGyEO!N3mSCva&8dL+jf`_HC%GKBJtUXJ1jhb)0J-^62s9V0<Dz9?28d4<K+z* zFSi(8xOg!|-x<QSD&MC99q^G1L`$ThZB>Ul|KaXam1Jg0KZs+%I`SweD;(i0eH=E_ zu-dC6Gjy{ac8oIfjtsxcOxeRpGQ;<Ai-)p25**i}6`6t4+&nRPSM7~_Y*}Vv#FlF0 zlg+2%XZES)%%|D_$gn+xNlXt2rU22mf{?(otIAQ574kxZPqi<@=RTD!{p&gQw;3_8 zs8?Vgrsou*x={3~<S)5T)x7;MoC@9m9L|J~!Y3r3s^W2V8lS?B1`q(Na$}zix)7>< zL%ORyRCFQez|)10jBSxPJ{hOng{Y4t+?asFvJK5(loMwdl3$!`>jyGki!MZ^+G~Gw z@W>+ep?srPdnNxN=`A<t)$rfl`PS>rZAtz^>DH?M@R59<!z%w_d0782-&kwu`Jw(H z{=rR4|ARw-A{0+KdrQbuCmz5CTwuaJ!QX|7b*GqhCQ=Pbn|!yC)mh94urw0KEPmIq z1PaGqF2(vP>7WfzJzTnC8+X_<r0y9TLy2|w3fObndzQT5`Ff}>7}rUzaIp(c1=lL( z;C0NdStlAMAA^E|TyBmsE2EHkZmXCT`CXP`!b=8U+m~q1MITifv#seaC;lwh^BP!) zhfN&eXvbFwOnXolvrYqirtz@m6VW~VsGsOQfR8j1{xq`kk+hPkaE@(PW^}LbC9>7Z z6z3iU5A@{wS%<tdqpkE;Fyu4DkP)ntgPN8Qcw@LyTe#E_ZUcM4sS_Mp!J!vi;^5B4 zdbsZ13KL&MCO(kEbqmn<*#2&id@L9BX~xKNqWe)*AL{&5?L1fKm#)7suJ5)`7!CUH z_d_{q_Y^XWos+`6n||<<dC~;pkUO&T<ZE)nMlzT=v8?1!8<MioTr$XUV=oQa4f2yP z<ZK?3LFT*Iu!I~1Ygc}SvDsk3hwU5VxTW?&J~h9PWA`|Mg*f=^IiQ_pmi86Ob1T;} zO^ql>&LU@ZLn*O3?NE)?(@0;hO4O4dj~8<<!>BWo#)-HJ7L3aqT=YelN3aN!moKy! zZzD}7S3#q!#(!&6U(CoZ+(AZVv5gtRct$Whk4Gzc9B7;%TGL+LUL{3#ItIvz&}zD? zC-L;o$&=e-?UQy+p3*+KJuEi42p4g3w7Pw=j_Lj>P|RJC>Exg6t5#34WvcBp3a*}_ zNEQ{+YK0q#;~6sLNi^|R4j!Rjx{D<o#|9g8Y{GPNf)L&b{o1&Oer;UCNkKTsoDhtQ zP?p9|&aV;)G3{VRHWGKqz~7!3=?&%zpKTNn@>9T35$_yMfou`L9tK0w^Z$F{12MS5 zpK$2@WePCN#dtVQ{GNO#pA4nzeKM4;=a`GvbKE$dj_3JgXeN$hGPE~N2nSLIvxBd7 zBsHSqEj3hddRrPatM~YJlm~z>VOmuFPv@Rzw+dbC!MF}ggcF9DSx%7vwJ0a)KqMEM zZxR<i1{cDP=|)Z-5W0u180>H#o-<^j^cB;#HC~0X4!<zsy~=r(&Ld}Rt9*jWxrt_K ziGyggf`by54Yya3SBLlkn4~!{pj7}hGp%EbBnc*}vfwe0B0Gn7W=#9M)SAbH5^-s# za_F3k@jNmQ_X#@8!)1Vt&0;u^Dg5secJzx;;GCpyY83gsF<#Ri!P*W|Zj?=G#-#iB zhKJ)3Ww{L5BE}l@;Cu2Ae8R!7cGiQ1A!Oj0ntCYTgc3(CCJ7cjz=I&syq1}m+C9)1 z)lHX@vZfC*Zue)v+zYnQbv&N;R6Xb4%=fs*ZBw)2J=OR8R=&sI!?k*?5^UA?{7$~d z-(wq|E%lxQ`5u1{r%IBy*_eNEOq4%ETGDOr&$kwq#pu=@&f0zM{6Otai=4s?43K)f z4YmN^Gvfas-{XU`8IN6O_f(NMpYQR(*;FSO!@)aLjn00gc3;y}XTCly`=fkgZK`w6 zN~SvSA=eBH6ecx&XEKWwCr}Ii3roCrxI*I;L)c{$2vpoA)63Zi-F{KaW~IrN1o7OI zL^YaQlDOCnNnE_ncqA@%GqT+Y>Q*E!4kJ<vi|_8GVR_=x3R*p)#x5e#DI8Q3jEgnX zY)S;iD0y~=2hkK#+hMAA$o&QQJ1*Ov%f!WSr3?ur<>W))@QuH;dObM@9C&DNj@o!D z^X;{HNS=XIHBe*On~@{1<lJc}%@5p@ALvY-<ME5%u}l@n;HG2y2Yx&=_z~p?HqGYh zOvc;GGa4|HO}d+=EMKZ{E3>e9%0jn^p4&dOwxtsl%ioJ}pGd61ugzJu36gn1fp&VJ zljP|2LyO|-h2#ZzIyX*pCj2N|{V2P7fi((K@?aKQ{EaP%J#&kKhA0ta-4`q&JZbqD zaFs1af0{Zb&F=ZLD&hC^(x7iXRp}wi%z~_N<hl!=JWWYomcuAOsmP#QJoTYp>l0`X zm2&EBy~cWPd1ys7-kjg$C3@CP%--bjgjpi9*E=FY5QjWLZWTiJ^T19zzl##wsSFMi ztD|@+d&jiV8snvyT7hJttJ8OAjP#xIVkj|r5utQXCeY<r6lWAnX=lvZtocqAov+J- z{0pmEW4PtKftUJ%xR?RZgG^Q3?nq;{fOFJ3;X>o-J)MMRDx8CcOalP+()a4XFqpkz z9bFM_2NyX?))AK+rH-@Y-c}m|*3y=M%|Oa&bl|9~@Vu0u0AxH)(K<lKV>e^wYvQ;H zVVV;-e4%HkwQ#vBW9zUGl#`|owO5$#<UzeY59(`17wgZ)Ie=p}w>r|OSY*XtFf5bg z#3#zp;%!OBsaYlC=)4EX<jQ0%3#%v!axb0;^Dw-r=rg<_!{%#6+0)<*@G>tiUin79 zvff!i?hsT}LkMogys}W`gxfP<e{M*#g(cu6#~E>AYzy)f&KcK&f`xO(z_m4=d~*#F zYQ@x`1p<`TLy33}&3$Cal%RH@xz8*a7FR4;b^G3u$K)(&s}V{p8C<AQEiBEFcw1&k zybUbbha>KboYuHwHpB1S!79x%O`Hyb-nn7r@^qYluT^Betp>O)sLO2KkC~bj!HL7V z>-DU}-d+RT5?Lo2@C?B_GX!t2tPCrJ8wsU)-<w(Q+w!=#`E>BrRt?x+tHrzf<Uq^? zKug>&+GbO<?%wMMcdQ?3+oA~LI8&8yi?r-!A1vCMHK%iZJl34o^zANpFYxTt7KqB0 z_=W&=lb0knn=X)B%n6vFs=>cDKkO#+pM;TqO@BU%9t2m=%`#*RuBh$Nmn&{*0Tq<w zdfTIPLmHp1TiFQt#EMI>yO*B0l0o*0R4*=q0PV*}dd?jCQ~qdWxRlO9_G@j$d|uT{ zH~4UQ1JYg~z8a`tJnccvC%G$(=E(e2C=tawO_?h>GlmG8ZdECNO@41}hVzwG;QRiY zQ3mms{sgwxhoFFMSP#$MGpHyk=Mhy^y+rq!uU7D>?lZldh>_O<6sM5MRlRhJW7JAO zXAr~O+1<HI$rkiofv>~D1#eh0ZS5|h>*)_|CVF*>tu)cpr9E`H=B|DgD^3w&v~HtZ z5w6JvrE3dTA`kDJ8bf3g&*y|f!7|Qdx8l)J(LwJrDm^Hd;r-E}kBKq#V#=-L(cPR! z=L<2dqmA3AQEHUz(k3T;j04)5c6zzkVA+A}!3evavmAkQuJ&k~Ny>1t38r}g8Gu_d z0G>Uu(odnxN^Q=-usx5vg;R#KfF6Y>Ji<nA;&C9DkB8P0T8V`Ti%1U^7A_)W00L}b z^wSbOEby^F9T1MW3_H6#10T3Ojmw@${|x~LqI6riYlZxBTjYqjzaZG&2UJdgp5c8r z39)E6rnQPwfJEUxgCF4NN$@F$INP<1OdA)`p+?A7V$7mtI=ti{fQh#AtO8<ub{A%7 zaZ<sSN8nPGUf$XL)4#olc7fz&nj*RLnqlfOuIA@7%S_pcPOs6ccCt3>hPP%C-&`!Z zG#z617{_L|xFg?llig#X!=>)|wR}%0bco?>_R)|7aagUdcxUa-rr_bs!CD8OxqM?S zc=(@8bKhUJx3p5c@4rHwz7(bhid30zb^)R)WqGEWd7XR;14b4x!eSK_XkvdfR%qrO z(jK!8f9uzub@n;uoQuE5VwW@~#j!)$6ECRjkcKVNz-%6DnyBZ;d+#J=;e>cM<IT9b zGn3UaDl@qd=}d6&Gran2Rz~T7rKlMkeYypQW)T3=#XR@Db}l;TDtyE9-^25$e|GLp z^X@2QnvGDwf?qM`^TC-${%4k>xL}H!x@)h-iW>um=Q>4j)K#47ku1qrn#%dnSsJGp z)Z$<_VX!_<{yt|3edeYwvPT{8qPo2ZZrK&6Y+<O3^$08?_Z&VWWU3uVM!+1p7$?j| zZEo<!ULuR<@GlhBU{*Ah?M5Lg-}hwvRDQO-Uy>(4av>`8YI9NDn`>|6W6MeW7%{ZJ z4-vXhLoF87?YE*j+76X2P@U6c!ayLlOnt|wQ__2`81@&?(Nt7-M~2UHT&!xKx;E^4 zk*wAGIeUf55^I_HLv)2~<w~y~OC3-E<q!)sxJwIOgVNH`X}*bY?|>cCu(c~H2Zp^^ zSS2tF+r?j;S(waYA%mZj(a>HPkGF>+#R#Lu*c19*T!4!=z_>_&SQ)*67nSL{WZlR9 zj3MV4)-RMPh%yYY4(u@89xprDF*&GrbI}{|vaR}3L)K7X$=K$8O!Qkd5ct#@2pscf zgMwc@JqbV@giU}1#<@o}fyKw`M1YHSO<9tZ3$0iUj<PM`RQq?ZDga4vo%lymZaq%O zxkGm@S!Oy!u*~wHAoOEurF$W+RE9jcaZL;f03gq`0+ip+<8`Kd42D3zNDSgdFPqF+ z;)wBE55y+u!^*R3Uz|r1QaKJ#1q>B;u(cmE>uH3awc|X(f8YtG+CfVtZZuToYuYx> zvfVvU6t55kI;nsti5?tP9;a*9+3|ebi!h2~DZ2}IXB6CKH5*p(0(Wlx&?b#hd+&H! zfiy)m5EU)n6&|i@Do0xrzTnx4vf5vW`G!bt{TUI#q<h&XCl2(~4C%)*r0(z9bfV#P zt<GQYu~x|3XsJ9X;_3uLTGC3PY0Mh<gH~ay-JY18P>C(F|00+aJHxixT8hP#s72I} zKSfaFg}Yjdxrfx6X)=eyW*o5IP4QP(dgk@{m1(Z^w;4I^!6nBW&TaEOpQ+tr8FUi3 z%zc|Gq*%yzdNSPd=%KJFg2tqoeD~ygJf*Fw<C6bd9o4=09v_vZ&O-qB9ybLE6Q9rb zlolH;1>0i2$6>S7dGS3}*uIeOaoFVfmZ((Vs|4Twsoj?|n)h;r(bv=Qg){q{ft5S6 zT6vA_er@ITqaMW#f2U5z-x<F8di_~)X&?JISi)AHh}`aq!^)aJOpa1nGK_aPtmnDI z%G>}&G&!NNt(;mF9M;ECiO`|o|7Y{HTC#*(le?qSp$!lEi4>NvC<?&TB!)EiRfkn| zeN@B+hm{5{fwPy5B&jqFHvS)rHp&hw44^rza~i?k?6A@j;tseQa@WFTg4<yZs~Igg z#WrX<tdHR>$KZUtv6sl=&c~T}K(_qwHt2cS`_8C6+rV=(06<pcuvXv5$L2Q{M;s0- zFe41`Gp_=f%?_)U8x=fNB#S7JbYF||F9vZH$EZ)kB9J>WLfkblyXZEq;;xFh;tgV~ zP#t0_*HQf#$_NezWpw)Tslo2Rb74kQvaG~BA>Ri0i4bQBE+UrA%>FZ&L8yT<rX@v4 zzef==%i0uNI|hDuZyvt$10#c(I*A`xBFMm3`Pqi;V)b!fpYwgSH(4Alrb-;Pw|&Ie z@FtQMPa|FFXaYO(Re(M?m=>6#Q|Rj%47b}ZpOW)7XH7N#cQVP8Dt2EUg>h$KOPpb$ zAGnw!=6I4l;CP~&F^u{civD2o+aq#6@8*-#biTx3W-M%`Hd=ROelL&NnafsFlp|ko zY&v?rt)xgJL1>X+%el}T$IN!HUp9*Ne&a;Vld(olY=lSQEBHkOO@me!TsWc}txE@8 z%3x)>lkpO|l2wcN2YFPlH&+q~Xn<N9)tXl4An|6+MH>}!^3PVJlt+sGnKpZ+pCJE? zF-y`f`DcH`H?tZHp=6;@9;jkuZX{xil4BEH_uLE<eGEg%^81y^>VG2RrW9cdUywu- zRV$v>C-Z&onV6Rm4A$?yzo^}py^ME$C%lZW&pPJ8P5uAD_xLgMJuH%z8@`~mu3~6d z-o$<{X^r#4AMpq-afa6+x8n?N_;L>8XB!Yd)2fmSp7f-R--UH0U_B3-HLQD{uJ|Af z`CwIB@<HaQOiWhr6_EqT3guv17YZk}&qpwZ6I;0}tk%Fv5}9s`NX?o7XDJnzkl<1* zYE&p;#^VOFj2kex^<Dn68*o-heb+G>@IAdWCRf;4hEh=2d_NX0LT@9Dg61W@hT`JM zK|yc<F0QC>0qiEdv=|y%w>buNQw;__HX99xA)$huW$~6xskyA9!2&M8;xLRnk`27b zmwIx|i$Xe-wsjy11c+7u@<3bPEEWdsSX~d_ngMn_`~-mjtQ25f7s--<HozRBp=J^U zerk#cXzOA6r&yLoy)!ig4a%rr8;jVk-UWoVI-j5pdaQ6G{T5)?XN0C7z?#jjD8gFi z^GWG(xrwOO9#YRCmWb0eEycE+EtxT)iz<ekHDjWv1>-Py2zXP&1+R{3sWF-dS!|2B zIz?Q{{IX<h>m3=<&YkpGYn(yu#D9u!5eRZ8mmRaA4+##lUw*0S++u8NV?XA6R}BPf z6IApwd}Z%uBlyM=Ac0!TC213PE}anm_O~uaXlvi(I6MRq0ECAVAq3(#ufko`9+#?M z_{$tsP#3-nxpu1!u#Jym0eb__-j&DUVGwgn%RJk*At2F6fVP8%eCwkc^waq|A2j#j z6ll+NOONouJF{_BirmjKF_z?j-_2k<2QYfGA`Tz~^ghdPGekG(rw#pB;P-1Vl$}~W z(pg}G;SU<S$c!L2^$~s>QwCQ~m7~m+l{;tIIkXiMnZ%5tgYG?83d>*u31utZS6$6# z_+4FD#<xs*G)Lz^ob<g?xbh=ZJakt*Tv<>~yM@Y?hNzkqQgRhJAoHAZ0O+F`dJoKC z|0N(n0^=`ly6=zjeeMD=i7S0DKuSCEJnxj>_b2&2ce$9s1sDB(vFF~Q`nraX=NmmW zi8Tc<nuQqP{~{jgGkOdVOj7hQ<x;X_f4Ds=A5-B-#grVu_fg|JQf<&~8<LOtR~hb7 zM9O?oyQfN&Pvv`@DA`Z^&?x-GRrh1HF+99S4-7C-%I%IyU2NpwCHIaqzCO{S8!Da} zCAQGOR8zk#%Fz#jB&zYyj6-YKx!@gr2rMxHw|*VGH=fxn^T=$b&k{Go!Sl}G8)0*} zz8gIsVgk)pG@9d;HPDj!?uK51-1Qx&cv;`U%vnH%@8Sfn{A`<O6(`Uz4b5KHOzllp zlUy`xZ3_;-lMzPNnSQ_69ItKcT8FKWxH_I&onblaom`|kP}|R!*;7Vs$HDCAwlc~q z>Di3=mt9zAJC4i<+#)(^C#~tw&45>|VrJB(mL_WK7L;VDHcxvfel-!YX&N)7E<rs; z?qZfUo%4ad8;H-nn)}I`0GKfNg-L+!$e1h%(D)MC>FxQRngIRL8VJxzHWe7$bS(cM zR!@UiwNT0xi|@Hs1#?<#B?iG#yG&FdX!7(R^vXoU)<d>Fc|vBYpS;af<c&^JXCZG~ zf=K2?J3W`GVCx{M&5$D+8M%1vka%(8Ll4Q9$!{~C8lC7g;egW;;>GFCBrdFoz>?y% zr<VYA@v^Qv!SqSIIK9G>Pe9h>K8lHoQidr-vy|Obdm*2i<ymT_EM?P}GV(M(bF{K& z(MlGprG=uHNK&(NJ_DYl6Byj>#;q4Y>ps!STQhX-8Q2O^_Y5lHPZ}~*X4Ms(z))`v zAs&r5n02^#3Qn#i@e~fid6ZjG)G_}Zxds>Rf=EEDxq|jV9=66XF<7Jhq|O6D3Q!6Q z1^S<bUoGG@9rG7fY$#(@R)b6Oz}xenod;}%NsR~iK8B*o&o<yB+Jv$Yv+nCa&eh(? z$CjA@(Rqy*9;A<d2`=CaO<oD<j;RajP6rXpu<6*j;5`{U=K@C9WB~cG(EvkOQ9#cY zwdfoVOdr~oDdD~?G;Q=Xf<;o8-wes_G6GCBPX3{{Tn@J}_)Im9gt<JSjW~8Sem?+^ zoD2~4O&;U>GagEM+#IH6-T%RSPfd^i12>GiKaSAgCjNuoUN=C02nD#-;MfarO=Yv0 z51SjKp&$DBfkb^gqT4DOnv=8KH{4f)_F4#MqnQcFzK#Fufwd60hWA4j1B3hdEmGC& z|088YUJ>_hjtI!G*5}dd!W};UqvLd}ZN{$cCAeK!`?MKjYajY;bz!x&p#&qRm-_1K z>uc}hL(8JN&c<qKg*0PAQ7i|$!M!53aG@{Q<Q0uc03LuVsJq-NLdyX2io!i&*e5$i zbS59TMkQ(%*Wc!G=+p57Bl(>31B4;(BMfhr-_Y5lJ#L-u&}Cs2;8COCQRF4C`Mfo- z<ALV;+jz$)Tro>humOb4nIPdbGEgsWWT<nB?oG@~XlEJ{7q?}sx`yE%XjCoos~w>T zKEO86C%{6llFP?B+Ww(=#!!oq`8JL{Fh5gNR(p#spR|Z+E=WOBn9NmKv)sQekH~d} zw3FDq;P&|olB@WR+HDq>FXGZ%%{(E!Gv8BFF>hH76?4-4m}{AeDgGboW&^cN!|Y2d zn!f{o2(HULOx3BNW*@b)x1x6FLl$>^hK2zn?6nTtL!g{OTq=$eZ}i+Q&K82;nxt8~ z4*aakB993(sxSt&NDH@edz!UzF*8cw_`>a$wA+gL3ujVPhSYH6Yw)r=R?v4eZkyWS za#9G7HG*|RFQLFSSUrNZDcOF)cCkt0MiuLg0pjs4MkzQO;#qR}R^*G$)F7$HvHC$m zxYhw@0H!^vi80IFR`E1Kz1BO46G3RpaWpjY))Z(Yvy(15?6_1OCxV<huc59w39V3Y zB`1Qb{mX9jLjs9nBKV*+YMc)>I@%tS8^8=Ur_>CQ<LzTu*1?yv=@F-pt67P^3hHb% zBUP7UvVhd9Zd{KWschALor^)@$|1abNMScB84E38We3$AFiUj@+1!keV&4rDYxDRy z7D;@T*k8?vc6DbeyB+FI3FFO^<4|{Wc`<t)0!}dwYg2bR&T+o1_H{!Tmofsx6f4E3 z-V|AKoX`iRa)gzVI~KZRe^K`x;DN1JY22{dhMQa?zcT5qxjZ6QcT%vWNMu!S{d(;l zQ;|h?s`{RNwR=oIqRCZ)O$=XHFZAAg&$pm{y#4>zj|m0eaQ#??<eN=DUj6N&9}}X# zZS-Rr(J|=9>OCvbkJWotq94;eHT`(w$tNJx2oG}e0RJ>)wJmv~6aAW#v;(qQ(0*t7 zdyxNeEveelqhy0k=}{-z-?N;pXwEa}SsuwDM=UJWT-Np+WwelCMK~;6Ii!p#H`j4@ za|eGwG$)r^+6tz*IF)Kh;m;uKJ;)w69ZvEdrDsNQ<qki~D4&8@@=oKdB}5C?T4Hq; zzJ{DsdQd*0roY>vOJZ~A*@$>CzJ08d=r{Bdu3W{ICecbL$i?LQnkUhoCS!uXFpb_s zr-O68s!e`V?Tw{rv|<GuA(6Bx<yr7JPP*uX!^7IjAFU<^btKql{mIjIW@mTPE)?d0 zx})e<gIVk-LKG-XVTcijICtr3QzI5uk~_ay>$9vIH{QmlY&DO2qk(`m8YJpyhhZj0 z12s;?HEq3y^7eENhbn>1_Q)=|CMgJ(14~8BD1gAnrgd+==)&=8?R@ZitS3mG*V{5C z|5vef3@YguSJg6TCe|m`bZlWNkOvP7GZ@u54+E#!F?~mVm@lnHAkv3KypWFD>`p$t z*1O<cP50|XxO^NaWy^!L2q3kLgm7q!ufNN0Z)zapK{<};QP+0AhQCu)Nkx#hECJGQ z)IhS(!c43OUmB#}=?fC~T1L=F^>qM1VSo~J-S#!RMSINHIM30%vM+maCc-7_^zD)0 zq7(0BUt5hM!HS)y;w;i#rOxaZ;ap000mJ3V083Ua-34GbX{z(#0i5$#soZ`OPOnll zFCDG3IU(RZHg`F)d<Z08oS5^Y8Tox9rqyY|ALn~&=IEXd%+bVg4QC8)`u6<?Lwlq( zz(3{mwEdm!_`)^C>Ol7Z{4qdm5gVrTxCq0|>*VAV)?r``MpQ(e!#}Jm#;W4;)NK2S zTvyD(NR&pR=Qg`;KkcH6F50xI)9rS@`+L3@e@}n<GoG>e`@Zk{zW@85`OIhjzz_b= z4?WBOF8*QuJ^PYNFTM0RKl0oyKl)?O`|;=h#7}Phsh@tq3t#xcpLx;GZu_~PyX>;d zUi|YfdC5y(_Ok6S|Akk)@)uwAOFLfun%DgD&dXnW1^;@jD_d8!cC~iv-_@;aTGzIw zTi5B|p4RoP8}RSO)=l_#a|_byb({N#>Z_gKUhx%f;q{&U!!Mp{oiWf>kE%HsqkY}C zLM&2my*YG+PZh;+FwV>3V1goaa5x+d^ubeKfpJLSOv}8DMf@sngC_x})XHI5zD1US zAbg<Z9S3ykV4UK5WQLn=!W}K>RjzGer0Pb0LND@g%v9dsCy(eEJ=(s0kL7ddwp@=} zVDjY0;B&ac%;I%K3kPH>>A<jA$@yXbeR`SSukHW49y|jp{ln<@t<lhvxyAvX9+5S( zqD201wSF)}C)*lWPb8pm00}_IrU35xp`*hLnEYxB58UN%TF|LC^3+x7l%N_FR4h}x z(tkKST!4x{^!NjoAWja$!s$Ve#@Q=K({kQn$pqxD^%6U}JN8;UAmte7j$ujcP%IB` zLIU!-$AAP4&pKYr(>VOHG2xNo@btrL?1vd!4xv-82K&L9qk|+0faRoaz!P@Zg$ra1 zdLOSsq)q5!R_|5Eh>!Qx@bQaPd<@Gy<(pnn!?gkDmUv;f;GWWXEP7#`WVn8}_DViC zlfa&7&LN8VxI$SNkbD6XtT5*O5jcBzSkXh)Nxqx|Cr>WY|AFB<#80@g^SCl`vFGLw zhb8WloB#a`qEC{y3yMX6!}rb)nQ$J08!gx=9qA=Hz#CS`CGF7*2i_twAA-7?vVv1N z5-%}I9~$OvN$7>Gb*eAsI7coVcr(X`?k%_T6XQO@PrUUoKQZouL->+AT4ntIVIG|K z{p2H)j}?7CRatx)ArKkieoYSA8jx*LUJ^!%_@9!kf0h?^>#aXOmS5(rKVMXMnTU&~ zEW^<Cz22M*1>ZM|6C4xF10;|K_{3FyMuvi|KS_&&PK(2u(wqmpFob^|P)e`xJmAMd z=iuU1y#9!>RD0Eh18)KXB{_e~A-sS?!0$!L)DJ(+9};z!nq)-y*C!Z>&DNQ}w-9WH z2?SrY7{?p!csf#f(SLX*PN<C_?$~Q5GBN)$<M-ceit<wc_B;%&&~_9Bj02jokZZAS z*$*I4xw}1Z)}ZW|kjZQeaM5FkH2)hSY^yOx*=&PYO|zH3&T#tdXDb+}sng}B{L1=7 z<tO>RKK6#0f*ENDDA0XV^a^m)9+sR8i^yLk%s=jq{|u@gq*4EYXP;-JpBb4P>HITK z{3x;&x@pml@Zw`IGWX`ex{=v}2NX4&*c1Q;n_|8QAveMyZwwa2e-6u!)Lu^Ban|6M zg4Ugb%r|S@FVtY-b5{-%-#O>%k9b0QiKmX*0(;^1QeyGEf!UF%u{*&dI(La-Hhhd- z@W=4emx<M9J1M4FoUIWdrZ6x$*7+nIgp2X4lFWrD<dBDePpR<xD04?b21DkK#)*)* zUc8w?L_m|6YBz2{?uv<$#VcxJ`X3ql|7c>$@zun1(Ir!2dc+TaoPFJ+e$You0dp2p z!0TfAKg9F1NP?<&-A7E1W;k6;pVdc9|J$#ui|G&XeT`yTab~U}ou6q80&ixdb0bfD zU$`^Vc7%r=gXmp-W!1l9bEPIWuZbKNSPdEsY~NIVDXHq}n_mhdH``a__S9hEbC-w3 z-ermCS+iDhfK(>}2WSKi5Q|L!k~=`R5>@K*M60;~h^V*^@)MrG0bE)VCEe&OOL1zb z8o4>c?jF#019pJnD&T;uZm2OXsWW(sYD_oSwCHF|tz;ZVUyVYY`2hwH$B+$1{AP?< zW|q+K{H6OQS0j*yc;ad<+_lRl$1qd0WH&ysv(Dtn`0o__cPjpyz<&?Gf7mmK$>PI9 z{N8y7(XvT6uQ_O(TV{~~*80w6N^_34@sa9ARpyT+CmpjHnQjlBR$>G)-tnAt!1iB* zY!%2gr!@8{{3^<<nLHI3!uCan5qX?M;SwqVP675$2I^PimQ~mdNotAZO2DQjqef*o zeQhhAdM|PCWXdhMZJu0)O)h$jVPcuaA#&R(=s3k=aNz;|j$HE`kHL-m`TGQVwe$D^ zu-g1Y)buE?17z~~=wwCSnH(Ag0H_l!DSSLn*VDlYHBINre8=o2-I*zHm92BO^_xfG zv&P>QFiv#uqeG54OSA&?eWitIBX|JkfoAMoM1&e{v6-3A+vRp5cs>M6_UpXh0wM|u zdX57JkhA;*;L~^{39~;2!9n9V^#bC+aXcS|#2mZ`>4R?LIPR??AdHxMmdO(hE0<i+ zuyXE;W|X}<qs*IBb08~pCBb>9svxwpLv+JoG_ec|_mh{V#_1mHBW}(&?LUp3et1!j zJcrLiL*Pw(?j4*|lxJpe@&P<PJT!Sy=k2_a9Y~1Oy^hQtkqP9^@YpIFtavOc9*9ii z3UeFqw3$E>5vjKpxCzI-xSkw^<I<i}fp{S_SWn1|r``{D;jWDPFPpo-@$Tz#6$SYZ zgT(IP&WvJN7TYB@<@yR^Q(P9F0}zQO)_xDLDXE4A1RlID3)mgw@!lb$#>|jWqc;p{ z3_?@zw?WuQQDB281jYVZ55FG)g*(4N;-CrIC{sY1f4vFwF6xd^x!dpK?~j%40A=<M zqKt^vXXn%^K@2V+l@1I-e^W2u`>fdL0N?vZy!jjy?))yloXw?u%pG|z+27+yE`?S4 z39SOK(yP!!;CJ}*dj9OaMDON_bp&PEi4VY-K)q&bSNChJU6g!CyEklEp=0&IOi_2N zu$s1U{_`QfvhG-6bFe;+mGQnbA(e>nZ5HK^<d=J@z_YPXe_<(RG2`G~c;p97MX1Ap zds>7ht8p@TgcbwW?|1$o1ITKOfOa5_^O)7t<N5OgDn#2)+^IJi1$Np6_$WUCc#ofW z^-+=^X5|P!VOEatJj})-k6|_z_=$D5C)8{l%!qTdVHxM;%|=)Xs3qGfwO}?rMg;f< zE<IP1)2=3u(rkR37qC*18tyO$3Pc^^C$!EY5do|p4GrXGV>*uAZ1m!IIkOS^idrrd z*?l(~f0|L|X2VJ@sST6rTJQs~NRB`NRnYv9bABFno>~MxfQW21{+zf`5*{dUvvI`D z#t}Cg3vMnJ-F(Pwe3UnG)gqC4(2==7WMa_sJid=+<47QyHW;8EG4Zpl$4RI-CQ{>C znT^1_%toO8ewd9<WZb*i;CL&RqGUtDY={tHHpH{bn+;%DmOaeIyi?<#Q)7YDaI*nQ z40c3;2eVq99zQ<YqiR<8MN)>{_OM1fH1^bLs@X&Qg*B%%C+#uSf&4Acv7B@@&#m62 z{EkktMqsQvdJVMD>es+@;REl1io;ak)4XefflDr&M4orG!aMi!v^ByD%21qw7FDO= ze#ZBXHP%qA(ELoM@8`@dV4}PhMPOJWiCTCGB5FzQYEvQ(J5PzgoE}B^ERn>TSg_KH zf_)1aPB(T~)YNF~?(r+@#*S6C%~1qM>Ng>+LY9gARGLeCQzg{mL7&SQy4NVledKDC z4B|mcWk*hw3`b6ayJAXyfs|y)!b&Omj~Py<BzAgfq~t&KrKHLs8skBYIybv5|0lov z8f%L_tdL>8;z+)txG70fO7i}0N@B^06SFBvdbZ<uNLgo(P~;SjCN#@#N|GM7lKnbn z9)_ZivEx+qfs%-)4B(IJSBBX-z&5N{h4n#L=ZxAzG>JNO0*%(yX+1Ax!AcgEMX+qo z%LtCN>SYA)sgx05u>wjC2USHNhv?7{O$Imm;93(%9cGd8C72<C(jV5+*GJF>FsDdo z6WdzMy#0?^rGz<Ed>uza8$UZiCpJ|fz%r!oung%t9jwquZF~<^Kz|@C37sqR12Xqc z_tKa?WlF$YCHM&hh%O0knZ{>!A^qe6Mx6Iz^OMZ{C7_l97PvWB1X#E#&wUTa?*tsb zd&kWT{B;@lzcJvs{xQW)9Hd?o@XXBCfM>9BrNGYwaKtu%+Z)HkIF4uI*nyvmV|Qy) z#6?~hZa5GZ$P>ef`8bihv2fy~-*Ls^h{}YHUx*V_+Fr(z(X}U|>mEaw)whQpcYHC4 zo2U7Ha=%W7L*^%$>G>wcSFeh%gMpsF*P%Gkh_CBw__DIu3KsSXHGxDr^B~+}35hV5 zl*ri@vJb!=!Z_Axiv>MeE^mQr%q1*N#R(W2SHMxllvpk&i(=Gu<QQVUug?SUnD2um zA5a!9+}wbXksQ{$S_TXY=@6Vi#2YDV{5L2#xaz+AUQ;B+WoOeGF?3Q*$GoWq2A`L5 z5JE^lFoY~-&oQ6JO({qV(jLGIIbWK`><L)Kf5=I&m6k2%;zk74;WEN+P)A8e5>76> zmBz^;az_T$Qw|e&YcrMz4t_ckJjBQ2*eiG~1B&DQ@jF#?@p@Mr>3UZj>3S-TPytjL zp~j^!LcfQyn6bCyk-RgH<clWk^wV?b)J52Yo$^pn_a^MrGKG_K%$(tVYz>|Y<VpvN z`o&fFLh+#V%i-cL+=4tkt#oj(c$xMi2kw#p^H(DCP#{;^m*Yf|`I+LAO9yksC(rtW zk}Bn|d~#Byd;Nq*UL6NMOwn9Bsrw1?6|jUCRygZjnI8L$9@fUxWU*Fh{qB5uVfq4k zM3waf#MMiijSm+C70!pL(p(@>z#T;A!>R#062ChiCcY#e0wIYn$&104bzU@`oB42G z9*D<cY!^=&HRrBe4FXM6ip97pu_$`5JjWC7=U76^Q=Z})jv=mb_-hh!SBC8Gj3PEE z!T1tj6fYhKFb<Xn)aF1)LYN~wA<Pk;5Y~k70GfaX&;&GqCX$QnEJWi(mH+_5D-Idi zGQ!`Rht+>$&k*<;!tunT!3aLC199x*s^)^y^&|l9PuFv7I8N7dd@*j0FUGC0*}(HK z_UB=I!l+Z)<(!^rW)%%1I11zeM-3HTw#b8c+Yui4+l~x2)Qt`^G=zXL<V&F;t_k6G z<b_y17N5Y)XO9vtzZyoor#<o-+Xn^~lO2qPXdU8}L}XPi-k-<k6U!k?EZ1m?`0mGH zMs&(?nh_0dI`RK7>)O>C;G}EV{zgXmr$t|@y%t^Vr8M#4tP34WQj4kD4p-db>a4TQ z#vjYkRgM1m$E!>4lklfDy(&aU6*_9rpN{hL?`P%tv!2C*7N5Qy8m>>@_E)BF&&K7Q zLnDPE@PmqFlr~u3KU$b(#eqUpaiH|zUU*E;1yg*D<t{&LlfT|*+8O=-<LQg-^idT% zqhq_}aoD~>^)c`r@DLV$vzduXSfFLdY5+5pu3p<q!*I*+Ll}ncy$GAu74|ElZRZ1^ zv|u%4y=Pg`-s}BVs&Z7=MpwCY*k7z7J;(z{6K?aL(~jq^1H&n4V(}X?q=!v}e-M!7 zN=`fiQo-a&+O`*hOxf(|9Q0<WTS(FlUPeRS8R+zezPbi$pHQyD6>HDb_!qe#Y>*DN zqOn{`=XE`YnG3=g7tw!6eRombQ*mdPES>n3JPvoG`GD-dcHu(9QP1_-WQ?Tg#3fLn ziDfuIunZWlLHXdZx*Omg4%`Nx<tJz`OFf0oB4@M408TsC=We$$N8O&s=XCmBjStA? z{Rdm!waBkZ;lczYbC}7K$Oj+Xbt^tWvvD2+6iEo41H}pfqlqz!^nCJx?ruz(PH=$~ z`@eiQ1;wb%T~tRR7BY@`NeY&Xf!3q#5v6olhTkpTgvNv@E?FfV&FULY6sGC(Vlps` z|NE?p{UosC+cB}jyE3|*9WD~Ijt@|&aezFH8iO%@&LSTTuHhtWL?Ax327<+JM+-$> z+ldm|;HoLPs|FAsm-usK08Op3x#xDIv(cDi6n&sp^HcRtXhH1zW?cY;sVzClIztWv zLOJzgNem+`sWgV%7TGL9y{bOjdS3?IXIoDO;0*K_n@oEhOAlQ~G$M+BdVvn`c8P@! zjMIW|+Qzc{g}qCtT7VS#_h8|INQ6s5Ak8mG)fq?e!~x#ru1ycG)A2f7OM1rf20Na! z<1AVS@(A6>+^B)T{h=I5ruzAq25ZtI8X;t=O?Y$wVAm0fBhYVMv`bX4W>xy&mwAmA z*TFrZ_@Wj8pXSK&?2tr}RNO0@r*qx4JJa5Fs7{uh!YyV&AZq}c;Yd}dgOm9=4ngB5 z=OfbH!VifbxFKExkC2fxAmTI_g!qia7IA5wQ^w=_Gafw&ZiPTaJcfG?Lg!c|fMV)H zl$9XxJDzSf8{duk2`B;{OhCX55Mzj76apUC5b(IB9~1n32Hu(Ai8Us;Kfps^j8f9A z`VK`YK{AR#=OhYLDH9YRWyDJbj*kIzkTKv)9mQFBPm&Tj@;H&iB%%{8Cz+lf$SCni z%K1V``0x^p2tbIS3j-!HA}Gd4fJ9J!4}$Xh*MXoP%+NbQpHL%cL8?U`GNlu_05}FA zPRxLFzSJF*6q;mX;sL|RWqVqWbsntMQ1_x~2ynM`?bL90g58q1GHSz`j%uw@`2-rk zm4ws-b^40+fN0&x6$#v4KpRuo8m|x2FU1yEsH7iegHB{9KEhMyuIXN(bw!XK)lqS^ zlkJzSweaT<3>YtMi*go>Hy94bu(_J~K;G$nk}z}lr0<1ykJ4hxJ5#4?7DC}CxMyNk zxMyRXzvRnNmLyfe2wyquxTK$UD3iqvGar=fAb5(CQ^$#iJC78?o&24;l*QlvB9LyB zYa(RPQ5eRiSE>%|wI-RwIjP&4JQ)p@0Q4E83lL~6F6EW{9nZ7OsnEd*rA$DiRT1!K z_MaGTpR#L`;W;w(0ff{iPemgO{D{W;9W4$)UTSdiWY(FTELQj|e`P1KlljWpW`Ya+ znT;e)_8w8%D)Tg)06OGfhH};cN}Mo8{{;#GEV-{+ngnqo0E1NvQ++<8+$ST*z%=G& z7yZh5mYqq6KF%<UuaZ46O_g=X7xTNlqKu(*IV7A@@LtRrXkvOel+A3P(!Fq+<`50+ zX@6l9Wx~MRGGP#x(mo1N@=Hq)rNC7a7MP@x3~;F=L$Sg{B?}=18MaW$(bQ@l)IaAz zxne{P0Kk_NW9ULD#?X>9zoD?H<ijcvc6&?Rip4cm1rI*2xibHfA#<f?$pkmS5aFcY zSdy1bFsu)h2-=2RW2JqzDGX}BP1^X`D3v%*;e&*!>a!qtyaiJT1cXkFf<A4Z!ipRf z>M?-L0=~Vd=2nf(mnaa{+zm8Z<j<hnJPao3w7}!y{u%e5?wO+hp7G|ci}hJ|yvfqJ zVKDD3EJu}~K|~TX2v=psxP}CcYsid1SdE}x&VV^Vnd_)#Pi=Z0Fi}A8j-CW6peCSr z8HEk+nGgOZ6XH0<r3p8VQ(&F2<M>EiPq!)<xC+0GD<kzQ8Foi1yM7d5&&(((i2<Bw zr2a<+%#mtomrQMr@c<aF1R#-mSV%1b3Zxz)YXVCt$m&?#;fm3b+KU+Na!3sZAyXKG zWTgIQhTV~BDT)kx7HT22$N)h(!WW!J;Npb@EUqD?;~G*rt|3quYmHNnX22Y&mP5#Z z@zKZ3sRx4d9H)l^iH=kct*6=Ged5&r%CI|9%?fAOzd=a-?+lnD6%~nDgrv`d8OMt3 zs(NesNu<@@mMQfH?c9;l<-|P^8;I_rei|k{bKO@n9NrH`#bFI~1^J%;Tf2t=diaW^ zJz5s(d$jbfOu<v%qorETwJTpyEaz$p)>*865V889hFCpf;wKH*UrUY90AQaUxfYJi zbzP&lv@@ZwH11eG)P~=M2>^+(cBis_1Bencw$|DQY_3^zdJBz5I0v^5Oye~_ZI_39 z@ecRX@D96W7#iK1q_ROb6B>9hL=rAxXQC-YndCLgdM3^F`AzPX<-ErGE(ESlZNSxu z&rqDGH-O4ldgcSwX5N@xeUcxDwmVF6s4+Xc?&LIw?|RHVkJ)WUyAZ}UglxC7QO$NP zWUrlKibL&no^>($>OA|BOUgZU5^r_pN9uWx1C_kT3&>ydqn`IbI1=&=Lp;jx>kxQA z%?5aaF&$WNH2me~QB3Ys+lFQHE3W%l2>%#LKgl$de)<ljpT0vW+6&#f(ZCpJeu4_g zK=Bjwi+N&ixZ8Axd15wBEcl5zJCQkccQ4_^E7du!QsomS4aL<?sW_ceHofDLXlBD! zJwHJm#5Z@X=P(=oJm0kaencJ9DC5B9T>gvZT=C0V!hr+en>`Ajhv%~0##`wOz;J3k z3f%}O>GJ%zG;%j%j)^?*>+-;Tp3E1N=gC;kfFYiTS7K7{Td^Ea<7Xc^f`O-T{?r~+ z`x9oYew1USa)|XbY3de+pAd0Dl!%uBx*-GPabWf;V3m}j2}J1>R)MN-(Q`Nx#(WJd z$?YU;z*x~Agi!uXT>!`wP>N{l*Tn?+a>OfbK^P_!*7O_cztQ&SYo`!~--(q(m}y*t zxjwo|zm_Wl#yPcsK(I}}@_7mK7$GsAD1y-~N<ct)EFd1lEFFFH-Bmu^LeK-qRn>_( z7>N;R4kHo`)THn9mFyPh@-}`9=Y+Bo-yu8hRApqoAtTc(I++zMy2iYvSMrJ-R%VQ{ zTM9xah?ayDK7B#R%aB)~O^{R4gDWKE;SWl}!y&vM(!DpM!KE8r1TeagVa>Z5*P$Tq zZ(OBF3-^&kDppRo>B)n(K`Xm0{-8;G4-Nb57H}r`_8{^WoyXw!XX2INno=<Kf^DQA ztfudDU4m=MLY$C9o-k5p^4^ih<-+^@8W(uRGYa5)C~8Q_FgQK!*oyh`pkQJzg7W(e zCb61nFD3g3_W>~krPgSb!FWdv3_iE4LjsH<YB19m4hRk;*(&!?w}-`gUbn|xcb+ay z0+!e>IrEivU@~Qxf>pqj$rTZdb<Ogw45n)qrZ!Q`<fd)G_mb_Q;t|?_U_j?GE7&zX zGpx9#s0*r!F+gp_IDrxh3_+kYQ9Y2pjI?tq!T<xoEf|Ey;<+6T4QyC62yq~T5C<{{ zaUg?$14Kw4kB2bf*q4T>^021(-<z@Fyi>|trqK~-5Kp59p~Ta~5O`{gzY!CFfYt%) zs2Q48dBamhHJI5M^iT-Sg$YH$P2}u>77U(ez^ty^meMU@#GwEUlYS4>O6i!2FxY~s zC1!R~Euoykc}TuOsF&m`g!ACOf)%FmMQLidSavV6K>Sw5?I*3+;X)Dm2ySq}%&vu$ z?@|8+Xf~82g-HBxIN}E#fXBoShPlXW3XM6lS;cC49)%-Rs%#4)Zh;iXY+5krm|YCz zOw5WM9P`93j#E4$T(n-?a6+;C+chjdrH<u5tgsv^URa(ZVgt}XY&+o}C|`#}>Y&;H zvpEB=MIK|2nNvuI$kevv3=ukqoQH_p5J&cFyW4i6C`T7TeDFCA5weMw9!QAD9*NYL z?Q!LM2+2C88xm_%;{|J1iCQFRhz*Gu!zCdj#Y!SZyi){>faeJ%-tX3kM;zyd076L6 zt12Q43&mjUy9tPWH~GMnMKvb0ELKdya)l?AtoLE-0l;>B7f@eOJ=0f%R`Y4jVQ9XN zI?pjDSuochVGvo}BFegVNqc>F9<=LR%N0Tnr53tKNZ~(!<9T>v`QZjZlW}H{ySX6b z4{Pt_bIZm#Mvay5TpUj}(Q<cSa+cN$*tHj!%3;5e#FXRQ?~jG{Y61i!t|@@_5=Sc0 z9yY+stNhx~<mXQ^tZtznizh(A_#*6CPuK}g07iQ7|L%opOLQh9^+R^Qcnm{5X1O^e zDD}Hn{b*ZVc4?^KdPzclG6U*_T#pANq>6<CXaWnOn)3xH^mYuypkY>Wr9@`-w3*0% zRfDIL?X1C5#LyhQumW5{&-55`iBLpT6HJjvG@y%U{w(V`H|9N2*t3Ti9z&{UeDW0Q z#fJ>&xE{eg<+w7SpQgw#1FDB&-ipiNrR|(LRot((Nu96oB0jhsdaK4aZhUCGLZ8ua zg;ArP1H+2v++fXwKCJ1wP<+yL(d<XAK>Q*%Ao6_+Fw?2`kIcVamQDZPWlFf|=U_^D zjZoW^tDxTqzD>EpV!=pp9P>ba8YgiPW2@?XkRUlTZpf1_L!99ETG-<=8Cq{BkL{QO zb5KbvVpaawS1`ia6E8uU<RH#dS$&=))23PEf*=Dy#c?Y5Cb&3GHR~i_@p=b2UGE^L z>z$Noh$JQMPeTmfqc+BW$YVTY&KP0Mfp!ceQ-su}D#j=?MaU04`Sqa4JsDc3$ir(C zxt9o60-yLb*Sts>qX^fh-IqCgx(5_U-+}$~-7%ji9hgs~3&$bRE_~}mJPB2idJ-(0 zs8R2886Q4%w{>?RI`R|x1m;?uFA!5mnwK^ZR4PL49jKtRT#RanBxWVQ$|Kn00gjw{ z=>H2JqI5FiaARP*&^iZr5aKw`17m)KQyW9&aVbT^uS}KP|C-0?p>kWV=DLE{OB3K3 zrY2yDk@5BlhH>#H^eH}}g7rBe^?kgwXjC(h_(-NpM~Lv@Mjkf}`sIuX*PxcpZJazo zBy%GIsis3JE>K0mg0?5YTnWA)szyy+SSzU|jTo+9^i&qaD@AckT`?Ru5tRm?B5SA< z1zQ0vP*t<z91L9hlxKsNj`DYQj+pSi@BhXVSbdHQLD^Y`2tZl2)B$DHQs;P4EVz^u zGj6kRUgFr}MzQ~@QOvT31&U=28|KY5>^yLm=fbXG$>E|_*ljl^hht1`Ob*5IT8uHi z(~!h?X+%QmXh7ncrEvoKCruTqE7_S)UH2g@@ZU8&p=zb>8!(<+VrmYDLFF2r7HGQw zZ7;^_cuJbs@st$tw+5d6r-mo1_-^E<Fa#xw9Zcr@L?$DiQlP`}lmZ)$r-k5;DxQLe z$WMXmDnG?F(u#3Wn8FjnPhYL!3A(AwPbHQqG1c-8{h=0{bIQf2>A;Q@8CC~0xft0S z{=XSQ&*y84vgAsD4*osg)4MXI;%a-sd~Fqy#;cEe(in-`3kL9~ol|UEZKZFasL?3o z<Wo*Tn-J`r!j)>=l?+>JqdUl>+LM!0rvn3h68RsfBw8PhOFJ7<o^?xij4QOTmDN+H ziRCRjaiTkPEtV}I6pj;{HE9}yy*LB*!cNH_c>+#x8s(Wd-#2+PJaKOS!5&vWwdFQv zle9JE3FeYB+daJmx6f?Z*Cfqs@n{cG@LlYXLY=y<`U+FD#f|`NK7?XsB9_U0Q|*O( zYJMS6p|B={VT?|sJ#n{M_F&7@m~ThG4hk$e)$$U&N`Wk_twBO>O&5z+gi!WQK)W`~ zauArl98n4G{)!pxSa%28{*JWKrEAyDsnvI$H_+;CxCTpJ&Knr)uCp&g*yl-Su#UpM zV4;$I8SReSm$BXY108tlKzHLc=pKwN!0k1=@tRfbA=YR!k@(OxTJE!!uvjBoE_XuR zDr$b&czjid8`VA-Wxs6yfC5YAIB~6QpF4?j^iox4TytWXkfO^P)f{Yqppr*xzUEZ0 zX=&1E)S7NCI~y83*idWKpQi6JA>Ww^=^iZi3tvTy?j$1Gquh~=-IFgpZ8y9yAPgNj z^Wd3WqbtS8!_-)NoM>X+3>#!U4j(?$DWrR~68Bu4Beh55y(@;P1!FX-DKbh(4eAW( zT^Ul>Ft&kh(epC5Hs7<qc8_h)7-52@_xxt<9^0TXtPJm=pv#@kulntLTditl-y@&^ zk5_-B!A<w?AJpbHDa}DPSVD&-U*yZ?O5R<`cL~>?Q%Q9~cjB+zhWb1s?>2?Cz4+UJ z-KHM@geRPTK6aa8@eB8wdNLRIf~dZl_h3UarumAp<ubp{L2JeY<%IOoyd0>vpoAm! zn3zVqJ(;37z%&6FIsauMuP_{puUI}CUu~TeNSHDvPSVt3(H)EApj91<5U6zx0(Dg{ zjmkp-%+ReL+5odLkaXG85Yd)%!-y@i@3xBstGASbQ}EO#Mjk|6Kr&dnM=@K%pWRxp zYDKI0j=@^okU?~7!9{ync_(W@)y&my<!9Ub#r^_hI3=6sFr;RCF;jb`t)c^F8KV&r z5PH>+=PaJhXG0Teu!>VtUE=77m8(1iuqpgcmBzwbDhy3QAgD9AGHFYvZlX4+OYKt; z;M+2Y9>(SxFI2EQ1tM01Nhl4Pv0Hixd5;hzMkH96#DblhbTUb<#m>IgnVSCbP?mUK zZ^&nzQ#i-9LO91MCU1d~rP|~HBC)#IPiZ*{t;>eWreIXY7LNxD>7GN5=fh+v{(P?9 z(f8+b`u>a`IOd*Xo3#d*gkxanuE3l!3jxly5ukM^Hf~2z1-F-C*q!*<PZ`La>9R82 zmucaf3t6Ndqy)RLd7Z{f3*)VqK~ynPhkIL{Nn^|ulI;^h*Xz*)qhV*E-^_3ForMqs z2XXC9N|IyGAg20zy^p3f_v$$l2Ekg}=qeAfNMFUyLOn+}GYV~D!RsduSPGu|HmNEM zS-}HDWGEN1ty$}$NJ&a-B_+R;NAc$tEoJ;#(#gd|P^E3tFx+fXO_RkygAqZS8iGgC zn%=F?LH``)XLlUy)c85UPbkrOxH8=~4_<wF8@&py!Sl82<s%*GKprOZBnE_6?Q8j6 zA)j@29`lmYD2w^f7%^3DV1luMxCW0%SlNK@(1Tb-H(inCKgjs-3Mz{pZ*(ppV4U$K zC^_R3m|z_7DL%*W-?%N=gMSKaE+{n#2?z2#q(0{|g~$^|$QC;mc{=Ju-j8|<+{=8- z0(BI4X1^1exj7C+l_o_eCWcBq6`>TO1CKutJO`8{8wix7??6fVj=>7lxJOf5JS3U9 znCA8Z(F&Wy<qDa^FAKnr<2_61-5JXs<+W~fi;heTG^bF+48<9KyoY=qui=o391z!F zxapcI2N3IVoew$n?MXwf)?j@&gYLa)EI=K6Akc|{#396uGjdY;1U<kd=rIgZD?lRX zaScI_Ye=aoR3FJuc{jwhQbrgSUrolrW9I~1fqnVRBjBc-9q|atqO+XhzDwb`h(iL* z<ET(1(BzsbupiC9x})<DP79LA%h%!7x9WLk(qnCwKhAI}L;1K?cC+~UbOP_o#?%3T zL1oEOp@qJ-jpK|8&nmfz)XG3wt&aX+2HWfCv8#0BddH9XmG$+GN-H#4c5~_|+FTMR z6ll9WPO3Oc=zM;LO@Iv;?r3*7t}){8?$&8B+$pkI^Pfa;Iw-hg6yPuO(A=*pHYkJc z#@q3qzp?&sgFr76DA}=_6?c)vjjgi|_*CtkMhl35i%uT(EZ*(IG*=FIV#hx&Oy=Ot zu~X*Krgq@#X=nO*vNGi85I;kP$kMve5kvqRJiEWkFuG^Q$fQDKq6T_;2!KNdpEG5= zL=1^xXJ!N#bw*S^RclyQ$cUfKP!$$*oB@;&bM3<Vn$P)_bw<?8w2={u_b=u*6&J)b zd8YTbzp=SUc^wSPEIVr(*TJ-xS_jj#{v|!z(RIK28>fe@q`&cz2Vwp`dfWq;gPZa{ z%*vlUz`vHa;NrYoi%~QyXUAjoJl2YoVk|S};y|;{vnT3{M-En|*=Lg|Gp!WV#Cr9z zm&ov?ifbsl?ShvGPs_Z)LHmR&C@&G8<L)(1Ov6jWJ%}68Rm3mtX}F5?61kdUU3iH! z2;QEJjh-GuwSi1>t2is-{PRrvVIDtdPQi0><^`LixG*c)3-!RK6lX=egTYw+l+2pz zjss!ls5|sD*Cn*!I8N8QSxncvSxiYA*mGXLP&Jdc^b-1gkshPZ#bW+!wxNZxUuyd~ z(~nOc9biu10dM+#ykLD@4OYH>#jrjK7t`#SD?INmGHsrIK#rH0drn5I<r4#^zJUoQ z?iLWF$;N7q>GtSue1gsRiKrvljGtsPev-}5&c@k{XPnJOIuFNVS$@GbNMJE<ZUm*x z<;~FQ+l@}`5k(}|;cBnS5c7=y5;5AD_`!DwIULN#a}PC!WT=5<Rm(6R@35u@xH@I@ zocRt_nD1~LJ3-U+&V1>5XTEfOKjwQ!ji3*y5wze)W=<Sd6r1e<5|b^%eD@pHJ8Q7= z^=0N;0#-I8W-m=M<%gXK5ws!mkqdet7|Fj4A7F;9_`nU*fpRBFWmWd}f;KSM$2v)c zb3j7iVI_0@?mQ58j320hfJk(S5C+6#9MKWR!mV5caO|zXF&oE_bHX_n$IcqPICj?9 z=72h9Z1qEDj5NxP_Ouvf%#UoC*{gd`9)ee2S!03H^eART(poWB(kyrZvtR{c=+zSX zV;x<B*GCud`sjixKDvYpA6?)gMrX*#qr0m%I>MQmU-PSeqeChN(P;OBF}>wMaKlj^ zI6KU=8sdHkXu7^I<;_IU=ryj1&IdmrbBR;PeIW(pDH8^{u=fEF84O5PjaQOA?2X09 zkeD<@ZS%<Amq&j0Nv97?wobNM2H;h!Nh|=V{4S~jq5PhSN?^vQTSq%A%;pkgs9u(X zj@^kBBe=MG#nt3Jt;pko9E5Jc>x}x<(<prgkp@cY$2BB<43u=YC`lgLfjl&~vlgZG zA&92IzGXWbc>zX#yftB=OW_1-e-lJReLz9f2Xt%kJ;+0-;~GL8*JP-r)KY9mY-$0Z zJe=Rl!|?zGUFoj_k6QoQPoE2qcjAP4yn~y*UH-v$|43_KfQ~y?kdGJEkYfRP!Ch}p zPEAdn9_ce{kc;lPkwUZnxL7(~YmNKNA3$?l{GmTC7LPysl1neW^f}LY&W}8I%a8up z^M3sKKk<`Ww{HEZpZe(+@b85${FxWM=x4WW`?<?5yX?h3|B{!!>}4<8{_<aV#VcR= zi?8~n9XnqA>eu}8FYmnk^4DI`Yh9^-SG9KG-|p7ct!rA>;@@=ZI{e$yy1sQo>&Dhi zEpVOBEEWdpQ;UyRrWP~2zO#_$7Bfn7P=YQTcpj#<&;`tL-Q1!^J8xj`Ao@7r9QRwn zyKs&P7xX>rUbw|Cy^*Jfv_|cNEnId(zHE@4cKNvL^SSXjw<n)l9p|pg=O&av&=aTq zY>(Tq7AMYodTD$<=ftH1vBx?3S_R~AG%d-8hUuij&>Q^D`jq`zK0)~fWY_rwMfa1& zg(7i{d)~nFrfm0k78G1V7$Y-uDo$LD6W!G)Ie4rEs-crtb(oFcg%=EVH*m<TSHNNO zbyu!%D7W?<ik=YQBha?bj0SWhhX$jOQi_Q1$fxE^uNMHd1o)6rP_JbV?!yDBlv#_5 zUW?HVcR$P~86DPsT(09!=$O-nojN|OV>S@}<ux4^PrQbA-7_H4vMKXxF!p<3%djMD zRP`7;c)`Ee1)L}Bzy+uj#`M)Mcoi==Y8UW{ufheW2SxtFFL))aUw4D?F4oTvbyuTE zMV!oCrZbJ$&-N9hS$Bih)|`&xU%+vT_JGbOLi?65Tb7yL)|Ub=FY=NQ4x>c=5nnkk zjgVuvnqQ2`8H+cts)mWbm!fH)w$MYFEq7~W91N@UyBk<iLjr;a;mMJ!eqMZ!Txf~m zVBfp{kG(g6uj{Jrg>|oF4IY&O!OT|<gH0F`3dKMG-wUMy3N=H)3@vWy;J$wC^XnVF z(3jy7JB~6ylmT!Uf`HHnh=W6biV#2~K*Sg^v=~aMfE3)87PU;KEido?|F5<7KKGn+ zZ8@<E{e7SOOQbXGv)5jG?KSVUo5D7g**^rXa4H_`ew?q%NYfwi`A`bg{eeGk`QzW` zV_SzT#QyvKc-$ZVE*^uXaESLx5zmcW{lANs&S?#Ik(7gzrvd(IRZe_4-fgWq8zv#@ z`JFj|;zGl%mE<5S{mx<-!)UOI^P|(DX#*e!gwud@qe<wfoDOr_cAFC#E4+fLlY`KX z&NDrv#5%I9bWZpQXoo{YcVg83CtNA%?=Eb^xPJz3TV2MN5e9IKE_;P*mqb9CnC5Tj z4KPoct3Ag{z(}JN(IYxGS|d+tz7)SsIBj4XevO|t@S@hL#E6vZ-NS@#?n^g>VVOM0 z;#n}_k>5%(8so1?-%S*_+F_fC3}vSdyol#5pE|IOqknYsrPQEk16VRQNH7u<h1Y3? z%&5;16QVd`2$-OWP0Y;jH!wBL-+`JsoRB|a&b5DlWjmTYXm`U{=Mf@7Z3uiRZjVct z=<+4F9O>MFpLM%Be>3o$eH)ss6L!-^!w_)(C%G$u-)TB9V2ADq{@=g~8wJA!sk3SZ za@Ww9A#ZJ=V;K!&-MZXX?BtZ^dLJjCN#BpRzsV23fJ4}dQ;j)}&X~BPf+sJ)7j<)@ z+5RHmd_LcNGqMA0!1vOtpR*@?^bUIzucK~8v-1(V*Rhusrg$#CJKTAo;ufE0YnIJu zcAl>9Mq^ZAXm(!SbL-iwI!~sdjSaF~bbrgHQCR^?OGS%;L@rI3HQayOY^`n?XZSi_ z{#EoNihi*#_OJ5pGkKRDC9{auxkaS>{b#5J*3pzx#ekD^(zmIfN9Y8sFojN_pVyd1 z2Yj)>ckQOp)3r#T!IPnaRBKHmk@6JD!AO_z#$pMIKf-Exaat{_S|}|V2BPeVwzl6r zjmU}p8#F<L6gTlp!%XkF={y^b0-7R$4w@pdVR$qCHq)h@)R(`?$k<~C-4lfDn-n&B ztf?@Ufe$U=yM_lWzajkBv~6rpaVlWZ29$Wg4o6BT-8>`KAX3N33R|2AE8^M13cu5r z6*A|H?iE|u^X@mYDXj3W68m$uH|G*!+9d?|-m1>x&7ZJ9&Y<|h_esyl`ilFb0yIoR z&S{v8oX_%nd^gX>?BGeX+f#jbs9IuYsy2I?EttCsJy1W$DQF97CWi%4-+7Fbv22<W zn8lBYna2U}6KDwhh*z6&RpiQKta=R_!8?mzHpBu%{}V?of-s~bsC@Ec(0t4^;D6=k zu;IJ2kX!kmXl2!wABFMZfDFWo)7qIS*7jgYr?hf-N>wM84r9!Tt<3Yan9v1Y*o?Lp z>pVea0cR@Cxm0nG^Tjwi_$6vnH8r`AH_GgS@}dW4K`IaHbhokgd-=>Vyda)dv@hi~ zia+}&h&wPK-m(%nJ3)EFN<$iHzlsk|*8HMv(;J=fLKc|@0B5vDS#+rfJIL{cY-7+C zw}~ewR#m&|#Z&fh@U=*5IXXNc-TQ1LcO!1S3&Q<AfCj#P>Up?>tb0P-q=V@qjzqa& zX%deWqm0}fGD;xDy^Wb!PQ5Z&iOwt^B8sA4Cy9;%f9!GM^kY4yFSRe^upWeoTfx}L z2o~j7`!&3WEVZ>*BlNtH?+rj#U8&#W_-zbu)ivDSHh`r7mWi5J`T}#iEo~jr$#x_l z*;|p2ck>2|S+7MCe3<F=cm(8L!6y@|+Sl@T3#sjI<R1w4j3CB>8L+D2SMes}IR<OM zN2sWky@8MK$H%R8QcvE&8!T~cG=4QN8HriV5MUy7%)M6jpYgHcF+CF;RCPEh81IxN z;0Pm>tH<B8h8*>5iPJo*Z_Bglxj2>~1S&|A8WIpfFUv-)oO*d;lgcdtO`BO(hR$8i z<Ss9>lZur(lU5E1+9Y^x^RC>+)6SI)Q?n00x4AC2@l1McGD!7A*pJ~Xx7lB5!<3fc z*4WwHED)=cr;TWJ;?DU&8<_j+IeBZ)0PDxJIbo^WKzpp^bxwgF;A`A7&@gwAtg?!J z7t>jq^2CVi^}E?T0N3x>&%O?bBF!h%BK|Gb=JV|O43vrLN`=}dqX^;_Ofp+IPz$(- zxD1qFX?$=54g~RLCZA-)-jw0;N%xbr7nJnwN?u&R)xe&n$_m0q@>gzOB?W<|Zcbz6 z-}**(E_A>HIgHVH!*@>hjxhI~6a8-@*xLDx^#yT9ESqYX$1<0pxa>ZHf+5(1V<54p zLnpyOdNaY9KlRc4slT-WnL8gaaf<M%-cqp@mFedE0k0FAtC;S+*C02fHP0lB%`Jml znm;%H;7k64fdOo3;|~wO#t+Y7GoLaKzsANk9)JA{_`xx3I*08<{M-{e+)$%5Hn}k| z<Uz4bLkF-`y~|H|DrU!>yWN`Y84D%nE^UBzx41py5U8<q&Oj8vg!*AB0RzY&+k7$J zIZdmHZeB_kS&P4H%mMCV+~Lltr`nB~<_B;@gLIjh=2_Nmmvm<=0XhuiFJ}4*|3tP} zO|}Ybs-B!?Tq|1z&RNT5Q93gW0A{V=LxZn?ZVAyahy>>|KR_=~Yt7?e)iJrRwfb?r z(cTNX2~Bt0T{KT~MJw-Q5GwSw&fHD5=1!)EY4zL2uadyQeh?hu12yJMnoQG8=u{X3 z>6pGAeITt6uEg?^zbJR?*?t{$j791zguK=;CKH5v|Js4oKgAH?T-h@*1WlBh0la<0 zUob#%GjTWg{GfEf=HiK0@OP{<kHeGE8DUx^R_b#2FVFCK4nLa&OG-KX_W)F|i})ng zcKbx!I}M5jT?(GVPbaYLbLn1nFR`P{EB5A|Jcr-*vw*J%6Z$x#w#ecCQp(|1<kpai zEw*Ha00D0~uS>_|!HZ`|?3#%<(?lgxW%0MUYvZx_dZ)V^Za@%ehUqO8nD}Ch9%_B( zl+y;%8c7qa)dRMg7Yr`oOvAFP2`3M=R-BEAi&!g5UtslY08}t}Y<domW?_g-^EZ5) zlBO|gGF~kpA2Z1;q$|iM>F;zUxG|Gl1n<ZL{Ab&8U{$d;Ci3H;7SL@<;ehLme4g&s zBnLot{B&1~OKaH*YckNR4KYxxLJ)!iC7N*qZfFQy#h_2&1oR}y7RID6<~&w<5{tVj z@_b#NhvTb>-%SAw<1X3zr`3X$fjvp413=*$VZRGBqYMBjx<W40V>{Ja3rxX)Ct!4s z&=g@x<mQBtK~FERztbj4wBZwE0VapM=FIEa47?|}+Lj&yLl|KH0rzrS3UHhd$IE%w zU(T>S3IHW_8dN}v2>XW=fmSK$h*W{=#iD}=*D2TI6nmboH{110P@m%7XfPEYpgPSj zPR9)zO=)RpKY~%AS9L7w3?Is9_@0sE$(jmSIzq!D&>*)4v(mAlXo!Xp)Cz3NkpZ+o zX8~<UL_rk8G9Lm9%^^LJ)Q8WJRc{!URsM0l&s;<@&<*hwd0m-rsIPP$j%BVcviFuY z7FA|CYe_+^p|c2}ThM4mqm~<-cLg(&3j%mcY=KxAN1_^*yE5P>@JW22=fofKH1NNg z4EQ9mJgSL+N1qIMd$StF)E=UGrlj?p2+1Zpud~nQIl9Pf9GZlOZ*yC2<MxUY_M9aZ zC1vjC^OZKt+cQ(xY+#@c4tQ=)Xv?9DY%_Dh{3Y*ddx8`S*}{m#Qk1MP0VrR&C7eOy zFk_i^tt|1@%00U=t6r)4%C|le4~BNJWYI9TN7Ehi4R*ji1aQQFz*jI_N?~AzJPBvz zSqxXTR!)Kv7*BgX{4MyU`)&1(6KJgUNVG<bb&?c{W4dH8Yg>VgG>Z4(PKJa&6m8Vj zsaNY(nUfhgP>lbfbRyQs3Pd-W?VAZG_YfpWK!$|K3#K=t`mZafrln`lt?Gpi`{@TU zG!0SfL3R9?-BdvrjY|Qk_`ukz_O}QOZKuNm^UVq{GN%sP=JraPy0a*jzJ4n-*`ASq zJ2&ie7RBG?H;SqEb<+H<rrw)ob9_?o)3=XB>V5jya#HWVaW5nyt@*i4M1r~Y?16#E z{29YR*{nRGx+6WAKY7!<vVQDH?5ah^qp(5YZj&K}@L9bHDc$aYl1;`SReLIIGT(h` z9<xELm(#JdAW@gNbJ&F7l5ci7sN(^!3C8PZ&$uFk@b-v=a1$y&+>Q8eCH`C0W=U;Y zfNCOniY8Jkru|cBN(o8XbP$Rbw=H*8%JdjUTUvNb!<fL|Fp>BtHw3_F;Zc`kfNls( zk7)-yg>WT<Jvi-9tZWtDYjY(0^c+5&v{dq=&<Uukg#VqoO6V|IdzB|5z2o}HVp&98 zn34P=QzIB7DjnbkWrhL)<InC~=vE~+;DRG{){%P9W8ibJrHG&d%?&GoTC;(811}D? zncjo=4&$U|CYYC-qJtSd4DxV35vm@h{mg?Kp0G;A0ciJt8fr`hp)N^fQ}r?nzdR4w zB`gCnBdsx@adoh8bl1f!tt2U}BuFb&UVjAL|B^x$W9ga^802nf@|Z<Ka|F%L-LSgz zB#A)g-uxnNj`3q-l1;0TwgF$Fcs}!lr2Y5!B+G*54Hc-hUA`3+K|vgyCzV+Cn{t~y zrhlm3ZAQhL^9$~eL*N9CZb%~xo>?*|=mK&Dr5DNbp?K*(hCJVv0d(?&DtkEcj5vhI zGhEg(06=Xr@j;ea^B_xTm?FzD*!fIhLMQ_x2N@tM=u9dpHe<-8QS8O0yoDFBPX{D1 zDiYu|^<t|fi>52PR54MdbmiGpby3xagiG_;Hs;vOnkHAygndUIuhXVgqs6kN<&<k> zVJ&iPAJWY!Q-0~zAcKJ81#ia55g0tV1Fb<=LGT%!6?ovELIt+sH!+@JQ^Nr>njeHY z!bJ}pQ3>kmW^8Hpo3yv{rf0uND>$(oA~RSMSyr$wH?PuOX0k0~O~$su3?thLQ_W4P zg?KMassnK&Oe$w`#>6=4R76c?6>cOmZjnY8ZumCwyfWUEC&JAuOOz^06j+_2qOLQ& z18!z6x)}y{xtQOKClMXOL9Chx8d#mle|*2i&5e|3s<Di%NNF|q4y{&p3Trwr)--~I zFT|>3=&Zq6sw`r_-*ot`!LFg!8vaHR1O0}>Z_VzBHB_b7u!zAL7BN^2uOE0%oB8+J zHw5oJvdGTIv9KSd&UtT=u9YuRI*$dRFoh6uF#0+haZ2wR#H-c-i1h-Fxo<Q#8k|7- z;Bp3+pQ?+*E|MgZFi3?wnv`_QiJgYG5nm#=;cuP@W_L{cESfv!$|%abAQBQ!EUJx( zVDenf=DGAeDk^9N(gk^e#x)FjDelQ(C}=~0)6sc4^TdimQ`9U>2MBcntVFD3+9!Rf z6dS3VeB}ya7dHAi7N0YC<va9g(-Ftow9N@w%+rPy%sVjR%<&14E7W6Jg?c^@lycn$ zO1W-h4c4vOs60*7N3sCdZPcCOx{dE@&BlkdUgOJhf5hxo-5<8b^PGM-&#9MV;JzbP zMdknH+HIW$r9rpoC}eq-6IQi9#_7cV9-artV`q>U!N6{N2)9whb**vwrZ_wIad2C@ z^baH}Nti1ojW*vJUk{yaXOfE6Gcd0VIaC8<%UBXg4-qIO3H|Xr4EGRlQ;g;*wKJsT zq2HR@xQx&S^4<_pr~5Y*3+|J-p<8fPAk1)UYpvYbr*j+cY=r<UCTNx0e74diN26{W zf{8P97!wCZ#ytk`(_mO=5I?Be#i-B-tzown)>lo1ua!&%mUnIMwbXo(1oqTYr=)TY zbV13-`iA<+^U6k;D}oa&<Q9j<Pmf$j{98Anoa+no_5~`eFqzR>zJvDNa6M#SpvWb~ z&HERmgy5!G3V4v5eOzC-P8;30#&DfB;QBgC`D|oyu{gNSV#>JA;%~0AkhNN8A#AnI z;)3feZFA&0OBa-d>4M_ltB_^NyP})W{7o|!V7C-B0O<&YYNxrHr!c{oY=Tx1*#K&h zPn?YQ)?^UbKAkIR9v|PG>CG)i_Yc(ia?ont3^TUUZQ>Iu``25o*2Dz&#5|A(Dn9rj z8#is*1Oxe@C!cH<@~J2*_b3*YLtQx@tEf{IeRoWz{ev|dQx;3a&!AlUpb>x4G2|K* zpX+c1v&czHTQkY}+Hng`V`K$tnOFo%<)A_uPt!<?i$dNQI;%0m5bk4yamYQ-+z;3| zU!0Y;@DtJH5R?=0P40+MIv*9py;^Nun$ygU0hFf=ybv;q%a@A}kuki{nf}CQ%R=Ge zZo<U>S$om|G6yZ4Z!cmdw%y_zWdAVtIx}bu7667lC_7V;t+^W>ApUHuFo=_D)BesY zVJi3J5fqDfVck+`mfV3Sp38$l0vfPb0{l}#M7~(sjnb667!KFP9RBa`Z#>(@N=sae zCZeKTic}ikp;gIjzEcNYxM4`h;U*9ml6{b~H-r4jbwUnLSs}YKaJvSs6#z@ilrwHH zIcAgv=S#JA*5T|I!-FGOb4}Q3Rjz>U2+IRvm-{C-4cf@KzvW><1X$NJ5dl?U5f+Qa zeG;CYjM)l3nUE&>0}oAqV~*0_&O4VPu+p*-cp8b>7iG$s&d6CZ&c-uXvV#Nt79)G1 zInv@H2F1K&2k>uve7rOLy@lpAk7*9LV}NnWO&TXi=>W#5W=<<?G1C~o*hA$)xJ90t z`kP`xUx#(U%n<9+Xwv@1t;uFW6Vkg{+Vk>Yc_K(kwvZH~?5q7H3?2<;i&808OqNP{ z#ax{+><3E&I3Sh6$<dI}4J#m_TPR*EpqPKxp_tVNXo$-OHWcI4JB?y?6Da22K=A@U z*8*1qel-pHK8zR5r*}4pRqVwtxlai3uTT~6d$|2r++$-7fk9B<Z<Z}A5==`^;ildo zZ%X$fof}<e%wC@{>%0ibiojoy7tJyn$aL>QO};ZGnu3Pa;(EIyY>3Krax8f}KS)NX zCxv*(`zoDV@wsy6MBf?KKmXhgPJqo<!~+a~DXx3qdXm4v2j+ngYS-W(%o9PdM}cI8 zAT1gedJgrdpg@5K`&f)Bqvrz|LXQ{2#^rkP?Du&$;-+B4wbcddkkLng$(AKvC@FX| z<%ddK_zOf+nB;xy3PSJ|a&RycFv$libp>zXw@)OsSWulr2XwC|FmnYa&1=XOt&3>@ zuZqHEQL>4lL*S)hfMyY0ZSlHp*qnwUMq?clqhX(stHwLzsPPW9(Rk++{EaTUMkHFn z&QtPqe4;QNw%dZS#kBOr_UTekmZl?l94ic@LExdXP!CYtS@k4h9?UZ5=-R3$#uGW% zz!#P_4y_}1=q2^TuB^{zSbb$#?F1)ottc7_)+0PArH>l~qDO&}*VDFs>*+5lUGlSO zF@rJYDcoiY2op~Cim)T10G7CLywccwLyJdyYZ!b43N7yfGq?j+v3$6c@DbTA0bNaf zv9DwReL0Qco7^-e-32ZW!MMW(6)6%ONqRX!S7f7Xa+#uOGVv{fSr&?BAC-h6yEMCA z0hu67ACG5bWCC2w1L(16F@}`AfwowqB}Vei-0*z!rf0ME5?1{mJd9b}++zP=Fx+o| zKQM2Z@W_JH{xdo@M(Y9CbTjurjjDfpN!2GowhzP>bgnk~U-xz142vpNkzPicBByYv zrydnc^V83P2i(`Lg-L5!jtx$fHGyhN2FQ!9C;&U!?UsUJ+^`Op2ALZE8^nJ@QsRwh zmYl5}bgEh8@}-V%HS795w*63bj{&a{4t|5OrvWAD&lbp`269M%uawtySvTR+gT3}; z_{cDxY2>9e=m-Q8QSCn6JtVm>0Wl9W&l1hu?m^88Z!mw0Z4ZU^IiF2i%S!fUA}*gN ztDf7_jMQsvG(-Ek4DA6^Qin0zoJz>Q!J4V@U=1do0iNKWs@gTN_{rUiP`l2Y{1F@N zdGcR4r%(Qi&Gx(-oL~M2d@v<*$p?WONeh?14>$Hklkm+?#|`=;2$bhgWjyT7cyQkz z7k-Y7V4BRElQ0pn5TL>nkD?PL8ySO&lqBUKmR1m57x-Ewz39peiW3k(sZB3>gTGl# zFQP_|C0t`b7bx{jxuarkMO`!HR=l&>harIhtsbzShIkNqH-1wIzZ+HOBnwhod%U*3 z;rheXH>6izuI38*cKOOdAC5lsVczH=tl!p<@@B|G=ye3&2fad+w8!g^)g#GF3S^qO zDECx3vEcJ}`w#Fd0q;*60M`$XrZ_)XKC&q6AcD2)kV!$O5zD9`!<~n?qzreaRKRT{ zrx7hvmk@PTO1@i?5D(+5r6MJi5VVcT^j&o9EcgX54VL8>$je1gu=rYB=(V`OYtUAe z*nTthSy=CO$MrB~J1cz5@V{6URx95)7!1?pb~4|ogyMN(sLrYqn{ZZ@GA*4|rO+Z- zm96$n4ZFJuOLr}-Z1_o(M`XFW<4>S6kAwY6dXkQjaY-4-5g~)b)Hyh!lodgPn4rQQ z)MM5d!75N&3PrCDIf?h9y}Zv4M7yKVYA?-$cdeEmNa6zGj(#gsvSv9exIrFe)9<+S zi{PA`eqw>y+l#fVj1Z?e^Epm)=5w6p%;$JExU|plTwMDc&zI-*b$MtW>7%I~-Wmk- zXgly&dmR?)Qv|>g@ddRf(kIv?y>T-@W*qY}LYVBquq<AQ?4ZKj*l`2*^~X;BbZBuG z;L*(2Tk@cMzF48XcfL49^7wGyUN0>ecy5Hu6pi|6@d4t#jK{ZEy0ra(m>2h_<RMQR zb?^o_ws28A!D8A99W$Xy;Z^oEhmJ`tGyLt^nZsZz3cfNOb4~ba?2vb45Zw;p{=#f2 z&$vnn>!2U;nlQ<f+@E-<+v1=HTgE(eLGe}IHMO?Q=<x~WdA+dWmcAi_>YGE5(25Df zDgZXq<`4!ARXRIsbjtZ(>n;J`9P&84CcV7ofQQ-KlWz_&>(P3Wxd@M&>8wjhXRXF% z036;btEk2pFmtC3T*a9Kw$sA#6@6H)9W&~yc`~kjH7C`O92?(GnxQL~i6TO|Ozb0+ z%fvrIxl9Zsl*_s3GnC5;3%Mzy@F%8Z(^LVGKpS=1&zdIay%ghG^4C`INvNI3JIV^_ z2rnck0v26BP-LcqHId|P5-#GgaJ3|POIJBwI~B9x3HD5p|0u<-@_<V+o)Nb?9rnX{ z#IA(F`l{7o=lsp84lC=u59cohrl+cb>02@ceNu}*k>4n)zjdNU>hC2~e;aO(H@EN~ z6tJ-Y`+?$%IqjqM+PcVEFJm~zs;YPTwj=s3RrO9ETTW{6>}nw7aB+7-($V}M2z|mp z)@bcyEqE|^ww7<*ENiqnm+-##<LO#0=0WwDf*+Jr*poN~-EeX+L5GCSYFFG{0#?Co z)~ue!YHAZMk@XJMP59Hrt0-;g<B{y9F6JkOGfu}R@EuCJLvq;ZQ}kp*tc44ar%!4B zMz4H5tOxPpZW@crZYl&dvYU0g>6h;Pw)G#fyHRk+Z{=6&ME6vsM}9W<$WLyy0dt^u zMh1h=Q4pVwU*JkR?biU?k+I{6{$_u8S${(nNbw?P=*c_a3_W=VoS`Rgf-`g}mzde) zj=4O;e#m(5dYd|TE}jlYAEhrPeRj1>hUFl^7SU-5HO;pJO!gPv=x&XQ>Iz<wNT}fX z-k4A)f=K9qm%?Q`V-k^2!IN^(JCTPalDFhxJCQJ#DNh;YF8;IrSev-_+x>~8ub27l zl^*%o+@pQcsAQXaa<P20O!!;gWi6Iz^Da}p(+M7=kL^Z2jBbH)c9e(-bCL*!1XZis zrB&m)9rxuhfTTXR8(`*Qb~*@IN*YKsDjEplJ<|Lm9#uHI@=+KN)2eiKr9x2=<{|5$ z2|*Dnglv_Qg4&y;U<zf>$~z)-T#W?+^`!=8cSH|IYMIy1pXX_HCx?=?jx2z0%nd8` z1AaW%$CDJY0&-w{06%gkDP60WtX1(U9V#(*WojK5kXuQMZ-+-uOQ~9N9g_!}i*|=w zRF=Rc>P@LlSS+$)iGSS0%3(V?39Bn-hp@kCa7Tf;f(_O)*NeLedS9vLc`VvRU{WpL zBeKH+G(mx6r9r1hV5QrgCY+NRkg{XB4x%Ku^HD1pp2^^n45hPC>M*9YiX=@(RTpgp z88$Q?2$tR+)gSEvM9HK>eQ+2Pzx;zdK?X?N%MPw6<FJ;IxITjZ-%GSWyQsZjw7`LO zU9K}lNv08RP8q+?<K5Lw-}(2A%4}hmVPBDF5bc}Uc00FVXw`PXP<dyYrSMMW?ZLde z6NjO(gn;v%(ERZMEBs0u=&_(yz3X#Tp58i8&(EN~aa^FXhf@b0D<=;_E()&{IdRda z4{$RH?aizXIIGSgs6B)sKnu~Agzc*`C>{s1=pY#Q7O*{3OBiJ2UBwbiHyFW{FaZRn z>|l;MbOI7}#DcLToY?b3U6Q-}H=8KNdC~weQK@_ij2s+08=u%TxFt>8W)lMa=MUy` zYfwral`8ITgd>?-FpLR!!Y2C?1}z)84+hiFI80l|c{o?(;W!3!KyYRQ7SHNs1O$VN z{_KBa0l&ThK5jn^{-`bs6L6DqPtBfN{`m6?R`7d0f9{2!d*6qLj#IbikGZTZ*YUwj zcf=1f9#4K4(;ab)E)UV=DZ0pYWU}KEPQ%X=pY)_BZ`soBbe{55ZVx>D>Cdog;3x(D z9FU5;y_aeNqup!BT4A<**J}Mg53jeE!e$`#AH-_i*ZDe_UkZ#a7X8_A0n)>sdw&A^ z8Ww)>wYbo0ae>zqChZL`?&>C}+~6Zr+A0`36sHszF_y#=G5PSU2?RgTE!7tU7k6u9 zyg?PlI&zj%$eV?SLQmDqA8V`%F8Y_1e5jIY&!v?_iZ-igo;!d%kHyy4EF`E{C6~Z7 z1m{4j`3h~_=d$+tFdB4${Rw<s=T-9Rj0BHbawfBn3t-@b^BS?sQSuk`I;ndwF6egw zvnIGx4S|A=_BU7<P>CyDyhyE*|DUl0k$Yh2Z{-;CeW_`eHSplq>;as%+7Sjv{D{2> zu1}r+S!y?H?mlK!K8p={b%(=h^n3G|T~GK`jk%~Nz><(4g5;4P>LQh=Ln#Dk@LLRU z9*T@0dPb#x16a6bD5bL^rT9VbuGe1PSb>V4Ey@}h!4;_3)fom@pozZ;9NLrPQ`H9_ z-GN{5NzE~Rb07CTwZ={xcv)*q*{Rf-PdCKlgx|sEq1ZLQ!oN|)?>@K^k<OdHnA_!k zg>SnMNq%8>*x3kIf@VwP_Le+Iw;i5_uNbuaU59qw=K%3*&bRRF-~^mH@UjU@RKU_4 z7X4thQn@A^ZaSje8d^V35wNk(h2jEVOAbj&MqFc_Dga+o0l0H)0Ji!IuO`4-0Gvo% z0Jt(B2MP}@??G`<mWSd>Sq|tE>fPR7Ajc&EZM5eH;`$U^Tdr7U1Mkkmyu$Ln*fmkY z|DPe`UQAe-7p|2&7k0fPGdXh|nQ=~zLzi&v(52TMy162B=(1Z@Bd@POcv=C%9parA z5JHt^BB`V)<@h6E)t4k!2cO?LdYgo^KNo|)WdOZ$lX7e`{wQy-a4b4FBruTu>xnoc zDlb81t^^!pxU+5(V+gjjUHilAv~NVKv<44hQ({~9AFWST@Bd=uzHZR%f!&0x)Vfj{ zm+G@{Gc#^**OiKmoVu#Lhj?R=A^Ov#>#DHFDICI4@YT=eDRRF0NPHl1Fn#|{BOXi_ zJ0Y<ZSU^7<ALHigy+Cg-gudlkp25s@;WMk}x?ifm%ugR9n2AuhqO4FZYmMN;R9(2o zQcF`87zVhRKfxBg@y?WQJhiI-;K6IS4MWB07_nzn(lywKshRpFDM&GUZttUS5Z~L5 zU+9CO>eLt4DL1H=IPy0#0$!sG_cfaiJ5hC<m=>8xb=LRKZfDuaQrA9YvWM7*=)7Sn z);@Vd@M!V{Q~u4c4$EaT?#KHIH3dslm??N-ayHO%mh%F1@~u47pPB>nA*<ToA^slp zvxGJS`0WhfzZrnam^ad(ngyN}7o*5NX#WF&-+-MuMd#Q*^5z8Sq~1HGBMFqn9-kVA ziWAv9yT}SW{x0eaT<Ze3&ZG)lL$QVw79IY8y(->LsxM22aFNsthxE1!hj`m%Lx>Uz zE_}Np8or;=_8Jpj2n2}l&N-WhzR<?eDRSZuPK?q9wLRS`%FX@JN+pMD2uO29o1R2f z`es5oMjc|XOAIMkZl*_~Mp_#rSz$;QY~!)Q9>a#V0H(8&aP`wX5VuI~*(cU_hrd~k z^{I~UQoVyR))QHQ!3Hjr$?x1(CWEM_fN!iYHnRnm+niTvqttNc!loD6a?fohD{YeZ zD5(VwqESL_dQoobM!os9F`9DIvfu4hxv7s%&Kx45r>P++cX>%}*W-yPw=)Kn+g+O5 zd4CG~vcKt)?&P8J-1dq}TRKX5RY82mRlMBpb-A6xI;545-*|m~qZq2KBbZ~Bsc0s0 zj@cfMOvTiPFP!6-shE25S<POhh5Ny)wDv!VR|)>4-x`P?_=R;|T-qP&&LcRD;4?xr z7zvI{Z-kEs9-^8WzE6f<D0zm$HT0}!JsU*pULnLxD#3=yl2>ReUT@b__5Jcd@(N+` zl#fQ+)lJ{=$>(=y5K;Y=nvXxtvrNYYof-TLSTKYr|Awik_u<;XA_I$?X1EdJ(Of(i zCl`-7aoE_knI(F4f<GQ|7Y~~GV*#G?$5S(MH~U0hnHS_?xF_b<Y#0J}-s(dBHHFx- z$qOK34eCY+EDn`lh4PpDHy9qlvt0*}u2drY-js$26|8WNKAj3+7iGZQflm)i*?|uy z15w`VHJSF^Tj9&u@4lP`_n<5^t^UfKn>yQ(cCdm)mQnD8wWOY@fx?c#?7^E<?ciuW zjOKu6b;}RaLb#H8fSv!$xb-u{VqqE2K(}tKlJ9_ys;A>VUF{pz0*npoP%wyjimGWS zj|mR}08OEGe3}WOSchO4ni7Rj{R!Ql%5RwlF3qTR7yPdn4X{A9X@47I!klIWjBKK( z34YABjGf-erkx~;>G317|7}JgGDqsj^70JQ_cxw2fL+_aY#=oNl9lk-Z?vgmm8n*C zOFbFP7&eIviz^vcs5Pp4PP01*9=9Fh*EaL_!En;zWU%M6B>N7ITbo#;c!B&8GKt$7 zG;qxkCWC<kiB(CQhgm?Jhw(vOGu{DGQ$ZAJnK5@THY$;sy%`~|HEokM*+`oF|D<gp z*QTi_6E;X`;T|jqilyO$c8je#OPUArg9(B5^p!J}49i{QtVnHH#=MgMh24muwRzy+ z6VwYm8N>}*&v07||CntGQ8yENk2hfOeY+{o1HBe{&zi}BEX$eIxOK0IC87ebEh`+V z4yGFV?vwCYxjBf(F7Xd~!b%Veo#SsTrUU*v5m?}y^J4TbqUhPa81Hai;vLQlU|k5^ z33HR?FLDkm!N<4c$-3Mo%PIlTSi}rq;}n+iNf-yp#_{VQx-}|BW3CpPjrnFTKDhzX z_xmSwJ|6d2MNT-7-Hopu2v|vvxK1uQj-A)>oOD@ypR`$gpLi&~@3@!?+z=PV_X8gl z1@X@^J}xtSut-4=Z?_?;+k~;Gd>tqVvq#btmtjhmd_q0@!a*-aY!XB`Llq~a0=2Cs zg`gvq#EO-RPbG|!m#UqA{Fm_YhdYf{!X4IX+IC^nRsAq~b6Vg{*}0FrPxr_g&MAYn z@`^;4Q#J-x*3wRYtRZzjN1@I2t|kuwko!6XeFHWgUch)N#@h86m9BPd>|?Cm;BQuq zHFgJur!G2d$Z|cx>Bk)<S!Z}(hQalH+hQMd;qCU@b#C|Pm3AkIb}>Po_LV&Pm9`(K zw4I2yDW#14mizo*Zs*06<Yq|g+hKKEEW`St+|D&_rTL|`AGoo#l-qrz(#|%giwFyN zEyMZI+|J>oe?aRx@i5}4-0qg#&f&C-dc2#~y~FA`aT(T+=e9nNN^I*HW7+b)HMjBp ztgIM#=YH~Byiadnuu^tyzO~%#C-Wy<wp;2u*b~K5ue`=MkTFBD?3L4y&*Bl3Kaju{ z%ugG-hgzd@bgQ~DZFLk35HryYX3CGE<OsTwvkG1)FHEh%ZZgmr{86_NikrC;N+qD4 zrtUXrE>-HOI@*Cg*)j!IDE>f3Q;!G0C?KsApXH3+uU6Wb2Oy5Ushg6oRoa;4Pbvy& z;Z#)V@9UMeW$XVN`HiCWU&n!tne}hh)A6<bQy<6O`cFMotp9I48`l5-e@=aK%g@_C zcsj0X4&X;#4ra^X1S8+q$xL`lnUTi>J3E;KuS}W9lR-_eg7>4~{&+O9V~`%R`Eid^ zEwIy`$n=;eZ)vyN$dCEur=|RuXFVG~Op$r+^Pd0fFL>d$7rhuiFL~*2{N~GEw*9w$ z`{lp$yTAAQJ9g~&ga7h}|IZ)&(I5ZuAOF{#JOA6C{K<d+AOG`z{l90t;!pqdf1i2g zS!bVfPPg$&{5!X?3;%XE&cnYwjq~wuvT*_aUD&t?|1NI4s_|<4y9EEH@b6OnyR30J z{$0^{P2;tV*ERMwu57%%@rK45@$XHIs~T^{zv;$X@b9gSw>7SAyuI;fjcXb+jd$SR zI~(u9ziS)&8rS*1cQ^Jou5Y}jaRdInxA8vwdw=84@o%>AfyRxE4>oRUe5mo^#z*jP zuJKX)ySZ@-{(Y<gF6(Zf>1NdpG*xl~eS+_|rw1c$gY2NausaH8N=WUSA2hkJFbHPO z8fEOKClbPX(6=-oW9lOz%v-!!k14<o49cjvvWdGN#a;EWIB0gzK@<X)g7^{ifg>yB zIgql<w6zcOBRXmjb#oBlEkqDlFZ@G#%s!T^kJqw~o76LP)d^gE5LY?wHw=fvFk^lX zz@r=WVr#`&8-}guDU)D6z?+ipO8}I{(?R}*6WYwpxj}pxSWLmMz1@UnXOj2?fNo3@ zi<E)ThqK3Qj!HaZOvL*VGpxGZE0P~9q8oFeU38Iqm{g6uys&1jXQdO2&=b&*no*LK z^{6*xK-~{EOL|ByEr<3Xey7|-PzQUT7ql>@TzjDoH0M2<|LCA6l44#*Y|>48Sz<M9 z%Gf~*WG;Ci^U$D0ZztVp1jp6d_D10U{e%fL+E;ZC%($@LAJ=aB&BnExehDQs{X((W zSU{?qd<UW(O}=nz$lSA(4l~V+)`a{_0n-_=9$kFjVFm%Kk7t<E)x~U|8;st7qM3jo zjSTc&>gsK|D-SBaNA3F{j1(aQmIjWr$%DR&dfuHtbDoAZ$AbI-;;zo)Typ}oS=O}H zY7NVCbsZsG+gfwhhPAC#Vg*-lneMZJ^Q?DP3txK{kBsNpmy?awT8x}0X7g}U<n9c# z)}6KC1RR#r8sCNU=24R!#D#C3HNm9{zh4(smRl#B$+PHNIHe1LeLE`nk?7}I>nEn3 z$Q`O8_Sy<!-^DouLXHw)WrFYaA$TH+-=EZh(lmQGV1}M>vNRBga)G0Mi0WlT*E=|j zH8k#5wnl};Dc+vpZRUdkBkO=;dgjMlCm`%P&>Hu`=4*i*OXGSKn_OcEfxAwwJ)oFw zdb;@NZ=ln4ip#zSVa{&2#)3+@zG7)`ZAEEZt}UKc=1sV~&;`n@13GZTF$dB)%QTY7 z1ni&#3)_gxZxYXyT4ZZ6_$Q&-D+Z;d889kEApm2F0*iYa1ntDAZ^%>ZSqgvFFkuvP zJlEI&vDE$o1JPGw`T+y217Z6@q7FAnap-AL-0vV<GiRep7vBrUZqKKPO5JrlknRlJ z4AF-(M9z`lMxqN}E<7VBg;3zovKxVGa$z{m#Y2=6^;Uxm(;*KT`k`Zos9Pi)!OjFj zmG<W{7|vAQVzfWgFhyX|H+CQkg&RM5zgHlQAcs2E3tSwG=^}~XdNJ%SXTix1BMav9 zn9=aM?TrSSZ@jT&Z)A+#oQHD9COOsLY#1d`5N$*Uz#v+XSnM~Q7Kt;&ru?Q8qB-ii zZW?2CLRY}4bYCHjyovO)0#|>}t2d%2@z6=5m_vS(7>ki}24YlPOffUWSR~?Lg44os zOjZ0EpUmU*iVtsSP;~<QKqdxC9p^^`;PoPnaMn3!Kj4!qjc9<zg(7&ko(Vh?L|l9K z=1wlYPf&~R_kx=??kvXlePYx1V`3{?B0rPI=kDdbHjnOK=F$-P>pZvD^^CD==>Hdv z@wNU0GDUEnWucF5y2LDV{Pq+}12_y$gt<)fz<G<gB2r=wId4JrL`J+rM8rFokjl!x zEsyU~a~HqHA%!pmMEgyj{T|0~xj&f|JDNkDyu}V|DErf05-bPFdW;a2_;a?IPM0eW zAZCOEz?*4l`i!Qf=`%WS6wyx1^b2_aU$ljGnehy<K~^s0XTb%V%!lMDBbPQ-wZF^p zOyR{iR^_XVpx{P%jnqi!ujC$`OI>0;2KPQ5DvgWWP+UGs_+LeErJ<~Y-U6XE4qXJl zPH2rw`bzRb9Iu2x9@PndxHy52Ts_&@Xn%v_z6kKI<V{nLxqeTO+VpKcy^!6UKnFhr zzC^qhHtiZ6mv(`$=1n2-$0epdMF`Iqgf8=M<()lxS+X4yLxIfPbtqdTH;Vpw{tluj z6H8EXnc6L*#}c9Ka8z6JlJ^w!V7C(c$p7N_y$|F*k07S&@h=>k=d6}$M?vOe^KaUT zK@G)rn5JbV84wWnllgz2iN<CAc@>!tBln+(@Li<KV!q!J@19G{)tkA>2YjWTYYvU? ze2n<+8oq(J1H?CGcrK7g<Z{JPb&%|Ar$zPs46W+}=U`zRl{)Yv!hE*Y6L`@9$M`gX z0G|r~b@I0}c3J}BhZzW8XJ-Kjxq0z59vozr`~G9A45W}A*(JJhj$`zI>&3ud$P5oj z9>y;FaUO{)1OHp-Ea?J7QbiXa#wxl1(WeC`F~0<pSGvHz5$CTEk`5^|e8ll2d`-Kh z1$;@^z!FZ)u|1(<hi+&Oz!`Lo;27riO{Ag!#bcR>aFYcewR`A>;f6z;(V%{kRG^2_ zDWp(&y@rP2Ox;c1On<vxnOqsJRs7FhrGiGQ(mnr&C=9?Q!Qo_`rjc+ES)oew5j5$2 zhbg@eGVr}d8NTx}d@eQryRbf`dD(C4@598?p9FjdiZ}v1iE13a{U!L)`z{F6`wm}v zAMkN}i7YqUb$UO@w4$P(p9kTp&3`KlV%j3b7jh6gIfzn7*hp{^N`T}($&>+CCRhc( z<PzoGIjRX2WoC$66@+Nfm7o-2BPgg$HSrEH5btpGhS@wj7vzEY?EKf51&^qth|bP} z(Evyz57}vCDthrb@VHUha8rp8UX*)wW#o@m8J+&27Su@lQsVQ!ASO03Oo|?sn7y1g z{{S%RVA4@2?>u)oN!ckr-oeMjrmw<3=gr^OxQdh&5EGAquQDEwwEA9~N8zjQ_j*?! z7T^2W{qM4SGUNhWH}Jvl2rfLD4|sf4ro33fr@{CHIL6caj`8%qQ+;xdao*WJ#=hCE z)B8d7zDzQ4T$u;wRR8iKaVLHLO&rH>7YDdx%ldjg_$_;Iz-iwX!IBU$jg67cU=2I} zaoYSF^WdEFw`*{~j%-c@XDuP-Iu7DD-31<c>j4Oe_FMVnr6mRAYTkSa#$2y|yoHZn z%*PzC`zhYVn=c}sc(dwL>|J?1-qM&<5<w7<6F^1(za|gam)tfDx#x6h`m2F}N`}Ww zZtN~|G_EbZ^-h1Yn&I(6bl2|VCJx}8`YXWi%l&(_@z;s4Qo)evYQ?VoxuF*fd0t>T zEdlRzscbR5C%5(Vhv)QbTM^9f&21fE?d3f(!0*ou9boP0O}+*Pw$kATay#$vnE-aI z$UVCxH0EiFd*aAUJ0zPEP8;P$KK_+eZN0|5s3gZE9lhTQo0zNgYsr_vJNv<VOQoIi zB@-EYy9y<IqS8*M1SMxC+gab4m3=a|@rmR<Q#qcKUM&l#5G49cZsYi5_Mx1usg32Y z=6-I=ZM+|z6@-&XDHR4K!I(J4R73Fxo-)s>LP>xva0)iB(uP-N=V=B?Yon{XP#~Zd z^s<H|bzMeGMoX6wdxKqUbQxgR8UDY_@H>kj5Ud_a6=Z~e!m%h-1&&7XFgO^+!a+3B zk?C&BI`S>lvvGV7eQu-epK^5Aps5$#uXR41w3aOh9l48dFH1)b>f*@4o8zOJEHC55 zJSvycO!N!48*2D~_U|BQc1|q@Syqu3L*;Z~>_nNoYw3MQbb8-GO7BA$S5)M0X7F4T z+4j@Dn&(-QrRNb%j}!rF5`5xG?6}@rf^Rmioe&md;)4+4xx<&<cV%HQ2*;I$^!-p4 zDk}2rc@VBFJVKOXgP1WD`8!0i5*te@GTpeQ6FW`$r7OOqI^LO~dOYM&2N03Xd??YT zss`koseWo*yu;DQI~;j=Iea@0%4f!NEp1frT7q)E#6dlDReKj_2>V4xixF|<Wp5-8 zpjQa#UA_A1LAJ%lOTG5sSnn}eoZK=<|CB*;uJqs_in(GtU~9h(Gq3J{&TXALJuuqN z1VK1Kb?rL0{eGpb3L0uwN^L9a?}xdq!>lcrM;3)Y&JA4@-d_O6f_Gpm9sX->=N+<= zF%O3Z{j3lh{%c~M$&8wqF-*)@kq`eHAFp54)@%0^B`=5ZwZ-qa?U0B`tEL}Pcb}V# zcb^a)-&)t!S7@G)J-Mxq@$SpQ%>|Wqwn;J8gv06_EBAMCrJZe5j4cFgR~EaM<TgG& z+o4!&Q{G~DX{C*AO$^5+`>~|K4BO?ojpM=!L`8g)ZOWqhHMxz$W(kQU+Nv<Ry}6zD zWl4!8{8iMmH&oh{6B4h=Zxj;}>lEf=mXK&^EXOw?G4*lW6B1KTJ~Mec;!j!RYR!L= z?TF1S#eYcIJ7-{k`Fi-_F+8krrQ)?HU%O^4OI-Z|&SJn(49M40Z7biV$YedG>-ia; zethR6PeDDaN8#*Frt3Za@u+6?M5gL-$Kq3-;>midX7wy2>OJSVNYs1&uY;j^&f1}x zf>wJ=Icu`>4wVa9aq|$({zB>+FQSgUbn3X!w(+=7js^1^=pSQ{R2zz3KyF8sfR>Bc zt_(uHlkPm<-kF2;%9^{{<|FG*6|it*Cv;5~OIOt&W~V*Z8ceIR{i#q1`k`XVRuJQq z6Z{;j?!g|!H`Jab+_qYKL`(3pHd^v!UX<I@Eqel5z$k=68hQ;J3Os+3+X>l^DcN1- zX7e_SGWFi}(ew6PGsR;ju~~DdWrd~gg?2OnaZNpiJEoqos;yoAPe<!gsSxQwLxs|k zJ2^YlqRJ}B>$_>fy|f8G7a<R`3MSnuKsj7I<0tSrns%n?VMg|PT@OwuHxa3X5@aSP z#E#TtzMo7<-kn$h6b-jozv!tzISy5=R<D0+2F$D1KUIK%{lmgd)$5tUr5Z>%jZV?d zwq_zZewf)NE3u|}{WZBKuU>CQ&{|I#v(-RDrr>nS6jTkgP|~6X8Y-o^E?-Ct1YNs% zB}5jELNtVO&T+Woh7sSuCI`PAOA8}v8u)1qpEmHv_yut`%gdrz3sJ?%wQUe)$OLF^ zBuvNkM!Y97b3myo<2qTJZX~#m*JFOg29f*WKIJU9ugiFxw3xbW;G5F|n$c?Kc2sTH zJ9XfXCz@9BW;5nBys2(SDvIWXhAede-o;4AK~WZK;QmHnZ)gum3f6>~ub|5zhTvBy zwrP1f+#iK{M8IAc2~;F%;%_(PVR-z_x6rBlH=JH6T=@R{rb|QCH^Rs|&D|Dj)wCfG zpm=r{_ho^S-k2z9Uc0OLmQRW52gkf>BQ_Q!niWW^g~N%#WQm8=jN=g^^<D<^gBeVZ zYH|-?UN8I`R6<WF47RlN<p`Jtweq9$UbAk__c<e5&Nj#RK4&-%R3~SqIRSsc#Ok*8 z$<Q+IaRCMDGbc(`cOp<H*qIW+CIWSWO$6!$I~VVVRa>FY4`n=@A6o>4K`c*^D3<47 zTl;g&X74>Is2d$Po+sm)g8_=B;@ZvhqZ&}O#b7G?a&OLX?=iRuo~=wy8eoUy9VpD8 zC+S$2iITS!-`53ZA<1M;4`g!tP;Frqljs~>8hr@z`~@F-|F874UncgFcgx8kP4`B_ z_FRm}$-!qkg{u?xgB%h)1^;q_%IoCg8P6WBez@=)s1=?Ui+GOwH7pg!R6uofc<#x1 z_!PZt+~HXtbdYy}8$IP**{P%x?INdRq81FyaL;5R_;;AO3clm>WRb#*q}wu*TrZc) zA`>96L~3K4G{^4&D+#Tun+2?q7puO4IQkSzYtpDc%l69~=jYuKv<I1iuMc}_)!s%= zYE?)+uEmg!T!%3qq@rLxq#zq*9@ZD~u-sSrKwuM6sl@*d%lGg;_@j!VO?y4Zu1kKN zL5#=9L4XQ1(pn|A#R1MVJuf4z)!0VNEGGW<y!#+gdrT9n+EWvHW36ud3!BK{LSa7z ztZ<9(G=IlXIdL&mq9Z1h=#Z^G)*4}A&<M0yGJL*(qvDwj1R&S)A<!+60N<|U=wQM% zaTmDe%8O3Hw^EG)tvJ+blM$fRR(2(PIb+*b8jp?!3&l8??MMw*iG}xH)&3qw%p)<R zF;H9V)u-C39D<{%R^Y$@>HtEmPP)H05I00u-3lz09?!f^rKQ72vto<ryX=T1v0@Pg z;;L&IAZQUaJI!4i20M2&cF{^v))=?OHalnSD#(Acky<9PvFD`Ew(D<Yq_{Q#S5<9L z?r;6gYEX{OD#H_iXzU8eR837DrGTY#_AV(9R=yWfq!J@MSOEuTJ=cQs_kF?9zTG~e zCDCXfM)Oa(e`hr2q7s=nae32<%kZCb+a6a{P%hh<J1KL3?^oKGtE%XB8Y^j5Kg?|$ zMsrmG#_3Sz`oZ|)+_uMMRfN%2SBCK?xsCT{?y6Ys?5o`7-z#m(uBtoo8%0-DoknoX zTvew19$!~g>f^Y(s!~rrE7?_b7Y>9nQ!}H8hbbJZ1EJEl9W{69K&bSw<s1n0zV-0k z4gZ|`?%<_+#Q?l?I4he6i|DZIQT*tj?ATZfPu<<_e)qfI1Fkw9nrcPpTN4u#@Y9`y zb5r4|dk9L;KlGv8TFct=Dm~B5wJ1H0&9!va6$;ODV=XGrKb^&~-9NX!x~25$l6#K6 zr1svTdyYbMU*|UHsj1#P3%I*k;hqe*@1zsP6DWktV4)b3V~wsR-SOj2=pK89-J7E^ zn>KRnXmn&d?YHx-M)4lYN{IuSRRx`AP&-Un@u}BO)d}?hdP=9PBwW}{V|C9IKakAR zW@ngnfuz2$)Du3%lxlRmqgOiEWoDwU%HJ*2ed;xbp)0vLjN~}+RA5VgQYla`sNK+^ zLr?n2Q#9iJJqMZdP%wF>!nd)XrH#UcIH!*+#4VMQxF=d5{UNy!Spt5Gf7x(3O<eLe zJyfPnI;x2Z&LA8~R5dAGw`cDmy>Co-aPQ#;Tt0DCTLn{DY`S+=Ofna}hg*qv>XK#Q zGM#bhbHvZ3Ig*L8-BjPL$$5ycQRm#*nT~3}=3;<fOS&6<bzam7<CzK9BAu*!#C!{V zK>8&`UWmU8Ve%@>g&1}-(j#Fhm2n}SQ<((<)B99tg-|D^FeAM|Ca1S&6u4Jmvni=? z?(qxTF=OAPYWYi=Avlr3C3>=M`du16aEY>5(4+ggM6b(Txl7a>Iluv^HMvCTV^a=B zrs?*nxOZx=OOy_=Q;5qNm*@?-CwGZj!E5WuU7}rcWX&W;)+8NSv81PX0aCzQjzX~{ zs~O0;%857%4pAo(xI3SnCf+ht=8<(R>fn*53fw0<k0cPfI!PeNfd)@N<I|s}cO!x0 zdU4o%`YW?Ln-Q_wd@m<gW>>B*)|UPcf#^dSq6-b8O%;d~Q?ZIqWbhnm(no{iC-%>$ z%maf6fFP;a_TA&1ko$qPnCiU~H<Qwth@jcEBg#I<dnb|7O!%Zp5p0;b9#FOll2btd z*?y6KLn#U+!A2shGhRNGk>nZ<YDw1`FQ4%@tG3hxA+E<rFZ%)h05rH!W(o_re^&{a z>(GP9zaUmvxTzkIpXXy5umwcQ(xugUrx7W;*KOP$4WS<*zmf;yh+N+Xk$=?}k*XGT zClUEKxqn9_&Db79-cC%N&=--5d`#1^fJl`_Uw3qfypsd?yUGAq8mbh8C{fRMD{WSx zP0yhJnWJKkLp}9qXB3YG)S$OzUy|&_<t)Q(hhYd6^2f_P<o~0}0LnJ!Px2c@o3oDp z$mYBYc9hAd<6}pqZyyUgDt&A@cGRu+fE{&g57upNIov<kM2{aBXxLA`s>(c!tEaB= zCMzrSNJcE&sKJ?Wm3qn7maG~Ej@k=Fs|NBPT<<$!)nwgKN)`h03NO-3QQjxENYI!m z^5os!)Qiv7sp!ShVfUE3&OE7X3#k${V)jGEAYQjWsX4PQQV)dkz=&SbKrEWKuY+c; zTL|b}D>*fz-cnYmFUUZ8tj=ORZjfNGY_fxy4i>C~!b3~NRem_gfh8zAyyrQUJH1c= z3rAYcX(&hn00v2E^<I==@BpY~e|nKTM9a);s#*lZA2eEvu~K{Wq{>4*R$@}s%j11@ z?#qp_lUH>x2=32RH9cyn42ED>K2+eK*T7h82#>PR_&0UIPGh2}6ZcTMQlDFl$>N~( zd7m9>jJRHk=hPZ;eJHM7bL@sD>6&AT{<-Fu-gm<xy&r~yH^@4|rFrOXI1pA)eT@nR zfH<}EjT1aDa4ZDOvBm(ql&Q4{EcjZGo_rr5F4fFDqs2gX5V<A19s(&Dp*U4_(SsAD zW#5)3>opl-pDYWKp!+==lvECJlja5+;tbK6M;>e|9T4fikRLRIH4vLrjzhrvtkZ;% zzQ?g4xUVm<9U6&x^|JZxSshin8s7B`3MQ6VkOV_ekOVX_DFp5$OlNT8l0JdI^xLqj zFi7m!^CeXxU9*G3+#s>UY9gT&i6q|XLm;u|u0$VsJ8d^8knzV#Q26zEE?#G5Krw`} zgXc~%hY10chvJtVDLzeagVm-r)X|(~%~7mi6?1qnu9;jbGB7IH$@qy-gw`n4t(lmy za1larozc8~JYgzE&ZQL?DPt<$;c|+1fT>D8{Z)CKets81J(xm+&Q8Z-4iHu4v`R3K zL0?#ou}=8>XxTt|-`T*ym=tFNiEa2S&%|?Q1L2E`SuTfDr}OZ<Z1KG?j)I`$1w{%5 zQ3=t!B{z17hQ_s4&fEOWs+9wEz8}vqG&`Ggwpn(jy*-2A6-1TvoK7i3vkK{6liPUY z!;+nY47{r{s@{>CxhY_|&Y0Dyz<M7j-<6v>lqr@J%aAP%fXt!y<z_u$q$2?O?%d1) zwMbH_nUhlP?)u!Wry6T46(3xs-3^s?N`5ZR0jILk?tPVZvJR4?82we|?$0Z2%9{O+ z`HiAxUnka%Sv1LXv#jD{&r+j3t}2UAIyViruyo))G~s0R`H}O9KX3>1y=v7-4djh( z8XTus!0*w@QrqSFANug6hCZwb4o!_SrpCaCR*;`c34ub=9<LMTNmt~In)t|6a8d5b zsV7I1E?x<xfAAOvPoUI4c3?n(4ogQ?1yKYsSFPrWyG%&tp}WXPR!Z_cap3N~rQze~ z6yVr2`ieIH-jX&C-%F#tn2*<<RGi^%K$gqxz3GOeHq{(yG$x3)LL8BR&(KkS#4+n@ z+bvnP)Dg9p1n-!D+JP!!JZ9s*=(*(FwpFMu@+o?!lQgopD$Yh4j61mb$)w{5h|@_m zMJG2u-m;<*RC^?vIOphv)6Hl_C=I@*Cxd|zhFI?unHYA`16%~9cQ@Me#Qa<Y?Tv4_ z2%5I*Jf=&!X-t0317(hY#{aiUU1Q-s`H669g*{6Wm7>f<suZeihH-dq+Ydpb6U`Yp zZKo|V1|or=nSqB}mIDllHf1&v3OKDWWt6*32R|!-N*bh^+?dfe;}yS9naafAfV7I< zFr5eK6UPtaiR&PeqJ;_wgdyA*(i<~Wv4dCB_)C)|!_Q_1<Xp3|hoFQrkwywQ4;!Gb zM<?`98D>o-p^i~DR%D`BFbWbGQ){K82T%%zpaa1W0EO{+y5w>_7`<9N2Iw!R#MSFE za-7GEv0t0$UV&fsY+j$6x{#uqsoK=hl)AhjxAQK^C@YYfIL@^C{z|jV4c|WkZn)x3 zazk*wdy@0j9S;S#`f#?{5@(b4bSQJSX(0l0WLmZ#C&IIKloyl?Wft|-x**Ea0w*)5 zNl4z^P2IXZt{VC|{D<V*L9VU#2tErkZ+1qhvkz&*C4+vpS(ycW=_hSU)(s#r-?aW= z+^0UIwK)yghY6L#PA*MPDXRa9NV(0y_I-hcZMO-8O~u_}JFFSAutn9~WF?67VJN_O zNZidipL3@o_thdz?>W~??~&`pVmLg<%em__!4j2?7Wsj-cGblh*=|?a@g5qSpMkRu zIFL%mx#OUBB<9#_mwO11^TXE=32hVEtj&+|C^ZbkzSg?}o!{p*F_l5|C1|U+C{xP8 z^viM^S7mM4+Iy)kjLVYT*A=<l;g)Ts-D@lD^1A)U`(xdX-pO^_+;Tksfh+vJbA=W7 zLE;CJK2TAe%8>8PitSmE^Z|FL{p7>s==6M8;V?Pu&En>)C!B`OSx>^|ES6D!Di51- zkLYYo>F}FMoQAm%?b*RX<!}}r><NcK#TS`%hn@=o^DRaQo<<%EDg`Up!#@@V)1zNT zqCsri@%4)A0B+#n-l?aihUwN*(yhjsohMJ)ch3Zm=`_wacIQRF6>&ixgNS(%HO#3U zX@eD$8Q3nByKyG45TcIi51#veOJfAMUX15qg~v6S0iOH5&Q$O6P&{`Ps2fWo%<xIO zk?H(Z-Gp#=#t~K^yk?QEC`x%cS$K4nq<kgMlq{D!dBhJLJ&NM-EN}7KgQh2{4x=YM zEJ0O3BD9z$E1WSOdIb8z2veVj!A3_oX3RC-8f~<>GYng3#)_xE()q{DE;{@b`M$mT zp{bQ|PYWt8iKl;=q=LE*q^Bvk*izn5&&7<MIB%M!Cob49pY%+F>ZHdUEV0J=fM=Wb zTuc_fs6y+b{&_x0(R9^hXIi9a2ZhTqa%hkz0ce(=D5m{Vt9lesTbuPuHImT*A%1d5 zW7ladN`rs`j0Hf%4+`f!*zW2Pu+5|mxWjv}{czl4A%uEt)BpA`K6Pv>vU@Ua0NYG0 zPPpm0IH)I%4joY(G|VT&w$m_t!MqXJ-e3G;&jk+q3VR-sk!=Foe3Gy|%L^r;!lS!q zgE)%U-nxx+;?DRfea&aJ=VC@rf=>9gfQ?TGd0O6k{f6-ab+usYK@orMa%hmsAbhD{ zP~E_{V31fAb;8^dwDfc_nfqr~sK7QcgbCG>Lc^~2xxgnuZoC)xJw%lsP|h=F94n5y z%RK)b`9bB=2X4rW!yN<21W^$St@$WQ4bru!D<VmADU!74UCjlC4)R7^?ANkVGl#Q~ zK|=^rGqO=zjG3d&X23j>#PC9I6b0-QmK>FnWEf#>?Ca3TNcilzSkMy(hknU~Ha<z9 zD<WnPK|8WJ*K+$bN$4R){CkVN^jy&5Np2|FLKy81@0AaGs0b>nPnh2D4lU^YN%r?( z>+cW@*EFi0i>ch7NQS*hi6vIIf_SXl-@eYIcO{#6N01MjJN`vBXucgZ@Z|Hst3d^P z1Ql7SQ1KowF=QW-#GrVu-;f*xk?W{A$f0CLeK61J#a8xLC%ofp7*Oxmu=snwwov)n zO_i@PpyL!!{91w59JCC)+!VS04C{yT*I#Y0o`kPc330<?j+3J>4{ukM0%+9&B7gED z`IBx6O^8Qe{NO={hZw@lUvP-4`1ol4yhF^O3h}YjJ6BbFET!)K>-#I%zPa-C``2Sz z3(#S8bjRp2DsIVNyU4K1AWzNQ)qE{RlfU+{%Gc=U;#~3nwivVrH8YG^P(59yiDPUU zT(6ij8kq0C7)3M#50A{DP_^-b{Zgef3oS$U@eG~s&SDU#NBKp-9qh6$O7e-^*f}&B z*G5U^{mp8W<lgA6UKs?&Gi%a1hR3W#wV%omxbY>|T20GJp^?wzrfz?k+aP3w_vi|A z#@Od_yPg<Jsa>VNh1|~jvmi^T3hb{uJ727{vFJ+7sKZ#%x&N}#&KwJe>+36(HZsJM z6!N|f+Bh>lzLwiLKH%gw);vH;@^+O1F@KZWIX)Cyac<wg-8U=kEVeTD!NM7No&D7c zhqvd3UL~m<VEImdqZnYRGgXdRfW=gn;~QW}eH`}yOX|s|wBVY!@6XIN0oTK`2IP?R z(lA~aW;L7-bUk3ViTzk@7|*k6wc-SO>@$Ja;o*;Xgi6BvB6gX8zTLqvUvotL$4U+c z)&^|PHwzAiIp{7uN5&#6hBg8D)?$;61Zh{WBy+B|l-@(0jkOZuU1p^k%8|fZkLJp= zZ-pZPCSK8z&^04KxyHz37mr=y3G8$v(EG;BEq-Icbj-9455%=Q5*FiHLK#MLT)QJ- zDXuq~3VA55PqFK6nU7rDO?dNsaDoE79m!8Xzv&||@OnQ1V^y>ug+3qsE!2)^ILcf- zR5;vP#v{Bs%kmRoGR#jvs~@&WkLAj(BpcC1z2(aNDAd)%a(yDMU6-Dgk>%!J&BbE} z*OPdl1ck;6HN-71M=GKmyb%(Kc3INSdoE}tCTjqSP&Qm;KZZM(ZD_dSpjPE0kv<L@ z*0^Utxlq`VE>+(F@3}anC$4ruL&|{jiG9tV%1p!OjodV8i`LWQ(9;8fGDY}kuflAV zy-JHH4X@|oK<<|S%hrI&0kahed~gwX=Zk#e{j*6zoUAYbWA-XG?qqv)f%TI>pvi!k z&IIgy7AikhwI}&3DE#fG<I(bhy*i)l)%^}jT6VKVK;}3BfEdjjP8~O$GapkkN?TiL z8L+o!z}#M?wXi&Ub&`OFi>c>gT2CCDy@WQj5<W>doZ^K+MB6P>&SNp3zVYB-(R}Q= z=oUMnVaX3{_fGk+mw5aI63-~v81`V7ZMW%UO}PFK;@0;vzOKpma!U}ESMV(kg+{%Y zH*sNU4R~S~>rG)_0u+2rG{({JH3WVH3@+Bw%h;pl#6l%RfkbDkX<}P=7VD8LHNp#I zr?#;<4`3z_;9SdKV@iPvcqI7e9ZGp9G<|p>2cY?Szj?Irc4EKLV&u5dfoJD)rv;3! zxc;|T6MlPVhSP0M<r<`&^M>igBBt%aF-<O)FpY`Ln6``KkLhdk2prRv#IV@_6Q%TE zdPy`}#`GcH4JtUui;$M{8oblooGzG3!@1IhV}hQ!gb7e|#)MrQe@yJFV8RT^zL;3x zFe@~7fOi8E9K2(KZ(^1C$`?%)Z}?gUb(Gffbr~$T<!Nv(?`yzt>1*$<e9iJZ#MfL- zJqD}5^E)7N$gbe;N{%k-cYagK2hOvIBdxYs7&r47F%S$oPo`biWCoImi(nc=Lr@MG zNH7dCk6;*N9%Y7ceIA#40a(kmM?(d{8I4sExZaZ+yWHznUE{s}X4MP8>KgT`o|Mtx z_=%U4=H>kvgdUr`AS}G8tErh+&gP~)W_h5oUza!LcHX6#=B0L({%*?cyuTxx<{zoF zsWr`A#m-~9Ik!8UY2Gzb%I!X$+a1m{ue6)5w5v1C=c=apr*gwSruk>{8%5K+&N?_| zrnzZn$JaDZeH?ewJoQvD%|E>krup&T@B}mb(F5G(RGS&3qO4(h%ks7&53s$#8~P*- zeWqk-v#MB5hoogA3*pHH9kvjifHTz&$L5|0nuA~$J4#CZu5RkXXXs(}-ZiHV3|s?4 zomnStHSQpzwtQIS3wb=R&|{yZGIWckqZ@dBHWT?^G^lC;O?ujpLr~0=JIEUz;?Y-O z3+?G#`}vvO7k=!mQyX`|`M*#0SA9P)-c(JA8HlpktY4`RN#>H@1rICfqn$Us@$Ki| z^6vjL_1h)(dvQk6kIiAuU`OnhLIy*#^X?m7xqn^Pex0p7BAxHw`suH(?b@%iG3vq2 zyZ+*xfAObhckaN?x?RwpWnc5;2i$+>3YM;7^!+4YWU%wuD{uJrnelGthHro7%E5Sn zRs~8&=_?zCIwRfANW9n@VntehWkN5#?R7VP{(r~A&JW)Dx*Js?i!U%=cChpDH(h^C z?&k6zee6x?1**D(oqztuE$5$;zHrG^Hys)XIJ7ajbGL5iZt*;K&%Gf-oqKjW_pCnS zK9Ql$gSwpuRiANNbF=fl-Jkxqp?KKY|AE^+kve5cY%>Nw*m*#=^MH7<H5h~EPUmLl z%GnQJoX7U9#h;uSkW+tYc6R;r+@Ch1acAM(3y+NFR*LJkSN-sV!|C~jAN%CV@tmIY z!Omm4oyWvu^vxtx7S~mZouXP{S=N#(1b<!e+Bauf^GXeO6Rm-6v3OFYh6!{e|9Uoa z+e}gz@2%9ptOo5?uBp^;b?(V4HQ@MfP_^}>N)22o@B!G)BG~f_$)0BhTv|s5cwuj8 z<?QQ_BZd8>wNIVimZQQxu`;0o_N>gJq8G{?6}?!oRP^wjo$xw%Pa9KDS-xMBNA_y7 z4_9ksuqB<VF~fG1)k{%c#u%PEm$Hl|@wyDO@sNOmJS5c95)a{Lwv^b%J2N<!7&z=s z>;vEk(MB$<DD+lj=tM4NzM__1o4@LudlW?dz=rk~3=|zV*ZG@OwR8k<)DkDbJ2GD{ zo!qccReY|`K=x65-kaYjDn4~d(sy+`w^47_cUbu5Se3;}-}bq<OJ%Xr$Ck65`}zk# zyIK2lkP`|0=Ql$CLFKCv{h;vG*vgfNm{}+SDUb|Cu=v%9C!+e*dTtB3&wcK5-@2{e zEP92CSFBHul2=HA#C%0qq9*V0OC@FLNu1t!%X{ohU41M4lUQx>CpKxvpJGYLPmI-_ z{>JJ~f0GYkb*GF&=S3+c37m+}7lSi^+a$gPFG1oM$|N*Kms!@i-30!EsTfZL_&v2z z^I18ASmfLZK-~;Ef=b|4QIN;$Z!~1bI>#Qsz}YXKGB>KG?Y|1QgTwBHwVp<JxRJ-G zIO^bo9C2`Ij<!6g3-X}8YJ+;*s?PpA6aFV>!vA#PZ~%E82H|M~Zx+}<AZL&A0zEFt z@#NmTxOq@7hBqqS#LZ=m4>Q*-juF>W#c|?#Z(JYM%wCw0;4_Pq%fdupD5qkO+C{4b zKW1NQ0w*;}N?H-F-R$BfiBR`AvjBRY8mMiy<=o7uT_6G%ym_dJBLPsb>F@7fl1`Uq z_*@NOxv8uMSo1k{72^k;5QurZ&P04!{?vCjo-{DgSo0W0;5t)pzqQb`)BT6_B^X|l z8y*@|!)l#zCU&+5+Nb>cDhN0D#&Fp=aP>TFAYC)zlt9hJBr20Mx>eF?JmuyB{5@mG zBQTJqnpcb~+WpvVvjK+6WUIMb8h&#UzdJ*A-5K@Y<NOV#GB<!JXz}6|XZc5l_aHJN zT|CNX*+igw5IpQ4{HM}g_&tLEM)BVm{#%LvxQ<u1?+4IWJq!Ca6lYn}8bs~%p$VMW zhnnfbRxiD^#?%zl7na9u)(<J3W8HPHxqhfYEki2UlI`eFfRs^15fIPlZlUh(LH<Ui z-vgL6o|Lo5-zZ(W!258j?dLU;EN1bWxzivzS9~`ERE8lz%ZCOxtkFprya%&0);11s zjXwt_)`A*`TSMBH$IV|fF^4DCwSN(RBh=VnkyZE(6$P8a|J`Ebj(z2J_HNBP?0&9y zW#aPvT$auVe(o#<GY<qAo(-9(JUGH@?7u*uh0$Ul9lsBFvHHaZLnaKmv1l{Lj3Uf@ z-key=-*b(LbsZiujjdrC6A$(3h1ndI!-bPJrh!#Ub}BEd{gol`dnxl0yzY1mVZ%Br zrai6wZR;>!`0si5nOKM7&TF4bbB70ZSj-YknT}r$Y97O&C|Ka{5D#P-Q4beFwY9FA zq4&N#$k(nB6R@Pe^4#ETL=pO86xaryiGVvZXBq*gvIo#`B@@uFNF@EmcAVk3_;;sd zDht>RmO~){s3zl@DnNN&Z_Gpf#wHEfB5@(vfYGc1VEJYhU??x874c_bfsI#Ua4`;! zDOe=O6yR|<@ebvByu)F{BytFW8)-3RKl=yscy6=tSYR$>5ePMFAeh8FxV|&!b2E$4 zv+p?)8Q`4dZ!4;7AvgoYmQSRCY0j`nV=NqFjD=&2v2ctrc8(F#wiI~LIC0}(&qgr5 z5jSKC<3>^p%^YSru#?InL^waX7&i{$hDV*V^!!jp-Zu?-O!7nmDPArp0OZAHobe{n zg0GS>Tb3|y0<*#qByT8NE8<TQiQlafNx(-U34{=dfixm8kVXWS=l{cb2!6sQGfU%y zO{qA_+=T}SoUz%ynTaYEup*Cjbdgs8Tl)jSga+5MaqZLE4QL4!p7&ALGJ-!^fsS1# z=&+X<2DBuXsvvrh3v2}#mnZ<TB?`oTAPU5H7oGh;6pYCKbE3w^SJ6~WAVt&!QbbMA zRP>IfBYY1{NA2{GdjKG{JGw5p9U9X=1gbKx3+$env?6?ZT8f0eel*YlF$8SJDl4hL zzGZh}&ZhB*N`aIIP=}NUP{v}J|Hpilsf!qhXPnERwlW(sip=x*sXU(^oIXK#z!LWL zlKCa(AqAziKG<oA;0^?VIl(Q)wG&(qkkOVv#!@*2f5$)oMB=UDA@LG<VS4MRc}E`o zr}OB4VC-Vts6YW#7`m7h0BP(ZQagYK_D%gw;bkGp*@f{CvL<2=gvyEFq-Jj8H#xJJ zFZoSPdtil2I0j5?23GFu()~;xtTUE%8Z0mlU}+0~oU8<)#$awhK>S&@^hwD_#cX0! zB+eK~p7%T@pQ}L09l(jfP-D84U@E%l>(z3P`mERGyi;S{W{AF!Au4S69b(cJN){jz zqp*v%5HggBw7_KhtRPlZpqAV1hdRT1S}Xn(&5#j>A<%c0W|*^WILbYLE%&@<M5;~B zmHpnY!eur7bKtUSZaKF9-~xM9V_=|f1n}M}fpWk5Ki~lmK>F>(gdfd_iti}-j-Lmk z?EA)z*aVCpWaKI(*PLKHqfsX`Y76i$KMm#HpYhCR{_3yV;f&9F{;$8_h1<5h=*2I2 z$xB}P(%<+^{=97a_TT#Lm;Vmt$$e&1gVpMZ2TDG(-^1(esUc70g}4|Z6>!3TciBs8 zZ!CP01(w=$TsvExiEA>0<u0vV-2|#L0FEpzEeG=Dv_Rpg86sDp^}b7Pb2-X>o6nGX zg)EO`E*_*4A+rB^E+k9Cw{VEBg)lHF>#E9<ybk)R-<dCdvgcw^PyDq5YFI!HpGw3A zb{71G(AgOTJ1e*i+KiNLPo_1QT_0zf;iFfxIwmu6eq~0s3&FF{LJBkE0o$peI(-D0 zz0_Hp2iCs>%}Y89yaf<SgAm?K=N^W#)|vVoye_O)cWwjdcqu2C1SQ)5vWwf?$*-p< z3V~KCDn<a%W)S#0(_%=vnRa-IXrVXwjm*$4&f~q#<n2o|UQo3W+c}Ir(wp>R03!eF ziMV)?ktD{jk<VFXber9Z!#$@t9#HLmjIGTYMK9nubfb6Ll7j0CX*w2<OV#~BI+Rmd z2Hu{s3fF1cAvJmJ3o#Gz(mce!vmp|c!{k*`v7xd+4I+Rc0s{~N8UnKp$Y?_VqYZ(x zHW{$XGGMOh@hI9NVC<gr-J|jGJ2vS>K+%yXB04_;z=@qXRudK-s}(F>o`H2%^?U(~ zfw`{2sxHqv0uek%ZI-h<ria`)#x(t{iQJkxZ`N4hb70$OxBs&}JPbT(om#*V9KX6c zLwh=mB2}Y$$N*3Gea@GOLUHp%N1GEJnBwjPl8NFC8PD!);E5*LrJ&Uwo`(pT@HmTS zLX?4K;|N^-jfVXGoD^G+xJm^M>Lrl`!H}xMM&StK9TG^qL*j^cNYO^!8Thwm;5{^Q z`f|8=B6(N3=@!X$jo;jlk*6sD;OTDwp8h_rQ}ebwI*)nS0W2{anwmhfh7eJXA#uK0 z76x7+Q=ElHpQZ^zJquXaEOn)mf3YD0qMUqemPqf&rq<1gkyVU!z|%xo&xbH&^f7vu zpQ4Y^@jlvSj((dV3Q$eyW5A_uqBaKm&>_$hV+<XP$!X0UEn9rC4dx;l8&)!8uyXf? zm93Q>h749RWWZ~N4D=fzgO$7C<wwY1B|`=)88R4yetqV|So=x%?2|~IOc5Yu%>!2= zP5#DM6o`R!-38j{i<w2eJA6$3XpI;S=@sUThJcYX8UkjW#xOWBjxV2p|C~~~R4VWe zU9;1Jh$P@X9VruQ%{9Y_tF~JqxU{yl8lPD+F^<olV10KTCN#xsbI?)v8{UrL)=Gde zg3k>ZD03d1=nlf;F^b>?0~vUCp0aNY|E-08eHHo`G`~9U69FgKS>bdqOme_jQgScj z<U+ZZ5wn=${hpXbnxj-N1=yX`&J<3h*VoeyG}KK21_s-op;^Yb9Kc6)hcJRLEl=Jx z2{qE7fxi(UqS%A3h^qzb#tVYF$II>aeX;cj=s4z(oI-~yg5Jm}5Ox_L?UDb5BU289 zU?*}Q00DR_^OMiz73b$7S`;tV6=o)TUV*WEz-C!?2R9>^3z<y#gR_y##XE#O-XZKj zU*h$IAJ^0ITw}nEioCongYJBs`wz1q7w9n#fgYUW7=zx8VL9l@;TWL%jg0k$47&3< zi(3}>9Pws~NkC0{MNg)f#JD&VU`mP!u@<0!eG`kx+00qNbvI^%GlT0M%EI+jwC4=r zI=QxdmXd3WLyd1~m@!?VviJ(2<Y&_4axA=&W_QtVRA%?{8Aa}<LggLI?m;x5>R4bQ z*`?$+m&BP5^}b1_lU?2ZCYeCqSl~Ao)!g<Jq>kjK0_6K+Y>wfhRjwzay<>Pj>_f-! zf?a1?`9em7>##hkAPIDhD(FU|;dC60avjsy!qmhp61V`=0h^0!r}DXI7gSye>whsr z?hBMVS9=!d&xXpEIS0l|dxjbKIaXBurHmq{ayxvXK;@ZcduSC4KhwRGj-Yph2(piM z#8$CM&BcaAqo)S#=yV8dObAw^A0Z4&a!vcA6lpwuq4l$uPJfxv<I;(Ml~i@I5YoHQ z6U?&A;$z~-2ZNBw17miNK>Ue;Iq@g{6~tfRUti9kJMr7m-mz4*ZUb6@US#P37MaXl z1ic%>b<mG2oepHsT{<zhzt6f2s4)a0mVziN3@)80vP5SAiu2B+l}>kl-A2b+w}H^R zAf3LFQRM6PWTB|AZb@2HaB~!dSinsaL`zP!e$zx&w>Jhu)wLp>sK4g*?aig!9s}vL zO!=Rs(^oShTsl2ehyby<l+JXc(fr&<r@zXO`vPVDP=?kqYdY9}B$Y374r-*+v8M8` zWfVD;TLx5t$`2=<LW8PGry%|j*o2mt<`QYaBi@rNxd?i$lTfk`@oXMZaFbR{YNE8_ zT+t+zHjJt_)5*JiI7fFFRAfqFP*F^TK~)wLfo1AQ#!B*X_<F{e`|vE`3OW>)gYSV_ zq=dyrqYhIUzR3$FENQs$ZD){4{U$sZa#Ftu6Rwj^M)Ae#kQ;=JD6;De-#04ovFj8L zDWo#|9pRdwqk<p0t6J|-(KPx?LM!BJl3L>6c*Aexq1~Q`=DLFA5XI8<^*kdk6gq?7 z+>75?YWdAc{zgyJrAaxG)JjsyCnah4J}Iu@3+a_2@_(C0@fCBWvmRVg+ouRY+0X)~ zBGm&%xEOG=$X`L7OFoF1(jZcLnNwEEQ7%(^2ulKQ-^eKcb_Uj|-7=4i+OdZa^h692 z2xhb)OXfbdt_dp>qjd*^(NlYq?|@?{i9q=0<S56MPoUh=dv!=phz2+YP^1S>M(`w( zxww2{z#L!<f`f~9I6LtU2WRi-a|8$BB778G6W@D9G#C~yl9weME22?LZ_2p&PR5NZ zQI^s~`c0Ctul@%J_6Beq46aimna|jvFdUs1luh|Wh8!H)Co<$PaGl6-b75E-N?=P% zEui2sVzZ<P6L#L1j@P-Sc%z~UAIzw5F=E9aTs|;T{14<d+{1_VbDlW0AIDFs1IF%f zzw230OAY!F$&=ty#BW$Ha#M!ea?x{aVdWsl)^cy*tQ&6Y1WP;YNbwO*d8!LyVA^Y4 zgt)&Pt0<7x0!Bi-a2i6qa0*PkWP<spj3w8kSn9vH^0RIta!e~dLbyx|Ptn|zGhNNr ziwPqk1*At__U2^_nkUg1$$ON=mQ^0k_wsO@{;hOEf&RIe{=e+vTFNN$b#bC*Jgfjv zZ}xX#31mw`8dWG!SPa=n&<8^CT1oPsX)<d^d4uJZ6)PrI5LXn^>08_sq60;K%w@^L zQC4!1{)kt1lS+W8pCNAqDbdDB{&tWD%o~Iiw5wHT!ZP1)HCbM#nQ!t?2ta-0Fr~k9 z*rmFR?;zCKleu&Uhr)EKO6JlbKEW2xp3EignpI#WmJWHciGob=uY6@nHSx?P9g+ZV z1u`-c%V%mws*hwBUaN)|+}F8+L8v5X*i$T0F4%y83wDJU6$6{;7;DMUoS&ijM^hxY zX;bOu2^O#+{>=%*6BIjg;g&~ddC}H?{`O@4_B+Q;;(ncBd^?2*(Y*7Te|dy|3_y1t zQ;IrVm_Kl}ePG4mfD56UagkxUD1Yj2R|ysdWd*m7vv;>?W!f&zAMmZFIpOSfp7(O+ z&W%7y*S!aj(Z!#d6JG#hpV|#yE2UPEZTfCgF6S-$-$s@~WY}J%S#izf$;$tJOv`4@ zD|R2@)vbPj;?`Dkm&sB5g`GzTR-JPm?zM(?<7fpOhXfkfG}v-tQyL0$O8jJ`mML-@ zO(Ji`9wcNjD=CF%9Bmrhtj5~g!NP*d@!d3dif=9hfcy(|2Ke#Uh9R5}qm6nvD2PwQ zomwgegc{a5;ZeYE#;xJA;ubP_uwGX{ErZ6_8cw~5ne;4}kW7+r)g2=jcN3C*$B1gw zm<8Zu++JTzZ6IBR+OyS2y6!E&2AWqA*b4F;&^8i~#86q^kj!NTfWoM8#Eq8VhLO%W z8V)N>vP`T#f#Vl!NkSLZQ|1MUrvSA)qG6cmILlBwY<Ogc{Pu`&&6gA}J)M88P|?K= zqe4FRg0TgPNd%5tBPg`QGkkdb1Iy6!dI+T$5ovXt4<#_FHEDw}^}+dTDmd41Fw4ey zSW0yW#}299BDa5itEJ#&HgRR{zOu@{^)p!Ii^q7CvvdeoJ7xEIyD(+8_|N0j@m}Cs zx5gk^=)bst`>%U0Z2-*We>@g=!te20;OCG7EPH`_0s8U+KSwh6&Mt5*Yc23C#t1f$ z(d<K%XOxQ@J43-fb)d^A83DLTtZS@uypt9=njM=(UdH?JTjX<fi#&B-S>$(XG|r)V zfHDq0+{i!H4Xi5M`%%rkAJ^PFRCDhqHTV8C?p@b}3el|1S%-=+Ocep@L4S4N-%E@_ zr8m|q(HaT_B(^yfDVkbm!e_B*Z~*zD_yc!9ppYe4Wi6+^AqWta9@EWhP8skF+ElA` zS2y+dFB-ubQ_P@w;lo_xNwWgKvCWI2ok5#)O|@QjW@da|?&Wsdww+b39}WUv{SF)j z##RDj4d9GARe!8?X9yMM`n#*86EYdAJ!hxpmC*)^v>)D1cf2u?U6c%l6^O7uu}4H~ z40ln306J8U9@0l~PpRWn+|8d*L{0+U6?cxapW@!5bl*O?Nm_{|Q^vfMP5ZJozo(lz zT!u1k!PhiOsYCw7x!UvP^2jd89aX0NyIdwQ?aeLxhsj<sfS(4o*Y#7DcbDdw$zScw zwW|Z}l77>?1?n@}rB!flH+?siW#KGu!7Q)mBG8mOs%ex^@@CBQ(hg)u$BAv{Q#8zd z?DjsY#dSE`;&fyAlE}hIPbJ>m0?96<Cm_wpAzqj=*4|vzVO0$0EyYEausuR-A0FS6 z#|hu*yA^!Hj492|?r#6Lxg5y@ZI)vB`4pYrJ4G>LTpuxGJyW#DJGzroB!6gtaIiQ< zny({F(YJ~VVsML1QktqG%Z-amGbOpPv36yg(syB;QkEMqJTm{|pW=Us_Ua7uUEKuA zE#`<YkpeqGRjf$Om;#CyQ8{=b{}z>RCSALegYM2m@p4T&1~*oTytvTL%l%il&KHQ} zsPLGOdql1?Rl=>f&e7wx%yiOcdlmt)Ec2U0y19mrShIda>Zk=_Kf39{O2u-b3L#@H z?!p~>Qd6;w0&?rPy}5wfHE0)a*+bq^!Ra!1%N555tLd{9tk$uX{%;3svANK?E^!NM zd)Fp{6d&^-iVw3|lM*6b!I&e=!=VP|q2Y?>@@ac--7J`7EGtgqefh?CiDjSLO`q+V zg>lgK#t^6~?$d+P-QKJorR~w`!WRYZE2`XS<jbJIHy)p{r_WZ#UPpob-wp~ijMY(~ zwLMC7y_O3$4z*6`IwBLCu0z(HQL)QxFnzcOUDUfz2~r8sEx~^3z%~~VbUlGd)+t-| z(R$1z%?iZVUlwgNxg>UpRZ1D9OiM}j5c37eZqb^wnTJ80Bqtf5@$ea}l0Ibo>DqZ& z1{q&{yk;hSxH2<!gxvq_AY_}*z@1O#*51jKBHhCk_H^yb$73?9I$Q8x&1^(JrDF#( z*35eNzwc!Jq{x#h>fCB*-TG0ipuf2@Q<~Yk<P6|eU^xSzUyz(@6z$ZXPdF`6dpo9Z zGa?5qrJt1So5`*<uFlf&@F-m5y}{zID0wqQ)GwdEU0cGnl)R&Nyp*|H`fSe{;sgMd zz$Eayu|~<WW>sXGv52KZekA?{Cdj|TVoW?onuRQ&I`@nO=U>-iY8f17|M9_9`fLSP zb;R2L?E<mZ((0bBwLMz&LL?;g9^U&U^j=kq-XjXy_Z}bQrq5Q8yXA0%XwB*|MRO1| zc<O*3#X_6}mlXMlwf7~zFV^B`8RR#6d@z(gTftBr`SpK0$j|Uvr?*+#<sr2~bcaXk z4dc-6#%le~#tV=C|KZ4cnFO4N!iR@h<aczGHGcK8vQXtW%KYBLeon;s2Ri)#wNF~< z;6YS6!MTHvWT9VH`bCkG{xb8X5^+2MucCIfJR!z!cer0j3P?Ul*0sqq{ONiSGnjL? zyg%#QZtCHkR;By#l9JUE6ViK5PyQa*by941R#^Xe{`o3#aLha%q3j>qlL7LM@FtyN zvKu;cH|adkW@iLPA)eoPB5IGG$-f8B*RscY-Pl6P(4M&3!mD(ubc-r75f$s2ShByf zZ*ww3;FU9Ni!8zr7OiM&hpqO&!dJJUc}-_XRLn$y#+h~kd`qWy{}t15aNc9uJ$ryR zbi^aO-DXk5Eob380}KWmZj~yyk!64zaJUXJg1tfo<QP2HIgoTBAzy($(yjJOUJsvr z3EzUB_Od({KZ}d|5aHk@ekio%|KF-o0GkHSC>g%5%dLGbxOornVLC?Xda*xo4jK|( z?Rw*e5$rI(KcK}{uob{HZd-7F6~lQ-BWU62Bbi2k&F&QTD*xKPji|vcqY-4@vS!pt zx<o7F$@A}%`3O@9tr454^$P3!^Ei&7)`;A30KdHf_f#vD$tH*!G9h3{2?2xH&)gac z+zv9M!*F{ln(#mlA@vme0*X(!UkSJFtxHb!eHk^5*oPDmd%7X^6h~~gQNrwda&yP* zgVns-$f(ud3AaN)gB_OG53M}3@uUJ;Rav*KqJG#Y2RsO8+-g6e{og~{c8>&Yq{Dc6 z*@#}5<4o|F3!p3El{^1=yag7J?7vt+tg%KyXgQ;?L+9cetg31sB6K@CiGc1H`$b~f zSjVQ5m2-K}#So*vnm5%Pm?t<q+XB<9!d;){4b~|Xe63L|KHIpD1jNzK9XJkUpVrLH zd`~$>r3{P3FIF-vaO8AwS`WS|87U>KaebAOL~+)1wDB@yOfSS}CK19$7U7u_E0KHX zgJV@==IJ0;1~d$!9MRxZYK&)9fTlILza-E+JW52}8sp$T%X>J?VXQDXzlRAq^5Fg= z1L}ig7Ef=&`KabEbHOj?Hia5$jZ_c{2#H*yv?#us+xW>;3Ogphw=*dtmE0B1nhrer zDMqZl)|-(xPy+Akxs8LDgRq~tJCugu<E%75EqEf-0*1d=te{RXs*3-s*WhRES{y(; zeuB#W-~Ar<NLm2OpJgq8JIySK4z9pw^%`2;?p$ERL%`g_*q&^-+{f0UMv_Jhi=Rw{ z@vhhhczb8z@>^qx676Lnw=4JHwa0De8w8?kvGxjlmHVamQI!Zqe}iPO<dzSK?n-R! z{QOmCYsM7?S5g!9N(ljwnFKEIhE+X*d@;(hSCoYdEB)bhDGM8FGz8ph?BTMM(3=6D zXCfkxiNba!j&z1d9Te{%GgXaeWau{->gf#eWgfCb9t-I#`Rgb@+|VxRJG2dl8`@N5 zXnY-!S|0!x)piRBhpux5rhR(%{Yoq4viu>hbZ^_HxASZJ8`4uKSa>oL?rcwV#WFEE z_%qNS{p_@sWMqS2WH@+NYRfd_r>QYiTR02j5dId=L{_#@CfzMXx(uHb6|u;Bq^=r{ zE5y?@YL_k>aVZm|Ks$T$01sM-&i3)ZW=n1b1|!_BfFbgWGmUNg2zLv*+pm$tPO&$n z)$G)Q(f$nli4NCyroV@yejn2uaM{8mk0cK1BJIlYvC~Fq1Kc)#v8s7PJ7jOBciZ3a z2`cHSizHN`99`fey0;TdRk~!&L|&E0=@ZGbI8Pn;HS|G+iAPjYe5U0R^R>g~OL+85 zI}ksh+RB+@IeS|X)2#C|C|!w!fc!~RvXLzI*|b^YL6v=GGiH#p89S9Yn=#9r&6wG` zseD@=qEDr5c<D2hY0^Z0JMyIA&$>yYzNq@f1i~iGj%flfl0LqyNn?gKPfg-SG-*3x z(s*AskWB$E&Hl=a?wUNp*BP;*aI&;a<Ge4#L_QQ?n)bndobp|EmcRFo%J=Tx`#n+y zkMPyb2kbR~x|XtT=JEw(OO2w2{>8del*?Fm9$t)=6CS|!F!pO5zA9t4s>PrVFjvtp zPdV^RW<ps+CIL;~ryQ(<^{5AT+#8f_+xO(ja`6bI&KM*q5C|;ecRIGoIf7^6nyU)$ z@2`r|_x8oO@dm8H#1^pzohuqH5^EO1ozd1~o4qSkm5ITD%f$ZvJYLramH&NM9dfqP z#&pPPcQ*EdAh<C%UA7*1Q*KkyBj2#15Q84v(p=U*=!Fj+@SjEl5fP^P>4#1u918_+ z5j4bgP!GXJOaXjWS^N7~N&91^^L9(hpU7l$N$=X-O)Z?T*aG%Frgxk%j;53v#!SEm zU{W{ROy%Vg<V&#vxd#K=5jyAi^L5(f4H8vr77?Ujf+ppZv&$;|^H4oYIV<$fJs)el zf7(O-vD80>Dl8NA&*x*6{*}1jZq+S+cwb6bnXW*^h!freRuV@$rI){M_Df%HTX@;S z(BA4Ftui!*mlS{vbUqM6kR?+OaLI0)`f|l6eS022B_sGfh`1>wxR)%Ib{I*yc_qHG zJ0B!<t-1NAdgSNl=I8tDIi*~FzAHb!&Ymlvlq|p9`T4u;IYT?1<Io;hw@M*|cdo&L ziZsdPE~wt|6|XSXM{%VwpVn3xj4-XR)jW5NOAP0($pGUyv^a6?zV|~FY5>+}*?lH( z<VF`2<@S;}Te0qHbh6#u)W&r(Zrdl3nLRDlxpTw&ADPLj^D(n!MJknzZ|CI?US;|L z;e|Ve%G{{~8zm`eh0s5PbqyzCJ!BW;4>@Gq!JU=EO!l20FCV-M^H&`_+YDV2DzO4s zwo?0|3Fy{(Kwq6d>44hN7-4l30R8THMLfn*g($3~AzzX|>TsGO*#}M@jA@D?;5@w^ z&dc*B9Zv3Tt3~M5dzK6575SqMr){F`1LuPQr)h?Ob4xv(d-Eq9PRfE>IKQ@RIIqkf zbvW&ORwxiL*CzosKbti}&v}Qpy0iF=lQfT+qr5SH(ZMu@5PGhwCv3X|>QM*Q!)E^e z*ZoKkKZSp>lE}ugNk*qL^vCf_iiX!Vc58OmR;ugv=jo3f9QQxL;n(}0AgC7C+73Gs zg?}Dx^UlnNK0$?UK)#Y92gM1u!ChQLL%NoXO8TxPVQIZ=Z}GIdQL|Ao?q1tOW`PX` z63omHvIr<;tlBv!TL`zozUqW!N%l<F$({sn(Pwz%hBJAf-q4i3-c4>bJ-(~bP@3P7 zd&Ehvfm-j;{D(*E5$Cj)8fGWrzMpehwGfaWg{(?#e8ttts@rcZ@~+PvURI?KI#amQ zvMPPZA?quv-ZQ^!@Gk78uR3_gKvtzsI-q@J)#u(>1az*5$MF&?yrcr?F%VW|K>G@- zSHEl7fL>7n^cYC1GN65>)#sKE=#>>f@4C1u!+At;bw?6cT}ZN@PjR)szqm@{{ZAsU z61+z%uF4IUEw0K9mo2W!4VNvh$_@YXh^sH%32~L$97bII;BSiD>jy<PTdpZ`UN?R4 zu8OPlp(BZ_gNw@s4<{xEj*gwUN}oKExcbspihwQ_@mLjC>8lRtF%VbjlMZNKarNG> zE*sD*Di}Qm;;Ia2UvYKCUo9KZD=UEBb#YaO^N8YV_w`|2bzyz{e2S~t{^BZ)_dkia zO7I@7xGFbXwzw)cT(-C>H~hcseF>OcM{)nY-IcUDY{?u!V2;uHT45W+X#qCY43{_z z0vix#L<qrwBq$*yBC%jBt)!JNWaDFfV6Tmh)`vh~Fyi$3UW^Ii7J&pMfglnHf&ftn zg#YhXRo&I^^_x8;ft~OB&wRG_z3HR6y1J^ms=9j0;;LHl|BkrY6<F~!c2}{^1mbGX z_fw|uzQmhTV+o869;mpA4NWGlHvC}9;GNZutsXpa6`Pz)Tz&hyDWHQX9&>ROTRnK< zDmFQpxZ3@_DFb?8hS7r{uBw1`6j$H<*C_*fX$I(li>oS}lZva&QCw|?AO3+UuEsix zt2o~OBjPH;J6&;AtvF?IRjoK>aaFB2WpP!l=;CTg;%kG~spu+TQrGN)u(+zLr{wJV zP+#KdN_|%0Z?y8TF3AN$7qNVL#Ze3w7TWIMpxRv#ONcKmn)||OfExeQx^}E$oQkc} ztjvG|m?h|x;lEwxAc(Oc<^UZ^SSu^qv)l1Ecn{~P!>W&0i?QsA&dr9OEQ}#*btr3< zuG^4qO(LZ9E~f}DQ@QW~L0h31E&Bp;#V>reH*Tv>{lY^rdXnRW@m&rA+22TWi9yBg z;HHRw16A>F4k(}#ZV(#s1+{RL#K@;5D6eRBG``1Svdr1)PF@<_A(i~Oa&Q+zwa7N> zM$UPLKIJ%Q07g>X2sY@k5eyope3r^D$`s(Bp6{TZtuszva%IBPM`=hVMY{5qF7TGl z(Uvr}Dhro?uNSl#3k7ACNXun<OCQ<2V!?a9$Q!gV(4WmXJvwh>aZInli@m{%bSQeZ zF@(n}!DFrF-WYL>|Hm9KjQT`dfn`kXUoe)ZcEKesAGpO4p3K-}bBoV|XB^?liEsR& zzbE0zyrLNx=)iZrTj4tlu*A`Ci$*5m;86peJA&7>W1UZFKmbkpPv}~>74c|KgrDn? z8vL=MvNkt(J)3EQ1zw^P4PGU&D09&Q9Lo~P!pmi8fncHFjAV2Rjtod734ecBh$OL7 z5D&sToD66ow7JQnHB^f*hzc<8&478Rmg__$IhjQ)ShQayI?t{w08Z$Fw#1_=D_~rj zfuU(jSC(<Y_#8&>FuI4KC%h{j9?XanI%sjyKybp}4@q!h09Zs$6%QZC06^Rt@s;91 zT%}-0;EdUF8}$YZ4}_EK28$C5PL4t_?2*|+@s^w`+>cy$D4k`%U1KIPaM#Fz<-N%P z`+FhSgH~}~7t0%)3*ehX(nqJ~Z9al1<|-&4NZx*_zd9E5A#c$*2Bna+nYI$dsDrZI zD}Gp)7DWa7Q)H&KBTQcX!(QFyLXWhIw1|zYup6v9VIQ+hFLyP<@n&y4VblRKgc;L0 zuCZ4^N|9c;b`9)wI>6T*?vGj1dEgaUx6%y%#RLWc2NspHTMb3Jv3HvM7JPM4m*+Vk zW92zeISLBqYKK4pNe33Xr@}(Hge{~GYDFHlzpfo?nC8YUQ6A(r=;aLKRt|_xLhl&* zhv0}9`ls=E1Cco}^bes2G4yX<U=BDhCt(G03>b__&i2XiAsqayFschOSd_^#2~+|L z!vL|+1r~<+>0Pr+A}kC8M4(>`1Dxrw2=i~?cTwu8T|vc*N)|{dQ>?CXm<CfFW1(Db zs@D)HDb_{lDY1Ny!Z{=(ntI$CNanF!`YA#rsET5c%Ul!1l*KqJbl8KqhweZ-KdjIW zrBJh7nE2%hmC8h{Z^tS|6e_rIl%+HimLpqcf)t=~MGw44q?x6|mZ@NY1#v1ES57I) zvukzqyTw5;`X$MQpsuj}U~EuM`{!qM52@7M)*7{t@TJB#w)5HKZ@WW$cp_Fb2VoQf z`in`8@KC>dc&`IzxK&{&I|fr7g&U=Om~)gcxLi+&^R-QhROKLeSx`q&r9u3SxoFfK zK^%krVq*voLG<C-;fYmTE(zZZ_={nk!#-A%dfai=%-CgKFxh8TXL|{xl=UG$mEZtx z+Y)djLRiKsK)VolpZ8M|!zuE?mwc#Xnc>k#>kVGz4Mr(UC>7J*P8n1OP4R|K8Wl*d z@rDgjO6eNZUF!u6bt;cl!iI%1FbV47!GVsb+v@!oK)Q!2qi(>5EYijv>ri*SH)yC+ zK^#_QK)b9=N-o7v-QrX>dwps&>C9%qRuAox9S(zj!B9nM?7%wrR#+z)Npn}ab6HiH zxOMGV$967U-`u&7<;?=i6X_RdJ5zxMy}t1WUCTfr*RrZWwHZE7Pmm3Kt+q#*(QuMT z^j^-4ohVB+q>a{dt|4*Nrb$`j!70hJlb`1{fw-$ieF6=Sesw(fhfR4?97cm!7>Gfx z1MxLC<QTG?6Vw1EZ+1-?A&P-SL)@IT8#L+wkbzqT=q#^zvuo5*YYnC{vIU<9Yb%4| z?5r_e&o=*Ns|XmgRsw)rXZh5xuz_PclR_|{j|PFvX~x0NacFMQp>frh?`5K_P}0N? z%+$yS9*qPfDV!>`be4nm&MDRteLlbEdY>QFK9w;5e3NF87N<{t$|}C~254lz?IYe( zGr0W!Qgs*rlm1E%xpcH`;}ld-e&<mC6$O|l<wgHx;+zLR<RLh$f#dQId)PwxJRFBM zXqb8=&uu*V(MX|#Pk(>^5l0+x<WWZ*b+mkrIp&ywfq})3ee7e8J@&Zcm{{lWOO|ME zohS42l&3uPsV5-E&eNa%^k>ND#1l_E>7<jMdGg68FI(1ZHe1hnHa^dJ&U2po+~+=T z`SRt@m(L4c@PZe<@P#ir<&;xi{Nk6q<RvR!`Z9b@J@wSnPCM=8uXx2PUWw1jl`CKM zs#m@GHLrQiYhU}i*S+rbzrSkL8{Y7SKX~IG{^6V6^rk<;=gn_^^XaGm@gM*3Ti){4 zx4!jH{^U>pOg?XW+v?SS{^x)3_P4+NFaPo#@A#{~`s+3C{F}e|TYk<s<BYZVybGUq zzx&<oqFtOR-*pAQ>+u~dHYDGT#l~V2zC-wKF3u{>F3!RC-1t4OIInmQzFY7;zqp`y zZ*gI9QE{<-FDdvPE-tn2Wd*;N+xLos-}lM)%Hk?~NASHG-)oBZ7uVu@oqRt~Y%NCR zdwp?zaYJ!qaZ|BPz8@^~`=Ns0?ehI_@ezD)#`mN6eyq5q_&B~h<ok)@lf|d-{j_{P zQ}Fv)``%jIT8tI96}QXxj^d8u&f+fl-d)^X+*6FxAEO#TbKi_So5Ig3TEM+5-`qFT zc2G51*}8VDV_MngSSRtEjDvU8R9v4`6yTDIJL)SAW)<(z9*1XDc6S@Sq-hwjBp7V6 z(Vhoo<?h0E+K1uc&d_4qYtuN2x4PM8k=qN~;>lP6DtFg=aMh)3z2)Yy+fZJF15tpT z%`CZBhv@>w@Qc2xfP8TVGK#X~I1f39HpGSmeEM1J0ZE2%K)=x~_CcQSxYat4YJI$e z2x)O>IQ$Hoqa@lz0gDqOxB|1+E^_0sZ~Tq|t+6l9H(3h78_%Ia>SlI>YaC+B0`+Nj zA^JY0*h~Vsr&~|X5A|yHqg~xd?Se~y@n5%q^-0z#_p0Kuw}s?RrdVvjfK{qi_k~+C zAf&;`fIto=h;Qzvc#=h~9K|)GvzSt*(R(T{8=cvhA(O^r9y<gz)EszMso)R*#cT}J zP{R3rswcDZ8>wz`Fzv#ckL&CXcdPLz;Axj#kUZM6h`S+~es(CC7BHs-B1^UKRKWPL z^1K`3c6XN##ppG$dMai&nv!ENq3=?kNK_y{vQH&8wHYd1bA=*9gwpl5nSAFX*8gaA zEq=;}Zfg-mS$ju9*rO?7%R`B<?_dufwjQKjplr#B^&vLMDQHtC1GaYZnk&7d@LpC$ z0hB0H*@U!xj{|MA{XzCoPgZTC?VTxY3t%^~Qn}llxQ99t_k9@@(%@uJ1mYfY;vT6d zZb_wdgCK{5CHHC*ebc1wFFBk>-Ph|B;{r+$qH}?rM%^QUx-plLy7_k<bxVr4t>ww@ zK;9#wbax={Qm28u*{M*nnZ!ZfLfYGvw0}+Nxz_sLUM20_K5ipz6qQ41#;>=hWGxRR zvfjhi-_O?dAe%DlpYiS0L?BT!&Y^;|_aT*+k@SzPKt@{=lJpN9SR?5X_EAqv`+AgJ zkEbLpfL+N-laX}0BT4@xgF+gd42nR~Z6|5m*<8o3|C`9UB9inF(ML2+lcay)a2iQp z&VeJ;p+eHQrCub-u#j{h=MJR&D*|_^Pk0A1)~lgAka6rtNLa}iq-ETh6S@Pr{s`)L z*n*DPiyh&`IA7=kbiCXH#M&9PpLu3f_>9^wR+Jc($0Q1y3XJk1j8d%T=kV#hv1IT+ zpKY&IuaZLN2gOP?seLT51<hdUI2ggcF3XSbr}xMtV@9gW^85@?6xB9dl^RNyraY9E z=B4c6JnNyPOI^ob&S8V3t1(-idwqG1Sb=PvOt?JX=Rn)?Jez&gFO0pmJjc@IDS&Ne zrOB4(8n#PK1?(0+=4P~JUy}hL?M((mSe<L4GPR|Cao$AKY!a-p@3t+@v1u;Otq!Iw z&W$?3?aJaDv&D(4!l$lHeV9NFmZ!eMLftZvyeV}W<c+CQAh=we+M>k$4fcPg^}nS` z+_(7HZ55&@iCfenlRH~d;+BUJaetOQw5<oJ7u2bH`OCY|9%*}r(e@sv?Ys2%jK(G; z?b{t>Bki?lpq{Aq7-jEBDO;fW+pJT<h}5OYK4Eny!oDX1fz3?@LZIu_k*<g8>H14V z%R8xKlC1ZUoQc0_lJ$KKq>=R+w73}Um9?lHM%6=ss;R`FKiMPj?>a5&>jd$y2%?cn z3~;RO5r!rr>QbM9sM#l)1))Wv7H&PP1pNzk{dUuGj6#P~3YCWvh5i$({6$4E`Vn8Q zCXzAO?M9rtojCXC?<i1afD;nu_Z;a)oNq$|^^~#Oh;w^NoC4LKW}W85d3q<}{I?7Q zHa8gvfjA`>gKS3I^~Cv8qUEiDIQJTHZl5M`{@8&u;(QB$T->v_LY&);INMXvhkj1b zPLI>vfy=fhBFNZJq7H$c4zfCg*i5<eImFe*3!pJg`ips$!$a^Y<2f;>1gDTWF^1C& zfWW0aH={iMA4j@*B>zy5-mXf8Uwc853ZWo0p6GHf0YeJ&7j@deZ@f`+U%pZ3az~1a zu@n{hi=iSs1XSR;Gb*-MP+`xGigoLv_Gzg214BhR!crd`p}(jb;h;BaBYcC5a5x>| zNIF9O#YPw&!U*x)d4xly5jtc(#7z#34RKY?5KEnKi2kB(h?~7p8{+TF5ckbsM4-`g zI~}6_VnYlMVTgF{Jj9X85O*0qe2C{bG&aQ7*9@`L35Vz}>V|lpH)=zCoeXhTI>g=b zV6f{iVaeJr2xgHrk&ZC$JVCe*>pc#Eg=xQ5Ab{@=%P(_)pYO$OwW2uV{t!+N`vX(# ziYxt+Zm`GK$UdsKc?BO{#d2W_b-BLb4$6LhB`wpvv|&j7t6AU`QopD90Y03T*1t~Q zu)h8LGS;Unk}AX)WH_bRFq&(<`=#{l-^dy-r6_@Wof2H`p<!WcBgEey|K>#54l}Z| zQ6IO(l&_Gc#(G4-!kS2DY%HBI{UvagIAcUwxPF7z9`YF)1|~9wqtJ|<@ZI<~{jv(6 zMhsx2G6?#N!+@65n7u#bgRpZ5FP6Dpn)q&mix?P$zZlT+UvnZ`H#_+@^v|KjPB~N} zc&x{y7$r68<GtfK4ug0u{m5}8FPum};(*)QJ4FB=Mt_kLjL3uaqrU`ZXTJnafFC=7 zL)h)Nj?mnaLGvPkW*-vjM`+q9H2O>6OHvHBa6=A$><rD85?`WeL&`d8KA8dYLRuY& z#|auve+=WyINoQnre7d5Z_9@&Pqmlwi#m>Xt2b&K@A-nfT`BT*8;XRg^_Rf$D#*i+ zosl<ML0+b$-0r{_T`dpDo1kGRAF)?MUM?=~%9?&&4f4DpdSZZ0e^H0Ld%RIY-g5<c zJ5uD0rO4A?0`m#TvsD>KQQLVkw@z;34uOe_=LiJAL!G#|*NdCDK=DLekTb*g&^7Pb z#_GSuhgQn!zp8JP)yvPzQdYmcC$jjzXUUWIo5g>_VKo;2OqsFm!s07H?`B^ontb~n zA8=)k%eU|98<lVJ^HP;><c`CIxLbd~GQ4P}*B_rs=v72HS@SunV8S%HVYT0d0BiK` zJwBQp8mIFVnW#>2I!jarz#t5EO&e<vBw~RLJW;H#DsJknuPW72X{NhLv`Qii?KpAE zUNM#dbg|52((Fe*LX&1sk`V?82L2Q!7d^Q#E(&7=BgMua(1_uIe`C0*b5hL~ATAUg z?|IoaHqhufvFnxQEB^^6?};*7K*yHQWD*HbwM}dhv{fwQTYBvh8G?WU@LNJFPFM3t zx|&DRhwb6P*gdK_%~XY~YubU`n+)`&{d32sF~cQfhEM2vrRAW%pa)}qysj^?E1N+C zu$%s;cqJ0x=SMK4xb}ZTR6Q=K26IURTkPg$ws#x}9uqN2aRLnN;(Av9=LY>91*TyX zS-(DRw#+DUtWbqADD&j^sN-X_d(q4mv_|~bt<WsaI#Y7&Ni21%I7d#vj=)V>*K95t zL*(*-U9s!_nHpZON-cEslXb&&-^2gl#)lKX(JOBJ^N5CHgw#N!dpO&~7yk{edoC>@ zFN17m?#4gcfiok>(EtwqO^luYjsg$-cVD+%TtIVgSRnknvOt7qolns0CJmv8j+VK7 z!cHpGU+N2ENxk+Us%VkJP!pFB23w}?<TvAn=05VNxyVOvw7m$UuQpqH7DkK3n5~mb zye$)fA=P5^T5&#7kV9LxLLIK*tSx3)EY+QITbE{S@g!&5?TEUTpsKE2nWV(2a+x=2 z`o^Qk639LI{~bL-pdTj{*pW{$$xn?hT+3>bKscIpl`njdKk(2e>2JjN!cON4H|Xyu zFb%#i>O(QUun-ND7w1k}oFge;5NMdJqug1}7gl!S3pZt5YwnMfC3)9@FRYAwVQ)QO zxS42pNZ<>*F)xBI{yPo6u-$<(zQD6ei+gq(Ul=jIus84pTFe7q=wz|Kg`nZMsuGE8 zbUBS6uc}nsTgMkleFeT?mU`z4Xb|&Pl6vJAvg#tm`=a}V57`#*p{n(h4m*j^<TsO` zp=WRS)84RgnM1;MV&6o<*?$a8XH4hTtZ5!xkZqg@U!XTU;P4wCxB;b=gAsR8IB?PH zBJULGtrmq)W+2hWmeg1j?r^Y72jiqiO-rB(`j|j91gKb`Y*E<4w*mD8+<;X2@hK@i z8&eI)^J%!tfwKAK5s4}zOs6_)SI6&7-tA2qBV?)#R@)O$W&AW6#*O;24f{Rblx;I& zPK~s!s)&ofnTWGz2k~BS*N871kcd?c#Q1C&%r~$1d0U1-`k?EETWxDcW<~fy*4B)$ z+G1q@HraT`lstUAJH1^SuO4|ytrPk5#4b7Z>MVcRo3vThvkg;>N^xqa-5crQhMQ*M zaKpscBp|$=x31fjw1}$*?mL`-+BeEE;A(M8WyaOlTxyZeoUdiFcpPi%+Odiqfa2On z4?sx{p9u~?#rn3PCv?J0)TGJ{V1p`UT+c>z%WWCkx{zZpDCVGTG|=)BPCP*rCAIJr z+r<h?k>n>~74GheoTRz5E;^{@B$DDt86r>?0JVjt=W`s)A;+K{a0+W9RI~wCD{l6R zb`YuV>`(w^0<0-6GU`3c+qWIRo(7tH$M1yF$q=6I(j66Ndyi8(3pAaX($(@G$78k3 z_$}Y|*uCs``^EactLVZ9x4g(Iuen7CCuj8N_+j|)rV|{X!RZ+spTVWmxa<VCo#4=n zoSKm{Ge;iDLo@sweKe2E3@pZ>8Jw93S5ZHSXJz=2^D;Ov^NbTudL}-4PNwy&XFun; z&%<Z=^W|vF3txo8F*qB8lQDKI=H)NP$rzrB!LgWE<5<jVc_iiy^kdq|jO|5!GUHbj z?nK9Kb9=Y3C!Es8vF>Ov-zyKsB=i?ETZV^VFvqhMtC1T!11GTMYtK%!gY5{G$ql-O zq25)~U2OD%#_B>r(W}Vfuo6qalwZ_|m?3Y}L=15VPfLo5ohd5x7ehsO2&lkwXH<+= zP+`xGinARULj`@vL`6EnQXd9u!ppT2Z}ePm)J8~GaLr+w^Sq#)!l8SY{rCBp_&65E zVfxA*8?^WN9&gI@74^;H{_e_ImGix%O)5%OY`YJ`=H+!}k7l}x*QA!+!{voqqxs{j zQe*T8q@MX3nXqT2?SK@W5LU*sJ8@Yb(3K9RDT%LC#d<WQ6CS>fdXxTQbP^uSF^tFQ zqI4vK;N?Q7SXLDDq<&1xaDfTq9F2t2{WVL{e)G}2-`h62J59|B!`7CV6>ew5@u`YJ zn9R%9sBQHoY#vV)(j8_J46{F2LJat&1wi~zvP<%!rI&@~<wrF?@V-<!cd5W2@QHgT z9O4N^NnXUcg0;%#fC&S&ZgybJ_VAJvmtq*iaUL-upPrZ`2?-sY<*rn*N-dHrxGL+o z&BwEj)o*H(SnfC&9#%xdLmRPKH3muEGX6rMfD{00C;@`;V>(ucPdQ*_bx_wLjG>&Y zm1>J@hf7p3tL#LK_52(Crp9`)MczhoSzek?BhuC7gG6m1RW(JfHlt&yr(khlPf9s4 zB#VSDq#|Gj0*myec?3(VT(>PcJ;6jv(G+-E)#DM$EUDRT-|bkl-L^X4!VVii#htYp z0hUIujzAuf2*_)ZDA%#W7l+vdAUuJPj+j*{$Q+V!l#z*Z2D%kvFK7m4U2Uh#gCffi zwjQs?bT)CX57(GrE9@L&MvNMEGZs)wG^=Qpj=kY8c*Dkjnp|ahu9`1;K@(BSP%vzc z0uvk(CK!6HfhdktAd1Y=0s6A{V*s5j{cPz@6r^E!FdUAg52OAd-o-Mj{F*mztdfnh zpi{E^Z5c7;?}MBXQ&)ix_?r%sQ8In46WEP7-h{dh3mmwzL)0aH;<6&<Y>>Km`B2tt zP$VVDZ7qLM$4kHEAe&xu5<q6NF^wvwzVs}F?d|&TzwK?AzH*{Wi6thD$5H;7Jnb2x zigY)>&xfalav_rHU-c~&5-V~7HIi=VET)P48%u~|xr~8H09Sf;n1A3f+iHA@GTRiZ z(`@tKy-mX@UAQ$1@rPc}7UB~H`C%!h6A6oNSc}G4vOU0$yg3`o6VP00Vjv-{!R$tY zsxIp)diHvgwuF}mgjr6Jkm$sSV?0x4f9fq6aXcO^p`D5f^fNDK>)Og;StsYjf63{G z`&CXf$q{e5T+v(%#`|BEI1VL9LQ>+f6%ty<VCThk(;Y@*q#qvZ7SNez#*LRDeLw^a zVJXjFcr+C4$xyW3n=%xsGjmOO=$i@lQ8x7R_;5sJ=;!K79lDfQR2lmDEYUc?p>J_` zZRn3Vz!op?7H#D)1?!ZUdP>rfc@ot@^_Z%9Qe6TUJ50vZncmg2&P=SHP}`bJ#~bEk zh|AE`6BlC~*mTqr_UP(Ks!}K>jVOf*BV%)hc$p8^h)@&N3P8yM93jxSfK(RXb$p=v zPo^p`@oV+1lA#nqD%lbfhkM?xd9O0@3E{3z(N>4q2oY&%$>so0)KaRfF8$3k80*xL zaiceE>~Dd#E2a%!-f_EXYdf$%H87G`vc>+vtm*kmR@nUtrxO~J2XlSVesa)VUsV<6 zBMz2PyXHV#8aK#J`Plj+v=316-?Hm#H{XU$0s*(>S)OLci`otnMAh&7KI+gJe>en4 zt4?$2xiTX@w;%JijL_+Ow2eVR=$|5u&NV_G;{$yIQZ5kst@>68U5d=A5c(Y~F|&?4 zru3NsUM2L~9cCkRNh(^#YMJIIZSziV({QTpp<SkHMm=!1y@(L+u@@@XU;@oO6Ke1N z$z0gGXHV1K4SVuKySn6FaLos9`D&9(=$V^5yNJGhJ+bD_Bj(9&?hBbmiH>#^t?Syc zlDUr<Enu0yXJY2SPN2Z$N#v}h=w#7-Bgoho%9d(RgWi+5S@hNruA*o&=HiJQMSn2^ zSa=90BT@sH*=n4?H+Wxzi;w79R2;GZqYzjVTNi9W2#rj;A4|K}U#$D^fbOv|N$ZTH zb@Ugj6CR|_KKQZXFxzPz{l)5p2h@Q;v4k~k?7xMW5wgMlQHU9B1Q4W$(NQewYckJz znzuDGmTq#qn1-pG7o5VKeaq^ceQ|nCc-r*F=^obUjtLJ(!t(%mB%;ye8480>(q;oD zcMs|qmLz=Fc(AbD?Oc1I`5k;PPQI@$ku1!7XTWqaqxJ4H5C_-lYRov5G0IGp3(f`( z3gZwiZ>DvH?X1Re74Wu2vmxB)G?{Nn;sSyuMXfj(vx$i`Xcve6y3+BT=g2l^ntE0{ zx$mYoE{1Woij9kA6T2%p$T|EAComf`G}96W1w#!oQ=09~h-ekV0q3;(1Px3yExfsb z`xjRN1+y6uTMjRo>Ub~k@tV7m?ofi+e)sy;Z;JJroLWdksSSh+@({sJBDM*iVG+5! z6`)t92!n|1hBJWY$>{NP(@-X`#+iB33GzZ8fMs7)agY+9$$G9w*9K-Z32QM|S^l~i zVELUchX8AzOV*BiWO{p%5EU5e5D73?VdnIiPj-t#tYf^K0V8QBfJ}ARVrSf8upR3g zcOZC?YicgkrFGmvJ>yXptTg1CC|JeE($e2(J>^SZJ?Nd5$R04!xb&0TQ)*MklT502 zBMfCjRKq6kMldG>|7-|5V0{}2sV=Y_uKS?h*$Bh<No}YV#t-7=ql`acd}lcjpGY%q zc4Bzb8nx2ke@&b)A5=I;6bxKBf~35iiEyYwgydkjq&_-)F~VjSu>Y&MU9C~OKZ^t+ z3%j*@XG}edu?YfO;SOUhg{9RR`eH1_)uqM4-H}?1_VCtDFSj$63zv3jxm_$b?7d3x zNSL<)q;LaQ?`blYkz)q8gp-9eG5I1Uko>6CD~yr3)|D}0suwmSmj@v`U3`mr)DXWc zzzNB+adtyH;>;Hj{e>}-x&aY`G}l660vkk+GoejZzkX@JvO?s79Kki^7$jryg-aqp z5LyMtvcQOT$etVayoFjvA;)Ynhq=bemP?um8;IJN)Ye0~wY8P-cJ@rb{JNKgF9=W~ zqNb1&`kV?0a@!NHVgMeA366RoqJ%;X!ksVqs|Z2<+9wF(uOj*NS8+k{*9Gxc$xy8g ziW<g77RFyCoJxOfgf1HKSKNdUfEftC4#Z#ORy3`<v|s3sZ7+?#+ct?Wl|F1-OA<B| zSP$8dlC~4i=61x^?cJjHDnA9AqEgc>8e)$aE&!%j=NsKh5RIH3bVk23kvL1{^Dy19 zK&s&qBg^#NQMhfXOe*)EG0Y7N6pO0a>k}nc1@(8gy2Xz?13z$%x?38q&Swj9Bdd%Q zO95dI^`T>krmL*pjqM1TtzNzEVi{&6KRZ2CSGxPiLU}~Gs?V~L`Kne%RFzX_XDwSf z!lAs5A_?RXL=VXUk3saLq8G216Q~rRb2|d0G9Qc`J+0U#o>*!(vfHlQ!!Rj=qpl~k zPRS~cU;>(k#Z5%gTO1R2ros{fjHqbn-?BUCC@gD&2bI8YI20`Fz_L?=ogHWLl$Urx zrds-BTs4Ee`#fCYh1AJ%Z^%QCF?k{FiXGIx3o9$*aITE%?I9w<9-*uT)=8}GmL4tQ zn!!z4T-)1I<{h@L+@RE@^yiEWRYNj1v?DOK7<j^h1&R7hecV)6ymmEgwvzd3;6>uh zgj!jaXJt)?f=&ds9-{Ts7DP1J*oqj{xE6L&T@&YY1WS*1#5Dot#4NQB)d>)E^kwKc zFM}Dkx=;}q;QA%&URCQE+v4@iGp5&_t!m9WqjmD8)=5J|(W*1}*s}>tu{fh2l+OcS zE4i~}e%%KHGNx|OgQx>|BW4_SiqH~jujo6d5n=0lx;Da%axeDDy=(Ps9YT0!u-{@m zHqfHFEWrL!^QF#`f06W{&{jcSYR=TXux<#_J#sk5f)#7ROEg9ERJb6!*paYD4LE8n zTAHkSDvM+RGI)%K#=n)@xHD_?p4jygf&#6RB_u57bm>vVJ^lm=vVfCE08hAe3H1Rc z^epIys2=sUmF1`tG5u+r1emTU8EfpM9oi2eC#MIaPmK@s3Lm7+Gz}k5=z57A&paCN z9HNUE#BJP;Xj`o_#s9BZtK%QR49HV2R9MWQAY~YtCmKC#F?;-Rl}uo-%&$er&6Ix^ z!iHoTD(6v^imA_Iu#I4O*uKc;@oFEU&7+=j33G>)5Mu;{ecOy-5@EQI_GHHJC&0>P z><C~;tvCQeW^DCzXH55hXkQ&i>@}L{$U+H7FeZ?T3Sgp+bzr2^=DadDiGqg?jcGX^ zw>loro+XN%Ua*@7>3N;&vpVq_uDDLomoY@Icca(atbO^_y4TH|M7@V3oZp2H0-*~r zVB;DA5OoJ(H(U{RJi6fby#VnQIk2uBYnVjRgFsxTh;jq*VnDjxR{9OJY{Fo*q1j}C zEMX8Jxe+S16`PKULGSK1)jibzv8n>r1}|q|sijW^Mqu~gyph&T0xVCMl)YLeL*Q!9 zB+90`ZaN59#ZxX|Rh>N@b~l2h9BzQzLh*$+6@@bBX@)W}h_FvoaYUVEkmdbRZ4FjF zXp@jnw7l9rr{OTHAPm*nn@BG_$B|)rVchB%r;N&{j7~PgfgHG(4ZNzuwK-#-N^{R| z|HeICy69s9q4OL7yJg##$v<(KOn%A%iv@QhVX?p%IO*L;S5(%D?1RUHDMt59>71-< z#~MbItbuZ%t>s~@gvo|{iG1JIN?1lV@yY{z$_KsqyL4?RXIGks?!iFqChs(`&9+Q7 zI}r+>DiqUPu^SyKTd`yifdDz`xCDhNQgO2qd_YwN0@t92h4=~!fGA2HiKReJL{X4} z<RwD4Gq6a|gkx-z!Im!)<rWHyE)p6k#FUVN9_G$gN;-EFt(47<6I&^|C;|2KR?2v- z&8Ri$N;%sBu$3Z$s8Vq(Ut;HG6@7_)WgeE;tZ6z{yO&M$#d3T$mt*`;g2{Hy_j9tL z<7GH@AtW|+55hqnJIBLAJh=A;B-cUUjZ_vf!<YO@c#5EkXj#{eRcsY&#8X>hJu?w8 zSXW$hyR7J@PDK}p{#c0aDEU6P{qKh!D(yhM?Aa)k!>z|qqk9mBELdiS^xt0o+v?Nz zpmh8WtLqr-|E&fe-nkYH%-jg+BhIyk*`m6AbJJ}*8<h>%eRRJRjN~}LAR$&<bRssz z)*F%r?#5mq+I{pFbEt-gg;>n71lDr=8w)x9ZM-htY-ox>+*5+Nkq2bz*+q^^Q*)WA zA?`miwiDD}sJUuVF=4c=B~FdNOE{{?WRmfMffJ13LQK^>!15?=6G%Q-()m_&*ugU* zLTs67{0-m*p)BczljRrA=$w^Z<_%ilgk+0ojeR;1ngl5LPuNI&^meZBcI+I*BV-)Q zgR9VZ6!w>zhy56gRqPu?7!<0AH{;IQpLcMrcW}`mqBpAv1L}rM5HU<9C=)>pGyaIT z*r>yOc|Q_IG?$=L-pK0Lm_`B#JA_CfVT%w*r0xoNq>1js9y{|%^P+X`+<W_b1*lo@ zR`fNWfw$QF!gV3D&EqQJ-f;d62R=;z5+B@{DMfg<4{isBiU#L6Y(o^pPsTgjOOCqo zqkENjd5i#WZtPmXXJKVyv)IQDp-J|c7x{5$Tn)0=c>>Ue<_S6(uW6S>wu{qfnYf){ zsg!C0SYs9p&rP0)fyHr_`iI5ZsIP$Uih$Vtl}rb_&8Ih&EOE_{DynYzJG{<@Y<oku zS?9Cd5D;*iMSTq*c3|_@R@l6_&B7^etcr}u#|p{*0p&mj%Yv$w>LEe#uw@lA0b^fk z1NKEQ*pAJcs>WSF&@5Ep=)*jicfz#t<%r}_GXlZD@d2#1&@b^SfA>Ji!4KZoM(ZnA za%fkcbV%ONCI@;-`hAI4iV;|KqI%1Jg|v3&y2obkKU44DKXXDd>0YMaX{q<46_OG4 ze$3VT6&cOM8YT691tv><^pW4zZiSUdV*HM3`;Pv>c5J>@y;ten0D+YCd@|&voam{- zq5FymhwA$d$HokfRH1ie+5A5c*rwA00y=l0D=RF_$SV5$(z2-~JVr5>k@S#(kdw4- zrsGIu5bWL*^dS7=YQdUgH%6FoC%M_jI3)#rU#b>})7M%Yn~H+IJE!%t9e|XLRu)N3 z#dEWYuArZHpl%f`pT%IdwmXJLMQ^0+;8Kaq7#G85fsr>=78kXQ=12&PME0v(?T%G! zb*W;qy`bn8%gJ^<ZDn)4L(d?B9pZ(P?_gWo$!Ui!pcq<%2FXvwLIi3FG=yozg<KHt z;vi;70;0}ga;HqEK;@f<;Z5BEn@!d;qCw5LtWFGT-g<<3T~~Q1tE~EuS4Pyc8AGG$ zGtL((A%NT5oy?UuT1E6(-jgAk-j2AE49t~U7l_G~+jHt#pmH1iEURnBc%IiY1ZkeE z)xH%0z^ijV%Sv&xP!pw71#T9Z3p#`(K^9T43iFA{L&w5<llg254_aAuvS6Bj_fD1z z9Rs#&(J0xlI|1@jYYC7c%ya@D3-%uz_X3vV-#|rXvtI~A%_q^)M}l+MS~T&qoL=^` zsIIM!76=P*wBT$tt$o@_aJ8UAv)tGCS}yak+H6z6y03+v1c@1m6K13*UIn4QRpx40 z!H)5edRm4`o|e`3gQw*xAD~SpaU2gPkY}Zn8TY1;iaa_NrwxDB&DtX1N8(~==+ar^ z*{tXso7$wQvjtrQXUm!}WzJ8`3NHsFWYf4t4X^bqh0q5ZA>}L{RU395e63?<%D$5i zWOZtNC#pnwSEF7nbDjL?a43z_Jqe(S<OA{lkj|fwoHt#N(1>T1NJ0wfnX_i~_068m zum{@6?9OQ9yy1n>a%Xf%dc)hIVKI{rbKgArF}yRnAGbyGs%X0@dNDuoy6EE{_qfON zw&*7#?F~LB;Hv1QOP?kmNq}?mvStgPXFUt~Z;${7*>7+wG_HhZ-Wyy6{YoagkyJNW z8y)s;+bg;PGpM8{x-2+heLGe$5vEC3wopN^(=_201xoBya-gQSc_{wYtR^T4kuKLH z&^z*a6yP-qEbv;MropmNPd>R6?qDF5X9+aU&%i*M6DcTQ^kSnXf{MvdUTq*S-^t2Q zDu6(H5)z#V2rTf541|{}2$`|+$_xai7%{U{?#~*jD_-l*y2eW8Y7{P!KnGpQ-bP#l zQCm$k>?Of4JUP=}9N9%RP5x+h&Bw_$y`_So5-$_v^fZsh-%K0AP?0!4v_m3W2#})% zUQFb`med3D3^cMI(Zq2|hZ)+QjrWv*dlCwaTs<;Fyh8UyHbb=jydabcGxT(MsWZd^ z%fk#MKs*mX;J`SPRk7r%Mdl8I_gn=}$g>Y+f;m^NV21g&7slL1FaG6qW_+f-%Klw2 zGzhuZ4GS)9y8NXv1e-2;Y2L}UpB-WgIq8)h>)qM#pDhD3qh)WU_;_7$8pZ|yQ8$q- zSC&2tqmhV*bevxzEUhpNlvBw#CGRZ8)5CH0;9u0|IQcKf$$vRcY;A3vd=tm{Wwwos z^`JQ{%LEchR3A*By{<*}CI)TF)}?3{2REW>tL8iCL-<WB+mvJY8x*ShMg7~Q%-0+< zW;JE51)7yq75#Vt2v6eZgC325k``iO&?1ZjF<@x9D6$`8X(Yannyg%Ci5vwA(Q26U zP;2E{(1k<+aUYFVV4;Pb6n7hoB~$43Ux=BfOGPMwP?IR;PuG8BFeadN%kAU&j*rKT zw3-xQHE{%auABJNEeDCxtvc%DZ-gU3m(&+aaT8fzQ!a;nDvztS+Mi!o@!S5p_hy>l zQw3AHw;`r}k6I@Fz2skywOJrziM)jN)7Gw^n=#T%s5VFSyrm9|y%`u!u7L4i1LKO% z9279H!NAsaMq?(K!c5SwS&M(cS$hIzZASkLtdwx{>3Wg{@(;iWEk<Rz%NDufLHDzo z@^CzVgdrH-M3{u7(EqTl<IooFE{~??eSCQ=$pU25=!4>nzI!Dqsb@Xrwl|Pcj~vtz zQrg7cA1kB;8d?S#0!6LTe<CU27yRvXwEoN}h>eaGOQ%LhtCWtG86DX%bBPVJ6W&Hg zyro|92pkQh)FbUZgzu;XX??)U?B<nx4F?@YDEPQQpNX{IraZtm*h{2Qq&H?sp$l1v z2?>CTh_v(h(sBw2gUrR}#XelqJCJI;R(uXy$y|KWO;r>5d1=;kC@2&ndkI_2LHRCu zc%nH^O<?Q+mJw9*$-2BFOw4-_jMFOD&8i2>O1f>?))ILS!VroOw?<%_;+HY{s9TeC zT@2xP+-%MTtn;(YlOcEiGO$*|<VdLE0=<UQLB|s&O?(;G@r77pIBAVO`ZBKIJ6Kuz z5@&|J!;q@hwA`C<tz+HHa1vn}Lkoy;4W@K7e!%OPH-jD|3}*-@1Ltsbu$P9@em~_( zWQ5}^@&K&t#w;1#HUiE)Io7d^4i_h?3rW^74+VBLxAGlgJZ2}Ovv*S(-G>}f8=Xe( zh44_0uCKD9KkRjEbYka?x!F+1*s^2fqh2T7?va5+&H<WN%Jgctcs1L)X^=vfSIfHE z;dL@s(jK~!iYdn@U^{h0mwh^Hrw%#fkVAP~x5K{Wqm_LN17__=g&0|?4urvWtYPef zHG;7`W-MYP3P^_Pj+}C2h$;&OU6h*?I2$F^3<Cw`Q5R*hBH`mqnrQJqJkyaffD5wz zL4atQ!8f*RqK%X0A{ZW||3~3(wYjg1{d0!`pQ7~7-yzv5{mVRVYtcbu_Mv*85EZC0 zh$9(@YQUgFY>6mvfOr4>a@TnC=3{ZEw6nk!+eC4zgIUinT-gmu3+GL{m+=c~>cO@g z)6j`pc2uZ^JsY)vz83d15HAAs6AYLGC0L*faTxdmudpOISDdY6^sSL!#DjeG(m*XU zG2XIjJz3X|P<=*2$~XWs<l2cSoyVviPvYq7n%gYq?iYSO{eZ+zgzB^RH-5$*kobvE z-Fgu5^V$7bUw78w$D%c>3k;`OJ1?-XW+>|N1*S_Vs$1&CjSCFsauIn05Up58K~-C# zk89*tmw@Zq5$LfLed0~VN~ij4hfIT-HAI7p3f5*_bfB!i^Y#aS<8}C3BIk~)=vz7g z_Le5nJI7vNUKTe|RSDL$BNVr%2x;iP)WW7Qd%j&~2vI=DlHANB`1sKN;N!kJd{}ru z6(Qpj(UT5Ryc{+36sWBfNfPNPkeAVul2=MV5z0GKe2J)JRDuwYM7RY45?8hnP@VT$ z5cZ2AQKhCT;C9v_Y@n8amP|lEOC}_sKwgF}rKc1j5sJGVA(}UW&ZmY-_JIzBa$$Ac z5bHBlM=a)6C%vzB5F(@dDr(L8_E!UPO!HGY+XuN1hYsqL?M~53y8q&ISLo2LwKyp1 z#?KB^-H1@#@9M_4ACUNoP~Gq9#_k6sej-%&ySnk+I{X~4x{)oggR5>tpznWmV^1Ca z4p805us5l?5uv!>)r}w4;p2eSjSM3PsBT0k?|*e;Zymx8P~FJTHL1E0p?F}a8$S!k z`CX|S`$C5YQ{DLKfvOu3s{38t_|*dvKM|_?UEOHkzzvEg(mW{Y>H*VFgzA1*HwNqQ zbHM6GhM<G1ZbYE(e|2N14u1!zZe-Y-RNaVB-0$kfId%9rV09zI$N{Pw5z6~t-Plrx zume;#GIUL<ZbT>^Sn9@w0Xe@bbz?YmcrewCeFv&;M5yj}b>oT$Bz_`P_q)0=@_@uo zgzA1*H?FP2&jG6&*#bMb>P7_m{#Q3f>+pAg>PCjWN!5)A#r>{s+*F5;16DUOj2xi4 z5uv>Q)s5|S2s=P^BSY7u>PCd(fu(MIG$3a`)Qu0&#nWq1LK3%uw7C8$7{kiwW&Cf! zT6H_h;i|q38qBB<Jd4C)t#@yblIs!XiI`}X>2CC_Z_F5Mos5uf{>g@{Sl@cS9&8mG z;Pc^!ejj?W)H#<#$9K)WVK(6Gd@x>}a#Q&~Tv(5b<I}uHJTQVoopa|QzzGpfNT`C# zk$E@r!xrLd<imO85S(2D-3zi~ou3YvH@%BNits~Qc4|Z^Wsa{{!{$oE8kt(LzdKK^ zC?P(;#uB29$9y$NUt_*`H-M$x;7@&wN@qOusfXjQ9to}HVF4z_K!mGAL-BBjUUp>d zb-8yD5r;h+<<b3z=d>fd7SO7vP~lLOz!(FGlPvu$M*ECOl-4<oea+v)D<1r8jg6(L zIdqE4Zaza>>jLl9!prsKC`iLjS`ZoR1kO<*&G@vSHS*(~-CLj19Wuv01l?;8BYH$M zk)lygNW<;Bw0zW0M2MdB12d4Om&Kt9Sz;v8NP;)C83eaQ9j&ro%`01VQ(xla`;mHO zAB1Mb$&K;pk@9$&QvnvQsGg>f?ickm8Eb}UydGIDJYK+~76?<b+!qb}EIByDr%KZ3 zmB`9|yk{N`=FddgaQMOqgu!ff3Q^qT6NFX(5n&P$8e%b`PCD26AT2aePVcp@|N8Nc zyVlVag4^n~zBl)XF5H`<nIeE#oBDDTYh)FHc1FDc3-Xkt5+zV=P<^4!jb0~>yex&i zR_kob>iEI)OUP3LuOd&<Xt=II7Dm+>er9_taFL9EBj%CQt$uL?FX*3=Ng!Q1$~6^4 zjg<(I>1EIPw`Kvb14~(jp&;<mKjfgAZkXrp@Bt?UBNZ;HX{i>1iDKX#IOv^W?8ZSQ z+pr3D4tHtBKw||%7Av3}$s@}!wXt1OTGI~oP~7lOqF57_N@75Os!v==JrbP!Agl>8 zHI|D<m2AB*y&Mj}<M8dGZaJ^@Pze+TOyL|(hs07O$OacZ*G^bRWFPvsucKifgE2$R z#=E3~nM=K#VaCdZg(F15@j@mmSuMd&xWAhCYxLvJmgb`|8n7ay&ti%JjX)<J^hSb3 z_>~9DyKzK??I3&`M_rD<Td<*70LNHTlWAiarK@LuW85>Mf<iK!Z7m5}vdlO&;U_qX zFaxETp$D<zwK;#t|H!I%u}=RCJ$Oc@$7o+1GC2+Kkk`$b+oV)t0-V-`*QdPah>Z6{ zYBAo!O0v$BOezud*;I}C6d3Q340?9Wi%xYl8PE-0$JiuOQ}!aUnH+ON_&g*n#W#j? zEXDyYBZR0K%qZOoyY*%BoP_K2fa^@}i-mo>FKhX$tR2a!o<Dy9^UZN(GXZvoMLk|w z)Lj3mTC}=CyX)JrhS4r-K=M_}ZR}8PHR&;1{hRAb>*@zr<?O{gF;uGxW`*LZK58sc ziK*ACI1|i!5%j7D<N5dSthxcAaT!;qS6$$snO?>87K~7<*Q<Ccl*cNF6P5Q(N@~W- zPeZR7_Fj#Zuz|=IMAWDz6_lU&l<8HTsv3CA^{OQu^{Sw<{TB49D}8*XS24vx(5pZn zI0VggbPP}@N)94Yg_DsSh}vY*s%&_~+y1%gY@Ck394tW!86UJ9G*)x$?^<ucj{PZn zfdCNd-P$_b&f9%$+i?a7qZ8w?zjo!=pTxczoOQ9U1W&>nlc7l)fjHSfI8xH70YqAo z`AOhp22B)PlZD~xa_b^Qly_BS>IO&6loha>vO2DSZ9D|5Fl=h4&k8#+PO!*lb(KFk zi^Mex!XqEVO{68}w0$H}b0WV${}CXZ4vh1@3gbKqMJHyQv4$~D)~I8g_2oJ-&YIFw zWSmC^E>+JsZ|lMmIRa%;&dJoCQ|Fu!HshQ)(1;Ot;+)S!e|Cy7<(xd?H!aQ?do|9f zX9V*d>C`x<B&+1=dBAYaI6mW?6u>#>q_S5MjofwOyn456El<R+k`0Pd3S2|=WybTG zq78+yN4T#hb2>=81;^KiM2Uy8gg6PXc`|u!piN}fQ~3?;IA&WrNWUahj)Ue@DQ&~d zTnEgvBx8WKi7h~RNWGGu6Pb$)kX}1pYk)i+^?9@rHW@i>yA;pZnAZ!5TO6n)OOS9) z6A}#*67T=@K@t)b$rr_q*)mpFwB%1XgzJwzf;)7s-UF62B_%oRUc(0cQ{HEK3N!93 zC{wBe`!iXc$qfNxUT4a3==Q9R%b^>%-|n085zMmOfwXCK*);~dtkLqbhlDno^%<z| zAWC*tL<!T*HWwI1%SYO<{nK6GLYQrlZx+jRR&y4}6lOO$k&i7HsUAnnsUxq24Cmqb zMYClO-C84?MeIsuBkR=cM&H)PY#xqmE!`-86s;xtM|W#L|LAEo^pD=wLj7ZAt55%! zH7Ipvv=(d}ln<#d9P*!0*$xb~;~;GX1K?Q#vStI|?i|Ly7OZ2kljrk8xRhb81dHg# z<Adkgu2*;y&yqqX#t>+7VSW)!VB6@~I7mp4pF?;|56&dYVy5EH^UOq3AC7b5{BnGc zMGu5^%QH7>w8n+=&D7qxa5Uio>H)#Pomu#BEF9Pdn6itd(RSY4CN*wr5wJg0o@C`M zjar;;xPwZ!AV1Yn&vb?zj~z7AoawOBBn1UCwuL2F(=WukuFv{S@Z}DGt#4hc6P?U{ zUsgvGWTpL7^~|fhj;(KBs~cxxt%gIaQ_~r-LJv1}P|RR*>73fX!~oWLaelS3IGOmb zss2z=W-5e^^D?1=iz+HTpgKFL43Z#q%PmX#Lm%?X6fNv(;Sa#775n_dQABeDTJ5kE z5Um_ESYh^?y<^k1n4r%(HWL`P%am{Ong`?inzWd4>s8jU;-Ps+mh8gp^Sme1uypU1 zYFJC9npoxa&umvpmx%1_NNxiG(rE2(ly{{A9IaaWg}^a_0o#BtRceld?X$sh9ZLoP z#X*;NA(jc&!l^3!qFAgseg~8!7!M0I8lo?9B&6#gA`Y{Z)fx6WC7Bhh!F96nvaF7; zgNv9pV4|BtK=p?x)$8VGqU&{b1+q2kE>q|F6~g&>_jT=9!w8)<^8L(UhjKg@4_Ap) zk+lKBH`f%eCYPCuq`|_GG@>a8iBiC=pn)ubM3~VkU>0T0G~QT29c3Z@feo)AiXgR4 zN(gO7ga!YkIbkC74>|PTS6c#GhZLqBrJj!Uy!^v1g_Q&`AWXiHBaA$WjywR6)ihU8 zP+Nw9U2b9Ra3OJt4OiLYISyCG9>2>oqxD;A5JX=WK0*!{NC$=F+Z9^in3Eefs~2Ie zYsU&k3W_AT2vbmuB`$tZzQGM}iu3`@S}$g8Msud%1#dBzz-*X2+O^G!Z_BoBRc-Lz zZHhGAC#K)0NG7Hs+CJyTPMP9Vt}6SO8{US9rNv5O{RRQS2+}!|!j~tzycW2g3sftv zC%oBecLm+D^gIK6j_z2YwDJVGVp<i1mRC@9E_9ESptX9R)rNNL#n4)I?_uJ4WVz`b zpu|~Vcr~|YVp2iEoLi6r7bYh`H=SIP2^{*jJ5`1<IBKR>7Mx5kCKTia=@8aiI;W~| zbe_}EzK$!WtningFw@6iqLYv47`)k2@>}Yyp0G7xBM=u|bG*oNPk*;U3EX@)$Gc@K zpfMK%a*1}k8<%L4RJVhr5$%ZW*w)%%5Aw?x9~y>O7GsHlGvvkMo?Xnuj<%yb+t`kM z8&Rp5dzaY*8ZvXEh+3#r++0^t_U2)oH;`1Y0o?|RjQJ#?)wj4g>46^z;Sa5bs5`+1 z5R6Tf-l8ETV5>%26Z>$!!(h6Prl%P-?^(lc@E{tfhGBo-=#_5!(T!+Cian79O(wO> zb)qOIxZAGs<4YZa4my!_0MZPT!Wkl|hG&^1B~c{52I#_!6lM{AI^E=;kY6InAXmsy zajT9*4V-$oh`AYZ^D#Yynl&jEaLU$%F*X=cAoSp5@ID{M#d-&dgaR0;`7$NkyKFf{ z8XED+8`R!FmcgPswWv;@l5M5qtG(`zUC<(fi&3u1TCFtRoo|=WPdd!1S>jr6zNC6- zIf2U-i{s)0SshosuEu`)-889mFY^ru_`nP>0W5wD8`Dx*DQC9#gyn5ZOgWi^3`oom zWsu#^PQ@GR8cR8et>QG0`q((<pa0>m)oL+K_4D@(ZKziRB+Oy9g35@14&eT<0<NZ0 zlAcw?5y-L3L93MIB16%bIi=M(4;hXfCzK#Adf8z2VU*N@goOKPDQNcCz;Vyb-=Hj` zFLb0~9%FEXj_n=_-_F(=OvHmRIvHR$KN|Qzt)zp-vo{RYv|svr5);hA%2cjv#|k!; ztbnClDL2@m+(NEe#bE<~!lxOP-@||k@kK+W<ouG0qG9<HsRE(rc0tdjp#hkti4%A1 z^e}@W%l3f}*q<<8G-j=B%v?)552N^It#9D3#;gr^SU<RE7Uan+#PmUXh3brCkC~P_ zQ=|Qq0Z+qZQ00vmI1(~l^$t#C=S0_-$On}sQjKe!=kaILoyS;Vl6kBzH^Dq|e>?d+ z(u!4{$9`R3v(uTJiJ6;q#u@!{IFI;qkW)F!CJ`2}IphEnPo@a}5Yy3|-0oAI#Piz` z1KA{wALL2gH{D5$6(*U)`f|UcNyLoFa-4&#h`Jo{S7|x^u4Xc#A)CpM(V{SCidJwe z&cl?)rWWtcYx7r?X{CK?LLM6{*tDuaE1j;^%pv8E$|^NJs&%r&G@Ch>drN9~;IN|c zG4G%RTY_~$B!RcG?gCtWO+z_1^RN`~_J-cZOys_mJv;Igf)A7N@{d`v?ZGB37`ta# zS6s~8b%7m68#Y-0c(UwcMW8n+{;=f5j7)wFGxcm-{)w$EICx{m5HpR!sI5yH_qESS z#3lodW+FwW?TQ!8foyHeSPQ=@t2E{`=5kDP@%FUC2hoCb#yo_QBUJ{g%0fK@NHwUc za<`=&r^8ZZx;AtbEe;`y()FQqmjq&2Ao4iek;%mW0IW_;YTwAtaiZGh9fM{$;KyX9 zvPjIR1k#Gyfwrn)wX_8h{VZn)!zK3`T}_1phHC}`_J}a0DkdsNjn)Mt1w*`GqZN+= z+knnOE0t|7Wk-Ns5b34p^<?p?uU!5hAZX?k*H!njgZ~BkUlrCWf<W~%L#*Hor?)Ur zMAO?xq9GVmFH!Y!QK{UuaLmBs#~yp!@wiw4H!D2xiBIC?3MVWD?mFmIgJCL7uX;L) zHrslc5_Sd^tFtP+It{uja&3ID9ow=U*3)Fl-0Doz!Wy*MzVYEU3&AP5!RwmWgdmI7 zPpyeYK-66gjg*^!%v4RY-3fE&E;w6uL<p%QIj)gD5SGM!TKUybHJklr@83xJspy}X zj=AO~(g|pZ`>3<)iZckDrZe4I_eu<0FZa}6XPm}UxJI}G8fe*8n?9%~<1M$#tuDOn zH3o;{9{8IpK@FE{5WdM&-?9VY2K`CWR@f-gC|$GVzSv>3E%y^;NI(ZiCYCjVnr^ng zLP(dOb)XBN_BD^h^W#vhOa^fyC(Eibl~;JbMh0vk4U97~2mxcFJ~OO<hb{;iST6s; zUYUF59@#51_3ZI7Y-M}8Q4Q>naMYmSN(aUE%Et)`)|g{rwa^JX7vctqPZ@bFLg$ZV z=LyKfLFJkpAvh&8oKlcBlb#fABS*B<fwZ<d%tna=V30yuLQ?pPI}VK}mMH0?NkTZU zAR9PMaLv0%j{?9f7Z~ddW30#FHv|?bWBnp0ykCT;Zuc+;Y)eiYAsB^{dL|l~iA@aL zU-$=`5sT&cJnJr!Il(4y6{s67#w9}j5P8zCT-PbLf+Cr@Q2%mW$q?&0gJCvp(>zo) za_(?+Y*dQ{TY|GgSiQ`M((@`13*Ikb0(*#eMlAE@RG#VK6&O$s#<&4ySPi1ws|foX z$HGkEvl_ia5YXHbpLRIHR>Zf>TRHTeS`2g<Mu4TaQUud&tjFM8lEczzj%_R(8(V^3 zqB^!^I<}RV79Zja4w09#K6GyL4uWAJ>ey{|Yk4w0jz#wL<18XEJhb6+5CQe%AK`CK zL--qfo84toa+iZWq*KBZH%KWevR)u;bPvJmVFY(Odybc>tw7HxtdTHE1Ic42GPuY4 zG%`?CbH$?WrnIji@>`g}RN;pVtFu8l55L!&JYR2)mEfBRV`uL3Ivcf)1jtkS;EGZ0 zg9{B)^92rDwHvM<C?;}kFBD55mbd~i8~EGd`kMD)+CO#5qIKQp(s=u$Dz(1hwJhFV zl}aGg1n4AZeRg>R7H^+ukKA;0)*hj{L_Z26YXEHrWn-wKY={v@{V3DbHDXgHWYqUj z)-~YKs?{}OUDGuPanLn*Wk@F#LneasHBi<x5QdE@q)d&PhQ5kxiEE5YL<&X|;c|Pl zmA0ZXr<>am&^>B#<(v}KhRkZE_*q{3S6ZA_PU*}@AdC_61Mdx2V4HGdcrcmQ<>WRR zt#KQv_WV`4WjYhc<k~Vw=&@b2%aVTd=o4=pgWk)F$9R$yhoIyvDGy69{Hg<mol~JO zxf^sKsF@=}iz-N4*N!!e7#==1Ird1|l46Z)exYT<r!5%qoAsoyP_B`ZNjFl!^y^=~ z)HitNdv(V2Y^Lrs5eE-8LM>6xT%rNlL{~<z$s75JHbOxVfc8c#ep8yrj(42pjhNOE z;y3*wE85H8@PXXxZfdBO%6c*waC@PBi`}QTW??J~5odB@mncK^U0;-SjT2C!L(35Z z-Wo7~=4cTRd-S3Z0*l++x#RC`_T%Sy9b!P==dIiP;?j$V9WM58G0)YX4Hxq)jh20j z0ZU@D#Pe(trtYW}nnrc5^@TD|r6@9WT!;N@UG?r3PaXHXYwf#0dA$@USn|EC8QexR zFigr5p##YE?zQ4o^uC<1uJcj<QfXq=1XQh;I~;@NmBE3=8`=v-!4*I@wxAsDBbz_f zbr+bf+YlcfiBwielSDucWaAZz3}cTwsp}n5i_&qivwL!*h4@KA+*lVr(XT7#(0Oqo z7$&wB6|?{P_LjgXjNVBWC`V$>R>#J=(z?y-!8Xsx5()q`=N<_igYBt$@{w)>+MY1I zQ6~?^4q7TOwbaSG#RV&7EOjr6O4jg`k9Pl<ae?S|A+^*Tb7N>DZ6NGbkGXN_7Iw^S ze2N%;7*WelL@&>#61#QCJ+pn`G>|)3S2`fKid$NYYH%CudUd#^H80|pgRkOtikRg5 zl`%<%7%+J*Qz}dp={2zog#0_s@f)l^h)IDB&a6K?1x)kLWakBk1MbbBlb#pES}5=2 z<Jtt3W$x9%c5KU(EDGMJI2dDC)<MaNb&c<GZxf_aU@F`#cGR|T2Cyt!ReO@yAj$%g zUU*eK+_>36xAm>T5^|J+>W}W%c!Dj}z0awuW}9!+ff_U*p%P-&p=6c-Xz+|ao^Zf- z1_CB#Sir<%@jHcX*m%=&V*wKZaKVS{l`BI1LI<Q2FR_G}i;-&slnz`f3$Xn_=VCr5 zAE)dEf&g!yh>e<9303J-6*cuPGUY40cboV;esqc8KiE#<Q)WA1kVA|j1+p=H<gsB6 zDp8~|pE|XWFrqaqGh+?9P`N7vU|7)MLkSQx^l=v^t<O}G31W5ehO>hH;4TnT5(8N@ z^eW(h+PR)3R(y~_S0>~dM~Rt|)Ypy)5xSOWLDLKBkN<Htx@-y9CesD>_1?T~`ZNGL zvGHZg^Tw=>i_S0113Ox95Y5?OP^XYVg%1URMo&Qu@FO<_^L}6)+2f%-JK79&J^egP ztksXCxf*Cw9lkkM6K8crg^Ts0cyr9+tcb;da+uX9qEN`pB+QBtIgztT%oT`9aL-~| zTVB+JS#4;?u8niBYZfG7WvaoZy5cImj6Z5{l|+|P`Yh682N38CuIe#fA+|KRHPDPE zlr3`9E`e6LMGbMj$AK_zp_y<RMw}dVIfg;3L2__TLzZM|iRQr#Q&~pDO{{1lm348E zcWtbK4Wu%{Isgj8BydKE((o*k!nGra9<Ro)UFu!fjOc;(4l{CjU2)SV*z345Oph?T zn}!-Wh=*&24O9NBT!hPmcryRWex(UA9Sl@!AnJo{@8p4>lP#G8w<VA|xWR10qB#Xz zf3pX9sD(-*v~h$3hzpYJno?wDW7bgrZ0@6GLk;A`n!JQ^4*oOqo*LPtYjLuLt|f~R z6dz&!PeN;UY{7t(t$qNq*P7N4l_e+)GuljWI}1^Xp$$BD1cs@RDjOOz5YDiHGmnT9 zUN;J8g`mT6Jm5jYz=&R@kg@s@F#Xjixk5`H^O-XyNQ)eOsf*?Tn0aUPA0o{CP%!m* zXDpiEIJ7aJFE%v#);A8_u;@@|xp+Sh?+-l#r+)gG8*9;FcsvZh4=y?sy80no8`!UO zHRef6^BM~p^VT-zuI)dBe@Wm?<FLj&1a8bj;rUw|hp_OWjKZ1Sn8$wz5O4q`lx|;a z%bp4>A}<DaJ2Yoev50KGDp>EzMyP^lqB{3vbtXT1cW+il#YxgnCQk0l>bN-h++2v0 zgXtZGI5{DR68kriC}Q`a>Bm#w)CrDL%F0{2JyI()JcC&E(!%v#qr~f%SJc9d9m=gF z5oID_b6x3@NPt}u9t>2@Qe{9ogx~5?kUa%NMkx{YjT9&*CA2|EKqtOji@Cr-D+vnK zVj@i3EeboKA4#MHf1(`dlT;bglo7+;YX=!2%>ySekcrNR&h#l$C#iI+D+bWO;bOxM z>f}J#N+E}bRGkc(YB<}j<57`Q-923C02^JXV}`p2MC$Q~COX#HuWlhm>gviCqV+CV z2Z-8Jw^3iEb8aj3QjS3#HY;$_;s^{7QiE5cBODV`2w6Fc51d&G*z`CGO{&CH8I&P< zaFX#cGvy3989a9&Y^;x-J84v6Erj96ygm<_+k70#YE1S@*f5yohaMKrIgaOeJ^sbv zm$ccy)TtmSi*e0%)bY_)Z;^U#8ji;*4k#S;j44yY(D0WI3@n#2^N_hsdNS3T$J;;+ zqN$wKQC;6*+~zQv5h@SMuGaZbR!3QRz=iKAyq^zebtY%!AN4w=ok6;rsN(#Vtd6tt zYiO$9A43IL_R%GlT@)$H2D1jYmJ<}TKX)+CUt8hOw09@xma2?*T{~8=g~$rnJy#g? zh7RS(V{-;QR98AOXta)62;>0qtAy7j8CL`QM~MYY5lIDrXEwR|>^)UMu3Hc>v`7o- zkoCS6aU=}sz+N48U5n=+3y*Hu$h+BquyQA!3mj_W-Kr6)l5a36gAv|Mb1_d-3s}m# zsiV+QIt~4P*n2hJt)5nM9@!p81R9Yd`+CEmMspyng&;Ia(Hwey!!YWDHsM7!QWMQ_ znS)|maJAV6;k7JmD%5Nco-z@_TxW7-Lg9?2h>GkGXH8jlBt3DN1AfcBMjY#O)wsx% zi&jSI^LmXBYa0IEYrWR~`FpSP1~Px|Jv3%^4&I;Gl*wPgE1u}QB4HD1CXn2)^y$&7 zN2BJ0A5wPf)tUrGE4)Kod%p#fK(+zh(2iXj7h>18la#%fh)J;w3P+%+7)lDoSfjkp zr$pvf6O2HjxoEhSEH6{p=AY|u7za>p*m;|OJen8Ql<xBB5+LiC1{Zj*_iS8%4eb9e zKkQval?V@voeNl%&2_*q!*FQF6DuCvVq(SPP2$4di2Jy>f>abuB<G=*_&AJ(n3pm; zZFiZMv^gi=3uYkEfOPYpbgqE-%D%$e_%HRssTmc(fm6!ajW}Q#e82=k@+f@J-Olbo z`a7X23Qwm=S&XTMnyL+g+xu>0mWI_}rf5mnrrP$NoB4Emj|?NgscrD{?Y(SmsaJ|t z1It@oFwKN}-J5*$#@8lSc0QEVnS9^+;jE4;JD1NnKt?94?8)$Zg%8c149aD2w5Pca zR?j5aHEmR8->f@FdQ*j&Nvc*mM+$)<Q=gEQP@YPdXr*7*j*S?3DO*|~)Cpo_JKI`I z%7)Tl8x=$8<mXYBg!8C7t7f^4-hGKHB4f0uPv{+bsrpNVns{JTxnlKbDYu#AieXzz z{u#NVL7*n18nxg&hoj0BiN=ABCrfF(GUg~2NovteCiSRcj;djscc3y47drqQnPV_{ zVizjBDx540&!v;4fuDCcSSqw3x|Z1-iSK?yX~HUpeC5zA!7YVHGBJ+w$N)cgCBdiA zLCw0{hg0T}yQ>s%rI#%6$lcLYO8UbnY|!ky$|Fa-jbAvAB;yk*0uxlxrM41k<iZGb z>n9vpN{SK}N`fnr5du$*wRReh`&s9OJdKy~!WpTtGv|dO(+ALk@WO4aJ!ZeQGqX7U zUCSI(xup1a(eObZc8NKr^Hen+emJY6%rVG3pf@w>-JI2N<~Vd9w*WxH8*mLz7^HiI z%oilO9nUFD%nG+xSRtLv@kl-Af8c;PSmzV<8``mJqhEF%WPE1V+f-NF$dpkanl+i; zMde-Oz^#Vv5vg-Ar!CXiF`|h{eJrXgp7~b}S99e1eDByeoQC?A`9yj|wI9uk8^F%A zlN7~rN88IZ^u9~HXJc(_AlLhB;};g71@hN!{b;}wrHiZp*$RNTggpfM@4%Zbb$E<7 zsa6)x;s-t(TuXt^hUds<Wf;m}LpmaEn8ofBhS7!4HGwS`$5O=LCagj=^6YE;DhGB@ zEnnb3737K6L=n(|jYK~tm$w)JlUU)ay$ds3Nq|@lN*%0gz0NfDn;-C6`?ufR>J4Q3 z%{If33iDQXFVinLOfUF~9M$h&P5Nksb1*!%xzK_=h5sj{g(*^L>!?`QjxCt*(Yyev zK~a7r^#hsObc=Z)nTqw^mZfskzyON|)RvkHb4k%Pw^_^`z8`q;&KkG-jtWMF7w=5m z?n}zNI4F>!O>(hCavkSGz@IKl>Y{?s#XXrWv7sHiF7aa3C2DwaP4S6&@xYXLaY@^( z<;Ah%5-*m}Z!B((wCrk6c(HIJ($W6$;@ERXUaY;FGNca^9jYqv;_cJs#SxwoFW%m5 zQ3rwd1|63a!9^LKg(!#(;fe;W$;X5j+n7>bY<W#oU^?qn^;{>x7B0+`>~goU*tmDP z%E`^nuqbcVz<O?=OwF^3J8M<ENbL2zIpSv;ygAmH7H^KV_Ln!u1~T4!^OL}v4?T#H zM1jBmU-=hu=pT!q>IR>O-^{{DCy8}>h<x;(tA{`05r-d+C?|wDAw~I-M;(34fE>$} zbGdpf_enUJ8$VBZs(emZ`n0D%{Ta_V@uX)y^W<gC*0Y}d?B_i9dCT#6K0hyrpBKJJ zKBv6+B`a3E^rbI5^|aGo{)$(weATO8{hHUl?)CWmK0mAC=M8@#pEv&DoBrsJ-u&j% z|M)F$dF!A2>7TuA_3A(Wi?{#fU%un7{(22opxG+6ADZX9`gBDo{0+tI_W34fu~(a4 zamTD{$129mS!Hq0She6_hk`pLt|R068|#WI*B8^_7_0F-E8j6DGT6<&T|l>cr#eH% zt3YhdT79QLJFcxEl&~>VHl5#OD{H95qxr62WoggXp~*WW8e}Blki3%ykc|NEa58dq zKHNeJUP|qsxncgA(16K+bu_!0k}eEZyB_@4+x!eWdIv+u7fN|%M0kgl$4xFQ--GmG zvHW=~|8|ydNO{^%-frb_B97&I)AHY8#M7UnfBH<f!%9S(z;gTp^?R8>HOFhA)nX$8 zmkMS)*n!;xf|Ka>qT}k%VdNg`LTC&}G6zvHl1le&Xt}(}h>ViT6Pm&1+_kU^9sefS z*g(3;fOkc0!`lmWlrPtCtD*Vurh%?T=M%|`0bPF|fazW|hfnSK6hz3?Ad@E%c7IBw zFd54hOi*L?2|Z&l6fA<Fe$hOMlYJ|Ho{NLM_y>_cyNQ}ZPw3gjP#~T1*$5V5=fv1f z26Y_@OT!FFOo6a2yvIzBu<<nAZn~=p))z`9^(pHmQ=tqtyV17}Wy@4~$JVf8YqRbu z2(+9!Nr-Ya5x_xWHwy}|U$|89H+PB{*<t`{ViH8i=VkV2D(+6*{m4x4=XNL#DVY{0 z$oP4=)h5)4b9h%}nlH@&e@g}M0P*gEVGlavqlFs6SD!(bDdaMaj;^<V2jL}@OiA6? ze&gykF@)gazafNxq1@?=(?S<Y3H*1eR77eAw<<{31d7pKMPnY;FsK852(IBHK>nwL zobZgev__u<T*xuvH}fq<fOxc72t-4i+T6w=Op(n1@IRW{lz78831B;_yy!Ydl5x&I zvVt;iJo=<QX_`#mgpL5;4$djnJeXDO!a_}?BB6_ah(f`xN{i<kSt(ZQN(i9FwtAC; zW7_T?NSB7l9Yu~QHa%J_QrE12#@!U?K~~{y<UFe)++;X?O(yYwJ=!hvjObh-HR|f{ zRq#;<%y<SHDDw<-PGCUPGM)aId4w6l_d3A~)V*O@H3B*KF>r;x$BS}Y(Xgxpbq<eX zl}HD}!f$j!Y}rPVn;26)jXuH7$$;b45jk<u3M_pf|31VM@Sp(#h?rxh3ua3VFaVG4 z*@%Skbd$jhjIbh7L$?@#dE)(5VQ^x6=4ub@hRCg%_)j^0O}Sqw6K^xC^pnsI)`m14 zIEQiypRdn&d$v1%1wq2W)A;~EaHi~H`}}-|taA`SugZ@xZ`<<ToGQZ&L*#I)`u`nX z#}w_CN}a@(n$@{0tMd}619=f)lW@^QwvBrogY6Wlqvdo1QytH}UdJ{LFO)i3PU}E) zp-;!}eO|}L^L(iT9IO!Hz#5#@kiDt-4EGdg;5jHUdk*Df@EvrBGXnc1m5j`%5LEnW z-$7~#>DbsI%`)5bPKW7yl~m6Y8d4d=N#AoQB@>T2qI27N*@|1kUZqHaT|7q_#NGo` zb-jNr>;1VxaK6I>XE))p2Eql)h5fBD;j(5Bn25p!Ka7Bz2t|p2k(ibh6fmNAQq^GX zR3Slclt}0UD5b(A2?3tXX(7+9sLcQD;2Pt9wiS$wUt9Tia?odmR)q7T{T6e|cxw9p zW}%i)fOJMQCwQ!hF52V$8>erU`bP)K!GFP~m&N`$>wV3i@Z~d6q0GXg{Rfkkk;jj` zM`Ph^AY<Xufuc;>$e8z!+4o5@)`QBuefXm42RREBow!B_C;ts0oLD<OSWm)me@1|w z9sr80f$OU$xWY)iHM8)ajuT_MPxDDkCJ>XlB`9ZX3eP*MEcfT$ma*Iu<~DhQ(^EK4 zn6?O6l{xP7n#N3G@}iD)ewo#Il0c3nvr<Ni1yW%^Gg1b$R~ZoAVbimp3`kF0J5&6P z!(<HT2{Nh9fcAD~KyB!h!h!Z;0}zJ|M0eys)$Rw+jJsg#eu)rx%7KQB1K}#U$b#C1 z@t}4w1tzp|DohC70Ig&~|3l(@9H*v+37zi{8xwk*6?7&ftz5<p=kcKxV?qmC3rkE0 zx<c2y<D7mcXF`{F|Hg!lE%lEMlnGtOrY$2Aw4)YK-`5=BOC(FGG9jH8F%GgI=F&;z z3h&XF5F5yu5IYD=2!Cfx=t}l|jEwbn#Ds`zG9moyOlWjgU_$RFKuGgck=+;?${0a+ zU_#e8PK*g1;geWi3&WE!p=-S@V?sF2q}Rw{p2E!3X=q!$rZFKs=pZr}!>FrseO5=V zbf?^2)qx51rA%m_G9kQ!rDi{wken_`DC~m{lW_sPWZ9X}zRpZ&C@`UYQ)NQc?r+Yz zXOK|TwnS?gF(!nICnFOY3QTBdDokkARG1LD0b0p~ZXj{WiMtvmH0BT+6H>3d?1HeD z1hCr5=h%w4+JkJyamocPBnnM5p>MEIyiHbjbqNjE$l$xZe`7*8jv?GqnIJk)CiGP{ zZGqopLO^|A^NW0$2N3Z`5hB!ts&n*t@6ni0HM&v;C>;bQgf=oJ^ab`E6Kx&5eXI|^ zstFO-WJ37Ynb4lufeC$?0P*|=<}5)v$PZ;4A+j{((HZlX94E$vcot9u@{VAJA`8I8 zj7-LazT#~e6Pl|`i0Ad<%+xWIuX{~nLVCz!A||vetD|v`X&v1{`DnkD)yd)>%_!(~ z{voU5p*?3YVOOWj^4-h2m%*ultSJQ(uU9|Jz{Iod9enO%6=wiVW9bPF9P8;9uChuj zVvMH)&R}8f#(zCx17o@^62t)h0amcHptVdYtqglq*;Xw}cBo4*_qqWy=8u_QT_Ku{ z?FilF3y$c*b&BjNWE?;TQLv+VQ3z;b5mO0M9?Bo<LCW2O$jQLXA8d(s*b9fCY_EsE z*0WLk8`LwJ9Fd$+KiZ+~6?xJ_hB81733IfJaygk`4=^LMY}Y+1ebiljqS#7x&{dUz zU*-chlY!I1-#;3(&^duSsp0<mf(rkv3m-w8TmnGa;~4=SC9)6iWO>L#kw!o-{yiLy zwcuH+B)kodHD<g$;e@65JniYvIPt_2Pr}C>YR`#;-5gnvd%Etd5H}4L&5^^Rr)$Sy zm2LaFcC2E;N^KlF4#TaDeOocjj8lIuSr^Qr)!G}f+O$!C*&jw-Idgw)sw-|m58A#+ zC|WW!O7e$P_MfAjZ?ATKR@NGkv$$tFI~OOK1)cvJTQR%Es6d7#Besnpgnd{AIRH<m z$Oy!vxw&|_K`a&9T0`KjbVKo09P)zZ_t_{+4Bh79V!neWAw}7;i>tf&4=j5!%c^^e z!E+~D*|K}9yD1rLPeMCffXnd@_{=hCHFas>a#?0F6<^(IdbDP8MKVAch6H-FW?7X* zeR90(8ECL#+6eX(D$!MTevzZr1Uegt%tv{E@`WK{8b}<WyAuDd?w^UyyVb6~j2r`r z0mL|bFR`HJ0Qi=WMwyPZEen9n+0B#i(+SLU1?(N_n3m_mpm6|LiO|_%55h}^`4H>? zLwK<2!dq&n^$H)A(fU%1iUmP1@fZyD&Adz~#>}2jdk*Gl0Qjkx!f+0TQIl$9&>;v6 zs^r(GXxBO<rlLJrAZZsCdcx7DpDQc{n)sinG(#kaJ|YK5xhF4AZPZmbwW_zc)V;yG zwyD)kJxq|4B_d;_10bdy6cb{an2Ik1+iY6MLZP+F`e0{ae7OZQ*Pex;Uq|-z5p*gu z!Is@&oA*H<iD_72L(lm{-Zu(d&c<OuRTF(Hec=ca+U5{<999ucH+wf0X>+U$+N~f; zL&=OQ&MlgU{KbBw%e1bGk7Zpvw$cT%@P$bihF<Gq2;Fj+CX8de&<^jy6u|)!Q>u_; z2F_1rb&h5onC^saw#CaSi*Bh9kBrjXmg0EC@@Mho9XN&hzSpShd&`1FP}<=87U$&c z<Q3et;|1?0P!1wVUwA+K?8Y2nDdLG-Bm;p%;dG1#uJJZ}*Nxe0(fVwvWpYamTun30 z$K4lC4T&2(bxH&TI!jct2!x0!j|4gpkt`=v>`;QQv)dBnsq+9{R3HP;;s2|d`<Pjo zA2YWpUd~6$gzrVqk=N}@!Dw^(gG-*pEDC{*jRyKM`o_;ja4d%c8BO2ez@4eUY5yq` zm;%Aca1y%bz~s@<aF_RFik;qeul^rpkaD+7VsW^~>zL1piLGUBqYkO4@P0n$b&S4c zdmbYch?;7h&u4XXpA9ltA&i3_riwRdnA(9V`(PyMf}+#XJX6ARbnWTb0_kuj0(k+; z*;@Oe!(vtz4Ur#SAPY>HjV&;7+sMjFg|Da=)B^6~+OgpIQS=)LYC9jsg52LxdSXEv zv-DC&S14nXEro07>T5m<qbp`)NcD!PGP0Ed3@z*xYkGMC)C9jj6Hqmze$zp>2|yNC z5Om!Hh{?Kk0>rp1*CohqAEPCfgZ47chb4x?o#_LM*@!!$A7v&%|95;0hJMX1G0kNS zI$b5e(6(5yBbL#x#>f3ZKg>T^%f5d9#X&dpb6;MMelgb7qF;=2yGj3Yi~!#G6#cvT z5cI`8=>v<|h&!SmWhO!Y4}1)Ue(v7)hx#L%Q}*F#`giZb*qqu~0&A%g{Xfd;_}==T zmtb#wAP42Ump!n)*pYv!=)%X08B_YlvUW37spM?Zy?YWA8zW;qF7`1Ed=`aIf4^?! zEll?K<9UD06P~Dd*KiZhEj%{y_?*nhSou6lJ{BYU{1+f7_LLVRA{Ozmr=Iq535b0a z17ctI`rls#I<olI;Un{1|9EBB&lsoX@KJHsKYmoU>yK4zC!}Ff<44J^pW$I*i+ux9 z`pUX^OnFb%J}TjAL-rs<yM+&7jj@<j$I{W39#w8>&yh(>d+kA5+Q)~`5{pSokK!WK zmJTnsv@>mKSK89<v?UgkmJaup9$s!~N7~X@+R}L15{pSo5BHWHR&Hq|ZD}-ZX?xld zi%Cll^Ohc3ZfPiOX-nGDaM}`!NlOp)mL6PgY3~sU#`oESV7#5S#A4FYgS{o_puq;h zpLV4!?M_?T!-p_;EG8|<K1}BhK~rf<V`)p{X-hlPmRL+$n(r_jQf_H9ZE1Vj(vGwx z7L%3^@s{S6TiTMgG@Q0HlD5QR($ZXSX?D4#ef<f>+i6QfX-h07Es1ME@r3jSDV}zx zE$y)fnY+Dw2pDHEX-Pb#+R}`2OXF!vJJXhSr7f|Tv^2v<*Hdn3d)m^Dw574MB^HyG zVhG8WMfwI@!UXHEz1eeQcr#*euxhQ$sJ+4Jvp3uA4OWr8*<o+68tl!Oz1e$2cr$Kq zK%G`*r@aA{*_&PV2GnA2cH0}wy1m(BZ!mlIX0N@$EZCcU_6FFrH*LcPup)1;iL3JH z>)KTw{RYt{h&Hp-a7Qt;2xoH3c?7Sot;sG>Q4BNO_OG@>2C)0naloAe?;B!ltC(cP zPy^MD38Br9`gyv;ejf!wM(8Kw`Sr3llM@9tI4U8$K1m*3ce&ZYGNae)Fd)R7EmAYV zY9=~hJG3am9Va{dad!C{fr&u(iKXyWs8=z0g*_J)IsMx^{)BgICNDOS>SY81)G6E7 zK7}bfW==}(+E?nBVZQ9Q(wq_aN!WMgQmrlh#Dj*~o^DYXTl&S$r`@XVrg%^Uuqic* zi)mHn%@VZg95Pt~{FbwrFagQ+(v%5eIeEFj7jPo;VRJ+L)P&34>L@Z>+G%la<PT^D zw5cJdSP}QJY&R&Lj(0Vg0GH!ORS4j2@5C%=FGFtGMcqxY46i^xY)-b`Ao2$H*-Gj_ z?6#J^dbdP1gasgP<$(tMbi65CVGoXN5N9ic>vI`ggk^D$?z6eCp3l`G)~6Q}v#@qo zSL+wN4b!Mz?0CyPAv^1e>y%?-Lo}?`Ze%(1V2Oev2!yy2P6<HZ*Saj5cXQFa2!%r2 z{NHm+q(Qg>JW*x@!AYzkh;KT8wpd>v<5_KlJ3@L$Pwd~pK9@(pIE23Dzp!7rget2w zogMw#SL=7YXIrfr_v)KiqCYH8S*`w<t=4}c1mZy=M7mrB_WfF}?1=Ch4G{fy-gAt@ zmw;7)4)_h{JxOpV80^vfIYGTlhdpx*1<Z7!)gL%^Yz;L{MK8)?dDtW|OtsruBlaMw z!YChts=#6*mWv>W1lpWpf8-q-fz$a#48YJ1iq+&1a_~!nYdMl7!H*(Ad-QmP^bz|w zEzcyiq@7z(R4zLH%R4t}q=!uM=;PmQEsmm0j-TXwJcAwR=moLOb$t6YyqpF-{@VLC zdSnBs^a%Y6NreYHw!8!knt)nb8x62+6O5%YdLzm>?_7?7k9FYHzj1(!SDyfYV3k*) zV&i3}MpvA00m7bT&LbIbKT5^#$WdyhA3sVRdOMCnGS>}+^hsoa^!_ubfY-Rgnm$9! z^qcszc%^9nhDO1rI2J6lZfqry#S70fPwaX;F}ANu^<bgG@PGwuzXUdoUn~LnS!|x} zsfZHcRx%7{7(-`9MQM{7v(=*o^qHQ7B!}FIa>%kVuJfKi{`Mm#Pn{8BVG`Ctq!M>k z?5w8q;0axiXD;!+mO3p439k5{Xq;cwm=&-wL~Ix=gko7`MCpWwzsUfq)}M2Hq_+5v zBXR^hn_D6%eI^a1&z<<nxmnZ49;~L%%bKQls|3~lLj9hs>BS^Y40xI3rvEr+L>yh1 zDtXPjG5Is>;HMqln!mokyY-s_SAPK@Ow3X^qkEcHvDVQ7qpaqMP@5L$gxd=;D7A51 zgW^roNKERC9=rE?t?z4MsiOc=4Eiyu6b3B%QQ(2p=doNjU`#=Y#;H?_r47P~OFVEY zXqKh4dmm!ye)Pp_TBI8!ROZ>-`LgEE=g*6Td4X1!E8@EFvv3GOqZscwr?%qan6A#o zM5mbQcIa+-(D<^*k@tH=lRjEe2hBYV7Z^4URFrh*@G-(EA-54{<w1uv$-(!oMGzo! z4t|ui9(6!T2e+|_N6u|-=D&=UosfHd*hgj--NS)f%X!HBhH0L!Uiw4vj?833p65$8 zaUWr~3+Fc9$A6jjd&2H-$-0+-R42nvcmca*^r1m;fm|)Zp+dT!_Bu8uNf12A4WOU( zT9ySuokz~cC%FOiR&T(vKuGR5TUi2Xw#shzI_96u!#$NHJ4){IIyO8>X&K`cNcq(| z_hfY>gYSfMb8l8hyc*_ePW_7x+kIIbxe~AS@#~LIc+C-&3Hzeg+P?%GJH3G{0mm<S zGyVP~?CxH+e_!|jUfG3DwEZXceTL@AZJf;As~@KP)(pOy`+}J-9w|5cNa_pbzF54N zSJKm_kM(4R_&qh*hwiHw;-84(%{`iZi2QV@nrwevJ618i#wsir4e=5X_5?G;k3oe> z4T3wn6Vu`@dysXxn-4+DXE82TRF|1w+_SH0G#bhv(X&STO1sjf9vj7Avn92$QD35R z|9EhT5FEvH4jSH*z+kK+SN69!B&O^iFF4VQ51`9oFlA-`@7Uq7WJ@qgbEuR%61cb+ z@1~*aU+i6*uFnR_y1sNk*=XyDh!$CC&w^_LAT<?O3ysnT3yl)Q%2`&<2IV*{Zm{Yw zzdAB@$khtS7$8UTm~T9u&WU_CXv|ddYNE_8^U>Hw!Qyv7UA`d|gc|IkhovvrvI_BN z))}g@wyV4w(@KxT&=>dYt&-T)UeJi01=FJ(>}w1urz-}{>*^{hT|)IC4_&Gq3SA@y zP1+|JMI_J!6a%@bQB%St7*rIDnomF_)o((z)K*es*!-Y_X9P>-1o;<aJ0zFgIS8q7 zQ?e~QI>N_+^fjN3?jMQr6|z;VYfM>n25xZxjBMFJO17MhK&7&;@yE<$!fXcAK}3}s z7X=WdxqUHYFDd5|&<m5ad2BhQ`Ed+AjM)fC@ey8Ha{?D_2q1Ln0+BQ_PiZz-EC*Qx z%r2l&Jpmb{S8P0GL6B5y3|XIc+}I+}t57&OjFja>wR_&Vc2Q63HfXW<SMOuj@EeJG z$FKwNJ*XjC@I7QXqSbKL27oLfmUJC)Yzb`X@3vFOmeQRLtSu!Tq#=N<llkw!+9AJ| z{x*W3r)AQ%Wew+jj|Esd^?i5N_ky`i>4PaM>xP$sKkiM~PMlSv`VCTost@;(Q3NDo z-A;T$o#^x4MM?JxRKU?!x6NP3>ZtA&Fv2?3CABlFqq<i@c_v+5_xf^HM|H0qcR$YQ zqV;(B+iQKzYwe%z^>uF`*S(mQaiViHlWSPert+Izd*zT#db2AvC>(OYHCLGO4o7cx zR@5VIj+#6DdaKhbe1Ba#)-Zv=8i+6zRsnM2!z#yZpsTpw9P|d>qo$$s@F4Co5$*=J zhKQUd)5SkrI3K2YnKoYyRNClG+HK`L-6zTncp3)Kj0tpMW~dBkvsbnODKo0x>vc|t za(b}~2M*d5na4YvV1{=G0aGGM7^B|rROcRG5`J#tf_H#vedHJ*(J7ZgB`B?7sTVtR zChu_9I;yIIrcI=-0p4~be2PC2a=p`)@pTm;7gnUJ9llPk@Lo;Gv4OIXL-T~ggiw6S zL>%vQjr+Xiao8OM+;XC$EZ>%!c+>Gv)icbQ!Gto5t$_rDR>cS`vnOs<Dtf#*E8GQf z1mKa(y+*<5-p)jRt|wpP2r<bfY;9X>FE$ARkWHhQT5*RxWF1yp9n0-dr|V$XDGjg6 za<BLC7;D$qwxH$KvFRJLIv(5h6J8Xxzq}7zZ!va|IMWqBa$hWOwAQ;~d9@#Rj-~wI z*^Pc*t*|^Y3uk$prIdf+5iVlRQ)FT5+OY{^VPqLWX@;R}8+i^1D6IMl&)MJ&7|+p5 zS2Ra3RvZo~R;p~StCH*6%6k%Zn@7dOI;4w1HZ&D&o4kO$CMes?E3Rr(SV0NzsnNAB zaL|nRsD@-m4VKDf34sN97{QU~MvOtif<SqFP2~X@3km{W_EeR*xXe2@7Nq(OR4VGT zB1|IF5j{9QWh{tS8%T^W*Tg|!LBeYySBmO2=P1{%!FR}ez=LQc*1HxK0ifI_74$0M z$T<%haf}!bvMUB^c~IC#Az6q7MNh<#1{9~@p~{@16_4C3@)5QabhmoeHla580SCXt za>A(Vw8_z|j<cL!y#g%ffq7JQaz*d|m-y{s03zk<J(MXuz4E~=JaP?BA3kyw&)j+Q zcn2XrYLkR;p>*N7;fFs$P7Oas!j2o7llSOjV3}0I<m2?inBylR>iEe|K|)@fAbuLs z@#3Qic~4%ptl30P-se0QpXV)?bi6M_$Z?W`_Z9p|B3=X@GxAt7@gf)R8~)&pZ$$oG zO~8A)eEt|&c>e@>c>nBe%*2aSyl-bR-gms?ulV`vzh1NEo$ve`eE#-t&p2c4+IPLX zU7T60E7li-#fD;Iv8fo6@8%+W&nnI;&c^qg_&v8cw>S^q_u#ulzULR`7Z>3BUVJZ< z??nZ_7u)xe;*w$*-%Ihm%)XZwmls#y`#yZHl<!r=RmF&WuP&}Gu95Hii}x4T7T4kX zfnsYhT3nCs4aJScO~p2RKUjRI*j{`X-;dyXbMevQW5q4<{dlpX_(bu^;#2s3y7)}- z+2U6Fjum6YZTQ}f?;ZBNv$(Uk3*Wo(y+^*|#dz^K`QBT6zPPXWLh*O_eo?+Vi!T*l zF1}KH72mHFUoXB<?2_*{i@z_vReZbn2Ymmr_)f9A_^0BZ@%@+LyT$j4f5rFv#h&5^ z#lPYE@5K*`9~J+B?~jYU`2M8$Y4M-M&+z?u@r&ZWihad@<NM3ve~MofzsC1}i{BLO z?lZgB;k&+juzN%IMjCR==DmG(9(=y5qTvj&d~^F8i$14Z+EG2>wXPj&?N#6ACN&rJ z!5>?^6bj9^=)FSMXp1e3Ra+R$TG+rA!agi%WKbF*5EU(FlQ&_C5sE6fA~cz(MeaIb zw&V3^MV!Mt=Y3{Uu8X3dx1Q5QD#iOzqHUdyRXcre)+vhW2&Gd5*l8=wJMo*sI;FDk z>%z;`cls+72ew-6&sPsOjd-t@_a4!Oyb}Mz)&jQrySKLbxoN_`w_P3_MdLVd9;NQi z^kEktcK!UGAkTN>*+eoXzHWoT8LXiH{SK3%|Ch-K`}(;%f_5T03T8rY11s+rBXrPC zGHc9MZ{L))|JE_Pw#HV+p{KRlH$J?g>WzAB!`QwQW7PFndrWZFsL5r+P4<6bLKd8T z2oVkxbC$;u7y_*a=s?&M<EKh5cg#^5K-*A5mx!+=2Il@8jhS(jdM(`Ch|EO}KM9ll zY7e^m8B2ssJx$;L$rrMItY6z#=6c-CK3r3)e`=E<=i(V@RTG^1CHA^k;UdHuo%<iG zS)Qn<gw<))pYXnIqNIiL&VH;<P!;UU{+KD&jL-d%4&0`f*ybt?+xyBrsfrt&iUBhn zjLY=MJO#@3In$<eKO`G_nKuj2)j6CjK=<Diz_8h%o*8sbqNv8`a;sy>H0>Yw3>jfa zcrFvW2+{l<XXpDmJ1`O<zcR+-i9G)``~tvRe$}rylGbYo7#ga*@>k+@zo$be?ap(; z`kaGpg!SDj*fbRpGRyh#d4m1V3Y@$rU44VL?%g$n#fr9LB;w*@Gj5>2=nxorNjoWd z1wN1xiv4Y2e5IS9z?sA!@nr(_9Yq634eMIhSD4ifGx;S4$Y$~%6(uF2(~-y~(ulo| z%Y2m}d|N<Bf#-TVASwsbz*R6a%g*LulK~o1nhJzbK7@H-F{>V!T_?UKNmRZG@IioJ zX^0_pmi9T)!7dIhu(a=Tu-{O8D|iXgYnIGEIiijBzV5U~QW2(xmI$##50R^CVgYvk zRp|=xlpGKzwJG^%zFb3w>6Gi=%}9Vha4?JjrG=CLtq+1^Ln1~6M0*ybDv<?76af!$ zr!op|_R-E5QEn_r{;t1ZQS#pIRFsA>Oo18whY!g}_=}ENQ7jatuz`yBF^+TxvHAtW zsv$jLOaIIHy|481^m&tn8h>6#Gzo9o=c6$CxVLr`6$UlNQH&dyLL0hPyEIz%?i%v2 z0$ddxxK#Vhs1X~HNIPXBQIwUZ+wiAh#(GJ4;7{wRL*J#SFi}WOH&s5h&Ox$CzEja- ze9DP7to%T<;W-kmsHJ0LN#45&RktDU*^qG?drpxNSayx-w%Kc&>NcjeLD*aqrn>Fu zsJfj^yxj`Cb<o{*)ah=z$byQogeinX3SZ2|KEp{+$9Ar}eU|j}X_g3#?!Bz@DV;cw z&Sc8l1wLS-<4@{D5zxrz*nJv&@F{k?LjhCe?Fx2#3#(2;dmHx7ZLXw+bgr=XDr;~4 zm}zg4nD=8kbfek-$KHFu*;QP5!tdVKNooNi7(_6<ZjxkD1I9E)n0|M5W;C<o8F}oP zVRpV*Yr;3n&d%&I;ro`|B|Ib{wTMk_aud~r#!a+LY;u!K8yhU=wgJ;7*s_hW2!{Rt z&pB0f-@Wg4LIlsa-%on4?yYd@)Txu|RFxE;rTWH}9M^Qi28XC^+E_;v+@vT#18e2B zL=}Ba^`fr^-b#`c(bsDUnMi$1ID%(35q(WA&MK?YJF>W*xV{lhCwa+t8^IbTSdJjB zVeT&|Rxl0LS@nhL{MBJlj3RDmKoO{k0N0bn&20R7X$l9Nus<UCZX^WP&X6{42w)g( zNDXP)ur@&DPVy0<X~`!zts6rfA%tC}BjIo$XBeRkmXHzJ$b=gqW|I+$-3S#;+!6M8 zu<;1pNF=RIkC1G9xjKxHRbMzlw+GbN2wl~9ga~l`2;IQOudoqfPj!SIB)pf+aD?s) zVAu#r4fP`=ZKOts2u+WW;50u%-Sq=BhEjeCt+#{>&^QxrfS8Q~)a}NnXa>pYwU;&? zpX-UDOVZ=>6=LUNKR#A_;qZJp;KhdLqQ=8RaO;QX8n%6b4G;UN!}ARS&_BcBc_x5i z!y`4+50A8w8XlrEJv@TZy5S*y6>!H1*AnP+4QPFp+Q0^9MY;MMJ8*VX;9>f1fYgL8 zva%f&y7VyZXdb2wLwlPNGK#706@ho{VRF)r(83poVSz4;z0Km3dy&wefeyln*HnFl zsnY=<b9rYPZeMMJ<B+FctcsE0G{c9}WqoC@viPa4vR^WFvi8<AG}cO=V7A7Sq(-6z z8FQLg)td~j2W<XA{iAENerS)VT6*+0o9(p<X%nRCOEnNGeKS=0OLMwvr6V91KMbSk z#5zex6aa#U({Jjs4dV?d&b+kzxh?|^c!a?x3NWr8wg&;ew*q{tG+1Yq!Z(m^crcyl zmxRGroUPB`Ge0!(52;d*FA#k_fG8vn0)W5D0eE86UR_R7SwTqi<4T+;B0??igj#GE zq%c5A_pCRa*oaA#XfVcP**4H}OAkZ(m}-0H$Hj&LWiq|2E%%m)4a0IBhH-(yki={M zJk6|^gbhP+wlN2TI`fIHfOUD79v1@;g)#u1kOT092)dFGo$9+84j_{p`}Lqrb+)YK z^ge}ScAPMS*6Qg@9D|SqH*59OCO7Nb+_>^JE>vri*>?^L{U51eZnd9@|Ak`-T@5(9 z3TGB_9pefz)}!f{*Oo6~R$QGZn~g4G0@oz^ma&<zMXJAwZ~hg<B;Svi`e#WrRUc>K zpM<w!QlUlRa=@jgX!9$}yFoK*Q#Ue!YYFR`(p8ds`0BqCgI+3hv;bZKWF24rqrrOz z6aOuh(X&nho~rHd9pv9(i6c>hl><Pd9wUU@s?NP(Xzf1hBPnm{BS>98B{aaJ0ElX? zeud5boi&%CEv^7%DCwbGbAOj_4%NuWOLLk4#-+Ju*xcV*bB?2jnf_R)-d4Go*NH@1 zqGA<)(_S4XH~(u0Alyw!3dM!+O!KHqdbW<~w1Mm8_5eGuw+UPBVE$`?F&6kM6u?_6 zBh+~Ks!GdB^jqoX^YWg@{c8F@BaMXww)g-m;9(vJ2$2?Bl$v{a%!D1D*vuAPfu~u3 zx6a|Mm2oY$N{ccYe<AO2=hUi7>gj(9?LNY4cxl{p+x;dB@Ittvc4b)pEZeR;{ZknL z>K(!;osgpLQ75(5r!|xDkZ8QT#nU*5!XFSap1sj58~BdtY;`DX!zmry6pUj?i9%Q4 z`z-J|6u?_6<51WpD3tm0$MT+~tCIeV5~(9h`1``dg)5(1l0hT_ksx;|8o;G`GN{E6 zX@Lns#B1RIk(H^3=y_)Nbbv_Gf4~+M2S4U}o;@*L9K6B;Je#5j2g3b+FSID>C2q+B zN*O&Hf$hD@`j!~S`Xv*;17LI@RtRo%=AB5+EGI*V)Io-}!1mr|IUE@-?DqubOoVdO zUT(nlq_(PKd*`tP4*ZriLho-2qB-!0)hoQTHI8?9mIayr!{SNd(O_?d0TIc1ndfP2 zkavhRO*whBz^N>-7zHqitc;+@Pt%i_;gi`(Bu{z%0ckFyLp5NqeYxHplI@*CzIinj z!Ny?OKcy<6W1Pf2Z6<Lp!RG<pMNHx>X27Z2c%NcU@)YMCIBLF#xp)!SbgB757T}2p zMbs>$fo+6%FEd)w`zcm@=MB3u(tbv#Fu~1q(}n1ALc~)EiXgg_8TJYgNt#>qlZ_YX zW(5&h$zfz)smRo;!r<D*1r|!n>M8c?UL7j1jSGtaCR842NE_APVZIE8GPYk=x5cFw zFVyWH%3K%9Sd`!HY$v^6*W3@G%uue3>?0Ffo}HuylWk`>SEggic5cd*kuB?!wsUK) zjNTHZ@F?EYof7)<#atQL;x#F*Zx3Y**M4(^=V@6S+!e|gu4O;@q`1B(S4Ov(gI_wY z5Ye4oSGzA)Y&yHl9|)ypx6Ay&P(gZ^`J^K@8p;?}boaqzBlc*njP5d@0xM7Cib+uK z6npQV45bV!yg_FMb9pROU|7jt8kD7#uZA*p(YKRf<>_3R5Pkb%Goo)>j@uRCHgQk6 zC!XSic+Blf+$7Ej|1zTcB_Pw?-h%EI>|*+MCg6>y6r?W@LY$M_xnc3<**!ojYQ6%C zdzz05bfXBv-*Cc?EZX#FSi};uHRggzGuqsCl<-H_F+5(!I|Ez!yQ0Plgo8Wp9J>Y^ z)CtX|63ZDW+?>robaj}uAm*w?E<WP^ZlyT*4i~DY3?RAF&$+D91#v8!v9YKIjlhSn zaJH($QP(@O1Alrz!9{w_5&5K{KzqNi67z`sW&km_y~+zyc-Iy5Tt<Ius7%34L#StA z5FiFeV1#FdwvDOj#y$rxVb5QO;)l%2=*GS)PjH@0l(NeJLrdp{mS(rHuRm0f+t@cA zgVwhYT2E6tXnL+Y_W*Img4G4dJNVl|4!Oa$@1)YJlm#V=NVj`iDjh9Qc3bhUt=a~3 zqimZi2&V^2!KDEkqJydj&Ps(A+BwhV*sL;-Ip$S1tHj6Q-uQB5v*SAOyE5;%%G_g6 za$co;99}n}WM{jS-NKcfU)h3Xx2SAhnSV@W&M}>H+?&l&-4=L+*QuwQ$pd&|Hgi?a zWd_ua?^V38elE7dwXdy+xj&~e?-*Q0)5_y%;MjpJOS+=94aPx=T8IG`%M7ZGgf3P~ zTeP>A+V2HtIG(&Djo-Kj7;csr?q)%*XybxLc1nE5O{iPw0~Q5OanQH;;or)>CcXvs zUD^5mZIi-f`*i0c(*kB<?ggJ2(k)p5Qeyz-9<1-eQ=K4^c-jncDuy|o_dw5ImcUhc zEt~8Swdi(<ZD&|J|8%dYY!=;te>iaCqdV`s^DY&{wexQ`{OPe9i*WJ={&4ulzWed7 ztBa>n6fowA3}c2KA5}NH?WM`U*j5=0c16t>u|*4>z99+}sT*q+#}nQ99oaXcQsp^V zpL}!YI`eVoI={g|<-66sCCmWNadMA5pKISVV3~iOePgz)O}1TJ+MM5)<HZ*Iv21Y( zH%_cg*5SdH{BhLc(pLQb)Z)_C{N8$TX&Zk3<>Jyu_`PUxX<L3j2!HW*{PAu4z_qjb zV|)Ji*y7R-{61`PX~$$@<rDb16EKr(2tNmYG8V5rC@#Tcs^Q3F#5jZmOdgD~CmCl} z+M)1@QS+H!e<VN;5v>uG*gq>Xpa=1;T1;3n#6>djU`J*^dUFG^Uur-o8CaMn*JA0n zi&t?4K*e22DM{lf16*AUE+B&XinCrd0yo)sjxIeXwc5@Zcuvm2!vojS1X8OFUQf}H z0>m&zxhiLp5ajM;!^@9nfI2lD7<?34R*cE^RgXMj5VEsYA0eYq)WA8Tu#M(xy@FC= z^up}zMQ7!DpeLF@U`><6K|Vs__!bh!w~#o#XGP*5WFc`!;dkPPkoeyjh5v7(@FBbq z5?_lSLgU*RjbDNXLgXv)Lx}uejK;r&2SVe&Z#15O#(~%5n8l@?`28%v{wRO!zPPkA zzrTV9yCl6Qau(3qNczIhKwLJa+^x9K&4R9^#;nD&K*-7uq|AaY&H^bm$t>v4joBV4 zs&lj8NI+jO3%CcICT<3}hO^*En+3IV3unQFIe2zW!9zA#t6fwu3pxNwr^8rxvT^cR zaO8An0W!)g7_nI(^}1OwetDMBUy<v99v?UTSpd4)q>LW*)y)E=WfI_9*gU?4&Es3< z0KR1k;9J-{zGVjBTPDEo+5{kd%LI4=KZMJlfGjcv{?(?y!8QZ-u^I4rOaRV=^(ax{ zj~y15I{3ZW;t~(8Om0FAyYj~<a_q(*!+5ege{gE<!5?qn)t>zE4~t6+?Rycww_jZP z7{6achQ0XX4;Gj9=J#(eF73l_2&{ei{c~j4FBz2CM^a3N!_VAA<QWU<C;@X_m<&ul z5yc*;pNI=N5vAB96LBy{HaHp3vwt@cmjU{MiO5YLyzgo{6LFbM#NOhGcwG)2J<cMK zajn)@FcEpGk-Be09MxW#R2(gv?nFdJnTX>y5v5)?5eJ^hPQ;sYJ<#3kp$BqK0muP_ z^}c9aXlIj7MARqR7QSU3;#;O6zGW8TTLcllMGoOx<Pg4P7UEkbA*7&8LdqwZg{$yJ zX5ni5kXg6_KV%l(gC8;r_p?cOE*{7%d<msx8oq-cG7mBRWEuj`G7UMWWgh-dn}>6F zS}z9RD%8=%A4?aP_UHGZi%SRa`&PU-kUxHJap~jyrfzx=f2_fePw>Y@_;E0QJdE1A z`QrvWIfOs%z>iPz$4~I;Q2zKLo-F2%ofnr5<M$bO@G1W2UR*ky-_Idy4}So*YBDN( z;XY_TrDQDiJI5pr0?GRu-73k*<V=FXA8m*|W;$zyOhSrH!X(z^NSa4SIUUh43ET@^ z#3Xp&7d@BLVG>6eljtjE5_ja_p@Yi7qtbe10h73w5%}V_Vu!nv-pRSd5dmeBE3L>V zT%vZaDy>ql$LYukg8S6c!h^X!=s^q0CLB(eDoz(Rumj|HE_$`5gVd#l)P9fDH?rFS zM{@vCr>RHkMlnD0hJc(-s3$7`sSA?v$#tNm0jUcVZAOw}2`o@p`3M=?w6aMs`BV;Y zb?nw-a!D~JWrq=cxzoYq62s(RF(#kR0YpbiJtki+z~r|`p5h*1j~65plVftpbTNsH zZCaUNQoIJ@3gU8C+9y<v+DGVkYwS~j@1sRrA5H91fs;b}RxQncX&#+Ra>09bp=_4k zmAgc_3~hEU<N!}3m%tN5LqW^lAc!Hl=p6zMV93@jJm8I8Qy2V@%WJ;PleUmH5g-8i zslYk4jf6ur0j=VbsxHiTTeHe}k?v<j%zkZNMlQEDb7E*S=eqn>85oSrD;4*+53o0< zgg?05)N@&YK*d2oAaQL7gar(#P}wyi28R-yldNvBI;_H(CNKk?uX=Pc*v$0@E_BTz z=+$aWD-n}9vyXYXjS3(#e?B0JcZ+nwkb-O{e6rGVCi8pOc9g26N@>edNe09mwQCc! zvrQf7fK^@kxg)Vp%(aVJ8n(N-uwBH-0(XtZJV3oBv~ymoK+ABz2Bk{vm>w^1aLbdr z95K*yZJOXTCA#$sMp}m_j5JxUEwpfmQ=As`SU1L4m=JdmSGLJ{>v&hCep`>q9&QGd z4cWFL%0Y0a<px}=G?D>Kmnkl?+|)0bVb-Efp{fNbNCm7GfThc0pt*`p;f0zX(~@p^ zu9q&T_o=0f7?BH{!K8C6ci5pvXbrA7)W?S1+@>#I=XQ6aarRUXfsmWUYeIK(v-sWe zL6w$aa2a$tZ9e#xpSUyPgTBr8kq`Pda~OP=d{A)^5cn?mU`^CPlKi{kgC3$O`Jm?9 zRD3YoZZRJ$YIk~k(6{qG^FbY+Fw!3eKImck_rV8!cXPA&CF+BX1>UsuK{ds~;0hn? zO6!B%eq1NrVA)eIl(<jT3w!+p4*XCQ2V?2!@Ee`xqT2+)w!G%ysN;<by&Um6BIFH} zRQS(WQMcEds$Gr5i)Mz=B614lrlUG~P;$tgXev~`Wo5Qq6i8cpELJQOT><A5;<(<; z>1og*d#GTrgSe<PtwY*!7hM`$IhQQZ&!9`5;)h_Nm!v~Um&cE&6QWpFTogR(7R6FF zDC88p<uwndF;u|WP{CViIr9v)6;4jSl&7P>H9I}mh-!!|RFg_%jk(*6EY*U{njVyn ztbYUt=K^y$a8*<X(O|lR4(m~;suZfml4?eIUY+Y>k@CEzu#Z%pF?x;2FA(_2p&{em z(DoV^+vIwzl13o64+H=9Fl`$C4FbaOlWI);{E+FfzPmY=@^1OJ`rE_c&WeAZ?U~1{ z`L~DTgXiBKlpL}*5&u?n1)OgR{@w3~VAJt$59gHpTXX(8^6zXPi}`m^AE(K`eM9d% z|5nln<o03U-yWuaAN<>QH^)-mE&tZQg)q3Y;@<<FdCZ!BdpJIL{_R1@A$t??Z$($Y z`KI9CSNb8?bo|@HIVJzroWG9zJKM)%{$13^Y4UI1(EHB6l{5mmeHi$+hw0x3|MuO@ zv6Oeqzcu_a4DPJ>_w}B6%$k3DI6ip(?Lo;QdlT_*MOVQ2rr_Vheh4-l|MqZB$-gz{ zuOt7?_OY0M7xi(P{M$G5zVmM-jX-W62LA0~`uD-VeRp##<q`V7-7Pz*wfrVo;)Rc` zU~%^rneQ0Xmo*MTs8IdhSjMki-kI}I`x3TSLw%1vT0-L8uro{ojouhur0&Y3_bddH z&QEPva6h@n+_o{u7N}(7HU2>Jwv^kJOJZ<uA<{ylF5K=!h6&h4G{3^XqUM3TOOG(3 zmr>p1T&UGPHSm;+&+)6XMCH0kQ8|7^9+ketG*J1DM`fR&60YxL9pifzq~hP*Pa?IZ zadwK-+O?YisUF-rXO7g_(&wF%B6Z}dJW_p$X&`mwjgCJ1l|CgDS+)|mU}mDyo+>JP zHw7v^kaxU)s2rITl>=+@sPrYKfyy-=l>>@O3D{Ir+E1d=ekv;aHU%m@khjkqmDeK5 zNj4XzIHueUQ_L_Q$Y4>{tQWX7tJ}Whu5AGCN_I1T#nr(9i^U6TA<JvNt_yaTh#pxB zS&&~r5w>*C&V?(S4*JQyu?qUzA`7@9&@R5wt8ZHQ$Nho);|)0Y!!3Bc1P7O^ZNbfg zxBzGCZE&yTN4DK|TSkhjFsY6-xO;mvgCE{QSsihAZ>M|jbKal>$2-|bFIdgv3dVQ@ z0W|W$d}Y=t-tNm8RT7|7xZXP18EBDWNo?`!<;5j=-n6*HW!$9MHj=d1cB)p}PSs}H zsSx5U5^S#R7;Il$k{yHd7UPydl*gtF*)h2J;*#tb+`{75=X1kgBe+-AvT*DDZ`f<T zHrdklH*RInVmF~cyNyBn5rY={5@qujc3{couLTAzc6SK0*fJvf8+SBlcQR-{YS1FI zTcF*=psfH}pc&^N@+vUYD&qBgCQyYWE?@%rC2=7W-$fX>q%LCWQbdVM>SCr&cd1L5 zI>n_fWr{l>CFcNB_qo(%OdV;jE@uK`BKfXh;u|jCl}x?qQdcqcHJ7@YDeS$GVr!YW z#Wg+1)FUqAHB4dbCF8YBT;?)f$JAfgtLvHgq$P%!SZs+KnAqPEUtr?1mKbJ&QS?&z zjZ8h`+P#S>?gf>1H#6mta|=`0ASbVGW#UgQaT^o8uEsAi^#fPOI;OY-Pl|mhUF>!y zJf`ko>Oz<CPNsIZQg<;i;cC2_DcAHpO#F`J8({*pCQaST#M!RC`<Mb*$*cRBIL;Ce zF!48*c#w$$E%6W&8(p&xGj+AAZ<MLOvW$-~@rRaplnG1>Y3VU0JZ2teiW{ut-4jgh zVTms@0VW`Co@C-F*YFrqpSM?EVZsf<Q%qpyOQEka@z0j{8WS(L8lGm#)7CTTQeS7H zVx@ZZkYw(Z<z$nKKpiq(FCim$R>-S2nBuk(NxjLGOT5LzNiOv(rW~r@X5w1+>K&%Q zucQjO<8N<EoIs!+b!{zY3LHc7tzhCjSH()Ee(5rv$P_lLNXAu6aKophRx`ydDw67D z>TOqS4O4!MPGV{o%Xl&qU}jS46eh3>P7<dwvCI;uF|o)Jr!#@wF_Nv12|pLkV9E{N znM{1#@}0$mqujHZ0E3nq&S8QZWF&PiQ$KQ$pU0F(bst90pNrg|PH<dpKuyxGC+<BO zzroa3U9I0_YF}&cTTD1={x%aocKN=;6n6UvVBclJ&))Ab)n%{7neb44pQ+E=s~<4& zq^s~*rk2^O=a}$}^LeJ0J1qQ=DaagY`2{Apw@FeHOnJ`#Bc{%B?_Oleao?Aic-=Mq zGE<Ma)GJK6(fBbFSGYQU!qh)mW4yI8^z5fhjk`L2#uT?P30Oa8%FpOmnR2}O7fk%E z<$H|@hx=bL@nu)xV0uJ{(}@8aUJR-Y?*<Tt57lKNfqH@+#kd>O64)J*jBH37Tgf2x zVS$!5EL4?s&~79RFDEOI-<8yFxZW)OSwffm@9xy|5q4tybZ+F4@}o!_Ao3(=TD?K@ zSf`rSM?_=7ejC-aCUC@<ZQ;m82AvcNoA(ZdEsh&%8sh5_ixt{B&9diRc-)O8+Fdeo z!zhBEpmunBK5OSA<9HNs#DWtp4Lq@%P*^Mjku~D5fIu&o2tb_~`f#fvfEQ(JBp5(K zpXKu2`?#%TD|)r$4sFHF`blteUZ~e_gG+FWadTlIZn!gyUCu;hU7V|5GeSj92A-NR z64OW{wRxmvF-Tz6E4~8~uL!{0tVrZ}N#avU;qY*v5XZJ?4Vms-9cnOi@#b(gg_tz) zAK?}POgSca|6V1Qvskz<PmbxboD7^pyP6XxFlOk;`Gq*wbe@Gi3<U`8i^byFO!|O% zxPPf6dvMsA9JgexNo>Dst>WOq(KQDmBdnwZgHb&gzqx_J%J3q4KuGpMik}IDx8)$z z^Oh7s-5S9oP6?)LT^LG6$+8^%kA(z`uDm5ln<{@V;a#Csv#H>|Mh`GAWo%)fm_u*q zqP-lyVN0pY2idYic%znCA9)rrBIqI9o|j5#b?-HVo2AL&W>*@=2w_jmER6lfGsbMa zv48Ge>2s%eb_>Czu|M3v*!Oi!$JoF7qcHZTe}-Dt@Q1PgdnI=ORTS}DwIZW`Mh5>t z1A~7ogCjBc2O1gtK4+1^{~J?OwVL0UqSU5-V~T>CY-&@Kda9k0L1rbUsCVIrE&5xg zGK(qd^?xx%53pBaih6rROwm8LS7M5K%R@}j)10y{w&-q_QEbrx_eyM0c(H_oiY@v- zEFq>S{8#cuEK%o{5lhrTD~9OPPNx?`6i0DMA+bZf4I*}EziU?vQEyF%CF&g$Vv6!) z6{$sR(J#1^7^9!HSAC?`V=W=J=)YJ(Y|&0jh%E|_oKz>a=*g}+F-9G|i!CZ1K@5<X zqTZLYku6nB(9|e_U4r9k18T3u6m@lqCF<=Yu|#=(g@7Wa=)DegVvGLNrNkD!%jFbf z^oQ=97^9!DO2ioT=n-S|WtUN`(eJyISfg%i#2P)q>JVepBV3G89#bJeiZ%MjmJnmq zxdOx%{S$j5rYKLlkV0aMZg45FMgOb45>wP!hhmCe@0t=*)Omlz6y<SNQlXfl|JxE` ziNfzIZ^RJwh!R5-2X)9RF+{xyFP5nDRfr|(yf}U7@oea4P(!rXSX*85BGxo)_|%IH zl9Mfa-dIzYI#gR)v(KchS+B8)Et@teXv}((B4u9$_50KS-i>NPs0%!2_?#9pT0dMy zD1fr%iPjQ+<K|Fm-SWFzcVfYqp_16l$pCARzvXmR*v|ajI+cB%vdz7Hir)CGTd3b3 zu!{QakWyV+Zndc=wz*TuskWMa9#GL2dN^~N{LE0;&@-t`ey(ND5Az3TlV1?}FquvM z&`fReOGCYen@Mf*D++P*0h-!tLmwtFweKftifrv`LluUGysb@<k+HQug(@4^+M07_ zmh6oIf+Aa+tu?T<wY9XZP5au}+PqghZ)?xS8*qCL!p62X!8BWYkSy9w?BS584outD zzBjZwZChKKP1)LP+1c8SS|;zSv$a`)=iE}-Z0(}bb+-15N~^8?)47xE5T&&W3l+zV z@Q9ISoIU|>LqUAf*D}^6u5^m3K0ayStd9!I4UBbp&6hCr>Y%DC!+AXGf|M+>CQ8PC zl|3hIMXol2ns$s}J(=4vWjPc6P+41(rQ1=c9kSAVw5{E8X;c<(xkM<dxAeQWvJAdu z`Ibj|$@=X-*!nHq<FefRDr%GU<_GXYmT;-e$%$!jyvq@_AG4ziu^1;u7g8CPvkTd< z99~HEL{2Z{nO|~zArJeL^9%3BD>=ZBE`B*UjquCKY0#MD<TNP%a&j8J<>WLh2+7H5 zT-B7L(|+5IPP-9xRoE>mfF1ntIDT~U2eidq`905$PU8zXI*n(S?ZG!t<o4t@AIK<i zeO8W6qfRPEryXKPrvb3~qtl2_Im2*?ot<_*9?02gSn!my(|(3J<nT1Uk;BulP$Y+^ zA%~ou_OEty8dgE%<TThMa&X#pC?E%?ad}G)PV2)HIXLY~{E&mwFamOL8dn76;54pr z%gJeMw}+a_!nMi0;2*Nf*M3)0TZ83T5}xs!K9)o`Z_Dl1)JQV>fyDsGpO>bMan5r^ zB7Y$5svKo!U4DOOl>HwqCgEG?gHSefcOmQ=`rX8_;>x2?Hc3G!n--N&HW%20w9mm0 zA#JSmOCUwnD4R=BLfNn3hfp?`SB0`^mkMb^LzYuHf6qvpOKL*es6;4x0uO|;c}$;B z_J1+Lh8-nzjkJ*U{m39>&DATRYeFW3&13U~va#$flua{MC>zb}VxtFicZHwb*|F0j z+rcA<c^hS_tWZ-Mj9tUM+zbNZkh2DC=AA~=qO#mqxhcQ#2?%7k{DA2$D7inl1)Wc@ zW%2`n)@OLI1pbb=efo>aOEQlB6*XVNln-4ISORsUC%3|M;v~730CBWmaB=~BgQ}0i zCJF3*jTO%8wiFc5Ze($X9`kKQZ;*#Lu<it$Bs?Uujb{nV)dR`MopLdHTqz&x<V3eI zdoMd_^{9mqU^q2&z;1`-<_CWt1mFdVr0eAjqD~Jb4N)wqxtGA4;eiC*x>V+tH6X|8 zfI;qVvpQgav9KgTZvnuw3Xvqo4pc{`*tCCM0P{>eZYf;$apkt4y5>m_nsU@Pvv1Jq zA5lSo@0u!t|3iq{-1d10Oq=ijc#^&TF-mP49BA+V7A)9)2cBv#XWH)u<QAwI-_DRY zPkOFya3mg3xxD6cUaT>DyW=3~8kTq#m3yPlg3cbNTE3eS{Lz{5UKvW;c<;v2{2PI* zU{U#K4ERD`jPM9+!Bt1HyhNsg>mKmFrxN2@5@-b09tnFVysfZ3(glQ!tEVla8J!dw z|E7Yzi`2<BIZc{SHgxoqklR2FxkVHyunTB(>(2^oZqC)7&X!DFeU0j3)+Lx{yxy>z zH@*q{z(V>YJ3R@>(LM=WLcL+o2T0Gh+Vd=6=g>b+XazF`ydLqT(>d3wSM%AbLJ-<K zH}vQk#igD|Y|aNX=A93+)&&Owoezd94wT4-qxGb)ln_yW21bJ9bi@!)swb!|z##Jk zV_fb+l|pc}6kh=B$hw}9M=q&9vFu0^f@%m$Bw7JyRw_P@Bt-j{4)37sCwf@leB9DU zx{|XycThs^6{_kvmh2c;-4QP2uj$hSgSM#LXIYL-4qv^3H{u{8YTA)QTxt4a*4T<p z__L1*y<YI5sCR?hh{IkO(0#6)*1ws?ilQ4*DZN7u3t6(iIFvQAS6@<NvcELsHnI=7 zQ<O6;vcIBHU7L*T*IMm)ve)Pi=^uxg)OG}Pz}m{}r3BXm0L@lXhtLt3`FmZ+XGpPp zGTXD9V`!4xPM&wC<T<7a#yoNH9hh$V8=!{?cVl618Ol*V_Cim7`m%0kv9oUd9csQg zfNN734kN&1Q&y(3O>3FTU3F6#v%0f6gRWabjfO7NC^uiy6X~TlCAnJRDK6K%8)iki z<F^%de9P>aLSEy*Bo)=B8}m(15k@=9JdzwyWZ1;AJeyc%2MZ~mY6CB-7ZSJUda7O~ z(w>~k)KExJtH}$AyBpQTtfZNgkZ>r=DngEbG!_!~6{1lu^YXK06AFn3LXV8HG}^={ zC`VZtA%TuMA%Pj3vl7KKD&Dh<5U?qq8Qlg#0NlTh?W+Wk|DlB>46uUz0WByWMxs-$ z#}rQv1&Z}%Lxx5J0!~)FaSp{v^5DzqxQSgdddj1rl-<{*>NF-YWhlBg#eJ5Kg$it& zoL&=l^$+(A04E1#ntdXan%y;FUk(-IcIRE5w$0)m{XoN&gVIVRJ!}`Kv3(Vz4Z<wO zGa9OF)Em_>3ot;@H?Xi<i!I35c_(514<+k@s}i0;CMt#saRy3hd9bKFmgVOs)_l{( z&e${u9Cs68L;_CvY`s&bFkEaI^;-r`Ok@~$89?q#Pq;LgEYlk_9T@cL(Ed%jYNR_3 z*JlCk4H*qkml0rAgzMD-6gWs|?4(e~iyzyS2Se-5!9aW|E{od2oW)vt+R0igqdSgQ z^)jIhsyf=hQ!L?0zuF9zRO@?SNjZ9J^bH#PThL$XPrU-oE%=j7L5L4Bb4zyt*(M-Z zSg@_Ohjpd5hV4?RbaZrf?urY;_SkdJg}5$kuf6x)dmr8x*0uls`yb$m`_uIzq*i+_ zL)afj*6M^ay}*w%LT7m>VZ+Q4%C{>yJLbejxrJ_XS$m7Jw!s9CA~9~rf6BPWv9sLK zRNVsd6&+(5f)Z+QS#EOVjg7pci#c&+Jm&~>1obv-j(1(|dg^f+dHd4F1EH32PBv8M z<gngK`568#ukM7xLB(2X-5GiJL9OzvKRSX6wH(C0H>$&ty?D)gf0>`8zNp+EsWH(T zc|Ol+0L`6mYfj(dEO4@ubJk5qPFF|2oT}M9wwDELy{t235t?^qk4Dt)3ZUekCX8nz zA(A}vOqwO{FPtJw#w$Y;#**~{rZ5?&kOWtS3XCQ5I;JL$R};spNie$)pyb_1G2Udy zYY)8Z(D90^U*~x3!tnxA;Mi7Tc#2R@ESJ2CMBbU1;qm-449{1XU+x5^a9ldn(FB7H z)GX1Pu;w`M_$POWS07|%-Xo*>x|)4ldJ+>%)^ju`O0-n(V{RHj93z@iz&uubQoPuW z9gvmQf74^?JYFe1``&=Ddv!xN8<E=?P58QqUlNxaZMv#JSWVP#X<R}96`CW_ECFz! zFQ}h1_j)u{V%d7NL6u;II*`Eq0Uopb)E+xRX}m{Ce3@F-OK8W+Y-~|C3~d9M2r?mb zBE+<*QM$RKT&)0!Sm$jaL9~z{T7)2;Byy=ZH&t4W>1<_ea3${T!0nZ|q7q(lW|R?s zlo`1M%NNXziX@bn6maaSmB?F_JW%|aJ7S!UiTv{bRC4><X~I7^L-=0}y*9#UA;Hk} zRG_bg3XJfve2OdSqh9nrhH6I&CQkw}K24zL0VVyntir46et5#m2|TgbQ1xduyzhi| z?CM~uTGmbr+d(zf&Ue`kFZ*o47_ptQ_+%qq@`>o&o4LK!9bi!IiQl6S1m4n;{DGxM z5O(rs9!9zr@iz~DviEg9L>}FV6m;T8{3!0nR97Ny#>CZ_kaQ4rdjVCZxlPRd`<#HA z$OyQ7ki9z5Zd-;Il{dEMB%Ci|5{^Zf5wc`{PHwHNHOSuZfZA1-Gw(CteTvY%vXHFK zRjnCo^D-c>Dag1%E}7NITAN4kb;inX^P<Ra5llHJoR>`AsuL(-Bx6PgE`j?Y1;_b* zacCU(0^)|WbvpiN%T{Hke+)D!JZk-1<)fhXv?e`*TXxApMUx)2gmADiCY&bCY;0_# zP1*3G@<0|#eK{<t$Q~eOs9K<R@*5h5|2<!sn+(2*Z#2@L=JifyQ+_+XPmDRa-bj9* z8DM!SFTaT^B1kUH5fSdNNGK_yM(64`5D^CA>`>_jt#nTr0AQ3_5IE0gP^mb#_kf@j zbhXrDdoYdd;WW0_rLoOyR$Q2;A<mAt79>_uNL<(miKrtbFlU3r^Fx0PiMvaGyR5&8 zL}B}~B#=eoNFyZTo=3+q42ip@kf<oUpUhM)bmXk%G2}KZ<A&9ydaU-PvD%-;>OdN+ z%qCcEQp_k*z}PKJAxb!rrAcw1d6csUX65zHv$R=xeJ;I_1t60(9VllYblR-E4(kc5 zs`PB!I5#yLYw4c!rhCF{(i5{keNWt8JQHaf+v|IRa`inKk?X5dG=61(^cJ;8d5L8q zcfKlQH)f9P4Y~7L%bDk5y7VFpf>UpOXs;sUUN-{LF<7I%BOD_o?tpGwspx3zB<%zj zOT29>oX9v1IFS`kv*%FNHK8gqnYk81vIO1Owl07`1}7?G+GGZ`@VVI}>)lwe3yzNw zdbK?SI^${ZBeZ9wz_o?=+e!Kc(i0}6QXpl!izpC{dPgS;#xOBuX3bB{EI-N~>jB9| zPNPaKs?27Qetp1{Azkl{G%U;n=|iC^LprzJ7}CY{%G7!XjX`JWM##IN5P50<ba~`a zEZj@>vmKF@=4gVj1#(lCK_U{Kkc?#@@o7(-Weg`)qXJzG7eYi6pq^C00xRiuDd3H2 zbM@X>ST7e&99cL4IKrN8qdf%{Nv#+s-?~t=QFoKG!s__dc$!~LSVFXi4NN%gf!SEE zGvbV&c!7`i#+NvjX<6ljJUOqMG>ruQZGmLWVAox+^&`s-oU#X&z$}ywr`p9x8ij{( z!o`b@mHb3yK0{}nv64ix^hZM$78NkmVEf^np$1!r;xdA88=0^;H^8<Zp7kT=IUbw` z<fTI*k#<~eqP>x`VJML@&R;pq3N!&_ym5hU9dH?B7WQ~&VMBIdVMU(uycrjMS1s#^ z&Z6bU!}CyXc(Or|yV~$<xXPV=G@Id>b)Or9{df-SY=oNw`-u+*Y?An_hf0m+b6Tev zeFL)>m)w;~KAuLRXfVqP;$dEPQ`(LN<SH5BguKnVG-Lnaazj_bv>aVmTMCZ3VCfLJ zDgBjmzy)|4DA)*Jm>6ADUY24pS)qw53|-A8>F5j53KpQ=dUx`wklWxuZgKbOba1Si zxHm;ac8Y*`lC^Vv*6~yFSr?#yVycAX4m{|!2J=dr$_yP~*a7T+JNnOi@C<z0$wE|g z5j^cwx0))7Ak&PFNFfN>9KHya69wo&9s76P02?y>DX{F50+voz?T<my1#w_r)`{Fp zbG4w!x$$fOu7i)TI+(JsW_`=21o+IX(j`ETOyH89^vS~4lDp5`FJLV>RDK5(oF1B( z-Ev=Fs35o8_ZoxZHk~gElegPVUPi;oA44|rC#SX93XOTIWMyWD9k4RPz&8x6`KEg3 z<b6{c+}yHx&M>oT?_8VbIM!qiq$F<Wlx&<d8}WdYI_MO-nkX(<cF+g>k(raYnbWmm zbCRvFlD@eheGS<0?%;k`F$o3@0)ouY;r>on-xq@c=Cl<mZV2uKg>cu1TuvV@P30`( zEZNY8_J@-3jPGGRdkdXFJU!!<5M6D8iHgw^vsrO@;=AI`av|$L_p)6<IjeyaAj{}* z!Kdq%*_9f<CP)&klXY%TbP;!1`{yL9AkT_4I8CRkQ*1v0>_|kJ)3a2s1=h(3MddN3 zsCw;q#-lKj#?@#VS7T{hF`MAZJPO20hCWUY9XI-*y~d0H#Vf$5$dE_urn!n!dWlrW zVHzpGXM}c40p1bqI2r8l!rRJi$;Egb_#WGvXw&aHhu2x5PV?2!4s$4V4zDiMxxoBg z;~9U(U>c9ZX*{k=<B{0}k12nKP=>^iYm1F&4&_ob2doae`9%~Vz0Rf4Tc&gVj{eX^ z^UQ3go|*Ady=SH`-IM-wPX^LGVK(WBEmy&Fm!*h{LX$=jx*>Id6k$?Rew)~o-zGQf zsRoU`ORBjfz+$pU%}<p@j%v7K@)4Ez^;9zss_~>u?&BzzRE#$hj{T9{DJ2IXH4xf1 zhk*v(SszK5sAAkzAyvZ6@qK2USvGT7sB@KaPg^C^*;Y_zU|o&sygbxta59E21zYIS z6(Orl7_}AwJNS+|H$MhsO5B=9oI&N0#hzw6c2%g^6h*ZnmF+qIC?X-#3Jq()@@cvu zXSq6A(L1NED=Mh6jbEK>ocgb?%2-GZRe8PBo?(473s4WN<dL(pJKNTVCd^9Ka5BXl zP7!4{mZ~MjpU@fSry`3*0bK;lYRniqu(7Q^PPlgtr;657!*8M7jqu=6gJzBC3_ZMJ z&Ic89rxtUt7=qStRu8oTMbc0*Mn?z4sz}oHApu1rZ+C-i8n_6Ca-C0a>*Eos5YDpE z=-Jnui-0irW(9_nzkpyk5^4knJJFqzg}KUn@1!Q1xs7US+@YIu9pZv(5FDXH_kY+r zL@*a_64bCJ<)f-_%pS>V4u3C#-d%sCJ#^<O4s=%CHe74Kps{L2G~it$WgB2kbv!n# zhmaeB?%kpSRS+a)3r@<Fx!e?JG%~C_SEI_fN7qwm`ka7DeqP8T`D+W%!S_2xEbf`= z10=7EN{nI*f3k6h=S;&|soTB-&jZevmK{7>>dqavYX{5hG+K6&{W_Hn2_~~xvc2}+ zXJ7p7*VWav{{aUa`0;~2@ri>E?mpy`pFDK&VTXO{@WT)9>8U13@>>`?vvw+ZV`rn& zug%!`ZI1LnBtwm#(2cSu@U5u%GNy?92g^v+6v992eQ1!qaj@B%Ml~~QgJ83ca&<l3 z&<R3|U<g!e5fW9ztB^HARM@_?5I`1N0GShdkZ@_S)p&KHKR{&L*m|U|>#|5WKV&qd zFk@DT^@Hz0yW}YyVorE|N!g7zkW?ZMYzAqP1z^@dPYN2th1Oi&tT{Z@tW(6kNkn~0 zeJsOlJU>d8<lz65`G|4@dRb9c86^lkc1|M#F-Q{Ove*Xc4FYng8zl6%alF_kQ=qmb z&3_EL^;MQUB=x-1S!N7UGFI}hyYZS2qhufd>|lEqCkOdwpRi};<N*KdAbZx7?C+m_ zJQcRKf$blNOc<qphOO~1MjF(M@%(^BVQXE;%khPBg^r4*A?qfHbW8?b7>hf~pj8cX zyN{Lci~RB;rJL82gy)LJQ605FnRE1>B9VK;Fj>?ZTkui}npV9qSDDk<B%xr~!Ytby zXgfj~qq7VO7<KWZ^h?OpsMaE&bOw2l1F_y8AhCEg4VbBqS362weCc?#mxvcePy&IS z07#LqQFOrUkqXK(d;!c}M5AKfkH~&io!TB@m`~=Y2v9v1pt7mGQ1AofDgn#ramFUK z>$aCc356dIg-!3QkLi%+a+;<Djv&SZ00aD^=btS5woFSkEFxw%D3|`3&RWsFodRjd zw+#j!`OA!aj7E;MBxodONsWb0m=(91U_dEB!!*9iA;6x?ddeaAHDJd0SHR0tp-Qu4 zI;ALp1yVU*##vzp=0M*ok2@)#j^G$CxM#Cr9Kh37ah~Dr(q3grxO1{G$6Mhsy*cTa z<0kDEqm*}SuRcRybiLUuBJuIa(e6$+m&4axVvHw>xe-{;gekc=1hO;Q4YQ)!CO@hr z7+P6?XlcOZ(Fh>M)Na>a{Wby8XigdOd|=xT0)~SdpdrehD@2(#Kqf6CsJj%6#P|&J ztu7Q=I~+#&`2d4imAbudFe?>*7&02LE~A@c-Wn9d+aO?_+DlIJp7*6gvlZt`@{PhE z1}QJmkpS^TAui}VsAr04O3<l5&V*HHIZZBw8d8RhKkT_2WvJT?x>N(o$VS)xnB%@B zNMow#+8;3^{Q#3h*Ge9k+CI9LHt`hEwLc3ZWv+iUq`^6j8%_~c{_{|Qx&FnbPR@QQ z9n|~r3?F?hl(J@dM1dy?jNuf`{xVcx&2l?c6N7po!z`%RCjCa@j>{ut2pZJ87oK3} zPUHM<Ge3iKLw;^!h%7kwm3^kU&KUQ+w;xy<7t_+vWf0k;!u=`!4>#7xAFi#zpPmrF z>uda>0BU1k(~A6=sZqgSM@Ogp?J9q}$sa>}8Q&{^x|wA^`=cEKGerJii*z3%f1iXs zf<ZMCWPK@bgS?foL7;j@)%9wFq-XK+n$Kwm4ID<w9$(dwA*&T3qlsri;2a5#?}=<5 ze?99{TA3?+XsR&XDma>8h&(atNooOgi0(=eF(!PpKj`}4TD55YX=$0S2e_-7XdE1l z&Kh#xG5qG?E{+q+p2x8$C<ZL(GPB@(RgIi%;?eLKGi-I}m9gSO&?{yHuas|2^fb2D zSc$yI?Us_c6ADktHQ_R96LKP9T@$AiHgRwY<!-!s$PLu4Qx=g^KTZu0m`?Wzsi$72 z8%2kQlEa}BMm)~PQl=<DQ}NrbsWt++$Rgs1XzIyO+G(N1=jZQQ!rr)pq(u`PU|?Rj zWF#Ez2oWDLxcm*G$?a&J50Zi%0w5tyMgmD`I2%fUq)thb)QA8aNJku&BW}ABn?Xe& z7j{MlB;&+Uk~I7x&uBvgh{LuKKF$dE_?{jD!Ch`12h=VAG&GK^o8YWa(CCu|1xY?Y zUM7<T$jfh82*X+lgV<Y8b&H-c)o3gAd5!9)0=fj`mD)-T=w!U9UZ?d8mF7wZqI00V zpkG{Qwdd!`{^&)6V+Jk`;24LZy@(Y|@{69F&3$ReZrDj>Ujn;;J?ZWU2LkB;rm0td z*J(vp6hgh<WWZdN116Qd02s4YHaKd+)M9rxy0n=qH9>zJkk=FfNqe>sW7p+?Ol6-O z$X-VS24tU08<72ZAiq!uBzLLoU-}dXRA^rblyNVN{=+s!c3~i1dr&;Tvz**L(f4AT zT=4L5yxj{{Qmt<k<j5@Yn1y6(27(RL(PBn1hF|yy4nr2C;7A-Ot(L0|Ha%1vJ}Sc{ za}ix-Fm}ty(917>Yja;Qwlv7)DVg^6R3NQA^upIFZOe1pk73lCJ^W!^ZY*dm+t4k+ z%;iB4-5t$fN<O-X1mp0|ad2~yV<2-8hC!HrcNXGb&24EcHM5cSj19GWM}duSmdoE0 zI$)<3sHJSCf{g6J@RX9%b@^2Q!VDjUXMPwE_IgUL>$>f`iYm~Op&)d6BtT`nR`*0K z^g25+h+}H9y!O6O(6|W;PJ`Ey<npIfJk+SVO~zUuwc7Knm97O3w9usq1<)nm^g8B} zp{2UfR=NsEeLQr=hMIvnepu0rAJ16{bnyY{(Nyn&M7J)7?mQW~V<-J+0F7YEjw3O# z8aRnWiW7e_+}YXul~AQok5(z!H_2>%x^T!Dw9`PEem#I>(o}ahVBn$DIz7+#C_5j% z5sF)nG}y*^G)w9Fox)x)#HJ9K@8y6=WuIJd%|g09TL>iGVue6Hp93<LeR3dYAzgn| z2qXiGAYEaUQKX82PX`+SH<=ozWU4q>ut6g$RHfLqc`2v!f|aGDYLIzt6sMG`ppTBY zdM2eRyh(9Ns!Gk+D3KMb@_g%jiy}+g)X|-ms|7RhXSq?(u$4_W6JIODyzPe|h1AQ{ zVV7<oSJfLGxYO&Q1IBFi{;VKZJ>wN-Ym#kK3(_|N7$!(HN~T_rHZWS=3I&aEu%MSo zfum-Pmd1j#c7peBgz7e#AYEy-=LIQzg#qXWg0#;K=}ZLas?eDkpY(*8M{Q?P%NQpY zxVW7{LF&6DbBa|SUGIR&Tgz%Wv&YT>bF=|6k~gAdq}d4bi=_?7X=p8^nxMxBF^@V8 z);ID5i(!8hIS7;%sB3UeaKy=6<kb>MVx>@%1Nz#V|3~04+OM00S(WCbFcMz~k?n=N z{gja1sE}brmVI*GKA=7Ii&0CAHJDnB=qtohrS<l{LYm}u8Y<}t_Ra}O9wjG~@F8Hp z5^|-9CyTBj6|}S~>*rn;E>#`{Gsn=m&Y=@?k>ihJZmAN;N*a=b8FVgFbk-5PTK<7) zogMIF=w!QvhUmE=yP-3ceR6aTX3*&td<~t;a_GFE5S?&x1H^TLPGL)ePS{Y8o{Hb4 zdi+Z>v3eG<8n=s$8kxJhKZd(IwxgKh9)93>ZZ6?3V#r0orWy5=W+I97tomIe$Za0p zz=iZQRV+9EDoPp35Pzhzg2T!K@X}r@XD`uAL?<=SDC4p74l5<eFq$hvTgLm@8H=dJ zvQ7z=Y6I1-{6dZfAZ-rJY?_@7!00D|&xpQ!4HMFh4U893$3Bmq;x+U<>zAQI^y2d{ z4%yk@hoQQzDeq=qDNbu3)k1x^4WhcP+4eQC(_?Nmjf@`Y^)79w9oKZg-twBS^iAF8 zsJ6gp)@WD}GTM;tj4+6w;Iy=Z;*vT?d=RLJdeAuMDcGL3w{S{}gi+AVE++`l5l{mS zbIwnYLCORN+@o|TR2&aDqTWMVlTIj~2S*aN&Et7cuGY*3;S@&{girx0Vj~sAdT_rM zrUo}qU`I5#F1AW!!qx|x)s+DEDk6?80rw3=0TUJDhRkNg?a9NSGP{tw4tSJAX3HdF zGL#^%J)nZ+I0Vq;f74fBB->_#o17f*Z)^R!?Cn$>?GM06A1lzC?oVI3KmF<cFq`zp z2d^vsbMv|{0AWM`AUK;5%#&dOXBK6JBuAh}IVq7((MzU>=VIiSfB?|#@umdB#kafS zEv*4}s(A%z*`J*TR%5`*2t*RB2GYJbKyZ$pudB=E<4wvhDTP=OdruEFjDbp%oItie z+OgfyL>j5GROLz|1HhBI2o-t9S~$U&FU<z83J}<81}pF@<6woZb=#YwptN-g4KLx& zaR|%L?kJ$evgLRopx`pIU}__$jANdpE(Jh=;jv#Cc-97ZERKiTI;<mLL;#cCvP~(7 zd$5EsLRtt#8-yE7OL=;yfYuIKX+q?nYlNPm0M1HPYjnxlIEN?=#t2xqt15IfjP(tn zs?>f;&yWPuR;@56fMd)_z$fCmhzYU_w3E95fqPwWh7zCvGua^HB9O_p4VK8Ts12fX z)U&7!O%nK|jo>|0Ofc`fNJ1lS9NAT=Ddj1>Ids)dr)nc$$yJZIZOSN>?4B9=TSF;Z zr`O1ALj({s#X9|Mp#oc{Zx(!HWqDS>d?{BB3-XahHox|3B6oY=3%Tnnol5TdjK7h) zPEPsbSKkl0>+%0V%3Tk{)N;2V>-#8oJp><^-1QKANaU`E=ffd)Jvi@P?)s|!?aN)? z)fvfMUuw2;*H<t@xtlHb>nC?lc`xLyuXHN8>ofjF?tUP0*W>?#l)D~?spW1#*7s5F zdI&x+x$7bLkjPyR&xb?qdT`#o-1Sxc+n2k(t22_jzSL~xuCHK*ayMJ<*H7;Dy%%!V zS2~s4^%;L7cRvuh>+%0V%3Tk{)N;2V>-#8oJp><^-1QKANaU`E=ffd)Jvi@P?)s|! z?aN)?)fvfMUuw2;*H<t@xtlE)<nAw9QY+u(o_Gcytmp1o;vW`t@rNrF+$yf@(8A6v zY{=p&E|ziOg)dk`KRY8(dGM2+#*vJ#c*0i3qXc(Ie~xi*yJ5Kj@oaVLt1cs#igX#Z z6}jYiCaxDOkaf7FZpn0h{odsHvK+u8<FMvcUYl&_??Na=GNEmku<szj0==}|fm#vS zHbvW;A(uvw`L<;@IM+g^XnP~uKBBH|T$L?t?~GcpH*$)$w?;1BPa^9i+V5r4?04;a zw7smZZQRZ+ZSRO$ag65_ZEufUde)Hd_mR_VyO(Vr$$@XQ=96reTQv*ITNl?n1+7Zo zIp@xw4=Zh<%s{S;T)&>Ak0aM5wNU1YTp3y9N!)2_joP_7S0+rnVTPQz+q-qzO(*1} zKQmppPFwA^m2d>GXO^0m*L(rf7FdAGdAbciSBO)~np})Ta;ae)3xiBba8qibZDpu- zo$iFvMbd@3b|}k}6^0%75J#*FBBp==CvE|6f(gYk4t-?8mh-yvG$5fUx6Te@7tIu7 zzQCr%n6LJZG{!0(V?Gq5G1?ra1Z@t7(?Q#Fh`2ePyZ0P#2br~zZG&-77Th$@2ygQ} zr7g%&nlIq-20|nCEC|y#8MSypAH1=u=F6Fis4+?lWaG+&Rv^C-Js4Hz7ZArkVm74@ zf^u`I6oK9mQk8-BgxZy^dj_qx+J?37@ksWXX{dl>1JW!HJ`hrzachHxt#RioIyPBr zm+;VM7o9d;84U#NB!kR|D~4R*P$rzjB<C<Oyo%u#1tR%+2du?X@fd;XLO=3d8C))} z`2vQ^ZRFhdu$`5w?j<7vFqq`YJQ4UROiR~b?=GBpvtAJ-0vhxL(yvtFM59r-gOs8c zo8fuS437wA1PETs#xF`FIakm#9YXTh1&dO!WMc?U4ZSf1eT#Ovw~7H6b@e<sX+5Xs z>e)=|5%^jNE;rmWaw1N4@!-m7(RIx{JZUp$<(iqJ&F}!_x_a)Pw4QTv^@vDBq?rhS zF3gKD>?meb4W?5isgK+W2cmI!b94N>T;&>p##%=)ysVPHC+r48v>7ihJ)uoOVk|Cw zS*A$0N+TC*Ca0+xE#U-0h!96v8r$e;ZarTq0ah308Avw3BN_YQ!<O5#sS86FO!p3= z{DiGBKU?1Oi##!-4=m|lW<G~&%XW|>peuHi8ty8?VFtw$eK<4Gxt}wA6X#L6neI#2 zOlOHj<)i#GbrbU=AZ=~{<;0}c&Y6iVpUhl~lBQ!iWz2EoJzvhnOK$wc9fHh&;CF~X zIV-3-53hK1k)(qd@p^-)D?UUV`bwfRS^}K>minN_om}&Mu%n~&Xr!RJG&(xUpUcD` zYBYe5UQR9v%hOJ|z(sPH$vMNR0RrPNdkA8<SsUH%(cUk^eWMKW!)8p!&KPMWw@Nia z;+A;1YhxtRC~zlmAH7MCcxLE=AyGFHZb~Fh&Zf@}5Ev5m&ZNdj#MZhvX%R}?3COT3 zI`fpc059cKB^?7$qEIAGt*Y*TR}3rNbd-30=z<}!K5R9mJ&Q^R?k9nH1OjRaDG?+{ zN(4a`P~zlF|H1%)A(40ga1%l!N<@gLlT@Tc+f<fE;x2ee+q=PZRs(udB5@#e!H}qz z+-yopoLmB59w0Cz@_^$8NaUt;*-?j=M~OV;-JF%OnAkicOAU8K33B6$<6__^UW}95 zIXi%y&IL%rh-kp+t_pw|YPc85n;Bw}btz4y=}U(G2*!wW3n1?|tu*r}kuv1^F`a<; z2(avMu5cj15-TUT8t0hSXeF-K=><icc`yer1x7u*HU|Ksw=5AOFH948i5yM@;EuBc zaLDYy{mLn>N9?EcznrpiZ2-f@Q@059Bsh0Kki)@)+9E=VzoE7Wo4|Ia&jB}kV<;u= z6!&)UrZbX4OLbp7Wn3u-)5doxQh2*81)LjQlWQ*6n1k(JH6HAt0JROa2C>>aNDsCk z&k%{QZaEVX2Y$fH*Di6hOog|`9(N2c!=?IF;*nfUi%X(~_3<<?H^%+xqrnE4a95}d zBH=Z#;gBf08hYf8^y!8TRIr;u7jr7uMYG$$b4x}65^sub;2}b~bNY`j;B8zT!|v1= zqF_%TFd2VKVi=iJ=SomXR@QvA_e{q(Ky}vhfs{|Ba1+l;Vkd1K$F{wRmLX`ezz$s3 z2s_RLkkoF<9vr#6=1bU4bu;BNXj~EU)f?Y-TI7PY)eX^Gb3t{O<s|ok^`okf3p4Ot z2lMg-26}cHevyk{O+zd+aD`NBQGSEbosE!Di^VF&rVT)fIa@6e@^%4yoFwlz+ihTK zC!>Q2CUBk)@-;x?s+w=B4vlSs9&IP!rx*Kll8twJ1oa_p7^>Fdys;zxi+6{Lky)X_ z>*#`t$}~~o+xl>#;(=MAV!~0gpaQOMA(*MC!ngHaq2i=>H9<yag$hr%f{GD`n5l5# z8+)&C@%cKZDNOHjsZ{7oeB5<C#m-dy0k_xPoT;NzWd?o$tT*eGMH7>;<1yEYx#dJy zEiktn<%*kA)WMKkD0CIX%<`JA;i0sc0UPC3+4;hcstXEO#s|Jo__a*;ixvu7Y|(1g z3x!?O^2kD`SgadagPGe^w_w(4ZFfM~o7F-gjyaoF+rwv}?e4m^H@CKDy-;}6G}|6$ z+eg*4y@j<s>xDvC*wgCw1lv9uUaH0mg((fv$w2SHySU~lsBWQfb7Q}pHL7EWDKn5O zqYH(tla#q4S4I~KonG9iovU+Yf_L$?D5t!M`qm1D1bz{d4HPJF>oZe^8|ACYF`%&| z<L7i{Sj5VjFJg?9we!RVH$2#?o{&rP1kfD1P7K9I(;S96+`6Emz$Rg(^R@9JhVzTr z_xsy3@3${9Nxz}K6?EH|{y@7uKJ#w-B9n9*Vx^$lzVrv$?dN9RZC_-PZiCSjblaDH z_uc;4R+!u_3ShcRdvOmx&`FL12LKCT^o<;;z+)BkPhxQxk0XDrZRtO|LQ*f1OrNEU zLzV3`Wj#}w$1tS+w%jWHxAiuYMfFT%#zchmgkC30)-&+%Ryo$=%h;fBOM3QL<7MPO z>h?+oR%TB(KCzaqgMmk`4wz3Y%A;@iy&x6N;xB8Jt?lG%M<g5V41YRB=(L$X|J3wZ zw95#8Y8SKq1W&^O33R2v^wmem*rt^UzfAhCeYiwNZtfh^(*yLTN5YjUC%WXao>7#w z3t5MFgGVy*_Gl@A*KRGg$b(bc&p5(n=8d?VK>UkY4A94|kxRh9(qxnw>2mfMs5^~! zX}|!w-NtSs#;RS5X<rA5`g(D$18|x)?(3yRS*O$2vBJJCL|=7n7=2xmte?EE;)wG@ zEPaKOyj_cFUk8i&dR?vqI7q8;Ux$jaPN%Qqg?;@5`noxtsf4sAnV7t<J^69%VPB<~ z_I0?ZuV2b_0L$i$`+7%F*6H+hLt$SZD50|&hK9~|CmSd4tT^uK2NpVbyB5>Vt}E*7 z!?_-C)uZ9uexxYtbUIsmy=cNd#m;KT06N>1^fG7hjD<*ZJj=~k7(4A+OglSL)Y+$V zJ%C%hac93?lyy3t?JMl;I6Etjb%MGu>7Tr_V*b{T>_T={ifLy@i#q#kt_KLGXx!Q7 zi?U9qvjc^lmGd0sx@&@3Nd_nHEOfN&$X3`{DW;trE9&e|b3MS?Pvg%1yeR8*Iy+q0 z*|#{dO^!h=NY+i>S&1jBAK3-$tQ3>Z!pxZ{<sBIsy!8eR3l~mBO-gjBDV#4aXA~N7 zzPPwc?}dhKm%Q-WUK|W{2q)XwZ*%<%Z^bKEM3k2zR#I`5%WJ-!E9Wp~Z!>z({Sp|A zFu&|2OLnOfyoM547J#CHwyQ-kl(XvlhH3ZxrN`2J-)4q=_wBqleSf?O<E~*kWf^rH z`^o-?j=g;eDmKk*XxI#)b1`&`po1n0Ggg$xW>7FaKI7+(mOA2OZ2V!UO;rYE=xXqM z3xt^?Pug)k8dNgNq33G0@ya)-Z;Xgx*o&+N!}OL*-)hINNZyH7U?D|9X(-HNJdlV6 z2EidZo3PYp)~l!Z8uHLVHXb0G>%l;6I0LMS)iZJj*UTiM<ILw#Qw&qH^-MXrkq1IG z1NavFYprgFx4P6wE5Bqz4ijG*v?Nz*HlSf8&eSbZIu+8zZ2k(J+roFscUoyp+E&R$ zLd4d}j@C*G*VF+34q7L$+X5W;PT-@cG~<+~V~I7a&bC&XR$-yD3C}+#*D2@}L^p6h z!j5=;IKNj1=qCpQjN~WHv#{JiPdk8~3JI#vld~~11tla?7b=Aad;H;Xc_QRhVM>HO zMuZHwLY$;0Lgr8+>`oCO_c0g|@-ddG0ul0#u{t6or5h2}XI3KQ>pT&%-G)TSz)jwD zBz>FC+G=pwon7;|dPYyq;%S>Q+-h_Uk;)n9Bd$Dm;ur$b;-s=FsjQZ>#FVO~AbD(3 z`cy0|T_OoN$Bk0B`kJEb2B#>pZDrHxD(cGHv?wTysbm_Ri)u_&<jHi3Wnc$IT}P%{ zSjFb0JdvvTJ&AI}v^cEMw7_AIJPVSS#%_(ja2g~ojs57(JMV(ON=GNJjm1c*4-~xO z)Aa{#)@pBMCJ!%YsP^g=OhRG2^b+0ya$cUlh-(#;Tb7lNH&scf2*d-2?T=D(2*G${ z;`paoIwcD(iXbO1%ar6K>Qv?|&vUb=124;tm2;ZN`T26<YI@FvX|zj#PI$RC{ZS8z zo(YJq?1{=4%obG;O#4T4y5t-t=LX!E(}m};JBNvL`oiD7f9a2;JB;nxA=RCdX9@}+ z-^-zef~ksxchajM2bZgg;+egR%7vr}Z{R%%i3OH`oaCwo9YQ|NNkfffL~Jf%{ar`M zq>QbMCAh!F5r74kt7i!+nQ#P+dcg{Wjh+Vc^hYY>B-F_qG4qj?iZM^T<~Q8ppdUYt zp#9Z_YPk?D)BSubfGK}=bh5@Ypd)s`aA0M)!o~qUu}HK*jcpqN(;-U`br69Mo;^U! z^0x#d9WAhkGYUUpL*)Ejy91@_?E#=QnFvQ~r?gK?Ge?Vx+fCJOxPC-GsJUaK(F7`y zXGeou%2FbZ2}PU(hvaA*p<%{7IM%l=BrqBC$~woM75D-y?eWXf79-cVbh*;P9Q>bG z=^lR~VM;3tob5cgl2QxG10%QS6PnjvJrrMf$PwnzmpbBDR#fC<N8F7v$<M9vaKu#; zH$B4;0A6m9Q(=^Gy-sG7Ilpiv<E9zq{m~iq5WE+o9K57lAW982=Rzt;<bVcgn)n5| zn?uJ>R`S+!u}OsUd2B9bmN1=ebisBb9L>SxyXql$*eoiHOk2|UrlC4Ni0p!fxdoVU z7mpjP6Lq&?Sg2di@Cj#E<}C~eIm8-S<UU|7ShK6$Ks<$mj2V1bbwO7MNz=n&%jmu7 z<Xyyb_n(oRn;fE)dTi!2+A}3(lJaU;A+7RT9~`~n*kj4#n5sxzD&?W9Uuu<nv7mww zBMd{O+za&?p61f$cBGn}L@RWJ8w6lwxFoC3P{Zn)?|BZhH_>vNGl}W}+|Kd1B^4DQ zcVz~-ypYp&HmSk0gdJRx9KJd^tXF;>lMpAJani;eJGAmdFV)yUNqdh}rIB=U%Bu+{ zO$K^eS@R&7Y~sEhr<9Vzb7u^ZO_cSjsH&(HL(T;B<FNR(I|}I|t7U+xgZ$kv(IS{= z+zibPH>QZPN<qH444Bi><KQ_g*`tHgXs=9MX+5T+4d(&3N^CGd>zD)FH6PnCw=$<P zcNO57D<sh|r_#2zGKY}yn<bQNnn^Z*c_m-9(tJaoVaU;ZBe`Kld03Ta7@&^33Y3~? zw4F!Q)$h>Dqv~pYF2+4E*UvUD3DKx!kKJ)*&=Ug-c~d&)lkiRo0vQXOoFOA&mz&d? zZ*xpY_Kg@9N}H_B>>}`wklN33mQp3;l%jo#`@uv|L2Rq6!VfV(IA-vO(L@uZz`YgO z&xnWCpS>Bn*E-3RU>B$V0Wx?tySO=Y?GWhTLZO_;uB(Eoh~rRp{Cy;KF#AV$=GF^S zzq|A5_bHi4$E_mOb?ye#p`?};^1bPVdm~DrOF$_kc_3*-3qGB@0DXDQw|eI`qB>QC zs2&7?dxb)Fj5&40y+O7`<q_bT-;DAW?ViKI)88o^pbl3M05S+LDASH&vOdH-trBD< z$cX_m3omEALx>cumzWY*4G@m9UJ@|`X;4=`7nO%21luc^N0P!s>m$GtxG$7OeMT(+ zKy+lq-@`Esz#(Ky)Npat1c{PLI*xuf%<^St3*>AoLR(u!2-D&h&0kPoY2p0fdGXt~ zSLtEm#t|LLFgX4ZHD*MZ>wC;4ne$AuQ-q@p8d$5y8ye<%jyVu_1W?-+MwwU#Bh<(` z#|)rq*@CdBTHZbgJocP`aSM%C{U6Ghwv8H1i^iaP2Wu;T*M+ys5GXuEe;^T#%aJ+& zvT>qKnWOeu238<%S)1$&o(HtBY7kuLnx{#~iDYYgPA$^K*;nvfj~WOayD)U@hK~r5 zt9`(k!U5#Xp=D{yx(X8U-NS{1YN2)j<6;Krz{VU{o;|;1d$ki^dT9}>WMQ3kbptCn z(<X7-MWq?uIOcRi3&yTnM#`wn?{HZL9DpVVIESDp+mw>QrP}2NH>iyw66>(xwigF{ ztPS{RwBbbtw822j-iM==u@Bf*4s6`065x5#Ro54|Y%4JpB*g@f4Eq2bs5H@f;0_O2 zc!anjx}5A9XF^#5*j@uehfDUHg9o4j5jUYrH-;{4oGU{t>PN_MbI9<zX3z+=`rQ=c z*LmNovx;vE1=EMg)E{-8G${C`T*06MzcuGwNF~T1INMD@u5+~0^MipXQ0n?J@`bFZ zx?W>VWM<OgM~}Mjm83SJQG%GV<U=4|juaF>^(eSe3#1p2y`tvZYT!w5RV_u0U<k{? z>=r0eyeq}l$-Yzsg=SWUX1=Q~Obuh{N=<8mo1WE1*UgyJ=q(+*c1r^o2YCTpStVig zlw|M`SIWu4`4>w-3+F3BH{7g~pHNDYg~uHWlfK%90_r|q>NX*1mSp&Na4@JpG5j;! z;7b?sP_of<Ncae3J}c{RYhB71*r2X`nc#C+7k+CZ6St{%M!TVov@&H4cz(&+eS-7U zC&+h`0bDU_aIorR;QMYO6xFWyGMo_39;j(hQBw#9dk@HhPo1~qaT^s@M<{zy=14&` z_uUFZAdBmnAyqhz;mzf~995{e&QgU@0ygiF64b?xfk8(E>*Q3_Kygd}o!sgifA?c% z{H-BYMP*(hzCf-nncux(o6cz>qIUK~;+-!PCcc_5!_E!3v;(}v#uY5pPuuJYZGR}4 zGgF`BlF)Q@a&WsXJh!t&#bO?Jc814MDyO^xSpFvL6%}G#YMnrFZ4n`cZJ*8t0aXZT zk{#0V)tofbu5Cw>l-iQC(j-AHQN~CoazI6;NlZ7)f@YCa<O!5itw~J|-k=>s!PJ_( zQ(6IS4$qHYf!uAf{Khnw;iw9<tz`YGueLf?)z)5(QG=SkpkF_SN61T*wCsR~)P$CW znGrvs8+aX(ckqW+KPwkht9|BFi+t5w)}er3yQ7hSG%$<?QcoK@Q>5xipiZqA`AVgc z*;SWC!q{X;0N-&K<ZRFx7N){!HBVbPf`04W7?~jO?Xm<86H+eq@`R2pi@D{R{tT^) zJRf%UqQ|mL?R9Do`Rz7(>tV{xh$FCEh1Y6K1%px3E*8pvXrOM5kdugLf*enV-~3qM z2Z`HW5Of1oOS3p#5t@8uE7982;!xJCdU>inQOix3!*LT_zoJMhf5+qzeohY*HrFRx zz%T`H9c|*>q28a|eUS^k0BVvg4Q|2;*5F+53pA<1IZ(l>9K>o$m^2g!O|Xc*KP9xu zmH-eCbwI#SzXg-w(!Ac!1Ob1flI1dd!8YoJ#>7#e!G{T2V=_&&&I)2@oDs;LIO7mt z<_LRD=+X~$5Y&`0e5Un2>y3>&F03TRmeLUNff!kd;_yj`RCx)=JUO&{Uo69~8}9)z z++}M~tq<8y^~ck+=qylJ+DHX1A>I#{SOCnVh7%(#uqre0y27ae0y}C_4H-a7lUIgN zY7AyV%F<<x&h20gWX0fVxdy=f0du;60V-Uffk7k<Rmmma-7ht*UUVuNk*OWGx4>B4 zzV|GqPY+=HatFaQJ-S{qmVS0=pT%e!BMj)>GOJ(gG^CHTw3up0`@O0Y0cadj$Ar!G z;YNm>42`SXFz2e4zWJI1v78aQux4xN0yOI7GUn(#M(fW&FVrM$1>{Ke?c#VCcBGg7 zT`E=d@1}b;Y3stZl8cVFUSsxn3S8)a2N2H=AYP^*syEp%n`RDm>`Udj;M`4SLAaaE zf^9dQ1=Hx!5eAeX8|j+z_iAH=!==qZnP&A$J~oi52sEr$J;+bdn4RviPLry0jilT~ zPAJ)KPSNPzjg<2hnv_#(OlioOrUg=N#gls*)<HIj?y69M>M(|C9OZi^v!dpkG%2TS zu3Ifm@jh`frez4oiwsD}#K=d49JMjNFeyiCQlg0{4aCt}FERiYMFnVQU@}qRbUi?y zgg%no^E*d;Urbmi!!#JDCoHH1Q(YGA0d}hoQJ73vtPWT-VWBJxFjH92FXXgq&JI=d z2RQAio$C~<GlE@0WQa=$KXHla$&ix*U?xMfF)%VOL!`#Q;>BuHl9`4KIXTyW#u26) z=)>$z$&i$gnnH#EG9zgYz9VA}z5Wi|?UVq9$q?mkMyhEUl458W3&-e-got_ShmyPy zQKr|B_mFI+;AxJmXH>89v|gI1GYjGZXWO<!w;VT_`9mZnE(@ey;FBB3a5rj`=_4eS zjJrF_h@7IImAik`8^<Gu^bTybR2hBBeL69xLuYex>G8*Owum{|0$nlLo~IGfc%*B& zIl1TfV`M4XKW30(bFx&Q&T*O5^!;;vDhC>|3R=L;$)D)cCYP5px;d%POlBsUz0Jud zU6NLBb8?tVaxu6$Iou^FvzwETxg_KHo0C0U($>}MmZ8Kvbo!7)NTrOuad63GgE#gX zEzd??l7p3V5_Z`%z^pPc8A$(}nja?<8VqYsn?{~{i~2-JO@*_yWYvareb%=uU}_(V z*Jtl;10}Z2VgVEMxU0}3iBbNrQmF@<Zq5_Od2=+aOi!FR(jaGJUYVg!+Go{%XJc}e zEz#gL5~my_u4fecK5pPpppU|3T|&65OMuHtnT}Y(1jIyhYZf9Id|ezGjFj<<Fgz=3 z9!zsLt5F7yCL9<rGipqoK7&}ffX4?h&K8(WM=z9$viT?VhWR;Ih=w;q*ZjEhqboAd zpO#RbE-w9UrR?nAKFBedbnxQfZ;KTjbE3)|czDE<$F2T4x#0ht1JBMJaTzgkS0#7b z;?nORdqpBssG@RuwbJ@wLS~itl9-ZJ4<#v&6*m(E!!98hb_u~S5(r|cSf~S=r%TgQ zDQCf))D&>MlTyKX4k#7e$OP=48?bMyN$M+2%Y|+oiL{+QhlA2*gR+EL`u?TgflCZu zzso>}7&wtb)qtOpEbWWx?j#i9b^0;sA_Z@yO#*)dgck=0&z&!(gGw&+$4lt06odwO zBM1SSz{2_OM}V+6xCo2F723Z%v_CEOu`X>)jRa!~u04u*$Mq=vEP*MRUjtA{_G9{{ zCW{G*duI9pXW7eh7Pw?3`auMpIIVaQ{SLf}ey5#2ikOEA;}|UJVKC0Kn86H-*%jHV zgJoNPTU1_$nYqH<yiNx!!h{oO8+;>khOV9t%o#ix2K$u~q#VdWnK*oJ!NREPIEw{9 zRt?Xh%Z1@Ih!@tv3~+^z?ZsNqe3`=Z;>uB&Sl2CkoQH(WJoiR5NXsTO4{sp7xzxm< zVVVc)O-~-fcQSI9bC-dR{NR#~vhK1qHIFOfa~g&0_#DAsk42`6ohUhmKnCg4NLh{H z;j;2P@V_?MbF)AWpsqc(KxTfR*waEw7VoTa3xE(ah8x7;Hfw{fk(}(EX`^Y>jHMIn znOOe|TT#OC_DI`=!9eE;7k>4*nEOez3i;+77IBLThOHTD41ONVsIzzlm(O|h9yFx6 z!Y^!bcvs+=f~bY#k4-R$x{B=7l|^{P)jn`xyu=}mVAAiDS9H!z-hQV{WrM-fT=SdD z=k5X5{O2UYO;C4`IoXB!4l~k4Hz%oquj-3;ws3E#hP6_h%*B%TTw(WgWT^-NqmbbT z!y2F?4a|aMz<&NAzQFB1jrQjYW%CSH%8oWl112ajG|Yr43JS>1ah`1En1V|PO}d28 zq)P}*A^|aoIPD|?DG)kZQ{F#7j^-|G2$ZPqkUD8#v>Pbr;y^hj4eC5i;sY^WJD0$l zWRQ6a+Ld_?x|O)R0g!7YIxzY}$W4faPaC9d1w?yUXxfNY1=0IMv=MtliCZmIYq6Yd zSBFmLzsaD}N}1%Pgmoji5WjhX3=HIe-m60&@9z{*rnaD=6zB_Hap2VB7kKv-b8yq* z$~lF=Msh4?Ftm4rE(+vDCjg}wmFCC<eC1>URwFcDG6B~&asW#-<^b3|VkiN$_B&wV z+5lB<E#~`MLf*B{LSLSq6wJy#+j)Z%KV;txWnbOV;+Rzhrr-4$xwi;et79P?11^8K zmz`I0A?G^M{BN1C6mqjY_307vN+cd4a9bGu3RO>cLJmQ-!g0is(CKv)SrY;v#5lx? zJffc@3mG0|CAamsU5j+7a6=D=aS0g&HD8c=@IR882$KyL$s0-M%_U7`)uB~2-*pSy zU<)qbYU))VV;P7Dbqn{q0u4>cE)0z2&LG=Iv;=5qfu}6yN-Dcf%@UCZgtpR5#FFn( zGZ1d0SlttkOcOW)F<PeA+m1f)AzdJ@%wf|E_1hW6q4$>rzn#23Lqa_4<m@BJxzJq4 zTwt`_f(O}GS=4t%A-zL>($F{L=Ly|9#JM=h#Hr(S-T`JynY@Ec5C6bLZHzUF3Gr}( zkurX8dqMkq1IobUpg0r&Il5#bA#=|1*5H?VEO7LujflSYvvogo90M~%Fp=|m4dzXf z*R{?K)1kqEKGd~v4TtDjW53$RW*NuKqle_<6FKtnn~a2ffN!^AB@~p>$^?3q3k{*4 znr!_t<K$%PZ8d4pTzrl2g^2|p7vsh&Z4!;q38JMsHdm)F?Q&{i&8B4Sjx=>I%+g~z z=GjzDYPDKZrJd8gg7;LyuxWc$Wge&Y%FcE%5oium(Q;&2I5R8m>Z{4SnBLRPUM6GH zBgjqO?#TPpZk7{GG5y<<T10NmvnT1(Xg7|e3ftryX|_W!J_RbgJAo1{8$x__n53q0 z$TDMH88Z5ex;B_A=HsW_G^~@KX%)u{$()LF;|{ZQ2~JPNnQktqLcgDO12|QPQK;MD zZ-MASbOOj8<Vr_}Y(d^*k3API`q*B3@3ZfIUHcz!;KvX8#KGN%9P-ISG5gF*Fxuc) z>EVpFbQrQ%NA*}~RY*2Eoz^f~)5#Q2y1eEqc}c@X7o(E>OC7R!#62vBk_F&|S1Jn? zY?E6hnhq{JL=v?PAi003LSGey@@lBm;eZFRsp&^J1a&}w1q~Mw3h6|DIx)aRD(Y#F z=?$JzM;jbWO@*Ql`Z2wU_&GoqS_|~KIW&l&?lh?rZB?Wy&uZOzN~Q}(rD!_qb$<=n z=fUhTs~O8+Z@o*KLO1TxjWoL6fZ691v!4(o&<`&D0tVO<E3}VjD_GDa8S+8Ob{A^S za<YwBzFf2WINp?#c~nceu798;w{pn?B)N@C?%yuwZ*;N90;z(UV3%at)@9lcn(cNK z^%`-#WM8Hcl*`|Hv*eC0=iX9qXE`^7Z}&pZt+{0c1h6XVY^Fg@6>1Ukp<l4u&@Bz$ z;nr@^*2VaOkYSnC5u;@I%2amHQrSI%!p%zD+OA+q4Y~?kM_j%^G$M-A>##fX(#?Zt zJ+66DVVApZW=3*peod0=d)8@=jY)21wPy*swkc~5>J|WZOErz5rb4n2<jn<e?BxO8 zHpbA<!8!cmJZ>d%oW%|kq`Q(CF`@(FkYG}o3D`m?d8L(1=J&4cC{;_9(w3!?nB=;J z3T%j^&YkZvVKuCrRvS+yI36*l2jVwx+yUJTb(Vz-ac=}{hvfK5T+?!5>+vx*DEU%5 zK!Db2GMO={<KrX~w?%O0k=BHBb>xTv%^26{>VZ3|ymUuvnbCdXf#;zxx?7g}l;pY^ zzL{_{-uUSTmj*}h>L$5?y50j~ZVM=_Z6^rPuzZ~)<Vw!gQ>LI(pImh)q3atClrH#B z9CIZs*hJLI?~U|U9S$hDz(YcCqY6|H3d3Wr27|S(aIkc#$PE@@=!ZYeV9-V|gG2AW z6nghuyY!AX1j<5{47aNx8M)5wPZ~glMzsXb&Nm2E-kz(H`v~f*9Hf)aZOIr)hU=>w zw%{L6)_3Hp)S$j}Ki9F!k$ar?c_dVsyzVUx6rlY96j<b_;Kv?d^b@DDVs!0y=-8bB ziZgc<Txqb4jd+F<{KQ6^6t{I~zbjN_Q5G6R17h@OpNY)PFhFY?8b#i0W7j84aKRs` zXPeN2f}bEdy4y|a$`v>0)uQqSk-9cPg;77m`KVDZu;Kg3mC#3t*?|LY1Jj`A34UWj zNuVd{nNq2_H{fN3PB!(ortxAEPvi=QjQEntCRbp%@vDX52eW5F{etYxM9LYby-QPs zUy;=yUtkM$Sq4&tD~wUkdGhWH;J>}CPzd+&d;S1iI;_;mM~Aw!f0OV!Gzz(rjGS*1 z=rEEpAUTQ|61zXZ@_@pk=7^y$L#;k|lG>nSjZ-w~l`K?AJbEPys9}2C)zhVEA70tb zv~kBSz40Z?vIhd(KUD2Y<8L;UWUPZjjdqm|zV2xJ6eyCR7O0t1r*5RFvepeX)mA?6 z(K=LJeaES{PA-eB4c9}d-;Ivc?Fdoob>4ER7gC(Opz+)ccz7h>;mqur6Tey)eJE_E zxaT*Y-(cY1G6vuk_(4;Ne|ky+PJ`q@3GPm1oS4qoBX<*P@DoU+Kqvop#W`hZAHn|n zA8^2d>L=)ipWx6#7cV~SuumP{Q>`Y+Z~fMP`0d~M-6g;G`~UF|{@@Qj{fB?_M@yG3 z{mf_n__Lq;lRy2lBmVq9{l)+Dm;d?m%l_)G|N5{0=5PPszxyvo{@1_%Z~yR*|NVa) z^-ur&FaP@g{r~^-=>PS<|IabU9(Q~#Iw4vft%z1eCq}EH)lqM>CORoPIXWdeH99Ri zJ?e|jh|Y}8iq4MCiO!AAi~6JUqYI)7ql==8?Q=<VNpxv65M3sp%OifSz~@T&Toqj% zt(DJUbWL<^bX|14e1@VMqAx_l(T&kf^0_&>CAu}bE&5`#F8We*yL|45?u_n=?vCz> zMxuM=b6<3S^g#4r^icG0G%BA*qDQ00qQ~X)MD*q8$!IM4ihQ1mo{GMT&)1@-qi3S8 z<Fg*0Z`kLX(YK;+`_Ffx??&H?#-r~?Kk%Ptqi3V%qUWO@%IAe>BKi?NFUseo=%wi8 z=#}Wl(NFwmL$o3KY4o$`=h3UtFQV6?Uq&0F*P}P0H>0<rUqx?6@5rYXpAavPSHvsh z6XR9!>bN&vllz<$pB$eepHt&g<J0gtJ?@Loh|i4A!sqPxocP@MytqF;Up^Pa7vggf zJ{QNA*yqxCAigZVJia2nGQKLlI$j$O#@EQ_+W0zruE%F6zQI0Uh==1F<D24}<6Gie z<J;md#_QrQ#ka?I#COJb#dpW|#3S*&@qO|A@dNRL@k8;$@o4-={Am1G{CNC?e7+n% z8IQ$ZiJywU8h<T*I({bpdb~dVM*PkATba+d<L}_}U3|V5kH_DSe-J+#KNmkA|1f?b zo``=GzZkzHpO@p8<5%Jz$3KZT#6OLH7XLhcHU35XTKvm+BR;RkZ^Uon^A<k8!sqSy z9eir#6YR6Ryu7>upOyHWh|j9>>T+*+P5Gqq$>meZr<PAEpPu^kmD8Uy%4f>wtn%6A zbIRx9a~?kZ<@3uI;Bz597nLu@=aTZJ_zaXUv(M$_%ga~bb0t1km9NHUZF#VKP5IjL zb>-{nJ~0>HNJ~Bt=oV*)TcrOD%wHX8^^rj9Tj587J<W)D(G2N>Ll6r6AdJx&k`r;D zR<$OzrWNAY=VP>sb53#0Kg~^?Rnm%R90tx`%lh?+C>TBreavYe)EcR#X*y^cC)GTx zKUYmr>S`1a%E(<92xys3AdAP@*ve`rTIp?iqzq671#&7-y~s&T6$Sv8H-P|e)AfZ` z%~gS7u=c&_E9w*w6N;Q^Me;t1wd}kzF|lYYjx>6@t|qqNwvcUTS27oO&!CZUZ(sL{ zs#e#~IfV^L6|Nx;97B{jVkbpt?Q-on+8B38rw%RHu|csx*x=sN<$(7avxCwf&|^-> z%e0R<FQjv{i4o*nl6E4%8bUQ7P<bl^YvkS$*F;BLFEd>#nK+DkB$GV6MEe5^Zd~jI zDDLn8(p!kZFU`ByDpr$1D0CH{U&QBPTW)BTkh5{Rqc7xBoXjUrzRM>USb5kBROE$> zHndinj_qjUBH6L(5*}|wVAA2MD@_QJ!jZnoJT87cO8fJCmTxs5>nHG_Umt8Gj?R7X z;5<BlcN_ByF=N#y+2}byV{5WCiIpBJB&7~1@-x<YHlNf74>@I?gJ<fyr{f#LK>a}N zm9uo9%r+IoDTcBRBF+#-Px+yt@r7ptu(Z7`LITqE!$i0#v}x{xGqp_sX#NA5UkH!G zE)6y9C6W$=HqZ=yaSsvE$0BCsD6^QXo414}zpvet@{O3pChO*{p-t=N=`-)<sVLH# zY$s0i`#8RMz$e?vh#!Urr_>S2{lv{lS||_&9spag`f!?=cNg}h6a67EZKRHb4t`IO zx<)%VHSKtsA+5j#qjZD`%JH{nq$35{Qxie<t^<N>uqGpK?wJ-FQcNBMs=GHp`)XOd z8@)xt@#daIRJTenyMWVAe7Z<;G<0o3=HH2e>S^Qf!2s2>io=!D#Ub06)%<%Xv}uI7 zq6ibk^X~*LvS}%5G(a}4*sx|kloa(yfYvCgR)oi5ih3I|xHZvbu%B>(;{l)OG5O!% zlV9NpG>{~cL-xMHM{nT~6$6Pn!fL_@56Ew-ex2{$K#ffjE2Srqe$5_g0VrN5XjwN> z0YK=PaEfP`4^QOKKIBQ|dkrV~<yzCCD|jGab24(yqX-A)u7;8O!LyY|zbbu;Ia^+4 z<w#3s17rHRc1?uuIJ5lBbqoU4!JwUNPHNahge8X;nQw#ZBwB368HH%#d3(;aL+#OX zeDV`EYP<O*%a8d$cWj9+K~!NmCSHXA7Yox9cwS)XS0;g{F9pv_fTt{|&_EdgUul)- z=!j>FH1i0q7|r4IJK6DqzR{scc|1<J2_D!dvUDJDwV^~3kZTe^ED0!D5<t9;+0=gr z=C?~d^Fz)I^Lr^rsxJayu-ClEeRCIOetn`SLl8GPkvqX6)8=figeL7wdnsQea>>?} zo0&dkx_3&O2)z8qp>A9Ec|p4ab)#N`sNGYjK|GHltw|H9b0zgYr1_wQ4^H5N=k$Rr zdjFin@GKt?Ezm+RfV@v4R!aZAL(QOpy$)v(P9ImVh5nqUn_{Fw!4*|js_1VJf^kAn zA3Y4MXfUn%AZ^Es1bl4__1mVG?<u|-@m2IndRKjiEq*61i17YZsMA8_kd-8*W58Is z9o)WzOSn}V^_FGlff!+eJkk>=f5J4!e#`(b>l<l~wG+IpXOin%+Gd`No#g5_GM?~c z{0%o&C4<&$6pa+*<)O*%s7R9XMP!^_iI}dE)1b?`z9%+h%7R=GVEJLYs4(lZ!{`*} zk?o39m}jK>U>%%o#J<chZE9*o`otUvQePS!2ExF|=0zZUO~i@Hmusl7el`2xDec!V ziNJxj4vBP>?FiGuKAK^qwef0Ut`3iGRzL)R4&d2nRGPN!yS9Z-4k&w0DQHZ4HzQkk zl&*;<W%|1i7ce4Bw=QLQFjzh9!4!4zE{s1KN=`se9Us9eX=&b<QBe|c=hjfN++Oae z1}jWx;fZUR?+Iy;LqHSSQ;Sj$jz<<reid^*ZlLv{Hn8AM24$zcAAJD}<}g8t${gmc zw1#RPV>K-(TRoe#KFVa9@IPtg5u_8jZH?tHI=w3C&u8XQ0fD=A7%Rq=TiMJ5kvU4> z!6ZjwR~WY-;E`02mYt|D%}Z6l20nUj=)^j;As*JD1Rr(y#T^W#c@GIFjO6038Th%l zERF9GCsb`$nC`M+7!wCd?Azw5jL-wDn5&WmRHhV|q-NkZD~3*{-j2)I<o(uUZ<NSI zgFp~tnl9nH`-nDsI=h}<l<WDubv;K*m$Ic1gJK*V6lsu~e(4B1nZjdJOks9+R2@vp zpV)nuCd)?Jyn@1pl1M_+!>A1e*uTH6u+6&^c7YA0$90^srb~{%>f8fi5qL1LY1u@U zv0ok_G!}7(LO3H9aU}=fb{T+~u?VHObt$BzdF~AP<xGZ(?575tBgSZMiEP;WrLGPb zc|n=x7XwBx)pS;<?-r~H=iiYVa^!@*<bh3?WE=!04=|Gut-~>PlUxSebyf!3rhH?0 zV5MCFkw~fdIw9wgsmK{^4;X)v$P<t<;>JW-ln4|jk^zZ`Xz;TW`5wLVF$hMd#;gL` zt_f(fu-aP`Z5@F@-A74svyq7^fbcnQEj;)(lF&^yhX*3DgKp)s8|@i_T{S2aQDCKc z!{MoD$v5-i7s5jc5S52FgoonYmWM-ed-WC;xt>5uV4j4B%1b<R4<!;*9$pt7s?SA= zU+bTC#8v6SAQXzNU1F`GpdU!1WGW|H!<|2b*gHIrlkKGAw-b!3tsd+6m-y@|UpJyv z6~+ahLD8y|xI(KQ@KqzC)m05z8^m)Gs|aeaD*kRtwyeOR3xXALG|_A!hj+5c%h@Ei zUAj{d?%~q`ZOX~lW;8>y;BI?|ofl&IXeo#rs_`&XuvrB)f$3MJmP^>@P&Jn<P|5wQ z<YMV*&<9w%ytv3-xTf2zX?b}eU$#lp*r%<{TCESW*7L3K3Ppv8a(U68sg-zRlk)OB zzT|2Oy$)qps~89CF;fWhqpbZL=4<7+3`kJ#t)%U<`4Gq@K~V(C!?XCXg#{mH!84h} zG7x8$FiQ-L&wGZv<WdeR!CoC%=;H4|*(q@gTj{e*(3iyhAP-OHLuuO94%Sk=JuTE1 z%lg4pe0r)pC3gh_6WvPG6|^!<78<7g*Tb|QR0($qsRf~Lf}6pJ&IiHX2#iPdMM!Tz z|A(($p_FL0pwQ|<RVu+jy(ED*mdbDio0YAu0iM(DSt-WXl<Bnb(pVyYGr;?x2FjhR z)U7KGjFJ*s7>a?XlLV)04~lt{72pZ5Q7^^O0p;Y&-+bozvS9W#4(=M3C?_Xec)@Nm zxu4_1UOY?&Uf!${%QLBZH8b)C$x2G}{2%~lnkuq^=1i|J89-z>En#+QLpgc#yc1q4 z{a^OJ1Wc}@I(NEzMl++4>|wKI%+ezpJi-P9!61ym(>E+)jo6ihBuWT8C3#7dU3t&O zjU`L+KHde!_Fx-JfCT~@5MaX?F9_R!*u|Ow42WF;0}c>)|Noy;Rk!cGJ)2}m^1ab# zci-FhR-HO^_H(LA(0q>&o=ym-zTE-gMnWhuoCrFLh(_=6BrZ3BN_&WYD~;oGrb0Iq zkz7Ei)^L88pq!>|xrajmIp0o=I&$zR!P(gWRGRH4)VZ=4H@jgfpiTPLbZNE!<rACc z>(@16XzQW*Is6sw%@adEOoQ2L82Zne;7(*%g`uAiL%&qF6&U*W)Tm<!kLC`ow-%k* znCPU?yN6Bw!bSp&>;~geFsNQ0_P|yUzEDhoi0@>&z4gwc&bEp^>Y@$Wukt5Qqb+H) z8_^FD4HAiQx@glLoN3y*=hwgL75{A^$Nr21X=HDC%N=j+)#SB#_ouj<O?{_>yno_Y z42GQAxSG=O9{<H8*uDLbU?#bQ3QA0-olmh41H_Up(J90kw>AgyO=87xtEaWQN9+IX znveOBb=bfK5Aa4j<8F^`P$~H0*1i5j<h?1s5t(nF-*E23=1IH}SoL0BnCk#TmuI_) z_KOnd7bTLx=yN0^68SYr<j2BFHgUmH%pC_wVGztw2?C8%KenPV{j1den|kE{{fKl< ziqh`yz=ER-$dV!6jdk(P+<YT!_)FSIEc`=^0EO;{=UMm%8kOcIU~aZTZo_FYBIx0{ z?}wokB-h6Dr1PbojQRu=6?L8H$5~W5aJlJ2=)hRzEWe&o4<L)z_#M+bT%5SgB>wN& z5HVF-(FkJ`3cG<eXyZrT#&@={tH|4;A>-{`_+9;NMHHH^B19nFjNCZ)pHN$oCaPWB zK$4QcfCZ$~O#)wa{xxS<eCAS)<J+9R_J+~?^zGBw7?W^g`g}h5E!~}M&KY1wCY$Zt zpPgpZ^UvQj@$ECG86CBm(~No@!!$Emm2VF0rF^r|CvjXLuX7SGPF@1WW&=|O6vvqv zD3S<rEyzC@i4;hK<TbAO1%3IEUR5MAUPU6~eH4XVNCXWlm2`k40*;tn5_mpSd_lsh zCxpND+neGG6EHr-0%mqod<m!ctN%TxxRG6c_NE^UB_aM5j3b-;K!*_jGVZy*Bz<)S z2mB>INFUDjFlpek&(gX5A)ULO&was!_JsEC!{hE#UG2X~ti@A|uj1X$6P2FU)nj{k z12l%mxEUwEVoxV5g@9*QmEL_5Tlw5H@OgSy@O=jGd3qP^!iho`+yHAqNb&ZE6t8uQ z;|7`Fq7#lZZ&BaBxkN~8zt>d>J|P2!c@4QyIsx}O!u@FtmZrrxM#?PmUPv`At=xhv zv-!=YN{VLUxFlG?Or#w^gpI>I<R`2+SyX$mep!G8g;6alLNHe9#4F6I185LM{n-Bo z{xtMlwt$;-{hZ_Zgk}@!12?|T8++`=64BgOdFSIAvb4+tR1S3)?|v-ZRRn61H$R$g zS~1;?yn7e!x+i5u@z&bX1z2!=G0n|8i~ym+ED-j2zJZ${DWjyEy#)kC`>&hx^}#g7 zUU2pi_Rwi<<UQ_6-Gl&8lbM1B04As#3F?Py9LBt$x+Ov7d1f?5r~nDr#DX&%`Ry8c zEERK&95u9$+Og1zhURUlea|!B7TZ@WCvRhcH!RPrQQe|ZRcy&}M{3ja%y^XT04Rp@ zW|L<&#NEvIL_mj$fIi2O;%2z3z~rZSb28nuLOYSe2XVKGfX?Ks+{DJ`H7TD>1N0J1 zwRJE^<^6HQ3ZecR$A)`hzz-w4eVI4kr<>Rc2|h}k^>6`e)9_YsE548b_bQC{=4XaX z<}IeRvh7^m%Evz&w$Q;;W{-3Zb1w#+`wh@$T($@<DJ@(4Vgkb#w(c@8-1HL|ZopGm znlYA7b+;k`e<`))1qSc2wg43g*p(OQmb$ENg!L{yGq1V-O6t$c|J2sOnEUJJ4b)Tu z$_Y|!9Soq}0if#H5t8cHFp7#BG7wsK@#^h_nQ0CnTf4^V$}|>SlsHXyJA~y@dbN;b zL%~S@MjDx0aQ?hcFP0CZXXIb$hn2hiR@ZLdM!-Y2cI@&G$X7eWSF;$=x4SldUA}4K zsR->{h)zP@u<MKkW=i-4^x&7s9N-s2Ko0BQN!a^_h0ES*uzA^jTHLy~$JoWU7WqC= z@fM*%AzPX%;KC_@AKhtjsi!+>y&)hG8__Ul85Fl+1|H`Sga5|iX-;!P`d%8+)M1K@ zyxB-_N;Ck|9)UAWZMEeS`k675sUdVp-}z$xoK*pl$C)YV*B>TueK&_|Z3ZyTs9!O4 z{4N~22qePM-hG0?{Rt*V;hPMm?H(G7RztYKVL_)LJ(dfe4QKC}JcLFFa*;3)!HL*3 z5#+9&5tlZyc5Nee%wVzV24?PR_?!EnG884{iC-Z2jYR!P&iqFj+pmp0uCcLIQv*;u zx9Au$W)g*GQTSa22GKOp(NU>yo44PH+o8;to|KpRZsKoO8nK$&1omSnd4vBD{4VOL z-j*J}9FNCx-_!XV?sS&>>bc7hePmbMmjQatdV~XntPDChlP|s=F9QGIr#59Jcx=zS zh^$bmamI!i&ht`@*Vz!;UO2O7dVVzihU^%Kj9(qts%I)oK8Itugh=Safxkqbw9>`6 zgQ?&uG1!;9eIXybNQ0IS)9$r3ZMuIU8_=RQ;DT%hQ~grDa6W;b1Lw7(hPyZ+!dJDa zElIb?>CW{iIxp^|vo*c$if){955X{@f+7=yfHw8`dVi&?Q_tflqH?oX?v)(gxxxp> z7kQj`$MuZ<(Hjzgo}4<zda*GjRT3qbl2cc++q11((A=bJ5^gmi)FAgH-K|-0#&(dV zD;aXNmymHq0`Hr~_-7G3?Iof)o@6<xpgDs-%nJt-sS~e|R$CzoJuMEl7!II+_Mvm~ z->$jwUmELG2@D_WW*h51*MYmH=egPHK){(}sJCz?H)<3e45j-UaKFe<Z{rKE4alCQ zDodlhE{)O|N^Q-Sq28WecZO;M6j_Vi80sDVN|~Wf&GA#wqKn=a$TmCwi{T_kn0(n{ zCumv+0qHbwibl;l6Rg+RKGCmHht5i%-&i#|lRtEQYRdhgQ`D4OplYg87Z$7h0*6(H zg;KgH?r5Ugs@%pvl<3(^)xKoISyG1CiNHh~4VUZB-kk>S^=JP_1E+-=A|<;>k^gGm z^u7I@Na}wYUJ!_VSOjx3ANUu%=MKPbF_bPfXLutK=zF`83tI@{SJDlW&+Jit^@i+e zO~-b)@JM^^v9zaPDsHaxzBD*@-2b`I1q>rb0+QdpGbS(5?LO{E#6eoaNP7B>m`T0Y zZ$v%N){ZqXwVF+xF_IV0YEw57Lf)UC{D~FY{*$20)7~yZncA96P-atKJG!$6Omv}# z8&eOyfa@PiJ?vHwv8_F+2Vo!tMnOcpo-)2ngSaVm;SBT-r7rfei*z8_RA(2?5vj=! zq$Yj#{=PJO``Bcfz5S`l><3@XM_rC_9092$D9pOwVALfH4noGiCn!Fcpzx^6-wBF& z2${*$l;db!9!H8u(<hfq(Y}u^FM<$M{Y{7IXOLH$ei&wmY$=5vE|gT=QuETITgkhB zZOpBB!~l%C+j#S@02~?GA>r#Tf+0*8-r}zYO?JZv^2ghTJ?I?Scr%CWz)M7SkzsF7 z7;<F)<$RI-;nb8P`!Djy?vUu6!njcAIxC3|yF@tF429{EaX#$~5rqdwj^B}n>vH_n z8m`N65LJ)d9MuQIRmvvH#lir_H#qPL@eWdRj;~g1h&IESL&Y3ACBpW|QWQPynNAse z)WI&>4zEN@Y&EF_?P&KYQs$rK$aPJygX4k*7g2jeTpg<C<6V3EQz46$G_G!1`(lO2 zZi#d+9O=BhtbxPbF<`ojcM`HSge+-!7n6q0qN$MWpP_=<wdu47{B+kL{jnecGUP^O zJyyN>Swi_ousY#Cw7$rTKNO-hRh76jL#+dkpX=Hw8#7Fm@yMDYgJt4B?xIBrkQkW% zJfZl5JV>i!E6W<ABaO_TA7Jv%*->^v6h{;^#)3(3f5Cxl^$hzO7Hbv)ABK%;qUG`K zWA`sJis~rOI*sX$m-2_XvZ>p)36`%USZ+E@;kTCv>-+oJboZh!j2F7rA8O`{z92n` zOXv(HN4LmITHbMQr$n5qDSxib&%o8>lOVT<Kxgpin*Un@+E?MdSn~n|+BE)bYFL4+ zhM)AYv^Qh)3c=8D4hR-2qyW~Ipk|#x+u>Sj0wKsCH>r}RriNXlVx)1-F`AMW@T~;q zl;QS8MoS=ZnW!*Tg-4mH-{Wlmo{+y=5{t)lASQxG7MSz`N;*~y0;=7h0QS3cmQwBe z4pLdFy})}WcK{8*qomqvNovoZja1uRmTEuj+S~IqUsX~KYR48m+(Udk*Q8cA2K^DA zd5$yaPk6C1HhcgK`r|Zl&Y;$8V9=JjdZt7bT~LOne#YLPVTi)Yj4;0-b-5zFt?%%G z-vxMc<yk#nv`6kuAUfZ&=@7UGK1v7o0ThyJ2lx3sa-RvuWsMbl*{UeXOr;9*zzg7w zY}@O@X1L^xqMZ9hg0XG%pA}$?39XsD;Qvfbea8|XtvJzy7Qh4#lIWTXLu-P9<RMGr z{pd82t#KV|OPAZVZ!oOXNx)p_Kgrf#C7^vL(lG%&?M|d1r8ar)B%}O&Jtor{MnBx= zzl#!&qDaP_&qcLO)U5@KbZ*ge(Q>rRTzXC!g(N&|*cd~~XW34qJXrt-EzvmH%)vgH zgQdElQ%%t?IR|j&WP%3D<RsdJCKxs)7`|(?xB^`&S`bC>G`KZ%dQ{uAL$zyzd;(Wz zEKqq81cdKPe=bLf9sHq&ATOZhtyG(Lv5`OZfra{6rUhMv6Auu)xPU)D4p8MIQXS+< z{Zt(3cp9l!fUt?`C>ym4di0$DLahtbjb+sz1L0OZo+}92qcLlCzH%>)O2#3}$PA72 zVIDJ`n0z6h;mHBLb_}wvd2&Euv{T%~qpx)pALprGa~kbLX|!x&UZZ^^UL<yBq~~i= zpH9y@vViYKe~r9Q<b!KV@9C(5$hgiwzO`GT-R<eUGmL+h67$ACA0XOzYFAjjbrWys z%&y2#0Aw$m0ib0UJ%%9cbOFj%CXg49_e;^tNI&Y>l*vNe+0OK0Rp8-ERX8?)9XgN~ z?B_XOwGB%LXjx(1dcX35e7A-Zhwu=V*Y&sF#|9q4DQ6)bygTJ`iK#hpc7T|i9axc~ zxnGu8!qklkQ*LqbNKkQkP{a^03=*kO+vOl?{pRB$AJE$@?_*6F%Y$j=aTi8y#DF8E zo#%>2ntzzM#95x5GUR67#W9|aUQZcD8FD9o=9c^&TorIg`Qg$m8rL65ICS}8JNgIX znq-7|kZr*E#D6-9813wbDCPW2xLF~rlB$a`>aNs>hd^vUe!#<aHCLRYwEf(KM|Jlz z>!a=Gu;G0dM4@KV&IUE%)KB3gVjUSkp{5C^kMbFw7z$#htEX%1M_)vv3#Tvfaqh)F zYczf#4bjoa*Q*6n9*scXcA^jHyqD+<O05cwUrv2E8f~ld?r20Qtt``fBN{b#fgae2 zaYN#%e@mUXw6jB-0@v^zuvAHEeKo!3Qj6Q<*(uCh8rXikKFz6=*f#mlo*rzO%)ds1 zXSSmZw$|nB$X$i4Qn}}UtNB+;Ye$O$S;i7F2Hfd%5YvvC@KP5h`5^UZ!}FM(0saUp zn4Tk!)1{XPuhEuPEyC|S=t?01QYoJtb?M=FSnii(Ew<yA;GU8`IIA52_q3mHKTiWO z?4i)C+7$)n`79slvGjgLD>f6i_0KR9^|AUGX5#@p_yaC58JrE@!Mf{=+*p{AMVyfp zJ|oK-W3c>iBg&l9+VKU??ePUXCzTY|qTV0q=aCV`RQu_rw`~sjHe$w_E=I30UlK(4 zlDgjPFPA-HJ2?W=O0`(e4pTu0NksHxz-cRw0B3PQ${8iNAOf^Ot+>$W0qmH7Ijbu$ zr2gQTb0jhIg!l6@Df`y#k4Y4mJ+?%C65b_&e0BoW6P6}PMx#K^CoGM3qG)3AS!i)Z z6}ip=SLY@GoC2_tYFb>4cg2;R$!ilgEv_#9T1dozTeFaeNvv9ptMe16jw`EAJ2<#9 z+-5(CmAS;Om*%!Auxo6*VG-E4cN&38HlFSuSR9f9e~gNm*fqi1$3O5p1n>Y4w-3kK z;fP=T;dr|T9d_8^JP_SCvu;<MS2tOZ2M?w^XovIa5Fr7NTfCZbnCF`vK_15GIyeD| zl3*g}!Ej?cZpd)u4RI)1K(N9jIZr!VB1uiVwKEI|YpW5$fP4kImXX1*e+g7%Z|gyL z|FC2XuzriT9u#iT>On?<4a4K1%X1j_E;tU)@JMwO%b_}Hhnyigxjc%KC#kcD4)>*O zmf{{y?<_7&nP^93IVZsWvIQl5t)uV~OeI*1*lofaVyE#i^=NVhl}<fWG{3G*UEFxs zQ9UEI#ddm7GV#dUj4j3h4TUG}ZPC4ElnT5ziF=%)7$pVg@tVsd0Zx)`+fuh4#96F4 z-lI7#1#v8(Xi|^u#UPBU)-4tj^D+VieXKuYT0B1<uECgme`~m24u;|ac@A#{f5S<9 z0HGYf*`5IQ01nlXDPJc!&hD|80O}?D;^CU5Ko<d!m;Yq^%u_uD0(X9p1vZW?b53FS z7eNJ2)nnlh{QqWyE1EWh#N=-N7$$QMFM>0)7Z-6HQ|SVHRV9RxbA=?Kd5!+9)A%+! zi5Ki7Ua%8RvXI420x?x}BI3|7wixR~cx$J#FgaGu@QHvvFrdneIBswtEnW<^4Px^< zPI%)GOVD)f>y9W8)w|Lh`QjAQTqgceJ4n2@Nh-x9pFG}81{cS-t2TVrVzPq2;dK<; z$<Y!rnou+&nZp^2D4HI5S^Lu6f!KsU!$Oxyil}xTavDxN^!_wlx5krIebJFn0)q#j z1nOh|75_ms{cTT=S)OtP2BQ+v*{a1e=Hqdy%a`*+)!%sn{&1=)j#WM3DJSZrlq?;S zf<sbPl@CZ^inoieace=7y$X-E+O_CxP#vN8he!4q$<P8}zI3F~YJlR<bRTZ@vUVXD zw%Sh@sbf%h<Zco`U>I5_`_J?vDJAbp^$DBX5wLM9)v?4eWFJ}Hxo8zR-=#OC06Sa9 zTabu+%DHbnZ$U8f7UQvSMc0BK2VS^i=>p|CXap;t++1*C&+l~to&D$Le8rrvMU0mI znF-Dh)yZ#*|3rclswcQ;^s@fg#3_;Kj?l8kdcwD?u@<qyIv#n2B<d<d?>ZBz=@C{s z{vLxo1~HZQAF|CnezViJOb6<DB~bsM2r5sA_<aNQbqQ1y@tB0O2pz4N)qE(H10{C8 zAobzW>*eahglI7MA-r(6gaOOccEbR}BSSCT!QBsSnhX;U1~e}&Vd93H@|dtwy%Us| zCMbQ<UR1;cj|_jIVPY3Cu|#6J1hVBfyMY`h4LeSO*!o3mN2BEzpk*ygMjYoSwqFkq zk7Ztxw`<uw>E`qNW<C3Qy7}B3XomwdQP8sy{fS*X8&3>m-?mrS=gQdlSJTaB#m0}< zvH?E$OlzBJE;}r={d6Fx*?(fs3or|Vm<6Z}Zj1SR-%69`o<5!Lb<pFLZ^+NWpir1* z;o8zHSjsQQI-_Vd%YkF%PNi938fsZ%hFRcbyZ}*3d_13Pkg+5j;}`_UgD3Vp5BrAF zQs+sm%2aiX<E9^nv>+u{F-ZH?(m0-0q$VD{@zmTn?q5w!JS2OL<KS?fHv&Jrj(w*& zf+wJ>6VR2&D-aiNGAGqRT)er$Z`QMK8d2~jPmSi2jci41@`<<yDJr5^6o}#pL$z9l z?clWbm1d#Nbf%om?!M!7XMOhE%iebaaJ;Z}0)BfueGSAQ7H$KS+DH9y&=9q(*WbUH zdqe9)=WVFD&wh=+LpNmieCYB|fp^fxhxq$r@{N3jcbK#>s{aTtk8{|2vLD-kboW@l zTg$$YyZb1=TMz7}XZ_6Q$sqs4TE_&ztG)7d$a4pUd~jNMb7zS{n46K}3rb=Sf!FEJ zJF?e@uK7%d=>0gKQj(=Y_I@n&;<EQB^)f5j+Z5?lsvU4kq%z|YogrW;nP9v_y=S*h z%O;;n;JMI!SP=<(IXs+?%yD1V6$v_$0LLX)DxlA%UK|O`m>3%Q2{=KXAYj}r$q_pJ z%NpH~5Vj4bvOb*McTm9P7fmPYzL>!B!6PpMaB{Nl%N#t?A-sKa8hi;zo@iXUdH*5u zk=(QIvmH9(_3UKZSg!%sqpocwaAc4qkMQ8;SQ5xn3CQywBwNM~Dh80inJNFTv-M$v z62g!smD^&gE9c{DsZE~`J0sZUf$#d<$Tl?ZW_6e8Su{jpqd|U`V8BVmAlDZMIZ!c3 zIpf(vA3O$xwV=94qyJ`tblgU7qcn@tM*nSgE8jPooj&?C9K9d5oZ8%%+Vs&|(j-6n z3Cy)kg^hkqm(j!aqhVg<3TI}OR?q795)Ao#hgY{$zw?9AJIO11{{v?cVXu!JoPY3@ zo+MwX;3(by{vEE;!yn!p(b<wm=gyV{zPk84y9++ga-!DqD`7WpM99fzqf&sqnDxgZ zm*(4q$NjFSNtL))9Q}k1?bxZ8V4)Zx2>_@>p4SCsmhHLMOEzQo{rClXE&MW{?l+aX zKeo{Q@#q8!F`M-6^W$HL-=G%5Z}S1*j1mB&1psJyK(S`+P_i1wPxlNJ3E`LdbbofK z`$rVI=h<h_tl3lv{loa>sPxNxx<9Yf{nA4Bk4GmX=wzplK97DnT&Rc$zs(1L3rYYy zya2%C(8<Fn@j&#2Y}Q5TWsl%ebK^OPf6qhVN{K=+O_F|>_<QA4)I-&|NkOEd><GLg z0Rh!Ivf#{M)3G}eqec)>BL88yez1w;6_DSS2t?eE>4XqiU<x$;@)2J6&g~WXLULcJ zp%8+dQ$uyzWoQHd(k`fHI?bzz%fobe1cyWa&b51~*AP!D_u4((SqXlq<W)mq%gOoR zA*?GYLo^*ijU?hW8)b^Psw+j9r4cBiK!8`52+$sP17wDb=$pEBYDF5>sco^b9J8d{ zgAHXjf~BzYDye&0*JdsG5UeA(H~>&C61~gCBw<dTbqi`a<>Z`EmhCww?`sw_9oHpH zxE*N`d{{K}BtU16MIRo#FVWdSBai#JA$7oX77_t-qq7ReJ!ldj*oX%V5yLW^=L2pi zxL60=P^fU3PeVbNNZg(}kD*y!_tCZ5sq`#p9m2M&^<c>}aKx~RiQd+L4BS@Fp?Kl; zT70~bGbr(5pBaUCxr>Rnr(ojAdLE7i8>60UWCUB~Kg$|TWL6&6v&8C4hAYkNAg95) zo-IkrZeu%kdAb!fCX;!297e~e5xAykF|O<w_($rnv1?s3A3(rBw2HgqU~d5j^gUu3 z5fnB%Un$|HZ!gyQ0jO=@)u^gNX!xpthz`mUlZ0bF`9Ojm^h-=($)ViPjv!p3WYl8j zvb2;7YLefUGt0anOhT(tP3IP}67f5Cc;X=8esk*Q!bNgiXT&`OCi}n7a6dH*+zZi~ zg|UG96+&rO+=uF`S>Zl{a3AA7_EW<B6v?<zNybjXHKf6MS>Muyjqfg?k@V9VjcmN! zvL!1<5aK{dgAo$Q6e5$<3hgr7w9OPizfG%iLv37VvDSum>?M`zuq2L#HcNJzOvV^- z<4YpD)BVM=eajK?J<xbi^k}0FImaeNcs#qAte~w$5!Gxqc;X~uOQ7ALH#||^8ZC<> zlc!(r1%?+?VwfV9|A6U55Eh1MRJ~9Nbiww%0=5YVb~}&g?u@XnwGpgmPK}$ZVfRv0 zNYhzm7p%JkZL_2qh$kk9!7;BjR1)V&jZq!UmB;CZb_BvF10mxu8ERq$QeYGzY(iQe z#l}30qQMW~)*>1_7`w-!UNIa*5fzjv`Co6Nnf#1e@8ucgkjy63tnxz4h;gOYH#zX- z*IDic$vO=|G*4!30uoUxE%?pjkO|GCk_B4DHV7m$)!*N2aKlqlP2W(9ZaPc1FlA+W zv8j+nLg`U7EYC`KFXiD6oQ=O%Agud_jbkr!Wn+7>JZrx(Ha?x@ZbQ?uF<E)~e_-^Z zf>p4f-^$xi-G;wI4mouAelcPO3Nij~E&t2scZ$Mxdw*f39zuHB8Oi~)QE^S~cmu=+ z_niEutah-C!iDNe!o{#ZHd1f(;k_g9T9!6Wb8R*moNw|e=-;msdu>e6O`4i#LkglR z4vh=)^g6zbG8fYcWD2f92qcgEn#2bM5}sS1vu1*9@c!5OPi`vcvV+|>J3M8=VQ?Sy zQZ)*EiTjmYb|itnj^#J{HdzxdvkI6sc2ZX>n~fkU$1xZ{s`4hX>nfB2cFxw>2_H`J z4=l*a_0#IFbGyRN979xGF1puZ&L(d>bQ*K-yabQW4_8{ajX7C+3Dc7dlH8A@g?!U* z*%DNxql-9=^yc{s@QrAH_*yyxfx2FK2;zoie4P4rz!?xs-MOaoKohI5vo_bL^ogZZ z?A;4m*ythH8}IA3OC6*o$?#uM*TxP4eUM(II{<Vit!fbVlH&<Bek`mS?VxK_sknkS zhj!;yMND!E<&uQaGmn#D%h&={gJ8yf1){F0n$gzYn(5-nnk!>gF(5#Ih!k;*B~DZ_ z#kG74tTAHH-|Q1-Gg8GIM;)bOG=ew_q{Bhfl|scX#A2w0FWxbN9I<pPH0>!?;Wx5~ zKQ)I?_qMRPs5vMzb_rTjfjPGnM~;Yg0Z54m1cl2!fF0aqPT6U$X@vrYTXV;g47faD z#LZe$t>Zq8-B7ZY_5wAql<aC8`c1&(74EFesrXtfvnGmbiY5{i`J4)SSeYA$s7Kdn z09U0~OMc=T^UFx;WA+bX9S5lJPc|Ipzl-&DPeF9c6j&0Cw`M_loYsynxb)x)uv$6k zSVYn(Yc@{v^f0K9Bx074xCG>xhP=t&Ez3#NjG;#hXoDc2CanJ@rT#aU`nPupE$#E^ z`ah#<{}9FCVdqQr9(HtEQnsLahFZ0u+xnoXyBDTovW9b$Wh;HUPuabNDJyvB#X$UN z?f8OESu#tjrmXwZVal+nO0!e2VFpYJMcEddPS=C-{|obL9hK+Tc$0a8GI*OygGo;Z z@VZgd8UAj$M+-2ZH<Ho{$ulmIQeCXs?@LM!;8`U|C>MgY&r*8&8<4avtr;S*T4!{@ zZ*YK2P7ryJwmr?>j+$pG2@@fvAQbgPdx=HP={g|Vpw)4asDs>ovUy5vo|lGIGU+d^ zfsAdzT4O9onka7;^vEqYEPy*R7JJgkz#Y_0ZU)gbXwWo<vR}i=qT^b_uW&&aFoGEA zd<d8AQ~3~WM)z)s64R%-z!!YlvnT?mcW5J+_jgWX2!RXgSV!BP*V=EV&c+@!-!t2h znzUsRLFggO@KUT|!bp4N!b)puq`flT(nx6|3=OsDg3&cKbofJYqyzX>S`SoYy1J=V z=?k<b4@BD6<R)JzsDn$#4uDzgk0OKcP`pce#Xc#gz!}UMo1nC)Yfr*|lRYmvax;~9 zv;Gobl(nTmJ5!Vr_my!=Ujk_)YKBXqlJnaUF(rMpa|tG+?*QEro2~=<Kg8<qOaEah z4`eEf0q}<fJOhJR!h>mtn<FRZeptiv0G0+|1<w&j9P!`>A9>_M9`ewKu{_|YTxq~# zSxC(yYSmCjnrTh;ls%%21-fBzUu!aXMA+VC2h<gf+dFzN532Lyt}l=p!z0?W3cstm zkW_IZQkt;oMF%IKDLomgz&M>K-pfw)2Uc(^WhlBvX1mugNz3Xyh#QuT#8f9syrP+D zzxYv1;bIAw8?Y~bSGF0eHdWY{2iG8?R&LZl&ppaq(O5cOkca&h7POY)-tPbw$|1xp z$<FKWg6%&|qY^to&}aB$@EIVdJj&l0@pls?dqX?o+Wm*eYp75>UT37B2zj)L6Uy)@ zn+_Yi2o_dxboOQv5|xowA_O>_96n`FkqstFeY3gflt`U;KxTz?Pjof`L9f<RfLl=n zuP`o_V+p&*00oaB3PLChVt*7@DnHjpw0MJOA;`e+1)K4j1e_bak4Cc;EpjALLC&k? zVGjTn6iLMZeikoB{#PYnP(-RbvdISdK@e%YybHSZ^az(?u}aeE4bO2|TZ`qaqa<Uq zpVU$vEoAq8-)dK6RoF{;b68aCH>xJ#?P;86FO$1-4AGZsD9Npz>Df2hvyT*<ATlQw zO|(1EaUw;&t-HvmM`L}0@g+-dSo?tiwVs0SEY9fQOV+Pqj|%XmJ<!w^=aBxel3S`8 zwQ5McRhYb+N`PA3BM<=KAUUvPh(mP1F{2UKaF!?b6S2C;US@frOgGr(6cRf6QRR@N ztX04lXnPDFAc6JZi1r1R%ulGBOc2Ey$!ucp?dIlz)FUtejBJhV<F|*OX%2~dip!5a zL?Bh5!Jfyvtv}l8J}VqHXe_jahY>3x!t=2hT!uswDFv6S3V6LGjlwrgWBF#poj7)D z4TXMh;d-S~{NOf%Yh|3k7Xt{~CJ9qwmL5hui{JrP!H@;?CXvFVgRT<Q$J!JO!@sAQ zxV<!n2NlL(OZl>?x5h<Rd&$uzzIJ3&xQK#(U%G&TDmySn6Fok^u?^zaghB#rcL^{H z2_;eNfEjkx=KKN65nuSqb?%r<u49aVs)HaZ=Qwf)7nBfTjd)X2xxGk*$30Ua%~**_ z>~wN6Ru3T;L5@82bQ*HdNI0a8ww-c0cap*mkpcjXGxP!2SK<Sc*Tw~9hYGq`5~8g= zB4^W>P?<9<%}N&Dljg@+7}9BH;L&Op-W7iC%EF%{#42x{FAKLr4A*^<5Djr2UR~hf zPo-fv57P&nH4lG=@NxqS;q<q}!=EjUfi7Eq3<sHq1Md^Xfg6Zl5E*DY@$lXfU<{d5 z0CrG#*z%D#9RiPG;6C#h;0HXd$DC7N$8TQWBK*MvV3q@E4w?Ul^AAfYAABV3e>ec{ z0RRPE;%8e5hW;`<+L}t)&vq?auxV*MYi?YMcoU07pf6A}kv*I;e@jh<GA;N~QY1`O zxyViYzESoNETm`hK7#Ue-RLT7AqkfNN?T#IpHkS5!0UVv5pW5s;zY9z{|WLqn$!$6 zhX8$|g45e^TsNEJ%jWaz;Nx;hN!%4?KhcSY+i~j2AS{gZnUHVhL2Ril#i_tBmHJh& zY^G8esv)9sxb$kd%@@a&hRb~oxb)<p4R^dWTsA+S;iBGHV2#_v(gVWM6u%`L)PRE~ zZexXsg+sXQg0dVB(Or&fdS(?f&M<+Ol}5zPCOStHCXM%(+XRBw(*!aXmACLCSn>#h z5YfVRmm*VDDdau|JCFn*VfP~<0w;!H9r}7KZFMB{Lyc|3V*wfTgDk<-cVf@84hl}L zDdEJ-lhK^<AMik&B>X(C=UL`0!Tw}4E6_MVBY`iFTiGuU2i2hqIN$~O0WaWy=@uP2 z)MBwHqDZj~i{=nBJ<WcFavq8&sNExGPKD860Ue?-AJ7TdVvVS@KD{;?4Je>+qrOrY z*nG`~kghKwjqKP-NYzLq`54wv<v~_m1<EI&2tW5_{dt;z6+{fNn4g7X{j6r_)B3+W zwuPxa{YGT<Npvz1%33_M_!>pHatOj!eZTJ6fK(JW3E`?uBQnIrOvoa&g%zCGp)XP$ zmm~IafV6FCb)nB^92DZasf0(<t1}ZHvO|VO_zl40<9eO}JQC2_kg3n#sV)>m%f$LH z#_Bp=#=R9uem9>qYK+w@|3PsMfxsClwLocCEjV7#f{du<iUwCP06<{I(*Ll%NA}b$ zCui$7pa2I;wDjL8xICE!ITjjYxKw4yzyZt_n#*WpB_<yqt3e4`pH|zTNDT;#v;lp@ zczXCia7B6-aSz2;SV>^UDg+okue_|qo1?BHX&ae{OImSbJC4&MDwaus^9OEKzpPB` zM;Ed$t0V9;S0-*r{djeps!gNo0oCr`6KrRucS;f2_s(4J)s+B7NB}8*%FT~}z7RT9 zfe7Zhi*a;Ofh<_z;L&qps~KaUah(G^X$Cm5(bvF4lG<!W-AHvHD&iwZN-IiAr-u<z zY%G*9;XqUBehkVqT0{5>af~I~`P@T~r5;$};WhhBqs=AQ#SsC*7Htk}$pa}tVoL5= zUBdZr{7OmNi(eX>Omi%N3Q$yq8!Uic0Z4y~38X;+(%<456?0J_DFani1>F}A)TB9B zxP{>{AHQHo4bn-7nxAA4>Yqb2^on-Gxs$=nq%%=^Cl$ip%o?M`_nB#KWCuC(bR#px z=@qEgK3j2{E$*+S9kyVd#}NHPV~G9{k9g!GkHL;7krJzll(rU#@i-D=N0Cw_M@6NM zr5<2SP=O%5Cgmi|3ZtB&NIfKygg_A~P;_zi8&g9}v>+zQOc4uCZDm@Z%U<fDUMe)D z#7Mu7K(namLHCqSYq523kZUMZQ1EsNniXxCMg2g$0*ksA@kLqQ*kJ*Mq4v%Y>=iWK zkglYGIl{K7D^Z|<tsYLof65MFPYLSEK|~m+D^af@gKWSOO<2W@{cIOPS3;RKhs2V; zzzje_PSV(buB4%c?w<irn(C74u^8p--v&bF1y_q1v+&B7ZI7oI)Q&7%AikF_kY-O8 z5Zk%{!!kieZX+;Uv+e$@Wvy%n4-4Ig0QStj&t>gMDen8&VsO{g3bndvs1&YSKOz=) zQdUt5QBh+Iv>gpT)}663$i$6m&9DJ3rg1>)yby?V8yT|4gbl4FMjM&O3&Lg)2Irti z?2-5tYsE1BA??0}I<CQyg=lZ6#f5<|ZWnTo2N{F32~i=lMl^zb5x8)Z%b~yk6(PSt z%ArBVt4{{KfPMxkhisWsi}@cIu)WPgjNFDuZVO3n3!8@+xh>S()5516yO87t*wEfd z_|M3VsnHFn{aGk-Ta5d(|7kp<&qLsTEov?XxiKzwh{%mgEzQJ5bq`H5&>1}ACc1w* zKrwP-9G(Wl0LhIPRP{z~yi#)2w+#(JJ?$Zi3z1v65V?g5ksB@|xec@k4Dzv^<Q9%} zrRgwxa=WoaZfrOj*djM4u|s%2kzOY)k+xRDl*Pvy%pE>fVnRTEPX`k5@l22z!Jbit z+?)WKwF<eV^iEPCdue^lB_9lR@F1!KY_b|HPYcvwAYCktHxz_BYY1DZj47tmO#(N7 z2UrF!dO^y@ZWJQ439uQpR>om7_bcUlaZ7h9`Rs^LIL!!cU-m&H+VNYuO>*zUPRqKh z{om_olVsbM{l49;hbBm;ec4OxZg03tg6*^2nE5Ixwl6z@Ye9KQ@2D?(YPh78*_WLZ zE}8%D%N`XjrTOLBN6Qh!6TfRwRxW_81z!8H4ZV2_6}3#D_u%!z_HfHNnV=W7<1F|_ z%;w^NADB>sqBLN3UKi66fF~N@f+ujLtv2fli8(&Eld`H;iqywIMg5{8m=oRUW}-kh zG}BspL-;O6#-vXo<}jelHseWyKdl{`@-(#M1K4nhdlboPw?wwJARk;z>yP>Rt`Nq9 z*5R+~3>CSZ0b+L>tj3drtlG|*4v$m9o*s|#@Ja527)R93E8s2p^a-_bFj@Cjg?DUH z;{>~Sg8s8r*8Bl7EY30sClC<@WikG|DdEwB`$j}dazrH1bMa?FA3GrQaa_TcfWwGc zEo-`iMn~7omyRA-nAp?Wv8h?ok+m>yI*Q$G{2xX~abUkOI@&t`c{H0cwECF+gN!<Y zGKvm1#FTayRzaH565XZN_5!s@+eN8Gc@aYWWH(&K3>#Sv*S>3PUVOzi&v<}}C}<t3 zzAgLOx|5eSvd7B`qkF;v`g(TJ-+8QMZC2+hg+{h;_;TAk6klI6f+J9n?&KOPG_$VR z%j^Xmb$7bgSWIi($O5fE;vTqUVfqme547*_+L|OfqhaqOFo9?h%n-t<&Sjj@jze>M z-ZtEYWQ|g5xqZ*u_J|q*#6}2RY8WdS=s}Dcd*YvrjrlO<<tNkn#n*av>)+vft#ug2 zs1m=OIkYhkK+TRZ%>iAEZF)Um4qbHjq+9MAbX{0NSBE_sw7ARlXphbrT~q6bE>64I z%A8=>;0$2H`X;78!wk^j8_Bn6UrD*6kmgYnUYg)N-6R-m8d=z+DZ?sHUX4)+nFkp) z#nz<StTHar7!w>(hwMxjl{zG}8((0%@nRx>p>}g7mzo~GJD6PEHPk!$Az7x+kV2Lm z(kV;m`*kswuPX=;k|vJS^e7S$7Wb8Q2@;P~cK-9j!O}dO){c$31OXSIAry;e=Y0&( z4GI8;KAfW0v%n5ilil4D<VJ54Arc_?EsB%{>1#iK<bo7@3_xgP`}(~BxIGBVaX)Fq z&{$xN2!{)xHpEJhKw6s)nPjZpX83^7KpIfyBg?I$#|+A(Kmwz=KnhZ)XvJWhQN+Sh ziQ8m#lSmO&E|JW5%S)uZ9hIaLlPD_Nql<^5VIZI6@vQ{0V>4aido?Sh@B{X7!+|f` znu9K*@U>T8;W@)U)mPw$l8ZtN@5YM1;^=Je%4lIk(!l80V<Zj0&+8ItoSjG`$D%Rm zD3OvMFFk=MU&ug_WywI%d?fcomfe--v&nP;sxF&-WZ5!f2Hzvc@Ky@haWX8Mo`@`4 z)w&s#KY#FyEL$HtSpUHMe*os^AKm6&6g%_40u(zB@(-#9A$zUrM7_hI!~Db2&W_#C znqKN~4E{z(mn~cNDE%FK+@l};m?%iFru_MxOMKexodsFK64=)EQ0h#A*j=da*%Pi^ zmh83byex^0ZZT`*v63Yosozzj$wAo><wH?);QBSj-=iZq$jik7j-+#WFqxAFDz{ZI zMXa?GX*LDh86ajNwGACaI@8KC$O4uOaacRUFpB(w-zLLvlm^q=Cub!Lx-?+NF#uHJ zj=VHzLwG?3K+<8bE&y0wXlxlI0j-tD{ymB3fde8EYy1)-lNm=0%B+)^MNEWwIiyS} zU(un=LE0jZqVgb93O~S;@B=jtr_187Vf>u#d|)ixua=S*mhiGHkCz2(-K9o84jaZU zVF+B%8lYsG;H;rXN^$_Pnu{T1$6;k>u;cJG$VkoboC)`m1oOE@xW@=)P=VW;Okd8H zc;j}FknxcoXd?}vXug7|SDTJwnE#PxY_2wKF+q|(3b&6YGC<O6@liq16M<?gD0;O| z=*$FtWkP}zG`o!h=r(a-!omc?U}Mz}#!g+0zzmfdNqI2L65`T9ea)Jb2k~Se<-t5D z^ZW{x8r=t^yuE}G#$-D&;%uE~cZnkuQ3T8gBaRBA-A*4Q&~DwhdSC{whFo-1;Gn`h zD!5=IZq$2_xq4>_6;{{|+kqS+;+PF8NXX#ot<KeBxRkYaUvTyH3Fd2!tGU5Jn7*a; z?8IQf+POO{&d@Fg@H?2!5Jj&t3z(}0RPRnZ$uty9y4DKZW+gg_J)XNuE(|h~vJ<~q zJ-fNRfmy4?=X(;+&V^R#J`<wJXLV(EvM+?~5~pZs1&O|o7XhsOyfB##onK{X89O0| zWHEN8O|_$81#V8nZ>ss~#Ld%in-PwKhnt&9xMBNYLc0@T4mZcb?{D4CQetdPT=$h$ zS{~p5j?&D3h!3l>yK{KA@;(b@4&L}~DUFZq&uM&*j^nc$7xz2HjF?Hf%nO1d$7`q9 zhy5RzI1<sKz!9(&TpA?{4P{xuZj%p3^W!xm5X>?z`eCd=Ff-3=HikAim(NC0S`R!y zbFIM#^q7PbwBbQAIX+s#TSx4po8}UKuQxHh1|t?$OmV>gf#!mk%}#s`?WZ7~da;bt z9W#6#aL3G1m29x332Vd=a3hRS_e)|oXpW&s#ZjfL&=u^D+8ro6NXYqI2{|;aI*F>A zJq9#Li9wm+rGNxzFH>2HpqUW{F0chE^OHB`d;RQ{@V(}ea;%U2|9`(t48VW=S-ppU z2!=E38&+mpdA>QSOYnCDD)ar1<v;${w7-!NZs*N4yZA#z5K4mN#U6X?amPLSG5CAz zW3h&pe>e~+tmHl6gcF{EzY}pN($h{FYw<6`$w<$5#xtLVzm@!Z_OqXZzvn*pdH8!i z{$9Z2l3w`27rp4kFL~)pU;46_y_|omSFis4KlsBxe8nsN=#T#RPyXaj)~xx{KmF4` zd*v%%`R9NBs#m@0)vtc_|N38R|KczI>VN<B-~8>mzx(@t_{V?x=YLuMum9)&o_xw{ zPHop-TRW|`p|-Jhy8dmdZLV$6zcXrQ*3PP(T|1|CZtc9<c<ub!1+@#~zl&=2@8a6U zwM+2tQvBOmdtL4IwaaR6s9j#WqIRYJP1Gi8Z>(KaySjEw?M?pg+M4~_R@+wFUVF3u zdrR%D_;(%t?WnyC|K48PS$jwAo%nZs?FRgNSMA-k_tbXj-+OECt-Y`I{@RVTn`$4Z zeXurJyBYsJRJ)~iEB@Vvf4Ae`hikj>?<2K4{NJ6mJ8O60-$(K9WBB*++8)M$Elk;( zY?Q+bHx$APpXBqc$=<j{$=+U8m)5-QiYbOq)Xe+Y+ncp<0%0f-L{F$b`4x8Qk-**! ze_7>%A5#<>LVGt9OLSUsy(e6|@wL~kQ=H<=c7*Q7hbe2Kwq%~UzZZQtrZH(YNgC5z zu4nthuIW&c+A^MnVs{Zr|7C#6B-&a<r>qFgxd|HIE&fi9OweGx8B1cmQ9}=RIC^5B z0EKCBpY)!k0T}xBy9tc%tv)wkE+_%>;UX}fA~3gC0u%O=cf2rtaw|dc`*Q>3k`gGl z6hXOzpnRwjl(4gY#0%Z)Ndn`)%ng{=mw@?T5tthY%m*rgi5tC#Nn+vbjReMjnHw-y zlz@4E5ttnW=6wzf7z#&y)=`1R?bkt18~E#c`D@*_GuPs}U3O!MXj%)M-=hXlbb!Jd zFa}(v`|HQY;`MiX<9mu{fWA3F=Ns4HQS>d&O!1UGJQfryKT-JB+xj-EWNyG9>e&NW z2XhOJYh3fjVd|2rvaj#f<qf4S@#qX)euZ7WgLtFFDC~fAW2wP+h9}D-U`G|)-io=d zn^S9EVWWQInsvxE<hc3}a?I7(Y{hkKb%H;JK=<}^0fAcOyj6_owgiLE%Fby<G{b;) zr^ecryn8zvi$YTag7l>@g#j4_E5u?nJQe)opy?h+d~3u(c5}pW_#AO?S1U(c&yEn4 zTt~v*;bdZZB<UD=B-i1`qBi+7sqHNs0f}MG>g1CN8?H{&Rvfjk0dHT}U?)%~ZPE;l zeE6WC|NkW1+iXILV1JR&;kOdl|HdEQG;grKTmoBdbpyM&N!V0+-3jU%fWmDB>`Va7 zDu$le;A{Ryc_XK*If$?kL1{a%ua|oA=Ocx&*X=dh2S!XC-F~BMw^!x6wKD;JLY%%) z1cW3~qvJTtl9bq20t|0PIX7UG2Wj?WHafvZ>vr75e%`oJy^t7of*7*NAB9cii}521 z+9W*wFm>y-MpxKCQn*^JQnWT&`$<}F-~)3YZV`bCoYe8Zr;cwmyGiYKvi<TL+k4Qe zXblA(r+pTfAFz`Ig!1LT#3p!o%K1_1c(ciy%WTAZJ>@7CWAR~>IH71xB4^5fIjAzH z^XU2@oH3>n-tI}@dr{NtiWBDYKUW<$fBB#7|7O^k1+vCwUDEMCNp_ct>?$<G&l8l+ z(0DXbvs>RmYsdS;kY2APiCsKL5=&(D>(udeMpkO8QxGLmisTkd^Jx1AS|VK)t?biY z8*P4{gA4D=IS{AQgE@=1IlmjuHzlYX=Xg|%3PjWRXA@_#iE%WM+w>uP^{q3cM@>#( zi{89aos;DdHsru$hpz{@gK)r)6!ke66DTxmXzRY$ahPWlQ;4UDUN7REv%2B#{1Wc) zXrxOFq4gHNe@3`jF!3%ay?$nRa@+Er`1%&y499I=$@Xx=dnq*dhEjuk*R0;h*J6X4 z)L@?m_$D@p8`TY7Rces$T7x(>GYoKJxLJT_Tj}-F!;=z|VWAS(rxi`rx2Biw9+GRk zfiDH!Ocm>*YFFB&X8xiowid)En~H|6Xg61PCBt`TEaIrL1Zh^y-i9+Z=cgP+9PCUu zxb1M^plvvC8xFj2?WnuB-{%aT$_eC9Oi0O`O(?xSHTUyl)!b`@(WI>-c4aGjFH&5P zWYlO~^p+)XP!m(Km0kMXR~ULv8j@q^WDO}IXmav!N6>ePp#Mt*1@!n%!`N^RWei-P zbPFH(KX^oYQZ1!lh#})FFs&}vum6f)aYsuzZ{y?ZAq_{Hav`;7NjLumH^COF`x%jA znYBSJ$kTm<@BEYXfPMNfTfqjQv6a^wMPuv3X{fF@&<w^BW{);jvyL@J1bHu(NccW! zWr-Ym)NF+=XYy<g20ec?4Z&yY?+df_i--GceVcgtyV7iFjF=XNDL6^PEM38;c9aGE zAv_R~s0)mBfLPK6$W#lncJVR8Z`S_#!`<uS1lW@WzWHPV`<{mQW}U!xo=B2t{9s6; zgMsMJCWsx;e^W&CF^=eO5z&8bh;D;@N%9(ziIAn-h8B*Ywxb;Ywt20Ma_zjiuk!W( z&DV+d?T{NJ=zBQ`V0*tJ5`o@`;2<ez85!v%`Sg_pwO4@t)ex#X6Opr$TpIf8?Da3% zE8MLHJ^N+o(=umpGq^;pgRiFR^=qlu)6Aq_D_q(54HwR1l8Va>N0N#zW)7xQ1mqe_ zo+y_Ak$z3QY0w24y*rKKwKj@Z|8_?abth&$eh2g=pX8efa+hm=F35vi<Mb;ebx>Rq zpf^~j1Z?sb$0WpN?X!!kY4#=H{@qyr&qV8;Z3GFz;g#F?PN|JG<u)dR&t2Wd_eyR2 zaj6a10@IG=2c<S%VH|{VNEDffiFP)qHSDV$6!9~%+V86~@awL5NT(8?|0n@+>tT|o zt1;uKhg83SrgxKSUN}<|;<=#CNejz!zP0lxcrib#k@bPgs0~0)e7oAM|8auI-TIe{ z27@Cnff!tTLDbEwUj~Rxw-k4({0R~HG9eNIaVuIOZ2MeNj%)0Am%0tzaXeGC&VwYj zN?@YK5V)FxK!9Rfh6Zfrwl+-sjiZ`V*d!d%eq4}G@9l>K;3WjW8LF$P8<94XQNX6Q zKxqUA@#pN~MH*v{Lo~Mq0p_)@N%;RqngSOCFBGIDF|Z}A{yY$Kzk^^%d@}*~ixPmp zR}Elp*USR}kY&&0OAt2~2aqVRs)DIDPzNS<H)y2bX#FaI=uZ6e&C=Y{EhO1K&4Ll- zNa*v>4ME@(LsG&Bkj=Y^$%^N4h6xmIuMxEhG?zYj+Fs=~piXmqTG!s5BUF+(*&p~8 zW%m|)LlmK&W8Kc%GW-k=tzVM%o;@4#&X?oMliUCGu!5$_Pl-cyEXJ{RjBRt*u{}#; zGaM?U+`64ed}d&i?ZEML$TW@F(b*YYJA1}7h};YGVjht^oAC3Vnc+H%z&za?me!TL z$YLAZ?70!1o?B}0YzGlr-+MCIngu_5F8N&c)yj8#5;_*?<Sj<vrb`~ZIyQV>>i8zp zE^IdF4GbO`$h=aKA?J#u5B6#UiAajetpx9Bn54b}mtCAXa4y5<?0pj4jn?IS>qL$N z0&p)zLyMP+jV!yxKV{OAP4afB3CzSSuTR~4!p6a7qrWG8u{VeX7yeM+ecG;t-t5~5 z3iox#LwJ*k2^<@tb0}KZ@wXL$0#O9puzbMPysy39sRJeee<2+p6=W>xS|UMwRf5>l z0Z+_B3<@Svb~fm#wm!<9o<KwavRP)jG<X->soQH(w?5%)HU?+CTjD+tK~S)qpAZZP z_sj^HUbI<(Z3job$$=;fQf^jnb_YK@MH>YkPV->jJF<Pop4<Rmra`2Vpi1#>w(a%d zpk^?VFB40s*q%_)Hkx^S0Tpq$B*oA$Nzo=YHT9O%)ORdc^tjSMJUzl0+!6?bZQ*)n zxTXz;YhR*cGwAqemC`G3O`W<O#>GH8vS4}%Pr)eDgocEQxHuSP2iG5q-V25nzjH3k zeo83Yk)U@Ih6|q}#|rp^=gFkx3IkZpUJ0#tldF!a5L(wK*j#8~kr0Izy?qy6`eYjA zeQbrBVMR-NCSkQJHSd`dzTP?XQ8U~%Q*O|Q#7P^tAq9GI?s%6%2C+|si40Jjf}0W? zcN^7?3J#|kw}dA-KHmk`%WlU#deFw9p{-l_`y=$CFD0~-eby`Zu-ksc&n#ZHGkK6a z_tST5!OVKz27yAabI<O$7gyxzJbRe7OLTNw8ido)Q6*#^JUW7i501c01peU?U?cY_ zU>yPqxU@|P5~A)%@c3CnT6MzJb5$Pggn6`I;QZOq1(=0NN?Wu&I~BxTS3A8^O)^$& z2mP@}It8>@(o-K#(7K+oeZi7*%U5Qrr`kqc)0*IW<kNt+63X^C5M@1O`}<a#;6XJ> zgzeAksj><Ylg^;0K9x}6ddkk!OsJT(p88B`%Jq~jQ^^lx8a>s{Ga|@fc6#cwsZ-Ze zhl>${Y7(A;(vqGEs!7r>C@tuz?(u@XBvWk92J(cN*by&)z?e<EU|eJC5-&iU0I*;s zN!NJ6odiJ3X%1q%pvcm3#h}{>ew_&RiwV^(3~i|mILwq6w2Xw|!Ew8L<#Ka(x`zDS zuMr7Yk)tEWd|NNAT>TP%z-pXQp66@I^L&#(Yf(;_L(<^xPJ{D$JX>c2WN2_5IUSbd z9o(D_R!=a%kVg9>Ld~Tz*bN};V77{zN5>7!v?tlO_?Yb-)}#xmYiu4?#Kjag14GX1 zr+l1iJvt`e7%$=Co)RwjiloVJ0vERMWA_WO@T31e-mbJh_W%EtF@Pl;+q8tE#y@Ro z#532htC9AO#<syYagED4xc315bmSTiUEqNWVNX}A?9iUBBO@bP$Z^!sSjvHQ9Ndrq zyAg0N0_;YBWgN@#$5k9pc)}Bo$KMm5_@pPT(5Y-s<r)sG-*`G#a6IFgT*HC&8(6!6 z#T#6@VQV*D^x_x4_$64oft4FvwDAgCw6O;3HU9inukNx=<CMZm4O^vQD>Tm1Dvh&C zD>W|C%8YKSGTw+)8T=PkW?buQG2T++Kd!{6T8;6J+=`5Mv7EryPVB0e*G}vzterp^ zHjIf~jktDV4}#07uJsOv;9@y;L$%(<^^=&=W<7hLoD^2$qh~aQ&`yI(Ea>yv(pPSt z%yMh1jFpWu2~DN_SylPWmnMVKrdxvR-Qn7m$eyBXIlmo8;)StltJ6O*<6|lHqN1$D zgRd`2jkpWN;%P?grxb=U$E3sBy2M{8TU)Am4v|#^m|7nu?ohletV}9oQ};;J2!08r z#Jh`7T~>k$j~Y?{8H%O?X4wjBjww@LYtmgsUA+HR-Ji7|Fp>Inom^38yaj#uF<A0? z##7QAF<t%`+z#gEgD1DEQB_8c2mp-EkY%`))q~r8C{t#Qx@V`KSfUJK!wKIUeAX+k zO}|{Lm&#PfqvcR@T%tNIWLJsryr}N&2~AFQUM`%sU5Zo(h#5D>B$2p_uHidVlN+rf zNQJ&hOY%jxqGfk_S1|QDl&`gG{&bO9u1|g3Xh9@Y471$?Hrv`OBiEgJ^hLOt9*q67 zPxP}#&-pYhEe2C>NS!%Tu`>%yz&xG-Xu;%B)K)B;dUtB`n>GMcI0LddOrjdjiuG9U zO$~clh1WYLzl8vA5f&UX7(MUp!U8h^us3fHQUHc)mtDI;9tzkl0dQjpfXi)a5&#{J z6WWiPExD}RmG3WnM_*2M35y>{eckdPWoc85wMXzjL`Fmbbd*^wahYn0BX^_U_#I;m zj2>s}meh|6lZu+;`%ailrBY<98;-&R5?Q}o;-hmt6=qWbDqwdq&#buaqKT@>>5epV zCnuB}i+0j<l6Km8dU8(N2}roNyfV95PjV3;HLWSX4qCIXrS&8ikVNJ{`-ucTnE-SF zrnd5uAac8E&zj~;#t<E8&T<^7(a)qtH<$=RMKQ%jaC&kgq(g*Z46_jjC8pV%I&?Ij zHxtve0~0#a><o-TCJo=KnC1(qFK3!_V_(iRUm?M<;8;@vMQ?<rlHtfGGcnD-rGA`g z^nT~e989L^)R{Uww2AXn{ucHRlV#uJpitmkqQLL-ht2b*z<p_)PJwExbDUA%q56>& z7!cdUuH}ErrK#hd?!?9%*xFAv=skoBWytYItGWn!F%homNSpIS#6L`Md3IC9&w|V6 z`Q0?=P_rE8Ie-IADV+TWL3nKi&a^t>)cG>)FA`{uGB!0m#@JVR=xMmWN^O4E!s@4} zO<*3Qwe;0UGSILBs%O#39J#RP2+>_Hz`fT5Es~Kt7>0__VQ*APv<+;5mAHM`;W~Cl zH&}d&XGPb+c%)ew*+yn%u1;H)<z%eWt~M^4I3n+F*scdQmtsBmQrq)?6Tv_+FTi+! zz}U<i|2!`+_Dl~3dJth=!XEw+JuDEBXg%IP_z7?bYcF|WiTBRq8-GujsDBE{>a$-P zJs-EPSaQn;6=9O9(09~!wk~E%tZfws%}%u?A~`>G^+PketW4I;MoqJ`Dp>S!J%2;G zF%CtKP!sEn3Q_igeVkgqA~1g~3J_wp*)=>at2})ZuTgnQwSWN~kS4w?f$l2euS97< z53^3NX-h$V!ERN08Z0f9k(UdTW$@*37#J++kc7Ld5&&NM`WIbFU$15VYdPD(;82Fc zqgo&1%~yqc+2P?9Dk=NI_g4~AK)0U?uXWk43<6u$1WblT>m6+BPv=VmZ%^ZJ;lrjP zd!w6VFzAOV6!%2-4Hr0C#{IeL3C*8iv@G(5h>q_>ExeD_L5Ak+h7TN@e5cF~pf>r9 zZqc~^D9hTvV}?s-Al;A#alw(YeE&%Oj^;wn%k4X@v0x8SXBZ%9Uf-3P@&NBE)KuQq znVUHC?hu42JIV)x72ca5c2@WUK^$0tGw6trb+#Y)Z}qfx_xy6GC!4rnsk6yloH&(@ zLau6xw(%J)r$ng(cl|;`db#s9${~0<IYT11v5nOv^{joX)z~J?-jv|<vxu!^6SLrX z0b*(jD6#H%(*Q=_ypTM)7Z=oE5J=D~fRn#0=$zC@o|v=@dqv4PPsX1JI%-d#CT=_g z8fo%`$9(?n0}1S3m?nLh(7Pgn9nWAea6JJ{a62e1FHMS6_rcVOTZb=ICoYM_>{IcO z@_}Nd>dnNv3Psr?{db1AfEw2Q%g^6gs7y5{)-p{jq*P_<9;DLIt=?rrT6z(1EJ@II zglk^L{elC{i_O4Zz`kQS5y6K_1AWmn16@)a=&c;+3rS#wfi@3lpiL1I?UH>u1zrTB z@RyL`6g1}$80#P-6_bN}SMph7>-G}1UQoc6+g7<s`vZyE%|R`vDczlb^ym{SQ9CtA zUjDdTnwdS+1Y2S#v0Qrek<_oJbf2q!Ll##A8}hp%*lsCZLt>m2VK8tjCq1$;t<&Hh zSBZ1Ty=`AU&dCLGEqj=MryvUUFO^yNPGx4_6F%=u<NDcyrOckKaXAh(EC{MdSkr5x zPS{=URKp%0CFD>HIoQi<BtDv;^mP``B3tf2azFwaYw_r2ev%CP4E)l_hIvxvCwR@; z)%(G6(T`SSI{hH>^}q5ErlvQ|C691^c6L7*qMu=>EdbHW9g%c3mVj0G0iai?tk0%F zy2?V~D8>i`5&f77;!H)Ob2MnXllA9PpPOu5&{NfCpk&Q|pz&$Rnza$4-I5snJP~pt zQ9x?m?c?BH5@Z6FH&bv=;=bBg)@Vw_YER|P6%LaU_NGTz2_QYP6EPCL3jYxR!qTUk zk5ANL*-8h(g$|lJdJt2hRR}12E!D?=F(Jd9p%cuqYzp~eQgoG==ga;=Ie+tHVbSYi zXt0>J_Nhb|LT>Cm#Ei;pcVu6H*r6v(I-cTvl-Xt&QtPX{IDRO@B2>=f7yUV$JF7lE z@7H+k>wNMF9GDSIOKVD4;>q!&idP6nO&b2?N?FK&K}1k=<ZPIDAEJZrgkxVuqq0@a ztelO4C3AN|rdu)uByOp#u>>j;Va>;q`9|u*Eg7pq&08{<e$O+NESYZ+Var9Cpe(aw z@c6tf8Rr04G8OE-FTv{UZRMYx?2Y=cdN2%1ob(;S`{<#e;j`=@9ODG9NkRw?oWRKs zvkODRIclJ^SIu`5G*0U%_zaJ00VmL4bT2X9LHFPHm&<g2tmZh;edlKWKPYvI=bcz{ zk`ClRP^>)71Yjh@0)g_m@eqwAkxD|~9a1QM1JO5vUk5c-3jXd-5IL1vVQSvq4umNx z4J2DMD1u1}_)2Ezzo$-|N^Ph4JeBV0PNhHQtdDk5DIT9UmEv8Z$?WYeW@yCyoXk)J zW`HD!30e017VG7v5i-#fD$bt-F6I&wS0!P7n$YTVcXUa@9Pr%zEOp{@S1h&_i*=JQ z|G~MlZQl>FgmGKE!i9)9pVQot|E9N#;ylf4m_|0_w9mAN_Lm98Zrt$@U+$i%xD~2k z7hs14>cuy)Qj9yFBTR30Uw_uzlr=Y_{7$<oyp|6<7!NF9<=TSQ>Acpy=Yf_0klWN2 z`LSKclS)7Bv=|Wm)k4|BRxb)(<yI#BL=))L;{f?6CCPoamx-_AI-7P4doT;Umjm_- z2ny>p`*r9ijzg|(;Q2xWcDkp+ncTR%zw^{j-Dj0$f5)+(x{Wi*aXWwRr*7Y0xAO;o z>h}F~8@*zGY?bBdE)QGlw*x?R&E3WO?F3L=b3^fdI|5YKIDr%*RaVODI3k`s%7GUH z%a<fPx_)8lVhk)xOn6|q*H%R>#P57!GKf-6mEK6M0k2EdJC~)dJh05BqDv^T?Ng>I z!+iTj7HRsgNNsH$*7Re0ZL|fk9*naI4x81D7Gcd6fl#mIy*@@zv-X`!1aE5d>eQwy ze%htMu1CBzdk9Tge7^Ih;Lc6YiP_$t_=-f|xx%zwWza8s01ZXfNGVrP8?s8q5A!U+ z-dR;LqVlfU!@nB-Sa_$uxQjB6|KWl5H7^vK>M0kB-B>6T!=CoF)>JsdhpUwHbz<BZ zRvX!)bXSo;KHx+UZtOSn-<|+BnvD(8lwr-2?RZvh9kX^gwu{G_KG@t@lS})0$$8lL zyj|PK{VI4x^BgIAWS2nNFsw;t`@zaOY!7BQ)EfT7A`ZW`u;UiSLY2?54$8eYKS5(_ z@qu>k4UjuIw|%Z+fy1Tkh#jv`=Z^S0G9DA<q!+>wY_FJmjs+aFJn;KkM-&8BXeGR! zNOEiH)1w(i=I-ecnaI6S<nk1C5j!H}J^45QqD|2#V{9&7Fb)+jCU6mz!FFC4_qC=f z4|7PtP1u`!Z(YeryDWk3g2fIu3*i<_9{ZS}9o^l6z1&+VTd;ZF3_ds39p#SdC8CRy zctwKB*EU*pax(Gw3VmH1HUqejl`-=0f_5wCvQ|AMk-RNUrC;K;G>unw9fkRZjHa^3 z?STe4QM?iSI9ofNt~p(C?l@h3Q8`^ENPgXbAnA5Ua(yiPgAiHN(}UB)a1Lod&mfHg zqjcccWI<R^wzQhLvjf9E7S2)23-b1~c5LBowkZcy&*OTArL}kzACJZc7Dh1<@QnC% zIln4=!`}s+-Be859>vl(%vqQtb{>ohQiRiWWb4xt6kY;gY>mkbnuJ~H;0bGgNdjdF z%jUV&I9QL8r!|D{7R?}}ia*;+%{c*eMhPe*cLU1%K}7_*1cv0SH<AAC;RKZPNk#w{ z91Q|EbXJ-q5W{ch6D0UIBtad9%M$?lL5TbdmE$<F?tu?v$+(UIV5N9-1b<79;@{CM z6la~ds>C0Ijs8&{e*6=kq_S{q?$5pbQ5cSzaQt~yI78E}6~}93t$1sJ&>3!Tjn`xK z^mb%ONSqU>H|8fYCW>rf={XWoSVYTH+3<--S3f@|>p0c~pS$WKgIR54A^sa`^@4H; z2YliDYYlsJiU+*aM;5}|)-zRI;s>5vsem0~Ll9yEI6-CUqHGcE+T+naH+<-4N^UtW zo<rtpF0y?6(1|@S!_~qQdtTmL$ap9Z_|+~9JYHoVbZ(&_;f!{~ii>x~qiyM_Yc_J8 zahplXz>yS_;SeFZl7Jb6YoUM;(^`)EMVs%e)aAIvKvxPE`)W9*$S_-lmJ&*VV#FXr zOp@HrF;11ocuwlj$H+Y(G)A)>O&c7{F`k#YJlDqfOmvx!PzRmG&>Twjd|%54VX_!b zmquMv<A}ElDI!ZCMdS$bG;*vh9fZ%N0=D1vmnQMj<9c51@p*1-|GRAOaXl|v+9z@R zP~6IJtBwr@Xm9Ykr7lIW5OxJ=KM|(e?Vau6+O=e?#Ulxzjh#XFjoNk8g(L<1?gh3< zslGm;>KsGWm{7IC1UF#(EGx54B9P!YMV&E3;sV1$nGA=(D7vm7OAQJ+ut(!3MZyUe zsLLe&b~}jZ3vBi&*6f5ZjAxd-CR=+lSC2{p_>($^hY@VSU*MoOCitDY5XIJmKqm9r z7I3qT@dhA4c&)t#DQRF3FL@2l<JPnNFo#)JF`!RN?^?a4QE1>cPDOqiK=$H1PC?*2 zqTeW*I6oRDb2DejT<t)Y?Xf2dgJElimt#3e7qmYD*n5(zuDWPz6nCE3K}%*T81O*J zL8Ya@uAmb`cfl;#mgePbqpRaFFOdb8LTK|nOJk6rFi?_EZ;Q?)w~64-TRB@Ra+2^j zJ&ZS}VVq^dupKNyqzzD$7S>{oAVAw$^L6gf8d&m<IX4sEiz-<E0Q~@)IBRT9SsxI4 zulVISjQsJML134w{{sfb4k88u<+?za3Ie0sM7}j);7r2+lMbLJfww-8=vs!L;*_=? zgQ4)0S*oAa2Wcb_njyH|MY_#6m>s3T5Xdl?)nPD5vS}!5m32yFc^oRp3i9WjsYRDR zkLIwoi9~MJ0=pDtN02FV(cm|vF3-0a0bDet$~J2W+;^vU9o%CP$ASHHGDP`PFloy? zng~m|uQ?#Hd@62RKpxT%DTY3%y_+e$AKA6rh1;6L9DU!m<`APj_=Jfx%+Eu4zn{s< zLElN1O&u-EzrUsPO_s86(-NxLXGFOVf*RIIAB~iS;F$iCVZtr+r#{IhM#MP)aSN!f zFiW?WhK;vvN85UHNYcMgpVSb%9;OyRC=lAHpdAKhp&f!2ppwpOhrEp@is*%AfaFN( zc((&u)(lM`JLm-*3+S2w)<}o3yaoGxN^JOPn2@j0L~FX?O!E#Ftds`NZ(;m7;9H9) z9x8mx8Wh?QH^R0ZOBYHz0_(!hq9#mfE&l!(vCl0e@RSf{JE$xc6AX_Wq8EBb4%Kzf z$S|&(i%AvuJOorxEJWg=mJEBtkj7+E!UBgX1i<9Bc@5gS7vhJsw4a}#Eg07|(%KZ> z(tIw)HF`mY(bi8Lf@}1)yEc4oKAmU*E6XA>4aCSK5y*(!uz%l;?@M^In_=8`n=qU~ zik+zX^?V-tcz+9h4}4C+RpIBp+Q=e)BKmeHKe21;aErs|1`v^Q=mD72PIU6|M9`=A zD{^~;FqXGhitl`)^v>Y{%d%gp`uSAp9UV6slL}Sue5UjcL-$<-l#K1zJ#gR_ZW`+6 zOU*HgFSR@EdtWTQr|7;*pds0617LPi*)Tsr9XJEo^cc@<C6^5PL95>)jWduk*z6V2 ze~&j9IqAbIv?2S&9XR_}+yTkt4}O~u4(h?W9;A2~z`UE7S*#a&z$GSz4#hR;nGKPC zOWg4#wx>7>jm=4C1F-`JAa;P58RvZvK%1XnAF&bGL+pbA?*g-kO+bI_4s1fedq$jX zrehPbLlv8leZ(g1nwhO@Og5E0Cv)V%4dRkX=aO;Py1U@alN-QQ;u3HNm{;6!XiLLq z43xGbB+i0UPC<qTlZ8FoM(Qp4a18P|!<g+`bb-HHq6|CbGl*vrb@83=m)>b0H)JuP z8<rv_H1yvfCR87*k0CDf@*c#6JTz(f3~eO9fKWahgisK}Kw+~027$CoKnMec-2rg6 zBR2(j-t!sJ@c__pIsUV|5dT?)r(5GGD*}?#q>8<C^4af^&x3J>op8x!bO?C(g}HIC zu$hL;z4$4z#|!u(NdTrmYyc}M*nlY~<XF+rFf9s^J?WX`4}MozMf456DY0K4nt#5U zr!qqG47|`*2f?ht2h=+4U9jdlZyG@>25N9(wR!-_lOb1js-bn1J*Ih9ChkJuI_RKP z&RbCMay3>PZ>_PQMBCLqjx*<g*N-3`gVtn+z~%x_vcUkOY%n8qu9&2>lL0ZQNC)uA zfvjltW0=ojWg&kjGSS2s*sYgAutEHYs21X;eXT?A9q}CV*K3-)PjCuUu?XL{R<Oj* zYDYTAMT7XDu%ii`KzEue^UH0Uby{Y;4%Ir$P8%`U+}Zg7dHok`YuenhwqQRMEiz#U z_eZ0SB`8II{Tv6nY?WDD3BDAFCs}1<hSL=cKbSqnX@joV2J9^WcAh@e;^~x#8}(9l zDN#$j2MjZ#hd7Zid^o-%CL_#jHw=HA7*?5O1%@vwVVDt}h+)kXFx)E)`>77Hg^6Ka zGx8s3b@mtr_)^ES#xMX$O8%0r7(S^oA~G$8xoyT%!K27;a_i5B;gVsfJdJ*o7!1*; zKyF3RkVpBQe8GcI5qkr`)&OJ%KZl{T_}K%cWin+EJ}Di<dNeYMhAu;APwtQ<Ajh>} zHYjR}6c8{)3e@vDd_ZWd_Lc{6iH28shtQTZVhSQfSuYbQ5FSBcL(l|~0zo5n9YjhF zry!RgQr4KVUTwO1Z4fXbsdXcZI9S5l16T;~06!@>`3cB-T!uKIw-~p=MyPqzF4Zk7 zjZ30kZp?(!DPRZ`xj;A`z=}Y_JwJ*21uo|B2_aCz^$0pSUbqI3ZOUx`NhAYtL^9AB z<+gPJa-rA=avSil;R8i7WrATBdV!K!CXmbR)fRSGGlG&1i~|r#DTszJlcb?2)*-a^ zGG`w6ZVDHn;1B7SrM08Mj;#TGY4xxKAwEj`27P;MI5FYXNpiST!DtlbSMyjgznXW` z5d}fkVk`?4pU#2|Av~tQg13>QP~J&UCT7EexA2AI;tM9giY#cXH{_f#BMUM_eJq>g z7;`*_kwu=<ythd*Vozi8$b#14j4TLdt6;&RR-Xe4t~29!{m7yg2Z6XvwX$X;4$&K_ zlHb911a0zyPyv@m8d6KjdS@aCSJn*qL{%b6j#KwvMOnYIt15W}fG>woayTz5>tlhj zqlT3BLsY6-Sw9KSj5vl*#P^4HiZ|@~#(R#qf;sfw5{B`1!mwrv82+!Ntl!@i!w;Lg zvVH=v^N^v|Bk_US$Gl!pjFEvLGeUyRe~=Z!B&UZ(lr`!As)D2#qDGJ|ZsY$_KEDOc zu*NjQ>UnF19;<7Zr)Kz2B2(847CH*br<+E(we+5akAgYg?Y-Me?<s^dqXyeudXIIW z(&NyEF%wqOe0P-IV`b>f8uPBwd#uBoxxbH<-cymzjN{u=dXJH%nfv=>={;4sQPMD) zGc9gDU3%A|C3tt&Oz(cS^lplp+&p}rMokdsIIgEB#yR44i5}&^K8Z&>_(<Cz(c&Dy zWB1_2U4`HU)NS|R#iJlmlrWiN?1CBGV>F-lS?EHVo_1`T_6*pU0uS6sNeA&q3kXKe zf6LH?Virfu*Is2D0~VFrs}I*zr=>(UrODZurMcR~^RD(Mf(Ac8Yn7n`W^1Cgn#@$r zBRm_<W0+l8t7e`?Yt@X`8Lia=aTr&d!?>oyVa!>p9K=JqS*whSK;_F?Wh@toki4}@ zD?y2linzxG?Z~8VtTKy|Ggi%mtgZwB6XYUJ{r6QRNGY;(kpo?hEG?P4DYY2bIc%uK zfYF1x8LLO&M=Y=qf*BaOf2YkwSAr`lgtvmNdRYm<csU{1>@)5jVfLE2?4i^qaDWAz z`aR$@5Ccvk+o*>?$@*SQm&+rD9xs;Km>t5oM(7R%lYH9CyCV300Dg|%z+u47p+hQF zJw$KI12<!)HBZy(jR~u6TFuUcxVrS->`aI^mEN1339+s8-t0|?H<#X>y$SKw(!0ro zIC}|9h{eCr#0$)d6=kymM#TeS^5n>5R$#|vB~VaB%k&9o#!ZaTa(-k_!Ng#pQEPk3 zkL*#fUcrClmmA>V-c|zyiB@|VrbiIDH?x&vRA#o&7mTq=p=QKlQ0>M-Yp!vKv6wxz zQ?kc1NJ_cDV2s+Iv@rAIagXs9B}2j1kdP+Zk*Zlx%y^=jgTlaHWofM9Dl`(YK8<x0 z7O`WbjuAWW3IHG%YJOG9g(CNfV3%^BP;vQS9_oDS%|$5GK^=mYY_L}RQPPPJ4p6j7 z|3Qds<u$5uPr^suyiqBDa->MHB1vSqPgjd;9UM=MuIbFwY>~}tan-dcs56e+A+Wl} z1FNeoRm0gLYF5S2pD?x6OEe~G9Wg-UZdeI-l7)8=n?**JtA0lyaV#a=1NdmAF$T&} z4f9jU>mlYBXhkyM!y?N1DOxC4$1NI`te~=d#FTfAT&n_*lgPogSg>j_5^kuHxy!h{ zDwwF2kkL?<Z8b@YM8vekQLbFLuXUJYCyFQP7Qp}^k)DwHP!tp-f@5L&vGOrd5aR-F zZcP=FNEf#wv$(2fb&T)JgKB=CPZaPdNZhN>;nY{GQehH_77~j-`N<QMWe-P96g*sN zqM((gOL4&X!n*{eSlV-`16@}253f}9d9v}q6bOp;Eila#$3ur&%tpeNf*zZ3#=<kc zjc?_w0`3Vcmo_cS<>VgH$9;as*szS+z6Xsv7D=j_+N%f+WAFndNSL(eP->>sA+rNZ z#LVbxthu0Ifm~UdcPv*m*@1(FNL83}EP*GZ(Ycwx|1qnyN%+ZG4hb$iMk*j@(*J>= zu=r&#{koNTf$ySa5@@4H58z2X!=$2&g9Sxecw<*uu%lCALXkz{w8?bzi7?M$NJwKw zNU#zum^BX51G2g=8Ke8m>)EXF8L>NO89t_x#rzH^^FmgF^+<GU(HhW$WF^MSggWVf zjw09rF>;X%8wOBp6ZtELvnL?8AVDcAL$W(3K`B^^5)|T3V_I)gYn_b*!mz(Z@E#zp zpFQEJwwOjMhY(rZrZkz1*Cr}+i_9%zVrnkDv62E#^H2tnEN{x1YeX#C1fW(DdnI}I zmIRT@JLYq8^3G`=w;)QVq5qWN^+%`Wf!P$ocjJM;Cy@sPZjleJ>&gdaUw81qV}U5y z#=luUI0oIK^b152_`vBuu)}Yc4+tJtfG=y5iA?K{PzusX?|5`lESPhX-jOKGY2Lg7 zFm&XTs`suhy=PuQP?a9wE%o=V(tG9+%+%j|O7A6a;1@&i24;6$4XpUl9s~#DU&H@; z{V$%h(y`dPqN?fB1*@Hm30E+#YMX?>Bv+n7`M4wFx?NjkT8I5}(&p@GTTagEo3UuS zwh5xHku_);=?(HR3U2IzD$Vahq-01X%CI{MlaH##?D2lhxRtq&AkH;5?+6KzVG62r zV>?3bB83Z2gXAu4ptHH^aSNz$5seHv<saeM^9q`UCMwiLuY40+0-`nuk-uV4yj+hf zIxcp#j;f_F{}V>1agDGC?tS;V+;S%d1Om+^kt6rsMYb*Pv?*|+<{}P`*+bw-1Duma zd!AL;qt2l_a>mo+j!Qi5$ibk}GH*9Fpdt@wpn$}@5H!uf;u<c8_!I(@m+gSJ6}%SN z%{1nV(;$4zlzCkVVrzQb$Bf6P88eCTKqeQEsGubcd3EQIQP?63%zng|ry=-=Z6}Se z>5=#iOF)EQ)o4}l(L`#*@gR8{5Es;-%fUI(v&EHcioq>$euM2Y`;lIifb@~t1_)uK zwtC<96cF#Xs8(=@8HCg#tyE;>RU#V1lrKAB1T3?O?Ggd2dciheo5KsPuc~5fR)hPa z#j_Uv^|6`%K|!3*qd!|g4YgorZw+8IzYgD8gyXjk@dLOJ{n6Q5Oerb&1J1EP&+~i7 z^3lk4dv8Hs(9Lh{>52McbwN&_mfmps8sWw(WO4p~t=y&+m>l<&!Dsx9!EAFAV5x`4 zxOmw!5+!}GrPPlVBFM|2C2zcKm4VnEUDqDmRiEqGrD8nvF)Y?&Ra$bqDepzW<b*)M zbgF|;C^}Jrb12|UvXlFY;oUPG?6On+Fd#M;-lZdDPP3%icu^moT^j#G{Xq%TaXDDf zRvLw><K%?lz+8pbcz7wRxpcFQfR9ZQ-KBti7T>7O0MeRwx7Z{>>8EEHHnW8sKnr{U zI%X^QvrhvS70A&G{%nUmzXpn!bI|F?9&96CbAVwcZFy<eIk3&7I*fS6m{dE!m{x(- zUssv~dc%CMat`1e*0uZ?$qqcV0>KgJn1oDLK5;K8{I&*ij2t0U%f~XtVR?^L769L4 zd@>^1u!z|K!b$J^bZ=YJw{o8J9;EuL>AeHj*L1}--P!`ZFT?0m|4@PJYfHFhKBOzI zR|3^cYn$IW#yAvuo1i9e;lHP+vgQy?uFP>hF4yWZk<X3<Nk;-C2nJW3#n;|mdd>15 z0l!^dduQo2b94Y$w5hthdPC{em;ni<NtZX@Q+hMzKcc19<<<9=UQG_qMg7ouv)_vZ zI_-!aZEK~fh(7+=?le3}5);}*WqqljvPdYcdy~rAE+IET7biL<{h*b&Osh#+A-&s_ zDu0em7dFG^i2=A(*(72@|B6M^5PFK6WbhH_6UkLj+!1k~1*B0hem_4a7_{bM1O^KL zQ3U~pg{XtR5EY*&^c-&DQwve$fMCH8_#47qJ{3Wyzb`*#&_PFlYw5yl@uud&)A8BA zMW4-u+5I-*x;eOEWDrQOK_YR1ku(R@*!|EL=@RQoPT``AzUBgHZ02Z5c&HucvS~!2 zB~FS<EC>B@roy@AtKS!!4N532#xN+9(h5sn&tiq8@3jNeLKBbT1300!8Mdldj9@LU z5XOY0V{!KwK7g*(>MyPlTj47$eP!kH&OC|iaZ8gdPiYbu?IFgu!m}hzQ<|$xIBVM> zY=dE5aMg@+=Di$ltt}KAvs}qaTTHpy)>5v+Qc8|ftHDA<mP}^GM3O(3v?GDL{4wSX zMoQH?TTAaGuKeZToVb#<C^+*laVA$~<(YDryyhvxCFPXiRDm-Y4{dEt!H3=A%t;GA zko#6a55oU;KXe_4{-iC<`pLM5E#hjMkx^uI20Nv_CPg_>)Y2Q;v0JxD6;TyGlKeWQ zee~FA>*1N5!84^iz;!GkqX!>s#8G??;@>^m$?)C^dyk6^d-7Ju=?Sb0%x5=+rXZ}M zD65Rn*1<SK@Kr0B>KLtJuPhy~pC>)!jLeuEz@2F&brL#^*&<#tlXMv<7&vDn7#($# zTvn@|Lz~5zE$9(~8bnv1NT4ciTSim`l}A(s6cSB_!bIt3rS2U?7V{Z%nwT3Bh{Q&R zki$Nu5^mhlkV|6`y)xlu<;&fK8?%P724U=A$~cNl2{6|3L#io@0a-w^oWicnPY5<< zGav%jcFMOko$_sUr+hQTZ2}HbEfn{|5(ok=q=5rvd7=4i2#lNoEeGvGi_D~)mr$)W zDYxFFT$?M#DdxB&7OY>P0&5iHV3qtPHi;%KOf=CU{Q@0TNxzFr?<DE>vqg}82f7v( z^6=q3JyyGE2VM^?qQ8CUa9X2^@w#BFh|1nw5RA-`=A*LPo!K!patS7!>32KRV~%8L zFg>m!iwC0tPDx4twecOyIl%k;4(61R!taJWuCOtgGE+BeNBW`LVGb=FU_caFALaub z*26HdbO#5rI<{YEF3@%ytny-x6dCK2^*k0P*hUOoPe$Kr0Jg+ZoP~8VNQJK=8r$1k zq$_`t$up%CNgLGeuJR#yum-UpwYIb)I$dfV2HuvXfl>^8_UV&}MqYDSZEtf3J6S`m z=y%Jza;aR%zjmf1f|R3@2-1%dF9ZRo90C<n;t9cxVm9ea2ecdvpods+jwr(2JDlw_ ztuV85?Z{w@lVH_vb9{M>Rv^qhl+XBFu=2)sE7lGtsH3q7!wx6?m}Hw;+KXmS13eO7 zK*!qBRE?LWYB)`m6}j|zQN#i-ir`d{U}78|Lh&~_X%}>zG`b{(NuwQ%e24Q~OofBz zqH_)&r41~NukWhq5byGNv9+G}R5*DWic);c?@*?tR5;B9ORIoT*MMC>f7BV63u+dy z{^|%)OoXp;i9u-G;3_O0%$dmWkt;OFDmRhW+i+H!MdB+m*FiK9FruSNB(=-!$W|2Y zMI&KrBB72<U|`FtcV1t5$2{Y}zE$tMq4bWK-EcRevMR!MMd_WScs@Amomn3M)l!3U zX(*<vZ82%BbaQ|A6?6%0rq-|mwopLJ8chVu5nVL*&%&fAv%?qM!B~u1m-rEWtZ&AQ z)kqsnEEtE7r^T(%1@_5Bb4&D->?-PYK!!@cx-z*8+S@~30@CC@VvS68Y15iqzu^>a zJcf9!OfkwSSwZ$5EH>@y*X-Rw6Bs`COOE80&>41Tw~!8{tD}9m(wGRwX4RaY*N(`_ z8xzUexF9`ncjKs@k=o)kffsTDtM}-JJ+J_iM(?QmJbkY)Pf)3~){4q`LgKI6M2-1G z^#XCse*ocQ5-18R@++4p`(1Zdd3OnU(=lh3RzMVWTCk>)6`ydjp&cRrf*pd#LB@Ue z(XUcKE=Gbtq(rd9V(gUpo9GL0Z)@+iwW4Yw69A_t07{eci8>~wZx$7{a$&(%AzdOb zmbsFlMMFh48R&}r0muFWfPF9Zuq6|9Y*?-tSi+O8$QY7)m<>&iW(2dLvUXO#YR~c< zMf-6*LWEXBr@&8LRu!EP3a!4Zu?b278_Q@<2PjATq62SfGk_?>klfC=muD8$Tl~sR zG7?HJZtoA&SVHMniPGvVq-RCv_k@<ew@4f$Iv=g1^W|L;y}V53+-ez;hP18yp^eP> zRb(E?jErBV?KJic?FiwQ^7IVa_YNX$W7>SzWf%I&$XnyB(V3_=c2h#}`-tLNSE>b? z50MT4vHHgTm_73*N(sAr3+QHgci!Tk#mX*@NAqU@kf5b9p%oMsS;B3zjc6;yaP<E% z8)4V-xEc4E?Fe+W7(ORGP{Q41wJx{=)_Ns_=fTgkQ#^YNaTw2-P3)NCoek|@29%e8 z`za^3UOBM<Z_pI`^lGB5EpuBv!+G|Zx0+zExT~6gmhYISZ~gRGr*k6VaQ{x7U>euf zwK)05**v`+LB3{C9B=vonmY2+a{DfRVp2agn9~U}sevu2pZfyu8-IIv|L&c6ygzW( zc#k08$9RwZl<>Z1HbyNd-%MK5y)0epXPH8GnYN`c7p!h-%~yrcq;>n%^hQ)6DjSfk zgzYMk*U=AS@Gg%ue+Hojsa5JvS>PmF*uS(}V9xSQBnf(`BxX`NXSCy(F46Xmiz%mR zmZ{UGR>w5!G#+RYOV(Cvm~8U>$_!bj+0Gq)_DoW6=cT?bG!-n-mL9kuJy4p_tL}U8 z%5lqT67D*-fJrcJXrCR3pakQ6M0Mk#Lzle&6R0kZ={G=iv9E4a7au6i=zkrmyC@Jr z3C1rUpk2H*w47J$%PZ~T6<zJ(6=l14MNqSlM)>OPAHUAVE{>(DV=l=U$^?TV;3L5X zEzV0sdT^O%&p4bPCnLJGd?uSXzEwi+XJ%3*P$R=`K>48|P$S)S$Qugirn;H84x!7Y z6p;BIoo)ye2PzA=+>z!p-5vTLt|yRep@^sEXqr!tqnsFxNx0n7j<9<C8pC4bhEWv8 zv73s|$p(W3m0mp4Uo6Ly2?XCm&(clioY!%18k^*A_@)r#66Mz5GTI6`F4%HIcm-zO z;sVu*D8X@F8bE1U50q;r3ezZW^1m<F#Nqs8E?g7eDxvpabImmcbpKc8nh5J$xyD}n z?Q=~WKxta<r7&Dj=||Sb%Kso5mq;`syv2QURW${Rb<yH!3#YahCR>G5^Nk!c^`Q)q zM{-B%42g|2GNdjQ5JM>e>aR9K0QG8B#So4O#qQOxc<H1r9#WW!3llmX!e#qZKEygI zH{(Ys*C^ilvL5X9Z^D_SOOROo3`*E}qgZ<B2UpMqU|0jevQr@M7((lZ7{p1M_>VE> z&A7&X5HE@5x0VVkXI&ZIh-*1$_nUK^#NkElh}i1z#--_j(#&t^9zm%4%wx6}S%$!; zdL99f=+cA;Wxa-pYG}bOwU5mKCJ)6pX`&c(?jO>80XLlw#ff6RAjMKV6xYSdKdXIR zpurL*e%cEjsE)S>OoY!w|FjGkG6M_Pxppjr=@vTM8TxjMOlza&>t^Ose{?h5u|v2X z%G=jcJ#`C}F6kdxkflH$itg|gI=QCr)XiGjnhP%%LY<yCTmh<6^bIy2R5zG`WkjcN z!B&m!@s6ryP&dfhK`iAw5(xlwEr*sarsC6_ohGakWC&@m7$uuG8&U#H4_IMOqVTiZ z5q0iYSSCV-igFFASfn>g)|2H_ZA8rM&0diDa=${(aYx|Fmutk3)J5r?ZX6f~P@=o* zYTW~j3!Lxf!Exjrv4uOoWUV@42>Dafx^T(q?HdB6mY_XQ`)XHc`G1C25{L8ax!70n ztrB`~JwT`L#wzsM>6yi>(`Z+x521L8g<Q^W6e7mG5Po&1k6&lw^d(N-(2fxPDq&1X zJd&p6M9lZAIC3)YjGUfYDq(SRqgFeWq2We_@nS+8B7Dd)s8;eV2WFUA2FkJleu)Qy zdTNcoDhS74?YugwH8&FYtK=Ymt;cs2#{-sdQ+^PCZNy*Q$5V8Q{SFhi@mJ4`@Ymt+ z>u~(l^CNskIdVR>B>w6_c>W53Ycil2e|5n?s7AwhN8_)(l&;ZH=R?cFL(5*cqm(+d zN5l3gX@_MjM7tRY(29uw^7~@?+D7eY2bBqo9O+dcry$!3$l<S@Lm<+HBaUUs+=lS) z<jCnvV+@9g78%0R1qgN*STpD95W85e!;j^#VCmX7FbJz}Xv%u+e1z5bmZuGwvfd1f z1E_IPEyZ*#3aYf#9m=Y-A&9Wbhea3`QMN^Ccm+fvj*hiv#qe^`<lNMbqw(WyEe8Ys z1><l-7G}6K3ACGSJtdQw*oCL}<xWBs2~AtO_&ZKC<Wyj{)>9Kb(lWqKKm%EGW03}X zhMq9PJMB{|UV7VaK=lG2Fuj@^^UAjfey3dfbRd+HTzmU(3|^pX_5kng3h>Xndl#74 z#Xb0A;So*f=}K9?6gtQo4Q4n)AZHUFzJDQHxUn5yxvW<?Li$!QGzCrz0W#0MW)mA9 zT4>|+QX59&;0;JA9K6C;S=-FdCB?H07@8CPv!f;1&hOr33r3*?Xao-rpOZgztI58t zc6v#wd_zUHL>p{-ct47Z;=uuHEVzMPxo8XhneIvds0I%;;T0D2PM0T}D$Ij27M3d} zb`i>rX0m@r8DYGSu~3SIz%ONteiYtimWKWMqhWnoJ9c@KEn=W*f(+MTZC2Q#iA8si zVOfnXKn$LSx(do9D@s#fz}4!?LRfTD>MI3!0Pji+3Jj}?GkKxEHr-FB#<gs*sWVGW zk^IyYx0@2g+WEpapQ<cK3Y%k?u$bQ?CQm<nBq(7vMN38#zuo^sE?iqPlFY5f%N4rY zZi3C`2>zCaKc3M2h)448nD94><GS(pDE~W_CwGT~yN^HqiTHbx|E<6&-X}bTe<y~& zr#|(mPs86y;cslLm1TCmHx75g=}ym`@qDMd3(QhH-w6wecC6X~Il`sbSJXgFI^T(o z_LE2~6SZx}*N2xjva7Fq!`XwY`4pYo7k~pA*;!xv@i!Z~M-%k<x;OQWw|>p6Cx%3x zhq|n(^R-#tM2-6#axawU4p~pnVH>}^<HvWIp-Q{pIe2~||NNJGaQE5%!phjG3<-g| zl5bp)>p^ck%ink=-}u(8SM2E38!Q!jCSSO?_`);%g{Sj{d*5;P`}_3*x%lZEL%s)& z;dlM{jL!=<2_&8oG?njxFSPsx9Q%U~Ucc=<LqZ(u%*TYdo6g<*?LjrdKnRX@&L%D_ zLisdr1V=kJvJYIo>pvIj1=gYCXq{~0TG`RSbev6{^vsFe8kTBF;#Hh8a!EVV%JnAY zo+1&klgo)AB4PMIf|(qs+VLR_EA{<k;^Cs)7>I`zK7=Q62v=^o`Kv>EfvY5*#OHq+ zo{vLF$0yG;g#X9hyGK`gRCl7%IeK-=cFXuB<JXaFu-Z08=4C-ltaIkhOs~wWqzPGf z`p;go)~wa{&RTc%pPsesaA>L3GVO=_mS02;4=X?u5gbqk2(ocN0TUF$fFOj3gg_@D zK?x-3B)&KI_uG5d<E#2UNv-a-o581-t*^eXYS*q^d+*w{YgZMbmmRx5qfOB3jZdNp zOA}xJb3I$*kI8v&Buc&;JW6sOums83P?J-bUz4$XE}-`bMein|uu@heQ10KxA)y$f zZtA$%#FA$eyq-hOvDO-_R~1VeuiOjn=#ycNFK8Lm;e$hTN0-c@ZvuoH$z|xmOR%Z% zstH)>U9H9hJagR)H6HG6wL2$avv)BiMRAlIoM=8Q1Uo9a<;IO0uxutVotz@*tLqD| zfT;OD)u*O@H1+t{(wZMyKM_ds>5Iigx=z|TV&)Anh28o;;E#o0z252;nR$w8YPS+Z z=jz$XNWUB4+Az9X;9_}?E`&P#-?G@)0k1fnl5mHET$r)crr=pbqZ>7e#YRvJ+*R;U za!8lX8A&=v?!>!Rk&(DAQJU5}?uG9iz7V^O9#XVOdPi=@do4iJq<iXUwDd`r^a(dX zH{^wsf!h)u{W=hnnLN6stN9JG>NV^H_DPNXqwlURyko~yIXlz%w$(sD>zH97pwgSO z#A5ujm_DeN?~TZ5=ymK{)#`M1pZZz98LIwE<q7U2KGvcXJKL;O0l7RIE2$5E{Udjs z8<Z4IZg0(bCFLcYx9tMn68dWc5yxlg>EK%WPC)**RmSxs&`8E-$-X#Fy&&W3>_Rz+ z<QRHA5pws!vk_lpLjJb|!HsD_$`jG{Y}5s5%BB173E+}~EH~xd#f5idBiDZ%Og575 z9|v+68|kL6qI~lV5RvaLk?%)IAlU`xd~un4|7(D2@_nK2udNC=*1;g?Seo+!E<J;j zM+!aj0I`v?CXcn&!43uW>t6Vt;fqYb?;{BACJO>iWkdao-MERYtNtZDazTHHfOZvx zx+(9@E4*V5ZB@`8ezzYpt%taF<Osj9pi??X?d?kXBcbl^tE6)-cbX(!NU#SJ^R;^} zPlWV|P_IqQ8JFlL=A2Yts`KC07bkCES)KMGIta7J*3!BQRwehRPN^pYY+JdJnO?Hw zGxM!1fN?G>s7^9eP~M97hXU3L^>6_z;lQU`ueMhF>4PWRiVp<X){3wt=&tiN@kQ3g zPxc?CTW{^?==AHD8YwGhdEq!O9_V$xzai!lxg-WhddZ<)S6<cN=%CvKnkA<(9CsF> zd2MhPNpu>+vDS&8;X^_!Dfh)Z2L6;d_BxmapM|Z|XP^s{VH`Nr_7$7Yfa9n088jfq zLps8+7CJtuh2RTl@>3)Jgh9Q5gS|O<;$)vkg;BwG46A8J7Y}bA;k!;m4XCAHfH;a# zzsPXM(sChuA?GnyDev?Wz#hmktAZy7aA<-9QS>v9Pm%MmaM@u@J(m#bxdf;evcdf= ziJ^LvlN=r-MFApzFMT=+@b%h@-quvYuwBjd>C!n@cVN4k9?$GdK{br_*w#6vFQ}!q zi6(J$6pW;v=G8!g0|%!=i6iFWP>YQ)I&vuhS#M$~={x8@d$!}u<^AALF9s4nJd$my zc2v9JwBef@A21lW>WP5V@!it&;;<)XnX_?8>rqwE67&Y7#OY_qlCGJ<ke846OTBn7 zgKwjGEB6lE6}t@MQ=<_riJq6E5vYiyBwhUS5|yh1YX~)9`!jG8d(LdN@-q^OBSC2% z*%GGlFI~Ds(ZfIRbiuxnJ!Cw+oV(V#u<IRS(|Xt85cV>RZ|C$kZ^j?w5R?-(csfwr z*nmTnr-~yimXA0J+WWzw9`?L5c-ix@k>t1l4C@W4wC7W%|8T&=dY%ZYfyyEHlzaYl zpn-<_1MM@>^TGQ}RuWQ~{uG5u(gl5*3H@(|_8(Qw*L5k8v;oYFM1RtJ=M@FEDv6Ki zaekDUYd4J~II*>x8dTX$vLkm1deI~@De)IW<rY~HM#GQwU^Fb>I9MAm|A*0zM}C!! zb{Ob@OvR?RA3C*XLzx^bwCs-j5{=<K-y=G25mju@HjZgfvrf&yKqDKEV!lor#dy4e z8^!1dl#}diDi{Vaevz;^`;v@dJlsdeFxjLn5yU(|AREI7hq7CX$1sX&F{g}S%*$2q zWDJuTHusSVbE^l%tr9Pn9Zm+CtjVaRuCCHNdgUnP5443LZzoV{l7~5o*3%@!N%bAF z%0O?$D7Bcv8-*~Sv@jNm#^QKO+fQ1;;h6)jEtaPzkv`P+J!JZc>q9tpT)0?NFCK|Q zx;DhCKy+;gqtCdOF-<}NXcQH_te1q<A7&qyJLsh<H+~7>Y&oHfaJmxkZ1+hTkPw(F z6M@l9%;(~F-Y)z|;R>l)Po#z%Y&+0NeJEZpH1;e)W6vfu8!Z>*rk}6UgoZNhgob@- zqJb)6%a32=*ekbUR5bjYfW(F$Wuqtx#x0bQg5l>RBbbOHG^`VXA(43RguVAP%F{Bl zkdQrQC(%pI81&6og9HMh%H+lJZ?M4Bos74Sv_0_xKT8ZjtB>)k-F6fW|H55|;8$q) zNe&!g+?ViLMkYc_H_{3o&nkfWmkQuKTf$V29zjmYF{GjrdITG_Bd9>=(%G*p{7tg( z_7=0i%tJXdYt%9pnDD#c!V76@R`Byr5`L!fdxrVhS84o=lZHG$bL~McBr&cHg8;vn z7e_cf83br%iiV3OGIX<K{7g6;W(xdF5h~^ser8_CP-hEAJ2HNnXEjl9YAsz_;XvSo z28IEZE3>#Er6bIJ_=$?x0;~4eF$Oe{cZeO)qyp^=k6V)uU1%ekTNIG4L_nTs``!ow zB1Z#JKzQ`9nlk(g?(Gf&5+AOB#_`562uQ0F))AZHSo^u{uyzSk@7RGwe6Y3Z=kxKS z=B;4r6A4puT5~#?n*6#~2Xw#oaH#ETHNK`n<@7Z5hk5-HJx%>+W>3o3Jj>c~W~`^3 z!4tGEI)L+W@}}o&mUhe;a%vPLzkwHNzzWCiG@T7NWF|3gu(WSn%JZC!HObz+&hXWl zxLCfVZ^^zj#Ao9gH?0G+xRm=I3p6`5?jy%hJ*O4CH>&{ZSx>%7)HBzn$lz0rZc)!9 zgX7_+dZ3=ScIikBMmo4xPPRiBJx}`NUTyhVG`%o!HSfNd@UCnq(YPR*Nu#nLQ<p^< z#?v9*o(3b0Cpvu451u0@+a8ut7nx;G+;F!=!&3i<CD7`oM~KU&V3}6C-NtEdJe`hR zPj#k&K6c$Fx4ZRXVXK$H@;G=-?)$*?UOZt4<yyTs(ihgJOjG5=E1WA88;qFS_V7$x zjK5+}d&OvTT!!p5bP@#@4=1&RLTi$)Va$C8iq<3oh@4Xu;YDJlf=r~A#q`Qb5@YJ+ zWUvNL;sbW5h1cw1#0OkmJ7cfYSn0;92??S~ndyJ)m_TW~e-{@!dt^vwnnOE1>phe3 z2+=x_TNbgwqXtlnka4R%sxC?*n~3LF(shqzU8lh|*s}oRyTd~@Q>YZ`7Aig+S=560 zE)T@rEHI10vC%&W&K0y}xc5YMp19*6{k@yjV$=Q@r`h4i4>=8TEzD+@IwH&5CB!s$ z3A4=)7=8ON71PeM7jPc7dNQT&>ouj%O9GtIXMBh)!m$#tqpUnh)RlNVTkR!rQ^FxD z8%{V=8fC4lT-^q`(5=rwv=6s^z2>ykWBAo+N#1AieFTL;#V<KZe;3==&<T40JrzJN z>XM`SL!%`}I*H|ENjJ5?lJ`o7Og6d0OzbzEGqy$so)ib4Rca%g$R_8MjhfHV8u`^b zAiT1J&F*}2myQT5Z3>h?Ye6Q&xcm|W3nOZ%A)T{b`)93UCQfgwo2{4UK~<E;5t!}T z|BA7o&)4iHFVyHz)1w^3sYiwEBlrV^(B+$udL|>aE|x{4riDrUOPu(>QMbLWzh7?0 zW5D$m+Aahi^&vtwA3K<6oreNGHel!h8wbPeACJVMsLw@-J5`C#2SryK6OI*iHIC7B zx*F$xsMk$_$`{udQ*7m(<V8bdRM3G+3@rRuXvdws;@1{;hY&IDlDy;-p=9Qo`)D6j z+}2%lP-d@+lo`!esx$PL8m-vppPfTBnJ6(C`xiRpd;|9L3}Y5LtO+h5O3WopiTM+^ zO^e~Pm7*3K%(R%V*t8fOAWn-#js(_XP8~(YMp)v8BZ(r~#>z|GIiY(d+rGLF>0w8D z5nxey@c>k(U+CGQ8E~M{**g9ichC>o*18}x%X39=goip0hdTe}Rl*V~YGcwMox0KG zC$i?NH5P6QDx=zVLuFpxjp#f0?Kv*rhCi<1B)l7{L38h!2XavpsGPM40o5Y`)$c2+ zlz+GQGAyEefB{4_;>A+uSH&di0m$L>MlSF>Lp9IUgd)0X4Fq8kN%$Bmu)yM_bV2KA zC~mq!WqAq9La5rVyx3j0^lgy!)MZHBZLW3X;+lui`(ROJs3#u=8&!+b83vc%!1G`~ ziiT;8h0-IkEsre`oyk0E5<S3EvNzgfQybs-A2i5ikp@xy!JuI?hc;9t(}^nK;nvMa zmCVMf#3e+PxI~32!RH`ztxGah;wv^)a%rSW=p>M<e~-0Ti&rI@(Cs?x%ac$gzB*GS z@#3xHrz%zQyHCWb<owVqFU94m#Mf!6gbpkhrv?j;yOohPTL-$qNhc->cs4x(cM4|< z+_w*dsdYa5g}?{r{nCV@0n}Rf*Xx2jx7>O*l}RkyL=kB<TZ0yvZl_ohW)Z8gs0&P! z6)<e=0#d+2=1Zz0-9gqe4Wqt;jys4yScH^=_npe4`m0)`lzEq;Vrns<eKeqL%1>82 zlxUIiqw)~<b|7ycR)IhySZY7t9jY<q=Z7FFKU1#so&Zl#EgPy0(@ZiiW6RMWP<WEG z?$VX*$VQn77~FY*s9!L_AyH-MQAh@7-+rNq*N(}8@Il5M$f9_U_!Fsgw_Lk~VYQxk zm!ZbN#~BmoetQmm@jyWFDMgXBc?K57HWm`L(K!wRA&`rTKeH}9N7{%%AE%BG$~O88 zw#kMH8kZWsWQ-<RqamZ+SsXLsNCJ*U&}>RIUnKy&qyvWz3J>+1#Grry;QV+1;6c0R zl2I$%o_8fWpQ6(|tt-0qOx^oBP2JPLb(SLyDw!3T0<`IGSca`nVJisETX_34&a7_L zkLcljksW4QN%W~aGg3y}{B*j|4~64^8(rduf^$k7Q(VW96C7MAZ+ig(ojx+k@fln< zfP=NWIj3^Fo*5g(b$@Ojp>ah|nSJK037_Tk2Tp-$8ZnsaS8o@S2@9^>Q^3H2t7THe zY+~YUVHFq*nl8uQ)%N5ykx|*g)VUWk)J8XE%!A}?zAz@oqqJ-8M=LdKw&Ah_+e2GU zXF;%|$F+=&ztoOrWPO&(Vy%OkMcJl$4fm5Zzty!~u!<l8*oX`v5U)@*>(3;tPu0@Y zBd&<W>kSF$N;Vxc&sbNx<yg_x%xs^bh@D9pIaPgC&#8NaU2;=LLo8-;jZj&t#8ARd zd*~#j!OpL;MqXUVEIsh8xHejnMfJ%k6Yjw?ML6s8h;Y8Dvw?6Q<>^qHIV^P!Z~TWn zz0NOLsexw`YRYEPhRxsM!byh2Lv3Hc<XgkRMqmKg%BRysSU8l`8fp~v$}m$0=W67! zaq`$Zu+#!(q&r!Ko@+ujfg6Jn1SzEBn;@xUbwEY-k)k-jyCc#e;sDTz&c8PxZ92cO zPoB`}GB8HxNyScxN>9HKbKk3ok}S&T@2>7I^in_jXmc&`MAAK?CEQ+LgrH>I;|mll z7QG=rLc~m}g_HmgcZrBS7ZGUCn^NG09Y>9_^)jfc*ebJU8L;fxW@S!g_0ig7p<<uy zN%{<@9J;1kpD{{JbqxPP(}9t+Pzhez1wXhLBD3{nu#G3Tr~50I;C3)TzIMP%n+FF6 zFSXyRU(HzW%dfcN$}6uzu=nur)!b%_Ew&@OufuNI8*jYv_4tjt-%U5Y;f-&66Mt{U zj~i^|ck|6-Z++|Ae(n}*sJ#`tXt{|N^fbrbNbcC1bJVw3yFJL=oDYt@n{9kzUpQBu z$e>FI3%G>wz=Ct{7!%-g%mv3<H@h^tmr7#U{3Bi`A8LEVKC6S-e*|J~F#D$tFz$cQ zIS>#8gK%Q>cYOQr`IZ;^akH=A@Oy%vu)kG5WjlT8B>#7`nWCM()KJ*qig#hBFXg2P zb!R($7iA^xbA&zKj~hVo_f{4NTYae$WrwS7^^FQ(hpQBj9j>y!Sd2S+hpk$=5jQGv zi<Q7`)p)Bf&8MFOPPWxID)2Td@KzQGTYaelWyfk(1GcP6{Wr5f*z0TW&}`l78&&ZZ zD}n8&@n+w*qlz~R?ZReXuFt=Tc<L_G2*?`^$QuYGZ1#N{3Sj@K+w6-1RN#WlP1=(y zIE><hdXUb)kocprqlptR_VcRR!?NM*^;#gC`8^rf%=GB%g-2G?DdMkHWEA(Hod&mR z_dr?gGE!o-8HTvrr*kbZywTwyAF;NJ*!-LD{sz>_$-rLxfsKr-wanOOwDJus)LQzg z^Rqyx>>Lf<lA*#DX2%~6xY`oj^#I^^I>~JPfX>$U4q-w9S4!tlP4L*A)udCDdJA_c zx@8l>Dsx@@W>zo3mDfAmLsyiX!-G6@$n2Le9{8ScmK~O_?JT>up#8Gxlv9B{N~Ccu zAX<nDMyKeCQx7H|qG|#;J|57r<Lq9GDj7o}4r@erGPQq5<4NhgMMpr9$wZ#jW}64z z3Z$+n^rVqyUva9xpO~n37)wY{l*MZ3PH@%W6WB*bx~8x!cKet}1->7m?$JG*k^D4F zey(DPu+#ijV2MpMZl`%v;7TiiJLc=Huo3)O$`E$axQ*aZiOa17){yJ1u(4Ex5&LP} z#?n|uvAo=ACY@{@wv9Ayi>F@)axa$D7oxjDVLz(75>g?PMA<q_2kj~BEL`$ih-IH= zomQ(vtH`$Ei)h9AcVtR+&FPYN%wu2=@LpiB)xco3vrxC%tY8cxk9i3Iqj`s`_^4nx zai-gix}=pqWDm%;l&}SJ#f_zI3+AdLRJ;Wf`!IS0#9t8v<GGYjJ=_A1L#en06L;>> z79Z|yaSME(hKc~i9&EwvLzHO`_F79A%4#Q^y|T-8fJEsrLfJdnmg(P-P)ZObRP0)H zMB^auh>0d^c#D$4wj%^${wNT0?PBphnxAGZT1J^KT}B~wgQX#+$L?^$uem$PW`*AS z`%vL;sii^5c7~@+N&b;EmG!K!w&=HE$VXYWhD%{n94(I-wB_yCN}gn!<wCyA@}EPy zY-gib`bojLyx_lP1rfj2sfPC4z{_H2!-U@7fuA#?`*6VsF889-5ewHEOpL`RgcIxU zVrN*xq=rFlKe4MDLqjyJVOU>F!&)rs*N@VeMz2?RFW;Zo$gp-I?<J1U&t_-7gjp3V zfqWeG5s@MhySxMy_K<rIeMj{VuOm)^V5B6Etl+Cos1O`v!RZ<osotnX_S-y~i!?Bj zWN5*_g?SP^fwnsmXJeog7e-(i;WZ+~P&-wCe4y(ZhEWTCOZpj^H2Xvl#kdGmZ#Pu1 zf17c}%=9_{>w<4lG6<qjApGto*f3a3mv+li0FS!R)^`9Pigj_Y#lan-v1l0XmJ(Dd zy-iW|*P@8(z>QpVTgt;mK+)r{YKa-V=JY{EtAD<BAqk7$E(X%OPDYd=3_088ay1$_ zEDe;+nAE1t8}Y6Y$f8RqB>TWHyv27wWn*a4Fh)i$3S0tYAd;ovRxN}sBFIle7j?hv z4N?QD5EBM}kbfM1u)5H|AL!{Zhpq%6(u^7@+AlJdSNjEy7^zoG-8a`RL?;5LF~z%~ z!^SvQ;}lcW1xBQYntLtC7dHbPIcp;KB`>s7ae-k1IPe!^)R1cN$W@Vao&L=L%ALNh zIgPGcIxf(nkq0?xmAF{rR#|gy>bO9SVzkQD&(Vxwxop87a1;<L=BADVc4Ez!`A*i2 z^JaZ2YZfBm>IGieC)0qsh>vcGdY%Ari!zv`tNA4+xI==pV1r;Z=pzooy92Z*k92d1 zfrGnJ3_|O81VjV=G0~_>u$6>@E28)NS^)`&F`V21CKz><fKTxTU62s4ge}a79+k5v zrRQi9FzQ)l{41=;qReTwI8RfV-+fC$jrmaFqNJsK99s$Ww*io=vc1q$wwXrkBDaTD zwU=0`jI`<1T{xJCP&NJ`(MMdH9Jz(SHrP=j@zB=oPG<NvGtfey&XgnQsWzuA8?~^U zvZU)YRGBp(0^N#>wV~?;mMUR6dWVit(OT4$HPKph<)0>fxFtAdm&G<+u+jcBP&SK2 z`{IUYQ1*7%Adco#47T&hU@M-`5pz_R92_~(_9ddjCrK?>fDjrn_atGH=FpDGP;^rF z+G6KySe+vK%dC>3=R}5wy@>;v64Pi+yOSnOR0fM0w87d{*9@8}Yw*Z@DQ0$a+0p50 zZT*;WeVd<=59<i`Ly)i**N@Zjd9VacByds{p+Axknqg;QO}5Oc@g>ZvVF?@8Nh>pO zI5c>3pH{d|4`Q-=KwnUcn`;Y>(jiO*(*{*~;n;lHq(mh}T?Ne)hA<Q>?lG8Z`&tZL z(jwr<u>FyMHkWVht6rw7SgQcIi45luGQmM>LwlyJru@ngje%7cwu~W+4UxG*Iob4W zhKidz1!AhR!=c6bm7o<N^`6lD`RimJrBQHcJU{MeaC~57vV4v_J}^gSucNL{&|f1q zdqr1(axyBY)LD-!l8Ttjr_@tZpxxb-w4>bnI#8w>k5vpPzDlm@dhR>Ugi;Bdo$mqy z;;r_VAekL;f8G~JVj4x4kyM|=r{;X;9yxCYxDf{*vLY+XtN&mp-yCZR8rq2`fyTob z8oDwP(72W=1&8=N_MO+6mOCXhROuY<hSJ$uFfkMl1Bv;IS2xgc6}o-Fv6?M5FeIZH z79mGlYe$B~+eII>%=`0|$%(dyVhqc;6Rs>4<^OO+J}yp5JSU3C<7VpWNC32~>Z%Y6 zkFlN00x%E6u;=n6#U6+Qx_O3K(cq?f@jY2Zsz0E0xWYjjl+J$BAF{}*VP^#2!3m<R zs(M6dH7Fvs-H18+sOh|jl<SnB-0lfT+1cZ2il|b9b;1VYCTbXqs7$x*$a*e&HkUY; z#m(wUvM3vV^a8Nq_BI~Z#?yab)V&?@1E+G3#PQ4A`-V}{ITFsHD}e_v4e$si`7xMP ze(Fw;r8+r|39EFMUvVXxTfyefBy7%!UUQ|xFSe(_G>6*0gt0VBIHMoBkG+KvPv2nq zUEl1X`day$m1uZq&E2VM<e>wn0`T|jl7ZkVcz9Qqq4J=#McTL<h{prYf9CVLnT-|j zYp|V|++#_Of~L*<dfm}bi?IpkaNdgs-uwbhWK7n!g!H`uoFRP~jHa)|NORvRe9Wzd z?IZnQsKt<GNN|kw&!ZAd@3w^VY=CAs<A}kP0?ypji0w(O#qHz#WT?e(<^(aunUi8{ zN8b|8PX%a(^9B8_*#dKL*$Oka*3$NI{$QxZaMq1cW*C7v=&ZngV&a^S#~%vCZ9L|< z;p}^k#~A)(Abj@NjmD!g1UuWG<F6l_W%}v9$hNC!q?W}9<L#9agP}G3H+r&sW^R5o zAQ^@wl_s2jTDztbQ^UwS`z_0!+l*>d%iO!w{)V?9sHdHvQvj(9q^&{Hp9v`ZRcu$A z%_cS!NUpOP(63Qy%eioIdKBP^rUm6p;mDk_^$BO(k&YfcAtKy0G^$F8*sdbtCqoO2 zh@1&4#wA4jR3#C01Xd!hfBj^L_?dvhUn>!H^GOvEM<OB`K_%pPOy5@!(a}xTbetJ~ zazs4w!wODZ3N0`q!lJJx;`5b6RBxUVaqXmt`1yds50!{&G@NxrT(2VH?}ru`5itj- zCgPVXiKr*UDG^sriilqcDEy5QQSJY;jfiTmJ=P0*ZL_Gw*e-)j_F9@`omCbYk351w zw&9sai;1NrXCCQ<VoT%SWZOfq@$dX#XM`)7Ff?U$#s;B@sd02?sKv%V9l*l)$0Y*H zceaG{-2s~6d~UEa6lcaWaYB;X87G1B{h=1aneLO=&S;<#_?NbX^TPp};f%9ooSmUK z>ro!LopBO4KOSl^oYjdC=*(jzBqCBqId2mzVfb>JOiE@Xt#xnvptV|b;S<Zwh+t`F z5SNuceoCd+PNlTU=4Tn9y762J(s*%)co2C(5Dy2@*%9VP==O?v&ZiUUBZv6Vc3LR1 z)Dl@ehuXf#Q|fT_GhA9FHm_*}<IcSri6<n%;=%oP4h4g!gY|$8zBMeY0E>oh-rzn8 z2|0F_qdNcKk7cG2Jy8bp*d7Z(_EXwr>0bn7*-cs{A@7J?!t$HU({XfwJ{;yX1K}*9 zI+suB|Kn*ea!Lml3b25n-v8EB({fI}C5LKq6ho(-!u4yfLI>8id|_~`X8DZH{m)dj z=wQ*dm;v(&D47N85isH~mdP-@#&jEFH;??FeR-l0r^HxZ=kFp!tyZ(dlIsui@Nh!a zTn$s-{fU?6P}`TVah4?zCq<(#GqNW)$W0Fi2WUB8MNL-lQ{a^;E1O%~JfK3N+8eMj z5rYS&*?d}kXF$a?8fJTL0-Yg#G~~8sf`-IaW9eD{UOI3-$4N3~h+9J8z5vuvKn#<c z4reGl5ONy|m^hZ8z_81$P9Gl)FbxAtAKjpnVeoj!Z5UwVX9)%jh{TL@OEh>Yz%&dn zfV-(`hQa$nZo>c*(G&yv*<KG6IOtbS_vSN5*wRKwSSbP*rPIBSSoWOxXbG6^Ypwlg zqnXNno7!SDW03=v#H52sY(K|*OC07*-eyS{i%fE(p?t=)glWJ3UdArG$aaB#G&JxJ z)cVwYsN4|EdZ-jNTu}tP%+tq;9MYV=BI%HZf@aboZB24WTa!G}m}3=?wnk+*F9e*w ztT^k!lEWE|-w@?i<;3*k0kSd9h7;3IR(5whF<m-~y8CxR1OJzjPDfHlx=p*gRXHF1 zbO3F%+i*U*R7tydK00?6(eAm>z;7$<bhf*7+Eq?Ne=mSG+HE)u{ryVX#naICSwy=p zg$AxE?R1j6W!kBQdp{5P+UkiGFo!OLDI|;Ka+(*+9dZ9d6<1ig&nIS$>|gdCeHWNv zI@Wm@5xEq;AfWtMYnt()Zrb1ylFcO~8}yXVWzUkyo+XdzNc91VFVEDi<g~9)x5&(z z{WdI7#GJwyve3k>(PU57p|)>t$=>NcjExqPi)x$+!x$IFM(~inPMEJ;6XSe<mHWz2 zIm6LI)kYzC5lposq5hJPTsh{P;4y_nO&oSnH&@2Qy5GD)&^oE`XjWli;^<c1!pzaP z+I_NJbnJQ?&9%41Ah1>nt+4jyzTk3(@I@|Ea9;)xnuKiP9du4#@eVpyVdP@fGTuka zomdtOphubbXzRI{`Q}5S)JIF>EBD0TALwMB_;g7ceJh^$L*H^Igg9vs^TQ>!EgFu% zn6oK;*b_oi{UWy$80DPXI;Wg-zdETC+}s{ENl^cI85GJzs{|yToA8%8xK$_pn41!J zY<tp{PU6md8hY`OPD~PYMPHZoxwV*ki{+<_r3|_j-yGIT!_<&_8M%?sb}?SgAL6bV zbA45#F*Kwh*K$WFFA2RK7lg_$ToQ^KLUA)FcP`$_`#-sJ5to1d!Y}aZ&tKYGt(%t< z-TceQ+Vtlu!sg7ToW6vOsVsqfkWZaFI?J>$f1GS<vD}1zhZMgpsRoyJJH)IS&8J6A z#52=7D{|fjga*VbAi<hkXx|I%%E(YIe*U6X>th3WR_QO|`@8J>f2Mlm(YCD)x*jBk z@jp=|b2^Y9JDZ{KpDd%`fL&}FRLlj;Ul1I+oAg=kak*T8!mzv~5}M&Z5DC~Uh<x@) zaEoT02V&GaI}yNIm)&vKqo8fjWV`#2g9jZ#e-3xki!wcls~c<6jc)u!x{GQ2?X$lF z)05Dq^;XYRYY8#2tp;=ck2_F@tSz=kHs~tO&_)n6A<mc=IN5Fj89A;aMutnMysT76 zm0;6_?8F9F!cRB4@E2)f!@tCae~At6JyUFO|0HuNHg5swpLf_qc)Xp}xyylSt=`-1 z^brJ!;<=97+c1`5EPyks)j8!-V@&y-d81T{9N^uU!D*I0hr#uCLRZ`Fz+0rDqZX<w z*Q{YfDPaw22VjL2fz{B9@TH-;VJKgSik#Ufm&Uyfxm`5>OeY$M?WKzCKJ+j0j@<!r z;WQNlzDkr`17kQhJvFeakZ03!6qWdZF)0YeJ&y7i?Dpy(0MUjKgJkUfTxicja-iqA z*uIK<`_#QRuI|0P7MU!(rBUlDUf4L*t?9;a?@%9nRlxsE;(W-*zpsS4Z2WtZ&<Qjr zqk>Ks+xYj$_uT<rr(ujKJ8QChfc{#BAU4%1?F>Pj=_dp96aKKmGlU?8^L9|Shmzg{ zj&JnH1`&yH=6>AnVZDuD2Sjsc^9cFobquZ6<60%u8aqw!u~*}+ujfZFJ500QMxVg? zQ+C#MfYsILmAO5wP>IFHh7w`CM&BLbAf85D?jdx{S7#u+GT&bl&<M+r>qhVgJh(^y zc;-{%D@f800<n$ru9ZrS^Y(bhvb=3aS7^yIEI#GEF0@egu48LT1<`&?{H_Lmj%a<L z%Z}!Ye2tBwRPmG{*^4%0V}vBIClu-mQYJK#OtNWHZc>Bzar7Y3{(+EWe}>tUPKAg) zNpUx$T_<KCU1?R8F)a?_?wiJTmK{V14u%~q?MHtpXgD}Y28A}6f?F=ozrVr;PVfcy zTOcwXx~&gdsVQ5(anM~KL+(w9**g$E*(b2}N9JM+-FWETexSB}0&+~S#f_@o;eM8Q z$es*kECQapHqo5vp&gB#Y#kguJFRtJCvD+P1pB(<$)$Bi*%;lE&?l|Chc7s_5_WFv zVCxR^9o$$uqSo2FEw%3MfT^`kW2m)7+Pc1^b@zrc);ftf^qbB(jni3dpyK_Z%uzkr zR!*1l^AZkAo{d7W2Sc&=KwNKnmsRy}D3fhJ_?NAP%-6=lKbXC{JMa^O*IB({^kP9o zqv*NSkV_&P-dgp7Gxu!igQprc+wLR{-Y}mSU5DDfh*^j%B3IEzmZ+UETHrn_n46+p z|Az6DIld2PRUxN1zO$^;Rapm8lZ^%`?}rdLk-f&VvuPpmZ_WPFLSmX0693Xds?k)# zU5nF=8jK?`mte}s5k0cUm;t3UU-lwXW)G<mGSew4jixW<MhuhL&VA4nw2;s3Z!&s~ zPGEYt<r*h4<bJ4yxydUMu75Z*+y-|*^kb*9xDFE5ejag#zkBbXjwi@{LIqgs@^=tc zjZkF>+k~YJeh@)kd8TRRX7ez!2+cd?&3of~=Og;rF18P{^H@OGuFBKZRJe)gc7VaC z;kZoH)ezhFPTu~F_i&-}wVVZ^hiJo5#PhM)nC!p<TJ@p==vk1nHE-$oCCx9M5N+du z;@%hW=Ih=U_@OZ4zp3Mw)cnJVk<ulo4e;=V6>CJWZnb+Y>QnW>Pew7*ATCJ);;TBq z0#QB?i1LgsF`L(Bfs=L*4uV;_WZ}BUD$8g-AHbWw3Y(+veDz5<A#3BO_aC&_e}fKl zE4x_0mo<D|@1dK4#K|c^&Ro;QYOc)KWx6g?bzU&bBZu(2=9<^&xkJ18<7E8?oIiwJ z(r<X<o8J5ube(!ho4A}jJ1Bf5(Sl>h-khmP>~rh$KfuX<oGL;<|D2=Z%@i^A%A&J3 zjPOe?ZQZ=A>Cn#;ZC}$D)p1P3bX^LZEvNsWmOo=HJc=gpyiKHdD6E^|sH{NFL{#{m z>takmSSY5@7!vjoz1qiD;sBLg@HvUgNajg6_dfO?=@;?Ex@-_K)L$~p$)*|qo|?f? zf?C0844`TwYoN%HKoL_1Iyo^>FRB9~->y+2T)RxlruouI0bAkgFSKtZZtQB@Sp8y+ zb%`xE7OY^)dfun)T-<CkKC4y?%|4nnn>+cvhLdKSMue^|^sFAV;9Gl~t#uS;n|#xw z*6yy)raR5<4j9-tP7IjQ>0tsoklliF??&Zh!v;~C!}tL>RbdVH8Iar-D9-#6+vEPM zZq2@qW*59pJUsx%En&J*Z_@kodLb^eIhPM(s(6gRyDZ1+=<<QD1w#%`3Z`S{1{FY( zu>hP`)?RPGufy|h0nTg=_-=Wtz?tLP2skGM3><&0K?mo$Z6!0c676myG9((^!Bg_d z4roa<zNA{_SRm6QI+|R=nJmgdFF_fwfulfyQ!@bv+#_&c0yW>FIF#SaKn@o{vRMp) z7}{d9P%msorzK2(&bzefPr15@c$=-^7UIp+m`hJZ`K^HE3#wi*lSFaTk)}gurOgZI zFC+Z1)}kbg2KvQxflCZ3rI3s%g%kh$3&S}h-Nyq`$Fw)N2`5(K?Ad8XeTn?Jpa;;z zYgB`s4eXx?u<udW+`y88DWt2=TnwNdQc#!EpTx4>#LG~MInnyaG6z-nsQ}n;<efe# z+(Nnv$Ik>%h9i&RkD3>1{oRn&g6uRzi~jO4F^kE6LTj)^DEC<_mun`y5y-|)V<lLX zDR;rtj@l9cFJ%ZZAWa?k<3z|*FRgL+Op6>9fb1N?W!()_=5r6<gG_wx)f!D2baL#* zLQ>KV4(uSehC~T+lW9nYZk#U=;@L_<=<)ocS~<$Nu~-o&fdy~2qJR_9VqGid{Oqh^ zV&+7jm<jf1dZ6BOmDuP;BD4Xd$fkwQ2cp{`XW?Vf3dI*`Y$0|`1`9j#0fU#*<#K=q zw-Rxrkk2??N{0&Z0E;(|{tz@vX(H#;#K?a&!vgVBbs&sA(=gNojCgP{8x$<Wjfe@L zoXjm-D8)U<;AmoD2RdX}$Ycj9X|o|khLSee)Ds;X=AX$j=$lNBt%X*Y@Nv1BS=*7y zA{o|ACx-6(ZYXObk_MX))xgPnEmXC190c6W8<zOZ)^oqv_W~y7Sqf93d$=25vjbT% zWjVJ4Q<hrTJnW|yWBJVDYst)l)B5J3^RJM4>jmoVuAgve>xi~WMj+;)wg+mH2<1LT zJ3$B-X%Lu^Lg~jE(I#$^kZt%;8PY|3Q*&^-)6dGSmhdH^x1m2UtDw5TOoDO>4M;^o ztp`2RCR4#NcYqDc&aIpbh?_KW>aSUec|5Z2t}iEaSkZK#!&CtGM>^VT^q1lepDHlt zQKl9?ZJJYP!_|XkM|1SWeld$?kR%$;zL>SN(@)IK@1D`;?S-@QVHQXR=lr05nFUne z`4)mQQXj<)UkfdC`j5I0-&S4gsSlA}b7}Mv)5l#JI)^<B6a{!7&vYQqSCl*&9x`TJ zB5H@><>qSO9Liaui=}=B)WSS=>g|Sk?5Mcy=FwP$f9-)hZoH`<(ug~K_%kPhY>?K4 zf1V}+{;CL$T1^C#>>VE@lE-}e62`nN0as2kN11Gw=VNR*T%1ybkM00_kt<9PDF8Zx z?vqEzs-NSLU)(58t&nPjBcaacO75P59M~Rv2wO>j%+XNXe2B^^s8$Bmr(3VJ^|$YS z)t%Wuk!VHHB_cwGSJ|Nz@pyPosPD<wT-`C$c`i<{S*zOAc5ldSgl9D2H9EnBI0cTs z&vNFrn+6i5C*IwkLAHF_?4)BKD$8w?WvV?Vz$V;IHJBE6n!&`|X&RGmr)W&LotY%E z?bS|b=%WFZ6%}obXj0Ku_3zZY=zmdQ4ngTEH4sY=_E6#b_>~a8&5!Y^ji1^-2(Ulo zpcDH%u*ZYjJT!Qxk9SmK4MPGQ^~^-`05WDr4oO6)4n2U^i1+VWoQ}wI$Gy}ykMGQf z<ZmaEkM-Nm=J9@i(7}oRq~{N{eG%h87Qsl}4@MctjLylj?4=AlWjS+(y+JBiPcb=? zf!2)ea}t#AtjM@dl*P*qwmOICtIm;UG288ZL#G>L=8fkPFkt#AjIkgdt!x*&#?6>O zIJw$ucfEmmjvVeN_VsmCtkid_J0Vx_eE|s!*6o^&)=T|5GluUUo>NQ6xVpkb!v<Mq zv*PjwvyqfaGZ~ex6S~ilGDanN7QYq&2*se9t@DLSQb~X87jTkB*>}{V;5!{osn?lU zkm>saE`O~@AE{pnIzW`L+A}g6ktKgeMVZT@!sVS_2L+%H2B7N-l#BgtMmdZXFYe!w z1NGpKQflLzxtQAXF|`+BYA?prW;P*2j}pR&Wk<;f;Tp<n@{EmZIS~OPGLW`I#79GW zjfk(2_7;h_%o(2?g`E;{sf>t^2cSm8t0N*R2|q`WI4+ZoTJL8J2?T;e!kSSP3;!`y zXJV?(##Eh)smg3Z)h?xsf(Jv4M1&G%v@|&m{flz;!p58Fb1ZEG&Wuajh%>9{z&UfF z(O=aeX2@Cs6EJSciJg%&w&Rve$1PztX-O?<$>_!{LAhc}mUc=yVEX=m=^rYldJav6 zcK$%fZps|lOSSXUmNVDR^eUQyU>~naQtE3+zZZIdDikk5L)b^k+@TTk0ju|1FD6my zB=i~w1A4*Mu#wy!YV#Wb)L*I0>%pX=`sElN?>Q3N035-#Kpy=(5mQ4paJ4_`8>h#J zz4IakorVcYHVS;Gl775Q+=-qW1)^ms848}GMB$WnpaQkI0>Ko?8i*u|uZmO;L>8)J zily8lEzXGkkw7UUI^Bt$3Sz4p{LP4dEPyhitGiK%E(doBK^-=R-KwU`i1*P-;;A39 zsL`G!v2XxuAS?M$2sX%gF?mEcd&k^Lf{9Oi=B#5-2TueRU8uxJ9fDv6KWIV)HsX3Y zz#G?Qa6eWFS6zF`pJWr*IL#%t6y7?v6jZbteV++OqYc8*I-YeD_0?LeuZ~+ntcP_b zob|wLtOI7W2!ZD`kqxZDdA-EGjK?ZB$Wu6+&`|591O6uh%luH~lz}wfiD>QReF$;{ zZRpxaDABLR;h~=v1Kb}eTs^l)sbcr-@rWn{cY#7B^TAIC2sR(olOL4c3>dx2=7SIX zr8`P+{u~f5nh!1@?F8<4f62NQS}J8atT`-T>m4x0%L|NY$4V!&u&2A!W{R+?@W`nY zKBbyfRw;(s<}IUL-aVhsx`&5fI&on4Ty5R6{sA{#-%j^zyUpcjzmTELc$zY_zx?u` zO=Py+RXS<@8a-AUpIK2GukmPufe!o%UStrX!d11FOjvo?78IeMu%>>ELv3HeOdOWb zV_F9##)PZ2+>9oh-SmT5E-q9-`o#&bw=E6_$TrNW$;&g~2eXOrRLE_3Ah&u<3VND^ zH!DP(($JjL-&o`FGbSooJ)BF2a#5z)hV^NyFt^w=#!P$HqHXCKmK76ie{`zusE(Ly z)R@jw_-J!I7rdne0#%)72l~|uHd;{7{ccQv4$8)X_XH{(Rnw2+jQ%axfkqq*@6Li! z#bN}MX;me<+Zm_s3i#QaDn1rVM`fN6BAW>-&`#E6X1<oiGv6C($<}55nK!?0wk|`t zI$i%DpZ^u&8U5gx;=v;ln5F@?a@vRlrRgCfICJx2{4SBp@fe`SJMqFUG6_xN)g6pW zdmZA^a4BB3#D6c5c!s$&j|YiQw{0D2`w}K;EP?e0@@*!Uhs$z{TxMCPtFpo)0(YHB zGqxrn%yzhrJzU(;iiYV<DXeDNMk&U+a{B~x`W;dxh-97{VT)ktv#0qT+IKggpa$dk z2wL1{EIW!^1g*rPGqmS=K!rBJ>UpQ^?fE7Fz=hP=DPgoDLI;G=iak7wg<IyGmOW;U zKy-EStzX`uws9i6kyxiD-BW>DX40v<#p@lY-K&9~#QvZ^%OpGzm4#eX-XCf)QK2tG zHzAPXT|yhi7!3)<yE2M1f~lbtuQlcNfGbIHgf6ppcuPYKaP)46-y=P-$D*@^#Xv?5 zt?-51UqL#;h1Uf&P1BqgjPY76bRGV~?hfpxlbazp6{2d~2PYp#9$vI(7i+=1j*c+0 zX$*41mfOot2?n_8TW3(CSA1|xqHNuEv}o$G6e#xWIWoIu?1k5#qD!@pRF{s)05psX zUmCdUj;yg4A8N82i~5^;Y%m&);}6(mzy6Uq1UX0e%dA>*kJ+Vu5PdFSV^_OzqLc3Z z+OH$e9=UWzb|dM{8n2SPU}RxvW#pP5iX)tc>dgj-i;e!#1}0$#aU3#Cfmdk^_cFYp zQRA+bUfqy_{??sN;tXV1IzKQs>Xyhh_WvDIlic1Rd9ae*Jyg>jaLAtSS((cj_p71d z#<+0qWAjkwH1LNn5>tC5bwrW-bhvWMdxUzX7-D}TTE?NrkE}-QEGp`cLp>Jm%q32% z2UiDjXP2u-0xJ*#z<d0po_h0Q)YEBaSp8F1<thjUiJcwz$(ltMZP^O*?RcWhxwy9R zN~14f%A6(K5}|avEGDWd<D;Fu&quumz>V{yP$V*5sZnH7<u%#%)qY9+XgbcDFmOIf z;pK4&c5XmniRn1z*<K{Mt=$_#vXk9}pnPc%@|CP#90|x64Y)Mt&BRP%N7Q7bmx0m> zLb!RQF-g1}=cq#}I5iLRDHGH?0}@|Tis&+%sR}{DDi(WIDW#q?lEafeCx=$M!SdTb zc7yRYTKfk3?IQbu0Xu1(V8x7fV+9ZXFyTSk!!Zx0tJsIyzJ$@AC7`3oZJCuYS(dxh zr#fXha|@kI^<{jJ;$ivN!&HH#W;g)31y=SklDfbO_~}yBos|gbq+0tIEf((+O%>VV z(Q4nH?!-A7h+tk5l^-ym;i}}bwIsL7kG&?4jlSpx7ZEcq*o&A^jK&)>(2Nzgs*G`r z(XA?&gUE)IaUB&fYvDvonOk#!9)p${v}lBKvWk`+;_D?@*7;SIO1YIi5D%S%<O{bM z2IHhn)}S{~13H5~6ERrp3G<(p7%UI;r!5A{BOVDhMMN$IPPAqrLJ4_FVz4~8Z>fr; zd^$a?Lh~~ngXPKdbtMmnau+abBkIp?4AxH)!GsxB7?tuEEMLNymnEQ96YF8JU7k<O zrZX0U<?GyD43;nc62)No`nD8<<#QY1t7EV<XFkAJ#bBk7H;%z7$^CN0V0l!&5gUhQ z1d3@=Fpyt~!SXZUcKbvk`CEv=@<ogTH;KV2$zEZRYR;TtD`T)y(3LS*<r!b97_6#x zT`xmWFl==m$tBvCCk88}(#six<#9QkF<2hx&qxfGZ|~`h!SX<VmSV7cqra&`%-I`* z<uP4VOgD+a^4U$9SI1y!&Rjd6i5M)8)v3o|c~CER3|1BW&YBo3PpMOn!SbL^R}5Aa z@m{_dtSXF7H3q8+?*HyFSe|80a}1V;yX_b(58;&<EDb-inU%QOPdfT5_EDZxVJs+= zgvfn9%wVj0)LpF3-m^FcE9I(JVzA<!yqFnPETFuYOjtLM!SW@{#5sL2SRV40Vz7K} z!vij}GaG}Y73LP(SsjDrsdSdcV0rw`XbhIG<&_w$cKf%ua@Fh@u#*utkHPXKOwu-v z!79mJ6@yig^_3VbEH9>E3{OQJ7jJn}13*`#uEyf(sm5UWK6xbu3kzCYW_N)m2&E{E z!SWP4D`K!bHa}}ISia$BI0nntb2h|aO(x2G^B62&!j$<-6ocifJsV=MJTgXumn8<v zBk{-aGTTpK4AykQgPX@-`4UF|jbpG%a#yT)Y0lh2uZqD+A)odbtSW>~J_gI9`brFz zo;7rq#9-Z(F#l<Z!SX<V+G4Og;*nsVLJXD%_Z?M{uf$+Q!T-~3Po6(f^1Kp*6-8pq zB!anl43;lp%v%+MRi5w6#$fq6w-<xui@!uMSiZh3#bEi|M)>L&EX|n@@KrHbDdde~ zuu5{jTrpT4m5=Mz$<u!h*6G**@?auko6kOc3G3>YX!hZ&JsV~p9vP#-%QE}$Nc`zf z`Rrph;la&kAHIaqf8*IlN$!f-hvv+cQ`PJvg?!p)A5{pQ{OrS{`pWF%teSm1kud*h znSFSmKW(!Qk9Z{5r!f2Q;Qr#3*+<DKyq-MYeP#BMUA!}w2<GOq4`0HVw`%rLp6|@g zK75_qn|=7=FVXD7*SDqFhtF+<ubzEq&U}Ecnth~@H=ccz<bJtkA0CxIi;crqc7SZ< z6yEnIlD~x=Aijuk;3hjjO0rj2q?$8l*vcIsDd@@_AmtffsvRIz?YjOf+X0eN={nif zCkMsKCT}}T_9Z!m*W+?JcYt`HKO;Lpe0xvl4iFFYXK4qBZ}j(ch&g+AfOt&*Tru5b z2Z+yZ%Dj39h~~_-^O@KI;;}mQ9Uvam%e@1nihgI!4iHbNQ{MsNL7lE0AXUVB`F4O* zVRWiHK&s&W@4f@Xv&?DU0pj6qdk2VzVDrIOPT|#~bk33;AZhpfl<WXW(SBtI$kuj% z%qJ7p&3AzK5@zC@z8xSQ@|Jdh_}qpETxMr>2Z&afTWnlGa>qs4;WuZ`DZHLaXXy?Q zkKY;H0pe?UWd}(6BZ<Usz5~RUFiG2Z2S`cosvRH|Szp-!Qn~}gQ|pYL!s}~!We3O> zcYt_`ofSJkJT^aTJ3xHH&+rZqU(eaF17sml=9|Z0`4XngU!oW+U+vitgXNJi8oVqq zSRRS*$IEO#g*!l=NqBJc7%X4H=)Z9cR!Q!P6)(-1Tj*6WSSjSw9)ned(8<SOc~oDC z!P<5V*4)Kgy2s{p-M67|aH93w<I}8h`Rh5j^i}TI&}&}@2kqWhyY%%nuf29;_ikMH zdIK)h7`=(scE#}xi;3jD30a%#?m~^$(($Y1!2WQH)}gj9Vtn*QS(KCu^z<?VJy>}L z7jfe*blx73oI*MgK$!F@h;}Cqp_T$X7#eu^X#B%gB9}{@NObTVYQ3VsPL<|?=QvCJ zfZeRnhmFlQ+4Np8Z7n?Y1$O{5ir8Vyp~fQt#}jqA8G*Nw_zMDYiY1QHmU|C)cr}ZU zrYBYN_*z`w!JItPdW=U<GvnUkY1MKdw~}nHomL$IMjOVICRMaKT1gvSeBYEdJiD8h zg>Z_cv{~7hHg{*V;kxujv>8unGk`kfwpOLhp6${G7fu{&{XF(n>)q=@YrA2By(%9q zJ;1cPc|LUXeW5YObrgNAGzLI%6~xm#+5c@o_BEj+$FpPJ9|$mvp<m;>eGf0l0A=OE zSKSH@J_z+cRM~yk2p-1I#ydFh+;1T-zq|3_fXmW3!nk@VD>kA>r>&C`<2>$MnA1`t zQ7`G)m#A)ceWvrBxXXm{bW6vrCQpMPiQMW+hTgAG*hYAu*~Wy$aSFRTklnHPeqL#z zl>@?Hp;^*%f?tQRl_7{^Al#!_L%Fc(FFX_pg=A_&<q&wE8i*Pyhss}u=3K=dE;L83 zo!?G#fagsex8krPFwYeLjay=f2QJ$IedLmzTJsvbzsyLmyFQxn)O$nojHkFP=~RjG zl&TbWynvBy8hSUT8}+cHc@zNv=&c|H9-OP>!HqC{D#I}39y6{V6~T@$^he-B9Q`ve z)8_(K@2kX0ZzIKV3jVHx5nBN9B(f{Jsd#xmS-m0uz4J0&sM6^AWs3E+=z&4$bl}IE zYru#H$mT{b(i5*dEz<)vJ{a0>6J=hW!(l;q4}$Np!L2{8@A?YZ)NzqaO|ZER*jyyo zRMoFk3<B^QS^aYTr?N;xk=Qp>=aoZEUV4PvF6&f8jjr2=yKz1U^;_#LhjDKWZj!;> zFPOprnRk*jyio?XU`l?HudC7hD|mf9UhnE}j^WRF`Vr%Wz#qjcc<~7z&?5NX?kKI` z4am<s_E>-vu?k*~*Zuv?x8M&9dVb86?Z-p2O)w139uS$DmQo=NC8d#W;HDz}9TDvm zQ&)Rb^{Bf<k5VF(F7V=SSMnk!9>-d9ywHKtDf|Khs_X`<0%xV%^vTey!@Z)ndC5<a z8`Cnsla=9pKAo)(|Mu$x54WDTTPnOY^{G(oFZ!h_oxMUNO`wW*ZJ87V&iix#ka@#D z#*2Zf?`MH6drk*_yqSgf#?g0BVVZtAF-<wO3b#8_VZbsv*1DF;gG`KPsDW0yy(9&h z##A`;irg-sxr{n2s)obv`kur{J=FH~8=L9WZVzY#ZB4Lz9DfJpr56k<-K8(7{p>rL zQZ$R;N0s7~A?*=m#z5G^q0&XQI!PZH)0{EFs-%~Bn~yYHa>P^^lYY!bl<5H6T2vLO z{2t4ho7-fRimMDmEA9#vJ)*44vA(oeM}M=k|9)K5^DgpXZCw9>N$O+~l&atj?P8ok z_19|SP}MdE?cz^Ttf99P2c!-eTcFHS5mJM>pbAbus#mZvaO*b)uH#37RN(l0!oR%r zra9^_CmqWe&KI!mVFB{d7{xLOG+&Kdl1xNSlVoV@WZT2~BQ<JuF<XaBPL_uC#yMVE z)kU4*?|hROf|dBPn$<Y57ANE`CpSdOT~0PejpkG(n)ywr(*aRyG<uRse83C{j^j*Y zJOeF`wTPJ)A!6p0Dlzlpb$02N*&59f%=CVp)6n6|C)?q^z-j1k56iBbIcq!IBl^?d z;V+zQhx-Djp~F2aJKN%{?QoCiPk)E6oNR~t0;i$FJuKT!c-D5fNAzXx@IR?x46pra zVp(+S=v_T-e=X@`u`R}A+{Q?cp$OwAj6RM=xW`6Dr;c|ZO&{Jd48$BxF+yj<yN4Ud z!hC?Jz9B!3pVZZTa-|q6yp1+MVbU_$)+%!|PJJ&UI!BaSy^pmj&qEr^2Xi&sXd-3g z?In3PHr`gx5P?11jKK7Pvd3ZzsX8};N2FIHmmT_=wtLh?W_iJ%C6>K8SKMuy4b8ki z>yxRr*1NSnsWh;v`s8=F$MWAU>yeRCmLIL;_|b&KhuR)&p+iR1oNK6UYxFbfI&vCy zg`5dbE6^(XNuSYN6gxJv3C(nDj#TjUk4x#d1)g3zGZge-GYXcmbaigW(lDbzcQ*w! zqK{c07|~^JQ6TzMTOn_a=*zJo9@*=aME@X(-g(k``g>(0Z<I3aNF~#bWK8S97Dzq< zrWJij9WYvCTAh8V8wp>9hYR$ZY%9=m`W<V@JO(b~L2+X=8x_p?$J=Gj<7b9a9&ARb zGUlw#?U+;Pn=q%NwK1pgYJs>@ZG~J#T#V6B+?x{j==PZKhh?N4C}qOIN+ul4n9zeQ zkaiGEs2+8&StA=;aNDq8Q%(t6+*2=@PTHFT6`Z!TT~1p+Gvx4KGjf!1T6J#6Y0<Jo z!b@6q6AE&4--Lo+E~Vh6w&zdE=%+rT)b<>!WT)J-<iQr`N52xC<uVXEkCKfE&X6&& z6GH|@keNBUW?i(Ww2msu$-rYi_+u^c6*<QdZ$@_Ga*2CJY|TU4wKY$i8G?GS89~b! zvO2e8NbQD1^|>ywK5)Z~^+7(&OtrP5t@VKnI<61IP^xy`Ngu3lkELHM>wzVWFiCkD zrbE?yD)-NOz=b{#r@Uiop;55ig>8{Ef*!PC+z5J`B`Mv|uWh$(I-+S^S1qWE$+qH9 zMQ~9wlrb?zXW~o0XPGd9FO{qo3B}*HU9N9`oE;mkXpkxF>7cm>oYB0D@2hh=z8^2M zM_sR3H#t>g-Q-k}b(8B;>m}*aLMKhN6^*TRk|-l56*48>tdqV<vDk3ItB=#+`o@c0 zlSz-sVwW1TWJa2wps*O9e3VruI`3`OiE}E_)Ux(vt4?m&lQgv!`Srkwwy(Wv)rnQv zsuNKeaEJ_eM7q`O!LNwsfStmJcN`n4$>LbOAIrq_I+*!UY3Qmm{x>d+TnqJaw=Q&Y zf3Z??bq7eVKka}%i=7)d|5X=g=-j0YCa74!nNB)|5g5&Or&xCl1mZk0EGi>-6(-ug zhy}+nBtm=#va;Hm{o5DlLh8WsOVJ;3IFvNex~#vGE~Wa@&5;*(Vx@lWM=Q0b-(2g6 z_J_TiG^Zu9zqM$9$ph@*eZ?R%5gH9LgE&bv%zpHT7BgF>q&;^9tgJn{y&Fb?w8#3h z^}cu60_<C{qI$xu#=Z@SZ@R?KA#s7_x&_a_V9#&I^Os#FMsodk`*16s|G|Br5#Rc- ztL0gy_F2B?n0VG@{9GaRJX0R}?=iL0ihZ7mbyw^QOt}Onu&r5F+3z!Tz)F3QiGOw( zzr@r(xzr1VZ(n9=$$k3+rv9S=`3e(vIry9*w|?w0{vlJpY8k)E#E;ykKVs^7`}8#? z{vS*HFD8EI@_n7Dx_$Zv6JOO&esxT2JW8UCcu)$hhCM^e+H+v*y8|0MI3fW9m-I*c zNF6S2Nb&?+XA)Ai3mW5M;ZJbmZLKB8pU6u*68@C2x5%HjA$~@SnZjzdA5Z0NCLm_~ zd0|1`9DjCL<Hpc9JcIv55AhkQ%s)eM>9a)>0#9-7oh-fX3uyg+y8L><ru4c1^m>(} z*TL5O#`Mx*PV5vX&j(2_DOOFd2Lob8uYpo}tvX&J!M=|KrU*(ICZxOF7cp&I0<jJu zTX&r3i4(nX!gmHi?})$bj1z*VtLL2f%eislyg0EdPWX;yJ?F<?UKJ-Uh!YpaiHqXI z#c|@2IN_Oy^;{Z%d3Bt)EKXb=C$5MSSH_8}RCcz-lMjWiH=f+JDNkMko;)w`<ihrN zQi?gA%*V{xfSB<l4<U`lOs_gPw8bK+c8r?ysZH}}fO?;*tp2>YgBCStDvME|J6&^c zYb|fw+$xnN#awgSAHP&|NYJHE2E?qn>G25d+2xL>n~h}9w}6eSfMc)V2ud7itvDRZ zhkc!=7u3W74*OEf4f{Eca~Y1h)~LfiFY%n)2*+XIC_yEx;XrG3dpJrl!x2VT?x|8! z@duresaPB5KNx;Hg53vZsxa^FO3XW%C8_TY)?Gf@9BTU#)^)m$)`uWSCmWezHyH|< zVOR5p-CQR-namDObWN@D$<3b=HS}a{Vvytw9r$4$f|w<Q-Qm}V-wynC>aU-hO7O$B zl7aKhJodC}u6F+4*%_rX3H@jrHdkwA9wSz#rZeX?3ayMFcmrC&NN9G0M|d#L?)q{K zOKUVCcGuTB8Hb8)sJA-)3*+j}K`sr7g?z6;`enKZaLYCI6S(w}j7c-7u-O57xxWJ< zT{N(dv^~1k4?Mreh;FNU$6A13V?J%7kwkXy3^42<Q#CixdoDb$3m9KO`P^M!sv#ax zZKLCu?K{M>I`MIXI*(>`z6#KNNT3Dlp5NbO%{rQM)zH^=thE?djwZ%Q&^#s7J)uG) z6at5(_W;)r6@!Rn8IP3^X(p6^Ks7J1lFUjD(tNSj36N|DuuFjkYA}PVHK@=BLk)9U z!>)b@4y`MKTO{)lj(8Kwz|Cgh5ZnxekEfJ*EMzpwoG0}jYsrkk8JR92hK);z_2CjQ z5r|QOtAG(?LsNe(RQZrLm1m_$V|K&X7OvM(Y`ETPKyDfcamQFd>@BdIcRDiE8ddUb zL>>2B<`ek!P_YHK_xD?4N7RTGqS~`G)t;rL_G}GJ`k1kXNjsko)mb~~01+-nJ8jC# z@N@Hb9M`!5{@m07tH=>VLfShgTK|UsdZ#9D(QoUfhkWBt;Dw*?wCg?r<&_UJ7z$j^ z_W72F9y%5<x43PM!T#Rgy)KYC(<BR_)b>KKKNbLFA=r=Y!bs6=>#18EDKJ9(9~~GU zc;*j7v%9)6O6U+_14Pvy3>@d2b1ugY*^!8T)A6>sR5E5fn2Z@zpv|Q)X0#&}E<%DA zfsSP1m6&ajUUg}Xp-9VU1EAi$b*Swtwb|<h!du``;Vp>`X}%rICG#%^4?wP{rRGJx zR)fNHS_ZEoq!fWr;gL|`Q!2F7pvPJZ0Z{PQuqyo)LBxwt1;sP1;?7XT{aS^pe$@pI z|3$%nI;z&&(q8}K>&aAncc|Fw-mEbh%<!VDG4}?TW~);HJK<+zj<vWz;m0(45#zlZ zLyD!#s+b8?JfZYbJ=#znz$nU1EutpldP(;MsejB@-<t9EEP9Tpcs~mCgBkuh+@!ts zP{6`^4U-b6FEa73(B65j16aruWH;(fESN__X&ZiY(>vUPP=c-AX{tS?mKzch2=6U} zz^yU1KWRaHlSADtm```W+uSw5=<C+I4iEP<x+fZ4lS5sU0OIE2uJswSdwGBpdIB+M z1lcz+X^uu_4jBeqh5=^4V39%?bQuPj0V7D7q2V$#n4!T8%PFlsP}Wk(Xf~PHoiJW> zu!Ic?$3I%9z(kJ#ZS}nJ-F#ZXhe|4d&XAJxu4Hicrp14=w0IqYZk39r=_+#gLd@ZU zlzb10=Mw>{38#*t$87*yb^tgc`cX|rLmlFviSq#vL}|6ZG?>)&sZf_qhIFe6WB~lc zIpQ_!fBgOR|LI0T;^C_m99I9~3vO^F8cxq`9gU?7jdZGdy`gd6V>cQ(PYDeW<Emn} z*Z>r|;d22eGYRUjopic-KetB}gC=X^GG)D>!~M8mVdF6LV8!HhHW^6SY;3Wy$yeEa zCSSs|2TLGYDbW#=?TUONAsns1L?U#1C`#sc7!y#@ixGWc5=N~klDvl#23KfQhf}wG z#fMnN>wl>Vy)&R^EZ$|dKh{}`{i3rsGyJg_l`!z#8Kk<0G+KnDMLncO0_naClCE^g z3Oh)=NAp)M^ZulqCxk05aZDlWSjrW&&)9htobg1$8M5zaIdDeW<A>V5gmDH-U@v3F z85Q|5&e$6<!nlBnUI=IGi}^q}V{iP%*oivX7|ipEV-AkBMACYyY|y_mG|YIV+xPHz zv4=P172ovDxNcKkNg-8oUEDOZG<8Nil(kN|PC_}5UkTM*t_m*rqtnZEb7fq&p+52@ z3S5_R=VZGgpYV(6BhxJ#=p)luvGyVR>=E8I9vj(~KJw^gJT_M3F;yF0izuUnQRD8= z(2U1Q^-(B#Unu&NTDO6z9A}%nIPsypp#7;TdniCMBu-A1waHXng-~7_-Ud{W$-t&_ z%xVqx{)CrgY}0UbBAo}C`vQfbEscYlY?tK|h|*ISL8zy~7^fqWGn$NK+N**1Qvs^Y zUbrVzpaR;4ERcda5<uDffG%k?*zr0s^hWEb+N{hlCXd}>fck)euzryllkvv)bcDSp zAW>ieF2M&{RR(i^wx^T>$OXm;mqnc5Tn%tG;0K>{HB-zdOd%06YhhSBkPKIc+P;Kw z1xxI%A58L1mgZy51I85xBd*xT2_I!C;fjNjH|7doyKx1Z2AC17y<igureruHt_jp5 z0as%XJ$nxeK^Q8HarcCkEAa##4197>@?l}N0S?$FY!M^i<{RYnbV2QCsM^?qR)Q@1 z7v|-*@!A`6`;sQy9pIRII1I{4a9`9VMetZt0_wg1D$|%w&y}gY5>O9ipn?Y7Bh`AW zT(SzQM>9~WLM5`yb5(P#YFz$6Z!|;L%zFo~-9;3qu&%=hC$8jpL84PLTe|s3B24ri zHCO9?>1G*DQL^iCWdp3`*o$?(fOdnkx(<$OxwRa1nJ?A-T28|+<>-+jT*^7uEv_~i zekEtAUR=pp1kb`Xj_Mp+rE}*aZI8VPHhnooNfHRwZ|JDZ|9WSDVJkVh=nTh6ypjW- zH>t2#H>t()0cNQVv8+yf+@Q{*S)F=zh}8-A&-tLy4qeI7Md4+2-C>;&D_TnRqPuQ) zT{<Locit1KIrKUS)=^j>106k360+AHjflXe1C{T0a(OyJ+#6~*tTp&kDy#+)ZOySx z(3U|x&IAx`1)<s`M)Cw%&gx#R=Y9#y#5Z=bKM*R}o|FB-03dU+uk3`F7B?+%d`tg9 zKpP$SncX8tMu>BrBOVuF8ITxcwajI{kjN^zJ$9LMRmroY#@0v4rQrQ#&mS))XNyU= zLw!+t+LNL3P}}1YOCFVhEd#PpG{UI^Ixv7Ye$9y=7-BMjw(*iwA;#+l+AH9KqZf>p z!8#mZc{eLLay4zwRLE%UQF&jD+b{=-k!Eo=YC|l2!h|OytG%0b`J$ni3kZ@gdN<=; z@93I%XbDvGWXfDiM+3$-<n6R6t#oY>T%a7K7>LZ}lI%Ow!0qthz#1_)dSQcdBedBR z+5;JKeI8nB7R)EWW>R2}WWcCo$Ph(PQCeE*(}A}h4WNv-)WMN?jUNjcjUSkiZS|g0 zu_v(c+Y`qsg<J`BLak2(V8(@<#waj|NKD%;!Fw{mOXeByUW31i06mcmKi8W9zxQVF zIN31#!0RUq@7Dr6Yp?ku=+_M-EOjx<ZinZoQFGVmDQeWkl10d8$~5X?ScE)d8a3m% zLv4>srA9^fhFPhuMwMt(<IvE*lL7Q*8a0*d4A$WQtDsS{5n?K2ENE0eD#*G^<kwRT ziO<nH)uhVR&j07NFg2<9YqqROQ{8ejV7Uz~nvFO2X5co^qN(C5(W0Iu47qA8Y6{(t z7bRLW1$GKr)PpK$(WP`$eJqe8(V|OE>7R@i^|dBibcte7R8m{e%1;L55-kdN+tQ*b zeol)5-nO);hiCYi1J1Olk+8W~vQQ^l^e=a8!7hbWdU*$anN><BjLab2>Oym&M1L+O z`je(wbKxb>pBb;=G-`*7@tQLmgGDNg;w(1}=_t{kj<7y#WHNxZp3oqw5{opI=?oUm zuXbn}7wgh}HXclcjMg5PF&YC@KPrE@cBy_eooN>7j98z_*Dl}uNm!rRFo2_`T{ALs z(HTHyrpHt=>oe1I_h#UNrgQd+xBBOt?l5SXs>31733BDCj*I!GHVl-d!_bK{nH{Kt zs#{D|9S&P|8532v=<3+Is+$eK5>>ajEmemDk{xo1ssp@jsJh28cuv&;-ZoU-;{l$v zS5@7LsX8Me6iYt$7ghHsRCSvfj3=S$=1WxFryU7@s0U4os+)faR9(hvIFQugQmN{M zQJkn#C8+o~UNnApgpE|42fdl9OT{pQg(FNIngvytsqU$ev7qX_x@JgMZWfw4^Clpt z7Rt}gES%e_ic_)#u|FCx+J<_|l>WULxDC|XY|=+1>dn*DkgHN}X%|^KwDX~WSV6sI z5oZsFjEQ<%aOj?ldh-oP)Z4-~)tiTxs5ijdmU{E>3_qvd0B>9B&BHVNRJ|>mdNUF> z=d0A)^L<;h<gTP8hhG#n)Qz7ks1<EFtT|*W0ZUF=V+FV7_BbDFB_6_LY8*QZWyp{H zhwJIZA2@^8)fTBR_^>-8>t<Pe5O~Fzo>?+WXj=pS1fAICXIV)H?miMKc}f?<HE^A! zol)qmisiKQ(X4cEuz8<~Fg-SSq=oOz3UkSETRyA%0x07idhrQrz37_p6!4S4tWEc4 zuzI~;E`b)n2ZBBviW@=IeRe$U-r0~bQWsc6io17}9hqp4&@D1Tg<cLwJQiRZJv4j` zup>TM*&gu618@_4w}gM(9Rgx{E|AN{($$m)p2%Q1H3C#OQ6q3Or{JE<z^N8F0mnUu zK0~m%R<c1(jHFLdi#Q``<K;w{N<1(jT1@0NG5oj<fIsdP!`dPk(M9-|D3s@&h?_#; z<=of`;FlH`4RdL#a5UaTD~SXTXLD!CN@Ca)rW;zY!W69}E`YDx5*ImaMu3AmyiQ8Z z_akkOY^0A;?gWG|Unp5g^e}8Ck<&!KKZ{Y_T_LD@#)*PkgOj~#nLv2Q2DmJ%@o2!> zYSbv-u#U)0qJ6rKNFxD0w^UT`2{5eX8lJF{W}K<Wxa=B2YE6UE<lRV%&&w<1ilnpc zvPJLaTt0|~)AqL+wCL4rX9&CJLEze`Xe4kN#l$j`qlZE}OvIrB31zxd<Y>Or1zz)I zTVKw(mwDy4RoAT-tVA17p3Lgj#m-fe1gEgE_&3~n4HkNvee%%kpzLh2$oW(NzP&}x zUk?DXMb6{hP#$qO7gR)uQ--RrU#D<cU$R{I?)I|N1;%95T{t}^$v07vFFh9Ta7DfW zC-n&OmB%_ZFrc2s9mCkZz%3D7+{1v|K(KRQa!95J*r4DRm*o*LF<KfM7;uUKkOZW# zhXI*=4(wp?Il?A}I0v>c_#9yuL!1M97<>-f#^B+PMBhdxh%fO`bR~E;1~eLF9_4<B zQOoSXjYT=em_veVV;JL6j&bG~Phsqda_nJ_J%Jp1qi=f?bP?fHr0%{b^F9JXJXJBr z{wT+O=GdR+I1uGHz#IqC90#Ku2btp_HS&m#n0;n1dJ&Uh@^2Zq=uUB}jq5*f`}yQ> zTGkqp&&Wmaa7E<x3y$4w=#$$rRzrx|{)F)lwS5T_5NCJnkJJkYv>(XZ8&hx^8x`!M z$pGpR7Xr#gkA~4t;E3uC>dYkNz#Vd6R2Ron%8E;kfb|qggpZ5sASSAI0~+rMXqcK+ zk<V{_xGUr=C<o#2{SZFz6)?v5PLT#*)j0(KDI_#a7z>Yh;R}Gbd;yVM;jJVS*vn@U z;T85uGJ(T<CXrv^up|?h%x4l27A9MVxxx3^fz8#bD6d1<NmaP>M56sAmWv$ce!_Me zaNJ56$LU$+W`y|tHZTwP+!wtch@J<DbsF+N(e@R11{H<?Fv)M{RPZ@H@O-+YEc2xY z`MswiUm6I0S4lo$&u|-x&C3cAdOi@|d%I==pocZ~2(f+*VXpCr&Do?_=4jGMI&k{~ z0n#H1NsV(Cg0JP9RflyyO8=$PIn|~)w9vI3)Irca*p=&loZw5$tl8!?&Z~9P*Ah;V zD55BQ7DqI7$VFtmFdkuEgB~Tjz7DrN9NYD!)-EUyDdn!OH`sQo&wbZzx0;5T<GGNh z5456PU$eA<OpBC-L~6gNw)3-g4U3ftZ|frKBjZRrwK4S3binvt?IX38p%^_<_AH`d z&mtQ34AF>`Ag#mJe-~plAk?}j($58)QVn@$hL48l!IJ_CIum$rBb}=p4dqM}`}+Oy zFWIRh_m<?Q@EvSjhi#5%4^+LVN3`Yt^lwDnJ4>3v<emrctZF|H_Q6nviIL7V(m3pg zLq0=XEN^0ybgN6UHhk3(-caFV0gy?Xi_S@ceKq7*+2i6OdyFI!{6v6h+|k|d53I>9 z4R~+JZB0S!vT|sGf=jX~DF^&|fMSHh7PeA8--I9^2!M<r94U^qC~z@(MdqOTVHB%B z&ltZn23fZ$ewpTwi*Bq^O;AkdcF<d(H@VT*SZNxqChAAlQFNffxfSf~|ALt^ugsO0 zTbVz5`P_WyVtzu|BPxuC%jiK)Xs~H*FROcu5EWcD+4iW~!52HI;_~qgH#xXAd4bek zbi;-WM;?K|$kU<Z<EoO>l^+Hi8^~<@@FUlqq2QxhP$!a`k2g@}PkbuA6!7<y9|BTG z1MKb1Bku|TvU%hSoJVefoiMj_k?c0I!R1uVRNr<T5c{qh=4s-tn8q)Isd&G!Fco`o z)Oz12tUGYL>og_!MB7(!pAwwd2y?nH@g0C}95Rxa_lHAi;}CTRyS;p#B^9aA7e_)t zV-R)zW(8AqHXRBYgOIbt?=2cZ^Xn~YUb<FcvO0~>$UP8HO(llFU7;p31n7^I7MUS% zi5UV9{S$Uzi|XOpfv*)4k%A#WES##`G8Xq`Sf~a>?-~{`4`dViS5{947OEUSO_!>k zuM$)vl;Jflo`&0WtA0cf-UYDczXxyDz&&>VUW3GuQ#%XpAI^?%>gaBbOtBoFyIKwZ z47%z|xJ#!dU82?+2#I=YaB6bWf9q+DhHt&Cu_-thT)A_jTF!}TfnlVz?1*dG8Q0QZ ztmVA8mR(Xy-2u5Ms^!9{7MNUG%lUCFuZnBApjgYraV?ifE#g%nm9B_txjd>x<~hu8 zX<W;z<615&)^cTB%T-cKckA%upX9L{9jK)>>7E-?I5p1RzuP^aUs{J;0{zmOa0%&` z)|5-4Us^|80{wzRH)@A58OPxnwL5s`MGq1aldW5)hia|6T}IS@mwQJ2)9(3B_rUt! z;}Wd@s7q-5_qZhMzt<(S{`wuL8uizS$3&xEK;a>m7braFo`J%Qd%n*-5QY0)f+#%T z5{kmZE=d#~aS5VOZ*&O?_^T*%HR=%+o^*ME!V~TpD9pO&N8JNac+4e;!s9NXD7@Dt ziNdeBgrd-GD0C|d@FO}D_TqeNx`xspH6i4=QA_0+3S=$zGzI<Pd`{vAz!kYPtGI@{ z;hxCvB?BNwr{;;^aKdtf41t`}$si@Cvto<KQitp)Vv<rf-RbQny>%G)7f!X2Ji&0v zP6);gHx3oEn&gm5sgA@LlYLdK+a{u8iTR$#6H|(Aoxt=H=XF7!5g&i{zL`)S7Z`2G zXo%1(v_u#?rvfJT=#Z@g(}<s6N!M_$1&t&QGCo6Z*e%Y^y)_?Zrh0UfyRG*`iBG3| zkbF<T#RkcAc)Hn!r!TjiaW=;ZvTGr6h-b?@LCOu1WoYR5bQfG@xo@ej13w0Q5{C*0 z=5g1Fu>;dxS*sH&hZ=hV&oXDWXPGnGv#8m01NNb|ufPl<^>-3-nOzoobuyHk)m~*Q z$SUJ;K@TXDJRC|srX|%QnYycRjgV`+;ikSE8ZB`>Vz)G`QZb!0QFgPec$WW|=XUm; z<Y{a{8*Kgr%i~Sbx6--v5UFEGww9fH-Y%YXf8j+JUov><t1r9!iYu>b3=Lm>&1+tJ z?TF`t=6Xrw+YcQ%j2Et>ZdnhJZ_~O(vt5HGK~EfO%_FcSaIPhUKin5#5SI|I%I^9J z=VLHY$7dmK=s{d-<WPA)dvG^U5hI+ETf+%jdU_Twl^;=m6u3|gK%9&<RB!!TN2AUQ z?0LWZwK|<^*IPBdx&g0Vi(|ON#%W8g-FWpHg##t-H3c*XG^eze)i0xkNOJ+V1^v<F z0p3^l!+l<#!o~BNq0xOiE}yS8c%oLl(S64qty_;w+&<h5ok!EF!3P>-@*p-I--v<7 z2bym3i3XiK(9DyE4w!WO4RymU-h<UC60M7SZXr@#t*&>XX`J{BqiG^1?fTR(j`EVt z6Hu`Ap)OzzyoNA^>~6J{g2O1$K+C(KkcWDqTrvC(^&#0aJ+!0I+vt;1$}UB&tB`9) zt6S37B7LRO3q--|`jn8Z(K|iV+q@iKadCpn{2ED02Np7;njJ)cN28DBm{RChqrhb) z(1~5|9aD|I$stT~dVpOWr0s2WPRRN5SEAUZ(i8ygZeE1sCH=@$YjsWw)(v?hh~Rp- zZb*4A#vc--IfPF<9hPfG`UPeXKXwYW8eI;e9wbOf(9BPhJ?u!|vbT_*e1e7fl{=3C zGGNbv{ofzhe@ZVd*JI*$1jUz?`CwLNfD~+ORAxRaBS(L?j(+rpsHV#j;rvi2Wo`p{ zc4Vj!;Y8z>KD8?VaHE&^X?!>UFt>rs)mtzArt=?@D0+feAj+{&%BoebuF5@UG@DfW z(Ez}z6~m|XXZN_n%2@4C(%OYk%Bocd%$BSDSO8$v%DpLtBgImG;m1Rn{5Y{5KNYQw zml>1A;R8d39v5Ikg>Lr1X#os0u$Z2{JVtQc>0cWPc${T(I)wDliSLX`8492({YYTX zG7#9aj05&;!@x`uXl3i2p~olN9t#@<iYH$BQGj}Qm+A}GE!6*VNFo*f0KN-nt6Rk3 z4Z*KB`|%C@TW@tvsYQs<U!)y69LF8>K=ne|(qP@?ELq6`#RV0hU%IC4BcMRr5?X`W z*nFF)rzV<N8J5Lsw-48!9_{ED?n2Dda5n~q*4U9&*AWaOI1#W5>bGl(>W8|^)*XB? ztiwy$+wr|08E$1&=b{<H&g$-!!3bsyt$tHZvh2b!Dt?VFE!9pN%fx-5W40#~_Xhx5 zmWc;LnM@`Y-vF67FFS*%C<!N%g4BGhlNMG-hdR4?JT88AK&~vmNq8KB<FX$Ou)>el zSoWiNR`}6Y%YHQ8w)`6kBE8a;%k)nYnI5K0uXKCo=~{Q<%{<ihMa)2E5kw%S87C_; zu64tf!ddx^P7VS~5}+dQ2Hd;0_=x14-o1=`E8?A!cYbwDH;o=Ayg|<5Y*0~uYPwD} z70`Kn;OdT{&T~l_mNZO`i+$vgV1O!H1>pJ)DZgW=4`QC`=ObAK4XMCGysc2(Y=E!C z*bM%32LGxe{6!(9Z_l{LUkSDu{5v!FR~890EAR(MY0S5%2r*mcY<O8d;LQXrUipSN z4L)fj7sdRIk}xXcuahwI@KrnDHrjq6H8F(iU;MX8^cl1-EL-@)>f!|R+ko3$4Y5t3 zXw5(7Kh4)0JJA{b10f>nPIv}<GKYyWdLw3^*5fb!;r$<b<_q8Y<z(o8AfwV1MJk;z zc7h8-7_rs1-#`NC!3+}2V<6`F<+!lC@6UAt#`k!p)cX4GeCLtB`qc0K=)wf}Lm6=1 zKo)WPngI88t(F1*o2S3=gAe@q?47Ha;G;QV5Pmp=&fC)rbrVLDok21QPvge$rrg2D z2@GcFLHjT%9m&)xFNV;VvgPjEF;~L7+3pGb1CEn!*OV6WeYot40XB0icTW~O9Q;wc z-REDD_LHU%>$-Tqn8C{MEtAG!Bo4%Vu~0^^asVb9JRjM&L%VLSj{2<Zf|PadrL0Rt zWnFIWUE)uBd?}h2IPa4;oZpxA#ihlb)@`D`r)LzAf?g|Bkm|MfXBF^*kBCp(0@3s7 zbf~~9whb%zKvn@}XmJJW!uP&{6Ot6o>^0kl6?`zOK(8DTns{~vSa6?kt2SZ1Q`my< z5lCqK%9LY0X{eI7jR`MMb_Jz>T_WmV69HF78C$@#!FrSl&q6am1|D}p#RQoOv(YQ6 zRxn&befEw1c*!)`=yd=*o3BAZ^Xn3upbxQFNY#sxSghbkIA&V_eEaA`!jeUiSeCw+ z!=eOc$Xd{v>ypL%OFqA}odqNEIQCyu?pFaotGzC*(#nfj4|Cogsk;T#ThQ-STKRV} zNW7XL;`TXdfoH~f0w%$tiA$wc{+}6edJZBqX9Sj))#)<em0I~z8FXF|vyoOtbzm*& zH$Dcf%v8|I2qbY@c?~k5>;|oD4`2{h1BIQjU)$Jet<$vfT4&6DD78WqJi8twAd-}O z6-1)=-Ep90FLKm@xQH;7D<3fy^JvH6YzVKD_w)6l)aE`q=8f_ftHWuD{As7R-68?) zK^Q`XLGt&r?%;em>g>Ht`M%!6RMFflfKS!(7c=mBzm5kuTBvNygZD~#L-1e9z|%Jn z;oB&HAMxP5O5PCs3mJGlIk2dbN64O{wgml#a0Ffkb&Nzo8w*WGC7%`%j?l-5AB^cW zw`9@BL<jHjD!2_1NL27alY};STLhpD-p)1f0<2XM#|5Jwj0He+>Vd%j^WCa8_nY=T z;8<TX7Fltw8@4bY?=#iA-!ZQUG=k=_MC^He#$}$cLJ>8b+MR|IS$|;ft*G7aWWA`n zw!C(11C=eQ-9ODB(SI1R+qw|Z13rNyzqcdPs8a2&Wx(kdiX`#40QZu!RtCIM?S40d z&gIvQ)Gn%XYL|~e?J^bA?i&2dX4Nh@V|aN>YIhaRBBHQ>-1ZQ29ln6kBDK3B?I%s4 zCQ+4TaLi}PB10_~%7_d(01;~uly==rcTl`bQr5k<>~U79iZ7-ybp-E=^^H(@{<Py) zR3GYGKUKXy%DRMJwy47w1OeaS^O7to-$Dhc@?Fm=(0y|r;;caQ>^c`J@alKN3jQvu zK%;7X1=Ga}W<mvC0dH8r-)9xjg`ILOz&Z`AO_=Ty?%?~NgqbR6;RV5FR`a@o!XhqV zeXc4>S=7o%HU}Wl$McW~vx!&nm?-2G)F+B~waYZ}YFC*?K2dK-T`S0D53zKJs$K31 zN_oAmLbL?<_R&d(C5w`A9Pu$E<s$M+)0TjSOb=bMn19XZH{HDG@@tTfvi~Zb6!JrQ zE6RED-QH1W4lms*?U`}~#M+W_KAb_~dVQpvmxSyd@G=48`$}XURVwGH3^<qcBU$B1 zz)@WbWxy+y^N|d?F8hldu@V7}Djb{hF>p3hK_M^jsAFXr97@}eqMIsY;jk0p8nZ`S zpTrh{tx&0O3LniU#zzaqBN<^5qEc~>x#WcU$6Rt!9c0=CYsf6rbIFMz+>wmwpMYAc zPY#_6r^o}V^RwT2;s^iuG?szS6DP^gF0f`-W0&gPp4*4<+zLd6I7KOjKQ+#itar3N z^!cZbKlJ>wGuR2CZaK6Fk(P~~iAJwT_b@phqPhbvxL$?dfBSGBU+!p}+t@MDIEVR& z<tnh>$+Cf2*cIN#B^7sT#ZnDcdnZu#4)0?-2&I5E_MKQY_7l8`Mqfw>2u0(L#!k*x zSRR<vfeDxaK15!2wS(yGY@FBFiKf$++07?jd<FD?au1U1rCz?q8Z{E$cA|{Z_czPs zU`l|bc#^eD5hNvx!aAs+*{SFJqk(A)F(`y6tEnPgt5}2zAf9HGtOOY(9EWh_CF_!x z143iGgv~T4UjBTUM?zH&^XTzi(aH%{K5pzdsb43!up+qVM6%*Qfou-?1&1_x`cT^! zh=`Hj{xDgQZ$wGPwvWoAhyvgCsT}fcpH71Lc0fgvZwENSAlMp@gDQi3J1E=&(cKBA zf!M;YtRf5k=R_8ND0TQlcIky@1i<lU0<woclft<>IC_zBAb|Ko5BSc4TtZx8k%NGe zTZaZ%Sz}<L(Qm@l7>Ke>Kx!eIU`LUPNH$T5#SzlcI0sDLFF7dY{Xx7Ykf$hX>S4db zNjBpq&IRwg()7gl=K?6vp{R;2)2u^%5K1J1972Rbq9Byi3<7f)B%$}e*65SH+x*jo z+VKbfV{4EBY6W{drAPXJKV_1(FW=RHE#86PW;i;*#B#7iK!_x|l^iBiT-oJ~WYO!x zrOXw=8$=)*K_2m_-v1zt@(Sz&=@dak8fGiyaIiuQzcmOk+!={sZG7W@5YzvQQd(G@ z%-1J%p^^uV=f7;3van_uC+N(uP=UFUu(1~tDW@x{Ip@O0=wM7pe5mb<n4GKk$}S^> zrA2KA_pAKf)FU_<z?t=vcwdgEko<s=_;C(rkP=5rTYBGHKXfROhvGA1f?OrQr!wH` zX7SK&BPeh6!%38Z4#RW;`$z`6%*P`1HC1>UEfO(V@kB90-FPy41hmHh-3twb*C%kt zWS@Jaut6D6_vn%dbHI55(G`z~E!820O7x?w!*R?<ZIo9)MWq~;;24(|X7}@(YAWQD ze&<=gG6jt1{Z(G!2QmUA?um7Fm5!mCt<`zvG;UJ&gzu&`=@;Kms{{-htZ&6D{7{Bw z;+}vH6tFz-<uc%vT<~xPz05r!Tri*mqPS$04fqHb0y`EMFcqv}IB3x;!Yx><P*#{l zZefqvTC`SYg~ZD%4p(HiasW=qGtS2=qng&OB!%OR86Z>uZ4c3`kSO4-%PU!2BAR0| z4;OrUl-n?@a|#7+!zc{{Pu+GAx1kL*-Ih=*vN(SAZt4ZZTH;H1Z`?U;%XY${TbZN% zM%Forqk_KdEph0FGDzx?@Ekf<WTIJPqWP_G=!Y}l>W%QgXNth5%YavM=tnZ>Wv&R} zP+Lt#bxu+7F>okTfkUHp3%LCqV{XEs!jDUCy<(}bULm}O;CoY&O44b!RJOoEq65ip z3!RFHaj45H9O@DYhawv5WI6O;IfEW3=g;=Z^5<u>u1S0dSVGwndoE>w)P>+VXdh|j zRUEwWOz)QwO;xkEOp{UW*$i^xKNv4S9?KzDGUjs`=rZTQIC)WK^mq!c10(_`j_E*$ zCb?CEO*N%JJjjR|ed1(-3I`m*S3NQ=qW1xl3kaN;@{tAf$wqA<Y#S)bT*guyyOG;c zVm}vVA3Iq?VPcUv05AbgCmGPLM3B=2BH^Y9cnbDUKB3o^aFSu30?db;rvNzag|h(Q zN+<f9RiMT&lc=2Qm(KDzmB;uYll^{12-#$xGaNVB=M0CG<U9lIVj`aD)65@@=lKX{ z4byyV8!+i$>{w#(em`(mG_mzNk@UDH+#wx7kXZ$42(t=)2MW4B!DbeGXH)#Sk~njj z;;-I#l5>mN_{RS*_jsza1HZ!LBMFTxn{y;Hj<T@GBr38jCUT1*k>E`?X_+nwhHO7W zW3bsVU;)mIY-~=4V943jQ*)^8i&!7B2xFGeN9ySZL@dX+cV5FC7a^5=UI#9Pck0AP zSq705H0)=ddG5QPeBa6o>RSylS(5>kEyXu3*%&<?+rNMD;@3a>)W1COkH45G*~1y| zB(@RbK;*J@#zg`47e4s#^Z)phsUvzOMnHTjgPp`Rt_b-&m7vdASpoLD-@E?)XFfeS z@&0!uh#$#-Cqa$6^ivYl*cL;eI;at=4LU($V__S^=_4A}B@01~`wKyh`wKyh`!@<| zoP}SKehjrW)jBrgv|SR^2r~yWEU{fr(Cd-#PSr%|zKlvqP$R?K3S3w<S-wAmq(P0o z_tu2Ry%?+#Fvzzab79p`|3C&j32Iy^0$(lzUOC!7m_aWKYD5)oxaVUS@0kh%K0~%_ zsi5uFZs)ti_yfm9fsFHA&P=p^TlB>Mo1|%XPln#-3-Cm=cDo>LR<gFSDj~^P9C1iv z!KGXsBnT)yUnnD3IRJ@CdP3LmG%i!huB$gqyKPlhUe!XY(oAz1VUq~OIYGzs1g2%e z69wQ^n(3(w_{PzRGiAW5RMW3#z&DRfWDgZEuhdQN%b;%(mPp*`Q;-?)3G_zbKBl5h z<{fXsJD8iGh$|>P?GjN>yZMZjk!%h?G}$I7Ozffdz^j;(t5M0BG?b<AD#Hft8>}TV zprsscNOEGm*6H#alP|;$fQH~PA2Io=#gVPMCD?hiJuvuu+;%ef3Mc5Iz}F#kv@415 zI$XmJ5mdp9q9x6xw3P|_Gg+S{frjFoiIrKEru^*;k_H-jO}QvS;H6@L${dZbQ(`xs z6n!ECo&*}wuMo|*=E{IqYRXS$(8~f1QH9f#d<?wGly(Dgm=iaWaL<~Xq_?|mk`CSJ znFxB&e1XP9nCx3IW1=j$5Ns1M(X_N#$-087gv(YLz2!CKYCLHtf3yo_CWx>D5Xlc; zo2G<!fG#PPJsxYy<1tTEY0A%KgiV~*w-tKrpmIb3bd{cbJ_DV2v1KmkneRXe=qfGw zdl~2?R1jY4$T+mQeF5uA9r^hTc9{<w$K=@*9C*|7%>UzM;5j55_ei%3ArUx-d|E`h zRv)8|_1<vg({n|&V4@VU>})!52Hg)cFxH9iLa7#<0jmX_IOAE(*m+F3c^bKdt*3L> zQ=6_Q%RZ|5?YPs35{Bp*8L@~($N7j;h{q#^c>L5A;y1DmN_^}M6^0I55DRnl#8O|) z03|N=Wuc1Khf7GZ`x*jgV|Dn=40hsSUo66A_)!YGQX76N177A}M-7fg`4~8psh|xP zFsm>F5J$40t7-pjMH$X@Dc87Tp2rfSaWvM1v(j88D7LnXM2yCIa5UkbnYe(6iWQDz zg}9m$M5L5cf@`r7T-u5f{C-By#3w#o?5wtRRsndG8vH>9JPF)G{0-XS_23Cg8(tKE zS1H2d8So@%Z><RYcp30YRrr?~^fEU&U^+e{?!13nv>e|DreiAVV$7z6rt6y56`YVR zH7HR}n^tsXB%4blnz1djWC1aU$3!*GLV4M@ST)Y2bE4I{GWRTWmmoUZ6|=YS?@Sc2 zw^CQ-xaO4O3<`!(e#XPMk$PE{FNIpj=*-2nQ`e6FlJ!~QKVL%gX)A219{)9ilsM2A zg^*r7E)XyoSN%jA>&F)};E4}?z6gA-40xr2{C_j(Wo~p-;TV^XfmfLd3UUsM#ik$; zF4hpdHr0^AGpiv6Z?#_TO$WWeIy4!flu5l6DPxc3P**}P%ThS9xTLw%UGl8<sXJS> zeg=H&72b4-kt0<RJ+}p)x`fM-b-~0q$+i$YcY-%(smx$%o4RD*`|i{wOK$VAaYO1? zpXrW4Jnbq8j&){0Db^KYcKFgf>(kv8Q9Iw}xo*i_8QmTHb&6{^z4hYV?Mdf#j+O!7 zJx-PjCMxm`06!V7FrCArc{2HEK^=U=5kF*S-uA!)B<!)(H+>5UtRGqfNC~SmTWb(0 zkuFI!kP<19)Cf`@U~3d92^EoVV@N^G3(T%tI{MtBR3<ySk*!NAlbzj?Vr4=dNwG2s zTa^?mJJ&;DW#{=6E8AtM`Yjz2ScO7$sqB3BK`MKdPqDHKe2SG_=u@ohBA;Sq7yA?| zyTnpB(QnW_N@bV&6v_B%pJHW~`4lU=+^1OC6+XqvuJkEZb`@41!WA&GZZp>d?iz?< z!m#erBitqIRS|MI?KsTVH7F4{1;oc(rf2LQYWorep4^l0<YYy@y*L|%CuBM!aE#63 zOP-+_CNTDrM|48rVm5!X-r~TVJgbvTOL@Z-LW}c6PCDHiJrX&mFL`FCGc1GwSe&PN za*eamXTh+1$;i#l#t!38zTsh^2r)G9JV%r(L<;vJq9ts|oIIfv0i5=Y2aqCi(^5Q} z6aku+;<2TO)3nsUkgy>^@cdI!M8WfDRFXndJaUyZ&=e0{Rf%Oeo~f!!4NUR4Rb6Rd ziYKw^S}s$4Y#`>pP+ba04i&R!cXli@y0c^XET@ZE9ywslo<&VC0}mU!U49NM4=vN< z*`zXBXWU-KAn!iQ$>ZBZ_JK@4VouLRIOwj%`Hcblz7yYtNQ&$zL67i%(%B+g_>A+> z_|5^vBaeW@S8#8I{(bg5NXXVMI;)Lu{138qa|eE%JSHjn@kCBskL`cF3@trh4{T)7 zk;^3ujdvvi$rZ2WvMw}2A-CrKfA-!4PR^=I8?Ro{X%a%3B@p)Nuyt6QJxY*txy5Y^ z;DUQb9f#3TnQ_KpW<ZOq9m3M=&1$nIEDaG5gMc)9K+qtl5kbSIQ4yjdL<ISs=WO?_ z_pRzqBJlbB{{PMos!qM{UC+5^yXT&J+>f$KVc*&L)X;OPQN{7&C7TKNwK!KRG%_x` zzZS2ap?UMTx#P*8MKR1|1j4o!b2zQ>#Gp$cdI1kKS)x!led9UW)67EtLS^x@_scyk zg_QZnr~Vp8*_O%fEiqB^A~qm7iJ)`kCHl$r%koW;(M)1w<tt5{%{>#5_J|up)De*R zbl{YS7^*ci`fK7lk%2?UW2PnHPZ<T79l`{dI?gy@&)jOPvT{c1%Y{0b(h|yHqLLa< zL@ZZCNRV*0;)IzqQ)TnDGVVCllx28wrt(zwtW>tDWpz^p1BMz62H%Xtc!$5ebz09> zn2s&r@4)^Pq9Bf`G|ivXQYkY9)@FFJ`PiQQ@u6Pq<=_!wxwH3jWg8A1v3+7)`<1Ro z8?3D4ufSawQ77+-qSj)+a43a&k-B7}(pWA@V_BeMVRx+E?4+jJQsGNe;a7K;l|VoG zTDE*yDr_y&PrjBdFG_{2WxB!FvgO68u(eEA?^?Eec`9rz)0w-LEnkreTg!CUt{v4~ znaUc~Z8WxmWz^FR8lu0BYp(Y-UUP$~QCoA;QjxaSX3brlDzi05SK!)>{+d+QMz5Ye z3^=#un1Ym<*NSV7c}7Q%?b#O}nlo@EQ%)v!0Vz-vZ0KNyOBJ#%U!VGAS<ob#;IL(G zD3oczWj~rYcwmdyOoTR1Ti1UOx}PoK4{<~-B4~N<C<BLbfkJu~!E@RoY1)<+7qqSB zww*L-(hkgTi@#lV>6*OjZoBQi#~yp`wO9Avd+)RFzWeQe0MKp{dT6s^UbMcPgr0)e zdxj>M8~_)aplDmci-%<C;g`;4EQXdI-aEqT5d=CRt}pHHh&+Jl{?h%0_<-B~j&ieW z%S$HIUSK)^g9Mi7W+HgyqR@OO+5BpB*QD$IB<hR`VKo>tg=8ySC%PcjVb_W7hdOHR zxM;<=_GOQ;YX|LEBn1R!relRR@o<<n7Z%#wC)*}O)XEat+*|K3?Uu`^29`gV8CRvh zpc<W=DmB%pTPp2ulL@Sj5lx0e!!KFs0^Lb(kxIhllvLL@R5I;_x@5Wfg;S8wg}ke$ zreddSu|1^=@KK65$NcwrhFDg%GFure7O38-52qC>+e0f8nJnssRaSYG>JL-g?ne2K z)1A%W&gJG0Qw^Y2v@4MZR|wsrq5we?com6q2VvLA3zO{yhBV6y_Lvn=Tj<i~OE#6M zOiJM<0*BJrzj5vJ0S?%d%D8l}pd+4>25MB?CHGS!A-kwzrdCw?8!4Fs^(x?im#tm- zOB<D6T~l6WS@T7c7NmPwIs##Btb~=2cx9^EB=*ig1>9G-%%KKNKP18L$Y~b!mBub9 z)hZNiJ=<hz;p)_aiS-=<+0u|KS5~^1{Ds<Y3y7nIi9)BKO=O6MmaHn{5IfN+oj}oL z8S2b-Cbj*|)V2vm4G&yALA7iW;jv0<mC-o%b1dvf<~D7buU|UhlxwbNR_VvsHq%OD z*rYRQ5!t1hD+5hm0~xuYknM?0OQx$tm{yQmP2Wykou^B4yRk5T&?W=bh?0?qdt<7@ zhO0qtI^0PV`dC#M=`q8M^AWab39Vm;ao(ExI9JEHmCh;8>WoAW_pxsiGX$|KVA>FC zIYD=%#%+Q$vZ;n1Y>r47&2{H#s3Zxxf5Og8(9SOfqp1v>{vfA#O^M_Ho+EbST9E^a z=g8sS)YD#_rp?CoaI~t*uMIVPFI8cK)o7R^H4Hz_hdIuTU#D?Cm^x`{Z-<VP;S}|# z9xOLERS%^qj?<}P*}=*x(}Zl@KuM~rz-EPZ;kJ$+r@Bpp)tlXiE%ehuA-(J^TPQC~ zA1#!T1j$)dsgf`Ai$a+;Vrhg6xt~a-EFUsA?9!28R4{x-^e0mVmJc~;=vQ)+VK^rj zwCJ%V{4pAz&MGu*%5J?o9!}3GyEJRk9S=-7nsfZlszwnL)ht3f%4R1eTvfv*$%;9t z=xik;&47&~4DLqaG$E2XV6iZH!5X*IiK><GqS{MY!RxIFZ%|L`8s!uzY=&|7=8|D& zq2}bsd|v9GtrWJJu9?u5%UVnYj}lxO;`~&FaRfE>Ae6WjBb~?j;0&D_{iP~;Qx!H# zx^cX+S#p0<y&Fx*O;ZD8A?PYDJ2mGP^47iKh^2WN$OU%|C2}E3j9&U$ipEiYj$Wh# zeXX&d(BE31mndTN!Xl)P{!9ch;Q@uyOw6gKqDn6$HFZ8Eg0Wv}sln<BbQkKLo9dpk zF0{xT?oNwU?p!FrW?PpI@(0mdlo%0qLnsj=gC?SPe3~c5`Kf~@#n+h_ds7v|5Myr^ z4S9NAkgAxa)1<^$ZLKB7wjjp7);EqA&s%q5j3Vn!j8W8<<!ecdQTOXejL@1g#JHxk zPQ(};Twl)ETa7B#pBSTx8qSy@M!Ec8ZHVzvaz?$uvAJ+<26*C*<cW3v7&4AsA@NWJ zuY6zYw5;J?tq$Z!lVZ5XuVu&9S&mE2P6doGS)jW#!_?!^^F?-GPhwB`8T>+b5U0}_ zBfE#w#cMw**~o3VHhSx|ftZ)Mtf`DW^u6fumu<bag2A1y?BqI?VH=lMVCbemGWPQl z;q<yiv7yuIMVoM$QYSbHWhb|WWs5L>UDr8<YRDj&g1(goLZ$cXAaHE|lw0SDz43M2 zu~B&yf8%FYw(qrXoh=x$3_8QXT{?>;iTSWcyk9)8(p-=_u~7LV`;2@;WRE~gcWF-| zuDi4s?*YN>9=zk2w<pP!pM{2Tb&(=mnoN@L;?&Fu+6<$#>Rl_Za{v665#_!}ekh8r zCJuMY?j<>5rV~DhIrVZ@HC}vK_hTsPUGKrHc8iaczC?}d>=M7I%oq2qT5wGY-A%l! zP<3-mH+F`z`*;O3rRL|Q<}c7m8m&7Nl-U$p_2vuMN5{%a1iIB4E(HgT4)PnZ3sQT= zwKXoU9HOzEdRjYLZywvzf{&)Lik^F$fF8dLxp|uY1Jh|0bfBlIfEAd^;v62>UQdVV zUTGp`RpUj&gU0lU{wX%}Fta#26&}!8l#r2*qEwftl>3IKGz@Bd34cOmxR(wW({YtH z7~fU7@sUb;x@3G<q?MuLG~zprbWSyj*!7BJn}Wa$*_F9dY4@}ZJh!}g(f-XPI6g^g z6cxOuQns#@4<b0BW8pY%Cr;uCYs6K_Y#}^B_Er~F`udd;D%F>^%&pV;h5nH4yg#T9 zG4M-dkd@StNiEV9UfH8u0R%a*vhsJjpPo8(VzyH<6WYIt47Z4`N@NA1!Z;@O9xt|Q zWo~J76;Y{VIn>;cYXFakH4-c~MxTxhXQ+R>q3p&I(}unsIGKp%P$|X*2dAHH%42z9 zTCSIA;bf7|DhtkTW2w5Fo9|gRn`qM<{>pyKh+Wxi5fMygBU@rUb%rhTgKk+6T^V1? zGT+*~GJ-tIpPSk&80SCZYRE5a;j|mbDuCk9!bRJF{&f!01Paqq`Um-!Fl{?DaRvt~ zqcLZ4Rdmg)B05I;jOkn&(@E~-<6%|;dBqq2t7(#ZrD&cO-14&wE9jAFCFoJ}j$oO5 z9mtKVDCXFkh__qRS?Vd3OB<I;LIlbaCrUdAw##%K-!*wbq20NKc2P^+cIP*2R|I5T zoTpwdNbQ`Z7wa)lvks*QtNRs^+hPHDEylH-dj}6^JcM~(k||x_<cgkzX)&W!JtT@V z+yV4hgX8Y9vJ1)+I=uuH&LqmUoJ-jyv=QT6pdet4NEj;R?aetxGU(HVIv06X8V)Q8 zUF#OAnwaTn4MPQus904It{E819_u%;<Af|T>teq$%#3V{bdI<%s!jMrYp4ifnqPfw zQ?lyXo>F9K7^hP`BWd!hctIL&VHIBi1;6I@TyVb@qP6kLy*Vejg!(+QW#z^f{OWmb z8E#>Vk9@D+WJ#jQS=FfPoSkF^iTrJpDe!`h5s5NLb0>^}e~f3t4ttB-U?w72HrhAX zU<?RqER{QV0M&_K8_JE8p5UH7Pn0oOSzW@ghR$48TGUfk|2%$!N3U|r*CqaVu=0CC z|7^e?2wduq{z&L6_UL&6L&D`iv40};M~7Y@bfXu0k<cUlYz?73t&%?z_?<s`iO`b{ z{e@83UVNFr7z17*@IeFqO5jv)>s3PMI#k78Y2_k^jw5ui6`MuCo0?7FPKV|Yy5398 zCG>VHHIIN?^@lOfC-8)qLbj<zm2K_41q6QXkB%p_uRU5wU@rqsAn;iOP9*TS7dna1 z?GBwxXm5KFJ4K5sKl4YY5bCf;rxJL`ADu>MQ+sqefd~B28HC<rkIp1;r~zjY*xG=8 z0=pV;Hi54ia1Md@8E`IvjSM)Cz{d<YpTIdjnHLZ`+#Y>{z;*@<5ZK><3ki4)7ZDh1 zPcA0#egiHcu);@lDWN`Z=`un;@Mnt%eb|cO{Q9EGul>>Ggr?Y|D+qkifGY`f8*mkY z2fffBq4D<UY64ey!?K!St{*~1j#F0DZL1!nNtnNL8TtaW_k`_a8BHwZD^$@Rr*WA$ z$SPF~uxeSuDl*Usv^1nGi4ZZTrRqs&6eTmfO{I_MbA`C2`PFFrN^P8MhqvvTA~Hyk zMlsL|c?Ugi5_r8_3rl|hZmZzSOVCmFNCQ^w7wZ5St?f05+)4n|OBAj~uqTv|%EjkQ zwu0zE#XX|kneS8ZUFD}p&jj!S&3GbrgX?Q)rcX|Ty-Ejbu0xa*Get(T${@&lboNjx zuMFJSfT{t-7qWwhNLwNbAnzT|m^jr@IeCW>f=)8nC~Ul)nR;bWKPvDsKe*m>5t`o? z&BHiC?<&>r!OE!7_|8qm&Ggcp4otkLl8Y)Et6fqVJkO<HKLXyem)Q?608XVeL`YGF zqh%67uZPnTsR>h*pN=VXI=+{QU>=@L7$v;K)d66Y@KT5W2FwnmNm!zorMf!^mJ!&& zZa^RwPdEjkn8^4|GpRRzR)yXY&sYuXSXgbkm&ZUq@H0vEl~&ac>i-{_Pq~CYQ5y;| zc@~0)A)CUmq|T1fojHYp!OA^LbjJwjMTm|vmKDyz`oVX6x!Us_?air1rOQ-D(#$VQ z^RC8u=|wYO_+qwF<6R&JCnb{AaIC90)wx_7XJ#11c`Y}>z>EYzxb}+uz($;#kai2J zb3tn5L2ZR`6hRKc1Hh_;G%DqC^AY41yzyMZB}icd7$^Bgzl;})!pMlf4Zt-iYoHY^ zXFI9Hs2nph3BE|f-dmWucd8OTL$95GYgF0R=*_0&UT){9>AG0C_CS&&_$4z>#t)*Y z6H`;?X;Tcc2xCOdgrzvu66p~Zx5|jK%i6x<RLWq*zQa!v-(fe$nlx1Lut^QS>r35u zMV*_B+Rk>vH;Nf!U&eojZ%x~c)4aI#FrtTHbb1TB{8kvVR93K5PD>4+IZg}$+-;2( zP)C20pq>8YahzyUG1-mUPW?@lne=&=4<FPWf`QfwhQz!pcyMgxkolGJY#!)le_I!6 zZ%0W_DR>HD7(9=K^7VUpR-u<7t+CLHY#s8%X-j6C1If+yIjOpZZjEAqm9uWn-U+YY zlb}5>m0G`xsLxLo)LcZJ?QWhvzmdu;(5|Lnjo<J(h2i(#vwRoacIy&(t=MOX-e?;Q z%S<Am$Bo-4b47c>pRg>)WJ#Mn%hNHxBP(S=>_$q0SRf>XBNGW$#^f+Cw;FX`HNnWP zKD|>m1v3LeE3;qPJyA-a8f-2W8AY_oy;$e-Q-hamAPs7ekqJO7Bo?0{Yuh-V{WcBl z7ZsG_Q+=kOFg=OzdvHSY?M|V0G`V8Mg|T6l_@~!;RHn(muqTuptojq8v?1nW8j!A~ zM$<ti7#}^*Qg2Bh%S>*+?&LH86J8!^b40=$(Ks{Bb{4Cga6COqo~A`|N~-p+%E;)a zs%71qV+v#k2EAg~0s<S^j*t+8jOjAZvCNuo6!iVmQ=`VjB#=sHjdlBwWa3ITAkLai zY28@^E!08$*{Ll<JiRd)#M1*qk9lQz_+|bk<f*2$WSh10#AH|e`hN$ncy|eZ;!*~u zuw#jGwF8*N_>PS?*<_PVH{A>wRPl!+5<DcaHLjG`e5swClXyfzjz{c{!x5Mv)8VS4 zi%~!K=h(~Mc)h3UOBbP%?K1``bjsMEzCh27RW;^5w7TW=HJh44Y~Xp0Fy~aG8Pn<* zy}vgq%vKJ(QI>K~Z!e+3OkJVO4PjCLYPk^Y5V|&F>)I8vOym4?s{zDka9ShtQ&&vK z+fzu04h2%{igvNgv*WO~2P=3dwN~*Q>sXBTJ+;zXXocbZbt=W_rZk}Cbq2H|Hz0#k zQws`B?XC*LKt9>P!t|zbo!uIBY5*Hcp*@bIHlLX4wJF`TQN4?OG^mray~JVTXiF7N zqdTck_hdoWFI3gcI0&5T0$X?`gDqz~#8yEiKRLBxDtVW*VyZQ$E!1<d)=WsLHoB6g zuUGGY=%WsZLh1lDQd9@fdPhY`H4oLl+*;w3<R$58siP;U#=MJkR6C@~`8^Cd-kCIz z)y~<(%F+C7Nc~C!NlV8sg}x*doRQizEqy1c8z`jRA-n;3@kYzAR^=?dr8$ca&!wqU zeSfOnc*BmUp1c8q+)bYyoF91k*Nh*Wo0>P`og|~H!w+(8uM0mouh0rp5)d1?O8<6# zaDJhwvhxF4QiiTIimtzAH5&(nb{!DfbwFqrL9Usknj8Zj=a70~>V%n8Jjq_qq*C{X zEi|!R^K+728*apMZRk2lgmiIg(=f>+@pb2TjSpZX)^<suPCZbP?;}{*I<vM*3w86< zIjE|@+Hy1^uh@d+0G#*KWo?(GR*bdrIC_>d48z)%VKqnf4hVTTAmrhIu{MAOb}}++ zyCQYeSR36*waV+AWNkdcQZoRUz3t%X@Dd2N7iT-|fOOgc>9hmZX@CtnouxV8d8N`$ zqPuHS$4^wAtX?A*9x%aCtiN3h`rA2z&4rtRu2<+P{CRd2Iv_oEKzi&zgH?#fxm9>w z>Y1%V9>K4-3X6`7-gYqw4n%i1Q|1eAtxM~?$jXbU8&bn&6Tn-f^U$aBFvNMlxfpd@ z^tYSag6s+B=LnK9h(k+$>V;M>J`Lkvt99nylA%xgF7syJW!mh!&DsiI`Wyr1;w||} zyD9bkG({(m;n$xuc6NY)i1L}dLaRs1<Q;-B!lOebggnLBhKoEc(bIQR2W;{-Qi@+G zUCy9kmHp7?cv)>f^qU%0)kH(k==DoaiCF={Zm%t#dT?9nfw^eJ<C8Dvt+=sJxg(V` ze~D~yjNsb2E0r?W4x@{*6F$P3n!8g4=GxJtJi~jGmZehbca-PeR6!xm;K^+4T(SgV z*^MsYZ}?cD<vEi~Vue<z$0vfv3XwIls!?vlh#q~jend|qgSn~3^VLyJYn!yJj)%~} zj!wdePpcWrh;XmN;E06#9PU!sT!bQr_<X>hPsyxq@b`=;$^vya=H{io+x87(Er#2^ zq4PTQaPB|4^1Z5#Q%9nPp5_M3+PeUi3_t>%P6D{a(an1|?%@jT*mz^Q!OdpxD4OgK z=jem}`JTQe38oy5KBAn_2g=oryqZ(hH;eSaJStiGh#HMP?2IJhIZKDZlBYk3JpNT7 zniWkF0=y}HgsU7s5!Wjm*Wg73N9FO>5d<!+tE2Ls$M;A?S=q(DQ*CtCOJdB+trJp% z!#FCBM9*C>aeeyey8fz@Q+<scl}FZbRBnt(3NL+cQ>~{`mmAkra#i{gTnWO>?!&H1 zR1FfT=ba=LVg;H+h!tpNdfX?+3B>zL9Ba0smpW`KddT5!eLvFMb4A~BqN7IEbf@8l zo9(Q7xtHa-&X7o=yVKLG+S*n(XXC9|&PpI&ro=E`Z%T|ZW6bp^vp;pgC^Ij!e9Nfd zLLa)!_c^G$yE}a($~-4EXq2gY@|fU^5q?x1%B<qII<D07Q-wyF6f?rolMfwyzTiXO z9;6w;%z4r@)?Z7T_9J{A>qwmHeZ6+=c3Qw#w-Cnadn{nCa#IyHS%RGwc2`#9cqum$ z5OOmjFO71>OHr-?FV#1TymUi}zK{^z3{Rb3jhb)JQ0w5I%anhTsbWM%rLnT=QRxY( zGNV#mC?Gr|nub(*=W1W1q|&an<ew*{28~KJ@T8VX>+#Q{>JsTGsXil8U1k_;BGP*N zlR`$6K(6|uYuTqNFSr9YaZlH0mgfi*w~IR808upJp1sbo&@D2o&~GqxgoC>p_YCf8 z+%q^$m%bm|71PG@!ClEce?C0-49@G^(+DJS&ok4U8u!#al*ZhXvl84>ro^~sy(!T( z`^e_6<Bkbd`t%ZXXgR4TI+X0BBEA(nsZ^lwr#H?`m@r}U&9O^jiKJwY1ev6^+kX4) z%biFig>8~x4Lt*+imKM5Irc!eaL+)Sum_@Md7G&^Zvw&XLOz2nhc-l69a5P&n`hHz z3_?+-7n2dqaLU$a#`CJtkkPriScA?hTiL$WE$6$$sB+h3#h>nR?@upa!xDN}k5=Kh zYfJkrpF~#%D~r_`9D6xy=*-US<>0xj{X{<tQ(w(ry90*3cj=QdOe!u+I^&fa<FJ*n zvMn}mR-!BU&6`!o04re#wonXCZJ(6dHWwe=sOmD~)URoa%^UA{YzM%tX0?-}`I1FT zh0U9j3#~Bmjm=i=fL5mgt*$emHMs#9oCefaXiAdg)NN~-SH}LAYiDYOK1&s!TBukr ze_NbC?Ri>y(L|YhO>;8{4<`m&Gl`i_6t;!WNc9@3+;du}cS&Yo!tWe5G8oDa?#x2n z>N))dG{)LEtz27!6}*z60$)3%g2JZIS*ewE_nh`}-@~hSKwMJ}h;PaPb3y{l(3e{( z6eGiJ3Z0ueTGw+*8zmgRh+AUN?OowXr4iKI#(7`SMz@=|+m^LS)RhqZDkO`Ip*SEz zaX^ORfDHv;W+*B!#HUk3x;n%}wgYJ>eOX^BBqIdA?r-e}79$?i7?b$~`!I@#Im~Qt zEvs?uVxWuj1a(nr_IPc!=qROs0K}E47r$hNh<baSaEUR;o)K|hzRinMo9Anr8fOQk zK$J6?`*rkhdYi&->-aV=OKqA%m==8~fs(MREb+;EVv;vew<88)+M-Ig%$U8s#E}vz zuS#uM5VA(qVLmJfndvgs6Hv!K`DQ9^B9X4kjD7N&h(rV{P>jYxO+Z~43Y^sG>bDDB z)rj}kQhK9h&i-<zFw|Xem)xBCVd}mHqbCFgrt@)KPd(#m1yQ-Zp_ruWD5kDzYG3$! zzndB~bzkj^?nE&tKA=$}x`f?dQpH-WGnKcc8V&1eK*UsX5~x2H%+fo^&?0!LzpYm1 zuj;%(7jH{izx`-5uuiJf2rlir(=gW0w|q~kpx|3RqtRJj=*6Q-BlwnA<`i0b5qip| z&sGMm)o_}$if2`$gdrsBCg^Ogto|boGgnqFSjIJ!kGE?DPQq6(v9gBml9$-lPDkxo z!HFchIPDAxBgc2gYB5)B%SFvrO^)ZA<7i*YwB&LRuj|+n{w$=5R;2n@3l4#&auY;~ z?$P6ZSb=F`=2YX&Z|y8GjqPJAcOWuJxSMPIN{|?cThJh6j;q^N7*-p>DFUX-=cmdS zYUOQXB`%6*5LjT{s#}n%dr2Mnf)qXNlI>2z121*XDC(?VM`F}uE5%vo+=D15VA|=F zVPX}Dd~N3+Cl;rGD%Fc7h{R#omw0M0IuHrYlap`YjDES9zGT`@vYVujCGI3HM!}^h z72Jk`|Jr)S3m?GO<{pN7hMUX|?A7dq>6QbsZyh=)hC}ut?!7O=7=o-qq_=*VI|ny5 zjA9N5ECK{qGY16E_A^&kTb)cK+>rLfB-WiK=7|{KZ3e?1H_j7qEsROslf<mi#I+ff zH{6f`#T$+HFu_eXW1t`pN7#-+e^b%UeI`fsj1lPRZw@<mF*aX`g`F|lEyapWry^1u z5nKpH*GA?8E<KFS7dvc9ksaJggg>_$J+Z@M?6^DIVM<F<+a1sgNnFW%Yq`+c-c*Cx zGkUx4D&;&mRk$+xP>iY*^--fl^%irq4Std17Hk33*fFUUO><Q<eij?zmAkV`o#Fr3 z;Re0dk!h!<9vKVOQw|~1DtCi-O4RD_Zr;l#a5aM%G9qaWU}u5-%|#x_l_EXWJPfXH z8y@07l;L40hlgbjn@4K7!(GasRyYjF&X!g>JSBQ%%p@O_b4D8cHQC*CavIYrk!;!k zhy|Q&OC!~rnq2LuJ8TURBf79jj`_EjV{7tt8hN7FbJ73@b$}X+j+u$^ai7D)-a3x2 zK1F>awP_TkntGzBr<|f5e)P4WC|?J1%>VC(x-Lo+akWmqDxj|wb%7i~@#~E`E|p+; zKu$qpzdZHdG<FqNSf)WdV3pQ^FjH97`klnMGBs!#yQ*_o=h0vqu`wK7OnK%1s#Mkb z>9~Wbf`X3w0OKbb<#4N&g$h9;P7;BLlZ={-2nTF%o6i^~K7d5TA3eikAp@aws83eS zNobrHI>dmeo`c}OTue|vjNx;?3!B(ji4X&#t+<e2noc?N1wGYqq+g+rNd6(YM}w*f zT<prJ=pVHMUF|5NS`My0q;RF?BAdSWUFu6p4bOp%L9i6G2+Eob<f}+Va%{iPM#O@| z_=rk_mvtYcoY7@)iKZwuIbEiiy37`+nprp2LYHALxNndc;f2-Ju0%Z5A_{RjEOql( zpmSX#B@&u}-2I@uQ+tOJ>4&FySCgWbDi6^Moku<Y@cYyAPs!gv&41qeYL}<U(N)dT zQlIC}sYVgwxvH5Yp6iFAPdlH7qAS%kG>lAy=M5v~z17s)kfdFeUcPIqoDwW&7>TxD zYZ!IGjMZYcNGn6fZz{S&!pQN3E~{57b$Mv+eMsi9W<0ZbR94M>03Cjnp7F}+%=dJL z%F<a;t=5=8biQ0!$#)xfzRX_LcD~HcOEK$w>hnpd&o?Va-=u+BbxL~E5TgF2G&<~H zidOaPAa~p=eZwJyYMmb76omAzA3~&<jHx~mon7d&9)wGM-p2a;#CPbBsSFI)XPyZb zUcwf;DvQ^z&r)odK3`bqb6(ll&iee9N2Je7hU+s82(j|C&r8>@&r&S<JanAUScVr} zUg&eyjpRNk+@4L3E-zonug~4kP1^1`!mgV<&QmZAG)^9ORiQswFA8i9r1e@O94XTg zTW!2`DC0v}HGJ|oaV+R+gFA)fFLKMS<;x_G!;9?|sZ8b(oV-q^CAIPY*5q+IvXl{v z-j}sb9`~|L3q>_;Mi6=_ujF%AL4HnLWR}e)+I$0($Hh1c>dfDmJWl5zO(2QKCJ+`U zRQ<J29#{RAPN8hY*mTN1iYh}gkDADB*yM51BeSv5qXywG`erfwg`O-bOH5L?_Q~V& z?V^^t?ar?@YFCt&5tGM7J8y9EI7LswG+C{sW8DGKei`lnA1axXn)|@%>z6z(`t<*e z<Z&_F!YW>m<Z*LkxdET1W(xI1^0-B>c#stofQqLng7H^bTqk*4)U`Ir<6hWltzC@J zuD674EqUYUN@Ua=ZfB$M1j`8oXnw=K=Az%QH#a`+(e?DTnBOqVkmJo;RIQ`pV<sor zP_OuYR?zFEA#sD1pAt~hX0Y-I0c6Gk_aChMi~z2o7T{3=dI9!e<uL*p1Tt9pIf2pk z+Aj#`*<Q)wzo>#MgQbGU`NY%1Jwd<|hCNAOLwoHh0^<yLnt<ml`y~NS==CcCo>6TT zfsL)quL*2oz;6h6cD3IU*vy_hLtugdzay}@0nZZH!hq)pOf*2eg<Bf%dp_C9fIkrM zglvB#u#G)=o`C0^`x60Ar}hGY?d`P}36u?Bj97H%rv&;vb=f0?JWt)v2)xq@Jxah+ zp*==mcY7iSntbLNyixhMJy}V>pFB?BL~rN`LQWP>5{N8rPZ9cpRq-@||2E*41YYqB zY`-FOgIBnUkf*8pHGx5Y^czB7vO0cC;7PCJ8A5+>=y!x7joY(?4zyy=5%3YOCUBis z|9e7Ct$!fkMEyqspRyXBC*T?F{zPCmd-4K-o4vXh34PO{HH2R94*r?YTddei1bm+U zLSVj^dYRCd?Y&nBoZ^rEntk*tf#<#UD&r<2E8cO0p73Y02<>7u&L;2`1LhFe(SW%G zjy7N(0nZ~jpMbBmUIN#8mlhE6wQ@XxL#&2{1R{Im34|hj;faJkZ7-fgz}NW61U_I- z`Up5do<d*`dvYp)9s^Dz;LGiF0&~23XApYXC*n*(z5eVhLRE)&+i^;Ic{ZWT{n<H$ zcCgmYCGab+@;pLsvPb6=*wcUu2+Z>;c%-y4%^o3!E0gB&LPC-B@*+Y$vWp3LTE$BU z1m#{z$XU^41R`POB0_<EM$J^t@P1rQ=tI_zD+mPfUP;JT;Z+1K^HPI^g08P7<XIfA zA#k$4$WuF&vmN>-p*wu4t|hd+HGLfc&*phOfy3;{w+O8ELN^dP#2$T{fD5Ok1bm6# zNWj<RcL;pK%G^XC7RJqloK$Wh@Tj-+T|!>PtpuDE3=xPP-9{)fmflY2^VZfK1e`?g zBoO$&i;y>UH-Yz9p?e7Y*&i(<^lp1}FM(@(Ht!>Ji9_Eb<dWom0w1wb4-kk%q~9mh zX^(zD;2;Ae)Y>J^gM8w7Qh!Jw*2zPJ{?`gUOu+l_BLb0n_Q!-=<otxdR4c@Y<;npD z{FK0jUd1DX-eHe^MqsW#dX$hW9FGx*srWgedwkA*K`4@it|WB3KYN_e1zzP7gnS`C zN#JRJ@hL*i3ZEtrMDt5RzSMq2z(v6-0?s9WP2k(!)Ncqm@A@r)NI&`vAs_Sa2)Jy1 zmOy0XeU8vRHaDvY#2_Wj@9(|ulIQo|>_tiQ8>?UP{5nZWn%|I-lIAzG2TAkm<66VU zTx*gnzpfiel3$nUlH>P0AF(9)b!H_=e&1?ck|e*bL%qtn|IwaEieF!k$5GMoJhrn4 zoZxlOCKTdBQvAj<N%0#BgXH*ii9Vmj_OrHn2{@NoKp@0~r1(9{8<QNrvCt&R?^vtj zL>7D2=UtNg{?4J3`D{yjv5&wvyv9=qEpkY*{05dK%dam($@2Rxe^Ijh9%D61mf!Dt zW0L0ARoQ-4@0zuw`TbWbBx!#C!vIP1JK6wA^Xuxbr1^DXl`OxJ@R?aS5*`K!ebB0q zJijh5F5(jxEEf}qDkRab>tB-R_gz+lr1^c=$Fzv00w+iZun2j-?9IywIVL5~Z^#@; z^y|bbiGH0~4YE*R>uN$Du==hcu!{jp2;AjOeUp$g(`yO*kG*#tfyhyOJ)v2St8WpS z?a&Q`{^&J+o6sbyWGMmHm~JF+rI-2+p)(!2iI8LHW&&>e+(O`oUi)_mZDY0HO29EW zM8Fx>Z3I4PuiZ|-$>$CN&v|us5(+HbMd)sSb~mA$yo2`;a!Nyp@1n|QtonNiguZYe zq2T!6BlMWpct4?qUgHCVzF?JnpTOq~_yK{d{k`Rc+yZ%!z*2woLqef+KSU@5#ltnv zeniOW=Enp=X#Rwd>H^`Rql4hrf5^HBJe>gDqOgfqM38eCuc|{_;${kw`LnBGi+?v8 zv0$6#46=di8QX!8DiV>+`~jwYgnrITm6!`qV_t3Z*dns4V%1wH1io``3)eHEyB-qJ zij5LF0(vts1%KN>EvCynnP@vgLfB>@Ys~R!Ah+pk==MftHaHjD8r4&GykN3YZI+ld z?&fM1XAGg58G>LWqM_)~sjA;K&EUzY;RZ>XxhI89i27Ser>Ek!{iUG;X)DS1BQr^w z8OfgsDjEQ66b7eFy`Ul_CeB9xvw%e*G%QdP%)`<_!_u5i((6!K_bMLSXRZBSX@B{( z{RV&9hs>YGTUs^EryNe>1~m?*dFsB2nzj#F`{X#<4m(KNzFj17-)_4xb>Cilb??2; zKKtyu-~I<2aKM36-W1NbLfGmFIY-<<bi`TC2<#CId{=^NvGB-9HnPP*y2S1QykLne zXH}!BKa7=a{5PYj2pqSCJri}VJR!f~JUf*&nq-eXX5Y8nj)3D@bxwSir<R%w#<i_t ziPN!7uLy3=6un{;KOyMb_(_vyG`}nZ50~9t{;~mo`LC&^G5my_;>I00^oIO|Z*ZJ_ zZp2R%9M4Y}ScokZXWhp6DI!annVF^APIT4_c3UwT4rVwfjeE9+K1`8ugA>EW35HtB zJLjg?jd$X8bYv6TN5yAH#?v3i2M;7?;%b_Kw=)~=-L+xVN3h?z@5fC(4rN9PdY7jN zQ!F5FLF$zuZ~r>To6e4k!GKQ~b~VU@N3{ldn0Y}SWSJljP8`7<%ql@0FeI3R3NDz# z`!W&0kYElN63lHj6}ifDM4ZRapO$1Xr1^{!RUe-QXBgUVI1DXJuN#K&ItD!6Foe$n zhM0eM-?hWg^kFe1Pmx07#QgF)IrYjg#AKcM<;6Irzz}S&8Vq4=)L;l06AZ1yls8yk z@OTK4p2jPJC16h`1K1HP0gHkqz_Px8MOj~XU)C3X-<W-ZlDNr8SbQQ>9Ii7}aS|5$ z(gYY5nMTx)ffd%-Dd}~?B3?&FFt0*>_$*+NaZQ?hbi{QwZCEVI(|TAuBlXI#xW`CX z-1`m0BG5f77Rzga#iXd#!{V7~0t}104~NCG((8srygmXJw*nS-Tf4Qmo>)9L^~$g~ zc_b{}h6VA4Ek-QLVbKT{KH_3rJ?vsUFU^3Vk%!|OF2?iI>xM?WJ^~ucK;tg2D;h6M zy)rcJG!hygd?V2aUOOxr>Bkunk1r03$BWVw7#^8_wILoaPOlpt@%jjOWYCvpaDBa) z>Y~&u!=ok!P;1CF&;M(p5h8I|G_H+keDLO7O(7*y9V_3HXk45oz_7@i1r4!yd3xQj zh}TEJ;_kqrW+!;PusE1{Wmse`f?*Y$H&QghCK(osYa<#T9TtmMrwK4DGHF6XEMAjd zH!R}y5wOT`!mVFdo_byCm0?j6x&EE3MYy1c#p2qm#kupdYq34I7OzheU|7^p@doDL zx6<o|MZ7)&7N-D<5kEe>Ik=t*&W)*8hQ(~~cwLVAMy^HdHw=r#wONZN4vWR_qzN!A zX7e)?jE$Sp>xM<VJ^~is0xZfkN+TQf>xso%Q?Cq**&zA4SbRg(RM?-xqH%51)H8-f z<4~FbL!+kiZLk<`ORpOm@%jj8l&sX6=lAuJjCZAO86NeN;V?Y)4b@Y}jDW|r(o@eL z7Lj+SDKJFpjza@P-jiN8MB?=k5P2VSNa$6RuMHw=+^%_#)hqLc6C&SB{kP%j(Z&YD zy+6Hf!^P_uZpnNd_$>H3e!$_%T|jmDPt9QmO;`|~L`mZ%Vy`l=Fz=^Yp88_Mn%$ak zrZa`zb5A1Jb&Y8Z_Fm(sg6buHsxEU=A^t}^iTGVyIk1z&Nd<FAd{hucGJN+@!Gkz% zB;V7sS7q@rCMVP%OoK9f=n;+v`1oOZ-SEK>d2zi<hv9<H;=|5*{D>Hd!yYp#t8<4v zx={rkzpdpaZe(?JoHULu`gG%!JAQFujLjIy(GAD1Kq9g;1rqsn3Wll8*t^^esF(3r zw^tS%vt9@JuqCn;wnT7#kMYI0&j``Q%y_Jq88HWu=O(Cg%Vb|}YlC`7Pru$WN#$4q zq?Y&&tOQ7Th={~T9ci1m5+CIe5)vPE2gn8E9jx5NsE~+|kN~OJ?Ue|r2vm^>sffRl z5UB`hkq{~0<CX|1-~E;dDUYj?2&sq)ln5!ZN9l-!NO=^bgh)N_k0eIw2M$S))EBLk z#7OOBfW$~0=hGoUQrs(%>Lp0(a|TF|)N}(RNb2(jNRU(nPfC!~U%U#5l8Q)LiIVb1 z5+&ua1rj6`4NH)e2S!MY6vdPDNn)g8MkPinLJ}lM3Ts|olo+XqPLUv~XS@;#l3MPN zL`l)5E#)LkD#8IIPRiq^B~0qQ_MU`E9cq9?Nr8(<4H6~wPX<Vo)agFI5+xPUvl1qC zzc(ylQqe^TlZv2DiIZC3wMd*)3{3*1qMQUud8~-UNlmt%NSstePDr2>^eO4F1WNgQ zOQ6(g-j)PP4LBr`QXbhNky4+sDkM_M<G-p5N%$9gavXsmU<s9qUd-mRqwGbAl!|!F zxqK9HQxYk4ti33aQYU$zdii41D6vwv`<zOwlt))es8rlAe*%jg@0Ccb)cdUdllW+R z15PFoh>%dJ2!K3=&mwG6LZ$xAib<r@o!*br`Jx9hOQe)jjzmg5?C(jWlm{kBq*O$Q zNT^iMti(z=zmQm|h^Uodsa0O1L`y~e5-t^Cxe_iFLmOZpBT(l;LSD&51P-#1T})t_ z0TM11ja|w|LEaKD6|pW7Fm;#LxR`H7(3J#CRjf)0n2H4`0aFp1b`^^SbCHlKXJisF z6|;2>UyRvWLg@S6_BRPdB=NO`f?-S4l!pmj&quL#C1~nLUdau7_IrmUXexw?L`|*n zXA(9Q981Ecoa;%{6gJsp5lYmQM?*=})Ni~BiJE%eAqksu@i4@GjJGOoBM>9IozUU- z=neuw2NE|GF@$&V*+1Be5;heALBggU@|KtJ#RnXcz^MpxmB6W(ED4-)zIi{3MU<Ar zO?}TRk-#Yr9Qy%Z3{kqA(8az&A0*_9QUa&W_eT;q6~y!~U;M4tFM(4LQT}5-`-wl3 z$f<}BLr7FQMDbGskNb;{5Q@OupAm9i^eBNKt;YyOF!Ij{z3P?xg3ul|%PR>4n|hp3 ztdu7RIn#QQK*XFqMd)2t$I}F2wf&Nii{xJs@VM1g1a9@o`Zb{tCBGr$wDem7(T!&a z1y}hUp-)@O&l2!3(B}y3Z%<Yec+!XbdqVJL3w{5Az^4rOBY|i9z2^yeu;-r$EcWic zKqx{LUnCTqe+{9xSdD)s@E-=eL;$WiY4|S$e(G(#Oz1I(ULoWn{jUT*Yo%T#aIgVY zMluDdA4lkI_GlJ?Q@p#g3GHBy<`DR@0don&+L=cvq|bapL5RJCf-Nr~<o!6Fz?-bb zg#>(dPaxoZKal|T^kn!a5s33pCld+|+D9mwI)xByA1QV!fmpPs5egmebV7gfIXr_< zM1r14Xr@(i7J+C@g2Q6vpUr2_dL`!&@<7&e2?WbLkB}<~=M#9*OI<)HG@)-0+R>Vp z;4|lb7xIbo){6*y&0f2hz$;$gC4_wGT}mJr{$+&j^%oZr`mSSrF`<|J+2w?sonAp8 zX8%e;p-o*y$XCuFf%jXluC96S8bTqpmk@Gg?VAK5y7*c`!Kbbxbhr2FdO`?#66Ai1 zfNN_v5V+RI@@+z~{FV|5W_lx`sPQ|55C9-G-bCPOZ|r75)9leL1fq}MB@`0nRzk}D z%{UW7S_99jaH~k=bt58YRm0T#%dQf7rXE-9cV$kBuI4Rom7yWT;7C;rXoGhnsx8a+ zv@<q0)jFg%D%9q@g(;0*^}(dBRIl7JS9o43Y_5!a?lv@+HRK~$3n_!N=4CClsYv@Y zMH=$Nx1^{n`_YWq+kDo=n028m#%u@<v1ZGL5V2;R)Wn$mm^~3&)&VhPT`Lny*2{<? zyS<eWJJy$z*s;MG#E^B7Cx+~MtdQ8TVG4^K`v)I}7_!df#EymEMi3@utS=ZbWBmY| zn6W$CYhuN^jwMFy2keO$v7tAJ73&LCtk^hVCsu6846$NEkc$=TQz2ID7^_~aSm(%M z#18qO#ENwlT8!8)TOqMw{WURRJ%nFOSRcDsun+osV!=i{zgV!ow#9(;Nf-Oo^;xlB zopXr&8Y2_~_BpRzEZAVwV#01{y%h`AeI#PQI^z)gH7XSQb+uP0_Um{2O|f5{p^N$Y zlD{bCYiK88zlOyo2CREz#D4XGiT&!n39(=O0FRij!P~@qbsa&>SMQRTuU9!#rR-ns zeL9ZNuN|62C{%&jgtoT1nM1(wHJ3nWUGoSz#>IXOso2X$U$rV05C{$actRhxM+*rA zb3cJl=$$7L3Z?xdLOvZQ6L`DT(MKRu>Qe}XAL~>?E`d)Y;A;8l1l&wHgTPy@zB38< zQaFo1Ai1B=NA10{3H*}*=MeA#pG)8{dvYFuP@m5y^xyXA0s>(ge1p(u?9l)LukS(v zj>n4#gdTA*Azxc!xX!d1F69&Vqg_S-F{Z+C#A^Ld1H@<ztLbvS7b?INgj_SflE81A zVy+_O-jG28-ifOT+~~c%hEOn!C4_djmcL2hg9cnnz!~m!1VRE_Pska;w+J{l5_>gz z`)xjo!;nh}UGLqvkx)?QcL>En!J7yjVEwq6fNNN{5b#cYmq2Luw-S29XJd#^@Uhzn zIT~&!;5Nn`1l%SNd)4)oyZ9uO*1HKscg0=}qebl1&{yu|n?2U~`v|x+`W^und-oG? zQStx*UxD8zu*?VY140iww4Bg8tnvp5M8<$05?bjmK1Ap~haM*MMJx6r0?}QuRS&dB zKj9;nd}66Ox_-(han9=zLN9pjKO@v?RXj={G_=PE{ls7VIUzR#e?h?4-AV%Y`g@NP z3Z^E8>Ye`VNj{6k`xK$DyPqcHs>Ck|c(24#b<D2f6UWf63Cy(4|As)E-ux{g*F2vg z5S;LLgo39%OX$bm!{-PEB32W+!=L@0&<`B?10m-De<U#8I`TXLm*amT-~{^ufpCDl zNGO=0SgOI+|IBBPd0Q_LddQ)_5ZcHZdznD+kyi+H*rUG^=rrI}0*4qNwrbQTwrY@~ z7^~R*65b}Z>Yuz}F;<VUM`Emo@h8S=%&8cwK{;ZqdedU7?rL?2t?KSju~oghVyphh z8x~_V+7fHk8Lk+s!I;EY4W=c=>SewP#9DPNPmER9QN&htY8F%VAFYF8slMdh5L0!H zLt?7BFceGmul`6Z)fXKSQ#E`hVygbmpNXw{iFZ+K)e9XGTQx>4#_CgEPOQ~HjF_vw zw;<+f_zlEdjS+~w>hvMzYN$?Pu0HPdi@EB{N37LYK4PwVAH`Y?qhGAmH{0BawHgYC zn5(XgiM1MQPOMcIeqybD)~XO=)w?UUYAEJntGc!%wrXqyh_M>Buo$Z@@5ELO@hrCL zBx_4d)k6#rQ}q>}3^7&1Ko?upRUI)^gF}d^YJ!V4psXR7leKnh##EJ4P?a!ZvGvPM z)7AOoK*uMe@waNn>eVG(HFoSOIUC6{iQ%8Pjet+!?F3>~-a)9@#(O7$DF)m{U@rsi zCg9$xdkE+`Qe2Bezy<xi1OnOj5%LxKJpwMI?k5ngum=b^bNoI57pgxXu!Z%32LK}z z!-E7uzWk6-kmf^#&T-m&n2^iw9}$QS{+N)<)SnOtnJpQKK58vXMk3c6B_Yv=?1>~K zik&FQNEGZ^QWAv<EjfukZ^a}hQSjQ8Z25L4v&RXAAM*)9F&0Tn<O7qeM7}sBE72ZS zy<{bFgIAIg1^bhvL|yitBqa*1Qj!w6fhtLf{@vb_oJ4>24oXg<W9^ZoBzlVhl9K2- ze@}7}z3h<WB#O;KNlNrSD<(;a!l0I{L`T^p$x8GGuS3!j`6J0nw7tD2Nr}9>l9MR3 z4M|Gma#)fQd3Plzk#m2^N#r$1N}`}A$w}lQqslG)Uwe;^tJ&b6MJW86vkAFnG>1TN z__>7K7@SAoFdN8x0z+PXFQKwMT0p?%)A0m+buJ{}`-CSD@Wp;2fuDMHClLy{cru}F zt@1tsuDYB;pxd6DO2GSi8iAjAeWw!&aeoG((6-Mc<U0RZ1fKL_{e*%r&L$LY#B&Jw z>N=Oeqh9PhLau6^ParnqE+90)I{Xa+w|S`nLczl?Box~M7ZHk}fQt$J(aT*z=z9)b zN@%P#a2bKn02dK*X}6ew+hUg!_@!5I1tFjAD+$E1zKW2KY>+@WY_2Bs6>In!0^xgD zLMZzCO+xp3W7iT2GP;gXD0<fua_7Uh2n0FbKqw~U+k|4WmJ+(h8@Q2>lgM`n+~tpM zA`}Y6&4i+oTL^_|@m)gEuUiS3WEW8x=iKRvjmv&TZt69Q$r-yaiAHnrY69e17w^g> z8sBSEDx%SKPZ5pod=SYPTP-3Q!*~+e=zbHCjjp(eYz*a4gyVMBlnBRIEg~FaC5d$W zg1sox(fcIA(J4=aW5r$*;rK(Jb&-y)u!?l_c11YGma_;)m*gTFW0ygMql;dVjm{86 zHoCu9MB{vyLLwVOMHk`ddc6q8(C<VzMhJum$3tu+A{)cf72y~vt_a6Ydr@Sgb8Hcf zZb*w{^tlkp7|MZ&#+WCOjR#wOA{)c~AhI#y2}C%?w25$xbUY#*gOQ4Obe<*BG4Lwl z@oUzah(}jyMLGuC6X_V*x=2SizC=2PO(D|JyD!qw`GyF`V0$7Rf9?|^;xRfU@-f7| z$j88v2*}WaL_&Vlx-Sy)5wB82<c9W0BxLCSA|ik5FN%l^?}vy;cdUwp4An$L<eRKU zk&w|35s`sHk&(`1MMV09h=}}!w=6O;T*M+IW7HxggXBa^hMFN_^2^o{k&;gAA|=CD zA!5=6yokvMylIh>A$LVi1~(Qt>6-~6CWCc~oD6$T<Ya7ziJWwfD`GN+CUP<qD3O!F zszgx6n<6L!*&-=dc%Ma52B#KD>60LWGHeDBltE1*C|#uzIT=z@1m)XoB1KNV)c}!` ztGs0ql<&7kA}4)~i=6Z+7BTrHdrib-_<2N3?qrWdOgeptl-$jph>&z^M`Ywodm<w8 zQwE5H4D&=pq_bm@kg**l64F(05s;zbihvAjQ6!{WRw5u{@FF0?Xb=Gzo+lBI;TsYG zY3lX53dj=*0#XD0YX#(rb=(6zIn`==pc*@0TWf<o(7sgI_CUF{>8J9TyuRKZ=q89{ zjzs@MjrKr?>h6KkmU06}3}jk@*!9)4L6sw>mLi9cWQk1b0%RXHa_zmn88q$yd5GK( zD;07Pj*e&03gtdqc?A1$gLs07lQ9867n6a@YrjW*8^)vUCBEF+1xX`ag#loc;{)Kn zm0Xr9RZ!(b<`H`lk8qOL0Lq6=10uVU9O+Vwir9pBMon+?fas~(A|Pn7i1)TCsp)MQ z5M=*W0nj6|bwHTIZ35sD+BP6a$n63k``A7pnp5R~j+$EP3;=>@QUKTh*dYLz0y_pk zd9YJJ6tX)9L@&)Q0qr-n)D-|~pBw=FcDn{dCb?Tc@LcR30Jq)t2#EBxXFy!?dj*6J zcL%^#y>~z`jQ0tE%H+NQy?bhDzW`{G?;p@sQ%eT~0KMqI05Gm80npL#rhuq{yg49{ z<v{_=m|B_|08NC00|N2AC4gO~mJSI3YiL>k?NduV0eog^sS?2cQ%i3R0L=bv0ic4n z2k@S$rFR4X<NTcgY%;YpJ%BBzmfjTr=JnkHEJwHB6A%rq_Xb3H_P&59b^jrtbMfZ; z1EQ@rBOumtXh5Lq!vgr9singMc=OcK2LkvDs`y|)`%W!=C;&LcJ{$m1dPG3*O?@PQ zPfjg;GywW?KNb)bh>r(E8T5&O=sNynKu1q4eJTL@NM;5^PWF!hf&4!mz`sr{eI@|Z z_t^mO<evhdX7ss$j-6Wi=KyFS92pSg@xKJH;ndRS1Hit*7XqM%>|X<V=hV^{0{}Pu zQUKhz{c=E0psAw*BIo+IfG~&u9>8`}OJ4~9)b$?$aHaldKy=%DHK1`*OaB$XUQ<g) z2k<MD`tN`kZ1z6^O`lr&-vG$`jtOYW)Y7p5yox%$77!fPU)N}#8Xs~P#u;1Ke8_4T z%gJu~kXPn?$fqZvYd&PX!KT)Syd09RGITx?MxotgWuK7>o5bdoD=xA909LOg*xG=) z6l6F^SWaNk0+38xpSL4ecpxv*i6dvQK$?;&h)xVSghiT>Lrq*fatw<kD(A3hN6NV; zT6vN!h-*~R1#wx+*-sL_Bn;wukc>eew~RsDU)zM8qmi;HzrcLojGvHf6Zm-{-q@U9 zs5x)JFIc4$`PoWor=MH#^K!hfHNSw_ZNpER5!>?13;41fzrftto}bY9%lxF!>ExFq zD8TT^)^^|*JlK(+n46vWITsIh<`+7!cHtKo|6Tl~VLF*#XejT>FWgYvjbEO}FT3*# z+(vuw6T0i3{G=ysFMffukte>yU9>m95IOts%f~2d@YzK%gHLKB`}0c&g$q969XXJn z&*Ficv}2`j;xFvcoB0J3aS%Vbh^F!j7RkZ<q(=P~e{u-Fa3M_N7YfQAenFor{M?KJ z0-v-_-o`JCEO<M=P^owazhL>klb`RUD8MI#*Sq*huJ&$zp$+sNexY=IFTa4Py^o*t zUi<^UK%BmxpG5NvexcfPD8FF9hw&2@%i;XwOniV}Kq?>PC*;hB_(}J{hxrAxBPr<a z#Sb6h5C2PsjnAu5`N#N$i2pdhKxBS`pOmVf<QGWjPw^96XeK}DY4}Heq4fVWzr2Vq zpWzpF^|Sl}vic`}?m?!D&++89_@qDQNPgjd=)dsGyU1bj39<bJev+*Im0xIfe34(M z6nu$aAXmT4Pb}Y~_{pjJH-1@-FaORjAdRo^a|{_KKIta^Pk!MrzsfH!<Cp*97wTF^ z^9#oN-~9XtSt35ClN;g_D#kJV<lv6w7i?O5jh}Q8g7ekkL1z|tP`yK-)mGM`dx7{u zK_Xm;BNr}2`6(ws$y?;*4;mX{ScUK*>W#vOsMHG|!rB)$L~o3+A*u<&hDcDthR9lk z4dE5xLKwO*As7w9gUFR6ZP_T}K_q?QK{Jg9QGN*%;x?=>A>d7T5G+mMLAx3cq75!g zh-!{7A@*6g5U{f?rvRFU@E|rTOo)9KF2n^TT!^}@upyATa3NrLN0#NjmarjGw6GzP zrLdu8_(k{-=|lL?LB@uty$c&U*tihQ3SmRkn}iQhG72BUauhy9PAPn-+t^U2u_5Sx z!iGRE!i9D>E`;p};X-sd2^Yfp5hg@qM3@k5AmKtZ!G#Nfryk5vwHp({WC{=B@P!A_ zT~ot@$Z3QLfq}k_MZv&@1yP^~3j#q13;LX~p#L!z#C{12B2yF=)NC9G3`aN+R)R1f zVnH|%X;nB7R1{%AWURu0Ahm=8VerC$wl@aE<t-ct8>GU3zyO5-aWM-6;uqmSn;Qe- zA{GWjr`snuBs%+r1A%)82O=p63j$je4n&zN9B4~pKwR*jW!dXcRyYuKEMY<Dfv_NQ zdSO9emcoIc?+XW_FGE-mW?wiE9dg2fIQznZAQXiIQH}}=Vra6kAlg>Kf++KZ2XTPH zgeb^`2_0fQ2(&CLi2inAK^&LxAa+)m&=-se(XS|62+QnPj*B*ta3K~JE_B9@IZf!S z0v8%JHj`SDs!*s!U^5cE&AV3h3^tUqH7y;dWY1XZX1^Y%UWMo6H?F{uZ}9sH{Lb~y z@5}L>%b4GLd1TwZSMeQYC6WoZ@N(D|c|j|0ftcmvcKemhbl7+5i4*NRn<?9OHgg2N zSGfIxtHAWj6nm--+mF-z=?r_ywx;n%;99JVfmQ@IphD`D{jJ5cz<Lz?%uzTBUjK?- z9QST7;ZKfxL-TBK2kYs%gWYm3;EGaQIzKa)H+5DuO4yltmf$4L%m!~vZaLCGsNH;e zl!5Se5j@(!vVyT;1=X65d-Ho%b5gUnYKCZ)WZX2;^sag{d>iP7x95VQxXEJ)S_doQ zj4oND;wyGQJh=|g)f!PK^oBYLR+Ne;U?bfTPBK`Tl4*}lB2N;Kn;Q>u;lwC{^;$(x zfEX^A5{tr1#>D(I{CjlxpjR~S&BzimvjpZy^h^A3)-Q3x*?e`17mkw>UEriJpMms& zlTz0Ft%H@~q_oLvJ@qC<>GFY%K$q=b<N1;1X)V*5Ux$C7?{^q=kIMeFwaLwCNNter zoW`ZoNcp_kgw3~Ly60_>?77@IiHV+f-leOni%BCJtd9QN>evmh_AF1U<4B}wXJ+A^ z7SP?UW93F@-ZU*2Pj`(?xg&s}+WgN!Wwt(i_1OB*)sqNdPBpqROS2nmqDSC-?^0>e z+tCGPO_fBADOH)#zui%YzE5sBBDbD<GZl}P^FBN4d$O!rb8j!K_jYUDS5Ip6YJ2A> zB%vrvDJ0PtRr&fcouhiTM(=lQkY@d?RF#?1njNuS))<}NJ6VR6`|kD2{A8=km-Ps% zKa-6;L+ikEoi(rB1)|HNKFnD!qu-riI2=gJJnc}M-C9l|Rz~i4P(*9b?Il3lkwRLb z1q%;6rZN^oFSk}kA5%GGe&yiaa_cet-ZFm@s^ewgyaIPyvNNtsh$>PIypvqC)2Q*^ zoH>9Mi<cCo3pvrx<!K6S^I@B@6=B=mAK);U1xqs0d6IF?DrAwoay0I_1nG1GTlkpL zIjYj!+19fMiflPnZ*-QUVg9w9uMbw%0RyoZWcp3&)t&z4avRtqRE-iYNN+l(6H)+E zb!@ri*v`@Aw(@8Y)8QP?Ug#Wiv*FV94*+D^#LdU{OvMK>my9mA9>JI1EFfnW(>fg$ zjXoBPaa6hO@WIY@V7TqrPM9#|4S<~T=-J1h1w1RaFWMSN!$eFgk3Njm?2BsjDsI0H z0)#0q7&j$C^2xBTO$a$tbenNJ5jVMII@KY_$Cz>su;tiEAQR~`lg{y28%K@Kwn%43 zmz$-#?C2<TbQFItk48rYaYvO$Nk<PvS-oG|S-W-Ag>w=~iE?fzbd-UV(NPcuK*e^T zQ3Q+2l7e7~lY+#y=f1Ct?WT}H>}Z~*Z%jQ~sH_WlqkzmT7V>3oDwNUvF_mbdh8Ehn zC6$@0?MS|+in|YO5;Z$hnz&mF#o9=am8M?ct(C-!nIo$J2@R1sv?y9DZS(M`XA*vC z8mr>;{xR#7@h2~KAu@L?;jgK=nK^)v0!VHbP111-$j2=qAu)>$1mbx)fymsT&;vwW z)SIkT8>>yWKdTz$Old^9x_1W8u{Vo%6*CEEn%udm#`AX)v9&dY2lUL!=(rVRE0O~= z(M8>*)=ABkeS~3;!@O=ObizlrLV?0cN_&oFP)K`zd}`2c3ekL$kk=Hzz+opU)^w1$ zic==;dKI5gsCaYqTG()=;t6AWwn6<oiz`FQ^gCsUu2=m@h3exxZ>D-pfSBudN?Ba5 z;=V$~dMdYeLN?ZZGu<C?(=NE-JubqB6gQ&`GZXN$Wbot9LPnK``sSYV&|N2-z2BiW z!5aZ{&Gz&C=N#ZakJDzjp`I)J^a<xhVX_A+eCY%I`*`88T6m20ajf)_v#qQlH!CRx zFlQy70{HC0tZ2r#+F8+jZ@G$7R@!<MpIfL{w-ahB28RKC6wHTjq{27o@oTY>I9aZD z8WZycfi4KfjLy&s!L_s6^zt9P-sc>0iWcv8m}U#>8_1h^7pIQeML=rjxY;6hPK{xg zQP>76BUx<9O>Y_tZrbu17$@MTP(<X?X5QGG{SzZ(gE3>6V9ipjZM^X&o8aCVwL<jP z8BkmUK0A=(v)kd-bd^j(P2z~Ns!`@HH4!y$Gcc(v*)Ejg;@gJ&Z|_n&+13Vtq50J# zoB63qBOBwWM-|M1XxsQZvkhaxThq1D;G|S-dRubp6%x9h(&$y_m^30Z6JK+=g+@e+ z7!g~bWmjTV5oN4Vs3t=MOv9{~V$Z6gg5MGf{sb}(JaGlTHKX7|^P_^_+(XT56R`lv zWkRKIc9mZAy2VY0Vb1r*tD2jDlazRQW=#xMYzZ#*MPqAlNq)^-mgeYgMZ6|g#i9e^ zXAG);4PFI6Iw4*99iDvZ9{Zs)nm85861LMhJ2O?x<htg|-+C5K8|#@lZDKz)mOt9# z$ZYv1l3kp7ZcZHyM7Gtgsu8v8airI9ur!MZg!fh$_1<_cdS5s_Fwtx-%h|F%7d$#b zraX1zn$!^!?%E&*W<rt~yCDuLOV-?PH0NK<+F3Uu!(dn-G+|PuYr^%Y(i;Pv`PcPn z*USEWR6`}W7dB-xb>U{1G>Y&8Fx6Crx!|Y@H`l1bx3#aQX9>)DYhl){t*ZKNut7Hc zCAFdky!etFFQ$IxIxmFnz>6I@a++0*BId7Py3ENf?OclFL^HrJTIdPDf1`R@F<=;f zqp>)f)v}bUqQrDNQmk3Jb~YhNa&6N7hy8|#9$G4J13)h4`0>2d0pqaL&F~(0Kv_Bg zK$kCil-5D7l`CrB%vi1Er_`1QC7bFH%iq{TEPrDUy8LU}ThOpQRT$adhV9KTzKP~4 zYUT;s*Y7pW9N(}RHD%dMccWoV&otxyBpcB*KB{SHVZ)Y`vl$mg8MziRIC8ghWK8l* zrGX>qqvh~NgGkzYHU|l)dOHI=sbx|N7frh`x*3bg*r#j3a(PvxON+cJ2;;lWWctWA z3$ceXQ%hV|=|#!3%%^*onsP6K+A=SSGAz|dW#EfaTS;7>jEkx34u;2M^f8k*SXADC zoD`D<V!@ZWbl|kh5a6@HNTAGOt3`-?Lv){(GW<CKQ(Xm2R}QTN-5JW-`R0+1+u+VI zMD&z8%w`8mX;S@fV9WJnA<ffXpMPLY?=Rs`wravE-)JMbsW9n`TW!7d*4t#9*Sw=} z*IjqpotG5iib7sci0cX8e9+W`-*U(_AVk?&PsisA7ZonfakL82*Vh!AJ}a7X3}sd| ziWoy-5$v)xVd-@F(pf30NzH<oV+D&GrAI1Q)&xxnwz;}LQRA|v8hvT0Q1p(#`84uB z@X$#@%>(lL4*2~L{EjBE%LjTrrqX;2{ibxDyoC>-7s8i{r%Ri}&-nlyEeC5=OTa*d z8Y?$TZ8YGgN^SJFv81fPp(b&>eUBv%!ecmZ<cE9t!<)6LA+Y3QNyp&m<<?^-jix8A zZ8kiH%}^TI{<5ZHJF!nmubuQ3jgJP|<Mnn?Gw)$-Z-R#LYE!wrmp@~3=L1`#3<@u4 z;-Y~wvc2;4x#bOJ<E7auEXyc0g?*r8pz;REa5O%!9uPrDS6DB21o^`|@d43enw@Ep z%DmnAWsG|$r*W=u7~G4!Q8X(D3uhZRSm@YO@ICK%J1J4n?W(07DEPz<ifs7a#ql4Y zvx(u-JVB3r=(EW$04;B-e4S=H?|j`~UtZn>4S`0@zO-Sqh_P%FOgWo2JG_FWe0u8U zUCrWG+85nSJ1UhD$!mKww~scD{qkcgUlaWW{ew~}JZoFL&@E`elplp&6&gA>HDtEc zUNRp?Q4>N<tQYIzYsV<P8xh{YS=z&A3A$4Y^oL#X+it_CrmM2{&+3f*)7Mno;ApHO z{{PhwkJax@6zWP!)1rh))AqQ7<`E6tN9nTNsb^OE?iA-TdkL^$MU52j;UZSdUkrgv zJ6DWTp)>Bm@KUc<@&{W<lkwZ6;Y^ivLL>w@sPRZ)p0|<uu%V@ktUOAYr|?ehAMsu) zVYsTf3X?npzi+1{NYUIuB5Q#1I=N*C3`v+K7@}y!RxdPTJ~(7Pb~5ZyRTj2Lo6ukD zNSkjODvHvEzL3h$pYxjfwFTVK&1`ZlG|ymoR5ja;xj+Zh@91J8hU*&kfKK&>6&t4t z2bpo=0q4A?aH=n$rornQHn`PVG+6ZptU*_Htvyk(YnuC3!{*fEBPa@8IwlU|3tN|y zm{Fwldrc!ZG;BnD?p>-a!w-OBP?*IJz`Z?lzdO6G6$3T)iLJHJ7r$doLSHlwK;8>~ zFzSaN=r!VxWDvpxd?v^N+yhXL1H5MKn)55nHkFQvf``&f*shv-s&ZR~`C_-HVy1Ab zPf1;E(b|v_Tx#ylRBnN8u8FfJC?ru%Dsy)#V{M5QlU`VsUN}W7)eGWX(cyB-D=7D+ zGB$2p`wqsGEh9`T$Nuk6<!k`zTX&O`ZK2%K{J_7T$`ve>N5{iLsUOzWJni-P2MgrW zCH!$`(6<KZ9zh7rhU3O<1XHA=_K(hNxUwf8qy~Qz@rQjwhSqEwH>o4MMl2K<D7){W z_o!n&8~9kR%2_1);8pi`54W!v<;*NWxd!`+`esow@cQONIdiK~qwOnp<2gMn@S}p? zh^{&wtY9w_YK!)7?tq?l`n`AlVwCWqv3R&A_{7p%mx;=HH1$<FaP}D6!-Bh0NZxYB z6W<&ouX8(ccfS7J-0QpP>$~#xyKlPqH{;}W*03vHUz4wWa(x&6scAf>W_AfxV@OBk z2>HzPs%;>s9s_<|vw=XJV<%Q3iyC?dcM+%&?^wSJ=cjtD3)EQHft-<fVS3T9IZ5BM z_G@<$E~)o+{au7bjb5#@i!iALd++oqmt}+ygyE!-tpgPtNad8#qw9HWv#OdHcyw!0 z6Uy!*j53vt(JBb@;XXoJ&(Eo4ZOx4Y#-zeLmT-<yY9hOFEGm|6CQ!w~zD!e7k5~s2 zhY?ZhHiA|vo2^tfTV({x*s;xJ2(7Ud(qcmp-4OCo_d-_i)lE4DS~D5DQ;9CbK`1z; zf2e{3$}$C{u-S2cLZxkXsAm&qEfj%Dn*~xGgKyLwea`@^w*~8{Wj=mv;ikv;*+CI( zt}M{`6<Y{UQ^P?w3V~pFdHicUuRtwb1w?BT6x|jJgd>5B65ak`wn|~>R3blctD_~O z?aTdP;M0xugLOl?DB7VaneYl%uAwRPRHDfxJiP<1By@#<jm_Yhpe9qurqqZ;jbarh zYtOm=L)f&_#GQYXuz!a-5p;LmcZ3DwOu4e&YZe<4Boy6{AZ>$IeoRErBiRfyOm`&Y zk~)O%jN%Rkg2Gq;p=iVu3OvdJ+`>S7mK11_&A}#%=6Pb1H(0ti7jy>5`~MYrk4;qj zlUu<M6NG!gWMgC;{=@~@v2pzA2KHu<`<pYAmZ3uYqfc^sgw%FwP_4w&PTqC5-RPQx z<ll2IxF`4Cdmnfx_uFrOaZ-XQn0InnQ_(%SB&Q4<gx7nPHHUk0IrlBIQhQc4ikReJ z5x9$79&qoQp?ch-h06{*$GX0IN<G!)m&Za-BY1%6KB10x5Ljw}JQ*TTHsa)KTADxj z26Pj7++v)T%JuB{LeJg|Is$#l_8r$wxv8mw69jZCO+@eL0>sucxx?XGPin1{#f<(l zDT;nR-+87N{6N4q5bK-hwP4Kxre$+#>cko2#Hn?FOwZzG^+lE`X>0~2w{+00WIoOp z*zSI8N2f#<yF?;UL94w0AQ%CegffNHg>zCDEdG=g#6G<&T+TVM<}=M{&%!eEDt{+q zu0^yc+G4r$70xX-6@>?k(z%|5mCMz8_}1kA77a<2MSXP6!8m=+!8i!|ZgW$4K^ljJ zZHgl3-M|hXC_zYVCsYql9YtVI7ryV7nc@;V2e!{4$R0d5xuMq8&}=P<Uzr*<5~pU! zdI~`kS2uc9)E%1{sv+=jQ`?~e(Io*OMd#KHsV;MFY1}!cN}66&nPkqbZ=CDStrb8* z1?Plh?W`n_39w#8q$(1zq>G*|5Of_M+f9XT<b7=3jg!xQO}ZhoW1coqe&l{xDz5eP zH~I$Pa#Q{74_q^4BEAK`RB>wP!-EKU?~x4z#PQ_SD$y<&<W2G75hkuyiJ(Eaj;dA9 zu<EUZruaJkRSxMrrt-DfaHENNAa_?Hx)F`@W=!LN?J!W9$zYylc{)iT;bv1(t>h1) z(p9Qe)$)GIpXlgd6_r=<hfNGoNPfX5h!m`kqQ?p-qGl$Vo>9t9Mk&ulkpAC9DXg3o zlyNvTk(&EcNN4U(S$jHrvM>nE8k@*{2OGri7r!QSR(~#66}pkVX_zkMy{#KVkL+o@ z|8JYi7Ai6Y&F447I5&Qi=JP}Tgzet?n$K!JrQalJK6mpc5@W~*ky1Inx+aadkr%}z zaFQu670N*8vOV61+n{4Lit&T?GoIQH{v>#hvC!zCX(X%bTz`6fP9u^1?$vtzDNqO% z7UY&yCRSi)F_ejw1_+g|BH$v9uUT=K5FAC!AGw)ZjmC}fvvIyC5)P767DB5l*PLBE zu4V-p;9iH#vg&h~YP<2{@P^J$ZCc_B4L0pIu5UIULkFoBWBgF*vC2U~_}-6=0b6>5 zm4Pg<I14NRU@b$rAYe+v>N>|AIV9{e>s&*@&(8HwcCMFY=X!Z|uKAkGwPggcDHKI4 zrjz><L}$%(>hx$tp6d#n#=Hyh#58Ru>?V4ao{hj1b8>*HXa^G&V<*OJ=z)QgQdPgv z^wp}OK`pVWYVB5Zhrf&6%K4AVIsevCoa9Th42=aqpo#PE?6ThcYvja>yZ&FdT$-n? z&p)jAOPWgfgR#@x!apo|#^}P_VU%tzP&W)7joD?$E_|GNbdaV_`YXfa*#RdBd6bae zPS`v!dHior*glNRfZ?OD8E-y_(HZzVWLi(<t#5n#JKpim>F;{?d*1Wj_x;2B-#_Ef z!w&yI;zP^F7cHZuIX?6uyxz0CBP^p89Xb1BRyB$k_h1q1Lv_H1Fw^6IKd3?-=e@w9 z5`&$e3Y+Kd16=J=+Nh9p){oq3_FGsrGn6Zhsa>i4Am8AM0|p3JTui{ZB46VwTrozO znlP1)9D`e_dwCHjyUJl>aH}1z$KXy(BQpkf7zXC<AGP97Z325cG&A5XkEQJjX2*3~ zMal~5QncP?)St*xQ*$<v@23`p5n}CUSy?qZLA}`t>dQ_LU$f#OHe&vL%q9f-^>|>y z=$WY_##a6T<7QQ;(i90RTlJ%b7%l5B)OA*>YoT(x_hsg=v$<zJC-6OqU?!3Sl3@B0 z!IXVRxOcox2#)t<CuG(548^QAKqzJn0jC(gCKJ-eQD{wI_t~13XKPxKt!ZVpCcY*$ znFQc>)Sj6emjJ{;UT|KJ=Hxh?6OKP?=GsE(qNud*cCHdjQVv%tKG2U$o5M>W5d~qn z8ov7Sxc^4#o8jx-HTY88tl3CsFQ?Be&CcFXcJ`KKXOFMR>@{oei?fG82W1HrLp90w z^y1W0o5gq4pT%jJS)5KvvKgJh5K6X<{`_sTSm@g&sc$xm)9cLQYUG|Qjy;P-bhUt? zOH<u8?sw+K%@MBIsKJoxRe4#ea*h(@J5Z%f(-E>D*R{$;smkNE%C}3E{o`}8=koNT z$sT=i%|^KwuWImO|9C1j1^>o1^<Gz>nyOeEp%^3)&xfdE?Lu;*w~>`|#Y*tW8otzl z*g!Fi8NTvXW%cp^wlBT&ICx73J)8k8^Jdej#FMx%&E=GED>g@Pev@v+gHXI8)n|8o zSxQiq`0sa8*Ub~BVUW`;>Pve?L#*5)j=u}obA~tymW1K7_eiYZ!T2rbfXmXCeorkA zrIyVB#|pBXiBq!#&QDSp=Uvy9d~eqnN*<BM<LPjt(M8xShl=l@eaEm#nOkAalpt9y zNw-FBB5qIJF+ZAmY?pMTnUJ<<=i1oWbe)SnC2|mM)7qZ111mS|I6?fKu$cLDiHJx2 zzH&pWxu!+Vnt6x0jgXZe16dBZILiT-WH}&T<GiA{44LdLNACBhvD>=PP{>{(cNdbY zkP$0a@CWq@);N<_Y?!>sj}bA5sI22oK95wjKc>vx$&c_|@$+W;uG@5Vu=kVH5hG(p zNltEAwUHV*D>gKbGH0XKqkJ}--kaEhIl{Rjq4Ye?_89<~qv$LZ>Gwp@zet@hie?2_ zinbQeu@%6!kS1}(p2iP?FI_C!f2l+JZT74JYv)vciUWb$7puYh&eh<?w&)DS)$n8* zime8O1k{rt7#@0KV=?hrP|SXrYBMncS8>h6=u)w2*gu_s(4`Ai{wh^zJfBHZaP3l_ zmH#@uXtb>_Helt?)O$U{%2yXy`I)32jbT8ir)ej$to$#;faF18_k@wH6E9!G@;l4) zkHE}dOr5t?u#-&6G-F}XdPjztpT@q^hb%K^%zO@i?8I+5($AtqzbDdvCADm%&kC}n zpP0GLfvB50oyyFoDKno|!_2Gfj6`?_Nvs7ke>HW-$ai}gW3X1V%P~(gmYcxBt<AI8 z0m*n0*rTfiYiZq>Ih)|Dp&x9yMrV@QA7Ks6J1*?zd8*`SIOQ5}IMlg!X-&tZ7D>Bv zGJ8Bx=mia$`n+nxTH&!2Yc&ktAp?XVEhFG&3|}K2QC#}R@A$3pLY-lc%;qhu+Y{0- z%p=9)v8+~oQkj}DE2fwyIy*5He@?wn8Wo9dLP4lV<nJjQKlTfBnq_usXb1Hcy49EJ zH8YgSPlWxLU%@*_B_!xtyj#_cGyJNTfG^WN0?u{&0fcvJAOY}}6gQnJ1L;_&eHBjz z%;HoMIZm<wTZ;zRT8x^lSwH>`S_8VBm87MdP<%#0g*o0OZnJV}Y|@|<^DBW`Q>n93 zsi(*8Q0i<NryCSX7*ql(LpQktAqkjNL4T^?G|fmLXLtjBER%Pyo}0>8SGhGI@#M0U z*il_csh#r+W!inIdKpJm_+AGJWyHxn!jxQ;O4*dC^LMSM<l<C;O-b6$c&QnV*XFt@ z3*g!uSHhqBHCwsY(jdz6=A8SGUj3df@g9OHR0i(JC$XMWjUu-F%Z(D>)N@s}j6G$` zhEo}svu%!6<`(K;54{d<W+60|X&d=DF_RclOe=;{>Ty3%@x)5sZ|(fGNrjG%6SEq= zpkEby9MkZ;kWl-@u7LvzTUjEC@M61GW~-y8tH>7A>HV3ermvI4o2T&~rn`l+jUm9u z%qi%{Rfl|rP5Ys+2(_vmT(jL~M_TJCjkhC-lZM%@(uV)v`9G#;F`Vr}kaV-d#ja<q z$4MA5eCnHShCjv*Gj14R!x}fd9bD_>a%blx{FzIgCmiWgj}RjG((wmx`T++Xc;FPC zc06e6)Tsya#3MZFmC9S+`qsC-?QL&=J3Z^~oId?s_<Q$z-uvG7!M{G^&_fS{gZ+aa z`p}1uIO2$peB>h^{piO&{)tZlLALSNUG%r#>F9h$nbb_Y-Lu3GN|FQ$aow}3QRqR9 zQTvq80JxJnGb|6sBFfEA3Nu1Ag}C@RshU$X!O<r&)pY7knDLgD${I!wYd(ZAsP^Mh zZQfw&O;z5nI?czjRkldTatLsqB18=XU<`G~xiC|kj`Jg#+TgU2P`JxD$|GQe-u){C zV=-8m{t_nF`7ryK3#{fbz7N^&g}~}f@emsowSm>F=>ucs{NLdWYe<3BjF38<uV(|R z`TAk{`k{P11y-|ZIQwe@tNFUQ^oyY}=cEZR-uV8S3E-vJ%7ZG;|7<VQw5kkC$b`f6 z0(K6xq~5`=`jdZtYWs&e`RaRDg5cz<;-o}JZw)wA&!t4hdv$)-G;ueh$%2)3#Dn+v z1F@N!dl<m<E{io0A-lM#7K;o7pUy%YKvg=LPeiaN_0t$4y``E+AdU@d5HNIxB(^WN za>a0c^@!@YSW~r$fh_|Z**kOq)h2a9EN+rai+W)6MOt<A0LoU4gvr3)hn^$Mjud$y z9>ar&LDY#p`c@i+VVYjMtOVQD5PiY|hGPhVJ6pspcnIgmHB@w4MsLIbY!QqgXw%}C z=}{5&>f`xxhr9Is6%KbRywc$*3a@h5(=4s_A0)6=wZSykH>T0uskFpCr~J7<jJUIe zeIZ_~%!C51!6)Q=F&M?nq(rx3#N`$VND}89&RhFKdQpV0g!bjiDJLVZ@eQS}E!C{2 zQ>AN|C}$<&e#Eit%JLuGE#YvTE&dh3cs&mh?{7jO<`h=Cn8~m%&*Ng<yq~WjzS4hR zw{G53=q4R{VzziUC60^ExRt4!_BFb>U$L8gW|vquWi<Pu7W;kOy7~P=HzNkqyZIpJ z0p7XFQ0k_Ajc(G*Ry&&<D;Zm8?;~+FEVI9>HBtGxX=S#NURjZ*%GSglg3(N%Iho#3 zPS)@gVob42gvde6{UCJ{%MyAAub!9CopL9BG6rW7TnKs5{qxixTL`=5DeQ5gjz@!H zAvF6}kV(&<__#|@ha=|1U_bez6TE8=&+;{R&;0jw>*lWt-PAD6%zBlOG8`XD3!&M+ zMmKjTb~6@&DmgM59&(O_Kzm?qXLEI-o8dn5h44qt0~}##AvF8f=q7Wr;S^J5He(@p zPh=q&SF11HsR7kS`mRa6GnvW5%OlIom#kb-X7Wt4ODmE2CiG@eYFh5MqJC37E)-dl zdUSz#J+#~EOTBrll?Qd%={V5ycPaYjq#@ce*8|3xWgcsKQc?8vk&j`i9_fo30a!`& z^>H2$Tk8+kjae^DU9%O>98xth<s>$M^mD$<!G!!PnYC;kG6r`t5-}=~9$829oyA%< zMlDNJ)~s7MPc3v)lh0*V{26QjP9<OF>}E#vNjK>|%5^hVyebm%8hk`)#jlGZadx4b z)D>%HQ})E*Q1WHYZe~QEw6Bqu+1X?z>ni%{XqXqL{?+lbaIO8wZHX6ty#BUCcv8iy zD*dkER3>)nbE<I9zQKjnLo$nprWytGHcxv!|G}T}!IDJ|TG*f`PPPn9au!-nMBxZD z{&*g$EUt_lc0_ET+%qtl!GRJTC_#aeuL(5Rz*Dy@=Xjt(*|R2HJkSgC4Q3uq7aj?Q zW-08px2dw3r0Nh&5j(t<zSHi>?59ClZ<gnB=l~nO{v7H!bvn_j`L$ns`}8G1-Bea? zhXRw~u%H^fJXu{7s!xK|hZi5p48OPZbfBv42KLp7sUo9(9=gs-nl87me&<p5k})x3 zNXvO#C1%W1(U-^L82FF=II?V}O2XUBk%ZA!)j&!^J0<nVoH(lg>Ck9jBMby{FQ+e| z)itQ*v{cRgYFeq<ma1VTau$`ETaAxoXG|Clb!*Lqxj!@2Z0;fIc0Oeg@>!P<-59bX z$~P1vIeqt>RGqnoc2-A=cueU{z^n<iN!BZz^oAdmC*NB#C*LQb8SHMVgQl6s-Z_Rz zV|%0wRIHYadxjo|PQI+3D|@+YFJu3(CF7it3Xon#y)&u;%5RcdrY;5-rxBTlgj$pj zKVeV~HRFH{=h>&v%yUy&G}A>maW!|Sa8foLM`IagDhtO-cPSjkeYe7)5Sg*Q#BFmo z)(Z~BE7C}Yl!&&Lkz{frlaw>|x7s4E#86H`1wATE5uQZHf$^l5tc&h^P3n#5B~1KM zBT1Pn6&s?ii(t|DSE|l(9)#P7%ycM*$We9d5S~fHreab`)}@b23w^A~c}}Luh%Fpt zaz%uF44uUKs3|YAeGHXEDNshzflAiP2)V7$$?^G#lrv|@c<y=#dl@Q;^-^;}W_n3v z6pwtH4N{LY8uo-u*Dq{pLA}CQHFeaP`_tHrq3bzq=X-TsqwC7i*;f}Y>)h|Zu`sFE zc(O1JGd+_4`C*!Yd76PnvclBvidL%k-UGD`vNsicI2A1H0=}{VbfDI{yMSw_|3H&D zpd^|M^St071k#q{7z7V}YcgCWdl?U<hG)K^)F4~A<amK<1KMn$s@$JbRcIyl=#hk4 ziN>tgIGf11o0zkCXIG;Zvw1b0)I@PQs<`E{?N-(T;e)6$$%O_nj_<H{a6*zNEhn|g z4g=Gw$U#TQ5kFHoN)D~f!Br}_z@}F}TlraO?=6qwX9qtK`Z<K#eJW)F|Bb6<<Ou($ zo{doD1Up$d3i0yvJM(@XSYU`W)n=Kc6>Np!o6#&!X*Qu5ezIA9ve{-f+ssci+dPMB zyM#w*wmCJcsSP(aH#~~sjdbMGq$YTfOe!Y=)$t@Jo^+xw+{>4<o}9cgegHSAzho~+ z7_cQvo6IF5Es*=&0y+Iow?H8CvYQzcd8UHZ39?{qET9xG={4*-Qj|_=+EJE4Y>U?K z<t2q)j>+}%LGR_#<?GeU`t4p`XqTp7c6RRbcJI66HEj3lLc7`hcVgusZ}+%|Uc+{; zE3~V@42gl4O(VbfrQJ>8c^!#CO~5M~1wnwV`FYM#3G9uGO;$v4e}1_$D`PX9POKVZ zGqsMmIn_FEXE={?9Ih;;EGB;!R#b24W8v#kZ?(_0TKZ&SO!g>Niz=X8|9-WA<pMGR z5-Ue1>$H}J5hKmhni<BhA*Tv|n(qtq(15=`>{DiY;1uOO6XVEPS7qp|Eo85Up&Alh zGr6T);O|k3O}x5Nx^wT%t=509Oa!U6*ezf4>Y%A85yLY-RrCW@n)L)L6b5(k#_3gb zmz<M?z{=YX#l~n4O<(3dvbm?Wj%#Vjqb3%a6<Gn^u%rj|-cY36N~8>**A0l-9Eefz zO!+JU6z%xqyf;A6iX4h44|=){MI6_ZoR%@G8bvOg%;1)B%12F~f?7^SUQR5IbI+f; z@PYcK<?5SVs81C>uMYwerOG%mfYrjO6*_VLsfaCe%bKTrB`ZE=zD=A4Z3zjweTh^D zgNljnI+#FqW=l*8S&2if!1mlZJg>nNJqSF))o2vl6y^x8LgpT%QkFy*lImdm?8^4N zV(c0SO5oydveZ3uMh&~FxUytzjU@_s##FA@YKXT-b9kdN-?Pka)2a$Z&Y&pgj3LJp zbnRug=q_hr{-df_I|}%;<Pf7#i{wG{dFSL*x@GP1nc$>R3-hYc!YkT>E+`(82$8-r z0T@Od?D#s7?%SH7AQAG=VAiAx_ogPF(jdcZ;24QUYp4#5xBA3}Rt==`;tH3C5L&pr z-ChAjYB_`9sJ75G)lTxBparQDFK#6>tCA49PB^)`&B?`zIUlA34I%&pfU%}V^RZ47 zsBEOKbp$E|6WOeUKjrTrM0Z;@W+5wcq)2{{;qrNgKC2o9jG?oDa#Ehy(xl#WO_Jj3 z3QZRm4TWae^krzvDm>RpXzKL=?&>pjG~~ibso%?0E);3Xm=?H^D5-%>pxKdGM+Sg| z>sZ34ruIy&)^q$xk(y+RR7zX}(#mSpY}STRr&*<lpOYen^Nxcez>^YJYD@@E)gy$V z<awT+6WOz>Q6fVLq=o5RA+pTUnx2#1Ho=qi4CtE1k_=~r;etLaode-r!|s*OO-=ko zgVt47FH5yTo5oU^s096tbIILA;aU0k)%mGDLm@=cz;g&^+rK%kS5kaJf~ilQx`i10 zB$z233&)XjKwW2Z-7+OS>I+iPJICcG{mMy0j3`*5M&KC5DPyV2XongwTH{bc#`Fb7 z;f5@#UQJ40zaL(kRJkXTZvv@|!q0Lnm}{Xiy{*d88_mw1vgj_Am9rlZ?m+7vaYwRq zu?eP@`+!*t_>1uI8v-cLL}GIOcv(AGlj|@YwfI1EFw{Ddf#9RE;xwS6Tv?@ULji26 zAdQ%`ZTxJ6wyCy@EKO~9t!3Lw7octESUu%>!n5MX$Utq*5`wdxQjM9c@i=){Nxd?s z7s{lN^JkjCQku-!ltJ)l#cwnDSOazRnH)+fF-?{TmpmOjkD7G!eNHusWVj?2LQGrP z*MBNBHx;^Ax1TiF8tYv438W3>;J~h8xt?lX8r#z}_WAW6?do+OZ4_xVS{U|7#&J~L zQAgpweblpBYhv3K%McYC5XWLj6LpGZUWZ+{Nap$6*eOhVmV12kU?r2)e6aF-N^zb5 zVRZi5X0#KO)%BFHjc1t|xwmH*XxQT%{miXKM{H8q@9euOHb4gvJPFCdRUg5VkUE4{ z<rTpBsqRHeW-7s_W;iPK&S0+&$jI!i&Fc1Murk%pcA+;>0aem%awF_by;z(jcDXnL zQ-*eWwt0CB4OE?VerA3IQi>c!DF4B>5mX0X``J&>$iyHKS~)OJan&UQ{5NLENdv~P zCPyyZmT`Lr=;Hj(uw_ej1<-ff3|lkpDW_;mE?do<YE*AmxA0II_&!{s8stl%AlIm& zUWD^B_mER}z`nEucQmu;OHG$p93gC<UR^mAh3?^wAu*fAaetF4EIg`ZM8vX`WsPN{ zGv)L?(|)TIg7Px0I6yTGVrwxwx*yM*Y-1%qGyN|ZW?vfXL&@IbmE@c=X`6D=tUc2N z++Ygjs#_H;C|5Xg2oeqzYc&BE9BT+@PcbewFwO2T!X~-^qGD8;5F79e`H^#~S9sVc z7+Vm!OdkQ)=j48HRwQpWup6aPtEz@Hk~}yq%}GrHf1hM4rjwkCoso*wWS+|vQ$kF| z&Pv4!>H8n1m!NH(_Gz%7M00A&xD9kUHC|0G=T;NR-Ml`wnAGhPyiaF1$ZfjKCl}N3 z<Tj@oZQZNn#*0pglP*b)*$!Gm2pQDpp_|<nx9QHcX-E!2o}X&Algtr6X6Cgh%7Xq$ zt<1^+w-DE<-ls>smd|{kqS^*6nE?)1huTxmVbsE9i-30SCTX&BIS@cq4{NuKoA$Wg zaidq6E1rrySM=!01`hHNBK%9jDR@Rj4Bj&G7?nqpLuqbkDF}}VUX<0z3#`QaFfHE~ zgAAa}5F_pb)%ognz4mendoiZ=)HJm<gzdExLHRPLr!obqUa%jidh9w;byj5jzyBR; z^y;RP_-4bkCu<bjrOb>iXWHya3`-V=q}V*lCKq8?^cV7B<22h|-Q7qG=P9xGXI5;S zXY<SZdU%da|9F_~9hN4JS>hx~+z0gto19<!)XabU^k+W%PoMkTKOcGIzkL1+|N6x* zed)_b9rbVj{+0ju&#(U1(ZM}>2AYfNTlEIg9qzm_*Z%*IgABBUZ+|I-B$wBc7WK_8 zW(+K@9D~4vpVe-rYy~N^9eHgOKT)iWpLl(Ac?_yxOlb?QvKvb|*$!!pmGnvp<^GE+ ztlS>(R{`U7kuMYwOCY*=ZPX}ub=%>?l{=v<prs#4viT~c4+YC&+>CpX#JVwgk9}?L zZ1b-j=u7RX1LyG6Eqwh^3v?^1jPJf!y6|1^n@l30w;J>J6XlBkiD~d8a-wx$oG){n z{{e&5yHsu_ztMSZ7G`i&6JGfW14(oMNVj7Sv@7`J-~SJJZvrRRQQZqq_snQE$sU6V zB5W<m%gF0E*jN}LrZ4a!5)uR<K|mH|dnn0EFyG62ae{2OwT^dT8(TJDj~%dtu|R-H z1U6&<0}8>QutfwD24aE|wjmn=41E9p|D3A2eedm2k0b}@`$j*z?^?Icsk7IqQ$R|M zJv>0Mj$UKaM1QhpNpCnDwVGE*-3xG$!2?`wKkd;u_cmN&m<2|OTnRt+o$zxj0&Gd( zLWo!hrU0>EEha2nm9X$p!@{d8u)y@c3jrZUQ{t8K?^PUZ#ok3M=3-;jR?oseBE*Cw zSX;v?HN=<x&~EMX%}V#wmkit6OyTD%*ekV;=l+0g2YhmeNfx`dCx!Dj^E-dQ#t6}r z4+m)t<i+yhJY?BhXa^FUcLxAy&xVK|AsG)jwuooXwTXiG`h=msvzX)WtFIhRtp3t> zaIi0)%AN}8UHEt`hR~nwcM2hc#cW;@Hi&at2A&&r@ID%dBLRhY4&z2`I>ckTCp-b# z8pGr;UR+_<h>a1eV-GNc^9|%cKZ4PqZyNnl_{)I2-vjcn^})p`Ct^D74x)6uuHxy1 zK-CalQvt0$RL?>m8&)%`v5>m+iFo>zBnc#iajoI+^6NvW4(L?A13e=zBB#}%Ml1%G z0x=fJ+e-W-!n`%1{e!lZBfk(b)z}os#W%;r+AvA3={lu^kr989>J6kpvgOIFZX_~= z3iRsuZwm%yESe>u1QgQXZxI)v^MgdxkZ5m;i26;@9(Z-T1I2}OsrPS5z5k9)esJxv z+e9SU?HJi?de2iuc<H^n(t93U_>J~h8BqY#u_d%XaWV;Mq}<Lk&@HS;ZV!)bH*tb| zCn$jsu;fK7sgEuz#{!+3HsKI0%u?Fw?$o=xh8PoF^s5>Z2pI=05;Z!<Z%W_{<|1zD z>DlP%D*^&r;n5s+ChP5`zgmLA0<e?lCD>zmZ%YvQX9Ad0bq=Gb1A7dpX^g&v0)&gG zWINPf^T(9yYc(e5C2PrrSr6tvV#%{+JwUQe7We-Z(nvkYKjvU!F*AE{0BDp<<h7UB zwZn?H7wc6M8M{o2XobRy?R|(Zw9GwcbwDP!Q^5oMfm|uMX9ieeu|e)Ogl8c)#H(R5 znrEPISRQT7M66VcUMz!#g&<0QJt_T#cn><|V#+Kk)G4qvI<UYxFaT9(o8pqHv0|=I z8{^_ph_roN=gw3+$Q_6bmg)ONiHt$ZBYgpSL=xUlnE}Bt13)P=rWr_TlN4y>u+;g% zM4c`%*nYdj*zbyG#%W^OCC60FY@U6TAa&ce7c1-#k{pyg(4H_qhrUM%J_rHr;#Auu zJs)W5he5M+$mJ<sw*}VyjUkvo95Wn9o(^rIG=@<{Qv$6}o+_pPXN8^KrV6?}FMiD= zr;)h1gLzIZdI6s<;o*5DJQUy+T@haU@^eV;lom`KZ>kbqb0h=mC_tDoqrC(sx+JJo z9A&e<%AGe0EeXJx)Opvod_Aa8x2wKF=Ebt)uISk+6N1Sp?i!*;J08o4CD~ITvIDhW z(q2;%Q>q5XJ)=RSD|=q$ujXc)Ag0>phA5hPSYGN?L=`C?Uz$Sc1e?Sl=Cta|%N?2p zvB!8#mC>+<86U%oZC0TAm9tQAZkAw9;e0LO?SNS+=Z|Cuzh>oDAlv#T^6KfI)6+id zhZQRIo#)o4>oIe}StqAy4uU<yNXV)J%N|5`qlE(5L-w7;#C5|PQhI{+)W9Ma*kkoc z7<0Xs;HY;~w&0SicN?U&EpNpFYTn0PW$jR&AcS6sN#qINjuY*CH$mmmh^GOaQ6))= zQY8U@7ba5h(>yh3^tEY^wuxp>X2aW>X(B~H^A@z!tU6TCQnR+xO;m=90a6$jAJd{K zWc>pnsq5Z9ozj}e-Gc!OV}2f1A;5a%eXkghF!TK!W|m5E+Y%kOCY`OWqQpA8OSZBV zHPeWvMl)g`PWbs<K~nAa3wy$a1AbwzU4XM%4r>$aa<f5xs7aG}m}y{hE<q}rvaxVx zLdPim`yuI3|9~CcgEiFr-Ct*Jk(LC#mN>v_9*i)ko0^v+O@&O#raew-kSm7|Q-kxm z28Y8K0IhN)F1su_oW`Qd3*;FY37<)fmdz%|*bnI#`=K0TY-s3yfjbT}V#{`CVn2XL z4un6rM-RFK;n#K%sz73dD%k9VDnK|NS9@cE{D3)`w%mykvXIZm-0)M0_XG=(j&AH# zza5q~7=$M8yBsaX-zczL5VZtcSV`j-Ss7<;;1b_#P96WObv&+!&snPn)G6?0?%H1B z5Tvy?|0$eb)Go(MOV_rPzIbwpNc>BHKC)g>ggAdiCw6OU)-Csw(5!?K3%oj}>6Ape z^J`>*ya*-k$OdhnMoR|*pd=CkUYdz3bz#|DkWK&i@j1RigYL<ABCX#e6&7KgOdr~0 zWk;6kLx#4JF1$QF?z#|<o8X|9%{wn<Ih)#^fpsq7K^ee_NQSv=k=>7Io-C0JK?8?~ zNN`Y#zmOG&Kz^bWAd!79Y7vuG1ub$2T7;izx!rmQc574L!CE_vk28Uukv}trzJ@B) zH&CW=dv`QI{fAC*dsO)@dpsgh5o6H~3SP_;RPac|R<<YHyR~P<4)V<Ipoug?^h3-} zC1D^rF-ZReGL)hS!b*z5q}V)k4ls1Isw|32GAP@#?j;FxeZqiGdufeLn}jM7`0LU; zJ~hC#G9tq`KknZv*@-um-o-jSyo<<9RAQ#kQXg+g?|2`%NTyx!72$eg=^f255eNH% zwbBVEx0T*KUf&C9i0@f{Qy*_n?>J5tmEI}B^``WW!xeLmA}*@NY-i~`&D0)ttlyH} z^XVDQA;kn%z~xdk!S&Ykj`z_L(*l`y8t2{VJ;z7N4f?r4+6ZPwdV4T2f-y}W-q_k4 zrWd|o){5Pi!4@kYZasGE`q7JV_Ch<DBX8cb60nE4?O@I|ZJMOvp5?4N$o<OE<qpXT zlcD!MIYK!Zk`<u6+SE%Hs2{qkGy)r2v8jKxP#!DC6jkCxvCYWAZ1ZpaZFy2ync1=l z)tk~6Tw&Q_=MD;Mb9&qr79MBHQM<B|6T_SdTOJL9S<$X|#@n4&q^^PLIbVx`Msq*h zVtsB$6`#mW3TIbOqKu5V1*$kh$Qs89vdPp{hs=u5bb##g^teNY$2&mAMBykZ=Lgw= z>wVqk+@QT~PSCDSeRa@Sn>kodB`f2a^tgkD#{n9KC2wJ9&^S?o$}^C#^B%N+ne1lJ zJ~byfUYEM+klFg{4uf`mdfXwy;~gMlDvs%nc|-P%t|0sToRHm=y6TW|m3YT7+mRl3 z$nZEI<K7dw*pbGJ(;-^OIsY-c^#Nm{xv6nxPRQPny6TWwhDC=ldt-XsA;aSx7_9-w zOqb4k%%(2yiqXC{Cup~)zB*`RjgEtMM|#{r!{Z&uk@Hr}|2P6h`&L)v_^ml1yEApw zAuFW1w+HQZrpFyJJPybZhbWQbX@E?|#r(-})2F%-A#a>hIKDM?)geQCrSq8GogR0{ z@HimD1ZN&H-vykrN3o{#imdgm_L|b;c$1Ded<42(W9=oT$Ecyqxq=!S^h4-A%!ei2 z_x;^uNozW3yvpP@%do$;f$W;$|2Ek*u(j6H)@o0LQPlv|4M61pWWr#Zcx)6;YpW_B zhGm_(JEHH6$ej_nEn;T-B4T4imTqR{W{kY&AkS1Jv0PQK(_Vzfn=>hiW!95e4q~>C zlg;=~X=L~vX!e2>(0-q$`SI)N2~6|CL=zm~zKfR*GIwCemjI}a<1dKiK^q6*fFq%0 z@g>>%4I7qf88Ie|`8&udAkM&RvaL@Od`y#jfnFU#WRTuFwl01>+^)7zNC;Fi3}T^4 znTpx$6)p=Ux!mSYmeRIXM8unHYW3&EF=G~08X)($SFGfmJX%Ph2NlXZ2mP@bKukdb z0)#kwmtcv`(2^nGYgiettJQ9c+o^`WPV&U#s56xzS;Pu@k%wT@=`%IrTeFAy3=;bq z%o+08_o}XqG=`BU#0ii(u&7eMOkbD*_K3w>YV0D8f!PD{^jmc9hjuo{m=%q=vthl= zw7%zY2)aV~^tE%M{F)NVpW6}TxIqL>v%kRFuGmKp`Js#)I!wCB-5He(g4UFMOiwMu zBS;(`j))<;?WsEtT7B<K-GN=5k1MKuQ|tT|o7|6ePeBMm>J{vW;5GA`p)Y9D`;sW| zwdwmCEo^3Gl7k7MULdF>C=qB<u$s|Z4C<K}7flCZ`(WWgGnN4<4bFD92VHZBh(k#S z0#kHt4#ewHrzX$P#D!HiULmBg26j>_jCf(5OI1Bqkw`)~9Wzd~t;k@3KFAuH*nTSd ztNBC3!&%bXKATR!I_U(OA)R3QMkffrjiC`vE^;J8$b5=`0ys{U6=tsT<4_#?KTlx# z%oQ8X`<R^c;dpBj19Hx|d<s*xs0d=BaY0iP(JSyKt4>?M5XpR;isZ;EB#pi?Ac-J5 z#wo%bP6T)L2!?ke4dnuCelHPv3~7MqN}}#<3E0;?QDe&Tc)_3xv1pr^aN>7DpJn}o zL5(1%3pk^Q_onhA7)}I9IME1(6OABFkhjEC56n7(ecqqTdyZI19Fw@@9jWs^Qf#1o zq%h?NQnctWrkEHvIR_#RLx#)~>Mi^?sG8;H;1=Khyl*#W^W%9+F^^j9JLXeg?n!-l zo9PU;mq%pa08&l_%R@#nv`H{QG1DO|N8y0;LqS+T0Px%c`f4&eaCH=|<8g=;hK}^X zSZztjygPOIPV2HwM26`rk!F~%L8s5@xfzO0DdT4$Z5ujmcnMdoQ)%4Hl(YrX3(V0u z6V%X)<P+t44`q$5Sz}xF;~pivU4Z*%;QoLVS92v!Ph%?p5#e|#`dR)0^V6g?h<HZ% zz56yQL75X>ra03`+?&Aq(XdFG&1=-ot$XI4%WSDlgzo_<CTg9hr<s{+z+#q46O+>N z2WpnkHVbXe{tm6Gzk&Ut>Z~^$$fYCMGC`?o?PCCQ$S3h}r=bb>4{%0;vugu#R;PK2 zP0}(n-&C10%myuhozxgW^$fp+*_n}SDN|Ea{T!tMalTB=eTwg+elwcG<M^Qt&{K_( zrfwqIHj=GWuT-LsvkybrFK-BC8ft698>j)8J+m>w{2;aPWN!fz0TGOWY*p+Bqgeyl zgFUGuD1i(k4h+p)qyZ)Js}MSh<l)IdbwZUM87}H)S9OLOca1@zL#GO%TQ%6oDJ_>Q z5+>n9!X%tXnBW9<DONiIpZ!gJo7H|@!yEMkQ!B|7QHL)LGMg|+p+r~v6J344wlJ|W z!fq9UW};On3(?eKJ8eM%ftJn%;kfmtWJoa<yey<^WtVKo>RW050<Ej+JurYtXnjp) zv|%~eAekoNR=Y1~9adKW2B`w_k770f_?Z%b2(bXDJb($PJg|Xz43NY$?SLA9mkK~Z z)g!17?Le*;8JW_8>pVRBlZnPa-vW{oOP9Dq@dXk*gCM@11S0&3AD;%)^-Zz@$p*+J zBo&DC{*jMz=?Ri+@qxkc0WBmM^w&_RM6V4X`>XFIpvceht&x%D41ZaRfk^mXn^p*E z2Be^({qV(vMxWkg8+ol1wF1Ojr0*^@foE%|2_kxb7*mW=HtT^9jZGwHjM?0Z;7h5; zt_ZA>Kxah&1!{@_0!I=%TGd5td?mG=pJ$2g7{M;S^HAv>n`ePT62D^#F%j?AO7EmO zmN%X8-zp$bpE%q<gbaSS2Y(@GkY6&2XaUP7b3*1RZEI#a#0VH7K!AYpf!vaqm-&Ji z46nxvP|3QqW_f!dUhrFZyt$_y7rjgubKN$!;wv6p;w#K2rAM>WC)RZ)?~OSdptOE4 zB67CtSW^Lk&`Y_%VqT~}L@$=HfZqU<*HIM$Uf<GwIv!j~g9L0)C#>up)YG7tU9ef@ zI@!WECQPHd6=_ck=wGwa5x&&VFZJt7Z1m-76arv7yiiJWlJb;nrCnT$xxoEoYzW*Q zGQ6q;`^zB_(H$8UJb>>A=?*D`V>t6eFsTM5$G8CXW%_QO1%f%6j385EK_XDfPv2au z!EtTshO04VUgxtGqQr-Iic%ixje{Xcf;8(?G9u2Byi^?oFHaKN#JbEXyd!9E!XaqY z+Ox@bh>_7Qnr8wI)O*`n0<J!{52M9>Xqof&rc}3kcxB3#Pz}QMLf8UtdtNa~hZtt) z2&he6h5|)oDI2>aTf2eyHbacNTq$Rq&u>R}Bl65@$fFy0!C)8s;~NrY-`pp|6Z>f8 z`kU_;uebG|=g4(tjx(`NQnGjp&sfhD{K1l^FWS9yKxx0e%NB3%v)jd>S#vQUdLh$? z8E`_=_F@Rg`B%s>(48{jcuN5}>i}7DKp(a$y}Zq!8?Oy!{qdEb_iLlMW{{ta0SCEG zks5%z3B9%$-x`n=xB`taPkSJ<bug#me6`MPmx5(D|5=>d_)X`>Pb9Y#_Zhn)v+S*5 zNaZOM$!ki?P#~{BK!+QUDe#~=05JB}wC?md>TrboIkAI#N*!dyZtR1l4(@v7JGjd_ zh>*-cwm==ETmEeC05cPbDcO(1I_$wRFRUq)fMLu?VH&PkiaHjajgIFOFupfw(!_Tq zHgEy+toaI<(q6_~PO}oANUls$lt9j0L?)7Wv7G!0>0(LXh2fucNADtv2W!He%MP*y z&rCo};D;1}gw<h)8oipQAW;fXhP9cEVJMEQ4|e>3q)&e0M8wN!lV=DX_#!QMO5`$r zf}C<pX}INqV54PphZ;nr{B$GDwN4ppERIYfS)HQ{RvK1p=NM4NJ4=*t-h3%zZBC2} zljov;=L(achzpHC7)Ef)SWQ(?rFRZh35G+iIao$LM;WVm9E3(uYR`i*)^tG`+&%A{ zpD<-Gx|0n_N-GR-7WxC{T|(u9bcz_>A)#F8w6i|Z&bl1!u<|@3Jz5EQlv3rs678Hm zU)sSIW3kkjXoqW{VtV;{qaB8xoOafAq8&@=FG!VHr=9ifw6pFQ(a!oVXeUONOcnlQ z#L7uV8k5v`q>+|SQ1SSp9C3V<gv8x1js<nxU!o4nXU>N!;2=}Tb~0+QaIZif+LVBi zHEA8pPfF`(K&5pq>O>z__^3c12c16FwbO@`*fEeTEuitRYA0;|0Z4vwdI!P8foxd9 zL|f}Hh)CiXbAo9kVX`<!FItnw@Zzzcmj_DpV!3ehpqH^Cxx}!h$YsXKWo;BEu{L5+ zzt2>uq8TTbwe94B80RrjMU5_~MZsgsef!B#3o7vpWFw*$t@~ug8mVQ%sbxi?mhl|5 ze4f(90;5N7(SEK(EfyG^2enKTsYTO+mZS#5Weunr{w?P@T=|T55-yfiUJxz^oLbhj zQ_J`<qLvk1P)iKU{v>4!BCP}238EG{tIQ`Ou}syRT6W}=5ezvz?GDgaNH3N-e)RP6 zr4qex!f0M0mZ_39`Z9ZHX=I?3{VrZ)no1i1oDQb0g@_9jv)?IZbvwl%sC8@v3_@;) z*GF2^Yw2S@ISEtqg5)0_L6mstsME#}n?1D$1s{<-uT5dJEeuPy#-e@}p=F2`RN>K8 zl(a5IS8pgpSDA?3+!rcBA_+l@BpDl3R{8F1Pe}K`AfgzSqCzq|JYd%9vw84CD83*U z(3IYGW*lME_kpftrSI?y`@@APzi_}Vpc54_(>i0O?a|rYOBX0s#UyG@@u?pus>s>s zdM>`j3y4iD89-VHtVUM0XR^Fc1KM4<$BbmDOb9047VN}Bgk4K!3ZXgxb1?Ls!HaaB z!W1{OB7Qx2z%r{Bo0;gmG%bFZ@qD)?bEa98k+Z@Ig*JG+w}#!5EFoky)sbSQ)8I!) zAN#hV$J{&47T!SOuSN&~rYNQUUO1@8h8ep=1tYjDZ4a&kAt=zMUm&K@FDP1g6EzBS zJc;8{pyUbohG`Wr)CAf`aC$vn$b}cywFh7i2~j2;)_MGOk4IM5Grlcd%gI_E+S6)Q zq{8VNd<n-1v$rJ7e$^IfV2Td}iIHG8fLWo>HgH;8RE!M6a(2%G_Ch~!y}TERONOpO z|99oAr_g_d+v-g=#C8x@_X$NDBB8C9b9_(HP2Jt+NsR|E@84|TIw!yQTI2@;Ss*9p zgo=Rsmq!cexGkZ><6$<t=KcuK5rgdVP28$L1cJ=u`H+Tv5_K4U9+!rHDY_q1ji&$w z`wbJ6;WFA7pe+byBL@sEsiS~S%RFf(hbgHRRKqkHhmk?_AohhhYwMW31wbTA6w=3u z<VZlAWC*%JQmK?5Lu4JG2Gbs57YYr`;UV*&cPk=p$TkuEU@q4Vf|RI_G#M)nVtndJ z$4ZPpsi!AQuoZ=Oo9v#g$fVs-CA(*PeP(QTcE~dnHTrfkO6-O^Os?I2XRN{Ihg@pz zhqlxlJZWz<57n5QsZ+@PIIA3TBXoybXvaI-apE(t7%85FVVmMf7`9zJ3DezscoK4N z_VT32`x{#k@_(?EYH;_^$7ww5%#ZmBKM}n9{RA`>fM3sqx^QwKWe~~>Kn1aZfo%Uy zN6TP19K-~NUmayC?Cwrzi69a!5yafi;vit&F{m6Z0eGP$057zJ86lx1%*+Wb7CBEM zaZ?E`)cpmt1WX7m0Y^EstjVKgt)XQ)qGeA)iysm#emEbr7?1AGgqA=Cj|^Him(XGs z$-JngC1n-J1#u_Q%WOo<Y(k755;1-_AH)P){1?#6mJ(uYYtVTih5|bA5rnu9Gl`vi zjFGnQij3rkM2sIkN)fZQgqX!;Mhd*sNxn4lco{RaP;nVr_5`sznE9a?$*w+1(Xy?C z7Fz(>MlXkxFDvqBnJ~2MifGxN(Bg+giyzJhE&qk`WwL}8?v@)w#WXhlrZt+xa9Q#O zoFQFUQwA(kE{_8*<&(C<38wJihdGO>Z7al+zUe*|UywS=W(~1SS@gqER+I_o9zcs7 z^;r-}Eo!Yc#0IS;!A%f*LtRbk`j`_wl|R{)*L{0<5=;UqHPd}bsa;XRu6a;_=-Sv% zk|;1HXV(Ho_Fxo*TJ9sJh}~SMo$8F*J#qvLR7dT06a7T39}=~G2wUP&i`uJ8sI`b= zx2Qc}XtIQ=fN6vRY#%tdV|^egdPAZ{R7}x=BH)9iU6}O51w=?kg$s-1C(G;Rs#<f* zKnSc(Lj&p{e?fRCd@1ju#bkTXJt=2K1i%#xIcGncx$dzA2kE*5tk>DJotP)(w$*bE zqWK^E#!Gh72~lDWr8cOGMk>8K(USRopfdKuioUGu`4ak72owY^QIJ6EWeR<}A@$93 zdYH_~gnUAI4%#$l2+pHBLuw_&Hu@N)V5W{Xv0+pqfPe@LeRXb{$@XHng1%<pIuBj6 z0+%B+5gAv>T_s<0N9wNonzqTQ`<fb%@th^@z9za3oCaUBPhVjg8oyTZF}d!`Vs_}) zevUi(i`5_+frI=7J%BD4cx41bUgk`pJeyITxtTL~A97Pk#CV<lx?u^}lBanPD{Pwl zELU$Jd<5c-#`__j1j*N8mamOzbGEk}qq6m(cN`B7ap0%}ef5drKZO2Hp3`THDVc!7 z1AlufoX0m5oJZEVYVJ+WqYJ?`yH(jh3olP*qysj4JKs~uFs*P&FG6SSt2Mb_$1>)I z)$yNhqXA--sf-*^X73TP`|)cEh^<9GGpT_st=Qi$naj6SeW6Yw1!zdo8nU=We}^nv z4MU4l7H!rVBF6icSh!}&7gV7V+yaFuSuTWK+UH$j$t%$buF0{j2+&N0dte&AtLLhj zW-<ZbOv4YxEJ(>2XBq)uOas}9YTu-9M2bAXx&s93XjESzD2YCjB+;5p8^a3j9jM`? z=Gb|)vO^q*TvIlQ+bZfBv^HfyP7Xwp2S^TH8j&j!K$~o(0z=0ojH%;}85cE<wbay= zsi_C^{yebiW1CNA-<|CxI|g)5Cq@PNmf5jU5i({%?@6EqD<=Yo4UsE*Zt}qweFCAP zPdMs8aMU<fGwpyZmmq>Mki5V&$3f3eq;_C9I^OEB)XB`!9C@3eXRST<G)G?JR4A{7 zG)G>eEy!z&(ReS{#jq60iM*J-W<$1sD{FX#vzCLHnDSGZITf1l#)NIxgjD+^2FAw9 znh?0?pb4RmO%tYoFh*rsI9%CtqlnQ{gDtzYpb3F8QAVPK9jR}w36EFbrd<=>=$ddc zrwNI8&tjD(j3xwxQpiiwYv*8im-IH509C*gpjGk_SB9zz6mMhm5MYm&R3(B)k*env zP26GeAp}&6Z-o<C<l$tLV~!Jqk+6aR|JgUSiUD}uA1Jp%3p;Cc6Y-r&sB(eA4@7}N zvoow8$3Vn+LFqc8kA?;D!Rg7Ul^3{Hw%?LgW(d?)Nq{FLAOXu>=b1hHg)oBU1R1}w z=XF?BBmM<)m~ptPpq(crX-qq_N}9AY(y7tRIe3|J3nBd6fb+cNTU9^^0^9|zh$$ug z#&!?1Lt6HVE1=H%(Pkgo8$j%x+4VJ_jC(gXC=a`E)+hK6+O@w2e>GYGraenjW>W>t z2^7|vD?I9oiHt%@{>D~(!IvZO1w04jU=9S}+VNhWEamlSE$-)?)h;_pEI3`$E=p~e zBaurKh!oaAh>zje?3To1n^S*&^q6HmsOfGN4{LK0_2X-NyXF;TVX7U-zMMx}uh3@5 z6Z#eqc_=f{8Gmmo;E#0M925S4aZJL%;(&xU0=BgjkZCx;6@U-k1tQQ(aVE!efnO4} z37^^*+$e~L^IMm{sTF(Z>WIJy$(8B|syZS+zXo=!j6VPxm;Y}`pLxiZ->1bypCyXx zmDVFDw1nbjtG7I}yQ>P#t-eY;qaH*jL{EmjO(Lc}YKuXb>`S(qnQshRR+w*_TCq1X zrr`~x!A!%T*-A_z7>wU}j;Gn`I~-c$r%Gu3_WUTfIaz_$yQ|PTS&df2`#Pa@dj(o8 zi~{etgjU|EL~HDgTg4S<<&Z?Q276idrl!t<Hp)$%VPOU$axO%glZQok>_iFSf7!@M z*mhA7M8+fa3qE<N1i5c)%dOpqIK{S*dq5q}jSnBosyD27v-k;5;99mP(RF$%*Rw6v zE>Nd%AE@QaPdojLGq|n|n?TtXP)sQApd0oSsDp(LnzKEw91`<yYQ-lHnDvZI`J8ar zobLN}BK)X}A4;3`WRg|%)t^;^+mTJ(yEvyQ!l26H=5xB2KEEY3zs+P%zNkT|mfhC$ zxT`Qcj&e<yjw-D>U`o`}D3IC9bw>VVX_C|G_5y^a+ptL?lNiw4U9UgQVc<5L^(w%C zg7yB4!{%FZCfKe>opspGL2rWiF2QzXdfZ{d<K<FRQZ|epjvpCp`&3|x{kQ<I^>zo_ z1;uf@Hg(ovLmGW&*tVy~9X34P0XA-h$CUdc7`IPF*q{otzV2XKQH1S=)LDn^^toVr zU3%PM!{dMrnRO+a<Qg^0!Jjux-uk{klTQb1Kd$7qGEqLg2;9x7w+`IcT)^Fu9(UmI zIDms0od?eAqdghmvDSkPU3TE>?e)=C<4sBq$b1@u6YcfUCdf`^g@dy~eKfEp+?d3g zAKpeZSkt_2OqiJN*3@B_S0|%CIeCTrkloq2Kw*!Q$9;3it8<I!yDc^E=)($t&U8PO z9(VNNaiFiNjw5}VWf6Ifs_x{~w>}<d<7WU^AdNP_fP!G7yS)0DB5ZF;opsodGTIro zH>bxPHarg4kP(z84auu9z}7f2*xq~9=`Lr-0b7v8hk<Rp2-{myXC1bDDczDRzAHWM zu;FpQ_LvITxSCM4%IB|VX5JcLI}5M{S$r7S&MLz8w$xdN&C)F_YE^>m?dfrc4UYr1 z<0@cdnIaZ5IRaVy7ylAy@(jQhWbt8OJEI8OyHaNzHk$$O0NXw3afc0$12#;;lxUJ` z&y;gH|8e`l`@*=L2H5(m1WB3SPAkH;H+9xwL#AhEetS=P++oAxfUO`)TokVabd1co zD4sb|Q4FEcNfduyQYTZ>6tN~>k|=&(>adGqOD0v2oJdEG-tKHUFo-SdWjelZ4pF?k zh`#ry<{f=DYuJG_{wh80=)>bc9|A=s()b{=&tpy9`Pq)&`P=0#uMqRd>Q#^dS8d@F z#>(_g!rg~bZyh+xD(wK={poQB4vz!4f|`~r)>5>Xb2>lZ9+39su$>Cv5L+t`TN$`h zi@@zmy>;M7s2vUCzfO-kaCp4K$bFn6r;zFVx%#_t<W2!_ecb_fN)fmRQg0nNTMp4- z<UWxeci`|ifUELoRNpBkyv}dr-W6S%lK~uRm~}I9Cl`VHRO+n*mybx5RL!T;;|?4i z2XMpfJm(@ym55?_-F4Z)Bb8ZTu1+%RK`XDTrYW<G58)V>V>vc`Iz7JtSSdz(Pw>OP zZr*i1##plwE{wdAS{n_N81!jF*l1a+wO21YYw!^aS`4Ww5X(ICg6P=Tir>8Ac!gCt zD~@O;>Oq~T1quwHDSF<lj12No-)hbdEg9WDZ}TS>)=lDSOZw*Z24@N(exVnkmzswV z>l5K0!XiUG_^Z_zr9}@r1TqW<*lOAlNP_bqEusx5pV?TZ*!AuV1^6;m)S{PxEEwPl zea0F>^%>~AFQStsaDazlYCYm&o6Sfe$yq7U^hO^Q^e9KuC*fQ4ZQ4U8*7t05a_5qs zW>2H%gq|J^2*Cx0^_>&>@z`}7qd#b<^xZ9`@1m7@)pxh~ljZMff}nED(@<WXzH`%n zdRr65OAMkA{MR_RVdkPY4sIA^{$ik!s~vO8JCC#tPa0_|1)t8~5VvQ>w2kq&PyhA0 z@Yhg;SWlxp*3-~1BW~}p9#9au3W!I@yueDEon+9b+YJ{c%fWi?QO0#1nj{(*Rh1Tb zEI_xS*lyrsV4pEk0H*{R!5v=QzEWk3eKB_!R*~kU8a79R4VFYd_!=5Qdu%B1_F&}g zidhqUI#4~ON0Ey!PvDlg_&ZD^8LXTL$Pf0>9D`6Ma)e?LQtrUQC@I3E+=K;DQZEYr zMEoI4`jk-i>*SLWBpq8G$*VbDo{5+a!q|6aIh_=?C#*4}Fkv;_-PyB)B&lUH{}|jD zV2nOe8;fsj#U`&gOU!Z_nhcf<W`;0{%Vk^3Nz1wI&RY7+4z68jweF8%X$lwO2&ujn z+QL)%s&&guWq&Af?dH^xtF0r5(^yAPW{`9fv&S^60Rcz~?o&B2W!#|R+0xocf=&nA zXb1FyUbigOFnw%W>0^ws2<kaMM%~Yh2d*o#NC%=oT(1K{yvTm=ebX>DSt$0(mdRR4 z-@hV#|0A|R_tNlvv1JCv(Udxq5th(cBp7R%p1?#PR0^ec#IzT#@?jZc!FiFRnXD1m zgnIa0JAy?I8!ju(Vs1~J*>0G($ii4oMvU7rv(D<jgkDe}C}a?%{Ss_)&J40qX4&9( zajse~gKFl`C$dZxtBN(}cBJmOdcu;FN;PqdKUr22{2JJzf*uB#nE?|fRKHz@zA?9? z->csuM|#}%D(5Y_*F)Jel=8%L=9CO&Yfy`|wh0*`!&n12$hxek{HF0@#sqRqbV&;! zt<*JF#mjX$759-`f*dZcj<lO6u$C;0f_{+}F>8(+Xlgaa6~lEQe&7hf+vKoLWP1*J zSQ3-*;sVRw8>Ar4rnh$TK}}kU%1cw(Z_8obrZLDo%7Fk!?8K0>PVjN)dhX+(z6<^P zet0xp*ps^88(%C^7dn^|??{h3o#1g(H?)bx8yA9+(6iMj)5`3utg(qpUU6jtSCG|k z9$>Nr(d}9js(b4T^$Iy6w$vO5T;E99OBjs+Jp};j=(XwebqQ7Famh&s*J3s<#<odP z{ACVG8y8dHU``(wR#bv+P9Fmha}WW5_r2-ugE(JT&<XEJ-}Hg7tkezz@!s^f4+I`h z1JPs$X)i{RMDc{rt}T4_eW{&oW~;!Jf?P|;m`+c)WygGrN=BD$cVj2l2a5W*p7005 z4lBRWPzU?nv|F<3h>Ygq%E|vm<s|hocausM@g~=t$r2al%y`CL+E`v~Sz%NImMtWT zD<JNQ)XX=ZARR6rw7Iw}|I8)aH<!%|+zj-%wc8mf`wE5#snSi|to5THp28uDgN8#( zAR!A13e%N1UG1lIY;YRFOHf#mZs_L(83y_<$*_&B*sF&vHG;k>(r}{Bi1Zf7+Pc(N zA6VwcA2ANDheLMMuReku-BRi($xlgUGCy>}{dgM|eQQ=&!Zwnx?LVydQlBXP!w5f- z#9!lnfoU5XP3F@`#pgS)!p94v&IKes>M}r9BV!Y)f+jpuC^@XzsLFeAbuiK>_0$Ah zA>^hsPsFuRJ%uZJn0`SWdD4ASmNa#^du6XDC^4lR8i<%O<WK~nO#O>GXIW+Y(-8Y1 zhu9Av!6Ck;6>;UX$VC#~@i^3G7FLWdM7X(i=K0%k5`^1R>t3Z95kuhA@Hz}Uf%0t? zJ%4Qj7#gk2@4_;5DGxL5IWYYrO_r>sI}Vf%!?=lKMoGepFlo|7ghm?mY~hBb*b6*E zI-vF#sCg>jXBHd*Nft@8{Tu{)S_Q!(`Glz_p@6cSsi!s?ob&5IzxxaHy9|#uM<vQd znT<rhDkKKy*6Fta{48<$MP(?_FAYMo!Bs1Yo^Tue65%M(Px^I=W*GyT&BSQW(ms^c z0=JCfqKax|cPA91a#jZEuWFx9!ULSc;#;-sLe)Rdu@zFUCDber8kH%gtr@Zx?AO@L zPve~St2MK$hV2Th>cWX49g!#O{2+5i%i4oH8W6%n0Odt93`9P>#QOEHwQG6IB+0JY zjq7A!8~Aae_Sd)KxH+{;3e5S=8%yt~xWt@XbzAA3F1YGs;GxV_Bo}bi68sdoinmH! z#fx)t)jfSj$W`E-Cs*<gnTLs6l;IuN<ue6#;cCnd?4m`Mi8`19gULHFRbUsggUz26 z*d+>kR$B?eo^nZkkkq1aOrZT4(3pwN!w_lI7=cJ3#7OmIxrN<R{hU;DT`Qugds$5G zDN_xx2C5<B7O94}N>sy(b5hOKHBgO3u6rl)G8I(O5B+b+#atp`TDlhvvRmMDZN9Ly z9>hNH$O5%Hwam6*$PAy1$M+_D(ol2DWiW<fV6fbMY*hn*7^@`hoLW#aB7$s`(;cY% z!2*?2e{`U7Wq>3qr#Q#%ENxUymgn*vhCpQ06qEwTjM6?S1&VhTN|aK_K--Kkk^CX^ z+k`jQ*hqMbVfX|h7a7#Kv;;|t;R-$h8wylTo&LBqD&5O=a;n>JCfi;28wVS3(nU@L zbuks!O^$Z|xwzj2MSjuky}1=frE8J@`qDdx7x`~2z0-xrr`|6!FNp!n%k?cq=H;yt z^YY@H%=?KWvF-CrZpYw~ljh<QZa={-!5K5_z#%gQ4pC*ZYO_hD%@T*u<^XNCaR|eK zERWHNL!7X49FiyPp6o5gA(ZVfXCjA?IH`rqy!lZQ^pEYHCR4{LgH`-1Xbv<;zBHdD z#{v^(_O$GKw84(+{(EzpFgLX#-kk>yPtP}(-sys#NwQ^n=Fowj8PP1#GjEmXnHT4z z=eHiI^alk$uE(?$Q_pjS`8t#ALj{tR>5^6!xuZ(0=9WuvR5{rJ%O#uoVGLsUAst6Q zd;}fG&8^sVcN`Hsjt-;bIs=jj8q2n>Gc-$o8@3X!Xnug1Hsr5vLM+M5zC3;T>lQwV z89T7=6+>Y;4J6*g4}sl|;6qoX4}HTv#CF2$3qd3o11_>SBCq-!8IR$d`NOq6eePQ+ zEEGN`xTq<?0r5j1_#^nx_31<3u@AAG@F9Z>r(FehzMDdq?Uq|!z=JVH!53b+61+j? zz$a<YDG)<qme5Eh-T*FPk*2_7p$!IN7%;FRceLE_Iwl)>*mFkN*qWcxg21WGFEo>B z$4BvIG?VdKJjOeIoPVJhn_z&mEP~iqh#-=8Q3UZ;Nd)mCMUZu;!4O3P#OJ-togft1 zABWlUyp6h>j#l-0F=Yab^hgr*_4T1rC_dFeWqzX|e-s}b_r)vV%rrilSLYQo!E<ZF zxR)dGy~2SI;ov;5^^D)Q&?%;iE2ckDR}@dh(O?ttgzty3seBoqrfW|-miGMF>I@CP zaOJFU#V18p_M926Xz?iDIwRYjVsL&4Q3?WV-{h5P*CM)6Kpn!oDg2w4QxUmW3@O~r zY=STmiHs!1e9vBqX;M2pYh}+OKRk0~&vAZu#>$@K`Ie9zCQF5$&<~-<PO5Ng0oYwf zs?<bGPwBy5VBn<N=)WMYbt1EAJJ8o`fxcKjs)N(Qm=CBX1a2ruq4R)$8DJ6sG~KCY zbVUz)BrAFv4D|%poYIoEksKDdh^-n+bke7$!(K=HNe&66H^R5sbeazELuyh#lqPi- z-^YJNZv3Z7;yz(r;p=BJsck=G+kSYIZBM1P{ZJNwT|K(CNq9*xYDIbEN`f4?vI1nV z&0LY;>sygBx{pR!Wg84#TV$Ao0_jVWwkUmht0aASF&KbQEXBC+M+P8R`;S5X4Yc0r zd9GoxW-Ld<AM_e0F+xz7+v;I0VrM4$_W~0!@1Z%}6Q%Tem&sH>%67oK6a+W@0NP;i zb;L#MT#cTBYb=O}H9h9~uY+#oB0lqW(nUN&3AX~gVy!U*pb8iKfaw9+-HhHwiOB?u zY#{^2!SiAE3ptk&JWi60g@;XIqaR^X4K8+^MT2-{#yv!B5~<g<A}T&;`6z5NSS|+4 z3Z$cX34t+MXnnGrX!Uy-cs0~5iZozH`zBpHo7qtjOmqZY<wdJOQMgDm6M(ajf}UhH zMxEti85OlWZ<M=e07yuJ@uJ>{)lR85tSm+X?6w4$SB<u580Zzxe`6jU5{jVem^}e8 zxuhQ=aY1t_zRlDCRO3nviIvs)YORy$1Y}d8eo?o9!i@ii9z}I&JJ`hFr8YH%1%Yh~ znNhO@-&55o`(PX{elUW_4+a>kKd8bZjbvUeRBhhV&^V)alGq68y_h6?5-yU70dyiw z(JN#2NDJV2_F_Eix>)o1ojZrY$46Ip9UQ!b9E^E)n|^es&R7={I@%HwoiOFstg5zt zsKC2Q`N>sVKTu=p8da5+|8U#JtWR)r>8Z-q=-Q~R(f)J>#B<p3z7CG^4e!ap46K0^ zn9&x+Z#Y3_W4be%KT+l`9)lRLLWIVrQ;-_%woe>w(r_^rc10_~>NMQG%Erid3PzcR z4dtUm$k=1TD47DBarfQX$3V%=p600!kMv}xlB;zIy`x02wI|=n6MHxr$d0$CaY3n@ zB#*e0ErkotZKDe`Nf>ZG6YBfXh70ywBZoga7e!dNCs+@e3q>&^W$FAH%ddcG<4_dj zn}05ef!C&HeUD$uZc1Vxn2$u}?(87>EEt8eJTU;OD`EQ!*;j4}X?A=ib6HebJiFI+ zP^KK{Bg;ZE@W;ggxsx$37Sril+9w+v32UTF?0)GRCnHnM_EC--BI|qzMY*v*9nE$m zrJ>#s8)Jlro*_TW+T8pW3Up(4IX=i<@JT$#==9J?llq7r3vmGf<c1ls90szAP;V|_ znQi0;DVx6LqrrMX3l%eck<{O0rafK$ScyjzJ04OI=RZzNqLYh}=q1s}t*Q5JIa$Wd zT<=Vk-hlyBGtb~YhHv}2w09s8AK!z&oG&0>e&M1;)Q%mTfQJh*kh}t6Df<OuhZHMw zGikptkwRC@ykKqxW>NLj8n<6;R!mPt`-Nv~SS5|7%5D}1;+1tsR(vAu0X?h}`iPP{ zYj|41vxx=gqFA`)%2otnZ$qw}$=ObP36ViDfbT@^ED~i%tfSOHPuF`-Ab5Csp`W55 zo?fKWL<3i){@iQ*F%!UPPV`6noSl%MSP?s9ra|o1B!x!k%l5nksjw4Za3~Oi-?&Y8 zQsI`p;UTJmjm}|&jZT$Tw9$F1WTW$9w9z$O>ktNUEzdAe(DIj!9Ho{AMK?&#Z93k} zbJ^$0+K8l$*idQVQR^=$fsq^Mx$ZQro0B2eof{fZ!&7y+Hpgy3rr~qi9M_VDmlo%X z6&hY%vIXa&#0t?8Y4~s=4IfUV;c?;`K3L*w=BeN#sIK6n^$kKp;X?5oxKtdx-Ss=m zh09VkcN{DMg5DmKF4+R-JHk2THO{BPxwD7u#sNv{{1J=tI)m)B=M#rq(~5m{1#Nai zo<p1|#2|rNKx<f^LOuv;bzfo%+x#Z7%K_YpV=$9WF!&WVc4!ySMQGGEE<|v+xenoX zcrebX+1=S;zj1hVO(To0$}v&boEl`<_OR-j5_`nvXeg*6(uzW{XlC7*M$zpdlXIW~ zH?ufQ$Uc_~n7f2U4%zgcCl$ozj?|pjL9}Qxx*-C#vIFowup5Tfoii{e@3geii2kJ9 zAa<ZtYhU?f;+pF@Y>I%5;F>s6w1xBe(m?C-eZe9j88~@%AhkISh&LuIbZtP~R(dBH z5G_Wct5>E$xRxrHmE`B<g8ZZ@)jSZQ8|@BAq#VeJY;j?DH@0F^E}t0qCi2(m$(X|% zl&uS!plm@^v3<yuQu~`y``<I8pGzdM?}%wyq)qSk1-6{ekjrXuTN0+E%pp7(Khesw zHuZ44BRw4C57#aQv;IJZQf3djl4|^TlxqBVG?Gh3K<o)W?k5<MvQ#q@@}?nBK=&at zPzCaOYc=KdV0L1Fe}nk*DN`V|gCRLtAQj5==Al3;R4WPubAClRS!BUNZN^Ql*odzJ zumDi2CP1M=`I3%H#V{F6bNdvJ<iyRIcK%-jazoEzL$c+k5-O7$jyvdo8LtHyiKgOW z2q#+Cph@FRCcs=)7DGrJ{B<N35PGijtHC1K^w)d_A!qYOM7gjuo7aRT4R5x0VI_mD zE^y{msc)OklKpIQ9I$vte0e7#*WN)ohEm4R(vfO;4BK3T#5FU0JD*6dYqN0?opawC z+Zyp0tQ-SVJZ2pVzs`^Ad0gj8W<1ZOLjJf8RkdQ&zJ(6iItNBGwbZ79z^+fQI)PEi zh!$u$1Onr6iNKf}61B=&e~X<2RtWf-_LZw^iDuJLAUU<X)~zqlXT;ikDX;aevf?b# zf=NE31x#hB&;S+Z8}8I9&bbw*L?gSmzMXGOOe@UC7$D)tC8<rpFqL%RF3K+xk(CT& zf@$L*1XEZM-#bx1ihmGVAju%KIEM{!g-||g3u4{uD4his7i3J(s|zC0yR#^}svydk z_}6U2kp4J<U#$>6-5sQ7OOdVS<#7hrDT@&6r%R@ZXT}wIbF5v}P57xxjqw6wZfnJU zctD-)q=33k=tML;PqI-ZtI#E%AYkm=<C7s#g_qhU2o$o^1Od%LrbZD4&dMOcJI%ow zIHCWbv`Ei@r8F~eeF>20n^2O#B~hjZ85h$4`XYlzCi^ECK}NSq2s8q-wXx<TCwY5I z>5CQugva7v1RlFWokcpv(H%`9VB8&>yac;BAZ5^^y+YkG+(Ot*fSiisq4*Slog0wi zq{^KoK+GymfCzPr&2#-82kUGcQv!h8BI*LJI8wL~29ASOMBVPv7fqa`FLr~v-~?NS zbp>IX4ES>{A~WNp8wmhDXM~HkNgquU3vbz)BjZ5~0|CUodccKtKTwHjj6MpCbKPd2 zMN0cwV+4RfX=rjISPwQGy?`0Z;NxDP^0*Pzt;V|0UT#WQZ}exEiuD=N7fncKN2?6l zDi~#@<d!y7=K?bKkb<+A%3&ALw*^`2(oM>q-ek*cC~T<N*ge0*$OV;>z!K<KJ*x=p zf|2Y}%%Tx6v}MraHwP~zeIK@HAWQh_D5g!qd5CW+lJge}Fi7*8tieD%0psKnd4UfV z#Ia^pL7W|I$QufRm-z(E{mF)0$7l`F;M0Zc3PBhem&&+opBf*xF_C5A$5LE=tN_e7 z<1ZXjM)fJq#%OuncYID{2QC8J1oajzvdLELyZbl!*?|y$(WEEn6Fa<<OxJnzg`qby z2)XZVZVo^`iO&J-uQEjsA5`FwGHicLf(pU5I&4sZ(X&BYg+P}vat8&_T;c!g5*po5 zw%|RaPc%l|LY6T~d_~<OC(6UamDth>_#W!eq_UFIxG{aZYu|fE>7C?zZ)dW?krxXA z4`G5+;;wCprC5kd)>H-r$c1rS@S`qk?FfwIX0BxqXm<;fkUW&>%C#62m`Dv^cpm&k zCZL^A_bdVqI*bGiBIF5UE0{Xujs@HZ1v@(6#H9xV!>qQ)Z60_N4=JjQiNgUzP|<WQ z`JZ2Hq`r*NjJCck26Kd@22w8>8WUEUW2GhHD|*0%k*q)-@fhS0kCQNN7YHljGx>zV z0I(%s>!UGWTX8uhCqNH`Xg82=a}vg)GR@*fqUcB5Hx>Pekx2-hNU`XLvqQcg)@TIc z*Z}v4G@2s=P)E?Yb<I?RFoGuQ_tm4c>X@O~+rTa{rgcCRq%X`raIzBf552e%SC8@* z)f6wr)uX(~`G;N(2ez!@a17-svO!OENNFV26{)diZDiYmqvFW=M4fe<uo8lb4YLwV z;DmAuu@Si$;z}%r0Bv+oa&HK{>2ngwItXdyWCAnKl3?1{im&|GVp~7$lWuN{QtkQt z#cE@zHBe^MDop81`9PG)<YZpMgB&tt)Yt+ao`QMJ)}Z;X%9)(H6KmpyK<^YC+{#J2 zwsY!0>R3|MZh_cbN+%B<2{HJ>KwPnnkU506)hfdR@Cx5$fQAsrXuypYQV3UVVv{-! zJZ7^sG0n^~vZq#?;d&~=f*I+dO-oT+rM3x{56X*y=5U4Qk|vy~W{e!&JzQVHBUX8+ zvb(j&`qVCnO+eG6LA)gmqH7nLa>W_C>SYuhH*iSRG78=zhtP119Kws_khb;JB!|EV z&#cuhUDmUt<`iA)VRbWer9SjPNI;<62~cQsSPZFW<P(nt6OD8^C(REW>wjRum$?(b z{AsxXUM6di49rnD{FeO62|_yj$l!bOlevPAy9q2?c9P0uEkEtF(@)n<0@z64X-_-% z-1DA({`o6_2;<x4!JhJb;+qP*djTGA9!&Fzv)I`ZQ7`68&`f;>iHqDeTbu*Kt|p-= z=V^X9un+@hYJ{`y=d+Q(PzYkDJ5RSe&@N&-grUr!6rWKWpQ|?yF}j%&OStJoNGv(n zVK!{Oub8A~dI|TD9H4gv#$C|plXpcg<s9_2pA0B|q@BTZrty*HCwlOEwmJ%mBOsC) zQ13iuW9Dx$)$DBH6E5o%uu9E&fWN^mPi&Xh%83Q9OE~|o$<ed&pN0Dru&mT_&UDh> zU>4t*`Y=AY$3HluVV%+}u(B!}s_#S=J;O$2Z$73RPUM1w6Zs(FL{11!U^6X2Bd4Kf zG#OZmt>A{3$8I1Nz4tdH5Zw)7L-`pvPH37y-^EE_-*<1O=CMg+d@0a6Rl|N+s4&(1 z0Eg$)k*pv36f}hHt;B^>*gfnz70?llY7-dM_<wWioa3L(<U3cuKlX_Q{+Hu>CmT*b zE{)+XS=*w7aAzU84G<1wkA)-5SO|7J1fbc&ThMoWE}B)OmOwf5=z?29v3F=o5Q0!+ zae*E9EPC*?;)=+>JHhv6%RE{t_*UecmoS$t@8wVmlp^&5Y#EHfPHYJ%8{7+K0cMpf z?+g33_F+e@fst&uF(48=2QXtnG5BV<1y&k>6*hdy#TeDT>_nz#or(KT8EIaCAA~@8 zk<#jXopMxx6B0MO!qMHGg^v!{N3#<feHYWp@H+^<*KONEk`*sQm*%|YfLG$!@SQmF z-3epv?lIFkQiKG78xnGuXF#Stz`f1W(PidyM9Uf@nw?lsyYER~aJ6fd+yfI;y>oBr z9feIFLCSf5`l3^gZCZVdD5t+M4CD`yVq8L7_8x4e#(*UB{p4~k*Iux60fjUSYCN(P zd45A#-{ewS7MqrgSaP5*+lSGu^N|f$?5-R@yfobC6FGg1?a?aar<W{j3{x=-Hx}+} zjIeq3gpY#oo{a}j7-^~=H-oeseoTPo2q-vLB%mV8eK;Y`2`C17qbBJ{Kon%mjBB70 za};33FZ^}-f)kJmhs^oT-;~~=l_`WW_tLD|L527FQ!GzayJ-~4U^O#b#jY9P)426F zKTEtSv^SuvB}laBWaX5te5T}Nk-<OBH!ZejuLfK2wtm=i)hPnOa)ZTnVowkA3eD-U zg=_G8fV>V)&aPnHxRV1AVp^fgh~%c5@vT`hayO@F`3xmAPBoL3v!pk+V&m^>(28AT z6P6Iq7<0oL;|7`pj2Z<?iee>g2)RaY4B`U4bbYk=2uTUWT9Q|$&v`Iq03H-;ej&;X z3*PN9x<N|z48DW|k%JA}7)yUyP#g*Am22%l<|JJy2selz`=WXxQiAZR5~<gx?!MQs zV=LRdDamae`*bcuOjLtBhPalIf@5|=&+FKqCp_^5ogDcaLWg@)Rp_uug4aG71lny9 zY#`bH>R+(P|Lnn^<xO}@!1gu^ONp?ODAwv-VtbmYTJP9$`XRQb+4#8oBIb;&Sn-St zp83p`&sz2DiDvek=RWU${Os!I|6FILySu=2FUT<+1S@lSVJ}F7GC;sg7_?T`Meu;v zi)A$7`QTTi=E`HvE(lS<)gzis`B_d7aMmvC;i?nKsQ*C*#|L7Ws)s0Vp2w@CmNA8J zSgz^|J#39Joaf@E`m$Db%UAfqbM!(m8A$6n6D_;II41_(uW3byy##JXFroqRQhbSl zjHXSEk;~c1F_=vF!D68%v*e!5fJj9~+V!b*PqKJ6ph+&;&g`ejE0|dS;f-gI+ig}H z;;NL9#)#sofQyOtiFK29i2B$>sCwoT>p^x1q=S+jE>%pB_=#o-di(^sb7z)INK^ih z+g(*WRuC;5LvIPvCHtaObx!#1NJw#%KT}9qEOCL^Dv^ZL{{<XhDmx*4EhH|6<3k)} zxy2X<7s5}&r4{YOFvG{__%d(HD*62bFVW*QdJSf02E)XL6PEE(EF6PN)0de$Lt)kc zfUqD|;0Iz;Q}=6Ou$rw3A|MqvdfWEhCfNlNBoe+*M8a()B$%UZNLa!a>!iIi(Br3} z$3QB&0nCcfA0!|@W0#dj(vUf=f!Cvaz0{#RACyMrj#7utDKWyy`0BWQbqu4jG{<^> z&mPIQMjzRQv5Qr|R$U6{Y1FOot?4)3TH%C3%H+8vFqoE$e4Cq;vGn$6M(5J%xH_w( z46C_vR|3_!^2`EPKEb*2Kerx+D>-W}XPupWba7=h>~Al@zPtnMUpyS_^b*HN4Uaz9 z8zwL0M;st!%K0a&TFpu5BO0`{-cM36yFzyFEn#X|0aIPeZaT^;<oM{rR5g|SRS9<H zFXi>t;{%6$BbP~CrMEsn^t1frqmWFhf&WMecuSgsOoutkY`Ct0-$&prTJYaQK0HtY zp7THXk^d<l`5*klVMhLw1YYY|{=1O<XG*|Z(W4_6dF{cZIju(@@L<JYo6t_7RUtK; zf@+^ni13Jo@}dcf49O0!eIdPerIk)sb`!tQnETBymfqx|Q-sFTYp(QDC%;sBNACLJ zI{D@Fn%8%aTguD@+dr0GldB$05ul{h!>^`y9F2&c_`1x?n70;O()tAd!2#^=!C#HD zq#c4HdkX#;J@d4h0{K9NJdTa6_=blb_y(Q}uDKn`Gq*#P6tTm_oJVPc@QWM6E-tic z2Yqy4v_`Bqa+dEHp83?)5C<Q}Ss);U17Zkbnzo;3C`G>v+hqqx@3cU;O&$AU3=1kS zd>;cHG9g3zbZ(r;D;GAXF8`UGr!a%Lo}09s-_w7UAKqRKuMM&fbQiVl?+Xa<_?K!o z#f38%ArBidKhLW-aa0$FlzAINrP<rzAcoTt-08M6i^2&3QK-T=f3@Q{2g$*44%j}b zagJd6ICF+2F1n##mKNFAEe&*tUumG7c&b*g@O8eBo4l0cJI5;)GMe9T&+qAfse$*a zihDr<j8FpL4^g1Gc7xbgAPz2t^4%aLZcAbyzTjejFF-7tNy9Z3PzrI<S)xq=N{b03 zp*z`%4RyE4!>5>|zu<`G`hktbjtb`L=5u7`s!8?n0%}x~>R`$My|9Fv_=e-gQeL>H z%%Fw3cnBsz^rufDFQl&_K!ABOW|CO?FDIy#xyIQw%uk@GI$aFbQBw_D4;@e_F^~Y( zk(<nx7b}v08x!qZ82Jmb)}>{BAY!k5+QN!jkF#HL%<&mG)O5p_${kwqOS{2Nj4a?f zKIJzRCXmd~T$u+TFoVndlXc`DusWse04`y^7Csc;UBT5k7B)dJgrDpe`EW{J`Ll!+ z39x)Ngo9`{1es9<(-o}<(~XOk^&l+IsTfAv^vQKLue?SHgS<YWU<fk;HKC#fJ@_gn z#dXLhDk5pjVv$|KhkS_Ht<@b@-(bBH0@@Iwxemln060av6{QGs*9@V>TpmR!JVt%6 zB1&Q1J*TIkQbx>ARFMpuhTx<C>>36h@gGJHB*<7GawFPQa~ooT1dMVbmg^H@yU2+p zUa0j)LmW&W>~HG>zU~!*f+QBm_Tk-`g$ym$S`Bj11jR_Tb@`^$<;%^MOt#Z3WlFG} zipn*q*-l50D^I0><y4d{15o9zwxV5tuY(1)zaU<irq`Sa;)P?mz5vR`R($8GvqaY1 zd;6T8#XBJ&n9zuXI=xpAOq<htZGvgNq>*@>hZG+nDWAEu(dAmBMn&QZZ}MTL#^7-V zFHIJB+>&cgut{Glu0kfSnv%3kjKH_F^};CA1_;Nn0sJ_T-Q@{@Z`%&4Rx${dAbSD` z@?~_iainfw)rC(agnVFP6}M!ND&orEW53v+3y{1@_<D&K6#t(2;77Eh4jxj-n8F!C zi43Hb4NA}l;X(wn)2qV^688}#q99N=#g(BTfp=X3Z*Q;0H74wH{#ygI+C&$!^$~UE zczdd0HtSuq4pN3;f>#}6j^gl0cwl~Ax~bG9o7lvtsY~nx)e`B1bHc(acWG_lxQceM z=|!M-r(GHjO0RGjLu`P6ic~nXGTU-Sc$KX1C1*305;3+aA_4Z<s=lCB12vXI!!Bp5 zTa7|8QFj{7TN9`yiSuuL9W1sWV<1yTd+=A2Skcm=0UGQbgve(CQr))aD1}uj7zd6- zUTNZVo%>oqMfAups#(vfdYjzb+=^{~%68$h<zC=Vpio(X7=QAWkAH)NO2oikXipQ1 z-{Ch~En|g*uglYyJW-4~DQ4bytE<`S!KV~N;uYy#55XfNVd~ra>pRb@WB%Pl0|v=P z-LfGqg%zJ5gHE(7>lJL@CeMPhp3u~~!W+8V>pBg;f@Lx06NzU%&zoQZc3<vAkZST3 zpbCNFwhDY0tMY6EpBWE*_Ld?JJCSW=OXh;yor*8lC)(8<$nEfz7Y-DNjKkBk;=gW6 z^vXV^TSWq(wFba}1)6s@b1UL7EC~l>9Gr&y3Q$JF`8c}nn_BV1KEKBgEbnc=GPPf| zWQOKTS-%N4IiIB2OP)+{PPh&dg~}&V55R$Qsoc2)?j0jw(eA4h1je2F7kFL<rsfVM zMF#}?71(S%6N1sr4xIjAVGvHjqsR;X1DmTNv==&gIchKRQ=%4kTOkBS#fx(<6p+|( zV=I2*TC*-VPXTmu=(6d1wfszzsLqiSL@7TOgs28lUrnuUO07C`6Gm!aZ)F`ws2Bg) z3P}bOs6s$E97s3U8M2`ffmvGKx=49q%&TE?p=b><#~mZ!!6#<|$wkN=F>NIhibS_9 z_1B5+DbS{b)ai^`j}!S`KvlE2E7T$S1HNB`U6om}1XsBo3PIxk#x=vrUh;$nO3GN| zJT$IOXugU0_g?F99j}gMeOocBEOZa%WSqPu%3&?LAbHaofskDT&x&#{2+(#(C$-Qn z>DC&)RUZxCG1=uT)$e6m)e~i}`VjSr^|^`~;FupbhHM7&S796CvW*w>ENEZZrD$>~ zwvA_)$*Ix35H4|?21kSNCId>C(oCO_D_@C>1?pr888m{lGK*LsGT=?EX)Fk;pMZ7a zqXBQwo)ILTtx-usx8_o|8#^d~!uk)8OSw2pu!5)P)A1E!l@4xAc-o1!=+@kl=+uo2 z1-hfD-Ql%2q}M!>Y_aZOp89JhI}#V)nqKpOyv4c!#aO%4DfV+Jz3Cscm=N9!bM*dA zDc78@c}IHFznL7j`?I5R+~$_m|6jigUG)8W4^2$|St4aW|G0h(<tk8o8nlGJg|<ps zo4q4*3^m-Xas`W5aNBp)ufU2H<dQu}i&~zlzec06giBlSchX5GpK{76r=EK1*mC`y zcAD0?oQc1)&N`bJX6JCd3;)i=qL=fy>;-?!HM;=WW=J>F->Oxso{h9K{$<ELd+u|e z_dMjE>2LMw)z5$a&;30AUhsln_{CrR#TUNtg==1<zZd_~OYry0zx*pNed$Zru3h`G zm%aQIuXx3;{@Snq`mg`Sy5IcG-~6rL{+-|Xo!|YRuYBbz*Z<z{{r(^PuRr{wSK;r% z3t#=}SN}iw```cjkN^0O{}2BD@BjUiKlzi3@b{;G`e%RkXRmq9Yc_1S_~MH%x#W^d zFKyNM?=t<{Sld|Jq<@=hn`>KYTlH^SjsGU~@A4Y|U7>$h)~>2ut$)|luB~may|#8; z{C9mV{kx&Yf3K_E$W>8h8L%{SsW{e5!8+K%=bO`EHIQ46Fj(ymwg6&HiN80sVgv7N z$OFB}mSK6wt}SD=rj%9Gu%a7ErH9UqWR0wa8`(b3Y<&@8dNp3^(?;Ta>~(zXvP%(n zqW-+TMlZE*qz3)XhUl$chbQuF_~qB~#r+{=*5+?uYnV+RH8a*5O+B;^8jX4@+oeMa z(QK~{`w&FRX-%)dMW_E-eieO3m7;79pY?{>(0IGjl!;|Z6VeMPgdT^rX|K5*lyLp< zk6|;l;rZ4Qp0Dl_&s=$O74cAs=NZ&E5}x_km3-{Wz^#@gTwcI4Gu$Q#ac-=DXI|dM z7rVjpzJ%xf3C}Zg;CTg_-@>m7&+D@TbK_Z&uXa4IC!Y0M0nhNN+Hm}y5{@@@iQ^CV zpqCqogt?Kd=Pu)O!m`#2T-r{}%2~Ligk@d6xJxY0CM+LHSf2bUX}p@6KSKas6R^B4 zYw_96)Vz+WyB*8xh-JMNusmhfJ*m14&7Uoy`A;#rG05LpV$86U7j;5%!wFeW{Ry60 z0y_Q*U->`n82%St`{NRZb@_jHiQyf>rR2qw4ka)4%z@!=^Q*587+#z0nj6D8BRj|o zR^GDLB8JWQDq(oGgyC0phv6TvlYi6+!=sL2J@top>I7i;hkWG^+A+MPhHJlH!muv? zUY8i2P8i;oFnnMR3}3;ozA|8VO}2k-46iBEFe}U2YXQT5^)Sa6UTl$wue_|N_kOoK z6yL;N{?6f0tfzk4QG7FB`OS6|-_C36N+{Ol-{=y>2NQ~C6N+2^)LBg2$*=xeK=JDA z(A+3SV5=x5Rujc~Eui>Emvun#&Jv1W(H)B4$zHy^6N<59OA1d<y$nx{fQs+oD=%$F z@qN7ZD<u@`@-KIZ;_X7F<irjgN>1#W1H~WUSAQv>cp{tPvz;aJL>a{sM6q5AD1O)? zI3*(fU<t!7>JGyXu#;;#VR*nXtfyXxr&!MElYHeD+A;ihy!L_;hIRSpyTtI`gyHFg z;r(-9_(6X4`2oYNTDEU)6k8OiUE8&4M6zBCNQQ){5)@x7;rM5}z%gS*53!$El0sv* z`Bk1gSF3=d;rmTqdrk>`x}0^1zL|u+g9&|y=0M-S@~aa8eJirrxv?kbyd8Nfh&#RJ zxNFA9?Y}2%eP=}O#42Em<nOU4uIA0ArWOm?r63|H9D|VB`;XM#k8D4mX9@cjlEYj? z-$efL|4fhjd?y}9x-A&E6f623@vt)B0ZZHqY<i{g2eb=Yh*+>FGhk<ne|eQ9r4?WS zsIgQx9F@|(5Z_N7ba+_2A%qx9@cbY>?(pDoe0`__o*xk&tMvfGZNBh)>;_BAI}AK# z5~lI_aq6JMbN*cLv^GYq>+s<54)AQM10F85k>fC5cs|`7Jf^x5JeyMo9iIH6n$q}e zNsl``cpUIROO)tslJGq3Na2}$TUYdE24#Zh^3*|x=bX95=Zf^W!-K~GPl12jg}#~) zX*Cb!z^+=h>!5Eni*T-dXuM0_@53p2Ha2>7o~IN)G|57q;UYGQ3Yg2I{Ee*kUa^`r z&Ku5P3CL?xuU+VzRh$Ym1#Gi`uVuGmEsd#Kw*7_&te-BU3a<Z@v~TR3eE%twuNbix z6?Mo9q3cTBIeo6~+`#UfCb|Hcv8BU~xw~UKA+&b~TPUDAdeMR)sY+_LBWzlE6gyS! zNFZHdxwK;<BMTC7LBplCO(lQ1M<su`K_!2W&vtPOVr`3=?Ma7evQ`rrZzLX04g9ek zS|V&*9H^;1BD1|>Sg@r8Z704c)s%p*hZ?DvbD|1rE2^ljQ4FVfEQ#dO(B59c!^s6a ztaChIE?9WLuke7Rg5$G&3Hbf#uz-g<i3hAHGPwslOdly8^x`9ehr3F6;M`sa0gxU# z;Q_O5$7cr<@U!W#fQPpe4@+`*m^o5B=*33_5AQ1B!B#mXzQFi%`&Q-#w9y03kIyE# z1*h@F_H<al!(QScE`I_&w8D0t^W_V@C_I!oAWQ?%Xela@dlQsClbbJ);@nS1kx<f( z;&0u5d$U~vjg4k|(qRG0X+o*lQg)Esf22_A#Up_7LnSDgmzPX4$udC+nO25!Ujl7^ zIxIlBk5H<Pi$ghmq)_U`BY^U6N>Eynmtatrp#-#PEDt8oX47E-%Kd~=yU{z8Ge-)g zUKEsh1^cN4gX??S@;5peQ=;#!ot%uf?g$G?0CkDlKb>0NWI1`Z=V0LJg3Ixl^thW$ zcpNO?F8g#_FJQfxHDS6Yd;6R{`CMw+d&2E3l9Vm<<nPks-V;2Io|w&^&E1m&m*;U( zG>bo<n)aSpg_{mI`TO*^_XLllCzjiMn4Y}PJu7h@EzdTG@WIry_rx+LJM`p>>2dD~ z9!F13P_u{W$%F1gSWn<{we{pnscG*C%lLF0otgBw_XLllCl^pICI*6w!Pvn+l7*0B zp6v-Hb$7O@zd$qD2`!n)52YR)SSa7z7cO7cD1i30^rYw3Sq>=X>vOLBUJAixPjigB za3%=U|9@uxnPAY3Q@uAh)dw$!@ed?tt?y&~d>gj^rPL)$6|^o<2en%FXcxg;SKLpT zWoNWliK1k(mhBBljT*GgF|ob1%)(~MP|-7)^!^gde0I<pG-+JR_S|Qw!%MKC_>ZaJ z8Pv!ob$HpgK6>BRC>nCT6vDp8KK2D`=OS3Ec+<QVbEVpi-;0Qzb|2s(n!b812+Zk< zx{8(;xSMOs<|?;@Oo5@Eo{+T$y6%vh_E2H=Sy`wJPfdd_2N0BgjBF7dD$iWYT3Fyk z87OvZF_Fo~7stDvUCN6l+3^Hhu^3S)c2qLfH@9N%K4`I{m|cp*V<j=O6TXU#Esruv zW!=z%Ht(AJSCgXlRTE0)E)<QWt);IrcTpll>CW1V1I`*i()ATgqqAiWjdDWhF&?gi zkLuxyz56d6uHsjZez<1HUDbJ{U1i;VqcBR!y7gt7;KSv;4bu`ND^%w(8H>6$5(v8? z87M}O@9nEQ`x22KX3ee(j!r}_B4*2)q&HQ^(+eq#a5`q$ZIVs781AN41gL6PH1b?~ z)-#v$lIIaNimN-cvTVQKz|t}+<KjH;tA#i>!#hgA3l7bWe0fVH;F%Rtxu`d9Wo}8` ze#q>=l!f*K=2chA&#p#zwrYeeuevzED>{zvit_lb5Z)xjc<5`gd8jqnhZ)~wDr{=S z9{z_Fsf}FW!Z_GD%-qz-#{uK$#SiV{Nf4JDKE?s5*vHGVt{wTY1104D+fgF_->Z;s zrO%7V2P~bqYod((iG+O~I`(<k4fZ2<Y1S1;Z5TUgp4)ItW?O6ci!&~pS`nUy^Fsx} zfN-i93wp;COjUjJ9HVYYO_h*-|4}0SP!-b6P$(jOtRv3H$~c!nU}`&97(kLKbB3L} zRok0dv4{VfN8`9*5sqTSVuhM+C*9am35(l^#j0i7^$Gh2>9L6Enas^pUGc$@B6<cp zqG!<2!v(Z%S`CU0wV{@6A~lG6Zdmaimh%v>rM;*CD#MHSnc>UJH7~N7)v#f9U0ZT! z31`g1YlIwnF*7T(=MjNDsKcO_5OK8R)Y{8|O<O8UMLw#?DfV#oXvrzIbj-21`B9I> z*u(D}Ef!--#~h23k9sVo9v&?gV@t;zi&s7Bu^4;!t)s<aZ0VR|ar>hli?N5_JX$Qq zmX0|VZ+O&WG4}B5M~lVSQVEM+<%;D_byr}hEJT0^mWo$Efa-^(GFBfgtx(uez^1AY z&GslrR5Wg|8oQIheUV!?+!;)3kg#-&7EH)2T2JekS8TmI>;o(Svnz`0&=g#!iGlon zdY*BlSWam_?=7v^cc1v;(si~PJYZkJWJb9Kgm8DAJEE}QWBYK9OYLt>?RV!HBUset zXYr)q8FSN?-P|^#fgOriUj;|lfB{D+N{eG2$>V0V4V?G#iuYGFH-h6VFFLr?6<)Np zW!}ha<yz+CPhOb-Es@#Xonw(*`O<GFke5usebwXz5400`tttB!YXW&;`Jd<tzOEh4 z%byFx;r?784v&@?B_&jCYDIwlv%uR<>@g-H*PHHkq=`;T#64Q#zIRof+q~hvC3T@R zT3<d&KX9sQw8koB!Fb298ZVDkj1q^Sv&M>7yBVuI`eP4$dziT+9}3?(`*0{i6ngA% z@s0SI5{max?p6nvf}2=prN74p`3px8f4;wIM=|`S0_M5br?2HNO5wxDoVWxV>jcRU z7HEnwC*{}VHgRMjqOhkSolAF2Jtn0EVc0hY!9GUB@n75mf!po5a9`PTwo12S-i0px z%AT`yS`VjZ>a;hUo{@5WV%iUaF=g35>I28LpAe*ir|&_7L=@MwBJw=_$x4`jqrrMu z4#!$NXEW2o4$oq;haH~D{2x0!gDD@NM*L?UbdFxETwRP-%p+2EUFutjlJ;~Kt%;Jt z5h&`X@(P{R3b-B=I~yNC41zVNRPht~Sh7<DqL70v_U0jwf#I|bKS>*`!4+tQJC|Vs z6e~9ndf*~=Qk!Ym@=#f@%*9*U%-Bhaq}8i=7ZftFItKh5*4lj*_F+H-GgFH3K(t`~ zm0uqi(e7Xv>bC75d5d#KZQDWeB9}L7J4h5p;&zaISs%JixKv^@M(keK+7(!_G-BW8 zh;_2L>K-I&|HZgHiQ}fpI?4f+nXrL7?)c+JPdI|n<7#$ao^L}IM~{3|Yp}XKED!v* zpvmHqnBMPW)dsBD=TAR&ioxb<z#K|N3CqL+$)QitrU6EqfMwQvz}D7QP7S!z*47KK z)f$Qk`e4J#z#gvALIHQ;3TiU>mHdvS1KcYJ`!TWy`1F9bw&_b-+pzizWfs5gJ6BVT zQ9!BJRuyfK`${a(u)&frs93rn!NI}D9^QdkI9<;@95MXy&GrF*ee3Ry1HNkj13tff zt;6tR;Fp>TP_$6Hk#i9@wjo?}oJJnYw&yByxF__=O9-jVq1PcRssz-u>0~*rcWunF z6{;L&m9~7|cRfWUg)ejURZ4=HLEyrzWd6R)wyY!nXs1sZH_>Q@cI7crZsT?22FGJe z8uJ)MCrCm})8X{OICTWFjqw9X0Vkk6+0$nrs%LMnZbhWH#c#<!pgXs|SQx@=3sAdn zTsKC6-n*n%{9uv~Th-OIRUJvecOwXLOC_fmzk~v=tTNT#pkFb-puO$Q8HpO39gCk> zQiBq)7s`ifQe?lC`;l^|tRYgk?~FANcgh;DowK-4?SQ|8jcZkLgo~lc8vHPJ$QmRI z4K{|cT^Ao@KlmiZkF^AcM^yZaMWNzAvA@Arpf(Mn*fRmL9SN^qKG14PIbOx>rcEI- z$(6L?8-uQ&*?O_XH>4K5yo8*>Ip4Xp^o~kWBt?IFdY~kl|2iML&+#DY@RAGb9Ow=n z@I3`aLnSwCHY?n~D4`KGks!@%Be2w|&8_(U-H%(=gPN8`Q^2#+q^6F<X6-|gz5W61 zJ^=#6!`YMlBS3nzG=TJAvPK29HGS|+`O3-gSmFoA?N|e+Nj{@ztF#+hte9_7+2l7I z&ccOgV{}2W1zNUq)Ir-@z^yV+!bZlZ&4vBLLARU(cgu5iwm4kziICM<LvtUd^tBOB z>&9XN(zaIoQmi+|vD0KZ(2@o)Kc3_T3~!jyBj)Ks>ftoPld0{0I$0xZPDdW$&K*Ly zBVY65tZbDX*d41b&fq*6v#LZEMn=w|vr)y!7$I6uQ`fFcU3<tDbQ$r1B_l1U3jqQA zeiRG*el~So>|D-2t=hfVvR&?@4b*9p%qfHB4yXe)wK{X%eFe%;-06ttd7U^kxCT1x zASoJ%aS=g@aksW&7o2g~Tk&GVT@rv1X+Z4}GVWyhpfhfnj*gUZA+e%>xH5gGBqraM z7n8jcK~UPSjb4wjHVu}}qc>eOdN#wC&1}+w9atE(47tftVICID<<&s}`-8AQV1Ce0 ziwR$35!Uac6C$S)tB%^Y#4_hl#ZhVOXS<l32<xL+IsY5$(qr^W{^OOc2+h`FCE7bc z%5fWP`SrcT4-f;-sgU7&S?m6Q70)51BS{Y{yX+%3ymx^LIqLNCzx#_HU9zeU38B*; zz31y6{?k=;EnULH|GDe0FRQJpFZ8=$-8JbD22;+emb~6fjtmJ+VMH;OeHzHlW4JH$ z)(uSQJrB(l&9X@T5SiJ7CQTB>ZEVH1+%BUS3dQ7bU?SBrmx91!OF=Aw&&sWCO0C{~ zmgKHE<|}f-t&vl7E{`R5osSfKr6W&{R$daNVHCiU#wK&UE@ZHha-z^nn|fYSRdi0H z@X5zx6c!#)9rQ3}bN^yQe_kVM0VPJ17z1EgsA27G&Z<z0;9200+nYb;F^@g*MDA`L z%NRBqjU`KLbMsS9<q|P7h-l@OrUgD;Adb`UcylJyEn41tsFq<bH94NGx@xTTLWwVj zm5SkR!2@m7%@Cih!Dgf@c`9!4=B(x3mx#e$Oh%BW{wsJ8eS}1Fn_IDqAFzCBejp}0 zp=a%BYfd#Ja!P>x=nLuKLi~UNF5*@80Q)T`TOoV>Eg|oo)LJxhx27(5IrEbR{z2|Z zO+F3w^|th&ONQ_u%b`-jAx#hXlp~fco+S3N(Min-3{F~6@{1b1H1Qd0(eg9Qoxrca zi~DQXf}2M9Qh~Or4r$ToTUGy6{PeG?Ltr!@dR~GbJ)EG6YyjAJ&oTpLtsVyV+Y>yF zdw#ne_W|GS<8WSmEvH1ztG@(L^#Oo7JQ<v>Arj83|0>HU55le5uwlc}A-ENEZt&aB zH9h!Uz|}7JMUYWm-oY9Wh&T@3m;-wQKpoW!iy}8jp^f^g`U~(=iKV<-6MRBq2&M65 zOHft?nE~-rL7F$0&|~Y)TtLZRb^#@W(NTrbJg@$OhzOn~WX&Hf^zgev%QB!vRWpf} z)sGxn?kJ(f7OLgZl2DQ7-t+3Kj~QAPc8eD7%;;Ntt*SrwkweQ{OK7o`ZF#hGqL$|# zBeXz6FGXdj9trZlX3Zg%tY^@5Dds8Hf_GSl%nHwgC)SaL&hMS349&AkV2c8~<lWf{ zc6nzB0aiu60s+$PiAI*A3&a5CbXg2q+gF569bo6sA*_QzCsBGfC;0Hf!5W-yzr^mE zRgy&ZJ*iVJ+ievaBo2@T<8``6RrV3@>{Y=VRU2beHthDy%?Gtn2A83*nk?)PU=!b- zt_jbqy{2-g%X<$%hTEMb15NHGs6EHgC-oi}XJHOLa3HTd^XOKyNkT>0UM->Clb~|} zZmXlZK{?k0u`7GHs-3t!AH6bMPxBXY(s9l(Y&NkWpm{J_UJ1?jrjERBk!(Cpd=X>z zk!gIy;6{~}X8|z`Af#c(WAV0bXm}_!dl}+JT(du0K?T~MjZZ?`^k-v}z;u7sm_(ed zpQ?5kKTx%dGDFp3HLxoS6_Zm?f}ykZ01Or&>RbrGDgFZR9sI@8v+evvWN4DVBj=;2 zGkzDI-@A{$VVDy97Tq+GGkqJlsCu~WPgwHdqPHCNt+=8>L}-}SQ{Spy1MFX}J2R_c zhf^HZ<PY&WR!t4_w^aiw@Vl?J1S5gKdUg?1@gk|-o(6sq_pI@Ekg6EJLsZ519bVbf z$KR2aJ^lP$xUy#ff1$de*sulw6F3nS+j$a{>kgg-WK7{Cx&^z^Npq%Rxm4c9+Lv%N zX<;!dXd4;^_Q8STkVJkTOE39eacLF7N4N>e;U;?P6ZQ|r`I$XEKFMSCT2ZpK{ja@z zE3n)l9=X3@dUG*nZtJJ<tdHf>IkDqYcw-C$XW#63v0wJha(KCxJrplvzK$cy%k}KM z@UUj?>?)$!FQ%Qu3}wWdLAzP&Zx$C&hCM$*|0-4=a;YCoW^H->_dht(1rj75qG12= z(ctdoLXyqJRa5au6M#R+E{>ru9tdm{tm>;%Pu!{|S77}OB)dtEvFt>zRZgJ$vc+2i z0>Ja}802a2V_IzM=FOWi^8wJ&4(Qc=cD_ECdwnSPdPM4Q)$0=Ye0^c=^+mbYj}Koz zuIhDZ1-?F-d;Nsm>yHhuKc?z+i8GDqQsB`-@HvKvEC>x)W{%qveq9B|#dzoRyd+x@ z5%|m5cs%}<Y%CtXG;74;wYmPk99<3Fe#Pc+^fEvN?Bfrn$g?+TCeua%J%$&f0fEeb zdt*DvL@_~f@{=lZs;1+&Cg_}w^PyAH@iM35hwnT>I<|o6W`^8q9vFzy0vkaxN($oX zAO$`XxXhz7>|Jv-c$8CHmK6AMV=KPl@UU^jU<zEbDLvO7r2@!$ekbAq4-dod0-C9g z_I@@7h+!T?K@EKq2LKjX!2f8OofRHARI9=Q_qdoF4F~3phWJJs8W@el6lsdY;W&oj za2#WBIF12097AMb|9Aa@22EKXdSAo{5EM+uPLR*Bb)W??+v0g=<>HM{DmBF#ZGtFj zuehG0XXI-`Kx>Ho72~-^Y;*q~-*}3VVtES;M2{Fg>P({#6$a<0Nu&EMxi9<3*Rb0Q z6w^*faZZS88wAYHmgq6I;`B)O2hWKb*TUKs@2`gysRLf2{SEV5bFB=Bux3YeUve96 zt)(XDbyHoEczvS}yW}A?g4-G(bphtyg6!GbY}<OwjKkvTw{7oetBkQD>l$@QP=>Ih z2ecY?U0#s#IahY{Cd}kZcE)5Y0_mcZE)Hg%%zPbV*h4S_HW<yOy?_CH0@McpGy}#I z3GUPYfd;Jj=L%M35aULvkz|70xH5I*-4;{j3_7uGl#avD8SMAqTVkw3A^^~x-wy+b zx)>HYC-%9l2$)063P13}_;Vqq+=+Ip1<K%*Y!bq=0^NrcpTG~WG~NN2zH9;-z#eUo z?}*i4FfL9^7ej2@OMop>zwjLz6FvOFr=dhH7942bO#^g+S2+ZIo-4tPDmdZZ2N*yu zvZF;y{kjBsz%1R~M!yJyyY(?mMHE5sLJ+wyG(k|rKHre~>{P*Ncl1*kXkq~p0Iqoq z8u!-wuv>nxpJ)R@w{5F7E&{<+SaP?d&%3C!`6zT7;c{xgXSxQw=lZk#OH7V%QEyqR zd9%(o1=N$3yB-;aFcdZ+S0c_grVf>MmiYI%C#50Apt2yyY$qR}%wyY#*Oy}32Mc10 zSa0r2vF-iE`0d74e8pvy<wqzH5QDP6mXs!;!*#<#9O})fg?o(e%!4yrlfr}(Ob3zb z&Ay2OhUPPgU&i1J0~Z!}KWK4;us<+^?&!?H<P%$d8%LEl+F}Pmc#*I4k`FL=E7n`1 z_79cVk}TVnKyhc($Yv}zE#n~?fdWH;vo9g=K8?PR^V=dD;;@-~=-rXvy+SX&SE(PD zr+zs1m;pEI+qg`JPzgf%g3$_x0J$wXoB%qMD%@A$TAJ<lHTr<Vb4==h?zq*Y{V^e; z{ZG3}C1M;c)8aP@w5SA$?SU3|XIv8>87`a*wkcPp2PsftnOCjP?d#du+~+pja>OV~ z8aIA4N6mbY$`-2ie98JvSazzUL0}9i$4~*;KB`Su1Dv8zMqqC?L`hm__=JlX5KKWH z6hkWm_(7lr&LG1sL-;`uW*9#R$-ukpgMMRtAHRz4<5%&0{36JJG))B=`uK|=14OTa z445`hkYT`xdPf*#3S0FwkxX7;pzj5iyu20B@Xo}Njs~tbfZf84jpQ}Cu(LMOi8vB? z!z>P*79fCl00M{{AfO+#ZVwxzIJu0(*h{c+vXLj6<G{%#o&XV2Rcf=ZbDNv_u&wXi zoo&gtxi#PBwo;peo!d0=?OnS(-{uwhHm@wTxv+DaSMlM{&#UuoUXyS0+SI1uD`sG{ za3@Md(tnhSIx(quB=0o0S8zS_q;IH(0Rcs2t<QVVBFUXMB)YlYCLR@ND!jP=3#Aut zExnk6O;<e;f@ZX%pn;gVpa*|0XuAI?sKb&foGpkSslsWq;3*<k7i7oAR(zvPcC1bl znLO;H7Q@>(95k)O!-W=##AaQ*xpoOym=@z85;KRI=ZV$8)Ci}_h+0*L`OOH-8Tjd4 zRi~+l3955xqHk&RZsPy3FZD3&u)Zw_+>X%M(En=;h3E*(=tsSXKWtvIs4?7Fv>`jR z@2-0<#^?_0{FB|78CW{pShxv|H2OE79W=OQ$#HtUPya_?*c(|8n;TGb$K&CJjpH|D zpZnIWAGrh#E<}SHmM&}@w+W5VkUtLhhqo*lRYQaN|4?jhI5sz;=1u^FC#<TUgm;c> zoUkGL!j~_*oe|Iz)ar4K(M@Oz{Y7(VcMH%+m<{qpvDM>ZtH-O=K|DN)%+c&yZ~X4n z8_?WOu{pFcjLQo)p&=p>O@;=ovnRv`9}^pVtQs7^!^4e%4cXgon|<r0jz+dY+@Zna z&>#;-LxU%(pO1?T{#0!6@oI1g4=-#CZOHDr>bCokxov1f8^j(O97ThUNCSDX8hk=* z@TX&gPgH~bc<(rjW_JBmANatZ1q`AMA`T4>qro;DK1mHeIX3u|*x*yuAPg%~Vne9J zq{d};-SYcgV6vfRm&9h5#%7nPSvfeX>Q53vdpBeU-m&rH3%Wq)Nox1x*zPH@-BZ<W zT?nmXguZ?K-(S=PLdVqL^4Q>MvBA?Fej*frzvC~-HzLS6(0PWMJ2N(SR&4HUHFtvW z2nv7y+yCuj?BC%?a$F6b6C3=Q*x=Lhh+G^HdB+{o4|apdbJgy7vE8S~cF)hZd!q1( z0lNMlzx==2&<PHL>?qRb3N`zT*z5(d*=KsQL?_z2X4_Za)lQ$_AV?3<Cz*StT6$J& zX;p0L*=lJ-m>k)V-M)SQ17saxaw!>9)V@W%qlo&-#}4fwv-V4vkl`c&w&-i*mFa)l zxRK&vD9A88K;b2Jp*Z^6d%pKhilgI#IMPQJ;sJ;diq*TW{lWv3f+y+$HqVb7hX)`M z$lqU_y6+vNpVWur@X#n80E?5nKD}%EV>)&LP+s=Hwhyy`>MlSe?fdR0-`}|l;D~>E z{kCffM0FQ1B%izX!J9jy0b+F9>pycR5n0^_ByButL-x(L9K4I8QH=>abK-_<%crjW zB*(tGCwS&0D5{UX|CM;8dPwj{V?*}&E%)6^Qt#NE#T&9KZhp%@lg*0Vu~GTpzplr< zzDO4~Cb(y?T=vb6-piLq3Uq-7Kooa;@ISu6&yN;}0(XJTt7dO_6>dJhKoGbIioE|b zKX@|{Q1NAq<Xdk0!9Ng%6`wW0XKwuFyEzUOUj`-39{SOLyr%locpd2f$Pd4HKMA4Y z>mcRte{%C@Nk<i52MKKX@_jo=h83R%BW-!_)JfG}2K~Kf>eHX#s}-L`zc5x`eb=}C zqQjTL0EfPJ`43?PSA7|;gJQmV_dDK9@=YiQ7iX7l*(@FeWcT0yrrU|O1#!F~D)az( z&`^8RkKcMTaX%b~9E_}IpgB3NJ3qSrK@Q#VdSDT_9F~<HpeO*Rzi0Xrzk~aa(|r;Y z^tbLWvX21J554P~cad`P9a*GjC@p~H>u!G6ArfBb#Ug6;*b9vD4-ftoAqky0uB{Uw zu)n?cwRf|Dj=cb<e)8elf7rPf!1&Aq?|OCY#0WkCksCXK(Y|5pmK_Ndl<N?hdSJvr z1+Crw=To!9r*%X|Xamd9FepS9h<)P^A9!zmP(~;_^#Jh&HhcF&U;k&4v*BU{-#}Ml zH*Dzdee;(-M~W6cXo2B=V<8OTEfCHym9y9GeEowYEq0@^aKn;CMLz;xMN{W8{=A4s z<8<tihkRcB46YtTAmhCH7#9%2ZeM}eC>JZ?uw>AWG_Z&%o7kYlnDb%SbK-EYF?2DE z#08BZL}Q0Nil8X*FcXZp2Bd$a$)p$yhOdUJ=hLq^gae@H77k&E$?wKtztW_+^XAgp zNpPHVQz>-ig1gSxKyls9dy*$}O)=~HSY^rod%?S6%&%FIC6B1V(PhamW(1L*@nN#$ z_b^L-F*{L-un=G;zAQkP+}<l&5t>q#{E=p$A1dI71CPj6n5+n~M{~u)U@{gsQw-*8 zY{j;YJOjPdD$34<9`3ae5$9ADW{Uv|1W9?UQ0JJ3I{A!;J^u?c(7*Qt#1J0I4D|X0 z{~;Ff5=0_Y0naNN93~Gv?oe!d6JuNACqLz>4cm(Nq?5Q6G4>%o?R21aj)e4w!$|mi z_?e`Y!zQGk!Fibu3F%B}=gni5kRH3}adCbiCTS_e??fSDS&@s2BOZPcIs^W@5I<l& zrKc+@-ky+t(_s?QV;4LmJ|^%h64K*?9>xg|rZ~<#64FmKEEf~fndD9xz6L)K+K*^L zdW6Su&u_QmKHxjYoEV3Ej`dF@A$=KfM=U*}3F$@jwB_qVn?{+2m|T=yLeEbqAwA~l zukJ)VA!U-vDkv`KhI!=a-_a_frJSelR8vCBPbeWh=IKB8kweQ{OK2(Q=~oCcpy<5% zu}VlkuRh8d_HI^nFmN36^d}xUwA@odOF2)!6SYjxKGX7+c8N3JRUL?$W3I*X^gmUV zr_ZeOn5D9glEt%-^Xy{jDV9``Th`(>-)^OS1>-AOfcKUVP|nk@K!D74q!UY<r96G5 zMx#@0x#N|2`X`12a&mXkEPY?<l&id4o<1itr<u8eB%qL|zn@sk=jkia+Y|Mtfv;Sm z{yv*v{{UYpWa<N;f#!#JBc$r%U1@MlY{RT*n{Llz9QXExS<A&a;Z;4|{=o#GtG4b_ z^`{-{Op~XU!B~fkboDl%A2YO!zRjJge}C#oTdIB-T6_!&Lu(oOnjax%ELXqkK03oh z1z67O;7uNNuKp+ZwPLQmmP`QRT^tucI>ld1E-7ap-k@^!k*hz+>&Vq_@i&Z9QK=Z& zb(5?AKthv`mt}fX_y&11P~73U`dC?^8M0lVF(PWpbM=w4Kg4t7>?>D)(sT7&|J`!+ z|2E;M`&|7`r<Y2(`d2Uwavr(*m?@k)SD%^t-RA4J-b3n0)vmkD*Z;SenBSJKe=uHd z%h&&MygdJe{n$ZI^CDl$r-tLoG_TV<&1>??vpjhMp`H0B?9Zr+TsGG+VL$f7y$-Sl zlJA(NF9sOP7JF9S|8Eoafe*rdBBpnU8y-InlRn}2@!{a7I44wGtS|~e-m9d<Q!otk z%=dqDD-MsV(p<j(+FZW>%X0btFVE%szap3K|EszF|2n!Fy8RoQ!_lvCDocMbX^Q#& zuv|jE|5_5O2r@)~jws*%?Fl+(gJQn_NzMk}+WV8p_upKQB87bajpcm*_(ofzdpX}f zKIcql>jIDnw3A3)yt8?*E#H6kGcmgzIxE_Qu=ryh8mv4&Zg$Fge+OdA-51W748XT{ zF_*57o}x5H%-FZnn6z)FF>l{aXFv2ew{BQfA0?D{7t{k%3Wp%DT(DS66si|$9Da$y zRiX3MD>W)cF22z=a!0yEA;KA!DcCO{G<#+5v0AQhqG!<M)*sAsxx$UZ(9=h=TtVT- z)1bYvb_Rc3vtX<3tgs&HUmS;;il}_?I4oUY=?f^B4hw8{6o&1Ic(iiy!ZL_bIG8n3 zObAV*_H=mt-KS{Xs;^oo<V$T!&pBxqS2sw~adm?ZwB7+;3!E0MZeS*Q+v*0chvV98 z5b|2BZgU4mUe-~pZeXF!=r=Ov5-i^Tm%TTElj|t%$7g0wX??7N0f7z7%Gdgqz{Ub> zqj|>I0b|4w5QGE)0nDu&B!<XlEXnp7UyIMRF|g*amqV}|G2%*=BcO03A_Uk30-NI( z1c5{e5SAS9|9-z!-TmghH@mB~#F6}0AA4TEqr1Agy1J^ms+y888r$TO0d+7Fk`pqn zNuBhCqib}-M(7!~)LV4J#wIm1MK{om9?=azvpVPP6$Ej-><^$hg+hYl#stZy%wV4n zZ_xDLm+%ILtt=kiK>u3{Z-5zUy(tmv;4g~^23Y@_hz4lVdlpM`UyMDVQ=H--7Va)T zuK7GJslKl-bv7UJ;BwSDBC|8PfuVrq=mv;jmC+3&czapV4U-8xr;4iRhK(TQ0}|bE zS8Cq5thuR!pj_-d+t>TA-T5<#Zg_hFs1)6BQ{N)`3pQO2so{@1w&v4G(b>04W-DSG z?g;G37bVL4t=ZsL&P@*&x=B{M81R~A(e`%y+L@b;++5L<{EGCVb2p2NP?9Ck-5lZ~ zf^flM#(mLqYHBRi@bTn?y(9Y+6cB!a(P|xT(TKE~keKJqD3i<hw#UsJyXu@)d}E}i z#b7CpIB)C;<`!pW(fmSgrVr9I%WReFW(2!B2XOHIC7`3Wn*%K-n$o4-Lu}&qprRkZ zH)VbS#<jl#b}<9^z!(4n!WJ9|0Vx#t4M6EoCB$8u;PBaH;%ta**d4m8xO>ze`>fb| z-0=7a5Jh<}*rFdk%hh_J=!eGo^bZtzd`;`JLLfXz6*mZTe@cF=oYj$dSCwNTCJVGH zg?b{;?v8AV9x!1Ycvrp<o*dK>AaNW>!9(RIizK|Q9b0n}HikcG#wm^GnIOU%BPxc( zi%~@KV*1IO-jc0r_FR(9!@zh6Oj+xmdISO|kbEKrNc1B1KnXvN0UTT?dYZi|Q?QVd zzau*nZZ#HQ(GvnJ;1s|>35HZ4Y=R*b2%;FkkB3wszJMVWh&EtI1!51dbRw0xA_(w{ zPzse1N&%fvp%gv*MJNTbIw+I^mN$h`FokmyPWl6&MG!_j1KSDl%s`lF?Ki=)6jE_@ zLgt^?Y_@D3Lgq#bso;9T)d%y0K@4#m8GR57;R$?C2oE<Up(LWmM2g2(pvM+pp;(9z zQlVIg5K^I72n(s$ktr6!LJ_=9##eNyQ?U@CPQ^lmIu#2M>QpR5N1cqX=u)R*Awr#s zg$Q*j79!NCScr}~8DG(*P8|ah>U<qg7{f_!U?J3bBMTjM4tKBfCcYf%yg6UzE%`cc zO?BFo3_}_icJ<xXL<PU0v(85jP5iGa?&8gfxIFH{EWTmykJMU}Oy8QmxyGD)%qC** znO{kXitkDvjoC+40Ump2O938J=|hJw1$caQnemHNYx`RZ{82$0xwXBtPH%0;PnNk( zZ%;LRa?y2KvW0~x`eI!OQRD*6nazb;x!fxk>Y#z_`yzd1g4S*DCi^XAkq(P<Sgh~O zB7IeY<A5#F(?eLKmzScx5tnZ)-beZ3t&l|}mE<}tWg2<vJ&$CRIiJv(;IQ4ED$pdi zj9Z?qo{WJBH6wffLB0^4bgtQ4CXTRW;<)%F!k-KJ^|sWoQ#RFjyvMC2usB92BD|<a z>2hqp_BeX5f*W$##`8<YxRNW>5fT(uZf03zzDlayUK2N6&)<S&ecct=x-0QJaHSD2 zqTW$^AH;!?ex1O1KR>Mi^w!5T@2dx(q{_FC@+fobV?Dpb>On252kE2Pk8JSJ5D(vC z-!PPB1>7Z9!t`6)wjIw_YT0I*cf8sUzy~Bh@Yn{X<>zAv6~Hq3)(1%0vJODlwjG_* z3{(1jF!gh=#zQnXR_##}r~JQ>QfQ7RM&+N9=fWEI^=SZd8uyOu)HrB6vWMla{XQ1< zAmnqf(vktepHQu-ox?p_q!?gMdkBDy)qQeJLilIa;6W1j{#5$TVyQw3hgD<SJaCaW z5x461hdb{#!u`R{`#ro5F-Vp4(dz&kqKbZH5`aGDTVfIe7b3B(%p+xv#ZVAJ8ZMxD zr}sJTePP^rSO>RkkcdolunJ|$KWsq5#Nnu+qW%`oCIBx_Pi#bc^CQaf<a>j`P;yaP zHTPlI?kEkL?NXZFwaAe0C<)|-?m8r^2T8f0+a6Fih<Omwrj1c^1qm{Y9ft|;>LCUS z@8PqK7cgGo1&mn53mCZ7101@Q+w9l`eO^6+4+hv;$^F0wQBaQb$cPNIcoQ6~tQ?hu zl?qYd%?ZCHQQ(W@*xh426Iae(fkWT7hQFZw+c_d+&)s?Qy9zw{aPs6B+_{5F&5S8E zRe_%IYiF$d+Cn;Oq<_0yFwm1RpToA5y~%d6H&~j(jfnRoiv{d-6W4io1M~>Tq}eud zC}zM)&OqdqqZJE|=Q_KFF6%hErg;bskO3<^l!suf;O8skMZQAb=H!WR=D>Vf*`kR6 z+FS!9*vkZe@QLq12x$MvA$WYKEClqWU{99nYOZ(twW(0;b-t3^36<^u&``Sge-Je{ z!*DIW#3G|oStdVXnE|FOlMitY(C>XE`47xCh!Q3LVfvYahFVOKPVQlGLz-dDK17=~ zd$(=h((FeB$ByQqJXEA{#TGKmE!l0~zv{3081INI=?{kI|Hxr@0aXLdKyDv!Nmr|0 zp!P7DDR2lDn_~_*93{d8FS6<2{v}&-^;$a@=WktZ_kO429@^~+D<H{1OF)|ag!%Hj zvpNA~u{lg!9M&9OMn?{3N0=XIaL7+GtAMbgBX+B!yO%SDH+Dp^!U)Xh-_qHI)dC;E zY}FmO^Q+(b4}7xpkr-tMXqoRH(mE(9_Fjwx2?G%4`XS2M4hj<SaIWrX9!A>1Ys1aM zI!EI$9}NuDmh9_4{ue~&>_cbHWM{aF_6}(UlfCL*bSBpeL~d7%#-arEm2FplY0JKJ zVRwyv;BiuoAqA||hs;uTIaBb59B)1A^NicB!M;}{<_-SPWm9Upz_MkwwTKZis!@ow z+Qs0}i5s<TLWUqk*q(0UYkayXK9x6yzRrmXd}{&o;`Vlg<P#0;Z}G?<nSH>Y?mic2 zV8e0{P}PuL3$>>^IVmz3Fs~@JU^*K1b<l$Ag*{~CG3LT87*)Y5HVof;7=~e~Zb0Qh z`gz;|VIZ19%erY^Iv>pUFmt*45iNm03B^gAbn+>uu37ughn;r%!_Qdvh(|u^%(KpZ z^!iqI&STDf?0M(^>f;`N!4ocg;)W-6r?C$dXzVF?H6L~J<zLZArlH!_j-U8e%9BM5 zu(<eEid1z@NZ(SySw>=)O-38xK8&@^W<AQM_>iwk5F~Nfb!rf2Dg_vCI#txi?sOX2 zn`T&-+5?)Akv$vRj-yB94W5nbl7Qt79nmQxG)8Q|8Y-1%eb(lS{M?nHHN)2^6S4b8 ztS6l2DuD^3z_ayOC+#ySP1(+yKI1iHGvTr)n+})AB6h`RQG;OFrAykZieOP%xiEmW zF5Af$yMwi^2o?_VS<QPu6VbaHpL>xQZhv8y6%&%LN=SZNuaNu%;Dp)7&^xtmy<<&Q zLC7kU&4#Wuvbk{ClkE<dz1i+7V~1yTS=C{#%#TkU-o+P}-{CoYzHo=HDRua9sl#gB zI?S4i9iE6IJQps};c(fT&5gwl@6lydhlkPO^HYas`Qq|ByceG@+~Mm>9X>C0Sgl)! zSyQ3I^I<F-S^H-1dr!7E-0jWwUKKk$ugj_qbEP~tb$Ab7Tz-e!uU)LeH<UX3nABml zZXIS#g$_@IUN*AHaM_cMhs)lqeRb^cm@cb2Om~eeb$FibEWg9!XlLOOzPZ%lR_d@? zw+^$WLWg&TuE7B#T!LwZ%ie7Kn%Ln9T~>9N){RG}4v+E0<#%`zpD*0uiBgBpP90Y3 z)?wCE=<sal8kknN#2gNnz1ifovBOiktm-hci=LS}Ji!;2-{EO|p6l@3XG>iA^`#C! zDs@<`TZdT_;$l%j<kGR1jV$)Pqr=nJvBT=+PF)g~;<7|z&m&TYr}*OXJ3NEWa~+=f zT&crvEOmHY>abe34zng0CsD!DJ3MoJ?C>sKR&|)}F%M52-pLo2-{IZ(JlEmL&zCxU zXQ{)drw*%i>o9A=aeb&Dc6dGzFSztAiA#sOSck{iVfAuWmsKRqZRv-l4)5ZN%kS_U zKF@Wyee)Nrm;{fvmOA{<)M2%59cE3K!>Ay3cp~%?TsmBWONUFW!>@}S-lNN^4%3Hj zP3rJ0UtE5N_u}(~JA8Mk!>6VWt99!zYbtbjXXqNZbhreU4wqPmZ-^b9*JV|QPeg}L zP95IE7nk4R_Kk~m_#LGVpOiYR)~&;=snFrs&^2)Ba0#XrF0l^Z6gxbo%c>5af)1aM zIy}#ImfzuVw6pLC?<jTn_|##wZXIS#g$~b$u3-+}n&xo0i*@+s*x?CXR&{tSI;<#c zwzDo9<BQAh@FYH8xWm(>4j-F3tk$i=tf|o9iO@^T;c$sL94@gA-x51KrOT=gpN0<W z95n0j1YcZ!ho|xR!X18psl!L54y$$RFl#DwcxUJu=5V;g91fSgxQrd%smrPkGmXkf zBIzl<xcm;!;PZt$d{3#v%>Ux*p<1^Nv!-H)UmvxlnQ(~?hf8$$U$BVTvb0l|RULi= zI{e^Vhxy_@bT~k&`nk86%?1F#TEZn*OSr^pnZTOu3f7|l){zOUUCRSYpBVz@0{~zE zcO(W7?t;Z9u;#mh#j}wt3R(<c&+@?1X9m_pfCbYuTw<DrOYo(Cje|I$%c?<qG{DkE zIx7WV;*0w}i2BUH+8F@AWD1v{t#Aq2N?`5m3f9LNFlz4Zf@^AdaOpFHYc@at;tH1_ zu5bzBN^s3~h3k`qi(C4#O|8pzEe|ezW^m012tZwLNYoYXg1Qo1^IhRmj5LF$9j-mg zgG-+oToVBpkXN__d4)@m*WN^4x~w8E9lEB-Y}N|;;+xB$FExM~YT3>J0q84Sg1*8f z=qtgsvnyOWLeF9XjJ}o!*HnUQHb4OS3YVa-a0&WKaLsmw>vN<p?jHvFS{_`x5?u2E z0?^kR6Mcodpsxhid{?->K)5W*K=|6TJh=3k(^min^c5~aU*Qt;^>2y3bXi4Te?hox z|HSBvZ!Uwr)PT`ffB^IrE<s=667-ee+SwJZFA^@>d@=f39$ZriuGs(q=qp@;zQQHw zE5S9}6|OH4uHGDdEf20;5iadalwB}vyJyd#*zW1=nlyXgwsWu%b6gF7B?pVc7*6I6 za1VHZl2>8=c<9Agz3jfeGwfY>=mq7b)>y+s#}K~XC^)fgZO2dC*TO`tanai9#)ciM zd$e;wpNWS6yH100YI{)FBFiRUZ)de>10e3T(E4w_@<{`~GBx<`Lo)r-U5}7~xakd` zt(uE`!;kciZ5A4eChK&5dB;Osbi_tOz8$|#?Tn>%JS&@d=c%10JEm@N=Yz6K=oWns zR)ub9&oKuA(>G+3w=cD;*CY_UtM^A&W2N3z=7PxP{uA3(*g#3}Uz<Mmjj#I+<?Lfb zl#rbR?_xj7p1byN_Zz-8zn5g5^$>l5YaU#{WAcP|Tq{iVV&>_9Gd`Z%yLJs9FFFnI zHZE8BrPW}!$5BJm?*qGQYolk@Mpd;Vm5?$z0zN-;=JV5?Ui{qxGR6}!-fa6t_ZiY& z_+cD5w&iCrRDXU$`ur{SxpJ-;R6t;)28Pqo(ar#O!fS&fL7NDXHQK}`_>OEE{jo1Q zy-{yYP5FGH7mz;p>Na@oUfX8)(daA-(fuZCB5tMG?6EVrYI0vo6mn~7>N_@*EIW(u zNP7KBITG|OP8uL<v(F*SPZl>7usx9~cGqDG?z@;hCKeVNJ|5%g)dLV#Z>L2ixNl3< zZ|e~UV5EkEo~kf<dwSh5iq~z>HzYE~<#29#Xl~QtL*X7|4oJ1qF{+z7w_1&UtXkkh zd#%WE(va5(y^x$kHErS*$+;U(sHVp^rY<=-uNZ0_4QS2L;WV<gyIV(w*fZi??RMuq zZ0EFMfZJqh=1N0!bfl<4^quK-M>JlCeq9&cRrlmA=^LL}k_<X$792Kc$=BM9quw<c zKt*;rO#bf3_468hDL?@00{osL6Ja8eQM%zZ_T@clHBsAL3Bqj_G$-euOeen*1|$Bl zMz@uI?AT?vOg7g4?EgWEcoAfXI;9ANz#%xje}I33@Td>@WH22LI#`kFhc4gGLyjJp z5-x{KHp+6yM+<Vug?PO+*%RfEDV$Udu6r&>gDw$IpxA~(k$MW!$+mW^$Vt-t1g3fd zE8<7EMs6>w0M~GgUywzWDJN0O<*C8TY|2~!$P#a2v#Wd1SX>csym60v;=_*`E<*$O zPsfVjcP0L#FmVw6I~f1T`4hjx@(-m8z>aJuA_8J`!c4xfD;0pdGJUegQwYD4Cm@fM z%3iYt{+|QzGhG1}%RczM_P`VRFoFvg%OS8X`l9kHfQ$>KrkaQN(L7lBDVoD)AQTiu zWU4wJKS)fqhef!^T$I5PMOgtP{+lNOxau@Sv(+{jhv9G}NpLtw#B&ONiz4}X99s%- zQ(Tb_^W;~D*h%h(o>@B=cX4p@WAKA`!E^9~1X)bmi8HTp4j}5}%6nKgdMU?P6@isA zjsjc}G}O8N-jD{+DF%KAjia6U=LM{r{7uC4-91uk)ta@#YBeoKk98bbcZe^@XqF}U zAK4?h6$IgHgP+kSlGL)nwE?+Jh;<S81M$gYjKDAA>cJxl;q15;VFqAv3K`aS8{jL9 zqRwSpTYHSf6C+GXfry)M<OLq;;F`6yb1|$a?X827=nI!QircDQGh$-E+Cr27um%n} zj?ph5>rEwOor72c0N);9d?Ug|o`ea?g$a%YAlpXk1YEDTcjo)80kt+hpux$@8DW}H z$S68l-JKeC7e7>L%v=t5>|C2J!uTD>*>YTm$SY`wKHE`AKVris#s<&0?{bzsLyVU& zn(*AB%^thgjjSP8?T4y}HZcl_?!f1~^GL5+!^Ruhe1^+DQ=11-EELc}dIAYL6;^ox zY@h*_P#@`2^Jj37(4qMt9~D&?JPVQ;R<$g=hE*+V|M*B-rv^h7koPAPdYl>SkA7-` zZk_q2(X%$>gcio~sC7b2x`pC=U$Z6ay#how0P-GydpM3+V}WDvaNy;1B1(zvP#>kM zN%9FySV@~qbjSOM0L_{!Ku%zaC?X%;TwUcsQaY#kY<>8;ypl350x~IV4*d^GN*nj- z)JOEq;yy4;Eyc#a*qh9z6*AVL<9MxM#4yo-vp$+PX#u|=(0e=Yuz76Lg{zq;^pU{M zLye4l8d~TvP4{bY-&lfD6lxpT*RKh~t?r*{pPwHI92x@&oM!e@>{;LnVj1KWeU=Xr zTb+TzWoAB!uj9FqxNe>3wQDSON1K&6I5JP<p&&8}1rd2Dh{#dE+J+zp5&0*{97mnX zJMta`zTgT6g!Lf1Ekfm=C{a1<k5sNuE~j#k)WTE_Eaj-2LG4E61I>O=InL5SL>CCP zUzm~A`B>tL%isi89&}<i$sBa6R0^QyK<4Km0ElD`g5xZh1F@q#NW$YRxmRSqy9=40 z=VadC<YJBmTRtXwMxY-dE=fW$egm0{8Tx8t(HB@4C^>amSol!ul@=;3Gq&xxF%sq` zBg|bKcjc0{B`H?Rg{rTm44IHS0%d-lua6jIo@<n;TS~i(B~JL)9om~PsMC4M3<XhU zD2OscL6nKY$S^4L5K*Q;c#u=(LOIt>6_!@92xWeuM47BVQl=ns$^?QJrc7XILCPG? zQ>K#0Dm<0)+PG8Z3@H;r)lUBADD$xgkTPewQ08MhDRXDtNNl`k1i_SxP$r13yBtJP z?=#V-K$$owybp^Mg0>_Pw*G-MW}APQwiiPm2rH<$D2K(I49S>N(gD7dM%FEdMYA0y z25J0aMZ$iWO=&-m^F<OJOlhsJ@;2kvyneHca!xt(b6#lrr|Ge|r`3!8R}yHx=(B}L zbXasNGr%yqfqVcq5J~fG{-WDs_@EOp5!fWPMbM($LNz;rn(#K8fOAb7F?M*5twF5y zgM-H`h0fm)J+#8PlsD%2bH*BwGQZA;%!R@a$83BIf8pAZHx^_h$V+O(aa)bOuO$E- zdu*c<duvQ&!mNszl%@piLDz{`BX=b>1NQJfJBnn_O>tFT`UM3kKlB}Uyc-C>ee{(G zeF}jq><^j<t0HTQ3#g;}d_7L+{@c_WN4Ht&2qw5_C%V5$jB4`@2qmfm+KKMJ<3mRK z@WXvUw^{b29S20@EZB1iKu0&*=tQ@3NFgSmo`5)diIa8??V%N+ds^rY7=?l=gySxw zIoTB`#JyK6gyOgoIEssw%D+!Na1>jlGFA2tTv2W3jcEF$>aI78K)a~#_fGj|{j|M{ zXp%0GDCD0K_?PFBiBJdc`purwHz|+Edk))=dtMD5=5kW4Mr&2DRUz&1%3KUm$o%lY zBXDX9j%@*9xXB3z&6l!3%oI#cv~;v~hs;e(2o_CF$AjKo+CZ8x3T|M8N*P9>O~j@9 z!_u7t&moG#9OZnKfR&^7ZS4rcS57{vHc~&>j&z_sfOHQY6>Pd8|A6m{L`$z)-H?Mu z#(=1L79lXm(tvMI5WHiBAb7B599s5HlD~681&bD&;=N5|W!sM^u$aqJeZB`}G7jL# z)i;S6prN)ur2!}!;c1?L&(iSKc|DK19Z1l0IIIDhE3WWC7Vp7oB`J`ZgymU8wXa~j zxF!MTmYxTqvwRW2Ex}xlbOVL%UYBaT+>C#gwZqWI(7?N)hS6o&^K&e}sqxg5o96Q} zM#-x6y7apD6|YCrd<T611Ca}nN>MhUHj&AVskV0+nILtD5vUJqWYSs(!5w*DOxia- zMm-;yXgf?06)-C#nyY~6B0+eUra;(O41=VT!+gMosZ?m@38~x(fQ>I^tzh;NtqPHG z<!53500Y$_wTIo})b*QF*E<BLb&;YwyY6d}Ru%xpsj{j_;mp*D<e>&1L`^aY+CjW$ zv|ehCZSKC~1hWs2#$8Oq!NoGqssh%AqbX1c^Bu?*W;OFce#?t*G<#qs%{C&iI2a#! zio7`~IaGx$72Fj{MJi%Pg-LOH!kCBZQD`zyZNJ!=*l5_U(f~S3)wQ;G2rlLDuATy{ zG*T``lI0@h-jRUutwYK@fti)2%^T9|K5g(iE%$^-7JO12C{6T@lyuErQQT2Lnt3W= zykYy5&>Shx_`aQB63|zqy!MP`6ibvhnP73sGv#(Els9gammh7h$JKx{dM-gFA&x1P zQZ7)JswvN;W@Ea6@*osy_F?lx!^<YEbF2)s)dL+Bh~la@2wkg}#*-f8d0=Z7qX4qO zhgfi{_9==P)~fQC#l>@hlkN9@wUqemoe8g{Y$s2Gyb>bgC2!Pg^`WEcFxB~Xeo3i_ ztds+4N@7Q<?l<t9yL*>Jy0Lya{~#=7H5Zn!qnDGCkZamvwU2<9bR>_rdx#FWvykoM zk3Zo=25mEH8)4fRA{U{iD!hkw6-20qb3~_-_s|Tq1&;SF*B*9)9bsFbuhj!WMBV-3 zP*Q=x$q+jqyll?Ka|`o<P59X$)G&vV*qWbDY1UlcjxhbT$yAKjkt~HJ2@@W|LSg{6 zM2#9R2N==ng7iw7Ff^gk3M+mreGWSlvRT7wr-=^0_TVWABpcFc2F&ULQ*DL`qFuXF z^f{-OvrhCOd&@mI$RaS(3@5wbI`!hJ)C=G4U?u7WgbMUQSl#0)Fi<BHV%ot-Y149A z=<K2VLGK>gbqV7zoU_c2i2=<t?b=>kkCLYx&pjJD_4qrC0Ul-V*Vdjr(r7hMWaLCP zIRnE{2f(jO0K4GF7d2a4Lf}d`DX^za-V*oF^(cpd+7|#^g|2{UfRo6S5A2qh7z1^W z(U@Q?=E!WFi;+m$^=^WrlVadoZAac5kS9K6TTU^FH3`l5nGu>1U>c&EQjh=r6p79> zc7~P35y%kR)dW@P1J%op!O9_)UUY#>IlRQz6gro+FE2{jx2C2Y+58xrv_*+`BE9I# zS$L7uXhbwcth)}QYw0j?<Um+NiR{*ZNEEvmYHm->cIY+88Vv4V&}%+fvzvSvv>kQ@ zP@SKHa0AIYGFw6rprIgQ1C<8n^$CIn^qNVaHw;)n`6gogzmO85gS_uZ^(~;+%#sg4 zulanXUc-!D)N48tHcY4&Ab1SlB(5dY%^EAzO}-E|wfF)ywetE7Ll#`$nJ(^Zza;_P zq3=wS5iCL9!N?TQ@U~Rr0{RY5b#r}Z`AyxOnp%p!GnHOng1$2uj38a~op+?#_F3N% z9oJex-x1AgkU?rHfRRYwQ2~T2eP<jy7Ni00Rf6)s3^_=y@8~+|J1XY&ol}AE{iW}` zD|LOJ^&J4lSy|F|xY1tJcXng$c`v)^JG+Gon;Svu#NL+HjiB$aN#L-o@A!lK;(;k% zq3>|lKI%KW$Z&%aXtG{@4X`0BOp5m=jCJTcy8vp?cSICX-_Za%`_*;ScPNW5tnftA z?V|9!KS8q;h35n5^?g!!xN991o*6*hv2NO0nHSK+^gC4TvcmJh1j{}vJTqMs9>(Pr z6&~(*F{3;tm<E9~TTr!kR*>G#g2KZljW}2th-)E*XN;~^Ae^qE0Hj3|u(<U?af`pU z$4<8hu0~T89)~2?&Ro=GP3hwauO)@&h6dD=hDRkd*7F|}hn`xk&O}xw`Iii*w!YyE zxqnXnk*ziIGjUxhs>@+n9c5?0ZLvD;*6QeT0CA7LX%%*C##>zE^;KcQZS@5f0KE24 zNnV82GKwi4KpQc!ni&WfQE<qg#<ixbc<N}S+n67%DpCWO=_6)(sPT5ejrA_!rXR1i zX6=;t9C9SHZgAn7DeftQ!JdHM67J5&><TlAI59yrKf99Pv(?cH09-1~Z4{f{5QWTO z@#)1Ju`n2r^Lk?Pe1YLY=sMonpveLOmXNIJ3=~+;@i8{NE(t4Zw6Y!FvtFlpvQCaK z7CTnP@sOxvm$|znbfghqT|b&vgSu$d;9{?#+1`(#Sz7*R4A$W_{?$2P@NW&rImEF; z?IqIwtAavH(^YFM?Fo!yPhg}0IZxUlP1OpVbNdOXPx*@vlJ6TnB@s5s(p_OHnGc*w z(*R!8jv)A6vZ)VfxOY7<65P37n_hIz9bObIVeoPTEplrE9L~oGtPiIKxXCR?r1hm* z2(Kq>y2EP)!-}&)@C|&@kjE7Idb3wPoph9Eq?zio1Mffq5PDXEQ}s9dWEA@qyu=Ll zN_l)KJ!JqAXCrA{B9Ik^xj`SEzy+3#!v|)NzwivpFX6&ElT%wb8FX+k7UGarR5&qg z#t-1W2%nO<qY>6rNRp=gbfZ@gsmSnR!%N#)JhF-rO~46%M$Ij3v$@S&gj}tJfIMJF zHbIpphzOG`gxM)`wiQ4?Wr7B103SqdG~sW?;k_{puW!YrZMD~O7A!AwAZEq=jD^Md z5Y8Y=^P*Xv7qf+V!Oe%(WSSRHJ<Y7Z9IWo!FrB|A`BZux!hH<e(D!)_HiTm!VW%MJ zDV*5VKgC>mFd2QmDMC^zhKWMXMTfby0z+gbh1I<d1k=w_rlYGJlU_4s>kz(;L4(OQ zH0H;dkP7pWMhk^z;N8M%bWJ<r#zQlZ_?Gj-_O5q=CNdAinXDuO?CFwj&<m>j?8}pO z*n(gEzR#5c7~=^HkE`JPOw)>%FU=k%0QZoKqtR?WY{an0!C5$N<me&}ZcL54UTD$_ zWK;}5*axE>O6!dEcqv%%P!dpDc>>vr@ZMkOE#|Kmrp?b`i#dYOVTuuV0(D@7g3;xG zZ81j(7BI!MLHd=Zn2IgtSl<Gsm`SV(6gKBH0L2Zs1GvQ;f$K22Xjf|qCYP!$=2+tb zCYSxR#T=Vjipk}5?fCi<OfGSwu8Ya###Gxrn_NW9L6J})*jQ9Bv2#bZ%h_yHp=bPt zJ5Krb>(6DAIihl(jV}LJH<=^GI*cx`u1BK_2j4|fEUO1}lQ{yj6r0N%5~=T#&E>#s zGDpz&+2%6d#pbeF!ViQG3dXc(QD?k}q7A;FK<0{N!RGRdxyc;Sv#*=X#SfGCzW+Cw z|K}hm1WP^pu(5t${y||l*AxZ|5oL5J3~ECMDJt|({0$Ey=>-08j4`&AS0U+y_Lbp( zhd=BrH<=Cm=%bHG`bCA_{f`Af={V{aIlX(Lo;8@xp6Z2yED|wg4GSvZBW?>KYC!5I z^G_U&ZCGfC{_@~PuYsWl&}=VFPoU)1U8$$CfIT}I<fxM1q>C9S!mqj{>)(<M48K8c zY0C3X_oNJptt`^x*q!3hiZ~Z!cpHviG8GbVU%F*A&aKdy4i6s6CcpA&(_xV6#V)n? zW-c+&Of?PG6$_?9xUQ%*E39=|(M<cS)-eZ~h-!e@+m3kbgAI~_1GQ$Kw0P#jWp*%A zlLnwcOGDtMCBg-OfC23tKR^f=C?LR|!HwSIE`x~yXjE)yHuKT^8F^vvo6Em}pG+CI zx8v};&4bm3L5o*4j2Oo$3{(?v;&f@i+0!C#yl>?|VL1>;8z^9!LV}^eVLv`@8{P16 z9BQ}^Z~<G#Yk0sCLQ8ql7GERAdK3l7+?32Lg+sM2g*l+n92mnh9h-FoPS5%&4urv0 z1T?K3jDEvOTifxL8Bdyuio5#=+`zdoqEI?3Dz5|?B^V^zJP$v4V_&cl5O2Y>fL?T% z(gUUwM&FSz>TI3Il15K8ST~}xI!qinuLoe=y-6=3S+A{~2O=Px%oIU)D^uM!1LfS+ zp?4H%3mSaFlxU0LYuq4c$ae<ud>A$(uha1a3<SeA*jk5cI}oQxUi6zLT4>P$y|{hn z{3gyI!%;dd?t5Bp0*QD5W1Kh9tRl5K;EeMo&M3|sFI3N)NCh~66epRfO;W+2sNiHY z-iN*ok_s@+%@w4A6<`xMPIZN-0Ov@F3J^aiDp(Py0OzAMhd>1@A{EfZ#LTZSRc%6d z(dJ|K3l)5#L<O7-OQQm}h+&{P?&q8BYZEPMYio}kS)tg%x?5%cn+Ef+iO{pYQTUfE zu?_$0fd@D2PXMNi6@5=(Ibc4G);gI!r6_U+m{CP@nq#?&J<H!8jbkkOj)UKf_t`TU zukodCHmoX|HZE^RSZ+Q3s2Y5<Ntv+H!yK!GGCHFZ^%TsrW9d5=^4MLx2MK7H^aMTz zqOss&`q{`PW6!bQFHbqhN~>`UZdM=LuHT0L_VO2p=r()!JIvpa9xhTnIBpk(S6zY% z`f)6dB_qKJ36QzaI#eK-y7(+DWM)QMS2nMN*PYX}Dqb-Q%==bi^q1q|2D)h0_-7vd zE?7Xa;Gdu7$Y>?^KN~GuCBIuB6M7}LrpziSIvLYMmo;riW(B8|jwcg|AMD6z#f`)= zo(dejUBPj{$py6(>~NR2BT!B+_tm(IUIsDFmM}5Zm6-OG>C-QrB2vS8WTZ(-VDzbR z-x)Vk!^cZ@YV1t*NisrmBUHSz9^)-%>Lwderm@&5eL&|hzR8MY%nqSb)A{}dDZ@4P znec4!<>%_u6JLJHaZ~He=??5AE<do&QdZ&e8)x@!41fy^IFg-(!0YE&aN!5OiKQJQ zEagNQUg9z)8UQ0B66qv|H5hXu&OqjI!lKj!zATjmS|KmS^05&=Xa+IWWcLsg0q`Eo zqX?oEoUS^a%<DCm+}eqh;0cnRczyns2rEZuRr1n}3B4aMo@BOW42%e+z>028uRANk z>l8wV^PWU>Px7Og&ezf<#;?#_^LHM!%DJ2Y6%ci>TX_WOsEM<hA+|trfHyR_B0b1y zeC{<O+hjz#0i;H8nj4~gc~h>#VMv|QHu$5(3GI&5H77JyU%A5N39TVWYzIdK761@| z1(9J<0_*Tc3-UzV!Ff}Ht+a#lkG%`>OmN1*T40OlP?uG5Z-M=3mGr&lGLnIF?R)_} zj%PU4VE-vGpsnp#<2Q@}S@c@drm9#*8^bNhIWJ6eJUvX4o5{W;UToWEaJcMmasP&U z0=el0ft=rka8?q&&E^Q7Sp)zt2qE$S025V<1p4I(bSDJcff$XTM}ap_2%u~L*<%}g zbT{-PA~(pXowJ`%0<81#15tcEezYfu$=rp0i^|QF39^o3mASHL(s(^wgIGS_%adLX z0?JgLeN3mq0=wm(S(M6#YWTC|cOh}?2UUc&$DA54hy>ec$>pdts!nNc{Y~Swy&dc9 zLTZt|f|~+K2$aQLJp5<7)m%^mS@}qTYsb}_G?iP$;{C<x>B<COS9)5LTfx@ZH55zG zQ?JnzQ%u3%U4tz7i%S<*6Oa`N3G_s=3cRN{0g8llRRXDlkSNKpjSyQK2rCdy6=6k8 z<fy8(r>on=$I4zp4f+Z7ig>y+sQCijkmI&Sg9k$`H-i8_d`G~I;^a5*6UA(8$J%@! z$&?w4rP~za{t;$45rWNqRal^cATvZpy)D%|Yi!Si<?5Q@lZCZAlGQ8=E`^Mig%EkI zeC>hY_Wk=Q^=o5&w|^Lr3pF6QQ_*Fqivsm9Y;|s`yYGEvty=|you!Gj5D?hu_=mIm zMn{i7;lwz!t?7!KZU0>u-jg}J(>*@E5HA^ohJo0H{AZlDw665XIzV~!M2HArxH>@* zCr~%9$eLF|tdNFH+a0sa^eWs+yZxi6JYu~#S8NU?V!5InVf)ESiPHRBEakKYm<O+Y zRnz>;L(0>yH*8tmpZyenIGc6_t%eN%M7tx-Nw>SFDAa?uVRH<oJg8aW(ye;C8P*+G z&@2m1E7KL}*+8}N-9ituiK{%2Nu3BvS)}1>Q-{Yb67?u`n7$1RLp>LLph-r-2vOk1 z=tMkl(f~HbxO6U+qk*-FRc*W%K;Bpaa)bwio9mCK@uD#KMBa1mD*4j#=R{Eb9^EA( zsD2N2qA30OEvySWvT>k33hY*JfxY9&q+WBrF_kY&gn}B~s{}KyS6acV>v+-*9}$GH zd|^IisB!Re%nDN`Dq_BX2IdZ)l*utGC$`<5(E3JG2P~EZ0~dy#?z+m2!^Qw&XJb=A zv-8IC@^`VZJ4%gN#CWbT`rJNf$VQe@Ocv;WcOGk2aIAGand55#q&@k<EDG!aYE=&^ zP$!pJJxtu-&IGgT<VRBTLq+H?77uPL&=Luww?>yMW(0aV5405==#D2dc{q3F3w(`j zp;mdDRRWEd3P9gg0-Dk40pv_Tj{@iiNF-{sXq3Fa!A}Vw8}%_B&%<wpK>7J6lX;M* z@&(I#iYb&s`rb|w!ow2$?<&E6{|=--9e$KlLml_<4-@Vw%|zJuvJmWiRtVE9|D>G< zcPw9+$7@6yY6UvbKneL#5)$o;Q8?l-)%Z4=EsV_jQ_rrm`9>>MspifbUVT7ZBF;Zb zwOwts(drXb97)u9AhTuxoO@CQzI(zfI&9qp81D`il!|KfQXbL-*auU+e`R73%}aSE z964>LN(FPv6HWEI*aTrjLJYJR(Rt|pS}DUSdoLH<U#x06kxRkJ!VrLS3?9pyd@P+$ z2X&s5TGSRkRvJA>FZ(unp8stIqep^53y7TPlPIAhLu4(Y`ogU%hz^@TbacXvLU(TO zYBBlc6A4_GUy7!OL~NpM7i_3rHG4Zn2HiTNXGZU>>yTbH69v2Tyu%7%8OlGIQ^C8l zCtsLN1+OpH>9E*wj7-)uiLJPhekS$US8dzR@`V&^k#Tg`71&QiDtaoWOa5#E!cBwJ zra^c})DPgX+hf-l<dPe<jzQ7JmENHe<}xH=a65t=^U*Z41X#7OLC3ZN(kL!RE=6(K z3(zXcx|MA|e2be;-JGGJ5)IVcz=6iP*wNY_X8Q=4@G~$-dLd?m7-)l%U_9$gkky0H zp`k0}#d2Fb_RU(<USyTPS9$YR=%r8J4)Ycpa4Ldg64`%Z$J^Tx%zd&*pf8-dIXe~x zb3Jcb*KBoLn8hS0u1HXH7$L?nC0Jh&9VtSwydSMupIv025qjW5-A5yEm$BZyz*yTb z%Ljr(XvU@nG*@Y_(n2|`kwBd*hjGKO#zzt!78}wl+7X(2F{B(z3@J@Xfxs48F49<z zrRF=vlDii9v26QTnnlL;(eh)<v5y_+z=uiOJ&tF70F!oL*%lE@>ti_DjO|f2FnA>m zD#wL+CD9`Z?ntn3bSH$d0wFMS6HH*ycyVzE^Z_TPzc3=2K?#W(=*`akMzRNy3~d^S ze8?uhwHskEw0Dqlw7o|8Q1^4|gg*3g1?9NKRN__zH@LbT;djzu8*z=q+>RQwgtM>= z;-x?=;O}Asw$W7}oxrx7Rh8_w*QWNJb}V({`mpDNR_Qj-3#p!Q>8-<o9foAUB&tn0 zXr|an+6KeVPwU&T-{i0GEESkgfjMQy*D(+WcOV{*FbPcz;rZ5zLWTXgu<13C0Q8j& zNp1nsW=}|Cm%u@3UE}su+zN!bmfz$Sw+)?Zn-p^kCIau%%C^xLHZ&Em+I5Ol*<8CX z_~NpmPO(^%Fe**Aa8Ch(4ZZN&pcm5WetIF94-zeFKqU4;WszgfcDf++(PqHcn*&dx z(TE$P=Ihd~#~WDnF${4oa7bGB!;9EZWhxTnFvlR;W=cQ8Z}_P0z9Ros$IK5Yc6!z~ za{n-^S71(Sx$Y&S?ZU#ZDa>5TO|7OTt~mG_kscG#lZ#V=0<4<Dv_JFVXy-f(jLnJN z?8b>tUeS&%dNLN<IRuZF(F&DfYnn_GwyPRp=_afE=}L5daM^4xkF2F!1EDSQNHR(0 zOaznE!5+c60w;x;5f~=m2kNXa8iC=hN&Bzm0YW06?gKGi7>KnTh~daV*O|*E2Lb7D zg!rbh2OM>PF|kZQ<gJ$6hR!Lj?YD-@DCB;=NR|0tP6ny=W_=uFh8dnD&eF@R{l07f z=~J8i8XLqbiZ?T0kM`#N3{;G7xDieJGK{=6O%b{2`E+3=&4KNxq*vx=B>2WB<oCx9 ziHt@`QGFowezCRVhGZ0mU*A)Z6<oKD?R?{ySVWVwc<^)^_@)Bb-8J=zu9);n?aM~p z!xRQ+9AGg(a$O_-!z5Y*m#}NiK}N8x!Y4H6YCn>%49X-;_BDdrpvlD$8mi73tdBFD zHp0Ga`ZZfZvucS?aJVg!WB0X2aLx1AmQefRuK<T)LSbarpmNx=AYnQCe;97iY=kpX zi0zY5#Gz(1!4EVCgl*n}<7fVj!(-90O~beHPhgX&+4pqxl_pC1aSC_q<cvvei!L&T zabSVD%E0%D8ooX})N10#99f82|2PEeRZ*;YesbHxD3|V|3_9#L$~^%^E?)yA*#W*K zNN6eH0)$9K<1paHqGH-8nalu;T~vGw%2dJ!BNeYmOdmWPj*0X??KLVMBo))kb#SP~ z6Sz&?T$Dx@A4P3wg6~BgVx8D)VxS*uM^4d^Ru)og{LEIh^vz7^o8&<M-gCf45BZs~ z(WS83U)*=F2#htb3WTh=41-tJT)FTw_*Ywk=D^S8fNOzP14|6oY>r?}z#o={V~#!6 zSB4Yuhb(bO6Q?|J4`r&j(@%f+8SC)(2>w0tQD>fc)>&tr{pj`UTN(e(dCa-zKK8MX zJr8F=J?`=Tcfkc0Jb`}~UU=aXH$3S{Pkzc%e~o`nd-}$W8=vvaUw;<<e&aXs_v}s2 zdG7Om>$jf&{1?3Nq8GjRB`<j?|6ca;SG?jCn>TO%?ce#`-~GK;;_vr={}2A);#a-; z54UW&<kCxD)2_Gcm({o8-?sX8{JXq<1^!)GAH%<^>aWGWtLxX`-?jDY>T!u{%~ou4 z-c(rT#`%70w#OGbOVSY)AnsAb!fr1Nb9RKnDheTKpTaD>MXT=Cc5L>ehieD(dN#Ww z`<hlspE+~+LU?j8nfILUz3%b7SFKpiR&hO;-PfY-@eu;r>9un$>Ti%$&<77cx$WA& ztK<1Kb+8&~54!+ABlBnY3%k|~ciIL$A07;Vi1|@s0E)jjZh$8|)>aQm+&_r&C=MtB z6R&L>VSPBsX=C#sC|fw1qj}JowWl=?l8KSa+tqB6j?|PydE>Q$!B7d_y!v2#cL+So z578T3)vro#G!G{4zMOlsWA!09NM30;<Vd6;5L$VQ373GpP`xrP=_m${DOG?&n+G=! z5s#)wdxaqcR?b~S0J5|^9Y49C2Oh5=21mgXCuZpyQe)iQYT~-=ynkaFde`kPH?UzE zG$;U~D|C59PoQ$YEUF#aFEfA;O_8GrQV6W_u#~Q?Jslzii<H{&3wJFof#ZH8(oCI% zg3Wv!+QQd2a@5w=p2kB%4s9MnWzLYsZ9D7n!FOk;KoZ9CN?C`wv$q0OTDG}#!$>R~ z^1)@qAx=}_+C-tKEu3bP+shf);(YM1-`8l|VCo=FBIqP3jK~<0P82l4I}=)6BfOOI z0h3W6!3BPqc!j^KMtVuuLC>Nw#ndeGO$n<O2GXtFt+);Uw$#R-+h)!sf^v;PsnPOL zgn}IRQZNocyxCmAD(o8VmojN_`Q8$yVH;KGRqKKvo-deQ+k)Km)A?X}ZQEgP)(pBM ztrg9?@ZF76@cxo%1LB&fY7D-0X-Gs5*OQsN3Z0<XLq<^FMk&Q+J*}!2tAm(M&&1s4 z%>SPn?*4)9g1hVm{XlG{r>Rc7{(U|ObGEh`>;hf|;4Au+0^}>>3nn;kB}e$ZAsw;x zyYbsD`~bKKbq|Aw@%SR%2^`^I90H`UGVZYdjzB~%&po7{FyTo*I1wl^0x-(R2m*~& zGlCB$YH~*K+XB}qNUX~FfWUMr)A4V6eW>=-M+6mG6;yy^&Y_z}_!4D(>SUyLq%Q>2 z&7qt{IGY<gK7sCg;)&cpmH>1s&?^L>SOI8rF29RUV%-yNh%@2FykUUPW&$#Ru(*J_ zN<I_5<D|p8v!P7H6?aztBti9_`)cWYc^qXf8lFHAqv(jl^o!OqoMLC0Uv-|-%M$5G zNBSvg_oYKE9lQ0CSZf#B(R8<k1$kGSeN<0#w1dd7W`oW}I=bk^8YZ{~PI4G9E2lUt zn7$geF57C6Nf9r>Z@HS7K9{iK#Pp&(F@fh-E-GTIAR_UaDR*a_#O%h$WVC_~BR5B= z0VRkEzc_5s$%fP)I3@?vfJ`Lxg#?z9&<h1tAfZSxTG%l3k)}FGsC6Aj=J^E5$ibwl zS|VNwEDY5fZRhFT_P+z=RZ-LK1fWwBTM0a2snqlpvasJOP}6@C=I0IB$v@AHwcbl= z`dc>joIp+V=i&hD+`rWH^@J6trcHw1XVj9YiOHZjnGua5YQiW4S{D_8y5>YxOQ)u9 zB(R*Cep6rtYKp`Ys40?H2Q`()H*f_V=lL6jar`mI@mWKy|3}RK`o4@K<!lK8VLgEj zzz;F_HY<CkhB3?^&ZWF0637;le-V*#Pr{22*E90NB?jm#iI|qJBm%80Q4*enR)dHK zxfy4M+3FJN5KV@J0y2t%puv6N@S$T>^YMGBD?T5e9x=Xj?*4sZ_i2T3{11-fuMM?+ zz=uzbwcgA5_@AupDPcZN`Fxz-zw`0O2`fIpPtFhUlIG*I&&R0(cMn`0qq48_@xKyS zJ|8zE!U09Z=@;f>oS+@^(YX7C_;g|J4z|pNFf5i;<nxmRk&_Rr-B)(Los{x~0{MKO zH!m1!UC!Uf$6D_t`CQG~9v8@G!pUcH|B}yZFN@lhlh3aT{(WKRlTJQJ!Lq-EgKH94 zPCn-etiaBfNIv+6>MohBRGn^`@H3OnB6gM2d}&~AQ8{@G)z#khFaSlR?{x`ES1ivR zGQB298f}P5_fFBwam2U;U~r;n1%{m&*(bPeO>q6SDWd=$q)wABb!KsT`cbhUR_{xI zR^>(1QGU&>Z#bgzL<P%-`6klpIil5`Gi%Slbj4D!Of_|F?HML?mb6u^CBEtY7Pi=m z+mXGkxAMlL)z2{+Bm^YZtE_JQ#ZAR_g_G3WhnokqQR#qf&Ym>U0jX&^m@S~6{z*~h zo?*e(W;QbxmS!%~`Lc8v)hcN;4bWX_fIegcbhZEo5A*SXodt)bLqz~jw!^9m?nXH) zO&=SDl?Iy*BaPM^Kfw9bxQEoC)S^FPchrI@C5SGEvfK-0*>=g^!#8xKwfLcBWrQNh zW35||(rO2-i(hweHKJs%$SIi7L{35V>808X@RHih9kw2-K7Yho&k)4`lM??R_6hMs zV^C>`!hl|2Cpu@7!<P+cA4qt0ZpL#-qPiy~%t>8vy0jw%Le=5!ZdAMgjf7D^GDqHv z9mSk#vxt6tPXfgG*J%PI@UOVqh2<|Yw2tKu?e56hpk|mo961(_;3OJi6GXfnPZYus zbmeK%cqmMgc&%DhNkZ8h$lNJ7mYsr8b%BCEoH}@oQSigm!9c;pBr2UiiXKp!PHDrS zf0~1iQ&ln}Sv%kJ<GhJ|VyEJjS)Z|(8F1m&C;5=O#P&2%NS3D%(tqe5sU$qBrjk!2 z*qut)K%^3#4((L3g7=+D=(I>FWE}L)zHP=2RLhI)ZlK)k?{Ci=P7IPX^FNi^cEZ3x z+yH;G^%*DFgD~Md2<M5vVAoHer##Jkw5HQi2|WS7c36s>5YT*>ARIkoOJ=YPXaGvw zL&3a?iguG-38?ScV4~Sv$8*R57#ay1y3Z2C<1utD0e}esdmIc5-RJr6I3f+m+KmAu zoSIU6BTsSRTGZA#l>AnxtsctHCCGg!+2G<sNg(GP*Sme<r?JeBaL%X@@k}@k&uL)4 zkRb7aJqD0e4XgkRe7Fy@qaS?O_IbZdl+haiUBDa7KJH_Dk2hBjwZ6h%+TcxQ^<SU| zw+NaxV*u6+P#wft(n%}~!wU%fcz}0;+R44*KJw$gW$ilYGH=|0-?uh+0(D0Tn<(fY zuLXzc>j^nNOm^PosI7OhVfu^{yguUqDP7^69r$p8Ps^~3)`QVt&Y=`>Vb46rr#r^X zXeo`^HxgJrW_D=hK5}V7=|U!?Ma_>10E=tMQ!@~Y`3hHPcmx3dJea!QX38$^#pFWK z^Af7WPK*5s!v)W)W`jour$ObO1sn!w75^5;P=~_o$ma6`OB?<KfnsMX9IDBrB`W+g zYtRuc2}|EeSemzxO61;Z=EUIdrWbx}FDU18;e3L*ca{!h``7fLC)ty;#^N9Td+9@E z(^~w)AC^9(-(m46g$hvTOCQpmV+kMrSLs8!7%mR#Pf8yu>|*f`FWVYbI>)NgGA#b# z_R@#+|64*IuPl9-TsD-UaDRHf!L8w_S}m73C^)srrA;BtNI>|ICLr(PMmSN})?bZR zlLK%T&L_zmlCdJ&2Duiq^Ev&<0gDV}YdhBM5n1Hd@i?EDQ%igSSu(&P%-faQ@L-8O zW)`$`ea%6H-(bF5%D&ZjgRWTefa+)9ViR`|ZQ1OBqTsHZbSHw7n6}v6BM6Ew5|d%; zon`*g!xP>?cuh0j52pf~2SeS6AFL#s@B{I8z2|LvAR0o1B%GJrXN^hD$!6fF7P2A^ zK$8GWLwLftM5cJ-raaxSxn^v@Pguzzr9@#ANQ^r^6x@Ok$JIWJL*hi&B=q_+!usQC z56&BRGJxSIxJjbgXiRv$Z5VF=7w$2ez$WI6Z2&ppluBvSgJv^;Gpwwd5dNEk+Ph}P zF0nUasL(CCLTIHVZ3IDV@orsT>Q+~m?)*wAA_DXzFz?+4t}yw&P^D_o#SjsE8X&q* zf>&aI23kxAPp`K9Ffuolx?t{dzQ8YaWO^u^All7_WFQQQX?+766404D5zs3{JU9=2 zhkUa15xBJkK7GbJ2`kAYc_I_Axe)+;aReghm?PL|C0PuN4AMQZU#mI-jSAhNtECe6 z?}zT(QR>b>sXH!i<>yJj{es;=SJ(@{k10;Om?h&-^ls2myE(mw6l>C6t6kTDbXFCS zAjkJ$)|KOX7*&LVgI{#7%7Vmpod}P?rJWnoSpUoa4~ygN_5A9%5^kgA1=8~KB0Vqi z^UCELC%@|G*HhQv@K-qW!Jm(geDdO3-=ZJiIdJ2n51;<%$9KUK;JUYg&U;UO3jUsI z&U^CS`wjW+J@<LfqwAh~?!k2retRH8Ta;VlJ>{%^cN7+8Iz6<;d)?h`ZEd2LE7<Br zcAt&3YmpUi#xm5%4x(!}{mEaU;;$%Pf$rxoM;Q!d(le4x^)fwg3$`<E=HtWr=uJA; zytMMod2Zpn7<E`J&fckKqt>ZFie&dFPg^;yS7Ytiqg#jNkHD(5Re=Rt&Td>VU&N;4 zGU%007Ap6~Qsu8rm3vy8i$dkm#*1Y%ns|3o2MBBM3=6?*unUFQ{O(i$>dVgfz(m&m z+$v!r0drjf#+|fYAYjlL0Dw%e+2Qmy!tXafd!l2J0L5krP%H?b*&oKdCxppCuY?H$ zdAJ6W&UxBv=ip>bQ3+SP=Mlrf@Ee+^Q4AbQOX^N9zy~Y67EHn;4K0<=;V1>0V_rBk zSuhbqLd#7FEiMnT5)pvL2n7+R)^HGKZ%!oq8c7eE*p2Ldq;C4m{U*B6$Q~SNR@>3) zYKWwwl=v(x?@~gidX-X#u~NStsN3jP`?DZHNq~H=?Pk@)M9T&hYz34nDb{gudWKao zg{ed+>SL>sfm9f#``*(H!)AkY42Oa+916m4C<MDD=Hv(}`8D8!R5=HHaJ*;no6USI z=U5p@gj3GwH(`6Sgl$%su+47G!7CQ}wq&PS_(f_2rh#`K35nxa;09YW#Q&2Sy;4E% zZ%a)%z1yy9qW8m`-mkvn0MI)+wU-n-_tyJ4uIE{tx%smYKLej+9D|-_?|SD+{u<!R z>`-ART2<r^i;}7d;|af0snb7tpxBx1>5j%-i@eB<d6b{ir3oH+k!H7#WfjN400hAT z;M+Jk#Ljq2yzw0gQs<4f*NYxHZ)EFxKwi-klOzWqb~hM<lJkH*15|JU=Uo%M!E^`- ztC%LrQdTi`<?(o<m-1<Ei^qy`4>k6WKwI|==fzdxy$M)PS!G+W0Jbt^6&$-YLlJC> z1m!=4f@mqU6i#$9T0hU`q9`O_E)*~qD*#Jl{DB0_{~OX6KUQ-Hn0CxL>7~ObNqSyq zcF$F(<S6Zg{4nhcrTtNY!YK_Ks~D?9X~$!v(o7~wl*s2Cir5@Iw`Vb;CQ}Gn#U%b{ zYQ-mUORZqQe9;P%_>KcKiTBf*44r5tb)`B2mzpcis*@zZ#}P0_^MOt#XlzsVTi$Lo zS2C|hF!}u@`P^9`83oQ|gIA2K$Uq}fc4ztQOgw|V62y-<QrHrH+Ouu-%IqgU?cuVd zTo8}K8!P!B-r-*2ifp=fi(bzjLJPBAeS{vgkx9><{PfWHXdNC&DOw48=1R5CWbd{| z2;+oS1@!JhknrG{wI>)QbB&-XK1Li2Yr*>*p?)}O8{`J6N~g1Kt#&G&h9by`R@KN` zLP4ulC}_0`1+7*nAbt@Z;~8xn1n{A#D{A|k>|x6wtx;NoI*c1(RZBDP^NAYWxWS4e z%}Y^prA>Tmjm=2yw{Ru%)lCc8m=aMwtbQRq_}A8+;E=BAvYPEqP5VSx(`6zYh}8@$ zEVe6ZI*PB|`0pVsVIAlU+Ft>k{*|*B8jJ$31D8NfbUjGu{c`H#Cs&KH*`}YP5$H<? zQ3}6~Yv4Ur%)t#3G@%J1IyiMn82M^y@7*iZ9+M=-<worRP%>3Dx4&2coLzDpxVVJ> zb%M$R@)#WJW=AIAhGet?+CBJ&o%i`e&ZSXK7xq?D5NB090md^x%}%%B?x%GT)<ygs z3PWR^7RQ=I!++)H$Ki7YMDpl^6`I)J<9()8)KtCzA2c;}<@<=dia5p-Q&%NM%i8Xk zioQEGpP#y+ps5=Qn!2H&sfz+a*P9C99cT#znrGvXa(Lw{jA7#N=JvNDQb}h)2S~*A zorG4OyR10QT@AL=Q+|I7lM|jao_QFODQInN?E;!5IcLeEffyw+2fwSe{)R|<a1mmf z_}Eqf;^yGl4ct#K{#%0a7E?x9RVP9EWDtx_oRu&FID>`(!Cj|^L6#u+j|72BWfo72 z=@Vs(1E8@s8x+jS2bEk)D*%ku&`M3NdlQyWTFCpcpkxo=y7VJroZDf2*`L_M+<oqX zF<~gbv0R~g9hpFI`x$myUjDjGn{i+EYj(RgR?b5KAir_p)N9-T>&qS)%ZgRb&WdI3 zbM<A9j%8-n=*v!sWo~EnWyi)c4k@nIV6MI_+9sUm<46~f115nBKlgVH=50SX5E@Je z)kq7@(Q#2kzAgdll!I;p*q;;Sz|ql9L3YZ?6M>?fxZ~!-sxop>R1d=~sb@Y6bfL@- z!+m`iKKj+4`!L*=fc0TmC=;_OfRVc{-{j<{jXVIB+ykFWxv@U~5BAjaYT9hnA!v36 zn%h%x@EK1&Q{c26e1=^|9(fimswbU{KxsruuYpx{Eu}fPeeSH6ZJ(0`+b8|ST00wV z`y@%s6jN`e8{qxf8Z(7Q=hUt3Smnn~k^n*vt+lmPvOCf^`cO`yZ01v-u#S~td-~F8 zlKDLXO;Xb2piVbhG+v(Cg|Np;m7JQZgciXEIAQ<jx?r7{%`fV7!pL$)KzYiU^aZ?> z4U^5jAcVmZizsBZ1{8sv!Fvj_3JqDbb)96qgUPKT6AA@M5TO7Gq7v_To_JNZwt)BR zQpX+dCkhnsDl9WX{`~>P39!<^Sp@&}P-Sg#A9fTk5_o_-Y!)e9YcEpaSSrFH8FG{z zB*rZ~lg@&aOd+O=NYE+7{M~S2*l$RHyAWf(R4%xbBvuy|WJ&{Iq=`~WB_@9|F%K;L zBH$Ae;}~l4UIGC|Oq)7$D~)NKQ72y9L^8qenEU@+BsWb};6k^ZTt=10_Yc9JA)Q(l zDsPK8p|4Yaw(8RCqAfU?PvSdLt5gHdoL&+&DFwD0c+Eu=cC!HOgrw|FXafjsrcPmH z2u;OgD_hQQPgwWKW};(Shxhk9!A#~vi;P(lE$B|1Wj-saXIVc61-uB8$4^+L^AfjL z`l9=62vs=W#&!cg;GE(_M3iM8CnEQ5=)8bO9T_%5K@%|)d?KcKM<TZ`a}%-10Pjqg z^@$k8%`g!^LHUlZ4WUalbV>?nNA2DmI$fADZ%Ivj$ari_)f}2Q3oTH{M1_-ijuQ&% zXedZ$`7~5v1!RL@I(zAG;O*3HzJV|N2AE9P6O9YO-3iD~7?3<<QG$N}lKExi)TO$} zr#LYU;;5k#NDiSa5mpeFims&uuWaa)l;*lr(gog;fSNl+s}ob|Mf<U{g^dnpgke<D zDL|lCv0l;%L~%#nzmwZy0EJ)`1<H4(=H1N6!@8tI`8>xY;cz80=M0LRGfgg{=WW=5 zB@A@TFmoO31#V+%2KWw6jG{Xp&q?&`LxCOOc$pUM#c;>K*dE_wtOE@bNHIMFg3m%m zO^vCKuhh@miYXG_lX~NvoApQaQ}zYt)*4pl=r|s3@?Up1?moRy12+3$b>q>f*+%4b zfSbOoW!(6Yha3kM&fHr0FUAiLx*0#<s&tmkW*jE#NPhhR7{FX%-n=gX?1wlX0)XlE zjLLu&XZ4#&YY1b2<D|Br%qe3su_#ce7r3{`Jz<_Pi5yD&Y@?{P(Rw&;t+YEX74V~o z?I{-U`cAWzWdA;&H(@`#bEe_T{7lP@O3~8t!PG@JVXw%KiN?XlMB`JEeIkGoe2kbY zS#tHd@{!cOuPf#Q0zw0YQ~r9W%U`#CGjzBF!@kI0)nLq&z$ofBYaNW8Up;_e{Amdc z(_9iZAcJaudgojB3mB%e+&l=KrCW;Pq-Q|OxL*xg29ovlK+ov!@28@{WKE=GR~jl# zL40dLXP^d;fFaiz5bp(+)vC4TYFg7Q{wtNqA*SO}LI#8z2oWpH)vfK=jIVK=hHGoX zns0OkltZiPvKa>^5tev$KwLeF+8}yfYu)o}EqkYSu6iZN)`XciY>=KB%H)rBR6tr@ z#uCuJ=Gp86{|sv$l@~c&*`a>yJV3xxpVU4%(?s=yU38yu82CWmNr7!EH5}&Y2FIgT z9j#y-hj5dlfrP~>R^KK=irAV?1&nN2>#3e~*QM_J<cGr+;7#QIKqvPv-w~9rWdNDe z&IqS-tV%c+=x>*X_X8SkDxsk`>+j=ec+bazait41U2Y4=eL#b;g*#S&E%YuqjUCv- zNKJor@Cat~G-CuaALB@NWj;QH{+3<*ou>+Hg2F*-P2>`qKe?4GOn}iyhRB|X35}1U zOu4lkEA_}%R*LtG1B6Q`w`2w`EAh-W+AFnRklmj)O1h>(zQ9Wqrsy#YgQdT)iZ3w7 zC%inX$$UIP;bd+SLLzfWO5*Bwe?E|T-oT6=Qrgp01{QcN(>Ft7qxC;bYfV|50A|7@ z1Vp@+Um@rCnQ?>Gn(|bIxI_#&rU4`8MCsV!8&jV?Y|=Vq7fGh%TtEr)d?FN}8YQ=; z&mASqX`i3@4{?;d@7upDD7iiL=_7^`<7QY00yC#wN5Kl6`x!o{60q`vtpN`Dfd)7* z@$vwN>A=wqnsLSGRu9LU66ii0MGh3K>>rI*_NGx{3Fre)p~ju|_JKQfKh_!CXs{-e z=z<4%zpKD>xc;_wg)HkNNuatUYQ(Sp!IVNHUc-o`Z%V{$^A<!9=dEK1b|A_h^aoYs z3ze01rmTR8abmCGT&#j%d%FmMky?U4YLOjks)^-frP11xNCe(4`2sWR$2Gl;bw3uy z@&(Eh@rk^h16@+zcI6satYR)<j+^H0Xc1VB7O^>km}f(Tl4VPMjj%B<uXi>@SfeIF zSfhq7*(b0<!Wsc5tX}8}>n{k}jN)I%^>}eHJqYZW0Y`EM#N^s8sw=PR!G|og6i*js zg_h#IVOE$x2?>3j3+(G8zgvj}i_z&^KGv0|P;A1b^<j`{kk)B<mO5_(O=}L0wU)F_ z8zt9XYlU-)%r&#r?|f*n7F9r$C-PP82*rDiW81=<<Jer-U2$keauN3?=}0^9`_K+5 z``!$=K&=^00>T2F1eB{21aADZWfXHEtQnLx6jIl@W}sE=7_d!UyR6UEKF$OT3@5@U zU*a|90eFfl1a=RD=yJYhO7SKI$~a?or$TFQ#q0(GDon@YsgJ(66jl6Ve69b~pPuY= zQwdAuO#zq_Z3$zLZk7(?%_SI%`v0iI_<`^JykNY&1Y>cLKFVRd@vZ|8qp_rEX1d;= zVUvM*{onir%l;5@VS{VyPy`uTAinTVT2xGo4P}a%v2}<HPRix>?)`C6uAh<MDX|$g z<2kW)T<-BFAb#d#{@HeK452|b>_<N8QJxU{>_<O3WW+w_oW~%V205{n6dTbrNQZsl z6Zz*6HBUxR%~Sb@sG6rg9YHn7iH)e5XK&iH={e7N?sE}ZgPhpUf58i0_`(-nbkU2D z8C%gc%!vJaul#+>g?))-!fw~?-(@i;HnU<|PHg7Iw%phuJ2vxUTXt+_$hIum%#(dx z{d)WxufMK-L+;;=^&9Iq;or^pcT4@&`h@=7R==%&d;RtLcSrq>`Wy7`jrBLy-&Du? z;^wT0ihSE2D6Ecm^8MCC$hVD9iQ+M4Tifv)*F*IU-vk$L+7^LKGQ5RM9%f+HQ=CPC zl?7aUQZ^o%`=N$HVllq$b+}1dU$lK+QH3#OQTDeGQ3TB~E)P`hf_j0~$+sV>cS5$O zF8s}j+6kFtw>uZ5ytuT+BwmSgIkO84aJ0doSuLI_U|AZ@#&7$Kr4Z>uo(VvSodum2 zK?4{@1Z{BxRr|}64LEkur1ysUQ20(damO3juO8H?7<T|rZB9c>M_6$@&*Js0brA6f za6g5|pWwybt6ivV7&H#L9dBj3JAvzG!i#TkSMIjlQ=YlOHowjXw*s`iZ}Tq2k%MBb zP5x#>(J_pJ!He-t?Pn3GW55w)o17FCBy5h8jae(2IVRKCe4?STxy8oD#Rve)*s+_@ zQuPx3wp4*H(KlHIpb&sTGkjR1za7`;j^l@wyC=ZAlTjYIHCc(M+~P3NQ>7JDB-EZN z!E{3&Cet6nnZ=?d7M!+;Ly%Sue;qd{iWT=^-=5lYQS5acNaVK7mpQUXuP?%9bJXcD zxTWT@$-5vh$QHu^^S;LcduM9veI|H%^8B3Kx0`Jt^*`FGsQ%`Vy_wacZ{wxZM>|Sw zFo8Z^&9xyfbIY3#nzQ~uf9*7)O{a>SdEpDNASEORXOgPP-799p#{_8TAaCTk$2&oY zW%g-izRzCckCEs;t6PXxjR&46VX-BwS7(UXOiw;eJRre5V9zFhc%-n}ikST41e{au zcI#!NT*nS81kcHDB}(fIqX_?Cbwu%0+teI~Z4$^QU)<9ezWQKJEzAXSqCGaG;H&6` z-JoLu9tK@=ij!dGRv1o12Am*~@oIvE*}~Zo^w6r=0SGFj>Q9wAj@0z*YwUR3Is3D? zb0(NVyZ36!Rs;2CC7>=Xz=T*ESvu!p1kQnm>Ca0rZ7IMs;xPT_>L4~BXqdiKg6Y)- zn1VOW`1Qg3d7xpMEx~kg0Vd2njonW^y#HY;EztkOY5&T_7HIjJ{~q|t`0X9igBIxR z^nd-`^f0W?TY3Mt)j3~hZ84!}r3ISP$O`MtdN-4lN^>fT@{68Oe&IKJ(=J#lXlV*h z+(>}0I+rFqFEF+}X*k?MVi1Gh2d4U8L=hv)y=h;Jtm$YRVAGb7Z85<wan<jn#@}$N z1PX@4Yw18Ev~Y@7{s#egxmGB!!-5wKQ8XpNXWE1rL!}kqVa58aFifc~@<#A47jP_C zAn;QxTXC}k1`qchOfY{p!Tk0U1oO)T^Qen34)ebe=9dPT$H2#m-aKvcwwZ4pRTz+e zN%i|m^Agn``7Kugp0=1<VuYo=Z1KgR#fkdxwfTi)N(+fCDr4}@;0$9;ZCry|=zF7O zQaAZ>c!4hu=U!gLo`^}zUAfw+Ykw~~KPchgg`GIa;FTaA@!k&y|AYh0w|-oL>G=hi znhw(^|8xKIt?G5~CncDkSAglk4%2O4+y5|?c<D7{c$+|h3o1KpzV&Rd%e_I_QRdaA zc&ReyBCtO^#C9Y^y}s5P_|db}IcJ}kXOQP^vHJ|#YD$&5i8m16UyZOEE{h7XPp)Sc z5Qga}!n!Bgw)P)kEy{fom$^9s`cD>kyitIHJ4N;@z}jy%e|0dq{Ve(2mOyY^J*|MN z;H&iQ=&Q6JaTU%)gm1Sr>AN|wPXTf9L_!3GAp@0g0ZrO2H2kmUTTcf4Ob6m>K+VUw zM%1Lg#D`Bx51~VVxO!TD!~0Jx6W5>H{h@k2oB!CSsfmyrKaF#ZwKk&0U3}w0lIwTx z(R0fc{7K$^f><$@l{w4$Dqmk}cOT=^3-Hu5fqPhdJnGPa$telihk2i|?_8!f8STts zq0@WLc+vCxA{H&^T*UB|Gy*JQ6)}1rN~7yel58qENoqk|XT&D`WsO~@?2OFZh-G6I zu?76y#3WVnfIJ^RaKB%VAM7n&WIuw0&}tb%JJcr)!bJ2RNicZ=%JWbsP7k*x&Nnyq z^<W2oOx&EC4;i2xofWcmG|Se}6k5;bwn6Yl`>CBjN$oggKSq5wI-(U~{*QK1eJL)n zA7``YXk1bG=1wpDId#oe)r-hQ06Fs5N?F4tABQz{Jriu(o9EMoHhwfrdc=RdtuL^t z^<CK5r%N4JU+6$^Yxttv8e}8^_K@iVl{c*Nv%6IOxl-k47b<_W^T_eLP9>6Pfk~C? zU1LqRL%RUtD_Bz`&Rp(rST@Thn`$=x#S)0j@SWF5v4JZ#e)AW8R`S7DN-#a50MlxR z=}WimfBg^ZAEG)j1#xtn*yYzrKaBeCA-lx1Wx@_HFtAIzhz#-cq1G&4W{6dVee4^h zep&8rn=G7}oM;#0hXb9rg)L&7`ev%wjZ-macF;UN&;VQ(msLIq@9)z0K8x4p5FP;A zBaT@*M(^)SALnEI!^gX;KmLc($N6Bc@bNBvJW=#c|HsnDr*t@;<Euc(<aeAY<3O=Q z{D0y&ojf!&d|h6&znHVkSP0EUfywN~br9Tl;TnQFbKr|eB<16~RZSeWhui$F=GXjg z(69NORL%|scH9*$EesQRt!pZ;z)rIeR-v6Nn2yB`;zj2TTogKPU}Y#7O}~|pRux5t zMfKZ64Wr1Q#<c#01q&Y=uLpstvlTSE2z`DhwdwT98lznkZGM-{Ae=w7c?{kllF=ql zQ`DU3=;|VEey`LfYYc5N$b-uXntl&wh9a`Ox#8tBx3|>X>Rfa3XjVfbT=Kl3RVBmi z_fsuyxE&#s9d_Fv6IIBkt>xz@EFj!I*=_&F?wH+HkB{uM+rFLsRcMlfLF+)L{rIx2 zQMPw5jwpd~C96TMR)KL13kd#6U|el?3=BQSDcc|@ykkaUfuVe-VU$Z?TwekMu`~s2 z+{|_mCnGR!XW>`!VBBVR3=BOUt^h-xD`E6YV7#FO23%qbV7!Ixz{^Eo;7mKlisZ0y zx7{%?^mt_s3`(-^<{Mp|FW;3wa0YGuYe~#H+E>I|K6n6DL^2hcyeGdG_AsO&iH@E3 z><9b!`%0apBpNt4WyxU9yyqkPUj?rgk3Lv}sp!EGV7mPPz+@g9_blu-*;t?d2Y-ZB zwHlIGTfoNv-4GP-aS(#bfzB?T+&c>!<n--ot*i9phC&n_sr*{&8q^wBnmA~1gza3F zO8&@O+p*D)+Kw8gRdgt0-fEvum{UE9bUmnxn0;lc$!AB=TRZr|ekuCG(&;Mdc=Eu_ z?S9IaQR_I6P?n@22ttgwVml;6rUN^I61zh5Fy*rqk{KDE>@HwI-NU9-v!Prx3{gdZ z2>R9AT7hfx1O+a+)ZwM9=Su8L4?xgtWEXF{<PrwWArC*<1jDkC^1&A}3ZZ?nE;swf zkXff6Xn*PvN*jV~BUU-KxG)^@F$)4j&f(ZXR2&hNeU%O<)q~=Ni5*G*yEUQS)Bg0p zVC3$;j8SSVIT)c4=@>M8G-=q~AT4N#;RuJo1@h40VLM+QITFydF7*7-0zESZG#8n0 z90y;HeMFA?I*QYDl&j>Yt?gL1%TEmO4A~Euu~Jc+9yr?R2C10M5K>CRN6rh9`B)_6 z6rnlJCQ`!rRS5$3fuyr%bmS+QFtIuVBGfsPpz1F89*Rd;@3gH;Dz)S+W}gs94Ms=M zRReyR@hz)sG|rh0G*JMYD{gO(7QwzDf$c(Iq~oBZkh(pv3r)#7r`%7>|Acgeihbof zKC>{2_>!W%rTJ=x1GYLmD!Wqql6~zb66DTbitdoXMzA-AKEQP~keJ7FgiYLqn9Y(w zdP51M;#&DL2kFfvkcvy?0R+i7&fg3y7+{b%Ok+KG%mX8j>Fw)7Y$Vr8L`H%DH7UAq zmYD));iA>r9UQGmilDyEr7zv6W+<^rXDD2!$xtv48QFw+2*yz1P;f;%e%WQ+JI<xT zJ>LjY;XLUwx74+hnu%Uitaa9*#6tiSW2=0cf^WoC)URQ!6N}@02?l5QOh6|p(GwXS zu)`P52<XF#SjstYZR&Hk_)Bs%#b3f`SWs-n)7P%pP>#lX#%!#0al!U$E?3GfF&E>G zwi~Kz-wf5Y?S+Q5H7$~6n1umVizoWx`=4m-XfR_?O>~L5!NJOg$L=1fwQ9}UVYQkz zM2*qF?hIxK#l$voNfa&wIGYrd99kNX)SkxGfT|qVYKpow;m0Y;#0T_B0NkA&>lAh6 zm+lQki3$TlB&b0GsUks}+aFr7ub~tVs+k<D$mbaLyo6YaPZg#(m)A7Ku~`p9bIHO~ z;8_vA(6UcjvYg0K7`3%&R!`O#{WNof#A}R^W(=<(U1`REt`?b9Y$Jv#kmfY!eC(^Z z%(iyym2(*~u3!$4eS-PSA#z()fS$4or3Q2}hG}#NFYP)-1$uiT;DVpg-9G|8kuOZ< z3p8!T*J#>WX!NUvqCC&Y+OH|ZXk1h3Y$-;Aexfc$XcohkpX+#<^;PlM>{+zNv1iGH zEOiDJ+*H_yDfqesdlz9NOu-#-3hoQubG)AbI>Xop0B<P)SQI^e&H%o?1Yl7Rd89M3 z|G9>{F8fNk`+z|gOAZC=+W$v|K!kaOvpD5;5Q}5ncIUYq2r@vF!4XG3h<`kvqdBsA z_3EQAVclVVrdCcGx2wPcX*+Grgai=8*sh}4Io+t@KU>?eO6NaEqspK*QQL<Jmew<B z`_zo_U)sPW|LK<J>dI8JPZ-!t0bp9QuxY6stPfoi)~vZSH4AB?_U50==L>CE=Ofpm z5kD4a#LvrAwBv_)HB*sVq1oW3I~WeNeLJ$R52xPX^em=kHQb8-4kC#y*)LteaYPqb zArj!Uv2^Elh0jL`YY5$<$c8rH2Qt9M5>W>pp~WT?u-a6PC7x?yBoXD>gk^Vbvl9(5 z)<Jt)4JePqAntwRXS9KD9F<K)&o(PybO9uW+TVmU)j9zmKTrg~eBsn#8I7*|R_xCv zN@*LkF~_To%^v1K;_AyJs-C18ffHcdJhQ4-8Zec9mg#q;S<Zzr2x<~G&HalgfPB`O z#csD94v{c$Tf%^E^IKx6QCs%4WUR@F0KTk1fTDRQoB;-KHVK;Jd$9XX=+3tYi8c?; zqBZC~fEo{D&ZqND?`6Uy&-sK``|ZoV77Y%RPgte{TI^>K1ihcw9M_{#KWEI{Ira06 zrGA=u!TX7pgAiaIfuYX;Vn@cMkwTEL!KIOfUK|Y9@bq|ebudAJPmnmzB_RA#`YE~z zjG%k6&Xe+$d<*^J4k_g7&G><L#5DTO^U<bI3T<<gFY5Fum=bbqZ!h>1cnHpB8;G5b z)@h6c(K&@Y?93PKhp&mQcwc1J&s>QZ1}3S)y$vG`4PG}B<=YZcyQpfva7+rrL^c^G z%pMlZ{s$45g+O9tldjy@q0;fNG_uL)0xC8cgnshKAof-BNXWO~Aa-IQ7z0i#+_Bm? z0|iwoc#YK@@Zpg`h^alzL2kp3;t@mh`CxEl5R1r))@is05oHBu6p{t3X!giN%lL<0 zyt;zB`YU0aT`6isypdgm>UxHhiw!$hMqYMiPkqSN_L~mJ+CH!hBWGj%(*9wUUtgml z<GERAqp$@YhEP~S4^y_-+!2*Lqw*mSX>yfk#@J(zJ?=Q}wuZ&NB0BE#g~k2^yxyAW ziPryd?ESQAtu-Op6NVebUG-c!YhSi?``Gy8O#3y?Xu@gWK`clNW@|e(c-KMFa*sFO zL9aW^B_k2CiCrEd6D_mp2H09@YkOO&*kufMJjfVKOv@eSoQxse<(Mwkm9bQtPgx2< zdAVY>%N0M2UMO?iB?~0JCtui`FYsWKyui?gA4wD#DqMGP-h@rV0nCVgFjq^7DFlho zL-I=|sap-2mPpVhV=RaSV;H*#U?@l=2n8vi<lOPKP|$0k5G04<2%#D$fT|I?F5%Qi z$YeFFN<oTX5<@#J8n{liap}elG@q-!zo7Sxm#VkZpbOPYlu9`$rTDR5E~aENKMEm0 z-YO<QYBjPw)auMJ(e@1qg3EeD+a@MKy9Z$htHFurBP1p75TBT=lm{YE5kUxymTS4m zFR8_wQj4BC8+-M@6rhXsTI*bt?@ixsPAzS-zFAIEtG%>seoK1YZEbiRo49teVnBb| zAfbSh%V!GUSDWA@+JKV3ZM9D6b0Zi9AIN@~&OJV*&As_(+=pO>GY@cE8ida8xo`EG z+(HVVK-JF>Z40+p$)ArxMH0A(a)=x*e`>kk*zBYHNx5A6Hk7?gCff)pjwh;d1C`^p z-sT{sbkxuxp#{?*M-|T)h~NX)A&E|Y=qNo&Lq3%->yjv2iw>uGNmMZ#>mn&Ab1`s3 zxkWP0dJ-PfV?ss7E@Q}H41NRH2g!G;q%x{wvJ`REpCOw`;@CwfK^lXsHW&zybrmuj z=Nzpzu_1$jKQ4^TI6f~jI3b%2F1QE$?u3&r0@muE6}JXHDvb5-F9B#aDa>z@Iwr=? z3_#KfS1RWv(12Npq8$quF%hFys=$i4OhuWkYMC0~ET!2T?o|+vA#kmR&pG6#BS3MO zTsQ;<v#Z&V{B;zFh*s=gaz(!0>{o;}<uYd6LS?cqQU&N8QnJ;aE=%<vmvCFO`25Up zYf|AoJW^nIze$CV0Z*!NL)=W+5&_-F1No0<1>B#RBw*yBl?U=4*n!J??FxBscR}9c z8r*6pc@I(+##w8tIUL7@gpy!1Yg@t1+BusCv_Oje;F^*cR3H~2+3m>-7NMZmLP4)} z*jhqCuZ4nMgO6+=NIA@^px43^y>^`%_5NI+3IqtyIjQ?v4><frl>oD~9g*h(43C2k zA|@06JjB*@_S#J7W<h6SFUTEOU>Ysjo{uCcJ4QMIKo1iDd;{S74Xo+eWYO3?mO%Ow z^P@RZs{xi}-=rYBhQnWM`vG0s2HHB?2DWl--&t(?no`>j$hA!;OLg}C!P$*lCR{Xm zl#NqEL=tU2d?uej^*X>$eb1dLIC?=+T#eiAQ9-IeMe^*WgMb!gBMII{&3u_h+@RIH zq?&g7uQUsIV;(p7o3sn7&!w{9u&Z@-TrJV2q2*mnl9Xd&S!ets8af(F0b9ZZi@SZd zIMT|yeO$(2Unu4xxiw+gB`I6)U96M*I;v&F>@Hy^N{Kwy*aHaybUol)mJNs530Z&~ z5T!-U9d2*&!3sXGy{j4&WEAMsz$ZfEj28~#6BjWK<~6;i_|_pTv@u{T9BMt&%CZa1 zu$#i#?tFm129VAxX7j<BS#z8wkTU3e&LwJ=Wt@Yzo4+v8AtI>W96F<C7t62)F|4O~ zkV_@-R+P=?5VsORN}(S*<rBJ;3x?x+X3W1BOCC%};pSc?<>jzWrkj&1M!-;-INxF- z-Q2xm<S^XCiH_s-;T!Va<aGJ2LF8qnG(T0jlTYG)2w<7T`%QnJ`P)bRnl9yQ{CXVs z*Retb8en{n=V_G^N%tU^x$e7Uw~Iz*JfEv`An{(EV|Y9e#o<G*>mwLBW+xxPsNvL$ zItPrwH6z>^wDAF=X5wH0oAa>%6t`6`hY@()8=qh>rs5Nf)O0LhcqU^3V=@~H9OziU zXzyMj&pOOouKsX<ASrR)l9VuVVQRafaavFO00Ar50RmxGa)t)^hT?V*y){ES_u}v9 zIy=p&&?lOJXc|Cb3|%LkD`J{+VFGH-g$W4E*`6{x2P~u+q)8WMpl}dope9|Iftqzb z1FI(;@Gut#2-LKvH0gLsjI!p%NfjnraT10}7A9esd|}f0<Z5=Ad_L)Bt0vvp3No<5 zq}y3F>GpJ;bQXWH^hw7_S~cl78Gk;L4)i}82Mg0=JkAWDbRrf&!(*{P<i`R>Bo?TP z#RA4`Z!BP7=VJk*y2mCR*Wo6p!FR_ygu&f;MPZf&-z8~RsRPbLK+sco70dRSwVfh% z)=8mXlZb_8!=*De5DiakAm|&_4VVQi%BuSW9yoY~n)bG|*18@Eg8+H}4ua`PHSJi} zBfk{4-%BXU+xCPd&=MpC$k=5Et7<UbQ39i=(H!SsT>s6JT|&E8V3^+W#b-fpIb^@- zElaa-|L=VZdfQj(HB;Qo#n6oR2jdT}%*Y04#{0vW4v;!rNC%iZ><#(<PC1pQyglr+ z(@s16;SYcK8S9k%@65B#_N;&BJmy^dA?M%uzxuexGu_{YCn3il^80Pv$ozgx@b??P z`J2z)^ql7+x8Do!_d+E0d(n$u{Nk6q<fSir`73g{{a*d*Kislq3-bHDhN=B7t8cA` zlzvR(7gG2!ZQu1VWgipug(Q8Jo{x$73Mu(|${q$Lez$7F|7?2zo|3OuyADS&X_GVq zEC-l8<22^c&KHe(xE{cN+Tp?PO8iF)-$D5AVElJTs|PHMX#s~I)(k@A>4P}rqS83_ z-ZiNw6~8$+awtSeDhWJN>5X+t8(h6`@N>Nh{<{-wiX!DSf5Ac9yiX~IWiZi6{(^tb zbL|4V)oC_h;yk~GQpaB2C%0x9D{&jYu7w243Pl@oIuixFAl-Gw3sN*fL9c~^UW-RN zp$SxujyY4H<YTS*jVi773Ri|O8m`qMO&>pl>=LvsnnRJ6FQ|@yxU&U-lUm@n3!feJ z+SH``aU!=LKZ8t_Z<4wEyf)rn-N?4eDnv6cGx;?e*_D<`m??-S{B7dK$p@h*D!8a< z1$uQgvO(FK7>&V<e$Ae&mphKV8ICFH%W&$O&ImvXKD^r0t31t$Df#f~u)VsOufhWq zXrbKQ?^})^tm924ziVWd30zvMQRa;+bc5av$X18GA?~a<Sj8b6!7qaM+I~{eULD@6 zlZzzg^T;ATpZ62#5KJanVX|RjJ`Vkrn7^|zqPlTlp~QR~+<kDXfkr)TT|kOxF`x^C z8W&#@jxAf&83yi11L*q>DIuOq>HK~Ib;gX7oCufz<H!Pmsoc7pSn?Ei_Zpr%OYo%R zc{zBdD&U!Pc>byec#sm05Z`Nf?kd6KHM>4QW&r$5R=_ji@SF{Bn3NCTOeaw&6)^B| zh&WuP?X;qy;T;JCKa0$30}pVNcxCA@vYnE~G?TM?V#YVro}JJ+y#bNmK!-XuETExM z*ok1gGlAg;R*hMwMsr}enF2dLn3_GN(oVWx&jkE>bmked4U%y1AA~Z7UV&%-83)ah z4OSpSv|Dl_pH2{c|CFO@BlUwl1!0cg{VD6Utb&}C(H#feTX85npKYs8;4n!!X?0MT z68mwQ?zJ(o4eb1M(iHE4z%UvKg&#-&`;L#N4s;Y^MT#~U5tO47%N!XUoR501(8-i& zmX?K*`gaC;b1AtI7py&;rvP>yYYB;JFMp}yW8+zb0}dpcOuf^^W>TFs)oTx15u>Ub zL)+`lS$mwJ0cYB3<2&{tVGAqtz2$O$xRhCw@cW^J-+#0mK~@3izH_3qXH4P25yZKP z^23-KgA*m3cz{{vQ@6`F7bnVx6BIsCEXQEwJi&nPO#3llSoy-Pd|`LKFq<#T<qLcA zg}wR0e7?{|z+qe@#`1;nd|?8GI3FijaPBnGTh@WF>?AdYD1>q&fd?pzZIR6cc?m*- zU#BtrXbF3k4e|c~_WVHXVBsPuL=zWD!Ep}*E(;J<g<O(?`?g^}kOc^>dO}j5q^kl+ zf#R+TBn8U6Dv%T?D62qHptP(4Nr57>3M7R%awLT?bd{t4?yv2^lfjXgOj6laDEZ;k z^DDCEm8<)+pVkyc`w4PrWRmoq#nz`-{vGnLz-U2AvFn_ThM+_;pG+k4la*Qr__@U1 z(;8T0c<nYma9Hvw<7Hfsh5!b(I0e&Funuw4fAdg_YxXM^W<H7GxnGm<WZ)`6_L&5k zFWputdeO;{!dlVEkUl(diX)%1=|sQYXNI&ZLE#MP<?7o1{wdW9(IP({pG}zXEf}P# z?8R8DB1PC_!$lgv&-(}EO`ewug&3DOkUpqbb>lSQu>C_!eux*crVk?6V5D!*W?-vP z+WJC*^sOsI(=SnjYhr`^{9>tzX&iZP4?0j`5!;<Abc@)Fb3K5b&Y1y!j*?9Amz<9; zl2C!#=X$!NW1hpL!ZcSkX1x6+SlaRyKCN!Xa#{<rw7(-lUa%lfo8>FdPdrW8a-Ro$ z$1w+GEXdRTIt`ceG=AQlr%gFen=JA)+JU7JJ%>Y>v<~s~ppPu3f_yze<9uwBDsz$t z#r-TakiSh(I3Ihqph)x|Gs<=-AbH%h{+>hg8)XILKY9OIFpN-2HZm~29z=i6-ksNd zCde*HT}s^ITM5AH&9&~=(NJ1`wBG#-8+xYZ6K330sGbDDC8a1$ekax0wv52fP^ZBN zXkfwUD$VW2MMifiO?@{t<)i%ceHrC%#>}(m3-i&c=RliNN8)@7>Y3k5Q1~c6t@|kd z67ZNvOpA-pB!DgiQLO?0Yr>Ulz)uyfatiQ|NN!Idb)fE~|4zF8`|o`GWP2QpPLnV~ zwSK?{8}J!FYzLW?R2n9SMivws%4tSO+=@q|r}^>y1g`79Y#@3(YM*qSEpXV;ijx`Z z%F1R`e=R>7=SgX)Qd;Z_HMJo2&bt0P#~BS_cb31HZZQ1v@E3Fbpq^aNe{BQ``tO|U zzrYcy)xNzp-DZ16-~eba`Oq!V>gN`}DhnSQpaoHuzQ+qifm4^*HivaF9x|Ws?i1T8 z#Rx{}MGaJoq5ElK|2RS66Z>)b(bpmZu11J};{Q#0aZwEYuY?H~Ly>BBAu;rS{DZO> zdcIJIX&DF72X+65p+8BGx){m?v}tByMq&DI#>|Sd7~{x$bJb$#WtYVrBNsy-o9ls# zp_?n__BL9X&(+*!?FBJ(&X^GVUUFin-~7d=q-BYrHxMBi5Yk<>zKXB3@Jg?oc3W4o z{Al2t10+sDejd07`FT;ber*~q7eo1ZcQJIr#nAC8F;p7`XK@IZDTZE~pm9ESrYc(^ zAKOoc@aqy3&c_}lC`NOWF!HgS9XyYl){PvBN0i0Tckuo?+n*~BQd&xHO+aij+xHnI zR0u78D!uK;(bsH8_SIT$6;}Zy02N?I_L<ri$g90~A3>kb@M>hpe3jdAssyhl(oq4l zgS}ZA^Y3OSm}(b%0alSfU?et_>H8K$!;($^j?^!gXiitZauUs3S^H_M9d2()qQSnd zEc!~A|1f*Z?J~Z`?X%XM{BErSHMW36GaV4WxI{CVz;%g+4Mbj;cj=O^m(v9#nuCiH z4bf7PXx>7YPZcI%q1){ejl3pdmy@?7u!}A31tl6Afr3N>PeKea1PzyHcDX0v?w%1O z6Elg%hi-`y4JxbL$MikSDAAlG6fGptbRn5U{%=cocTQlHE|n8RZyV5L-b~H017J&3 zRqjeqI43wUKl++MkrSZioiMvb+t4q!rGEhq4l-DD{H7A-eEckUbcy5lk=svA3s`nm z;wSqyes51u`1mo>G|t}t#p73$NZ*+-;S%X_3rnOs{DZPYdaO{0d39hU(sw6FT_Qb3 z4F=9?!p%h$5~+@gXn$^%s3ozI_ofP6B4tXGoU0(2<V6*{`TgY0$~Y}~w;++y@f53E zr$p*EfAKlNK1rkllrG^lgAHo9&_IB&g!`W-ei%nHKuZ<;Sym_@Q>S<^c6X)i{A1mz z9rU1~)*tZ~F)u5#x%x(0EobZo@3ifX4!K~?>y?x;{*=#=x?0bf!b&$DFockHJU|-j zmD!A(babByMp$)x@&5iIqD)t2^VYy8`6Z)TRw6Y*e3PLpd?nsE+&@K*kCoYfr~3?J zS(*LB9GO1Nx)8yV!E@g_hj5RT2&<D1l3+y2F*rf^Q>F`CfU5?XghCX&(}Doy8-$6R zKby$e&&jchA<M)Gsik*vCT#QN_rPEO?qIm%${2i7!It-pvwki?;hfbHl#b@0_+Pp* zk{OIqP{SzAfDLhk+Wdu}HqQHyJjYPZCO>dwffaorVa-_)2#U*Tka7c83jX!GdR$PO zq44O}%#)MPz(RQ)Qa8op9oP)*Rdmi@kUEw9k?`&moM+Zv*y#x}F3H{G#xY#W69kba zk{fsR5Q??67t#U5#6^4Gt_e}o@3(P18lXcxtKfiw`T9k|;3*!1BOD#$>{ueEQzqc^ z0>T(_)LTW6?3B-hqNLvbc9G5hWx}mX>XxtBDRO}Hz0Rl;elf|yF%)yzpu3&`h`vqG zka~1<hzjIaUuJihibQUtGaPDwH%-)HN1j1R9D2By($XUv7fGUMecYw)7G!lq^$6#{ zk_L0i!>VWCKFD>Nc(M<1(a!rEx+hMhT#k1awLaE8LCW`Ey<bCN8|(l7f4^K9fD`<; z8a4behfQC<<*z|DdilW12|fleANe3<r(@ch<3^7^!Cl|s`F=XR-XHlW_j!lIyF0sI zfaC4W;hpE&o74L<@JFwAoonw-@9=o%N%k*&*~?!3@|VBj6`MD2{%xIT|H@bXJ`T0N z_~KW+>eYYvhwy#B<dRD+h4;I=zvoZ3rz3ng-QJwxuaZMNPqpX2bfSH7jlTh>*a!Fc zTX2p&PqODfJI$W|=ZW@on&+wZ!EJuBerNs7^|$EXTkCJFzfJ${s^3+=TmPo&Q}wsw z-#hB>tiKEYcGTZpe-Hjm*WX)z-~Y$mn}FF>RcXU@YpxVS7z7lMTS<UoG&n$1gxn)) zoVwGtLwYng#<u(KbbtN-&G-GNmjptgpar6oI8fRGWoxuhlv1!QL7<ql6o+aRDG;T^ zf!K;fMfl$LU2E@s?m4%n4A@VHN9*o0?X}mu*Is+=%4aH9S3X<$T;-a|SmpDTFI29r zTvz#G<v%K4s*G2@T)Dn-L**-#8!I>Aznd!)m0K#eR&J}@Ub&<4)ymf@la;SmzEQce z^3BS(D&MYrNB>P#rYiqg`7ZwZUgi6hyYSx+DtA|=EB93H)qg*%{IGJL{`*noN0lGz zzxylqS7s_dsXT!He(L}Itn%~9FDegKwpD&v`LD{aD!;BgRQZkmd${s&Wjhl>eaHG> zS9!C*RAI;Z@A!OeFeE*|&~cM*KL27<J-*}f61~GGp+sjomU*7Fn%g>%x5@fIgrgPO z97?l|PARf{aF&nqk*=kZei&K}+8COaR*|Yznp!qMIZv%u)>b{Tq(x2^FT|*qHJDS> zp0&%7`zhDSe!~wcsWP+k<#qL;aJ4(@NYDN{TwR(Sny&sTTs;WoQ4Z5WF{=Rm7caMG z`{)9T>;2L$>_uOc$@AN+y*Jx^Xg}yL=*zbewqNiHJxh(lcWc==ys)h`yaK@Xl-Y%C zzn!^&#X!EXz+^%ur^SfJ?0JeK&GMp!efp;Q0L&+LRCb|NuYW)8`QC;Lya90B6WAWE zbc8E)y3BY6o%k~Yeg)9!N^~oDJ-8cmF+z|K?uB=+=WBsuvx^dc{=~wtKewc4A}jja zM5CL0^YGb#A-5fMY$!*K$YMkO2kF3um=eQNLqS@igm-%Q0VeOUp|w*c@3A3zGy9JX z#T|)yHWZLVESSHw$JE^)?dygRarD#ZQUXS_%ydQn$1C=*Z1~T_Q(RQlZW!*Sp%Br{ z!OKiDRMIh06o=VHvh6kumwAQseCZhv@jB2Ol9C76Mo4pp_Yvxx#$T86DVEEUgmMMf zFK+7!J}`r!esQ2XZ0w#$7l*sU#_sXL#_nOIP@1bXB?sDm58-+^Cu|be!^Z9rTn~Fp zC*;!F^Mkk^_L$P`)y8flN}J!^MdBhd%F3YlJKRN*0^ly&@qwr)2q~{kJ3hAi#_kyp z$4>jk?g8J}y{+9hc9UA@c*?$p2B@$-Hb8>9+;u(%d~b_)fZV}&2N)lU4UlgjHb9$^ z*Z`qNV*~S<;qK~QHhbShefogd!HF>4r3nVN%KRjMeS5k-lfOP_^&a^A{k(4T6E=U0 zW(Ln!`&jSOrU3-bfh$ZBEWroAN5LJn?NoI4n&d4=&&?z8wJ6{pNdkVq3AlITLIlp# zY8V9yFkx08xpuJ<<%3vp>IE&mnHamrF+k|Uh!6^Bw~^d!BN>4>dyda}d<mBqqsgbS zVJePO4G1@=h%8~=0fDvWY+KN<yb~IFEHv<#zvcSV)hF)z1?bAGy->yNiiA1ejrIc@ z7L+MR#VOO-9M)YvEOr-nds$;Ch1{Sbf+bKyClpgXGBidtP|{M&<Ndxq%z+MshcTV( zOxmPzwmSf63UwY#9e}+Cx>)Q8KiDn4v|U2noNWJz@wI3B(G))w-J{9&li7X>+Edm( zEScu-_{bN;vM9F-1Vw_X5eTY=5tR5svyoEi0x7k!K&elbDD~|IN&)_BS}}lcReEdh zB*nhT+lG`vKj7HlIn|;Jji&Ga++;`}z^-pCC}KCD=@PAp-sw1DRRo3&qj<nk6aACG zf8C&55cVS8nw$6p>}L|NGX|`8lNWdwZ!xE_Ghky#00JLF2jUd5&B-nI#0G6DO0-cE z=w$9mjaU4|#n9>W;M%Pxw``k(-M%VzTQ1jdf(j59$Z%CM+&C}XVHf&%ff?<$TYGup zz}wXO)+@y|O^Nq~gpUUdAGaFXL){B$z)-_N7zx!aqzOHyBE*Cm7;%i?UpfLNUBJw6 zNsdnj*tZBsdKdB{D9_+N#?^9iJ(%+n79!Vfo*~~-(lD!x2N@*zGW-$Wnf4xX{LKQv ztPP){1xot*#zin9xIV9!)d*s&MiOH*8^tSKXeP#AN|bVi>u|Zk1ruCGG5!j~Sf|9_ zun4dhEI(gPQ2fmJ#k)!J!*9`Vj0<hznw932ifI5b^}U$J87T4$ULKRD<aTv@Nzp^S zfxLgcF->5Wz&s4b295(cm(ak_>76Ph0oI!u1D|ce7n3Tg&%!*Ts6%WjO{cGq3zTf! zYji7!8z)7eq~o?073PfzhvT-b{!2zG$BT3#hR=@-M_hm{2Y{TB5<YMkb;}<AVferU zX2S3~n0?mqZwJCk#*nr%3JJb66#5n>15}7A;<L4j$ZOXE?)Gd26_Aq9(dLE2dEsjW z>kD?_L|(X^7e0>*8SrbK&^3!-QB1A!lBGtFEH#p3p_wEr8*V)Gj5;8jSYl7qB2n&0 zMDc^q95@#*`ZFJ(uJ{~><eJ3(AUKP~u9I6Pg|Ft$!_|uz>4JrEGQs>)6GrdG4VZ+` z1ye#8lzK@DT{<C!*rN#3O!0&q#hAGq#-R8$p>gpX%M0#!XHizQyW}&%7^jmB3LYY; z=_RHwVR}h>NW~8m8c;i$bLis536@uuU{6*W&xW2UF}6+Ow&8l?q>u9Cf<DvfR-)4; zahSA8iPSxb7uEwM$(`l^Z#00%sn=v|aJm*7=x?Gk=!p-LajtU4Y0e;@S_Ff5F+7N< zf+(tt7eqmgBnoIIQ6NFng=R+PTZyCG$T(a%Dfk=*^GOZH0FhT84k4PRly7agtBT4Q z>V#5;bpI26e;ZiMRb?Y=VG0rtX(O<u6NK(c&|YIj6+doR%t3n<q5bz<e`M{T%P46x zkXp<^jOnYbEGYj8zVk7?<GzcWH7f;61UHQM0gm{}CL=~s365Czukiab^Nbkxon9RA zS;bP0_m@U|d1=H~68ewk`YVojN+TvDxML&!2;cd);)tg?;@P~SVa(XKU8X}sy8Ajo zesDXHr!5D#8Sf(E1z)PGrsaJUZb|Cj>zCvv!Z#8QTt>eO4rvbM&4L<17Su?xfM%mC zqzlbt;Wr7_E(@rvLb#l}FxFcME=r=*#`yzPP@17j?}RauA=>e*s-m=OmdvJ=L=m$g zmed)i!U!mJGW|kMtl4zwC`<x97zjnhI1win;UbPyNR6e4KjHiuolE-|IrS1@HwO1| z+E>bik_Q#1-@pnd#rlmwH|*;P?oKUQ&_@!!d<piwhObp-Ph^eqQ>&GBUA`90350Q^ zWI-M!%qr)ifTEVN>Cgp53!LRFMB~(8s$>kn%~P@+@M56+MK8BxL;7M+&eJ?P1WyMO zpg3MT=)khvxXu|ud>i;0?ganG%G~V=%HjARZNtv5)+=~+7P&=*W-Lew$&tkcm5KYJ zvpU^u7y(cP%K*?eXBq+yA56i+7O|RFd>JNXLr%yD8(tM|u)En_f0QTUGr`8_1>*~> z=#*c;jIGJ8)N{{@>pPzD;N@QMY3LpnYFoje75@Gp9*NF=^9f4o+Td73*XNhI_R21) z>s8+M#pi}}!(G$$g{7{&qD$)faPRt^H-#LW#db{z4-T1pyE3^TCJ^1GIOE%T!JffN z1z_V8eBKv=KA7)?<_z(^5^B7rOG3?&j+(n-67P<nMuXcqST8HVdY0+41nbcb>(y@$ zX;r%hR=CQu5u!O>FE7FRR+*gy>X$K@l%Rcm>#pVYe=l`?W})kVrMK@emYNUxQ>C7* z5=$EN^<mH-`1GzF^wp)Vt&B<PdUp-_^QE5uzg>>*pdDfqgTn5O=IX?9M3D<xZPz-y zwwL}h+_)~D+tiI?0}L}TlJ+BdivQGGyN>2?BWu<*F(EgU#=EgF-sR5N|9QoZ>eA*t zPn3GLx*CbbCwb4md~|2TpI)j>C~SL;w)FnJxxj<@MfuP$@6PY|>P>QG0iL|S&fx4e z^KI`)V{_m3&BAJK;`BRG<?jrP5v(sKX7Gl<2zML|faw0BgMs^|%c7h3wbZqrQTQfx z4KTyH(L?NdL&88FJGb)Q8}s*UdWnL4^sRN9)f+%l_`^kT(gk8=OL2Pj?F5^n<@JIs zhZZdSw(Rk`gciY;4G#N6NT!%b;iRh_vm&e-lGlI0*ItWBkw1y$L`;f0YG<|L`suyd zX#7BWM`Jl1@A%E|&N+O?Y9o*(e0rzRije?ABo@gKd^il*(;t%4K9ff51p@hDpNNe4 z@}(voqmpraJIqqBbVeKlH-x}_SBC7jhH^Ze*u2=Lna9sL{J#}h;AAN56O1z<3|<H! z4AA1cjT4S*-CvEI^gx2$CmeqxYOTuQq~CsvEGzAIe!ekQT9Nn}Aw{7GFc2VAdMBWZ zK_0F2V<tl|i+=iKGe3ROryI!eY?yA0XnGOWCosL}#MA<NJrUT#N?4!)F*6FKszfK1 zheJ3E-IR8cJxH+sLSO?jq-EIQo)~wt@ORU-P^2y>E<%`8>V@vU3DhfRQO>_g6mb9E ziaCI$?%wY%<-EPrvz12J{XPGo)bq>4b-S`>oyw!idwvYhk4fG?1$jGYPr)ix6MS%n z{fIi|PkL*Q@!^;9Sw;@<*FSPD^~Ou)`N*w&`Nh4p&3xE)@b9#eId4;(2D*~rhh2|M z=9SDuLCK6SM#;RBAiq#Du<Mk}I}+@!WNc6VB9zQzNy%J5NM9gGp=3s2t0<+27YC$Z z+_NZ|iDpX1;^ELu1tl}SU?nrL5G8|HL(3kg3GCgVWNPAx?VYeFu85eApU>|6Ap2jf z{(&x7k(k`M9i~QR2-;IN5Ct{ycd4+5XEB?yazDZ9BukTQ;l+v6ciVDG+zlUXY~G$! zqdielK=58JB$TH_ECq7|>MY5{@rIXBIupgQR@cSTwPY?Y<tMb2o_tX!e*kcvsEbfv z9E&&s<KkE>G$U)=Xf;bG2Vas#=?rbV>=(h%<u%Cn5#VPBh8}i?9&Z@lEDSx~jG@Qf zY7Q3|+Lk1Tc`P?p^kFf@;B~KBdPdH0;;UFY?ZURTgWj5LI8$|1fkRA1<ZhH=av$Ib zurnVx1}?D>WkpnHF`&cZBU@UE$wUGR5{ytBwXV4`HL(MCxz83zf4c3j!LC8%w&MI& zBqrl&OC-p9zMmt6+WC$nH}ej8XviTC4LIb5a-(5KvK|W!JvNok5ep4H78>r}rwj#H zJ9dEHoFT!4rOcy`Bvx~G`l%WjTssO2+~SXNOebhbxV3f#8&4qx8oumZ0peU&#Y06e zFLlKag;+i79nhsgk5{pi<3#6Xy<os|^fFTF#rCE9fH(os_mAQCouKJRUgA6|5^H$* z25Ye1xxW>?VDbcYfT*DcI4=?{evNb@ugK4}hJS669|%5m_*ymggRk{Rt25ARidX)A z9Sb$kzVYVvB>*q@^PeOZj}G!4HB!*DNxPOc()7cJ2*XM5emr5-HInTXUxY>)=q;{1 zZzY8Nf)G%RK@(Ah4uQAa@4$Fw(MV&>G}4%BBvch`@Xog{naytp0*4=*Y`yXstu5p~ zIq@ssnyp3QdZv<+Sw2J{4-Y_cSvd>nF>{qisIf)?ccTe+m$xr(L6PhgU_GcBfNP&$ zHjD3mb$Zi%_hn+*<j3xcNbGD%?=bbn#Kyden<PH`Y`$qMaK&kCXh;k~!<ACXesoQN z`#BjdrbB)qjoX#dlLbpohHoPnhnfse<iQ9Hfe{*##{0Fdi_A+f7=<gr;6UN&1QegZ z8-4*jmk$j5Vgj?-fq~?nn+PWNOWW6C_(a*9+&L{sQpe38DR(@cI(GcnX@QO(^!p9= ziw)QKe3O9PSJL~=R|g8h#8)dkZ1#m+yySCBspls=PCb9M)HC*ugDSgn%#v!KD{;{; z<tJj}IXn@1fa;WdnHMUtgO2KhPhqRZmU_#S4IXqsUeZH4Ef`)y-W>=Hv3zI*cOde# zvli|rCNGEA{xhM;S<AMK=S1&b@)piGBlg&v29g@uR~xkgd(CS|GjqwXd@uFq^G<%) z_5Yyszc&WtjVEJQr?CSFfQ&YF?%>umVYbcIupGN6xOG>8-HjqskYYj>OxJArl^POF z{$MFp@NPn?E!i}NgVa^P-$-)PG45H6;z%>2h)f0HY_MPy>&k>%NN{Taxs>w;x4urW zdD^hTZo@kp+^Xq&vmI0Xql9?ZU&TYcc3ywkIbI)Jflb%#|LxE5!q(tFX=%yt3*K`< z8-kxY`<7r(()W=LRLc8EZU0|7bPA!YN^PJuf94c-j&Op15Pec931!F(wq~tLn13=D zhLJ7^JFcmO$3D39;&{pSabC~lk{5}wAP3AsY|t%K6~T3;ON;h!QOBI)+Z6$>>zEg! z+o(BQnwZfZ!{QJbirrdc=YsQ`wAYsO<twc;utlB#33QSrAny(M6-Q#G3N9<);lI11 z|E^oyUlZK-J@DG|HEgJX0st0I2*ajtf<13~2Jwz2RbS6bV7j7uo)ECgROg(E3V=~j zl_ul8fY0Jgz>{L|fO8}9??Z94ZfMN+85N}XCLY|NITPGZj}2^ex1C+$qu4M^mz-?W zcmqj04f+V5T8mHRTzPr!JRQ0w3<7>YNaV{n@#6)sSg|7{Tj#*ijFh12eoef13Q(6_ z^SxseRkA1RcVdgdgzvGv<ni+*Q7ujf-E4u;3R%-*%$3vdDN*G#9<U_*2=4A&v>;rR z;BrB*xRS%-6ypS}C<yE45rlWAFS{UEMaH}!90Gbg%cOgIB?*FlCqYm%F9_W2`pjJ< z2=7f`x*)7tupj`irh;$~;5#Y62LT}MC=b}^#!)Jhl`j@JZXtreE}II1-)JHT>zfDy zk4RIsMuIVqAn;J5xdcJ?O%PaTF&jERtmwnj%lZm}@WF&{7X&NLXly}0CTigw5d>L| zPHtQ{9z#@-MqTQXzbt7z-WYDU6~zMZ+%i0;$P&#&wp7n?Q~$AejQXLf;}V1E5?7k_ zqJxRLF$(?iaCL=`h|g^xbqwv&+YRcP*2u)T9AK%Rdw2m;A5EBY&OCa-oVjfl&O8Ee z9wp8M99qE$DjILh&Y2@kSOBXQ@*;zZW|uZN#8N9Dqz<8i-bN2hC20>KUDNc#Kom2Z zC>104U9u+JEP8}M#a)0pm##K@ZyyV~8t_G3t^3BJ%Yj4o$^Ky<lZO6yLig4uNJI0{ zFdH<+bSA~P^NKe6{?7x)<AJPS9~Onl4Z#RIa#Dw%NF937JPYOY=S=WQ`;89cr_%H( zeQIm^lnYg#V0U<TR;WnA8DK3xXyR~QH|tXgF1IcgL29%vSRpAImo@VYcr<<3jf;hY zY{2GaY3GvSL4*~jsE86oADU|l)c<t);Fdm7{}5r&AmwIQa(e_*8%vk9T?zeh6TMN7 z=OlcSTy+o)TT1gxc6I8;OQ#%cT4v=k>{MN*z34nI4sjqv3fgMV#BUVMGwu(Jl{ml- zAi&wr4V*ldI`MM7{Dc@10ep1Bo%+B*T@s=}+`vJw#vU%um?hRD`t3R|+{){{Q}G%r z@hx884bQA7kl?xmw(Gn71@@|(Jh*I#6fPTDsRNwEcu9$HgDndHDva!wcv$kUk<Dg_ zhnwiT;ex(nmqFhVlcw(sNz!@I`2@Dxxh5*6L4&%mZHu)T#rZOkkFtXXCBSQ_MOJVU zShlTbjnzGR28f7qBa57BN4Vn_yC}7EBfT+;8;Qk_N_-|Y5Jg&m2z@2d&&$W|AsCWS z_!rZG2IJ_>6<c=I?}HKre`iODIc!z~)&*F80Rq`DwGldUYW&6og%>#_Vq?@rs?a${ zT%=8iK}|2f(S|A<1U9N|C%3!+fAHoyetsg4x6rVFv)@^of9#+IVf5xS7RRVXlkyl< zUkRg=38N>pya28X8BFJRDu8rU+d7!}?!MOAtz<geUA;~lNVjHF>0N}v*#J+m0yeZu z_LbZ7)0;yZ$pavA<O$g1%+r1+OLbcsl9LCEuDgyr*^Nz(i%h-Wk$QJKX;Gp)Lftkk zo;fT$^q$utJk<T)K0MUA`hVJg2zXtDT6hf+uMqOue}5eVe;|&5f6~E+9D3-XPfo?~ zjy$rzzyGMCjz0S6W9Bc4mrj7^5%7NzE8(4f`fFbE+Sk7Jb+3E<>v0VH8{hcG4XBD| zr@*r=-aoP~-anx(-ar4ZfBBbxL1nyu{a2L6```Zuhr<8=3n+|tPUW1+7W{Xv{u|JF z@y$!*@%(t6AkY5>=Qv0H{Y{GEu^e7wAv`OCXGQQ>0+0WF+6&=9YCRY@)?E$;P8W*G zVf!`Qps}7eFRQGeHktmsIWtK#H`U`i9>D!9-|>|M>e&GV3t<Vc9M8++w%a0In7{=o z-0;LCE<ow}ORk^f{^_Np!Acnrn-eVmVLMc{L;Hl5gQQOHVX~cVkGAgPatFI+I8VyM z8eSl0z!FOUAR<SzB(rqlv!AX6KVVd`Q9PTQmZ4bI`Fqkk^)p#UxqRf4C>FWW=SMp{ zHpYHnu7K|yz`?l*2fpevN_qq@Qi%9I5rM77x<2D}4&9+9oHs;}(3p)FxIYIm&P#we zF|dod0LXU;NZ7v2?jl93;S{k(BSoq?iu6a94KoNDPDWg9*E12Bqlg_%38vg3ipcs4 zNj`4p%DEA7K|+L61RJCai1-E(5%xe2bY!DQ25F_cVl+wJ73wPllTGhx*z)T&*U8eM z%y7N4?N|6wdr58w6I5R|Ss5{?;ADl|x;qG!?X?#7Grqg5HEZG7t`oeceb$KhhZI5+ zmeERvKrbJ<fe&HNG=`fEpKZ=Z0^#BWf~yYfqvnW#)|~K6G{?ggVOj+zz<ts5>Gz~h zdwmIPw=UpZJET7%;80V-!<g_4#X*d4ei-*Kn`^E0p>Y}C*K+|oRlC}oz0DuNPU_5p z7unksjye`kU>7q-Kl#O*6bKO|6P*8+;CyVUrmxuFOgPQ6$tuh=J{+IHZf9LL)R02i z2`?k7GvvkX%|KF<^nj7{eMd3&J|`4&OXwjM&&j@VZEzH)dcZQ+%O#C4&BoM2@u<cb zv;(@wdYZ+wXB+Fs6D)tQv0}$^Z&7p^{<~O%b(XUd+3d0?vn(6fphYn<)6yao@{oWO z6dOp>C##?k$5u~E?|d+cvCB2ybS!`zC2RAkG#;00Y%=C|AdG=WK2HI-&}moCrxAvR zG;L_irfG414nVFd0Ww$u<Z1$fy~zTQ-9=4H^svze)~~jSZ=Z!{-`Vi27F!IJluXRs zV?dO+GHYeCK2u4xxNl@EL3e$tSlo9dJDR}5j7FS~{+jdf7t;rvhf8~l<95r7J{fi% z?j#dqR)vApT2MjbkzNUc;YpE)fC$e3v^&ZGbjc{ElNp8*R>sqy?mb>u@m<T?k=g_l zr^r=ZW>Gjdpq#}B8LR5HvHF>g&loV0!Oe2${fXQx`})-F`)!r;T(XKw4Q7wlyUmrc zX*tiap&^b94d>XB=-~bw9D73o!+nD-C64_hIrbbIk^qSu%f6$xW{pPQU_%%Y;yfFR z3Py21?1RRz3(moM28)|1ngzLQ>xuRNjlvZpg40E3)Eg9?V6`ba7K$>_DKg2;2~GDH zlWa0HVTSHJg772Azm>Sce(9iog7p+(Gem2g7VNMnpSPq=?mAAKShr3Xl8CA@G(`N+ zn2q?jKL_z|O&z-4d|QA!s7<T^wCwR#8xA}3@n8?W`-pPXt+6<{yFGP&pP}?Eq4U^@ zVb>-D4K<wL8u1~`XF}a3Wb?!zRTqD+vWE;&CQeqA)~6ED8zt$-I*RQ1RmOMD6n7#A zXas$+cu1Xp!5&=DWf>$|HZE0hb&|UjhH>BR<#<P8<9Klj)x7Z}dK@W~a2hU6MSN`s z*Fy;>E+fJB#lissmHdlkesws~VS6fuJ8WwJY&FJ>2z7^-aN?K&-gp3yFi*q=1~M5N z80{3Rx^5*yUr7e|KgIy{y!{Rhp*J*U<3rq^gAXSYE4UK+-+>hZAAW>joRPqYDu_Kt z6=aP@6|~k-Pn54K()do&_+Le1&@?gxRyPvqc3{G|hU^!Bkp>zNn67~ay|EY#^v#4L z*FgWTaFi4fsr6x^>0b;@u<DK4XDntZHq$=eP93=R`CsY)JFJuP2@MfFG-e|@?$1H= z@1*{m=>J?Ky6VpTlZ}R*MWS27=cLwXB>Jix(N`CVu4C&rHX-`Tog(^5h&9NbMola? zTxjOIelMZHb+GNW&$+Ibkf{G)Xc$P2GIpVOL(~Wjr$z}3+@FIQca^~S`yw@TGV7ZS zjG{}%&ZE}0hP!0eSe$9NI|1V^+20A6MSEnx{xBdT6$J5g&QZINSbdWXhYv;Yt>NHX zV{zc$lfeIgxpo@>e)Q~2F3o~ino_jwqb_SAXlQ_-wkgUVYvd_sGCVBm)}pt6Z-U}F z3oE=)NCXoGrFuS5prQe8v4$#K+tjpshMMv9hMrMw&}yj-Ronre;NBX?ZE$|kB)}1i z*fOPt{DX0CK;hvr2YJjcI#Z7Es<~arfMz53W4Ss=dcCVS(jTRf{@6T;*J-5qNCd}~ zp`ZZ<cwNA_hY@Wbe6nFgNaFq#;o^Sc0!0kWZp-q!wV)NHN8tEl#snV1M~XA#rj9F& zH~@kXN4$}LVXV29W1NB>kh6g`ZR+)RkW!};0`CcSAJHD);Jl?3ch}qLx<GKl6rfy7 z@23e}<Hi`T7P@kbv4!2CYyo|m(g!yct4I8z^g*jfko(|S{Gh4}MEEnC;R^P@GCrHk zPjW&-vJe`Qg?GsvPJ2!o#!GndbW(M^fH(XC_#peY;sE|D4Z!!D{G~7g<_Mzl2w6aN z2K2RfUEr@X@arZfD_u&)u;&0$GZCbQ?W}&*rn3hIhsW!0bASe2mT*^Bk^n!Hpt@oY zO$S~js0Q=~I9Sg&j@L!20Rg3O$#2q!-Q-yH0yjBexBE%1SIia$_+5J6!vMt^1W)ov z)`K6|C6O#JVUvj3V<j+(1qmJ(FwQ=!xa_i4WHRl;xZYuojZZ$X8?kX-35-7}fPsWs z6~g*fOtanj$V@Rl8I`tzlbX<Q(W)GrY);a5l?L(R!XT<Xh|Ry>CAg&Yl&}z^0vd$b zq(uzkJ*7cd{(52vM8-skN4^s3CzW7WOrW<pE-x*C@%#cV_jfRUb?Y&%jCKPUmzBUc zZTEsflJ@6(kJ6YL$!lK5BFKArX+X8YfDUlHZvF8t!E19K4X%=S)K+pAF^G?s24Ttc ziAQnJq<Hiz^<5@tyOSzcl?G(F@@YVi3spiqamO^rHKjpVCVd*j3a84Zv5@LjV(*>T z9M_e=II+OtP+MY-3$ERb3hc`zFi<f9!kw^zWlVu_Pt2^^4cNG;1cnuJNMJm{!T9=j zc8R<<SLe5tz*t$p#(@sT1HaylU`&?4IR1|T#<xmfSV4+Jl;Cu|Yj-+b-z|Y*8w?(2 zFzzma(O)3S!Oj~ue|(o{^X4piUkQvOb}tw@d)Y!fc07~1<6KdZLQIc2cRri5V;yLZ zsd0XW85){lhK7gF(hLf;q}IWGcakuzElsH&NJIB2mF-0EDHYQLRGqBPW{Ms@TjeuF z_8lV?*6{F?H5M0s`dNbIM-~pL8eVJ(B&}zLbBh!RAxIo2APz@e6@q7Wbf{Lj9_9Sd z>s9R9*x4@<@ZUd1lV01F0I(cGbl-;Zu^WU?IPG9gaW?)iw4fG=eK?qtC$dG)4`1_{ zN}6szn0h{|O+6nfv{{5m6Mj(f_Z;~lq~d&iAyP9GoHX`_wr2vTK7X0|+-!YfGXscV zeS%VrdmsKQJ)YnDzyr20W{<3F*Q%2@wy74Lf=tSTn_;9W?1tUWu~@x~04T8*;%?yc zJi;1s#_KmjzoO4Hl!p>*zW2b&XRL~ZYjn$3+I7Xfd_8V^X$kIOLWqhRpfDgD289XT zPztzVJhKGchBW!K6||VxH>Ab4kmhd~;}>UG-@b8MEMdYOATR|3`AD@bTlLm#O|F>D zj|rr0;lK-n04@vYDQ6#mxDc2E?tYhW=f!NeZv*_olYjO3eZ>|NAWw`HhX%A4pN+gG z#&5!FkEBjK72ZAyGDqE`Z{||r`7Lv4vuiF0`5Xk|SvjG?kno;g0H-%Fisim1Hu*z> z!n4=+(a`#HP&jKSR$FrDB1_7}2ExgO%_0nxqj}you5bEwa|^d=Q!&=Fm!JnqfJ4T5 zp6G`5WAEA}hSq31;DMAF+dn74@t~=A+b9y?u%PjUG<>~gaV8OLkE|0K7FzW?3a!qh z$A~{9;5uFLWnRFWhVcl>xd{|sW>_MWfUQF8^nAk6V{ov8$Zmv#4N=+}-4>R&#!?j^ zF&djF1wDnYGxRP^PvvS%n%L~T1l4!VjC2bsXDuzsI?JhZQ@9p|cge3ytXwq>l-2~^ z!9jHe)s$N~K4UhG)N~1;m}-1RU|ZAYK18Mdg*-qqzLRnhtoyEn5f9p8qZ23^SSGRV z^}C97L++%}cOF@sLy~P<$ffPr7ScNFwh(My*t4aj(%RbE*4EbE-qDHEKq{7B|I$V) zTCd+%$gSs|pxR2$tS91eLWWpNTz^#CYHyP3aCeQGiP<)#5B}1m(U>h-@vW8{#9U}` z4C;53Z2Q^iBW~L{0Q9YGyWPq#WqF9s*`o62r4KlPZC_9#@P4kFuK!|~Ao3uMs1@iA z=7R^!KnsGkvK+ycI!KQ|+2%jSmjjc|@^W7ON`OQ)FDRTjntaH3<4c|3jgDD)qjmMd z{{tUY$wzHup|0-ko+Z6|giSC{IKa2R%+6Xf1=iwj-P%%TEo_D7goJ$XWNHqyxvLS{ z2pmy`GK9ul)|MU5P4!Fgkhb2Q(9(}>vYbJ5;gVcWJk3Y(ATM*%gLcp2a)vD2w`8ZD zn^iWW+Fq?2x9EnUBk#p8ayx7OVlT3*vBMID*;(M@0Nhn+*UUG@E^SVJXjAt+Yt5dJ z?};;hpv7@W54KfStw;?^CvZzC+B!60KeYF?wn_o8h|NA|W7DUhq%-S#IR?t271-pN zJ=%hDvEF8VFMNj>I{>#?$qP+=hKb{Q=04--VrdB$+QQ*bZvpnPleDGU@v4JKm?z;D z?Ij?t?TO#e3rwr>0q9aRBMU&yP9aYoZ&X4>`}V<lWVCa-G+D7SQNcb^aTVXWtn^MB zbcqSjPud_r6&Ikqus|HTU9GlLpUk3Be^y|7Zi|c>m3p9`9CaXdg61kp&U5{cP5*q- zV3jq>#^1fNq+sLs-@dnx7GCzYZT?<T#hdH#$q(3*X65LX*6Z5@B_XMz9bebPgjWv= z-VOofqzb<O?N&8G9s}kwQ7`4kVw$XpN{_&}N(V5lD-f2T*8>DaCu)m>oh==>vahAq zQf=9%r9}hf?#fydy_bJ`APxEwV+N*;HhHV1w^r%>k4lNuAaWatJUe|2bE!0yz%uZ` z5zr(UJaiF}xb#dLA4F37s<widy}ipT<`&^u<Qg^%ev{J$U;mKNjDXad9JVF+>zxbI z^%&D$QIB^^kIz25Ul-Vy<@u1<6874Gf7fwnheiHP%#(<?sUANwY~wJeocXC>zU`6u zn8}(xV1|>Q$AdzRb!3zJ^!d%{^V`kKXxOqr^agLvvPwL|1x^cnY!t&+E=vdWn$_%s z|BN&_POR7B4@~UJ26iW>_h%Ciy8s}&mIp9Y8;>1Di6~ecc}4x^UC^$;eF_PyRnJ#l zX)vud7kd@*T&y#t{2-KqUI;>qb!fglb6;rSdH^!^Ugsv_x=iB+cd7*R%BAnf@9?8C z@rR^vK-xSd4gJ7SNqpa)5boj&1=v)4&-W+G;!EuVMrvk06J_6-I&%4y05p4T$0gX< zZ+A&>{Q5^0Ai?)M0TSG~OT4wbsaoi7Xoi=x;GcXvIC;^<Te@`VKKtyu-~Mv*o``+U z*yyZX&dZi9TfTh7;YV<vGdDW>F6R?Yuu6YXuaMHE$;KlE-SSMaL`Ax#LOmC>%-Qw$ z=r4Pv{JHu^*@b9R8mAf_Kd1EgNsW(B;_+<ycaXpab-N|K=ktUU^P*MMBb3TIx{o6F zjNabHjA+(@4@zJXzY$e93a{{-$Tn#Pd%%A4foit>-8wcXj%;nVt#C!r+|PX%r-=c0 z^9%MY4CL);AlE-p_<9-;pa`~!bJ~IWR5*3G<El_I{!t{6MPoj~hD|bXBp^3YW`JJ~ zA6MBJO(R}V5|5+8=?ij~p;T)uM938|?nlJ;EeZb&di7m+4$(p=-Y)1qJ7S#LZViYD z)r*J%b_~h?rN68CSp?w>e%|Pf?Uv?zU=JtlrmhDln|XK_CX9UFFk-7>(LXVa&@n!S z7{OH5RqXz_q_XCo`Ht{05x~g+my(F6jl>{4eljF5NLa@!+2F6-KD39Q-F+Qkyog%D z8DIwfrSF|e9>GZxFqGiG!Qf}-^43BuiF1b|9d;v01oUu?Xro;n58$uR7o764k?;k5 z4Ei#EBMMDySY;S=n2>ARfx-Y7YBCo)0sX-Q^lfIBSHLI@UfjsxLqL^XGBN_8a4E8T zZ_ji19t94+EPdKJJgzDQ4u^T{14{Y~B}gb0o2~=xSg6cuMFqAeS;9yPBh04W9`}{f zSGKUN@Z(;(oaD^17SrHAnjpM)f61VA>3kx5!)q44B{*U_kF#OxO06GIvQE@O<R=OY z>pN-2YXT!5CW=*4`O(0KO`akF);GmR8r;99!Tr`K`y??_L7bieXr9<8PRHSrmMt2^ z=}27W-1>16r>heDE>1SF$K)r7)6)TwmM+SGvXb{vZFzAb_~kW&C{EB@wHufw%ZPsY zd#Khe5#yNvz<}(@bMUmvHc|G#B`D)sW5KDt7>{Vh|JmmCaekFkdEb-tWwtqoho~a? zS4Jkv?lxryyWQBH8nx+4GdIk>5Sg5BM;*ntgOY0gHjh)L+LzRApxSRE)TY-@1e8{E z8dA3*@g=s5Nv|s^Sj~9=HztC)$BA%5Q2lMdPro!TbO*Y~zj(91Sav`eM2yn{iDS?P z&_0;g1nWxL3<s&lBW$nt+f)eK&pFCloH~aGAqi2@L*!k%Bng^G1G>CN>VbiQxHC`i zaC+qWIDU)T$uw2^)-CB<Zrm)sY0_vb9@mpG+Kn-Moa!U;DEbEcJFD_<OQ5*QZ|k+% zh?QQ8r+ln?(Jn6B(tTUZDb4w$lqIhcQ!V?J^=rusaO!_%3F4I5+OYYSP&1&R)txjJ zV0+X^m(aSY9zSxO*<2Ixq~t7k&C}W$l*6a;n00J|8-wEo<=)!Y0r~B$F*3QgUIBAB zjj^bdWD;}Ud}AWt;GWXR5Gt(Y95LKfj=3e0lBl)ejpl&ys3aVuMv1iJSy>C4dPEij z4h_GL6&FrySK|*lSc8ZkScW&S&%<QTy`8#?ZMe@_vqaIcYv7r~kjFfjuPNpS66Swr z=EdR#Kxt6V3<7Hb59<JCG}qWX8jDOd&g8jrfqSv;#~Q>w;Sw;y%mp`kpt!FkDQaZ% z=%^EPIVb*MAfPR8*%F6H8igHjW%Zk|zzLm^_~(K&3Saj(m1F!vTt#sglQ<_Z5~iAd zI@}R!?dX)jgyJNBDMk`2;B!(y<-7rZfbI48BTrgqR&~?&CMDN3PEX7*Sd3zw&rX6n zzuvI9Avq*EzY4JMt!|;1b8%zZNNqALdjcY?Zk;PD+Z7$vDw)<B5X!RgF;#I5<5{z> zYqhSn|DYZYYQaCuTDiW}-ofPw{F^7Tb#_5RD6%yfB3meCS4c70RF7}C3E~@8^v<?N zq9MZo$|f#2+g~diAoBDxTDuVdtB<#A&K|?Ry*De?QadnlH*4zkOR$=Le#@+%x5Z}I z3#u0}n`@`QY>^sZJpRV))R#6?+baG($QhM`-RPvnD{O8Elx{&gNIA`x7=k>hPx@1U z#cTFS6_o1totH3tt<_1jl7w!fGzN&8)Fr<iBop8D&J)_tPv6>R%G=f_?0uixaf-?~ z8StYu5;L2QCUqCgBMwGs)}M_dc>s9al|q8#;snXNER)H)F-TCTNGFj2Pu#;<ZPg+` zZL(=#%$^DBE6tuU!8w1g1qn_Np!xqo#QIvw7C1zNSoaR$An@}niy#99S>t4_HkD*; zL)NZC8aS)&qZI;cWffgwEVJsDxDwTcw({%rh?e;{YuBn_<Y;o*1wRTI*dS>3H0MD# zIf0Ks1a@|Y?k1XTsYi&te6nS{_2;AsA`lHX>z_n+9ALwQ0b?vHH_8NG$bNWPNF3rT z*(nA@^H(@pt>w{xDKm{%Y@;9-zctPB?~XhcMy~JTOmf<#=HK;KezUFNm1oTLN&}Y9 z`+67yvHXqTH!lp$7nIO!)39BHW@4yQOtddBw142M4lxZK9#!vk4BQ#3@(5|H)-x~G zzWSvwc)b(qmo>*Uq3Pmk>|yBHr*<2%9$q;VS9BZ`pIH)lT8A%zIkoc`kI^c?N6QZG zYs>Ea__0u0jQMa_`9;I{Tl#zzsDhy^%{>Es&et_QiytBfnq!Ue)}cffPl&Tl@|uw! zPWf<A=Tqe;GeOPVM7-Wt`hLueipEMyL8$|#LAZovKmB@`aZ%2Lw*la6kUlW5V6-+6 z^OCi>Gy!qZ!J2`YwQ0tDLh+6X`L|+9iFgE=CbP3ugJgYpDliu%>)VTytPiEZxdO{i z3C$f?x#J3~0nl&WnFsXF#Q{280+b7=F(Fn)c!vQsYxwALSi_z_+M>#Wtm|2o7XK$N z*4<d8*>v~x^eoAz+B^aOkZyC(6S)v`h%LnQ^<gC@ti>GJ&xM#{k30VOr#xjPmSXtt zX-|K~GoEqcNvodu%x68D|4x3+DW{xz>Zz-1wd}diJ?(kVd;Sa70PjAZo@{ai)A<Dx z{vteHo3taCDC1Mbl<dv*_=@|>e1#9fZZbQ$QprXy^H^|O_^B*Me`p&v{Z|<~<1#0} zYen56ux<yZuvjHUa*7rSsL5Xd1*O#i4|}!dQuSwGT)9Tj2`3IIE38&Xr$VP4+2d3? zUGM_CYmYHZa$16O8_yLEKyT;aK$U3csoa9kE9G-k+jMYA-Tuv3J89N;C!}2X6e%5c zrqD~6*;30t*Yxc+=A3@!i$T1$vw4#nrpcyf^`M3XU5Oxr4FQF4N46j|4x(d=0Y=DO zWtSkoG(o=E=H#}y6C;m0TfcpO22?Ia#OWh&oRqgWfH#>ZWX3TBapl1}57i%yZWZ4n z<@6CI(M5c#f%z^rxhY)A0IZGych(u~wuuzWQl1Kvc^~4XuL9w@B5(?k>(32zFKffx z|2rhR9Zob%BnSM3hF}d1;V(2`Or0STkw219b)PL)+NXiqh$_9G3ZRalSO3m}sPS*9 z3%Ahu1CUI=k8&i*g0iTHcaeQ~IPer;a>vudGswb^#fj!Kp&w09xCwohxVb+!(7f^{ zKRXCk<ubU*&6zopfk6KD&akf&T$UY?jC=#Wz;$dp_u9(L+0)@oz>?tz+Xi3fiZlif z#M;hM_&1SQxj?LyRb0d%oYAInPG{sop1g5ljti%_4jNc;25~tsRnROLd+ZG(j}ds% z=DS;hBZP669Gs7(k^RV4pm^rEX$TAr0)lf#ApFtTO3a*ISgCB2WIYA2>NF?4SZ$^H zoTRust+%!kf1Vn@>E8x^<0a%>Ixk8GFI|QMDzp-8VIv|K=do8?*WsgF6TrFOHgwc? z2@x#CwWiockv5Rd)*$m<UtZ~k)OR9e{JOmh#QtnTiHGEDtEe+<7r&k-ydwkQGscUZ zNM2tKtE=>>2-O5^1c@Z50okyit;Vuaq@gX2nvfZgNnu=*z<RF|boR8Zql%`X>$v<d z0W=ycjtVMxUYH;bYFsq3b?u;@gs;$8oEG~+0?M_ReHw#_g0YiY?Ap|YYq4X*I^grz z#T;7fYnSA;*vXC(3JJ)#a4mLSg2J`f(SpL6qU3@uQi}zF!wMdlgdvOxicddTJ&8dZ z%wXGF`r5(m7O2)48d}e9P=j~GO}iK;>!*mqPzF(9Pz45wz!0*Z-w~7qxH-<2z~$td z>F}f`aJW#i`!^@-Twx1Uwsn>Bvq&V)&e%|Bagq3G7~T&)9Z1UIT_5Z)$CrneV{8WO zEeTkk_E?g`t|4W}x>NbfWu#vc;X6{#+n30(>uY@AYw3aC+5?JW<qR|gE1Uj!2qMJE z_&3sv@3yrpJ9i3{lb(UT!Fo*6LtP8kJKsv5cD-YpEQ8*$)A_)qLGMIG)S!1rit$$D z2%CZ&sn9|9HEL!lQY|Sy<vJ1`7vP0~8<%X+6~zKKtPzre#75Y2h`(I6;NPWvU62YH zqn}W6ls*uoss-m-ZSCuZYu~LWruoEyCR_Nhx%<E4#RGb4_wcWs0M1S+fA|X-0x7v_ z!38hqW~PTxt=I84^uuFiV`J&E?yU7pR!mI-yrkMwZKoakF*{MPiA7L{`K=``rl2qj zrAlO}rh-iXdpCqC%7*JliBfL3xS$y=Hx5^hhAVHy0im{ZGWN~h1Pve%!vHE7t|isD zN0BU;oC=Dd>4(JU_a{J{Wo(z?4zSFm7ic}hQp4(%J}tim3r=L^t-M+P1jz#ll83D( zuq~(>JLTOQpqI)?h=Jzd@95raBefK06Q#|+d6*aX?5+Khe{Jcp#4m|4@=QFJgQJS7 zTC*hYixe1ZSh<^arrSvm=Qjx}&L|dI>$h=t<rpPz*yQ01yN5IF9uC$5J8FWO{4>9% z`fcjlHI;Ha=6~^#(u>&3Rqf{5Eqd;*c50r_i81zN;CkB@$X-_!yZt~*<a^kUFtKm# zt^I+7t9Zu2?|Kmb*|9^lechwNgjoK=(jqbt6p_j8eFAbkaMI+on!!Tc<Ul-K8wiOA zT$@*T7sVyDlZnA$KPzvfQdoi9T#p~~hzi5y^h|*V3r=_gVGAAzN99Ybc^;FVn+jHp z3n?BG*Nw?GY^Ji=wrSzE8aD(n=YgwIFNi&jRgm`pWeuIHGX=S5gH1{qwq$4bUV2nt zdyP4hNNTdrVNX3i%R&wOdk{i8ZHf%g1_bYevL2Kn6=To=wEH*=O)>$=%}kLd9Wa<M z^7Er)b(u>Q)ncB**&Xh{ZOJL)&_DaM30L~|h3VUVzNG0F*CzV5YZGLl>R6lxSLXa* z1;2}WG|XK%qA*f=F~wfrn|gH*hO5kRL~^iJMtz23*!o&UCddUhW3>Uzpo3mv^dv$Q z8kz%yh9ViEfo*o;KyLNYHVE>j7{b;Wr~`P(4|L;ek$&6Qkf{-JeN;A6v(YBJejts| zoqkJ;0G6nkg;y?x=F~==#@c9=UHQ%6A<|gIXfr7YGyy6nFA&{eQ;UY|g9!}x`Yi#= z6=i{SA|Bc4#3#dI87Uir3#4q|rz(CIDf^++;k+UFS`|b<zT9yTDfH$jmkkPC$OH2} z24+p6_%U~{HBX^{ZsYzn={8PeXIZ+vxS+pCEX-g$H6N)du`VtZ3iUSlU~Nfr#m~6r zBC_$EGy-tV22xNErOP|j=hW@Ba_)q!W`G!xWt@E=APuy-JFbP2R<;ys$vZbS37$yK zA{AFQq2d+?37KUcE<(Nz7;jY$l!kE8bY4y*G)}aMS(b+RLYBamc={4<vsY}5<J3y! zZPb6Qt6Nutu$2}&9)Uaw%)$>1DwNHoYWg;^TFc(}#8roZPyVN!EC@tw0EgR#<+zt6 z?ql(+g}!CBfrV=(#~sH-la;=EWfj&+PJYgFo^uM8Nir;wV2$L3FM9Dy(m8#v;wgQ9 z{WpL6>h-6;23+7yz^ZaK;s**s^g29U8%s{W1Wmn`IbLf5ge?=50UTphT}K<v48zy( zhObqJX)*O8xm`*<G^Er+L%BO>AjZv<!}a(E*?S$NBup}F2{?QbQsVrdH1;|52>-av zK>3}J)fi6vT_-JtnP7$HeOY_9ObgjuYC*kZ@*M_+i6M6txBE_P%Sjx^tP3kTOpL_; zx-4Jxul35fyP^|tMR~u*T!+6>?~^`warRWcF`aL4^(ShCZE9GG%~%tq315<{OTa-V zAL=5!UD^lT759$Qz%qFfDyYNrh>ihJtbp9Ek#}X^Z_&`{7_k7d7Oc83?C=pBK+%p# z7j1P`VFCaT$a+<;HYU8X7u~Ks6En=mDx0$&&M3Kv@k)HBE4%D%XYw*`J~7;Qg>HPw zZludE*X2HboUi}6n#)7;WooVn%|BD~@X%bV<`JR!r)nM<nt!6^(V_WLHIE6+m#BGM zXuep@r-bH<)O=28zEI6mLvxLqKWGVUF6wn<cgHqY?7DFLPq_a)wSOPmr>Xr&Y;zT@ zEBixiXKFth+cmYVQ~*iH1tc62f|s1GOt|N2Q7302IQK(-E5g;)4sD}n4(fAoTfqW| z6q)9E_ydn;6c(+)3kn`>lCN?KX^_Yyc^^xX=d(FmNpdGe-eBJHz+!23OKBUG=$z2< zJeyvxgJ2P0TcO!4!qZ75#yua;BvQ6wsS=`hyu0r=$A;YhWnEUx;c0k$6&}YvFbN)1 zN4jy6kPFnUC30<p7?7(lJFMt1W+07N&c_Raqa+(BV3HM#o*@uf3UOSOkp3Mz1MWl( z$B>)7O$A4|Jp}vxILzIGOAv6aEj^F;tb7gB1+ETrQqHv!TX@+mohwSc3Vm=rM&!Z{ zYz><$S1WhtuqixiKvfWZ7^aE}nC_u$7GvbO8XiXblB5~klMH<!k@GBDa<|15kUlKA zGeCJ9M->ePJWE5i^9;on$hYM0^zG}?w|$OiYb4;g=$KaRw`7&nitZ(CR@4!+SthmK zBkdM1$SVeyZ9_Yh6lrR@b{i+=k>bA-2ELRq;N>=s0wQ~;MHL*-0TD;wQiqf$3?E6_ z1H;!+?TI$E13{f-RO<?!9!^q_14LUW)zfg>ZR)oe*}*nKd`Fh^KDL*K@53<m@-uhv zDkJpW*&eao$F^(sAMydFm3Etn)e8v7XM0t<<#Oo(CY8btx1=i!y?4<X^uP-A$O?Ru zpHlIeYIoHC>#99jRjG&H;B9Wn>%0<xsm1ioE(K@Q^wdrH{lN_j4S9B<A<r%}<k_Kt z8DbSn%N6)Wf`sv<$W>(He84%U6B{-!lr7JliLP#W_~FJlL=(%Sfb%-jR4_o;azX=y zQJm0nS|8?oh}B8W6IE~nv$vWPlsrP%+1fZ!hB|*v%)710wuq@VQ#ZS_Dv7H$tK@WN z@^{qch8&VEKERC2K>hFYi%hue&bsMG=?w;fyR&~j6P_zQuYKYTZj0&8{zjfxwklp` z;$=5Z%&_Zy;*lTm!wm6?N3fDtZ5NN+%j;HK0t0_8C<Lm|sM%aFA1JXE;)N6Ho)V!N z(imrR5oAjOg+Llo=(!{m?GC<x3PX89!3*vIRlE9nj5-!8*)7Irx9PFnWT|^#pqR4J z1|+hGW~bX{+a0qzP-Ij7&+PX{No&NU`q?cusqV0yHVd0sYhI0sHMEG&lV_TggcvSN zl$o(on+X$Ta_6?N!_rOk_Rxlj&W6rwvR6A9t4;Oz{U2CH4C|&J)dmI13Gua-E|QxN zL$5~vgKK7a;Y^?1oIdOGV~)~uUlcNh6cTdNizqH@bJ-3kg%hAF@>9v>xCRFco~_Lq z<?0>J^P3rXqjxln>4u-(%s4y!7R^tvSc>9b3>PpV@>pD!4W%;`v<Xp`caekkfxFUZ z4jdC{h=XZ}ZVryY_oF!g`eFqHsFD~C)41WWO53dAI9uiCYinDV;{4skeQm6HMjt|8 zPXg%#d4PWbZk>ObafAO4QyqE=XEg3?vvq3Q*@nFxQfrflT$2oS_os&)tO1x#UPp+5 zQ$GvOGY*0OwJY>;gz58T-PI0hd3wflX#~mYfPGZ6VAV9v6JZySoJ#KowdT+{7lOwD zzte}yD$&Q$QtZwX=#mnFX3cz<l|YE?Ymew^XnP=J90z4K5Ui&;!MI?cYzXq%7zqS| zZNwkYYXknk)PY<*bC7FXGTcb6F(=msODYJ|+Gxbef#|e@%>sOibeeC~2e9bj`Q#mu z9SH|ZiYW7<K`OvPiX+j_U$|6!u!M9g$=#oG|83St#5R`-jD$$0v`Z>FEuvSHiYmZ1 zClg4PUks4f8<G`z5RyBEWaqdu8mm3o9w)^GBnPO3LDU7rt~c643M35z%V24#Ekoxh zmI%wn07<8W0`6cZLjRVR!HOD8y3np*dA7WwbxedTnTHx2+kt#zFyFwjjCjmqb2H6i zb5aP?&R-H6P-+lYp<ZZo`_Uz`BHFpv8CNKaoy-!q)#GDvmri2)vUVV;ds!EQ6^#1O zQ%pJr3U-QJK*y{_z=yLqM<>!+THyY$fQ2mt?y_+iiXuM}MR5g`D2f~@6nXWtrYORy zxR%P94lTEpOXG~jF3GA}vg)~Th&3r;;wJsq9!+IxPeqey0wz9SR2qt~Vo8y(IYcrC zS0%=O)RLJj%K(Pt>8&k&N=NZ|uVw_(F3f|49Lk_^f(~A5nrDQXC%dbqx+Hrw+-q%& zmGBbz$|=}&TxBs{@=2Fa!x$O2Rm0g8>MR<?U3cxhHAa27xY~dy(;W#pUr5M#hZP+} z)`C})yotF8ZHwBA0*C8>7XGW0Rx$v|EUR`OE%;H)7OHKtRXat^Ao(%7%RQ->+(l1n z?45IZQs>lT55B2&U!o9SwOKDc6BDf2J4zTENMEa4h^D-ZpAVxzr-slCeI4IASBKn& zMF~#(xKw~i9i+Ck#?A6f<e`xHybD@W?wki|2)n6BWB*{1$^N)iH#alEe13xY`qt%G zdfU?yg&+ci4gE9xkGWv%pYt+)Y9M&5j`zXP_O3$22Vdgj-1`sW#eBebrH&smC)Or> zKoC0irQ&f$k8CfoW$#4=oSTq<A)4<_4KW7vyA|<vQ{PmB0B07iN$_2i;Pdr;n=E2< zF(#&OCVxAZOORdu)v&k@^kge@cG+O@3q_Z;NS=2mD7>1!EgARcpa2^YB2AHruvmdr z>5hQ`h%nc{vmk6CM2%>3szzZ0**NzeF|}?B&_J_SBav6l?~fG+_?|StvrT3!>th_` zig;dSJfRUz_zn2tR$QbSGHc4ig%u>vHRBJPeBQbDqV-to>bd`eo;$Gx|B#VTL8<bP zZ)HUY_rO2Yn%*0Q2$yOBHx`^`8N%81;7CCaF3;&fqV<eIqQa(ne8UqJ_y(Q>PFLEN zA{xu+?n0N?&3>{G*<@X5Q6exB1fY2_u_QYKse4zeeNwBTHqWbEt<kSV$G$?qnq~(8 zDmtGC80!v$H{4<ephEwYr^ySVS|>O~rW#EByHbm1%mjtY>6sFcOWiYfI3PnFrjRDQ z<Uk0b6!qD~sn4@*W0@r(n{;xQ3O%(G(5<$;N1ZLEhBS%U(RHJ0k3JKXtaYEzd`ar^ zGgawsR{ajMSq~A@*H9uc28why;u5fUnjU8no~F0%%9U8NV#x4&Eq{g`HQL|3Kh-`2 z(#n&YXUa)^D-8pEV<ybeFmdIV#;%cauH+U#u`AP1oML7=ff!i>b>KzAtapx!zM*xQ zdJ@}s6THEu8$B6Swxi{8r8QVkT2aY?c6{EITtfUO611+g%xEr5X^lt|`+DN2ES$ru zWT-immJQa-dxGYZ37U8Ii4Dw)1=^zq1ty}62$ry97UyE`Po+-W9GbcI4=ZvqhdCVi zZQdN7n5U0SvtIzY8zMMG!5&RexH)7xU*LEKMq>O%az#`}b67^TO_7`02Yv}=Cn9ZU zzC<1>674f-Bu+Fl?7Ng`SEo*#XqM%*K%(6}*Y-*fdx1pzY=XjxW+uKr$Dfe2U4Uvc z>eC0nsQ<C559i{_olLTBI9);;-nrY|st)H8wqmvx*xBRCE6e#;pD4Hi+~Qdq4PoV@ zu;U}x7^NI!<Mo4_Mqn#);j{^q#edOucPwhg@uI+OuE#z%S=Ap)B7o)uy<kO*YF0)~ z;s>hw#DSAd<rc8#*pow2>gk-+ldo^vVW9p!2855t2cJfjAErkXcv{6ZyksDSOYmr- ziS?(>U~qh=F>-E#(@%7>42FP_f+seR9(PX+k6VZktMEMBl-R-KXlXH2#(5tT7c@e| zi2|<Wo^5Ol6id6<r#5<=7%>Sf-Pko#KCxow8Op3?WYm2Gt8t93NGFmnJ6f4vypF(p zh7hx+p2yJGQ-wIvtL-PZoPrkgD3Ht8vtB+P{sRJq)sB-}POWw*8=IADy!`N_(&rSN zLna;KT5<Wjt46P^UvMDI?T^@s0b;Qm@JU2-5Grdz$C*55hnNq{i7yl+Yk6^wAjZ*0 zqQk&Gb8|Ec+*rgMgN^fD=jaU*wbapjQ%BCwhpVF;Lo;s2B!Ch_Yf|6H(Cf<#U7sHl zc{qs;w2N>KB{-d-Iaf#sDKPZ=(&K4rVQjW8G4%Q-49)shamFzZL)S&l**V(oV>C$D z<e=(^$N_4wxD}M8KdSKf2`#50QcCT?&@(e3>>);0_>krRC$vme{3-gl3Q(WWa*AJK z6cU*anLN!k3QW@Vr5jJLp5JC}qVgXA00XvIGUuPx+EKW{j04JEyIQu_CA7GUFWs|4 z0dWskDPmv)OC-`(LpTw>;>K(<ZfNmznsDOEc6mFl@pEBan26>9lHvRdq2U3N`Plmt zi4WYjupM-H-$I{E@ew(`=458~eKhY7hAK{YnWMsc3-m3vCMevuD2LqgzQwk@Lr8r2 zq{?I0?hx(>zUDP>pGu%Q!t7|l#}{Fv2?|G8!^Rw$@Lh*6p*zg37RjERr*RDgj{H$= zDu613-~#Vygpdd<;P^39T+n1uR8+@Nn4MXE3bWG)tVU*oI|5jR4aPJ$E;ztS%T~5j z!W>!KLMGd$i4wJZm>`i&!%`cys!!QsEZ}nq$sXI}s<%|C`$mkubeiTbv1E*KE<}WP z2E%R}^JzQDe0?E}!877g_<ze0@UXiU75;Bsz5D-z@BQIQ3;$X04Mzp?AF8P$#e;hu z;gDn7BlkVZE#Gr5{M#G<cr1tx2HAgqR;5aA`k{2x@vjg6RGG?)Qyq?fN8sO)JTS!0 z3*nXv6skh0D%7gd!68p)tt$LOxvEvR2g7z?fEC=uA8AscYP8_vKM#-BMpA*QL2g=% z_0_pR!F+Krm$WNHWzdvZx-f(bQ0jI;UOT>kiYd0SlAake%v<5Q9f-5(4%-at)s|H^ zL-3SBhD5S@<!m@~ZHx}-Rk(IoSZccx75pfiL)fmT$X!k0A_j!$C+gDba0&Y*6x64) z$fXO&417k4)JA+6y>=k3)R7&Se8(5K@5mt4seq7)nE4fi_tzt?+!Hw!4@q!4Yb)^5 zbAXp9vy@+xQ=9#`s*f@|oWAz;0~AH!>v5(b-Lui04V)3eVV?m+A>{o6svtDSij~7I zPhWKSkoB(bj7k0YSt4k-AhP@bmU-b%&<lCCLTjB`spXL}TQjYwqNmZIhqUmlTmjs* zg=e>$VSV}__{#OqRsE_wReeVnlCXa)f%<E6imk^6+th|w%JhX3VF`Q$ZO1P7vzddz zGLT3-nh$jx{RYrpUK*DsPi#W$s}h8cOiV<L*j=?};U&%%7fkHWrLQ@$ZL$ev&IxT7 z={Xy*d2a)gK(Tv9&fwQu(EU>>g!A-o(`<|u1|{MCx&+Ht4iMuZnF{nw?tf!U3-brU zh!QIc>MtZ)M@Iir>hHz_)!$0=hn?3&{{3=#&`};96aaD+97xCm<yzC003R+v-Z)$1 z*JCLw@gTCu0uR%cnk*W6f{fzJ4mv?wfwAV1cB8{q-ctD#A<tZx5Ou$u6gr+1QmBwN zm|i>mf99Rx>J(hTT1#!^BfX#v;Z-Ff-f?(K2N6yr?6^B;IrDju;a79{c+<(>WEWEb z1>VK9wG(IDQtILu0h{k)rm+jU1Ca~m-=ZVT%P=Z;anW|yKD*@7u;~{NWXt?162vg# z7a$Z_pb)82)SR~_Fc(yKsJR*o$e<dFBhaJhZ-Hv;wgic*v7<@|!{O|UQ)5N3xFdDq zV!?<-E?P|Gu6kj{*A0C8HGjFxw-$u}At>CEEhjT%Yc|!tD{wZMhT}Lxo*;V6GufhX z1}3XF_$fc61bV1rh&-w%oWa6{0Z>|w3NMr#m3#OJZjnfyiZ&4@_oRyI^UXb!0eUFP zYUe^^Ut4rhbgde$MIQx92$KZq*E;_Kur>2|DL*H83^^3tlm`-monLT*QgBm##kW|L zJF+~LLC}E|#iF!5m_FyG%W8VN>5{RnSIkktc@RW2(vp&=vM>kaA;QI=2RE};u;)&- zhmbrsD=+Q}H{>^IY|e|;<IeKp`sjv~F;Z<cb5ER+4lvK_gEMkg1z6zvXpyFmCP1C0 z2<sS4yKCq2ErxQcT_?9Ze-WhJd{%U5owWQ)bU`5+3Uom^Fl1CDEw8Spvvoqt^BFVk ztai&ic^|=H%HVuF*4#ZgF9GH5iN$$#mwR%4>d)O1Ms%9EC+|!TIt{{uNrfi&B(4!c z68O0t@<%Mt*32Kd$bl*AbxX2b85J5=Xf7s6xKRhh?bmt<;?B5!DX*holL|LsNx5ix z-cuT~1#ecF)v!|pXEQyQ%nG6{UO)b(XDAKF#obV{Q{s*Sr8E)r?><0udY+|BSbpjf zwg5Jtx>!N97>OC9mxZ@wokC+N$rl>%P{>yEx{V)9V|KT(oK~i9rm*RF^6A*cyl&%% zN?mY*+Gx=yIH1(UWa=V2`xkkyu)onO1ZX+0F!&$z3hj4tUN1{fxL0Uv&*1my;h0oV zlkH9qXE;IPY-a1vJHuwS()^*PA`Z6nzg--xb@i_O4{^26DXxZuHpSDB)y89W{U3vA zy}g#%W?5}4>yEnaTIhZ<{vC$owtRV#xY~_E?yOC6iv439_bgwa<WKnTPuH&fvzNW> z&tHyzuXx2PUir#bv0TYt{^ehxVhR5Jt^U3G)vsQ^e*NjEzvi{CeckKv?+tHw!yDhY zVZ)pL?#<wQ54H_8scLq0A=vg0c)T{$6RQFZ_Y`7Io9giuH#&R;DMH*AGK`%BRPUN@ z{ylXWqC!0k*U|Q}_Lx=qX2|W$c6(HL<zw7UigIvfB-#pnZYlMNQLzZw2D)|L_gciy z5R<b*L6|1|cj$l*tv6Rt0Lp1-@HEZ4w1}8_ok@Z(Nd0<F)|)USc?n?#&5ky3Bv!$T z1ABv>+0I#<U~_d*=d>%t%m>&A%9xL`(R7Z7oBBY4>cRw-OSAQum*z=q7s!XIrqK3b zgSyQ_RTD*0zdLp0q<+09Izdub5h=xiSN891jEagBy4SBzrtK)<n&<0CiLA0EJ8U4U zKX&66??OzhU5BN-hWk*c7GXH})s=AH>^&|hp04+}ZJ;e2tHr2KdSE><pD^>$1n@2U zDX{ZuecDrl-M(uFk0XnwhYs&3Y!??a*5eO2VqN5_F`bp?EH(~U<DF4d7_p}nTENHS ziU>aL0ZsEL!)iRNMC3hK0iWe0_^(LtKf15r{~N%k;FqtO+{jtUUvtzB(qtaKDQ;U0 zcP0cZn<4r^5Yb$pH)y#8Wz3)AysHRlaSk?;ApL_uYPEb;#@rW{T=`1_RFqYUYyJcQ z(*#TaV8tDbQU$UGKg_+GYO8jf$q1?;_Ml8a)FaP_e*-nc49HhmAGqJDj18^~zmnG= zkf?)5FNl{=T?Zu2>bD(Kkfy8BNc^num#cSU7I>xEDqGagZa+5^tdn$2Jrpx==a(*2 z$%lgx<7?Q#+^Ob7tKx0e&gy4vI(uMnc)V_B5C@k)cMD)&oxr}rN;$nuU~|QcL=L)T z*!r=s9-@5EJAfi~%XYcjQM^Qo;BKMY&z8FVGj%(nH$u0Vf0;Xf5-`sqL;xrf=ww`D zB_dptO2!EyZ8$+>GMpgN9)9AK?f4K*5W%)s<m6&UQOh1LRk*^6L%alE;$sVE^6cu( zVYQuZTk*8VFQp;=*jSrg#MzT985D+GHn6+9a+GUsW%EHn_%un?2qB|MEFq(ufCa~q zGFdi3QXBKYIbMSE#ZBNGX#yuB(jcx|9ci!7kb55*a_>XK-TTo1tSb}G6izzq%Ly!Z z?_VUaT;T#M-gWZ5r^&O15F&7-(1izUQy15lx_Du!iy4kCb&)G&p8cW8ky&Q{4K%U5 zQ6NyMnR|ajg2LVVH3j@Pu3Bt&$s7)KJme6Bq%ArGkty^ju&_Xf;429dcL-ik!pGtr zf?X<9Hzg2VsJN=TNTGtoO+p33oP^2@bHv|{3)RgfI8SQ==i@F^6A3IAs^^v{EI~~i zzgVHVrPM`M>S7L|`o*<DrvmxeAudC7gcc=Kw<aiDsO)f}{-|glFQK|ELE=KSx`dC# z3l&T`J@fiSaS@rmLpFSWSY2!CoSPf-HTr%kQwOK5$GCs2XBnymD@Kh)Tl|#*NA?&t zIDe1NKRbkiR8t5m>TaS=XqoPmbEL{e&&plDNA->LxR-xxuDODTu`^SdJ4;BmGkfyJ zV)00p4UPl+PojYf>cKY8bTT`m+Nxc`y2~7GX%<aG6*Ja#KQ5>F_=A<&nek7R#?OKy zje)AgkKdUr5J((mjplQ|HZ1Xiom9}Pz1oY=InZOLiL0vqQ-B_;DUSW;g{k=u(g=Kx zh~?)c@QUEpVV_hu4X&kckMOg*Z%;h{mu@d~)?2%XF5Pjx)xE`!50YG3ljdZEE*1Tw zVd#3EzOW5T3S7!yaKBe6Za?GmRwPALyL$Zu+6Q?37(m|5nSxqOzqXPRYN|E~;+OfU zcxYId)9+ZA(;KkKdZ(`^!`bT@Hn`UW0#`46d%Z20_vUn<WjvTq5iCA^it#H}6ddfI zCVYB*7F!l|1&CltRDj|X4}ANghnYvul|}x$W~*a8=18M#4fgY^j8|_=wZ|M5HE9@n z>Dz<lGSTj-?s29XoICx3XtWw9@LNVm4h(D!{$NbZV%h^lB5{EH)2e&O9qvLCQ{I6} zV~YN^Tt+iDpaI8RsF@SywYHpd8uc1W;`68u72v^0xCA7rM)nl~_<LNb<2h>ICB(~E zji=Xs;~{9v+JEtSRWA%X$Kw-2%Ebr75fq|}0$`~vQo2@V1VaKl3c1dbj4tuqlE$p8 zhY|^0Bz(COBGC!FF~orv!T;@cOyQxN&T!?GRda1S*9hI$dVNgMInsQz=sk|<f)0{) zMjQ7lm`D4SiSSH}Sx@>EObhi)L;ZumrL@{%0hU1lbPsq6jQU6#<xh@Rtl|(cB-olr z@!g(U2|U;j;CK?GmM1@A{7Ml|YUa134b#Vo9Lg7?@twJ&A9;cKsNG46^dMWVr`pZK zB6LcGpC)5ZqQFOZ5>+gK*52AXsAiaZ9=%Smt*OfBIBFtqioLn2L=HTZPcPWWmKHDI zM|t={uSpPPhvTm<@gEVq{d#NX@nOqapVD~TTpP&!Y3PiDwby=6q+qGBmpJRK?nRt& z188-xKi|5{l;sck2n*stk4C)pHo@CcAZuxLPeOyz9bRd{@XQJ9K9E?1XX~tt0(m4p zHc}+&SQ4&%lrM0Zjj>#mXVC|^VulPcq64#ZM!xWZJz#gLOJzp|A%f%fG_*`dbsrRo z7LNAtAB5_I>|{xAZJ2+tv9gVWMx7-N+KazzUDhQFG0I1{s3lQ!W@&3OXdNb0?cnFH z;5#@WJ|KyM?!jP})UM_oEDz!2J_{%y8o7kS!WL2-sG~usM<oB^21WpNQth=7z*_1@ z>;gxYe3~Du_>m=N9gFpmjz7x!2-Yl4X=(9NBgp#A?Zew|zx^Aw-D729#frm^@Z)B2 z-mF(n2fBRe07YtE+NkA%azg$5pIQLwBs^Z5u{_=7740KhN-vela=H}}J0=A&_5s~8 zW$kKU9vBwhmkfA3mhJAqjgv4uOqt8fYpVjq?$Y6!>W4D&uDy2lm|}rUf0qvzL+zXy z;zQfR#9k8=rs@>5+c~a!F*>gYYmOPzAz8;|WE@b%G({h2$eM{kVf(avx=<A<W+HA$ z-TcawDE7wTljtTaFmMN&ZGr>bzGpDz<oQ1C6dD;wAM}YLGZym>C1ra?a4UDVULTJ( zW=O_?X4dV;uwNLp3%<QFA8|h~_2;(EG9)K?;K;bh$G6a!=(ZV)8k5}%2!f?iy(9JV zV>^e{avU3}F)bd^_ownbPv?7{SzOQOmwIN+VLu8~d>~?xCrE$XnGDEtR-4YVTKEmX zv(KJ;w4<4xU`QT<pU1C6La(&86IwZTxv<uFi`||How7Cv=?&WY$9bY(Hhtq>-qd-! z=wLd$fnCh``wYTUV8Ol#{}&`IoMR<Q;I5+=o)&|l%h=Odq`b)$ms=u9k&PY92e*dU z@E&HGW=+f8NXujLg)o1C3)p}fM{r371{1U{14kERz&l965_wlfob1ut^O1~09dA+; z$qy>K@`lfZvkMaxzRk!oF+pJ0AkmTE5gaXAqrE%9;~LE-7L77AA<a-V7+s@TxS0NC z>@+k$5>zE>c8B5O!0jYdk)<w9;CQ8|BT7Va(1adG8_Y*kxbQoKLTE~Nov5xtr}B@{ zYXmW_&gl+p&_VDp$+g_msu>PkiN$`Qk`4dv5N8qbqrOoPpZBJ*dMIf{VXP&k{FR+i z%9o`6Tq(0Z*Tcgsa~m2X9!8SVL`;d+IUq1m&4S}LBS;MXzSN5=W!p8|$WYTsDZ_b8 zJ&)&mo>*MZmzH|QbPq$)f%H44lyCTMUMcVClm+wg`x8NDx>ELq2~*064<09_{QiUm zSIRaAXr`1^W@u-X^5TVKc13QY78M~?h}+O`M|L_ic-S264X1^HKh*$JO2F$BT+=cB z7-l3~K1pP8@x*Hd@%&Iiq>HE3N`lId0LliXZ{_X9zx_UMFRIQmi?$b+B`DlpSXMK5 zFG2yni&$EuO_f*N$vxjJ8Hv1RGBkYWuIMPMC=*@btX(HWaMQQ%=*G3B@tV)GgH@KF z8yaq+qkAo!NB7$F2>NB3dxL{<c^bUy5-U=lbcwUl@OW@!@+A29jrpzAVU>Q-B)B3$ z;Us7X7eIOKl*uN>7mb;b987jNYC}e}Pei8jX4|hRbh;y5ek^tA#9-0MCeHuArw856 z@WJR1I~<&Bxb4}Ncgwfu-SYb4EWjsH&kmx6RT95YP2_CPK;HHY=55c=;(Fd%>Y2&l zyTtZ<;EKHML9kn*<+f+4V0(Ps-E2?&+{69prnV;=d-qDeui3!xgF%Rz&j!-{rn7-h zCKR~gVcL1~*?=l~?wsL?PNyrAC_<9&s9cg`a#e!QJzWN`iflQS7a8|->$n!}3%e`o zsZXa*Z|Pg!lCKpC#ca8c&xYPqz^gdx9#)T-nK80^-Of08S0^xB@JyfE+&a(dQ+ZaO zUL31`F7@I<W>wW1g)ArDGx?sk<$K<~xSp>m^^Az%t`V|ZFF49Y0h64#sn3NhR<MAf zWq<V`bgS^}@XU&WkPV013!ZhydHO<T-D3$0E@!qjkazH4&$;#2Bb)RIqPTFL?F~fb znx%a1oLtWC+!1vVl`gf8$|R-NrP28;9f4O!DWp33J8~<U&(gm&S9Mvu=cEF!&RI_H ziwO!h`IZ?EhKNvr8FtL;vK0BDc7%ZEI<*>s+MbpWs3nOl=30ukn#xG=R!U<yz;$^A zYudmRQNLa;T^HB_r9jBGytq~uc~Au-=Zvi~HXCECNTt>wF#)unO1@(wpI2v7Ky%~Z zU&}rL!(1uY=+zt{RZ)Xds)`!)Y}b4k#%2p8b&2edusp&!r`Non28}l~@n=S8H59w8 z=O+ULZ1@bd+2N|t>qLUX44%x1GdM1*pTEEECH~x!0R5#E1Yj|7eP(^`Gl@H!e`cWc znN&n%jGQr7nZAW`hJ|nooH1!d!pRw;BiSR*8KQK&I0t8}4+H>f;iso%Zq!w*)?pP$ zSG$0mz#tU*z#zcOtjW+|oHLwp$Sh%M2Z?LKIB}F-anu+mFbD=IXDD(Gm2%`9F-zba zF-z!cFvmHQP0MHtQHvn?77wX|9!1W{2~#eLI~(W30sChX=lqnMGuJ7<3*{V(GZi>z zI&lu?&l-Q8bAqBdV?Lc?JR+T9Jc3!gvCC3M?Cj@3Orxi*6}2#f^xxfF>t8fS<>Tlf z(UR;0P8$ein4oJStI1(5E2)T=O?f3n?>TBI@>gUwI?|EZ#8QFThVp6(iCIxiP0z|~ zXDo`@BB(`X+mQQA3SG>`Y{kzcX1nU7d6=zr_5ZB@AUx;$ZZB0Y=jm9s(~EVJxYvtS z%vr`fZuWZOlko50gAZX{)A_b~758}kDRy`L`O9DN%KRbJ*u?dQH*)vZ-~atT{6GJ= zF**gciMH}W?1bhL5aOTNLhL`wF=&r_xF(AkDx2!@6`w!w6-?5#fg8&?a4TsL{z=>4 zTWj<s{;@Y3{q{|C7!Y9%KQ)C%4h0tUqu)7|Z%pSKGiXG?+s1|q-b8yd_mqoNT!?Q4 zY}g&rE(u%4q6%>j(4GM7A7GZ5h_e(a6FjNm&B~@>LZ79uF^;9JV1+cD3rk4&yZ9l@ z0=<IT+qs(mCRu&}I|D1j5lmxI8(pG!Y1aQ%!c`U0@@r;8rO&?!FtLgYQJ8=7Qh&0% zb9#fQGGpGF3>>7F1b}Nq>{MHo0(UN9d?R7h!Z04tiX6`LVd~p*+<XIX+V%F;`M!rs zP+~8cyh2rV?8LjT2NOKbl*hy*O<qz1XO3#YhFim4ixCM<XAiy*d8-ayao)-XFVDvY zL#P&bB)0IDE6MpL3RfgV`9$G#;TvuX2_oXa&Ny*)mq;MUVq(Dh^^{T;@Od?fn;h4V zB}jj5IR$@f#5W-M0Yg+M-FYjMi2jBjF&&UI8<sUHhd;_UF%_;?bHC}p0i{#z#rXQi z6F^(cn(|2a5K0xRVkEZ^ioYTh`UWuB&0COnuF*XOH?^BA+)V53d7sntiA_+<!Ap4g zWCG(N1LH5$8O9SN1|3Zh44(B4FdWwe!>YyMK2OEQmNVu_Y3BV3JSmL;4sZo3ZV1ZM zL{*9v3d)|<yooMy9$cTi#MF>$61d;Cz%RSnnq5s70)GK^?T|;7wCH1UGW=$^3I#y{ zsgms3@TCVOvPL;^DZtyhnQ%3hIzPuIKej2(a3!|~TG?t0oC=J*%n&x3m)fy>V>~so z;XC&&ba!3q&iCN`878g|PPSh8j8;U|jB$Z5lP=ph$o+-dT1G66w>KV<Hfh*I9!0wy z-q66=f-J;t1X*Zs0HR8!^R19}*~S{S+I9I-puY+1<0aU!J8d4=uP2keL=v}1;2XwK zV4)c3poE4IEl5IdNMpFbMB_!`HJ?HS5xtpUztBkSx=wm;l~cw=VLL7oiQA!1vgxr9 zYX-DYZ;<hf`4i9Glz{NVH(wwijOWM$Ts|>*+KytyY1@P4?b(K+;G!#duzUQHn1HZb z`v^#-tnaRI%p|FVgXN9xZ2aNdsX3s>!cX_}_()V9YJiBCv1RqULY@qH5)k8NLB?-O z<n>k7OymVCsH;VeGaFBJ80AX3x}VLJ9BYThv@G%|Ri?Icelaj|EmFIgVaTzGdyxrE z?qv+4&b=b$NluafS%)*EFt(8^`O+B5UAuM?>kov`8Z|z2(V(R}E)CBQyNE<f5R4cF z!$u+vPo%)0URm4TVyZrg%hwV<-)k~^itx$FC#I!xl)giNeaFyt^Q9?8bwKlS*fMSX zIT_;#Qq^iwR&Pa?uQmWZi({4C&1OCLHNRI>J3;gl%y%Z3eRBgli22w+ib6Q#2Sf^j zhd>gwR@<_J-kNPV6Q_EE!BD{uz0x1#?_vBd9Uky)j(wGgh1;Vf1ekS_hzC_C_!meY zX;&`35{MY38gFgfvtTRLt?Fi6U829ycEi)8<87p!mYt<<SP0c%@+EFAe4=)k>S6E* zWVSh{>Eh4reuyIRtv2v)k3Jol@O1CAm%(=-4PwG%2GE%THKCyeyK8rGq?R{2K>=ka zfuANR)L|)cij5z<J@~_XIKz@-(_N;xSrFjwCE~dNTc0~Bz_~)I^9pdo4kb8WE|Ak4 zxppTJGjbGlBD@#6q}q(q#A#`aLvmUg1C*SWM$1G{yiseaOS;v~581O)9kcrOeF~Vm zH(|=%nPbG}=E1O}K(NlFX@U@f&O57v)U&ZBFb4ldM)9K|$Xk+LxTD-Z(rp#~`o(Cb z@w8vYG@c@Ed<BW~?Nuz#5s`MLs<wF@DPe&SAURtHV@|nBl<<I~a>6sK=BpPp-#|h0 z4N1s3?kMF{aNuRj;j_jX3W$3Mmh2oDx~L#Slo@_bq;5ZcTgi>2dhSm&dAF%c%Qsw^ zw54{QDG?9?gsgISendJ{g|wyijIn^DOMTD+lzQ6&#w;|xF&coSF@(~PmM7r)+Jd#^ zPZP+lE!jb%wgmW5C%DG|6;#re15#b4nTGJYq%F10OIczBc-Xb&7#RT=9_3#Q3XH%A z(X86CE}yQTEr(rOjwQTFTaM<mrM(FBOmRQmeH1QcKe0_ZC@37XE%9wwhPKqB*mz_m zVYV<3g0m~Y*S2wEJHNzar!H#K->{`Lrxa5VZ4d^K(4!yU5S19`*NF=ES?;-2WHezW zi}=Ut<KfhKg&&OW*=KIb*AhEC&kTzRKRlG6@O{zwgYFE9JTDCTh%~&=!0?b6?sv4Q zF*LNPaR_&!%<+!%uGz3m&Vk<VLoFW!+q7xRGNhW@ogfCXJ0WBstAoY@t<J+~;BIxS zM~D*{QRt_hj|zP5@MFFv5>>qqv8k$uLWS>#!9ux`rEEjsX7bp6QkCHLZIld<8v9b) zU1P9G4LS#p6_wNP(;%J4_LZbBkjH-ZKnQE$h3v2$<*`Q+6wYH-=dwSdnnN3c@Fvd; zqj#?g*@RMlQ&N_XQq;IHjWX<R<u+FU+sHh1qLIgc@QGLo8}Qp3`7!Xzvnb85`kKV` zu`~!*ns&yB4?<Hm7ZlORl_qizV7RyuwtdT)%Q^%Fx8!%{rt&iUn+P}Zdu-r?RFrs( zNicFJ$qrDM1E@nbm!ce!XcQFXjIY!VB4$A>jPN{k{2jnl7iF>plf8%wutMm=3bsn? zf+)mZkU7W)0h9dGG5_wCeBO)QNmx7kthgZXqx@0CiS&7rBjumk0iez9XU5L;C?H&* zyq}XGae23-m&ZZg$=6gR5p=nX0iiqLGK$CJh8t3;i2w7_sQsuBOEw4;Oq5MDdq?S= zv}E`2QY_j1agHa!;@Rmf_!l=G>b#L9OM3U%lmB?yh|d1SX(RjYyWjr%>%5Tz4nV;~ zKNj#XETC1ZealoXkq3<6gps3;KIT{)FQSu0p87N#D+2lRorz1!>tVMS*2A<haWEYc zIK)E&tGST*rh0tE*TeV<H-|%rXF8U-0#g&)w%fEgX45&G(1VSt5PNK1<X%-d)ot1} z$`j2sccY5zhrm)ffT9E72Z#_>j1e@bt+I)IR=?R4cOvk)2`ZmPJZ;{{;u7>}2Qi>e zj4^)Jv_sGo)D8xNR7C3YywvCA?aP_qc!Dsonv?Lh@KS(UYhW;vW3hG@wizQ7!tJo_ zfFw@MFgqCy&!}37O<IqGSv3^~v;bO6<$X#VY8Q-D;9NfepE?HJTbYUuqFFoiJA`IN z<XPE4inkwg8z@g=9B9`5e9kL4HCUx7b)M{(q`^AbkG2}tYcc)k1nJlIbt5)Z?Pl6M z>lmV91OV>R(JDvUqiaA_KDtKT=H)ey>!QKGEcNV#CGj~B1e%&D1!AXx0xD2ckr-Nq z@p!@R)x@3ciRLLdoVw6GU**uR%0bU{BFtR`{ZsK9GYLMr(xG3uDCoDAptp(1PC?Jf z2N8)P35I+KT4#*~<ZL$vH_3<nvx7}fbHn^t!q`PLRkd-PzkntFX@X9m!{@&@&|T4? zcjS~RHiNsY))y$NpHC=pSv`1OS!E$S%|^(rD;F=T*QP#QRyi{vQ5P$#Cjt_lkZtl( zl2wHfpFrm6#M}~D&fJL)k<eNhiyyG+D_7|hGo){9OnE1<%DU^}zAo&83k;U_JDvLj zoAL|fW4euD<%%3pT@-VEEn&q)%j%CCa}sQYJym;rF6Iy@ta5-oNMt=r9;!8GJ%7fk zqtE@!T;D-C8CE+$ZJSo9HWeXazGf%u4s=1acF7mV;Zyd5ik8Id>aBf?$i};g<AV;R z;%KvcD++<FX2GK@_I5YF&^}LZRO@ZMR$B_%2XP=BSz7UW2a`+Sc(g65-T@qj{af(Q z9fnk=0Aq0*kBrVzHtb}<$aCvSZ6X+XJL)A)3b{Ru4b6Z<Lo?tZztciOhlU=*EFr${ zzjd7%WAO%;n@~@4swI^1<js2hn=!k8nr0p}iSFNwUx=yTVGl;!;lccFLKAkXVIt{Q z0H3?`%4fu9<8E{1G~%U|;Rz+7;R3+*cWjZEVQ0UfY&1Lqgy;%yl{}+}XE%|=GY7Pt zzEOTrIYE=$iL>kR^$E*Gu!*gC^X6B@jTvpqGvZ#7g2RLpP0<%u{P|aVh~TLMC%lL$ zl2=|YyEwrd<5?u$;K>Bp7Kf~ybVC4O&w22o3`gFrgSas-O3EW5VX32&PI@yWoL54E z?MImf2|P3!Lbzxo1ga8@yzemw65cT@5(vN?NT8dE<Z^N;r3plF3&3g>R9LtXgsD-o z8s4GC=Yhw54kX_INo^YquWJ&7MR=Kh$MT3bB)#LsJ2?Wx87rvhzkL~#-;0wxevkNy z-{aGiaX_Ljv+=8|c?x6SLn&Y4qC{e!wU#$C2p_{~)sk&O!TBu|S2+XDwh!F83>vj( zQ5v;%_2c(nVY;W2C3}`&x>qcRUp(}k$3`A~%rVCt8_Uf+9rL;qPdW)_MOsOG<w>F# z{_~#CL;yDh%?^w-ZJUyqUr3DlfsxBSs8TwcaFZ)(yylvXuVLc~b<8l%1$T9`78-_^ zRx##+zbsM1zpG)7`F9PX)BL*<>B{_DMUgejSz_|s8c8x1;IQVZSqRrZSSD@)N>q^| zwlO^z<X<E&5A!-=4#Q#H#Ah=b^l>X*g4@`=#?I`d6EM+6yd~gsoEjn*&@)jXzzZq` zAI?dbINz2=h;L;%goR`#fIgo?0b0w9%AV^42cnBy5ePMP*lBz|3sLc;dCyDTxvTu# zd0l0m1fL0&kW{YBhYo|EK2)eRXEx3PY(vnDu-vxZDjEY=VI(vFx!}$lhzk;!&L61% ziT5;4_-R6P0HgHwyPCY6-PdAo%eQ+HhJ;)KjHO9Y@{7~!jw4&#hi(_FS7u+8H-n|b z`YpEK8PN)~yeN4wYWYNTraS-=-{Q1*nzq#0tB5~~xEAn-z%5)pAQJCNbIr;Rd?;2+ zaJx8WhA1(@`_mvlY<y?g0KqQ0N$CUZDnyDooHH3&tcuH8-cSAmd&MJS@FE5d!{a9f z4jL5)>1*;P_{NZ~4XOt^6%@k3%F=i4$tVccZ29p~+1NZ*>^FzDl+1x=2JsAHoqU+{ zFb4^2D;C7}c}cjy%~`}LK0+~c^o<(&EVq%L2=<;LjdsZPuUd1XD}sJ&`c}n+{EsB$ zds61p08gXMTqSM`EHWbmIq6%9_+0_~THq<-(m5>Q^87q5&Hqg}6M8UZfgVH<AmEPO z33nk`m4S?vq+=sD@RWH*o9uE^4(P`tN(}Hf7e)Czw5CrIAxo5x(32S#M|or{GU?S) z92uxlWQ$iR_|kS5Vx+zEMxZ@4J#HKA`4ZF3^GfX#PW7_adz7dTUNT*1^LYZ$AF+x% z=9-;=%Ssl=XTr@cdMr3`L=e4^9TdHh#faWWV4oc!z$ljf8SuM_)8S<{dR(*9C6tiU zXBTy}FU>YMem#a2tGSxY7UVV1$i>x3m;`bx3FO;*sB`wTTBRFE(e=vn{{bOVEz*d1 z?|xcX-M}b8TTU|Rx>S+DirT)4&pZe3KRHkW*&QD5F=baY0j95w&5h*&$g~S6*6BUS z<jRat4wFe$^3Q*FGoAtY_a?Kt0E)(P1IJ<!w~)d?W}d}oi3u~%ZZV}a;ch(P&KLa- z7CXBF1CnCa1ngZ@ase_Du#^#TJpqj2xk(_Hzzqn|8mLL5v|VG)n9a!xh(q2Dx`vQo z@l$FF-*B(YvD(H}K0_6I>gEaKA?J;ecW?o(#-AmKm8Hxuo~Dj~cuw+KK%xL;ATOa+ zyq`>LS!gUf0xOeS<X#6{>>SVEn&{>{@4c|Ab>b5hG1qc?p63b3JiM;Ly$n7|KBq}P zsN!AE^mWtB^rHZ@J2_1?K-m208Xz=jumPE-$+KDOuO~!#g0_|1@C0qzg~-+J(TxM1 zm`&+6_zYeOffKDJ%x2CNsoh)HgLp>M@6i|Ymm0agY$1V;ap!s+6fd)GJkD<MUD<pI z6ZU#k+f_<7su88DxukVL7&_NMDJ!dU&p=g5qi1><#)B%MAw(cwI3>D+T4}C6zLl`+ z>cir`pazX@R}PT?Dk544gggWJ4I?GXp>qKTfa(q;RY=fXm`c8d%Q*&hSGARbj>QOE zeoJ=hxtl}Cj^hYp;y41IkY{X6NeO-@jbgLy17v{!p_6~=FrWe7Y!9GaQXvXBE3gw) zwp*B@btoyhd|$eW3v;-)!5q2=W5SRIb5|Nn!-6;fFT4q*2r{QPr%P|9W$~*RonEq= zVkwA(JhP>x!t()JTX{YpwvBdnq3~|ELfY6bs^#z8meGT`TNEqZ%Taq5*qWv6!&D*A z&Fs!vJp{T>Xc^+{gpss17%aJEoP;3G&t=oYMV3K@Gb&h|wa5f(<$9vypz5DHk=KHA z#TwNZXa;?<q4VNNS71oD#R=nYuSXDl#bpJ04U3rqjbXv%lv;vo0<+d3WYIdi>Y&Q< zaE8Z;AH5x9n`xstXUy_m$h=%9&5n-O59P<VW{hZuMZ$WMkQ#;;cwf4K+!thuL(7d6 z;@04GV7?txbY{nMB@BEpVc=d%pE3Vqr6~|;=T!}psWm=mX6<&=mSbd=RXE=OpeYoW z?w}opE`>v-XabK>qv>x|+2!tK${y!jiDx&Pg~IZYXu+w{6L7UdE+Jc5!gD0EZ7X<& zV9;S1E}0>PDuO#o?GH;r9k&jD5WL!mQFQAxHZx1}jv|oC7sHy7s=9=w@VkA1mM~E5 zV=-P!<jZ=p>Xxi}ZuVG<j`83egHdyNoJ(q)xKR5sqPE^(jPwq6fw~p9aXk_8szk^~ zm&gg{SH#LsZ$-s${)X<QRnP$hXBaPQ@n1|VmvRGDI~*8WbK6J*0_Tmx>B%m8+nLLH zGahNU_h$TfB8}RyfR;h?o^0)zek<z<H@bA=OUO*Km(nYYn)ifH^<>9M7`R~0usH+r z{%J1h^<;Oqa8kprpbr-!D;9p9+7l{st{Nq+t9Q?TP^YyPsM9tav`Rf{TC}j|{$Omm zrw*;U7DWYf1eFm{whHD?!#)aEtF`eaYlz=3sMZtlcx^nWR<5oQhg|IN%HrI-AvALt zRJlEjb4eE+PxSK9rxCsM>BGAUi|~TK%V4T1dNaMb@m)kVq@dt`%d41x9*1nTE1=5C z)7V*+Q*q->R2=hfq!JE5H^%`M%(zTsIvPcWCzo;uL%SwvHQEHEzsO6DvO@Qtol;hc z{>Fv%h(4DUz8+;o-i^zOq#{2iXrI8&e|W5on4_^`sG%ckV0GFx29sgegogw1`|$L0 z1<qsOd`cVLX)k1C2nCiu9rl8br}k=)`S+!9e8MK)F`I>QF6HgxzyhT9S#;D6Mqikp z8}0yfqc(mr?$UC#W3v*~sD@P84AJFyf*otc@dwK~;i&4F>X|5nqkBka2NS5CUTz3^ zQkcm~YU{Ez1h06<Z^Xc8X$V}luWDzk$UTPch?Y?}2;f}I?M1L@<X!>k%15wNEAGN( zNznExj(fzwmUT6<)RDN)@}QPkP@_>|wsv&CNs8dklBG-)r*Vv=aX3p^vNvoo)vp|J zCq*YA9d$7o^JzvNa@dLjiyaSeXzIGkEXL?1tR6?J`l$P)pG(PN#KDyy9ZwRqSrM>{ ziByh0VT!?V*%;HfKApzpEM`f`7}xA9#yWzShhVBe`S`!=y$hI~RhcHb|9@AiDydv5 z3KA7`SAh}~F|<UZ#*n?6Zqq$ZPi%drIWu$4<UFUJ9?tYU=Wu3vPUCdY4XK0**Ww<z zSqey6iCrpasi1{ij38PnYP=VU8rxe`)Tk)uec$g}YyJEG_pTHHx@Vp<*$>qJuYX;> z^{sDxxAm>H807&02MF`#Iy_6d1=WRkEw*1K@eii<T|<jv4WlThzA=^tE&<`>=+0Qg zC@RFxjo1`L-HDw?!c!h~BX)kHi=3ny;}+PL`Dp!PsV`3JtRm7nC^w2|N#P=mX#BDe zs`5-owtt=&*<KP8GVeds@UIdI^9<bBp?^mrP?rC6ySNUW(G}x}nGJ@7Mayzs6)UR{ zgyAlam+Pi+UNwH|M*M36X}+YouZv`yD@n#bME2%BlZ;{#`+e$xNk~GGDVW^hnJi6= zcrUp_@wbumVsd9OUb(mx_3$zQl;zHNI|AoS!q&!|NmS%c5z?yMp>W|A*e-I1G9DM^ zVanOTGOtXJ>xyz`74q5A5=al>Jq4x^CMcOgc~VZKemGO0`Vk4a!n6U$B1vf|HHN#& zRHP84`q6zVG9H<_NVloTZ)?ze3~VZoLRsWom7w=&$l|@BFNz#sViH8e5#K9fLf8=x z^<nU^j1n3yzEp#4%Lw-cGKjxjECs%Q0B;2}7tJ<cx?-TdEy3#S&#tck#en_ED0(4U zq%wrcC!MmXd+{9xYoBZzsyCgVm2l8Jx@5q+On@FJ2u|BMPRBb<b9k}33eHpTol7Jx zILR1kLq}m*X7FXfd3)-i&xvS)cNLu7`e=xyQCSw83{>SpNEgA$rJxZPoD>AlH^Irr z=M@F#UG%2QNGFlNZCRKkMU9|5*=JJ6e3Hzs*=Uj|kP(-SDHP$J;Kw)8l9OD=nuicU zlX&~OsnWg(Yy&aF!R^JRiX;fKTCnF}Z|a|W4(#Cbbx|`Q-H)^B=y&wVAgv7qITIFw zNhEmZ0(4N?4;QRYRluSmM!yT;FyI(_`dK2E&IEje5+<Itro+)Og%Y;vp`npq*-i;( z;8^h0bj5zf)nRi<JG>P{Y`zYU$Dw*?E)9h%Gl&?oNyeHIsJ0DA(|!^4sTc%Y2N%Vj zFGTV5HwK}O=|VZJI+&Xo)VZ4jk70lZmpNn;bhw@IEnvK&(|$Rj(wUDrmkZ2Ct@#~k z!AgSKBJMNp%J^<>gb>h+f$fFRuIF(VOIHl{5F_8>sP<OrblyNOolYOAku6w~d^;hi zn?hHS=aU8g+!S948r{T^|4hCL>T}TDHrHx#*OSf*<Y9q~h4Z5VvE8X~?V9a#YPjp- z1uwu>C)?+wZBE$bw012O0$0-ZcTv(FDJf~ZJGZ&tl(d$pr)}4zQRR|`qOe_Bq+hLR zW-vs}?@>FbiQ48KNQtP{*DVX<UETZ9afC?g%~)4%4&o~VM;HiY1PgJPE19Q5bV;`T zM8(|5N46^Aj+tb9HcTlpwX*JUK|A(*+ez}$neGAEAI&K}d%P!1Mw&S?4Gz?zDkckC zwPRgGF`rn1>AU5*h`wO(ACj1vHHrr9Wspui3lNRcnbD%0_k*ors{u{b>HT30E22__ zS>h!i1gx;HNhbmI5GoE@D?*ozTOKG!VPBa#?6GL{1yK(Ic;kbk+VkYE6F8r@NtN_O zW!anY+#3<Yq*SR6qlnxE61!pMJ-0aV#$4$glNc11b1lu*lHqPfi^Ku{YN_A#T3g97 z@m=&6Nh6Gy!bmuS)Pj6vWUombeasF$GoKP<O3>8k0m42k4#K!3i1S{Zt8Y$v%z<t} zim=!j>npr@p?#hZWoXF3fCoebw`R_Jo@bSGRTWBT#)I0fPcVDzukGb3QllVkr`TTt z>xk<PEC@(WJO(XsrG~4cM8Rmui8qSx*w+<|Df%(!z3Lbgn?A)sNx<KjfOo|)I=`qm zR+w**imS#H{Xg8t)y0@1wZkPQ%I6w`-Fe&O<IzQ9iVkYsPQwB2^soe$0K`@Z=iR9v zt|vnOLk*C!ktKlm_?(=0I{1+1D6qOVW+~COTWVftE3qHpFX$_A@TXF{mskuV>*G|! z{0BFV8Q+&O`V<Zs0n|S2H}eTRhnq+pbmv-)zV)?JwH3~^FwE(&Il<;M@}FEg)uyu1 zje?h?n6Yn@=vlC#U~$=ckcBgIF3Wq$YXsmO!vGC5d88jVYH+Sj5HC=IriGWFs}nC~ zgcx32%ZS~*Gj-STVjDk9>oHC^DHTV66J^jJ#hWI0xQ*{{gbjv>Q`=4UacU)0>pIP% z0u-#p;>2v^`Oal;=w@jk?n;ndY9nU*!$2KmG2q&=7?uyo<;I;Fk$aUoy`bjqPR&hN zbGG>-H7AQ?sWr#m9R^=}>KNg{U_1my*v3p)AS3)l>Z&tBQ&pcFBkb;Ud~kjhRXY=V zsi^w+gjCc|r=E3FQDyc7?xH2O%zccX9e_qU^b`dgK*JoV)r!8s@)^`z3<CxA2qf5F zQWqIt819cCEuY!y)A~dm^DIRfMm-)K<g;`oe+FU5*~)apJo6dKA2mjv-qV_y4JYDA zc!t1KlSFK=G&RTC5kx-$(yl-YOq^m6#m>-GWYj!OP=G?gYCA+8bGh86v{2{jJ4(%+ zmzujuk;%&_Gft>)^eFe!!vY?cG?0EeJyFu6xF>{lj&h4KJ&5GXu(t|Jb6qc?sH+Al zTy?ElQ$OU21f)H}*(9Duc~Vi4UtOG_bisibxd8}`>HbkWi;TWITe8QBr566VU4kq2 z%r@0OvRJEYSenmqe>zsNr5+mB6UffIyMnx!o9=PVIw2n<<aV$UR|{z$FQ!N(p4cRq z829fYd61<BvFeO<F))F}zKYLG*csFq9F-kCx}^0M+Tv8{7<A;|hVG3lm5w~XVP7o# zSl|U#+gPfBQd}Ij^8i!{d{;wkd8o0J@Gd31OQlC~y^ibPOBzFjIJAnLti1gbGG+n8 zXA9zY_G3yPdWS0}>(Y+NiY9u@%O95JB?SZyeEjRt>^Mj+5}FG!)3Nc+*e!gD6UkjZ zNywesj+K7SEF^O}tT7sk2F^NDiD<6iq-6>}I=%h&sxa-?(CVN&;n_Kz%qi_D4ayS3 zKH@r5*jEQQ(V1@gcmr1?ycQjV(ZIkX)PkrOoOf9>Mxzdf7jd2NBDND=z;_M{McWgK z{B|poR>fYcjmf*i3AS^9%-PJzwby#o6=|Bm8yJ>NAT8`F5HV?+Z$ONUPGs1uVQal} zx_BnoamBGz_dNlS#GS2VxK>*l<nh!4Kd*_~zvEbyopAve^5U{Zy)#wimoZ@~p{gXh z3)hvff-)@UrwT5&;6u(f;$$Rm()|!5;(aTgMjs6(-KjPFOEQw~7yh%;XO=H7UfJ+$ z{j+-;x&-1i+j(`@`GL}0wP3uu&sEG!+WkfLeQrAzarVt3%m`v>m?At5LmPZqv0(Vy zFA2(sKu`?%*Z?eX1cTG_z=CGM@Qe!bH}mjt6^(YHndbxGm;(x*=E4K*LrpKvGE6qi zGODxy)Af56LPbFY5h#Sx!9>N*_Bq?x-kSVCaj$ovB?(vM70niDGj{tOc8<)kfgIQg z94Es+Q1vaeg+YLJG+neRbQ)bSHzs-BlsOlg?Rr;c0+84-P&PY;yfR#@BPHN2NMmxN z0cTq+K&vI-1QsztDQA0P$RKSG1=^4g9xcm%<3^<2i-rQDi%PU`acb9T0ot0K69&tN zV*(#oxzI$fLa^Lg?Xd@G%ngnVz&h)13<SA`l@<{ag&RT<t&Kcnrw!bxFBv~Dd13}t z8p>S>0C!+pa3k0g?Ngzw?cQqGaMFx+(U!}dU}eK8e1hRoTzerrYY?Mo7-ig!qDF{i zSfBK1Jd5x{@(;KRpCx6^!u19zQzXpWi-g%>4JvPG>~BiFal*7M2k?ZcC+LAl6Fur{ z()$9t)n*?S3XnuVcq|?XO%w(yAi+8Lf!+XLsm)tbn@(@6LA=ptftuW?ogvmiBOk-h z3(zE2FEol3qIy@V+=&XB9kX_&55^yHt<z300MHENL|5o|<fJ+C$<fOD6EIFIX6+iS zXr+~liBu8M|1+r`3hQUt5vvSdr1Ieh--R_0L|HbuBuW9za#KP5Ns=h4LT3s0a{P2G z!p(ifF7r-wJ)L0nsDD!cimJ{!Q+ohoTz!MTG@R~FrVRefohbd7w|nqj#{#cjh-gOe zP(u}lwTJ`^pMh84eGC48SSRs+k-am3(>pg+&<zRBEDHu9^3Z}9NGg<JK}b|{hRwK1 z4^m<dmC`UHG>&+-EFP>%tm-38U>D@R51~Z2A59qYAp8_c|F-E2f_(W?WZLE%|L5<2 zV&MO;7=YS(-J)78%aYzIeO1b;EgB-?iw9`nez9XL-noH@XB?4;f5#n%?IT(|^w{T@ zt~r^jhd4?j9;Cs5FZ^rqG!2}m@yD-y?WRqe{sjO2^k2O0U;Y{X{VThK?2TQnA^R&{ zM8<#rk^lZ0H<IZ}vj68l|Chh{umA7gp7o|Tz3IRG9sX_IdN%&O`OR;6OFKIUzjL!~ z*;uwc+mW4@jb}Tv^Ro-G3$u%|i?d6ziR{wsvh4EgitNhls_g1)SN7KIn(SKquEXzo z{cgzKmQCXK_Us+_-I(2k-_6-O@w+A4o&A0My(@cH_U`Of{q|(<>G=IaHkG|Mdmn!9 z_up;VZQ1SkeIWZFe$)Q@Q1+qh!}xtfzdN!!vOBYnW*^ID^t&tjcy@PoPj+v1U-pS? zZ}!RT{_KJ5Q`v+5`*il1Y*xR|W}n0F^Zt7%`$G1`>`U1`|9v_8O7_+G`&#z(>>GvO zH#7d`;_u<?TiLe@zeh6uzLR}7`(Cy``+oM1*$=WGW<S#J$JtNxJCND$rx|}g%YL3c zn*AdCW%jG=VD{_mH}Ut|?6=ut+3&L7XOH98&fEDp@po=+zis)pd@SFt-;Vq||BdJT z?ZoeV{VvG)yD+~fzc{}npU5xGFUv2_ugI^=ugb5^cj5Qe{2KpVn_rh-uip*%+whyr z-|oM6<ow;J-%a_=_`Nf~1;5?--{beL{N4V$HQ$rJC;tcirt<gZ@5|qh-);Hr`3Le3 z=F|Cy@(<@9iN8DYJM)j`AIoR*yYi3ccjx!$cW-`Q{)v2V{>l9Q{DJ&a_&u0^I{!>Q zi{EGS&*h(wzlZWK<X_Ccl<&*GoPQ<%YW_9-zMg+0|7JdyKb(In|91X}e&5Nzn}1Kg z{W*W%&;K$1LH@)1NBNKQpX3MfpXNWyf1W>@|H6O2%zu?1)bH2%Z}9uA{~pWv`<;Hj z&mYIHT|WoEbL-pi8>?@}Z%6$+|Bb^I9Ix-x@BI1&_+41P2)~Q#m*6*1zqEc?{qp)1 z^(*UF)vvDas=rmgYwFk5ud82A;qRdZ2bWdt+(%1x?%SBZd2o3$bXS-cj=}6VP%VJJ zck;1DNrTwljurViCTdvf29<qiGSoo!FQ<aFf2kDv8CsmJ3A1dFr8OQNq3>9(Xvny- zcK{{br-8%L_<~AnfT;aY`KqZM6^O3Gk*z&jgN8{s`(lgK`P7y!A3-yfJ(P4zU#mSf zRH(;Yv1>2tyrHUXrY-DwSQS*#+KU)^hq{B!+g=uJUMvaWCF-*i=_RSNJ5$GgYUk9y zm173uob{jqUmK50bmvzJ?6Ly83I(FB8xN&mc<<HfUL5b}m)svbW$qWih?WTA!qljr zS$UP}!rtKJfYONoB%q7UQtvKK<-B)S5ZD3@9qdbl(rM|&6%3jSMN8L+BsFqLYQ&d$ zE;o$8eDRi|_Y<^O@`(VLgBWm-of#umyTw0PtEr`l)Y3M)U+pqbVYDk`Z<w1E_uq9o zlrBw0-QGh{oytj*gZ}qRjrh>!0XTL8<eU<_O1InCc$s;z3*Tj594K6w76)|3=H_Z0 zbJ&`zOsgvsR6fx!DRc;?k-Frw2`lgl^QGVa;t1^i(j9J&Oi)Gvpon1t#0deAVKMuQ z9K(Ex!+bs{(Y+Mh+wfZE-r1S<$4ndVO#36IO<14T_|cAgmxw*>%?j_W_BrQ{jZaL@ zv~5c$W*b{aVdO56{#z4@-f1q<3w^$+NSL6AI$9xe3#TI<wAYb3oPD6Naoq8Ka_x_A zc`n%oIm{eF?b3%o!UtzL*xFn8@LGI;1Cd7OOs2(?^R4*_bUmDIdT@DH-x^2>=aa<{ zg1J5qA;3U_ymXMxf+yK^2@O8UcFsG=W`1>)PbyAd8<qvmvg=b*KFh|fDW6)54~A5W z9Px&f-=`My<5VqMAj1|uT_Ps)dqS6p$pW8qrx(1Lz`TwE=%;74{sv4)E<EiJjT=E> zm__@?BYiv4lVFKVOHpeb_zbKBBjuExfW9#S?f4vfy6|~ZYRd7sZC-rdobo$9nZJn7 zZkRJ#rr+DO1Nx>&_lh{=V|xW$;-Cb~bZk3*F)-Oiy|%atCmjM>Fc3@RP2&#V133pn z3$9mZ$ozO7d@}n`vrP#6h1?Aey}7J0fckt%R`-zO$iDsc#^Msi?5Xq+m1|M-3~UhQ z;^^iPs76?Kq-U19l7ElJ;o4lH%R?XY%v;b^X4XF94wp<(T-h~VY2<HDjk~jr^#LzM z&+I;T6LllfgiC}TVQrZ2`|CW%&~`V&Q{(_nFA>plHQ_hb0c>W@8cWvKPQxGJ7+W{c z#k*?Aa*zo24ags7!msk7=60g~m#8ls6?&B?P<2e5x;J&o1^q9u%n>A`2@=ZUAVYK~ z<)djt!4%mUATyqgSeAPGB&ADIZ=Y?4R9Vh3EGv3FVsHN37)85USh<E#4nI@7{tYx1 zDMr$6e0is%dcGAD<SmJdPbNgTqxz>DT{bq7H-Agy{R9c<20Pn;E0qVA7cluis=zVH z{GnI6iZJw$eps<GAr9&;vnl$Iv*IAweWR{k&vG<>Y}gLEPIs-U>VXX_NNKDeOc1&U z_D6&;Y%nmLVYTUA(*4)CHtxOPOsS~fI``*?5yUo`2*z_J5k@pS%7ih~jWA|F7;LW% zr*uG{Ghr%x;55FO7PF=!L%KQ!9U*g~pO|DzWeAEHQEqyW!ur1-X&9GD&a1VV4pgGw zX$O-KaTze05xY!n30ll7h6}4FQH$YwRg2k;LL3NuEs^CzY0O-U`JRp0q>2PBhKvMc zIkkj?=r7Yt;CSAagMz+;DeX&FH1Ogo77&daM@#Y^9ax~e|6+pe9Mh`N5W8XWUh#cY zl67&_Bfz)mM>81(wKidVTZ3Rq7B@nljbS7FQ<<Vjbo$%3l;`ByX$Sxa<sJru`wi#D z92>+pOi{gmlkbV*zm_2MIjIa`9vZSV2^+d`+L_I-xajx|ht1}wF&isj>v<sZeV`~{ zJrX#suIqLJ>mvyYSJuC7cmgdHN*`D*SuNzZW+uwE{dX$0e63guu!DopACn)Uz`rF& zzDHDjRsG={-rYBRQSoTV12Q9x!1u~5vFCm0B2;_?dE!bru|7OAGf&`UIx~mU7@0XS zaYLsX{}CJiG8%^%t~Y<qw=WU!I0%@27<O=aJE`tbA|E+YmLjLGLwezaYR#hdLG_ji z(@1bG0X;=uKfKp0aODn%+!Tr9(S%S}m%a$Nj1_=;nO;yYA7uVZFI7F#@eAIo<s4L; zUkGCTDf{wJ=*#k3T0l~b@RnuO2aAiUKn<~}j8s7_zY-E@A574@y!t#Q#XW5Bvjjww zBH_>mgj${p9;~f?n!MpN2K7E{3Dt0IqohNkii)YUhl-y*txpKP1Cqhm0-u}4MNZ^% zxm#;|ukyJG4ikrKQJK%3drtIRIiGuwfB{n~QsQ$5i+rv<l=?)nqFvDZBK!70=$mCY ze4Py8T0+j1M9%%hz!LJJoqYWyUcuP<-mnK+9M>mD___$MOD$Gz8D9JGx*Qwi@O1^x zu|Rnml*_O~b*U`K6$mF-PLt8p+5JmKmY~=Ya>@(X$|u<9VzAT$OSG(eArtQtBxoAB zE@HyHOz0cIX#-Sm_dzEYWcYjuKi?fHnX^iOsoK(ys|)}}u1lG47Zczmvr6_Z;i(k% z`Eq{#Sg2&yD!GD*A5|H26P0i`@tu6{$2joiBNzq%#X4i!hi!Ca4Er@6-Hc&@F99A& zcYKAf{L(6ZE;zF7Li`26_z;_ASYxf?$9ZcaFrV$njM+|%f;^xl3t3PdRH>%_91MPH z+1Ih|Y19oC#v?lF%?~i;1MEZPOrz^lLswb^y7EPKCjlK~4k_HdU477-T>kuwwcpOZ z$m4KUkk}o<yP#kdG-2s&m@<?r?w6QDi!rp!)6T58(~1lSY+cL;kkR9T=frnzN!@dy zf13@Z3w`1qI+v!)?d-?<tsj&->bjy3#Dva*mJ96eVXpTn7fgQM?)pBaOmTQxeX=8A z87V<b=}gtFq<>H;So-8Pf!&7}xvIj8Tvg!(a!O@FQ+qU!U>$Rz=VUrXjNseCBOTtG zP~>{H8i<jC7=swzAVlEi!Gh6+SrXJ&nAW6A?PI5%t)AaTWW3w33UgtWvI?+{1G_Y? z;e@mh2c~26%3Aks_0a@)bV3pW^3HMJRX9sU8}D#V>MRxsL!<iLL>7Y_1UkoyWC{R4 zQ`CY<Zi!qzm~i15*ezB*DoqDMJ^G8-iRNAG;LREnzz<JYy!|+M!a!l2uA~p8W_)(P z6Xi`gGbQbbdCfkO>T@rT;E9tJeGF<Y@le*Hfw&^|1gheEvh;+YJ5o#T<hhAG54Bf% zdS}Y-J!Sr)lc$d%*+Ql{&5Th1hbE>l;}CRJTlx-CkRp>YdgOB0{8L-{cBG2KJ;=AW z5tLHrtTU+t_a}gUZwnzR6**4M@_+}!s6DVhVZ}H2#5LXr*Q?+?Kp>5n_5$kY!E0sO zg76uZyp8}eSnRWWyXJ{lHgGT(w5s_AWj6K6nH(BQgF?$jW+mpqUK)ZPKxOdTv40N{ zyj|YSlDgMva}_BCeXhDDKA)g*Rqtx3dS7P)R}w6qbtca66;A@=bPoI_rd&ZN+{A6d zK~-CN8EJvIHiKB@E_GNBC6YBRhxTE2?a9|tPdqa3;sS<>qT^cx^Fn?Mlh~MCVKU2< zfjLm3Pa~VcKnMJC_LYhEn+YHv=nKjNO-1jkgywvKT5gRLP-qN;F<xvC@4iJY&6tN% zqhn?_@5Fejjq?^x&rg8Id^<Jhy+k{m<SeD~yX@wU!iYel4*|)YG+RM(*Wvz7YS#&O zJ39JfwzAC#m$Rp-sd6r<QEE$Jh!276BBIM9`;Vz@=c{Z1VD?yy_(96=eAOWG#R!(H z&deXBLQc=;6tEZQ83eSSeSSO}Y6``_&j5+jqAlizo^W2ZFFc~8bNw_m^HU=j)W9l2 zF{&$N1U#Awc{Jf;Dirl36!Papn!l<P`i-^JwfnzGxxM=b*)yuTV&rD$0u9cMv;p{+ zst~*#?pk7~yx{t~RH+XHN;vz1lwhA{>ylVSJ>&77rB+d&LQ4&3dl%7*{HVcLU0kAk zwC%jQ-0$bsbF|lGF;0s{gykRxQe^AuR(p}&<?rQ~93Y1Zswu~*$SrLA68g_OH(J52 zcKnRME>!KnC14A7-i@cGe181Yn(8q>cBcG3EX?nEM=(&JWFatKn&d%k8k?XQegKH1 zxM^O-w;yLkXCwv`^wNgjD2pQza*QzcEwTwomnKMj9R^i8lC<_rurTM&VQW9sAd(_Q z0y&_QsJw<Bf8c-txO(#jrhK0@d2TIev?e=TGd9U0Y!PnC7L=>NdR>CmIj>qsTu7u7 zIUXPvbnhW7-|GY&_Mz$jH}m6n4fMX|t$cf=05;B}kQ-tYW`h<H5b>fM=otxelg*(? zjgmVz`_f8E7)qcdJn9y#QuIX;5k|!#(u%qGt_lLaZG)A}MYB96sROzmwTavVmQTXP z!@>oY`NIr?3Md^M3H0p+i&JC%O=V_ZCqZ4Dq;0wlWBg1ru0X#pLFb;?Zy0oF2E2() zu$sLbpfJ9{`FQ}*5S7)C+c+9uNBcdZkM>H#waT1$x&%$#UIFW?MX=!NT@WxIBrsoz z$Y5v`v=#EgRn)hM7#N2gu3&@7>L16X44tK+2ooC0%_6Cd0>C?<IvE?%@cQ|@+MkI& znA-{E)2VN65bgs*=)K_hVRqt6)(HSSC2K~VSQmz;Y~fCc#abt#g*ydJLvtHt+4FTp zpgvLo>I?G%bti#(s2fnc;aN0uSU{~I*4lo&%p^#>ImXHR*^cR*CayVk-D$Mlb0!8> z^qV_WSX&G<AnJB{cw!+CcPDJQl$tg2G;7W#rp<5CS&4I?{TNk5?=}cTte-3t<AUcz zEcc|ATu6P!TIwOB?oIh!NFjfLxWrKQa_~NFgNMf9F9~{Qm=YZqXYCbGC2E3SMEa^> z6HuG9dB6q=$5xx8T~2uBfkLE%e@wmjJr_alCj`6{oD3VAoy4m@O8@;QBVo;g=Q|^+ z+j6Erq&|WL&A_5e%_`{XVd>X&%YfjXO9`J%SaUUfFEmvw`oP0%9fGd3#<vccPXPxK zL9If^=xm2m7r|#ice=iga`(nAlyoQPGK@O~%CU5SphFb1!;sEnv3pd^vh>(d1;PFe z4&dF$3c20i{4U?_GO}RR;@d%VL5kUQ6p2xI7>St#hqtVQ+`gF*;hKfl3)+l(@1WA4 zP8-sQ0pEK!C$iAqyKC8>k9G8?QQko~(CFtX(T~}KkB0vIl5clde;AYcB>MA{N`JiG z!|l(9JNhFIk_JmteY#^IOUpz)zYjInf1QAJRp~>9gfQ2E37&w($*OAy!n_4*LpzQs z$hZdN7PN4uv=iz;dwSt5=wYStF=BdJUE=YA(B#d5%D-XK1bu@wum^#BfWa6a3;<h` zA3C-~OutS2aWC)(tv{;^6L+0G19j0OtZBvQWDyw;=OM?;xI0r|O(Fx;EP)GfU|=A= zA>3RwXeXoL;6!$*qM!VpUB2DAj4+~IeSX5CM=F+uR#6>@k~F}!t4}vZq|k>r``8=C zh?8_l6-DzWAT}Yh8P&1J6Utn$yx&j;Y`Z!ZG-uU2dHB@U-WDw_mn`q=q_&cS`J9yB zB@6Q}P!Ss=FL<wE9sQpOlndODpvqXE?54j=6eNyiFdkHIevV`M9zbKlgy&0<=m!{7 z*DtAZBUw3efP%twjk;}drWB1@$sOzm4ncXKx{@F-8nR(jF;EpDesMybPwYKKRC8qG ziqX}?)U6RyQ#ReDR8^&1$4=w`K~E_+k-%^%_ijkJU$eo#Cp?Hcp=vCx^2xS!S*0yB z(R`e3-C}LY@Y0$@uuWsA+ayN|*?KB+rE%!!dBK+EScr9$7}J#rICnq3v)EVzHhe?T zwytQxHa?di-Dsn>5dUz=-+hRA3ZksK)^12p`f$A?U~VLD-bhqVGJzyrEj^h^yJt$7 zCAG~BNDxVR!BhSX)_4OEVV-i(d-7404+*$ARqxyYC1tVh0l$`nf}Amz!yveIYw~-u zIhN%Z5<cihMPRX@w)A=<bxfr>__P2}oPyIB1OkY&eZmyPQa4kmcu@fCxA%BQbsLfo z--p9@9+EH*shIL(R=Y{HW@N;BQvZC)UT1@EvY1fBDSI3HaV`5{+>nRoH2j$d=d3R4 z-|uIEYpmm--5I-iyJ(Vj=->NA-zEKfCQte|GpuU9jkR7KNCXgeOs-;d*N;4B(G3;! zMIqB?WYK(*ZqpG^YA7?MAk09{IOB>5l^>~~@~WPwR3EO4n3=`|?2w(9&2z<e@jeX< zcj&M)sXafL@d|4%sU1{qwvfDSG=s&unMp~~G8c#zX;WBTCnuR^KSflPjc0eKR^5?u zxwQ)Yi6o19Sl<-KnpNRsp5R*8(nU?VmqT<J5Yg#InI!<?)P>>q#4c`>`zk<96oGO# z${|33$ELRQk~k*jM495$EK+QT6U891jvms9Qs|R3%7*n%&vK%mEuyZ&iSo(RGk2m~ z)M4im-$Xmar%c`l*oh0R6CfaSqNo#x=|mw=sHnq<@~H|?=g$k&rwP=~Za^KT6UBjo z6Gb$ONLOH>`F%FCg98r<Z-ZhiD!q4QQ=jv4q2N3b?iCgl%CJqbCq5i7xuBuZbEC+W z{*ld%2^(GbkIx@--=G&hr_>`C8XcU%CQ8v{X-4M$r8G{iWpA@-k>-A64OPB}jx5-H zvoEz2*5ItAVA7S8>@TPME>_R&pdium*NCWdjBL=&L%DCJgbEw?Xu=fTH_Bk*<INbi z4wp@H8`tg5Mlz|r<jRPn!09=`sn!{j@^Ga$sGo&2=US7!)mIK{iLHM-RrYv(Yz@~{ z6RN<kD^Vhkr0kAKWG@7Xh=erF=7(d##7!ce@1}|!j;-^-@x7GY;Xw8R9B?ebfv+h6 z#}c<iK>uph{sLZ+Z*rXf+fef}{QD*!0&xGLQ!Bys!_<(kcD{)Uv>PMc%lxEL=5JL7 zhH-2MMl_yNJ3p(G`LEJ^Oe5+ffM2A%-ub@)NVGG^m={0@W#s=VRoJ$5;Qzut0wq-q z_+ZNG8t{K+=ghJ(Xmw-Z&xzhMhnko2@BeKCO69JzE5A*(c~{Qt?8>2Nsoa&{r3$?( zXuC&OexLGsSN^ZAUHJ{W@Sld7m-Fvm3qBm(3{R}HT=P=etw}PP|0Aj~r5hHxho9d- zQ|JF={hZc&K|x}+7%)0u10O~*uEYs!*pPbo4%qEu(HY^k&KX0^aRTyJJ&|%=D&t7` zs}7|2>RFq${H1*fEAHjNJwH|DgZr1g=-|R$S=U8F>Jqm2e>i3-fZ@5QE&bo=tmWhu z58uJ0Edj~9Z8o@-zZ;&sA}V{cNu2z)tQ<#vSpv{e`R|9C*Rr|)RRmEK!WdlJTy~v( zPZ==f>2r$%j3Ays2Kb=oC$lJeWdhPI@P9Yd6i)t4FT`J+iuf4)TY<a#aCymFQ-wYO z(Y7XF6{**xyiRNXi%}HEs=!OGA|C$&6Oe!ZwW`AclUXR;S@89#W@p>~I#5Mq!DWl; zZIv=_R2gG2-P?IbrOcnJjInnsQ(g_YsZwUM%5-J7x1`LDqCaEi$ZkUfOb*Pv&c5`T zj_*oU`B1;E7ggNaD{GpL|G=^M7iiH5xH-jyKk1l`H#2FIItQLN{S;2e_ay**I=*(O z`4KkvM<U<ibi`tpO~*Uzd&;2c$U7XO+B;pCj(UDF)A9BMq)*4whMK}js~6%wn2Puq z{h`2}KHTZ}p;VzyN3`8zI(|6iby{m0MU|%G2Z+a0hnnx_-wmpcckC9lo3fU9XR6t! z;|5VhacWtpPSS`zRw={#{Y>GWv4Y(-l)F<w@5ZaF8^JXff;t{1{OeRH3Bbrx?w#bJ z<35d|o_1fV+y@A^^~k5qg%vIl9fZUOK}Gl3E?~REh6<fd3s<SrdsFr9WqAeg8zcN( zO*n%|olch1HKxhZqLQ%>*}DX%JdoOOp9=3M60h=kz``>`2gQ}nE40Tmy0}yxBocA4 zP^U*_pHTn~Q78nacw!fi%BL$J@iL+Sk~>rm0mv)?;k}4bu*{z_!|B}9pJMP>*AD4V zDfB4$Q&4{lO2ISn*5Ob2Z0eW$Q`Qv22FmV~&$A1-Xb4>Zk(f6{T{ui{3PD0e9p03O zDj>aNK9IghkWTCZ(qZ~i93%y#9E7)x6t;^eS^kI(oq(<%%AxUN%b0Q&{i#8ZhAW%2 zr+KJ0^vpTF@VWT4gemuD@W|(28WZ$537?!h<Ljv*cW2nmLp{71-$>b=1sz`;K`FvB zL=tbJ)MPl6FT>cWO@v*b;X#c876zND=QvbT*b99uYXw=&=eF1d?or~L->HC&dKY4? zY9veM^7m3@?k*ryVQea9=Khr3QHJaVcY&zmP^Km+)p&Q}*Z-I*b~r}ogX0G&yTgI( z1von07L4_QK4k~ce48WM7;1irf1mF|5OrB&w+XHTsUa7*x(TFJ)_H%P@?Ab4_m5rf zY5g?)wOr<xsf^cc_jeS_l;QbxrHt<GB*R3!0c3=8?XZIF?~_$BdMwrCD8vO!3nU{8 zxhi;FexEAy;j?QyO^#N`=<$@@+eY@n@F{$70c12;CZlt<M?>A=u$xGFz;SNM?r<P` z0gmysRm<<)B^l-1MEe_(&k;k-kJ4b^1)iMAJ;~_2)Q}G~FDTI}VJuVD+s?0)(IubK zB@P%ZVYx{sFo{cB;Fm?ExImbNwo8aDf(tP!;h<}@1+JqbG6=VC+gk<lF}>YaFcEuT ztRH-t`9NY&gn9;C8&F~%j*T>tE=j%d70Y<<lMGZym>$7HAsXm1#!u>`Y*KqfTWB=J zs|bLO;GgPY*Ow-6Joty>QPdCPsVnGviv8iBp>+rX4IVcSu&eulmY>Y#x2(;%tG9dz zHddC?A=p>28@$~`u}tl-8Pt{Da;V9ysH!AU;4`vKpWvjH0S~g&ID!Ij9{}u7mXX85 zfo;(N@0DQqD-%*&P&1|}2!pDi?jQtIXa@<QK+?#&6T?-hAs5u>56blr)K{nMK24F` zaKa$(uu!=l&y|3x3y5ysd?mCTG}}b_3&*XDZktynbRPs;ZK|F+tI>!6SVo?e+4Hpt zQlIBI(k!!!a^Ba61H$up4+zJ>$HO)J%kp~PBL3?i7~~=BJub?z<29PK;UC!fdF*Al zDCgJ=+J0e9+30}}M%P_=U(dOITnFlNEDLL52!;6;=AOs#tSUSB#!@xzQCKq69Kayx zge*~0Ne9`HO1Pb=`(py#xo2hts^A^GB;@jCf;&?Ui9mYO(*@nK6I)sbXZ?C6)3e?( z3FnL;Au+UzyprlUBiwH-@<2%HEf5u?K;8b*<KCaH$wo7uTmqU|G%wBM8@v5LNzVoy zWuhcfkuKd0*S$oNYObyxb!$h|B&wnWZSJ;Pbe*bj!>TZ3TE;4{Jfk&=54)D94_kuK zb)INhyme6sJrj6^0D|$2rIzwgZu28@5)~e)F`wd?tQzgJsAjz(ZnVh@dntWs{2(^M zzHZ@~0wN~42_F3Lg!*K>8(<N|VZRP9dKQZEQZVu1ElC){&tO8&dHm@v6I}*QfaT8< zwG+4lW?CiGWIXlFWgzdp2yBlS1+6>5=wio`tVK`YIgsSj>?_=D&gSqLrae9<B0ay- zqFr+q7%kd7gw*Bnw()X|Cn<C<OwhQ{H60*DzRW9h881bgA`XU3c+-MKE?I}}@Z#|c zZH%{w*Cp=8&KoA|E)A0a8{L9y7w(d<?-kiP5xjOjFy(=mNL_c)YL{!6VtQ!NS{(Pl zfjQ<zZfU?TP3^d3CEE=oR#C(+OWB=qBD;0I5O%Yvi(EYtIJLVx01mDz5lVfElu*j( z4QS0G(16mjQh1m?JCh{;2$-Da?SXz3-|ns#7*{6PuGAg3!jkxXXC17x_dRuBm_xN7 zc>DXQ`1o<)YpN`=eFw(?Eb50QcsZ8MDZgm^z^+dS8$7SJ<u8gF)RnG%&AKqx$XgS- z?ZuAiH1m{)v5})u&Pj#WzyWp5iOf!b4kOv<(^(BUGE2GX)Lb>aIk7SFydEej%zOFb zG&9u&r#{2NJa3hc*xcEUUBC56nYmPnr0}`)3{v|r8aI*m(Y%M6gb^C#2<3Ubj<b(? zDMe$Yv7u(!Y{YZgS3@?m>>x7^1d!L7dywbCoq#~dz8zboHI;nWYa-IbpMuucsGbc> z{IMqI(ohjADBRJG5H1LXY&^{PbrFzem&Of$cN_)$4IGBb&`pi_r%l5M-;~w(&lQ(N z{rER9Ffcf{m<r6&WxTL%#qi3NE1!XDK#n-#$Y(w4Sx2q%n?P_C$n&1}yyri^F)}iW zOF&+Le=mID@y8#(`h*v~_{Ar_<RvdT>7_5lRUo<xWbN9uFMl~N1mTS!uU?OTuX)XD zHf%Wc)Q!zn>kskow9{}i2(JbClRr&Yg8Zw^n_vI>KYs%*1&QR>Y-d&WFkT|TzaR;= zbEiQpIclX03nZ<ntHmqC9zr_ehp|T+h6)uZieId_hKwLgEYmM)@_M^B;t()K<Urko z{w0-$cQ3vHykikVA+QAub|?9A14gDELXCeu)a0rBuLoSA)y<}Q@VxZbqrKTH17Haj zUTuIC*6=OBvI@z6rkeJnUv6}wyVcoIf%j+><zj13c*zi{r(u0Guu|yg;Sp$S>U6U| zLG!J--!)3w&-Lv%623sgjA1o|LYFg(Hhjc_u`L^*)2U73%uip}T*S$3P8u`*f~rT6 zAG{Ed$*sw++SOXlyqy<7$%zIz=5)YQjQX2Qz<&S5Vy&A5Ebe^g7~1gM#f^!trPA7( zyXKfucW+EJcz6G}OLytRfwzF_bht80FF3CY-Ssci*fq%RhAz_94P9h+0~*-fxgQ@+ zci)+S_3m=P8Q3m%m-nup#@;$uo1wtqURHVLUxsggNV2#&QYt46_v^g`pIZ0?QfZ!y z=Z&d`O_)Gl!s7IM_0U*uQmm#DyuS62wMyEBGYxp+Q1cYD_Zl@#MT+$Ma-?9zwUy!P zw>W;UO5mJ99$@+ch}owa3-MMsthS~?SRD;m*n&QIA@o7~Kv%Te3g;mwA%H$)o-$+6 z72&6(nHm^MWHCDb>ErC(%ZgB+ET|8X*h09!Js11>X%;)VSnQ>#7`ROAc<8Op2R^CF z{=UeHUUDcXKg(QLiA%VBQEE;UCi;4q*<OTfT?kBP<DP(Tq_A%?BNv+JQA0-$o5a3R zAu(IN!X)b;F%i*mk;XtRKOhLl7A6Y9>STZG!)W0Hh0bh2==j9ykU2U6b_BiijDgYr zgspJJ<S+>6r!31Qk)Es`-B80v4>ffnEict{=w`B3gY#M^2xE<;bs+X2NvCt^-F{B` z7@*c(ZY*sCsQuc*1<9v2>wMNBpjN|24mBTR7wz&)F;qakhEVThCAihRHBp}E_^7i( zu@(?M2B<G)A@dGsvf4#5-KA>iS<U3Zf_jE+;bzy*Hy#3R*-%qwnexKyG#)cG*&oUw zpS;tAU2xwW&R!OePVb~g+)W<4R=Q~Om^@Y_$etEIpHRnXK^S}Z+Nsm%+*5ZNT3)*0 zftQ0OO|Y+<7pYFN)8=VDBnKRzY6UBB0H?Q-A-{uV>BZxYOI!`Gr~#Qs-3lAVqHZNP z>O;*Nm^qI$M@S6nd4|Ze_wO%?4!`=w!_&T@MZc<sf7GF2EA>f<E^5(Bp-3--DosuL z8T|LmXF{2VE{!|&p8Xt<;#*y!=D;w<94APNz0--S6-sj&;R{AY8tSuSAuvQ0F|Lj8 zK>VU6^-@g1BvtH~1^N(<O0$d0BtmJBE^3t*%wh_*rixIxcFfB};9d;h(72j=Hj?QS zlmh1dgyx|1(Pj+}ureISB0tyGd@gi{gRV?C<yx~{;5Y%_a3gK_7T`D@$#In{URT~5 z4(clOQ_Ty<3y^6E+M2kgFiMUO>O`1G;ah-%8VDU4h7ULY3;6I4PMn1gWkjt*MVtdY z0mMWh444AcgKP#gpd*^@SQrCP`$rc?QqMOYF0qFx0-}E{iM|`v(|Gg?&&_~bF$@z@ z1|-P-NEwkLeY;N*cTi_N7F;Guh8<3d&YHur>snLA@xa_@_^hF!rI-QotU4zL4m@iv zN9r*kTr1?WCVdwfFGZfCtJF$+h|{p=Adp>g#!(o~7NK$~c|N`&Y9M?IRKmNlkJ7z$ zvp@1pZ?bb*lRMXxERDCeBPPyYAzS6Bq1Ns@?~7|FS}<+R&Bi0%>A7%~dU#&L&^QBU z4n*esedO$?=seJ+k8AJ^&i(K$^zkGl4==2b@2d217~@sx<M?L|w~w4m%MR7Y6Ojo# zp*3-Bb++^N8L*4+E%b4QddT91b@C&XPA(p5O;<WOyWmcOl_cX<-m+lmE@aq0PSEMk z>`B`oZFakFsJQ`u>I>`Ty_H@fDq^P6%Uug4R}<9_7af%aKGX*$l+!KRgNa;GVj}cq zHuu(|cL-A@Itu(5ab#p1aLLz@H@XbYZO6JEv6Fq-teaYf{F$GG+e2oc3i%Xl?ft<? zs><f~DgI2u9^<zz9Ks8`BRb>B#LY3En%|b1zwEi<0><#+>4?r?5CfmV_x7~*B?wF( z3ZCe_wJJ-f4K=f&^;z~7R!r=I!)LX)J-GF&2Va`NhS$JR6NPJS=uwVOZ->8XT+Xqg zlGH~vX@F}bJx1-i(x~AG{|>jZuTs-rr{Ing>T3!~(oNwP1~S|ZUZY1Gd&gs!LDf{Q zu$}_OpNn~O5!ng|d#Fx`<eKC{T^8rJBhc=$u$5_ytJ{+rZBWJf8tJNwOWEi_D>thN z&zjfo>6zDN#kcx_^~DQtKVv*sLSA#O0QX#>rjYJE0F$KwSk3{M3)2Qmy`?b8bK9|m zFKw{|@&S)i2##pkY1dqwCl}V2lWTMR^4V}SWY#c$Or<E-I-;dMtaGH82z`v0qP5YQ zn}`CT%@r)3EMdes*M-ajM01Pi+LGgeqMP)Rw;J1Gf|lBzR13T82x<~27d>Xa7^HQ0 zgaaycA}%<v2Vs`>0{@H>;xDcso*WKK*FZeXPT2>1RyesOH_Y|O)YUZHEcGl~!)Izc z;|+I~Jf7LjY#hkRjF-{bpu(HE1hd1CJ+Fs0x-Y@ixFihX*ZLVxWYROZmR}oT3qH8) zPU+&IwkC$7E;-tMHAZB~6RGnz+2s<pK;~{uTj(Vtj9igK6M;SyzHN?8a49oH5|KBG zmo36%!fXPrd$6#ZN;8O%6=zU+AkS^b5<Y`Wyl_B(_&AW}M%FMmp6D*dsGQ}m5-c1< ze+L8NXImEr>NyN}k89`<Abj5y@^d)wJ{jI26(hzpB!MGpNPNjS4#`;Rh7XB}soq1f zySQXJb%-e-LG|GLv0dPGkTe(_7dGH`y@zRcX_&OQye~02MYre(AX~=df-(3-T*lne zZ5dNCrJw2&F}Wp;Q)PW}XFCGm>yzd&!5~JO#Q;jeqZ36PFFr$GiO<7@XYA?dkX~gc z`-Q3P@0dbE*3r4VjKOcse8l`rSluqp9u7ad7lI`?!hAnd-EBSig`hHkK3fl&%HYwE z1UFHq+v;X7mw~(}0r{)vNbRvH-b?N2Il=dJkq0)xFFP6&{J*C)ToCZ-Am1pehp-g8 zLMyRy9?^z|1^pZv&|HSa8Z4J!u?G7>F2BBr3$Q0*3HBtczy86?PQlviE7rXdE3fOh z=E`*x<5<n<E{mzRmZn1s*_+e0m>L!WYh7Y3W^kgXVl7aAFV7>V&Z!i&#+MP00mf2v zJTe88UWm5PemiVyOPd|T+9C8bX>seN#6giGS&-bf_#rP8?5{>^xHN}OOFFi+q3#46 z<6}~9pC40+6Ho`5&%^h1^9bq*955Q$;4Z$nXJ@+G(ra!Po_&%Q)+?l4nEo@2_m|@x z8&k&Xql*}?$Run;1MtCZ<F-lbl6D*oH#kl~HpyD?13nWh+>RHOAVKDHs2gOE*sUXU z3Z533u<@)lx9vfC5_s+^j?mIK9r(^QBL7xHDL;10)h3l*Be2oh8Gyb#aj#C$U-|+~ zT&^<}p=XgZD;sWhrE)F@tz6=W#5|(Y2(;}m3j)an;a&s9c@4)q@ftEH-#`b#j#BFy zZ?qa-iiI!oG_++~$M6y*DH&UVuf=CDY<q^#PHkM<vyGPsF_6n~SRsS?EEUl>9bz%D zJpeiyh*ezIG=eSW<eK4ux=cP8^jh6a`(h3d6A>yuJUZCA>4Up|E&JycAUdqJ;WV|2 zzC3Z=08OG7BMFOaNc#F?_q=^b3l6GeHTBo4kFttV^6|)9w{@@8D2iQMkw54lpAjtm zh9#K6=7XFG#{rt6L}Il*G#Fhr(Dq3c2j*Rg8g4WVkCnu*Cm>j2BO>bwP1Dxgd86fS zarv&^s*`1`1;`_Kl@NExOw$dTE1@nd&PVMQL&<vQ0^wl@`ECaz0b&d<-w)XLL?Z7= zz5V2gnltoyO1Q&@l&wTpn;e`z_XGWL;yVF?Uso-BbfVRMV3p9F8hn3h(1RF`QG=jt zpcK(rt%gPXx9<M!i9S?fIs1O`iDJuP_IGQ!H0HqhA;$az2`C?Pu1-ExW8Qwpk>xSh zrY;g+n1KGQB`|*;h8g6dM9crHu+xA*O{FNDJ*`Q9kwz9?V9PjqjChKX9fOVvaExdU zk$3`8k#K^^<U|vR3aVKLQAs&VRAnX;K?ESBVZS3`__mjb&TIo&3J0NA`)<xzECzKa zox4&UPC5)75B!~^gK_3&k=BQ<dC6gu&J(2aL!vs7{=EtQ@0#}ej1rX*yIUM`Oo$dJ z$KN>b%X9a>RG(9=EhuAXBU^VCFSh=~I8{#v!aqkfz;anvxj*&ZbroBRGe+VH-xJhT zFy9!oi`yu<!(b4KUSm+J!=EQ%(hJ1nB|vi0B<sC3$p@HUenMOcgDDz#sp^rl5GQ6s z_lyEuuBEqVut@|Ryx+#%l#3t-IDNyE<@60xmeUvI<COI&9OZydVV47LU!g;2UyUbf z{anKD{WfE5iIGNFB(Gp&KXLlPi2l>{Gxh4B)T;-qSLQP%D~r7fT|BH_h0y{X`Us`g zzm!_vVY`S^{Q6fI88GOM)qG?4!7^J>!#{c!^sg8k-JGpeqf@6!1{FKloVDO}(MEYo z&bjSa#Pwgp$pPTR3bc3>6K^8Jg#jRcq~d&We2qz|i({#>YfXJJHE|1PBv}|VchDyT zsbCEu&0psHRDXTh@AuH?1y?t~W$4_`1X@tP$rXceOEV$?vpoUx6^pqv4;L<5?%N2g zM5XV%l(EAVCIH-{uV)3_JIDyCA|e__Ie;++>0@tF+)_HgF79K0C*85B7dX`xV+!zN zaA%NWLT?hkmlhIrSTq*rJ?DCu_nhZ}H*k&zF)tAv+?!q9XBVZeFVKCqUuLumrUQI& z9eTFQjsv;RUfp}0=c`dvqstWFAh1FlL2c-Q6fu);tZxkSqWl;0WGQD!SZtsc-NR2h zU78@28)<<Ko2-m1H^ZL55aZOELi9D42e4sT9DQ_AtFfciIB&GS^>|I!<Z`irQlgK+ zMSb!XaLFl-9!EIvheW%H40p66Y`<S3Es4cN0jK01^5o>ESl$Hb5J14Hs^F2t$^nYD zQ$|M}XD+;8k~vTpy8x8{*_i-wN1d?*03Ep`tLo~gYkgp6aryB@PATlLAn<og*m;*9 z&rdM8AC8<P&M_HcYYZMS>Nzl^h~52sakA{T{K$$}APQg>2-Zxu0_M28;0Q43!`ZJ{ zCf9|%gQ)+ahJT5yv4{o&V}zG&l|ZD6hj+n8hpiHf@OlpXbnww(r$l39WMmYcI=bmr zuRh@f`03!N<5r22=;Cm%++-K8+#RJk!a(2VWZL4e7fMasX$)L)Ggo>?=y~~6lXKg# zO6RZ^JG`4tl~ocBV1-kf9T?g~iep}|>L^(wa=@GdNfrXf89%_Yfy@O_cNYZB3ohlI z1g`-NvRr-z=0!kpYj`AY@g_`qDPBx-JUS^Dq(i4hz2Kx^Dflwvqe%6@m4Q0)77yuR zJveNJ)_%%B{{>KGbEvXa@8SxAj%Ob@-9X-?<%V7*jY#Lautt!z4jIdHS*q7#d0q&> z5DG!j(-0Q8!{Y^jz8K-7uRc@Bwvd@8-iV2CCfjowrmIsk({?m!bemB51@=eK3SyWS z1oXA3HV1lisKrp61oSAX8v)S8kew$A^kizrfi~|4SX0p0*$liNttBJ5BK?n9SO;!S zHG2mT4aP8=)B%S69F3Zb;W$sU1Mf=Bcn6~6B6NVwFj8#DJFseD9r%Y-vv*+CP>T^X zsRImfLU?CKq|FoUz-_4+??61zC3JwzFbH%hwv@Jb;0fE9hSw3nr|$2ojpDkV@G?l3 zrRBi^bI(P$<yKhP!>jO-1c7@M%!&?trQneIO>jt&`*A9Z>qWJ=HRH}0;0Q;f()KJk zt)}oEX3gY+-DNWs=n&tE+7on$-ILE_`)7jCeLA3nN<+&SSB+`!JuPF~Wv{&&45e6P z+VE=hvM(CO64FQl7Za!XIPGHUQ0T%WL<Z6u@_fo$OVx>(vkzF%Ak+Soo6_VPRd?e3 z75tdSl<;%B<LBLT!6)>z;0JJ*Wn!=?rJV=~ii2<sMu8AkD5_$D3?_iQd3u43uLagQ zr?`DkQ=qGc&BCO(sPl;8f{&Es7WA2gliO?sou>CCbbcHSh~6gOA68qR4t#bW?Jrco zv!&StUc;gLc61&;9nhIF_<?0m2KyEe3N^p72PN-#DtXfK7%IhoJkUdnunOUSCZhMX z{)+kGN*i`}|I1Drw%wj7DQ)zuH>XNVsUr+6fSMAQN<f}4Xt|oo<x<FxUaP5G(1avm zX--r5z~)&^r7<KwH?o3EsmNI98)Av^2-rxuZH#nai_sjvFm=U!d(SGY^{90la<2Py zbVg<oI<u(x3^b43I-xT>v&pW2wEZ5ohhPDnStKsB61C|tk>t+<Z{nT-Y%FL^ZpZ3m z-sA>avgcO&(W9j*CG}`m>XA#C4nB@!5#;>CIg}U-2GR_+W>TfgLK8$9GQ{;oV1e&` z=4M=fjP5=tGW;IheGPk`4w~F*d!GsKu&0<mu4lr=i|j?N1UISTNL`!yb-As%GQ=-# zhjFzWsCprABgRkYOWv33QzdR2m>>v#I1D(U;Q1gHWhz>-#Iu+d+>o9T2hgw;kX$q@ zx~#yy&0DP+7L5H2BGzc#bapA?sCq7-%h4avNyQl7BRU=Z5uJ|yxSZ?gxA>K~NEgDY zdLZ8;)5>8`lL?9L$6;Vm#0^KneAg5qL?CWu=Vn{2@p03MyQQ&q69h+bdCBq}i+l`K zByM4dr~wv;M6#PN=EQ1UvoB~Qz*Fnwg7E;bP|6d4q<Q@SH>HlbAHZZ1kmqy|eQlDo z2a6qOCozaPj^aztWsIpV${7*KdO5mr^jJ3&!tk+rzK8K+3oe4eHPQ=Ma&@(oEzk$S zE<J7CFuC>Z#y?^75v1F{H_;Y@fGOAXj}b=Efq~;5!fqX$`ha+&qvXz@Hv|9Z&}hV< zqZf9B9Wh|SrQ*KDRjGJSNh;E9(A>AgV_p!eumsb<u4&?#k2+SkH9Pr<(j-4vJ}YHg zJJx*AEM5W<?0bj<3cwSQ#3ndbFav#WJ0peYR1jO6MN}&mVsOV-a-hWd<Q%3wlx9!R z>LL$5F9EXKT<+ZPYzs^vr!@01(`@47<G3l=bgf(C{0sgRUHahRaC3&QA(@BDDYA)y z8(NgZIg?pyX7BSIKnHlD05CD&?@1u;OhC`rAv>!Dw8Q9}d@pc=88^f!!Ag9;A*JyP zm3?-oFvs>4U*?K0`|%QSdVnvscm_JCPDO~BE|$i{31FAtFAxOiu#kL9YlG{a*S|ez z#!mpcqNykVjr_U-hy$+TxU7>YP={j|I7<8ZOvz~gPYN$FmO>iC2~15ZgYn*r1X6_7 zD`x#=fOYTl7qdi22w|mRmM>wcVIN<#*3jQ-hktL`22nGRVRPw#;@i283!WO7j*sJC zeH+4w`ditK*7L_(?Z@xE^XsrH`z6{{b!caAXh&G)8wp>=5MLtL_A<yAB`0LmAh6Y4 zK&mo)VFjyzq;+q`hT(9YCt-!ZKqq(_yo`@izzd0F7by{1&kSSFQS&tZmdHIoEa@*8 zG#3)Bzb%o@&3(t#aCa2<AVSRoTj1ZBC5gWIzRSY}r<dRaJVJwAf=HfQQqr5=p6YeI zi5fpMwx;X4b;mIRE&X6PU@DPLNJ@a-m@53Ht&UpDlkk~_e;QqY4T0z^MB-{3(lIiZ zw!etEOmQFq)ns4^)1I(9B+Pii6cb1{#*KN*hwn!Q08TqX7+$;4k17tMp=LRWL_ci8 z87G`aUAx25k*ZjlFQTel4&QVDc+wMQLc(rO*xT6yx~@Fb2W=L6fY;6*3~C0b;;?q7 zW@8W7g!cg26J7|O#)0|xBBGc2Hu0OiwZf3gF~t#^L(ag-@j6L`#WZ?T^+@ohWlO1p z9>>!V;pbw;Fz09Z60p2CsWnhF`6WQVk1s)n&K0xm=NAyf-mud`jUj<TV%G5Bx)xLR zA%!%JKDGy<sJ@?WA#N@QcrH8FJvLNpO}y<B<}`=lXOGzT5*~FmYnT%*u#71dSq8cd zmf=kv?6*1U?b}4v%lH62Ua^Z5d;yo_1f~S1xphaHTOR!rJ)Ig!^s?2y{Mil_YYWIj zZE@hKEQ5=|!<cIRSgLv4V)!gBYMsa;iGN6UwxmVtHTGOtv<^Ni(fu5FW?YdLo-pjI z1I9@#YhXh_A@~LdgZp_&RGRw-GNVm<!|}-qtHI~C6Dt-~8+C>L-p9h&=WFT&dRATI z513%@!zK~*rq%w0sT~Oy_a<EU5tJ5VwYt!E!;8V^cn}Ml0B8~Egj0Rz($Bg#w>CLH z9cMbnxhO!eBHYNC!HzCc5Vj8ZWOY-N7y(l2Tj&qz#OSv)q<d30Tw>5&fb}s`Btt0| z<@nT^yZX2S>DV}wDt#bT`lu<aW~&2=NP(Tz6yThf0zaK<b_z6FNEApa(WyG_<8@jT z|MIcX82EUIM#UBa2zmkDBa`FcV4B7O>puT1dIFf64a^2D6O&P+M(cc^2n_)OzV8qD z(FeXCD69XUPksJ-)4I*xcJrFkPTG$m+ugS2iZfBIu08?fFm_U!p>dh+njxvl8xd}U z3&mRWFT(EhfDDd<Ik+Z?kndssCT*cLwb+tNqGMtSk^{<A6j05nNxflka6LAv-OY>$ zZ{8tdY_;$2Fcj2miA=wk5bI>xu|Y|zo}JYMI6%nrlIfRI%}%D~NhmS|kVhP$BGYif zG;_)EXlgU92^$iq&3rM=4{4k14A}O334m%CO@tnD7@t;JIcyp<WuPnY=47~oVLMNB zixZp$BQ^NJW2hUCN$0+89q>W70gto+yXz6zv$tgG^R%YsDm%ZUeclT=k8Q=9M`ZA5 ziT3xgWsTdOxzfbb3gzR)E{~F?y}cc)c1@d5bZq!u2fE=IZ<K3{<>v_?Jaoo$Y0{%& zQ5Pm4cakiEAH2W$Ok`XUT;k^3YuJu$bKXUgCT9u4e^u3NrBMY-3U-#qD{)z0D|2YG zL8HqrzNhP(u2^1Hzlvw_V5JqGb($m|8w1<0apUo9n;k1@DSX#)Jv6<+!|B17X@VeG zh<ZITJ~S$ZWXDb<(NS@2!lIv^uWip7fh4>*DE`I?-M;XM5`(xQRr6DmV?0tqS|XNz zf&$UPfX`daWTl!EjQQ^3*$?%NdB+b_IzTFAs2SSrL5rU%(IVF+i|5pm5Y%%%i2mp= z5<-lwhDX6bL7VtK9KZVs`ApP)Zsu6cm(=mdjDS7oI7vSmYe%@co*AGuAl@nB&Rt5s z-p2>nRR7%k2QdI$g8^OhY>S;O;Y-_M8_`S0PL}ZH8)G91621n7FMfA?3W=t>vm)66 zksFg#1J5STT)sxK9cxF}JVwC;(yA0C!lp!oHX6oM(9o*a^UO$|Ht+;-I{TF1^r0t> z(?Ee0j1rBj62@0Wj5~!InjyTLf@LcOF<HjA$;Cva+uITH?o@gh7#*WPnm=?8l)4g> z%71wsan>e!dQb6vCG?UDHTT<2Zg2%~UGpnb4??)KMRQ^28y=8^8EfL<OxF~7jJ?!j z+x_QZ$8AUy`u2cG?g@nb27eUa#<SBYwHVZ<od#HVpf{HvAXON*CWZ{$ZU%D%fp5Vd zd=ASK9E30+Bzu)~HUiR)(*qh&YvvByke!C;f_Ch^8(M6wGdk1tDnJ`oXkaG+NbV{` zbDLo?>5d}odeLq|nv|ylN`SQyf1n|4!XI@CyCn)Nt~g!G#B))C?5btQ*5GY3El=y! zX!UfjXBXU8gkqz=GaiNSoBW+&C{gxKr5B8F7vWp5$0rg1kC=Q)g5}{uQ(?}daCmSH zsZj9%3<l^aXTDY<LfUjsf(S`BzD{f8CLzQ}$r~d=@K2CZq>wTt+2|x%+1`#oe&ZyK zh^?@?uB{f@fz0EsJFHI{O^VDp<GYag;-{I+#}nv1$$U-0WN?x<GRHMefy_ZyPa%n) zpP>5ZA@Pe602LDd0Yz6fPgqPOZzFK73-%`Oxe|Gka$Jonv)I)=IqYiZuq19LBFZOl zSUQ_IM(emCnXD9+x^!CxyHL#YBlDWm&D=LgLew3!5ev8|GoYRA2((MDqQ2mY6%F%w zG%Iv6>K_-S`YOo&d2c-dXzm9WArI+|-bYI4B@=J1lh##6FZ>F<B-lpBFV|09{%@45 z5^nkE%!7|r<*O)#0%xZL0-ggi2CL9ia<s3uS7YS~Q`_3HKVLUSW2}FU$TlGabH+}% zS~ouv-=3<fApH@Z26ISN;u&J$3)Lm|mj>cV>JnTvs_GKP(d%)Ah1?VK0R*peT=BPG z=e-sc2Mi7rhbRci>y6+={4xE|8pDO{*vBWvO6$-VoRw~YBIJ9+pgeGTf?lXGKyfH& z41tKsf~h=HFHRtJ@X>>!m!v9it0u`Ws0v&>FH$E}i--y875;KaRpHVEK!wWgUZARg z?SUY&1?dVuED_n0)D?Kv*n)HgaM4IK<uNHM3p?5o${xx>)DS=ma<RG!+(E|V-%kq} z?@aLZB;%^$8xPX}6+Oj7d_e-}pNEJqP5@Mh_~9ohpAM8LR`O|eSNXK2r+5k{H5SCv znk1h1=;Dcw3lUF6i4!4oYBh-ic1T+d@-J=>l^F!eh%*5KHCSM{r*AYn4jM&a>tj&` z*xruKR8Tx#JT0#5tI9XZoEUZ<VP@_88rP#Gls_qri(b%z#)V)c#^J(Cijyt0`WJLA zUDAY2Sk)VvB$4cBvmkiDLn`N*UC@qzFYH`1sO{1IO~catl*}~Xm!xJYBk?ni#C#`` zax^p^N4Rc4<&5XI^9Ce|YjY+xyWB~3urw^%wd!}0l~pzDOX;PmO=qsFF+LjHJH&yD zRuLM(jmq#<gI|vnV#NET8-o&hg;NL3+GE41u62ZlBLVf|C{(&EXv_JE*y{2;!3OIl zeatrCK{M<&;Fq)`O1cfWrk+nj+a)kVsU1jYFJG*B-0U|0?7KX*R2lPMlfiZ01h60l z{ISxoiovbv%HY=Z9MpAH{o58A%(emQoxw3x49->}c(W%)+Lh|=lG#>Jp<jtRxj(jr zYdizszb$IoHqOTPd~C({#Op#svV9!)YvxD&_S8-V^-or|wC^N9>6X9${$xvp@UbF} zpK{p}o2j7q$x`=NHx&PmK;04W-xV?c)KhnCr-J&A&41)*ry${-iTrm+m-TpQKxAh6 z;pAm0f?XB8qzG@5BPXX2aWiu>8N3A>LAo>EBdF!C7^%0u`S?jAxfnZUS$Y4*`Rxdn zuddP|1plxzuC$XwOan|U$>WQ?Y;_k0r*p4e9MM>#U;%8-0pSL3y~3X{%UbvCIKkgA z^6}76@U_S@lM<0Yx+Hby=EZV%n*Rq%M$`$(4<%>?Bv*E0m2y@%ckFf&L9zFjr=}_d zbY}+16iyK?>V=R?eew$pl}CKA=YS9Tfae%+U+5at=t#owQ48GW5HsLSa2U_;q1J9| zUl{1I0{&O#Q)|%$97SWkm3dcTCqn&xldD!?51-yi(!Qi9dgo?35E(``Qj|X<PRU0! z5ytj*1jo0v8DW43BVn-k(|M@>js$}r>Td>%3u|djMThobljhFUP-Sf2Mbhl%B7RCp z(;QRj0)bUPY4rku;xxid2Z2s1u>So&0j%i|9Kt#(p3`&6?CJ^Xo<rFmK<{Eq8(UVI z$LW4uXu@Yr!2~2<rkU)kljcT;Bc`C*7wo;lLU@PbZ*|D#V1;D|dr%a?kAsdLz2Rf+ z2%US^jnM;h@a@La{X3SS#iR(eAK%3Ga7#~|qSc7gs#mJqYP9pwDnuJO!xLQN|8io` zMfNNMaZz;K1JyW770NfD=YuS$f+u6}mQ!*ZJ7VAYh`~^(`HF2YvKe!}Vp}ZZteX{q zL0Q$dw9guO^%J-mFlpb=qE(BBa4|&T_9)95kI0uI&-=F!6>{lvOz?%=5<xYl_ydKm zGYZ9x9kPsJ8q+rBm1f=l`JKVI?+MVm{fwixE4!m_DiJlqubcbQxo8J)3n2ryUJ6X$ zyb1PvJa4Vy!VsN_3U5}@Qs!c?j)Io4y9+12F!%n<hN0~q>IrT`=7qbxj-D8AN0@pX zJ@FjhQuMJK!qF2vO)$zD2E`UP4r%wLOWb{3jamf0<~V_dfKoioVkrQ_NdI=MG`uL% zHoSlkQZ~$Le|7DMT2u(Vq7D_Fos#w!Vz!B>1L2*T6y6VpcWP63Z-@E64s{KC8?qqr z(F1jpRJ|x+@m>qWwXM}5^i?8_Vl3(?kK!eEH@qk)7LI=cFq<jXjgfiFNeN^^Gw3r> zwwHf_3}j8cw?h6-3|Kr?0`js1q&sQpzrh{|r<obh5EAyZ01g&omg3guR-;kZ(l@Vn zgOc4^+E}D_UcE*hn}gxiTdQ{H0i$XUS!>W9YGY$#WCqAJ5OVd0T#G`kKIU4aTtgw( zl8|e0$Ti4Z{mQi><XRqbEepApGS`4|Ju~EbM#!}?<Qir!9wBjZ?WmCJSs~YvA=eSi zwOF~H8*)7-<a&0<wTiixDA)5tuIGhZ$Anx*Ggr<<68<BWC*}RwK(@N4brW9}`3s{y z8vXuqD_;iug&`n~L4Uc8FN^&J?zUSROZ?>yzT|qr7LxKogSR9)a8rkIZp;YEH@KP& zZRzU^qss@4E+24IJ^s%zR-g2y(Pgqmmk)hP=NL0rU2hs)e$?plVNmHDW9Gu8<Uox< z0`QLu&-D%Y>hRpRAwQ8|k_lOwle`#FSRyAE^63TsTJ`UsnJ)V)-<L4s%&=&{@pNBA zh3e#yJI;BEm|<&aVFs5yT(>89cG_8;5}uK_f#+3plMhzPq{yFNuY^bp=X-X_`+Va+ z%@4x$PiwUd(be)5K)~9b>~PQsju|Q5^l%JrdhlJ>cF)6$PfRyF;DQGbu8G@<sNG!> zwXa6jW;==6DNc(fuLt!D5_XC7rm{C6SqJ^UQU`^B+v~&bj8d3B=5;2R!#zV&nU)hs zi@U+4!8*aC8+~Gv%+8w->>K`%y6Rg`M@8Ckq)QPPELRHkzNj6c_Zj+f)iF-b_?dKY z_$F>jc3h)?{T7Y<?9n>@s#%@YeTua^jw^!6&Y6RY*w}k|>UoX&Hjn3<0<b!)k#3Zi zS&=CS1iIPZvUL;^iC0-^ndIZ#B!&AC>;Pi+h3c!Wc(*9>8D@B?AY~Q&hD+Y1m*A*T z<(<T(?@UM8{w8mk<bHJwOLd0IL!&D`aX21;IdyBRf1G<Ei7#-Dvv{5xPr*A8pF{H6 zyn!2awNZ2!k>;L*+uS`-S|~RIzX)koRSTzBoP`$H#<sIj8qw#%$g#+_T9up3do|vV z*SpEYSK|GJtcF46oA3wImtl?&&<qDa<lq_j11)|F{y=(f1RYtMg(+`4FwAEWb~jRG zF;<|3yBHWuRVC!1n&J+cXqLP^k<C4(g}gwW^dmYq+E5?{j8JU0fjGnB!#3GH#QEua zMh9iT@bo~Ol!w5_0gw%FvgmBm&A>Jk%bB(qvHXj88kgngwE@`Xjf{1C4SDm%VjcO> zu{Djiw~h#JI26_cC(bg&kW@i0?Ae*zC0=XJ)VMcjF)5t?d&6@9JroM*M!dYCp^6L> zW<mwU4JwdhE~!Af6NX#`;$7pIQ-+$;M{qSITY3XRrU3?`&QI+&XrVc3Su;W8VARq} zBMy(kQPT&ETX;!ey(fX?1Ba9P00$rgeon5P$|K|iC;xYrI{ydgJdW-ol!irqDG(NW z<*&qqVI?*B-qfUHf~WTB;932}93uqz*%%2Vbf2QVk|UK;K$TnmKx+8{6KXhZAKeI) z-L1@YrHo9Wjxy!h@ZnU(g{L;wbd)Iz+&d~|w1u*8#w?&~O?=m{fk^25XexNQ9VJ1f zy$*h*i>5J+Y>!K00IaLFo#9^twjZ^)V+Q={R1B-fvtS4~BF6M>B=|mw5qCDFX_jx} zu4}Sdrq?+GL;7O0K8XD|{7goFHmGP(V==@*V*qv``7c$!$Y6+iWfkG1-rb#g=bL8a zUvUPcX;&rcds87FXL&74xNKK(`H57}acNplI_Q^!aNs+YLHJ~)U{ZZ{z8I>{@H`Qr z`Ns5vl5%rai&~17HS|B+;mLncTAsFlT8M|gq4<yYR(APEoe9Gi{0&`BW4pDa1Pya4 z?+Zuh@=z|0_qaBT-I#$K;5lK+0m?$S+d+^@mIVsEyu4~M){ZT>qC$X}k!~X6S$g&m zdp-LFBYK9B3HpQKWBR?$%Qbq{=OZZaY5g=}t*c1ww1G~GNk{X7Mp{A}W72WDrxEth z`k1tO1fVsBHstGK(upHWk+gI}zR8nLuDywB1+~IuoWHFf?>*<O^{tI1+u;Pb<!|?l zE^7>I9bMk2<9#XKM^-=>t=Q_>Mu!{A@L|w0E@#FScptEgeXaL>W&DAGt&O2j*-A{# zQJmBrDqDi-x@4<o8y#${43({H3^602P-RP?#65cdIbZJI+E^MYTZ(x-y120@R5n1- zz16dgE>cE8<{1Y<Wdl-5fbPcdhFq=(KCjr2x8sN98}hOEvTQ>>?q(YDVIVGypMY;u zmRSQZeMS7Taznl=6~cI57e8TiC*unS@uv8Kfq_PC<U}p)O^s}At}`p4=aDkj=BJSw z*5(^Y0c-R19QC#NI*#<(eA5VH3uy<Rf<Le!*WiztkF>6jvzkYi@$W=^WI6vH%rT_+ ziv$1RZh{-AKC;s4;2A@lDyA5~7lU_JI<9ow7T|izEZ*1V@Vn{nIMSO3sTb3KO$@JM zHM{fH#;t6j0oM{<YK>v?Y%tMnA$3yqP8T!crAtPf4wJXObKtHE`nTF%sJ(P+)V5ni z>uX0raWXOv)1-|V=TsJ^-`2)TCl&P<!v&3OEfBYSD-qKG1^f*Y)-;xG4U^_fCY(qC z<1_L<F=2J1kMc#BK7$Fz*||1Qh&SYa$%F=G46#fa+ros?K;B_;{yQdY1m%XA4+RJV zOS?)4-jKhM3F{imwsPbepvKJ&jXF+8z+d`6UI&Dj(|I&+4UQWkHsp_j7O+H%SGZKi zZ5%h`2QuKtbHfi2(|^cx<c12%+|FV46Lp>&zKxjv2-A@p6Og%`sm*0TtLKLADW-po z>BzkZe~_CL28`p7k>w%xa_08*hnSAsEAa=peK=;pxI*rw%<bu)Vmfj!#~<W&1_zHJ z_S53u3T~`LZco35>Bzkle~{Y;at5Opa`!Q}r{BSJ<c8OVxqXzOc-XN@sJoxJJ^ePO zBR4c4=7ttR5`Z4EBGkQtxjp?>rXzPh{vfy02j;&WT7$ZWnA_9AB!-xK1^ytnbM{Hd zict3eb9*|N%>Z-L3`B01DKPlM;si`*<o0xMtvYiL;16;;*@3Yw3w6WW7}LT1mN9o7 ze~{a0avX#haxY<SPak7CaxcRl<X$57hGQbB<sY>kS|ON&Ue}Ub@uJC`L1BzJ#g~+v zBUxO+OMsL^i8?+3@U?k6rS*X&q*~V3Fif#AP<tr42t{S1vsP8F#`=*gMbaC?Ob8_g z@CmqEYtlox2e-r78R~}_1p<m~VXlOdi%}9Y%RcErrI#QXb2*lnOC^Tz38T7}{K>Ji zwA2<zJC?*u3)z;Tq<B3$pbo07<wzFm_kLj(h7v3A3G}v>tk2sTF14k>P)W~#IlDH0 zhy#Wv2g5%-0|I@0?HMt7Z9bdYdL}+SlV!nGJ^vA<wvLD;Jp-<ETbqB1ZRv8iA{ftV zuwT!LCD!KP0HNZe@Ci2?uFb))y{c8Ewj`yB6+WB!?_pbb>g?BZpj)i3Jtrow&1X_u z&&8+bvMgkQw{>)>t)pW}&u|R$-@&%<)Y;ba8iPoFUQAw_gZqSvpN~(^XIY3Duc}dM zOL}CnUn9(a8{5KDXIrDt%+}XNWAa+^u2Au@_;f7GLV|f)$CcVTE|&BRFJS&#*%qEU z+j?Px^Xr8%d97<cBGKdV>3EifaP+EHm)cq#OL~SAnExiWg{RK8UIeXleeFdtd2K$K z`t@RbdNIpF?s`=xmfAWomh=oSVgBpb7M?oWItkkD`r1h`c`ekySn*5o>7{&=u8*Nv zo3ASBFl)9$c65qzIG@Nqu?$4^nOIEU`r4Y<h=X-9l;QQYlgr6}AXNWBNKPE?Wyt+9 z0s#%ft2m|9^;1HrkYO$JU%{^9sk7@ZZ;&s(JSIaaOkIBkKD~lvH^;WtmD*YtOFA&G zWc~};7M?oWdKD~^^|e>U<h4-IW5ut=r&qJ=>tfRSQd{d|NpI^l%s<Aq@YLDX1{gW( zYa2qc__WCMR3x9uWNQER2g)A29B#ht6{@jJL&b)5^8Z-Ip(e%yi>VSrX7L6V*N&lH zQkjTK|8Z0n7OMNRrny{#7p@_x>u^O`tJALL@6M?<LC+-&&~C8++M1CNp2>Ba(gm4( zBuX7lDT*9#U_bga%29`(;@{=e<?(kVR%r9aGMK;(D4YD-&Y)rO;ff4O2p@K5&{p}d z6*?pTPVi<fKHQW+^WejU^p*2rlFoBJjMJOWhwC!nkPl-SR3JX=%Fxqb2Q-FZ+{s=Y zhVng%*@Ac3tIHwLVVHJgq*Vww`y0c|x*S<$WHKw1{T$kL$R284V)iI)Pu03qS(6b$ zLshjRBP?2&u8`4CG3k0*+!$^w4i&*kzjbr~Jl!io4%)=X6KX&X!o@sPJI&>cQ$|A# zJTV4T0Ugupz>>wHt+01#q6-G(fc1c$LI3G%K#ATu3fzVA%gh)tOP!s8(Y`X|P<iBl zu`#*=m>F5l#ak%Yjv{o)pSX@`XzOb%j|j|Ye70e=k-X>#J&0KeYJhRrd<Q9uv3Kyt zbX)z<FvWrN@j*|Q$DV?8Z7_@2s*WP<ePF#Fu?`x7+kz(8Qu!x*2p40tf%yX7m<#>p zFpDBMf^zvUi}(l8fu3o-4a%>fx{!;b2;vQ6V7WjC9BI|Xv0O<`utaVS5-TRe0H_7j z5BDVUsV<IKAIGCWQ_Ka5px;DwK}ZmGP%2Wqrbu@kBx>WZAwL==LWQG|nn9uk@>4|x z^6N#S@cK9rgFvys7Kl&f3&a;YRLDaD8zl+%AWxt-5}%g`c_tE8d6ICEJf9GSGV+Cv z=neusTKih{X)%{W!HF1|)#Sn%LqtkG+{vmB_oj2AW6*uL$rbyRqZaInZPb?khgyxR z#S8ey*mJsO;X&>Ck0*Hb`Uh7k`qg78d8*_^Wo!?QF!g;X^w3+>)=5B*drBv>)-Xe~ zPCybpiI7EYu3AdA=t=PtF`dB`h!2VHjHxkUsLV3e^rV1_n2pgE2%CuS48x%F!CRBn zrDBS(i0KT!U@T3@$G8kkyYMOlO2rsfGZxbsZNspckdI+F;4I-)wvdW3&L$OO_zfdu zLO#ajfMJAJnKdfLz?)Qz@i=3ck|7@hbtuifZ?aHSjFC907z1?1DAhe5BX_{+!mEr8 z6=P^lD#nPNF>qP==%fHD6C-*|UD*|fPfv09^k&27rKQp-S)=HwQofYhM_}|62UBl0 zn4W!8%%m~()YD?BMnT2m(CW>G*0XPn*)_tRDrHZZg<L(wf!3Q1v}czds$`A#utcE$ z4{WqfvW3iLj8A`KfYb;n&Uh~HRT3E#A4X(B!isjNUaw?W6$IgC{_l074Y+Iha@rUv zgC0QqZ@q?}&c5NXk!6sg%T2`?Sz!*%kzw;<j=1lVqfSrd5zN}u38=m9@xHYkC$&fV zaFS{z3n6-p^f}HWeSZI;aA#BD{2jY?E5`55Al@pza93Y3AaYj0Shk`z*X7tAs03X? zk=|PY(2n-R(w74`>Hu!P?r8>)NaYgqibhU36ND_}W~XkM7jsB56>>;W=g|G2QVgdh z5P0M$%Bgfn+}DdaR7W9)>Zk{Wps?}*Wdr&|s3WQj%%M7<xP%<8Fo3#_pq{wAs0ns1 zpezE(#vCqaV-8ibNO}}d60}LMC+P5Os?Z_Vq6)fD%!4U2Ood@MA{A_MF|`}4+@|gn z@(_+<9%;0I5-UW=FO`FbFJid}(HWrzxS81#%cB|!c`#9-M-meOq2Rd#)TaiL*#JE= z<xvfVJcY1E+#%$Hl+@uxo(9w1pQLN}lHch;`QW^5xH-0(`p5Ft66zj|7C|6=3yvK` zG$;`1J6uoEnlRn}5CmMp17qisQv-jn1aMq(GHVF{AtUq~(49cPL1Q>LXXV5PuJ{#8 zX8cO8e9=`7oseIhxxBH%Q!Wm6L`Qbd_qtH3=vd!W@(P2C+ft^S!h`M<wk~WedA=b) z*|YWL_y%(&tYBKUq}jO^;K`@hQUJ^^<^{JWqSloB*q(f%xv{~mnRgku5^jaYI-onH z@mOD93#o9oNLN8BoV(bmZJCGNsf^@)cOv6)z#YeUTm(mP$h^|M!bo21USK?8V!qLx zzxK8n{@zf8vvz$=Qp-NR&Rx2ATkdXL`>+X~+d`@1*4H4-)FISynmcEab<iEMR%#=B zu!T~M^))Fc_Hn(tS@E{SU90wC9lWW9Qb(_^NjI^Nr?|ruZ$s`RwGV6H7cG=pwZ10R z#6F(ru1~xzb$2Hom&v`kr==)h_QvCT6#I+!5br~A#NLK*AW5VUrbKZRB4fLWBS@o; z<B>zPDH`OvNi=yhNYd?ZUBLFABWw6a1p<43w8KK$`aD~KZY$~E9b18Hr&Z`3BeL); z?Pzr=s`A`+tjL2Ev?dEgt#(8z{)H8m;$Oy6$-U{EZSEQ3vh-$K*j{HEKhHCgdkFiB zMriui@n2t)2P^jLSTE@rcJx*&3tL(mU0eV(YjI71j0OVbFWaeN)fGI%2!&xXNuGj( zLEx%gwvBO{VPOjwoY+Yh#?VIW_PdPxW188}<4a(P^)E0eCf_*!54PHfM%K4>X~T>T zOO96u;sz!3zK4}HT^eOL7P97Sva(LE3}-Ci!^skeV1t6RiJ14mR>t7+DisI-1;_H- z<>#46cDk;tX<<S5Y~U1S&uH`^^pD|=eP=^;h19^><*DZ(Sk~Ab6<x&QAunU5R^u}Y zZBaZPH(wpYY8e#;UDo5?q*5xE(-?#C$~(KxYsap5FrM9cvdK)q)pi4X=o{U48g*Xb z#LE!%fn?8S`BEU~VyGhglr<{3j8wGeG^ugZdBFbzM&i#_#b>g@)eIcN-z|C}W*Myz zLWs}sEPW!wqZ}UgAMj|CinvkWR_(-q><XyBjb^(j$E^Ac8=Es725wTp=7QD=1nVj= zHHI&9#}u>-jq)+Tjl~Ee#*az?z=0)0)UUxGpk?E{$ch2D48}!SATA+mqJpevs@G@- zvtI4fRpJMEH-Ipt%Z_R&G<KVH1%RATZ#d~~go356`7URkoUPzPr)UnkYUa_|9;PMw zh3Z23l@Aoe%eWsBf4>hAjWgI~qFNpc&OMO4GtxE{0UgAOb<k+FKrt0Uy()FQV++wb z9i2)@(Hc6XIS4Mg321rJ6i|e&Lbul>h&;;BLKBJE!Zg6^n$jR%S1GCZ#5nL22IYaj zA(bg^$e0(x$yCN6OycsR6qnsLA?F+I2c|ky!@ooCm%SrQ-{OAReTjW;sj$yjq96?| z;2hZ660hjub0<d)=b#3Pj3SSN-6(BI+X5cz1Cip8yYrwO?Ff?dAR7^Y6PSlf=-3FW zM57R=rO_Qvb$!bC88^!|u_<#js~mDQ@A#dcYC6y2mDBjm@qmmlejKqdUK}(0%fuFj zOQ=7mJrf4YQ4ezmog6IX+tw=|bb^7_x*aNm=l<53_`ImKIzIQc8u3}1^w<XSW87l8 zSQ8U{Ki3%k$()%{u#hjY4r?k%t!3U7g~pc`8edjud}*O^dY=NYbWnxo!SLW4z|{C- zXt+z`;;n4_s6yk<Dl~p%q46UMjcXgA_gp&x{dqVvE^j59#tt-FQMT@`4jG<bXz_W4 z7LO^kcyysfZ5H%av|rGlBmU&E?9w6xLSf6jRJ561hu0M;jobkg)I+hlClH%+1}!=b z%X=+#L13+R6-S+3wapa|Vqld!m`%9hbdJ_rwm15)v3sm_>Nqt`yds+kv$1XIc^fle z`v-RQHTpo>P4Wqu?K-U@PP!SMJYrI(Ioxe}mX;f)s>==Mw__(O%MIT=0&{fvlTdPj z>HkfWnHEcre?0Ui{KHit_Af3rAfSIK{&DYkxO9}ajt;L}i5=s-Ryz(}^FWtf<9ka3 z_#9+!9!Oi+4wm<io!gE@oWZaN*K_DRH049jgEr23_A|NkY=?5$ekL#0;Cg`{hmIwW z+}8_oTMt0I>*8hu<IApyyL&?%<<n6Rtp{^dJe>O&3St4D1B<7^h1UuDoRqHfQm5`W zj&5yXt4*OThEx?#fM@#*ePWftK6U_hl>pe{@HhZ|$8G{(yaE7qT}ey_AU3Qp28-^( zW?s`@!z*`C0hsWrJ<Uvjl@6Rr&)%DHPlrF!zpnaDXLtnFJE(e?bedjRY;55+OFFQ& z@>0t>9FW-K5kI5s04s;mjl!@fx1zk>x1m7zHU>K~R0!x0FTe?o|BV%^qVuf2t+ioC zW1y9f3vT=sbXbFD+x_4Qjs7uw_u2@{R<;bCbQ}LyXsO^fBwU6h-<7tB#HP~>BqHWA ztQQOz-R?tp1bo7-C4ZT&K<NF@fd>?xaU$NS_b+apiB)gt!HX4GJ-iKGQ%aAT{%@-{ ze5WiNQyL|tJyCAj6Q!v=QO4R6B`;Sgaz-sP@?mHj{J!|Zfnt?|`oAs9@LfwXN~0XK zN+=!ei89lkC`s*!@|8{0*#veQunF!oKofO%V%gf#fMW9PK6>7ffNh;($}suy&z%II z2rQ~&Nu3xOXl?+4>^{0zL`Tq`mOlgAd~OWNOyHirxMymPlL+R*6#s%-GwzO)YleSS z%BK%!*I;34+rF+ejoy={k=qa}#hhj`8{lc*GCJj3MmtGjPQ!0d;<hmQU!cP5X|0!| zL;`tF>s9tbr9)kF7s@(I*0SH8)+_A|!#~DsueMhVi(X%2uN)D4++c4U70xe&ymR0O zNmTg5L{L{66Y|78t$QHX(6Ynyaep(QPSq#oqV!`fhw3hW4Pf2v?*XoR{oMh(&tD1I z5>Utzj2$TgPnf_WiN=yKQN_rhh@y`f>hMWna&WV&U3!6?m~$LR3@`(Gxk+vx|6+Ig z4F6)lHSielX;79v2=5&2@-Di&(g<HWd~6N3Uo58!SDv~8tKO|NaN9y!n{{L6PY2%Y zyn3?;DiP7Wl_r*TYhtoX6K7cqQ-^5bla&^@o21+aL^JYId$4Lc!e85^xihV~nNo9` zN*(%ir8zBKmfM@?(!v?mLK$V{7Cu*LVM#ZXF>tUfz_)ZqS-FKTR$Abi<;k_zQu+HD zIklg-3abrcZu`r=!t{ZmrX455v4;lYx}iOT_9O+E4*G=N4&~?Y^u(_w2<O>a*hRto zdZl180&iOc1v6|d%s0viJf=3^zg}kHr-Gu_VHU2cn1$W*mCeWP?e6)8!-V5$POu0e zQ-F0ox(c{T8KfuhaS*~dZz1pt+DYs06o%KTZ&yee!tyAGkp7nKt-lkSIh&qoMt5Nm zl&3$vWjjUE*{!p;LMAgWbr<LnOx3XjeP?5}Gp9=oUnHocd`Oz|34v?dDEFvJK#Vb% zkI!SK1o6>@9xKqk4DC@tloc1Us4F$NwAa^KZ5vnCaF<SBYaMo90B#hJYnaPpS{q~( zB?@4@lLaVOQ2-t`7FbCR%6~-IAgIw7$M6^y$MA?nE~##K#44DOi$|=2^?5NYItjT* z#mbj79Xw)D$=1g39Cl3L5vxWDvB4vjf)quAM=S+NXyOqIUs@5vBNpovAcIFN#VG~` zk636!{7c!ed~^Y>r=_);Ii46&HO~UgY@pks@2L^vqt;k>RB#(1+~I1wV>t2iZS7cx z$78U$6pum7t(H;}Z&V|Xfa&V2BKp}^C)LBxNlC42Pp!D>L0g#Tu+afyvbZ&K`(C)x zCERS4#$Rw0X;?VJC7bD`+iBe(kS;MD=cneqlXl(`WE|KbgHGVGgnn^L>+S>Lcp0h( z?jW~&8RLuK+4l?I1#KWXGP;3eD?TsDvbRto=f<Wod8j00{2-bRGMOiLSU(US=80>y zAvwe5J9-?3v?z*azwlD2c_`{@-6*Q#^p=*6K;x-saQL?9FnU~;&fbj2esDDg!Up5O z@pV%!(umuZ>NmefOVCZfXqq<67Tq0$_iB5Oy2BcKkD?bEChLpBo}<Tvy`ch86cT1b z0!NWK_Jsse78B+|!kj1Uw}eE^JK7OT51B!1rxoo-0avMX=bK)@hRhMqFJMIYlH!u^ zg)ioV!5M2jS_zUCbD-JvXqHL<=$9*d@pmTR=8?1$)q)pP3MNT=Lq8<#{FmNH`ts&7 zx@xextczPQxqXxTaP>^Sxe}@ALXwH(U75*@)VPl5Co}9rbSIZx>Cob-XtR;}_KEtO zDxLZwb-6AZsY}jlo}c3!#;Gq-SHmbFQkPR-q%NnvNL)^Rk+uT$McN9~7ilX{pVO8z z5m4WO08^m8gJtSFuN@Kh1*1OW*j(O=)E7vx3-vjXLJ-<2Aj?1$I`suo949H7eX*xC zk?7LT|AGh*qn_j!zsz`|i*DGO{L+0q!5O}<@F=y%T8k`|t;H9%7GHGQSVwCHVY6Fn zVE&zFRm^lF^N7BA=EqdE;6(}V6<6nni^~ypu=wsj@ZqCs_79=eoF|HzhTBr-X!md< zKT?_}y8OY9F($*>Tv1bF30G%jq9G&f-OaaP`tbBBOsR%=v{`tOMTa$PpCcvT+!@B4 z;>kzj?by~Qj2LZMd<#~Id0dtb3Xk_ubw4cGmQig1AcDwiAmV~z2Z*f1sgE!Q+Q1yH ztWjQEflhW1P8nN(6*F5Ufy+~U^UzM0f>%`vCf+K2u={1%pqF8%7yJ>)%y*yL{t}^3 zDm7=)O5|oL-O`XZGp<ew@@DGl(vLS&`<8nA|FQQbaF$lpy=a|tYOZc+1f?02Q`HR= zb2F%|L9FwIB%R?V?KSVE^Kvh@gYiCc&A_`!uH**r(A7f$-AyqUb0KOsLrJNKrGOS7 zP=Z4XiUlH;ic%_S6N$E0l=uIyVejvJ-*>932TXF`JN4^6XMf)w)?Rz<wbx#2?X_1@ z02k?aC1vmqAu@{Logf%BA&~4$0R(kU6=Jin1L%J!kjroAbxckdB@v}_c@6~+#dG-$ z^$z88`3=nsy~6MtM$ZgMudj!`8A*3g#6U(TX*%La*k5^S^dWq|kzOn~r`ka~Gt_)h zY{sZrY?qU}NiG-1>T(?8P8vskJrMyxMJt7hY)b*JFNtwOrbGLPMApUa>hi%A>-+5= zLjfLi(82H>I<#8t?d@B#WT}J#Jn|^S0*ovBR5`!2KcAsQ#-^)HRl>$(SSW6$a!x87 zZ5_KiA<o%~D3rNtIS$;!o{0;_7pSvfSUL>-Y(*(}y3$(~f#7I74wuy`KXc|_%xuP2 zH(T(hZ7oT$vjF*pT@=?BveLArff{{@)(SyUCQw~(;(e5m9SO+f;Y<b2CD4JxnF+dg z=<*T44Is}j`kzcOAV32ZinDyb_GlRUXA2sI_wCZ-hgmO!--(KlIwG#hThR)oMrgr+ zG^h$`Vn74K;yoqSqG4Ryr@koqf<_7krr~s^mT_F2N73e4jIVeInvs}#tb}SKJ~#~R z3b;e9o@Xf^QOyeB-kOB+02+Vz(^k6#WR_f_Jwg`iZnDog5`Ix4BqClNvD&b)^Mq({ zJpq+d%qHg2ZM<EAn`)z_<obFTGGh&Ws$HXGU2DPpK8#}rJc+EGW(?R2I6Z(qLTpbi zB-jq3Oz_Fr?)gj*+~MhE;90;#-DLIv)J+kn`*m4_vIF%&P&5&Zqc*`&bP_dQg`Qj6 zbHXH8v5WvJ01SZacf`=m5ts)Q81>hi$fEKCF{7c<Gvb_URacIQ3VLvs`CT(GByWpC z;4__zcxwS7?<3vP`_COBq51~Na*HUh;0TCxS=`ELIuZ{)sGloXOh8bff%OQ3S34FN zG)f-cCnY=9%->KLFiIW=VZsMRFbV12(?Fz70mGL~{vnsNP1+yQK@?MBLw+0Nk?bJf z5z%FMJxD2UR4H#-A}9*w#Zk3kMizl4j?zbBZJ*Uqq8}iM#`6XdZPX#Po^AEC^=v!~ z>7B9e$Fy!*a0~06C)Og|AIsHE<7{!=S-9?sWgl0#7?-`U>~Oa1$8%+0quAe$4NllT zcmiCdpjz3bXU5@^v0igIW@vfcwTsaU;wm|<vi(y)nHC9t96<-g$VaOhvy3|dV$4l6 z4T_IpCq8l;Rp|(~3F}ux@VyZryK|Ba1dBI?yoS(<gtdW*xW>pi=BHzYri{~==@YFw zQ6?SkNqbOtV5jVXZLG1P&qI#ho|mH^h!B`yBu6zfo41*K!H04MMKRDYT{**SM;iF? zR4kWuRy4xW$(1FtM`Ag1I}DC-L6$IfV@QhQ_W4-W+SHRX4Gf=ROojlz7|U6kaj)>b z{U9|K?-j}ed+QJK;%~LcIRV|I>ONIuMs8FoFRFL>e*4jh2A=~CSbU%fioJb(6cZ0W zqQC#hqd=Ob{+TQg61QiB#AA@XHW`J)A&4dxm1IbTrTe+498KYY%O(tb6ju2EQ0uuA zolGjiv0%pHgohNwt}+cAm=j>Zku7*)C&I>5c7+_Q2cT_*JQ~1I0H7lU+96z9DOoAQ zXp}#o__HO*XlBZ18W?$4!pRXb@`uq#Sek-7VoQ_BBa!wtL^w_U;8<kkkMUoR{Bc19 z#@5Lr1!?11>|PWz8g@Nnlt0Gjlt1v+<PU~(rC6O8Klla$b&x(7f7>Kq6tCu`58ec^ z)F6)12lBe~;iB*~_A_wxFfuq>s9<F0vH-GVSin^g5he>PLHis)&l_X`lS;zE5@Z9D z1xz-Gq;Yku+hhSmhbXSw#M)5zSw_89b#6(%CRa73-a@bq%m~)Cv8;&#lsyZ}Dj2co zb-AL4s&W7h2i$YXZn77HXopYivFueC$J|8E8QV{8<9>1po>Srs>v2H1JJXr$Wm`zm zC$Kr&Qbg$97ooE)CF^b6Ql4!)%4tkUxa$dIZvg}cI;)eN0+<E75G2bq_m@Bq)~h;@ z1S>{GcAGpL(%S|uM3XIcUfe5=N(nGiT;tQ%PW9h1RJ|Bghr|I$$Udzu`#ip9Xy`Uo z0-@;N%C=GX9CnaU1GQH>1xjYM`*OeoxxZwL{pEP7XF!TbHZ5WX*~e(ggz|{K4@dMp zq#`0ud<gpByu;qS5sle_4|Xy*Q0*(o18zp0%Np0s($Af-i7OV$rXR;YTw9%2T#rKt z3i2gorjVe#6cQpU`C7k?f|D)ulZ8SP2Qe)$G93UnTFcD8AePw%CQR3UmE%0SEfTru z`tjIr<IB`6<CG(TMe|`p<$|G;zRQI{h-F_x$Jtj)U^SnIfLI{seIkNp0%DN!!i2NY zRG=ck+!KptMLmb#N}2>0i+(B=O-p+jv9v&*y)PC_>xCQl_FN@0eEu`BT<(O*o%BEV z6Anct1&C?;w%}tz8UnB|f;C34i5cO=jJPF-In5hAdEhz3=EH=7Eu80+s7<AH_p|m` z9`ZVG>d#{q2*Y&ANba27=9CWHa)S=-NyIB|=k~T=c$G{r(bUe%=e+(@&cZnytIMfX zZ!M+l?B#*-0I*acj+*0Thr?z*6m$)!E%wdQZC^Vo%52F(`;7^iOph$f4Ck79sOy@; zq@QfIwm3fr<b=W9-5BAbJ30xs{sDRz0Mw-FH=@zC%cSb%dClufnck2I)+XGjnoK^o zC<k;XV!jb13_2f~95Y^`V}!VS;v1TNNkhwz@W)#cc;diAXiEa^K4jo6i5x%2x12r4 zH#GVkd=7sbaj<~14KH>|;9bM3n-aLzkfIX!)xZyEO9H1FI09`+;86olAnc9BhXy7{ z$WejCctXT?Pl&G26VMe}nY-R=_JvDW!{aTMx{Rr>dFpbezT~MZnEIiou4L+HD|QtV zziSD~cF7~2?`o$0!d_j&#6Mc%S|&p6*D>`IFLgarhg!xPn0Uco-N;n0y`oMj`JngZ zCZ=lk>U~U{Zi$<jxZkVb?N-SbJ@o;maKc?wn;&H2YOin$Q!}0suJc=xXFYWbQ-5Z~ zZe`-T{^~ZSPPJFOFe~{hON=oQ;QbI&Z?ac+Frf`|l%leNeA)R3XIPe0aqqZO_pPd( z=UhnpOa`$EGEXw|VsOzRR~o)t=W7sW$6c+#9hbHx<-_lOT?a!xETrMx^3-oJ_dDQX z>UW7l_L;hwi|lZ1?8cKS(x?HS7JtzWV}d1BxiE+R45o2V7XiGF?8s<5#gnp44aKJJ zFB|7IjG6Sr<MGf-kc-zJU7X<!n__X}4Lt26qA&oV-xMM)%CsK4?q~yJlB1jQj$#Z1 z8&&Y3JS${<QpP*R0xmxk6;OYwPtfA-K2PPyF56r10mB5GP1eEsr#Mvc=67}p#}kd= z<IrWsz_6wsO4zQHCCDOqJky~j?c$Nz#{-F-Wk@mU)&&q3*qi{3(1J$VB{qK#Vq@j5 zb_;5)wGp(hDJ7|28wpY<iO3~EGJz?fS`a3<d9WU+5j5;?(mimRCiqU$gk9yBppF=I zI1TQto;J8`0>v4yF2enk!X4cJcM7+LfC`L)v=e|6VlyeL=)|e4yWd&_(%GH+NuA8} z8*4Kd8srU&kS8%U==Fq;9YE95XSA@&=`)yE#k|UcXV8}g5`~2D9~zBX_4?WjmA;Nt zIuh6Mdk_Ov_&8ac6Cs!;N7dYpBEHwe>L&G)91U|YnmxZZ7&98Jdq$@x`fP%dh;eL2 zOJNv{{=?84D1mp{4481zuqiO9=?Ln&2*Ed0hEl^%zl$Svw3(Tq8)6xQ`d~0La3=^Y zZ&!p6W-9GL_!R~(=xw({7@hd$fsF1Ny;Q{H0^=xD1k@oz!^jggtMJvq@+;H&J9my^ zPqTvkrU;R#*fpp_y~J*CgwzatmhP}uDR^gdTEc5zJuc2PD=Uv+p~&i9$YnTgCP5dt z=jEmyLHA38_($t3Z$;A!odAt>U?m{ONU;MrXd>2Q^yf^JlQVDV7S2vU6DIYDEsjAB zWJ6!=*89_x2gCuoJa+9V9U$6Apc=?@ZKZats24csCiX&twgTgHWMu%?>NU=QYhyDu zrr7s0>k43yI>6<$JT}rFx+qhEBLe8<H|b6|90(wG;zp|-ZZKPVu@+QYu$7Yaktejm zd@`b*a-ub&-j*fWn<B8ct6-ug8Z;i*83;abVeorn!o(YX5A?NV`hRn*()zE5wIn-F z>9wKQa_V}7Qk@lq`AATmWfKQNq0sR}9BgTd1722?)YoEdN42rQEfFM>2Gni@ETK2x zJRn^W@j|Dv6ZN)OgLR5ESoRf|1RUVyy=8XFfk#IY$3HrvzcGm-Tz53>2=7GF`XjSs zIxMuT+?gk_gm=3B#o9j{VSYmCU9}|3Qe&&*iFmRozd|*1E9AmFthhGrI2B<5Qh33i zI^SVxoe2QJNMvTB$E#Vx$|@q$we#01(XsK$Ur~QRHK?p%Rd1(Uh)MC6BfCPo>EZ>+ zRxMyb5LuO)4$7=l)Sa|-B=+}XvA<?+R3SUkY%n9Bzhk&KkfU#!LbA11z*te<wF2>% z=)J4%(KB4Bz42Kl9LVi)4aXW+BqN4$>|2&4O+=7QZzKAJ<U7x}P>NE?Ycu5h$yn+; zJu>%IxCKqHLm;t6#ZRu;yJH18J;YdNN<1yn-joOY4{}6bi^vi52i09Zg@|y7y&Ha7 zb4AG=%7_Y_Q*dz%0_~Z}t7OsWz(^qY3}%EK-i(93t{y76O9cdroqINJJS~e8Cta?M z3hQ=IbjS{hp50rnslTQWZHALw80)r4uL_1$OJ!~{Vod{^*=YImyqScE>5-{_Q?7o? zr}eMQ)_-x+`gI!yTCwrxh%YA@1Yrxbkt2iQ*uDu@O74;QgQxXXEKpAt`b%SJ!wyfz zNIwCFtX!C6q<ZoLo5c|fwL3VkjIwzg+RI}DCQ#9*F}M$yl4l?%R9zX%8DMQGp{m)U z9mpt@+1a9vZmmvr3rXd`!J;C2sLblE&EzS>cV+`tBj>&IcOWhN=0c*+Bcg7K9X3X< zn<-=9KvZCM!ua}?P9U<WrpX9HY;=*&jiy*zk=wEEW<S+F4|V}Yv0qDz80N9%kb^w% z<b*}O=~j1RhBL?si?G#=T_3E6oG&OVq}nhw3s#nr9rv0eKRU01TPYd6VR1xs=syuX zx;dw|-4GkuP!WDh$X$B_F4HIg4#n(|Z9t~qVW-6K6ALHK2f|wZ*3#l+^vBR(<L*QA zIcJDA^&iJ19!N%h@HvvK?1Bk>zmR388_}wZHjCv4Dh>8~1$(7GtE%9T38~HTXTO|) zgWSgRYoSc1He-1+Of6ve8@l5a=j^bP-xPamBcKQ5WF2xoG<tnAbk7Xs(7id<Xy|V1 z2}t7V7BHU`y)TX>Q?ocM1hkj8l0JyXWyw~@tZ|Zlk<L}afW^MLXj2-qK&NANdBiNx z3GFRH+0YIOyZVmHsH)Sd`5ak^&7vK>&Y!1wrn0p#)C^_~bVB0#+<c-8XC{ga&T?Bp z3BiCs5E!u#2rx)SjJGQlzA&0=>Y>6d#|f!(G@a*y)b(5hPhMMCo@L5Rgt4TKIF3Ol z8(7s?!c#qAnn7>sB7SXok<8=+tb=WAjI&qeC+&<b9g!8Ri=f|fxPY!)5Ir@15JXx5 z)>b*;g2oZC%V;<hshtQCoOHrhEa`;qq>DPCqkCHkqwA(H6`L@sJ2C5Ao*7bhqo(FA z?rui12VvLLLkZj6P$z{Ym}*Yn>vNA_(q}=yB+)K?v|}EuT<lV>CRqw2htNm&syR;q zjb!@McnT;E;F@~KX`F;yKgG)jlIaX9r;Iat<1X-)!PtiJ7V-n9w;U^98?zfjL3Utu z5vL8l5$mEeuqK-u6jtR>6!E<bxp+w4mY)7a8`C^RxPvlbFcR2=$VdWT#@j`)$Ht`c zJw_p)<6OV$7vvb~Q0#?uTIEHZ0l7|J5VKpSk)4ax9G%v^5>UA}I-MKTOc!VKYsRJs zb67Lx7}w1)dupL*+C}JiXj|q^LDvtCY%=QWhYzleH8s?8t{)gKnjSdZas7~CPwF)F zEYhm^UPrd@*q3sce-|p@>oOc*4^_gUx}B+nLq;3qU%yH?K=9l#vLww%B^=5a)c^V_ z;Q-P9ek$S6wO3Xp9GbB)-McDbtv$b~+)b5m0Cw-GghQ3q|GlpgZia)VD&YXqZmWbt z4c4i>qY`e`k-ei54lw_JL?s;h`|n3396;VBm2fDvyDH&O!N00Xcr+s_?3PM6RPqX_ zghSmn>360Q*8F+i+)O2$t$$}K;b!%#h#xn<6wDh{!c@)LmN4x9hwGvJ-BJmM(uSSA zt`ZInm_RjOm2fC$fXzoGoG&91{v38(NbIXk-vZ22fIric+<zl^7L(X7#9i-=hVeXw z?3qe90RL-O2|v~>{&Y})bedYLo!Y7<&Q9;oFapklS~Zx4`l-~x{hh$+GX4~&GY0yi zpRYZXcrDmt;l1ihmD*K(<mNn%Q&yEUSP!jFsKPfGM(BLTy&#(sTb<UgN<eP)10bRw z<J*%;ixndLcsl|=)~F%Ct-;Wc0#va{Ry7Po^B`Qi;T^m+gFsOu1@GWH$I{-x?sGr| z!jO3zMiO094|UDQJNU!YBke5YlF~x<e<;TeZQ)0>p7aV=V<N1GJh&&ZubY$1?U^3) zIB(jVxC$n1suaof`td(UWp#+yKo1msB(`hb24d$!R;!cCN(>!si9E)UvaCfm8nmjb z8Yg{L$vRXIklMkTa5BWST_77fShI>i_6tM@p=~`HLiM$F1J*Abp8-RGiB0YakzacG zjB$M9@j~@>JTDII#t2F{LBcBF$^iPT)aW@6!Lt=+Av)RPoJ{-rwRDxJgxiGbWwFt| z203YZtt6EVG){=lm)X{zgBj3*Z^WHu(5rn0lRJ($PXjHYy5#(W&SR{J_N0zGg3t9V zhYlsB!E=)HkH|fv=SUk~(qNxd#r205pU^R(g7(hF9WN4%8j&A?n)W}zWaXiNo}Suk z@uilVSvx4A>J@nMS{mvYsOu4L!O~F1P<>xy{z~)kt0ERJ>5zTC8gQJ)fJAbbzdDw& zE3v`>T_+z>7Dr!!2y66pvE*FGb9Et#Lw!RmmOGuhj#GBmV!B|e9>SU05~nKt2lbdO zCu{S0I-Z%Qr2g8nz}g3rI()n`^K?a+r#vww^K?byte}IHOa#!b%u|YvbI(&Bep{SH z9h+L3hw1@Ro2RTYSP=vWpQi&dQUVdL$}uN|0iT=$c8L#MY2YJ6%Is}3vV?n0I|f>U z3AH6Sj0=&bEwNd}cvn;=BM!?DPR1pr4fIzLZ&*$Oom+IR36GG+o_4}Hu62DMJmeZ? z9m1j`tg6hq4$irb#yN+pzd7qNPtQSAEHu-}3OjQZB7TZi*vSez3oFb#Wre7WC-P7& zZhM6@7{;AZHmFPP>Zy^Ts1Pe>(0uKl&P>%ArfmUVR%A>HzB-(RxwGz9#xc%LL#K`= z)9~t8a;|B(A~Sohjm2`)@KU;lH@{pBQ;uN@`LPgeQGTioSMsj7cV;G<$WX(rHq#KF z1GuZT)atDgXhxQ=n1t7MtE~bQSX2Vym2xC7FkcdKpR5XunAT2zPNhxFBXkIo!Hbu1 z1pw%cd4v-2qjd-`D#GJ?+riJ_QT5gmq7HG9!Ao@xwQ^pnm8Dv}R4WJvs}f69IBRHs z^;ts`I)$^WW&VPCz)0MmaM8f6B$!%#tww=mlyB=1LR8NxB8qbi@)5DsjRg>?qNlat z)<PmoF9kUw+!W!;U5|Lx0?@>QLIZJDdfHhU^m9@X%ND+^|1n5H`T{-)j?kQwPh<$} z&@3mPjKKw5;)<M{r<zlo`~+a#PBdpYIko0{$jJkwO^-4caB|+x&XdfttPFTyEXXk$ z6l;Joh#pu5KW|Saal?sUXa|bM0W!qOO8$u<sP%q8luOzqkQQbD<7IX5EoK&2pGr|n z(4x3PD?e{fF>_<_cobPY{Hr}<IX*?iXMc)w{k|N?4HyVn-I;WQ?Sf<D3l|6Ts~b1N z;;RSm8rKTBoY+}AR)q``FXHwK&p`;J4!Cw>_DVC^8oO{^tgJp*GmhY08<s&NKGv9d zgxis0jR4awPw-+UOQI*f2z9gG?tHzOM_A}m_3m%=_T=j2#UKLjZq@sGAQ}7`S2Xj^ z2V8<6mPE#l;^soB1Q(1jzF`;L*+rf`3a@zz9j|fv5T5){4&XH|W|7zZc+Jo~`Wm-M zP?+vYaMO#tJ{+$pB<X8h@51niSh?}qR@Z%dYD<xcs&NnsdE0KUu1T7)>F+3VexM$v zo$)ofg)ng+3a-f6z4w+}8Ih$Dhmd9TcWmdDTp98A4Bpo)ll6SREmuZl_TXs8GA)_4 zdn{Kb$m}~27RF=AT@e;O5{u=8g{$bO+q26H0~UeTi`Xu5goqLz^4M8_;P-_>#XT9G z{~GfAra}d!h>U;SntG_hR$*4rRQe!W)q6t4Xm&yi@7h5yfAC%@WC98AGXmdHSvW0% zbmB!fBnrF}b}8?aTY~YmCHw0;0|B)u&jhDzOJ1+<5FJAJ8To+m2Z+_(LwMY!G7Lp( zmvcM^IP4G}TaGTdn_DFz&jGGGgvXWxGd5QTLC0guft_#rmTCuN9`FS42KmvAfdBGi z0m2?r9I_<`8+b%<^d$#JPq^fyr6fj&A)jb9$CX2nhJFEDs8#p~^$omEl*j9N`;q); z0p7ugGza(HoYBl7Hw1E2z=!lLx7)ljlyBuOL3xWMk!*+_WD9#No-YToNSG>q+C;>f zlM`JLY0fy2a)`M&(N(!J$|2_BL|5m^2#1)H6J47tBdWtWInnjGGBMQFEI0GrJ7El9 z19ssE`2c;n;wKvceX2dbwV2Fs0ddfs>Ihql?YL>l_Yx(J?_`@i7%JOdW0+Slh2t!v zOie1kg&#6gJX(&DR#rH1@M7GiH$(-6+q9=`CqJX<xI(P22Y@H^EDQ(}P<@(C&N%)v z%k6h@Ym&*Dr+zedq$i~@xG>j@>YETDn8=6$J%NpMkH(U>d74ew20`4?JQ4e{F*fpm z_J#X8J&Wupr*gT*>8abcxA{%rh%DB@sL2%uz-+@;8~GO`QE&(Og%dEk!-DLFeU&`x z!mpD2BELj-7Q`3CVrdmRNNx!!C*#^MT)x8lq9norj=1ur2%+G<2x%q7AZFql`Uz-0 zY~KiFp8f=E5HkVi`3G^A*$y6teHjzN;orrFxExM7<vv4X$xv7vgu-~mV6xa{z6&XC z9<#4`tz-|h1!R{H$!z;r=Jt{9S1yE;@yYg)N*Asa8vu^#Ca6io&X89%>&}pL9*`fm zhJ}x7QyqnS!!#4h?G3Msqn+CuexYs7nT|PL1yyH0R2|rd3qMH5VsaE|5I&Qc=2;EG z$bvY{i3V<vO`#wpNSA9g(M=UF2%ty4Wq-nD7z38nubY5e8+IujS_`NFRH|#L>{4Vq z0TI92eI5v{tJ;1ZbkW`C;W9&^g_K&E6hVbDwN*|D=iyd7987ZsgejmUr#{Y742cQ! z#=47MwE?Ga_ZFoEf417vn<FJ!5tNil>p`717gRq!(s~ZMDHst^W~4Kud3%!69wZt} zgY)`2*&lp@{#?PAPWGAfp#-mT4yy--1=*|`zY+6Bf*o^qLiZ=yHq&*yK2S7=)Q2(> zbkWl$3voK8CmPAf&^OitP37o$Gez1x({+I6j{?o>Artx~Ymjh>6mI{e^&5fubH~`H zGL%mpMDW7K5|vV&p_5RQ;b>W{0xaUZbZYR*J&=~lqP%XyO9U^&ylAaaqsEA_S`ojo za-~#DtUmj+FzOIluTB=QWRdTn#8O=XN0z%t;a$H4nalT$$hjU9L?S;z^Kb(uV4Lt- zloSoN?;t&t_fphE$*>N=?_AJhD=WbHb7+Yn2SXWxYYoB68A(#u{^D~qTsPFgT45h5 zpeX6V*Q!WEa7<cQWxE=#sOykxN#l$_J-8;62i`kthoT5P$2-|HrayM?eacm!*I=Sc zia}_v_MF$(Bf@rWu3&SIdA$(v`4%=T5a1{asy*lSEx>(@TuN*?X~>g)(YpW>2~!E8 z_X0}XU`T8o5J8{vtKZM8K6udEjoesox|thY0G`m5YMD2}(8RW&M-0l8Nz&?SJ^!7O zFK(&_vb1fah_RMWO?>t2?)c_d$ZjLgS*NVgC}Vsema&F(r|ailxjW7^v?Ug@hD4Ax z?Yu#k<p;OKLOFi$+@AA;@&Nz96_y!Sz&TZZ#I&r+PF}0*AHQ9hde7#(;d2?@@cKD; zLm8~$WtvjS8&D@FtVtWCz!nZRwm=W_1I05y$ii<%mO{8Un?#m8ci?$_)GHRO1@gFP zy@KE)>y@a>xd;V$2Lwo028LwVyUYmp@?o>toEcHKN+s4#nGtnmvQ4#n1*ja`BW6T4 zm}W-gcDu-o4nvX1jD-I<Ga_fAq~k1Mf$^LL8J;7L!AAlUY10zmL&|?3z@8@zrC^}R zX9@)q@R_EJMy=!$Eo7&RW=lQL`1~2oEwRwN8O?36%={V6SS&PuMsr6jlw&lP^g!^~ zJ(m?_FxmgXaNf`&9}I|Wul1l5FHFLR$Kq3B2x97h-{86u+*cB~PHna=zwO?Z;XGLB zO10VcclVW+ib;yQ>Y54QCC=y>l~cmDdmOgrB*eOzWU6XA(FrC}yKWRs?@@8Xmvete z`BgY3?C`Yhy6gE}cYxP+-B@V>)Dt`ah+X%P7`^e}tM=f6)HXcRyp%F{xJPy^4BF1= zgK=x3<H_13TJ>n3V~1&6;uEwi_FLo^`@JYxYz9zn`@rOJnK?OUve+a#2Hp{i6_>ba zp8G+iIk-=CG!pE^)&+vCzvH5NaRl2o_IhAtx)u8*Z0HHVViC|zM8gMR%>W>7m4ZO0 z*R^1KE^wTRd)pz^A!LH-<BmrmTC;@z!z4vptNbrln<p<HsxCF!0=X`Q)dSc9HsKKV z+Nn$&?1kY~P*>#^jkULnw(v+4kZ8OjHL-})&;PA{?#NrIe4x*dl%Y&VYZoL`y-(u^ zJP@ZV87o;EKq;ct#5%zhg#u%RK0TC4xqfgV6s@Y%xCBqRScDqMsl{okp+++sr)s2p zOveK;P~cd+ZR>fWwH9|lg^w}+cD}983S}RRV{P0>%p8rfQnt|6T%nwuBPYq-mMf!L zOg%-aLRpp&KNQQPnQ~BlLHe^pv5|N`9LrdTRQU6GN{KPs&YiK0wG*|N=eL6;7axpv zW(y{({t%+Q6p=1+&*_dl_x!SR1q+x8Lc!T=b*$n96Q<UQeL9%ic5xZSEeD<O)S-w( z)d%fl6LL;-CVO@AU_I1sRt;7CO~_6T(Y!mM-=sFI3+_3Aq>|ZN(xDz1QAhYVIjmdO z$X#7UgtO3`eXKOp5yxO%gyE-pR$n!PqsUIrLQykpwS@TSjax#xJRv(1VKWu(Ot^s* zv7gXqj5tHFDeErOJh060+Jg!sX>&4(gDm?o1)PPxk$Rje*iY{pS)#8+=w~qa$NpUu z8@1yc4esC4z2&L%=*z;<Z``Mf@#F{s!`lcAAP}g~`lLVye%83$&2+}W$hq%rilEq` zIQrM(a>y=@5TdDj;URl4<qwAK!K6L_{pGobp6#4nj480^;r@KO<i9b2ey=5d(pnRQ z{-c1RF1NTQLqCfd{qJC2tOij<KGojdzCO7)<A{DBz*LF#Z?)uS-*jg79fkb0`nO}a zpP_eVh-^(glrbV>8AQX&W?b7O<Ip>0Foxf`rB+q19oQqYh1WMN%n(>?Z^X;X(l<TB zMWF>Z%9|-;>$mU#(JGBxCL|e*8RL@Fdjm-!EZ#_H!|%)ynyUVFHl*o4;KSsaBZcUm zdkxyx+Y5_Y7)y{L)x=yDjExZ))&z%jEZKr4(C5i`GgP)8k|))Qql44hkP&;bDK>Mr z+AxlgW_-pbRf{<`)dD_pI2pAEp@1w@1&iT={SaRs#+RJVGpFMl(|H=-!AX-s85q#a z8P#&Kno2I=0OO}ao`JJ5{Bf${wT8%Q?<9YQ8mmP8<&HDNyUfXkE}9T&L^(5c21x?h z>kCEQMdi!v8CX8L<be1R`inrY0Oy5Lwlvt+om50Lp}AGAkE2h=x&<iEU3-unfNWYJ zY*>ESjjaG*>puYk51z40te;M!T{VU|q?;9cwT(SSZR>HHdxPF6&0c*;;WC1}SYF~V zToH%id%9q-YD9UIK5jdmi<QH*9nZ#+txtj04ZmRp8j~mTDm;sgTp1hrfi^;YNvf)P zdNsq!dqzQZ;Hak)tr*V}&|kqYA>DeqF5A;*=(0V2I>#97{tS*6_9$m?NU@BcL6sZ4 z2f47(tM(A3sjXko$y{H6$xI~Is(5*jA$V#}5qw?jyCIlWqwi=|z}!11zCJc%C}z~o zT}JWL-a|1hWTI43QpU&`d2bU^u2E2j+efR6sSXThG{tqje*@$_c{<*AQB^GpYMXzc zLpVV=4rx`ci$^8~udT+2gFN*tt%A{dtC-LFjIQMjzlq}s&t%y61oEd$(o>Rjfn-ur z<l<WRKxK!^Yzde}8XUt{8Qf2O5FV6M54Q3_1;8%jLL`-JP~+KXmsBD!9q4?TLK1*P zmL@E9RAYw5X*L#V;72;mh={-lf&R!r`P*2n?OKTqYiSPo%w*Eo=pC_9TQ2DL&+0Q3 z%2aI9mFzM%9xJuQfu3p<74ni2hqVdAm=J0fZm{i)MlLaVIvEK|7I6u<u*i{?J`j`c z%D_V>WK~i2*GWbK1LQf4!aU~NBjk=WPd7;UMf?$>BG?`=C4~z3=3NmD-`4@9lSO(` zW28bkZ(Q+_dOVAjI}}SjS9a~XBFvt0jTcN|*CHxvtUTHj4TnIM){g|0&`hFUOF=W8 z)kfltC^#!nN45eZw0mUr&J6ntKYzOYf;B@CdP>V$E@YVb(g1oF_5<7}_@c&z40$CF zr(JeYyFcRXhl)2=&n19s2UcDT9e%7`01y#_*p|2yUaJwUjM8Fn0_s?lYzvlEY>a&U zIbGMEnKP8K=30jo3`z*l;sOG>TXeDocxdkt^(=Qaq3fKE5CPELIPD&eU9^p}x(qqD zic>h2`D`qc^CkQiU4}d+ePy8B<PZA=#_{8aT1^S$*AV-uHdV^Y{ZD7)evSWB7M-QA z3f?u4mZwL{82KPhk24jd>8(tuFb(8q9sJkTLu0mKU}GFYv=PZl2F}R|q!n;YSvAXz zHpDuO#c5co>1^XeF{3rkjD?L)m$9`-aYG-sqV_M0)mr-^@MilI6q)Q#i`C8g^mn9# zi(-AoT~$$G>j5A$(VNC7(G|sY1MgJw=H&}=(w4Jw1^b9eLlpy;6E59c?J+&{b{!GD z>469-7cM%Gy~`$h8*3rGA~(=78ODiIo)gT+iPPR$0~!lzgMR$hJh6|PV;^5o7C=9j zu;$5Hh?WFmVRXv_^k8ftF}6JEEpI2y`4H`}w<`?Ab#O#$AFDnS4&*QsHgj>+xT@%D zy4$a{$muk%v}leG$3Dz^j$azf<mUM02km7WM>8&weh!YYx}_z>Dxg-th3%?X&^tJx zS%6yMK$t-Iff)pb5c!CPp^Dqvmma2{!;d%uS92bXJKT>w_PFDZKYp2fPB;-mYkG%m z4;1JfW-|QeWaO`H`;6-yFlr|Y|B)>KsbmNw1%BjPf-=^|O05kP&z3mWTTjC`_S+k{ zT!B)ypVr7*c6i!oxc*ylKC)Z`FCVN20BwuFW&|qMz4bI-q1f^iTE;8VE`MMigk?#E z40#ov#Tl_SwqiSk6SNhtDzgcjI!zjAtWKa&QT_yUo{J!~Ua*R|w(xkdW9#wDV+~oO zdlOkhu^WagHX}nuWQ_)76(dQP^K7S3s#&M#r*pLO+dUlSi*k@tmjy6|MlwU03>^|l zkR6*jtyjsAmMCasDu(-tiK^tsM+lr?I3uUwJ@!rD#i;)fdX>52WAZc}3o(SnZMSTE zzeEY-Fh<!n<Z%w@(Le}Kr$O(+?Xlk}s(HA9gFf4gN$o>$3l)*({DtRH<cr%o^GTu& zdI{jnMsB?#V#n4_=useKZ@^(IJ>&g(LPz~cE1v5iZ^+r`7*-QG<o#;A@9n8Q!hCA( z8!}I}#_<N=`zvzUH<{bqtWxozuVVkvdpYU{jiZo=XvsMg9Duk-klQ)Q>4#6t9XY%{ z*D)wRWOQWR5zw%`#ZnO_Eui39M`%tK5j(yqn3HiI!BQb>ocT9K2y7d{@O!8{%zUgq zp<JqQV#zUp$4G`^>F2D*DFqi$^p<O%<q*(c&R9~qq6pXfBV5nx8ZAXqa7Fr*h8-!= zU<xp%B?D$s8nDzTD_q9{Eb-2R2aaNYe{qY{d4g(eKVz*~3cDK&SfRJYT)P{ZGI>>L z8q-2}DagG?)B~g*=Kx=hy5KDs_hqOE(AflsmmJ8)c4ZvZJp-J!WwXHsI!uos#I(~g zdiuNLP}=O(6FuNP%C^Wkl1W(7$jhcr>ur~<CeQtI+Kgk`xT0nvwZK7r;#g_WZn}U) z&Y9M3I;umdNNk^q5I(2G#>R0|=xN-BvvKvrqzEeq?A=NRi1ieT3AecGR9S(tfYyN; zFX9yo^Sog!o~QRk5Wk}!>iImng0gXe(ZLe(9kn+~zYlU6xX3yzDM!?Zq)Zfr<WnGv zrf5qk$cRe_Ef7~AwcVT)_meZ=*bhDIxjBjh^tsr33!%Y)9t}pr+|KL^v5c9VCGIXH z_hR8?NJb9W()E<zBUsk>J$V|#E>Jz}jsWWK2n-J8nfl|gVWW55UKlq|>I<;uQq2G@ zNTVXCfwfb)nV$KD{FQQ<F{C&hBHq3dK{4*G0lS-U_kt#3T~EZij3cXgHP%(ckp<mh z%I(rZ@ePuLNRWXezk<Z~BwH)@)V|2?QjgkLAE`9ed|>a=g}n<D9n^Gy7@I_@dN#Aa zAT8AT%_R#Ve8KqSYG=xlu!uvxD!8z4T|HD|@hBDdSer5V8Oa-aMMe!yZhq+)+f7h! z61Mtt$6in0YbcS+l~L6C3s`|{X*BXpIB>OGnvA3}6v6$8GAj%tI3-we;8kFA{4K1i zs=tL(5$wRI2zJ=Y&oJRki_z9Y?+CMNG74bUu^in8W7#}>MtWbmv)>r|<u>-=!U|kj zAs>rzgN>}*iudYQzj{A>_J7T5^>VyJC|<c8d|_T4Hk%<AiJ4G;mC;K?@tS(bdA*uQ zX*Ppl<5ii}cQ9r&Zp4h5HL0KAdM4@^P<;4RnW0=4i@&Htsq$eQN)Fbv3~wA#j@dRj zPg@N`OV|>Op>H;}>t1384i69zgSmXX2V)u3dy`BB_1*+i(N>P4M(c#$7dNi^x|oTX z+$bhu?t<7O)0okZj^x=`AF#2#$LdF&LB)e!=GK}Eb9I`us-2sRcJWLbV2Gg;Y(&*@ zYTwV9#V?Ajm~KwZh0APO1>GF4(W5UP`qXdJEa>KF0~5)UNSaQM5vC%a%}|t#2Inc< zA{Z2MYA3-sRw-WM#8NP!ZPU@*ff2%J28YtAh3Hf`$2rYZ7|m@=r94VeHZ`0+(RYUW zOCwTjI2qWDl$@Cem&c4Y5e^{CL{ekRaT*B60)sZNIP&h7qi$hf)+4c6Yo8}~f_sv> z(77frb|%u}HL(H<s;T0!%_gc!LE5uMqm7`ZXns!myf(IBzN5U{Q14L1a7}h{uUjSB zwsi#;Qu<E{dT`UKU;x5-mr+Jw{h$RHP2)6S9n(H-&;_Z}(_jW+nu0L-ZYpc2ygq_z z%2_p3E;k|vHhjtK11ZzjpS#MV@mu3>`D|eA!>{TUy#%tfiS-!K>UcmDk_z2h8Kj6m z)-hZ_E0rd20^?SM8mpzKk@h_t@`Kvqy>MOgLluV(^_B^Sy53{I&je32$V|~WGSfp5 z8JdwEy_T~^|5~Whaaix1K7=MhI1aWvNEq-)eoN>)MsVqcl-8b92?Y;An3{d$RX~~V zXhx9;L%ua8YV}tYE!rWg@%e38w0|_BeOQCkiHO@!PPuBN+>gaF^VUIsJeJAnpr2we zqq&_r%LC2+uqGeh(n4KwtK2rH!6D%R%WG==p4vsYr&d4v?T;lH^leM=$PxLa`1#CI z%=0$25f|N{Spj)t@|a>6+E3i&3PP($^a9pRZaUP@`3s_I0a@XEoOns=e2Iu0tcSK{ zb&+LpX@N8})bC1OJX*?mBh$~NYE@hEg+I|U)W5Pg;fgA$P7oA*D6;mc^$`YRk6;m% zWU`F&MEIY}HoU^=yIDpJ`}NfH<V~)g3v%_yMjn&4BirqZV%G0!w{@yxgOu$fkpbpO zbemqTEU}by6U<kFuSOiy`$coBI%w|P7&J~?xXFd;{g}1TgBpV!#y~~%Vr;RvMTDxZ zssYDw_%4q9Fzq?mOu8~~nbgpX_Geb6;aJ{KZ{?v_;Q)>TH1INT%utKLlh(Wdc(mi~ zhMW=1OJg&(8Kn6$)o1XAPz;Zyb$k==z`E!<HR+|&kBNF49o46iBZ~~8Fr{mWFkKa4 zvQ4EF31rSLrCV{B8g*iY<F6fSgsBRcU|5gp42)<{m7&8aRT=8E6v7Q)A~Zeq$wQ-a zsrsnR5MyWxr9_saG{}5FfA|e-h2OG@YT-~QV({jO!Dn?6skULBilK2(RalcJm~g>s zk_lt^BL%yvUBu#U>V&uow`#CG?jZwoK$fkA5fvYbsK^}{c;9Pxac#kR(u?(kAB}&) zW1;OGdNZM%8>gibAlV8s`_lsB;`YoELjG2p{aG|F&SHaLx0a42-(x~!J&z^dXF{!k zW62MgXf>~v=b31;#1EO!Ezwx=BPRUR)Q_1!lsT9a5yF-Ub%hyAUSPs~Wd50n9?SL< zCKg!YMJ5(n;$N8H#qg}{r%dc)iJvjC$Pzo4*w+$2XX4eC_+L!yXNg}hvA-o=V&XNH z_$3pswZyNOIKUDwGqKnb^=>2%w8Z&L9At?#OdM>9K_(8d#9Ag^XNh%8yxtP)ncz-@ zo!h`f)e=)|wAT`!Wung#k1(;s5|1*m)DoX#;xJ2mo{7UP@dYN1u*4Uc=(of+CXTek zmzX%p5|1%)v?U&A;uuSOnTca9@f9YHv&0ij9B+xQGO^4O(@dOTi6@yj(GpKFagrsz z#>B~%c$$efSmNtUywMWRF!3f!e1nPQmf)^Fd9x+H$;4YM@hv8P!xG<S;uK3f%fwqP z@f{{kwZwOsc$+1jV`8$!Qd^n2&r`QBb-$->W$FP>-Nw{sJas!$4|-~hsfRrEA*LSo z)E!Jsd1{=g&wA>^Og-YMk1+M9r#{Nm=R9>MQ=j+L$C&zpr|x3vi=O&8Q`<Z>!PJ*L z^$DgP^VBDqdfZcYGxcRp-NV#ZJasQqPk8E6Onuc;pJr;>Q<F?R>8bmeddgGxGxar3 zJ;2n{p85<^U-#65Og-bNhnV_?rygc%##2y#q~N@Osge!tg-o1diHn#BJ>STb6VWCn zUi1n#GZh-Un5jS>JY19f)N@|KluxrunQ-oM855h{YfWFy)L&TQ3MRscU&&O!)>TY> z!i$YCRkdPQGx7J9xP}Rzk=HWetnfM}zU2U3&y;ih8<_YTtKmi_0{x6K^>Z(E6H`7Z z-^YYc@tc|ON%?*ze&~fhz|?!J_75^~tM_9IQ-S`c-lB5eTZ30Jo}|<^V4zsj()s{s z8SFt^sn^uQ%J^dyTJ}}_(GZv~M7BxyoMxI#dFVIr+z#o$<I<jPZFo9mPp9}a<wy<n zh15wU2P6p8<_ZndVxao&49H+B(uWB0h6wU@1zGnV%S<o9dQC?mI_*icN(HwlwIRas zH_U|;TBhH_%%&N&XH$44pfzAKrQb18teH+T;PamqIMszHK)jeWuV{yOr!djmqDIMB zFHwh1<~>POE~=pCLvV54MhGDs&IqK?^1P>U*fEpiu$$f>qHj2&@BZ?Vmfq4rbyo&v zpazjkGuRsT>p%n4Py_*BX;6Mu@z6U&T!Ha^W|tbjD%Uvc5mcgaIXWF6kW+~en0|)w z3nKWAREqLjUc~~a3+y&G#D>jo!&8PrcECODHv5|0X6(A74SU-1^uL6YpVGL==*5k* zN~bp=KB*&!^;&_6@`cc=g=B($zPo>-5E8Qn4OEA|R16iwO`!#ZirFSsvKKRgG7qSv zg8r{a>O5Ny0>q5)P|+(x(0}T)@e&sni}Escx@4uQKn8l%>x`P!M%8RU5_Vjy!5ue2 zmrM?1xWG_7Kx(0)RatA3S%C0R(QthA%Q;B863#@L@I(0_RP>5WsOWm7S3^bPxC9)s zAjDIHbS`!7F;sMAkUE)mhNokwXuQS7FNBJwdoIJ6fHGi2!*dVx+?je5!apYq7&fT` zY@!>1hq@4pxY{kDh&lhLF;OTOok*3Q2=m_%lbC0w7|j#;u*<NR#GMFk6`~5mu1_B< zo%PeyR5){+VS=c#2_V;R7_}D0><`f$unEjXcepH$keU5+r{HtZey_-t(NpkljbS_b zJ2JGZa%I#fAVovmqlSLPlGntNX|-v<hZW1-3v*p8meZW>#sxq-GBb|5>sq(~=$ehr zj@b7_DaJlhZ~;)LYd#kMJ=wmKojCYNPYXWEMmor<ZI9iVSJJ+e=?1;kYeS`AUmq@I zlx=J3p@=ElSOn^|5|%?m^a#JjHf_)Cw7=w8#AQ60Sr=@S951J3auFrn^g=C*eNf%^ z1Ebgc<VeFQ<cGxLlVZ6JOAh&Yj_B4#;D4d(JhWMu;uLYXm;-t_%peI_31~s*8!<*$ z9|`~HkHY#w_}#2vTyP|H2$%>N^)&b#(;-9*`V#t%o`k-mCpp9Gx(NI)6?k2RQ^2#X zGt+%QhxlwYpZN-B&+1%qCx3BBhC{E9t=N*Q`Y`m;FvJSahOY!Wa%Q}2d9_@v{Nruq zEpI5dSkPlC%OMafx+r}ww*@UcvU0Xc4y;F>rSAIHWykOhOQ|r^Zq%kXL_>@^tFh9v zq#IHv>pP2<D1eBJxE^dQ8D}I~B{EQVUi{Dn{PTNtYSll@25T*gEFQ)@rdBBO?{R7c z;9s$+6(%>Ni|`v$D*WEH=@bCoYtw1wrTlaXt^98^okr$0oj$p6Co5HX!2hsj9U?1M z1<qj56Z0dwVg~eLJg>NjRr8D3+RRMj=B+mBix^b@05_;b&S%24#A}#vE%6`|t}j^2 zglmb{G2vR`^-Q>ycmorzB_3kJwZs=N;acJgnQ$%fMNGJscq0?8CEmn@Yl$~A;acL0 znQ$%f3>KwihwC1`$yC*J4-yXJ1%LHzzWNtWJ<C+k0ey$5bFJ8SnFuPo=a_oVi_J3i z=a%t%OnB$N&qPpR{eY=KS9?6qRM0B@kSSNM{)ma71N<>lLCYwvXs$?kfv?_aE&nqU zj_IE;@qLHzMW$R6^)F2Pz7_f@6IVJ+vJ3qkd$ohFZuVC{XX;RU^}m?#c7MTyE2>{& zA}9iX$<&V=ieEA1ny8nVFkN3#zbq~6B*P{Gs(XwJ$;CV^ioI*<fy{rU%RjB0T<l!% z#}XYlAq0`|JJuX)8;rH>(Aqe~SX(tC5Uh<kf37*X2jQikCP)n96f!pNm-l4~Zioeq z^>IIyDma32z9<KOprKgmW_8Tty2)}us6s!vrZ@P_1R0y1Re3vh_QF`_7Oj(FA7#^w zaJw;Pv=!JhLim}da7$$Dp>+G=2mJa_O1FM}=yLqt@##QG6z5WCiM<_;ov@Wy<wSah ziU<d!n}UklQ`>e0Ay`H+X!gKr>;Wk%OB<KRrc5iP{?Ql&YNeonqAmfar-ecu%|<A@ zIu@U|dS@#cVM@D`mh46gBs)@yl<|4S0yZ_UMl=%zU!KpIZLC`RwqT#7POQ98wUY<7 z!+vXVeyJMDELGyCKjKRjw1TCTW6(F!+oA&0$=;h!bz?PC!Wl8%lB#66HA}y1>!JPz z336*`DMo<%4pIOX$1vU2TZ#My$=U>zY_9yY9e_*Y1VaxgL&zQmO`&Sx3CZwH538uH zRAgdzXmTh5xuYVgOx<CCz-))XnW^!_P__=pDaW&k%yhjl)@0oU`4Ns~!kbVCeH9=A zFD&GXU}O;^8=GQ8ea5Q+O!BTFK$kxGteYb|f+(8WFP%l~*NJ^N6Dd0zmOWuZ)0>($ zO|>Vtkr@PR&LO}vdgHDu<%Y_5t<CM!E)+;%_2a%v#q?!*!qez7)03V?-<Y2A^fFCv z^E5aW-v_@{XH~jMQ%=JSXWIaY&$?->0+|fQzP+UDjyl2njvSbS%dzn^*{f4fA<o5Q zFpFs(I=r0;*DLH`LTRHm(v$)GVBdKQujPUH|AA#3+oGx&lXJl|B#?e8Vy)Z@_`262 zUM<dNM|Lt>;32Uw!%q%F_S$UZC!^&A!L{IPiP5J&B;z|Th0iC_7=ZEcjK@ZiMWz{E zi~_rSeNNKN_#;)(3-ge+#MnZJ#K=TrLR6#vW)X+S6S4<K!nhX?ka9RUc^cKp>3M1c z7H8)Adg!fr`sztkkZWKZL%1lQiYu)MK9~p`_wZwqzNQt1ZiW4bidSB-qA^i<v{z1; z;)GhdPo9uIc|!W+3F#9OID1!>VBF9GQGP@~7HN`dT%2R&bxc&;A|h5&ffp?`y&eE7 za3?2CPDKBWUWJgLn1BIK5g(UDd|1Fn^=CKMBhvs=k+_lhfoY20ePt@(96QvAzxNzY z6~f*IV(}1@yl7V)-J#q%8v~YNr(t4c0rr^1#Q<NK1DGa_z$*n{1(HlMZ4abkhwPWw zse@_=fWb7)B)Z{p3YMwlw$HnI5CA3$RK(jz1jC|B(g=Yj_}^%m7{HHuNr;~AXA(1u zPgE_1)ws2G2%gg&iCL$e@uBSo)JQeP<S?FEzom;&bZvyq##DVe=N?m`^E7U-SjvDI zasbEKDf|$Q5nxd0k3)#`sHP*9u8)uymT0gg-H2Bxf7US$q;EzV7QaxDRAlZESG8U| z_ie>|akLYfAB|8Me$)wb=lE%@(#c#qJ1*4jJPx<qNKjS!%89_0qAs7J4I19m6eSwQ z9hJpHdUFnBiim|&FB4PLqGIT7r0{ZP1h;y#Hi8C59KjF7hHV775x}vWtQhgZn9<}Y z&*+Sm7?~kW0d6e7Mmi*S)E9=<0MTVV!m%}0e`{At;EQ}aSo0~RpvIZ>ghG0Ur>%v$ zcikq{kf$*MEI;gNkOe`PQCx=KK5}4-%r~j;BB-}SP-j%=&<zbG7+Yh)MoF2f@2Z4( zO)-3px3`T6Z*ZCk6FO!Kgbpl(-`?&=4}sU*R_nG1*>`#biE0W5MhviI^6q_71C#CA z?XiN(7Dxp#9Q4y|5O(H@PzAANpB9KM*y&J1N9`O*q=_|pI3tvZ=6lAyHo=R`Jir}} zSPCO=#riG$1CyY}i>A3XfI2@T_pYsnCK?F#EZyduMU<pv`t_DSzsu43&&<@nAy>cU z)B4ZM)_+0M`jvd*Adxy&Wu+b?nMj5g#`aCp(Y;5UF-KNb^;Kk#1S3oa`i-%)VTYtb zJQDEE6pawImgLNG%H^zb!sU$em7lW-MRex^PQV$3^oY++n^mKlj@{WD0s3ZIl%MCU z;`TkjCi{H{ZXzYh&lGr-s9EQSr0((@S2lvW=Wj8+yok8xwwQ(@HXN?e68o0xC5)K{ zWO6`&TtlXsLy-=qLt}Me(}uwb(lZ7o{KlZz?>Hc9>j9+tGT{Z>?MKdrm5~Tv&1cTw z>=}r+*pyiR)geMkv6XeP6;to1A__e<mc>Tgl(;&Y5?2+N5_!HGs;Wk-UtKAU(jfz@ z3&QMKGWyc%GVl!L;L%y7@X(v6ULTRsO<5u{mPY_Ad-=1`g~eO}I8n}Av^j0y)FD)8 zI9GVEoI{DJw#a_MZn{_=MYvhYbFvgR8|ar1KC<dwN*-yinp-i)$|-U$5AY8J-qC^& zo$;HqZS6Y@mOt?I0X%e(xB@IG0X;`n7I}{eC|C)UL#+d8M!Uukh)Rssv1u=ZYchKS zOJ3`!UNp3&7go}03sh-Bin?dZhQwc&t6B4j(H@}qc<4lN2Ej?9T&?JSx0aq-sb?>* zeb*JShrPS@g(l{?_G$k4uYKA2ceeI5t6$f?#@XJu_Qgdfa*Ye?q5a)j`$Fk|D{Ef> z=xhH9Yu|2oHjQQ|xY4ue)~23K^(&TT819;SsB1o+O}Fs;YH99u+NDrEq?(pOYX#c& z_h-5yf@sjTCzH=D%0V28*pj7caBw=aAmbaGM=~_pjdA;=n2e!w5^FIwnPMnz<2THt zxV2G?mL2?tWte=EM&T}g!yeqtZ<vC)c+m>HfZs3xFXT6Dzpvsq%)a|@1sI}&$`1#L zdD#yKiFw%%2Z?#v?T}(#_QOG9UiQO5VqQMLES_RscK7{Zw&RC`E@8qC2VKg99}c>V z2|pZkITL<3=n5wMaL|=ZxMlS!CaTsbHMz+~x4=Hhl%H5(9Q@?3E#KFe*y8z~X3CrW zIui~MLypH2Bi~?Zz^b60I2rXS#9|(fvWUri*xwbH%(wbGF_~}nl-SJg@s!xiUvgWp z*v!KL4l$ZL$YL}Pr(DEn?x+%*c{s=-HgmT^i_N@dy%CeSyCZC8*WPV!#A5!REFl(i z$ADPO!vPbqnENZSn6I!xVln?KONhbz?<^q(^D`_V_VRF6Lk#9`w^w2?$K1ejKbDBW zJRm|0<{xpCiNQRaWD$#b08m^uoV>+lW7csiJ{ti`;<OQ*3B+sTzgXMiwQ-BLCT<(o zdrJH^{y;J&Gh2gE6^m7)c|PnruqO&O=4$G9KgD#Jo5D(DQxq~%_Rg}H!FpgZgDQKg zR2<y+z*~}Ka(;j&wqTyM&62eOK-p~6#b7B-vix^LY^sTQme->;HP3F0#pi9F9pwa1 znP*dbw?bnJJ0WF!8^i*>UukZg`8w||ol9X+hSXd12T8aOg0M)!8etpe7q!1g#36}r zupgs)G|_Er%`7R5G*H_SbsIxj<=UEhC}I)`i_kiz%7meuO?Iu7$V+Uhr><w4SeI+U zGg2yc3oiFuZoH*gUZNPlS#uE#JojGltq*q#&Cyl?SNml0+kMq?IK{$S-$bD-o1eOY zE(Xm8ss6&Ip!4PeH%2DMNysjqnGqj*s(-jYaMS2nLgakPokMzmv9W3WdSFL|&1AAA zG@yra%=;@!nZprfcj;~i4)z2H9jzn}-F@@-7lzJ5C!9=vGmQ?5gx4GoS2TrFH`)eg zHGm0AIy5vnFt5&m*`Z*z6=uI7mt7*)liUQu8Qo7X(3-9xD0aZ?SSIKq!0?z3x(G16 z<crU^i#xRquQk2|j>nuqOF^#12SH6iHpd4Ox^-9mLXLCY6g#q3ndB}Re<#620_UD$ z!Z(E5m@qx;j;0!;huTwH=t?0YkxlhNFcJyWPkm_0^CNfP`Ry65A#NYroofW!9ucR= z38!^L-$HJ$+gR}#YrwFLm5oiL@HO?&s2#OY_bY8-l^D0EVKrK=%H%^MXL807kOVWE z<D?;15X3=-Q7Be#>?2EXyb?lrZ**W3WuqLSS{I=THVM=dFc6#*rkp;kCQHYfHpH52 zpUC|tmCKDPiJ_R!_^<9ufj4J4==Ey!g@ySny~J|jq`KsTU`P)@+5`z{Ob}K#<Yh5M zm<|)nrb(D!K24w(60yl=2{d7nrV@@7XgVU{!q~ZWI!{!kC1j5LP^wA!X_7tC0l=BY z2es`5b3swE)%##WoCRTH1R)nS;!%14?^?`2EYQcb-~&~ae8jhkcZy5+2uw2hfF<K& z*XUu`n=IDjnQ6yRI_bqax00@@hayHS5`71l(-q3lX{ZRpYcv{AW#kc<o{>jxHmr@! zeM21+Y3+3<AtB4GhHZT;Vi2MTwQB=?*|6V3&9bh*T(6+Wa=EN2a2D&;qz`!G%nKUm zZSo%MAd=xmYbh_W=!Hd*5Ya}^Or!qr8yIt`FL(fLj_^OB*wG`yz^2XI;CTgT(gsy7 zUBSztofsW0;Yc8D`R+8UGb46kI5zf_HpZMd63PFTpX=OFlVFWyVT*i>&K08n(paO7 zl-9`HD=3NS2(W^)sxcCvNLb+d=~h>PIRz_>4U@A98>ImwO(VS(Og4<sRZYjpP4vzz zc4dsNj-9kI(i4jF8KYG?L}%$OQ7d`=vdt`m3??oM6T?0OBQ(DQC%ilmBS4D9F(+bV z0AE;xR^W>RAxMaWdR>Ih236HLI$+tUbwkW;0~T|yfaaUCY<Vw2*X5SId5lGa82i4a zW1)ukV))*lgD>Wu8@~BX=>`zDHU*LD;D~Hlu){Ro*_6IDcEQL+7vnU!^vm>Cd1Do6 z7|Y%}4tC4Ka;7m~L=K_%R*-OY*PsG~uhX0yDxyT9xIMyPA_xK`u_hW6usSqz3H~yJ z8T&Q%y0>(@N(;n56mGH#-I-a1M4>wE!XKzMBeAThhZ07IETL>>9EO-o_O(UX#oi(~ zLqR7`;~b7C;~Zx<a*iPH*rF8{IgAUTP#K0cod))@-k``Y0mMv$X|a)OLlh!67yk*< zagZ-W!z1{&I_CvplL~{t4n@P@=P$)N?1L}XVRQbPE*MrZ|NN|L9-@AcCZX{eDB%!N zf$9_r96Fnm$3%ua7$CSd<>YZvX{9(X_LY<KTN%=UetEoJvz!b{nm+soOZxmyzGsj= z++NT3lBUC<UQB;}H{bJ$5jpUm3`&|Ce%>XC`WNs$Prmcoc$Am)BBbTU0z&fA-)bDs z${>^mdRZ0kOc7Or`dF5eiP^irNtpYWe~U}t;CLyg0eUO?Mpn8?a$NAP<H7zi&kKm> zAwA!D++XgQ$0|!27CqON<mEe$15{YnQb8cq1=#2KRKX~dSveAo(z(Ftsfx%IHrK;A z-2NJ|L#nWWNfLw&tgZYFhyuf7RTr-FoiN$oqSSP9O5{}Xof4)|GIL=#J-iG_6}TcS z7e`n=pbk^%a3qvDq6t2rCx~$~Eul4#QJ$Lxe10PA;911B@N*aW*^7QMMT)4u(cDFD z-t|^ycfFNOyWYx^yWYzAk2iFGp^6)GBKgI~=3gWXA*jkpI!MD;N1|v5d*F0MN<2;h z3T3X1Wj1J3+UWE3>GoY>d|+^katy9HQ@ba_)VL35WNLqz;w0tZUrv3Xd25%Gq34{F z{I^C%A}@@Q94uw2$fgTwBO_UWrwpqB*)7dTUVPs%yTwSHjer-wj;xaE6DkbL$@5D@ zTgdb7*q4SGcGtHX2H%3i7t_nUxYPypfLP;Fs!yB;m%4Y2!$L0Ax#wK!!U&6TDK%u+ zg1)!7)Q!QHTUd^*=S^_v47X?kZHn+Voj?a?CeX#POl|@_&I#o5U^69Qc|a6}a!kx+ z13l6l<_@lX&z}>U%*-Ed9cz<%t|J-!!RJ)I6CBfwikM$B8YDj%y>YRPEs@{|!I&FW zW_q}$9-4YztE_uag!7~a$e2OB-z!0Guy_ys5{;_VRYASHfD9{ZG(pAXYi+FZX00+c zC$NChAR%s5oImjYOzNy!yo>y2Cw<ImOh2jAg3~LOff2wEd|WPkub`|RKLaSg4NzPJ zWUt*}k-c{Qh{e0nxBOmPy#lu!ig256Ik!6D7=j?XKZpQ9ifv7X1vNx<k>i*|#3D%C zxdNIA9G2A%qicACaw`^XOgoUNo=Ba>u#v|Z6zX9qcR(Kjr%x?!Jv*uN+o*;|ONf$6 zz$VV(#da$Ga}kcK%zSeSn1qp}TK>m#d)qOJ4ajqZ5qVBNKwdy9gqa}z039LEGW^aS zwYWH<^rEQ82O;Oh67|)*<4{bh-7)NOqP=o|SpC+QTCo1%11D&4gN7qCKc<@0fCX}k z38a4uaEm)k_E`jz;=T-<E+M>l9p_>>-=(L!mL7JvT)Qc^ZXRd%Zk}+$2`8R-;z=jJ z;SFzm)0>vR`OR<njo&!st#3W`ZEqW>)so)~j3Z}d_)Lar{1%x;*l5NHI#>@mr`7m% zT2C^3*~6TKAe&MG_Z69BgC&sEZ(@cHedptFM6oO_5Z2oe5DTHRNb>1|@OP1dbrwue za3ouhk+cd5c38n*wxD1Q1-E7kb`%$MQ2!ST4xr#fwqRTG`lfLHjHTX&Qd8Md?FFSA z$QN1aRFs;|mg*=d1>r+*@&Ze}6{Tjgr7FomdZZ$$Kda0;j@8yUR%V1hr6<K@bTa^+ zryCPJIm|<Tzd<pCEMjFc^;}#oI9mrAxy?$h2+C}rL=<L&ux~&Kiy4!N@Z28Zc|p%1 zycrGI7D;#+S>~zW5jWT0D~m)jdfgl=(y7|>*uYq9U_(U~q~&Npw9mSBG@5rl6tkPM z1ld8W9tHIjK(eJ65<m^^D)tdu9#6>vGahR<VBRzrFdvTD4H#rk0fXS5$tguh$%A5X zEF)e%8tXPt-Z&R1cgE}n3bLm_fs~ePm@i(IXYq1ZtlfZl!(708JZ3jwkUa&=8v)EE z^9AOOSzta9Yd2tc32{@3`DDy)z#w}Hn3Dla+x!OU<SZ!n#JUZXljZ{D-k9A$L3RTr zHOV0`Q7tk_267@8$hNsBv=DWi(3YQ*RLMQk)P1piTL_i`-1z?f_}(V_@pzw|>?Z<Y zmlltn%MUicPR!!#f!KiI>$th_^_iI6@P+KDp@RsLbkA?-mSsVCDAsMD96J{%56A2V z3bHpHI=MIZ7_Jz*ICPTVhc21<Il`+!Qzp??zd&+03U&T4_w-0S{Yma=Kc4=xJ?$;) zO?`(;Y}lUU!_T4SDvw1blRHw4*tNwy$$j>;w^DnI4KHCqtP&rQf^_#wHvA%0@GH!O z)8femxu?B&dXYWFN!llv^H5d?$@ZgCodjVjZvoBAwSqjLT?whzA=N4vc#0)?u)2iq ze2s~NdXhU?18{_s70Jg!uhLZgbR0UPYKBYAQuT45r90+D)yHK?>FcopBPHH_)081S z6SEsBA$y9dj{zj(#gK$KZGItR$uU`AW@7CIj2^m%NME#`elun_V30ip%uxX5w)p~c zR2G<T$Jz}TI>R-^%(F4O0fX!*V6gp2Zl5nO{aIkX8*4XU=r-3BnCD`40|wbsz#I-> z&Ody9+~@EtEZ>Wj8!YreYzoWwV|IfD*;BCKf|O*<JYiXyh2{BJxxqpwh^DaoFlIMc zklkR(FJjv{O`+URW_FPiN`B{rvaiYSA)%P}-77?5+nL7Y>?aY@^{Nh)Q|lpqXi=G; z=E_J!Zwo4rwl>Cgex55M3XmkNqR^EwmU$^xMq}uDY||pxUe1*fZ{ay%TXTNc`xy?z zfI25^>vCnH8u=n#4AVWwp^d%0DaTg)_plM?9$YUf<CQY}AW-0fg%(9+e|``#TesS; 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%0D|kPld~52=mp&~s)u>Z}`X)>7 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%0DJuQ`V(o6cM^0C#L~X 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%0DeEdVaoJ&9#Yura8t;mu{L?sQEC20 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%0AkEIs-m%NHu(dMw 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%0AAJMd-c@Pg>|f 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%0Dcefsqc1A{}q8YJ<& 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%0Aq0@Xq-u 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%0AO;NBlyk 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 VTvlF(vOxkj%=y9MU;^Bs0s!h1Hzfc7 diff --git a/tqweb/go.mod b/tqweb/go.mod index ed39d38..47b93d5 100644 --- a/tqweb/go.mod +++ b/tqweb/go.mod @@ -1,9 +1,9 @@ module github.com/mdm-code/tqweb -go 1.24.0 +go 1.26.0 require ( - github.com/mdm-code/tq/v2 v2.4.0 + github.com/mdm-code/tq/v2 v2.5.1 github.com/nlepage/go-wasm-http-server/v2 v2.2.1 ) diff --git a/tqweb/go.sum b/tqweb/go.sum index 420a222..87cef89 100644 --- a/tqweb/go.sum +++ b/tqweb/go.sum @@ -5,8 +5,8 @@ github.com/hack-pad/safejs v0.1.1 h1:d5qPO0iQ7h2oVtpzGnLExE+Wn9AtytxIfltcS2b9KD8 github.com/hack-pad/safejs v0.1.1/go.mod h1:HdS+bKF1NrE72VoXZeWzxFOVQVUSqZJAG0xNCnb+Tio= github.com/mdm-code/scanner v1.2.1 h1:GZ1DYAkhTXK+M4AG65L5fnl5eUt7M6XDAYBVZNH+cBc= github.com/mdm-code/scanner v1.2.1/go.mod h1:ut94FGYZVrQk7uBkf0vJ0ngKuJbdkTEDnmY07ZI8yb0= -github.com/mdm-code/tq/v2 v2.4.0 h1:vjrQfjRROhzquRSjPCrYGdlXTAqZSOdwS6/62hRsfrA= -github.com/mdm-code/tq/v2 v2.4.0/go.mod h1:VfOFONplmcxx0EXu8rLZYpC8dOJg76EYnwbnXL9R4ZA= +github.com/mdm-code/tq/v2 v2.5.1 h1:G6rSTYYByx+/jRodFkrLnsWNK617nMMx34jWZWxX470= +github.com/mdm-code/tq/v2 v2.5.1/go.mod h1:InmaslI3cLnYkGSxckoxdo+oGf58sT8cBz++ET5CylY= github.com/nlepage/go-js-promise v1.0.0 h1:K7OmJ3+0BgWJ2LfXchg2sI6RDr7AW/KWR8182epFwGQ= github.com/nlepage/go-js-promise v1.0.0/go.mod h1:bdOP0wObXu34euibyK39K1hoBCtlgTKXGc56AGflaRo= github.com/nlepage/go-wasm-http-server/v2 v2.2.1 h1:4tzhSb3HKQ3Ykt2TPfqEnmcPfw8n1E8agv4OzAyckr8= diff --git a/vendor/modules.txt b/vendor/modules.txt index 22f070a..d25b10f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -7,8 +7,8 @@ github.com/hack-pad/safejs/internal/stackerr # github.com/mdm-code/scanner v1.2.1 ## explicit; go 1.21 github.com/mdm-code/scanner -# github.com/mdm-code/tq/v2 v2.4.0 -## explicit; go 1.24 +# github.com/mdm-code/tq/v2 v2.5.1 +## explicit; go 1.26 # github.com/nlepage/go-js-promise v1.0.0 ## explicit; go 1.12 github.com/nlepage/go-js-promise From 50314d6e5b44f0e5ba2fb8a748e1fa6e154455fe Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:17:39 +0200 Subject: [PATCH 18/23] Added base to the index.html --- tqweb/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/tqweb/index.html b/tqweb/index.html index 54c7de4..08e8d9f 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> + <base href="/"/> <script src="https://cdn.tailwindcss.com"></script> <script src="htmx.min.js"></script> <script src="copy.js"></script> From 3335d53dd4109d16d9638a582ea6c890ed9b299f Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:18:07 +0200 Subject: [PATCH 19/23] Created static web deployment --- .github/workflows/web.yaml | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/web.yaml diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml new file mode 100644 index 0000000..0ef5ffa --- /dev/null +++ b/.github/workflows/web.yaml @@ -0,0 +1,42 @@ +name: Deploy to Github pages + +on: + push: + branches: [ frontend ] # NOTE: Switch to 'main' when confirmed it's working. + +jobs: + deploy: + runs-on: ubuntu-latest + defaults: + run: + working-directory: './tqweb' + steps: + - name: Set up Go + uses: actions/setup-go@v5.4.0 + with: + go-version: '1.26' + + - name: Checkout + uses: actions/checkout@v4.2.0 + with: + fetch-depth: 0 + + - name: Install dependencies + run: | + go version + + - name: Build + run: make build + + - name: Change base tag in index.html from / to tq + run: sed -i 's/<base href="\/" \/>/<base href="\/tq\/" \/>/g' index.html + + - name: Copy index.html to 404.html + run: cp index.html 404.html + + - name: Commit GitHub Pages + uses: JamesIves/github-pages-deploy-action@3.7.1 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: . # NOTE: Might be better to copy the files to be deployed to a specific catalog first. From c8748a4cfc3518bb10440d233d6b20db13931c14 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:25:16 +0200 Subject: [PATCH 20/23] Updated the catalog for gh pages deployment The job does not respect the working directory? --- .github/workflows/web.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml index 0ef5ffa..4bfa4b8 100644 --- a/.github/workflows/web.yaml +++ b/.github/workflows/web.yaml @@ -39,4 +39,4 @@ jobs: with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: gh-pages - FOLDER: . # NOTE: Might be better to copy the files to be deployed to a specific catalog first. + FOLDER: tqweb # NOTE: Might be better to copy the files to be deployed to a specific catalog first. From e871bf7f34cfbd0dc0934a11fbe26ff6d3ce3587 Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:32:15 +0200 Subject: [PATCH 21/23] Updated base href for sed to work --- .github/workflows/web.yaml | 2 +- tqweb/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml index 4bfa4b8..97a4447 100644 --- a/.github/workflows/web.yaml +++ b/.github/workflows/web.yaml @@ -8,7 +8,7 @@ jobs: deploy: runs-on: ubuntu-latest defaults: - run: + run: # NOTE: This only applies to 'run' steps like make, sed, cp; not to actions. working-directory: './tqweb' steps: - name: Set up Go diff --git a/tqweb/index.html b/tqweb/index.html index 08e8d9f..feccdb1 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <base href="/"/> + <base href="/" /> <script src="https://cdn.tailwindcss.com"></script> <script src="htmx.min.js"></script> <script src="copy.js"></script> From 2d30860ba6650bfca39354b23b6048322c8239bd Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 20:47:40 +0200 Subject: [PATCH 22/23] Updated the sed command, again --- .github/workflows/web.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml index 97a4447..6575f36 100644 --- a/.github/workflows/web.yaml +++ b/.github/workflows/web.yaml @@ -29,7 +29,7 @@ jobs: run: make build - name: Change base tag in index.html from / to tq - run: sed -i 's/<base href="\/" \/>/<base href="\/tq\/" \/>/g' index.html + run: sed -i -e 's/<base href="\/" \/>/<base href="\/tq\/" \/>/g' index.html - name: Copy index.html to 404.html run: cp index.html 404.html From ad7dbeade1f80c083609e0e9ceb01f4f04baa70a Mon Sep 17 00:00:00 2001 From: mdm-code <code.madamczyk@gmail.com> Date: Tue, 5 May 2026 21:00:52 +0200 Subject: [PATCH 23/23] Temporary deployment check --- .github/workflows/web.yaml | 2 +- tqweb/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml index 6575f36..97a4447 100644 --- a/.github/workflows/web.yaml +++ b/.github/workflows/web.yaml @@ -29,7 +29,7 @@ jobs: run: make build - name: Change base tag in index.html from / to tq - run: sed -i -e 's/<base href="\/" \/>/<base href="\/tq\/" \/>/g' index.html + run: sed -i 's/<base href="\/" \/>/<base href="\/tq\/" \/>/g' index.html - name: Copy index.html to 404.html run: cp index.html 404.html diff --git a/tqweb/index.html b/tqweb/index.html index feccdb1..8a07999 100644 --- a/tqweb/index.html +++ b/tqweb/index.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <base href="/" /> + <base href="/tq/" /> <script src="https://cdn.tailwindcss.com"></script> <script src="htmx.min.js"></script> <script src="copy.js"></script>